IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL



Documents pareils
BPEL Orchestration de Web Services

Business Process Execution Language

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Cours Master Recherche RI 7 Extraction et Intégration d'information du Web «Services Web»

Mineure Architectures Orientées Services SOA Exécution de processus. Mineure SOA. Exécution de processus

Approche Contract First

Composition semi-automatique de Services Web

Exécution de processus

Exécution de processus

NOVA BPM. «Première solution BPM intégr. Pierre Vignéras Bull R&D

Configuration Interface for MEssage ROuting

Youssef LYHYAOUI Ingénieur Java/J2EE, SOA, ESB, Web services 31 ans Statut : Indépendant SITUATION ACTUELLE

Introduction aux «Services Web»

Le 09 et 10 Décembre 09

Composants Logiciels. Le modèle de composant de CORBA. Plan

Architecture JEE. Objectifs attendus. Serveurs d applications JEE. Architectures JEE Normes JEE. Systèmes distribués

Objectif : Passer de l analyse métier et fonctionnelle à la définition des applications qui

Les processus métiers : concepts, modèles et systèmes

Messagerie asynchrone et Services Web

Intégration d'applications à "gros grain" Unité d'intégration : le "service" (interface + contrat)

Urbanisme du Système d Information et EAI

Synthèse des concepts

Nouvelles technologies pour l intégration : les ESB

langage spécifiant un processus sous format XML Business Process Management : gestion de processus.

GESTION DE PROCESSUS AVEC SOA ET BPM

Les Architectures Orientées Services (SOA)

Business Process Modeling (BPM)

Mineure Architectures Orientées Services SOA Business Process Modeling (BPM) Mineure SOA. Business Process Modeling (BPM)

Architecture SOA Un Système d'information agile au service des entreprises et administrations

SOA & BPM. Urbanisation d un Système d information universitaire RAPPORT DE PROJET DE FIN D ETUDES

Cette application développée en C# va récupérer un certain nombre d informations en ligne fournies par la ville de Paris :

Sommaire. Introduction La technologie ebxml EDI conventionnels versus ebxml Web Services et ebxml Acteurs de l ebxml Conclusion

PRIMAVERA P6 ENTERPRISE PROJECT PORTFOLIO MANAGEMENT WEB SERVICES

Formation Webase 5. Formation Webase 5. Ses secrets, de l architecture MVC à l application Web. Adrien Grand <jpountz@via.ecp.fr> Centrale Réseaux

Modèle de cahier des charges pour un appel d offres relatif à une solution de gestion des processus métier (BPM)

Testabilité des services Web

Apache Camel. Entreprise Integration Patterns. Raphaël Delaporte BreizhJUG

Projet Active Object

Europa. Développement JEE 5. avec Eclipse. K a r i m D j a a f a r. A v e c l a c o n t r i b u t i o n d e O l i v i e r S a l v a t o r i

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Démarches d urbanisation : réorganiser le Système d Information en structurant ses fonctions dans des blocs fonctionnels communicants.

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. A308, Université de Paris 13

Diplôme de Comptabilité et de Gestion. D é c r e t N d u 2 2 d é c e m b r e A r r ê t é d u 8 m a r s

QUELQUES ÉLÉMENTS DU DÉVELOPPEMENT LOGICIEL

La démarche SOA et l interopérabilité applicative

Programmation Web Avancée Introduction aux services Web

Appui SIE :Développement de services web ADES/SIE

Conception Exécution Interopérabilité. Déploiement. Conception du service. Définition du SLA. Suivi du service. Réception des mesures

Cycle de vie du logiciel. Unified Modeling Language UML. UML: définition. Développement Logiciel. Salima Hassas. Unified Modeling Language

Etabli le : Par : Pascal Kramer / Valentin Borin Remplace la version du :

Architectures Web Services RESTful

Les Services Web. Jean-Pierre BORG EFORT

Workflow et Service Oriented Architecture (SOA)

ACTIVITÉ DE PROGRAMMATION

Sécurité des Web Services (SOAP vs REST)

L ÉCHANGE DE DONNÉES TEMPS RÉEL

From supply chain to demand chain

24/11/2011. Cours EJB/J2EE Copyright Michel Buffa. Plan du cours. EJB : les fondamentaux. Enterprise Java Bean. Enterprise Java Bean.

Exia.Cesi Année Des bus de terrains, aux bus logiciels : Les «Entreprise Services Bus» (ESB) THESE. Écrit par :

Environnements de Développement

