<?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>Gianpaolo's blog : Build_S+S</title><link>http://blogs.msdn.com/gianpaolo/archive/tags/Build_5F00_S_2B00_S/default.aspx</link><description>Tags: Build_S+S</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP1 (Build: 61025.2)</generator><item><title>Cloud Services Architecture symposium</title><link>http://blogs.msdn.com/gianpaolo/archive/2008/09/24/cloud-services-architecture-symposium.aspx</link><pubDate>Wed, 24 Sep 2008 19:40:00 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8963818</guid><dc:creator>gianpaolo</dc:creator><slash:comments>4</slash:comments><comments>http://blogs.msdn.com/gianpaolo/comments/8963818.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gianpaolo/commentrss.aspx?PostID=8963818</wfw:commentRss><description>&lt;P&gt;As indicated in various press articles and blog entries in the recent weeks, &lt;A href="http://microsoftpdc.com/Default.aspx" mce_href="http://microsoftpdc.com/Default.aspx"&gt;PDC&lt;/A&gt; will be Microsoft's 'coming out' party for its cloud services platform. &lt;/P&gt;
&lt;P&gt;These additional platform assets will create a vast array of new possibilities, but at the same time introduce new architectural elements that architects and developers will have to master. Remember there is no such thing as a free lunch or as economists would say, there is an opportunity cost. (I know there aren't many credible economists left around here these days but some of their jargon is still applicable, especially in software architecture where we don't have things like credit default swaps...)&lt;/P&gt;
&lt;P&gt;Anyway, going back to Microsoft and the cloud computing platform, my team along with many of our colleagues are putting together a &lt;A href="http://blogs.msdn.com/pdc/archive/2008/09/23/announcing-two-symposia-at-pdc2008.aspx" target=_blank mce_href="http://blogs.msdn.com/pdc/archive/2008/09/23/announcing-two-symposia-at-pdc2008.aspx"&gt;cloud services architecture symposium&lt;/A&gt; on Day 4 of PDC. Titled &lt;STRONG&gt;Head in the Cloud, Feet on the Ground&lt;/STRONG&gt;, this symposium will take an enthusiastic yet pragmatic look at the cloud opportunities. We will explore a few examples of cloud-based infrastructure usage as part of an existing application, we will discuss the architectural tradeoffs as well as best practices resulting from that usage. We will also walk through detailed examples of ‘enterprise grade’ hosted application design. And finally we will go through emerging patterns that take into account the physical aspects of a cloud-based application that are often overlooked, such as bandwidth which happens to be not infinite and certainly not free at high scale. &lt;/P&gt;
&lt;P&gt;We believe it will be a good show packed with relevant and actionable guidance, so if you have not registered yet, here is the &lt;A href="http://microsoftpdc.com/Registration/" target=_blank mce_href="http://microsoftpdc.com/Registration/"&gt;registration link&lt;/A&gt;, if you are coming, I will be looking forward to seeing on day 4 at the symposium.&lt;/P&gt;
&lt;P&gt;As teasers, a couple of slides we are working on for the event.&lt;/P&gt;
&lt;P&gt;&amp;nbsp;&lt;IMG height=355 alt=symp2 src="http://blogs.msdn.com/blogfiles/gianpaolo/WindowsLiveWriter/CloudServicesArchitecturesymposium_856B/symp2.png" width=500 border=0 mce_src="http://blogs.msdn.com/blogfiles/gianpaolo/WindowsLiveWriter/CloudServicesArchitecturesymposium_856B/symp2.png"&gt; &lt;/P&gt;
&lt;P&gt;&lt;IMG height=363 alt=symp3 src="http://blogs.msdn.com/blogfiles/gianpaolo/WindowsLiveWriter/CloudServicesArchitecturesymposium_856B/symp3.png" width=500 border=0 mce_src="http://blogs.msdn.com/blogfiles/gianpaolo/WindowsLiveWriter/CloudServicesArchitecturesymposium_856B/symp3.png"&gt; &lt;/P&gt;
&lt;P&gt;P.S. &lt;/P&gt;
&lt;P&gt;PDC is of course much much more than this symposium, with exec keynotes, demos, a few hundred sessions, if you want to see what will be presented have a look at &lt;A href="https://sessions.microsoftpdc.com/public/sessions.aspx" mce_href="https://sessions.microsoftpdc.com/public/sessions.aspx"&gt;sessions page&lt;/A&gt; and/or subscribe to the &lt;A href="http://blogs.msdn.com/pdc/atom.xml" target=_blank mce_href="http://blogs.msdn.com/pdc/atom.xml"&gt;announcement blog&lt;/A&gt;&lt;/P&gt;
&lt;P&gt;P.S.S.&lt;BR&gt;corrected a few typos&lt;/P&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8963818" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/Build_5F00_S_2B00_S/default.aspx">Build_S+S</category><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/cloud/default.aspx">cloud</category><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/PDC/default.aspx">PDC</category></item><item><title>Multi Tenant Data Access (MTDA) Blueprint</title><link>http://blogs.msdn.com/gianpaolo/archive/2008/08/25/multi-tenant-data-access-mtda-blueprint.aspx</link><pubDate>Tue, 26 Aug 2008 02:05:49 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8895395</guid><dc:creator>gianpaolo</dc:creator><slash:comments>2</slash:comments><comments>http://blogs.msdn.com/gianpaolo/comments/8895395.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gianpaolo/commentrss.aspx?PostID=8895395</wfw:commentRss><description>&lt;p&gt;Although cloud storage fabrics are very cool, a lot of multi-tenant applications will be build against a database. Based on some work we did on our super famous sample application &lt;a href="http://www.codeplex.com/Litwarehr"&gt;LitwareHR&lt;/a&gt; :) , we just released a blueprint providing guidance on writing a SQL Server based, single instance, multi-tenant data access layer. (thanks &lt;a href="http://blogs.msdn.com/mglehman/" target="_blank"&gt;Michael&lt;/a&gt; for the blueprint framework) &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;&lt;img alt="Aa479086_mlttntda14(en-us,MSDN_10).gif" src="http://www.codeplex.com/Project/Download/FileDownload.aspx?ProjectName=MTDA&amp;amp;DownloadId=39042" /&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Here is a &lt;a href="http://channel9.msdn.com/posts/MichaelLehman/MultiTenant-Data-Access-MTDA-SS-Blueprint-Released/" target="_blank"&gt;short video&lt;/a&gt; introducing the MTDA blueprint. Interviewer: &lt;a href="http://blogs.msdn.com/mglehman/" target="_blank"&gt;Michael&lt;/a&gt;, interviewee: &lt;a href="http://blogs.msdn.com/eugeniop" target="_blank"&gt;Eugenio&lt;/a&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;iframe src="http://channel9.msdn.com/posts/MichaelLehman/423265/player/" frameborder="0" width="320" scrolling="no" height="325"&gt;&lt;/iframe&gt;    &lt;br /&gt;&lt;a href="http://channel9.msdn.com/posts/MichaelLehman/MultiTenant-Data-Access-MTDA-SS-Blueprint-Released/"&gt;MultiTenant Data Access (MTDA) S+S Blueprint Released &lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Enjoy and let us know what you think!&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;P.S.&lt;/p&gt;  &lt;p&gt;Note that if you already have the &lt;a href="http://www.codeplex.com/ssblueprints"&gt;S+S Blueprints Manager&lt;/a&gt; installed you can get this Blueprint by updating from the RSS feed.     &lt;br /&gt;If you want more information, you can visit the MTDA codeplex site: &lt;a href="http://www.codeplex.com/mtda"&gt;http://www.codeplex.com/mtda&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8895395" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/Build_5F00_S_2B00_S/default.aspx">Build_S+S</category></item><item><title>Software + Services for Architects Webcast</title><link>http://blogs.msdn.com/gianpaolo/archive/2008/07/21/software-services-for-architects-webcast.aspx</link><pubDate>Tue, 22 Jul 2008 03:41:20 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8762835</guid><dc:creator>gianpaolo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/gianpaolo/comments/8762835.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gianpaolo/commentrss.aspx?PostID=8762835</wfw:commentRss><description>&lt;p&gt;A couple of weeks ago, I recorded a &lt;a href="http://www.microsoft.com/feeds/msdn/en-us/architecture/media/SaaS/ssForArchitects.asx"&gt;webcast&lt;/a&gt; (~1hour) going through some of the architectural challenges faced by ISV architects in building S+S solutions, as well as the ones faced by architects in large enterprises consuming S+S solutions. Below a couple of slides from the &lt;a href="http://www.microsoft.com/feeds/msdn/en-us/architecture/media/SaaS/ssForArchitects.asx"&gt;webcast&lt;/a&gt;:&lt;/p&gt;  &lt;p&gt;The Enterprise Perspective (Big Pharma) &lt;/p&gt;  &lt;p&gt;&lt;img height="450" alt="bigPharma" src="http://blogs.msdn.com/blogfiles/gianpaolo/WindowsLiveWriter/SoftwareServicesforArchitectsWebcast_F8BD/bigPharma_3.png" width="600" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;The ISV Perspective (LitwareHR)&lt;/p&gt;  &lt;p&gt;&lt;img height="450" alt="cloudification" src="http://blogs.msdn.com/blogfiles/gianpaolo/WindowsLiveWriter/SoftwareServicesforArchitectsWebcast_F8BD/cloudification_74345fa1-9ac6-46bb-966b-25a6950d6151.png" width="600" border="0" /&gt; &lt;/p&gt;  &lt;p&gt;Due to the 1 way nature of a recording, if you have any questions or comments, please contact me via this blog and/or leave comments. &lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Once again, the link to the webcast is: &lt;a title="Software + Services for Architects (webcast)" href="http://www.microsoft.com/feeds/msdn/en-us/architecture/media/SaaS/ssForArchitects.asx"&gt;Software + Services for Architects (webcast)&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Enjoy! &lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8762835" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/Build_5F00_S_2B00_S/default.aspx">Build_S+S</category><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/Consume_5F00_S_2B00_S/default.aspx">Consume_S+S</category><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/webcast/default.aspx">webcast</category></item><item><title>You liked LitwareHR v1, You loved LitwareHR v2, You are going to die for LitwareHR 'cloud storage' edition :)</title><link>http://blogs.msdn.com/gianpaolo/archive/2008/05/06/you-liked-litwarehr-v1-you-loved-litwarehr-v2-you-are-going-to-die-for-litwarehr-v3.aspx</link><pubDate>Tue, 06 May 2008 20:50:28 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:8463557</guid><dc:creator>gianpaolo</dc:creator><slash:comments>1</slash:comments><comments>http://blogs.msdn.com/gianpaolo/comments/8463557.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gianpaolo/commentrss.aspx?PostID=8463557</wfw:commentRss><description>&lt;p&gt;More seriously... &lt;a href="http://blogs.msdn.com/eugeniop/"&gt;Eugenio&lt;/a&gt; just &lt;a href="http://blogs.msdn.com/eugeniop/archive/2008/05/06/litwarehr-on-ssds-available-for-download.aspx"&gt;announced&lt;/a&gt; and &lt;a href="https://www.codeplex.com/Release/ProjectReleases.aspx?ProjectName=LitwareHR&amp;amp;ReleaseId=13174"&gt;released&lt;/a&gt; on Codeplex the latest drop of LitwareHR.&lt;/p&gt;  &lt;p&gt;Although the application UI was treated with a welcomed 'facelift' (we were told that LitwareHR UI was &amp;quot;too 1990s&amp;quot;), the main effort for this release was to move from local storage infrastructure (SQL Server) to 'cloud storage' in the form of SQL Server Data Services (SSDS).&lt;/p&gt;  &lt;p&gt;Our intent was to extract the architectural challenges and best practices related to cloud storage in the context of&amp;#160; line of business (LoB) applications. After having learned a lot through this exercise, I can safely say that, from an architecture perspective, the decision between local storage (SQL) or cloud storage (SSDS) will not be a no-brainer. As with pretty much all architectural decisions, it is all about trade off. The choice that will make most sense for your application will mostly depend on (a) the type of application you are building and (b) which are the challenges you want to own and which are the challenges you want to push to the underlying platform. &lt;/p&gt;  &lt;p&gt;For example, in the specific context of LitwareHR, SSDS greatly simplified the multi-tenancy and customization aspects of the data layer; i.e.&amp;#160; a lot of 'plumbing' code related to entity customization went away thanks to the flexible entity model natively offered by SSDS. On the other hands, the data model as well as the querying code had to be modified since SQL (used in our previous implementation)&amp;#160; and SSDS do not share the same programming model (at least not at this stage). Also, SSDS not supporting JOIN required some new type of plumbing code e.g. cross-container search. The management of transactions had also to be rethought. Another example is the need of a better caching strategy on the business logic side of LitwareHR as the data layer (being in the cloud) is across a wide area network from the business logic, on the other hands we did not have to worry about the growth, scalability and availability of the storage subsystem anymore. From a hypothetical business model perspective, there would be changes as well, since on premise SQL server or licensed under SPLA would have a different cost curve from how SSDS would charged us. Specific comparison and analysis was not possible as SSDS has not disclosed its pricing model yet; but again, I do not expect being a no-brainer either and will depend on your storage access patterns, variability of access etc.&lt;/p&gt;  &lt;p&gt;For those of you interested in deeper architectural challenges, trade offs&amp;#160; and solutions chosen, I can only highly recommend you to read&amp;#160; Eugenio's mini-series:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/eugeniop/archive/2008/03/14/litwarehr-on-ssds-part-i-multi-tenancy-flexibility.aspx"&gt;LitwareHR on SSDS - Part I - Multi-tenancy &amp;amp; Flexibility&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/eugeniop/archive/2008/03/19/litwarehr-on-ssds-part-ii-the-data-access-layer.aspx"&gt;LitwareHR on SSDS - Part II - The data access layer&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/eugeniop/archive/2008/03/24/litwarehr-on-ssds-part-iii-data-access-enhancements-1-caching.aspx"&gt;LitwareHR on SSDS - Part III - Data access enhancements 1: caching&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/eugeniop/archive/2008/04/01/litwarehr-on-sdss-part-iv-data-access-enhancements-2-developing-offline-fro-ssds.aspx"&gt;LitwareHR on SSDS - Part IV - Data access enhancements 2: developing offline&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/eugeniop/archive/2008/04/14/litwarehr-on-ssds-part-v-searching-across-containers.aspx"&gt;LitwareHR on SSDS - Part V - Searching across Containers&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/eugeniop/archive/2008/04/22/more-on-parallel-queries-across-containers-in-ssds.aspx"&gt;More on parallel queries across containers in SSDS&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/eugeniop/archive/2008/04/25/litwarehr-on-ssds-part-vi-unit-of-work-support.aspx"&gt;LitwareHR on SSDS - Part VI - Unit of Work support&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.msdn.com/eugeniop/archive/2008/05/05/paging-in-ssds-parallel-queries.aspx"&gt;Paging in SSDS &amp;amp; Parallel Queries&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;as well as a session at MIX08 on SSDS presented by &lt;a href="http://content.visitmix.com/public/speaker_pop.aspx?SpeakerID=e8737164-f9b0-4f35-a763-db82ccd913b1"&gt;Nigel Ellis&lt;/a&gt; uber SSDS architect (session &lt;a href="http://sessions.visitmix.com/?selectedSearch=BT05"&gt;here&lt;/a&gt;). &lt;/p&gt;  &lt;p&gt;Also, for those of you wanting the see the goods, before investigating further, a screencast showing this release of LitwareHR is available (with sexy Argentinean accent) &lt;a href="http://silverlight.services.live.com/invoke/5721/LitwareHR-SSDS/iframe.html "&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;For those of you wanting to experiment with SSDS, you can register for a beta account with this service &lt;a href="http://www.microsoft.com/sql/dataservices/default.mspx"&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;Probable next steps will be to do a similar effort around 'cloud Identity' and implement some of the concepts described &lt;a href="http://blogs.msdn.com/vbertocci/archive/2008/04/20/cloud-computing-and-identity.aspx"&gt;here&lt;/a&gt; by my good friend &lt;a href="http://blogs.msdn.com/vbertocci/"&gt;Vittorio&lt;/a&gt; (a.k.a Dr. Identity Maximus) using the &lt;a href="http://labs.biztalk.net/Identity.aspx"&gt;BizTalk Services Identity Provider&lt;/a&gt;; but let's not get too much ahead of ourselves and let's start digesting (and enjoying?) this new release of LitwareHR embracing cloud storage for part of its architecture.&lt;/p&gt;  &lt;p&gt;This overall exercise was extremely valuable to us and allowed us to better understand aspects of cloud infrastructure in the context of a LoB application (as opposed to a more consumer oriented / social application), hopefully what we are sharing with you today (code, guidance etc.) will be as valuable to you in your investigation or implementation of cloud infrastructure based solutions.&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=8463557" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/SaaS/default.aspx">SaaS</category><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/Build_5F00_S_2B00_S/default.aspx">Build_S+S</category></item><item><title>LitwareHR v2 Webcast</title><link>http://blogs.msdn.com/gianpaolo/archive/2008/02/07/litwarehr-v2-webcast.aspx</link><pubDate>Thu, 07 Feb 2008 21:41:15 GMT</pubDate><guid isPermaLink="false">91d46819-8472-40ad-a661-2c78acb4018c:7522732</guid><dc:creator>gianpaolo</dc:creator><slash:comments>0</slash:comments><comments>http://blogs.msdn.com/gianpaolo/comments/7522732.aspx</comments><wfw:commentRss>http://blogs.msdn.com/gianpaolo/commentrss.aspx?PostID=7522732</wfw:commentRss><description>&lt;p&gt;Yesterday I recorded a 25min. walk through of &lt;a href="http://blogs.msdn.com/gianpaolo/archive/2007/11/21/litwarehr-v2-from-saas-to-s-s.aspx"&gt;litwareHR v2&lt;/a&gt; (recording available &lt;a href="http://files.skyscrapr.net/users/msdnss/litwareHR_v2.wmv"&gt;here&lt;/a&gt;)&lt;/p&gt;  &lt;p&gt;Even though the primary goal of LitwareHR is to elevate architectural best practices in a Software + Services world, this particular webcast does not dive very deep in the architecture of the application, rather it shows what the application does. If you like &lt;em&gt;what&lt;/em&gt; it does you will like &lt;em&gt;how&lt;/em&gt; it does it even more. &lt;/p&gt;  &lt;p&gt;In summary:&lt;/p&gt;  &lt;p&gt;Walkthrough &lt;a href="http://files.skyscrapr.net/users/msdnss/litwareHR_v2.wmv"&gt;here&lt;/a&gt; (what the app does)&lt;/p&gt;  &lt;p&gt;Installer, code, etc. &lt;a href="http://www.codeplex.com/LitwareHR/Release/ProjectReleases.aspx?ReleaseId=8439"&gt;here&lt;/a&gt; (how it does it)&lt;/p&gt;  &lt;p&gt;Enjoy!&lt;/p&gt;&lt;img src="http://blogs.msdn.com/aggbug.aspx?PostID=7522732" width="1" height="1"&gt;</description><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/S_2B00_S/default.aspx">S+S</category><category domain="http://blogs.msdn.com/gianpaolo/archive/tags/Build_5F00_S_2B00_S/default.aspx">Build_S+S</category></item></channel></rss>