Andrea Antonio Garganico 197474
This presentation is the property of its rightful owner.
Sponsored Links
1 / 18

Andrea Antonio Garganico 197474 PowerPoint PPT Presentation


  • 75 Views
  • Uploaded on
  • Presentation posted in: General

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

Download Presentation

Andrea Antonio Garganico 197474

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Andrea antonio garganico 197474

Andrea Antonio Garganico 197474

CdLS Ingegneria Informatica (0234) Reti di Calcolatori LS a.a. 2006/2007


Andrea antonio garganico 197474

Middleware basato sullo scambio di messaggi caratterizzato da:

  • Forte disaccoppiamento tra le entità in gioco.

  • Asincronicità

  • Persistenza

  • Supporto naturale alla comunicazione many-to-many

  • Scalabile

    Due tipologie di comunicazione:

  • Publish/Subscribe:

    • modello many to many

  • Message queueing:

    • modello point to pointo point to many


Andrea antonio garganico 197474

  • MOM con le funzionalità di

    • publish/subscribetopic-based .

    • message queueing.

    • Servizio di message storing e tipizzazione dei messaggi;

    • Interfacce e strutture dati a supporto dello scambio di informazioni su file multimediali, come musica e film.

    • Gestione automatica del salvataggio dei messaggi.

    • Supporto per la comunicazioe sincrona e asincrona.

    • Implementazione schema di comunicazione point-to-point e point-to-many per quanto riguarda il message queueing.

    • Tecnica di replicazione hot stand by .

    • Invio e ricezione dei messaggi con semantica at-most-once e once-and-only-once.


Andrea antonio garganico 197474

  • Sistemi pensati per operare in ambienti eterogenei.

  • Servizi accessibili a qualsiasi applicazione e qualsiasi sistema operativo.

  • Piattaforma Java come punto di partenza: concepita tenendo conto di questo aspetto; fornisce strumenti di comunicazione orientati alla trasparenza della locazione.

  • Package RMI come meccanismo di invocazione remota trasparente alle applicazioni.


Andrea antonio garganico 197474

  • Authoring service: fornisce funzionalità di autenticazione al sistema.

  • Discovery service: si occupa della gestione nomi dei servizi.

  • Publish-Subscribe subsytem: implementa le funzionalità definite dal modello P/S.

  • Message Queueing: implementa le funzionalità definite dal modello MQ.

  • 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.


Andrea antonio garganico 197474

  • La tipizzazione è stata introdotta come caratteristica aggiuntiva.

  • La scelta di utilizzare uno schema predefinito e proprietario, spettaal cliente dei servizi.

  • L’utilizzo di formati standard, come l’XML, ormai diffusissimo, rende il sistema estendibile sotto questo punto di vista.


Andrea antonio garganico 197474

  • 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.

  • Proponendo due metodi alternativi, si dà al programmatore la possibilità di creare un’applicazione in maniera semplice e veloce.


Andrea antonio garganico 197474

  • Il package authoring fornisce un insieme di strumenti per l’accesso al sistema.

  • Gestisce la comunicazione da e verso i clients.

  • Si occupa degli accessi.


Andrea antonio garganico 197474

  • Il Data Manager gestisce la persistenza dei dati.

  • Fornisce una soluzione basata su hashtable memorizzate localmente e accessibili secondo gli schemi e le interfacce standard del linguaggio java.

  • 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.


Andrea antonio garganico 197474

iApplication

(sender)

ASConnectionManager

DataManager

Naming.Rebind(name,remObj)

remote invocation

sendMsg(msg)

checkScheme()

remote invocation

lookupUser(user)

data access

call back

true

getMsg(msg)

iApplication

(receiver)


Andrea antonio garganico 197474

  • 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.

  • L’applicazione client crea un nuovo server as-needed.


Andrea antonio garganico 197474

  • Cluster di tipo “Attivo-Passivo” con una replicazione di tipo passivo “Hot Stand by”.

  • Garantisce il servizio anche a fronte di un guasto del server primario in modo del tutto trasparente per le applicazioni client.

  • “Canale di heartbeating” .

  • “Stato del server attivo” memorizzato nel server in stand by.


Andrea antonio garganico 197474

  • Concentriamo innanzitutto la nostra attenzione sullo stato del server attivo; quali sono le informazioni che lo caratterizzano?


Andrea antonio garganico 197474

Init

DataManager

DataManagerThread

start: DataManager(master)

init

start: DataManager(slave)

init

remote invocation

alive()

true

suspend

remote invocation

DataManager

start: DataManager(master,restore)

init


Andrea antonio garganico 197474

iApplication

(sender)

ASConnectionManager

DataManager

Naming.Rebind(name,remObj)

remote invocation

register( app)

forward request

remote invocation

register(app)

update source

access time

response

response

Viene privilegiata la consistenza piùttosto che il tempo di risposta.


Andrea antonio garganico 197474

  • Lista di utenti per il multicast

  • Topic da creare o cancellare, ALL effettua la deregistrazione da tutti i topic.

  • Accesso al sistema.

  • Invia un messaggio non tipizzato.

  • Invia messagi tipizzati.

  • Visualizza i topic presenti sul server.

  • Pubblica un nuovo messaggio.

  • Effettua le deregistrazione.

  • Crea un nuovo topic.

  • Iscrizione ad un topic.


Andrea antonio garganico 197474

  • Tabbed pane per messaggi tipizzati.

  • Il sistema è stato realizzato con eclipseSDK v.3.2.0.

  • 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.

  • La gestione e lo sviluppo degli oggetti remoti è supportata dal plugin rmi scaricabile all’indirizzo http://www.genady.net/.

  • Una volta configurato l’ambiente non resta che lanciare le configurazioni predefinite iApplication,MasterDataManager,

    SDataManager, ASConnectionManager e DConnectionManager nell’ordine specificato.


Andrea antonio garganico 197474

  • 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.

  • Introduzione di un DNS che permetta l’uso di nomi logici piuttosto che indirizzi fisici.

  • 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.

  • Implementazione di politiche di sicurezza.

  • Estensione della modalità publish-subscribe in modo che sia possibile effettuare anche sottoscrizioni di tipo content-based.


  • Login