1 RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP Prima parte -...

10

Transcript of 1 RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP Prima parte -...

Page 1: 1 RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP Prima parte - Fare Elettronica n. 212 - Febbraio 2003 - Anno 19 - Cristian Randieri - Intellisystem
Page 2: 1 RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP Prima parte - Fare Elettronica n. 212 - Febbraio 2003 - Anno 19 - Cristian Randieri - Intellisystem

AUTOMAZIONE14

RECS 101: UN WEB SERVEREMBEDDED PER APPLICAZIONIDI CONTROLLO REMOTOTRAMITE TCP/IP

RECS 101: UN WEB SERVEREMBEDDED PER APPLICAZIONIDI CONTROLLO REMOTOTRAMITE TCP/IP

di Cristian [email protected]

Un web server embedded è un web server gestito all’interno di un sistema embeddedcaratterizzato da risorse di calcolo limitate capace di gestire documenti ed applicazioniweb. L’integrazione di un web server all’interno di un dispositivo di rete fornisceun’interfaccia utente grafica costruita tramite il linguaggio HTML. L’applicazione dellatecnologia Web ad un sistema embedded permette la creazione di interfacce utente chesono user friendly, a basso costo, cross platform, e network ready. Aggiungendo allepotenzialità di un web server embedded la tecnologia Java si ottiene un sistema capace digestire vere e proprie applicazioni che possono essere programmate con un linguaggio adalto livello quale il Java. Scopo di questo articolo è quello di presentare una soluzione webserver embedded capace di gestire la Java Virtual Machine. Viene presentata l’architetturadi un web server embedded che può fornire un’interfaccia API (Application ProgramInterface) semplice e al tempo stesso potente. In particolare si discute la progettazione el’implementazione di RECS 101, che è un web server embedded (prodotto da IntellisystemTechnologies) sviluppato al fine di poter gestire piccole applicazioni di controllo remoto. Inconclusione vengono presentate alcune applicazioni pratiche del dispositivo, cheprevedono la realizzazione di circuiti elettronici d’interfaccia, uno studio riguardante deitest di performance di RECS 101 ed un’analisi delle problematiche di protezione daattacchi alla sicurezza da parte di hacker.

I SISTEMI WEB SERVEREMBEDDED ED INTERNETIl World Wide Web (o Web) è in con-tinua evoluzione. Appare chiaro edevidente che tale tecnologia assumedelle nuove funzionalità che vannomolto oltre la semplice visualizzazio-ne delle pagine Web. Per molteapplicazioni commerciali e scientifi-

che il browser web è diventato unostandard per lo sviluppo di interfac-ce utente di numerose applicazioni.Questo perché i browsers web sonocapaci di fornire interfacce GUI avarie applicazioni client/server senzail bisogno di andare ad implementa-re del software per il lato client.Negli ultimi anni è sempre più cre-

sciuto il numero di tecnologie webche possono essere applicate ad ele-menti gestibili dalla rete.Come ben noto la maggioranzadelle reti di computer viene gestitamediante il protocollo TCP/IP.In realtà TCP e IP sono due proto-colli utilizzati per interconnettere lereti. TCP sta per Transport Control

AUTOMAZIONE

prima parte

Page 3: 1 RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP Prima parte - Fare Elettronica n. 212 - Febbraio 2003 - Anno 19 - Cristian Randieri - Intellisystem

AUTOMAZIONE 15

pensa di aggiungere alle funzionali-tà ormai consolidate di un web ser-ver embedded la capacità di potergestire applicazioni Java ecco chequesti sistemi aprono le frontiere acapacità inesplorate, che rendonoessi capaci di eseguire i più varie-gati compiti quali, ad esempio,quelli di controllo remoto, supervi-sione e gestione di sistemi elettro-nici (fig. 1).

Nelle applicazioni di controllo remo-to si fa sempre più presente l’esi-genza di interconnettere apparec-chiature e strumentazioni tramiteweb server embedded al fine diavere una gestione quanto piùdecentralizzata possibile delle lorofunzionalità [2]. Ognuno di questicontroller programmato opportuna-mente diviene capace di eseguiredifferenti algoritmi di controllo.

APPROCCIO MEDIANTEL’UTILIZZO DELLATECNOLOGIA JAVAIl concetto della Virtual Machine diJava è particolarmente indicato perquesto approccio permettendo l’uso

