OpenACS(TR069)服务搭建(Centos7)

最近公司需要一个能远程控制终端设备的系统,目前使用的协议是TR069,查看一个开源项目OpenACS是对TR069的实现,可惜的是该项目已停止维护

TR069协议

全称“Technical Report 069”是由DSL Forum(一个非盈利性的全球行业联盟,致力于发展宽带网络范,其成员包括通讯、设备、计算机、网络和服务提供商等行业的领先厂商,现已更名为“Broadband Forum”)修订一份技术规范,该规范是应用层的管理协议,命名为“CPE广域网管理协议(CPE WAN Management Protocol)”。

TR069定义了一套全新的网管体系结构,包括管理模型,交互接口及基本的管理参数,能够有效地实施对家庭网络设备的管理。

在TR069协议定义的网管模型中管理服务器称为自动配置服务器(ACS),负责完成对用户终端设备(CPE)的管理。ACS与CPE之间的接口称为南向接口,ACS与运营商的其他网管系统、业务管理系统、计费系统(OSS/BSS)之间的接口称为北向接口,TR069协议主要定义南向接口的标准。TR069协议允许 ACS 给一个 CPE 或一组基于多种标准的CPE 提供服务。这个服务提供机制允许 CPE 既可以在刚刚连接到宽带接入网时,也可以在以后的任何时间来进行动态服务提供或重新配置。此机制包括支持在异步状况下 ACS 发起的服务。此协议包含的鉴权机制允许为每一台指定的 CPE 或基于相同的 CPE 供应商、型号、软件版本或其他标准的 CPE 组提供服务。同时也提供了一些可选的功能来管理那些有特殊级别安全需求的应用或业务,例如付费服务等。

TR069协议网络拓扑如下图,ACS 是在网络中的服务器,根据预定制来管理设备,其左侧连接运营商的其他网管系统、业务管理系统等北向接口。 TR069协议主要定义了ACS和CPE间的南向接口,TR069协议可以用于理DSLB-NT以及其他类型的CPE,包括路由器和 LAN 侧的客户端设备。它被服务供应商用于基于跟设备已经建立的IP层链接的特殊媒体接入上。


acs.png

TR069协议栈

TR069协议包含一些该协议特有的组件,同时也使用了一些标准协议,如下:

  • CPE/ACS Management Application
  • RPC Methods
  • SOAP
  • HTTP
  • SSL/TLS
  • TCP/IP
    TR069 架构在 HTTP / HTTPS 之上,借由 SOAP 包装 XML 物件做为沟通内容的通讯协议。

Openacs简介

Openacs是一个用Java编写的开源的ACS服务器,该项目于2007-09-06 由Audrius Valunas发起,经过四年的开发,Openacs已经拥有了非常完善的功能,不仅仅可以作为CPE开发的辅助测试工具,而且完全可以胜任对一定数量的CPE进行远程管理。Openacs采用B/S模式,可以通过浏览器访问ACS服务器,对CPE的远程管理可以通过编写Java script来灵活实现。Openacs需要部署在JBoss应用程序服务器,Release的版本有bin(二进制)版本和src(源码)版本的,其中源码版本需要使用ant进行编译。
可惜的是该项目已停止维护且无源码

Openacs服务配置

由于将要用到的openacs和jboss都是用java语言所编写,所以配置前我们需要一些必须的环境配置
软件环境

  1. linux系统(centos7.x)
  2. jdk(version:1.8)
  3. jboss(version:-4.2.0.GA) 这里的版本非常重要,我试了其他高版本,问题会比较多
  4. openacs-bin-0.5
  5. mysql

JDK安装

#vi /etc/profile
export JAVA_HOME=/usr/installpackage/jdk1.8.0_111
export CLASSPATH=.:$JAVA_HOME/jre/lib/rt.jar:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin

jboss安装
jboss下载地址:https://pan.baidu.com/s/1o7Pfcsa
下载后进行解压完成
将下载到的数据库驱动解压,将mysql-connector-java-5.1.7-bin.jar拷贝到 $(JBOSS_HOME)/server/default/lib/下面。

mysql安装
安装后设置账号密码,并创建数据库ACS。

部署openacs

  1. 将acs.ear拷贝到/opt/jboss-4.2.2.GA/server/default/deploy/下面。
  2. 修改完成后将openacs-ds.xml拷贝到($JBOSS_HOME)/server/default/deploy/下面:
