Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

53

Transcript of Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

Page 1: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -
Page 2: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

http://www.intellisystem.it

Prefazione Intellisystem Technologies è da sempre presente in riviste prestigiose di carattere nazionale ed estero, presentando sempre nuove idee prodotti e soluzioni all'avanguardia per divulgare le nuove tecnologie. Il presente volume rappresenta la raccolta completa di tutte le pubblicazioni della nostra azienda inerenti l’anno 2003.

Presentazione Azienda Intellisystem Technologies nasce nel 2000 come engineering office per apportare un contributo concreto allo sviluppo ed alla diffusione di sistemi che riescano ad interagire con l'uomo per soddisfare quanto più possibile le sue necessità. Nel 2003 diviene una società il cui obiettivo fondamentale è la progettazione, lo sviluppo e la commercializzazione di soluzioni Hi-Tech inerenti problematiche di tipo informatico, elettronico, di telecomunicazioni e di qualsiasi altra disciplina che necessiti di un continuo supporto alle nuove tecnologie.

La nostra filosofia è quella di indirizzare a tutti le nuove tecnologie presenti sul mercato e di abbinarle al rigore scientifico, espandendo così in tutte le direzioni gli apporti di utilità che da essa ne possono derivare. La ricerca scientifica è il piedistallo su cui poggia l'intento di evoluzione della nostra azienda, completandosi e complementandosi sinergicamente con attività collaterali di Sviluppo, Diffusione, Vendita ed Assistenza: RDDSA (Research, Development, Diffusion, Selling and Assistance).

Intellisystem Technologies vanta al suo attivo numerose attività che spaziano dalla ricerca nell'ambito della fisica nucleare alla progettazione di sistemi "intelligenti", alla didattica mirata alle specificità, alla pubblicazione scientifica, alla consulenza di piccole, medie e grandi aziende, alla progettazione ed alla realizzazione di sistemi software ed hardware per lo sviluppo informatico dei sistemi di monitoraggio, controllo industriale, militare e domestico. Grazie al suo Team di ingegneri, ricercatori e sviluppatori, è oggi in grado di offrire alla propria clientela soluzioni tecnologicamente all’avanguardia totalmente personalizzabili in funzione delle più variegate esigenze.

La nostra azienda ha istituito una rete di penetrazione nel mercato nazionale avvalendosi della collaborazione di aziende partner in grado di soddisfare la risposta a qualunque quesito di necessità, prestando assistenza consultiva, didattica e operativa in qualunque parte del territorio Nazionale con mire espansionistiche rivolte all’estero.

La costante presenza e partecipazione a progetti prestigiosi presso autorevoli istituti di ricerca nazionali ed esteri (quali: INFN “Istituto Nazionale di Fisica Nucleare”, CERN “Organisation Europèenne pour la recerche nuclèare, Ginevra, Svizzera”, ERSF “European Synchrptron Radiation Facility, Grenoble, Francia”, KVI “Kernfysisch Versneller Institut,Groningen, Netherlands.”, ecc.), permette ad Intellisystem Technologies di fornire un costante impulso alla diffusione ed integrazione delle più moderne ed innovative tecnologie presenti nel mercato.

Intellisystem Technologies vanta partnership di carattere scientifico e tecnico-commerciale con aziende leader quali: Telecom Italia, TIM Business, ASTRA, Globalstar, mettendo a disposizione il proprio knowhow tecnologico ed i propri prodotti ad alto contenuto tecnologico.

Tra i nostri clienti spiccano: Honeywell, Alcatel Lucent, la Presidenza del Consiglio dei Ministri, il Ministero dell’Ambiente - Area marina protetta “Isole Ciclopi” Acitrezza (CT), l’orto Botanico dell’Università degli studi di Catania, aziende nazionali ed estere che lavorano per ERG petroli, ecc.

“ Intellisystem Technologies nata dall'amore per la ricerca scientifica applica le moderne tecnologie per il benessere di tutti. ”

Ing. Cristian Randieri Amministratore Unico

Page 3: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

Indice “Parlano di Noi” – Anno 2003

http://www.intellisystem.it - I -

Indice

[1] – C. Randieri, RECS 101: Un web server embedded per applicazioni di controllo

remoto tramite TCP/IP, Prima parte, FareElettronica N. 212 - Febbraio 2003, pp. 14-

22.......................................................................................................................................1

[2] – C. Randieri, RECS 101: Un web server embedded per applicazioni di controllo

remoto tramite TCP/IP, Seconda parte, FareElettronica N. 213/214 - Marzo/Aprile 2003,

pp.124-131.......................................................................................................................11

[3] – C. Randieri, RECS 101: Un web server embedded per applicazioni di controllo

remoto tramite TCP/IP, Terza parte, FareElettronica N. 216 - Giugno 2003, pp. 68-

74.....................................................................................................................................20

[4] – C. Randieri, RECS 101: Un web server embedded per applicazioni di controllo

remoto tramite TCP/IP, Quarta parte, FareElettronica N. 217/218 - Luglio/Agosto 2003,

pp. 84-89..........................................................................................................................28

[5] – C. Randieri, La casa va in Internet - Un web server integrabile per applicazioni di

“Home Building Automation” basate sul protocollo TCP/IP, Il Giornale dell’installatore

elettrico N. 9 – 25 Maggio 2003, pp. 108-110..................................................................35

[6] – C. Randieri, Dossier: Controllo e assistenza da remoto - “Esperimento Diamante”,

Fieldbus & Networks - Giugno 2003, pp. 68-70..............................................................39

[7] – C. Randieri, Dossier Embedded - Supplemento ad Elettronica Oggi N. 324, Giugno

2003, pp. 6, 15, 25...........................................................................................................42

[8] – C. Randieri, Primo Piano: Il mondo wireless - “Sistemi di telecontrollo satellitare",

Fieldbus & Networks - Settembre 2003, p. 37...............................................................46

[9] – C. Randieri. Dossier: Fieldbus a bordo macchina - “Profibus per la fisica nucleare",

Fieldbus & Networks - Settembre 2003, p. 50................................................................48

Page 4: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

1

Page 5: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

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

2

Page 6: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

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

3

Page 7: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

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

4

Page 8: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

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

5

Page 9: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

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

6

Page 10: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

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

7

Page 11: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

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 101Figura 9

8

Page 12: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

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

9

Page 13: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

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

10

Page 14: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

11

Page 15: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE124

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]

In questa seconda parte della presentazione del dispositivo RECS 101 sono affrontatii seguenti argomenti[1]: le problematiche inerenti la configurazione dei parametri direte per il corretto utilizzo del dispositivo all’interno di una rete Intranet/Internet;Come effettuare le operazioni di upload dell’interfaccia GUI personalizzata all’internodella memoria flash del dispositivo; In conclusione vengono presentati due possibilicircuiti d’interfaccia che permettono allo sviluppatore di implementare in modo sicuroun proprio hardware per interfacciare RECS 101 a qualsiasi dispositivo/impianto dacontrollare via Internet.

CONFIGURAZIONE DEI PARAMETRI DI RETEPrima di poter utilizzare RECS 101occorre configurare correttamente isuoi parametri di rete utilizzando ilprogramma shareware di utilità RECSUtility, scaricabile al seguente indirizzohttp://www.intellisystem.it/recs/download.htm. RECS Utility è statoprogettato e realizzato per lavora-re su piattaforma MicrosoftWindows sui sistemi operativi delleversioni 95/98/ME/NT/2000 e XPHome/Professional.Una volta installato ed eseguito RECSUtility, verrà visualizzata la mascherainiziale del programma che permettedi impostare l’indirizzo IP di RECS101 (fig. 1) Prima di configurare l’in-dirizzo IP da assegnare al dispositivoè necessario avere informazioni sullastruttura degli indirizzi IP della rete in

cui si andrà ad installare RECS 101.Pertanto occorrerà conoscere:

• Un indirizzo IP non utilizzato all’in-terno della struttura;

• La Subnet Mask della struttura.

RECS 101 è preconfigurato in fase ditesting con le seguenti impostazionidi fabbrica:

Indirizzo IP: 172.16.10.103Subnet Mask: 255.255.255.0

Per impostare o cambiare l’indirizzo

IP di RECS 101 occorre prima reini-zializzare l’indirizzo IP al valore didefault 0.0.0.0 (operazione che verràdescritta di seguito). Inizializzare unnuovo indirizzo IP per RECS 101implica la rimozione dell’associazioneIP/MAC memorizzata all’interno delPC che s’intende adoperare. Taleinformazione è memorizzata nellacache del protocollo ARP. Tramite ilcomando mostrato di seguito è pos-sibile visualizzare tutte le associazioniIP/MAC presenti nel PC (ovviamentegli indirizzi IP riportati nell’esempiosono puramente fittizi):

AUTOMAZIONE

seconda parte

>> arp –a

Interface: 192.168.1.100 on Interface 2

Internet Address Physical Address Type

192.168.1.15 00-01-95-04-02-03 dynamic

192.168.1.23 00-a0-95-14-12-23 dynamic

12

Page 16: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE 125

mendo il pulsante “Trova” dopo qual-che istante il software restituirà l’indi-rizzo IP correntemente impostato neldispositivo RECS 101. Occorre sottoli-neare che la ricerca non avrà esitopositivo se la Subnet Mask del PC ado-perato per la configurazione è diversada quella impostata all’interno del dis-positivo RECS 101 che per default è255.255.255.0. Verificare anche l’indi-rizzo IP del PC da cui accedete a RECS101 facendo in modo che l’indirizzodel PC ricada all’interno della stessaSubnet Mask di RECS 101.Ad esem-pio, supponendo che RECS 101 siaconfigurato nel modo seguente:

Indirizzo IP: 172.16.10.103 Subnet Mask: 255.255.255.0

il PC con il quale si vuole accedere aRECS 101 dovrà avere la seguenteconfigurazione:

Indirizzo IP: 172.16.10.xxxSubnet Mask: 255.255.255.0

Dove “xxx” sta per qualsiasi numerocompreso tra 0 e 255. Per modificarela configurazione dell’indirizzo IP edella Subnet Mask del PC occorreadoperare l’esatta funzionalità diWindows (fig. 5). Una volta rimossocon successo il vecchio indirizzo IPprecedentemente assegnato a RECS101 si è pronti per inserire in nuovoindirizzo IP selezionando la finestra“Configurazione indirizzo IP” (fig. 1).Se nella tabella “DataBase BootP”appare la vecchia configurazione deldispositivo, occorre premere il pulsan-te “Modifica configurazione” altri-menti premere il pulsante “Aggiunginuovo dispositivo”: si aprirà la finestrariportata in fig. 6. Tale finestra presen-terà i valori in precedenza impostatinel caso in cui il dispositivo sia già pre-sente nel DataBase BootP. Viceversaconterrà i campi vuoti. La fig. 6 ripor-ta l’esempio di quest’ultimo caso.Modificare il campo “Indirizzo IP” colnuovo indirizzo IP, il campo “IndirizzoMAC” (l’indirizzo MAC del vostro dis-positivo è situato nel pannello poste-riore, fig. 4), il campo “Gateway” (seesiste un Gateway nella vostra rete) edin fine il campo “Subnet Mask” (fig.6). Premendo il tasto “Aggiungi” leinformazioni editate saranno memo-rizzate nel database degli indirizzi IPassociato a RECS Utility. Per completare la configurazione del-l’indirizzo IP memorizzato occorre lan-ciare le funzionalità del server BootPpremendo il pulsante “Avvio BootP”della finestra “Configurazione indiriz-zo IP” (fig. 1). Attendere qualcheistante sino a quando lo stato del dis-positivo evidenzia la scritta “Invio dellareplica BootP all’indirizzo IP

