基于CWMP(TR069)协议ACS服务器的搭建

article/2025/10/7 0:01:59

Linux上安装openacs

 

Openacs的安装分为四大步:

1.安装jdk

2.安装jboss

3.安装mysql

4.部署openacs

 

JDK简介

Java DevelopmentKit(JDK)是由Sun公司发布的针对Java开发人员发布的免费软件开发工具包(SDK, Software development kit)。自Java推出以来,JDK已经成为使用最广泛的Java SDK。作为java语言的SDK,普通用户不需要安装JDK来运行Java程序,只需要安装JRE即可。而程序开发者必须安装JDK来开发、编译和调试程序。这里因为Openacs是基于jdk-1.5.0_22开发的,因此选用1.5版本的JDK来作为运行环境。

 

JBOSS简介

JBoss是一个基于J2EE的开放源代码的应用服务器。 因为JBoss代码遵循LGPL许可,可以在任何商业应用中免费使用它。在J2EE应用服务器领域,JBoss是发展最为迅速的应用服务器。由于JBoss遵循商业友好的LGPL授权分发,并且由开源社区开发,这使得JBoss广为流行。JBoss应用服务器还具有许多优秀的特质。

 

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进行编译。

 

一.安装JDK1.5

1.从SUN公司的官网上下载二进制格式的JDK安装包jdk-1_5_0_22-linux-i586.bin

 2.运行该文件,安装在/opt目录下

cd  /optsh  ./ jdk-1_5_0_22-linux-i586.bin

之后选择yes,安装成功会在/opt目录下生成jdk1.5.0_22目录。

 3.安装成功后需要设置环境变量,在~/.bashrc文件里加入如下语句:

PATH=$PATH:/opt/jdk1.5.0_22/bin

JAVA_HOME=/opt/jdk1.5.0_22

CLASS_PATH=/opt/jdk1.5.0_22/lib/tools.jar

export PATH JAVA_HOME CLASS_PATH 

修改完成后使用source /etc/bashrc来更新环境变量。在终端里使用java -version来查看环境变量是否设置正确以确。

  二.安装JBOSS4.2.2.2

1.下载JBoss的安装包jboss-4.2.2.GA.zip

2.将安 装包解压到/opt文件夹下面,修改环境变量,在~/.bashrc加入如下语句:

PATH=$PATH:/opt/jboss-4.2.2.GA/bin 

JBOSS_HOME=/opt/jboss-4.2.2.GA 

3.部署完成后到/opt/jboss/bin目录下,以./run.sh -b 0.0.0.0 来运行JBOSS,看是否能启动成功,如果可以正常浏览http://localhost:8080/,说明JBOSS安装成功。(如果以localhost登陆不进去,就把localhost改为你的ip地址,注意是服务器的ip。)

 4.如果jboss不能通过ip访问,注意防火墙的问题

a.把要使用的8080端口打开,执行如下命令:

/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

b.把更改保存,执行如下命令:

/etc/rc.d/init.d/iptables save

c.重启防火墙,使更改立马生效,执行如下命令:

/etc/init.d/iptables restart

 三.安装mysql数据库

1.因为mysql数据库在Linux上实在是太流行了,所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面,我们可以通过如下命令来查看我们的操作系统上是否已经安装了mysql数据库

[weishusheng@centos opt]$rpm -qa | grep mysql

有的话,我们就可以用已经安装好的。

 2.我是通过yum的方式来进行 mysql 的数据库安装,首先我们可以输入 yum list | grep mysql 来查看yum上提供的 mysql 数据库可下载的版本:

[weishusheng@centos opt]$yum list | grep mysql          

3.安装mysql

将mysql  ,mysql-server ,mysql-devel都安装好(注意:安装mysql时我们并不是安装了mysql客户端就相当于安装好了mysql数据库了,我们还需要安装mysql-server服务端才行)

[weishusheng@centos opt]$yum install -y mysql-server mysql mysql-deve

 4.此时我们可以通过如下命令,查看刚安装好的mysql-server的版本

[weishusheng@centos opt]$rpm -qi mysql-server

 5.启动mysql

我们通过输入 service mysqld star命令就可以启动我们的mysql服务

[weishusheng@centos opt]$service mysqld start

这时我们会看到第一次启动mysql服务器以后会提示非常多的信息,目的就是对mysql数据库进行初始化操作,当我们再次重新启动mysql服务时,就不会提示这么多信息了

 6.我们在使用mysql数据库时,都得首先启动mysqld服务,我们可以 通过  chkconfig --list | grep mysqld 命令来查看mysql服务是不是开机自动启动,如:

[weishusheng@centos opt]$chkconfig mysqld on

7.mysql数据库安装完以后只会有一个root管理员账号,但是此时的root账号还并没有为其设置密码,在第一次启动mysql服务时,会进行数据库的一些初始化工作,在输出的一大串信息中,我们看到有这样一行信息 :

/usr/bin/mysqladmin -u root password 'new-password'  // 为root账号设置密码 

所以我们可以通过 该命令来给我们的root账号设置密码(注意:这个root账号是mysql的root账号,非Linux的root账号)。

weishusheng@centos opt]$mysqladmin -u root password 'root'  // 通过该命令给root账号设置密码为 root

 8.此时我们就可以通过 mysql -u root -p 命令来登录我们的mysql数据库了

[weishusheng@centos ~]$ mysql -u root -p

 9.以root用户再新建一个openacs用户, 并设置密码为openacs,

mysql> insert into mysql.user (Host,User,Password) values ('localhost','openacs',password('openacs'));

10.刷新系统权限表

mysql>flush privileges;

 11.退出后登录一下 

mysql>exit;[weishusheng@centOS6 ~]$ mysql -u openacs –pmysql>登录成功

12.接下来为openacs授权。以ROOT身份登录。

mysql -u root -p
密码

a.首先为用户创建一个数据库(ACSDB),

mysql> create database ACS;

 b.在mysql中创建用户,使该用户对该数据库有完全权限.
可以用 GRANT命令,格式如下 : 

GRANT 许可权 ON 数据库名.表名 TO 新用戶名@主机名 IDENTIFIED BY '密码'; 

如:
 

mysql> GRANT ALL ON ACS.* TO openacs@localhost IDENTIFIED BY 'openacs';

注:每一句mysql语句后面都跟有“;”号,注意大小写。

 c.查看、使用数据库

maql -u openacs -p ### 登录

use ACS;              ###使用/选中ACS数据库

show tables;           ###查看表

mysql一些常用命令

查看数据库: show databases; 使用数据库: use db_name; 查看表: show tables; 查看表结构: describe table_name; 删除数据库:drop database db_name; 退出mysql:exit

使用数据库: use db_name;
查看表: show tables;
查看表结构: describe table_name;
删除数据库:drop database db_name;
退出mysql:exit

13.将下载到的数据库驱动解压,将mysql-connector-java-5.1.7-bin.jar拷贝到 $(JBOSS_HOME)/server/default/lib/下面。

[weishusheng@centOS6mysql]$cp mysql-connector-java-5.1.7-bin.jar ../jboss/jboss-4.2.2.GA/server/default/lib/

至此数据库和驱动安装完成。 

四.部署openacs

1.将acs.ear拷贝到/opt/jboss-4.2.2.GA/server/default/deploy/下面。 

2.修改openacs-ds.xml使其适合你的数据库的配置:

<?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>

主要是修改user-name和password及connection-url 。 

3.修改完成后将openacs-ds.xml拷贝到($JBOSS_HOME)/server/default/deploy/下面。 

4.创建openacs-service.xml(已经有了就不用创建),并拷贝到($JBOSS_HOME)/server/default/deploy/jms下面,openacs-service.xml格式如下所示:

<?xml version="1.0" encoding="UTF-8"?>

<server>

    <mbeancode="org.jboss.mq.server.jmx.Queue" name="jboss.mq.destination:service=Queue,name=acsQueue">

        <dependsoptional-attribute-name="DestinationManager">jboss.mq:service=DestinationManager</depends>

    </mbean>

</server>

至此Openacs的配置完成。

但jboss启动失败,提示:

17:24:34,951 INFO  [Server] Runtime shutdown hook called, forceHalt: true
17:24:34,951 INFO  [Server] JBoss SHUTDOWN: Undeploying all packages
17:24:34,969 INFO  [Server] Shutdown complete
Shutdown complete
Halting VM

 解决过程:

1).禁用防火墙或者打开8080端口

2).JAVA_HOME路径避免包含不常使用的字符,把JAVA_HOME路径里的特殊字符去掉

3).避免机器重名,修改名字:

hostname localhost

5.openacs登录

http://192.168.1.21:8080/openacs/

  

最后给出几个cwmp相关的服务器和客户端下载链接

1. Perl CWMP Server

https://github.com/dpavlin/perl-cwmp

2. mini-cwmp

https://github.com/petersho/mini-cwmp

http://mini-cwmp.sourceforge.net/

