Jini 和 PvC

2023-10-20 18:40
文章标签 pvc jini

本文主要是介绍Jini 和 PvC,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

  本文内容包括:  

  Jini 的具体细节  

  PvC 中 Jini 面临的挑战  

  Jini 代理解决方案  

  从 Jini 派生的其它适合 PvC 的体系结构  

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

  JINI 与未来  

  参考资料      

2002 年 10 月 12 日

随着普及运算(或简称 PvC)扩展到各种设备(包括移动设备),我们正在研究各种技术以改善 PvC 服务和可靠性。这些技术中最有希望的一个就是 Jini。

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 请求转换成线路上的位。

回页首

PvC 中 Jini 面临的挑战

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

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

回页首

Jini 代理解决方案

Jini 代理项目定义了一种体系结构,它允许原本不能加入 Jini 网络的设备能够加入网络。大多数移动和无线设备都属于这一类,特别是那些用于 PvC 的设备。它需要使用一个能够与 Jini 网络交互的对象来连接设备及其环境。为做到这一点,需创建一个对象(或代理)来代表设备。通过向代理主机提供 JAR 文件或 JAR 文件的位置,设备在其“本地”网络环境找到代理主机然后用它注册。代理主机实例化一个代理对象,该对象是从该 JAR 文件获得的。这个代理对象随即成为该设备在 Jini 网络上的代表。

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

