分布式系统中的动态查找服务的制作方法

文档序号:6418914阅读:223来源:国知局
专利名称:分布式系统中的动态查找服务的制作方法
技术领域
本发明一般地涉及数据处理系统,尤其涉及分布式系统中的动态查找服务。
背景技术
查找服务包括网络服务位于分布式系统中哪里的指示,分布式系统由多个在网络(例如局域网、宽域网或因特网)中连接起来的机器,如计算机和相关联外围设备组成。“网络服务”是指在网络上可访问的资源、数据或功能性。通常,对于每种服务,查找服务包括被客户机(例如一个程序)用于访问该服务(例如打印机)的地址。
传统的查找服务是静态的,在增加新服务或是删除现有服务而需要对查找服务进行更新时,使查找服务脱线,使得查找服务不可访问,然后通过系统管理员手工更新查找服务。其查找服务脱线的时间期间,分布式系统中的客户机不能访问查找服务和任何其网络服务。
传统查找服务的另一个限制是,在更新时,不能使客户机知道对查找服务的更新直至他们明确地执行刷新操作为止,它将最新的服务信息下载到客户机。然而,在这种刷新以前,如果客户机请求不再可以提供的服务,会发生引起客户机死机的差错。此外,在刷新以前,客户机不知道最近已经增加到查找服务的任何新服务。因此,需要改进分布式系统的查找服务。
发明概要按照本发明的系统提供一种改进的查找服务,它允许动态增加和删除服务。这一查找服务允许自动地更新,即增加和删除可提供的服务,无需用户的介入。结果,查找服务的客户可以在发生更新的同时继续利用查找服务及其相关服务。另外,查找服务提供一种通知机制,客户可以利用它接收何时更新查找服务的通知。通过接收这一通知,客户能够避免试图访问不再提供的服务以及一旦将新的服务增加到查找服务便能够利用它们。
按照本发明的方法,提供数据处理系统中的一种方法,数据处理系统具有与服务相关联的查找服务。该方法接收查找服务的请求通知何时更新查找服务、确定何时更新查找服务、以及在确定更新查找服务时产生一通知。
按照本发明的方法,提供数据处理系统中的一种方法,数据处理系统具有与服务相关联的查找服务。该方法把查找服务被更新时得到通知的请求发送到查找服务,以及接收查找服务已经被更新的指示。
按照本发明的系统,提供一种数据处理系统,包括存储器和处理器。存储器包括含有可提供使用的服务的指示的查找服务、更新查找服务的第一客户机、和在第一客户机更新查找服务的同时利用查找服务的第二客户机。处理器使查找服务、第一客户机和第二客户机运行。
按照本发明的系统,提供一种数据处理系统,包括存储器和处理器。存储器包括可供使用的服务的指示的查找服务和客户机。查找服务接收查找服务何时被更新的通知的请求、确定查找服务何时被更新、以及产生当查找服务被更新时的通知。客户机把查找服务被更新时得到通知的请求发送到查找服务。处理器使客户机和查找服务运行。
按照本发明的系统,提供一种包括数据结构的计算机可读存储器装置。这一数据结构用于访问与可供使用的网络服务相关联的查找服务。数据结构包括供客户机用于登记注册查找服务使用的通知方法,当查找服务被更新时接收来自查找服务的通知。
附图简述这里引入的并构成本说明一部分的附图示出本发明的一种实施方案,与说明相结合,用于说明本发明的优点和原理。在附图中

