复合应用
Lotus Expeditor 提供了将不同应用进行组装的能力,这些应用虽然具有各自的功能,但通过组装,它们之间可以相互通讯相互操作,进而使得组装后的应用可看作一个单一的应用,从而在每个应用的功能之上增加了组合功能。复合应用有如下的特点:
构成复合应用的相互之间可以通讯和操作的应用程序,我们称为组件,这些组件可以动态进行组装和拆卸,组装后虽然他们可以进行相互通讯相互操作,但它们之间仍旧是松耦合的,一旦一个或多个组件移除,并不影响剩余组件的功能。
不同的技术创建的视窗可以组装于一个窗体内,这些视窗可看着作为组件的外部展现,通过复合应用,可以将这些视窗集成起来,构成复合应用。可以用于组装 Expeditor 复合应用的组件有如下类型:
构成一个复合应用的组件之间需要进行相互通讯,但由于这些组件可以是由不同的开发商提供,这就需要一个标准规范,用于指导开发人员开发出可以用于复合应用的组件。在 Expeditor 中,通过 Property Broker 提供了不同组件之间进行通讯的能力,组件的开发者可以通过 XML 配置文档发布组件的数据或属性(Property)、消息的动作(Action)以及组件间的线接(Wire),Property Broker 能够动态的检测到已经变化的组件的数据,并查找注册过的与该组件相连接或线接的其它组件中的动作,如果找到相应的动作,Property Broker 触发该动作使之执行,这样就完成了两个松耦合组件间的通讯及操作。
在这些相互协作的组件中,提供数据的组件我们称之为提供者,而接受数据并进行动作的组件我们称为接受者,提供者的数据我们称为输出数据,接受者的接受的数据我们称为输入数据,如图 1。

图 1. 数据提供者组件的输出数据和数据接受者组件的输入数据
仅仅定义组件的输出数据或输入数据,两个组件还不能进行相互通讯,只有通过 Property Broker 线接(Wire)起来的组件,才能进行相互通讯相互操作。线接的一端是数据提供者组件中的输出数据,另一端是数据接受者的输入数据,两者的数据类型必须一致,如图 2。
无论是组件发布还是注册,Property Broker 是通过一种 XML 文档来完成的,这一文档的格式是借自 Web 服务描述语言 WSDL(Web Services Description Language)格式,通过这个描述语言,可以描述在复合应用中组件的输入输出数据(property)、消息动作(action)以及类型等。
| 第1页: Lotus Expeditor 客户端平台 | 第2页: 复合应用 |
| 第3页: Eclipse 组件样例-消息动作及属性的... | 第4页: Eclipse 组件样例-消息动作及属性的... |
| 第5页: Eclipse 组件样例-消息动作的实现 | 第6页: Eclipse 组件样例-数据的发送 |
| 第7页: 组件样例-组件的线接(Wire) | 第8页: 总结 |