<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.msdn.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Security &amp; Architecture : Metodologie</title><link>http://blogs.msdn.com/mariofontana/archive/tags/Metodologie/default.aspx</link><description>Tags: Metodologie</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Acceptance Test Engineering Guide – BETA 2</title><link>http://blogs.msdn.com/mariofontana/archive/2009/07/01/acceptance-test-engineering-guide-beta-2.aspx</link><pubDate>Wed, 01 Jul 2009 17:31:10 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9811160</guid><dc:creator>mfontana</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/9811160.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=9811160</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=TestingGuidance" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; margin-left: 0px; border-top: 0px; margin-right: 0px; border-right: 0px" title="image" border="0" alt="image" align="left" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/58d8abf74405_E0BE/image_5.png" width="120" height="158" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=TestingGuidance" target="_blank"&gt;Questa nuova guida di P&amp;amp;P&lt;/a&gt; parla dell’ &lt;strong&gt;&lt;em&gt;acceptance testing &lt;/em&gt;&lt;/strong&gt;ovvero (in due parole) della disciplina che racchiude tutte le scelte che devono essere fatte per verificare se un particolare software è compliant ai requisiti richiesti e quindi può essere considerato valido per sè o per i propri clienti.&lt;/p&gt;  &lt;p&gt;E’ una disciplina non comunemente adottata nei progetti e quindi ne consiglio una lettura, in modo da capire come eventualmente adattarla al proprio ciclo di sviluppo del software.&lt;/p&gt;  &lt;p&gt;Questa guida copre vari temi del acceptance testing analizzandoli da diversi punti di vista fornendo un aiuto alla pianificazione, alla creazione ed esecuzione di questi test. Di particolare interesse la descrizione di cosa debba significare “&lt;em&gt;software accettato&lt;/em&gt;”&amp;#160; e come giustificare l’introduzione del Acceptance Testing all’interno della propria organizzazione.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/58d8abf74405_E0BE/image_4.png"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/58d8abf74405_E0BE/image_thumb_1.png" width="232" height="244" /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Inoltre, questa guida sarà la prima di 3 pubblicazioni sul tema:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Acceptance test engineering guide (questa)&lt;/li&gt;    &lt;li&gt;Acceptance test automation guide.&lt;/li&gt;    &lt;li&gt;Tool support for acceptance test-driven development&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Buona lettura&lt;/p&gt;  &lt;p&gt;--Mario&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9811160" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Metodologie/default.aspx">Metodologie</category></item><item><title>Parte l'iniziativa italiana MSDN Talks</title><link>http://blogs.msdn.com/mariofontana/archive/2008/03/31/parte-l-iniziativa-italiana-msdn-talks.aspx</link><pubDate>Mon, 31 Mar 2008 11:25:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8344579</guid><dc:creator>mfontana</dc:creator><slash:comments>3</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/8344579.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=8344579</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/MSDNTalks_10675/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/MSDNTalks_10675/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="97" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/MSDNTalks_10675/image_thumb_1.png" width="101" align="left" border="0" mce_src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/MSDNTalks_10675/image_thumb_1.png" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;3..2..1..Pronti via...Parte ufficialmente: &lt;strong&gt;MSDN Talks &lt;/strong&gt;!! Sull'onda dei feedback delle prime interviste estendiamo lo scope anche ai numerosi esperti presenti all'interno di Microsoft italia (e non solo) al fine di condividere esperienze e passioni maturate durante la realizzazioni di progetti reali. Per l'occasione abbiamo anche un LOGO disegnato dal nostro &lt;a href="http://blogs.msdn.com/designexperience/" target="_blank"&gt;creativo di fiducia&lt;/a&gt; :-)&lt;/p&gt;  &lt;p&gt;Non solo tecnologia quindi, ma anche best practices e consigli pratici frutto di mesi di lavoro sul campo... Queste interviste, come avrete modo di constatare sono molto &amp;quot;naturali&amp;quot; ovvero non ci sono prove di registrazione o backstage particolari :-) (nel bene e nel male). L'idea &amp;#232; semplicemente quella di condividere le &amp;quot;chiacchierate&amp;quot; che spesso facciamo nelle varie riunioni interne oppure, perch&amp;#232; no, alla macchina del caff&amp;#232;... (infatti non vi nascondo che un nome proposto ai video era &lt;strong&gt;Microsoft Caf&amp;#232;&lt;/strong&gt;... ma era troppo simile ad una nota trasmissione di cui io sono un fan sfegatato :-)&lt;/p&gt;  &lt;p&gt;Iniziamo l'avventura con un'intervista ad &lt;strong&gt;Alessandro Huber, &lt;/strong&gt;CTO di &lt;a href="http://www.microsoft.com/italy/business/services/default.mspx" target="_blank" mce_href="http://www.microsoft.com/italy/business/services/default.mspx"&gt;Microsoft Services&lt;/a&gt;, il quale ci parla del ruolo di CTO, del modo di approcciare i progetti da parte di Microsoft Consulting e soprattutto dell'esperienza e le sfide incontrate durante i lunghi mesi di lavoro che hanno portato alla creazione di uno dei maggiori progetti in italia : &lt;a href="http://www.microsoft.com/italy/business/mercati/finance/cff.mspx" target="_blank" mce_href="http://www.microsoft.com/italy/business/mercati/finance/cff.mspx"&gt;CFF (Connected Financial Foundation)&lt;/a&gt; per soluzioni bancarie che &lt;em&gt;Microsoft Corporation&lt;/em&gt; sta trasformando in una solution da distribuire su tutti i mercati world-wide.&lt;/p&gt;  &lt;p&gt;Vista anche la parte introduttiva dei servizi questo video dura un po' di pi&amp;#249; (circa una mezzoretta) di quello che sar&amp;#224; la durata media dei video &lt;strong&gt;MSDN Talks&lt;/strong&gt; (10-20 minuti). I video di &lt;strong&gt;MSDN Talks &lt;/strong&gt;saranno di due tipi : architetturali e di sviluppo. I primi, come quello presentato oggi, parleranno di esperienze nel disegno di soluzioni complesse mentre quelli relaviti allo sviluppo daranno la voce ai senior developers che hanno implementato e portato in produzione le soluzioni.&lt;/p&gt;  &lt;p&gt;Alla linea &lt;em&gt;&amp;quot;classica&amp;quot;&lt;/em&gt; di &lt;strong&gt;MSDN Talks &lt;/strong&gt;si aggiunger&amp;#224; anche la versione &lt;strong&gt;&amp;quot;&lt;em&gt;LIVE&lt;/em&gt;&amp;quot;&lt;/strong&gt; dove verranno intervistate persone riconosciute particolarmente esperte di tecnologie Microsoft durante i vari eventi in giro per l'italia (e non solo).&lt;/p&gt;  &lt;p&gt;&lt;a href="http://video.msn.com/video.aspx?vid=c477bf4a-9b44-4e44-b01b-d6c948f5c741" target="_blank"&gt;Non mi resta che augurarvi buona visione...&lt;/a&gt;&lt;/p&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;div class="wlWriterSmartContent" id="scid:5737277B-5D6D-4f48-ABFC-DD9C333F4C5D:74b4baa4-7669-4118-a957-d82872a8bed3" style="padding-right: 0px; display: inline; padding-left: 0px; padding-bottom: 0px; margin: 0px; padding-top: 0px"&gt;&lt;div id="6a67040a-8668-4d9a-b25a-627b51ec82b5" style="margin: 0px; padding: 0px; display: inline;"&gt;&lt;div&gt;&lt;a href="http://video.msn.com/video.aspx?vid=c477bf4a-9b44-4e44-b01b-d6c948f5c741&amp;amp;ifs=true&amp;amp;fr=msnvideo&amp;amp;mkt=it-IT&amp;amp;brand=&amp;amp;from=writer" target="_new"&gt;&lt;img src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/MSDNTalks_10675/videob91d3433949b.jpg" galleryimg="no" onload="var downlevelDiv = document.getElementById('6a67040a-8668-4d9a-b25a-627b51ec82b5'); downlevelDiv.innerHTML = &amp;quot;&amp;lt;div&amp;gt;&amp;lt;embed src=\&amp;quot;http://images.video.msn.com/flash/soapbox1_1.swf\&amp;quot; quality=\&amp;quot;high\&amp;quot; width=\&amp;quot;432\&amp;quot; height=\&amp;quot;364\&amp;quot; wmode=\&amp;quot;transparent\&amp;quot; type=\&amp;quot;application/x-shockwave-flash\&amp;quot; pluginspage=\&amp;quot;http://macromedia.com/go/getflashplayer\&amp;quot; flashvars=\&amp;quot;c=v&amp;amp;v=c477bf4a-9b44-4e44-b01b-d6c948f5c741&amp;amp;ifs=true&amp;amp;fr=msnvideo&amp;amp;mkt=it-IT&amp;amp;brand=&amp;amp;from=writer\&amp;quot; &amp;gt;&amp;lt;\/embed&amp;gt;&amp;lt;\/div&amp;gt;&amp;quot;;" alt=""&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;  &lt;p mce_keep="true"&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;h2&gt;&lt;strong&gt;Il progetto CFF&lt;/strong&gt;&lt;/h2&gt;  &lt;p&gt;Il CFF permette di realizzare una serie di moduli funzionali a livello infrastrutturale che consentano di realizzare una piattaforma finanziaria a livello enterprise e che al contempo contenga l&amp;#8217;approccio architetturale service-oriented in modo da rendere flessibile e semplice ogni tipo di integrazione. &lt;/p&gt;  &lt;p&gt;Il CFF &amp;#232; quindi un&amp;#8217;infrastruttura applicativa modulare con le seguenti caratteristiche :&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Piattaforma per la realizzazione di Smart Client e Web Client. &lt;/li&gt;    &lt;li&gt;Piattaforma Multicanale a supporto dei diversi devices che potranno essere utilizzati oggi e in futuro. &lt;/li&gt;    &lt;li&gt;Infrastruttura Modulare basata su SOA &lt;/li&gt;    &lt;li&gt;Contenitore delle diverse applicazioni con condivisione del contesto &lt;/li&gt;    &lt;li&gt;Supporto di servizi applicativi quali: transazioni, messaging, deployment e aggregazione di servizi. &lt;/li&gt;    &lt;li&gt;Autenticazione, Autorizzazione e sicurezza in generale. &lt;/li&gt;    &lt;li&gt;Ambiente per l&amp;#8217;Orchestrazione dei processi di business. &lt;/li&gt;    &lt;li&gt;Servizi di integrazione tecnologici ed applicativi. &lt;/li&gt;    &lt;li&gt;Supporto all&amp;#8217;analisi dei processi di business: Business Activity Monitoring. &lt;/li&gt;    &lt;li&gt;Supporto per la realizzazione di applicazioni instrumentate, gestite e affidabili. &lt;/li&gt;    &lt;li&gt;Metodologie basate su MSF (Microsoft Solutions Framework) implementato via Team System. &lt;/li&gt;    &lt;li&gt;Sicurezza e affidabilit&amp;#224; verificate durante tutto il ciclo di sviluppo della soluzione. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Alcuni link informativi sul CFF&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.key4biz.it/News/2007/06/01/Tecnologie/Finanza_e_IT_Microsoft_Italia_presenta_la_nuova_stategia_e_la_piattaforma_modulare_CFF.html" href="http://www.key4biz.it/News/2007/06/01/Tecnologie/Finanza_e_IT_Microsoft_Italia_presenta_la_nuova_stategia_e_la_piattaforma_modulare_CFF.html" mce_href="http://www.key4biz.it/News/2007/06/01/Tecnologie/Finanza_e_IT_Microsoft_Italia_presenta_la_nuova_stategia_e_la_piattaforma_modulare_CFF.html"&gt;http://www.key4biz.it/News/2007/06/01/Tecnologie/Finanza_e_IT_Microsoft_Italia_presenta_la_nuova_stategia_e_la_piattaforma_modulare_CFF.html&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a title="http://www.cwi.it/showPage.php?template=articoli&amp;amp;id=17739" href="http://www.cwi.it/showPage.php?template=articoli&amp;amp;id=17739" mce_href="http://www.cwi.it/showPage.php?template=articoli&amp;amp;id=17739"&gt;http://www.cwi.it/showPage.php?template=articoli&amp;amp;id=17739&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;--Mario&lt;/p&gt;  &lt;p&gt;&amp;#160; PS: un saluto particolare a Sandro che per anni ha avuto la pazienza di essere il mio capo e che da quando non lo &amp;#232; pi&amp;#249; &amp;#232; tornato ad essere sereno :-) :-) :-)&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8344579" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Sicurezza/default.aspx">Sicurezza</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Architetture+applicative/default.aspx">Architetture applicative</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Information/default.aspx">Information</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Metodologie/default.aspx">Metodologie</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/SOA/default.aspx">SOA</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/EDA/default.aspx">EDA</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/MSDN+Talks/default.aspx">MSDN Talks</category></item><item><title>Evoluzione dell' ALM nelle nuove architetture applicative</title><link>http://blogs.msdn.com/mariofontana/archive/2008/03/16/evoluzione-dell-alm-nelle-nuove-architetture-applicative.aspx</link><pubDate>Sun, 16 Mar 2008 12:36:08 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8239689</guid><dc:creator>mfontana</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/8239689.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=8239689</wfw:commentRss><description>&lt;p&gt;Gioved&amp;#236; 20 Marzo sar&amp;#242; presente a Milano all'evento di &lt;a href="http://www.bci-italia.com/confexpo.asp?id=st20082" target="_blank"&gt;ItWare&lt;/a&gt; dal titolo &lt;em&gt;&amp;quot;SOA, Web 2.0 e SaaS : un percorso strutturato verso l'IT del futuro&amp;quot;&lt;/em&gt; con l'intervento : &lt;em&gt;Evoluzione dell' ALM nelle nuove architetture applicative&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;Un evento importante per capire le esperienze delle principali societ&amp;#224; che lavorano nelle architetture applicative nelle nell'ambito Enterprise.    &lt;br /&gt;L'evento &amp;#232; rivolto a :&lt;/p&gt;  &lt;li&gt;CIO, Direttori Sistemi Informativi, Organizzazione e Pianificazione di aziende di medie e grandi dimensioni &lt;/li&gt;  &lt;li&gt;Responsabili delle architetture, delle infrastrutture, dello sviluppo e della conduzione dei sistemi &lt;/li&gt;  &lt;li&gt;Project Manager e sviluppatori di applicazioni, prodotti e servizi software&lt;/li&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Abstract del convegno:&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&amp;quot;Le SOA (Services Oriented Architectures) non si comprano: si progettano e si allestiscono.      &lt;br /&gt;Ma alle SOA si arriva solo se ben preparati, se ne sono stati rispettati i prerequisiti e se si hanno le idee chiare.       &lt;br /&gt;E una volta arrivati alle SOA, si &amp;#232; pronti per partire verso traguardi ben pi&amp;#249; ambiziosi. A patto di sapere in che direzione andare, non solo sul piano tecnico, ma soprattutto su quello Manageriale, confrontandosi con il Business su fatti concreti quali l'erogazione dei servizi, il loro contributo alla creazione di valore, il ritorno degli investimenti per l'impresa.&amp;#160; &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;Le esperienze di chi dalle SOA sta gi&amp;#224; traendo i benefici attesi dimostrano che si tratta di affrontare un percorso con molti ostacoli, ma con ben maggiori soddisfazioni, nel quale si coniugano elementi quali il Computing on Demand, la Virtualizzazione, l'impiego del software come servizio (Software as a Service - SaaS) ed il Business Process Outsourcing. Mete alle quali si arriva passando dallo Stack di componenti specifici delle SOA (ESB, Registry, Services Server,..), in abbinamento alle dirompenti tecnologie del Web 2.0, tipo Ajax ed il Mashup.&amp;quot;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;--&lt;/em&gt;Mario&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8239689" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Eventi/default.aspx">Eventi</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Information/default.aspx">Information</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Metodologie/default.aspx">Metodologie</category></item><item><title>Web Service Software Factory: Modeling Edition</title><link>http://blogs.msdn.com/mariofontana/archive/2008/03/02/web-service-software-factory-modeling-edition.aspx</link><pubDate>Sun, 02 Mar 2008 15:30:27 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7982547</guid><dc:creator>mfontana</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/7982547.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=7982547</wfw:commentRss><description>&lt;p&gt;E' uscita da poco la versione per &lt;a href="http://msdn2.microsoft.com/en-us/library/bb931187.aspx" target="_blank"&gt;Visual Studio 2008 della Service Factory&lt;/a&gt; con relativi link agli Hands-on Labs.&lt;/p&gt;  &lt;p&gt;Questa service factory &amp;#232; un insieme di risorse per architetti e developers per realizzare soluzioni a servizi seguendo una serie di design patterns e architectural best practices ben definiti. La soluzione comprende principalmente della documentazione con relativo codice sorgente e tre DSL (Domain Specific Language) per la modellazione della soluzione : &lt;em&gt;Service Contract Model&lt;/em&gt;, &lt;em&gt;Data Contract Model&lt;/em&gt;, ed l' &lt;em&gt;Host Model&lt;/em&gt;.&lt;/p&gt;  &lt;p&gt;L'architettura della software factory &amp;#232; completamente estendibile ed adattabile alle proprie esigenze di progetto. Personalmente quando ero in Microsoft Consulting le ho usate spesso, magari anche solo come riferimento e aiuto nell'impostazione di alcune parti di progetto. Rappresentano comunque materiale importantissimo per chiunque debba progettare delle soluzioni di classe Enterprise.&lt;/p&gt;  &lt;p&gt;Dietro le quinte la Service Factory utilizza le estensioni del GAX/GAT e del DSL Toolkit oltre a varie tecniche per il model validation e il code generation.Nella figura sottostante &amp;#232; rappresentata la dipendenza delle varie tecnologie utilizzate nella Service Factory&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/WebServiceSoftwareFactoryModelingEdition_14C48/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="352" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/WebServiceSoftwareFactoryModelingEdition_14C48/image_thumb.png" width="393" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&amp;lt;/Mario&amp;gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7982547" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Architetture+applicative/default.aspx">Architetture applicative</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/VS2008/default.aspx">VS2008</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Metodologie/default.aspx">Metodologie</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/SOA/default.aspx">SOA</category></item><item><title>Due chiacchiere su SOA e EDA...</title><link>http://blogs.msdn.com/mariofontana/archive/2008/02/13/due-chiacchiere-su-soa-e-eda.aspx</link><pubDate>Thu, 14 Feb 2008 00:17:06 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7624113</guid><dc:creator>mfontana</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/7624113.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=7624113</wfw:commentRss><description>&lt;p&gt;&lt;em&gt;Service Oriented &lt;/em&gt;credo sia uno dei termini più blasonati e "overlodati" (scusate il riferimento Object Oriented, ma non è a caso) degli ultimi anni in ambito architetture applicative. L’architettura orientata ai servizi o &lt;em&gt;service-oriented&lt;/em&gt; può essere considerata una derivazione del concetto object oriented presente nella letteratura dell'ingegneria del software visto con un 'ottica più di business che tecnologica. Infatti, questa architettura si basa sull'ipotesi che processi complessi possano essere ricondotti a componenti o unità di dimensioni limitate e compiute chiamati servizi. Questi servizi possono essere composti da un motore di composizione/orchestrazione per formare le applicazioni di business.  &lt;p&gt;I tre elementi base presenti in una SOA sono :  &lt;p&gt;&lt;strong&gt;Service Consumer &lt;/strong&gt;: colui che utilizza i servizi. (a sua volta può essere un servizio o una applicazione).  &lt;p&gt;&lt;strong&gt;Service Provider &lt;/strong&gt;: colui che eroga il servizio (che è in ascolto di incoming messages).  &lt;p&gt;&lt;strong&gt;Service Broker &lt;/strong&gt;o &lt;strong&gt;Directory &lt;/strong&gt;: registrazione dei servizi ed eroga funzionalità di ricerca.  &lt;p&gt;tra questi attori sono possibili molte modalità di comunicazione chiamate anche Message Exchange Patterns (MEP)-  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/DuechiacchieresuSOAeEDA_69E/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="308" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/DuechiacchieresuSOAeEDA_69E/image_thumb.png" width="398" border="0"&gt;&lt;/a&gt;  &lt;p&gt;L’architettura a servizi SOA (&lt;em&gt;Service Oriented Architecture&lt;/em&gt;) nasce con l’obiettivo di realizzare servizi, chiamati anche processi di business, disponibili a un qualsiasi richiedente o consumer. Il modello SOA consente una conversazione semplice basata sul paradigma consumer/provider tramite interfacce e protocolli standard e l’integrazione di servizi composti.  &lt;p&gt;SOA è un paradigma che prevede lo sviluppo e l’impiego di servizi in accordo con i seguenti principi (o tenets):  &lt;p&gt;&lt;em&gt;• I boundary sono espliciti.&lt;br&gt;• I servizi sono autonomi.&lt;br&gt;• I servizi si scambiano schemi e contratti, non classi.&lt;br&gt;• La compatibilità tra servizi è stabilita via Policy.&lt;/em&gt;  &lt;p&gt;L' architettura SOA non richiede la presenza di server centrali o funzioni amministrative centralizzate, ma consente la comunicazione fra trust diversi e fra entità indipendenti. I moduli e i protocolli non presuppongono la presenza di alcuna tecnologia di implementazione specifica presso l'endpoint applicativo. Inoltre, il paradigma SOA ha ridefinito anche il concetto di applicazione. Un’applicazione non è più semplicemente un’implementazione procedurale locale o distribuita ma al contrario una sequenza di messaggi orchestrati, dinamicamente instradati e trasformati.  &lt;p&gt;L’obiettivo primario di un’Architettura Applicativa definita secondo il modello SOA deve essere quello di abilitare e gestire i processi di business. Infatti, tali processi svolgono un ruolo fondamentale nel determinare il valore effettivo di un'organizzazione. Processi di business ben strutturati consentono alle organizzazioni di creare del valore utilizzando in modo efficiente persone e prodotti. La piattaforma applicativa deve quindi integrare in modo efficace sistemi dipendenti e partner commerciali attraverso processi di business facilmente gestibili al fine di automatizzare e organizzare al meglio le interazioni. Inoltre deve essere garantita un’elevata flessibilità riducendo al minimo la necessità di intervento umano. Queste potenzialità derivano direttamente dalle caratteristiche peculiari di un’architettura SOA. Gli sviluppatori potranno continuare a lavorare nell'ambiente di sviluppo a loro familiare ed in aggiunta avranno l'opportunità di utilizzare servizi basati su standard per garantire maggiore protezione ed affidabilità nell'automazione dei processi di business interni ed esterni all'azienda.  &lt;p&gt;Adottare un modello SOA significa creare un ecosistema infrastrutturale, capace di dare dei benefici a tutti i diversi livelli presenti nell’azienda.  &lt;p&gt;La definizione di una nuova architettura è collegata principalmente alle seguenti macro esigenze strategiche:  &lt;ul&gt; &lt;li&gt;Migliorare la maintenance dei sistemi consolidando le tecnologie.  &lt;li&gt;Centralizzare le attività comuni a tutte le applicazioni.  &lt;li&gt;Interoperabilità tra diverse tecnologie in modo nativo.  &lt;li&gt;Facilitare la definizione e la realizzazione di nuovi processi produttivi.  &lt;li&gt;Aumentare la disponibilità dei servizi aziendali a tutta l’organizzazione.  &lt;li&gt;Permettere una migliore sinergia tra aree aziendali separate.  &lt;li&gt;Aumentare la semplicità d’uso da parte degli utenti.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp; &lt;h2&gt;The Big Picture&lt;/h2&gt; &lt;p&gt;Nella definizione di una infrastruttura applicativa basata sui principi di SOA e di EDA è necessario definire un "ecosistema applicativo" che comprenda tutte queste macro aree:  &lt;p&gt;&amp;nbsp; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/DuechiacchieresuSOAeEDA_69E/image_14.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="307" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/DuechiacchieresuSOAeEDA_69E/image_thumb_6.png" width="397" border="0"&gt;&lt;/a&gt;&amp;nbsp; &lt;p&gt;ovvero:  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/DuechiacchieresuSOAeEDA_69E/image_18.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="325" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/DuechiacchieresuSOAeEDA_69E/image_thumb_8.png" width="402" border="0"&gt;&lt;/a&gt;  &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h2&gt;Event Driven Architecture (EDA)&lt;/h2&gt; &lt;p&gt;Negli ultimi anni, insieme all’architettura SOA, è emerso anche un secondo modello chiamato Event Driven Architecture (EDA).  &lt;p&gt;EDA è un’architettura che permette ai servizi di reagire dinamicamente agli stimoli “esterni”. Questi stimoli possono essere generati da diverse fonti: sistemi, persone, processi di business oppure eventi di natura tecnica predeterminati o non previsti. Gartner fornisce una definizione precisa di evento:  &lt;ul&gt; &lt;li&gt;Evento Ordinario: gli eventi ordinari sono semplicemente qualche cosa che è accaduto.  &lt;li&gt;Evento Software: Un evento Software è la registrazione automatica di quanto accaduto. Gli eventi software sono oggetti, spesso codificati in forma di messaggi, che rappresentano un evento ordinario.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;In EDA gli end-point sono fortemente slegati e gestisce le notifiche con modello PUSH.&lt;/p&gt; &lt;p&gt;Il routing in EDA riveste un aspetto molto importante:&lt;/p&gt; &lt;p&gt;Due tipi di message routing:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;Definito a design-time  &lt;ul&gt; &lt;li&gt;client&amp;lt;-&amp;gt;server  &lt;li&gt;flow based (Biztalk, batch,...)&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Definito a run-time  &lt;ul&gt; &lt;li&gt;content based.  &lt;li&gt;eventi&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt; &lt;h3&gt;Relazioni tra SOA e EDA&lt;/h3&gt; &lt;p&gt;Come si può notare nella figura sottostante SOA e EDA possono coesistere ed hanno molti punti in comune, ma non sono la stessa cosa !!!&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/DuechiacchieresuSOAeEDA_69E/image_8.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="209" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/DuechiacchieresuSOAeEDA_69E/image_thumb_3.png" width="417" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;infatti possiamo riassumere la relazione in 4 casi:&lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/DuechiacchieresuSOAeEDA_69E/image_10.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="262" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/DuechiacchieresuSOAeEDA_69E/image_thumb_4.png" width="422" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;anche in relazione alla scalabilità dei modelli disconnessi &lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/DuechiacchieresuSOAeEDA_69E/image_12.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="292" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/DuechiacchieresuSOAeEDA_69E/image_thumb_5.png" width="431" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;Da un punto di vista pratico vorrei riassumere la realzione in questi termini:  &lt;ul&gt; &lt;li&gt;Riguardano differenti aspetti dello stesso problema (architettura applicativa).  &lt;li&gt;EDA è un componente “core” di un sistema (anche SOA) che descrive un particolare “message routing” tra i servizi.  &lt;li&gt;EDA trasforma il concetto di “loosely coupled”, definito in SOA, in “decoupled”  &lt;ul&gt; &lt;li&gt;SOA: il producer e il consumer condividono il “Service contranct”  &lt;li&gt;EDA : nessuna condivisione&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;EDA da per scontato la presenza di un “message bus”. SOA &lt;strong&gt;NO &lt;/strong&gt;!!!!!!!!! (so che alcuni di voi stanno storcendo il naso :-)  &lt;li&gt;SOA può contenere al suo interno un routing dinamico completamente “decoupled” (EDA).  &lt;li&gt;Le due architetture definiscono il messaggio in XML trasportato tramite SOAP.  &lt;li&gt;SOAP supporta gli “interaction patterns” sia per SOA che per EDA.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp; &lt;h3&gt;Tassonomia degli scenari Event Driven&lt;/h3&gt; &lt;p&gt;Gartner inoltre suddivide la tassonomia degli scenari &lt;em&gt;Event Driven &lt;/em&gt;in quattro categorie:  &lt;ul&gt; &lt;li&gt;&lt;b&gt;Simple Event Driven Applications.&lt;/b&gt;  &lt;ul&gt; &lt;li&gt;Gestione diretta, ogni sorgente contatta direttamente gli opportuni sink.  &lt;li&gt;Nessuna ipotesi di accoppiamento sorgente-sink se non la comune comprensione del formato degli eventi(messaggi) scambiati.&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;&lt;b&gt;Brokers-Mediated Applications.&lt;/b&gt;  &lt;ul&gt; &lt;li&gt;Viene implementato tramite un intermediario: il broker.  &lt;li&gt;Il broker può effettuare content based routine dinamico dei messaggi.  &lt;li&gt;Il broker può applicare regole applicative.&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;&lt;b&gt;BPM (Business Process Management) directed Applications&lt;/b&gt;  &lt;ul&gt; &lt;li&gt;Gestione di processi long running contattando gli endpoint anche a seconda dei loro ruoli legati all’istanza della business activity stessa.  &lt;li&gt;Può essere configurata in due modalità:  &lt;ul&gt; &lt;li&gt;Broker  &lt;li&gt;Può gestire messaggi che iniziano o terminano business activities.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;&lt;b&gt;Complex Event processing Applications&lt;/b&gt;  &lt;ul&gt; &lt;li&gt;Sistema di gestione centralizzato.  &lt;li&gt;Filtra gli eventi instradandoli secondo regole anche complesse.  &lt;li&gt;Può aggregare insiemi di eventi in messaggi di ordine superiore riconoscendo dei pattern codificati.&lt;/li&gt;&lt;/ul&gt;&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;Concludendo l'architettura SOA e EDA sono complementari ed entrambe molto importanti per l’evoluzione nell’ambito IT.  &lt;p&gt;&amp;nbsp; &lt;h2&gt;Criteri di valutazione SOA&lt;/h2&gt; &lt;p&gt;Microsoft per la valutazione di una Service Oriented Architecture utilizza un modello chiamato ESOMM (&lt;i&gt;Enterprise Service Orientation Maturity Model&lt;/i&gt;). &lt;/p&gt; &lt;p&gt;Questo modello deriva dal SW-CMM (&lt;i&gt;Capability Maturity Model for Software&lt;/i&gt;) di Watts Humphrey successivamente gestito dal Software Engineering Institute (SEI) della Carnegie Mellon University (CMU) di Pittsburgh (USA). SW-SMM rappresenta lo standard per la valutazione e il continuo miglioramento dei processi di sviluppo del software.&lt;/p&gt; &lt;p&gt;ESOMM applica lo standard definito da SW-CMM al modello SOA ed evidenzia gli aspetti di valutazione.&lt;/p&gt; &lt;p&gt;ESOMM si basa su quattro aree funzionali per l’azienda:  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt; &lt;ul&gt; &lt;li&gt;&lt;strong&gt;Extensible : &lt;/strong&gt;L’azienda deve essere in grado di aggregare i servizi e di estenderne il loro utilizzo  &lt;li&gt;&lt;strong&gt;Supportable : &lt;/strong&gt;L’azienda deve poter gestire facilmente un incremento nell’uso dei servizi per garantire gli SLA definiti.  &lt;li&gt;&lt;strong&gt;Repeatable : &lt;/strong&gt;L’azienda implementa,consuma e riutilizza i servizi in modo efficiente e consistente.  &lt;li&gt;&lt;strong&gt;Usable : &lt;/strong&gt;L’azienda è in grado di scrivere e consumare servizi tramite protocolli standard senza fatica.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;Queste quattro aree vengono valutate rispetto a tre fattori : &lt;i&gt;Implementation&lt;/i&gt;, &lt;i&gt;Consumption&lt;/i&gt; e &lt;i&gt;Administration&lt;/i&gt; formando la seguente griglia:  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/DuechiacchieresuSOAeEDA_69E/image_4.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="228" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/DuechiacchieresuSOAeEDA_69E/image_thumb_1.png" width="460" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Questa griglia deve essere di riferimento durante la definizione e l’implementazione di una architettura SOA in ambiente enterprise.  &lt;p&gt;&amp;nbsp; &lt;p&gt;--Mario&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7624113" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Architetture+applicative/default.aspx">Architetture applicative</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Metodologie/default.aspx">Metodologie</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/SOA/default.aspx">SOA</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/EDA/default.aspx">EDA</category></item></channel></rss>