Openacs的部署

Openacs搭建流程

 

项目

具体环境及版本

硬件系统

PC

操作系统

Ubuntu11.04(natty)-Linux 2.6.38-8-generic

运行环境

SUN-JDK-1.5.0_22

Web应用服务器

JBoss-4.2.2.GA

ACS服务器

Openacs-0.4-bin

数据库

MySQL-5.1.54(ubuntu)

数据库驱动

Mysql-connector-java-5.1.18

 

1.JDK简介

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

2.JBOSS简介

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

其一,它将具有革命性的JMX微内核服务作为其总线结构;   

其二,它本身就是面向服务的架构(Service-Oriented Architecture,SOA);   

其三,它还具有统一的类装载器,从而能够实现应用的热部署和热卸载能力。   

在2004年 6月,JBoss公司宣布,JBoss应用服务器通过了Sun公司的J2EE认证。这是JBoss应用服务器发展史上至今为止最重要的里程碑。与此同时, JBoss一直在紧跟最新的J2EE规范,而且在某些技术领域引领J2EE规范的开发,JBoss应用服务器已经真正发展成具有企业强度(即,支持关键级任务的应用)的应用服务器。

JBoss子目录功能说明:

 

bin

开始和停止JBOSS的地方

docs

放置JBOSS的例子、测试脚本和各种脚本配置文件的DTD

lib

放置JBOSS所需要的部分jar包文件

client

放置EJB客户端运行时所需要的jar包

server

放置各启动类型的服务器端EJB配置所需要的文件等

 

3. 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

从SUN公司的官网上下载二进制格式的JDK安装包jdk-1_5_0_22-linux-i586.bin,运行该文件,安装在/opt目录下,安装成功后需要设置环境变量,在/etc/bash.bashrc文件里加入如下语句:

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

JAVA_HOME=/opt/jdk1.5.0_22

CLASS_PATH=$(JAVA_HOME)/lib/tools.jar

export PATH JAVA_HOMECLASS_PATH

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

 

二、安装JBOSS4.2.2

下载JBoss的安装包jboss-4.2.2.GA.zip,将安装包解压到/opt文件夹下面,修改环境变量,在/etc/bash.bashrc加入如下语句:

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

JBOSS_HOME=/opt/jboss-4.2.2.GA

部署完成后到/opt/jboss/bin目录下,./run.sh -b 0.0.0.0 来运行JBOSS,看是否能启动成功,如果可以正常浏览http://localhost:8080/,说明JBOSS安装成功。

 

三、安装MySQL数据库和数据库驱动

安装MySQL-5.1.54(ubuntu)版本的数据库,创建用户openacs并设置密码为openacs,可以使用mysql -u openacs -p 来进入数据库。将下载到的数据库驱动解压到/opt目录下,将mysql-connector-java-5.1.7-bin.jar拷贝到 $(JBOSS_HOME)/server/default/lib/下面。进入数据库,创建数据库ACS,并修改访问权限,如下所示:

CREATE DATABASE ACS;

GRANT ALL ONACS.* TO openacs IDENTIFIED BY 'openacs';

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

 

四、部署Openacs

下载得到的Openacs-0.4-bin中包含了acs.ear,需要部署到JBOSS中才可以运行,首先将openacs解压到/opt中,将acs.ear拷贝到($JBOSS_HOME)/server/default/deploy/下面,修改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>

修改完成后将openacs-ds.xml拷贝到($JBOSS_HOME)/server/default/deploy/,创建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,可以看到Jboss在部署Openacs,部署完成后可以通过http://localhost:8080/openacs/来访问,如下图所示:

 

 

 

Openacs使用简介

 

openacs的设置
1    CPE的设置

CPE需要ACS URL才能连接到ACS,因此需要在CPE侧设置好ACS的URL。URL又分为HTTP和HTTPS两种,HTTPS(超文本传输安全协议)是HTTP和SSL的结合,用来提供加密通讯和对网络服务器身份的鉴定,默认端口是443,这里为了与使用HTTP协议的Web服务区分但又方便记忆分别使用了8080和8443的端口。

ACS URL(HTTP)

http://localhost:8080/openacs/acs

ACS URL(HTTPS)

https://localhost:8443/openacs/acs



