0% ont trouvé ce document utile (0 vote)
41 vues18 pages

Introduction SOA

Le document présente les concepts fondamentaux de l'Architecture Orientée Services (SOA) et des services web, en expliquant l'importance de l'intégration des technologies hétérogènes dans les systèmes d'information des entreprises. Il décrit les différents paradigmes de développement logiciel, tels que procédural, objet, composant et SOA, ainsi que les caractéristiques des services, leur orchestration et les types de services disponibles. Enfin, il souligne la nécessité d'une communication fluide entre les services pour garantir l'efficacité des processus métier.

Transféré par

nawrashassine280
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Thèmes abordés

  • Évolutivité,
  • Types de services,
  • Comptabilité,
  • Déploiement,
  • Développement logiciel,
  • Technologies hétérogènes,
  • Couplage faible,
  • Systèmes d'information,
  • API,
  • Architecture SOA
0% ont trouvé ce document utile (0 vote)
41 vues18 pages

Introduction SOA

Le document présente les concepts fondamentaux de l'Architecture Orientée Services (SOA) et des services web, en expliquant l'importance de l'intégration des technologies hétérogènes dans les systèmes d'information des entreprises. Il décrit les différents paradigmes de développement logiciel, tels que procédural, objet, composant et SOA, ainsi que les caractéristiques des services, leur orchestration et les types de services disponibles. Enfin, il souligne la nécessité d'une communication fluide entre les services pour garantir l'efficacité des processus métier.

Transféré par

nawrashassine280
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Thèmes abordés

  • Évolutivité,
  • Types de services,
  • Comptabilité,
  • Déploiement,
  • Développement logiciel,
  • Technologies hétérogènes,
  • Couplage faible,
  • Systèmes d'information,
  • API,
  • Architecture SOA

Faculté des Sciences Gabès

Support de Cours

Architecture SOA et services web

Ensigné par:

Dr: MAHJOUB Chahira

Année Universitaire : 2024-2025


1
Chapitre 1: Concept service

 Introduction
 Un service
 Relation entre service et orchestration
 Types de services

2
Introduction

 Un système d’information en entreprise est composé :


- Des nombreuses technologies différentes;
- Des spécificités liées aux contraintes de moments,
- Des interfaces avec d’autres applications

1. Des nombreuses technologies différentes :

Les entreprises s’appuient sur une multitude de technologies pour gérer leurs processus
métier, leurs données et leurs communications. Ces technologies sont souvent hétérogènes et
spécialisées, ce qui signifie qu’elles remplissent des fonctions distinctes mais doivent travailler
ensemble pour assurer un système d’information cohérent et efficace.

3
1. Des nombreuses technologies différentes:

Par exemple :

• Bases de données (comme MySQL, Oracle) pour stocker et organiser les données.
• Serveurs (physiques ou virtuels) pour héberger les applications et les services.
• Logiciels de gestion tels que les ERP (Enterprise Resource Planning) pour la gestion intégrée des
ressources et les CRM (Customer Relationship Management) pour la relation client.
• Outils de communication (comme Microsoft Teams, Slack) pour faciliter la collaboration interne et
externe.
• Solutions cloud (comme AWS, Microsoft Azure) pour offrir une infrastructure accessible à distance.

Cependant, la coexistence de ces technologies pose un défi majeur : elles doivent interagir de manière
fluide pour éviter les silos d'information (Isolats de données) et garantir une circulation efficace des
données. Par exemple, un CRM doit pouvoir échanger des informations avec un ERP pour synchroniser
les données clients et les commandes.
Cette complexité technologique est l’une des raisons pour lesquelles des architectures comme la SOA
(Architecture Orientée Services) sont essentielles : elles permettent d’intégrer et de faire collaborer ces
technologies disparates (Hétérogènes) de manière modulaire et flexible.

4
Services Métier (ou Processus Métier) :

Les services métier représentent les activités clés qu’une entreprise exécute pour atteindre ses
objectifs. Ils sont au cœur du fonctionnement de l’entreprise et peuvent être vus comme des
ensembles de tâches ou d’opérations qui créent de la valeur pour l’entreprise et ses clients.

Exemples de services métier :

Gestion des commandes : Traitement des commandes clients, de la réception à la livraison.


