APP下载

现代企业短信平台的设计及实现方式

2012-03-23黎奇迈

城市建设理论研究 2012年4期
关键词:实现方式

黎奇迈

摘要:本文通过分析企业短信服务业务的工作过程,对现代企业短信应用平台进行架构设计、数据库设计,研究系统实现中的关键技术,为企业开发短信应用提供借鉴。

关键词: 企业短信应用;网关设计;实现方式

中图分类号:TU232文献标识码:A文章编号:

Abstract: through analysis of enterprise short message service business work process, the modern enterprise SMS application platform of architecture design, database design, research the realization of the system is the key technology for the enterprise development SMS application with reference.

Keywords: enterprise SMS application; Gateway design; Realization way

一、引言

手机短信作为一种非常重要的沟通方式,正在被越来越多的企业重视。多年来,及时准确地采集前端销售数据、快速地将各种消息传递给目标人群一直是各类企业追求的目标。作为企业信息化的一部分,不少企业开始考虑建立企业的短信应用平台,为企业提供方便灵活的基于短信的双向交流渠道。目前已有的应用形式包括:通过短信平台来群发短信、查询手机接收的状态;针对企业员工的邮件、公文、日程安排等进行短信提醒;接收手机发来的各种信息,针对不同的信息进行相关的处理,如信息采编、事务批办、点播等操作。

二、企业短信服务业务的工作过程

用户发短信业务(即MO业务,如信息点播等),短信中心将短信内容以SMPP协议发给连接的短信网关,短信网关根据短信发送号码(即SP的服务代码)将短信内容以CM协议发给相应的SP,由SP进行处理。

图1.短信服务业务处理过程

用户收短信业务(即MT业务,如短信群发等):提供此项业务的SP将短信内容以CMPP協议发给连接的短信网关,由短信网关根据用户手机号段以SMPP协议发给用户所属的短信中心;短信中心将短信下发到用户手机终端上。

企业短信应用网关系统对外有两个短信接口:一个通过Internet连接到移动运营商短信网关;另一个连接GSM短信猫,和普通手机一样连接到移动运营商的GSM无线网络上。如此,用户手机可以发送短信到企业申请的短信接入号码或者GSM短信猫上的SIM卡的号码,也可以接收到移动运营商短信网关和GSM短信猫发送过来的短信。

企业短信应用网关系统的后台数据库可以是MySQL数据库,通过对数据库中的库表实现与企业其他信息系统的松耦合应用。企业其他信息系统,如OA系统和告警系统可以通过写入/读取该数据库中的库表实现短信收发,如RADIUS系统可以以该数据库中的库表作为有效用户表,结合短信应用提供VPN/WLAN接入的双因子认证动态密码。

三、企业短信应用系统架构设计

为了构建灵活、可扩展性强、可插入模块化的企业短信应用网关系统,系统架构采用队列处理方式,并由多个进程并行处理,具体如图2所示:

图2 系统架构设计图

企业短信网关的核心由收短信队列(inbox)、发短信队列(outbox)、任务短信队列(submit)、一个核心调度进程(schedule)和多个短信收发进程组成,其中三个短信队列分别由三个数据库表inbox、outbox和submit库表支持,采用插入数据/读取数据的方式实现。多个短信收发进程(gmccd、gsmmodemd)轮询收发各自负责的短信设备,将接收到的短信和来源形成数据库记录插入inbox表,轮询outbox表选择确定由其发送短信而尚未发送的短信记录并将其发送。如图有两个短信收发进程,一个是gmccd进程负责轮询收发来自移动运营商短信网关的短信,一个是gsmmodemd进程负责轮询收发来自GSM 短信猫上的短信。核心调度进程schedule一方面轮询inbox表中新进入尚未处理的短信记录,和员工控制进程employees确认发送者手机号码有效之后,分别调度不同的应用进程进行服务;另一方面轮询submit表中新进入尚未处理的短信记录,将用户名列表翻译为手机号码组,分析组中每个手机号码属于那个移动运营商并确定短信发送网关,将短信和发送网关号形成短信发送记录插入outbox表。

