L'intégra*on dans le monde des applica*ons Java. ParisJUG Octobre 2013

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

Messagerie asynchrone et Services Web

Intégration de systèmes

BPEL Orchestration de Web Services

Présentation d'un MOM open-source

Paris JUG. Spring Batch. Mardi 14 Mai Olivier Bazoud Julien Jakubowski

Software Engineering and Middleware A Roadmap

Grid Technology. ActiveMQ pour le grand collisionneur de hadrons (LHC) Lionel Cons Grid Technology Group Information Technology Department

Fiche de l'awt Intégration des applications

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

Projet ESB - Retour d expérience

JOnAS Day 5.1. Clustering

Les nouvelles architectures des SI : Etat de l Art

Architectures n-tiers Intergiciels à objets et services web

Mettez les évolutions technologiques au service de vos objectifs métier

FOSS Enterprise Integration Plattaform

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

BMC Middleware Management

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

PROJET : ETNIC ESB JANUS. Guide technique : WS-Notification - Clustering. BULL Services et Solutions

Urbanisme du Système d Information et EAI

Le 09 et 10 Décembre 09

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

Nouvelles technologies pour l intégration : les ESB

Les Services Web. Jean-Pierre BORG EFORT

Programmation Web Avancée Introduction aux services Web

AVRIL Au delà de Hadoop. Panorama des solutions NoSQL

Business Process Execution Language

Big Data. Cyril Amsellem Consultant avant-vente. 16 juin Talend

Projet. But: consultation en temps réel d événements (cours de bourse, trafic d envoi SMS ) sur des téléphones portables. Serveur de diffusion

Description de la formation

Les Architectures Orientées Services (SOA)

Java à Murex: un retour d'expérience. Jean-Pierre DACHER & Craig MORRISON

La suite logicielle Lin ID. Paris Capitale du Libre 25 septembre 2008

Cartographie des solutions BigData

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

RFID: Middleware et intégration avec le système d'information Olivier Liechti

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

GESTION DU CYCLE DE VIE. Albert Amar Avant-vente Middleware

Cours en ligne Développement Java pour le web

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

Patrons de conception de Web Services

GESTION DE LA PERFORMANCE. Albert Amar Avant-vente Middleware

Journée Mondiale de la Normalisation

Introduction aux intergiciels

Configuration Interface for MEssage ROuting

Argument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données

Architecture et Extensions d ArcGIS Server

Open Source Job Scheduler. Installation(s)

MQPerf un outil de diagnostic en mode SaaS des performances optimales du MOM JORAM

Architectures en couches pour applications web Rappel : Architecture en couches

NFP111 Systèmes et Applications Réparties

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

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

Experts en technologies Open Source et méthodes Agiles

De à 4 millions. Khanh Tuong

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

DG-ADAJ: Une plateforme Desktop Grid

Le cloud computing au service des applications cartographiques à haute disponibilité

IBM WebSphere Application Server 5.0 : Administration avancée

CAS, un SSO web open source. 14h35-15h25 - La Seine A

Présentation Alfresco

C-JDBC. Emmanuel Cecchet INRIA, Projet Sardes.

Intergiciel - concepts de base

Comment initialiser une démarche SOA

THÉMATIQUES. Comprendre les frameworks productifs. Découvrir leurs usages. Synthèse

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

NIMBUS TRAINING. Administration de Citrix NetScaler 10. Déscription : Objectifs. Publics. Durée. Pré-requis. Programme de cette formation

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

Enterprise Intégration

Architecture Orientée Service, JSON et API REST

Fusion : l interopérabilité chez Oracle

Android et le Cloud Computing

Compte Rendu d intégration d application

Chapitre 5 Vision Informatique Logique Architectures Applicative et Logicielle

DataPower SOA Appliances

PostgreSQL. Formations. Calendrier... 14

Déployer et sécuriser des applica1ons mobiles dans votre SI / Cloud

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

Digitalisation de l Industrie Bancaire

Administration de Citrix NetScaler 10 CNS-205-1I

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

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Journée IJD. Moussa Tari Bako Bachir. 25 juin 2012 ARLES/INRIA. Introduction Travail Chez ARLES

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

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

4. SERVICES WEB REST 46

Optimisez vos relations clients avec un outil de CRM performant

Introduction à la plateforme J2EE

Club Utilisateurs Salesforce.com

