<?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>Giuseppe Guerrasio : BPM</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/tags/BPM/default.aspx</link><description>Tags: BPM</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Yoox dal retail alla piattaforma multibrand per e-commerce</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2008/06/16/yoox-dal-retail-alla-piattaforma-multibrand-per-e-commerce.aspx</link><pubDate>Mon, 16 Jun 2008 10:30:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8592977</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/8592977.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=8592977</wfw:commentRss><description>&lt;p&gt;&lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ad51ccc86a33_B7B8/image_2.png"&gt;&lt;img style="border-right: 0px; border-top: 0px; margin: 0px 7px 0px 0px; border-left: 0px; border-bottom: 0px" height="216" alt="image" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ad51ccc86a33_B7B8/image_thumb.png" width="260" align="left" border="0" /&gt;&lt;/a&gt; Una delle attivit&amp;#224; pi&amp;#249; interessanti che mi &amp;#232; capitato di seguire negli ultimi mesi &amp;#232; collegata alla revisione architetturale che Yoox Group ha avviato sui suoi servizi e siti Internet.&lt;/p&gt;  &lt;p&gt;YOOX Group &amp;#232; il partner globale di Internet retail per i principali brand di moda &amp;amp; design: l&amp;#8217;unica azienda di retail su Internet sia multimarca &amp;#8211; con la boutique virtuale &lt;a href="http://yoox.com/"&gt;YOOX.COM&lt;/a&gt;, sia monomarca &amp;#8211; con i flagship store online sviluppati da YOOX Services.&lt;/p&gt;  &lt;p&gt;Nato nel 2000 ha avviato un nuovo modello di business con la boutique virtuale N&amp;#176; 1 al mondo &lt;a href="http://yoox.com/"&gt;YOOX.COM&lt;/a&gt;, che ha contribuito pionieristicamente a creare lo shopping di moda online nel nostro Paese. &lt;/p&gt;  &lt;p&gt;L&amp;#8217;infrastruttura globale sincronizzata su tre continenti, insieme all&amp;#8217;esperienza accumulata in questi anni, hanno portato all&amp;#8217;apertura nel 2006 di YOOX Services, societ&amp;#224; di YOOX Group che progetta e gestisce gli online store per conto dei principali brand di moda &amp;amp; design. YOOX Services realizza i flagship store dei principali brand della moda &amp;amp; design che intendono offrire online la stessa collezione disponibile attualmente nei negozi. &lt;/p&gt;  &lt;p&gt;Attualmente i flagship store online monomarca &amp;#8220;powered by YOOX&amp;#8221; sono: &lt;a href="http://www.marni.com"&gt;www.marni.com&lt;/a&gt;, &lt;a href="http://www.emporioarmani.com/"&gt;www.emporioarmani.com&lt;/a&gt;, &lt;a href="http://www.diesel.com/"&gt;www.diesel.com&lt;/a&gt;, &lt;a href="http://www.cpcompany.com/"&gt;www.cpcompany.com&lt;/a&gt;, &lt;a href="http://www.stoneisland.com/"&gt;www.stoneisland.com&lt;/a&gt; e presto saranno annunciati molti altri virtual store dei principali brand del lusso. &lt;/p&gt;  &lt;p&gt;A questi si &amp;#232; aggiunto il nuovissimo &lt;a href="http://thecorner.com/"&gt;THECORNER.COM&lt;/a&gt; &amp;#8220;powered by YOOX&amp;#8221;, un department store online completamente dedicato alle nuove collezioni di designer internazionali &amp;#8221;cutting edge&amp;#8221; e a brand italiani di ricerca ognuno con un &amp;#8220;corner&amp;#8221; dedicato.&lt;/p&gt;  &lt;p&gt;Una case history di successo se guardiamo i numeri di YOOX.COM: un sito localizzato in 7 lingue con pi&amp;#249; di quattro milioni di visitatori al mese e pi&amp;#249; di un milione di capi consegnati in tutto il mondo nel 2007 in 53 paesi. &lt;/p&gt;  &lt;p&gt;Dal punto di vista tecnico la necessit&amp;#224; di dover passare da un singolo Internet retailer ad una nuova serie di siti monobrand ha comportato la necessit&amp;#224; di una profonda revisione dell&amp;#8217;architettura su cui yoox services implementa le soluzioni Internet. I piani di Yoox Group, infatti, prevedono lo sviluppo di un numero significativo di siti monbrand o specialistici e pertanto la nuova piattaforma tecnologica per Yoox Service dovr&amp;#224; prevedere la possibilit&amp;#224; di implementare e gestire con sempre maggiore velocit&amp;#224; nuove tipologie di siti. &lt;/p&gt;  &lt;p&gt;Dal punto di vista architetturale Yoox Services si &amp;#232; trovata di fronte all&amp;#8217;esigenza di muovere la propria soluzione per yoox.com da un sito di e-commerce ad una vera e propria piattaforma che possa permettere la costruzione e la gestione di &amp;#8220;n&amp;#8221; siti, mettendo a fattor comune un insieme di servizi di base con lo scopo di semplificare lo sviluppo , manutenzione e sfruttamento dell&amp;#8217;hardware, ma permettendo al tempo stesso il necessario isolamento tra i siti, la flessibilit&amp;#224; per gli elementi di interfaccia utente e la costruzione dei contenuti di ciascuno store virtuale, garantendo allo stesso tempo la necessaria scalabilit&amp;#224; rispetto al volume di richieste gi&amp;#224; oggi elevato sul solo Yoox.com.&lt;/p&gt;  &lt;p&gt;Per rispondere a queste esigenze Yoox Group ha quindi avviato uno studio per l&amp;#8217;implementazione di una nuova piattaforma che viene da identificata con il termine OSS (ONLINE STORE SERVICES) per rispondere alle nuove esigenze del gruppo e garantire gli stessi livelli di qualit&amp;#224; , scalabilit&amp;#224; e costi offerti dalla soluzione che ha contribuito in modo determinate al successo di Yoox.com.&lt;/p&gt;  &lt;p&gt;La nuova architettura &amp;#232; divisa in due componenti fondamentali: una componenti di front-end che si preoccupa di gestire acquisizione di ordini e gestione del sito (catalogo, profili, carrello, pagamenti, etc) ed una componente di back-end che riceve gli ordini attraverso un un meccanismo di code asincrone dove attraverso Microsoft BizTalk e Microsoft Navision vengono gestite le interazioni con i partner , le operazioni logistiche di spedizione e la fatturazione. &lt;/p&gt;  &lt;p&gt;La componente di front-end prevede una parte di user interface (UI) , una serie di Web Service per erogazione di servizi a siti terzi (ad esempio il catalogo) ed alle componenti lato client della UI (JS AJAX, FLASH, SILVERLIGHT, WPF\.NET) , una parte di servizi con la logica delle operazioni del sito e uno storage per i dati.&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ad51ccc86a33_B7B8/clip_image004_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="268" alt="clip_image004" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ad51ccc86a33_B7B8/clip_image004_thumb.jpg" width="357" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;I principi architetturali che guidano il rifacimento della componente di front-end che si &amp;#232; deciso di seguire per l&amp;#8217;evoluzione dal mono sito a multi sito possono essere rappresentati come indicato nella seguente figura:&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ad51ccc86a33_B7B8/clip_image006_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="367" alt="clip_image006" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ad51ccc86a33_B7B8/clip_image006_thumb.jpg" width="386" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;L&amp;#8217;idea guida di base &amp;#232; quella di passare da un&amp;#8217;architettura single-tenant dove ciascuna istanza dei siti &amp;#232; implementata con una singola soluzione adhoc\custom ,ad una piattaforma che ricalchi la struttura di base dei servizi offerti attualmente in yoox.com, fornendoli con una architettura multi-tenant scalabile e configurabile. I principi architetturali impostati partono dalle idee impostate per le architetture SaaS e quindi gran parte delle impostazioni sulle architetture multi-tenant indicate ottimo &lt;a href="http://msdn.microsoft.com/en-us/architecture/aa479069.aspx"&gt;documento di Carraro e Chong&lt;/a&gt; sull&amp;#8217;argomento, ma vengono riadattati alle forti esigenze di flessibilit&amp;#224; sugli aspetti di personalizzazione del front-end ed di gestione dei contenuti dello stesso necessari ad una applicazione di questo tipo.&lt;/p&gt;  &lt;p&gt;Dal punto di vista tecnologico nell&amp;#8217;implementazione della nuova architettura in corso di sviluppo Yoox ha scelto di utilizzare nelle componenti fondamentali la piattaforma Microsoft: Windows Server 2008 con IIS7 come piattaforma Web Server, SQL Server 2008 come storage e .NET 3.5 come framework di sviluppo con Visual Studio Team System e Team Foundation Server per l&amp;#8217;implementazione della software factory, Navision e Microsoft BizTalk Server nelle componenti di back-end.&lt;/p&gt;  &lt;p&gt;Ulteriore vincolo per la nuova architettura consiste nella necessit&amp;#224; di migrare per step successivi anche il sito principale yoox.com e di garantire,quindi, una completa continuit&amp;#224; di funzionamento. Proprio per questo motivo la migrazione dalla precedente architettura single-tenant basata su ASP/COM sta procedendo per step che prevedono come prima parte la costruzione dei nuovi servizi e l&amp;#8217;aggancio di questi alla attuale interfaccia. Terminata la costruzione dei nuovi servizi, verr&amp;#224; anche migrata la tecnologia utilizzata per la parte di interfaccia utente.&lt;/p&gt;  &lt;p&gt;Data la particolarit&amp;#224; della natura dei siti, infatti , la profonda necessit&amp;#224; di personalizzazione delle componenti di UI &amp;#232; una delle caratteristiche che a spinto Yoox alla decisione di mantenere quest&amp;#8217;ultimo aspetto sviluppato ad hoc per ogni tenant. In particolare , oltre alla classica interfaccia HTML sono previste anche interfacce di tipo differente tra cui piccoli smart client residenti sul desktop che offriranno agli utenti la possibilit&amp;#224; di un interazione pi&amp;#249; semplice con il catalogo del sito. Anche le componenti di UI di gestione del sito sono costruite con interfacce smart client.&lt;/p&gt;  &lt;p&gt;L&amp;#8217;architettura principale del nuovo front-end multi sito di YOOX pu&amp;#242; quindi essere rappresentata come di seguito:&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ad51ccc86a33_B7B8/clip_image008_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="306" alt="clip_image008" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ad51ccc86a33_B7B8/clip_image008_thumb.jpg" width="376" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Le interfacce utente di ciascun tenant\sito accedono ai sevizi forniti dal OSS fornendo sempre un parametro che identifica il tenant stesso e ottenendo in questo modo l&amp;#8217;accesso alla logica ed ai dati necessari al funzionamento della specifica istanza. Con questo tipo di approccio, ciascun elemento applicativo pu&amp;#242; scalare con un approccio orizzontale che comporta la semplice aggiunta di macchine fisiche o virtuali all&amp;#8217;architettura su tutti gli strati applicativi , compresa la parte di dati. Anche a questo livello, infatti, viene utilizzato un partizionamento dei dati rispetto alle istanze che identificano i tenant . Questo approccio consente di suddividere i dati in differenti database che possono anche essere ospitati su macchine fisiche o virtuali diverse in funzione delle esigenze di scalabilita. Lo strato di accesso ai dati dei servizi conterr&amp;#224; la logica necessaria ad individuare la partizione corretta in base all&amp;#8217;identificativo del tenant\ sito fornito dal chiamante :&lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ad51ccc86a33_B7B8/clip_image010_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="384" alt="clip_image010" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ad51ccc86a33_B7B8/clip_image010_thumb.jpg" width="518" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Per un chiarimento sul tema del partizionamento dei dati vi rimando ai post fatti in passato sull argomento la scalabilit&amp;#224; ed il partizionamento in entit&amp;#224; parte 1 e parte 2 . Il disaccoppiamento tra front-end e back-end attraverso l&amp;#8217;utilizzo di una coda fa si che il carico prodotto nell&amp;#8217;inserimento di ordini o dalla navigazione degli utenti, non si rifletta direttamente sulle componenti che gestiscono le fasi di fatturazione e gestione logistica e di spedizione.&lt;/p&gt;  &lt;p&gt;I servizi sono sviluppati con tre differenti interfacce per permettere sia l&amp;#8217;interazione con le pagine ASP (COM), sia l&amp;#8217;interazione con componenti .NET in process , sia una interfaccia REST con XML o JSON . In questo modo ciascun servizio pu&amp;#242; o essere direttamente posizionato sulle macchine di front-end per essere consumato da UI HTML o per poter essere eventualmente esposto verso altre applicazioni ad estensione delle potenzialit&amp;#224; della piattaforma stessa. &lt;/p&gt;  &lt;p align="center"&gt;&lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ad51ccc86a33_B7B8/clip_image012_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="351" alt="clip_image012" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ad51ccc86a33_B7B8/clip_image012_thumb.jpg" width="450" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;La maggior parte dei servizi utilizza WCF (Windows Communication Foundation) per esporre una parte delle interfacce di accesso e nello strato di accesso ai dati sfruttano le nuove funzionalit&amp;#224; offerte da LINQ.&lt;/p&gt;  &lt;p&gt;La struttura complessiva del sito pu&amp;#242; essere quindi rappresentata come di seguito:&lt;/p&gt;  &lt;p align="center"&gt;&amp;#160;&lt;a href="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ad51ccc86a33_B7B8/clip_image014_2.jpg"&gt;&lt;img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="344" alt="clip_image014" src="http://blogs.msdn.com/blogfiles/giuseppeguerrasio/WindowsLiveWriter/ad51ccc86a33_B7B8/clip_image014_thumb.jpg" width="462" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8592977" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/VSTS/default.aspx">VSTS</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Software+Factories/default.aspx">Software Factories</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/SOA/default.aspx">SOA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Web+2.0/default.aspx">Web 2.0</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Visual+Studio/default.aspx">Visual Studio</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/WPF/default.aspx">WPF</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/.NET/default.aspx">.NET</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/ORM/default.aspx">ORM</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/TFS/default.aspx">TFS</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/REST/default.aspx">REST</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/ASP.NET/default.aspx">ASP.NET</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/BPM/default.aspx">BPM</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Orcas/default.aspx">Orcas</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Architecture/default.aspx">Architecture</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Smart+Client/default.aspx">Smart Client</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Silverlight/default.aspx">Silverlight</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/IIS7/default.aspx">IIS7</category></item><item><title>Workflow in Windows SharePoint Services v 3-  Microsoft Office System 2007 e BPM per la piattaforma Microsoft</title><link>http://blogs.msdn.com/giuseppeguerrasio/archive/2007/05/21/workflow-in-windows-sharepoint-services-v-3-microsoft-office-system-2007-e-bpm-per-la-piattaforma-microsoft.aspx</link><pubDate>Mon, 21 May 2007 21:02:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:2771723</guid><dc:creator>Giuseppe Guerrasio</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/giuseppeguerrasio/comments/2771723.aspx</comments><wfw:commentRss>http://blogs.msdn.com/giuseppeguerrasio/commentrss.aspx?PostID=2771723</wfw:commentRss><description>&lt;P&gt;Mi capita spesso di ricevere richieste su documenti di overview sul supporto della parte di Workflow in Sharepoint. Documento datato ma ottimo per introdursi :&lt;/P&gt;
&lt;P&gt;&lt;A href="http://www.microsoft.com/downloads/details.aspx?familyid=dbbd82c7-9bde-4974-8443-67b8f30126a8&amp;amp;displaylang=en"&gt;http://www.microsoft.com/downloads/details.aspx?familyid=dbbd82c7-9bde-4974-8443-67b8f30126a8&amp;amp;displaylang=en&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;Per una overview generale sul tema del BPM sulla piattaforma MS consiglio:&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-ansi-language: IT; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: IT; mso-fareast-theme-font: minor-latin; mso-bidi-language: AR-SA"&gt;&lt;A href="http://www.microsoft.com/biztalk/solutions/bpm/whitepaper.mspx"&gt;http://www.microsoft.com/biztalk/solutions/bpm/whitepaper.mspx&lt;/A&gt;&lt;/SPAN&gt;&lt;/P&gt;
&lt;P&gt;&lt;SPAN style="FONT-SIZE: 11pt; COLOR: #1f497d; FONT-FAMILY: 'Calibri','sans-serif'; mso-ansi-language: IT; mso-fareast-font-family: Calibri; mso-bidi-font-family: 'Times New Roman'; mso-fareast-language: IT; mso-fareast-theme-font: minor-latin; mso-bidi-language: AR-SA"&gt;&lt;/SPAN&gt;&amp;nbsp;&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=2771723" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/OBA/default.aspx">OBA</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/BPM/default.aspx">BPM</category><category domain="http://blogs.msdn.com/giuseppeguerrasio/archive/tags/Sharepoint/default.aspx">Sharepoint</category></item></channel></rss>