欢迎来到学术参考网

CDMA手机中短消息的存储机制和实现

发布时间:2015-12-14 13:54

摘 要:基于CDMA网络的短消息业务(SMS)及其增值业务已经成为电信移动业务收入的主要来源。如何有效管理短消息在手机中的存储已成为实现该业务的技术关键。本文结合CDMA手机软件,介绍了手机中短消息业务的存储机制和软件中的实现。

关键词:短消息;CDMA;手机;软件;存储机制
1. 引言
  近年来我国的CDMA移动电话也得到了迅猛的发展,截至2009年12月,中国电信CDMA用户已经突破5000万,比上年翻了一番。
  随着用户量的增长,整个CDMA移动通信网对于网络质量与增值业务的开展更加重视。如何能够最大程度的利用现有网络,挖掘网络潜力,方便灵活的开展增值服务,满足用户日益增长的业务需求成为网络运营商所要考虑的重点。基于以上需求,利用无线信令进行通讯的新业务:短消息服务蓬勃发展起来。它是CDMA系统中提供的一种手机之间及与短消息实体之间通过短消息中心进行文字信息收发的方式,其中短消息中心完成信息的存储和转发功能。短消息服务拥有价格低廉、使用方便,信息传递准确及时,存储转发离线等优点,因而倍受用户欢迎。
  随着手机存储设备的日益扩容,不断降价,手机中短消息存储数量也从以前的几十条增加到几百条甚至上千条,短消息的高效存储,有效读取也成为用户使用该业务的技术关键。
2. CDMA手机中短消息数据存储和管理
2.1 手机软件的整体架构
  手机软件的整体架构图如下

  图一 手机软件整体架构
* Protocol Stack and Chipset Specific Driver
  各种底层软件(包括手机协议栈软件)的集合和各种硬件驱动软件。
* AL
  Abstraction Layer抽象层,包括逻辑存储管理子系统(Logic Storage Management)电池管理(Battery Management),键盘(Keypad),文件系统(File System Interface),音频(Audio),显示(Display)等模块,
  AL是位于UI和协议栈的中间层。AL封装和屏蔽所有协议软件和硬件驱动软件实现细节,向各种上层应用(包括电话本,短消息等)提供开发所用的接口。AL层的主要目的是为了减弱软件各模块的耦合度。同时,运行在抽象层基础上的上层软件也可以非常容易的移植到不同协议栈或不同的硬件设备上。
* Application and User Interface
  应用用户接口层完成移动手机的基本功能。主要包括通话,短消息,电话本,MP3,照相机,手机设置等功能。
2.2 逻辑存储管理模块介绍
  逻辑存储管理子系统(Logic Storage Management以下简称LSM)主要负责管理手机中的各种应用数据存储,主要包括电话本,短消息,通话记录,日历, 多媒体彩信,数据库等模块。

图二:LSM整体框架图
2.3 短消息数据在LSM的存储和管理过程
  短消息是LSM子系统的主模块之一。主要负责FLASH和UIM卡中短消息的存储管理以及排序,短信收发以及其他相关功能。当协议栈收到新消息会通知LSM短消息模块,新消息会自动存储到预设的介质中,如FLASH或UIM卡, 然后通知上层UI接口;同时,短消息模块也负责存储于FLASH和UIM卡中存储的所有短消息排序,快速定位以及读写,删除等操作。
  UI 能通过LSM短消息存储接口保存、读取和删除收到和发送的消息。LSM把对FLASH和UIM卡的操作封装起来,UI可以不用关心对FLASH和UIM止存储设备的具体操作,只需调用LSM层接口就可完成
  当UI需要写一条新消息到存储设备,它只需提供哪个设备它将写入,具体的写入位置由LSM来决定,LSM层会帮助完成对存储设备的具体操作。当UI需要读取、更新或者删除记录时,UI应该给出包含有设备类型和物理存储位置信息的record id给LSM层接口。
  如果存储设备已满,UI还要往里写消息LSM就要发出错误消息。
  如果在写入一条消息后存储设备满了,LSM应该向协议栈和UI分别发消息通知。如果UI删除了短消息,LSM层将判断,如果之前设备是满的,那就需要通知UI和PSW现在存储设备已经可用。
