快捷搜索:

Jini技术基础结构

Jini技巧的即插即用的根基布局主要由三组协议组成:查找(Lookup)、发明(Discovery)和加入(Join)。查找办事是散播式Jini系统的基础组成部分,供给了在散播式Jini系统中办事的中央注册机制。在Jini系统中,法度榜样找到办事的首选措施是经由过程查找办事,而且查找办事也是供给给治理员和用户各类造访接口的根基。

查找办事的办事模型

查找办事保存了一个办事的表,表中的每个元素代表了系统中可用的一项办事,此中保存了造访这项办事所必要的代码和一系列可扩充的描述办事的属性。打个比方,查找办事就像电话簿,Jini系统中的办事就像电话簿中的用户,查找办事中保存的信息便是用户的电话号码。也便是说,凡是必要造访Jini系统中的办事,就必须知道查找办事中保存的“电话号码”。然则查找办事有不少跨越电话簿的优点,例如:查找办事保存的是一个动态的“电话簿”,而且,系统中的办事可以在“电话簿”中主动加入和去掉落自己的“电话号码”,而查找办事也完全支持这种机制。而在今后的内容里,我们会发明更多的不合点。

当办事在查找办事中注册后,会孕育发生一个看护事故。系统治理员可以使用查找办事中的事故回调机制来收到这个看护。这就有利于系统治理员治理和掩护系统。而且办事也会供给设置自身的用户界面,这个用户界面可以作为办事的属性保存到查找办事中。治理员能轻松地设置办事,不用忙着到处找各类各样的驱动法度榜样和治理软件。

在办事的有效期内,假如办事碰到问题必要引起治理员的留意,例如打印办事发明纸张缺乏办事就增添一个属性来指明问题。变动后的结果会保存到查找办事中。这时,同上所述,治理员使用查找办事的事故回调机制来收到上述问题的看护。有了这个有力的机制,大年夜大年夜减轻了系统治理员的包袱。

发明协讲和加入协议

收集中的办事在启动后,如何加入到散播式Jini系统中,成为Jini系统中的办事,有两个紧张的必弗成少的步骤。第一步肯定是找到系统中的查找办事,这个历程便是Discovery历程,用到的协议便是发明协议。第二步便是把自己注册到查找办事中,这个历程是Join历程,描述这个历程的协议便是Join协议。一项办事在完成了这两步后,就真正成为了Jini系统中的一位成员。为了准确地描述这两个协议,先先容一下用到的术语。

主机。拥有一或多个Java虚拟机并且能加入收集的一个硬件设备被称为主机。

组。一组Jini办事所组成的聚拢。组的名字是随意率性的字符串,用来描述该组的性子。

Discovery实体。Discovery实体便是处于同一主机内,将要开始,或者正处在找到查找办事的历程中一个或多个互相协作的Java说话中的工具的聚拢。

Join实体。Join实体便是处于同一主机内,已经得到了查找办事,处于从查找办事中查询办事或者将自己注册到Jini系统内历程中的一个或多个互相协作的Java说话中的工具的聚拢。在今后的文章中,为了方便描述,将Discovery实体和Join实体统称为实体。

Jini系统中的办事包括的范围很广,包括各类纯软件的办事和硬件设备的办事。假如一台主机盼望加入Jini系统,成为Jini系统中的一项办事,必要具备以下几个前提:首先必要一个能够运行Jini代码的Java虚拟机;其次必要一个精确设置设置设备摆设摆设的收集协议栈。这个收集协议栈跟着收集协议的不合而改变。这里假定采纳的收集层的协议是IP协议,此时以下几个前提是必弗成少的:IP地址(IP地址或者是静态IP地址,或者是由主机使用DHCP协议来取得的动态IP地址);支持TCP协讲和UDP多点传送协议(在Discovery历程中会用到这两种协议)。举个例子,一台联网的、安装了JDK(Java开拓对象包)的小我电脑便是一台主机。

每个查找办事都有相关联的组,这样可以使Jini系统中的办事布局更有层次感。例如:一个特定的查找办事可以属于打印设备组,任何打印办事都可以注册到该查找办事中。当然,组都是预定义的。在Discovery的历程中,Discovery实体确定自己感兴趣的组,也便是自己盼望加入的组,假如找到的查找办事也属于这样的组,Discovery实体就加入到这个查找办事中。这就避免了查找办事的布局过于宏大年夜,把组织系统中办事的责任分摊给系统中多个不合的查找办事。今朝,组的命名还没有一个明确的规范,Sun公司只是盼望组的名字最好相符收集域名的命名规范,然则今朝并没有给出若何定义组的名字的具体规范。我们信托在未来的成长历程中,跟着对Jini系统中办事的组织布局层次性要求的前进,这种命名规范会随之完善起来的。

1.发明

在Discovery实体和查找办事交互历程顶用到的协议一共有三个,分手是:多点传送哀求协议(multicast request protocol)、多点传送发布协议(multicast announcement protocol)和单点传送发明协议(unicast Discovery protocol)。这里首先对这三个协议进行简单的先容。

多点传送哀求协议。Discovery实体应用该协议以发明Jini系统中存在的查找办事。这个协议可用于设计浏览Jini系统中的办事的浏览器。