La rimozione di tale associazione vafatta utilizzando il comando ARP nelmodo seguente;

>> arp –d 192.168.1.15

Adesso si è pronti a reinizializzare l’in-dirizzo IP all’interno del dispositivoRECS 101. Selezionando la finestra“Configurazione indirizzo IP” e pre-mendo il pulsante “Cancella indirizzoIP” sarà visualizzata la finestra riporta-ta in fig. 2. Dopo aver correttamenteimpostato l’indirizzo IP che si vuolecancellare, automaticamente allapressione del pulsante “OK” l’indirizzoIP di RECS 101 sarà impostato al suovalore di default 0.0.0.0. Nel caso incui non si conosce a priori il vecchioindirizzo IP del dispositivo, si può ado-perare la funzione di ricerca indirizzoIP tramite la pressione del pulsante“Ricerca indirizzo IP”. Sarà visualizzatala finestra riportata in fig. 3. Inserendol’indirizzo MAC riportato nel pannelloposteriore del dispositivo (fig.4) e pre-

AUTOMAZIONE

Schermata iniziale di RECS Utitlity. Figura 1

Finestra per la cancellazione dell’indirizzo IP. Figura 2

13

Page 17: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE126

“ [ x x x . x x x . x x x . x x x ] ” ( d o v e“xxx.xxx.xxx.xxx” sarà il nuovo indi-rizzo IP impostato). Attendere sino aquando il led Tx non finisca di lam-peggiare, quindi premere il pulsante“Arresto BootP” (fig. 1). A questopunto l’indirizzo IP di RECS 101 èstato cambiato. Se l’inizializzazionedell’indirizzo IP è avvenuta con suc-cesso, il Led TX del dispositivo lam-peggerà in continuazione. Per verifi-carne il corretto funzionamento utiliz-zare il comando Ping da DOS. Adesempio, supponendo che il nuovoindirizzo sia 172.16.10.105, se ilcomando Ping risponde come diseguito riportato, allora la modificadell’indirizzo IP ha avuto successo. Incaso contrario ripetere tutto il proce-dimento descritto.

Potrebbe capitare il caso che il disposi-tivo RECS 101 sia settato con un indi-rizzo IP non compatibile con la retenella quale RECS 101 è stato installato.Ciò si traduce nel fatto che RECS 101non può essere indirizzato e di conse-guenza non è possibile cambiare il suoindirizzo IP. In questo caso l’unica solu-zione praticabile è quella di sconnettereRECS 101 dalla rete Lan nella quale erainstallato e connetterlo direttamente adun PC dotato d’interfaccia Ethernetmediante un cavo di rete incrociato.

Le operazioni da compiere sono rias-sunte nei seguenti punti:

1.Scollegare RECS 101 dalla rete Lan.2.Collegare RECS 101 ad un PC trami-

te un cavo di rete incrociato.

Le figure 7 e 8 mostrano la diffe-renza di connessione tra un cavodi rete dritto ed uno incrociato.RECS 101 può essere collegatodirettamente ad internet e quindirendere le sue applicazioni visibilida tutte le parti del mondo se èconfigurato con un indirizzo IPstatico.La fig. 9 ne rappresenta una pos-sibile connessione.

In sintesi ciò che occorre è:

1.Un indirizzo IP statico, ovvero unindirizzo IP che abbia visibilità suInternet.

2.Una connessione diretta ad inter-net ad esempio ADSL o una reteLAN perennemente connessa.

3.Condividere la connessione adinternet tramite un Router e/o unHub/Switch.

4.Collegare RECS 101 alla rete dopoaverlo configurato con il relativoindirizzo IP statico.

UPLOAD DELL’INTERFACCIAUTENTE PERSONALIZZATAPer sfruttare al massimo le potenzia-lità di RECS 101, occorre personaliz-zare l’interfaccia grafica del dispositi-vo agendo e/o modificando i filesforniti dal costruttore. Definita l’in-terfaccia utente per l’applicazioneche s’intende progettare non restache fare l’upload all’interno dellamemoria flash di RECS 101. Si ricor-da che la memoria totale a disposi-zione dell’utente è di 500 KByte, consupporto fino a 256 differenti file.Poiché RECS 101 utilizza un filesystem proprietario, i file relativiall’interfaccia web sono gestitimediante una tabella interna di tipo

AUTOMAZIONE

Indirizzo MAC.Figura 4Finestra per la ricerca dell’indirizzo IP impostato nel dispositivo.Figura 3

>> Ping 172.16.10.105

>> Pinging 172.16.10.105 with 32 bytes of data:

Reply from 172.16.10.105: bytes=32 time=10ms TTL=251

Reply from 172.16.10.105: bytes=32 time<10ms TTL=251

Reply from 172.16.10.105: bytes=32 time=10ms TTL=251

14

Page 18: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE 127

“file index”. Per trasferire i files all’in-terno di RECS 101 è necessario proce-dere prima alla creazione di un file diprogetto che rappresenta l’immaginedei files che dovranno essere memo-rizzati all’interno della memoria flash.Il file di progetto, che presenta un’e-stensione *.REC, può essere unica-mente gestito dal web server integra-to in RECS 101. RECS Utility contieneal suo interno delle funzionalità dedi-cate alla costruzione e all’upload diquesto tipo di file. Per procedere all’u-pload dell’interfaccia utente persona-lizzata occorre seguire i seguenti passi:

1) Creare e/o modificare le pagine web personalizzate con qualsiasi software di web-publishing.

2) Impostare i parametri dell’applet in funzione delle esigenze di progetto.

3) Utilizzare il software RECS Utilityper creare il file di progetto *.REC.

4) Fare l’upload del file di progetto all’interno di RECS 101.

Di seguito è presentato un esempioillustrativo atto a descrivere l’operazio-ne di upload dell’interfaccia persona-lizzata presente nel CD-Rom fornito indotazione situata all’interno della car-tella “CP” (il lettore può scaricare talesoftware direttamente da questo indi-rizzo:http://www.intellisystem.it/recs/downloads/CP.zip). Poiché l’uploaddel file di progetto avviene mediante ilprotocollo UDP (protocollo che nonprevede la conferma della ricezionedei pacchetti inviati) il lettore, in real-tà, pur non avendo a disposizioneRECS 101 può emulare tale funziona-mento anche se il dispositivo non èfisicamente connesso alla rete.

Le operazioni da compiere per proce-dere all’operazione di upload sono leseguenti:

1) Dopo aver lanciato RECS Utilityselezionare l’opzione “WebUpload” come riportato in fig. 10.

2) Premere il pulsante “Seleziona Files

AUTOMAZIONE

Finestra per la configurazione del nuovo indirizzo IP. Figura 6

Maschera di windows per il setup della connessione di rete. Figura 5

15

Page 19: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE128

di progetto” e selezionare la cartellacontenente i files (Ad esempio la cartella Control Panel “CP”contenuta all’interno del CD-Romfornito in dotazione), premere “ok”per proseguire (fig. 11).

3) Inserire quindi il nome da assegnare al file di progetto e premere il pulsante “Salva” (fig. 12).

4) Premere il pulsante “Upload” pertrasferire il file immagine all’internodi RECS 101. Questa procedura attiverà una barra di progressioneche indica lo stato d’avanzamentodell’operazione di upload in corso.Al termine di tale fase saràvisualizzato un messaggio checomunica la chiusura dell’operazione.

Nel caso si volessero programmarepiù RECS 101 con la stessa interfacciautente e quindi col medesimo indiriz-zo IP si possono saltare le fasi descrittenei punti 1-4 a patto di possedere ilfile di progetto *.REC. In questo casopremere il pulsante “Seleziona File diprogetto” (fig. 10), selezionare il filedi progetto da trasferire in RECS 101(fig. 13), quindi procedere con l’ope-razione di upload premendo il pulsan-te “Upload” (fig. 10).

IMPLEMENTAZIONE DELLEINTERFACCE HARDWARE SULLEPORTE DI INPUT/OUTPUTRECS 101 si interfaccia con l’impiantoo dispositivo da controllare mediantedue porte a 16 bit digitali, rispettiva-mente, una di Input ed un’altra diOutput poste sul frontalino posteriore.La fig. 14 riporta la piedinatura deiconnettori Cannon a 25 poli che ospi-tano tali porte. Il progettista che intende interfacciareRECS 101 deve predisporre delle inter-facce che consentono il correttorispetto delle caratteristiche elettroni-che della logica TTL implementatanelle due porte. Di seguito distingue-remo due tipi d’interfacce rispettiva-mente una per la porta di Input edun’altra per la porta di Output.

UNITÀ D’INPUTPoiché l’interfaccia di I/O di RECS 101lavora con livelli logici TTL il dispositi-vo da interfacciare alla porta d’ingres-so deve presentare anch’esso un inter-faccia di tipo TTL. I 16 bit d’ingressoper l’applicazione fornita sono statiprogettati per funzionare in logica TTL“Low Active”.Non sempre però i dispositivi hannodelle porte TTL e perciò, in questocaso, è opportuno adoperare un cir-cuito che interponendosi tra RECS101 e il dispositivo da interfacciarepossa connettere i due dispositivisenza che essi corrano il rischio di dan-neggiarsi. Il circuito suggerito utilizzadei fotoaccopiatori che, garantendo

AUTOMAZIONE

Realizzazione di un cavo incrociato.Figura 8

Esempio di una possibile connessione di RECS 101 ad Internet tramite una linea ADSL.Figura 9

Tipologie di cavi di rete cavo “dritto” e cavo “incrociato”.Figura 7

16

Page 20: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

Selezione dei file di progetto.

AUTOMAZIONE 129

un totale isolamento tra i due disposi-tivi, ne assicurano il corretto funziona-mento. La fig. 15 mostra una possibi-le realizzazione del circuito proposto.

UNITÀ D’OUTPUTRECS 101 è dotato 16 uscite che lavo-rano con livelli logici TTL progettatiper funzionare in logica “HighActive”. Affinché RECS 101 possaessere correttamente interfacciato conun altro dispositivo che lavora con

AUTOMAZIONE

Figura 11

Maschera per la gestione dell’upload di RECS Utility. Figura 10

Creazione del file di progetto. Figura 12

Selezione del file di progetto. Figura 13

Piedinatura dei connettori di I/O di RECS 101. Figura 14

17

Page 21: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE130

tensioni diverse si consiglia l’uso difotaccopiatori che garantendo untotale isolamento tra i due dispositivine assicurano il corretto funzionamen-to. La fig. 16 mostra lo schema elettri-co di un circuito d’esempio per la rea-lizzazione di un’interfaccia d’uscita dacollegare a RECS 101. Tale circuito sipresta benissimo per tutte quelle

applicazioni nelle quali è necessarioeffettuare un controllo di tipoON/OFF di carichi di qualunque tipo. Poiché il circuito contiene dei relayassieme agli optoisolatori si ottiene uncircuito doppiamente isolato sia galva-nicamente (per mezzo dei realy) cheotticamente (mediante l’uso di fotoac-coppiatori). Questa proprietà è da non

sottovalutare per prevenire possibilirischi di danneggiamento di RECS 101o peggio ancora di tutti i sistemi pre-senti nella rete a cui è connesso RECS101: in questo modo si è sicuri che perqualsiasi operazione errata compiuta avalle dell’interfaccia il danno è comun-que confinato al danneggiamento del-l’interfaccia stessa.

DEVELOPER’S BOARDSu richiesta dell’utente, IntellisystemTechnologies è in grado di fornireuna developer’s board per il dispo-sitivo RECS 101 (fig. 17).La developer’s board di RECS 101è una scheda che integra al suointerno 16 switches per la simula-zione dei 16 ingressi digitali diRECS 101 e 16 display a LED perle relative 16 uscite. Gli switchrelativi ai 16 ingressi sono statiprogettati per lavorare secondologica TTL “Low Active”, e i 16display relativi all’output sonostati progettati per lavoraresecondo logica TTL “High Active”compatibilmente alle specifiche diRECS 101. Le tabelle 1 e 2 riportate di segui-

