企业短信应用平台的设计郎奎平2006/05/19手机短信作为一种非常重要的沟通方式,正在被越来越多的企业重视。本文介绍的企业短信应用平台简单易行,可以为企业提供方便灵活的、基于短信的双向交流渠道。多年来,及时准确地采集前端销售数据、快速地将各种消息传递给目标人群一直是各类企业追求的目标。尽管PC加互联网是很好的手段,但由于体积大,无论是放在柜台上还是用户携带都不便,而如果每人配备一台笔记本电脑或PDA的投入又比较大。另一方面,根据信息产业部的统计数据,2005年我国移动电话用户已超过3.9亿户,全年手机短信发送量3046亿条,比2004年短信增长了40%,比2000年增长了303%。手机普及率的提高,再加上短信的价格低廉,使得短信逐步深入到我们的生活之中。作为企业信息化的一部分,不少企业开始考虑建立企业的短信应用平台,为企业提供方便灵活的基于短信的双向交流渠道。目前已有的应用形式包括:通过短信平台来群发短信、查询手机接收的状态;针对企业员工的邮件、公文、日程安排等进行短信提醒;接收手机发来的各种信息,针对不同的信息进行相关的处理,如信息采编、事务批办、点播等操作。短信平台的工作过程移动运营商为保证接入的一致性及安全性,要求各服务商通过短信网关接入短信中心,短信系统由以下部分组成:1.短信信息服务参与实体服务提供商(ServiceProvider,SP):短信信息服务的信息提供者。短信网关(InternetShortMessageGateway,ISMG):提供SP与短信中心之间数据交换的通道,采用CMPP(ChinaMobilePeertoPeer)协议与SP进行连接,采用SMPP3.3协议与短信中心连接。短信中心(ShortMessageServiceCenter,SMSC):利用信令网将短消息发送给手机用户。2.短信服务业务的工作过程用户发短信业务(即MO业务,如信息点播等):短信中心将短信内容以SMPP协议发给连接的短信网关,短信网关根据短信发送号码(即SP的服务代码)将短信内容以CMPP协议发给相应的SP,由SP进行处理。用户收短信业务(即MT业务,如短信群发等):提供此项业务的SP将短信内容以CMPP协议发给连接的短信网关,由短信网关根据用户手机号段以SMPP协议发给用户所属的短信中心;短信中心将短信下发到用户手机终端上。系统设计与实现企业短信应用平台的建设首先要考虑以下问题:容错性:具有良好的容错判断,日志记录详细。可扩展性:平台针对发送或接收都具有很强的扩展性。在发送功能方面,只需将短信内容添加到短信平台,由发送服务统一发送;在接收功能方面,只需开发人员开发对新增功能的处理即可,在接收上增加新功能时配置不需修改短信收发程序。可靠性:通过查看发送成功状态确认手机接收是否成功。可配置性:无论对短信中心的连接参数,还是重发次数、时间间隔,接收的功能均可以通过配置进行修改和扩充。支持长短信和WAPPush类型的发送。短信个性化定制:用户自定义过滤短信功能,用户可以通过短信个性化界面自定义对短信的发送人、短信邮件地址域名以及短信接收时间的过滤,符合过滤条件的短信将不发送给用户。下面介绍短信应用平台的具体设计与实现。系统准备及参数设置为实现与短信网关的互连,企业首先需要向移动运营商申请接入短信网关的接入号、用户名、密码、企业代码,获得MO、MT端口号。在上述前提具备后,企业就可以以SP的身份接入短消息网关。具体涉及以下内容:网络连接:申请专线或其他方式连接到移动运营商的短信网关。系统参数:参数设置包括短信网关IP地址、用户名、密码、服务号码、MT端口、MO端口等信息;要求状态报告的短信应用类型集合;WAPPush的类型集合;发送失败的重发次数、时间间隔;告警接收地址等信息。运行环境:可以基于Windows实现,如Windows2000AdvanceServer与MicrosoftSQLServer2000的组合。数据库设计对于数据库平台没有过多要求,如果企业已经有数据库平台,可以继续沿用。本方案中采用MSSQL2000,短信应用平台包括4个数据库表,分别存放准备发送的消息、接收到的消息、参数配置和接收配置信息。接收配置表用来记录各种业务代码对应的处理程序。网关服务程序设计及实现短信网关服务包括接收和发送程序,以服务的形式运行,通过CMPP协议与运营商的短消息网关(ISMG)进行通信(参见图2)。有两个主进程:一个是以发送者身份连接到运营商的短信网关而建立的发送者线程,一个是以接收者身份连接到运营商短信网关的接收者线程。发送程序主要功能是连接运营商短信网关、监控发送表,把原始短消息经过解析、过滤形成可以发送的短消息,并发送到指定的手机用户,完成信息的传送功能;而接收者进程连接运营商短信网关,接收并分析短信中心发来的各种消息,确认手机接收状态,实现点播、审批、信息汇总等功能。(1)短信发送程序这里特别需要注意以下三点:对原始短消息过滤是根据个人对短信的过滤设置进行过滤的。发送长短信时,必须严格按照协议格式要求,如:长短信必须以UCS2编码格式提交,并将消息体内容以Unicode格式编码,然后对每个Unicode字符高低字节互换。在头结构中有两个标识位,一个用来声明总条数,一个用来声明是第几条。WAPPush类型的短消息有两部分内容:消息提示及URL。编码格式是UTF-8(字节数可变的编码)格式,要严格按照格式要求发送。(2)接收线程流程短信接收线程的工作包括:记录ISMG的接收确认回执ID;记录ISMG返回的手机终端已接收成功的回执信息码,即状态报告;对用户发送来的短信内容进行分析、处理。第1项工作用来确认短信网关(ISMG)接收成功。第2项工作情况用来确认手机已经接收到短消息。第3项工作情况需要针对不同的信息进行不同的处理,即根据内容的业务代码(这里定义短信内容中特殊分隔符内的信息为业务代码,也可以使用长代码功能来定义业务代码)与接收配置表匹配,调用对应的处理程序,并将除业务代码外的所有短信内容传递给处理程序,由各模块的程序自行分析、处理,从而保证不修改接收线程,都可以灵活增加接收类型。用户发来的消息长度不超过70个汉字长度时,可以正常按消息格式解析;当用户发来的消息长度大于70个汉字长度时,短消息中心会分段将消息内容下发,其中消息文本前6个字节是长短信的头结构。需要通过接收线程将信息解析完整。短信安全短信数据的安全性让很多企业担忧。由于短信传送的路径原因担心短信是否会在中途丢失,以及区分所发短信正确与否都是观望中的企业考虑之一。对于丢失的担心完全可以利用程序来解决。对于发送的短信,可以加上要求短信中心返回手机接收的确认回执,短信中心发送到手机上之后,在接收到手机接收成功的回执后,将回执返给企业的短信应用平台。如果短信应用平台在一定时间之内没有接到确认,那么可以重发。对于手机发给短信应用平台的信息也同样,如公文处理,短信应用平台在接收到用户发来的信息后,不论处理成功与否,都将处理结果发给用户。应用举例企业短信应用平台实现了短信的集中收发,可以在此之上扩展更多的应用,如:号码查询、短信群发、公文短信审批等。号码查询号码查询功能实现查询企业员工的联系电话。这里定义查询业务代码为dh,开发查询程序dhcx,将业务代码与程序的对应关系添加到接收配置表中。当用户查询张三的电话时,在短信内容中输入“张三”,收件人中输入“企业的接入号”,发送到企业短信平台。短信服务调用dhcx程序进行查询,dhcx程序将查询结果返到企业短信平台,短信服务将结果发给用户,从而实现了号码查询功能。短信群发短信群发功能实现企业的短信通知,可以作为会议通知、商业宣传等应用。短信通知模块只需将用户通知内容传递到企业短信平台,由短信服务统一进行发送。总体而言,短信作为一种低成本的承载方式,完全可以为企业所用。上述短信平台也只是一个基本的应用框架,我们完全可以在这个短信应用平台之上进行扩展,实现更多的功能,以满足企事业单位的不同业务要求。计算机世界网薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿羁膂莈蚅袇膁蒀蒈螃膀膀蚃虿腿节蒆羈芈莄蚁袄芈蒆蒄螀芇膆蚀蚆袃莈蒃蚂袂蒁螈羀袁膀薁袆袁芃螆螂袀莅蕿蚈衿蒇莂羇羈膇薇袃羇艿莀蝿羆蒂薆螅羅膁蒈蚁羅芄蚄罿羄莆蒇袅羃蒈蚂螁羂膈蒅蚇肁芀蚁薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿羁膂莈蚅袇膁蒀蒈螃膀膀蚃虿腿节蒆羈芈莄蚁袄芈蒆蒄螀芇膆蚀蚆袃莈蒃蚂袂蒁螈羀袁膀薁袆袁芃螆螂袀莅蕿蚈衿蒇莂羇羈膇薇袃羇艿莀蝿羆蒂薆螅羅膁蒈蚁羅芄蚄罿羄莆蒇袅羃蒈蚂螁羂膈蒅蚇肁芀蚁薃肀莂蒃袂肀肂虿袈聿芄薂螄肈莇螇蚀肇葿薀罿肆腿莃袅肅芁薈螁膄莃莁蚇膄肃薇薃膃芅荿螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇蚇袇肃莀薃羆膅薆葿羆芈荿螇羅羇膁螃羄膀莇虿羃节芀薅羂羂蒅蒁羁肄芈螀羀膆蒃蚆肀芈芆薂聿羈蒂蒈肈肀芅袆肇芃薀螂肆莅莃蚈肅肅薈薄蚂膇莁蒀蚁艿薇蝿螀罿荿蚅蝿肁薅薁螈膄莈薇螈莆膀袆螇肆蒆螁螆膈艿蚇螅芀蒄薃螄羀芇葿袃肂蒃螈袂膄芅蚄袂芇蒁蚀袁肆芄薆袀腿蕿蒂衿芁莂螁袈羁薇