100% found this document useful (3 votes)
1K views42 pages

L1 - Inter-Systems Communication

This document provides an introduction to integrative programming and technologies. It discusses what integrative programming is, overview of inter-system communication, integration models including presentation, data and functional integration. It also covers fundamental challenges in integration such as network unreliability, distributed systems, slow networks, and heterogeneity between different applications. The need for integration is explained as organizations need to integrate different departmental applications to achieve overall business objectives.

Uploaded by

Aaron Jude Pael
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
100% found this document useful (3 votes)
1K views42 pages

L1 - Inter-Systems Communication

This document provides an introduction to integrative programming and technologies. It discusses what integrative programming is, overview of inter-system communication, integration models including presentation, data and functional integration. It also covers fundamental challenges in integration such as network unreliability, distributed systems, slow networks, and heterogeneity between different applications. The need for integration is explained as organizations need to integrate different departmental applications to achieve overall business objectives.

Uploaded by

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

CCIS DEPARTMENT

IT 205 – INTEGRATIVE
PROGRAMMING & TECHNOLOGIES 1
Integrative
Chapter
Programming and the
1 Inter-systems
Communication
IT 205: Integrative Programming
Technologies
In this chapter, you will be able to know:
 What is Integrative Programming
 Overview of Inter-systems Communication
 Integration Models
 Fundamental challenges in integration
 Integrative technologies/methods of integration
 Middleware and Integrative architectures
Introduction to Integrative
Programming and Technologies
Definition: Integration of software refers to techniques for combining
existing software components to form a complete system. However, the
software integration includes at least one existing software system,
developed in the past with no plan for its symmetric integration with another
component in the future.
Integrative programming deals with an integration approaches and
techniques that connect different components of IT infrastructure- people,
applications, platforms and databases to enable a secure, intra and inter
application collaboration. Integrative solutions enable an organization to
integrate business processes internally and externally with business
partners to create dynamic environments that supports current and evolving
business requirements, thereby creating a global organization.
Introduction to Integrative
Programming and Technologies
Application integration assists in unlimited sharing of data and
business processes among any connected applications or data sources in
without making major changes to the applications or data structures. Hence,
integration is the process of connecting multiple, independently developed
applications using incompatible technologies into a single organization wide
system with information flowing seamlessly among the integrated systems or
components.
Most of the applications that run in organizations’ hardly live in
isolation. Whether the registrar application must interface with the finance
application, the human resource management application must connect to
each other, it seems like any application can be made better by integrating it
with other applications.
Introduction to Integrative
Programming and Technologies
Integration of multiple, independently developed, managed and
maintained applications components that may normally use incompatible
technologies and heterogeneous platforms” enables transmission of
information between applications, automates flow of data between
applications that make up the business process flow.

Integration is the process of combining separate applications into


cooperating collections of application.
Overview of Inter-systems
Communication
Inter-system communication is the communication between a set of
heterogeneous systems that are integrated together. These integrated
systems which put together many heterogeneous set of subsystems and the
produced objects are extremely different, yet should contribute to the same
process. Software integration includes one or more of the following.
• System integration
Given two or more systems, subsystems or components, each of
which function properly (satisfying their requirement within their
environment). The problem is to integrate them into one larger system
satisfying the combined requirements within the newly formed environment.
Overview of Inter-systems
Communication
• Functional integration or technology integration
Given a software system, this may have been functioning properly in
the field for a significant period. The problem is to integrate a new function or
a new technology within the system. The integrated system should provide
the new functionality or use the new technology, while preserving the original
system functionality.
• Incremental engineering
A software system can be developed and delivered using available
technologies and with less functionality than it is intended to finally provide.
New technologies and or more functions then can be integrated within the
system. The problem is to design the system with such future integration in
mind.
Overview of Inter-systems
Communication
• Modification
Sometimes an existing and properly functioning software system must
be decomposed and integrated to carry out modification.
The Need for Integration
Most of organizations consist of more than one department, running
department specific applications and those applications interact with each
other to achieve the overall objective of the organizations.
Information systems change overtime by growing in their size,
incorporating functionality of the existing standalone systems. Applications
originally intended to operate separately, later on are required to
interoperate with others. Some of the reasons for integration are the
following;
• Technology change affects all layers; legacy does not go away so
easily.
• The architecture of the organization information system depends on
constraints related to the technology but also to the organization.
The Need for Integration
• Within an enterprise, each department may have its own IT
infrastructure, systems and databases which are maintained
independently. Integrating them may bring additional value to the
company.
• Integration assists in formation of Zero Latency organization - when all
functions within the organization work with the same up-to-date
information, latency between applications is eliminated/ reduced.
• Updating and integrating of applications is possible whenever
required. New applications can be created by integrating real time
data from different parts of the enterprise.
Integration Models
Integration model defines how applications will be integrated by
defining the nature of and mechanisms for integration. Some of the methods
used for application integration are discussed in the following section. These
models include;
• Presentation integration

• Data integration

