
| 出版日期:2003-11-03 总期号:1263 本年期号:82 |
|
Web Service服务企业
徐洪禹 开栏寄语 物理网络搭建起来后,如何让这些硬件设备更好地为人们服务,关键在软件。本栏目就是要报道那些与网络相关的软件,帮助网络建设者和使用者使自己的网络发挥最大效能。 栏目名称中的“网络”是一个广义概念,代表所有通过电信号或光信号帮助不在一处的人们完成相互信息传送的体系架构。所谓“网络管理”,是指那些能够监视或者控制物理网络中各种网元设备的软件;所谓“网络应用”,是指那些能够利用物理网络向最终用户提供业务的软件。 本栏目将关注与这些软件相关的新思想、新技术、新产品和新厂商等等。OK,让我们开始吧! 本文试图探讨两件事:Web Service产生的背景,Web Service如何应用于企业。 为什么会出现 Web Service 软件业一直以来就存在一个思想,就是希望软件能够像硬件集成电路或者建筑材料一样,通过组合实现用户需要的应用。这种思想可以被称作软件模块化。要想实现软件模块化,一个很重要的要求就是软件和软件之间能够相互通信。只有这样,这个软件才能被其它软件调用,软件工程师们才能把现有的软件模块组装成为满足客户特定需求的软件应用。 其实,从应用的角度看软件,软件无非就是一个能够接收外界输入、然后按照实际需求处理这个输入、最后将结果输出的功能模块而已。也就是说,除了内部的处理逻辑外,某个具体软件的最重要的部分就是它与外界交互的输入输出接口。一个具体软件可以为人所用(如Windows),也可以为其它软件所用(如数据库管理系统中的ODBC函数库)。为人用的软件要提供面向人的接口,比如图形用户界面;为其它软件用的软件要提供面向软件的接口,这里称作编程接口。 早期编程接口技术通过API函数库的方式实现,这种方式至今仍被很多软件采用。但随着网络的发展,网络间软件互相通信的需求越来越大。要实现跨网络软件的通信,需要解决的一个重要问题就是如何能让运行在不同硬件平台、不同操作系统、不同数据库和不同编程语言上面的软件互相通信。这是个艰巨的课题。为了解决这个课题,软件工程师们做出了很多努力,推出了很多解决方案,比如RPC(远程过程调用)、CORBA、COM/EJB等等,但效果都不太理想。 就在这些编程接口技术发展得如火如荼的时候,网络的使用方式也在经历着翻天覆地的变化——www访问方式席卷全球。所谓www访问方式包括服务器软件(Web Server)和客户机软件(浏览器),双方通过http通信。因为http语言可以跨平台,所以这种通信方式能够实现软件间跨平台通信,而且事实上它也做到了。软件工程师们从这种http通信方式得到启发,结合先前发展起来的构件思想,推出了新的跨平台编程接口技术——Web Service技术。 为清晰起见,下面文字对Web Service这个概念做了细分:当从编程接口技术的角度提及Web Service时,使用“Web Service技术”一词;当描述那些通过Web Service技术对外提供编程接口的软件时,会用“Web Service应用”一词;当提及实现Web Service技术、帮助软件工程师开发Web Service应用的那些软件工具时,用“Web Service平台”一词。 所有的Web Service应用应该具备如下特征:是一个独立的软件模块,提供特定的功能;能够使用统一的、与平台无关的语言与其它的Web Service应用进行交互,在Web Service技术中,这种语言被称作XML;与其它Web Service应用交互时使用的协议应能支持不同平台,在Web Service技术中,这个协议被称作SOAP;Web Service应用提供的对外接口可以被其它Web Service应用自动理解,这个特征通过WSDL实现;Web Service应用放在网络上后,可以被其它Web Service应用自动发现,这个特征通过UDDI实现。 Web Service平台从编译器、事务处理、安全管理以及标准实现等角度对Web Service应用的开发给予支持。目前商用的Web Service平台包括.NET、Sun One、WebLogic和Websphere等等。 Web Service 给企业带来了什么 可以从企业内部和企业外部两方面来讨论Web Service技术在企业领域的应用。随着IT技术的发展,企业把自己越来越多的业务通过计算机来实现,这就是企业信息化。现实世界里,这些业务不可避免地要进行交互。比如,公司的人事部门有时就需要向财务部门索要某员工的工资信息。相应地,当人事部门和财务部门信息化后,对应这两个部门的管理系统软件也需要能够交互。如果这两个部门信息化工作同时进行,那么软件工程师们可以在软件开发的需求分析阶段就将这两部分的交互需求考虑进去,统筹设计,统筹开发。然而,这种理想的情况很少发生。现实的情况是企业往往出于资金或者其它什么方面的考虑,分期分批对内部的业务进行信息化。而且,这些信息系统软件往往由不同的软件开发商开发,造成的结果是不同的信息系统软件运行在不同的平台上。如何能让这些运行在不同平台上的软件互相通信?Web Service技术的出现为这个问题提供了一个答案。如前所述,Web Service技术天生就是为满足不同平台上软件互相通信这个需求的,所以用Web Service技术开发的信息系统可以轻松地实现交互。 Web Service在企业外部的应用主要体现在电子商务上。为了能够在Internet上全自动地实现B2B,企业间的软件交互是必不可少的。举例说明,假设一家公司的库存管理系统在发现某部件的库存低于预先设置的阈值时,此系统会通知公司的采购系统,然后采购系统会自动向此部件的供应商发送一条订单;而供应商的销售系统在接收到这条订单后,会通知自己的库存系统出货,然后向订货公司发送发票。通过两企业的采购系统和销售系统的交互,这笔交易才能顺利完成。显而易见,实现这种交互的最方便的方法还是Web Service技术。 不过,交易双方的软件能够交互只是电子商务最基本的要求。现实世界中的交易活动是分多个步骤完成的,而且这些步骤具有一定的次序,可以被称作交易流程。比如在上面提到的例子中,交易的步骤必须是:订货商下订单,然后供应商发货,然后出发票,最后订货商付款。为了最逼真地模拟现实,有必要为交易双方软件的接口引入交易流程的概念。值得庆幸的是,Web Service平台提供商们已经意识到这个需求,并且正在积极地开发相应的Web Service标准。目前,处在主流地位的两个标准是WSCI(Web Services Choreography Interface)和BPEL4WS(Business Process Excution Language for Web Service)。 |
|||||||||||||||||||||||||||