短信息应用于内部管理,业务系统和客户服务系统: A公司在全国已有100多个业务划分区域,日常工作中有大量诸如新商品信息、价格调整等业务资讯需要及时提供给所有区域经理,在应用短信息之前,主要通过电话或Email来完成这些事情,需要投入大量的人力来完成这些工作,并且还经常由于各种因素的影响而出现延误的现象,现在用短信息则可以快捷和轻松地完成这部分工作。另外A公司在全国还有近50000个会员客户,以前要向他们以邮件的形式邮寄商品信息、活动信息、节日问候等小宣传单,成本很高,工作量非常大,而且速度又慢,用了短信息以后,现在的邮件都尽可能地用短信息来代替了。在其他方面,像业务员的月度计划任务、完成情况以及业务提成等用短信息来提醒。 短信息服务作为移动互连技术的一种,因其不占用语音通信的信道与费用低廉等优点,目前已在许多领域得到广泛应用。
当今社会,人们对知识的需求不断增加,人们常常需要从海量的书籍中来查找自己需要的信息。利用短消息人们可以随时随地用手机发短消息查询书籍,既方便又快捷,同时,也可为各大书店及图书馆节省人力物力。
1 短信息服务
SMS 是一种存储和转发服务。也就是说,短消息并不是直接从发送人发送到接收人,而始终通过 SMS 中心进行转发。如果接收人处于未连接状态(可能电话已关闭),则消息将在接收人再次连接时发送。
SMS属于GSM(Global System for Mobile Communications)阶段的标准。但目前SMS已经被集成到了很多网络标准中,GSM、CDMA、TDMA、PHS、PDC等移动网络都支持SMS,这使得SMS成为一项非常普及的移动数据业务。SMS与话音传输及传真一样,都是GSM数字蜂窝移动通信网络提供的主要电信业务。它通过无线控制信道进行传输,经短信息业务中心完成存储和前转功能。SMS是非对称业务,它使用SS7信令信道传输数据分组,即使在业务信道处于高峰期的情况下,也照样可以使用短信息顺利通信。
SMS具有收费低廉、随时随地、能够承载多种数据、可以实现推和拉二种不同的工作模式及传输安全等优点,目前已在资讯服务、移动商务、商务助理等领域被广泛应用。
2 系统设计
短信自动查书系统的目标就是通过手机短信息服务,实现用户的无线信息查询,快速方便地使图书查询业务通过手机方式完成。
2.1 系统结构
由于采用CMPP接口,移动和联通不能互发,必须将移动和联通各开通一个号码,这给管理者和读者都带来不便。考虑到书籍查询中的业务量的实际情况,采用内嵌SIM卡的通信器作为与SMSC(短消息业务中心)的通信工具。通信器通过USB口与计算机相联,启动计算机后通信器就处于加电状态,可进行短信收发,通信器内多可保存10条短信。系统的网络结构如图1所示。
客户通过移动电话发送短信到通信器内所嵌入的SIM卡的号码要求查书。该短信首先通过GSM网上送到短消息业务中心,然后短消息业务中心把短消息内容下传到通信器。短消息处理主机监听到有短消息到来时,立即读取通信器,然后分析读取的内容,分解出不同字段的内容,存入短消息数据库中的接收数据表中。系统根据客户所要查询的内容,启动查询线程查询图书馆内图书数据库,把查询的结果写入短消息数据库的发送数据表中。短消息处理主机把发送的内容转换成通信可识别的格式,然后写入通信器,以短消息的型式返回到客户的手机。
2.2 系统功能模块
在系统需求及功能的分析上,把系统划分为如图2所示的子系统和功能模块。
2.2.1 通信接口子系统
该子系统中硬件的控制较为复杂,微小的变动都有可能导致系统不能正常运行。由于对硬件的访问需求比较固定,所以采用动态链接库技术(DLL)来实现对硬件的控制。动态链接库英文为DLL,是Dynamic Link Library 的缩写形式,DLL 是一个包含可由多个程序同时使用的代码和数据的库,DLL不是可执行文件。动态链接提供了一种方法,使进程可以调用不属于其可执行代码的函数。函数的可执行代码位于一个 DLL 中,该 DLL 包含一个或多个已被编译、链接并与使用它们的进程分开存储的函数。DLL 还有助于共享数据和资源。多个应用程序可同时访问内存中单个DLL 副本的内容。DLL是一个包含可由多个程序同时使用的代码和数据的库。完成的功能主要包括实现硬件上的短消息的自动接收和发送、信号量的获取、通信器工作状态读取等。
2.2.2 业务中心子系统
该子系统主要完成整个系统的管理及各种数据的处理。主要实现以下基本功能:
(1)系统管理。完成操作员的管理,包括操作员的增加、注销、权限的设置、密码的设置及修改;系统参数的设置,包括设置短消息中心号码以及图书数据库的用户名、密码以及短消息的格式。
(2)收信处理。系统启动后创建短消息接收线程,线程不断查询通信器。如果有短信接收,通信器立即读取内容,然后分析读取的内容,分解出短消息的内容和手机号码,存入收信数据表中。接收短消息参数字符串的格式为:手机号|短消息格式|接收日期|接收时间。
(3)发送处理。系统定时查询发送表,如果发送表有内容,就创建短消息发送线程,再把发送表中的数据合成通信器可识别的格式发送出去,然后删除发送表中已发送出去的内容。
(4)信息统计。以短消息数据库里的内容为基础,对短消息查询的类别、内容、读者类别、返回结果等的查询、汇总统计、分析,以图表的形式显示出来,并可生成用户指定格式的报表。
2.2.3 数据库接口子系统
实现通过局域网来访问图书信息数据库。首先根据短消息数据库收信表中的内容分析要查询的内容和查询条件,然后生成SQL查询语句的形式,对图书数据库进行查询,把查询结果放到发件箱。
3 系统实现中的关键技术
短消息查书系统采用VC作为开发工具,短消息数据库采用SQL Server2000,整个系统在Windows 2000 Server操作系统下运行。
3.1 动态链接库技术
动态链接库是用作共享函数库的可执行文件。一般情况下,DLL是一个库中所有函数的集合,并通过包含在可执行文件中的信息进行检索来使用。在收发短信息时需与通信器交互,这里是通过动态链接库实现的。DLL中的函数有导出函数和内部函数二种,导出函数可以被外部程序调用,内部函数只能在动态链接库内部使用。
对通信器控制的动态链接库提供的导出函数包括短消息的发送、接收等。
3.2 多线程技术
Windows是一个多任务操作系统。在Win32中,每一个进程可以同时执行多个线程,这意味着一个程序可以同时完成多个任务。图书查询系统需要对大型的数据库进行访问,系统既要进行耗时的工作,又要保证用户输入响应的及时性,尤其当检索的数据量很大、数据处理任务很重时,如果不采用多线程,检索时的漫长的等待是难以忍受的。在采用多线程时,关键的问题是要采取措施来保持线程间的同步。
短消息查书系统主要包括消息发送线程、短消息接收线程、图书数据库查询线程。在对收信箱和发信箱操作时,使用的是临界区(CCriticalSection)同步对象,对图书数据库的查询采用信号量同步机制,信号量初始化时资源计数设置为3,这样多三个查书线程可同时运行,避免因查询数据库的线程太多而造成拥塞。
3.3 数据库
数据库是系统的和基础,短消息数据库结构设计的合理性及优劣性将直接影响整个系统的性能。对图书数据库的访问方式也同样影响访问数据库的执行效率。在对短消息数据库的设计中遵循数据独立性原则,按规范化设计数据库,可减少数据间的依赖和数据冗余。
在对图书数据库访问时采用ADO访问数据库技术。ADO是基于COM接口的技术,使用这种技术可以直接对数据库的驱动程序进行访问,从而大大提高访问的速度。
ADO的主体接口对象有三个:ConnectionPtr、CommandPtr和RecordsetPtr。ConnectionPtr返回一个记录集或空指针,通常用来创建一个数据连接;CommandPtr接口返回一个记录集,它提供一种简单的方法来执行返回记录集的存储过程和SQL语句;RecordsetPtr记录集对象,它能够提供更多的控制功能。
其程序实现为:
∷CoInitialize(NULL);
m_connection.CreateInstance(__uuidof(Connection));
m_recordSet.CreateInstance(__uuidof(Recordset));
pConn.CreateInstance(__uuidof(Connection));
pConn->Open(″Provider=SQLOLEDB;SERVER=server;
DATABASE=dbname;UID=user;pwd=password″,″″,″″,-1);
pRs.Open(″select*from cmk where name=msg″,
pConn,adOpenDynamic,adLockOptimistic,
adCmdUnknown);
……
∷CoUninitialize();
4 结束语
目前移动电话的普及已使得SMS的应用极为广泛。本文应用SMS技术通过使用MFC多线程编程及动态链接库实现的自动查书系统,已经在图书馆及书店中得到很好的使用。系统不但方便了图书的管理,也给人们的学习生活带来了极大的便利。
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。