Service Oriented Architecture For Enterp

Download as pdf or txt
Download as pdf or txt
You are on page 1of 7

Proceedings of the 5th WSEAS Int. Conf.

on Software Engineering, Parallel and Distributed Systems, Madrid, Spain, February 15-17, 2006 (pp48-54)

Service Oriented Architecture for Enterprise Applications


SHANKAR KAMBHAMPATY and SATISH CHANDRA
Technology Architecture Group
Satyam Computer Services Limited
C5, TSR Towers, Raj Bhavan Road
Somajiguda, Hyderabad – 500 082
INDIA
{Shankar_Kambhampaty, Satish_Chandra} @satyam.com http://www.satyam.com

Abstract: - While large organizations develop applications with new technologies, it is often
necessary to leverage the investments made in legacy applications and reuse business functionality
provided by them. Hence, such organizations need scalable distributed applications that are
integrated based on an enterprise-wide strategy. Service Oriented Architecture (SOA) is an answer
to address these requirements. With the advent of web services, SOA based enterprise applications
have become vendor independent to a large extent. The paper provides insights gathered through
providing SOA based solutions in consulting engagements. It discusses the Strawman Architecture
for Enterprise-Wide Service Oriented Architecture. Reference Architectures for SOA based
Enterprise Applications on J2EE and .NET platforms, using Design Patterns, are detailed. It
presents the SOA methodology recommended to customers. The solutions discussed in the paper
are reusable across domains and the implementing organizations would benefit in terms of
considerable time and cost savings.

Key-Words: - Service Oriented Architecture, Enterprise Application, Legacy Systems Integration,


Enterprise Service Bus, Strawman Architecture, SOA Based Enterprise Applications, Design
Patterns, Reference Architecture, SOA Best Practices.

1 Introduction
This paper is based on customer engagements
An enterprise usually has a large number of that involved recommending and providing SOA
applications. Each of the applications caters to the based solutions. In this paper, large-scale business
specific needs of different units within the applications built on distributed systems are referred
enterprise. It is imperative that the applications to as “Enterprise Applications”. It discusses a
collaborate to provide a uniform view of the Strawman Architecture that serves as a starting
enterprise and also leverage on the investments point for developing Service Oriented Architecture
made in legacy applications, through reuse of for Enterprise Applications. The paper also
business functionality provided by them. Service discusses Reference Architectures for SOA based
Oriented Architecture (SOA) enables exposing the J2EE and .NET applications, using Design Patterns.
reusable functionality of an application as services A unique feature of the Reference Architectures is
that can be consumed by other applications. the adoption of best practices relevant to the
platform, independent of specific implementation
mechanisms. The solutions and reference
A central aspect of Service Oriented
architectures discussed in the paper are reusable
Architectures is the loose coupling between
across domains and the implementing organizations
applications (services) that is achieved when
would benefit in terms of considerable time and cost
services publish their functional and non-functional
savings.
behavioral characteristics in a standardized,
machine-readable format as indicated in [2].
Proceedings of the 5th WSEAS Int. Conf. on Software Engineering, Parallel and Distributed Systems, Madrid, Spain, February 15-17, 2006 (pp48-54)

The rest of this paper is organized as follows.


