SOA菜谱参考示例(二)

日期: 2008-08-24 作者:Clive GeeEoin Lane 来源:TechTarget中国 英文

  catalog服务


  此inventory服务模型包含catalog服务和inventory lookup服务,作为RAS资产存储在dW RAS存储库中,可以从菜谱对其进行访问。通过菜谱浏览到以下所示的位置,并将Ref Example Asset:SOA Inventory Service model导入到前面创建的Rational Software Architect项目Retail中。可以从菜谱访问catalog服务,如下图中所示:



  图7. SOA Inventory Design Model RAS资产
 
  catalog服务将在产品目录中查找商品编号——产品的库存编号(Stock Keeping Unit,SKU)。在模型驱动的开发中,服务是应用了UML 2.0 Profile for Software Services的UML模型类模型。UML 2.0 Profile for Software Services提供了用于描述服务的模型的公共语言。


  UML 2.0 Profile for Software Services提供了一种描述服务的公共语言(覆盖了整个开发周期的一系列活动),还可为不同的干系人提供不同的视图。UML Profile for Software Services是UML 2.0的概要,对服务建模、SOA和面向服务的解决方案进行了考虑。该概要已在IBM Rational Sofware Architect中实现,并成功地用于对复杂客户场景进行建模,同时可以帮助人们了解开发面向服务的解决方案时的注意事项(请参阅参考资料)。


  我们现在有了一个用于详细地表示如何实际实现服务的模型。通过使用此类模型,可以对应用程序和体系结构模式进行应用,以满足性能、可伸缩性等相关的非功能需求。catalog服务示例使用了WS响应目标模式(请参阅参考资料)和安全模式等模式。可以从catalog服务模型应用从UML到WSDL的转换和从UML到XSD的转换,以创建服务的WSDL和XSD表示形式,从而提供两种不同但相互补充的方法来在不同的抽象级别可视化服务。这些转换不在本文的讨论范围之内,将在下一篇关于WS响应目标模式的文章中进行讨论。


  ·catalog服务UML模型:catalog服务(参见下文)
  ·catalog服务规范(WSDL):catalog服务WSDL


  catalog服务模型


  图8显示了catalog服务模型。该模型包含两个操作:


  ·getCatalog()操作接受一个主键作为参数,并返回Catalog
  ·getCatalogs()操作接受一个主键数组为参数,并返回Catalogs数组



  图8. Catalog服务UML模型
 
  catalog数据模型


  图9显示了catalog消息模型。此模型中包含以下非常明了的事实:


  ·每个Catalog消息包含多个CatalogItem消息
  ·每个CatalogItem消息包含多个FeatureValue消息
  ·每个FeatureValue消息包含一个Feature消息



  图9. Catalog消息UML模型
 
  inventory服务


  inventory服务提供两个操作。首先是一个查询,确定库存中是否包含足够的商品,以满足订单所需的数量。在零售行业,仓库中的现有商品数量称为现货量(Quantity on Hand,QoH)。第二个操作记录库存水平的变化,此变化是由于商品售出或新进货物引起的:这称为库存动向。此服务也能在两个不同的抽象级别进行可视化,与上面的catalog服务类似。


  ·inventory服务UML模型:inventory服务
  ·inventory服务规范(WSDL):


  inventory服务模型


  图10显示了inventory服务模型。根据上面的服务描述,该模型包含两个操作:


  ·getQoH()操作接受一个QoHRequest作为参数,并返回QoHResponse
  ·inventoryMovement()操作接受一个Integer作为参数,并返回Boolean



  图10. inventory服务UML模型
 
  inventory数据模型


  inventory数据模型允许指定用于指定库存源的位置的请求。这个源可以为商店或地区仓库等。



  图11. inventory数据UML模型
 
  标识遗留应用程序


  遗留catalog应用程序设计模型


  参考示例遗留catalog应用程序设计模型可以从SOA Implementation and Optimization of Service Recipe进行访问,其访问方式与前面导入到Rational Software Architect中的SOA inventory服务模型和SOA inventory用例类似。



  图12. 访问遗留catalog应用程序设计模型
 
  图13显示了遗留catalog应用程序的UML类关系图。此应用程序是一个Java?组件,公开了一个Java接口。getCatalog()和getCatalogs()操作是非常粗粒度的操作,因为将分别返回整个目录和目录列表。



  图13. 遗留catalog应用程序的UML类关系图
 
  结束语


  在本系列的第一篇文章中,我们介绍了如何将Rational Software Architect作为RAS客户机来以菜谱的形式检索可重用资产。本文对此方法进行了扩展,以演示如何使用这些菜谱产生服务,以及可以如何使用模式来构建这些服务,以满足特定的非功能需求。


  可以通过采用自顶向下业务分析方法(构建新服务时)或自底向上方法(将SOA用于遗留系统转换时)来标识服务。


  为了演示如何在服务构造期间应用模式,我们使用了一个参考服务示例(可作为RAS资产下载):此参考示例以SOA Implementation and Optimization of Services Recipe为基础,提供了使用此菜谱的详细指南。


  本系列的下一篇文章将说明如何将WS响应模板模式应用于Catalog服务模型(请参阅参考资料),以得到一个更为灵活的客户机友好接口。


  作者简介


  Clive Gee是具有近30年IT行业经验的执行顾问。过去三年,他的工作重点是SOA,特别是服务开发流程及其控制的各个方面。
 
  Eoin Lane博士是高级解决方案工程师,负责对主要IBM SOA工作的应用程序开发模式进行收集和制订,并通过IBM模式控制流程对这些模式进行处理,以促进其推广应用。Eoin也是用于帮助SOA开发的模型驱动的开发(Model Driven Development,MDD)、基于资产的开发和可重用资产规范(Reusable Asset Specification,RAS)方面的专家。

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

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

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

  • 揭秘New Relic APM技术细节

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

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

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

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

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