Servizi Web Embedded

Introduzione sui servizi web embedded

Servizi Web Embedded: L'internet embedded è molto diffuso nei più recenti dispositivi elettronici. Il server web embedded e' un tema molto interessante dal momento che questa tecnologia puo' influenzare la tecnologia dell'informazione, tra cui modem, Ethernet, PPP dial-up e browser web; non c'è bisogno di installare alcun software sul "computer client". Molti prodotti elettronici di consumo hanno già installati embedded web servers, da router, switch, internet radio al NAS e IPTV. ARC prevede che nei prossimi cinque anni, IP/Ethernet dominerà tutti i campi collegati tranne la connessione finale al livello più basso, sensori e attuatori. Oltre a tftp e telnet, il server web embedded è la tecnologia più comune utilizzata nei dispositivi di consumo e nei dispositivi elettronici industriali, in particolare per i sistemi classici "head-less", che hanno display limitato o non lo hanno per niente.

Questo tema cattura la mia attenzione perché sto costruendo un sito web GIS cross-platform con le API di Google map. Questo sito è inspirato dal GPS Pilot da cruscotto utilizzato negli USA . Il progetto consente lo scambio di informazione geografica tra l'utente web, l'utente del telefono mobile e l'utente del navigatore GPS. Le informazioni di POI (Point of Interest n.d.t), della direzione di guida, di ingorgo stradale e degli annunci pubblicitari mappati sul territorio verranno raccolti e spinto al "pubblico" nelle locazioni di destinazione. Le nuove tecnologie AJAX/JSON utilizzate in Google Map, Yahoo Map e Virtual earth portano caratteristiche ed esperienze più attraenti per gli utenti finali. I dispositivi GPS hanno il processore potente per analizzare il servizio web offerto dai servers web. Io riesaminero' questo argomento per verificare se questa nuova ondata di web puo' portare una maggiore innovazione ai sistemi embedded.

L'argomento è troppo vasto d e cosi parlerò solo di una piccola parte che è progettata nei sistemi embedded in RTOS/Linux.

Embedded Web Services (EWS)

In base alla definizione classica, i servizi web sono componenti applicativi, che utilizzano protocolli aperti e sono indipendenti dalle piattaforme, "self-contained" e "self explained". Questi servizi possono essere rivelati da UDDI e utilizzati da altri componenti applicativi; sono codificati in XML (un formato multi-uso per lo scambio di dati per gli apparecchi e le persone). Un servizio web completo dovrebbe includere: SOAP, WSDL e UDDI.

SOAP è l'acronimo per "Simple Object Access Protocol" ed è una specifica basata su XML per messaggi basati sulla comunicazione e per la comunicazione tipo "chiamata di procedura remota " (RPC). Inoltre SOAP permette al server di rispondere al client non solo con un messaggio breve ma con ogni tipo di data, che potrebbe essere serializzato seguendo le stesse norme di cui sopra.


Una volta implementato il server SOAP, l'unico problema è quello di rendere i suoi servizi (che sono funzioni "call available") pubblici per tutti gli eventuali client . Per questo scopo è stato introdotto Web Service Description Language (WSDL) dalla W3 Consortium. Questo linguaggio ha lo stesso scopo come quello sopracitato : la descrizione standardizzata dei servizi che un sito offre ai client via l'internet.

L'UDDI è un registry descritto da WDSL e significa "Universal Description, Discovery and Integration" (descrizione universale, scoperta e integrazione). Questo "strato" pubblicherà i servizi web e permetterà alle altre applicazioni di scoprire servizi, quindi accedere al file WSDL sulla URL registrata per accedere ai servizi SOAP.

Se il progettista implementa il tollkit del SOAP embedded sul server web esistente, il sistema richiedera' maggiori risorse di memoria, e larghezza di banda di comunicazione. E' una grande sfida integrare servizi web embedded pienamente configurati. Ci sono molte soluzioni per i servizi web embedded adatte per microcontrollori potenti; dobbiamo ancora ottimizzare il progetto per adeguare il sistema in un micro low-end (a volte dobbiamo sacrificare la conformità agli standard).