Section 2 discusses the concept of Service Oriented 2.2 Motivation for Service Orientation
Architecture and the motivation for considering
SOA as a viable option in developing enterprise From a business perspective, it becomes
applications. Section 3 discusses the Strawman necessary for enterprises to protect the investments
Architecture that serves as a starting point for the already made in existing solutions despite the need
development of Service Oriented Architecture for for new applications that incorporate changing
large Enterprises. Section 4 describes the Reference technologies and business requirements. From a
Architectures for SOA based applications developed technology perspective too, it becomes necessary to
on J2EE and .NET platforms, using Design Patterns. have a scalable architecture that allows for reuse of
Section 5 presents SOA Best Practices and Section 6 business processes implemented in the existing
concludes the paper. solutions. Also, several customers require an
approach to plan an enterprise wide strategy that
2 Service Oriented Architecture leads to a scenario of well integrated IT systems
within their organization.
2.1 Service Oriented Architecture
One of the options to address these requirements
Service Oriented Architecture (SOA) is an is the recommendation of SOA. SOA, when
approach in which an application exposes services properly implemented, addresses the business and
that are consumed by clients. SOA differs from the technical integration considerations elegantly.
more general client/server model in its emphasis on
loose coupling between software components. With industry analysts such as Gartner [3]
Heterogeneous systems, both in terms of hardware predicting that over 80% of the business
and software, can communicate to leverage on the applications sold between 2005 and 2008 will be
business functionality (rather services) provided by based on the principles of Service Oriented
each other. The higher level of abstraction provides Architecture (SOA), it becomes imperative to
a strategic advantage of facilitating more focus on consider SOA for Enterprise Applications to benefit
the business requirement [12]. from the product/technology offerings that support
SOA and remain competitive.
A business service can be mapped to one or more
technology services for implementation. From a 3 Strawman Architecture for
technology perspective, a service is a defined Enterprise-Wide SOA
interface with input and output parameters.
Typically, an Enterprise is a large organization
having forward and backward linkages with other
Services can be implemented in various ways. organizations. It deals with a variety of external
Tools like RMI in Java and Remoting on .Net agencies. The Enterprise would, in all likelihood, be
platform can provide services. The problem with involved in B2B and B2C transactions. This section
these technologies is that they are platform specific presents Strawman Architecture for developing
and are not interoperable. There are other Enterprise-Wide SOA. Strawman Architecture is the
technologies like Web Services, which can be used initial architecture that serves as a starting point for
across platforms and networks. Web Services work developing the target architecture. It is refined over
with technologies like XML, SOAP, WSDL and number of iterations and results in the development
UDDI. They are platform-independent, vendor of the target architecture.
independent and language independent and
therefore are better suited for exposing and The Strawman Architecture presented here could
consuming services. serve as a starting point for developing a SOA based
solution for an Enterprise.
With the advent of web services, SOA enabled
enterprise applications have become vendor
independent, to a great extent. As predicted in [5], In this section, discussion is not restricted to a
IBM, SUN and BEA have recognized Web Services particular technology. A generic view of a service is
as a major technology and have products that considered.
support SOA.
Proceedings of the 5th WSEAS Int. Conf. on Software Engineering, Parallel and Distributed Systems, Madrid, Spain, February 15-17, 2006 (pp48-54)

functionality of Sales and Marketing and the


The following figure represents Strawman for distribution functionality including Client
Enterprise-Wide SOA. Reporting.

ii) Business Process Management Services


Business Process Management Services handle
orchestration of business processes implemented in
business applications, provide functionality of
Compliance and Reporting and also infrastructure
services such as security. These services control the
flow and interaction of business services.

iii) Business Application Services


The Business Application Services encapsulate
access to the functionality of the business processes
of the enterprise implemented in the various
business applications.

Fig.1 Strawman for Enterprise-Wide SOA iv) Data Services


