Saturday, December 5, 2009

Ranking Cloud Computing Vendors 2009

With the close of 2009 coming soon, I expect to see a number of “2009 - Cloud Computing in Review” type posts. Let me get a jump on everyone and release mine a few weeks early. Though I am a developer, my Cloud posts have all been analytical in nature and this one is no different. For this post I chose a single data source for stack ranking the Cloud Computing vendors – Google search results. Not terribly scientific, but an approach that produced interesting results.

Google as an Analysis Tool

I have created a number of editions of my Cloud Taxonomy over the last 18 months. The goal of that project was to help newcomers to the market understand what types of solutions are available and who the players are. My hope was that people would find it useful as a launching off point on their journey into the Cloud.

Tonight, on a whim, I decided to see what would happen if a person used Google instead as the start of their exploration of Cloud Computing. It was predictable that a high percentage of results are focused on “intro” or “definition” type pages. A lot of blog posts, tweets, and conference sessions have been devoted to defining what exactly is Cloud Computing. Let’s link to the NIST definition, and speak no more of that here.

What I found interesting was the relative ordering of vendors in the results list – it wasn’t what I expected at all. Given that Google Page Rank arguably orders results according to mind share, I expected certain vendors (e.g. Google, Cisco, GoGrid) to appear high above others. Looking at the results below, that didn’t happen.

To head off the flames, I recognize why this analysis isn’t scientific:

  • It is based off of a single data source – Google Page Rank
  • It is based off of a single search phrase – cloud computing
  • It assumes Page Rank == mind share

But its interesting to me nonetheless, so here we go.

Ranking the Cloud Vendors in 2009 on Mind Share

The table below shows the results. To collect this data, I did the following:

  • Cleared all browser cookies
  • Ensured I was logged out of Google (to avoid personalized results)
  • Navigated to the google.com search page
  • Typed “cloud computing” in the search box

And, here are the results. I first scrubbed anything that wasn’t a vendor or open source product. Then I noted the first time their domain (xxx.com) appeared, even if that listing was not their primary cloud page (sometimes the blog comes first). Google itself is the exception on this – hits on Google Groups/Blogger/etc did not count.

 

Result Page Rank Vendor URL

1

1 Rackspace http://www.rackspacecloud.com/
  2 Sun http://www.sun.com/solutions/cloudcomputing/index.jsp
  3 Salesforce http://www.salesforce.com/cloudcomputing/

2

4 Amazon http://aws.amazon.com/ec2/
  5 VMware http://www.vmware.com/solutions/cloud-computing/
  6 IBM http://www.ibm.com/ibm/cloud/
  7 Canonical/
Ubuntu
http://www.ubuntu.com/cloud

3

8 Dell http://content.dell.com/us/en/enterprise/cloud-computing.aspx

4

9 Oracle http://www.oracle.com/technology/tech/cloud/index.html
  10 RedHat http://www.redhat.com/solutions/cloud/
  11 Rightscale http://blog.rightscale.com/2008/05/26/define-cloud-computing/
  12 Microsoft http://www.microsoft.com/virtualization/en/us/cloud-computing.aspx

5

13 3tera http://www.3tera.com/Cloud-computing/

6

14 HP http://www.hpl.hp.com/research/cloud.html
  15 Yahoo http://labs.yahoo.com/Cloud_Computing
  16 Objectivity http://www.objectivity.com/cloud-computing/default.asp

8

17 Cisco http://blogs.cisco.com/tag/cloud+computing
  18 Enomaly http://www.enomaly.com/

9

19 CA http://www.ca.com/US/insights/topic.aspx?cid=8348

10

20 F5 http://www.f5.com/pdf/reports/cloud-computing-survey-results-2009.pdf

11

21 Appirio http://www.appirio.com/ecosystem/
  22 G.ho.st http://g.ho.st/
  23 Akamai http://www.akamai.com/cloud

12

24 Accenture http://www.accenture.com/Global/Services/Accenture_Technology_Labs/R_and_I/CloudComputing.htm

13

25 GoGrid http://www.gogrid.com/

16

26 Novell http://www.novell.com/cloud/

20

27 Citrix http://www.citrix.com/english/ps2/products/product.asp?contentID=1681633

