深入考察两种Web服务架构

原创 2003年07月18日 07:03:00
每个软件销售商,标准组织,或者市场调研公司都以不同的方式定义Web 服务。例如,Hewlett Packard 公司认为Web 服务是“通过将商业应用捆绑到Web 服务接口内部而创建的模块化的可重用的软件组件。”其它的公司在IT架构中的系统,应用程序和客户之间采用了更开放的方法。

在本文中,我们将快速的察看两种Web 服务架构栈,它们是由WebServices.org和IBM 提出的,并将对与每个架构栈相关的技术做一些介绍。W3C和其它Web 开发行业领导者,比方微软,Sun,Oracle,Borland,BEA和Hewlett-Packard公司都有它们自己的架构栈,但是学习我们选择的两个标准就应该能够让我们很好的了解这些架构是如何工作的。

一个Web 服务栈的架构,包括它分层的复杂性和数目,在每个公司的定义里都是不同的。每个架构栈都需要Web 服务接口,比方通用对象请求代理架构(CORBA),Java 2 企业版(J2EE),或者.NET来使得一个Web 服务客户端程序能够与一个应用程序服务器或者中间件进行交互。要使用这个接口,你需要简单对象访问协议(SOAP),以及其它的互联网协议。

WebServices.org 的架构栈
图A 包含了WebServices.org 公司定义的Web 服务架构栈

图A



这个堆栈中的顶层是服务浏览层,它包括两个或者多个同意聚合Web 服务协议的贸易合作伙伴。这一层也叫进程定义层,包括文档,工作流程,交易和处理流程。

下面一层--工作流程,服务发现和注册层--使用了Web 服务流程语言(WSFL)和MS XLANGE,一种基于XML的语言来描述工作流程的创建和功能。有了WSFL,你可以决定Web 服务应该被当然工作流程中的一个活动还是一系列活动。WSFL 特别适合业务模型的表示,而MS XLANGE适合于Web 服务组件的长期交互过程。MS XLANG在BizTalk里被实现了,它是微软制作的XML集成服务器。

栈的第二层还定义了Web 服务与公共路径和服务的交互过程。可以被公开的Web 服务能够从公共路径或者注册表来获得身份验证过程的信息。ebXML,E-Services Village公司和BizTalk.org是另外的可以通过UDDI来与Web 服务一道使用,从而为B2B 交易过程提供服务的站点。

你需要用栈中第三层定义的Web 服务描述语言(WSDL)来描述如何连接到一个Web 服务。使用WSDL,服务的请求方可以通过UDDI查找到Web 服务的信息。Web 服务合同语言(WSCL)能够帮助开发者使用XML方案以一种更通用的格式来更好的描述和建立数据的格式。

在在这个栈的第四层,消息发送层,SOAP扮演了基于XML的消息的封装器的角色,并包含了消息封装,路由,可靠投递和安全性方面的内容。随着处理过程的进行,比方客户定单或者是从仓库中发出货物等等,消息在这个过程中被反复的进行传递。

当一系列的消息处理完成以后,这个栈就进入了第五层的处理,传输协议层,它使用HTTP,安全的HTTP(HTTPS),可靠的HTTP(HTTPR),FTP或者SMTP。然后每个Web 服务向服务请求方提供服务或者将状态报告给服务提供者或者是中间件。

最后,栈的第六层,商务处理层,列出了Web 服务使用和增长重要性的其它关键部分。

IBM 架构栈
IBM 概念的Web 服务栈是Web 服务概念架构(WSCA)1.0的一部分。它与WebService.org 公司的Web 服务架构栈有一点点不同。(见图B)。

图B



IBM Web 服务栈通过IBM MQSeries 消息系统(现在被称为WebSphere MQ)和互联网Inter-ORB 协议(IIOP)--一个CORBA用来在两个应用程序之间传输数据,信息和消息的协议,扩展了HTTP和其它传输协议。这些并没有在WebServices.org 公司的架构栈中出现。

IBM Web 服务计算架构栈的核心是WSDL,WSFL和Web 服务终端语言(WSEL)。WSFL在架构栈的第二层,也就是服务流这一层,它使用WSDL来描述服务接口并依赖WSEL来描述服务终端的不可操作特性,比方服务质量(QoS)属性。

