SOA 案例研究:Web 2.0 SOA 场景(二)

日期: 2009-11-30 作者:developerWorks 中国 来源:TechTarget中国 英文

  《SOA 案例研究:Web 2.0 SOA 场景(一)》中我们给出了Web2.0的详细介绍,并给出了案例的简单说明,下面我们将介绍如何使用Web 2.0 SOA场景实现上文内容。

  使用Web 2.0 SOA场景实现

  Web 2.0 SOA场景可用于帮助JKHLE解决其业务和技术挑战。该场景定义了3种实现:

  RESTful Service创建实现

  描述映射到数据源的基于资源的模式。

  Rendering和Consuming RESTful Services实现

  描述呈现数据的格式,以及基于RESTful服务架构的数据使用。

  UI Composition and Communication实现

  描述从REST式服务到用户收集的数据展示。

  每个实现都可以组合或单独使用以解决业务解决方案。

  将要使用的架构

  为了解决其业务和技术挑战,JKHLE构建了一个新架构,该架构使用Web 2.0 SOA场景的原则。图3展示了此架构,以及使用实现的位置。

将要使用的架构  

图 3. 将要使用的架构

    新的架构具有以下优势:

  业务逻辑和业务策略现在是独立的实体,这就支持对业务流程变量的快速、简单且不间断的补充。

  简化的开发界面使JKHLE业务流程能够更容易地调用第三方服务,并使得第三方服务能够更方便地调用JKHLE的服务。
 
  新服务和新渠道可以快速集成到架构中。
 
  客户端和RESTful服务器的解决方案

  JKHLE要采用的架构将充分利用客户端和RESTful服务器之间的设计模式,如图4所示。

客户端和RESTful服务器的解决方案模式

  图 4. 客户端和RESTful服务器的解决方案模式

  该解决方案模式的使用如下所示:

  客户端(通常是RIA)向RESTful服务器发出一个基于资源的调用。

  服务器将JSON、XML、RSS或ATOM的负载返回到客户端。通过RIA或调用服务来使用返回的负载。

  客户端对XMLHttpRequest(XHR)调用使用GET、POST、PUT或DELETE方法,以映射到RESTful实体行为。

  产品映射

  图 5 展示了JKHLE用于实现将要使用的参考架构的产品。

  图 5. 产品映射

  在本文的其他部分,我们将更详细地介绍每个实现,以及JKHLE用于实现每个实现的产品。

  RESTful Service创建实现

  JKHLE使用RESTful Service创建实现来解决互联网服务域和服务集成域之间的交互,如图6所示。

JKHLE使用RESTful Service创建实现的位置

  图 6. JKHLE使用RESTful Service创建实现的位置

  以下架构考虑因素与RESTful Service创建实现有关:

  创建REST式服务的数据源(比如Web服务、数据库和屏幕抓取)
  Java™ 对象(比如Java beans、EJB™ 3和JPA)
  映射到后端实体的资源模型
  安全性
  治理
  设计模式

  本节将介绍REST式服务创建实现的2种设计模式。第一种设计模式如图7所示。

设计模式

图 7. 设计模式

  该设计模式描述了以下信息:

  现有遗留数据被转换为REST式服务。

  每个资源有一个 URI/URL,并且这些资源使用REST实体模式进行公开。

  可以使用简化的实体命名规则。例如:GetOrderServices?ordernumber=12345可更改为/rest/orders/12345。

  REST式服务提供的每种操作都是一种HTTP方法。例如,URI为/JKHLE/hotel/reserve的资源能够使用GET/JKHLE/hotel/reserve进行调用。

  REST服务负责调用应用程序服务。该应用程序服务可以通过一个适配器与另一个后端服务的企业服务总线进行连接。
 
  第二种设计模式如图8所示。

设计模式

  图 8. 设计模式

  这个设计模式描述了模式的构建方式:

  构建Java EE工件,比如EJBs、servlets或重用现有Java EE工件。

  使用WebSphere® Application Server Feature Pack for Web 2.0公开这些工件,如通过HTTP的JSON,或通过HTTP实体的XML。
 
  必要时使用WebSphere DataPower® in the DMZ添加更多Web 2.0安全性服务和转换。

  根据客户端发送正确的HTTP内容。例如,将JSON发送到Web浏览器,将XML、ATOM和RSS发送到其他客户端。

  Rendering和Consuming RESTful Services实现

  JKHLE使用Rendering和Consuming RESTful Services实现来解决消费者渠道和互联网服务域之间的交互,如图 9 所示。

