问题1:什么是JiniTM技术?
Jini技术是基于Java技术的一种新的技术突破,它使各种设备可以非常简单地连接到任意无准备的网络(impromptu network)上,从而使得对新的网络服务的访问和发送变得就象接入电话一样简单。建立在Java软件基础结构之上的Jini技术可以使所有类型的数字设备,在不需要大量的计划、安装或人为干预的情况下,共同运行在一个社区(community)中。每个设备可提供该社区中的其它设备可能需要使用的服务。这些设备还提供了它们自己的用户接口或程序接口,这就保证了可靠性和兼容性。
问题2:什么是无准备社区(impromptu community)?
用无准备社区可以描述当两个或多个使用Jini技术的设备一起共享它们的服务时的情形。由于设备之间不需要为连接到该社区而具备彼此间的预先了解,因此可以说该社区是无准备的。Jini技术允许设备动态地建立通信以共享和交换网络中的服务。无准备社区是一种动态环境,它消除了对设备配置或安装驱动的需求。
例如,假设有一台接入网络的照相机。在不需要安装驱动、插入CD-ROM或软盘以及从键盘键入命令的情况下,该照相机即可立即连入网络。该照相机标识它自己并提供服务。如果照相机能够说话,它可能会说:"我是照相机,谁要照相?"你可能有一台使用Jini技术的要加入到该网络的膝上型电脑,这时你可能访问该照相机,照一张相,并把照片发送到你自己的磁盘驱动器上,或为打印而将它发送到另一个设备上。
问题3:Jini技术有哪些益处?
所有的Jini技术都是为了简化网上的交互。Java平台已经将这种简化启动,而Jini则将其进一步完善。简化意味着改善的生产力、费用降低和便于使用。Jini技术让你使用网络就象使用电话一样的简单。它使ISVs、IHVs和部件制造商得以扩展到新的市场,并提供基于网络的改良的产品和服务。Jini软件还允许传统的服务供应商能够动态地增加和管理网络服务。
问题4:Jini技术一般都用在哪些地方?
几乎所有需要处理数字信息输入和输出的设备都有可能连接到使用Jini技术的社区,这不仅包括传统的计算机硬件和软件,而且还包括应用消费品,如个人数字助理(PDA)、数字相机、录象机、电视、DVD播放机、蜂窝电话和CD播放机等。传统的部件和外设制造商对此已显示了极大的兴趣,他们都希望将自己转化为增值网络服务供应商。另外,企业服务供应商对此也非常有兴趣,他们期望简化并扩展他们的网络能力。
问题5:Jini技术迎合了什么发展趋势?
随着处理器和其它技术设备价格的下降,传统的计算机的定义和用途正在扩展。使用的技术也从原来的单用户PCs和几百万美元的大型计算机发展到今天的基于网络的计算应用。对能够将全球连通的宽带网络的投资仍在进行。网络设备本身也不限于传统的计算机。相反地,从数字相机到蜂窝电话到家用电器都使用了某种类型的微处理器,并且具备一定程度的网络智能。但是,今天的网络对一般用户来说仍然是复杂的,不容易管理和使用。他们正在寻找更简单而可靠的网络解决方案。通过采用象实用工具一样的网络以达到对信息、数据和服务的共享和计算,这种方式将变得越来越普遍。分布式计算技术将被用来驾御网络的各种功能。在许多领域,由于Java技术的普遍采用,将会提供一种"编写一次,随处运行"的软件平台。网络的这种发展趋势--随处可用、简单、采用Java以及分布式计算技术--为Jini技术的产生奠定了基础。
问题6:业界对Jini技术的反响如何?
反响非常热烈。市场上对有关能够简化网络的技术的需求是非常大的。对出于研究和非赢利(组织内部)目的的用户,Sun可免费提供Jini技术的源代码。因而,一大批组织机构已开始调研Jini技术。同时,一大批从事电子消费品、计算机外部设备、企业级计算、计算机系统、网络服务供应以及软件的公司也已购买了Jini技术许可证,并在其商业化的数字产品和服务中使用Jini技术。
问题7:Jini技术的主要设计者有哪些?
在 Bill Joy 和 Jim Waldo 的领导下,一些在分布式计算领域的精英参加了Jini技术开发项目。他们包括Java远程方法调用(Java RMI)的发明和设计者Ann Wollrath、JavaSpaces技术的设计者、同时也是与James Gosling共同完成"Java programming language"的作者Ken Arnold、以及 X 协会的负责人和查找/发现(Lookup/Discovery)的设计者Bob Scheifler。
问题8:我从哪里可以找到有关Jini技术的更多信息?
从下列网址可以找到有关Jini技术的更多信息:
http://www.sun.com/jini Jini技术详解
问题9:Jini技术是如何运作的?
基于有关协议和一套Java技术接口,Jini技术使设备和应用程序可进入到网上虚拟机的无准备社区之中。采用Jini技术的设备使用一种被称作发现(discovery)的进程来寻找同样也采用Jini技术的设备。然后这些设备可向Jini技术的查找服务(lookup service)发送对象--这些对象代表了该设备所提供的服务以及它们的定义特征和属性。当一个设备需要使用社区中的一项服务时,它可以从Jini技术的查找服务中下载所需的对象,包括任何代码,如应用程序、设备驱动或用户接口等。
问题10:当一个新设备被接入网络时,会怎么样呢?
为将设备的服务提供给本地社区,该设备必须使用Jini技术来注册它所提供的服务。这可通过两个步骤来完成。首先,该设备轮询本地网络以确认Jini技术的查找(lookup)服务的所在位置;然后,再将自己注册在该查找服务上。这两个步骤被称作discovery和join进程。对该设备提供的每一个服务,该进程都向查找服务上载一个Java对象,作为该服务的接口。
问题11:Jini软件可在什么设备上运行?
Jini软件即Java软件代码。它可以运行在任意的数字设备上,如蜂窝电话、数字相机、个人数字助理(PDA),甚至还包括智能磁卡等。
问题12:为了使用Jini技术,是不是网上的所有设备都必须采用Java平台。
不是。这些设备可以允许网上的其它部件代表它们来执行需要Java技术的Jini软件。通过将Jini软件所需要的某些特定的Java功能委托给第三者,一个设备可以不必有它自己的虚拟机,并且在几乎不需要有附加代码的情况下,即可成为Jini技术网络的部件。成为网络社区的组成部分所需要的所有功能可由网络中与该设备有伙伴关系的另一系统来实现。
问题13:我怎样才能知道我在网上具有一个Java虚拟机?
不管你知道还是不知道,你的机器可能已经正在使用一个或者几个Java虚拟机了。它们被嵌套于大多数Web浏览器以及各种设备中。如果对一个发现(discovery)的询问(query)出现了一个响应,则表示在网络上具有了一个Java虚拟机。
问题14:一个应用程序是如何使用Jini软件的?
为使用社区中的服务,一个应用程序必须首先用发现协议来定位一个Jini技术的查找服务,然后它则可以使用该查找服务来定位能够提供所需服务类型的设备。应用程序则可以从该查找服务中下载一个可被用来与选定的设备进行交互的Java对象,该对象被用来处理任何有关设备的细节;运行应用程序的机器不需要具备该设备的驱动程序。
问题15:如果一个设备被断开连接,会怎么样呢?
Jini使用一种被称作"租用(leasing)"的技术来检测什么时候一个服务是不可用的。当一个设备在查找服务注册后,它会收到一个"租用"。这个租用必须被定期更新。如果未被更新,查找服务则会将该设备从服务列表中删除。删除一个设备不影响由其余社区成员所提供的状态或服务。
问题16: Jini技术适用于我现在的网络吗?
因为Jini技术是基于Java平台的, 所以它可以运行于任何具有至少一个Java虚拟机(JVM)的网络, 包括采用传统操作环境的网络, 如采用Novell Netware或microsoft Windows的网络。
问题17: 使用Jini技术需要替换现存软件或硬件吗?
不需要。通过添加某些Jini软件, 现存数字设备可被升级, 以达到使用Jini技术的目的。例如, 一旦你的PC拥有了Jini软件, 它便可以使用其它设备的服务, 并且其本身也可被当作一个服务而提供给其它设备。甚至于那些连接在你的PC上的设备,如磁盘或打印机,在添加了适当的Jini软件后,也可以作为服务提供给其它设备。
即使PC被升级以使用Jini技术,该PC上使用的现有软件也不需要改动。通过改变软件而在网络上提供服务则需要对软件进行升级。
Jini技术的开发
问题18:我可以将Jini技术添加到我的现行软件上吗?我应该怎样做?
可以。第一步,要为你的代码提供一个Java软件的包装器,这样这些代码即可在一个Java虚拟机(JVM)内运行。你可以找到有关这个过程的很好的文本说明,因为目前有数以千计的开发者都要实现这个过程。第二步是将那些可告知你的程序来宣布它自己的代码添加到查找服务上。我们将提供一些示例代码及升级工具来帮助你完成这一步。