论文部分内容阅读
八十年代初期,Sun公司提出一个口号“网络就是计算机”。由于当时计算机网络发展水平的限制,大多数的计算机技术人士并不像现在这样对其有深刻的认识。随着Internet的迅猛发展,其改变了人类的工作和生活方式已经是不争的事实。
特别是Java语言的产生,其面向对象、与操作平台无关及分布式、多线程、动态处理的特点;“一次编程,到处运行”的机制十分适合网络环境下应用,在网络发展如火如荼的九十年代初期,正所谓生逢其时,相见恨晚。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/hlsj/hlsj2001/hlsj200117-1-l.jpg)
但是,能否有一种技术,使用户通过Java程序实现在任何时间、任何地点,从任何器件上对任何网络的联结(network anything,anytime,anywhere)呢? Sun公司1999年初发布的Jini技术很好地回答了这个问题。
Jini技术将Java所建立起来的基于开放性标准的、以网络为中心的计算模式向前推进了一步:Java仅仅是一种能在各种平台上运行的语言,通过Jini的实施,Java变成具有网络操作系统功能的平台。Jini使几乎任何电子设备都能与网络和计算机有机地结合起来,它可以作为所有智能性电子消费类产品的平台。
Jini的结构和特点
Jini是用Java实现的程序,它使安装了此程序的设备具有能在网上移动代码和数据的能力,并利用其优良的安全性和支持流动的对象结构,使用户可调用网络上的任何资源。即Jini使用Sun的100%纯Java,是Java虚拟机(JVM)中的一系列类库,带有JVM或嵌入式Java的计算机和其它设备都可以使用Jini。Jini软件能把网络上每一种设备中的Java虚拟机连接起来。采用Jini技术后,设备一连到网上就可工作,使用其它设备提供的服务或向其它设备提供服务。
1.Jini的基本特性
立即连网
做到任何设备、任何地方、任何时间都能连网,并且尽可能简单。一个Jini设备连网像连接一个电话机那样简单,不需要进行安装、配置和选择驱动程序等复杂的过程。
动态联盟
Jini在网络上构成Java虚拟机的动态联盟,各网络成员实行动态连接,共享信息和执行任务。Jini是面向服务的,每个成员都提供自己的服务,一起组成各种服务的一个联盟。所以,Jini并不是传统的客户/服务器那种结构,它的各成员之间的关系也不是用户/程序、程序/文件那种关系。它是把各种设备(硬件)和构件(软件)联合起来,形成单一的动态分布系统。
发现/加入、查找服务
Jini的新成员连网时首先进行“发现/加入”操作,即新成员向网络报告自身的属性、能力和可提供的服务,使网络的其他成员可加以利用。实际上,设备是通过发出一个512字节的信息包到网络上的某个“查找港”,而查找港则对设备返回一个接口,设备用返回的接口上载其“代理”程序(即执行其提供的某个增值服务的代理)。当网络成员需要某种服务时,可在“网络公告栏”上查找所需的服务,并下载该服务的代理。当网络上无“查找港”时,可采用对等查找方式,由某一成员充当查找管理者的角色。服务之间的通信由扩展的Java远程方法调用(Remote Method Invocation)来实现,这一机制使整个对象,包括数据和代码在内都可以在网络上移动。
2.Jini系统的结构
Jini系统主要由三部分构成,它们是:基础设施(Infrastructure)、编程模式(Programming Model)和服务(Services)。
基础设施(Infrastructure)定义了Jini的设备和软件如何连接并注册到网络上。主要内容包括:作为Java的RMI系统的扩展,形成Jini系统中通信的基本机制;将Java平台的安全模式扩展到分布式系统;发现/加入(Discovery/Join)协议,允许软硬件发现网络并变成联盟系统的成员,同时将所提供的服务广播给联盟中其它成员;查找(Lookup)服务协议,作为网络上所有服务的公告牌(bulletinboard),它存储网络中的服务内容和指向这些服务的代码指针。
编程模式(Infrastructure)指构造出可靠服务的接口的集合。即基础设施利用编程模式为分布式计算提供可靠基础,寄居在基础设施中的服务使用编程模式较好地完成分布式任务,编程模式的实施必须得到基础设施所提供的支持。Jini基础设施和编程模式使得服务在网络联盟中能被提供、发现和向用户宣布自己的存在。服务以Java编程语言写的对象形式体现,定义操作的接口,这些操作能被其它服务访问。
服务(Services)构成Jini系统的交互基础,是Jini结构最重要的概念。其服务体系结构是基于发现(Discovery)和查找(Lookup)协议。一个服务是一个实体,它能被人、程序或其它服务使用,一个服务可能是一次计算、存储和硬件设备或另一个用户。一个Jini联盟仅仅是客户机和服务器的集合,或用户和程序的集合;相反,一个Jini联盟由服务组成,这些服务组合到一起完成某一特定的任务,也可能服务利用其它服务来完成某一任务。Jini系统提供一种机制,在分布式系统中实现对服务的构造、查找、通信和使用,服务的例子包括硬件设备、软件(如应用程序或工具)、信息(如数据库)以及系统的使用者。Jini系统中通过使用服务协议(即一套Java接口)完成服务间的通信。
3.Jini结构的特点
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/hlsj/hlsj2001/hlsj200117-2-l.jpg)
由于Java虚拟机JVM(Java Virtual Machine)可以运行在各种操作系统之上,Jini使这些虚拟机构成动态的联盟,它又由发现/加入、查找和服务三个层次组成。每个设备联网时执行发现/加入协议,客户通过查找服务机制确定提供该服务的对象;各成员在网络上提供各自的服务。
Jini的核心只需48KB的Java二进制代码。目前支持Jini的结构有两种方式:一种是软件结构,它可运行在现存操作系统和网络上,可支持NT和Solaris两种操作系统;另一种是纯硬件结构,可在设备这一层次上用硬件基础设施支持Jini。
推广Jini存在的问题
到目前为止,Jini似乎只能提供基本的网络服务。Jini可以运行在不具备处理能力的小型家用设备上,但这些设备首先必须具备网络功能,并需要由另一个采用了Jini技术的硬件或软件代理来控制。另外,设备驱动程序的混乱状况及网络登录的冲突问题也是突出的问题。
现在Jini还只是个基本工具,它可以使开发者在写应用程序时更好地权衡网络和它们的资源情况。因此,开发人员需要加速Jini开发并使用规定的能力编写Jini应用程序。按最基本的要求,供应商将需要编写基于Java的驱动程序,或驱动器的Java接口程序,以及所有有可能在Jini网络上运行的设备的驱动程序。
Jini的本质就是Java,跨网络分布式服务及多计算机服务正是Java联盟的目标。其基本架构采用Java RMI以及面向对象编程。因此,Jini实现的某些方面虽然是直接为Java和面向对象的编程员服务的,但编写一个分布式应用比一个单一应用还是要复杂得多,在集中式操作系统和应用程序模型中,也许只需要几行程序就可完成的任务,若使用分布式应用程序去实现,其复杂性会大大增加,程序员要考虑网络故障、延迟、安全性等问题,对开发者是一个挑战。因此Jini要从研究开发阶段演进到实用产品,还需要一个过程,但愿这个过程不要太长。
机遇与未来
Jini系统在分布式网络环境下实现了:允许用户在网络上共享服务和资源;当用户的网络位置发生改变时,仍可以容易地访问网络中任何地方的资源;为编程者提供工具和编程模式,用于开发强大和安全的分布式系统;简化建造、维护和改变由设备、软件和用户组成的网络的能力。
按照Sun的计划,Jini能将全系列的基于Java的家用电器连接起来,其中包括PC、立体声设备、电话、打印机和数字照相机等,它们将为网络上的所有成员提供服务。对所有电子设备制造厂商,Jini技术无疑是一个开启全新市场的机会。它可使几乎所有电子设备都可以具有网络能力和智能。同样,Sun的Jini计划如果没有大量设备制造商的支持,就难以真正实施。
据报道,已经有30多家公司在评估Jini软件。例如,电信公司Ericsson计划把Jini技术嵌入到它的蜂窝电话中,以便蜂窝电话更容易地与其它设备(如计算机)通信。硬盘制造商Qauntum计划把Jini嵌入到它的产品中,并准备明年提供这种产品。备份软件公司Seagate Software正为在将来的产品中使用Jini而对其进行评估。还有一些软硬件厂商,如Federal Express和CA公司计划在一年半内把Jini加入到它们的产品中。相信随着市场的驱动力,商家会想出各种各样的点子,开发出各种应用。
总之,Jini为人们带来了一种网络计算的全新境界,未来我们的周围将都是可联网的智能设备。
特别是Java语言的产生,其面向对象、与操作平台无关及分布式、多线程、动态处理的特点;“一次编程,到处运行”的机制十分适合网络环境下应用,在网络发展如火如荼的九十年代初期,正所谓生逢其时,相见恨晚。
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/hlsj/hlsj2001/hlsj200117-1-l.jpg)
但是,能否有一种技术,使用户通过Java程序实现在任何时间、任何地点,从任何器件上对任何网络的联结(network anything,anytime,anywhere)呢? Sun公司1999年初发布的Jini技术很好地回答了这个问题。
Jini技术将Java所建立起来的基于开放性标准的、以网络为中心的计算模式向前推进了一步:Java仅仅是一种能在各种平台上运行的语言,通过Jini的实施,Java变成具有网络操作系统功能的平台。Jini使几乎任何电子设备都能与网络和计算机有机地结合起来,它可以作为所有智能性电子消费类产品的平台。
Jini的结构和特点
Jini是用Java实现的程序,它使安装了此程序的设备具有能在网上移动代码和数据的能力,并利用其优良的安全性和支持流动的对象结构,使用户可调用网络上的任何资源。即Jini使用Sun的100%纯Java,是Java虚拟机(JVM)中的一系列类库,带有JVM或嵌入式Java的计算机和其它设备都可以使用Jini。Jini软件能把网络上每一种设备中的Java虚拟机连接起来。采用Jini技术后,设备一连到网上就可工作,使用其它设备提供的服务或向其它设备提供服务。
1.Jini的基本特性
立即连网
做到任何设备、任何地方、任何时间都能连网,并且尽可能简单。一个Jini设备连网像连接一个电话机那样简单,不需要进行安装、配置和选择驱动程序等复杂的过程。
动态联盟
Jini在网络上构成Java虚拟机的动态联盟,各网络成员实行动态连接,共享信息和执行任务。Jini是面向服务的,每个成员都提供自己的服务,一起组成各种服务的一个联盟。所以,Jini并不是传统的客户/服务器那种结构,它的各成员之间的关系也不是用户/程序、程序/文件那种关系。它是把各种设备(硬件)和构件(软件)联合起来,形成单一的动态分布系统。
发现/加入、查找服务
Jini的新成员连网时首先进行“发现/加入”操作,即新成员向网络报告自身的属性、能力和可提供的服务,使网络的其他成员可加以利用。实际上,设备是通过发出一个512字节的信息包到网络上的某个“查找港”,而查找港则对设备返回一个接口,设备用返回的接口上载其“代理”程序(即执行其提供的某个增值服务的代理)。当网络成员需要某种服务时,可在“网络公告栏”上查找所需的服务,并下载该服务的代理。当网络上无“查找港”时,可采用对等查找方式,由某一成员充当查找管理者的角色。服务之间的通信由扩展的Java远程方法调用(Remote Method Invocation)来实现,这一机制使整个对象,包括数据和代码在内都可以在网络上移动。
2.Jini系统的结构
Jini系统主要由三部分构成,它们是:基础设施(Infrastructure)、编程模式(Programming Model)和服务(Services)。
基础设施(Infrastructure)定义了Jini的设备和软件如何连接并注册到网络上。主要内容包括:作为Java的RMI系统的扩展,形成Jini系统中通信的基本机制;将Java平台的安全模式扩展到分布式系统;发现/加入(Discovery/Join)协议,允许软硬件发现网络并变成联盟系统的成员,同时将所提供的服务广播给联盟中其它成员;查找(Lookup)服务协议,作为网络上所有服务的公告牌(bulletinboard),它存储网络中的服务内容和指向这些服务的代码指针。
编程模式(Infrastructure)指构造出可靠服务的接口的集合。即基础设施利用编程模式为分布式计算提供可靠基础,寄居在基础设施中的服务使用编程模式较好地完成分布式任务,编程模式的实施必须得到基础设施所提供的支持。Jini基础设施和编程模式使得服务在网络联盟中能被提供、发现和向用户宣布自己的存在。服务以Java编程语言写的对象形式体现,定义操作的接口,这些操作能被其它服务访问。
服务(Services)构成Jini系统的交互基础,是Jini结构最重要的概念。其服务体系结构是基于发现(Discovery)和查找(Lookup)协议。一个服务是一个实体,它能被人、程序或其它服务使用,一个服务可能是一次计算、存储和硬件设备或另一个用户。一个Jini联盟仅仅是客户机和服务器的集合,或用户和程序的集合;相反,一个Jini联盟由服务组成,这些服务组合到一起完成某一特定的任务,也可能服务利用其它服务来完成某一任务。Jini系统提供一种机制,在分布式系统中实现对服务的构造、查找、通信和使用,服务的例子包括硬件设备、软件(如应用程序或工具)、信息(如数据库)以及系统的使用者。Jini系统中通过使用服务协议(即一套Java接口)完成服务间的通信。
3.Jini结构的特点
![](https://www.soolun.com/img/pic.php?url=http://img.resource.qikan.cn/qkimages/hlsj/hlsj2001/hlsj200117-2-l.jpg)
由于Java虚拟机JVM(Java Virtual Machine)可以运行在各种操作系统之上,Jini使这些虚拟机构成动态的联盟,它又由发现/加入、查找和服务三个层次组成。每个设备联网时执行发现/加入协议,客户通过查找服务机制确定提供该服务的对象;各成员在网络上提供各自的服务。
Jini的核心只需48KB的Java二进制代码。目前支持Jini的结构有两种方式:一种是软件结构,它可运行在现存操作系统和网络上,可支持NT和Solaris两种操作系统;另一种是纯硬件结构,可在设备这一层次上用硬件基础设施支持Jini。
推广Jini存在的问题
到目前为止,Jini似乎只能提供基本的网络服务。Jini可以运行在不具备处理能力的小型家用设备上,但这些设备首先必须具备网络功能,并需要由另一个采用了Jini技术的硬件或软件代理来控制。另外,设备驱动程序的混乱状况及网络登录的冲突问题也是突出的问题。
现在Jini还只是个基本工具,它可以使开发者在写应用程序时更好地权衡网络和它们的资源情况。因此,开发人员需要加速Jini开发并使用规定的能力编写Jini应用程序。按最基本的要求,供应商将需要编写基于Java的驱动程序,或驱动器的Java接口程序,以及所有有可能在Jini网络上运行的设备的驱动程序。
Jini的本质就是Java,跨网络分布式服务及多计算机服务正是Java联盟的目标。其基本架构采用Java RMI以及面向对象编程。因此,Jini实现的某些方面虽然是直接为Java和面向对象的编程员服务的,但编写一个分布式应用比一个单一应用还是要复杂得多,在集中式操作系统和应用程序模型中,也许只需要几行程序就可完成的任务,若使用分布式应用程序去实现,其复杂性会大大增加,程序员要考虑网络故障、延迟、安全性等问题,对开发者是一个挑战。因此Jini要从研究开发阶段演进到实用产品,还需要一个过程,但愿这个过程不要太长。
机遇与未来
Jini系统在分布式网络环境下实现了:允许用户在网络上共享服务和资源;当用户的网络位置发生改变时,仍可以容易地访问网络中任何地方的资源;为编程者提供工具和编程模式,用于开发强大和安全的分布式系统;简化建造、维护和改变由设备、软件和用户组成的网络的能力。
按照Sun的计划,Jini能将全系列的基于Java的家用电器连接起来,其中包括PC、立体声设备、电话、打印机和数字照相机等,它们将为网络上的所有成员提供服务。对所有电子设备制造厂商,Jini技术无疑是一个开启全新市场的机会。它可使几乎所有电子设备都可以具有网络能力和智能。同样,Sun的Jini计划如果没有大量设备制造商的支持,就难以真正实施。
据报道,已经有30多家公司在评估Jini软件。例如,电信公司Ericsson计划把Jini技术嵌入到它的蜂窝电话中,以便蜂窝电话更容易地与其它设备(如计算机)通信。硬盘制造商Qauntum计划把Jini嵌入到它的产品中,并准备明年提供这种产品。备份软件公司Seagate Software正为在将来的产品中使用Jini而对其进行评估。还有一些软硬件厂商,如Federal Express和CA公司计划在一年半内把Jini加入到它们的产品中。相信随着市场的驱动力,商家会想出各种各样的点子,开发出各种应用。
总之,Jini为人们带来了一种网络计算的全新境界,未来我们的周围将都是可联网的智能设备。