ACS CWMP协议基于异步开源框架vertx的实现
A blazing fast TR-069 auto configuration server (ACS) built with Vertx,Redis, and MongoDB
ACS CWMP
A blazing fast TR-069 auto configuration server (ACS) built with Vertx, Redis, and MongoDB. I’ve added the source code in github and welcome comments.
Infrastructure and message flow for nbi request
- meteor stack send nbi request to acs nbi server by standard restful api and nbi server forward it to one cpe server by vertx eventbus api(eventbus send will choose one cpe server with round-robin algrithom)
- cpe server will send connection request to the target cpe
- cpe server will also store the nbi request into redis server
- the cpe will send inform to the cpe server load balance to start the cwmp session
- the cpe server load balance will send the inform to one cpe server by eventbus send api
5.1 the cpe server here may not be the cpe server in step 2
5.2 the cpe server will store it’s identifier and the cpe’s identifier into http cookie so that next time load balance will sticky forward cwmp message from cpe to the same cpe server and cpe server will find cwmp session with that cpe - the cpe server will retrieve the nbi request from redis and translate it into cwmp request(s)
- cpe server will send cwmp request to load balance
- load balance send cwmp request to cpe
- cpe send cwmp response back to load balance
- load balance send cwmp response to cpe server
- cpe server translate cwmp response to nbi response and send it back to nbi server
Tech Stacks
vertx 事件驱动异步开源框架(nodejs on jvm)
mongodb 开源文档数据库
redis 缓存数据结构服务器(small and fast)
meteor 全栈javascript开发框架(最快方式构建javascript app,including web,mobile,desktop)
Front end
This is the Front end based on meteor of tinyacs and will communicate with Acs-Nbi Server