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去发现和使用相应的服务。
服务的实现对服务请求者是隐藏的,服务请求者看到的只是服务提供的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程序把网络上的每台设备作为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的走势并不算明朗。
查看本文来源