Rapport de veille technologique

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

SOA : une brique de la 4 ième génération de l architecture informatique? Hervé Crespel Président du club urba-ea

1 JBoss Entreprise Middleware

e-business, EAI et Business Intelligence Le triptyque gagnant profondément les structures des organisations et par conséquence

Gestion de tests et tests de performance avec Salomé-TMF & CLIF

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

Opportunités s de mutualisation ITIL et ISO 27001

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

Transcription:

L'intégra*on dans le monde des applica*ons Java ParisJUG Octobre 2013

Grégory Boissinot Directeur technique Zenika Paris Formateur cergfié Springsource CommiKer Jenkins @gboissinot Guillaume Giamarchi Architecte technique chez Zenika Formateur et expert SOA, ESB et Apache Camel @ggiamarchi

Pourquoi le besoin d'intégragon Très peu d'applicagons vivent en isolagon Les foncgonnalités voulues par un uglisateur résident dans différents systèmes et dans différentes applicagons Inévitable

Exemple d'intégragon d'un système d'informagon d'entreprise Commercial Vente Factura*on Comptabilité Stocks

Le problème des applicagons intégrées point à point

L'intégraGon avec des systèmes externes est un challenge Difficulté d'intégra*on des données et des services

Autres challenges d'intégragon Fiabilité des réseaux Lenteur des réseaux Changement congnu ( - - > inévitable) MéGer Technique Humain Les données échangées ainsi que le nombre d'applicagons à intégrer augmentent

ObjecGf d'intégragon Interface A Protocole A Technologie A Format de données A Interface B Protocole B Technologie B Format de données B Fournir un modèle d'intégra*on standard et efficace

Les différents styles d'intégragon File Transfer Shared Database Remote Procedure Call (RPC) Asynchronous Messaging Style

File Transfer 1970 System A EXPORT Shared Data (e.g. File) IMPORT System B Le système A exporte ses données dans un format de données commun, le fichier est ensuite lu par le système B Avantages Simple à mekre en place pour des pegts volumes Découplé physiquement, logiquement et temporellement Langages et systèmes indépendant Inconvénients Peu fiable Temps de latence Contrat du nom du fichier, localisagon, format des données Difficulté d'exploitagon

File Transfer File shareddatafile = new File("sharedLocation/sharedData.txt"); //SERVER FileWriter writer = new FileWriter(sharedDataFile); writer.write("mydata"); writer.flush(); writer.close(); //CLIENT Scanner in = new Scanner(new FileReader(sharedDataFile));

Shared Database 1980 Avantages Simple Données consistantes (transacgons) Shared DB Les données sont centralisées dans un emplacement partagé par toute les applica*ons Inconvénients Difficulté à trouver une représentagon commune Lent

RemoGng Procedure Call 1990 System A STUB R F SKELE TON System B Appel des systèmes à la demande pour réaliser une opéra*on Avantages PraGque et Rapide Proche du monde "Object Oriented" Les données sont échangées uniquement lorsqu'on en a besoin Découplé Physiquement Inconvénients Difficilement interopérable Couplé logiquement Fragile (très couplé logiquement) Pas scalable (le thread d'envoi peut rester bloqué)

RemoGng Procedure Call Exemple de code //Client side code Registry registry = LocateRegistry.getRegistry(orderRegistry); OrderService orderservice = (OrderService)registry.lookup(orderRegistryName); SubmitOrderResult result = orderservice.submitorder(order); Remarque Spring Remo*ng facilite l'exposi*on et la consomma*on de services à travers différents protocoles

