RSS订阅
RSS订阅TT SOA

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

2008-9-11  选择字号:  | |
打印本文章

导读:WID是一个基于Eclipse3.0的工具,它支持快速的解决方案设计、开发、测试以及部署。WPS是基于WAS6的流程集成引擎,具有丰富的功能来支持EAI解决方案的部署和运行。

关键词:WID Eclipse 解决方案 流程集成 EAI

正在加载数据...

  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设计、开发和测试经验。


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

原文出处:http://www.ibm.com/developerworks/cn/websphere/library/techarticles/0601_xuejb1/
来源:IBM    作者:薛江波,陈荻玲,张煜    
相关的白皮书
回首2008年,我们发现一个完整的SOA年。在2008年初,SearchSOA.com涉及Eclipse和影响SCA和JBI。看来,JavaScript框架和图书馆厂商-开放源码的倡导者,仍然处理Web……
我需要在UDDI运行时转换的WSDL文件。是否有一份文件,解释wsdl4reg工具如何通过命令行转换WSDL到UDDI呢?
WMC构件采用Eclipse插件技术,增加了代码重用性,提高开发效率。WMC构件可以利用Eclipse的界面元素SWT(参见Eclipse网站)开发……
企业内部不断增加的IT应用在提高某些工作自动化的同时,影响了企业级业务流程的效率和灵活性。而IBM Workplace技术实现了多个IT应用的集成,为使用者提供高效……
这里着重介绍了解决方案的开发流程,而没有关注于细节的描述。如果您是个解决方案的开发人员,建议您通过实践更深入的探索WID和WPS的功能和架构……
虚拟化和SOA之间是一种间接的、相辅相成的关系。也许在IT及业务转型中,两者的结合使用会发挥最大的优势。虚拟化有助于更快地显示部署基础设施的投资回报率(ROI)。
云计算的概念越来越流行,Amazon、Google和IBM是第一批将云计算引入公众视线的公司。云计算就是新的Web2.0,一种既有技术上的市场绽放。
安全对于许多的IT部门来说都是一个重要的问题之一,但是SOA安全问题完全是在另一个新的纬度上了。对于SOA为一个机构所带来的许多的好处,例如具有在许多不同的提供者和供应商的情况下混合和匹配服务。
最新更新
专家答疑
技巧
Ron Schmelzer,Jason Bloomberg
你认为通过遵循IT组织步骤可以演变为SOA吗?ZapThink公司明确SOA实行肯定是一个挑战——也不应被视为这一倡议应得到执行的一个步骤就是整个企业的基础……
Dana Gardner
您能解释什么是“私有云”吗,能否举例说明?这是供应商需要建立的基础吗?作为托管服务供应商和服务供应商寻求最有效和最强大的基础设施,作为他们的“云”支持能力……
Andrew Pollack
我们正在寻找一种从主机选择SOAP服务器的请求。我们希望制造一个远程程序呼叫(RPC)从CICS程序的SOAP服务器,其中进程请求,使错误或成功后的反应……