Cloud Foundry: Design and Architecture
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
The content has been bookmarked!
There was an error bookmarking this content! Please retry.
Posted by Dilip Krishnan on Apr 22, 2009
“The Atom Publishing Protocol is a failure.” Joe Gregorio says, admitting to having met his blogging-hyperbole-quotient for the day. In a post largely about the how the level of adoption that AtomPub is seeing, is far lower than the expectation. Joe writes that “There are still plenty of new protocols being developed on a seemingly daily basis, many of which could have used AtomPub, but don't.”
Joe Attributes the inability of AtomPub to become the “one true protocol”, to browser innovations.
The world is a different place then it was when Atom and AtomPub started back in 2002, browsers are much more powerful, Javascript compatibility is increasing among them, there are more libraries to smooth over the differences, and connectivity is on the rise. So in the face of all those changes let's see how the some of the original motivations behind AtomPub are holding up.
According to Joe some of the key capabilities that AtomPub was designed to address are either easily available as a result of advances in browser technologies or are no longer a significant differentiator:
1. The capabilities of browsers were limited as an “editor” and AtomPub was created to be used by thick clients and RIA’s.
The reality is that more and more functionality is moving into the browser and that takes away one of the driving forces for an editing protocol.
2. AtomPub was designed to address the offline editing scenario.
Another motivation was the "Editing on the airplane" scenario. The idea was that you wouldn't always be online and when you were offline you couldn't use your browser. The part of this cliche that wasn't put down by Virgin Atlantic and Edge cards was finished off by Gears and DVCS's.
3. Serve as a common interchange format.
The 'problem' in this case is that a better format came along in the interim: JSON. JSON, born of Javascript, born of the browser, is the perfect 'data' interchange format, and here I am distinguishing between 'data' interchange and 'document' interchange. If all you want to do is get data from point A to B then JSON is a much easier format to generate and consume as it maps directly into data structures
Joe points to successful implementations of AtomPub in a variety of services, and concludes saying “the advances in browsers and connectivity have conspired to keep AtomPub from reaching the widespread adoption”
Other use cases are still holding up over time, such as migrating data from one platform to another. Probably the biggest supplier of AtomPub based services is Google with the Google Data APIs, but it also has support from other services; just recently I noticed that flickr offers AtomPub as a method to post images to your blog.
Dare Obasanjo, echoes a similar sentiment over at his blog
The growth in popularity of object-centric JSON over document-centric XML as the way to expose APIs on the Web has been the real stake in the heart for the Atom Publishing Protocol.
With Microsoft betting on AtomPub with its cloud offerings and Google invested in it with with the Google Data APIs, it may not be such a failure after all. Joe’s original post is available at is blog.
Derek Collison discusses the goals, the design premises and patterns employed in creating the architecture of Cloud Foundry, VMware’s open source PaaS, unveiling internal architectural details.
Andrew Watson talks about the work of the OMG, where CORBA is alive and well (hint: in your car), UML and UML Profiles vs. custom Modeling languages, DDS and other middleware, and much more.
Sohil Shah discusses creating iPhone and Android enterprise mobile applications based on cloud services using the open source platform OpenMobster.
Paul Sanford presents the transformations supported by data throughout its life cycle, and how that can be better done with Splunk, an engine for monitoring and analyzing machine-generated data.
A common “best practice” for unit tests is to only write a one assertion in each test. I intend to question this advice by showing that multiple assertions per test are both necessary and beneficial.
John Rauser presents the architectural and technological evolution of Amazon retail websites starting with 1994 and ending with adopting Amazon Web Services.
Michael Stal discusses system architecture quality, how to avoid architectural erosion, how to deal with refactoring, and design principles for architecture evolution.
Every developer has had to integrate with another system, API or component. Tis article provides strategies to handle the change and for he separating system boundaries.
No comments
Watch Thread Reply