Distributed Object Distributed Object ComputingComputing
Ing. Massimo MecellaIng. Massimo Mecella
[email protected]@iol.it
22
Evoluzione ArchitetturaleEvoluzione Architetturale
• Centralizzata Monolitica anni ‘60 -’70
• Reti locali di PC anni ‘80
• Reti Client Server anni ‘80 - ‘90
• Internet “The network is the computer”
33
Esigenze e Nuove EsigenzeEsigenze e Nuove Esigenze
• Le informazioni e le organizzazioni sono distribuite
• Scalabilità
• Condivisione
• Efficienza
• Sicurezza
• Integrare l’esistente
• Trovare un modello che semplifichi il concetto di
interoperabilita tra applicazioni distribuite
• Permettere il riuso a diversi livelli
44
L’approccio OOL’approccio OO
• Object Orientation is a technique for system modeling...using it we model the system as a number of objects that interact [I. Jacobson]
– SW riutilizzabileriutilizzabile:: applicazioni preesistenti (legacy) possono essere intelligentemente recuperate (incapsulate) e riutilizzate a differenti livelli di integrazione via incapsulamento e ereditarietà
– SW estendibileestendibile (incrementabile): l’aggiunta di nuovi tipi di oggetti, in molti casi, non influenza minimamente gli altri via ereditarietà e polimorfismo
55
DC + OODC + OO
– Distributed Computing (DC) già risponde alla esigenza di decentralizzare l’elaborazione
– OO offre un modello più naturale e flessibile
semplificazione del semplificazione del concetto di concetto di interoperabilità tra interoperabilità tra risorse distribuiterisorse distribuite
66
Dall’OO alla DOC Dall’OO alla DOC
Gli oggetti possono risiedere in processi o macchine diverse
77
Cosa manca?Cosa manca?
?
– Comunicazione
– Sicurezza
– Localizzazione
– ….
88
Broker ArchitectureBroker Architecture
BROKER
ORB (Object Request Broker): elemento chiave di comunicazione per gestire l’interoperabilità tra oggetti
99
Vantaggi del BrokerVantaggi del Broker
– Consente agli oggetti di fare richieste e ricevere risposte in modo trasparente in un ambiente distribuito
– Consente di localizzare gli oggetti remoti
– Gestisce la sicurezza delle comunicazioni
1010
Broker principi (1)Broker principi (1)
Interfaccia
Implementazione
1111
Broker principi (2)Broker principi (2)
CLIENTECLIENTE
in args
Operation()
out args + return value
1212
CORBACORBA
L'architettura CORBA (Common Object Request Broker Architecture) è un framework standard a livello di middleware per l'interoperabilità tra oggetti in sistemi distribuiti eterogenei– Object Request Broker
– IDL
– Framework di servizi definiti
1313
Interface Definition Interface Definition LanguageLanguage
E’ un linguaggio di definizione delle interfacce– specifica i servizi che un oggetto mette a
disposizione– è indipendente dal linguaggio di programmazione – è simile al sottoinsieme del linguaggio C++ per la
dichiarazione dei tipi– ha il concetto di interfaccia derivata che eredita
operazioni e tipi definiti nell'interfaccia base
1414
TerminologiaTerminologia
Il client è un applicazione che “usa” gli oggetti messi a disposizione dalle interfacce IDL
Un server è un programma che mette a disposizione istanze di oggetti definiti da un interfaccia IDL
1515
ArchitetturaArchitettura
Common Object Request Broker Archtecture (CORBA)
Domain Interfaces CORBAFacilities
CORBAServices
e.g. mail, printing, help, GUI
Application Interfaces
e.g. naming,transactions, security, time
Interconnessione einteroperabilità conaltri ORBs
Front-end OO a unaapplicazione/serviziopreesistente(incapsulamento)
1616
ORBORB
Client
Object Implementation
DynamicInvocation
ClientIDLStub
ORBInterface
ObjectAdapter
StaticSkeletons
DynamicSkeleton
Invocation
Object Request Broker
InterfaceRepository
ImplementationRepository
1717
COS Common Object COS Common Object ServicesServices
I servizi messi a disposizione da Corba aiutano a determinare gli oggetti che sono in rete, ne permettono la creazione, il mantenimento, l’ accesso e l’invocazione dei loro metodi
OBJECT SERVICES...Security
NamingTransactions
...il supporto necessario
1818
L’object model di CORBAL’object model di CORBA
client object implementation
request
Viene enfatizzato il ruolo di un'entità (client) in grado di richiedere servizi a un oggetto (server)
L’object implementation è l'insieme di codice e dati che effettivamente implementa, ovvero che realizza il comportamento dell'oggetto server (come specificato dalla sua interfaccia)
1919
Server CORBA in C++Server CORBA in C++
Individuo. idl
Individuo_i.ccIndividuo. hh
IDL C++ Compiler
C++ Compiler , Link
Srv_main .cc
ORBLibrary
SkeletonIndividuoS.cc
Server
2020
Client CORBA in C++ e JavaClient CORBA in C++ e JavaIndividuo. idl
Clii
_ main . javaIDL Java Compiler
Java Compiler
ORBLibrary
IDL Java class
_ st_Individuo Individuo_varStub
Java Applet
Individuo. idl
Cli _ main .ccIDL C++ Compiler
.cc
C++ Compiler , Link
ORBLibrary
IDL C++ class
Client
IndividuoC.ccStub
Individuo.hh
2121
Distribuited ComponentDistribuited ComponentObject Model (1)Object Model (1)
– Specifiche di interoperabilità a livello
binario tra componenti software
– Infrastruttura software per la creazione,
la comunicazione e la gestione di
componenti
– Sviluppato da Microsoft
2222
Distribuited ComponentDistribuited ComponentObject Model (2)Object Model (2)
– Interazione tra componenti by insiemi di funzioni denominate interfacce
Rappresentazione interfacce basata su puntatori
Vtable Vtable (Virtual function table)(Virtual function table): array di puntatori ai metodi: array di puntatori ai metodi
Per invocare un metodo si deve avere un puntatore all’interfaccia
pvtblpvtbl
– Una classe è una implementazione di un’insieme di interfacce
– Consente la location trasparency
2323
Server DCOMServer DCOM
ClassFactory
IClassFactory
ObjectInterfaccedell’oggetto
Meccanismi perl’esposizionedi class factory
Meccanismidi unloading
Implementazionidiverse
per DLL e EXE
Implementazioneindipendente
dal tipo di server
2424
Il modello di comunicazione Il modello di comunicazione DCOMDCOM
2525
OggettoEsterno
Oggetto internocontenuto in
Oggetto Esterno
InterfacceEsterne
AA
BB
CC
L’oggetto esterno utilizzal’interfaccia C dell’oggettointerno come un qualunquealtro client
C
Ereditarietà secondo DCOM - Ereditarietà secondo DCOM - ContenimentoContenimento
2626
Ereditarietà secondo DCOM - Ereditarietà secondo DCOM - AggregazioneAggregazione
AA
BB
ComponenteEsterno
Componenteinterno
aggregato in un
Componente Esterno
InterfacceEsterne
CC
Top Related