完成java版cmpp短信网关开讲解发计划,坚持下去!

    线程\网络通信\大流(容)量数据处理\结构设计是开发中比较重要的核心技术,这块程序员能掌握最好;完整实现中移动的CMPP协议的ISMG网关和SP客户端会是一个代表性案例.便决定边讲解边编码边录成视频,一开工,发现困难重重....             
         贴出计划,月底完成,督促自己;希望和大家交流重要技术点的实现策略.
蓝杰java CMPP(SP/IMSG)端实现计划:
相关协议文档:cmpp/smpp:
1课完成:移动增值/3G业务分析说明
   分析行业知识,说明移动增值业务,理解何谓移动增值服务;
   业务类型说明:sms/mms/wap/OTA/IVR/M2M/移动互联网/支付;
2课完成:通信协议和关键技术分析.
   分析cmpp通信协议,ISMG网关服务器开发所必须的技术特点;
  1.多个连结通道配置:服务器或客户端灵活配置多个tcp/ip连结收发信息;
  2.网络连结自恢复机制(客户机);
  3.消息唯一性保证,重复丢弃机制;
  4.滑动窗口机制(流量控制);
  5.程序内部的缓存队列: 消息不能丢!集群缓存jGroups. 内存数据库TimesTen
  6.心跳信号机制
   7.超时重发和差错重传;Tcp  upd
  8.综合性能,安全机制;
 
3课完成:服务器端登陆验证实现:协议数据解析,MD5摘要验证;
     1.多网卡编程,一个主机多IP?
     2.字符串编码?(做MD5时,统一编码);
    3.尽量读取原子类型数据,从网络读大数据包时,readFully
    4.消息序列号的唯一性保证?
     5.API级的代码,底层方法的异常处理策略?
    6.定长字符串补0?网络字节顺序/主机字节顺序?

4课完成:通信协议解析和数据调试:
      1.数据块读写(java中ByteArrayInputStream/ByteArrayOutputStream应用)
         :可以异步解析/封包消息;
       2.最终数据写入网络或全部读入前调试:jPcap抓包分析/自己打印。
       3.飞信协议分析示例:抓包分析飞信通信协议。
5课. 网关服务器结构分析代码框架实现,自顶向下的分析方法。
6课. ISMG端框架代码实现;
---------------------------------------------------------
以上视频己完成:
http://d.namipan.com/d/08c3ce089754de986e556bd34928cc8f0d97e97d36e9ea07
http://d.namipan.com/d/502b1112c7a94b4a9598b6917a75b9ef2469d620a95f0000
http://d.namipan.com/d/3d3090bed2e3a3980e0cbfdd98221ae4fbc96cd88b840000
http://d.namipan.com/d/30a4370611b94bbd91070c3031c2deb61502e14a294ecc05
http://d.namipan.com/d/da94bb51aa95c111d8f2e1ff0bd3d83aed56aad9a1596f05
http://d.namipan.com/d/8cc21e45663a6c228bc59573c139bea588f953b2cac91500
http://d.namipan.com/d/20baf17968c73d67004c68713af61bf57c11a341ff152005
http://d.namipan.com/d/687c54ea98f1b0420e8b4dc4775db263dce9d3fbda287c09
http://d.namipan.com/d/e3881ebc5e6205425864f0d63f193c72fdfdce57bdf99107

7课. IMSG网关基本实现:

8课.网关端消息处理流程分析;

 以上视频代码己完成:

http://d.namipan.com/d/289c75f2446cba83415f340f75116bf5179c3f0c57b3f308
http://d.namipan.com/d/357c4924760feab6b8fd5ce1f30936ff2518be052ea30000
http://d.namipan.com/d/c2d80b8bc0996b6f7ff8af0f3595324d797daa166056f503

 

 

9课. 完成sp端和ISMG端互发消息和应答--封装API组件.rar   见符件第9;

以下还未完成...

 
10课.网关升级:简单界面实现,重发实现,做流量的压力测试;
11课:对外接口分析:数据库接口/webService/RMI
12课:性能分析:DB操作/流量统计;
13课:应用NIO模型?
14课:系统缺陷分析:内存监控,报警机制实现.

  以上链结可到纳米盘网下载视频,是exe格式的,哪位大侠如果有更好空间放最好.
  

  另,这个东东涉及到业务知识较多,附件中我上传了中移动wap2的协议规范,

 

