<?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 : SOA</title><link>http://blogs.msdn.com/mariofontana/archive/tags/SOA/default.aspx</link><description>Tags: SOA</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Microsoft, Apache… un ossimoro??</title><link>http://blogs.msdn.com/mariofontana/archive/2009/06/07/microsoft-apache-un-ossimoro.aspx</link><pubDate>Sun, 07 Jun 2009 11:06:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9702640</guid><dc:creator>mfontana</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/9702640.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=9702640</wfw:commentRss><description>&lt;p&gt;Innanzitutto prima di generare uno sciopone a qualcuno vi prego di notare la punteggiatura nel titolo di questo post !!! Microsoft &lt;strong&gt;VIRGOLA &lt;/strong&gt;Apache e non &lt;strong&gt;Microsoft Apache &lt;/strong&gt;:-) Nessuna paura quindi , non abbiamo acquistato Apache !!!! Però c’è da dire che questa notizia, come architetto, mi ha reso proprio contento. Alzi la mano (tanto vi vedo) chi di voi si è trovato almeno una volta nella situazione di far parlare del codice .NET con quello JAVA e/o PHP o viceversa? E tenga su la mano chi ha incontrato qualche “piccolissima” difficoltà nella configurazione e settaggi vari nei rispettivi ambienti !!!! Nessuno ?? ok allora questo post non fa per voi :-)&lt;/p&gt;  &lt;p&gt;Diciamo che c’è stato un evento epocale…&lt;strong&gt; Microsoft partecipa alla keynote della conferenza JavaOne!! &lt;/strong&gt;Infatti durante la conferenza JavaOne &lt;strong&gt;Steven Martin&lt;/strong&gt; - Senior Director, Developer Platform Product Management – e &lt;strong&gt;Aisling MacRunnels &lt;/strong&gt;- Sun Vice President- hanno annunciato durante la keynote che &lt;strong&gt;Sun &lt;/strong&gt;parteciperà attivamente al progetto open-source &lt;strong&gt;Stonehenge &lt;/strong&gt;inizialmente creato da &lt;strong&gt;Microsoft&lt;/strong&gt;, &lt;strong&gt;WS02&lt;/strong&gt;, &lt;strong&gt;University of Moratuwa&lt;/strong&gt;, &lt;strong&gt;Progress Software&lt;/strong&gt;, &lt;strong&gt;Red Hat &lt;/strong&gt;e &lt;strong&gt;Eviware&lt;/strong&gt;. In particolare Sun si occuperà della realizzazione Java/Metro della soluzione &lt;a href="http://www.interoperabilitybridges.com/Project.aspx/Stonehenge_-_StockTrader_community_project" target="_blank"&gt;StockTrader&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Microsoft (anche se molti non lo sanno) ha partecipato e sta partecipando a &lt;a href="http://port25.technet.com/archive/2008/11/07/open-source-interoperability-projects-at-microsoft.aspx" target="_blank"&gt;molti progetti open source&lt;/a&gt; ma questa è la prima volta che Microsoft partecipa come &lt;strong&gt;code contributor &lt;/strong&gt;in un progetto Apache!!&lt;/p&gt;  &lt;p&gt;Lo scopo di questo progetto è nobile : realizzare &lt;strong&gt;&lt;u&gt;in concreto &lt;/u&gt;&lt;/strong&gt;degli scenari di interoperabilità e di best practices tra applicazioni e web services sviluppati su stack tecnologici diveri. &lt;a href="http://blogs.msdn.com/mariofontana/archive/2009/05/20/microsoft-e-saml-2-0-protocol.aspx" target="_blank"&gt;Come dissi in questo mio post&lt;/a&gt;&amp;#160; &lt;em&gt;“non basta avere delle specifiche standardizzate per realizzare veramente degli scenari di interoperabilità” (sintetizzato)&lt;/em&gt; !!! I motivi sono molteplici : non tutti i vendor implementano le medesime specifiche anche se standardizzate, non sempre è chiaro come configurare i vari ambienti e prodotti, spesso ci sono delle piccole differenze in termini di serializzazione, encoding che se non gestite possono rendere difficile la realizzazione del progetto… &lt;/p&gt;  &lt;p&gt;Per questo motivo il progetto Stonehenge &lt;strong&gt;&lt;u&gt;realizza &lt;/u&gt;&lt;/strong&gt;delle applicazioni di esempio basate su stack &lt;strong&gt;Java&lt;/strong&gt;, &lt;strong&gt;.NET, &lt;/strong&gt;&amp;#160;&lt;strong&gt;PHP ma anche Python e Ruby&amp;#160; &lt;/strong&gt;in grado di interoperare utilizzando un set comune di specifiche standard definte dal &lt;strong&gt;W3C &lt;/strong&gt;e &lt;strong&gt;OASIS&lt;/strong&gt;. Stiamo parlando in prevalenza di comunicazioni basate sugli standard WS-*. I vari sorgenti li potete trovare &lt;a href="https://svn.apache.org/repos/asf/incubator/stonehenge/contrib/stocktrader/" target="_blank"&gt;nel repository di stocktrader&lt;/a&gt; : &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/e9279e09cf76_8B2A/image_2.png"&gt;&lt;img style="border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px" title="image" border="0" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/e9279e09cf76_8B2A/image_thumb.png" width="361" height="287" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;--Mario&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9702640" 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/WS-_2A00_/default.aspx">WS-*</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/XML/default.aspx">XML</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Specifiche+di+Base/default.aspx">Specifiche di Base</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/SOA/default.aspx">SOA</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Interoperabilit_E000_/default.aspx">Interoperabilità</category></item><item><title>Ci vediamo a ROMA??</title><link>http://blogs.msdn.com/mariofontana/archive/2009/02/06/ci-vediamo-a-roma.aspx</link><pubDate>Fri, 06 Feb 2009 20:41:04 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:9402602</guid><dc:creator>mfontana</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/9402602.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=9402602</wfw:commentRss><description>&lt;p&gt;Il 16-17-18 Marzo a ROMA si tiene la prima edizione della &lt;a href="http://www.bastaitalia.it/conferenza/" target="_blank"&gt;conferenza BASTA! Italia&lt;/a&gt;. La più prestigiosa conferenza sullo sviluppo .NET tedesca sbarca in Italia !!&lt;/p&gt;  &lt;p&gt;Il 17 mattina terrò una sessione dal titolo : &lt;em&gt;Make your old applications SOA-aware with Web Services API. From Windows XP/2003 to Windows 7/2008 R2.&lt;/em&gt;dove parlerò della nuova architettura per i Web Services presenti nelle prossime versioni del sistema operativo Windows 7 e Windows Server 2008 R2. Sarà una sessione di livelllo 400 (Expert) per dare un po’ di internals e capire come queste API unmanged possono essere utilizzate in architetture SOA e in particolare con servizi WCF/Asmx . Per dare un po’ di background sull’argomento nei prossimi giorni pubblicherò una serie di link introduttivi. Farò comunque i primi 10 min della presentazione una overview di massima.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;L’abstract:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Con Windows 7 e Windows Server 2008 R2 il sistema operativo si arricchisce di nuove API native (WWSAPI – Windows Web Services API) che permettono di estendere le applicazioni unmanaged verso le architetture a servizi.Analizzeremo le ragioni di queste nuove API, l’architettura, le possibilità di interoperabilità con il mondo .NET e Java, e i principali standard WS-* di riferimento implementati.Tramite varie demo scorreremo i principali scenari di utilizzo evidenziandone i pro e i contro.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;--Mario&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=9402602" 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/Specifiche+di+Base/default.aspx">Specifiche di Base</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/WInternals/default.aspx">WInternals</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Windows+Server/default.aspx">Windows Server</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/SOA/default.aspx">SOA</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Win7/default.aspx">Win7</category></item><item><title>Application Architecture Guidance V2.0</title><link>http://blogs.msdn.com/mariofontana/archive/2008/10/01/application-architecture-guidance-v2-0.aspx</link><pubDate>Wed, 01 Oct 2008 18:09:01 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8971733</guid><dc:creator>mfontana</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/8971733.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=8971733</wfw:commentRss><description>&lt;p&gt;Il 25 Settembre &amp;#232; stato pubblicato il progetto della versione 2.0 della &lt;strong&gt;&lt;a href="http://www.codeplex.com/AppArch" target="_blank"&gt;Application Architecture Guidance&lt;/a&gt; &lt;/strong&gt;da parte del gruppo Patterns &amp;amp; Practices. Attualmente il progetto &amp;#232; in divenire (anzi diciamo che siamo ancora nelle fasi iniziail) ma sfogliando la struttura del (futuro) documento si capisce che sar&amp;#224; di grande interesse per gli &lt;strong&gt;architetti&lt;/strong&gt;. Il documento parte dall'esperienza maturata in questi ultimi anni nella realizzazione di soluzioni applicative enterprise nelle pi&amp;#249; disparate architetture applicative partendo dal client/Server, al Component-Based Architecture , Data Centered , Distributed Architecture ,Layered Architecture, SOA fino ai nuovi paradigmi S+S /SaaS/ PaaS.&lt;/p&gt;  &lt;p&gt;Questa &amp;#232; la megamappa dalla guidance :&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/97f21f0c1a42_E97D/image5.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="373" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/97f21f0c1a42_E97D/image5_thumb.png" width="451" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;con particolare enfasi su:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Autenticazione e autorizzazione. &lt;/li&gt;    &lt;li&gt;Caching e gestione dello stato. &lt;/li&gt;    &lt;li&gt;Communication &lt;/li&gt;    &lt;li&gt;Composition &lt;/li&gt;    &lt;li&gt;Concorrenza e transazioni &lt;/li&gt;    &lt;li&gt;Configuration Management &lt;/li&gt;    &lt;li&gt;Coupling e Cohesion (ovvero come suddividere in layer le applicazioni e come gestire il raggruppamento dei componenti/servizi :-)) &lt;/li&gt;    &lt;li&gt;Data Access &lt;/li&gt;    &lt;li&gt;Exception Management &lt;/li&gt;    &lt;li&gt;Logging e Instrumentation &lt;/li&gt;    &lt;li&gt;User Experience &lt;/li&gt;    &lt;li&gt;Validazione &lt;/li&gt;    &lt;li&gt;Workflow &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Queste sono le architetture prese in considerazioni: &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Mobile&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/97f21f0c1a42_E97D/image9.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="433" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/97f21f0c1a42_E97D/image9_thumb.png" width="441" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;RIA&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/97f21f0c1a42_E97D/image_8.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="610" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/97f21f0c1a42_E97D/image_thumb_3.png" width="433" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Rich Client&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/97f21f0c1a42_E97D/image_10.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="508" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/97f21f0c1a42_E97D/image_thumb_4.png" width="445" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Service&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/97f21f0c1a42_E97D/image_12.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="541" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/97f21f0c1a42_E97D/image_thumb_5.png" width="445" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Web Applications&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/97f21f0c1a42_E97D/image_14.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="564" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/97f21f0c1a42_E97D/image_thumb_6.png" width="449" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Quando?&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/97f21f0c1a42_E97D/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="310" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/97f21f0c1a42_E97D/image_thumb.png" width="450" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;--Mario&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8971733" 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/SOA/default.aspx">SOA</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/Software+Plus+Services/default.aspx">Software Plus Services</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>Autenticazione nelle comunicazioni : sicurezza a livello di canale</title><link>http://blogs.msdn.com/mariofontana/archive/2008/03/29/autenticazione-nelle-comunicazioni-sicurezza-a-livello-di-canale.aspx</link><pubDate>Sat, 29 Mar 2008 14:34:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8343335</guid><dc:creator>mfontana</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/8343335.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=8343335</wfw:commentRss><description>&lt;p&gt;Quando ci troviamo a progettare la forma di autenticazione nelle architetture Service-Oriented dobbiamo considerare vari aspetti relativi allo scenario. &lt;/p&gt;  &lt;p&gt;L&amp;#8217;identificazione dell&amp;#8217;utente che sta compiendo una determinata operazione &amp;#232; alla base di ogni sistema di sicurezza. &lt;/p&gt;  &lt;p&gt;Indipendente dal modello di autenticazione utilizzato, il processo di riconoscimento dell&amp;#8217;utente prevede la definizione di un protocollo di autenticazione end to end tra i vari (spesso due, ma non &amp;#232; detto) attori della comunicazione a livello di sistema o applicativo per garantire il riconoscimento dell&amp;#8217;utente. Il protocollo di autenticazione definisce, quindi, le modalit&amp;#224; con le quali il servizio riconosce il chiamante. &lt;/p&gt;  &lt;p&gt;Una comunicazione tra due servizi (end to end) costituisce l&amp;#8217;elemento base della classica catena di chiamate a cascata tipiche degli scenari complessi. Una volta stabilite le modalit&amp;#224; di autenticazione, il processo di riconoscimento dell&amp;#8217;utente deve implementare un ben determinato modello di autenticazione per consentire al servizio chiamato di ottenere il corretto contesto di sicurezza (&lt;strong&gt;security context&lt;/strong&gt;) del chiamante, indipendentemente dal flusso di chiamate e dalla posizione del servizio all&amp;#8217;interno della catena di chiamate stesse. Al servizio chiamato a sua volta pu&amp;#242; utilizzare nel modo corretto le informazioni messe a disposizione dal modello utilizzato per realizzare le politiche di sicurezza necessarie.&lt;/p&gt;  &lt;p&gt;Le modalit&amp;#224; di autenticazione, come detto, definiscono il protocollo con cui il chiamante fornisce al servizio le informazioni di sicurezza per il riconoscimento dell&amp;#8217;utente. La scelta della modalit&amp;#224; di autenticazione da utilizzare &amp;#232; condizionata da vari fattori: tipo di applicazioni, modalit&amp;#224; di colloqui tra chiamante e servizio, piattaforma utilizzata,&amp;#8230;.Le modalit&amp;#224; di autenticazione offrono caratteristiche diverse dipendenti dal livello a cui vengono implementate. In generale esistono tre grandi famiglie di modalit&amp;#224; di autenticazione:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;a livello di canale di comunicazione.&lt;/li&gt;    &lt;li&gt;a livello applicativo.&lt;/li&gt;    &lt;li&gt;a livello di messaggio (anche di infrastruttura applicativa).&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;h2&gt;Sicurezza a livello di canale&lt;/h2&gt;  &lt;p&gt;La modalit&amp;#224; basata sulla sicurezza a livello di canale di comunicazione utilizza il canale di trasporto tra i due end point della comunicazione, per lo scambio delle informazioni necessarie al riconoscimento dell&amp;#8217;utente.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/Autenticazionenellecomunicazionisicurezz_B0A4/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="239" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/Autenticazionenellecomunicazionisicurezz_B0A4/image_thumb.png" width="436" border="0" /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;b&gt;Figura 1: modelli di autenticazione a livello di canale di comunicazione&lt;/b&gt;&lt;/p&gt;  &lt;p&gt;Il protocollo di autenticazione utilizzato in questo caso &amp;#232; strettamente dipendente sia dal canale di comunicazione utilizzato che dalla sicurezza supportata dalla piattaforma. &lt;/p&gt;  &lt;p&gt;L&amp;#8217;autenticazione &amp;#232;, quindi, trasparente alle applicazioni e configurata a livello di sistema in moda da consentire al chiamante e servizio di instaurare il corretto protocollo per lo scambio delle informazioni.&lt;/p&gt;  &lt;p&gt;I vantaggi di questa modalit&amp;#224; sono essenzialmente nella semplicit&amp;#224; di utilizzo (da parte delle applicazioni) e nella sicurezza offerta, definita dallo stesso canale di comunicazione utilizzato. &lt;/p&gt;  &lt;p&gt;Di contro, per&amp;#242; la sicurezza di canale, avendo come unica granularit&amp;#224; applicabile l&amp;#8217;intero messaggio, &amp;#232; molto rigida e non consente di applicare politiche di sicurezza su singole porzioni di messaggio.&lt;/p&gt;  &lt;h3&gt;Quando usarla&lt;/h3&gt;  &lt;p&gt;La modalit&amp;#224; di autenticazione a livello di canale (trasporto) &amp;#232; semplice e generalmente adeguata in scenari dove i meccanismi di trasporto e i partner della comunicazione sono fortemente controllati. &lt;/p&gt;  &lt;p&gt;I maggiori vincoli sono:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;basando tutto a livello di trasporto, l&amp;#8217;autenticazione &amp;#232; fortemente dipendente dalla piattaforma utilizzata e dai servizi di sicurezza forniti da questa,&lt;/li&gt;    &lt;li&gt;l&amp;#8217;autenticazione non dipende dalla tipologia di messaggio/richiesta effettuata, non entra nel merito del formato, dei dati e non distingue singole porzioni di messaggio, &lt;/li&gt;    &lt;li&gt;l&amp;#8217;autenticazione &amp;#232; applicata agli end point della comunicazione senza la possibilit&amp;#224; (se non supportata dai meccanismi di sicurezza della piattaforma utilizzata) di fluire in una catena di richieste e tra intermediari.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Nel prossimo post analizzeremo l'autenticazione a livello applicativo....&lt;/p&gt;  &lt;p&gt;--Mario&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="5"&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8343335" 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/WS-_2A00_/default.aspx">WS-*</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/XML/default.aspx">XML</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/SOA/default.aspx">SOA</category></item><item><title>Video della conferenza : SOA &amp; Business Process</title><link>http://blogs.msdn.com/mariofontana/archive/2008/03/27/video-della-conferenza-soa-business-process.aspx</link><pubDate>Thu, 27 Mar 2008 10:00:29 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8337908</guid><dc:creator>mfontana</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/8337908.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=8337908</wfw:commentRss><description>&lt;p&gt;Si &amp;#232; da poco conclusa la Microsoft 2007 SOA &amp;amp; Business Process Conference.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/event.aspx?id=84" target="_blank"&gt;qui&lt;/a&gt; potete trovare alcuni video veramente interessanti per gli architetti registrati direttamente dalla conferenza. Ho elencato alcuni video in ordine di (mia) preferenza :-)&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=769"&gt;Keynote: Welcome and Introduction: Changing the World with Microsoft SOA&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=757"&gt;SOA Governance and the Microsoft Ecosystem&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=758"&gt;Service Lifecycle Management: Addressing the Challenges of the Provider/Consumer Relationship&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=762"&gt;Using Visual Studio Team System to Deliver the Right Services at the Right Time&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=760"&gt;Enabling the Agile Enterprise: Building a Common Roadmap for Business and IT with a SOA Maturity Model (SOAMM)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=766"&gt;Web Services Monitoring using Microsoft Systems Center Operations Manager 2007&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=767"&gt;How to Turn and Upgrade into SOA&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=755"&gt;People Ready Processes:&amp;#160; Enabling Mainstream Adoption of BPM&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=764"&gt;Integrating the Enterprise - Best Practices in Enterprise BizTalk Server and HIS Server Implementations&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=765"&gt;Building HIPAA Solutions with BizTalk Server2006 R2&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=768"&gt;Visio as Business Process Analysis Tool&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/emea/spotlight/sessionh.aspx?videoid=761"&gt;Microsoft Dynamics CRM: SOA Platform for Building Custom Business Applications&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8337908" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/mariofontana/archive/tags/SOA/default.aspx">SOA</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>Una overview di Software Plus Services per architetti</title><link>http://blogs.msdn.com/mariofontana/archive/2008/02/15/una-overview-di-software-plus-services-per-architetti.aspx</link><pubDate>Fri, 15 Feb 2008 16:38:02 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7715720</guid><dc:creator>mfontana</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/7715720.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=7715720</wfw:commentRss><description>&lt;p&gt;Stavo per pubblicare questo post quando mi sono accorto che &lt;a href="http://blogs.msdn.com/italy/archive/2007/12/18/s-s-2s.aspx"&gt;Pietro e Giuseppe hanno scritto un post su S+S&lt;/a&gt; dove si chiedevano se l'equazione lineare &lt;b&gt;S+S = 2S &lt;/b&gt;fosse vera!  &lt;p&gt;Bene, proverò che l'equazione riportata è &lt;b&gt;palesemente falsa &lt;/b&gt;:-)&lt;b&gt; &lt;/b&gt;dimostrando al contrario il vero risultato, ovvero : &lt;b&gt;S+S = 4S. &lt;/b&gt;Vediamo perchè :-) &lt;/p&gt; &lt;p&gt;&lt;br&gt;Innanzitutto con &lt;i&gt;Software Plus Services &lt;/i&gt;parliamo di una &lt;b&gt;evoluzione&lt;/b&gt; nel modo di sviluppare, deliverare, gestire ed interagire con il software nei prossimi 5-10 anni. Una evoluzione che è già iniziata da alcuni anni ma che oggi si può declinare con precisione. Una evoluzione appunto, non una rivoluzione che coinvolge il mondo Consumer fino a quello Enterprise! Una domanda che spesso mi viene fatta quando presento questo argomento è se oggi sia già possibile sviluppare in modalità Software Plus Service. La risposta è sicuramente SI. Scopo dei mie prossimi post sull’argomento sarà proprio affrontare la questione soprattutto in ambito progettazione e sviluppo di soluzioni Software Plus Services oggi.&lt;br&gt;&lt;/p&gt; &lt;p&gt;Prima di addentrarci nel pieno della discussione vediamo quali sono i principali fattori che hanno permesso questa evoluzione: &lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;b&gt;Connettività&lt;/b&gt;: la sempre crescente velocità di connessione verso internet non solo dei PC ma anche di qualsiasi device anche mobili.  &lt;li&gt;&lt;b&gt;Data Storage&lt;/b&gt;: disponibilità di storage sempre più capienti a prezzi abbordabili. Data storage sia dei PC/devices sia del &lt;i&gt;massive data&lt;/i&gt;, ovvero lo spazio disponibile in rete.  &lt;li&gt;&lt;b&gt;Potenza computazionale&lt;/b&gt;: il costante aumentare della capacità computazionali dei PC e dei device in generale (es: PDA, smartphone, ecc…)&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Questi sono i principali &lt;i&gt;key drivers&lt;/i&gt; che hanno permesso e permetteranno nel futuro la nascita di una nuova generazione di software capace di fornire alle persone un nuovo livello di esperienza, interattività ed integrazione tra le persone, i device e le informazioni. Una evoluzione che mette al centro le persone e la loro collaborazione durante le attività lavorative e quelle “personali”. Questo nuovo modo di interagire con la tecnologia viene chiamata anche &lt;i&gt;Digital LifeStyle&lt;/i&gt; ovvero come il nostro stile di vita si relaziona alla tecnologia in tutti i momenti della giornata.&lt;br&gt;Prima di spaventiamoci J… facciamo un esempio: 10 anni fa la posta elettronica era un mezzo di comunicazione usato prevalentemente nel mondo del lavoro tramite PC. Le persone che comunicavano tra loro, con le famiglie, con gli amici via email erano una piccola minoranza. Fino a 5 anni fa era difficile che la posta fosse usata anche quando le persone erano fuori ufficio, in viaggio. Con lo stesso device oggi si può gestire la posta dell’ufficio e quelle personali, condividere contatti e molto altro. Fino a 2-3 anni fa era difficile che questo tipo di “connessione” potesse comprendere anche la condivisione di fotografie e filmati, non solo tra telefonini ma anche su internet. Oggi con &lt;i&gt;Windows Mobile 6&lt;/i&gt; ed i servizi Live ad esempio è veramente banale fare una fotografia o un filmato con il cellulare o il PDA e inviare il contenuto digitale nella photo gallery all’interno del proprio blog!! In pochi minuti “tutto il mondo” può vedere le foto delle mie vacanze J. Stessa storia per l’ IM (Instant Messaging) sia pubblico (es: Messenger) sia inter-aziendale (es : Communicator) e tutte le esperienze di condivisione di informazioni e contenuti che questi strumenti mettono a disposizione sia dal PC che dai cellulari. Con gli esempi potremmo andare avanti veramente tanto. Se analizziamo questo trend solo dal punto di vista della &lt;i&gt;user experience&lt;/i&gt; allora in realtà scopriamo che ha già un nome : &lt;b&gt;Web 2.0&lt;/b&gt;. &lt;/p&gt; &lt;p&gt;&lt;i&gt;Software Plus Services&lt;/i&gt; è molto di più! Indica &lt;b&gt;COME&lt;/b&gt; trasformare questa user experience in sensazioni sempre nuove fornendo la libertà di essere sempre aggiornati solo sugli aspetti che ci interessano gestendo e condividendo i propri dati con amici e colleghi abbattendo le barriere e gli ostacoli tecnologici.  &lt;p&gt;Volendo fare un distinguo tra privati ed aziende possiamo sintetizzare :  &lt;ul&gt; &lt;li&gt;Per gli utenti privati significa semplificare l’uso dei propri digitial tools. Questo permette una innovazione in termini di esperienza nella propria digital lifestyle che cambierà radicalmente il modo in cui le persone accedono e scambiano informazioni.  &lt;li&gt;Per le aziende S+S offre la possibilità di migliorare l’efficienza e diminuire i costi offrendo nuove opzioni in cui le applicazioni possono essere deliverate e integrate tra loro.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Come detto &lt;i&gt;Software Plus Services&lt;/i&gt; è un argomento molto vasto che spazia un po’ in tutti i settori. Nei miei post mi concentrerò soprattutto sugli impatti e sulle prospettive future per le aziende.  &lt;p&gt;Per capire al meglio i principi architetturali che sorreggono l'acronimo S+S (&lt;i&gt;Software Plus Services&lt;/i&gt;) partiamo da un concetto "di base : &lt;b&gt;il servizio&lt;/b&gt;. Purtroppo il termine in questi anni ha subito (e sta subendo ancora) un overloading sempre maggiore e questo a mio avviso è alla base di molta confusione nelle architetture. Si parla di &lt;i&gt;Service Orientation&lt;/i&gt;, di &lt;i&gt;SOA&lt;/i&gt;, &lt;i&gt;EDA&lt;/i&gt;, &lt;i&gt;SaaS&lt;/i&gt;, &lt;i&gt;Web 2.0&lt;/i&gt;… Tutti acronimi, architetture che hanno come minimo comune denominatore il servizio ma con accezioni e spesso filosofie ben diverse:  &lt;ul&gt; &lt;li&gt;&lt;b&gt;SOA e EDA&lt;/b&gt;: principi architetturali che permettono di disegnare e sviluppare soluzioni componibili e usufruibili.  &lt;li&gt;&lt;b&gt;SaaS &lt;/b&gt;: architettura orientata al &lt;b&gt;delivery &lt;/b&gt;di servizi dove in scenari internet significa spostare le attività di operations dall'enterprise all'hoster. In questo contesto parliamo di architetture single/multi-tenancy.  &lt;li&gt;&lt;b&gt;Web 2.0&lt;/b&gt;: non è tanto l'aspetto tecnologico ma la user-experience rispetto alle informazioni. L'utente non è più passivo alle informazioni ma decide ed "assembla" parti per formarsi il proprio mondo (il famoso mash-up). I più fantasiosi lo hanno chiamato addirittura &lt;i&gt;il rinascimento del Web&lt;/i&gt;. Anche in questo contesto troviamo i concetti di assemblare funzionalità che guarda caso sono erogate da... servizi.&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Questi sono 3 differenti aree dell'innovazione dei servizi. Microsoft chiama l'integrazione di questi mondi &lt;i&gt;Software Plus Services&lt;/i&gt; o più semplicemente S+S ovvero l'unione del software locale su qualsiasi device con quello dei servizi &lt;b&gt;indipendentemente dalla loro declinazione. &lt;/b&gt;S+S può essere considerato come un continuum tra le soluzioni software e i servizi di oggi e del futuro.  &lt;p&gt;Partendo dai &lt;i&gt;key drivers&lt;/i&gt; precedenti possiamo sintetizzare il concetto di &lt;i&gt;Software Plus Services&lt;/i&gt; in questo modo:  &lt;p&gt;&lt;b&gt;S+S = PCs + Devices + Software On-Premise (enterprise) + SaaS (online)&lt;/b&gt;  &lt;p&gt;abbiamo quindi l'integrazione di &lt;b&gt;4 Scenari... ovvero :&lt;/b&gt;  &lt;p&gt;&lt;b&gt;S + S = 4S&lt;/b&gt;cenari&lt;br&gt;C.V.D. :-)  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/UnaoverviewdiSoftwarePlusServicesperarch_116BC/image_2.png"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="427" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/UnaoverviewdiSoftwarePlusServicesperarch_116BC/image_thumb.png" width="480" border="0"&gt;&lt;/a&gt;  &lt;p&gt;&amp;nbsp; &lt;p&gt;Stiamo quindi parlando di convergenza tra persone, devices, informazioni e performance/sicurezza. Una convergenza che permette alle persone di accedere ai propri dati (personali o aziendali) sia quando si trovano all’interno dell’azienda, in viaggio o in vacanza, online oppure offline. Le aziende hanno quindi la possibilità di raggiungere un livello di flessibilità e libertà scegliendo quale sia il modello più adatto alle proprie esigenze : &lt;i&gt;on-premise&lt;/i&gt; (in casa), on line oppure un mix potendo nel futuro modificare questa integrazione tra servizi. Questa libertà può essere tale solo tramite una piattaforma applicativa la quale grazie ai principi di application composition sia in grado di integrare servizi interni all'azienda con servizi esterni erogandoli in modo naturale verso un presentation che sarà sempre più articolato. Non una rivoluzione ma una evoluzione... appunto :-)  &lt;p&gt;Vediamo come questa integrazione stia già avvenendo:&lt;/p&gt; &lt;ul&gt; &lt;li&gt;&lt;b&gt;Desktop &lt;/b&gt;: Sempre di più l'utente del PC utilizza anche devices come smartphone o PDA interagendo con servizi live e in alcuni casi con servizi intranet.  &lt;li&gt;&lt;b&gt;Enterprise : &lt;/b&gt;anche nell'Enterprise c'è una certa integrazione con dispositivi mobili. Oggi l'integrazione con i servizi live è più orientata alla user-experience rispetto al middle-tier (area di forte espansione nei prossimi anni). Gli utenti saranno sempre più abituati a scenari Web 2.0 dove sono al centro delle informazioni e ai meccanismi di aggregazione delle informazioni stesse. Nel tempo richiederanno lo stesso tipo di experience anche all'interno dell'azienda. Infatti stiamo assistendo ad una prima integrazione tra il mondo strutturato tipico dei processi di business server side con il mondo destrutturato tipico del modo di lavorare delle persone. &lt;a href="http://blogs.msdn.com/mariofontana/archive/2007/09/07/office-business-applications-perch-microsoft-ci-crede-1-parte.aspx"&gt;Maggiori info qui&lt;/a&gt;.  &lt;li&gt;&lt;b&gt;Online&lt;/b&gt; : sempre più servizi (gratis e a pagamento) supportano la richiesta sempre maggiore di user-experience legata al Web 2.0. Gli utenti si stanno evolvendo! Siamo agli inizi della così detta &lt;i&gt;Consumerization &lt;/i&gt;ovvero le aziende iniziano ad appoggiarsi su servizi on-line piuttosto che applicazioni on-premise (installate e gestite in casa).  &lt;li&gt;&lt;b&gt;Devices : &lt;/b&gt;sempre più piccoli e potenti. Danno il meglio quando tramite la banda larga si possono integrare con i servizi&amp;nbsp; on-line. I servizi sono accedibili sia dai PC che dai device anche se in quest'area il lavoro di integrazione è ancora molto grande!&lt;/li&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h2&gt;Tassonomia dei servizi&lt;/h2&gt; &lt;p&gt;Possiamo suddividere i servizi in tre famiglie a seconda delle proprie caratteristiche:  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/UnaoverviewdiSoftwarePlusServicesperarch_116BC/image4.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="226" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/UnaoverviewdiSoftwarePlusServicesperarch_116BC/image4_thumb.png" width="420" border="0"&gt;&lt;/a&gt;  &lt;ol&gt; &lt;li&gt;&lt;b&gt;Building Blocks Services &lt;/b&gt;: I building block services sono dei servizi consumabili principalmente da sviluppatori. Servizi che richiedono una certa competenza tecnica per essere integrati in un sistema funzionale. Ad esempio BizTalk Services, Silverlight Streaming services. Li potremmo chiamare le API del futuro ?? :-)  &lt;li&gt;&lt;b&gt;Attached Services &lt;/b&gt;: Questi servizi sono pensati come "appendice", estensioni ad altri servizi. Presi da se hanno poco valore e forse significato. Esempi di Attached Services sono : Forefront Services (come descritto prima) , Windows Live OneCare, gli stessi XBOX Lives Services che estendono le funzionalità dei giochi.  &lt;li&gt;&lt;b&gt;Finished Services &lt;/b&gt;: come dice il nome, servizi che . Esempi : Office Live Small Business, Dynamics Live CRM, Office SharePoint Online ecc...&lt;/li&gt;&lt;/ol&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h2&gt;Microsoft Branding&lt;/h2&gt; &lt;p&gt;La tassonomia dei servizi non va confusa con i &lt;b&gt;due brand &lt;/b&gt;che troverete sempre più presente in casa Microsoft : &lt;b&gt;Live&lt;/b&gt; e &lt;b&gt;Online&lt;/b&gt;. Questa suddivisione è puramente marketing, di posizionamento! I servizi Live hanno come target il mondo consumer, piccolissime realtà commerciali e virtual workgroups ed offrono funzionalità di Entertainment, comunicazione e produttività individuale. I servizi Online invece sono pensati per il mondo Business dove è richiesta una certa flessibilità, SLA e che spesso hanno già una propria infrastruttura IT.  &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/UnaoverviewdiSoftwarePlusServicesperarch_116BC/image9.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="229" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/UnaoverviewdiSoftwarePlusServicesperarch_116BC/image9_thumb.png" width="414" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;h2&gt;Integrazione e libertà di scelta&lt;/h2&gt; &lt;p&gt;Se dovessi riassumere il concetto di S+S con uno slogan non avrei dubbi : &lt;b&gt;&lt;i&gt;Integrazione e Libertà di scelta per il futuro&lt;/i&gt;&lt;/b&gt;&lt;i&gt;. &lt;br&gt;&lt;/i&gt;Vediamo perché. &lt;b&gt;Integrazione&lt;/b&gt; per i i 4 scenari appena elencati. C'è molta innovazione all'interno di ognuno di queste 4 aree. Molti dei problemi che l'intera industria dell' IT cercherà di risolvere nei prossimi 5-10 anni riguarderà proprio l'integrazione di questi mondi. Per &lt;b&gt;libertà&lt;/b&gt; invece intendo la possibilità di scegliere quali servizi utilizzare ma soprattutto in che modalità. Questo significa che dal privato, alla piccola azienda, alla enterprise si avrà la libertà di scegliere chi gestirà i servizi dall'hardware dei server fino alle operations (la gestione). &lt;/p&gt; &lt;p&gt;L'esempio più immediato è rappresentato da &lt;b&gt;Exchange Server 2007&lt;/b&gt;, un software già sviluppato in modalità S+S. Partiamo dalla funzionalità: l'utente può scegliere di integrarsi ai servizi di Exchange con uno o tutti i canali :Outlook, OWA, Outlook mobile oppure tramite il nuovo Voice Access. Exchange stesso può essere "installato in casa" ovvero on-premise oppure appoggiandosi ad un provider (hosted) a seconda delle proprie necessità tra cui, non ultimi, gli skill di gestione ed i costi di manutenzione. Infine ad Exchange possono essere integrati dei servizi ad-hoc come ad esempio ForeFront per la sicurezza e il filtering indipendentemente dal modello di deployment scelto...&lt;/p&gt; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/UnaoverviewdiSoftwarePlusServicesperarch_116BC/image13.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="358" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/UnaoverviewdiSoftwarePlusServicesperarch_116BC/image13_thumb.png" width="430" border="0"&gt;&lt;/a&gt; &lt;/p&gt; &lt;p&gt;Questo cosa significa? Significa aver sviluppato un software (in questo esempio Exchange) che può essere deployato come applicazione e come servizio. Inoltre tale software è capace di integrarsi a sua volta con servizi aggiuntivi (interni o esterni) erogandoli in modo naturale verso il presentation. &lt;br&gt;Alcuni servizi possono essere : Exchange online, Sharepoint online, Exchange hosted services...  &lt;p&gt;Un altro esempio di prodotto che nel tempo si è trasformato abbracciando la filosofia di S+S è &lt;i&gt;Office&lt;/i&gt;. Infatti rispetto alle prime versioni dove &lt;i&gt;Office&lt;/i&gt; era un semplice prodotto di produttività individuale negli anni si è arricchito in un primo momento con servizi server-side come ad esempio &lt;i&gt;Sharepoint&lt;/i&gt;, &lt;i&gt;Exchange Office Communication Server&lt;/i&gt;. Successivamente si è integrato con i servizi Live come &lt;i&gt;Office Live&lt;/i&gt;, &lt;i&gt;Office Live Meeting&lt;/i&gt;,... Infatti, parlare di &lt;i&gt;Office System&lt;/i&gt; oggi significa parlare di una soluzione capace di integrare software client multicanale, servizi server e servizi on-line. S+S appunto :-)  &lt;p&gt;&amp;nbsp; &lt;h2&gt;"Prospettive"&lt;/h2&gt; &lt;p&gt;&lt;em&gt;Software Plus Services &lt;/em&gt;può essere analizzato anche da quattro prospettive diverse a seconda dell'area di focalizzazione della propria azienda. Ovviamente non sono esclusive nel senso che una realtà potrebbe coprire anche più di una. L'area di &lt;strong&gt;Build &lt;/strong&gt;ha come target principali le società di software (ISV). In questo contesto dobbiamo focalizzarci ad esempio sugli aspetti di progettazione single-multi tenancy, problemi di scaliabilità e best practices per l'isolamento dei servizi.Con &lt;strong&gt;Run &lt;/strong&gt;si intendono gli Hoster dove abbiamo troviamo best practices sul service delivery e gestione della scalabilità. &lt;strong&gt;Consume &lt;/strong&gt;si rivolge prevalentemente all'Enterprise e all'integrazione con architetture SOA/EDA con client ricchi multi device e servizi esterni. Infine, &lt;strong&gt;Monetize &lt;/strong&gt;è rivolto prevalentemente a reference patterns per creare nuovi modi di erogare servizi e creare un ecosistema S+S integrato. &lt;p&gt;&amp;nbsp; &lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/UnaoverviewdiSoftwarePlusServicesperarch_116BC/image_10.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; border-left: 0px; border-bottom: 0px" height="398" alt="image" src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/UnaoverviewdiSoftwarePlusServicesperarch_116BC/image_thumb_4.png" width="398" border="0"&gt;&lt;/a&gt;  &lt;p&gt;Approfondimenti su questi quattro temi li potete trovare &lt;a href="http://msdn2.microsoft.com/en-us/architecture/aa699384.aspx" target="_blank"&gt;qui&lt;/a&gt;, sul nuovo sito MSDN dedicato alle architetture S+S. &lt;p&gt;Oltre ai patterns che vengono pubblicati periodicamente su &lt;a href="http://msdn2.microsoft.com/en-us/practices/default.aspx" target="_blank"&gt;Patterns &amp;amp; Practices&lt;/a&gt; vediamo come Microsoft supporta questi 4 scenari da un punto di vista tecnologico. &lt;p&gt;&amp;nbsp; &lt;ul&gt; &lt;li&gt;Build&lt;/li&gt; &lt;ul&gt; &lt;li&gt;.NET 2.0/3.0/3.5&lt;/li&gt; &lt;li&gt;Visual Studio&lt;/li&gt; &lt;li&gt;Silverlight&lt;/li&gt; &lt;li&gt;PopFly&lt;/li&gt; &lt;li&gt;Guidance&lt;/li&gt; &lt;li&gt;Cloud Services &lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Run&lt;/li&gt; &lt;ul&gt; &lt;li&gt;IIS7&lt;/li&gt; &lt;li&gt;Windows Server 2008&lt;/li&gt; &lt;li&gt;System Center&lt;/li&gt; &lt;li&gt;SQL Server&lt;/li&gt; &lt;li&gt;Silverlight Streaming&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Consume&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Integrazione&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Biztalk Server&lt;/li&gt; &lt;li&gt;Internet Service Bus&lt;/li&gt;&lt;/ul&gt; &lt;li&gt;Composition&lt;/li&gt; &lt;ul&gt; &lt;li&gt;Office Business Applications (OBA)&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;li&gt;Monetize&lt;/li&gt; &lt;ul&gt; &lt;li&gt;AD Center&lt;/li&gt; &lt;li&gt;Software Protection &lt;/li&gt; &lt;li&gt;Licensing Services&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt; &lt;p&gt;&amp;nbsp; &lt;p&gt;&amp;nbsp; &lt;p&gt;Nei prossimi post vedremo come si progettano soluzioni S+S ed analizzeremo anche alcune soluzioni già realizzate.  &lt;p&gt;--Mario  &lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7715720" 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/OBA/default.aspx">OBA</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/Software+Plus+Services/default.aspx">Software Plus Services</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>