di una strategia di controllo indi-pendente dalla piattaforma hardwa-re del sistema in cui viene gestita.Questa metodologia è stata datempo adoperata nelle applicazioniInternet dove non sono richiestistringenti vincoli di real-time. L’usodel linguaggio di programmazioneJava per le applicazioni di controlloremoto fornisce il vantaggio di inte-grare sistemi general purpose con

internet permettendo la supervisio-ne ed il controllo di sistemi.Oggigiorno i sistemi che si basanosu web server embedded richiedonosempre applicazioni più complesse,facili da programmare, al fine di ese-guire i compiti di supervisione egestione. Per realizzare il concetto dinetwork computing viene presenta-ta la tecnologia Java al fine di otte-nere la combinazione sinergica disistemi di controllo realtime distri-buiti che siano gestibili tramite larete Internet.Con l’incessante sviluppo dellamicroelettronica i sistemi embed-ded sono stati applicati a moltepliciprodotti industriali ed elettronici,

Protocol e IP sta per InternetProtocol. Per essere più precisiquando si parla di protocollo TCP/IPsi intende una suite di protocolli cheè stata promossa come standard diInternet dall’Unites States Secretaryof Defence. Obiettivo della suite diprotocolli TCP/IP è quello di consen-tire la comunicazione di reti simili oeterogenee. Mediante i protocolli iprogettisti possono specificare i pro-cessi di comunicazione senza esserea conoscenza dei dettagli delle enti-tà che compongono la rete. I sistemidi comunicazione più complessi uti-lizzano una suite di protocolli per lagestione dello scambio dei dati. Sipuò pensare che la suite dei proto-colli sia stratificata nel sistema direte del computer dell’utente.Sebbene più protocolli possanocoesistere all’interno di un unicostrato di rete, tutti i protocolli checompongono la suite devonocooperare tra di essi. Una suite diprotocolli può essere anche definitacome “famiglia di protocolli”. Lasuite dei protocolli TCP/IP ha ilcompito di gestire lo scambio deidati su Internet e quindi fornire solu-zioni a problemi che si verificanoquando si presentano errori dicomunicazione durante la trasmis-sione dei dati (ad esempio dovuti aguasti generici delle unità hardwareo difficoltà connesse alla banda pas-sante offerta dalla rete).La gestione di apparati elettronici

tramite web fornisce all’utente l’a-bilità di configurare e monitorarevariegati dispositivi tramite Internetmediante l’uso di un comune brow-ser. La soluzione migliore a questotipo di esigenze è sicuramente datadall’utilizzo di server web embed-ded connesso ad un infrastruttura direte al fine di fornire un interfacciautente basata su web costruitamediante l’utilizzo dell’ormai notolinguaggio HTML [1] unitamente agrafici e ad altre caratteristichecomuni ai web browsers [2]. Se si

AUTOMAZIONE

Architettura di un web server embedded Figura 1

Page 4: 1 RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP Prima parte - Fare Elettronica n. 212 - Febbraio 2003 - Anno 19 - Cristian Randieri - Intellisystem

AUTOMAZIONE16

poiché presentano le caratteristichedi essere economici, affidabili conbuone performance se comparaticon il software utilizzato neiPersonal Computers [3].Il vantaggio delle tecnologieInternet permette di interconnetteretra loro dispositivi e sistemi all’inter-no della rete internet. Tutto questofacilita l’accesso ai dispositivi per-mettendo di effettuare operazioni dimonitoraggio, di controllo, di repor-ting, start up, shutdown di qualsiasidispositivo semplicemente premen-do dei tasti all’interno di un interfac-cia GUI gestita da un comune brow-ser [4].Il nuovo concetto che intendiamointrodurre si basa sull’esecuzione diApplet Java per eseguire operazionidi controllo o di monitoraggio didispositivi remoti . In questo tipo disistemi il controllo distribuito siottiene mediante il trasferimento dipagine HTML e l’esecuzione diapplet Java (fig. 2).

Questo nuovo concetto permettedi espandere le comuni capacità deisistemi di controllo fornendo unsistema remoto distribuito per ilcontrollo di sistemi elettronici. La progettazione di sistemi embed-ded richiede l’integrazione e lo svi-luppo di componenti hardware esoftware: spesse volte queste sonoparticolarmente difficili da realizzarepoiché ogni controller possiede lasua piattaforma hardware e softwa-

