Just the other day, SOA Software announced it was beefing up its "Atmosphere" product family to support both intra- and inter-enterprise applications. SOA Software is one of many vendors recognizing that application programming interfaces (APIs) are now a must-have for many enterprises seeking to build and extend their sharable services. And we're not just talking about the likes of Google, Twitter and Amazon employing open APIs to build up their user bases and developer ecosystems -- non-IT enterprises are opening up APIs as well. Is this the new face of service oriented architecture?
As the SOA Software announcement describes it, APIs are an extension of SOA principles to both private and public cloud capabilities:
"Open APIs allow external developers to build applications that leverage core business capabilities. Enterprise APIs are offered to a more limited group to enable more sensitive B2B or B2E (employee) applications. Both enterprise and open APIs are typically built on a foundation of enterprise SOA services, taking these services and productizing them with documentation, support, access provisioning, quality-of-service (QoS) management and other API-centric capabilities. Enterprise APIs introduce additional requirements to ensure the security and privacy of the API and the capabilities and data they expose."
APIs make application development simpler and faster, as developers can call upon already existing resources, rather than re-inventing the wheel each time a service or application is built. However, the path between SOA and the open API world isn't a seamless one, as a report in ComputerWorld explains. Often, the two concepts are at odds with one another. For example, while SOA practices and approaches are fairly mature, cloud APIs lack common standards. In addition, unlike most enterprise-focused SOA projects, cloud APIs tend to be externally focused:
"Cloud APIs have a different function to SOA - which focuses on the enterprise’s software infrastructure (and has traditionally been delivered through monolithic, one-off application development). The difference is that the cloud API’s speciality is to make cloud resources available to the end user via a web-based interface, offering application developers far more flexibility than the SOA approach, and enterprises themselves more flexibility in how they interact with their IT service providers, whether it’s Salesforce, Google or a private cloud provider."
In the article, TIBCO's Ivan Casanova agrees that APIs and SOA differ in overall purpose, but also have similarities as well:
"For enterprises and service providers alike, the technical benefits of cloud APIs are similar to SOA because they offer abstraction and granularity. This means that you can hide a lot of complexity behind the API - lots of computers to crunch numbers, lots of different software services to solve complex problems - using cloud APIs provides the same kind of abstraction that you find in SOA.”