<?xml version="1.0" encoding="UTF-8"?>
<datasources>
   <local-tx-datasource>
       <jndi-name>ACS</jndi-name>
       <connection-url>jdbc:mysql://localhost/ACS</connection-url>
       <driver-class>com.mysql.jdbc.Driver</driver-class>
       <user-name>openacs</user-name>
       <password>openacs</password>
       <min-pool-size>5</min-pool-size>
       <max-pool-size>20</max-pool-size>
       <idle-timeout-minutes>5</idle-timeout-minutes>
   </local-tx-datasource>
</datasources>
  1. 将openacs-service.xml拷贝到($JBOSS_HOME)/server/default/deploy/jms下面

启动jboss

./bin/run.sh -b 0.0.0.0

打开服务http://192.168.102.253:8080/openacs/
若服务启动失败,请关闭防火墙再试。

异常处理

java.lang.UnsupportedOperationException: 
setProperty must be overridden by all subclasses of SOAPMessage   

原因是Jboss的soap实现的是老的javax.xml.soap.SoapMessage接口,这个接口的setProperty方法在老版本是不需要override的,但是到了Java6,由于Java6的jdk本身自带soap包,而自带的这个包的SoapMessage接口对setProperty方法又强制其实现类要override自身,否则则抛出上述异常。
解决方案:

${JBOSS_HOME}/lib/中除了getopt.jar, jboss-system.jar, jboss-jmx.jar其他所有的jar移进${JBOSS_HOME}/lib/endorsed,同时移动${JBOSS_HOME}/client/目录中的jboss-saaj.jar ,jboss-jaxrpc.jar${JBOSS_HOME}/lib/endorsed目录下,这样服务器将使用jboss自带的老版本,经验证有效。

CPE终端测试

首先下载cpe文件fishcorecpe-v1.0.2-build20120606-01.tar.gz
解压,修改fishcore.conf文件,内容如下:

#acsurl http://10.116.20.3:8080/web/autoacs
#acsurl https://10.116.20.3:8443/web/autoacs
acsurl http://192.168.102.253:8080/openacs/acs
acsusr acs
acspwd acs
cpeusr cpe
cpepwd cpe

主要是配置acsurl指向服务器接口。
启动

./fishcorecpe

可以看到以下日志

fishcore-cpe version: v1.0.2 
build in: Jun  6 2012 21:19:40
Copyright (C) FishOS Embeded Software Studio 2012-2013 
This is a Demo version
Technique(TR069) support: http://www.xnmp.net
...

loading...
now init parameter entry...
parameter node callback method init ok
device data model is : TR-098 InternetGatewayDevice
bootstraping.....
generate run-time xml tree ok
command config : http://192.168.102.253:8080/openacs/acs ok
command config : acs ok
command config : acs ok
command config : cpe ok
command config : cpe ok
init Parameters ... ok
init transfer info ...ok
remove rebooting related flag  ok
init device ok
cwmp sys init done
Fishcore_cpe>local-control thread sync timer bind ok
acs thread sync timer bind  ok
create timer thread ok
remove unboot firmware ok
no usage acs info need to be resume
run-time memory ok
system init completed
system now is running...

acsurl请求ok,说明已连接到服务器,可以查看服务器日志,得到设备ID,如FC1234567890
接着可以通过ID在服务器上查找对应的设备,同时也可以下发信令给设备,设备信息如下:


fishcorecpe.png

目前 openacs的作者已经移除了相关的全部源代码,不再维护和更新。
大家可以到:http://sourceforge.net/projects/libreacs/去看一下,那里有没移除之前的源代码。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,651评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,468评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,931评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,218评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,234评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,198评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,084评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,926评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,341评论 1 311
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,563评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,731评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,430评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,036评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,676评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,829评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,743评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,629评论 2 354

推荐阅读更多精彩内容

  • DUState应该是指的download&upload state,下载和上传状态。RPC方法中有一个是ACS的“...
    落笔心晴阅读 11,587评论 0 4
  • 国家电网公司企业标准(Q/GDW)- 面向对象的用电信息数据交换协议 - 报批稿:20170802 前言: 排版 ...
    庭说阅读 10,960评论 6 13
  • 所有元素可继承:visibility和cursor。内联元素可继承:letter-spacing、word-spa...
    黑夜与繁星阅读 203评论 0 0
  • 产房 咦,这小孩怎么不哭? 你再多拍几下 啪~ 等等,先别拍了,哭了 这哭声有点小啊 来,我看看,这孩子反应也有点...
    袅烟微微阅读 355评论 2 0