Zenika débarque sur Android
L'expertise Zenika dans votre poche !
>> Détails <<

Architecture d'entreprise et SOA

S'adapter ou mourir

Le contrat qui lie une entreprise (ou une DSI) à ses clients (ou ses utilisateurs) est simple : les uns ont des besoins, l'autre doit y répondre. Simple mais fragile... les raisons pouvant amener le client à se tourner vers la concurrence sont multiples : des produits moins chers, une mauvaise communication, etc.. Pour anticiper et pallier ces éventuels problèmes, une entreprise doit avant tout se concentrer sur sa raison d'être : son métier.

Tout serait facile si ce métier quel qu'il soit, banque, télécoms ou encore industrie, ne changeait continuellement. En effet, les besoins des clients, les réglementations évoluent constamment et cela l'entreprise n'y peut rien ; soit l'entreprise s'adapte soit elle meurt. A cela s'ajoute le fait que ces changements s'enchaînent de plus en plus vite : le défi auquel les entreprises doivent répondre n'est plus d'être les plus grosses mais bien d'être les plus rapides.

Le système d'information est souvent un frein important à l'évolution d'une entreprise. De plus en plus, cette dernière dépend des technologies ; cela n'est pas sans conséquence sur le métier. Pourtant, n'en déplaise à certains, les technologies ne sont qu'un outil. Dans ce cas, comment se fait-il que les entreprises dépensent souvent plus de temps et d'énergie à se (dé)battre avec les technologies et les personnes qui les maîtrisent plutôt qu'à s'occuper de leur métier ?

« Ce n'est pas notre faute, c'est un problème informatique... »

Une des causes principales de cette situation est l'incompréhension patente entre responsables métier et techniques ; l'objectif majeur de SOA est de réconcilier ces deux mondes en apportant des solutions agiles afin de répondre aux besoins métier et ainsi améliorer la réactivité des entreprises.

Pour se faire, les architectures SOA s'appuie sur les principes suivants :

  • Simplicité : faire simple est une garantie d'efficacité et assure une communication optimale entre métier et technique.
  • Flexibilité et maintenabilité : on l'a vu, le changement est continuel ; il est donc nécessaire de mettre en place des systèmes flexibles et maintenables afin d'assurer leur pérennité à moindre coût.
  • Réutilisabilité : au sein d'un système d'information, il n'est pas rare de voir se multiplier des modules répondant aux mêmes besoins ; un des objectifs de SOA est de répondre à cette problématique en favorisant la réutilisation afin de réduire de manière drastique les anomalies et d'augmenter les gains de productivité.
  • Indépendance vis à vis des technologies : un des nombreux motifs de bisbilles métier/technique évoquées plus haut est l'incompatibilité de facto entre cycles métier et cycles technologiques. En effet, une application a pour vocation à durer plusieurs années alors que les technologies évoluent mois après mois. Il est donc important de favoriser une indépendance forte vis à vis de ces dernières.

Pour mettre en œuvre ces principes, SOA va s'appuyer sur une brique centrale : le service.

Tout n'est que service

Réduire le monde à une seule réalité n'est pas nouveau. Il y a plusieurs années, les informaticiens modélisaient le monde via des fonctions, puis vinrent les objets et aujourd'hui les services. Tous ces concepts ne s'opposent pas ; tout comme les objets s'appuient sur les fonctions, les services s'appuient sur les objets. Ils viennent répondre à une des lacunes de ces derniers : la distributivité.

En effet, un service est distribué ; il est également autonome, réutilisable et de nature abstraite. Pour autant, un service est avant tout un contrat établi entre un fournisseur et un demandeur dont l'objet est de répondre aux besoins de ce dernier. L'ère des applications-silos répondant à un besoin propre de manière autonome et sans contact avec l'environnement extérieur est révolue. Depuis plusieurs années, les systèmes distribués ont permis de désenclaver les applications en apportant souplesse et productivité...mais de manière plus ou moins anarchique. SOA et les services nous permettent d'organiser le système d'information de manière cohérente et concertée sur la base de contrats entre une entreprise, ses clients, ses partenaires ou encore ses départements.