图1示出适合于实施本发明的方法和系统的分布式系统。
图2示出图1中所示计算机的更详细方框图。
图3A和3B示出当客户机利用图1中所示查找服务时执行的步骤的流程图。
图4示出当执行与事件相关联处理时由图1所示查找服务执行的步骤的流程图。
图5示出含有本发明的数个装置的会议室。
图6示出显示屏显示图标,代表在图5的会议室中可供使用的服务。
图7示出显示屏,显示由图5会议室中计算机提供的可供使用服务。
本发明的详细描述本发明的方法和系统提供一种改进的查找服务,它允许动态增加、删除服务。照此,服务的增加和删除是自动地进行的,没有用户的介入,查找服务的客户机可以在发生对查找服务的更新的同时继续使用该服务。另外,客户机可以登记注册查找服务,接收何时更新查找服务的通知。结果,当更新发生时,所有已登记注册的客户机接收更新的通知,使得客户机能够避免试图访问不再提供的服务以及使用最近增加到查找服务的服务。
分布式系统的概述本发明的方法和系统是在具有不同部件,包含硬件和软件的分布式系统(“示例的分布式系统”)中操作。示例的分布式系统(1)允许系统的用户共享许多设备的网络上的服务和资源;(2)给程序员提供工具和编程模式,他们允许开发稳固安全的分布式系统;(3)简化管理分布式系统的任务。为了实现这种目标,示例的分布式系统使用JavaTM编程环境,允许以无缝方式将代码和数据从设备移动到设备。于是,示例的分布式系统在Java编程环境的上层,并利用这一环境的特征,包括由它提供的安全性和由它提供的强类型。Java编程环境在Jaworski的Java 1.1开发人员指南,Sams.net(1997)中作了更清楚地描述,在此将其引作参考。
在示例的分布式系统中,不同的计算机和设备被联合到对用户而言表现为单个系统中。通过表现为单个系统,示例的分布式系统提供访问的简单性和可以由单个系统提供的共享能力而不放弃个人计算机或工作站的灵活性和个性化响应。示例的分布式系统可以包含数千个设备,由在分散在世界各地但是在委托、管理和策略的基本注意事项上达成一致的人操作。在示例的分布式系统中存在由一个或多个设备提供的服务的不同逻辑组,每个这种逻辑组被称为Djinn。“服务”指能够由用户、程序、设备或另一服务能够访问以及可以计算、与存储相关联、与通信相关联、或者涉及提供对另一用户访问的资源、数据或功能性。作为Djinn的部分提供的服务的例子包括象打印机、显示器和磁盘的设备;诸如应用程序或实用程序的软件;诸如数据库和文件的信息;和系统的用户。
用户和设备二者都可以连接Djinn。当连接Djinn时,用户或设备增加零或多个设备到Djinn,可以访问它包含的任何一种服务,受安全性约束。因此,设备和用户联合到Djinn中,共享对其服务的访问。Djinn的服务作为Java编程环境的对象可编程地显现,这可以包括其它对象,以不同编程语言编写的软件部件,或硬件设备。服务具有限定该服务能够请求的操作的界面,服务的类型确定编排该服务的界面。
图1示出示例的分布式系统100,包括通过网络108互连的计算机102、计算机104和设备106。设备106可以是诸如打印机、传真机、存储设备、输入设备、计算机或其它设备的数个设备中的任何一个。网络108可以是局域网、宽域网或因特网。尽管图中仅示出两个计算机和一个设备作为实施例的分布式系统100的组成,但是,本领域的专业技术人员将会理解,示例的分布式系统100可以包括附加的计算机或设备。
图2更详细地示出计算机102,表明示例的分布式系统100的数个软件部件。本领域的专业技术人员将会理解,计算机104或设备106可以是类似配置的。计算机102包括存储器202、辅助存储设备204、中央处理单元(CPU)206、输入设备208和视频显示器210。存储器202包括查找服务212、发现服务器214和JavaTM运行期系统216。Java运行期系统216包括JavaTM远程方法启用系统(RMI)218和JavaTM虚拟机220。辅助存储设备204包括JavaTM空间222。
如上所述,示例的分布式系统100基于Java编程环境,因此利用Java运行系统216。Java运行系统216包括JavaTM应用编程界面(API),允许程序在Java运行系统的上层运行,以独立平台的方式访问不同系统功能,包括主操作系统的窗口能力和网络能力。由于Java API提供Java运行系统216被停留于的所有操作系统上的单个共用API,在Java运行系统顶层运行的程序以独立平台的方式运行,不管操作系统或主平台的硬件配置。Java运行系统216作为由Sun Microsystems公司可提供的JavaTM软件开发工具。
Java虚拟机器220也便于平台独立性。Java虚拟机220的作用象绝对计算机器一样,以字节代码的形式接收程序的指令以及通过动态地将他们转换为执行形式(如目标码),以及执行他们。RMI 218通过允许对象在一个计算机或设备上执行,调用另一个计算机或设备上对象的方法而便于远程方法启用。RMI和Java虚拟机二者也是作为Java软件开发工具的一部分提供的。
查找服务212定义为由特定Djinn可提供的服务。即,可以存在一个以上的Djinn,因此在示例的分布式系统100中存在一个以上的查找服务。查找服务212包括Djinn内每个服务的一个对象,每个对象包括便于访问相应服务的各种方法。查找服务212及其访问在题为“便于访问查找服务的方法和系统”的美国专利继续申请号__中更详细地描述,该专利申请以前已引作参考。
发现服务214检测在称为引导和连接或发现的处理期间何时将新服务增加到示例的分布式系统100,以及何时检测这种新服务,发现服务器将对查找服务212的参照传送到新设备,以致于新设备可以用查找服务登记注册其服务并变为Djinn的成员。登记注册后,新设备变为Djinn的成员,结果,它可以访问查找服务212中所包含的所有服务,其登记注册的服务可以被Djinn的其它成员访问。引导和连接的处理在题为“在分布式系统中设备通信用的提供可下载代码的装置和方法”的美国专利继续申请号__中更详细地描述,该专利申请以前已引作参考。
Java空间222是由示例的分布式系统100中程序存储对象所使用的对象资源库。程序使用Java空间222永久存储对象以及使他们可访问示例的分布式系统中的其它设备。Java空间在1997年11月17日提交的题为“采用多形态入口和入口匹配的数据库系统”的美国专利继续申请08/971,529中更详细地描述,该专利申请转让给同一受让人,在此将其引作参考。本领域的专业技术人员将会理解,示例的分布式系统100可以包括许多查找服务、发现服务器和Java空间。
尽管本发明的系统和方法描述为在示例的分布式系统和Java编程环境中操作,但是,本领域专业技术人员应当理解本发明可以在其它系统和其它编程环境中实现。另外,尽管本发明的各个方面描述为存储在存储器中,但是,本领域专业技术人员应当理解这些方面可以存储在其它类型计算机可读媒体上,或者从中读出,如象硬盘、软盘或CD-ROM的辅助存储设备;来自因特网的载波;或者RAM或ROM的其它形式。Sun、Sun Microsystems、Sun Logo、Java和基于Java商标是Sun Microsystems公司在美国和其它国家的商标或注册商标。
查找服务定义查找服务提供Djinn中可供使用的服务的中心登记注册。这个查找服务是程序寻找Djinn内服务的主要机制以及是提供用户界面的基础,通过界面用户和管理员能够发现Djinn的服务并与其交互作用。
查找服务维持服务项目的平面采集。采集是平面的,其中服务项目并不形成分层。每个服务项目代表Djinn中可供使用的服务的实例(instance)。服务项目包括一个(代码)存根(stub)(如果服务是作为远程对象实施的)或者一个连续对象(如果服务是存储在查找服务中的本地对象),程序用以访问服务,以及属性的可扩展采集,属性描述服务或者给服务提供辅助界面。“(代码)存根”是便于访问远程功能的代码和数据,“连续对象”是以连续形式放置的对象。
尽管服务项目的采集是平面的,通过根据服务类型和属性聚集项目,可以将广泛的各种各样的分层视图叠加在采集上。查找服务提供一组方法,使用户和管理员能够浏览采集并建立各种各样的用户界面。一旦发现合适的服务,用户能够通过装载用户界面applet,作为项目上的另一个属性附着,与该服务交互作用。
在创建一个新服务(例如,当将一个新服务增加到Djinn)时,该服务用查找服务登记注册它自己,提供属性的初始采集。例如,打印机可以包括表示速度(每分钟页数)、分辨率(每英寸点数)和是否支持双面打印的属性。属性还可以包括服务是新的并需要配置的指示符。为了配置新服务,管理员对提供这一用途的applet的属性定位,在配置期间,管理员可以增加新属性,如服务的物理位置和它的公用名。
查找服务提供事件机制,它产生登记注册新服务时删除现有服务或者修改服务的属性的通知。为了使用事件机制,客户机对特定事件发生时得到通知进行登记注册,以及当事件发生时查找服务通知该客户机。查找服务本身也使用事件机制接收增加属性时的通知,以致于它能够在未来用他们进行重新登记注册。
需要特定类型服务的程序(包括其它服务)能够使用查找服务来寻找该服务的实例。基于通过该服务而实施的特定JavaTM编程语言类型以及附属于该服务的特定属性,可以作出匹配。
如果服务碰到需要管理注意,象打印机墨粉不足运行的问题,该服务能够增加表示该问题的属性。管理员(或程序)那么能够使用事件机制接收这种问题的通知。
服务项目的属性表示为一组属性集合。各个组属性可以表示为Java编程语言中交叉的实例,每个属性是该类的一个公共字段。该类提供组和各个属性的强类型。服务项目能够包括具有不同属性值的相同类的多个实例以及不同类的多个实例。例如,项目可以具有名称(Name)类的多个实例,每个实例以不同语言给出服务的公用名,加上位置(Location)类、物主(Owner)类和各种服务特定类的实例。
服务项目存储在查找服务中,作为ServiceItem类的实例,正如以下描述的public class Service Item{public static final long ASSIGN_SERVICE_ID=0;public long serviceID;public Object service;public Entry[]attributeSets;}“serviceID”单元是服务的数值标识符。“service”单元是代表服务的一个对象或者便于访问服务的一个(代码)存根,“attributeSet”单元包括服务的属性的阵列。
利用ServiceTemplate类的实例使查找服务中的项目匹配,它定义如下public class Service Template{public static final long ANY_SERVICE_ID=0;public long serviceID;public Class[]serviceTypes;public Entry[]attributeSetTemplates;}“serviceTypes”单元定义服务的类型。如果item.serviceID等于tmpl.serviceID(或者如果tmpl.serviceID为零)以及item.service是tmpl.serviceTypes中每个类型的实例,项目(irem)与服务模板(tmpl)匹配,item.attributeSet包括tmpl.attributeSetTemplates中每个入口模板的至少一个匹配入口。入口匹配使用以下规则如果入口的类与模板的类相同或者与模板的超类相同以及模板中每个非零字段等于入口的相应字段,入口与入口模板匹配。可以使用每个入口与一个以上模板匹配。serviceTypes和attributeSetTemplates二者在服务模板中可以是零。当查找多个项目时使用ServiceMatches类作为返回值。这个类的定义如下public class ServiceMatches{public Serviceltem[]items;public int totalMatches;}至查找服务的界面是通过ServiceRegistrar接口数据结构限定的。这一界面不是远程界面。而是,查找服务的每个实施方案输出实施客户机附近ServiceRegistrar界面的代理对象,利用专用实施协议与实际远程服务器通信。“代理对象”指在客户机的地址空间中运行并便于访问查找服务的对象。提供登记注册服务项目、寻找与模板匹配的项目、修改现有项目的属性、接收项目被修改时的通知以及递增地拓展沿三个主轴的项目(入口类,属性值,服务类型)收集的方法。接口的定义如下public interface ServiceRegistrar{long REGISTRAR_SERVICE_ID=1;ServiceLease register(Service Item item,long lease expiration)throwsRemoteException;Object lookup(ServiceTemplate tmpl)throws RemoteExceptionServiceMatches lookup(ServiceTemplate tmpl,int maxMatches)throws RemoteException;int addAttributes(ServiceTemplate tmpl, Entry[]attrSets)throws RemoteException;int modifyAttributes(ServiceTemplate tmpl,Entry[]attrSets)throws RemoteException;int TRANSITION_MATCH_NOMATCH=1;int TRANSITION_NOMATCH_MATCH=2;int TRANSITION_MATCH_MATCH=3;EventRegID notify(Service Template tmpl,int transition,RemoteEventListener listener,MarshalledObject handback,long leaseExpiration)throws RemoteException;Class[]getEntryClasses(ServiceTemplate tmpl)throws RemoteException;Object[]getFieldValues(ServiceTemplate tmpl),int setIndex,String field)throws NoSuchFieldException,RemoteException;Class[]getServiceTypes(Service Template tmpl,String packagePrefixthrows RemoteException这一接口包括各种方法,有登记注册方法、查找方法(单个参数形式)、查找方法(两个参数形式)、增加属性(addAttributes)方法、修改属性(modifyAttributes)方法、修改方法、获得入口类(getEnryClass)方法、获得字段值(getFieldValues)方法、以及获得服务类型(getServiceTypes)方法。“登记注册”方法用于登记注册新的服务和重新登记注册现有服务。这一方法是这样定义的,即它可以以幂等方式使用。具体地说,如果调用导致产生异常(在项目可以已登记注册或者可能没有登记注册的情况中),调用者能够简单地用相同参数重复调用。
利用登记注册方法登记注册新的服务,item.ServiceID应当是零;如果item.ServiceID不等于任何现有项目的服务对象,那么,将指派并返回一个新的唯一服务id。该服务id相对于这一查找服务在时间上是唯一的。如果item.ServiceID等于现有项目的服务对象,那么,从查找服务删除现有项目(即使它具有不同属性),但是项目的服务id被重新用作新登记注册项目。
为了利用登记注册方法重新登记注册现有服务,应当将item.ServiceID设定为由初始登注册返回的同样唯一服务id。如果一个项目已经在相同服务id下登记注册,那么删除现有项目(即使它具有不同的属性或者不同的服务实例)。注意在允许服务合理演变的这一情况(例如(代码)存根的串行化形式变化,或者服务实施新的界面)中,不检查服务对象等同性。
当对一个项目登记注册时,以该项目的存储表示删除复制属性组。另外,登记注册是在查找服务重新启动时不变的。
“查找”方法的单个参数形式从与模板匹配的项目返回服务对象(即ServiceItem.service),或者如果不匹配返回零。如果多个项目与模板匹配,对于返回哪个服务对象是任意的。如果不能使返回对象去除串行化,产生一个异常。
“查找”方法的两个参数形式最多返回与模板匹配的maxMatches项目,加上与模板匹配的项目的总数。返回值绝不是零,如果maxMatches是零,返回的项目阵列才是零。对于每个返回的项目,如果不能使服务对象去除串行化,将项目的服务字段设定为零,不产生异常。同样,如果不能使属性集去除串行化,attributeSets的单元设定为零,不产生异常。
“addAttributes”方法将规定属性集(不存在现有属性集的复制的这些)增加到与模板匹配的所有项目。返回匹配的项目的数目。注意这一操作对匹配项目的现有属性集没有影响,这一操作以幂等方式重复进行。
“modifyAttributes”方法用于修改现有属性集。tmpl.attributeSetTemplates和attrSets的长度必须相等或者产生异常。对于与模板匹配的每个项目,项目的属性集修改如下。对于每个阵列索引Ⅰ,如果attrSets[i]是零,那么,与tmpl.attributeSetTemplates[i]匹配的每个入口被删除;否则,对于attrSets[I]中的每个非零字段,将该字段的值存储到与tmpl.attributeSetTemplates[i]匹配的每个入口的相应字段中。attrSets[i]的类必须是与tmpl.attributeSetTemplates[I]的类或超类相同,或者产生异常。如果修改导致项目内的复制入口,删除复制。返回匹配的项目的数目。
“nodify”方法用于登记注册事件通知。登记注册是租借的,租借期满请求是严格。租借的概念在题为“租借存储器的方法和系统”的美国专利申请No.中更详细地描述,该申请以前已引入参考。登记注册在查找服务的重新启动时是不变的直至租借期满或者被取消。返回的EventRegId中的事件id在具有过渡期的不同服务模板的这一查找服务上至少相对于所有其它有效事件登记注册是唯一的。
虽然事件登记注册是有效的,一旦当登记注册、租借取消或期满、增加属性或修改属性操作以满足模板和转移组合的方法导致服务项目改变状态,含有事件指示的通知被传送到规定收听者。虽然在本发明的范围内也可以实施其它转移,转移的清单如下·TRANSITION MATCH NOMATCH当改变后项目与操作前模板匹配,但是与操作后模板不匹配(这包括项目的删除)时,对事件进行传送。
·TRANSITION_NOMATCH_MATCH当改变后项目与操作前模板不匹配(这不包括现有的),但是与操作后模板匹配时,对事件进行传送。
·TRANSITION MATCH MATCH当改变后项目与操作前和操作后模板匹配,对事件进行传送。
“getEntryClass”方法注视与规定模板匹配的所有项目、寻找这些项目(或是与任何入口模板不匹配或者至少是一个匹配入口模板的子类)当中的每个入口、以及返回这些入口的(最特别)类的集合。复制类被删除,返回阵列中类的次序是任意的。如果不存在这种入口或者不存在匹配项目返回零(不是空阵列)。如果返回的类不能被去除串行化,将返回阵列的单元设定为零和没有异常被发射。
“getFieldValue”方法识别与规定模板匹配的所有项目。这一方法返回与规定模板匹配的项目的值。
“getServiceTypes”方法注视与规定模板匹配的所有项目,对于每个服务对象,这一方法寻找服务对象是一个实例的每个类型(类或界面),该实例既不等于模板中的任何服务类型或也不是其超类,返回用规定数据包前缀启动的所有这些类型的集合。复制类型被删除,返回阵列中的类型的次序是任意的。如果不存在这种类型则返回零(不是空阵列)。如果返回的类型不能被去除串行化,将返回阵列的单元设定为零和没有异常被发射。
查找服务处理图3A和3B示出客户机、在特定设备上运行的程序利用查找服务212时进行的步骤的流程图。最初,将客户机运行的设备连接至Jini分布式系统(步骤302)。接着,客户机发送多点传播数据包,含有与客户机通信的代码(步骤304)。在这一步骤中,客户机正在执行发现协议,正如题为“与分布式系统中设备通信使用的提供可下载代码的装置和方法”的美国专利申请No.__中进一步详细地描述的,该申请以前已引入参考。
在客户机发送多点传播数据包后,发现服务器214接收该数据包并使用数据包中所包含的代码把对查找服务的参照发送到客户机(步骤306)。客户机接收对查找服务的参照后,客户机能够利用查找服务的界面或是增加服务、删除服务、访问服务,或是请求查找服务何时被更新的通知,正如步骤308-326所反映的。
在客户机处理期间的一些点上,可以决定把服务增加到查找服务(步骤308)。如果决定增加服务,客户机通过调用登记注册方法把服务增加到查找服务,它把代表服务的对象或含有便于访问该服务的代码和数据的(代码)存根发送到查找服务(步骤310)。把(代码)存根增加到查找服务正如在题为“便于访问查找服务的方法和系统”的美国专利申请No.__中更详细地描述,该申请以前已引入参考。
接着,客户机可以决定从查找服务中删除其服务中的一个(步骤312)。如果客户机决定这么做,客户机通过调用查找服务的界面上的登记注册方法来删除特定服务的入口和删除与其相关联的存根代码而从查找服务中删除该服务(步骤314)。应当注意增加服务和删除服务是动态和发生更新的同时并不禁止另外的客户机利用查找服务的方式进行的。
在客户机处理后的一些点上,客户机可以决定访问通过查找服务提供的服务(步骤316)。如果客户机决定访问由查找服务提供的服务,那么客户机通过调用查找方法而访问该服务,查找方法是从查找服务中检索该服务的对象或者该服务的(代码)存根信息,以及客户机或是调用对象上的方法使用该服务或是使用(代码)存根信息访问该服务(步骤318)。这一步骤在题为“便于访问查找服务的方法和系统”的美国专利申请No.__中更详细地描述,该申请以前已引入参考。
客户机还可以请求对查找服务发生更新时得到通知(图3B中步骤320)。如果客户机希望得到通知,那么客户机调用查找服务界面上的通知方法登记注册查找服务的回叫程序(步骤322)。“回叫程序”是查找服务被更新时调用的一个功能。另外,通知方法允许客户机登记注册将通过RMI作为参数返回到回叫功能的对象。
接着,如果事件已经发生,对此客户机希望得到通知(步骤324),查找服务可调用已登记注册的回叫程序(步骤326)。在这一步骤中,事件的发生要通知客户机,客户机能够采取适当行动,例如,如果客户机当前正在利用的服务已经变为不能提供的,那么客户机可以存储信息使得它不再使用该服务。
图4示出进行与事件相关的处理时由查找服务进行的步骤的流程图。初始时,查找服务接收来自数个客户机对特定事件发生时接收通知感兴趣的登记注册(步骤402)。在这一步骤中,查找服务通过调用查找服务界面上的通知方法接收登记注册并把所有相关信息,如要通知的客户机的指示、对绘调例程的参照、作为参数被传送到回叫程序的对象、以及客户机感兴趣的事件的指示等存储到表(称为事件表)中。应当注意客户机可以登记注册当事件发生时得到通知,或者客户机可以登记注册得到通知的第三方。收到登记注册后,查找服务确定事件发生使得至少已经登记注册一个客户机对该事件感兴趣(步骤404)。查找服务通过识别例如新的服务何时已经被增加到查找服务、现有服务已经从查找服务中被删除、或者服务的属性已经被修改,而作出这一决定。如果这种事件没有发生,查找服务的事件通知处理保持在等待状态。
然而,如果事件已经发生,查找服务确定所有客户机登记注册对这一事件的通知(步骤406)。查找服务通过访问事件表作出这一决定。接着,查找服务调用为步骤406中所识别的每个客户机登记注册的回叫程序(步骤408)。在这一步骤中,事件表包括对每个客户机所登记注册的回叫程序的参照,查找服务调用每个回叫程序将已登记注册对象作为参数传送,通知客户机事件的发生。
会议室例子以下描述的是相对于会议室500使用查找服务212的例子,正如图5所示。会议室500包括打印机502、传真机504、计算机506、投影屏幕508、和存储设备510,所有这些通过网络512互连。计算机506包括查找服务518,它限定通过会议室Djinn可提供的所有服务。在这个例子中,用户用膝上型计算机(laptop)514输入会议室500。当用户用膝上型计算机为开会进入会议室500时发生这种情况。如果用户希望利用会议室500中由各种不同设备提供的服务,那么用户必须连接会议室500的Djinn。为了这么做,用户将膝上型计算机连接至网络512并运行程序,客户机516进行引导和连接(或发现)处理,如上所述。完成引导和连接处理后,客户机516(例如浏览器)接收对查找服务的参照,限定由会议室Djinn提供的服务。利用这一参考,客户机516从查找服务518下载applet,显示在显示屏600上,正如图6所示。
图6示出显示屏600,它显示查找服务518的可提供服务,表示为各种不同的图标,包括打印机602、传真机604、文件系统606和投影屏608。显示屏600还显示增加服务按钮610。当选择打印机图标602时,打印机的(代码)存根代码(即服务项目)被下载给客户机,以致于客户机可以利用打印机。同样,选择传真机图标604、文件系统图标606或投影屏图标608,下载合适的(代码)存根信息,以致于客户机能够使用这些服务。文件系统图标606代表计算机506的文件系统。
然而,用户可能希望增加服务,因此选择增加服务按钮610。在选择增加服务按钮610时,向用户呈现显示屏700,正如图7所示。显示屏700示出用户可以增加到Djinn的膝上型计算机514的可提供服务。例如,膝上型计算机514上的可提供服务可以包括Java空间702、膝上型计算机文件系统704、数据库706和字典708。用户可以选择这些服务中的任何一个,然后自动地把它们增加到查找服务并可以供Djinn的其它用户使用。
虽然已经参考本发明的较佳实施例描述了本发明的方法和系统,但是,本领域的专用技术人员将知道可以在形式和细节上作出各种变化,而不偏离所附权利要求书中限定的本发明的精神和范围。
权利要求
1.分布式系统中的一种方法,它具有与分布式系统中可提供的网络服务相关联的查找服务和具有访问该网络服务的客户机,其特征在于所述方法包括以下步骤给分布式系统增加一装置,该装置包含具有新服务的新客户机;由新客户机广播一对象,该对象包含与新客户机通信的代码;由发现服务器接收该对象,并利用该代码由发现服务器把对查找服务的参照传送到新客户机;由新客户机接收该参照;以及由新客户机把新服务的指示增加到查找服务,以致于与查找服务相关联的网络服务在新服务的增加期间保持可访问。
2.如权利要求1所述的方法,其特征在于增加步骤包括步骤把(代码)存根增加到查找服务,它包含便于访问新服务的代码和数据。
3.如权利要求1所述的方法,其特征在于增加步骤包括步骤把服务对象增加到查找服务,该服务对象具有执行新服务的功能。
4.如权利要求1所述的方法,其特征在于进一步包括步骤从查找服务删除新服务的指示。
5.如权利要求1所述的方法,其特征在于进一步包括步骤用查找服务登记注册新客户机,当更新查找服务时接收一通知;由查找服务确定何时它已经被更新;以及当查找服务已经确定它已经被更新时给新客户机发送一通知。
6.如权利要求5所述的方法,其特征在于登记注册步骤包括步骤用查找服务登记注册一回叫程序,以及这里发送步骤包括步骤调用已登记注册的回叫程序。
7.如权利要求6所述的方法,其特征在于登记注册步骤包括步骤用查找服务登记注册一参数对象,以及这里调用步骤包括步骤调用已登记注册的回叫程序,把参数对象作为参数送至回叫程序。
8.数据处理系统中的一种方法,它具有与数据处理系统中可供使用的服务相关联的查找服务,其特征在于所述方法包括步骤接收更新查找服务的请求;以及更新查找服务,以致于未受更新影响的服务在发生更新时继续可供使用。
9.如权利要求8所述的方法,其特征在于更新步骤包括步骤使新服务与查找服务相关联。
10.如权利要求8所述的方法,其特征在于更新步骤包括步骤使相关联服务中的一个与查找服务不关联,从而使一个服务不再可供使用。
11.如权利要求8所述的方法,其特征在于相关联服务具有属性以及这里更新步骤包括步骤修改相关联服务中一个的属性。
12.数据处理系统中的一种方法,它具有与服务相关联的查找服务,其特征在于所述方法包括步骤接收当查找服务被更新时得到通知的请求;确定何时查找服务被更新;以及当确定查找服务被更新时产生一通知。
13.如权利要求12所述的方法,其特征在于接收步骤包括步骤接收客户机的请求,以及这里产生步骤包括步骤通知客户机更新。
14.如权利要求12所述的方法,其特征在于接收步骤包括步骤接收第一客户机的请求,以及这里产生步骤包括步骤通知第二客户机更新,第二客户机不同于第一客户机。
15.如权利要求12所述的方法,其特征在于接收步骤包括步骤接收对回叫程序的参照,以及这里产生步骤包括步骤调用回叫程序,执行通知。
16.如权利要求12所述的方法,其特征在于接收步骤包括步骤接收当新服务与查找服务相关联时得到通知的请求,以及这里确定步骤包括步骤确定何时新服务与查找服务相关联,以及这里产生部分包括步骤当确定新服务与查找服务相关联时产生通知。
17.如权利要求12所述的方法,其特征在于接收步骤包括步骤接收当相关联服务中的一个与查找服务不相关联时得到通知的请求,以及这里确定步骤包括步骤确定一个服务与查找服务不关联,以及这里产生步骤包括步骤当确定一个服务与查找服务不关联时产生通知。
18.如权利要求12所述的方法,其特征在于接收步骤包括步骤接收当相关联服务中至少一个的属性被更新时得到通知的请求,以及这里确定步骤包括步骤确定何时更新相关联服务中至少一个的属性,以及这里产生步骤包括步骤当确定相关联服务中至少一个的属性被更新时产生通知。
19.数据处理系统中的一种方法,具有与服务相关联的查找服务,其特征在于所述方法包括步骤将请求发送到查找服务被更新时得到通知的查找服务;以及接收查找服务已经被更新的通知。
20.如权利要求19所述的方法,其特征在于发送步骤包括步骤由客户机发送请求,以及这里接收步骤指示步骤由客户机接收通知。
21.如权利要求19所述的方法,其特征在于发送步骤包括步骤由第一客户机发送请求,以及这里接收步骤包括由不同于第一客户机的第二客户机接收通知。
22.一种数据处理系统,其特征在于包括存储器,它包括查找服务,具有可提供使用的服务的指示;第一客户机,用于更新查找服务;以及第二客户机,用于在第一客户机正在更新查找服务的同时利用查找服务;以及至少一个处理器,用于使查找服务、第一客户机和第二客户机运行。
23.一种数据处理系统,其特征在于包括存储器,它包括具有可提供使用的服务的指示的查找服务,查找服务用于接收对何时更新查找服务的通知的请求、确定何时更新查找服务和产生当查找服务被更新时的通知;和客户机,用于把请求发送到当查找服务被更新时得到通知的查找服务;以及至少一个处理器,用于使客户机和查找服务运行。
24.如权利要求23所述的数据处理系统,其特征在于存储器进一步包括一个第二客户机,用于接收查找服务被更新的通知。
25.一种计算机可读的存储器装置,包含访问查找服务所使用的数据结构,查找服务与可供使用的网络服务相关联,所述数据结构包括一种通知方法,供客户机用于登记注册查找服务,当查找服务被更新时接收来自查找服务的通知。
26.一种计算机可读媒体,包括控制数据处理系统执行一种方法的指令,数据处理系统具有与数据处理系统中可供使用的服务相关联的查找服务,所述方法包括步骤接收更新查找服务的请求;以及更新查找服务,以致于在发生更新的同时未被更新影响的服务继续可供使用。
27.如权利要求26所述的计算机可读媒体,其特征在于更新步骤包括步骤使新服务与查找服务相关联。
28.如权利要求26所述的计算机可读媒体,其特征在于更新步骤包括步骤使相关联服务中的一个不与查找服务相关联,以致于一个服务不再提供使用。
29.如权利要求26所述的计算机可读媒体,其特征在于相关联服务具有属性以及更新步骤包括步骤修改相关联服务中的一个的属性。
30.一种计算机可读媒体,包括控制数据处理系统执行一种方法的指令,数据处理系统具有相关联服务的查找服务,所述方法包括步骤由查找服务接收当更新查找服务得到通知的请求;确定何时更新查找服务以及在确定更新查找服务时产生通知。
31.如权利要求30所述的计算机可读媒体,其特征在于接收步骤包括步骤接收来自客户机的请求,以及这里产生步骤包括步骤通知客户机更新。
32.如权利要求30所述的计算机可读媒体,其特征在于接收步骤包括步骤接收来自第一客户机的请求,以及这里产生步骤包括步骤通知第二客户机更新,第二客户机不同于第一客户机。
33.如权利要求30所述的计算机可读媒体,其特征在于接收步骤包括步骤接收对回叫程序的参照,以及这里产生步骤包括步骤调用回叫程序进行通知。
34.如权利要求30所述的计算机可读媒体,其特征在于接收步骤包括步骤接收当新服务与查找服务相关联时得到通知的请求,以及这里确定步骤包括步骤确定何时新服务与查找服务相关联,以及这里产生步骤包括步骤当确定新服务与查找服务相关联时产生通知。
35.如权利要求30所述的计算机可读媒体,其特征在于接收步骤包括步骤接收当相关联服务中的一个与查找服务不关联时得到通知的请求,以及这里确定步骤包括步骤确定何时一个服务与查找服务不关联,以及这里产生步骤包括步骤当确定一个服务与查找服务不关联时产生通知。
36.如权利要求30所述的计算机可读媒体,其特征在于接收步骤包括步骤接收当更新相关联服务中至少一个的属性时得到通知的请求,这里确定步骤包括步骤确定何时更新相关联服务中至少一个的属性,以及这里产生步骤包括步骤当确定更新相关联服务中至少一个的属性时产生通知。
37.一种计算机可读媒体,包括控制数据处理系统执行一种方法的指令,数据处理系统具有相关联服务的查找服务,所述方法包括步骤给查找服务发送当查找服务被更新时得到通知的请求;以及接收查找服务已被更新的通知。
38.如权利要求37所述的计算机可读媒体,其特征在于发送步骤包括步骤由客户机发送请求,以及这里接收步骤指示步骤由客户机接收通知。
39.如权利要求37所述的计算机可读媒体,其特征在于发送步骤包括步骤由第一客户机发送请求,以及这里接收步骤包括由不同于第一客户机的第二客户机接收通知。
全文摘要
提供一种改进的查找服务,它允许动态地增加和删除服务。这一查找服务允许自动地增加和删除服务,而无需用户介入。结果,查找服务的客户在发生更新的同时可以继续利用查找服务及其相关联服务。另外,查找服务提供一种通知机制,客户可以用它接收查找服务被更新时的通知。通过接收这种通知,客户能够避免试图访问不再提供的服务以及新的服务刚增加到查找服务便能够利用它们。
文档编号G06F12/02GK1298503SQ99805304
公开日2001年6月6日 申请日期1999年2月17日 优先权日1998年2月26日
发明者A·M·沃尔蕾斯, R·谢夫勒, J·H·瓦尔多, K·C·R·C·阿诺德 申请人:太阳微系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1