Integrative Programming and Technologies Chapter-1
Integrative Programming and Technologies Chapter-1
of Computing Technology 1
Chapter One
Introduction to Integrative Contents
Programming &
Technologies
1. Introduction
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
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.
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.
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.
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.
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.
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.4. 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.
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:
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.
1.6.1. Middleware
Middleware
CORBA architecture
1.6.2.2.DCOM
Review Questions
3) Describe interoperability?
5) Describe the difference between CORBA and RMI or remote method invocation?
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?
-------------~~~~~-------------