3. open-tr069

http://code.google.com/p/open-tr069/

4. OpenACS

http://sourceforge.net/projects/openacs/

5. jCPE

http://code.google.com/p/jcpe/

6. netcwmp

http://code.google.com/p/netcwmp/

7. jCWMPServer

http://sourceforge.net/projects/jcwmpserver/

http://ftp.heanet.ie/mirrors/sourceforge/j/project/jc/jcwmpserver/

8. cwmpclient

https://bitbucket.org/spapas/cwmpclient

目前 openacs的作者已经移除了相关的全部源代码,不再维护和更新,也有人建议他不要移除,继续留在网上,不更新维护也没关系(因为之前原作者申明openacs是开源的),很遗憾原作者没同意。

大家可以到:http://sourceforge.net/projects/libreacs/ 去看一下,那里有没移除之前的源代码。


http://chatgpt.dhexx.cn/article/uPlGUjq5.shtml

相关文章

CWMP\TR069协议学习随笔1——入门基础知识及环境搭建

什么是CWMP&#xff08;TR069&#xff09; CWMP是由数字用户线路DSL——Digital Subscriber’s Line论坛&#xff08;之后更名为broadband-forum&#xff09;发起开发的技术规范之一&#xff0c;编号为TR-069&#xff0c;所以又被称为TR-069协议 CWMP协议基础概念 CWMP的全称…

网络协议篇之CWMP协议(一)—— CWMP(TR-069)基础

一、CWMP&#xff08;TR-069&#xff09;概述 CWMP&#xff08;CPE WAN Management Protocol&#xff0c;CPE广域网管理协议&#xff09;是由DSL&#xff08;Digital Subscribers Line&#xff0c;数字用户线路&#xff09;论坛发起开发的技术规范之一&#xff0c;编号为TR-069…

CWMP

http://blog.163.com/yuan_zhch/blog/static/1937900462012111113320220/ TR-069简介 转 2012-12-01 23:33:20| 分类&#xff1a; CWMP相关 |字号 订阅 http://hi.baidu.com/huiweics 相关缩略语 ACS&#xff1a;Auto-Configuration Server &#xff08;自动配置服务器&a…

网络协议篇之CWMP协议(二)—— CWMP(TR-069)业务流程

一、 CWMP&#xff08;TR-069&#xff09;业务流程 软件架构以及协议的具体解析过程 二、 CWMP&#xff08;TR-069&#xff09;通信过程 我们来看一个tr069协议完整的通信过程. (1) 建立TCP连接。 (2) SSL初始化&#xff0c;建立安全机制。 (3) CPE发送Inform报文&#xff0…

关于CWMP基础(一)----(TR069)

CWMP&#xff08;TR069&#xff09; 概述TR069协议族主要功能网络架构关于RPC协议基础RPC协议的处理流程回路&#xff1a;SOAP协议基础CWMP基本功能 概述 1.为什么需要TR069? 随着VoIP、IPTV等越来越多IP终端设备的普及&#xff08;尤其在家庭中的普及&#xff09;&#xff…

CWMP (TR-069)技术介绍

CWMP (TR-069)技术介绍-新华三集团-H3C 目 录 CWMP (TR-069) CWMP&#xff08;TR-069&#xff09;概述 CWMP网络框架 CWMP基本功能 CWMP实现机制 CWMP (TR-069) CWMP&#xff08;TR-069&#xff09;概述 CWMP&#xff08;CPE WAN Management Protocol&#xff0c;CPE广域网管理…

CWMP协议简介

CWMP协议 1、概念2、网络架构3、协议栈结构协议各层概要 4、基本功能①ACS和CPE自动连接&#xff0c;CPE可以通过发送Inform报文自动连接ACS②支持ACS对CPE的自动配置③支持对CPE系统镜像文件和配置文件的上传/下载管理④支持ACS对CPE状态和性能的监控 5、TR-069主要方法①CPE …

神经网络算法详解 01:人工神经网络基础

本文介绍了人工智能的发展历史&#xff0c;基本概念&#xff0c;应用领域&#xff1b;神经元模型&#xff0c;神经元的学习规则以及神经网络工作原理。本系列文章来自阿里云大学人工智能学习路线中的《神经网络概览及神经网络算法详解》课程。 系列文章&#xff1a; 【神经网络…

神经网络算法总结

文章目录 前馈神经网络1. 单层前馈神经网络&#xff08;单层感知器&#xff09;2. 多层感知器 反馈神经网络径向基函数网络&#xff08;RBF网络&#xff09;1. 径向基函数2. 径向基函数网络的结构3. 径向基函数网络原理 Hopfield网络1. Hopfield网络结构2. Hopfield神经网络的两…

