资源描述:
《手机日志系统的设计与实现本科毕业设计论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
本科生毕业论文手机日志系统的设计与实现 毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作者签名: 日 期: 指导教师签名: 日 期: 使用授权说明本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期:年月日导师签名:日期:年月日 注意事项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照任务书、开题报告、外文译文、译文原文(复印件)次序装订 指导教师评阅书指导教师评价:一、撰写(设计)过程1、学生在论文(设计)过程中的治学态度、工作精神□优□良□中□及格□不及格2、学生掌握专业知识、技能的扎实程度□优□良□中□及格□不及格3、学生综合运用所学知识和专业技能分析和解决问题的能力□优□良□中□及格□不及格4、研究方法的科学性;技术线路的可行性;设计方案的合理性□优□良□中□及格□不及格5、完成毕业论文(设计)期间的出勤情况□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)指导教师:(签名)单位:(盖章)年月日 评阅教师评阅书评阅教师评价:一、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格二、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格建议成绩:□优□良□中□及格□不及格(在所选等级前的□内画“√”)评阅教师:(签名)单位:(盖章)年月日 西南科技大学城市学院本科生毕业论文V教研室(或答辩小组)及教学系意见教研室(或答辩小组)评价:一、答辩过程1、毕业论文(设计)的基本要点和见解的叙述情况□优□良□中□及格□不及格2、对答辩问题的反应、理解、表达情况□优□良□中□及格□不及格3、学生答辩过程中的精神状态□优□良□中□及格□不及格二、论文(设计)质量1、论文(设计)的整体结构是否符合撰写规范?□优□良□中□及格□不及格2、是否完成指定的论文(设计)任务(包括装订及附件)?□优□良□中□及格□不及格三、论文(设计)水平1、论文(设计)的理论意义或对解决实际问题的指导意义□优□良□中□及格□不及格2、论文的观念是否有新意?设计是否有创意?□优□良□中□及格□不及格3、论文(设计说明书)所体现的整体水平□优□良□中□及格□不及格评定成绩:□优□良□中□及格□不及格教研室主任(或答辩小组组长):(签名)年月日教学系意见:系主任:(签名)年月日 西南科技大学城市学院本科生毕业论文V摘要:随着Internet和计算机技术的信息化变得越来越重要,越来越多的企业通过信息化技术来整合企业的资源,提高企业的市场竞争力.。随着企业信息化的发展,企业信息系统变得越来越复杂,企业对信息系统安全性的要求也越来越高。为了保证信息系统的安全性,开发人员采用了多种技术来提高信息系统的安全性,其中日志技术是比较重要的一种。以J2ME为开发平台,利用Java提供强大工具,在手机上实现静态HTML技术所无法实现的计算处理、数据存储、与服务器的通信等功能。该日志管理系统操作简单并且为用户提供了日志分析功能,使用户能够分析企业信息系统的使用情况并对信息系统进行优化。而且J2ME不需要繁琐的格式,它提供友好的用户界面,同时可以在本地存储数据,节约网络流量。关键词:日志;J2ME;java;信息系统Thehandsetlogsystem'sdesignwithrealizesAbstract:(omitted)therestbecomesalongwithInternetandthecomputertechnology 西南科技大学城市学院本科生毕业论文Vmoreandmoreimportant,moreandmoreenterprisescometheconformityenterprise'sresourcesthroughtheinformationizationtechnology,enhancesenterprise'smarketcompetitiveness.Alongwiththeenterpriseinformationization'sdevelopment,theenterpriseinformationsystembecomesmoreandmorecomplex,theenterpriseisalsogettinghigherandhighertotheinformationsystemsecurerequest.Inordertoguaranteethatinformationsystem'ssecurity,thedevelopmentpersonnelusedmanykindsoftechnologiestoenhanceinformationsystem'ssecurity,theLogtechnologywasthequiteimportantonekind.AsdevelopstheplatformtakeJ2ME,providesthepowerfultoolusingJava,realizescomputationprocessingwhich,thedatastorageonthehandsetstaticHTMLthetechnologyisunabletorealize,andserver'sfunctionsandsooncorrespondence.Andthisdiarymanagementsystemmanagementsystemsimplicityofoperatorhasprovidedthediaryanalysisfunctionfortheuser,enablestheusertoanalyzetheenterpriseinformationsystem'sserviceconditionandtocarryontheoptimizationtotheinformationsystem.MoreoverJ2MEdoesnotneedthetediousform,itprovidesthefriendlyuserinterface,simultaneouslymayinthelocalstoreddatum,savethenetworkcurrentcapacity.keywords:log,J2ME,java,Informationsystem目录引言1 西南科技大学城市学院本科生毕业论文V第一章绪论31.1手机日志的开发环境31.2J2ME的介绍31.2.1J2ME的简介31.2.2J2ME能为开发者和用户提供的功能41.3数据库的介绍51.3.1MySQL的定义及概述51.3.2MySQL的特性51.3.3MySQL的应用61.3.4数据库的作用61.4eclipse的介绍7第二章系统分析82.1可行性分析82.1.1经济可行性分析82.1.2技术可行性分析82.2需求分析9第三章系统总体设计123.1系统的总体设计123.1.1系统设计目标123.1.2系统设计思路133.2系统总体构架133.2.1客户端和服务器的通信133.2.2系统总体构架143.2.3移动客户端153.2.4服务器端153.3系统流程图:16第四章服务器端的设计184.1数据库存储层设计184.2Web服务器子系统设计194.3服务器的代码实现和分析204.3.1处理浏览器通过日期查询日志请求204.3.2处理手机客户端下载日志请求214.3.3处理手机客户端上传日志请求22第五章客户端设计245.1手机客户端程序设计245.1.1客户端界面245.1.2浏览器端界面275.2程序的运行流程285.2.1手机客户端的程序流程285.2.2浏览器的程序流程29 西南科技大学城市学院本科生毕业论文V5.3手机客户端的代码实现和分析305.3.1解析从服务器下载的日志字符串305.3.2构造发送给服务器的字节数组31第六章总结326.1总结和展望32致谢35参考文献36 引言手机日志是方便您通过手机随时随地浏览和更新日志的一项服务,不管您身处何地,只要您的手机可以上网,就可以第一时间浏览他人的日志或者更新您自己的日志,您 用手机更新的日志可以同时显示在互联网上,在互联网上的所有日志您也可以随时用手机浏览,无需支付任何费用。有关资料显示,中国日志增长势头持续不减。随着移动网络技术的进步,中国手机网民目前已经达到2.77亿人,传统的互联网日志的需求,由此手机日志将成为新一代的网络娱乐主流。手机日志提供个人表达和交流的网络工具。在这里用户可以随时随地通过手机日志交友、聊天;通过日志、相片等多种方式记录个人感想和观点,还可以共享网络收藏完全展现自我。用户可以自己DIY喜欢的日志风格、版式,添加个性模块,更可全方位满足用户个性化。随着手机网络带宽的大力发展。很多传统互联网上的成功技术和应用也在手机上得到了应用和实现,更随着3G的到来。互联网上热门的事物也在手机上新兴起来,手机日志就是其中很有发展潜力的一个。手机日志作为互联网的新兴产物,在互联网世界得到了充分的发展。其自由、实时、突出个性的特点,在互联网世界掀起了一阵阵的狂潮。其实现本身的特点为普通文本的描述。手机日志最大最突出的优势就是比web日志方便,随时随地都可以访问自己的日志。一个突然及怪的想法,遇到意见新奇的事情。立马就可以喝别人分享。不管是在移动的公交车上,还是在什么地方旅游,只要你发现好玩的事情,好看的东西。只要拿出手机就可以轻松的发到自己的日志上面,增值业务的拓展提供切实可行的方案。手机日志是“一种表达个人思想和网络链接,内容按照时间顺序排列,并且不断更新的出版方式。” ①它倡导思想的交流和共享。” ②手机日志“个人传播,深度沟通,娱乐休闲”全方位的互联网新应用。与其它网络应用相比,手机日志更具深度沟通和民主化的潜质,能为主流媒体提供新闻和公众观点来源,为教育业和商业创造知识共享的环境,同时能为个人提供一个自我表达和自我价值实现的平台。”手机日志可以随时随地写日志,方便实用;③ 有专家认为日志是继E-mail、BBS、ICQ(中国的QQ)之后的第四种网络交往方式,是互联网著名的服务之一。博客网董事长兼CEO方兴东认为日志是网上的生活,是新的生活方式,日志有三个方面的应用:一是新的个人人际交流方式;二是以个人为中心的信息过滤和知识管理;三是以个人为中心的传播出版。 据TechWeb报道,通过不断更新的文字或图片与人交流。同时,随着手机日志的推广,日志现象也受到我国学界的广泛关注,许多学者从不同的学科视角,运用多种研究方法对日志进行了概念化或经验性分析。运用内容分析法,从历史的维度分析国内学界日志研究的进程和现状;指出国内日志研究的主要成就与问题;从一个侧面概览网络社会结构与社会行为研究的面貌。随着Internet和计算机技术的信息化变得越来越重要,越来越多的企业通过信息化技术来整合企业的资源,提高企业的市场竞争力.。随着企业信息化的发展,企业信息系统变得越来越复杂,企业对信息系统安全性的要求也越来越高.为了保证信息系统的安全性,开发人员采用了多种技术来提高信息系统的安全性,其中日志技术是比较重要的一种.。当前主流日志技术在可操作性和很大的限制,并且日志记录比较简单,没有提供日志分析的功能。 第一章绪论1.1手机日志的开发环境操作系统:MicrosoftWindowsVista程序语言:Java开发包:WirelessToolkit2.5.2,JDK开发环境:MYSQL数据库,eclipse,J2ME1.2J2ME的介绍1.2.1J2ME的简介当JAVA平台发展到JAVA2的版本以后,为了适应不同级别计算机硬件的开发需要,JAVA平台形成了三个主要分支:Java2,StandardEdition(J2SE):是为台式机而设计的,主要运行在Linux,Solaris,或MicrosoftWindows等操作系统上。Java2,EnterpriseEdition(J2EE):则是一个适合分布式的、多用户、企业级应用系统运转的平台。它以J2SE为基础,增加了处理服务器端计算的功能。Java2,MicroEdition(J2ME):和J2SE不同,它既不算是一个软件也不能算是一则规范。准确地说,J2ME是为了支持像PDA、手机等小型的嵌入式或移动设备而推出的一系列的技术和规范的总称。它借用了J2SE类库的一部分,使用了更少的API,而且其J2ME采用的JAVA虚拟机(JVM)比J2SE的JVM也要小得多。应该注意到,J2ME要支持的硬件平台也有很大差异,其中有比较高端的设备,例如电视机的机顶盒、网络电视等;也有比较低端的,像手机、寻呼机等。因此为了满足不同硬件的开发要求,J2ME规定了configuration的概念,Configuration对不同级别的硬件在所使用的JVM和基础API集合方面做了规定。 CDC和CLDC仅仅是对各类设备中最具共性的配置提供了基本的功能集合。但是,实际应用中,不同的设备之前存在着很大的差异。因此,我们在Configuration的基础上,又提出了Profile的概念。Profile规定的内容,是针对某一类设备所制订的规范和API,有了Profile以后,才真正有了可以建立一个可运行J2ME应用程序的完整环境。移动信息设备Profile(MobileInformationDeviceProfile或MIDP)以CLDC为基础,它是第一个制订完成Profile,也是第一个可供使用的J2ME应用程序运行环境。1.2.2J2ME能为开发者和用户提供的功能如前所述,MIDP出现最早,也发展最快,在此我们也仅讨论J2MEMIDP应用程序的开发。2002年10月,JCP(JavaCommunityProcess,参见http://www.jcp.org)推出了MIDP2.0的规范,和MIDP1.0相比,它大大加强了对用户界面、多媒体和游戏功能、网络连接功能的支持,同时将OTA应用程序下载包括到规范中来,另外还为无线信息设备提供了端到端(end-to-end)的安全机制。为了支持对声音的处理(例如播放WAV文件),MIDP2.0中增加了一个可选包ABB(AudioBuildingBlock)。在以前,ABB只包含在MobileMediaAPI(MMAPI)中,现在将其纳入到MIDP中来,开发者就可以不用依赖于MMAPI了。当然,如果使用了MMAPI,可以为移动设备开发更多的功能,比如可以在PDA上播放视频流等等。 对J2ME游戏开发的支持可能是开发者和用户都企盼已久的,MIDP2.0提供的游戏API使得游戏本身可以更充分的利用设备自身的图形处理功能。它的出现无疑大大简化了J2ME游戏的开发工作,同时也使得开发者可以更多地控制程序的图形处理性能。 在通信方面,MIDP1.0仅支持HTTP,MIDP2.0则增加了对HTTPS、报文、socket通信以及串口通信的支持。另外,MIDP2.0还支持服务器Push体系架构,这样,你的手机能够收到来自服务器的报警、消息或者广播,根据要求启动手机上的应用程序进行操作。支持Over-the-air(OTA)Provisioning是MIDP2.0的一个重要的新特点,它使得用户能够动态地部署和更新移动设备上的应用程序。新版的MIDP规范中规定了如何在移动设备上发现、安装、更新和删除MIDlet套件;同时,提供应用程序下载的服务提供商还能够判断该MIDlet套件是否能够运行在申请下载的设备上,并且从设备上获取安装、更新和删除的信息。MIDPOTA provisioning模型为移动服务提供商提供了单一、标准的部署MIDP应用程序的途径。该模型已经被众多技术领先的移动设备制造商和服务提供商所采纳。自从人类步入网络时代以后,网络安全始终是很一个关键的问题。MIDP2.0增加了强大的“端到端”的安全模型。一方面,MIDP2.0支持HTTPS,可以对传输的数据进行加密;另一方面,MIDP2.0采用了和MIDP1.0不同的安全机制,采用安全域来确保未经授权的MIDlet套件无法访问受权限控制的数据、应用程序以及其他网络和设备资源。1.3数据库的介绍1.3.1MySQL的定义及概述 MySQL是一个小型关系型数据库管理系统,开发者为瑞典MySQLAB公司。在2008年1月16号被Sun公司收购。而2009年,SUN又被Oracle收购.对于MySQL的前途,没有任何人抱乐观的态度.目前MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。1.3.2MySQL的特性(1)使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。 (2)支持AIX、FreeBSD、HP-UX、Linux、MacOS、NovellNetware、OpenBSD、OS/2Wrap、Solaris、Windows等多种操作系统。 (3)为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。 (4)支持多线程,充分利用CPU资源。 (5)优化的SQL查询算法,有效地提高查询速度。 (6)既能够作为一个单独的应用程序应用在客户端服务器网络环境中,也能够作为一个库而嵌入到其他的软件中提供多语言支持,常见的编码 如中文的GB2312、BIG5,日文的Shift_JIS等都可以用作数据表名和数据列名。 (7)提供TCP/IP、ODBC和JDBC等多种数据库连接途径。 (8)提供用于管理、检查、优化数据库操作的管理工具。 (9)可以处理拥有上千万条记录的大型数据库。1.3.3MySQL的应用 与其他的大型数据库例如Oracle、DB2、SQLServer等相比,MySQL自有它的不足之处,如规模小、功能有限(MySQLCluster的功能和效率都相对比较差)等,但是这丝毫也没有减少它受欢迎的程度。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。目前Internet上流行的网站构架方式是LAMP(Linux+Apache+MySQL+PHP),即使用Linux作为操作系统,Apache作为Web服务器,MySQL作为数据库,PHP作为服务器端脚本解释器。由于这四个软件都是自由或开放源码软件(FLOSS),因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。1.3.4数据库的作用数据库不同层次之间的联系是通过映射进行转换的。数据库具有以下主要作用:(1)实现数据共享。数据共享包含所有用户可同时存取数据库中的数据,也包括用户可以用各种方式通过接口使用数据库,并提供数据共享。(2)减少数据的冗余度。同文件系统相比,由于数据库实现了数据共享,从而避免了用户各自建立应用文件。减少了大量重复数据,减少了数据冗余,维护了数据的一致性。(3)数据的独立性。数据的独立性包括数据库中数据库的逻辑结构和应用程序相互独立,也包括数据物理结构的变化不影响数据的逻辑结构。 (4)数据实现集中控制。文件管理方式中,数据处于一种分散的状态,不同的用户或同一用户在不同处理中其文件之间毫无关系。利用数据库可对数据进行集中控制和管理,并通过数据模型表示各种数据的组织以及数据间的联系。(5)数据一致性和可维护性,以确保数据的安全性和可靠性。主要包括:①安全性控制:以防止数据丢失、错误更新和越权使用;②完整性控制:保证数据的正确性、有效性和相容性;③并发控制:使在同一时间周期内,允许对数据实现多路存取,又能防止用户之间的不正常交互作用;④故障的发现和恢复:由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。1.4eclipse的介绍Eclipse的主要组成:Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——EclipsePlatform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,EclipsePlatform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。EclipsePlatform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。第二章系统分析2.1可行性分析2.1.1经济可行性分析 随着企业信息化的发展,企业信息系统变得越来越复杂,企业对信息系统安全性的要求也越来越高,为了保证信息系统的安全性,开发人员采用了多种技术来提高信息系统的安全性,其中日志技术是比较重要的一种。手机日志系统眼神里了客户端用户对空间位置的需求,使得企业更方便的获得服务,这给工作带来了便利,增强了企业对员工的工作管理,提高了工作效率。而且J2ME不需要繁琐的格式,它提供友好的用户界面,同时可以在本地存储数据,节约网络流量。目前的日志工作方式多元化,主要有纸张填写,语音录制,网上填写日志,以及短信填写日志和WAP填写日志,前两种不能及时将信息反馈给服务器,不能做到信息的及时性。WAP填写日志是基于WAP技术的填写日志方式。然而WAP填写日志采用B/S的方式访问Internet,并且只访问WML,因此通信流量大,网络时延相对较长。WAP填写日志通信费用较高,操作也不熟悉。本设计以J2ME为开发平台,利用Java提供强大工具,在手机上实现静态HTML技术所无法实现的计算处理、数据存储、与服务器的通信等功能。该日志管理系统操作简单并且为用户提供了日志分析功能,使用户能够分析企业信息系统的使用情况并对信息系统进行优化。Jsp+tomcat+mysql是其中最杰出的代表之一,它集面向对象数据库技术、多媒体技术于一身,是目前最有代表性的跨平台开发工具之一。针对开发软件都是免费的对于软件的成本将有巨大影响。2.1.2技术可行性分析J2ME是一种广泛的以消费性信息产品为目标的,高度优化的Java运行时环境。其中的大部分类都保留了J2SE和J2EE的类,但根据移动设备的不同有优化和更新。J2ME主要用于小型嵌入式设备上,这些设备与普通的PC设备相比没有统一的硬件标准和操作方式,其功能也千差万别。本系统主要代码用的是java脚本语言,java与所有的ActiveXScript语言都相容,除了可结合HTML,ASP,JavaScript、ActiveX服务器组件来设计外,并可经由“plug-In(外挂组件模组)的方式,使用其他厂商(ThirdParty)所提供的语言。而且隐密安全性高,如果我们在浏览器中直接查看网页的原始代码,就只能看到html文件,原始的java程序代码是看不到的!这是因为java程序先于网站服务(WebServer)端执行后,将结果转换成标准html文件,再传送到客户端(Client)的浏览器上,因此,我们所辛苦撰写的java程序并不会轻易地被看见进而被盗用,易于操控数据库。所以,开发本系统具备很好的技术可行性。 2.2需求分析本系统主要实现的功能如下两点:主要分为移动用户界面实现的功能和管理员界面实现的功能。分别如下:移动用户界面功能:1)编辑新日志功能,选择日志类型,编辑并保存日志。2)日志搜索功能,通过日期、用户ID、日志类型进行日志搜索。3)日志草稿箱功能,显示记录库中的所有日志,可以编辑、删除日志。4)编辑旧日志功能,用记录库中日志信息填充界面,显示外观编辑新日志界面相似。管理员界面功能:1)用户管理功能:包括添加、删除、修改用户。2)日志模版管理功能:包括添加、删除、修改模版。3)日志管理功能:包括添加、删除、修改积分。Web服务器子系统向外部提供管理员使用的服务和提供给移动终端的符合HTTP协议的服务,包括登录验证服务,添加用户,删除用户和修改用户服务,添加日志模版,删除日志模版,修改日志模版和下载日志模版服务,添加日志(即上传日志)、查询日志、删除日志和日志积分服务。Web服务子系统用例图1所示: 图1Web服务子系统用例图浏览器端用例图同Web服务器子系统提供的关于管理员功能很相似,只要添加一些编辑用户和模版功能即可。手机客户端用例图如图2所示。 图2手机端子系统用例图 第三章系统总体设计3.1系统的总体设计本章就从手机日志系统进行设计,系统功能包括两大部分:一是移动用户通过手机填写日志及通过手机进行日志查询,二是管理员可以管理用户、日志模版及日志。3.1.1系统设计目标系统的设计目标是掌握使用无线Java应用技术即J2ME技术的软件系统设计方法,并且以一个手机日志工作系统的实际应用来进行讨论。手机日志是方便您通过手机随时随地浏览和更新日志的一项服务,不管您身处何地,只要您的手机可以上网,就可以随时浏览他人日志或者更新自己的日志,该日志管理系统操作简单并且为用户提供了日志分析功能,使用户能够分析企业信息系统的使用情况并对信息系统进行优化.而且J2ME不需要繁琐的格式,它提供友好的用户界面,同时可以在本地存储数据,节约网络流量。这种移动工作方式,使得到人们可以随时随地工作。移动用户只需拥有支持J2ME的手机或PDA,即可在移动设备访问放置于企业内的Web服务器系统,因此没有过多考虑PC机浏览器部分。虽然移动工作系统在功能上和网上工作系统相似,但性能上确有较大差异,主要源于手机客户端。手机客户端作为资源有限的设备,主要有以下一些特点:1)内存有限,计算机能力有限,存取速度慢;2)输入/输出的单一性,手机没有PC机标准键盘那么多按键,也没有鼠标;3)显示能力非常有限,如显示尺寸小,分辨率低等;4)网络连接速度慢而且不可靠。上述特点使得无线应用开发与桌面或企业计算应用开发有很大的不同,因此在移动设备端程序设计中,对软件性能的要求特别重要。本方案在设计过程中性能要达到如下目标: 提供友好的移动客户端人机界面。设计规范,风格统一,尽量使用用户操作简便、容易上手。保持移动客户端应用的简单。在开发应用过程中,让服务器做大部分工作,将消耗计算机资源的数据计算交给服务器来处理,尽量让移动客户端处理少量和简单数据计算。具有良好的可维护性,可重用性性和可扩展性。采用合适的设计模式,提高系统性能的同时使程序结构清晰,采用MVC三层架构,使系统良好的可维护性、可重用性与可扩展性。随着业务的增多,可以在本系统的基础上添加新的功能,而不需要重新开发新系统,既能节省时间和精力,又能减轻一大部分的开发费用。3.1.2系统设计思路:通过手机使用HTTP协议与Web服务器尽心通信的技术很多,本系统采用Java解决方案,使用J2ME技术与Web服务器交互。在Web服务器子系统中,本系统采用J2SE体系结构以实现灵活和的设计进行与开发。本设计将手机日志系统设计成多层结快速构,每一层都有特定功能。将应用系统数据库作为第三层,为移动应用程序数据提供持久的存储库。第二层是业务逻辑层,负责接受移动客户端的请求和处理,和第三层(数据库)进行通信,再将影响结果返回手机客户端。第一层是手机客户端J2ME程序。是一个运行在移动设备上的MIDlet。用户在该设备上输入相关信息,MIDlet使用一个HttpConnection向服务器发送请求,服务器再将请求结果发给MIDlet,并由MIDlet显示在设备上。3.2系统总体构架3.2.1客户端和服务器的通信客户端和服务器的通信之间的通信以“请求—服务”的方式进行。PC客户端或者手机客户端先向服务器发送“请求”(HttpRequest),服务器再“相应”(Response)这个请求,如图3所示:服务器客户端HTTP请求 响应图3系统通信以“请求—相应”的方式进行3.2.2系统总体构架MVC标准模式较经典的应用就是将结JSP+Servlet+JavaBean合在一起,可以实现系统的可维护性、可重用性与可扩展性。把应用程序分成三个核心部件:模型、视图、控制器。它们各自处理自己特定的任务,并负责完成与其他部分的通信。本系统中Web服务器端采用了JSP+Servlet+JavaBean+JDBC技术编写CGI程序,用于数据的动态加载和页面的响应;手机客户采用J2ME技术,数据库选择了MYSQL作为数据库的存储基础。如图:其中客户层为J2MEMIDP移动客户端,客户层的PC浏览器由Web服务器中的JSP也就是视图(View即“V”)负责处理页面的显示;由Servlet,也就是控制器(Controller即“C”)充当业务逻辑层,处理大部分业务逻辑,并返回相应结果;由JavaBean充当数据层,也就是模型(Model即“M”),负责数据的处理,JavaBean是JSP组件技术的核心,是可重用组件。图4手机日志工作系统的三层结构 Web服务器的JavaServlet程序接受J2ME客户端的HTTP连接请求,Servlet作为MIDP客户端和Web服务器信息的桥梁,然后通过一个JavaBean组件使用JDBC访问应用程序数据库。服务器端的程序运行在ApachTomcat6.0服务器上,它由运行在Web容器中的JSP、JavaServlet和运行JavaBean组建构成。Web服务器的代理模型(delegationmodel)非常简单。当一个请求(request)被送到Web服务器里来时,它只单纯的把请求(request)传递给可以很好的处理请求(request)的程序。Web服务器仅仅提供一个可以执行服务器端(server-side)程序和返回(程序所产生的)响应(response)的环境,而不会超出职能范围。服务器端(server-side)程序通常具有事务处理(transactionprocessing),数据库连接(databaseconnectivity)和消息(messaging)等功能。手机日志工作系统采用多层体系结构,各层之间可以通过明确定义的接口进行分隔,因此可以减少将来改动时的复杂度与工作量。图4是本系统的三层结构图,图中客户层指的是手机客户端应用程序。中间级的JSP、Servlet和JavaBean是本系统的Web服务器端应用,MYSQL在数据层。3.2.3移动客户端移动日志工作系统与网上日志工作系统的区别就在于可通过移动设备实现随时随地访问,而后者仅限于固定的PC机通过有线网络访问。在WAP填写日志方式中,移动终端仅起到数据显示的作用,业务逻辑完全由服务器端执行,所有的服务必须在网络接通时才可使用。由于无线网络连接通常是高时延、低宽带的,所以WAP填写日志不仅时间和费用消耗大,而且会增加服务器负荷,反映速度慢,一定程度上限制了其他推广应用。相比之下,移动填写日志工作系统客户端软件运行于支持J2ME的手机或PDA上,MIDP程序能够在本地存储和处理数据,因此可以节约网络流量、节省带宽、减少时延,从而有效的缓解了WAP填写日志方式的时间和费用大的问题。移动日志工作系统的移动客户端程序结构是符合J2MEMIDP规范的MIDlet程序。客户端程序提供人机交互的UI(界面)操作,接受移动用户在移动设备上的输入信息,利用通过联网架构(GCF)提供的联网功能与服务器端交互,并将服务器端反馈的结果信息显示在用户界面上。 3.2.4服务器端移动日志工作系统Web服务器包括视图层、业务逻辑层和数据模型层。业务逻辑层作为服务器系统的访问入口,处理用户发送的HTTP请求和结果数据的发送,业务逻辑层承担了整个系统的控制。它运行Servlet自移动客户端应用程序MIDlet的请求,随后将这些请求委托给JavaBean组件,当请求完成时,Servlet将结果数据返回给移动客户端的应用程序MIDlet。3.3系统流程图:管理员登录系统后就可以选择管理相关操作。用户表指移动用户表,Data查询指日期查询,ID查询指移动用户ID查询,Type查询指日志模版查询,如图5。管理员进入系统流程图,如图6所示。用户登录系统后可进行日志查询、填写、保存等操作。图5管理员进入系统流程图 图5移动用户程图 第四章服务器端的设计4.1数据库存储层设计手机日志系统是一个数据库驱动的应用程序,系统共设计4张表。本设计建立了一个LogDb数据库,数据库中对应的表是:表7.1管理员表7.2移动用户表7.3日志表7.4日志模版表7.5数据库关系表7.1管理员表(administrators)键字段名称字段描述类型空值PKadminId管理员编号charNOname管理员姓名varcharNOpassword密码charNOmemo备注varchartel电话charNO表7.2移动用户表(endUsers)键字段名称字段描述类型空值PKuserId终端用户编号charNOtelPhone手机号CharNOname终端用户姓名varcharNOpassword密码charNOmemo备注varchar表7.3日志表(logs)键字段名称字段描述类型空值PKLogId日志编号IntNOtime提交时间DatetimeNOuserId终端用户编号charNOtitle标题varcharNOtemplateName日志模版名varcharNOtemplateText日志模版内容varcharNOphoto日志图片varcharintegral日志积分int 图7.4日志模版表(logTemplates)键字段名称字段描述类型空值PKtemplateName日志模版名varcharNOtemplateText日志模版内容varchar数据库关系如下图7.5所示:图7.5LogDb数据库关系图4.2Web服务器子系统设计视图层由JSP技术实现页面的动态显示,而数据层由JavaBean实现,本系统数据库中共四张表,每张表的数据及对应方法封装于一个JavaBean类,JavaBean直接使用JDBC访问应用数据库。业务逻辑层则由Servlet负责处理来自客户端的请求,由于本设计是基于J2ME手机日志的设计与实现,下面主要介绍接受J2ME客户端HTTP连接请求的Servlet文件。 CheckUser.java接受来自MIDlet客户的验证请求,并解析出移动用户编号和密码,再调用移动用户类的验证用户方法进行用户验证。SearchLogs.java接收来自MIDlet客户的日志搜索请求,并解析出日志搜索类型和对应的值,再调用日志类的日期查询,用户ID查询或日志类型查询以运行日志搜索,然后将搜索结果以字符串格式给客户发回。AddLogs.java接收来自MIDlet客户的添加请求,并解析出上传给服务器的日志类型、标题、内容、图片,其中图片保存到图片文件夹中,调用日志类的日志更新方法添加日志。4.3服务器的代码实现和分析4.3.1处理浏览器通过日期查询日志请求此LogsSingleDate类是一个处理浏览器端通过日期查询日志的Servlet类。用SimpleDateFormat格式化数据并构造Java.sql.Date的核心代码如下:doPost(){try{Datedate=DateFormat.getDateInstance().parse(request.getParameter("time"));}catch(java.text.ParseExceptionpe){}//用SimpleDateFormat格式化data数据SimpleDateFormatsy=newSimpleDateFormat("yyy");SimpleDateFormatsm=newSimpleDateFormat("MM");SimpleDateFormatsd=newSimpleDateFormat("dd");Stringsyear=sy.format(date);Stringsmon=sm.format(date);Stringsday=sd.format(date);//用格式化后的数据构造java.sql.Datejava.sql.DatesqlDate=java.sql.Date.valueOf(syear+"-"+smon+z"-"+sday);} 4.3.2处理手机客户端下载日志请求doPost(){if(logsList!=null){countB=logsList.zsize();//给日表行赋值countS=5;//给日志列赋值//添加日志头信息logBuffer.append(countB+"$");logBuffer.append(countS+"$");logBuffer.append("*"+"$");logBuffer.append("|"+"$");for(inti=0;i0){//有图片资源//将dataByte字节数组写入文件输出流保存图片fo.write(dataByte,textLength,photoLength);//用图片存放文件夹和系统时间作为图片路径名photoStr="logPhoto/"+currentTime+".png";};else{//无图片资源给图片一个默认路径值photoStr="logPhoto/Icon.png";}//关闭此文件输出流并释放与此流有关的所有系统资源fo.close();//得到将添加到数据库中的这条日志IDlogId=logBean.getLogCounts()+1;} 第五章客户端设计5.1手机客户端程序设计手机客户端源程序设计有四个部分组成Log.java:Log是与用户进行交互式的主要MIDlet程序StringToByte.java:将Web服务器发送的请求串和图片资源转换为字节数组流Split.java:将从Web服务器上发回的日志原始字符串中解析出日志信息,并显示到手机屏上。LogDb.java:实现手机客户端持久储存,通过记录库读入与保存日志记录,使用户在离线方式下填写日志成为可能。5.1.1客户端界面登陆界面,输入用户编号、密码,Web验证用户,通过验证进入系统目录界面如图8所示。 图8登录界面图系统目录界面,显示系统主要功能。有日志查询,新建日志,草稿箱。如9所示。图9系统目录图日志搜索界面,通过日期、用户ID、日志类型进行日志搜索。如图10所示。 图10日志搜索界面图日志搜索结果显示界面,显示所有从Web上下载的日志。如图11所示: 图11日志搜索结果显示界面编辑新日志界面,选择日志;类型,编辑并保存日志。如图12所示; 图12编辑新日志界面 日志草稿箱界面,显示记录库中的所有日志,可以编辑、删除日志。如图13所示。图13日志草稿箱界面图5.1.2浏览器端界面浏览器端界面包括以下界面:1)管理员登录界面,输入管理员编号、姓名和密码进行管理员验证,通过验证进入系统主界面。2)系统主界面,系统、功能介绍,及显示积分前时的日志。3)终端用户列表界面,分页显示所有的用户。4)添加用户界面,输入用户基本信息,并提交保存到数据库中。5)修改用户界面,可以很灵活的进行用户信息修改,并提交保存。6)日志模版列表界面显示所有的日志类型。7)添加日志模版界面,输入日至模版信息,提交保存到数据库中。 1)修改日至模版界面,可以修改日志模版内容,提交并保存。2)日志列表界面,分页显示所有日志信息。3)详细显示日志信息界面,详细显示指定日志的信息。5.2程序的运行流程5.2.1手机客户端的程序流程手机客户端的程序流程用Display.setCurrent()方法可在显示屏之间进行切换。用户在屏上的单击与选择操,如图14,调作是由commandAction()方法处理。 用户登录屏发送用户编码和密码日志系统主菜单屏验证成功Log服务器再次选择操作日志搜索结果显示屏发送搜索选择关键字及再次查询操作日期查询屏对应值日志查询菜单屏用户ID查询屏日志类型查询屏草稿箱屏保存将旧日志信息再次选上传日至类型、标题、填入编辑日志择操作编辑新(或旧)日志屏内容、图片信息上传日志失败图14客户端程序流程图5.2.2浏览器的程序流程浏览器的程序流程,如图15所示; 管理员登录界面系统功能界面填写管理员编号、验证成功姓名和密码Log服务器反回用户列表更新后的界面操作选择用户添加界面发送用户相关信息操作用户列表界面用户删除选择用户修改界面返回类型列表更新后的界面模版添加界面发送类型相关信息模版列表界面模版删除操作选择模版修改界面日志积分日志列表界面日志查看发送类型相关信息操作选择日志详细查看界面日志删除详细显示指定日志信息日志查询返回返回日志列表更新后的界面图15浏览器程序流程图 5.3手机客户端的代码实现和分析5.3.1解析从服务器下载的日志字符串privateString[][]test(StringresultB,intcountB,intcountS,StringcB,StringcS){//创建存放多条日志的二维数组Stringarray[][]=newString[countB][countS];//调用方法f解析出各条日志原始数据StringarrayB[]=f(resultB,countB,cB);for(inti=0;i=0){EditOldLogForm();StringselectedTitle=cgOldEdit.getString(selectedIndex);try{rs=RecordStore.openRecordStore("LogDB",true);intnextRecordId=rs.getNextRecordID();for(inti=1;i0){buffer.append(data_in.readUTF());}result=buffer.toString();System.out.println(result);if(result!=null){if("loginSuccess".equals(result)){ System.out.println("ok");MainForm();}elseif("loginfail".equals(result)){Alertalert=newAlert("");alert.setString("登录失败,用户名或密码错误!");alert.setTimeout(Alert.FOREVER);display.setCurrent(alert);}elseif("addLogsSuccess".equals(result)){Alertalert=newAlert("");alert.setString("上传日志成功!");alert.setTimeout(Alert.FOREVER);display.setCurrent(alert);}elseif(result.indexOf("*")>=0&&!result.equals("")){ResultForm(newSplit().splitString(result));}else{tfContent.setString(result);}}}}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}finally{try{httpcon.close();out.close(); data_in.close();}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();}}}publicvoidalertForm(Stringmessage){Alertalert=newAlert("");alert.setString(message);alert.setTimeout(Alert.FOREVER);display.setCurrent(alert);}publicvoiddelOldLog(){intselectedIndex=cgOldEdit.getSelectedIndex();if(selectedIndex>=0){StringselectedTitle=cgOldEdit.getString(selectedIndex);try{rs=RecordStore.openRecordStore("LogDB",true);intnextRecordId=rs.getNextRecordID();for(inti=1;i