Data Services encapsulate access to data in various
sources. There are typically two types of Data
It can be seen from the figure that the enterprise services that need to be provided in an enterprise:
has several applications that need to talk to each Information Services that transform and replicate
other. A key feature of the architecture is the use of data stored across the enterprise in various data
Enterprise Service Bus (ESB) that enables a smooth sources.
communication between the applications. ESB is Integration services that provide the ability to
often described as a product, especially in the
interact with structured and unstructured data
marketing literature of various vendors. But, in a
services (like the databases and flat files). These
strict sense, ESB is an architectural style. The
services establish connectivity of ESB with Legacy
Strawman architecture for Enterprise-Wide SOA
has the ESB as the heart of communication between and other packaged implementations such as ERP
applications [1,6]. The business processes of the and encapsulate access to functionality and data in
enterprise may be exposed as services that can be those applications.
classified as follows:
The key aspects of the architecture are in line
i. Client Services with the following four tenets of service orientation
ii. Business Process Management Services [7]:
iii. Business Application Services
iv. Data Services a) Boundaries are Explicit.
b) Services are Autonomous.
The services exposed by each of these categories c) Services Share Schema and Contract.
can be specified as a set of messages of a XML d) Service Compatibility is based on Policy.
framework. The Services Layers implement the
necessary functionality to transform the request
from a service consumer application to a suitable 4. Reference Architectures for
format, communicating with the application/product
implementing the functionality and returning the Enterprise Applications
result.
The Reference Architecture based approach has
A brief description of the services is as follows: been proven to be useful in several customer
engagements.
i) Client Services
According to Rational Unified Process (RUP), “a
Client Services enable and deliver content to users.
Reference Architecture, is in essence, a predefined
These include the Enterprise Portal, CRM
Proceedings of the 5th WSEAS Int. Conf. on Software Engineering, Parallel and Distributed Systems, Madrid, Spain, February 15-17, 2006 (pp48-54)

architectural pattern, or set of patterns, possibly


partially or completely instantiated, designed, and
proven for use in particular business and technical
contexts, together with supporting artifacts to enable
their use. Often, these artifacts are harvested from
previous projects”[4].

The Business applications shown in Fig.1 need to


support the Service Oriented Architecture for the
enterprise. Many of the Enterprise applications in
organizations today are developed for the J2EE and
.NET platforms. For these platforms, use of
Reference architectures for the Business
applications that conform to the Strawman (in Fig.
1) can help in adopting best practices and in
reducing the effort for architecting and
implementation. This section discusses Reference
Architectures for SOA based Enterprise applications
for J2EE and .NET platform which are based on
Design Patterns.

4.1 SOA based Enterprise Application – J2EE

The logical architecture of the enterprise Fig. 2 Reference Architecture of a SOA based J2EE
application can be represented as layers and Application
services. Layers group a set of services, and each
layer has public interfaces and provides a cohesive The Access Control Service includes
set of services. The Reference Architecture of a authentication of users and authorization of access
SOA based J2EE Application is shown in Fig. 2. to functionality of the application based on the
privileges defined for the users. Use of JAAS
The Presentation Layer of a thin client framework is recommended for authentication and
application is implemented using the MVC pattern. authorization. The classes that implement Business
The request from the browser of a thin-client Delegate call Access Control Service to authorize
application is passed to the Controller, which then the user for every request made by the user.
passes the request to the classes implementing the
Business Delegate pattern. Session Façade exposes business components
implemented as Enterprise Java Beans (EJB).
Struts Open Source Framework is recommended
for implementing the MVC pattern shown in the Service Locator provides mechanisms to
Reference Architecture. transparently locate business components and
services in a uniform manner. This is used to
The Business Layer implements business implement and encapsulate service and component
processes for the different modules, including static lookup. The Service Locator hides the
data maintenance, transactions, workflow, batch implementation details of the look up mechanism
processing and report generation. To encapsulate and encapsulates related dependencies.
the business logic and to decouple it from the
Presentation Layer, the Business Delegate pattern is Message Façade is used for asynchronous
used. communication between different Java components.

The classes implementing the Façade pattern


provide an interface for modules such as the
Services Layer, Reporting module, Batch-
processing module, e-mail, etc.
Proceedings of the 5th WSEAS Int. Conf. on Software Engineering, Parallel and Distributed Systems, Madrid, Spain, February 15-17, 2006 (pp48-54)

The Services Layer encapsulates the service-


oriented communication between the system under
context and all the external systems, for which it is
either a consumer or producer of services.

The Services Layer basically enables the location


and communication between a service consumer and
its corresponding service provider. The Services
Layer calls Enterprise Service Bus (ESB) for
communication with other applications.

The Data Access Layer connects to database


using the persistence framework. The data access
mechanism could be implemented using any of the
following technology options:



JDBC


Container managed entity EJB


