王朝网络
分享
 
 
 

全面实践JNDI技术

王朝other·作者佚名  2008-05-31
宽屏版  字体: |||超大  

一、简介

在本期中,将更进一步地介绍 Jini系统的相关开发环境,并辅以一个简单之实例作为说明。

之前提到藉由Jini 的技术,使我们可以轻易地结合任何服务(像是电子设备、应用程式等)到电脑网路上,并且很方便地使用它们。因此,在Jini 的世界中,主要有三种角色,分别是提供服务的service PRoviders、使用服务的clients、以及作为前两个角色间之桥梁的service locators[4]。其关系如图一所示。

图一、 Jini环境之示意图

其中service providers必须向 service locators 登记所提供的服务,而client可以向 service locators 查询所的服务资讯,并且藉以向 service providers 请求服务。因此 service locators 必须负责记录许多可用的服务之资讯,以及帮忙clients 搜寻所之服务。

以下将介绍如何利用Jini的package与相关平台开发出隐含上述关系的应用系统。

二、开发平台

目前开发Jini系统的平台之最新版本为1.0,其中包括 JiniTM System Software Starter Kit(Jini Starter Kit)、JiniTM Technology Core Platform Compatibility Kit (TCK)(测试环境)、JavaspacesTM Technology Kit ( JSTK)(利用Jini 实作出来的服务)三个套件 。

Jini Starter Kit 涵盖所有开发Jini 系统所之套件,有JiniTM Technology Core Platform(JCP)、 JiniTM Technology Extended Platform (JXP)、与JiniTM Software Kit(JSK )。其中JCP为Jini 的核心技术,包括 discovery、lookup 、lease等几个 packages,放在 net.jini.core目录里。JXP提供比JCP 更扩充之功能,包括discovery、 lookup、space等几个packages,放在 net.jini目录里。而JSK为用JCP实做出的lookup、 transaction服务与一些实用的类别, mahout、reggie等几个packages,放在com.sun.jini目录里。其中SUN公司将已经实作出的 JiniTM Transaction 称做 "mahout",而实作出的JiniTM Lookup service称做 "reggie"。

三、基础架构

首先要说明的是在 Jini中,呼叫远端 methods的方式,通常是采用RMI的技术 。例如,当client 找到适当的service 时,client可能会使用service端的服务,也就是远端呼叫(remote call),此时即可利用RMI 的技术来完成。(附注:当然,在 Jini中也可以选择不透过RMI,而直接写socket程式来完成远端呼叫。只是若利用RMI时,撰写程式会比较方便。)

我们已经知道 service provides 、clients与 service locators 之间的互动关系,接著就为您说明这三者间的实№运作情形,请参考图二。

图二、基础架构

Service locator的目的在於纪录与查询可用的服务资讯,而这种功能称做 "lookup service" ,因此其必须至少具备有lookup service的服务。此外,由於其底层网路通讯使用到了RMI 的机制,所以在 Service locator上还必须启动RMI daemon与HTTP daemon。而 HTTP daemon是用来提供做远程呼叫时,一种取得远端资料(如 Server_stub等)的途径。

由於我们是利用RMI 的机制提供服务让远端物件使用,所以Service provider所提供的 services必须继续至Remote类别,才能使用RMI功能。另外必须建立 (instantiate)一个 LookupLocator物件与一个 ServiceRegistrar 物件,以便向 service locator注册与使用其他服务。其中 LookupLocator物件是用来寻找特定的 service locator;而 ServiceRegistrar 物件则用来向 lookup service注册本service所提供的服务[4]。具体步骤请参考图三。

图三、 service 与 lookup service之关系图

Client同样也必须建立一个 LookupLocator物件与一个 ServiceRegistrar 物件。而 ServiceRegistrar 物件则被用来向 Service provider 取得所之服务。其过程示意图如图四及图五。

图四、 Client与lookup service之关系图

四、程式范例

接著就来介绍如何在Windows系统中实作一个简单的Jini 应用程式(底层使用RMI机制)。此范例将显示出如何启动lookup locator 、如何将services 向lookup lcoator 注册、如何收寻到特定的service、与如何使用远端的 service。其步骤分述如下:

在service provider端设计一个服务程式与其介面(interface):

设计一个client的程式:

启动service locator:首先启动 HTTP daemon与rmid ,而lookup service则使用Jini Starter Kit 1.0中,由JSK所提供现成的(已包装在 reggie.jar与 reggie-dl.jar)。

echo 启动 HTTP daemon

start java -jar -classpath %JINI_CLASSPATH% JINIHOME%\lib\tools.jar

-port 8080 -dir %JINIHOME%\lib

echo 清掉前一次的 RMID log 与 Reggie's log echo Directory.

deltree log

deltree reggie_log

echo 启动 RMI daemon

start rmid

echo 启动 lookup service,并且指定其所属的 group

echo为 "public".

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
>>返回首页<<
推荐阅读
 
 
频道精选
 
静静地坐在废墟上,四周的荒凉一望无际,忽然觉得,凄凉也很美
© 2005- 王朝网络 版权所有