账号:
密码:
最新动态
产业快讯
CTIMES / 文章 /
以Jini实现普及运算
 

【作者: Roman Vichr、Vivek Malhotra】2004年10月30日 星期六

浏览人次:【5138】

Jini 为分散式计算环境中的网路互相操作性问题提供了开放解决方案。这意味着 Jini 做到了以下几点:


  • ●寻找和连接网路上的服务


  • ●从不可靠的部分(包括网路本身)建立可靠的服务集合


  • ●处理非常大的或持续长时间的网路


  • ●使服务的元件能够随时更改而不中断该服务。


  • ●Jini 网路技术建构于 Java 平台之上并提供向网路内的设备传递服务的基础结构,并且与连接性、线路协定和传输协定无关。



Jini 的具体细节

正如上面提到的那样,Jini 旨在提供自发的网路连结,允许用户将几乎任何支援Java 的设备(也就是说,其作业系统支援Java 应用程式的任何设备)直接插入到网路,并且网路的所有元件可以立即识别这个新的设备及其能力。例如,如果新设备是一台印表机,则Jini 网路中的其他电脑将立即能够找到并使用这台印表机。


透过使用在网路中行动的物件,Jini 架构意味着整个网路(连同其中每个单独的服务)将可适应于变化。 Jini 架构为客户端和服务在网路上相互找到对方并共同工作以完成任务指定了一种方法。服务提供程式为客户端提供可移植的基于 Java 技术的物件,这些物件能给予客户端对该服务的访问权。这种网路交互可使用任何类型的网路连结技术(如RMI、CORBA 或SOAP),因为客户端只看到基于Java 的物件,而且所有随后发生的网路通信都限制在该物件以及发出该物件的服务。


当服务加入到具有支援 Jini 的服务和∕或设备的网路中时,它会透过发布一个实作该服务 API 的 Java 对象来宣传自己。这个物件的实现能够以该服务选择的任何方式工作。客户端透过寻找支援该 API 的对象来找到服务。当它得到服务的已发布对象时,它将下载与该服务通信所需的任何程式码,从而学习如何透过这个 API 与特定的服务实作进行通信。实现该服务的程式师选择如何使用 RMI、CORBA、XML 或专用协定将 API 请求转换成线路上的位元。请参考(图一与图二)。


Jini在普及运算中面临的挑战

现在让我们研究一下在无线设备中使用 Jini 所引发的问题,特别是那些在行动设备中嵌入Jini技术所引起的问题。首先,Jini 技术要求设备安装了完整的 Java 2 标准版(J2SE)虚拟机(VM),缺少用于这些设备的标准无线网路连结技术更增加了这一困难。


为了帮助克服这些问题,已经建立了代理 Jini 架构。在代理 Jini 模型中,行动设备将程式码传递到代理主机,代理主机随后执行正常的 Jini 连接活动,如代表该设备注册和使用服务。例如,印表机可以定位代理主机并传递程式码以便为该印表机注册列印服务。类似地,无线数位相机会用同一代理主机作为定位印表机和列印图片的方法。


Jini 代理解决方案

Jini 代理专案定义了一种架构,它允许原本不能加入 Jini 网路的设备能够加入网路。大多数行动和无线设备都属于这一类,特别是那些用于普及运算(Pervasive Computig,PvC)的设备。它需要使用一个能够与 Jini 网路交互的物件来连接设备及其环境。为做到这一点,需建立一个物件(或代理)来代表设备。透过向代理主机提供 JAR 档或 JAR 档的位置,设备在其“本地”网路环境找到代理主机然后用它注册。代理主机实例化一个代理物件,该物件是从该 JAR 档获得的。这个代理物件随即成为该设备在 Jini 网路上的代表。


无线连接不是因其稳定性而出名的。对于代理架构,不管连接建立或中断,代理物件都可以保持活动,维持关于当前会话的资讯并代表 Jini 网路中的设备发挥积极作用。随着可以使用不同的 CDC 设备,也可以对特定于设备的代理编译。


