Sun开发的JINI技术在网络中的应用

Jini实现步骤(如何实现JINI的Demon) 立即下载
<script type="text/javascript" src="http://pagead2.googlesyndication.com/pagead/show_ads.js"> </script>   一、概述   Sun公司开发的Jini系统是一种创新技术,听说它的人很多但较少被人理解。Jini系统可利用Java扩展网络计算的范围,并有可能成为最佳解决方案。   Jini是Sun公司的研究与开发项目,它能极大扩展Java技术的能力。Jini技术可使范围广泛的多种硬件和软件即可与网络相连的任何实体--能够自主联网。 Jini可以使人们极其简单地使用网络设备和网络服务,就象今天我们使用电话一样--通过网络拨号即插即用。Jini的目标是最大限度地简化与网络的交互性。 Jini利用了Java技术的优势。Jini包含了少量类库格式的Java代码和某些惯例,可在网络上创建一个Java虚拟机的"王国",就象我们人类创造一个社区一样。在这个王国里的人、设备、数据和应用程序等网络公民均被动态地连接起来,从而能够共享信息和执行任务。   Jini 在1999年初正式发布后,立刻得到业界的广泛支持。Jini的出现为Java网络连接提供了公共标准,使得任何Java设备都可以连入网络中被自动识别,并可充分利用网络上已有的各种资源。它把网络上的各类设备(包括消费类电子设备如移动电话、PDA、DTV、HPC、NC、游戏机、电冰箱、智能卡等等)和各种软件组合成一个单一、动态的分布式系统,使网络更易于操纵、易于管理,具有更高的可配置性。Jini将使网络具有自发性,它的出现大大扩展了"计算"和"计算机"的含义,极大地简化了网络操作。Java和Jini不仅可以不依赖于Windows为代表的操作系统,而且引导着信息产业的潮流,使Sun公司能在未来的、非PC类电子产品的数字化市场中强占制高点。   二、Jini有关概念及特点   1、Jini的五个基本概念   概念的简明是Jini的目标之一。Jini支持的自发创建群体及自修复等能力,都是基于五个基本的概念,理解了这些概念,也就明白了Jini的使用。   这些概念是:发现(Discovery); 查找(Lookup);租借(Leasing);远程事件(Remote Event);事务(Transaction),它们以一组软件库和规范的形式实现,可被Jini群体中的参与程序使用。   发现是用于寻找网络中群体并加入它们的过程,是Jini完成自发创建群体功能的部分。   查找是控制提供某个特定服务所需要的程序如何把自己提供给使用服务的参与者的方式。查找在每个Jini群体中的作用相当于目录服务,它提供用于寻找一个群体中已知服务的功能。但查找的功能实际上要比名字服务器复杂得多,名字服务器只是把字符串映像到对象上,而Jini的查找软件可理解Java的类型层次,因此查找操作可在对象类型的基础上进行,而且在搜寻过程中甚至还可以考虑到类的继承关系。   租借是Jini中最重要的概念之一,原因只是由于它被广泛地使用。租借技术使Jini具有自修复能力,它保证了一个群体在某些关键服务失败的情况下,一段时间之后可以恢复。租借还保证了长时间运行的服务(如查找服务)不会"积累"其群体的信息,若没有租借,长时间运行的服务会无限制地增长。   远程事件是Jini服务彼此通报状态的变化所采用的范型。因为查找本身是一类服务,所以在一个群体可用的服务发生变化时,它可以利用远程事件方式通知相关的参与者。Jini的远程事件模型与JavaBeans的事件模型相似,但不完全相同。   事务是Jini使包含多个服务的计算到达一个"安全"状态的机制。这里的意思是,调用者可以得到保证,计算要么全部完成,要么都没有进行,无论哪种情况,系统都到达一个确知的状态。Jini的事务模型可以消除分布式系统中部分失败所带来的危害,从而解决并行性问题,极大改善了服务的健壮性,使服务对网络故障有更大弹性。   2、Jini与名字服务器、JavaBeans、EJB、RMI、分布式操作系统关系   1) Jini不是名字服务器   Jini并不是一个简单的名字服务器。尽管Jini的一些行为,如跟踪一个群体中的服务,看起来像是名字服务器,而且Jini使用的Jini查找工具,功能也类似于(不完全相同)名字服务器,但Jini并不仅仅如此。它是一个用于创建分布式系统的模型,可支持服务在一个群体中自发地出现或消失,而且在系统出错时具有自修复能力。   2) Jini不是JavaBeans   JavaBeans提供了一种方法,使得软件构件(称为Bean)可以彼此找到,可以使用其他Beans提供的服务,相互内省等等。但JavaBeans的设计核心与Jini完全不同, Beans需要在单地址空间中使用, Bean之间使用的通信机制是基于直接方法调用,而不是远程协议。Beans的模型在灵活性和动态性方面都远不如Jini。当一个新的Bean出现在系统中时,应用中已有的Bean不能立即感知到它并使用它,系统的设计者必须明确地把这个Bean链入应用中并建立与其他Bean的连接。JavaBeans主要是用于设计时而不是运行时,在单地址空间中使用;Jini是用于运行时,跨地址空间工作(这并不是说Jini和JavaBeans不兼容,相反,Jini可以在很多方面优化JavaBeans)。   3) Jini不是企业JavaBeans   类似地, Jini也不是企业JavaBean(EJB)。从表面上看, EJB具有一些Jini的特征,它提供了网络上的服务的概念。企业Bean可以存在于不同的地址空间,并且一般也是如此。但是EJB设计的核心是集中于企业级系统,依靠Java软件来构成企业应用的后端事务逻辑。EJB主要用于支持简便地构造事务逻辑,优化企业网络中已有的事务、消息及数据库服务,因此EJB被大量地用于配置企业软构件之间相对静态路径。只要系统的逻辑不发生变化,也就不需要重新组织Bean之间的连接。同样, EJB是在设计时决定如何连接,而相反Jini是动态的,它在运行时发现服务并在运行时连通它们。   4) Jini不是RMI   Jini与Java RMI不同。Jini很大程度上使用了RMI,尤其是在Jini可移动代码的功能上,可以说Jini就是建立在RMI基础上的一组服务和规范。尽管如此, Jini的服务还具有自发连网和自修复能力,虽然也可以(工作量很大)把这些功能加入到通常的RMI应用,但是它们不是RMI本身所具有的,通常的RMI应用也不具有这些优点。   5) Jini不是分布式操作系统   最后一点,Jini不是分布式操作系统。从有些方面看,它要比分布式操作系统大,因为有些部分必须运行在至少提供JVM的平台上,而从另外的角度看,它又小得多, Jini所提供的工具以及所使用的概念十分有限。真正的分布式操作系统提供了传统操作系统的所有服务(文件读写、CPU调度、用户登录等),只不过是在一组互连的机器上实现这一功能。Jini允许十分简单的设备加入到Jini群体,而不是要求设备必须运行一个完全的分布式操作系统。   3、Jini使用场合   1)适于使用Jini的情况:从技术或市场的角度来看一下,在哪些情形下使用Jini比较合适,可以归结为以下几种情况:   如果有了Jini服务(或计划中的),设备或软件服务会通过使用这些服务变得更加有用,此时使用Jini比较合适。例如假设你出售扫描仪,你发现一些小的Jini软件服务可提供图像到E-mail或图像到传真的网关,扫描仪可方便地使用这些服务增强自身功能,使它看起来可以直接扫描e-mail消息或传真。通过使用Jini,你从创建这些服务的开发者那里获益,或者从根本上说,你使那些开发者成为了你自己的开发者。   如果设备可使已有的其他Jini服务(或计划中的)增值,选用Jini比较合适。例如,假设你在市场上出售打印机,同时你看到有数字相机进入了市场,选用Jini就可以使打印机设备方便地成为数字像片的输出设备。   如果设备已有了嵌入式Java 或一般是连接到通用计算机上,那么加入Jini应该是不必犹豫的。一旦设备支持Java或连到计算机,支持Jini所需的其他工作就很少了,但潜在的好处十分巨大。   如果软件服务运行在可运行Java虚拟机的通用计算机上,那么可以方便地为服务创建一个Jini外壳使之在Jini中可用。这是Jini的一大好处:可以方便地编写小的粘合逻辑(glue logic),使整个软件服务(甚至非Java的服务)对于其他的Jini设备和服务都是可访问的。   如果软件服务可以方便地被分解为固定的多个部分,那么把各部分表示成一个Jini服务是比较合理的。例如,企业级的文档管理系统可能具有文档存储仓库、文档服务引擎、查询引擎等多个组成部分,通过为各个部分创建单独的Jini服务,可以获得很多好处。首先,可以按需要把各部分方便地转移到其他机器。其次,系统具有了冗余特性,在需要某个服务的备份时,只要再复制运行一份即可。第三,由于体系结构开放,使扩展变得十分容易。   如果要创建一个通常要连到其他设备的设备,那么Jini可能是用于控制这些连接的可用技术。例如,一组音响设备的各组成部分通常要用数据线进行连接,如果使用Jini是前置放大器知道哪些设备是必需的、输入的各级是如何连接的,并能正确地配置各种控制,岂不是很好?   最后,如果设备具有编程能力的好处,Jini也是比较好的方案。因为Jini支持程序下载,可编程的设备在Jini中就可得到及时更新。更妙的是,它们可自动控制其Jini群体中的其他设备,例如对于一个集中的MIDI控制面板,当有鼓设备被加入时,面板中可自动增加一个控制鼓设备的用户界面。   随着越来越多的设备和计算机支持Java,越来越多的设备和软件系统彼此相连, Jini将成为管理这些连通性的更符合逻辑的方案。而且,如果设备已支持Java或已连到通用计算机系统,添加Jini只是小事一桩,这将大大鼓舞要采用Jini的用户。   2)不适于使用Jini的情况   因为Jini的设计可覆盖十分广泛的部署方案,包括从服务器到电灯开关的多种设备,因此很少有Jini不适用的硬件环境,但也有一些因素会导致为设备添加Jini在价格上不合算。   首先,如果设备确实是独立的,即没有连线连接设备,或者设备在网络上但根本不会有其他实体会使用它,则Jini不太适用。但现在越来越少的设备是真正独立的了,这样的设备令人无法忍受。   如果设备附近没有具有JVM的设备,而且此设备十分便宜不能嵌入JVM,则Jini不是可选的方案。在设备参与到Jini的过程中,必须有Java的存在。   4、Jini的特点   Jini的作用就是能简化与网络的交互性。   从消费者的角度看,消费者把可插接的设备和软件插入网络,就像今天插接一部电话一样简单。   从传统服务供应商的角度看,Jini简化了Services Delivery (服务提供)的管理。设备不但能向网络推出增值服务,而且还能提供设备的属性和功能。现在,服务供应商可以针对每台设备设计服务。当然,Jini还将有可能打开一扇通向新的网络化服务的大门。   从产品制造商的角度看,Jini打开了全新的市场。因为Jini简化了设备向网络提供增值服务的能力。所以,产品就不仅仅作为商品而投入竞争,而是作为增值服务的产品参与竞争。   从Java程序员的角度看,Jini简化了编写分布式应用程序的工作,因而,任何Java程序员都能利用基于Jini的新设备编写应用程序和服务。因此,企业不再需要聘用有限的专家资源编写分布式应用程序,任何Java程序员都能为基于Jini的网络开发服务。   三、Jini技术   Jini是一种分布式结构体系,它由三部分组成:基础结构、分布式编程和提供在Jini上运行的网络服务。   1、动态的分布式系统   Jini系统是以Java技术为中心的分布式系统,它可以使各种数字设备无需配置、安装或人工干预地在一个临时的设备集合(称之为联邦)中共同工作。联邦中的任何设备无论大小都可以自行管理,组成一个服务网络,联邦中的每一成员都给联邦中的其它成员提供资源和服务,同时又从其它成员中获取自己所需的资源和服务。Jini结构提供一套机制使得电子设备和应用程序能够随时加入或退出联邦,形成一个动态的分布式系统。 Jini系统提供了在分布式系统中进行服务的建立、查找、通讯和使用机制。Jini结构的设计充分利用了Java程序代码可以在机器之间移动的能力,各个服务之间通过提供服务协议(service protocol)进行通讯(服务协议是用Java语言写的一套接口)。Jini系统必须运行在Java虚拟机上,如上图1所示。   每一个Jini设备都应该有自己的存储器和计算功能,没有存储器和计算功能的设备也能够联入Jini系统,但是必须由其它Jini设备作为代理(proxy)来控制,该代理可以是软件也可以是硬件。   2、基础结构即插即用   Jini系统的任意服务可以随时加入和退出联邦,而且加入联邦时不需要进行安装和配置,达到了即插即用的效果。无论是在编程接口级还是在用户接口级,服务都构成了Jini系统交互的基础。   Jini系统的核心是三条协议:lookup ,discovery,join。它们构成了Jini技术的基础结构(infrastructure)。   查找服务(Lookup service) 是Jini系统的中心机制,任何服务都是由查找服务发现并确定,系统用户与系统的联系也是通过查找服务实现的。查找服务相当于网络中所有服务的公告牌,它把指明某服务所提供性能的接口与实现该服务的对象集对应起来。查找服务中的对象也可以包含其它查找服务,从而构成层次式的查找服务。查找服务用于用户在网络中查找和调用服务,而服务是由它的接口类型(用Java编程语言编写)或其它属性描述的。   某设备或应用程序插入网络时,它所提供的服务首先发现网络并被网络所接纳,这一过程需要通过发现协议(discovery)和加入协议(join):该服务首先通过发现服务在网络中找到一合适的查找服务,然后通过join协议加入查找服务。   如图2所示,某一服务提供者需要加入Jini系统中(服务提供者提供的服务可以是硬件也可以是软件),它首先要寻找网络中的查找服务,于是它在局域网中广播,请求加入到查找服务中,附近的查找服务将识别该服务。这个过程称之为发现(discovery)。需要注意的是在服务提供者中包含有用于通讯的服务对象(service object)和描述该服务特点的服务属性(service attributes)。服务对象中包含Java接口,其中包括用户和应用程序所要调用来执行服务的方法,以及其它描述信息等。   于是,服务提供者与查找服务进行通讯,服务提供者把自己的服务对象和服务属性注册到查找服务中,也就是把服务对象和服务属性发送到查找服务中。这个过程采用的是加入协议(Join),如图3所示。 如图4所示,当Jini系统中的客户需要服务时,它根据服务的类型或属性向查找服务查询合适的服务,然后查找服务把查询的结果返回给客户,当客户决定使用某一服务时,查找服务将把所需服务的服务对象的拷贝发送给客户。 如图5所示,客户通过该服务对象与服务提供者进行直接联系,调用服务。服务对象与服务提供者之间的私有协议,对用户隐藏了实现的细节。 在没有查找服务的情况下,客户可以使用一种替代的技术,称为点查找(Peer lookup)。这种情况下,客户可以发出与查找服务所用的同样的鉴别包,请求服务提供者进行注册。服务提供者将把客户当作查找服务来进行注册。然后客户可以从所有的注册请求中选择它所需要的服务,而抛弃不需要的服务。这种情况实质上是客户临时充当查找服务。   3、分布式的编程模式   Jini系统的编程模式也是分布式的,包括租用(leasing)、分布式的事务处理(distributed transactions)和分布式的事件处理(distributed events)三种重要机制。   租用机制使客户对服务的访问是基于租约的,租约保证了一段时间内的授权访问。租约必须在服务的使用者和服务提供者之间进行协商,这也是服务协议的一部分。租约在到期之前不续约的话,资源将被释放。租约可以是唯一的,也可以不是唯一的,非唯一租约允许多用户共享资源。   一系列的操作都包装在一个事务中,而不管这些操作是在一个单一服务内还是跨越多个服务。Jini的事务接口提供了一服务协议用于协调两阶段提交(two-pahse commit)。事务由使用这些接口的服务实现。   Jini结构支持分布式事件,一个对象可以允许其它对象注册对此对象感兴趣的事件,并且在该事件发生时得到通知。这使得基于事件的分布式程序能以有多种可靠性和扩展性保证的方式编写。   基础结构是编程模式的基础,同时也利用了编程模式的各种机制。某一服务若想加入到查找服务中,它必须租用查找服务中的入口,因而查找服务就能够准确反映当前所有的服务。如果有服务加入或离开查找服务,相应的事件就会发生,而所有对此类事件感兴趣并注册过的对象将得到通知。编程模式建立在由基础结构所支持的代码移动性能之上。   基础结构以及使用该基础结构的服务都是存在于Jini系统实际环境中的计算实体。服务使用了一组接口,这些接口定义了可以在服务和基础结构之间通讯的通讯协议。这些接口结合在一起就构成了Java语言编程模型的分布式扩展,也就是Jini编程模型。Jini与Java的关系如图6所示。 Jini系统中服务之间的通讯主要是通过远程方法调用(RMI)来实现。RMI是传统的远程过程调用机制在Java语言中的扩展,RMI既可以把数据也可以把代码封装成对象在网络上进行移动,大部分Jini系统的简单性就是这样实现的。   Jini系统安全模型的设计是以两个概念为基础的:负责人和访问控制列表。被访问的Jini服务往往代表着某些实体负责人--通常能追溯到系统中的特殊用户。某一服务可以请求访问其他服务,由与实现该服务对象相连的访问控制列表决定。   Jini系统的关系如图7所示。 4、Jini上的网络服务   在Jini基础结构和分布式编程之上,可提供便于分布式计算的网络服务。JavaSpace就是这样的一种网络服务(有关JavaSpace服务说明我将在下一篇《JavaSpace应用》文章中给予详解)。   基础机构、服务和编程模型的结合,其共同工作的设计以及相互构造的特点,使得整个系统简单化、统一化、易于理解。   5、基本Jini服务的需求   我们知道Jini结构的许多关键部分就是Jini服务本身,运行这些服务需要一定的条件。Jini为自身的服务定义了接口,而非实现;因此Jini服务的实现不同,需求也不同了。例如,一个查找服务可能建立在完整的商业数据库基础上,需要JDBC的支持;而另一个查找服务可能要使用内存中的hash表。尽管我们不能统一确定这些基本服务到底需要什么样的实现,但可以讨论所需的最少功能,这是构件接口所需的功能需要。虽然Jini把两种服务定义为最基本的服务:查找服务和事务管理器,但查找服务相对更加重要。除开特殊的事务管理器带来的一些特殊要求,查找服务可在任意环境中运行,其情形和前面讨论的"普通"服务相同。   Sun目前提供的查找服务的参考实现,实际上是基于运行Java的通用计算机。但更精简的查找服务完全可运行在功能低得多的平台。尽管你可能仍希望在服务器计算机上运行查找服务以减少停机时间,但你完全可以简化查找服务使其不再基于Java。最简单的查找服务对主机平台的基本需求是要求平台支持基于套接字的IP组播的网络传输,发现协议使用此协议寻找查找服务,而查找服务可以响应。查找服务给出的响应是一个序列化的Java对象,即客户端可用来连回查找服务的服务代理。这个对象可在运行Java的机器上进行"预先序列化",查找服务本身就没有必要运行序列化了。当这个预先序列化了的对象被放置到查找客户端时,它可以使用任意协议,按需要的传输方式回调查找服务。   作为Jini的"自引导"服务,查找服务对平台的需求很低,只要对连网的设备稍作扩充即可。   四、Jini技术在网络中应用   Jini技术的出现为数字化电子设备和现有计算机网络之间的连接构筑了一条通道,各种电子设备的联网将产生许多服务,生成新的经济增长点,推动计算机产业和信息家电产业的发展。   家庭网络广阔的市场前景吸引了众多的IT商家参与其中,许多顶级的公司对于家庭网络技术标准的制定做出了应有的贡献。当前家庭网络的互操作标准主要有Home API工作组的API规范、CIC下属的互操作委员会制定的HPNP(HomePNP) 规范、HAVI规范、SUN公司的JINI技术规范等。   Home API工作组成立於1998年,其主要目标是建立一种开放性工业标准以加速家庭智能化信息电器的应用,该工作组在本年度会议CONNECTIONS '99上发布了Home API规范, API 的任务是如何为上层的应用程序提供组件服务和提供什么样的服务,API通常定义相应的编程模型和功能调用方法,它的重点在于在单台设备上为编程提供相应的接口,如两个设备上的API可以是完全不同的,而位于它上层的应用程序可以借助不同的API提供的服务通过下层一致的协议实现通信, 其重点并不在于设备之间的互操作性。   HPnP规范是由CIC的互操作技术委员会(Interoperability Technical Committee)完成的。规范的1.0版本是于1997年8月份发布的,HPnP是一种互操作规范,它独立于网络的下层技术和协议,运行于多种网络协议之上,来自不同厂家的产品可以在同一网络上相互通信,实现即插即用功能。   HAVI是家庭网络的音频、视频设备互操作规范,它采用了基于IEEE1394标准的网络技术,当一新的设备加入或离开时,网络的配置会自动更新,使得网络内部的设备具有良好的互操作性,如使用相应的桥接协议(bridge protocol)可以实现与JINI系统设备的相互操作。   Jini和蓝牙技术的结合应用在通信环境中有以下优点:首先,不需要网络连接线;其次,不需要安装设备驱动程序,再次,一个设备远程控制另一个设备。这些特点使得网络更容易连接和管理。虽然蓝牙技术进一步发展,Jini是SUN公司的免费产品,很容易掌握应用编程接口,并可进行分布式计算。随着蓝牙技术和Jini技术规范的布、不断推广与相互结合,生活中各种电路的互连将变得愈来愈方便,Jini的即插即用功能和蓝牙的无线连网使得设备的增减变得非常简单,使网络的建设可以分阶段逐步完善而不必一次到位,满足了一般用户的需求。Jini技术和蓝牙的结合,必将进一步推动信息无线网络的快速发展,成为信息网络又一重要应用领域,将极大地改变人们的生活方式,促进普适计算时代的到来。
JINI 核心技术 目 录 译者的话 序一 序二 前言 第一部分 基 础 第1章 一种新的计算模式 1 1.1 Jini的历史 1 1.1.1 Jini的设想 2 1.1.2 更广泛的应用 3 1.1.3 Jini的公开 4 1.1.4 许可证 4 1.1.5 共享源码许可 4 1.2 获取和安装Jini 5 1.2.1 安装Java 2 6 1.2.2 安装Jini 7 1.2.3 设置环境 9 1.2.4 启动Jini运行时的服务 10 1.2.5 通过GUI启动所需服务 11 1.2.6 用命令行方式启动所需服务 15 1.2.7 运行例子程序 19 1.3 参考读物和资源 20 第2章 分布式系统 21 2.1 网络中的焦点 21 2.1.1 传统网络系统 21 2.1.2 网络并不透明 22 2.2 新的分布式计算模型 25 2.2.1 需要强类型 26 2.2.2 远程多态性的例子 27 2.2.3 远程特性是接口的一部分而与实现 无关 28 2.3 参考读物 29 第3章 Jini模型 31 3.1 Jini设计的中心 31 3.1.1 简明性 31 3.1.2 可靠性 31 3.1.3 可伸缩性 32 3.2 设备不可知论 33 3.3 Jini不是什么 33 3.3.1 Jini不是名字服务器 33 3.3.2 Jini不是JavaBeans 34 3.3.3 Jini不是企业JavaBeans 34 3.3.4 Jini不是RMI 34 3.3.5 Jini不是分布式操作系统 34 3.4 Jini的五个基本概念 34 3.4.1 发现 35 3.4.2 查找 37 3.4.3 租借 41 3.4.4 远程事件 45 3.4.5 事务 51 3.5 后面的内容 56 第4章 部署方案 57 4.1 成为Jini服务 57 4.2 如何为设备和服务使用Jini 58 4.3 在通用计算机上运行Jini 58 4.4 在支持Java的设备上运行Jini 60 4.4.1 Jini和Java子集 60 4.4.2 版本问题 61 4.5 Jini使用设备代理 61 4.6 基本Jini服务的需求 63 4.7 适于使用Jini的情况 63 4.8 不适于使用Jini的情况 64 4.9 参考读物 64 4.10 后面的内容 64 第二部分 Jini 的开发 第5章 Jini起步 65 5.1 运行Jini服务 65 5.2 按部署情况进行开发 66 5.2.1 运行多个HTTP服务器 67 5.2.2 警惕代码基问题 67 5.2.3 设置安全管理器 68 5.2.4 注意安全策略 68 5.2.5 注意CLASSPATH 68 5.2.6 考虑把可下载代码捆绑为 一个JAR文件 68 5.2.7 小结 69 5.3 第一个Jini程序:Hello, World 69 5.3.1 实现服务代理 72 5.3.2 “包装”应用程序 73 5.3.3 使用发现和查找 75 5.3.4 其他细节 76 5.3.5 使用服务模板来寻找服务 78 5.3.6 查找一个服务 79 5.3.7 编译并运行例子程序 80 5.4 扩展Hello, World程序的事件能力 84 5.4.1 编写远程事件接收器 86 5.4.2 通过Notify ( )请求事件 87 5.4.3 编译并运行程序 88 5.5 带有租借的Hello,World例子 91 5.5.1 一个简单的方法 92 5.5.2 编译和运行程序 97 5.6 使用可激活的后端进程 99 5.7 后面的内容 109 第6章 深入理解:发现 110 6.1 发现是什么 110 6.1.1 用组划分群体的名称空间 111 6.1.2 发现的分类 111 6.1.3 发现机制的要求 112 6.2 发现概述 112 6.2.1 IP组播基础 112 6.2.2 服务发起的发现 113 6.2.3 查找服务发起的发现 113 6.2.4 “直接”发现 114 6.3 在应用程序中使用发现 115 6.3.1 DiscoveryListener接口 115 6.3.2 DiscoveryEvent封装了发现信息 115 6.3.3 使用LookupDiscovery控制组播 发现 立即下载

