You are on page 1of 14

Aksum University Dept.

of Computing Technology  1

Chapter One
Introduction to Integrative
Programming & Contents
Technologies

 Introduction, integrative programming and integration


techniques, methods and models used in enterprise
application integration, the need for application integration
and challenges in integration.

1. Introduction

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.

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.

Integrative Programming and Technologies, Chapter-1.


Tsehay.A
2ksum University Dept.of Computing Technology 

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.

1.1.Overview of inter system 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.
 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.

Integrative Programming and Technologies, Chapter-1.


Tsehay.A
Aksum University Dept.of Computing Technology  3

 Modification

Sometimes an existing and properly functioning software system must be


decomposed and integrated to carry out modification.
1.2.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.
 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

Integrative Programming and Technologies, Chapter-1.


Tsehay.A
4ksum University Dept.of Computing Technology 

1.3.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 and
 Function integration
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.

1.4.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.

Integrative Programming and Technologies, Chapter-1.


Tsehay.A
Aksum University Dept.of Computing Technology  5

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

Integrative Programming and Technologies, Chapter-1.


Tsehay.A
6ksum University Dept.of Computing Technology 

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.

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.

1.5.Integrative Technologies/methods for 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.
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 Programming and Technologies, Chapter-1.


Tsehay.A
Aksum University Dept.of Computing Technology  7

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.

1.5.1. 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.

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

Integrative Programming and Technologies, Chapter-1.


Tsehay.A
8ksum University Dept.of Computing Technology 

1.5.2. 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.

Figure 2 Shared data

Integrative Programming and Technologies, Chapter-1.


Tsehay.A
Aksum University Dept.of Computing Technology  9

1.5.3. Remote procedure calls

This method develops each application which is required to be integrated as a largescale


object or component with encapsulated data. And it provides an interface to allow other
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.

Figure 3 Remote procedure calls

Integrative Programming and Technologies, Chapter-1.


Tsehay.A
10sum University Dept.of Computing Technology 

1.5.4. 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).

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.

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.

Integrative Programming and Technologies, Chapter-1.


Tsehay.A
Aksum University Dept.of Computing Technology  11

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

Figure 4 Message Transmissions Step-by-step

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

Integrative Programming and Technologies, Chapter-1.


Tsehay.A
12sum University Dept.of Computing Technology 

1.6. Middleware and Integrative architectures

1.6.1. Middleware

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

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.
1.6.2. 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.

Integrative Programming and Technologies, Chapter-1.


Tsehay.A
Aksum University Dept.of Computing Technology  13

1.6.2.1.Common Object Request Broker Architecture

CORBA 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 heterogenous environment,
where objects can be implemented in different programming language and/or deployed on
different platforms.

CORBA architecture
1.6.2.2.DCOM

Distributed component object model- 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.

Integrative Programming and Technologies, Chapter-1.


Tsehay.A
14sum University Dept.of Computing Technology 

Review Questions

1) Define integrative programming?

2) Explain the architectures used in application integration?

3) Describe interoperability?

4) What are the challenges in application integration describe the solutions to


overcome the challenges?

5) Describe the difference between CORBA and RMI or remote method invocation?

6) Explain integrative technologies or methods used in application integration?

7) What is the difference between data level and function level integration model?
Which model is more complex and why?

8) What is heterogeneity?

9) Describe different types of middleware and describe how the middleware solves
problem of heterogeneity?

-------------~~~~~-------------

Integrative Programming and Technologies, Chapter-1.


Tsehay.A

You might also like