下面是使用代理 Jini 架构的一些优点:


  • ●使用闸道与不同的设备互连(因此适合于 PvC 计算)


  • ●用于旧设备的 Jini 代理主机;


  • ●本地端快取记忆体;


  • ●透过单个入口点连接到网际网路;


  • ●用于本地端设备的防火墙(高安全性);


  • ●被业界广泛采用,OSGI组织



所有这些优点使Jini 代理架构非常适合于PvC 计算,其中该架构所针对的硬体或软体元件的共同属性是不能下载程式码,其原因是设备的资源限制或网路连接性限制(比如在无线网路中)。以下是无线 PvC 中 Jini 代理架构的基本特点。


  • 设备类型独立性:代理架构必须能够支援广泛的具有不同能力的硬体和软体元件。手机这样的设备不能直接使用 Jini,因为它不具备支持完整 J2SE 虚拟机的资源。


  • 网路类型独立性:代理架构必须能够容纳不同种类的连接性技术。网路类型独立性包括同时在同一物理传输介质上支援不同的协定。


  • 保留即插即用(plug-and-work):代理架构必须保留 Jini 技术的即插即用模型。 Jini 架构包括发现、程式码下载和分散式资源租用等概念。该原则假定存在这样一种机器,该机器既与羽量级设备又与 Jini 网路连接以克服诸如不能下载程式码之类的限制。



从 Jini 衍生的其他适合 PvC 的架构

下面将介绍一些针对特殊实作需求对 Jini 规范进行定制所产生的最新 Jini 项目:


Jump 专案(处理 P2P 网路连结)

Jump 专案的目标是为 P2P(或称为点对点通信)建立新的发现和解析方法。这需要根据规范使用“自然语言定址”系统的名称伺服器(已被 JXTA采纳),并需要提供代理专用位址的方法的应用程式闸道。该专案没有取得解决方案就停止了,这可能是由于 JXTA 专案的引入。有关使用基于 J2M​​E 的 JXTA 的详细资讯可以在其网站找到。


Edge Networking(允许设备进行通信而不管使用什么协定)

Edge Networking 允许将位于网路边缘的所有设备(不管在NAT∕Internet∕xDSL 连接)连接在一起。 Edge Networking 允许您轻松地使用自然语言发现这些设备,并且允许跨传统网路边界对这些设备进行入站连接。 Edge Networking 独立于传输协定,这给予应用程式开发人员使用 JXTA、HTTP、SIP 或任何其他协议进行通信的灵活性。


Davis 专案(处理 Jini 架构中安全性)

Jini Davis 专案主要关注对与安全性架构有关的几个方面的支援,包括非统一网路安全性(涉及到客户端、伺服器、远端方法和参数的变化)和各种使用不同协定、演算法、机制和策略的安全性实现。


Edge Zuccotto Xpresso(商用 Jini 解决方案)

Jini 代理架构的这个商业版本旨在使即便是简单的设备也能利用和提供Jini 服务,但当使用能够运行Java 应用程式的设备(例如一部嵌入Zucotto Xpresso Java 本机处理器的手机)时能获得最大的好处。


蓝芽(消除协定差异和设备识别)

蓝芽(Bluetooth)无线技术为行动设备发现其他邻近设备并与其通信提供了一种方法。随着新设备的加入以及已建立设备的移除,每台设备都始终可以被其附近的其他设备识别。这样的动态、临时网路连结是对 Jini 连接技术的极佳补充,它被设计成在符合 Jini 代理架构要求的情形下能很好地执行。


基于 J2M​​E 的 Jini(透过将设备视为物件来克服限制)

