短信开发技术总结--开发篇

转载 2006年06月05日 09:55:00

现在当SP向移动运营商申请接入后,移动运营商除了提供他们所采用的短信网关协议文档外,还会提供由短信网关厂家提供的,短信网关通信的开发包,也就是我们所说的API了。对于是否使用这些API就见仁见智了,因此对于单说实现短信网关协议从开发上有两种做法,一种就是完全基于别人提供的API来实现网关协议;另外一种就是自己根据网关协议文档,自行写代码实现。对于第一种方法,就是开发速度快,底层通信以及短信协议的实现都不用自己考虑,缺点就是经常会有一些小问题:比如,厂家提供的API有内存泄漏,又或者这些API提供的时候就缺少一些库文件,又或者在长时间运作后莫名其妙死掉等问题,而且处理这些问题自己都没有办法解决,只有等待厂家提供新版本的API。对于第二种方法就是优点就是自己对协议理解,实现都比较清楚,出了问题好找,对于要求性能高,稳定性好的SP建议采用该办法,而缺点就是开发的时间相对来说会比较长,而且在对于不同厂家提供的网关会有一些小的改动。比如中国移动的CMPP网关,对于由亚信提供的短信网关,则在协议实现的时候,MO和MT要分别建立连接,而对于华为提供的短信网关,则在同一个连接处理MO和MT。
  
  协议开发部分说完了,下面说说如何实现一个短信业务系统/平台。从简单的业务实现到复杂的运营商级的短信业务系统,实现上大致可以分为三类。
  
  第一类,简单业务型短信系统/平台,由于业务类型的简单或者单一,比如只是做群发,或者只提供某些简单的交互信息服务,实现的办法就是在实现短信协议的同时,把业务逻辑都编写到程序里面去。这样对于只是提供比较单一服务的SP就可以很方便实现自己的短信系统,当然啦,这样的系统对于扩展性来说是很不利的,所以极少采用这种方法进行开发;那么如果能够业务逻辑和短信协议的实现分开就可以更好地实现短信系统了,对于第二类短信系统就是基本解决了这样的问题。
  
  第二类,业务开发型的短信系统/平台,能够把业务逻辑和短信协议部分分开实现,采用一个短信服务号码,根据用户发送不同的短信代码来实现不同的业务,这样的系统是现有大部分SP都在使用的。其实现的办法是,对于短信的上行和下行有专门的协议实现程序,而收到以及要发送的信息通过数据库来做接口。对于业务逻辑的实现,就是通过专门编写业务实现模块的程序,或者直接利用数据库的存储过程来实现,业务模块通过查询数据库得到用户发送上来的MO信息,对该信息进行处理后,产生新的MT信息,并且写回数据库中,而短信协议模块则读取MT信息,把信息发送给用户。
  
  第三类,运营商级的短信综合业务二次开发平台,对于这一类的短信平台,它把短信协议的实现,数据库的访问,以及各种字符,数字,逻辑等运算都封装起来,用户在设计和实现新的业务流程的时候,只需要把要实现的流程图画好,就可以利用平台提供的二次开发环境,不需要复杂的编程就可以实现新业务,有些二次开发环境还是图形界面非常简单方便,开发者完全可以不需要任何写代码的基础。这一类的平台,还可以同时加载上千个流程,并且可以实时加载和卸载流程而不影响其他流程正常的服务。实现的方法是,整个系统分成三个部分,第一部分是短信协议实现部分,这部分和以上两类没有太大区别只是和业务模块是通过网络通信的方式实现;第二部分是业务逻辑解析模块,所有编写好的业务逻辑都在这个模块上加载,运行。这个模块实现的就是封装各种各样的资源操作,并根据业务逻辑来执行。这里一般对于业务逻辑的实现都是通过状态机的状态跳转方式实现;第三部分就是业务开发模块,也就是我们平常所说的短信流程,把业务逻辑解析的各种资源动作通过一个开发窗口提供给用户使用,并且进行编译,校验用户编写的流程是否正确。
  
  以上三类系统/平台的开发,对于第一类就不多说了,我们比较一下第二类和第三类的区别。第三类比第二类的好处在于,业务流程开发方便快捷,不需要专业的开发工程师就可以实现;在实现时候对于Session的控制简单;业务管理方便。而缺点则是前期的投入比较大,对于平台开发搭建的难度比较高。
  
  以上是我自己在短信技术开发思路上的一些总结,或者大家可能有其他不同的实现思路以及方法,欢迎大家一起探讨,谢谢!

相关文章推荐

Android项目开发技术总结

一 对话框(Dialog)  对话框通常有消息提示框、确定取消框、没有安全的提示语  1 消息框(确定或返回):  new Builder(MainActivity.this).setTitle("白...

Android 日常开发技术经验总结

1. 全部 Activity 可继承自 BaseActivity,便于统一风格与处理公共事件,构建对话框统一构建器的建立,万一需要整体变动,一处修改到处有效。 2. 数据库表段字段常量和 SQL...

webkit webApp 开发技术要点总结

如果你是一名前端er,又想在移动设备上开发出自己的应用,那怎么实现呢?幸好,webkit内核的浏览器能帮助我们完成这一切。接触 webkit webApp的开发已经有一段时间了,现把一些技巧分享给大家...

安卓开发技术总结一

【评论送书】每周荐书:Swift、Java、React      【直播】Python 自动化运维实战      CSDN日报20170517 ——《怎样和虐死人的老项目谈恋爱》 ...

webkit webApp 开发技术要点总结

webkit webApp 开发技术要点总结 如果你是一名前端er,又想在移动设备上开发出自己的应用,那怎么实现呢?幸好,webkit内核的浏览器能帮助我们完成这一切。接触 webkit...

TEC1701.WebADI开发技术总结 - 第三章 Step3 - 配置Web ADI(3/6)

第三章  Step3 – 配置Web ADI 本章描述通过桌面集成管理器菜单配置Web ADI,环境为12.2.4。配置到第三节后,Web ADI的基本功能就已经实现,可以使用了,之后的小节为进阶...

DotNet平台主要开发技术总结与经验

自微软2000年发布.Net战略以来有10年多,世界上有数百万的程序员在.Net Framework上构建了自己的应用产品。从2002年发布.Net1.0开始,先后发布了.Net1.0、1.1、2.0...

TEC1701.WebADI开发技术总结 - 第五章 通过API自动创建Web ADI(5/6)

第五章  通过API自动创建Web ADI 在创建一些不是很复杂的WebADI时,使用标准的API来创建会非常方便。通过API生成的WebADI在界面上是无法修改的。 客制化的Integrat...

Android项目开发技术总结

一 对话框(Dialog) 对话框通常有消息提示框、确定取消框、没有安全的提示语 1 消息框(确定或返回): new Builder(MainActivity.this).setTitle("白...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)