andrea antonio garganico 197474
DESCRIPTION
Andrea Antonio Garganico 197474 CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS a.a. 2006/2007. Middleware basato sullo scambio di messaggi caratterizzato da: Forte disaccoppiamento tra le entità in gioco. Asincronicità Persistenza - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/1.jpg)
Andrea Antonio Garganico 197474
CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS a.a. 2006/2007
![Page 2: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/2.jpg)
Middleware basato sullo scambio di messaggi caratterizzato da:
o Forte disaccoppiamento tra le entità in gioco.o Asincronicitào Persistenzao Supporto naturale alla comunicazione many-to-manyo Scalabile
Due tipologie di comunicazione:
o Publish/Subscribe: o modello many to many
o Message queueing: o modello point to point o point to many
![Page 3: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/3.jpg)
o MOM con le funzionalità di o publish/subscribe topic-based .o message queueing. o Servizio di message storing e tipizzazione dei messaggi; o Interfacce e strutture dati a supporto dello scambio di
informazioni su file multimediali, come musica e film. o Gestione automatica del salvataggio dei messaggi.o Supporto per la comunicazioe sincrona e asincrona. o Implementazione schema di comunicazione point-to-point e
point-to-many per quanto riguarda il message queueing.o Tecnica di replicazione hot stand by .o Invio e ricezione dei messaggi con semantica at-most-once e
once-and-only-once.
![Page 4: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/4.jpg)
o Sistemi pensati per operare in ambienti eterogenei.
o Servizi accessibili a qualsiasi applicazione e qualsiasi sistema operativo.
o Piattaforma Java come punto di partenza: concepita tenendo conto di questo aspetto; fornisce strumenti di comunicazione orientati alla trasparenza della locazione.
o Package RMI come meccanismo di invocazione remota trasparente alle applicazioni.
![Page 5: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/5.jpg)
o Authoring service: fornisce funzionalità di autenticazione al sistema.
o Discovery service: si occupa della gestione nomi dei servizi.
o Publish-Subscribe subsytem: implementa le funzionalità definite dal modello P/S.
o Message Queueing: implementa le funzionalità definite dal modello MQ.
o Data Manager: si occupa della gestione dei dati. Fornisce interfacce di accesso trasparenti al sistema di memorizzazione delle informazioni.
I componenti non condividono lo stesso ambiente di esecuzione:
•Distribuzione del carico computazionale.•Guasti isolati.•Sottosistemi riusabili e indipendenti. •Facile modifica del sistema.
I componenti non condividono lo stesso ambiente di esecuzione:
•Distribuzione del carico computazionale.•Guasti isolati.•Sottosistemi riusabili e indipendenti. •Facile modifica del sistema.
![Page 6: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/6.jpg)
o La tipizzazione è stata introdotta come caratteristica aggiuntiva.
o La scelta di utilizzare uno schema predefinito e proprietario, spetta al cliente dei servizi.
o L’utilizzo di formati standard, come l’XML, ormai diffusissimo, rende il sistema estendibile sotto questo punto di vista.
![Page 7: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/7.jpg)
o Per scrivere un’applicazione client si possono adottare due tecniche:
1) Implemetare iAppInterface creando un client ex-novo.
2) Estendere la classe iApplication sfruttando l’implementazione proprietaria.
o Proponendo due metodi alternativi, si dà al programmatore la possibilità di creare un’applicazione in maniera semplice e veloce.
![Page 8: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/8.jpg)
o Il package authoring fornisce un insieme di strumenti per l’accesso al sistema.
o Gestisce la comunicazione da e verso i clients.
o Si occupa degli accessi.
![Page 9: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/9.jpg)
o Il Data Manager gestisce la persistenza dei dati.
o Fornisce una soluzione basata su hashtable memorizzate localmente e accessibili secondo gli schemi e le interfacce standard del linguaggio java.
o E’ possibile implementare un meccanismo di memorizzazione dei dati diverso da quello fornito agendo in maniera localizzata e velocizzando in questo modo il processo di refactoring.
![Page 10: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/10.jpg)
iApplication
(sender)
iApplication
(sender)
Naming.Rebind(name,remObj)
sendMsg(msg)
ASConnectionManagerASConnectionManager DataManagerDataManager
checkScheme()
lookupUser(user)
remote invocation
remote invocation
data access
true
iApplication
(receiver)
iApplication
(receiver)
call backgetMsg(msg)
![Page 11: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/11.jpg)
o Altri casi d’uso come la registrazione oppure la pubblicazone di un nuovo messaggio afferente ad un topic seguono uno schema uniforme di comunicazione descritto di seguito.
o L’applicazione client crea un nuovo server as-needed.
![Page 12: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/12.jpg)
o Cluster di tipo “Attivo-Passivo” con una replicazione di tipo passivo “Hot Stand by”.
o Garantisce il servizio anche a fronte di un guasto del server primario in modo del tutto trasparente per le applicazioni client.
o “Canale di heartbeating” .o “Stato del server attivo”
memorizzato nel server in stand by.
![Page 13: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/13.jpg)
o Concentriamo innanzitutto la nostra attenzione sullo stato del server attivo; quali sono le informazioni che lo caratterizzano?
![Page 14: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/14.jpg)
InitInit
start: DataManager(master)
start: DataManager(slave)
DataManager
DataManager
init
DataManagerThread
DataManagerThread
init
alive() remote invocation
true
suspend
DataManager
DataManager
start: DataManager(master,restore)
init
remote invocation
![Page 15: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/15.jpg)
iApplication(sender)
iApplication(sender)
Naming.Rebind(name,remObj)
register( app)
ASConnectionManagerASConnectionManager DataManagerDataManager
forward request
register(app)
remote invocation
remote invocation
update source
responseresponse
access time
Viene privilegiata la consistenza piùttosto che il tempo di risposta.
![Page 16: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/16.jpg)
o Lista di utenti per il multicasto Topic da creare o cancellare,
ALL effettua la deregistrazione da tutti i topic.
o Accesso al sistema.o Invia un messaggio non
tipizzato.o Invia messagi tipizzati.o Visualizza i topic presenti sul
server.o Pubblica un nuovo messaggio.o Effettua le deregistrazione.o Crea un nuovo topic.o Iscrizione ad un topic.
![Page 17: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/17.jpg)
o Tabbed pane per messaggi tipizzati.
o Il sistema è stato realizzato con eclipse SDK v.3.2.0.
o Per effettuare il testing bisogna importare il progetto e aggiungere le librerie standard contenute in \eclipse\plugins\org.eclipse.swt.win32.win32.x86_3.2.0.v3232m.jar.
o La gestione e lo sviluppo degli oggetti remoti è supportata dal plugin rmi scaricabile all’indirizzo http://www.genady.net/.
o Una volta configurato l’ambiente non resta che lanciare le configurazioni predefinite iApplication,MasterDataManager,SDataManager, ASConnectionManager e DConnectionManager nell’ordine specificato.
![Page 18: Andrea Antonio Garganico 197474](https://reader035.vdocuments.pub/reader035/viewer/2022062305/56814f45550346895dbce771/html5/thumbnails/18.jpg)
o Limiti derivanti dalla scelta di usare RMI come strumento di interconnessione tra Client e Server. L’applicazione Client deve conoscere l’indirizzo fisico del server attivo.
o Introduzione di un DNS che permetta l’uso di nomi logici piuttosto che indirizzi fisici.
o L’altra limitazione è dovuta al fatto di essere legati alla tecnologia Java; per superarla ed aumentare così l’interoperabilità si potrebbe usare SOAP e portare tutto sul web.
o Implementazione di politiche di sicurezza. o Estensione della modalità publish-subscribe in modo
che sia possibile effettuare anche sottoscrizioni di tipo content-based.