Building and Leveraging Web APIs
A number of
useful services including Google, Amazon, EDGAR Online and Salesforce.com are
now accessible on the internet through web APIs. The popularity of Service
Oriented Architectures has led to similar techniques being used within
enterprises to expose services on the intranet. As opposed to conceiving a SOA
from the ground up, owners of data or application Silos can expose their
offering as a service to the rest of the enterprise, allowing integrated
applications to grow organically. Knowledge of a service that is available
within the enterprise can trigger the creative thought needed to conceive of
new ways to exploit those services to achieve greater productivity or new
revenue streams.
We run into
a number of examples of these in our interactions with our customers. Banks
typically have a number of these services available enterprise wide – currency exchange
rate information, credit ratings, financials, etc – which allow multiple
applications to leverage this master data sources. We have seen configuration
management systems used this way in IT firms, the data from which becomes
fodder for risk analysis engines that determine patches that need to be applied
to any system. The examples are many, but the underlying theme is the same.
Applications and data are like Lego blocks. You can put together these blocks in
a number of ways to solve increasing complex problems with great revenue
potential. The only requirement is that these blocks have any interface to the
outside world that lets them plug together.
This is
nothing new. It has been done dozens of different ways in the past with Corba,
DCOM etc. What might be new today is the
fact that the current approach leverages a platform that is ubiquitous,
language/development platform neutral and proven to be scalable. Utilizing basic
building blocks like HTTP and XML(or JSON if you are one of those critical of
XML for its overhead) you can quickly expose a service to the world. At Ipedo,
we have come to embrace this approach to application development. Building
views, either from scratch or by wrapping existing services, bringing together
views to provide some new integrated functionality, and exposing this
functionality again as view, is at the heart of the development methodology.
The trick then is to make this system perform well, optimizing the
functionality through methods such as pushing-down operations, caching and a
host of other rule and cost based optimizations.
A standard
portion of the Ipedo demos to customers includes examples of how these things I
just described can be done. A bunch of examples involving public services like
Google, Amazon, Salesforce are available, along with examples of how to build
your own services. Check them out.
Comments