南昌航空大学科技学院web设计论文指导教师:张洁班级:1082061学号:29姓名:袁羽IIWebService技术浅谈摘要随着电子商务技术的快速发展,原来那种基于特定系统和特定环境的开发方式逐渐无法适应新的需求变化。WebService技术的出现,给异构系统间的商务应用集成带来了前所未有的希望。WebService技术是通过构筑一个通用的、与平台和语言无关的技术层,使得各种不同平台上的应用系统间,实施彼此的连接和集成。本文首先对WebService技术进行了简介,在了解它的使用情况和优缺点后,对它和目前现有分布式CORBA技术进行了分析和对比,进而对它的体系结构有深入的了解。其次介绍了WebService技术中的关键技术,其中包括可扩展性标记语言(XML)、简单对象访问协议(SOAP)、Web服务描述语言(WSDL)和统一描述、发现与集成(UDDI)注册中心。最后本文依据WebServices的技术原理、体系架构及关键技术,提出了一个WebServices技术在旅游系统中的应用。关键词:WebService技术CORBA技术XMLSOAPUDDI协议商丘科技职业学院毕业论文1绪论不断发展的计算机技术使得传媒业发生了巨大的变化,并得以普及。WorldWideWeb、Java技术以及XML似乎无处不在,这些技术均得以快速应用,而且已成为企业级计算机的主要技术。Web服务最早出现在1999年,也是不断发展的技术。Web服务是随着传媒业的巨大扩张而出现的,这项技术已经得到商务活动的认可,并且开始被大量的开发人员采纳。随着时间的推移,WebService技术也越来越完善,并且渗透于人们生活的方方面面。关于WebService技术已经有不少文献进行了讨论,在有些文献中主要描述了WebService技术的前瞻性,其他一些则把重点描述了WebService技术在生活、军事、气象、医疗等实际应用前景。对于初涉WebService技术的人们来说这些都比较抽象且不易理解,本文在以上基础上对WebServices技术的研究现状、WebServices应用的关键技术和WebServices技术与CORBA技术的比较这三个方面做出了详细的介绍,可以加深人们对WebServices技术的理解。2一、WebService技术的简介1.1WebService技术的出现1999年,惠普公司成为第一个引入Web服务概念的软件厂家。惠普公司的e—Speak平台使开发人员可以建立与实现电子Web服务,这是与Web服务相似的程序单元。但是,e—Speak的基础技术具有专业性质,从而使这个平台没有得到广泛的行业支持。2000年6月,微软公司正式提出了Web服务的概念,把Web服务作为.NET项目的关键组件,这个项目用的是全新的方法在开发、构建与使用软件,能够牢牢掌握Internet。微软公司声称将整个公司的命运都压在Web服务上,使Web服务几乎立即成为“下一件大事”。现在几乎每个主要软件厂家都在推出Web服务工具和应用程序。随着Web服务的发布,许多人认识到这个技术可能对分布式计算机带来革命。过去,CORBA与DCOM都已经提交到标准组织,让公司可以选择其中一个标准作为通用分布式计算的标准。但这种情况并没有发生,因为公司已经在Windows或Java平台上投入大量资金,使用了相应的分布式技术,移植到平台会需要大量业务时间,经费和员工生产率。行业对相互操作性问题的经验导致了WebService技术开放标准的开发,努力实现跨平台通信。Web服务使用的主要标准是XML,这是个数据标记语言,使用程序和平台之间可以交换信息。微软与DevelopMentor公司建立简单对象访问协议(SOAPSimpleObjectAccessProtocol)作为Web服务之间传输信息与指令的消息协议,用XML作为基础协议。另外两个Web服务规范是Web服务描述语言(WSDLWebServicesDescriptionLanguage)和统一描述、发现与集成(UDDIUniversalDescriptionDiscoveryandIntegration),也用XML作为基础协议。WSDL提供了描述Web服务及其特定功能的标准方法,UDDI定义建立目录XML规则,公司可以用这个目录对本身及其Web服务进行公告。尽管Web服务还没有充分发挥所有潜力,但已经对业务通信带来了变革。在教学、制造、财务服务与旅游等等行业中得以广泛的使用[11]。商丘科技职业学院毕业论文31.2WebService技术概述WebService它不是一种框架,而是一种技术。WebServices是由企业发布的完成其特定商务需求的在线应用服务,其他公司或应用软件能够通过Internet来访问并使用这项在线服务,它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。WebService是一个应用组件,它逻辑性的为其他应用程序提供数据与服务。各应用程序通过网络协议和规定的一些标准数据格式(HTTP,XML,SOAP)来访问WebService,通过WebService内部执行得到所需结果。WebService可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他WebService应用程序可以发现并调用它部署的服务。官方的解释就是:WebService主要是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。WebServices技术可以理解为:各个站点之间互相调用方法实现功能,不受操作系统,编程语言等等的限制,比如:工行的网上银行系统是使用java编写的,中行的网上银行系统是使用.net编写的,可是他们各自提供转账的对外接口,实现跨语言、平台的信息交互。在工行的提款机上可以使用中行的卡取钱,它其实是调用了人家中行的系统的方法和中行的数据库交互,中行的数据库是不允许工行的程序去访问的。1.3WebService技术的体系结构Web服务的一个主要思想,就是未来的应用将由一组应用了网络的服务组合而成。只要两个等同的服务使用统一标准和中性的方法在网络上宣传自己,那么从理论上说,一个应用程序就可以根据价格或者性能的标准,从两个彼此竞争的服务之中选出一个。除此之外,一些服务允许在机器之间复制,因而可以通过把有用的服务复制到本地储存库,来提高允许运行在特定的计算机(群)上的应用程序的性能。WebServices体系结构是面向对象分析与设计(OOAD)的一种合理发展(logicalevolution),同时也是电子商务解决方案中,面向体系结构、设计、实现与部署而采用的组件化的合理发展(logicalevolutionofcomponentsgearedtowardsthearchitecture,design,implementation,anddeploymentofe-businesssolutions)。这两种方式在复杂的大型系统中经受住了考验。4和面向对象系统一样,封装、消息传递、动态绑定、服务描述和查询也是WebServices中的基本概念,而且,WebServices另外一个基本概念就是:所有东西都是服务,这些服务发布一个API供网络中的其他服务使用,并且封装了实现细节。下面就来看一下WebServices的体系结构--面向服务的体系结构(SOA)。图1-1面向服务的体系结构(SOA)从图1-1可以看出,SOA结构中共有三种角色:Serviceprovider:发布自己的服务,并且对使用自身服务的请求进行响应。Servicebroker:注册已经发布的Serviceprovider,对其进行分类,并提供搜索服务。Servicerequester:利用Servicebroker查找所需的服务,然后使用该服务。SOA体系结构中的组件必须具有上述一种或多种角色。在这些角色之间使用了三种操作:publish操作:使Serviceprovider可以向Servicebroker注册自己的功能及访问接口。find操作:使Servicerequester可以通过Servicebroker查找特定种类的服务。bind操作:使Servicerequester能够真正使用Serviceprovider。为支持结构中的三种操作(publish、find和bind),SOA需要对服务进行一定的描述,这种服务描述(ServiceDescription)应具有下面几个重要特点:首先,它要声明Serviceprovider的语义特征。Servicebroker使用语义特征将Serviceprovider进行分类,以帮助具体服务的查找。Servicerequester根据语义特征来匹配那些满足要求的Serviceprovider。(因此,语义特征中重商丘科技职业学院毕业论文5要的一点就是对Serviceprovider的分类)其次,服务描述应该声明接口特征,以访问特定的服务。最后,服务描述还应声明各种非功能特征,如安全要求,事务要求,使用Serviceprovider的费用等等。接口特征和非功能特征也可以用来帮助Servicerequester对Serviceprovider的查找。注意,服务描述和服务实现是分离的,这使得Servicerequester可以在Serviceprovider的一个具体实现(implementation)正处于开发阶段、部署阶段或完成(execution)阶段时,对其(具体实现)进行绑定。另外,SOA中的组件相互之间必须能够进行交互,才能进行上述三种操作。所以WebServices体系结构的另一个基本原则就是使用标准的技术,包括服务描述、通讯协议以及数据格式等。这样一来,开发者就可以开发出平台独立、编程语言独立的WebServices,从而能够充分利用现有的软硬件资源和人力资源。最后,SOA体系结构没有对WebService的粒度进行限制,因此一个WebService即可以是一个组件(小粒度),该组件必须和其他组件结合才能进行完整的业务处理;WebService也可以是一个应用程序(大粒度)[5]。1.4WebService技术的工作流程在使用WebService时,包括三个阶段的通信。第一阶段的通信被称为发现阶段(Discover),其主要作用是确定在服务器上有哪些服务。经过发现阶段我们一般可以确定服务器一共提供了哪些服务,在使用这些服务之前我们还必须知道这些服务支持什么样的界面。第二阶段的通信就是发送请求获得WebService描述语言WSDL。第三阶段的通信主要是向WebService服务器发送信息服务请求,并等待服务器的应答。1.5WebService技术的优缺点1.5.1WebService技术的优点在以下四种情况下,使用WebService会带来极大的好处。长项一:跨防火墙的通信如果应用程序有成千上万的用户,而且分布在世界各地,那么客户端和服务器之间的通信将是一个棘手的问题。因为客户端和服务器之间通常会有防火墙或者代理服务器。在这种情况下,使用DCOM就不是那么简单,通常也不便于6把客户端程序发布到数量如此庞大的每一个用户手中。传统的做法是,选择用浏览器作为客户端,写下一大堆ASP页面,把应用程序的中间层暴露给最终用户。这样做的结果是开发难度大,程序很难维护。举个例子,在应用程序里加入一个新页面,必须先建立好用户界面(Web页面),并在这个页面后面,包含相应商业逻辑的中间层组件,还要再建立至少一个ASP页面,用来接受用户输入的信息,调用中间层组件,把结果格式化为HTML形式,最后还要把“结果页”送回浏览器。要是客户端代码不再如此依赖于HTML表单,客户端的编程就简单多了。如果中间层组件换成WebService的话,就可以从用户界面直接调用中间层组件,从而省掉建立ASP页面的那一步。要调用WebService,可以直接使用MicrosoftSOAPToolkit或.N