SOA Material
SOA Material
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.
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.
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.
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.
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.