[WebService]之代码优先方法与契约优先方法

什么是 web 服务?

web 服务是对应用程序功能的网络访问接口,它是使用标准 Internet 技术构建的。

我们目前看到的部署在 Internet 上的 web 服务都是 HTML 网站。其中,应用程序服务,即发布、管理、查找、检索内容的机制,是通过使用标准协议和数据格式访问的:HTTP 和 HTML。接受此标准的客户端应用程序(web 浏览器)能与应用程序交互,执行如订购图书、发送贺卡及阅读新闻的任务。由于基于标准的接口提供抽象机制,因此应用程序服务是否用 Java 编写以及浏览器是否用 C++ 编写,或者应用程序部署在 Unix 系统而浏览器部署在 Windows 系统上,这些都没有关系。Web 服务具有与平台无关的跨平台互操作性。互操作性是实现 web 服务的主要获益。分别基于 Java 和 Microsoft Windows 的解决方案通常很难集成,但应用程序与客户端之间的 web 服务层可大大消除其隔阂。

web 服务的好处

作为大众熟知的开放技术标准,web 服务可提供以下众多好处:

  • 增加供应商之间的竞争,从而降低产品成本。
  • 简化产品之间的转换,从而降低培训成本。
  • 提升各阵营产品互操作的能力,从而降低维护成本。
  • 能够更广泛地采用标准,使得标准可以延用更久。供应商和用户的广泛使用实现更高的接受度。

组织如何转向 web 服务

组织转向 Web 服务有三种主要方式。如下所述:

  1. 从头开始创建一个新的 web 服务(契约优先):开发人员创建服务的功能,并准备好描述服务的文档。
  2. 通过一个 web 服务来公开现有的功能(代码优先):此时,服务的功能已经有了。只需要实现服务描述。
  3. 对来自其他供应商或业务合作伙伴的 web 服务进行集成(中间相遇):有些情况下,在一个服务的基础上实现新服务比从头构建服务更加可行。在这些情况下,这些组织需要集成其他组织或业务合作伙伴的 Web 服务。

Web 服务概念的真正运用表现在第二个和第三个方法中,将我们引向可用于现有应用程序的其他 Web 服务和应用程序。

代码优先方法与契约优先方法

代码优先(自下而上)方法能让您通过公开现有应用程序来重用已有的投资。Credit Card System 是一个具有久经考验的商业价值的应用程序。竞争压力是转向 Credit Card System,以将其中的业务功能(如信用卡号验证)公开为 web 服务。实现类已经存在,需要做的就是创建 WSDL 并将类公开为 web 服务。

契约优先(自上而下)方法通常也称为 “纯方法”,这是从头构建新的 web 服务的正确方法。此方法首先是通过定义操作消息及类似信息构建 WSDL(契约)。然后构建端点接口,最后是实现类。

SOA(service-oriented architecture)

服务类型

  • 基于实体的服务(如:用户实体User)
  • 基于功能的服务(如:天气预报、邮件)
  • 基于流程的服务(流程:业务流程)
  • 业务流程 (BPM) ERP  不同业务系统之间的流程
  • 工作流程(JBPM)        同一系统内
上一篇:比较spring cloud和dubbo,各自的优缺点是什么


下一篇:ExtJs store加载