- Couches - Éléments - Domaines - ArchiMate et les techniques du BABOK

Guide des services Web 7.0

Analyse,, Conception des Systèmes Informatiques

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Chapitre 5 Vision Informatique Logique Architectures Applicative et Logicielle

Hassene BELGACEM. Expériences Professionnelles. JEE architect / Technical leader. Ingénieur Informatique. Cycle Préparatoire

Web Application Models

4. SERVICES WEB REST 46

basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB Olivier Augereau Formation UML

LIVRE BLANC Comprendre et savoir utiliser un ESB dans une SOA

Le moteur de workflow JBPM

Architecture Orientée Service, JSON et API REST

Christian Soutou UML 2. pour les. bases de données. Avec 20 exercices corrigés. Groupe Eyrolles, 2007, ISBN :

ORACLE DATA INTEGRATOR ENTERPRISE EDITION - ODI EE

Business Process Management 2010 : La Solution IBM Maximiser l agilité de l entreprise UNE ETUDE DE JEMM RESEARCH

Mise en œuvre des serveurs d application

Conception des systèmes répartis

PRESENTATION D ADOBE LIVECYCLE ES4

Vulgarisation Java EE Java EE, c est quoi?

THÈSE de DOCTORAT. Sémantique, interactions et langages de description des services web complexes

La gouvernance SOA Ses aspects théoriques et pratiques

Projet de Veille Technologique

D une part, elles ne peuvent faire table rase de la richesse contenue dans leur système d information.

Information utiles. webpage : Google+ : digiusto/

FORMATION TALEND. Page 1 sur 9

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

Institut Supérieur de Gestion. Cours pour 3 ème LFIG. Java Enterprise Edition Introduction Bayoudhi Chaouki

Cours en ligne Développement Java pour le web

Manuel d implémentation des Web Services Sous Axis1 et Axis2/Tomcat/linux. Par Pr Bouabid EL OUAHIDI

pythonocc: une plateforme de développement agile d applications CAO.

Rapport de veille technologique

Mobile OGSI.NET: Grid Computing on Mobile Devices

FOSS Enterprise Integration Plattaform

Modélisation des processus métiers PowerAMC 16.5

TP WEBSERVICES. 1 Pré-requis. 1.1 L environnement de développement. 1.2 Les librairies nécessaires 1.3 SOAPUI

Gestion de stock pour un magasin

AMUE : PRISME - Référentiel des données partagées. 3 décembre 2009

Compte Rendu d intégration d application

Transcription:

IFIPS 5 / Nouvelles Architectures Logicielles Projet : Bus de web services avec «moteur» BPEL Un bus de services Un bus de services (ESB) permet d assembler des web services existants, le résultat de cet assemblage étant également un web service, positionné à un niveau plus élevé car représentant un processus métier. WS-BPEL Web-Service Business Process Execution Language est un langage basé sur XML qui permet de formaliser la logique d exécution d un web service résultant du processus d intégration décrit ci-dessus. Cahier des charges Architecture et caractéristiques générales Vous devez concevoir et réaliser un bus de services dont l architecture et les caractéristiques principales sont les suivantes : cmp Component View Client * * XMLDocument SOAP «flow» Bus ESB Bus ESB::Router + getresultfor(int) : XMLDocument + invoke(businessprocess, XMLDocument, XMLDocument) : void + invokeoneway(businessprocess, XMLDocument) : int Bus ESB::Admin + add(businessprocess) : void + remove(businessprocess) : void * Bus ESB:: WSProxy 1..* * Bus ESB:: BusinessProcess Instructions BPEL WebService 1