• Function integration
Integration Models
1. Presentation integration model allows the integration of new software
through the existing presentations of the legacy software. This is typically
used to create a new user interface but may be used to integrate with
other applications.
2. Data integration model allows the integration of software through
access to the data that is created, managed and stored by the software
typically for the purposes of reusing or synchronizing data across
applications.
3. Functional integration model allows the integration of software for the
purpose of invoking existing functionality from other new or existing
applications. The integration is done through interfaces to the software.
Fundamental Challenges of
Integration
To support common business processes and data sharing across
applications, these applications need to be integrated. Application integration
needs to provide efficient, reliable and secure data exchange between
multiple enterprises applications.

A lot of the problems to be addressed in Organizations Application


Integration system from having to integrate standalone applications which
have been developed independently, operate autonomously, and were not
originally indented to be integrated with one another.
Fundamental Challenges of
Integration
Integration of applications, developed by different languages and
running on different computing platforms is not an easy task. By definition,
integration has to deal with multiple applications running on multiple
platforms in different locations, making the term ‘simple integration’ pretty
much difficult. Software vendors offer application integration suites that
provide cross-platform, cross-language integration as well as the ability to
interface with many popular packaged business applications.
Fundamental Challenges of
Integration
However, this technical infrastructure presents only a small portion of
the integration complexities. The true challenges of integration span far
across business and technical issues. All integration solutions have to deal
with a few fundamental challenges: some of the challenges of integration
are;
• Network unreliability
• Distributed systems
• Slow networks and
• Heterogeneity
• Modification complexity
Fundamental Challenges of
Integration
1. Network is unreliable. Integration solutions have to transport data from
one computer to another across networks. Compared to a process
running on a single computer, distributed computing has to be prepared
to deal with a much larger set of possible problems. Often times, two
systems to be integrated are separated by continents and data between
them has to travel through phone-lines, LAN segments, routers,
switches, public networks, and satellite links. Each of these steps can
cause delays or interruptions.
Fundamental Challenges of
Integration
2. Distributed – in the worst case, every application runs on a completely
separate environment, e.g., database storage is not shared among
applications. Message- based communication is the only possibility to
exchange information.
3. Networks are slow. Sending data across a network is multiple orders of
magnitude slower than making a local method call. Designing a widely
distributed solution the same way you would approach a single
application could have disastrous performance implications.
Fundamental Challenges of
Integration
4. Any two applications are different. Integration solutions need to
transmit information between systems that use different programming
languages, operating platforms, and data formats. An integration solution
needs to be able to interface with all these different technologies.

Heterogeneous – each application implements its own data model.


Concepts may be shared, but representation mismatches are to be
expected. Mappings and transformations are required.
Fundamental Challenges of
Integration
5. Change is inevitable. Applications change over time. An integration
solution has to keep pace with changes in the applications it connects.
Integration solutions can easily get caught in an avalanche effect of
changes – if one system changes, all other systems may be affected. An
integration solution needs to minimize the dependencies from one
system to another by using loose coupling between applications.

Autonomous – applications update their state independently without


coordinating with each other. The systems to be integrated are
maintained independently and upgraded at different times.
Integrative Technologies/Methods of
Integration
Application integration is an integration framework composed of a
collection of technologies and services which form a middleware or
"middleware framework" to enable integration of systems and applications
across organizations. There are four methods used in application
integration, which are discussed in the section below:
1. File Transfer - one application writes a file that another later reads. The
applications need to agree on the filename and location, the format of the
file, the timing of when it will be written and read, and who will delete the
file.
Integrative Technologies/Methods of
Integration
2. Shared Database - multiple applications share the same database
schema, located in a single physical database. Because there is no
duplicate data storage, no data has to be transferred from one
application to the other.
3. Remote Procedure Invocation - one application exposes some of its
functionality so that it can be accessed remotely by other applications as
a remote procedure. The communication occurs real-time and
synchronously.
Integrative Technologies/Methods of
Integration
4. Messaging - one application publishes a message to a common
message channel. Other applications can read the message from the
channel at a later time. The applications must agree on a channel as well
as the format of the message. The communication is asynchronous. All
of the four approaches solve essentially the same problem in integration;
each style has its distinct advantages and disadvantages. In fact,
applications may integrate using multiple styles such that each point of
integration takes advantage of the style that suits it best.
File Transfer
An organization naturally, runs multiple applications that are being
built independently, with different languages and platforms. How can we
integrate multiple applications so that they work together and can exchange
information and interact with each other? The answer for this question is
given below;
One of the possible solutions to allow these applications to be
integrated is allowing each application produce files containing information
that other applications need to consume. Integrators take the responsibility
of transforming files into different formats. Produce the files at regular
intervals according to the nature of the business, which can be consumed or
read by another file.
File Transfer
An important decision with files is what format to use. Very rarely will
the output of one application be exactly what's needed for another, so you'll
have to do a fair bit of processing of files along the way. Not just do all the
applications that use a file have to read it, you also have to be able to use
processing tools on it.

Figure 1 File Transfer Method


Shared Database
A common data base can be used for integrating applications. A single
physical data base can be shared by different applications running on
different platforms. This method integrates applications by having them store
their data in a single shared database.

