Service Oriented Computing (SOC)
Le Service Oriented Computing (SOC) ou lโinformatique orientรฉe services est un nouveau paradigme informatique qui utilise les services comme รฉlรฉments fondamentaux pour le dรฉveloppement d’applications d’entreprises rapides, รฉconomiques et faciles ร intรฉgrer (Preist, 2004). L’un des principaux objectifs de SOC est de permettre le dรฉveloppement des rรฉseaux d’applications intรฉgrรฉes et collaboratives, indรฉpendamment des plateformes et des langages de programmation utilisรฉs pour les dรฉvelopper. Dans ce paradigme, les services sont autonomes, auto-descriptifs et indรฉpendants des plateformes, fournissant un accรจs uniforme et omniprรฉsent ร l’information pour une large gamme de dispositifs informatiques, tels que les ordinateurs de bureau, les assistants personnels numรฉriques (PDA) et les tรฉlรฉphones cellulaires. Tout morceau de code et tout composant dโapplication dรฉployรฉ sur un systรจme peut รชtre rรฉutilisรฉ et transformรฉ en un service disponible sur le rรฉseau. Ces services peuvent alors รชtre facilement dรฉcrits, publiรฉs, dรฉcouverts et assemblรฉs dynamiquement pour dรฉvelopper des systรจmes distribuรฉs et interopรฉrables.
Services Web
La notion de service est sรฉmantiquement surchargรฉe. Diffรฉrentes communautรฉs ont une comprรฉhension diffรฉrente de ce qu’est un service (Preist, 2004). Par exemple, dans le milieu des affaires, un service est considรฉrรฉ comme une activitรฉ commerciale qui entraรฎne souvent des rรฉsultats ou des avantages intangibles (Baida et al., 2004), tandis quโen informatique, les termes service et service Web sont souvent considรฉrรฉs comme interchangeables pour nommer une entitรฉ logiciel accessible sur Internet. Dans le cadre de cette thรจse nous ne faisons aucune distinction entre les deux concepts.
Dรฉfinition des services Web
Dรฉfinition 3.1.1 :
Un service Web est une entitรฉ logicielle sans รฉtat, modulaire, autonome et disponible, sous un format standard, sur Internet ou dans un intranet qui s’exรฉcute ร distance sur le site du fournisseur (Huhns & Singh, 2005).
Dรฉfinition 3.1.2 :
Les services Web comme toutes autres technologies de middleware ; vise ร fournir des mรฉcanismes pour relier des plateformes hรฉtรฉrogรจnes, permettant aux donnรฉes de circuler ร travers diffรฉrents programmes (Staab et al., 2003).
Dรฉfinition 3.1.3 :
Selon le World Wide Web Consortium (W3C), les services Web sont identifiรฉs par un URI (Uniform Resource Identifier), leurs interfaces sont dรฉfinies dans WSDL (Web Service Description Language), publiรฉ dans le registre UDDI (Universal Description, Discovery and Integration), les services peuvent รชtre dรฉcouverts et invoquรฉs par d’autres systรจmes logiciels. Ces systรจmes interagissent avec les services Web en utilisant des messages XML vรฉhiculรฉs par le protocole SOAP (Simple Object Access Protocol) (Booth et al., 2004).
La technologie des services Web vise donc ร standardiser la prรฉsentation des services offerts par une entreprise et ร rendre leur accรจs transparent ร tout type de plateformes, ร travers un certain nombre de normes d’interopรฉrabilitรฉ.
Architecture orientรฉe services (SOA)
Le paradigme de lโinformatique orientรฉe service (SOC) peut รชtre mis en ลuvre abstraitement par l’architecture du systรจme appelรฉe architecture orientรฉe service (SOA) [(Bajaj et al., 2006), (Bellwood, 2002)]. Le but de cette architecture est de rรฉpondre aux exigences de couplage faible, standards, et le calcul distribuรฉ indรฉpendant des protocoles, en mappant les systรจmes dโinformation des entreprises dโune maniรจre isomorphique au flux global des processus mรฉtiers (Stollberg et al., 2004). Cette tentative est considรฉrรฉe comme le dernier dรฉveloppement d’une longue sรฉrie d’avancรฉes en gรฉnie logiciel traitant de la rรฉutilisation de composants logiciels. Historiquement, la premiรจre รฉtape majeure de cette รฉvolution a รฉtรฉ le dรฉveloppement du concept ยซย fonctionย ยป. En utilisant des fonctions, un programme est dรฉcomposรฉ en sous-programmes plus petits et le code d’รฉcriture est axรฉ sur l’idรฉe de l’interface de programmation d’application (API). Une API, pratiquement, reprรฉsente le contrat auquel un composant logiciel doit s’engager. La deuxiรจme รฉtape majeure a รฉtรฉ le dรฉveloppement du concept ยซย objetย ยป. Un objet est un bloc de construction de base qui contient ร la fois des donnรฉes et des fonctions dans une seule unitรฉ encapsulรฉe. Avec le paradigme orientรฉ objet, les notions de classes, d’hรฉritage et de polymorphisme sont introduites. De cette faรงon, les classes peuvent รชtre considรฉrรฉes comme un treillis. Le concept ยซย serviceย ยป devient la prochaine รฉtape d’รฉvolution introduite avec l’avรจnement du SOC et de sa mise en ลuvre SOA. Selon le groupe de travail du World Wide Web Consortium (W3C), la SOA est dรฉfinie comme suit :
Dรฉfinition 3.2.1 :
L’architecture orientรฉe services est un paradigme pour l’organisation et l’utilisation de capacitรฉs distribuรฉes qui peuvent รชtre sous le contrรดle de diffรฉrents domaines de propriรฉtรฉs. Il fournit un moyen uniforme d’offrir, de dรฉcouvrir, d’interagir et d’utiliser des capacitรฉs pour produire les effets souhaitรฉs compatibles avec des conditions prรฉalables et des attentes mesurables (Booth et al., 2004). Une dรฉfinition plus rรฉcente de SOA donnรฉe par Erl est la suivante:
Dรฉfinition 3.2.2 :
L’architecture orientรฉe services est une forme d’architecture technologique qui adhรจre aux principes de l’orientation service. Une fois rรฉalisรฉe ร travers la plate forme technologique de services Web, SOA รฉtablit le potentiel de soutenir et de promouvoir ces derniers dans les processus mรฉtiers et les domaines d’automatisation d’une entreprise (Erl, 2016).
La vue logique fondamentale des services dans SOA est basรฉe sur la sรฉparation de la description du service (frรฉquemment appelรฉe interface) et son implรฉmentation (Stollberg et al., 2004). Une interface de service dรฉfinit l’identitรฉ de celui-ci et sa logistique d’invocation. Une implรฉmentation de service, implรฉmente les opรฉrations internes que le service est sensรฉ rรฉaliser. Basรฉ sur cette sรฉparation, les fournisseurs de services et les consommateurs de services sont faiblement couplรฉs. De plus, les services peuvent รชtre significativement rรฉutilisรฉs et adaptรฉs ร certaines exigences. Etant donnรฉ que les interfaces de service sont indรฉpendantes de la plate-forme et que l’implรฉmentation est transparente pour les consommateurs de services, un client depuis n’importe quel pรฉriphรฉrique de communication utilisant une plate-forme de calcul, un systรจme d’exploitation et un langage de programmation devrait รชtre capable d’utiliser le service. Les deux facettes du service sont distinctes; elles sont conรงues et maintenues comme des รฉlรฉments distincts, bien que leur existence soit รฉtroitement liรฉe. Basรฉ sur l’autonomie de service et la sรฉparation nette des interfaces de service de l’implรฉmentation interne, SOA fournit une architecture plus flexible qui unifie les processus mรฉtier en modulant de grandes applications en services. En outre, des applications ร l’รฉchelle de l’entreprise ou mรชme interentreprises peuvent รชtre rรฉalisรฉes au moyen du dรฉveloppement, l’intรฉgration et l’adaptation des services.
Propriรฉtรฉs dโun service Web
Selon Dumas et Fauvet trois types de propriรฉtรฉs peuvent รชtre identifiรฉs pour les services Web ; Ils peuvent รชtre briรจvement dรฉfinis comme suit:
Propriรฉtรฉs fonctionnelles
La description fonctionnelle contient la spรฉcification formelle de ce qu’un service peut faire. WSDL (Web Services Description Language), dรฉtaillรฉ plus loin (paragraphe 3.4.1), est un langage de la famille XML permettant de dรฉcrire les types de donnรฉes supportรฉs et les fonctions offertes par un service Web. Lโobjectif est de fournir la description, en XML, des services indรฉpendamment de la plate-forme et du langage utilisรฉs et sous une forme que des personnes ou des programmes peuvent interprรฉter.
Propriรฉtรฉs comportementales
La portรฉe de WSDL est limitรฉe ร la description des types de donnรฉes incluses dans les messages quโun service est capable de recevoir ou dโรฉmettre. Dans de nombreuses applications, ces descriptions uniquement structurelles nโoffrent pas assez dโinformation sur les contraintes rรฉgissant les interactions dans lesquelles un service peut ou est censรฉ sโengager. Dans certains cas, ces contraintes sont assez simples, comme par exemple : ยซย le fournisseur nโenvoie le bordereau de livraison quโaprรจs avoir reรงu la confirmation du paiementย ยป. Parfois, ces contraintes sont relativement complexes. Un fournisseur reรงoit un ยซย Bon de Commandeย ยป de la part dโun client, il doit rรฉpondre avec ยซย un Rรฉcรฉpissรฉ de Bon de Commandeย ยป. Par la suite, le fournisseur enverra zรฉro, une ou plusieurs ยซย Rรฉponsesย ยป au client jusquโร avoir donnรฉ une rรฉponse (une acceptation ou un rejet) pour chacune des lignes de Commande. Au cours de ce processus, le fournisseur peut recevoir une ยซย Annulationย ยป de la part du client, dans ce dernier cas, le fournisseur rรฉpond avec un ยซย Rรฉcรฉpissรฉ dโAnnulation de Bon de commandeย ยป. Dรจs lors, le fournisseur ne doit plus envoyer de ยซย Rรฉponsesย ยป au client.
Propriรฉtรฉs non fonctionnelles
Les descriptions non fonctionnelles capturent les contraintes sur les deux types prรฉcรฉdents de propriรฉtรฉs (Chung, 1991). Les services Web รฉtant gรฉnรฉralement dรฉveloppรฉs par des รฉquipes indรฉpendantes, ont besoin dโรชtre dรฉcrits de faรงon prรฉcise selon des conventions standards, et de telle maniรจre que leurs descriptions puissent รชtre utilisรฉes au maximum pour automatiser le processus de dรฉveloppement et de dรฉploiement des futurs services devant interagir avec un service existant. WSDL permet de dรฉcrire les opรฉrations fournies par un service Web, les types de donnรฉes des messages devant รชtre รฉchangรฉs pour invoquer ces opรฉrations, et les dรฉpendances comportementales entre ces opรฉrations. Cependant, ils ne permettent pas de dรฉcrire des aspects non-fonctionnels des services tels que leur capacitรฉ ร garantir une certaine qualitรฉ de service par rapport ร des prรฉoccupations telles que la sรฉcuritรฉ, la fiabilitรฉ, la journalisation des accรจs ou la gestion de transactions.
Considรฉrant lโexemple du bon de commande prรฉsentรฉ ci-dessus, en invoquant sa fonctionnalitรฉ (payement) peut รชtre contraint en utilisant une connexion sรฉcurisรฉe (sรฉcuritรฉ comme propriรฉtรฉ non fonctionnelle) ou en effectuant rรฉellement l’invocation des services ร un certain moment (disponibilitรฉ temporelle comme propriรฉtรฉ non fonctionnelle).
|
Table des matiรจres
Introduction gรฉnรฉrale
1. Contexte
2. Problรฉmatique et objectifs
3. Motivations
3.1 Scรฉnario 1
3.2 Scรฉnario 2
4. Contributions
5. Plan de la thรจse
Chapitre 1 : Vue dโensemble des technologies clรฉs
1. Introduction
2. Service Oriented Computing (SOC)
3. Service Web
3.1 Dรฉfinition des services Web
3.2 Architecture des services Web (SOA)
3.3 Propriรฉtรฉs dโun services Web
3.2.1 Propriรฉtรฉs fonctionnelles
3.2.2 Propriรฉtรฉs comportementales
3.2.3 Propriรฉtรฉs non fonctionnelles
3.4 Technologies des services Web
3.4.1 Langage de description des services Web (WSDL)
3.4.2 Protocole dโaccรฉs aux objets simples (SOAP)
3.4.2.1 Structure dโun message SOAP
3.4.2.2 Mode de traitement
3.4.2.3 Protocole de liaison
3.4.2.4 Avantages et incovรฉnients de lโutilisation de SOAP
3.4.3 Description universelle, protocole de dรฉcouverte et dโintegrรฉtation (UDDI)
3.5 Caractรฉristiques des services Web
3.6 Types de services Web
3.7Avantages de lโutilisation des services Web
4. Paramรจtres de qualitรฉ de services (QoS)
5. Personnalisation des services Web
6. Rรฉseaux sociaux sur le Web
7. Systรจmes de recommandation et filtrage collaboratif
8. Conclusion
Chapitre 2 : Sรฉlection des services Web
1. Introduction
2. Dรฉfintion
3. Sรฉlection des services Web sociaux
3.1 Approches basรฉes sur la rรฉputation
3.2 Approches basรฉes sur la recommandation
3.3 Approches basรฉes sur le renvoi
4. Sรฉlection des services Web et dรฉfis des approches basรฉes sur la recommandadtion
4.1 Problรจme de dรฉmarrage ร froid
4.2 Problรจme de confidentialitรฉ
4.3 Evolutivitรฉ
4.4 Capture des prรฉfรฉrences et des รฉvaluations des utilisateurs
5. Etude comparative des diffรฉrentes approches de sรฉlection des services Web sociaux
6. Conlusion
Chapitre 3 : Composition des services Web
1. Introduction
2. Modรจles de composition des services Web
2.1 Orchestration
2.2 Chorรฉgraphie
2.3 Coordination
2.4 Modรจle de composant
3. Exigences de la composition des services Web
3.1 Automatisation
3.2 Dynamicitรฉ
3.3 Qualitรฉ de service (QoS)
3.4 Evolutivitรฉ
3.5 Prรฉfรฉrences des utilisateurs
3.6 Indรฉpendance au domaine
4. Diffรฉrentes approches de composition automatique des services Web
4.1 Approches orientรฉes Workflow
4.2 Approches basรฉes sur les modรจles
4.3 Approches mathรฉmatiques
4.4 Approches orientรฉes intelligence artificielle
4.5 Approches basรฉes sur la recommandation
5. Discussion
6. Conclusion
Chapitre 4 : Intรฉgration flexible des services Web: une nouvelle approche sociale personnalisรฉe
1. Introduction
2. Architecture proposรฉe pour la composition des services Web sociaux personnalisรฉs
3. Communautรฉs de services Web
4. Construction du rรฉseau social de services Web
4.1 Paramรจtres qualitรฉ de services (QoS) considรฉrรฉs
4.2 Fonction objective
4.3 Associations de collaboration pour la composition
4.4 Associations de collaboration pour la substitution
4.5 Associations de recommandation pour la compostion
5. Sรฉlection des services Web atomiques pour la composition
6. Composition des services Web sociaux personnalisรฉs
6.1 Construction des prรฉfรฉrences utilisateur
6.1.1 Attributs statiques
6.1.2 Attributs acquis
6.2 Algorithme pour la composition des services Web sociaux personnnalisรฉs
7. Tolรฉrances aux pannes dans le cadre de lโapproche proposรฉe
6.1 Associations de recommandation pour la substitution
6.2 Algorithme de sรฉlection des services Web pour la substitution
8. Implรฉmentation et รฉvaluation
8.1 Approche de composition des services Web personnalisรฉs
8.2 Algorithme de sรฉlection des services Web pour la substitution
9. Conclusion
Conclusion gรฉnรฉrale