Distributed Object Computing Ing. Massimo Mecella [email protected].

26
Distributed Object Distributed Object Computing Computing Ing. Massimo Mecella Ing. Massimo Mecella [email protected] [email protected]

Transcript of Distributed Object Computing Ing. Massimo Mecella [email protected].

Page 1: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

Distributed Object Distributed Object ComputingComputing

Ing. Massimo MecellaIng. Massimo Mecella

[email protected]@iol.it

Page 2: Distributed Object Computing Ing. Massimo Mecella mecella@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”

Page 3: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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

Page 4: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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

Page 5: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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

Page 6: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

66

Dall’OO alla DOC Dall’OO alla DOC

Gli oggetti possono risiedere in processi o macchine diverse

Page 7: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

77

Cosa manca?Cosa manca?

?

– Comunicazione

– Sicurezza

– Localizzazione

– ….

Page 8: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

88

Broker ArchitectureBroker Architecture

BROKER

ORB (Object Request Broker): elemento chiave di comunicazione per gestire l’interoperabilità tra oggetti

Page 9: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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

Page 10: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

1010

Broker principi (1)Broker principi (1)

Interfaccia

Implementazione

Page 11: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

1111

Broker principi (2)Broker principi (2)

CLIENTECLIENTE

in args

Operation()

out args + return value

Page 12: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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

Page 13: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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

Page 14: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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

Page 15: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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)

Page 16: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

1616

ORBORB

Client

Object Implementation

DynamicInvocation

ClientIDLStub

ORBInterface

ObjectAdapter

StaticSkeletons

DynamicSkeleton

Invocation

Object Request Broker

InterfaceRepository

ImplementationRepository

Page 17: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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

Page 18: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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)

Page 19: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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

Page 20: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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

Page 21: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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

Page 22: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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

Page 23: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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

Page 24: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

2424

Il modello di comunicazione Il modello di comunicazione DCOMDCOM

Page 25: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

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

Page 26: Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

2626

Ereditarietà secondo DCOM - Ereditarietà secondo DCOM - AggregazioneAggregazione

AA

BB

ComponenteEsterno

Componenteinterno

aggregato in un

Componente Esterno

InterfacceEsterne

CC