Wednesday, 4 January 2012

Cloud Application

Cloud Application

If the 80s and early 90's were all about building rich desktop applications, the last 15 years have been about building web applications.  Sprout Core is focused on helping you build a new kind of software called "cloud applications".  

Cloud applications are a sort of hybrid between traditional desktop applications and traditional web applications.  They offer the benefits of both of these types of software without many of the drawbacks.  Like desktop apps, cloud applications can offer a rich user experience, immediate response to user actions, and offline mode.  Like web apps, cloud applications do not need to be installed on a computer and can be updated at any time simply by uploading a new version to your web server.  They also store their data in the cloud - offsite under your control.

To write effective Sprout Core code, its important for you to understand the differences between web applications, desktop applications, and cloud applications.


Now enter the Cloud Application.  Cloud apps blend parts of the web and desktop worlds to create something new.  Like the web app, your data lives in the cloud.  Like the desktop app, your business logic downloads to the web browser and lives there instead.


With this approach you really get the best of both worlds.  Your app is easily accessible to anyone with a web browser.  It's really easy and natural to write cloud-centric tools.

Yet at the same time, all of your interaction happens right there next to the client.  Although you can't entirely hide the fact that you are running over the Internet, most of the time you can easily provide rich interactions and immediate feedback.

With this design, of course, it is also easy to cache the user's data locally, enabling full offline mode without any kind of hackery.

One other benefit of this model is that it means you can make your server much smaller and simpler.  Mostly your server needs to process data efficiently and return results as quickly as possible.  As with any service exposed to the internet, you need to also make sure your server is secure - authenticating requests and validating data.  But the overall task is much simpler.  And best of all, better suited to the kinds of things server frameworks are naturally good at.

Cloud apps clearly offer a superior user experience to traditional web apps.  They have largely only become feasible for broad internet use in the last few years though, which is you'll see a lot more of them coming along soon.

http://wiki.sproutcore.com/w/page/12413089/What%20is%20a%20Cloud%20Application

No comments:

Post a Comment