多点传送发布协议。查找办事在启动后或者在收集崩溃的规复历程中,使用该协议在系统中宣布自己存在的数据报。

单点传送发明协议。当Discovery实体和查找办事中有一个知道了另一个的收集地址和端口号时,就采纳该协议来主动建立两者之间点到点的通讯。

在Discovery的历程中,Discovery实体和查找办事的联系是建立在socket层上的。两者既是客户方,也是办事方。在通讯的历程中,分为两个阶段。

第一个阶段:Discovery实体和查找办事各自都建立了一个单点传送办事的办事器,可以理解为通俗的Internet办事器,例如FTP协议中的FTP办事器,目的便是让Discovery实体和查找办事能够建立与对方的点到点的连接。现在面临的问题是:若何让双方知道对方的办事器地址?在第二个阶段的描述中会找到这个问题的谜底。

第二个阶段:此时Discovery实体和查找办事都不知道对方的收集地址,然则根据Jini系统的要求,双方在收集层加入了特定的多点传送的组(这个组不是Jini系统中的组的观点,而是指收集协议中的组),而且双方都知道对方加入的收集组的组地址。因为收集协议支持向收集组中所有机械同时发送UDP数据包,使用这个特点,双方都向对方所属的组发送数据包。Discovery实体发送数据包的历程称为多点传送哀求,在查找办事中发送数据包的历程称为多点传送广播发布。在两者发送的数据包中都保存了各自的地址和其它需要信息。同时,双方都建立了一个收听发向本组的UDP数据包的办事器。Discovery实体所建立的办事器的办事称为多点传送广播收听办事,在查找办事中建立的办事器的办事称为多点传送广播哀求办事。办事器把收到的数据包进行解码,就可以知道客户方的地址。在这个阶段顶用到的协议便是多点传送哀求协讲和多点传送发布协议。这时,Discovery历程就进入了第三个阶段。

第三个阶段:此时Discovery实体和查找办事中有一个已经知道另一个的收集地址。这时双方就使用unicast 发明协议来进行通讯。协议的步骤如下:

第一步: 这一步有两个对等的历程。当查找办事的单点传送办事器收到Discovery实体的连接哀求后,就建立了与Discovery实体的连接;或者是Discovery的单点传送办事器收到查找办事的连接哀求,建立与查找办事的连接。两者之中那一个首先提议连接是等价的。双方都创建了一个线程来认真创建与对方办事器的连接。

第二步:当Discovery实体和查找办事建立连接后,由Discovery实体主动发送一个特定Discovery哀求后,查找办事就把今后所必要用到的Java说话中的工具(赞助Discovery实体加入到查找办事中的工具)传给Discovery实体。

无意偶尔已经发明并加入系统的实体会再次应用发明协议。例如,一个实体必要确定特定的查找办事是否还在运行,或者关心是否有新的办事进入,以及其他诸如斯类的问题。这时就会再次应用发明协议。

在Discovery实体的Discovery历程中,这三个发明协议相互协作。当实体启动的时刻,应用多点传送哀求协议来找到相近的查找办事;为了避免加重收集的包袱,在颠末一段光阴后实体就会竣事应用该协议,转变为使用多点传送发布协议来收听查找办事的广播。在详细的实现中,这三个协议都是作为自力的线程来实现的,由Discovery实体来认真和谐这三个线程的运行。

2.加入

Join协议向已经找到查找办事的办事供给了一系列应该遵照的标准步骤。当办事遵照这些步骤后就可以在查找办事中注册以加入Jini系统。值得留意的是,加入并不料味着简单的注册,而保持系统精确运行是加入的核心内容。

因为Jini系统是一个散播式系统,为了使系统在各类环境下正常运行,设计者对收集系统崩溃后系统的规复和系统持久运行的能力分外注重。以是在实现时,Jini系统中的办事都保存了必须保存的永远状态信息。这些信息如下:

1)表示办事在Jini系统中的标识符。办事在不合的查找办事中注册的办事标识符是独一的。

2)办事具备的属性。这些属性是Java说话中的工具。办事的属性描述了办事的状态。假如办事的状态改变了,那就必须改动属性以适应这个改变。为了包管Jini系统中状态的同等性,办事保存变动后的属性后,必须在每个已经注册的查找办事中做同样的变动。

3)一套办事想要加入的组的聚拢。

4)必须注册的特定的查找办事。对付这些查找办事,办事必须注册到该查找办事中,而不论查找办事所属的组是否办事盼望加入的组。

每个办事都保持了一份它所注册过的查找办事的表和一份租约表。当办事在特定的查找办事中注册后,会获得一份租约,办事会分手把租约和这个查找办事加入到上述的表中。办事对租约按期续借来包管注册的有效性。假如办事必要退出特定的查找办事,办事就会取消和这个查找办事相关联的所有租约。因为租约机制的引入,使得不会呈现系统资本弗成收受接收的征象,增强了系统的鲁棒性。

每一个Jini设备经由过程实现Dicovery和Join协议,就可以随时随地加入或退出Jini系统,从而达到即插即用的效果。

您可能还会对下面的文章感兴趣: