如何用WID和WPS开发EAI解决方案(二)

日期: 2008-09-10 作者:薛江波陈荻玲张煜 来源:TechTarget中国 英文

  4.2业务对象的开发


  业务对象是一切组件的基础。在准确的分析系统需求后,就可以在WID中开发通用业务对象和应用相关业务对象,从而构造其他组件。


  在WID中开发一个业务对象的流程如下:


  1.打开WID,并确保你在"商业整合(Business Integration)"视图下。


  2.新建一个WID工程(WID Project),通常为一个模块(Module)或库(Library)。库,又名共享库(Shared Library)。在本文所描述的保险公司解决方案中,我们把业务对象存放于一个共享库(InsuranceLib)中。


  3.选中要存放业务对象的WID工程(InsuranceLib),右键单击该工程,选择新建->业务对象,输入业务对象存放的文件夹及业务对象的名字,单击完成。


  4.在InsuranceLib目录下,你将会看到新建的业务对象。双击该业务对象,用户可在右边的业务对象编辑器(Business Object Editor)中查看及编辑业务对象。点击编辑器中的 按钮,可以为业务对象添加属性。用户可在右下角的属性(Properties)视图中编辑该属性的名字,类型等属性。 按钮用于删除业务对象属性。 按钮用于将业务对象显示在表格视图中。


  5.对于本解决方案,一共需要定义8个通用业务对象(例如GenericPolicy,GenericCustomer…),下面图3.1显示了他们的最顶层业务对象GenericPolicy,它包含了三个子业务对象的数组(他们的类型分别是:GenericCustomer, GenericVehicle和GenericClaim业务对象),子业务对象还可以继续定义另外的子业务对象,如图3.2所示。同样,我们可以为Web数据库和PeopleSoft应用程序定义相应的应用相关业务对象。



  图3.1 WID中开发的业务对象




 
  图3.2 WID中开发的业务对象
 
  4.3 接口的开发


  接口是一切组件交互的规范,定义了各个组件清晰的接口就相当于搭好了整个解决方案的框架,然后就可以从自上而下的方法进行开发了。


  在WID中,开发一个接口的流程如下:


  1.选中要存放关系的WID工程(InsuranceLib),右键单击该工程,选择新建->接口,输入接口存放的文件夹及接口的名字,单击结束。


  2.在接口编辑器中,可以点击 来增加一个请求/响应的双向操作,点击 来增加一个单向操作,点击 来向一个操作增加输入项,点击 来向双向操作增加输出项,同时还可以点击 来为一个操作定义错误项。在接口编辑器里创建一个同步接口如图4所示:



  图4在接口编辑器中创建接口
 
  4.4映射和关系的开发


  关系解决了同一数据在不同系统中存储格式不一致的问题,例如在系统中用”PEK”表示北京,而在另一系统中用”010″表示北京,而实际上它们所表达的意义完全相同,通过关系就可以清晰的表达这种数据间关系。它分为动态关系和静态关系。


  在WID中开发一个关系的流程如下:


  3.选中要存放关系的WID工程(InsuranceLib),右键单击该工程,选择新建->关系,输入关系存放的文件夹及关系的名字,单击下一步。


  4.选择关系的类型:使用唯一主键的一对一的业务对象之间的关系,或使用属性的一对一,一对多,多对多的业务对象之间的关系。若关系用于静态映射转换数据属性,请将相应的复选框选上。单击完成。


  5.在InsuranceLib目录下,你将会看到新建的关系。双击该关系,用户可在右边的关系设计器(Relationship Designer)中查看及编辑关系。


  6.点击设计器中的 按钮,可以为关系添加角色。点击 按钮删除关系中的角色。点击 按钮为关系中的角色添加主键属性。点击 按钮删除角色的主键属性。


  7.选中关系或角色,可在右下角的属性视图中查看或编辑关系/角色的详细信息。


  8.对于保险公司的Sync模块,一共需要定义2个关系(动态关系CustomerIDRel 用于主键之间的对应;静态关系 StateRel 用于属性之间的对应)。


  一个在WID中开发的一对一关系如图5.1所示。




 
  图5.1 WID中开发关系
 
  映射解决了不同对象之间的转换问题。在WID中开发一个映射的流程如下:


  1.选中要存放映射的WID工程(InsuranceLib),右键单击该工程,选择新建->业务对象映射,输入业务对象映射存放的文件夹及业务对象映射的名字,单击下一步。


  2.选择映射的输入业务对象和输出业务对象,单击完成。



  3.在InsuranceLib目录下,你将会看到新建的业务对象映射。双击该业务对象映射,用户可在右边的业务对象映射编辑器(Business Object Mapping Editor)中查看及编辑业务对象映射。


  4.选中输入业务对象的一个属性,拖动至相应的输出业务对象属性,WID会在两个属性之间建立连线。这样,我们就创建了一个两个属性之间的映射。点击连线中间的标题框,该映射的相关属性可在WID右下角的属性视图中显示。其中,一个最重要的属性是转换类型(Transform type),缺省值为移动(Move),可将它改为连接(join),赋值(Assign),自定义(Custom)等。对于自定义类型的映射,可在属性视图中编辑自定义代码。WID支持可视化的和非可视化的两种自定义代码。对于可视化的自定义代码,用户不需要手写输入代码,只需在可视化编辑器中选择所需的表达示或结构化标准语句,系统就会为用户生成所需的代码。


  5.对于本解决方案,一共需要定义36个关系,用于JDBC ASBO和GBO以及PeopleSoft ASBO和GBO之间进行映射。图5.2所示是其中一个顶层BO之间的映射GBOToPSCustomer,它可以含有子映射GBOToPSAddress, GBOToPSPayment 及GBOToPSBroker等。



  图5.2 WID中开发映射
 
  4.5适配器的配置


  WPS提供了对JCA适配器和遗留适配器的全面支持。同样在WID中也提供了简洁的企业服务发现向导(ESD),通过该向导(图6)可以快速生成和适配器进行交互所需的各种定义文件。



  图6 WID中的ESD向导生成适配器
 
  在该向导中,提供了对两种适配器的支持。如果选择JCA适配器,则向导会从适配器实现文件中提取出必须的配置信息,例如上图所示的JDBC支配器,在后续的配置系统中,向导会提示填写相应的数据库的URL、用户名、密码和驱动类的信息,通过这些系统,EMD会去连接该数据系统,然后选择生成相应的文件。


  如果选择WBI适配器,则后续的向导会要求提供该适配器的连接配置文件和数据对象文件的目录;根据这些信息,EMD就能产生对应的文件。


  4.6业务流程(BPEL)的开发


  WID提供了对BPEL4WS标准1.2的全面的支持。通过使用WID中的BPEL可视化编辑器,可以创建出符合标准的BPEL流程定义;由于WPS是建立在J2EE应用服务器之上,因此这儿也可以创建出带有扩展的BPEL流程,在这种扩展的流程中可以方便的使用Java来操作各种BPEL数据元素,也可以与其他的J2EE相关的组件进行交互。在BPEL可视化编辑器中开发的同步(Sync)流程如图7所示:



  图7 WID中的BPEL编辑器
 
  该编辑器主要由如下一些主要的元素构成:


  ·Interface Parnter:代表自己向外提供的服务。
  ·Reference Partner:代表了与该流程交互的其他服务。
  ·Variables:该流程中使用到的各种数据定义。
  ·Correlation Sets:相关集的定义。
  ·各种活动的图标。


  在BPEL的属性中有一个重要的属性:Process is long-running,该属性表示该流程是否是一个长流程;所谓长流程指的是流程可能会运行很长时间,比如一天或者一月。因此流程的最终结果无法在一次调用中返回。在这种情况下流程的所有状态信息都必须保存到数据库中,一旦WPS服务器重启,该流程实例还能恢复,继续运行。如果不选择该属性,则表示该流程是短流程,流程的最终结果可以在一次调用中返回。这种流程只在当前的一个线程中运行,状态信息也不会写入数据库,而且整个流程只有一个事务。在很多实际的业务中都会包含此类长流程,对这类流程的支持也是WPS的一个重要特性。


  通过BPEL编辑器我们可以快速的开发其他的几个BPEL业务流程。


  4.7解决方案的装配


  WID提供了一个装配编辑器,它使得组件或模块之间的整合变得异常简单。用户只需将各个组件拖到装配编辑器中,并根据各组件相关关系将它们连接在一起,WID就会为用户生成组件之间相互调用所需的代码。在属性视图中,用户可查看或编辑调用相关的属性,例如同步或异步调用,是否为全局事务,调用权限及角色的设置,静态CEI的设置等。在WID中,任何Java类、接口、中介等等都可以看成是一个组件来进行装配,这就是服务组件架构SCA所带来的便利。这里,同步(Sync)模块的组织图如图8所示:



  图8 装配编辑器中的Sync模块
 
  通过装配编辑器,我们可以完成其他模块的组装,从而使整个解决方案成为一个有机整体。


  4.8解决方案的测试


  WID提供了对组件或模块进行单元测试的功能。对于组件测试,只需将组件拖到装配图中,右键点击组件,选择测试组件,一个单元测试编辑器就会呈现在用户面前,如图9所示。在该编辑器中输入初始请求参数的值,点击"继续",WID就会弹出一个对话框,让用户选择运行单元测试的WPS服务器,然后将被测试的组件部署到服务器上,完成单元测试。WID还提供了模拟器的功能,当被测组件需要调用其他组件时,可配置模拟器仿真被调用组件,完成单元测试。模块单元测试与组件单元测试类似,在商业整合视图中选中被测模块,右键点击,选择测试->测试模块,被测模块的相关信息就会在单元测试编辑器中打开。同上,输入初始请求参数,点击"继续",就可容易地完成模块的单元测试。



  图9 WID中的测试环境
 
  4.9解决方案的部署


  完成了单元测试后,用户就可以将模块部署到服务器上,调试/运行整个解决方案。WPS支持两种部署方法,一是在WID中进行部署,二是在Web管理控制台中进行部署。对于第一种方法,用户需要在WID的服务器视图中配置目标服务器,并确保服务器已启动。接着右键点击该服务器,选择添加或删除工程,将需要部署的模块添加到服务器上,如图10.1所示。对于第二种方法,用户需要先将模块从WID中导出为可在WPS上部署运行的实体-ear文件,然后在浏览器中打开Web管理控制台(例如http://localhost:9060/admin),选择应用程序->安装新应用程序,按照安装向导的提示完成整个安装过程,如图10.2所示。部署成功以后,选择应用程序->企业应用程序,用户将会看到所有成功部署在该服务器上的应用程序列表,选中应用程序,点击启动,服务器将会运行后台程序启动该应用程序。应用程序成功启动后,就可以开始调试或运行整个解决方案了。



  图10.1通过WID将应用程序部署到WPS服务器上




 
  图10.2通过控制台将应用程序部署到WPS服务器上
 
  五.开始在线业务!


  通过上面的步骤,将所有的组件都实现并部署到WPS服务器上后,就可以开始我们的在线保险业务了。通过在浏览器中访问服务器的URL,我们就可以登陆到公司网站,注册,然后进行查询报价、购买保险以及索赔等业务活动。


  六.总结


  WID是一个基于Eclipse3.0的工具,它支持快速的解决方案设计、开发、测试以及部署。WPS是基于WAS6的流程集成引擎,具有丰富的功能来支持EAI解决方案的部署和运行。这里着重介绍了解决方案的开发流程,而没有关注于细节的描述。如果您是个解决方案的开发人员,建议您通过实践更深入的探索WID和WPS的功能和架构。


  作者简介


  薛江波,IBM中国软件开发中心高级软件工程师,主要从事WebSphere InterChange Server以及WebSphere Process Server软件的系统测试以及相关软件技术支持与服务、W B I解决方案在电信领域的开发及实施,具有丰富的产品测试和实施经验。
 
  陈荻玲,IBM中国软件开发中心软件工程师,主要从事WebSphere InterChange Server的压力测试以及WebSphere Process Server软件的系统测试。
 
  张煜:IBM中国软件开发中心软件工程师,主要从事WebSphere Process Server软件的系统测试,具有丰富的BPEL设计、开发和测试经验。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