Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Collezione Riviste Anno 2003 Intellisystem Technologies

Collezione Riviste Anno 2003 Intellisystem Technologies

Published by Cristian Randieri, PhD, 2015-12-23 04:10:14

Description: Contacts: Mobile +39 335-1880035 MSN: [email protected] | SKYPE: intellisystem_technologies email: [email protected] web: http://www.intellisystem.it Facebook https://www.facebook.com/intellisystem Linkedin https://www.linkedin.com/in/cristianrandieri Twitter https://twitter.com/C_Randieri ResearchGate: http://www.researchgate.net/profile/Cristian_Randieri Academia.edu: https://unict.academia.edu/CristianRandieri YouTube Channel: https://www.youtube.com/c/intellisystemit Google+: https://plus.google.com/+IntellisystemIt

Search

Read the Text Version

PrefazioneIntellisystem Technologies è da sempre presente in riviste prestigiose di caratterenazionale ed estero, presentando sempre nuove idee prodotti e soluzioni all'avanguardiaper divulgare le nuove tecnologie. Il presente volume rappresenta la raccolta completa ditutte le pubblicazioni della nostra azienda inerenti l’anno 2003.Presentazione AziendaIntellisystem Technologies nasce nel 2000 come engineering office per apportare un contributo concreto allosviluppo 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, losviluppo 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 nuovetecnologie.La nostra filosofia è quella di indirizzare a tutti le nuove tecnologie presenti sul mercato e di abbinarle alrigore 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, completandosie 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 dellafisica nucleare alla progettazione di sistemi \"intelligenti\", alla didattica mirata alle specificità, allapubblicazione scientifica, alla consulenza di piccole, medie e grandi aziende, alla progettazione ed allarealizzazione 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, è oggiin grado di offrire alla propria clientela soluzioni tecnologicamente all’avanguardia totalmente personalizzabiliin funzione delle più variegate esigenze.La nostra azienda ha istituito una rete di penetrazione nel mercato nazionale avvalendosi dellacollaborazione 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 mireespansionistiche rivolte all’estero.La costante presenza e partecipazione a progetti prestigiosi presso autorevoli istituti di ricerca nazionali edesteri (quali: INFN “Istituto Nazionale di Fisica Nucleare”, CERN “Organisation Europèenne pour larecerche nuclèare, Ginevra, Svizzera”, ERSF “European Synchrptron Radiation Facility, Grenoble,Francia”, KVI “Kernfysisch Versneller Institut,Groningen, Netherlands.”, ecc.), permette ad IntellisystemTechnologies di fornire un costante impulso alla diffusione ed integrazione delle più moderne ed innovativetecnologie presenti nel mercato.Intellisystem Technologies vanta partnership di carattere scientifico e tecnico-commerciale con aziendeleader quali: Telecom Italia, TIM Business, ASTRA, Globalstar, mettendo a disposizione il proprio knowhowtecnologico ed i propri prodotti ad alto contenuto tecnologico.Tra i nostri clienti spiccano: Honeywell, Alcatel Lucent, la Presidenza del Consiglio dei Ministri, il Ministerodell’Ambiente - Area marina protetta “Isole Ciclopi” Acitrezza (CT), l’orto Botanico dell’Università degli studidi 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 Unicohttp://www.intellisystem.it

