Synthèse des concepts



Documents pareils
Oracle Fusion Middleware Concepts Guide 11g Release 1 (11.1.1) Figure 1-1 Architecture Middleware

Compte Rendu d intégration d application

BPEL Orchestration de Web Services

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

SOA Open Source Intégration des services et business process dans une architecture SOA Open Source. Bruno Georges JBoss, a Division of Red Hat

Business Process Execution Language

Cedric Dumoulin (C) The Java EE 7 Tutorial

Les Architectures Orientées Services (SOA)

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

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

4. SERVICES WEB REST 46

FOSS Enterprise Integration Plattaform

Messagerie asynchrone et Services Web

Exécution de processus

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

Exécution de processus

Auto-évaluation Aperçu de l architecture Java EE

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

Configuration Interface for MEssage ROuting

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

Introduction aux «Services Web»

1-Introduction 2. 2-Installation de JBPM 3. 2-JBPM en action.7

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

Les nouvelles architectures des SI : Etat de l Art

Java pour le Web. Cours Java - F. Michel

Vulgarisation Java EE Java EE, c est quoi?

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

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

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

Urbanisme du Système d Information et EAI

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

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

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

WEB15 IBM Software for Business Process Management. un offre complète et modulaire. Alain DARMON consultant avant-vente BPM

Programmation Web Avancée Introduction aux services Web

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

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

GECKO Software. Introduction à MOBIDICK. Modular But Integrated Application Framework

1 JBoss Entreprise Middleware

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

Plan. Department of Informatics

Avant-propos 1. Avant-propos Organisation du guide À qui s'adresse ce guide?...4

ORACLE DATA INTEGRATOR ENTERPRISE EDITION - ODI EE

PRODUCTS LIST (updated 11th January 2010)

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

Architecture d'entreprise : Guide Pratique de l'architecture Logique

Le moteur de workflow JBPM

Nouvelles technologies pour l intégration : les ESB

Qu'est-ce que le BPM?

Business Process Modeling (BPM)

Refonte front-office / back-office - Architecture & Conception -

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

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

L EAI. par la pratique. François Rivard. Thomas Plantain. Groupe Eyrolles, 2003 ISBN :

Jean-Philippe VIOLET Solutions Architect

Extension SSO Java. Cette note technique décrit la configuration et la mise en œuvre du filtre de custom SSO Java.

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

Programme «Analyste Programmeur» Diplôme d état : «Développeur Informatique» Homologué au niveau III (Bac+2) (JO N 176 du 1 août 2003) (34 semaines)

Workflow et Service Oriented Architecture (SOA)

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

Introduction à Microsoft InfoPath 2010

IBM Business Process Manager

Forthcoming Database

Gérez efficacement vos flux d entreprises.

Web Application Models

Conception, architecture et urbanisation des systèmes d information

ADMINISTRATION DE ADOBE LIVECYCLE MOSAIC 9.5

ECLIPSE ET PDT (Php development tools)

Systèmes d'informations historique et mutations

1. Installation d'un serveur d'application JBoss:

Architecture Orientée Service, JSON et API REST

Valorisez vos actifs logiciels avec Rational Asset Manager. Jean-Michel Athané, Certified IT Specialist IBM Rational Software

SQL Server Installation Center et SQL Server Management Studio

Web Tier : déploiement de servlets

Environnements de Développement

La persistance des données dans les applications : DAO, JPA, Hibernate... COMPIL 2010 francois.jannin@inp-toulouse.fr 1

Quelques patterns pour la persistance des objets avec DAO DAO. Principe de base. Utilité des DTOs. Le modèle de conception DTO (Data Transfer Object)

Business & High Technology

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

Introduction à ORACLE WAREHOUSE BUILDER Cédric du Mouza

Types d applications pour la persistance. Outils de développement. Base de données préexistante? 3 modèles. Variantes avec passerelles

Urbanisation de système d'information. PLM 6 (Product Lifecycle Management) Collaboration et partage d'informations

Le 09 et 10 Décembre 09

Introduction à la plateforme J2EE

REQUEA. v PD 20 mars Mouvements d arrivée / départ de personnels Description produit

SHAREPOINT PORTAL SERVER 2013

TD/TP 1 Introduction au SDK d Android

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Exploitez la pleine puissance de l'architecture orientée services (SOA) en la combinant à la modélisation des processus d'affaires

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

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

BizTalk Server Principales fonctions

Oracle Developer Suite 10g. Guide de l installation. Vista & Seven

La gouvernance SOA Ses aspects théoriques et pratiques

Fusion : l interopérabilité chez Oracle

Serveur d'application à la juste taille

Supervision et infrastructure - Accès aux applications JAVA. Document FAQ. Page: 1 / 9 Dernière mise à jour: 15/04/12 16:14

Transcription:

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. Integrated Service Environment...5 1.2.1.2. Oracle BPEL Process Manager (including Human Workflow)...5 1.2.1.3. Oracle Enterprise Service Bus (ESB)...5 1.2.1.4. Oracle Business Rules...5 1.2.1.5. OracleAS Integration Business Activity Monitoring...6 1.2.1.6. Oracle Web Services Manager...6 1.2.1.7. OracleAS UDDI Registry...6 1.2.1.8. Oracle Application Server...6 1.3. DÉFINITION DES SOURCES DE DONNÉES ET POOLS DE CONNEXION DANS LE SERVEUR OAS6 2. 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. Comment créer des services top-down...9 2.2.4.2. [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. ORACLE ENTREPRISE SERVICE BUS...11 3.1. INTRODUCTION...11 4. PROCESSUS BPEL...11 4.1. BPEL, LA PIERRE ANGULAIRE DE SOA...11 4.2. ORACLE BPEL PROCESS MANAGER...13 4.3. UTILISATION DE ORACLE BPEL PROCESS MANAGER...14 4.4. PRATIQUE...14 4.5. ORACLE BUSINESS RULES...15 5. SOURCES...16 5.1. OUVRAGES...16 5.2. INTERNET...16 5.3. SITES DE RÉFÉRENCES...17 DRAFT VERSION 2007

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 : Page 2 sur 17 15.11.2007

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 : Page 3 sur 17 15.11.2007

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 : Page 4 sur 17 15.11.2007

1.2.1.1.Integrated Service Environment Projet BPMS Synthèse des concepts 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 : Page 5 sur 17 15.11.2007

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 : Page 6 sur 17 15.11.2007

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 JAX- RPC 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 : Page 7 sur 17 15.11.2007

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 : Page 8 sur 17 15.11.2007

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 : Page 9 sur 17 15.11.2007

3. Test du service Web Projet BPMS Synthèse des concepts 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 : Page 10 sur 17 15.11.2007

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 : Page 11 sur 17 15.11.2007

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 : Page 12 sur 17 15.11.2007

4.2. Oracle BPEL Process Manager Projet BPMS Synthèse des concepts 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 : Page 13 sur 17 15.11.2007

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 : Page 14 sur 17 15.11.2007

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 : Page 15 sur 17 15.11.2007

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] 5.2. Internet Abréviation 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. 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] [JDN-03] 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 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 : Page 16 sur 17 15.11.2007

[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 [ORA] Site Site Internet du constructeur oracle, http://www.oracle.com Auteur : Page 17 sur 17 15.11.2007