July 09, 2007
Service-oriented architecture, or SOA, is a well-known acronym in the
software industry. SOA has made quite a long journey from being a
buzzword to being put into practice to solve enterprise business
problems. Yet, arriving at a common definition of SOA is not easy. This
article too does not aim to define SOA, but explains the concept of
SOA. Understanding the concept is good enough to get a quick start on
SOA and its applicability.
Architecture Roadmap
The architecture roadmap started with monolithic architecture, followed
by two-tier architecture and then came N-tier architectures. SOA is the
next step in the architectural evolution.
SOA
is an evolution in architecture, not a revolution. SOA is not a
completely new discovery; it’s an improvement over the past
architectures. It captures and uses the best practices of the
architectures that came before it.
Like N-tier architecture, SOA is an architecture style, not a product or a project.
Applicability of SOA
Typically,
the IT department of every enterprise has applications that can be
broadly classified into "enterprise backbone" and "enterprise
front-ends."
Enterprise backbone comprises of all the backend
systems. This includes the applications developed on J2EE, Microsoft
.NET, CICS mainframes and various other technologies that contain the
business logic of the enterprise. It also includes the stored
procedures, data in the databases and data stored in various other
formats in the enterprise. The backbone can be considered as the
combination of all the business tiers and data tiers of the enterprise.
The
enterprise front-end layer is the combination of all the presentation
tiers of the enterprise. This layer includes all possible business
channels of the enterprise. Business channels with front-ends include
those that are Web-based and desktop-based, and business channels
without front-ends include Web services and EJBs exposed to partners
and clients.
Let’s consider an example of a bank to better
understand the enterprise backbone and front-end business channels.
Let’s assume the bank consists of two applications: one is a banking
application developed using Microsoft .NET used by all the employees of
the bank, and the other is a J2EE-based application that deals with
end-of-day batch clearance of checks to other banks.
The
.NET-based banking application is used both in the cash counter and
also in ATM. As suggested by the N-tier architecture, this system will
have a single business tier that caters to both the front-ends.
The J2EE-based application has a Web-interface for the treasury of the
bank to validate the checks and clear them. A Web service- or EJB-based
interface also is provided for use with external banks to handle
automated clearance of checks across banks.
In
this scenario, the enterprise backbone of the bank consists of the J2EE
backend and the .NET backend. The front-end business channels consist
of the ATM interface and cash counter interface of the .NET
application; the Web-based interface and the EJB interface of the J2EE
applications. These are the channels through which the business is
carried out by the bank.
With this understanding of the enterprise backbone and enterprise front-ends, let’s look at where SOA is applicable.
SOA
is applicable in the enterprise backbone. SOA describes a better way of
organizing the enterprise backbone. It’s an architecture for the
enterprise backbone.
Service Orientation
As
mentioned, SOA describes a better way of organizing the enterprise
backbone. The architecture mainly provides high flexibility (faster
response to change) and re-use of the existing IT assets. These two
characteristics make SOA attractive to enterprises.

SOA requires the backbone to be broken up into a set of services. Each
service performs a specific business task. Once the set of services are
available, they can be strung together to form a business process.
Let’s
consider a "transfer amount" business process. This process consists of
business tasks like checking the account balance for transfer, debiting
the source account, credit destination account and, finally, logging
the whole transaction. If each of these business tasks can be exposed
as services, then the whole process can be built by connecting them in
a desired order.
Let’s consider a business process for
withdrawal of money from the account. The tasks of checking the account
balance and debiting the source account can be reused.
Essentially,
SOA separates the process logic from the business logic. The business
logic is made available as services. The process logic is constructed
by linking these services. The procedure of linking the services to
form a business process is also referred to as "orchestration."
Languages like Business Process Execution Language (BPEL) are used to
build the process logic. The orchestration engines provide support for
execution of BPEL, thus facilitating execution of business processes.
Services
We
can use BPEL to build the process logic, but how do I build a service?
A service is a specific business task. The first step in building a
service is to identify the services in the system. This is best done
with the help of a business analyst. Business analysts can easily
identify the reusable business tasks and also provide the granularity
of the task. Such a task can be exposed as a service. In the bank
example, an analyst can help in determining whether the task checking
account balance has to be a service or the whole transfer amount must
be a service. In the latter case, the transfer amount service can be
part of a larger business process.
Once the service is
identified, the next step is to implement it. Services must be loosely
coupled and autonomous. In developer terminology, a service can be
compared to a static method of Java that takes as input (as parameters)
all the data required for processing and returns the processed output.
SOA mandates that a service can be invoked from any type of client
independent of its implementation language or platform.
Web-services/SOAP technology is one of the good ways of exposing a
business service.
SOA Benefits
SOA
strive for maximum re-use. The existing business logic can be exposed
as services by writing wrappers around them, thus making the business
logic available for various systems in the heterogeneous environment.
If we consider the bank example again, the Microsoft .NET front-end
application can use the J2EE backend, exposed as service, to provide
support for external check clearance facility for the employees of the
bank.
The separation of process logic from business logic makes
the system more flexible. Most of the business changes are related to
process logic rather than business logic. More often than not, new
processes are introduced or existing processes modified, keeping the
core business the same; so implementing the change would warrant just
modification/creation of the BPEL script, providing faster response to
change.
If any of the business tasks are missing, only the
service containing that business logic has to be developed and tested.
Hence, this architecture supports incremental development from the very
foundation, reducing the overall risk and cost of change, as well as
development itself.
May 16, 2013 |
When it comes to cloud, long distances mean unacceptably high latencies. Researchers from the University of Bonn in Germany examined those latency issues of doing CFD modeling in the cloud by utilizing a common CFD and its utilization in HPC instance types including both CPU and GPU cores of Amazon EC2.
Read more...
May 10, 2013 |
Australian visual effects company, Animal Logic, is considering a move to the public cloud.
Read more...
May 10, 2013 |
Program provides cash awards up to $10,000 for the best open-source end-user applications deployed on 100G network.
Read more...
May 08, 2013 |
For engineers looking to leverage high-performance computing, the accessibility of a cloud-based approach is a powerful draw, but there are costs that may not be readily apparent.
Read more...
05/10/2013 | Cleversafe, Cray, DDN, NetApp, & Panasas | From Wall Street to Hollywood, drug discovery to homeland security, companies and organizations of all sizes and stripes are coming face to face with the challenges – and opportunities – afforded by Big Data. Before anyone can utilize these extraordinary data repositories, however, they must first harness and manage their data stores, and do so utilizing technologies that underscore affordability, security, and scalability.
04/02/2012 | AMD | Developers today are just beginning to explore the potential of heterogeneous computing, but the potential for this new paradigm is huge. This brief article reviews how the technology might impact a range of application development areas, including client experiences and cloud-based data management. As platforms like OpenCL continue to evolve, the benefits of heterogeneous computing will become even more accessible. Use this quick article to jump-start your own thinking on heterogeneous computing.