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

        MVC

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.