WebService 学习(1)

Web Service  Web Services

Web Service是一种服务导向架构技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作。Web Services其实是一套技术的集合, 通过Web Services能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成,是实现Web服务的一种方式,一整套技术。Web Service可使您的应用程序成为 Web 应用程序。Web Service通过 Web 进行发布、查找和使用。

基础的 Web Service平台是 XML + HTTP。HTTP 协议是最常用的因特网协议,用于不同浏览器之间传输数据。XML 提供了一种可用于不同的平台和编程语言之间的语言。

Web service平台的元素:服务调用协议SOAP (简易对象访问协议),服务描述协议UDDI (通用描述、发现及整合),服务描述协议WSDL (Web services 描述语言)。

SOAP

  • SOAP 指简易对象访问协议
  • SOAP 是一种通信协议
  • SOAP 用于应用程序之间的通信
  • SOAP 是一种用于发送消息的格式
  • SOAP 被设计用来通过因特网进行通信
  • SOAP 独立于平台
  • SOAP 独立于语言
  • SOAP 基于 XML
  • SOAP 很简单并可扩展
  • SOAP 允许您绕过防火墙

WSDL

WSDL 是基于 XML 的用于描述 Web Services 以及如何访问 Web Services 的语言。

  • WSDL 指网络服务描述语言
  • WSDL 使用 XML 编写
  • WSDL 是一种 XML 文档
  • WSDL 用于描述网络服务
  • WSDL 也可用于定位网络服务
  • WSDL 还不是 W3C 标准

UDDI

UDDI 是一种目录服务,通过它,企业可注册并搜索 Web services。

  • UDDI 指通用的描述、发现以及整合(Universal Description, Discovery and Integration)。
  • UDDI 是一种用于存储有关 web services 的信息的目录。
  • UDDI 是一种由 WSDL 描述的网络服务接口目录。
  • UDDI 经由 SOAP 进行通迅。
  • UDDI 被构建于 Microsoft .NET 平台之中。

Web Service的优势

  • 平台无关。不管你使用什么平台,都可以使用Web service。
  • 编程语言无关。只要遵守相关协议,就可以使用任意编程语言,向其他网站要求Web service。这大大增加了web service的适用性,降低了对程序员的要求。
  • 对于Web service提供者来说,部署、升级和维护Web service都非常单纯,不需要考虑客户端兼容问题,而且一次性就能完成。
  • 对于Web service使用者来说,可以轻易实现多种数据、多种服务的聚合(mashup),因此能够做出一些以前根本无法想像的事情。

Web service的发展趋势

  • 在使用方式上,RPC和soap的使用在减少,Restful架构占到了主导地位。
  • 在数据格式上,XML格式的使用在减少,json等轻量级格式的使用在增多。
  • 在设计架构上,越来越多的第三方软件让用户在客户端(即浏览器),直接与云端对话,不再使用第三方的服务器进行中转或处理数据。

Web service详解

Web Service 最基本的组成部分为服务的提供者(Service Provider)和服务的请求者(Service Requester)。这看起来很像 C/S 架构的软件,与之不同的是,Web Service 两端的应用是通过基于标准的 XML 格式的协议进行通信的,这种最常用的协议就是 SOAP(Simple Object Access Protocol)。当然,web services 不简单地只是按这种方式进行通信。按照 Web Service 的相关标准描述,服务的提供者应该首先通过 WSDL(Web Service Definition Language)和 UDDI (Universal Description, Discovery, and Integration)发布它所提供的服务到一个统注册这些服务信息的存储库中去。这样,服务的请求者就也可以通过 WSDL 和 UDDI 发现到服务提供者提供的服务,并可以通过应用的调用方法来使用这个服务了。

Web 服务所使用的 XML 可以用真正与平台无关的方式来描述任何(所有)数据,以跨系统交换数据,因此转向了松耦合应用程序。而且,Web 服务可以在较抽象的层面上工作,较抽象层面可以按照需要动态地重新评估、修改或处理数据类型。所以,从技术层面上讲,Web 服务可以更方便地处理数据,并且允许软件更自由地进行通信。

从更高的概念层面上讲,我们可以将 Web 服务视为一些工作单元,每个单元处理特定的功能任务。再往上一步,可以将这些任务组合成面向业务的任务,以处理特定的业务操作任务,从而使非技术人员可以考虑一些应用程序,这些应用程序能够在 Web 服务应用程序工作流中一起处理业务问题。因此,一旦由技术人员设计并构建好 Web 服务之后,业务流程架构师就可以聚集这些 Web 服务来解决业务层面上的问题。

