There are many factors to consider while while integrating applications. Some of them are

  • Synchronous versus asynchronous call : In Synchronous call when source application calls destination it waits till the destination system is done processing. If user interface is involved then user has to wait which may not be a pleasant experience. Also with synchronous calls if the destination is unavailable then source system may not function properly.
  • Timeliness : How soon the destination system see new data?   Or Is there a need to see data in the remote system in real time or can it be a day old?
  • Technology : Do we have SOAP or REST endpoints available for the desired functionality? Are we integrating with the legacy systems such as EDI using AS1, AS2 protocols? Technology being used for the integration dictates the protocol, message format and timing
  • Security : Security is one of the key consideration. Factors to consider are One way vs Two way TLS, authentication types.

 

Applications Integration topology

Point to point

  • Source and destination systems are directly connected.
  • Easy to implement
  • Difficult to onboard new end points
  • e.g. Web Service call

Hub and Spoke

  • Data flows through a core activity center
  • Single point of failure
  • Difficult to onboard new end points
  • e.g. ETL tools like Informatica, Talend

 

Enterprise Service Bus

  • Standard based
  • New endpoints can be integrated quickly.
  • Loosely coupled systems
  • Queuing and buffering
  • Fault tolerant system
  • Highly scalable
  • Advance functionality such as auto routing based on message content, plug and play model
  • e.g. MuleSoft, WebMethods, IBM Service Bus, Oracle Service Bus

Hub-Spoke and Enterprise Service Bus fall into Middleware category.Typical functionality includes

  • Extract – establishing connection to various databases on premises and cloud application
  • Data cleaning – data massaging, mapping, lookup
  • Business process management BPM – Message orchestration, notifications based on various criteria
  • Advance functionality auto routing based on message content, plug and play model
  • Transaction handling Support for ACID (atomicity, consistency, isolation, durability) properties
  • Queuing  Queuing and buffering support ACID properties.  Message gets queued so that if the destination is not available or too busy message can wait in the queue and can be processed when the destination is available.  It works in asynchronous messaging

Applications can be integrated in various ways

File export and import. The simplest form of integration is usually used when both the source and destination application can be accessed directly. If the destination application is not  accessible directly then files can be transferred via (S)FTP transfer with encryption like PGP etc.

  • Database :  Applications can be integrated using a shared database or making database calls directly if the source and destinations are on the same network
  • Remote procedure call : Call a integration interface on remote application via SOAP, REST etc.
  • Intermediary broker : The inter mediator broker can be central system or can be a messaging bus.

The remote procedure call is point-to-point call and the intermediary broker can be either hub and spoke model or Enterprise Service Bus.