CN1577251B - 小服务器程序的远程协作方法和系统 - Google Patents

小服务器程序的远程协作方法和系统 Download PDF

Info

Publication number
CN1577251B
CN1577251B CN031436749A CN03143674A CN1577251B CN 1577251 B CN1577251 B CN 1577251B CN 031436749 A CN031436749 A CN 031436749A CN 03143674 A CN03143674 A CN 03143674A CN 1577251 B CN1577251 B CN 1577251B
Authority
CN
China
Prior art keywords
server programs
small server
small
programs
http
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.)
Expired - Fee Related
Application number
CN031436749A
Other languages
English (en)
Other versions
CN1577251A (zh
Inventor
蔡弘
陆薇
杨博
汤利华
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN031436749A priority Critical patent/CN1577251B/zh
Priority to US10/890,729 priority patent/US7543289B2/en
Publication of CN1577251A publication Critical patent/CN1577251A/zh
Priority to US12/142,331 priority patent/US8387042B2/en
Application granted granted Critical
Publication of CN1577251B publication Critical patent/CN1577251B/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4553Object oriented directories, e.g. common object request broker architecture [CORBA] name server
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]

Abstract

一种在小服务器程序之间进行协作的方法和系统,包括:建立公共注册表;响应于来自外部的请求,建立扩展上下文,扩展上下文可以调用公共注册表中的资源;对多个小服务器程序进行初始化配置,并将多个小服务器程序注册到公共注册表中,多个小服务器程序分别位于不同的Java虚拟机上,或位于同一Java虚拟机的不同小服务器程序容器中;和多个小服务器程序通过上下文的调用进行相互访问。本发明可实现位于不同Java虚拟机、甚至位于相同的Java虚拟机但位于不同的小服务器程序容器中的小服务器程序之间的协作,因为在综合应用业务系统中,不仅HTTP小服务器程序之间、SIP小服务器程序之间需要协同工作,而且HTTP与SIP小服务器程序之间也需要协同工作。

Description

小服务器程序的远程协作方法和系统
技术领域
本发明涉及一种在面向请求/响应的网络服务环境中的各种小服务器程序(servlet)之间的协同工作的方法和系统,特别涉及一种位于相同或不同的Java虚拟机上的各种小服务器程序之间的协同调用的方法和系统。 
背景技术
根据SUN公司的Java(扎哇--一种程序语言)小服务器程序指南中的定义,小服务器程序(servlet)是用于扩展诸如支持Java的网络服务器的面向请求/响应的服务器功能的Java模块。例如,小服务器程序负责提取HTML订单项表格中的数据(从请求者的浏览器获得请求),并对其应用用于更新公司的订单数据库的业务逻辑(动态地建立响应并将其发送给请求者)。小服务器程序与服务器的关系就象是小应用程序(applet)与浏览器的关系一样。但是与小应用程序不同的是,小服务器程序没有图形用户界面。 
实际上,小服务器程序是一个抽象的概念,它可以映射到各种具体协议的实现。它不仅包括用于处理HTTP(超文本传输协议)请求/响应的HTTP小服务器程序,也包括其它形式的小服务器程序,比如SIP(会话初始协议)小服务器程序。由于HTTP小服务器程序非常普遍,实际上的小服务器程序大多数都是HTTP类型的,因此人们几乎忘记了小服务器程序的其它可能形式。 
图1是示出典型的HTTP小服务器程序工作过程的示意图。在图1中,当用户在客户机100的浏览器的页面表格(未示出)上完成输入后,将一HTTP请求发送给安装有小服务器程序的HTTP服务器(一般的网络应用服务器)120,HTTP服务器120中的小服务器程序容器(未示出)将该HTTP请求消息映射给其中的相应的小服务器程序,然后调用该小服务器程序。该小服务器程序在数据库130中搜索相应的数据,建立对该HTTP请求的HTTP响应消息,并将该HTTP响应消息发送回客户机100,供该用户浏览和使用。这就是典型的HTTP小服务器程序的工作方式。
下面将结合图2详细描述现有技术中的小服务器程序容器。 
图2示出了服务器的内部工作原理和一种小服务器程序容器的结构。在图2中,服务器类200代表通过网络(未示出)(诸如因特网等的各种网络)与客户机相连接的服务器,其通过业务类202将从客户机接收的HTTP消息传递给连接器204。这里,业务类202例如是8080端口,它是服务器类200与连接器204之间的物理连接。在连接器204处,将从业务类202传送来的HTTP消息(物理数据包)转换为逻辑命令,形成HTTP请求并将该HTTP请求传送给小服务器程序容器220。另外,连接器204还将从小服务器程序容器220接收的HTTP响应转换为HTTP消息并通过业务类202和服务器类200发送给客户机。 
与连接器204连接的小服务器程序容器(servlet container)220工作在Java虚拟机(Java Virtual Machine-JVM)的上层。一个Java虚拟机可以被看作是具有服务器功能的服务器,其可以拥有多个小服务器程序容器220。 
在小服务器程序容器220中,按从低到高的层次分别包含有:容器引擎206,用于启动并维护整个小服务器程序容器220的工作;虚拟主机(Host)208,工作在容器引擎206的上层,用于模拟多个主机;上下文(Context)210,工作在虚拟主机208的上层,负责管理运行于虚拟主机中的一个具体的应用程序;包装(Wrapper)216,工作在上下文210的上层,用于管理组成应用程序的某一小服务器程序;HTTP小服务器程序212,工作在小服务器程序容器220的最顶层,是完成某一项工作或任务的最基本的单元。 
当Java虚拟机启动时,它将使用业务类202创建HTTP连接器204和容器引擎206,一个容器引擎206可以包括并管理多个虚拟主机208,一个虚拟主机208可以包括并管理多个上下文210,一个上下文可以包括并管理多个包装216,而包装216将利用小服务器程序212对所接收的HTTP请求实际地进行实例化和处理。 
当HTTP请求发送到小服务器程序容器220中时,通常只由该小服务器程序容器220通过上下文210来调用相应的小服务器程序212。另外,小服务器程序212可以调用在相同的小服务器程序容器220中的其它小服务器程序(未示出),或可以被在相同的小服务器程序容器220中的其它小服务器程序(未示出)调用。除此之外没有其它的办法来调用小服务器程序212本 身。例如,使用一般的Java类来调用小服务器程序212是无效的。另外,从小服务器程序212的固有特性来看,其在由于接收到HTTP请求而被启动后,可以调用其它的Java代码,但是却没有办法使该小服务器程序212从小服务器程序容器220的外部直接、自动地获得一个事件。 
如上所述,在同一个上下文210中的各个不同小服务器程序212可以共享一些状态和事件。但是,对一个普通的小服务器程序212来说,除了HTTP请求外,没有办法模拟一个来自上下文210之外的小服务器程序。例如,对于位于两个不同的Java虚拟机上的小服务器程序来说,它们的协作(诸如共享状态信息或相互发送事件)是不可能的,甚至在同一个Java虚拟机上,如果两个小服务器程序分别位于两个不同的小服务器程序容器中,则这两个小服务器程序之间的协作也是不可能的。这就是现有技术中常规的小服务器程序的局限性。 
前文已提到“小服务器程序”只是一个概念,而HTTP小服务器程序只是各种可能的种类中的一种。现在,由于还存在另一种重要的协议,即“会话初始协议(Session Initiation Protocal-SIP)”,在Java标准化组织中又定义了一种新的小服务器程序,即“SIP小服务器程序”。HTTP小服务器程序主要用于处理Web(网络)请求,而SIP小服务器程序则主要用于处理VoIP(基于IP的语音)应用。SIP小服务器程序继承了普通HTTP小服务器程序对象的共有特性,但是它们之间也有很大的区别,示于表1中。 
表1 
  
  模型 映射 调用