Indice “Parlano di Noi” – Anno 2003Indice [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 http://www.intellisystem.it - I -

1

AUTOMAZIONERECS 101: UN WEB SERVEREMBEDDED PER APPLICAZIONIDI CONTROLLO REMOTOTRAMITE TCP/IP di Cristian Randieri prima parte [email protected] 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 SERVER che il browser web è diventato uno sciuto il numero di tecnologie webEMBEDDED ED INTERNET standard per lo sviluppo di interfac- che possono essere applicate ad ele- ce utente di numerose applicazioni. menti gestibili dalla rete.Il World Wide Web (o Web) è in con- Questo perché i browsers web sono Come ben noto la maggioranzatinua evoluzione. Appare chiaro ed capaci di fornire interfacce GUI a delle reti di computer viene gestitaevidente che tale tecnologia assume varie applicazioni client/server senza mediante il protocollo TCP/IP.delle nuove funzionalità che vanno il bisogno di andare ad implementa- In realtà TCP e IP sono due proto-molto oltre la semplice visualizzazio- re del software per il lato client. colli utilizzati per interconnettere lene delle pagine Web. Per molte Negli ultimi anni è sempre più cre- reti. TCP sta per Transport Controlapplicazioni commerciali e scientifi-14 AUTOMAZIONE 2

AUTOMAZIONEProtocol e IP sta per Internet pensa di aggiungere alle funzionali- di una strategia di controllo indi-Protocol. Per essere più precisi tà ormai consolidate di un web ser- pendente dalla piattaforma hardwa-quando si parla di protocollo TCP/IP ver embedded la capacità di poter re del sistema in cui viene gestita.si intende una suite di protocolli che gestire applicazioni Java ecco che Questa metodologia è stata daè stata promossa come standard di questi sistemi aprono le frontiere a tempo adoperata nelle applicazioniInternet dall’Unites States Secretary capacità inesplorate, che rendono Internet dove non sono richiestiof Defence. Obiettivo della suite di essi capaci di eseguire i più varie- stringenti vincoli di real-time. L’usoprotocolli TCP/IP è quello di consen- gati compiti quali, ad esempio, del linguaggio di programmazionetire la comunicazione di reti simili o quelli di controllo remoto, supervi- Java per le applicazioni di controlloeterogenee. Mediante i protocolli i sione e gestione di sistemi elettro- remoto fornisce il vantaggio di inte-progettisti possono specificare i pro- nici .(fig. 1) grare sistemi general purpose concessi di comunicazione senza esserea conoscenza dei dettagli delle enti- Nelle applicazioni di controllo remo- Architettura di un web server embedded Figura 1tà che compongono la rete. I sistemi to si fa sempre più presente l’esi-di comunicazione più complessi uti- genza di interconnettere apparec- internet permettendo la supervisio-lizzano una suite di protocolli per la chiature e strumentazioni tramite ne ed il controllo di sistemi.gestione dello scambio dei dati. Si web server embedded al fine di Oggigiorno i sistemi che si basanopuò pensare che la suite dei proto- avere una gestione quanto più su web server embedded richiedonocolli sia stratificata nel sistema di decentralizzata possibile delle loro sempre applicazioni più complesse,rete del computer dell’utente. funzionalità [2]. Ognuno di questi facili da programmare, al fine di ese-Sebbene più protocolli possano controller programmato opportuna- guire i compiti di supervisione ecoesistere all’interno di un unico mente diviene capace di eseguire gestione. Per realizzare il concetto distrato di rete, tutti i protocolli che differenti algoritmi di controllo. network computing viene presenta-compongono la suite devono ta la tecnologia Java al fine di otte-cooperare tra di essi. Una suite di APPROCCIO MEDIANTE nere la combinazione sinergica diprotocolli può essere anche definita L’UTILIZZO DELLA sistemi di controllo realtime distri-come “famiglia di protocolli”. La TECNOLOGIA JAVA buiti che siano gestibili tramite lasuite dei protocolli TCP/IP ha il rete Internet.compito di gestire lo scambio dei Il concetto della Virtual Machine di Con l’incessante sviluppo delladati su Internet e quindi fornire solu- Java è particolarmente indicato per microelettronica i sistemi embed-zioni a problemi che si verificano questo approccio permettendo l’uso ded sono stati applicati a moltepliciquando si presentano errori di prodotti industriali ed elettronici,comunicazione 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 elettronicitramite 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 15 3

AUTOMAZIONEpoiché presentano le caratteristiche re. Anziché adoperare linguaggi dif- che si desidera sviluppare. Tale inter-di essere economici, affidabili con ferenti e non standard per l’imple- faccia denominata JVM (Java Virtualbuone performance se comparati mentazione del software nella mag- Machine) è una sorta di processorecon il software utilizzato nei gior parte dei casi è preferibile ado- virtuale che si interpone tra il pro-Personal Computers [3]. perare un linguaggio comune [5]. Il cessore fisico del PC e l’applicazioneIl vantaggio delle tecnologie Java rappresenta una scelta ottimale scritta in Java. Tuttavia, l’indipen-Internet permette di interconnettere per differenti motivi: è un linguag- denza dalla piattaforma non è suffi-tra loro dispositivi e sistemi all’inter- gio standard completo di librerie, è ciente per assicurare il successo dino della rete internet. Tutto questo un linguaggio molto semplice che un linguaggio di programmazione.facilita l’accesso ai dispositivi per- riduce le problematiche inerenti l’a- La JVM è da diverso tempo inclusamettendo di effettuare operazioni di nalisi dei programmi, la loro ottimiz- all’interno dei browser più popolarimonitoraggio, di controllo, di repor- zazione e trasformazione [5],[6]. quali, ad esempio, Microsoftting, start up, shutdown di qualsiasi Explorer e Netscape. Alcuni sistemidispositivo semplicemente premen- I VANTAGGI DELL’UTILIZZO operativi real-time includono al lorodo dei tasti all’interno di un interfac- DI JAVA interno la tecnologie Java e tutto ciòcia GUI gestita da un comune brow- permette di giungere alla seguenteser [4]. Il linguaggio di programmazione conclusione “la JVM è una risorsaIl nuovo concetto che intendiamo Java si sta diffondendo sempre più universale” [5,7];introdurre si basa sull’esecuzione di all’interno dell’industria dell’infor- • Potenza: Il Java racchiude in seApplet Java per eseguire operazioni mation technology particolarmentedi controllo o di monitoraggio di per le applicazioni che prevedono nuove caratteristiche che includonodispositivi remoti . In questo tipo di l’utilizzo di database. Il Java è un lin- la gestione dei database, l’invoca-sistemi il controllo distribuito si guaggio di programmazione che zione dei metodi remoti ed altreottiene mediante il trasferimento di permette di installare un’applicazio- caratteristiche inerenti la gestionepagine HTML e l’esecuzione di ne all’interno di un server ed essere della sicurezza.applet Java (fig. 2). quindi eseguita su diverse piattafor- • Networking: Il Java nasce come lin- me hardware. Questi vantaggi pos- guaggio di programmazione distri- buito, il che si traduce nel fatto cheFigura 2 Esecuzione di Applet Java per eseguire operazioni di controllo o di monitoraggio di dispositivi remoti la sua progettazione includeva sin dall’inizio la gestione di particolariQuesto nuovo concetto permette sono essere brevemente riassunti nei funzioni inerenti il networking. Ildi espandere le comuni capacità dei seguenti punti: Java ha una libreria vastissima disistemi di controllo fornendo un - Indipendenza dalla piattaforma: routine per la gestione dei protocol-sistema remoto distribuito per il diversamente dai comuni compila- li quali, ad esempio, il TCP/IP,controllo di sistemi elettronici. tori che producono codice per CPU l’HTTP, l’FTP. Le applicazioni JavaLa progettazione di sistemi embed- specifiche, il Java produce del codi- possono avere accesso ad oggettided richiede l’integrazione e lo svi- ce per una CPU virtuale. Al fine di attraverso la rete Internet per mezzoluppo di componenti hardware e rimanere indipendente da specifiche di URL (Universal Resource Locator,software: spesse volte queste sono piattaforme hardware il sistema run- più comunemente noto come indi-particolarmente difficili da realizzare time di Java fornisce un’interfaccia rizzo del sito web) in un modopoiché ogni controller possiede la universale per qualsiasi applicazione molto simile all’accesso ad unsua piattaforma hardware e softwa- comune file system locale. Unendo la tecnologia Java alle potenzialità dei sistemi basati su web server embedded si possono ottenere dei sistemi molto potenti per la gestio- ne di applicazioni di controllo. • Efficienza: Le moderne JVM supera- no la forte limitazione delle passate dove veniva evidenziata la proble- matiche dell’estrema lentezza di esecuzione dei programmi. Attualmente grazie all’utilizzo della16 AUTOMAZIONE 4

AUTOMAZIONE tecnologia Just in Time (JIT) compi- a disposizione per le applicazioni è un sistema di sviluppo embedded ler le performance d’esecuzione limitata; integrandola con le librerie del delle applet sono state fortemente • Essendo l’esecuzione delle applet in codice nativo. Ciò può essere otte- migliorate [7]. locale, e quindi non all’interno del nuto utilizzando qualsiasi linguag- sistema embedded, l’efficienza e la gio di programmazione quale, adL’UTILIZZO DI JAVA complessità d’esecuzione degli esempio, il Java bitcode interpre-ALL’INTERNO DI SISTEMI algoritmi da eseguire sono a carico ter e, quindi, compilare il tutto inWEB SERVER EMBEDDED del client e non del sistema embed- accordo ai vincoli hardware del ded che, sicuramente, avrà risorse sistema in cui la si vuole integrare.L’uso di linguaggi object-oriented di calcolo molto più limitate rispet- L’utilizzo della JVM all’interno diassieme alle loro tecniche di pro- to a quelle di un comune PC; un web server embedded presentagettazione permettono di ottenere • Molti costruttori di microprocessori il vantaggio che coloro che svilup-un codice che risulta essere facil- per sistemi embedded hanno inve- peranno il codice per la program-mente riutilizzabile e mantenibile. stito nell’implementazione della mazione dell’applicazione all’in-Normalmente, un’applicazione JVM all’interno dei loro dispositivi: terno del sistema embedded utiliz-che va trasferita ad un controller si di conseguenza gran parte del soft- zeranno istruzioni Java e noncompone di un file binario esegui- ware è già disponibile; dovranno tener contro delle rela-bile che viene direttamente esegui- • E’ intuitivo prevedere che in un zioni che intercorrono tra la JVM eto dalla CPU. Il vantaggio principa- immediato futuro la maggior parte la microprogrammazione del siste-le di un approccio di questo tipo si dei kernel dei microcontrollori ma embedded. In più si può forni-traduce in una maggiore velocità includerà la JVM. re all’utente finale un’interfacciad’esecuzione. tipo applet parametrica che richie-Il Java permette di ottenere la fun- LA JAVA VIRTUAL MACHINE de semplicemente il setup di alcu-zionalità “compila una sola volta e ni parametri. In quest’ultimo casoutilizza più volte”. E’ virtualmente Attualmente esistono diversi modi l’utente finale non necessita dipossibile utilizzare lo stesso codice di implementare la JVM. La fig. 3 avere alcuna conoscenza riguardocompilato in piattaforme differenti mostra due possibili implementa- il linguaggio di programmazionee, quindi, eseguire il codice su dif- zioni. Java.ferenti Sistemi Operativi per fare itest ed il debugging del software Possibili implementazioni della JVM Figura 3 IMPLEMENTAZIONE DELLAper poi trasferire il tutto all’interno JVM ALL’INTERNO DI UN WEBdi un dispositivo di controllo [3]. Nella prima la JVM viene integrata SERVER EMBEDDEDIl Java si presenta come un lin- all’interno di un ambiente di svi-guaggio di programmazione forte- luppo software. L’altra incorpora L’applicazione che viene presenta-mente adottato per la programma- un Sistema Operativo Java che ta in questo articolo, pur essendozione applicazioni che fanno di viene particolarmente indicata per stata implementata all’interno diinternet un punto di forza. quelle applicazioni che prevedono un architettura basata su proces-I vantaggi principali inerenti l’uti- l’utilizzo di un unico ambiente di sore UBICOM, può essere virtual-lizzo delle applet Java all’interno di sviluppo sia per i programmatori mente implementata all’interno diun web server embedded possono che per gli utilizzatori [3]. Una qualsiasi microprocessore o micro-essere riassunte nei seguenti punti: volta disponibile l’interfaccia JVM è controllore che dir si voglia. La fig. possibile includerla all’interno di 4 mostra lo schema architetturale• Non occorre sviluppare una semplificato di un possibile scena- Graphical User Interface (GUI) poi- rio d’applicazione in cui sono ché i browser web di per se suppli- richiesti dei sistemi per il controllo scono a tale funzionalità; di 16 ingressi digitali e 16 uscite digitali. In particolare ci si riferisce• Le dimensioni del codice Java sono al dispositivo RECS 101 prodotto minori rispetto alle istruzioni di da Intellisystem Technologies. codice macchina rendendo parti- colarmente attrattivo l’utilizzo di L’architettura presentata permette la tale tecnologia all’interno di web simulazione e lo studio di procedure server embedded dove, sicuramen- tipiche dei sistemi di controllo quali, te, la dimensioni della RAM messa AUTOMAZIONE 17 5

AUTOMAZIONEFigura 4 Scenario d’applicazione del dispositivo RECS 101 guito all’interno della memoria RAM; dopodiché l’informazione viene pro-ad esempio: acquisizione di segna- accordo alle specifiche dettate cessata e si provvede alla costruzioneli, azioni di controllo per mezzo di dallo standard [7], fig. 5. della Constant Pool Table. Laattuatori, l’elaborazione e la pre- Constant Pool è quindi risolta ed ilsentazione delle informazioni Figura 5 Architettura della JVM implementata programma passa alla ricerca delacquisite o manipolate. metodo d’inizializzazione del pro-Il sistema embedded presentato si Il programma monitor che risiede gramma main che dovrà essere ese-basa su un software di sviluppo all’interno del sistema embedded sca- guito. Dopo aver trovato questiscritto in C. Tale programma può rica il file .class che deve essere ese- metodi, la JVM ricerca il Byte Codefar eseguire dei task preprogram- che deve essere eseguito e, di conse-mati all’interno della ROM o far guenza, invoca l’interprete di byteco-eseguire delle applicazioni Java. de. Quando i metodi delle classi JavaLa capacità di far eseguire applica- sono stati invocati la JVM richiamazioni Java viene fornita dai seguen- delle subroutine del firmware delti componenti software che devo- microprocessore che provvederannono essere prevaricati nella ROM del all’implementazione del metodo spe-dispositivo mediante il su citato cifico.software di sviluppo [6]: La JVM di per se stessa non comunica- Il file loader .class, che permette direttamente con l’hardware del siste-di fare il downloads del codice Java ma ma usa delle classi per fare ciò. Unda eseguire nella RAM del disposi- fattore molto limitante di questi siste-tivo; mi è dovuto alla scarsità della memo-• L’implementazione della JVM ria che si ha a disposizione. Di conse- guenza ciò porta a fare delle scelte su stessa; quali metodi e classi devono essere• Implementazioni di classi per la implementati all’interno del sistema. gestione dell’hardware locale; UN IMPLEMENTAZIONE• Classi Java riferite al sistema PRATICA RECS 101 embedded. RECS 101 rappresenta una realizza-La JVM è stata implementate in zione pratica di quanto appena espo- sto [8]. La tab. 1 riporta le principali caratteristiche e specifiche del sistema proposto. RECS 101 integra al suo interno un network processor dotato di interfac- cia di rete Ethernet per connettersi direttamente a qualsiasi rete locale sia essa Internet che Intranet. Ciò per- mette agli integratori di sistemi e alle aziende produttrici di connettere i loro dispositivi direttamente ad Internet attraverso una rete Lan e, di conseguenza, di gestire da remoto il controllo totale dei loro dispositivi attraverso interfacce grafiche utente personalizzabili, direttamente accessi- bili mediante i comuni browser quali, ad esempio, Microsoft Internet Explorer e Netscape Navigator.18 AUTOMAZIONE 6

AUTOMAZIONE Specifiche del diapositivo RECS 101 Tabella 1 Control Panel” si accederà alla pagi- na web dedicata al controllo dell’ap- plicazione. La caratteristica che rende unico tale dispositivo consiste nell’utilizzare un web server all’interno di un’applica- zione embedded con la possibilità di eseguire del codice Java per la gestione dell’interfaccia relativa al controllo delle 16 porte di input e delle 16 porte di output (fig. 8). Tale caratteristica permette di poter gestire l’interfaccia utente tramite un’Applet Java parametrica: in que- sto modo l’utente finale può svilup- pare la propria applicazione di con- trollo in modo molto veloce e sicuro senza dover essere in grado di pro-RECS 101 si basa sullo schema hard- Schema funzionale di RECS 101 Figura 6ware presentato in fig. 6.RECS 101 viene fornito con una ni del tipo JPG, GIF, BMP, file videopagina web precaricata all’interno tipo SWF di Flash e qualsiasi altro filedella memoria flash del dispositivo si ritenga opportuno che l’HTTP ser-che può essere modificata a piaci- ver di RECS 101 debba gestire.mento in modo da personalizzarne Selezionando il link “RECS 101le applicazioni.RECS 101 contiene un web server Esempio di una possibile interfaccia Figura 8integrato capace di gestire fino a GUI implementata in RECS 101512k di documenti ed applicazioniweb: tali risorse sono precaricate Home page personalizzabile Figura 7 grammare in Java.all’interno della memoria flash del del dispositivo RECS 101 All’interno del pannello di controllodispositivo. La fig. 7 è un esempio di (fig. 8) si può notare un LEDuna pagina web gestita da RECS aggiuntivo specificato “Network”.101 che può essere utilizzata per La sua funzionalità è quella di forni-fornire informazioni statiche sul dis- re all’utente lo stato della rete: unapositivo quali, ad esempio, immagi- connessione senza problemi provo-ni, testi, files etc. ca il suo continuo lampeggiare. NelLa pagina visualizzata può essere per- caso di perdita momentanea delsonalizzata a piacimento mediante collegamento il LED non lampegge-l’uso dei più comuni editor di pagine rà e, se la connessione non si ristabi-HTML. Le pagine web possono con- lisce entro qualche minuto il sistematenere al loro interno file di immagi- chiuderà la connessione con RECS AUTOMAZIONE 19 7

AUTOMAZIONE101. 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- Tabella 2 Parametri di configurazione dell’Appletpatore per poter sviluppare rapidissi-mamente la propria applicazione in tivo alla personalizzazione dell’Appletmaniera facile e sicura. Il software in in cui si evidenzia il setup dei para-dotazione contiene alcuni files ed metri di inizializzazione.un’APPLET (RECS.jar) di controllo che L’esempio in questione prevede l’uti-possono essere personalizzati median- lizzo di tutte le 16 uscite e di tutti i 16te i parametri riportati di seguito: ingressi messi a disposizione dall’-• PDFOOK: Stringa d’inizializzazione hardware di RECS 101.Applet. Non è possibile effettuarenessuna modifica <APPLET CODE=Applicazione.class• host: Indirizzo IP associato a RECS ARCHIVE=RECS.jar WIDTH=850101(Es. host HEIGHT=500>value=\"172.16.10.103\" vuol dire <param name=PDFOOKche l’indirizzo IP di RECS è value=\"Intellisystem172.16.10.103 Technologies Device\">• port: Porta TCP adoperata dall’ <param name=hostapplicazione per comunicare con value=\"172.16.10.103\">RECS 101. Il valore di tale porta è <param name=port value=6001>fisso e pertanto non modificabile <param name=polling value=1>(Es. port value=6001) <param name=NumLed value=16> Figura 9 Interfaccia GUI avanzata <param name=NumBot value=16> implementata in RECS 101 </APPLET>• polling: Intervallo di Polling. Ha una tuare nessuna modificarisoluzione di 10 ms e può essere La fig. 8 rappresenta l’interfaccia • host: Indirizzo IP associato a RECS 101settato in funzione dell’applicazio- utente che si ottiene applicando ilne. Per es. “polling value=1” signifi- codice appena esposto. Le limitazioni (Es. host value= \"172.16.10.103\". Vuolca che il check dello stato d’ I/O del di quest’Applet consistono nel fatto dire che l’indirizzo IP di RECS èdispositivo verrà controllato ogni che non è possibile modificare i testi 172.16.10.10310 ms ed i colori dei vari componenti che for- • port: Porta TCP adoperata dall’• NumLed: Numero ingressi da mano l’interfaccia utente. applicazione per comunicare conmonitorare mediante LED bicolore Per gli utenti più esperti viene messa a RECS 101. Il valore di tale porta è(Es. NumLed value=16, verranno disposizione un’ Applet più elaborata fisso e pertanto non modificabile (Es.visualizzati 16 LED indicatori di che permette di personalizzare ulte- port value=6001)stato) riormente l’interfaccia grafica utente • polling: Intervallo di Polling. Ha una• NumB: Numero di pulsanti di mediante altri parametri che permet- risoluzione di 10 ms e può essere set-comando per la modifica dello tono di definirne colori e testi (fig. 9). tato in funzione dell’applicazione.stato delle uscite (Es. NumB Di seguito si riassumono i parametri Per es. “polling value=1” significavalue=16, verranno visualizzati 16 che permettono la personalizzazione che il controllo dello stato d’ I/O delpulsanti) dell’Applet in questione (RECS.jar ver- dispositivo verrà controllato ogni 10Per comodità del lettore la Tab. 2 sione avanzata): msriassume tutti i parametri gestiti • PDFOOK : Stringa d’inizializzazio- • Title: Stringa intestazione applicazio-dall’applet in questione. ne. (Es. Title value=\"RECS I/O DEMODi seguito si riporta il frammento del ne Applet. Non è possibile effet- \")codice HTML del file index.html rela- • ColTit: Colore da associare alla strin- 20 AUTOMAZIONE 8

AUTOMAZIONE ga impostata nel parametro stato dell’ uscita * quando quest’ulti- CLIF10 value=\"green\", il colore del “Titolo”. (Es. ColTit value=\"green\" , il ma è nello stato “OFF” (Es. CLBF10 LED associato allo stato “OFF” dell’ testo verrà stampato in verde) value=\"gray\", il colore del LED asso- ingresso 10 sarà verde)• CAPL: Colore di sfondo Applet. (ES. ciato allo stato “OFF” dell’ uscita 10 • CLIT*: Colore associato al LED di CAPL value=\"yellow\", lo sfondo sarà sarà grigio) stato dell’ ingresso * quando que- giallo) • CLBT*: Colore associato al LED di st’ultimo è nello stato “ON” (Es.• NumLed: Numero ingressi da moni- stato dell’ uscita * quando quest’ulti- CLIT10 value=\"red\", il colore del LED torare mediante LED bicolore (Es. ma è nello stato “ON” (Es. CLBT10 associato allo stato “ON” dell’ NumLed value=16, verranno visua- value= \"blue\", il colore del LED asso- ingresso 10 sarà rosso) lizzati 16 LED indicatori di stato) ciato allo stato “ON” dell’ uscita• NumB: Numero di pulsanti di n.10 sarà blu) Per comodità del lettore la tab. 3 rias- comando per la modifica dello stato • TLD*: Testo da associare al LED * sume in forma tabulare i parametri delle uscite (Es. NumB value=16, relativo all’ ingresso *. (Es. TLD1 personalizzabili dell’Applet per la verranno visualizzati 16 pulsanti) value=\"Luce Camera\" è il testo da gestione avanzata di RECS 101.• TBT*: Testo da associare al pulsante * associare al LED 1 per effettuare la Di seguito si riporta il frammento del relativo all’uscita * (Es. TBT1 lettura dello stato dell’ ingresso 1) codice HTML del file index.html relati- value=\"Comando 10\" è il testo da • CTLD*: Colore del testo associato al vo alla personalizzazione dell’Applet in associare al pulsante 10 per modifi- titolo del LED * relativo all’ingresso *. cui si evidenzia il setup dei parametri di care lo stato dell’ uscita 10) (Es. CTLD1 value=\"black\", il colore inizializzazione.• CTBT*: Colore del testo associato al associato al testo relativo al LED 1 titolo del pulsante *. (Es. CTBT10 sarà nero) <APPLET CODE=Applicazione.class value=\"red\", il colore associato al • CLIF*: Colore associato al LED di ARCHIVE=RECS.jar WIDTH=850 testo relativo al pulsante 10 è rosso) stato dell’ ingresso * quando que- HEIGHT=500>• CLBF*: Colore associato al LED di st’ultimo è nello stato “OFF” (Es. <param name=PDFOOK value=\"IntellisystemParametri di configurazione dell’Applet per la gestione avanzata di RECS 101 Tabella 3 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 21 9

AUTOMAZIONEPoiché non occorre RECS 101 per Tabella 2 Files necessari per la personalizzazione dell'interfaccia utente di RECS 101simularne il suo funzionamento,collegandosi al seguente indirizzo NEL PROSSIMO NUMERO SI DIS- 3) Implementazione delle interfac-http://www.intellisystem.it/recs/In CUTERÀ DEI SEGUENTI ARGO- ce hardware sulle porte diterfaccia.htm si possono provare MENTI RIGUARDANTI RECS 101: Input/Outputle due interfacce proposte.Per chi invece volesse dilettarsi a 1) Configurazione dei parametri disperimentare la personalizzazione retedelle interfacce, IntellisystemTechnologies mette a disposizione 2) Upload dell’interfaccia utente Electronic shop 08nel proprio sito tutto il software personalizzatanecessario.Per fare ciò occorre: BIBLIOGRAFIA• scaricare una delle versioni delle [1] McCombie, B.,”Embedded Web server now and in the future,” Real-Time interfacce proposte dal seguente Magazine, no.1 March 1998, pp. 82-83. indirizzo http://www.intellisy- stem.it/recs/download.htm; [2] Wilson, A.,”The Challenge of embedded Internet”, Electronic Product• decompattare i file in una cartel- Design, January 1998, pp. 31-2,34. la;• modificare i parametri dell'inter- [3] D. Mulchandani, “Java for Embedded Systems”, in IEEE Computer faccia agendo sul file index.html Magazine, pp. 30-39, May June 1998. utilizzando un qualsiasi editor web; [4] Aptronix, “Bring Embedded System to the Internet”, http://www.aptro-• richiamare la pagina 101.html nix.com. mediante un qualsiasi Web Browser. [5] J. Gosling, B. Joy, G. Steele,”The Java Laguage Specification”,I files necessari per la personalizza- http://java.sun.comzione dell'interfaccia utente diRECS 101 sono essenzialmente tre [6] J.S. Young et All., “Design and specification of embedded system in java(a parte tutti quelli necessari per il using Successive, formal Refinement”, Proceedings of DAC’98, 1998contenuto grafico delle pagine Design Automation Conference. San Francisco, C.A.,june 15-19.web): 101.html, index.html,RECS.jar. [7] T. Lindholm, F. Yellin “The Java Virtual Machine Specification”, 1996.La fig. 10 riassume quanto detto in http://java.sun.comprecedenza, ovvero:1. La pagina 101.html rappresenta [8] Intellisystem Technologies. http://www.intellisystem.itla 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.22 AUTOMAZIONE 10

11

AUTOMAZIONERECS 101: UN WEB SERVEREMBEDDED PER APPLICAZIONIDI CONTROLLO REMOTOTRAMITE TCP/IP di Cristian Randieri seconda parte [email protected] 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 cui si andrà ad installare RECS 101. IP di RECS 101 occorre prima reini-DEI PARAMETRI DI RETE Pertanto occorrerà conoscere: zializzare l’indirizzo IP al valore di • Un indirizzo IP non utilizzato all’in- default 0.0.0.0 (operazione che verràPrima di poter utilizzare RECS 101 descritta di seguito). Inizializzare unoccorre configurare correttamente i terno della struttura; nuovo indirizzo IP per RECS 101suoi parametri di rete utilizzando il • La Subnet Mask della struttura. implica la rimozione dell’associazioneprogramma shareware di utilità RECS RECS 101 è preconfigurato in fase di IP/MAC memorizzata all’interno delUtility, scaricabile al seguente indirizzo testing con le seguenti impostazioni PC che s’intende adoperare. Talehttp://www.intellisystem.it/recs/ di fabbrica: informazione è memorizzata nelladownload.htm. RECS Utility è stato cache del protocollo ARP. Tramite ilprogettato e realizzato per lavora- Indirizzo IP: 172.16.10.103 comando mostrato di seguito è pos-re su piattaforma Microsoft Subnet Mask: 255.255.255.0 sibile visualizzare tutte le associazioniWindows sui sistemi operativi delle IP/MAC presenti nel PC (ovviamenteversioni 95/98/ME/NT/2000 e XP Per impostare o cambiare l’indirizzo gli indirizzi IP riportati nell’esempioHome/Professional. sono puramente fittizi):Una volta installato ed eseguito RECSUtility, verrà visualizzata la maschera >> arp –ainiziale del programma che permettedi impostare l’indirizzo IP di RECS Interface: 192.168.1.100 on Interface 2101 (fig. 1) Prima di configurare l’in-dirizzo IP da assegnare al dispositivo Internet Address Physical Address Typeè necessario avere informazioni sullastruttura degli indirizzi IP della rete in 192.168.1.15 00-01-95-04-02-03 dynamic 192.168.1.23 00-a0-95-14-12-23 dynamic124 AUTOMAZIONE 12

AUTOMAZIONE Finestra per la cancellazione Figura 2 dell’indirizzo IP.La rimozione di tale associazione va Schermata iniziale di RECS Utitlity. Figura 1 Dove “xxx” sta per qualsiasi numerofatta utilizzando il comando ARP nel compreso tra 0 e 255. Per modificaremodo seguente; mendo il pulsante “Trova” dopo qual- la configurazione dell’indirizzo IP e che istante il software restituirà l’indi- della Subnet Mask del PC occorre>> arp –d 192.168.1.15 rizzo IP correntemente impostato nel adoperare l’esatta funzionalità di dispositivo RECS 101. Occorre sottoli- Windows (fig. 5). Una volta rimossoAdesso si è pronti a reinizializzare l’in- neare che la ricerca non avrà esito con successo il vecchio indirizzo IPdirizzo IP all’interno del dispositivo positivo se la Subnet Mask del PC ado- precedentemente assegnato a RECSRECS 101. Selezionando la finestra perato per la configurazione è diversa 101 si è pronti per inserire in nuovo“Configurazione indirizzo IP” e pre- da quella impostata all’interno del dis- indirizzo IP selezionando la finestramendo il pulsante “Cancella indirizzo positivo RECS 101 che per default è “Configurazione indirizzo IP” (fig. 1).IP” sarà visualizzata la finestra riporta- 255.255.255.0. Verificare anche l’indi- Se nella tabella “DataBase BootP”ta in fig. 2. Dopo aver correttamente rizzo IP del PC da cui accedete a RECS appare la vecchia configurazione delimpostato l’indirizzo IP che si vuole 101 facendo in modo che l’indirizzo dispositivo, occorre premere il pulsan-cancellare, automaticamente alla del PC ricada all’interno della stessa te “Modifica configurazione” altri-pressione del pulsante “OK” l’indirizzo Subnet Mask di RECS 101.Ad esem- menti premere il pulsante “AggiungiIP di RECS 101 sarà impostato al suo pio, supponendo che RECS 101 sia nuovo dispositivo”: si aprirà la finestravalore di default 0.0.0.0. Nel caso in configurato nel modo seguente: riportata in fig. 6. Tale finestra presen-cui non si conosce a priori il vecchio terà i valori in precedenza impostatiindirizzo IP del dispositivo, si può ado- Indirizzo IP: 172.16.10.103 nel caso in cui il dispositivo sia già pre-perare la funzione di ricerca indirizzo Subnet Mask: 255.255.255.0 sente nel DataBase BootP. ViceversaIP tramite la pressione del pulsante conterrà i campi vuoti. La fig. 6 ripor-“Ricerca indirizzo IP”. Sarà visualizzata il PC con il quale si vuole accedere a ta l’esempio di quest’ultimo caso.la finestra riportata in fig. 3. Inserendo RECS 101 dovrà avere la seguente Modificare il campo “Indirizzo IP” coll’indirizzo MAC riportato nel pannello configurazione: nuovo indirizzo IP, il campo “Indirizzoposteriore del dispositivo ( )fig.4 e pre- MAC” (l’indirizzo MAC del vostro dis- Indirizzo IP: 172.16.10.xxx positivo è situato nel pannello poste- Subnet Mask: 255.255.255.0 riore, fig. 4), il campo “Gateway” (se esiste un Gateway nella vostra rete) ed in fine il campo “Subnet Mask” (fig. 6). Premendo il tasto “Aggiungi” le informazioni editate saranno memo- rizzate nel database degli indirizzi IP associato a RECS Utility. Per completare la configurazione del- l’indirizzo IP memorizzato occorre lan- ciare le funzionalità del server BootP premendo il pulsante “Avvio BootP” della finestra “Configurazione indiriz- zo IP” (fig. 1). Attendere qualche istante sino a quando lo stato del dis- positivo evidenzia la scritta “Invio della replica BootP all’indirizzo IP AUTOMAZIONE 125 13

AUTOMAZIONE“[xxx.xxx.xxx.xxx]”(dove Potrebbe capitare il caso che il disposi- Le figure 7 e 8 mostrano la diffe-“xxx.xxx.xxx.xxx” sarà il nuovo indi- tivo RECS 101 sia settato con un indi- renza di connessione tra un cavorizzo IP impostato). Attendere sino a rizzo IP non compatibile con la rete di rete dritto ed uno incrociato.quando il led Tx non finisca di lam- nella quale RECS 101 è stato installato. RECS 101 può essere collegatopeggiare, quindi premere il pulsante Ciò si traduce nel fatto che RECS 101 direttamente ad internet e quindi“Arresto BootP” (fig. 1). A questo non può essere indirizzato e di conse- rendere le sue applicazioni visibilipunto l’indirizzo IP di RECS 101 è guenza non è possibile cambiare il suo da tutte le parti del mondo se èstato cambiato. Se l’inizializzazione indirizzo IP. In questo caso l’unica solu- configurato con un indirizzo IPdell’indirizzo IP è avvenuta con suc- zione praticabile è quella di sconnettere statico.cesso, il Led TX del dispositivo lam- RECS 101 dalla rete Lan nella quale era La fig. 9 ne rappresenta una pos-peggerà in continuazione. Per verifi- installato e connetterlo direttamente ad sibile connessione.carne il corretto funzionamento utiliz- un PC dotato d’interfaccia Ethernet In sintesi ciò che occorre è:zare il comando Ping da DOS. Ad mediante un cavo di rete incrociato. 1.Un indirizzo IP statico, ovvero unesempio, supponendo che il nuovo Le operazioni da compiere sono rias-indirizzo sia 172.16.10.105, se il sunte nei seguenti punti: indirizzo IP che abbia visibilità sucomando Ping risponde come di 1.Scollegare RECS 101 dalla rete Lan. Internet.seguito riportato, allora la modifica 2.Collegare RECS 101 ad un PC trami- 2.Una connessione diretta ad inter-dell’indirizzo IP ha avuto successo. In net ad esempio ADSL o una retecaso contrario ripetere tutto il proce- te un cavo di rete incrociato. LAN perennemente connessa.dimento descritto. 3.Condividere la connessione ad internet tramite un Router e/o un>> Ping 172.16.10.105 Hub/Switch.>> Pinging 172.16.10.105 with 32 bytes of data: 4.Collegare RECS 101 alla rete dopo averlo configurato con il relativoReply from 172.16.10.105: bytes=32 time=10ms TTL=251 indirizzo IP statico.Reply from 172.16.10.105: bytes=32 time<10ms TTL=251Reply from 172.16.10.105: bytes=32 time=10ms TTL=251 UPLOAD DELL’INTERFACCIA UTENTE PERSONALIZZATA Per sfruttare al massimo le potenzia- lità di RECS 101, occorre personaliz- zare l’interfaccia grafica del dispositi- vo agendo e/o modificando i files forniti dal costruttore. Definita l’in- terfaccia utente per l’applicazione che s’intende progettare non resta che fare l’upload all’interno della memoria flash di RECS 101. Si ricor- da che la memoria totale a disposi- zione dell’utente è di 500 KByte, con supporto fino a 256 differenti file. Poiché RECS 101 utilizza un file system proprietario, i file relativi all’interfaccia web sono gestiti mediante una tabella interna di tipoFigura 3 Finestra per la ricerca dell’indirizzo IP impostato nel dispositivo. Figura 4 Indirizzo MAC.126 AUTOMAZIONE 14

AUTOMAZIONEFigura 5Maschera di windows per il setup della connessione di rete. “file index”. Per trasferire i files all’in- Figura 6Finestra per la configurazione del nuovo indirizzo IP. terno di RECS 101 è necessario proce- dere prima alla creazione di un file di progetto che rappresenta l’immagine dei 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 contiene al suo interno delle funzionalità dedi- cate alla costruzione e all’upload di questo 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 Utility per creare il file di progetto *.REC. 4) Fare l’upload del file di progetto all’interno di RECS 101. Di seguito è presentato un esempio illustrativo atto a descrivere l’operazio- ne di upload dell’interfaccia persona- lizzata presente nel CD-Rom fornito in dotazione situata all’interno della car- tella “CP” (il lettore può scaricare tale software direttamente da questo indi- rizzo:http://www.intellisystem.it/recs/ downloads/CP.zip). Poiché l’upload del file di progetto avviene mediante il protocollo UDP (protocollo che non prevede la conferma della ricezione dei pacchetti inviati) il lettore, in real- tà, pur non avendo a disposizione RECS 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 le seguenti: 1) Dopo aver lanciato RECS Utility selezionare l’opzione “Web Upload” come riportato in fig. .10 2) Premere il pulsante “Seleziona Files AUTOMAZIONE 12715

AUTOMAZIONEFigura 7 Tipologie di cavi di rete cavo “dritto” e cavo “incrociato”. Nel caso si volessero programmare più RECS 101 con la stessa interfaccia utente e quindi col medesimo indiriz- zo IP si possono saltare le fasi descritte nei punti 1-4 a patto di possedere il file di progetto *.REC. In questo caso premere il pulsante “Seleziona File di progetto” (fig. 10), selezionare il file di progetto da trasferire in RECS 101 (fig. 13), quindi procedere con l’ope- razione di upload premendo il pulsan- te “Upload” (fig. 10).Figura 8 Realizzazione di un cavo incrociato. IMPLEMENTAZIONE DELLE INTERFACCE HARDWARE SULLE di progetto” e selezionare la cartella 4) Premere il pulsante “Upload” per PORTE DI INPUT/OUTPUT contenente i files (Ad esempio la trasferire il file immagine all’interno cartella Control Panel “CP” di RECS 101. Questa procedura RECS 101 si interfaccia con l’impianto contenuta all’interno del CD-Rom attiverà una barra di progressione o dispositivo da controllare mediante fornito in dotazione), premere “ok” che indica lo stato d’avanzamento due porte a 16 bit digitali, rispettiva- per proseguire (fig. 11). dell’operazione di upload in corso. mente, una di Input ed un’altra di3) Inserire quindi il nome da assegnare Al termine di tale fase sarà Output poste sul frontalino posteriore. al file di progetto e premere il visualizzato un messaggio che La fig. 14 riporta la piedinatura dei pulsante “Salva” (fig. 12). comunica la chiusura dell’operazione. connettori Cannon a 25 poli che ospi- tano tali porte.Figura 9 Esempio di una possibile connessione di RECS 101 ad Internet tramite una linea ADSL. Il progettista che intende interfacciare RECS 101 deve predisporre delle inter- facce che consentono il corretto rispetto delle caratteristiche elettroni- che della logica TTL implementata nelle due porte. Di seguito distingue- remo due tipi d’interfacce rispettiva- mente una per la porta di Input ed un’altra per la porta di Output. UNITÀ D’INPUT Poiché l’interfaccia di I/O di RECS 101 lavora 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’ingresso per l’applicazione fornita sono stati progettati per funzionare in logica TTL “Low Active”. Non sempre però i dispositivi hanno delle porte TTL e perciò, in questo caso, è opportuno adoperare un cir- cuito che interponendosi tra RECS 101 e il dispositivo da interfacciare possa connettere i due dispositivi senza che essi corrano il rischio di dan- neggiarsi. Il circuito suggerito utilizza dei fotoaccopiatori che, garantendo128 AUTOMAZIONE 16

