20世纪80年代初,美国Sun公司提出一个口号:“网络就是计算机”。 随着因特网的迅猛发展,人们对此有了深刻的认识。特别是Java语言的产生,它的“一次编程,到处运行”机制十分适合网络环境下应用,正所谓生逢其时。但是,能否有一种技术,使用Java程序实现在任何时间、任何地点、从任何器件上对任何网络的联结(network anything,anytime,anywhere)呢?1999年1月25日,在美国旧金山举行的Sun全球分析家大会上,Sun公司发布的其革命性的Jini技术很好地回答了这个问题。Jini技术是网络就是计算机的发展,它使几乎任何电子设备都可与网络和计算机进行有机的结合,为消费者带来福音,为电子设备制造厂商带来机遇。
Jini是用Java实现的程序,它使安装了此程序的设备具有能在网上移动代码和数据的能力,并利用其优良的安全性和支持流动的对象结构,使用户可调用网络上任何资源。采用Jini技术后,设备一连到网上就可工作,使用其它设备提供的服务或向其它设备提供服务。也就是说,有了Jini,基于Java的各种设备只需连到网上就可以相互对话,而不需要预先配置、安装驱动程序。这就是Jini技术带来的“自动连网”(spontaneous networking)的概念。每个设备加入到网络的同时,就宣布了自己在网络上的存在,并能向其他设备提供服务。采用Jini技术的设备联入网络后,它即向该网络上的搜寻服务发出类似“我在这儿,那儿有人吗?”网络搜寻服务将新设备登记在案,详细记录其属性,并向这个Jini设备发回一条消息,告诉它在需要帮助时到什么地方查找搜寻服务。
Jini技术的意义,正如SUN公司Jini技术部总经理Mike Clary所说:“Jini技术与我们现在看到的过分复杂的网络根本不同,通过将各种电子类器件联入网络,它将基于网络的信息,带给了广大用户,也带给了设备供应商,并使因特网的潜在利益实实在在地呈现出来,促进了商业与个人计算机的融合,让任何人都能一道工作。”
Jini的新成员连网时首先进行“发现/加入”操作,即新成员向网络报告自身的属性、能力和可提供的服务,使网络的其他成员可加以利用。实际上,设备是通过发出一个512字节的信息包到网络上的某个“查找港”,而查找港则对设备返回一个接口,设备用返回的接口上传其“代理”程序(即执行其提供的某个增值服务的代理)。当网络成员需要某种服务时,可在“网络公告栏”上查找所需的服务,并下载该服务的代理。如:当一个打印机用Lookup协议注册到Lookup服务时,它将打印机驱动程序或驱动程序的接口装入到Lookup。当客户想使用该打印机时,从Lookup上将驱动程序或驱动程序的接口下载到客户端。这样,驱动程序不必预先下载到客户即可完成打印任务。
服务(Services)构成Jini系统的交互基础,是Jini结构最重要的概念。其服务体系结构是基于发现(Discovery)和查找(Lookup)协议。一个服务是一个实体,它能被人、程序或其它服务使用,一个服务可能是一次计算、存储、硬件设备或另一个用户。
Sun关于Jini的设想的确令人向往,但是目前至少先要把设备驱动程序的混乱状况及网络登录的冲突问题解决,才能真正实现。另外编写一个分布式应用比一个单一应用还是要复杂得多,在集中式操作系统和应用程序模型中,也许只需要几行程序就可完成的任务,若使用分布式应用程序去实现,其复杂性会大大增加,对开发者是一个挑战。
Jini系统在分布式网络环境下实现了:允许用户在网络上共享服务和资源;当允许用户的网络位置改变的情况下,提供用户容易访问网络中任何地方的资源;为编程者提供工具和编程模式,用于开发健壮和安全的分布式系统;简化建造、维护和改变由设备、软件和用户组成的网络的能力。
按照Sun的计划,Jini能将全系列的基于Java的家用电器连接起来,其中包括PC、立体声设备、电话、打印机和数字照相机,它们将为网络上的所有成员提供服务。使得人们不直接使用计算机也能实现很多网络功能,广大消费者利用网络资源如同打开电灯开关一样简单。(晓笛)
|