1、J2ME 课程设计报告J2ME 图书馆无线辅助管理系统专 业: 班 级: 组 号: 指导教师: 二 00 九年 月 日J2ME 图书馆无线辅助管理系统摘 要随着 3G 时代的到来,3G 无线网络规模逐渐扩大,移动电子通讯设备将不仅仅只是打电话和发短信的工具,届时将会有更多的更丰富的移动应用程序应用在移动电子通讯设备的终端上,而移动商务以及移动办公作为 3G 无线网络传输应用的重要分支,将会广泛地流行起来。本系统为图书馆文献查询辅助系统(手机客户端) ,使用 C/S 结构,实现了无线网络传输 HTTP 协议、UDP 传输协议、以及套接字传输协议。本文完整地描述了在 Eclipse 平台应用 J2
2、ME 技术,利用 TOMCAT 服务器,使用 ORACLE 数据库,开发本手机软件的过程。其中主要涉及的技术有 Java Servlet 技术、Java Socket 技术等。第一章介绍了系统背景,使用的开发平台及主要技术,对论文中术语的约定;第二章介绍了系统需求及系统的设计方案;第三章介绍了系统具体实现,并描述一些关键性技术和核心模块的设计;第四章介绍了对本系统进行的测试及测试结果。关键词:J2ME;无线网络传输;GCF;HTTP;移动图书馆 目 录论文总页数:42页1 引言.11.1 系统背景 .11.2 开发平台 .11.2.1 Eclipse.11.2.2 Eclipse Me.21.
3、2.3 Proguard.21.2.4 Tomcat.31.2.5 Oracle 10g.31.2.6 Rational Rose.31.3 主要技术 .41.3.1 J2ME 技术 .41.3.2 GCF 框架 .51.3.3 RSM.51.3.4 MVC.51.3.5 Javabean 技术 .61.3.6 Java Servlet 技术 .61.3.7 Java socket 技术 .71.4 术语与缩写解释 .72 需求分析及项目方案 .82.1 目标 .82.2 假定和约束 .82.3 需求规定 .82.3.1 对新能的规定 .82.3.2 对性能的规定 .82.3.3 输入输出要求
4、 .92.4 数据结构及表的定义 .92.5 运行环境规定 .132.5.1 设备 .132.5.2 支持软件 .133 项目设计及开发 .143.1 整体框架 .143.1.1 系统总体结构图 .143.1.2 系统总体流程图 .153.2 程序核心功能 .153.2.1 读者信息查询(借阅查询) .153.2.2 读者信息查询(密码修改) .183.2.3 书刊检索 .203.2.4 公告查询(查询新书发布) .233.2.5 书籍信息修改(查询书籍增订信息) .243.2.6 书籍信息修改(新书发布) .273.2.7 书籍信息修改(旧书删除) .293.2.8 管理员信息查询(密码修改
5、) .313.2.9 书籍讨论区 .323.2.10 帮助 .343.3 兼容性 .353.4 打包与混淆 .353.5 特殊问题与解决方法 .363.5.1 书籍讨论区同名用户的处理 .363.5.2 MiDlet 与 Servlet 的通讯 .374 结果测试及性能分析 .374.1 测试思路 .374.2 测试结果 .38结 束 语 .39参考文献 .40致 谢 .41声 明 .42第 1 页 共 42 页1 引言3G,是指第三代移动通讯技术。随着 3G 的到来,移动终端不仅仅是打电话,发短信的工具,届时会有更多丰富的移动应用程序出现。国家工信部 3G 牌照已经正式发放,标志着中国 3G
6、 元年的到来,现已经有多家 3G 网络牌照运营商进行发放 3G 牌照,3G 网络已经正式覆盖全国多个省会城市,将有多家移动网络门户运营商提供低费用高传输速度的无线网络服务。移动商务,移动办公作为无线网络传输应用的重要分支,将会广泛流行。无线网络传输程序包括 HTTP 协议下的 Web 页面数据传输,基于 UDP 传输协议的数据包传输,基于套接字连接的数据传输。在这三种无线网络传输基础上设计实现的手机程序,将在 3G 广泛盛行起来的同时,发挥出重大作用,提高人们的生活水平和生活质量。1.1 系统背景本程序的设计实现了 HTTP 协议,UDP 传输协议,套接字传输协议。本作品采用移动无线网络传输的
7、图书馆辅助系统(手机客户端)的形式整体实现了上述协议,并且具有使用价值,因为现在移动通讯使用的范围已经愈来愈广泛,移动手机的用户界面也越来越友好,移动通讯的网络传输质量也越来越优越,所以使用手机客户端的形式将用户从繁琐的计算机使用中解脱出来,使得用户能在随时随地登入到图书馆系统,进行自己期望的操作;而且同时也使得管理员对图书馆的管理越来越灵活,提高了管理员的能动性,加快了对书籍的整合和管理的效率。本作品主要采用 J2ME 技术进行设计和实现,因为 UDP 协议的实现与套接字传输协议的实现基本一致,所以在设计程序时,考虑到时间以及程序模块的因素,将其缩减。1.2 开发平台本作品的开发平台为 Ec
8、lipse3.2 + EclipseME1.2.1 + JDK1.6 + Wireless Toolkit 2.5 + Proguard3.6,模拟测试平台为 WTK 模拟器,真机测试平台为诺基亚 5300。1.2.1 EclipseEclipse 是替代 IBM Visual Age for Java(以下简称 IVJ)的下一代 IDE开发环境,但它未来的目标不仅仅是成为专门开发 JAVA 程序的 IDE 环境,根据Eclipse 的体系结构,通过开发插件,它能扩展到任何语言的开发,甚至能成为图片绘制的工具。更难能可贵的是 Eclipse 是一个开放源代码的项目,任何人都可以下载 Eclip
9、se 的源代码,并且在此基础上开发自己的功能插件。也就是说未来只要有人需要,就会有建立在 Eclipse 之上的 COBOL,Perl,Python等语言的开发插件出现。同时可以通过开发新的插件扩展现有插件的功能,比第 2 页 共 42 页如在现有的 Java 开发环境中加入 Tomcat 服务器插件。可以无限扩展,而且有着统一的外观,操作和系统资源管理,这也正是 Eclipse 的潜力所在。在本项目中,Eclipse 正是通过第三方插件Eclipse me 实现了开发 J2ME 应用。1.2.2 Eclipse Me EclipseME 是帮助你开发 J2ME MIDlet 的 Eclips
10、e 插件。 EclipseME 帮助你轻松的把无线工具包整合到 Eclipse 开发环境中,使你不必再担心 J2ME 开发有何特殊需求,而可以把所有精力集中在应用开发上。EclipseME 提供了下列功能以帮助开发者轻松的创建 Midlets: 无线工具包首选项 创建新的 J2ME Midlet 套件项目 创建新的 Midlet Java 应用描述文件(JAD)编辑器 对 class 文件进行增量的/自动的预检验 支持从 Eclipse 中启动运行 J2ME 模拟器 打包以及部署(包括无线下载方式)测试,可以使用 ProGuard 对输出包进行混淆 1.2.3 ProguardProguard
11、 是一个出色的混淆器,用以增加程序被破译的难度,并可以减小最后生成 jar 的体积,ProGuard,除了在压缩操作删除的无用类、字段和方法外,也能在字节码级提供性能优化,内部方法有: 常量表达式求值 删除不必要的字段存取 删除不必要的方法调用 删除不必要的分支 删除不必要的比较和 instanceof 验证 删除未使用的代码 删除只写字段 删除未使用的方法参数 像 push/pop 简化一样的各种各样的 peephole 优化 在可能的情况下为类添加 static 和 final 修饰符 在可能的情况下为方法添加 private, static 和 final 修饰符 在可能的情况下使 ge
12、t/set 方法成为内联的 当接口只有一个实现类的时候,就取代它 选择性的删除日志代码第 3 页 共 42 页1.2.4 TomcatTomcat 服务器是一个免费的开放源代码的 Web 应用服务器,Tomcat 是Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。由于有了Sun 的参与和支持,最新的 Servlet 和 JSP 规范总是能在 Tomcat 中得到体现,Tomcat 5 支持最新的 Servlet 2.4 和 JSP 2.0 规范。因为 Tomca
13、t 技术先进、性能稳定,而且免费,因而深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器。Tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试 JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好 Apache 服务器,可利用它响应对 HTML 页面的访问请求。实际上 Tomcat 部分是 Apache 服务器的扩展,但它是独立运行的,所以当运行 tomcat 时,它实际上作为一个与 Apache 独立的进程单独运行的。本系统采用 Tomcat 服务器,因为它运行时占用
14、的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中。手机客户端可以通过与 Tomcat 的访问连接来实现各个模块功能。1.2.5 Oracle 10gOracle Database 10g 提供了 4 个版本分别是 Oracle Database 10g 标准版 1、Oracle Database 10g 标准版、Oracle Database 10g 企业版和 Oracle Database 10g 个人版。提供了一系列常见的应用程序开发功能,包括与 SQL 对象相关的功能、用于编写存储过程和触发器的 PL/SQL 语言和 JAVA 编程接口
15、。企业版还提供了额外的性能、可伸缩性、可用性、和安全性,这些功能一般对应用程序开发人员是透明的。Oracle Database 10g 企业版主持的API,Oracle Database 10g 个人版和标准版也支持。Oracle Database 10g 产品全部是用同一个健壮和可靠地数据库引擎体系结构构建的。在许多不同的平台上,Oracle Database 10g 标准版和 Oracle Database 10g 个人版都和Oracle Database 10g 企业版完全兼容,因此用户的数据库应用程序可以从笔记本电脑简单地扩展到台式电脑,然后再扩展到整个企业网络,而不需要重新设计。1.
16、2.6 Rational RoseRational Rose 是一个完全的,具有能满足所有建模环境需求能力和灵活性的一套解决方案。Rose 允许开发人员,项目经理,系统工程师和分析人员在软件开发周期内在将需求和系统的体系架构转换成代码,消除浪费的消耗,对第 4 页 共 42 页需求和系统的体系架构进行可视化,理解和精练。通过在软件开发周期内使用同一种建模工具可以确保更快更好的创建满足客户需求的可扩展的、灵活的并且可靠的应用系统。 Rose 是美国的 Rational 公司的面向对象建模工具,利用这个工具,可以建立用 UML 描述的软件系统的模型,而且可以自动生成和维护 C+、Java、VB和
17、Oracle 等语言和系统的代码。Rational Rose 包括了统一建模语言(UML) ,OOSE,以及 OMT。本系统采用 Rose 进行 UML 用例建模。1.3 主要技术本作品分为服务器端和手机客户端两个部分,采用 C/S 结构设计系统,采用 GCF 框架中定义的网络连接类和方法,制定双方都能理解的协议来交换数据,前后台通过 servlet 进行数据传输及页面显示,整个系统采用 MVC 模式进行模块划分,实现界面和模型数据的分离,结构清晰,便于维护。1.3.1 J2ME 技术Java 技术是一系列产品的集合,目前主要包括 Java2 平台标准版(Java 2 platform Sta
18、ndard Edition, J2SE) 、Java2 平台企业版(Java 2 platform Enterprise Edition, J2EE) 、Java2 平台微型版(Java 2 platform Micro Edition, J2ME)和 Java 卡平台。J2ME 为运行在嵌入式消费类电子产品的设备,如移动电话、PDA、游戏终端之上的应用程序提供了一个健壮的、灵活的环境。与 J2SE、J2EE 和 Java Card 一样,J2ME 同样包含一个小型的虚拟机和一系列的 Java API。J2ME 还提供了灵活的图形用户界面、健壮的安全模型、广泛的联网协议支持。目前 J2ME 平
19、台已经部署到上亿个的设备上,前景非常看好。J2ME 平台由多种配置(Configuration) 、简表(Profile)和可选包(OptionalPackage)组成。平台的实现者和应用程序的开发者可以从中选择并组合出一个完整的 Java 运行环境来满足特定范围内的设备需求。每种组合都应该使这一系列设备的内存、处理器和 I/O 能力达到最优化。本系统选择的配置是 CLDC,选择的简表是 MIPD v2.0.主要原因:CLDC 使用 KVM 虚拟机,面向处理能力较小的移动设备。在类的集合方面,只保留了一些基本的必要类,可我们能够通过简表进行补充。MIPD 是目前 J2ME 平台上发展最成熟、应
20、用最广泛的简表,专门针对移动电话或者 PDA,MIPD v1.0 版本的功能包括应用程序下载、网络连接和传输、数据库存储、计时器和用户界面;MIPD v2.0 版本扩展功能包括应用下载的计费、网络安全传输、数字签名、域的安全模式、注册和音频处理。目前大多数移动手机都支持 MIPD v2.0 的简表。第 5 页 共 42 页1.3.2 GCF 框架GCF(通用连接框架 Generic Connection Framework)是基于 CLDC 及其对应简表,提供了各种连接的基础 API,包括基于数据包和基于数据流的输入/输出方法。它按照层次的形式组织各种连接接口,使用 URL 表示不同的连接。通
21、用连接框架定义了 7 种接口:Connection 接口、CintentConnection 接口、DatagramConnection 接口、 InputConnection 接口, OutputConnection 接口,StreamConnection 接口和 StreamConnectionNotifier 接口。Connection 接口是所有接口的基类,它产生了用于数据包连接的 DatagramConnection 连接接口、用于数据流连接的 InputConnection 接口、OutputConnection 接口和StreamConnectionNotifier 接口。其中
22、StreamConnection 接口继承自数据流连接的输入/输出接口,并派生了用于数据内容解析的 CintentConnection 接口。GCF 是一个容易扩展的框架结构,用户可以根据自身的需要在现有的类和接口上建立自己的类或者实现自己的接口。1.3.3 RSMRMS(记录管理系统 Record Management System)类似于普通计算机的文件管理系统。在手持电子设备中,用以统一的机制管理持续性存储资源。记录管理系统具有数据库管理系统的特征,即记录管理系统组织数据是按照行列的方式进行组织的,每条信息在记录管理系统中都表现为一条记录,类似于数据库一行,每一条记录可以包含多个数据,类
23、似于数据库某一行中的多列。我们可以通过添加记录的方式将数据持久地保存在记录管理系统中;通过删除记录的方式删除信息;同时记录管理系统还允许为你们对记录进行排序和查找。记录管理系统允许以下操作: 创建记录存储器; 在已建立的记录存储器中添加记录; 在已建立的记录存储器中删除已经存在的记录; 在已建立的记录存储器中读取已经存在的记录; 在已建立的记录存储器中建立枚举器; 在已建立的记录存储器中建立比较器; 在已建立的记录存储器中建立筛选去。1.3.4 MVCMVC 是一种设计模式,强制把应用程序的输入、处理和输出分开。MVC 把应用程序分为三个核心模块:模型、视图和控制器,他们分别负担不同的任务。尽
24、管构造 MVC 应用程序需要一些额外的操作,但是给我们带来的好处是毋庸置疑的。第 6 页 共 42 页首先,多个视图能共享一个模型。在 MVC 设计模式中,模型响应用户请求并返回响应数据,视图负责格式化数据并把它们呈现给用户,业务逻辑和表示层分离,同一个模型可以被不同的视图重同,所以大大提高了代码的可重用性。其次,模型是自包含的,与控制器和视图保持相对独立,所以可以方便地改变应用程序的数据层和业务规则。由于 MVC 的三个模块相互独立,改变其中一个不会影响到其他两个,因此依据这种设计思想能构造良好的松耦合的构件。此外,控制器提高了应用程序的灵活性和可配置性。控制器可以用来连接不同的模型和视图去
25、完成用户的需求,也可以为构造应用程序提供强有力的手段。给定一些可重用的模型和视图,控制器可以根据用户的需求选择适当的模型进行处理,然后选择适当的视图将处理结果显示给用户。1.3.5 Javabean 技术JavaBeans 是一个类,它有无参的构造函数,并且遵从 JavaBeans 的命名约定。bean 的属性可以通过获取(getter)方法和设置方法(setter)来访问,这两个方法统称为 bena 的存取方法,每一个单词的首字母都要大写。除了简单的属性外,bean 还可以有多值属性,多值属性是由一个任意类型的数组组成。在规范中这称为索引的属性。JavaBeans 技术能实现封装数据,实现对
26、代码的重用。JavaBeans 技术,涉及到组件构件技术,是 Java 的核心基础部分。很多软件设计模式都是通过JavaBeans 实现的。JavaBeans 具有以下特性: 内透性 指一个类的信息,都可以被另一个类获知。JavaBeans 遵循某种命名规则,这样外部类就可以知道这个 Bean 类。 支持自定义 属性的方法用来对 JavaBeans 进行自定义 支持事件 支持属性 支持永久性1.3.6 Java Servlet 技术Servlet 是与平台无关的服务器端组件,可以运行在 Servlet 容器中。Servlet 容器负责 Servlet 和客户的通信以及调用 Servlet 的方法。Servlet 和客户的通信采用“请求/响应”的模式。Servlet 的框架是有两个 JAVA 包组成的javax.servlet 和java.servlet.http。在 javax.servelt 包中定义了所有的 Servlet 类都必须实现或扩展的通讯接口和类。在 javax.servlet.http.包中定义了采用 HTTP 协议