0% found this document useful (0 votes)
33 views16 pages

SOA Material

Service-Oriented Architecture (SOA) is a design pattern for building distributed systems that deliver services through protocols, emphasizing loose coupling and interoperability. It consists of various components, including service consumers, providers, and registries, and offers advantages like easy integration and platform independence, while also presenting challenges such as high overhead and complex management. Contemporary SOA builds upon traditional models, promoting characteristics like autonomy, extensibility, and organizational agility, while addressing common misconceptions about its implementation and scope.

Uploaded by

Sachin chinnu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
33 views16 pages

SOA Material

Service-Oriented Architecture (SOA) is a design pattern for building distributed systems that deliver services through protocols, emphasizing loose coupling and interoperability. It consists of various components, including service consumers, providers, and registries, and offers advantages like easy integration and platform independence, while also presenting challenges such as high overhead and complex management. Contemporary SOA builds upon traditional models, promoting characteristics like autonomy, extensibility, and organizational agility, while addressing common misconceptions about its implementation and scope.

Uploaded by

Sachin chinnu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 16

INTRODUCTION TO SOA

Service Oriented Architecture (SOA)


A Service-Oriented Architecture or SOA is a design pattern which is
designed to build distributed systems that deliver services to other
applications through the protocol. It is only a concept and not limited to
any programming language or platform.

What is Service?
A service is a well-defined, self-contained function that represents a unit
of functionality. A service can exchange information from another service.
It is not dependent on the state of another service. It uses a loosely
coupled, message-based communication model to communicate with
applications and other services.

Service Connections
The figure given below illustrates the service-oriented architecture.
Service consumer sends a service request to the service provider, and the
service provider sends the service response to the service consumer. The
service connection is understandable to both the service consumer and
service provider.

Service-Oriented Terminologies
some important service-oriented terminologies:
o Services - The services are the logical entities defined by one or
more published interfaces.
o Service provider - It is a software entity that implements a service
specification.
o Service consumer - It can be called as a requestor or client that
calls a service provider. A service consumer can be another service
or an end-user application.
o Service locator - It is a service provider that acts as a registry. It is
responsible for examining service provider interfaces and service
locations.
o Service broker - It is a service provider that pass service requests
to one or more additional service providers.
CHARACTERISTICS OF SOA
The services have the following characteristics:
o They are loosely coupled.
o They support interoperability.
o They are location-transparent
o They are self-contained.

Components of service-oriented architecture


The service-oriented architecture stack can be categorized into two parts -
functional aspects and quality of service aspects.
Functional aspects
The functional aspect contains:
o Transport - It transports the service requests from the service
consumer to the service provider and service responses from the
service provider to the service consumer.
o Service Communication Protocol - It allows the service provider and
the service consumer to communicate with each other.
o Service Description - It describes the service and data required to
invoke it.
o Service - It is an actual service.
o Business Process - It represents the group of services called in a
particular sequence associated with the particular rules to meet the
business requirements.
o Service Registry - It contains the description of data which is used
by service providers to publish their services.

Quality of Service aspects


The quality of service aspects contains:
o Policy - It represents the set of protocols according to which a
service provider make and provide the services to consumers.
o Security - It represents the set of protocols required for
identification and authorization.
o Transaction - It provides the surety of consistent result. This means,
if we use the group of services to complete a business function,
either all must complete or none of the complete.
o Management - It defines the set of attributes used to manage the
services.

Advantages of SOA
SOA has the following advantages:
o Easy to integrate - In a service-oriented architecture, the integration
is a service specification that provides implementation
transparency.
o Manage Complexity - Due to service specification, the complexities
get isolated, and integration becomes more manageable.
o Platform Independence - The services are platform-independent as
they can communicate with other applications through a common
language.
o Loose coupling - It facilitates to implement services without
impacting other applications or services.
o Parallel Development - As SOA follows layer-based architecture, it
provides parallel development.
o Available - The SOA services are easily available to any requester.
o Reliable - As services are small in size, it is easier to test and debug
them.

Disadvantages of SOA:
 High overhead: A validation of input parameters of services is done
whenever services interact this decreases performance as it increases
load and response time.
 High investment: A huge initial investment is required for SOA.
 Complex service management: When services interact they
exchange messages to tasks. the number of messages may go in
millions. It becomes a cumbersome task to handle a large number of
messages.

FUNDAMENTALS (OR) COMPONENTS OF SOA:

Key points about SOA characteristics:


 Loose Coupling:
