- Nov 10, 2008 Lessons for User Experience Consultants from ......
- Apr 29, 2009 The Tesla Model S - Touch-Screen User Experience ......
- Aug 25, 2009 Drupal and TeamSite: A Look at Open-Source and ......
- May 5, 2009 16 Years, what do you get? A Job at Roundarch! ......
- Mar 11, 2009 Example of Great Usability at Roundarch...
- Jul 6, 2009 Apple has it's Nikon......
- Dec 15, 2009 The Rebirth of the Magazine...
- May 4, 2009 Roundarch and Avis Present at GearUp09 in New ......
- Mar 18, 2009 Skittles.com, Canary In A Mine or Beacon of Hope?...
- Nov 19, 2009 Examining the User Experience of Sky Harbor's ......
- Apr 27, 2009 "RIAs beyond the mouse and keyboard" - RIAPalooza ......
- Sep 15, 2010 Decision Maker - Roundarch Develops a Fantasy ......
- May 7, 2010 US Air Force Logistics Application Designed and ......
- Jun 29, 2009 Sean Moore Names Two People From Roundarch on His ......
- Mar 8, 2010 iPhone App Development Without Learning ......
- May 20, 2010 StrataLogica™: Creating Interactive ......
- Jul 14, 2009 Google Technology User Group Chicago Kicks Off...
- Jul 28, 2009 Roundarch Develops Prototype Designed to Help ......
- Jul 24, 2009 The Importance of Usability...
- Aug 3, 2009 What's the Big Deal with HTML5?...
- Jan 19, 2010 User Expectation and the Pleasant Surprise...
- Aug 26, 2009 Roundarch Sponsors American Red Cross Mission: ......
- Feb 4, 2010 On the iPad as the Future...
- Sep 8, 2009 Iconography - Where Are We Headed?...
- Sep 18, 2009 Roundarch Takes the Field in the American Cancer ......
Roundarch Partners with Brightcove to Create ...
Aman Datta, vice president at Roundarch, explains how our partnership with Brightcove allows us to create scalable, flexible and ...
Roundarch Sponsors Boston Interactions Fifth ...
Roundarch proudly co-sponsored the Boston Interactions Fifth Annual Winter Party this past Tuesday evening (1.24) in Cambridge, MA. Boston ...
Flex and Its Future as an Apache Project
Leaders in the Flex community recently gathered at Adobe’s San Francisco headquarters this week. I’ve covered my thoughts to the ...
Virtualization: A Dream within a Dream
CIOs have a tough problem to solve. It is typically their responsibility to maintain all of the applications within their network, safely and ...
Flex – The Good, The Bad, and The Future
Over the past week the Flash and Flex community have been on a roller coaster ride with announcements by Adobe regarding the Flash platform. As ...
Attending SharePoint Conference 2011
I recently attended the SharePoint 2011 conference held in Anaheim, CA. The event hosted about 7,500 attendees with broad ranging backgrounds. ...
Roundarch Hosts IxDA Chicago Chapter October ...
Roundarch is proud to have hosted a special event for the Interaction Design Association’s (IxDA) Chicago chapter this past Wednesday. IxDA ...
Exploring Dark Patterns in User Experience at Web ...
Last week I attended Web 2.0 Expo in New York to give a talk about dark patterns in user experience. This talk was somewhat the sequel of a talk I ...
The Importance of Being a Mentor
“Be the change you want to see in the world” a quote by Mahatma Gandhi stands as a focal point on one of the walls at the iMentor.org ...
KCRW Music Mine iPad App Released- Introducing a ...
Today we are happy to announce the release of Music Mine, a free iPad media discovery application designed by the team at Roundarch for KCRW, ...
Roundarch Participates in a Panel About the ...
Whether Adobe represents an aging dinosaur in an online world that is quickly passing them by or a force still to be reckoned with in a battle of ...
Roundarch and Bloomberg Sports Launch In-Season ...
Spurred by the success of the Front Office suite of fantasy baseball tools for the 2011 season, Roundarch and Bloomberg Sports have teamed up to ...
Golf Business Explains How Roundarch and ClubCorp ...
Roundarch has partnered with ClubCorp, the world leader in private clubs with 150 across the country, to create an entirely new digital experience ...
Roundarch Updates Waters iPad App with Game ...
Quickly following the success of the first Waters iPad application, the second version of the app is now available in the app store. The first ...
Roundarch Addresses Common Concerns Regarding ...
It is no secret in the Federal Government that focusing on user experience is not a major concern within government ...
Persistence, Processing and Presentation in the Cloud Based Applications
ByI’m sure several things come quickly to mind when someone mentions cloud computing or cloud applications. As Mark noted in his post about different emerging cloud services there are several layers of complexity that might flavor an application built on or with cloud services. I’m going to specifically talk about building applications that consume or consist of cloud services, Software as a Service ( SaaS ). These can be services you build yourself or they can be 3rd party services. At any rate your end goal would be to have an application that can be delivered to your users, built upon cloud services and my goal is to describe the different layers of how you can build that application based on my experience of designing/building cloud based applications.
I tend to think of the cloud just as I would a traditional computing solution with a few caveats: cloud computing should be highly scalable, on demand and more cost-effective than something I could get at my local web hosting company. At least in theory. In five years time, what we think of as cloud computing will probably be the “traditional” computing solution, indeed you will notice that the layers I’ll describe already follow how web applications are generally built today. The reality of the situation means that while cloud computing solutions offer more for less, the trade off is that no one service can be 100% trusted, no one network can always be relied upon, and therefore fault tolerance must be built into the system.
So let’s break down the anatomy of a typical web based cloud application. Generally speaking applications fall into 3 layers, 1) Persistence Layer, 2) Processing Layer and 3) Presentation Layer. These layers can consist of several different services, from several different cloud computing vendors or api’s. You should feel free to have all of these layers talk to each other as well.
So, for the Persistence Layer you might write to a EC2 hosted MySQL database for app specific data, while also relying on the the Persistent capabilities of Facebook, Twitter, or even Google to store user specific data. When I think of the the Persistence Layer I think of only reading and writing data to disk. There should be no (or as little as possible) logic associated with this layer because any logic you write will tend to be platform specific making it more difficult to port in the future event you have to switch providers. In most cloud computing solutions this layer is the layer that implements Eventual Consistency. Interactions with this layer should be quick and to the point. You write, you read. Period. It doesn’t happen often, but if you were to move your persistence layer from one vendor to another, it should be a simple as transferring files.
The Processing layer ( just like a traditional application ) is the layer that interacts with both the Presentation and Persistence layers. This could be a layer you write in your favorite server scripting language. It could be a proxy layer that you write that takes input from your application and then routes data to other third party services, with some of it going/coming from Amazon SimpleDB, some of it going to a legacy database from with your network, and perhaps it ferries analytical information to Google Analytics or Omniture. The point is that, the processing layer can be used for any type of processing that your application needs. But keep this in mind, in my experience the more you proxy to third party services, the less code you’ll have to write and maintain. Or to look at this from the other side if you’re using a third party API and your application doesn’t need to augment the data before sending it over there should be no reason to build a processing layer. Mashups can be thought of a cloud application without the Processing Layer. Can your Presentation Layer talk directly to Omniture or Amazon S3? Absolutely, as long as you don’t have application logic that needs to run before you read or commit.
The Presentation Layer is where everything gets tied together. Above all it needs to always be responsive. I’d go so far as to say that it’s development specific limitations should drive all other development, when possible. I realize that might be a bit controversial, but remember in most use cases, the Presentation layer is running on a user’s machine, which can be thought of just another machine in the cloud. The user is allowing us to run the application on his/her processor for free with the implicit expectation that the application will give something back. The very least we can do as developers is to make sure the user knows what is going on. The need to pull data from multiple locations and present in a data rich interfaces is what makes technologies like Adobe Flex and Microsoft Silverlight so appealing to developers.
So, as a quick summary about what to think about when building cloud based applications. Build the Presentation and the Persistence Layers first and only add the Processing Layer as needed. Never trust any one server or any one network. Practice failure to help build Fault Tolerance. And last but not least, the most important fault tolerance you can build is on the Presentation Layer.
In posts to follow I’ll take a deeper look at each of these layers, various options for these layers and talk about some the lessons learned and best practices for building applications upon cloud services.
Read More | Permalink | Comments (0) | TrackBacks |





