<?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"
	>

<channel>
	<title>Welcome to GlobalLogic Blogs &#187; Cloud</title>
	<atom:link href="http://blogs.globallogic.com/category/cloud/feed" rel="self" type="application/rss+xml" />
	<link>http://blogs.globallogic.com</link>
	<description>Exponential Innovation</description>
	<pubDate>Wed, 09 May 2012 07:41:48 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
	<language>en</language>
			<item>
		<title>Tech Trends for 2012</title>
		<link>http://blogs.globallogic.com/tech-trends-for-2012</link>
		<comments>http://blogs.globallogic.com/tech-trends-for-2012#comments</comments>
		<pubDate>Thu, 29 Dec 2011 16:39:53 +0000</pubDate>
		<dc:creator>Peter Harrison</dc:creator>
		
		<category><![CDATA[Agile]]></category>

		<category><![CDATA[Cloud]]></category>

		<category><![CDATA[Global Product Development]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[2012]]></category>

		<category><![CDATA[design]]></category>

		<category><![CDATA[future]]></category>

		<category><![CDATA[Innovation]]></category>

		<category><![CDATA[m2m]]></category>

		<category><![CDATA[political apps]]></category>

		<category><![CDATA[predictions]]></category>

		<category><![CDATA[tablet]]></category>

		<category><![CDATA[trends]]></category>

		<category><![CDATA[TV]]></category>

		<category><![CDATA[voice]]></category>

		<guid isPermaLink="false">http://blogs.globallogic.com/?p=1792</guid>
		<description><![CDATA[As the CEO of a software R&#38;D services firm that focuses on new and game-changing technology, I’m often asked what technology trends I see dominating the year ahead. I have several predictions for 2012, and I thought it would be fun to share them with you and learn what trends you foresee developing in the [...]]]></description>
			<content:encoded><![CDATA[<p><span>As the CEO of a software R&amp;D services firm that focuses on new and game-changing technology, I’m often asked what technology trends I see dominating the year ahead. I have several predictions for 2012, and I thought it would be fun to share them with you and learn what trends you foresee developing in the upcoming twelve months:</span></p>
<ol>
<li><strong>Revenge of the Tablet:</strong> Just as Android created some serious competition for Apple with smartphones, it&#8217;s about to do the same with the tablet. 2012 will be the year when we finally see some serious alternatives to the iPad.</li>
<li><strong>Gesture-Based TV:</strong> The last few years have seen gesture-based technology come to the phone, the tablet and the game console. Next up will be the TV. Why search for the remote when you can just snap your fingers? And why not run apps directly on your TV?</li>
<li><strong>Machine to Machine:</strong> Next year we’ll see more and more real-world applications of M2M. Our cars already talks to the cloud; very soon anything and everything of value will.</li>
<li><strong>Social Goes Enterprise:</strong> I predict that 2012 will be the year when most corporations start to embrace social networks and look for ways to harness their value. Think: “Who in my company knows how to optimize Android for video the best?”</li>
<li><strong>Return of Zero Install:</strong> With the introduction of HTML5 and 4G/LTE, our tablets and smartphones will no longer be dependent on apps and app stores. We’ll be able to access an app’s functionality without the installation.</li>
<li><strong>A Planet’s Worth of Data:</strong> With sensors showing up in everything, the amount of data we can gather and keep is exploding. What if all this data found its way back to the cloud? Well soon it will, and we’ll need BI tools that can help us understand not just a company’s worth of data, but a planet’s worth.</li>
<li><strong>Consumerization of Healthcare:</strong> With government incentives pushing doctors from one side and patients pulling from the other, we’ll soon see an explosion of consumer-to-doctor options. We&#8217;re already seeing sites like Zocdoc change the way you schedule an appointment. A patient record that you can actually see can&#8217;t be far behind.</li>
<li><strong>Political Apps:</strong> Technology is having an increasing impact on politics, especially elections. With the 2012 U.S. election less than a year away, you can bet this cycle will see an explosion of political apps for tablets and smartphones.</li>
<li><strong>Voice Gets Smart:</strong> With the Siri feature on iPhone 4S, you can bet voice apps are about to get a major boost. We’ll see voice interfaces getting built into more and more devices.</li>
<li><strong>Agile in Business:</strong> This rapid development approach, which favors continuous results over analysis paralysis, is making its way into business. Agile makes sense for companies that want to get into new markets quickly and use learning over planning as the way to &#8220;get it right.”</li>
</ol>
<p><strong></strong><strong></strong><strong></strong><strong></strong><strong></strong><strong></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.globallogic.com/tech-trends-for-2012/feed</wfw:commentRss>
		</item>
		<item>
		<title>Mobile Web and HTML 5</title>
		<link>http://blogs.globallogic.com/mobile-web-and-html-5</link>
		<comments>http://blogs.globallogic.com/mobile-web-and-html-5#comments</comments>
		<pubDate>Sat, 08 Oct 2011 17:51:38 +0000</pubDate>
		<dc:creator>ninad.pandey</dc:creator>
		
		<category><![CDATA[Cloud]]></category>

		<category><![CDATA[Global Product Development]]></category>

		<category><![CDATA[Marketing]]></category>

		<category><![CDATA[Technology]]></category>

		<category><![CDATA[Web 2.0]]></category>

		<guid isPermaLink="false">http://blogs.globallogic.com/?p=1636</guid>
		<description><![CDATA[In recent past, I came across requirements about creating mobile application for IPhone and Android platform. One of the obvious choices was to create a native application for IPhone and Android respectively.
After understanding the requirement, it was learnt that the application doesn’t need to access any of the native feature of mobile device like camera, [...]]]></description>
			<content:encoded><![CDATA[<p>In recent past, I came across requirements about creating mobile application for IPhone and Android platform. One of the obvious choices was to create a native application for IPhone and Android respectively.</p>
<p>After understanding the requirement, it was learnt that the application doesn’t need to access any of the native feature of mobile device like camera, accelerometer. In other words the application was a data driven application having rich user interface. It triggered the thought!!! Why not have Mobile Web Application for this?<br />
<strong></strong></p>
<p><strong>What is Mobile Web Application?</strong><br />
Mobile Web Application is web application, optimized to run in mobile device web browser. Some of the parameters under consideration are:</p>
<ul>
<li>Screen size</li>
<li>Bandwidth</li>
<li>Device orientation</li>
<li>Native user interface</li>
</ul>
<p>Present day mobile web browsers contained by smart phones like IPhone and Android can show almost every website that we can open on desktop browser.<br />
<strong>Advantages</strong><br />
One of the biggest advantages of Mobile Web App is, it can be uses over the variety of smart phones. If any customization is required for specific mobile device model, then it can be done on the server side. There is no need to create ports for different mobile devices.<br />
In case of there is any update in the application, then the web server contents only needs to be updated. The mobile client will always get the updated contents.</p>
<p><strong>Conventional Mobile Web App</strong></p>
<p>Conventional mobile web can be created in any web platform like PHP, ASP.NET. It essentially consists of a home page which uses HTML mark-up along with CSS and javasript. Mobile user starts the web browser and hits the home page and starts using the application. For each such page, the server sends and HTML mark-up and images to have a decent user interface. One drawback here is the look and feel. Once the user starts the web application, he/she gets an off-deck user experience. The mobile web application look and feel in most of the cases is very different from the mobile device native user interface.</p>
<p><strong>Leveraging HTML 5 &amp; CSS3</strong></p>
<p>HTML 5 is fast catching up. W3C has already created the draft for HTML 5 and CSS3 standards. Popular desktop browser like Chrome, Firefox 4.0 and Opera 9 supports most of HTML5 and CSS3 standards.<br />
Good news is, IPhone mobile safari and Android device web browser also supports most of the HTML 5 and CSS3 features. With support for CSS3 and HTML 5, the developers get extra arsenals for creating more sophisticated mobile web applications<br />
<strong></strong></p>
<p><strong>Native Look &amp; Feel using CSS3</strong></p>
<p>With the use of CSS3 it is possible to have native look &amp; feel for IPhone and Android devices. Some of the CSS3 features are:</p>
<ul>
<li>Text effects, Gradients</li>
<li>2D transformation</li>
<li>3D transformation</li>
<li>Transitions</li>
<li>Animations</li>
</ul>
<p>With above feature we can add the animation and transition effect to mobile web applications similar to what IPhone and Android devices provide. Due to support for gradient and text effects in CSS3, we can minimize use of images. This also helps further to reduce the page pay load</p>
<p><strong>Test Web page without any specific CSS</strong>.</p>
<p><a href="http://blogs.globallogic.com/wp-content/uploads/2011/10/site_wo_style.jpg"><img class="alignnone size-medium wp-image-1645" src="http://blogs.globallogic.com/wp-content/uploads/2011/10/site_wo_style-300x267.jpg" alt="" width="300" height="267" /></a></p>
<p><strong>Test Web page in Android emulator after applying CSS<br />
</strong></p>
<p><a href="http://blogs.globallogic.com/wp-content/uploads/2011/10/android_style1.jpg"><img class="alignnone size-medium wp-image-1647" src="http://blogs.globallogic.com/wp-content/uploads/2011/10/android_style1-300x271.jpg" alt="" width="300" height="271" /></a></p>
<p><strong>Test Web page in IPhone emulator after applying CSS</strong></p>
<p><a href="http://blogs.globallogic.com/wp-content/uploads/2011/10/iphone.jpg"><img class="alignnone size-medium wp-image-1649" src="http://blogs.globallogic.com/wp-content/uploads/2011/10/iphone-300x280.jpg" alt="" width="300" height="280" /></a></p>
<p><strong>HTML 5 features</strong></p>
<p>HTML 5 provides many new features as compared to HTML 4. IPhone and Android mobile web browsers now support most of the HTML 5 features.  Some of the important HTML 5 features are:</p>
<ul>
<li>Local Web storage. Can be used to store the intermediate data locally and when required the data can be saved to cloud or the web server</li>
<li>Access to Geolocation. Can be used to location based application</li>
<li>Audio API. Can be used to control and play audio</li>
<li>Video API</li>
<li>Canvas support. A 2D drawing mechanism.</li>
<li>Web Sockets. Real time application</li>
</ul>
<p><strong>Full Screen Browser Or Native application with embedded web browser (Hybrid)?</strong></p>
<p>The most common way to start a Mobile Web Application on mobile device is to start the web browser and type the application URL.  We can use JavaScript to set the web browser to full screen mode. For some people still this may be dislike.<br />
For such, we can have a native device application. This application then embeds the Web view. Of course, this device application needs to be created to all supported platform. The user downloads this native application from app store. When launched, it displays the embedded web view in full screen view and hits the application home URL. This way the user has a seamless user experience. With this hybrid one can also provide a mechanism to intercept the events in the web view. For example we can intercept click events for all hyperlinks in the view and then may call some native function using the device specific language.</p>
<p><strong>Accessing phone&#8217;s native features</strong></p>
<p>There are many instances, in which we may need to access the native phone features like Geo-location, accelerometer. At present not all native phone features can be accessed using JavaScript API from HTML5. Unfortunately not all native features can be access using the JavaScript API. Currently JavaScript APIs are available to access the Geolocation and Address book.<br />
For other features like camera, accelerometer we need to use some bridge. Most common way is to use PhoneGap. It provides an interface to access the native features of mobile devices. It is available for IPhone, Android and other smart phones</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.globallogic.com/mobile-web-and-html-5/feed</wfw:commentRss>
		</item>
		<item>
		<title>Social Networking Integration</title>
		<link>http://blogs.globallogic.com/social-networking-integration</link>
		<comments>http://blogs.globallogic.com/social-networking-integration#comments</comments>
		<pubDate>Fri, 30 Sep 2011 10:47:05 +0000</pubDate>
		<dc:creator>sanjay.gadge</dc:creator>
		
		<category><![CDATA[Cloud]]></category>

		<category><![CDATA[Technology]]></category>

		<guid isPermaLink="false">http://blogs.globallogic.com/?p=1593</guid>
		<description><![CDATA[These days integration with social networking portals has become an important strategy in product development. Lots of products have been built around these networking portals. This blog provides some important considerations while developing integration functionality.
The functionality demands special consideration on extensibility and configurability during designing of the module. The module/system requires support for a plug-in [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><span lang="EN-US">These days integration with social networking portals has become an important strategy in product development. Lots of products have been built around these networking portals. This blog provides some important considerations while developing integration functionality.</span></p>
<p class="MsoNormal"><span lang="EN-US">The functionality demands special consideration on extensibility and configurability during designing of the module. The module/system <span>requires support for a plug-in architecture where new web services can be added in future.</span> <span> </span>High configurability will help updating integration parameters easily without any recompile and redistribution/redeployment.<span> </span>Desktop/Mobile applications – that requires social networking integration – should consider for forced auto-update in order to update plugin binaries due to changes in service APIs/protocol.</span></p>
<p class="MsoNormal"><span lang="EN-US">Different services support different authentication mechanism. These methods often change over time, and therefore, would be one cause for the service plug-in to require an update. Table below summarizes authentication mechanisms for different services.</span></p>
<div>
<table class="MsoTableLightShadingAccent4" border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td width="280" valign="top">
<p class="MsoNormal"><span lang="EN-US">Service</span></p>
</td>
<td width="174" valign="top">
<p class="MsoNormal"><span lang="EN-US">Authentication </span></p>
</td>
</tr>
<tr>
<td width="280" valign="top">
<p class="MsoNormal"><strong><span lang="EN-US">Facebook</span></strong></p>
</td>
<td width="174" valign="top">
<p class="MsoNormal"><span lang="EN-US">OAUTH 2.0</span></p>
</td>
</tr>
<tr>
<td width="280" valign="top">
<p class="MsoNormal"><strong><span lang="EN-US">Gmail</span></strong></p>
</td>
<td width="174" valign="top">
<p class="MsoNormal"><span lang="EN-US">Username &amp; Password</span></p>
</td>
</tr>
<tr>
<td width="280" valign="top">
<p class="MsoNormal"><strong><span lang="EN-US">GDOCS</span></strong></p>
</td>
<td width="174" valign="top">
<p class="MsoNormal"><span lang="EN-US">Username &amp; Password</span></p>
</td>
</tr>
<tr>
<td width="280" valign="top">
<p class="MsoNormal"><strong><span lang="EN-US">Flickr</span></strong></p>
</td>
<td width="174" valign="top">
<p class="MsoNormal"><span lang="EN-US">Proprietary Token Based</span></p>
</td>
</tr>
<tr>
<td width="280" valign="top">
<p class="MsoNormal"><strong><span lang="EN-US">Twitter</span></strong></p>
</td>
<td width="174" valign="top">
<p class="MsoNormal"><span lang="EN-US">OAUTH 2.0</span></p>
</td>
</tr>
<tr>
<td width="280" valign="top">
<p class="MsoNormal"><strong><span lang="EN-US">Picasa</span></strong></p>
</td>
<td width="174" valign="top">
<p class="MsoNormal"><span lang="EN-US">Username &amp; Password</span></p>
</td>
</tr>
<tr>
<td width="280" valign="top">
<p class="MsoNormal"><strong><span lang="EN-US">Youtube</span></strong></p>
</td>
<td width="174" valign="top">
<p class="MsoNormal"><span lang="EN-US">Username &amp; Password</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p class="MsoNormal"><span lang="EN-US"> </span></p>
<p class="MsoNormal"><span lang="EN-US">Typical integration challenges like data transformation, network issues, orchestration etc. should be considered. One may have to incorporate transaction management if single requirement requires multiple interactions with these services. </span></p>
<p class="MsoNormal"><span lang="EN-US">Most of these services impose restrictions while interacting. Due considerations should be given to these limitations while designing and development. </span></p>
<p class="MsoNormal"><span lang="EN-US">Facebook has upload limit of 200 photos per album, however there is no restriction on number of albums. If there is requirement of uploading videos on FB, then it should be less than 1024 MB and length should not exceed 20 minutes. </span><span lang="EN-US">.The aspect ratio of the video has to be between 9&#215;16 and 16&#215;9. While downloading wall posts the API returns an array of post objects containing the last 30 days or 50 posts, whichever is greater. </span></p>
<p class="MsoNormal"><span lang="EN-US">YouTube has video upload limit of 2GB in size and 15 minutes in length. It supports lesser video formats as compared to FB. One can download only two videos per hour. </span></p>
<p class="MsoNormal"><span lang="EN-US">Picasa restricts photo and video size to 1 GB. It supports lesser video formats compared to FB – specifically it does not accept </span><span lang="EN-US">Flash (.flv) or Real Media Video (.rm) files. Although one can upload videos to Picasa, APIs does not support downloading videos. </span></p>
<p class="MsoNormal"><span lang="EN-US">Gmail supports POP3 and IMAP. If you need labels (attached to emails) information IMAP is the option. </span></p>
<p class="MsoNormal"><span lang="EN-US">GDoc has upload limit of 1GB. In addition it also has further restrictions on type of document like documents cannot exceed </span><span lang="EN-US">512,000 characters, regardless of the number of pages or font size; spreadsheet cannot exceed 400,000 cells, with a maximum of 256 columns per sheet etc. Download APIs supports 2GB of download at a time. </span></p>
<p class="MsoNormal"><span lang="EN-US">Most of the APIs supports pagination while downloading, but for the services which does not support it one has to device own algorithm.</span></p>
<p class="MsoNormal">Finally, as technical support from network site is not that prompt/active and APIs sometime does not behave as expected one should consider more time during estimation and planning.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.globallogic.com/social-networking-integration/feed</wfw:commentRss>
		</item>
		<item>
		<title>What is the Cloud? Part III</title>
		<link>http://blogs.globallogic.com/what-is-the-cloud-part-iii</link>
		<comments>http://blogs.globallogic.com/what-is-the-cloud-part-iii#comments</comments>
		<pubDate>Tue, 27 Sep 2011 18:43:50 +0000</pubDate>
		<dc:creator>Jim Walsh</dc:creator>
		
		<category><![CDATA[Cloud]]></category>

		<category><![CDATA[cloud computing]]></category>

		<category><![CDATA[virtual data center]]></category>

		<category><![CDATA[virtualized data center]]></category>

		<guid isPermaLink="false">http://blogs.globallogic.com/?p=1563</guid>
		<description><![CDATA[What is the Cloud? Part III
Is a virtualized data center a cloud?
 
About the author:  Dr. Jim Walsh, CTO of GlobalLogic, leads GlobalLogic’s cloud architecture team.  GlobalLogic has designed and is implementing cloud-based carrier-scale streaming media solutions, cutting-edge analytic systems, and IaaS and PaaS systems for a number of multi-billion dollar companies.
 
In my previous blog post, I [...]]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><strong><span>What is the Cloud? Part III<br />
</span></strong><span>Is a virtualized data center a cloud?</span></p>
<p class="MsoNormal"><span><span> </span></span></p>
<p class="MsoNormal"><em><span>About the author:  Dr. Jim Walsh, CTO of GlobalLogic, leads GlobalLogic’s cloud architecture team.  GlobalLogic has designed and is implementing cloud-based carrier-scale streaming media solutions, cutting-edge analytic systems, and IaaS and PaaS systems for a number of multi-billion dollar companies.</span></em></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>In <a href="http://blogs.globallogic.com/what-is-the-cloud-part-ii" target="_blank">my previous blog post</a>, I discussed the architectural principals behind good cloud design. Now let’s explore how to apply them to form a functional definition of a cloud-based system. For example, is a single virtualized data center a cloud? I would argue that while there is nothing to stop a cloud-based application from being deployed in a virtualized data center, there is also nothing about a single virtualized data center that requires or takes full advantage of the unique characteristics of cloud-based applications. So my short answer would be: No, a single virtualized data center is not a cloud. It does not impose the conditions of variable latency, location anonymity or other characteristics for which cloud applications are architected.</span></p>
<p class="MsoNormal">
<p class="MsoNormal"><span>What if such a single-location virtualized data center uses private cloud technology provided by several excellent vendors, some of whom are GlobalLogic clients? Even here, I would argue that because it is in a single physical location, or even—in some cases—on the same rack, such a deployment is not in itself a cloud. It certainly may have some of the characteristics of a cloud—for example, a limited degree of location independence may be required to support the different latency requirements of same-rack versus rack-to-rack component connectivity. Still, such a single-location environment is not comparable to a world-wide distributed environment, and applications deployed on it need not be architected to the same principals as a full-scale Cloud system in order to work effectively.</span></p>
<p class="MsoNormal">
<p class="MsoNormal"><span>So, at what point <span style="underline;">does</span> a virtualized data center become a private cloud? Obviously at some scale this is possible, but where is the dividing line? I would say that, to be considered a “virtual private cloud,” the following conditions should be met:</span></p>
<p class="MsoListParagraphCxSpFirst"><!--[if !supportLists]--><span><span>1.<span> </span></span></span><!--[endif]--><span>There are multiple interconnected virtual private data centers with significant geographic separation between them (e.g., multiple continents). OR, applications are designed to scale elastically to utilize both the virtual private data center(s) and publically hosted clouds in a “hybrid cloud” model.</span></p>
<p class="MsoListParagraphCxSpMiddle"><!--[if !supportLists]--><span><span>2.<span> </span></span></span><!--[endif]--><span>The provisioning of new systems that host the application components is entirely automatic and in response to load.</span></p>
<p class="MsoListParagraphCxSpMiddle"><!--[if !supportLists]--><span><span>3.<span> </span></span></span><!--[endif]--><span>No human intervention is required to provision a new system, to deploy an application component on the system, or to de-commission an existing system.</span></p>
<p class="MsoListParagraphCxSpLast"><!--[if !supportLists]--><span><span>4.<span> </span></span></span><!--[endif]--><span>Deployed systems and components can freely or algorithmically migrate between the distributed data centers in response to load, both with and (ideally) without human intervention.</span></p>
<p class="MsoListParagraphCxSpLast">
<p class="MsoNormal"><span>Unless the above conditions are true, there is really no need to architect an application that follows all the cloud architecture principals discussed in <a href="http://blogs.globallogic.com/what-is-the-cloud-part-ii" target="_blank">my previous post</a>; a more conventional approach would be equally suitable (unless you envision an eventual migration to a “true” cloud environment). However, I would not consider a deployment environment to be a cloud if it does not meet at least the “virtual private cloud” criteria listed above (although I admit that’s a high bar).</span></p>
<p class="MsoNormal"><span> </span></p>
<p class="MsoNormal"><span>Perhaps a more useful concept to consider in this transitional time is an application’s “degree of cloudiness,” rather than a simple “cloud / not cloud” dichotomy. In reality, few existing applications or cloud infrastructures meet all the above criteria. However, I believe this is where the cloud is headed. It is in the embodiment of these principles that we will see the real benefits of this new paradigm.</span></p>
<p class="MsoNormal">
<p class="MsoNormal"><span>That being said, there is nothing wrong per se with not being a cloud or a &#8220;full&#8221; cloud application! There is plenty of scope for non- or semi-cloud applications and infrastructures, both within organizations and as commercial offerings. When an application or an infrastructure is not a cloud or is instead a partial cloud, I think we should admit it without apology instead of trying to stretch the definition of cloud to encompass it. A definition is not meaningful until it’s clear what it does <span style="underline;">not</span> apply to. If everything is a cloud or a cloud application, then the term loses any meaning. And I think the concept of the cloud is way too useful for us to let it just drift away!</span></p>
<p class="MsoNormal"><span> </span></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.globallogic.com/what-is-the-cloud-part-iii/feed</wfw:commentRss>
		</item>
		<item>
		<title>What is the Cloud? Part II</title>
		<link>http://blogs.globallogic.com/what-is-the-cloud-part-ii</link>
		<comments>http://blogs.globallogic.com/what-is-the-cloud-part-ii#comments</comments>
		<pubDate>Tue, 20 Sep 2011 15:42:39 +0000</pubDate>
		<dc:creator>Jim Walsh</dc:creator>
		
		<category><![CDATA[Cloud]]></category>

		<category><![CDATA[cloud definition]]></category>

		<category><![CDATA[virtualized data center]]></category>

		<guid isPermaLink="false">http://blogs.globallogic.com/?p=1539</guid>
		<description><![CDATA[What is the Cloud?
Part II: The Key Architectural Principles
About the author: Dr. Jim Walsh, CTO of GlobalLogic, leads GlobalLogic’s cloud architecture team. GlobalLogic has designed and is implementing cloud-based carrier-scale streaming media solutions, cutting-edge analytic systems, and IaaS and PaaS systems for a number of multi-billion dollar companies.
As I mentioned in my previous blog post, [...]]]></description>
			<content:encoded><![CDATA[<p><strong>What is the Cloud?</strong><br />
Part II: The Key Architectural Principles</p>
<p><em>About the author: Dr. Jim Walsh, CTO of GlobalLogic, leads GlobalLogic’s cloud architecture team. GlobalLogic has designed and is implementing cloud-based carrier-scale streaming media solutions, cutting-edge analytic systems, and IaaS and PaaS systems for a number of multi-billion dollar companies.</em></p>
<p>As I mentioned in <a href="http://blogs.globallogic.com/what-is-the-cloud" target="_blank">my previous blog post</a>, not all virtualized systems are as cloud-oriented as others. From a functional standpoint, fully-realized cloud-based systems adhere to key architectural principles. Let’s look at some of the principles that GlobalLogic’s architecture team has found helpful in designing effective cloud systems:</p>
<p><strong>1.     The underlying architecture is distributed.</strong> Although cloud computing and distributed architecture are in theory orthogonal, we have found that distributing the application architecture is a very important step to capitalizing on the full benefits of cloud computing, which we will demonstrate in the subsequent bullets.</p>
<p><strong>2.     Each component is highly tolerant of the variable degrees of latency between messages sent to and from other components.</strong> When invoked, one resource might be deployed on a VM in California while a resource it communicates with is located in India. When called another time, the resources might be co-located on the same subnet in the same data center in Europe. Called yet another time, they may be in Argentina and Ukraine. Although an extreme example, the point is that, in a fully cloud-enabled application, you don’t have full control over where your components are located –nor should you care. Components should not rely on their communication being synchronous, or even having latency between components that is low and constant, since resource location is dynamic. To be sure, some commercial cloud offerings let you specify an affinity for a particular data center or even the same equipment rack—but applications that require such approaches are, in my view, using a workaround and not architected to take full advantage of this new paradigm.</p>
<p><strong>3.     Cloud components are as stateless as possible, with each state maintained in a shared, distributed data store or cache.</strong> The dynamic “elasticity” of a cloud application is a key benefit because you can create or destroy instances of any given component at any time in response to the workload. To take maximum advantage of this, the individual components in a pool must be as interchangeable as possible—in particular, they should ideally not carry state. If a component must carry a state, it should be maintained in a separate data service so it can be shared between component instances. This can be done via a distributed data store or caching mechanism, which can provide redundancy for fault tolerance and support for elastic scalability.</p>
<p><strong>4.     The system tolerates eventual data consistency rather than enforcing immediate data consistency.</strong> Because distributed components operate asynchronously and with variable latencies, enforcing instantaneous global data updates can lead to race conditions, bottlenecks, retries and a general loss of system efficiency. Cloud systems are better architected to support local updates that propagate through the system over time and are consolidated eventually (as opposed to a single monolithic data repository that is guaranteed complete and accurate at all times). While this may not be possible or desirable in every situation, note that even bank ATM systems are generally architected to enforce eventual consistency of your account balance. And “eventually” commonly means only seconds, although it may be shorter or longer depending on the system’s requirements.</p>
<p><strong>5.     The system minimizes data movement by pushing code toward the data or acting only on the data closest to each compute node.</strong> Utilizing a centralized data source diminishes the efficiency of a cloud system because of (a) the time it takes to propagate data to the distributed components and (b) the components’ attempts to access or modify the same co-located pool of data with their variable latencies. To improve processing parallelism, it is better to move away from a physically centralized data store entirely. Instead, utilize a distributed data source that enables each processing component to act against its local data. Those intermediate results may then be consolidated at a higher level. This is how Google search is able to achieve such high levels of performance against the entire internet: data is distributed across many compute nodes. In such a “MapReduce” operation, each “mapper node” searches a relatively small amount of data contained in its local attached storage, with the results then consolidated globally at the reducer nodes. In applications where it is not feasible to distribute the data, it is better to move the compute nodes as close to the data store as possible, as this minimizes the impact of data traffic and latency. This location bias definitely is a workaround that makes the application less “cloud” oriented, but it is a workable paradigm where legacy data stores, for example, must be incorporated into a new cloud application.</p>
<p><strong>6.     The system asynchronously redistributes data in the background.</strong> Since elasticity is a fundamental feature of the cloud paradigm, systems must be architected to tolerate the fact that machines may come and go in a planned or an unplanned fashion. Because application state must be retained somewhere—hopefully in a shared and distributed data service rather than in each individual component—the systems that carry each state must themselves be tolerant of being created or destroyed. In other words, when the pool of stateful components grows or shrinks, data has to be redistributed across surviving or newly created nodes. Also, new data coming into the system must be transferred to the components that will use it (this is true even in a MapReduce operation). Our preferred way to mitigate the performance and other impacts of these data movements is to implement them as “background” tasks that are executed asynchronously from processing tasks. The processing components that depend on the data must then be architected to tolerate temporary data inconsistencies, but this has other benefits as we discussed above.</p>
<p><strong>7.     The system minimizes data movement as the component pool grows and shrinks.</strong> Moving data is expensive in a cloud system since data must sometimes travel at WAN speeds. In particular, the need for a “real-time” data transfer should be avoided due to its potential performance impact on the system. In systems where the data is distributed—for example, in the distributed web search scenario we mentioned previously—spawning or removing a stateful component requires that other stateful components surrender or acquire the data being managed by the new or deleted component. Because of fault tolerance, it is generally better to have data redundancy built into a distributed system so that removing a stateful component instance does not necessitate an immediate data transfer to ensure accurate results. By building the system to tolerate a degree of redundancy—e.g., filtering out redundant results at a higher level of the system—data may be cached or transferred asynchronously around the system to take advantage of the addition (or compensate for the removal) of a stateful component.</p>
<p><strong>8.     The system maximizes the use of cache.</strong> Once your system is designed to tolerate data consistency issues, you can leverage cache more effectively. Use of a distributed cache is an important mechanism to support the separation of concerns that result in stateless components, asynchronous data distribution and eventual consistency (as discussed earlier). Some excellent commercial and open-source alternatives are readily available. Memory-based architectures with terabytes of reliable and in some cases non-volatile storage are becoming a reality for cloud applications, and cache-centric architectures that follow the principals described above will be well positioned to exploit these new developments.</p>
<p>Now that I’ve outlined the architectural principals behind good cloud design, I’ll discuss in <a href="http://blogs.globallogic.com/what-is-the-cloud-part-iii" target="_blank">my next blog post</a> how to apply them to differentiate between applications that are cloud, partly cloud or not cloud at al.</p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.globallogic.com/what-is-the-cloud-part-ii/feed</wfw:commentRss>
		</item>
		<item>
		<title>What is the Cloud? Part I</title>
		<link>http://blogs.globallogic.com/what-is-the-cloud</link>
		<comments>http://blogs.globallogic.com/what-is-the-cloud#comments</comments>
		<pubDate>Wed, 14 Sep 2011 14:00:10 +0000</pubDate>
		<dc:creator>Jim Walsh</dc:creator>
		
		<category><![CDATA[Cloud]]></category>

		<category><![CDATA[cloud definition]]></category>

		<category><![CDATA[virtualized data center]]></category>

		<guid isPermaLink="false">http://blogs.globallogic.com/?p=1516</guid>
		<description><![CDATA[Many offerings and initiatives seem to be labeled as “cloud” simply because the word has become trendy. Misunderstandings about what the cloud is or isn’t have the potential to dilute this new paradigm’s impact, and I think it’s a good idea to get clarity on this point.]]></description>
			<content:encoded><![CDATA[<p class="MsoNormal"><span style="Arial;"> </span></p>
<p class="MsoNormal"><strong><span style="Arial;">What is the Cloud?<br />
</span></strong><span style="Arial;">Part I: A More Concrete &amp; Human-Readable Definition</span></p>
<p class="MsoNormal"><em> <!--StartFragment--></em></p>
<p><em></p>
<p class="MsoNormal"><em><span>About the author:  Dr. Jim Walsh, CTO of GlobalLogic, leads GlobalLogic’s cloud architecture team.  GlobalLogic has designed and is implementing cloud-based carrier-scale streaming media solutions, cutting-edge analytic systems, and IaaS and PaaS systems for a number of multi-billion dollar companies.</span></em></p>
<p></em></p>
<p><em><!--EndFragment--> </em></p>
<p class="MsoNormal" style="left;">As a leading R&amp;D services player, GlobalLogic’s engagement with new technologies tends to be a leading indicator of what the market as a whole is doing. Based on what we’ve seen over the last twelve months, there is no question in my mind that the cloud has gone from an “interesting” to a “foundational” technology. I believe we will see the pace of major cloud-deployed technologies and business offerings accelerate in 2011 and beyond.</p>
<p class="MsoNormal" style="left;"><span style="Arial;">But what is exactly <em>is</em> the cloud? Many offerings and initiatives seem to be labeled as “cloud” simply because the word has become trendy. Misunderstandings about what the cloud is or isn’t have the potential to dilute this new paradigm’s impact, and I think it’s a good idea to get clarity on this point.</span></p>
<p class="MsoNormal" style="left;"><span style="Arial;">The defining characteristic of the cloud is that the assets required to deliver a unit of functionality (e.g., computation, data access, networking devices, etc.) are in unspecified and potentially dynamically changing physical locations. These functional units are addressable over the internet, usually via a URL and programmatically via paradigms (e.g., REST) and protocols (e.g., SOAP). However, these assets cannot be addressed as conventional physical resources (e.g., hostname or hardware-specific IP address) as they would be in a corporate network — except perhaps as aliases for an anonymous system. This “location anonymity” is actually what drives some of the most powerful aspects of the cloud paradigm.</span></p>
<p class="MsoNormal" style="left;"><span style="Arial;">It would be easy to interpret “location anonymity” as “cloud = ignorance of location.” However, a more useful characterization is “components of a well-designed cloud architecture shouldn’t assume nor care about having a specific location.” In other words, a cloud application or service is best architected so that each of its components can tolerate wide variations in (1) the proximity of the other components and resources it needs and (2) the physical locations of the clients it serves. In this sense, cloud is the software equivalent of geographic globalization, where modern business practices and technologies make the physical location of resources increasingly irrelevant.</span></p>
<p class="MsoNormal" style="left;"><span style="Arial;">In fact, independence of physical location is a key driver of cloud “elasticity.” If a given system is anonymous, its function can easily be grouped as a “pool” of identical systems that is addressed through a virtual load balancer. This system can achieve great scale because you can “create” new virtual machines from the same boot image whenever you need them and then “destroy” them when they’re no longer needed, thus achieving more economy. In a physically tied system, deploying more systems can take weeks if not months. Even in a virtualized data center, this process can involve considerable manual configuration effort. With the cloud, elasticity is intrinsic to the paradigm and only takes minutes when properly implemented.</span></p>
<p class="MsoNormal" style="left;"><span style="Arial;">Of course, independence of system components isn’t the only characteristic of the cloud. Some systems are more cloud-oriented than others, which I will address in <a href="http://blogs.globallogic.com/what-is-the-cloud-part-ii" target="_blank">my next blog post</a> about the architectural principals behind true cloud-based systems.</span></p>
]]></content:encoded>
			<wfw:commentRss>http://blogs.globallogic.com/what-is-the-cloud/feed</wfw:commentRss>
		</item>
	</channel>
</rss>

