4 应用实例
基于Jini与蓝牙开发了一个无线网络点歌器JBMP3。它具有以下功能:播放客户选取的歌曲、客户端图形界面、个性化定制客户端播放列表。系统结构如图4所示。它由一个能播放音乐文件(mp3文件)的服务端程序、若干能控制服务程序的客户端程序(远程控制)和一个能支持Jini服务的查找服务组成。运行的网络是TCP/IP网络。
对应用结合附图作如下详细说明:
(1)点歌器发布一个服务自己拥有的代理对象。例如,能够按先进先出顺序播放音乐文件。
(2)客户端程序——通用远程控制,询问查找服务网络能提供什么服务。
(3)查找服务通过与请求相匹配的代理对象副本答复客户端的询问。
(4)客户端所有的请求都被送到同样的服务器(点歌服务器)。请求通过Jini网络5到达点歌服务器,服务器通过各自的链接(4)更新与之相连的代理对象。同时点歌器的更新以一致的形式显示出来。
设计主要分为三部分:远程控制接口设计、客户端设计、服务器设计。
4.1 远程控制接口产生的代码
import net. Jini. core . lease.*;
public inteRFace RemoteControl {
public String getName ( );
public java.awt .Component. getDisplay( );
public Lease lease (long time)
throws
java. rmi. RemoteException,
LeaseDeniedException,
UnknownLeaseException;
}
getName ( ):通用远程控制需要知道服务的名称以便能在图形界面上显示服务的正确名称。
getDisplay( ):通用远程控制需要一个图形界面来控制已经发现的不同服务。
lease (long time):通用远程控制需要知道在多长的时间内被允许使用某一服务(租借时间)。
4.2 客户机设计
客户机应该仅需作有限的操作,而让服务器作大部分的工作。因为使用很少资源的客户机在慢速处理器和小存储器的设备上运行只适合象PDA一类手持设备或蜂窝电话,因此在这里客户机必需支持一些操作。它们是:
(1)发现已经在网络上注册的服务的能力。例如,询问查找服务可用的服务。
(2)当一个服务在网络上可行时被告知的能力。例如,发出需求后从查找服务接收代理对象。
(3)租借任意一段时间(非无限长)服务器资源的能力。这由客户机的租借管理器完成。
(4)接收代理对象,而后经接口向客户机显示的能力。本文是在通用远程控制中的Java面板上实现的。
客户机接口应该能显示网络提供的不同服务。当前播放列表中的歌曲队列应在显示器上自动更新。
4.3 服务器设计
因为客户机功能不强,一些附加的功能就必需在服务器上添加。因此服务器至少必需支持以下操作:
(1)提供一个服务。如代理对象。
(2)发现查找服务和在网络上公布代理对象。
(3)写服务身份(对每一个代理独一无二)对象到文件。
(4)更新租借。
(5)断开租借已经到期的客户机联接。
上面几点是应用的核心。这几点组成了用于构建Jini应用的基本通信特征。服务器应该能加载目录和发现所有的mp3文件。服务器是物理点歌器,它应具有某种硬件用来播放mp3音频文件。
Jini和蓝牙技术的结合应用在通信环境中有以下优点:首先,不需要网络连接线;其次,不需要安装设备驱动程序;再次,一个设备远程控制另一个设备。这些特点使得网络更容易连接和管理。虽然蓝牙技术开发和生产的代价较高,Jini是SUN公司的免费产品,很容易掌握应用编程接口,并可进行分布式计算。随着蓝牙技术和Jini技术规范的发布、不断推广与相互结合,生活中各种电器的互连将变得愈来愈方便,Jini的即插即用功能和蓝牙的无线连网使得设备的增减变得非常简单,使网络的建设可以分阶段逐步完善而不必一次到位,满足了一般用户的需求。Jini技术和蓝牙的结合,必将进一步推动信息无线网络的快速发展,成为信息网络又一重要应用领域,将极大地改变人们的生活方式,促进普适计算时代的到来。