Service Oriented Architecture is on every enterprise executive's to-do list
nowadays. It lets enterprises weave together disparate business applications
such as SCM, ERP or CRM to ensure each application's independent functionality
while enabling them to collaborate with each other within a large-scale business
process at the same time. Enterprises need interoperability and resource sharing
across multiple channels and application platforms to achieve modularization of
business functions for greater flexibility and reusability of business
processes. This allows them to expand their business and offer new services to
customers faster than traditional methods. SOA is touted as a viable way to
overcome complexities involved in creating such a business eco-system of
collaborative business applications.
The story so far: |
|
An enterprise has various business applications deployed, be it CRM for
handling customers effectively or SCM for ensuring smooth flow of supplies, etc.
But all these applications have their independent platforms and are not designed
to integrate with each other. To get business processes of different
applications to collaborate with each other, enterprises will have to do
over-hauling of their applications, which would make updating the core
application code a tedious and expensive exercise. For example, take an
automobile manufacturing firm, which wants its dealers to remain informed about
the status of the delivery of cars and also about those that are in stock, their
expected deliveries along with data about their specifications. This would
require the firm to extend a small functionality from its SCM business process
to the dealers, which would be done though the authentication of that dealer and
this data would reside in a separate database application. To make this process
happen would require complex code restructuring and time. This is where SOA
comes into the picture, as it leverages a framework upon which common business
processes or functions can be used interchangeably by different departments of
the enterprise internally and by external business partners. SOA helps an
enterprise to interlace their existing information technologies together or to
adapt them to work with new business applications and in process avoid the cost
of replacing or rewriting the core application's code. As enterprises become
more dependent on electronic processes, they have to adopt new technologies. But
they can't dispose legacy applications on which their whole business
information/data exists. SOA thus becomes an important technology as it solves
the problem of interoperability amongst applications on different platforms and
also provides a way for data aggregation and collaboration amongst them.
Technologies that enable SOA
SOA, as the name says is not a programming language but an architectural
style where small units of business logic of applications are organized as
services, to be combined together and reused to communicate with each other and
pass data amongst them. These SOA application services are independent of the
underlying applications and thus can be used to integrate various heterogeneous
legacy systems and applications. The services communicate with each other for
information retrieval via a programming interface. The most popular interface is
the use of XML over HTTP, known as 'Web Services.' However, SOAs are also
implemented via .NET and J2EE/RMI, as well as CORBA and DCOM, the latter two
being the earliest SOA interfaces, then known as 'Distributed Object Systems.'
CORBA and DCOM were not able to successfully integrate among applications across
different platforms as they were not centered on any business processes. But the
use of XML as the language to interpret data amongst applications, and SOAP as
an envelope to package and deliver services has become a standard for SOA based
applications. The API for such services to create business logic can either be
on .NET or Java and would interact with enterprise business applications for
data collaboration.
Evolving trends
As SOA is one of the key implementations going around in enterprises to cater to
the need of integrating systems and to adapt to constantly changing business
environments, there is a new breed of EAI (Enterprise Application Integration)
vendors coming up. These are the SOA platform vendors, who provide development
and integration of the business processes for SOA model based applications. The
major market drivers in this field are IBM, Oracle, BEA and SUN. Incidentally
BEA was the first to offer a unified SOA based platform to integrate business
processes, applications, and legacy environments for an enterprise. Since the
process of SOA deployment in enterprises is customized and not specific in
nature, these vendors need to categorize the market accordingly to prosper and
sustain in the competitive arena.
For enterprises, SOA implementation is not a onetime work but a repetitive
process. However, once initiated, SOA carves a path leading to optimization of
all business processes for the enterprise. And because of this, many SOA vendors
have modeled their own frameworks to follow for total SOA optimized services for
an enterprise. This model, mostly termed as Maturity Model, starts with
integration of business processes and gradually leading to optimization of those
processes. IBM has its own seven-layer model called as Service Integration
Maturity Model. Similarly, Sonic Software has a five-step model termed as SOA
Maturity Model. The SOA vendors along with enterprise IT managers identify and
define business processes of the enterprise needed for SOA implementation. They
benchmark them for their strategic and business benefits across different stages
of SOA adoption that leads to optimization of SOA services.
The adoption of SOA provides significant potential to enterprises to improve
the value they derive from their IT investments, in terms of increased
flexibility, improved use of assets, alignment with business objectives, agility
to develop new applications from existing systems, and reduced integration
costs. The key to successful SOA deployment shall always be how the platform
vendor has mapped and understood business processes of the enterprise correctly.
Hot SOA areas
With SOA addressing many issues of IT departments, it needs to overcome many
others to cater to the growing demands of dynamically changing business
environments. Some issues like security concerns around Web Services compliance,
management of services etc remain to be implemented. SOA governance is one
framework which is an extension of IT governance focusing on lifecycle
management of business services of an enterprise's SOA-based application.
Service lifecycle management will focus on how services are to be developed,
deployed and managed. SOA governance supplies the decision rights, processes and
policies for such deployment and development of services. Since SOA facilitates
cross application usage of services, it becomes mandatory to ensure that
relationships between services and parties are managed and that there is
compliance with the standards and procedures under which an organization
operates. And SOA governance is the mechanism to ensure that such a decision
making and policy following structure is in place.
Future Predictions |
|
Another area where SOA seems to create interest is its integration with Web
2.0. Enterprises are now implementing SOA and using Web 2.0 to reach out to new
customers and providing them more effective usage of business applications. In
Web 2.0 'mashups' is a way of extending capabilities from existing Web-based
applications in a new way to create a new value for the customer. SOA-based
services are the building blocks on which Web 2.0 Mashups are created. Thus by
combining Web 2.0 with SOA would result in creation of applications that can be
quickly developed and implemented, and that too at a lower cost with reusability
of services. SOA represents the next step for an enterprise to increase its
competitiveness while preserving its information assets on legacy applications
to interoperate with newer technologies. By having flexibility and agility to
develop applications based on SOA services they can extend the capabilities of
their SOA deployments to newer customers and transform themselves as on-demand
businesses and hence garner the returns on their investments.