有了通用定义的接口和设计良好的任务,重用这些任务就变得更容易了,因而重用这些任务所代表的应用程序也就变得容易了。应用程序软件的可重用性意味着在软件上的投资有了更好的回报,因为可以从同一资源产生更多收益。可重用性使业务人员可以考虑以一种新的方式来使用现有的应用程序,或者以一种新的方式将应用程序提供给合作伙伴,因此可能增加合作伙伴间的业务交易。

Web 服务试图解决的主要问题是数据和应用程序集成的问题,以及将技术性的功能转换为面向业务的计算任务的问题。

Web 服务采用一系列相关协议来描述、传递服务和与服务交互。根据其通常的功能和使用,可以将这一系列协议进一步划分为组。第一组处理消息传递、接口描述、寻址和交付的问题。最有名的是消息传递协议,称为简单对象访问协议(Simple Object Access Protocol,SOAP)。此协议对消息进行了编码,这样就可以通过传输协议(如 HTTP、IIOP、SMTP 或其他协议)在网络上传递它们。

Web 服务描述语言(Web Services Description Language,WSDL)表示为一系列 XML 语句,这些语句组成了每个服务的接口的定义。另一个正在制订的规范是 Web 服务寻址 (WS-Addressing),它定义了如何在分布式体系结构中唯一地进行 Web 服务寻址和标识 Web 服务。另一个流行的规范是 Web 服务调用框架(Web Services Invocation Framework),在这种框架中,您可以定义任何类型的组件的 WSDL 接口,即使它们没有使用相同的消息传递协议。

下一组协议和规范定义了服务如何公开它们自己以及如何在网络上相互发现。对于要相互查找的服务,统一描述、发现和集成(Universal Description, Discovery and Integration,UDDI)为查找和访问服务定义了注册中心和相关协议。Web 服务检查语言(Web Services Inspection Language)是 UDDI 在不使用注册中心的情况下采用的一种可选机制。

用于 Web 服务的安全性协议是从 Web 服务安全性 (WS-Security) 规范开始的,该规范为安全通信定义了基于令牌的体系结构。以此为基础,有六个主要的组成规范:

  • Web 服务策略 (WS-Policy) 和相关的规范,定义了关于服务交互方式的策略规则。
  • Web 服务信任(WS-Trust),定义了安全交换的信任模型。
  • Web 服务隐私 (WS-Privacy),定义了如何维护信息的隐私。
  • Web 服务安全会话 (WS-Secure Conversation),定义了如何使用在Web 服务策略 (WS-Policy)、Web 服务信任 (WS-Trust) 和 Web 服务隐私 (WS-Privacy) 中定义的规则,以在用于交换数据的服务之间建立安全会话。
  • Web 服务联盟 (WS-Federation),定义了分布式标识的规则以及如何对其进行管理。
  • Web 服务授权 (WS-Authorization),定义了如何处理对访问和交换数据的授权。

Web service如何构建

在构建应用程序时有很多考虑 Web 服务的方式。在最基本的层次上,高级通信协议允许应用程序相互交谈。在过去几年里,这一层次已经取得了巨大的进展,出现了许多工具,通过使用这些工具,软件开发人员可以编写交互的 Web 服务并构建复杂的应用程序。通常,这一层次的特点是服务之间的一对一直接交互或比较少的服务相互交互。

然而,如果只是将 Web 服务作为通信协议就未能实现真正的面向服务的体系结构 (SOA)。 SOA 描述了服务的整个系统如何动态地相互查找,如何聚集在一起执行某些应用程序,以及如何按照多种方式进行组合。该模型鼓励技术和软件的重用,从而发展了设计、开发和使用应用程序的方式。它使分布式计算更接近于现实。在这一层次上,软件开发人员需要考虑 SOA 模型并通过此模型来设计他们的分布式应用程序。这一层的特点是使用各种技术来支持服务的分布式计算,比如 企业服务总线 (ESB),它是一个通用的分布网络,可以与服务一起协同工作。

而最高的层次是把 SOA 模型和许多组件服务看作是构件,这些构件可以装配成作为一个整体的某些部分并放入完整的应用程序中,而不是用传统的方法来编写一行一行的代码。通过检验连接接口,我们可以在不曾真正编写一行代码的情况下构建整个应用程序。事实上,按照这种方式,甚至还可能得到直接代码,因为服务可以通过多种不同的语言和平台进行编写。可以将构件放在一起来组成定义应用程序的执行方式的操作工作流,而且还可以用其他工具来监控每个服务或服务组的工作流的有效性。在这一层次上,开发人员可以把常规编程语言放在一边,而使用模型驱动的体系结构 (Model-Driven Architecture) 来帮助他们构建设计更精确的应用程序。然后,这样设计的应用程序就可以运行在分布式系统(如 ESB)之上。







  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值