基于Delphi的边界漫游查询系统的设计与实现

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:kingwill
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:边界漫游是移动通信运营商经常遇到的问题。由于通信基站之间的信号边界无法正好和行政区划的边界重合,导致处于边界地带的用户经常会在没有漫游的情况下产生漫游、长途计费。本文阐述使用Delphi + SQL Server进行边界漫游情况查询,找出临近城市新增的边界基站小区,从而为返还“边界漫游”所产生话费提供依据。
  关键词:边界漫游;查询
  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)17-31207-02
  The Design and Implementation of Border Roaming Query System Based on Delphi
  WANG Lei
  (Suqian College, Suqian 223800, China)
  Abstract: Mobile Telecommunications operators often commit Border Roaming. It leads to mobile users in the border strip produce roaming, Long-distance billing, where should not. This paper details querying border roaming based on Delphi and SQL Server by finding new Communication Station of adjacent cities, which provide basis of border roaming bills.
  Key words: Border Roaming; Query
  
  1 引言
  
  众所周知手机在漫游状态下通话需加收漫游费用。由于不同区域的基站信号在边界区域交叉覆盖,导致用户的手机可能在未漫游的情况下而经由外地区的基站信号构成链路进行通信从而产生了漫游话单。若要消除边界漫游的情况就需要进行网络优化一般要从无线网络优化与计费优化两方面着手。优化网络方面可以从错开频率防止干扰、保证基站与边界距离、使用定向天线,控制基站天线角度、放射功率等方面着手。
  然而基站的调整并不能彻底地解决边界漫游问题,在边界地段仍然还存在个别漫游现象 。这是因为为例保证信号的无缝覆盖就不可能完全没有信号覆盖,当边界的本地一侧基站繁忙或者信号减弱时,手机便会自动切换到临近的外埠的基站。从而出现在没有漫游的情况下产生漫游话单,反之亦然。
  实践证明,随着网络的优化,网络越健全,覆盖越完整,就越容易出现边界漫游问题。我们善意假定,在边界地区(无论所处本埠还是外埠)经由外埠边界基站产生的话单均给予漫游费减免,那么我们要知道外埠处于边界的基站有多少个小区(CELL_CI),我们可能从其它途径已经获知一部分小区号,而由于网路经常会有维护,从而增减或调整设备,这样一个问题出现了:如何才能及时获知新的小区号,从而提前做好相关漫游费的减免,有效避免边界漫游产生的话费纠纷,减少客户投诉,提升客户满意度。
  移动设备已经对可能涉及的切换情况进行记录,根据设备号和当前日期生成文本文件保存在服务器的指定目录中。由于该文件中保存的切换记录数据量大,比如一个区域中心有20套设备每天产生的数据量大约为11万行,每天新出现的小区号可能只有一、两个甚至没有。如果用人工方式从这么多行记录文本中找到新出现的小区号无异于大海捞针。基于上述理由,使用数据库技术来管理和查询漫游切换记录是当务之急。
  
  2 查询系统的功能构成
  
  主窗体(含定时运行模块) 主要功能是提供程序主界面,提供软件最小化到托盘、开机自动运行、定时器功能,每间隔一段时间检查是否到达预定执行时间,到达时间则启动该程序相关功能模块。
  参数配置模块该模块是系统的底层模块,被其它模块所调用。系统使用.inf文件保存程序所需要的各种配置参数,如数据文件所在FTP服务器的地址、端口号、账号、密码等信息,服务器端数据文件夹、数据文件通配格式,各功能模块的定时运行时间,SQL Server数据库服务器的地址、用户名等参数信息。模块包含参数的读取、界面显示、修改等功能。
  文件下载模块。用于通过FTP方式从服务器端读取移动通信设备所产生的文本数据文件,按照给定的方式重命名保存到本机。
  数据插入模块。根据配置信息中给定的数据文件格式和路径,找到文本数据文件,逐行读取并分解内容,将其插入到指定的SQL Server数据库中。
  边界查询模块。将已插入数据库中的切换记录,与已知的边界小区号进行比对,从中找出新出现的小区号。根据用户的选择,可以自动或手动将新小区号插入到已知边界小区表中。
  单向切换查询模块。将已插入数据库中的切换记录中查询只有从一个小区切换到另一个小区而没有对应的反向切换的情况。
  
  3 后台数据库选择与设计
  
  在边界小区查询系统中有大量的数据需要保存,考虑性能因素常用的桌面数据库系统(如MSAccess)难以担负重任,只能依赖大型关系型数据库系统来完成。因此,选择一种数据库管理系统也是需要考虑的一个方面。目前大型数据库的选择有多种,如IBM公司的DB2,Sybase(赛贝斯),ORACLE, MS SQL Server等。最终依据简单好用的原则,选择了员工较为熟悉的MS SQL Server。
  起关键作用的数据表主要有三张:
  Old_Cell:保存已知的小区边界,主要字段Cell_Lac_Ci_Adj是原始文本数据文件中CELL_LAC_ADJ与CELL_CI_ADJ内容的组合,用于唯一确定一个小区。
  Exception:例外情况表,主要字段Cell_Lac_Adj,用于记录已知的本地Cell_Lac_Adj。
  Org_Data:原始数据表,用于保存从文本数据文件中读取插入的切换信息。
  
  4 系统实现的关键
  
  本系统选用Delphi设计的根本原因,就是Delphi提供了比较完善的控件,相对于C++使用类来编程FTP以及数据访问控件、操作Excel等操作只需设置相关属性即可实现,省去冗长的代码编写过程。使得编程者可以将精力集中在程序整体布置和其它流程安排过程。
  原始文本数据文件的下载
  在Delphi中使用IdFTP控件来实现与数据下载,本系统主要目的是实现数据的查询,下载只是系统功能的一个子部分,要求下载部分越简明越好,因此没有直接使用WinSock接口编程。使用IdFTP控件与FTP服务器进行联系,要为IdFTP控件指明Host、Port、UserName和Password属性。再执行Connect命令即可打开FTP连接。
  由于服务器端的数据文件文件夹以及数据文件格式可能会随着设备升级而发生改变,这里使用配置文件保存服务器端的路径信息和文件通配格式,设备起至编号,以便提高系统通用性。
  为防止数据文件不存在而导致下载出错,使用Size函数判断服务器端路径是否存在:
  if size(目标文件)>-1then
  Get(目标文件,本地文件,True);
  经反复测试比较,此方法效率和可靠性都较高,可有效避免下载程序出错。
  文本数据读取与插入数据库
  Delphi中,使用AdoCommand控件,配置好CommandText和ConnectionString即可实现数据插入。在每行数据插入之前要对CommandText中的参数进行填值,方法如下:
  ADOCommand1.Parameters[0].Value := 参数的值;
  填值完毕以后,执行AdoCommand1.Execute;
  这一步骤是查询系统能否实施的关键。问题难点在于初期程序的执行速度一直不尽如人意。按照每天实施一次数据插入,每天的数据文件约为120个,按每个1000行文本计算,产生的记录行数应该在10万行以上,经过反复测试耗时在2-3分钟。在此期间数据库服务器在执行插入数据期间处于高负荷状态(CPU使用率和内存占用)。
  为防止插入期间影响其它程序运行,数据插入改为分时段进行。即每间隔四个小时,下载一次最新的文本数据文件,然后执行数据库插入操作,这样将每次任务量较少为原先的1/6,从而有效避免了上述问题。
  边界小区查询的实现
  我们把产生边界切换的位置信息(CELL_LAC)和小区号(CELL_CI)组合成一个字段(CELL_LAC_CI),把切换的外埠方位置信息(CELL_LAC_ADJ)和小区号(CELL_CI_ADJ)组合成一个字段(CELL_LAC_CI_ADJ)。而我们已知本埠的小区的位置信息保存在Exception表中,已经获知的外埠小区位置信息和小区号组合保存在old_cell表中,实现边界查询的SQL语句如下:
  select a.cell_lac_ci_Adj from
  (selectdistinct cell_lac_ci_adj from org_data)a
  where left(a.cell_lac_ci_adj,5) not in (select cell_lac_adj from Exception)
  and a.cell_lac_ci_Adj not in (select cell_lac_ci_adj from old_cell)
  单向切换查询的实现
  表中,第一条记录和第三条记录,形成一个切换回路,视为正常。第二条记录没有与之对应的反向切换记录,可以视为异常。程序目的是找到这样的记录,并统计单向切换次数。
  本程序求解思路是,将两个字段合并形成一个字段形成表a,然后将两个字段顺序对调后合并形成一个字段形成表b,如果一条记录同时出现在表a和表b中,则表明出现切换回路。本题使用not in排除回路情况,得到单向切换的记录并统计次数。相关SQL语句如下:
  Select a.c as 切换信息,Count(*) as 切换次数From
  ( SELECT [Cell_LAC_CI] + [Cell_LAC_CI_ADJ] AS C
  FROM [Mobile].[dbo].[Org_Data]
  where LEFT([Cell_LAC_CI_ADJ],5) IN (select [CELL_LAC_ADJ] FROM [Mobile].[dbo].[Exception]) )a
  where a.c not in
  ( SELECT Distinct [Cell_LAC_CI_ADJ] + [Cell_LAC_CI] AS C FROM [Mobile].[dbo].[Org_Data]
  where LEFT([Cell_LAC_CI_ADJ],5) IN (select [CELL_LAC_ADJ] FROM [Mobile].[dbo].[Exception]) )b
  Group by a.c
  order by 1
  
  5 总结
  
  系统在系统WinXP以及Server 2003上调试通过,数据库版本为MS SQL Server2000,Delphi版本为7.0,完成后交由相关公司以来运行正常,能够达到预期目的。边界漫游问题是移动运营商普遍会遇到的问题,网络越健全、覆盖越完整就越容易出现边界漫游问题。以上的解决方案也适合于省际边界漫游问题。
  
  参考文献:
  [1]陈保林.边界区域GSM手机漫游问题解决思路和措施[J].Telecommunications Technology,2004,(4).
  [2]郑澜.边界漫游问题的计费优化方案[J].移动通信,2003.7.
  注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