当前,在 CLDC 无线设备中使用 Jini 存在限制。随着 Jini 代理专案的实现,Jini 正明确地向 J2ME 扩展。例如,想像使用您的 J2ME 设备参与线上交易。当您从一个地点移到另一个地点时,您会遇到不同的人并发现不同的事项(客户端)。所有这些交互都发生在您自己的交易物件上,该物件实际上是您与这个世界的介面,一个从您的 J2ME 设备进行控制的物件。当交易执行时,会向您提供记帐服务,确认您何时开始了交易并据此开始对您收费。


将设备作为 Jini 网路中唯一物件的好处是扩大了交互作用语义集合。在门户模型中,从设备的角度来看设备登录和注册可能相同,但其他服务看到的是门户而不是单个对象。


Jini-RMI 方法(克服设备差异的另一种方法)

客户端 A 向寻找服务(Lookup Service)发送一个请求;服务 B 以同样的方式向寻找服务发送一个请求。寻找服务用编组的寻找服务代理物件响应客户端 A 和服务 B;服务 B 向寻找服务发送一个 ServiceRegistrar.register() 请求。寻找服务用注册回应。客户端 A 发出针对服务 B 的 ServiceRegistrar.lookup(),寻找服务用服务 B 代理物件响应。客户端 A 直接将方法发送至服务 B,服务 B 从而对客户端 A 作出回应。


当在小设备上使用 Jini 时,驻留在小设备上的服务 B 就会面临一个问题,因为它不能解组寻找服务代理物件。这会产生一个“假装的”寻找服务与客户端 A 交互。客户端 A 使用 ServiceRegistrar.register(),该方法返回服务 B 代理物件。这意味着设备执行自己的寻找服务以及所有 Jini 发现协议;设备服务寻找服务代理物件完全在本地客户端上运行。


Jini 与未来

如您所见,Jini 网路连结的所有特殊实现都试图提供满足特定解决方案需要的服务,尤其要解决那些与参与 Jini 网路交互的设备限制有关的问题。


当然,设备限制是行动世界一个特殊的问题。目前的标准不能实现完整的 Jini,因此在各种项目中建立了变通方法。 Jini 架构的许多变体,从Jini-RMI 实现、到满足代理Jini 架构需求的蓝芽,以及Davis 项目的安全性增强、还有Jini 架构,告诉我们Jini 不是昙花一现,而有可能证明是PvC 一直需要的无线连接的关键。有了 Jini,我们在网路上支援各种设备以建立真正的用户社区的目标将能够实现。


<本文资料由台湾IBM提供,由陈玠锰整理,更多资料请参考IBM Taiwan开发者网站:http://www2.tw.ibm.com/developerWorks/tutorial/SelectTutorial.do?tutorialId=134>


相关文章
用Arduino 打造机器人:循迹、弹钢琴、下棋都行!
树莓派推出AI摄影机、新款显示器
智慧充电桩百花齐放
充电站布局多元商业模式
以爆管和接触器驱动器提高HEV/EV电池断开系统安全性
comments powered by Disqus
相关讨论
  相关新闻
» 台达推出5G ORAN小型基地台 实现智慧工厂整合AI应用
» 欧洲航太技术展在德国盛大展开,全球吸睛 镭洋推出卫星通讯整合方案,目标抢占庞大的欧洲卫星商机
» 经济部促成3GPP大会来台争话语权 国内外大厂共商5G/6G新一代技术标准
» 经济部支持跨国研发有成 台欧双方分享B5G~6G规划
» 达梭系统收购IQMS扩展3DEXPERIENCE平台


刊登廣告 新聞信箱 读者信箱 著作權聲明 隱私權聲明 本站介紹

Copyright ©1999-2024 远播信息股份有限公司版权所有 Powered by O3  v3.20.1.HK8549SDL90STACUKF
地址:台北数位产业园区(digiBlock Taipei) 103台北市大同区承德路三段287-2号A栋204室
电话 (02)2585-5526 #0 转接至总机 /  E-Mail: webmaster@ctimes.com.tw