tanszek:oktatas:iss_t:software_integration
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| tanszek:oktatas:iss_t:software_integration [2026/02/15 22:07] – [Limitations of File-Based Integration] knehez | tanszek:oktatas:iss_t:software_integration [2026/02/15 22:18] (current) – [Data Sharing] knehez | ||
|---|---|---|---|
| Line 208: | Line 208: | ||
| ===== Data Sharing ===== | ===== Data Sharing ===== | ||
| - | A simple approach to integration is data sharing. | + | A simple approach to integration is data sharing. Data sharing–based integration aims to transfer and share data between systems. This enables individual systems to access and utilize data stored in other systems. |
| - | + | ||
| - | Data sharing–based integration aims to transfer and share data between systems. | + | |
| - | This enables individual systems to access and utilize data stored in other systems. | + | |
| Data sharing can take several forms: | Data sharing can take several forms: | ||
| Line 222: | Line 219: | ||
| ===== File-Based Data Sharing ===== | ===== File-Based Data Sharing ===== | ||
| - | The most fundamental method of data sharing. | + | The most fundamental method of data sharing. One application writes data, while another application reads data from the same file. The data files are stored in a central location — such as a shared folder (e.g., NFS) or an (S)FTP server. The information flow is unidirectional: |
| - | + | ||
| - | One application writes data, while another application reads data from the same file. | + | |
| - | + | ||
| - | The data files are stored in a central location — such as a shared folder (e.g., NFS) | + | |
| - | or an (S)FTP server. | + | |
| - | + | ||
| - | The information flow is unidirectional: | + | |
| Line 354: | Line 344: | ||
| to access and manage data. | to access and manage data. | ||
| + | < | ||
| + | flowchart LR | ||
| + | |||
| + | A[Application A] | ||
| + | B[Application B] | ||
| + | DB[(Shared Database)] | ||
| + | |||
| + | A <--> DB | ||
| + | B <--> DB | ||
| + | </ | ||
| + | ---- | ||
| + | The same system with db replication: | ||
| + | < | ||
| + | flowchart LR | ||
| + | |||
| + | A[Application A] | ||
| + | C[Application C] | ||
| + | DB1[(Primary Database)] | ||
| + | |||
| + | B1[Application B] | ||
| + | B2[Application B] | ||
| + | DB2[(Replica Database)] | ||
| + | |||
| + | A <--> DB1 | ||
| + | C <--> DB1 | ||
| + | |||
| + | DB1 -- replication --> DB2 | ||
| + | |||
| + | B1 <--> DB2 | ||
| + | B2 <--> DB2 | ||
| + | </ | ||
| ==== Example ==== | ==== Example ==== | ||
| E-commerce platform and Warehouse Management System: | E-commerce platform and Warehouse Management System: | ||
| - | + | The e-commerce platform can be directly integrated with the warehouse database to provide real-time inventory information. | |
| - | The e-commerce platform can be directly integrated with the warehouse database | + | |
| - | to provide real-time inventory information. | + | |
| ==== Similarities to File-Based Integration ==== | ==== Similarities to File-Based Integration ==== | ||
| Line 365: | Line 384: | ||
| * Platform-independent connectivity (e.g., JDBC, ODBC) | * Platform-independent connectivity (e.g., JDBC, ODBC) | ||
| * Multiple instances of identical components may access the same database | * Multiple instances of identical components may access the same database | ||
| - | |||
| * Synchronization issue: Who processes the next record in the queue? | * Synchronization issue: Who processes the next record in the queue? | ||
| * However, it can be an ideal solution for data collection scenarios. | * However, it can be an ideal solution for data collection scenarios. | ||
| Line 371: | Line 389: | ||
| ==== Limitations ==== | ==== Limitations ==== | ||
| - | * Not real-time by default. | + | * Not real-time by default. If one application writes to the database, another application does not automatically receive notification. |
| - | | + | * Possible solutions: |
| + | * Database notification mechanisms (e.g., PostgreSQL LISTEN and NOTIFY) | ||
| + | * Triggers | ||
| + | * Polling mechanisms | ||
| + | * Security considerations: | ||
| + | * Lack of well-defined interfaces — this approach provides only data-level integration. | ||
| - | Possible solutions: | + | ==== When to Use Database-Based Integration? |
| - | * Database | + | Database-based integration is appropriate in the following scenarios: |
| - | * Triggers | + | |
| - | * Polling mechanisms | + | |
| - | * Security considerations: | + | * When multiple applications need direct |
| + | * When strong transactional consistency is required. | ||
| + | * When systems operate within the same organizational or security boundary. | ||
| + | * When the data model is stable and well-defined. | ||
| + | * When high-performance querying and reporting are necessary. | ||
| + | * When database | ||
| - | | + | However, it may NOT be the best choice: |
| + | |||
| + | | ||
| + | * When clear service-level interfaces | ||
| + | * When strict decoupling between systems is a design goal. | ||
| + | * In highly scalable cloud-native environments where message-based communication is preferred. | ||
| + | |||
| + | ===== Integration Strategy Comparison ===== | ||
| + | |||
| + | ^ Aspect ^ File-Based Integration ^ Database-Based Integration ^ Message Queue-Based Integration ^ | ||
| + | | Coupling | Tight coupling (shared file format) | Tight to medium coupling (shared schema) | Loose coupling | | ||
| + | | Communication Style | Batch, unidirectional | Data-level sharing | Asynchronous message exchange | | ||
| + | | Real-Time Capability | No | Not by default | Yes (naturally asynchronous) | | ||
| + | | Scalability | Limited | Moderate | High | | ||
| + | | Monitoring | Difficult | Database-level monitoring | Built-in queue monitoring (DLQ, metrics) | | ||
| + | | Complexity | Low initial complexity | Medium | High | | ||
| + | | Transaction Support | No native support | Strong ACID support | Depends on message broker | | ||
| + | | Typical Use Case | Periodic data exchange | Shared enterprise systems | Distributed / cloud-native systems | | ||
| + | | Interface Definition | File format agreement | Shared database schema | Message contract / schema definition | | ||
| + | | Cloud-Native Suitability | Low | Medium | High | | ||
tanszek/oktatas/iss_t/software_integration.1771193228.txt.gz · Last modified: 2026/02/15 22:07 by knehez
