架构Web Service: 为什么需要Web服务?
内容:
面临的挑战
错误的解决方案: 复杂系统对接的解决方案
正确的解决方案: Web服务和商业Web
Web服务是未来?
什么是Web服务?
参考资料
作者简介
相关内容:
柴晓路 (fennivel@uddi-china.org)
Chief System Architect
2001年7月9日
本文是架构Web服务的系列文章的首篇,从Web服务的商业需求开始,来探讨为什么要使用Web服务。首先,作者分析了目前电子商务应用所面临的挑战: 务实和追求经济利益是当今电子商务的需求。然而目前广泛应用的电子商务应用的体系架构使得这一商业需求很难实现,复杂的应用连接和程序代码造成了应用的高维护代价和更新代价。而作为现有技术的革新(而不是革命)的Web服务却正好能解决这一问题,成为目前应用环境中最为合理的解决方案。
Web服务似乎是一个崭新的名词,现在去浏览各大主流技术论坛,无一不在关注Web服务的发展。但是到底是么是Web服务呢?很多技术人员初次接触Web服务,会有一个错觉,认为这是一个新的系统架构,新的编程环境。是的,Web服务是一个新的概念,但他的系统架构,他的实现技术却是完完全全继承已有技术的,绝对不会使现有的应用推倒重来,而是现有应用的面向Internet的一个延伸。
在本系列中,作者将从什么是Web服务,为什么需要Web服务开始,就Web服务的构建模式,结合一个实例,详细阐述了Web服务的架构过程。
本文所引用的资源主要包括两类,一类是Web服务的技术资源网站,包含了大量Web服务的技术信息,另一类是Web服务“stack"系列技术规范,他们是一个整体的技术体系,包括UDDI、SOAP、WSDL、XML等。本文的最后给出了这些资源的链接,有兴趣的读者可以通过这些资源链接找到所需的内容。
面临的挑战
我们知道,过去十年的对IT产业/COM的"疯狂投资"的时代已经过去了,那是一个实验的年代。而现在,整个业界跨入了务实的阶段,当今电子商务发展的重心已经完全从过去的.COM的模式转向到传统企业的电子商务化的进程中来。既然是企业的电子商务化,模式是否崭新是次要的,而是否能为企业带来经济利益则是主要的。在规划企业的电子商务应用的时候,企业管理人员和系统架构师更多的关注该电子商务应用是否能为企业带来直接的经济收益、是否有利于削减掉某方面的开支成本、是否能够优化资源使用,这些完完全全是由企业的商业利益驱动的,在这一轮的电子商务发展中,技术完全是为商业服务的,任何脱离商业需求的"新"技术则必然是毫无用武之地。
在IT投资锐减的日子里,系统架构师们小心翼翼、广泛考证,在对企业自身运作机制的务实的仔细调研中,总结出了一些(比较少量的,只有7种)当前最有价值进行实施的电子商务应用,它们是:
企业门户(Portal):企业门户与一般信息门户有本质的区别,企业门户主要是为企业的重要客户、合作伙伴和自身的员工服务的。它应当具有个性化(这里的个性化并不仅仅是页面),应当提供一系列的在线服务,使得客户、合作伙伴和员工们得以使用企业门户获得必要的知识/信息,得以通过企业门户与企业应用进行交互及事务处理。
网上连锁商店(Storefront):为了拓展产品和服务的市场,拓广销售渠道以及增加销售额,企业应当建立具有自身品牌标识的网上连锁商店。这里需要注意的是,所谓网上连锁商店并不是说使用各种语言在各个国家分别建立网上商店,这只是其中的一个形式,更多的方式应当是将企业的网上商店能够加入到各种各样的网上实体中,比如门户网站、行业交易市场(e-Marketplace)、都市引擎等,使企业的销售渠道遍布整个Web空间。
集团内联网(Intranet)与知识库(Knowledge Base):集团的全球内联网能够使企业的雇员可以在全球范围内进行有效的交流和协作,充分利用企业的全球资源,以提升整体的生产力。集团的知识库能够为员工的协作提供丰富有效的工作中所需要的知识,以最大可能地提高员工的单位产出。
供应链(Supply Chain)管理:为提升企业的整体竞争力,企业往往需要保持并提升自身与其供应商的关系,采取流水线形式的采购方式并尽量减少运作成本,而要做到这一点,则必须要创建私有的交易通道和供应链关系的电子商务应用才能达到这一目标。
客户服务(Customer Service):通过建立这样的面向客户的服务门户或自助式销售网站能够实现跨区销售,提升客户的亲近程度和满意程度,并减少服务成本。
分销(Distribution)管理:建立分销管理应用能够使企业迅速地拓展分销渠道并挖掘新的市场机会。同时,企业还能裁减培训成本、服务成本和产品分销成本,并减少仓储费用。
提供ASP(Application Service Provider)服务:通过在Web上部署ASP服务,企业能够获得新的额外的收入。而提供的ASP中的A(Application)应当是企业核心竞争力的数字化表现,一般情况下,其范围可能就包含了前面提到的6种电子商务应用中的5种:企业门户、网上连锁商店、供应链管理、客户服务以及分销管理。
为了实施这些电子商务应用,不外乎几种手段:由自己的IT部门具体计划并实施,外包给软件公司或解决方案提供商计划并实施,当然解决方案或实施计划中可能会包含平台软件或专用软件模块的采购。然而,无论自身的IT部门还是外包的解决方案提供商,其给出的实施计划都是应用正式运营前的。一旦应用被部署之后,由于商务环境和商务需求的不断改进和不断变化,这些电子商务应用不可避免地需要被修订、需要被更新,以符合新的电子商务流程。而到最后,企业的管理人员甚至会想为企业的员工、客户以及合作伙伴分别定制具体应用以获得最大的商业利益并保持竞争力。
在这些应用更新的可能中,下面三个可能是最主要的也是最常发生的:
经常会增加新的电子商务应用,这常常会每几个星期或每几个月发生一次;
经常会对电子商务的流程进行更改,这常常每周或每几天发生一次;
经常应用户的需求而进行更改,这甚至每个小时都会发生,尤其是当需要为每个客户、每个合作伙伴或每个企业员工都定制其首选的电子商务应用的时候。
毫无疑问,e化的企业必须直面这一问题的挑战,经常的应用更新是当今电子商务应用部署所面临的最大问题,如何提升企业的响应能力,削减响应开支,提升企业的竞争力,是所有的e化企业必须面对的问题。
错误的解决方案: 复杂系统对接的解决方案
为了达到这一保持企业核心竞争力的目的,大部分企业都在努力奋斗着,毫无疑问他们在IT上投入了极多的资金和资源,那么他们的选择是否正确呢?在商务上,无疑是正确的,"没有电子商务将等于无商可务",可是方法呢?他们采取了正确的方法了么?
让我们首先来看一看目前大多数企业是如何操作的?
目前,在构建前面我提到的那些电子商务应用的时候,程序员们一般都是采用"独立解决方案"来实施的。也就是说,对于每个应用,他们都是为每个需要的企业资源或外部资源编写连接代码,以使得应用得以运行。这些资源包括:传统系统(legacy systems)和数据库、Web应用及Web资源,以及正在不断涌现的Web服务。
程序员还需要编写更多的代码以使得大量的用户能够访问每个应用,例如通过公司的Web站点,例如使用公司内部的桌面应用程序等等。由于这些应用都是"辛苦"编程的产物,几乎很难再定制。当需要融入新的电子商务流程,需要为额外的用户群提供访问界面,需要继承不同的电子商务应用以为用户提供更完整的增值服务,所有的这一切不得不从最初的系统设计开始做起。为什么会这样?因为所有的应用都是从一次性开发的角度实施的,应用的没一个更改都需要由特定的程序员来完成。这样,通过跨应用集成的方式实现电子商务应用的重用变得异常地困难。
由于每个应用都有其自己特有的基础架构,这些应用在部署、更改和维护上的代价都异常高昂。企业不得不会每套应用配置特有的专业技术人员,并保持与不同技术供应商或解决方案供应商的密切联系。同时这些应用即不能