CN1492352A - 用于远程web服务克隆和例示的系统和方法 - Google Patents
用于远程web服务克隆和例示的系统和方法 Download PDFInfo
- Publication number
- CN1492352A CN1492352A CNA031598668A CN03159866A CN1492352A CN 1492352 A CN1492352 A CN 1492352A CN A031598668 A CNA031598668 A CN A031598668A CN 03159866 A CN03159866 A CN 03159866A CN 1492352 A CN1492352 A CN 1492352A
- Authority
- CN
- China
- Prior art keywords
- web service
- web
- service
- deployment
- file
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 60
- 238000010367 cloning Methods 0.000 title abstract description 4
- 230000008569 process Effects 0.000 claims abstract description 41
- 238000004590 computer program Methods 0.000 claims description 7
- 230000004048 modification Effects 0.000 claims description 4
- 238000012986 modification Methods 0.000 claims description 4
- 230000008878 coupling Effects 0.000 claims description 2
- 238000010168 coupling process Methods 0.000 claims description 2
- 238000005859 coupling reaction Methods 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 230000008676 import Effects 0.000 description 3
- 241001673391 Entandrophragma candollei Species 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000035479 physiological effects, processes and functions Effects 0.000 description 2
- 239000000344 soap Substances 0.000 description 2
- 101150116385 Tram1 gene Proteins 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 210000003484 anatomy Anatomy 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000035790 physiological processes and functions Effects 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
- G06F9/4862—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
- G06F9/4868—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate with creation or replication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本发明是一种从调用进程到目标主机克隆和例示Web服务的方法。所述方法可包括把应用程序档案文件扩展到目标主机中的Web应用程序容器中。档案文件可包括至少一个用于实现Web服务的操作文件,该Web服务的实现文件,和该Web服务的部署描述符。产生该Web服务的唯一标识符。随后,可修改所述实现文件,以便引用目标主机、目标主机中的Web应用程序,和用于指定该Web服务的产生的唯一标识符。另外,可修改所述部署描述符,以便引用用于指定Web服务的产生的唯一标识符。最后,可利用部署描述符,把Web服务部署在目标主机中;并且可把引用实现文件的网络地址转发给调用进程。
Description
技术领域
本发明涉及Web服务的领域,更具体地说涉及Web服务实例(instance)的克隆和例示(instantiation)。
背景技术
Web服务已成为风行一时的分布式计算,并且被看作开发支持万维网内基于组件的应用的快速发展的真正通用模型的基础。本领域中已知Web服务包括正在形成的描述面向服务的,基于组件的应用体系结构的标准组。具体地说,Web服务是在语义上封闭离散功能的松散耦接、可重复使用的软件组件,并且Web服务是分布式的,可通过标准因特网协议以编程方式访问。
概念上,Web服务代表其中计算过程内的离散任务在数值网(value net)内广泛分布的模型。特别地,许多行业专家认为面向服务的Web服务是因特网的下一发展阶段。一般来说,可由诸如Web服务定义语言(WSDL)之类的接口(interface)定义,并且可按照该接口实现,不过实现细节无关紧要,只要实现符合Web服务接口即可。一旦按照相应的接口实现了Web服务,即可向Web服务注册处(registry),例如本领域众所周知的通用描述、发现和集成(UDDI)注册该实现。一旦注册,通过利用任何支持消息接发协议(例如包括简单对象访问协议(SOAP)),服务请求者可访问该Web服务。
在支持Web服务的面向服务应用环境中,已证明查找可靠服务的位置,并实时地动态集成这些可靠服务,以满足应用目的尚有疑问。虽然注册处、目录和发现协议提供用于实现服务检测和服务-服务互连逻辑的基本结构,但是注册处、目录和发现协议有时单独并不适合于分布式互用性。相反,为了以统一应用的形式,促进Web服务的分布,需要一种更结构化、形式化的机制。
特别地,贯穿开放式网格服务结构(OGSA)的网格机制的生理机能(physiology)可按照如果专一使用注册处、目录和发现协议不能实现的方式,跨越分布式系统既提供发现方面的协议,又提供Web服务绑定方面的协议,下面称为“网格服务”。如同在IanFoster,Carl Kesselman,和Steven Tuecke,
The Anatomy of the Grid,Intl J.Supercomputer Applications(2001),和在IanFoster,Carl Kesselman,Jeffrey M.Nick和Steven Tuecke,
The Physiology of the Grid,Globus.org(2002年6月22日)中所述,网格机制可提供分布式计算基础结构,通过所述基础结构,发出请求的客户能够产生、命名和发现网格服务实例。
网格服务通过提供增强资源共享和调度支持,仅仅扩展Web服务,支持复杂的分布式应用一般所需的长期有效状态,以及支持企业协作。此外,虽然Web服务单独致力于持久服务的发现和调用,不过网格服务支持可动态产生和破坏的瞬时服务实例。使用网格服务的显著优点可包括由于计算资源的更有效利用以及更易于集成各种计算组件的缘故,信息技术的所有权的成本降低。从而,网格机制,特别是符合OGSA的网格机制,可实现面向服务的体系结构,通过所述体系结构,即使跨越组织域,也可提供分布式系统集成的基础。
在网格结构中,可提供厂家服务,厂家服务可被派给负责产生和部署Web应用的新实例的任务。一般来说,Web服务技术环境中的Web应用程序可包括小服务程序、服务器页、置标语言文件和诸如图像之类的支持元件的集合。该集合可包装在档案文件中,从而,Web应用程序可被可移植地部署在任何许可小服务程序的Web服务器上。在传统的Web应用程序档案文件中,可如下对Web应用程序打包:
index.html example.jsp <!-- SIPO <DP n="2"> --> <dp n="d2"/> images/on.gif images/off.gif WEB-INF/web.xml WEB-INF/lib/example.jar WEB-INF/classes/MyServlet.class WEB-INF/classes/com/servlet/MyWebServlet.class
等
一旦被打包,档案文件可被部署到应用程序服务器上。
特别地,在常规的实现中,“WEB-INF”目录可被认为是“特殊”的目录,因为在WEB-INF目录下保存的一切都不可直接供应给客户。相反,WEB-INF目录一般包含例如小服务程序使用的类别文件,及Web应用程序本身使用的配置信息。在这方面,驻留于WEB-INF目录中的web.xml文件通常被称为“部署描述符”。部署描述符可包括关于Web应用程序的详细信息,例如URL映象、小服务程序注册细节、欢迎文件、MIME类型、页面级安全约束等。
虽然按照静态、本地的方式克隆Web应用程序是众所周知的进程,但是按照动态、远程的方式克隆Web应用程序并不是很清楚。另外,在能够在高峰应用时段内,例如就高峰、假日购物季节内工作的零售购物应用程序来说,动态增大Web服务调用容量的网格环境中,远程克隆和例示Web服务会是一个关键的进程。此外,对于自动利用(leverage)大规模网格计算环境来说,远程克隆和例示Web服务至关重要。
普通技术人员会认为远程部署和例示Web服务和压缩包含Web应用程序的档案文件,并把压缩文件传送给目标远程企业服务几乎没有差别。实际上,Web服务的远程克隆和例示要复杂得多。具体地说,首先必须解决几个部署问题。更具体地说,本领域的技术人员会认识到,因克隆Web服务而存在的WSDL文件不具备关于宿主服务器的正确位置绑定。从而,必须为每个新的Web服务实例产生新的WSDL。
另外,虽然通常需要新的WSDL实现文件,不过在一些情况下,也可重复使用现有的WSDL接口文件。另外,当在远程服务器上产生新的Web服务时,另一厂家产生操作有可能同时对相同的远程主机,克隆和例示相同Web应用程序的实例。由于两个克隆操作都会涉及部署描述符的相同副本,因此重要的是尽管存在相同的部署描述符,仍然要确保部署两个独立的Web服务实例。
特别地,在一些情况下,不同的Web服务实例可涉及相同的Web应用程序,从而,不同的Web服务实例可共用共同的库资源。本领域的普通技术人员会明白,共用共同的库资源在减少通常与Web服务实例的例示和操作相关的计算资源,即存储器的数量方面,具有极大的益处。但是,在其它情况下,由于特殊需要,例如要求特定版本的支持库,例如XML分析程序的缘故,每个Web服务实例可能需要独立的Web应用。最后,为了使远程Web服务克隆和例示变成可行的技术,必须采用安全机制。
发明内容
本发明是一种克隆和例示Web服务的方法。该方法可包括把应用程序档案文件,例如Web应用程序档案文件或Java应用程序档案文件扩展到本地主机或远程主机中的Web应用程序容器(container)中。档案文件可包括至少一个用于实现Web服务的操作文件,该Web服务的实现文件,和该Web服务的部署描述符。可产生该Web服务的唯一标识符。随后,可修改实现文件,以便引用(reference)该主机、主机中的Web应用程序,和用于指定该Web服务的产生的唯一标识符。另外,可修改部署描述符,以便引用用于指定Web服务的产生的唯一标识符。最后,利用部署描述符,Web服务可部署在主机中;并且引用实现文件的网络地址可被转发给调用进程。
重要的是,通过产生唯一标识符,以及进一步修改实现文件和部署描述符,以便引用唯一标识符,由于每个实例具有唯一的名称,因此可避免Web服务的多个实例之间的部署冲突。此外,通过修改实现文件和部署描述符,以便引用目标主机,而不是档案文件发源的主机,可保持正确的Web服务绑定。最后,通过允许远程主机把档案文件扩展到选择的Web应用程序容器中,多个例示Web服务可共用相同的Web应用程序容器,从而,例示的Web服务可共用库资源。
从调用进程到目标主机克隆和例示Web服务的系统可包括布置在第一Web服务主机中的Web服务产生进程;和布置在第二Web服务主机中的服务部署处理器。服务部署处理器可包括把第一Web服务主机转发给第二Web服务主机的应用程序档案文件扩展到布置在第二Web服务主机中的至少一个Web应用程序容器中所选一个Web应用程序容器和相关Web应用程序存储器上的逻辑单元。服务部署处理器还可具有为在Web应用程序档案文件内定义的Web服务产生唯一标识符的逻辑单元。
最后,服务部署处理器还可具有修改包含在应用程序档案文件中的Web服务的实现文件和部署描述符,以便引用第二Web服务主机和产生的唯一标识符的逻辑单元。重要的是,第一和第二Web主机都可以是网格主机,例如由OGSA定义的那些网格主机。可选地,就安全考虑来说,系统还可包括虚拟机,远程服务部署处理器可在所述虚拟机上执行。最后,目标主机可以是远离第一Web服务主机安置的远程主机。
根据本发明的方案配置的远程主机可包括Web服务器和结合Web服务器执行的应用程序服务器。可提供一个Web服务引擎,同时可提供相关Web服务产生进程,被配置成与应用程序服务器一起工作。最后,远程服务部署处理器可与应用程序服务器耦合,并由Web服务引擎配置。远程服务部署处理器可包括把应用程序档案文件扩展到选择的Web应用程序容器和相关的Web应用程序存储体系中的逻辑单元。
远程服务部署处理器还可包括产生应用程序档案文件定义的Web服务的唯一标识符,并修改Web服务的实现文件和部署描述符,以便引用唯一标识符和远程主机的逻辑单元。最后,远程服务部署处理器可包括借助修改的部署描述符,调用Web服务产生进程,以便例示Web服务的逻辑单元。特别地,远程主机可以是网格主机,Web服务产生进程可以是网格服务厂家产生进程。
附图说明
附图中表示了目前优选的方案和手段,不过应明白,本发明并不局限于图中所示的明确方案和手段,其中:
图1是其中可根据本发明的方案,在远程主机内克隆和例示Web服务的Web服务系统的方框图;
图2是图解说明把Web服务实例克隆到图1的系统中的远程主机中的过程的流程图。
具体实施方式
本发明是克隆和例示远程主机内的Web服务的实例的方法、系统和设备。根据本发明的方案,Web服务以及相关部署描述符和实现文件可在本地主机内被存档。档案文件可从本地主机转发给远程主机,所述远程主机可把档案文件不定地扩展到现有的应用程序容器或者新产生的应用程序容器之一。
在远程主机中,Web服务可被赋予唯一的身份,从而,可以修改Web服务实现文件,以便引用特殊性,不仅引用远程主机的身份,而且引用远程主机中Web服务的唯一身份。另外,在需要供Web服务之用的新的Web服务接口文件方面,可修改Web服务实现文件,以引用远程主机中Web服务接口文件的位置。
重要的是,可修改与Web服务应用程序相关的部署描述符,反映Web服务的唯一身份。一旦部署描述符被修改,那么可把修改后的部署描述符传送给远程主机中的Web服务引擎,从而,Web服务引擎可在远程主机中部署该Web服务。随后,可向本地主机返回关于修改后的Web服务实现文件的网络参考,从而本地主机可根据需要公布并利用远程部署的Web服务。
特别地,本发明的方法、系统和设备适合于在诸如符合OGSA的网格之类的Web服务网格中应用。具体地说,本地主机可以是其中可驻留厂家产生服务的网格主机。厂家产生服务可把存档的Web服务转发给远程安置的网格主机。根据本发明的方案,远程安置的网格主机又可承担向Web服务分配唯一的身份,以及修改实现文件和部署描述符。
图1是其中可根据本发明的方案,在远程主机内克隆和例示Web服务应用程序的Web服务系统的方框图。具体地说,通过诸如因特网之类的计算机通信网络110,每个本地主机130和远程主机180可通信连接。本地主机130可包括一个Web服务器140,Web服务器140被配置成处理按照超文本传送协议(HTTP)、文件传送文件(FTP)或者其它这种的操作协议格式化的那些Web请求。
应用程序服务器150可布置在本地主机130中,并且可与Web服务器140一起工作。特别地,应用程序服务器150可借助可被应用程序服务器130访问的所选应用程序逻辑单元,提供随选处理。应用程序服务器在本领域中众所周知,并且可包括,例如美国NewYork,Armonk的国际商用机器公司生产的WebsphereTM应用程序服务器。
Web服务引擎160可被配置成和应用程序服务器150一起工作,从而如同本领域众所周知的那样,可通过Web服务器140和应用程序服务器150公布、产生和调用Web服务。特别地,Web服务产生进程170可提供本地克隆和例示Web服务所需的逻辑,如同本领域已知那样,并可根据本发明向诸如远程主机180之类的另一主机提供远程克隆和例示Web服务所需的逻辑。远程主机180可包括至少一个web应用程序容器120,在所述web应用程序容器中,可例示Web服务。另外,可根据需要产生其它Web应用程序容器,以便适应不适于在Web应用程序容器120内例示的其它Web服务的例示。
和常规的Web应用程序容器的情况一样,Web应用程序容器120、135可具有相关的存储器190,例如WEB-INF目录或者功能类似的这种结构,不过相关的存储器190不必必须是WEB-INF目录。如同本领域的技术人员会认识到的那样,存储器190可与Web应用程序容器120、135相关地保存Web服务部署和操作文件,例如相关Web服务执行所需的类别文件,Web服务的部署描述符,Web服务的实现文件,和Web服务的接口文件,这里统称为描述符,WSDL文件125。
特别地,远程服务部署处理器100可布置在远程主机180内或者与远程主机180相关地被布置。远程服务部署处理器100可从远程服务产生进程接收存档的Web服务,并且可根据本发明的方案,把这种接收的Web服务本地部署在远程主机180中。最后,就远程主机180可按照和本地主机130类似的方式工作方面来说,远程主机180也可包括Web服务器165、应用程序服务器195、Web服务引擎185和服务产生进程175。
操作上,可在Web服务器140中接收请求,并且如果请求和Web服务的产生相关,那么可把该请求转发给布置在应用程序服务器150内或者与应用程序服务器150相关地布置的Web服务引擎160。出于诸如多个主机间负载的均衡之类的战略目的,Web服务引擎160可确定所请求的Web服务不应被本地克隆和例示,而应在远程主机180中克隆和例示。从而,Web服务产生进程170可把请求的Web服务和相关描述符、实现和接口文件一起存档,并可通过计算机通信网络110,把档案文件145转发给远程主机180。
远程主机180可在远程服务部署处理器100中接收档案文件,远程服务部署处理器100可不定地把档案文件145扩展到现有的相关Web应用程序容器120,或新产生的Web应用程序容器135这二者之一。在任一情况下,都可利用诸如类别文件之类的相关操作文件,和保存在相关存储器190中的相关描述符/WSDL文件125,恰当地扩展档案文件145。重要的是,包含在档案文件145中的Web服务可被赋予唯一的实例标识符,以便本地和远程地把该Web服务实例和其它Web应用程序容器中的其它Web服务实例区分开。具体地说,当表示成访问Web服务实例所需的网络地址的一部分时,初始Web服务实例名称和UniqueID的连接可帮助识别远程部署的Web服务的由来。
当已向Web服务分配唯一的标识符时,Web服务实现文件可被修改,从而不仅反映远程网格主机和选择的Web应用程序容器,而且还反映新的标识符,如同部署描述符所能那样。此外,就Web服务接口文件已保存在相关存储器190中来说,Web服务实现文件可被修改,以反映Web服务接口的位置。最后,可进一步修改Web服务实现文件,以反映远程主机180,而不是本地主机130中Web服务的网络地址。一旦Web服务实现文件,部署描述符,以及Web服务接口文件(可选)中每一个被修改,可把部署描述符提供给Web服务引擎195,Web服务引擎195在远程主机180中例示该Web服务。最后,可把Web服务实现文件的网络地址155返回给服务产生进程170,从而本地主机120可根据需要使用该Web服务。
重要的是,图1中图解说明的系统适合于供诸如由OGSA定义,并且例如根据Globus Project,
Globus Toolkit Futures:An Open Grid Services Architecture,Globus Tutorial,ArgonneNational Laboratory(2002年1月29日)中规定的网格结构之用。在这方面,服务产生进程170、175可以是能够响应Web服务网格中不断变化的需要,向远程安置的网格主机部署网格服务的厂家服务产生网格服务。从而,一经要求,起厂家服务产生进程作用的服务产生进程170可按照和前面说明书中描述的相同方式,把存档的Web服务转发给起远程网格主机作用的远程主机180。
图2是更具体说明把Web服务实例克隆到图1的系统中的远程主机的过程的流程图。始于方框205,远程服务部署处理器(下面称为“ShipService”可接收包含预定用于远程部署的Web服务的档案文件。在判定方框210中,ShipService可确定远程主机是否具有处理新的Web服务的可用资源。如果否,那么该过程可终止。否则,在判定方框215中,可确定包含在档案文件内的Web服务是否需要新的Web应用程序容器,或者Web服务是否能够利用现有的Web应用程序容器。
如果在判定方框215中,确定需要新的Web应用程序,那么在方框220中,可为该Web服务产生新的Web应用程序。一旦在方框220中产生了新的Web应用程序容器,那么在方框225中,档案文件可被展开为新Web应用程序容器的一部分。另一方面,如果在判定方框215中确定可使用现有的Web应用程序,那么在方框230中,档案文件可被展开为现有Web应用程序容器的一部分。即,档案文件内的操作文件,例如类别文件或Java档案文件可被复制到与Web应用程序相关的存储器中,例如WEB-INF/类别和WEB-INF/lib目录中。
在判定方框235中,一旦Web服务已被展开为Web应用程序容器的一部分,那么可确定是否必须为该Web服务产生新的接口文件,或者该Web服务的现有接口文件是否满足需要。如果需要新的接口文件,那么在方框240中,可把包含在档案文件内的接口文件写入WEB-INF目录。总之,在方框245中,可根据包含在档案文件内的实现文件,产生新的实现文件。例如,在已按照WSDL格式化实现文件的情况下,可关于该Web服务更新soap:地址要素的位置属性。
通过组合从部署描述符获得的Web服务的初始名称,唯一的实例标识符,和适合于接待新Web服务的Web应用程序容器的URL前缀,可更新位置属性。例如,在Web服务,MyWebService已部署到远程主机MyRemoteHost上,作为Web应用程序容器MyWebApp的一部分的情况下,可修改soap:地址要素的位置属性以反映:
http://MyRemoteHost:80/MyWebApp/services/MyWebService<UniqueID>
虽然由于任何这样唯一的名称足以满意需要,不需要连接Web服务的初始名称和UniqueID,不过本领域的技术人员会认识到初始Web服务名称和UniqueID的连接可帮助识别远程部署的Web服务的由来。
总之,可在实现文件内修改导入要素的位置属性,以便反映新产生的或者现有的接口文件。例如,在WSDL环境中,如果来自实现文件的初始导入要素包括下述内容:
<wsdl:import
location=″http://original.server.com:80/MyWebService/MyWebService
_Interface.wsdl″namespace=″http://MyWebService-Interface″/>
可如下修改位置属性:
<wsdl:import location=
″
http://remote.server.com:80/MyWebApp/MyWebService Interface.wsdl″
namespace=″http://MyWebService-Interface″/>
同样,虽然未示出,唯一的实例标识符可包含在修改后的位置属性中,以避免与布置在网络周围的多个Web服务接口文件的引用冲突。
在方框250,一旦实现文件已被修改,实现文件可被写入容器目录-在本发明优选方面,即是WEB-INF目录。随后,在方框255中,可修改Web服务的部署描述符,以反映唯一的标识符。例如,在初始的部署描述符包括下述内容的情况下:
<deployment xmlns=″http://xml.apache.org/axis/wsdd/″ xmlns:java=″http://xml.apache.org/axis/wsdd/providers/java″> <service name=″MyWebService″provider=″java:RPC″> <parameter name=″className″ value=″MyWebService″/> <parameter name=″methodName″value=″*″/> </service> <!-- SIPO <DP n="11"> --> <dp n="d11"/> </deployment>
如下所示,服务要素的名称属性可被更新,以包括唯一标识符的适当引用:
<deployment xmlns=″http://xml.apache.org/axis/wsdd/″ xmlns:java=″http://xml.apache.org/axis/wsdd/providers/java″> <service name=″MyWebService+<uniqueID>″provider=″java:RPC″> <parameter name=″className″value=″MyWebService″/> <parameter name=″methodName″value=″*″/> </service> </deployment>
随后,在方框260中,可把Web服务部署在远程主机中。例如,在Web服务引擎是ApacheTM AxisTM Web服务引擎的情况下,可产生Axis Admin类别的新实例,并且可调用Process()方法。更特别地,新修改的部署描述符可作为参数被提供给函数调用。在利用修改后的部署描述符部署了Web服务之后,在方框265中,可把实现文件的URL返回给远程调用进程。一旦远程调用进程收到远程例示的Web服务实例的新实现文件,调用进程就可根据需要公布和利用该实现文件。
重要的是,本领域的技术人员会认识到,这里所述的克隆和例示远程Web服务实例的过程会涉及一定的安全考虑。为了减轻与本发明的方法相关的安全风险,远程服务部署处理器的调用可局限于特定用户、网络设备、进程或用户组。另一方面,布置在远程主机中的应用程序服务器可在虚拟机之上工作,所述虚拟机被配置成截取访问主机计算资源的系统调用,和只允许访问按照安全规则指定的地方。
可用硬件、软件、或者硬件和软件的组合来实现。可在一个计算机系统中按照集中方式实现本发明的方法和系统,或者按照在数个互连的计算机系统间散布不同元件的分布方式,实现本发明的方法和系统。任意类型的计算机系统,或者适合于完成这里描述的方法的其它设备都适合于实现这里描述的功能。
硬件和软件的典型组合可以是具有计算机程序的通用计算机系统,所述计算机程序当被装入和执行时,控制计算机系统使之完成这里描述的方法。本发明还可被嵌入计算机程序产品中,所述计算机程序产品包括能够实现这里描述的方法的所有特征,并且当被装入计算机系统时,能够实现这些方法。
本上下文环境中的计算机程序或应用程序意味着一组指令的用任意语言、代码或符号表示的表达式,所述一组指令意图使具有信息处理能力的系统直接或者在下述两者之一或下述两者之后实现特定功能:a)转换成另一语言、代码或符号;b)以不同的材料形式再现。重要的是,在不脱离本发明的精神或基本性质的情况下,可用其它具体形式体现本发明,因此本发明的范围应参考下述权利要求,而不是参考前面的说明书。
Claims (9)
1、一种从调用进程到目标主机克隆和例示Web服务的方法,所述方法包括下述步骤:
把应用程序档案文件扩展到目标主机中的Web应用程序容器中,所述档案文件包括至少一个用于实现Web服务的操作文件,该Web服务的实现文件,和该Web服务的部署描述符;
产生该Web服务的唯一标识符;
首先修改所述实现文件,以便引用目标主机、目标主机中的Web应用程序,和用于指定该Web服务的所述产生的唯一标识符;
接下来修改所述部署描述符,以便引用用于指定Web服务的所述产生的唯一标识符;
利用所述部署描述符,把Web服务部署在目标主机中;并且
把引用实现文件的网络地址转发给调用进程。
2、按照权利要求1所述的方法,其中所述首先修改步骤还包括如果在目标主机中产生了新的接口文件,那么修改所述实现文件,以便引用目标主机中的所述新的接口文件的步骤。
3、一种从调用进程到远程主机克隆和例示Web服务的系统,包括:
布置在第一Web服务主机中的Web服务产生进程;和
布置在第二Web服务主机中的远程服务部署处理器,所述第二Web服务主机具有相对于所述第一Web服务主机的远程定位;
所述远程服务部署处理器具有把由所述第一Web服务主机转发给所述第二Web服务主机的应用程序档案文件扩展到布置在所述第二Web服务主机中的至少一个Web应用程序容器中所选一个Web应用程序容器和相关Web应用程序存储器上的逻辑单元,
所述远程服务部署处理器还具有为在所述应用程序档案文件内定义的Web服务产生唯一标识符的逻辑单元;
所述远程服务部署处理器还具有修改包含在所述应用程序档案文件中的所述Web服务的实现文件和部署描述符,以便引用所述第二Web服务主机和所述产生的唯一标识符的逻辑单元。
4、按照权利要求3所述的系统,其中所述第一和第二Web主机都是网格主机。
5、按照权利要求3所述的系统,还包括虚拟机,所述远程服务部署处理器可在所述虚拟机上执行。
6、一种远程主机,包括:
Web服务器和结合所述Web服务器执行的应用程序服务器;
配置成与所述应用程序服务器一起工作的Web服务引擎和相关的Web服务产生进程;和
与所述应用程序服务器耦合,并由所述Web服务引擎配置的远程服务部署处理器,
所述远程服务部署处理器包括把应用程序档案文件扩展到选择的Web应用程序容器和相关的Web应用程序存储体系中的逻辑单元,
所述远程服务部署处理器还包括产生由所述应用程序档案文件定义的Web服务的唯一标识符,并修改所述Web服务的实现文件和部署描述符,以便引用所述唯一标识符和远程主机的逻辑单元,
所述远程服务部署处理器还包括借助一个修改的所述部署描述符,调用所述Web服务产生进程,以便例示所述Web服务的逻辑单元。
7、按照权利要求6所述的远程主机,其中远程主机是网格主机,所述Web服务产生进程是网格服务厂家产生进程。
8、其上保存有从调用进程到目标主机克隆和例示Web服务的计算机程序的机器可读存储器,计算机程序包括当被执行时,使机器实现下述步骤的一组指令:
把应用程序档案文件扩展到目标主机中的Web应用程序容器中,所述档案文件包括至少一个用于实现Web服务的操作文件,该Web服务的实现文件,和该Web服务的部署描述符;
产生该Web服务的唯一标识符;
首先修改所述实现文件,以便引用目标主机、 目标主机中的Web应用程序,和用于指定该Web服务的所述产生的唯一标识符;
接下来修改所述部署描述符,以便引用用于指定Web服务的所述产生的唯一标识符;
利用所述部署描述符,把Web服务部署在目标主机中;和
把引用实现文件的网络地址转发给调用进程。
9、按照权利要求8所述的机器可读存储器,其中所述首先修改步骤还包括如果在目标主机中产生了新的接口文件,那么修改所述实现文件,以便引用目标主机中的所述新的接口文件的步骤。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/265,756 | 2002-10-07 | ||
US10/265,756 US7322031B2 (en) | 2002-10-07 | 2002-10-07 | Remote Web service cloning and instantiation |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1492352A true CN1492352A (zh) | 2004-04-28 |
CN1249601C CN1249601C (zh) | 2006-04-05 |
Family
ID=32042515
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN03159866.8A Expired - Lifetime CN1249601C (zh) | 2002-10-07 | 2003-09-26 | 用于远程web服务克隆和实例化的系统和方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US7322031B2 (zh) |
CN (1) | CN1249601C (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442236C (zh) * | 2004-10-28 | 2008-12-10 | 国际商业机器公司 | 用于使用md4校验和链接跨机器事务的方法和系统 |
CN102200918A (zh) * | 2010-03-23 | 2011-09-28 | 中兴通讯股份有限公司 | 服务器部署应用程序的方法及装置 |
CN101198947B (zh) * | 2005-06-20 | 2013-01-30 | 微软公司 | 对web服务第三方扩展的安全且稳定的主存 |
WO2017028695A1 (zh) * | 2015-08-17 | 2017-02-23 | 阿里巴巴集团控股有限公司 | 一种用于发布网页应用的方法与设备 |
CN107003865A (zh) * | 2014-10-31 | 2017-08-01 | 威睿公司 | 利用远程应用的文件共享 |
Families Citing this family (49)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6414036B1 (en) * | 1999-09-01 | 2002-07-02 | Van Beek Global/Ninkov Llc | Composition for treatment of infections of humans and animals |
EP1631830A4 (en) * | 2002-07-08 | 2007-12-26 | American Underwater Products D | DIVE COMPUTER WITH GPS RECEIVER |
US9443039B2 (en) | 2002-07-08 | 2016-09-13 | Pelagic Pressure Systems Corp. | Systems and methods for dive computers with remote upload capabilities |
US8174436B2 (en) | 2002-07-08 | 2012-05-08 | American Underwater Products, Inc. | Dive computer with global positioning system receiver |
US8489741B2 (en) * | 2002-11-21 | 2013-07-16 | International Business Machines Corporation | Policy enabled grid architecture |
US7293059B2 (en) * | 2003-04-04 | 2007-11-06 | Sun Microsystems, Inc. | Distributed computing system using computing engines concurrently run with host web pages and applications |
US7546553B2 (en) * | 2003-07-28 | 2009-06-09 | Sap Ag | Grid landscape component |
US7568199B2 (en) * | 2003-07-28 | 2009-07-28 | Sap Ag. | System for matching resource request that freeing the reserved first resource and forwarding the request to second resource if predetermined time period expired |
US7673054B2 (en) * | 2003-07-28 | 2010-03-02 | Sap Ag. | Grid manageable application process management scheme |
US7574707B2 (en) * | 2003-07-28 | 2009-08-11 | Sap Ag | Install-run-remove mechanism |
US7703029B2 (en) | 2003-07-28 | 2010-04-20 | Sap Ag | Grid browser component |
US7631069B2 (en) * | 2003-07-28 | 2009-12-08 | Sap Ag | Maintainable grid managers |
US7594015B2 (en) * | 2003-07-28 | 2009-09-22 | Sap Ag | Grid organization |
US20050050183A1 (en) * | 2003-08-27 | 2005-03-03 | International Business Machines Corporation | Method, system and storage medium for managing open grid service architecture services |
CA2539474C (en) * | 2003-09-17 | 2012-04-03 | Research In Motion Limited | System and method for dynamic generation and customization of web service client applications for terminals |
US7810090B2 (en) * | 2003-12-17 | 2010-10-05 | Sap Ag | Grid compute node software application deployment |
US7797697B2 (en) | 2004-05-05 | 2010-09-14 | Bea Systems, Inc. | System and method for deploying applications with library modules |
US7730112B2 (en) | 2004-05-10 | 2010-06-01 | Bea Systems Inc. | Scoped applications |
US7428733B2 (en) * | 2004-05-13 | 2008-09-23 | Bea Systems, Inc. | System and method for custom module creation and deployment |
US7814484B2 (en) | 2004-05-14 | 2010-10-12 | Bea Systems, Inc. | System and method for web application extensibility |
US7707572B2 (en) * | 2004-05-19 | 2010-04-27 | Bea Systems, Inc. | System and method for application container architecture |
US7735097B2 (en) * | 2004-05-24 | 2010-06-08 | Sap Ag | Method and system to implement a deploy service to perform deployment services to extend and enhance functionalities of deployed applications |
US7721283B2 (en) * | 2004-05-24 | 2010-05-18 | Sap Ag | Deploying a variety of containers in a Java 2 enterprise edition-based architecture |
US8762981B2 (en) * | 2004-05-24 | 2014-06-24 | Sap Ag | Application loading and visualization |
US7882502B2 (en) * | 2004-05-25 | 2011-02-01 | Sap Ag | Single file update |
US7877735B2 (en) * | 2004-05-25 | 2011-01-25 | Sap Ag | Application cloning |
US7747698B2 (en) * | 2004-05-25 | 2010-06-29 | Sap Ag | Transaction model for deployment operations |
US8464250B1 (en) | 2004-09-23 | 2013-06-11 | Transcontinental Events, Llc | System and method for on-demand cloning of virtual machines |
US7565383B2 (en) * | 2004-12-20 | 2009-07-21 | Sap Ag. | Application recovery |
US7793290B2 (en) * | 2004-12-20 | 2010-09-07 | Sap Ag | Grip application acceleration by executing grid application based on application usage history prior to user request for application execution |
US7987225B2 (en) * | 2004-12-22 | 2011-07-26 | International Business Machines Corporation | Method for remembering resource allocation in grids |
CN100416449C (zh) * | 2005-04-29 | 2008-09-03 | 国际商业机器公司 | 软件服务提供商自动获得及运行软件服务的方法和装置 |
US7624349B2 (en) * | 2006-03-21 | 2009-11-24 | Microsoft Corporation | Declarative definition enabling graphical designer reuse |
JP2007279838A (ja) * | 2006-04-03 | 2007-10-25 | Ibm Japan Ltd | 情報処理装置、方法およびプログラム |
US8595356B2 (en) * | 2006-09-28 | 2013-11-26 | Microsoft Corporation | Serialization of run-time state |
US9043128B2 (en) | 2007-04-23 | 2015-05-26 | Pelagic Pressure Systems | Dive computer incorporating stored dive site information |
US8423955B2 (en) * | 2007-08-31 | 2013-04-16 | Red Hat, Inc. | Method and apparatus for supporting multiple business process languages in BPM |
US9058571B2 (en) * | 2007-08-31 | 2015-06-16 | Red Hat, Inc. | Tool for automated transformation of a business process definition into a web application package |
US8825713B2 (en) * | 2007-09-12 | 2014-09-02 | Red Hat, Inc. | BPM system portable across databases |
US8914804B2 (en) | 2007-09-12 | 2014-12-16 | Red Hat, Inc. | Handling queues associated with web services of business processes |
US9258385B2 (en) * | 2007-09-25 | 2016-02-09 | Infineon Technologies Ag | Method for loading a program module into a network device and network with network devices |
US8954952B2 (en) * | 2007-11-30 | 2015-02-10 | Red Hat, Inc. | Portable business process deployment model across different application servers |
US8539061B2 (en) * | 2008-09-19 | 2013-09-17 | Georgia Tech Research Corporation | Systems and methods for web service architectures |
US8561059B2 (en) * | 2009-04-07 | 2013-10-15 | Sap Ag | Apparatus and storage device for consolidating installation and deployment of environments |
CN102075571A (zh) * | 2010-12-31 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 应用程序的执行方法、设备及系统 |
US8990271B2 (en) * | 2012-03-12 | 2015-03-24 | International Business Machines Corporation | Specifying data in a standards style pattern of service-oriented architecture (SOA) environments |
US20180329700A1 (en) * | 2015-11-30 | 2018-11-15 | Hewlett Packard Enterprise Development Lp | Application migration system |
US11425085B1 (en) * | 2017-11-20 | 2022-08-23 | Amazon Technologies, Inc. | Service discovery and renaming |
US11204975B1 (en) * | 2020-08-10 | 2021-12-21 | Coupang Corp. | Program interface remote management and provisioning |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6298381B1 (en) * | 1998-10-20 | 2001-10-02 | Cisco Technology, Inc. | System and method for information retrieval regarding services |
US6449657B2 (en) * | 1999-08-06 | 2002-09-10 | Namezero.Com, Inc. | Internet hosting system |
US7103647B2 (en) * | 1999-08-23 | 2006-09-05 | Terraspring, Inc. | Symbolic definition of a computer system |
US6816905B1 (en) * | 2000-11-10 | 2004-11-09 | Galactic Computing Corporation Bvi/Bc | Method and system for providing dynamic hosted service management across disparate accounts/sites |
US7647523B2 (en) * | 2002-06-12 | 2010-01-12 | International Business Machines Corporation | Dynamic binding and fail-over of comparable web service instances in a services grid |
US7200657B2 (en) * | 2002-10-01 | 2007-04-03 | International Business Machines Corporation | Autonomic provisioning of network-accessible service behaviors within a federated grid infrastructure |
US20040068553A1 (en) * | 2002-10-07 | 2004-04-08 | International Business Machines Corporation | Dynamically selecting a Web service container for hosting remotely instantiated Web services |
-
2002
- 2002-10-07 US US10/265,756 patent/US7322031B2/en active Active
-
2003
- 2003-09-26 CN CN03159866.8A patent/CN1249601C/zh not_active Expired - Lifetime
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100442236C (zh) * | 2004-10-28 | 2008-12-10 | 国际商业机器公司 | 用于使用md4校验和链接跨机器事务的方法和系统 |
CN101198947B (zh) * | 2005-06-20 | 2013-01-30 | 微软公司 | 对web服务第三方扩展的安全且稳定的主存 |
CN102200918A (zh) * | 2010-03-23 | 2011-09-28 | 中兴通讯股份有限公司 | 服务器部署应用程序的方法及装置 |
CN102200918B (zh) * | 2010-03-23 | 2015-12-16 | 中兴通讯股份有限公司 | 服务器部署应用程序的方法及装置 |
CN107003865A (zh) * | 2014-10-31 | 2017-08-01 | 威睿公司 | 利用远程应用的文件共享 |
CN107003865B (zh) * | 2014-10-31 | 2021-01-12 | 威睿公司 | 利用远程应用的文件共享 |
WO2017028695A1 (zh) * | 2015-08-17 | 2017-02-23 | 阿里巴巴集团控股有限公司 | 一种用于发布网页应用的方法与设备 |
CN106469154A (zh) * | 2015-08-17 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 一种用于发布网页应用的方法与设备 |
Also Published As
Publication number | Publication date |
---|---|
US20040068731A1 (en) | 2004-04-08 |
US7322031B2 (en) | 2008-01-22 |
CN1249601C (zh) | 2006-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1249601C (zh) | 用于远程web服务克隆和实例化的系统和方法 | |
US7912957B2 (en) | Autonomic service routing using observed resource requirement for self-optimization | |
US7171470B2 (en) | Grid service scheduling of related services using heuristics | |
CN100388265C (zh) | 管理数据处理系统中的应用文件的方法和装置 | |
US7937500B2 (en) | Dynamic, real-time integration of software resources through services of a content framework | |
US7035944B2 (en) | Programmatic management of software resources in a content framework environment | |
CA2486434C (en) | A computing services grid | |
TWI276998B (en) | Systems and methods for managing drivers in a computing system | |
CN100487689C (zh) | 用于环球网服务结构中的包容器选择器及其选择方法 | |
US20030055868A1 (en) | Building distributed software services as aggregations of other services | |
CN1969280A (zh) | 使用命令行环境的远程系统管理 | |
US8296774B2 (en) | Service-based endpoint discovery for client-side load balancing | |
US20040019887A1 (en) | Method, system, and program for loading program components | |
US20070276630A1 (en) | Enabling high availability and load balancing for jmx mbeans | |
US20050192929A1 (en) | Generation and conversion of object that provide for efficient object modification | |
US20080216050A1 (en) | Method and System for Accessing a Resource Implemented in a Computer Network | |
Brock et al. | Enhancing cloud computing environments using a cluster as a service | |
van Gurp et al. | Service grid variability realization | |
US20060090172A1 (en) | Printing interface for a computer platform | |
Lamine et al. | Simultaneous multiple versions: The key to the WOS | |
CN1744035A (zh) | 支持网格计算标准wsrf的j2ee运行平台 | |
Kim et al. | The spatial data server based on open gis standards in heterogeneous distributed environment | |
CN1829967A (zh) | 可维护的网格管理器 | |
Jankowski et al. | Grid Checkpointing Service-integration of low-level checkpointing packages with the Grid environment | |
JP2009187542A (ja) | 要求処理システム、要求処理方法、および要求処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20060405 |