Le caratteristiche di interoperabilità del Terrapack 32M

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