SOA n'est pas une révolution mais une évolution naturelle des systèmes d'information. SOA n'est pas né de rien, il n'est que le fruit de plusieurs années d'expérience, de réussites et d'échecs qui ont conduit experts métier, architectes techniques et développeurs à repenser l'entreprise et son fonctionnement de manière optimale en respectant des bonnes pratiques de conception.

Et les technologies dans tout ça ?

La mécanique parfaitement huilée de SOA a malheureusement tendance à s'enrayer le moment de l'implémentation venue. Quelle technologie dois-je choisir pour mettre en place une architecture SOA ? La question est simple, la réponse l'est moins. En effet, l'écosystème SOA est riche et varié :

  • XML : XML, par sa nature universelle, est un support parfait pour SOA en assurant simplicité de mise en œuvre et interopérabilité. Mots-clés : JAXP, SAX, DOM, XSL, XPath
  • Web Services : pour beaucoup, les Web Services et SOA ne font qu'un. Cette erreur classique ne doit pas pour autant cacher le fait que les Web Services peuvent être une solution extrêmement intéressante quand ils sont utilisés à bon escient. Mots-clés : WS-*, REST, WSDL, SOAP
  • Message-Oriented Middleware : on l'oublie souvent mais les files de messages peuvent être un parfait outil dans la mise en place d'une architecture SOA en assurant asynchronisme, persistance et découplage entre consommateur et fournisseur. Mots-clés : JMS, ActiveMQ
  • Enterprise Integration Pattern : les patterns d'intégration sont une caisse à outils indispensable dans la bonne mise en œuvre d'un système d'information en assurant routage, transformation et supervision. Mots-clés : Apache Camel
  • BPEL : dans la famille SOA, BPEL est l'orchestrateur. BPEL permet de réutiliser l'ensemble des services d'un système afin d'en composer de nouveaux. Mots-clés : Oracle BPEL, Apache ODE
  • ESB : ESB est une source de malentendus constante. Un ESB c'est, quoi que l'on en dise, un système distribué qui s'appuie sur l'ensemble des briques abordées précédemment : MOM, Web Services, EIP. L'objectif principal d'un ESB est avant tout de simplifier les échanges au sein d'un système d'information. Mots-clés : Apache ServiceMix, OpenESB

Rien ne sert de théoriser si cela ne débouche sur rien en pratique

A première vue, les briques SOA sont multiples et hétérogènes. Au milieu de cette jungle, il est nécessaire de travailler avec méthode et discernement. Beaucoup se gargarisent des bienfaits de SOA mais ne le mettent jamais en œuvre ; Zenika saura vous aider aussi bien lors les phases de préparation que lors les phases d'implémentation et de support. Nous saurons faire avec vous les choix les plus adaptés à votre métier et à votre environnement.

businessman

Conseil

Zenika mettra à disposition de votre organisation ses consultants et toute leur expérience afin de :

  • vous aider à mettre en place un système d'information respectant les bonnes pratiques SOA
  • réaliser et implémenter des architectures robustes et performantes en utilisant les briques techniques les plus adaptées à votre organisation et ses besoins.

blackboard

Formation

Afin de faciliter la mise en œuvre ou la migration de votre système d'information, Zenika met à votre disposition un catalogue complet de formations SOA. Nous pouvons former aussi bien vos collaborateurs métier que techniques à SOA et à l'ensemble des briques techniques qui s'y rattachent.

ESB, Enterprise Service Bus
BPEL, Business Process Execution Language
WebServices, Développer et déployer des Web Services

blackboard

Cette offre gratuite consiste en une courte présentation qui vous permettra de découvrir l'architecture du SI et ses enjeux.

En savoir plus