AUTOMAZIONE

Interfaccia per la connessione di un dispositivo alla porta d’ingresso di RECS 101.Figura 15

Interfaccia per la connessione di un dispositivo mediante relay alla porta d’uscita di RECS 101Figura 16

18

Page 22: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE 131

board è possibile progettare e svi-luppare applicazioni senza aver adisposizione l’eventuale impiantoda controllare. Dotata di due con-nettori ausiliari la RECS developer’sboard permette allo sviluppatoredi estendere le sue funzionalità adaltri dispositivi elettronici in mododa poter effettuare velocemente lecomuni operazioni di debuggingdelle applicazioni.La fig. 18 riporta la piedinaturadei connettori ausiliari descritti inprecedenza.

Nel prossimo numero si discuteràdei seguenti argomenti riguardantiRECS 101:

1) Protocollo di comunicazioneimplementato in RECS 101.

2) Monitor dello stato di I/O.3) Controllo dei comandi di Output.4) Comunicare con RECS 101:

L’interfaccia Socket in C.5) Comunicare con RECS 101:

L’interfaccia Socket in Java.

AUTOMAZIONE

to riassumono quanto detto inprecedenza.La RECS developer’s board nonnecessita di alimentazione esternapoiché gli viene fornita diretta-mente da RECS 101 tramite i dueconnettori relativi all’IO.Mediante la RECS developer’sRECS developer’s board. Figura 17

Logica “Low Active”. Tabella 1

Logica “High Active”. Tabella 2

[1] Intellisystem Technologies“RECS 101 Manuale Utente”,http://www.intellisystem.it

BIBLIOGRAFIA

Piedinatura dei connettori ausiliari presenti nella RECS developer’s board. Figura 18 Electronic shop 24

19

Page 23: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

20

Page 24: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE68

RECS 101: UN WEB SERVEREMBEDDED PER APPLICAZIONIDI CONTROLLOREMOTO TRAMITE TCP/IP

RECS 101: UN WEB SERVEREMBEDDED PER APPLICAZIONIDI CONTROLLOREMOTO TRAMITE TCP/IP

di Cristian Randieri [email protected]

PROTOCOLLO DI COMUNICAZIO-

NE IMPLEMENTATO IN RECS 101

RECS 101 effettua il controllo dellesue porte digitali mediante un inter-faccia basata sui socket di Internet.Per ottenere il controllo remoto delleporte di I/O attraverso Internet, ènecessario che l’interfaccia che gesti-sce i socket venga implementata nelPC dell’utente che intende collegarsia RECS 101 attraverso il protocolloTCP/IP.La potenzialità di RECS 101 consistenel fatto che tale interfaccia può esse-re implementata indifferentementemediante un’ Applet Java (che vieneeseguita all’interno del Web Browserche si collega al dispositivo RECS 101)o un’applicazione C/Java che utilizzi isocket di Internet (figura 1).Ovviamente per fare ciò occorre pro-gettarle adeguatamente aderendoallo standard fissato dalle regole dellasuite di protocolli TCP/IP. Tali interfac-ce si occuperanno quindi di inviare ericevere i comandi per il controllodelle porte di I/O attraverso l’indirizzo

IP impostato su RECS 101 e la relativaporta fissata alla 6001.RECS 101 sioccuperà dell’interpretazione deicomandi di controllo ricevuti o tra-smessi dal dispositivo elettronico dacontrollare ad esso connesso.I comandi di controllo si suddividonoin due categorie che identificano dueoperazioni diverse:

Monitor Stato I/OTramite quest’operazione è possibileavere informazioni inerenti lo stato ditutte le linee di I/O contenute nelledue porte a 16 bit di RECS 101. Icomandi relativi a quest’operazionesono essenzialmente due:

• I/O Get Command: È il comandomediante il quale l’interfaccia socketinterroga RECS 101 sullo stato delleproprie porte.

• I/O Get Command Responce: È ilcomando di risposta mediante ilquale RECS 101 comunica all’inter-faccia socket lo stato delle sue portedi I/O.

Controllo dell’OutputQuesto tipo di operazione, gestitaunicamente dal comando Output SetCommand è utilizzata dall’interfacciasocket per settare i valori della portad’Output di RECS 101. La tabella 1riassume i comandi relativi alla comu-

In questa terza parte della presentazione del dispositivo RECS 101 vengono affrontatii seguenti argomenti: il protocollo di comunicazione implementato in RECS 101 edesempi di metodologie per la progettazione di applicazioni personalizzate mediantel’implementazione di socket Internet in C e in Java.

AUTOMAZIONE

terza parte

Figura 1: Possibili scenari d’implementazione dell’interfaccia di comunicazione socket di RECS 101

21

Page 25: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE 69

nicazione e i tipi di messaggi che ven-gono scambiati tra l’interfaccia socketed il dispositivo RECS 101.

Monitor dello stato di I/OLo stato della porta di I/O di RECS 101è controllato mediante comandi gesti-ti tramite l’interfaccia socket che prov-vede a far dialogare il PC utente conRECS 101.Più esattamente il comando che il PCutente deve inviare per ricevere da partedi RECS 101 lo stato delle porte di I/O èlo “0x75”, che si compone di un byte.Quando RECS 101 riceverà talecomando provvederà a comunicare lostato delle porte di I/O utilizzando 4byte come riportato in tabella 2.Appare evidente che lo stato delleporte di I/O dipenderà dalla logicaimplementata dall’utilizzatore di RECS101. Per esempio, supponendo che ilcircuito da interfacciare a RECS 101 siastato progettato per lavorare secondola tecnica “Active LOW” ciò equivale adire che un ipotetico diodo Led colle-gato ad un’uscita della porta di Output

sia acceso quando a quest’ultima vieneinviato uno zero logico. Se adesso con-sideriamo il caso in cui i bit 0,2,4 e 10della porta di Output siano nello statologico alto e i bit 1,3 e 5 della porta diInput siano anch’essi nello stato logicoalto, RECS 101 alla ricezione delcomando “0x75” risponderà comedescritto nella tabella 3.A questo punto l’interfaccia socket traRECS 101 ed il PC utente si occuperàdell’interpretazione di questo valorevisualizzandolo sul PC utente.

Anche se i dati relativi allo stato delleporte di I/O sono contenuti in 4 byte,RECS 101 invierà all’interfaccia socket

Figura 3: Comandi di controllo di RECS 101

Figura 4: Comando di controllo della porta di Output di RECS 101

una parola di 16 bytes.Di conseguenza l’utente dovrà inter-pretare solamente i primi 4 bytes delpacchetto ricevuto.Ciò è dovuto al fatto che, come dettoin precedenza, la trasmissione di que-ste informazioni avviene mediante isocket che operano tramite il protocol-lo TCP/IP che a sua volta opera sullostandard Ethernet.Poiché lo standard Ethernet imponeuna lunghezza minima del pacchettodi 64 bytes (inclusi i gli headers IP eTCP) [1], e considerando il fatto chenel caso in cui venga generato un pac-chetto la cui lunghezza minima è infe-riore ai 64 bytes questi viene scartato,bisogna arrivare alla conclusione cheanche se RECS ne avrebbe di bisognosolamente 4 si è costretti ad usarne16,di conseguenza, l’utente dovrà inter-pretare solamente i primi 4 bytes delpacchetto ricevuto (tabella 4).

Controllo dei comandi di OutputQuesto tipo di comando viene utilizza-to in tutti quei casi in cui si vuole modi-ficare il valore di un bit della porta diOutput di RECS 101 senza che vengagenerato un messaggio di conferma.La tabella 5 riporta il formato del rela-tivo comando “0x76” che si componedi 4 bytes di cui il primo contiene ilcomando vero e proprio e gli altri duerappresentano il nuovo stato che laporta d’Output dovrà assumere.Per esempio, supponiamo il caso in cuisi voglia modificare lo stato della portad’Output di RECS 101 settando allostato logico “alto” i bit 0,1,2 e 3lasciando tutti gli altri nello stato logi-co “basso”. Allora poiché il corrispon-

AUTOMAZIONE

Tipo di operazione Comando DirezionePC Utente RECS 101

Monitor Stato I/O I/O Get CommandI/O Get Command Response

Controllo dell’Output Output Set CommandTabella 1: Comandi relativi alla comunicazione e i tipi di messaggi che vengono scambiati tra l’interfaccia

socket ed il dispositivo RECS 101

Figura 2: Schema funzionale per la gestione di un dispositivo elettronico tramite RECS 101

22

Page 26: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE70

Tabella 2: Controllo dello stato delle porte di I/O di RECS 101

Tabella 3: Esempio di codifica dello stato della porta di I/O

Byte 1 Byte 2 Byte 3 Byte 4MSB LSB MSB LSBStato della porta di Input Stato della porta di Output

dente valore in esadecimale è 0x000F,occorrerà inviare a RECS 101 il valoreesadecimale 76:00:0F come mostratonella tabella 6.

COMUNICARE CON RECS 101:

L’INTERFACCIA SOCKET IN C

Si riporta, di seguito, un esempio dicodice sorgente scritto nel linguaggioC, il quale rappresenta l’implementa-zione di un’interfaccia socket basatasulle API dei socket di Berkely. I fram-menti di codice riportati di seguito, sioccupano di gestire rispettivamente il“Monitor Stato I/O “ e il “Controllodell’Output” descritti precedentemen-te.Prendendo spunto da questi esempil’utente oltre a capire i meccanismi difunzionamento descritti potrà esserecapace di costruire una propria inter-faccia personalizzata che funzioneràcome applicazione, ovvero permetteràdi gestire RECS 101 attraverso il proto-collo TCP/IP ma senza il supporto diun Web Browser.Un’applicazione di questo tipo pote-

rebbe essere utili per tutte quelle esi-genze di protezione e di riservatezzache escludano l’utilizzo di unatale interfaccia.Come primo esempio si riporta la pro-cedura IOMonitor che si occupa dimonitorare lo stato delle porte di Inpute di Output di RECS 101.Per poter gestire tale operazioneoccorre per prima cosa definire duebuffer rispettivamente commandBufche conterrà il codice relativo alcomando da inviare a RECS 101 eResponseBuf che conterrà il valoreletto nella porta di I/O. Occorrerà inol-tre definire delle variabili di ausilioquali:

• commandLen: è un intero che con-tiene la lunghezza del comando rela-tivo a commandBuf.

• lenReceived: intero che conterrà lalunghezza del buffer di ricezioneResponseBuf.

• i: variabile intera da utilizzare per icicli iterativi.

Definite le variabili occorre inizializzareil Socket TCP mediante la chiamata allaprocedura TCPSocketInit() che perbrevità non viene riportata. Si passaquindi ad inizializzare il buffer che con-terà il comando utilizzando la costanteIOGet, che definita altrove, è uguale a0x75 che rappresenta il codice esade-cimale del comando Monitor StatoI/O.A questo punto utilizzando l’istruzionesendto s’invia l’istruzione MonitorStato I/O a RECS 101, inviando comeparametri il valore del buffer e altreinformazioni riguardanti l’indirizzo IPdi RECS 101.Poiché la funzione sendto restituisceun valore che è uguale a -1 in casod’errore, al verificarsi di quest’eventosarà visualizzato un opportuno mes-saggio d’errore indicante un problemariscontrato durante la comunicazionecon il dispositivo.Inviato il comando Monitor Stato I/Obisogna predisporre l’interfaccia socketa ricevere le informazioni che scaturi-scono dall’interrogazione fatta.Per prima cosa bisogna allocare i bufferdi ricezione ResponseBuf, dopodichémediante l’istruzione recvfrom (che è lacorrispondente dell’istruzione sendtonel caso della ricezione) si riceveranno