21

28 Joyent http://www.joyent.com/
  29 Parallels http://www.parallels.com/spp/understandingclouds/

22

30 eyeos http://eyeos.org/
  31 Eucalyptus http://www.eucalyptus.com/

23

32 Appistry http://www.appistry.com/

24

33 Infosys http://wwwinfy.infyweb.akadns.net/cloud-computing/default.asp

25

34 Virtualmin http://www.virtualmin.com/
  35 Nimbus http://workspace.globus.org/

 

Congrats goes to Rackspace, as they topped the list.

These things surprised me:

  • Google? Where are you?
  • Amazon was not listed as the top result, and Rackspace was
  • Canonical/Ubuntu faired extremely well, given how new their enterprise cloud solution is
  • Cisco listed lower than expected at page 8, given how active they are in the blogging community

CloudFutures 2009 (Dec 7-8, San Jose)

In closing, this is a short plug for the CloudFutures conference coming up on Monday. I will be speaking on “The Real Cloud Players”. See you there!

Tuesday, May 19, 2009

Cloud Computing Taxonomy at Interop Las Vegas, May 2009

If you have read my blog in the past, you will know that my schtick in covering the Cloud Computing and SaaS space is taxonomies. I have created a number of them, and have been an invited speaker to talk about them. Here are a couple of examples from the past:

Peter at Enterprise Cloud Summit

Yesterday, I spoke on the topic of taxonomies at Enterprise Cloud Summit, a conference within a conference at Interop Las Vegas. I was impressed by the turnout despite the economy – Alistair Croll did a great job putting together a great speaker list which in turn drove a lot of traffic into the sessions. My session went early on the first day, so it was my job to setup the landscape of the Cloud Computing industry. The taxonomy was perfect for that task.
Cloud Summit

May 2009 Cloud Computing Taxonomy

In support of my speaking at Interop, I have updated my Cloud Computing taxonomy. I have restructured the buckets a bit since the last time, and of course I have added some new vendors that have come on the scene. I have also removed a couple of solutions that have since exited (or have appeared to exit) the market – Coghead, Skemma, and Mule OnDemand. Cassatt, while not done yet, is marked with an asterisk to indicate its current status.
A few additional notes about the construction of this map:
  • There is a size limit, so not every vendor in every bucket can be covered. I include what I think are the major players, and include others as space allows
  • Some vendors could fit in multiple buckets, but generally I place the vendor in their main area expertise only
  • There are several categoris – hardware, virtualization, system integrators – that I don’t include at all. I find that they are spaces that deserve entire maps on their own.
  • News rolls in every day – AT&T just announced a Cloud storage solution. Please add a comment if you see a vendor that is missing that you feel should be included.
  • Some of these “vendors” are not actually vendors – some are open source solutions.
And a final word before presenting the map – I always recommend a different source for those who want to see a more exhaustive list of vendors in this space. Jeff Kaplan of THINKStrategies has created a SaaS Showplace which is an exhaustive catalog of vendors.
Cloud Taxonomy April 2009_final
(Click on the image for a larger version)

Descriptions of the Buckets:

To provide some insight into what each bucket means, listed below are descriptions.

Infrastructure

  • Public Clouds – the poster children of Cloud Computing. These vendors offer computers as a service. If you need 50 computers in 15 minutes, these guys will take care of that. Differentiators include the provisioning model (virtualized instances vs. actual machines) and the host OS versions that are supported.
  • Private Clouds – these solutions help enterprises build private clouds within the firewall. If privacy and control is a big concern, or you want to increase utilization in an existing data center, a private cloud may be what you want.
  • Compute and Data Grids – while these solutions are also useful outside of a cloud, they can play an important role for applications that are deployed within a cloud. The key difference with Cloud applications from traditional on-premise applications is in how they must scale. With an on-premise application, you can scale vertically when the load gets too high – by buying a bigger machine. In the cloud, applications must scale horizontally – by adding more machines in a cluster. Compute and Data Grid products can help achieve horizontal scalability.
  • Virtualization and Appliances – when deploying OS stacks to public and private clouds, you will find it helpful to have a library of virtualized OS images. The vendors in these buckets will help in this area. Also, depending on the cloud being used, any number of Virtualization technologies will be used.

