手机短信模拟系统的设计与实现_第1页
手机短信模拟系统的设计与实现_第2页
手机短信模拟系统的设计与实现_第3页
手机短信模拟系统的设计与实现_第4页
手机短信模拟系统的设计与实现_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

手机短信模拟系统的设计与实现

0系统总体框架手机通信是我们日常生活的一部分,帮助和娱乐我们。它提供的主要功能包括:电话业务通过全球移动通信系统(GlobalSystemforMobileCommunications,即GSM)为用户提供双向语音通信;短信业务由GSM外端的短信服务中心(ShortMessageServiceCenter,即SMSC)负责,用户可发送和接收有一定长度限制的数字和文字信息;数字业务把GSM接入其它网络,如综合业务数字网(IntegratedServiceDigitalNetwork,即ISDN),得到它们提供的服务。然而,我们对手机的移动通信原理知之甚少。本文开发一个模拟系统来帮助我们理解这种原理,也帮助进一步理解UML的几种图形表示的实际应用性。该系统集中于短信通信,功能包括发送、接收、收费、通信录和收发件箱。遵循UML模型驱动方法,以用例图、类图、状态图、顺序图和部署图描述系统的静态结构和动态行为。运用面向对象程序设计(Object-orientedProgramming,即OOP)机制建模和编程,如模块化、继承、重定义和信息隐蔽。UML为软件系统的建模提供一组功能强大的图形化描述语言。它正广泛作为开发人员、用户、理论研究者之间的一种通信工具。这是因为:第一,它的思想来源于广为人知的OOP;第二,它的图形表示基于人们熟悉的图形语言,如E-R图、状态机、流程图、Petri网等;第三,它获得了众多公司的支持,他们开发强有力的支撑环境。UML2.0包括十三种图形表示和对象约束语言OCL。1需求分析1.1手机视频点录手机的通信功能很复杂,要完整模拟是相当困难的。因此,我们集中于短信通信:(1)SIM卡,每部手机有一张用户身份鉴别卡(SubscriberIdentificationModule)记录卡的基本信息,如手机号、通信公司等;(2)短信的发送和接收;(3)通信录,选择号码,方便发送短信;可添加、查询、更新和删除其中的号码;(4)收发件箱,存储发送、收到的短信;(5)收费,根据国内的收费标准,对各种手机卡每次的发短信进行扣费;(6)充值,把充值卡的钱数存入账户。1.2一般示例图图1描述了客户和服务器的通信,图2描述了后台管理。虚线和实线箭头分别表示扩展、包含关系。2系统设计2.1整体设计2.1.1数据库的管理为了处理两个用户之间的通信及费用等问题,每个用户需要一个数据库存储其基本信息,如卡的信息等,通过Web服务与另一个用户通信,Web服务也需要一个数据库存储每个用户的信息,如账户余额和短信收费标准等。后台管理通过数据库与Web服务相连。系统总体结构如图3所示。2.1.2客户及后台管理本系统主要分为三部份:手机客户、手机服务器、后台管理。客户主要是把请求发送给服务器。服务器主要处理客户发送来的请求,如短信。后台管理主要是创建、修改和删除一种卡的类型,同时创建SIM卡和充值卡。系统功能流程见图4。2.2详细设计2.2.1e和社区.asmx、对的单位分布TelPhone-Clinet.exe和Server.asmx、Manager.exe分布在两台计算机上,使用UDP、HTTP协议通信。其部署如图5。2.2.2sim卡类型总体类图表示各个类之间的关系:聚合,表示整体与部份的关系;单向关联,表示调用一个类的操作;继承,子类从父类获得属性和方法。图6是客户和服务器,图7是后台管理。图6的类模型由TelPhone-Server和TelPhone-Client两部分组成。TelPhone-Client的类有:TelMain,客户主菜单;AddCard,导入导出SIM卡;ReceiveMessage,接收短信;AddBook,通信录主菜单,查询联系人;BookMod,添加或修改联系人;Code,把中文姓名转化为拼音的首字母组合;Customer,访问通信录;Message,短信主菜单,查阅收发件箱;ClearMessage,清空收发件箱;NewMessage,写新短信;FrmConnect,发短信时,添加号码;UserCenter,客户服务中心,查询余额、充值;FormOper,操作窗体;PubInf,存储公共信息;ClientOper,管理客户端。TelPhone-Server有:Server,主类,充值、发送短信、查询余额、扣费等;ClientInf,存储客户信息。两部分共有两个类:DBSOper,操作数据库;ServerOper,管理服务器端。图7的模型有这些类:ManagerMain,后台管理主类;TypeDefine,设置、修改SIM卡的类型;CardMade,创建充值卡;SIMMade,创建SIM卡;FileOper,操作文件;ManagerOper,本子系统的公共属性和方法。2.2.3客户端的控制功能(1)开机状态图。图8描述开机过程。系统启动后,检测是否存在SIM卡。否,显示“无SIM卡”;是,发送卡内信息到服务器进行验证,若验证失败,显示“无效SIM卡”,同时取得用户状态,若为关机,则服务器设置用户状态为待机。待机是用户账户有足够余额,手机处于等待状态,可拨打和接听电话、发短信。停机表明账户无足够余额,无法拨打和接电话、发短信。(正常)开机表明可使用这些功能。(2)发送短信状态图。图9描述发送短信过程。客户端验证电话号码的合法性,如须是适当个数的数字。发送后,服务器取得发件人的状态,若停机,发送失败,通知发件人;若待机,则验证收件人号码,若不存在,则发送失败,通知发件人;否则,验证收件人状态,若它不为停机,则取得发件卡的类型,对用户账户进行扣费,发送短信。发送成功后取得发件人余额,余额小于0则设置发件人状态为停机。(3)充值状态图。图10描述充值过程。客户端验证卡号的合法性,把卡号和密码发送给服务器进行验证。若成功,则取得该卡的充值金额,若大于零,则对充值卡扣费,若成功,则进行手机用户的充值,若充值失败,则恢复该卡的金额,否则查询用户余额,若余额大于零,则设置用户状态为待机,并通知客户端充值成功。(4)关机状态图。退出系统时,服务器取出用户状态,如为停机,则不更新用户状态,否则设置用户状态为关机。系统(停机)关闭、(关机)关闭指别人呼叫该用户时,提示“您所播打的电话已停机”或“您所播打的电话已关机”。关机即关闭电源。见图11。2.2.4发送短信进行攻击图12是发送短信的顺序图。用户请求后,客户端验证接收人号码,把短信存入发件箱,把发送人号码、接收人号码和短信发送给服务器处理,验证发送用户与接收用户,都为正常后,进行扣费,发送短信。服务器通知发送用户。接收端手机接收到短信后将其存入收件箱。2.2.5收件和收件箱下面是服务器、客户和后台管理的各个类的详细描述,包括它们的属性和操作及其可见性,分别如图13、图14和下页图15所示。若操作的参数与窗体操纵有关,则省略;若为用户定义的普通参数,则说明之。(1)TelPhone-Server。Server类:login(no,pin,ip,port:String),验证SIM卡,参数为SIM卡号、卡密码、机器IP地址、短信端口;sendMessage(sp,rp,m:String),用户发短信,对发信账户扣费,参数为发送端号、接收端号、短信;replenish(tel:Integer,no,pin:String),账户充值,先验证充值卡,再读卡值,进行充值,参数为待充值号码、充值卡的卡号和密码。ServerOper类:get_status(tel:Integer)取得用户状态:未开通、在线、通话中、关机、停机,tel号码;get_balance(tel:Integer),取得账户余额,tel为账号;messageFee(stel,rtel:Integer),发短信扣费,参数为发送和接收号码;get_IP(tel:Integer),取得IP地址,tel为号码;get_cardValue(no,pin:String),取得充值卡的值,参数为卡号和密码;get_fee(tel:Integer)取得收费标准,tel为发送号码;sendMessage(tel:Integer,m:String)发送短信,参数为号码、短信;set_status(tel,s:Integer)设置用户状态,如余额小于0,则为停机,参数为号码、设置的状态。ClientInf类:userStatus,存储用户状态。(2)TelPhone-Client。TelMain类:receiveData接收从服务器发送来的短信;telMain_init,客户初始化,检测系统是否有SIM卡,有则把它的信息发送给服务器,否则显示“无SIM卡”;card_inOut导入导出SIM卡;addBook_access访问通信录;userCenter_access访问客服中心;message_access访问收发件箱,currentTime显示当前时间。ClientOper类:creatCard(path:String)把数据库中的SIM卡的信息保存为XML文件,path路径;get_name(tel:Integer)以电话号码取得通信录中联系人的名字;get_now()取得当前日期和时间;show_receiveMsg(),在ComboBox和RichTextBox控件中显示收发件箱的内容;getNoFromName(name:String)以通信录中联系人的姓名取得其电话号码;sys_send(ip,port,m:String)发送短信,参数为目标IP地址、连接端口、短信内容。FormOper类:show_ListBox、show_ComboBox、show_ListBox2、show_ComboBox2分别把从数据库取得的一列值、一列值、两列值、两列值显示在ListBox控件、ComboBox控件中;show_Msg(tel:Integer)显示收件箱的收件日期、发件人姓名或者发件箱的发件日期、收件人姓名,tel为电话号码;get_date(s:String)取得收件或发件时间,s为SQL语句。PubInf类:isCard,系统中是否有SIM卡,有则发卡信息给服务器验证;no、pin,卡号和密码;company、server,卡的通信公司、网点;isEffective是否为有效卡;connectInf,通信录中联系人信息;tel_s、tel_r,发件人、收件人的电话号码。Code类:indexCode(t:String)取得一串汉字中每个字的拼音首字母;oneIndexCode(t:String)返回一串汉字首个字的拼音首字母;getOneIndex(w:String)取得某个汉字的拼音首字母;getX(g:Integer)以区位码得到汉字首字母。Customer类:getNumber单击添加联系人按钮,从通信录取得电话号码;custom_Load初始化窗体;btnExit_Click退出窗体;verifyNumber验证电话号码的合法性;btnOK_Click,调用send方法;show、send,两个虚方法。NewMessage类:show、send重定义父类中同名方法,初始化窗体、向其它用户发送一条短信。ClearMessage类:clearMessage清空收发件箱。ReceiveMessage类:readMessage显示发件人姓名、接收日期和未阅读内容;readMessageByName,以发件人姓名和日期来查询短信内容。UserCenter类:showBalance显示用户账户余额;replenish验证卡号和密码,合法则发给服务器验证,成功,进行充值。AddBook类:showByType按联系人的类型查询通信录;searchByName显示某个联系人的信息;modify修改某个联系人;search查询。BookMod类:isModify是新增或修改联系人;addConnect_Load添加、修改联系人;ok_Click修改或增加联系人操作。(3)Manager。ManagerMain类:typeDefine_show调用设置SIM卡的类型的窗体;cardMade_show调用创建充值卡窗体;SIMMade_show调用创建SIM卡窗体;exit退出系统。TypeDefine类:newType、delType、modifyType新建、删除、修改一种卡的类型;exit退出窗体。CardMade类:btnOK_Click批量产充值卡;btnClear_Click清空无效充值卡;btnExit退出窗体。SIMMade类:btnOK_Click批量产SIM卡;btnExit退出窗体。ManagerOper类:createCard产生充值卡卡号,验证数据库中有无重复卡号;createSIM(h:String)产生SIM卡卡号,h为号码的前三位,验证数据库中有无重复卡号;createPin(l:Integer)产生充值卡或SIM卡的密码,l为密码长度。FileOper类:write(p,s:String)、createFile(p,s:String)写文件、创建txt文件(充值卡),p文件路径,s待写数据;createXML(p,no,pin,c,s:String)创建XML文件(SIM卡),参数为文件路径、SIM卡卡号和密码、通信公司、服务器地址。(4)公用类。DBSOper类:oledbconn连接数据库的语句;obconn连接对象;executeToTable(s:String)、executeToReader(s:String)执行选择类型语句,返回字符串表、OleDbDataReader类型;executeToNonQuery(s:String)执行非选择类型语句,返回成功或失败;count(s:String)返回某个表中记录的条数;verify(s:String)验证数据库中有无该记录。2.2.6短信和短信的存储七张表存储有关信息。表1~表4、表5~表7用于客户、服务器。用户把一张SIM卡导入手机,在表1中插入一条记录;导出则删除相应记录。卡号为电话号码。表2存储常用联系人的信息。发短信时可选择其中的姓名来取得电话号码。表3存储收到的短信。若通信录中有此发件号码,则显示对应的姓名,否则显示此号码。表4存储已发送的短信。表5有SIM卡的名称和类型,发短信费用指每发一条短信要收取的费用。表6有充值卡的卡号和密码。表7有SIM卡的卡号、密码、账户余额和类型(如神州大众卡)。用户状态为未开通、待机、通话、关机、或停机。系统根据IP地址达到两台计算机通信的目的。端口区别用户之间不同的服务。3系统完成系统在微软.NET平台上运行,使用C#编程、Access存贮数据,套接字和Web服务连接网络,用户界面采用窗体技术。3.1供了技术保障Web服务跨越网络应用,为实现面向服务提供了技术保障。在应用程序中访问某个URL地址,得到一份XML描述,产生一个接口文件,以此访问运行在Web服务器上的服务。3.2采用通过tcp接信协议采用UDP协议。UDP是一种简单的、面向数据报文的无连接协议,提供快速、占用资源量少但不一定可靠的传输服务。考虑到使用TCP每次通信都须先进行连接,耗费大量资源。在TelMain中可接收服务器发送来的消息,并做出响应。3.3安装服务器程序(1)安装微软IIS。点击“开始->设置->控制面板->添加或删除程序->添加或删除Windows组件->Internet信息

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论