Handle本地调试及基础开发

本文详述了如何进行Handle本地调试环境的搭建,包括CentOS 7上安装Java 11和Handle 9.3.0,以及解决服务启动问题。还介绍了Global与本地Handle的解析过程,并提供了使用Java进行Handle解析的代码示例,为Handle的二次开发奠定基础。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Handle本地调试及基础开发

1.前言

  1. 本文主要介绍Handle标识解析服务的搭建及利用JAVA库进行本地handle以及Global’s Handle解析的开发
  2. 本文不会过多赘述Handle的基础理论,仅简要阐述与调试及开发相关的知识点.因此,如对Handle相关理论细节存疑请移步查阅RFC文档,或自行百度Google.
  3. 一切请以官网为准,以当前所使用的版本为准
  4. 若有侵权,请联系本人删除,thanks!
  5. 欢迎评论指正,本人也是边学边写的,有些思路可能是有更好的解决方案的.

2.Handle的介绍

Handle系统是一套由国际DONA基金会组织运行和管理的全球分布式管理系统。是一种标识解析技术,是一个完备的标识解析系统,类似于互联网中的DNS系统一样,在dns中输入域名最后获得ip地址,而在Handle系统中输入handle值最后能够获得这个对象所配置了的所有信息(前缀解析来到本地的服务器,然后在本地的服务器中依据后缀找到这个对象,本地想给这个对象配置啥信息,他就可以有什么信息)

Handle细节不赘述,具体细节请参考RFC文档

本文强调本地调试的一个主要目的是,申请一个Handle前缀是要50刀的,而有一些代码开发/实验等等不需要用到外网环境,所以本文介绍一种可以在本地就进行解析实验的方法.故,第一步是搭建Handle环境,接着往本地的数据库插入数据,然后进行本地及Global的handle解析测试;第二步是介绍Handle的Java库基本解析代码,也是分为本地和Global的.

Handle的RFC文档: RFC3650 / RFC3651 / RFC3652

Handle的官网: https://handle.net/

工业互联网标识解析体系发展趋势: http://www.cnki.com.cn/Article/CJFDTotal-DXWJ201908011.htm

刚接触Handle时参考过该blog,言简意赅: http://www.mryu.top/notes/277.html

3.Handle环境搭建&解析

官方的操作手册: http://hdl.handle.net/20.1000/113
1.里面有基本的工具介绍
2.可以注意到.net后面跟着的就是一个handle

3.1环境

  • 版本
    • centos 7
    • java 11(官方建议是java8以上就行,因此这里请根据实际情况选择java版本)
    • handle 9.3.0

3.2搭建步骤

ps: 下面的安装中handle的配置部分请根据实际情况自行更改输入参数

# 1.为了java能够正常使用,我会卸载了centos自带的jdk,然后安装Oracle版本的jdk
# 1.1.check本地已安装的jdk
$ rpm -qa | grep jdk
java-1.6.0-openjdk-devel-1.6.0.41-1.13.13.1.el7_3.x86_64
java-1.8.0-openjdk-devel-1.8.0.262.b10-0.el7_8.x86_64
java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
java-1.7.0-openjdk-devel-1.7.0.261-2.6.22.2.el7_8.x86_64
java-1.8.0-openjdk-headless-1.8.0.262.b10-0.el7_8.x86_64
java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el7_3.x86_64
java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64
copy-jdk-configs-3.3-10.el7_5.noarch
# 1.2.卸载
$ rpm -e --nodeps java-1.6.0-openjdk-devel-1.6.0.41-1.13.13.1.el7_3.x86_64
$ rpm -e --nodeps java-1.8.0-openjdk-devel-1.8.0.262.b10-0.el7_8.x86_64
$ rpm -e --nodeps java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
$ rpm -e --nodeps java-1.7.0-openjdk-devel-1.7.0.261-2.6.22.2.el7_8.x86_64
$ rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.262.b10-0.el7_8.x86_64
$ rpm -e --nodeps java-1.6.0-openjdk-1.6.0.41-1.13.13.1.el7_3.x86_64
$ rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.261-2.6.22.2.el7_8.x86_64
$ rpm -e --nodeps java-1.8.0-openjdk-1.8.0.262.b10-0.el7_8.x86_64
# 2.安装jdk11
# 2.1请自行到Oracle官网下载jdk8以上的jdk到服务器,由于我是在本地下好复制进服务器中,所以下载步骤略
# 2.2安装,本次偷懒直接使用rpm方式安装,若下的tar.gz请自行百度环境配置
$ rpm -ivh jdk-11.0.8_linux-x64_bin.rpm 
# 2.3检查java
$ java -version
# 3.安装handle
# 3.1.也是下好了拖进服务器的
$ tar -zxvf handle-9.3.0-distribution.tar.gz
$ mkdir /opt/hs
$ mv handle-9.3.0 /opt/hs/
# 3.2.创建本地handle服务的数据存放文件夹
$ mkdir -p /opt/hs/svr-1
# 3.3.安装
$ cd /opt/hs
$ ./handle-9.3.0/bin/hdl-setup-server svr-1/

To configure your new Handle server, please answer
the questions which follow; default answers, shown in 
[square brackets] when available, can be chosen by 
pressing Enter.

# 搭建的单节点服务器,所以选择"是"主服务
Will this be a "primary" server (ie, not a mirror of another server)?(y/n) [y]: 
# 本地测试只用到ip4,所以关闭双栈
Will this be a dual-stack server (accessible on both IPv6 and IPv4)?(y/n) [n]: 
# 输入可以访问到该机器的IP,如我这里输入的是服务器在局域网中的ip
Through what network-accessible IP address should clients connect to this server? [10.10.10.6]: 172.22.105.134
# 可以再输入一个不同的,我这里用不到
If different, enter the IP address to which the server should bind. [172.22.105.134]: 
# 使用默认的端口
Enter the (TCP/UDP) port number this server will listen to [2641]: 
# 使用默认的端口
What port number will the HTTP interface be listening to? [8000]: 
# 是否保存访问记录
Would you like to log all accesses to this server?(y/n) [y]: 
# 保存周期,过期会自动删除
Please indicate whether log files should be automatically
rotated, and if so
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值