SOA - Architecture Orientée Service : DémystificationKhaled Ben Driss
• A quels besoins répond le SOA ?
• Quels sont les principes de base du SOA ?
• Quels sont les éléments clé d’une architecture
SOA - Architecture Orientée Service :
Démystification
• A quels besoins répond le SOA ?
• Quels sont les principes de base du SOA ?
• Quel est le cycle de vie d’un service ?
• Quelles méthodologies permettent de mettre en
Plan
Khaled.bendriss@oxia-group.com
L'environnement client/serveur désigne un mode de communication organisé par l'intermédiaire d'un réseau et d'un interface Web entre plusieurs ordinateurs.
Les machines clientes contactent un serveur qui leur fournit des services. Ces derniers sont exploités par des programmes, appelés programmes clients, s'exécutant sur les machines clientes.
Cette présentation donne une idée bien détaillée sur les web services. Elle présente aussi les types de web services(SOAP, REST), et enfin comment les développer dans le langage de programmation java.
Aujourd’hui, les tests sont devenu un élément crucial au cycle de développement logiciel, des sociétés ont investi dans la création d’un service interne de tests, rien ne peut être mis en production sans être validé par ce service.
Pour cela, cette présentation va mettre en évidence les fondamentaux de test logiciel à savoir: définitions, types, processus, méthodes, outils, principes, stratégies, jeux de test, etc.
Business Process Execution Language (ou BPEL, prononcé « bipeul », ou « bipèl »), est un langage de programmation destiné à l'exécution des procédures d'entreprise. Le BPEL est issu des langages WSFL (Web Services Flow Language) et XLANG, et est dérivé du XML.
SOA - Architecture Orientée Service : DémystificationKhaled Ben Driss
• A quels besoins répond le SOA ?
• Quels sont les principes de base du SOA ?
• Quels sont les éléments clé d’une architecture
SOA - Architecture Orientée Service :
Démystification
• A quels besoins répond le SOA ?
• Quels sont les principes de base du SOA ?
• Quel est le cycle de vie d’un service ?
• Quelles méthodologies permettent de mettre en
Plan
Khaled.bendriss@oxia-group.com
L'environnement client/serveur désigne un mode de communication organisé par l'intermédiaire d'un réseau et d'un interface Web entre plusieurs ordinateurs.
Les machines clientes contactent un serveur qui leur fournit des services. Ces derniers sont exploités par des programmes, appelés programmes clients, s'exécutant sur les machines clientes.
Cette présentation donne une idée bien détaillée sur les web services. Elle présente aussi les types de web services(SOAP, REST), et enfin comment les développer dans le langage de programmation java.
Aujourd’hui, les tests sont devenu un élément crucial au cycle de développement logiciel, des sociétés ont investi dans la création d’un service interne de tests, rien ne peut être mis en production sans être validé par ce service.
Pour cela, cette présentation va mettre en évidence les fondamentaux de test logiciel à savoir: définitions, types, processus, méthodes, outils, principes, stratégies, jeux de test, etc.
Business Process Execution Language (ou BPEL, prononcé « bipeul », ou « bipèl »), est un langage de programmation destiné à l'exécution des procédures d'entreprise. Le BPEL est issu des langages WSFL (Web Services Flow Language) et XLANG, et est dérivé du XML.
Real Time Analytics: Algorithms and SystemsArun Kejariwal
In this tutorial, an in-depth overview of streaming analytics -- applications, algorithms and platforms -- landscape is presented. We walk through how the field has evolved over the last decade and then discuss the current challenges -- the impact of the other three Vs, viz., Volume, Variety and Veracity, on Big Data streaming analytics.
This session is recommended for anyone interested in understanding how to use AWS big data services to develop real-time analytics applications. In this session, you will get an overview of a number of Amazon's big data and analytics services that enable you to build highly scaleable cloud applications that immediately and continuously analyze large sets of distributed data. We'll explain how services like Amazon Kinesis, EMR and Redshift can be used for data ingestion, processing and storage to enable real-time insights and analysis into customer, operational and machine generated data and log files. We'll explore system requirements, design considerations, and walk through a specific customer use case to illustrate the power of real-time insights on their business.
This document discusses real-time big data applications and provides a reference architecture for search, discovery, and analytics. It describes combining analytical and operational workloads using a unified data model and operational database. Examples are given of organizations using this approach for real-time search, analytics and continuous adaptation of large and diverse datasets.
Présentation générale d'une architecture orientée service :
- Définition des différents acteurs
- Notion de service
- Définition d'une plateforme SOA
- Implémentation WCF
Master's defence presentation : Architecture Basée Agents Pour la Prise en Ch...hamdane mohamed elkamel
Exposé de soutenance magistère "Architecture Basée Agents Pour la Prise en Charge de l’Adaptabilité Dans un Système de Workflow ". Mr Mohamed Elkamel HAMDANE
Asp.net Présentation de L'application "Organizer"Nazih Heni
Dans le but d’apprendre le Framework ASP.NET MVC 2.0 j'ai réaliser une petite application sur « Visual Studio » d'un bout à l'autre, ce qui donne l'occasion d'illustrer différents concepts à la base d’ASP.NET MVC 2.0.
L’application que j'ai réaliser s’appellera «Organisez». Il s’agit d’un site web pour faciliter la recherche et l’organisation d’un événement.
------------------------------------
lien du Blog : http://nazihhenie.wordpress.com/
Dodi_Mbuta_La création d'un web service : « Note Reminder » _ Dodi MbutaDaniella Mbuta
Les web services sont définis dans la littérature TI comme étant des cadres d’architecture (Architecture Framework) pour la conversation entre deux ordinateurs, l’un client et l’autre serveur, communiquant ou partageant des informations sur le web et parlant dans un vocabulaire commun avec un fort ensemble de protocoles. Pour Printz Jacques (2012), ils sont plutôt à présenter comme étant des technologies C/S améliorées qui permet aux différentes applications informatiques actuelles de pouvoir communiquer entre elles, et cela, même si elles sont implémentées sur des différentes plates-formes ou avec des langages de programmation différents.
Actuellement, trois types de web services sont implémentes au sein des organisations ou entreprises, à savoir le SOAP, le REST/RESTful et l’OData. Ils sont bâtis sur des cadres d’architecture orientés services (SOA : Service-Oriented Architecture) et/ou à partir des processus ou services métier bien définis. Décrits généralement sous le format cryptographique XML, les trois types de web services cités peuvent posséder plusieurs fonctions, ressources ou services, consommables par des applications informatiques clientes natives, web et/ou hybrides, et peuvent également gérer la sécurité́, la fiabilité́ et la gestion de
tous les échanges ou partages d’informations entre les ordinateurs dans un réseau de communication.
Dans le cadre du module de cours - Ingénierie des systèmes à base de services -, suivi à l’UPJV, nous allons donc tenter de créer un web service RESTful, de nom de « W-S Note Reminder », sous l’IDE Netbeans, et cela, avec l’aide du langage JAVA EE et du web API JAX-RS. Ce dernier sera une architecture logicielle client-serveur qui devrait être capable d’offrir des fonctions, ressources ou services CRUD (Create, Read, Update and Delete) et celles d’authentification des utilisateurs.
En complément, une application cliente devrait être développée pour consommer les différentes fonctions, ressources ou services CRUD à implémenter sur ledit web service à créer. Notre choix est porté sur ce type des web services car il est considéré́ comme le plus populaire et utilise le protocole mythique de transfert hypertexte, le HTTP, dans toute son intégralité, notamment avec l’usage des URL significatives ou opaques et des méthodes tels que le GET, le HEAD, le POST et le DELETE. La modélisation pour l’ensemble de notre produit-logiciel à créer et/ou à développer sera réalisée en UML et JAVA JAVA EE.
L'expérience sur la plateforme Windows Azure permet de dégager des patterns pour résoudre des problèmes tels que la communication inter rôles, la résistance aux échecs de connexion, et bien d'autres encore. Venez les découvrir dans cette session ou certains patterns seront illustrés par des démonstrations.
QCM Système d'information, Base de données, design pattern MERISE et UML MOA MOE gestion de projet QCM CMMI GED ITIL Intranet Extranet Internet pattern GRASP maintenance ERP système informatique SSO norme ISO CMMI
1. Autres Annales et QCM sur : http://quizmyself.blogspot.com/
2. Autres Annales et QCM sur : http://quizmyself.blogspot.com/
3. Autres Annales et QCM sur : http://quizmyself.blogspot.com/
4. Autres Annales et QCM sur : http://quizmyself.blogspot.com/
Bruno Le Fellic (CTO SpikeeLabs) présente l'outil Anypoint DesignCenter de MuleSoft qui permet :
- de spécifier des APIs interactivement
- de tester en ligne avec la génération automatique de mock
- d'exporter un Swagger ou RAML pour l'intégrer à son projet
La vidéo du meetup et de la démo sont disponible sur cette URL : https://bit.ly/3BYWwr7
Similaire à eServices-Chp3: Composition de Services (20)
- Graph databases like Neo4j use a graph structure with nodes and relationships to represent data. Nodes can represent entities and relationships can represent connections between nodes.
- The example database models movies, people, and their relationships. Movies and people are represented as nodes with labels. Relationships like "ACTED_IN" connect actors to movies they appeared in.
- Cypher is the query language used to interact with Neo4j. Queries can read and modify data, traverse paths in the graph, and use filters to find specific nodes/relationships.
This document provides an overview of using MongoDB with examples of common operations like inserting documents, querying, updating, and indexing. It demonstrates how to:
- Set up and connect to a MongoDB database using Docker
- Insert, find, update, and remove documents from a collection
- Query documents using equality, greater/less than, AND/OR operators
- Sort and limit output with projections
- Create indexes on fields for improved performance
This document provides instructions for using Cassandra with Docker and examples of Cassandra queries for creating and interacting with keyspaces, tables, rows, columns and different data types including sets, lists, and maps. It demonstrates how to create and query tables with a single primary key or composite primary keys, add and modify columns, insert, update, select and delete data. The document concludes with an activity to design and implement an enrollment example using Cassandra.
4. Problématique
SOA :
Division d’un grand problème en parties plus petites, donc plus gérables
Comment assembler ces petits services ensemble pour créer des services plus
grands?
Exemple de Scénario :
1. Inscription d’un étudiant à une école
Inscription : nom, adresse…
Paiement des frais d’inscription (services d’une banque)
Attribution d’un numéro d’étudiant
2. Chercher un logement dans un foyer d’étudiants (CROUS)
Inscription à partir du numéro d’étudiant
Choisir le type de logement
Paiement des frais d’hébergement
Attribution d’un numéro au foyer
3. S’abonner au transport
Sélectionner la ligne entre l’école et le logement
Choix de la réduction proposée (num d’étudiant)
Inscription et Paiement
4
Composition de Services Web
5. Problématique
Solution 1 : L’utilisateur se rend sur chaque site web des administrations
5
Composition de Services Web
6. Problématique
Solution 2 : L’utilisateur n’utilise que le site web de l’école
6
Composition de Services Web
7. Définition
Implémentation d’une application (offerte comme service) dont la logique
implique l’invocation d’opérations offertes par d’autres services.
Le nouveau service est appelé service composite
Les services invoqués sont des composants de service
Du point de vue du client, un service composite et un service basique
(implémenté par un langage de programmation traditionnel) sont in-
distinguables.
Notion de Service Mashup :
Forme plus légère de composition
Pour les applications web
Implique l'intégration dans un site web de contenus provenant d'autres sites
7
Composition de Services Web
8. Besoins de la Composition
Capacité d’invoquer les services d’une manière asynchrone
Gestion des exceptions et de l’intégrité transactionnelle
Les études montrent que presque 80% du temps de construction
des processus métier est passé dans la gestion des exceptions
Fourniture d’un framework dynamique, flexible et adaptable
pour une séparation claire entre la logique métier et les services
utilisés
Deux approches principales
Orchestration
Chorégraphie
8
Composition de Services Web
10. Définition
L’approche la plus commune
La séquence d’étape est définie dans un processus, avec conditions et
exceptions
Un contrôleur central est ensuite créé pour implémenter la séquence
Les étapes individuelles d’une séquence sont implémentés par des
opérations sur des services
Pour des compositions de services simples, l’orchestration est faite dans
le code (Java, C#...) résidant dans le composite
Pour des orchestrations complexes, un outil est utilisé pour :
Créer un modèle visuel d’une séquence
Générer le code qui exécute cette séquence dans un environnement d’exécution
dédié
➪ Approche BPM (Business Process Model)
10
Orchestration de Services
11. Standards d’Orchestration
BPMN (Business Process Modeling Notation)
Succède à BPML (Business Process Modeling
Langage)
Définit une représentation visuelle de la séquence
BPEL (Business Process Execution Language) ou
BPEL4WS (BPEL for Web Services)
Code qui exécute la séquence
Exprimé en XML
Utilise WSDL à deux niveaux :
Interagir avec les ressources requises par le
processus
Décrire le processus BPEL lui-même
Définit deux types d’activités:
Activités de base : interagissant avec les services
externes (invoke, receive, reply)
Activités structurées : contrôle de flux du
processus interne (flux séquentiel, condition,
boucle…)
11
Orchestration de Services
12. Limites de l’Orchestration
Approche centralisée autour du moteur de composition
En cas de panne, plus de composition
Schéma de composition statique
En cas de changement dans les besoins, le schéma devient invalide
12
Orchestration de Services
13. L’Orchestration en Résumé
Définit un seul maître contrôlant tous les aspects du processus
Supporte une vue graphique de la séquence d’exécution
Se couple facilement avec SOA
Présente un bon point de départ, mais un passage à l’échelle
difficile pour les processus complexes
Supporté par la plupart des outils
13
Orchestration de Services
15. Définition et Objectif
Dédiée
Aux processus complexes ayant plusieurs parties qui interagissent
Aux systèmes basés sur les évènements et sur les agents
Des règles déterminent le comportement de chaque participant individuel
d’un processus
Le comportement global du processus est basé sur l’interaction des
différentes parties, chacune suivant son propre rôle de manière
autonome.
Deux approches:
Basée sur les messages
Basée sur les composants fonctionnels
15
Chorégraphie de Services
16. Approche Basée sur les Messages
Basée sur l’examen des messages entre les participants dans un
processus
Le comportement est défini par la capture des contrats de messages
entre les parties en collaboration.
Supporté par le standard WS-CDL (Web Service Choregraphy Definition
Language)
Souvent utilisé pour les applications B2B (entre entreprises)
Difficile de spécifier l’implémentation des participants
Pas d’autorité centrale pour le flux global
Besoin de spécifier uniquement l’échange des messages (syntaxe,
sémantique, comportement)
16
Chorégraphie de Services
17. Approche Basée sur les Composants Fonctionnels
Basée sur la configuration des composants du processus
On définit le comportement des composants individuels et on laisse le
comportement du processus émerger quand chaque instance de
processus évolue.
Exemple : Implémentation du routage dans les différents composants
avec de simples règles :
Quelles fonctionnalités ce composant a besoin de faire?
Quels rôles peuvent réaliser quels besoins?
Qu’est ce qui peut activer un besoin?
Comment un besoin peut-il être considéré comme réalisé?
Ressemblance avec les systèmes à base d’agents
Exemple d’implémentation: BPEL4Chor
17
Chorégraphie de Services
18. Standards de la Chorégraphie
WS-CDL (Web Services Choreography Description Language)
Succède à WSCI (Web Services Choreography Interface)
Langage de description en XML
Décrit les messages qui sont impliqués dans l’échange collaboratif entre
services
Ne définit pas de processus métier exécutable (contrairement à BPEL)
Un seul document WS-CDL spécifie la contribution d’un partenaire à l’échange de
messages.
Contient un ensemble d’interactions, représentant les échanges de messages
entre parties
Décrit l’ordre des messages dans lequel ils doivent être observés
Si cet ordre n’est pas respecté, WS-CDL considère les messages comme hors de la
séquence, donc erronés
18
Chorégraphie de Services
19. Limites de la Chorégraphie
Collaborations et partenaires statiques
Si les besoins ou partenaires changent, les collaborations
deviennent impossibles
Pas de langage pour exprimer les besoins
Les travaux existants proposent une chorégraphie statique
19
Chorégraphie de Services
20. La Chorégraphie en Résumé
Le comportement global du processus émerge du travail des différentes
parties. Aucune perspective globale n’est nécessaire
Les processus complexes sont décomposés en agendas de travail où
chaque élément autonome contrôle son propre agenda.
Se couple facilement avec les systèmes basés sur les évènements et
sur les agents
Est généralement plus difficile à démarrer, mais la mise à l’échelle à des
processus complexe est plus facile
Les représentations graphiques peuvent être dérivées des processus
è la forme succède à la fonction
20
Chorégraphie de Services
22. Orchestration vs. Chorégraphie (1/3)
Orchestration Chorégraphie
Exécution automatique d’un processus: le
processus est défini en utilisant un
langage comme BPEL puis un engin
d’orchestration est appelé pour l’exécuter.
Un processus orchestré est exposé
comme service.
Description d’interactions coordonnées
entre deux ou plusieurs parties.
Les services invoqués ne savent pas qu’ils
font partie d’un processus métier. Seul le
processus central est conscient de
l’objectif général à atteindre.
Chaque service web participant dans la
chorégraphie doit savoir exactement
quand être actif et avec qui interagir.
22
Synthèse
23. Orchestration vs. Chorégraphie (2/3)
Orchestration Chorégraphie
Décrit ce qu’un processus fait sans
spécifier comment cela est
implémenté.
Interaction peer-to-peer, car il n’y a pas de
conducteur. C’est un modèle consensuel pour
les interactions, qui peut consister en un
ensemble d’orchestrations.
Fixe, car elle définit un ensemble
d’étapes et décisions bien définies.
Orientée objectif: les ressources sont
coordonnées pour réaliser cet objectif
Intra-organisationnel (une
organisation ne peut pas en
orchestrer une autre)
Inter-organisationnel
Autocratique (dirigée par un
dictateur)
Autonome (les services s’administrent eux-
mêmes)
23
Synthèse
25. Scénarios d’Utilisation
Dr. Lilia SFAXI
www.liliasfaxi.wix.com/liliasfaxi
Slide 25
Synthèse
Orchestration Chorégraphie
• Quand on a besoin de produits à la
demande, car c’est l’approche
implémentée par la plupart des
produits
• Quand les processus peuvent s’étendre à
un grand nombre d’étapes
• Pour les services composés • Où le détail d’un processus doit rester
secret pour les autres partenaires du
processus (B2B par exemple)
• Pour les processus relativement
statiques
• Où les différents partenaires d’un
processus ont besoin de leurs propres
personnalisation du processus
• Où une définition graphique des
processus est nécessaire
• Où les processus sont hautement
dynamiques ou basés sur un objectif
26. Cours
Robert Ma, Web Service Composition, 2007
Articles de Recherche
A. ALBRESHNE, P. FUHRER, J. PASQUIER, Web Services
Orchestration and Composition, Case Study of Web services
Composition, September 2009
Mike Rosen, BPM and SOA : Orchestration or Choreography,
Avril 2008
26
Sources