Platform

  • Business User Platforms – these platforms are cloud based application development environments. The focus of these platforms are on non-programmers as the application developers. To make this happen, these platforms offer rich visual tools to enable the developers to define data models and application logic. The differentiators for these platforms are their features – which is important to investigate during software selection as there is no coding allowed, so developers cannot code around feature outages.
  • Developer Platforms – these platforms are cloud based application development environments that support custom coding. Developers can build highly customized applications with these platforms, without having to worry about scalability, OS configuration, load balancing, operations, etc as they would with a public cloud offering. The differentiators for these platforms include the supported programming languages (Java, python, custom, etc), and data storage capabilities (RDMBS, key-value stores, etc).

Services

  • Storage – these vendors offer hosted storage that are API accessible. Meaning, any application can get/set objects into these Cloud storage solutions. The solutions vary in the supported data access models – key-value stores, file stores, etc.
  • Integration – solutions that provide integration facilities between multiple Cloud applications, or Cloud applications with on-premise applications. Major features offered are: messaging queues, business process modeling (BPM), and application adapters (like NetSuite adapter, SAP adapter).
  • Metering and Billing – building your own billing and invoicing system is highly discouraged. This is a great operation to outsource to a specialist. These vendors offer expertise in how to structure billing plans, plus all of the back office capabilities behind invoicing and collection. By outsourcing to one of these PCI compliant vendors, you will reduce the level of compliance your Cloud application will need to attain.
  • Security – The Cloud infrastructure and platform vendors must provide security, and so a base level can be assumed. But for value-add features, like application authorization features, encryption, and Single Sign On capabilities across multiple applications – look to these vendors.
  • Fabric Management – this is a space that evolves quickly, so you will need to keep up to date on new developments with these vendors. Generally, these vendors help you manage and deploy your application in the Cloud. This varies from features that allow you to design a virtual data center in a cloud, to auto-scaling an application when load increases, to monitoring Cloud servers to restart them if they fail.

Applications

  • SaaS – these vendors represent the ultimate end-game to all of this – Cloud based applications. There are thousands of them, and are traditionally known as Software as a Service (SaaS) applications. SaaS applications are available over the internet, are quick to provision a new account, are offered in a pay-as-you-go model, and allow some level of customization. NetSuite, Salesforce.com, Taleo, Concur, Workday and many others have established the space as a viable way to deliver software.

Vendor Links

Below are links to each of the vendors and solution depicted above.

Please Comment

I have found some of the vendors above via comments placed on earlier versions of the map. If you know of a solution that you feel should be included, please post a comment on the blog. I can’t promise I will add it (the map is size limited), but I would like to see other solutions. Thank you!

I’m Back, and OnDemand

September 15th, 2008. That was the date of my last blog post. What happened?

Where was Peter?

In short, I was off pursuing a different career path. When Oracle acquired BEA in May of 2008, I stopped work on the BEA SaaS platform. I returned to my roots in enterprise portals, and became architect of that product group at Oracle. I fought the good fight through the summer, but by September found I couldn’t maintain a presence in OnDemand. Instead, I focused on the myriad of topics related to Java application frameworks. My big authoring accomplishment of this period was my 152 page JSF whitepaper for WebLogic Portal. I would have blogged here about it, honest, but didn’t think you all would be interested. :)

Cloud Computing + Smart Grids, Peter’s New World

Last week, all of that changed. I left Oracle to join a startup that combines two of the hottest trends in technology – Cloud Computing and Smart Energy Grids. It is a bootstrapped startup (4+ years), is well funded and well connected,  and some guys I worked with for years are already over there. All in all, it was an obvious move for me to make.

My new title is Platform Architect of Tendril Networks. Tendril already has a Smart Grid SaaS platform up and running, and I will be helping expand the offering into a Smart Grid PaaS. Will explain more about that in later posts.

But what this means to you, my readers, is that I expect that my return to an engineering role with an OnDemand product will lead to more OnDemand blog posts. No promises (we all have seen the, “I haven’t blogged in a long time, getting back at it…” followed by many months of nothing), but that is my plan anyway.

What’s Next…

