0% found this document useful (0 votes)
21 views

Chapter 1 Introduction

Integrative Programming Lesson

Uploaded by

loanaiveannafay
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
21 views

Chapter 1 Introduction

Integrative Programming Lesson

Uploaded by

loanaiveannafay
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

Chapter 1: Introduction to Integrative Programming Prepared by: Anna Fay E.

Naïve, MIT

Intended Learning Outcomes (ILO):


1. Describe and contrast the different types of architectures for integrating systems
2. Describe how web services are used to integrate disparate applications in an organization
3. Transfer or upload a website from the local host server to live server using a free hosting.

Content

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.

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.

 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

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.

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

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.

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

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.

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.

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

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-andforward process may be repeated many times, as the message is moved from one computer to another,
until it reaches the receiver’s computer.

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

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.

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

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?

End Note
Hi there! Have already created a quiz in Edmodo the same questions with the Review Question above. Please answer the Review
Questions in Edmodo. Should you have concerns, feel free to send me a message in Edmodo or in our group chat! 

You might also like