re. Anziché adoperare linguaggi dif-ferenti e non standard per l’imple-mentazione del software nella mag-gior parte dei casi è preferibile ado-perare un linguaggio comune [5]. IlJava rappresenta una scelta ottimaleper differenti motivi: è un linguag-gio standard completo di librerie, èun linguaggio molto semplice cheriduce le problematiche inerenti l’a-nalisi dei programmi, la loro ottimiz-zazione e trasformazione [5],[6].

I VANTAGGI DELL’UTILIZZODI JAVAIl linguaggio di programmazioneJava si sta diffondendo sempre piùall’interno dell’industria dell’infor-mation technology particolarmenteper le applicazioni che prevedonol’utilizzo di database. Il Java è un lin-guaggio di programmazione chepermette di installare un’applicazio-ne all’interno di un server ed esserequindi eseguita su diverse piattafor-me hardware. Questi vantaggi pos-

sono essere brevemente riassunti neiseguenti punti:

- Indipendenza dalla piattaforma:diversamente dai comuni compila-tori che producono codice per CPUspecifiche, il Java produce del codi-ce per una CPU virtuale. Al fine dirimanere indipendente da specifichepiattaforme hardware il sistema run-time di Java fornisce un’interfacciauniversale per qualsiasi applicazione

che si desidera sviluppare. Tale inter-faccia denominata JVM (Java VirtualMachine) è una sorta di processorevirtuale che si interpone tra il pro-cessore fisico del PC e l’applicazionescritta in Java. Tuttavia, l’indipen-denza dalla piattaforma non è suffi-ciente per assicurare il successo diun linguaggio di programmazione.La JVM è da diverso tempo inclusaall’interno dei browser più popolariquali, ad esempio, MicrosoftExplorer e Netscape. Alcuni sistemioperativi real-time includono al lorointerno la tecnologie Java e tutto ciòpermette di giungere alla seguenteconclusione “la JVM è una risorsauniversale” [5,7];• Potenza: Il Java racchiude in se

nuove caratteristiche che includonola gestione dei database, l’invoca-zione dei metodi remoti ed altrecaratteristiche inerenti la gestionedella sicurezza.

• Networking: Il Java nasce come lin-guaggio di programmazione distri-buito, il che si traduce nel fatto chela sua progettazione includeva sindall’inizio la gestione di particolarifunzioni inerenti il networking. IlJava ha una libreria vastissima diroutine per la gestione dei protocol-li quali, ad esempio, il TCP/IP,l’HTTP, l’FTP. Le applicazioni Javapossono avere accesso ad oggettiattraverso la rete Internet per mezzodi URL (Universal Resource Locator,più comunemente noto come indi-rizzo del sito web) in un modomolto simile all’accesso ad uncomune file system locale. Unendola tecnologia Java alle potenzialitàdei sistemi basati su web serverembedded si possono ottenere deisistemi molto potenti per la gestio-ne di applicazioni di controllo.

• Efficienza: Le moderne JVM supera-no la forte limitazione delle passatedove veniva evidenziata la proble-matiche dell’estrema lentezza diesecuzione dei programmi.

Attualmente grazie all’utilizzo della

AUTOMAZIONE

Esecuzione di Applet Java per eseguire operazioni di controllo o di monitoraggio di dispositivi remotiFigura 2

Page 5: 1 RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP Prima parte - Fare Elettronica n. 212 - Febbraio 2003 - Anno 19 - Cristian Randieri - Intellisystem

AUTOMAZIONE 17

tecnologia Just in Time (JIT) compi-ler le performance d’esecuzionedelle applet sono state fortementemigliorate [7].