Services are designed to be independent and can evolve without
affecting other services, minimizing dependencies and simplifying
maintenance.
 Reusability:
Services are modular and can be reused to build new applications,
promoting cost efficiency and faster development.
 Interoperability:
Services can communicate and interact with each other across different
platforms and technologies due to standardized communication
protocols.
 Abstraction:
Services hide their internal implementation details, providing a clear
interface for clients to interact with.

 Discoverability:
Services are easily identifiable and accessible through a service registry,
allowing clients to find the appropriate service.

 Composability:
Services can be combined to create complex business processes by
orchestrating them together.
 Standardized Service Contracts:
Services adhere to a defined interface and data format, ensuring
consistency and understanding between consumers and providers.
 Location Transparency:
Clients don't need to know the physical location of a service to access it.

COMMON CHARACTERISTICS OF CONTEMPORARY SOA


Contemporary SOA builds upon the primitive SOA model by leveraging
industry and technology advancements to further its original ideals.
Though the required implementation technology can vary, contemporary
SOAs have evolved to a point where they can be associated with a set of
common characteristics.
Specifically, we explore the following primary characteristics:
o Contemporary SOA is at the core of the service-oriented computing
platform.
o Contemporary SOA increases quality of service.
o Contemporary SOA is fundamentally autonomous.
o Contemporary SOA is based on open standards.
o Contemporary SOA supports vendor diversity.
o Contemporary SOA fosters intrinsic interoperability.
o Contemporary SOA promotes discovery.
o Contemporary SOA promotes federation.
o Contemporary SOA promotes architectural composability.
o Contemporary SOA fosters inherent reusability.
o Contemporary SOA emphasizes extensibility.
o Contemporary SOA supports a service-oriented business modeling
paradigm.
o Contemporary SOA implements layers of abstraction.
o Contemporary SOA promotes loose coupling throughout the
enterprise.
o Contemporary SOA promotes organizational agility.
o Contemporary SOA is a building block.
o Contemporary SOA is an evolution.
o Contemporary SOA is still maturing.
o Contemporary SOA is an achievable ideal.

o Contemporary SOA is at the core of the service-oriented


computing platform.
Past terms used to identify distinct application computing platforms
were often suffixed with the word "architecture" when the
architecture was actually being referenced. The terms "client-
server" or "n-tier," for example, can be used to classify a tool, an
administration infrastructure, or an application architecture.

o Contemporary SOA increases quality of service.


This relates to common quality of service requirements, such as:
o The ability for tasks to be carried out in a secure manner, protecting
the contents of a message, as well as access to individual services.
o Allowing tasks to be carried out reliably so that message delivery or
notification of failed delivery can be guaranteed.
o Performance requirements to ensure that the overhead imposed by
SOAP message and XML content processing does not inhibit the
execution of a task.
o Transactional capabilities to protect the integrity of specific business
tasks with a guarantee that should the task fail, exception logic is
executed.

o Contemporary SOA is fundamentally autonomous.


The service-orientation principle of autonomy requires that
individual services be as independent and self-contained as possible
with respect to the control they maintain over their underlying logic.
This is further realized through message-level autonomy where
messages passed between services are sufficiently intelligence-
heavy that they can control the manner in which they are processed
by recipient services

o Contemporary SOA is based on open standards.


Contemporary SOAs fully leverage and reinforce this open, vendor-
neutral communications framework (Figure 3.5). An SOA limits the
role of proprietary technology to the implementation and hosting of
the application logic encapsulated by a service. The opportunity for
inter-service communication is therefore always an option.
Figure 3.5. Standard open technologies are used within and outside
of solution boundaries.
o Contemporary SOA supports vendor diversity.
The open communications framework explained in the previous
section not only has significant implications for bridging much of the
heterogeneity within (and between) corporations, but it also allows
organizations to choose best-of-breed environments for specific
applications.
For example, regardless of how proprietary a development
environment is, as long as it supports the creation of standard Web
services, it can be used to create a non-proprietary service interface
layer, opening up interoperability opportunities with other, service-
capable applications (Figure 3.6). This, incidentally, has changed the
face of integration architectures, which now can encapsulate legacy
logic through service adapters, and leverage middleware
advancements based on Web services.
Figure 3.6. Disparate technology platforms do not prevent service-
oriented solutions from interoperating.

o Contemporary SOA fosters intrinsic interoperability.


