Comment construire une Architecture Orientée Services (SOA)
©.com/Bakhtiar Zein
Dans cet article, nous nous concentrons sur le sujet de l’Architecture orientée services (SOA). Nous commençons par une plongée profonde dans 1) SOA: une description et allons ensuite discuter 2) construire une architecture orientée Service.
ARCHITECTURE ORIENTÉE SERVICE : UNE DESCRIPTION
Qu’est-ce que SOA ?
La SOA ou architecture orientée services est une méthode par laquelle différents types de services peuvent interagir les uns avec les autres indépendamment. Un service est une partie autonome de la fonctionnalité, et plusieurs services peuvent être combinés pour fournir l’utilisation et la fonctionnalité d’une application logicielle à grande échelle. Ce que fait SOA, c’est qu’il est plus simple pour les parties logicielles sur les PC connectés à un réseau d’interagir et de coopérer. Le modèle de conception de SOA est tel que les composants informatiques des applications peuvent offrir des services à d’autres composants de ce type, principalement sur un réseau. Chaque système informatique peut exécuter n’importe quel nombre de services, chacun étant conçu pour échanger des informations avec tout autre service différent d’un réseau sans aide humaine.
Dans la terminologie commerciale, la SOA est un ensemble de services informatiques alignés sur les activités qui, ensemble, répondent aux objectifs et aux processus de l’entreprise. La conception structurelle de SOA garantit un alignement avec les exigences de l’entreprise ainsi que la solution technologique de celle-ci.
Les éléments majeurs de la SOA
Voici les éléments majeurs de la SOA:
- Moteurs de SOA – Les moteurs de SOA ou les moteurs d’entreprise comprennent des éléments tels que la concurrence, la stratégie, les forces réglementaires et les forces du marché. Tous ces éléments sont réunis pour piloter l’architecture d’entreprise et donner forme à la gestion de la performance à l’échelle de l’entreprise
- Facilitateurs SOA – Les cinq principaux facilitateurs SOA sont le modèle d’entreprise, l’optimisation de la performance de l’entreprise, la Rationalisation du portefeuille, la définition de la sémantique de l’entreprise et les indicateurs de performance clés. Avoir un modèle d’affaires est important pour l’alignement correct des services avec les objectifs et les objectifs de l’entreprise. Le modèle d’information sémantique donne les informations commerciales communes et générales pour une entreprise donnée. Les indicateurs de performance clés ou KPI permettent d’évaluer l’impact des SOA et de faciliter la mesure des processus métier. D’autre part, la rationalisation du portefeuille rend possible la consolidation et la simplification des applications, des données et de l’infrastructure.
- Mise en œuvre de la SOA – En ce qui concerne la mise en œuvre, les services et les processus commerciaux sont les principaux aspects. Les processus opérationnels sont principalement associés aux buts et objectifs opérationnels des opérations, tandis que, d’un autre côté, les services opérationnels doivent être bien alignés et sont essentiels à la mise en œuvre flexible et réussie d’une SOA. Certains des autres aspects liés à l’implémentation de SOA sont les référentiels de contenu d’entreprise, la messagerie sémantique et les services d’intégration. Les informations représentent les ressources de données de l’entreprise, et ces données sont transmises sous la forme de documents qui fournissent une sorte de messages sémantiques entre les services et les processus.
- Support SOA – Toutes les fonctions et éléments des applications et systèmes existants sont mis à disposition et utilisables pour les services avec le support de certains services d’intégration qui décollent des couvertures des fonctions existantes via de nouvelles interfaces de service.
Les Grands principes de la SOA
Voici la liste des grands principes de la SOA:
- Architecture de service – La disposition physique ou la conception de services individuels qui dépassent toutes les ressources utilisées par un service.
- Architecture de composition de services – Tous les services développés à l’aide de méthodes de conception orientées services sont centrés sur la composition, et c’est leur principale caractéristique. Cette architecture est donc la composition d’architectures individuelles de divers services.
- Architecture d’inventaire des services – Cette architecture est formée à partir du plan d’inventaire des services où l’inventaire des services est composé de services qui automatisent les procédures des entreprises.
- Architecture d’entreprise orientée services – Ce type constitue des architectures de composition, de service ainsi que d’inventaire.
L’évolution du concept SOA
- Conception monolithique – Cette conception était liée à un codage procédural relativement non structuré
- Conception orientée objet et structure – C’est la conception qui implique des unités de programme basées sur des fonctionnalités.
- Conception client-serveur –conception à deux niveaux) – Il s’agit du concept de conception distribuée et est lié au regroupement des fonctionnalités en deux niveaux.
- Conception d’objets distribués –conception multitier) – Cette conception implique des interactions d’objets dans un environnement hétérogène et une conception d’objets distribués.
- Architecture de modèle d’objet composant – Il s’agit d’une conception dans laquelle il y a une agrégation d’éléments en parties logiques avec des types forts ainsi qu’une interface bien définie.
- Architecture orientée services – Il s’agit d’une conception qui implique des interactions et des communications entre des services grossiers avec des interfaces standard pour une interopérabilité flexible.
SOA et JAVA
De nombreux développeurs pensent que SOA, ainsi que les services Web, sont synonymes les uns des autres, mais ce n’est pas vrai. Ils peuvent également croire qu’il n’est tout simplement pas possible de créer une SOA sans utiliser de services Web, mais en réalité, la SOA est un principe de conception, mais les services Web sont une sorte de technologie d’implémentation. Cela signifie que la SOA peut en fait être construite sans utiliser une technologie de mise en œuvre d’un certain type. Mais Java est un autre type de technologie traditionnelle qui peut être utilisée pour développer ou construire une architecture orientée services.
L’objectif principal de SOA est de développer un couplage lâche entre les modules, et une application peut être construite où les modules ne sont pas trop couplés les uns aux autres. Ce type de structure peut être construit ou formé à l’aide de JAVA.
Quelles sont les caractéristiques de la SOA ?
- Connexion lâche – Les services dans SOA sont reliés ensemble de manière lâche pour former une seule connexion. Cela donne un présupposé au minimum de l’interdépendance entre chaque service. L’idée principale est de réduire l’interdépendance au niveau où la compatibilité est toujours maintenue.
- L’interface de services normalisée – Une exigence de base de la SOA est la nécessité de standardiser les interfaces ainsi que les détails. Les détails doivent inclure les données nécessaires, la manière dont un service peut être utilisé et la manière dont les règles doivent être appliquées.
- Réutilisabilité – Dans la SOA, la réutilisabilité des services est possible tout au long de la chaîne de processus par d’autres parties ainsi que pour d’autres types d’objectifs également.
- Trouvabilité d’un service – Une autre caractéristique est qu’un service doit être facilement trouvé pour pouvoir l’utiliser. Pour tous les consommateurs, des référentiels de services sont mis à disposition, et ces référentiels consistent en l’interface et la méthode de mise en œuvre du service.
- Autonomie de service – Chaque service doit pouvoir fonctionner et fonctionner de manière indépendante. Ce terme désigne les services autosuffisants et capables de gérer seuls les ressources, la logique et l’environnement.
- Capacité d’orchestration des services – Il s’agit d’un processus dans lequel un service individuel est combiné à d’autres services de ce type pour aboutir à des processus ou des unités métier plus importants. C’est une autre caractéristique ou exigence de la SOA.
- Apatridie des services – La prestation des services repose sur le concept selon lequel un service défini est rendu. Cela prend en compte la conservation des données, mais uniquement si l’exigence est spécifiée ou demandée en particulier.
Avantages et avantages de la SOA
- Meilleurs retours sur investissement – L’un des plus grands avantages de la SOA est qu’elle offre un excellent retour sur investissement. Puisque le processus implique la création de couches robustes, chacune de ces couches de service offre un meilleur retour sur investissement qui a été fait pour créer le logiciel.
- Mobilité du code – C’est un autre avantage important de la SOA et est possible car il existe une transparence de localisation dans une architecture orientée services. La plupart des clients ne se soucient pas de l’emplacement des services car il existe une liaison dynamique ainsi que la recherche de services. Cela signifie que les entreprises utilisant SOA peuvent déplacer des services vers différentes machines ou les transférer vers des fournisseurs de services externes.
- La réutilisabilité – Un autre avantage de la SOA est que les différents codes et services peuvent être utilisés encore et encore. Il y a la commodité de la réutilisation des services à l’exécution, et c’est aussi simple que de trouver un service dans le répertoire et de le lier. Les développeurs n’ont pas à se soucier des plates-formes et autres incompatibilités.
- Prise en charge de différents types de clients – Toute entreprise peut utiliser plusieurs types de clients et plusieurs clients pour accéder à un service dans SOA. En effet, dans une telle structure ou concept, les couches ont été divisées en service, et les couches client et les différents types de clients sont plus simples à mettre en œuvre.
- Un niveau de disponibilité plus élevé – Plusieurs serveurs ont plusieurs cas de services qui les utilisent en raison du fait que la SOA prend en charge la transparence de l’emplacement. Cela signifie que la disponibilité globale est très élevée. Par exemple, si une machine ou une partie d’un réseau cesse de fonctionner ou présente un problème, les demandes peuvent être redirigées vers d’autres services sans que le client le sache ou n’en soit dérangé.
- Moins de défauts – C’est un avantage majeur de SOA. La probabilité de défauts est beaucoup plus faible et le test global est beaucoup mieux grâce aux interfaces de services publiées qui peuvent être testées facilement. Plus de tests se traduit par un plus grand niveau de précision et moins de défauts.
Défis de la SOA
- Manque d’espace de test – L’un des plus grands défis de la SOA est le manque d’espace de test. Dans une architecture typique, il n’existe pas d’outils ou de méthodes bien formés ou sophistiqués pour tester un service sans tête tel qu’un service de message ou de base de données. L’objectif principal de SOA est d’offrir de l’agilité aux entreprises et aux entreprises. Mais en raison du manque de confiance horizontale, il faut investir dans un cadre de test qui faciliterait le défi.
- Gérer les métadonnées des services – C’est un défi commun et très évident de la SOA. La gestion des métadonnées des services n’est pas seulement difficile, mais souvent très compliquée. Un espace architectural basé sur les services implique des services interagissant les uns avec les autres en échangeant des messages. Dans un tel scénario, un seul service peut parfois générer des millions de messages. La gestion de ces nombreux services peut devenir très difficile, surtout lorsque les services sont fournis par différentes entreprises et départements au sein d’une entreprise. Cela crée de nombreux problèmes de confiance.
- Fournir des niveaux de sécurité adéquats – Un autre défi de la SOA consiste à fournir des niveaux de sécurité appropriés. La sécurité gérée par l’application n’est pas la méthode ou le modèle approprié pour sécuriser les services, car les modèles de sécurité conçus pour les applications ne peuvent pas suffire lorsque l’application se montre aux autres.
- Interopérabilité – Cela devient un aspect crucial des implémentations SOA. Souvent, dans la poursuite de la réduction ou de la diminution de l’interdépendance des services, la compatibilité entre eux peut diminuer, mais la dépendance doit être réduite à un niveau tel que la compatibilité puisse toujours être maintenue.
- Battage médiatique des fournisseurs – Il y a un battage médiatique important des fournisseurs lié à la SOA, ce qui crée un certain niveau d’attentes excessives. Bien qu’il existe de nombreux avantages de la SOA, elle peut également présenter plusieurs inconvénients. Par exemple, SOA ne garantit pas une réduction des coûts informatiques et ne promet même pas d’amélioration de l’agilité des systèmes. Ainsi, il vaudrait mieux qu’il y ait une distinction claire entre le battage médiatique et la réalité.
CONSTRUIRE UNE ARCHITECTURE ORIENTÉE SERVICES
Cadre SOA
Pour comprendre comment SOA est construit, vous devrez d’abord comprendre quel est son cadre.
SOA est considérée comme 5 couches horizontales différentes qui sont:
- Couche d’interface grand public – Ce sont les applications qui accèdent aux interfaces de service ou d’application.
- Couche de processus métier – Il s’agit d’une couche qui est un service qui représente les cas d’utilisation métier en ce qui concerne les applications.
- Services – De nombreux services sont regroupés pour créer toute une entreprise.
- Composants de service – Ce sont les composants ou pièces utilisés pour créer des services tels que des interfaces technologiques et des bibliothèques techniques, etc.
- Systèmes opérationnels – C’est la couche qui contient des modèles techniques, des modèles de données et un référentiel de données, etc.
Voici les couches verticales du cadre SOA qui sont appliquées et supportées par les couches horizontales:
- Couche d’intégration – Cette couche comprend le support de protocole ou l’intégration de plate-forme, l’intégration de données, l’intégration d’applications et de services, etc.
- Qualité du service – Les facteurs qui composent la qualité du service comprennent la disponibilité, la sécurité, la performance et autres.
- Informationnel – Cette couche sert principalement à fournir des informations commerciales.
- Gouvernance – Cette couche ou couche de stratégie informatique est régie par des couches horizontales afin d’atteindre la capacité, ainsi que le modèle d’exploitation, selon les besoins.
Cadre de mise en œuvre SOA (SOAIF)
La mise en œuvre SOA nécessite et nécessite des logiciels d’infrastructure en cours d’exécution ainsi que des outils. Cela peut être collectivement appelé cadre de mise en œuvre d’architecture orientée services ou SOAIF. Ce concept vise un cadre complet qui offre toutes sortes de technologies dont une entreprise peut avoir besoin non seulement pour construire mais aussi pour gérer une SOA. Un SOAIF comprend et inclut à la fois des fonctionnalités d’exécution et de conception. Il inclut également des fonctionnalités logicielles dont une entreprise peut avoir besoin pour exécuter une SOA et la créer, y compris orientées vers les services:
- Modélisation
- Intégration
- Outils
- Gestion
- Sécurité
- Processus
Approches de la SOA
Il existe trois grands types ou méthodes ou approches qui ont émergé pour l’information du club, disparates et systèmes dans une entreprise. Alors que différents fournisseurs de services et entreprises s’efforcent de fournir des solutions aux clients et aux consommateurs, ces approches aident à répondre aux exigences des services à gros grains, faiblement massés et asynchrones.
1. Le bus de service d’entreprise
La première approche qui aide à construire et à mettre en œuvre une SOA optimale est le bus de service d’entreprise ou ESB. Cette approche permet de coordonner et d’organiser les différents éléments qui se présentent sous la forme de services distribués sur un réseau. Cette approche considère les systèmes comme des services discrets et distribués qui se connectent les uns aux autres via une infrastructure orientée messages asynchrone. Ce type d’infrastructure orientée messages permet d’avoir des connexions faiblement couplées entre des services ou des modules indépendants.
2. Gestion des processus métier
Depuis de nombreuses années, de nombreuses entreprises tentent de résoudre les problèmes de processus métier par la mise en œuvre d’une approche de Gestion des processus métier. Cette approche prend en compte les actifs et les systèmes informatiques en tant qu’activités ou tâches participant à des procédures métier bien synchronisées et bien orchestrées. Les outils BPM sont principalement utilisés au moment de la modélisation et de la conception des procédures plutôt que de les utiliser pour construire des processus pouvant atteindre les objectifs d’intégration. C’est le principal défi du BPM. Les solutions BPM à elles seules sont suffisantes pour répondre aux exigences SOA car elles ne comprennent pas l’environnement d’exécution nécessaire pour les modules faiblement couplés.
3. Intégration orientée services
La troisième et dernière approche pour une mise en œuvre correcte de la SOA est l’approche d’intégration orientée services. Cette approche particulière utilise les règles ou principes directeurs architecturaux pour créer un environnement ou un écosystème de services que les entreprises peuvent combiner dynamiquement et créer des processus de niveau supérieur pouvant répondre à des exigences en constante évolution. Cette approche dépasse les modules étroitement couplés et fragiles en créant une distinction entre le consommateur et le producteur d’un service. Il impose ainsi l’aspect de couplage lâche nécessaire pour mettre en œuvre correctement la SOA pour répondre aux exigences métier. Même cette approche en elle-même n’est pas suffisante pour garantir des interactions de longue durée entre les services.
Les meilleures pratiques pour la construction d’une SOA
Lors de la construction d’une SOA, il faut suivre certaines des pratiques les meilleures et les plus avantageuses. Ces pratiques sont données comme suit:
- Les technologies de mise en œuvre sont très médiatisées, et il faut se rappeler de ne pas y sauter en raison de leur popularité. Il faut examiner attentivement si les services Web ont ou non plus de sens pour leurs exigences et leurs besoins. Il est important de se rappeler que la création d’applications orientées services en utilisant des technologies telles que la RMI peut être plus adaptée au cas d’une entreprise plutôt qu’aux services Web.
- Il faut se rappeler de ne pas créer ou construire des modules très étroitement liés ou couplés car cela conduit à une configuration ou une infrastructure fragile.
- Il est important de maintenir l’interopérabilité et pour cela, il faut suivre les meilleures pratiques du WS-I.
- Si vous ne voyez aucun sens à l’utilisation des services Web, il existe également de nombreuses autres options alternatives qui peuvent être choisies.