浅议Web服务
作者-阿 金
随着互连网络的广泛应用和发展,特别是.NET技术的升温和市场的日渐成熟,越来越多软件开发商在为到底是选择微软公司的.NET还是SUN公司的J2EE作为自己开发平台和工具而感到左右为难。一般说来,绝大多数公司根据市场情况,客户需求,开发成本,升级成本,培训成本,产品价格,兼容性,可靠性、安全性等选择了其中之一。也有少数有实力的公司准备开发两套独立的产品,以满足不同的客户需求。更多的公司希望自己开发的产品能相互移植,特别是从微软公司的.NET移植到SUN公司的J2EE。既能利用微软的产品相对便宜,开发成本低,开发效率高,又可拥有J2EE所具有的开放性、跨平台性、安全性,扩大自己的客户群。
美国Stryon公司即将推出iNET产品将有能力让软件开发商用微软公司的.NET开发的应用利用J2EE技术无缝地移植到非Windows平台上。iNET相当于.NET的JAVA实现。它由一个IL2JAVA工具,用JAVA实现的.NET框架类库等组成。能集成Tomcat,Sun One,WebLogic,Oracle9i,iPlanet等多种用以实现ASP.NET和Web服务的Web服务器。
是的,这就是Web服务。一切都是因为Web服务的出现,使得.NET和J2EE争夺的焦点已不完全是对象模型之间的战争或者编程语言选美竞赛了。Web服务使用基于 XML 的消息处理作为基本的数据通讯方式,消除使用不同组件模型、操作系统和编程语言的系统之间存在的差异,使异类系统能够作为单个计算网络协同运行。开发人员可以用像过去在创建分布式应用程序时使用组件一样的方式创建将来自各种源的Web服务组合在一起的应用程序。
Web 服务所实现的最基本的方案是向它的客户端提供某个基本功能以供其使用。也可以以复合方式使用Web服务来集成一组似乎完全不同的现有应用程序。还能创建构成端对端工作流解决方案的应用程序(如企业到企业交易中的解决方案)。
Web服务是建立在一些通用协议的基础上,如HTTP,SOAP,XML,WSDL,UDDI等。这些协议在涉及到操作系统、对象模型和编程语言的选择时,没有任何倾向,因此将会有很强的生命力。但具体到Web服务编程时,.NET和J2EE有一些区别。.NET Web服务可用C#,VB,JScript等语言编写,还能利用一些Windows资源;而J2EE Web服务一般使用JAVA语言及J2EE资源,像Bean,EJB,CORBA等。它们在编程环境,语法结构,管理配置等方面也各有自己的特色。iNET Web服务用JAVA语言实现了.NET 类库中提供的Web服务APIs。它能把用户用.NET开发的Web服务移植到与平台无关的JAVA。因是JAVA,故也可利用JAVA的资源。
进行Web服务调用时发生的过程与进行常规方法调用时发生的过程类似。主要的差别在于,不是调用位于客户端应用程序中的方法,而是根据指定的传输(如 HTTP)生成请求消息。由于Web 服务方法可能位于另一台计算机上,因此Web 服务处理请求所需的信息必须通过网络传递给承载Web 服务的服务器。Web 服务处理此信息并通过网络将结果发送回客户端应用程序。这就是可编程的 Internet.
可以预见,作为 Internet下的一个革命性进步,Web服务必将开创一个分布式应用程序开发的新时代。