L’UTILIZZO DI JAVAALL’INTERNO DI SISTEMIWEB SERVER EMBEDDEDL’uso di linguaggi object-orientedassieme alle loro tecniche di pro-gettazione permettono di ottenereun codice che risulta essere facil-mente riutilizzabile e mantenibile.Normalmente, un’applicazioneche va trasferita ad un controller sicompone di un file binario esegui-bile che viene direttamente esegui-to dalla CPU. Il vantaggio principa-le di un approccio di questo tipo sitraduce in una maggiore velocitàd’esecuzione.Il Java permette di ottenere la fun-zionalità “compila una sola volta eutilizza più volte”. E’ virtualmentepossibile utilizzare lo stesso codicecompilato in piattaforme differentie, quindi, eseguire il codice su dif-ferenti Sistemi Operativi per fare itest ed il debugging del softwareper poi trasferire il tutto all’internodi un dispositivo di controllo [3].Il Java si presenta come un lin-guaggio di programmazione forte-mente adottato per la programma-zione applicazioni che fanno diinternet un punto di forza. I vantaggi principali inerenti l’uti-lizzo delle applet Java all’interno diun web server embedded possonoessere riassunte nei seguenti punti:

• Non occorre sviluppare unaGraphical User Interface (GUI) poi-ché i browser web di per se suppli-scono a tale funzionalità;

• Le dimensioni del codice Java sonominori rispetto alle istruzioni dicodice macchina rendendo parti-colarmente attrattivo l’utilizzo ditale tecnologia all’interno di webserver embedded dove, sicuramen-te, la dimensioni della RAM messa

a disposizione per le applicazioni èlimitata;

• Essendo l’esecuzione delle applet inlocale, e quindi non all’interno delsistema embedded, l’efficienza e lacomplessità d’esecuzione deglialgoritmi da eseguire sono a caricodel client e non del sistema embed-ded che, sicuramente, avrà risorsedi calcolo molto più limitate rispet-to a quelle di un comune PC;

• Molti costruttori di microprocessoriper sistemi embedded hanno inve-stito nell’implementazione dellaJVM all’interno dei loro dispositivi:di conseguenza gran parte del soft-ware è già disponibile;

• E’ intuitivo prevedere che in unimmediato futuro la maggior partedei kernel dei microcontrolloriincluderà la JVM.

LA JAVA VIRTUAL MACHINE Attualmente esistono diversi modidi implementare la JVM. La fig. 3mostra due possibili implementa-zioni.

Nella prima la JVM viene integrataall’interno di un ambiente di svi-luppo software. L’altra incorporaun Sistema Operativo Java cheviene particolarmente indicata perquelle applicazioni che prevedonol’utilizzo di un unico ambiente disviluppo sia per i programmatoriche per gli utilizzatori [3]. Unavolta disponibile l’interfaccia JVM èpossibile includerla all’interno di

un sistema di sviluppo embeddedintegrandola con le librerie delcodice nativo. Ciò può essere otte-nuto utilizzando qualsiasi linguag-gio di programmazione quale, adesempio, il Java bitcode interpre-ter e, quindi, compilare il tutto inaccordo ai vincoli hardware delsistema in cui la si vuole integrare.L’utilizzo della JVM all’interno diun web server embedded presentail vantaggio che coloro che svilup-peranno il codice per la program-mazione dell’applicazione all’in-terno del sistema embedded utiliz-zeranno istruzioni Java e nondovranno tener contro delle rela-zioni che intercorrono tra la JVM ela microprogrammazione del siste-ma embedded. In più si può forni-re all’utente finale un’interfacciatipo applet parametrica che richie-de semplicemente il setup di alcu-ni parametri. In quest’ultimo casol’utente finale non necessita diavere alcuna conoscenza riguardoil linguaggio di programmazioneJava.

IMPLEMENTAZIONE DELLAJVM ALL’INTERNO DI UN WEBSERVER EMBEDDEDL’applicazione che viene presenta-ta in questo articolo, pur essendostata implementata all’interno diun architettura basata su proces-sore UBICOM, può essere virtual-mente implementata all’interno diqualsiasi microprocessore o micro-controllore che dir si voglia. La fig.4 mostra lo schema architetturalesemplificato di un possibile scena-rio d’applicazione in cui sonorichiesti dei sistemi per il controllodi 16 ingressi digitali e 16 uscitedigitali. In particolare ci si riferisceal dispositivo RECS 101 prodottoda Intellisystem Technologies.

L’architettura presentata permette lasimulazione e lo studio di proceduretipiche dei sistemi di controllo quali,

AUTOMAZIONE

Possibili implementazioni della JVM Figura 3

Page 6: 1 RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP Prima parte - Fare Elettronica n. 212 - Febbraio 2003 - Anno 19 - Cristian Randieri - Intellisystem