企业短信应用网关系统包括多个外挂模块,help模块提供帮助短信,vpn模块生成VPN接入密码并生成RADIUS帐户,wlan模块生成WLAN接入密码并生成RADIUS帐户,address模块提供短信查询通信录功能,另外还可以外挂短信问卷调查模块,等等。

pwd_reclaim模块是额外的进程,负责清理RADIUS后台数据库中超过一定时间失效了的动态密码。

四、数据库总体设计

通过系统进行需求分析,系统中主要包括四个实体:短信、员工、问卷和认证信息。短信实体主要包括短信生成时间、短信发送者手机号码、短信内容、短信处理情况等属性;员工实体主要包括员工ID、姓名、职务、部门、电邮、手机号码、办公电话、名字缩写等属性;问卷实体主要包括题号、题目、答题者手机号码、答题者答案等属性;认证信息实体主要包括帐号、密码、有效时限、认证种类等属性。短信实体和员工实体之间通过手机号码进行关联,员工实体和问卷实体也通过手机号码进行关联,员工实体和认证信息实体则通过员工ID进行关联(认证过程中采用员工的ID作为认证帐号)。

五、 短信发送接收实现方式

(1)移动运营商短信网关接入方式

移动运营商的短信网关接入一般是使用TCP/IP网络作为传送网络,一般企业用户采用公网接入方式。企业用户以SP的身份请求连接到移动运营商互联网短信网关ISMG,之后SP与ISMG之间按照SMPP协议进行数据传输。SP与ISMG之间的通讯如果直接通过SMPP协议通讯将十分烦琐,而且有许多工作是公共的。所以,移动运营商提供一些API函数供企业客户直接调用用,企业客户软件开发无需处理低层的TCP/IP通信、和短消息网关或SMSC的握手等工作。通过这些API函数,可以很方便和综合信息平台、短消息中心通讯、提供短讯消息服务。API函数主要包括系统登陆、系统注销、发送短消息、接收发送短消息应答、接收短消息五个基本函数。

(2) 短信猫收发短信

短信猫一般提供COM口接入到计算机系统,计算机系统可通过串口通信协议,采用AT指令集控制短信猫发短信和读取短信猫收到的短信。不同的手机或者GSM Modem的AT指令集并不完全相同,但是收发短信和短信编码部分是遵循GSM国际规范的。

目前市场上销售的短信猫,一般提供Windows二次开发包,开发者通过简单的封装即可在Windows系统上开发短信收发功能。如在Linux等平台进行开发,或者需要对短信收发进行更深层次的开发,可以借用gsmlib免费开发包。Gsmlib是一个基于LGPL协议的开源的GSM终端应用开发包,为通过GSM终端设备实现短信和语音服务提供了C++封装的开发库函数。Gsmlib提供发送英文短信的封装函数,对于开发中文短信应用,需要开发者开发短信编码功能。按照ESTI短信规范,短信编码有文本模式或者PDU(protocol description unit)模式两种,对于中文短信应用必须采用PDU SIXTEEN_BIT_ALPHABET模式,此时短信编码实际上为Unicode编码。以下为使用gsmlib发送短信的伪代码:

1)sentSMS->setDataCodingScheme(DCS_SIXTEEN_BIT_ALPHABET);// 设置sms的编码方式为16位的PDU格式

2)Address destAddr(“13822222222”);

3)sentSMS->setDestinationAddress(destAddr); //设置发送的目标手机号

4)pdu=GB2312_to_PDU(sms,DCS_SIXTEEN_BIT_ALPHABET); //将国标GB2312编码的汉字内容转为16位PDU编码

5)sentSMS->setUserData(pdu); //将PDU编码的短信内容填入短信PDU协议包

6)me->sendSMS(sentSMS); //发送短信

注:文章内所有公式及图表请用PDF形式查看。

猜你喜欢

实现方式
信息技术环境下博物馆儿童展览专区设置与实现
动产抵押权的实现方式浅析
大学教学管理中的“拾遗补缺”
企业价值观建设的基本原则、构建思路和实现方式
浅析高速公路收费服务建设与实现方式
浅析高速公路收费服务建设与实现方式
我国陪审制的困境及其改革
公民司法知情权要论
“以研促教”在土木工程材料课程教学中的应用
浅谈实现农村初中语文个性化作业设计的方式