CN1298506A - 便于访问查询服务的方法和系统 - Google Patents

便于访问查询服务的方法和系统 Download PDF

Info

Publication number
CN1298506A
CN1298506A CN99805369A CN99805369A CN1298506A CN 1298506 A CN1298506 A CN 1298506A CN 99805369 A CN99805369 A CN 99805369A CN 99805369 A CN99805369 A CN 99805369A CN 1298506 A CN1298506 A CN 1298506A
Authority
CN
China
Prior art keywords
service
program
steps
accepting
further comprise
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.)
Pending
Application number
CN99805369A
Other languages
English (en)
Inventor
R·谢夫勒
A·M·沃尔蕾斯
J·H·瓦尔多
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US09/044,826 external-priority patent/US6832223B1/en
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of CN1298506A publication Critical patent/CN1298506A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/42Loop networks
    • H04L12/427Loop networks with decentralised control
    • H04L12/433Loop networks with decentralised control with asynchronous transmission, e.g. token ring, register insertion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/465Distributed object oriented systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • G06F9/548Object oriented; Remote method invocation [RMI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/46Indexing scheme relating to G06F9/46
    • G06F2209/462Lookup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5015Service provider selection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种便于经查询服务访问服务的方法和系统。查询服务定义了服务的网络目录并且存储了对这些服务的引用。需要在网络上使用服务的客户机访问查询服务,由查询服务返回便于用户访问服务的承接信息。客户机使用承接信息访问服务。

Description

便于访问查询服务的方法和系统
相关申请
本申请是1996年4月23日提交的美国专利申请No.08/636,706的延续部分,它作为参考文献包含在文本中。
现引证下列美国专利申请作为本申请依据并归并于本申请中。
1998年2月26日申请的发明名称为“分布式计算系统”(“DistributedComputing System”)的临时美国专利申请U.S.Ser.No.:60/076,048。
上述相同日期申请的发明名称为“用于租用存储的方法和系统”(“Methodand System for Leasing Storage”)(标注有代理人案卷号No.:06502.0011-01000)的美国专利申请U.S.Ser.No.:09/044,923。
上述相同日期申请的发明名称为“分布式系统中用于委派证租用的方法、装置和产品”(“Method,Apparatus,and Product for Leasing of DelegationCertificates in a Distributed System”)(标注有代理人案卷号No.:06502.0011-02000)的美国专利申请U.S.Ser.No.:09/044,838。
上述相同日期申请的发明名称为“分布式系统中用于团体会员资格租用的方法、装置和产品”(“Method,Apparatus,and Product for Leasing of GroupMembership in a Distributed System”)(标注有代理人案卷号No.:06502.0011-03000)的美国专利申请U.S.Ser.No.:09/044,834。
上述相同日期申请的发明名称为“故障检测的租用”(“Leasing forFailure Detection”)(标注有代理人案卷号No.:06502.0011-04000)的美国专利申请U.S.Ser.No.:09/044,916。
上述相同日期申请的发明名称为“基于事件的系统中用于传输行为的方法”(“Method for Transporting Behavior in Event Based System”)(标注有代理人案卷号No.:06502.005400000)的美国专利申请U.S.Ser.No.:09/044,933。
上述相同日期申请的发明名称为“分布式系统中对象的延迟重组和事件通知的远程装载”(“Deferred Reconstruction of Objects and Remote Loadingfor Event Notification in a Distributed System”)(标注有代理人案卷号No.:06502.0062-01000)的美国专利申请U.S.Ser.No.:09/044,919。
上述相同日期申请的发明名称为“用于远程定义法启用的方法和装置”(“Methods and Apparatus for Remote Method Invocation”)(标注有代理人案卷号No.:06502.0102-00000)的美国专利申请U.S.Ser.No.:09/044,938。
上述相同日期申请的发明名称为“用于确定性散列识别远程定义法的方法和系统”(“Method and System for Deterministic Hashes to identify RemoteMethods”)(标注有代理人案卷号No.:06502.0103-00000)的美国专利申请U.S.Ser.No.:09/045,652。
上述相同日期申请的发明名称为“用于确定分布式系统内远程对象状态的方法和装置”(标注有代理人案卷号No.:06502.0104-00000)的美国专利申请U.S.Ser.No.:09/044,790。
上述相同日期申请的发明名称为“分布式系统中用于执行与远程进程调用相关联的处理的可下载智能代理”(“Downloadable Smart Proxies forPerforming Processing Associated with a Remote Procedure Call in aDistributed System”)(标注有代理人案卷号No.:06502.0105-00000)的美国专利申请U.S.Ser.No.:09/044,930。
上述相同日期申请的发明名称为“远程定义法的暂停和继续”(“Suspension and Continuation of Remote Methods”)(标注有代理人案卷号No.:06502.0106-00000)的美国专利申请U.S.Ser.No.:09/044,917。
上述相同日期申请的发明名称为“数据库中用于多入口以及多模板匹配的方法和系统”(“Method and System for Multi-Entry and Multi-TemplateMatching in a Database”)(标注有代理人案卷号No.:06502.0107-00000)的美国专利申请U.S.Ser.No.:09/044,835。
上述相同日期申请的发明名称为“数据库中用于原地修改的方法和系统”(“Method and System for In-Place Modifications in a Database”)(标注有代理人案卷号No.:06502.0108)的美国专利申请U.S.Ser.No.:09/044,839。
上述相同日期申请的发明名称为“数据库中用于类型安全属性匹配的方法和系统”(“Method and System for Typesafe Attribute Matching in aDatabase”)(标注有代理人案卷号No.:06502.0109-00000)的美国专利申请U.S.Ser.No.:09/044,945。
上述相同日期申请的发明名称为“分布式系统中动态查询服务”(“DynamicLookup Service in a Distributed System”)(标注有代理人案卷号No.:06502.0110-00000)的美国专利申请U.S.Ser.No.:09/044,931。
上述相同日期申请的发明名称为“分布式系统中提供可下载代码用于与一设备通信的装置和方法”(“Apparatus and Method for Providing DownloadableCode for Use in Communicating with a Device in a Distributed System”)(标注有代理人案卷号No.:06502.0112-00000)的美国专利申请U.S.Ser.No.:09/044,939。
上述相同日期申请的发明名称为“分布式系统中用于动态验证信息的装置和方法”(“Apparatus and Method for Dynamically Verifying Informationin a Distributed System”)(标注有代理人案卷号No.:06502.0114-00000)的美国专利申请U.S.Ser.No.:09/044,932。
1998年2月26日申请的发明名称为“用于网络上动态分布式计算的方法和装置”(“Method and Apparatus for Dynamic Distributed Computing Overa Network”)的美国专利申请U.S.Ser.No.:09/030,840。
上述相同日期申请的发明名称为“永久性共享存储空间的交互式设计工具”(“An Interactive Design Tool for Persistent Shared MemorySpaces”)(标注有代理人案卷号No.:06502.0116-00000)的美国专利申请U.S.Ser.No.:09/044,936。
上述相同日期申请的发明名称为“基于多形态令牌的控制”(“PolymorphicToken-Based Control”)(标注有代理人案卷号No.:06502.0117-00000)的美国专利申请U.S.Ser.No.:09/044,934。
上述相同日期申请的发明名称为“基于堆栈的访问控制”(“Stack-BasedAccess Control”)(标注有代理人案卷号No.:06502.0118-00000)的美国专利申请U.S.Ser.No.:09/044,915。
上述相同日期申请的发明名称为“基于堆栈的安全要求”(“Stack-BasedSecurity Requirements”)(标注有代理人案卷号No.:06502.0119-00000)的美国专利申请U.S.Ser.No.:09/044,944。
上述相同日期申请的发明名称为“安全要求的按定义法指定”(“Per-Method Designation of Security Requirements”)(标注有代理人案卷号No.:06502.0120-00000)的美国专利申请U.S.Ser.No.:09/044,837。
发明领域
本发明通常涉及数据处理系统,并且特别涉及便于访问查询服务的方法和系统。
背景技术
在现代“企业”计算中,多台个人计算机、工作站以及诸如海量存储子系统、网络打印机和与公共电话系统的接口之类的其他设备一般被互连入一个或多个计算机网络。个人计算机和工作站由单个用户用来完成可能存储在网络海量存储子系统内的数据和程序的处理。在这种布局下,作为客户机工作的个人计算机/工作站一般从网络海量存储子系统下载数据和程序供处理。此外,个人计算机或工作站可以使处理后的数据上载至网络海量存储子系统供存储,上载至打印机供打印,上载至电话接口供在公共电话系统上发送等等。在这种布局中,由于网络海量存储子系统、网络打印机和电话接口被用来为网络内所有客户机的请求服务,所以它们的运行相当于服务器。通过以这种方式组织网络,服务器很容易被网络内的所有个人计算机/工作站使用。这种网络可以延伸至相当大的区域,个人计算机/工作站通过诸如电线或光纤之类的通信链路互连。
除了从服务器下载处理信息以外,在处理程序时客户机可以由特定例程和进程(一般的“进程”)结合客户机提供的某些“参数”信息的服务器计算机远程启动处理。在服务器处理进程之后,它向客户机提供处理结果,随后客户机可在处理操作中使用。一般在这种“远程进程调用”中,程序将利用本地“承接程序”(“stub”),当调用时,承接程序将请求转送至实现特定进程的服务器,接收结果并且提供给程序。一般情况下,承接程序必须与程序一起编译,其中调用远程进程所需的信息必须在编译时确定而不是在程序运行时确定。由于客户机程序使用的承接程序是静态的,所以当编译程序时它可能是应当提供给程序的能够确定的中最接近的。因此由于提供给程序的承接程序与程序执行时所调用远程进程要求之间的不匹配可能导致误差和低效。
发明内容
提供了一种新型改进的系统和方法,便于获得和动态加载承接程序,使得运行在一个地址空间内的程序能够远程调用另一地址空间内的方法或进程的处理,从而使得承接程序可以由程序在运行和根据需要加载而非在编译程序时静态地确定。实际上,可以从提供远程方法或进程的资源中获取加载的承接程序,因此它(承接程序)可以精确地定义远程方法或进程的调用要求。由于承接程序可以在程序运行时定位和动态加载而不是在程序编译时静态确定,所以可以使运行时误差和低效最小,这些误差和低效源于所提供的承接程序与被调用的远程方法或进程的要求之间的不匹配。在本发明的另一实施例中,从查询服务中获取承接程序以提供对查询服务中定义的服务的访问。
简而言之,按照本发明另一实施例的方法和系统便于经查询服务对服务进行访问。查询服务定义了服务的网络目录并且存储这些服务的引用。希望在网络上使用服务的客户机访问查询服务,查询服务返回便于用户访问服务的承接程序的信息。客户机利用承接程序信息来访问服务。
附图简述
本发明在所附权利要求中特别指明。通过以下结合附图的描述可以更好地理解本发明上述和进一步的优点,其中:
图1为包括按照本发明构造的布局的计算机网络的功能方框图,它便于获取、动态加载和使用“承接程序”以使运行在一个地址空间内的程序能够调用另一地址空间内远程方法或进程的处理;
图2和3为图1所示布局完成的操作的流程图,图2示出了与获取和动态加载承接程序信息有关的操作而图3示出了与使用承接程序信息调用远程方法或进程处理的操作。
图4为按照本发明的查询服务示意图;
图5为按照本发明的将承接程序加入查询服务的流程图。
图6为按照本发明的从查询服务搜索承接程序的方法的流程图。
实施发明的较佳方式
图1为包括按照本发明构造的布局的计算机网络10的示意图,它便于获取、动态加载和使用“承接程序”以使运行在一个地址空间内的程序能够调用另一地址空间内远程方法或进程的处理,在这里该方法或进程代表网络服务。参见图1,计算机网络10包括多台客户机计算机11(1)-11(N)(通常用标号11(n)标识)、多台服务器计算机12(1)-12(M)(通常用标号11(m)标识),它们通过通信链路14代表的网络互连。此外,网络10可以包括至少一个名称服务器计算机13,它也可以与通信链路14相连,其用途在下面描述。作为惯例,客户机计算机11(n)中至少一部分是个人计算机或计算机工作站,每台一般包括系统单元、视频显示器单元和诸如键盘和鼠标之类的操作者输入设备(所有这些未单独示出)。服务器计算机12(m)和名称服务器计算机13一般也包括系统单元(未单独示出)并且还可以包括视频显示器单元和操作者输入设备。
客户机计算机11(n)、服务器计算机12(m)和名称服务器计算机13都是普通的程序存储计算机架构。系统单元一般包括处理、存储器、海量存储设备(例如磁盘和/或磁带存储单元)以及其他单元(未单独示出),包括网络接口设备15(n)、16(m),用于使各自的计算机与通信链路14接口。视频显示器单元使计算机可以向操作人员显示处理后的数据和处理状态,而操作者输入设备可以使操作人员输入数据并控制计算机的处理。计算机11(n)和12(m)和13将消息形式的信息经通信链路14在各自的网络接口设备15(n)、16(m)之间转送。
在一个实施例中,网络10以“客户机-服务器”配置组织,其中一台或多台计算机(如图1所示的计算机12(m))作为服务器运行,而其他计算机(如图1所示的计算机11(n))作为客户机运行。在一个方面中,作为“文件服务器”的一台或多台服务器计算机12(m)可以包括大容量海量存储设备,它可以存储客户机计算机经通信连接13检索的用于处理操作的程序和数据副本。客户机计算机11(n)有时也可以在服务器计算机12上存储数据,后面由用于处理操作的它(存储数据的客户机计算机)或其他客户机计算机检索。此外,作为“计算服务器”的一台或多台服务器计算机12(m)可以完成某些处理操作以响应来自客户机计算机11(n)的远程请求,并将处理结果返回请求的客户机计算机11(n)供它们(即请求的客户机计算机)后续处理使用。在任一情况下,服务器计算机一般可以与客户机计算机11(n)类似,包括系统单元、视频显示器单元和操作者输入设备,并且以类似客户机计算机的方式被操作人员在数据处理操作中使用。另外,至少一些服务器计算机可以只包括处理、存储器、海量存储和网络接口单元,用于接收和处理来自客户机计算机的搜索、存储或远程处理请求,并且产生响应。显而易见的是,客户机计算机11(n)也可以完成服务器计算机12(m)完成的上述操作,同样服务器计算机12(m)也可以完成客户机计算机11(n)完成的上述操作。
通信链路14代表的网络可以由任意数量的网络类型组成,客户机计算机11(n)、服务器计算机12(m)和名称服务器计算机13可以在网络上通信,网络包括例如一般由单个企业内部保持的局域网(LAN)和广域网(WAN)、公共电话系统、因特网和其他在各种计算机上传送数字数据的网络。网络可以利用任意数量的通信介质实现,包括例如有线、光纤、无线链路和/或其他介质,用于载带代表图1所示各种计算机之间信息的信号。如上所述,每种计算机一般包括网络接口,它将各计算机与通信链路14相连并且可以发送和接收其上的信息。
按照本发明的系统便于获取和动态加载“承接程序”信息,从而使运行在一个地址空间内的程序能够调用另一地址空间内的远程方法或进程的处理,另一地址空间可以位于调用程序所在的计算机上,也可能位于不同的计算机上。对于在JavaTM编程语言(如James Gosling,Bill Joy,Guy Steele的“JavaTM语言规范”所述,Addison-Wesley,1996(以下称为“Java语言规范”),它作为参考文献包含在本文中)中提供的程序将引用参考文献,程序在Java虚拟机提供的执行环境下处理。Java虚拟机在Lindholm和Yellin的“Java虚拟机规范”(Addison-Wesley,1996)中定义,它作为参考文献包含在本文中。如Java语言规范所述,Java编程语言中的程序定义了“类”和“接口”。类用来定义一个或多个方法或进程,每个可以通过接口引用而被调用。类可以与“超类”相关或者扩展至“超类”,并且包含所有的接口和超类的方法,并且还可包括新增的接口和/或方法。类也可以具有一个或多个子类(由此包含每个子类的子类),每个子类包含并扩展至各自的超类。
接口提供了声明一组方法的机制。在该连接中,接口识别每个由该接口例如用名称声明的每个方法、识别提供给方法的形参的数据类型、由方法返回值的数据类型以及方法处理期间可能出现意外事件的标识符的方法。类可以指示特定接口的实现,并且在这种连接中将包括所有接口中被声明方法处理中使用的程序代码。此外,不同的类可以指示它们实现相同的接口,并且每个具有将用于接口中声明的所有方法的处理的程序代码,但是每个类中提供的用于处理方法的程序代码可以与用于处理同一方法的其他类内提供的程序代码不同;因此接口提供了可以声明一组方法而无需提供处理方法中使用的进程指示的机制。接口可以独立于实现利用接口调用的方法的特定类而被声明。调用方法的类和实际实现该方法的类无需共享公共的超类。
在Java程序处理期间,如Java虚拟机规范所述,客户机计算机11(n)提供了执行环境20用于解释Java程序。Java虚拟机包括类加载器21,在控制模块19的控制下,它可以在程序执行期间将类(图1中用标号22标识)的实例动态地链接入运行程序的执行环境。在该操作中,控制模块19有效地使类加载器能够搜索未实例化的类(通常用标号23标识),并进行实例化和在作为调用各类23实现的方法的Java程序运行时间上将它们作为类实例22链接入执行环境的地址空间。此外,类加载器21可以在其中一些类实例22不需要时予以丢弃或者保存到存储器内。显而易见,如果类范例22已经被丢弃,则在后面需要时它由类加载器21重新加载。
按照本发明的系统提供的布局便于程序进行远程调用,该程序由服务器计算机12(m)上的类实现的方法的客户机计算机11(n)在执行环境20内执行。在执行方法中,服务器计算机12(m)还将提供执行环境24用于在控制模块28的控制下处理Java方法。在这种操作中,提供执行环境21的Java虚拟机包括类加载器25(与类加载器21类似),它在控制模块28的控制下可以动态链接类26的实例,使得方法可以在执行环境24下处理,并链接可能需要处理远程调用方法的其他类的实例(也用标号26标识)。在该操作中,控制模块28有效地使类加载器25能够从多个通常用标号27标识的未实例化类中检索被调用方法的未实例化类,对其(即被方法调用的未实例化类)实例化并将类26链接入执行环境。此外,类加载器25可以在方法处理终止时丢弃类实例26。显而易见,如果类实例26已经被丢弃,则如果后面需要则它可以被类加载器25重新调用。
名称服务器计算机13的结构通常与服务器计算机12(m)类似,并且不再单独描述。
为了便于方法的远程调用,客户机计算机执行环境21的控制模块19利用标号30标识的一个或多个承接类(stud class)实例,它们作为各种类实例22(包括正在调用远程方法的类实例)被处理时执行环境21部分提供。每个类实例30是未实例化承接类31的实例,服务器计算机12(m)可以为其已经“输出”的各种类实例26和未实例化的类27而对实例进行保持,即服务器计算机12(m)使其被客户机计算机11(n)用于所提供的方法的远程调用。未实例化承接类31包括特定远程未实例化类27(它实现调用的远程方法)的接口完全集,并且还提供或调用便于访问由远程类实现的远程方法的方法。未实例化承接类31在被实例化并作为承接类实例30提供给客户计算机11(n)的执行环境20时有效提供调用Java程序的执行环境20的控制模块19所需的信息,从而在相关类实现的远程方法被运行在特定执行环境下的Java程序调用时,处理远程方法并将返回值提供给调用的Java程序。在一个实施例中,向执行环境20提供承接类实例的布局与前述Waldo等人的专利申请中所述的类似。
此外,服务器计算机12(m)提供了已经被服务器计算机12(m)输出的特定类和方法的框架32和有关服务器计算机12(m)如何加载各类和初始化特定方法处理的信息。此外,服务器计算机12(m)包含了在网络上注册服务的查询服务400。查询服务400将在下面讨论。
当类实例调用服务器计算机12(m)保持的远程方法时,它将向远程方法的承接类实例30提供各种参数值,远程方法在处理中使用该数值。如果在与调用Java程序相同的同一计算机上实现远程方法,则当调用的Java程序调用远程方法时,计算机可以建立一个与执行环境20一样的执行环境,使执行环境类加载器能加载和实例化类,该类实现与类实例22类似的类实例的方法并利用远程调用中调用的类实例提供的参数值处理远程方法。在方法处理完成之后,处理远程方法的执行环境将向被调用的远程方法的承接类实例30提供结果,该结果反过来又将向调用远程方法的特定类实例22提供。
如果客户机计算机11(n)和服务器计算机12(m)在不同的物理计算机上实现,则将完成类似的操作。在这种情况下,正在处理调用类实例22的客户机计算机11(n)响应远程调用,在调用类实例22的执行环境20的控制模块19的控制下将利用合适的承接类实例30在通信链路14代表的网络上与实现远程方法的服务器计算机12(m)通信,从而使其(即服务器计算机12(m))能够建立实现远程方法的类的执行环境24并利用类加载器25将类的实例作为类实例26加载。此外,还利用合适的承接类实例30的客户机计算机11(n)将经网络14向服务器计算机12(m)提供任何所需的参数值。随后,服务器计算机12(m)将利用这样提供的参数值处理远程方法以生成结果值,它经网络被转送至客户机计算机11(n),特别是转送至合适的承接类实例30。客户机计算机11(n)在从网络接收到结果之后将向调用的类实例22提供这些值供处理。
在任何情况下,当客户机计算机的执行环境20的控制模块19确定已经接收到对远程对象的引用,如果当接收引用时它确定承接类实例30不存在,则它试图从例如实现远程方法的服务器计算机12(m)获取承接类实例30,并且使承接类实例30能够动态地加载入调用类实例22的执行环境20内。对远程对象的引用可以接收为例如另一远程方法调用的返回值或者在另一远程方法调用期间接收的参数。承接类实例可以类似将类实例22加载入执行环境22中的方式将承接类实例动态地加载入执行环境。执行环境20被提供承接类加载器33,它在控制模块19的控制下试图根据执行环境内处理的类实例22的需要寻找和加载承接类实例30。保持实现被远程调用方法的类的特定服务器计算机12(m)的位置可以包括在来自调用类实例的调用中或者可以被承接类加载器33通过另一由客户机计算机11(n)保持的机制(未画出)获知。
但是如果未告知承接类加载器3哪一个服务器计算机12(m)保持了实现远程调用方法的类,则它可以利用名称服务器计算机13提供识别。识别可以包括用来识别服务器计算机12(m)的标识符或者被网络14使用并且由服务器计算机12(m)响应的其他资源。示意性的标识符包括例如识别服务器计算机和/或资源的网络地址或者如果网络14是或包含因特网则标识符是可以提供标识的万维网资源或“统一资源定位器”(URL),URL提供了统一机制用于识别因特网上可用的资源。实现远程方法的服务器计算机12(m)响应来自客户机计算机11(n)的请求,将提供承接类实例30,客户机计算机11(n)可以将其加载入执行环境21以能够启动远程调用。
如上所述,如果承接类加载器33不知道哪一个服务器计算机12(m)实现可以被调用的远程方法(因此不知道哪一个计算机提供远程调用的承接类代码),则它可以在控制模块19的控制下从名称服务器13中获取标识。在这种操作中,承接类加载器33可以使用先前提供的缺省承接类在这种情况下使用。缺省类承接在通过调用Java程序时使处理调用Java程序的计算机能够与名称服务器计算机13通信以获取可用于调用远程方法的信息。该操作基本上与名称服务器计算机13处理的远程方法的调用一致,远程方法包含了识别远程调用的类和方法的参数,并且使名称服务器13能够向请求的客户机计算机11(n)提供可以处理方法的服务器计算机12(m)的标识和有助于与服务器计算机12(m)通信并调用特定方法的其他信息。显而易见,名称服务器13将保持一个“出口”资源表(未示出),即诸如可以被链接至网络14的客户机计算机11(n)所用的类和方法的资源和诸如提供这些资源的特定服务器计算机12(m)的标识之类的信息,它们有助于客户机计算机11(n)利用出口的资源。
显而易见的是,名称服务器计算机13可以现有技术中公知的多种方式创建和保持出口资源表。例如,名称服务器计算机13可以周期性地经网络14广播出口资源信息的请求,保持出口资源的各种服务器计算机12(m)可以作出响应;在这种情况下,名称服务器计算机13可以根据来自服务器计算机12(m)的响应建立出口资源表。另外,保持出口资源的各种服务器计算机12(m)的每一个可以周期性地广播有关保持的出口资源的信息,并且名称服务器计算机13可以根据来自服务器计算机的广播更新其出口资源。此外,可以由系统操作人员建立名称服务器计算机的出口资源表并且固定不变直到他或她对其更新。
在任何情况下,名称服务器计算机13响应缺省承接启动的请求而提供的信息包括例如提供实现被调用远程服务的类的计算机12(m)的标识的信息、计算机(即实现远程方法的计算机)要求提供所需承接类代码的特定信息等。在从名称服务器计算机13接收了信息之后,处理调用的Java程序的计算机11(n)可以在控制模块19的控制下利用信息与计算机(即实现远程方法的计算机)通信以获取承接类的信息,并且随后可以如上所述调用方法。
在这种背景下,客户机计算机11(n)、服务器计算机12(m)和名称服务器13(如果需要)在接收到对远程方法的引用时完成的与获取和动态加载承接类实例有关的操作将结合图2的流程图描述。此外将结合图3的流程图描述由客户机计算机11(n)和服务器计算机完成的与利用承接类实例的方法的远程调用有关的操作。首先参见图2,执行环境控制模块19将在接收到对远程方法的引用时初始确定执行环境20内是否存在合适的承接类实例以便远程方法的调用(步骤100)。如果控制模块19确定远程方法的执行环境内存在这种承接类实例30,则它可以继续其他操作(步骤101)。但是如果控制模块19在步骤101内确定远程方法的执行环境20内不存在承接类实例30,则控制模块19将利用承接类加载器33来定位和加载类的承接类实例30以处理远程方法。在这种情况中,控制模块19将首先确定包含资源定位器的类实例22的调用是否识别保持被调用方法的类的服务器计算机12(m)或其他资源或者控制模块19或承接类加载器33是否被提供这种资源定位器(步骤102)。如果控制模块19在步骤中作出正面的判断,则进入步骤103,使承接类加载器33能够启动与识别的服务器计算机12(m)的通信以获取类和被调用方法的承接类实例(步骤103)。当承接类加载器33从服务器计算机12(m)接收承接类实例30时,它将承接类实例30加载入类实例22的执行环境20,类实例22启动步骤100中的远程方法调用调用(步骤104)。在被引用远程方法的承接类实例30被加载入执行环境之后,可以如图3所述调用方法。
返回步骤102,如果控制模块19确定来自类实例22的调用不包括识别保持被调用方法的类的服务器计算机12(m)或其他资源,并且控制模块19或承接类加载器33未被提供这种资源定位器,则可以指示“类未找到”的意外事件,此时控制模块19可以调用意外事件处理器。意外事件处理器可以完成任意数量的恢复操作,例如包括仅仅通知控制模块19远程方法无法定位并且确定后续的操作。
另外,控制模块19可以试图从名称服务器计算机13或网络14(图1中用名称服务器计算机13标识)提供的其他资源,利用调用(例如缺省承接类实例30)获取资源定位器。对缺省承接类实例30的调用将包括类和被调用方法的识别和名称服务器计算机13(m)的名称。利用缺省承接类实例30,控制模块19将使计算机11(n)能够启动与名称服务器13的通信以获取保持被调用类和方法的服务器计算机12(m)的标识符(步骤110)。来自缺省承接类实例30的通信基本上对应远程方法调用,如果存在与远程调用的类和方法相关的标识,或者提供了没有识别与类和方法相关的服务器计算机12(m),该方法使名称服务器计算机能够为服务器计算机12(m)提供标识。在步骤110的通信期间,缺省承接类接口30作为参数值将提供被调用类和方法的标识。
如果存在与远程调用的类和方法相关的标识,或者指示了没有识别与类和方法相关的服务器计算机12(m),则名称服务器计算机13响应来自缺省承接类实例30的通信,将处理作为远程方法的请求(步骤111),其结果信息包括服务器计算机12(m)的识别。在完成方法之后,名称服务器计算机13将启动与缺省承接类实例30的通信以向缺省承接类实例30提供信息(步骤112)。
在从名称服务器计算机13接收结果信息之后,在控制模块19的控制下缺省的承接类实例将结果信息传送至承接类加载器33(步骤113)。此后,承接类加载器33确定来自名称服务器计算机的结果信息是否包含服务器计算机12(m)的标识或者指示没有识别出与类相关的服务器计算机12(m)(步骤114)。如果承接类加载器33确定结果信息包含了服务器计算机12(m)的识别,则它(即承接类加载器33)将返回步骤101以启动与被识别的服务器计算机12(m)的通信从而获取可以被调用的类和方法的承接类实例。另一方面,如果承接类加载器33在步骤114中确定名称服务器计算机已经提供了没有服务器计算机12(m)被识别为与可以被调用的类和方法相关的指示,则可以指示“类未发现”意外事件(步骤115)并且如上所述一个意外事件处理器被调用。
如上所述,如图2所述被搜索和加载的承接类实例30可以用于方法的远程调用。与方法的远程调用相关的客户机计算机11(n)完成的操作将结合图3的流程图描述。如图3所示,当类实例22调用方法时,控制模块19可以首先确认被调用远程方法的执行环境内是否存在承接类实例30(步骤120)。如果在步骤120中作出了正面确认,则承接类实例30将被用于远程调用,并且在远程调用中将提供用于处理远程方法的参数值(步骤121)。随后,可被调用的远程方法的承接类实例30将用来启动与保持远程方法的类的服务器计算机12(m)通信(步骤122),在该过程中,将通过传送用于处理远程方法中的参数值。显而易见,如果处理方法的服务器计算机12(m)与调用方法的客户机计算机12(n)是同一物理计算机,则可以在物理计算机内处理的执行环境下进行通信。另一方面,如果处理方法的服务器计算机12(m)与调用方法的客户机计算机12(n)不是同一物理计算机,则通过客户机计算机和服务器计算机各自的网络接口15(n)和网络14进行通信。
响应来自步骤122中承接类实例的通信,服务器计算机12(m)如果需要则建立保持调用方法的类的执行环境24并且利用框架32提供的信息来创建该类的类实例26(步骤123)。此后,服务器计算机12(m)在控制模块28的控制下处理与承接类实例30提供的参数值有关的方法(步骤124)。在完成方法处理之后,服务器计算机12(m)也在控制模块28的控制下启动与客户机计算机承接类实例30的通信以向承接类实例提供结果信息(步骤125)。与上述步骤102类似的方式,如果处理方法的服务器计算机12(m)与调用方法的客户机计算机12(n)是同一物理计算机,则可以在物理计算机内处理的执行环境24和20下进行。另一方面,如果处理方法的服务器计算机12(m)与调用方法的客户机计算机12(n)不是同一物理计算机,则通过客户机计算机和服务器计算机各自的网络接口16(m)和15(n)和网络14进行通信。在承接类接口实例30从服务器计算机接收结果信息之后,它可以向启动远程方法调用的类实例22提供结果信息(步骤126),并且类实例22可以在控制模块19的控制下继续处理。
返回步骤120,如果控制模块19在该步骤中确定它没有适于调用远程方法的承接类实例30,则可以在此时调用意外事件处理器(步骤127)以完成选定的错误恢复操作。
按照本发明的方法和系统提供了多个优点。特别是,它们提供了新的便于动态加载承接程序使一个执行环境下运行的程序可以远程调用另一执行环境下的方法处理的系统和方法,从而使承接程序可以在运行和需要时由程序加载。在承接程序与程序一起被编译并由此静态确定程序何时编译的系统中,它们(承接程序)可以实现远程接口(由程序接收的远程引用所支持)实际集合的子集,由于向程序提供的承接程序与程序运行时被调用的远程进程需求之间的不匹配,可能引起误差和低效率。但是由于在动态承接程序加载系统和方法中被加载的承接程序可以从提供远程方法的特定资源获得,所以它(承接程序)可以在运行时定义提供给调用程序的接口的精确集合,从而避免由提供的承接程序与远程调用方法需求之间不匹配引起的不兼容。
显而易见,可以对上述布局作多种修改。例如虽然执行环境20被描述为当接收远程方法引用时获取和加载承接类实例以便调用远程方法,但是显然承接类实例可以在远程方法开始调用时获得和加载。当接收引用时获取和加载远程方法的承接类实例具有的优点是(Ⅰ)当远程方法实际调用时承接类实例将存在于执行环境中,以及(Ⅱ)如果无法定位合适的承接类实例,则可以提前通知程序或操作人员。另一方面,当调用方法时获取和加载远程方法的承接类实例可能导致调用的延迟直到找到正确的承接类实例,如果方法实际上未被调用,即使已接收到对它的引用也无需定位和加载承接类实例。
显而易见,按照本发明的系统可以总体构造或者根据专用硬件或通用计算机系统或者它们的组合部分地构造,其任何部分可以由合适的程序控制。任何程序可以整体或部分包含以普通方式存储在系统内的部分,或者经网络或其他传送机制以普通方式整体或部分提供给系统。此外,显然,系统可以借助操作人员利用直接与系统相连或者可以经网络或其他传送信息机制向系统传送信息的输入单元(未画出)提供的信息进行操作和/或控制。
本发明的替换实施例
虽然前面描述了动态检索和加载承接程序的本发明的实施例,但是按照本发明的替换实施例也加载和检索查询服务中的对象,这里的对象包含便于与特定服务通信的代码(承接信息)或者对象包含完成服务的代码。虽然下述替换实施例从代表承接程序的查询服务中下载对象,但是下述技术同样可应用于下载实际完成服务的对象。查询服务定义了网络的服务目录并且存储了对这些服务的引用。希望在网络上使用服务的用户访问查询服务,它将便于用户访问服务的承接信息返回。
查询服务可以包含网络中所用的所有服务的子集,在同一日期提交的题为“分布式系统内动态查询服务”的共同待批的美国专利申请No._中称为“Djinn”,该申请已经转让给了本发明的受让人并且作为参考文献包含在本文中。“Djinn”提的是网络提供的一个或多个服务或资源的逻辑分组。与网络相连的设备可以动态地加入Djinn或者动态地从Djinn中去除。当加入时,设备向Djinn提供零或多个服务并且可以利用Djinn当前提供的所有服务。Djinn提供的服务由查询服务定义,它提供了共同方式来寻找和利用Djinn的服务。
查询服务是Djinn或其他提供服务范围的计算机网络底层结构的基本部分。它是程序在Djinn内部找到可用服务的主装置并且是用于提供承接程序,通过承接程序用户和管理员可以发现Djinn内服务并与之进行交互作用的基础。
参见参见图4,它更为详细地示出了查询服务400。服务器计算机12(m)还包括下面详述的查询服务400。位于如图1所示服务器12(m)上的查询服务400对“服务项目”410-418的集合进行保持。每个服务项目410-418代表Djinn内可用服务实例,并且每项服务项目410包含唯一识别服务项目的服务ID402、提供程序用来访问服务的代码的承接程序404和描述服务的属性集合406。
在向查询服务400注册了新服务之后,查询服务给出了新服务项目410,一个唯一的服务ID402,一般为数字。该服务ID402可以在后面用来访问特定的服务,避免在问询时不必要的搜索或定位几个匹配服务项目。
当创建新服务时(例如当新设备被加入Djinn时),服务向查询服务400登记其本身,提供承接程序440由客户机用来访问服务和与服务相关的属性406的初始集合。例如打印机可以包含指示速度(页/分钟)、分辨率(点/英寸)、颜色和是否支持多工打印机的属性。查询服务管理员(未画出)还可以增加新的属性,例如服务的物理位置和公共名。此外,如果服务遇到需要管理员关注的问题(例如打印机色粉用完),则服务可以增加指示发生什么问题的属性。在一个按照本发明的实现方案中,属性作为多条目存储,并且属性的增加、修改和删除可以利用多重模板和技术进行,参见题为“在数据库中原地修改的方法和系统”的共同待批的美国专利申请No.__,作为参考文献包含在本文中。
属性的单个集合表示为类的一个实例,每个属性为类的一个域。打印机的属性集的一个实例为:
public class Printer {
        Integer ppm;       //      pages per minute
        Integer dpi;       //      resolution in dots per inch
        Boolean duplex;    //      supports two-sided printing
        Boolean color;     //      color or black-only
类提供了集合和单个属性的强类型定义。
服务项目410的属性406也可以标识为一组属性集。服务项目410的属性406可以包含不同属性值的同类的多个实例以及不同类的多个实例。例如服务项目410的属性406可能具有名称类的多个实例,每个以不同语言给出服务的公共名称加上位置类、类型类或各种其他特定服务类的实例。加入属性以描述打印机的实例可以是名称、类型或位置:
public class Name implements Entry{
       String name;         //  the user-friendly name of the service
       String description;  //  free-form description of the service
       String language;     //  language (e.g.,English,French) used inthe above}
  public class Type implements Entry{
       String type;    //   the general type of service
       String vendor;  //   vendor of product that implements theservice
       String model;   //   model number/name of product
       String version; //   version number of product}
  public class Location implements Entry{
       Integer floor;  //   what floor the service is on
       String building;//   what building it′s in
       String room;   //    what room it′s in}
在该实例中,服务项目410的属性406将是一组包含打印机、名称、类型和位置类实例的属性,每个类包括各自的属性。但是值得指出的是,属性所用的方案并不局限于这些例子。
需要特定类型服务的程序(包括其他服务)可以采用查询服务400来找到用来访问服务的承接程序。可以根据服务类型以及服务所附的特定属性进行匹配。例如,客户机可以通过请求对应所需服务的承接类型或者通过诸如特定位置或打印速度之类的某些属性搜索打印机。在一个按照本发明的实现方案中,属性作为多个项目存储,并且可以利用多个模板进行属性匹配,参见题为“在数据库中原地修改的方法和系统”的共同待批的美国专利申请No.__,作为参考文献包含在本文中。
访问采用动态承接程序加载和检索的查询服务
参见图4,对应服务的承接程序404在查询服务400内注册并且被客户机计算机11(n)用来远程访问服务方法。该承接程序也可以是“智能代理”。将承接程序嵌入代码的智能代理更有效地帮助客户机实现承接和远程调用的方法。智能代理通常在实际调用承接程序前后高效完成某些本地计算。例如,智能代理可能包含对信息进行高速缓存的代码,所以如果客户机再次对信息提出请求,则代之以返回服务器获取信息的是可以高速缓存答案并且迅速返回。如果情况要求这样,则智能代理也可以将从客户机接收的参数变换为其他类型并随后传送变换类型。智能代理概念在题为“在分布式系统中完成与远程程序调用相关的处理的可下载智能代理”的共同待批的美国专利申请No.中作了进一步的描述,该专利已经转让给了本发明的受让人,它作为参考文献包含在本文中。
图5示出了按照本发明的系统用来将服务承接加入查询服务的步骤的流程图。当设备加入网络中时,它一般向查询服务注册服务(步骤500)。在与查询服务400注册之后,设备向查询服务提供承接程序404,并且还可以向查询服务给出相关的属性(步骤502)。作为响应,查询服务400将前述唯一的服务ID402(一般为数字)分配给向查询服务注册的服务(步骤504)。一旦设备向查询服务400提供了承接程序404和属性406,并且查询服务将唯一的服务ID402分配之后,设备完成向查询服务的服务注册(步骤506)。在向查询服务400注册服务之后,客户机可以利用查询服务获得访问注册服务所需的承接信息。
图6示出了按照本发明的系统和方法用来从查询服务下载服务的步骤的流程图。在一个实现方案中,客户机计算机11(n)向具有查询服务400的服务器12(m)发送服务请求(步骤600)。请求来自客户机计算机11(n)上类实例22的远程方法调用,并且请求的服务可以如同服务38驻留在服务器12(Ⅰ)上那样驻留在远程服务器上。在按照本发明的一个实现方案中,客户机计算机11(n)可以从查询服务400请求一个或多个服务。客户机的请求以特定服务ID402、承接程序404的类型或者一组属性406或者它们的组合的形式出现(步骤602)。在响应请求中,控制19使承接类加载器33定位来自服务器12(m)的对应承接程序404。为此,控制19使得承接类加载器33启动与服务器12(m)的通信以获取服务的承接程序404。
在从客户机计算机11(n)接收到请求之后,服务器12(m)中的控制28搜索对应请求服务的承接程序404的查询服务400(步骤604)。如果没有发现匹配,控制28返回空值(步骤606和608)。否则,如果它定位了对应客户机计算机11(n)试图访问的服务的承接程序404,则服务器12(m)将承接程序返回位于客户机计算机上的承接类加载器33(步骤612)。如果有不止一个的承接程序定位为匹配客户机的请求(步骤610),则在按照本发明的一个实施例中,返回任一承接程序(步骤616)。在另一实现方案中,客户机请求不止一个的服务,服务器12(m)返回所要求的承接程序数以及它们的属性(步骤614和618)。
当承接类加载器33接收承接程序404时,承接类加载器将其加载入执行环境20。在加载之后,可以远程调用服务38。调用服务38的远程处理的承接信息的使用是以图3所示相同的方式实现。
通常情况下,类实例22可以采用承接程序404来访问服务器12(Ⅰ)上的服务38。当类实例22需要使用对应返回承接程序404的服务38时,控制19确认执行环境内存在承接程序404。如果这样,类实例22随后可以利用承接程序404来启动与保持有服务38的服务器12(Ⅰ)的通信,并且参数被送至服务器38。
查询服务的实现是动态加载和检索承接信息以使运行在一个地址空间内的程序可以调用另一地址空间内进程处理的一种应用。利用动态承接程序在查询服务上加载的实现方案使得客户机可以接收承接信息以便直接利用该服务。与先前的查询服务不同,按照本发明的查询服务返回直接访问服务所需的代码。利用这种方式的动态加载承接信息使得客户机接收便于在远程服务器上利用服务所需的所有代码。
前述描述限定了本发明的特定实施例。但是显然可以作出各种变化和改动。所附权利要求的目的是覆盖在本发明精神和范围内的这些变化和修改。

Claims (27)

1.一种在数据处理系统中用于访问与查询服务相关的网络服务的方法,其特征在于包含以下步骤:
接收查询服务访问其中一个网络服务的请求;以及
返回代码以便访问一个网络服务。
2.如权利要求1所述的方法,其特征在于进一步包括以下步骤:
利用返回代码访问网络服务。
3.如权利要求1所述的方法,其特征在于返回代码的步骤包括以下步骤:
返回承接程序。
4.如权利要求1所述的方法,其特征在于返回代码的步骤包括以下步骤:
返回智能代理。
5.如权利要求1所述的方法,其特征在于接收步骤包括以下步骤:
接收访问网络服务的请求从而使得用服务类型标识网络服务。
6.如权利要求1所述的方法,其特征在于接收步骤包括以下步骤:
接收访问一个网络服务的请求从而使得用服务标识号来标识一个网络服务。
7.如权利要求1所述的方法,其特征在于接收步骤包括以下步骤:
接收访问一个网络服务的请求从而使得用一个网络服务属性来标识一个网络服务。
8.如权利要求1所述的方法,其特征在于返回代码的步骤包括以下步骤:
返回多个与多个匹配请求的网络服务相关的承接程序。
9.如权利要求8所述的方法,其特征在于返回多个承接程序的步骤包括以下步骤:
返回与每个承接程序相关的属性。
10.一种在具有多个服务的查询服务的数据处理系统中的方法,其特征在于包含以下步骤:
向查询服务发送访问其中一个服务的请求;以及
响应请求接收便于使用该服务的代码。
11.如权利要求10所述的方法,其特征在于进一步包括以下步骤:
利用接收代码该服务。
12.如权利要求10所述的方法,其特征在于接收代码的步骤包括以下步骤:
接收便于访问访问服务的承接程序。
13.如权利要求10所述的方法,其特征在于接收代码的步骤包括以下步骤:
接收便于访问服务的智能代理。
14.一种在具有第一客户机的计算机和带包含用于访问相关服务的服务承接程序的查询服务的第二计算机的数据处理系统中的方法,其特征在于包含以下步骤:
由客户机向识别其中一个相关要被访问的服务的查询服务发送请求;
接收查询服务的请求;
搜索查询服务以得到所识别的服务;
将与识别的服务相关的服务承接程序返回客户机;
由客户机接收服务承接程序;
将服务承接程序加载入客户机的地址空间以提供用于调用识别的服务的服务承接程序;以及
由客户机利用承接程序访问识别的服务。
15.如权利要求14所述的方法,其特征在于发送步骤包括以下步骤:
为要返回的不止一个服务发送请求,并且返回步骤进一步包括以下步骤:
向客户机返回不止一个的承接程序以响应请求。
16.如权利要求14所述的方法,其特征在于搜索步骤包括以下步骤:
如果没有找到匹配请求的服务则返回空值。
17.一种带多种网络服务的分布式系统,其特征在于包含:
带具有便于访问网络服务的承接程序的查询服务的服务器计算机;以及
带向查询服务发送其中一个对应网络服务的承接程序的请求的程序的客户机计算机,它接收承接程序并利用接收的承接程序访问网络服务。
18.如权利要求17所述的分布式系统,其特征在于客户机计算机利用远程进程调用机制接收承接程序。
19.一种具有第一客户机的计算机和带包含用于访问相关服务的服务承接程序的查询服务的第二计算机的系统,其特征在于包含:
由客户机向识别其中一个要访问的相关服务的查询服务发送请求的装置;
接收查询服务的请求的装置;
为得到识别的服务搜索查询服务的装置;
将与识别的服务相关的服务承接程序返回客户机的装置;
由客户机接收服务承接程序的装置;
将服务承接程序加载入客户机的地址空间以提供用于调用识别的服务的服务承接程序的装置;以及
由客户机利用承接程序访问识别的服务的装置。
20.一种包含控制数据处理系统的指令的计算机可读介质,指令使系统完成访问包含在查询服务中的网络服务的方法,所述方法包含以下步骤:
由查询服务接收访问其中一个网络服务的请求;以及
返回代码以便访问其中一个网络服务。
21.如权利要求20所述的计算机可读介质,其特征在于方法进一步包括以下步骤:
利用返回的代码访问网络服务。
22.如权利要求20所述的计算机可读介质,其特征在于返回步骤包括以下步骤:
返回承接程序。
23.如权利要求20所述的计算机可读介质,其特征在于返回步骤包括以下步骤:
返回智能代理。
24.一种包含控制数据处理系统的指令的计算机可读介质,指令使系统完成访问包含在查询服务中的网络服务的方法,所述方法包含以下步骤:
向查询服务发送访问服务的请求;以及
响应请求,接收代码以便使用其中一个网络服务。
25.如权利要求24所述的计算机可读介质,其特征在于方法进一步包括以下步骤:
利用接收的代码访问服务。
26.如权利要求24所述的计算机可读介质,其特征在于接收步骤包括以下步骤:
接收便于访问服务的承接程序。
27.如权利要求24所述的计算机可读介质,其特征在于接收步骤包括以下步骤:
接收便于访问服务的智能代理。
CN99805369A 1998-02-26 1999-02-25 便于访问查询服务的方法和系统 Pending CN1298506A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US7604898P 1998-02-26 1998-02-26
US60/076,048 1998-02-26
US09/044,826 US6832223B1 (en) 1996-04-23 1998-03-20 Method and system for facilitating access to a lookup service
US09/044,826 1998-03-20

Publications (1)

Publication Number Publication Date
CN1298506A true CN1298506A (zh) 2001-06-06

Family

ID=26722037

Family Applications (1)

Application Number Title Priority Date Filing Date
CN99805369A Pending CN1298506A (zh) 1998-02-26 1999-02-25 便于访问查询服务的方法和系统

Country Status (5)

Country Link
EP (1) EP1058884A1 (zh)
JP (1) JP2002505474A (zh)
CN (1) CN1298506A (zh)
AU (1) AU2787899A (zh)
WO (1) WO1999044134A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102291446A (zh) * 2003-10-23 2011-12-21 微软公司 向应用程序通知状态变化的灵活体系结构

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6757729B1 (en) * 1996-10-07 2004-06-29 International Business Machines Corporation Virtual environment manager for network computers
US6711157B1 (en) * 1999-08-24 2004-03-23 Telefonaktiebolaget L M Ericsson (Publ) System and method of creating subscriber services in an IP-based telecommunications network
JP2002132739A (ja) 2000-10-23 2002-05-10 Nec Corp スタブ検索ローディングシステム及び方法、サーバ装置、クライアント装置並びにコンピュータ可読記録媒体
US7002559B2 (en) 2000-11-13 2006-02-21 Anoto Ab Method, system and product for information management
SE523112C2 (sv) 2001-07-05 2004-03-30 Anoto Ab Förfaringssätt för kommunikation mellan en användarenhet som har möjlighet att läsa information från en yta, och servrar som exekverar tjänster som stöder användarenheten
US6907444B2 (en) 2001-09-12 2005-06-14 Hewlett-Packard Development Company, L.P. System and method to automatically obtain a service
US7080089B2 (en) * 2003-03-12 2006-07-18 Microsoft Corporation Customization of process logic in a software system
CA2604896C (en) * 2005-04-18 2012-04-03 Research In Motion Limited System and method of data source detection
JP2008287357A (ja) * 2007-05-15 2008-11-27 Toshiba Corp サービス提供システム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5557798A (en) * 1989-07-27 1996-09-17 Tibco, Inc. Apparatus and method for providing decoupling of data exchange details for providing high performance communication between software processes
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
US5991823A (en) * 1996-06-26 1999-11-23 Sun Microsystems, Inc. Low overhead object adaptor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102291446A (zh) * 2003-10-23 2011-12-21 微软公司 向应用程序通知状态变化的灵活体系结构
CN102291446B (zh) * 2003-10-23 2014-11-26 微软公司 向应用程序通知状态变化的灵活体系结构

Also Published As

Publication number Publication date
JP2002505474A (ja) 2002-02-19
WO1999044134A1 (en) 1999-09-02
EP1058884A1 (en) 2000-12-13
AU2787899A (en) 1999-09-15

Similar Documents

Publication Publication Date Title
US6209029B1 (en) Method and apparatus for accessing data sources in a three tier environment
US6442565B1 (en) System and method for transmitting data content in a computer network
CN1145896C (zh) 用于处理小服务器的装置和方法
CN101408899B (zh) 一种网站多数据源切换方法和装置
CN1298503A (zh) 分布式系统中的动态查找服务
US7275243B2 (en) Mobile download system
CN1197027C (zh) 计算机网络的分布式宿主构架,网页供应和内容传送方法
CN1123836C (zh) 一种用于完成一环球网浏览器的请求的服务代理系统及其方法
JP4729172B2 (ja) 宣言型パラダイムをサポートするステートレスなウェブ環境におけるトランザクションを実行するための方法および装置
US5758069A (en) Electronic licensing system
CN100337235C (zh) 访问数据库的方法及装置
US20030084120A1 (en) Software framework for web-based applications
CN1601526A (zh) 用于在计算机网络内搜索的方法和设备
US20030020746A1 (en) System and method for dynamically generating a web page
CN1140500A (zh) 分布式数据库系统
US20060184568A1 (en) Having a single set of object relational mappings across different instances of the same schemas
CN1784680A (zh) 搜索条件的逐渐放宽
CN1750470A (zh) 数据共享系统、方法以及软件工具
CN1645330A (zh) 用于应用程序分布式管理的启用网格的虚拟机的方法和系统
CN1610890A (zh) 用于配置计算系统的系统、方法和计算机程序产品
CN1537298A (zh) 用于经由打印服务器通过网络进行打印的系统和方法
CN1577322A (zh) 管理数据处理系统中的应用文件的方法和装置
CN1516839A (zh) 个性化服务器统一用户特征集
EP1194846A1 (en) Network proxy for devices with limited resources
US20030033415A1 (en) System for and method of storing and elaborating user preferences

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C01 Deemed withdrawal of patent application (patent law 1993)
WD01 Invention patent application deemed withdrawn after publication