I am at the Enterprise Cloud Summit at Interop this week. I spoke yesterday, and will blog next about my presentation.

Monday, September 15, 2008

Comparing Cloud Computing Mindshare Levels Between the U.S., Europe, and Asia

Would you believe that the U.S. has 4 times more people interested in cloud computing than Europe? How about 5 times more people so interested than Asia? It is impossible to derive irrefutable evidence to validate those statements, but this blog entry offers one concrete data source that indicates those statements are true.

There have been various studies on cloud adoption and mindshare. For a young industry, it is an important metric to understand. Just this week, Chris Marino started a cloud adoption topic thread on the Cloud Google Group. He cited the Pew's report on American adoption of cloud applications.

This blog entry provides more data for that discussion. However, it focuses not on the adoption rate within the U.S., but the relative interest in cloud computing topics across continents. It uses traffic data from my blog as the input into the analysis.

Aggressive Extrapolation

Just to give you fair warning, I am about to draw sizable conclusions from a single source of data. This data source, traffic to my blog, cannot be proven to be a meaningful measurement. But I am writing this blog entry anyway because I think it is an interesting topic and the data might be meaningful. Also, I find there is an absence of information on this topic out on the net, so I hope this is a good starting point for other studies.

Here are a couple of assumptions I am making during this analysis:

  • Given that blog access is location independent, there is an equal opportunity across regions for any cloud computing enthusiast to read my cloud blog entries
  • Given equal opportunity, the readership of my cloud blog entries roughly matches interest level in each region for the topic of cloud computing in general

You could certainly argue that my blog does not generate enough traffic to be a significant measure. You could also argue that the level of blog readership in general isn't consistent across the regions.

You could also probably find about ten other reasons why this study is not conclusive. Once again, I hope this is a starting point for others to contribute meaningful data, and so this blog entry will be published despite the possible objections.

The Raw Data:  Blog Readership Numbers

I will first introduce the raw visitor numbers of a handful of blog entries, as captured by Google Analytics. Later sections will explain the data and what to look for in these numbers.

Blog Entry Cat
gory
Visits U.S. % Europe % Asia %
Cloud Taxonomy V2 Cloud 1631 67 17 13
Cloud Taxonomy V1 Cloud 1172 63 20 15
SaaS Taxonomy SaaS 207 54 18 26
SaaS for IBM, ORCL... SaaS 191 40 32 25
SaaS Contract Analysis SaaS 196 69 22 8
Control 1 Ctrl 131 51 27 16
Control 2 Ctrl 363 53 24 21

 

A few words on the data collection gathered from Google Analytics:

  • These numbers reflect visits between July 1, 2008 and September 14th 2008
  • Some of the entries were not available during the entire collection period.
  • They do not include RSS readers, as my feed exposes the entire entry
  • Some of the older entries started life on a different blog system before being migrated to this blogspot account in May. Some clicks may have gone to the older blog system for those entries and were not captured.
  • Visits are unique visitors, which each may account for one or more pageviews
  • The numbers don't add up to 100% due to hits coming from places outside the three regions

Primary Evidence: Cloud Computing Visual Map Entry

The primary piece of evidence, and the one from which I drew the main conclusions, is an entry made on September 8th 2008. It is titled "Cloud Taxonomy V2" in the table above. The blog entry contains the second version of  a vendor map I have drawn that visualizes the cloud computing industry. I pick this entry as the primary evidence for the following reasons:

  • It is very recent, and therefore very "clean" in terms of tracking actual human users reading the entry
  • It is an entry with general appeal - it covers the industry as a whole. It therefore should represent a broad measurement of interest.
  • It has enough visitors (1631) to make for a good sample size

The evidence reveals the following distribution:

image

It is from this data that the main conclusions are drawn:

  • U.S. interest in the topic of cloud computing is 4 times greater than in Europe
  • U.S. interest in the topic of cloud computing is 5 times greater than in Asia

Look also at the numbers associated with the blog entry listed as "Cloud Taxonomy V1". That was the first version, released in May of this year. It is comforting to see that the V1 numbers roughly match the V2 numbers.

What About the SaaS Numbers?