AUTOMAZIONE Figura 11Selezione dei file di progetto.Figura 10Maschera per la gestione dell’upload di RECS Utility. Figura 12Creazione del file di progetto. Figura 13Selezione del file di progetto. 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.Figura 14Piedinatura dei connettori di I/O di RECS 101. UNITÀ D’OUTPUT RECS 101 è dotato 16 uscite che lavo- rano con livelli logici TTL progettati per funzionare in logica “High Active”. Affinché RECS 101 possa essere correttamente interfacciato con un altro dispositivo che lavora con AUTOMAZIONE 12917

AUTOMAZIONE sottovalutare per prevenire possibili rischi di danneggiamento di RECS 101 o peggio ancora di tutti i sistemi pre- senti nella rete a cui è connesso RECS 101: in questo modo si è sicuri che per qualsiasi operazione errata compiuta a valle dell’interfaccia il danno è comun- que confinato al danneggiamento del- l’interfaccia stessa.Figura 15 Interfaccia per la connessione di un dispositivo alla porta d’ingresso di RECS 101. DEVELOPER’S BOARDtensioni diverse si consiglia l’uso di applicazioni nelle quali è necessario Su richiesta dell’utente, Intellisystemfotaccopiatori che garantendo un effettuare un controllo di tipo Technologies è in grado di forniretotale isolamento tra i due dispositivi ON/OFF di carichi di qualunque tipo. una developer’s board per il dispo-ne assicurano il corretto funzionamen- Poiché il circuito contiene dei relay sitivo RECS 101 (fig. 17).to. La fig. 16 mostra lo schema elettri- assieme agli optoisolatori si ottiene un La developer’s board di RECS 101co di un circuito d’esempio per la rea- circuito doppiamente isolato sia galva- è una scheda che integra al suolizzazione di un’interfaccia d’uscita da nicamente (per mezzo dei realy) che interno 16 switches per la simula-collegare a RECS 101. Tale circuito si otticamente (mediante l’uso di fotoac- zione dei 16 ingressi digitali dipresta benissimo per tutte quelle coppiatori). Questa proprietà è da non RECS 101 e 16 display a LED per le relative 16 uscite. Gli switch relativi ai 16 ingressi sono stati progettati per lavorare secondo logica TTL “Low Active”, e i 16 display relativi all’output sono stati progettati per lavorare secondo logica TTL “High Active” compatibilmente alle specifiche di RECS 101. Le tabelle 1 e 2 riportate di segui-Figura 16 Interfaccia per la connessione di un dispositivo mediante relay alla porta d’uscita di RECS 101 130 AUTOMAZIONE 18

