Dan
Gisolfi ([email protected])
解决方案设计师,IBM jStart Emerging Technologies
2001 年 4 月
在过去的五年中,新兴技术在因特网的发展中起着重要的作用。Java 带给我们可移植的代码;XML 带给我们可移植的数据;普及计算使得任何设备之间具有了连通性。现在又为 Web 服务大做宣传。在这一系列的文章中,我将讨论该技术在开发下一代因特网中的重要性并描述 IBM 的 Web 服务策略。并且,我还将涉及到 Web 服务对商业的影响,怎样识别一个相关的解决方案良机,以及怎样评估围绕这项技术建立的各种厂商策略。
这是针对 CIO、CTO 或公司的软件设计师的一个新专栏的开始。他们是受在企业计算环境中大规模部署 Web 服务的技术和科技实现方案影响最大的人。然而,我的目的不仅仅只是讨论实现一个 Web 应用程序服务器或者在现有的应用程序上创建 XML 包装。我将涉及任何采用新兴技术的主题,并特别地集中探讨采用早期 Web 服务技术所面临的热点问题。
在这个专栏的第 1 部分,我将列出基本的 Web 服务术语,并根据分布式计算行业的业界趋势描述这些技术的地位。您可能不完全同意我提供的定义,但这将作为一个通用术语使我们能继续讨论下去。
计算机业界已经历了五年时间试图定义因特网在全球经济中所扮演的角色。在此期间,我们经历了有效 Web 内容的重要性及对电子交易的需求的早期成长阶段。经过这个过程,电子商务的概念 -- 一度是和 IBM 紧密相连的一个品牌 -- 已经逐渐只意味着商务。就是这样,它只是实实在在的商务;由因特网这个强大的工具武装着的商务。
现在电子商务将进入下一阶段;在这一阶段中,要讨论到商务交易和商务关系。在第 1 阶段,我们主要是处理前端的交互作用,此处的参与者是顾客。在某些情况下,顾客是一个消费者;在另外一些情况下,是一笔交易;但是在所有的情况下,我们是在与人打交道。在电子商务的第 3 阶段,我们需要处理供应链后端的交互作用。将企业和市场乃至和整个行业联系起来的交易,它包括了重要的内部事务处理:定单处理、履行、后勤、生产以及雇佣手续。这些后端交互作用大部分将介于计算机系统、商务应用程序和软件组件之间。下面进入 Web 服务。
前景
为了真正了解一项技术的价值并把这个价值转换成商机,很重要的一点是了解这个巨大的蓝图。从 IBM Web 服务的情形来看,这个巨大的蓝图指的是动态电子商务。动态电子商务的一个简单定义是:
着重于 B2B 的综合性和基础设施组成上的下一代电子商务,通过调节因特网标准和通用基础设施为内部和外部企业计算创造最佳效益。
本来,动态电子商务预想了这样一个因特网,商业实体能在其自身的域内以及在贸易合伙人之间有步骤地管理交互作用。从发现新的合伙人到与另一商务实体的集成,动态电子商务着重程序对程序的交互作用,而不是早期 B2C 电子商务阶段占主导地位的客户对程序的交互作用(请参阅图 1)。
图 1:动态电子商务一览
最近,我们着力于提供客户解决方案,来帮助管理从任何网络到任何设备间的最终用户和商务应用程序间的数据增加。从 screen-scraping 和 Web clipping 的概念到把内容转换到任何设备以支持瘦客户机架构优点的重要性,其重点都在于前端交互作用。
客户在瘦客户机架构中所作投资的逻辑扩展,就是以投资必要的基础设施来实现处理电子交易应用程序后端任务的软件组件集成。但是,下一代因特网计算的独到之处在哪儿呢?
动态电子商务原理
从现在起的十二到十八个月,随着动态电子商务的前景深入到电子商务,将出现许多基础原理,帮助弄清为说明 B2B 集成的复杂性必须要做的事情。现在,我将提供对这些理论的一些见解:
-
软件资源之间的集成必须松散地连接。
-
软件资源的服务接口必须完全公开并且可访问。
-
程序与程序间的消息传递必须遵守开放因特网标准。
-
可通过将核心商业进程和外包软件组件/资源缝合起来,以构建应用程序。
-
颗粒软件资源可用性的增强将使商业进程更灵活和更个人化。
-
可重用的外包软件资源将为服务消费者降低成本和提高生产效率。
-
软件能作为服务被出售。
为了实现动态电子商务,必须有公共架构和开放的因特网标准来支持。
动态电子商务的架构
进入面向服务的架构(SOA【请参阅参考资料】)。SOA 是执行动态电子商务的概念上的架构。如今,大多数运行在商业领域的系统和应用程序由紧密结合的应用程序和子系统组成。它的缺点是对任何子系统的改变可能导致各种相关应用程序被破坏。现有系统的这个缺点是造成系统维护费用高和可管理的合作伙伴的数量受到限制的原因的一部分。
SOA 不是新的概念。实际上,一年半以前,HP 的 e-speak 随着建立在专门的 SOA 实现上的市场活动而出现了。部分是由于版权的限制,e-speak 并未能造成很大的市场影响。
自从 2001 年 2 月以来,HP 修订了他们的软件策略,以通过 SOAP 整合分布式组件,但是他们仍然在解决方案的服务接口定义语言 (IDL) 上部分地保留了版权。不过,SOA 的潜在概念被像 IBM 和 Microsoft 这样的公司发现是有价值的,他们发现 SOA 可在其它的分布式计算概念失败之处获得成功,SOA 必须在开放的标准下实现。这样,在像 UDDI 和 WSDL 这样的被推荐标准上,这些公司间的合作以后将越来越多!
若不考虑如何实现,SOA 由 3 个参与者和 3 项基本操作组成(请参阅图 2)。
图 2: SOA 模型
服务提供者是一个网络节点,它为处理一系列特定任务的软件资源提供服务接口。服务提供者节点能代表商业实体的服务,或者它甚至能代表可重用的子系统的服务接口。
服务请求者是一个网络节点,它发现并调用其它的软件服务来提供商业解决方案。服务请求者节点常常代表商业应用程序组件执行远端的过程调用分布式对象,即服务提供者。在某些情况下,提供者节点就在本地的企业内部网上,或者在其它情形下,它可能存在于远端的因特网上。从概念上来说,SOA 本质上是将网络、传输协议、安全细节留给特定的实现来处理。
第 3 种 SOA 参与者是服务中介者;它是一个网络节点,作为储存库、电话黄页或票据交换所,产生由服务提供者发布的软件接口。商业实体或者独立的运营商能代表服务中介者。
这 3 种 SOA 参与者通过 3 个基本操作:发布、查找、绑定相互作用。服务提供者向服务中介者发布服务。服务请求者通过服务中介者查找所申请的服务,并绑定到这些服务上。
实现技术
一旦您理解了 SOA 的概念,就可以理解动态电子商务的一些基本理论,理解怎样最好地实现它。成功实现的关键就是依靠开放的因特网标准。动态电子商务策略是建立在一个新兴技术的核心系列上,它们反映了各种公司和业界组织的研究人员和顾问的工作。
那么,什么技术组成了现有的一系列实现技术呢?让我们来看以下这几个:
-
XML:可扩充的标记语言 (Extensible Markup Language)1.0 标准是一个基于文本的 World Wide Web 协会 (W3C) 规范的标记语言。与 HTML 使用标签来描述外观和数据不同,XML 严格地定义可移植的结构化数据。它能作为定义数据描述语言的语言,例如标记语法或词汇、交换格式和通讯协议。
-
SOAP:简单对象访问协议 (Simple Object Access Protocol) 是一个基于 XML 的,用于在分散的分布式环境下交换信息的轻量级协议。SOAP 在请求者和供应者对象之间定义了一个通讯协议,这样,在一个面向对象编程流行的环境下,该申请对象在提供的对象上执行一个远程的方法调用。SOAP 规范是由 Microsoft、IBM、Lotus、UserLand 和 DevelopMentor 联合订立的。该规范随后发展并建立了 W3C XML 协议工作组,有超过三十家公司参与其中。在大多数厂商的 SOA 实现中,SOAP 为分布式对象通讯构建基础。尽管 SOA 没有定义通讯协议,但由于在 SOA 实现中的普遍使用,最近 SOAP 被称为面向对象架构协议 (Services-Oriented Architecture Protocol)。SOAP 的优点在于它是完全和厂商无关,可以相对于平台、操作系统、目标模型和编程语言独立实现。另外,传输和语言绑定以及数据编码的参数选择都是由实现决定的。
-
WSDL:Web 服务描述语言 (Web Services Description Language) 是个提供描述服务 IDL 的标准方法的 XML 词汇。WSDL 是将 NASSL (IBM) 和 SDL (Microsoft) 之间的活动汇聚的产物。它为服务提供者提供一个简单的方法描述申请的形式并响应远程方法调用信息 (RMI)。WSDL 不依赖于底层的协议和编码要求来涉及服务 IDL 的主题。通常,WSDL 提供一个抽象的语言以利用各自的参数和数据类型来定义被发布的操作。该语言同时涉及服务的位置和绑定细节的定义。
-
UDDI:通用描述、发现和集成协议 (Universal Description, Discovery, and Integration ) 提供一组公用的 SOAP API,使得一个服务中介者得以实现。UDDI 规范由 IBM、Microsoft 和 Ariba 制定,促进基于 Web 服务的创建、描述、发现和集成。在 UDDI.org(一个超过 70 家行业和贸易组织的领导者之间的伙伴和合作)之后的动机是为 B2B 协同工作能力定义一个标准。
(请参阅参考资料了解上述材料的更多信息。)
这些实现技术共同地促成了 IBM 提供的一系列 Web 服务技术。随着时间的推移,将出现对这些东西的扩充和增加,但是所有这些改变还得继续依靠开放业界的努力,并与其共同合作。
Web 服务的兴起
我已经列出了执行一个面向服务的架构所需的实现技术。我把 UDDI 作为一个涉及存储库或者中介者(它们管理一个服务接口目录)的需要的标准方法。我提到了一个服务 IDL 概念和 WSDL 的任务。但是只有服务提供者的临界物质被建立,UDDL 的全部意图才能实现。他们必须调度软件资源在因特网上的消费。每个被称作 Web 服务的软件资源就是一个颗粒软件组件,它能作为构建模块来建立分布式应用程序或者用于商业程序的装配。一个 Web 服务能接收请求以完成一系列特定任务,并使用开放的通讯标准来响应这个请求以确保互操作性。而且,Web 服务本身可能就是 Web 服务的集成体。
总结
我写这篇文章的目的是提供一个综合的技术前景(通常在行业内被称为 Web 服务)的概述,并使动态电子商务概念更加清晰。
我们在三千英尺的高度开始讨论动态电子商务的一个前景。然后,我们通过一个普通架构 (SOA) 下降,接着通过概述一系列开放的实现技术继续下去。最后,我们降落在可重用的概念和网络可访问的软件资源以及一个 Web 服务上。
企业配备了必要的工具和产品来创建、部署和维护 Web 服务,这样就会冲击 B2B 的集成和基础设施组织,并达到动态电子商务的前景。
参考资料
关于作者
作为在 IBM 工作了 13 年的老员工,Dan Gisolfi 拥有 Polytechnic 大学的人工智能硕士学位和 Manhanttanville 大学计算机科学的学士学位。1999 年以前,他致力于从专家系统、OS/2 到网络安全付费系统的软件和产品开发。作为 jStart (jump-Start) 新兴技术组的一员,他既从事商业活动,又从事客户约定的技术方面工作。从商业开发经理和宣传者到解决方案的设计师和合同的谈判代表,他有很多头衔。作为 jStart 的 Web 服务方面的领导,他帮助 IBM 通过真实的商业解决方案,加速采用这一新兴技术。可通过 [email protected] 和他联系。
|