If a family of integrated applications all rely on the same database,


then we can be pretty sure that they are always consistent all of the time. If
we do get simultaneous updates to a single piece of data from different
sources, then we have transaction management systems that handle that
about as gracefully as it ever can be managed.
Shared Database

Figure 2 Shared Database


Remote procedure calls
This method develops each application which is required to be
integrated as a large-scale object or component with encapsulated data. And
it provides an interface to allow there applications to interact with the running
application.

Remote Procedure Invocation applies the principle of encapsulation to


integrating applications. If an application needs some information that is
owned by another application, it asks that application directly. If one
application needs to modify the data of another, then it does so by making a
call to the other application. Each application can maintain the integrity of
the data it owns. Furthermore, each application can alter its internal data
without having every other application be affected.
Remote procedure calls

Figure 3 Remote procedure calls


Messaging
Messaging allows interaction between applications possible. Message
passing can be used to transfer packets of data frequently, immediately,
reliably, and asynchronously, or synchronously using customizable formats.

Asynchronous messaging is fundamentally a practical reaction to the


problems of distributed systems. Sending a message does not require both
systems to be up and ready at the same time. Furthermore, thinking about
the communication in an asynchronous manner forces developers to
recognize that working with a remote application is slower, which
encourages design of components with high cohesion (lots of work locally)
and low adhesion (selective work remotely).
Messaging
The reason a messaging system is needed to move messages from
one computer to another is that computers and the networks that connect
them are inherently unreliable. Just because one application is ready to
send a communication does not mean that the other application is ready to
receive it. Even if both applications are ready, the network may not be
working, or may fail to transmit the data properly. A messaging system
overcomes these limitations by repeatedly trying to transmit the message
until it succeeds. Under ideal circumstances, the message is transmitted
successfully on the first try, but circumstances are often not ideal.
Messaging
In essence, a message is transmitted in five steps:
1. Create - the sender creates the message and populates it with data.

2. Send - the sender adds the message to a channel.

3. Deliver - the messaging system moves the message from the sender’s
computer to the receiver’s computer, making it available to the receiver.

4. Receive - the receiver reads the message from the channel.

5. Process - the receiver extracts the data from the message.


Messaging
This diagram illustrates these five transmission steps, which computer
performs each and which steps involve the messaging system:

Figure 4 Message Transmission Step-by-Step


Messaging
This diagram also illustrates two important messaging concepts:
1. Send and forget - in step 2, the sending application sends the message
to the message channel. Once that send is complete, the sender can go
on to other work while the messaging system transmits the message in
the background. The sender can be confident that the receiver will
eventually receive the message and does not have to wait until that
happens.
Messaging
2. Store and forward - in step 2, when the sending application sends the
message to the message channel, the messaging system stores the
message on the sender’s computer, either in memory or on disk. In step
3, the messaging system delivers the message by forwarding it from the
sender’s computer to the receiver’s computer, and then stores the
message once again on the receiver’s computer. This store-and-forward
process may be repeated many times, as the message is moved from
one computer to another, until it reaches the receiver’s computer
Middleware and Integrative
Architectures
1. Middleware is a software programming running at the top of operating
system and below the applications. It connects applications or software
components. Middleware provides a standard high level interface to the
application developers and integrators, so that application can easily
interoperate.

Interoperability is the ability of two or more components or systems to


exchange information.
Middleware and Integrative
Architectures

Middleware
Middleware and Integrative
Architectures
There are three types of middleware. These are, transaction-oriented,
object-oriented and message oriented middleware.
1. Transaction-oriented middleware: supports distributed computing
involving database applications.
2. Message-oriented middleware: supports reliable, asynchronous
communications between distributed components or applications.
3. Object-oriented middleware: systems are based on object-oriented
paradigm, and primarily support synchronous communications between
distributed objects or software components. Examples are CORBA,
DCOM and RMI.
Middleware and Integrative
Architectures
Integrative Architectures are the standard methodologies for
application integration. These architectures include, CORBA, DCOM and
RPC. The architectures act as a middleware, a software application that
mediates between different applications.
 Common Object Request Broker Architecture (COBRA) is a
software standard that is defined and maintained by the Object
Management Group (OMG). The Common Object Request Broker
Architecture(CORBA) is a standard architecture for a distributed
objects system. CORBA is designed to allow distributed objects to
interoperate in a heterogeneous environment, where objects can be
implemented in different programming language and/or deployed on
different platforms.
Middleware and Integrative
Architectures

COBRA Architecture
Middleware and Integrative
Architectures
 Distributed component object model (DCOM) extends the COM to
support communication between objects. DCOM is a software
architecture or remote protocol that defines a binary standard for
component interoperability.
DCOM is a software architecture that allows applications to be built
from binary software components. Is binary interface standard for
software components, that allows inter-process communication.
Binary interface is a program interface between binary program
modules often one of the module is library or operating system and
the other is user program module. Defines how computational routines
are called in machine code or low-level which is hardware
independent.

You might also like