Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

16
Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2

Transcript of Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Page 1: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Ambiente di Invocazione Dinamica dei Servizi

Enrico Mussi - WP2

Page 2: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Sommario

Obiettivi

Architettura

Problemi aperti

Page 3: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Obiettivi

Realizzare un invoker per invocare Web services in modo dinamico e flessibile

Dato un servizio astratto, deve essere possibile sostituirlo un servizio concreto compatibile

Dato un servizio concreto, deve essere possibile sostituirlo a runtime con un servizio concreto compatibile

Page 4: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Process Orchestrator

Concrete Service Invoker

Wrapper

MAIS Service Registry

Match Maker

Behavioral Compatibility Engine

Service Onthology

Domain Onthology

Public UDDI Registry

Wrapper Repository

Private UDDI Registry

Semantic Publisher

Concretizator

MAIS Front end Environment

Platform Invoker

Negotiator

MA

IS R

efl

ec

tiv

e A

rch

ite

ctu

re

Web Services

Implementations

End User

MAIS back end e-service

environment

Transaction Manager

Recommendation Environment

User KM

User profiles

Mobile Service back end design environment

Process Evolution

Support tools

Process optimizer

Page 5: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

MA

IS R

efl

ec

tiv

e A

rch

ite

ctu

re

MAIS Front end Environment

MAIS back end e-service

environment

•Text simplification

• location awareness tools

• time management

• ….Support tools

UAI design

Interaction Fct classification

Adaptive web application design

Adaptive UI generation

User profile

s

Adaptive context aware

web application

microDB

microDB design

Low power design solutions

Deployment tools Application development tools

Page 6: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Selezione dei servizi

Come si selezionano i servizi più adatti?

Il Concrete Service Invoker seleziona i servizi più adatti utilizzando altri moduli dell’architettura

Dato un servizio astratto, i servizi concreti compatibili vengono selezionati utilizzando il MAIS Registry che valuta: • WSDL• BPEL• QOS

Dato un insieme di servizi concreti, il loro ordinamento viene fatto utilizzando il Concretizator che considera:• QOS • Informazioni di contesto

Il Concrete Service Invoker fornisce ai moduli tutte le informazioni necessarie

Page 7: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Architettura del Concrete Service Invoker

Client SOAP

Flexible WS 1 Flexible WS n

Service Selector Context Manager

MAIS Registry

Concretizator

Service Invoker Wrapper Manager

CSI

Web Services Implementations

Page 8: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Flexible Web Services

Utilizzati per rendere invocabili i servizi astratti

Vengono costruiti completando la descrizione astratta con le informazioni di binding

Il binding permette di legare un servizio astratto ad una particolare istanza di Concrete Service Invoker

Permettono di:

• Utilizzare client SOAP standard per interagire con la piattaforma MAIS

• Ripartire il carico su più Concrete Service Invoker

Page 9: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Service Selector

Seleziona i servizi concreti utilizzando il registry (NON se si esegue un processo)

Attraverso il Context Manager rileva il contesto utente al momento dell’invocazione di un servizio flessibile

Trasferisce il contesto utente al Concretizator e riceve la lista ordinata dei servizi concreti

Durante l’invocazione trasferisce il controllo al Service Invoker

Se il Service Invoker rileva malfunzionamenti nell’invocazione di un servizio, il Service Selector lo sostituisce con il servizio successivo nella lista

Se durante l’invocazione il contesto utente cambia richiede al Concretizator di ricalcolare la lista ordinata

Page 10: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Service Selector

1. Cattura l’invio di un messaggio ad un flexible service

2. Se NON si tratta dell’esecuzione di un processo, cerca i servizi concreti compatibili nel registry e li trasferisce al concretizator

3. Rileva il contesto utente attraverso il Context Manager

4. Trasferisce il contesto utente al Concretizator

5. Riceve dal Concretizator la lista ordinata dei servizi concreti

6. Delega l’invocazione del servizio al Service Invoker

7. In caso di malfunzionamenti, il Service Invoker notifica il problema e il Service Selector sostituisce il servizio con quello successivo

8. Se il contesto utente subisce modifiche il processo riparte dal punto 4

Page 11: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Context Manager

Context Manager

MAIS Reflective Architecture

Platform Invoker Platform Invoker

Utilizza la piattaforma riflessiva per gestire il contesto degli utenti

Il modello del contesto è condiviso dal Context Manager e dal Platform Invoker

Page 12: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Wrapper Manager

Generato in modo semiautomatico

Permette di gestire i wrapper

Per ogni coppia di servizi <astratto-concreto> esiste un wrapper

Traduce I parametri di input/output

Orchestra i servizi composti generati dal MAIS Registry

Page 13: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Interfaccia di un Wrapper

public interface WrapperRPC extends Wrapper {

public ArrayList getInputEncoding(String concreteOperation) throws IllegalParameterException;

public ArrayList getOutputEncoding(String concreteOperation) throws IllegalParameterException;

public ArrayList getInputOutputEncoding(String concreteOperation) throws IllegalParameterException;

public RegisterUnit getResponseEncoding(String concreteOperation) throws IllegalParameterException;

public ParameterUnit getResponseParameter(String concreteOperation) throws IllegalParameterException;

public ArrayList getConcreteInput(String concreteOperation, Collection input) throws IllegalParameterException;

public ArrayList getConcreteOutput(String concreteOperation, Collection input) throws IllegalParameterException;

public ArrayList getAbstractOutput(String concreteOperation, Object response, Collection concreteOutput) throws IllegalParameterException;

public boolean isVoid(String concreteOperation);}

Page 14: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Service Invoker

Invoca i servizi concreti richiesti dal Service Selector

Per l’invocazione utilizza un wrapper ottenuto dal Wrapper Manager

Monitora l’invocazione del servizio e in caso di malfunzionamenti avvisa il Service Selector

Context Manager

Wrapper

Web Services Implementations

Page 15: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Altri compiti del CSI

Gestione degli utenti

Gestione delle attività

Page 16: Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2.

Aspetti da definire

Struttura dei wrapper

Comunicazione con I moduli di orchestrazione

Comunicazione con il Concretizator

Comunicazione con il MAIS Registry