<?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 : EDA</title><link>http://blogs.msdn.com/mariofontana/archive/tags/EDA/default.aspx</link><description>Tags: EDA</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Cosa intendiamo per Infrastruttura Applicativa</title><link>http://blogs.msdn.com/mariofontana/archive/2008/04/22/cosa-intendiamo-per-infrastruttura-applicativa.aspx</link><pubDate>Tue, 22 Apr 2008 10:20:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8414442</guid><dc:creator>mfontana</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/mariofontana/comments/8414442.aspx</comments><wfw:commentRss>http://blogs.msdn.com/mariofontana/commentrss.aspx?PostID=8414442</wfw:commentRss><description>&lt;P&gt;L’ Infrastruttura applicativa può essere vista come l’estensione dell’infrastruttura sistemistica capace di offrire servizi ad un insieme controllato di applicazioni. &lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/CosaintendiamoperInfrastrutturaApplicati_BF0E/image_2.png" mce_href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/CosaintendiamoperInfrastrutturaApplicati_BF0E/image_2.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=355 alt=image src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/CosaintendiamoperInfrastrutturaApplicati_BF0E/image_thumb.png" width=550 border=0 mce_src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/CosaintendiamoperInfrastrutturaApplicati_BF0E/image_thumb.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;Questa infrastruttura è un insieme di componenti e servizi che consentono alle applicazioni di comunicare con altrettanti servizi (sia locali che remoti). &lt;BR&gt;L’ Infrastruttura applicativa si occupa qindi di fornire delle funzionalità di base ed avanzate che siano trasversali alle applicazioni oltre ad un insieme di regole sulla modalità di comunicazione che deve essere utilizzata da e per ciascun servizio, rendendo questi dettagli trasparenti alle applicazioni:&lt;/P&gt;
&lt;P&gt;&lt;A href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/CosaintendiamoperInfrastrutturaApplicati_BF0E/image_4.png" mce_href="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/CosaintendiamoperInfrastrutturaApplicati_BF0E/image_4.png"&gt;&lt;IMG style="BORDER-RIGHT: 0px; BORDER-TOP: 0px; BORDER-LEFT: 0px; BORDER-BOTTOM: 0px" height=387 alt=image src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/CosaintendiamoperInfrastrutturaApplicati_BF0E/image_thumb_1.png" width=555 border=0 mce_src="http://blogs.msdn.com/blogfiles/mariofontana/WindowsLiveWriter/CosaintendiamoperInfrastrutturaApplicati_BF0E/image_thumb_1.png"&gt;&lt;/A&gt; &lt;/P&gt;
&lt;P&gt;I servizi di base sono ad esempio &lt;STRONG&gt;Autenticazione&lt;/STRONG&gt;, &lt;STRONG&gt;Autorizzazione&lt;/STRONG&gt;, &lt;STRONG&gt;Identity Flow&lt;/STRONG&gt;, &lt;STRONG&gt;Logging&lt;/STRONG&gt;, &lt;STRONG&gt;Instrumentation&lt;/STRONG&gt;, &lt;STRONG&gt;Discovery&lt;/STRONG&gt;, ecc.. mentre i servizi avanzati (o di runtime) possono essere : &lt;STRONG&gt;Mail&lt;/STRONG&gt;, &lt;STRONG&gt;Fax&lt;/STRONG&gt;, &lt;STRONG&gt;Extarnal Services&lt;/STRONG&gt;, ecc..&lt;/P&gt;
&lt;P&gt;L’utilizzo dei servizi consente di realizzare un sistema secondo i canoni &lt;STRONG&gt;Services Oriented Architecture (SOA)&lt;/STRONG&gt; rendendo omogenei e interoperabili i servizi esposti dall’enterprise. SOA sfrutta gli standard di mercato come XML/SOAP e WS-* come definizione delle caratteristiche a cui i servizi esposti aderiscono per consentire comunicazioni sicure, scalabili, reliable, interoperabili, … &lt;/P&gt;
&lt;P&gt;Le specifiche WS-*, però, definiscono solo le caratteristiche a cui i WS devono sottostare, lasciando l’implementazione libera. In ambito &lt;STRONG&gt;Enterprise&lt;/STRONG&gt; tale libertà introduce la necessità di realizzare un’infrastruttura (o framework) che implementi i servizi base di WS-* mettendoli a disposizione dei WS in modo semplice e trasparente. Rendere i servizi sviluppati indipendenti da quelli base è inoltre garanzia di evoluzione: l’infrastruttura di base è in grado di evolvere seguendo i nuovi standard senza richiedere la modifica dei servizi sviluppati. La presenza di un framework, quindi, consente di poter realizzare una parte fondamentale della SOA disaccoppiando le applicazioni di business dalle caratteristiche d'infrastruttura creando un sistema omogeneo, aderente agli standard, facile da manutenere e da evolvere.&lt;/P&gt;
&lt;P&gt;L’ Infrastruttura applicativa dovrà inoltre consentire l’implementazione di differenti &lt;STRONG&gt;Message Exchange Pattern &lt;/STRONG&gt;(&lt;STRONG&gt;MEP&lt;/STRONG&gt;) attraverso tipologie di contratti differenti come ad esempio :&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Request/Reply&lt;/LI&gt;
&lt;LI&gt;OneWay&lt;/LI&gt;
&lt;LI&gt;Duplex&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;L’ Infrastruttura applicativa fornisce quindi dei servizi a valore aggiunto utilizzabili per tutti i servizi definiti all’interno ed all’esterno dell' Enterprise (sia servizi di basso livello sia servizi di business veri e propri), consentendo al programmatore applicativo di concentrarsi sulla logica della funzionalità specifica senza preoccuparsi della parte infrastrutturale. Inoltre consente di separare gli aspetti di gestione e configurazione dal codice di ciascuna funzionalità, permettendo a chi gestisce l’applicazione di modificare le caratteristiche infrastrutturali senza ricompilare l’applicazione. All’interno dei servizi di base l’ Infrastruttura applicativa è in grado di fornire anche le seguenti funzionalità a valore aggiunto:&lt;/P&gt;
&lt;UL&gt;
&lt;LI&gt;Trasporto di informazioni di contesto indipendenti dai singoli servizi.&lt;/LI&gt;
&lt;LI&gt;Caching dei dati restituiti dai servizi&lt;/LI&gt;
&lt;LI&gt;Monitoraggio della comunicazione (tracing, performance counters)&lt;/LI&gt;
&lt;LI&gt;Indipendenza dei chiamanti dalla locazione fisica dei servizi (indirizzamento dinamico)&lt;/LI&gt;
&lt;LI&gt;Gestione centralizzata delle policies ed autoconfigurazione degli endpoint&lt;/LI&gt;&lt;/UL&gt;
&lt;P&gt;prossiamanente vediamo come progettare e realizzare una infrastruttura applicativa con .NET&lt;/P&gt;
&lt;P&gt;--Mario&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8414442" width="1" height="1"&gt;</description><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/Specifiche+di+Base/default.aspx">Specifiche di Base</category><category domain="http://blogs.msdn.com/mariofontana/archive/tags/EDA/default.aspx">EDA</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>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>