IBM 在两个方面描述了UDDI:在使用了WSFL(静态UDDI)以后建立了服务路径以及路径项目的服务发布(动态UDDI)。与WebServices.org 架构堆栈相似的是,IBM架构栈把QoS,管理和安全应用于所有的协议层。IBM 目前提供了一个Web 服务工具包(WSTK)来帮助设计和执行Web 服务应用程序以便它们能够相互查找并在业务交互过程中协作而不需要额外的编程或者手工的参与。

结论
当然,要实现真正互连的Web 服务还需要不同架构的标准随着时间的推移变得更相似些。不管这些标准最后变成什么样子,企业和软件销售商的扩展都很可能会遵循我们这两个例子中的服务浏览,数据传输和业务逻辑最后阶段的基本结构。

深入理解异步Web服务器 Tornado

这篇文章的目的在于对Tornado这个异步服务器软件的底层进行一番探索。我采用自底向上的方式进行介绍,从轮训开始,向上一直到应用层,指出我认为有趣的部分。 所以,如果你有打算要阅读Tornado...
  • junli_chen
  • junli_chen
  • 2017年11月22日 14:24
  • 116

深入Linux内核架构读书笔记(1)--简介和概述

版本选择2.6.24从不同视角看内核任务 从应用程序视角来看,内核是一台增强的计算机;从并发角度看,内核是资源管理程序;从内核研究角度看,内核就是一个库; 微内核/宏内核: 微内核:需要支持复杂的...
  • woshizuxi
  • woshizuxi
  • 2016年10月20日 16:10
  • 1395

深入Linux内核架构(中文版)pdf

下载地址:网盘下载 内容简介 编辑 本书讨论了Linux内核的概念、结构和实现。主要内容包括多任务、调度和进程管理,物理内存的管理以及内核与相关硬件的交互,用户空间的进程...
  • cf406061841
  • cf406061841
  • 2017年05月29日 10:08
  • 1524

Web服务架构入门概述

[摘要]本Web服务架构入门阐述了Web服务架构的基础设计原则和Web服务的基础技术。此外还对其功能进行了介绍,并提供了对其进行正式定义的规范链接。本文也是该架构所有规范的参考指南。 XML和I...
  • u014159274
  • u014159274
  • 2015年02月15日 10:25
  • 849

深入理解Linux内核架构

2.1 进程优先级 粗略分,实时进程和非实时进程。 实时进程:(1)硬实时进程,必须在可保证的时间范围内得到处理。 (2)软实时,仍然需要尽快处理,晚一点...
  • ljf_forlinux
  • ljf_forlinux
  • 2016年12月30日 21:44
  • 1394

《深入Linux内核架构》读书笔记

1.  关于udev (Page.318) 每当内核检测到设备时,都会创建一个内核对象,并向用户空间发送一个热插拔消息,该消息包含了驱动程序为设备分配的主从设备号。udevd守护进程监听该消息,并根据...
  • fervent
  • fervent
  • 2013年08月20日 14:37
  • 715

《深入理解Nginx-模块开发与架构解析》

一、研究Nginx前的准备工作 1、常见负载均衡          1)Apache:被设计成了一个重量级的、不支持高并发的Web服务器          2)Lighttpd和Nginx都是轻...
  • qq_21033663
  • qq_21033663
  • 2017年09月14日 19:48
  • 388

深入理解Nginx 模块开发与架构解析-陶辉 读书笔记

p3
  • ai2000ai
  • ai2000ai
  • 2016年09月18日 15:32
  • 1756

[jzoj]3760. 【BJOI2014】Euler(欧拉函数)

linkhttps://jzoj.net/senior/#contest/show/2008/3Problem给定yy,使φ(x)=yφ(x)=y的的xx最小.Data Constraint30% ...
  • Algor_pro_king_John
  • Algor_pro_king_John
  • 2017年06月21日 19:44
  • 171

WEB服务架构

此处我说的HTTP服务主要指如访问京东网站时我们看到的热门搜索、用户登录、实时价格、实时库存、服务支持、广告语等这种非Web页面,而是在Web页面中异步加载的相关数据。这些服务有个特点即访问量巨大、逻...
  • loophome
  • loophome
  • 2015年09月08日 11:16
  • 656
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深入考察两种Web服务架构
举报原因:
原因补充:

(最多只允许输入30个字)