2    Openacs的基本设置
        1)  在浏览器里访问http://192.168.1.86:8080/openacs/index.jsf  或者  https://192.168.1.86:8443/openacs/index.jsf,我们就可以访问Openacs的控制界面了。
        2)  在"find CPE"页面,选择Hardware的型号,输入inform里SerialNumber,即可进行查询。
        3)在查询页面"config"里可以进行用户名和密码设置,默认是没有的,还可以选择认证的方式,有BASIC和MD5两种方式,分别对应于BASIC基本认证和DIGEST摘要认证。
       4) 在"Configuration scripts"-->"Default"里输入要操作的脚本,点击保存;当ACS收到CPE发来的INFORM消息后,ACS会默认执行Default脚本。
        5)在"find CPE"页面,选择型号输入serial number查询后 ,在显示的查询页面里点击"Connection request URL: "就可以出发CPE被动连接ACS,但前提是你在启动JBoss的时候必须使用./run.sh -b YOUR_IP_ADDR绑定IP地址,不能使用-b 0.0.0.0。


Openacs函数

logger("string")

可以将string 输出到JBoss应用程序服务器的Log记录

call("scrpit_name")

调用其他指定脚本

 

Openacs变量

Ø        cpedb:可以用来访问数据库中的CPE Bean,可以调用save方法将数据写回数据库。例如:

var someprop =cpedb.someprop;

cpedb.someprop ='new_value_for_someprop';

cpedb.Save ();

 

 

 

Ø        cpe:可以用来访问所有TR069中指定的CPE变量和RPC方法,例如cpe.GetRPCMethods会返回CPE所有支持的RPC的数组。相应的GetRPCMethods的脚本如下所示:

// this willoutput supported methods to server console

var methods =cpe.GetRPCMethods ();

for (i = 0; i< methods.length; i++) {

       logger ('Method: '+methods[i]);

}

 

Ø        db:可以用来访问数据库。使用db.Query (data_source_name,select_statement)可以在data_source指定的数据源上调用select_statement指定的MySQL语句,如果省略data_source_name直接调用db.Query (select_statement),则会访问数据源java:ACS,例如:

try {

    var rs = db.Query ("SELECT id,serialnoFROM hostsbean")

    logger ("Rows found ="+rs.length)

    for(i=0; i < rs.length; i++) {

        logger ("id ="+rs[i].id+" serialno= "+rs[i].serialno);

    }

} catch (e) {

    logger ("DS exception:"+e.message)

}

如果想插入和更新数据库,可以分别调用db.Update(data_source_name, select_statement)方法同上,例如:

try {

    var rs = db.Update ("INSERTid,serialno INTO hostsbean VALUES (NULL,'12345')")

} catch (e) {

    logger ("DS exception:"+e.message)

}

 

Openacs测试结果

将CPE的ACS URL修改为Openacs服务器的URL后,CPE主动连接ACS触发INFORM流程,INFORM流程之后,Openacs开始按照"Default"的Java script的脚本执行。在CPE的代码开发阶段主要使用Openacs作为辅助测试工具,因此编写了多个脚本,每个脚本尽可能只调用一种RPC方法,来测试CPE侧对应RPC的功能是否完善,处理流程是否正确。Openacs拥有非常完善的功能,不仅TR069中所有的RPC都已经完美实现,还有很多实际应用中需要的功能,比如DSLStatistics和DSLStatistics Graph功能,可以统计CPE和ACS之间的数据交互情况,并以图表的形式反映出来。

 

 

Openacs小结

随着越来的越多的企业开始意识到TR069在远程管理设备上得优势,相信会有越来越多的企业参与到ACS和CPE的开发中。但对于中小企业来讲受研发实力和资金的限制,单独开发ACS可能会遇到很多的困难。Openacs作为一个开源项目,在作者和众多爱好的努力下,现在已经成为使用灵活、功能强大的ACS服务器,其开源的特性和完善的功能使的企业在使用Openacs的时候有多种选择,既可以作为开发CPE的辅助测试工具,也可以在Openacs的基础上开发适合本公司产品的ACS,或者直接使用Openacs来管理CPE设备。相信随着TR069的逐渐火热,Openacs作为开源的ACS服务器中的佼佼者,一定会得到越到越多的关注。

你可能感兴趣的:(Openacs的部署)