JKHLE使用Rendering和Consuming RESTful Services实现的位置


  图 9. JKHLE使用Rendering和Consuming RESTful Services实现的位置
 

  以下架构考虑因素与Rendering和Consuming RESTful Services创建有关:

  响应负载(比如XML、JSON、ATOM和RSS)
 
  REST界面分组治理

  安全性(包括HTTPS和SPNEGO)

  运行时考虑因素

  以下产品可用于实现Rendering和Consuming RESTful Services创建:

  WebSphere Application Server Feature Pack for Web 2.0

  通过REST公开基于Java EE的工件。

  WebSphere sMash

  为创建Web 2.0应用提供了开发和运行时环境。

  提供与Dojo widgets和Groovy或PHP脚本的紧密REST集成。

  WebSphere DataPower

  提供了Web 2.0应用,支持REST-SOAP和JS检查。

  本节将介绍这些产品的作用,以及在Rendering and Consuming RESTful Services实现中使用这些产品的设计模式。

  WebSphere Application Server Feature Pack for Web 2.0

  Web 2.0 Feature Pack扩展了WebSphere Application Server的功能,它具有以下组件:

  Web 2.0到SOA的连接性

  该组件用于支持从Ajax客户端到SOA服务和其他Java EE资产的连接性。该组件通过Web提要将企业数据扩展到客户和合作伙伴。

  Ajax消息传输

  该组件用于将Ajax客户端连接到即时更新数据,比如股票报价或即时通信。

  Ajax开发工具集

  该组件是WebSphere Application Server基于开源JavaScript™ 运行环境的最佳Ajax开发工具集。

  Web 2.0 Feature Pack可以在设计模式中使用,如图10所示。

设计模式

  图 10. 设计模式

  该设计模型支持将Ajax客户端和混搭应用程序连接到外部Web服务、内部SOA服务和其他Java EE资产。它通过Web feeds向客户和合作伙伴扩展企业数据。

  WebSphere sMash

  WebSphere sMash支持开发人员使用集成运行环境和工具包中的PHP脚本、REST和Dojo快速构建并灵活地执行基于Web 2.0的应用程序。WebSphere sMash侧重于快速面市、易于开发和部署,以及惯例优先原则。

  WebSphere sMash提供了干净且简单的REST界面。每个REST都由一个事件处理程序文件定义,并具有映射到REST动词的独特函数。例如,REST动词POST映射到事件方法onCreate(), 并拥有名为/resources/people的示例URL。

  WebSphere sMash提供了将响应数据到XML、JSON和ATOM的自动化转换。

  WebSphere DataPower

  WebSphere DataPower是一个特殊的网络应用集合,它有助于集成、简化和加速SOA,并加强安全性。 WebSphere DataPower可以多种方式支持Rendering and Consuming RESTful Services实现:

  RESTful资源聚合:

  场景:跨多个服务实现的资源请求。这些调用的结果需要聚合或组合成一个复杂的报告。

  解决方案:WebSphere DataPower充当定义聚合资源URI的中介。该中介将请求传送给供应商并聚合响应。
 
  媒体类型转换:

  场景:现有供应商实施一种媒体类型,而客户端需要其他媒体类型。

  解决方案:WebSphere DataPower充当在请求信息中转换Accept头部和在响应信息中转换Content-Type头部的中介。该解决方案扩展了线速转换。

  REST/SOAP仲裁:

  场景:供应商支持REST,但是现有客户端需要SOAP。

  解决方案:WebSphere DataPower充当公开SOAP的中介。它将请求信息从SOAP转换到REST,并将响应信息从REST转换到SOAP。
 
  版本仲裁:

  场景:消费者和供应商各自发展。目标是最小化供应商实现的数量。

  解决方案:WebSphere DataPower充当代理多个资源版本的中介。资源请求转换为新版本。还将执行任何需要的标题和实体转换、改进或筛选。

  服务仲裁质量:

  场景:消费者签订使用资源配额的合同。必须监控该使用合同,并且根据请求率和请求数量执行。
 
  解决方案:必要时,WebSphere DataPower充当监控和执行服务限制质量、调速和请求形成的中介。

    Web 2.0 SOA场景可用于帮助JKHLE解决其业务和技术挑战。该场景定义了3种实现,上文介绍了两种方式的实现,我们将在《SOA 案例研究:Web 2.0 SOA 场景(三)》中给出第三那种方式实现的具体内容。

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