Les différents composants présentés sur ce diagramme le sont à titre indicatif. Vous avez toute latitude pour interpréter cette présentation afin de fournir les fonctionnalités demandées. Exécution de processus métier Router comporte les points d accès au bus, accessibles via SOAP : invoke (BusinessProcess, input : XMLDocument, output : XMLDocument) permet d invoquer un processus métier o Input = document XML envoyé par le client et transmis au processus métier o Output = document XML résultat de l exécution du processus métier invokeoneway (BusinessProcess, input : XMLDocument) permet d invoquer un processus métier de façon asynchrone o Input = document XML envoyé par le client et transmis au processus métier o Retour = identifiant permettant de venir chercher le résultat plus tard par appel à getresultfor() XMLDocument getresultfor (int) permet de venir chercher le résultat d une invocation effectuée par appel à invokeoneway. L entier passé en paramètre est celui retourné par invokeoneway(). BusinessProcess est un processus métier exprimé en WS-BPEL. WSProxy est un proxy d invocation d un web service externe. XMLDocument représente un document XML au sens SOAP. Son type réel n est pas imposé. Web Service représente un web service externe. Administration Admin est un web service accessible via SOAP et permettant d ajouter ou de retirer des processus métier au Bus. Il offre au minimum les services suivants : add (BusinessProcess) remove (BusinessProcess) Types de Web Services externes supportés Le Bus devra pouvoir invoquer les web services externes, par appels synchrones. Instructions BPEL supportées Schéma WS-BPEL : http://schemas.xmlsoap.org/ws/2003/03/business-process/ Les instructions BPEL supportées seront au minimum les suivantes : <process> : définition d un processus métier <import> : permet d importer des schémas XML (xsd) et des descriptions WSDL <variables> et <variable> : pour définir des variables typées <sequences> et <sequence> : pour contenir un ensemble d instructions et : affectation de variables <switch> : tests <invoke> : invocation de web services 2

Exemple <process> <process xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:engine="http://www.eclipse.org/stp/b2j/2006/02" xmlns:print="http://www.eclipse.org/stp/b2j/2006/02/print" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns:temperature="http://www.xmethods.net/sd/temperatureservice.wsdl" xmlns:hello="http://com.lepago.hellolang" xmlns:fortune="http://fortune.webservices" xmlns:urlfetcher="http://www.atomic-x.com/atomicxmlservices/screenscraper.asmx"> <!-- toutes les autres balises --> </process> Exemples <import>, <variables>, <variable>, <variables> <variable name="truevar" type="xsd:boolean" /> <variable name="falsevar" type="xsd:boolean" /> </variables> Types parmi les types simples XMLSchema <from><literal>true</literal></from> <to variable="truevar" /> <from><literal>false</literal></from> <to variable="falsevar" /> <import importtype= "http://schemas.xmlsoap.org/wsdl/" location="../service_public_libraries/xmethods_fortuneservice.wsdl" namespace="http://fortune.webservices" /> <variables> <variable name="getfortunerequest" messagetype="fortune:getfortunerequest" /> </variables> <from><literal>wisdom</literal></from> <to variable="getfortunerequest" part="topics" /> Type correspondant à un Message défini en WSDL. pour les affectations 3

<from><literal>0</literal></from> <to variable="getfortunerequest" part="minlength" /> <from><literal>10000</literal></from> <to variable="getfortunerequest" part="maxlength" /> <from variable="croutput" part="parameters" query="//result"/> <to variable="input" part="parameters" query="/initiateloanflow/xmlloanapp/creditrating"/> <import importtype="http://schemas.xmlsoap.org/wsdl/" location="http://www.eclipse.org/.../enginehostsport.wsdl" namespace="http://www.eclipse.org/ /EngineHosts" /> <import importtype="http://www.w3.org/2001/xmlschema" location="./test_bindingwsifjava.xsd" namespace="http://www.eclipse.org/stp/b2j/2006/02" /> part= existe quand la variable est de type Message query= accepte une expression XPath Import WSDL Import XSD Exemples <invoke> <invoke name="invokecr" partnerlink="creditratingservice" porttype="crs:creditratingservice" operation="process" inputvariable="crinput" outputvariable="croutput"/> Seules les invocations synchrones seront supportées Exemples <switch> <switch> <!-- If loanoffer1 is greater (worse) than loanoffer2 --> <case condition="getvariabledata('loanoffer1','parameters','result/apr') > getvariabledata('loanoffer2','parameters','result/apr') "> <!-- Then take loanoffer2 --> <from variable="loanoffer2" part="parameters" query="result"/> 4

<to variable="selectedloanoffer" part="parameters" query="/onloanflowresult/result"/> </case> <!-- Otherwise take loanoffer1 --> <otherwise> <from variable="loanoffer1" part="parameters" query="result"/> <to variable="selectedloanoffer" part="parameters" query="/onloanflowresult/result"/> </otherwise> </switch> Travail demandé Vous devez concevoir et réaliser un Bus proposant le sous-ensemble de fonctionnalités suivant : - implémentation de l opération invoke() de la classe Router Implémentation Votre implémentation sera basée sur Java/J2EE et devra être compatible avec n importe quel conteneur WEB J2EE. Vous devrez restituer : Une application basée sur Axis et capable de fonctionner dans Tomcat 5. L ensemble du code source, des descripteurs de déploiements et des scripts de fabrication (le cas échéant). 5