Evolution of System Integration
Evolution of System Integration
Aim: to make possible for systems to integrate, while keeping them low
dependable from each other (to execute other tasks at the same time, to
integrate with other systems for the same needs, to make internal changes
without requiring changes of others, etc.)
What is evolution of SI about?
The more assumptions two parties make about each other (i.e.
higher coupling), the more efficient the communication can be, but
the less tolerant the solution is for changes because the parties are
tightly coupled to each other in some or even all aspects to the
below:
o Time – all the connecting apllications/systems have to be available at
the same time?
o Exchange protocol – it must match (example: https) for all the
connecting applications/systems?
o Data Format – the list of parameters and their types must match?
A View on the Integration Evolution
Functionality sharing.
Language/Platform independence
Separate components for
network and marshalling functions
IoSI
Improved, combined to…. SoSI
PoSI
*Serialisation of an object from the memory representation into the format suitable for transmission to
another system
Content
Data sharing and Sockets
Remote Procedure Calls (RPC)
Distributed Objects (DO) and Application Servers
Messaging (part II)
Data Sharing and Sockets
They encompass different methods for sharing data between
applications.
Applications started to share data long before they started sharing
functionalities.
Data integration approaches change/developed along three layers:
from OS layer, to databse layer, and to application layer.
There have been 3 significant methods for sharing data between
systems:
1. File(-based data) sharing (non real-time integration)
2. Common database (non real-time integration)
3. Sockets (real-time integration)
Real Vs. Non-Real Time Integration
1. Real-time integration refers to the processing of (ability to use) data as
soon as input data are created (received).
*each distinct pair of integrated applications (systems) involves a separate connection, i.e. point-to-
point link is a dedicated logical link that connects exactly two systems. A multipoint link is a link that
connects two or more systems.
2 - Common Database
In this method, one application writes data to a common database,
and another application reads the data from that database, using a
common database language (SQL)
The common (“shared”) database is typically placed on a separate
machine. System 1 System 2
Application A Application C
write read
Application B Application D
read read
Database
2 - Common Database
Method’s main advantages:
o It is a multipoint integration structure, and
o Use of relational databases as the storage (SQL is used by all, same
data format).
Disadvantages:
o Data is not shared in real time.
o A unified database schema is needed for all the involved applications.
o Bottlenecks due to database locks when a large number of
applications is involved.
o Not a suitable solution for large distance networks, for the
transmission’s performance reason.
3 - Sockets
To avoid problem of “stale” data, a real time connection was needed.
*An application programming interface (API) is a library including a set of functions enabling
connecting and integrating with a specific application software; such as Java’s “socket API”.
https://en.wikipedia.org/wiki/Network_socket
http://en.wikipedia.org/wiki/Port_number
https://docs.oracle.com/javase/tutorial/networking/sockets/definition.html
https://en.wikipedia.org/wiki/Application_programming_interface
(An API example)
3 - Sockets
Create a Socket Create a Socket
Disadvantages:
o Only data can be shared/integrated (not functionality)
o Socket programming is ”low-level”, i.e. difficult and not suitable for
integration of complex data.
o Different platforms have developed different ”socket” structures.
o The connection is point-to-point and both sides must have their
sockets opened (a tight coupling).
Data and File Sharing - Conclusion
The major drawback of the three methods at the time they were
proposed was the inability to share functionality.
Also, sockets have been the only method out of them enabling real time
connectivity.
function call
return
Network
Most of Internet’s main application protocols, including HTTP, SMTP, telnet, and
others use the client/server model. XML-RPC (http://en.wikipedia.org/wiki/XML-
RPC) is used as an alternative to SOAP and REST service protocols.
RPC in Details
RPC has introduced several core elements of the system integration
used in today’s solutions, such as:
o The declaration of the function interface.
the interface is defined in a specification file describing the input and output
parameters of a server function, which is exposed to the client.
o Marshaling and unmarshaling of parameters over network.
transforming the local memory representation (at the client or at the server) of a
function to a data format suitable for transmission, and vice-versa.
o RPC API to include the calls for network and application routines.
thus, the application programmer just needs to invoke the remote function, while the
library solves the transport over the network.
o RPC API has been supported by many programming languages.
RPC Process (Informative)
1. The server starts and registers a temporary port to listen for Client Server
incoming calls. Application Application
2. The client starts and it connects to the server (using its network
address and the port).
Client Server
3. Client calls client stub which does the conversion / packing of Routines Routines
parameters (marshaling).
4. RPC runtime library is invoked to send the packaged messages
over the network to the server machine.
Client stub Server stub
5. As the message is received on the server side, it is sent to the
server stub by the RPC runtime. RPC RPC
runtime runtime
6. The server stub unmarshals the input parameters and invokes
the requested (local) function call.
7. After the function is completed, the server stub marshals the
return value into one or more network messages.
8. Server’s RPC runtime sends the packaged return value via
network routines to the client.
Network Network
9. The client stub reads the message obtained from its network Routines Routines
kernel through the RPC runtime functions.
Conclusion
RPC has allowed for the first time real distributed computing (integration)
by allowing applications to share functionality.
In Java, it has been implemented through the RMI API*.
The method has also introduced several integration components used in
today’s integration solutions (such as “function interface”).
However, RPC has a number of shortcomings:
o RPC is not language independent, i.e. client and server must use a same language.
o Client-server calls are synchronous.
o The method is not scalable to a large number of remote calls due to their
synchronous nature (blocking of client&server).
o The integration is “point-to-point”, i.e. not efficient for a multi client-server
constellation.
*Compared to a function, an object is more complex: it encapsulates both
attributes (data) and behavior (functions)
Content
Data sharing and Sockets
Remote Procedure Calls (RPC)
Distributed Objects (DO) and Application Servers
Messaging (part II)
Distributed Objects (DO)
Based on the RPC solution, The method is proposed to solve major
shortcomings of the RPC, by:
o Enabling loose coupling between client and server, by separating the code for
marshaling and network communication. from the application into a standalone
software component (“middleware”)
o Enabling Language (Java, C++) and Platform (Windows, Unix) independence*.
o Enabling multipoint connection.
Application A Application B
Machine 1
ORB
network
ORB
Machine 2
Application C Application D
DO Process
1. When a client (i.e. object) wants to use the functions and the data of
another object (on the server), it first obtains a reference (address) to
the server object, through ORB. Server itself needs to register its
objects as through its ORB, using a well-defined object’s interface
2. On the client side, ORB accepts the parameters of the object function
being invoked and marshals them to the network. The ORB on the
server unmarshals parameters, passes them to the server object.
3. The server object returns the result through the same path.
DO Process (Informative)
Step 1
Client Server
object reference
ORB ORB
marshal unmarshal
ORBparameters parametersORB
Step 3
Client Server
unmarshal marshal
ORBreturn return ORB
ORB – Additional Services
Naming services – they allow DO to register and get located by name.
Life Cycle Services – they are responsible for creating and deleting DO
Application Servers (Informative)
Application servers are the tools (products) that realize the concept of the
distributed objects, i.e. ORBs.
A number of such products are available, such as:
o Microsoft COM++ (Visual Studio)
o IBM WebSphere
o BEA WebLogic Server
o JBoss, etc.
The backbone for these servers are CORBA, or DCOM, or Enterprise Java
Beans (EJB). All three use the ORB concept.
A conclusion: the distributed object approach to the integration has been a
big step forward – compared to RPC, it has enabled a more reusable, less
coupled, L/P independent communication between remote applications.
Questions?
To Answer
How RPC
What is integration
How tight is
coupling in approach
coupling in
the SI context works?
Data Sharing
about?
solutions?
How DO Benefits /
integration drawbacks of the
approach integration
works? approaches?
Tasks for the next session…