AUTOMAZIONERECS developer’s board. Figura 17 to riassumono quanto detto in board è possibile progettare e svi- precedenza. luppare applicazioni senza aver a La RECS developer’s board non disposizione l’eventuale impianto necessita di alimentazione esterna da controllare. Dotata di due con- poiché gli viene fornita diretta- nettori ausiliari la RECS developer’s mente da RECS 101 tramite i due board permette allo sviluppatore connettori relativi all’IO. di estendere le sue funzionalità ad Mediante la RECS developer’s altri dispositivi elettronici in modo da poter effettuare velocemente le Logica “Low Active”. Tabella 1 comuni operazioni di debugging Logica “High Active”. Tabella 2 delle applicazioni. La fig. 18 riporta la piedinatura dei connettori ausiliari descritti in precedenza. Nel prossimo numero si discuterà dei seguenti argomenti riguardanti RECS 101: 1) Protocollo di comunicazione implementato 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. BIBLIOGRAFIA [1] Intellisystem Technologies “RECS 101 Manuale Utente”, http://www.intellisystem.itPiedinatura dei connettori ausiliari presenti nella RECS developer’s board. Figura 18 Electronic shop 24 19 131AUTOMAZIONE

20

AUTOMAZIONERECS 101: UN WEB SERVEREMBEDDED PER APPLICAZIONIDI CONTROLLOREMOTO TRAMITE TCP/IP terza parte di Cristian Randieri [email protected] 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.PROTOCOLLO DI COMUNICAZIO- IP impostato su RECS 101 e la relativa • I/O Get Command: È il comando porta fissata alla 6001.RECS 101 si mediante il quale l’interfaccia socketNE IMPLEMENTATO IN RECS 101 occuperà dell’interpretazione dei interroga RECS 101 sullo stato delle comandi di controllo ricevuti o tra- proprie porte.RECS 101 effettua il controllo delle smessi dal dispositivo elettronico dasue porte digitali mediante un inter- controllare ad esso connesso. • I/O Get Command Responce: È ilfaccia basata sui socket di Internet. I comandi di controllo si suddividono comando di risposta mediante ilPer ottenere il controllo remoto delle in due categorie che identificano due quale RECS 101 comunica all’inter-porte di I/O attraverso Internet, è operazioni diverse: faccia socket lo stato delle sue portenecessario che l’interfaccia che gesti- Monitor Stato I/O di I/O.sce i socket venga implementata nel Tramite quest’operazione è possibilePC dell’utente che intende collegarsi avere informazioni inerenti lo stato di Controllo dell’Outputa RECS 101 attraverso il protocollo tutte le linee di I/O contenute nelle Questo tipo di operazione, gestitaTCP/IP. due porte a 16 bit di RECS 101. I unicamente dal comando Output SetLa potenzialità di RECS 101 consiste comandi relativi a quest’operazione Command è utilizzata dall’interfaccianel fatto che tale interfaccia può esse- sono essenzialmente due: socket per settare i valori della portare implementata indifferentemente d’Output di RECS 101. La tabella 1mediante un’ Applet Java (che viene riassume i comandi relativi alla comu-eseguita all’interno del Web Browserche si collega al dispositivo RECS 101) Figura 1: Possibili scenari d’implementazione dell’interfaccia di comunicazione socket di RECS 101o 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’indirizzo68 AUTOMAZIONE 21

AUTOMAZIONE una parola di 16 bytes. Di conseguenza l’utente dovrà inter- pretare solamente i primi 4 bytes del pacchetto ricevuto. Ciò è dovuto al fatto che, come detto in precedenza, la trasmissione di que-Figura 2: Schema funzionale per la gestione di un dispositivo elettronico tramite RECS 101 ste informazioni avviene mediante i socket che operano tramite il protocol- lo TCP/IP che a sua volta opera sullo standard Ethernet. Poiché lo standard Ethernet impone una lunghezza minima del pacchetto di 64 bytes (inclusi i gli headers IP e TCP) [1], e considerando il fatto che nel caso in cui venga generato un pac- chetto la cui lunghezza minima è infe-Figura 3: Comandi di controllo di RECS 101 riore ai 64 bytes questi viene scartato, bisogna arrivare alla conclusione che anche se RECS ne avrebbe di bisogno solamente 4 si è costretti ad usarne16, di conseguenza, l’utente dovrà inter- pretare solamente i primi 4 bytes del pacchetto ricevuto (tabella 4).Figura 4: Comando di controllo della porta di Output di RECS 101 Controllo dei comandi di Outputnicazione e i tipi di messaggi che ven- sia acceso quando a quest’ultima viene Questo tipo di comando viene utilizza-gono scambiati tra l’interfaccia socket inviato uno zero logico. Se adesso con- to in tutti quei casi in cui si vuole modi-ed il dispositivo RECS 101. sideriamo il caso in cui i bit 0,2,4 e 10 ficare il valore di un bit della porta di della porta di Output siano nello stato Output di RECS 101 senza che vengaMonitor dello stato di I/O logico alto e i bit 1,3 e 5 della porta di generato un messaggio di conferma.Lo stato della porta di I/O di RECS 101 Input siano anch’essi nello stato logico La tabella 5 riporta il formato del rela-è controllato mediante comandi gesti- alto, RECS 101 alla ricezione del tivo comando “0x76” che si componeti tramite l’interfaccia socket che prov- comando “0x75” risponderà come di 4 bytes di cui il primo contiene ilvede a far dialogare il PC utente con descritto nella tabella 3. comando vero e proprio e gli altri dueRECS 101. A questo punto l’interfaccia socket tra rappresentano il nuovo stato che laPiù esattamente il comando che il PC RECS 101 ed il PC utente si occuperà porta d’Output dovrà assumere.utente deve inviare per ricevere da parte dell’interpretazione di questo valore Per esempio, supponiamo il caso in cuidi RECS 101 lo stato delle porte di I/O è visualizzandolo sul PC utente. si voglia modificare lo stato della portalo “0x75”, che si compone di un byte. d’Output di RECS 101 settando alloQuando RECS 101 riceverà tale Anche se i dati relativi allo stato delle stato logico “alto” i bit 0,1,2 e 3comando provvederà a comunicare lo porte di I/O sono contenuti in 4 byte, lasciando tutti gli altri nello stato logi-stato delle porte di I/O utilizzando 4 RECS 101 invierà all’interfaccia socket co “basso”. Allora poiché il corrispon-byte come riportato in tabella 2.Appare evidente che lo stato delle Tipo di operazione Comando Direzioneporte di I/O dipenderà dalla logicaimplementata dall’utilizzatore di RECS PC Utente RECS 101101. Per esempio, supponendo che il Monitor Stato I/O I/O Get Commandcircuito da interfacciare a RECS 101 sia I/O Get Command Responsestato progettato per lavorare secondola tecnica “Active LOW” ciò equivale a Controllo dell’Output Output Set Commanddire che un ipotetico diodo Led colle- Tabella 1: Comandi relativi alla comunicazione e i tipi di messaggi che vengono scambiati tra l’interfacciagato ad un’uscita della porta di Output socket ed il dispositivo RECS 101 69AUTOMAZIONE 22

AUTOMAZIONETipo Numero di Byte 2 34 1Comando per monitorare lo stato delle porte di I/O Stato della porta di OutputRisposta contenete lo stato delle porte di I/O 0x75 Byte 3 Byte 4 Stato della porta di Input MSB LSB Stato della porta di Output Byte 1 Byte 2 MSB LSB Stato della porta di InputTabella 2: Controllo dello stato delle porte di I/O di RECS 10115 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 011111011111010100000000000101010 1111 | 1011 | 1110 | 1010 = 0xFBEA 0000 | 0000 | 0010 | 1010 = 0x002A Stato della porta di Input Stato della porta di OutputTabella 3: Esempio di codifica dello stato della porta di I/Odente valore in esadecimale è 0x000F, rebbe essere utili per tutte quelle esi- Definite le variabili occorre inizializzareoccorrerà inviare a RECS 101 il valore genze di protezione e di riservatezza il Socket TCP mediante la chiamata allaesadecimale 76:00:0F come mostrato che escludano l’utilizzo di una procedura TCPSocketInit() che pernella tabella 6. tale interfaccia. brevità non viene riportata. Si passa Come primo esempio si riporta la pro- quindi ad inizializzare il buffer che con-COMUNICARE CON RECS 101: cedura IOMonitor che si occupa di terà il comando utilizzando la costanteL’INTERFACCIA SOCKET IN C monitorare lo stato delle porte di Input IOGet, che definita altrove, è uguale a e di Output di RECS 101. 0x75 che rappresenta il codice esade-Si riporta, di seguito, un esempio di Per poter gestire tale operazione cimale del comando Monitor Statocodice sorgente scritto nel linguaggio occorre per prima cosa definire due I/O.C, il quale rappresenta l’implementa- buffer rispettivamente commandBuf A questo punto utilizzando l’istruzionezione di un’interfaccia socket basata che conterrà il codice relativo al sendto s’invia l’istruzione Monitorsulle API dei socket di Berkely. I fram- comando da inviare a RECS 101 e Stato I/O a RECS 101, inviando comementi di codice riportati di seguito, si ResponseBuf che conterrà il valore parametri il valore del buffer e altreoccupano di gestire rispettivamente il letto nella porta di I/O. Occorrerà inol- informazioni riguardanti l’indirizzo IP“Monitor Stato I/O “ e il “Controllo tre definire delle variabili di ausilio di RECS 101.dell’Output” descritti precedentemen- quali: Poiché la funzione sendto restituiscete. • commandLen: è un intero che con- un valore che è uguale a -1 in casoPrendendo spunto da questi esempi d’errore, al verificarsi di quest’eventol’utente oltre a capire i meccanismi di tiene la lunghezza del comando rela- sarà visualizzato un opportuno mes-funzionamento descritti potrà essere tivo a commandBuf. saggio d’errore indicante un problemacapace di costruire una propria inter- • lenReceived: intero che conterrà la riscontrato durante la comunicazionefaccia personalizzata che funzionerà lunghezza del buffer di ricezione con il dispositivo.come applicazione, ovvero permetterà ResponseBuf. Inviato il comando Monitor Stato I/Odi gestire RECS 101 attraverso il proto- • i: variabile intera da utilizzare per i bisogna predisporre l’interfaccia socketcollo TCP/IP ma senza il supporto di cicli iterativi. a ricevere le informazioni che scaturi-un Web Browser. scono dall’interrogazione fatta.Un’applicazione di questo tipo pote- Per prima cosa bisogna allocare i buffer di ricezione ResponseBuf, dopodiché2 bytes 2 bytes 60 bytes mediante l’istruzione recvfrom (che è la corrispondente dell’istruzione sendtoStato della porta di Input Stato della porta d’Output Dati non utilizzati nel caso della ricezione) si riceverannoTabella 4: Formato del pacchetto ricevuto dall’interfaccia socket. 70 AUTOMAZIONE 23

