RMI在JINI中的应用

  Jini也是使用RMI(虽然也可以用别的协议),但多了几个关键功能。

  1、自适应探索(adaptive discovery)

  2、自恢复网络(self-healing networks)

  RMI的客户端得先取得远程服务的地址和名称。客户端的查询程序代码要带有远程服务的IP地址或主机名(因为RMIRegistry在上面)以及服务所注册的名称

  但是用JINI时,用户只需要知道一件事,服务所实现的接口!这样行。

  Jini是用lookup service,该查询服务比RMI Registry更强更有适应性。因为Jini会在网络上自动的广告。当查询服务上线是,它会使用IP组播技术送出信息给整个网络。不止这样,如果客户端在查询服务已经广播之后上线,客户端也可以发出消息给整个网络来询问。

  当服务上线时,它会动态的探索网络上的JINI查询服务并申请注册,注册时,服务会送出一个序列化的对象给查询服务,此对象可以是RMI远程服务的stub、网络装置的驱动程序,甚或是可以在客户端执行的服务本身。并且注册的是所实现的接口。而不是名称。

  自适应探索的运作

  1、Jini查询服务在网络上启动,并使用IP组播技术为自己做宣传

  2、已经启动的另外一个Jini服务会寻求向刚启动的查询服务注册。它注册的是功能而不是名称,也是所实现的接口,然后送出序列化对象给查询服务

  3、网络客户想要取得实现ScientificCalculator的东西,可是不知道哪里有,所以问查询服务

  4、查询服务响应查询的结果

  自恢复网络的运作

  1、某个Jini服务要求注册,查询服务会给一份租约,新注册的服务必须要定期更新租约,不然查询服务会假设此服务已经离线了,查询服务会力求呈现精确完整的可用服务网络状态

  2、因为关机所以服务离线,因此没有更新租约,查询服务把它踢掉。