Service Oriented Architecture For Enterp
Service Oriented Architecture For Enterp
Service Oriented Architecture For Enterp
on Software Engineering, Parallel and Distributed Systems, Madrid, Spain, February 15-17, 2006 (pp48-54)
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.
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 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.
•
•
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 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)