在上一篇协议篇里面,相信大家都对现有的移动运营商提供的短信网关协议有一定的了解。OK,那么我继续总结下去,开始和大家探讨一下如何基于这些网关协议开发短信系统,我在这里只是总结开发的思路,并不提供代码,因为具体到代码的实现就是各自的开发功力问题,不在技术总结的范围。不过,欢迎大家到SP论坛或者天堂鸟论坛来一起交流代码的实现。
现在当SP向移动运营商申请接入后,移动运营商除了提供他们所采用的短信网关协议文档外,还会提供由短信网关厂家提供的,短信网关通信的开发包,也就是我们所说的API了。对于是否使用这些API就见仁见智了,因此对于单说实现短信网关协议从开发上有两种做法,一种就是完全基于别人提供的API来实现网关协议;另外一种就是自己根据网关协议文档,自行写代码实现。对于第一种方法,就是开发速度快,底层通信以及短信协议的实现都不用自己考虑,缺点就是经常会有一些小问题:比如,厂家提供的API有内存泄漏,又或者这些API提供的时候就缺少一些库文件,又或者在长时间运作后莫名其妙死掉等问题,而且处理这些问题自己都没有办法解决,只有等待厂家提供新版本的API。对于第二种方法就是优点就是自己对协议理解,实现都比较清楚,出了问题好找,对于要求性能高,稳定性好的SP建议采用该办法,而缺点就是开发的时间相对来说会比较长,而且在对于不同厂家提供的网关会有一些小的改动。比如中国移动的CMPP网关,对于由亚信提供的短信网关,则在协议实现的时候,MO和MT要分别建立连接,而对于华为提供的短信网关,则在同一个连接处理MO和MT。
协议开发部分说完了,下面说说如何实现一个短信业务系统/平台。从简单的业务实现到复杂的运营商级的短信业务系统,实现上大致可以分为三类。
第一类,简单业务型短信系统/平台,由于业务类型的简单或者单一,比如只是做群发,或者只提供某些简单的交互信息服务,实现的办法就是在实现短信协议的同时,把业务逻辑都编写到程序里面去。这样对于只是提供比较单一服务的SP就可以很方便实现自己的短信系统,当然啦,这样的系统对于扩展性来说是很不利的,所以极少采用这种方法进行开发;那么如果能够业务逻辑和短信协议的实现分开就可以更好地实现短信系统了,对于第二类短信系统就是基本解决了这样的问题。
第二类,业务开发型的短信系统/平台,能够把业务逻辑和短信协议部分分开实现,采用一个短信服务号码,根据用户发送不同的短信代码来实现不同的业务,这样的系统是现有大部分SP都在使用的。其实现的办法是,对于短信的上行和下行有专门的协议实现程序,而收到以及要发送的信息通过数据库来做接口。对于业务逻辑的实现,就是通过专门编写业务实现模块的程序,或者直接利用数据库的存储过程来实现,业务模块通过查询数据库得到用户发送上来的MO信息,对该信息进行处理后,产生新的MT信息,并且写回数据库中,而短信协议模块则读取MT信息,把信息发送给用户。
第三类,运营商级的短信综合业务二次开发平台,对于这一类的短信平台,它把短信协议的实现,数据库的访问,以及各种字符,数字,逻辑等运算都封装起来,用户在设计和实现新的业务流程的时候,只需要把要实现的流程图画好,就可以利用平台提供的二次开发环境,不需要复杂的编程就可以实现新业务,有些二次开发环境还是图形界面非常简单方便,开发者完全可以不需要任何写代码的基础。这一类的平台,还可以同时加载上千个流程,并且可以实时加载和卸载流程而不影响其他流程正常的服务。实现的方法是,整个系统分成三个部分,第一部分是短信协议实现部分,这部分和以上两类没有太大区别只是和业务模块是通过网络通信的方式实现;第二部分是业务逻辑解析模块,所有编写好的业务逻辑都在这个模块上加载,运行。这个模块实现的就是封装各种各样的资源操作,并根据业务逻辑来执行。这里一般对于业务逻辑的实现都是通过状态机的状态跳转方式实现;第三部分就是业务开发模块,也就是我们平常所说的短信流程,把业务逻辑解析的各种资源动作通过一个开发窗口提供给用户使用,并且进行编译,校验用户编写的流程是否正确。
以上三类系统/平台的开发,对于第一类就不多说了,我们比较一下第二类和第三类的区别。第三类比第二类的好处在于,业务流程开发方便快捷,不需要专业的开发工程师就可以实现;在实现时候对于Session的控制简单;业务管理方便。而缺点则是前期的投入比较大,对于平台开发搭建的难度比较高。
以上是我自己在短信技术开发思路上的一些总结,或者大家可能有其他不同的实现思路以及方法,欢迎大家一起探讨,谢谢!
分享到:
相关推荐
在这个"短信SMS开发包 实现短信猫开发"中,我们将探讨如何利用Delphi编程语言,结合特定的短信猫开发工具,实现短信功能的集成。 首先,我们要了解短信猫的基本工作原理。短信猫通常采用GSM或3G/4G网络,模拟手机...
手机短信息SMS开发—编码、解码 手机短信息(SMS)开发中,编码和解码是两个重要的概念。编码是将ASCII码转换为GSM字符集,以便在手机上正确显示短信息,而解码则是将GSM字符集转换回ASCII码,以便在计算机上正确...
在开发过程中,通常会通过API接口与该平台对接,实现自动化发送短信的服务。 首先,我们要理解SMS短信平台的工作原理。这种平台通常具有以下核心组成部分: 1. **用户管理**:允许注册并管理不同的用户账号,每个...
【标题】"SMS短信客户端源码"涉及到的关键技术与知识点主要集中在MFC、SMS协议、Socket编程以及VC++上。以下是对这些领域的详细介绍: 1. MFC(Microsoft Foundation Classes): MFC是微软提供的一套C++类库,...
标题中的"Gsm手机发短信 SMS 开发库C++源代码.zip"表明这是一个关于GSM(全球系统移动通信)手机发送短信功能的C++开发库。这个库可能包含了用于编写应用程序,使得用户能够通过C++代码控制GSM手机发送和接收短信的...
标题中的“sms.rar_asp sms_sms_sms短信网站_wap_短信”表明这是一个基于ASP编程语言开发的短信管理系统,主要用于创建和管理短信服务的网站。这个系统可能包含了短信的添加、复制以及分类等功能,并且适用于WAP...
标题中的“SMS代码.rar_AT 短信_sms_sms_VC_短信_短信源代码”表明这是一个关于SMS(Short Message Service,短信)的编程项目,使用了AT命令与VC++(Visual C++)进行开发,其中包含了短信发送的源代码。...
在IT行业中,手机短信开发是一项重要的技术领域,特别是在企业级通信和移动应用中。Delphi是一种流行的编程语言,常用于创建高效、桌面级的应用程序。本压缩包"**sms.rar**"显然包含了与使用Delphi进行短信开发相关...
本篇将详细探讨Android短信开发的相关知识点,包括发送短信、接收短信、处理短信验证码以及相关的权限管理。 1. **发送短信**: - **使用SmsManager类**:在Android中,`SmsManager`是官方提供的用于发送短信的类...
总的来说,这个C#短信猫开发实例涵盖了硬件通信、网络协议、编程技术、软件设计等多个方面的知识点,对于提升开发者在物联网和嵌入式领域的技能非常有帮助。通过深入理解和实践,你可以创建出稳定可靠的短信发送和...
【标题解析】 "短信猫客户端完整Demo基于sms.dll" 这个标题表明这...在实际开发中,开发者可以通过这个Demo学习如何配置串口参数、调用sms.dll的接口以及如何处理短信数据,从而在自己的项目中集成短信发送和接收功能。
在本文中,我们将深入探讨SMS开发的相关知识点,包括短信协议、AT命令集、PDU格式以及实际应用。 【短信协议】 短信协议是实现手机与网络间短消息传递的标准。它基于GSM (Global System for Mobile Communications...
在IT行业中,短信程序开发是一项重要的技术工作,尤其在移动通信和互联网服务中扮演着关键角色。"SMS短信程序开发资料大全1-12个文件Rs00000041866"这个资源可能包含了一系列关于如何设计、实现和优化短信应用的文档...
标题中的“SMS短信猫收发短信dll”是指一个专门用于通过短信猫设备进行短信收发的动态链接库(DLL)文件。短信猫是一种硬件设备,它通过USB或串口连接到计算机,使得计算机可以通过GSM网络发送和接收短信。这个DLL...
综上所述,短信快车SMS是一款全面的企业级短信服务解决方案,它集成了各种企业所需的短信功能,并提供了强大的二次开发能力,满足企业在不同业务场景下的需求,助力企业实现高效、安全的信息传递。
总的来说,EasySMS 是一个非常实用的 PHP 短信发送工具,它通过抽象各种服务商的接口,降低了开发者的使用门槛,提高了开发效率。如果你的项目涉及到短信发送功能,那么 EasySMS 绝对值得你考虑和采用。
综上所述,这个压缩包提供的资源涵盖了移动通信中的短信服务开发,包括协议交互、接口编程、数据库操作等多个技术领域,对于想要学习或从事短信服务集成的开发者来说具有较高的参考价值。通过深入理解和使用这些资源...
标题中的“SMS.zip_sms_收短信”表明这是一个与短信服务相关的项目,可能是一个软件或程序,用于发送和接收短信。这个程序是用VB(Visual Basic)语言编写的,这是一种广泛应用于开发桌面应用的编程语言,尤其适合...
EasySMS短信控件Ver 3.0是一款专为开发者设计的短信发送工具,适用于Windows平台上的应用程序开发。这款控件提供了简单易用的接口,帮助程序员快速集成短信发送功能,从而实现各种业务需求,如验证码发送、通知提醒...