Professional Documents
Culture Documents
Introduction
Service Oriented Computing (SOC) is an emerging distributed
computing technology that is set to replace the existing ways of building
software [1]. It is an architectural practice followed by organizations to
reduce
total
cost
of
ownership,
ease
of
maintenance
in
software
Service
orientation,
services,
service
compositions,
service
inventory and SOA are essential elements for realizing Service Oriented
Computing.
SOA might be defined as an application architecture in which all
functions are implemented as independent services with well-defined
invokable interfaces, which can be called in sequences to form business
processes. Recent IT developments have pushed SOA forward. For
instance with personalized, portal-style user interfaces over multiple
wired and wireless channels an increasing number of solutions require the
reuse of application components. Different users such as customers,
employees, managers using many devices in different situations all may
request access to the same set of business applications. Flexibility in
design of new software, reuse of business components, interoperability,
integration capability, and ease of assembling new business processes are
few of the advantages of SOA.
SOA is not always a remedy for existing shortcomings in todays
mix and match IT-architectures. This approach of distributed computing is
not suitable for homogenous IT environment, true real time systems, old
legacy systems and systems where tight coupling is required. SOA is also
not recommended for standalone short lived applications. Moreover it is
also not useful for applications that need GUI based functionality. Besides
certain areas where SOA has not proved to be beneficial there are certain
critical aspects that are to be considered. Service versioning, service
security, availability, service discovery, unfurnished standards, request
change etc. are few of them.
It has been almost a decade since the advent of SOA. Expectations
for SOA were high, but early adopters faced obstacles that inhibited the
realization of SOAs benefits. Many of the failed IT projects blamed SOA,
but the actual cause did not lie in the technology, but was in the way it
was implemented. Although lot of work has been done to develop design
patterns for SOA development, the dissatisfactory performance of SOA
projects has stimulated the developers to analyze the SOA worst practices
or antipatterns. Our research aimed at identifying these wrong practices in
implementation of SOA. A careful and intensive study of existing
antipatterns of SOA is done. These antipatterns are categorized are
categorized as SOA development process, SOA framework and SOA design
antipatterns. They are presented in a proposed SOA antipattern template
specifying there name, root cause, primal forces and description.
Various case studies, implementations, intensive study and research
we identified four antipatterns in SOA design related to the use of SOAP,
WSDL, UDDI and basic service definition, which initially seemed to be
correct but later resulted into reduced performance benefits.
1.1
Aim
The aim of our research work was to identify and formalize new
antipatterns in SOA design.
1.2
Objectives
1)
2)
3)
4)
Chapter-2
Literature Review
Readily accessible internet and World Wide Web (WWW) in past
few years has increased the use of distributed systems by enterprises
exponentially. Initially, distributed systems interacted using proprietary
protocols. Certain application specific methods were used to manage these
systems.
SOC is a latest computing paradigm that utilizes services as the
basic constructs to support the development of rapid, low-cost and easy
composition
of
distributed
applications,
even
in
heterogeneous
environments [1]. SOC has not occurred with an impact but it has been
gradual evolution overtime from the basic object oriented paradigm. The
presented work started with the depth study of the origin of SOC. Roots of
service orientation lie in one of the oldest design paradigm object
orientation [3, 4]. It laid the foundation of important principles like
abstraction, encapsulation and reusability etc. that were further reinforced
by component based development, with its advantages of extensibility and
maintainability [2].
Component based development could not cater complex issues such
as
distributed
deployment,
application
integration,
heterogeneous
platforms, web based access and diverse protocols. These drawbacks led
to the evolution of client server computing [3-5]. Its tightly coupled
nature paved the way to distributed computing. It supported highly
dispersed heterogeneous systems with reduced coupling between the
components [7, 8, 12, 13].
SOA is a logical way of designing a software system to provide
services either to end-user applications or other services distributed in a
network via published and discoverable interfaces. Many papers and
articles have matriculated the use of SOA [10, 11, 24, 29, 39, 42].
the
developer
to
analyze
the
SOA worst
practices
or
Chapter-3
Scope and Research Methodology Used
SOA is the latest design paradigm for distributed systems. It has a
wide scope for research. Major concern for SOA is to readily develop
applications with the integration of services and composite applications
within the enterprise by supporting the features such as reliability, proper
routing and coordination of services, and managing other technical details
including protocol and integrating party agreements [44].
3.1
Scope
SOA has been implemented in major projects of many companies
but since it is in its nascent stage developers are learning more from there
ill experiences with it. Our work aims to highlight certain steps which if
taken wrongly may prohibit the desired results of the project. After an
intensive study and implementation we identified few antipatterns in SOA
design. These are just a small fraction of the major SOA areas where more
antipatterns could be identified.
The proposed antipatterns will definitely help programmers to be
aware of various wrong practices in SOA implementation, specifically in
designing of such applications. This work specifies four antipatterns in
service design and will assist the SOA designers for developing better
frameworks and tools to develop integrated SOA applications.
Quality of Service (QoS) requirements, security, management and
monitoring of services are also other requirements that need to be
clarified when designing service based application architectures. SOA has
a broad influence in each stage of application development including
analysis and design of individual services, service deployment, creation of
new applications from services and implementation of services through
service oriented strategies and approaches. There are various other aspects
like SOA versioning, change request, service security, data sources, load
balancing etc which need the attention of the developers and have vast
scope of research.
3.2
Research Methodology
The main aim of our research was to identify antipatterns in SOA
design. We started with the in depth study of the subject. This latest
design paradigm has its roots in the decades old object oriented paradigm.
In order to understand the subject it was necessary to compare SOA with
other common approaches. Software development and computing trends
were discussed in context to evolution of SOA, showing changes in their
implementation with time and their role [2-8].
Various design patterns and antipatterns of SOA were reviewed and
a template for SOA antipatterns was proposed and used to represent
studied antipatterns. They were further categorized as SOA development
process, SOA framework and SOA design antipatterns [21]. The work was
supported
in
parallel
by
news
agency
registration
service
for
Chapter-4
Service Orientation
Service orientation is a design paradigm comprised of a specific set
of design principles. The application of these principles to the design of
solution logic results in service-oriented solution logic [11]. The most
fundamental unit of service-oriented solution logic is the service. The
service-oriented
computing
platform
revolves
around
the
service-
Common
Object
Model
(DCOM).
On
the
other
hand
Having
generations
to
host
numerous
of technologies
applications
and
perhaps
even
built
from
different
different
technology
interoperability
requirements.
After
repeated
generations
of
and
reusability
etc.
that
were
further
reinforced
by
10
11
abstract
discouraged.
class,
Different
polymorphism,
component
of
aggregation
object-oriented
have
approach
been
like
12
Fi gure 3: El em ent s of obj ect ori ent at i on and servi ce ori ent at i on.
Object
orientation
evolved
out
of
approaches
that
included
principles
development
with
(CBD),
additional
aspect
influence
oriented
of
component
programming
(AOP),
based
business
of
Based
Development
computer
based
emphasizes
systems
using
the
design
reusable
and
software
In
component-based
development,
initially,
an
appropriate
are
then
qualified
so
architecture.
13
that
they
fit
into
the
desired
to adapt
the component
according to the
and
Component
Object
Model
(COM)
are
implementing
component middleware.
SOA comprises of a set of components that can be invoked and
whose interface descriptions are published and discovered. Component
model is used for developing and executing components. The usage of the
terms invoked and execute is noteworthy. Component based architectures
and service based architectures both work towards the foundation for
loosely joined and highly interoperable software architectures. Services
have to be publicly accessible; moreover they have to be independent of
implementation
specific
maintainability
issues
development,
but
attributes.
got
complex
Extensibility,
addressed
issues
such
through
as
reusability
and
component-based
distributed
deployment,
14
(also called broker) and database tier to handle the backend issues. The
middle tier may be comprised of multiple layers. Coupling between
components
was
reduced,
statelessness
was
desired
and
enhanced
actual
(not
abstract)
argument
values
etc.
These
growing
based
systems.
It
can
run
the
users
application
on
15
has high security mechanism involved. It has almost been two decades
since the advent of grid computing even then it is not much popular in the
research community. Only a small number of the researchers actually use
grid software [5]. The reason behind is the complexity involved with the
grid, like, its complex architecture, the grid certification process, cryptic
command line options, non-assurance of the availability of resources etc.
Grids are application oriented. They are not fully web based; they also
have command line option to enter into a grid. Resources in a grid may be
administered by different set of people. It follows dedicated resource
policy i.e. a resource is reserved to a particular application for the
particular time, until its use, It cannot be used by any other application.
Cloud Computing
Cloud Computing is an extension of grid computing, parallel
computing and distributed computing. It aims to provide high performance
computing resources to the client over the internet. It can deploy, allocate,
reallocate computing resources dynamically and monitor the usage of
these resources at all times. Cloud provisions multiple users to share a
single resource concurrently. Simultaneously, it assures that one users
data or application is not shared by the other. It uses the technique of
virtualization, so dynamic scaling of resources is possible. It provides
virtual data centers, but does not depend on any particular data center.
Many of the internet applications are cloud based. Uploading photo,
text files, online shopping, gaming, music resources etc are all cloud
based. Google apps, EC2 (Elastic computing cloud) are the examples of
popular clouds. Some clouds offer testing and production environment
free of cost. Developers can develop and deploy their application on the
cloud free of cost. Cloud data centers are owned by private vendors and
are fully commercialized. They are not designed for a particular domain or
problem. All activities in a cloud can be achieved through web browsers
16
and no manual interactions are required. Like grid, cloud data centers may
be located in geographically different locations but they will be under the
same administrative domain in contrast to a grid, which may have
different owners.
Besides
normal
implementation,
cloud
computing
is
also
applications.
Platform
Oriented
Architecture
(POA)
is
the
architecture on which PaaS is designed. PaaS and SaaS are virtually same
for service consumption, but PaaS offers development and service hosting
opportunity.
iii) Utility Computing In utility computing virtual data centers are
created to provide storage and virtual services through collecting memory,
input-output equipments, storage and computing power to a virtual
resource pool.
17
development
of
rapid,
low-cost,
interoperable,
evolvable,
and
logic is the service. Each service is assigned its own distinct functional
18
Service
services.
The
Compositions:
consistent
These
are
application
a
of
coordinated
aggregate
service-orientation
of
design
19
is
dedicated
to
providing
reusable,
cross-cutting
utility
20
4.2
organizational,
and
technical
environments.
SOA
is
an
services as the
21
Increased federation
A federated IT environment is one where resources and applications
are
united
governance.
while
maintaining
SOA aims
to
their
increase
individual
a
autonomy
federated
and
perspective
selfof
an
enterprise.
Increased Vendor Diversification Options
Vendor diversification refers to the ability an organization has to
pick and choose amongst multiple vendor products and technology
innovations and use them together within one enterprise. It is not
necessarily beneficial for an organization to have a vendor diverse
environment; however, it is beneficial to have the option to diversify
when required.
Increased return of investment
SOC advocates the creation of agnostic solution logic i.e. logic that
is agnostic to any one purpose and therefore useful for multiple purposes.
Agnostic services have increased reuse potential that can be realized by
allowing them to be repeatedly assembled into different compositions.
Any one agnostic service can therefore find itself being repurposed
numerous times to automate different business processes as part of
different service-oriented solutions.
Increased Business and Technology Domain Alignment
Although initial applications have traditionally been designed to
address
immediate
and
tactical
requirements,
it
has
always
been
22
to
automate
new
or
changed
business
processes
is
principle
is
generalized,
accepted
industry
practice.
It
23
as
enterprise
resources
with
agnostic
functional
contexts.
24
Service Autonomy
For services to carry out their capabilities consistently and reliably,
their underlying solution logic needs to have a significant degree of
control over its environment and resources. The principle of Service
Autonomy supports the extent to which other design principles can be
effectively realized in real world production environments
Service Statelessness
The management of excessive state information can compromise the
availability of a service and adversely affect its scalability potential.
Services are therefore ideally designed to remain stateful only when
required.
Service Discoverability
Services are supplemented with communicative meta data by which
they can be effectively discovered and interpreted
Service Composability
The ability to effectively compose services is a critical requirement
for achieving some of the most fundamental goals of SOC.
Service Architecture:
It refers to the architecture of a single service.
Services exist as
25
abstraction design principle their contents are often protected and hidden
from other project team members.
Service
Description
Language)
26
12
4)
Service Architecture
Service Composition Architecture
Service Inventory Architecture
Service Oriented Enterprise Architecture
IT
environment:
If
an
organization
uses
the
27
of Structured
Information
Skill set:
28
6.
pattern
description
must
follow
consistent
rhetorical
structure called the pattern template. There are many pattern templates
viz. Alexanderian form consisting of name, problem and solution in form
of diagram and description, Micro-pattern template containing name,
problem and solution in precise manner, Inductive Mini pattern consisting
of Name , context, forces and solution and many other [37]. A system of
29
4.4 Antipatterns
Antipatterns describe a commonly occurring solution to a problem
that generates negative results i.e. seemingly well but in fact, wrong
solutions. Design patterns and antipatterns are closely related. Former
defines commonly applied solutions to well known problems, while later
are the specific repeated practices that initially appear to be beneficial but
ultimately result in undesirable consequences. An essence of antipattern is
30
level
and
enterprise
level
structure
of
applications
and
of
the
system
are
architecture
antipatterns.
Software
Partitioning,
Interfaces
and
Connections.
These
decisions
are
31
across
organizational
boundaries
whereas
in
electronic
process
management,
resource
management,
and
external
antipatterns.
Common
management
antipatterns
include
Mini Antipattern:
Name:
What
shall
practitioners?
32
this
Antipattern
be
called
by
noun phrase. The name is used for future reference to the principles
contained
in
the
antipattern.
They
form
the
basis
for
an
Frequent
Scale:
This
identifies
where
this
Each
classes.
33
from
the
Antipattern
solution.
It
can
be
software,
Root Causes: These are the general causes for the antipattern. They
can be one or more of the following values
- Haste: It is popularly said Haste makes waste. Hasty decisions
lead to compromises in software quality. As successive project
deadlines are missed, anything that appears to work is considered
acceptable, regardless of quality.
- Apathy: It refers to not caring about solving known problems. It is
a basic unwillingness to attempt a solution.
34
Sloth:
Distributed
object
technology
enables
application
35
of
implementation of
IT
resources
refers
to
controlling
use
and
people ad IT artifacts.
36
Chapter-5
SOA Antipatterns
There are various problems in adaptation of SOA, which result into
the dissatisfactory performance of SOA projects. These problems are to be
seriously catered; hence practitioners have started addressing different
bad or worst practices of SOA implementation in form of antipatterns.
Antipatterns proposed by different organizations have been fragmented
and have been focusing on the complete SOA life cycle i.e. from the
origin of concept to realization. The pioneer work on the subject focused
primarily on object oriented antipatterns. It should be known that object
oriented patterns and service oriented patterns have a subtle difference
between them. Some of the object oriented design patterns form the major
antipatterns for SOA such as No legacy Antipattern and vice versa.
The full antipattern template as described in the previous chapter
comprises of number of required and optional sections. The core sections
are the general form of the antipattern, and they specify the name, root
cause, primal forces, description, the name of the antipattern to which the
current antipattern is similar to, background, consequences, variations,
known exceptions, example, related solution etc.
The SOA antipatterns discussed below utilize this template to
document the common dysfunctional practices in the adaptation of SOA. It
specifies the name, root cause, primal forces, description and the name of
the antipattern to which the current antipattern is similar to.
5.1 SOA Antipattern Categories
37
in
development
management,
order
of
to
arrive
SOA based
resource
at
an
implemented
applications
management,
includes
and
system.
software
external
Initial
process
relationship
large
structures
of
the
38
system
are
SOA
framework
antipatterns
encountered
in
programming
and
code
management, i.e. at the lowest level are the SOA design antipatterns as
shown in Table 3. Patterns in IT that revolve around the design of
automated systems are called design patterns. Many of the SOA design
patterns have their origin and influences to established design concepts
and pattern catalogue of object orientation, enterprise application and
software architecture in general.
Design patterns concentrate on design, development and realization
of SOA. Design antipatterns focus on the worst practices encountered in
programming and code design. Their knowledge is useful for the
39
40
5.2 Conclusion
SOA antipatterns have been classified as SOA development process,
SOA framework and SOA design antipatterns. It has been observed
that amongst the large number of addressed SOA antipatterns, failures
are mainly due to limited number of interrelated antipatterns focusing
mainly
on
the
SOA
design.
Interrelationships
41
between
these
Chapter-6
Proposed SOA Antipatterns
In order to fulfill the main objective of identifying new antipatterns,
certain domain areas were identified as most error prone areas of SOA
implementation, hence probable areas of finding new antipatterns. This
was on the basis of the implemented module, case studies and study of the
subject.
Viewing at different architectures underneath SOA as described in
chapter 4, designing of a Service oriented application can be further
broken up as service design, service composition design and service
inventory design. Hence the SOA design is further categorized as
1) Service Design (SD)
2) Service Composition Design (SCD)
3) Service Inventory Design (SID)
4) Service Oriented Enterprise Design (SOED)
The identified domain areas prove to be the weaker links of SOA and
need to be implemented correctly and carefully. Following are the
considered domain areas, the category in which they may be include is
mentioned in brackets:
i)
ii)
iii)
iv)
v)
Data Sources
(CD)
42
vi)
Security (SID)
vii)
Following are the observed common ways of implementing SOA but which
later proved to be wrong way, hence can be identified as Antipatterns.
6.1
SOA=SOAP
Newbies implementing SOA often consider that, the three standards
that enable implementation of Web services are the Simple Object Access
Protocol (SOAP), Web Services Description Language (WSDL), and
Universal Description, Discovery, and Integration (UDDI). Here, SOAP is
an XML-based protocol to support communication between a Web service,
its clients, and UDDI registry. WSDL is an XML-based standardized
interface definition language used to describe what a Web service can do,
where it resides, and how it can be invoked. A WSDL file associated with
a Web service contains important details about the Web-service interface
for client-service interaction.
UDDI standard is used to publish, discover, and manage Web
services in an UDDI registry. Although it is a good and most preferred
way to implement web services, the other ways to create light weight
services should also be preferred. A REST-Web service is basically a
simplified
model
where
everything
is
wrapped
around
the
HTTP
send/receive protocol.
Using services based on SOAP envelop always, may be an overhead,
whereas that same work could be done using lightweight approach like
REST (Representational State Transfer) using traditional methods. The
main responsibility of accessing the service in the SOAP-WSDL process
43
Refactored Solution
In the development of Web service based SOA applications, the
44
a) Approach
REST and SOAP are parallel ways of implementing web services.
Let us first discuss the two different approaches of implementing web
services.
RESTful Web Services
REST is an architectural style that prescribes the use of standards
such as Http, URL, Resource representations (XML, HTML, Gif etc.),
MIME Types etc. [11].
The RESTful web service makes available URL to a resource and it
may allow the client to specify the format of the returned resource i.e.
HTML or an XML document. The service itself may be described using
WSDL (Web Service Description Language) or WRDL (Web Resource
Description Language) and can be accessed either as a resource or using
JSON (Java Script Object Notation). RESTful services are stateless; each
request from client to server must contain all necessary information. All
resources are accessed with generic interface (Http GET, POST, PUT,
DELETE). These resources are named using URI (Uniform Resource
Identifier). The client may progress from one state to another using
interconnected URL representation.
SOAP Based Web Services
In this method provider creates and implements a web service
interface onto an existing application. He has to create a XSD (XML
Schema Document) and WSDL contract in order to distribute the Web
service details to potential consumers. Consumer obtains WSDL contract
for consumption through UDDI registry. Then the consumer implements
the WSDL in a specific platform - Java, C#, PHP, Perl - and creates a
caller application.
45
Client
sends multiple
46
c) Caching
It refers to the ability to maintain a copy of the desired resources in
order to improve the performance.
REST
The result of a resource contains an indication in the Http header of
whether the results are cacheable or not. If it is, cache servers make a
local copy, which can be returned for the same request if repeated .
SOAP
A SOAP message is always with a POST method, which makes the
cache server unaware of the actual intension of the request type (GET or
POST). Moreover the SOAP URI is always to the SOAP server which
prohibits the cache server again from knowing the actual resource
requested. Hence no caching is possible with SOAP.
d) Generic Interface
Generic
interfaces
imply
generalized
functionality
and
hence
47
SOAP
There is no defined set of methods. Any type of methods could be
defined which makes customization on application basis and reduces
scalability.
e) Interoperability
Interoperability
means
sharing
the
data
amongst
multiple
is
based
on
standardization.
REST relies
on
48
antipatterns viz. Discovery of web service through UDDI and Using plain
WSDL to define service interface.
6.1.2
Standard Representation
Following
the
Standard
Antipattern
Template
[14]
and
SOA
SOAP-WSDL
is
considered
to
be
the
only
way
of
Although
SOAP-WSDL
is
the
established
way
of
SOA
implementation through web services but other alternative ways like REST
should be equally considered. For CRUD applications RESTful services
should be preferred and for application specific services holding core
logic SOAP based services should be preferred.
49
Implementation
The above antipatterns were derived after final implementation of
both the ways of implementing web services i.e. SOAP and REST.
Following are few screenshots of their implementation i.e. SOAP-WSDL
based web service in .Net through Visual Studio 2008 and REST Based
web service in java through Netbeans7.0.1.
Figure5 represents a structure of SOAP based service. It shows various
methods which are application specific and need not have a generic
structure.
50
51
The figure 7 and figure8 below show the interface of the two services developed.
52
The Figures 9 and 10 below show the WSDL for SOAP based service and WADL for
REST based service.
53
The next set of figures11 and 12 represent the checking of availabilty of the user ids. In
REST Http get method is used while in SOAP appropriate application specific methods
are used.
54
The id is
checked
through get
method for the
availability
6.2
55
WSDL does not contain full interface of a service, it does not have
any semantic information. A WSDL file does not specify how to access
next desired service, how long a service usually runs, who is allowed to
call it, how much a service call cost and many other non functional
attributes. All these aspects must usually be known in order to manage a
service in a large SOA landscape. With future WSDL versions this might
change.
6.2.1 Refactored Solution
Service Description should be provided in a separate format and
WSDL should be generated from it when required. WSDL files can be
extended internally with additional XML elements and attributes or
externally
with
supplementary
files
[43].
WSDL
allows
elements
56
protocol, and less time will be spent for SOAP marshalling and unmarshalling. A service can have multiple bindings associated with it and
the consumer of the service will have the choice of selecting one binding
or the other.
Implementation
The figure13 below show the standard WSDL file for a simple web
service in java.
In the code segment below the information for locating the EJB is
stored in <ejb:port> section of the WSDL definition and the information
for invoking the EJB is stored in the <wsdl:binding> section.
57
its
signature (name
and parameters)
and its
binding and
deployment details (protocol and location). This does not describe various
non functional attributes like how to access next desired service, cost of
service etc.
Solution: WSDL files can be extended internally with additional XML
elements and attributes or externally with supplementary files. Certain
58
6.3
In
order
to
address
these
challenges,
the
big
SOA
vendors (Microsoft, Oracle, IBM etc) created a standard that with the
purpose of modeling service metadata information that could be used to
enable service discovery capabilities. The standard was known as
Universal Data Discovery and Integration (UDDI) and, unfortunately, it
became the cornerstone of SOA governance products. UDDI has proven to
be an incredibly ineffective mechanism to enable service publishing and
discovery. The SOA models created with UDDI are incredibly complex to
implement and use and, quite often, end up becoming another bottleneck
of SOA.
6.3.1 Refactored Solution
While building SOA application, the complexities of UDDI should
be avoided and instead use a simpler mechanism to facilitate the discovery
and query of services. This can be achieved by implementing a 100%
RESTful API that allows querying the entire service registry using plain
HTTP GETs. No requirement of centralized registry. More advantages of
REST are discussed in previous section. User defined or application
59
specific registries can also be defined like Oracles OSR (Oracle service
registry), But these application specific registries are very complex and
far from the reach of a simple programmer.
6.3.2 Standard Representation
According to SOA Antipattern Template [37], the above proposed
antipatterns can be described as follows:
Antipattern Name: Discovery of web service through UDDI
Also known as/ similar to : Not Applicable
Root Cause: It can be haste, sloth and ignorance.
Primal Force s: Management of performance, management of IT resources
and management of technology transfer.
Description : Since SOA literatures and previous implementation of the
technology, effectively present the usage of UDDI as the central registry
for SOA services, the new small projects consider it to be an undetachable component of SOA. The truth lies behind the fact that UDDI is
incredibly complex and difficult to implement. Even and Microsoft have
refrain from their UDDI registries. In such case adhering to UDDI seems
to be right but in fact not the perfect way of service discovery.
Solution : Customized registries according to the application should be
created. Various other registries using JNDI (Java Naming and Directory
Interface), OSR (Oracle Service Registry) can also be used in an SOA
application. REST based services should be prefered for data access
services. They are directly accessed through URIs hence require no
central registry.
Implementation
60
Resources
are available
as URI
6.4
61
62
Service
Fi gur e 7: Desi gn pri nci pl es pl ayi n g t hei r rol e in creat i on of a servi ce [ 45] .
Inter
application
services
should
be
designed
for
63
lowest level and callable only by the generic services providing interface
to the service consumer. Services at lowest level should further be
properly identified as entity services, task services and utility services
[15]. Services should essentially follow basic design principles for a
successful SOA implementation.
64
Chapter-7
Results and Conclusions
7.1 Results
Service Oriented Architecture is the latest design paradigm for
distributed applications. It has not been able to gain acceptance by
mediocre and small companies as expected, even though software giants
are shifting towards service oriented applications. The reason behind
appears to be the complexity of SOA implementation and initial failed
projects.
After
careful
study
of
various
SOA
projects
and
its
antipatterns,
failures
are
mainly
due
to
limited
number
of
7.2 Conclusions
Categorization
of
SOA
antipatterns
as
development
process,
65
sincerely hoped that the identified four antipatterns will make SOA
programmers more aware of the commonly made mistakes in SOA design
and implementation.
In our study we importantly laid stress on SOA design antipatterns.
Some of the domain areas such as Request change, data handling have
been left unexplored and few more antipatterns can be identified. A
framework for building SOA applications could also be developed which
would
integrate
various
features
necessary
features
for
SOA
66
Our Contribution
[1] D. Tripathi, Development Trends and Evolution of SOA ,
Proceedings of National Conference on Emerging Trends in
Mechanical, Electronics and Computer Engineering, held at IIST
Indore on 17 t h & 18 t h April 2010, pp 139-143.
[2] D. Tripathi, U. Suman, M. Ingle. A Systematic Review of
Antipatterns
in
SOA ,
Proceedings
of The
International
67
REFERENCES
[ 1] L. S ri ni vasan, An overvi ew of S ervi ce Ori ent ed Archi t ect ure, Web S ervi ces and
Gri d Com put i ng, HP (Hewl et t P ackard) Whit e P aper, Novem ber 2006.
[ 2] D. J ana, Obj ect Ori ent ed Technol ogi es, C SI Journal , Febru ar y 2008, pp 4-5.
[ 3] htt p: / / en.wi ki pedi a.org/ wi ki / C om ponent - based soft ware engi ne eri n g.
[ 4] S . Chat t erj ee, An Int rodu ct or y Overvi ew of Web S ervi ces, C SI Journal , March
2007, pp 6- 12.
[ 5] K. Kal ai sel van, P. Venat a Kri shna, Gri d t o C l oud (G2C ) - A i nfrast ruct ure based
t ransi t i on, C SI Journal , Febru ar y 2010, pp 22-25.
[ 6] htt p: / / en.wi ki pedi a.org/ wi ki / C l oud_com put i ng.
[ 7] S . Zhang, X. Huo, X. Chen, C l oud Com put i ng R esearch and Devel opm ent Trend,
Second Int ernat i onal Conf erence on Fut ure N et w orks , 2010.
[ 8] L. Hanchen g, Desi gn of S aaS -based Soft ware Archi t ect ur e,
C onf erence on N ew Trends in Inf ormat i on and Servi ce Sci ence , 2009.
68
[ 19] H. Haci gum us, Ant i pat t erns: Int e gr at i ng Dist ri but ed and Het erogenous Dat a
S ources i n S OA, IEEE Congr ess on servi ces, www.IE EEXpl ore 2008.
[ 20] J . Kral , M. Zem l i cka, P opul ar S OA Ant i pat t erns, Com put at i on Worl d: Fut ure
C om put i ng, S ervi ce C om put at i on, C ogni t i ve Cont ent , P at t erns, 2008.
[ 21] D. Tri pat hi , U. S um an, M. In gl e, A S yst em at i c R evi ew of Ant i pat t erns i n S OA ,
P roceedi n gs of The Int ernat i onal C onf erence on Comput i ng Busi ness Appl i cat i on and
L egal Issues , Ghaz i abad, 3- 4 March 2011, pp 2-7.
[ 22] M. Endrei , J . Ang, A. Arsanj ani , S . C hua, P. C om t e, P. Krogd ahl , M. Luo, T.
Newl i ng, P at t erns: S ervi ce Ori ent ed Archi t ect ure and Web S ervi ces, IBM R edbook,
Apri l 2004.
[ 23]
of S OC , P roceedi ngs
of t he
Second
Wor kshop
on
2nd
[ 27] soa- rm -cs.pdf -Oasi s refe renc e m odel for S OA 1.0, Com mi t t ee speci fi cat i on 2006.
[ 28]
C.
Sm it h,
L.
G.
Wil l i am s,
S oft ware
P erform an ce
2nd
Int ernat i onal Work shop on Sof tw are Engi neeri ng and Research , 2008.
[ 29] htt p: / / www.S oaP at t erns.org .
[ 30] S . Chat t erj ee, A int roduct or y overvi ew of Web S ervi ces, C SI j ournal vol -29
i ssue- 9, March 2007, pp 6-12.
[ 32] J. fronckowi ak, S OA Best pract i ces and desi gn pat t erns, Whi t e paper,
www.Oracl e.com / t echnol o gi es , March 2008
[ 33] htt p: / / j ava.sun.com / devel oper/ t ech Art i cl es/ WebS ervi ces/ soa3/ l oanp roc essi ng.ht m .
[ 34] T. P andey, B. S i ngh, Aut hent i cat i on and Bi l l i ng Fram ework for S ervi ce Ori ent ed
Archi t ect ur es i n vari ous fi el ds, 4t h Int ernat i onal C onf erence on Syst ems , 2009.
[ 35] S . Puni t a, C . Babu, P erform anc e P redi ct i on Model for S ervi ce Ori ent ed
Appl i cat i ons, 10t h Int ernat i onal C onf erenc e on HPC and C ommuni cat i ons , 2008.
[ 36] Y. Zhao, S ervi ce Ori ent ed In fr ast ruct ur e Fram ework , IE EE Congr ess on
S ervi ces 2008.
69
[ 37] W. J . Brown, R. Mal veau, Ant i pat t erns: R efact ori ng soft ware, Archi t e ct ures and
P roj ect s in cri si s, 2nd Edit i on J ohn Wil e y & Sons, Inc, 1998.
[ 38] N. M. J osutt i s, S OA i n P ract i ce, 1st Edi ti on OR ei l l y Medi a, August 2007.
[ 39] M. Mabrouk, S OA fundam ent al s i n a nut shel l , Techni c al Art i cl e www.IB M.com ,
S ept em ber 2008.
[ 40] Mai nfr am e
S OA Im pl em ent at i on Best
art i cl e, S OA
70