下面是使用代理 Jini 体系结构的一些优点:

  • 使用网关与不同的设备互连(因此适合于 PvC 计算)
  • 用于旧设备的 Jini 代理主机;
  • 本地高速缓存;
  • 通过单个入口点连接到因特网(宽带广域网,对本地设备使用较低带宽);
  • 用于本地设备的防火墙(高安全性);以及
  • 被业界广泛采用(OSGi ― 请参阅 http://www.osgi.org ― Espial,Echelon)。

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

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

网络类型独立性:代理体系结构必须能够容纳不同种类的连接性技术。网络类型独立性包括同时在同一物理传输介质上支持不同的协议。

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

回页首

从 Jini 派生的其它适合 PvC 的体系结构

下面是一些针对特殊实现需求对 Jini 规范进行定制所产生的最新 Jini 项目

Jump 项目(处理 P2P 联网)

Jump 项目的目标是为 P2P(或称为点到点通信)创建新的发现和解析方法。这需要根据规范使用“自然语言寻址”系统的名称服务器(已被 JXTA(请参阅 参考资料)采纳),并需要提供代理专用地址的方法的应用程序网关。该项目没有取得解决方案就停止了,这可能是由于 JXTA 项目的引入。有关使用基于 J2ME 的 JXTA 的详细信息可以在其站点找到。

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

Edge Networking 允许将位于网络边缘的所有设备(不管在局域网/广域网上还是通过拨号/DSL 连接)连接在一起。Edge Networking 允许您轻松地使用自然语言发现这些设备,并且允许跨传统网络边界对这些设备进行入站连接。Edge Networking 独立于传输协议,这给予应用程序开发人员使用 JXTA、HTTP、SIP 或任何其它协议进行通信的灵活性。

Davis 项目(处理 JINI 体系结构中安全性的各个方面)

JINI Davis 项目主要关注对与安全性体系结构有关的几个方面的支持,包括非统一网络安全性(涉及到客户机、服务器、远程方法和参数的变化)和各种使用不同协议、算法、机制和策略的安全性实现。

Edge Zucotto Xpresso(商用 JINI 解决方案)

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

蓝牙(消除协议差异和设备识别)

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

J2ME RMI Profile 的目标

J2ME 与 J2SE 1.2.x 或更高版本的互操作性

针对的设备:

  • 最低 2.5M ROM
  • 最低 1M RAM
  • TCP/IP 连接
  • J2ME CDC/Foundation Profile

基于 J2ME 的 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,我们在网络上支持各种设备以创建真正的用户社区的目标将能够实现。

参考资料

  • 您可以参阅本文在 developerWorks 全球站点上的 英文原文.
  • 单击本文顶部或底部的 讨论参与关于本文的 论坛。
  • 您可以在这里找到 有关 JINI 联网技术的更多信息。
  • 请访问 Jini 主页页面以获得 关于 Jini 的一切信息。
  • 请参阅 Roman 与 Vivek 编写的有关 PvC 体系结构的最新文章。
  • 获取有关 Reverse Port Address Translation(或简称 RPAT)的完整规范。
  • JXTA 项目成员们在继续增强这个极其重要的平台。
  • 请参阅展示 JINI / J2ME / RMI profile的图表。
  • 请查看另一个展示 Jini / J2ME / Java2 技术的表格。
  • 请查找有关 Jini PretendServiceRegistrar的规范。
  • 请继续查找对于 重构 Jini 查找服务的指南。
  • 请参阅作为 J2ME 游戏平台运行的 Jini 代理。
  • 使 Pocket PC 代理设备可视化。
  • JMatos 软件是一项用于嵌入式处理器的技术,它使 Jini 网络技术可用于 Java 2 Platform Micro Edition (J2ME)。在 PsiNaptic 站点 下载副本。
  • 另请参阅在 aJile 平台上可用的 Jini 网络技术。
  • 请阅读文章: Developing Web Applications for Pervasive Computing Devices。
  • Artima.com站点提供了关于 Jini 技术的有用参考资料。
  • 请查看 Project JXTA 站点,以获取有关加入该项目、获取下载以及获取其它有用资料的信息。

作者简介

 

Roman Vichr 是 DDLabs(前身是 Etensity)的一名高级架构设计师,DDLabs 是一家电子商业和 EAI 咨询公司。在致力于客户机/服务器的数据库管理和 Web 应用程序开发九年时间后,他最近的兴趣还包括将数据库扩展到无线技术中。他是搞光纤出身,最高学位是 1992 年在布拉格的 Institute of Chemical Technology 获得的这一领域的博士学位。可以通过 rvichr@etensity.com 与他联系。

 

Vivek Malhotra 是在美国华盛顿特区工作的无线技术专家。Vivek 有几年开发和实现无线应用程序的经验,并且曾在着重于研究无线行业的专家座谈会中发言。您可以通过 vmalhot@yahoo.com与 Vivek 联系。

 

这篇关于Jini 和 PvC的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/248981

相关文章

k8s 存储(PV、PVC、SC、本地存储、NFS)

存储持久化相关三个概念: PersistentVolume (PV) 是对具体存储资源的描述,比如NFS、Ceph、GlusterFS等,通过PV可以访问到具体的存储资源;PersistentVolumeClaim (PVC) Pod想要使用具体的存储资源需要对接到PVC,PVC里会定义好Pod希望使用存储的属性,通过PVC再去申请合适的存储资源(PV),匹配到合适的资源后PVC和PV会进行绑定

K8s的Pv和Pvc就是为了pod数据持久化

一、 1.pv(persistent volume):是k8s虚拟化的存储资源,实际上就是存储,列如本地的硬盘、网络文件系统(Nfs)、lvm、RAID、云存储。 2.pvc:pod对存储资源的请求,定义了需要存储的空间大小,以及对存储空间的访问模式,有了pvc请求之后,再和pv进行匹配,匹配到了之后进行绑定,绑定成功之后就可以使用pv的存储空间。 二、pv和pvc生命周期 1.配置定

88、k8s之pv+pvc

一、pv和pvc pv pv:Persistent volume 是k8s虚拟化的存储资源,实际上就是存储,例如本地的硬盘,网络文件系统(nfs) lvm RAID oss(ceph) 云存储。 pvc pvc:Persistent volume claim 用户对存储资源的请求,定义了需要存储的空间大小,以及对存储空间的访问模式。 有了pvc请求之后 ,和pv进行匹配,匹配到了之

K8s持久化存储PV和PVC(通俗易懂)

一、PV和PVC的引入 Volume 提供了非常好的数据持久化方案,不过在可管理性上还有不足。 拿前面 AWS EBS 的例子来说,要使用 Volume,Pod 必须事先知道如下信息: 当前 Volume 来自 AWS EBS。EBS Volume 已经提前创建,并且知道确切的 volume-id。 Pod 通常是由应用的开发人员维护,而 Volume 则通常是由存储系统的管理员维护。开

Kubernetes(k8s)持久化存储PV和PVC

1、K8s为什么要使用存储? 答:k8s中的副本控制器保证了pod的始终存储,却保证不了Pod中的数据。只有启动一个新pod的,之前pod中的数据会随着容器的删掉而丢失。k8s中的rc启动指定数量的Pod,当某个Pod死掉了,会在新的节点启动新的Pod,k8s中想要实现数据持久化,需要使用一个叫做共享存储的,让Pod里面的数据挂载到这个共享存储上面,就算在新的节点启动新的Pod,依然可以保证数据

k8s+pv+pvc+nas 数据持久化volumes使用

1 k8s pod申请持久化卷配置 apiVersion: v1kind: Servicemetadata:name: $IMG_NAMEnamespace: rz-dtlabels:app: $IMG_NAMEspec:type: NodePortports:- port: 8091nodePort: 31082 #service对外开放端口selector:app: $IMG_NAME

PVc是k8s的什么?

**PVC(PersistentVolumeClaim)是Kubernetes(k8s)中的持久化存储卷声明**。它是用户对存储的请求,类似于Pod消耗节点资源的方式,PVC则消耗PV(Persistent Volume,持久化卷)资源。PVC可以指定所需的存储容量、访问模式以及所需的PV的属性,如存储类、访问模式和标签等。当Pod需要使用持久化存储时,它可以通过PVC来请求PV。   PV是

【Kubernetes】 emptyDir、nfs存储卷 和 PV、PVC

emptyDir存储卷 当pod被分配给节点 容器和容器之间进行共享存储 hostPath nfs共享存储卷 NAS 专业的存储设备;一般是与NFS 搭配,然后共享出去 GFS 自己搭;CEPH(至少要9台) 第三方;NAS 第三方; 云端        oss        s3        SLB        LB

k8s——Pod容器中的存储方式及PV、PVC

一、Pod容器中的存储方式   需要存储方式前提:容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。   首先,当容器崩溃时,kubelet 会重启它,但是容器中的文件将丢失——容器以干净的状态(镜像最初的状态)重新启动。其次,在Pod中同时运行多个容器时,这些容器之间通常需要共享文件。Kubernetes 中的Volume抽象就很好的解决了这些问题。Pod中的

k8s集群的存储卷、pvc和pv

目录 简介 简介 PV 全称叫做 Persistent Volume,持久化存储卷。它是用来描述或者说用来定义一个存储卷的,这个通常都是由运维工程师来定义。 PVC 的全称是 Persistent Volume Claim,是持久化存储的请求。它是用来描述希望使用什么样的或者说是满足什么条件的 PV 存储。 PVC 的使用逻辑:在 Pod 中定义一个存储卷(该存储卷类型为 P