TechTarget中国网站推荐

SOA菜谱参考示例(二)

2008-8-25  选择字号:  | |
打印本文章
正在加载数据...

  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)方面的专家。


使用可重用资产构建SOA应用程序
 可重用资产、菜谱和模式(一)
 可重用资产、菜谱和模式(二)
 SOA菜谱参考示例(一)
 SOA菜谱参考示例(二)
 WS响应模板模式(一)
 WS响应模板模式(二)
 请求端缓存模式(一)
 请求端缓存模式(二)

原文出处:http://www.ibm.com/developerworks/cn/webservices/ws-soa-reuse2/index.html
来源:IBM    作者:Clive Gee,Eoin Lane    
中间件市场2008年第2季度整体规模达到3.69亿人民币,环比上升达到10.6%,同比增长24.3%.同比增速低于前一个季度,也低于去年同季度,主要是因为宏观经济环境的变化……
服务组件体系结构(Service Component Architecture,SCA)是下一代编程模型,此编程模型提供了三种异步调用模式。您可以使用那些模式异步地调用目标SCA服务……
在SOA概念普及、技术筹备之后,一些中间件巨头正通过具体的产品,将SOA推进到全面实施阶段。然而,正如Sun公司总裁Jonathan Schwartz所指出的,中间件还存在着种种弊端……
信息系统综合集成的水平反映了一个企业、一个部门,乃至整个国家信息化建设的水平。面对复杂多变的网络世界,中间件已经成为信息系统综合集成的利器……
在调用JSP文件以后,JSP页面上选择的参数被传递给Caller组件的Java实现(请参见清单4)。该实现将根据参数发出特定的异步调用……
SOA能够优化业务需求与IT的一致性,能够将业务流程活动从服务实现中分离出来,还能够降低操作成本。只有在不固定供应商的情况下才能真正实现这些功能,此时面向SOA……
面向服务的架构(SOA)是一种基于可以重用的服务的,新的开发应用的架构体系. 近年来, 企业界对于SOA的需求越来越急切. 为了满足这样的需求, 一系列的SOA基础架构产品被推出. 主要的厂商如Oracle, BEA System, IBM都提供了SOA平台产品. 在一个包含各类应用的复杂的IT系统中, 要使用适配器并且在一个符合业务需求的流程中将各类应用串连在一起是一个非常困难的事情, 但是现在的SOA平台将困难转变成了容易。
Web 2.0是2003年之后互联网的热门概念之一,不过对什么是Web2.0并没有很严格的定义。一般来说Web 2.0是相对Web1.0的新的一类互联网应用的统称。
Ruby on Rails, 也称RoR或简称Rails, 是一个使用Ruby语言写的开源网络应用框架,它是严格按照MVC结构开发的。它努力使自身保持简单,来使实际的应用开发时的代码更少,使用最少的配置。
最新更新
专家答疑
技巧
Jason Bloomberg
企业是否应该意识到,云计算有许多积极因素,是否也有负面影响呢?重要的是要记住,云计算仍然非常新,而且在许多方面比vaporware更现实……
Ron Schmelzer,Jason Bloomberg
我们正在进入多元化的银行和金融服务,我们处理客户关系管理CRM,BI,遗产系统,产品J2EE和.NET和其他异构平台。如果我们想要转移到一个共同的平台,为什么要选择SOA……
Ed Tittel
在您最近的博客中提到,在XML.com中有你喜欢的XML内容。关于XML的信息还可通过什么途径可以得到?请与我们分享更多的来源……