Bean managed entity EJB
Object-relational mapping tools, like Hibernate
Fig. 3 Reference Architecture of a SOA based .NET
Application
4.2 SOA based Enterprise Application – .NET
The classes implementing the Façade pattern
As in the case of J2EE based application, the provide an interface for modules such as the
logical architecture of the .NET application can be Services Layer, Reporting module, Batch-
represented as layers and services. Layers group a processing module, e-mail, etc.
set of services, and each layer has public interfaces
and provides a cohesive set of services. The The Services Layer encapsulates the service-
Reference Architecture of a SOA based .NET oriented communication between the system under
Application is shown in Fig. 3. context and all the external systems, for which it is
either a consumer or producer of services.
The request for business functionality, which
comes from the client over HTTP, is passed to the The Services Layer enables the location and
Service Interface of the Business Layer. The communication between a service consumer and its
Business Layer implements business processes for corresponding service provider. The Services Layer
the different modules, including batch processing calls the Enterprise Service Bus (ESB) for
and report generation. To encapsulate the business communication with other applications.
logic and to decouple it from the Presentation Layer,
the Service Interface pattern is used. The Data Access Layer connects to database
using the persistence framework such as ADO.NET.
The Access Control Service includes The data access components encapsulate the data
authentication and authorization. The Service sources from the business layer.
Interface calls Access Control Service to authorize
the user for every request made by the user. 5 SOA Best Practices for the
Enterprise
The Best practices that have been identified for
SOA implementation projects include the following:

i. Assessing the suitability of SOA


ii. Developing an SOA Strategy
iii. Preparation of SOA Guidelines
iv. Defining an SOA Roadmap
Proceedings of the 5th WSEAS Int. Conf. on Software Engineering, Parallel and Distributed Systems, Madrid, Spain, February 15-17, 2006 (pp48-54)

i) Assessing the suitability of SOA b) With a framework defined for exposing and
consuming services, the final step of the strategy is
One of the Best Practices that have been one involving a mechanism for integration and to
identified, is to go beyond the hype of SOA, and search and locate services exposed by applications.
establish clearly that SOA is the right architecture to
address the given business requirements.
c) Enterprise Service Bus (ESB) is an important
In order to establish the suitability of SOA, it is mechanism to be considered as part of the strategy
important to look at SOA in the context of the for integration as it provides capabilities like content
business of Enterprise in addition to the context of based routing, message transformation that work
specific applications for which SOA is being with enterprise applications and service
considered. When Reusability and EAI are key orchestration.
concerns of the enterprise, SOA is a good option.
iii) Preparation of SOA Guidelines
It is also important that the enterprise
considering SOA does a COST/Benefit analysis and
establishes the Return on Investment (ROI). SOA Before embarking on a SOA implementation
implementations require investments in service with in an enterprise it is important to come up with
enabling existing applications and in ESB a set of guidelines. It helps develop a common view
infrastructure and commitment at enterprise level among key stakeholders across the enterprise and
for such investments is only possible when the ROI also helps in building consensus.
is justified.
Essentially, this would involve preparation of
ii) Developing a SOA Strategy Architecture “Blue Book” that has architecture
principles and reference architecture for the
Another Best Practice that has been identified in enterprise. The guidelines would include strategic
SOA implementations is for an Enterprise to Technology stack for the enterprise and also would
develop a SOA Strategy. refer to model SOA implementations done in and
outside the enterprise.
An example of a SOA strategy suitable to many
organizations is as follows:
The Architecture Blue Book can be the
a) As part of the strategy, a framework is defined so instrument to get buy-in from key stakeholders and
that different applications exposing services know to ensure their views are addressed suitably. It is
precisely how to define a service. Typically, this also important to establish a Governance Model and
would be an XML framework. Such a framework identify a “Champion” who ensures that different
could form the basis of the design of a Services units in the enterprise implement SOA as per the
Layer for applications participating in SOA. The guidelines.
next step in the strategy is to have consumer
applications invoke the services exposed by the
Services Layer as Web Service calls. iv) Defining a SOA Roadmap

