服务计算:Web服务的核心与未来

1. 服务计算概述

服务计算(Service-Oriented Computing/ Service Computing, SOC/SC),又称面向服务的计算

  • 从软件系统设计与开发的角度出发,认为“服务计算是一种以Web服务为基本元素进行应用系统开发的方式”
  • 从服务技术的应用角度出发,认为“服务计算是集服务概念、服务体系架构、服务技术和服务基础设施于一体,指导如何使用服务的技术集合”
  • 从分布式计算的角度出发,认为“服务计算是从面向对象和面向构件的计算演化而来的一种分布式计算模式,它使得分布在组织内部或跨越组织边界的不同应用系统能实现快捷、灵活的无缝集成与相互协作”

服务计算中的服务:

  • 服务计算的服务是一个广泛的概念,它具有多种形式。
  • 通常是在软件中实现的一项业务功能,可以被重用,人们不需要知道服务内部实现就可以理解服务用途并使用服务来构建应用系统 。
  • 是自描述、平台未知的计算单元,可支持分布式应用快速、低成本的组合。
  • 可以执行多种功能,从简单的请求到复杂的业务流程。
  • W3C将服务定义为:“服务提供者完成一组工作,为服务使用者交付所需的最终结果。最终结果通常会使使用者的状态发生变化,但也可能使提供者的状态改变,或者双方都产生变化”。
  • 结构化信息标准促进组织(Organizations for the Advancement of Structured Information Standards, OASIS )对于服务的定义:一种访问某一个或多个功能的机制,这种服务使用预先定义的接口,并与该服务描述的约束和策略一致。

2. Web服务特点与原则

2.1. 特点

  • 开放性:遵循开放标准,便于共享与复用
  • 自治性:服务消费者发出服务请求后,服务何时开始、在何地执行、如何执行都不受消费者控制
  • 自描述性:在开放环境下,服务消费者通过服务描述来认识、了解、使用服务
  • 平台语言无关性:服务本身提供的能力以及服务消费者获得服务的方式是和服务的实现无关的,即无需知道服务的实现语言和平台就可使用服务

2.2. 原则

  • 服务是可复用的:服务被设计为支持潜在的复用,降低开发成本、缩短开发时间、提高系统的质量
  • 服务共享一个正式契约:为支持服务间的交互,需要共享描述服务信息交换术语定义的正式契约——服务描述,例如Web服务的服务契约包含四部分:WSDL文档、XML Schema、WS-Policy、Service Level Agreement
  • 服务是松散耦合的:
    • 服务请求者不知道提供者实现的技术细节,比如程序设计语言、部署平台、部署位置等等;
    • 服务请求者往往通过消息调用操作,请求消息和响应,而不是通过使用API和文件格式。
  • 服务抽象:服务是底层逻辑的抽象,只有经由服务契约所暴露的部分对于外界是可见的。契约之外所表达的底层逻辑是不可见的
  • 服务是可组合的:服务可能组合其他服务,以表示不同粒度的逻辑,并促进复用及服务抽象
  • 服务是自治的:强调提供服务的功能实体的完全独立自主的能力。强调实体自我管理和恢复能力。
  • 服务是无状态的:服务不需要管理状态信息,尽可能设计成无状态的
  • 服务是可发现的:服务应当允许被发现,并且服务请求者(人工或使用其的服务)应该能理解其描述信息

3. Web服务的相关协议

Web服务协议栈

  • SOAP是简单对象访问协议(Simple Object Access Protocol),描述传递信息的格式,用来在消费者和服务提供者之间传送消息。
  • WSDL是Web服务描述语言WSDL (Web Services Description Language),用来描述如何访问具体的服务接口。
  • UUDI是统一描述、 发现和集成服务(Universal Description, Discovery and Integration),是一种目录服务,用于注册、查找web服务。一个消费者可以在UDDI注册表中查找服务,取得服务的WSDL描述,然后通过SOAP来调用服务。
  • Web Service Business Process Execution Language (WSBPEL)是由OASIS组织推出的业务流程服务链执行语言。

如某服务链的组合工作流程如下图所示:

4. 面向服务的架构(SOA)

SOA架构中有三种角色:

  • 服务提供者:发布自己的服务,并且对服务请求进行响应。
  • 服务注册中心:注册已经发布的web service,对其进行分类,并提供搜索服务。
  • 服务请求者:利用服务中心查找所需要的服务,然后使用该服务。

SOA的三种操作:

  • 注册发布操作:为了使服务可访问,需要发布服务描述以使服务使用者可以发现它。
  • 查找发现操作:服务请求者定位服务,方法是查询服务注册中心来找到满足其标准的服务。
  • 绑定调用操作:在检索到服务描述之后,服务使用者继续根据服务描述中的信息来调用服务。

开发寿命周期:

构建

开发和测试服务、定义服务接口和定义Web Services实现描述

部署

向注册中心发布服务接口和服务实现的定义,把Web Services部署到执行环境中

运行

调用Web Services

管理

持续地管理和经营Web Services 应用程序

SOA所解决的具体问题:

  • Internet环境下的组织间交互
  • 异构系统的集成与互操作
  • 频繁变化的业务流程集成需求
  • 分布式共享与协作

SOA的适用场合:

  • 跨防火墙通信、应用程序集成
  • B2B集成、软件和数据重用
  • 分布式式计算、异构系统的互操作

SOA的不适用场合:

  • 单机应用程序
  • 局域网的同构应用程序

5. 面向服务的软件形态

软件应用形态的变化:

传统软件形态与面向服务的软件形态:

商品消费——软件服务

软件即服务(SaaS):

传统方式:

面临众多的IT技术和产品:

服务带来的便利

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Aaron_Chou313

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值