连接器使用连接器模块与 SAP 应用程序交互。连接器模块调用 SAP 的本机接口并将数据(业务对象或事件数据)传递至 SAP 应用程序和从 SAP 应用程序中传递出来。连接器的灵活设计使不同模块能够用于不同任务,如使用 SAP 应用程序初始化连接器或传递业务对象数据。
连接器使用 SAP 的远程功能调用(RFC)库来与 SAP 应用程序通信。SAP 的 RFC 使外部程序能够调用 SAP 应用程序内的 ABAP 功能模块。
连接器是元数据驱动的。在 WebSphere Business Integration 系统中,元数据是特定于应用程序的数据,它存储在业务对象中并有助于连接器模块与应用程序交互。元数据驱动的连接器模块是根据业务对象定义中编码的元数据来处理它支持的每个业务对象的,而不是根据连接器模块中硬编码的指令来处理的。
业务对象元数据包括业务对象结构、其属性特性设置和其特定于其应用程序的信息的内容。因为连接器模块是元数据驱动的,所以它们可以处理新的或修改的业务对象而不必修改连接器模块代码。
可视连接器框架使用顶级业务对象中特定于应用程序的查询描述信息值,调用适当的连接器模块来处理业务对象。特定于应用程序的查询描述信息提供连接器模块的类名。
大多数顶级业务对象的特定于应用程序的查询描述信息必须标识连接器模块的类名。此特定于应用程序的查询描述信息的语法如下:
AppSpecificInfo = PartialPackageName.ClassName,
例如:
AppSpecificInfo = sap.sapextensionmodule.VSapBOHandler,
在此示例中,sap.sapextensionmodule 是部分包名,VSapBOHandler 是类名。完整的包名包括 com.crossworlds.connectors 前缀,WebSphere Business Integration 系统自动将该前缀添加至名称。换句话说,示例的完整文本为:
com.crossworlds.connectors.sap.sapextensionmodule.VSapBOHandler
在下列情况下,您不必为特定于应用程序的查询描述信息指定包名和类名:
大多数业务对象处理是特定于每个连接器模块的。有关 ABAP 扩展模块的业务对象处理的更多信息,请参阅"业务对象处理"、业务对象数据和 ABAP 处理程序和配置要归档的对象。
有关为 ALE 模块指定特定于应用程序的查询描述信息的详情,请参阅"事件处理"和处理多个具有包装程序业务对象的 IDoc。
适配器框架可以创建不同的线程来处理应用程序事件和业务对象请求。当处理多个来自集成代理程序的请求时,它可以创建多个线程来处理多个业务对象请求。例如,当 InterChange Server 是集成代理程序时,连接器可以接收来自多个协作或来自一个多线程协作的多个业务对象请求。
图 4 举例说明了多线程体系结构。
连接器在处理轮询调用时执行以下步骤:
仅当连接器关闭时轮询线程才会停止运行。
适配器框架与轮询无关,可以创建多个请求处理线程,每个请求业务对象使用一个线程。每个请求线程都会实例化适当的业务对象处理程序。
例如,当处理来自 InterChange Server 的业务对象请求时,业务对象处理程序的数目和类型取决于发送请求的协作的数目和类型:
如果连接器的 MaxNumberOfConnections 配置属性求值为大于 1 的数字,则可视连接器框架将一个连接专门用于 SAP 进行轮询,并将其余连接分配给仅用于请求处理的池。
如图 4 中所示,连接器在处理业务对象请求时执行以下步骤:
如果连接器的 MaxNumberOfConnections 配置属性求值为 1,则可视业务对象处理程序与事件处理共享一个连接。
注意
使用 MaxNumberOfConnections 配置属性来指定最大可用连接句柄数。连接数不能超过对话进程数。
SAP 在处理交互时锁定对话进程,仅当交互完成时才释放它。因此,多个并发请求锁定相同数目的对话进程,直到处理完成为止。