<?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>Bête comme chou &#187; Architecture Applicative</title>
	<atom:link href="http://www.betecommechou.com/category/architecture-applicative/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.betecommechou.com</link>
	<description>Partager et apprendre</description>
	<lastBuildDate>Fri, 18 Jun 2010 17:55:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Cloud Computing : Confusion et polémique</title>
		<link>http://www.betecommechou.com/2009/05/cloud-computing-confusion-et-polemique/</link>
		<comments>http://www.betecommechou.com/2009/05/cloud-computing-confusion-et-polemique/#comments</comments>
		<pubDate>Mon, 18 May 2009 13:27:20 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Architecture Applicative]]></category>
		<category><![CDATA[Architecture système]]></category>
		<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[cloud computing]]></category>

		<guid isPermaLink="false">http://www.effervescience.com/?p=19</guid>
		<description><![CDATA[L&#8217;intérêt croissant que le terme de Cloud computing suscite sur Google semble révélateur de l&#8217;importance de ce phénomène. Que l&#8217;on pense qu&#8217;il s&#8217;agisse d&#8217;une mode, ou d&#8217;un changement profond des modèles informatique l&#8217;intérêt que le Cloud suscite depuis près de deux ans (représenté ci-dessous) indique clairement qu&#8217;il est indispensable de s&#8217;y &#8216;intéresser, ne serait-ce que [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;intérêt croissant que le terme de Cloud computing suscite sur Google semble révélateur de l&#8217;importance de ce phénomène. Que l&#8217;on pense qu&#8217;il s&#8217;agisse d&#8217;une mode, ou d&#8217;un changement profond des modèles informatique l&#8217;intérêt que le Cloud suscite depuis près de deux ans (représenté ci-dessous) indique clairement qu&#8217;il est indispensable de s&#8217;y &#8216;intéresser, ne serait-ce que pour en réfuter l&#8217;intérêt.</p>
<p style="text-align: center;"><img class="aligncenter" src="http://www.effervescience.com/wp-content/uploads/2009/05/4242_84561834381_779534381_1680912_2952077_n.jpg" alt="4242 84561834381 779534381 1680912 2952077 n Cloud Computing : Confusion et polémique"  title="Cloud Computing : Confusion et polémique" /></p>
<p><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:HyphenationZone>21</w:HyphenationZone> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:UseFELayout /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--  /* Font Definitions */  @font-face 	{font-family:"MS Mincho"; 	panose-1:2 2 6 9 4 2 5 8 3 4; 	mso-font-alt:"ＭＳ 明朝"; 	mso-font-charset:128; 	mso-generic-font-family:modern; 	mso-font-pitch:fixed; 	mso-font-signature:-1610612033 1757936891 16 0 131231 0;} @font-face 	{font-family:"\@MS Mincho"; 	panose-1:2 2 6 9 4 2 5 8 3 4; 	mso-font-charset:128; 	mso-generic-font-family:modern; 	mso-font-pitch:fixed; 	mso-font-signature:-1610612033 1757936891 16 0 131231 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"MS Mincho";} h2 	{mso-margin-top-alt:auto; 	margin-right:0cm; 	mso-margin-bottom-alt:auto; 	margin-left:0cm; 	mso-pagination:widow-orphan; 	mso-outline-level:2; 	font-size:18.0pt; 	font-family:"Times New Roman"; 	font-weight:bold;} p 	{mso-margin-top-alt:auto; 	margin-right:0cm; 	mso-margin-bottom-alt:auto; 	margin-left:0cm; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"MS Mincho";} @page Section1 	{size:612.0pt 792.0pt; 	margin:70.85pt 70.85pt 70.85pt 70.85pt; 	mso-header-margin:36.0pt; 	mso-footer-margin:36.0pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --></p>
<p><!--[if gte mso 10]> <mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tableau Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman";} --></p>
<p><!--[endif]--></p>
<p style="text-align: justify;">On y voit que les recherches sont corrélées avec la <strong>décroissance</strong> de celle concernant le <strong>grid computing</strong> et qu’elles suivent l&#8217;<strong>augmentation des requêtes concernant la virtualisation</strong>.<span id="more-19"></span></p>
<p style="text-align: justify;">Bien entendu les intervenants historiques de l&#8217;informatique  (Oracle, HP&#8230;)  minimisent le côté novateur du Cloud (voire en discute carrément l&#8217;existence)  en prétendant ne pas voir de nouveauté dans ces concepts. &#8220;<strong>Un buzz marketing</strong>&#8221; sur d&#8217;anciennes technologies déjà en oeuvre pour les uns, de <strong>multiples définitions</strong> sans cohérence pour les autres. Rien d&#8217;étonnant me direz-vous, surtout lorsqu&#8217;on voit les constructeurs à la peine pour suivre cette nouvelle tendance. En effet, ces derniers tentent toujours de vendre des baies de stockage, des serveurs surpuissant ou des logiciels. dont les  coûts de licences sont calculés par core , a des prix élevés. Parallèlement  de nouveaux entrants se basent sur des paradigmes assez différents des éditeurs et constructeurs actuels, profitant des matériels bon marchés et des logiciels open sources gratuits.</p>
<p style="text-align: justify;">
<h2>La fin des modèles traditionnels : Pourquoi ?</h2>
<p style="text-align: justify;">Cette opposition tant technologique que culturelle semble marquer la fin des modèles traditionnels (ou tout au moins une évolution très notable) qui régissent l&#8217;informatique depuis l&#8217;avènement des plateforme open (*NIX, windows) alors que les plateformes mainframes régnaient sans partage sur l&#8217;informatique. Pour illustrer ce propos, prenons l’exemple du stockage de données, l&#8217;un des domaines de prédilection du cloud.</p>
<p style="text-align: justify;">Rappelons l&#8217;image courante dans ce domaine : &#8220;<em>Chaque année, sont produites autant de données que le cumul des données produites jusqu&#8217;à l&#8217;année précédente</em>&#8220;.  Plus actuellement, en 2008 l&#8217;IDC affirme qu&#8217;<strong>en 2009 40 exabytes de données seront produites</strong>. On constate que ces données sont de plus en plus non structurées. Dématérialisation et explosions du multimédia poussent au stockage de vidéo, audio et autre PDF.  Par ailleurs, les exigences des départements commerciaux renforcent également les notions de tracking et de profiling des utilisateurs, afin d&#8217;améliorer les performances des différents produits commerciaux. Comment dans ces conditions <strong>recueillir</strong>, <strong>stocker </strong>et <strong>gérer </strong>ces données.</p>
<p style="text-align: justify;">En amont de ce problème de gestion se pose celui des taux transactionnels dans les environnements sécurisés. En effet, dans un contexte mutlicanal, comment garantir le maintien de ces taux transactionnels dans des environnements devant prendre en compte des exigences de hautes disponibilités, de Plan de reprise d&#8217;activité&#8230; Les réplications standards sont de plus en plus compliquées à mettre en œuvre, exploiter et à garder synchrone (ou tout simplement a en garantir un déphasage minimum). Les problématiques de temps de latences sont par ailleurs elles aussi de plus en plus dures à contenir.</p>
<p style="text-align: justify;">Une fois les données recueillies il faut le gérer. Les gérer oui, parce que les <strong>stocker n&#8217;est pas suffisant</strong>. Vos données doivent être exploitées, retraitées, archivées pour leur donner du sens. Le problème est que ces workflows doivent être de plus en plus rapides (tous les 60 jours sont produits 7 exabytes), alors même que les temps de traitement nécessaires à ces volumétries explosent.</p>
<p>Enfin, parallèlement aux temps de traitement, les <strong>coûts</strong> de gestion et de stockage de ces données deviennent peu à peu des freins ; certains projet n&#8217;étant tout simplement plus rentables du fait des contraintes exposées ci-dessus.</p>
<p style="text-align: justify;">Toutes ces évolutions forcent les entreprises à trouver des solutions quitte à s&#8217;éloigner des chemins traditionnels</p>
<p style="text-align: justify;">
<p style="text-align: justify;">
<h2>La fin des modèles traditionnels : Comment ?</h2>
<p style="text-align: justify;">Si les offres des constructeurs ne semblent que peu évoluer sur le marché (de grosses baies, avec beaucoup de cache…) de nouveaux entrants sur le marché du stockage font leur apparition, <strong>Amazon </strong> à leur tête. Amazon vous propose tout simplement de ne pas conserver vos données ou vos traitements dans votre propre SI mais de les lui confier (avec les clauses de confidentialités adaptées) et d’en disposer, dès lors,  via internet.  Le tout a des prix ultra compétitifs !</p>
<p style="text-align: justify;">Cette offre ne fait que repousser la question : comment ces prix peuvent ils être atteints ? C’est qu’Amazon se base sur des technologies fort différentes, tout comme un Google, un Yahoo! ou un Facebook. Le paradigme de départ est totalement différent. On ne parle plus ici de concentrer les données dans des baie hyper protégées et de faire appel à des serveur très haut de gamme pour exécuter les traitements mais bien de répartir données et traitements sur un trés grand nombre de machines d&#8217;entrée de gamme (commodity hardware). Cela assure tant la haute disponibilité et que de très bon temps de réponse, le tout à des couts largement en baisse (serveurs très standards, disques SATA, et surtout, économies d&#8217;échelles, les commandes auprès des constructeurs étant titanesques), et une scalabilité remarquable. Parce qu’en fin de compte c’est de cela qu’il s’agit : <strong>répondre de manière aussi linéaire</strong> que possible a la charge, <strong>quel que soit le volume </strong>de données le tout <strong>pour un coût aussi réduit</strong> que possible.</p>
<p style="text-align: justify;">En regardant dans le passé de ces géants internet, on se rend compte que tous ont commencé par des offres standard de type LAMP, mais que, la charge augmentant ils ont du développer leurs propres outils pour faire face (en se basant sur des projets, et donc des technologies et protocoles, open source et gratuits). Certains  n&#8217;ont publié que des white paper sur leur manière de gérer cette charge (c&#8217;est le cas de Google : <em>Big Table </em>et <em>GFS</em>) alors que d&#8217;autres ont carrément créé ou contribué très fortement à des initiatives open source et grauite (Facebook : Thrift , Yahoo! : Hadoop &#8230;)</p>
<p style="text-align: justify;">Il se développe depuis quelques années des offres de <strong>virtualisation </strong>(Xen), de <strong>cache </strong>(memcached développé pour LiveJournal.com) , de <strong>File Systems distribués</strong> (Caringo, MogileFS, GlusterFS, HDFS) dont la vocation n’est plus de concentrer les données mais bien au contraire de les <strong>répartir </strong>et de les <strong>répliquer </strong>sur des matériels a bas prix (commodity hardware), afin d&#8217;en exploiter au mieux les ressources.</p>
<p style="text-align: justify;">Une <strong>rupture technologique</strong> mais surtout <strong>culturelle </strong>est bien en train d’avoir lieu quoi que puissent en dire certains géants.</p>
<p style="text-align: justify;">
<h2>Attention, peinture fraîche</h2>
<p style="text-align: justify;">Etrangement les offres d’un Amazon semblent elles assez au point. Depuis Janvier 2008, d’ailleurs, la bande passante utilisée pour les <strong>web service d’Amazon</strong> (<strong>AWS</strong>, les offres de cloud) est supérieure à la bande passante utilisée par le reste des sites web Amazon. Cela indique le nombre de leur client augmente très rapidement et que les données stockées par eux explosent. On est donc passé de la commercialisation de capacité inutilisée a un <strong>véritable business,</strong> qui , pour avoir rencontré les personnes d’Amazon semble être organisé avec une rigueur martiale. Et la, au contraire, si les noms des clients sont assez durs à avoir (on le comprend aisément) Amazon affiche néanmoins des références solides (NASDAQ, Wall Street Journal, &#8230;), et le recul est certains, ces offres étant la base du business d&#8217;Amazon depuis un moment déjà.</p>
<p style="text-align: justify;">Alors certes les constructeurs tendent a se rapprocher de ce modèle, mais leurs offres commerciales sont-elles encore adaptées. Je ne parle pas seulement des technologies qui sortent de leurs laboratoires (pas de soucis pour ces dernières qui sont issues en droite ligne des technologies open source qui font la gloire des géants internet) mais surtout des offres commerciales avancées par leur commerciaux ? Assez étrangement, malgré toutes les annonces faites par les constructeurs majeurs, sur l’importance du Cloud et de ses implications, ces commerciaux tardent toujours à proposer des solutions « modernes », ils se font même un peu prier. On les comprend ces offres paraissent bien récentes et « pas encore sèche ». Pas ou peu de recul, très peu de clients et un supports dont la qualité semble faible, tant l&#8217;évangélisation dans ces société même semble en retard.</p>
<p style="text-align: justify;">
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 602px; width: 1px; height: 1px;"><!--[if !mso]> <mce:style><!  v\:* {behavior:url(#default#VML);} o\:* {behavior:url(#default#VML);} w\:* {behavior:url(#default#VML);} .shape {behavior:url(#default#VML);} --> <!--[endif]--><!--[if gte mso 9]><xml> <w:WordDocument> <w:View>Normal</w:View> <w:Zoom>0</w:Zoom> <w:HyphenationZone>21</w:HyphenationZone> <w:Compatibility> <w:BreakWrappedTables /> <w:SnapToGridInCell /> <w:WrapTextWithPunct /> <w:UseAsianBreakRules /> <w:UseFELayout /> </w:Compatibility> <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel> </w:WordDocument> </xml><![endif]--><!--  /* Font Definitions */  @font-face 	{font-family:"MS Mincho"; 	panose-1:2 2 6 9 4 2 5 8 3 4; 	mso-font-alt:"ＭＳ 明朝"; 	mso-font-charset:128; 	mso-generic-font-family:modern; 	mso-font-pitch:fixed; 	mso-font-signature:-1610612033 1757936891 16 0 131231 0;} @font-face 	{font-family:"\@MS Mincho"; 	panose-1:2 2 6 9 4 2 5 8 3 4; 	mso-font-charset:128; 	mso-generic-font-family:modern; 	mso-font-pitch:fixed; 	mso-font-signature:-1610612033 1757936891 16 0 131231 0;}  /* Style Definitions */  p.MsoNormal, li.MsoNormal, div.MsoNormal 	{mso-style-parent:""; 	margin:0cm; 	margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"MS Mincho";} h2 	{mso-margin-top-alt:auto; 	margin-right:0cm; 	mso-margin-bottom-alt:auto; 	margin-left:0cm; 	mso-pagination:widow-orphan; 	mso-outline-level:2; 	font-size:18.0pt; 	font-family:"Times New Roman"; 	font-weight:bold;} p 	{mso-margin-top-alt:auto; 	margin-right:0cm; 	mso-margin-bottom-alt:auto; 	margin-left:0cm; 	mso-pagination:widow-orphan; 	font-size:12.0pt; 	font-family:"Times New Roman"; 	mso-fareast-font-family:"MS Mincho";} @page Section1 	{size:595.3pt 841.9pt; 	margin:70.85pt 70.85pt 70.85pt 70.85pt; 	mso-header-margin:35.4pt; 	mso-footer-margin:35.4pt; 	mso-paper-source:0;} div.Section1 	{page:Section1;} --><!--[if gte mso 10]> <mce:style><!   /* Style Definitions */  table.MsoNormalTable 	{mso-style-name:"Tableau Normal"; 	mso-tstyle-rowband-size:0; 	mso-tstyle-colband-size:0; 	mso-style-noshow:yes; 	mso-style-parent:""; 	mso-padding-alt:0cm 5.4pt 0cm 5.4pt; 	mso-para-margin:0cm; 	mso-para-margin-bottom:.0001pt; 	mso-pagination:widow-orphan; 	font-size:10.0pt; 	font-family:"Times New Roman";} --> <!--[endif]-->L&#8217;intérêt croissant que le terme de Cloud computing suscite sur Google semble révélateur de l&#8217;importance de ce phénomène. Que l&#8217;on pense qu&#8217;il s&#8217;agisse d&#8217;une mode, ou d&#8217;un changement profond des modèles informatique l&#8217;intérêt que le Cloud suscite depuis près de deux ans (représenté ci-dessous) indique clairement qu&#8217;il est indispensable de s&#8217;y<span> </span>intéresser, ne serait-ce que pour en réfuter l&#8217;intérêt.</p>
<p style="text-align: center;" align="center"><!--[if gte vml 1]><v:shapetype  id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t"  path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter" /> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0" /> <v:f eqn="sum @0 1 0" /> <v:f eqn="sum 0 0 @1" /> <v:f eqn="prod @2 1 2" /> <v:f eqn="prod @3 21600 pixelWidth" /> <v:f eqn="prod @3 21600 pixelHeight" /> <v:f eqn="sum @0 0 1" /> <v:f eqn="prod @6 1 2" /> <v:f eqn="prod @7 21600 pixelWidth" /> <v:f eqn="sum @8 21600 0" /> <v:f eqn="prod @7 21600 pixelHeight" /> <v:f eqn="sum @10 21600 0" /> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /> <o:lock v:ext="edit" aspectratio="t" /> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" alt="" style='width:453pt;  height:257.25pt'> <v:imagedata src="file:///C:\DOCUME~1\255471\LOCALS~1\Temp\msohtml1\01\clip_image001.jpg" mce_src="file:///C:\DOCUME~1\255471\LOCALS~1\Temp\msohtml1\01\clip_image001.jpg"   o:href="http://www.effervescience.com/wp-content/uploads/2009/05/4242_84561834381_779534381_1680912_2952077_n.jpg" /> </v:shape><![endif]--><!--[if !vml]--><img class="aligncenter" src="http://www.effervescience.com/wp-content/uploads/2009/05/4242_84561834381_779534381_1680912_2952077_n.jpg" alt="4242 84561834381 779534381 1680912 2952077 n Cloud Computing : Confusion et polémique" width="604" height="343" title="Cloud Computing : Confusion et polémique" /><!--[endif]--></p>
<p style="text-align: justify;">On y voit que les recherches sont corrélées avec la <strong>décroissance</strong> de celle concernant le <strong>grid computing</strong> et qu’elles suivent l&#8217;<strong>augmentation des requêtes concernant la virtualisation</strong>.</p>
<p style="text-align: justify;">Bien entendu les intervenants historiques de l&#8217;informatique  (Oracle, HP&#8230;)  minimisent le côté novateur du Cloud (voire en discute carrément l&#8217;existence)  en prétendant ne pas voir de nouveauté dans ces concepts. &#8220;<strong>Un buzz marketing</strong>&#8221; sur d&#8217;anciennes technologies déjà en oeuvre pour les uns, de <strong>multiples définitions</strong> sans cohérence pour les autres. Rien d&#8217;étonnant me direz-vous, surtout lorsqu&#8217;on voit les constructeurs à la peine pour suivre cette nouvelle tendance. En effet, ces derniers tentent toujours de vendre des baies de stockage, des serveurs surpuissant ou des logiciels. dont les  coûts de licences sont calculés par core , a des prix élevés. Parallèlement  de nouveaux entrants se basent sur des paradigmes assez différents des éditeurs et constructeurs actuels, profitant des matériels bon marchés et des logiciels open sources gratuits.</p>
<p style="text-align: justify;">
<h2>La fin des modèles traditionnels : Pourquoi</h2>
<p style="text-align: justify;">Cette opposition tant technologique que culturelle semble marquer la fin des modèles traditionnels (ou tout au moins une évolution très notable) qui régissent l&#8217;informatique depuis l&#8217;avènement des plateforme open (*NIX, windows) alors que les plateformes mainframes régnaient sans partage sur l&#8217;informatique. Pour illustrer ce propos, prenons l’exemple du stockage de données, l&#8217;un des domaines de prédilection du cloud.</p>
<p style="text-align: justify;">Rappelons l&#8217;image courante dans ce domaine : &#8220;<em>chaque année, on produit autant données que le cumul des données produites jusqu&#8217;à l&#8217;année précédente</em>&#8220;.  Plus actuellement, en 2008 l&#8217;IDC affirme qu&#8217;<strong>en 2009 40 exabytes de données seront produites</strong>. On constate que ces données sont de plus en plus non structurées. Dématérialisation et explosions du multimédia poussent au stockage de vidéo, audio et autre PDF.  Par ailleurs, les exigences des départements commerciaux renforcent également les notions de tracking et de profiling des utilisateurs, afin d&#8217;améliorer les performances des différents produits commerciaux. Comment dans ces conditions <strong>recueillir</strong>, <strong>stocket </strong>et <strong>gérer </strong>ces données.</p>
<p style="text-align: justify;">En amont de ce problème de gestion se pose celui des taux transactionnels dans les environnements sécurisés. En effet, dans un contexte mutlicanal, comment garantir le maintien de ces taux transactionnels dans des environnements devant prendre en compte des exigences de hautes disponibilités, de Plan de reprise d&#8217;activité&#8230; Les réplications standards sont de plus en plus compliquées à mettre en oeuvre, exploiter et à garder synchrone (ou tout simplement a en garantir un déphasage minimum). Les problématiques de temps de latences sont par ailleurs elles aussi de plus en plus dures à contenir.</p>
<p style="text-align: justify;">Une fois les données recueillies il faut le gérer. Les gérer oui, parce que les <strong>stocker n&#8217;est pas suffisant</strong>. Vos données doivent être exploitées, retraitées, archivées pour leur donner du sens. Le problème est que ces workflows doivent être de plus en plus rapides (tous les 60 jours sont produits 7 exabytes), alors même que les temps de traitement nécessaires à ces volumétries explosent.</p>
<p>Enfin, parallèlement aux temps de traitement, les <strong>coûts</strong> de gestion et de stockage de ces données deviennent peu à peu des freins ; certains projet n&#8217;étant tout simplement plus rentables du fait des contraintes exposées ci-dessus.</p>
<p style="text-align: justify;">Toutes ces évolutions forcent les entreprises à trouver des solutions quitte à s&#8217;éloigner des chemins traditionnels</p>
<p style="text-align: justify;">
<h2>La fin des modèles traditionnels : Comment</h2>
<p style="text-align: justify;">Si les offres des constructeurs ne semblent que peu évoluer sur le marché (de grosses baies, avec beaucoup de cache…) de nouveaux entrants sur le marché du stockage font leur apparition,Amazon S3 à leur tête. Amazon vous propose tout simplement de ne pas conserver vos données dans votre propre SI mais de les lui confier (avec les clauses de confidentialités adaptées) et d’en disposer, dès lors, depuis ses infrastructures. Le tout a des prix très compétitifs.</p>
<p style="text-align: justify;">Cette offre ne fait que repousser la question : comment ces prix peuvent ils être atteint ? C’est qu’Amazon se base sur des technologies fort différentes. Tout comme un Google, un yahoo! Ou un Facebook, le paradigme est totalement différent. Il se développe des offres de File Systems distribués (Caringo, MogileFS, GlusterFS, HDFS) dont la vocation n’est plus dorénavant de concentrer les données dans une baie hyper protégée mais bien au contraire de les répartir et de les répliquer sur des matériels a bas prix (commodity hardware). Cela assure tant la haute disponibilité et que de très bon temps de réponse, le tout sur du matériel bas de gamme (disques SATA 7.2KRPM), et une scalabilité remarquable. Parce qu’en fin de compte c’est de cela qu’il s’agit : répondre de manière aussi linéaire que possible a la charge, quel que soit le volume de données le tout pour un coût aussi réduit que possible.</p>
<p style="text-align: justify;">On constate bien qu’il s’agit de deux visions assez différentes du stockage de données. Une rupture technologique mais surtout culturelle est en train d’avoir lieu.</p>
<p style="text-align: justify;">
<h2>Attention, peinture fraîche</h2>
<p style="text-align: justify;">Alors certes les constructeurs tendent a se rapprocher de ce modèle, mais leurs offres commerciales sont elles encore adaptées. Je ne parle pas seulement des technologies qui sortent de le laboratoires (pas de soucis pour ces dernières qui sont issues en droite ligne des technologies open source qui font la gloire des mastodontes tels que Google, Yahoo! and co) mais surtout des offres commerciales avancées par leur commerciaux ?<br />
Assez étrangement, malgré toutes les annonces faites par les constructeurs majeurs, sur l’importance du Cloud et de ses implications, ces commerciaux de ces géants tardent toujours à proposer des solutions « modernes », ils se font même un peu prier. On les comprend ces offres paraissent bien récentes et « pas encore sèche ».</p>
<p style="text-align: justify;">Etrangement les offres d’un Amazon semblent elles assez au point. Depuis Janvier 2008, d’ailleurs, la bande passante utilisée pour les web service d’Amazon (AWS, les offres de cloud) est supérieure à la bande passante utilisée par le reste des sites web Amazon. Cela indique le nombre de leur client augmente très rapidement et que les données stockées par eux explosent. On est donc passé de la commercialisation de capacité innutilisée a un véritable business, qui , pour avoir rencontré les personnes d’Amazon semble être organisé avec une rigueur martiale.</p>
<p class="MsoNormal">
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.betecommechou.com/2009/05/cloud-computing-confusion-et-polemique/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>J2EE 1.4 : Composants applicatifs et conteneurs</title>
		<link>http://www.betecommechou.com/2009/02/j2ee-1-4-composants-applicatifs-et-conteneurs/</link>
		<comments>http://www.betecommechou.com/2009/02/j2ee-1-4-composants-applicatifs-et-conteneurs/#comments</comments>
		<pubDate>Mon, 02 Feb 2009 13:17:36 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Architecture Applicative]]></category>
		<category><![CDATA[J2EE]]></category>
		<category><![CDATA[Moyen]]></category>

		<guid isPermaLink="false">http://www.effervescience.com/?p=14</guid>
		<description><![CDATA[Les relations nécéssaire entre les éléments d&#8217;une plateforme J2EE sont illustrés dans le schéma ci-dessous. Ce vue n&#8217;est qu&#8217;une représentation des relations entre les différents élements mais ne signifie pas que ces derniers doivent etre répartis sur plusieurs machines , process , espace d&#8217;adressage ou machines virtuelle. Les conteneurs illustrés par des rectangles sont des [...]]]></description>
			<content:encoded><![CDATA[<p>Les relations nécéssaire entre les éléments d&#8217;une plateforme J2EE sont illustrés dans le schéma ci-dessous.</p>
<p><a href="http://betecommechou.com/wp-content/uploads/2007/09/j2ee_architecture.png" title="Schéma Architecture J2EE 1.4"></a></p>
<p style="text-align: center"><a href="http://betecommechou.com/wp-content/uploads/2007/09/j2ee_architecture.png" title="Schéma Architecture J2EE 1.4"><img src="http://betecommechou.com/wp-content/uploads/2007/09/j2ee_architecture.png" alt="Schéma Architecture J2EE 1.4" border="0" height="302" width="400" title="J2EE 1.4 : Composants applicatifs et conteneurs" /></a></p>
<p>Ce vue n&#8217;est qu&#8217;une représentation des relations entre les différents élements mais ne signifie pas que ces derniers doivent etre répartis sur  plusieurs machines , process , espace d&#8217;adressage ou machines virtuelle.</p>
<p>Les conteneurs illustrés par des rectangles sont des environnements d&#8217;exécution (runtime environment) J2EE   qui fournissent les services nécessaires aux composants applicatifs, représentés dans la partie haute de chaque rectangle. Ces services mis a disposition sont représenté dans la partie inférieur des conteneurs. Tous ces services seront définis ultérieurement (dans l&#8217;article les services standard J2EE).</p>
<p>Les flèches représentent les acces requis par chacun des autres composants de la plateforme J2EE.</p>
<p><u><strong>Les composants applicatifs</strong></u><br />
L&#8217;environnement d&#8217;exécution J2EE défini 4 types de composants applicatifs qui doivent être supporté par tous les produits J2EE :</p>
<p>Les clients applicatifs : ce sont les programmes java (typiquement des interface graphique utilisateurs &#8211; GUI) qui s&#8217;exécute sur un ordinateur client. Les clients applicatifs permettent à l&#8217;utilisateur de se servir de l&#8217;application et d&#8217;avoir ainsi accès à tous les services résidant sur des couches intermédiaires.</p>
<ul>
<li>Les applets sont des composant GUI qui s&#8217;exécute généralement dans un browser, mais qui peuvent également s&#8217;exécuter dans d&#8217;autres appareils (supportant le modèle de programmation des applets). Les applets fournissent des GUI puissantes pour les applications J2EE (repoussant les limites imposées par les pages en HTML classique)</li>
<li>Les servlets, les pages JSP, les filtres et les listeners d&#8217;événement web s&#8217;exécutent dans des conteneurs web et peuvent répondre à des requetes HTTP provenant de cleints web. Les servlets, JSP et filtres peuvent être utilisés pour générer le code HTML d&#8217;une interface utilisateur. Il s peuvent également etre utilisés pour générer du XML ou tout autre format de donnée qui sera consommé par les composants d&#8217;une autre application. Une sorte spécifique de servlet permet le support des web services  qui utilisent le protocole SOAP/HTTP. Les servlets, les pages créées avec la technologie Java Server Page (JSP) les filtres web et les listener d&#8217;évènement web sont communément regroupé sous l&#8217;appellation &#8216;composants web&#8217;. Les applications webs sont constituées de ces composants, ainsi que d&#8217;autres tels que des pages HTML. Ces composants s&#8217;exécutent dans des conteneurs web. Un serveur web inclu un conteneur web ainsi que le suport d&#8217;autres protocoles, de mécanismes de sécurité tel que défini dans les spécifications J2EE.</li>
<li>Les composants Enterprise JavaBeans™ (EJB) s&#8217;exécutent dans une environementsupportant les transactions. Les EJB contiennent généralement la logique applicative des applications J2EE. Les EJB peuvent fournir des web services directement en utilisant le protocole SOAP/HTTP.</li>
</ul>
<p>Les seveurs J2EE fournissent le support du déploiement, de l&#8217;administration et de l&#8217;exécution des applications qui se conforment au standards. Les composant applicatifs peuvent être divisés en trois catégories selon leur dépendance au serveur J2EE :</p>
<ul>
<li>Les composants qui sont déployés, administré et exécuté au sein d&#8217;un serveur J2EE. Ces composant inclus les composants web ainsi que les EJB.</li>
<li>Les composants qui sont déployés et administrés sur un serveur J2EE mais qui se chargent et s&#8217;exécutent sur la machine client. Ces composants incluent les pages HTML ainsi que les applets qu&#8217;elles peuvent contenir.</li>
<li>Les composant dont le déploiement ne respecte pas complètement ces spécifications. Les applications clientes peuvent rentrer dans cette catégorie. Les futures versions des spécifications J2EE pourront définir plus précisément le déploiement et l&#8217;administration de ces applications clients.</li>
</ul>
<p><u><strong>Les conteneurs</strong></u></p>
<p>Les conteneurs fournissent les  support d&#8217;exécution pour les composants d&#8217;applications J2EE. Ces conteneurs fournissent aux  composants applicatifs une vue agrégée des toutes les APIs J2EE sous jacentes . Les composants applicatifs J2EE n&#8217;interagissent jamais directement avec d&#8217;autres composants applicatifs. Ils utilisent les protocoles et méthodes des conteneurs pour interagir les uns avec les autres et avec les services des plateformes. Cette introduction d&#8217;un médiateur entre les composants et les services J2EE permet au conteneur d&#8217;injecter de manière transparente les services définis par les descripteurs de déploiement, tels que le management déclaratif de transaction, les vérification de sécurité, le pooling de ressource, et le management d&#8217;état. Un produit J2EE classique  fournira un conteneur pour chacun des type d&#8217;application (conteneur d&#8217;application clientes, un conteneur d&#8217;applet un conteneur de composant web et un conteneur d&#8217;EJB).</p>
<p>Les spécifications J2EEimposent aux conteneurs de fournri un environnement d&#8217;exécution java compatibles aux standards Java 2 Standard Edition (J2SE). Le conteneur d&#8217;applet peut utiliser le plugin java pour fournir cet environnement ou en proposer un nativement. Ces conteneurs doivent pouvoir interpreter les formats de fichiers utilisés pour les packaging de composant d&#8217;application utilisés pour le déploiement. Les conteneurs sont implémentés par un &#8220;Product Provider&#8221;.</p>
<p>Les spécifications J2EE définissent un ensemble de services standards que les produits compatibles J2EE se doivent de respecter (décrits plus tard) . Les conteneurs J2EE fournissent les API que les composants applicatifs utilisent pour accéder à ces services. Ces spécification définissent également les moyens d&#8217;étendres les services J2EE à l&#8217;aide de connecteurs vers des systemes applicatifs ne respectant pas les standards J2EE tels que les mainframes ou  les ERP.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.betecommechou.com/2009/02/j2ee-1-4-composants-applicatifs-et-conteneurs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>J2EE 1.4 : Introduction à J2EE</title>
		<link>http://www.betecommechou.com/2009/01/j2ee-1-4-introduction-a-j2ee/</link>
		<comments>http://www.betecommechou.com/2009/01/j2ee-1-4-introduction-a-j2ee/#comments</comments>
		<pubDate>Fri, 30 Jan 2009 13:17:09 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Architecture Applicative]]></category>
		<category><![CDATA[Débutant]]></category>
		<category><![CDATA[Introduction]]></category>
		<category><![CDATA[J2EE]]></category>

		<guid isPermaLink="false">http://www.effervescience.com/?p=13</guid>
		<description><![CDATA[Je me plonge en ce moment dans les spécification de J2EE. Eh oui, c&#8217;est bien plus large que ce que j&#8217;avais tendance a penser. Seulement voila, ce pavé de 250 pages d&#8217;anglais peut rebuter un peu. Comme de toute facon moi, j&#8217;ai décidé de m&#8217;y plonger, je posterai ici régulièrement de fruit de mes lectures. [...]]]></description>
			<content:encoded><![CDATA[<p>Je me plonge en ce moment dans les spécification de J2EE. Eh oui, c&#8217;est bien plus large que ce que j&#8217;avais tendance a penser.  Seulement voila, ce pavé de 250 pages d&#8217;anglais peut rebuter un peu.  Comme de toute facon moi, j&#8217;ai décidé de m&#8217;y plonger, je posterai ici régulièrement de fruit de mes lectures. Commençons par le début :</p>
<p><u><strong> Introduction à J2EE</strong></u></p>
<p>Aujourd&#8217;hui les entreprise  ont besoin de réduire leurs cours, et de diminuer les temps de réponses des services qu&#8217;elles proposent à leurs clients, employés et fournisseurs. Elles doivent intégrer de nouvelles briques logicielles au sein de leur systeme d&#8217;information (SI). Ces services doivent être</p>
<ul>
<li>hautement disponibles du fait de la globalisation des échanges</li>
<li>Sécurisés pour protéger la vie privée d&#8217;utilisateurs et l&#8217;intégrité de l&#8217;entreprise.</li>
<li>Fiables et évolutifs, pour s&#8217;assurer que des transactions métiers sont traitées correctement et rapidement.</li>
</ul>
<p>De plus en plus souvent les applications sont réparties sur plusieurs couches. Généralement ce sont les couches intermédiaires qui permettent d&#8217;intégrer les nouveaux servuces au sein des SI existants. Des technologies arrivant à maturité permettent dorénavant à simplifier l&#8217;accès des utilisateurs à des services métiers complexes en éliminant ou au moins en réduisant énormément les besoins d&#8217;administration et de formation.</p>
<p>Java™ 2 Platform, Enterprise Edition (J2EE™) réduit le cout et la complexité des développement de services métiers sous forme multi couches (multitier). Les applications J2EE peuvent etre rapidement déployées et facilement mises a jour au fur et à mesure de l&#8217;évolution des besoins métiers. Pour arriver à cela, J2EE définit une architecture standard composée des éléments suivants :</p>
<ul>
<li>J2EE Platform &#8211; Une plateforme standard pour l&#8217;hébergement des applicationsJ2EE.</li>
<li>J2EE Compatibility Test Suite &#8211; Une série de tests de compatibilité permettant de s&#8217;assurer qu&#8217;une plateforme  respecte effectivement les standard J2EE</li>
<li> J2EE Reference Implementation &#8211; Une référence sur l&#8217;implémentation du prototypage d&#8217;application J2EE et fournissant une définition opérationnelle d&#8217;une plateforme J2EE</li>
<li>J2EE BluePrints Une série de bonnes pratiques recommandée pour le développement multicouche, les services pour clients légers</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.betecommechou.com/2009/01/j2ee-1-4-introduction-a-j2ee/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Rappels sur SOA (Service Oriented Architectures)</title>
		<link>http://www.betecommechou.com/2009/01/rappels-sur-soa-service-oriented-architectures/</link>
		<comments>http://www.betecommechou.com/2009/01/rappels-sur-soa-service-oriented-architectures/#comments</comments>
		<pubDate>Wed, 28 Jan 2009 13:16:36 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Architecture Applicative]]></category>
		<category><![CDATA[Débutant]]></category>
		<category><![CDATA[Introduction]]></category>

		<guid isPermaLink="false">http://www.effervescience.com/?p=12</guid>
		<description><![CDATA[Avez-vous essayé de demander a une quinzaine de personnes autour de vous ce que sont les SOA (Service Oriented Architectures). Essayez, vous obtiendrez vraisemblablement une quinzaine de réponse différentes. Fatalement cela mène à quelques incompréhensions relatives aux architectures SOA. Ces dernières sont également soit issues des présentations commerciales, soit d&#8217;une mauvaise explication de ces concepts. [...]]]></description>
			<content:encoded><![CDATA[<p>Avez-vous essayé de demander a une quinzaine de personnes autour de vous ce que sont les SOA (Service Oriented Architectures). Essayez, vous obtiendrez vraisemblablement une quinzaine de réponse différentes. Fatalement cela mène à quelques incompréhensions relatives aux architectures SOA. Ces dernières sont également soit issues des présentations commerciales, soit d&#8217;une mauvaise explication de ces concepts.  Voici donc en quelques mot le moyen, j&#8217;espère, de venir à bout  de quelques unes de ces idées erronées.</p>
<p>Tout d&#8217;abord, les SOA  ne sont pas un nouveau concept. Pour preuve sur MVS on exposait déjà des modules généralisés il y a 15 ans. Plus généralement cette notion de partage fonctionnel est née dès lors qu&#8217;il y a plus d&#8217;un ordinateur dans les entreprises.Les appels se sont fait via RPC puis via IPC. Elles ont été ensuite enrichies par des technologies permettant la distribution d&#8217;objets métiers tels que COM et CORBA. Les services web ne sont qu&#8217;une déclinaison plus récente de ce concept.</p>
<p>Ces web services ne sont par ailleurs pas du tout indispensables à la mise en place d&#8217;architectures SOA, même s&#8217;ils ont été créés pour en faciliter l&#8217;implémentation. Toutes les technologies précitées peuvent y parvenir (COM, CORBA, J2EE&#8230;). On peut également y parvenir grâce à l&#8217;utilisation de technologies propriétaires.</p>
<p>Par ailleurs, les communication entre les applications d&#8217;un réseau d&#8217;entreprises n&#8217;étant pas une nouveauté, il existe déja des logiciels capables de faire communiquer les différents composants informatique d&#8217;une entreprises (les ESB) . Ces derniers, s&#8217;ils peuvent bien entendu faire partie d&#8217;une SOA ne forment pas une SOA-en-kit. Les ESB ne sont qu&#8217;une des solutions techniques qui s&#8217;offrent pour construire une SOA. Une telle architecture (nous le verrons dans d&#8217;autres article) n&#8217;est pas qu&#8217;un amas de solutions techniques. Il s&#8217;agit plus dune approche permettant la réutilisabilité et l&#8217;adéquation de l&#8217;outil informatique aux besoins métiers de l&#8217;entreprise.</p>
<p>De ce fait les SOA sont et doivent rester éminemment &#8220;scalable&#8221;, c&#8217;est a dire qu&#8217;elles doivent permettre aider à mener a bien les augmentations de taille de système d&#8217;information des entreprises. Une attention particulière doit donc être portée lors de la phase de découverte/définition des services métiers pour que les briques constitutives du nouveau SI (services métiers) soient adaptées (ni trop grossières, ni trop détaillées).  En effet, il faut garder en tête que les architectures informatiques sont au service de la société, et que ces dernières ne doivent pas devenir un poids pour elle ; ce qui serait le cas si ces briques n&#8217;étaient pas correctement définies.</p>
<p>De même, tout changement d&#8217;architecture doit servir l&#8217;entreprise. Bien souvent on se penche sur les SOA pour la réutilisabilité et la flexibilités qu&#8217;elles offrent. Ces qualités intrinsèques des SOA serviront généralement votre entreprise, mais il reste important de vérifier auparavant que les coûts de restructuration que leur mise en place va demander en vaudront bien la chandelle (en gros que le ROI sera conséquent).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.betecommechou.com/2009/01/rappels-sur-soa-service-oriented-architectures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SOAP</title>
		<link>http://www.betecommechou.com/2009/01/soap/</link>
		<comments>http://www.betecommechou.com/2009/01/soap/#comments</comments>
		<pubDate>Mon, 26 Jan 2009 13:15:59 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Architecture Applicative]]></category>
		<category><![CDATA[Débutant]]></category>
		<category><![CDATA[Web services]]></category>

		<guid isPermaLink="false">http://www.effervescience.com/?p=11</guid>
		<description><![CDATA[Introduction : SOAP est un protocole basé sur XML permettant l&#8217;échange de messages sur les réseaux informatique. On utilise s&#8217;appuie généralement le protocole de transport HTTP ou HTTPS. SOAP est une des briques de la pile des web service ((web service stack : (Service) Protocol de transport : se charge du transport de l&#8217;information entre [...]]]></description>
			<content:encoded><![CDATA[<p><u><strong>Introduction :</strong></u></p>
<p>SOAP est un protocole basé sur XML permettant l&#8217;échange de messages sur les réseaux informatique. On utilise s&#8217;appuie généralement le protocole de transport HTTP ou HTTPS. SOAP est une des briques de la pile des web service ((<strong>web service stack</strong> :</p>
<ul>
<li><strong>(Service) Protocol de transport :</strong> se charge du transport de l&#8217;information entre les applications. Généralement, il s&#8217;agit de l&#8217;un des protocoles suivants : HTTP, SMTP, FTP.</li>
<li><strong>(XML) Messaging Protocol</strong> : se charge de l&#8217;encodage des message dans un format XML permettant d&#8217;etre compris par tous les intervenants. Les protocoles généralement utilisés sont XML-RPC, WS-Addressing, et SOAP.</li>
<li><strong>(Service) Description Protocol</strong> : sert à faire la description de l&#8217;interface publique d&#8217;un service web. On utilise généralement le format WSDL</li>
<li><strong>(Service) Discovery Protocol : </strong>centralise les services au sein d&#8217;un annuair, afin que tous les services puissent y pousser leur description, ce qui en rend la découverte et l&#8221;utilisation plus aisée. C&#8217;est généralement l&#8217;API UDDI qui est utilisée pour la découverte des services.</li>
</ul>
<p>)) sur lesquelles les couches plus élevées peuvent s&#8217;appuyer.Il existe plusieurs modèles d&#8217;envoyer les message dans SOAP, mais le plus fr&#8221;quent est le RPC  (Remote Procédure Call), dans lequel un des noeuds envoie une requete à l&#8217;autre qui lui répond immédiatement. SOAP est le successeur du protocol XML-RPC quoiqu&#8217;il emprunte sa méthode de transport et sa structuration à d&#8217;autre (probablement WDDX)</p>
<p><u><strong>Histoire :</strong></u></p>
<p>A l&#8217;origine, SOAP signifiait Simple Object Acces Protocol, ce qui a été changé plus tard en Service Oriented Architecture Protocol. Ce changement s&#8217;est fait lorsque ce standard est devenu une recommandation du W3C. Ce protocole a été initialement créé par Dave Winer, Don Box, Bob Atkinson, and Mohsen Al-Ghosein en 1998.</p>
<h2></h2>
<p><span class="editsection"></span><u><strong><span class="mw-headline">Transport methods</span></strong></u></p>
<p>SOAP se sert d&#8217;un protocole de couche application Internet comme un protocole de transport (ce qui lui vaut bien des critiques). Tant HTTP que SMTP sont utilisés come méthodes de transport pour SOAP, sachant que c&#8217;est HTTP qui est le plus utilisé, du fait de sa plus grandefacilité d&#8217;emploi au sein des infrastructures internet. En particulier SOAP fonctionne très bien au travers des firewall, il peut également être utilisé sur HTTPS en mode d&#8217;authentification simple ou mutuelle. Cette facilité est un de ses gros avantages par rapport à GIOP/IIOP qui est généralement filtré par les firewalls. XML a été choisi en raison sa large adoption dans les grandes entreprises, ainsi que pour les développements open source qu&#8217;il suscite.</p>
<h2></h2>
<p><u><strong><span class="editsection">Avantages et désavantages :</span></strong></u></p>
<blockquote><p><u>Avantages</u></p></blockquote>
<ul>
<li>L&#8217;utilisationde SOAP est bien adaptée aux filtrages actuels (proxy et firewalls)</li>
<li>SOAP permet l&#8217;utilisation de différents protocoles. Généralement on utilise néanmoins HTTP.</li>
</ul>
<blockquote><p><u>Faiblesses</u></p></blockquote>
<ul>
<li>Du fait de l&#8217;utilisation de XML, qui est très verbeux, SOAP peut nuire aux performances, face aux autres middleware de type binaire (type CORBA)  dont les communications sont plus concises. Ce problème ne se sent généralement que lorsque les messages sont suffisament importants. Il existe par ailleurs des manières d&#8217;optimiser les messages SOAP ((http://en.wikipedia.org/wiki/MTOM))</li>
<li>Plusieurs implémentation de SOAP limitent la quantité de données envoyées.</li>
<li>Quand on ne s&#8217;appuie que sur HTTP (et qu&#8217;on utilise pas WS-Addressing ou ESB) les roles des interlocuteurs sont fixes : seule une des deux parties (client) peut utiliser les services de l&#8217;autres (serveur)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.betecommechou.com/2009/01/soap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WS-Security (WSS)</title>
		<link>http://www.betecommechou.com/2009/01/ws-security-wss/</link>
		<comments>http://www.betecommechou.com/2009/01/ws-security-wss/#comments</comments>
		<pubDate>Fri, 23 Jan 2009 13:15:35 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Architecture Applicative]]></category>
		<category><![CDATA[Débutant]]></category>
		<category><![CDATA[Web services]]></category>

		<guid isPermaLink="false">http://www.effervescience.com/?p=10</guid>
		<description><![CDATA[WS-Security (Web Services Security) est un protocole de communication permettant d&#8217;appliquer des règles de sécurité aux web services. Ce standard, maintenant sous la responsabilité de Oasis-Open et publié en Avril 2004, est issu des travaux joints de IBM, Microsoft, VeriSign et Forum Systems. WSS contient des spécifications permettant d&#8217;implémenter l&#8217;intégrité ((l&#8217;intégrité de message est assurée [...]]]></description>
			<content:encoded><![CDATA[<p><strong>WS-Security</strong> (<strong>Web Services Security</strong>) est un protocole de communication permettant d&#8217;appliquer des règles de sécurité aux web services. Ce standard, maintenant sous la responsabilité de  Oasis-Open et publié en Avril 2004,  est issu des travaux joints de IBM, Microsoft, VeriSign et Forum Systems.</p>
<p>WSS contient des spécifications permettant d&#8217;implémenter l&#8217;intégrité ((l&#8217;intégrité de message est assurée en utilisant la Signature XML et des jetons de sécurité, ce qui assure que les messages sont bien provenus de l&#8217;expéditeur adéquat et n&#8217;ont pas été modifiés en transit.)), la confidentialité (( la confidentialité a pour but de garder les parts d&#8217;un message de SOAP confidentiel. On utilise le Cryptage XML et des jetons de sécurité pour  cela)) et l&#8217;authentification des messages SOAP échangés par les différents webservices. Ces mécanismes peuvent être utilisés (voire combinés) pour une grande variété de technologies d&#8221;encryption, WSS détaille l&#8217;utilisation de SAML , Kerberos et de différents formats de certificats tel que X.509.</p>
<p>Les spécification WSS apportent donc aux développeurs de services web de sécuriser les echoanges SOAP de bout en bout ((L&#8217;intégrité et la confidentialité des services web peut également etre assurée par l&#8217;utilisation de Transport Layer Sécurity (TLS), en envoyant par exemple les messages sur HTTPS. Cela permet de réduire significativement les overheads en supprimant le besoin d&#8217;encodage des clés et de signature des messages en ASCII avant leur envoi. Le problème majeur de TLS est dans le cas d&#8217;utilisation de serveur proxy lors du routage du serveur. Par exemple : un serveur verra la requête arriver du proxy et non du client lui même. Cela peut être évité en posant une copie du certificat client sur le proxy ou en ayant un certificat connu par le serveur permettant de générer une pari clé/ certificat en phase avec le client. Cependant comme le proxy agit sur le message, cette solution n&#8217;assure pas une sécurité de bout en bout.)).</p>
<p>WS-Security décrit comment encoder et attacher une signature et des entêtes encryptées aux messages SOAP. De plus cela décrit comment attacher des jetons de sécurité (Usernamen, jetons X509., SAML, REL ou Kerberos ou tout autre clés encryptée) aux messages.  Avec WSS, le champ d&#8217;action de ces mécanismes peut etre étendu en déplacant des information d&#8217;authentification au niveau des requetes aux services web.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.betecommechou.com/2009/01/ws-security-wss/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows Communication Foundation</title>
		<link>http://www.betecommechou.com/2009/01/windows-communication-foundation/</link>
		<comments>http://www.betecommechou.com/2009/01/windows-communication-foundation/#comments</comments>
		<pubDate>Wed, 21 Jan 2009 13:15:09 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Architecture Applicative]]></category>
		<category><![CDATA[Débutant]]></category>

		<guid isPermaLink="false">http://www.effervescience.com/?p=9</guid>
		<description><![CDATA[IntroductionWindows Communication Foundation (WCF) est le nom actuel du projet Indigo lancé par Microsoft. C&#8217;est un sous système permettant à des applications sur une ou plusieurs machines reliées par réseau de communiquer entre elles.Les application WCF peuvent etre développées dans tous les langages compatibles avec .Net.C&#8217;est une des quatre interfaces (WCF, WPF, WCS et WWF) [...]]]></description>
			<content:encoded><![CDATA[<table>
<tr>
<td><u><strong>Introduction</strong></u><strong>Windows Communication Foundation</strong> (<strong>WCF) </strong>est le nom actuel du projet Indigo lancé par Microsoft. C&#8217;est un sous système permettant  à des applications sur une ou plusieurs machines reliées par réseau de communiquer entre elles.Les application WCF peuvent etre développées dans tous les langages compatibles avec .Net.C&#8217;est une des quatre interfaces (WCF, WPF, WCS et WWF) qui composent le Framework .Net 3.0 distribué avec Windows Vista et Windows Server 2008 et compatible également par XP et windows 2003 server.</p>
<p>Le modèle WCF regroupe <a href="http://en.wikipedia.org/wiki/Web_Services" title="Web Services">Web Services</a> , <a href="http://en.wikipedia.org/wiki/.NET_Remoting" title=".NET Remoting">.NET Remoting</a>, <a href="http://en.wikipedia.org/wiki/Microsoft_Transaction_Server" title="Microsoft Transaction Server">Distributed Transactions</a>, et <a href="http://en.wikipedia.org/wiki/Microsoft_Message_Queuing" title="Microsoft Message Queuing">Message Queues</a> en un modèle de programmation orienté service pour les architectures distribuées. Cela est prévu de permettre un développement de web services plus rapide s&#8217;appuyant sur une API unique, que les communication soient au sein de la meme machine, sur un réseau local ou sur internet.</td>
<td>
<p class="thumbinner" style="width: 302px"><span class="internal"><img src="http://upload.wikimedia.org/wikipedia/en/thumb/4/49/DotNet3.0.svg/300px-DotNet3.0.svg.png" alt="This subsystem is a part of .NET Framework 3.0" longdesc="/wiki/Image:DotNet3.0.svg" class="thumbimage" height="364" width="300" title="Windows Communication Foundation" /></span></p>
</td>
</tr>
</table>
<p>WCF est exécuté dans une zone sécurisée (sandbox)  et fournit le modèle de sécurité fourni par toutes les applications .Net.</p>
<p>WCF utilise des messages SOAP pour les communications entre processus.. Quand un processus WCF discute avec un processus non WCF, le langage XML est utilisé pour les messages SOAP. Pour les messages entre processus WCF, les messages SOAP sont encodés au format binaire.</p>
<h2></h2>
<p><strong>Service </strong><strong>WCF </strong></p>
<p>Un service WCF est composé de trois parties</p>
<ul>
<li>Une classe &#8220;service&#8221; : qui implémente le service qui doit etre rendu</li>
<li>un environnement hôte : pour hébérger ce service</li>
<li>un ou plusieurs points finaux : auxquels les clients se connectent.</li>
</ul>
<p>Toutes les communications se font au travers des point finaux. Chacun définit un contrat spécifiant quelles méthodes de la classe &#8220;service&#8221; sont accesibles par son biais. Chacun définit également le binding (l&#8217;attachement) comment un client communiquera avec le service le le host. L&#8217;hébergement des service peut se faire au travers de Windows Activation Services, de IIS.</p>
<p><strong>Définir un Service WCF</strong></p>
<p>Une classe de service WCF implémente plusieurs services par le biais de méthides. Par ailleurs, elle implémente au moins un contrat de service (service contract) dans lequel est défini les opérations qui peuvent etre exécutée par le service. Elle peut également (optionnellement) définir des contrats de données (data contracts) précisant quels jeux de données peuvent être accédés par les service.</p>
<p>Ces contrats sont défini en utilisant des attributs .Net. Toutes les classes exposée en tant que service WCF doivent être marquées avec l&#8217;attribut <em>ServiceContract</em> ou implémenter une interface marquée par cet attribut. Toutes les méthides qui peuvent être invoquées en utilisant des messages SOAP doivent etre marquées par l&#8217;attribut <em>OperationContract</em>.  Ces attributs génèrent automatiquement  des description WSDL pour les méthodes exposées qui peuvent alors être accédées par les clients.</p>
<p>Un service peut utiliser plusieurs contrats de services en utilisant plusieurs interface .Net (chacune marquée par son contrat de service). Une service de classe peut implémenter toutes les interfaces.</p>
<p>Ces deux attributs de contrats permettent également à un interface de faire référence à un ancien contrat, ce qui permet de supporter le versionning des interfaces.</p>
<p>Tous les contrats de services ont (explicitement ou non) un contrat de données qui définit sur que jeu de données les services peuvent travailler.Pour les types simples (in, double&#8230;) le contrat de données est géré automatiquement par WCF. Pour les types plus complexes (tableaux, struct&#8230;) ce contrat doit être défini explicitement. Ces contrats spécifient comment les données sont sérialisées et désérialisées (et donc la personnalisation de ces opérations). Ces contrats sont définis en utilisant l&#8217;attribut <em>DataContract </em>d&#8217;une classe ou d&#8217;une structure. Les membres des structures de données ainsi partagées devont etre marquées par l&#8217;attribut <em>DataMember</em> pour leur permettre d&#8217;être transférer entre le service et son client.</p>
<p>Le comportement (gestion de la concurrence d&#8217;accès, création de nouvelles instances du service&#8230;) du service et des opérations peut etre controlé en utiliasnt les attributs <em>ServiceBehavior</em> <em>et OperationBehavior </em>respectivement.</p>
<h3></h3>
<p><span class="editsection"></span><strong>Définir les point finaux (endpoints)</strong><span class="mw-headline"></span></p>
<p>Les clients se connectent au services WCF au niveau des points finaux. Tous les services exposent leurs contrats via un ou plusieurs poinnts finaux. Un point final est composé d&#8217;une adresse (une URL spécifiant ou le point peut etre accédé),  et des propriétés de  binding (attachement) qui spécifient comment les données peuvent être transmises, le protocole ainsi que les mécanismes de sécurité. WCF propose les protocoles standards (SOAP/HTTP, SOAP/TCP, SOAP/MQ&#8230;)</p>
<h2><span class="mw-headline">Communication with the service</span></h2>
<p>Un client peut invoquer un service WCF en utilisant n&#8217;importe quel mécanisme RPC permettant de l&#8217;invoquer via un appel à une méthode. Tous les appels de services sont bloquant, c&#8217;est à dire que le client est figé en attandant que le service exécute sa requete. La requete doit être faite au travers d&#8217;un obhjet proxy, connecté au point final du service souhaité. Tous les appels adressés au proxy seront re-routé au service concerné et c&#8217;est également via le proxy que les réponses seront apportées au client. WCF gère la création du proxy, il extrait du point final la définition WSDL  et créé le proxy de communication en utilisant le protocole spécifié dans le binding du point final. Il se charge également de la traduction du résultat dans le format attendu par le client.</p>
<p>WCF supporte les appels non bloquant en passant par des messages. Les proxy ne sont pas requis dans ce cas, et les réponses seront également sous forme de message. Le blocage dans ce cas ne durera que le temps nécéssaire à l&#8217;appel. Il faut pour cela implémeter des Message Queues gérant les files d&#8217;attentes. Cette gestion permet également de  faire des appels à un service momentanément inactif (pour autant que la possibilité de gérer les réponses en différé soit implémenté au niveau du client)</p>
<p>(libre traduction et adaptation de wikipedia US)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.betecommechou.com/2009/01/windows-communication-foundation/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Architecture multicouche</title>
		<link>http://www.betecommechou.com/2009/01/architecture-multicouche/</link>
		<comments>http://www.betecommechou.com/2009/01/architecture-multicouche/#comments</comments>
		<pubDate>Mon, 19 Jan 2009 13:01:28 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Architecture Applicative]]></category>

		<guid isPermaLink="false">http://www.effervescience.com/?p=8</guid>
		<description><![CDATA[On peut diviser les architecture applicatives en trois parties principales : Les couches logiques— C&#8217;est la première étape de la définition d&#8217;une architecture informatique La vue modèle — La vue modèle représente tous les modèles utilisé dans l&#8217;architecture de l&#8217;application Les couches physiques — Cette dernière étape de la définition est étroitement liée à la [...]]]></description>
			<content:encoded><![CDATA[<p>On peut diviser les architecture applicatives en trois parties principales :</p>
<ul>
<li>Les couches logiques— C&#8217;est la première étape de la définition d&#8217;une architecture informatique</li>
<li>La vue modèle — <span class="smalltext">La vue modèle représente tous les modèles utilisé dans l&#8217;architecture de l&#8217;application</span></li>
<li>Les couches physiques — <span class="smalltext">Cette dernière étape de la définition est étroitement liée à la phase de déploiement (UML)</span></li>
</ul>
<p><span style="text-decoration: underline;"><strong>Les couches Logiques</strong></span></p>
<p>Les couches logiques sont généralement définies par leur domaine d&#8217;action . La définition de telle couches permet de garantir une meilleure réutilsabilité des composant et de faciliter leur maintenance. Il est primordial, lors de la définition des couches de l&#8217;application de porter une attention particulière sur les communication inter-couche.  Un représentation généralement admise des SI repose sur les couches logiques suivantes :</p>
<ol>
<li><strong>Couche de Présentation </strong>: Cette couche représente l&#8217;interface graphique utilisateur. Elle est basée sur des technologies client est est fréquemment générée coté serveur par un environnement J2EE. C&#8217;est dans cette couche qu&#8217;interviennent les validation des saisies ainsi que le formatage des affichages.</li>
<li><strong>Couche d&#8217;application :</strong> Cette couche, reliée à la couche de présentation prend en charge la gestion des événement induits par la couche de présentation (navigation entre écrans, clics, gestion des éléments graphiques&#8230;). Ces deux couches sont étroitement liées et sont souvent regroupées, ou peuvent interagir en se reposant sur des frameworks (1) dédiés.</li>
<li><strong>La couche de Service métier :</strong> C&#8217;est dans cette couche que résident les services à proprement parlé, qui sont fournis aux différentes applications. Ils implémentent les différents besoins du domaine d&#8217;activité de l&#8217;entreprise, ainsi que des services plus transverses tels que l&#8217;authentification, la gestion des autorisation, la gestion des transactions&#8230; Ces services sont utilisés dans les couches supérieures pour répondre aux besoins des utilisateurs. Ils sont implémentés sous forme de classes simples qui sont indépendantes du type des données sources. Dans ce sens il correspondent à une vison objet du domaine métier. Ils sont identifié lors de la phase de conception et sont référencé dans les spécifications techiques détaillées du projet.</li>
<li><strong>La couche d&#8217;accès aux données : </strong>Dans cette couche on encapsule des acces à des systèmes externes et aux ressources. Cette couche contient étaglement les mécénismes de persistence (implémenté par des moteurs de mapping relationnel/objet).</li>
<li><strong>La couche de données :</strong> Cette couche contient les systemes de gestion des données (SGBD) uniquement, c&#8217;est à dire qu&#8217;il ne doit pas y voir de code dans cette couche.</li>
</ol>
<p><span style="text-decoration: underline;"><strong>La vue modèle</strong></span></p>
<p>elle recense les modèles suivants :</p>
<ol>
<li><strong>Le Modèle de Présentation :</strong> il est composé d&#8217;objets non persistents fortement dépendant de l&#8217;interface graphique de l&#8217;application. Ces objets peuvent en référencer d&#8217;autre, faisant partie du modèle public de la couche service métier.</li>
<li><strong>Le modèle Public : </strong>est une représentation du modèle fonctionnel. Il est indépendant du modèle technique (private model).  Ce modèle est régi par les règles suivantes :
<ul>
<li>Les objets métiers sont utilisés pour communiquer les informations à la couche de présentation ou a des applications externes.. Les objets métiers du modèle public sont indépendant des objets du modèle privé</li>
<li>Les objets métiers ne possède aucune méthid, si ce n&#8217;est des méthode totalement dédiées à l&#8217;acces au données (getters). Il ne doit y avoir aucune méthode de traitement ou validation</li>
<li>Les attributs des objets métiers stockent uniquement des informations publiques, on ne doit y trouver aucune information privée ou technique.</li>
<li>Un objet métier peut référencer d&#8217;autres objets métiers</li>
<li> L&#8217;héritage n&#8217;est pas autoriser entre objets métiers</li>
<li>Les objets métiers ne doivent utiliser que des type de données collections simples tels que les tableaux.</li>
<li>Aucun cycle n&#8217;est permis dans le graphe d&#8217;association des objets métiers.</li>
<li>Leur usage étant transverse à plusieurs couches, ces objets doivent etre sérialisable</li>
<li>Les objets métiers sont volatiles (non persistent).</li>
</ul>
</li>
<li><strong>Le modèle privé </strong>est constitué d&#8217;objets persistent plus ou moins dépendant du modèle physique (ex schéma de base de données). C&#8217;est la vue orienté objet du schéma de base de données. Ce modèle est régi par les règles suivantes :
<ul>
<li>Il faut utiliser un system de mapping relationnel/objet.</li>
<li>Le modèle privé doit etre indépendant du systeme de mapping relationnel/objet.</li>
<li>Il faut incoporer des mécanismes de liaison de données non objets  (jointures de tables&#8230;).</li>
<li>Il faut optimiser ce modèle afin de rendre les requêtes plus performantes.</li>
</ul>
</li>
<li><strong>Le modèle physique </strong>est relatif à la couche physique dans laquelle les données sont stockées. Généralement il s&#8217;agit du schéma de la base de données.</li>
</ol>
<p><span style="text-decoration: underline;"><strong>La couche physique</strong></span></p>
<p>La couche physique est la troisième étape de la définition de l&#8217;architecture. Elle correspond à la phase de déploiement UML.</p>
<p>On s&#8217;accorde fréquemment à découper la couche physique en trois zone de sécurité différentes :</p>
<ol>
<li>DMZ Présentation : Elle inclut la couche de présentation et la couche d&#8217;application</li>
<li>DMZ Application : Elle inclut la couche service métier et la couche d&#8217;accès aux données</li>
<li>DMZ Données : Elle inclut la couche de données</li>
</ol>
<p>Ces zones de sécurité, on le constate sont distinctes de la notion de couche applicative, telles qu&#8217;elles sont définies ci-dessus.<br />
(1) cf. sur articles concernant les frameworks.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.betecommechou.com/2009/01/architecture-multicouche/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction à l&#8217;architecture informatique</title>
		<link>http://www.betecommechou.com/2009/01/introduction-a-larchitecture-informatique/</link>
		<comments>http://www.betecommechou.com/2009/01/introduction-a-larchitecture-informatique/#comments</comments>
		<pubDate>Fri, 16 Jan 2009 12:55:41 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[Architecture Applicative]]></category>
		<category><![CDATA[Architecture système]]></category>
		<category><![CDATA[Autres]]></category>
		<category><![CDATA[Débutant]]></category>

		<guid isPermaLink="false">http://www.effervescience.com/?p=6</guid>
		<description><![CDATA[L&#8217;architecture informatique décrit la structuration d&#8217;un système informatique en terme de composants et d&#8217;organisation de ses fonctions. Il existe plusieurs vision d&#8217;un systeme d&#8217;information : La vision logique/physique La vision par groupe de composants informatiques (logicielle, matérielle, middleware, réseau&#8230;) La vision par technologie informatique (multicouche, web, EAI, CRM, ERP&#8230;) La vision par contraintes (Architecture haute [...]]]></description>
			<content:encoded><![CDATA[<p>L&#8217;<strong>architecture informatique</strong> décrit la structuration d&#8217;un système informatique en terme de composants et d&#8217;organisation de ses fonctions. Il existe plusieurs vision d&#8217;un systeme d&#8217;information :</p>
<ol>
<li>La vision logique/physique</li>
<li>La vision par groupe de composants informatiques (logicielle, matérielle, middleware, réseau&#8230;)</li>
<li>La vision par technologie informatique (multicouche, web, EAI, CRM, ERP&#8230;)</li>
<li>La vision par contraintes (Architecture haute disponibilité : faible taux de pannes,</li>
<li> Architecture massivement parallèle : forte capacité de calcul,  Architecture sécurisée : contrainte de sécurité)</li>
</ol>
<p>Face à cette pluralité de point de vue des cadres d&#8217;architecture sont communément employés dans la gouvernance ((Le critère essentiel d&#8217;une bonne gouvernance est que les mécanismes de fonctionnement de l&#8217;institution soient organisés de façon à éviter que les intérêts des <strong>mandatés </strong>prennent le pas sur ceux de leurs mandants .)) des technologies de l&#8217;information et des systèmes d&#8217;information. Une organisation peut souhaiter que certains modèles soient obligatoires pour la validation d&#8217;une <span class="new">conception de systèmes</span>. De même, elle peut souhaiter spécifier que certaines vues soient employées dans la documentation des systèmes achetés.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.betecommechou.com/2009/01/introduction-a-larchitecture-informatique/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Introduction à SOA</title>
		<link>http://www.betecommechou.com/2009/01/introduction-a-soa/</link>
		<comments>http://www.betecommechou.com/2009/01/introduction-a-soa/#comments</comments>
		<pubDate>Wed, 14 Jan 2009 12:53:56 +0000</pubDate>
		<dc:creator>Francois</dc:creator>
				<category><![CDATA[.Net]]></category>
		<category><![CDATA[Architecture Applicative]]></category>
		<category><![CDATA[Introduction]]></category>
		<category><![CDATA[Moyen]]></category>

		<guid isPermaLink="false">http://www.effervescience.com/?p=5</guid>
		<description><![CDATA[On peut définir les architecture orientées service (SOA) comme des architecture logicielles permettant de créer des applications implémentant des processus métier ou des services à l&#8217;aide de boites noires faiblement reliées entres elles. Les Service Oriented Architecture (SOA) sont une évolution des architecture distribuées et de la programmation modulaire. Elles fondent les applications en se [...]]]></description>
			<content:encoded><![CDATA[<p>On peut définir les <strong>architecture orientées service</strong> (<strong>SOA</strong>) comme des architecture logicielles permettant de créer des <strong>applications </strong>implémentant des processus métier ou des services à l&#8217;aide de boites noires faiblement reliées entres elles.</p>
<p>Les Service Oriented Architecture (SOA) sont une évolution des architecture distribuées et de  la programmation modulaire. Elles fondent les applications en se basant sur des services logiciels de base qui implémentent généralement des fonctionnalités (appelé service) tels que remplir un formulaire, commander en ligne un livre ou un ticket d&#8217;avion&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.betecommechou.com/2009/01/introduction-a-soa/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!--Database Caching using disk

Served from: www.betecommechou.com @ 2010-09-10 14:58:05 -->