`
smartzxy
  • 浏览: 200366 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

完成CPE端java模拟实现初稿的一定心得

阅读更多

       之前看了些预备知识,最近在利用这些技巧来实现科协布置的项目:根据tr-069协议实现模拟的ACS端和CPE端。好不容易把CPE端写出了个“形”,迫不及待的就想晒晒心得。先介绍一下这个协议吧:

       <!----><!---->  <!---->TR-069 范是 属于 TR-046 规定的 B-NT 自动配置框架中高级复杂业务协议配置部分。主要由自动配置管理服务器 Automatic Configuration Server ACS ),用户驻地设备( Customer Premises Equipment CPE ,即被管终端),业务配置管理服务器以及一些必要的管理接口组成。它通过定义一套 ACS CPE 之间自动协商交互协议,实现远程管理的功能。如图1 所示,宏观上主要有两个接口,一个时完成从业务或服务提供商向 ACS 下发业务配置的北向接口( ACS Northbound Interface ),另外一个是完成从 ACS CPE 配置管理的南向接口( ACS Southbound Interface )。

       我实现的这个CPE端的功能大致如下:首先,使用HTTPClient提供的API向ACS服务器发送一个没有内容的HTTP-Get请求——模拟CPE上电后的首次建连;在收到服务器返回的响应后,通过HTTP-Post发送一封 SOAP 内含Inform请求——请求建立一个会话;如果紧接着收到一封包含InformResponse方法的SOAP回复,按协议的说法表明会话已经成功建立,再次发送一个空的HTTP请求——告诉服务器可以开始远程管理了……会话的连通过程中,服务器可以发送协议规定的SOAP请求到CPE端,CPE作相应的解析、处理、回复。最后服务器Post一个空的HTTP请求来关闭这次会话。

       实现程序里的连接服务器功能的是HTTPClient(Apache的项目)提供的GetMethod和PostMethod方法。大概用法是:

// Create an instance of HttpClient.
		HttpClient client = new HttpClient();
		// Set authentication.
		client.getState().setCredentials(
				new AuthScope(AuthScope.ANY_HOST, 8080, AuthScope.ANY_REALM),
				new UsernamePasswordCredentials("username", "password"));
		// Create a method instance.
               //PostMethod is similar
  		GetMethod get = new GetMethod(URL);
		// Tell the GET method to automatically handle authentication.
		get.setDoAuthentication(true);
		// Provide custom retry handler .
		get.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
				new DefaultHttpMethodRetryHandler(3, false));
		int status;

               // Execute the method.
		try {
			status = client.executeMethod(get);
			
		} catch (HttpException e) {
			System.err.println("Fatal protocol violation: " + e.getMessage());
			e.printStackTrace();
		} catch (IOException e) {
			System.err.println("Fatal transport error: " + e.getMessage());
			e.printStackTrace();
		} finally {
			// Release the connection.
			get.releaseConnection();
		}

 HTTPClient的功能很全面,还能处理、设置各种报头。

       SOAP消息的生成和解析就用到了我之前的文章里提供的方法:“建厂”->实现信封->实现header->实现body。而功能逻辑参考了OpenACS的解析方法。在调试程序的各项功能的时候,一个“泥潭”让我深刻认识到SOAP(或者说是解析SOAP的API)是区分大小写的。这个泥潭出现在一个前缀:“SOAP-ENV”上:开始我把body元素的这个前缀弄成了小写,因为这个前缀是API自动生成的,没有在代码里显示,我也压根没考虑它的大小写问题。我用服务器向客户端发送SOAP消息,报头的信息都能正确得到,状态码也是200,可就是获取不了SOAP消息。我尝试删除一些SOAP内容,最后就发现问题出在了加载这个前缀的那行代码上,于是就发现了这个问题。改成大写的,一切OK。

event.setAttribute("SOAP-ENV:arrayType", "xsd:EventStruct[64]");
 
  • 描述: 图1
  • 大小: 60.3 KB
分享到:
评论

相关推荐

    jCPE.rar_cpe_java tr-0_jcpe java_openacs_src_0.02.rar_tr069 open

    《深入解析TR-069协议与Java CPE客户端实现》 TR-069(Technical Report 069)是一种由DSL论坛制定的通信协议,全称为“Automated Configuration and Software Update for Customer Premises Equipment”(用户端...

    Java 下 简单 实现 tr069 协议

    3. **ACSDemo**:ACSDemo可能是一个示例应用,展示了如何在Java中实现TR069的客户端部分,即CPE设备的模拟。它可能包含了如何初始化会话、发送管理请求以及接收并处理服务器响应的代码实例。 4. **CPEDemo**:与...

    基于博特CPE和华为路由器搭建GRE隧道网络GRE抓包

    标题中的“基于博特CPE和华为路由器搭建GRE隧道网络GRE抓包”表明我们要讨论的是如何使用博特 Customer Premises Equipment (CPE) 和华为路由器建立一个通用路由封装(Generic Routing Encapsulation, GRE)隧道,并...

    tr069 cpe ACS模拟器

    TR069 CPE ACS模拟器是一款专为网络设备配置和管理设计的工具,它主要用于TR069协议的调试和测试。TR069(Technical Recommendation TR-069)是由DSL论坛(现为Broadband Forum)制定的一项通信协议,用于自动化客户...

    ExcelMAX FDD CPE 全双工室外用户端.pdf

    ExcelMAX FDD CPE 全双工室外用户端pdf,ExcelMAX FDD CPE 全双工室外用户端

    基于CPE进化教学法的Java SE课程教学改革实践.pdf

    【知识和技能的进化过程】是CPE教学法的核心特征,随着教学环节的推进,学生会不断改进和完善之前的项目,以此实现知识的更新和技能的提升,形成举一反三的学习效果。 【教学情境的确定】至关重要,它为每个教学...

    Comfast CPE 如何设置

    Comfast CPE(Customer Premises Equipment)是网络设备中的一种,主要用于实现无线网络的桥接功能,通常用于需要长距离无线覆盖或者无法铺设有线网络的环境。CPE设备可以通过无线信号接收并转发数据,从而在两处或...

    如何实现软件定义CPE?

    如果部署了软件定义CPE,运营商就可以通过软件升级方式来演进其集客接入网。在非-SDN 阶段,CPE被配置成传统的PTN或IP RAN设备。需要SDN的时候,就将CPE升级成支持OpenFlow 的设备。在未来,还可以将其继续升级成...

    max232cpe RS232

    - **低功耗模式:** 在关断状态下,MAX232CPE的接收端可进入低功耗模式,此时的功耗非常低(μW),这对于延长电池寿命至关重要。 **3. 符合EIA/TIA-232E和V.28规格** - **符合行业标准:** MAX232CPE完全符合...

    tr-069-ClientTR069.tar.gz java实现源码

    Java 下 简单 实现 tr069 协议,包含了RPCMethod相关大部分协议,例如:GetRpcMethods、GetRpcMethodsResponse、AddObject.java、AddObjectResponse.java、DeleteObject.java、Download.java、FactoryReset.java、...

    Golabel_cohesive_CPE3_CPE3_ABAQUS_cohesive_

    总之,"Golabel_cohesive_CPE3_CPE3_ABAQUS_cohesive_"这一主题涉及到使用Abaqus的CPE3单元和内聚力模型来模拟接触问题。通过Python脚本Golabel_cohesive_CPE3.py,用户可以自定义并自动化这一过程,从而更精确地...

    ExcelMAX HDD CPE 半双工室外用户端.pdf

    通过以上知识点,我们可以了解到ExcelMAX HDD CPE设备是一款综合了无线通信技术、QoS服务、网络安全和管理的多功能室外用户端产品,能够为用户提供稳定、可靠的数据、语音和视频服务。同时,该设备遵循国际标准,...

    波讯网桥CPE初始配置文档(1).docx

    在IT网络部署中,网桥是一种重要...配置完成后,中心端和远端CPE将形成无线链路,提供可靠的无线网络连接。在整个配置过程中,确保遵循每一步的指示,并正确记录所有关键参数,以确保网络的稳定运行和日后的维护工作。

    华为5G CPE拆解报告.pdf

    在兼容性方面,华为5G CPE支持5G NSA/SA两种模式,符合3GPP R15标准,并覆盖多个5G和4G频段,实现全网通。4G传输速率理论值最高可达1.6Gbps/150Mbps,而5G的理论峰值速率则分别达到2.33Gbps和1.25Gbps。不过,实际...

    (ISC)² ® 持续专业教育(CPE)政策与指南 2014年(中文版)——官方cpe_guidelines文件翻译版——CPE获取方法

    本人根据ISC2官方的CPE英文要求文档,翻译的中文版。文档适合ISC2的各种认证。由于本人英文水平欠佳,可能有不正确的地方,可以参考官方指南来看。 概述 CPE的一般要求 所需的CPE学分数目 专注 多个证书 延期的CPE ...

    Software_Defined_CPE

    Software-Defined CPE Software-defined CPE is a new class of CPE device demanded by carriers for their SDN deployments due to its inherent support of: • Forwarding functions such as L2 switching, MPLS...

    MAX232CPE芯片资料

    ### MAX232CPE 芯片资料详解 #### 一、概述 MAX232CPE 是 MAX220–MAX249 家族中的一个成员,该家族涵盖了多种线路驱动器/接收器产品,适用于 EIA/TIA-232E 和 V.28/V.24 通信接口。特别地,这些器件被设计用于在 ...

    cpe升级流程

    CPE产品的升级流程通过OTA技术实现,不仅可以简化升级过程,还能有效降低用户的流量消耗。通过合理的规划和实施,CPE升级不仅能提高系统的稳定性和安全性,还能持续增加新的功能,为用户提供更好的体验。未来,随着...

    MIFI、CPE测试规范

    TD-LTE MiFi&CPE 终端测试规范 本文档主要介绍 TD-LTE MiFi&CPE 终端测试规范,旨在验证 TD-LTE MiFi&CPE 终端的性能和兼容性。测试规范涵盖了测试环境、测试网络配置、终端要求、测试其他约定等方面。 一、测试...

    CPE870 9341 室外AP 500mW.rar

    在无线网络技术领域,CPE(Customer Premises Equipment)通常指的是位于用户端的设备,如无线路由器、无线网桥或这种室外AP,它们是连接用户到ISP(Internet Service Provider)网络的关键组件。CPE870 9341设计...

Global site tag (gtag.js) - Google Analytics