摘要:本文对C/S、B/S两种软件体系结构进行了分析比较,论述了其在软件开发中的优势和劣势,认为C/S、B/S混合体系结构更适用于大型复杂系统的开发。最后,通过对其在数字化教学系统中的应用,进一步剖析了C/S、B/S混合体系结构的特点,及其在特定领域中的开发模式。  关键词:软件体系结构;CS与BS混合结构;数字化教学系统  中图分类号:TP311文献标识码:A文章编号:1009-3044(200
期刊
摘要:农产品质量安全备受人们关注,随着信息技术的不断成熟,如何利用信息技术提高农产品质量安全成为学术界研究热点。文章从知识管理角度,研究农产品安全知识转移模型,并使用Agent技术构建该模型,尝试为提高农产品质量安全提供一条途径。  关键词:农产品安全知识;知识转移;Agent  中国分类号:TP311文献标识码:A 文章编号:1009-3044(2007)17-31191-02  Researc
期刊
摘要:SAML 是一项基于XML的交换安全性信息的框架,实现Web单点登录和保证Web服务安全性是SAML最重要的用途。本文讨论了SAML实现这两个用途的方法。  关键词:安全断言标记语言;单点登录;Web服务安全  中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)17-31247-02  The Research Of Application Of SAML  HU
期刊
摘要:数据库核心字符集决定了数据在数据库中的存储格式。本文讨论了Oracle数据库核心字符集的设置方法及相关参数,并提出了核心字符集的修改方法。  关键词:Oracle;字符集   中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)17-31198-02  Discussion on Oracle National Language Support  TENG Yong-
期刊
摘要:电子病历是医院信息化发展的趋势,针对目前电子病历的不足之处,设计将其与PACS、RIS进行集成。用户在B/S模式的平台上,能够快速准确地查阅病人的医学影像,进而诊断、记录病情。该系统可以有效提高医生的工作效率。  关键词:电子病历;PACS;RIS;XML;B/S  中图分类号:TP311文献标识码:A 文章编号:1009-3044(2007)17-31202-01  The Integra
期刊
摘要:安全电子交易SET是一个用于保护Internet上信用卡交易的加密与安全规约,它定义了多种事务类型,其中最重要的三种事务分别为购买请求事务、支付授权事务和支付获取事务,要求在理解SET协议关键事务的基础上,为了实现数据的互操作要求,采用XML作为消息的载体,设计与SET协议关键事务相关的XML Schema定义,要求能够完整准确地表达消息的各种要素。  关键词:SET;事务;XML Sche
期刊
摘要:本文重点介绍了NCRE上机考试网络环境中服务器的设置经验——使用windows 2000的命令编写的批处理文件设置服务器,同时,也简单介绍了手工设置和服务器设置程序设置,最后,对这些设置方法进行了比较分析。  关键词:NCRE上机考试;服务器设置;批处理命令文件  中图分类号:TP393 文献标识码:A文章编号:1009-3044(2007)18-31774-03  NCRE Install
期刊
摘要:在介绍MapObjects及其常用的坐标系对象基础上,针对全球矿产资源信息系统多投影坐标系并存的特点,采用其他GIS软件辅助完成坐标系的转换,同时利用MapObjects已有的坐标系对象,实现了该软件的图层转换、查询检索等功能。  关键词:MapObjects;全球矿产资源信息系统;投影坐标转换  中图分类号:TP391文献标识码:A文章编号:1009-3044(2007)17-31197-
期刊
摘要:在数据库管理系统中,图像数据技术一直致力于解决海量数字图像的有效存储和管理问题,这是一项非常复杂的技术,具有重要的实用价值和经济价值。笔者在DELPHI 开发环境中,针对SQL Server数据库关系表中BLOB图像数据的存取问题进行了初步探讨,提出了一套基本解决方案,供读者参考。  关键词:BLOB;图像数据;图像存取  中图分类号:TP311文献标识码:A 文章编号:1009-3044(
期刊
摘要:Web挖掘是目前计算机技术领域中的研究热点,它是现代科学技术相互渗透与融合的必然结果。Blog作为一种全新的网络发布模式,在很大程度上增强了网络信息的开放性,吸引着越来越多的网络用户。首先介绍了 web 数据挖掘的概念,讨论了 web 数据挖掘的种类,随后对Blog, RSS的特征进行了阐述, 最后重点论述了RSS空间里的的数据挖掘。  关键词:Web挖掘;Blog;RSS;XML  中图分
期刊