Arquitectura AppML
Arquitectura web moderna
AppML combina las técnicas e ideas más actualizadas del desarrollo web moderno.
AppML se centra en la velocidad, la simplicidad y el bajo costo:
- Bajo costo
- Desarrollo Web Rápido y Ágil
- Optimizado para computación en la nube
- Consumo de alta velocidad y bajo ancho de banda
- Arquitectura MVC (Modelo de controlador de vista)
- Separación completa del contenido de la presentación
- Altamente escalable y comprobable
- Fácil configuración y reconfiguración
- Reconfiguración mientras se ejecutan las aplicaciones
- Soporte inteligente para cuentas y roles de usuario
Arquitectura MVC
AppML utiliza una arquitectura MVC MVC significa Modelo, Vista, Controlador El modelo describe su aplicación. La Vista muestra sus datos. El controlador controla su aplicación (por supuesto).
Wikipedia: modelo, vista, controlador |
El MODELO - Solo JSON
El modelo describe la aplicación.
El modelo es reutilizable en diferentes plataformas de hardware y software (Servidor, PC, iPhone, Tablets, etc.).
El modelo no se preocupa por la presentación o la interfaz de usuario (UI).
El modelo está escrito en JSON:
Modelo
{
"rowsperpage" : 10,
"database" : {
"connection" : "localmysql",
"sql" : "SELECT CustomerName, City, Country FROM Customers",
"orderby" : "CustomerName"
},
"filteritems" : [
{"item" : "CustomerName", "label" : "Customer"},
{"item" : "City"},
{"item" : "Country"}
],
"sortitems" : [
{"item" : "CustomerName", "label" : "Customer"},
{"item" : "City"},
{"item" : "Country"}
]
}
La VISTA - Solo HTML
La vista es la IU (interfaz de usuario) para mostrar (e ingresar) datos.
La vista está escrita en HTML y CSS:
Vista HTML
<!DOCTYPE html>
<html lang="en-US">
<title>Customers</title>
<link rel="stylesheet" href="https://www.w3schools.com/w3css/4/w3.css">
<script src="https://www.w3schools.com/appml/2.0.3/appml.js"></script>
<body>
<div class="w3-container" appml-data="local?model=model_customers">
<h1>Customers</h1>
<div appml-include-html="inc_listcommands.htm"></div>
<div appml-include-html="inc_filter.htm"></div>
<table class="w3-table-all">
<tr>
<th>Customer</th>
<th>City</th>
<th>Country</th>
</tr>
<tr appml-repeat="records">
<td>{{CustomerName}}</td>
<td>{{City}}</td>
<td>{{Country}}</td>
</tr>
</table>
</div>
</body>
</html>
El CONTROLADOR - Scripts de Cliente y/o Servidor
Un script de cliente en la página web puede controlar la aplicación:
- AppML puede mostrar datos como se define en el modelo
- AppML puede mostrar datos definidos por atributos HTML.
- Las aplicaciones AppML pueden ejecutarse independientemente de HTML (oculto)
- (Opcionalmente) AppML puede solicitar datos del modelo desde un servidor web (servidor SQL)
- (Opcionalmente) los usuarios de AppML pueden editar datos
- (Opcionalmente) AppML puede enviar datos a un servidor web
Un script de servidor puede controlar la aplicación mediante:
- Recepción de solicitudes del cliente (navegador)
- Devolver datos al cliente
- Recibir datos del cliente.
- Actualización de datos en el servidor
- Cuidando la autenticación y la seguridad
El arte de programar
Mantener bajo el tamaño y la complejidad de la aplicación es el principal problema de toda programación.
Controlar la complejidad de las aplicaciones informáticas es el verdadero arte de la programación.
Programación declarativa
El desarrollo de software a menudo rompe los plazos y los presupuestos. El software terminado a menudo está lleno de errores de codificación. Esto se debe a que el código de computadora es difícil de desarrollar, probar y mantener.
La codificación está fuera . Debe describir más Qué hacer, menos Cómo hacerlo.
Con AppML declaras tu aplicación en el modelo y en la vista .
Con AppML hay menos (a veces nada) que codificar .
Wikipedia: programación declarativa
Desarrollo de aplicaciones rápido y ágil
Controlar la complejidad de las aplicaciones informáticas es el verdadero arte de la programación.
Mantener bajo control el tamaño y la complejidad de las aplicaciones es el principal problema de toda programación.
RAD es un método de desarrollo de software que utiliza una planificación mínima a favor de la creación rápida de prototipos.
AppML ofrece una creación de prototipos ultrarrápida, hasta 100 veces más rápida que los métodos de desarrollo tradicionales.
Los prototipos de aplicaciones pueden ejecutarse directamente desde el modelo de aplicación, sin ningún tipo de codificación.
Wikipedia: desarrollo rápido de aplicaciones
El desarrollo ágil de software es un método basado en el desarrollo paso a paso, donde los usuarios y desarrolladores crean soluciones en colaboración.
Con AppML, las aplicaciones se pueden escribir paso a paso, en pequeños incrementos, desde prototipos hasta aplicaciones completas.
Wikipedia: desarrollo ágil de software
Código primero
Una aplicación web se puede desarrollar de dos maneras diferentes:
1. Code First: uso de código preprogramado y probado previamente, agregando solo nuevas descripciones de aplicaciones.
2. Contrato primero: Codificación de la aplicación desde cero utilizando la descripción completa de los requisitos de la aplicación.
AppML utiliza el concepto más racional: Code First .
Arquitectura Orientada a Servicios (SOA)
La arquitectura orientada a servicios (SOA) es una arquitectura para crear aplicaciones web.
SOA ofrece bajos costos de desarrollo y alta flexibilidad.
Con SOA , las aplicaciones se pueden crear desde cero oa partir de infraestructuras de TI existentes y ser utilizadas por diferentes aplicaciones en diferentes hardware y software.
SOA encaja perfectamente con MVC y Programación Declarativa , donde los datos se pueden consumir fácilmente sin preocuparse por cómo.
Servicios web
Un servicio web es una interfaz de datos, identificada por una URL, al igual que una página web.
Un Servicio Web se diferencia de una página web, sólo en la forma en que comunica información.
Un servicio web típico solo proporciona datos a una página web.
Con AppML, HTML es la interfaz de usuario, un servicio web proporciona los datos.
Los servicios web originales se diseñaron para usar estándares XML como SOAP, WSDL y UDDI.
Los servicios web modernos como AppML son mucho más fáciles de usar.
- Más fácil de entender - Puede ser leído por humanos
- Ligero: sin código ni marcas innecesarias
- Fácil de implementar: no se requieren herramientas de desarrollo
Beneficios de los servicios web
- Los servicios web son pequeñas unidades de código.
- Los servicios web están diseñados para manejar un conjunto limitado de tareas
- Los servicios web utilizan protocolos de comunicación basados en HTTP
- Los servicios web son independientes de los sistemas operativos
- Los servicios web son independientes de los lenguajes de programación
- Los servicios web pueden conectar diferentes aplicaciones, sistemas y dispositivos
- Los servicios web facilitan la distribución de información
- Los servicios web favorecen el desarrollo rápido de aplicaciones
Ejemplo: Un pequeño programa diseñado para suministrar a otras aplicaciones los precios de la bolsa.
Ejemplo: Horarios de vuelos y sistemas de reserva de billetes.
Dado que los servicios web utilizan HTTP, son independientes tanto de los sistemas operativos como de los lenguajes de programación.
Computación en la nube
Cloud Computing es una extensión de SOA: aplicación como servicio, almacenamiento como servicio, datos como servicio.
Para la mayoría de las personas, la informática en la nube se trata de almacenar datos en la web:
- Correos electrónicos y calendarios
- Documentos y hojas de cálculo
- Libros, notas y listas de tareas
- Música, imágenes y películas.
- Bases de datos y aplicaciones
Las razones son bastante obvias:
- Para tener acceso a los datos desde cualquier lugar
- Para compartir mis datos con otros
- Para sobrevivir a cambios de hardware o fallas
Con AppML, es muy fácil poner bases de datos y aplicaciones en la nube.