ITP Elettronica Le caratteristiche di interoperabilità del Terrapack 32 M M. Guerriero*, V. Ferrara**, L. de Santis*** * ITP Elettronica ** Dipartimento di Ingegneria Elettronica – Univ. La Sapienza di Roma *** Siemens - Soluzioni Seminario: Interoperabilità nelle infrastrutture di Dati Territoriali – 26/27 feb 2004, Roma Univ. La Sapienza di Roma – Prima Fac. di Architettura, P.za Borghese, 9 SOMMARIO Introduzione ai sistemi interoperabili Interoperabilità del Terrapack 32M Implementazioni .NET e sviluppi futuri con Terrapack 32M Interoperabilità a livello di dati Scambio dati Conversioni dati Open Data Utilizzo di API (Application Programming Interface) Utilizzo di web services Interoperabilità a livello di applicazioni Comandi e telecomandi Utilizzo di API Utilizzo di OLE (Object Linking and Embedding) Utilizzo di SGML (Standard Genaralized Markup Language)? XML (eXtensible Markup Language) Utilizzo di SOAP (Simple Object Access Protocol) Interoperabilità tra sistemi Tecnologie Omogenee Eterogenee Object oriented, sistemi distribuiti e interoperabilità Un importante strumento della programmazione orientata agli oggetti è l’incapsulamento, mediante il quale l’informazione dell’esatta implementazione delle funzioni e del formato dei dati viene nascosta. Strumenti Provider Consumer API (Application Programming Interface) DOC - OpenDOC OLE ? ActiveX (Distributed Object Computing) (Object Linking and Embedding) SGML ? XML / GML (Standard Genaralized Markup Language) (eXtensible Markup Language) SOAP (Simple Object Access Protocol) Frameworks per l’interoperabilità Sviluppo OGM (Object Management Group) - Apple CORBA Basato su ORB (Object Request Broker), è stato Common Object Request introdotto dal 1990 utilizzando già dall’inizio il paradigma DOC Broker Architecture Sviluppo Microsoft Basato su OLE (Object Linking and Embendding ) COM l’interoperabilità (serializzazione !) standard è a Component Object Model livello binario. Solo nel ’96 include l’aspetto “distribuito” con l’avvento di DCOM Microsoft si allinea a JAVA. L’interoperabilità è estesa oltre che a livello binario anche a XML .NET (eXtensible Markup Language) e SOAP (Simple (sinonimo di InterNET) Object Access Protocol ) Sviluppo Sun Microsystem JAVA JAVA 2, Edizione Enterprise (J2EE) fornisce le piattaforme API per interoperare su web CORBA Middleware: ORB (Object Request Broker) Common Object Request Broker Architecture 1989 anno di Costituzione di OMG (Object Management Group) Esempi Esempidi diimplementazioni: implementazioni: Scopi: Scopi: Sun Digital SunNEO NEO DigitalObject ObjectBroker Broker HP IBM HPORB ORBPlus Plus IBMSOM/DSOM SOM/DSOM SNI … SNIOrblet Orblet … Esistono Esistonoimplementazioni implementazioniOpen OpenSource Source Riuso Riusodei deicomponenti componenti Portabilità Portabilità Interoperabilità Interoperabilità Uso Usodidisoftware softwarecommerciale commerciale OMG ha proposto un IDL (Interface Description Language) molto simile al sottoinsieme del linguaggio C++ per la dichiarazione dei tipi. Client Stub rete Skeleton Cobol C C++ … Cobol C++ IDL IDL Client Server ORB Server C La chiamata viene decomposta in due parti: Stub e Skeleton. … Architettura CORBA Interfacce (una per oggetto e implementazione): Sono definite tramite IDL Le definizioni degli oggetti e delle implementazioni sono poi memorizzate rispettivamente in specifiche Interface Repository e Implementation Repository Il client necessita di uno stub IDL per ogni interfaccia che utilizza sul server. OBJECT implementation Client Gli Stub e gli Skeleton (Server IDL stub) sono creati usando IDL dei precompilatori IDL e non 4 distinguono una chiamata Client statica da una dinamica. Trasparenza di linguaggio Stub Sono previste Dynamic Invocation Interface: invocare un metodo senza la presenza di uno stub. IDL Object Static Adapter skeleton Trasparenza ORB di locazione (IOR) Trasparenza di comunicazione L’Object adapter vaglia le richieste di servizi per conto degli oggetti server. Ad ogni oggetto (server) è abbinato uno IOR (Identifier’s Object Reference) che include le informazioni di indirizzamento dell’oggetto. COM Component Object Model OLE’ s COM OLE’s COM I COM includono tecnologie web site: DCOM (Distributed COM) COM+ MSMQ MTS (Microsoft Transaction Server) ActiveX Controls… COM definisce e implementa dei meccanismi per la connessione fra applicazioni interpretate alla stregua di oggetti software. Con COM, Microsoft utilizza il concetto di interfaccia in modo simile a quanto indicato dall’OMG in CORBA: le applicazioni interagiscono con le altre applicazioni e con il sistema mediante una collezione di funzioni di chiamata (richieste) denominate appunto interfacce. API APIdi dicontrollo controllo Interfaccia Interfacciautente utente Windows WindowsAPI API API API Windows sockets Windows sockets Sistema Sistema Windows Windows95 95 operativo operativo Windows WindowsNT NT GDI GDI Con le COM standard le applicazioni Standard possono essere modulate in binario componenti server riutilizzabili e in Object client che accedono a tali componenti. Oriented Indipendenza Server e client devono però risiedere dal linguaggio sulla stessa macchina. In Terrapack 32M sono state implementate delle librerie di telecomando che utilizzano uno strato OLE ? ? ? OLE Server DCOM Distributed COM Basato su specifiche dettate dalla Open Basato suprotocollo specifiche dettate dalla OpenSoftware SoftwareFoundation FoundationDCE-RPC DCE-RPCera era DCOM èè un che abilita la DCOM un protocollo che abilita la stato annunciato che avrebbe lavorato con entrambi i idue componenti: stato annunciato che avrebbe lavorato con entrambi due componenti: comunicazione diretta su una rete comunicazione diretta su una rete JAVA applets sfruttando le COM. appletseeActiveX, ActiveX, sfruttando COM. stato E’ stato progettato progettato per per usare usare ilil trasporto trasporto su su fra componenti software: le fra JAVA componenti software: le leE’ una una rete rete multipla, multipla, includendo includendo protocolli protocolli applicazioni applicazioni client client possono possono attivare attivare Internet Internet quali quali TCP TCP ee HTTP. HTTP. server DCOM che server DCOM che girano girano su su Limiti DCOM Caratteristiche DCOM macchine remote macchine remote Registrazione obbligatoria di una DLL (Dynamic Link Library): riutilizzo dei componenti il runtime permette l’installazione di una singola versione di un modulazione del software componente. approccio object oriented interfacce uniformi indipendenti dall’implementazione Conseguenze: Quando c’è la condivisione di una DLL o un COM da parte di più applicazioni, è rischioso l’aggiornamento. Download di ActiveX più recenti inibiscono il funzionamento delle applicazioni collegate alla ActiveX precedente I componenti non sono autodescrittivi .NET Sinonimo di interNET .NET nasce con l’idea di poter scrivere un’applicazione e farla eseguire su tutte le altre piattaforme (supportate) alla stessa stregua di JAVA della SUN Microsystem, di cui ricopia e fa sue tutte le impostazioni per l’interoperabilità. .NET si basa su un CLR (Common Language Runtime), un runtime che esegue “istantanemente” il codice, convertito in modo automatico dai compilatori in un MSIL (Microsoft Intermediate Language) e realizza una piattaforma omogenea e coerente. Il programma può essere scritto in un linguaggio qualsiasi (fra quelli supportati, una trentina: Cobol.NET, C#, Vb.NET, etc. ) che verrà tradotto in MSIL prima dell’esecuzione. Nel framework .NET vengono risolti i problemi derivanti dalle DLL: Le applicazioni devono essere autodescrittive Il framework deve contenere le informazioni sulla versione Si permette l’isolamento delle applicazioni Possibilità di eseguire in contemporanea più versioni di un componente Con .NET l’interoperabilità è estesa oltre che a livello binario anche a XML (eXtensible Markup Language) e SOAP (Simple Object Access Protocol ). Terrapack 32M permette l’interoperabilità con applicativi in ambiente JAVA e può inglobare e utilizzare procedure .NET XML eXtensible Markup Language Sviluppato nel 1996 dal XML Working Group (SGML Editorial Review Board) costituitosi sotto l’auspicio del World Wide Web Consortium (W3C) XML è stato derivato dal linguaggio SGML (Standard Generalized Markup Language) e ottimizzato per il web. E’ un metalinguaggio che permette di creare dei linguaggi personalizzati di markup. E’ un linguaggio aperto basato su testo che fornisce informazioni, di tipo strutturale e semantico, relative ai dati veri e propri. XML è importante per due classi di applicazioni web: creazione di documenti scambio di dati (utilizza gli URL come metodo standard di collegamento) Caratteristiche: Possono essere definiti nuovi tag e attributi Ogni documento XML può contenere una opzionale descrizione della propria grammatica, così che possa essere utilizzata da applicazioni che richiedono una validazione della struttura del documento. XML XML utilizza utilizza una una sintassi sintassi con con cui cui èè possibile possibile specificare specificare nuovi nuovi elementi elementi ee nuovi nuovi attributi attributi che che possono possono essere essere utilizzati utilizzati all’interno all’interno dei dei documenti. documenti. E’ E’ possibile possibile creare creare un un modello modello (DTD: (DTD: Document Document Type Type Definition Definition )) che che descrive descrive la la struttura struttura ee ilil contenuto contenuto di di una una classe classe di di documenti. documenti. SOAP (Simple Object Access Protocol) Con SOAP non viene realizzata una nuova tecnologia, ma si utilizzano protocolli esistenti. utilizza: HTTP (HyperText Transfer Protocol) protocollo firewall-friendly può includere ogni “info” (header estensibile) XML estensibile mediante i namescape fa a meno di: API Runtime ORB Linguaggi e modelli di sviluppo SOAP SOAP èè basato basato su: su: Schemi Schemi XML XML Modello Modello RPC RPC (Remote (Remote Procedure Procedure Call) Call) Estensibilità Estensibilità HTTP HTTP WS? WS? I I (Web (Web Services Services Interoperabilty Interoperabilty Organization), Organization), l’organizzazione l’organizzazione che che promuove promuove i i servizi servizi didi interoperabilità interoperabilità tra tra piattaforme, piattaforme, sistemi sistemi operativi operativi ee linguaggi linguaggi didi programmazione, programmazione, sta sta producendo producendo un un elenco elenco didi specifiche specifichenonnonproprietarie proprietarierivolte rivolteallo allosviluppo sviluppodell’interoperabilità. dell’interoperabilità. Tali Talispecifiche specifichesono sonosu subase baseSOAP SOAP(SOAP (SOAPBinding BindingProfile Profile1.0) 1.0) Terrapack32M I.T.P. Elettronica • • • • Ambiente per la Simulazione Multipiattaforma Architettura nativa Client-Server Scritto interamente in C ANSI standard Schema Funzionale Terrapack32M Terrapack32M Sottosistema GIS Sottosistema dati MATRICIALI Sottosistema dati VETTORIALI Sottosistema CARTOGRAFICO Strumenti ANALISI Dati Sottosistema accesso DATABASE Modulo Interconnessione Sottosistema OROGRAFICO Input Strumenti Rappr. GRAFICA Dati Strumenti INTERSEZIONE Dati Output Processo (esterno) di Simulazione [A] Input Output Processo (esterno) di Simulazione [B] Architettura Terrapack32M Host A SERVER SERRVE CARTOGRAFICO R RX Telecomando TOOL CAMPI ELETTRICI KERNEL SERVER ALTIMETRICO TOOL VISTE 3D Mod. Com. Servers TK Hosts SERVER PROPR. SUOLO Strato OLE J A Libreria Telecomando (C) V A SERVER DATABASE Host A/ Hosts EXTENSION AAAAA LAN / INTERNET .Net Interoperabilita’ LAN / INTERNET EXTENSION BBBBBB Applicazione di Comando e Controllo per CONTROMISURE ELETTRONICHE [dati rappresentati non reali] Architettura Comando e Controllo per CONTROMISURE ELETTRONICHE Host A Host B Extension (C) Terrapack32M RX TCP/IP Mod. JAVA T.C.Lib (C) Mod.Com.(C) Applicativo JAVA Host D Extension (C) TCP/IP RX Terrapack32M Database ORACLE Mod.Com.(C) T.C.Lib (C) TCP/IP Mod. JAVA Applicativo JAVA Mod. JAVA Host C LAN Applicazione di Comando e Controllo di tipo aeronautico [dati rappresentati non reali] Architettura Applicazione di Comando e Controllo di tipo aeronautico Host B [UNIX] Server Dati dinamici (TX - UDP) Host A [WINDOWS] Extension (C) Terrapack32M RX TCP/IP T.C.Lib (C) RX dati Rete Host D [UNIX] Applicativo Gestore Dati Server Dati (TX - TCP/IP) Host E [UNIX] Database ORACLE Servers Dati TK (Cart./Orogr.) Host C [UNIX] LAN Sala Operativa 115 Vigili del Fuoco Architettura Sala Operativa 115 Vigili del Fuoco Host A [WINDOWS] Applicativo alfanumerico Database ORACLE Terrapack32M RX Host C [WIN/UNIX] OLE T.C. Server Lib (Developer 2000) Host B [WINDOWS] Host D Applicativo alfanumerico (Developer 2000) Terrapack32M RX Servers Dati TK (Cart./Orogr.) OLE T.C. Server Lib LAN Integrazione tra Terrapack 32M e applicazioni WEB il Cruscotto informativo dei Vigili del Fuoco Il cruscotto informativo dei Vigili del Fuoco Architettura Postazione A [WINDOWS] WEB Server Browser WEB Terrapack32M RX (IIS) (Internet Explorer) ASP.NET pages Componenti .NET TCS Servizio Cartografico Postazione B [WINDOWS] Browser WEB Terrapack32M RX Database CID Database VVF (Internet Explorer) Servers Dati TK (Cart./Orogr.) LAN Integrazione tra Terrapack 32M e applicazioni WEB Dettagli • Lo sviluppo WEB su piattaforma Microsoft: la tecnologia .NET • L’implementazione come componente .NET della libreria di telecomando Terrapack • La componente cartografica come elemento riusabile in architetture differenti Integrazione tra Terrapack 32M e applicazioni WEB Lo stato attuale Internet / HTTP Browser WEB WEB Server (IIS) ASP.NET pages Presentazione dei dati ottenuti da Terrapack Fruibilità delle funzionalità Terrapack Componenti .NET Terrapack32M RX TCS Servizio Cartografico Architettura non completamente distribuita Architettura ancora non aperta a servizi esterni Integrazione tra Terrapack 32M e applicazioni WEB Sviluppi futuri: Web Services Internet / HTTP Browser WEB ASP.NET pages WEB Server (IIS) Presentazione dei dati ottenuti da Terrapack Fruibilità delle funzionalità Terrapack Web Services Terrapack32M RX TCS Map service TCS Find service TCS Processing service Integrazione tra Terrapack 32M e applicazioni WEB Sviluppi futuri: Service Oriented Architecture Sottosistema CARTOGRAFICO Sottosistema accesso DATABASE Sottosistema dati MATRICIALI Strumenti ANALISI Dati Sottosistema OROGRAFICO Sottosistema dati VETTORIALI Data Services Processing Services Applicazione client ‘leggera’ Strumenti Rappr. GRAFICA Dati Portrayal Services Presentazione dei dati