Gestion des stocks : Suivi des niveaux de stock, réapprovisionnement, gestion des entrepôts.
Gestion de la relation client (CRM) : Suivi des interactions avec les clients, gestion des ventes et
du service client.
Gestion des ressources humaines : Recrutement, paie, formation des employés.
Comptabilité et finance : Gestion des factures, des paiements, des budgets et des rapports
financiers.
Ces services métier sont souvent automatisés ou supportés par des logiciels spécialisés (comme
les ERP ou CRM) pour améliorer l’efficacité et la précision.

5
Introduction
2. Des spécificités liées aux contraintes de moments :
Les systèmes d’information doivent s’adapter aux contraintes temporelles spécifiques à chaque
entreprise. Par exemple, certaines industries fonctionnent en temps réel (comme la finance ou la
logistique), tandis que d’autres peuvent tolérer des délais plus longs. Les contraintes de moments
peuvent aussi inclure des périodes de pointe ou Pics d’activité
(comme les soldes pour le commerce électronique) où le système doit être capable de gérer une charge
de travail augmentée.

3. Des interfaces avec d’autres applications :

Les systèmes d’information ne fonctionnent pas de manière isolée. Ils doivent souvent interagir avec
d’autres applications internes ou externes à l’entreprise. Par exemple, un système de gestion des stocks
peut avoir besoin de communiquer avec un système de vente en ligne ou avec les applications des
fournisseurs. Ces interfaces sont cruciales pour assurer la cohérence et l’efficacité des processus métier.
6
Introduction

 Conception d’un programme informatique: suit un paradigme de développement.


 Paradigme de développement :concept pour représenter le monde + des techniques pour
traiter ce concept

Procédural Composants
• 0001100 • Classe • Groupes d’interfaces • SOA
• 0100111 • Fonctions • Encapsulation • Interaction •…
• Modularité • Héritage d’applications
Binaire Objet • .. Service

7
Introduction
1. Paradigme Binaire :

Description :
Ce paradigme est à la base de tout développement informatique, représentant les données et les
instructions sous forme de codes binaires (comme 0001100 et 0100111).
Langages : Assembleur (ASM), Langage machine.
Détails : Ces langages travaillent directement avec le code binaire et sont très proches du matériel.
Avantages :
Performance maximale : Le code est exécuté directement par le processeur sans couches
intermédiaires.
Contrôle total : Les développeurs ont un accès direct au matériel.
Limites :
Complexité : Écrire et maintenir du code en binaire ou en assembleur est extrêmement difficile et
chronophage.
Portabilité : Le code est spécifique à une architecture matérielle.
Transition vers le paradigme procédural :
Pour simplifier le développement, les langages procéduraux (comme le C) ont été créés. Ils
permettent d'écrire du code plus lisible et portable tout en gardant un bon contrôle sur le matériel.
8
Introduction
2. Paradigme Procédural :

Description :
Ce paradigme se concentre sur l’exécution séquentielle d’instructions et l’utilisation de fonctions pour
structurer le code.
Langages : C, Pascal, Fortran.
Détails : Il organise le code en blocs réutilisables appelés fonctions et encourage la modularité.

Avantages :
Lisibilité : Le code est plus facile à comprendre et à maintenir grâce aux fonctions.
Modularité : Les fonctions peuvent être réutilisées dans différents programmes.

Limites :
Gestion de la complexité : Pour les grands projets, le code peut devenir difficile à organiser.
Réutilisabilité limitée : Les fonctions sont souvent spécifiques à un programme.

Transition vers le paradigme objet :


Pour mieux gérer la complexité et améliorer la réutilisabilité, le paradigme objet a été introduit. Il
permet de modéliser des entités réelles sous forme d’objets.
9
Introduction
3. Paradigme Objet:

Description :Ce paradigme repose sur les concepts de classe, d’encapsulation et d’héritage,
favorisant une organisation du code autour d’objets et de leurs interactions.
Langages: Java, C++, Python, Ruby.
Détails : Il permet une modélisation plus proche des entités réelles grâce aux objets
Avantages :
Modélisation intuitive : Les objets représentent des concepts du monde réel (exemple : une classe
Voiture avec des attributs comme couleur et des méthodes comme démarrer()).
Réutilisabilité : L’héritage permet de créer de nouvelles classes à partir de classes existantes.
Maintenabilité : L’encapsulation protège les données et simplifie les modifications.