You will notice that the SaaS themed blog enties don't carry the same distribution as the cloud entries. This is odd, as SaaS is a subset of cloud computing (see the referenced taxonomy diagram if you want to see why).

Specifically, look at the first two SaaS blog entries, found here and here. See how the U.S. has a lower share of the readership than with the cloud taxonomy entries:

image

One fabricated explanation - its about early adopters?

  • The U.S. contains a higher percentage of early adopters (hypothesis)
  • The overall cloud computing industry is still quite young , and dominated by early adopters. Therefore, the U.S. has a greater share of the readership of the general cloud taxonomy entries.
  • SaaS is further along in adoption than the overall cloud computing industry. Therefore, you will see more balance in the interest levels.

Now look at the third SaaS entry - the one titled SaaS Contract Analysis. This one actually shows a higher distribution for the U.S. relative to the cloud taxonomy entries. Why?

image

Once again, a totally fabricated explanation - does this show Adoption as opposed to Mindshare?

  • The SaaS Contract blog entry contains an analysis of SaaS contract terms, and suggested terms to avoid as a customer.
  • This is not an entry for future thinkers or those just kicking the tires. This entry is primarily useful for those actually implementing SaaS and who need to review contracts with vendors. Perhaps this may show actual adoption, while the data for other entries show mindshare/interest?

Seeking a Control: My Non-Cloud/SaaS Blog Entries

While in recent times I have focused my external writing on Cloud Computing and SaaS topics, I also have written on topics such as mashups and Java security. To help shed more light on the numbers revealed above, I offer two of those blog entries as a control for this analysis. These may indicate what bias already exists in my blog readership.

Or they may not - most of my readers find my blog via search engines, not because they are regular subscribers. Therefore I would argue that these other blog entries don't offer much insight. But they are included anyway for your review.

Other Data Points on Cloud Mindshare and Adoption

There are other publicly available surveys on various adoption rates and mindshare. I would contend that none of these provide data for the specific discussion above, but they are interesting all the same:

Call for Collaboration

This analysis would be helped immensely by having access to more data sources. Cloud bloggers - what are you seeing? Cloud vendors, what can you say about your customers? Please reveal!

Also, the raw spreadsheet data from Google Analytics for my cloud v2 entry is here. If you would like a different export of the data, let me know.

Monday, September 8, 2008

Visual Map of the Cloud Computing/SaaS/PaaS Markets: September 2008 Update


NOTE, New Version Available:

This version of the map is now outdated. I have released a new version of this map for Enterprise Cloud Summit at Interop Las Vegas. Follow this link for the latest version.

Interop NYC 2008

Four months ago, Kent Dickson and I created a visual map of the Cloud, SaaS and PaaS industry. It proved to be a popular item - we got a lot of comments and continue to see traffic to my blog page. I was long overdue to create a second version - comments needed to be integrated, and the industry has changed enough to warrant a round of updates. This blog entry contains an updated version of the map.
The timing is no accident. I will be speaking at the Interop NYC 2008 conference on September 15-19. I will be presenting on the topic of Cloud Taxonomy. My slide deck was submitted last month, but I want to have a fresh version of this taxonomy to present. Thus, the tyranny of the deadline has forced my hand.

Defining the Markets

In the first version of the map, the players were divided into four major buckets (from the bottom up):
  • Cloud Computing
  • Platform as a Service (PaaS)
  • Software as a Service (SaaS)
  • Core Cloud Services
In the intervening months, a number of others have attempted to dissect the industry into a taxonomy. Robert Anderson came closest to our original breakdown by identifying three major buckets in his blog:image
I like the labels on the bottom two buckets, especially getting away from the PaaS label in favor of Platform. However, I don't agree on the top, as Software is too generic of a word. I prefer Applications for that bucket. Also, I believe a fourth bucket is necessary, to include a number of standalone components that are built on the platforms but are not applications. We called these Core Cloud Services in the first version, and I have labeled the bucket just Services this time around.
The updated stack that I will use in the taxonomy is as follows (starting at the bottom):
  • Infrastructure:  the core computing resources and network fabric for the cloud deployment
  • Platform: the software infrastructure that allows sys admins and developers to deploy an app to the cloud
  • Services: additional services that can be woven into the cloud app, such as billing, storage, integration
  • Applications: the ultimate cloud product - the actual cloud based application that the user touches. These number in the thousands.
