深蓝海域KMPRO

Web服务领域/架构/应用/方案及其他

2003-01-08 09:54

Web服务领域/架构/应用/方案及其他

综合当今的Web应用及服务的特点,我们认为Web服务实施的领域可以分为四类:

1. 面向商务的Web服务(Business -Oriented Web Service)。该类服务针对的是那些面向企业的应用服务,包括企业内部的ERP系统、企业间的SCM/CRM等系统。当这些系统以Web服务的形式在网络(Internet或Intranet)中出现时,企业内的应用集成将更为容易,而且众多企业间合作伙伴的系统对接也将成为可能。目前现有的解决方案和产品的提供商有Bowstreet、Epicentric、WebMethods等。

2.面向消费者的Web服务(Con-sumer-Oriented Web Service)。此类服务针对的是那些原先的B2C网站的改造,为面向浏览者的Web应用增加(注意是增加)了Web服务的应用接口,使得第三方的桌面工具或自身提供增值的桌面工具能够通过更优秀的用户界面提供跨越多个B2C服务的桌面服务。这将使得用户使用Internet更为方便,从而获得更便捷的服务。比如我们完全可以在个人理财桌面系统中集成(调用)Internet上的股票询价和机票预定Web服务,使得个人理财应用的自动化程度更高。

3. 面向设备的Web服务(Device-Oriented Web Service)。此类服务的使用终端一般是手持设备和日用家电。对于前者而言,可以在不用修改网络服务的体系架构前提下,令先前的网络服务支持除PC以外的各种终端,比如Palm、PocketPC、手机等。如此,那些天气预报服务、Email服务、主动信息服务等将更为有效和便捷。对于后者,则可能是一个市场的启动期,有了Web服务作为基础框架,智能型的日用家电将真正获得标准的支持,从而有了广泛使用的可能。

4. 面向系统的Web服务(System-Oriented Web Service)。该类是指一些传统意义上的系统服务,比如用户权限认证、系统监控等。如果这些传统服务被迁移到Internet上,或者企业内部的Intranet上,其作用范围将从单个系统或局部网络拓展到整个企业网络或整个Internet。这样,基于同一系统服务的不同应用将得以在整个Internet环境中部署,譬如跨国企业的所有在线服务可以使用同一个用户权限认证Web服务。

为了实施这些Web服务,各大技术供应商纷纷提供了开发框架供应用提供商使用。在Web服务领域,领先的Web服务开发框架包括Microsoft .NET、IBM Web Services和Sun ONE。

下面,我们首先介绍一下各个开发框架,然后探讨一下现在投入使用的Web服务。

Microsoft.NET

Microsoft.NET是Microsoft推出的一个整体的技术框架。框架的概貌可参阅图1。其中下面的浅灰色部分是整个架构的基础部分,是基础的运行平台。上面的深灰色部分则是架构的核心部分。.NET Runtime则是.NET的核心,它赋予了Windows开发工具和应用软件新的理念。这一理念最初是Java所独有的,也就是虚拟机的概念。无论是使用VB、C++还是使用新的C#,编译程序都会将这些语言编写的程序编译成.NET Runtime能够执行的中间代码,然后在.NET Runtime上运行。通过这样一个统一执行的机制,所有的语言被统一在了一个平台上,而与语言配套的函数库、运行库也只需要使用一套,这样就大大降低了使用这些开发工具和平台支持的代价。同时,通过将.NET Runtime向非Windows平台,诸如FreeBSD、Linux甚至是Java平台移植,也使得Microsoft .NET的适用性大大提高。

 

  图1 Microsoft.NET架构

Microsoft .NET是以新网络工具和可编程网络服务的有力组合为特征的第三代Internet平台。Microsoft .NET架构的核心是Microsoft .NET Framework(.NET框架)。.NET从一开始就深深打上了Web服务技术的烙印,它的市场推广活动中,无时无刻不体现其作为Web服务的开发和部署平台的特征。可以说,.NET天生就是为Web服务准备的开发平台和部署平台,也可以说.NET就是Web服务平台。

从.NET框架角度看,所有组件都可以是Web服务,而Web服务也仅是一种组件。实际上,.NET框架提取出Microsoft的组件对象模型(COM)的精华,将它们与松散耦合计算的精华有机地结合在一起,生成了强大、高效的Web组件系统。该系统简化了程序员的“管道”操作,深入地集成了安全性,引进了基于互联网的操作系统,以及极大地改善了应用程序的可靠性和可扩展性。

