Arquitetura AppML


Arquitetura Web Moderna

AppML combina as técnicas e ideias mais atualizadas do desenvolvimento web moderno.

AppML foca em velocidade, simplicidade e baixo custo:

  • Baixo custo
  • Desenvolvimento Web Rápido e Ágil
  • Otimizado para computação em nuvem
  • Consumo de alta velocidade e baixa largura de banda
  • Arquitetura MVC (Model Viev Controller)
  • Separação Completa do Conteúdo da Apresentação
  • Altamente escalável e testável
  • Fácil configuração e reconfiguração
  • Reconfiguração enquanto os aplicativos estão em execução
  • Suporte inteligente para contas e funções de usuário

Arquitetura MVC

 

AppML usa uma arquitetura MVC

MVC significa Model, View, Controller

O Modelo descreve seu aplicativo.

A Visualização exibe seus dados.

O Controlador controla sua aplicação (é claro).

 

Wikipedia: Modelo, Visualização, Controlador

        MVC

O MODELO - Apenas JSON

O modelo descreve o aplicativo.

O modelo é reutilizável em diferentes plataformas de hardware e software (Servidor, PC, iPhone, Tablets, etc.).

O modelo não está preocupado com a apresentação ou interface do usuário (UI).

O modelo é escrito em 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"}
]
}

A VISUALIZAÇÃO - Apenas HTML

A visualização é a UI (User Interface) para exibir (e inserir) dados.

A visualização é escrita em HTML e CSS:

Visualização 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>

O CONTROLADOR - Scripts de Cliente e/ou Servidor

Um script de cliente na página da Web pode controlar o aplicativo:

  • AppML pode exibir dados conforme definido no modelo
  • AppML pode exibir dados conforme definido por atributos HTML.
  • Os aplicativos AppML podem ser executados independentemente do HTML (oculto)
  • (Opcionalmente) AppML pode solicitar dados de modelo de um servidor web (servidor SQL)
  • (Opcional) Os usuários do AppML podem editar dados
  • (Opcionalmente) AppML pode enviar dados para um servidor web

Um script de servidor pode controlar o aplicativo por:

  • Recebendo solicitações do cliente (navegador)
  • Devolvendo dados ao cliente
  • Recebendo dados do cliente
  • Atualizando dados no servidor
  • Cuidando da autenticação e segurança

A arte de programar

Manter o tamanho e a complexidade do aplicativo baixo é o principal problema de toda programação.

Controlar a complexidade dos aplicativos de computador é a verdadeira arte da programação.


Programação declarativa

O desenvolvimento de software geralmente quebra prazos e orçamentos. O software finalizado geralmente está cheio de erros de codificação. Isso ocorre porque o código de computador é difícil de desenvolver, testar e manter.

A codificação está fora . Você deve descrever mais O que fazer, menos Como fazer.

Com o AppML você declara sua aplicação no Model e na View .

Com AppMLmenos (às vezes nada) para codificar .

Wikipedia: Programação declarativa


Desenvolvimento de aplicativos rápido e ágil

Controlar a complexidade dos aplicativos de computador é a verdadeira arte da programação.

Manter o tamanho e a complexidade do aplicativo sob controle é o principal problema de toda programação.

RAD é um método de desenvolvimento de software que utiliza o mínimo de planejamento em favor da prototipagem rápida.

O AppML oferece prototipagem super rápida, até 100 vezes mais rápida do que os métodos tradicionais de desenvolvimento.

Os protótipos de aplicativos podem ser executados diretamente do modelo de aplicativo, sem qualquer codificação.

Wikipedia: Desenvolvimento rápido de aplicativos

O desenvolvimento ágil de software é um método baseado no desenvolvimento passo a passo, onde as soluções são criadas por usuários e desenvolvedores em colaboração.

Com o AppML, os aplicativos podem ser escritos passo a passo, em pequenos incrementos, de protótipos a aplicativos completos.

Wikipedia: Desenvolvimento ágil de software


Código primeiro

Uma aplicação web pode ser desenvolvida de duas maneiras diferentes:

1. Code First: Usando código pré-programado e pré-testado, adicionando apenas novas descrições de aplicativos.

2. Contrate primeiro: Codifique o aplicativo do zero usando a descrição completa dos requisitos do aplicativo.

AppML usa o conceito mais racional: Code First .


Arquitetura Orientada a Serviços (SOA)

Service Oriented Architecture (SOA) é uma arquitetura para construção de aplicações web.

SOA oferece baixos custos de desenvolvimento e alta flexibilidade.

Com SOA , os aplicativos podem ser criados do zero, ou a partir de infraestruturas de TI existentes, e serem usados, por diferentes aplicativos, em diferentes hardwares e softwares.

SOA é um ajuste perfeito para MVC e Programação Declarativa , onde os dados podem ser facilmente consumidos sem a preocupação de como.


Serviços web

Um Web Service é uma interface para dados, identificada por uma URL, assim como uma página da web.

Um Web Service difere de uma página da Web apenas na forma como comunica as informações.

Um Web Service típico fornece apenas dados para uma página da Web.

Com AppML, HTML é a interface do usuário, um Web Service fornece os dados.

Os Web Services originais foram projetados para usar padrões XML como SOAP, WSDL e UDDI.

Serviços Web modernos como AppML são muito mais fáceis de usar.

  • Mais simples de entender - Pode ser lido por humanos
  • Leve - sem código ou marcação desnecessária
  • Fácil de implementar - não são necessárias ferramentas de desenvolvimento

Benefícios dos WebServices

  • Web services são pequenas unidades de código
  • Os serviços da Web são projetados para lidar com um conjunto limitado de tarefas
  • Os serviços da Web usam protocolos de comunicação baseados em HTTP
  • Os serviços da Web são independentes dos sistemas operacionais
  • Os serviços da Web são independentes das linguagens de programação
  • Os serviços da Web podem conectar diferentes aplicativos, sistemas e dispositivos
  • Web Services facilita a distribuição de informações
  • Web Services favorece o desenvolvimento rápido de aplicativos

Exemplo: Um pequeno programa projetado para fornecer outros aplicativos com os preços da bolsa de valores.

Exemplo: Horários de voos e sistemas de reserva de passagens.

Como os serviços da Web usam HTTP, eles são independentes de sistemas operacionais e linguagens de programação.


Computação em Nuvem

Cloud Computing é uma extensão da SOA: Application-as-a-service, Storage-as-a-service, Data-as-a-service.

Para a maioria das pessoas, Cloud Computing é sobre o armazenamento de dados na web:

  • E-mails e calendários
  • Documentos e planilhas
  • Livros, notas e listas de tarefas
  • Músicas, fotos e filmes
  • Bancos de dados e aplicativos

As razões são bastante óbvias:

  • Para ter acesso a dados de qualquer lugar
  • Para compartilhar meus dados com outras pessoas
  • Para sobreviver a alterações ou falhas de hardware

Com o AppML, é muito fácil colocar bancos de dados e aplicativos na nuvem.