You will note that the map is annotated with these buckets, with "1" denoting Infrastructure, and so on.

The Visual Industry Map

Below is the visual map as promised. You will find a larger version hosted here. An explanation of each category and a full clickable URL list of the solutions is offered below the map.
Please post comments with your feedback - they are very much appreciated. As before, there is no hope for this map to be comprehensive. I have selected a good group of vendors, but of course there are others that could have been placed on the map. My research notes are here, and they may explain why a particular vendor was left off.
What worked well before was for commenters to log the omissions, which I can evaluate and remedy in a later version. Also, Jeff Kaplan at THINKStrategies has created a SaaS Showplace database that is far more comprehensive.
Now, to the point, the map as promised:

Laird_CloudMap_Sept2008

Reference Vendor List

The following is the clickable list of each vendor displayed above.

Technorati Tags: ,,,

Tuesday, August 26, 2008

Building a RESTful Enterprise Integration with Oracle and SnapLogic

In the enterprise space, integration problems abound.  IT must connect numerous legacy systems in new applications to adjust to the changing needs of the business. Technologies to achieve such integrations include SOAP based Web Services (WS-*) and binary protocols such as CORBA and RMI. This blog entry discusses a different approach - integration using lightweight REST APIs.

To illustrate the concept, a demo has been created showing how to combine data from Oracle's WebLogic Portal product with data from Oracle Database. This demo is accomplished using RESTful APIs as the data transport mechanism, and is orchestrated by a third party data integration product called SnapLogic. This demo was showcased at a REST Symposium I organized for Oracle employees in July, which featured speakers from Oracle, SnapLogic and Yahoo! (see below for details).

 

What is REST?

REST is an acronym for REpresentational State Transfer, and was coined by Roy Fielding in his PhD thesis published in 2000. It is not a technology, a standard, or a product. REST is an architectural pattern that describes the underlying architecture of the World Wide Web and how it came to be such a massively scalable computer application. The WWW is known to have the following qualities:

  • Highly scalable - millions of websites
  • Fault tolerant - at any given time, many websites are offline, but the web continues to work
  • Performance- HTTP allows for intermediaries to help improve performance via caching
  • Interoperable - nearly every computing platform has a browser, and websites are written in a myriad of languages
  • Distributed - websites and clients span the globe
  • Self describing - there is no user manual required for users to navigate the WWW

Aren't the above qualities desired for any enterprise systems as well? The power of REST lies in the idea that the same fundamentals that work so well for the WWW can also work with great success within the enterprise. 

There are plenty of resources on the web that explain the principles of REST, and so I have no intention of duplicating that material. In essence REST describes an architecture in which:

  • Application resources (objects, in the OO world) are exposed as URIs
  • HTTP requests are used to retrieve and update data on the server
  • The HTTP requests utilize the standard HTTP verbs (GET, POST, PUT, DELETE) to define the API operations, helping client developers by providing a consistent interaction model

An example is the following:

  • A client issues a request to the following URI:  http://wlp.bea.com/dvt/api/content/autos.jsp
  • The server response contains a list of automobiles, described in a format such as XML
  • The client consumes the XML document and outputs the entries that match the user's criteria

This pattern is seen most often with Rich Internet Applications (RIA), where the client is a browser and the API is being invoked via Ajax (more precisely, the JavaScript XmlHttpRequest facility). While this is a very powerful use of RESTful APIs and is alone enough to justify the creation of RESTful APIs, this use case is not the focus of this blog entry. I would encourage you to research Ajax application development for more background.

Instead, we will look more closely at how RESTful APIs can also make data integration easy.

 

RESTful Integration in Concept

RESTful APIs expose data in a way that is easily consumed. Invoking the API is as easy as issuing an HTTP request, which is possible to do from almost any programming language/platform. While enterprise data integration can be implemented using a wide variety of technologies, the purpose of this blog entry is to show how it can be done with RESTful APIs.

As stated in the preamble, there are non-RESTful approaches to solving this problem. A SOAP based solution could be implemented and for some cases is the preferred approach. If your use case requires the support of the WS-* family of standards, then WS-* is the way to go. What this example shows is that REST offers an alternative and is appealing in its simplicity.

