Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

Post on 01-May-2015

228 views 2 download

Transcript of Distributed Object Computing Ing. Massimo Mecella mecella@iol.it.

Distributed Object Distributed Object ComputingComputing

Ing. Massimo MecellaIng. Massimo Mecella

mecella@iol.itmecella@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