深蓝海域KMPRO

如何认识Web服务

2002-09-17 09:43

如何认识Web服务


 
准备

虽然才刚刚开始介绍,但要提醒大家的是Web服务还是一项有争议的技术。软件开发商几乎一致声称Web服务是未来的潮流。然而,许多分析人士和软件开发人员对Web服务的应用范围和实用价值持怀疑态度。

在大量广告和宣传攻势下,许多企业和个人感觉他们迟早会涉及到Web服务。他们是应该相信开发商的宣传,并跟着开发商路子走?还是持怀疑态度仅用“脚尖沾一点点水试试深浅”?本文中,我们会归纳各种观点,为准备使用Web服务的企业或个人提供一些意见和建议。

Web服务是什么

Web服务是什么?如果你问10个专家,可能会得到11个不同的答案和许多定义。

我们可以举个例子:你想过要在应用程序或者浏览器中加入证券实时报价吗?这样的程序就可以应用最简单的Web服务。

对最终用户来说,Web服务负责运行所有的程序,包括从简单的如证券实时报价程序到复杂的文字处理应用程序的某个组件。许多开发商如微软希望将他们原来庞大的应用程序分解成不同的Web服务,并以出租的形式向用户提供这些功能。你不必购买微软的整个Word程序,而仅仅租用你想使用的其中一部分功能。 

从消费者的观点来看,“Web服务”是已经登记在Internet服务器中现成的或者能与Web应用程序配合使用的程序组件(使用面向对象语言,对象中封装各种功能)。

从不同的Internet服务器集合组件组合成程序的概念并不新鲜。在技术上称这种方式为分布式应用程序,例如CORBA 和 DCOM。这种技术已经有些年头。但这种方法并不能说是完全成功的。所以我们不禁要问,Web服务能成功吗?

一句话:标准

追随标准

标准是Web服务的中心;没有标准组件互用、协同工作的目标是不可能实现的。Web服务主要的标准有:处理数据的XML(eXtensible Markup Language)扩展标记语言、Internet服务器注册服务的UDDI (Universal Description Discovery and Integration)统一描述发现和集成协议、服务如何使用的格式SOAP (Simple Object Access Protocol)简单对象访问协议以及提供运行服务所需的脚本WSDL (Web Services Description Language)服务描述语言。

整个标准家族为编写、分布和使用Web服务提供了通用的方法。自从所有主要的的软件公司签署了这些标准之后,我们认为,通过Web服务就可以实现原来还不可能完成的企业对企业B2B和企业对用户的B2C应用。

因此,为Web服务做准备的一个好方法就是跟上标准的步伐,并且要时刻关注它们的变化。了解制定标准的组织如W3C修改标准的情况,以及了解个别开发商(因为如偏见、反常、教唆、收买和扩充原因)根据自己的需求修改标准的情况同样很重要。最后要注意的是,要特别关注主要的开发商之间如Sun、 Microsoft、 Oracle 和 IBM.之间的竞争形势。

体验

因为Web服务将很可能对不同的行业有各种不同的影响,学习和研究同行业的案例是很有帮助的。一方面可以增长如何应用Web服务的见识,一方面也能学到不少经验得失。经历了以上的过程之后,最终你还必须对什么是Web服务以及如何应用Web服务有一个感性的认识,这通常都是你亲自尝试后的结果。

大约一年前,采用某些公开发布的开发工具包如微软的Microsoft SOAP Kit来开发Web服务是比较可取的方法。但我们认为,现在这种方式已经不再适合了。市面上已经可以找到许多不同形式的配套的Web服务开发工具。开发团队应该尝试不同的工具和开发环境,选择最合适的工具来完成开发任务。例如,购买IBM产品的就应该使用WebSphere Studio和Web服务扩展。同样,购买微软产品的就应该去使用Visual Studio .Net相应部分。

要牢记一点的是,要掌握所有必需的Web服务技术不是一件轻松的事情。SOAP、 WSDL和特别是XML,要完全掌握还需一定的时间。

挑战极限

在测试阶段,如果你有足够的精力(时间、金钱和耐心),请尝试挑战Web服务的极限。意思就是说例如你安装和构建一套基于Web服务的试用程序,在UDDI服务中注册成相应的Web服务,用户可以通过连接到Internet上来使用它。程序的下载和运行整个过程不要让用户觉得很无聊或者不要引起使用者的抱怨就行。测试你的程序,找出Web服务的问题,不要用一些简单程序或者平常的环境来测试,应尽量大胆地在各种复杂情况下进行试用。因为在Web服务的理论和协议中还有许多不足。如果这些不足影响程序的运行的话,我们必须加以解决。

下面是一些我们认为应受到详细考查和仔细研究的地方:

现存的程序的哪一部分应该注册成Web服务?并不是所有的程序都适合成为分布式的一部分,特别是对安全严格要求的或者有特别要求的情况。
有关的数据存放在哪里?大多数的Web服务必须接收数据或者包含数据。在广泛分布的应用程序环境中数据的分配可不是一件容易的事。

在哪里和如何列出在UDDI服务中的Web服务?有权使用的服务器可能是你自己的,也可能是某个重要的Web服务器。

你运行的Web服务有潜在的漏洞吗?

你的Web服务要收费吗?如果收费,如何收?

涉及什么样的安全问题?有关这方面的标准大多数还处在设计阶段。

购买什么

到目前为止在,我们主要谈论的是如何构建你自己的Web服务。从某种程度来说,存在许多软件开发商是很好的事情。他们会向你提供各种开发工具。然而,大多数也不是全部的开发商同样向你销售整套或部分的Web服务。这些开发商把Web服务当作了一头即将出奶的奶牛,他们渴望牛奶很快流出来。同样对消费者来讲,也希望这一天快点来到,他们也需要Web服务给自己带来好运,从中受益。

结论

事物都会有其两面性。一方面Web服务已经实实在在地存在,他们将(或最终)会在软件分布形式中占到主要的地位。然而另一面,这种软件形式会不会成为今后软件最终的分发形式还有待研究。因此,还是谨慎为妙。

在Web服务产品全力投入生产之前,比过多地谈论Web服务这种“流行趋势”更重要的事情就是Web服务还需大家的亲身实践和关注。

相关推荐