Ecco una tabella di sintesi per protocollo proprietario, server web embedded e servizio web embedded utilizzati nei sistemi embedded.

Proprietary protocol embedded web server embedded web services
Interoperability - + +
User Interface - custom design + web browser O local UI toolkit or browser
Resources + O -
Reuse of Components - O +

Ovviamente il protocollo originale proprietario non prenderà cosi tante risorse come fa il server web. Ma riguardo al riutilizzo del software, all'interoperabilità e all'integrazione dei sistemi, le soluzioni standard dovrebbero essere di successo ed efficace dal punto di vista dei costi. Il servizio web embedded è un passo avanti perché offre più flessibilità ed facilita' di integrazione del sistema. Inoltre le interfacce XML possono soddisfare i requisiti di tutti gli aspetti dalla manutenzione dei registri, documentazione, gestione configurazioni e allarmi.

XML Parsing

La creazione XML è relativamente più facile; è solo un print routine cosi come nella creazione HTML. Il parsing XML richiede una memoria piu' grande, che è una risorsa limitata dalle restrizioni di un sistema embedded . Inoltre, i parser XML sono offerti in C++, Java, Perl, Python e JavaScript disponibili nel PC e nelle piattaforme embedded di alta qualità. Per esempio, C++, Java, Python sono disponibili sul Symbian smart phone; C#, Java sono disponibili sulla piattaforma Windows Mobile; la maggior parte dei linguaggi sono disponibili sul Linux embedded; ma la maggioranza dei microcontrollori low-end compresi l'80C51, PIC, AVR supportano solo C. Anche se si utilizza un microprocessore avanzato come ARM7, si deve prendere in considerazione anche la ripartizione della memoria per il parser XML di C++. LibXML e expat sono i parser XML in C. Secondo un rapporto per expat, l'uso della memoria di expat è superiore a 300KB e dipende dal livello di nidificazione del file XML. Il ROMXML dalla Allegrosoft è più adatto ai microcontrollori low-end e utilizza "tag matching" per ridurre l'impronta di memoria. Ma questa è una soluzione commerciale. Ho elencato alcuni parser XML open source nei riferimenti. In un progetto classico di web service, XML è utilizzato in ogni protocollo. Tuttavia a volte siamo in grado di evitare l'uso di XML. In un secondo momento parlerò dell'ottimizzazione di EWS.

EWS Server e Client


Le applicazioni EWS sono utilizzate in entrambi i ruoli server e client, o ruoli misti in un unico sistema. Dato che XML non fa altro che consegnare i dati sulla connessione HTTP/IP, la presentazione dell'UI può essere costruita a livello locale. Si chiama Rich Client Application. In generale, il client deve avere alcuni componenti per visualizzare il contenuto XML per gli utenti. Emcelettronica offre un progetto FTPmicroopen source per la visualizzazione di news feed RSS su un display LCD. Questo progetto ha integrato una connessione Ethernet, file di sistema FAT su una scheda SD, ed un microcontrollore PIC18. RSS non è solo un feed di notizie, ma anche un generico contenitore XML. Un sacco di servizi web come le previsioni meteorologiche, i servizi geografici, e anche i motori di ricerca sono in grado di supportare query dinamiche RSS su HTTP. Il riferimento è un buon punto di partenza per avviare un'applicazione RSS EWS, come tabelloni pubblicitari e navigatori.

