《手机管家在线系统的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
目录4.1系统通信机制设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。284.1.1浏览器客户端与服务器的数据交互机制设计⋯⋯⋯⋯⋯⋯⋯⋯⋯294.1.2手机客户端与服务器的数据交互机制设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯324.1.3服务器端对监听请求列表的维护⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯334.2通讯管理模块设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯354.2.1短信管理模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.354.2.2通话记录管理模块⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.404.3通讯录管理模块设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯414.3.1VCard规范⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯一434.3.2常用功能设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.444.4日程计划管理模块设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯474.4.IFulICalendar插件介绍⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯494.4.2常用功能设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯494.5工具箱模块设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.514.5。l常用功能设计⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯534.6与手机端的对接⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯554.7本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。59第五章手机管家在线系统的实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯605.1通讯信息管理模块实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.605.1.1短信管理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。605.1.2通话记录管理⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯625.2通讯录管理模块实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯635.3日程计划管理模块实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯655.4工具箱模块实现⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯675.5本章小结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。68第六章总结和未来展望⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。706.1项目总结⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。706.2未来展望⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯71参考文献⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯74 目录攻读硕士学位期间发表的学术论文⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..77致谢⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..78VII T曲leofContentTableofContentChapter1Introduction⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··11.1Background⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··11.2MainContentofResearch⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯。21.3ResearchStatus⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.。21.4MainJobofPaper⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯41.5ContentOrganizationofPaper⋯⋯⋯⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..4Chapter2UnderlyingTechnologyandDevelopmentToolsSelection⋯⋯⋯⋯⋯⋯⋯..52.1DescriptionoftheUnderlyingTechnology⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯52.1.1Intemet-basedRemoteControlTechnology⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.52.1.2TCPProtoc01andHTTPProtocol⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.62.1.3JAVASCRIPT、AJAXandJQuery⋯⋯⋯⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯⋯72.1.4ServerPushTechnology.⋯...............。⋯⋯⋯⋯.⋯.......,⋯...。..,.⋯.....,......⋯⋯82.1.5.NETFrameworkandASRNET⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..102.2DevelopmentToolsSelection⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯132.2.1DevelopmentLanguageSelection....⋯⋯..........⋯................,.⋯......⋯⋯⋯132.2.2IntegratedDevelopmentEnvironmentSelection.....,..........,,,........,,⋯.....142.2.3DatabaseSelection⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..142.2.4InformationServerSelection⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.142.3Summary⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.15Chapter3TheOverallDesignofOnlineSmartphoneManagementSystem⋯⋯⋯163.1SystemDesignGoals⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.163.2SystemDesignPrinciples⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.⋯⋯.163.3SystemFrameworkDesign⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..173.4SystemFunctionModuleDivision⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯193.5LogicalDatabaseStructureDesign⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.203.6Summary⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.27Chapter4TheDetailedDesignofOnlineSmartphoneManagementSystem⋯⋯..284.1SystemCommunicationMechanismDesign⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.28TY TableofContent4.1.1BrowserClientandServerDataInteractionMechanismDesign⋯.。..⋯.。294.1.2MobleClientandServerDataInteractionMechanismDesign⋯⋯⋯⋯⋯324.1.3TheMaintenanceoftheRequestsList⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..334.2CommunicationManagementModuleDesign⋯⋯⋯⋯⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯354.2.1ShortMessageServiceManagementModule.⋯...⋯⋯⋯⋯⋯⋯..⋯....⋯-...354.2.2CallRecordsManagementModule⋯⋯⋯⋯⋯......⋯..........⋯....⋯⋯⋯。.⋯..404.3ContactManagementModuleDesign⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯414.3.1VCardSpecification.。⋯.....⋯.⋯⋯⋯⋯。...⋯.。⋯...⋯⋯.⋯⋯.⋯..⋯⋯.⋯⋯⋯⋯-.434.3.2FrequentlyUsedFunctionsandImplementaion⋯...⋯....⋯...⋯⋯⋯⋯⋯⋯.444.4ScheduleManagementModuleDesign⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·474.4.1FullCalendarPluginIntroduction⋯.⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯“494.4.2FrequentlyUsedFunctionsandImplementaion⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·,494.5ToolboxModuleDesign⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··514.5.1FrequentlyUsedFunctionsandImplementaion⋯.⋯⋯..⋯.⋯⋯⋯⋯⋯⋯⋯.524.6DockingwiththeMobileTerminal⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··554.7Summary⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·59Chapter5SystemFunctionDisplay⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·605.1CommunicationsManagementModuleFunctionDisplay⋯⋯⋯⋯⋯⋯⋯⋯··605.1.1ShortMessageServiceManagement⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯.605.1.2CallRecordsManagementModule⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯625.2ContactManagementModuleDisplay⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·635.3ScheduleManagementModuleDisplay⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··655.4ToolboxModuleDisplay⋯⋯⋯⋯⋯⋯⋯⋯。⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯··675.5Summary⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·68Chapter6ConclutionandProspect⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·706.1ConclusionofPaper⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯”706.2ProspectofStudy⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯71Reference⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯..74PublishedPaper⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯77Acknowledgements⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯·78Y 第一章绪论1.1开发背景手机自90年代在中国普及后,一直作为最重要的通讯方式,便捷着人们的工作和生活,随着手机制造商、运营商的不断努力,手机上出现了形式、功能多样的各种应用,如定制的即时通讯、新闻浏览、天气预报等,这些最初的应用都是固化在手机的内置芯片中,无法动态扩展。之后出现了可以运行JAVA程序的手机系统,该类手机尽管可以动态安装和删除程序,但由于没有后台概念,所以无法保证同时运行多个程序,进而用户体验仍然较差。智能手机的出现使得手机发展到一个新的时期,它已经变得不再是一个简简单单的通讯工具,而是作为一种便捷的娱乐终端,给人们的工作和生活提供了多种多样的应用。由于智能机具有独立的操作系统,所以可以由用户自行安装各种第三方提供的大型应用软件,不断满足用户对更多智能化、个性化服务的要求,同时操作系统的多任务管理能力可以将在一台手机上同时听歌、上网的愿望成为了现实,移动设备上的用户体验得到飞速的提高。随着各种应用软件的不断增多,手机需要处理的信息随之也就越来越多,但手机本身存在诸多局限性,比如:操作的不便捷性导致诸如短信编辑、联系人管理处理效率低下;屏幕的尺寸局限导致阅读体验不佳等等。这些缺点是手机等便携设备的硬伤,试想如果可以将部分功能转移到个人电脑上来完成,那么个人电脑强大的信息处理能力以及良好的用户体验无疑将是对手机端个人信息管理的一种很好的补充。目前手机和PC的连接方式主要有USB数据线、红外线、蓝牙以及Wi.Fi连接【32I,但它们均存在一个共同的缺点,即它们均采用胖客户端,用户不仅需要在使用之前安装相应客户端软件和驱动程序,而且还需要定期的更新、维护客户端。互联网的发明和快速发展,使得它呈现出分布范围广、技术成熟的特点[161。若借助互联网的这些特点建立基于互联网的远程手机控制机制,用户只要在手机端安装客户端软件并登陆服务器,即可实时同步手机的各种信息到服务器上,并且可以随时随地在任意一台已联网电脑的浏览器上远程查看或操控自己的手机。这种机制的建立不仅可以免去用户安装Pc端客户端软件的烦恼,而且丰富了智能移动终端的控制方式,更能为智能手机用户提供各种新颖的、多种多样的扩展应用。1 \手机管家在线系统的设计与实现1.2研究的主要内容建立手机端与WEB端的信息交互机制,其实就是建立手机客户端与服务器、WEB端与服务器之间的信息交互机制,这其中的关键就是两两之间通讯机制的设计和建立,本文研究的重点就是解决WEB端与服务器端以及手机端与服务器端的信息交互机制,使得指令、数据可以高效地、实时地、安全地在三者之间传输,从而达到较高的用户体验;其次,如何规划设计和实现通讯信息管理、通讯录管理、日程计划管理以及工具箱等四大模块的前后台也是重要部分,这不仅影响到手机用户的日常使用习惯,更与手机内各种数据内容是否合理地、正确地、完整地传递关系密切。1.3国内外研究现状本文所做主要工作是研究WEB端远程管理智能手机的应用,与常规WEB应用不同点在于传递信息的主动方在服务器,而非客户端,并且来自客户端的连接不仅有传统的PC端浏览器,而且还有手机端,因此建立适用于该应用的消息推送机制是研究的重点。目前,这样的推送平台国外较为多样,常见的有:(1)EMN(OMAEmailNotification)技术[40】这是一个专门的邮件推送平台,整个系统由邮件服务器、推送代理网关以及移动设备组成。当用户从客户端(PC或移动客户端)发送邮件到邮件服务器时,后者会通过PushRAP协议向推送代理服务器发送推送通知,之后推送代理网关将EMN(即邮件通知)信息发送到终端(通过PushOTA方式,即空中下载技术,典型的方式是利用短信息),通知终端接收邮件。(2)C2DM(AndroidCloudtoDeviceMessaging)技术【41】该系统是Google公司专为Android手机定制的用于帮助开发者从服务器端推送数据至手机客户端的服务平台,它提供了一个简单、轻量级的机制使得服务器端可以通知移动端去获取信息。该平台的主要工作流程有:1)启用C2DM,需要使用到推送服务的终端均需要运行C2DM服务程序;2)注册,即终端在程序首次运行时,需要向C2DM服务器发送id以及本程序id进行注册;3)发送消息以及接收消息。(3)APNS(ApplePushNotificationService)技术【42] 第一章绪论Apple公司于2009年提出基于XMPP协议的APNS推送平台,用于终端通过与服务器建立持续的IP连接,将来自第三方应用程序的提示信息推送至设备。APNS平台利用deviceToken作为终端标识,在安装带有推送服务程序的终端首次连接苹果的推送服务器(APNS)时获取,之后若第三方应用服务器有信息需要推送至该终端时,则会将信息生成Notifietion信息并推送至APNS,之后由APNS将消息推送到终端(矧。(4)BES(BlackBerryPushService)技术【431该平台是RjM公司基于TCP/IP协议建立的专用于黑莓手机的PushMail邮件推送系统。它由Push发起方、BlackBerry基础架构以及黑莓终端组成,Push发起方将Push请求,连同希望推送的终端及推送数据发送至基础架构,基础架构返回确认信息并加入推送队列,在基础架构将数据推送给指定终端后,等待终端的确认信息,并将响应发回给Push发起方。(5)MPNS(MicrosoftPushNotificationService)技术【44】该项技术是由微软公司推出的消息推送机制,它与APNS和C2DM都基本类似,即通过终端与推送服务器保持连接,并在两端提供接口供第三方应用实现推送功能。(6)J-Push(极光推送)技术[45】该技术是由中国的和讯华谷信息技术公司于2011年推出的面向开发者的第三方消息推送服务。原理也同以上类似,它可以为Android、IOS设备提供推送服务。推送技术是系统的核心所在,目前已有一些基于服务器推送技术而实现的侧重于各个方面的远程控制智能手机的相关系统,这里列举了较为知名的部分应用,并逐一就各个应用的侧重点进行简单的介绍:(1)WebkeyWebkeyf461是由PeterMora和ZokanPapp两位设计开发的针对Android手机的远程控制系统,用户可以通过网页对手机进行截图、拨打电话、编写短信、导出通讯录等操作,可以说是一个较为完善的手机远程控制系统,并且可以凭借对Dyndns的支持和路由器的端口映射,在公共互联网实现对手机的远程控制,但它存在一些缺点:1)由于该系统是实时显示手机端屏幕的,在WEB端仍是基于手机屏幕进行操作,所以在操作体验上较差,同时实时屏幕也会导致响应较慢。2)需要手机端启动服务才可以通过WEB端访问管理界面,而这个服务一般是不会打开的,所以智能手机若在不能立即获得的地方,则无法使用该系统进行管理。(2)AirDroid 手机管家在线系统的设计与实现AirDroi∥7l是一款针对Android手机的WEB端管理工具,利用路由器的wifi功能就可以与PC端相连,连接成功后,通过WEB页面可对手机进行通讯录管理、短信编辑发送、文件管理、图片浏览等操作,但它不能算作真正的远程管理,因为该软件把远程操作局限在局域网环境,因此无法在范围更广的公共互联网区域实现对手机的管理。(3)蜡笔同步蜡笔同步【481是国内第一款实现通讯录、短信、通话记录以及日程计划实时同步的在线系统,注册用户不仅可以在网页上实时地查看、管理绑定手机端的各种信息,同时还具备在网页上发送短信、推送文件到手机、捏造虚拟短信等功能,可以说较完善地、全面地实现了智能手机的远程管理功能,但目前该在线系统对绑定手机的远程控制功能仍较为缺乏,无法满足用户诸如手机防盗、远程静音等更多个性化需求。1.4本文主要工作在该系统的设计与实现过程中,本文主要工作有:制定手机管家应用需求和总体架构;设计和实现手机端与服务器、WEB端与服务器之间的信息交互机制;参与指令以及信息数据传输的协议制定;服务器端通讯信息管理、通讯录管理、日程计划管理及工具箱等四大模块的前后台设计;参与手机客户端与服务器端对接工作;参与系统的日常维护以及代码的调试工作等等。1.5章节安排第一章,阐述了手机管家在线系统的开发背景、意义以及国内外研究现状,并对本文的主要工作进行了简单的阐述。第二章,对手机管家在线系统中项目中所使用的基本知识以及各个开发工具选型理由进行了解释和说明。笫三章,详细描述了手机管家总体设计、各功能模块划分以及数据库逻辑结构设计。第四章,详细描述了手机管家在线系统通信部件、各功能模块主要功能的设计思路与实现方法以及服务器端与手机客户端的系统对接工作。第五章,展示系统各个模块主要功能的实现。第六章,总结手机管家在线系统项目并着眼未来展望该项目的应用前景。4 第二章基础技术说明以及开发工具选型2.1基础技术说明2.1.1基于互联网的远程控制技术远程控制技术开始于工业领域,由于现在的工厂和生产地在地域上越来越分散,所以如果希望可以总揽各个环节的生产状况,或对分散的各个生产线以及工厂上的控制网络进行状态监控,则需要实行集中化控制,由此,远程控制技术应运而生【27】。在该技术的起步阶段,往往采用基于专线的远程控制,但这种远程控制技术在初期的投入很高,需要为控制设备铺设专门的线路,建设周期长,并且由于这种项目针对性强,因此技术无法实现得到有效推广。但这种远程控制项目由于使用专线接入,因此具有很好的安全性,速度也可以得到很好的保证,所以在一些安全性、实时性要求极高的项目中仍然采用。之后随着家庭电话、公用电话网的普及,这项技术得到了较好的发展,由于电话网的广泛铺设,因此采用公用电话网的远程控制项目在建设成本和项目周期上都有了很好的改善,但因为大部分电话网中的通信采用了时分多路复用技术,所以在传输速率和误码率上都表现不好,线路可靠性较差。无线技术的产生使得远程控制项目有了更多的选择,由于采用这种技术在建立网络时无需布线,这样不仅节省了网络布线的开销,同时也让各个连接终端更具灵活性,不需受到连线的限制。但无线电的带宽限制使得传输数据量和实时性均不高,并且容易受到干扰,远距离传输需要设立中继器,更远的则要使用卫星,所以建设成本也普遍较高,这种技术一般在固定行业如航天、航海等领域较为常见。因特网的广泛使用使得这项技术的发展有了新的思路,基于因特网的远程控制技术具备以下几个特点:(1)项目周期短、成本低[16】。作为现今分布最广泛的网络之一,项目初期网络铺设成本很低,只需充分利用现有的网络资源,将各自的局域网连入因特网,即可实现控制网络的广泛分布。(2)传输方式多样【2】o因特网发展至今,从链路层、网络层、传输层到应用层,各层均提供了多样的选择,如使用TCP协议作为网络传输层协议,TCP提供了高可靠性 手机管家在线系统的设计与实现保证的机制,数据可以在信道中得到安全、完整的传输;若换做UDP协议,系统虽然丧失了可靠性保证,但却具备了高效性。项目的设计可以根据实际需求制定相应的通讯协议。(3)维护费用小。因为因特网是一项成熟的技术,所以在各个企事业单位,均可以较容易找到专业的维护人员,而不需找专门人才。(4)发展较快。借助互联网的发展势头,基于因特网的远程控制技术也可以得到持续不断的、迅猛的发展,网络的普遍提速、某个网络技术的更新换代等等,这些都可以让这项技术获益良多。以上特点,使得基于因特网的远程控制技术的研究有了很大的意义,它不仅可以拓宽因特网的利用范围,而且还可以在降低成本的前提下扩大了控制范围,从而为更多~般的应用领域(如家庭、个人通讯等)提供远程控制机制。因此,这是一项很有前途和潜力的技术‘281。2.1.2TCP协议与HTTP协议传输控制协议(TransmissionControlProtocol,TCP)是一种面向连接的、可靠的、基于字节流的传输层通信协议【321。在简化的计算机网络OSI模型中,它完成第四层,即传输层所要求的功能,其下层为IP协议所在的网络层,上层为应用层,很多主机的应用层往往需要可靠的、流式的网络连接,但IP协议无法提供这样的机制,所以这些自然的需要交由传输层解决,TCP正是这样的协议,它在建立连接之后,通信双方都同时可以进行数据的传输,如同全双工的管道,TCP为了保证不丢包,它会给每个包提供一个序号,这样可以使得接收端对发送方的所有包实现按序接收,接收方在每收到一个包便发回一个确认,如果发送端在一个往返时延(RTT)内没有收到发送包的确认,则认为包已丢失并重传。TCP协议还会运用校验和函数在发送前和接收后来检验数据的正确性,这样的机制保证了网络传输数据的可靠性18J。超文本传输协议(Hyper-TextTransferProtocol,HTTP)是互联网上应用最广泛的一种网络协议,是一个基于请求与响应模式的、无状态的、应用层的协议,底层使用TCP控制传输,从而保证数据的顺序组织和正确性【39]。一次数据交互的过程是这样的:首先客户端向服务器发送一个请求,这个请求包含请求行、消息报头以及请求正文,之后服务器在解析请求并处理后,则返回一个HTTP响应到客户端,完成一次HTTP连接请求,HT7rP响应也是由三个部分组成,分别是:状态行、消息报头以及响应正文。6 第二章基础技术说明以及开发工具选型2.1.3JAVASCRIPT、AJAX与JQueryJavaScript是一种由Netscape和LiveScript发展而来的面向对象的基于对象和事件驱动并具有相对安全性的客户端解释性脚本语言,其最初目的是为了解决服务器端语言如Perl所遗留的速度问题,从而为用户提供流畅的浏览效果,但现今随着该项技术的不断发展,这项技术不仅可以提高用户的浏览速度,同时还可以为HTML网页添加用户操作响应、嵌入动态文本、控制cookies、检测用户的浏览器信息等等。它不需要服务器端的支持,可以直接嵌入HTML页面,所以减少了对服务器的负担。一般来说,完整的JavaScript包含:1)ECMAScript,描述了该语言的语法和基本对象。2)文档对象模型(DOM),描述了处理页面内容的方法和接口。3)浏览器对象模型(BOM),描述与浏览器进行交互的方法和接口[1U。AJAX全称为AsynchronousJavaScriptandXml(异步JavaScript与XML技术),是一套综合了多项技术的客户端网页开发技术。在传统的WEB应用中,每当用户提交表单向WEB服务器发出一个请求时,WEB服务器都会在处理后传回一个新的页面,然后客户端通过刷新,将这个页面显示出来,然而大量被传回的页面往往和前一个页面在HTML码上相差不大或是存在大量重复内容,这样导致效率低下同时浪费了很多带宽。AJAX可以通过操作XmlHttpRequest对象以异步的方式向服务器提出请求并取回必须的数据(并不是整个HTML页面),并在客户端通过JavaScript处理来自服务器的回应,刷新相应内容区域,这样不仅减小了服务器的负荷,同时也让用户感觉服务器响应“变”快了。AJAx最大的优点就是能在不更新整个页面的前提下维护数据,这使得WEB页面可以更快速的响应用户的请求,并避免页面上不必更改内容在网络上的重复传输【31。AJAX的请求流程如图2.1所示。JQuery是继Prototype之后的又一个优秀的跨浏览器的开源JavaScript库,它拥有简洁的语法和跨平台的兼容性,使得JavaScript开发人员可以很方便的进行遍历HTML文档、操作DOM、处理事件、执行动画和开发Ajax等操作【5J,尤其它强大的选择器和完善的AjaX封装,可以让开发人员专注于业务逻辑而无需关心复杂的浏览器兼容性。 第二章基础技术说明以及开发工具选型即时报价系统等,这些应用需要客户端时刻获取来自服务器端的最新数据,而客户端并不能准确判断本地数据何时会脏,需要向服务器发出一次请求。所以,对于这种应用需求,最好的方式是服务器能够自发地、实时地向客户端传送最新的数据,而无需客户端发出请求。服务器推即是这样的一种技术,它的基础思想是服务器主动发送信息。服务器发送一批数据,客户端接收,同时保持与服务器的连接并等待下一批数据的接收。常见的实现方案主要有[17】:(1)基于客户端套接口的服务器推技术,这种技术的两种实现模型是:1)利用FlashXMLSocket,它是在HTML页面中嵌入一个使用了XMLSocket类的Flash程序。JavaScript通过调用此Flash程序提供的套接口接口与服务器端的套接口进行通信,但该方案的缺点就是客户端必须安装Flash播放器;XMLSocket没有HTTP隧道功能,不能自动穿过防火墙;防火墙和代理服务器可能对非HTTP通道端口有限制。2)利用JavaApplet套接口,通过java.net.Socket或java.net.DatagramSocket或java.net.MulticastSocket建立与服务器端的套接口连接,从而实现服务器推送,这种实现模型的缺点是需要客户端安装java虚拟机,并且JavaApplet在收到服务器返回的消息后,无法通过JavaScript去更新HTML页面的内容。(2)基于HTTP长连接的服务器推技术(COMET),也称为反向Ajax技术,它的精髓就在于用服务器与JavaScript来维持与服务器的长连接,同时完成服务器端事件的浏览器端响应【41。一般而言,这种技术也有两种实现模型:1)基于Iframe及htmlfile的流方式,它通过在HTML页面中加入一个Iffame,其中的src属性设为对一个长连接的请求,服务器就能通过这个lffame帧向客户端传输数据了。2)基于AJAX的长轮询方式,JavaScript调用XMLHttpRequest对象发出HTTP请求,其响应处理函数会在服务器Response后执行,对HTML页面动态更新内容而无需刷新页面。其服务器模型如图2.3所示。9 手机管家在线系统的设计与实现浏览-霉印■—墨I1..。.............................。......一服务图2.3AJAXWEB模型2.1.5.NETFramework和ASP.NET.NET框架是微软公司用来实现XML、WebServices、SOA(面向服务的体系结构)和敏捷性的技术,.NET框架由两部分组成,即框架类库和公共语言运行库Il2|。.NET框架类库是微软提供的成千上万用于构建应用程序的类,这其中的每个类都可以有属性、方法以及事件,这三个类的成员公开给外界,可以让程序员方便地了解并使用这些基础类,从而使系统中最普遍、最繁琐的编程任务更易于完成。如File类用于表示硬盘中的文件并完成与文件操作相关的任务、Random类用于生成随机数等。微软使用命名空间来管理这一万多个框架基础类,命名空间仅仅是一个类别,如用于处理SQLSERVER数据库的类都位于System.Data.SqlClient命名空间中,当编辑的页面需要使用一个基础类库时,必须先指出这个类所关联的命名空间。程序集(assembly)就是保存这些类所在硬盘上的DLL文件,如ASP.NET框架中所有的类都位于System.Web.dll的程序集中,程序集是.NET框架中最基本的部署、安全和版本控件单位,它分为私有的和共享的两类,前者只能用于一个应用程序,而后者可以用在同一个服务器端上的所有应用程序,同样,在应用程序能使用程序集中的类之前,也必须为这个程序集添加一个引用。所以在程序集和命名空间的框架类管理机制中,如果希望使用.NET框架中的任何类,必须要做两件事情,第一,在应用程序中引用包含这个类的程序集;第二,应 第二章基础技术说明以及开发工具选型用程序导入这个类所关联的命名空间。公共语言运行库(CLR)用于执行MSIL(微软中间语言)代码。.NET框架只理解MSIL,当使用C拌和VisualBasic.NET这样的语言编写应用程序时,其相应的编译器会首先将代码转换为MSIL,这是一种面向对象的、底层的、平台无关的汇编语言,当程序正式运行时,JITTER(Just.In.Time编译器)把生成的MSIL代码实时编译成机器码并运行。ASRNET是微软.NETFramework的一部分,它用于处理WEB开发相关的问题,在项目研发过程中可以利用ASP.NET相关技术构建WEB应用程序。在ASENET中,准备用于处理的请求,必须封装为HttpWorkerRequest类型的对象,这是一个抽象类,定义在System.W曲命名空间中,是一个很底层的类,可以通过其相关的成员方法获得一些关于处理请求的信息,如请求的协议、请求参数、请求体内容等等。System.W曲.HttpRuntime类中的ProcessRequest静态方法是整个ASRNET服务器处理的入口,当HttpRuntime收到请求之后,将会通过HttpWorkerRequest传递的参数进行分析和分解,并创建用于应用程序处理用的对象,主要有HttpRequest类型实例和HttpResponse类型实例,前者包含了请求中的各种参数,如请求类型、Url、请求参数、请求中的Cookie参数等等,后者则提供了回应给客户端的状态码、Cookie集合、字符流等等。另外还有HttpConteXt类型的上下文对象用来在ASRNET服务器的处理过程中传递所有需要的参数,如当前请求的HttpRequest请求参数对象、HttpResponse回应处理对象、HttpSessionState会话状态对象以及HttpApplicationState全局状态管理对象等等;HttpApplication类型的对象用于处理请求,利用.NET中的事件机制,通过在处理过程中依次发出的多个事件,将这个处理过程分解为多个步骤,在处理管道中完成请求的处理[211。 手机管家在线系统的设计与实现请求响砬图2.4HttpApplication处理管道在ASP.NET4.0版本中,提供了19个标准事件[”1,管道内部的处理过程是固定的,在服务器处理请求的各个阶段,伴随着处理的进行,依次触发的对应事件大致有:1)BeginRequest_一标志着ASP.NET服务器处理工作的开始;2)AuthenticateRequest和PostAuthenticateRequest--检查当前请求用户的身份;3)ResolveRequestCache和PostResolveRequestCache一缓存结果的检查:4)PostMapRequestHandler--获得了一个用于处理请求的处理程序Handler;5)AcquireRequestState和1, 第二章基础技术说明以及开发工具选型PostAcquireRequestState--获取用户在以前保存的专属数据:6)PreRequestHandlerExecute和PostRequestHandlerExecute--进行处理工作;7)ReleaseRequestState和PostReleaseRequestState一释放状态数据;8)UpdateRequestCache和PostUpdateRequestCache--缓存结果的更新;9)EndRequest_一处理请求结束,这个事件之后,处理的结果将被回应到浏览器,完成服务器的处理工作。程序员可以借助自定义的请求处理程序对相应事件进行捕获并处理,ASENET中提供了两种处理程序接口,分别是用于同步处理的IHttpHandler接口和用于异步处理模式的IHttpAsyncHandler接口。2.2开发工具选型针对WEB应用研发的开发工具选型工作主要包括开发语言的选型、集成开发环境的选型、数据库的选型以及信息服务器的选型。2.2.1开发语言选型ASP.NET技术是由微软在.NETFramework框架中用于开发WEB应用程序的类库,它提供了ASP.NET网页处理、扩充以及HTTP通道的应用程序与通信处理等功能,使用ASRNET技术,其主要优点有:1)可管理性。由于ASENET使用基于文本的、分级的配置系统,从而简化了配置服务器环境以及WEB应用的工作,并且在不同环境中也可以较方便的改变配置以适应新的环境;2)易于部署。只需简单地将由ASENET所支持语言编写的动态页面复制到服务器上,即可完成部署,甚至都不需要重新启动服务器;3)跟踪和调试。ASP.NET的跟踪服务可在应用程序级别和页面级别调试过程中启用,可以选择查看页面信息,或者使用应用程序级别的跟踪查看工具查看信息。同时支持使用.NETFramework调试工具进行本地、远程调试;4)移动设备支持。ASP.NET支持任何设备的任何浏览器,开发人员可以使用针对桌面浏览器的编程技术来处理新的移动设备;5)扩展性和可用性。ASP.NET被设计为可扩展的、具有特别专有功能来提高集群的、多处理器环境的性能。ASENET是独立于语言之外的,因此开发人员可以选择最适于应用程序的语言,一般而言,C弹是相对其他比较常用的,它是微软公司推出的一种基于.NET框架、面向对象的高级编程语言,衍生自C和C++,但在继承C和C+十强大功能的同时去掉一些它1气 手机管家在线系统的设计与实现们的复杂性,例如没有宏和多重继承,它综合了VisualBasic简单的可视化控件和C++的高效率,因此,Ci;}其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持使它成为针对.NET开发的首选语言。2.2.2集成开发环境选型MicrosoftVisualStudio(简称VS)是微软公司的开发工具包系列产品,其中包含了诸如UML工具、代码管理控制工具、集成开发环境等等。使用VS可以用来创建Windows平台下的Windows应用程序和WEB应用,也可用来创建智能设备应用程序和Office插件等等。VS系列自VisualStudio,NET版本将.NET框架引入了受控代码开发环境以来,便可使用ASP.NET开发WEB应用程序,经过版本的不断更新,VS对。NET框架的支持力度越来越大,因此,VisualStudio是基于ASENET的WEB应用开发的首选工具。2.2.3数据库选型MS-SQLSERVER是由Micriosoft、Sybase和Ashton—Tate三家公司共同开发的关系型数据库管理系统,它相对DB2、Oracle等大型商业数据库操作简单,较易部署,但又有着不俗的表现,所以广泛应用于中小型系统的数据库后台系统,同时,它也是与Windows平台上中型数据库的首选。2.2.4信息服务器选型IntemetInformationServices(简称IIS,即互联网信息服务)是由微软公司提供的基于运行MicrosoftWindows的互联网基本服务,是一种WEB服务组件,其中包括WEB服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等服务。相比其他信息服务器,IIS具有以下优势:1)作为操作系统的服务组件的形式提供,与Windows操作系统具有较高的集成度,配合程度也较高,具有较好的性能表现;2)配置简单,IIS的图形化管理界面较易部署3)自从IIS6对安全性作出大幅改进以来,IIS与,NET平台相互倚靠,安全方面具有不俗的表现。14 第二章基础技术说明以及开发工具选型2.3本章小结本章首先详细介绍了设计手机管家在线系统的一些基础且必不可少的知识,其中包括:基于互联网的远程控制技术,TCP协议与HTTP协议,JAVASCRIPT、AJAX与JQuery技术,服务器推技术,.NETFramework和ASP.NET技术等等。其次针对系统的开发工具选型作了简单介绍,其中包括:开发语言选型、集成开发环境选型、数据库选型以及信息服务器选型。 手机管家在线系统的设计与实现第三章手机管家在线系统的总体设计由于移动设备的低带宽,低功耗的限制,所以在设计手机管家在线系统时不仅要保证手机客户端在低带宽、低功耗的状态下长期运行,同时还需要系统能够在任何时刻实时地、高效地获取到手机端信息,所以系统各个部分的相互联系、分工以及信息在各部分之间的传输机制成为系统的重中之重。本章在前一章基础知识之上,将继续根据该项目的系统设计目标与原则制定出系统的总体框架,并在此基础上对将要实现的系统进行功能模块划分以及数据库的逻辑结构设计。3.1系统设计目标该项目旨在为智能手机用户提供一个用于在线管理绑定手机的信息管理系统,注册用户只要登录网站,便可在网页上方便地对手机端诸如短信息、通话记录、通讯录以及日程计划等各种信息的管理,改善手机端因操作不便、屏幕尺寸过小等弊端而导致的用户体验不佳的问题,不仅如此,用户还可以通过该在线系统发送指令,对绑定手机进行远程控制,如发送短信息、设置静音、返回定位信息等等,从而提高智能手机用户的工作效率、增强智能手机的安全性。3.2系统设计原则手机管家在线系统应该在准确、低流量的信息传输机制的基础上实现手机信息在WEB端实时、友好地在线管理。(1)准确信息可以在信息传输管道中准确的传输是该系统的基础性需求,由于手机端网络信号的不稳定性以及智能移动终端与PC端的平台差异性,所以该系统的信息传输与类似PC端之间或手机端之间同构网络内部的信息传递较为不同,因此在本系统中,如何在PC端与手机端这样的异构网络之间建立准确的信息传输机制是非常重要的。(2)高效、低流量由于手机具有较低的电量和数据流量,目前一般的智能手机只具有一天到两天的待机时问,数据流量则根据用户所选择的套餐而定,但一般而言也仅仅在50M到100M之间,因此,这样的制约要求手机端设计的客户端可以尽量在节电的前提下保证与服务16 第三章手机管家在线系统的总体设计器端的信息传输,同时信息传输机制以及数据协议的合理设计不仅可以减少数据流量的使用,而且由于数据传输是手机端电量消耗的主要部分,因此这个举措也在一定程度上降低了手机端的电量消耗㈤。(3)实时手机管家在线系统要求手机端或WEB端的新操作、新信息可以在WEB端或手机端得到实时地展现和处理,例如手机端的新短信如果没有在收到的第一时间发送至WEB端,则用户则无法在网页上及时看到新短信的内容,或者用户在页面上的短信发送命令没有及时地传输到手机端上,则用户绑定的手机无法按照用户的需求实时地通过手机端将短信发送出去,因此,在两者之间建立的信息传输机制需要及时地将信息投递给对方并获取对方产生的新信息。(4)界面友好手机管家在线系统是为智能手机用户提供了一个用于手机信息管理、远程控制的平台,因此在WEB端的设计中,需要照顾到PC、手机端操作的差异性,使得用户在WEB端页面中可以容易地、高效地完成对手机的控制和手机端信息的查看。3.3系统总体框架手机管家在线系统由三个部分构成,分别是手机客户端、WEB端以及服务器端。(1)手机端手机客户端常驻于手机后台,主要作用是:1)监听手机事件,对感兴趣的事件(如短信息的发送、接收,拨打、接听电话,联系人更改,增加、删除日程计划等)进行捕获并通过数据交互通道同步至服务器端。2)监听WEB端发来的操作指令(如发送短信,手机静音,新建、编辑和删除联系人等)并进行相应操作,处理后向服务器反馈操作结果。(2)WEB端WEB端则为用户提供友好的操作接口和显示界面,可以让用户在页面上对绑定手机方便地、实时地进行信息的检索和操作指令的下达,并且还会对一些表单的部分填写信息做初步的正确性验证。(3)服务器端服务器端是整个手机管家在线系统的中心环节,其主要作用有:1)为整个系统提 手机管家在线系统的设计与实现供必要的服务环境以满足系统需求,如利用服务器的存储容量优势通过数据库持久化用户手机上的各种信息(如短信息、联系人、通话记录、日程计划等)、借助应用程序服务器软件将业务逻辑提供给客户端去调用等等。2)沟通手机端与WEB端之间的通信,例如手机端产生的新数据(即需同步信息)经由手机端与服务器的数据通道到达服务器端,服务器解析该信息内容并成功保存至数据库后,会向手机端反馈处理结果,同时服务器会查看保存的在线WEB端列表,如果相应用户WEB端在线,则会对该用户登陆的WEB端发出通知并更新相应部分内容,从而实现WEB端与手机端的同步更新。同理,用户在WEB端对手机进行的远程操作指令(如发送短信息、新建或修改联系人信息、手机静音等操作)经由WEB端与服务器的数据通道到达服务器端,服务器收到指令之后会向手机端发出操作指令,手机端对指令处理成功后,将状态码返回给服务器,最后服务器根据状态码将操作产生的信息变化持久化到数据库中,从而完成通过WEB端对手机端的指令下达。系统的总体框架如下图所示t表现层业务层应用支撑层信息服务器统一身份认证数据交互机制数据层基础层图3.1系统总体框架18 第三章手机管家在线系统的总体设计3.4系统功能模块划分基于手机的通用特性以及日常用户行为的普遍性,本文确定了该系统的服务器端从功能上主要由通讯信息(包括短信与通话记录)管理模块、通讯录管理模块、日程计划管理模块以及工具箱模块等四大功能模块构成,手机客户端则由资料备份、资料删除、资料恢复构成。图3.2服务器端功能模块划分以下是服务器端功能模块说明:通讯信息管理模块:主要负责用户的管理日常通讯信息的需求,如发送、群发、查看、删除手机短信,查看、删除通话记录等功能。通讯录管理模块:手机通讯录日常管理,如新建、编辑、查看、删除联系人通讯信息、联系人的分组管理等功能。日程管理模块:具有新建、编辑、查看、删除日程计划等功能。工具箱模块:为用户提供了多种实用的工具,如导出短信、通话记录、联系人以及日程计划,远程静音、远程定位、远程锁机等诸多实用功能。本文的后续章节则根据服务器端的四大功能模块的设计和实现一一展开说明。该系统的手机客户端的设计与实现不在本文的讨论范围,这里仅对手机客户端的各个功能模块做简要说明:资料备份模块:将手机端的通讯信息、通讯录、日程计划等资料上传至服务器端作为备份。资料删除模块:当手机端删除通讯信息、通讯录、日程计划等资料时,可以同时选择是19 手机管家在线系统的设计与实现否删除服务器端备份资料。资料恢复模块:将服务器端备份的通讯信息、通讯录、日程计划等资料恢复至手机端。3.5数据库逻辑结构设计数据库设计(DatabaseDesign)是指对于一个既定的应用环境,构造一个目前所能达到的、最优化的数据库模式,建立数据库以及应用系统,使它们能够互相协作,有效地存储数据,从而满足该系统用户的应用需求和数据持久化需求【6】。由于数据库是信息系统的核心和基础,而且数据库应用系统又较为复杂,所以数据库的设计就需要慎之又慎,不可能一蹴而就,而是一种“反复探寻,逐步求精”的过程[33】。通常,实体一关系图(Entity.RelationshipDiagram,简称E.R图)是建立数据模型的常用工具,图中会包含实体、关系和属性三种基本成分,其中实体用矩形表示,矩形框内写明实体名称,属性用椭圆框表示,并用无向边将其与相应实体联系起来;联系用菱形表示,框内写明联系名,并用无向边分别于有关实体连接起来,同时在无向边旁标上联系类型,有(一对一,用1:1表示;一对多,用1:n表示;多对多,用m:n表示)1191。建模人员正是用实体~关系图来表示现实问题的方方面面,另外,该模型通俗易懂,即使不熟悉建模的用户也能够轻易读懂,因此,E—R图常作为设计人员与用户的沟通工具,从而更准确地获得用户的实际需求及潜在需求。该系统的E.R图如下所示:图3.3系统E.R图 第三章手机管家在线系统的总体设计以下是数据库中一些关键表的字段详细说明:表3.1User用户表字段名类型宽度可否为空备注n锄e卜『、,arChar30否用户名,主键first—.nameN、,arChar50是名lastflameN、,arChar50是姓positionNVa疋bar100是职位companyNVa疋har200是公司passwordII、,arChar50否密码register__timeDateTime否注册时间bindj)honeN、自rChar20是绑定手机rankInt否级别mtroNVhChar500是简介用户表是这个系统的中心表,它记录了注册用户的基本信息,其中,用户密码通过MD5的32位加密保存;级别字段用于后续版本的系统扩展,可以为不同级别用户提供多种多样的服务;bind__phone是该用户的绑定手机,目前系统只支持一个用户名绑定一个手机号,刚注册时用户是没有绑定手机的,用户需要登录后在设置页面填写手机号完成绑定(或通过手机端相关页面进行操作)。2I 手机管家在线系统的设计与实现表3.2UserSet用户配置表字段名类型宽度可否为空备注USemameNWhat30否用户名,主键main—.defaultInt否主界面默认页sms——defaultInt否通讯界面默认页sms__pagesizeInt否短信每页显示数sms_deltipBit否短信删除提示sms_dehypeBit否删除方式sms_newtipBit否新短信到来提示sms_rmrepeatB“否群发时去除重复联系人cnt__pagesizeInt否联系人每页显示数cnt_deltipBit否联系人删除提示cnt——defaultsortBit否联系人默认排序cnt_showtypeBjt否联系人显示方式cnt_autoupdateBit否联系人自动更新crc_pagesizeInt否通话记录每页显示数crcdeltipBit否通话记录删除提示crc_newtipBit否新通话记录到来提示用户配置表记录了用户的详细配置信息,包括WEB端的页面配置、显示配置以及操作方式的配置。其中,主界面默认页可选通讯页、联系人管理页、日程管理页;删除方式可以选择彻底删除或删除到回收站,前者不留痕迹,手机及服务器端均删除该短信,后者则会在服务器端的用户短信回收站中保留一个备份。 第三章手机管家在线系统的总体设计表3.3PhoneList手机型号表字段名类型宽度可否为空各注p_idDecimal18否标示符,自动编号,主键companyN、,arChar50否手机厂商typeNvarChar50否手机型号手机型号表用于保存各大厂商的主要型号的手机信息,便于用户在填写个人手机信息时选择对应型号的手机,从而提供更有针对性的服务。表3.4Phone手机信息表字段名类型宽度可否为空备注numberNvarChar20否手机号,主键1melNChar15否手机的IMEI码belong_userNVarChar30否所属用户OSNVarChar50是手机操作系统phoneDecimal18否手机型号sync—.callBit否是否自动同步通话记录syncjnsgBit否是否自动同步短信息synccontactBit否是否自动同步联系人sync——scheduleBit否是否自动同步日程表手机信息表保存用户绑定过的手机信息,其中,手机型号是外键,参照手机型号表中的id字段,四个同步字段用于设置手机端同步方式,如果为true,则手机端会自动将新产生的通话记录、短信息、联系人以及日程表同步到服务器端,反之则由用户手动同步。 手机管家在线系统的设计与实现表3.5ContactMenu联系方式类型表字段名类型宽度可否为空意义cidDecimal18否标示符,自增,主键——type-nameN、,arChar50否类型名称type—name_engNVarChar50否类型英文名称type_groupN、,arChar50否类型分组类型方式类型表记录了各种联系方式的信息,主要用于生成联系方式的下拉菜单便于用户在填写联系人通讯录时选择,如联系人的QQ号即为即时通讯分组中的联系方式,英文标示为instinctqq。表3.6ContactName联系人表字段名类型宽度可否为空意义cnidDecimal18否标示符,自增,主键refidDecimal18否用户手机中联系人唯一标示符belong_userN、,arChar30否所属用户lastnameNVarChar50是姓first——nameNVarChar50日名疋groupingNvarChar50否分组companyNVarChar200是公司positionN、自rCbarlOO是职位introN、,打Char500是简介联系人表储存用户的通讯录中所有联系人的基本信息,这里并不包含每个联系人的联系方式,由于联系人和联系方式为一对多的关系,因此将其拆分为两个表,即联系人表和联系方式表。24 第三章手机管家在线系统的总体设计表3.7ContactMethod联系方式表字段名类型宽度可否为空备注cmidDecimal18否标示符,自增,主键contactidDecimal18否所属联系人contac£卯eDecimal18否联系方式类型contact——methodNVarChar200是联系方式联系方式表保存了用户通讯录中所有联系人的所有联系方式,其中,contact—id为外键,参照ContactName表的id;联系方式也是外键,参照联系方式类型表中的id;contact—method为联系方式内容。表3.8Schedule日程计划表字段名类型宽度可否为空备注SidDecimal18否标示符,自增,主键—^refidDecimal18否用户手机日程计划唯一标示符belong_userN、,arChar30否所属用户subjectNvarChar200是主题locationNVarChar200是地点starttime13ateTime否开始时间endtimeDateTime否结束时间日程计划表记录了用户的日程计划相关信息,其中,starttime指起始时间,endtime指结束时间。 手机管家在线系统的设计与实现表3.9CallRecord通话记录表字段名类型宽度可否为空备注cidDecimal18否唯一标示符,自增,主键——refidDecimal18否用户手机中通话记录标示符typeInt否通话记录类型from_phoneN、白rChar20否呼叫电话号码to__phoneN、褂Cbar20否接听电话号码tlmeDateTime否呼叫时间durationInt否通话时间belonguserN、,arChar30否骶霭甩户通话记录表记录了用户的拨打、接听电话情况,其中,type为通话记录类型,可选值为1——接听电话,2——拨打电话,3——未接电话;表3.10Message短信息表字段名类型宽度可否为空备注midDecimal18否标示符,自增,主键belonguserN、,arCbar30否妖属用户refidDecimal18否用户手机短信息唯一标示符fi'omjphoneNV打Char20否发送方号码to_phoneNVarChar20否接收方号码hmeDateTime否发送时间messageNVarChat500是短信内容短信息表记录用户手机的接收短信和发送短信。除外,还有UserContact表(保存注册用户填写的通讯方式)、HistoryOperation表(用于保存用户的历史操作)、PhoneNewOperate表(用于保存用于在离线状态下进行的手机操作,当手机登录服务器时,会自动获取离线操作,并完成实际操作)、HistoryMessage表(用户的删除短信)、HistoryCallRecord表、HistoryContactName表、HistoryContactMethod表等等。 第三章手机管家在线系统的总体设计3.6本章小结本章重点阐述了手机管家在线系统的总体设计思路,主要包括系统的设计目标、原则以及总体框架,并在此基础上对系统的功能模块进行了划分,最后介绍了数据库的逻辑结构设计。 手机管家在线系统的设计与实现第四章手机管家在线系统的详细设计手机管家在线系统主要有通讯管理模块、联系人管理模块、日程计划管理模块以及工具箱模块四大部分组成,下面分别介绍系统的通信机制以及各个功能模块的详细设计思路,最后简要介绍一下与手机客户端对接工作。4.1系统通信机制设计手机端和WEB端需要实时的获取对方的新操作指令和新信息,那么服务器端就需要一种机制可以随时将新信息“推”到客户端(手机端或WEB端),但如果采用客户端请求,服务器响应(即客户端“拉”)这种传统的机制,就需要通过客户端轮询(即每隔一段时间客户端就向服务器端发出获取新数据的请求),因为客户端不知道服务器端的新信息、新操作指令何时会产生,客户端想要主动获得服务器端最新数据的唯一途径就是不断的向服务器发出请求,但这样产生的问题是,若间隔时间过长,则会不能及时获得最新的信息,从而可能达不到系统实时性的要求,若间隔时间过短,-N客户端需要在轮询上消耗太多的资源;二则浪费了带宽。尤其对于手机这样资源有限的客户端,效率低下、带宽浪费较多则会成为软件的致命缺陷而难以推广【221。服务器推技术的产生正是为这类实时性要求较高的应用而服务的,它一改客户端请求,服务器应答的传统方式,而是通过相关技术,让服务器将新信息主动“推”到客户端,从而满足系统的实时性需求[241。在4.1.1和4.1.2章节中,本文将会对WEB浏览器端与服务器以及手机端与服务器两个方面分别详细描述它们之间数据交互机制的设计思路。系统的总体设计思想如图4.1所示: 第四章手机管家在线系统的详细设计图4.1服务器端与WEB端、手机端的信息交互设计思想4.1.1浏览器客户端与服务器的数据交互机制设计针对本应用的特性,综合服务器推技术各种方案的优劣,最终本文决定采用基于HTTP长连接的Ajax长轮询服务器推技术作为浏览器端和服务器端的数据交互机制,成熟的JQuery库对Ajax的异步请求做了封装,屏蔽了语法的复杂性和不用平台的差异性,可以让用户更多的关注业务逻辑本身。传统Ajax的异步请求是这样的【3】:(1)调用newXMLHttpRequest0或newActiveX0bject(“Msxml2.XMLHTTP’’)或newActiveXObject(Microsoft.XMLHTTP)gI]建XMLHTTP对象用于异步请求,这里的三种创建方式是为了适应不同的浏览器。(2)通过XMLHTTP对象的open方法,打开与服务器端的连接,同时定义指令的发送方式,服务网页(即uRL)和请求权限等。该方法有五个参数,分别是:1)request—type,即发送请求类型,常用的类型为POST或GET。2)url,即请求服务的网页。3)asynch,默认为true,即希望使用异步连接。4)usemame,若该网页需要身份验证,可制定用户名。5)password,用于身份验证的密码。通常调用时只制定前三个参数,如request.open(“GET",url,true)。’9 第四章手机管家在线系统的详细设计是对同一页面的重复访问(因为url相同),因此浏览器取出缓存的页面作为响应,从而导致无法再次向服务器发出请求,保持长连接,所以增加一个随机值参数避免重复同访问一个url。该请求返回会存在两种情况:1)对应登录名所绑定的手机端有新信息或新指令发送到服务器端。2)间隔时间到,需要重新请求。当1)情况发生时,请求返回时回调函数中的data即为服务器的响应内容(产生的新信息或新指令),浏览器根据响应内容作相应处理,如Logout(验证失败或手机端强制WEB端退出)——WEB端退出、PhoneLogin(手机端登录)——WEB端弹出通知、AddMessage(新发送或接收短信内容)——WEB端通过Ajax局部刷新短信列表等等。浏览器端处理完响应内容后,马上再次调用waitMessage函数,向服务器重新发出异步请求,继续监视手机端的新变化。这样手机端的新信息、新指令则实时的在WEB端得到展现,从而实现WEB端对手机端的实时监控。心跳机制的引入(即浏览器端发向服务器的异步请求在间隔时间到期时会被强制返回,并重新发出请求)不仅可以使服务器及时了解到WEB端的登录情况并作出响应(如通知绑定手机WEB端下线),同时也可以避免服务器端产生大量无效的死连接,加重服务器负担。另外,服务器的Session保存一般在20分钟左右,因此,若希望使浏览器的Session不会过时,也需要心跳机制的引入。根据经验,一般心跳可以设在15.20分钟,心跳如果过快,则浪费带宽,同时也加重服务器负担,若心跳过慢,则往往满足不了实时性的要求。WEB端发出指令时的处理是这样的,当用户点击WEB端的某个操作按钮时(如发送短信、编辑联系人等),浏览器会向服务器发出异步请求,请求的方式为:$.post(”Operate.ashx?ask=”+Math.random(),{action:”[command]",content:[string]},function(data){⋯⋯,),其qbOperate.ashX是服务器端用于接收WEB端操作请求的处理页面,传输数据中,action参数代表操作命令标示,比如说SendMsP发送短信,Deletecontact’一删除联系人等,content为该操作指令的必要信息。在服务器获得WEB端请求后,会查找手机端的在线列表,即与服务器端保持长连接的手机端的HTTP请求列表,若该WEB端对应手机端在线,即存在对应的HTTP监听请求,则将WEB端指令返回给手机端作为响应。手机端在获得响应后,会根据指令内容进行响应处理,处理完成后会将处理结果通过相应的函数接口(后缀为Res)发回给服务器端,服务器再根据手机端的处理结果完成持久化并将处理结果返回给WEB端ajax请求的回调函数,回调函数根据返回码data值判断服务器的处理结果,并对浏览器端作出必要的通知或局部数据刷 手机管家在线系统的设计与实现新。4.1.2手机客户端与服务器的数据交互机制设计手机客户端由于其本身的硬件以及特性与PC的差别颇大,所以在各方面的设计上往往不能照搬PC上WEB端的设计方案,手机端电量有限,数据流量也很宝贵,因此,数据的交互机制需要具有占用资源少,节省数据流量的特点【23f。客户端与服务器端通过Socket保持长连接是其中的一种解决方案,TCP提供的全双工数据流传输服务可以保证通道两端在任意时刻发送、接收数据,同时TCP协议具有超时重传和拥塞控制等可靠性保证,因此,传输层采用TCP协议的Socket长连接常常被一些实时性、安全性要求较高的系统中所使用,但该方案若使用在本系统的手机端则会出现一些问题,如1)手机本身有电量限制,如果使用Socket长时间保持连接,则耗电非常严重,这样的系统缺点对于该这种需要手机几天、甚至几个月保持长时间连接的应用将会是一个灾难。2)手机网络的情况复杂,常常会有信号时断时续的问题,因此需要实现很复杂的重连机制,并且手机网络会通过电信运营商的网关、防火墙等,长时间的Socket连接往往不被允许。因此,根据以上分析,本文采用了基于HTTP连接的信息交互机制。同时,客户端采用Java的NIO技术,使HTTP可以实现异步请求,不会长时间保持连接,从而解决了Socket连接的耗电问题。手机端在登录服务器成功后(即用户名和密码验证通过后),后台则会立即向服务器端发出HTTP请求,地址结构为:PhoneOversee.ashx?action=[type],其中,type取值为get,则表示向服务器获取数据,请求到达后,服务器会将其加入客户端请求列表中(和服务器维护的浏览器端发出的请求列表不同,但属于相同数据结构),在有需要推送至该手机端的新数据产生或请求超时之前不会被响应。手机端在服务器响应到达后,会根据响应正文进行处理,如Timeou卜一请求超时,不作处理、SendMsg-发送短信等。手机的操作结果会通过手机端的发送数据通道传至服务器,服务器再根据操作结果做相应同步处理和持久化操作。手机端在处理完服务器响应后,立即再次向服务器发出同样的异步请求,从而实时地获得服务器端的推送信息。同样,这里请求超时的设置也同浏览器端的思考是一样的,引入心跳机制的好处是:1)让服务器了解手机端登录状态。2)避免服务器端产生大量死链接。3)保持与服务器的会话不过时。手机端除了不断的通过HTTP请求向服务器发出监控请求,其自身也会在登录服务1’ 第四章手机管家在线系统的详细设计器后开启监控线程,将捕捉到的事件(如新短信到来、打出电话等)通过HTTP请求同步至服务器,地址为PhoneOperate.ashx。手机端监控环节由团队其他相关人员负责,这里不做赘述。4.1.3服务器端对监听请求列表的维护手机端和WEB端一旦登录,便与服务器端保持了连接,直到客户端离线。当大量客户端登录服务器并长时间保持连接时,服务器端就会积累很多客户端HTTP请求,如何维护这些HTTP请求以及如何在需要为某个请求响应时快速找到该请求对于服务器的处理效率影响显著。散列表(HashTable,也叫哈希表),它是根据键值(Key.Value)直接访问的数据结构[291,一个键通过哈希函数,得到的值映射到散列表中的一个位置作为访问索引,以加快查找的速度,在冲突较小的情况下,查找的时间复杂度可以接近O(1)。散列表可以用作储存客户端的请求的数据结构,当客户端登录成功时,服务器会保存该用户登录的登录名到Session中,之后当客户端发送HTTP监听请求时,服务器会取出Session中的登录名并进行哈希,根据得到的哈希值作为依据将登录名以及请求一同映射到哈希表中。相关类的结构如下所示:classAsynResult:IAsyncResult{privatebool—IsCompleted=false;privateAsyncCallbackcb;privateobjectextraData;//以上是实现IAsyncResult接E1privateStringuserName;//用户名privateStringtype;//请求类型,取GET(监听请求,客户端的HTTP长连接)或OP(客户端发出的操作请求,等待操作结果)privateHttpContextconteXt:∥HTTP请求上下文)构造好的哈希函数的方法,应能使冲突尽可能地小,因而应该具有较好的随机性,这样可以使得到的哈希值(即可看做散列地址)均匀地分布在哈希表的整个地址空间中。常见的哈希算法的构造方法有㈣:1)直接定址法,以关键字key或其加上某个常数值C作为哈希地址。2)除留余数法,以关键字key除以n所得余数作为哈希地址,n的选取一般为质数或不包含小于20质因子的合数,并且小于等于哈希表长。3)平方取中法,取关键字平方后的中间几位作为哈希地址。4)折叠法,适合用于关键字位数较多,而地址区间较小的情况。5)数值分析法,通过对关键字进行分析,发现其变化规律,从气1 手机管家在线系统的设计与实现而构造出响应的哈希函数。用于查找的哈希函数通常可以简单的划分为加法哈希、位运算哈希、乘法哈希、除法哈希,查表哈希和混合哈希。其中位运算哈希以其运算速度较快的特点得到广泛的使用,这类型哈希函数通过利用各种位运算(常见的是移位和异或)来充分混合输入元素,因此本文结合移位哈希的折叠法和除留余数法设计标准的旋转哈希函数:introtatingHash(Stringkey,intprime){inthash,i;for(hash=key.1ength(),i_0;i
此文档下载收益归作者所有