相关推荐

JINI基础教程 rfid基础

JINI基础教程 很好的书 介绍全面 循序前进 初学者入门书籍

2020/11/05随记 基于jini的C++和Java交互

书展翰墨,叹锦绣山河匆匆。 首选用Eclipse创建对应的java工程,编写.java和.class文件 native关键字的使用 凡是一种语言,都希望是纯。比如解决某一个方案都喜欢就单单这个语言来写即可。Java平台有个用户和本地C代码进行互操作的API,称为Java Native Interface (Java本地接口)。 1 创建一个java类,里面包含着一个native 方法加载loadlibrary . public class HelloNative { static ...

会飞的CC猫之愉快Qt学习笔记 297

JINI核心技术详述

本书全面讲解了Jini技术,包括发现、租借、远程事件、事务等主要概念,并提供真正的分布式连网技术以及可用于实际开发的Jini服务和应用程序技术,书中附有程序代码。本书适用于程序设计人员、网络技术人员。

Jini - Java 的實際應用

<!--google_ad_client = "pub-2947489232296736";/* 728x15, 创建于 08-4-23MSDN */google_ad_slot = "3624277373";google_ad_width = 728;google_ad_height = 15;//--><script type="text/javascript"

zgqtxwd的专栏 558

YOLOv11火焰识别:从环境搭建到GUI部署的完整工程实践

目标检测是计算机视觉的核心任务之一,它通过定位和分类图像中的物体,为机器赋予“看懂”世界的能力。其原理通常基于深度学习模型,如YOLO系列,通过卷积神经网络提取特征并预测边界框与类别。这项技术的价值在于将算法能力转化为实际生产力,广泛应用于安防监控、工业质检、自动驾驶等场景。在工程实践中,环境配置的稳定性与数据质量往往决定项目成败,而模型部署的易用性直接影响最终用户体验。本文以火焰识别这一具体应用为切入点,详细解析了如何利用YOLOv11完成从零到产品化的全链路流程,其中涉及Conda虚拟环境管理、PyTo

weixin_29483277的博客 236

相机基础知识讲解:CMOS和CCD

相机基础知识讲解:CMOS和CCD

Coppa的博客 5万+

JINI介绍

最近在研究J2EE集群,涉及到了JINI技术。JINI = Java Intelligent Network Infrastructure Java智能网络基础设施 ?JINI已经被Apache接管,在Apache上的解释是Jini is a service oriented architecture that defines a programming model which both exploits and extends Java technology to enable the const

Edwin’s Blog 956

复现基于PYNQ-Z2的手写数字识别卷积加速器设计

来源雪天鱼。

eachanm的博客 968

Jini技术常见问题解答

      Jini技术常见问题解答内容提要 Jini技术概述 Jini技术详解 Jini技术的开发 Jini和Java技术 Jini技术和操作系统 Jini技术和其它查找技术 Jini技术和补充网络技术 Jini技术概述 问题1:什么是JiniTM技术?Jini技术是基于Java技术的一种新的

Virtual的专栏 1860

树莓派4B+Ubuntu22.04+思岚RPLIDAR C1激光雷达应用

树莓派+Ubuntu22.04+思岚RPLIDAR C1激光雷达简单应用

techfuture的博客 3706

ORB-SLAM3复现的详细过程——配置安装及ROS和脚本运行---Ubuntu20.04

所提供的图像具有高动态范围,事先进行了光度标定,用20Hz的帧率采集,分辨率为1024像素*1024像素;需要下载数据集dataset-room1_512_16和rgbd_dataset_freiburg1_desk。在一键安装ROS后,只需要再安装Pangolin即可,其他所有的需要都已经存在。用微型飞行器采集的视觉惯性数据集,包含双目相机和IMU同步测量数据及位姿的真值。第二条命令中的${ROS_PACKAGE_PATH}是自己文件的路径。其采用的相机和IMU传感器,在硬件上进行了时间同步。

琉璃轻纱的博客 1万+

Jini

导读:   Jini是由 SUN 公司 R&D 的Bill Joy 所提出的一项技术。我们可以藉著使用Jini,创造出一个富有弹性、容易管理、且可随时随地使用各种服务的网路计算环境。为了让使用者知道网路上有哪些服务可被使用,我们必须建立一个联盟( federation ),让网路上的服务主动加入。当有某个服务加入联盟时,也等於同时向整个网路告知:「我可以被使用,有谁 要我的服务?」。使用者

xu的blog 1437

【100%通过率】2024华为OD机试真题E卷 C++ 实现【栈数据合并/空栈压数】

向一个空栈压入正整数,每当压入一个整数时,执行以下规则(设: 栈顶至栈底整数依次编号为n1、n2...nx, n1为最新压入的整数)

MISAYAONE的博客 1554

Jini技术介绍

一:Jini白皮书什么是Jini?  Jini是Sun公司的研究与开发项目,它能极大扩展Java技术的能力。Jini技术可使范围广泛的多种硬件和软件---即可与网络相连的任何实体---能够自主联网。  Jini可以使人们极其简单地使用网络设备和网络服务,就象今天我们使用电话一样---通过网络拨号即插即用。Jini的目标是最大限度地简化与网络的交互性。  Jini利用了Java技术的优势。Jini包

lulinan的专栏 889

【实现100个unity特效之4】Unity ShaderGraph使用教程与各种特效案例(2023/12/1更新)

ShaderGraph是Unity中的一个可视化工具,用于创建和编辑图形着色器。其意义在于简化编写复杂着色器的过程,减少对具体编程语言的依赖,使艺术家和设计师可以更方便地创建各种美术效果。使用ShaderGraph可以通过图形界面设置着色器属性,包括颜色、纹理、光照等,并在视窗预览中即时显示结果,从而快速迭代和调整着色器。使用ShaderGraph需要先安装Unity 2018.1或以上版本,并添加ShaderGraph插件。打开ShaderGraph面板后,可以通过拖放节点并连接它们来创建着色器。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 4万+

华为非AI方向0603笔试真题-爆破小游戏(详细思路+多语言题解)

华为非AI方向0603笔试第二题【爆破小游戏】,提供详细思路讲解以及代码实现。

qq_45776114的博客 358

Jini网络技术介绍(Technology Computer English)

 Jini -- a technical specification developed by SunMicrosystems that uses a small piece (48K) of Java code toallow any network device with a Java virtual machine (JVM)to announce its availabil

VisionLee's 窝 1113

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

jini 是什么!

<br /><br /><br /><br />一:Jini白皮书什么是Jini?<br />  Jini是Sun公司的研究与开发项目,它能极大扩展Java技术的能力。Jini技术可使范围广泛的多种硬件和软件---即可与网络相连的任何实体---能够自主联网。<br />  Jini可以使人们极其简单地使用网络设备和网络服务,就象今天我们使用电话一样---通过网络拨号即插即用。Jini的目标是最大限度地简化与网络的交互性。<br />  Jini利用了Java技术的优势。Jini包含了少量类库格式的Java代

yingjingli的专栏 1251

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

 Jini技术常见问题解答

转自内容提要 Jini技术概述 Jini技术详解 Jini技术的开发 Jini和Java技术 Jini技术和操作系统 Jini技术和其它查找技术 Jini技术和补充网络技术 Jini技术概述 问题1:什么是JiniTM技术?Jini技术是基于Java技术的一种新的技术突破,它使各种设

fancyw的专栏 630

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

世界是平的------说说SOA,jini,jxta,jbi,OSGi

          今天刚上MSN,有个技术界的朋友就发了消息过来:老兄,你1个月没写blog了。我一惊:是啊,一个月了。          还好的是只是没写blog,不是没有学习。这个月内我学习了很多技术知识和一些经济基础知识还有理财基础知识,另外在amber的催促下,我翻看了托马斯·弗里德曼写的热门书籍>。作者托马斯·弗里德曼用这本书揭开了笼罩在这个世界上的神秘面纱,深入浅出地讲述复杂的外交政

【洪波@阿里云】 3828

初识JINI技术

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

独自登高楼 望断天涯路 1547
上一篇: 克服J2SE 1.3 ~ 1.4不兼容问题
下一篇: Java程序员的存储过程
java169
博客等级 码龄19年 27粉丝 2568原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值