CC Unit-5
CC Unit-5
CC Unit-5
At the next level of granularity, high-level enterprise processes are broken down into sequences
of smaller processes, and also regrouped so as to be implemented in a set of applications. This
process results in application components: Each application component is a set of smaller
processes such that the information needs of this set is largely restricted to a cohesive set of data,
such as ‘customer data’ or ‘payments data.’
Service-Oriented Architecture (SOA) is an approach for application development. SOA is not a tool
or framework one can purchase but it is a flexible and modular approach for delivering computing
applications.
THE ARCHITECTURE
A model of the service-oriented architecture has been represented in Figure 12.2. With SOA
approach, the applications are built through a collection of services. A service is an independent entity
executing some functionality. The services communicate via message passing.
1. A service provider registers its services in the service registry managed by the
broker.
2. The service is registered accordingly in registry as per its category.
4. Service consumer binds itself to the service provider and uses the service.
BENEFITS OF SOA
SOA provides numerous benefits over traditional application-oriented architectural models. The benefits
of service-oriented architecture can be counted from two different viewpoints like architectural and
business.
Architectural Benefits
Flexibility: System functionalities often need to go through changes for betterment. In monolithic
application architecture, it is difficult to incorporate changes to meet new requirements. Changes can be
easily implemented in service-oriented application architecture which provides greater system flexibility.
Reusability: Services are reusable. It is not only in the sense that ‘write once integrate anywhere and
anytime’. Moreover, one cannot throw anything away when different functionality is needed as those
existing functionalities can be reused later.
Simpler integration: System integration is inevitable as multiple different solutions together may work in
a system. Service-oriented approach reduces the complexity of system integration as connectivity, data
exchange and process integration techniques are more simplified here. The adherence to the published
contracts of services also makes it easier for future applications to connect effortlessly with existing
standard-based services.
Maintainability: Service maintenance becomes easier when it can be done in isolation with help of
smaller teams. Thus the maintenance of independent services in SOA becomes less complicated and
incurs less cost.
Business Benefits
Agility: Service-orientated architecture is based on the assumption that system changes over time. Hence,
a well-designed SOA-based development protects a system from the impact of this evolution. The
flexibility of SOA enables a system to respond quickly to new requirements.
Cost reduction: Services once developed can be reused by disparate systems for different kind of
purposes
. Integration of services in a system is also easy. Therefore, the reuse of already existing assets (services)
makes it cheaper as reusability means lower development and testing cost.
Increase in quality: Reuse of a service by multiple consumers make a service well tested and flawless.
Its quality improves and thus SOA provides high performance and delivers good return-on-investment
(ROI).
Quicker release to market: Service-oriented approach takes lesser time for system development or even
for a system up-gradation. It thus makes the launch of a system quicker to market by diminishing the
development time.
Standardization: Services in SOA are generally developed following open standards. This
standardization makes services more vendor-independent and any kind of system can use a service as
long as it uses the proper (standard) service interface.
Application Integration and SOA
The decomposition of business components into application components that are closely tied to
subsets of Information is never exact and applications will often need to access data that is
owned by other applications.
There are a number of mechanisms that applications can use to communicate with each other at
different ‘levels’:
1. Data level integration: direct data transfer using batch programs or on-line exchange
using database triggers
2. API level integration: applications publish API libraries that are used by other
applications to access their data
3. Service-method-level integration: applications publish services using say, web service
protocols, in an organized manner so that many different applications can use a particular
service.
4. User interface level integration: applications publish mashup APIs that are used to
provide a common user interface to functionality from many applications.
5. Workflow level integration: tasks performed in one application lead to work items
being created in others, thereby driving the flow of work in a business process.
An EAI (enterprise application integration) strategy is usually an integral part of an
enterprise architecture definition. Application integration has come to become
synonymous with ‘service oriented architecture’ (SOA), and many of the features of
traditional EAI strategies have been reborn as ‘SOA strategies.’
The EAI/SOA process maintains a bridge between the ‘to be’ enterprise architecture
picture (which also evolves) and reality of systems as they are at any given point of time.
SOA Strategies:
(1) Wrap legacy systems with web services and call these from other applications
(2) Develop an enterprise service model with well-defined schemas for data exchange
(3) Develop new application components that publish and use service interfaces
(4) Develop a common user interface using enterprise mashups
(5) Replace legacy systems and application components while retaining the same service
interfaces without impacting users, and at a lower cost.
Enterprise Software:
Enterprise Softwares:
- Enterprise Resource Planning (ERP)
- Supply chain management (SCM)
- Customer relationship management (CRM)
The application (component) performs the following tasks: It maintains some information in a
data store, supports user interactions with this information through a presentation layer, and in
the process executes some business logic computations.
A rule system contains logical statements5 (i.e. rules) that may or may not become true when
evaluated against facts.
For example, the logic map in Figure 14.5 performs a billing function for one or more customer
records.