卷积神经网络有哪些算法,卷积神经网络算法实现

卷积神经网络通俗理解 。 卷积神经网络&#xff08;ConvolutionalNeuralNetworks,CNN&#xff09;是一类包含卷积计算且具有深度结构的前馈神经网络&#xff08;FeedforwardNeuralNetworks&#xff09;&#xff0c;是深度学习&#xff08;deeplearning&#xff09;的代表算法…

神经网络算法---手写数字体识别

文章目录 神经网络的背景多层向前神经网络设计神经网络结构交叉验方法 Backpropagation 算法激活函数手写数字例子 神经网络的背景 1&#xff0c;1980年backpropagation是神经网络算法最著名的算法&#xff0c;以人脑中的神经网络为启发。 多层向前神经网络 backpropagation…

遗传算法和神经网络算法区别与联系

1、关于遗传算法&#xff0c;模糊数学&#xff0c;神经网络三种数学的区别和联系 遗传算法是一种智能计算方法&#xff0c;针对不同的实际问题可以设计不同的计算程序。它主要有复制&#xff0c;交叉&#xff0c;变异三部分完成&#xff0c;是仿照生物进化过程来进行计算方法的…

卷积神经网络算法三大类,卷积神经网络算法实现

卷积神经网络算法是什么&#xff1f; 一维构筑、二维构筑、全卷积构筑。 卷积神经网络&#xff08;ConvolutionalNeuralNetworks,CNN&#xff09;是一类包含卷积计算且具有深度结构的前馈神经网络&#xff08;FeedforwardNeuralNetworks&#xff09;&#xff0c;是深度学习&a…

神经网络的基本原理,神经网络算法三大类

1、神经网络是什么&#xff1f; 生物神经网络主要是指人脑的神经网络&#xff0c;它是人工神经网络的技术原型。 人脑是人类思维的物质基础&#xff0c;思维的功能定位在大脑皮层&#xff0c;后者含有大约10^11个神经元&#xff0c;每个神经元又通过神经突触与大约103个其它神…

神经网络的算法有哪些,神经网络算法包括哪些

卷积神经网络算法是什么&#xff1f; 一维构筑、二维构筑、全卷积构筑。 卷积神经网络&#xff08;ConvolutionalNeuralNetworks,CNN&#xff09;是一类包含卷积计算且具有深度结构的前馈神经网络&#xff08;FeedforwardNeuralNetworks&#xff09;&#xff0c;是深度学习&a…

反馈神经网络算法

典型的卷积神经网络&#xff0c;开始阶段都是卷积层以及池化层的相互交替使用&#xff0c;之后采用全连接层将卷积和池化后的结果特征全部提取进行概率计算处理。 在具体的误差反馈和权重更新的处理上&#xff0c;不论是全连接层的更新还是卷积层的更新&#xff0c;使用的都是经…

神经网络算法实例说明,简单神经网络算法原理

神经网络算法实例说明有哪些&#xff1f; 在网络模型与算法研究的基础上&#xff0c;利用人工神经网络组成实际的应用系统&#xff0c;例如&#xff0c;完成某种信号处理或模式识别的功能、构作专家系统、制成机器人、复杂系统控制等等。 纵观当代新兴科学技术的发展历史&…

算法评价与神经网络算法

前言 随着大数据和信息传输技术的兴起、人们的数据处理工作指数型增长&#xff0c;传统的编程方法和数学模型不再适用于这样大数据量、高噪音的工作&#xff0c;神经网络的使用就变得愈加广泛。作为传统机器学习的一个分支&#xff0c;神经网络实现了更高层次的自动化。对于多…

神经网络算法可以用来干什么

神经网络算法可以解决的问题有哪些 人工神经网络&#xff08;Artificial Neural Networks&#xff0c;ANN&#xff09;系统是 20 世纪 40 年代后出现的。它是由众多的神经元可调的连接权值连接而成&#xff0c;具有大规模并行处理、分布式信 息存储、良好的自组织自学习能力等特…

Matlab实现神经网络算法

线性关系可以说是最简单的关系&#xff0c;但在大多数实际问题求解中&#xff0c;线性关系往往不能体现事物之间的复杂关系。而神经网络算法具有非线性关系的逼近能力。在以往所学的算法中&#xff0c;往往是通过得到一个f(x)函数来描述y和x之间的关系的&#xff0c;但神经网络…