AVR Embedded Weather Web
D'altra parte, il server EWS è anche molto comune. Conosco un progetto premiato in una gara di progettazione, che ha utilizzato il telefono cellulare per il monitoraggio remoto del cuore. Un paziente cardiopatico insiste nel voler praticare passeggiate e scalate. Il suo medico e suo figlio hanno progettato un dispositivo collegato al telefono cellulare per controllare il suo cuore, per registrare la posizione geografica dal GPS, codificare in forma di feed RSS e poi di caricare regolarmente le informazioni su un server web. In questo modo, il suo medico e la sua famiglia possono controllare il suo stato di salute e conoscere la sua posizione. Se ci fosse un'emergenza, si potrebbe chiamare aiuto e individuare la sua posizione il più presto possibile. Dato che le informazioni siano codificate in formato XML, e' possibile vedere il risultato sia in un browser web che su telefoni cellulari. Non è una vera e propria applicazione web server perché questo dispositivo utilizza solo HTTP-POST per caricare i file XML. Ovviamente può essere aggiornato a un'applicazione EWS se la connessione può essere mantenuta in modo permanente. Finora, non ho trovato nessun progetto in grado di utilizzare telefoni cellulari come web server con connessione dial-up. Se l'EWS server può essere collegato ad un modem POTS/ISDN o Ethernet, il server EWS può essere collegato tramite dial-up o IP di rete. Il sistema regolare di sorveglianza per il paziente in ospedale potrebbe beneficiare di questo progetto. Le applicazioni simile includono anche la sorveglianza di sicurezza, domotica e accesso remoto. I clients remoti possono accedere al server EWS tramite telefono cellulare oppure il browser web.

Sono necessarie SOAP, WSDL e UDDI per EWS?

SOAP, WSDL e UDDI sono concetti classici per web services. Nel frattempo un numero sempre maggiore di tecnologie alternative di web service sta assumendo posizioni sul mercato. REST e JSON sono quelli promettenti. Questi protocolli sono più adatti ai sistemi embedded. XML-RPC è un web service in fase iniziale del SOAP. XML-RPC può utilizzare HTTP-POST o HTTP-GET UR in testo puro; è utilizzato nelle applicazioni semplici, come, per esempio, prendere il RSS feed.

Per esempio, la URL di http://news.search.yahoo.com/news/rss;..... prenderà un feed news per cercare la parola chiave "Earthquake" (terremoto). Il risultato sarà un messaggio XML. Puoi estrarre la notizia ed esporla sul tabellone. Non utilizzando SOAP, possiamo utilizzare testo puro in una HTTP query, cio' e' molto utile in IPTV. Oggi sempre più IPTVs possono scaricare supporti digitali tramite i server o connessione P2P; questo metodo può essere utilizzato per estrarre e scaricare la didascalia per un DVD.

Google ed anche altri siti escludono l'interfaccia SOAP e XML-RPC, e utilizzano JSON (JavaScript Object Notation) per offrire testo puro dal server. JSON è un formato adatto per lo scambio dei dati in applicazioni client-server. Visita http://code.google.com/apis/maps/documentation/services.html per controllare i servizi di google map. Sembra un frazione del codice sorgente e questo codice può essere utilizzato in JavaScript. JSON è dedicato agli scopi di JavaScript, ma potrebbe essere buono anche per un sistema embedded in un parser di dati in C, dal momento che la maggior parte dei simboli di punteggiatura sono molto semplici da cercare e da localizzare. Non ho il codice sorgente o libreria per parser JSON, ma credo che qualsiasi programmatore possa fare la propria soluzione.

Un vantaggio del XML è la divisione fra la struttura dei dati e la presentazione del contenuto. La presentazione potrebbe essere CSS o XSLT. E' anche adatto per il server embedded dal momento che siamo in grado di mettere CSS in URL separata, piuttosto che nel server embedded. Per esempio, possiamo mettere CSS e JavaScript in local host (127.0.0.1) quando ci colleghiamo ad un server embedded. In questo modo, solo il nucleo essenziale dei dati è stato trasmesso riducendo cosi' al minimo i requisiti di sistema. Questo approccio è anche molto più efficace di quello vecchio.

Se i servizi web embedded sono obbligati ad allinearsi alla norma SOAP/WSDL/UDDI, allora dobbiamo prendere un microprocessore potente per utilizzare questi protocolli. Questo approccio potrebbe essere flessibile in un ambiente ibrido di dispositivi dai produttori diversi.

Popular Web Services

