Integration Strategies
Data-level
- Share data; not behaviour
- Minimal change (if any) to both source and target systems
- Can be database or file-based
- ETL
- File-data transfer
- Direct database access
- Bypass business logic (may need to duplicate)
- Overall data integrity may be compromised
- If writable, may lead to data corruption and referential integrity violations
- Capabilities include
- Data transformation
- Data validation
- Data access
- Schema definition
- Mapping
- Schema recognition
Application-level
- Share functionality – business logic
- Based on API
- Composite applications
Business Process level
- Share business processes
- Specified using BPMN
- Glued together using BPEL(4WS) and BPML
- Start by defining business processes; then specify logical integration within it
- Capabilities include:
- Rules processing
- Business transaction management
- Workflow
- Orchestration
- Event processing
- Schedule
Presentation
- Share views
- Using a portal
- Non-invasive
Application Integration methods
- Web services - Application integration
- ETL
- Data integration
- Consolidation of multiple data sources
- Communication message protocol - E.g. HTTP, TCP/IP, FTP
- Screen-scraping
- Program calls - Application integration
- Direct data access - Data integration
- File transfer - Unidirectional batch file transfer
- Human intervention
Enterprise Integration Patterns
Deciding factors
- Application coupling
- Intrusiveness
- Technology selection
- Data format
- Data timeliness – Latency
- Data or functionality required
- Remote communication – synchronous or asynchronous
- Reliability
Order is in increasing sophistication and complexity
- File transfer –
- Simplicity, applications are decoupled (availability does not matter), platform and implementation independence
- lacks timeliness (data integrity caused by stale data); may have data semantic dissonance; huge dataset duplicated
- Shared database –
- enforce agreed upon data format and allow speedy implementation, no semantic dissonance; no data replication; more timely
- difficult to design shared schema; maybe dependent on software upgrade; allowing writes may cause deadlocks; may result in performance issue; applications are coupled to shared database; no collaboration
- Remote procedure invocation –
- shared functionality, maintain data integrity, no semantic dissonance
- tight coupling between applications (availability matters), prone to failure & difficult to maintain without management infrastructure
- Messaging –
- frequent exchanges of small messages, storage schema can be changed, asynchronous with retries; less decoupled than remote procedure; more reliable
- semantic dissonance still occurs; difficult to test & debug
Integration Styles and Strategies
These are the few integration styles that are widely used.
When deciding the appropriate style to use, always consider the pros and the cons based on the various criteria. The implication is this: one size doesn't fit all.
The following table summarises the points for consideration:
| File Transfer | Maintain Data Copies | Shared Database | Remote Invocation | Messaging | UI Integration |
Complexity | low | medium | medium | high | high | medium |
Effort to implement | medium | low | low | high | high | low |
Data timeliness (latency tolerance) | low | low | high | high | medium | high |
Application coupling | low | medium | high | high | low | medium |
Push vs. pull | push | pull | pull | push | push | pull |
Intrusiveness | low | low | medium | high | medium | medium |
Testing ease | easy | easy | medium | medium | difficult | easy |
Performance | separate resources | separate resources | deadlock due to sharing | resource needs to be available | separate resources | resource needs to be available |
Share data/ functionality | data | data | data | functionality | functionality | functionality |
Synchrony | asynch | asynch | asynch | synch | asynch | synch |
Integration reliability | medium | medium | high (dependent on database) | low | high (dependent on message bus) | medium |
Encapsulation | high | medium | low | high | high | low |
Extensible functionality | medium | high | high | low | low | low |
Dataset size catered to | big | big | big | small | small | small |
Dataset volume transferred | medium | high | low | low | medium | medium |
Data integrity | medium | medium | low (if writable) | high | high | high |
Implementation | CSV, XML, Fixed width files | SSIS, DTS, ETL, SqlLoad | PL/SQL, T-SQL, W3C web service, .NET remoting, EJB, RMI | MSMQ, JMS, MQ | WebPart, Portlet, WRPS |
Comments