Course Content Introduction Integrative programming and integration techniques Methods and models used in enterprise application integration The need for application integration Challenges in integration.
Integration of Software refers to techniques for combining existing software components to form a complete system. 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 to enable a secure, intra and inter application collaboration that connect different components of IT infrastructure such as: People applications platforms and databases
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.
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.
1.1.Overview of inter system communication Inter-system communication is the communication between a set of heterogeneous systems that are integrated together.
System integration Given two or more systems, subsystems or components, each of which function properly (satisfying their requirement within their 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.
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.
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. Methods used for application integration Presentation integration Data integration and Function integration
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.
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.
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 Some of the challenges of integration are; Network unreliability Distributed systems Slow networks and Heterogeneity Modification complexity
Network is unreliable Integration solutions have to transport data from one computer to another across networks. 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.
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.
Networks are slow Sending data across a network is multiple orders of magnitude slower than making a local method call.
Any two applications are different Integration solutions need to transmit information between systems that use different programming languages, operating platforms, and data formats.
Heterogeneous each application implements its own data model. Concepts may be shared, but representation mismatches are to be expected. Mappings and transformations are required.
Change is inevitable Applications change over time. An integration solution has to keep pace with changes in the applications it connects. 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 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. Shared Database - multiple applications share the same database schema, located in a single physical database. Remote Procedure Invocation- one application exposes some of its functionality so that it can be accessed remotely by other applications as a remote procedure. Messaging - one application publishes a message to a common message channel.
1.5.1.File transfer How can we integrate multiple applications so that they work together and can exchange information and interact with each other ?
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.
Message is transmitted in five steps: Create — the sender creates the message and populates it with data. Send — the sender adds the message to a channel. Deliver — the messaging system moves the message from the sender’s computer to the receiver’s computer, making it available to the receiver. Receive — the receiver reads the message from the channel. 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: Figure 4 Message Transmissions Step-by-step
Two important messaging concepts: 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.
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. Middleware and Integrative architectures Middleware is a software programming running at the top of operating system and below the applications. It connects applications or software components. 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 Transaction-oriented middleware - supports distributed computing involving database applications. Message-oriented middleware : supports reliable, asynchronous communications between distributed components or applications . 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.
Integrative architectures 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 CORBA is a software standard that is defined and maintained by the Object Management Group (OMG ). is a standard architecture for a distributed objects system. 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 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.
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 .