<?xml version="1.0" encoding="UTF-8"?> <rss
version="2.0"
xmlns:content="http://purl.org/rss/1.0/modules/content/"
xmlns:wfw="http://wellformedweb.org/CommentAPI/"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
> <channel><title>Ex nihilo nihil fit &#187; Azure</title> <atom:link href="http://victorhurdugaci.com/category/microsoft/azure-microsoft/feed/" rel="self" type="application/rss+xml" /><link>http://victorhurdugaci.com</link> <description>Victor Hurdugaci&#039;s playground</description> <lastBuildDate>Wed, 18 Apr 2012 16:29:21 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=</generator> <item><title>New Windows Azure Tools (July 2009)</title><link>http://victorhurdugaci.com/new-windows-azure-tools-july-2009/</link> <comments>http://victorhurdugaci.com/new-windows-azure-tools-july-2009/#comments</comments> <pubDate>Tue, 21 Jul 2009 18:05:50 +0000</pubDate> <dc:creator>Victor</dc:creator> <category><![CDATA[Azure]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[Microsoft]]></category> <category><![CDATA[SDK]]></category> <category><![CDATA[Visual Studio]]></category> <guid
isPermaLink="false">http://victorhurdugaci.com/?p=1242</guid> <description><![CDATA[After releasing the pricing scheme and the business model, Microsoft announced a new set of tools for Windows Azure. Windows Azure Tools for Microsoft Visual Studio extend Visual Studio 2008 and Visual Studio 2010 Beta 1 to enable the creation, building, debugging, running and packaging of scalable web applications and services on Windows Azure. The [...]]]></description> <content:encoded><![CDATA[<p
style="text-align: justify;"><img
class="alignleft size-full wp-image-1246" title="AzureLogo" src="http://victorhurdugaci.com/wp-content/uploads/2009/07/AzureLogo.jpg" alt="AzureLogo" width="129" height="129" />After releasing the pricing scheme and the business model, Microsoft announced a new set of tools for Windows Azure.</p><p
style="text-align: justify;">Windows Azure Tools for Microsoft Visual Studio extend Visual Studio 2008 and Visual Studio 2010 Beta 1 to enable the creation, building, debugging, running and packaging of scalable web applications and services on Windows Azure.</p><p
style="text-align: justify;">The most interesting feature is probably the support for multiple roles. Now one can deploy many web/worker roles.</p><p
style="text-align: justify;"><strong>What’s new in the Windows Azure SDK?</strong></p><ul
style="text-align: justify;"><li>The Windows Azure SDK supports developing and deploying services containing multiple web and worker roles. A service must include at least one role, of either type, and may include zero or more web roles, and zero or more worker roles.</li><li>The new PowershellRole sample hosts the Powershell runtime within a Windows Azure role. It demonstrates a simple remote console web role as well as a worker role whose implementation is a Powershell script. The host also includes the CloudDrive sample snap-in to provide access to Windows Azure Storage from script.</li></ul><p
style="text-align: justify;"><strong>What’s new in Windows Azure Tools for Visual Studio</strong></p><ul
style="text-align: justify;"><li>New project creation dialog</li><li>Support for developing and deploying services containing multiple web and worker roles. A service may contain zero or more web roles and zero or more worker roles with a minimum of one role of either type.</li><li>Ability to associate any ASP.NET Web Application project in a Cloud Service solution as a Web Role</li><li>Support for building Cloud Services from TFS Build</li><li>Enhanced robustness and stability</li></ul><p
style="text-align: justify;">The new CTP Release can be downloaded from <a
href="http://go.microsoft.com/fwlink/?LinkId=128752" target="_blank">this link</a>.</p> ]]></content:encoded> <wfw:commentRss>http://victorhurdugaci.com/new-windows-azure-tools-july-2009/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>What is Windows Azure?</title><link>http://victorhurdugaci.com/what-is-windows-azure/</link> <comments>http://victorhurdugaci.com/what-is-windows-azure/#comments</comments> <pubDate>Wed, 15 Jul 2009 20:21:11 +0000</pubDate> <dc:creator>Victor</dc:creator> <category><![CDATA[Azure]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[Microsoft]]></category> <category><![CDATA[Video]]></category> <category><![CDATA[Windows Azure]]></category> <guid
isPermaLink="false">http://victorhurdugaci.com/?p=1177</guid> <description><![CDATA[Just found a nice video describing what Windows Azure is. I already explained what Azure is a previous post, Windows Azure Application Architecture, but I find this video funny and interesting. PS: Sorry but this post is not XHTML valid :( I haven&#8217;t managed to embed the object in a proper way. Does anyone have [...]]]></description> <content:encoded><![CDATA[<p
style="text-align: justify;">Just found a nice video describing what Windows Azure is.</p><p
style="text-align: justify;">I already explained what Azure is a previous post, <a
href="http://victorhurdugaci.com/windows-azure-application-architecture/">Windows Azure Application Architecture</a>, but I find this video funny and interesting.</p><p
style="text-align: center;"><object
data="http://images.video.msn.com/flash/soapbox1_1.swf" width="432" height="364" id="83e01m8f" type="application/x-shockwave-flash" allowFullScreen="true" allowScriptAccess="always" pluginspage="http://macromedia.com/go/getflashplayer" flashvars="player.c=v&#038;player.v=feec9c5d-c6c9-451c-aa9a-b7f4524a6322&#038;mkt=en-US&#038;ifs=true&#038;fr=shared"></object ></p><p
style="text-align: justify;">PS: Sorry but this post is not XHTML valid :( I haven&#8217;t managed to embed the object in a proper way. Does anyone have a suggestion of how to correct this?</p> ]]></content:encoded> <wfw:commentRss>http://victorhurdugaci.com/what-is-windows-azure/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Azure Pricing Revealed</title><link>http://victorhurdugaci.com/azure-pricing-revealed/</link> <comments>http://victorhurdugaci.com/azure-pricing-revealed/#comments</comments> <pubDate>Tue, 14 Jul 2009 18:43:00 +0000</pubDate> <dc:creator>Victor</dc:creator> <category><![CDATA[Azure]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[Microsoft]]></category> <category><![CDATA[Pricing]]></category> <category><![CDATA[Windows Azure]]></category> <guid
isPermaLink="false">http://victorhurdugaci.com/?p=1165</guid> <description><![CDATA[Today, at PDC, Microsoft announced the pricing for Windows Azure, SQL Services and .NET Services. The business model is the one described in the table below: Windows Azure SQL Azure .NET Services Compute: $0.12/hour Web Edition (up to 1 GB relational database): $9.99 Messages @ $0.15/100K message operations , including Service Bus messages and Access [...]]]></description> <content:encoded><![CDATA[<p>Today, at PDC, Microsoft announced the pricing for Windows Azure, SQL Services and .NET Services. The business model is the one described in the table below:</p><table
border="1"><tbody><tr><td><strong>Windows Azure</strong></td><td><strong>SQL Azure</strong></td><td><strong>.NET Services</strong></td></tr><tr
style="text-align: justify;"><td>Compute:  $0.12/hour</td><td>Web Edition (up to 1 GB relational database): $9.99</td><td
style="text-align: justify;" rowspan="3">Messages @ $0.15/100K message operations , including Service Bus messages and Access Control tokens</td></tr><tr
style="text-align: justify;"><td>Storage: $0.15/GB stored</td><td
rowspan="2">Business Edition (up to 10 GB relational database): $99.99</td></tr><tr><td>Storage Transactions: $0.01/10K</td></tr><tr
style="text-align: justify;"><td
colspan="3"><strong>Bandwidth</strong> across all three services will be charged at $0.10/GB in and $0.15/GB out</td></tr></tbody></table><blockquote><p
style="text-align: justify;">Windows Azure compute hours are charged only for when your application is deployed so while developing and testing your application you may want to remove the compute instances that are not being used to minimize compute hour billing.  Windows Azure storage is metered in units of average daily amount of data stored (in GB) over a monthly period.  Storage is also metered in terms of storage transactions used to add, update, read and delete storage data. These are billed at a rate of $0.01 for 10,000 (10k) transaction requests.  Bandwidth is charged based on the total amount of data going in and out of the Windows Azure platform services via the internet in a given 30-day period.</p></blockquote><p
style="text-align: justify;">Microsoft Partners receive an additional 5 percent promotional discount on Windows Azure compute, SQL Azure and .NET Services.</p><p
style="text-align: justify;">A more detailed description on the pricing model is available on the <a
href="http://blogs.msdn.com/windowsazure/archive/2009/07/14/confirming-commercial-availability-and-announcing-business-model.aspx" target="_blank">Windows Azure Blog</a>.</p> ]]></content:encoded> <wfw:commentRss>http://victorhurdugaci.com/azure-pricing-revealed/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Software + Services. A Modern Approach. Part 2</title><link>http://victorhurdugaci.com/software-services-ama-p2/</link> <comments>http://victorhurdugaci.com/software-services-ama-p2/#comments</comments> <pubDate>Mon, 18 May 2009 07:26:17 +0000</pubDate> <dc:creator>Victor</dc:creator> <category><![CDATA[Architecture]]></category> <category><![CDATA[Azure]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[Microsoft]]></category> <category><![CDATA[Software Plus Services]]></category> <category><![CDATA[Live Framework]]></category> <category><![CDATA[Mesh]]></category> <category><![CDATA[Sync]]></category> <guid
isPermaLink="false">http://victorhurdugaci.com/?p=842</guid> <description><![CDATA[Part 2 &#8211; The idea &#60; Part 1 (Intro) Contents: A little more Live Mesh (CTP) The Actors The Modern Approach 1. A little more Live Mesh (CTP) Today, online and offline tend to be two different approaches for building software. Most software companies offer either online or offline versions of their software. If they [...]]]></description> <content:encoded><![CDATA[<h2 style="text-align: center;"><span
style="text-decoration: underline;">Part 2 &#8211; The idea<br
/> </span></h2><p><a
href="http://victorhurdugaci.com/software-services-ama-p1/" target="_self">&lt; Part 1 (Intro)</a></p><p><strong>Contents:</strong></p><ol
style="text-align: justify;"><li>A little more Live Mesh (CTP)</li><li>The Actors</li><li>The Modern Approach</li></ol><h3 style="text-align: justify;">1. A little more Live Mesh (CTP)</h3><p
style="text-align: justify;">Today, online and offline tend to be two different approaches for building software. Most software companies offer either online or offline versions of their software.</p><p
style="text-align: justify;">If they somehow offer both then mostly sure one is a limited (reduced functionality) version of the other. Moreover companies tend to create a gap between the time when the offline and the online version gets updated. You always hear thing like &#8220;the online version does not yet support feature X that is available in the desktop version. Will be available soon&#8221;. The bad thing is the soon might mean a couple of months.</p><p
style="text-align: justify;">Creating software that works the same way both online and offline is not a new idea but until not it would require a lot of overhead. There was the need to simulate either the offline environment online or the reverse.</p><p
style="text-align: justify;">Now, with Live Mesh, the online environment is simulated on the local machine with no overhead for the developer. The guys from Microsoft resolved this problem and they&#8217;ve simplified our lives.</p><p
style="text-align: justify;">There are some aspects that need to be clarified as pointed in Part 1 about online services and applications:</p><ul
style="text-align: justify;"><li>The user experience: this problems was somehow resolved by enabling applications to be based on Silverlight. This technology enables web applications to deliver an improved experience compared to the classical web apps. It is client-side technology.</li><li>The need of permanent connectivity: just like smart clients, Mesh Enabled Applications can run with no network connectivity, persist offline what needs to be processed online and continue the process when connectivity is available. In other words what can be done offline is done anytime and if Internet access is required the task is queued.</li></ul><h3>2. The Actors</h3><p
style="text-align: justify;">Lets consider a company named <em>InvoiceGuys </em>which<em> </em>offers a service called <em>InvoiceService </em>that exposes functionality for processing invoices. Anyone can subscribe the this service &#8211; for the sake of simplicity we&#8217;ll just ignore authorization and authentication; just don&#8217;t do this in real life!</p><p
style="text-align: justify;"><span
id="more-842"></span></p><p
style="text-align: justify;"><em>DeliveryGuys </em>is a another company that delivers packages of any kind. They have all they need except an invoice processor. Also they have a lot of delivery boys that have laptops but the Internet connection is not the best possible &#8211; sometimes is just doesn&#8217;t work. Moreover DeliveryGuys&#8217; employees are not technical and they know to use only a limited set of applications.</p><p
style="text-align: justify;">DelivertyGuys have the following requirements:</p><ol><li>the invoice processing must be automated</li><li>because of the their non technical employees they want a unified experience for all their software</li><li>there will be software that runs on the delivery laptops but also on the company&#8217;s sales desktops that are always connected to the Internet.</li><li>each workstation (mobile or not) must run the latest version of the delivery software and the update process must be transparent to the user</li><li>all data must be synchronized between company&#8217;s workstations</li><li>managers must be able to access the application from any PC regardless of their local rights</li></ol><h3>3. The Modern Approach</h3><p
style="text-align: justify;"><img
class="alignright size-full wp-image-978" title="clouds" src="http://victorhurdugaci.com/wp-content/uploads/2009/05/clouds.jpg" alt="clouds" width="371" height="327" />Each of the previous requirements is analyzed:</p><p
style="text-align: justify;"><em>1. &#8220;the invoice processing must be automated&#8221;</em></p><p
style="text-align: justify;">This is the easiest part. As mentioned above, <em>InvoiceGuys</em> offer the <em>InvoiceService </em>service so all we need to do is consume their it and, of course, pay whatever they require for using it. So our application will rely on a 3<sup>rd</sup> party service that might be offline sometime &#8211; remember this!</p><p
style="text-align: justify;"><em>2. &#8220;because of the their non technical employees they want a unified experience for all their software&#8221;</em></p><p
style="text-align: justify;"><em>3. &#8220;there will be software that runs on the delivery laptops but also on the company&#8217;s sales desktops that are always connected to the Internet&#8221;</em></p><p
style="text-align: justify;">and</p><p
style="text-align: justify;"><em>6. &#8220;the managers must be able to access the application from any PC regardless of their local rights&#8221;</em></p><p
style="text-align: justify;">Mesh CTP allows applications to work both online and offline. Moreover the same experience is offered both online and offline. Even from a public computer you can sign in and use the application.</p><p
style="text-align: justify;"><em>4. &#8220;each workstation (mobile or not) must run the latest version of the delivery software and the update process must be transparent&#8221;</em></p><p
style="text-align: justify;">When connecting to the Internet, Mesh CTP synchronizes your local application with the latest available offline with no user interaction. While using the online version from a web browser you always have the latest version so there is no need to worry.</p><p
style="text-align: justify;"><em>5. all data must be synchronized between company&#8217;s workstations</em></p><p
style="text-align: justify;">This is what Mesh actually does &#8211; it synchronizes data across machines. This will not be a problem.</p><p
style="text-align: justify;">In conclusion, Mesh CTP is a good choice for the client application.</p><p
style="text-align: justify;"><a
href="http://victorhurdugaci.com/wp-content/uploads/2009/05/use-case.jpg" target="_blank"><img
class="alignleft size-full wp-image-967" title="use-case" src="http://victorhurdugaci.com/wp-content/uploads/2009/05/use-case.jpg" alt="use-case" width="517" height="335" /></a>A possible representation of the scenario using a use case diagram is provided left.</p><p
style="text-align: justify;">If Internet connection is available the user can use the local application of its web version. Both look and work the same and if the application is locally installed the choice is just a matter of preference. Also the application will use the online data and will synchronize immediately.</p><p
style="text-align: justify;">If no Internet connection is available then the application will connect to the local Mesh that has a cached version of the online data, will work as much as possible with it and will synchronize with the live environment when possible.</p><p
style="text-align: justify;">Basically the local data is just an extension of the live data.</p><p
style="text-align: justify;">The modern approach is that we can have applications that rely on services which might not be available all the time and also can run both offline and online &#8211; the application itself can be a software offered as a service.</p><p
style="text-align: justify;">Part 3 will present the actual implementation of the client application and a skeleton for the service.</p><p
style="text-align: justify;"><strong>Special thanks</strong> to <a
href="http://timoteidolean.wordpress.com/" target="_blank">Timotei Dolean</a> and <a
href="http://serviciipeweb.ro/iafblog/" target="_blank">Andrei Ignat</a> for reviewing this post.</p> ]]></content:encoded> <wfw:commentRss>http://victorhurdugaci.com/software-services-ama-p2/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Software + Services. A Modern Approach. Part 1</title><link>http://victorhurdugaci.com/software-services-ama-p1/</link> <comments>http://victorhurdugaci.com/software-services-ama-p1/#comments</comments> <pubDate>Mon, 20 Apr 2009 19:07:31 +0000</pubDate> <dc:creator>Victor</dc:creator> <category><![CDATA[Architecture]]></category> <category><![CDATA[Azure]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[Microsoft]]></category> <category><![CDATA[Software Plus Services]]></category> <category><![CDATA[Live Framework]]></category> <category><![CDATA[Mesh]]></category> <category><![CDATA[Sync]]></category> <guid
isPermaLink="false">http://victorhurdugaci.com/?p=802</guid> <description><![CDATA[Part 1 &#8211; Intro Part 2 (The Idea) &#62; Contents: What is Software + Services Azure Services Platform Live Mesh 1. What is Software + Services Over the past decade, the world we live in has been transformed by the Web. More and more people gain Internet access, services become more accessible  and the experience [...]]]></description> <content:encoded><![CDATA[<h2 style="text-align: center;"><span
style="text-decoration: underline;">Part 1 &#8211; Intro</span></h2><p
style="text-align: right;"><a
href="http://victorhurdugaci.com/software-services-ama-p2/" target="_self">Part 2 (The Idea) &gt;<br
/> </a></p><p><strong> Contents:</strong></p><ol
style="text-align: justify;"><li>What is Software + Services</li><li>Azure Services Platform</li><li>Live Mesh</li></ol><h3 style="text-align: justify;">1. What is Software + Services</h3><p
style="text-align: justify;">Over the past decade, the world we live in has been  transformed by the Web. More and more people gain Internet access, services become more accessible  and the experience is improving. There are a lot of advantages of using Internet services:</p><ul
style="text-align: justify;"><li><strong>Low hardware requirements</strong>: services use the resources provided by the vendor and not the local ones. We only need devices capable of displaying the information that the service is sending. Most of the time no processing is done locally.</li><li><strong>Device independence</strong>: a service can be accessed from any device connected the Internet. It does not require special privileges on the local machine and no installation is required.</li><li><strong>No maintenance</strong>: services are maintained and updated by the service provider, the client must do nothing to configure it. The service is an out of the box solution.</li><li><strong>Flexibility</strong>: we can change the service provider whenever we want. This capability creates new opportunities for businesses that can dynamically swap services and choose the one that matches their needs.</li></ul><p
style="text-align: justify;">However there are still some limitations for which running local software is preferred instead of a web application/service:</p><ul
style="text-align: justify;"><li><strong>User experience</strong>: browsers are not yet capable of delivering the same user experience as a local running application.</li><li><strong>Privacy:</strong> there are situations when a company chooses the keep all its data within its controlled/trusted borders. There are many privacy concerns when using 3<sup>rd</sup> party services because there is no control over the security and must rely on the provider&#8217;s security. Some complex federation problems might occur.</li><li><strong>Offline experience:</strong> even though the Internet is now available most of the time there are still situation when network access is not available (maybe some technical problems) and the service  cannot be accessed.</li></ul><p
style="text-align: justify;">What do we do when we want to power of local running applications and the flexibility and ease-of-use of the Internet services? Simple: we take the best part of each, create an architecture that combines them and use it for application that work both online and offline. Ray Ozzie (Microsoft Chief Software Architect) mentioned that &#8220;when you combine the ever-growing  power of devices and the increasing  ubiquity of the Web, you come up with a  sum that is greater than its parts. &#8230; Software-plus-Services is the next logical step in the evolution of computing.  It represents an industry shift toward a design approach that is neither exclusively software-centric nor browser-centric&#8221; <sup>[1].</sup></p><p
style="text-align: justify;"><span
id="more-802"></span><strong>Software plus Services</strong> describes the idea of combining hosted services with capabilities that are best achieved with locally running software. It describes composite applications created by combining traditional software with remote services to provide consistent and seamlessly integrated user experience across devices and form factors. Software plus Services is a concept that Software as a Service (SaaS) complements the traditional packaged software running on both client or server by services adding value<sup>[2]</sup>.</p><p
style="text-align: justify;">To get a better image of what Software + Services mean that a look at the video below created by CommonCraft. The video presents a generic situation about two people, one using services and the other an on premise solution, each needing a part of what the other has. The result is a combination of Software + Services:</p><p
style="text-align: center"><object
width="432" height="364" data="http://images.video.msn.com/flash/soapbox1_1.swf" type="application/x-shockwave-flash"><param
name="id" value="i8trqb6v" /><param
name="flashvars" value="c=v&amp;v=0c9021e8-eb39-4a82-9120-0adfc2302515&amp;ifs=true&amp;fr=shared&amp;mkt=en-GB" /><param
name="src" value="http://images.video.msn.com/flash/soapbox1_1.swf" /><param
name="allowfullscreen" value="true" /></object></p><h3 style="text-align: justify;"><strong>2. Azure Services Platform</strong></h3><p
style="text-align: justify;">Azure Services Platform is Microsoft&#8217;s cloud computing platform that provides a wide range of internet services that can be consumed from both on-premises environments or the Internet.</p><p
style="text-align: justify;">It allows the development of scalable services that can be hosted in Microsoft&#8217;s data centers. The Azure Services Platform is a service, per se, that allows clients to buy and use compute and storage resources in order to provide other services. In other words is a service for services.</p><p
style="text-align: justify;">Services created on the Azure platform can be exposed through web interfaces and web services. If the functionality is exposed through a web service then it can be consumed by any client and can be easily integrated in some enterprise solutions. Hosting services in the cloud has many advantages like the elasticity of resources and costs, no worries about maintenance and insurance that no data is lost because of hardware problems.</p><p
style="text-align: justify;">The cloud platforms have some limitations but if they can be overcome this approach of building and hosting services can be a real benefit  for businesses both in terms of expenses and availability.</p><p
style="text-align: justify;">For more information about the Azure Service Platform see my other posts about it:</p><ul><li><a
href="../microsoft-patent-no-20080319910/">Microsoft Patent no. 20080319910</a></li><li><a
href="../windows-azure-application-architecture/">Windows Azure Application Architecture</a></li><li><a
href="../geekmeet-brasov-1-cloud-computing/">GeekMeet Brasov #1 &#8211; Cloud Computing</a></li></ul><h3>3. Live Mesh</h3><p
style="text-align: justify;">Live Mesh is a data synchronization service from Microsoft. It allows users to sync files and folders across devices and the Live Desktop. The information about devices and folders participating in a synchronization relationship is not stored locally but at the service-end. Live Mesh is an application that runs on the Azure platform and is a good example of Software plus Services.</p><p
style="text-align: justify;">There is the &#8220;live&#8221; part that runs in the cloud and offers a Live Desktop that displays the files/folders synchronized and the devices that take part in the synchronization. The client application is installed locally (on Windows, Windows Mobile or MacOS) and takes care of the local files, determines when files and/or devices changed and require a new sync.</p><p
style="text-align: justify;">At the time of writing there are two versions of Mesh (Mesh.com and Mesh-CTP.com) that will eventually be merged. Mesh.com is the version of Mesh that is available to everyone and allows sync of files across devices.</p><p
style="text-align: center;"><a
href="http://victorhurdugaci.com/wp-content/uploads/2009/04/mesh.jpg" target="_blank"><img
class="alignnone size-medium wp-image-817" title="mesh" src="http://victorhurdugaci.com/wp-content/uploads/2009/04/mesh-300x190.jpg" alt="mesh" width="300" height="190" /></a> <a
href="http://victorhurdugaci.com/wp-content/uploads/2009/04/meshctp.jpg" target="_blank"><img
class="alignnone size-medium wp-image-818" title="meshctp" src="http://victorhurdugaci.com/wp-content/uploads/2009/04/meshctp-300x190.jpg" alt="meshctp" width="300" height="190" /></a></p><h5 style="text-align: center;">Apparently no difference between Mesh and MeshCTP (note the Apps button in the right image)</h5><p
style="text-align: justify;">Mesh-CTP is the version for developers that is available only by invitation (you can apply for the CTP program in order to get one). The main difference between the two versions if that the CTP allows the development of applications for the Live Desktop.</p><p
style="text-align: justify;">As I told before Mesh allows files and folders to be synchronized across devices and Live Desktop. Mesh-CTP brings in a new concept: application synchronization. The applications created for Mesh will be synchronized across devices and will work offline (!) by connecting to a local version of Mesh. Once online the files that have changed on the local device or any other will sync again. To be more precise, when not connected to the Internet the application provides only the functionality that not requires Internet access.</p><p
style="text-align: justify;">The idea above is not new (see Outlook, IE, FeedDaemon etc. that have an offline mode) but the revolutionary thing is that the same (!) application can work both online and offline and can be deployed on the local computer or on the Live Desktop. Also the latest version of the application is always installed because once a new version is available it is synchronized with all devices.</p><p
style="text-align: justify;">The next two parts of this article will present a modern approach for constructing software (that works both online and offline) and services using the Live Mesh (CTP) and respectively Azure Services Platform.</p><p
style="text-align: right;"><a
href="http://victorhurdugaci.com/software-services-ama-p2/" target="_self">Part 2 (The Idea) &gt;</a></p><p
style="text-align: justify;"><strong>References:</strong></p><p
style="text-align: justify;"><sup>[1]</sup> <a
href="http://www.microsoft.com/softwareplusservices/software-plus-services-full-story.aspx" target="_blank">http://www.microsoft.com/softwareplusservices/software-plus-services-full-story.aspx</a></p><p
style="text-align: justify;"><sup>[2]</sup><a
href="http://en.wikipedia.org/wiki/Software_plus_services">http://en.wikipedia.org/wiki/Software_plus_services</a></p><p
style="text-align: justify;"><strong>Special thanks</strong> to <a
href="http://timoteidolean.wordpress.com/" target="_blank">Timotei Dolean</a>, <a
href="http://thecitybear.com">Ursul </a>and <a
href="http://serviciipeweb.ro/iafblog/" target="_blank">Andrei Ignat</a> for reviewing this post.</p> ]]></content:encoded> <wfw:commentRss>http://victorhurdugaci.com/software-services-ama-p1/feed/</wfw:commentRss> <slash:comments>3</slash:comments> </item> <item><title>New Windows Azure Features (March 2009)</title><link>http://victorhurdugaci.com/new-windows-azure-features-march-2009/</link> <comments>http://victorhurdugaci.com/new-windows-azure-features-march-2009/#comments</comments> <pubDate>Thu, 19 Mar 2009 21:48:00 +0000</pubDate> <dc:creator>Victor</dc:creator> <category><![CDATA[Azure]]></category> <category><![CDATA[Cloud Computing]]></category> <category><![CDATA[Microsoft]]></category> <category><![CDATA[Azure Tools]]></category> <category><![CDATA[March]]></category> <category><![CDATA[SDK]]></category> <category><![CDATA[Windows Azure]]></category> <guid
isPermaLink="false">http://victorhurdugaci.com/?p=573</guid> <description><![CDATA[Now that Mix09 is talking place we have a lot of nice announcements from Microsoft. I want to focus this post on the new Azure features, SDK and Visual Studio Tools that have been released a few hours ago. For those who don&#8217;t know, Windows Azure is the Microsoft&#8217;s cloud operating system. It is an [...]]]></description> <content:encoded><![CDATA[<p
style="text-align: justify;">Now that Mix09 is talking place we have a lot of nice announcements from Microsoft. I want to focus this post on the new Azure features, SDK and Visual Studio Tools that have been released a few hours ago.</p><p
style="text-align: justify;">For those who don&#8217;t know, Windows Azure is the Microsoft&#8217;s cloud operating system. It is an operating system that runs in the cloud and only in MS&#8217; data centers so don&#8217;t bother asking how can you install this new OS because there is no way you can do it. If you want more details about cloud computing and Windows Azure join my live presentation on <a
href="http://geekmeet.ro/brasov" target="_blank">GeekMeet Brasov</a> on March 28 (it&#8217;s a presentation in Romanian).</p><p
style="text-align: justify;">Let&#8217;s see what new goodies are in the March release:</p><p
style="text-align: justify;">First of all there is support for <strong>FastCGI</strong> which allows developers to deploy and run web applications written with 3<sup>rd</sup> party programming languages such as PHP.  This provides developers using non-Microsoft languages the ability to take advantage of scalability on Windows Azure. Also the <a
href="http://www.iis.net/extensions/URLRewrite" target="_blank">IIS URL Rewrite Module</a> has been enabled.  URL rewriting, a feature often used by FastCGI developers, enables the creation of URLs that are easier for users to remember and easier for search engines to find. The Visual Studio Tools for Windows Azure includes a FastCGI Web Role that creates a Web Application project tailored to make it easier to configure, run and package a FastCGI application.</p><p
style="text-align: justify;"><strong>Geo-location</strong> provides developers with the ability to specify a location for their applications and data to build responsive services with lower network latency as well as the capability to meet location-based regulatory and legal requirements. Until now there were Azure data centers only in the north western United States but now you can also choose the data centers in south. Some officials from Microsoft said that &#8220;Going forward, we plan on expanding our presence to more locations, especially outside the U.S&#8221;.</p><p
style="text-align: justify;">One of the great things about Windows Azure is that it handles the deployment, monitoring, and management of your service so that you have more time to focus on the business logic.  Until recently, realizing these benefits meant your code had to run under Windows Azure partial trust, a code access security (CAS) level which locks down certain .NET functionality. Windows Azure now offers the option of running the code in your Web and worker roles under full trust.  This unlocks a number of compelling scenarios such as:</p><ul
style="text-align: justify;"><li><strong>Invoking non-.NET Code</strong>: Many developers have existing investments in native code or may choose to use native code for some specialized tasks.  .NET full trust makes it possible to use native code via spawning processes or Platform Invoke (P/Invoke).</li><li><strong>Using .NET Libraries that Require Full Trust</strong>: Certain .NET libraries, including libraries in the .NET Services SDK, require full trust and can now be used in Windows Azure.</li><li><strong>Inter-process Communication via Named Pipes:</strong> If you application spawns processes, you can communicate among them via named pipes.</li></ul><p
style="text-align: justify;">However you must be aware that the Full Trust is not really Full Trust :) There are some obvious limitations like writing to registry and writing to the file system. These limitation might not be that obvious when programming against the local development environment.</p><p
style="text-align: justify;">Least but not last, even though it was not officially announced, I think there are plenty of bug fixes and other nice things.</p><p
style="text-align: justify;">The SDK and Tools for Visual Studio can be downloaded from the following links:</p><p
style="text-align: justify;"><a
href="http://www.microsoft.com/downloads/details.aspx?FamilyID=59e8fc0c-c399-4ab7-8a93-882d8e74b67a&amp;displaylang=en" target="_blank">Windows Azure Tools for Microsoft Visual Studio (March 2009 CTP)</a> &#8211; now include the SDK<br
/> <a
href="http://www.microsoft.com/downloads/details.aspx?FamilyID=B44C10E8-425C-417F-AF10-3D2839A5A362&amp;displaylang=en" target="_blank">Windows Azure Software Development Kit (March 2009 CTP)</a> &#8211; if you don&#8217;t need the Visual Studio Tools<a
href="http://www.microsoft.com/downloads/details.aspx?FamilyID=B44C10E8-425C-417F-AF10-3D2839A5A362&amp;displaylang=en" target="_blank"><br
/> </a></p> ]]></content:encoded> <wfw:commentRss>http://victorhurdugaci.com/new-windows-azure-features-march-2009/feed/</wfw:commentRss> <slash:comments>0</slash:comments> </item> <item><title>Learn About Azure Services Platform</title><link>http://victorhurdugaci.com/learn-about-azure-services-platform/</link> <comments>http://victorhurdugaci.com/learn-about-azure-services-platform/#comments</comments> <pubDate>Thu, 12 Feb 2009 12:17:37 +0000</pubDate> <dc:creator>Victor</dc:creator> <category><![CDATA[Azure]]></category> <category><![CDATA[Microsoft]]></category> <category><![CDATA[.NET Services]]></category> <category><![CDATA[How Do I]]></category> <category><![CDATA[Live Services]]></category> <category><![CDATA[Training]]></category> <category><![CDATA[Tutorial]]></category> <category><![CDATA[Video]]></category> <guid
isPermaLink="false">http://victorhurdugaci.com/learn-about-azure-services-platform/</guid> <description><![CDATA[Microsoft provides two ways of learning about Azure Services: 1. Azure Services Traning Kit The Azure Services Training Kit which includes a comprehensive set of technical content including hands-on labs, presentations, and demos that are designed to help you learn how to use the Azure Services Platform. The February release includes the following updates: 19 [...]]]></description> <content:encoded><![CDATA[<p>Microsoft provides two ways of learning about Azure Services:</p><h3>1. Azure Services Traning Kit</h3><p>The Azure Services Training Kit which includes a comprehensive set of technical content including hands-on labs, presentations, and demos that are designed to help you learn how to use the Azure Services Platform. The February release includes the following updates:</p><ul><li>19 demo scripts that walkthrough several of the services</li><li>10 presentations covering the entire Azure Services Platform</li><li>3 additional hands-on labs for Live Services’</li></ul><p>The technical content covers services including: Windows Azure, .NET Services, SQL Services, and Live Services.</p><p>It can be downloaded from <a
href="http://www.microsoft.com/downloadS/details.aspx?FamilyID=413e88f8-5966-4a83-b309-53b7b77edf78&amp;displaylang=en" target="_blank">here</a>.</p><h3>2. “How Do I?” videos for Azure Services Platform</h3><p>For Windows Azure:</p><table
style="margin-left: 15px" border="1" cellspacing="0" cellpadding="10" width="615"><tbody><tr><td
width="200" valign="top"><a
href="http://msdn.microsoft.com/en-us/azure/dd327648.aspx">How Do I: Get Started Developing on Windows Azure?</a></td><td
width="413" valign="top">If you’re a developer and you’re new to Windows Azure, start here! You’ll see what you need to download and install, and how to create a simple “Hello World” Windows Azure application.</td></tr><tr><td
width="200" valign="top"><a
href="http://msdn.microsoft.com/en-us/azure/dd327644.aspx">How Do I: Deploy a Windows Azure Application?</a></td><td
width="413" valign="top">In this brief screencast you’ll see what it takes to move your application into the cloud – you’ll see how to request and register a token, how to upload your Windows Azure application and how to move it between staging and production in the cloud.</td></tr><tr><td
width="200" valign="top"><a
href="http://msdn.microsoft.com/en-us/azure/dd327650.aspx">How Do I: Store Blobs in Windows Azure Storage?</a></td><td
width="413" valign="top">In this brief screencast, learn how to leverage Windows Azure storage to store data as blobs. You’ll learn about blob storage, containers and the API that makes it easy to manage everything from managed code.</td></tr><tr><td
width="200" valign="top"><a
href="http://msdn.microsoft.com/en-us/azure/dd464806.aspx">How Do I: Leverage Queues in Windows Azure?</a></td><td
width="413" valign="top">In this screencast, learn how to use queues to facilitate communication between Web and Worker roles in Windows Azure.</td></tr><tr><td
width="200" valign="top"><a
href="http://msdn.microsoft.com/en-us/azure/dd464807.aspx">Debugging Tips for Windows Azure Applications</a></td><td
width="413" valign="top">The Windows Azure SDK provides a development fabric that provides a &#8220;cloud on your desktop.&#8221; In this screencast, learn how to debug your Windows Azure applications in this environment.</td></tr></tbody></table><p>For .NET Services:</p><table
style="margin-left: 15px" border="1" cellspacing="0" cellpadding="2" width="615"><tbody><tr><td
width="200" valign="top"><a
href="http://msdn.microsoft.com/en-us/azure/dd441704.aspx">How Do I: Get Started with .NET Services?</a></td><td
width="415" valign="top">.NET Services are a set of highly scalable building blocks for programming in the cloud. In this brief screencast, you&#8217;ll learn about the registration process, the SDK and the built-in samples &#8211; everything you need to know in order to get started.</td></tr><tr><td
width="200" valign="top"><a
href="http://msdn.microsoft.com/en-us/azure/dd441706.aspx">How Do I: Harness the Microsoft .NET Service Bus?</a></td><td
width="415" valign="top">The .NET Service Bus makes it easy to access your Web services no matter where they are. In this brief screencast, you&#8217;ll see how to take a basic Windows Communication Foundation (WCF) service and expose it to the Internet with the .NET Service Bus.</td></tr></tbody></table><p>For Live Services:</p><table
style="margin-left: 15px" border="1" cellspacing="0" cellpadding="2" width="615"><tbody><tr><td
width="200" valign="top"><a
href="http://msdn.microsoft.com/en-us/azure/dd425068.aspx">How Do I: Get Started with the Live Framework?</a></td><td
width="415" valign="top">If you are looking to get started developing with the Live Framework, this is the place to start! In this screencast you&#8217;ll learn how to get a Live Services token and what you need to download in order to start writing Live Framework applications.</td></tr><tr><td
width="200" valign="top"><a
href="http://msdn.microsoft.com/en-us/azure/dd441707.aspx">How Do I: Use the Microsoft Live Framework Resource Browser?</a></td><td
width="415" valign="top">The Live Framework Resource Model is a simple, straightforward information model based on entities, collections and relationships. In this brief screencast you&#8217;ll learn how to navigate the relationships between entities by using the Live Framework Resource Browser, which is a tool that ships with the Live Framework SDK.</td></tr></tbody></table> ]]></content:encoded> <wfw:commentRss>http://victorhurdugaci.com/learn-about-azure-services-platform/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> <item><title>Windows Azure Application Architecture</title><link>http://victorhurdugaci.com/windows-azure-application-architecture/</link> <comments>http://victorhurdugaci.com/windows-azure-application-architecture/#comments</comments> <pubDate>Sat, 10 Jan 2009 10:26:39 +0000</pubDate> <dc:creator>Victor</dc:creator> <category><![CDATA[Architecture]]></category> <category><![CDATA[Azure]]></category> <category><![CDATA[Cloud]]></category> <category><![CDATA[Microsoft]]></category> <guid
isPermaLink="false">http://victorhurdugaci.com/?p=434</guid> <description><![CDATA[Windows® Azure is a cloud services operating system that serves as the development, service hosting and service management environment for the Azure Services Platform. Windows Azure provides developers with on-demand compute and storage to host, scale, and manage Web applications on the Internet through Microsoft® data centers. A service hosted in the Windows Azure fabric [...]]]></description> <content:encoded><![CDATA[<p
style="text-align: justify;">Windows® Azure is a cloud services operating system that serves as the development, service hosting and service management environment for the Azure Services Platform. Windows Azure provides developers with on-demand compute and storage to host, scale, and manage Web applications on the Internet through Microsoft® data centers.</p><p
style="text-align: justify;">A service hosted in the Windows Azure fabric implements one or more roles. A role is a scalable component built with managed code. A service may run multiple instances of a role. Within the Windows Azure fabric, running instances of a role are replicated across multiple physical machines to implement all or part of the functionality of a service. Each role runs in a virtual machine that has following predictable resources allocation: 64bit Windows Server 2008 OS, 1.5-1.7 64 bit CPU, 1.7 GB RAM memory, 100 MB/s network and 250 GB storage space (only 50 available in the CTP). So basically the developer creates the application as being used by one user and, in the cloud, many instances of it are created to support multiple clients.</p><p
style="text-align: justify;">The Windows Azure fabric currently supports two types of roles:</p><ul
style="text-align: justify;"><li><strong>Web Role</strong> is an application accessible through HTTP and/or HTTPS endpoints. A web role is hosted in an environment designed to support a subset of ASP.NET and Windows Communication Foundation technologies.</li><li>A <strong>Worker Role</strong> is a background processing application. A worker role may communicate with storage services and with other Internet-based services. It does not expose any external endpoints. A worker role can read requests from a queue defined in the Queue storage service.</li></ul><p
style="text-align: justify;">Because workers do not have some public endpoints some architectural considerations must be taken. How can a worker process external data? How web roles and workers exchange information? Why do we need workers?</p><p
style="text-align: justify;">Web roles can send/receive data to/from workers using the Storage Services. Storage Services include Blob, Queues and Tables.</p><ul
style="text-align: justify;"><li><strong>Blobs</strong> are sets of binary data; they are similar with files from your local windows storage. Blobs are organized in catalogs that are similar to folders.</li><li><strong>Queues</strong> are just message queues. They are FIFO (First In First Out) data structures that can hold messages up to 8kb each.</li><li><strong>Tables </strong>provide structured storage in the form of tables. However this is not a relational database system! They are just some tables that hold data with no relation between them.</li></ul><p
style="text-align: justify;">Of course, web role or worker role can make any external HTTP/HTTPS request. Also blobs, queues and tables can be accessed from outside the cloud through HTTP(S) requests. I will focus today on the internal could application architecture and not on the outside requests.</p><p
style="text-align: justify;"><img
class="size-full wp-image-435 alignnone" title="architecture" src="http://victorhurdugaci.com/wp-content/uploads/2009/01/architecture.jpg" alt="architecture" width="518" height="258" /></p><p
style="text-align: justify;"><span
id="more-434"></span>While you service is running in the cloud you cannot know where a specific instance is located, instances do not communicate directly one with another and you don&#8217;t have references to them. Every instance is &#8220;blind&#8221;. It knows only about itself. Also HTTP requests cannot be directed to a specific instance – the fabric has a load balancer that redirects requests. The same thing applies to workers: jobs cannot be dispatched to a specific worker.</p><p
style="text-align: justify;">The best strategy in this distributed environment is similar to the <a
href="http://en.wikipedia.org/wiki/Thread_pool_pattern" target="_blank">thread pool pattern</a>. Web roles get requests from users, put messages in a queue and, asynchronously, a worker will take one message and process it. Even though instances can be located anywhere on the Globe, a message from the queue will be taken by only one worker – pretty cool, huh?</p><p
style="text-align: justify;"><a
href="http://victorhurdugaci.com/wp-content/uploads/2009/01/sequence.jpg"><img
class="size-medium wp-image-436 alignright" title="sequence" src="http://victorhurdugaci.com/wp-content/uploads/2009/01/sequence-300x140.jpg" alt="sequence" width="300" height="140" /></a>If the information that needs to be send to the worker is larger than 8KB then part of it can be saved in blobs or tables. For example you could use the table to store information about the client (name, address, phone etc) who sent the request, save in the blob the documents he sent and put a message in a queue saying &#8220;There is a new request. It was stored, in a table, having ID number 1234 and its associated blobs are Document1, Document2 and Document3&#8243;. The worker who will pop the message must first get the information from table, documents from blob containers, process them and save the results.</p><p
style="text-align: justify;">Workers act like a team that has a number of tasks to complete. When someone from the team finishes a task it takes another one. If there are no more tasks it waits.</p><p
style="text-align: justify;">Because Azure pricing will be influenced by the number of instances it is said that this value will be able to be modified &#8220;on the fly&#8221;. Assuming that your business has 1 million requests in December and only 10.000 in January then you could use 1000 web role instances in Dec. and only 10 in Jan, dynamically scaling your investments. Making roles and instances independent and communicating between them using the Storage Services gives you the ability to scale up or down the application transparently.</p><p
style="text-align: justify;">Another thing that must be taken in consideration when building could services is their asynchronously nature. If no worker is available to process a job, the message might be placed in a queue and processed later (maybe after 5 seconds or 5 hours). So client interfaces must support later result retrieving and must inform the user that the response might be delayed.</p> ]]></content:encoded> <wfw:commentRss>http://victorhurdugaci.com/windows-azure-application-architecture/feed/</wfw:commentRss> <slash:comments>1</slash:comments> </item> </channel> </rss>
