载入中…

首页 | 资讯中心 | 图书资料 | 消费研究 | 商业地产 | 商机导航 | 猎头服务 | 培训咨询 | 零售案例 | 会展活动 | 企业关注

站内搜索:
SOA能给我们带来什么?
            ★★★

SOA能给我们带来什么?

 文章来源:天极网软件频道 更新时间:2008-2-12 14:53:46 点击数:


紧密耦合也有存在的道理

  在 SOA 环境中,应用程序组件被描述为 “松散耦合的(loosely coupled)”。松散耦合是指使用另一个组件提供服务的一个组件对前者的依赖性不强:它是语言独立的、平台独立的事务。

  然而,这不是说 SOA 在结构上有缺陷。这些松散耦合的应用程序组件之间的交互是由契约来定义的,一个严密的契约就是一个好的契约。在 SOA 上下文中,契约是一个应用程序服务的消费者与提供者之间的契约:“你给我发送一条包含所需格式的客户号码的消息,我为你提供与那个客户号码相关的以下各项信息 ...”

  当然,这种契约不同于您在买房子时签的那种契约。它必须以一种不同应用程序系统都能理解的语言来表达。在 SOA 中,这种通用语言就是 XML。

  服务!从这里获得您的 Web 服务!

  在 SOA 环境中,服务是用一种特定格式的 XML 来描述的,这种特定格式的 XML 就是 Web 服务描述语言(Web Services Description Language),简称 WSDL(发音为 WIZ-duhl)。在参考资料部分列出的 W3C 网页上,可以学到关于 WSDL 的详尽知识。这里我只给出一个概述。

  WSDL 通过 XML 模式的方式描述与一个服务相关的契约:它接受什么数据类型,它返回什么,等等。这个模式包含在一个称做 XML 模式定义的文档中(后缀为 “.xsd” 的一个文件)。契约的 WSDL 描述实际上可能指向一些 .xsd 文件;其中一个 .xsd 文件可能描述一个对象(例如一个 customer),其他一些 .xsd 文件可能描述与服务有关的一些操作(例如 GetCustomer 或 GetCustomerResponse)。契约描述还可以包括绑定,绑定与调用服务的格式有关。SOAP 就是这样一种格式,不过它与我们在沐浴时用的肥皂可没什么关系。

  SOAP 是简单对象访问协议(Simple Object Access Protocol)的缩写。同样,W3C 上的热心人已经提供了一个网页,上面有大量关于这方面的信息,在此我就不多费口舌了。我的一个同事把 SOAP 比作一种 XML 方言。虽然对 Web 服务的 SOAP 调用通常要借助 HTTP,但是 SOAP 并不是一定要使用这种特定的通信协议。例如,如果要按照异步的、消息驱动的模式来开发应用程序,那么我们可能选择使用消息队列,而不是 HTTP。

  我在这一节中安排了 “Web 服务” 这个术语,这可能导致您认为我正要谈到像您公司通过 Internet 公开给外面世界的那种服务。然而实际上,虽然服务是可以那样使用,但是更稳妥的说法是,大多数 Web 服务是部署在企业的 intranet 中。不要以为 Web 服务的使用就等于 SOA 的实现。企业架构设计师喜欢这样来形容应用程序系统的特征:程序之间以及程序与数据库表之间存在各种类型的点对点连接,就像一个 “毛团”。您可以通过 Web 服务实现所有这些连接,但是这样无法得到一个 SOA — 您只不过是有了一个 CPU 效率更低的毛团。

  什么是代理?

  您可能已经听到某个开发人员在讨论 SOA 时提到了代理。我比较喜欢我们一个企业架构师给这个术语下的定义:“代理是一块非常低调的代码,它只调用一个服务。” 她还将代理称作 “业务管道(business-to-plumbing)” 接口。前面提到,SOA 的主要优势是它让程序员可以在概念层次上与信息处理服务打交道。每个 Web 服务都有一个 HTTP 地址与之相关联,在使用服务之前,必须打开到该服务的一个连接。在此基础上,Web 服务消费程序的开发人员很可能更愿意面对一个对象,而不是一个 XML 模式。打开连接,将 XML 模式映射到一个对象,等等之类的 “脏活” 是由代理来执行的。

  服务消费程序和代理是紧密耦合的。服务的 WSDL 描述可能发生变化,这时我们可以只修改代理 — 而不必修改服务消费程序。而且,如果 WSDL 根据服务的一个新功能作出了调整,而服务消费程序不需要那样的服务,那么甚至连代理都不需要修改。

  我喜欢把代理比作我的侄子,他知道他家附近有一家骑自行车就能找到的书店。我知道那家书店有一本有用的书,我也知道这本书的价格。于是我告诉我侄子这本书的书名和作者,再给他买书的钱,然后让他去帮我把那本书买回来。他是如何去那家书店的?当他到了那家书店时,他如何找到那本书?他如何把那本书带回来?这些我统统不知道,我也不关心这些 — 我甚至不知道这家书店在哪儿。我只是想要这本书,我让我侄子去处理把这本书带回给我这中间的细节。(顺便说一句,之前我曾经把代理比作 “一块非常低调的代码”,这种比喻现在可以退役了。我有好几个侄子,他们都是很聪明的家伙。)

上一页  [1] [2] [3] 下一页


 

  • 上一篇文章:

  • 下一篇文章:
  •   相关文章:
    IBM SOA构架实践应用体验
    SOA走出实验室 从IBM窥见SOA新动向
    SOA市场格局及面临的挑战
    领跑SOA IBM与伙伴共成长
    SOA亚洲市场大盘点 IBM居首
    满足SOA各阶段需求 IBM发布软件服务
    “IBM 2007 SOA创新高峰论坛”发布会实录
    IBM推出SOA合作伙伴联盟
    IBM部分国内SOA客户案例简介
    首个SOA架构零售业系统落户成都
    【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口


      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
     
    发表评论
    姓名 *    
    评论内容
    Google
     今日新闻 more
     热点新闻 more
     零售世界 more
    2008年第8期:夫妻档生意
    2008年第7期:步步高上市
    2008年第6期:零售业CIO峰会特刊
    2008年第5期:三联迷局
     案例分析 more
     零售八卦 more
    .........................................................................................................................
    打造零售业门户网站 提供专业资讯和服务

    巨合资讯 | 广告服务 | 会员服务 | 在线投稿 | 意见反馈 | 联系我们 | 广告价格 | 链接申请
    Copyright ? 2005 ccsm.com.cn Inc.All rights reserved.
    北京巨合联佳商务咨询有限公司 版权所有
    联系电话:010-51607378 51607366 传真:010-51607380
    办公地址:北京市海淀区复兴路83号甲1楼乙门08室 邮政编码:100856
    京ICP备05070665号