Instead of discussing the theory, it is more useful to look at a working example.

Example: Oracle WebLogic Portal + Oracle Database + SnapLogic + REST

Consider the following example:

  • An insurance company is using the Content Management capabilities of Oracle WebLogic Portal to store auto claims. Each claim contains a photo of the damaged vehicle, and some data about that vehicle such as make, model, year and a description of the damage.
  • The insurance company also has a Oracle Database that is populated with industry data regarding the fair market value of the cars, and the salvage value. These values are specific to the make, model and year.
  • The insurance company wishes to put the repair of the damaged vehicles out to bid to a community of auto repair shops. The intent is to allow shops to bid on the vehicles they are willing to repair using the industry data and the information from the claim.

The insurance company decides to use a quick and lightweight approach to build a data mashup with a web UI. The implementation is achieved using RESTful APIs, and orchestrated using a product called SnapLogic. SnapLogic is an open source server that provides:

  • Many pre-built connectors to expose native data sources as RESTful APIs (e.g. database, spreadsheet, XML)
  • Sophisticated data manipulation capabilities, such as joins, filtering, sorting, and computations
  • A variety of output formats for the completed RESTful feed

The data integration demo was implemented as follows:

  • A RESTful API is configured for the WebLogic Portal (WLP) Content Management system. In this example, the RESTful API was custom built as a JSP, but this capability will come pre-built in a future version of WLP.
  • The Oracle Database schema is exposed as a RESTful data API using an out of the box Database Reader component of the SnapLogic server.
  • The two data sources are joined using a SnapLogic pipeline. The pipeline reads the claims from WLP CM and the industry data from the database using the RESTful APIs.
  • The joined data is converted into an ATOM syndication feed via the SnapLogic server (using an Xml Writer component)
  • The ATOM feed is displayed in a ATOM reader, in this case the Google Mashup Editor UI

All of this is achieved via configuration, not code. The architecture is depicted in this diagram:

image

The resulting web application appears like this:

image

For more detailed information on the implementation of this mashup, consult the companion entry on SnapLogic's blog:

Oracle and REST

This is a simple demonstration that shows the ease of implementing integrations using RESTful techniques, especially when combined with a REST integration enabler such as SnapLogic. It is a stated goal of some of the Oracle product groups to provide RESTful APIs for access to product data. Check with the roadmap for each product to understand when these APIs will be available.

Attendees to Oracle Open World 2008 will have several sessions related to Oracle product groups and REST:

Oracle Internal REST Symposium

For Oracle employees, more information is available on the company intranet. I organized an internal symposium on REST amongst the product groups on July 28th, 2008. The event included speakers from Yahoo! and SnapLogic.

eventLogo

The agenda covered a number of RESTful topics, including:

  • Explaining REST (Subbu Allamaraju of Yahoo!)
  • Industry product landscape - SnapLogic (Mike Pittaro, CTO SnapLogic), and other products
  • Enabling technologies - RESTlet, JSR 311, WADL, JSON marshalling
  • Oracle Product efforts - presentations by various products groups on their REST efforts

Access to the recordings and slide decks can be found on the intranet here.

Resources

You may find the following links helpful:

Tuesday, June 17, 2008

Best Practices for the Suspension or Termination of a SaaS Customer Account

No one wants to predict the failure of the relationship between a SaaS provider and customer. But much like a pre-nuptial agreement helps to quickly and fairly resolve the end of a marriage, a good up front contract helps ensure that both parties are fairly treated when a SaaS contract terminates. For this to work, the contract must have a well defined and fair set of terms for unwinding the relationship that works for both parties and minimizes business disruption. This blog entry proposes a set of rights for both customer and provider to use when establishing the contract terms.

This blog entry is a result of my analysis of a number of SaaS contracts. I covered the analysis in my previous blog entry. Note that I am not a lawyer, just an amateur contract sleuth so please engage a professional when working on your contracts.

SaaS Customer Bill of Rights

Other authors have created full blown Bill of Rights for SaaS customers. For example:

