J’ai déjà écrit plusieurs fois sur les architectures idéales qui devraient être mises en place pour faciliter l’intégration des solutions PLM avec le reste des applications d’entreprise et surtout pour changer le point de vue des responsables IT en partant toujours de la spécification d’un service fonctionnel (créer un article, créer une version,… ) pour ensuite comprendre ce que cela implique et ce qui, potentiellement, serait distribué à travers plusieurs applications (nouvelle référence dans l’ERP, circuit de validation aux achats,…). Lors du dernier PLMLab, au déjeuner j’ai pu discuter avec un industriel qui à ma grande surprise avait déjà une démarche très poussée dans ce sens avec une plateforme SOA qui permettait de gérer ses services et qui était le vrai socle principal de leur stratégie IT général (intégrant autant l’ERP, que le PLM, le CRM,…). L’expérience de cet industriel semblant être concluante j’en profite pour faire un rappel de ce qu’est l’ESB et du panorama des solutions disponibles.

Enterprise Service Bus

L’Enterprise Service Bus, Bus de services de l’entreprise a pour tâche principal d’orchestrer les services de l’entreprise et de les diriger ou « router » pour s’assurér que les bonnes fonctions soient appelées et les bonnes données crées.

Wikipedia (sur sa page anglophone, répertorie les caractéristiques élémentaires d’un ESB:

Invocation support for synchronous and asynchronous transport protocols, service mapping (locating and binding)
Routing addressability, static/deterministic routing, content-based routing, rules-based routing, policy-based routing
Mediation adapters, protocol transformation, service mapping
Messaging message-processing, message transformation and message enhancement
Process choreography implementation of complex business processes
Service orchestration coordination of multiple implementation services exposed as a single, aggregate service
Complex event processing event-interpretation, correlation, pattern-matching
Other quality of service security (encryption and signing), reliable delivery, transaction management
Management monitoring, audit, logging, metering, admin console, BAM (BAM is not a management capability in other words the ESB doesn’t react to a specific threshold. It is a business service capability surfaced to end users. )
Agnosticism general agnosticism to operating-systems and programming-languages; for example, it should enable interoperability between Java and .NET applications
Protocol Conversion comprehensive support for topical communication protocols service standards
Message Exchange Patterns support for various MEPs (Message Exchange Patterns) (for example: synchronous request/response, asynchronous request/response, send-and-forget, publish/subscribe)
Adapters adapters for supporting integration with legacy systems, possibly based on standards such as JCA
Security a standardized security-model to authorize, authenticate and audit use of the ESB
Transformation facilitation of the transformation of data formats and values, including transformation services (often via XSLT or XQuery) between the formats of the sending application and the receiving application
Validation validation against schemas for sending and receiving messages
Governance the ability to apply business rules uniformly
Enrichment enriching messages from other sources
Split and Merge the splitting and combining of multiple messages and the handling of exceptions
Abstraction the provision of a unified abstraction across multiple layers
Routing and Transformation routing or transforming messages conditionally, based on a non-centralized policy (without the need for a central rules-engine)
Commodity Services provisioning of commonly used functionality as shared services depending on context

Toutes ces caractéristiques révèlent une plateforme logistique de l’information d’entreprise permettant de faire en sorte que les différentes applications communiquent entre elles tout en maîtrisant  une logique et une sécurité centralisée à la différence de simples intégrations point à point que l’on pourrait réaliser avec un simple ETL.

« ESB Component Hive » by AxelangeliOwn work. Licensed under CC BY 3.0 via Wikimedia Commons.

Le panorama des solutions (sources wikippedia)

Commercial

Open-source

Conclusion

Le but n’est pas de faire un cours sur l’ESB, il est plus de sensibiliser la sphère PLM qui ne le serait pas encore à ces problématiques d’intégration qui dépassent très largement la gestion de cycle de vie du produit mais qui sont essentielles à la réussite de projets PLM. C’est un socle primordial pour les futures implémentations PLM dans les entreprises. Donc si vous débutez un projet PLM sans savoir ce qu’est un ESB, vous avez sauté une étape !

Posted by Yoann Maingon

Consultant PLM avec des expériences autant côté métier que dans l'implémentation technique de solutions PLM et d'intégrations de systèmes, je partage avec vous mes expériences, mes recherches et mes développements à travers ce blog.

  • Sébastien Dartigues

    Très bon article qui évoque la nécessité de partager l’information au sein de systèmes hétérogènes mais relatifs au PLM.
    Il existe même des ESB spécialisés qui permettent de faire coexister / synchroniser des systèmes PLM (mais pas que) entre eux.
    Je pense notamment à ProSTEP avec OpenPDM & T-Systems avec PDM WebConnector.

    • Merci, j’aimerai bien voir plus d’info sur le sujet. Est-ce que ces plateformes stockent de l’information? si oui est-ce qu’elles les stockent au format step ou est-ce que STEP n’est utilisé que dans la transmission des informations?