Service-Oriented Architecture: Prof Ehab E. Hassanien Dr. Dina Ezzat
Service-Oriented Architecture: Prof Ehab E. Hassanien Dr. Dina Ezzat
Architecture
Prof Ehab E. Hassanien
Dr. Dina Ezzat
Integration
Integration
●
With separate applications that operate in their individual silos, it
becomes difficult to provide a consistent and unified view of the
functionality and data in an organization. Of course, large
organizations usually have a large number of applications, and the
problem becomes even harder for these large organizations.
●
In order to solve these problems, the applications must be able to
communicate with each other and be able to share functionality and
data with each other.
●
This sharing of data and functionality helps avoid duplicating data and
functionality and hence provides more consistent and unified data and
functionality to the end user.
●
Designing new applications or modifying existing applications
so that they are able to share data and functionalities is called
software integration.
Loose Coupling
●
Of all the concepts, the idea of loose coupling is the major
driving principle of the march toward SOA-type integration
patterns.
●
This drive for loose coupling has occurred because the number
and kinds of applications being integrated have progressively
become very large.
●
This requires integration patterns to minimize the effect on
other applications due to the changes made to one application.
●
However, the most important business reason for requiring
loose coupling is that businesses require agility to meet today’s
changing business needs.
Loose Vs. Tight Coupling
Interface and Payload Semantics
●
The interaction between a client application and a server application
usually results in the execution of a transaction or activity on the
server side. The client must specify the activity that needs to be
performed on the server side. This specification usually is done in
two different ways:
– The requested transaction or activity can be encoded in the
operation signature of the server component’s interface, or
– it can be embedded in the message itself.
●
In the first case, the requested transaction or activity is specified by
using a self-descriptive function/method name such as
updateBalance() or retrieveBalance().
●
This is referred to as interface semantics and is common in RPC-style
interfaces. The next Figure shows this kind of semantics in a
schematic manner.
Interface Semantics in RPC-style
Interface and Payload Semantics
●
In the second case, the transaction or activity to be
performed is embedded directly in the message. This is
usually done in two ways. The name of the operation/activity
can be included in the header of the message, if the
underlying MOM provides such a field as part of the message
header.
●
Alternatively, the name of the activity/operation can be part
of the application-specific payload. This we refer to as
payload semantics.
– Payload semantics is common when MOMs are employed. These
MOMs provide a generic API with functions such as MQGET() and
MQPUT(). The semantics of these functions is purely technical.
Payload semantics in which the remote functionality
required is encodedin the message
Sockets and Data Sharing
The three significant methods of sharing data
between applications are
1) File-based data sharing,
2) Common database,
3) Sockets.
File-Based Data Sharing