Jini 能给您带来什么

Jini 能给您带来什么


    Jini是实现大规模分布式计算的一种关键技术。它不仅可以解决网络兼容性的问题,更加不同凡响的是,通过这种技术可以在网络计算机设备和应用程序之间进行有效的交互和合作。Jini通过使用面向对象的语言JAVA,将即插即用特性赋予了各种各样的设备,例如PC、手持式电脑、蜂窝电话以及48KB的小内存设备,从而减少了网络上的冲突。但是,Jini网络的实现还需要开发人员艰苦不懈的努力。在此之前,程序员们仍要面临编写分布式应用程序的挑战。

  Jini是一种用JAVA语言编写的代码,这种代码可以在网络上自动地检测计算机设备,并且注册它们所提供的服务。它是为在网络上提供分布式操作系统服务而采纳的开放式体系结构的核心部分。

  Sun公司为下个世纪的网络计算绘制了一幅蓝图,将这幅蓝图变为现实的技术就是Jini。Jini是一种基于JAVA的体系结构,它提供操作系统的服务,并且将其功能扩展至整个网络。更一般地讲,Jini是在JAVA虚拟机(JVM)顶端运行的一个JAVA软件,为设备提供即插即用的网络功能。Sun在它的蓝图中描绘了这样一幅场景:在未来,任何一台装有微处理器以及小容量RAM的设备之间都能够相互合作,从而达到了计算上一个崭新的境界。虽然这是一种超前意识,但是采用Jini至少使我们离未来的蓝图又进了一步———它可以使我们免受设备驱动程序不兼容的困扰,并且不再让用户在登录到网络上时遇到麻烦。

  举个例子,在Sun所勾画出的蓝图中,用户可以将掌上型电脑插入网络插槽并且能够被立即识别出来,从而自动地成为了网络的一部分。有了这样的手持式设备,用户就可以方便地访问一台计算机上的数据,并且利用另外一台计算机所提供的服务来处理这些数据;接下来他还可以在最近的一台打印机上打印数据,而不用在掌上型电脑上预装打印机驱动程序。这样不可思议的事是通过这部掌上型电脑自动下载一个基于JAVA的打印机驱动程序来实现的。网络与应用程序之间这种自动而便捷的集成可以应用到从PC到蜂窝电话的几乎任何一种电子设备之上。

  这种分布式的计算体系结构并不新奇,Sun公司的Jini也不是实现下世纪网络世界的操作系统唯一的技术。Lucent Technologies公司在1997年推出了为嵌入式系统设计的Inferno技术,该技术在逻辑上与JAVA极为相似,也包含了虚拟机概念、编程语言以及通信协议;Oak Ridge国家实验室也推出了称为并行虚拟机(PVM)的技术,它旨在通过网络上完全不同的机器之间进行合作而提供一种低价位的超级计算机;IBM力推的T Spaces在概念与实现上与Sun也很类似;而脚踩两条船的Microsoft也正在研究分布式操作系统,他们关于分布式操作系统的大手笔项目称做Millennium。Microsoft希望通过Millennium取得两大伟绩:一是将桌面操作系统完全而无缝地分布到世界范围的网络中去,二是将程序员带往不再考虑底层机器细节的更高抽象层次上。这两个目标对于分布式系统来讲是相当关键而密不可分的。但是,由于Sun拥有JAVA编程语言以及相应的虚拟平台,它在将操作系统引入下个世纪中处于一个极为特殊的地位。


  Jini是如何工作的


  Jini解决的并不是诸如一个特定的应用程序如何在网络上进行工作这样的细节问题,而是为这些服务提供一种极为关键的能力,使得它们彼此之间可以意识到对方的存在,进而建立起相互的连接。Jini的核心是Sun JDK1.2中的JAVA Remote Method Invocation(RMI),这是一种使JAVA对象之间可以在网上实现交互的网络服务。这样看来,Jini就可以看作是JAVA软件组件模型JAVABeans在理论与实践上的一种延伸了。

  Jini网络就像是一个市场,在其中商人们贩卖自己的商品。在Jini网络中,商人们就是最终用户、设备或者应用程序。贩卖的过程是这样的:一个新的商人来到这个市场,他宣告了自己的到来,并且很快建立起了商店;然后他将所卖的商品以及提供的服务写下来,像许多其他的商人一样写在一张卡片上,而这些卡片的信息就公布在一个布告栏中;Jini提供了这种销售的机制,根据它的规定,商人们被授予在布告栏上贴广告的地方,并在那里发布消息;顾客们则在布告栏前驻足,寻找他们感兴趣的卡片信息,然后从卡片上抄下与商家联系的方式;接下来顾客就与商人在诸如“什么时候交货”或者“怎么买卖”这样的细节问题上讨价还价;而商人们交易时所遵循的交易规则是由Sun的另外一个标准JAVASpaces来规定的;对于顾客来讲,商人之间的自由交易是不可见的。

  Jini所蕴涵的意思当然比这个比喻要来得丰富得多:例如消息在布告栏上不会被偷走,以及广告所占据的实际空间并不需要考虑等等。但是,这个虚拟市场也存在着固有的问题:例如这些商人对他们的顾客缺乏判断的准则,还有当网络发生故障、商家突然消失时如何进行交易也是需要考虑的问题

  Jini中,这个由商人和顾客组成的市场被称为一个“联盟”。Jini通过一种“发现并加入”(Discovery and Join)服务为该联盟分配空间;它的另一种“查找”(Lookup)服务用来在布告栏中发布信息,并且接受交易要求;Jini由一种“出租”(Leasing)模型来解释何时可以将卡片从布告栏上撤走,以及制订合同所需遵循的规则;并且由一张“访问控制列表”(Access Control List)来规定谁可以使用特定的服务;服务的提供与进行由JAVASpaces和实际的应用程序共同操纵;商人之间交流所采用的通用语言由JAVA的RMI规定来决定。

  Jini和JAVASpaces一起为当前集中式的系统服务带来了一种转变。一个操作系统实际上就是一些子功能的集合,但是它进行的是一些复合式的操作。Jini和JAVASpaces打破了这种单一的模式,而把许多服务分布到网络的不同部分上去,从而将OS分成了若干子系统,并且将这些子系统分散到了网络、客户机以及服务器上。对于实现分布式的合作来说,Jini是这种JAVA基础结构中起步性的关键步骤。由于JAVA具备面向对象的特性以及执行可传输代码的能力,Jini可以在网络上分发大量的软件对象。这些独立的应用程序或者对象可以根据用户的需要在网络上传输,从而与其他对象进行交互。


  Jini是如何工作的


  Jini将会给企业带来的影响


  Jini和分布式系统在降低网络交互的复杂性方面将使企业得益非浅。许多公司内部的计算机设备种类繁多,诸如PC、打印机、手持式设备、蜂窝电话以及服务器等等,简直令人头痛。比方说,如果一台打印机发生了故障,那么立刻所有的网络用户就需要修改他们工作站上的打印设置。而Jini能自动识别网络上的变化,并且对用户透明地在网络上传输像打印驱动程序这样的代码,从而彻底地解决了这样的问题。Jini的梦想也为崭新的商业运作模式创造了可能,Sun希望在不远的将来,新的经营模式会产生于基于Jini的灵活机动的网络,比如出租大型硬盘组的磁盘空间等等。由于公司们正在致力于挖掘新的商机,Jini很可能为现在任何人都想象不到的计算机硬件工作模式提供其所需要的基础。


  Jini走出第一步


  像Jini这样的分布系统技术毫无疑问会成为今后十年里发展的主要力量,但是,Jini的应用还很不成熟。目前,它只不过是为开发人员更好地利用网络及其资源编写应用程序的基础工具。在更为基础的层次上,厂商们需要为他们所有可能在Jini网络上运行的设备编写基于JAVA的驱动程序,或者为驱动程序编写JAVA接口。

  问题在于:何时Jini才能走出研究和开发阶段,何时它才能成为真正的产品从而造福于企业?

  Jini的实质是JAVA。而在网络或者多台计算机上提供分布式的服务正是JAVA的目标。由于Jini基础结构使用的是JAVA RMI以及面向对象的编程,因此Jini对于JAVA和面向对象的程序员来说会显得更为直接,但是编写分布式应用程序比一个单独应用程序来说总归复杂得多。例如,开发一个经常在一开始时用作介绍的应用程序“Hello World”,在集中的操作系统以及应用模型中,可能只需编写几行代码就可以在屏幕上显示出“HelloWorld”消息,甚至新手在几分钟之内就可以编写出这个程序。但是如果是在分布式的环境中,编写同样应用程序的复杂性就会大大提高了。程序员们必须考虑到诸如网络故障、延迟以及安全等方面的问题。尽管Jini和JAVAspaces提供了分布式的安全模型以及对象处理机制,但是让它们能为今天的程序员们所应用还要经过相当长的时间。正像其他计算机方面的问题一样,这是一个培训和普及的问题,因为程序员们需要学习如何编写出高质量的分布式应用程序。

  从另一方面看,Jini已得到了令人鼓舞的支持。Sun已经同诸如Quantum和Ericsson这样的公司建立起了伙伴关系,他们们均表示要采用该技术;Novell也表示要为Jini提供创建目录的服务。尽管目前重要的合作伙伴并未作出任何许诺,但至少一家并不著名的公司———Malaysian已经将Jini应用了起来。

  Jini在很多方面是大多数传统操作系统无法匹敌的。虽然像Microsoft这样的公司正在研究自己的分布式计算系统,但目前Jini仍是领先的。一方面,程序员们已经可以创建Jini应用程序了,对于JAVA程序员来说,他们已经熟悉了许多Jini的特性;另一方面,由于JVM的普及,Jini必须与各种各样的环境进行合作和集成。由于分布式系统的前景无可限量,我们可以打赌:Sun或者是Microsoft将为未来的分布式操作环境制订标准。Jini建立在JAVA坚强的基石之上,并且JAVA深入人心,它代表了早些时候在计算模式上要进行广泛而深远转变的一种热潮;而Microsoft则控制了当前OS的标准。

  创造强有力的系统和应用程序,从而更好地利用网络资源、使用分散的资源来解决大型的问题,这就是我们的目标。将这个梦想变为现实还需要长时间的努力,但至少目前,Jini已经在解决网络上互操作性的矛盾上给我们带来了希望,同时是它使得设备驱动程序的问题已经成为了过去。