AUTOMAZIONE18

ad esempio: acquisizione di segna-li, azioni di controllo per mezzo diattuatori, l’elaborazione e la pre-sentazione delle informazioniacquisite o manipolate.Il sistema embedded presentato sibasa su un software di svilupposcritto in C. Tale programma puòfar eseguire dei task preprogram-mati all’interno della ROM o fareseguire delle applicazioni Java.La capacità di far eseguire applica-zioni Java viene fornita dai seguen-ti componenti software che devo-no essere prevaricati nella ROM deldispositivo mediante il su citatosoftware di sviluppo [6]:- Il file loader .class, che permettedi fare il downloads del codice Javada eseguire nella RAM del disposi-tivo;• L’implementazione della JVM

stessa;• Implementazioni di classi per la

gestione dell’hardware locale;• Classi Java riferite al sistema

embedded.

La JVM è stata implementate in

accordo alle specifiche dettatedallo standard [7], fig. 5.

Il programma monitor che risiedeall’interno del sistema embedded sca-rica il file .class che deve essere ese-

guito all’interno della memoria RAM;dopodiché l’informazione viene pro-cessata e si provvede alla costruzionedella Constant Pool Table. LaConstant Pool è quindi risolta ed ilprogramma passa alla ricerca delmetodo d’inizializzazione del pro-gramma main che dovrà essere ese-guito. Dopo aver trovato questimetodi, la JVM ricerca il Byte Codeche deve essere eseguito e, di conse-guenza, invoca l’interprete di byteco-de. Quando i metodi delle classi Javasono stati invocati la JVM richiamadelle subroutine del firmware delmicroprocessore che provvederannoall’implementazione del metodo spe-cifico.La JVM di per se stessa non comunicadirettamente con l’hardware del siste-ma ma usa delle classi per fare ciò. Unfattore molto limitante di questi siste-mi è dovuto alla scarsità della memo-ria che si ha a disposizione. Di conse-guenza ciò porta a fare delle scelte suquali metodi e classi devono essereimplementati all’interno del sistema.

UN IMPLEMENTAZIONEPRATICA RECS 101RECS 101 rappresenta una realizza-zione pratica di quanto appena espo-sto [8]. La tab. 1 riporta le principalicaratteristiche e specifiche del sistemaproposto.

RECS 101 integra al suo interno unnetwork processor dotato di interfac-cia di rete Ethernet per connettersidirettamente a qualsiasi rete locale siaessa Internet che Intranet. Ciò per-mette agli integratori di sistemi e alleaziende produttrici di connettere iloro dispositivi direttamente adInternet attraverso una rete Lan e, diconseguenza, di gestire da remoto ilcontrollo totale dei loro dispositiviattraverso interfacce grafiche utentepersonalizzabili, direttamente accessi-bili mediante i comuni browser quali,ad esempio, Microsoft InternetExplorer e Netscape Navigator.

AUTOMAZIONE

Architettura della JVM implementataFigura 5

Scenario d’applicazione del dispositivo RECS 101Figura 4

Page 7: 1 RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP Prima parte - Fare Elettronica n. 212 - Febbraio 2003 - Anno 19 - Cristian Randieri - Intellisystem

ni del tipo JPG, GIF, BMP, file videotipo SWF di Flash e qualsiasi altro filesi ritenga opportuno che l’HTTP ser-ver di RECS 101 debba gestire.Selezionando il link “RECS 101

Home page personalizzabiledel dispositivo RECS 101

AUTOMAZIONE 19

RECS 101 si basa sullo schema hard-ware presentato in fig. 6.RECS 101 viene fornito con unapagina web precaricata all’internodella memoria flash del dispositivoche può essere modificata a piaci-mento in modo da personalizzarnele applicazioni.RECS 101 contiene un web serverintegrato capace di gestire fino a512k di documenti ed applicazioniweb: tali risorse sono precaricateall’interno della memoria flash deldispositivo. La fig. 7 è un esempio diuna pagina web gestita da RECS101 che può essere utilizzata perfornire informazioni statiche sul dis-positivo quali, ad esempio, immagi-ni, testi, files etc. La pagina visualizzata può essere per-sonalizzata a piacimento mediantel’uso dei più comuni editor di pagineHTML. Le pagine web possono con-tenere al loro interno file di immagi-

