Introducing Forever and Personal Cloud Application Architectures


Summary

Personal clouds give rise to a brand new application architecture that gives people more control over their data and breaks down data silos to provide greater network effects. We've built an evergreen contact application called Forever that demonstrates this new architecture to developers and provides people with an online contact database that is never stale.

For a more detailed look at the ideas in the blog post, see my recent white paper in the Live Web Series called Introducing Forever: Personal Cloud Application Architectures.

Kynetx has built an application called Forever to demonstrate application architectures for personal clouds.

Forever is an evergreen address book that uses personal clouds based on the Kynetx CloudOS. The profile data in the personal cloud provides the contact information. The connections between clouds provide the friend relationships that Forever displays. The following diagram shows how Forever uses personal clouds:

Subscriptions between personal clouds provide the contacts in Forever.

If Allison needs Vicky's contact information, Forever doesn't have it. Allison's cloud doesn't even have it. Only Vicky's cloud stores her profile information. Forever asks Allison's cloud to retrieve it and Allison's cloud gets it from Vicky's personal cloud. Forever is like DNS for people because each person is responsible for their maintaining their own profile information and it is retrieved as needed, just in time.

Personal Cloud Application Architectures

Forever is built using a unique application architecture that keeps people's data in their personal cloud, under their control.

Ever since the Web got CGI and cookies, web apps have used a programming model like the one shown below. In the traditional model, the application presents a Web interface to application data stored and managed in concert with the application.

standard_web_architecture

The traditional Web application model has given us a wealth of exciting and useful online applications. While the details of how the application is structured differ greatly from app to app, the basic architecture wherein the application mediates access to data has not changed.

But the traditional architecture shown above has significant limitations. Storing data for users in the app's datastore creates "data silos" where the app has exclusive access to the data. This results in inconveniences to the user:

  • users must fill out profile and other standard information for every application they use.
  • applications that die take the user's data with them.
  • more significantly, data silos prevent network effects where one app's data exhaust becomes the input for another app.
  • the application necessarily has access to all of the user data it mediates, creating privacy concerns.

Apps that use personal clouds, in contrast use an architecture where the data is separated from the Web application. This is a model similar to that of Unhosted apps. The picture below shows this separation.

unhosted_web_architecture

Apps based on a personal cloud architecture free developers from hosting and managing the data while giving the user more choice and greater control. Personal cloud app architectures are enabled by modern browser support for HTML5, CSS, and JavaScript. The browser receives the app's source code over HTTP and connects to the data using an API. Personal cloud app architecture separates the app hosting from the data hosting making the entire system more modular and more loosely coupled.

Applications built on personal clouds, on the other hand are easier to build and deploy because they don't have to account for user data—the personal cloud does that. Also, because personal cloud application architectures support greater modularity, they are more flexible and create network effects for data and other servers (like inter-cloud subscriptions).

Learning More and Helping

To introduce the idea of personal cloud application architecture, I've written a white paper that describes Forever and it's architecture in some detail.

Forever links to personal clouds that implement the service API of the Kynetx CloudOS. The easiest way to get such a personal cloud is to sign up for SquareTag. Of course, since CloudOS and the underlying KRE platform are open source, you could also run your own—either by installing it directly or using a pre-built virtual machine image. We hope that there will soon be other personal cloud hosting providers that are compatible with CloudOS.

We need developers to use the personal cloud application architecture and help drive our development efforts on the platform side. That is, we need some customers! We're looking for a few hardy developers to work with what is right now, an early alpha architecture (although the underlying platform is quite mature). If you have an idea for a application that could use this architecture, we'd love to connect and help you get started.