JINI 概述 刚刚看到这个二十世纪的技术,挺有意思,可能现在有许多替代了,如JPPF,但是这个个容易理解呀

尽管J a v a最初是面向消费类电器,但它通常只被认为是构造a p p l e t的工具。不过在S u n公
司内部, J a v a的最初目标并没有被丢弃,一些工程师认为这些想法仍具有挑战性。虽然J a v a依
靠其在机器间发送和安全执行可移植性代码的能力,使这个想法成为可能,可是要在实际生
活中使设备易于管理,从而实现公司最初的设想,仍然存在很多问题需要解决。
这一设想需要一些我们通常不会与桌面计算机联系起来的机制:
• 这些设备的软件架构必须非常健壮。烤箱和电视不可能出现带有“ Abort, Retry, Ignore?”
提示信息的错误。软件不仅要允许,而且要有助于开发可靠的系统。
• 设备必须支持真正的、简便的“即插即用”,在I n t e r n e t上它们要和电话类似,插上就能
工作。这种即插即用的需求会带来很多问题。首先,设备必须易于使用,典型的消费类
设备应该只有有限的接口,就像电话机一样。显然,不是家庭用的所有设备都有鼠标和
高性能显示设备。事实上,我们并不想要这样的接口—装上鼠标,只会使它们的使用
更加复杂。其次,这些设备必须易于管理,人们希望是只要插上它们就可以使用,根本
不需要为它们配置I P地址、设置网关和路由器,安装(或删除)驱动程序等等。在这里
软件的升级也是一个重要的问题,想象一下一个大宾馆里的所有电视都需要管理员进行
软件升级的情况,还不如不升级电视机。
• I n t e r n e t时代的软件系统必须是可扩展的。为单独的设备,比如说微波炉中的C P U编写软
件已经十分具有挑战性,而潜在的问题在于它还需要与I n t e r n e t上其他对等的设备进行
通信。更要命的是,最初的设备制造商并不知道他们的产品后来会变成什么样。我们当
然希望软件服务和设备不需做大量的重新配置网络的工作就可以相互利用。
• 这样的设备会形成自发的组合。设想一个数码相机与一台彩色打印机的连接,我们希望
能直接在打印机上打印快照,而不需要彼此明确地交互。在很多情况下,完成设备之间
相互通告所做的努力,使得把它们结合起来工作可获得的好处化为泡影,这也是我们尽
可能减少网络重新配置的一个原因。在当今世界,连网将变得越来越动态,而不再是固
定和静止的。
许多研究人员和计算机世界的领袖人物,早就支持把大量设备和软件服务简单可靠地组
织起来协同工作的设想。Xerox Palo Alto研究中心的Mark We i s e r称这种构想为“无所不在的
2 第一部分基础
下载
计算”,其意思是指连网的设备随时都处于可用的状态。Bill Joy是S u n公司的奠基人之一,
Berkeley UN I X的创始者,他相信在未来社会中传统的桌面计算机将继续存在,并且将成为家
庭和车辆中的智能设备。
基于这些想法,S u n公司的一个研究小组决定提供一种可以圆满解决J a v a最初目标的架构,
他们计划在J a v a的基础上建立一个具有可靠性、可维护性、可扩展性和自发性的软件层,这
正是当前世界所需要的产品。他们着手定义一个易于被编程人员理解的模型,从而提供一种
新的软件开发模式。这种新的模式对于很多人可能是生疏的,包括那些已经熟悉了编写网络
程序的人员。
这个项目就是J i n i ,它的开发人员支持者中有很多原来是J a v a的开发人员和支持者。B i l l
J o y就像在J a v a工程中一样是这个项目的策动者和有力支持者。
Jim Wa l d o完成了J i n i中的很多早期工作,是主要设计师和开发者; Ann Wo l l r a t h提出了
R M I(Remote Method Invocation)功能,现在她正在J i n i环境中继续自己的工作,是系统的关
键设计人员; Ken Arnold定义了J i n i的事务和存储模型;另一个关键人物是来自S u n公司之外
的Bob Scheifler,他曾经领导了X集团,是他定义了J i n i的查找和发现协议。
已经有一些不同的编程模型试图解决分布式计算的问题。J i n i的设计者当然可以选择一种
模型来作为系统的基础以解决J i n i面临的类似问题,比如说瞬态逻辑、弱一致数据库或a g e n t模
型等,但是这样的系统一般需要人们在学习的时候从零开始,因为这些编程模型都是十分基
本的。幸运的是,设计人员最终把系统建立在了一组J a v a开发者熟悉的核心概念之上:移动
代码、强类型接口、接口和实现分离等。除了这些J a v a原有的概念外,他们还加入了J i n i独有
的新概念,包括一个分布式存储模型,这个模型基于耶鲁大学David Gelernter的L i n d a系统,
可作为通用设备存储和检索对象。J i n i还借用了一个在R M I内部使用了多年的概念—租借
(l e a s i n g),作为访问网上资源的方式。另外, J i n i大量使用周期性的组播( m u l t i c a s t),来完
成协作的J i n i应用和服务间彼此的通告。
J i n i的基本概念都是J a v a程序员所熟悉的,同时J i n i对J a v a增加了一些修改以适用于轻量级
的分布式计算,不过编程人员不需要花费精力从头学习新的计算模式。

你可能感兴趣的:(编程,工作,网络,分布式计算,分布式存储,电话)