Control Panel” si accederà alla pagi-na web dedicata al controllo dell’ap-plicazione. La caratteristica che rende unico taledispositivo consiste nell’utilizzare unweb server all’interno di un’applica-zione embedded con la possibilità dieseguire del codice Java per lagestione dell’interfaccia relativa alcontrollo delle 16 porte di input edelle 16 porte di output (fig. 8).Tale caratteristica permette di potergestire l’interfaccia utente tramiteun’Applet Java parametrica: in que-sto modo l’utente finale può svilup-pare la propria applicazione di con-trollo in modo molto veloce e sicurosenza dover essere in grado di pro-

grammare in Java.All’interno del pannello di controllo(fig. 8) si può notare un LEDaggiuntivo specificato “Network”.La sua funzionalità è quella di forni-re all’utente lo stato della rete: unaconnessione senza problemi provo-ca il suo continuo lampeggiare. Nelcaso di perdita momentanea delcollegamento il LED non lampegge-rà e, se la connessione non si ristabi-lisce entro qualche minuto il sistemachiuderà la connessione con RECS

AUTOMAZIONE

Specifiche del diapositivo RECS 101 Tabella 1

Schema funzionale di RECS 101 Figura 6

Figura 7

Esempio di una possibile interfacciaGUI implementata in RECS 101

Figura 8

Page 8: 1 RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP Prima parte - Fare Elettronica n. 212 - Febbraio 2003 - Anno 19 - Cristian Randieri - Intellisystem

AUTOMAZIONE20

101. Problematiche di questo tipo nor-malmente non sorgono in reti Intranetma possono capitare se si collega RECS101 alla rete Internet .

PERSONALIZZAZIONEDELL’INTERFACCIA UTENTERECS 101 è un dispositivo totalmentepersonalizzabile. Viene fornito contutto il software necessario allo svilup-patore per poter sviluppare rapidissi-mamente la propria applicazione inmaniera facile e sicura. Il software indotazione contiene alcuni files edun’APPLET (RECS.jar) di controllo chepossono essere personalizzati median-te i parametri riportati di seguito:• PDFOOK: Stringa d’inizializzazione

Applet. Non è possibile effettuarenessuna modifica