HTTP小服务器程序 请求/响应 使用小服务器程序“路径”将HTTP请求映射到处理该请求的小服务器程序 由终端用户使用浏览器正常调用
SIP小服务 器程序 可以使用请求/响应模型,也可以主动地创建新的请求,或者转发收 到的请求到一个或多个目标地址 使用预定义的“映射规则”将SIP请求映射到SIP 小服务器程序 由SIP客户机正常调用
从表1中可以看出,HTTP小服务器程序只能进行请求/响应的一对一处 理,即只能针对一个HTTP请求产生一个响应,并将该响应发送回客户机。而SIP小服务器程序则不仅可以自主产生请求,还可以在一个请求的基础上产生多个分支请求,用以向不同的服务器或Java虚拟机等发送,并产生相应的响应,以完成更加复杂的任务。由此可以看出,通过同时应用HTTP小服务器程序和SIP小服务器程序,可以实现网络应用服务器等的更加复杂的功能(例如由多方参加的交互式会议等),从而给用户带来更加方便的服务。 
为了完成特定的任务而需要实现HTTP小服务器程序和SIP小服务器程序或其它种类的小服务器程序的相互调用时,我们称之为综合应用业务。随着网络化进程的不断深化和发展,能够综合处理包括HTTP和SIP的各种协议在综合应用业务中显得尤其重要。 
在综合应用业务中,小服务器程序被用作特定任务和不同协议(如HTTP协议和SIP协议)的编程模型,其中必须使用多种协议,而不是诸如HTTP的单独一种协议。这意味着需要不同的小服务器程序容器。这种综合应用业务的一个典型实例就是所谓的“预设的网络会议系统”,其中HTTP协议被用来输入会议的规划信息,而SIP协议被用来启动从会议服务器到参加这个会议的各个成员的呼叫。但是在现有技术中,服务程序模型只关心HTTP协议,并且只有属于同一个(HTTP)小服务器程序容器中的小服务器程序才可以相互协作。目前解决上述问题的方案仅仅是对HTTP小服务器程序进行修改。 
图3是示出现有技术中实现综合应用业务的模式的示意图。如图3所示,在现有技术中,要实现综合应用业务,必须在同一个上下文中分别构建HTTP小服务器程序和SIP小服务器程序,综合应用业务提供商必须既提供HTTP小服务器程序,又提供SIP小服务器程序。然而,在现有技术中这是非常困难的,因为它们依靠不同协议的支持,HTTP小服务器程序提供商可能对SIP并不专业,同时SIP小服务器程序提供商对HTTP也并不专业,因此,在应用服务器中重写现有的小服务器程序容器的原代码以支持SIP协议要花费大量的时间和资金。另外,如果服务提供商将来自不同销售商的HTTP小服务器程序和SIP小服务器程序集中构建在同一个上下文中,则会存在知识产权方面的争议。 
另外,即使通过上述方式解决了上述问题,将来需要更多的协议来支持综合应用业务时则又会存在更大的困难。
发明内容
针对上面现有技术中存在的问题,本发明的目的是提供一种小服务器程序(servlet)的远程协作方法,其特征在于所述方法包括步骤:建立一公共注册表;响应于来自外部的请求,建立一扩展上下文,其中所述扩展上下文可以调用所述公共注册表中的资源;对多个小服务器程序进行初始化配置,并将所述多个小服务器程序注册到所述公共注册表中,其中所述多个小服务器程序分别位于不同的Java虚拟机上,或位于同一Java虚拟机的不同小服务器程序容器中;以及所述多个小服务器程序通过所述扩展上下文的调用进行相互访问。 
本发明还提供一种小服务器程序的远程协作系统,其特征在于所述系统包括:多个小服务器程序容器,用于处理来自客户机的请求,并维护相应的会话,所述多个小服务器程序容器每个包含至少一个小服务器程序,位于同一Java虚拟机上或分别位于不同的Java虚拟机上;公共注册表,用于管理被注册到其中的信息;和应用程序会话模块,用于响应于来自外部的请求而建立一扩展上下文,对每个小服务器程序进行初始化配置,并将每个小服务器程序注册到所述公共注册表中,其中所述扩展上下文可以调用所述公共注册表中的资源,并且所述每个小服务器程序通过对所述扩展上下文的调用进行相互协作。 
本发明可实现对位于不同Java虚拟机、甚至位于相同的Java虚拟机但位于不同的小服务器程序容器中的小服务器程序之间的协作,因为在综合应用业务系统中,不仅HTTP小服务器程序之间、SIP小服务器程序之间需要协同工作,而且HTTP与SIP小服务器程序之间也需要协同工作。 
附图说明
通过结合附图对本发明实施例的详细描述,本发明的上述特点和优点将变得更加清楚,其中 
图1是示出典型的HTTP小服务器程序的工作过程的示意图。 
图2示出了服务器的内部工作原理和一种小服务器程序容器的结构。 
图3是示出现有技术实现综合应用业务的方式的示意图。 
图4是根据本发明的实施例支持综合应用业务的系统的框图。 
图5是根据本发明的实施例实现HTTP小服务器程序和SIP小服务器程 序之间的远程调用的图,其中HTTP小服务器程序和SIP小服务器程序位于同一个扩展上下文中。 
图6是根据本发明的实施例实现HTTP小服务器程序和SIP小服务器程序之间的远程调用的图,其中HTTP小服务器程序、SIP小服务器程序和扩展上下文分别位于不同的Java虚拟机上。 
图7是根据本发明的实施例实现HTTP小服务器程序和SIP小服务器程序之间的远程调用的图,其适用于传统的Web服务器提供商。 
图8是根据本发明的实施例实现HTTP小服务器程序和SIP小服务器程序之间的远程调用的图,其适用于新兴的SIP服务器提供商。 
图9是按照本发明支持综合应用业务的系统所执行的处理的流程图。 
具体实施方式
下面将结合附图对本发明的具体实施例进行详细的描述。 
图4是根据本发明的实施例支持综合应用业务的系统400的框图。本发明的系统400包括:远程应用会话部件410,远程HTTP小服务器程序容器420,和SIP小服务器程序容器430。其中,远程应用会话部件410对应于一个综合应用业务,它可以管理包括HTTP会话和SIP会话在内的多个会话。远程应用会话部件410的功能可以用RMI(Remote Method Invacation—远程方法调用,是现有技术中一种公知的方法)接口来实现,或者其可以被打包成EJB模块。 
该远程应用会话部件410维护着一组XML(可扩展标识语言)文件,包括布署描述文件(Deployment Description file)和配置文件,用于当启动时装载必要的资源和配置,如,启动定时器、创建构成该综合应用业务的远程小服务器程序之间的关系等,其中这些服务于特定应用业务的远程小服务器程序构成了远程小服务器程序组。 
远程HTTP小服务器程序容器420(可以是多个)支持基于Web的操作。它从客户机(如图1中的客户机100)接收HTTP请求,向外发送HTTP响应,并维护该HTTP会话(请求/响应)。即,纯粹的HTTP请求/响应是在HTTP小服务器程序容器420内部处理的。另外,根据HTTP小服务器程序的逻辑,远程HTTP小服务器程序容器420也向远程SIP小服务器程序容器430或远程应用会话部件410(具体说是其管理的扩展上下文—下面将进行详述)发 送事件。 
远程SIP小服务器程序容器430(可以是多个)支持呼叫控制或即时消息。它接收并发送SIP请求/响应,并维护该SIP会话(请求/响应)。即,纯粹的SIP请求/响应是在远程SIP小服务器程序容器430内部处理的。另外,根据SIP小服务器程序的逻辑,远程SIP小服务器程序容器430也向远程HTTP小服务器程序容器420或远程应用会话部件410(具体说是其管理的扩展上下文—下面将进行详述)发送事件。 
下面将结合附图5、6、7和8说明实现本发明的具体方式。 
图5是根据本发明实施例实现HTTP小服务器程序和SIP小服务器程序之间的远程调用的图,其中HTTP小服务器程序和SIP小服务器程序位于同一个扩展上下文中。如图5所示,为了实现在HTTP小服务器程序和SIP小服务器程序之间的远程调用,首先要将HTTP小服务器程序530的接口和SIP小服务器程序520的接口扩充成为远程接口。 
扩充接口的操作是按照下面详细描述的方式进行的。即,寻找一个正在运行中的轻型目录访问协议(LDAP)注册表(以下简称为“注册表”)540。如果找不到,则建立一个新的LDAP注册表540,并获得该注册表540所运行的端口号。轻型目录访问协议是一个标准协议,它使得来自不同销售商的应用程序(产品)可以共享符合该标准的注册表。注册表540位于Java虚拟机500上,也可以位于能够共享的其它设备上,用于维护被注册到其中的各种信息。 
然后,当Java虚拟机500因接收到某一应用请求而启动时,动态地建立一个扩展上下文510。所建立的扩展上下文510可以有多个,其中每一个对应于一个不同的应用实例,并且所建立的扩展上下文510可以通过注册表540所运行的端口号对在其中所注册的信息资源进行调用。 
我们知道,通常的“上下文”是指来自同一个小服务器程序容器的各个小服务器程序共享信息的场所,其位于某个小服务器程序容器内部。而本发明提出的“扩展上下文”的概念则是指远程小服务器程序和非远程小服务器程序共享信息的场所,其位于Java虚拟机500上,但是不位于某个小服务器程序容器的内部。“扩展上下文”本身可以是依赖于具体实现的远程对象,也可以被构建为EJB模块,由远程应用会话部件410进行管理。 
在建立扩展上下文510后,远程应用会话部件410利用其本身维护的相 关文件对各个HTTP小服务器程序容器中的HTTP小服务器程序530和各个SIP小服务器程序容器中的SIP小服务器程序520(图5中只示出了一个HTTP小服务器程序和一个SIP小服务器程序,但是它们分别可以是多个)进行初始化(如配置各个接口的参数、启动定时器等)。 
然后,由远程应用会话部件410将HTTP小服务器程序530和SIP小服务器程序520的名称(也可以是其它标识符)分别注册到注册表540中,并使它们的名称可以识别。这样,注册表540中就包括了HTTP小服务器程序530和SIP小服务器程序520的名称等信息。这个注册的过程是通过RMI来实现的。 
另外,在将HTTP小服务器程序530和/或SIP小服务器程序520的参数(如名称或其它识别符等)注册到注册表540中时,远程应用会话部件410还根据需要,在注册表540中对每个小服务器程序设置了相应的生命周期,并对该生命周期进行维护。当计数器(未示出)指示某个小服务器程序的生命周期结束时,远程应用会话部件410将该小服务器程序的相关参数从注册表540的条目中删除,从而使该小服务器程序不再具有远程调用和被远程调用的功能。 
这样,HTTP小服务器程序530和SIP小服务器程序520的接口就被扩充成为远程接口,即图5中的HTTP远程接口532和SIP远程接口522。具体实现这个扩充接口的HTTP实例代码如下所示: 
public abstract class RemoteHttpServlet extends HttpServlet implements Remote{ 
protected Registry registry;//The registry forthe servlet 
/**Begins the servlet’s RMI operations.Causes the servlet to export itself and then binditself to the registry.**/ 
public void init(ServletConfig config)throws ServletException{...} 
/**Halts the servlet’s RMI operations.Causes the servlet to unbind itself from theregistry**/ 
public void destroy(){unbind();} 
/**Returns the name under which the servlet should be bound in the registry.**/ 
protected String getRegistryName(){...} 
/**Returns the port where the registry should be running.**/ 
protected int getRegistryPort(){...}
/**Binds the servlet to the registry.Creates the registry if necessary。**/ 
protected void bind(){ 
//Try to find the appropriate registry already running 
//If we couldn’t find it,we need to create it. 
//If we get here,we must have a valid registry. 
//Now registry this servlet instance with that registry. 
/**Unbinds the servlet from the registry.Logs any errors。**/ 
protected void unbind(){...} 
在完成将HTTP小服务器程序530和SIP小服务器程序520的接口分别扩充为HTTP远程接口532和SIP远程接口522后,还要利用RMI编译器对这些小服务器程序进行编译。 
通过识别注册表540所运行的端口号,扩展上下文510可以对注册表540中的资源进行利用。也就是说,对于扩展上下文510,HTTP小服务器程序530和SIP小服务器程序520都是可见的,并且这些小服务器程序之间也是可见的。当在Java虚拟机500上运行某一应用程序时,与该应用程序相对应的扩展上下文510可以通过注册表540中所注册的条目对所需要的HTTP小服务器程序530和/或SIP小服务器程序520进行调用,并利用它们各自的业务逻辑完成相应的功能。我们将由扩展上下文510通过利用注册表540调用或管理的这些小服务器程序称为一个远程小服务器程序组。 
一个远程小服务器程序组可以包括位于同一个或不同的Java虚拟机500上的许多不同种类的远程小服务器程序,它们需要通过扩展上下文510相互之间交换消息,就象在共享一个“聊天室”,并通过随时相互调用、相互协作来完成某些特定的任务,这些任务例如是一个综合应用业务。各个远程小服务器程序向扩展上下文510中发送各种事件,并由此将这些事件广播给所有其它的远程小服务器程序。这些小服务器程序在扩展上下文510中所能“看见”的信息不是一般概念上的文字,而是各种事件,例如是呼叫完成,或者是从网络浏览器获得的请求等。 
例如,各个远程小服务器程序之间相互作用(调用)的实例可以用代码实现如下:
public class InvokerServlet extends RemoteHTTPServlet{ 
//Assume Invoker Servlet is also a remote servlet 
private String getRegistryHost(){...} 
private int getRegistryPort(){...} 
private String getRegistryName(){...} 
private String InvokeUsingRMIObject(){ 
Registry registry=LocateRegistry.getRegistry(getRegistryHost(),getRegistryPort()); 
InvokedServlet invoked=(InvokedServlet)registry.lookup(getRegistryName()); 
return...; 
远程小服务器程序组的形成可以是动态的。即,构成该远程小服务器程序组的远程小服务器程序可以根据实施描述文件(与一般用于网络应用(J2EE)中的实施描述文件一样)动态地建立,并在其生命周期内在扩展上下文510中监听各种事件。 
这样,就建立了实现HTTP小服务器程序和SIP小服务器程序之间的远程调用的环境配置。当然,上述的环境配置也可以通过如图6、7和8中所示的其它形式来建立。 
在图6中,HTTP小服务器程序530和SIP小服务器程序520分别位于不同的Java虚拟机1和2上,而扩展上下文510位于Java虚拟机3上。图7和图8分别示出了另外两种不同的分布方式,其中图7中的配置适用于传统的Web服务器提供商,而图8中的配置则适用于新兴的SIP服务器提供商。这些不同的分布方式与以上所述的实现HTTP小服务器程序530和SIP小服务器程序520之间的远程调用的环境配置实质上是相同的,只是它们所处的位置不同。 
另外,在本发明中,为了网络安全起见,在远程小服务器程序能够通过扩展上下文510访问其它远程小服务器程序之前,其必须得到安全管理器(未示出)的验证,以验证该远程小服务器程序是否是合法的调用者或被调用者。只有当该远程小服务器程序合法时,才允许其调用其它的远程小服务器程序或被其它的远程小服务器程序调用;否则是不允许的。 
下面将结合图9详细描述按照本发明支持综合应用业务的系统所执行的 处理的流程。 
图9是按照本发明的支持综合应用业务的系统所执行的处理的流程图。其中,在步骤S902,在Java虚拟机(例如是网络服务器)500上建立一公共注册表540,该公共注册表540是使得来自不同销售商的产品可以共享其中的信息的注册表,例如是符合LDAP协议的注册表。然后,在步骤S904,响应于来自客户机的请求,建立一扩展上下文510,该扩展上下文510对应于一特定的应用,并且可以通过公共注册表540所运行的端口调用所述公共注册表540中的资源。 
接下来,在步骤S906,远程应用会话部件410利用其所具有的实施描述文件和配置文件对多个小服务器程序520和530进行初始化配置,然后处理流程前进到步骤S908。在步骤S908中,远程应用会话部件410将所述多个小服务器程序520和530注册到所述公共注册表540中。这里,所述多个小服务器程序520和530可以分别位于不同的Java虚拟机上,也可以位于同一Java虚拟机的不同小服务器程序容器中。在步骤S910中,通过所述扩展上下文510调用所述多个小服务器程序520和530,使各个小服务器程序520和530之间可以相互进行访问和协作,以完成特定的任务。 
通过本发明,可以实现多个小服务器程序之间的协作,这些小服务器程序位于不同的Java虚拟机(JVM)上,或即使位于同一个Java虚拟机上,它们也位于不同的小服务器程序容器中。利用本发明的方法和系统,即使再有新的协议和应用出现,也可以容易地、低成本地实现支持各个协议的小服务器程序之间的相互调用和协作,更好地为用户提供综合应用业务。 
上面结合附图对本发明的具体实施例进行了详细地描述。本领域的普通技术人员应该明白,按照本发明的精神及指导思想,对本发明做出的各种修改和变化都在本发明所要求保护的范围之内。

Claims (8)

1.一种小服务器程序的远程协作方法,其特征在于所述方法包括步骤:
(1)建立一公共注册表;
(2)响应于来自外部的请求,建立一扩展上下文,其中所述扩展上下文可以调用所述公共注册表中的资源,所述扩展上下文指示Java虚拟机中多个小服务器程序共享信息的位置;
(3)对所述多个小服务器程序进行初始化配置,并将所述多个小服务器程序注册到所述公共注册表中,其中所述多个小服务器程序分别位于不同的Java虚拟机上,或位于同一Java虚拟机的不同小服务器程序容器中;以及
(4)所述多个小服务器程序通过对所述扩展上下文的调用进行相互协作;
其中,所述扩展上下文从所述多个小服务器程序接收事件,并将该事件广播给其它小服务器程序。
2.如权利要求1所述的远程协作方法,其特征在于所述多个小服务器程序包括超文本传输协议小服务器程序和会话初始协议小服务器程序。
3.如权利要求1所述的远程协作方法,其特征在于所述方法还包括:
(5)对所述多个小服务器程序进行生命周期管理,并将生命周期已经结束的小服务器程序从所述公共注册表中删除。
4.如权利要求1所述的远程协作方法,其特征在于所述扩展上下文与所述多个小服务器程序位于同一Java虚拟机或不同的Java虚拟机上。
5.一种小服务器程序的远程协作系统,其特征在于所述系统包括:
用于建立公共注册表的装置;
用于响应于来自外部的请求而建立一扩展上下文的装置,其中所述扩展上下文可以调用所述公共注册表中的资源,所述扩展上下文指示Java虚拟机中多个小服务器程序共享信息的位置;
用于对所述多个小服务器程序进行初始化配置并将所述多个小服务器程序注册到所述公共注册表中的装置,其中所述多个小服务器程序分别位于不同的Java虚拟机上,或位于同一Java虚拟机的不同小服务器程序容器中,
其中,所述多个小服务器程序通过所述扩展上下文的调用进行相互协作,并且其中,所述扩展上下文从小服务器程序接收事件,并将该事件广播给其它小服务器程序。
6.如权利要求5所述的远程协作系统,其特征在于,小服务器程序包括超文本传输协议小服务器程序和会话初始协议小服务器程序。
7.如权利要求5所述的远程协作系统,其特征在于所述用于对所述多个小服务器程序进行初始化配置并将所述多个小服务器程序注册到所述公共注册表中的装置还对每个小服务器程序进行生命周期管理,并将生命周期已经结束的小服务器程序从所述公共注册表中删除。
8.如权利要求5所述的远程协作系统,其特征在于,所述所述扩展上下文与所述多个小服务器程序位于同一Java虚拟机或不同的Java虚拟机上。
CN031436749A 2003-07-28 2003-07-28 小服务器程序的远程协作方法和系统 Expired - Fee Related CN1577251B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN031436749A CN1577251B (zh) 2003-07-28 2003-07-28 小服务器程序的远程协作方法和系统
US10/890,729 US7543289B2 (en) 2003-07-28 2004-07-14 Method for accessing and collaborating between servlets located on different Java virtual machines
US12/142,331 US8387042B2 (en) 2003-07-28 2008-06-19 Remote servlets collaboration

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN031436749A CN1577251B (zh) 2003-07-28 2003-07-28 小服务器程序的远程协作方法和系统

Publications (2)

Publication Number Publication Date
CN1577251A CN1577251A (zh) 2005-02-09
CN1577251B true CN1577251B (zh) 2012-07-18

Family

ID=34155786

Family Applications (1)

Application Number Title Priority Date Filing Date
CN031436749A Expired - Fee Related CN1577251B (zh) 2003-07-28 2003-07-28 小服务器程序的远程协作方法和系统

Country Status (2)

Country Link
US (2) US7543289B2 (zh)
CN (1) CN1577251B (zh)

Families Citing this family (54)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7979519B2 (en) * 2003-10-09 2011-07-12 Oki Electric Industry Co., Ltd. System for providing information between different protocol environments cooperative with each other and a method therefor
GB0416259D0 (en) * 2004-07-21 2004-08-25 Ibm A method and system for enabling a server application to be executed in the same virtual machine as a client application using direct object oriented
US9124653B2 (en) * 2004-09-03 2015-09-01 Symantec Corporation Method and apparatus for allowing sharing of streamable applications
US8204931B2 (en) 2004-12-28 2012-06-19 Sap Ag Session management within a multi-tiered enterprise network
US8024566B2 (en) * 2005-04-29 2011-09-20 Sap Ag Persistent storage implementations for session data within a multi-tiered enterprise network
US20060248199A1 (en) * 2005-04-29 2006-11-02 Georgi Stanev Shared closure persistence of session state information
US7761435B2 (en) * 2005-04-29 2010-07-20 Sap Ag External persistence of session state information
US20060248283A1 (en) * 2005-04-29 2006-11-02 Galin Galchev System and method for monitoring threads in a clustered server architecture
US7853698B2 (en) * 2005-04-29 2010-12-14 Sap Ag Internal persistence of session state information
US8589562B2 (en) 2005-04-29 2013-11-19 Sap Ag Flexible failover configuration
US8762547B2 (en) * 2005-04-29 2014-06-24 Sap Ag Shared memory implementations for session data within a multi-tiered enterprise network
US8214731B2 (en) * 2005-06-30 2012-07-03 International Business Machines Corporation Independently refreshing portlet content in a portal view
US7870265B2 (en) * 2005-06-30 2011-01-11 Oracle International Corporation System and method for managing communications sessions in a network
CN101346634B (zh) * 2005-11-04 2012-10-24 甲骨文国际公司 用于通信网络中的网守的系统和方法
US8707323B2 (en) * 2005-12-30 2014-04-22 Sap Ag Load balancing algorithm for servicing client requests
US7698443B2 (en) * 2006-03-02 2010-04-13 International Business Machines Corporation Multi-protocol authentication and authorization in computer network environments
US8171466B2 (en) * 2006-05-16 2012-05-01 Oracle International Corporation Hitless application upgrade for SIP server architecture
US8001250B2 (en) * 2006-05-16 2011-08-16 Oracle International Corporation SIP and HTTP convergence in network computing environments
US8112525B2 (en) * 2006-05-16 2012-02-07 Oracle International Corporation Engine near cache for reducing latency in a telecommunications environment
US8219697B2 (en) 2006-05-17 2012-07-10 Oracle International Corporation Diameter protocol and SH interface support for SIP server architecture
US9069870B2 (en) * 2006-07-12 2015-06-30 International Business Machines Corporation Client-side aggregation of context-sensitive request results where results for aggregation are asynchronously produced by multiple servers
US20080127234A1 (en) * 2006-09-19 2008-05-29 International Business Machines Corporation Methods, systems, and computer program products for a remote request dispatcher extension framework for container based programming models
US20080071922A1 (en) * 2006-09-19 2008-03-20 International Business Machines Corporation Methods, systems, and computer program products to transparently dispatch requests to remote resources in a multiple application server environment
US7661027B2 (en) * 2006-10-10 2010-02-09 Bea Systems, Inc. SIP server architecture fault tolerance and failover
US8375362B1 (en) * 2006-11-28 2013-02-12 Emc Corporation Wizard for web service search adapter
US20080155492A1 (en) * 2006-12-22 2008-06-26 International Business Machines Corporation Development tool for creating converged applications that include sip and web components
US8775641B2 (en) * 2007-01-31 2014-07-08 Oracle International Corporation Self invitation to initiate sessions, start processes, or generate outbound messages
US7911955B2 (en) * 2007-01-31 2011-03-22 Hewlett-Packard Development Company, L.P. Coordinated media control system
US7698411B2 (en) * 2007-08-22 2010-04-13 International Business Machines Corporation Selectively delivering cached content or processed content to clients based upon a result completed percentage
US8032587B2 (en) * 2007-08-28 2011-10-04 International Business Machines Corporation Method and apparatus for client-side aggregation of asynchronous fragmented requests
US9432243B2 (en) * 2007-08-22 2016-08-30 International Business Machines Corporation Re-using asynchronous server-side results generated for a request context of one client to satisfy a request context of a different client
US20090210478A1 (en) * 2008-02-18 2009-08-20 Research In Motion Limited System and Method for Resolving Extensions for the SIP Session Policy Framework
US8179889B2 (en) * 2009-06-30 2012-05-15 Avaya Inc. SIP servlet applications co-hosting
US8332467B2 (en) * 2009-07-29 2012-12-11 International Business Machines Corporation Lightweight RRD extension framework
US9842006B2 (en) 2009-12-01 2017-12-12 International Business Machines Corporation Application processing allocation in a computing system
CN102281311B (zh) 2010-06-10 2014-06-04 阿里巴巴集团控股有限公司 一种基于开放应用编程接口实现网络业务的方法、系统及装置
US8954554B2 (en) * 2010-07-09 2015-02-10 General Electric Company Systems and methods for transferring remote context
US20130124693A1 (en) * 2010-07-23 2013-05-16 Telefonaktiebolaget L M Ericsson (Publ) System, method, and device for executing a composite service
US20120102505A1 (en) * 2010-10-25 2012-04-26 Microsoft Corporation Dynamic process virtualization
CN102789398A (zh) * 2011-05-16 2012-11-21 中国联合网络通信集团有限公司 主机资源自适应管理方法和装置
US8856259B2 (en) * 2011-05-20 2014-10-07 International Business Machines Corporation Multi-domain co-browsing utilizing localized state management
JP2013214278A (ja) * 2012-03-08 2013-10-17 Canon Inc 上位階層記述生成装置、上位階層記述生成方法及びプログラム
US9383891B2 (en) * 2012-03-28 2016-07-05 Skytap Methods and systems for an intermediate graphical desktop sharing protocol
US9170834B2 (en) * 2012-10-31 2015-10-27 Google Inc. Metadata-based virtual machine configuration
CN104243522B (zh) 2013-06-19 2018-02-06 华为技术有限公司 用于超文本传输协议网络的方法及宽带网络网关
US9195573B1 (en) * 2014-06-10 2015-11-24 International Business Machines Corporation Remediation of known defects and vulnerabilities in cloud application packages
US10013430B2 (en) * 2014-08-18 2018-07-03 Vmware, Inc. Remotely stored application files
US9836283B2 (en) 2014-11-14 2017-12-05 Cavium, Inc. Compiler architecture for programmable application specific integrated circuit based network devices
CN105094896B (zh) * 2015-07-01 2019-07-26 北京奇安信科技有限公司 虚拟化平台上客户端启动方法、设备和系统
CN106534140A (zh) * 2016-11-25 2017-03-22 西安烽火电子科技有限责任公司 一种sip消息的传递系统及方法
US11137924B2 (en) * 2017-08-25 2021-10-05 Vmware, Inc. Distributed file storage system supporting accesses from multiple container hosts
US10938921B2 (en) 2017-10-10 2021-03-02 Samsung Electronics Co., Ltd Method and apparatus for associating services in an electronic device
CN110048879B (zh) * 2019-03-12 2023-03-24 深圳平安医疗健康科技服务有限公司 微服务注册方法、装置、电子设备和计算机可读存储介质
CN113190367B (zh) * 2021-07-02 2021-10-01 成都数联铭品科技有限公司 基于浏览器实现的跨系统数据交互方法及装置、电子设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223202B1 (en) * 1998-06-05 2001-04-24 International Business Machines Corp. Virtual machine pooling
US20030037181A1 (en) * 2000-07-07 2003-02-20 Freed Erik J. Method and apparatus for providing process-container platforms

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6704764B1 (en) * 1998-06-18 2004-03-09 Hewlett-Packard Development Company, L.P. Method and apparatus for a servlet server class
US6643708B1 (en) * 1998-10-29 2003-11-04 International Business Machines Corporation Systems, methods and computer program products for chaining Java servlets across networks
US7853643B1 (en) * 2001-11-21 2010-12-14 Blue Titan Software, Inc. Web services-based computing resource lifecycle management

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6223202B1 (en) * 1998-06-05 2001-04-24 International Business Machines Corp. Virtual machine pooling
US20030037181A1 (en) * 2000-07-07 2003-02-20 Freed Erik J. Method and apparatus for providing process-container platforms

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Hong Cai等.Session initiation protocol and Web services for next generation multimedia applications.《Multimedia Software Engineering, 2002. Proceedings. Fourth International Symposium on》.IEEE,2002,70-80. *

Also Published As

Publication number Publication date
US7543289B2 (en) 2009-06-02
US20050044233A1 (en) 2005-02-24
CN1577251A (zh) 2005-02-09
US20080313615A1 (en) 2008-12-18
US8387042B2 (en) 2013-02-26

Similar Documents

Publication Publication Date Title
CN1577251B (zh) 小服务器程序的远程协作方法和系统
US8151281B2 (en) Method and system of mapping at least one web service to at least one OSGi service
US6654759B1 (en) Method for access via various protocols to objects in a tree representing at least one system resource
US5594921A (en) Authentication of users with dynamically configurable protocol stack
US7418708B2 (en) JMS integration into an application server
CA2178583A1 (en) Object-oriented rule-based protocol system
Qu et al. Interacting the Edutella/JXTA peer-to-peer network with web services
CN102325186A (zh) 远程服务调用方法及系统
Siram et al. An architecture for the uniframe resource discovery service
Wohlstadter et al. A service-oriented middleware for runtime web services interoperability
WO2002102093A1 (en) Service creation in a distributed object component network
Amor et al. Putting together web services and compositional software agents
Shirmohammadi et al. JASMINE: A java tool for multimedia collaboration on the internet
CN1449157A (zh) 一种网络管理系统和方法
Bellavista et al. Middleware services for interoperability in open mobile agent systems
Fernández Towards interoperability amongst European public administrations
Pavon Building telecommunications management applications with CORBA
Diehl Towards lean and open multi-user technologies
Lee et al. Ag Webs: web services based on intelligent agent platform
Neto et al. Lessons learned from implementing WS-Coordination and WS-AtomicTransaction
Zapf AMETAS—the Asynchronous MEssage Transfer Agent System
Bianchi et al. N-JIS: a system for Web services integration in Java RMI distributed applications
Silva Filho et al. Design and Experiments with YANCEES, a Versatile Event Notification Service
Almstedt GEM Security Adaption
Hardy et al. Software technology for telecommunications

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20120718

CF01 Termination of patent right due to non-payment of annual fee