.NET的主力开发语言C#已经提交给 ECMA 进行标准化。ECMA是一个致力于推动行业范围内采用信息和通信技术的、非特定供应商的国际标准组织。C# 的标准化使希望在任何平台上都可以实现其编程工具的公司能够实现他们的愿望。Microsoft 还向 ECMA 提交了 Microsoft .NET 框架的一个子集,叫做公共语言架构(Common Language Infrastructure,CLI)。这将使其它供应商能够在各种平台上实现 CLI,从而在各种平台上都能够使用各种工具创建用 .NET 框架提供的、基本体系结构模型所编写的软件。

大家应该能够发现,CLI是类似于Java VM的机制,是.NET跨平台的基本保障。具体的实施也已经开展,著名的Linux桌面环境GNOME的开发商—美国Ximian公司在2001年7月开始启动一个名叫Mono Project的开放源码版“.NET”的开发项目,旨在使开发者编写出同时在Windows和Linux上运行的.NET程序。Mono项目主要包括一个C#编译器、与微软公司的Common Language Infrastructure(CLI)兼容的类库、Linux版Common Language Runtime(CLR)编译器。虽然这只是起步,但是谁也不能说,它就不会像当初的Java那样,从Sun的小玩具变成了今天如此重要的开发平台。

Sun ONE架构

Sun One是针对未来Internet框架设计的,整个体系结构非常复杂。但就Sun ONE来说其重点就在于两个方面,开放性和标准化。Sun ONE的整体架构简单说就是J2EE加上对Web Services系列技术支持。Sun ONE从功能实现方面主要是解决一件事,即任何信息接入端都可以在任何时间、地点对网络进行访问,享受网络针对用户本人提供的智能化Web服务。为此Sun ONE需要做的就是,能够为所有接入设备提供访问平台,让众多的网络设备以及Web服务供应商之间能够进行通信。此外,还需要让消费者以及服务供应商能够进行有效的沟通,了解各自的供需情况,并智能地做出在特定时间、特定地点的调整。这一切对于Sun ONE来说,所涉及到的技术和标准集中在Java和XML两个方面。

首先是接入设备。据业界专家分析,到2002年有47%的互联网接入是通过PC进行的;到了2003年,又将有5亿台具有互联网功能的移动设备接入使用。

这些一旦变为事实,那么摆在Web服务供应商面前的重要问题就是为用户提供一个能够脱离底层硬件系统的开发平台,以及如何让这些千差万别的硬件平台通过互联网进行有效的通信。Web服务供应商仅仅需要提供Java应用程序,就可以满足来自各个层面的用户需求。如果不利用Java技术,而是选择某项操作系统,因为操作系统自身很难同硬件平台脱钩,所以就可能给用户带来很多的不便。这是操作系统面临的主要问题。

接入如此多的网络连接设备,如何让它们彼此进行有效的通信,就成了Sun ONE要解决的第二个问题。随着Web服务的增多(例如地理位置查询、股票证券的买卖),HTML已经不能胜任。XML的出现实现了互联网上服务器间的相互连接,从而它们可以相互协调、互动,使得整个互联网成为了一个庞大的信息系统。XML数据处理所具备的能力,使得它在未来的互联网架构中担当了一个重要角色。服务器间的通信协议SOAP(Simple Object Access Protocol),亦是一种轻型可扩展的XML信息传递协议。它是在传输层使用HTTP的、由非同步的消息实现不同应用间连结的协议。

实现了智能 Web服务之间的相互沟通和网络接入设备的统一后,所要做的就是让用户能够有效地得到Web服务。因此提供有效的目录,也是Sun ONE要解决的问题。但是简单的目录定义难以涵盖Sun ONE所涉及的内容,而利用UDDI标准,将所有Web服务的供应商提交的服务信息进行汇总就能够解决这个问题了。此外,Sun ONE会利用用户个人信息,通过对不同Web服务进行有机的组合,最终为用户提供极具智能的Web服务。

总的来说,Sun ONE就是在Sun现有的J2EE框架上,将Web服务的一系列技术XML、SOAP、UDDI逐一加入,并试图融为一体的开发框架。

IBM Web Services

IBM的Web服务战略和Microsoft、Sun不尽相同,IBM并没有推出一个整体的架构,如Microsoft的.NET,以及Sun的Sun ONE。IBM的策略是升级其每一个产品,使得这些产品都支持Web服务技术,以实现自身的软件家族向Web服务时代的变迁。IBM的Web服务领域的软件家族主要有五个成员为WebSphere、Visual Age For Java、DB2 VDB7.2、Tivoli、Lotus,它们的简介如下:

1. WebSphere是Web服务的运行平台和部署平台。其中包括这样一些组件:WebSphere Application Server,新版中它包含了对SOAP Servlet的支持,同时内置了对UDDI注册中心的客户访问端;WebSphere Business Integrator,用于企业应用间Web服务工作流的管理中;Web Services Development Environment Toolkit,它是IBM AlphaWorks提供的免费Web服务开发工具,可用于Web服务的创建、部署和测试。

2. Visual Age for Java是Web服务应用的开发和集成工具,目前的最新版本是Visual Age for Java v4.0 WebSphere Studio Application Developer。这一开发工具提供了一个完整的Web应用的开发环境。

3. DB2 UDB 7.2,DB2 UDB7.2为Web服务环境提供数据管理的能力,DB2 XML Extender使UDB的存储过程和SQL语句能够调用Web服务操作以及保存XML文档数据。

4. Tivoli提供对运行Web服务的IBM中间件的管理。

5. Lotus提供了丰富的Web Service的支持。

Web服务应用

目前已经有相当数量的Web服务可供使用,其中正式投入商用的Web服务已经渐渐延伸到各种领域。

Public UDDI Registry

公共UDDI注册中心是一个非常特别的Web服务。首先,它是一个标准的Web服务应用,用户可以通过SOAP消息访问公共UDDI注册中心。其次,它也是Web服务框架中的重要一环,各种企业实体提供的Web服务都被注册在公共UDDI注册中心,使用者可以通过SOAP API查询获取所需的Web服务,当然企业发布注册Web服务也一样是通过SOAP API来完成的。简而言之,UDDI注册中心是一个Web服务的注册库,这个注册库的访问是通过Web服务技术的。

Passport.NET

Passport.NET是Microsoft的.NET My Services系列中的一个重要的Web服务,提供公共的用户登录和权限认证服务。任何的服务提供者都能够通过Web服务技术集成和使用Passport.NET,作为自己的登录和权限认证机制。对于服务的使用者而言,只要已经在http://www. passport.com/申请了登录名,那么就可以使用这个登录名,在所有集成了Passport.NET的网站或服务中进行登录,并进行权限认证。对于开发人员而言,可以到Microsoft MSDN下载所需的资料。

1. Passport.NET SDK下载:http://msdn.microsoft.com/downloads/default.asp?url=/downloads/sample.asp?url=/msdn-files/027/001/885/msdncompositedoc.xml

2. Passport.NET 在线文档:http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ppsdk14/defeula2.asp?frame=true

通过Passport.NET这个Web服务,大量的重复用户登录/认证模块将不必在各种Web网站/服务中出现,他们需要做的只是集成Passport.NET。而用户也无需记住数量繁多的用户名,只要记住一个用户名就可以了,那就是向Passport.NET申请的Passport。

Google Web API

Google发布了一个开发工具包,这个开发工具包使得开发人员可以在自己的应用程序中集成Google搜索。搜索的接口是通过SOAP/WSDL实现的,也就是说Google将自己的搜索服务包装成了Web服务。目前这个工具包支持Java和.NET两种技术,如需使用该服务需要首先申请一个账号,但使用范围被限制在非商业领域,同时单个用户的使用频率被限制在每天1000次搜索以内。通过这个Web API,其它的网站和桌面应用就可以方便地通过Web服务技术将Google搜索服务融入到自己的服务中去。

1. Google的官方文档:http://www.google.com/apis/;

2. Google Web API软件包下载:http://www.google.com/apis/download.html

有了这样一个Google Web API的Web服务,很多桌面软件的“网络资源”模块的撰写将变得格外容易。例如一个理财软件,开发人员需要收集很多理财资源,然后将它们汇集在软件内。当软件被销售出去后,如何更新这些理财网络资源将成为一个非常困难的问题。如果开发人员使用Google来代替他们收集的理财资源模块,那么更新将不再成为问题。此时Google的更新就等同于理财软件的资源更新了,并且开发代价也没有提高,这时只需要集成一个Web服务,然后将返回的结果按照理财软件的风格表现出来就可以了,反而变得更加简单。

MapPoint.NET

