|
Latest News
|
From the Blogosphere MVC for the Cloud
We're seeing the birth of a "3rd generation" (or is that a third wave?) of MVC
By: Steven Willmott
Jul. 11, 2010 05:15 AM
While planning for a talk at Cloud Expo Europe a few weeks ago I was thinking about appropriate metaphors for the way APIs are changing the web. Although the title was APIs as glue for the Cloud, I think the core metaphor behind it deserves some explanation: MVC for the Cloud. I thought I'd add some notes here as to what this might mean. MVC or Model View Controller is an architectural pattern for software that seperates out three import things - Models (or Data), Views (visualisation of that data) and Controllers (operations on the data). Since it's invention at Xerox Parc in the late 70's, MVC has a had a huge impact on software engineering and nowhere more so that on Web Applications - there are MVC frameworks for almost every Web programming language and framework out there. What I'd call "1st generation" MVC was applied to desktop applications and gave great new flexibility at design and build time but separating these three elements out and allowing independent work on all three pieces. When the software shipped everything got baked together and the end user had no knowledge how the underlying system was stitched together. Moving to Web Applications there is a "2nd generation" of MVC which takes this even further - M, V and C can even stay separate at deploy time for a web app - this means developers of SAAS apps can independently work on and update their data models, views and controllers without affecting the other components - again all without the user needing to know. We can even allow users to switch interfaces "views" according to their needs - and keep exactly the same underlying logic and data models. Advanced testing frameworks and continuous deployment make it increasingly feasible to decouple almost everything. Cloudscale MVC
The implications of this are enormous - instead of a world in which individual applications/services are silos which have M+V+C locked inside of them the MVC connections a can perfectly well exist between applications and between companies. Better stated a company with great data assets can enable access to this data to aggressively grow an ecosystem of partners who provide exiting views (often coupled to audiences) and transformations of this data. Looking at some examples:
I'd also include Apple in the later category - creating devices which end up in the hands of millions and aggregate/transform applications and content into convenient forms for apple users. Some companies (potentially the New York Times falls into this category) have assets in more than one place - in the NYT's case great data, but also a loyal audience which trusts its brand. APIs are the key strategic asset which is needed to make this happen. Using APIs companies are now no longer forced to provide all parts of the value chain of their service themselves - in fact, it has huge value to partner with others and focus on one's core strength. Today companies can likely still be victorious in their market segment without partnering up - but as the Internet evolves it seems likely that:
Such changes might require changes in business models and strategy, but increasingly they look like a natural evolution of the Web economy. As Data and Services move to the cloud the opportunities for focus and re-use of core valuable assets is a potentially huge untapped benefit for many companies. APIs and the Internet OS At the software level, this 4th element is represented by frameworks such as Rails, Jango, Cake, Spring's Java MVC framework or any of the other many frameworks. At the cloud scale the equivalent seems to be something akin to the Internet Operating System postulated by TIm O'Reilly and others which argues that many core internet functions such as Search, Media Access, Location, Communication and others are morphing from standalone services into a commonly available infrastructure which others can rely on - again often through the use of APIs. This metaphor seems spot on - common substrates such as twitter messaging and google search are clearly becoming the basis of many thousands of new applications. The idea extends further to services such as Facebook connect and Twitter connect which are quickly becoming a standard way to set up user authentication for new Web applications (just as Paypal has largely become for payments). (Of course in some cases there are concerns about how much power some of the players behind such services may ultimately have, but leaving this aside, they arguable provide the means for a whole new economy of applications. The Internet Operating System seems to be clearly emerging and taking the analogy further - is beginning to make it possible to build compound applications which string together data and services from many places to create user experiences. Back to MVC It seems a fair bet that web companies over the next few years will need to establish what their core value and differentiator is (M, V or C?) and aggressively establish partnering channels to links themselves into strong partner ecosystems. This also creates opportunities for a wealth of new applications which combine data, functionality and views/audiences in new ways. |
Cloud Computing Blogs
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||