<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Aeon Consulting : Together, let&#039;s cross the sky &#187; ESB</title>
	<atom:link href="http://www.aeon-consulting.fr/fr/blog/tag/esb/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.aeon-consulting.fr</link>
	<description></description>
	<lastBuildDate>Fri, 30 Apr 2010 00:32:05 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>fr</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SOA et la notion de contrat de service</title>
		<link>http://www.aeon-consulting.fr/fr/blog/2010/01/16/soa-et-la-notion-de-contrat-de-service/</link>
		<comments>http://www.aeon-consulting.fr/fr/blog/2010/01/16/soa-et-la-notion-de-contrat-de-service/#comments</comments>
		<pubDate>Sat, 16 Jan 2010 00:23:39 +0000</pubDate>
		<dc:creator>François Goldgewicht</dc:creator>
				<category><![CDATA[Carnets de Vol IT]]></category>
		<category><![CDATA[BPM]]></category>
		<category><![CDATA[ESB]]></category>
		<category><![CDATA[SOA]]></category>

		<guid isPermaLink="false">http://www.aeon-consulting.fr/?p=502</guid>
		<description><![CDATA[L&#8217;objectif de cet article n&#8217;est pas de faire une présentation détaillée de SOA : je rencontrerais quelques difficultés à rester concis ! Dans les projets sur lesquels je travaille, je constate des omissions et confusions récurrentes autour de la notion de contrat de service. L&#8217;objet de cette brève est de lever le doute autour de [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;objectif de cet article n&#8217;est pas de faire une présentation détaillée de SOA : je rencontrerais quelques difficultés à rester concis ! Dans les projets sur lesquels je travaille, je constate des omissions et confusions récurrentes autour de la notion de contrat de service. L&#8217;objet de cette brève est de lever le doute autour de cette <strong>notion qui est au cœur des démarches SOA</strong>.<br />
<br/><span id="more-502"></span></p>
<h2>Sur la notion de service</h2>
<p>La définition de la <strong>notion de service fait rarement l&#8217;unanimité</strong> est c&#8217;est là le point de départ des incompréhensions autour de SOA. Je choisirai donc ici une définition que je rencontre souvent :</p>
<blockquote><p><em>&laquo;&nbsp;un service est un ensemble d’opérations mises à disposition par un fournisseur à l’attention d’un consommateur. Ce fournisseur exécute les traitements invoqués par le client consommateur&raquo;&nbsp;</em></p></blockquote>
<p>Cette définition présente plusieurs lacunes. Celle qui m&#8217;intéresse dans le cadre de cet article est l’absence de référence à la notion de contrat de service. En effet, dans le cadre d’une démarche SOA, <strong>la notion de service n&#8217;est pas dissociable de la notion de contrat de service</strong> car il est nécessaire de formaliser le lien entre fournisseur et consommateur pour faciliter la mise en œuvre du service et sa réutilisation.</p>
<p>Soyons plus optimiste, on trouve parfois dans les définitions de la notion de service une référence à cette notion de contrat de service, formulée de la manière suivante :</p>
<blockquote><p><em>&laquo;&nbsp;le contrat de service décrit les opérations invocables du service&raquo;&nbsp;</em></p></blockquote>
<p>Cette définition floue est heureusement parfois complétée par des précisions intéressantes :</p>
<blockquote><p><em><em>&laquo;&nbsp;le contrat de service décrit les opérations invocables du service, </em><em>c&#8217;est-à-dire la signature de ces opérations et les protocoles réseau utilisables&raquo;&nbsp;</em></em></p></blockquote>
<p>Cette dernière définition a beau être plus claire, elle n&#8217;en est pas pour autant complète.</p>
<h2>Sur la notion de contrat de service</h2>
<p><strong>La notion de contrat de service est – et doit être &#8211; bien plus précise</strong>. En fait, la signature des opérations et les protocoles réseau ne sont que deux aspects d’un contrat. J’aime assez la décomposition suivante d’un contrat, en <strong>cinq aspects </strong>:</p>
<ul>
<li><strong>Sémantique</strong> : signification des opérations et de leurs valeurs de retours, pré-conditions, post-conditions&#8230;</li>
<li><strong>Syntaxe </strong>: nom et signature des opérations, c&#8217;est-à-dire format des paramètres en entrée et en sortie</li>
<li><strong>Protocoles réseau </strong>: ensemble des protocoles réseau utilisables pour invoquer les opérations</li>
<li><strong>Protocole de conversation </strong>: ordre dans lequel les opérations doivent être invoquées</li>
<li><strong>Niveau de qualité </strong>: Qualité de Service (QoS) et Service Level Agreement (SLA), c&#8217;est-à-dire garanties en matière de sécurité, fiabilité, disponibilité, performance&#8230;</li>
</ul>
<p>Maintenant que nous avons clarifié la composition d’un contrat de service, qu’en fait-on ?</p>
<h2>Sur la formalisation du contrat de service</h2>
<p><strong>Un contrat de service peut être formalisé</strong>. Un formalisme commun facilite la mise en place et la réutilisation de services. Il existe différentes formes de formalisation et toutes ne sont pas standardisées mais <strong>certaines permettent d&#8217;automatiser la prise en charge d’un ou plusieurs aspects du contrat</strong>. Par exemple :</p>
<ul>
<li>Syntaxe et Protocoles réseau : la formalisation de ces aspects peut être exploitée pour générer les <em>stubs </em>côté client. C’est le cas du <strong>WSDL </strong>pour les Web Services WS-* ou du WADL pour les Web Services REST (enfin, pour ceux qui ne sont pas contre l’utilisation du WADL dans REST, mais ceci est un autre débat !)</li>
<li>Protocole de conversation : le <strong>BPM</strong>, grâce à la formalisation standard BPEL, est un excellent exemple d’exploitation automatisée de cet aspect</li>
</ul>
<p>Notons que les <strong>ESB </strong>permettent d’exploiter de manière automatisée l’ensemble de la formalisation de contrats, même si l&#8217;aspect Niveau de qualité (voir par exemple les couches concernées de la stack WS-*) est plus difficile à exploiter de manière automatisée et l&#8217;aspect Sémantique (voir par exemple UDDI) l&#8217;est encore plus.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.aeon-consulting.fr/fr/blog/2010/01/16/soa-et-la-notion-de-contrat-de-service/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