AUTOMAZIONETipo Numero di Bytes la parola relativa alla porta di Output.Comando di controllo della porta d’Output 1 2 3 La prima operazione da svolgere è quella di richiedere quale bit all’in- 0x76 Stato della porta di Output terno della parole che compone la porta di Output si vuole modificare.Tabella 5: Formato del commando di controllo della porta di OutputComando di controllo della porta d’Output MSB Porta Output LSB Porta Output 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 00 0 0 1 1 1 10x76 0x00 0x0F 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0000000000001111 0000|0000|0010|1111 = 0x000F Stato della porta d’outputTabella 6: Esempio di modifica dello stato della porta d’uscita di RECS 101le informazioni relative allo stato della l’istruzione Output Set Command. Tale valore è quindi memorizzatoporta di I/O di RECS 101. Poiché l’istru- • outbit: è un intero inizializzato al nella variabile outbit. Richiamiamozione recvform restituisce un valore la procedura IOMonitor() per legge-uguale a -1, in caso d’errore, è possibi- valore zero che conterrà la posi- re lo stato della porta di I/O chele implementare delle istruzioni che zione del bit della porta di Output verrà memorizzato all’interno del-avvertano nel caso in cui ci siano stati che si vuole modificare. l’array IOStatus.degli errori di comunicazione. • outdata: è un intero inizializzato Da notare che IOStatus [2] conterràSupponendo che non ci sono stati al valore 0x0001 che viene utiliz- la parte MSB della porta di Output eerrori durante la comunicazione, si può zato come maschera per la modi- IOStatus [3] conterrà la parte LSB.passare alla visualizzazione dello stato fica del singolo bit che componedelle 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- Figura 5: Esempio che illustra l’algoritmo per settare a livello logico “alto” il 5° bit della porta di Output di RECS 101 teri che conterrà i tre byte che compongono il comando Output Set Command.• commandLen: è un intero che contiene la lunghezza in byte del- 71AUTOMAZIONE 24

AUTOMAZIONEA questo punto occorre ristabilire una LISTATO 1connessione con RECS 101 pertantoreinizializziamo il Socket tramite la //-------------------------------------------procedura TCPSocketInit(). Poiché in // RECS 101: Esempio di programmazione diC quando si definisce una variabile di // un interfaccia socket in Ctipo int questa viene allocata all’inter- // Procedura IOMonitorno di una cella di memoria di 16 bit // By Intellisystem Technologiessia IOStatus [2] che IOStatus [3] saran- // http://www.intellisystem.itno contenuti in due celle da 16 bit. //-------------------------------------------Occorre quindi fare in modo che que- void IOMonitor()ste siano compattate come unicovalore a 16 bit, tale operazione viene {svolta eseguendo l’operazione logica char commandBuf, *ResponseBuf ;sui bit di IOStatus [2] e IOStauts [3]: int commandLen, lenReceived ; int i ;outdata=(Shift di 8 posizioni versosinistra di IOStatus[2]) OR (IOStatus // Inizializzazione del Socket TCP[3]) TCPSocketInit() ;Quanto appena detto viene espleta- // Esegui I comandi TCPto da un unica istruzione riportata commandBuf = IOGet ;nel listato: commandLen = 1 ;outdata|=((IOStatus[2]<<8) | // Invia I comandi a RECS 101IOStatus[3]); err = sendto (sock,&commandBuf,commandLen,0,Essendo il nostro obiettivo portare a (struct sockaddr*)&clientAddr,sizeof(clientAddr));livello logico alto solamente il bit sele- if (err == -1)zionato tramite la variabile outbit, l’o-perazione necessaria da fare è quella {di utilizzare la variabile outdata prece- perror(\"\n Errore nell’invio dei dati !! \n\");dentemente inizializzata ad 1 e farla exit (1);shiftare (a livello di bit) di tante posi-zioni verso la sinistra rispetto al valore }di outdata, in questo modo il bit postoinizialmente uguale ad i in outdata si // Allocazione di un buffer per I pacchettiposizionerà alla relativa posizione // in ingresso, 1 pacchetto = 16 byteslasciando tutti gli altri bit uguali a zero. ResponseBuf = calloc(0x10, sizeof(char)) ;Quanto detto si riassume nellaseguente pseudo istruzione: // Ricezione dei pacchetti entranti lenReceived = recvfrom (sock,ResponseBuf,0x10,0,outdata= outdata OR (1 Shift di out-bit posizioni verso sinistra) (struct sockaddr*)&clientAddr,&clientLen); if (lenReceived < 0)Che si traduce nella seguente istru- {zione C: perror(\"\n Errore nella ricezione dei dati??? \n\") ;outdata |= (int) (1 << outbit); exit(0) ; }A questo punto la variabile outdataconterrà il nuovo valore dello stato // Visualizza la dimensione dei pacchetti entrantidella porta di Out con il bit seleziona- printf(\"\n%d N. di bytes ricevuti -> \n\", lenReceived);to portato a livello logico alto. Occorre // 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() ; }72 AUTOMAZIONE 25

AUTOMAZIONEadesso prepararsi per eseguire il com- LISTATO 2mando Output Set Command. Perfare ciò dobbiamo riempire il buffer //-------------------------------------------commandBuf di tre byte rispettiva- // RECS 101: Esempio di programmazione dimente, uno per il codice istruzione // un interfaccia socket in C0x76 e i rimanenti che conterranno la // Procedura SetOutputparte MSB e LSB del nuovo stato della // By Intellisystem Technologiesporta di Output. Adoperando le // http://www.intellisystem.itseguenti istruzioni: //------------------------------------------- void SetOutput ()IOStatus[2]=(outdata&0xff00)>> 8; {IOStatus[3] = (outdata & 0x00ff) ; char commandBuf[3] ;Facciamo in modo che IOStatus [2] int commandLen ;contenga la parte MSB del nuovo int outbit=0, outdata=0x0000 ;stato della porta di Output, il ché si int err ;ottiene eseguendo la seguente ope-razione logica sui bit di outdata: // Richiede quale bit si vuole portare a livello logico // alto della porta di OutputIOStatus[2]= Shift di 8 posizioni verso destra printf(\" Prego selezionare il bit della porta d’Output(outdata AND 11111111|00000000) di cui si vuole invertire lo stato logico “alto”(0-15) :\"); scanf(\"%d\", &outbit) ;Per il secondo caso sarà sufficienteeseguire solamente la seguente ope- // Legge lo stato corrente delle porte di I/Orazione logica sui bit di outdata: IOMonitor() ;IOStatus[3]= outdata AND // Re-Initializza il Socket TCP11111111|00000000 TCPSocketInit() ;Riempito il buffer che conterrà il // Determina il nuovo valore della porta d’Output a partirecomando da inviare a RECS 101, non // dallo stato attuale delle usciteci rimane che adoperare l’istruzione outdata = ((IOStatus[2]<<8) | IOStatus[3]) ;sendto per rendere tale comando ope- outdata |= (int) (1 << outbit);rativo. // Or operation with currentle selected BitSi ricorda che tale istruzione restituisce // Memorizza il nuovo stato della porta di Outputun valore che nel caso sia -1 indica che IOStatus[2] = (outdata & 0xff00)>> 8 ;l’informazione non è stata trasmessa IOStatus[3] = (outdata & 0x00ff) ;correttamente.Per concludere, l’ultima operazione da // Costruisci il buffer che conterrà Il comandofare è quella di chiudere il socket // Output Set Commandmediante la chiamata alla procedura // 1) Command ID IOSet=0x76TCPSocketClose.(vedi listato 2) commandBuf[0] = IOSet ;Per maggiore chiarezza la figura 5riporta un esempio pratico di quanto // 2) Output status setdescritto precedentemente, pertanto commandBuf[1] = (BYTE) ((outdata & 0xff00) >> 8) ;si supporrà quanto segue: commandBuf[2] = (BYTE) (outdata & 0x00ff) ;• Lo stato della porta di Output di commandLen = 3 ; RECS 101 è uguale a // Invia I comandi a RECS 101 00000000|10001001. err = sendto (sock,&commandBuf,commandLen,0,• Si vuole portare a livello logico “alto” (struct sockaddr*)&clientAddr,sizeof(clientAddr)) ; if (err == -1 ) { perror(\"\n Errore nell’invio dei dati !! \n\"); exit (1); } // Chiude il Socket TCP TCPSocketClose() ; } AUTOMAZIONE 73 26

AUTOMAZIONELISTATO 3 il quinto bit della porta di Output a partire dalla destra.//------------------------------------------// RECS 101: Esempio di programmazione di un interfaccia COMUNICARE CON RECS 101:// socket in Java L’INTERFACCIA SOCKET IN// Procedura readIOport JAVA// By Intellisystem Technologies//------------------------------------------ Come detto in precedenza per supera- re tutte le limitazioni dovute allapublic int readIOport() gestione di RECS 101 mediante un{ software applicativo la soluzione pro- posta da Intellisystem Technologies Socket socketTCP = null; utilizza la tecnologia Java che prevede int tmp = 0; la creazione di un’Applet di controllo, int inputData = 0; gestita mediante un interfaccia brow- byte rxData[] = new byte[16]; ser. Come ben noto, le Applet sono dei byte data[] = {COMMAND_GET}; programmi autonomi, scritti in Java, eseguibili mediante un comune brow- try { ser. La potenzialità di un software scrit- socketTCP=new Socket(InetAddress.getByName(m_host), m_port); to in Java, consente di essere totalmen- socketTCP.setTcpNoDelay(true); te indipendenti dalla piattaforma HW socketTCP.getOutputStream().write(data, 0, data.length); su cui si esegue l’applicazione. Senza instream=new DataInputStream(socketTCP.getInputStream()); entrare troppo nei dettagli della pro- tmp = instream.read(rxData, 0, rxData.length); grammazione in Java riportiamo di if (tmp != -1) seguito un frammento di codice Java { riguardante un esempio d’implemen- inputData = (int) (rxData[2] << 8 | (rxData[3] & 0x00ff)); tazione dell’interfaccia socket basata inputData &= 0xffff; su Applet che permette la ricezione e } trasmissione di degnali di I/O, attraver- socketTCP.close(); so il protocollo TCP. Il lettore più atten- instream.close(); to può paragonare i codici seguenti } con quelli scritti in C ed evidenziare quindi le analogie in termini di funzio- catch (Exception e) nalità. (listato 3) { System.out.println(\"Err : \" + e); BIBLIOGRAFIA } [1]Introduzione allo stack TCP/ return inputData; IP,IntellisystemTechnologie,} http://www.intellisystem.it/ download.htm//-------------------------------------------// Procedura writeOutputPort [2]Netid Managed Services,//------------------------------------------- Information technology, Northwestern Technology,public void writeOutputPort(int outdata) http://gradeswww.acns.nw{ u.edu/ist/snap/doc/snif- fing.html. Socket socketTCP = null; byte[] data = new byte[4]; [3]Internet spoofing reference data[0] = COMMAND_SET; page, http:// www.brd.ie / data[1] = (byte) ((outdata >> 8) & 0x000000ff); paper/ sslpaper / hyper- data[2] = (byte) (outdata & 0x000000ff); lin.html. // Initialize socket try { Electronic shop 16 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); }}74 AUTOMAZIONE 27

28

AUTOMAZIONERECS 101: UN WEB SERVEREMBEDDED PER APPLICAZIONIDI CONTROLLO REMOTOTRAMITE TCP/IP di Cristian Randieri quarta parte [email protected] 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”.La sicurezza è un aspetto molto intruso possa sfruttare queste vulne- Normalmente vengono adoperatiimportante e da non trascurare nei rabilità per accedere ai dati e quindi dei software in grado di utilizzaresistemi di controllo specie se sono potenzialmente danneggiare il siste- variegati dizionari che provano digestiti tramite la rete Internet. Se da ma. Ad esempio, la connessione di continuo diverse combinazioni sino aun lato la rete Internet offre grandi un sistema di controllo su internet quando non trovano quella vincenteflessibilità a livello di condivisione di può aprire delle falle nei sistemi di che permette di far accedere al siste-risorse e di gestione da remoto, dal- sicurezza e tali falle possono essere ma. Ad esempio i sistemi Unix sonol’altro è sicuramente un ambiente utilizzate da utenti non autorizzati particolarmente vulnerabili ad attac-non sicuro, poiché chiunque può per accedere o manipolarne le fun- chi di questo tipo, poiché, UNIX nonconnettersi ad essa. Il web ha il pote- zionalità. Gli intrusi potrebbero blocca l’accesso degli utenti dopo unre di aumentare la produttività di anche invalidare il server Internet del determinato numero di tentativi falli-chiunque, tuttavia come per ogni sistema di controllo, modificandone i ti, cosa che normalmente avvienetecnologia o attività di gruppo oltre file in esso memorizzati (ad esempio nella maggior parte degli altri sistemialle straordinarie attività occorre con- i file che contengono le informazioni operativi.siderarne i rischi. Generalmente gli sulle User-ID e Password degli utenti Attacchi alla sicurezza della rete eattacchi ad un sistema di controllo del sistema). I potenziali Hacker dei pacchetti: Poiché ogni pacchettoremoto si possono classificare potrebbero inserire nel sistema dei trasmesso in Internet può attraversa-mediante l’individuazione dei punti virus e altri programmi distruttivi re un gran numero di nodi prima dideboli del sistema che s’intende esa- auto-replicanti in grado di danneg- giungere a destinazione, gli hackerminare. In generale si possono indivi- giare o disabilitare completamente il possono utilizzare appositi strumentiduare quattro categorie: sistema. Possiamo classificare gli denominati “racket sniffer” per inter-• Vulnerabilità dei dati. attacchi provenienti da internet nelle cettare i pacchetti inoltrati nella rete• Vulnerabilità del software. seguenti categorie: (inclusi i pacchetti di login e trasmis-• Vulnerabilità del sistema fisico. Attacchi da password: Gli intrusi sione dei dati). I più comuni attacchi• Vulnerabilità delle trasmissioni. cercano di entrare nel sistema ai pacchetti sono precursori degliPer difendersi da questi attacchi, ci si immettendo un codice di Login ed attacchi al protocollo IP. Per iniziaredeve attendere che ogni potenziale una password, provando varie volte un attacco sniffing, un hacker per sino a trovarne una funzionante [1]. prima cosa va alla ricerca di una User84 AUTOMAZIONE 29

