<?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; Architecture</title> <atom:link href="http://victorhurdugaci.com/category/architecture/feed/" rel="self" type="application/rss+xml" /><link>http://victorhurdugaci.com</link> <description>Victor Hurdugaci&#039;s playground</description> <lastBuildDate>Tue, 29 Nov 2011 07:38:40 +0000</lastBuildDate> <language>en</language> <sy:updatePeriod>hourly</sy:updatePeriod> <sy:updateFrequency>1</sy:updateFrequency> <generator>http://wordpress.org/?v=</generator> <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>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>