By this approach, each service constitutes a A roadmap that targets SOA implementation in
“message” that the consumer application invokes an incremental manner needs to be defined.
and each type of message has an associated Schema.
A service invocation will be intercepted first by the As a first step, less complex activities can be
Services Layer that recognizes the “type of targeted first. One of the units in the enterprise can
message”. The Services Layer then converts it into be chosen for a pilot and a few applications can be
the appropriate function call of the service exposed service enabled. A Proof-of-Concept (PoC)
by the application and fires the function. The involving an ESB can also be developed.
response message is converted to the appropriate
format by the Services Layer and passed back to the For developers, service-orientation means
consumer. learning new programming models and techniques.
Proceedings of the 5th WSEAS Int. Conf. on Software Engineering, Parallel and Distributed Systems, Madrid, Spain, February 15-17, 2006 (pp48-54)

Changing developers' mindsets to effectively use


these new models might be the biggest hurdle for [4] Paul R. Reed, Jr., Reference architecture: The
successful adoption of SOA as discussed in [9]. best of best practices, Published on IBM
Website, Jan 30 2004.
The next step in the Roadmap could be to target
medium complexity. Applications in multiple [5] Michael Stal, Web Services: Beyond
departments can be made to participate in SOA with Component-Based Computing,
services being exposed and consumed through an Communications of the ACM, October 2002.
ESB.
[6] Mark Endrei, Jenny Ang, Ali Arsanjani, Sook
The final step in the Roadmap could be to Chua, Philippe Comte, Pål Krogdahl, Min Luo,
implement SOA at Enterprise level. Tony Newling, Patterns: Service- Oriented
Architecture and Web Service, IBM Red Book,
www.ibm.com/redbooks.

6 Conclusion [7] John Evdemon, The Four Tenets of Service


Orientation, article from bpminstitute.org at
This paper has captured experiences in providing http://www.bpminstitute.org/articles/article/arti
SOA based solutions for enterprise applications. cle/the-four-tenets-of-service-orientation.html
Strawman Architecture which would serve as a
beginning point is discussed. Reference [8] Shalil Majithia, David W. Walker, W.A.Gray,
Architectures for SOA based Enterprise applications A Framework for Automated Service
have been presented in the paper. Best practices Composition in Service-Oriented Architectures,
have been discussed. The use of SOA would reduce www.wesc.ac.uk/resources/publications/
the time-to-integrate any new application. Further,
the use of techniques and tools discussed in the [9] Gregor Hohpe, Developing Software in a
paper would reduce the time to arrive at the Service-Oriented World, White Paper from
architecture and design of the SOA based solution. ThougthWorks,
www.enterpriseintegrationpatterns.com/docs/S
OA_World.pdf

[10] Harold Carr, The PEPt Service Oriented


7 References Architecture, 2nd International Conference on
Service Oriented Computing New York City,
[1] Rick Robinson, Understanding Enterprise
NY, USA November 15-18, 2004 (ICSOC
Service Bus scenarios and solutions in Service-
2004).
Oriented Architecture, Parts 1 to 8,
[11] Ali Arsanjani, Service-oriented modeling and
www-
architecture,
128.ibm.com/developerworks/xml/library/
www128.ibm.com/developerworks/webservice
s/library/ws-soa-design1/
[2] Nirmal K Mukhi Ravi Konuru and Francisco
[12] Soumen chatterjee, Messaging Patterns in
Curbera,, Cooperative Middleware
Service Oriented Architecture, Part 1,
Specialization for Service Oriented
www.msdn.microsoft.com/library/
Architectures, International World Wide Web
Conference archive Proceedings of the 13th
international World Wide Web conference on
Alternate track papers & posters table of
contents New York, NY, USA SESSION:
Semantics and discovery table of contents
Pages: 206 - 215 Year of Publication: 2004.

[3] Charles Abrams and David Mitchell Smith,


Service-Oriented Business Applications Show
Their Potential, Gartner Research.

You might also like