Sunday, March 17, 2013

SaaS Design Principle - Open Interfaces


So, you've transformed your enterprise application to SaaS and made it easy to use, do clever things with the data and has been “socialized”. What more could a prospective consumer want?

Well, if your consumer is itself an enterprise, it will start wanting to integrate your SaaS with it’s internal systems and also with the other SaaS systems that it’s using. Secondly others may have ideas of their own as to how to use your SaaS. To do this, you need to provide interfaces to your SaaS application that can be accessed over the web.

This bring us to our next principle of designing SaaS:

SaaS applications should provide functional programmatic interfaces over the Internet that can be accessed by consumers.

First a word about terminology. In the web world, the term “API” is used to mean programmatic interfaces that can be accessed over the Internet. In talking about APIs in the corporate world, I often hit misunderstanding, as many think of an API as a low level programming interface to, for instance, class libraries.

Exposing programmatic interfaces to your enterprise SaaS over the web brings advantages for you as a SaaS provider as well. They increase the attractiveness and versatility of the SaaS offering new opportunities to generate revenue and increase customer loyalty. Rememberer, this is the main difference to the enterprise IT view of the world - tuning your application into a SaaS means that you have to compete in the marketplace with others.

However, you have to take into account that for most corporate IT folk, their world is a cozy one, tucked safely behind the corporate firewall. Opening up applications to the outside world is a scary undertaking. Some have already tried opening up their applications with internal SOA initiatives. Although still behind the corporate firewall, they have had to face the challenges of setting up security policies, providing common identity management, handling service versioning, setting up service repositories etc.. SaaS interfaces, though, have to live in a much tougher environment with a larger number of users who are not under your control, who you have to motivate to use your interface and some of whom can be simply malicious.

This has given rise over to the last years to a set of products with the generic title of API management.



These usually provide two main features:

  • A gateway to the application that provides a set of services such as heavyweight security, usage monitoring (needed to bill for the service) and control (who can use it) , conversion to and from commonly used web formats such as JSON etc.. 
  • A means for developers to find and understand the APIs and register their usage of the API, usually called a developer portal.

No comments: