12.07.2015 Views

T H E S E - LIFL

T H E S E - LIFL

T H E S E - LIFL

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

18 Contexte logiciel spécifique à la thèsese produise (réception d’un message, alarme temporelle, etc.), scope définit unezone restreinte du workflow permettant la définition de variables, de fautes etde gestionnaires d’exception, et compensate permet d’invoquer un processus decompensation d’exception.Le listing 2.2 exhibe un exemple minimaliste de code BPEL déclarant deux partenaires(l’interface du composite et un service Web de météorologie), spécifiant deuxvariables et déclarant une activité composite de type sequence composée de trois sousactivités simples (receive, invoke et reply) dont le rôle est de recevoir le message duclient de la composition, de le transmettre au service météo, puis de renvoyer la réponseau client.< partnerLinks >< partnerLink myRole =" proxy " name =" proxyPLT " partnerLinkType =" proxyPLT "/>< partnerLink name =" Forecast " partnerLinkType =" ForecastLinkType "/>5 < variable messageType =" proxyRequest " name =" proxyRequest "/>< variable messageType =" proxyResponse " name =" proxyResponse "/>10 < receive createInstance =" yes " operation =" proxy " partnerLink =" proxyPLT "portType =" ProxyService " variable =" proxyRequest "/>< invoke inputVariable =" proxyRequest " operation =" invokeWF "outputVariable =" proxyResponse " partnerLink =" Forecast "15 portType =" invokeWFPT "/>Listing 2.2: Exemple de code BPEL2.2 Séparation des préoccupations2.2.1 PrincipesUne préoccupation correspond à un sous-ensemble d’un système logiciel rattachéà la prise en compte d’un concept, d’un objectif ou bien d’un sujet particulier. Parexemple, dans le cas d’un serveur Web, il existe des préoccupations liées à la gestiondes pages HTML ou à la gestion du protocole HTTP, ainsi que des préoccupationsliées à la gestion de la sécurité ou du logging. Un problème inhérent à la définition desystèmes logiciels est que les multiples préoccupations des systèmes ne peuvent êtrereprésentées sans être disséminées dans les différentes composantes de ces systèmes.Autrement dit, les préoccupations ne sont pas encapsulées de façon adéquate tant auniveau des modèles de conception que des langages de programmation. Or, ce sont enparticulier les interactions entre préoccupations qui sont responsables de la complexitédes systèmes logiciels. Dans le cas du serveur Web Apache, il est montré [KLM + 97]que le code implémentant la notion de session de connexion est disséminé dans unecinquantaine de classes différentes et ce malgré les mécanismes usuels de réutilisationtels que l’héritage. Le code obtenu est alors plus difficile à lire, à maintenir et à réutiliser,ce qui a également pour effet d’en réduire sa robustesse.La séparation des préoccupations (Separation of Concerns) [Dij82, HL95] est unprincipe fondamental du génie logiciel. Son objectif est de permettre la maîtrise de systèmeslogiciels complexes en adressant, de façon isolée, les diverses préoccupations quiles composent. Il s’agit pour cela que la structure des logiciels reflète le plus fidèlement

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!