Asynchronous Messaging Style Messaging System Sender Endpoint Message (Headers+ Payload) Channel (Queue) Message (Headers+ Payload) Receiver Endpoint Les systèmes envoient des données à travers des channels (ou event queue) L'envoie d'un message dans un channel est rapide ("fire- and- forget") Le channel assure le découplage des systèmes (Le channel garde les requêtes jusqu'à ce que le consommateur est prêt)

Asynchronous Messaging Style Exemple de code JMS //Producer JMS producer = session.createproducer(queuemessage) producer.send(message); otherbusiness() //Consumer JMS consumer = session.createconsumer(queuemessage) Message message = consumer.receive(3000) Remarque L'envoie et la récep*on de messages peuvent être facilité avec Spring JMS

Un écosystème de termes Asynchronous Messaging Fire- and- forget informagon exchange Message Oriented Middleware (MOM) dans le cas d'un broker

L'apport d'un style de messaging asynchrone CommunicaGon Asynchrone Découplé logiquement Réglage de la cadence de traitement Fiabilité Logique d'intercepteurs

AKenGon au développement d'applicagon asynchrone Contexte transacgonnel Contexte de sécurité GesGon des erreurs Pas les mêmes paradigmes que les applicagon synchrones

Exemples de cas d'uglisagon du messaging Simple producer consumer Pipelining Message DistribuGon

Simple Producer Consumer (1/3) Shopping Web site Back- end System send Order Further Processing Unidriec*onal flow

Simple Producer Consumer (2/3) Consumer Trigger BATCH Chaque message consommé déclenche un batch

Simple Producer Consumer (3/3) Throtolling strategy 2 messages/second Consumer Le consommateur n'est jamais surchargé

Pipelining Message 1 Message 2 Message 3 Message 4 Task 1 Task 2 Task 3 Chain On envoie le message à travers de mul*ples systèmes

Pipelining à la sécurité Message 1 Message 2 Message 3 Message 4 Sender EncrypGon Authen- GcaGon Decryp- Gon Re- ceiver IMPLEMENTATION MONOLITHIQUE IMPLEMENTATION A BASE DE MESSAGES

Message DistribuGon Consumer 1 Broadcast Message Component Consumer 2 Consumer 3 Le message est dupliqué. Chaque consommateur reçoit une copie du message

Le besoin d'un "Messaging PaKern Language" 1. Transporter les messages (Channel Pa]erns) 2. Designer les Messages (Message Pa]erns) 3. Transfert des messages vers sa desgnagon (Router Pa]erns) 4. Transformer les messages dans le bon format (Transforma*on Pa]erns) 5. Envoyer et récepgonner des messages (Endpoint pa]erns) 6. Gérer et Tester le système (Management Pa]erns) APPLICATION Message 1 APPLICATION Message 1 Message 2 APPLICATION

Entreprise IntegraGon PaKerns (EIP) Channel Transformer Router Filter SpliKer Aggregator ServiceAcGvator Poller etc Des pakerns pour l'intégragon Facilite la communicagon entre les développeurs Aidé par des diagrammes visuels Oriente une décision, un choix d'architecture

Entreprise IntegraGon PaKerns Book Un langage visuel (diagrammes et icônes) Gregor Hohpe A servi de fondagon pour les différentes technologies de l'industrie open source d'intégragon AdopGon d'un langage commun Bobby Woolf

Un catalogue complet de pakerns 65 pa]erns

"Pipe and Filter Architecture" en EIP? Endpoint Pipe (Channel) Filter Pipe (Channel) Endpoint? Source Target Message... Message

Point- to- point (P2P) Channel Receiver 1 Sender Receiver 2 Receiver 3 Un Point- to- point Channel garan*t qu'un seul consommateur consomme le message

Publish- subscribe Channel Subscriber 1 Publisher Subscriber 2 Subscriber 2 Un Publish- subscribe channel garan*t que tous les consommateurs enregistrés reçoivent une copie du message

Message Router A outqueue1 inqueue Message Router outqueue2 B

Recipient List

SpliKer Stateless

Aggregator Stateful

Memory Heap SpliKer vs Aggregator memory memory Spli]er Gme In- memory Aggregator Gme

Est- ce que le messaging est l'unique parge de l'intégragon d'entreprise? Entreprise IntegraGon Messaging Un système de messaging Faiblement couplé Composable Élégant Scalable Mais Plusieurs interacgons? Un flow à travers différents nœuds? TransacGons distribués (2PC)? GesGon des erreurs?

Les autres parges de l'intégragon Entreprise IntegraGon Messaging ConversaGons Processes Events

Les pakerns de conversagon (1/2) Messages InstanGaGng Message Follow- on Message Complete Message Side ConversaGon (Sub conversagon) Acknowledge Message Simple Conversa*on Reliable Delivery Sync Request- reply Async Request- reply message Async Request- Poll for result Subscribe- NoGfy Tacit Agreement Reaching Agreement

