WELCOME Abdennour : Software engineer

Nov 15, 2012

introduction to Integration and Spring Integration

Integration?
Integration
 means connecting computer systems, companies, and people .

Older solutions used platform agnostic RPC like CORBA and Oracle (formerly BEA’s) Tuxedo to integrate. 

What pb solved by Integration?
   -horizontal problem of integrating data and services between disparate(heterogeneous) applications across the enterprise. 
Frameworks of Integration:
 integration frameworks like Apache Camel and Spring Integration 

Integration Target :
  Enterprise Application Integration (EAI)

Integration product : 

webMethods,Tibco, BusinessWare ( Vitria ) ,M3O(Vitria),IBM MQSeries , SonicMQ ,Axway Integrator ,Oracle SOA Suite(he message broker and application server from WebLogic and the message router from BEA AquaLogic.),Microsoft BizTalk

Challenge of integration :
The challenge of integration is to enable applications to share functionality and data in real time without
tightly coupling the systems together in a way that introduces reliability issues in terms of application
execution and application development.

EAI Goal :
 EAI seeks to simplify and automate business processes without requiring comprehensive changes to the existing applications and data structures.



Integration Approaches : 


     1.file transfer, :good but has performances issues
     2.sharing a database,: it's single for many
     3.leveraging services : are slower and have the potential to fail.
    4.  asynchronous messaging: Messaging is an approach to transfer packets of data frequently, immediately, reliably, and asynchronously using a customizable format.

Benefits of Messaging : 

    1.Messages can be transformed in transit without either the sender or receiver knowing about the modification. 
    2.Both data and processes may be shared using messaging. 
    3. Message may be broadcasted to multiple receivers or directed at one of many receivers.             
    4.Messaging meets the needs for integration scalability and extensibility.
    5.Messaging decouples the producer and the consumer—they don’t need to know about when the other is available, nor do the producer and the consumer need to be aware of the other’s public interface or its speed.


Two approaches to communicating data across systems(obtaining data):

1)a pull system :the client needs to ask for the information . (traditional approach)
     Tools:a database query, a remote procedure call, or a web service ...

2) a push system :the remote system needs to send the data when something has changed .
==>Integrations are often point-to-point(where any interested party needs to know how to speak to any other system directly to obtain a result. )


Q:how much different connections are required for any number of partners in a system that need to communicate with each other using point-to-point communication?

A:n(n − 1)/2 – where n is the number of connected nodes–can yield some very scary results

=>We need EDA for messaging (consumption of events as messages).

What's EDA?
- Where information is published as events (in messages) as soon as data is available.

-EDA is an architecture where events are transmitted between loosely coupled software components and services.

Event Driven Architecture:

-Event Driven Architecture (EDA) is a software architecture pattern promoting the production,
detection, and/or consumption of events as messages

Advantges : 
   
an event-based architecture allows these applications and systems to be more responsive


-SEDA(staged EDA) =thread and event+based approach. 
   -build a system that can support massive concurrency without incurring many of the issues involved
   -Hypothese : The basic premise is to break the application logic into a series of stages connected by
event queues.

Types of coupling approches to integration & architecture Application : 

Three types of coupling approches to integration & architecture Application : 
    1.Spatial coupling (communication): 

    2.Temporal coupling(buffering): 

    3.Logical coupling (routing):

EAI Architecture:

-EAI moved to message brokers.
-The connection to the disparate applications was done using an adapter to convert the application protocol to something the message broker would understand. 

-the adapter software was usually run inside of some sort of container.
=> provide basic application support as configuration and lifecycle ....

-Eventually, the application servers and adapter containers merged together 


Enterprise service bus (ESB):
- a lightweight adapter container with message routing capabilities based on open standards


    EBS provides : 
           -Server features
                  + 
            -ready-to-go routing and integration technologies.


*Integration Server:
 -provides a platform to integration between companies over the Internet.
 - Essentially an HTTP server on steroids, the Integration Server was developed to support B2B integration.
 - support for EDI and custom XML messages, and its own process flow language.


EAI Patterns :

Three basic patterns  when implementing integrations for enterprise customers



  1-data synchronization, 

 -used when business processes in different parts of an organization require access to the same data.
-each application has its own technology stack

Integration Approch : using a message-based system to move the data records inside the messages.
 -How detect the Creation or the Update of record ? =>By DB Trigger ,Hook or Façade


  2-Web portals


-Web portals aggregate information from several different data sources into a single display without requiring the user to log in into the different applications supporting the various business areas.
-Used to get a general overview of the entire organization. 


  3-workflow system. 

-Used when  A business process can span multiple business areas and systems within an organization, and may require both automatic agents and human actors to complete successfully.

-workflow engines(which represent a process flow) : BPEL, BPMN....

-integrating the workflow process with the different applications using an integration framework .







Popular open source integration frameworks:
1.Mule ESB
2.Apache Service Mix

Four  integration approaches:
• Mule provides a lightweight container and leverages a simple XML configuration file and Plain Old Java Objects (POJOs).
• ServiceMix is based on the Java Business Integration (JBI) standard and now  supports OSGI.
• OpenESB is  the integration offering from Oracle based on the JBI and J2EE standards. OpenESB live in a J2EE application server like GlassFish.
•  the do-it-yourself (DIY) approach. J2EE does provide the  necessary support to implement integration, including the J2EE Connector Architecture (JCA). JCA is the J2EE framework for creating resource adapters (RAs) for connecting with external applications and systems.

Note : 
Camel, Mule, and ServiceMix all support the Spring Framework as a component model .



2.ServiceMiX :

>ServiceMix is a standalone JBI container
>engine Camel support.
(Camel :allows simple configuration of routing and mediation rules. )
>All components deployed to ServiceMix must follow either

the JBI(Messaging in XML Format) or OSGi standard. 
>ActiveMQ is included for remoting, clustering,reliability, and distributed failover.



References :

Spring Integration

1 comment: