服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

jini的阿拉丁神灯能亮多久?


  jini刚刚推出时,很多人用“精灵”来形容它,并且进一步解释说,jini的原义是阿拉伯神话里的阿拉丁神灯,小小的神灯用手搓几下就会跑出巨大且无所不能的精灵。对jini的这种寓意,我们可以从jini的logo中明显地体会到。确实,jini规范的各种实现可以为网络带来强大的能量,它对网络的魔力不亚于阿拉丁神灯。不过――
  jini于1999年1月25日由sun公司发布。在推出jini之初,sun希望它支持x联网(无限联网),即各种数字设备都可以与网络相连,并自动管理该网络。无论设备有多大或是多小,是pc机外设、消费类电子产品、信息家电,还是企业设备,都可以通过jini规范的实现相互连接,相互提供服务,从而架构起网络资源共享的分布式网络运算环境。家庭网络只是jini应用的冰山一角,那是因为sun的思路是让jini首先进入消费类电子设备领域,实现各种家用信息设备的联网。
  服务处于核心地位
  jini提供的分布式结构体系也有人称之为分布式的网络操作系统,它突破了传统c/s的模式,形成了一个统一的动态分布系统,可以用来解决网络成员之间的交互通信问题。像冰箱、空调、打印机、数码相机、存储设备等都可以成为网络成员之一,随时为其他任何成员提供服务。
  服务是贯穿jini系统的核心,jini规范把服务定义为“可以被人、程序或另一个服务使用的某种东西”。 这种服务的概念除了与家庭网络中服务的概念不谋而合,也与无处不在的电子商务的服务理念遥相对应。 
  目前jini并不支持对等的双节点连接,而至少要求有三个节点(如图1所示):服务提供者、服务请求者和jini查询服务。在java语言中,服务作为对象出现,或者由几个其他的对象组成,服务的对外接口定义了可以向该服务请求的操作,服务的类型决定组成服务的接口。当一个提供服务的设备加入网络,就通过java对象注册自己能够提供的服务,包括服务的内容、属性等常规信息,实现对自己的推销。服务请求者通过这些java对象提供的api去发现和使用相应的服务。
   jini的阿拉丁神灯能亮多久?(图一)
  服务的实现对服务请求者是隐藏的,服务请求者看到的只是服务提供的java对象,只要下载一定的接口程序即可实现与服务的交互,所以事实上的通信都是在java对象和服务之间进行。在jini底层的网络交互可以使用各种类型的网络技术,如rmi、corba或soap都可以实现这样的通信。不过在jini规范中主要通过rmi(remote method invocation)实现远程对象通信。
  小精灵 大威力 
  jini的体系架构如图2所示,由基础架构(infrastructure)、编程模型(programming model)和服务(services)三部分组成。三个部分相辅相成,共同构成jini体系。基础架构与编程模型一起支持服务的提交、注册与发现,而编程模型需要基础架构的支持。
  其中基础架构为java对象的执行、对象之间的通信等提供各种资源和环境,同时负责在网络上查找和发现服务。从结构图中可以看到,jini基础架构为整个jini系统的jini设备(如磁盘驱动器、打印机、计算机等)发现适当的服务以及新服务和新设备的加入提供了发现/加入机制。只要是与jini基础架构相连的服务都可以通过发现服务找到。有新设备加入的时候,发现服务自动将其纳入自己的管理;同样地,当一个jini设备离开jini系统时,其服务将自动从发现服务中删除.
  jini的阿拉丁神灯能亮多久?(图二)
  简单地说,一段段jini程序把网络上的每台设备作为java虚拟机连接在一起。无论什么时候新加入一台数码摄像机,其他信息家电设备都可以很快识别出来,并加以利用。
  
  jini的编程模型由租赁接口、事件接口、事务接口等组成。租赁接口定义了基于事件的资源分配和释放方法;事件接口将javabean组件所使用的事件模型扩展为分布式事件模型,来支持jini服务基于事件的通信;事务接口则引入了一种面向对象的协议,使用“表决”和“提交”两个阶段来统一对象之间的相关行为,以保证事件序列的完整发生。
  
  与osgi一样,jini也是基于java技术的规范,不受操作系统平台和网络连接标准的限制,可以扩展到任何设备上,而且其体积小,可以用于各种传统的家电设备。此外,因为jini可以自动识别并管理家庭网络的每一个信息设备,所以管理费用相对较低。
  jini的路如何走?
  起初对于jini的发展,很多商家都非常看好,在1999年jini推出的时候,有多达37家企业和机构申请了jini许可证,其中包括bea、cisco、ca、ericsson、kodak、motorola、novell、nokia、philips、samsung、seagate、sony、3com、toshiba等公司。
  目前jini的知识产权归sun公司所有,任何需要使用jini技术的公司或组织都需要购买jini许可。scsl(sun community source license)就是jini技术吸引多方支持的机制,它对每个拥有jini技术许可的公司或组织开放jini基础架构的源代码,它们可以通过公开的进程免费使用、修改该技术框架。
  但因为种种原因,jini的发展速度并不如预计的那么快。2000年10月16日,sun推出了jini technology starter kit v1.1;2002年8月jini technology starter kit v1.2.1_001发布。但实际支持jini的设备并不多见。而且目前sun对osgi的支持力度非常大,有人担心这可能会导致sun减少对jini的投入。虽然osgi与jini并不是直接竞争的关系,甚至也有人提出了两者融合的想法,但到现在为止,这两个规范仍然是独立发展。
  其实除了osgi,sun还加入了upnp、havi等其他组织。虽说各种制订规范的组织是一个个技术团体,但某些时候它们更是一种利益集团。sun希望在更多的领域分到一杯羹而加入多个组织,有人担忧这样的做法会分散太多sun的精力而影响jini的发展。且先不去评论sun的做法如何,至少目前看来jini的走势并不算明朗。

扫描关注微信公众号