CN1249576C - 用于对请求进行集中和负载均衡的系统和方法 - Google Patents
用于对请求进行集中和负载均衡的系统和方法 Download PDFInfo
- Publication number
- CN1249576C CN1249576C CNB018153224A CN01815322A CN1249576C CN 1249576 C CN1249576 C CN 1249576C CN B018153224 A CNB018153224 A CN B018153224A CN 01815322 A CN01815322 A CN 01815322A CN 1249576 C CN1249576 C CN 1249576C
- Authority
- CN
- China
- Prior art keywords
- client computer
- connection
- server
- ish
- client
- 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 - Lifetime
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
-
- 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/465—Distributed object oriented systems
-
- 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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- 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
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1034—Reaction to server failures by a load balancer
-
- 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/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/59—Providing operational support to end devices by off-loading in the network or by emulation, e.g. when they are unavailable
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/10015—Access to distributed or replicated servers, e.g. using brokers
-
- 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
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
Abstract
本发明一般地涉及分布式计算机环境,特别涉及用于减少因特网对象请求代理间协议(IIOP)中的对象请求代理(ORB)连接数的系统和方法。现有解决方案要求n×m个连接来处理从客户机(82、84、86、88)向远程服务器(92、94、96、98)的请求。这里描述的解决方案允许只要m个经过智能集中器(90)的连接,这显著地减少了需求,并允许了可缩放性。现有解决方案不利用多个主集中器(90)来处理集中器失效或动态可缩放性。
Description
版权通告
本专利文件的部分公开内容包含受版权保护的材料。在其出现在专利和商标局专利文件或记录中的情况下,版权拥有者不反对任何人复制本专利文件或本专利公开内容,但是除此以外,保留全部版权。
本发明要求从2000年7月27日提交的申请号为60/221,057的临时申请“SYSTEM AND METHOD FOR CONCERNTRATION AND LOAD-BALANCING OF REQUESTS(用于对请求进行集中和负载均衡的系统和方法)”的优先权,作为参考,合并于此。
技术领域
一般地,本发明涉及分布式计算环境,特别涉及用于减少因特网对象请求代理间(inter-ORB)协议(IIOP)环境中的对象请求代理(ORB)连接数目的系统和方法。
背景技术
在分布式计算领域中,存在几种体系结构,其允许机器彼此通信,或者共享分布式或网络中心应用程序。这些体系结构中的一个包括公共对象请求代理体系结构(CORBA)。CORBA是由对象管理组(OMG)开发的体系结构设计规范,而OMG是致力于开发在面向对象的计算中使用的标准的独立组。遵从CORBA的系统的例子包括网景公司的ONE产品、和BEA系统的网络逻辑企业服务器。
CORBA提供了接口定义语言(IDL)规范,IDL允许软件开发者以标准模式为其面向对象应用程序定义接口。IDL包括允许IDL定义的映射和要映射到包括C、C++、以及Java的各种程序设计语言的类型。因此,CORBA允许开发者创建“透明的”应用程序,可以独立于原始程序设计语言而将其解释。开发者和第三方供应商通过对象请求代理(ORB),创建彼此相互作用的对象。使用语言映射,开发者可以创建ORB理解的客户机端“占位程序(stub)”和服务器端“框架”。
自从CORBA 2.0,CORBA规范包括了一种允许多个ORB彼此无缝通信的方法。ORB互操作性体系结构,或者更具体的说,通用对象请求代理间协议(GIOP)标准,定义了一组ORB可以在网络上发出的消息请求。存在各种风格的GIOP,每一个适于特定网络传输的需要。如OMG定义的GIOP包括三个组件:
公用数据表示:将IDL类型映射到网络代理之间使用的低级类型的传送语法。
GIOP消息格式:当前有七种,包括客户机请求、服务器应答、客户机取消请求、客户机定位请求、服务器定位应答、服务器关闭连接、以及消息错误。
GIOP消息传输假定:包括:传输是面相连接的、可靠的、可以视为字节流,提供无序连接损失的合理通知,并且初始化连接的传输模型可以映射到TCP/IP的通用连接模型。
所有ORB必须都能够通过规范使用的公共GIOP实现是因特网对象请求代理间协议(IIOP)。IIOP将GIOP消息映射到TCP/IP,这允许ORB使用例如因特网的TCP/IP网络作为通信总线或干线。参考图1的金字塔结构,金字塔的最低层是物理器件,例如具有MAC(介质访问控制)地址的以太网卡。其上是以太网协议,其提供基于连接的广播拓扑,在其中对消息编码,并解决冲突。下一层是网际协议(IP),其指定穿越因特网的数据包的格式,并支持主机名和IP地址。主机名允许对IP作路由选择。在IP之上是传输控制协议(TCP),其加入端口号和诸如数据包分段和存活时间的控制指令的功能。这提供了可靠的、基于流的传递。IIOP建于TCP之上。在IIOP之上是ORB层,其整理HOP请求。在金字塔的顶端是应用程序层本身,其包括对象实现和其它ORB对象及诸如命名服务的服务。
在如上所述的分布式对象系统中,如图2中进一步说明,在请求对象功能42、44、46、48的处理和实现对象功能52、54、56、58的处理之间来回传送请求50。图2的例子展示n个客户机调用m个服务器。当有n×m个连接时,很难用这样的系统取得可缩放性,其中n代表请求一组对象功能的处理数,而m代表实现这组对象功能的处理数。这是一般已知的“扇出(fan-out)问题”,其导致难于确保系统资源足够充分,以允许可缩放性。有一些技术允许请求经集中器处理集中到IIOP/ORB域或对象实现的组。问题是以相反方向、从域内对象实现到域外其它对象实现进行时,如何可以取得可缩放性。
发明内容
为解决对象系统中可缩放性的问题,本发明的一个实施例允许本地客户机,以及充当本地客户机的服务器,调用远程对象引用。调用远程对象引用的能力应该:可缩放,鲁棒(robust),可以用作完成对外来ORB服务器中实现的对象引用的调用的机制,可以用作完成远程客户机实现的调用(客户机调回)的机制,并且可以用作完成向远程客户机传递事件的机制。
本发明的一个解决方案和实施例对从域内到域外的请求利用智能集中器处理。配置了一个或多个主处理,对经过实际处理请求的从处理(sub-process)的请求做负载均衡。主处理可以根据负载的需要动态添加从处理。此外,主处理可以允许通过确保来自域内的多个请求使用相同的实际连接将其请求到域外对象实现而集中。这些主处理的多重性允许故障修复和可恢复性以防主处理失败。
本发明的实施例允许本地客户机和充当客户机的本地服务器,来调用对象引用,所述对象引用的实现存在于因特网对象请求代理间协议(IIOP)域之外。这提供了一种基础机制,其允许远程客户机接收事件,允许远程客户机接收调回(callback),并允许本地客户机和充当客户机的服务器调用对象引用,而所述对象引用的实现在建立有对象请求代理(ORB)的远程服务器中。
附图说明
图1图解现有技术中IIOP和ORB层与其它网络通信协议之间的关系。
图2图解现有技术中已知的扇出问题。
图3展示本发明实施例中如何使ISH可以用作多个客户机和对服务器的TCP/IP链接之间的接口。
图4展示本发明实施例中如何使ISL/ISH集中器可以用于最小化服务n个客户机所需的服务器连接数。
图5图解本发明实施例,其中一个ISL和多个ISH服务多种客户机和服务器类型。
图6展示本发明实施例中如何使路由选择(routing)代码与ISL和ISH相互作用。
图7展示本发明实施例中ISL中包含的服务。
图8展示本发明实施例的路由选择/绑定处理的步骤。
图9展示本发明实施例的解绑定处理。
图10图解本发明使用双向连接的出站IIOP实施例。
图11图解本发明使用成对连接的出站IIOP实施例。
图12图解本发明使用非对称连接的出站IIOP实施例。
图13展示本发明实施例中,在客户机断线后,如何可以弹回双向连接。
具体实施方式
下面将结合附图描述本发明的各种实施例。下文中给出了几个定义,其在对优选实施例的描述中将非常有用。
客户机/服务器:一种机器或处理,其既可以充当客户机也可以充当服务器,或同时充当两者。
域:可以作为一个单元来管理的多个机器或资源的集合。可以基于应用程序功能、安全性需要、或地理位置设置域,并且在多个应用程序互相通信的情况下,域特别有用。
本地:位于该域中的客户机或服务器。
调回:调用远程客户机(充当服务器)创建的对象引用(object reference)以便将IIOP请求传递到远程客户机的对象实现的能力
调出:为一些远程服务器取对象引用并对其调用以便将请求传递到该远程服务器的能力。调出可以是到充当服务器(调回)的远程客户机或者到远程ORB服务器。
ISH(IIOP服务器处理器):特别指这样的组件,其接收来自远程客户机的IIOP消息,并将其作为隧道GIOP(TGIOP)消息发送到本地(或者域内)服务器。这一组件还接收应答,并确保它们返回到适当的本地客户机/服务器。在本发明的一个实施例中,ISH还将从本地客户机/服务器接收TGIOP请求消息并将IIOP请求消息发送到远程服务器。该部件接收应答并确保它们返回到适当的本地客户机/服务器。
ISL(IIOP服务器监听器):指决定由哪个ISH处理具体的远程客户机与本地服务器的对话。ISL处理ISH的故障修复和对本地对象的连接的负载均衡。在本发明的一个实施例中,ISL还决定由哪个ISH处理与远程服务器有关对象引用的具体对话,所述对象引用不在与ISH连接的客户机中。ISL集中有关对相同的远程对象的多个调用的连接。
入站IIOP:现有技术中已知的概念,指启动从远程服务器向域内的本地客户机的IIOP请求。
出站IIOP:指从域内的本地客户机、或充当客户机的服务器启动对不在域内的远程服务器的IIOP请求。
非对称IIOP:在一些GIOP的版本中,IIOP连接并不对称,例如,只有客户机可以发送请求,而只有服务器可以对其接收。如果服务器需要向客户机中的对象发送请求,那么其不需创建从服务器到客户机的第二个连接。
双向IIOP:客户机和服务器之间的连接是对称的,即客户可以在一个连接上向服务器发送请求,而服务器可以在同一个连接上向客户机输出的对象发送请求。
IIOP集中
图3展示了本发明的实施例中典型的集中处理。当前的系统只提供入站IIOP集中,本发明添加了对出站IIOP集中的支持。如图3所示,ISH集中器66通过将来自多个本地客户机的连接“进行集中”以在单个眼务器链接68上操作,减少了对远程客户机/服务器70所需的连接数。几个客户机包含在与ISH相同的域内,并且通过处理之间的通信彼此通信。域外的客户机/服务器(远程客户机/服务器)经由标准TCP/IP链接与ISH通信。
如图4所示,本发明的ISH集中器的实施例用于改善图2中首次出现的系统的可缩放性。ISH90将有效连接数从n×m减少到了n+m。在本发明的一个实施例中,使用消息队列取代到远程服务器的直接链接,这将有效连接数减少到只有n个
出站IIOP支持
图5展示了包括本发明一个实施例的示范系统。如图所示,几个客户机调用一系列远程服务器。客户机可以是,例如,本地C++客户机102、Java客户机104、通知服务106、或者充当客户机的本地服务器108。远程服务器可以是另一个本地服务器110、为事件注册的本地客户机112、或非本地的遵从CORBA的ORB服务器114。当一个客户机调用服务器时,路由选择处理通过调用BIND(绑定)服务122,将该连接指向ISL。ISL确定ISH 130、132、或134哪一个最适于处理该连接。因此,尽管可以使用许多ISH,但是只需要一个ISH。ISL通过首先检查当前是否有ISH在处理到目标服务器的连接,确定由哪一个ISH处理该连接。如果没有一个在处理这样的连接,那么选择负担最小的一个ISH。在这种方式下,ISL进行服务,以均衡所有可用ISH之中增加的连接数的负载。
当选择ISH 126时,客户机随后经由ISH 128调用那个服务器。因为客户机和ISH在相同的域内,所以它们可以使用隧道GIOP(TGIOP)136通信。ISH使用TCP/IP 138上的IIOP与域外的服务器通信。
如本发明中所具体化的,出站IIOP支持为本地客户机、和充当本地客户机的服务器提供调用域外的远程对象引用的能力。这意味着事件能够流向为事件注册的远程客户机,可以对远程客户机进行调回,并且可以存取远程服务器中的对象。出站IIOP支持包括四个功能部分:
对于连接到ISH的客户机中包含的对象的双向IIOP的支持。如果远程ORB支持双向GIOP 1.2,那么ISH可以利用相同的连接来向所连接的客户机发送请求,或从所连接的客户机接收应答。
对于连接到ISH的客户机中包含的对象的准双向IIOP的支持。如果ORB不支持双向GIOP 1.2,那么客户机可以调用应用程序接口(API)来向ISH通知客户机中正在监听的主机/端口。ISH利用第二个成对出站连接向所连接客户机发送请求,并接收来自所连接客户机的应答。出站连接与引入(incoming)连接成对。如果客户机断开引入连接,那么也就断开了出站连接。
对于ISH或本地客户机上的调用的支持。该基础结构基于客户消息支持到ISH或本地客户机的路由选择。修改ORB,以在对象引用中嵌入客户机标识符信息。
对于未包含在连接到ISH的客户机中的对象的非对称出站IIOP的支持。ISL允许集中来自不同的本地客户机/服务器而去向相同的远程服务器的请求,以使用相同的连接传送。ISL将允许对请求的负载均衡,以便没有个别的连接超负载。
为了支持可缩放性,ISL可以在需要的时候启动附加处理器,并且可以在需要时添加附加ISL和附加ISH,以支持增加的出站IIOP通信量。
为了支持故障修复,可以在机器上或域内启用多个ISH。如果客户机尝试使用ISH未成功,将作出重新绑定该对象引用的尝试,并故障修复到另一个ISH上。
在本发明实施例的典型环境中,系统管理员可以只是将直接与出站IIOP支持组件互相作用的用户。其负责用正确的启动参数引导ISL,以起动有关不在所连接的客户机中的对象的出站IIOP。可以调节被引导的ISL的数量、和各种启动参数,以便获得对其安装具体工作量特征的最佳配置。
出站路由选择
图6至9中展示了出站路由选择处理中的功能特征。如图6所示,ISL 160和ISH 168(尽管系统可以以仅仅一个ISH操作,为说明目的展示了几个)经由共享存储器166彼此通信。在本发明的一个实施例中,ISL负责维护有关对远程服务器的连接的信息。在共享存储器中保存这样的连接的记录。ISH使用该信息以允许调用远程服务器。作为回应,ISH通过更新共享存储器中的信息来维护该信息,以反映关闭或断开的连接。然后ISL使用已更新的信息来更好地分配引入的调用请求。寻求调用远程服务的客户机调用路由选择代码150。路由选择代码与ISL互相作用,以确定该连接是否已经存在,如果是,则将其发送给对应的ISH。如果不存在连接,那么ISL选择ISH来为新连接服务。
图7展示了一些ISL 160通告或已对客户机可用的服务。原则上,客户机可以经由路由选择代码从ISL请求BIND(绑定)161或UNBIND(解绑定)162。错误子程序163处理失败的请求。如图8所示,路由选择代码180调用ISL 184上的BIND 182,其中ISL 184考虑远程服务器,并确定要使用的适当的ISH 188。其将该信息发回客户机186。客户机随后调用指定的ISH上的187。ISH随后处理客户机和服务器之间的通信。如图9中所进一步说明,当客户机190结束与服务器的连接,或请求关闭连接时,应用程序调用ISL 194上的UNBIND 192。然后ISL标记连接关闭196。在一段时间之后,垃圾收集处理中,将这一连接的条目从共享存储器中移除。
出站IIOP类型
有三种不同类型的出站IIOP:
·重新使用相同的连接的双向出站IIOP
·经由第二个成对连接的准双向出站IIOP
·经由第二个连接的非对称出站IIOP
双向出站IIOP
本发明的实施例包括ISL/ISH支持224、226、228,用于有关包含在连接到ISH的客户机中的对象的双向IIOP(图10)。如果客户机ORB支持双向GIOP 1.2,那么ISH将利用相同的连接来向所连接的客户机发送请求,并从所连接的客户机接收应答。客户机222将创建对象引用,并调用本地服务器。客户机ORB将使用服务环境,标识该连接为双向。将服务环境和消息一起传播到本地服务器236。当取消整理对象引用时,本地服务器将比较服务环境中的主机/端口与对象引用中的主机/端口。若其匹配,那么ORB将添加该ISH客户机标识符和其它路由选择所需的客户机信息,到对象引用中的标记组件。无论何时将其发送到其它本地服务器,这一客户机信息都将和对象引用一起传播。
在某些点上,本地服务器或本地客户机将调用对象引用。路由选择代码将调用给出客户机信息的合适的ISH。ISH在相同的客户机连接上向客户机发送请求。客户机将执行该方法,并经由客户机连接将应答发送回ISH。ISH将接收应答,并将其发送到本地服务器。
经由成对的第二个连接的出站IIOP
本发明还包括对于包含在连接到ISH的客户机中的对象的准双向IIOP的ISH支持(图11)。如果客户机ORB不支持双向GIOP1.2,那么客户机可以调用API子程序,以向ISH通知客户机的监听端口。然后ISH创建分离的成对出站连接,以向所连接客户机发送请求,并从所连接客户机接收应答。
客户机将创建对象引用。然后其调用引导程序功能发送对象引用。ISH将从能共同操作的对象引用(IOR)得到主机/端口,并将其与客户机环境一起存储。客户机将调用本地服务器发送对象引用。ISH将创建包含来自注册调用的主机/端口的服务环境。该服务环境与消息一起传播到本地服务器。当取消整理对象引用时,本地服务器将比较服务环境中的主机/端口和对象引用中的主机/端口。如果其匹配,那么ORB添加ISH标识符(id)和客户机信息,到对象引用中的标记组件。无论何时将其发送到其它本地服务器,这一客户机信息都将和对象引用一起传播。
在某些点上,本地服务器或本地客户机将调用对象引用。路由选择代码将调用发送客户机信息的合适的ISH。ISH将创建连到客户机的第二个连接。其将在第二个连接上向客户机发送请求。客户机将执行该方法,并经由客户机连接将应答发送回ISH。ISH将接收应答,并将其发送到本地服务器。如果客户机从ISH断开,那么第二个连接也断开。
非对称出站IIOP
本发明的实施例还包括对于不包含在连接到ISH的客户机中的对象的非对称出站IIOP的ISL/ISH支持(图12)。ISL允许集中来自不同本地客户机/服务器而去向相同的远程服务器的请求,以使用相同的连接传送。ISL可以允许对请求的负载均衡,以便没有个别的连接超负载。服务器280将从一些来源得到对象引用,其可以是命名服务,或经客户机发送来,但是并不位于该客户机中。因为对象引用并不位于连接到ISH的客户机中,使用双向方法不能进行引出(outgoing)调用。
在某些点上,本地服务器或本地客户机将调用对象引用。在第一次调用时,对象引用中没有包含ISH id和客户信息。路由选择代码将识别对象密钥为非本地服务器对象引用。如果没有发送ISH id和客户机信息,那么路由选择代码将调用发送主机/端口的ISL224中的服务。ISL将返回要使用的服务名,以解绑定ISH 272的对象引用和客户机信息。这是ISH的客户机信息,而不是任何连接到ISH的客户机的客户机信息。
ORB将调用对象引用。该基础结构将调用ISH。ISH将从客户机信息得到连接标识符,并确定226使用哪个引出连接以向客户机发送请求。如果没有连接,那么ISH将创建连到主机/端口的分离的连接。ORB将为IOR中的IIOP配置文件的版本利用适当的GIOP版本。客户机将执行该方法,并经由分离的连接将应答发送回ISH。ISH将接收该应答,并将其发送给本地服务器。
处理流程
下面是对处理流程的详细描述,其说明在本发明一个实施例中,客户机、ISL、以及ISH如何互相作用:
从本地客户机的角度讲
在对象引用绑定时间,ORB确定该对象引用是否为远程。如果是,则用来自对象引用的客户机信息(如果有的话)启动ORB。如果没有客户机信息,则指定BIND标记。否则不指定标记。
路由选择代码确定其是否有远程对象引用。
如果有BIND标记:调用BIND服务。在共享存储器中存储所返回的ISH客户机信息和ISL信息。
如果没有BIND标记:在共享存储器中存储客户机信息。
路由选择代码在共享存储器中搜索并调用客户机标识符。
当断开连接时,系统在共享存储器中搜索适当的条目,并调用UNBIND。
接下来,ISL在共享存储器中标记连接为关闭,因此ISH将其关闭。从ISH的角度讲
使用客户机id调用ISH。
ISH从消息队列中接收消息。以与应答相反的方式处理请求。
基础结构基于客户机将ISH切换到适当的环境。如果是非对称出站IIOP,则该环境是ISH环境(0),而不是客户机环境。
对IIOP请求进行复制,并用唯一的id取代IIOP请求id。对于这种环境,将该请求放在未解决请求表中。
如果环境是客户机环境,那么其具有双向连接或成对的第二个连接。如果还不存在成对的第二个连接和该连接,那么就创建一个。调用子程序来将IIOP请求发送到客户机。子程序缓存该请求,直到完成连接。否则,调用子程序来将IIOP请求发送到客户机。
如果环境是ISH环境,那么使用连接索引来确定出站连接。如果不存在连接,那么就创建一个。调用子程序来将IIOP请求发送到客户机。子程序缓存该请求,直到完成连接。如果存在连接,调用子程序来将IIOP请求发送到客户机。
ISH处理网络和消息队列事件。当应答从连接返回时,在未解决请求表中搜索相应的请求。ISH用原始请求id取代唯一的id,并将应答发送回客户机。
从ISL的角度讲
在第一次调用对象引用时调用ISL。
调用服务子程序来绑定对象引用。参数为主机、端口、以及客户机标识符。
ISL散列(hash)主机/端口,并查询该数据结构,以确定主机/端口是否已在使用中。如果已在使用中,并且不在多路复用用户极限,那么就返回适当的ISH客户机标识符、域、客户机处理标识符、客户机队列、ISL组和服务器标识符。
增加用户多路复用引用计数。
如果没有发现,而现有ISH可以处理该连接,那么就指定现有ISH处理该请求。返回适当的ISH客户机id、域、客户机处理标识符、客户机队列、ISL组和服务器标识符。
如果没有ISH可以处理该连接,那么就启动新的ISH。返回适当的ISH客户机标识符、客户机处理标识符、客户机队列、ISL组和服务器标识符。
连接管理
连接管理是本发明实施例处理客户机和服务器之间的连接的处理,具体地说,是系统如何处理其评估的当前未使用的连接。
本发明的一个目的是可缩放性。所以,希望使出站连接数最小化。为此,系统支持双向连接和成对的第二个连接,以便具有有效的机制来调用所连接的客户机中包含的对象。这些情况包括多数出站IIOP通信量。然而,仍然可能有客户想要调用当前未连接的客户机中包含的对象引用的情况。这可以是对外来ORB服务器的对象引用;从本地域连接和断开的客户机/服务器;或者任何从名称服务器获取的对象引用。为了支持这些类型的对象引用,同时还要提供可缩放性,系统将这些TCP/IP连接从调用者处理重新定位到ISH。调用者(本地客户机或本地服务器)调用IOR,而使用本地基础结构来向ISH发送消息。然后ISH使用TCP/IP连接向远程服务器发送消息。然而,因为这些TCP/IP连接不再处于实际调用者处理中,因此当调用者(本地客户机或本地服务器)退出时,其不自动断开。
如果调用者(本地客户机或本地服务器)退出时,非对称出站IIOP连接(当前未被任何调用者使用)应该断开。这可以在最后一个调用者退出时立即进行,也可以在超时一段时间之后再进行。在下面的部分中描述对管理非对称出站IIOP连接的不同的替换方式。
引用计数和用户验证
这一替换方式如下工作:
·本地客户机或本地服务器(对象引用的用户)调用对象引用。
·在第一次调用时,ORB调用ISL中的BIND服务。将有关这个主机/端口的条目添加到共享存储器中。将有关用户的标识符(本地客户机标识符或本地服务器组/srvid)的条目添加到共享存储器中。ISL为ISH返回连接标识符(映射到共享存储器中的主机/端口条目)和适当的客户机信息,所述ISH将包含连向远程服务器的TCP/IP连接。
·ORB使用客户机信息来向适当的ISH发送消息。ISH使用连接标识符采确定使用哪一个出站IIOP连接。
·本地客户机或本地服务器继续调用对象引用。每个调用导致一条发送给ISH的消息。
·如果另一个本地客户机调用具有相同的主机/端口的对象引用,BIND服务将返回与第一个用户相同的连接标识符和相同的客户机信息。主机/端口条目的引用计数将增加。将第二个用户(本地客户机或本地服务器)的标识符的条目添加到共享存储器中。
·最后,第一个和第二个用户释放对象引用。第一个用户的释放导致调用UNBIND服务,其对主机/端口条目的引用计数减一,并移除该用户的标识符。在第二个用户释放时,主机/端口条目的引用计数减至零。ISL从共享存储器中移除该主机/端口条目,并在共享存储器中将连接条目(不同于主机/端口条目)标记为关闭。
·当ISH看到在共享存储器中连接条目被标记为已关闭时,ISH关闭连接。
·将连接条目标记为未使用。
这是用户正常退出并释放对象引用的情况,其它情况包括在没有释放对象引用时退出以及用户非正常退出。为了确保在不再需要时释放连接,这一替换方式使用验证,其中ISL验证连接用户的标识符;在共享存储器中存储id;检查服务器是否无效;并且如果在当地机器上,ISL将比较时标(timestamp)来检查本地客户机是否仍然有效;或者使用调用来验证与ISL不在同一台机器上的本地客户机。
未解绑定的非对称出站连接超时
这一替换方式如下工作:
·本地客户机或本地服务器(对象引用的用户)调用对象引用。
·在第一次调用时,ORB调用ISL中的BIND服务。将有关这个主机/端口的条目添加到共享存储器中。ISL为ISH返回连接标识符(映射到外加附加产生/时标区(field)的共享存储器中的主机/端口条目)和适当的客户机信息,其将包含到远程服务器的TCP/IP连接。
·ORB使用客户机信息来向适当的ISH发送消息。ISH使用连接标识符来确定使用哪一个出站IIOP接口。如果连接标识符不再有效(因连接超时),则返回错误。
·本地客户机或本地服务器继续调用对象引用。每个调用导致一条发送给ISH的消息。
·如果另一个本地客户机用相同的主机/端口调用对象引用,BIND服务将返回与第一个调用相同的连接标识符和相同的客户机信息。不对主机/端口条目进行引用计数。
·最后,第一个和第二个用户释放对象引用。不调用解绑定服务。连接保持不动。
在每次调用时,ISH更新共享存储器中的动作时标区以便连接。在通常的情况下,如果在用户指定的时间段内没有发生动作,ISL将使连接超时。ISL将把连接标记为已关闭,并移除主机/端口条目。当ISH注意到连接被标记为已关闭时,ISH将断开该连接。其将连接条目标记为未使用。如果连接用户死机或没有释放对象引用,那么只要该连接有效,该连接就保持原封不动。当其在指定时间段之内不是有效时,将其断开。对象引用仍然可以有效,但是在指定超时时间段内没有使用。在这种情况下,将断开连接,并移除主机/端口条目。ISH将接收请求,确认连接id,并返回错误。该错误将使ORB重新绑定对象引用。这将涉及对ISL BIND服务的调用,并且可以使用现有连接,或者创建新的连接。重新绑定对用户是不可见的。
非对称出站连接超时的引用计数
这是可替换方式1和2的组合。主要区别在于只要没人使用这些连接,就立即断掉它们。
这一替换方式如下工作:
·本地客户机或本地服务器(对象引用的用户)调用对象引用。
·在第一次调用时,ORB调用ISL中的BIND服务。将有关这个主机/端口的条目添加到共享存储器中。ISL为ISH返回连接标识符(映射到外加附加产生/时标区的共享存储器中的主机/端口条目)、适当的ISH id和客户机信息,所述ISH将包含到远程服务器的TCP/IP连接。
·ORB使用ISH id和客户机信息来向适当的ISH发送消息。ISH使用连接标识符来确定使用哪一个出站IIOP连接。如果连接标识符不再有效(因连接超时),则返回错误。
·本地客户机或本地服务器继续调用对象引用。每个调用导致一条发送给ISH的消息。
·如果另一个本地客户机调用具有相同的主机/端口的对象引用,BIND服务将返回与第一个调用相同的连接标识符和相同的客户机信息。主机/端口条目的引用计数将增加。
·最后,第一个和第二个用户释放对象引用。第一个用户的释放导致调用UNBIND服务。其对主机/端口条目的引用计数减一。在第二个用户释放时,主机/端口条目的引用计数减至零。ISL从共享存储器中移除该主机/端口条目,并在共享服务器中将连接标记为关闭。
·当ISH看到在共享存储器中连接条目被标记为关闭时,ISH关闭连接。
·将连接条目标记为未使用。
如果连接用户死机或没有释放对象引用,那么只要该连接有效,该连接就保持原封不动。当其在指定时间段之内不是有效时,将其断开。对象引用仍然可以有效,但是在指定超时时间段内没有使用。在这种情况下,将断开连接,并移除主机/端口条目。在随后调用时,ISH将接收请求,确认连接标识符,并返回错误。该错误将使ORB重新绑定对象引用。这将涉及对ISL BIND服务的调用,并且可以使用现有连接,或者创建新的连接。重新绑定(rebind)对用户应该是不可见的。
附加特征
使用用于调出的双向连接
在一些情况下,客户可能对事件连接、创建持续预定,然后从ISH断开。当客户机重新连接ISH时,其希望为该持续预定接收事件。
在本发明的一个实施例中,ISL知道当前的双向连接,并从而使用它们,而不是在IOR中创建对主机/端口的分离的连接。向ISL通知双向连接允许了对资源的最优使用。ISH向ISL通知双向信息。这要求锁定共享存储器或有关连接创建和删除的特别消息。
客户机断开
在这种情况下,如图13所示,客户机从域中断开,但是仍然监听相同的主机和端口。对象引用包含已断开的客户机的客户机信息。当ORB调用不可用服务时,基础结构将返回错误。ORB将处理该错误,并重新绑定对象引用304。将选择ISH来创建对远程服务器的新连接,并更新客户机信息。
数据设计
ISL和ISH都在存储器中保存着数据。其还为在ISL及其ISH的整个使用寿命内需要持续保存的项目而共享存储器。如果ISL死机并重启,其将重新连向共享存储器,并将能够恢复其保存在共享存储器中的任何状态。
共享存储器
ISL与ISH共享其控制的存储器。如果起动了非对称出站IIOP,那么在共享存储器表中将出现附加部分。ISL使用该存储器进行适当的集中和负载均衡;而ISH使用该存储器来跟踪哪个连接需要创建。ISL是共享存储器的主写入器。
ISH失败
ISH不得不在周围保存不需要在共享存储器中的信息。在信息中,不需要共享的是用于保持有关当前请求的信息的区域、将请求id映射到客户机(服务器)的区域。ISL负责重启ISH。当其重启ISH时,其将清除对死机的ISH的存储槽,并确保ISH将连接到ISL的共享存储器。
如果客户机调用绑定在已失败的ISH上的对象引用,那么将发生错误。调用者将重新绑定,并且将选择ISH来执行调用。这可以是已重启的ISH或另一个ISH。
ISL失败
如果系统管理员以推荐设置启动ISL,其终将重启。如果对象代码正在调用服务,但是还没有选择该服务器,那么将选择可替换的ISL。如果对象代码正在调用服务,并且选择了该服务器,那么系统向客户机返回错误。当ISL最终重启时,其将重新连接到共享存储器。
本地客户机(或充当客户机的服务器)失败
ISL将周期性地扫描出站连接表。如果连接在指定的超时时间段之内无效,那么将释放相应的条目,并断开该出站连接。这将确保如果本地客户机或服务器失败,则本地客户机或服务器创建的出站连接将总是被断开。
垃圾收集
有一些“事件”可以导致共享存储器中的一些部分被清除:
·远程服务器失败。ISH将向客户机(或者,如果多个客户机正在使用该连接,则是多个客户机)返回错误。当客户机退出并通知了ISL时,其将清除适当的主机和端口存储槽和适当的客户机标识符存储槽。
·ISH意识到连接已经超出系统管理员设定的超时时间。释放相应的条目,并且将接口标记为关闭。在下一次调用时,将向调用者返回错误,而ORB将重新绑定对象引用。将创建新的连接,并发生调用。
·ISH死机。ISL重启ISH。在下一次调用该已绑定的对象引用时,发生错误。调用者将重新绑定,并选择ISH来执行调用。现有ISH条目将保存在共享存储器中。在第一次调用时,已重启的ISH将连接到远程服务器。
·ISL死机。在重启时,其检查所有ISH,并清除任何已死机的ISH的条目。
·ISL停机。ISL向ISH发送停机消息。ISL移除共享存储器。
·机器崩溃并且ISL和所有ISH同时死机。共享存储器消失。
从对附图和权利要求的审阅中可以获得本发明的其它特征、方面和目标。应该明白,可以开发本发明的其它实施例,而其都在本发明和权利要求的精神和范围之内。
工业实用性
本发明在面向对象系统领域,特别在遵从CORBA的系统中具有特别的用途,所述遵从CORBA的系统中n个客户机可以调用m个服务器。一般地,这将需要n×m个连接来处理请求。上文所描述的本发明允许对服务器只有m个连接,这显著地减少了资源需求,并允许可缩放性。本发明还允许多个智能主集中器处理,以应付集中器失效,并提供可缩放性。
Claims (18)
1.一种用于在分布式对象环境中允许当地客户机应用程序调用远程服务器服务的系统,包括:
集中器,用于绑定来自客户机应用程序的对远程服务的调用请求,所述集中器还包括:
多个连接处理器,用于处理从容户机到服务器的连接;
监听器,用于确定用来处理所述连接的所述多个连接处理器中具体的连接处理器;以及
共享存储器,用于允许所述监听器和所述多个连接处理器之间的通信,所述共享存储器包括一列当前连接的服务器和处理每个连接的连接处理器的信息;
其中所述监听器执行下述步骤:
a)调用服务子程序,以连同主机、端口、以及客户机标识符参数一起,绑定对象引用;
b)在共享存储器中搜索,以确定主机/端口是否已在使用中;
c)如果现有处理器可以处理该连接,那么就指定该现有处理器处理该请求;以及
d)如果没有现有处理器可以处理该连接,那么就启动新的处理器。
2.如权利要求1所述的系统,其中当地客户机应用程序执行下述步骤:
在对象引用绑定时,确定该对象引用是否为远程,如果是,则用来自对象引用的客户机信息启动对象请求代理;
如果有绑定标记,绑定该服务,并在所述共享存储器中存储所返回的客户机信息和监听器信息;
如果没有绑定标记,在共享存储器中存储客户机信息;
在所述共享存储器中搜索并调用客户机标识符;以及
当断开连接时,在所述共享存储器中搜索适当的条目,并使用所述条目对服务解绑定。
3.如权利要求1所述的系统,其中所述连接处理器执行下述步骤:
从消息队列中接收消息;
基于客户机,将处理器切换到客户机环境或处理器环境;
对因特网对象请求代理间协议请求进行复制,并用唯一的id取代所述请求的原始请求id;
对于所切换的环境,将该请求放在未解决请求表中;
如果该环境是客户机环境,并且如果还不存在成对的第二个连接和该连接,那么就创建一个,并将该请求发送到客户机;
如果该环境是处理器环境,那么使用连接索引来确定出站连接,并且如果不存在连接,那么就创建一个,并将该请求发送到客户机;以及
当应答从连接返回时,在未解决请求列表中搜索相应的请求,用原始请求id取代唯一的id,并将应答发送回客户机。
4.如权利要求1所述的系统,其中客户机是本地C++客户机、Java客户机、通知服务、或充当客户机的本地服务器中的任何一个。
5.如权利要求1所述的系统,其中远程服务器是本地服务器、为事件注册的本地客户机、或非本地的对象请求代理服务器中的任何一个。
6.如权利要求1所述的系统,其中集中器识别远程服务器,并可操作地将客户机连接到所述远程服务器。
7.如权利要求6所述的系统,其中监听器和连接处理器经由共享存储器通信。
8.如权利要求7所述的系统,其中监听器基于共享存储器中的一列当前连接的服务器和处理每个连接的连接处理器的信息来确定要使用的连接处理器。
9.如权利要求1所述的系统,其中所述监听器在步骤(b)和步骤(c)之间还执行以下步骤:增加用户多路复用引用计数。
10.一种用于在分布式对象环境中允许当地客户机应用程序调用远程服务器服务的方法,包括:
提供多个连接处理器,用于处理从客户机到服务器的连接;
由监听器确定用来处理所述连接的所述多个连接处理器中具体的连接处理器;以及
绑定来自客户机应用程序的调用远程服务的请求,所述绑定步骤包括:
识别远程服务器;以及
经过所述具体的连接处理器,可操作地将客户机连接到所述远程服务器;
其中所述监听器执行下述附加步骤:
a)调用服务子程序,以连同主机、端口、以及客户机标识符参数一起,绑定对象引用;
b)在共享存储器中搜索,以确定主机/端口是否已在使用中;
c)如果现有处理器可以处理该连接,那么就指定该现有处理器处理该请求;以及
d)如果没有现有处理器可以处理该连接,那么就启动新的处理器。
11.如权利要求10所述的方法,其中客户机是本地C++客户机、Java客户机、通知服务、或充当客户机的本地服务器中的任何一个。
12.如权利要求10所述的方法,其中远程服务器是本地服务器、为事件注册的本地客户机、或非本地的对象请求代理服务器中的任何一个。
13.如权利要求10所述的方法,其中在共享存储器中搜索以确定主机/端口是否已在使用中的步骤包括:引用共享存储空间,以查看是否远程服务器当前已连接到连接处理器。
14.如权利要求13所述的方法,还包括:
如果远程服务器当前未连接到连接处理器,那么将远程服务器连接到连接处理器,并更新共享存储器。
15.如权利要求14所述的方法,其中更新共享存储器的步骤包括更新一列当前连接服务器和处理每个连接的连接处理器的信息。
16.如权利要求10所述的方法,其中可以使用多个连接处理器中的一个来处理连接。
17.如权利要求10所述的方法,其中由监听器确定用来处理所述连接的所述多个连接处理器中具体的连接处理器的步骤包括:引用一列当前连接的服务器和处理每个连接的连接处理器的信息。
18.如权利要求10所述的方法,其中所述监听器在步骤(b)和步骤(c)之间还执行以下步骤:增加用户多路复用引用计数。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US22105700P | 2000-07-27 | 2000-07-27 | |
US60/221057 | 2000-07-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1483162A CN1483162A (zh) | 2004-03-17 |
CN1249576C true CN1249576C (zh) | 2006-04-05 |
Family
ID=22826149
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB018153224A Expired - Lifetime CN1249576C (zh) | 2000-07-27 | 2001-07-17 | 用于对请求进行集中和负载均衡的系统和方法 |
Country Status (8)
Country | Link |
---|---|
US (3) | US6990511B2 (zh) |
EP (1) | EP1311946B1 (zh) |
JP (1) | JP5085831B2 (zh) |
KR (1) | KR100798504B1 (zh) |
CN (1) | CN1249576C (zh) |
AU (2) | AU7693201A (zh) |
CA (1) | CA2417509C (zh) |
WO (1) | WO2002010917A1 (zh) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1249576C (zh) * | 2000-07-27 | 2006-04-05 | Bea系统公司 | 用于对请求进行集中和负载均衡的系统和方法 |
US20020124083A1 (en) * | 2000-09-06 | 2002-09-05 | Sun Microsystems, Inc. | Method and apparatus for increasing the efficiency of transactions and connection sharing in an enterprise environment |
FI20011239L (fi) * | 2001-06-12 | 2002-12-13 | Nokia Corp | Tiedonsiirtomenetelmä ja -järjestely |
US6980997B1 (en) * | 2001-06-28 | 2005-12-27 | Microsoft Corporation | System and method providing inlined stub |
IL145104A (en) * | 2001-08-23 | 2007-02-11 | Gregory Bondar | A method and system for balancing the load on a computer resource between computers |
US7406074B2 (en) * | 2002-07-12 | 2008-07-29 | Lucent Technologies Inc. | Bundling messages in communication networks |
CA2425048C (en) | 2003-04-08 | 2008-06-03 | Ibm Canada Limited - Ibm Canada Limitee | Method and system for resource access |
CN100388183C (zh) * | 2003-07-05 | 2008-05-14 | 华为技术有限公司 | 一种实现加权最小连接分配的服务器负载均衡方法 |
US7689986B2 (en) * | 2003-10-21 | 2010-03-30 | Gemstone Systems, Inc. | Shared listeners in shared object space |
US7444536B1 (en) * | 2004-04-16 | 2008-10-28 | Sun Microsystems, Inc. | RMI-IIOP request failover mechanism |
CN100446581C (zh) * | 2004-07-12 | 2008-12-24 | 中兴通讯股份有限公司 | 一种无线局域网中负载均衡系统实现的方法 |
US7836202B2 (en) * | 2005-01-19 | 2010-11-16 | Iona Technologies Limited | Communication system integrating a plurality of middleware and implementing sophisticated paths for data flow |
US7853953B2 (en) * | 2005-05-27 | 2010-12-14 | International Business Machines Corporation | Methods and apparatus for selective workload off-loading across multiple data centers |
US7613131B2 (en) * | 2005-11-10 | 2009-11-03 | Citrix Systems, Inc. | Overlay network infrastructure |
US7603359B2 (en) * | 2006-01-17 | 2009-10-13 | International Business Machines Corporation | Method and apparatus for maintaining federated name context bindings in a name space |
JP2008077428A (ja) * | 2006-09-21 | 2008-04-03 | Fujitsu Ltd | 負荷分散装置、負荷分散方法及び負荷分散プログラム |
EP2100223B1 (en) * | 2006-12-05 | 2011-01-19 | QUALCOMM Incorporated | Apparatus and methods of a zero single point of failure load balancer |
US8645324B2 (en) * | 2009-01-09 | 2014-02-04 | Pivotal Software, Inc. | Preventing pauses in algorithms requiring pre-image information concerning modifications during data replication |
ATE528713T1 (de) | 2009-06-18 | 2011-10-15 | Software Ag | Brokersystem für mehrere broker, clients und server in einem heterogenen netzwerk |
CN101610283B (zh) * | 2009-07-17 | 2012-04-25 | 浪潮电子信息产业股份有限公司 | 一种网卡绑定状态下动态接收负载均衡的方法 |
CN102055730B (zh) * | 2009-11-02 | 2013-09-11 | 华为终端有限公司 | 云处理系统、云处理方法和云计算代理装置 |
GB201015324D0 (en) * | 2010-09-14 | 2010-10-27 | Vodafone Ip Licensing Ltd | Secure association |
US20120173709A1 (en) * | 2011-01-05 | 2012-07-05 | Li Li | Seamless scaling of enterprise applications |
US9083614B2 (en) | 2012-10-15 | 2015-07-14 | Oracle International Corporation | System and method for supporting out-of-order message processing in a distributed data grid |
US20160182291A1 (en) * | 2014-12-23 | 2016-06-23 | Qualcomm Incorporated | Controlling a modality of a dockee in a wireless docking system |
US20170292798A1 (en) * | 2016-04-06 | 2017-10-12 | Fluor Technologies Corporation | Leak detection in heat exchanger systems |
CN107645476B (zh) * | 2016-07-22 | 2021-06-11 | 上海优扬新媒信息技术有限公司 | 请求处理方法和装置 |
CN107545489A (zh) * | 2017-08-18 | 2018-01-05 | 秒啊(北京)科技有限公司 | 一种时间交易方法 |
CN110933180B (zh) * | 2019-12-10 | 2023-05-12 | 深信服科技股份有限公司 | 一种通信建立方法、装置、负载设备及存储介质 |
CN111865664B (zh) * | 2020-06-18 | 2022-08-02 | 烽火通信科技股份有限公司 | 一种orb对象生命周期管理方法及系统 |
Family Cites Families (104)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5819028A (en) * | 1992-06-10 | 1998-10-06 | Bay Networks, Inc. | Method and apparatus for determining the health of a network |
GB9222282D0 (en) * | 1992-10-22 | 1992-12-09 | Hewlett Packard Co | Monitoring network status |
US5329619A (en) * | 1992-10-30 | 1994-07-12 | Software Ag | Cooperative processing interface and communication broker for heterogeneous computing environments |
CA2110243C (en) * | 1992-12-31 | 1998-08-11 | Philip Steven Winterbottom | Apparatus and methods for making a portion of a first name space available as a portion of a second name space |
US5553242A (en) * | 1993-11-03 | 1996-09-03 | Wang Laboratories, Inc. | Client/server connection sharing |
US5793965A (en) * | 1995-03-22 | 1998-08-11 | Sun Microsystems, Inc. | Method and apparatus for determining the type of an object in a distributed object system |
EP0733971A3 (en) * | 1995-03-22 | 1999-07-07 | Sun Microsystems, Inc. | Method and apparatus for managing connections for communication among objects in a distributed object system |
US5889953A (en) * | 1995-05-25 | 1999-03-30 | Cabletron Systems, Inc. | Policy management and conflict resolution in computer networks |
US5774668A (en) * | 1995-06-07 | 1998-06-30 | Microsoft Corporation | System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing |
US5710882A (en) * | 1995-06-29 | 1998-01-20 | Telefonaktiebolaget Lm Ericsson | Method and call set up server for setting up a call using a call handling portion and a connection handling portion to handle the call and the connection, respectively |
GB2305270A (en) | 1995-09-15 | 1997-04-02 | Ibm | Bridge for a client-server environment |
US6006018A (en) * | 1995-10-03 | 1999-12-21 | International Business Machines Corporation | Distributed file system translator with extended attribute support |
US5758186A (en) * | 1995-10-06 | 1998-05-26 | Sun Microsystems, Inc. | Method and apparatus for generically handling diverse protocol method calls in a client/server computer system |
JP3684262B2 (ja) * | 1996-01-17 | 2005-08-17 | 富士通株式会社 | ネットワークシステム及び集線装置 |
US5761507A (en) * | 1996-03-05 | 1998-06-02 | International Business Machines Corporation | Client/server architecture supporting concurrent servers within a server with a transaction manager providing server/connection decoupling |
US5768501A (en) * | 1996-05-28 | 1998-06-16 | Cabletron Systems | Method and apparatus for inter-domain alarm correlation |
US5717747A (en) * | 1996-05-31 | 1998-02-10 | Lucent Technologies Inc. | Arrangement for facilitating plug-and-play call features |
US6212573B1 (en) * | 1996-06-26 | 2001-04-03 | Sun Microsystems, Inc. | Mechanism for invoking and servicing multiplexed messages with low context switching overhead |
US5727145A (en) * | 1996-06-26 | 1998-03-10 | Sun Microsystems, Inc. | Mechanism for locating objects in a secure fashion |
US6282580B1 (en) * | 1996-07-02 | 2001-08-28 | Sun Microsystems, Inc. | Bridge providing communication between different implementations of object request brokers |
US5748897A (en) * | 1996-07-02 | 1998-05-05 | Sun Microsystems, Inc. | Apparatus and method for operating an aggregation of server computers using a dual-role proxy server computer |
US5754763A (en) * | 1996-10-01 | 1998-05-19 | International Business Machines Corporation | Software auditing mechanism for a distributed computer enterprise environment |
US6032175A (en) * | 1996-10-17 | 2000-02-29 | International Business Machines Corporation | Enhanced directory services in compound wide/local area networks |
US6715100B1 (en) * | 1996-11-01 | 2004-03-30 | Ivan Chung-Shung Hwang | Method and apparatus for implementing a workgroup server array |
US6094688A (en) * | 1997-01-08 | 2000-07-25 | Crossworlds Software, Inc. | Modular application collaboration including filtering at the source and proxy execution of compensating transactions to conserve server resources |
US5808911A (en) * | 1997-06-19 | 1998-09-15 | Sun Microsystems, Inc. | System and method for remote object resource management |
US6151639A (en) * | 1997-06-19 | 2000-11-21 | Sun Microsystems, Inc. | System and method for remote object invocation |
US5931900A (en) * | 1997-08-25 | 1999-08-03 | I2 Technologies, Inc. | System and process for inter-domain interaction across an inter-domain connectivity plane |
US6253253B1 (en) * | 1997-08-25 | 2001-06-26 | International Business Machines Corporation | Method and apparatus for optimizing references to objects in a data processing system |
US6074427A (en) * | 1997-08-30 | 2000-06-13 | Sun Microsystems, Inc. | Apparatus and method for simulating multiple nodes on a single machine |
US6275870B1 (en) * | 1997-09-24 | 2001-08-14 | Sony Corporation | Network object request broker |
US6128279A (en) * | 1997-10-06 | 2000-10-03 | Web Balance, Inc. | System for balancing loads among network servers |
US6185609B1 (en) * | 1997-10-24 | 2001-02-06 | Sun Microsystems, Inc. | Method, apparatus and program to provide client access to a management information service residing on a server in a computer network system |
US6446204B1 (en) * | 1997-10-31 | 2002-09-03 | Oracle Corporation | Method and apparatus for implementing an extensible authentication mechanism in a web application server |
US6334114B1 (en) * | 1997-10-31 | 2001-12-25 | Oracle Corporation | Method and apparatus for performing transactions in a stateless web environment which supports a declarative paradigm |
US6185623B1 (en) * | 1997-11-07 | 2001-02-06 | International Business Machines Corporation | Method and system for trivial file transfer protocol (TFTP) subnet broadcast |
US6209018B1 (en) * | 1997-11-13 | 2001-03-27 | Sun Microsystems, Inc. | Service framework for a distributed object network system |
US6822955B1 (en) * | 1998-01-22 | 2004-11-23 | Nortel Networks Limited | Proxy server for TCP/IP network address portability |
US6484261B1 (en) * | 1998-02-17 | 2002-11-19 | Cisco Technology, Inc. | Graphical network security policy management |
US6003083A (en) * | 1998-02-19 | 1999-12-14 | International Business Machines Corporation | Workload management amongst server objects in a client/server network with distributed objects |
JP3966598B2 (ja) * | 1998-03-04 | 2007-08-29 | 富士通株式会社 | サーバ選択システム |
US6298044B1 (en) * | 1998-03-31 | 2001-10-02 | Hewlett-Packard Company | Method and apparatus for determining if overloaded collision domains can be split to enhance network |
US6167052A (en) * | 1998-04-27 | 2000-12-26 | Vpnx.Com, Inc. | Establishing connectivity in networks |
US7430164B2 (en) * | 1998-05-04 | 2008-09-30 | Hewlett-Packard Development Company, L.P. | Path recovery on failure in load balancing switch protocols |
US20070078978A1 (en) * | 1998-06-01 | 2007-04-05 | Sri International | Method and apparatus for updating information in a low-bandwidth client/server object-oriented system |
US7039597B1 (en) * | 1998-06-05 | 2006-05-02 | I2 Technologies Us, Inc. | Method and system for managing collaboration within and between enterprises |
US6237135B1 (en) | 1998-06-18 | 2001-05-22 | Borland Software Corporation | Development system with visual design tools for creating and maintaining Java Beans components |
US6697869B1 (en) * | 1998-08-24 | 2004-02-24 | Koninklijke Philips Electronics N.V. | Emulation of streaming over the internet in a broadcast application |
US6484213B1 (en) * | 1998-09-09 | 2002-11-19 | Compaq Information Technologies Group, Inc. | Adapting networking device for enhancing performance of a hybrid networking system |
US6636893B1 (en) * | 1998-09-24 | 2003-10-21 | Itron, Inc. | Web bridged energy management system and method |
US6338089B1 (en) * | 1998-10-06 | 2002-01-08 | Bull Hn Information Systems Inc. | Method and system for providing session pools for high performance web browser and server communications |
US6693661B1 (en) * | 1998-10-14 | 2004-02-17 | Polycom, Inc. | Conferencing system having an embedded web server, and method of use thereof |
AU1119100A (en) * | 1998-10-16 | 2000-05-08 | Objectera, Inc. | Connection concentrator for distributed object systems |
JP2000138712A (ja) * | 1998-11-02 | 2000-05-16 | Sony Corp | アプリケーションシステム間のデータ伝送システム |
US6571274B1 (en) * | 1998-11-05 | 2003-05-27 | Beas Systems, Inc. | Clustered enterprise Java™ in a secure distributed processing system |
US6236999B1 (en) * | 1998-11-05 | 2001-05-22 | Bea Systems, Inc. | Duplicated naming service in a distributed processing system |
US6385643B1 (en) * | 1998-11-05 | 2002-05-07 | Bea Systems, Inc. | Clustered enterprise Java™ having a message passing kernel in a distributed processing system |
FR2787956B1 (fr) * | 1998-12-24 | 2001-02-23 | France Telecom | Procede d'adressage dans un reseau numerique de telecommunications et serveur de noms et d'adresses mettant en oeuvre un tel procede |
US6611872B1 (en) * | 1999-01-11 | 2003-08-26 | Fastforward Networks, Inc. | Performing multicast communication in computer networks by using overlay routing |
US6556541B1 (en) * | 1999-01-11 | 2003-04-29 | Hewlett-Packard Development Company, L.P. | MAC address learning and propagation in load balancing switch protocols |
US7415713B2 (en) * | 2000-01-28 | 2008-08-19 | Iona Technologies, Plc | Method and system for dynamic configuration of interceptors in a client-server environment |
US6633923B1 (en) * | 1999-01-29 | 2003-10-14 | Iona Technologies Inc. | Method and system for dynamic configuration of interceptors in a client-server environment |
US6453320B1 (en) * | 1999-02-01 | 2002-09-17 | Iona Technologies, Inc. | Method and system for providing object references in a distributed object environment supporting object migration |
US6684246B1 (en) * | 1999-02-03 | 2004-01-27 | William H. Gates, III | Method and system for tracking clients |
US6591272B1 (en) * | 1999-02-25 | 2003-07-08 | Tricoron Networks, Inc. | Method and apparatus to make and transmit objects from a database on a server computer to a client computer |
US6687831B1 (en) * | 1999-04-29 | 2004-02-03 | International Business Machines Corporation | Method and apparatus for multiple security service enablement in a data processing system |
US6622127B1 (en) * | 1999-05-11 | 2003-09-16 | Kaiser Foundation Hospitals | Order allocation to select from inventory locations stocking few units of inventory |
US6694437B1 (en) * | 1999-06-22 | 2004-02-17 | Institute For Information Technology | System and method for on-demand access concentrator for virtual private networks |
US6427164B1 (en) * | 1999-06-23 | 2002-07-30 | Mail Registry, Inc. | Systems and methods for automatically forwarding electronic mail when the recipient is otherwise unknown |
US6633878B1 (en) * | 1999-07-30 | 2003-10-14 | Accenture Llp | Initializing an ecommerce database framework |
US6842906B1 (en) * | 1999-08-31 | 2005-01-11 | Accenture Llp | System and method for a refreshable proxy pool in a communication services patterns environment |
US7290056B1 (en) * | 1999-09-09 | 2007-10-30 | Oracle International Corporation | Monitoring latency of a network to manage termination of distributed transactions |
US6308238B1 (en) * | 1999-09-24 | 2001-10-23 | Akamba Corporation | System and method for managing connections between clients and a server with independent connection and data buffers |
DE60003716T2 (de) * | 1999-11-22 | 2004-02-05 | Microsoft Corp., Redmond | Kommunikation zwischen kontextungebundenen und kontextgebundenen objekten |
US6931455B1 (en) * | 1999-11-30 | 2005-08-16 | Recursion Software, Inc. | System and method for communications between a CORBA object request broker and a non-CORBA object request broker |
US7120692B2 (en) * | 1999-12-02 | 2006-10-10 | Senvid, Inc. | Access and control system for network-enabled devices |
US6754706B1 (en) * | 1999-12-16 | 2004-06-22 | Speedera Networks, Inc. | Scalable domain name system with persistence and load balancing |
US7340532B2 (en) * | 2000-03-10 | 2008-03-04 | Akamai Technologies, Inc. | Load balancing array packet routing system |
US7051032B2 (en) * | 2000-03-17 | 2006-05-23 | International Business Machines Corporation | System and method for providing post HOC access to legacy applications and data |
WO2001073551A2 (en) * | 2000-03-29 | 2001-10-04 | Nextset Software Inc. | System and method of providing an asynchronous interface between a client system and an enterprise javabeans-enabled server |
US7478403B1 (en) * | 2000-04-21 | 2009-01-13 | Sun Microsystems, Inc. | Secure access to managed network objects using a configurable platform-independent gateway providing individual object-level access control |
US6839748B1 (en) * | 2000-04-21 | 2005-01-04 | Sun Microsystems, Inc. | Synchronous task scheduler for corba gateway |
US7228346B1 (en) * | 2000-04-21 | 2007-06-05 | Sun Microsystems, Inc. | IDL event and request formatting for corba gateway |
US6915324B1 (en) * | 2000-04-21 | 2005-07-05 | Sun Microsystems, Inc. | Generic and dynamic mapping of abstract syntax notation (ASN1) to and from interface definition language for network management |
US7206843B1 (en) * | 2000-04-21 | 2007-04-17 | Sun Microsystems, Inc. | Thread-safe portable management interface |
US6950935B1 (en) * | 2000-04-21 | 2005-09-27 | Sun Microsystems, Inc. | Pluggable authentication modules for telecommunications management network |
US7010586B1 (en) * | 2000-04-21 | 2006-03-07 | Sun Microsystems, Inc. | System and method for event subscriptions for CORBA gateway |
US6950848B1 (en) * | 2000-05-05 | 2005-09-27 | Yousefi Zadeh Homayoun | Database load balancing for multi-tier computer systems |
US7130870B1 (en) * | 2000-05-20 | 2006-10-31 | Ciena Corporation | Method for upgrading embedded configuration databases |
US6922685B2 (en) * | 2000-05-22 | 2005-07-26 | Mci, Inc. | Method and system for managing partitioned data resources |
US20030061323A1 (en) * | 2000-06-13 | 2003-03-27 | East Kenneth H. | Hierarchical system and method for centralized management of thin clients |
US6868543B1 (en) * | 2000-06-16 | 2005-03-15 | International Business Machines Corporation | Location transparent event handling |
US9038170B2 (en) * | 2000-07-10 | 2015-05-19 | Oracle International Corporation | Logging access system events |
US7814180B2 (en) * | 2000-07-13 | 2010-10-12 | Infoblox, Inc. | Domain name service server |
US7769847B2 (en) * | 2000-07-13 | 2010-08-03 | Computer Associates Think, Inc. | Method and apparatus for a comprehensive network management system |
US7725602B2 (en) * | 2000-07-19 | 2010-05-25 | Akamai Technologies, Inc. | Domain name resolution using a distributed DNS network |
CN1249576C (zh) * | 2000-07-27 | 2006-04-05 | Bea系统公司 | 用于对请求进行集中和负载均衡的系统和方法 |
US6557009B1 (en) | 2000-09-01 | 2003-04-29 | American Management Systems, Inc. | Environmental permit web portal with data validation capabilities |
FI20011239L (fi) * | 2001-06-12 | 2002-12-13 | Nokia Corp | Tiedonsiirtomenetelmä ja -järjestely |
FI20011237A0 (fi) * | 2001-06-12 | 2001-06-12 | Nokia Corp | Tiedonsiirtomenetelmä ja -järjestely |
US6981029B1 (en) * | 2001-07-17 | 2005-12-27 | Cisco Technology, Inc. | System and method for processing a request for information in a network |
US7058717B2 (en) * | 2002-07-25 | 2006-06-06 | International Business Machines Corporation | Method and system for providing highly available services based on a load balancing policy and a reusable connection context object |
CA2425048C (en) * | 2003-04-08 | 2008-06-03 | Ibm Canada Limited - Ibm Canada Limitee | Method and system for resource access |
EP1751745B1 (en) * | 2003-11-14 | 2019-07-10 | Western Digital Technologies, Inc. | Managed peer-to-peer applications, systems and methods for distributed data access and storage |
-
2001
- 2001-07-17 CN CNB018153224A patent/CN1249576C/zh not_active Expired - Lifetime
- 2001-07-17 JP JP2002515576A patent/JP5085831B2/ja not_active Expired - Lifetime
- 2001-07-17 US US09/907,025 patent/US6990511B2/en not_active Expired - Lifetime
- 2001-07-17 EP EP01954704.1A patent/EP1311946B1/en not_active Expired - Lifetime
- 2001-07-17 AU AU7693201A patent/AU7693201A/xx active Pending
- 2001-07-17 CA CA2417509A patent/CA2417509C/en not_active Expired - Lifetime
- 2001-07-17 AU AU2001276932A patent/AU2001276932B2/en not_active Expired
- 2001-07-17 KR KR1020037001225A patent/KR100798504B1/ko active IP Right Grant
- 2001-07-17 WO PCT/US2001/022343 patent/WO2002010917A1/en active IP Right Grant
-
2005
- 2005-10-31 US US11/262,632 patent/US7774403B2/en not_active Expired - Lifetime
-
2010
- 2010-07-28 US US12/845,630 patent/US8166095B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
CA2417509C (en) | 2013-02-19 |
KR100798504B1 (ko) | 2008-01-28 |
US20060069723A1 (en) | 2006-03-30 |
AU2001276932B2 (en) | 2007-06-21 |
EP1311946A1 (en) | 2003-05-21 |
US8166095B2 (en) | 2012-04-24 |
JP5085831B2 (ja) | 2012-11-28 |
EP1311946B1 (en) | 2017-12-27 |
KR20030031134A (ko) | 2003-04-18 |
CN1483162A (zh) | 2004-03-17 |
US20020019872A1 (en) | 2002-02-14 |
CA2417509A1 (en) | 2002-02-07 |
US20110016203A1 (en) | 2011-01-20 |
EP1311946A4 (en) | 2008-01-02 |
US6990511B2 (en) | 2006-01-24 |
JP2004505372A (ja) | 2004-02-19 |
AU7693201A (en) | 2002-02-13 |
US7774403B2 (en) | 2010-08-10 |
WO2002010917A1 (en) | 2002-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1249576C (zh) | 用于对请求进行集中和负载均衡的系统和方法 | |
CN102339234B (zh) | 一种协议栈运行装置和方法 | |
CN1330834A (zh) | 分布式处理系统中的智能存根或企业javatm豆模块 | |
AU2001276932A1 (en) | System and method for concentration and load-balancing of requests | |
US20070150602A1 (en) | Distributed and Replicated Sessions on Computing Grids | |
CN1757218A (zh) | 用于发布/预订的消息传送系统和方法 | |
CN1330785A (zh) | 分布式处理系统中含消息传送核心的集团型企业javatm | |
CN1260090A (zh) | 因特网上的数据高速缓冲存储器 | |
CN1945539A (zh) | 计算机集群系统中共享资源锁分配方法与计算机及集群系统 | |
CN1969267A (zh) | 用户级栈 | |
US7139805B2 (en) | Scalable java servers for network server applications | |
CN101043378A (zh) | 管理客户服务器通信的故障保险系统 | |
CN1591339A (zh) | 提供共享Web模块的系统和方法 | |
CN1658145A (zh) | 可升级打印假脱机系统 | |
CN1722663A (zh) | 一种代理服务器系统及其实现代理通讯的方法 | |
CN116508350A (zh) | 用于提供备份网络功能的网络节点及其中的方法 | |
US7574525B2 (en) | System and method for managing communication between server nodes contained within a clustered environment | |
US11736589B2 (en) | Systems and methods for acknowledgement in media processing | |
CN101047551A (zh) | 一种实现呼叫服务等级到承载呼叫的连接的映射方法 | |
CN1441366A (zh) | 过程间通信方法及其设备 | |
JP4123440B2 (ja) | オブジェクト指向のネットワーク分散型コンピューティングシステム、その負荷分散装置及びサーバ | |
CN1169194A (zh) | 一种计算机控制系统 | |
CN1735056A (zh) | 一种传输接入点及其构成的传输平台及进程间通信的方法 | |
CN1399831A (zh) | 以群的方式交换管理协议数据单元的方法 | |
CN101035320A (zh) | 一种全用户广播方法和系统 |
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 | ||
ASS | Succession or assignment of patent right |
Owner name: ORACLE INT CORP Free format text: FORMER OWNER: BEA SYSTEMS CORP. Effective date: 20110418 |
|
C41 | Transfer of patent application or patent right or utility model | ||
TR01 | Transfer of patent right |
Effective date of registration: 20110418 Address after: American California Patentee after: Oracle Int Corp Address before: American California Patentee before: Bea Systems Corp. |
|
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20060405 |