AUTOMAZIONEID e di una password di un utente utilizza la previsione del numero di zioni errate (ad esempio il nome dellegittimo utilizzandola per accedere sequenza come preparativo per l’at- DNS). Quindi, nonostante gli indiriz-alla rete distribuita. Dopo essersi tacco vero e proprio al server oppure zi URL sembrino corretti e riflettendointruso nella rete l’hacker osserva e come base per l’attacco di un altro l’attività dell’azienda che possiede ilcopia le trasmissioni dei pacchetti e server della rete. sito Web cui si fa riferimento, nontenta di raccogliere quante più infor- Hyperlink Spoofing: È un tipo d’at- sempre questo accade. Quando èmazioni possibili sulla rete. tacco che gli hacker sferrato contro registrato un dominio, le autoritàAttacchi al protocollo IP: Si concen- computer che comunicano utilizzan- Internet assicurano che il DNS nontra sull’indirizzamento dei pacchetti do il protocollo HTTP [2]. Gli hacker sia già stato registrato da altri mache il protocollo IP utilizza per le tra- possono dunque sferrare attacchi non assicurano che non violi le leggismissioni. Un attacco di questo tipo anche al protocollo di autenticazione di copyright.prevede due fasi. Nella prima si cerca di server SSL (Secure Socket Layer) Web Spoofing: È un tipo d’attaccodi determinare l’indirizzo IP del ser- utilizzato per la creazione di browser che prevede di creare una copia falsaver, generalmente mettendosi in e server Web sicuri, come i prodotti ma convincente dell’intero sito Webascolto dei pacchetti Internet, pro- Microsoft e Netscape. Un attacco di [3]. Il sito Web ha tutto l’aspetto delvando a specificare in ordine vari questo tipo prevede che un hacker sito vero e proprio, ovvero contienenumeri di host oppure connettendo- fungendo da intermediario convinca le stesse pagine e gli stessi link delsi al sito mediante un browser web e il browser a connettersi a un server vero sito WEB, ma è completamenteosservando l’indirizzo IP nella barra fittizio presentando al browser l’a- sotto il controllo dell’hacker. In undi stato. Poiché l’hacker sa che gli spetto di una sessione sicura. Un hac- attacco di questo tipo, l’hacker puòaltri computer della rete condivido- ker intermediario è un hacker che osservare o modificare tutti i dati cheno una parte del dell’indirizzo IP del s’inserisce nel flusso dei pacchetti che vanno dalla vittima al server del sitoserver, cercherà di simulare un indi- scorrono fra un client ed un server. In Web. Inoltre, l’hacker può controllarerizzo IP che gli consenta di scavalca- questo modo l’hacker convince l’u- tutto il traffico di ritorno dal serverre il router e di accedere al sistema, tente a rilevare determinate informa- Web alla sua vittima. In seguito l’hac-come se fosse un utente interno. zioni quali ad esempio User ID e ker può impiegare vari tipi di attaccoDopo che l’hacker avrà iniziato a tro- Password o altre informazioni riserva- tra cui ad esempio lo sniffing e lovare gli indirizzi della rete, inizierà te che saranno memorizzate nel ser- spoofing. Con lo sniffing l’hackeranche a controllare i numeri di ver fittizio. Un alto rischio di osserva passivamente il traffico dellasequenza dei pacchetti che si tra- Hyperlink spoofing accade se l’uten- rete. Lo spoofing invece prevedesmettono tali computer. In seguito, te preleva ed esegue dal server fittizio un’attività di manipolazione in quan-dopo aver controllato le trasmissioni applet Java pericolosi, credendo che to l’hacker convince un host di esse-della rete, l’hacker cercherà di preve- tali applet siano forniti da un server re un altro computer fidato e pertan-dere il prossimo numero di sequenza sicuro e che debbano pertanto esse- to si prepara a ricevere varie informa-che verrà generato dal server e quin- re considerati sicuri. L’attacco zioni. Ad esempio l’hacker può regi-di fornirà un proprio pacchetto con Hyperlink spoofing rende palese un strare i contenuti e le risposte che iltale numero di sequenza inserendosi difetto nel modo in cui, la maggior server invia al client (User ID, pas-fra il server e l’utente. Poiché l’hacker parte dei browser, impiega i certifica- sword ecc.). L’hacker può eseguireha già l’indirizzo IP del server, può in ti digitali per rendere sicure le sessio- un’attività di sorveglianza, anche serealtà generare pacchetti con i ni. L’attacco spoofing tramite colle- la vittima ritiene di trovarsi in unanumeri di sequenza corretti e indiriz- gamenti ipertestuali non attacca la connessione sicura.zi IP che gli consentono di intercetta- crittografia a basso livello o il funzio- Indipendentemente dal fatto che lare le trasmissioni con l’utente. Dopo namento del protocollo SSL. Di con- connessione impieghi i metodi SSL oche l’hacker ha avuto accesso al siste- seguenza l’attacco può essere sferra- S-http, l’hacker sarà comunque inma tramite la previsione di un nume- to anche ad altre applicazioni garan- grado di ingannare l’utente. Siro di sequenza, può accedere alle tite da un certificato, a seconda del potrebbe pensare che sia difficile perinformazioni che il sistema di comu- modo in cui tali applicazioni impie- l’hacker sostituirsi all’intero Web, manicazione trasmette al server, inclusi i ghino i propri certificati. Il problema sfortunatamente non è così. L’hackerfiles di password, nomi, login, dati principale è che gli attacchi Hyperlink non deve memorizzare l’intero con-riservati e ogni altra informazioni tra- spoofing si basano sul fatto che il cer- tenuto del Web, poiché il Web è, persmessa in rete. In generale un hacker tificato SSL fornito contiene informa- definizione, disponibile on-line. AUTOMAZIONE 85 30

AUTOMAZIONEQuando il server dell’hacker deve for- il tempo necessario per eseguire le sufficiente per consentire la ricostru-nire una falsa pagina, gli basta prele- operazioni sulla chiave privata, un zione, la revisione e l’esame dellavarla e modificarla dal Web stesso. hacker può dedurre gli esponenti fissi sequenza di situazioni e di attività di Diffide-Hellman, i fattori delle chia- che hanno riguardato o che hannoPOSSIBILI CONTROMISURE vi RSA e dunque violare questi siste- condotto a un’operazione, una pro- mi di crittografia. In termini realistici, cedura o un evento in una transazio-Sebbene il mondo dell’informatica il pericolo che qualcuno possa deco- ne dal suo inizio ai suoi risultati fina-sia in continua evoluzione trovare dei dificare una trasmissione criptata, uti- li. Utilizzando gli audit-trail, si puòrimedi che eliminino definitivamente lizzando un attacco di questo tipo, è osservare quando un hacker tenta ditali problemi è molto difficile, tuttavia solo leggermente inferiore rispetto al attraversare il router e il firewall enel seguente paragrafo vogliamo pericolo che qualcuno possa rubare quando tenta di accedere al server.presentare alcune soluzioni che adot- la chiave privata dal disco fisso. Utilizzando uno dei programmi ditate potrebbero essere un modo per Attacchi alla sicurezza della rete e servizio disponibili nel sistema ope-fronteggiare queste problematiche. dei pacchetti: Gli attacchi sniffer su rativo, si può richiedere che a segui-Rispecchiando lo schema precedente reti distribuite possono essere evitati to di un determinato numero diriportiamo di seguito le soluzioni utilizzando degli schemi di identifica- richieste di accesso negate vengapossibili: zione come il sistema delle password prodotto un avvertimento. Si deveAttacchi da password: Nelle reti, monouso o il sistema di autenticazio- riconoscere che l’auditing e la manu-l’intercettazione delle transazioni, ne a ticket (come Kerberos [4]). tenzione e l’osservazione degli audit-rappresenta uno dei rischi più gravi Alcuni sistemi monouso forniscono trail non offrono una protezione “ ache attualmente affligge i singoli agli utenti la prossima password nel prova d’errore” contro gli attacchi alutenti e le organizzazioni. Per proteg- momento in cui l’utente si connette sistema. Se qualcuno esegue logersi dall’intercettazione dei pacchet- dal sistema. Anche se sia le password “spoofing” del sistema, ad esempio,ti è opportuno crittografare tutte le monouso che gli schemi Kerberos l’operazione non potrà essere indivi-trasmissioni. I due tipi principali di possono rendere molto più difficile lo duata dall’auditing. Se qualcunocrittografia sono: la crittografia a sniffing delle password su una rete ascolterà il sistema con uno sniffer,chiave semplice (o a chiave simmetri- non sicura, entrambi i metodi espon- l’auditing probabilmente non sica) e quella a chiave pubblica (o a gono al rischio di attacchi attivi se il accorgerà di nulla poiché l’hackerchiave asimmetrica). La crittografia a canale dati non è criptato o codifica- non accede ai dati del server machiave semplice, utilizza un'unica to. Un attacco attivo al protocollo semplicemente osserva i dati in pas-chiave nota ai due capi della comuni- TCP/IP consente all’hacker di ridire- saggio.cazione che la usano per crittografa- zionare il canale TCP verso la propria Come tutti gli altri strumenti di pre-re e decrittografare le informazioni. macchina. Dopodiché l’hacker può venzione degli attacchi, l’auditing-La crittografia a chiave pubblica, usa by-passare la protezione che offre un trail, se utilizzato correttamente, èuna chiave disponibile pubblicamen- sistema di password monouso o di solo uno degli strumenti per unte e una segreta conosciuta dall’uten- autenticazione a ticket. La connessio- piano organico di sicurezza.te. La maggior parte dei programmi ne TCP, diviene vulnerabile, a chiun- L’auditing non può sostituire un fire-normalmente utilizzati per eseguire que sia in possesso di uno sniffer di wall o uno screening router o unala crittografia dei messaggi, seguono pacchetti TCP e di un generatore di politica di sicurezza. Analogamentelo standard PEM (Privacy Enanched pacchetti TCP posizionati sul percor- gli altri sistemi difensivi non possonoMail) definito in dettaglio nelle RFC so della connessione. sostituire l’auditing.1421, 1422,1423 e 1424. Gli algorit- Attacchi al protocollo IP: Il modo Hyperlink Spoofing: Se s’impieganomi di crittografia più utilizzati sono più semplice per prevenire il sistema già applicazioni Web che fanno affi-l’algoritmo RSA (Rivest-Shamir- contro questo tipo di attacchi a pre- damento sull’autenticazione del ser-Adleman) e l’algoritmo Diffide- visione di numero di sequenza consi- ver (ad esempio per il prelevamentoHellman. Tali algoritmi possono quin- ste nell’assicurarsi che il router, il fire- di applet Java), l’unica soluzione pra-di essere utilizzati per marcare in wall e ogni server del sistema abbia- ticabile consiste nel far partire ilmodo digitale le trasmissioni. Questa no attivato la protezione audit-trail. browser da una pagina sicura intecnica consente ai destinatari dei Un audit-trail è una registrazione modo che gli utenti possano fidarsimessaggi di verificare l’identità del cronologica delle attività di sistema, dei link iniziali e che un hacker nonmittente. Studi recenti hanno dimo- possa mai inviarli in luoghi sospetti.strato che misurando accuratamente86 AUTOMAZIONE 31