2.4 短消息的存储原则
  手机存储短消息时,不论是从协议栈收取短消息,或者是向协议栈发送短消息的时候,LSM都会首先根据当前的存储设置来保存该条消息
* 选择存储设备时有如下五种设置:
  a)DEV_FLASH,      /*短消息只存在FLASH中*/
  b)DEV_UIM,      /*短消息只存在UIM卡中*/
  c)DEV_UIM_FLASH,  /* 短消息优先存在UIM卡中,UIM卡满后,存到FLASH中*/
  d)DEV_NONE.    /* 短消息不保存*/
  e)DEV_RAM      /*短消息随机储存*/
* 当存储设置为FLASH时:
  LSM应该首先将收到短消息从TEXT格式转换位PDU格式,然后调用添加的接口将其保存到FLASH中,并将保存下来的record id(高4位代表存储设备,低12位为message id)通知给相应的UI。如果没有足够的空间来存储收到的短消息,LSM 也应该发消息通知UI。
* 当存储设置为UIM时:
  收取短消息到UIM的过程基本和FALSH相同。唯一不同的地方就是所有存储在UIM中的短消息会在LSM 初始化的时候全部缓存到RAM中。新收到的短消息将会插入到该缓存中,并将缓存节点的写入状态置为“to be written”,等待批量写入。如果没有足够的空间来存储收到的短消息,LSM 也应该发消息通知UI。
* 当存储设置为DEV_UIM _FLASH时:
  首先写入UIM,若UIM空间不够,则写入FLASH。当两者都没有空间时,应通知UI 短消息已满的消息。
* 当存储设置为DEV_RAM时:
  按照接收或发送的顺序将其写入RAM缓存,并返回设备类型 为DEV_RAM的record id。如果此时RAM缓存已满,则覆盖RAM中最早收到的那条短消息。
* 当存储设置为DEV_NONE时:
  LSM不应该将该短消息存到任一个设备中,通知UI新的record id为0,UI将从缓存中获取该条消息
* 对于默认的支持类型的短消息都应该被保存
* 不论是收,或者是发短信,所有的UI都共享同一个公共的存储设置。当其中一个UI改变了存储设置的时候,之前的设置将会被更改
* FLASH和UIM中存储的记录都是相同的数据组织结构
* 为了避免多进程情况下对短消息的意外删除,对于FLASH和UIM卡中的空闲的写入,都应该遵循“先释放,先是用”的原则
* 考虑到对UIM 卡的读写性能,LSM应该将UIM卡中的内容都缓存到RAM中
* 所有对消息的读,写,更新操作的API都应该提供两种模式:PDU和TEXT
* 所有对短消息的存取操作都应该是线程安全的
2.5 短消息存储实例
  以读短信为例说明短消息存储的具体实现, 读短信时,应该输入相应记录的物理 record id。若record id 中的存储设备为FLASH,则LSM应该从FLASH中读取PDU格式的短消息。如果存储设备为UIM, LSM应该从RAM中 的UIM 镜像缓存读取。总之,记录的存储格式是PDU,如果需要TEXT格式的记录,则需要做从PDU到TEXT格式的转化。
  
   图三 读短消息的处理流程
3. 结束语
  目前,短消息从最初的基本发送和接收消息的功能,已经有了进一步的扩充,是当前比较健全的通用的承载业务,它可以支持大部分的增值业务。短信也发展为移动运营商最重要的增值业务,尽管彩信业务也已经大力推广,从用户角度来看,文本短信有资费低廉,内容简洁,操作简单等优势,传统的文本短信仍是运营商的一座还未发掘完的金矿,文本短信的主流地位在相当长时间内无法动摇。短消息的高效存储和读取可以让手机用户在使用中更加流畅,为短信的发展必将起到推波助澜的作用。

上一篇:浅谈入侵检测系统及其发展

下一篇:面对非计算机专业《数据库基础》教学研究