Limites :
Courbe d'apprentissage : Les concepts comme l'héritage et le polymorphisme peuvent être difficiles à
maîtriser.
Performance : L’abstraction ajoute une légère surcharge par rapport au code procédural.
Transition vers le paradigme composant:
Pour répondre à des besoins plus complexes, comme l’intégration de systèmes hétérogènes, le
paradigme composant a émergé.
10
Introduction
4. Paradigme Composant :

Description :Ce paradigme consiste à regrouper des interfaces et à gérer les interactions entre
différentes applications pour créer des systèmes modulaires.
Langages : C#, Java (avec des frameworks comme JavaBeans), Component Pascal.
Détails : Ces langages et frameworks permettent de créer des composants logiciels réutilisables qui
encapsulent des fonctionnalités spécifiques.

Avantages :
Réutilisabilité : Les composants peuvent être utilisés dans plusieurs projets.
Modularité : Les systèmes sont construits en assemblant des composants indépendants.
Maintenabilité : Les composants peuvent être mis à jour ou remplacés sans affecter l'ensemble du
système.

Exemples concrets :

• JavaBeans : Un framework Java pour créer des composants réutilisables.

• .NET Components : Des composants logiciels utilisés dans l'écosystème Microsoft


11
Introduction
4. Paradigme Composant :

Limites :
Complexité de conception : La création de composants bien définis et interopérables nécessite une
planification rigoureuse.
Dépendances : Les composants peuvent dépendre d'autres composants, ce qui peut introduire des
risques d'instabilité.

Transition vers le paradigme SOA :


Pour intégrer des systèmes hétérogènes et faciliter l’interopérabilité, le paradigme SOA (Architecture
Orientée Services) a été développé.

12
Introduction
5. Paradigme SOA (Architecture Orientée Services):

Description :Ce paradigme organise les systèmes en services indépendants et interopérables,


communiquant via des interfaces standardisées.
Langages : Web Services (SOAP, REST), API.
Détails : Il permet une intégration flexible et modulaire des systèmes.

Avantages :

Interopérabilité : Les services peuvent être utilisés par différents systèmes, même s’ils sont écrits
dans des langages différents.
Réutilisabilité : Les services peuvent être réutilisés dans plusieurs applications.
Évolutivité : Les services peuvent être mis à jour ou remplacés indépendamment..

Limites :

Complexité de mise en œuvre : La conception et la gestion des services nécessitent une expertise.
Performance : La communication entre services peut introduire une latence
13
Introduction

Services indépendants et interopérables ???

Dans une architecture orientée services (SOA), les services sont conçus pour être :
Indépendants : Chaque service est autonome, avec une fonctionnalité spécifique, et peut être
développé, déployé et géré séparément.

Interopérables : Ils peuvent communiquer et fonctionner ensemble de manière fluide, même s’ils
utilisent des technologies différentes, grâce à des standards communs (comme les API REST ou les
web services).

14
Un service
🠶 Service: est une brique logicielle dont les fonctionnalités, les propriétés non fonctionnelles et
les conditions d’utilisation sont définies de manière déclarative par un descripteur de service. Il se
caractérise par les éléments suivants :
1. Composant logiciel :
• Exécute une action pour le compte d’un client.
• Mutualisé (partagé, réutilisable et interopérable).
• Référencé dans un annuaire où il est identifié.
2. Normalisation :
• Toutes ses fonctions sont appelées de la même manière via des paramètres, conformément à
un contrat de service.
• Décrit par une interface d’appel (utilisant un langage indépendant des technologies).
3. Communication :
• Communique avec le client par échange de messages (entrées/sorties).
4. Neutralité :
• Son utilisation est indépendante de son implémentation ou de son évolution, tant que le contrat est
respecté.
5. Couplage faible :
• L’interface isole le client du service, permettant une grande flexibilité.
6. Déploiement :
• Déployé physiquement sur un serveur
15
Relation entre service et orchestration
 Les services peuvent être agrégés (composés) pour réaliser un processus métier complexe.
Cela permet de combiner plusieurs services simples en une fonctionnalité plus riche et adaptée à un
besoin spécifique.
 L’orchestration permet aux services de communiquer et de collaborer sans avoir besoin de se