Jini的作用
    为分布式系统中的设备提供即插即用的网络功能
与Jini竞争的技术
    Lucent的Inferno
    Oak Ridge国家实验室的并行虚拟机(PVM)
    IBM 的T Spaces
Jini的短处
    对编程人员要求高,编程复杂,需要学习一段时间才能掌握

摘自中国计算机报 出版日期:1998-11-05 总期号:774 本年期号:84

目 录 译者的话 序一 序二 前言 第一部分 基 础 第1章 一种新的计算模式 1 1.1 Jini的历史 1 1.1.1 Jini的设想 2 1.1.2 更广泛的应用 3 1.1.3 Jini的公开 4 1.1.4 许可证 4 1.1.5 共享源码许可 4 1.2 获取和安装Jini 5 1.2.1 安装Java 2 6 1.2.2 安装Jini 7 1.2.3 设置环境 9 1.2.4 启动Jini运行时的服务 10 1.2.5 通过GUI启动所需服务 11 1.2.6 用命令行方式启动所需服务 15 1.2.7 运行例子程序 19 1.3 参考读物和资源 20 第2章 分布式系统 21 2.1 网络中的焦点 21 2.1.1 传统网络系统 21 2.1.2 网络并不透明 22 2.2 新的分布式计算模型 25 2.2.1 需要强类型 26 2.2.2 远程多态性的例子 27 2.2.3 远程特性是接口的一部分而与实现 无关 28 2.3 参考读物 29 第3章 Jini模型 31 3.1 Jini设计的中心 31 3.1.1 简明性 31 3.1.2 可靠性 31 3.1.3 可伸缩性 32 3.2 设备不可知论 33 3.3 Jini不是什么 33 3.3.1 Jini不是名字服务器 33 3.3.2 Jini不是JavaBeans 34 3.3.3 Jini不是企业JavaBeans 34 3.3.4 Jini不是RMI 34 3.3.5 Jini不是分布式操作系统 34 3.4 Jini的五个基本概念 34 3.4.1 发现 35 3.4.2 查找 37 3.4.3 租借 41 3.4.4 远程事件 45 3.4.5 事务 51 3.5 后面的内容 56 第4章 部署方案 57 4.1 成为Jini服务 57 4.2 如何为设备和服务使用Jini 58 4.3 在通用计算机上运行Jini 58 4.4 在支持Java的设备上运行Jini 60 4.4.1 JiniJava子集 60 4.4.2 版本问题 61 4.5 Jini使用设备代理 61 4.6 基本Jini服务的需求 63 4.7 适于使用Jini的情况 63 4.8 不适于使用Jini的情况 64 4.9 参考读物 64 4.10 后面的内容 64 第二部分 Jini 的开发 第5章 Jini起步 65 5.1 运行Jini服务 65 5.2 按部署情况进行开发 66 5.2.1 运行多个HTTP服务器 67 5.2.2 警惕代码基问题 67 5.2.3 设置安全管理器 68 5.2.4 注意安全策略 68 5.2.5 注意CLASSPATH 68 5.2.6 考虑把可下载代码捆绑为 一个JAR文件 68 5.2.7 小结 69 5.3 第一个Jini程序:Hello, World 69 5.3.1 实现服务代理 72 5.3.2 “包装”应用程序 73 5.3.3 使用发现和查找 75 5.3.4 其他细节 76 5.3.5 使用服务模板来寻找服务 78 5.3.6 查找一个服务 79 5.3.7 编译并运行例子程序 80 5.4 扩展Hello, World程序的事件能力 84 5.4.1 编写远程事件接收器 86 5.4.2 通过Notify ( )请求事件 87 5.4.3 编译并运行程序 88 5.5 带有租借的Hello,World例子 91 5.5.1 一个简单的方法 92 5.5.2 编译和运行程序 97 5.6 使用可激活的后端进程 99 5.7 后面的内容 109 第6章 深入理解:发现 110 6.1 发现是什么 110 6.1.1 用组划分群体的名称空间 111 6.1.2 发现的分类 111 6.1.3 发现机制的要求 112 6.2 发现概述 112 6.2.1 IP组播基础 112 6.2.2 服务发起的发现 113 6.2.3 查找服务发起的发现 113 6.2.4 “直接”发现 114 6.3 在应用程序中使用发现 115 6.3.1 DiscoveryListener接口 115 6.3.2 DiscoveryEvent封装了发现信息 115 6.3.3 使用LookupDiscovery控制组播 发现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值