AUTOMAZIONEUna pagina sicura è quella di cui si qualche utile funzionalità, si potrà in dersi contro i problemi di sicurezzapuò verificare l’integrità e questo, in ogni caso riattivarne l’uso, all’interno derivanti dall’impiego di Java. Poichégenere, significa che tale pagina di siti fidati, per disattivarli, nuova- la JVM interpreta gli applet Java local-deve essere un file HTML locale o una mente, quando si lascia il sito fidato. mente, in genere gli applet consu-pagina su un server SSL. Se si deside- La creazione di una soluzione a lungo mano grandi quantità di risorse dira che il browser di un utente parta termine è molto più difficile, poiché sistema. Gli applet ostili o mal pro-aprendo una pagina SSL, si deve occorrerebbe modificare il codice del grammati possono consumare trop-inviare l’indirizzo URL di tale pagina browser in modo tale che program- pe risorse di sistema utilizzando latramite mezzi difficili o impossibili da ma visualizzi sempre la riga dell’indi- maggior parte della CPU o dellaintercettare (ad esempio un floppy o rizzo offrendo una maggiore sicurez- memoria de computer.una lettera), altrimenti la pagina za così come la possibilità di rendere Quando un applet consuma troppepotrebbe diventare il punto di par- sicuro il browser contro modifiche risorse, il computer può rallentaretenza per l’attacco che s’intende pre- esterne, ovvero fare in modo che i sino quasi a bloccarsi.venire. Tutti i link contenuti in questa programmi Web non possano creare Questo stato di blocco è il risultato dipagina dovrebbero inviare gli utenti false barre di menù, false barre di un attacco. Nelle prime implementa-su siti di provata affidabilità e preferi- stato ecc. zioni di Java (JDK 1.1.2) esisteva unbilmente tutti i link dovrebbero esse- Per le pagine che il browser preleva bug nel verificatore di applet chere di tipo SSL. L’affidabilità può basar- utilizzando una connessione sicura, consentiva a un applet prelevato susi sui seguenti criteri: una migliore indicazione di attivazio- un client che si trova all’interno di un• Il sito deve essere condotto con cri- ne della connessione sicura potrebbe firewall di collegarsi a un determina- aiutare a garantire un’effettiva sicu- to host al di là del firewall. Dopo la teri di sicurezza. Ovvero l’intero rezza dell’utente. connessione, l’applet poteva tra- sito deve essere reso sicuro contro Invece di indicare semplicemente smettere informazioni relative alla gli attacchi e l’intercettazione delle l’attivazione di una connessione sicu- macchina client invece che informa- pagine. ra, i browser potrebbero visualizzare zioni relative al server proxy così• Il sito deve contenere link che con- con chiarezza il nome del server che come dovrebbe fare l’applet, apren- ducono solo ad altri siti sicuri. ha completato tale connessione. do la rete a un attacco spoofing.Web Spoofing: Questo genere d’at- Fondamentalmente ogni approccio In generale possiamo dire che il Javatacchi è veramente pericoloso e in al problema del Web-spoofing sem- può soffrire di quattro tipi possibili disostanza non è rilevabile. Le misure bra essere affidato alla vigilanza del- attacchi [5÷13]:preventive che possono essere adot- l’utente. Il fatto che un amministrato- • Leakage (unauthorized attemptstate si riassumono nei seguenti punti: re di sistema possa realisticamente• Disabilitare nel browser gli script in attendersi questo tipo di vigilanza da to obtain information belonging modo che l’hacker non possa tutti gli utenti della rete, pone seri to or intended for someone else). nascondere l’evidenza dell’attacco; dubbi. • Tampering (unauthorized chan-• Assicurarsi che la riga degli indirizzi ging/including deleting/of infor- del browser sia sempre visibile. I PRINCIPALI PROBLEMI mation).• Fare attenzione all’indirizzo URL DI SICUREZZA DEGLI • Resource stealing (unauthorized visualizzato dal browser, assicuran- APPLET JAVA use of resources or facilities such as dosi che punti sempre al server a memory or disk space). cui si pensa di essere connessi. Anche se Java rappresenta un • Antagonism (interactions not ambiente di programmazione relati- resulting in a gain for the intruder vamente sicuro, occorre considerare vari argomenti che aiutino a difen-Questa strategia riduce fortemente i Installazione Cache SAND BOX Accesso Completo Trustedrischi di attacco anche se un hacker Applet java Trusted *può comunque colpire un utente Applet java Standard * Libreria Java Trusted *dalla rete, specialmente coloro chenon si preoccupano di osservare stra- Installazione permanente Libreria Java standard *ni comportamenti sulla riga degliindirizzi o della barra di stato. Con la * Utilizzo dell’autenticazionedisattivazione degli script si perderà Tabella 1: Sisitema di sicurezza Sandbox di Java 87AUTOMAZIONE 32

AUTOMAZIONE but annoying for the attacked classe l’esistenza di violazioni alle Gli applet non possono creare o far party). regole del linguaggio e altre restri- riferimento a un proprio gestore della zioni riguardanti lo spazio dei nomi sicurezza. Per una descrizione piùGli Applet Java utilizzano un sistema e chiudere altre via di fuga, impie- dettagliata dell’architettura di sicu-di sicurezza, noto con il nome di gabili per uscire dal file della clas- rezza Java si rimanda alle note biblio-Sandbox, che protegge il computer se. In particolare l’applet verifier grafiche [5÷13].contro l’intrusione di applet ostili. Il assicura che:modello Sandbox limita l’accesso al • Il programma non provochi l’over- RECS 101 SECURITYsistema da parte del applet restrin-gendolo a determinate aree del flow o l’underflow dello stack. Come evidenziato in precedenza,client. • Il programma esegua accessi validi RECS101, rappresenta un implemen-La tabella 1 si riferisce ad un applet tazione realistica di un web serverJava di tipo standard chiamato applet alla memoria e ai registri. integrato capace di gestire al suosandbox. L’applet sandbox ha un • I parametri di tutte le istruzioni interno la JVM.accesso limitato alle risorse del siste- Il problema della sicurezza nel nostroma. Un applet sandbox non può ad bytecode siano corretti. caso presenta diversi vincoli nonesempio accedere al disco fisso del- • Il programma non converta illegal- indifferenti che riguardano le scarsel’utente, aprire nuovi canali di tra- capacità di calcolo del dispositivosmissione o restituire informazioni mente i dati. realizzato.approfondite, relative al client che L’applet verifier svolge queste funzio- Sicuramente è quasi impensabileesegue l’applet stessa. ni critiche analizzando le istruzioni poter implementare tutti i sistemiGli applet e la libreria standard java, contenute nel file dell’applet. Un anti-intrusione presentati nei para-sono applet sandbox. Il tipo trusted è browser Web utilizza un solo class grafi precedenti. Nonostante ciòuna nuova variante del modello java, loader che il browser attiva all’avvio, gioca a nostro favore il fatto cheun applet trusted ha accesso a tutte dopo questa fase il browser non può essendo un dispositivo non standardle risorse di sistema e opera all’ester- estendere, modificare o sostituire il che non ha al suo interno un sistemano della sandbox. caricatore di class. Gli applet non operativo standard ciò permette diIn genere, gli applet java trusted, possono creare o far riferimento a un sfruttare le proprietà hardware delsono applet creati da un’organizza- proprio class loader. dispositivo.zione o all’interno di un’intranet L’applet verifier è indipendente dal- Per essere più chiaro, i problemi peraziendale, oppure applet che l’autore l’implementazione di riferimento Sun cui il dispositivo potrebbe esserefirma prima della trasmissione via del compilatore java e dalle specifi- vulnerabile, sono principalmenteinternet. In generale non è possibile che di alto livello del linguaggio Java. dovuti a:garantire la sicurezza degli applet L’applet verifier esamina il bytecode • Possibile attacco alla passwordtrusted in quanto l’applet ha un generato dal compilatore java. Laaccesso completo alle risorse del JVM si fida (e pertanto esegue) del d’accesso al sistema.sistema. byte code importato da internet solo • Attacchi al protocollo IP e alla sicu- dopo che tale bytecode ha passatoARCHITETTURA DI l’analisi del verifier. Per passare al rezza dei pacchetti.SICUREZZA JAVA verifier il bytecode deve rispondere • Hyperlink Spoofing. alla sintassi, alle firme degli oggetti, • Web Spoofing.In accordo a quanto riportato in let- al formato del file della classe ed altre Poiché la nostra applicazione si basateratura [8], l’applet Verifier [9], è prevedibilità dello stack run-time sulla JVM, abbiamo un livello di pro-una parte del sistema run-time di definiti dall’implementazione. tezione base che comunque ci vienejava, che assicura che l’applet segua Gli applet sono eseguiti in condizioni fornito dalla gestione delle Appletdeterminate regole di sicurezza. di sicurezza relativamente stringenti. (come esposto precedentemente).Per iniziare, l’applet verifier conferma L’applet security manager è il mecca- Le contromisure che abbiamo adot-che il file della classe segua le specifi- nismo java che si occupa delle restri- tato per far fronte alle problematicheche del linguaggio java. L’applet veri- zioni sugli applet. Un browser ha un sopra esposte, sono le seguenti:fier non presume che il file della clas- solo manager della sicurezza. Possibile attacco alla passwordse sia stato prodotto da un compila- L’applet security manager si inizializ- d’accesso al sistema. RECS 101 nontore sicuro. za all’avvio del browser e in seguito integra al suo interno alcun sistemaAl contrario controlla nel file della non può essere sostituito, modificato o esteso.88 AUTOMAZIONE 33

AUTOMAZIONEdi gestione delle chiavi sia esse pub- da il Web Spoofing, si può pensare di applicazioni Client/Server in C chebliche che private, trattandosi di un disattivare il supporto Java in RECS eseguite localmente in un PC posso-sistema embedded dedicato al con- 101, però il prezzo da pagare è la no attivare una connessione controllo remoto di apparecchiature portabilità del dispositivo, nel senso quest’ultimo. In questo modo si risol-elettronico il suo utilizzo sarà sicura- che il dispositivo perderebbe tutte le vono tutti i possibili problemi dimente riservato ad una cerchia molto proprietà inerenti l’accesso alle porte Hyperlink Spoofing e Web Spoofing.ristretta di utenti di conseguenza si di I/O tramite interfaccia Web.può ipotizzare che gli utenti del siste- Poiché RECS 101 supporta anche i Electronic shop 28ma possano essere definiti a priori. Socket C è possibile scrivere delleCiò implica che il firmware del siste-ma deve essere programmato in BIBLIOGRAFIAmodo tale da inserire tutti i possibiliutenti del sistema. [1] Netid Managed Services, Information technology, NorthwesternLa gestione del database delle pas- Technology: http://gradeswww.acns.nwu.edu/ist/snap/doc/sniffing.htmlsword ed user ID è effettuatamediante l’applet Java Stessa che [2] Internet spoofing reference page:andrà a leggere un file crittografatoposto all’interno del file system di http://www.brd.ie/paper/sslpaper/hyperlin.htmlRECS 101. [3] Web Spoofing: An Internet Con Game:Attacchi al protocollo IP e alla sicu- http://www.cs.pronceton.edu/sip/pub/spoofing.htmlrezza dei pacchetti. Un attacco diquesto tipo viene in qualche moto [4] B. C. Neuman and T. Ts’o. Kerberos: An Authentication Service forridotto mediante la crittografia del Computer Networks. In IEEE Communications, volume 39, pagespacchetto contente lo stato delle 33–38.porte di I/O.Poiché come si è visto precedente- [5] S.Fritzinger and M. Mueller. Java security, 1996. Sun Microsystemsmente le porte di I/O di RECS 101 Incorporated, White Paper:sono codificate in un dato a 32 bit èpossibile inserire un algoritmo di crit- http://java.sun.com/security/whitepaper.txttografia che possa proteggere il con-tenuto dei dati. Nel caso in cui RECS [6] L. Gong. Secure Java Classloading. IEEE Internet Computing,101 venga utilizzato con una propria 2(6):56{61, November/December 1998.logica di controllo con operazioni disniffing è pressoché impossibile risali- [7] C. Kerer. A exible and extensible security framework for Java code.re all’algoritmo di controllo del siste- Master's thesis, Distributed Systems Group, Technical University ofma poiché questo è contenuto all’in- Vienna, Austria, October 1999.terno dell’applet. [8] G. McGraw and E. Felten. Java security and type safety. Byte,Hyperlink Spoofing & Web 22(1):63{64, January 1997.Spoofing. L’implementazione di un [9] G. McGraw and E. W. Felten. Java security: hostile applets, holes, andsupporto SSL all’interno di RECS 101, antidotes. John Wiley, New York, 1997.per la sua complessità è pressochéimpensabile. Di conseguenza un [10]G. McGraw and E. W. Felten. Securing Java: getting down to businessattacco Hyperlink Spoofing sarebbe with mobile code. John Wiley, New York, 1999.possibile. Per evitare ciò si può pen-sare di adoperare due RECS 101 che [11]A. Rubin and D. E. Geer. Mobile Code Security.lavorando in parallelo uno controlli IEEE Internet Computing, 2(6):30{34, November/December 1998.gli stati dell’altro, in questo modo laprobabilità che entrambi i sistemi [12]Sun Microsystems, Incorporated. Secure computing with Java: nowvengano attaccati simultaneamente and the future, September 1998. White Paper:decresce di molto. Per quanto riguar- http://java.sun.com/marketing/collateral/security.html [13]F. Yellin. Low level security in Java. In Proceedings of the Fourth International 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 89 34

35

INSERTO webUn server integrabile per applicazioni “Home Buildingapertura fotolito Automation” basate sul proto- bs28089.tif collo TCP/IP La casa va in Internet Cristian Randieri Automation in ambiente TCP/IP Fig. 1 - Architettura di un web server embedded in maniera veloce, facile e sicura. Intellisystem Technologies Il comfort nell’abitazione è parte D’altro canto poiché il World ser web sono capaci di fornire ninetsrisnesreecpasdicehtiecromdiinoagnnteundoe.l be- Wide Web (la “ragnatela mon- interfacce GUI a varie applica-U n web server embedded è Il continuo adeguamento del mo- diale”, o Web) è in continua evo- zioni client/server senza il biso- un web server progettato do di vivere alle nuove forme di luzione, per molte applicazioni gno di andare ad implementare per lavorare all’interno di cilotmrapsofertraimmeennttoodseolcleianleuoimvepaobnie- cboromwmseerrcwiaelib eè sdciiveennttiafitcohueniol dsoeliuszoioftnweamreigpleiorriel laatqoucelsietnott.ipLoaruanttseisrtizezmaatoadmaicrirsooprrsoecedsiscoarlecocalo- tudini alla propria abitazione co- standard per lo sviluppo di inter- di esigenze è sicuramente datalimitate. Aggiungendo ad un ta- me elemento indispensabile di facce utente di numerose appli- dall’utilizzo di un web server em-le dispositivo la programmazione continuità dell’aspetto compor- cazioni. Questo perché i brow- bedded connesso ad una infra-tipica del Web unitamente alle Ltaamceonnttainleu.a evoluzione delle tec-pgrroapmrmietaàzidoinuenaldinaglutoagligvieolldoiqpurao-- nologie basate sui sistemi digitalile il Java si ottengono interfacce ha fortemente modificato le tec- nsticehmeiedmi ecotondtorolollgoieduesdaitceatnieai lslia-Il browser web è Home Building Automation. In particolare oggi la richiesta didiventato uno standard processi distribuiti richiede si-per lo sviluppo di scotenmtriolilnoteellsigisetnemti,i ddiismpoissuitriavicda-iinterfacce utente di paci di comunicare attraverso lanumerose applicazioni rete. Un importante requisito di questi sistemi è l’esigenza di ri- dduurcreenleelcsoenmnepslisfiicoanrie, illachgeesstiiotrnae- dei sistemi riducendone le pro- blematiche inerenti alla manu- tenzione.di qualità, amichevoli (user TABELLA 1 - SPECIFICHE DEL DISPOSITIVO RECS 101friendly), a basso costo, crossnpelattwfoorrmk r(emaduylti(pprioanttteafpoermr laa)v,oe- Specifica Recs 101rare in rete). CPU Ubicom SX52BD (8 bit microprocessor, 50 MIPS)Intellisystem Technologies pre- Memoria 512 Kb flash memory (utilizzata per contenere le pagine web dell’utente)senta un nuovo dispositivo Recs Connessione di Rete Interfaccia Ethernet 10 Base-T (IEEE802-3)1g0e1n,zneadtiospveilrupfapraftroorni tcehaellienteesni-- Connessione Utente 16 Ingressi digitali/16 Uscite digitalidono gestire applicazioni profes- Protocolli Internet Supportati HTTP / BOOTP / TCP / UDP / IP ICMP / ARP Ethernet 802.3sionali per la Home Building Software di Utilità Recs Utility (Piattaforma Windows) Web page uploader e cambio indirizzo IP108 Il Giornale dell’Installatore Elettrico N. 9 25 Maggio 2003 www.reedbusiness.it 36

