Jini 能给您带来什么

发布时间:2024-02-21 09:52:15
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 1997年,Technologies公司推出了为嵌入式系统设计的Inferno技术,逻辑上与JAVA非常相似,还包括虚拟机概念、编程语言和通信协议;Oak Ridge国家实验室也推出了平行虚拟机(PVM)的技术,它旨在通过网络上完全不同的机器之间的合作,提供低成本的超级计算机;IBM推T Spaces在概念和实现上与Sun非常相似;Microsoft也在研究分布式操作系统,他们关于分布式操作系统的大型项目被称为Millennnium。Microsoft希望通过Milenium取得两个伟大的成就:一是将桌面操作系统完全无缝地分布到世界网络中,二是将程序员带到更高的抽象水平,不再考虑底层机器的细节。Microsoft希望通过Milenium取得两个伟大的成就:一是将桌面操作系统完全无缝地分布到世界网络中,二是将程序员带到更高的抽象水平,不再考虑底层机器的细节。这两个目标对分布式系统至关重要和不可分割。然而,由于Sun拥有JAVA编程语言和相应的虚拟平台,它在下个世纪将操作系统引入到一个非常特殊的位置。

  Jini是如何工作的

  Jini解决的不是一个特定的应用程序如何在互联网上工作的细节,而是为这些服务提供了一个非常关键的能力,使它们能够意识到彼此的存在,然后建立相互联系。Sunnni的核心是Sunni JDK1.JAVA2中 Remote Method Invocation(RMI),这是一种网络服务,使JAVA对象能够在线交互。这样,Jini就可以看作是JAVABeans在理论和实践上的延伸,JAVA软件组件模型。

  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的应用仍然非常不成熟。目前,它只是为开发人员更好地利用网络及其资源编写应用程序的基本工具。在更基本的层面上,制造商需要编写基于JAVA的所有可能在Jini网络上运行的设备的驱动程序,或编写JAVA接口。

  问题是:Jini什么时候才能走出研发阶段,什么时候才能成为真正的产品,造福企业?

  Java是Java的本质。JAVA的目标是在网络或多台计算机上提供分布式服务。JAVA是JAVA RMI和面向对象的编程,所以Jini对JAVA和面向对象的程序员来说会更直接,但是编写分布式应用总是比单独的应用复杂得多。例如,开发一个在开始时经常被用作介绍的应用程序“Hello World在集中的操作系统和应用模型中,屏幕上可能只需要编写几行代码就可以显示“HelloWorld新闻,即使是新手也可以在几分钟内编写这个程序。但在分布式环境中,编写相同应用程序的复杂性将大大提高。程序员必须考虑网络故障、延迟和安全问题。虽然Jini和Javaspaces提供了分布式安全模型和对象处理机制,但它们需要很长时间才能应用于今天的程序员。就像其他计算机问题一样,这是一个培训和普及的问题,因为程序员需要学习如何编写高质量的分布式应用程序。

  另一方面,Jini得到了令人鼓舞的支持。Sun已经与Quantum和Ericson等公司建立了合作伙伴关系,他们都表示将使用该技术;Novell还表示将为Jini提供创建目录的服务。虽然目前重要的合作伙伴还没有做出任何承诺,但至少有一家不知名的公司——Malaysian已经应用了Jini。

  Jini在很多方面是大多数传统操作系统无法比拟的。尽管像Microsoft这样的公司正在研究自己的分布式计算系统,但Jini仍然处于领先地位。一方面,程序员可以创建Jini应用程序,他们熟悉Java程序员的许多特点;另一方面,由于JVM的普及,Jini必须与各种环境合作和集成。由于分布式系统的前景无限,我们可以打赌Sun或Microsoft将为未来的分布式操作环境制定标准。Jini是基于JAVA的强大基石,JAVA深深扎根于人们的心中,它代表了早期计算模式的广泛而深刻的变化;而Microsoft则控制了当前的OS标准。

  我们的目标是创建强大的系统和应用程序,以便更好地利用网络资源和使用分散的资源来解决大问题。把这个梦想变成现实还需要很长时间,但至少目前,Jini给我们带来了希望,以解决网络上的相互操作矛盾。同时,它使设备驱动程序的问题成为过去。

Jini的作用 为分布式系统中的设备提供即插即用的网络功能 与Jini竞争的技术 LucentInferno Oak Ridge国家实验室并行虚拟机(PVM) IBM 的T Spaces Jini的缺点 要求编程人员高,编程复杂,需要学习一段时间才能掌握
上一篇 选 择 您 需 要 的 Java 书 籍
下一篇 在servlet中直接写端口发送邮件的例子

文章素材均来源于网络,如有侵权,请联系管理员删除。

标签: Java教程Java基础Java编程技巧面试题Java面试题