在Microsoft的Tech·Ed 2002上,Microsoft发布了一个可使用的Web服务,MapPoint .NET Web Service。这同样是一个可编程的Web服务,它包含了地图、驾驶导航、距离计算、模糊查询以及其它的一些定位用途的功能,这些功能都可以被集成到你自己的应用、商务流程或是网站的功能流程中去。详细信息可参阅http://www.microsoft.com/mappoint/net/。

在这里我们需要指出的是,这里的应用不仅是网站、桌面应用等这些传统的地图功能的消费对象。对于这个Web服务而言,手持设备将是非常重要的一类客户端接入设备,通过集成了MapPoint.NET的手持设备,用户可以在车上使用导航和定位系统进行导航驾驶,甚至可以通过模糊查询来决定购物旅游的路线等等。

基于Web服务的解决方案

除公共Web服务应用之外,商业Web服务解决方案也有了相当多的实践,相对于前面介绍的B2C模式的Web服务,下面我们介绍的Web服务解决方案应当属于B2B范畴。

Bowstreet Solution

Bowstreet是由Gartner Group评估的六家Web服务领域领先的企业之一(这六家企业包括Microsoft、IBM、HP、Bowstreet、Sun和Oracle)。它销售的主要产品是Business Web Factory和Business Web Portal Solution。

Business Web Factory是一个Web服务的建模、装配、动态更改管理以及定制的平台。它由三部分组成:Designer、Customizer和Automation Engine。它们的功能说明如下:

1. Designer,使用Designer,程序员能够按照参数驱动的模式来装配Web服务,而不需要特别地编写代码,一般这些参数包括Web服务的调用规范以及调用行为的上下文等;

2. Customizer,通过使用这个简单的基于浏览器的工具,商务人员能够定制用户的基本信息以定义其使用Web应用的行为;

3. Automation Engine,能够在运行时接受Designer和Cusomizer进行的服务配置的更改,同时创建新的经过定制的Web应用。

Business Web Portal Solution包含Bowstreet针对企业电子商务而开发的一整套商务产品,诸如Enterprise Portal、Supply Chain Collaboration等,而这些产品全部基于Web服务,能够在一个统一的平台上进行集成交互。

DealEasy企业服务平台

DealEasy企业服务平台(DealEasy Enterprise Service Platform)是针对架构企业Web服务、推动商业Web的形成和架构而研发的一个企业Web服务的开发和部署平台。

这个平台包含了企业资源的连接/集成、企业数据的管理、企业Web服务的部署,以及企业间商业数据/服务集成等组件。同时它还提供了一些工具和软件包,以加快开发和方便管理。

平台中所有核心服务组件,包括ICatalog Engine、Message Routing Engine、Data Exchange Engine以及Web Service Deployment Engine,对外都提供Web服务界面调用,以支持快速的应用装配和开发。整个平台的具体结构可参见图2。

 

  图2 DealEasy企业服务平台架构

  
Web服务目录/搜索引擎

目前有两个比较重要的Web服务目录/搜索引擎,可供用户浏览和发现可用的Web服务。但是至今从Web服务目录/搜索引擎中获得的大部分还是实验用途的Web服务,也不乏前面我们介绍的那些投入商业使用的Web服务。无论如何,对于开发人员而言,Web服务目录/搜索引擎都是获取测试目标和测试对象的有效工具。

1. Salcentral.com,Salcentral是一个Web服务的搜索引擎,通过关键词搜索,使用者可以获得其需要的Web服务并集成为自身的应用。对于Web服务提供者来说,Salcentral也提供了界面使得Web服务提供者能够方便地把Web服务加入到搜索数据库中。

2. XMethods.net,XMethods是一个Web服务应用的目录,其上罗列了可用的各种商用或实验型的Web服务。对于开发Web服务的技术人员而言,这里是一个寻找测试对象的良好所在。

当今技术亮点—Web服务

目前,Java已经进入了大量的工业化生产阶段,成为业界的主流。XML也处于应用发展期,并且深入到几乎所有的应用领域中,广大开发人员和商务人员已经接受了XML,并将它作为主要的实现技术之一。Java和XML从显现到最后的工业化生产仅用了两年时间。而Web服务这个当今技术的亮点,还处于应用的起步期,它将会花多少时间跨入大量的工业化生产呢?我们拭目以待!目前,开发工具已经陆续到位,应用环境逐渐形成,从目前应用状况的发展趋势来看,Web服务应当与XML、Java是同一水平的主流技术。我们相信,Web服务应用的广泛普及将不会遥远。

相关推荐