主动数据传输与远程过程调用:原理、策略与实现
1. 引言
在数据交互的世界里,TPM(事务处理监视器)负责协调消息源与应用程序之间的请求流。然而,在主动数据传输中,我们还需要一些基本原则来规范应用程序如何访问数据库以及它们之间的通信方式。主动数据传输包括发送订单、要求接收方采取应用程序操作或创建进一步的文件移动等情况。与之相对的是被动数据传输,例如在分支机构更新客户信息,这种情况下接收方在收到数据后无需采取特定操作。
我们可以将主动和被动数据传输类比为主动和被动对象。主动对象封装了数据和命令,而被动对象仅包含数据。在主动数据传输中,有两种可行的策略:
- 直接的应用程序到应用程序握手。
- 通过数据库存储进行间接通信。
1.1 直接应用程序到应用程序握手
使用应用程序到应用程序的实时消息传递来传输信息元素(IE)是直接握手的一种解决方案。这种数据传输形式提供即时性能,并且处理和通信开销最低。然而,它是一种紧密耦合的解决方案,在快速变化的应用环境中实现起来通常相当复杂,灵活性较差。因为应用程序 X 必须知道应用程序 Y 的位置以及如何调用它,这涉及到一种对等的调用/消息传递机制,该机制高度依赖于分布式数据库的布局。如果两个应用程序位于同一台计算机上,或者它们通过具有内置延迟的广域网(如 X.25)分隔,实现方式可能会有很大差异。
1.2 间接通信
两个应用程序可以共享一个与分布式数据库布局相关的公共协议,并在调用中发送 IE。这种方法的风险是相应的应用程序到应用程序调用可能在某个点失败,导致传输的 IE 丢失,但它更加灵活。为了避免这些风险,需要复杂的日志记录和安全机制。同时,必须确保数据库范围