CMPP模拟器主要是模拟使用中国移动CMPP协议(本1.x~3.x)的各种网关。此类型网关只使用一个收连接(短信接收和送在一个链接上进行)。 模拟器要求使用JDK1.4以上的Java运行环境,请确认相关环境已经安装妥当。如果还没有安装Java环境,请访问java.sun.com下载最新J2SE的SDK。 此模拟器已经使用了全新的核心设计,主要针对应用程序的稳定性、可靠性、效率以及配置、管理和监控方面做了很大的调整。基本界面风格和应用功能上没什么变化。 1.建立Socket连接与登陆 使用自己的CMPP客户端程序,与7890端口建立Socket连接。然后按照CMPP协议送登陆数据包。模拟器会按照协议处理相关连接和登陆过程。 2.短信息 正确建立连接和登陆以后,可以按照CMPP协议的Submit过程提交相关数据并得到应答。模拟器在接收到数据以后,会进行解析并按照协议要求进行应答和回复。相关的处理信息会记录在日志文件中。 3.接收短信息 正确建立连接和登陆以后,在同一连接上等待模拟器的Deliver数据包即可,并且要求客户端按照协议给予应答。模拟器会对相关过程记录在日志信息当中。 4.模拟MT以及状态报告过程 送submit时,请将registered_delivery设置为1即可。 模拟器收到相关数据包以后,会通过submit_response应答给出message_id;随后模拟出deliver数据包给出状态报告,其中registered_delivery为1。 5.模拟MO过程 送submit时,请将registered_delivery设置为0即可。 模拟器收到相关数据包以后,会通过deliver请求送模拟的MO。其中deliver的相关数据全部来自接收到的submit数据。包括来源号码、目标号码、业务代码以及信息内容。 6.模拟压力测试 如果需要进行模拟的完整压力测试过程,只需要以最大速度重复步骤5即可。 模拟器的监控 模拟器有一个基于Web监控后台,系统启动的时候同时启动。缺省端口建立在8081上。监控的URL地址、用户名和密码可以在配置文件中找到。 http://localhost:8081 forest_luo root
java cmpp2.0 3.0 无jar纯源码demo(含服务端测试工具)[20171205] 找了挺多资料,CMPP的资源很多,但可以参考可用的不多, 特此cmpp的DEMO程序,无jar插件,纯源码实现。 语言为:java 工具为:Intellij IDEA 2017 附带第三方CMPP服务器测试工具,便于调试。 注解详细如: private long Msg_Id=0x00;//信息标识,由SP接入的短信网关本身产生,本处填空。 private byte Pk_total=0x01;//相同Msg_Id的信息总条数,从1始 private byte Pk_number=0x01;//相同Msg_Id的信息序号,从1始 private byte Registered_Delivery=0x01;//是否要求返回状态确认报告:0:不需要 1:需要 private byte Msg_level=0x01;//信息级别 private String Service_Id="";//业务类型,是数字、字母和符号的组合。 private byte Fee_UserType=0x00;//计费用户类型字段 0:对目的终端MSISDN计费; 1:对源终端MSISDN计费;2:对SP计费 private String Fee_terminal_Id="";//被计费用户的号码 private byte TP_pId=0x00;//GSM协议类型 private byte TP_udhi=0x00;//GSM协议类型。详细是解释请参考 private byte Msg_Fmt=0x0f;//信息格式0:ASCII串 3:短信写卡操作 4:二进制信息 8:UCS2编码 (0f)15:含GB汉字 private String Msg_src="";//信息内容来源(SP_Id) private String FeeType="01";//资费类别 01:对“计费用户号码”免费 02:对“计费用户号码”按条计信息费 03:对“计费用户号码”按包月收取信息费 04:对“计费用户号码”的信息费封顶 05:对“计费用户号码”的收费是由SP实现 private String FeeCode="000000";//资费代码(以分为单位) private String ValId_Time="";//存活有效期 private String At_Time="";//定时送时间 private String Src_Id="";//源号码 SP的服务代码或前缀为服务代码的长号码, 网关将该号码完整的填到SMPP协议Submit_SM消息相应的source_addr字段,该号码最终在用户手机上显示为短消息的主叫号码 private byte DestUsr_tl=0x01;//接收信息的用户数量(小于100个用户) private String Dest_terminal_Id="";//接收短信的MSISDN号码 private byte Msg_Length;//信息长度(Msg_Fmt值为0时:<160个字节;其它<=140个字节) private byte[] Msg_Content;//信息内容 private String Reserve="";//保留
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值