Les pakerns de conversagon (2/2) Coordinates Conv. Vote/Poll Reaching Agreement/ Two phase vote Unanimous aggreement Etablishing Conv. Discovery IntroducGon Three- Way Handashable Role negocagon Establishing trust Renewing Interest Lease/AutomaGc ExpiraGon Renewal Reminder Excep*on Handling Two Phase Commit CompensaGon AcGon Retry / Resend (Idempotent receive) Write- Offs

Channel Adapter Du code afin de cacher la complexité d'infrastructure entre une source ou une desgnagon et le système de messaging? Source Target?

Messaging Gateway Input Channel Sender Receiver Output Channel Façade d'envoie de messages Synchrone ou Asynchrone

Quelques cas d'uglisagon

Un pont entre un environnement à base de fichiers et JMS FILE FILE FILE Infra. Inbound channel Adpter File Filter File Outbound channel Adpter Flow EIP JMS QUEUE JMS Consumer JMS Consumer JMS

DistribuGon d'un traitement JMS JMS QUEUE Fetch Order JVM JMS Order Msj Process Orders Persist Ordesr Audit Order DataBase

Traitement en // depuis une API REST REST API response request Synchronous HTTP Gateway Endpoint Response Channel Publish- Subscribe Channel Service AcGvator Outbound channel Adpter Flow EIP Service DataStore

Comparateur de prix Vendor Transform Normalize Request Vendor web MulGcast Transform Normalize Synchronous Gateway Transform Vendor Normalize Response Render Aggregate

Social Crawler Send email Polling Normalize Share on G+ Polling Normalize Filter duplicates Recipient List Log on console Polling Normalize Rules NoGfy markegng Indexing

Scaling IntegraGon Flow "Claim Check PaKern" Original Object Incoming Claim Check transformer UUID Outgoing Claim Check transformer Original Object Message Store Generated Key ID (UUID) Original Object

High Availability (HA) Architecture Inbound Adapter SI Flow Dispatching Message An ac*ve node for a single source Inbound Adapter SI Flow Message Queue (JMS., RabbitMQ, etc) Compe**ng Consumers Thread Pool Plusieurs stratégies de load- balancing et de failover Threads

Quelques mots sur le monitoring Message History Wire- Tap JMX

Message History poller inputchannel logerchannel [name:poller, type:inbound- channel- adapter, Gmestamp:1304966973309] [name:inputchannel, type:channel, Gmestamp:1304966973309] [name:logerchannel, type:channel, Gmestamp:1304966973309]

Et les ESB? Les entreprise Service Bus (ESB) permet de composer des applicagons SOA (moteur+ monitoring + gesgon des flux) MESSAGE BUS Adapter Adapter Adapter Service 1 Service 2 Service 3

Les frameworks d'intégra*on Java

ProjecGon des pakerns sur des plateformes technologiques Pa]erns CommunicaGon Humaine Abstrait OuGl de concepgon Indépendant d'une plateforme Système de communicagon Concret Composants Programme exécutable Dépendant d'une plateforme Deux concepts pour une même défini*on

Les pakerns uglisable comme des composants Un modèle par composigon pour le style "Pipe & Filter" On formalise facilement les entrées, les sorges et les autres propriétés Input CorrelaGon Func.... Output Exprimable en différents langages

Le composant Aggregator en pragque Un composant avec un ensemble de propriétés InputChannel OutputChannel CorrelaGon FuncGon Completeness CondiGon AggregaGon algorithm Aggregator DSL Possible Exécutable

Les frameworks d'intégragon Java Integra*on Implements Framework de médiagon et de rougng Pas un ESB

Un usage intra et inter applicagon JVM JVM EAI ` ApplicaGon IntegraGon Core Messaging B2B External Business Partener Business to Business IntegraGon (B2B) Inter ApplicaGon IntegraGon (EAI) Intra ApplicaGon IntegraGon

Déploiement du framework d'intégragon 1 simple librairie non invasive Pas de container/serveur (ou de broker) Aucune installagon Pas de configuragon logicielle APPLICATION Uses <!-- Exemple avec Spring Integration --> <dependency> <groupid>org.springframework.integration</groupid> <artifactid>spring-integration-core</artifactid> <version>${spring.integration.version}</version> </dependency> LIB IntegraGon Frmk Library

Un déploiement comme "Middleware IntegraGon pla}orm" APPLICATION A APPLICATION B Adapter Adapter AN INTEGRATION APPLICATION (with only the IntegraGon framework jars) Adapter Adapter ExisGng Vendors Future Requirements