AUTOMAZIONE

Tipo Numero di Byte1 2 3 4

Comando per monitorare lo stato delle porte di I/O 0x75Risposta contenete lo stato delle porte di I/O Stato della porta di Input Stato della porta di Output

2 bytes 2 bytes 60 bytesStato della porta di Input Stato della porta d’Output Dati non utilizzati

Tabella 4: Formato del pacchetto ricevuto dall’interfaccia socket.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 01 1 1 1 1 0 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0

1111 | 1011 | 1110 | 1010 = 0xFBEA 0000 | 0000 | 0010 | 1010 = 0x002AStato della porta di Input Stato della porta di Output

23

Page 27: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE 71

le informazioni relative allo stato dellaporta di I/O di RECS 101. Poiché l’istru-zione recvform restituisce un valoreuguale a -1, in caso d’errore, è possibi-le implementare delle istruzioni cheavvertano nel caso in cui ci siano statidegli errori di comunicazione.Supponendo che non ci sono statierrori durante la comunicazione, si puòpassare alla visualizzazione dello statodelle porte di I/O mediante la letturadel buffer di ricezione Response Buf.La procedura può terminare chiudendoil Socket TCP e rilasciando le locazioni dimemoria allocate per la gestione deibuffer (vedi listato 1) Il secondo esem-pio che si riporta serve a variare lo statodella porta di Otuput di RECS 101.In particolare si riporta come esempiola procedura per modificare un solo bitdella porta di Output che una voltaselezionato verrà portato a livello logi-co alto. Per tale scopo adopereremo laprocedura SetOutput(). Come nelcaso precedente iniziamo con ledichiarazioni delle variabili locali:

• commandBuf: è un array di carat-teri che conterrà i tre byte checompongono il comando OutputSet Command.

• commandLen: è un intero checontiene la lunghezza in byte del-

l’istruzione Output Set Command.• outbit: è un intero inizializzato al

valore zero che conterrà la posi-zione del bit della porta di Outputche si vuole modificare.

• outdata: è un intero inizializzatoal valore 0x0001 che viene utiliz-zato come maschera per la modi-fica del singolo bit che compone

la parola relativa alla porta diOutput.

La prima operazione da svolgere èquella di richiedere quale bit all’in-terno della parole che compone laporta di Output si vuole modificare.

Tale valore è quindi memorizzatonella variabile outbit. Richiamiamola procedura IOMonitor() per legge-re lo stato della porta di I/O cheverrà memorizzato all’interno del-l’array IOStatus.Da notare che IOStatus [2] conterràla parte MSB della porta di Output eIOStatus [3] conterrà la parte LSB.

AUTOMAZIONE

Tabella 5: Formato del commando di controllo della porta di Output

Tipo Numero di BytesComando di controllo della porta d’Output 1 2 3

0x76 Stato della porta di Output

Tabella 6: Esempio di modifica dello stato della porta d’uscita di RECS 101

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 00 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1

0000|0000|0010|1111 = 0x000FStato della porta d’output

Comando di controllo della porta d’Output MSB Porta Output LSB Porta Output15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 00 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1

0x76 0x00 0x0F

Figura 5: Esempio che illustra l’algoritmo per settare a livello logico “alto” il 5° bit della porta di Output di RECS 101

24

Page 28: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE72

A questo punto occorre ristabilire unaconnessione con RECS 101 pertantoreinizializziamo il Socket tramite laprocedura TCPSocketInit(). Poiché inC quando si definisce una variabile ditipo int questa viene allocata all’inter-no di una cella di memoria di 16 bitsia IOStatus [2] che IOStatus [3] saran-no contenuti in due celle da 16 bit.Occorre quindi fare in modo che que-ste siano compattate come unicovalore a 16 bit, tale operazione vienesvolta eseguendo l’operazione logicasui bit di IOStatus [2] e IOStauts [3]:

outdata=(Shift di 8 posizioni versosinistra di IOStatus[2]) OR (IOStatus[3])

Quanto appena detto viene espleta-to da un unica istruzione riportatanel listato:

outdata|=((IOStatus[2]<<8) |IOStatus[3]);

Essendo il nostro obiettivo portare alivello logico alto solamente il bit sele-zionato tramite la variabile outbit, l’o-perazione necessaria da fare è quelladi utilizzare la variabile outdata prece-dentemente inizializzata ad 1 e farlashiftare (a livello di bit) di tante posi-zioni verso la sinistra rispetto al valoredi outdata, in questo modo il bit postoinizialmente uguale ad i in outdata siposizionerà alla relativa posizionelasciando tutti gli altri bit uguali a zero.Quanto detto si riassume nellaseguente pseudo istruzione:

outdata= outdata OR (1 Shift di out-bit posizioni verso sinistra)

Che si traduce nella seguente istru-zione C:

outdata |= (int) (1 << outbit);A questo punto la variabile outdataconterrà il nuovo valore dello statodella porta di Out con il bit seleziona-to portato a livello logico alto. Occorre

AUTOMAZIONE

LISTATO 1//-------------------------------------------

// RECS 101: Esempio di programmazione di

// un interfaccia socket in C

// Procedura IOMonitor

// By Intellisystem Technologies

// http://www.intellisystem.it

//-------------------------------------------

void IOMonitor()

{

char commandBuf, *ResponseBuf ;

int commandLen, lenReceived ;

int i ;

// Inizializzazione del Socket TCP

TCPSocketInit() ;

// Esegui I comandi TCP

commandBuf = IOGet ;

commandLen = 1 ;

// Invia I comandi a RECS 101

err = sendto (sock,&commandBuf,commandLen,0,

(struct sockaddr*)&clientAddr,sizeof(clientAddr));

if (err == -1)

{

perror("\n Errore nell’invio dei dati !! \n");

exit (1);

}

// Allocazione di un buffer per I pacchetti

// in ingresso, 1 pacchetto = 16 bytes

ResponseBuf = calloc(0x10, sizeof(char)) ;

// Ricezione dei pacchetti entranti

lenReceived = recvfrom (sock,ResponseBuf,0x10,0,

(struct sockaddr*)&clientAddr,&clientLen);

if (lenReceived < 0)

{

perror("\n Errore nella ricezione dei dati??? \n") ;

exit(0) ;

}

// Visualizza la dimensione dei pacchetti entranti

printf("\n%d N. di bytes ricevuti -> \n", lenReceived);

// Memorizza lo stato delle porte di I/O

// per usi futuri nell’array IOStatus

for (i=0; i<4; i++)

IOStatus[i] = ResponseBuf[i];

// Visualizza lo stato delle porte di I/O

printf("\n\n* Stato delle porte di I/O di RECS 101 *\n") ;

printf("Porta di Input : %x:%x\t\t Porta di Output : %x:%x",

IOStatus[0], IOStatus[1], IOStatus[2], IOStatus[3]) ;

printf("***** Intellisystem Technologies *****\n") ;

// Rilascia le allocazioni di memoria allocate per il buffer

free(ResponseBuf) ;

// Chiude il Socket TCP

TCPSocketClose() ;

}

25

Page 29: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE 73

adesso prepararsi per eseguire il com-mando Output Set Command. Perfare ciò dobbiamo riempire il buffercommandBuf di tre byte rispettiva-mente, uno per il codice istruzione0x76 e i rimanenti che conterranno laparte MSB e LSB del nuovo stato dellaporta di Output. Adoperando leseguenti istruzioni:

IOStatus[2]=(outdata&0xff00)>> 8;IOStatus[3] = (outdata & 0x00ff) ;

Facciamo in modo che IOStatus [2]contenga la parte MSB del nuovostato della porta di Output, il ché siottiene eseguendo la seguente ope-razione logica sui bit di outdata:

IOStatus[2]= Shift di 8 posizioni verso destra(outdata AND 11111111|00000000)

Per il secondo caso sarà sufficienteeseguire solamente la seguente ope-razione logica sui bit di outdata:

IOStatus[3]= outdata AND11111111|00000000

Riempito il buffer che conterrà ilcomando da inviare a RECS 101, nonci rimane che adoperare l’istruzionesendto per rendere tale comando ope-rativo.Si ricorda che tale istruzione restituisceun valore che nel caso sia -1 indica chel’informazione non è stata trasmessacorrettamente.Per concludere, l’ultima operazione dafare è quella di chiudere il socketmediante la chiamata alla proceduraTCPSocketClose.(vedi listato 2)

Per maggiore chiarezza la figura 5riporta un esempio pratico di quantodescritto precedentemente, pertantosi supporrà quanto segue:

• Lo stato della porta di Output diRECS 101 è uguale a00000000|10001001.

• Si vuole portare a livello logico “alto”

AUTOMAZIONE

LISTATO 2//-------------------------------------------

// RECS 101: Esempio di programmazione di

// un interfaccia socket in C

// Procedura SetOutput

// By Intellisystem Technologies

// http://www.intellisystem.it

//-------------------------------------------

void SetOutput ()