connaître directement, préservant ainsi leur couplage lâche (indépendance).
 Un moteur d’orchestration (ou orchestrateur) est responsable d’appeler les services dans l’ordre
requis et de gérer les échanges de données entre eux.
Orchestration de Services
Composition de Services
Service
1 Service
Service Service
1 2
1 2
Service
2
5
Moteur Service
orchestration 3 3
Service Service
4 3 4 Service
4 16
Types de services

 Applicatif

 Fonctionnel : Logique métier spécifique.

 Entité (CRUD) : Gestion des données (Create, Read,


Update, Delete).

 Transverse (Infrastructure) : Fonctionnalités


transverses (sécurité, logs, etc.).

 Host : Hébergement et gestion des environnements


d’exécution

17
Séance prochaine, …

18

Common questions

Alimenté par l’IA

Service descriptors in SOA are critical as they define the functionalities, non-functional properties, and usage conditions of a service declaratively. These descriptors specify how services can be accessed, the service contract, and its input/output parameters, fostering interoperability and standardization . By providing a clear interface description, service descriptors facilitate the integration and coordination of services across different platforms, maintaining the low coupling architecture typical of SOA .

The binary paradigm offers maximum performance because code is executed directly by the processor without intermediary layers, offering developers granular control over hardware . However, this comes at the cost of increased complexity; writing and maintaining binary or assembly code is time-consuming and error-prone due to its low-level nature. In contrast, higher-level paradigms (e.g., procedural, object-oriented) provide better abstraction and ease of use, trading off some level of performance for greater development efficiency and code portability .

In SOA, services are categorized into various types each serving a different role: Applicative services that handle application-specific logic; Functional services that encapsulate business-specific logic; Entity services that perform CRUD operations for data management; Transverse services that offer cross-cutting functionalities like security and logging; and Host services responsible for hosting and managing execution environments .

Temporal constraints significantly impact information systems, varying across industries. For instance, real-time industries like finance and logistics require information systems that can handle instant data processing and communication to maintain operational efficiency . To adapt, these systems must support high performance and quick responsiveness, especially during peak periods such as sales events in e-commerce. This requires scalable infrastructure and robust system architecture to manage workloads and ensure data integrity during high demand periods .

Service Oriented Architectures (SOA) facilitate integration by allowing services developed in different technologies and languages to communicate and interact through standardized interfaces like APIs and web services (SOAP, REST). This modular and flexible approach helps enterprises integrate diverse systems into a cohesive information system .

Deploying a component-based paradigm in software development enhances reusability, as components can be reused across different projects, and supports maintainability, as components can be updated or replaced without affecting the entire system . This paradigm inherently supports modularity, allowing independent development and testing of components, which simplifies maintenance and reduces the risk of system instability .

In SOA, loose coupling allows services to be independent and modifies them without affecting others, crucial for flexibility and scalability . High cohesion within each service ensures that the functionalities are strongly related and focused, simplifying service maintenance and enhancing reusability. Balanced coupling and cohesion enable SOA frameworks to efficiently support dynamic business processes while allowing components to evolve independently .

Transitioning from a procedural to an object-oriented paradigm is driven by the need to manage complexity and enhance code reusability and organization. Object-oriented programming (OOP) models real-world entities as objects, making code more intuitive and aligned with real-world scenarios . OOP offers advantages like encapsulation for data protection, inheritance for creating hierarchical class structures, and polymorphism for interfacing with different functionalities through a unified interface. This shift allows for more robust software design and easier maintenance .

Implementing a Service Oriented Architecture (SOA) in a corporate information system involves challenges such as complexity of implementation and performance issues due to potential latency in inter-service communication . However, it offers significant advantages including interoperability, where services can function across different systems and languages, and reusability, as services can be utilized in multiple applications. SOA also allows for scalability since services can be updated or replaced independently .

Orchestration in SOA is significant because it enables the composition of individual services into a complex business process without sacrificing their independence. An orchestration engine coordinates the calling order and data exchange between services, ensuring that they operate smoothly without direct dependencies on each other . This preserves service independence by maintaining loose coupling among them, allowing each service to be managed or updated independently as long as the interfaces remain consistent .

Vous aimerez peut-être aussi