Le moteur d’automatisation, l’ingénierie pilotée par les modèles

Le moteur d’automatisation, l’ingénierie pilotée par les modèles

Le style suivi pour les services Web qu’il produit est le style architectural, enrichi de certains modèles et concepts de conception. Il s’agit d’un style architectural logiciel pour le Web.

Chaque service Web (maison) ne comprend que des ressources (salles)
Chacune de ces ressources a une URI (adresse) unique à laquelle elle est accessible.
Chacun de ces URI est accessible avec les verbes HTTP courants. Contrairement à d’autres styles, les verbes HTTP sont utilisés de la manière prévue. Dans tous les cas, le verbe POST HTTP est utilisé pour créer une nouvelle ressource, le verbe GET est utilisé pour récupérer une ressource existante, PUT est utilisé pour mettre à jour une ressource existante et DELETE pour en supprimer une.
Les ressources sont interconnectées par des liens hypermédias.
Les liens hypermédias sont probablement la propriété qui différencie le plus des autres styles. Mais à quoi servent ces liens ? C’est à peu près la même chose avec les flèches de navigation dans un jeu vidéo d’aventure à l’ancienne.

Dans ce cas, peu importe où vous vous trouvez dans la maison (service Web), vous avez toujours le prochaines actions possibles. Cela signifie que vous n’avez pas besoin de les connaître a priori, ce qui augmente considérablement la flexibilité de l’interaction entre les services Web et les clients. Dans cet exemple, vous pouvez ouvrir n’importe laquelle des trois portes, suivre le couloir ou monter les escaliers. Cependant, vous devez absolument effectuer l’une de ces actions spécifiées ! Ainsi, vous ne pouvez pas vous tenir devant le tableau accroché au mur pour jeter un coup d’œil ! Autrement dit, s’il existe une porte de chambre à l’étage, vous ne pouvez pas l’ouvrir. Au lieu de cela, vous devez d’abord monter les escaliers en suivant le lien fourni, puis ouvrir la porte en utilisant le lien que vous être donné une fois que vous montez les escaliers.

De plus, le moteur intègre quelques modèles de conception supplémentaires. On peut les considérer comme des décorations supplémentaires dans chaque pièce autres que celles déjà introduites par le style victorien. Il est utilisé afin d’appliquer davantage la division pour régner ainsi que la séparation des principes de conception des préoccupations. De plus, le modèle de référentiel est utilisé pour offrir un moyen uniforme de stocker des éléments. C’est comme si chaque maison avait aussi un magasinier. De cette façon, chaque fois que quelqu’un vivant dans la maison veut stocker quelque chose dans l’entrepôt, il n’a pas besoin de savoir où le stocker (ou d’où le récupérer). Il le donne simplement au magasinier à la place.

Alors, comment se déroulerait une conversation entre un client des temps modernes, qui souhaite acheter un service de boutique en ligne, et un moteur MDE qui sait comment créer des services Web ? Le client dirait probablement au moteur ce que ce service (maison), qu’il veut acheter, devrait avoir. En particulier, il pourrait demander certaines ressources spécifiques (salles), comme les comptes d’utilisateurs, les profils d’utilisateurs, l’inventaire des produits, la possibilité de payer avec des cartes de crédit, de rechercher dans la base de données des produits ou même d’activer les notifications par e-mail. De plus, il demanderait probablement que certaines propriétés soient ajoutées à ces ressources. Par exemple, il peut demander que le profil de l’utilisateur contienne un espace réservé au texte où l’utilisateur peut écrire une description de lui-même. De plus, les comptes utilisateurs doivent avoir un nom d’utilisateur, un mot de passe et un email. Enfin, l’inventaire des produits doit avoir un prix et une description textuelle pour chaque produit. Une fois que le client a spécifié ses besoins au moteur, le web service e-shop est formulé.

Il convient de rappeler à ce stade que, comme dans le cas des maisons victoriennes, rien de ce qui a à voir avec l’architecture logicielle, les modèles de conception ou même les langages de programmation et les frameworks Web n’est encore discuté. À cette étape initiale traversée, seuls les concepts du domaine des services Web sont examinés, comme les ressources, leurs relations et/ou certaines propriétés de celles-ci.