Architettura AppML


Architettura Web moderna

AppML combina le tecniche e le idee più aggiornate dello sviluppo web moderno.

AppML si concentra su velocità, semplicità e basso costo:

  • A basso costo
  • Sviluppo Web rapido e agile
  • Ottimizzato per il Cloud Computing
  • Alta velocità e basso consumo di larghezza di banda
  • Architettura MVC (Model Viev Controller).
  • Separazione completa del contenuto dalla presentazione
  • Altamente scalabile e testabile
  • Facile configurazione e riconfigurazione
  • Riconfigurazione mentre le applicazioni sono in esecuzione
  • Supporto intelligente per account utente e ruoli

Architettura MVC

 

AppML utilizza un'architettura MVC

MVC sta per Model, View, Controller

Il modello descrive la tua applicazione.

La vista mostra i tuoi dati.

Il Controller controlla la tua applicazione (ovviamente).

 

Wikipedia: modello, vista, controller

        MVC

Il MODELLO - Solo JSON

Il modello descrive l'applicazione.

Il modello è riutilizzabile su diverse piattaforme hardware e software (Server, PC, iPhone, Tablet, ecc.).

Il modello non riguarda la presentazione o l'interfaccia utente (UI).

Il modello è scritto in JSON:

Modello

{
"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 è l'interfaccia utente (interfaccia utente) per la visualizzazione (e l'immissione) dei dati.

La vista è scritta in HTML e 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>

Il CONTROLLER - Script client e/o server

Uno script client nella pagina Web può controllare l'applicazione:

  • AppML può visualizzare i dati come definito nel modello
  • AppML può visualizzare i dati come definiti dagli attributi HTML.
  • Le applicazioni AppML possono essere eseguite indipendentemente dall'HTML (nascosto)
  • (Facoltativo) AppML può richiedere i dati del modello da un server Web (server SQL)
  • (Facoltativo) Gli utenti di AppML possono modificare i dati
  • (Facoltativo) AppML può inviare dati a un server web

Uno script del server può controllare l'applicazione:

  • Ricezione delle richieste dal cliente (browser)
  • Restituzione dei dati al cliente
  • Ricezione dati dal cliente
  • Aggiornamento dei dati sul server
  • Cura dell'autenticazione e della sicurezza

L'arte della programmazione

Mantenere basse le dimensioni e la complessità dell'applicazione è il problema principale di tutta la programmazione.

Controllare la complessità delle applicazioni informatiche è la vera arte della programmazione.


Programmazione dichiarativa

Lo sviluppo del software spesso infrange scadenze e budget. Il software finito è spesso pieno di errori di codifica. Questo perché il codice del computer è difficile da sviluppare, testare e mantenere.

La codifica è finita . Dovresti descrivere di più Cosa fare, meno Come farlo.

Con AppML dichiari la tua applicazione nel Modello e nella Vista .

Con AppML c'è meno (a volte niente) da programmare .

Wikipedia: Programmazione dichiarativa


Sviluppo di applicazioni rapido e agile

Il controllo della complessità delle applicazioni informatiche è la vera arte della programmazione.

Tenere sotto controllo la dimensione e la complessità dell'applicazione è il problema principale di tutta la programmazione.

RAD è un metodo di sviluppo software che utilizza una pianificazione minima a favore della prototipazione rapida.

AppML offre una prototipazione super veloce, fino a 100 volte più veloce rispetto ai metodi di sviluppo tradizionali.

I prototipi dell'applicazione possono essere eseguiti direttamente dal modello dell'applicazione, senza alcuna codifica.

Wikipedia: sviluppo rapido di applicazioni

Lo sviluppo software agile è un metodo basato sullo sviluppo passo dopo passo, in cui le soluzioni vengono create da utenti e sviluppatori in collaborazione.

Con AppML, le applicazioni possono essere scritte passo dopo passo, con piccoli incrementi, dai prototipi alle applicazioni complete.

Wikipedia: Sviluppo software agile


Prima il codice

Un'applicazione web può essere sviluppata in due modi diversi:

1. Code First: utilizzo di codice preprogrammato e pretestato, aggiungendo solo nuove descrizioni dell'applicazione.

2. Primo contratto: codificare l'applicazione da zero utilizzando la descrizione completa dei requisiti dell'applicazione.

AppML utilizza il concetto più razionale: Code First .


Architettura orientata ai servizi (SOA)

Service Oriented Architecture (SOA) è un'architettura per la creazione di applicazioni web.

SOA offre bassi costi di sviluppo ed elevata flessibilità.

Con SOA , le applicazioni possono essere create da zero, o da infrastrutture IT esistenti, ed essere utilizzate, da diverse applicazioni, su diversi hardware e software.

La SOA è perfetta per MVC e Programmazione dichiarativa , dove i dati possono essere facilmente consumati senza preoccuparsi di come.


Servizi web

Un servizio Web è un'interfaccia ai dati, identificata da un URL, proprio come una pagina Web.

Un Web Service differisce da una pagina Web solo per il modo in cui comunica le informazioni.

Un tipico servizio Web fornisce dati solo a una pagina Web.

Con AppML, HTML è l'interfaccia utente, un servizio Web fornisce i dati.

I servizi Web originali sono stati progettati per utilizzare standard XML come SOAP, WSDL e UDDI.

I servizi Web moderni come AppML sono molto più facili da usare.

  • Più semplice da capire - Può essere letto dagli esseri umani
  • Leggero: nessun codice o markup non necessario
  • Facile da implementare: non sono necessari strumenti di sviluppo

Vantaggi dei servizi web

  • I servizi Web sono piccole unità di codice
  • I servizi Web sono progettati per gestire un insieme limitato di attività
  • I servizi Web utilizzano protocolli di comunicazione basati su HTTP
  • I servizi Web sono indipendenti dai sistemi operativi
  • I servizi Web sono indipendenti dai linguaggi di programmazione
  • I servizi Web possono connettere diverse applicazioni, sistemi e dispositivi
  • I servizi Web semplificano la distribuzione delle informazioni
  • I servizi Web favoriscono lo sviluppo rapido delle applicazioni

Esempio: un piccolo programma progettato per fornire ad altre applicazioni i prezzi di borsa.

Esempio: orari dei voli e sistemi di prenotazione dei biglietti.

Poiché i servizi Web utilizzano HTTP, sono indipendenti sia dai sistemi operativi che dai linguaggi di programmazione.


Cloud computing

Il Cloud Computing è un'estensione della SOA: Application-as-a-service, Storage-as-a-service, Data-as-a-service.

Per la maggior parte delle persone, il Cloud Computing riguarda l'archiviazione dei dati sul Web:

  • Email e calendari
  • Documenti e fogli di calcolo
  • Libri, appunti e liste di cose da fare
  • Musica, immagini e film
  • Banche dati e applicazioni

I motivi sono abbastanza ovvi:

  • Per avere accesso ai dati da qualsiasi luogo
  • Per condividere i miei dati con altri
  • Per sopravvivere a modifiche hardware o arresti anomali

Con AppML, è molto facile inserire database e applicazioni nel cloud.