视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
数据交换平台规范
2025-09-29 08:47:42 责编:小OO
文档
第1章数据交换平台规范

§1.1基本技术规范

◆数据交换平台服务器采用满足J2EE规范的应用服务器实现

◆数据交换平台包含的数据交换服务使用纯Java接口作为统一的抽象接口描述

◆数据交换平台包含的数据交换服务可以发布为多种形式,包括:EJB、Servlet、WebService等

◆数据交换平台的数据,使用XML格式进行表示

◆数据交换平台要求提供安全认证和授权访问机制,确保数据交换的安全

§1.2数据交换接口规范

数据交换平台中的数据交换接口,统一通过纯Java接口来进行表述,对这类Java接口,要求满足如下规范:

◆接口方法的参数和返回值要求实现序列化接口

◆接口方法的参数和返回值,如果是数据集合,统一通过Rowset结构来实现,每个数据集合参数,需要标明RowSet结构的名字

下面是一个数据交换接口的例子:

/**

 * 

 * 接口:  客户基本信息查询

 * 说明:  本接口提供对营销用点客户的基本信息查询功能

 */

public interface bo_cust_info {

    /**

     * 查询客户基本信息

     * @param custId : 客户号

     * @return : 包含客户信息的结果集,如果没有该客户数据,返回空的结果集

     * 返回结果集名: epm/ar_cust_info

     */

    public DSRowSet queryByCustId (String  custId);

    

}

§1.3RowSet数据集合结构说明

数据交换过程中,由于数据格式的混乱,常常带来很多附加的工作,这些工作往往导致系统出现错误,或降低了系统的效率,所以,应当采用尽量简单、统一的数据格式。数据集是数据交换过程中经常会遇到的数据结构,例如,查询结果往往包含多行数据。结果集可以有很多种实现方式,数据交换平台中,统一使用称为RowSet的数据集结构。

    通过如下的例子来说明RowSet的结构:

     0000669375

     11000082

    

     某客户名

     客户地址

    

    

     22

     0100009

    

     9

    

     1

     4

     0

     0000669375

     01

     0

如上是RowSet的结构XML表示,可见,这个结构很容易理解,每个rowset节点描述一个数据集,每个row节点描述一个数据行,row节点下,每个子节点,描述一个数据列的值。

这里,需要注意rowset节点的名字属性,每个名字唯一定义一个数据集的元数据结构,这个结构称为RowSetDef,数据交换平台统一提供对这个名字的结构解释,下面是如上数据集的结构描述:

    

数据交换平台提供对RowSet数据集的解析API。

§1.4对MsgInfo数据结构的说明

MsgInfo是基于XML的描述接口参数和返回结果的数据结构

如下是一个MsgInfo的结构:

0

    

     value1

    

        

             0000669375

             11000082

            

             某客户名

             客户地址

            

            

             22

             0100009

            

             9

            

             1

             4

             0

             0000669375

             01

             0

        

    

此结构中,根节点是msginfo,包含一个parameters节点和一个rowsets节点,parameters节点包含简单的变量参数,而rowsets包含多个RowSet数据集。

如下是一个请求参数的例子:

     00001234

如下是相应的成功返回值:

     0

    

    

        

             0000669375

             11000082

            

             某客户名

             客户地址

            

            

             22

             0100009

            

             9

            

             1

             4

             0

             0000669375

             01

             0

        

    

数据交换平台提供对MsgInfo结构的解释API

§1.5WebService接口规范

WebService是不同技术平台下应用系统进行数据交换的最好的方案,尤其是.NET平台和J2EE平台环境间的数据交换。

在数据交换平台上通过webservice部署的接口服务,要求满足如下规范:

◆接口的方法只包含一个字符串类型的输入参数,这个参数是一个MsgInfo结构,具体的参数打包在MsgInfo中进行传递

◆接口的返回值也是一个字符串类型的参数,这个参数是一个MsgInfo结构,具体的返回数据打包在MsgInfo中,这个MsgInfo中,要求至少包含一个参数returnCode,当returnCode = 0时,表示调用成功,否则,表示调用失败,如果具体的错误代码代表不同的含义,由接口自己设定;另外,MsgInfo中可以包含一个可选的returnMessage参数,描述错误的信息。

按照如上规范,前面bo_cust_info接口(在webservice中转换成BOCustInfo)的wsdl描述是:

数据交换平台对每个接口提供客户端API,便于客户端进行访问。

第2章数据交换客户端规范

§2.1WebService客户端

§2.1.1Java环境

如果客户端是Java环境,可以使用数据交换平台提供的数据交换服务接口客户端API来进行访问。

以BOCustInfo接口为例,客户端访问代码如下:

//BOCustInfoSoapBindingStub 是服务接口客户端API中的代理类

epm.ws.custinfo.BOCustInfoSoapBindingStub binding;

//设定访问地址

String address = "http://localhost:8080/epm/services/BOCustInfo";

//构造连接

try {

    binding = (epm.ws.custinfo.BOCustInfoSoapBindingStub)

                  new epm.ws.custinfo.BOCustInfoServiceLocator().getBOCustInfo(new java.net.URL(address));

}

catch (javax.xml.rpc.ServiceException jre) {

    if(jre.getLinkedCause()!=null)

        jre.getLinkedCause().printStackTrace();

    throw new Exception("JAX-RPC ServiceException caught: " + jre);

}

//创建参数

MsgInfo msg = new MsgInfo();

msg.setParameter("custId

//远程调用接口服务

String value = binding.queryByCustId(msg.getXMLString());

System.out.println("result is : " + value);

§2.1.2.Net客户端

.Net应用中(以C#代码为例),通过在工程中增加Web引用,可以方便的访问数据交换平台的接口服务。设增加的Web引用名称为:BOCustInfo,则访问代码示例如下:

BOCustInfo.BOCustInfoService service = new BOCustInfo.BOCustInfoService();

String address = "http://localhost:8080/epm/services/BOCustInfo";

service.Url = address;

String msgParam = " 00001234";

String result = service.queryByCustId(msgParam);

为了便于访问,.Net客户端可以编写对MsgInfo和RowSet结构的解释类。

§2.2EJB客户端

EJB客户端指可以访问EJB的客户端应用,一般是Java环境。

数据交换平台对EJB客户端提供接口调用API,EJB客户端可以以一种纯Java接口的方式来调用数据交换服务,示例代码如下:

bo_cust_info bo = (bo_cust_info) BOUtil.getObject(bo_cust_info.class);

DSRowSet  rs = bo.queryByCustId("0000669375");

System.out.println(rs.getXMLString());

所有远程调用的技术细节被BOUtil.getObject方法的实现屏蔽。客户端不必关心访问的物理链路,访问的具体信息配置在文件中。

第3章数据交换服务端规范

数据交换平台对数据交换服务端的技术要求如下:

◆服务端应用系统可以采用WebService,EJB, 或开放数据库的方式对数据交换平台提供数据服务

◆服务端应用系统应避免除数据交换平台之外的外部系统访问

◆服务端应用系统应提供标准的权限机制,保证数据访问的安全性

◆新开发的服务端应用系统,应采用与数据交换平台接口相似的技术规范,以便于数据服务接入数据交换平台下载本文

显示全文
专题