When building an SOA application from the ground up, services with
intrinsic interoperability become potential integration endpoints
(Figure 3.8). When properly standardized, this leads to service-
oriented integration architectures wherein solutions themselves
achieve a level of intrinsic interoperability. Fostering this
characteristic can significantly alleviate the cost and effort of
fulfilling future cross-application integration requirements.

Figure 3.8. Intrinsically interoperable services enable unforeseen


integration opportunities.
o Contemporary SOA promotes discovery.
SOA supports and encourages the advertisement and discovery of
services throughout the enterprise and beyond. A serious SOA will
likely rely on some form of service registry or directory to manage
service descriptions (Figure 3.7).

Figure 3.7. Registries enable a mechanism for the discovery of


services.

Contemporary SOA promotes federation.

Obviously, the incorporation of SOA with previous platforms can lead to a


variety of hybrid solutions. However, the key aspect is that the
communication channels achieved by this form of service-oriented
integration are all uniform and standardized (Figure 3.9).
Figure 3.9. Services enable standardized federation of disparate legacy
systems.
Contemporary SOA promotes architectural composability.
o What provides this flexibility is the fact that second-generation Web
services specifications are being designed specifically to leverage
the SOAP messaging model. Individual specifications consist of
modular extensions that provide one or more specific features. As
the offering of WS-* extensions supported by a given vendor
platform grows, the flexibility to compose allows you to continue
building solutions that only implement the features you actually
need (Figure 3.10). In other words, the WS-* platform allows for the
creation of streamlined and optimized service-oriented
architectures, applications, services, and even messages.
o Figure 3.10. Different solutions can be composed of different
extensions and can continue to interoperate as long as they support
the common extensions required.

Contemporary SOA fosters inherent reusability.

The emphasis placed by SOA on the creation of services that are agnostic
to both the business processes and the automation solutions that utilize
them leads to an environment in which reuse is naturally realized as a
side benefit to delivering services for a given project. Thus, inherent reuse
can be fostered when building service-oriented solutions (Figure 3.11).
Figure 3.11. Inherent reuse accommodates unforeseen reuse
opportunities.
Contemporary SOA emphasizes extensibility.
o When expressing encapsulated functionality through a service
description, SOA encourages you to think beyond immediate, point-
to-point communication requirements. When service logic is
properly partitioned via an appropriate level of interface granularity,
the scope of functionality offered by a service can sometimes be
extended without breaking the established interface (Figure 3.12).
o Figure 3.12. Extensible services can expand functionality with
minimal impact.

Contemporary SOA supports a service-oriented business modeling


paradigm.

n our description of a primitive SOA, we briefly explored how business


processes can be represented and expressed through services.
Partitioning business logic into services that can then be composed has
significant implications as to how business processes can be modeled
(Figure 3.13). Analysts can leverage these features by incorporating an
extent of service-orientation into business processes for implementation
through SOAs.
Figure 3.13. A collection (layer) of services encapsulating business
process logic.
Contemporary SOA implements layers of abstraction.
o When applied through proper design, abstraction can be targeted at
business and application logic. For example, by establishing a layer
of endpoints that represent entire solutions and technology
platforms, all of the proprietary details associated with these
environments disappear (Figure 3.14). The only remaining concern
is the functionality offered via the service interfaces.
o Figure 3.14. Application logic created with proprietary technology
can be abstracted through a dedicated service layer.

Contemporary SOA promotes loose coupling throughout the


enterprise.
o By implementing standardized service abstraction layers, a loosely
coupled relationship also can be achieved between the business and
application technology domains of an enterprise (Figure 3.15). Each
end only requires an awareness of the other, therefore allowing
each domain to evolve more independently. The result is an
environment that can better accommodate business and
technology-related changea quality known as organizational agility.
o Figure 3.15. Through the implementation of service layers that
abstract business and application logic, the loose coupling paradigm
can be applied to the enterprise as a whole.
o

Contemporary SOA promotes organizational agility.


o By leveraging service business representation, service abstraction,
and the loose coupling between business and application logic
provided through the use of service layers, SOA offers the potential
to increase organizational agility (Figure 3.16).
o Figure 3.16. A loosely coupled relationship between business and
application technology allows each end to more efficiently respond
to changes in the other.
o Contemporary SOA is a building block.
o This past set of characteristics has further broadened our definition.
Let's append the definition with the following:
o SOA can establish an abstraction of business logic and technology
that may introduce changes to business process modeling and
technical architecture, resulting in a loose coupling between these
models. These changes foster service-orientation in support of a
service-oriented enterprise.

Contemporary SOA is an evolution.

