Untitled Document
 Register Now & Save!
Untitled Document
2009 Gold Sponsor
Untitled Document
2009 Silver Sponsor
Untitled Document
2009 Panel Sponsor
Untitled Document
2009 Exhibitors
Untitled Document
2009 Media Sponsors
Latest News
On Tuesday, Clustrix announced the availability of...
What are the legal implications and consequences o...
EMC moved to make Hadoop safe for the Joe Blow big...
Amazon has reined in the price of its S3 storage a...
The focus of Java EE 7 is on the cloud, and specif...
2011 was a year of rapid adoption for public and p...
AMD Thursday told financial analysts it’s gonna tr...
SYS-CON Events announced today that ScaleOut Softw...
Acer has sued its former CEO Gianfranco Lanci in M...
Virtualization and private cloud are good for serv...
Can't Miss RSS Feed
Subscribe to the RSS Feed & Get All The Conference News As It Happens!
Applying Software Patterns to the Cloud and the Internet Operating System
Cloud Principles for Programming the Web

The MVC for the Cloud meme got me thinking about other principles that might apply to programming the Web as a whole. A lot of the principle's we routinely apply to web apps to great effect seem to have analogies when taken beyond individual apps. While MVC seems a clear fit, here are some others:

  • DRY - Don't Repeat Yourself!
  • Dynamic Languages
  • Convention over Configuration
  • Data and Control Abstraction
  • Continuous Integration

Taken together with MVC these also make a lot of sense applied to the cloud. On the first one, I think it's fair to say we're already getting there:

  • DRY (or DIE): the last 20 years have seen an amazing ecosystem of open source software become available and most programming frameworks have a truly awesome ecosystem of plugins and code available to make the core frameworks more powerful. Now this is starting to be replicated at the service level - there are very few reasons now to develop your own credit card processing, email sending, exchange rate checking etc. systems - these are all freely available via external services which can be integrated by API. The trend seems to be accelerating with even user authentication management (Facebook Connect), file storage (Amazon S3), and a large volume of external data sources (event databases, weather, finance etc.) all starting to become externally available. It's becoming the rule that before you code anything or gather anything it makes sense to say "Is there an API for that?".

