Apache camel et les entreprise integration patterns

39
APACHE CAMEL ET LES « ENTREPRISE INTEGRATION PATTERNS » Par : Ouadie LAHDIOUI

Transcript of Apache camel et les entreprise integration patterns

APACHE CAMELET LES

« ENTREPRISE INTEGRATION PATTERNS »

Par : Ouadie LAHDIOUI

PRÉREQUIS

2

+ Java 7

+ Maven

+ Fuse IDE

+ Apache CAMEL

Apache Camel et les Entreprise Integration Patterns

INTÉGRATION D'APPLICATIONS D'ENTREPRISE

POURQUOI LE BESOIN D’INTÉGRATION

4

+ Très peu d’applications vivent en isolation

+ SI complexe, Sous systèmes hétérogènes

+ Les fonctionnalités voulues par un utilisateur résident dans différents systèmes et dans différentes applications

Apache Camel et les Entreprise Integration Patterns

EXEMPLE D’INTÉGRATION D’UN SYSTÈME D’INFORMATION D’ENTREPRISE

5Apache Camel et les Entreprise Integration Patterns

LE PROBLÈME DES APPLICATIONS INTÉGRÉES POINT À POINT

6Apache Camel et les Entreprise Integration Patterns

CHALLENGES D’INTÉGRATION

7

+ Fiabilité des réseaux

+ Lenteur des réseaux

+ Les données échangées ainsi que le nombre d’application à intégrer augment

+ Changement continu Métier Technique Humain …

Apache Camel et les Entreprise Integration Patterns

OBJECTIF DE L’INTÉGRATION

8

+ Trouver un modèle d’intégration standard et efficace !!

Application BApplication A

+ Protocole A

+ Technologie A

+ Format de données A

+ Protocole B

+ Technologie B

+ Format de données B

Apache Camel et les Entreprise Integration Patterns

REPRESENTATIONAL STATE TRANSFERT

INTÉGRATION VS APPLICATIONS DISTRIBUÉES

9

+ Couches dépendantes

+ Communication typiquement synchrone

+ Découplage

+ Intra-départemental

+ Applications autonomes

+ Communication typiquement asynchrone

+ Inter-départemental et inter-organisationnel

Apache Camel et les Entreprise Integration Patterns

REPRESENTATIONAL STATE TRANSFERT

NIVEAUX D'INTÉGRATION D'APPLICATIONS

10

+ Framework d’intégration : Permet de mettre en place un Pattern d’Intégration d'Entreprise Utilise des APIs standards et diminue nettement les efforts d'implémentations Le code source est plus facile à comprendre pour les autres développeurs

+ ESB : Enterprise Service Bus Il est basé implicitement sur un framework Un produit beaucoup plus puissant pour le déploiement, l'administration et le monitoring Un meilleur outillage, qui réduit la complexité

+ Suite d'intégration Offre toutes les fonctionnalités d'un ESB Business Process Management (BPM), le Business Activity Monitoring, le Master Data

Management

Apache Camel et les Entreprise Integration Patterns

NIVEAUX D'INTÉGRATION D'APPLICATIONS

11Apache Camel et les Entreprise Integration Patterns

LES DIFFÉRENTS STYLES D’INTÉGRATION

12

+ File transfer

+ Shared dataBase

+ Remote procedural invocation

+ Asynchronous messaging style

Apache Camel et les Entreprise Integration Patterns

FILE TRANSFER

LES DIFFÉRENTS STYLES D’INTÉGRATION

13

+ L’application A exporte ses données dans un format de données commun

+ Le fichier est ensuite lu par l’application B

+ Pratique est facile à mettre en place.

+ Découplage physique, logique et temporel

+ Peu fiable – Sécurité - Accés concurrent - Pas de transaction - Difficulté d’exploitation.

Apache Camel et les Entreprise Integration Patterns

SHARED DATABASE

LES DIFFÉRENTS STYLES D’INTÉGRATION

14

+ Les données sont centralisées dans une base de données partagée par toutes les applications

+ Transactions - Centralisation + Applications liées au schéma - Impossible a mettre en place si on a un partenaire externs – Lent - Évolution difficile

Apache Camel et les Entreprise Integration Patterns

REMOTE PROCEDURE INVOCATION

LES DIFFÉRENTS STYLES D’INTÉGRATION

15

+ Appel des services à la demande pour réaliser des opérations

+ Object Oriented - Découplage phsique + Pas de découplage logique - Fragile - Pas scalable (Thread d’envoi reste bloqué) - Difficilement interopérable - Point to Point

Apache Camel et les Entreprise Integration Patterns

REMOTE PROCEDURE INVOCATION

LES DIFFÉRENTS STYLES D’INTÉGRATION

16

