emWeb (HTTP Server)

emWeb ti consente di utilizzare il linguaggio più diffuso al mondo per creare interfacce grafiche utente: HTML.

Il server web ti consente di fornire un’interfaccia utente (UI) indipendente dal sistema operativo. L’interfaccia utente può essere progettata in una gamma che va da molto semplice/basica fino a sostituzioni complete per le tradizionali interfacce utente delle applicazioni, utilizzando tecnologie come JavaScript, AJAX, SSE, WebSockets e altro ancora. In questo modo, il target può essere gestito da qualsiasi dispositivo dotato di un browser.

emWeb può essere incorporato non solo nei target embedded, ma anche in applicazioni PC/Mac o persino mobili.

Anche i target che non dispongono di accesso alla rete tradizionale tramite cavo Ethernet o accesso WiFi possono trarre vantaggio dall’utilizzo di un’interfaccia utente del browser. Con la tecnologia IP-over-USB, SEGGER fornisce una soluzione all’avanguardia per i dispositivi USB alimentati da un’interfaccia utente del browser.

Progetta un’unica interfaccia utente che funzionerà su qualsiasi dispositivo dell’utente finale.

Per il tuo prodotto, l’utilizzo di un’interfaccia utente basata su browser offre molti vantaggi rispetto a un’interfaccia utente tradizionale dell’applicazione. Il vantaggio più grande, naturalmente, è che puoi gestire il target da qualsiasi host dotato di un browser, indipendentemente dal sistema operativo. Mentre questo è un chiaro vantaggio per il programmatore e il progettista di un’interfaccia utente, ci sono ancora più vantaggi per i tuoi clienti, rendendo il tuo dispositivo più user-friendly che mai:

  • Nessun software da scaricare o installare
  • Può essere accessibile e configurato utilizzando qualsiasi dispositivo con un browser (PC/Mac o dispositivi mobili come smartphone o tablet)
  • Può anche essere reso disponibile su Internet

Caratteristiche principali

  • Fornisce interfacce grafiche facili da usare per il controllo o l’acquisizione dei dati
  • Compatibile con tutti i browser per PC/Mac e dispositivi mobili
  • Supporta standard moderni come WebSockets (add-on aggiuntivo), REST, SSE e molti altri
  • Indipendente dallo stack TCP/IP: può essere utilizzato qualsiasi stack con socket
  • Può essere utilizzato su target embedded o PC (Windows/Linux/…) e Mac
  • Esempi inclusi per target embedded e PC, che mostrano casi d’uso semplici e avanzati
  • Alte prestazioni
  • Ridotta occupazioen di memoria
  • La configurazione più semplice può essere eseguita in un singolo task per più connessioni

Dispositivi che utilizzano interfacce utente del browser

I dispositivi che utilizzano interfacce utente del browser stanno diventando sempre più popolari. I seguenti dispositivi spesso utilizzano interfacce utente visualizzabili nel browser per scopi di configurazione:

  • Router, switch e access point
  • Quasi tutti i dispositivi IoT
  • Stampanti
  • Probe di debug
  • Oscilloscopi
  • Molti altri gadget

Diamo un’occhiata ad alcuni esempi:

Stampanti

Le stampanti sono esempi popolari di dispositivi che utilizzano già un’interfaccia utente del browser per la configurazione, almeno se supportano un’interfaccia di rete come Ethernet o WiFi.

Mentre si pensa generalmente che un’interfaccia utente basata su browser sia esclusiva per i dispositivi compatibili Ethernet o WiFi, questo non è dove deve finire!

Anche i target che non dispongono di accesso alla rete tradizionale tramite cavo Ethernet o accesso WiFi possono trarre vantaggio dall’utilizzo di un’interfaccia utente visualizzabile in un browser. Con la tecnologia IP-over-USB, SEGGER fornisce una soluzione all’avanguardia per i dispositivi USB alimentati da un’interfaccia utente del browser. Ciò consente di utilizzare la stessa interfaccia utente per le famiglie di dispositivi che sono disponibili in diversi modelli e funzionalità per quanto riguarda le loro interfacce host.

Un esempio di questo potrebbero essere diversi modelli di stampanti della stessa famiglia di prodotti con diverse interfacce host. Un modello potrebbe essere fornito solo con la USB mentre un altro modello presentare USB, cavo Ethernet e WiFi. Tutti possono condividere la stessa interfaccia utente del browser.

Gadget

