组装SCA组件(二)

日期: 2008-08-07 作者:Roland BarciaJeff Brent 来源:TechTarget中国 英文

  连线组件


  在对引用有了新的理解之后,我们现在可以将一些组件通过连线连接起来。我们将使用的示例十分简单,但在这个过程中我们也会检查各种可用的服务质量。我们将继续介绍在第1部分使用的信贷审批示例。


  在我们的示例中:


  ·Credit Approval组件必须调用Credit History组件以及Credit Agency组件。
  ·Credit Approval组件将作为这两个服务的一个Facade。
  ·Credit Approval组件需要连线到其他组件。


  这一练习所需要的文件可以从本文所附带的下载文件中获得。


  设置工作区


  启动WebSphere Integration Developer并创建一个新的工作区(图5)。



  图5. 在WebSphere Integration Developer中创建工作区
 
  关闭欢迎屏幕(图6)。



  图6. WebSphere Integration Developer欢迎屏幕
 
  要从下载的文件导入项目交换文件,请右键单击Business Integration视图并选择Import(图7)。



  图7. 导入下载文件
 
  选择Project Interchange,然后单击Next(图8)。



  图8. 导入项目
 
  假设您已经将下载的文件解压缩到C: 驱动器,则选择CreditApprovalPart2.zip文件,然后单击select All和Finish(图9)。



  图9. 导入项目
 
  检查组件


  在我们的示例中,我们将使用自底向上的开发风格:我们有一个现有的SCA组件集并准备对它们进行集成。从Business Integration视图中,您可以检查该SCA模块:


  展开CreditApproval模块(图10)。



  图10. 展开的Credit Approval模块
 
  请注意,它有三个接口和三个Java实现。打开CreditApprovalImpl Java实现并转到calculateCreditScore()方法。请注意,calculateCreditScore同时与CreditAgency组件和CreditHistory组件进行交互来完成其服务。您很容易想到将CreditApproval Service实现为BPEL流程或其他组件类型,但在本例中,我们用一个简单的Java组件来作为Facade。


  清单2
      
  public DataObject calulateCreditScore(DataObject creditApp) {
  
   ServiceManager serviceManager = new ServiceManager();
   BOFactory bof = (BOFactory)serviceManager.locateService  (“com/ibm/websphere/bo/BOFactory”);
 DataObject creditRating = bof.create(“http://CreditApproval”,   ”CreditRating”);
 creditRating.setString(“customerId”, creditApp.getString  (“customerId”));
  
 CreditAgency creditAgency = (CreditAgency)
 serviceManager.locateService(“CreditAgencyPartner”);
 Integer creditScore = creditAgency.getCreditScore(creditApp);
 CreditHistory creditHistory = (CreditHistory)
 serviceManager.locateService(“CreditHistoryPartner”);
  
 Double creditLimit = creditHistory.getCreditLimit(creditApp);
  
 creditRating.setInt(“creditScore”, creditScore.intValue());
 creditRating.setDouble(“creditLimit”, creditLimit.doubleValue());
 return creditRating;
 }


  要打开Assembly Editor,请双击CreditApproval集合(图11)。当Assembly Editor打开时,会显示三个组件(图12)。



  图11. 打开Assembly Editor




 
  图12. Assembly Editor中的组件
 
  连线组件


  CreditApproval组件通过使用简单的SCA客户端API来与CreditAgency和CreditHistory进行交互。然而,要让运行时正确地调用这些服务,需要将组件“连线”起来,使用WebSphere Integration Developer来进行这一操作非常简单。在我们的示例中,我们将接受缺省值。


  选择CreditAproval组件并将其连线到CreditAgency组件(图13)。



  图13. 连线组件
 
  将显示一个对话框(图14),表明将在CreditApproval组件上创建一个引用。选择OK。



  图14. 匹配引用对话框
 
  由于CreditApproval组件是一个Java组件,所以我们需要用WebSphere Integration Developer生成Java接口以便能够调用该组件。因此,在下一个对话框(图15)中选择Yes。如果CreditApproval已经是一个完整的BPEL流程,则选择No。(请记住,在大多数情况下将使用WSDL作为集成层中的接口选择。如果User Interface是与集成解决方案联合部署的,则可以使用Java接口。)



  图15. 生成Java接口对话框
 
  重复步骤9到11,将CreditApproval组件连线到CreditHistory组件。结果应该与图16类似。



  图16. 组件连线完成
 
  单元测试组件


  因为我们使用Java作为我们的实现,所以可以在Java SE环境中对组件进行单元测试。正如在第1部分所做的,我们很容易在WebSphere Integration Developer中调出单元测试工具:


  右键单击CreditApproval组件并选择Test Component(图17)。



  图17. 测试组件
 
  将显示单元测试工具。该单元测试功能的一个很好的优点是它允许独立测试组件,并且可以检测引用和创建模拟器。在我们的例子中,我们自己测试集成,所以需要删除模拟器。


  切换到Configurations选项卡。


  展开Module CreditApproval模块,突出显示CreditAgency和CreditHistory,并将它们从Emulators列表中删除(图18)。现在,测试CreditApproval组件将导致调用CreditHistory和CreditAgency组件,而不会模拟交互。



  图18. 删除模拟器
 
  切换回Events选项卡并突出显示Invoke项(图19)。



  图19. Events选项卡
 
  填充输入,如图20所示。



  图20. 数据参数
 
  单击Continue。


  选择Eclipse 1.4 JVM选项(图21)。



  图21. 选择部署位置
 
  检查每个步骤的流程。您可以实际看到流经组件的数据(图22)。



  图22. 事件流
 
  最终结果应该与图23类似。



  图23. 测试结果
 
  关闭测试编辑器,不进行保存。

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 联合创新,携手共赢 华为与Commvault签署全球合作联盟协议

    【中国,上海,2015年9月19日】在2015年华为云计算大会上,全球领先的信息与通信解决方案供应商华为与美国知名的数据管理软件及相关服务主要供应商Commvault签署全球合作联盟协议。基于合作协议,双方将会加大投入数据中心备份解决方案在云化环境下的“可服务化”技术研究 。Commvault公司全球业务发展副总裁Andreas May、华为IT数据中心解决方案总裁马力出席签约仪式。

  • 如何透过业务和技术看SOA的发展

    随着SOA发展的深入,各种SOA相关技术标准也随之发展和完善。面对庞大而复杂的SOA相关技术标准,我们如何来有选择的使用它们呢?

  • SOA架构下补偿模型驱动的安全苛求软件开发

    随着我国高速铁路的快速发展,传统的计算机联锁软件开发方法在灵活性、可维护性、安全性以及开发效率上都显露出不足,怎样才能弥补这一不足呢?

  • 浅谈基于SOA架构的服务集成技术研究

    在近几年软件行业的发展中,面向服务架构(SOA)成为了当下的热门话题。那么对于SOA架构的服务集成你又了解多少?