This blog entry is more focused. I am proposing rights that apply to both customer and provider when an account is on its way to being terminated.

Termination Rights for the Customer

I propose the following rights for customers whose account is being terminated:

  • Right to Business Continuity - customers rely on their SaaS products to conduct their business. Therefore, the provider must not have the ability to just terminate the customer's account without warning. A process must be in place to give ample warning before an account is terminated.
  • Right of Data Ownership - the customer must be able to extract their data upon termination, regardless of cause. The format of the extracted data should be as lossless as possible.
  • Right to Walk Away - the customer has the right to discontinue use of the service at the end of their contract. By exercising this right, they don't relinquish their other rights.

Termination Rights for the SaaS Provider

I propose the following rights for the provider that is terminating the account:

  • Right to be Paid - if you read about the SaaS business model, you will discover that cash flow is a major issue for the provider. Providers must carefully manage incoming cash and outgoing expenses. Anything that disrupts the predictability of the business will create major problems. Therefore, the SaaS provider has the right to expect timely payment, perhaps months in advance. If the customer fails to honor this right, the provider can quickly move the account into a suspended state.
  • Right to Protect the Service - if a customer account engages in malicious behavior or violates terms in the contract, the provider has the right to protect their service. In cases where the account is causing ongoing harm to the service (Denial of Service attacks), the provider must be able to immediately suspend the account. For less urgent issues, the provider should provide an appropriate warning before suspending the account.
  • Right to Fire a Customer -  businesses need to adapt to changing markets, and sometimes this means adapting or discontinuing products that aren't successful. For customers that no longer fit the profile of the business, the providers need to be able to discontinue their relationship with these customers. However, this process must honor the customer's right to business continuity.

 

Further Discussion

Hopefully each of these rights are obvious in their benefit. A couple demand more discussion.

Data Deletion - Where is the Mechanic's Lien?

Most Terms of Service assert that the customer owns their data. I am no lawyer, but ownership appears to be full legal ownership, like you would own a car or a house. See Netsuite's ToS as an example, but a clause like this is seen in almost every contract:

"Customer Data shall at all times be considered the property of the Customer."

However, some ToS documents allow the provider to destroy that data without providing the customer a copy in cases where the account is terminated for breach of the terms or failure to pay. This does not appear to be fair to the customer (as the SaaS provider is the prosecutor, judge and jury in this decision), and is inconsistent with physical property law in the U.S. (intl folks bear with me, I am focused solely on U.S. law here).

For example, if you don't pay a carpenter that performed work on your house, that carpenter does not have the right to burn your house to the ground. Instead, there is a process called the Mechanics Lien that requires the tradesman to pursue the money through a legal process, and he cannot harm the property in question. You could argue that data does not carry the same legal rights as physical property, but at least in some jurisdictions the law appears to treat data the same:

It seems that if a provider destroys their customer's data they open themselves to some legal liability. On the other hand, perhaps expressly reserving the right to destroy the data in the ToS alleviates the liability for the provider?  Is it worth the risk of finding out?

Regardless, destroying a customer's property is not a good business practice. Providers should treat the data like any of the customer's physical property. It should be returned undamaged because it legally belongs to the customer.

Business Continuity

Some Terms of Service allow for immediate termination of a customer's account with or without cause. In others, short periods of time like 30 days is all the notice necessary before the customer can be turned out. For mission critical applications, this is troublesome.

I feel there are a couple of key principles here to consider.

  • For no-cause terminations, the provider must provide as much advanced notice as it will take a typical customer to migrate to a new service. For services with high switching costs, this will be a period of many months.
  • For cases where the customer is in violation of the contract, the account should move into a suspended state before termination. This allows the customer to remedy the violation before the account is terminated. Suspensions are reversible, terminations are not.

These two principles are not widely implemented, but are critical in order to provide the customer with fair treatment.

 

Negotiate your Customer Contract

These listed rights are all well and good, but they won't likely appear in your contract by default. The contracts I have seen are largely skewed in the providers' favor because they were written by the providers. As a customer, I feel it is worth your time working towards more favorable terms. As shown in this blog entry, don't forget to negotiate the exit terms in the contract to ensure a viable migration when the time comes to end the project.

 

Technorati Tags: ,,,