• host: Indirizzo IP associato a RECS101(Es. hostvalue="172.16.10.103" vuol direche l’indirizzo IP di RECS è172.16.10.103

• port: Porta TCP adoperata dall’applicazione per comunicare conRECS 101. Il valore di tale porta èfisso e pertanto non modificabile(Es. port value=6001)

• polling: Intervallo di Polling. Ha unarisoluzione di 10 ms e può esseresettato in funzione dell’applicazio-ne. Per es. “polling value=1” signifi-ca che il check dello stato d’ I/O deldispositivo verrà controllato ogni10 ms

• NumLed: Numero ingressi damonitorare mediante LED bicolore(Es. NumLed value=16, verrannovisualizzati 16 LED indicatori distato)

• NumB: Numero di pulsanti dicomando per la modifica dellostato delle uscite (Es. NumBvalue=16, verranno visualizzati 16pulsanti)

Per comodità del lettore la Tab. 2riassume tutti i parametri gestitidall’applet in questione.Di seguito si riporta il frammento delcodice HTML del file index.html rela-

tivo alla personalizzazione dell’Appletin cui si evidenzia il setup dei para-metri di inizializzazione.L’esempio in questione prevede l’uti-lizzo di tutte le 16 uscite e di tutti i 16ingressi messi a disposizione dall’-hardware di RECS 101.

<APPLET CODE=Applicazione.class

ARCHIVE=RECS.jar WIDTH=850

HEIGHT=500>

<param name=PDFOOK

value="Intellisystem

Technologies Device">

<param name=host

value="172.16.10.103">

<param name=port value=6001>

<param name=polling value=1>

<param name=NumLed value=16>

<param name=NumBot value=16>

</APPLET>

La fig. 8 rappresenta l’interfacciautente che si ottiene applicando ilcodice appena esposto. Le limitazionidi quest’Applet consistono nel fattoche non è possibile modificare i testied i colori dei vari componenti che for-mano l’interfaccia utente.Per gli utenti più esperti viene messa adisposizione un’ Applet più elaboratache permette di personalizzare ulte-riormente l’interfaccia grafica utentemediante altri parametri che permet-tono di definirne colori e testi (fig. 9). Di seguito si riassumono i parametriche permettono la personalizzazionedell’Applet in questione (RECS.jar ver-sione avanzata):• PDFOOK : Stringa d’inizializzazio-

ne Applet. Non è possibile effet-

tuare nessuna modifica • host: Indirizzo IP associato a RECS 101

(Es. host value= "172.16.10.103". Vuoldire che l’indirizzo IP di RECS è172.16.10.103

• port: Porta TCP adoperata dall’applicazione per comunicare conRECS 101. Il valore di tale porta èfisso e pertanto non modificabile (Es.port value=6001)

• polling: Intervallo di Polling. Ha unarisoluzione di 10 ms e può essere set-tato in funzione dell’applicazione.Per es. “polling value=1” significache il controllo dello stato d’ I/O deldispositivo verrà controllato ogni 10ms

• Title: Stringa intestazione applicazio-ne. (Es. Title value="RECS I/O DEMO")

• ColTit: Colore da associare alla strin-

AUTOMAZIONE

Parametri di configurazione dell’AppletTabella 2

Interfaccia GUI avanzataimplementata in RECS 101

Figura 9

Page 9: 1 RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP Prima parte - Fare Elettronica n. 212 - Febbraio 2003 - Anno 19 - Cristian Randieri - Intellisystem

AUTOMAZIONE 21

ga impostata nel parametro“Titolo”. (Es. ColTit value="green" , iltesto verrà stampato in verde)

• CAPL: Colore di sfondo Applet. (ES.CAPL value="yellow", lo sfondo saràgiallo)

• NumLed: Numero ingressi da moni-torare mediante LED bicolore (Es.NumLed value=16, verranno visua-lizzati 16 LED indicatori di stato)

• NumB: Numero di pulsanti dicomando per la modifica dello statodelle uscite (Es. NumB value=16,verranno visualizzati 16 pulsanti)

• TBT*: Testo da associare al pulsante *relativo all’uscita * (Es. TBT1value="Comando 10" è il testo daassociare al pulsante 10 per modifi-care lo stato dell’ uscita 10)

• CTBT*: Colore del testo associato altitolo del pulsante *. (Es. CTBT10value="red", il colore associato altesto relativo al pulsante 10 è rosso)

• CLBF*: Colore associato al LED di

stato dell’ uscita * quando quest’ulti-ma è nello stato “OFF” (Es. CLBF10value="gray", il colore del LED asso-ciato allo stato “OFF” dell’ uscita 10sarà grigio)

• CLBT*: Colore associato al LED distato dell’ uscita * quando quest’ulti-ma è nello stato “ON” (Es. CLBT10value= "blue", il colore del LED asso-ciato allo stato “ON” dell’ uscitan.10 sarà blu)

• TLD*: Testo da associare al LED *relativo all’ ingresso *. (Es. TLD1value="Luce Camera" è il testo daassociare al LED 1 per effettuare lalettura dello stato dell’ ingresso 1)

• CTLD*: Colore del testo associato altitolo del LED * relativo all’ingresso *.(Es. CTLD1 value="black", il coloreassociato al testo relativo al LED 1sarà nero)

• CLIF*: Colore associato al LED distato dell’ ingresso * quando que-st’ultimo è nello stato “OFF” (Es.

CLIF10 value="green", il colore delLED associato allo stato “OFF” dell’ingresso 10 sarà verde)

• CLIT*: Colore associato al LED distato dell’ ingresso * quando que-st’ultimo è nello stato “ON” (Es.CLIT10 value="red", il colore del LEDassociato allo stato “ON” dell’ingresso 10 sarà rosso)

Per comodità del lettore la tab. 3 rias-sume in forma tabulare i parametripersonalizzabili dell’Applet per lagestione avanzata di RECS 101.Di seguito si riporta il frammento delcodice HTML del file index.html relati-vo alla personalizzazione dell’Applet incui si evidenzia il setup dei parametri diinizializzazione.

<APPLET CODE=Applicazione.class

ARCHIVE=RECS.jar WIDTH=850

HEIGHT=500>

<param name=PDFOOK

value="Intellisystem

Technologies Device">

<param name=host

value="172.16.10.103">

<param name=port value=6001>

<param name=polling value=1>

<param name=Title value="RECS

101 I/O Demo">

<param name=ColTit

value="black">

<param name=CAPL value="white">

<param name=NumLed value=16>

<param name=NumBot value=16>

Un esempio di personalizzazione

dei pulsanti e degli indicatori

LED è rappresentato dal seguen-

te codice contenuto all’interno

del file index.html:

<param name=TBT1 value="Comando

1">

<param name=CTBT1 value="red">

<param name=CLBF1 value="gray">

<param name=CLBT1 value="blue">

<param name=TLD1 value="Ingresso

1">

<param name=CTLD1 value="black">

<param name=CLIF1 value="green">

<param name=CLIT1 value="red">

AUTOMAZIONE

Parametri di configurazione dell’Applet per la gestione avanzata di RECS 101 Tabella 3

Page 10: 1 RECS 101: UN WEB SERVER EMBEDDED PER APPLICAZIONI DI CONTROLLO REMOTO TRAMITE TCP/IP Prima parte - Fare Elettronica n. 212 - Febbraio 2003 - Anno 19 - Cristian Randieri - Intellisystem

AUTOMAZIONE22

Poiché non occorre RECS 101 persimularne il suo funzionamento,collegandosi al seguente indirizzohttp://www.intellisystem.it/recs/Interfaccia.htm si possono provarele due interfacce proposte.Per chi invece volesse dilettarsi asperimentare la personalizzazionedelle interfacce, IntellisystemTechnologies mette a disposizionenel proprio sito tutto il softwarenecessario. Per fare ciò occorre:• scaricare una delle versioni delle

interfacce proposte dal seguenteindirizzo http://www.intellisy-stem.it/recs/download.htm;

• decompattare i file in una cartel-la;

• modificare i parametri dell'inter-faccia agendo sul file index.htmlutilizzando un qualsiasi editorweb;

• richiamare la pagina 101.htmlmediante un qualsiasi WebBrowser.

I files necessari per la personalizza-zione dell'interfaccia utente diRECS 101 sono essenzialmente tre(a parte tutti quelli necessari per ilcontenuto grafico delle pagineweb): 101.html, index.html,RECS.jar.

La fig. 10 riassume quanto detto inprecedenza, ovvero:

1. La pagina 101.html rappresentala home page del sito web conte-nuto in RECS 101. Al suo interno èpresente un collegamento allapagina Index.html;

2. La pagina Index.html contieneal suo interno i parametri di setupdell’Applet per la gestione degliingressi e delle uscite di RECS 101;

3. Tramite l’applet RECS.jar si inter-viene sulle porte d’input e di out-put per la gestione dell’hardwareche si intende controllare.

NEL PROSSIMO NUMERO SI DIS-CUTERÀ DEI SEGUENTI ARGO-MENTI RIGUARDANTI RECS 101:

1) Configurazione dei parametri direte

2) Upload dell’interfaccia utentepersonalizzata

3) Implementazione delle interfac-ce hardware sulle porte diInput/Output

AUTOMAZIONE

[1] McCombie, B.,”Embedded Web server now and in the future,” Real-TimeMagazine, no.1 March 1998, pp. 82-83.

[2] Wilson, A.,”The Challenge of embedded Internet”, Electronic ProductDesign, January 1998, pp. 31-2,34.

[3] D. Mulchandani, “Java for Embedded Systems”, in IEEE ComputerMagazine, pp. 30-39, May June 1998.

[4] Aptronix, “Bring Embedded System to the Internet”, http://www.aptro-nix.com.

[5] J. Gosling, B. Joy, G. Steele,”The Java Laguage Specification”,http://java.sun.com

[6] J.S. Young et All., “Design and specification of embedded system in javausing Successive, formal Refinement”, Proceedings of DAC’98, 1998Design Automation Conference. San Francisco, C.A.,june 15-19.

[7] T. Lindholm, F. Yellin “The Java Virtual Machine Specification”, 1996.http://java.sun.com

[8] Intellisystem Technologies. http://www.intellisystem.it

Electronic shop 08

Files necessari per la personalizzazione dell'interfaccia utente di RECS 101Tabella 2

BIBLIOGRAFIA