Ambiente di Invocazione Dinamica dei Servizi Enrico Mussi - WP2
Sommario Obiettivi Architettura Problemi aperti
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
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 MAIS Reflective Architecture Web Services Implementations 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
MAIS Reflective Architecture 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 toolsApplication development tools
Selezione dei servizi Come si selezionano i servizi più adatti? Il Concrete Service Invoker seleziona i servizi più adatti utilizzando altri moduli dellarchitettura 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
Architettura del Concrete Service Invoker Client SOAP Flexible WS 1Flexible WS n Service Selector Context Manager MAIS Registry Concretizator Service Invoker Wrapper Manager CSI Web Services Implementations
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
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 dellinvocazione di un servizio flessibile Trasferisce il contesto utente al Concretizator e riceve la lista ordinata dei servizi concreti Durante linvocazione trasferisce il controllo al Service Invoker Se il Service Invoker rileva malfunzionamenti nellinvocazione di un servizio, il Service Selector lo sostituisce con il servizio successivo nella lista Se durante linvocazione il contesto utente cambia richiede al Concretizator di ricalcolare la lista ordinata
Service Selector 1.Cattura linvio di un messaggio ad un flexible service 2.Se NON si tratta dellesecuzione 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 linvocazione 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
Context Manager MAIS Reflective Architecture Platform Invoker Utilizza la piattaforma riflessiva per gestire il contesto degli utenti Il modello del contesto è condiviso dal Context Manager e dal Platform Invoker
Wrapper Manager Generato in modo semiautomatico Permette di gestire i wrapper Per ogni coppia di servizi esiste un wrapper Traduce I parametri di input/output Orchestra i servizi composti generati dal MAIS Registry
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); }
Service Invoker Invoca i servizi concreti richiesti dal Service Selector Per linvocazione utilizza un wrapper ottenuto dal Wrapper Manager Monitora linvocazione del servizio e in caso di malfunzionamenti avvisa il Service Selector Context Manager Wrapper Web Services Implementations
Altri compiti del CSI Gestione degli utenti Gestione delle attività
Aspetti da definire Struttura dei wrapper Comunicazione con I moduli di orchestrazione Comunicazione con il Concretizator Comunicazione con il MAIS Registry