服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

认识jini


  一、前言

长久以来许多工程师们,都一直期盼著一个超大型的计算系统,这系统是由网路上许多机器,从超大型主机乃至嵌入在某些设备上的微小晶片,彼此相互合作而成。所有的工作,都可以在任何时间被分散到网路上的任何地方、任何种类的机器上去处理。这样的系统有很好的弹性,并且可以藉由不断地更新设备,来解决更多问题。

然而,我们 要一致的语言,以及更强的通讯协定( superprotocols)等,让网路上众多繁杂的成员,能彼此顺利地沟通。但是就目前的情况,要达到这样的目的很难,因此我们可以考虑把一种特殊的程式码(genetic code)嵌入到许多软硬体之服务中,使得网路上的成员可以轻易的相互分享彼此资源,这就是 jini 所要达成的目标 [1] 。

jini 是由 sun 公司 r&d 的bill joy 所提出的一项技术。我们可以藉著使用jini,创造出一个富有弹性、容易管理、且可随时随地使用各种服务的网路计算环境。为了让使用者知道网路上有哪些服务可被使用,我们必须建立一个联盟( federation ),让网路上的服务主动加入。当有某个服务加入联盟时,也等於同时向整个网路告知:「我可以被使用,有谁 要我的服务?」。使用者透过联盟,可以得知有哪些服务可以使用。然而,我们要如何才能很简单、很轻易地使用这些服务关於这个问题,也就是 jini 的工作重点之一。

让我们来看看jini 是怎堋做的。网路上的服务要能够成为联盟的一份子,不管是硬体服务也好、软体服务也好,都必须嵌入jini 的程式码。此外,网路上还必须提供 jvm的环境,才能执行jini程式以获得这些服务。jini的程式码是利用 sun 公司所提供的 jini package 撰写而成。jini package使用的语言是java,并且包含了许多处理网路上资源的相关功能。例如:如何帮助网路服务寻找(discovery)、以及加入(join)联盟;或者帮助网路服务处理分散式的承租(leasing)、交易( transactions)等的问题。而这些网路服务彼此沟通时,所应用的技术是 rmi(java remote method invocation )。简言之,网路上的服务藉由 jini 所提供的介面,得以相互沟通、合作,来完成使用者的要求。

二、体系结构

jini system 是由基础建设( infrastructure)、程式设计模型( programming model )、服务( services) 三方面所构成。
基础建设( infrastructure)
jini 基础建设的核心包含以下几个部分:

discovery protocol:
提供了如何让网路上任何种类的资源加入联盟的方式。

extended rmi :
jini的元件彼此沟通时所使用的机制。

distributed security:
定义了jini 联盟成员的使用权限。

lookup service:
用来展现联盟中的所有成员,以及帮助使用者寻找网路资源,或者负责提供联盟中的资源给使用者用。

程式设计模型( programming model )
jini 提供一些分散式的程式设计模型,而 jini 的基础构造,就是利用这些模型来组合。模型所提供的介面(interface),包括以下几个类型:

leasing interface:
负责管理物件被使用的时间。

two phase commit interface :
是一个轻量级的(light-weight)、物件导向的( object-oriented)介面。负责管理分散式交易( transaction)的动作,如:roll back 、roll forward 等。

events interface:
在分散式计算的环境中,必须确保程式执行的先後顺序,利用事件的观念可以帮助我们解决这个问题。

服务(services)
有了jini的架构以及程式设计模型後,我们可以利用这些技术来设计管理网路资源的服务,以促进分散式计算的发展。例如:javaspaces、two phase commit manager。

三、javaspace

jini提供了在分散式环境中寻找( look-up)、注册( registration)、租借(leasing)等功能。而 javaspaces则负责管理分散式物件的处理程序( processing)、分享(sharing)、以及流通(migration )等。因此 jini 与 javaspaces 彼此存在著相互合作的关系[3] 。以军队作比喻, jini扮演的是军 官的角色,负责分派许多武器装备给军队。javaspaces则扮演军队的角色,负则使用那些被分派的武器以执行命令。简单的说, javaspaces就好像网路上的一个市场,它提供一个简单、快速、统一的介面,让网路上分散的资源可以被分享、协调与流通[4] 。

javaspaces是用 java所发展的技术,并且以rmi实作其网路通讯的功能,一般应用在n-tiers 架构的中间层( middle tiers)[5] 。javaspaces虽然能提供 求者与供应者之间查询与沟通的机制,但它并不是资料库,而是以简单的messaging system为基础,进而提供更强大的功能。

除了jini之外, javaspaces技术也可被应用在其它系统与服务中,如: workflow systems 、customer management systems、supply chain management 、intelligent rich data distribution、 trading services 、auction systems 、resource allocation and management systems、agent systems、以及 publish and subscribe services等[4] 。

四、应用

jini技术有一个主要目的:让许多电子产品可以容易的被加入至网路上,也就是随插即用(plug-and-play) [6] 。任何物件,如: dvd、cd 、vcr、桌上型电脑、可携式电脑、印表机、扫描器、磁碟机、播放器、电话、电视机、警报系统、医疗器材、空调系统、厨具、汽车引擎、汽车的丁器板等,只要利用jini技术,就可以结合各类的电子产品成为网路上的资源服务[6] ,而使用者只 透过电话或无限通讯器材就能使用这些服务。

想像一个剧情:一个使用者坐在公园里,想要透过掌上型电脑来使用网路上的印表机,但是他并没有任何印表机的驱动程式。首先,jini会启动 lookup服务(类似 javaspaces),到联盟(federation )中搜寻符合使用者条件的印表机。找到之後,jini会跟那台印表机沟通,取得它的驱动程式,并且传至使用者的掌上型电脑。使用者於是可以轻易的使用网路上的印表机。

我们也可以把家中的电器用品都结合到网路上,这样可以让我们在任何时间、任何地点来控制家里的电器,这将是多堋令人期待的一个理想。

目前已经有许多公司正在发展相关的技术,这些公司包括axis、canon、 computer associates、datek 、enocanto、epson 、ericsson、fedex 、mitsubishi、 norwest mortgage 、novell、odi、 oki、quantum、 salomon brother、 seagate、以及 toshiba等。

五、结论

jini让许多电器设备、网路服务结成联盟( federation)。 jini的最上层以 lookup机制为基础的目录服务( directory service ),让许多含有 jini技术的资源,来注册以及被公布於网路上。下一层则利用javaspaces 技术来管理联盟的资源,以让使用者或其他应用程式使用资源。底层则是以rmi为基础的协定,用来规范物件之间在网路上的沟通。

如同sun公司所说:「网路就是电脑(the network is the computer)」。网路的出现提供了无限的计算资源,让我们可望达成一个超大型的计算系统。java技术使得分散式计算变得容易可行,jini 则实现网路就是一个超大型电脑的理想。

扫描关注微信公众号