Synthèse des concepts

publicité
Projet BPMS – Synthèse des concepts
Synthèse des concepts
1.
SOA.....................................................................................................................................2
1.1.
INTRODUCTION ...............................................................................................................2
1.2.
ORACLE SOA SUITE .......................................................................................................3
1.2.1. Architecture................................................................................................................4
1.2.1.1.
1.2.1.2.
1.2.1.3.
1.2.1.4.
1.2.1.5.
1.2.1.6.
1.2.1.7.
1.2.1.8.
1.3.
2.
Integrated Service Environment .......................................................................................5
Oracle BPEL Process Manager (including Human Workflow) .........................................5
Oracle Enterprise Service Bus (ESB)...............................................................................5
Oracle Business Rules .....................................................................................................5
OracleAS Integration Business Activity Monitoring ..........................................................6
Oracle Web Services Manager ........................................................................................6
OracleAS UDDI Registry ..................................................................................................6
Oracle Application Server.................................................................................................6
DÉFINITION DES SOURCES DE DONNÉES ET POOLS DE CONNEXION DANS LE SERVEUR OAS6
SERVICES WEB .................................................................................................................6
2.1.
INTRODUCTION ...............................................................................................................6
2.2.
CRÉATION DE SERVICES WEB DANS JDEVELOPER............................................................7
2.2.1. Comment les types java primitif sont sérialisé vers XML...........................................7
2.2.2. Outils JDeveloper pour développer des Web services ..............................................7
2.2.3. Développement BOTTOM-UP ...................................................................................8
2.2.3.1.
Comment créer des services bottom-up ..........................................................................8
2.2.3.2.
[Pratique] : Création d’un service Web à partir d’une classe Java...................................8
2.2.3.3.
[Pratique] : Création d’un service Web à partir d’une classe Java et en utilisant des
annotations JSR-181 ..........................................................................................................................9
2.2.3.4.
[Pratique] : Création d’un service Web à partir d’un package PL/SQL ............................9
2.2.4.
Développement TOP-DOWN.....................................................................................9
2.2.4.1.
2.2.4.2.
Comment créer des services top-down............................................................................9
[Pratique] : Création de services Web selon l’approche top-down ..................................9
2.2.5. Créer un service Web à partir d’un EJB 3.0 ............................................................10
2.2.6. Déployer un service Web depuis JDeveloper..........................................................10
2.3.
UTILISATION DE SERVICES WEB DANS JDEVELOPER.......................................................10
2.4.
DEBUGGER, TESTER ET ANALYSER DES SERVICES WEB DANS JDEVELOPER ...................11
3.
3.1.
ORACLE ENTREPRISE SERVICE BUS ..........................................................................11
INTRODUCTION .............................................................................................................11
4.1.
4.2.
4.3.
4.4.
4.5.
PROCESSUS BPEL .........................................................................................................11
BPEL, LA PIERRE ANGULAIRE DE SOA...........................................................................11
ORACLE BPEL PROCESS MANAGER..............................................................................13
UTILISATION DE ORACLE BPEL PROCESS MANAGER .....................................................14
PRATIQUE.....................................................................................................................14
ORACLE BUSINESS RULES ............................................................................................15
5.1.
5.2.
5.3.
SOURCES.........................................................................................................................16
OUVRAGES ...................................................................................................................16
INTERNET .....................................................................................................................16
SITES DE RÉFÉRENCES .................................................................................................17
4.
5.
DRAFT VERSION
Nicolas Portmann 2007
Projet BPMS – Synthèse des concepts
1. SOA
1.1. Introduction
[JDN-01] Mieux développer, et surtout mieux maintenir les fonctionnalités conçues : voici deux
objectifs de l'architecture orientée services
Cette nouvelle couche d'abstraction fait suite à d'autres abstractions créé au fur et à mesure
des besoins et des avancées technologiques : la création des fonctions et procédures, la
programmation orientée Objet, les logiciels à base de composants
L'architecture orientée services ambitionne d'aider les développeurs à gérer l'hétérogénéité des
"milieux applicatifs" : l'objectif est d'autoriser les applications ou service à communiquer et de
travail ensemble, quel que soit leur plate-forme respective.
La SOA promet donc l'interopérabilité des applications par le biais de services. Un service qui
n'est rien d'autre qu'un composant dont les interfaces et contrats d'utilisation sont connus, et qui
est indépendant de tout système. Pour ce faire, XML est utilisé dans lors des échange
d'informations, enrobé le plus souvent d'une enveloppe SOAP
Plus généralement, une architecture SOA peut être construire sans utiliser XML ni les services
Web, mais avec des formats de type CVS, ou des technologies comme Corba ou COM/DCOM,
mais XML offre certainement une plus grande ouverture.
L'architecture en elle-même se représente en faisant intervenir trois acteurs : le
consommateur, le service, et le répertoire de services. Le consommateur correspond à
l'application cliente (ou à un autre service), qui fait appel au service pour une tâche précise. Ce
consommateur trouvera les informations à propos du client au sein du répertoire de services,
où sont enregistrés et triés un grand nombre de ceux-ci. Un répertoire peut être privé, c'est-àdire interne à l'entreprise, ou public.
Le service répond à trois fonctionnalités caractéristiques : il est indépendant, il peut être
découvert et appelé de manière dynamique, et il fonctionne seul.
Le répertoire de services a un rôle primordial dans la SOA. C'est lui qui reçoit la requête du
consommateur, lui qui découvrira le service idoine, et lui qui agira en tant que proxy
(intermédiaire) entre consommateur et service. En s'assurant que les fournisseurs de services
informent régulièrement les répertoires de leurs nouveautés, le consommateur peut
constamment profiter de celles-ci sans pour autant devoir mettre à jour ses méthodes.
Ainsi, une banque pourra mettre à jour son service de calcul d'intérêt, et si celui-ci est
enregistré correctement sur un répertoire (public ou privé), l'utilisateur pourra sans rien changer
profiter des évolutions.
Le tout enfin, enfin, repose fondamentalement sur les services Web. La SOA utilise tous les
standards dédiés aux services Web (XML, HTTP, WSDL, UDDI, SOAP...) pour s'assurer de
l'interopérabilité de son fonctionnement. Ce n'est pas pour autant qu'ils sont synonymes : une
SOA n'est pas en soi une technologie, mais un principe de conception, tandis que les services
Web en sont une implémentation technologique.
Deux schémas pour clore cette introduction :
Auteur :
Nicolas Portmann
Page 2 sur 17
15.11.2007
Projet BPMS – Synthèse des concepts
Le schéma ci-dessous montre une évolution historique de sites Web statiques à des
applications connectées SOA :
Le schéma ci-dessous montre la gestion de l’hétérogénéité des applications d’une entreprise
via la programmation d’adapters maison ou l’utilisation d’EAI (en français Intégration
d'applications d'entreprise ou IAE) (before) ou alors, via l’architecture SOA (Services Web
orchestré par BPEL).
1.2. Oracle SOA Suite
(http://www.oracle.com/lang/fr/technologies/soa/index.html)
L'architecture orientée services (SOA) est conçue pour simplifier le développement de services
de gestion modulaires (les services web) faciles à intégrer et à réutiliser, créant ainsi une
infrastructure informatique véritablement flexible et adaptable.
Avantages SOA :
ƒ
Réduction des coûts de développement
Les services SOA sont aisément réutilisables et peuvent être rapidement assemblés,
tels des composants, sous la forme de nouvelles applications composites sans
nécessiter aucune programmation manuelle coûteuse
ƒ
Allégement des coûts de maintenance
Les services réutilisables diminuent le nombre et la complexité interne des services
informatiques, réduisant ainsi la charge de travail de maintenance requise pour
l'intégralité de la gamme de services.
Auteur :
Nicolas Portmann
Page 3 sur 17
15.11.2007
Projet BPMS – Synthèse des concepts
ƒ
Optimisation de la qualité des services
La technologie SOA favorise considérablement la réutilisation accrue des services,
laquelle se traduit par une amélioration de la fiabilité et de la qualité des services par le
biais de multiples cycles de test effectués par différents utilisateurs.
ƒ
Diminution des coûts d'intégration
Les services normalisés fonctionnent parfaitement les uns avec les autres, garantissant
ainsi la connexion rapide et aisée d'applications disparates.
ƒ
Minimisation des risques
Des services moins nombreux et réutilisables contribuent à améliorer le contrôle des
stratégies de gouvernance d'entreprise et des tâches informatiques et à diminuer les
risques globaux de non-conformité des opérations.
1.2.1. Architecture
Oracle SOA Suite est un set complet de composants permettant de créer, déployer et gérer des
services.
Voici ses composants :
ƒ
Un « ISE » permettant de développer nos services
ƒ
« Oracle BPEL Process Manager », le premier moteur natif BPEL (Business Process
Execution Language) conçu pour l'orchestration des services Web et permettant aux
entreprises de concevoir, définir et exécuter leurs processus métiers.
ƒ
« Oracle Enterprise Service Bus (ESB) », un produit basé sur les standards assurant la
connexion des systèmes informatiques existants et des partenaires de l'entreprise pour
constituer un ensemble de services.
ƒ
« Oracle Business Rules » pour définir et administrer les règles de gestion.
ƒ
« OracleAS Integration Business Activity Monitoring » pour une visibilité en temps réel
sur l'exécution des processus et la performance des activités métiers.
ƒ
« Oracle Web Services Manager » permettant de sécuriser nos services
(authentification, autorisations, encryptage).
ƒ
« UDDI registry », registre de service Web
ƒ
« Oracle Application Server 10g Release 3 (10.1.3) » fournissant un environnement
complet pour nos applications J2EE.
Auteur :
Nicolas Portmann
Page 4 sur 17
15.11.2007
Projet BPMS – Synthèse des concepts
1.2.1.1.Integrated Service Environment
Oracle JDeveloper est l’environnement de développement de la Suite SOA d’Oracle. Il permet
de développer, composer et orchestrer les services dans des processus métiers. Les processus
métiers peuvent être déployés, enregistrés et « consommés » par plusieurs types d’interface
utilisateur (clients lourds, browsers, mobiles, telnet).
JDeveloper permet au développeur de modéliser, créer, découvrir, assembler, orchestrer,
tester, déployer et maintenir des applications hétérogènes basées sur des services.
JDevelopper supporte les principes de l’architecture orientés services (SOA), les standards
XML services Web, les applications Java (J2EE) et les mécanismes de modularité et de
composants PL/SQL.
ADF est un framework de développement d’application.
Oracle TopLink est un outil de persistance objet/relationnel édité par Oracle, référence de
l'implémentation de JPA (Java Persistence API). Il permet de stocker des objets Java et des
EJB (Entreprise Java Been) dans des bases de données relationnelles mais aussi, en
implémentant l’API Java JAXB (Java Architecture for XML Binding) de convertir des objets java
en document XML.
Les frameworks TopLink et ADF simplifie la création de services qui peuvent être invoqué
depuis des interfaces Web d’applications orientées services.
1.2.1.2.Oracle BPEL Process Manager (including Human Workflow)
Oracle BPEL Process Manager fournit un framework permettant de modéliser et exécuter nos
processus métier basés sur les standards BPEL.
1.2.1.3.Oracle Enterprise Service Bus (ESB)
ESB permet à des applications hétérogènes d'interagir au travers de services standards
qu'elles mettent à disposition. L'ESB en tant que médiateur entre les clients et les fournisseurs
de services s’appuie sur des standards ouverts afin de se connecter, transformer et router des
documents métiers. Il permet de surveiller et de gérer les données métiers avec un minimum
d’impacte sur les applications existantes.
1.2.1.4.Oracle Business Rules
Oracle Business Rules permet de définir et administrer les règles métiers. Les règles sont
séparées du code de l’application, ainsi, l’analyste métier peut créer et modifier les règles
Auteur :
Nicolas Portmann
Page 5 sur 17
15.11.2007
Projet BPMS – Synthèse des concepts
directement, sans faire appel aux programmeurs. De plus, les règles métiers peuvent être
modifiées sans arrêter le processus métier.
1.2.1.5.OracleAS Integration Business Activity Monitoring
…
1.2.1.6.Oracle Web Services Manager
Oracle Web Services Manager est un environnement administrateur sécurisé conçu pour
sécuriser l’accès aux services Web et surveiller les activités réalisées sur les services Web
protégés.
…
1.2.1.7.OracleAS UDDI Registry
Oracle AS UDDI Registry permet à des fournisseurs de service de publier et annoncer leurs
services et à consommateurs de service de trouver, accéder, et appeler les services
correspondant à des critères définis.
Oracle AS UDDI Registry supporte les dernières spécifications d'UDDI V3, et fournit la gamme
la plus large de fonctionnalités pour un registre SOA d’aujourd'hui.
1.2.1.8.Oracle Application Server
Oracle Application Server est un serveur d’application permettant d’exécuter des sites Web, des
applications J2EE et des services Web.
1.3. Définition des sources de données et pools de
connexion dans le serveur OAS
Voir « Config.doc »
2. Services Web
Voir [ORA3-06] chapitre 5 « Building Web Services »
Définitions : Technologie permettant à des applications de dialoguer à distance via Internet
indépendamment des plates-formes et des langages sur lesquelles elles reposent.
2.1. Introduction
Les services Web sont des composants logiciels indépendant et réutilisable qui peuvent être
incorporés dans des applications. Ils sont construits sur des protocoles existant (XML et http) et
utilisent les standards suivant :
ƒ
WSDL (Web Services Description Language) : Un langage basé sur XML permettant de
décrire les services Web.
Auteur :
Nicolas Portmann
Page 6 sur 17
15.11.2007
Projet BPMS – Synthèse des concepts
ƒ
SOAP (Simple Object Access Protocol) : Un protocole basé sur XML permettant
d’accéder à des services sur le Web en utilisant une syntaxe XML pour envoyer des
commandes sur HTTP.
ƒ
UDDI (Universal Description, Discovery, and Integration) : Un catalogue universel de
services Web permettant aux logiciels de découvrir et intégrer des services sur le Web.
JDevelopper fournit beaucoup de fonctionnalités pour nous aider à créer et déployer nos
services Web. Il nous aide également à trouver des services Web existant que nous pourront
utiliser dans nos applications.
Nous allons utiliser Oracle JDeveloper pour développer nos services Web que nous déploierons
sur notre serveur d’application (Oracle Application Server).
2.2. Création de services Web dans JDeveloper
La création et le déploiement de services Web est facilité avec JDevelopper car il met à
disposition des assistants de création.
Une fois le service Web crée, nous pouvons le tester localement en le faisant tourner dans le
server OC4J incorporé dans JDeveloper. Nous pouvons également le tester sur une instance
OC4J distante (pour la he-arc, le serveur se nomme http://iasdev.ig.he-arc.ch).
2.2.1. Comment les types java primitif sont sérialisé vers XML
Les objets qui seront passé vers et de un service web devront être capables d’être sérialisé en
type XML, et, ensuite, désérialisé vers leur type original. Oracle se base sur le standard JAXRPC qui définit comment les objets sont sérialisé de Java vers XML et de XML vers Java.
2.2.2. Outils JDeveloper pour développer des Web services
Les services Web peuvent être développés selon deux approches :
ƒ
Un développement BOTTOM-UP
ƒ
Un développement TOP-DOWN
Il y a deux approches pour un développement « bottom-up » d’un service Web JAX-RPC :
ƒ
Utiliser l’un des assistants JDeveloper et pointer sur la classe d’implémentation. Dans
l’assistant, sélectionner les méthodes que l’on veut exposer. JDevelopper génère tous
les artéfacts Java nécessaires, descripteur de déploiement et fichier WSDL sans avoir à
faire d’opérations manuellement.
ƒ
Ajouter des annotations JSR-181 dans notre class Java ou EJB session beans. Le
WSDL est généré avec un certains nombre de fichiers d’aide, comme par exemple, un
fichier de mapping.
Le développement « bottom-up » est l’approche la plus simple et la plus rapide pour développer
des services Web, mais, elle peut avoir des impactes sur l’interopérabilité du service.
Le développement « top-down » commence par la création du WSDL. JDeveloper nous aide à
construire le WSDL afin de pouvoir générer tous les artéfacts Java nécessaires, les
descripteurs de déploiement et les fichiers d’implémentation Java. Généralement, l’approche
top-down est la meilleure approche pour s’assurer de l’interopérabilité du service, puisque nous
commençons par spécifier nos services en décrivant les différents formats de messages et
opérations en utilisant des standards XML.
Auteur :
Nicolas Portmann
Page 7 sur 17
15.11.2007
Projet BPMS – Synthèse des concepts
JDeveloper nous offres un certain nombre d’assistant pour nous aider à développer, et déployer
nos sevices Web. Chaque assistant créer le document WSDL et les fichiers de déploiement
nécessaire pour publier notre code en tant que service Web.
ƒ
Assistant de création de service Web Java J2EE, pour exposer des méthodes d’une
calsse Java ou pour exposer des méthodes à partir d’un EJB.
Remarque : Nous pouvons utiliser cet assistant que pour les EJB 2.0 et 2.1. Pour des
informations sur la création de service Web à partir d’un EJB 3.0, voir le chapitre relatif.
ƒ
Assistant de création de service Web JMS J2EE, pour créer des services Web qui
permettent de manipuler des messages d’une destination JMS.
(concept JMS à étudier !)
ƒ
Assistant de création de service Web PL/SQL J2EE, pour exposer des programmes
stockés dans des package PL/SQL.
ƒ
Assistant de création de service Web Java J2EE à partir d’un document WSDL existant.
Le développement d’un service Web selon l’approche top-down commence par le
WSDL, et JDeveloper utilise ce WSDL pour générer les artéfacts Java nécessaires et
les descripteurs de déploiement.
2.2.3. Développement BOTTOM-UP
2.2.3.1.Comment créer des services bottom-up
Voir [ORA3-06], chapitre 5.2.3 « How to create a Bottom-Up Services ».
L’assistant de création de service Web Java J2EE permet de créer des services Web à partir
de :
ƒ
Classes Java
ƒ
Interfaces distantes EJB 2.0 ou 2.1
ƒ
Composants métiers ADF « wrappé » en EJBs.
L’assistant de création de service Web JMS J2EE permet de publier un service Web qui expose
des destinations JMS.
L’assistant de création de service Web PL/SQL J2EE permet de publier des services Web basé
sur des programme PL/SQL stocké dans des packages PL/SQL.
2.2.3.2.[Pratique] : Création d’un service Web à partir d’une classe Java
Voir tutoriel [WS-01] : Ce tutoriel montre comment utiliser les outils « web services » offert par
JDevelopper pour créer et gérer (via Application Server Control) un service Web.
Processus réalisé dans ce tutoriel :
1. Création d’une class Java contenant deux méthodes
2. Création d’un service Web sur la classe Java
3. Explorer l’Editeur WSDL
4. Déployer et tester le service Web
5. Gérer le service Web (en utilisant « Oracle Application Server Control »)
Auteur :
Nicolas Portmann
Page 8 sur 17
15.11.2007
Projet BPMS – Synthèse des concepts
2.2.3.3.[Pratique] : Création d’un service Web à partir d’une classe Java et en utilisant
des annotations JSR-181
Le projet « RapidService » de l’application de démo SOA « Order Booking Application » montre
également la méthode bottom-up d’implémentation d’un service Web.
Voir [ORA2-06] chapitre 6.
Le développement de ce projet, montre également l’utilisation d’annotations JSR-181(Java
Specification Request - Web Services Metadata for the Java Platform). JSR-181 spécifie un
mécanisme d’annotation dans les sources Java afin de décrire les directives nécessaire pour la
publication des Web sevices, par exemple, pour définir dans la classe Java les méthodes qui
sont à publier dans le endpoint Interface ou encore le style d’encodage retenu… Pour
information, la JSR-181 s’appuie sur la JSR-175 (Metadata) qui décrit de manière plus générale
les méchanismes de gestion de métadonnées. En résumer, la JSR-181 fixe un modèle
d'annotations pour la construction de services Web développés en Java. Ces annotations
(métadonnées) seront utilisées par les outils de générations WSDL.
Dans le projet « RapidService », les annotations JSR-181 sont utilisées pour spécifier le service
web (@WebService) et les méthodes du service web (@WebMethod). Pour pouvoir compiler et
déployer le projet « RapidService », il faut ajouter la librairie « JSR-181 Web Services » au
projet (voir chapitre 6.3).
Voir également le chapitre 5.2.4 « Web Services metadata, JSR-181 » de [ORA3-06].
2.2.3.4.[Pratique] : Création d’un service Web à partir d’un package PL/SQL
Voir tutoriel [WS-03] : Ce tutoriel montre comment créer et déployer un service Web basé sur
un package PL/SQL existant. Le service Web résultant est déployé dans OC4J et testé.
Processus réalisé dans ce tutoriel :
1. Connexion à la base de données
2. Installation du package PL/SQL dans la base de données
3. Création d’une nouvelle application pour le service Web
4. Publication du package PL/SQL en tant que service Web
5. Déploiement et test du service Web
2.2.4. Développement TOP-DOWN
2.2.4.1.Comment créer des services top-down
Voir [ORA3-06], chapitre 5.2.3 « How to create a Top-Down Web Service » :
Un service top-down est développé depuis un fichier WSDL qui fournit le contrat du service.
2.2.4.2.[Pratique] : Création de services Web selon l’approche top-down
Voir tutoriel [WS-02] : Ce tutoriel montre la méthode de développement top-down d’un service
Web. Cela veut dire que nous commençons par créer le WSDL et générons ensuite toutes les
classes et artéfacts en utilisant la définition des types et opérations décris dans le WSDL.
Processus réalisé dans ce tutoriel :
1. Création du document (contrat) WSDL
2. Génération du service Web à partir du WSDL
Auteur :
Nicolas Portmann
Page 9 sur 17
15.11.2007
Projet BPMS – Synthèse des concepts
3. Test du service Web
Cette méthode est plus compliquée à réalisée que la méthode bottom-up dans laquelle on part
d’un system existant que l’on « wrap » en Service Web.
Remarque :
Le projet « CreditService » de l’application de démo SOA « Order Booking Application » montre
également la méthode top-down d’implémentation d’un service Web.
Voir [ORA2-06] chapitre 5.
2.2.5. Créer un service Web à partir d’un EJB 3.0
Voir [ORA3-06], chapitre 5.2.5 « How to Create a Web Service from EJB 3.0 ».
Voir [ORA2-06] chapitre 1.6 et chapitre 3 : Le projet « CustomerService » de l’application de
démo SOA « Order Booking Application » utilise EJB 3.0 et les annotations JSR-181 afin de
pouvoir déployer un service Web.
Processus réalisé dans le chapitre 3 :
1. Création d’un nouveau projet
2. Création des « Entity Beans » depuis les tables de la base de données (ADDRESS et
CUSTOMER)
3. Edition du fichier de persistance (persistance.xml)
4. Création d’un « Session Beans »
5. Définition de requête supplémentaire dans le fichier Customer.java
6. Utiliser une séquence pour générer l’id de l’adress dans Address.java
7. Editer le « Session facade » du « Session bean » (CustomerServiceBean.java)
8. Ajouter et modifier des méthodes dans le « session beans »
(CustomerServiceBean.java)
9. Ajouter des annotations JSR-181 dans CustomerService.java (Web Service Endpoint
Interface)
10. Créer le fichier de profile de déploiement EJB JAR pour le projet « CustomerService »
11. Déployer CustomerService
12. Voir le WSDL pour CustomerService.
2.2.6. Déployer un service Web depuis JDeveloper
Les assistants génèrent une archive Web (WAR) profile de déploiement nommé
WebServices.deploy qui permet de déployer le service via le menu contextuel du conteneur du
service Web.
2.3. Utilisation de services Web dans JDeveloper
[ORA2-06] Voir chapitre 5.3 « Using Web Services in JDeveloper ».
JDeveloper facilite l’utilisation de service Web dans notre application. Nous créons un proxy
vers le service en utilisant l’assistant de création de service Web proxy, et en appelant les
méthodes dans les classes clientes de l’application.
Auteur :
Nicolas Portmann
Page 10 sur 17
15.11.2007
Projet BPMS – Synthèse des concepts
Dans le tutoriel [WS-01] on créer un service Web proxy qui nous permet de lancer le service
Web « GetDateWS » depuis JDeveloper.
2.4. Debugger, tester et analyser des services Web dans
JDeveloper
[ORA2-06] Voir chapitre 5.4 « Debugging, Testing and Analysing Web Services in
JDeveloper ».
Nous pouvons tester et analyser nos services Web selon plusieurs manières :
ƒ
Tester et déployer un service Web en utilisant Oracle Entreprise Manager.
ƒ
Tester un service en utilisant un proxy généré.
ƒ
Réaliser un essai plus détaillé en utilisant l’analyseur de requête HTTP (permet de voir
le contenu des messages SOAP passé lorsqu’un proxy se connecte à un service Web et
que ce service retourne une réponse).
Remarque : A la fin du tutoriel [WS-01], on utilise l’analyseur de requête HTTP.
ƒ
Construire une interface utilisateur (UI) et retester le tout !
3. Oracle Entreprise Service Bus
Voir [ORA2-06], chapitre 6 « Using Oracle Entreprise Service Bus ».
3.1. Introduction
Oracle Entreprise Service Bus permet de transporter des données entre multiple « endpoints »,
que se soit à l’interne de l’entreprise ou à l’externe. Il utilise des standards ouvert (p.ex. :
Extensible Markup Language (XML) messages) pour connecter, transformer et router des
documents métier entre différentes applications. Il permet de suivre et gérer des données
métier avec un minimum d’impactes sur les applications existantes. L’« Entreprise Service
Bus » est l’infrastructure fondamentale pour réaliser une architecture orientée service (SOA).
4. Processus BPEL
4.1. BPEL, la pierre angulaire de SOA
[JDN-03] Alors que chaque service, pris indépendamment, ne constitue qu'une interface propre
à un composant, une couche supplémentaire de standards était nécessaire pour assurer gérer
les liens entre plusieurs de ces services, au sein d'une couche applicative. BPEL a donc été
conçu pour intégrer un grand nombre d'applications, publiées sous forme de service dans un
but métier particulier, sans dépendance de plate-forme ou de langage, le tout de manière
automatique.
Auteur :
Nicolas Portmann
Page 11 sur 17
15.11.2007
Projet BPMS – Synthèse des concepts
BPEL consiste en un langage XML dessiné pour définir et gérer les orchestrations de
processus. Dans ce contexte, une orchestration est une collaboration entre deux ou plusieurs
services, mise en place et/ou gérée (orchestré) par un tiers - en l'occurrence, BPEL. Ce dernier
prend en charge la séquence complète d'invocations des divers services, ou "collaborateurs".
Un processus BPEL dispose donc d'une logique d'invocation, celle-ci pouvant être synchrone
ou asynchrone. BPEL fait fortement usage des autres langages liés aux services Web, à
commencer par WSDL, SOAP et UDDI. Chaque processus BPEL dispose par ailleurs de sa
propre définition WSDL : un processus BPEL est donc un service Web à part entière.
BPEL apporte donc une couche d'abstraction de la logique d'orchestration pour chaque service
Web impliqué. Cette couche supplémentaire a bien entendu un coût le rendant surtout
intéressant pour les orchestrations complexes.
La réalisation d’application SOA s’effectue en deux étapes. Premièrement, la publication de nos
services et, deuxièmement, l’orchestration de ces derniers dans un processus métier. Publier
un service signifie de prendre une fonction d’un système ou application existante et de le rendre
disponible sous une forme standard tandis que l’orchestration permet de composer nos
services dans un processus métier de bout en bout.
Les normes des services Web, comprenant WSDL, XML et SOAP, ont émergé en tant que
plateforme efficace et fortement interopérable pour la publication de services.
BPEL (Business Process Execution Language) a émergé en tant que norme indiscutable pour
l’orchestration de services. BPEL tire bénéfice de plus de 15 ans de recherche réalisé sur ses
prédécesseurs (XLANG et WSFL).
Auteur :
Nicolas Portmann
Page 12 sur 17
15.11.2007
Projet BPMS – Synthèse des concepts
4.2. Oracle BPEL Process Manager
Oracle BPEL Process Manager fournit un framework permettant de modéliser et exécuter nos
processus métier basés sur les standards BPEL. Oracle BPEL Process Manager comprend les
composant montrés dans la figure ci-dessous :
[BPEL1-06] Oracle BPEL Process Manager is loaded into Oracle JDeveloper. This extends the
functionality of Oracle JDeveloper to enable you to model, edit, and design business processes
using BPEL. Oracle JDeveloper provides a graphical and user-friendly way to build BPEL
processes. What is unique about Oracle JDeveloper is that it uses BPEL as its native format.
This means that processes built with Oracle JDeveloper are 100% portable. Oracle JDeveloper
also enables you to view and modify the BPEL source without decreasing the usefulness of the
tool. The core BPEL engine provides the most mature, scalable, and robust implementation of a
BPEL server available today. Oracle BPEL Process Manager executes standard BPEL
processes. Oracle BPEL Process Manager also provides a dehydration capability that enables
the states of long-running flows to be automatically maintained in a database, thus enabling
clustering for both fail over and scalability. Oracle BPEL Server uses an underlying J2EE
application server, with support for most major commercial application servers and a bundled
version available.The built-in integration services enable you to use advanced connectivity and
transformation capabilities of standard BPEL processes. These capabilities include support for
XSLT and XQuery transformation, and bindings to hundreds of legacy systems through Java
connector architecture (JCA) adapters and native protocols. A human task service is provided
as a built-in BPEL service to enable the integration of people and manual tasks into BPEL
flows.The extensible WSDL binding framework enables connectivity to protocols and message
formats other than SOAP. Bindings are available for JMS, e-mail, JCA, HTTP GET, HTTP
POST, and many other protocols enabling simple connectivity to hundreds of back-end
systems.
Auteur :
Nicolas Portmann
Page 13 sur 17
15.11.2007
Projet BPMS – Synthèse des concepts
Oracle Enterprise Manager 10g BPEL Control provides a mature Web-based interface for
management, administration, and debugging of processes deployed to Oracle BPEL Server.
Audit trails and process history and reporting information are automatically maintained and
available through both Oracle Enterprise Manager 10g BPEL Control and a Java API.
4.3. Utilisation de Oracle BPEL Process Manager
Lire chapitre 7 de [ORA3-06] « Using Oracle BPEL Process Manager ».
4.4. Pratique
Le projet « SelectManufacturer » de l’application de démo SOA « Order Booking Application »
montre un processus BPEL asynchrone simple avec réception et appel d’activités.
Voir [ORA2-06] chapitre 7.
Le projet « SOAOrderBooking » de l’application de démo SOA « Order Booking Application »
montre comment utiliser BPEL pour l’orchestration des flux de données. Invoque les services
fournit par les autres sous-projets.
Voir [ORA2-06] chapitre 8.
…
--Voir [BPEL1-04]
ƒ
Intro à BPEL.
--Voir [BPEL1-06]
BPEL est à la gestion des processus métier ce qu’est SQL à la gestion des données.
Chapitre 2 : Credit Flow Tutorial :
Ce processus est un flux dans lequel nous créons un appel au service « Credit Rating » qui est
un service BPEL existant.
Le projet contient :
ƒ
Le processus BPEL source (nomduprojet.bpel)
ƒ
Le WSDL d’interface client (nomduprojet.wsdl) qui représente l’interface utilisateur avec
laquelle interagit le processus BPEL.
Si on visionne le fichier WSDL, on peut voir qu’il contient deux types de port, chacun
avec une opération. Une opération initie le processus asynchrone et l’autre rappel le
client avec une réponse asynchrone. Il contient également un « partnerLink » qui, pour
ce processus asynchrone, contient deux rôles. Un rôle pour le fournisseur de service et
l’autre pour le demandeur.
Si on visionne le fichier bpel, on voit que le PartnerLink créée pour l’interface cliente
inclus deux rôles « myRole » et « partnerRole ». Un processus BPEL asynchrone à
typiquement deux rôles pour l’interface cliente : un pour le flux lui-même, avec une
opération d’entrée et, l’autre, pour le client qui sera rappelé de manière asynchrone.
ƒ
La description de déploiement du processus BPEL (bpel.xml)
ƒ
Le fichier XSD qui définit les types des messages du fichier WSDL.
Auteur :
Nicolas Portmann
Page 14 sur 17
15.11.2007
Projet BPMS – Synthèse des concepts
En ce qui concerne l’appel au service synchrone « Credit Rating », il faut créer et configurer un
partner Link :
ƒ
Création d’Partner Link pour le service « Credit Rating ». Un Partner links définit un
service externe avec lequel notre processus BPEL interagit.
ƒ
Création d’un « Scope Activity ». Un « Scope Activity » est un ensemble d’activité qui a
leurs propres variables local, traitement d’erreur, etc. Dans notre exemple, ce scope
contiendra les trois activités ci-dessous.
ƒ
Création d’une activité d’invocation (invoke activity) qui permet de spécifier l’opération
du service que l’on aimerait invoquer.
ƒ
Création d’une activité d’assignation initiale intitulé « assignSSN ». Permet de copier le
numéro SSN (variable d’entrée de l’interface cliente) dans la variable SSN qui est
utilisée en entrée pour le service BPEL « CreditRatingService.
ƒ
Création d’une deuxième activité d’assignation intitulé « AssignCreditRating ». Permet
de copier la variable résultat (réponse) du servie CRS dans la variable de sortie de
l’interface cliente.
Chapitre 3 : Reviewing a Loan Procurement BPEL Process:
ƒ
…
4.5. Oracle Business Rules
Dans le projet « SOAOrderBooking » de l’application de démo SOA « Order Booking
Application », on utilise un service de décision dans le processus BPEL. Ce dernier va « taper »
dans le référentiel Oracle Business Rules qui contient les règles métiers. Dans notre exemple,
une règle permet de déterminer si une commande nécessite une approbation manuelle par un
manager ou non. Le référentiel Oracle Business Rules est séparé de l’application
« SOAOrderBooking », ce qui nous permet d’éditer nos règles sans devoir modifier et
redéployer l’application !
Dans cet exemple pratique, les règles que l’on créer dans le référentiel sont :
ƒ
Si un client à un statut « platinum », alors une approbation par le manager n’est pas
requise.
ƒ
Si le montant total d’une commande est de 1000$ ou plus ET que le statut du client n’est
pas « platinum », alors une approbation par le manager est requise.
ƒ
Si le montant total d’une commande est de moins de 1000$, alors une approbation par
le manager n’est pas requise.
[Pratique] : [ORA2-06] chapitre 8.10.
Référentiel -> dictionnaire -> jeu de règle (ruleset) -> règle
Auteur :
Nicolas Portmann
Page 15 sur 17
15.11.2007
Projet BPMS – Synthèse des concepts
5. Sources
5.1. Ouvrages
Abréviation
NOM et prénom de l’auteur, titre de l’ouvrage, nom de l’éditeur, lieu d’édition,
année d’édition, nombre total de pages de l’ouvrage.
[ORA1-06]
STEINER Deborah, Oracle SOA Suite Quick Start Guide – 10g (10.1.3.1.0),
Oracle, -,
http://download-uk.oracle.com/docs/cd/B31017_01/core.1013/b28938.pdf,
Septembre 2006, 94 pages.
[ORA2-06]
Oracle, Oracle SOA Suite Tutorial – Release 3 (10.1.3.1.0), Oracle, -,
http://download-uk.oracle.com/docs/cd/B31017_01/core.1013/b28937.pdf,
Septembre 2006, 370 pages.
[ORA3-06]
Oracle, Oracle SOA Suite Developer’s Guide – 10g (10.1.3.1.0), Oracle, -,
http://download-uk.oracle.com/docs/cd/B31017_01/core.1013/b28764.pdf,
Septembre 2006, 450 pages
[BPEL1-04]
Oracle Corp., BPEL 101 Tutorial,
http://www.oracle.com/technology/products/ias/bpel/pdf/orabpel-BPEL101.pdf,
Oracle, 2004, 20 pages.
[BPEL1-06]
Mark Kennedy, Oracle BPEL Process Quick Start Guide – 10g (10.1.3.1.0),
Oracle, -, http://downloaduk.oracle.com/docs/cd/B31017_01/integrate.1013/b28983.pdf, Septembre 2006,
60 pages.
[BPEL1-07]
Deanna Bradshaw and Mark Kennedy, Oracle BPEL Process Manager
Developer’s Guide – 10g (10.1.3.1.0), Oracle, -, http://downloaduk.oracle.com/docs/cd/B31017_01/integrate.1013/b28981.pdf, Janvier 2007,
788 pages.
5.2. Internet
Abréviation
NOM et prénom, titre, adresse internet, date de publication, date de
consultation.
[JDN-01]
Le Journal du Net, « Expliquez-moi... L'architecture orientée service »,
http://developpeur.journaldunet.com/tutoriel/theo/051013-explication-soa.shtml,
13 octobre 2005, mars 2007
[JDN-02]
Le Journal du Net, « Expliquez-moi... La structure d'un message SOAP»,
http://developpeur.journaldunet.com/tutoriel/xml/050707-xml-soap-messagestructure.shtml, 7 juillet 2005, mars 2007
[JDN-03]
Le Journal du Net, « Expliquez-moi... Les orchestrations BPEL»,
http://developpeur.journaldunet.com/tutoriel/xml/060518-xml-orchestrationbpel.shtml, 18 juin 2006, 27 mars 2007
Auteur :
Nicolas Portmann
Page 16 sur 17
15.11.2007
Projet BPMS – Synthèse des concepts
[MP-01]
Mahieu Philippe, « SOA - D'une architecture monolithique à une architecture
orientée services »,
http://www.oracle.com/global/de/feedback/2006/technology_session/ORACLE_
SOA_Platform_Mahieu.pdf, 31 août 2006, Mars 2007
[FO-01]
Fabienne Ousteau, « SOA Project Method Overview »,
http://www.oracle.com/global/de/feedback/2006/technology_session/ORACLE_
SOA_Project_Method_Ousteau.pdf, Mars 2007
[WS-01]
Oracle, « Developing, Deploying and Managing Web Services Using
JDeveloper and Oracle Application Server »,
http://www.oracle.com/technology/obe/obe1013jdev/10131/devdepandmanaging
ws/devdepandmanagingws.htm, -, Mars 2007.
[WS-02]
Oracle, « Developing Contract-Driven Web Services Using JDeveloper »,
http://www.oracle.com/technology/obe/obe1013jdev/10131/10131_wstopdown/w
stopdown.htm, -, Mars 2007.
[WS-03]
Oracle, « Developing a Web Service from a PL/SQL Package »,
http://www.oracle.com/technology/obe/obe1013jdev/10131/wsfromplsqlpackage/
devwsfrom%20plsql.htm, -, Mars 2007.
Oracle, Getting Started with EJB 3.0
http://www.oracle.com/technology/tech/java/ejb30.html
[EJB-01]
Lynn Munsinger, « Introduction to Enterprise JavaBeans 3.0 »,
http://www.oracle.com/technology/tech/java/newto/introejb.htm, -, 13 mars 2007
5.3. Sites de références
Abréviation
Site
[ORA]
Site Internet du constructeur oracle, http://www.oracle.com
Auteur :
Nicolas Portmann
Page 17 sur 17
15.11.2007
Téléchargement
Study collections