编程模型概述

WPAI 介体提供了统一的数据编程模型以供各种各样的数据源使用。该模型基于 JSR 235 - 服务数据对象(SDO)和介体。

SDO 是编程模型的一种规范,不仅在数据源间具有统一性,而且: 在以下网址可以找到有关 SDO 的更多信息:http://www.eclipse.org/emf
介体是对特定数据源类型进行访问的组件。它们通过从后端读取数据,然后将对“数据图”所作的更新传播回后端,从而创建“SDO 数据图”。需要配置介体以提供期望的功能。将此配置信息称为介体的元数据。元数据包含许多信息,例如:

应用程序控制流

应用程序使用后端的元数据对象和连接信息来实例化介体对象(或命令)。介体实例使用它的元数据来确定它作为输入(作为 SDO 数据图)的参数以及它生成的查询结果(也是作为 SDO 数据图)。如果介体允许用户修改查询结果并将更改应用于后端,则它会以 SDO 数据图的形式提供有关这些更改的信息。如果以上提到的任何步骤导致后端抛出异常,就会提供一个包含错误信息的故障数据图。

编程模型的元素

  • 元数据:(各种数据源类型的)所有元数据对象类型都派生自一种基本类型,即,com.ibm.wps.mediator.CommandMediatorMetaData。特定元数据对象是通过一个由名称和名称空间组成的限定名来唯一标识的。此限定名通常是由用户在构造元数据对象时指定的。
  • 介体:所有命令都派生自一种基本类型,即,com.ibm.wps.mediator.CommandMediator。CommandMediator 对象是使用 CommandMediatorMetaData 对象来实例化的。CommandMediator 是一个无状态对象(与无状态服务很相似)。当用户需要使用相同或不同的参数来调用同一任务时可以重用 CommandMediator。

    每种受支持的后端数据源类型都将实现 CommandMediatorFactory 接口(com.ibm.wps.mediator.CommandMediatorFactory),该接口允许应用程序实例化 CommandMediatorMetaData 对象中的命令。CommandMediatorFactory 接口中的方法还采用包含数据源连接信息的其它参数。

    下面描述了 CommandMediator 接口中的重要方法。注意,一些方法对于某些后端可能是无效的。
    1. getParamDataGraph() - 此方法用来获取一个空的参数数据图。然后,获得的参数数据图将填充特定查询的参数值。
    2. getDataGraph() - 该方法用来获得查询的结果或者一个函数的输出自变量。此方法可以选择是否采用一个包含查询参数或函数输入自变量的参数数据图。
    3. getEmptyDataGraph() - 将此方法与 CommandMediator 的 CREATE 类型配合使用,以获取一个空的主数据图,该数据图将填充新对象的数据。一旦用户为空的数据图填充了适当的值,调用 applyChanges 方法时就会在后端创建一个新对象。
    4. applyChanges() - 此方法用来传播由应用程序对主数据图所作的任何更改。某些 CommandMediator 类型(例如,只用来检索信息的一种 CommandMediator 类型)不会实现此方法,这是因为它们不会将更改传播给后端。
  • SchemaMaker:另一个重要接口是 SchemaMaker(com.ibm.wps.mediator.SchemaMaker)。SchemaMaker 对象将确定传递给它的 CommandMediatorMetaData 对象中的下列数据图形状:
    1. 介体用作输入(称为参数数据图,例如,查询的参数或者函数的输入自变量)的 SDO 数据图的结构。
    2. 介体作为查询结果或者函数调用的输出自变量而生成的 SDO 数据图的结构。这是主数据图。
    3. 介体作为“保存对主数据图所作的任何更改”这一用户请求的结果而生成的 SDO 数据图的结构。这称为输出数据图。
    4. 介体作为后端交互期间产生的异常结果而生成的 SDO 数据图的结构。这称为故障数据图。故障数据图嵌入在由介体抛出的 MediatorException(com.ibm.wps.mediator.MediatorException)中。
    数据图的结构表示为数据图的根数据对象的 EClass(有关“Eclipse 建模框架”的更多信息,请参阅 http://www.eclipse.org/emf)。
相关概念
SAP 数据访问
Siebel 数据访问
PeopleSoft 数据访问
相关任务
设置 SAP 开发环境
添加 SAP 服务数据对象
添加 Siebel 服务数据对象
添加 PeopleSoft 服务数据对象

(C) Copyright IBM Corporation 2002, 2005. All Rights Reserved.