LA CASA VA IN INTERNET INSERTO TABELLA 2 - PARAMETRI DI CONFIGURAZIONE DELL’APPLET PER LA GESTIONE AVANZATA DI RECS 101Parametro Fusione Esempio Obbligatorio Possibilità di modificaPDFOOK Sì Nohost Stringa inizializzazione Applet host=value*172.16.10.103” Sì Sìpoet port value=6001 Sì No Indirizzo IP di RECS polling value=1polling Title value=”RECS VO DEMO” Sì SìTitle Porta TCP per la comunicazione CotTit value=”green” No SìColTit RECS 101 CAPL value=”yellow” No Sì Num Led value=16CAPL Intervallo di polling NumB value16 No SìNum Led TBT1 value=”Comando 10” Sì Interstazione Applet CTBT10 value=”red” Sì Fig. 3 - Il sistema Recs 101NumB CLBT10 value=”blu” Sì Colore da associare alla nuove caratteristiche che in-TBT* stringa Title TLD 1 value=”Luce Camera” No Sì cludono la gestione dei databa- CTLD1 value=”black” se, l’invocazione dei metodi re-CTBT* Colore background Applet CLIF10 value=”green” No moti ed altre caratteristiche ine- Sì renti la gestione della sicurezzaCLBF* Numero ingressi da CLIT10=value “red” No monitorare - Networking: Java nasce comeTLD* No Sì linguaggio di programmazione Numero di pulsanti per il distribuito, il che si traduce nelCTLD* controllo delle uscite No fatto che la sua progettazione Sì includeva sin dall’inizio la ge-CLIF* Testo da associare al No pulsante* stione di particolari funzioni ine-CLIT* No renti il networking quali, ad Colore del testo associato al Sì esempio, il TCP/IP, l’HTTP, l’FTP titolo pulsante* - Efficienza: le moderne JVM, gra- zie all’utilizzo della tecnologia Colore di stato dell’uscita* Sì Just in Time (JIT) compiler, le quando questa si trovi nello stato “OFF” performance d’esecuzione del- Sì le applet sono state fortemente Testo da associare al LED* migliorate. relativo all’ingresso* Frutto di anni di ricerca e speri- mentazione da parte di Colore del testo associato al Sì Intellisystem Technologies hanno titolo del LED* relativo all’ingresso portato alla realizzazione di Recs 101 (figura 3). Recs 101 è un dis- Colore del tessuto al LED di positivo di facile utilizzo a pre- stato dell’ingresso* quando quest’ultimo è nello stato “OFF” Colore associato al LED di stato dell’ingresso “quando” quest’ultimo è nello stato “ON”struttura di rete al fine di fornire mettendo l’uso di una strategia di diante il trasferi-una interfaccia utente basata sul- controllo indipendente dalla piat- mento di paginel’utilizzo dell’ormai noto linguag- taforma hardware del sistema in HTML e l’esecuzio-gcaioraHttTeMrisLtiucnhietacmoemnuteniaadi awlterbe cduoilovgiieanèe sgteastatitdaa. tQeumepsotaamdoepteo-- ne di applet Java (fi-browser. rata nelle applicazioni Internet do- gura 2).Se si pensa di aggiungere alle ve non sono richiesti stringenti I vantaggi dell’uti-funzionalità ormai consolidate di vincoli di real-time. L’uso del lin- lizzo di Java posso-upnacwitàebdsi eprovteerregmebsetidredeadpplaliccaa-- gpueraglegaiopdpilipcarozgiornaimdmi caozniotrnoellJoarvea- no essere breve-zioni Java ecco che questi siste- moto fornisce il vantaggio di inte- mente riassunti neimi aprono le frontiere a capacità grare sistemi di uso generale con seguenti punti:inesplorate, che li rendono capa- Internet permettendone la super- - indipendenza dal-cpiitdiiqeuseagliu, iared iepsieùmvparioie,gqautieclloimd-i Ivlisniuoonveoecdoinlcceotnttorochlloe.intendiamo la piattaforma: di-controllo remoto, supervisione e introdurre si basa sull’esecuzione versamente daigestione di sistemi elettronici (fi- di Applet Java (piccoli programmi comuni compila-Lg’uimrap1le).mentazione delle funzio- nagi dgiiucnontitvrio)lploeor edsiemgounirietoorpaegrgaioziod-i tori che produco-nalità Java all’interno di un tale dispositivi remoti. no codice per CPUdispositivo è particolarmente in- In questo tipo di sistemi il con- specifiche, il Javadicato per questo approccio per- trollo distribuito si ottiene me- produce un codi- ce per una CPU virtuale. Al fine di rimanere indipen- Fig. 4 - Scenario d’applicazione del dispositivo dente da specifi- Recs 101 che piattaforme hardware il si- stazioni elevate, ideale per ap- stema runtime di Java fornisce plicazioni di controllo remoto pro- un’interfaccia universale per fessionale. Una volta collegato qualsiasi applicazione che si de- ad una rete Ethernet, Recs 101 sidera sviluppare denominata mette a disposizione dell’utente JVM (Java Virtual Machine) 32 canali digitali di cui 16 di Input - Potenza: Java racchiude in sé e 16 di Output. ➝ UN SOFTWARE SUL SITOFig. 2 - Applet Java per eseguire operazioni di controllo o di monitoraggio di Per chi volesse dilettarsi a sperimentare la personalizzazionedispositivi remoti delle interfacce, Intellisystem Technologies mette a disposizione nel proprio sito tutto il software necessario (http://www.intel- lisystem.it/recs/Interfaccia.htm).www.reedbusiness.it 25 Maggio 2003 N. 9 G EIl iornale dell’Installatore lettrico 109 37

INSERTO LA CASA VA IN INTERNETFigura 5 - Esempio di una possibile interfaccia GUI dispositivo da cazioni web: tali risorse sono pre- le applicazioni di Home Buildingimplementata in Recs 101 controllare. caricate all’interno della memoria Astuetmomi daitivoindeleogsaotreveagi mliaondzearnriaspi-- Lstaraflioguscrhaem4 amaor-- fLlaasfhigd. e7lèduisnpeosseitmivpoi.o di una pa- presentando un valido strumen- chitetturale sem- gina web gestita da Recs 101 che to per integrare tutte le funzio- plificato di un può essere personalizzata per nalità tipiche di un sistema di possibile scenario fdoisrnpiorseitiinvfooqrmuaalzi,ioandiessteamticphioe, ismu-l sctoenmtriodlliomroenmitootraogagiionvoirdmeoalsipsei-- Rd’eacpsp1li0c1a.zione di magini, video, testi, file eccetera. cie quelli che si basano sulla tec- L’architettura pre- La caratteristica che rende unico nologia TCP/IP (figura 7). sentata permette tale dispositivo consiste nella ca- Con particolare riferimento al blalegmesatitoincheeditpiproi-- dpiacceitJàadvai ppoetrelraugseusftriuoinree ddeelll’cino-- ImP,onsidoindtueilscveidfeaoccilomnetnrotellochoeveler che dei sistemi di terfaccia relativa al controllo del- soluzioni proposte da Intellisystem controllo quali, ad le porte di I/O. Technologies non hanno limiti in esempio: acquisi- Tale caratteristica permette di ctearzmioinnii daidfuhnozciopnearlittuàtteedlaepepslii-- zaizoionnei ddii csoengtnroalllio, ptroatmeritgeeusnti’rAepl’pinletterJfaavcaciapaurtaemntee- genze dei più disparati utenti. per mezzo di at- trica: in questo modo l’utente fi- Ad esempio integrando i sistemi tuatori, l’elabora- nale può sviluppare la propria ztaioznioeneeladperlleeseinn-- mapopltliocavzeiloonceeediscicounrtoroslelonzina dmoovdeor L’utente finale formazioni acqui- essere in grado di programmare site o manipolate. in Java. può sviluppare la La tabella 1 ripor- La figura 5 riassume quanto det- propria applicazione traatleteprriisntciicphaeli cae- dtooidnapllraecheodmeenzpaa,goevvdeerlosiptoarwteenb- di controllo in modo specifiche del si- contenuto in Recs 101 si accede molto veloce e sicuro all’interfaccia utente personaliz-Figura 6 - Esempio di una possibile integrazione di Recs 101 con Recs GSM tzraotlalochinetetrravmieinteeusnu’laleppploerttdeidc’oinn-- Recs con le ben note telecamereI/O in un sistema Home Building Automation put e di output per la gestione AXIS (di cui Intellisystem dell’hardware che si intende con- cToe)chsni oalporgoinesoèlepafrrotnnetiretreecnpoelrougni- stema proposto. trollare. controllo totale di sistemi remoti, Recs 101 integra Rmeecnste10p1erèsounnaldiziszpaobsilieti.vo total- che nel caso della Home Building al suo interno un Viene fornito con tutto il softwa- pAruetsoemnaztaiovnirstui atrleaddueclol’ninodiinviduunoa network proces- re necessario allo sviluppatore all’interno della propria dimora. sor dotato di in- per poter sviluppare rapidissi- Sfruttando la combinazione vin- terfaccia di rete mneaimnemnatenilearapfraocpirleiaeaspicpulircaa.zio- cente di tali sistemi si ottiene uno Ethernet per con- Il software in dotazione contiene ssttriruemimenmtoagcoinmi peldetioricleavpaarceelodisgtae-- nettersi diretta- un’Applet di controllo che può to di dispositivi esterni, quali sen- mente a qualsiasi epsasrearmeepterirsroipnoarltizaztiaitna tmaebdeilalant2e. i sori e di manovrarne altri quali ad rete locale sia es- Facilmente integrabile con qual- eInsecmonpcioluastitounaetoRrie.cs 101, essen- siasi altro sistema offre una so- do un dispositivo totalmente luzione funzionale ed efficiente, flessibile nelle sue applicazioni, Apedr ielsteelmecpoino,trionlltoegdirsatnridbouitRoe.cs si presta come valido strumento 101 con Recs GSM I/O (modulo pmearcclahinreairni gaecgonnetrroizllzoaszeiomnie-aud-i GSM prodotto da Intellisystem tomatico, fornendo la possibilità Technologies provvisto di due di telecontrollare a distanza tra- sintgibrielisstiraemdiutee uSsMciSt)eèdipgoitsasliibgiele- mite Internet sistemi che sino integrare tutte le tipiche funzio- faudnzoigognialnitoàn. prevedevano tale nalità di gestione di sistemi per lmaiHteomIneteBrunieldtiendgaAlutetommpaotisotnetsrsao- servizio lettori 118 tramite SMS, fornendo all’utente una piattaforma di controllo re- moto multifunzionale non neces- sstarruiattmuerantdei rleetgea(tfaigaudrau6n).’infra- Recs 101 trova ampio spazio nel- sa Internet sia Intranet. Ciò per- mette agli inte- BIBLIOGRAFIA gratori/sviluppa- tori di sistemi e al- 1. McCombie, B.,”Embedded Web server now and in the future”, le aziende produt- Real-Time Magazine, no.1 March 1998, pp. 82-83. trici di connettere i loro dispositivi 2. Wilson, A.,”The Challenge of embedded Internet”, ElectronicFigura 7 - Esempio di una possibile integrazione di direttamente ad Product Design, January 1998, pp. 31-2,34.Recs 101 con un sistema di videosorveglianza Internet attraver- 3. J. Gosling, B. Joy, G. Steele,”The Java Laguage Specification”, so una rete Lan e, http://java.sun.comFacile da installare e configurare, di conseguenza, di gestire da re-permette di sviluppare un’appli- moto il controllo totale dei loro 4. T. Lindholm, F. Yellin “The Java Virtual Machine Specification”,cazione di controllo remoto in dispositivi attraverso interfacce 1996. http://java.sun.compochi e semplici passaggi. grafiche utente personalizzabili,Supportato da qualsiasi browser accessibili mediante i comuni 5. Intellisystem Technologies “Recs 101 Manuale Utente”,internet quale Internet Explorer browser. Il web server integrato http://www.intellisystem.ito Netscape permette di gestire in Recs 101 è capace di gestire fi-totalmente da remoto qualsiasi no a 512k di documenti ed appli- 6. Intellisystem Technologies “Recs 101 GSM I/O”, http://www.in- tellisystem.it/prodotti.htm 7. Intellisystem Technologies “Reenginnering”, http://www.intel- lisystem.it/servizi/reengineering.htm110 Il Giornale dell’Installatore Elettrico N. 7 25 Maggio 2003 www.reedbusiness.it 38



40

41

42

43

44

45

46

47


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook