EMD(Enterprise MetaData Discovery) 企业元数据发现简介
Enterprise Metadata Discovery (EMD) 是定义元数据发现和扩展 JCA(Java Connector Architecture) 资源适配器功能的导入模型的规范。这个模型为工具和运行时提供了 Enterprise Application Integration (EAI) 框架: 开发人员可以使用 EMD 工具来生成 EIS(Enterprise Information System)中定义的各类元数据或函数,同时生成相应的接口文件。利用 EMD,开发人员可以忽略 EIS 端的接口实现,利用友好的可视化界面进行操作,极大提高了开发效率。
图 1. EMD 体系结构
WebSphere Adapters 7.0 中 EMD 的新功能—迭代开发
迭代开发,从软件开发角度来定义,就是增量式开发,我们可以理解为它是通过对核心开发活动的重复应用,包括了对问题,解决方案定义以及解决方案实现的连续的细化,因此,它是一个迭代的过程。 我们在 WebSphere Adapters 7.0 中将这种思想应用到了企业元数据发现工具,即在元数据发生更新的情况下,开发人员无需重现构建新模块来进行重复开发,只需在原有开发模块的基础上通过迭代开发新功能即可实现已有模块的重用。 传统的企业元数据发现工具的使用流程如下所示:
- 新建开发模块,作为元数据及接口文件的载体;
- 利用企业元数据开发工具进行开发;
- 企业信息系统需要更改元数据定义;
- 删除原有开发模块
- 重复步骤 1 和 2 进行再次开发。
利用迭代开发新功能后,现在的使用流程如下所示:
- 新建开发模块,作为元数据及接口文件的载体;
- 利用企业元数据开发工具进行开发;
- 企业信息系统需要更改元数据定义;
- 直接在原有开发模块上进行迭代开发;
为了能够在第一次开发模块的基础上进行迭代开发,我们就必须保存第一次开发阶段的有效信息,这些有效信息即为企业元数据开发工具的图形化界面上各种不同类型的属性,例如:简单类型输入框,树结构类型,包装属性组等等。为了能够结构化存储这些不同类型属性,迭代开发利用 XML 来存储信息,不同类型属性定义各自的 XML 数据结构。以下分别是各种属性的 XML 结构示意图。
清单 1. 简单属性
|
清单 2. 多值属性
|
清单 3. 封装组合属性
|
清单 4. 树形属性
|
在此我们给出一个模拟场景,客户需要利用 WebSphere JDBC Adapter7.0 进行元数据开发。开发人员 A 和 B 在两地共同进行项目开发工作,A 首先完成 WebSphere Adapters 的开发工作,通过 EMD 开发工具完成元数据的开发(其中包括元数据 CUSTOMER)。此时 B 发现项目中需要在 CUSTOMER 添加一些新的字段,同时添加一个新的元数据 ADDRESS。以下分别详述 A 和 B 的具体操作步骤。 开发人员 A 按照以下步骤进行开发:
- 进入 WebSphere Integration Develop 7.0,新建开发模块“IterativeEMDTesting”;
- 选择“外部服务”External Service 开始元数据开发。
图 2. 外部服务选择页面
进入 Adapter 选择页面,选择 IBM WebSphere Adapter for JDBC 7.0。
图 3.WebSphere JDBC Adapter 7.0 选择页面
进入连接信息指定页面,选择相应数据库并填入相关连接信息 ( 系统号,主机名,端口号,用户名,密码等 )。
图 4. 连接信息页面
进入元数据选择页面,选择元数据“Customer”和后续操作,完成第一次元数据开发工作。
图 5. 元数据选择页面
用开发视图打开当前工作空间,可以看到此时在开发模块下所有的文件列表如下图所示,其中的 *.importex 文件即为迭代过程的数据信息。
图 6. 开发视图文件列表
双击选择元数据文件 SystemCustomer.xsd,此时的数据定义如下图所示:
图 7. 元数据 Customer 定义一
开发人员 A 开发完毕后,开发人员 B 发现原有数据库中缺少一些元数据的定义,需要给元数据 Customer 新加一个字段 NewField 以及添加一个新的元数据 Address。开发人员 A 随机将现有开发模块打包为项目交换文件发送给 B,开发人员 B 按照以下步骤在原有基础上进行二次开发。
- 更新数据库信息,为表 Customer 添加新字段;
图 8. 元数据 Customer 数据表定义
- 创建元数据表 Address;
- 将项目交换文件导入工作空间;
- 打开业务整合视图,右键打开接口文件,选择“编辑绑定 -Edit Binding …”,开始二次迭代开发;
图 9. 编辑绑定选择菜单
- 此时向导页面自动读取数据信息文件 *.importex 然后填充相应字段,无需再次手工输入连接信息 ( 用户名,密码等 ),自动转入下一页面;
图 10. 迭代开发连接信息页面
- 在元数据选择页面,对 Customer 保持不变,选择 Address,如下图所示
图 11. 迭代开发元数据选择页面
- 后续页面保持信息不变,完成二次迭代开发,此时打开开发视图,我们可以发现原有开发模块中文件列表中已经包括元数据 Address;
图 12. 迭代开发视图文件列表
- 双击打开元数据文件 SystemCustomer.xsd,可以发现新字段 NewField 已经正确加入。
图 13. 元数据 Customer 定义二
至此,开发人员 B 完成二次迭代开发过程。
本文通过一个模拟业务开发实例,详细介绍了如何利用 WebSphere Adapters 7.0 中的迭代开发功能实现已有开发模块的二次开发。文中着重介绍了迭代开发功能的实现方式以及开发人员之间如何协同工作,提高业务开发效率。