Cronologia AppML


Nel 1999 Refsnes Data ha sviluppato la prima versione di AppML.

Già allora, AppML si basava sulla comunicazione di richiesta HTTP tra il client Web e il server Web. Successivamente questo metodo divenne noto come AJAX.

Nel settembre 2000 è stato avviato un progetto di sviluppo per un grande cliente norvegese. L'obiettivo del progetto era convertire un enorme sistema informativo (circa 300 applicazioni) da un'applicazione desktop Windows a una moderna applicazione Internet, utilizzando solo AppML.

Il sistema basato su AppML è stato lanciato nel 2001, diversi mesi prima del previsto, come prima applicazione AJAX commerciale al mondo. Il progetto è stato un enorme successo, con tempi di sviluppo ridotti del 75% rispetto al normale sviluppo web. Da allora sono state aggiunte nuove applicazioni e il sistema ora copre oltre 1000 applicazioni in esecuzione.

Nel febbraio 2015, W3Schools ha rilanciato AppML come un nuovo prodotto, aperto al pubblico.

Obiettivi di progettazione di AppML:

  • Le applicazioni AppML devono essere eseguite su Internet
  • Le applicazioni AppML devono essere indipendenti dalla piattaforma
  • Le applicazioni AppML devono utilizzare solo standard Internet (HTML, CSS, JavaScript)
  • Le applicazioni AppML devono supportare una varietà di esigenze applicative
  • Le applicazioni AppML devono essere autodescrittive
  • Le applicazioni AppML devono essere facili da sviluppare, mantenere e modificare
  • Le applicazioni AppML devono essere a prova di futuro

I paragrafi seguenti descrivono le visioni originali di Refsnes Data (1999) sulle future applicazioni web.


Gli eseguibili moriranno, JavaScript vivrà

Gli eseguibili compilati (compilati da linguaggi come C o Java) non possono essere eseguiti su hardware diverso.

Gli eseguibili (file EXE, oggetti ActiveX e COM, file DLL) sono componenti che impediscono lo sviluppo di applicazioni che possono essere eseguite su Internet.

L'applicazione futura non utilizzerà né si baserà su eseguibili o altri componenti installati sul computer del client.

I nostri suggerimenti:

Scrivi le tue future applicazioni usando solo HTML, CSS e JavaScript.

Assicurati che le tue applicazioni future vengano eseguite in qualsiasi browser web.


Le applicazioni Web saranno servizi Internet

La storia è piena di grandi applicazioni appositamente costruite. Molti di questi sono morti molto rapidamente, perché non potevano sopravvivere ai cambiamenti dei requisiti.

Le applicazioni devono essere flessibili, generalizzate e adattarsi con garbo alle modifiche, senza essere sbriciolate o distrutte.

Le applicazioni dovrebbero essere in grado di passare dal supporto di poche a milioni di richieste al giorno.

Le applicazioni dovrebbero essere in grado di diffondersi da un server a più server o di spostarsi tra server senza interrompere l'applicazione.

Le applicazioni dovrebbero essere in grado di collaborare con altre applicazioni.

Le applicazioni non devono contenere grandi quantità di codice.

Le applicazioni dovrebbero essere suddivise in servizi più piccoli, facili da creare e da mantenere.

Le applicazioni dovrebbero essere un insieme di servizi Internet in grado di restituire i dati alle richieste Internet inviate.

Le applicazioni devono richiedere servizi tramite protocolli Internet standard senza mantenere una connessione permanente al server. 

I nostri suggerimenti:

Scrivi le tue applicazioni future utilizzando la SOA (Service Oriented Architecture) basata su Internet.

Rendi i tuoi servizi applicativi generali e flessibili e pronti a soddisfare diversi tipi di richieste.


Le applicazioni future saranno facili da creare e modificare

Clienti e server si scambieranno i dati in un modo facilmente comprensibile.

Le applicazioni non verranno codificate, se è possibile evitarle.

Le applicazioni verranno create e modificate, modificando i modelli, non modificando il codice.

Le descrizioni delle applicazioni saranno leggibili dagli esseri umani.

Le descrizioni delle applicazioni saranno autodescrittive.

Le applicazioni saranno scritte dagli utenti, non dai programmatori.

I nostri suggerimenti:

Utilizzare file di testo leggibili dall'uomo per descrivere i servizi e fornire servizi eseguendo queste descrizioni.

Usa file di testo (come i file JSON) per descrivere le applicazioni.

Usa file di testo (come i file JSON) per scambiare dati.

Usa HTML, CSS e JavaScript per eseguire applicazioni.


Tre piccoli sviluppatori web...

C'erano una volta tre piccoli sviluppatori web che sviluppavano un nuovo sito web.

1. Il primo sviluppatore web utilizzava AppML.

2. Il secondo sviluppatore web stava usando il suo linguaggio di programmazione server preferito.

3. Il terzo è stato l'utilizzo di un framework di sviluppo web aziendale professionale.

Il primo sviluppatore web aveva una demo attiva e funzionante in due giorni. Dopo la collaborazione con gli utenti, in una settimana era pronto un prototipo entusiasmante. E dopo due settimane di test, un sito web intelligente, veloce e facile da usare, era pronto per la pubblicazione.

Il secondo sviluppatore web aveva il suo sito web pronto dopo 6 mesi. Ma il WWW aveva cambiato i suoi requisiti e non era soddisfatto. Lo sviluppatore web non ha potuto apportare modifiche sostanziali al suo progetto perché conteneva troppo codice. Così iniziò lo sviluppo della versione 2.

Il terzo sviluppatore web non è mai riuscito a completare il suo lavoro. Il framework di sviluppo web professionale era molto difficile da usare, molto difficile da capire e quasi impossibile da testare.

Dai un'occhiata a come ha fatto il primo sviluppatore .