SOA defines an architecture that is related to but still distinct from its
predecessors. It differs from traditional client-server and distributed
environments in that it is heavily influenced by the concepts and
principles associated with service-orientation and Web services. It is
similar to previous platforms in that it preserves the successful
characteristics of its predecessors and builds upon them with distinct
design patterns and a new technology set.
For example, SOA supports and promotes reuse, as well as the
componentization and distribution of application logic. These and other
established design principles that are commonplace in traditional
distributed environments are still very much a part of SOA.
o Contemporary SOA is still maturing.
Standards organizations and major software vendors have produced
many specifications to address a variety of supplementary
extensions. Additionally, the next generation of development tools
and application servers promises to support a great deal of these
new technologies. When SOA platforms and tools reach an adequate
level of maturity, the utilization of Web services can be extended to
support the creation of enterprise SOA solutions, making the ideal of
a service-oriented enterprise attainable.
o Contemporary SOA is an achievable ideal.
A standardized enterprise-wide adoption of SOA is a state to which
many organizations would like to fast-forward. The reality is that the
process of transitioning to this state demands an enormous amount
of effort, discipline, and, depending on the size of the organization,
a good amount of time. Every technical environment will undergo
changes during such a migration, and various parts of SOA will be
phased in at different stages and to varying extents. This will likely
result in countless hybrid architectures, consisting mostly of
distributed environments that are part legacy and part service-
oriented.

COMMON MISCONCEPTIONS ABOUT CONTEMPORARY SOA


Common misconceptions about contemporary SOA include: equating SOA
with just web services, believing it's a quick and easy implementation,
assuming it guarantees interoperability, considering it purely a technology
issue, and thinking it's a one-size-fits-all solution; in reality, SOA is a
broader architectural approach that requires careful planning, can involve
complex integrations with legacy systems, demands alignment with
business goals, and may not be suitable for every situation.
Key points about SOA misconceptions:
 SOA is not just Web Services:
While web services can be used to implement SOA, it's not limited to
them; SOA is a broader concept about service design and interaction.
 Implementation complexity:
Implementing SOA involves significant upfront planning, governance, and
potential system changes, making it a complex process.
 Interoperability challenges:
While promoting interoperability, SOA doesn't guarantee it; integrating
diverse systems and technologies can still be challenging.
 Beyond technology:
SOA is not just about technical architecture; it requires a cultural shift
within an organization to embrace service-oriented thinking and align IT
with business needs.
 Not for every scenario:
Depending on project scale and development speed, SOA might not be
the best fit.

THE COMMON TANGIBLE BENEFITS OF SERVICE-ORIENTED


ARCHITECTURE (SOA)
The common tangible benefits of Service-Oriented Architecture (SOA)
include: increased reusability of services, improved scalability by allowing
independent scaling of individual services, faster development time due to
reusable components, better interoperability between different systems,
reduced maintenance costs through modular design, and greater
flexibility to adapt to changing business needs; all contributing to
improved efficiency and cost savings for organizations.
Key points about SOA benefits:
 Reusability:
Services can be reused across multiple applications, reducing
development time and effort.
 Loose Coupling:
Individual services operate independently, allowing changes to one
service without impacting others, promoting flexibility.
 Scalability:
Each service can be scaled independently to meet specific demands,
enabling efficient handling of fluctuating workloads.
 Interoperability:
Services can communicate and exchange data regardless of their
underlying technology, facilitating integration between diverse systems.
 Faster Time to Market:
By leveraging reusable components, new applications can be developed
and deployed more quickly.
 Maintainability:
Smaller, independent services are easier to manage, update, and debug
compared to monolithic applications.

SOME COMMON PITFALLS OF ADOPTING SERVICE-ORIENTED


ARCHITECTURE (SOA)
Some common pitfalls of adopting Service-Oriented Architecture (SOA)
include:
 High investment: SOA can require a large initial investment.
 Performance issues: SOA can lead to performance issues due to high
overhead, heavy protocols, and a lack of scalability.
 Lack of interoperability: SOA can be limited by vendor proprietary
services, a lack of standards, and a lack of true interoperability.
 Complex service management: SOA can be complex to manage due to
the large number of messages exchanged between services.
 Building SOA like traditional distributed architecture: SOA should
not be built in the same way as traditional distributed solutions.
 Lack of service versioning: SOA transitions should be iterative and
include service versioning.
 Legacy modernization: Legacy systems should be carefully assessed
before modernization.
 Lack of SOA governance: SOA governance should be established.

You might also like