+ Les systèmes envoient des données (Event queue)

+ L’envoie d’un message dans un channel est rapide

+ Le channel assure le découplage des systèmes.

+ Communication asynchrone « Fire And Forget »

Apache Camel et les Entreprise Integration Patterns

ATTENTION AU DÉVELOPPEMENT D’APPLICATION ASYNCHRONE

17

+ Contexte transactionnel

+ Contexte de sécurité

+ Gestion des erreurs

Apache Camel et les Entreprise Integration Patterns

LE BESOIN D’UN « MESSAGING PATTERN LANGUAGE»

18

+ Normaliser les échanges de messages dans un système asynchrone

+ Transporter les messages [Channel Patterns]

+ Designer les messages [Message Patterns]

+ Transfert des messages vers sa destination [Router Patterns]

+ Transformer les messages dans le bon format [Transformation Pattenrs]

+ Evoyer et réceptionner des messages [Endpoint Patterns]

+ Gérer et tester le système [Manegement Patterns]

Apache Camel et les Entreprise Integration Patterns

EIP (ENTREPRISE INTEGRATION PATTERNS)

ENTREPRISE INTEGRATION PATTERNS, C’EST QUOI ?

20

+ Design Patterns, 1994

+ Des solutions génériques pour des problèmes spécifiques

+ Entreprise Integration Patterns, écrit en 2003 et toujours d’actualité

+ Catalogue de référence sur les EIP

Apache Camel et les Entreprise Integration Patterns

65 PATTERNS

CATALOGUE DES EIP

21Apache Camel et les Entreprise Integration Patterns

PIPES AND FILTERS

22Apache Camel et les Entreprise Integration Patterns

POINT-TO-POINT CHANNEL

23Apache Camel et les Entreprise Integration Patterns

PUBLISH-SUBSCRIBE CHANNEL

24Apache Camel et les Entreprise Integration Patterns

MESSAGE ROUTER

25Apache Camel et les Entreprise Integration Patterns

SPLITTER

26Apache Camel et les Entreprise Integration Patterns

AGGREGATOR

27Apache Camel et les Entreprise Integration Patterns

FRAMWORKS D’INTÉGRATION JAVA

28

+ Apche CAMEL + Spring Integration

Apache Camel et les Entreprise Integration Patterns

FRAMWORKS D’INTÉGRATION JAVA

29

James StrachanRead

Write

implement

Apache Camel et les Entreprise Integration Patterns

APACHE CAMEL

30

+ Implémentation des EIP

+ Framwork Java OpenSource basé sur des échanges de messages

+ Architecture événementielle et transactionnelle

+ Très bonne intégration avec spring

+ DSL (Domain Specific Language): Java DSL - Spring XML - Groovy DSL - Scala DSL - Annotation DSL

CONCISE APPLICATION MESSAGING EXCHANGE LANGUAGE

Apache Camel et les Entreprise Integration Patterns

APACHE CAMEL

31

CONCISE APPLICATION MESSAGING EXCHANGE LANGUAGE

Apache Camel et les Entreprise Integration Patterns

APACHE CAMEL

32

CONCISE APPLICATION MESSAGING EXCHANGE LANGUAGE

Apache Camel et les Entreprise Integration Patterns

APACHE CAMEL

33

+ Constituent les canaux de communication entre deux endpoints ou plus

+ Chacune possède un seul point d’entrée (from) et une ou plusieurs sorties (to)

LES ROUTES

Apache Camel et les Entreprise Integration Patterns

APACHE CAMEL

34

+ Les messages transitent sur les routes

LES MESSAGES

Exchanges

Apache Camel et les Entreprise Integration Patterns

APACHE CAMEL

35

+ Une Route est le chemin qu’emprunte le message d’un bout à l’autre de la chaîne de médiation, Ce chemin pouvant être entrecoupé par ce qu’on appelle des processeurs (Processor)

LES PROCESSORS

Apache Camel et les Entreprise Integration Patterns

FUSE IDE

36Apache Camel et les Entreprise Integration Patterns

ET LES ESB ?

37

+ Un ESB est une offre Middleware complète

+ Apache Camel est une boite à outils basée sur les EIP

+ Apache Camel est dis LightWeight (ESB Light)

Apache Camel et les Entreprise Integration Patterns

TAKING APACHE CAMEL FOR A RIDE

Mise en place d’un HotFolderComposants :ServletSchedulerFTPDirectHTTP

Source : www.last-video.com

MERCI POUR VOTRE ATTENTION

Documentation officielle d’apache Camel : www.camel.apache.org/documentation.htmlLivres :- EIP: Designing, Building, and Deploying Messaging Solutions- Camel In Action

N'ayez pas peur des Entreprise Integration Patterns (EIP)