iPod Touch
Visitando www.programmableweb.com troverai 752 web API per servizi web. Molte di queste API possono lavorare nei sistemi embedded di alta qualità come iPod. L'iPod ha un microprocessore di 500MHz e il browser Safari (dotato di tutte le funzionalità) con il supporto JavaScript. JavaScript non è solo una tecnologia per visualizzare gli effetti visivi di una pagina web. Le applicazioni AJAX utilizzano JavaScript per presentazioni più veloci, applicazioni web completamente interattive con la stessa esperienza del software applicativo in esecuzione a livello locale. Con queste caratteristiche, l'iPod può supportare Google map e YouTube. La maggior parte dei questi sistemi embedded sono dispositivi limitati senza il motore JavaScript, sistema local file ed altri componenti importanti. In sostanza questi sistemi embedded possono utilizzare interfacce XML.

 

 

 

 

 

Elenco per sistema embedded.

  • RSS/Atom sono popolari per feed di notizie e per l'uso generale.
  • GeoRSS/KML/GPX sono utilizzati in Web GIS, GPS.
  • Flickr offre la condivisione delle foto che può essere collegato a PC o telefonini.
  • 411Sync offre SMS communication utilizzata in molte applicazioni.
  • Geocoder, che viene utilizzato in geocoding in Web GIS, ma e' anche utile per dispositivi GPS.
  • YouTube offre video sharing, ma solo per i sistemi embedded di alta qualita'.
  • Lat49 offre Geo-targeted pubblicita' per mappe online.
  • Instant messenger, sara' molto popolare nei prossimi sistemi embedded, dato che IM possa supportare un sistema automatico per alcuni comandi remoti.
  • File Sharing, che può essere utilizzato per il servizio di trasferimento tra i dispositivi.
  • I servizi web finanziari sono servizi commerciali e offrono la quotazione in tempo reale sui telefonini.
  • I servizi web del pagamento saranno più interessanti nelle prossime applicazioni.
  • Sicurezza, che è richiesta in molti ambienti.

Gioca con la tua immaginazione e crea qualcosa di nuovo.

Refereneces

API Dashboard from ProgrammableWeb.com

 

 

 

 

 

XML from w3.org

 

 

 

 

 

SOAP from w3.org

 

 

 

 

 

WSDL from w3.org

 

 

 

 

 

An XML Web Services Development Environment for Embedded Devices, by Florida State Univeristy

 

 

 

 

 

Safari Books Online - Building Web Services with Java: Making Sense of XML, SOAP, WSDL and UDDI

 

 

 

 

 

EMCelettronica offers open source design ftpmicro kit, you can read the RSS news on attached LCD screen. Try it yourself!

 

 

 

 

 

Introduction to Web Services

 

 

 

 

 

Embedded Services from Microsoft Research

 

 

 

 

 

Embedded Web Services: Making Sense out of Diverse Sensors

 

 

 

 

 

Industrial TCP/IP services monitoring through embedded web services

 

 

 

 

 

A new embedded Web services approach to wireless sensor networks

 

 

 

 

 

Web Services on Embedded Devices

 

 

 

 

 

Embedded Web Services

 

 

 

 

 

Web Services User Interface (WSUI) Initiative

 

 

 

 

 

Yahoo aims web services at mobile phones

 

 

 

 

 

libXML in Gnome project.

 

 

 

 

 

expat project page

 

 

 

 

 

Using expat

 

 

 

 

 

The ROMXML from Allegrosoft is a XML parser for embedded system.

 

 

 

 

NanoXML project for Java, just need 6KB memory to parse an XML file.

 

 

 

 

 

McbXML parser.

 

 

 

 

 

TinyXML parser project.

 

 

 

 

 

Building Web Services the REST Way

 

 

 

 

 

JSON definition from Wikipedia, JSON (pronounced as "Jason"), short for JavaScript Object Notation, is a lightweight computer data interchange format. It is a text-based, human-readable format for representing simple data structures and associative arrays (called objects).

 

 

 

XML RPC tutorial

 

 

 

 

 

Using the XML HTTP Request object

 

Repost: 25 Giu 2008

Scarica subito una copia gratis
Tags:

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend