转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> JAVA开发 >> 正文
全面实践JNDI技术         ★★★★

全面实践JNDI技术

作者:闵涛 文章来源:闵涛的学习笔记 点击数:881 更新时间:2009/4/22 23:27:32
  一、简介

  在本期中,将更进一步地介绍 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".

java -jar -classpath %JINI_CLASSPATH% -Djava.security.policy=

%JINIHOME_FORWARDSLASH%/example/lookup/policy.all

%JINIHOME_FORWARDSLASH%/lib/reggie.jar http://localhost:8080/reggie-dl.jar

%JINIHOME%/example/lookup/policy.all %SERVICEHOME%\reggie_log public

  • 执行service provider之service :若此service接到请求时,将会传回一个字串物件到 client端。

java -classpath %JINI_CLASSPATH% -Djava.security.policy=
%SERVICEHOME%/ policy.all

-Djava.rmi.server.codebase=http://localhost:8080/ MyServer

  • 执行client程式。

java -classpath %JINI_CLASSPATH% -Djava.security.policy=
%SERVICEHOME%/policy.all

-Djava.rmi.server.codebase=http://localhost:8080/ MyClient

157


[网络安全]十大技术摆脱莫名黑客的网络攻击下篇  [网络安全]十大技术摆脱莫名黑客的网络攻击上篇
[网络安全]四种网络加密技术详解及应用介绍  [网络安全]菜鸟学习—认识无线网络安全技术规范
[网络安全]“自动运行蠕虫变种JPH ”病毒技术细节  [Web开发]ASP.NET技术中常见问题的详细解答及代码之一
[Web开发]Net2.0如何实现伪静态技术,或者地址重写?  [Web开发]ASP.NET 2.0的新技术URL映射
[Web开发]伪静态技术与页面多参数传送的处理办法  [Web开发]利用Ajax技术实现在线歌词搜索功能
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台