CN1143220C - 分布式处理系统中的复制命名服务 - Google Patents
分布式处理系统中的复制命名服务 Download PDFInfo
- Publication number
- CN1143220C CN1143220C CNB998146773A CN99814677A CN1143220C CN 1143220 C CN1143220 C CN 1143220C CN B998146773 A CNB998146773 A CN B998146773A CN 99814677 A CN99814677 A CN 99814677A CN 1143220 C CN1143220 C CN 1143220C
- Authority
- CN
- China
- Prior art keywords
- service
- signal
- treatment facility
- name
- server
- 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
- 238000012545 processing Methods 0.000 title claims abstract description 43
- 238000000034 method Methods 0.000 claims description 99
- 230000004044 response Effects 0.000 claims description 19
- 230000005540 biological transmission Effects 0.000 claims description 14
- 230000004048 modification Effects 0.000 claims description 7
- 238000012986 modification Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 abstract description 50
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 14
- 244000046052 Phaseolus vulgaris Species 0.000 description 14
- 230000006870 function Effects 0.000 description 12
- 230000002452 interceptive effect Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000009467 reduction Effects 0.000 description 4
- 241000196324 Embryophyta Species 0.000 description 3
- 235000010425 Sorbus domestica Nutrition 0.000 description 3
- 240000005332 Sorbus domestica Species 0.000 description 3
- 238000010276 construction Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008034 disappearance Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 230000005641 tunneling Effects 0.000 description 2
- 101001074449 Crotalus durissus terrificus Phospholipase A2 inhibitor CNF Proteins 0.000 description 1
- 241001269238 Data Species 0.000 description 1
- 208000002193 Pain Diseases 0.000 description 1
- 241000677635 Tuxedo Species 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 229920002457 flexible plastic Polymers 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007620 mathematical function Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
- G06F9/548—Object oriented; Remote method invocation [RMI]
-
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99941—Database schema or data structure
- Y10S707/99944—Object-oriented database structure
- Y10S707/99945—Object-oriented database structure processing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99951—File or database maintenance
- Y10S707/99952—Coherency, e.g. same view to multiple users
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer And Data Communications (AREA)
- Multi Processors (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明提供了一种集团型企业JavaTM分布式处理系统,该分布式处理系统包括与通信媒体连接的第一和第二计算机。第一计算机包括JavaTM虚拟机(JVM)(354)和含有远程JavaTM虚拟机(RJVM)(356)的、用于传送消息的核心(355)软件层。第二计算机包括JVM和含有RJVM的核心软件层。消息从一个计算机的RJVM传送到JVM,再传送到第二个计算机的JVM和RJVM。消息可以通过中间服务器(302和303)转发或在网络重新配置之后重新择径。每个负载平衡软件部分(362)和故障处理软件部分。每个计算机包括在节点上存储智能存根模块库的复制服务命名树。该计算机可以以无状态、无状态工厂、或有状态编程模型编程。集团型企业JavaTM分布式处理系统允许提高规模可伸缩性和容错性。
Description
技术领域
本发明涉及分布式处理系统,尤其涉及分布式处理系统中的计算机软件。
相互参照相关申请
本申请要求1998年11月5日提出的美国临时申请No.60/107,167的权益。
下列同时待审的美国专利申请已转让给本申请的受让人,将它们的公开文本插在这里以供参考:
(A)序号:(尚不知)(代理人备案号(Attorney Docket No.):BEAS1027),由Dean B.Jacobs和Anno R.Langen提出申请(尚不知),原标题:分布式处理系统中具有消息传送核心模块的集团型企业JAVATM(“CLUSTEREDENTERPRISE JAVATM HAVING A MESSAGE PASSING KERNEL IN A DISTRIBUTEDPROCESSING SYSTEM”);
(B)序号:(尚不知)(代理人备案号:BEAS1029),由Dean B.Jacobs和Eric M.Halpern提出申请(尚不知),原标题:分布式处理系统中的智能存根模块或企业JAVATM豆模块(“A SMART STUB OR ENTERPRISE JAVATM BEAN IN ADISTRIBUTED PROCESSING SYSTEM”);和
(C)序号:(尚不知)(代理人备案号:BEAS1031),由Dean B.Jacobs和Anno R.Langen提出申请(尚不知),原标题:在安全分布式处理系统中的集团型企业JAVATM(“CLUSTERED ENTERPRISE JAVATM IN A SECURE DISTRIBUTEDPROCESSING SYSTEM”)。
背景技术
存在若干种类型的分布式处理系统。一般地说,分布式处理系统包括多个处理设备,例如,两个与通信媒体连接的计算机。通信媒体可以包括有线媒体、无线媒体、或它们的组合,例如,以太(Ethernet)局域网或蜂窝网。在分布式处理系统中,至少有一个处理设备可以将通信媒体上的信息传送到另一个处理设备上。
图1所示的客户机/服务器结构110是一种类型的分布式处理系统。客户机/服务器结构110包括至少两个处理设备,表示为客户机105和应用程序服务器103。附加的客户机也可以与通信媒体104连接,例如客户机108。
通常,服务器103是商用逻辑模块(business logic)的宿主和/或协调事务处理以向另外的处理设备,例如客户机105和/或客户机108提供服务。应用程序服务器103通常用提供服务的软件编程。软件可以利用各种各样的编程模型,例如图1a-b所示的Enterprise JavaTM Bean(“EJB”)100b编程。服务可以包括,例如,检索和传送来自数据库的数据,提供图像和/或解方程。例如,服务器103可以响应来自客户机105的请求,通过通信媒体102从永久性存储器件101中的数据库101a检索数据。然后,应用程序服务器103可以通过通信媒体104传送请求数据到客户机105。
客户机是利用来自服务器的服务和可以请求服务的处理设备。用户106经常与客户机105交互操作,并可以使客户机105通过通信媒体104从应用程序服务器103请求服务。客户机经常处理与最终用户的直接交互操作,例如接受请求和显示结果。
各种各样不同类型的软件可以用于编程应用程序服务器103和/或客户机105。一种编程语言是JavaTM编程语言。JavaTM应用程序目标代码被装载到JavaTM虚拟机(“JVM”)中。JVM是装载到模拟特定机器或处理设备的处理设备中的程序。关于JavaTM编程语言的更多信息可以从http://www.javasoft.com站点上获得,将这个站点列在这里以供参考。
图1b表示若干种JavaTM企业应用编程接口(“API”)100,这些接口允许JavaTM应用代码仍然独立于基本事务处理系统、数据库、和网络基础设施。JavaTM企业API 100包括:例如,远程方法调用(“RMI”)100a、EJB 100b、和JavaTM命名和目录接口(JNDI)100c。
RMI 100a是经常用在如下所述的对等结构(peer-peer architecture)中的分布式编程模型。具体地说,一组类别和接口使一个JavaTM对象能够调用在不同JVM上运行的另一个JavaTM对象的公开方法。
EJB 100b的示例通常用在如上所述的客户机/服务器结构中。EJB 100b的示例是软件成分或可以与其它成分组合的可重用预建的一段封装的应用程序代码。通常,EJB 100b的示例包括商用逻辑单元。存储在服务器103中的EJB 100b示例通常管理永久性、事务处理、并发性、线程处理和安全性。
JNDI 100c向JavaTM软件应用程序提供目录和命令功能。
客户机/服务器结构110存在着许多缺点。首先,因为服务器103不得不处理许多连接,所以结构110的规模不能太大。换言之,可以附加到服务器103上的客户机的数量受到限制。另外,加倍地添加处理设备(客户机)未必向你提供加倍的性能。其次,难以维护客户机105和108上的应用程序代码。第三,结构110易遭受一些系统故障或单点故障。如果服务器101发生故障并无法备份,那么客户机105将不能获得服务。
图1c表示多层结构160。客户机151和152管理与最终用户的直接交互操作,接受请求和显示结果。应用程序服务器153寄存应用程序代码、协调通信、同步和事务处理。数据库服务器154和便携式存储装置155提供数据的持续事务型管理。
多层结构160具有与客户机/服务器结构110相似的上述缺点。
图2表示对等结构214。处理设备216、217和218与通信媒体213连接。处理设备216、217和218包括通过媒体213通信用的网络软件210a、210b、和210c。通常,在对等结构中的每个处理设备具有相似的处理能力和应用程序。对等程序模型的例子包括Common Object Request Broker Architecture(公用对象请求中介架构)(“CORBA”,)和Distributed Object ComponentModel(分布式对象组件模型)(“DCOM”)结构。
在一个平台特定的分布式处理系统中,各个处理设备可以运行相同的操作系统。这样就允许诸如共享盘、多尾盘(multi-tailed disk)和高速互连之类的专有硬件用于处理设备之间的通信。该特定的分布式处理系统平台的例子包括IBMCorporation′s S/390 Parallel Sysplex、Compaq′s TandemDivision Himalaya服务器、Compaq′s Digital Equipment CorporationTM(DECTM) Division OpenVMSTM Cluster软件、和Microsoft CorporationWindows NTCluster Services(Wolfpack)。
图2b示出了事务处理(TP)结构220。具体地说,TP结构220示出了BEASvstems,Inc.TUXEDO结构。TP监视器224分别通过通信媒体280、281和282与处理设备ATM 221、PC 222和TP监视器223连接。ATM 221可以是自动出纳机,PC 222可以是个人计算机,和TP监视器223可以是另一个事务处理监视器。TP监视器224通过通信媒体283、284和285与后台服务器225、226和227连接。服务器225通过通信媒体286与永久性存储装置287、存储数据库289连接。TP监视器224包括工作流控制器224a,工作流控制器224a用于将来自诸如ATM 221、PC 222、或TP监视器223的处理设备的服务请求择径(routing)到诸如服务器225、226和227的各种服务器。工作流控制器224a允许做到(1)服务器之间的工作负载平衡,(2)受限制的规模可伸缩性或允许附加的服务器和/或客户机,(3)冗余后台服务器的容错性(或服务请求可以由工作流控制器发送到没有故障的服务器),和(4)会话集中以限制同时连接到后台服务器的数量。其它事务处理结构的例子包括IBMCorporation′s CICS、Compaq′s Tandem Division Pathway/Ford/TS、Compaq′sDECTM ACMS、和Transarc Corporation′s Encina。
TP结构220也存在着许多缺点。首先,单个处理设备或TP监视器224的故障可以使网络变成不能工作。其次,规模可伸缩性或与TP监视器224连接的处理设备(服务器和客户机两者)的数量可能受TP监视器224的硬件或软件的限制。第三,将客户机请求择径到服务器的灵活性受到限制。例如,如果通信媒体280不能工作,但通信媒体290可以使用,那么,ATM221通常不可以通过通信媒体290直接从服务器225请求服务,而必须访问TP监视器224。第四,客户机通常不知道后台服务器或其它处理设备的状态。第五,没有工业标准软件或API用于负载平衡。和第六,即使客户机含有能够进行高效服务的相关信息,客户机通常也不可以选择特定的服务器。
因此,最好是能提供一种分布式处理系统,尤其是能提供一种具有现有技术分布式处理系统的优点而没有其固有缺点的分布式处理系统软件。该软件应该考虑到通常用在客户机/服务器、多层或对等分布式处理系统中的工业标准API。该软件应该支持各种各样的计算机编程模型。并且,该软件还应该能允许(1)提高容错性、(2)有效率的规模可伸缩性、(3)有效的负载平衡、和(4)会话集中控制。改进了的计算机软件应该考虑到重新择径或网络重新配置。此外,该计算机软件还应该允许处理设备状态的确定。
发明内容
本发明的目的是提供一种改进分布式处理系统,尤其提供一种供分布式处理系统用的方法。
根据本发明的一个方面,提供一种用于在第一处理设备上运行复制的命名服务的方法,复制的命名服务包括第一处理设备上的第一命名服务,表明由第一处理设备提供的多个服务,该方法包括下列步骤:(A)等待从第二处理设备接收第一信号;(B)从第二处理设备接收第一信号,其中所述第一信号表明在由第二处理设备提供的服务的至少一种示例(instance)中的变化;以及(C)根据第一信号修改第一命名服务。
根据本发明的另一个方面,提供一种用于运行复制的命名服务的方法,复制的命名服务包括第一处理设备上的第一命名服务、表明由第一处理设备提供的多个服务,以及第二处理设备上的第二命名服务、表明由第二处理设备提供的多个服务,该方法包括下列步骤:(A)从第二处理设备向第一处理设备传达第一信号,其中所述第一信号表明在由第二处理设备提供的第一服务类型的服务的示例中的变化;(B)根据第一信号修改第一命名服务;(C)从第一处理设备向第二处理设备传达第二信号,其中所述第二信号表明在由第一处理设备提供的第二服务类型的服务的示例中的变化;以及(D)根据第二信号修改第二命名服务。
根据本发明的另一个方面,提供一种用于在第一处理设备上运行复制的命名服务的方法,该方法包括下列步骤:(A)从第二处理设备向第一处理设备发送第一信号类型的多个第一信号,所述第一信号的每一个表明在由第二处理设备提供的服务的示例中的变化;(B)从第二处理设备向第一处理设备发送第二信号类型的一个第二信号;(C)第一处理设备比较最近发送的第一信号和所述第二信号,以便确定是否已丢失所述多个第一信号中的一个;以及(D)从第一处理设备向第二处理设备发送第三信号,表明所丢失的第一信号。
根据本发明的另一个方面,提供一种用于创建复制的命名服务的方法,该方法包括下列步骤:(A)定位初步的服务提供者,其中所述初步的服务提供者提供第一服务的第一示例;(B)访问第一服务的第一示例,以定位至少一个额外的服务提供者,用于提供第一服务的随后的示例;(C)向定位的每一个服务提供者发送信号;以及(D)从至少一个所定位的服务提供者接收对所述信号的响应,其中所述响应表明由所述响应的服务提供者所提供的至少一个随后的服务的至少一个示例。
根据本发明的另一个方面,提供一种包含复制的命名服务的分布式处理系统,包括:第一命名服务,用于表明由第一处理设备提供的多个服务;第一信号响应装置,与所述第一命名服务进行通信;
第二命名服务,用于表明由第二处理设备提供的多个服务;以及第一信号生成装置,用于生成表明在第二处理设备所提供的服务的示例中的变化的第一信号,并将所述第一信号传达给第一信号响应装置,其中所述第一信号响应装置响应所述第一信号修改第一命名服务。
该系统及方法改进了分布式处理系统的容错性,以及能有高效率的规模可伸缩性。该系统及方法允许有效的负载平衡和会话集中。该系统及方法支持重新择径或计算机网络的重新配置。该系统及方法支持各种各样的计算机编程模型和允许用在客户机/服务器和对等分布式处理结构两者中的工业标准API的使用。该系统及方法允许服务器或其它处理设备状态的确定。该系统及方法还支持在包括安全性模型在内的各种情况下的消息转发。
附图说明
通过参照随后的附图、详细说明和权利要求书,可以看出本发明的其它特征和优点。
图1a表示现有技术的客户机/服务器结构;
图1b表示现有技术的JavaTM企业API;
图1c表示多层结构;
图2a表示现有技术的对等结构;
图2b表示现有技术的事务处理结构;
图3a表示本发明实施例的简化软件方块图;
图3b表示图3a所示的核心模块的简化软件方块图;
图3c表示集团型(clustered)企业JavaTM结构;
图4表示集团型企业JavaTM命名服务结构;
图5a表示智能存根模块(smarts tub)结构;
图5b表示EJB对象结构;
图6a是说明负载平衡方法的控制流程图;
图6b-g是说明负载平衡方法的控制流程图;
图7是说明故障处理方法的的控制流程图;
图8表示在图3-5所示的集团型企业JavaTM结构中客户机/服务器的硬件和软件部分。
通过参照附图和如下的详细说明,可以更好地理解本发明。在附图中,相同的标号表示相同的部分。
具体实施方式
I.集团型企业JavaTM分布式处理系统
A.集团型企业JavaTM软件结构
图3a示出了根据本发明实施例的、在集团型企业JavaTM系统的处理设备中的软件层的简化方块图380。下面描述集团型企业JavaTM分布式处理系统的详细说明。软件的第一层包括通信媒体软件驱动器351,用于传送和接收在诸如以太网局域网之类的通信媒体上的信息。包括传输控制协议(“TCP”)软件部分353和因特网(“IP”)软件部分352的操作系统310是以特定格式检索提取和发送信息包或信息块的上层软件层。“上层”软件层一般定义为一个利用或访问一个或多个“下层”软件层的软件部分或几个软件部分。接着,实现JVM 354。然后,将含有远程JavaTM虚拟机356的核心模块层355放置在JVM 354的上面。下面要详述的核心模块355用于在集团型企业JavaTM分布式处理系统中的处理设备之间传送消息。远程方法调用357和企业JavaTM豆模块(bean)358是核心模块355的上层软件层。EJB 358是用于各种JavaTM应用程序的容器。
图3b表示图3a所示的核心模块355的细节图。核心模块355包括接头管理器部分363、线程管理器部分364、和RJVM 356。RJVM 356是包括消息择径软件部分360、含有简表161c的消息压缩软件部分361、和对等消失检测软件部分362的数据结构。RJVM 356和线程管理器部分364与接头管理器部分363交互操作以在处理设备之间传输信息。
B.分布式处理系统
图3表示集团型企业JavaTM分布式处理系统300的简化方块图。处理设备与通信媒体301连接。通信媒体301可以是有线和/或无线的通信媒体,或它们的组合。在一个实施例中,通信媒体301是局域网(LAN)。在另一个实施例中,通信媒体301是广域网(WAN),例如,因特网或万维网(WWW)。再在另一个实施例中,通信媒体301是LAN和WAN两者。
各种不同类型的处理设备都可以与通信媒体301连接。在一个实施例中,处理设备可以是如下所述的、如图8所示的通用计算机100。本领域的普通技术人员应该理解,图8和下列说明仅描述了一种特定类型的处理设备,而按照本发明的实施例可以使用带有不同软件和硬件配置的许多其它类型的处理设备。在另一个实施例中,处理设备可以是打印机、手持式计算机、膝上型计算机、扫描仪、蜂窝式电话、寻呼机、或它们的等效物。
图3c表示本发明中服务器302和303与通信媒体301连接的实施例。服务器303还与通信媒体305连接,通信媒体305可以具有与上面针对通信媒体301所述相似的实施例。客户机304也与通信媒体305连接。在另一个实施例中,客户机304可以如图3中虚线和方块所示的那样与通信媒体301连接。应该理解为,在另一个实施例中,服务器302是(1)客户机和服务器两者、或(2)客户机。类似地,图3表示了其中表示三个处理设备的实施例,而本发明的其它实施例包括了如省略号所示的许多其它处理设备或通信媒体。
服务器302分别利用网络软件302a和网络软件303a将通信媒体301上的信息传输到服务器303。在一个实施例中,网络软件302a、303a、和304a包括通信媒体软件驱动器351、传输控制协议软件353和因特网协议软件352(“TCP/IP”)。客户机304还包括网络软件304a,用于通过通信媒体305将信息传输到服务器303。服务器303中的网络软件303a还用于通过通信媒体305将信息传输到客户机304。
根据本发明的实施例,集团型企业JavaTM结构300中的每个处理设备都包括支持多层和对等功能两者的消息传递核心模块355。核心模块是用于向处理设备上的其它软件程序提供基本服务的软件程序。
具体地说,服务器302、服务器303、和客户机304分别含有核心模块302b、303b、和304b。具体地,为了使两个JVM交互操作,无论它们是客户机还是服务器,每个JVM都构造代表另一个的RJVM。消息从一侧上的上层发出,通过相应的RJVM,跨过通信媒体,再通过对等的RJVM,最后被传送到另一侧上的上层。在各种实施例中,消息可以利用各种不同的协议传输,包括(但不限于):Transmission Control Protocol/Internet Protocol(“TCP/IP”)、Secure Sockets Layer(“SSL”)、Hypertext Transport Protocol(“HTTP”)隧道技术、和Internet InterORB Protocol(“IIOP”)隧道技术、和它们的组合。RJVM和接头管理器创建和维护以这些协议为基本接头和在上层中的所有对象之间共享它们。接头(socket)是代表分布式处理系统中的处理设备之间的端点(terminal)的逻辑位置。核心模块维护执行线程库,和线程管理器软件部分364多路复用接头读取和请求执行之间的线程。线程是执行程序代码段或功能的序列。
例如,服务器302包括JVM1和JavaTM应用程序302c。服务器302还包括代表服务器303的JVM2的RJVM2。如果消息要从服务器302发送到服务器303,则消息通过服务器302中的RJVM2发送到服务器303中的RJVM1。
C.消息转发
集团型企业JavaTM网络300能够通过中间服务器转发消息。如果客户机通过前台网关从后台服务器请求服务,则这种功能是重要的。例如,来自服务器302(客户机302)的消息并具体地JVM1可以通过服务器303(前台网关)或JVM2转发到客户机304(后台服务器304)或JVM3。这种功能在控制会话集中或在服务器与各种客户机之间建立多少个连接时是重要的。
并且,消息转发可以用在在两个JVM之间不能创建接头的情况中。例如,消息的发送者正在小应用程序安全模式下运行,而这种模式不允许创建到原始服务器的接头。小应用程序安全模型的详细说明可以从http://www.javasoft.com站点上获得,将这个站点列在这里以供参考。另一个例子包括当消息的接收者处于防火墙之后时。此外,如下所述,消息转发也可以应用在发送者是客户机和接收者是客户机时,因此不接受任何输入接头。
例如,如果消息从服务器302发送到客户机304,则该消息将不得不通过服务器303择径。具体地说,将使RJVM3(代表客户机304)之间的、如302f所示的消息切换是切换到服务器302中的RJVM2(代表服务器303)。消息将利用接头302e在服务器302中的RJVM2和服务器303中的RJVM1之间传输。然后,消息按虚线303f所示的那样,从服务器303中的RJVM1切换到服务器303中的RJVM3。接着,消息将在服务器303中的RJVM3和客户机304中的RJVM2的接头之间传送。最后,消息将按虚线304f所示的那样,从客户机304中的RJVM2传送到客户机304中的RJVM1。
D.重新择径
客户机/服务器中的RJVM能够在任何时候将通信路径或通信媒体切换到其它的RJVM。例如,如果客户机304创建到服务器302的直接接头,则服务器302就能够开始使用该接头来代替通过服务器303的消息转发。这个实施例用代表客户机304的虚线和方块示出。在一个实施例中,通过RJVM传输消息的使用确保了在出现网络重新配置之后可靠有序的消息传送。例如,如果客户机304被重新配置成通信媒体301来代替图3所示的通信媒体305。在另一个实施例中,消息可以不按顺序传送。
RJVM进行几种通过路由择径(routing)实现的端到端操作。首先,RJVM负责各个客户机/服务器意外死机时的检测。在一个实施例中,如图3b所示对等消失选择软件部分362负责这种功能。在一个实施例中,当在预定时间间隔内没有发送其它消息时,RJVM将心跳(heartbeat)消息发送到其它客户机/服务器。如果客户机/服务器在预定计数时间内没有接收到心跳消息,则检测到应该发送心跳的客户机/服务器发生故障了。在一个实施例中,通过连接超时或发生故障的客户机/服务器是否在预定时间量内不发送消息来检测发生故障的客户机/服务器。在另一个实施例中,发生故障的接头指示发生故障的客户机/服务器。
其次,在消息串行化期间,各个RJVM,特别是消息压缩软件360,缩减共同传输的数据值以降低消息大小。为了实现这个目的,每个JVM/RJVM对保持匹配缩减表。例如,JVM1包括缩减表,和RJVM1包括匹配缩减表。在消息在中间服务器之间转发期间,在路由中的中间服务器上消息的主体不进行去串行化。
E.多层/对等功能
集团型企业JavaTM结构300考虑到多层和对等编程。
集团型企业JavaTM结构300支持与多层分布式处理结构一致的、用于客户机/服务器编程的显式语法。举例来说,如下的客户机方代码片段将信息消息写入服务器日志文件中:
T3Client clnt=new T3Client("t3://acme:7001");
LogServices log=clnt.getT3Services().log();
Log.info("Hello from a client");
第一行利用t3协议建立与顶级(acme)服务器会话。如果RJVM还不存在,则每个JVM构造关于另一方的RJVM,并建立底层(underlying)TCP接头。这个会话的客户机方表示-T3Client对象-和服务器方表示通过这些RJVM进行通信。服务器方支持各种各样的服务,包括数据库访问、远程文件访问、工作空间、事件和日志记录。第二行获得LogServices对象,和第三行写消息。
集团型企业JavaTM计算机结构300还支持与对等分布式处理结构一致的服务器中性的语法。举例来说,如下的代码片段从服务器上的遵从JNDI的命名服务中获得关于RMI对象的存根模块,并调用其方法之一。
Hashtable env=new Hashtable();
env.put(Context.PROVIDER_URL,"t3://acme:7001");
env.put(Context.INITIAL_CONTEXT_FACTORY,
"weblogic.jndi.WeblogicInitialContextFactory");
Context ctx=new InitialContext(env);
Example e=(Example)ctx.lookup("acme.eng.example");
result=e.example(37);
在一个实施例中,JNDI命名上下文被封装成RMI对象以实现远程访问。因此,上面代码显示了一种类型的RMI引导(bootstrap)。前四行获得顶级服务器上关于初始上下文的RMI stub。如果RJVM还不存在,则每一方都构造关于另一方的RJVM,并建立用于t3协议的底层TCP接头。调用方对象-RMI stub和被叫方对象-RMI impl-通过RJVM进行通信。第五行查找在名称acme.eng.example上的另一个RMI对象,即Example和第六行调用Example方法之一。在一个实施例中,Example impl不在与命名服务相同的处理设备上。在另一个实施例中,Example impl是在客户机上。Example对象的调用导致了适当RJVM的创建,如果它们还不存在的话。
II.知晓复制的或智能的存根模块/EJB对象
在图3c中,处理设备通过复制RMI和/或EJB对象能够向结构300中的其它处理设备提供服务。因此,结构300是易于伸缩的和容错的。通过将复制的RMI和/或EJB对象加入现有的处理设备或新附加的处理设备中,可以容易地将附加服务加入结构300中。并且,由于RMI和/或EJB对象可以通过结构300复制,因此,单个处理设备、多个处理设备、和/或通信媒体可能发生故障,但仍然不会使结构300不能工作或显著变坏。
图5a表示结构500中的知晓复制(“RA”)的或智能的存根模块580。结构500包括与通信媒体501连接的客户机504。服务器502和503分别与通信媒体501连接。永久性存储装置509分别通过通信媒体560和561与服务器502和503连接。在各种各样的实施例中,通信媒体501、560和561可以是如上所述的有线和/或无线通信媒体。类似地,在一个实施例中,客户机504、服务器502、和服务器503可以是如上所述的客户机和服务器两者。本领域的普通技术人员应该理解,在其它可替代的实施例中,多个其它服务器和客户机可以如省略号所示的那样包括在结构500中。此外,如上所述,在其它可替代的实施例中,客户机504、服务器502、和服务器503的硬件和软件配置如下面所描述的和图8所示的那样。
RA RMI存根模块580是一种能够根据负载平衡方法507和/或故障处理方法508找出几乎所有服务提供者并在它们之间切换的智能存根模块。在一个实施例中,RA存根模块580包括选择适当负载平衡方法507和/或故障处理方法507的复制处理器506。在其它可替代的实施例中,可以实施单负载平衡方法和/或单故障处理方法。在其它可替代的实施例中,复制处理器506可以包括多负载平衡方法和/或多故障处理方法以及它们的组合。在一个实施例中,复制处理器506实现如下接口:
public interface ReplicaHandler{
Object loadBalance(Object currentProvider)throws
RefreshAbortedException;
Object failOver(Object failedProvider,
RemoteException e)throws
RemoteException;
}
紧接调用一种方法之前,RA存根模块580调用负载平衡方法507,它接管当前服务器,并返回替换者。例如,客户机504可能正在利用服务器502检索数据库509a或个人存储装置509的数据。由于服务器502负担服务请求过重,因此,负载平衡方法507可以切换到服务器503。处理器506可能选择完全在调用方上的服务器替换者,也许利用关于服务器502负载的信息,或者,处理器506可以请求服务器506检索特定类型的数据。例如,处理器506可以选择特定服务器解方程,因为服务器已经提高了计算能力。在一个实施例中,复制处理器506实际上不需要在每次调用时都切换提供者,因为复制处理器506正试图使创建的连接数最少。
图6a是说明图5a-b所示的负载平衡软件507的控制流程图。应该理解,图6a是说明由负载平衡方法507中的软件完成的功能或步骤的逻辑序列的控制流程图。在其它可替代的实施例中,可以完成附加的功能或步骤。并且,在其它可替代的实施例中,硬件可以执行特定的功能或所有的功能。
负载平衡软件507从圆圈600所示的位置开始。然后,在逻辑块601中确定调用线程是否已经建立起对特定服务器的“亲缘关系”。客户机与协调它当前事务处理的服务器有亲缘关系,和服务器与它自己有亲缘关系。如果亲缘关系已建立,则将控制进到逻辑块602,否则,则控制进到逻辑块604。在逻辑块602中确定有亲缘关系的服务器是否提供所请求的服务。如果是,则将控制进到逻辑块603。否则,则控制进到逻辑块604。将有亲缘关系的服务器上的服务提供者返回给逻辑块603中的客户机。在逻辑块604中,联系命名服务并获取更新了的当前服务提供者列表。在逻辑块605中调用getNextProvider(取下一服务者)方法以获取服务提供者。getNextProvider方法的各种实施例显示在图6b-g中,下面将作详细描述。在逻辑块606中获得服务。然后,如果在逻辑块606中没有提供服务,则调用故障处理方法508,最后,负载平衡方法507从逻辑块608所示的位置退出。故障处理方法508的实施例表示在图7中,下面将作详细描述。
图6b-g示出了图6a的逻辑块605中所使用的getNextProvider方法的各种实施例。如图6b所示,getNextProvider方法以循环方式选择服务提供者。如圆圈621所示进入getNextProvider方法620。在逻辑块622中获取当前服务提供者列表。在逻辑块623中递增指针。在逻辑块624中根据指针选择下一个服务提供者,并在逻辑块625中返回新的服务提供者,最后,如圆圈626所示退出getNextProvider方法。
图6c示出了通过随机选择服务提供者来获取服务提供者的getNextProvider方法的另一种可替代实施例。如圆圈631所示进入getNextProvider方法630。如逻辑块632所示的那样获取当前服务提供者列表。如逻辑块633所示的那样随机选择下一个服务提供者,并在逻辑块634中返回新的服务提供者,最后,如圆圈635所示退出getNextProvider方法。
getNextProvider方法还有一个实施例显示在图6d中,它根据各服务提供者的负载获取服务提供者。如圆圈641所示进入getNextProvider方法640。在逻辑块642中获取当前服务提供者列表。在逻辑块643中获取每个服务提供者的负载。然后,在逻辑块644中选择负载最轻的服务提供者。最后,在逻辑块645中返回新的服务提供者,并且如圆圈646所示退出getNextProvider方法。
getNextProvider方法的再一个可替代的实施例显示在图6e中,它根据从服务提供者获得的数据类型获取服务提供者。如圆圈651所示进入getNextProvider方法650。在逻辑块652中获取当前服务提供者列表。在逻辑块653中确定从服务提供者请求的数据的类型。然后,在逻辑块654中根据数据类型选择负载服务提供者。最后,在逻辑块655中返回新的服务提供者,并且如圆圈656所示退出getNextProvider方法。
getNextProvider方法的再一个实施例表示在图6f中,它根据服务提供者物理位置选择服务提供者。如圆圈661所示进入getNextProvider方法660。在逻辑块662中获取当前服务提供者列表。在逻辑块663中确定到每个服务提供者的物理距离,和在逻辑块664中选择到正在请求的客户机的物理距离最近的服务提供者。最后,在逻辑块665中返回新的服务提供者,并且如圆圈666所示退出getNextProvider方法660。
getNextProvider方法的还在一个的实施例显示在图6g中,它根据服务提供者响应以前的请求所花费的时间量选择服务提供者。如圆圈671所示进入getNextProvider方法670的控制。在逻辑块672中获取当前服务提供者列表。在逻辑块673中确定每个服务提供者响应特定消息的时间间隔。然后,在逻辑块674中选择以最短时间间隔响应的服务提供者。最后,在逻辑块675中返回新的服务提供者,并且如圆圈676所示退出来自getNextProvider方法的控制。
如果服务方法的调用以保证重试这样的方式出故障,则RA存根模块580调用故障处理方法508,它接管发生故障的服务器和提示是什么故障的异常,并返回一重试用的新服务器。如果新服务器不适用,则RA存根模块580报告异常。
图7是说明图5a-b所示的故障处理软件508的控制流程图。如圆圈700所示进入故障处理方法508。在逻辑块701从服务的当前提供者列表中删除发生故障的提供者。然后,调用getNextProvider方法以便获取服务提供者。最后,在逻辑块703中返回新的服务提供者,和如圆圈704所示退出故障处理方法508。
虽然图6-7表示复制处理器506的实施例,但其它可替代的实施例还包括以循环方式实现的如下功能或它们的组合。
首先,要维护服务的服务器或服务提供者的列表。每当列表需要使用和列表最近没有被更新时,处理器506就联系如下所述的命名服务并获取提供者的最新列表。
其次,如果处理器506打算从列表中选择提供者和存在到主服务器的现存的RJVM级连接,该主服务器在最后的心跳周期未接收到消息,则处理器506跳过该提供者。在一个实施例中,由于对等的消失是在几个这样的心跳间隔之后确定的,因此,服务器可以在以后恢复。这样,就可以获取基于服务器负载的负载平衡。
第三,当提供者发生故障时,处理器506从列表中删除该提供者。这样就避免了重复尝试使用不工作的服务提供者所引起的延迟。
第四,如果服务正在从作为服务的提供者的宿主的服务器调用的,那么就使用该提供者。这有利于链式调用服务的提供者的共置托管(co-location)。
第五,如果服务正在在事务处理的范围内被调用和起事务处理协调者作用的服务器作为服务的提供者的宿主,那么就使用该提供者。这有利于在事务处理范围内的提供者的共置托管。
能够在方法调用期间发生的故障可以分类成:(1)与应用程序有关的、或(2)与基础设施有关的。在发生与应用程序有关的故障的情况下,RA存根模块580将不重试操作,因为不能期望改善这种情况。在发生与基础设施有关的故障的情况下,RA存根模块580也许能够,或也许不能够可靠地重试操作。一些初始非幂等操作,例如递增数据库中字段的值,可能完成。在一个实施例中,只有当(1)用户已经声明服务方法是幂等的,或者(2)系统可以确定请求的处理从未开始。作为后者的一个例子,如果作为负载平衡方法的一部分,存根模块580切换到其宿主已经发生故障的服务提供者,RA存根模块580将重试。作为另一个例子,RA存根模块580得到对事务处理操作的否定确认,则RA存根模块580将重试。
RMI编译器识别命令该编译器生成用于对象的RA存根模块的特殊标志。附加的标志可以用于规定服务方法是幂等的(idempotent)。在一个实施例中,RA存根模块580将利用如上所述的和图5a所示的复制处理器。附加的标志可以用于规定不同的处理器。另外,在服务被布置的点上,即被结合在如下所述的集团型命名服务的点上,处理器可以被取代。
图5b表示本发明的另一个实施例,其中EJB对象551用于取代图5a所示的存根模块。
III.复制的遵从JNDI的命令服务
如图4所示,对结构400中的服务提供者的访问是通过遵从JNDI的命名服务获得的,在整个结构400中复制遵从JNDI的命令服务,使得不存在任何单个故障点。因此,如果提供遵从JNDI的命名服务的处理设备发生了故障,则可以使用具有复制的命名服务的另一个处理设备。为了提供服务的示例,服务器在复制命名树中的特定节点上通告服务的提供者。在一个实施例中,每个服务器将用于提供者的RA存根模块附加到存储在命名树的服务器备份中的节点上的兼容服务库。如果新提供(offer)的类型与现有库中提供的类型不兼容,则使新提供暂停,并通过ConflictHandler接口作出往调用(callback)。在撤消任一种类型的提供之后,另一种提供将最终被装在每一处。当客户机查找服务时,客户机获取联系服务库的RA存根模块以刷新服务提供者的客户机列表。
图4表示结构400中复制的命名服务。在一个实施例中,服务器302和303分别提供示例的服务提供者P1和P2,并且分别拥有命名服务树402和403的复制品。命名服务树402和403中的节点acme.eng.example分别拥有服务库402a和403a,包含到Example服务提供者P1和P2的参考点。客户机304通过在acme.eng.example节点上进行命名服务查找获取RA存根模块304e。存根模块304e联系服务库的示例以获取到可用服务提供者的参考点的当前列表。存根模块304e可以按负载平衡和故障处理的需要在服务库的示例之间切换。
关于命名服务的初始上下文的存根模块是知晓复制的或智能的存根模块,它最初作命名服务提供者之间的负载平衡,并在发生故障的情况下进行切换。命名服务树的每个示例包含当前命名服务提供者的完整列表。存根模块从当前正在使用的示例中获取刷新列表。为了引导这个处理,系统使用Domain Naming Service(域名命名服务)(“DNS”)以找出示例的(可能不完整的)初始列表和从它们之一中获取完整列表。举例来说,可以按如下获取关于于命名服务的初始上下文的存根模块:
Hashtable env=new Hashtable();
env.put(Context.PROVIDER_URL,“t3://acmeCluster:7001”);
env.put(Context.INITIAL_CONTEXT_FACTORY,
“weblogic.jndi.WebLogiclnitialContextFactor”);
Context ctx=new InitialContext(env);
结构中的一些分组服务器已经被约束在名称acmeCluster下的DNS中。并且,应用程序仍然能够规定各个服务器的地址,但是,当应用程序首先试图获取存根模块时,应用程序将存在单个故障点。
可靠的多点传送协议是所期望的。在一个实施例中,通过IP多点传送或点到点协议分配提供者存根,并创建复制的命名树。在IP多点传送实施例中,有三种类型的消息:Heartbeat、Announcement(通知)、StateDump(状态转储)。Heartbeat用于在服务器之间传输信息,和通过它们的存在与否,识别发生故障的服务器。Announcement包含一组服务的提供和撤消。来自每个服务器的Announcement按顺序编号。每个接收器处理Announcement以便识别丢失的Announcement。每个服务器在它的Heartbeat中包括已经发送的最后一个Announcement的序号。关于丢失的Announcement的NegativeAcknowledgement(“NAK”,否认)包括在随后输出的Heartbeat中。为了处理NAK,每个服务器都保留服务器已经发送的最后几个Announcement的列表。如果关于Announcement已经被删除的NAK到达,服务器就发送StateDump,它包含服务器的服务的完整列表和它下一个Announcement的序号。当新服务器加入到现有的结构中时,新服务器NAK(否认)来自每个其它服务器的第一消息,这导致StateDump被发送。如果服务器在预定时间间隔之后没有从另一个服务器接收到心跳(Heartbeat),则服务器撤消由没有产生心跳(Heartbeat)的服务器提供的所有服务。
IV.编程模型
用在图3-5所示的结构中的应用程序随要处理应用程序状态的方式而定使用三种基本编程模型之一:(1)无状态的或直接的、(2)无状态工厂(stateless factory)的或间接的、或(3)有状态的或有目标的。在无状态模型中,通过命名服务查查找表返回的智能存根模块直接参考服务提供者。
Example e=(Example)ctx.lookup(“acme.eng.example”);
result1=e.example(37);
result2=e.example(38);
在该例中,由于为了负载平衡,智能存根模块能够在不同的服务提供者之间切换,因此,对实例的两种调用可以由不同的服务提供者来处理。因此,Example服务对象不能够代表应用程序在内部存储信息。通常,只有当提供者无状态时,才使用无状态模型。举例来说,纯粹无状态提供者可以计算其变元的一些数学函数,并返回结果。无状态提供者可以为它们自己存储信息,例如为了财会的目的。更重要的是,无状态提供者可以访问底层的永久性存储器,和根据需要将应用程序的状态装入存储器中。例如,为了使实例返回作为变元进入其中的所有值的运行和。该实例可以从数据库中读取以前的和,加入它的当前的变元中,写出新的值,然后将其返回。这种无状态服务模型提高了规模可伸缩性。
在无状态工厂编程模型中,通过查找返回的智能存根模块是创建其自身不是智能存根模块的所需服务提供者的工厂。
ExampleFactory gf=(ExampleFactory)
ctx.lookup(“acme.eng.example”);
Example e=gf.create();
result1=e.example(37);
result2=e.example(38);
在该例中,确保对实例的两种调用由同一服务提供者来处理。因此,服务提供者可以代表应用程序可靠地存储信息。无状态工厂模型应该应用在调用者需要与提供者进行“对话”时,例如,调用者和提供者可以进行往复协商。知晓复制的存根模块一般与无状态和无状态工厂模型中的相同。唯一不同之处在于存根模块是涉及服务提供者,还是涉及服务提供者工厂。
提供者工厂存根模块在努力创建提供者的过程中可以随意地进行故障处理,因为这种操作是幂等的。为了进一步提高间接服务的可用性,应用程序代码必须包含围绕服务创建和调用的显式重试循环。
while(true){
try{
Example e=gf.create();
result1=e.example(37);
result2=e.example(38);
break;
}catch(Exception e){
if(!retryWarranred(e))
throw e;
}
这将会,例如,处理由工厂成功创建的提供者e的故障。在这种情况下,应用程序代码应该确定是否完成非幂等操作。为了进一步提高适用性,应用程序代码可以尝试取消这样的操作并重试。
在有状态编程模型中,服务提供者是由一些唯一系统级关键字标识的长寿命、有状态对象。可以利用这种模型访问的“实体”的例子包括远程文件系统和数据库表中的行。目标提供者可以由许多客户机访问许多次,这与每个提供者只由一个客户机使用一次的其它两种模型不同。用于目标提供者的存根模块可以通过关键字只不过是命名服务名称的直接查找表,或通过关键字包括对创建操作的变元的工厂两者之一获取。在每一种情况中,存根模块将不作负载平衡或故障处理。即使作的话,重试必须再次显式地获取存根模块。
在EJB中存在三种类型的豆模块,其中的每一种映射到三种编程模型之一。无状态会话豆模块(bean)是为特定调用者创建的,但在调用之间不保持内部状态。无状态会话豆模块映射到无状态模型。有状态会话豆模块是为特定调用者创建的,并在调用之间保持内部状态。有状态会话豆模块映射到无状态工厂模型。实体豆模块是由全系统关键字标识的奇异的、有状态对象。实体豆模块映射到有状态模型。所有三种类型的豆模块都由称为EJB家庭(home)的工厂创建的。在一个实施例中,它们创建的EJB家庭和豆模块两者都用RMI标记。在图3-5所示的结构中,用于EJB家庭的存根模块是智能存根模块。用于无状态会话豆模块的存根模块是智能存根模块,而用于有状态会话豆模块和实体豆模块的存根模块则不是。用于基于EJB的服务的复制处理器可以在它的布置(deplotment)描述符中规定。
为了创建间接的、基于RMI的服务,这是当对象要为调用者保持状态时所需要的,应用程序代码必须显式地构建工厂。有目标的、基于RMI的服务可以通过无需任何特殊标志地运行RMI编译器,然后将所得的服务结合到所复制的命名树中来创建。用于对象的存根模块将直接结合到命名树的每个示例中和将不创建任何服务库。这样就提供了关键字是命名服务名称的有目标服务。在一个实施例中,这用于创建远程文件系统。
V.硬件和软件部分
图8表示图3-5所示的示例性服务器和/或客户机的硬件和软件部分。图8的系统包括通用计算机800,它通过诸如连接829之类的一个或多个通信媒体与LAN 840,并且也与在这里如因特网880所示的WAN相连接。通过LAN840,计算机800可以与诸如文件服务器841之类的其它本地计算机通信。在一个实施例中,文件服务器841是如图3所示的服务器303。通过因特网880,计算机800可以与诸如万维网服务器881之类的、本地的和远程的其它计算机通信。在一个实施例中,万维网服务器881是如图3所示的服务器303。应该理解,从计算机800到因特网880的连接可以通过各种各样的方式实现,例如,直接通过连接829,通过局域网840,或通过调制解调器(图中未示出)。
计算机800是个人或办公用计算机,它们可以是,例如,工作站、个人计算机、或其它单用户或多用户系统;一个示例性的实施例使用了SunSPARC-20工作站(Sun Microsystems,Inc.,Mountain View,CA)。为了便于说明,可以将计算机800方便地划分成硬件部分801和软件部分802;但是,本领域的普通技术人员应该理解,这种划分是概念性的,并且多少有些随意性,在硬件和软件之间的界线也不是严格的。此外,应该理解,在主计算机与它的附属外设之间的界线也不是严格的,尤其是,被认为是一些计算机的外设的部分也可以被认为是其它计算机的整体部分。因此,例如,用户I/O 820可以包括键盘、鼠标、和显示监视器,它们的每一种既可以被认为是外围设备,也可以被认为是计算机本身的一部分,用户I/O 820还可以包括通常被认为是外设的本机打印机。作为另一个例子,永久性存储器808可以包括CD-ROM(光盘只读存储器)单元,它既可以是外设,也可以内置在计算机中。
硬件部分801包括处理器(CPU)805、存储器806、永久性存储器件808、用户I/O 820、和网络接口825,它们都与总线810连接。这些部分都是本领域的普通技术人员所熟知的,因此,只需作简要说明。
处理器805可以是,例如,微处理器、或为了多重处理而构成的微处理器的集合。
存储器806可以包括只读存储器(ROM)、随机访问存储器(RAM)、虚拟存储器、或其它存储技术,它们既可以是单个形式,也可以是组合形式。永久性存储器件808可以包括,例如,硬磁盘、软磁盘、或其它永久性读-写数据存储技术,它们既可以是单个形式,也可以是组合形式。它还可以包括大型或归档存储器件,例如可以通过CD-ROM或其它大容量存储技术提供的那种。(请注意,文件服务器841提供了处理器805可以利用的附加存储能力。)
用户I/O(输入/输出)硬件820通常包括诸如CRT或平板显示器之类的视频显示监视器、字母数字式键盘、和鼠标或其它点击设备,可选地,还可以包括打印机、光学扫描仪,或供用户输入输出用的其它设备。
网络I/O硬件825提供了计算机800和外界的接口。更明确地说,网络I/O硬件825让处理器805通过连接829与通过LAN 840和因特网880的其它处理器和设备通信。
软件部分802包括操作系统850和在操作系统310控制下的一组任务,例如,JavaTM应用程序860、和重要的是,JVM软件354和核心模块355。操作系统310还让处理器805控制诸如永久性存储器件808、用户I/O 820、和网络接口825之类的各种设备。处理器805与存储器806和计算机系统800的其它部分相联系执行操作系统310、应用860、JVM 354、和核心355的软件。在一个实施例中,软件802包括如图3c的服务器302中所示的网络软件302a、JVM1、RJVM2和RJVM3。在一个实施例中,JavaTM应用程序860是如图3c所示的JavaTM应用程序302c。
本领域的普通技术人员应该理解,图8的系统的意图是用于举例说明的,而不是用于限制的,各种各样计算、通信、和信息设备都可以用来取代或附加到图8所表示的设备上。例如,通过因特网880的连接一般涉及通过中间路由器计算机(未示出)的分组交换,和计算机800在典型的万维网客户机会话期间可能访问任何数量的万维网服务器,包括,但决不仅限于,计算机800和万维网服务器881。
上述对本发明优选实施例的说明是为了图示和描述的目的而提供的。它不是穷举的,或将本发明限制在所公开的精确形式上。显然,各种改进和变动对于本领域的普通技术人员来说是显而易见的。选择和描述实施例是为了最佳地解释本发明的原理和它的实际应用,从而使本领域的其它普通技术人员能够理解有关各种实施例的和包括适用于所设想的特定用途的各种改进在内的本发明。应采用下列权利要求和它们的等效物来限定本发明的范围。
Claims (29)
1.一种用于在第一处理设备上运行复制的命名服务的方法,复制的命名服务包括第一处理设备上的第一命名服务,表明由第一处理设备提供的多个服务,该方法包括下列步骤:
A等待从第二处理设备接收第一信号;
B从第二处理设备接收第一信号,其中所述第一信号表明在由第二处理设备提供的服务的至少一种示例中的变化;以及
C根据第一信号修改第一命名服务。
2.根据权利要求1所述的方法,还包括:
在预定时间周期内没有收到第一信号时,修改所述命名服务。
3.根据权利要求1所述的方法,步骤C还包括:
C1根据服务类型将第一信号表明的服务的示例进行分类;和
C2根据第一信号修改相应于服务类型的第一命名服务的部分,其中所述第一命名服务的部分包括所述服务类型的服务的多个示例。
4.根据权利要求2所述的方法,其中还包括:
从命名服务中将一引用移动到第二处理设备所提供的服务的示例中。
5.根据权利要求3所述的方法,步骤C2还包括下列步骤:
为第一信号所表明的服务的示例创建引用,其中所述引用使得服务用户可以访问所述服务的示例;和
将所述引用添加到相应于服务类型的第一命名服务的部分。
6.根据权利要求5所述的方法,其中服务用户是一对象或者一应用程序或者一JavaTM Bean。
7.根据权利要求5所述的方法,其中引用是一存根或者一EnterpriseJavaTM Bean。
8.一种用于运行复制的命名服务的方法,复制的命名服务包括第一处理设备上的第一命名服务、表明由第一处理设备提供的多个服务,以及第二处理设备上的第二命名服务、表明由第二处理设备提供的多个服务,该方法包括下列步骤:
(A)从第二处理设备向第一处理设备传达第一信号,其中所述第一信号表明在由第二处理设备提供的第一服务类型的服务的示例中的变化;
(B)根据第一信号修改第一命名服务;
(C)从第一处理设备向第二处理设备传达第二信号,其中所述第二信号表明在由第一处理设备提供的第二服务类型的服务的示例中的变化;以及
(D)根据第二信号修改第二命名服务。
9.根据权利要求8所述的方法,其中步骤B还包括下列步骤:
为第一信号所表明的服务的示例创建第一引用,其中所述第一引用使得服务用户可以访问所述服务的示例;
将所述第一引用添加到相应于第一服务类型的第一命名服务的部分,其中所述第一命名服务部分包括第一服务类型的服务的多个示例;
为第二信号所表明的服务的示例创建第二引用,其中所述第二引用使得服务用户可以访问所述服务的第二示例;以及
将所述第二引用添加到相应于第二服务类型的第二命名服务的部分,其中所述第二命名服务部分包括第二服务类型的服务的多个示例。
10.根据权利要求10所述的方法,其中服务用户是一对象或者一应用程序或者一JavaTM Bean。
11.根据权利要求10所述的方法,其中第一和第二引用是存根或者一Enterprise JavaTM Bean。
12.一种用于在第一处理设备上运行复制的命名服务的方法,该方法包括下列步骤:
(A)从第二处理设备向第一处理设备发送第一信号类型的多个第一信号,所述第一信号的每一个表明在由第二处理设备提供的服务的示例中的变化;
(B)从第二处理设备向第一处理设备发送第二信号类型的一个第二信号;
(C)第一处理设备比较最近发送的第一信号和所述第二信号,以便确定是否已丢失所述多个第一信号中的一个;以及
(D)从第一处理设备向第二处理设备发送第三信号,表明所丢失的第一信号。
13.根据权利要求12所述的方法,其中:
所述第一信号的每一个包括一将该信号与所述第一类型的其它信号区分开来的信号识别号;以及
所述第二信号包括一表明最近发送的第一类型的信号的信号识别号。
14.根据权利要求12所述的方法,还包括下列步骤:
(E)从第二处理设备向第一处理设备发送对第三信号的响应;以及
(F)根据所述响应在第一处理设备上修改命名服务。
15.根据权利要求14所述的方法,其中:
对第三信号的响应表明在第二处理设备提供的服务的示例中的变化。
16.根据权利要求15所述的方法,其中:
对第三信号的响应是第一信号类型的信号。
17.根据权利要求14所述的方法,其中:
对第三信号的响应表明由第二处理设备提供的至少一个服务的至少一个示例。
18.根据权利要求17所述的方法,步骤F还包括步骤:
(F1)为每一个由对第三信号的响应所表明的示例创建引用,所述引用使得服务用户可以访问所述服务的示例。
19.根据权利要求18所述的方法,步骤F还包括步骤:
(F2)将所述引用添加到由所述服务的多个示例构成的命名服务部分。
20.一种用于创建复制的命名服务的方法,该方法包括下列步骤:
(A)定位初步的服务提供者,其中所述初步的服务提供者提供第一服务的第一示例;
(B)访问第一服务的第一示例,以定位至少一个额外的服务提供者,用于提供第一服务的随后的示例;
(C)向定位的每一个服务提供者发送信号;以及
(D)从至少一个所定位的服务提供者接收对所述信号的响应,其中所述响应表明由所述响应的服务提供者所提供的至少一个随后的服务的至少一个示例。
21.根据权利要求20所述的方法,其中:
第一服务是命名服务。
22.根据权利要求21所述的方法,其中:
命名服务是JavaTM命名和目录服务。
23.根据权利要求20所述的方法,其中:
通过域名命名服务查找表定位初步的服务提供者。
24.根据权利要求20所述的方法,其中:
通过stub访问第一示例。
25.根据权利要求20所述的方法,其中:
通过Enterprise JavaTM Bean访问第一示例。
26.一种包含复制的命名服务的分布式处理系统,包括:
第一命名服务,用于表明由第一处理设备提供的多个服务;
第一信号响应装置,与所述第一命名服务进行通信;
第二命名服务,用于表明由第二处理设备提供的多个服务;以及
第一信号生成装置,用于生成表明在第二处理设备所提供的服务的示例中的变化的第一信号,并将所述第一信号传达给第一信号响应装置,其中所述第一信号响应装置响应所述第一信号修改第一命名服务。
27.根据权利要求26所述的分布式处理系统,其中:
第一信号响应装置修改第一命名服务,将一引用结合到第一信号所表明的服务的示例中,其中所述引用使得服务用户可以访问所述服务的示例。
28.根据权利要求27所述的分布式处理系统,还包括:
第二信号响应装置,与所述第二命名服务进行通信;以及
第二信号生成装置,用于生成表明在第一处理设备所提供的服务的示例中的变化的第二信号,并将所述第二信号传达给第二信号响应装置,其中所述第二信号响应装置响应所述第二信号修改第二命名服务。
29.根据权利要求28所述的分布式处理系统,其中:
第二信号响应装置修改第二命名服务,将一引用结合到第二信号所表明的服务的示例中,其中所述引用使得服务用户可以访问所述服务的示例。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10716798P | 1998-11-05 | 1998-11-05 | |
US60/107,167 | 1998-11-05 | ||
US09/405,508 US6236999B1 (en) | 1998-11-05 | 1999-09-23 | Duplicated naming service in a distributed processing system |
US09/405,508 | 1999-09-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1338074A CN1338074A (zh) | 2002-02-27 |
CN1143220C true CN1143220C (zh) | 2004-03-24 |
Family
ID=26804472
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB998146773A Expired - Lifetime CN1143220C (zh) | 1998-11-05 | 1999-10-21 | 分布式处理系统中的复制命名服务 |
Country Status (8)
Country | Link |
---|---|
US (3) | US6236999B1 (zh) |
EP (1) | EP1137993A4 (zh) |
JP (1) | JP2002529854A (zh) |
KR (1) | KR100614265B1 (zh) |
CN (1) | CN1143220C (zh) |
AU (1) | AU772589B2 (zh) |
CA (1) | CA2349863C (zh) |
WO (1) | WO2000028424A1 (zh) |
Families Citing this family (83)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6581088B1 (en) * | 1998-11-05 | 2003-06-17 | Beas Systems, Inc. | Smart stub or enterprise javaTM bean in a distributed processing system |
US6236999B1 (en) * | 1998-11-05 | 2001-05-22 | Bea Systems, Inc. | Duplicated naming service in a distributed processing system |
US6571274B1 (en) * | 1998-11-05 | 2003-05-27 | Beas Systems, Inc. | Clustered enterprise Java™ in a secure distributed processing system |
US6763353B2 (en) | 1998-12-07 | 2004-07-13 | Vitria Technology, Inc. | Real time business process analysis method and apparatus |
US6654801B2 (en) * | 1999-01-04 | 2003-11-25 | Cisco Technology, Inc. | Remote system administration and seamless service integration of a data communication network management system |
US6834284B2 (en) * | 1999-08-12 | 2004-12-21 | International Business Machines Corporation | Process and system for providing name service scoping behavior in java object-oriented environment |
US6539383B2 (en) * | 1999-11-08 | 2003-03-25 | International Business Machines Corporation | Communication and interaction objects for connecting an application to a database management system |
US6694328B1 (en) * | 2000-01-13 | 2004-02-17 | International Business Machines Corporation | Method for creating queries on version objects |
IL140504A0 (en) * | 2000-02-03 | 2002-02-10 | Bandwiz Inc | Broadcast system |
US6738826B1 (en) | 2000-02-24 | 2004-05-18 | Cisco Technology, Inc. | Router software upgrade employing redundant processors |
US6952737B1 (en) * | 2000-03-03 | 2005-10-04 | Intel Corporation | Method and apparatus for accessing remote storage in a distributed storage cluster architecture |
US7428540B1 (en) | 2000-03-03 | 2008-09-23 | Intel Corporation | Network storage system |
US7506034B2 (en) * | 2000-03-03 | 2009-03-17 | Intel Corporation | Methods and apparatus for off loading content servers through direct file transfer from a storage center to an end-user |
US7281168B1 (en) | 2000-03-03 | 2007-10-09 | Intel Corporation | Failover architecture for local devices that access remote storage |
US7266555B1 (en) * | 2000-03-03 | 2007-09-04 | Intel Corporation | Methods and apparatus for accessing remote storage through use of a local device |
US7703107B2 (en) * | 2000-04-06 | 2010-04-20 | Infineon Technologies Ag | Virtual machine interface for hardware reconfigurable and software programmable processors |
US8020176B2 (en) * | 2000-04-06 | 2011-09-13 | Infineon Technologies Ag | Virtual machine interface for hardware reconfigurable and software programmable processors |
US6742054B1 (en) | 2000-04-07 | 2004-05-25 | Vitria Technology, Inc. | Method of executing a data transformation specification |
US7353180B1 (en) * | 2000-04-17 | 2008-04-01 | Accenture Llp | Supply chain/workflow services in a contract manufacturing framework |
US7277865B1 (en) | 2000-04-17 | 2007-10-02 | Accenture Llp | Information portal in a contract manufacturing framework |
US7139805B2 (en) * | 2000-05-30 | 2006-11-21 | Hewlett-Packard Development Company, L.P. | Scalable java servers for network server applications |
US6836806B1 (en) | 2000-06-01 | 2004-12-28 | Aerocast, Inc. | System for network addressing |
US6904460B1 (en) | 2000-06-01 | 2005-06-07 | Aerocast.Com, Inc. | Reverse content harvester |
US7213062B1 (en) | 2000-06-01 | 2007-05-01 | General Instrument Corporation | Self-publishing network directory |
AR028126A1 (es) * | 2000-06-01 | 2003-04-23 | Aerocast Com Inc | Interfaz grafica de usuario redimensionable |
US6879998B1 (en) | 2000-06-01 | 2005-04-12 | Aerocast.Com, Inc. | Viewer object proxy |
AU7693201A (en) * | 2000-07-27 | 2002-02-13 | Bea Systems Inc | System and method for concentration and load-balancing of requests |
US7685577B2 (en) * | 2000-09-01 | 2010-03-23 | Op40, Inc. | System and method for translating an asset for distribution over multi-tiered networks |
US7383355B1 (en) * | 2000-11-01 | 2008-06-03 | Sun Microsystems, Inc. | Systems and methods for providing centralized management of heterogeneous distributed enterprise application integration objects |
US7266556B1 (en) | 2000-12-29 | 2007-09-04 | Intel Corporation | Failover architecture for a distributed storage system |
GB0107967D0 (en) * | 2001-03-29 | 2001-05-23 | Ibm | Workload management of stateful program entities |
US20020144256A1 (en) * | 2001-03-30 | 2002-10-03 | Navin Budhiraja | Method of deployment for concurrent execution of multiple versions of an integration model on an integration server |
US20030140126A1 (en) * | 2001-03-30 | 2003-07-24 | Vitria Technology, Inc. | Method of deployment for concurrent execution of multiple versions of an integration model |
US7120896B2 (en) | 2001-10-31 | 2006-10-10 | Vitria Technology, Inc. | Integrated business process modeling environment and models created thereby |
US8650321B2 (en) * | 2001-07-24 | 2014-02-11 | Digi International Inc. | Network architecture |
US20030020948A1 (en) * | 2001-07-27 | 2003-01-30 | Jarvis Daniel Cook | Dynamically loaded applications in a printer |
US7113980B2 (en) * | 2001-09-06 | 2006-09-26 | Bea Systems, Inc. | Exactly once JMS communication |
US20030065761A1 (en) * | 2001-09-28 | 2003-04-03 | Nevton Cereja | System and method of creating and maintaining a replicated naming service to support a telecommunications network |
FR2831741B1 (fr) * | 2001-10-26 | 2003-12-19 | Thales Sa | Procedes et systemes d'enregistrement et lecture synchronisee de donnes provenant d'une pluralite d'equipements terminaux |
JP2003167862A (ja) * | 2001-11-30 | 2003-06-13 | Nec Corp | 分散オブジェクト・システムにおけるオブジェクトの所在を特定するための装置、方法及びプログラム |
US6950855B2 (en) * | 2002-01-18 | 2005-09-27 | International Business Machines Corporation | Master node selection in clustered node configurations |
US20030140058A1 (en) * | 2002-01-18 | 2003-07-24 | Vitria Technology, Inc. | Method and apparatus for sharing information between applications using common objects |
WO2003073206A2 (en) * | 2002-02-22 | 2003-09-04 | Bea Systems, Inc. | System and method for using a data replication service to manage a configuration repository |
WO2003073209A2 (en) * | 2002-02-22 | 2003-09-04 | Bea Systems, Inc. | System and method for software application scoping |
US7246358B2 (en) * | 2002-04-09 | 2007-07-17 | Sun Microsystems, Inc. | Methods, system and articles of manufacture for providing an extensible serialization framework for an XML based RPC computing environment |
US20040036191A1 (en) * | 2002-04-30 | 2004-02-26 | Rodda Philip A. | Method of making a fireproof panel |
EP1530769A1 (en) * | 2002-07-31 | 2005-05-18 | Truecontext Corporation | Contextual computing system |
CN100426808C (zh) * | 2002-08-21 | 2008-10-15 | 中兴通讯股份有限公司 | 一种实现板间对象通信的方法 |
EP1406171A1 (en) * | 2002-10-04 | 2004-04-07 | Hewlett-Packard Company | Data processing system and method |
US7774325B2 (en) * | 2002-10-17 | 2010-08-10 | Intel Corporation | Distributed network attached storage system |
JP2006519441A (ja) * | 2003-02-24 | 2006-08-24 | ビーイーエイ システムズ, インコーポレイテッド | サーバロードバランシング及びサーバアフィニティのためのシステム及び方法 |
WO2004077280A2 (en) * | 2003-02-27 | 2004-09-10 | Bea Systems, Inc. | System and method for communications between servers in a cluster |
US20080281950A1 (en) * | 2004-03-08 | 2008-11-13 | First Oversi Ltd | Method and Device for Peer to Peer File Sharing |
US7363539B1 (en) * | 2004-04-30 | 2008-04-22 | Sap Ag | Restoring communication sessions and components with state information |
US7062402B2 (en) * | 2004-05-19 | 2006-06-13 | Microsoft Corp | System and method for automatic testing of output device capabilities via electronic document |
US9122686B2 (en) * | 2004-05-27 | 2015-09-01 | Sap Se | Naming service in a clustered environment |
US7721256B2 (en) * | 2004-05-27 | 2010-05-18 | Sap Ag | Method and system to provide access to factories in a naming system |
US8028002B2 (en) | 2004-05-27 | 2011-09-27 | Sap Ag | Naming service implementation in a clustered environment |
US8898330B2 (en) * | 2004-05-28 | 2014-11-25 | Sap Se | Server node configuration using a configuration tool |
US7577959B2 (en) * | 2004-06-24 | 2009-08-18 | International Business Machines Corporation | Providing on-demand capabilities using virtual machines and clustering processes |
US20060031246A1 (en) * | 2004-08-04 | 2006-02-09 | Grayson Loren P | Universal database method and system |
US8185776B1 (en) * | 2004-09-30 | 2012-05-22 | Symantec Operating Corporation | System and method for monitoring an application or service group within a cluster as a resource of another cluster |
US8799242B2 (en) | 2004-10-08 | 2014-08-05 | Truecontext Corporation | Distributed scalable policy based content management |
US8090844B2 (en) * | 2004-10-08 | 2012-01-03 | Truecontext Corporation | Content management across shared, mobile file systems |
WO2006077481A1 (en) * | 2005-01-19 | 2006-07-27 | Truecontext Corporation | Policy-driven mobile forms applications |
US8327003B2 (en) * | 2005-02-03 | 2012-12-04 | International Business Machines Corporation | Handling backend failover in an application server |
US7587705B2 (en) * | 2005-04-29 | 2009-09-08 | Sap (Ag) | Calls and return calls using client interfaces |
US7669181B2 (en) * | 2005-04-29 | 2010-02-23 | Sap (Ag) | Client interfaces for packages |
US7634771B2 (en) * | 2005-04-29 | 2009-12-15 | Sap (Ag) | Object generation in packages |
FI20051137A0 (fi) * | 2005-11-09 | 2005-11-09 | Nokia Corp | Menetelmä hajautetun asiankäsittelyn muodostamiseksi ja suorittamiseksi viestintäjärjestelmässä |
US8140695B2 (en) * | 2005-12-12 | 2012-03-20 | International Business Machines Corporation | Load balancing and failover of distributed media resources in a media server |
US8015304B2 (en) * | 2005-12-12 | 2011-09-06 | International Business Machines Corporation | Method to distribute speech resources in a media server |
CN100442740C (zh) * | 2005-12-30 | 2008-12-10 | 华为技术有限公司 | 一种节点部署方法和节点通信系统 |
US7730478B2 (en) * | 2006-10-04 | 2010-06-01 | Salesforce.Com, Inc. | Method and system for allowing access to developed applications via a multi-tenant on-demand database service |
US20080270594A1 (en) * | 2007-04-27 | 2008-10-30 | Mcjilton Charles M | Method and system of separate file storage locations as unified file storage |
US7793140B2 (en) * | 2007-10-15 | 2010-09-07 | International Business Machines Corporation | Method and system for handling failover in a distributed environment that uses session affinity |
CN101997759B (zh) * | 2009-08-10 | 2013-06-05 | 中兴通讯股份有限公司 | 一种业务实现方法及业务系统 |
US8473783B2 (en) * | 2010-11-09 | 2013-06-25 | International Business Machines Corporation | Fault tolerance in distributed systems |
US8694822B2 (en) * | 2010-11-09 | 2014-04-08 | International Business Machines Corporation | Disaster recovery in a networked computing environment |
US8589471B2 (en) * | 2011-03-29 | 2013-11-19 | Bmc Software, Inc. | Dynamic dispatch for distributed object-oriented software systems |
US9237195B2 (en) * | 2012-04-27 | 2016-01-12 | Netapp, Inc. | Virtual storage appliance gateway |
US9262155B2 (en) | 2012-06-04 | 2016-02-16 | Oracle International Corporation | System and method for supporting in-band/side-band firmware upgrade of input/output (I/O) devices in a middleware machine environment |
US8930409B2 (en) * | 2012-10-15 | 2015-01-06 | Oracle International Corporation | System and method for supporting named operations in a distributed data grid |
Family Cites Families (56)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5155809A (en) * | 1989-05-17 | 1992-10-13 | International Business Machines Corp. | Uncoupling a central processing unit from its associated hardware for interaction with data handling apparatus alien to the operating system controlling said unit and hardware |
US6212557B1 (en) * | 1990-01-29 | 2001-04-03 | Compaq Computer Corporation | Method and apparatus for synchronizing upgrades in distributed network data processing systems |
CA2041992A1 (en) * | 1990-05-18 | 1991-11-19 | Yeshayahu Artsy | Routing objects on action paths in a distributed computing system |
CA2046723C (en) * | 1990-07-11 | 1998-11-24 | Robert Charles Pike | Distributed computing system |
CA2048306A1 (en) * | 1990-10-02 | 1992-04-03 | Steven P. Miller | Distributed configuration profile for computing system |
US5497463A (en) * | 1992-09-25 | 1996-03-05 | Bull Hn Information Systems Inc. | Ally mechanism for interconnecting non-distributed computing environment (DCE) and DCE systems to operate in a network system |
JPH0827769B2 (ja) * | 1992-10-30 | 1996-03-21 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 通信インターフェースの生成システム及びその方法 |
EP0604010B1 (en) * | 1992-12-21 | 1999-12-29 | Sun Microsystems, Inc. | Method and apparatus for subcontracts in distributed processing systems |
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 |
US5459837A (en) | 1993-04-21 | 1995-10-17 | Digital Equipment Corporation | System to facilitate efficient utilization of network resources in a computer network |
US5564070A (en) * | 1993-07-30 | 1996-10-08 | Xerox Corporation | Method and system for maintaining processing continuity to mobile computers in a wireless network |
JP3484779B2 (ja) * | 1994-10-12 | 2004-01-06 | 富士ゼロックス株式会社 | 名前サービス方式及び名前サービス方法 |
US5961582A (en) | 1994-10-25 | 1999-10-05 | Acorn Technologies, Inc. | Distributed and portable execution environment |
WO1996017306A2 (en) * | 1994-11-21 | 1996-06-06 | Oracle Corporation | Media server |
US5692180A (en) * | 1995-01-31 | 1997-11-25 | International Business Machines Corporation | Object-oriented cell directory database for a distributed computing environment |
US5701451A (en) * | 1995-06-07 | 1997-12-23 | International Business Machines Corporation | Method for fulfilling requests of a web browser |
US5794006A (en) * | 1995-08-18 | 1998-08-11 | Microsoft Corporation | System and method for editing content in an on-line network |
US5680461A (en) | 1995-10-26 | 1997-10-21 | Sun Microsystems, Inc. | Secure network protocol system and method |
AU1122997A (en) | 1995-11-07 | 1997-06-11 | Cadis, Inc. | Search engine for remote object oriented database management system |
US5819019A (en) * | 1995-12-01 | 1998-10-06 | Silicon Graphics, Inc. | System/method for recovering network resources in a distributed environment, via registered callbacks |
US5842219A (en) * | 1996-03-14 | 1998-11-24 | International Business Machines Corporation | Method and system for providing a multiple property searching capability within an object-oriented distributed computing network |
US5790548A (en) * | 1996-04-18 | 1998-08-04 | Bell Atlantic Network Services, Inc. | Universal access multimedia data network |
US5828847A (en) | 1996-04-19 | 1998-10-27 | Storage Technology Corporation | Dynamic server switching for maximum server availability and load balancing |
US6446070B1 (en) | 1998-02-26 | 2002-09-03 | Sun Microsystems, Inc. | Method and apparatus for dynamic distributed computing over a network |
US6938263B2 (en) | 1996-04-23 | 2005-08-30 | Sun Microsystems, Inc. | System and method for facilitating dynamic loading of “stub” information to enable a program operating in one address space to invoke processing of a remote method or procedure in another address space |
US6016505A (en) | 1996-04-30 | 2000-01-18 | International Business Machines Corporation | Program product to effect barrier synchronization in a distributed computing environment |
US5901227A (en) * | 1996-06-20 | 1999-05-04 | Novell, Inc. | Method and apparatus for implementing partial and complete optional key escrow |
US5862331A (en) * | 1996-06-21 | 1999-01-19 | Sun Microsystems, Inc. | Name service system and method for automatic updating on interconnected hosts |
US6014686A (en) * | 1996-06-21 | 2000-01-11 | Telcordia Technologies, Inc. | Apparatus and methods for highly available directory services in the distributed computing environment |
US5818448A (en) | 1996-07-02 | 1998-10-06 | Sun Microsystems, Inc. | Apparatus and method for identifying server computer aggregation topologies |
US5787442A (en) * | 1996-07-11 | 1998-07-28 | Microsoft Corporation | Creating interobject reference links in the directory service of a store and forward replication computer network |
US5832225A (en) * | 1996-07-12 | 1998-11-03 | Microsoft Corporation | Method computer program product and system for maintaining replication topology information |
US5774660A (en) | 1996-08-05 | 1998-06-30 | Resonate, Inc. | World-wide-web server with delayed resource-binding for resource-based load balancing on a distributed resource multi-node network |
ES2142564T3 (es) | 1996-08-20 | 2000-04-16 | Cit Alcatel | Procedimiento para administrar la especificacion de objetos. |
US5983351A (en) * | 1996-10-16 | 1999-11-09 | Intellectual Protocols, L.L.C. | Web site copyright registration system and method |
US5999988A (en) | 1997-03-31 | 1999-12-07 | Sun Microsystems, Inc. | Method and apparatus for generating and employing a run-time generated stub to reference an object in object oriented systems |
US6003065A (en) | 1997-04-24 | 1999-12-14 | Sun Microsystems, Inc. | Method and system for distributed processing of applications on host and peripheral devices |
US5968121A (en) * | 1997-08-13 | 1999-10-19 | Microsoft Corporation | Method and apparatus for representing and applying network topological data |
US5941954A (en) | 1997-10-01 | 1999-08-24 | Sun Microsystems, Inc. | Network message redirection |
US5966702A (en) * | 1997-10-31 | 1999-10-12 | Sun Microsystems, Inc. | Method and apparatus for pre-processing and packaging class files |
WO1999023571A1 (en) * | 1997-11-03 | 1999-05-14 | Inca Technology, Inc. | Automatically configuring network-name-services |
US6134588A (en) | 1997-11-12 | 2000-10-17 | International Business Machines Corporation | High availability web browser access to servers |
US6016496A (en) | 1997-11-20 | 2000-01-18 | International Business Machines Corporation | Method and apparatus for an object-oriented object for retrieving information from local and remote databases |
US6167427A (en) * | 1997-11-28 | 2000-12-26 | Lucent Technologies Inc. | Replication service system and method for directing the replication of information servers based on selected plurality of servers load |
US6175869B1 (en) | 1998-04-08 | 2001-01-16 | Lucent Technologies Inc. | Client-side techniques for web server allocation |
US6223202B1 (en) | 1998-06-05 | 2001-04-24 | International Business Machines Corp. | Virtual machine pooling |
US6078960A (en) | 1998-07-03 | 2000-06-20 | Acceleration Software International Corporation | Client-side load-balancing in client server network |
US6195680B1 (en) | 1998-07-23 | 2001-02-27 | International Business Machines Corporation | Client-based dynamic switching of streaming servers for fault-tolerance and load balancing |
US6963914B1 (en) | 1998-09-01 | 2005-11-08 | Lucent Technologies Inc. | Method and apparatus for retrieving a network file using a logical reference |
US6092178A (en) * | 1998-09-03 | 2000-07-18 | Sun Microsystems, Inc. | System for responding to a resource request |
US6324580B1 (en) * | 1998-09-03 | 2001-11-27 | Sun Microsystems, Inc. | Load balancing for replicated services |
US6111572A (en) | 1998-09-10 | 2000-08-29 | International Business Machines Corporation | Runtime locale-sensitive switching of calendars in a distributed computer enterprise environment |
US6286047B1 (en) * | 1998-09-10 | 2001-09-04 | Hewlett-Packard Company | Method and system for automatic discovery of network services |
US6236999B1 (en) * | 1998-11-05 | 2001-05-22 | Bea Systems, Inc. | Duplicated naming service in a distributed processing system |
US6430578B1 (en) * | 1998-12-04 | 2002-08-06 | Sun Microsystems, Inc. | Name service for network management architecture |
US6594702B1 (en) * | 1999-02-25 | 2003-07-15 | Oracle International Corporation | Managing the size and accessibility of a name service |
-
1999
- 1999-09-23 US US09/405,508 patent/US6236999B1/en not_active Expired - Lifetime
- 1999-10-21 WO PCT/US1999/024642 patent/WO2000028424A1/en active IP Right Grant
- 1999-10-21 CA CA002349863A patent/CA2349863C/en not_active Expired - Lifetime
- 1999-10-21 AU AU12177/00A patent/AU772589B2/en not_active Expired
- 1999-10-21 EP EP99971939A patent/EP1137993A4/en not_active Ceased
- 1999-10-21 JP JP2000581540A patent/JP2002529854A/ja active Pending
- 1999-10-21 KR KR1020017005755A patent/KR100614265B1/ko active IP Right Grant
- 1999-10-21 CN CNB998146773A patent/CN1143220C/zh not_active Expired - Lifetime
-
2001
- 2001-03-09 US US09/803,467 patent/US6928457B2/en not_active Expired - Lifetime
-
2005
- 2005-04-11 US US11/103,054 patent/US7480679B2/en not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CA2349863A1 (en) | 2000-05-18 |
US6928457B2 (en) | 2005-08-09 |
US7480679B2 (en) | 2009-01-20 |
KR100614265B1 (ko) | 2006-08-23 |
US20050203986A1 (en) | 2005-09-15 |
CA2349863C (en) | 2008-05-06 |
US20020023173A1 (en) | 2002-02-21 |
WO2000028424A1 (en) | 2000-05-18 |
CN1338074A (zh) | 2002-02-27 |
JP2002529854A (ja) | 2002-09-10 |
AU1217700A (en) | 2000-05-29 |
KR20010099793A (ko) | 2001-11-09 |
US6236999B1 (en) | 2001-05-22 |
EP1137993A4 (en) | 2006-09-27 |
AU772589B2 (en) | 2004-04-29 |
EP1137993A1 (en) | 2001-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1143220C (zh) | 分布式处理系统中的复制命名服务 | |
CN1265295C (zh) | 集团型企业java分布式处理系统 | |
CN1122229C (zh) | 包含消息传送核心的分布式处理系统 | |
CN1313919C (zh) | 分布式环境中包括智能存根或企业java豆模块的系统 | |
CN1208482A (zh) | 分布式处理 | |
CN1554056A (zh) | 具有同步回退处理特征的事务处理的系统和方法 | |
CN1647042A (zh) | 定制软件抽象的方法 | |
CN1298503A (zh) | 分布式系统中的动态查找服务 | |
CN1805345A (zh) | Web服务工作流处理器 | |
CN1662011A (zh) | 使用元数据定义映射来构建组件应用程序的系统和方法 | |
CN1258704C (zh) | 基于网格环境的多计算引擎协同方法 | |
US20030208641A1 (en) | Software components as virtual processors | |
AU2006252006B2 (en) | Clustered enterprise Java in a secure distributed processing system | |
CN1745394A (zh) | 万维网服务合同选择 | |
Roche | Web Services for Translation | |
AU2003244549A1 (en) | Clustered enterprise java in a secure distributed processing system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
C10 | Entry into substantive examination | ||
PB01 | Publication | ||
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: California, USA Patentee after: ORACLE INTERNATIONAL Corp. Address before: California, USA Patentee before: BEA SYSTEMS, Inc. |
|
CX01 | Expiry of patent term | ||
CX01 | Expiry of patent term |
Granted publication date: 20040324 |