This isn't an argument that there should be only ONE API for it - diversity is crucial, but one perhaps the may just be ONE unified common interface. For the next, if we look hard enough I'd say the Web is already the best example of a runtime computing system based on dynamic languages:

  • There is no fixed type system: While SOAP Web Services have taken hold within the enterprise, on the Internet REST is King and there are few formal specifications used for API Interfaces (WSDL, WADL
  • and others do see use - but it's still sparse) - although this will change over time and we encourage our customers at 3scale to provide good specs for their APIs, we're a long way from a formal type system since there are no shared object definitions which are commonly agreed. (Semantic Web efforts are helping change this is also - but I suspect they'll take a long time to break through).
  • Even if there were a fixed type system there would still be no notion of "compilation" in the cloud for applications which span multiple services because different services are operated by different companies and individuals and could change at any time.
  • End services can also be written in almost any web language from C++ or Ada to Django or Java - even if everything could be frozen and "compiled" there would be no way to do it in the traditional sense.

"It's about the Interface Stupid" might apply well here because amazingly things still work - today's API providers are realizing the importance of taking care of their interfaces over time. In the long run, at 3scale we see this as evolving into a Contract First environment where we don't just see languages like WSDL & WADL define what an interface does functionally, but what the precise commitments are from the provider to the users of their services (see some great work on this in the European Commission funded IST-CONTRACT project btw).

Seeing the Cloud as a big Operating System based on dynamic languages means the following two memes are all the more important, but are only just emerging:

  • Convention over Configuration: Frameworks such as Ruby on Rails have a huge advantage over other web development frameworks by using the idea that if a set of "normal ways of doing things" was established then in many cases there would be no need to maintain complex configuration files everywhere (JSPs - we're looking at you..), what are often a few logical lines of code in a rails app required multiple lines in other configuration files in a JSP driven App. In the cloud it's fair to say this idea is slowly emerging - c.f. the adoption of Twitter's API structure by a range of other services. REST itself is also something which follows a Convention pattern with it's 7 core operations applied to RESTfull data objects. We're a still a long way from being able to integrate 3rd party services almost without checking the documentation.
  • Data and Control Abstraction: within modern programming frameworks ORM (Object Relational Mappings) provide a powerful layer of abstraction over database entries that allow developers to think in terms of objects rather than lower level structures. Again in the cloud REST helps us generate some of this abstraction - new NoSql database even make some mappings even clearer (check out this amazing app - Jquery + CouchDB - look no middle layer.). Web APIs are by their very nature an abstraction of data and functionality - without this layer we would be writing raw SQL queries into linkedIn's database rather than using their API. What hasn't yet emerged is a standard model for representing many of the objects which are being shared - again something progress of the Semantic Web may change.

Programmable Web now lists nearly 5000 mashups of 2000+ Public APIs - this is a huge number of integrations - and is testament to the hardworking developers than made this happen (each one of those links took a lot of debugging) - conventions and abstractions can come fast enough to make this all easier. Those 5000 mashups also highlight something which relates to the last of the 5 memes I picked on - continuous integration:

  • Continuous Integration: applying continuous integration to software development is a no brainer for almost any complex system - the technique relies on the creation of batteries of software tests for all aspects of the software application which can be executed in an automated fashion (often the tests are written even before the application code) and runs these tests on any new build of the system when it becomes available. This means that if new code breaks the development build there's immediate awareness of the problem and it can be fixed. Continuos Integration allows a dev team to keep track of how the code matches up to how it is supposed to behave at all time (we keep 3scale's Hudson Installs pretty busy :-) ). In the cloud context, we're still only taking baby steps towards an equivalent of automated testing and continuous integration. Most tests are still before deployment only and after that we hand of to far less detailed monitoring systems - despite the fact that many apps depend on external services. Continuous Integration will likely eventually need to be really continuous and operate at runtime against live deployed systems - not just pre-deploy time.

All in all, we're likely to want to replicate all the power and flexibility we have available for building individual applications to Applications which depend on Multiple cloud services. The scope of the problem changes - but the metaphors still seem to be highly valid.

I especially like the dynamic languages and DRY analogies - it's great to see the heterogeneity of available Web APIs and amazing to see that stable applications still emerge - Web API interfaces provide a critical glue to make this work and it's interesting to see that they are emerging "bottom up", rather than via top down de jure standards.

Read the original blog entry...

About Steven Willmott
Steven Willmott is Co-Founder & CEO of 3scale - a leading provider of mission critical Web Services / API infrastructure services. The company helps web businesses of all types launch and manage Web Service access to digital content and services - accelerating their move to the Cloud. Prior to 3scale, Wilmott was previously the R&D director of one of the leading European research groups on distributed systems and Artificial Intelligence at the Universitat Politècnica de Catalunya in Barcelona, Spain. He has 10 years of technical experience in Web Services, Semantic Web, network technology and the management of large-scale international R&D teams. He is also an expert advisor to the European Commission's Future Internet Research Infrastructure program.

Untitled Document

Call 201 802-3021 or Click Here to Save $400!

Save $400

 Sponsorship Opportunities

SYS-CON's International Cloud Computing Conference & Expo, held each year in California, New York and Prague is the leading event covering the fast-emerging Cloud Computing market for Enterprise IT professionals. Co-located with the International Virtualization Conference & Expo, the combined event will surely deliver the #1 i-Technology educational and networking opportunity of the year for those seeking to establish a market lead anywhere in the multiple layers of the Cloud Computing ecosystem.





Who Should Attend?

Senior Technologists including CIOs, CTOs, VPs of technology, IT directors and managers, network and storage managers, network engineers, enterprise architects, communications and networking specialists, directors of infrastructure Business Executives including CEOs, CMOs, CIOs, presidents, VPs, directors, business development; product and purchasing managers.


Video Coverage of Cloud Computing Expo

Brian Stevens: The Opening of Virtualization
Jon Wallace: User Environment Management – The Third Layer of the Desktop
Brian Duckering & Ken Berryman: Managing Hybrid Endpoint Environments
Preeti Somal: Game-Changing Technology for Enterprise Cloud and Applications

 Conference Media Sponsor: Cloud Computing Journal

Cloud Computing Journal aims to help open the eyes of Enterprise IT professionals to the economics and strategies that utility/cloud computing provides. Cloud computing - the provision of scalable IT resources as a service, using Internet technologies - potentially impacts every aspect of how IT deploys and operates software.

Government IT Conference & Expo 2009
Allstar Conference Faculty Lineup Will Include...


CHEVALIER

Novell Canada

DICARLO

Sun Micosystems

FOXWELL

Sun Microsystems Federal

GABHART

Web Age Solutions

GREENBERG

Integralis

HAHN

Tranxition

WILLIAMS

Maxworks

JACKSON

Dataline, LLC

KHOSLA

IBM

KRZYSKO

US Departement of Defense

LIBERMAN

Lieberman Software

MARKS

AgilePath

MORGENTHAL

QinetiQ North America

RYAN

Asankya

TRAJMAN

Vertica

WHITE

BDNA


SYS-CON EVENTS


Past Events Archive

Cloud Computing Conference & Expo
2009 East

cloudcomputingexpo
2009east.sys-con.com/
Virtualization Conference & Expo
2009 East

virtualizationconference
2009east.sys-con.com/
Cloud Computing Conference & Expo
2008 West

cloudcomputingexpo
2008west.sys-con.com/
SOAWorld Conference & Expo 2008 West
soaworld2008.com/
Virtualization Conference & Expo 2008 West
virtualizationconference
2008west.sys-con.com
AJAXWorld Conference & Expo 2008 West
ajaxoct08.sys-con.com
SOAWorld Conference & Expo 2008 East
soa2008east.sys-con.com
Virtualization Conference & Expo 2008 East
virt2008east.sys-con.com
AJAXWorld 2008 Conference & Expo East
ajaxmar08.sys-con.com
SOAWorld Conference & Expo 2007 West
www.soaworld2007.com
Virtualization Conference & Expo 2007 West
virt2007west.sys-con.com
AJAXWorld 2007 Conference & Expo West
ajaxoct07.sys-con.com

Cloud Computing Expo Alumni Delegates Represents...

• AccuRev
• Adea Solutions
• Adobe Systems, Inc [3 delegates]
• ADP
• Aeropostale, Inc
• Aetna
• Akbank Training Center
• American Family Insurance
• American International College
• American Modern Insurance
• Amphion Innovations
• Amplify LLC, Clipmarks [2 delegates]
• Anderson Consulting
• Arrow Electronics [3 delegates]
• Ashcroft Inc
• Athabasca University
• ATS
• Audatex
• Avanade, Inc.
• Avaya Inc. [5 delegates]
• Azul [2 delegates]
• Backbase [2 delegates]
• Bank of America
• Bank of NY
• Barnes and Noble
• Barnex Investment International Limited
• BEA
• Bear Stearns [2 delegates]
• Bendel Newspaper Company Limited
• BizInnovative
• Bloomberg [2 delegates]
• BlueBrick Inc.
• BMC Software
• Boeing
• Bottomline Technologies [2 delegates]
• BP
• Broadcom

   read more...
Cloud Computing Blogs
In other words, VMware’s server density is higher. Boles suggests this means that customers should be “assessing virtualisation on a ‘cost per application’ basis. VM density has a sign
Traditionally, the way people have implemented high availability is by using a high-availability management package like Linux-HA[1], then configure it in detail for each application, file system moun