发信人: hnyjchuhong(楚泓)
整理人: hnyjchuhong(2001-12-15 19:59:12), 站内信件
|
定义Web Services
Web services一词近来频繁出现于各大计算机网站、杂志、论坛,一时间成为业界最为关注的新技术,那么就究竟什么是Web Service?
Web Service成为业界的明星只有短短几个月的时间,但现在似乎每一个公司、体系结构师、程序员都在讨论这个新概念。它看起来是一个非常通用的概念,那么它到底有哪些部分组成,是UDDI,WSDL,SOAP还是其他一些更通用和广泛的技术?
这样一个通用的概念通常容易让人产生云里雾里的感觉,如果用户不能真正理解它的概念,那么不但不能很好地了解他将给我们带来的改变,也将在日后选择相应的产品时无从入手。
所以,我们将从下面几个问题来辨别这个概念:
· 什么是Web Services?
· Web Services体系结构组成.
· Web Services FAQ. (stencilgroup )
什么是Web Services?
日益被引用的 "web services,"一词,有两层含义,一个特定的和一个概念性的:
· 特定地来说,Web Service是一系列标准的合并,组成一个面向服务、基于元素具有自我满足特性的应用程序体系结构。
· 概念上来讲,web services表达一个模型,在这个模型中,电子商务过程的各种离散任务广泛分布于一个增值网内。
正因为这些含义, web services 可以定义如下:
松散耦合、可重用的软件元素,语义上封装离散功能,通过标准Internet协议分布且能够被程序化存取。
我们来仔细看看这个概念:
· 首先,web services 是可重用的软件元素. Web services继承并进一步提升软件开发中面向对象的设计。也就是程序不是从头写到尾,而是通过组装其他人已经构架好的元素,以新的方式扩展而成。
· 第二,这些软件元素是 松散耦合的. 传统的应用程序把所有的子元素紧密连接起来。这些连接的复杂性要求开发人员完全理解和控制连接的所有细枝末端;此外,一旦建立起这种连接,很难把其中的一个组成元素取出,代之以其他一个元素。相反,松散耦合的系统,只需要更简化层次的协作,可以进行更灵活的重新配置。
· 第三,web services 语义上封装离散功能。一个 web service 是一个自包含的 "applet" ,它执行一个单独的任务。该元素描述它自己的输入和输出,其它软件可以判断它做什么,如何调用它的功能,它将返回什么结果。
· 第四,web services 可以被程序化存取. 与web站点和桌面应用程序不同, web services 的目的不是用来直接的人机交互,它们没有图形用户界面。相反, web services运作于代码层。它们被其它软件调用,和他们交换数据。当然,Web services可以与人机交互软件合作。
· 最后,web services 分布于 Internet. Web services 利用到处存在的现有的传输协议如HTTP.
Web Services结构组成
从意图上来说, web services不会按照单片系统的方式进行实现,而是代表一系列相关的技术。最少,任何一个web service需要有两个应用程序之间的连接—用程序员的话来说,一个远程过程调用(RPC),它通过HTTP用XML交换查询和响应。更通用的定义,有隐含一系列特定的、完整的标准。(见下图)。
图1: Web Services技术栈
今天,核心层已经被广泛地接受和实现。更高的层次到现在为止处于讨论之中,但是策略上的一致性,有可能使这些标准能够在不久的将来得以合并。
对那些公开和被广泛接受的标准的开发是web service能够得以协同成功的关键力量。同时,这些努力也产生了很多令人头昏脑胀的术语和新名词。我们下面对那些最重要的概念提供一个高层的描述:
Web Services 栈核心层
· 通用Internet协议. 虽然没有特别指定绑顶到何种传输协议,web service需要利用现存的最为人所接受和实现的传输协议. 特定的, web services 将利用HTTP。
· 可扩展标记语言 (XML). XML 已经被广泛接受用于交换数据。它几乎用作web services栈的每个层次。
· 简单对象存取协议(SOAP). SOAP是一个应用程序间进行消息传递和RPC类型通讯的协议。它基于XML且使用通用的Internet传输协议如HTTP来携带它的数据。SOAP已经提交给W3C。
Web Services 栈的更高层次
· Web Services描述语言(WSDL). WSDL是一种基于XML的描述语言,描述如何连接到一个特定的web service. 一个WSDL描述抽象一个特定服务的各种连接和消息协议,把它们捆绑到UDDI目录的“绿页green pages”中。IBM最近把WSDL提交给W3C,看来不久的将来将被采纳。
· 统一描述、发现和集成 (UDDI). UDDI 代表一个协议集合以及一个注册、实时搜索web services 和其它业务流程的公共目录。UDDI发起者主要是IBM 和 Microsoft, 在2001年5月发布了第一个公开版本。参见他们的站点
· Web Services流程语言 (WSFL). WSFL 是目前已经开发的仅有几个web services层次之一 。由IBM发起,WSFL小组希望能够定义一个web services的实现框架,用它来描述将不同服务组装到end-to-end业务流程所需的业务逻辑。
· 其它业务规则. 在Web services真正能够自动化关键业务流程之前,还需要有更多元素来支持复杂的业务规则。事实上,我们希望有安全和验证、合同管理、服务质量和其他更多类似这样的东西成为标准。
其它相关技术
· XML-RPC. XML-RPC表达web service 连接的最简单形式。如同它的名字所指出的那样,该协议是在发展到SOAP过程中一个松散定义的副产品。虽然它不是我们在上面定义的“经典“web services“的成员之一,XML-RPC可以用于实现类似的弱结构连接实现中。
· ebXML. 定义一个交换电子商务信息相关的标准XML格式的努力导致了今天的web services.ebXML类似但更专注于EDI类的信息交换。开发ebXML的组织OASIS最近采纳SOAP为他们标准的关键组件。EbXML于2001年5月被UN/CEFACT采纳为标准。
Web Services FAQ
什么是web services?
Web services是一组紧密相关的合并技术,它描述面向服务,基于元素的应用程序体系结构,它基于一个开放的,以Internet为中心的基础构架。Web services所表达的模型中,电子商务流程内的离散任务被广泛分布于一个增值网中。Web services元素可以被其它公司重新组合,来满足他们自己软件和业务流程的需求。
web service的一个例子?
web service的一个简单例子类似于eBay的拍卖引擎. EBay web站点提供一个非常成功的拍卖服务。但是,今天,如果一个销售过剩小器具的公司POP想在他自己的业务模型中增加拍卖功能,它需要从头开始开发它自己的拍卖软件,或者把客户导向一个象eBay一样的站点。如果采用web services, eBay可以联合它的拍卖功能,然后把它提供给其它的web站点和应用程序。 象POP这样的公司只需要简单订阅eBay的web service,在他们的应用程序中加入一两条代码与web service协作, 然后它们马上就会在自己的站点上拥有自己的拍卖功能。其它面向客户的例子包括股票信息、内容联合、地图服务等等。更多的以企业为中心的服务包括工资管理,运输和后勤,业务职能,信用记分等等。
哪些技术组成web services?
Web services不是一个特定的技术,而是一系列相关技术的合并,包括HTTP、XML、 简单对象存取协议 (SOAP)、 统一描述发现和集成 (UDDI)以及Web Services 描述语言 (WSDL). 一个 web service可以在任何平台上的任何开发环境中开发,只要它使用通用的协议与其它web services进行通讯.
web services与其他早期的分布式计算模型有何不同?
Web services扩展了先前基于元素的模型,包括CORBA和其他模型。Web services的关键不同在于(1)松散指定和耦合 (2)建立于现存的通用下部结构之上如HTTP and XML. Web services看起来将获得成功,因为这些技术的开创和实践者选择了一个递增式的技术变化,且保持“简单“这一原则。
它和EAI有何不同?
某些web services的应用程序和企业应用程序集成(EAI)相关。有三个方面的不同,首先,EAI把存在的,单片的应用程序连接到一个通用的下部结构。而web services设计成为更小的模块化的功能,这些小模块可以组装成动态的流程。其次,绝大多数的EAI技术设计为形成离散的、预先指定的连接,而web services使得开放端点、一到多的连接成为可能。最后, EAI解决方案的“全部或没有“模型需要一个强有力的策略和资源许诺,而web services 可以通过增量的成本和努力来达到.
web services是应用服务提供(ASP)的一个变种吗?
虽然ASP和web services都实现“软件作为一种服务“的概念,相似点也仅在于此。ASP在一个中心主机发布它的整个应用程序,而web services则是分布式的元素。ASP形成一个封闭的"黑箱“,而web services本质上就是可扩展的。ASP更多的是一种业务模型而不是技术解决方案; web services能够产生新的业务模型,但本质上是一种技术解决方案。
web services 是一种业务模型吗?
Web services不是一种业务模型。虽然它们将极大地影响软件公司发布和销售软件的模式, 但是web services是一种技术模型, 它不局限于任何特定的业务模型。
谁开发web services的相关标准?
Web services表示一系列相互补足的努力(有时候是合作),参与的包括单独的公司和软件供应商联合体。某些协议已经被独立的组织如W3C正式标准化。HTTP and XML 是DevelopMentor, UserLand软件, and Microsoft所开发SOAP的底层协议.在初始地SOAP 协议发布以后, IBM 和Ariba加入到Microsoft开发UDDI. IBM接着发布了他的一系列 web services标准包括WSDL, WSFL等等.
那些公司是web services背后的主要力量?
这是一个开放的问题. IBM和Microsoft在建立web services栈的过程中已经取得了早期的领导地位。Hewlett-Packard,一个早期专有化服务模型的建议者,现在重新面对web services. Oracle、 Sun和一些更小的公司(如BEA、 Bowstreet等等)已经加入到这个行列.
web services和HP的 NetAction、 Microsoft的 .NET以及 Sun ONE等等有何关系?
每一个这样的名字表示单独一个公司的策略和他们在web services世界建立自己产品角色的一种努力。
|
|