{

char commandBuf[3] ;

int commandLen ;

int outbit=0, outdata=0x0000 ;

int err ;

// Richiede quale bit si vuole portare a livello logico

// alto della porta di Output

printf(" Prego selezionare il bit della porta d’Output

di cui si vuole invertire lo stato logico “alto”(0-15) :");

scanf("%d", &outbit) ;

// Legge lo stato corrente delle porte di I/O

IOMonitor() ;

// Re-Initializza il Socket TCP

TCPSocketInit() ;

// Determina il nuovo valore della porta d’Output a partire

// dallo stato attuale delle uscite

outdata = ((IOStatus[2]<<8) | IOStatus[3]) ;

outdata |= (int) (1 << outbit);

// Or operation with currentle selected Bit

// Memorizza il nuovo stato della porta di Output

IOStatus[2] = (outdata & 0xff00)>> 8 ;

IOStatus[3] = (outdata & 0x00ff) ;

// Costruisci il buffer che conterrà Il comando

// Output Set Command

// 1) Command ID IOSet=0x76

commandBuf[0] = IOSet ;

// 2) Output status set

commandBuf[1] = (BYTE) ((outdata & 0xff00) >> 8) ;

commandBuf[2] = (BYTE) (outdata & 0x00ff) ;

commandLen = 3 ;

// Invia I comandi a RECS 101

err = sendto (sock,&commandBuf,commandLen,0,

(struct sockaddr*)&clientAddr,sizeof(clientAddr)) ;

if (err == -1 )

{

perror("\n Errore nell’invio dei dati !! \n");

exit (1);

}

// Chiude il Socket TCP

TCPSocketClose() ;

}

26

Page 30: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

[1]Introduzione allo stack TCP/IP,IntellisystemTechnologie,http://www.intellisystem.it/ download.htm

[2]Netid Managed Services,Information technology,Northwestern Technology,http://gradeswww.acns.nwu.edu/ist/snap/doc/snif-fing.html.

[3]Internet spoofing referencepage, http:// www.brd.ie /paper/ sslpaper / hyper-lin.html.

AUTOMAZIONE74

il quinto bit della porta di Output apartire dalla destra.

COMUNICARE CON RECS 101:

L’INTERFACCIA SOCKET IN

JAVA

Come detto in precedenza per supera-re tutte le limitazioni dovute allagestione di RECS 101 mediante unsoftware applicativo la soluzione pro-posta da Intellisystem Technologiesutilizza la tecnologia Java che prevedela creazione di un’Applet di controllo,gestita mediante un interfaccia brow-ser. Come ben noto, le Applet sono deiprogrammi autonomi, scritti in Java,eseguibili mediante un comune brow-ser. La potenzialità di un software scrit-to in Java, consente di essere totalmen-te indipendenti dalla piattaforma HWsu cui si esegue l’applicazione. Senzaentrare troppo nei dettagli della pro-grammazione in Java riportiamo diseguito un frammento di codice Javariguardante un esempio d’implemen-tazione dell’interfaccia socket basatasu Applet che permette la ricezione etrasmissione di degnali di I/O, attraver-so il protocollo TCP. Il lettore più atten-to può paragonare i codici seguenticon quelli scritti in C ed evidenziarequindi le analogie in termini di funzio-nalità. (listato 3)

AUTOMAZIONE

LISTATO 3//------------------------------------------

// RECS 101: Esempio di programmazione di un interfaccia

// socket in Java

// Procedura readIOport

// By Intellisystem Technologies

//------------------------------------------

public int readIOport()

{

Socket socketTCP = null;

int tmp = 0;

int inputData = 0;

byte rxData[] = new byte[16];

byte data[] = {COMMAND_GET};

try {

socketTCP=new Socket(InetAddress.getByName(m_host), m_port);

socketTCP.setTcpNoDelay(true);

socketTCP.getOutputStream().write(data, 0, data.length);

instream=new DataInputStream(socketTCP.getInputStream());

tmp = instream.read(rxData, 0, rxData.length);

if (tmp != -1)

{

inputData = (int) (rxData[2] << 8 | (rxData[3] & 0x00ff));

inputData &= 0xffff;

}

socketTCP.close();

instream.close();

}

catch (Exception e)

{

System.out.println("Err : " + e);

}

return inputData;

}

//-------------------------------------------

// Procedura writeOutputPort

//-------------------------------------------

public void writeOutputPort(int outdata)

{

Socket socketTCP = null;

byte[] data = new byte[4];

data[0] = COMMAND_SET;

data[1] = (byte) ((outdata >> 8) & 0x000000ff);

data[2] = (byte) (outdata & 0x000000ff);

// Initialize socket

try {

socketTCP=new Socket(InetAddress.getByName(m_host), m_port);

socketTCP.setTcpNoDelay(trujhe);

socketTCP.getOutputStream().write(data, 0, data.length);

socketTCP.close();

}

catch (Exception e)

{

System.out.println("Err: " + e);

}

} Electronic shop 16

BIBLIOGRAFIA

27

Page 31: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

28

Page 32: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE84

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

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

di Cristian Randieri [email protected]

La sicurezza è un aspetto moltoimportante e da non trascurare neisistemi di controllo specie se sonogestiti tramite la rete Internet. Se daun lato la rete Internet offre grandiflessibilità a livello di condivisione dirisorse e di gestione da remoto, dal-l’altro è sicuramente un ambientenon sicuro, poiché chiunque puòconnettersi ad essa. Il web ha il pote-re di aumentare la produttività dichiunque, tuttavia come per ognitecnologia o attività di gruppo oltrealle straordinarie attività occorre con-siderarne i rischi. Generalmente gliattacchi ad un sistema di controlloremoto si possono classificaremediante l’individuazione dei puntideboli del sistema che s’intende esa-minare. In generale si possono indivi-duare quattro categorie:

• Vulnerabilità dei dati.• Vulnerabilità del software.• Vulnerabilità del sistema fisico.• Vulnerabilità delle trasmissioni.

Per difendersi da questi attacchi, ci sideve attendere che ogni potenziale

intruso possa sfruttare queste vulne-rabilità per accedere ai dati e quindipotenzialmente danneggiare il siste-ma. Ad esempio, la connessione diun sistema di controllo su internetpuò aprire delle falle nei sistemi disicurezza e tali falle possono essereutilizzate da utenti non autorizzatiper accedere o manipolarne le fun-zionalità. Gli intrusi potrebberoanche invalidare il server Internet delsistema di controllo, modificandone ifile in esso memorizzati (ad esempioi file che contengono le informazionisulle User-ID e Password degli utentidel sistema). I potenziali Hackerpotrebbero inserire nel sistema deivirus e altri programmi distruttiviauto-replicanti in grado di danneg-giare o disabilitare completamente ilsistema. Possiamo classificare gliattacchi provenienti da internet nelleseguenti categorie:

Attacchi da password: Gli intrusicercano di entrare nel sistemaimmettendo un codice di Login eduna password, provando varie voltesino a trovarne una funzionante [1].

Normalmente vengono adoperatidei software in grado di utilizzarevariegati dizionari che provano dicontinuo diverse combinazioni sino aquando non trovano quella vincenteche permette di far accedere al siste-ma. Ad esempio i sistemi Unix sonoparticolarmente vulnerabili ad attac-chi di questo tipo, poiché, UNIX nonblocca l’accesso degli utenti dopo undeterminato numero di tentativi falli-ti, cosa che normalmente avvienenella maggior parte degli altri sistemioperativi.

Attacchi alla sicurezza della rete edei pacchetti: Poiché ogni pacchettotrasmesso in Internet può attraversa-re un gran numero di nodi prima digiungere a destinazione, gli hackerpossono utilizzare appositi strumentidenominati “racket sniffer” per inter-cettare i pacchetti inoltrati nella rete(inclusi i pacchetti di login e trasmis-sione dei dati). I più comuni attacchiai pacchetti sono precursori degliattacchi al protocollo IP. Per iniziareun attacco sniffing, un hacker perprima cosa va alla ricerca di una User

Con questa quarta parte, si conclude la trattazione del dispositivo RECS 101 con unargomento di rilevante importanza: “il proble della sicurezza per i web server embedded”.

AUTOMAZIONE

quarta parte

29

Page 33: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE 85

ID e di una password di un utentelegittimo utilizzandola per accederealla rete distribuita. Dopo essersiintruso nella rete l’hacker osserva ecopia le trasmissioni dei pacchetti etenta di raccogliere quante più infor-mazioni possibili sulla rete.

Attacchi al protocollo IP: Si concen-tra sull’indirizzamento dei pacchettiche il protocollo IP utilizza per le tra-smissioni. Un attacco di questo tipoprevede due fasi. Nella prima si cercadi determinare l’indirizzo IP del ser-ver, generalmente mettendosi inascolto dei pacchetti Internet, pro-vando a specificare in ordine varinumeri di host oppure connettendo-si al sito mediante un browser web eosservando l’indirizzo IP nella barradi stato. Poiché l’hacker sa che glialtri computer della rete condivido-no una parte del dell’indirizzo IP delserver, cercherà di simulare un indi-rizzo IP che gli consenta di scavalca-re il router e di accedere al sistema,come se fosse un utente interno.Dopo che l’hacker avrà iniziato a tro-vare gli indirizzi della rete, inizieràanche a controllare i numeri disequenza dei pacchetti che si tra-smettono tali computer. In seguito,dopo aver controllato le trasmissionidella rete, l’hacker cercherà di preve-dere il prossimo numero di sequenzache verrà generato dal server e quin-di fornirà un proprio pacchetto contale numero di sequenza inserendosifra il server e l’utente. Poiché l’hackerha già l’indirizzo IP del server, può inrealtà generare pacchetti con inumeri di sequenza corretti e indiriz-zi IP che gli consentono di intercetta-re le trasmissioni con l’utente. Dopoche l’hacker ha avuto accesso al siste-ma tramite la previsione di un nume-ro di sequenza, può accedere alleinformazioni che il sistema di comu-nicazione trasmette al server, inclusi ifiles di password, nomi, login, datiriservati e ogni altra informazioni tra-smessa in rete. In generale un hacker

utilizza la previsione del numero disequenza come preparativo per l’at-tacco vero e proprio al server oppurecome base per l’attacco di un altroserver della rete.

Hyperlink Spoofing: È un tipo d’at-tacco che gli hacker sferrato controcomputer che comunicano utilizzan-do il protocollo HTTP [2]. Gli hackerpossono dunque sferrare attacchianche al protocollo di autenticazionedi server SSL (Secure Socket Layer)utilizzato per la creazione di browsere server Web sicuri, come i prodottiMicrosoft e Netscape. Un attacco diquesto tipo prevede che un hackerfungendo da intermediario convincail browser a connettersi a un serverfittizio presentando al browser l’a-spetto di una sessione sicura. Un hac-ker intermediario è un hacker ches’inserisce nel flusso dei pacchetti chescorrono fra un client ed un server. Inquesto modo l’hacker convince l’u-tente a rilevare determinate informa-zioni quali ad esempio User ID ePassword o altre informazioni riserva-te che saranno memorizzate nel ser-ver fittizio. Un alto rischio diHyperlink spoofing accade se l’uten-te preleva ed esegue dal server fittizioapplet Java pericolosi, credendo chetali applet siano forniti da un serversicuro e che debbano pertanto esse-re considerati sicuri. L’attaccoHyperlink spoofing rende palese undifetto nel modo in cui, la maggiorparte dei browser, impiega i certifica-ti digitali per rendere sicure le sessio-ni. L’attacco spoofing tramite colle-gamenti ipertestuali non attacca lacrittografia a basso livello o il funzio-namento del protocollo SSL. Di con-seguenza l’attacco può essere sferra-to anche ad altre applicazioni garan-tite da un certificato, a seconda delmodo in cui tali applicazioni impie-ghino i propri certificati. Il problemaprincipale è che gli attacchi Hyperlinkspoofing si basano sul fatto che il cer-tificato SSL fornito contiene informa-

zioni errate (ad esempio il nome delDNS). Quindi, nonostante gli indiriz-zi URL sembrino corretti e riflettendol’attività dell’azienda che possiede ilsito Web cui si fa riferimento, nonsempre questo accade. Quando èregistrato un dominio, le autoritàInternet assicurano che il DNS nonsia già stato registrato da altri manon assicurano che non violi le leggidi copyright.

Web Spoofing: È un tipo d’attaccoche prevede di creare una copia falsama convincente dell’intero sito Web[3]. Il sito Web ha tutto l’aspetto delsito vero e proprio, ovvero contienele stesse pagine e gli stessi link delvero sito WEB, ma è completamentesotto il controllo dell’hacker. In unattacco di questo tipo, l’hacker puòosservare o modificare tutti i dati chevanno dalla vittima al server del sitoWeb. Inoltre, l’hacker può controllaretutto il traffico di ritorno dal serverWeb alla sua vittima. In seguito l’hac-ker può impiegare vari tipi di attaccotra cui ad esempio lo sniffing e lospoofing. Con lo sniffing l’hackerosserva passivamente il traffico dellarete. Lo spoofing invece prevedeun’attività di manipolazione in quan-to l’hacker convince un host di esse-re un altro computer fidato e pertan-to si prepara a ricevere varie informa-zioni. Ad esempio l’hacker può regi-strare i contenuti e le risposte che ilserver invia al client (User ID, pas-sword ecc.). L’hacker può eseguireun’attività di sorveglianza, anche sela vittima ritiene di trovarsi in unaconnessione sicura.Indipendentemente dal fatto che laconnessione impieghi i metodi SSL oS-http, l’hacker sarà comunque ingrado di ingannare l’utente. Sipotrebbe pensare che sia difficile perl’hacker sostituirsi all’intero Web, masfortunatamente non è così. L’hackernon deve memorizzare l’intero con-tenuto del Web, poiché il Web è, perdefinizione, disponibile on-line.

AUTOMAZIONE

30

Page 34: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE86

Quando il server dell’hacker deve for-nire una falsa pagina, gli basta prele-varla e modificarla dal Web stesso.

POSSIBILI CONTROMISURE

Sebbene il mondo dell’informaticasia in continua evoluzione trovare deirimedi che eliminino definitivamentetali problemi è molto difficile, tuttavianel seguente paragrafo vogliamopresentare alcune soluzioni che adot-tate potrebbero essere un modo perfronteggiare queste problematiche.Rispecchiando lo schema precedenteriportiamo di seguito le soluzionipossibili:

Attacchi da password: Nelle reti,l’intercettazione delle transazioni,rappresenta uno dei rischi più graviche attualmente affligge i singoliutenti e le organizzazioni. Per proteg-gersi dall’intercettazione dei pacchet-ti è opportuno crittografare tutte letrasmissioni. I due tipi principali dicrittografia sono: la crittografia achiave semplice (o a chiave simmetri-ca) e quella a chiave pubblica (o achiave asimmetrica). La crittografia achiave semplice, utilizza un'unicachiave nota ai due capi della comuni-cazione che la usano per crittografa-re e decrittografare le informazioni.La crittografia a chiave pubblica, usauna chiave disponibile pubblicamen-te e una segreta conosciuta dall’uten-te. La maggior parte dei programminormalmente utilizzati per eseguirela crittografia dei messaggi, seguonolo standard PEM (Privacy EnanchedMail) definito in dettaglio nelle RFC1421, 1422,1423 e 1424. Gli algorit-mi di crittografia più utilizzati sonol’algoritmo RSA (Rivest-Shamir-Adleman) e l’algoritmo Diffide-Hellman. Tali algoritmi possono quin-di essere utilizzati per marcare inmodo digitale le trasmissioni. Questatecnica consente ai destinatari deimessaggi di verificare l’identità delmittente. Studi recenti hanno dimo-strato che misurando accuratamente

il tempo necessario per eseguire leoperazioni sulla chiave privata, unhacker può dedurre gli esponenti fissidi Diffide-Hellman, i fattori delle chia-vi RSA e dunque violare questi siste-mi di crittografia. In termini realistici,il pericolo che qualcuno possa deco-dificare una trasmissione criptata, uti-lizzando un attacco di questo tipo, èsolo leggermente inferiore rispetto alpericolo che qualcuno possa rubarela chiave privata dal disco fisso.

Attacchi alla sicurezza della rete edei pacchetti: Gli attacchi sniffer sureti distribuite possono essere evitatiutilizzando degli schemi di identifica-zione come il sistema delle passwordmonouso o il sistema di autenticazio-ne a ticket (come Kerberos [4]).Alcuni sistemi monouso fornisconoagli utenti la prossima password nelmomento in cui l’utente si connettedal sistema. Anche se sia le passwordmonouso che gli schemi Kerberospossono rendere molto più difficile losniffing delle password su una retenon sicura, entrambi i metodi espon-gono al rischio di attacchi attivi se ilcanale dati non è criptato o codifica-to. Un attacco attivo al protocolloTCP/IP consente all’hacker di ridire-zionare il canale TCP verso la propriamacchina. Dopodiché l’hacker puòby-passare la protezione che offre unsistema di password monouso o diautenticazione a ticket. La connessio-ne TCP, diviene vulnerabile, a chiun-que sia in possesso di uno sniffer dipacchetti TCP e di un generatore dipacchetti TCP posizionati sul percor-so della connessione.

Attacchi al protocollo IP: Il modopiù semplice per prevenire il sistemacontro questo tipo di attacchi a pre-visione di numero di sequenza consi-ste nell’assicurarsi che il router, il fire-wall e ogni server del sistema abbia-no attivato la protezione audit-trail.Un audit-trail è una registrazionecronologica delle attività di sistema,

sufficiente per consentire la ricostru-zione, la revisione e l’esame dellasequenza di situazioni e di attivitàche hanno riguardato o che hannocondotto a un’operazione, una pro-cedura o un evento in una transazio-ne dal suo inizio ai suoi risultati fina-li. Utilizzando gli audit-trail, si puòosservare quando un hacker tenta diattraversare il router e il firewall equando tenta di accedere al server.Utilizzando uno dei programmi diservizio disponibili nel sistema ope-rativo, si può richiedere che a segui-to di un determinato numero dirichieste di accesso negate vengaprodotto un avvertimento. Si devericonoscere che l’auditing e la manu-tenzione e l’osservazione degli audit-trail non offrono una protezione “ aprova d’errore” contro gli attacchi alsistema. Se qualcuno esegue lo“spoofing” del sistema, ad esempio,l’operazione non potrà essere indivi-duata dall’auditing. Se qualcunoascolterà il sistema con uno sniffer,l’auditing probabilmente non siaccorgerà di nulla poiché l’hackernon accede ai dati del server masemplicemente osserva i dati in pas-saggio.Come tutti gli altri strumenti di pre-venzione degli attacchi, l’auditing-trail, se utilizzato correttamente, èsolo uno degli strumenti per unpiano organico di sicurezza.L’auditing non può sostituire un fire-wall o uno screening router o unapolitica di sicurezza. Analogamentegli altri sistemi difensivi non possonosostituire l’auditing.

Hyperlink Spoofing: Se s’impieganogià applicazioni Web che fanno affi-damento sull’autenticazione del ser-ver (ad esempio per il prelevamentodi applet Java), l’unica soluzione pra-ticabile consiste nel far partire ilbrowser da una pagina sicura inmodo che gli utenti possano fidarsidei link iniziali e che un hacker nonpossa mai inviarli in luoghi sospetti.

AUTOMAZIONE

31

Page 35: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE 87

Una pagina sicura è quella di cui sipuò verificare l’integrità e questo, ingenere, significa che tale paginadeve essere un file HTML locale o unapagina su un server SSL. Se si deside-ra che il browser di un utente partaaprendo una pagina SSL, si deveinviare l’indirizzo URL di tale paginatramite mezzi difficili o impossibili daintercettare (ad esempio un floppy ouna lettera), altrimenti la paginapotrebbe diventare il punto di par-tenza per l’attacco che s’intende pre-venire. Tutti i link contenuti in questapagina dovrebbero inviare gli utentisu siti di provata affidabilità e preferi-bilmente tutti i link dovrebbero esse-re di tipo SSL. L’affidabilità può basar-si sui seguenti criteri:

• Il sito deve essere condotto con cri-teri di sicurezza. Ovvero l’interosito deve essere reso sicuro controgli attacchi e l’intercettazione dellepagine.

• Il sito deve contenere link che con-ducono solo ad altri siti sicuri.

Web Spoofing: Questo genere d’at-tacchi è veramente pericoloso e insostanza non è rilevabile. Le misurepreventive che possono essere adot-tate si riassumono nei seguenti punti:

• Disabilitare nel browser gli script inmodo che l’hacker non possanascondere l’evidenza dell’attacco;

• Assicurarsi che la riga degli indirizzidel browser sia sempre visibile.

• Fare attenzione all’indirizzo URLvisualizzato dal browser, assicuran-dosi che punti sempre al server acui si pensa di essere connessi.

Questa strategia riduce fortemente irischi di attacco anche se un hackerpuò comunque colpire un utentedalla rete, specialmente coloro chenon si preoccupano di osservare stra-ni comportamenti sulla riga degliindirizzi o della barra di stato. Con ladisattivazione degli script si perderà

qualche utile funzionalità, si potrà inogni caso riattivarne l’uso, all’internodi siti fidati, per disattivarli, nuova-mente, quando si lascia il sito fidato. La creazione di una soluzione a lungotermine è molto più difficile, poichéoccorrerebbe modificare il codice delbrowser in modo tale che program-ma visualizzi sempre la riga dell’indi-rizzo offrendo una maggiore sicurez-za così come la possibilità di renderesicuro il browser contro modificheesterne, ovvero fare in modo che iprogrammi Web non possano crearefalse barre di menù, false barre distato ecc.Per le pagine che il browser prelevautilizzando una connessione sicura,una migliore indicazione di attivazio-ne della connessione sicura potrebbeaiutare a garantire un’effettiva sicu-rezza dell’utente.Invece di indicare semplicementel’attivazione di una connessione sicu-ra, i browser potrebbero visualizzarecon chiarezza il nome del server cheha completato tale connessione. Fondamentalmente ogni approccioal problema del Web-spoofing sem-bra essere affidato alla vigilanza del-l’utente. Il fatto che un amministrato-re di sistema possa realisticamenteattendersi questo tipo di vigilanza datutti gli utenti della rete, pone seridubbi.

I PRINCIPALI PROBLEMI

DI SICUREZZA DEGLI

APPLET JAVA

Anche se Java rappresenta unambiente di programmazione relati-vamente sicuro, occorre considerarevari argomenti che aiutino a difen-

dersi contro i problemi di sicurezzaderivanti dall’impiego di Java. Poichéla JVM interpreta gli applet Java local-mente, in genere gli applet consu-mano grandi quantità di risorse disistema. Gli applet ostili o mal pro-grammati possono consumare trop-pe risorse di sistema utilizzando lamaggior parte della CPU o dellamemoria de computer. Quando un applet consuma tropperisorse, il computer può rallentaresino quasi a bloccarsi.Questo stato di blocco è il risultato diun attacco. Nelle prime implementa-zioni di Java (JDK 1.1.2) esisteva unbug nel verificatore di applet checonsentiva a un applet prelevato suun client che si trova all’interno di unfirewall di collegarsi a un determina-to host al di là del firewall. Dopo laconnessione, l’applet poteva tra-smettere informazioni relative allamacchina client invece che informa-zioni relative al server proxy cosìcome dovrebbe fare l’applet, apren-do la rete a un attacco spoofing.

In generale possiamo dire che il Javapuò soffrire di quattro tipi possibili diattacchi [5÷13]:

• Leakage (unauthorized attemptsto obtain information belongingto or intended for someone else).

• Tampering (unauthorized chan-ging/including deleting/of infor-mation).

• Resource stealing (unauthorizeduse of resources or facilities such asmemory or disk space).

• Antagonism (interactions notresulting in a gain for the intruder

AUTOMAZIONE

Installazione Cache SAND BOX Accesso Completo TrustedApplet java Standard * Applet java Trusted *

Installazione permanente Libreria Java standard * Libreria Java Trusted ** Utilizzo dell’autenticazione

Tabella 1: Sisitema di sicurezza Sandbox di Java

32

Page 36: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE88

but annoying for the attackedparty).

Gli Applet Java utilizzano un sistemadi sicurezza, noto con il nome diSandbox, che protegge il computercontro l’intrusione di applet ostili. Ilmodello Sandbox limita l’accesso alsistema da parte del applet restrin-gendolo a determinate aree delclient.La tabella 1 si riferisce ad un appletJava di tipo standard chiamato appletsandbox. L’applet sandbox ha unaccesso limitato alle risorse del siste-ma. Un applet sandbox non può adesempio accedere al disco fisso del-l’utente, aprire nuovi canali di tra-smissione o restituire informazioniapprofondite, relative al client cheesegue l’applet stessa. Gli applet e la libreria standard java,sono applet sandbox. Il tipo trusted èuna nuova variante del modello java,un applet trusted ha accesso a tuttele risorse di sistema e opera all’ester-no della sandbox. In genere, gli applet java trusted,sono applet creati da un’organizza-zione o all’interno di un’intranetaziendale, oppure applet che l’autorefirma prima della trasmissione viainternet. In generale non è possibilegarantire la sicurezza degli applettrusted in quanto l’applet ha unaccesso completo alle risorse delsistema.

ARCHITETTURA DI

SICUREZZA JAVA

In accordo a quanto riportato in let-teratura [8], l’applet Verifier [9], èuna parte del sistema run-time dijava, che assicura che l’applet seguadeterminate regole di sicurezza.Per iniziare, l’applet verifier confermache il file della classe segua le specifi-che del linguaggio java. L’applet veri-fier non presume che il file della clas-se sia stato prodotto da un compila-tore sicuro.Al contrario controlla nel file della

classe l’esistenza di violazioni alleregole del linguaggio e altre restri-zioni riguardanti lo spazio dei nomie chiudere altre via di fuga, impie-gabili per uscire dal file della clas-se. In particolare l’applet verifierassicura che:

• Il programma non provochi l’over-flow o l’underflow dello stack.

• Il programma esegua accessi validialla memoria e ai registri.

• I parametri di tutte le istruzionibytecode siano corretti.

• Il programma non converta illegal-mente i dati.

L’applet verifier svolge queste funzio-ni critiche analizzando le istruzionicontenute nel file dell’applet. Unbrowser Web utilizza un solo classloader che il browser attiva all’avvio,dopo questa fase il browser non puòestendere, modificare o sostituire ilcaricatore di class. Gli applet nonpossono creare o far riferimento a unproprio class loader.L’applet verifier è indipendente dal-l’implementazione di riferimento Sundel compilatore java e dalle specifi-che di alto livello del linguaggio Java.L’applet verifier esamina il bytecodegenerato dal compilatore java. LaJVM si fida (e pertanto esegue) delbyte code importato da internet solodopo che tale bytecode ha passatol’analisi del verifier. Per passare alverifier il bytecode deve risponderealla sintassi, alle firme degli oggetti,al formato del file della classe ed altreprevedibilità dello stack run-timedefiniti dall’implementazione.Gli applet sono eseguiti in condizionidi sicurezza relativamente stringenti.L’applet security manager è il mecca-nismo java che si occupa delle restri-zioni sugli applet. Un browser ha unsolo manager della sicurezza.L’applet security manager si inizializ-za all’avvio del browser e in seguitonon può essere sostituito, modificatoo esteso.

Gli applet non possono creare o farriferimento a un proprio gestore dellasicurezza. Per una descrizione piùdettagliata dell’architettura di sicu-rezza Java si rimanda alle note biblio-grafiche [5÷13].

RECS 101 SECURITY

Come evidenziato in precedenza,RECS101, rappresenta un implemen-tazione realistica di un web serverintegrato capace di gestire al suointerno la JVM.Il problema della sicurezza nel nostrocaso presenta diversi vincoli nonindifferenti che riguardano le scarsecapacità di calcolo del dispositivorealizzato.Sicuramente è quasi impensabilepoter implementare tutti i sistemianti-intrusione presentati nei para-grafi precedenti. Nonostante ciògioca a nostro favore il fatto cheessendo un dispositivo non standardche non ha al suo interno un sistemaoperativo standard ciò permette disfruttare le proprietà hardware deldispositivo.Per essere più chiaro, i problemi percui il dispositivo potrebbe esserevulnerabile, sono principalmentedovuti a:

• Possibile attacco alla passwordd’accesso al sistema.

• Attacchi al protocollo IP e alla sicu-rezza dei pacchetti.

• Hyperlink Spoofing.• Web Spoofing.

Poiché la nostra applicazione si basasulla JVM, abbiamo un livello di pro-tezione base che comunque ci vienefornito dalla gestione delle Applet(come esposto precedentemente).Le contromisure che abbiamo adot-tato per far fronte alle problematichesopra esposte, sono le seguenti:

Possibile attacco alla passwordd’accesso al sistema. RECS 101 nonintegra al suo interno alcun sistema

AUTOMAZIONE

33

Page 37: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

AUTOMAZIONE 89

da il Web Spoofing, si può pensare didisattivare il supporto Java in RECS101, però il prezzo da pagare è laportabilità del dispositivo, nel sensoche il dispositivo perderebbe tutte leproprietà inerenti l’accesso alle portedi I/O tramite interfaccia Web.Poiché RECS 101 supporta anche iSocket C è possibile scrivere delle

applicazioni Client/Server in C cheeseguite localmente in un PC posso-no attivare una connessione conquest’ultimo. In questo modo si risol-vono tutti i possibili problemi diHyperlink Spoofing e Web Spoofing.

di gestione delle chiavi sia esse pub-bliche che private, trattandosi di unsistema embedded dedicato al con-trollo remoto di apparecchiatureelettronico il suo utilizzo sarà sicura-mente riservato ad una cerchia moltoristretta di utenti di conseguenza sipuò ipotizzare che gli utenti del siste-ma possano essere definiti a priori.Ciò implica che il firmware del siste-ma deve essere programmato inmodo tale da inserire tutti i possibiliutenti del sistema.La gestione del database delle pas-sword ed user ID è effettuatamediante l’applet Java Stessa cheandrà a leggere un file crittografatoposto all’interno del file system diRECS 101.

Attacchi al protocollo IP e alla sicu-rezza dei pacchetti. Un attacco diquesto tipo viene in qualche motoridotto mediante la crittografia delpacchetto contente lo stato delleporte di I/O.Poiché come si è visto precedente-mente le porte di I/O di RECS 101sono codificate in un dato a 32 bit èpossibile inserire un algoritmo di crit-tografia che possa proteggere il con-tenuto dei dati. Nel caso in cui RECS101 venga utilizzato con una proprialogica di controllo con operazioni disniffing è pressoché impossibile risali-re all’algoritmo di controllo del siste-ma poiché questo è contenuto all’in-terno dell’applet.

Hyperlink Spoofing & WebSpoofing. L’implementazione di unsupporto SSL all’interno di RECS 101,per la sua complessità è pressochéimpensabile. Di conseguenza unattacco Hyperlink Spoofing sarebbepossibile. Per evitare ciò si può pen-sare di adoperare due RECS 101 chelavorando in parallelo uno controlligli stati dell’altro, in questo modo laprobabilità che entrambi i sistemivengano attaccati simultaneamentedecresce di molto. Per quanto riguar-

[1] Netid Managed Services, Information technology, NorthwesternTechnology: http://gradeswww.acns.nwu.edu/ist/snap/doc/sniffing.html

[2] Internet spoofing reference page:http://www.brd.ie/paper/sslpaper/hyperlin.html

[3] Web Spoofing: An Internet Con Game:http://www.cs.pronceton.edu/sip/pub/spoofing.html

[4] B. C. Neuman and T. Ts’o. Kerberos: An Authentication Service forComputer Networks. In IEEE Communications, volume 39, pages33–38.

[5] S.Fritzinger and M. Mueller. Java security, 1996. Sun MicrosystemsIncorporated, White Paper:http://java.sun.com/security/whitepaper.txt

[6] L. Gong. Secure Java Classloading. IEEE Internet Computing,2(6):56{61, November/December 1998.

[7] C. Kerer. A exible and extensible security framework for Java code.Master's thesis, Distributed Systems Group, Technical University ofVienna, Austria, October 1999.

[8] G. McGraw and E. Felten. Java security and type safety. Byte,22(1):63{64, January 1997.

[9] G. McGraw and E. W. Felten. Java security: hostile applets, holes, andantidotes. John Wiley, New York, 1997.

[10]G. McGraw and E. W. Felten. Securing Java: getting down to businesswith mobile code. John Wiley, New York, 1999.

[11]A. Rubin and D. E. Geer. Mobile Code Security.IEEE Internet Computing, 2(6):30{34, November/December 1998.

[12]Sun Microsystems, Incorporated. Secure computing with Java: nowand the future, September 1998. White Paper:http://java.sun.com/marketing/collateral/security.html

[13]F. Yellin. Low level security in Java. In Proceedings of the FourthInternational World Wide Web Conference, Boston, Massachusetts,USA, December 11{14, 1995, volume 1 of World Wide Web Journal.O'Reilly & Associates, Incorporated, November 1995.http://www.w3.org/pub/Conferences/WWW4/Papers/197/40.html

AUTOMAZIONE

BIBLIOGRAFIA

Electronic shop 28

34

Page 38: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

35

Page 39: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

108 Il Giornale dell’Installatore Elettrico N. 9 25 Maggio 2003 www.reedbusiness.it

Un web server integrabile perapplicazioni “Home BuildingAutomation” basate sul proto-collo TCP/IP

U n web server embedded èun web server progettatoper lavorare all’interno di

un sistema a microprocessore ca-ratterizzato da risorse di calcololimitate. Aggiungendo ad un ta-le dispositivo la programmazionetipica del Web unitamente alleproprietà di un linguaggio di pro-grammazione ad alto livello qua-le il Java si ottengono interfacce

di qualità, amichevoli (userfriendly), a basso costo, crossplatform (multi piattaforma), enetwork ready (pronte per lavo-rare in rete). Intellisystem Technologies pre-senta un nuovo dispositivo Recs101, nato per far fronte alle esi-genze di sviluppatori che inten-dono gestire applicazioni profes-sionali per la Home Building

Automation in ambiente TCP/IPin maniera veloce, facile e sicura. Il comfort nell’abitazione è parteintrinseca determinante del be-nessere psichico di ognuno. Il continuo adeguamento del mo-do di vivere alle nuove forme dicomportamento sociale imponeil trasferimento delle nuove abi-tudini alla propria abitazione co-me elemento indispensabile dicontinuità dell’aspetto compor-tamentale.La continua evoluzione delle tec-nologie basate sui sistemi digitaliha fortemente modificato le tec-niche e metodologie usate nei si-stemi di controllo dedicati allaHome Building Automation. In particolare oggi la richiesta diprocessi distribuiti richiede si-stemi intelligenti, dispositivi dicontrollo e sistemi di misura ca-paci di comunicare attraverso larete. Un importante requisito diquesti sistemi è l’esigenza di ri-durre le connessioni, il che si tra-duce nel semplificare la gestionedei sistemi riducendone le pro-blematiche inerenti alla manu-tenzione.

D’altro canto poiché il WorldWide Web (la “ragnatela mon-diale”, o Web) è in continua evo-luzione, per molte applicazionicommerciali e scientifiche ilbrowser web è diventato unostandard per lo sviluppo di inter-facce utente di numerose appli-cazioni. Questo perché i brow-

ser web sono capaci di fornireinterfacce GUI a varie applica-zioni client/server senza il biso-gno di andare ad implementaredei software per il lato client. Lasoluzione migliore a questo tipodi esigenze è sicuramente datadall’utilizzo di un web server em-bedded connesso ad una infra-

La casava in Internet

INSERTO

Cristian RandieriIntellisystem Technologies

Fig. 1 - Architettura di un web server embedded

apertura fotolito

bs28089.tif

TABELLA 1 - SPECIFICHE DEL DISPOSITIVO RECS 101Specifica Recs 101CPU Ubicom SX52BD (8 bit microprocessor, 50 MIPS)Memoria 512 Kb flash memory (utilizzata per contenere le pagine web dell’utente)Connessione di Rete Interfaccia Ethernet 10 Base-T (IEEE802-3)Connessione Utente 16 Ingressi digitali/16 Uscite digitaliProtocolli Internet Supportati HTTP / BOOTP / TCP / UDP / IP ICMP / ARP Ethernet 802.3Software di Utilità Recs Utility (Piattaforma Windows) Web page uploader e cambio indirizzo IP

Il browser web èdiventato uno standardper lo sviluppo diinterfacce utente dinumerose applicazioni

36

Page 40: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

INSERTOLA CASA VA IN INTERNET

Il Giornale dell’Installatore Elettricowww.reedbusiness.it N. 925 Maggio 2003 109

struttura di rete al fine di fornireuna interfaccia utente basata sul-l’utilizzo dell’ormai noto linguag-gio HTML unitamente ad altrecaratteristiche comuni ai webbrowser. Se si pensa di aggiungere allefunzionalità ormai consolidate diun web server embedded la ca-pacità di poter gestire applica-zioni Java ecco che questi siste-mi aprono le frontiere a capacitàinesplorate, che li rendono capa-ci di eseguire i più variegati com-piti quali, ad esempio, quelli dicontrollo remoto, supervisione egestione di sistemi elettronici (fi-gura 1). L’implementazione delle funzio-nalità Java all’interno di un taledispositivo è particolarmente in-dicato per questo approccio per-

mettendo l’uso di una strategia dicontrollo indipendente dalla piat-taforma hardware del sistema incui viene gestita. Questa meto-dologia è stata da tempo adope-rata nelle applicazioni Internet do-ve non sono richiesti stringentivincoli di real-time. L’uso del lin-guaggio di programmazione Javaper le applicazioni di controllo re-moto fornisce il vantaggio di inte-grare sistemi di uso generale conInternet permettendone la super-visione ed il controllo. Il nuovo concetto che intendiamointrodurre si basa sull’esecuzionedi Applet Java (piccoli programmiaggiuntivi) per eseguire operazio-ni di controllo o di monitoraggio didispositivi remoti. In questo tipo di sistemi il con-trollo distribuito si ottiene me-

diante il trasferi-mento di pagineHTML e l’esecuzio-ne di applet Java (fi-gura 2).I vantaggi dell’uti-lizzo di Java posso-no essere breve-mente riassunti neiseguenti punti:- indipendenza dal-

la piattaforma: di-versamente daicomuni compila-tori che produco-no codice per CPUspecifiche, il Javaproduce un codi-ce per una CPUvirtuale. Al fine dirimanere indipen-dente da specifi-che piattaforme hardware il si-stema runtime di Java fornisceun’interfaccia universale perqualsiasi applicazione che si de-sidera sviluppare denominataJVM (Java Virtual Machine)

- Potenza: Java racchiude in sé

nuove caratteristiche che in-cludono la gestione dei databa-se, l’invocazione dei metodi re-moti ed altre caratteristiche ine-renti la gestione della sicurezza

- Networking: Java nasce comelinguaggio di programmazionedistribuito, il che si traduce nelfatto che la sua progettazioneincludeva sin dall’inizio la ge-stione di particolari funzioni ine-renti il networking quali, adesempio, il TCP/IP, l’HTTP, l’FTP

- Efficienza: le moderne JVM, gra-zie all’utilizzo della tecnologiaJust in Time (JIT) compiler, leperformance d’esecuzione del-le applet sono state fortementemigliorate.

Frutto di anni di ricerca e speri-mentazione da parte diIntellisystem Technologies hannoportato alla realizzazione di Recs101 (figura 3). Recs 101 è un dis-positivo di facile utilizzo a pre-

stazioni elevate, ideale per ap-plicazioni di controllo remoto pro-fessionale. Una volta collegatoad una rete Ethernet, Recs 101mette a disposizione dell’utente32 canali digitali di cui 16 di Inpute 16 di Output.

Fig. 2 - Applet Java per eseguire operazioni di controllo o di monitoraggio didispositivi remoti

TABELLA 2 - PARAMETRI DI CONFIGURAZIONE DELL’APPLET PER LA GESTIONE AVANZATA DI RECS 101

Parametro Fusione Esempio Obbligatorio Possibilità di modificaPDFOOK Stringa inizializzazione Applet Sì Nohost Indirizzo IP di RECS host=value*172.16.10.103” Sì Sìpoet Porta TCP per la comunicazione port value=6001 Sì No

RECS 101polling Intervallo di polling polling value=1 Sì SìTitle Interstazione Applet Title value=”RECS VO DEMO” No SìColTit Colore da associare alla CotTit value=”green” No Sì

stringa TitleCAPL Colore background Applet CAPL value=”yellow” No SìNum Led Numero ingressi da Num Led value=16 Sì Sì

monitorareNumB Numero di pulsanti per il NumB value16 Sì Sì

controllo delle usciteTBT* Testo da associare al TBT1 value=”Comando 10” No Sì

pulsante*CTBT* Colore del testo associato al CTBT10 value=”red” No Sì

titolo pulsante*CLBF* Colore di stato dell’uscita* CLBT10 value=”blu” No Sì

quando questa si trovinello stato “OFF”

TLD* Testo da associare al LED* TLD 1 value=”Luce Camera” No Sìrelativo all’ingresso*

CTLD* Colore del testo associato al CTLD1 value=”black” No Sìtitolo del LED* relativo all’ingresso

CLIF* Colore del tessuto al LED di CLIF10 value=”green” No Sìstato dell’ingresso* quandoquest’ultimo è nello stato “OFF”

CLIT* Colore associato al LED di CLIT10=value “red” No Sìstato dell’ingresso “quando”quest’ultimo è nello stato “ON”

Fig. 4 - Scenario d’applicazione del dispositivoRecs 101

Per chi volesse dilettarsi a sperimentare la personalizzazionedelle interfacce, Intellisystem Technologies mette a disposizionenel proprio sito tutto il software necessario (http://www.intel-lisystem.it/recs/Interfaccia.htm).

UN SOFTWARE SUL SITO

Fig. 3 - Il sistema Recs 101

37

Page 41: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

INSERTO LA CASA VA IN INTERNET

Facile da installare e configurare,permette di sviluppare un’appli-cazione di controllo remoto inpochi e semplici passaggi.Supportato da qualsiasi browserinternet quale Internet Explorero Netscape permette di gestiretotalmente da remoto qualsiasi

dispositivo dacontrollare.La figura 4 mo-stra lo schema ar-chitetturale sem-plificato di unpossibile scenariod’applicazione diRecs 101. L’architettura pre-sentata permettela gestione di pro-blematiche tipi-che dei sistemi dicontrollo quali, adesempio: acquisi-zione di segnali,azioni di controlloper mezzo di at-tuatori, l’elabora-zione e la presen-tazione delle in-formazioni acqui-site o manipolate.La tabella 1 ripor-ta le principali ca-ratteristiche especifiche del si-

stema proposto.Recs 101 integraal suo interno unnetwork proces-sor dotato di in-terfaccia di reteEthernet per con-nettersi diretta-mente a qualsiasirete locale sia es-sa Internet siaIntranet. Ciò per-mette agli inte-gratori/sviluppa-tori di sistemi e al-le aziende produt-trici di connetterei loro dispositividirettamente adInternet attraver-so una rete Lan e,

di conseguenza, di gestire da re-moto il controllo totale dei lorodispositivi attraverso interfaccegrafiche utente personalizzabili,accessibili mediante i comunibrowser. Il web server integratoin Recs 101 è capace di gestire fi-no a 512k di documenti ed appli-

cazioni web: tali risorse sono pre-caricate all’interno della memoriaflash del dispositivo. La fig. 7 è un esempio di una pa-gina web gestita da Recs 101 chepuò essere personalizzata perfornire informazioni statiche suldispositivo quali, ad esempio, im-magini, video, testi, file eccetera.La caratteristica che rende unicotale dispositivo consiste nella ca-pacità di poter usufruire del co-dice Java per la gestione dell’in-terfaccia relativa al controllo del-le porte di I/O. Tale caratteristica permette dipoter gestire l’interfaccia utentetramite un’Applet Java parame-trica: in questo modo l’utente fi-nale può sviluppare la propriaapplicazione di controllo in modomolto veloce e sicuro senza doveressere in grado di programmarein Java. La figura 5 riassume quanto det-to in precedenza, ovvero parten-do dalla home page del sito webcontenuto in Recs 101 si accedeall’interfaccia utente personaliz-zata che tramite un’applet di con-trollo interviene sulle porte d’in-put e di output per la gestionedell’hardware che si intende con-trollare.Recs 101 è un dispositivo total-mente personalizzabile. Viene fornito con tutto il softwa-re necessario allo sviluppatoreper poter sviluppare rapidissi-mamente la propria applicazio-ne in maniera facile e sicura.Il software in dotazione contieneun’Applet di controllo che puòessere personalizzata mediante iparametri riportati in tabella 2.Facilmente integrabile con qual-siasi altro sistema offre una so-luzione funzionale ed efficiente,per il telecontrollo distribuito. Ad esempio, integrando Recs101 con Recs GSM I/O (moduloGSM prodotto da IntellisystemTechnologies provvisto di dueingressi e due uscite digitali ge-stibili tramite SMS) è possibileintegrare tutte le tipiche funzio-nalità di gestione di sistemi perla Home Building Automation tra-mite Internet ed al tempo stessotramite SMS, fornendo all’utenteuna piattaforma di controllo re-moto multifunzionale non neces-sariamente legata ad un’infra-struttura di rete (figura 6). Recs 101 trova ampio spazio nel-

le applicazioni di Home BuildingAutomation legate ai moderni si-stemi di videosorveglianza rap-presentando un valido strumen-to per integrare tutte le funzio-nalità tipiche di un sistema dicontrollo remoto ai normali si-stemi di monitoraggio video spe-cie quelli che si basano sulla tec-nologia TCP/IP (figura 7). Con particolare riferimento almondo del videocontrollo overIP, si intuisce facilmente che lesoluzioni proposte da IntellisystemTechnologies non hanno limiti intermini di funzionalità ed appli-cazioni ad hoc per tutte le esi-genze dei più disparati utenti. Ad esempio integrando i sistemi

Recs con le ben note telecamereAXIS (di cui IntellisystemTechnologies è partner tecnologi-co) si aprono le frontiere per uncontrollo totale di sistemi remoti,che nel caso della Home BuildingAutomation si traducono in unapresenza virtuale dell’individuoall’interno della propria dimora.Sfruttando la combinazione vin-cente di tali sistemi si ottiene unostrumento completo capace di ge-stire immagini e di rilevare lo sta-to di dispositivi esterni, quali sen-sori e di manovrarne altri quali adesempio attuatori.In conclusione Recs 101, essen-do un dispositivo totalmenteflessibile nelle sue applicazioni,si presta come valido strumentoper la reingegnerizzazione dimacchinari a controllo semi-au-tomatico, fornendo la possibilitàdi telecontrollare a distanza tra-mite Internet sistemi che sinoad oggi non prevedevano talefunzionalità. servizio lettori 118

110 Il Giornale dell’Installatore Elettrico N. 7 25 Maggio 2003 www.reedbusiness.it

Figura 7 - Esempio di una possibile integrazione diRecs 101 con un sistema di videosorveglianza

Figura 5 - Esempio di una possibile interfaccia GUIimplementata in Recs 101

Figura 6 - Esempio di una possibile integrazione di Recs 101 con Recs GSMI/O in un sistema Home Building Automation

L’utente finale può sviluppare lapropria applicazione di controllo in modomolto veloce e sicuro

BIBLIOGRAFIA1. McCombie, B.,”Embedded Web server now and in the future”,

Real-Time Magazine, no.1 March 1998, pp. 82-83.2. Wilson, A.,”The Challenge of embedded Internet”, Electronic

Product Design, January 1998, pp. 31-2,34.3. J. Gosling, B. Joy, G. Steele,”The Java Laguage Specification”,

http://java.sun.com4. T. Lindholm, F. Yellin “The Java Virtual Machine Specification”,

1996. http://java.sun.com5. Intellisystem Technologies “Recs 101 Manuale Utente”,

http://www.intellisystem.it 6. Intellisystem Technologies “Recs 101 GSM I/O”, http://www.in-

tellisystem.it/prodotti.htm7. Intellisystem Technologies “Reenginnering”, http://www.intel-

lisystem.it/servizi/reengineering.htm

38

Page 42: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

39

Page 43: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

40

Page 44: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

41

Page 45: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

42

Page 46: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

43

Page 47: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

44

Page 48: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

45

Page 49: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

46

Page 50: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

47

Page 51: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

48

Page 52: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -

49

Page 53: Intellisystem Technologies - Collezione riviste anno 2003 - Magazine Book Collection -