使用服务组件体系结构构建SOA解决方案(三)

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

  生成组件并提供实现


  现在,我们可以创建SCA实现了。此时,我们已经创建了标准的接口和业务对象。现在我们要定义SCA组件。您将使用SCA Assembly Editor来完成此操作。


  通过双击CreditApprovalSCAModule菜单项,打开SCA Assembly Editor,如图29所示。



  图29. 打开SCA Assembly Editor
 
  SCA Assembly Editor有一个面板,可以用于创建SCA构件。您也可以从各种视图中拖动某些构件。只需将CreditApproval接口拖至Assembly Editor,如图30所示。(或者,您也可以从面板拖动Java组件,然后将其与接口相关联。)



  图30. 将接口拖至Assembly Editor
 
  将出现一个文本框。选择Component with No Implementation Type,如图31所示。



  图31. 组件创建文本框
 
  现在,您应该在Assembly Editor上看到一个名为Component1的SCA组件。(图32)



  图32. SCA组件图标
 
  通过选择组件并键入名称,您可以更改名称;或者可以使用属性编辑器更改名称,如图33所示。将显示名称更改为CreditApproval。名称字段应该自动更改。



  图33. 更改组件名称
 
  现在,我们的SCA组件具有接口,但没有实现。现在我们要使用Assembly Editor生成实现。


  通过在Assembly Editor中右键单击组件并选择Generate Implementation=>Java,生成一个框架实现。(图34)



  图34. 生成框架实现
 
  新Java实现应该在Java编辑器中打开;您将看到calculateCreditRating。下载文件中提供了简单的代码段,位置为C:SCA_ArticleSeriesPart1CodeSnippet1.txt。方法如下所示。


  清单11
        
  public DataObject calculateCreditRating(DataObject creditApplication) {
  // create and return a credit rating object.
   System.out.println(“********* credit approval service invoked   ******”);
 ServiceManager serviceManager = new ServiceManager();
 BOFactory bof = (BOFactory)serviceManager.locateService  (“com/ibm/websphere/bo/BOFactory”);
 System.out.println(“********* BOFactory created ******”);
 DataObject creditRating = bof.create(“http://CreditApproval”,   ”CreditRating”);
 System.out.println(“********* credit rating object created   ******”);
 creditRating.setString(“customerId”, creditApplication.getString  (“customerId”));
  
 creditRating.setInt(“creditScore”, 750);
 creditRating.setDouble(“creditLimit”, 10000d);
 System.out.println(“********* returning credit rating object   ******”);
  
 return creditRating;
  }


  这些代码使用SCA服务管理器查找业务对象工厂(Business Object Factory),后者用于从XML模式中创建业务对象。出于演示的目的,我们创建响应数据对象,并返回硬编码的数据。


  如果您粘贴代码,则可能出现一些编译错误。通过右键单击编辑器并选择Source=>Organize Imports,您可以更正这些错误,如图35所示。



  图35. 更正错误
 
  保存并关闭Java文件,但是Assembly Editor保持打开状态。


  对SCA组件进行单元测试


  WebSphere Integration Developer提供了使用单元测试工具对组件进行单元测试的功能。根据SCA实现的类型,您可以在J2SE环境中测试SCA组件,通过该环境,可以在没有完整的应用程序服务器的情况下测试组件;当然,这在很大程度上取决于您具有的组件的类型。可以在J2SE环境中轻松地对Java实现进行测试,但是由BPEL流程实现的SCA组件需要BPEL引擎(如WebSphere Process Server)。在我们的示例中,我们将使用测试组件功能来测试SCA组件。


  要启动测试组件功能,请执行以下步骤:


  在SCA Assembly Editor中右键单击CreditApproval组件,然后选择Test Component。(图36)



  图36. 启动测试组件功能
 
  这将启动测试组件编辑器。在该工具的右侧,输入测试数据,如图37所示,然后单击Continue。



  图37. 输入测试数据
 
  将显示可用的运行时列表。选择Eclipse 1.4 JVM,然后单击Finish。(图38)



  图38. 运行时部署位置
 
  要开始测试,请选择Return项,如图39所示。监视Events窗口以查看流程。



  图39. Events窗口
 
  您将在右侧看到结果。(图40)



  图40. 单元测试结果
 
  创建SCA客户机Web应用程序并在WebSphere Process Server中进行测试


  要让打包在同一SCA部署中的非SCA组件调用SCA组件,我们需要创建独立引用:


  在SCA Assembly Editor中,请选择面板中Import图标旁边的arrow。这将打开一个更小的子菜单。选择Standalone references图标,并将其拖至Assembly Editor 中的任何位置,如图41所示。



  图41. 创建独立引用

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • 谁知道阿里云河南服务中心是干什么的?

    一直接到阿里云服务中心的电话,说是阿里云的授权中心,主要提供阿里云的区域服务的?请问其他地方也有阿里云的服务中 […]

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。