Utilizzando la tecnologia IP-over-USB, praticamente tutti i dispositivi dotati di un connettore USB possono presentare un’interfaccia utente del browser. Poiché quasi tutti i dispositivi moderni utilizzano USB standard per la ricarica, ciò significa che tutti questi prodotti sono pronti dal punto di vista hardware per presentare questa tecnologia all’avanguardia.

Ecco alcuni esempi di dispositivi portatili e di ridotte dimensioni che possono beneficiare di un’interfaccia utente visualizzabile in un browser :

  • Cuffie wireless (configurazione di preset)
  • Lettore MP3 (configurazione e gestione delle playlist)
  • Fitness tracker (configurazione e statistiche)

Comunicazione tramite USB

Utilizzando la tecnologia SEGGER emUSB-Web è possibile utilizzare emWeb senza neppure la necessità di uno stack TCP/IP! Guarda un esempio

Altri esempi

L’utilizzo di un’interfaccia utente basata su browser non è solo utile per accedere dall’esterno a un dispositivo. Essendo questo tipo di interfaccia indipendente dal sistema operativo, rappresenta una valida alternativa a qualsiasi tipo di interfaccia utente dell’applicazione. Le interfacce utente progettate in questo modo possono essere facilmente integrate anche in altre applicazioni. Un esempio potrebbe essere una pagina di configurazione di un’applicazione/prodotto che può essere facilmente integrata in qualsiasi altra applicazione utilizzando il motore WebKit.

Requisiti

Stack TCP/IP: emWeb richiede uno stack TCP/IP. È ottimizzato per emNet, ma può essere utilizzato qualsiasi stack TCP/IP conforme a RFC. La spedizione include un campione di implementazione Win32 che utilizza la standard Winsock API, nonché un’implementazione che utilizza l’API socket di emNet.

Multitasking: Il server web deve essere eseguito come thread separato. Pertanto, è richiesto un sistema multitasking per utilizzare il server web emWeb.

Utilizzo delle risorse: La seguente tabella mostra i requisiti approssimativi delle risorse per una tipica configurazione del server web:

Modulo ROM RAM
emWeb Approximately 8 KByte Approximately 2.5 KByte
emNet Approximately 20 KByte Approximately 25 KByte
embOS Approximately 4.4 KByte Approximately 3.4 KByte

Informazioni su HTTP

HTTP è un protocollo di comunicazione originariamente progettato per trasferire informazioni tramite pagine di ipertesto. Lo sviluppo di HTTP è coordinato dall’IETF (Internet Engineering Task Force) e dal W3C (World Wide Web Consortium). La versione del protocollo tipicamente utilizzata è ancora 1.1 che viene estesa da vari sotto-protocolli.

Il protocollo HTTP stesso è implementato sopra il protocollo TCP.

Fondamenti di comunicazione HTTP

HTTP è un protocollo di sfida e risposta. Un client inizia una connessione TCP al server web e invia una richiesta HTTP. Una richiesta HTTP inizia con un token di metodo. [RFC 2616] definisce 8 token di metodo. Il token di metodo indica il metodo da eseguire sulla risorsa richiesta. emWeb implementa i principali metodi che sono tipicamente necessari.

Contenuti dinamici

emWeb supporta differenti tecniche per creare pagine dinamiche:

Common Gateway Interface (CGI): è un meccanismo di sostituzione che viene utilizzato in combinazione con una pagina modello. Un contatore dei visitatori in una pagina con contenuto statico sarebbe uno dei casi d’uso più semplici. La pagina modello può essere una semplice pagina HTML con un segnaposto per il valore del contatore. Ogni volta che la pagina viene elaborata da emWeb, il segnaposto verrà scambiato con l’output di un codice di applicazione personalizzato.

I file virtuali consentono di fornire pagine complete che vengono create quando vengono richieste. Esempi tipici sono i file XML che rappresentano lo stato corrente di un’applicazione e sono quindi soggetti a modifiche per quasi ogni richiesta.

AJAX è un acronimo per Asynchronous JavaScript e XML. Insieme al supporto DOM (Document Object Model) del browser, consente la modifica dinamica di una pagina senza richiedere il ricaricamento della pagina completa. Per richiedere dati, con AJAX il browser deve eseguire il polling dei dati.

SSE: A differenza di AJAX, gli eventi inviati dal server (SSE) sono una tecnica HTML5 che consente a un server di inviare dati al browser, senza che il browser esegua continuamente il polling dei dati e quindi riducendo l’overhead di dati non necessario. SSE funziona facendo abbonare il browser al server web e mantenendo la connessione attiva per ulteriori dati inviati.