无线应用开发和移动电子商务.doc

上传人:wux****ua 文档编号:9050170 上传时间:2020-04-02 格式:DOC 页数:52 大小:1.05MB
返回 下载 相关 举报
无线应用开发和移动电子商务.doc_第1页
第1页 / 共52页
无线应用开发和移动电子商务.doc_第2页
第2页 / 共52页
无线应用开发和移动电子商务.doc_第3页
第3页 / 共52页
点击查看更多>>
资源描述
摘 要随着信息技术的飞速发展,移动通讯与互联网融合发展的趋势日趋明显,作为电子商务领域的新生力量,移动电子商务显示出巨大的发展潜力和成长空间。本论文主要探索无线应用开发和移动电子商务的结合点,提出了基于J2ME移动商务服务系统解决方案,实现移动互联网环境下,无线终端(手机)用户可以通过客户端程序访问商务服务,提供商品交易对移动用户支持。J2ME是JavaAPI和JVM虚拟机的一个缩减版本,它设计用来在嵌入式计算机和微型计算机所能提供的有限资源内进行操作。大多数移动平台都支持Java函数。本文以移动购物系统的研究与设计为基础,根据移动电子商务的具体需求,基于J2ME设计和实现了一个移动购物系统,包括用户登录、商品选购、浏览订单、订单支付和账户管理等功能。主要内容有:首先对移动商务应用研究的背景、意义进行了综述;详细阐述了开发移动商务系统所需的关键技术J2ME平台的主要功能、特性和体系结构,以及客户端手机应用程序中MIDP的开发技术;分析了移动购物系统所要完成的基本功能,得出了各个功能模块的功能性及非功能性需求;然后在需求分析的基础上,设计了各模块所需要的类以及类之间的交互情况,并对系统进行实现;深入分析了移动商务系统中的安全性问题;最后对系统的运行情况进行了评价并对其扩展性进行了说明。 关键词:J2ME 移动电子商务 购物系统目 录1 绪论11.1 背景介绍11.1.1 移动电子商务的定义11.1.2 移动电子商务的特点21.1.3 移动电子商务的发展现状21.2选题意义31.3论文的组织结构42 技术背景52.1 J2ME的简介52.1.1 J2ME的背景52.1.2 J2ME的体系结构52.2 CLDC的简介72.2.1 CLDC的整体需求82.2.2 CLDC的功能范围82.2.3 CLDC的类库82.2.4 CLDC的安全机制92.2.5 CLDC中类的预审核模式102.3 MIDP的简介112.3.1 MIDP的硬件需求122.3.2 MIDP的软件需求122.3.3 MIDP的API132.4 MIDlet的简介132.4.1 MIDlet的生命周期142.5 LWUIT的简介153 J2ME移动购物系统的需求分析163.1系统功能的需求分析163.2 各功能模块的分析183.3 开发环境193.3.1软件开发环境193.3.2数据库环境203.3.3服务器环境203.3.4硬件环境214系统分析与设计214.1 系统架构的分析214.2 系统逻辑结构的设计234.3业务逻辑设计244.3客户端的设计264.4服务器的设计274.5 数据库设计285基于J2ME的移动购物系统的实现305.1购买功能实现305.2 地址簿功能实现335.3暂存架功能实现386 总结和展望421 绪论1.1 背景介绍1.1.1 移动电子商务的定义 移动电子商务(Mobile Commerce,MC)作为电子商务(Electronic Commerce )中一个有潜力而重要的分支渐渐成为人们关注的焦点。它是通过手机、个人数字助理(Personal Digital Assistant,PDA)等无线终端进行的,B2B(Business To Business)、B2C(Business To Consumer)或C2C(Consumer To Consumer)的电子商务。以手机为例,通过编写手机应用程序,可以让手机用户使用手机的无线通讯功能实现各种活动,包括经营、管理、交易、娱乐等,从而为手机用户提供一个极其多样化的服务。 移动电子商务是由创新技术推动下形成的一种创新的、便捷的、大众化的、能够使移动商务主体在移动中进行、适应市场发展与变化而出现的新商务模式。移动电子商务将随着网络信息技术和移动通信技术的不断普及和发展成为未来中国电子商务增长的新领域和创富运动的新行业。有人预言,移动电子商务将决定21世纪新企业的风貌,也将改变生活与旧商业的地形地貌。 从技术角度来看,移动电子商务是技术的创新。移动电子商务以网络信息技术和创新的现代通信技术为依托,把手机、传呼机、个人数字助理和笔记本电脑等移动通信终端与因特网和移动通信网有机地结合起来。 从商务角度看,移动商务是一种商务模式的创新。移动电子商务是最便于大众参与的电子商务模式。由于用户与移动终端具有紧密的对应关系,不仅可以使移动电子商务运营和参与主体在第一时间、以第一反应速度,及时就商务信息作出反应,可以使用户更多地脱离设备状态和网络环境对商务活动的束缚,最大限度地在自由的商务空间进行经济活动。这就极大地提高了商务交往的速度和效率,降低了商务交易的成本,提升了社会交易效益。1.1.2 移动电子商务的特点(1)“随时随地”。与传统的电子商务相比,移动电子商务的最大特点是“随时随地”。传统的电子商务已经使人们感受到了网络所带来的便利和乐趣,但它的局限在于台式电脑携带不便,而移动电子商务则可以弥补传统的电子商务的这种缺憾,可以让人们随时随地参与商业活动,感受独特的商务体验。(2)个性化。移动通信设备通常是属于固定的个人所有,商家可以将市场定位于具体的个人,用户则可以根据自己的个性化需求和喜好选择合适的服务与信息。(3)用户规模大。目前我国移动电话用户已突破7亿,超过了总人口的一半,居世界之首。庞大的潜在顾客群为移动电子商务的发展提供了坚定的市场基础。(4)方便。手机作为一种移动终端,按键少、屏幕小、操作简便、响应时间短。移动电子商务的运作形式和获取服务形式也都比较简单,便于广泛的人群掌握和进入,能够最大限度地扩展移动电子商务的主体规模,为最广大的群众所掌握。(5)有较好的身份认证基础。对传统的电子商务而言,用户的消费信用问题是影响其发展的一大 “瓶颈”,而移动电子商务在这方面显然拥有一定的优势。这是因为手机号码具有唯一性,手机SIM(Subscriber Identity Module)卡上存贮的用户信息可以确定一个用户的身份。对于移动商务而言,这就有了信用认证的基础。此外,与西方国家相比,目前我国银行卡的使用率不高,商业信用体系尚不健全,个人信用体系缺位。银行卡使用率低、使用网点少等现实问题的存在,都给移动电子商务发展提供了机遇。一些专家认为,在我国,以移动终端为载体的移动小额支付,有可能代替信用卡,弥补整个社会消费信用制度的缺位,成为人们较为容易接受的新型电子支付方式。1.1.3 移动电子商务的发展现状 随着全球化的信息技术革命,移动电话成为中国电信服务中来势最迅猛、发展最活跃的新秀,移动通信能力进一步加强,中国已成为世界移动电话第一大国。所以中国的移动电子商务具有非常大的市场前景。用户规模庞大。截至2009年8月底,国内手机用户数量已超过7亿。而据调查显示,中国手机网民占到整体手机使用人数的34.2%,总规模达到1.8亿。政策导向。2007年6月,发改委、国务院资讯办印发电子商务发展“十一五”规划,规划提出要“发展小额支付服务、便民服务和商务资讯服务,探索面向不同层次消费者的新型服务模式”。规划明确提出要求建设移动电子商务试点工程。2008年2月湖南成为首家“国际移动电子商务试点示范省”,这标志着国家移动电子商务的试点工程正式启动。国家政策将加快无线电子商务的应用和普及。产业链各环节纷纷布局。包括电信运营商、软体发展商、终端厂商、银行、服务提供商等产业链内的众多成员都开始涉足无线电子商务领域。产业链成员的协同努力是无线电子商务发展的主要推力。无线商务将借助于短信、WAP和RFID等多种方式得以实现。中国移动与商务部中国国际电子商务中心联合开发“商信通”,联通搭建如意商城,移动开发移动电子商务平台移动商街,阿里巴巴注册无线功能变数名称、与英代尔合作搭建无线商务平台。市场非常活跃。电信基础设施升级。2008年,3G开始在国内部分城市试点应用,电信基础设施不断提升,窄带无线逐步向宽频无线过渡。新一代宽频无线移动通信属于国家中长期科学和技术发展规划纲要(2006年2020年)中确定的16个重大科技专项之一,该专项的实施将为无线商务的发展奠定坚实的基础。无线互联网蓬勃发展。目前WAP在中国已进入快速增长期,随着用户关注度的不断提升,企业、个人建站意愿升温,WAP资源将出现爆破式的发展,服务内容也将由图铃游戏、搜索导航、手机阅读等几个方面向多元化转变。无线互联网的丰富将为无线商务培育用户,积累资源。随着2008年北京奥运会,在奥运3G应用的示范作用拉动下,2008年国内移动电子商务应用将更加普及,包括手机搜索、手机定位、手机游戏、手机音乐等个性化服务将得到更广泛的应用,企业移动应用也将更加广泛。1.2选题意义 移动电子商务是互联网、无线通信技术和手持终端技术融合发展的必然产物,是一种全新的数字商务模式,是电子商务朝着大众化、便捷化发展的一种延伸和扩展,是一种整合电子商务、沟通传统商务的创新营销应用潮流,是网络经济新的利润增长点。中国不仅已经成为世界移动商务最大的市场,而且拥有移动商务最广泛的客户资源,最适宜的文化环境,最旺盛的商业机会,最庞大的增值空间。因此,学习、认识、理解和把握移动电子商务的基本理论对于实战移动商务和加快移动商务的深入发展都具有重要的意义和作用。在我国,随着手机普及率的迅速提高,可以预见移动电子商务也将逐渐走向大众。和电子商务一样,要想成功地实现移动商务需要考虑到商务模型、客户服务、计费、营销等内容。除此之外,还涉及到其具体实现技术。目前的移动商务采用较多的实现方式主要有两种,一种是以支持无线应用协议WAP(Wireless Application Protocol)的移动通信设备为客户端,另一种则是以支持J2ME(Java 2 Micro Edition)的移动通信设备作为客户端。本文将在介绍J2ME的基础上实现一个基于J2ME的移动购物系统。1.3论文的组织结构本毕业论文研究课题主要以基于J2ME平台的移动购物系统的开发为线索,对由J2ME平台构建的移动电子商务应用涉及到的主要技术进行了详尽全面的分析研究,同时进行一个移动购物系统项目开发。 本文的组织结构如下: 第一章简略介绍移动电子商务的发展背景,包括移动电子商务的定义、特点和发展现状;第二章从技术的角度分析J2ME的体系结构;第三章对移动电子商务系统进行需求分析;第四章对移动电子商务系统进行详细设计;第五章是移动电子商务系统的实现;第六章进行总结。2 技术背景2.1 J2ME的简介2.1.1 J2ME的背景引言随着无线应用与嵌入式系统愈来愈受到人们的重视, SUN推出了J2ME (Java 2 Micro Edition),J2ME是一种新的、非常小的Java应用程序运行环境,主要用于嵌入式系统的Java,它所定义的构架主要用在手持式设备上1。J2ME是Java 2的一个组成部分,它与J2SE(Java 2 Standard Edition)、J2EE(Java 2 Enterprise Edition)并称。J2ME是一种广泛的以消费性信息产品为目标的,高度优化的Java运行时环境,其中的大部分类都保留了J2SE和J2EE的类,但根据移动设备的不同又优化和更新,主要针对那些使用有限的能源、有限的网络连接 (常常是无线连接)以及有限图形用户界面能力的设备. J2ME由于开发速度代决、周期短、支持手抓多及开发资源丰富 等优点成为当今最受欢迎的手机软件开发平台22.1.2 J2ME的体系结构由于J2ME所面对的是大量不同的资源受限的设备,并且他们在外观和功能 上均各不相同。为了支持各类资源受限设备所要求的灵活性和可定制部署性,J2ME平台的体系结构被设计成模块化和可伸缩的三层软件模型,这个模型构建在设备主机操作系统上,图1显示了J2ME的四层体系结构:图1 J2ME的四层体系结构(1)本地操作系统(Host Operating System)是各类资源受限设备的操作系统。(2)Java虚拟机(JVM Java Virtual Machine):这一层是JAVA虚拟机的一个现实,它是为了特定设备的主机操作系统定制的,而且支持一个特定的J2ME配置(Configuration)。由于JVM是Java代码运行时必须的,只有任何设备上有了JVM才能改很好的解释“一次编译,到处运行”的关键技术。那么在嵌入式或移动设备中也需要JVM作为操作系统和Java应用程序间的接口。但是由于内存的限制,嵌入式设备的JVM也要特殊提供。 J2ME中提供的JVM分为CVM(Compact Virtual Machine)和KVM(Kilobyte Virtual Machine),两者都是JVM的缩减版,但KVM比CVM功能稍弱。CVM虚拟机主要运行在存储量较大的嵌入式设备,比如可视电话.POS收款机等。 KVM是最小运行时环境的一部分,也就是用于CPU和内存较小的设备,这里的K是千字节的意思。KVM主要用于移动电话,个人数字助理(PAD)等小型设备。(3)配置(Configuration):配置层定义了Java虚拟机功能的和特定类别设备上可用的Java类库的最小集。从某种程度上说,一个配置定义了Java平台功能部件和库的共同性,开发者可以假设这些功能部件和类库在属于某一特定类别的所有设备上都是可用的。用户不大会见到这一层,但它对简表(Profiles)实现者非常重要。当前提供的J2ME配置有两类,CDC和CLDC。 CDC(Connection Device Configuration)连接设备配置。主要用于存储量较大,内存2MB以上的设备中,大多用CVM虚拟机。其用户接口较多。网络带宽有限,所以有很多不同的简表。而其最大的特点就是支持浮点数。包含了所有CLDC中定义的类和接口。 CLDC(Connection Limited Device Configuration)有限连接设备配置。主要用于小型的资源较小的设备中,针对内存小于512Kb的嵌入式系统。采用KVM虚拟机。其特点是很多J2SE的类和接口没有实现,最大的特点就是不支持浮点数3。关于CLDC在后面的章节会有介绍。(4)简表(Profiles):简表定义了特定系列设备上可用的应用程序编程接口(API)的最小集。简表在一个特定的配置上面实现。应用程序是针对特定的简表编写的,因此可以移植到支持该简表的任何设备上。一个设备可以支持多个简表。用户和应用程序供应商看到最多的就是这一层。后面的章节会介绍基于CLDC和KVM的简表MIDP(Mobile Information Device Profile)移动信息设备简表。2.2 CLDC的简介2000年5月,Java Community Process(JCP)公布了CLDC1.0规范(即JSR30)。作为第一个面对小型设备的Java应用开发规范,CLDC是由包括Nokia,Motorola和Siemens在内的18家全球知名公司共同协商完成的。CLDC是J2ME核心配置中的一个,可以支持一个或多个简表。其目标主要面向小型的、网络连接速度慢、能源有限(主要是电池供电)且资源有限的设备,如手机、机顶盒、PDA等。CLDC就是为小型的、资源受限的连接设备定义的一个Java平台标准,同时允许向这类小型的、资源受限的连接设备动态的传递Java应用和内容,并使Java开发人员能够轻松的在这些设备上进行应用开发。2.2.1 CLDC的整体需求(1)能运行在绝大多数的小型的、资源受限的连接设备上。(2)用CLDC为上述设备开发的应用尽可能的不使用设备的本地系统软件(做到与平台、设备无关)。(3)定义能应用在绝大多数上述设备上的最小子集的规范。(4)保证在不同类型上述设备之间代码级的可移植性和互操作性。2.2.2 CLDC的功能范围在CLDC1.0版本中定义了以下功能:(1)Java核心语言与Java虚拟机的特性 (2)核心Java类库(3)输入/输出 (4)对网络的支持(5)对安全性的支持(6)对国际化的支持不包含的功能:(1)对应用程序生命周期的管理(2)用户界面(3)事件处理(4)高级应用程序模式(这里指用户与应用程序的交互)2.2.3 CLDC的类库 CLDC标准为了能够涵盖尽可能多的动设备,去掉了许多类和特征,其类库只包含了最小的Java平台特性和API4。例如RMI、映射、错误处理、浮点数和文件系统等在CLDC中都被删除。 为了确保与其他Java平台的兼容性,绝大多数的CLDC类库是从J2SE和J2EE中继承而来,是J2SE和J2EE的子集。由于目标设备的特殊性,CLDC类库在安全、输入/输出、用户界面、网络和存储管理等方面没有全部使用J2SE的实现,其中的部分类库CLDC进行了重写,如网络连接等。CLDC只包含有以下四个包:Java.lang(Java编程语言的基本类);Java.util(集合、日期和时间支持、各式实用工具类);Java.in(基本输入输出); Javax.mieroedition(通用连接框架:GenerieConneetionFramework)。在以上四个包中,CLDC的类库可以分为两类:一类是从J2SE标准类库中继承的,它包括的J2SE的3个最核心的包,也就是上面介绍的前三个包,而且这三个包和J2SE相比,也只是JZSE相应包的一个很小的子集而已,例如Java.utll的类与接口由J2SE中的53个减少到10个;另一类是专门为CLDC设计的类库(当然这部分类也可以被映射到J2SE中),其中唯一新增的包Javax.microedition,它定义了一个通用连接框架(Generic Connection Framework,GCF)。通用连接框架把J2SE中的文件、socket、http请求和其他输入/输出机制的概念抽象为更简单的一套类,提供了与Java.io和Java.net类似功能,却不需要设备的特殊能力。2.2.4 CLDC的安全机制CLDC规范中主要定义了以下3个级别的安全机制:(1)底层安全机制(low-level security)底层安全就是通常说的虚拟机的安全,是虚拟机运行在CLDC设备上的最关键的安全机制。它要求运行在虚拟机上的应用程序必须遵循Java语言的标准语法,且能够检查出并组织恶意代码(类)以各种方式对设备进行破坏。对于标准的Java虚拟机的实现,虚拟机使用类审核的方式来保证虚拟机安全。类审核机制能够确保类文件中的字节码以及其他对象不包含非法指令,不会以非法的顺序被执行,也不会访问虚拟机以外的非法内存地址或是地址段。(2)应用级别安全机制(application-level security)仅用类审核机制来保证Java平台的安全运行是不够的。因为它仅仅能够确保应用程序的代码是可用的,还有很多潜在的安全威胁没有被涉及到,如对文件系统、打印设备、红外、本地类库以及网络等安全管理。在应用级别安全机制中,CLDC规定,Java应用程序只能访问系统类库、系统资源、额外的设备元件(如即插即用的设备等)和Java运行环境。 具体的实现是:应用程序运行在一个封闭的沙箱(sandbox)环境中以得到保护。在沙箱中,只有系统已定义的配置(configuration)、简表(profile)、可选包以及设备支持的一些类可以被应用程序访问。任何没有预先定义类库和资源都不允许访问,以防程序中的恶意代码对沙箱外的资源(如操作系统、硬盘等)非法访问或者破坏。(3)端对端的安全机制(end-to-end security) 端对端的安全机制主要指在数据传输时的安全,如数字签名、加密等机制。考虑到网络不是CLDC设备必须支持的功能,这方面的定义是由上层相应的简表来完成的,如MIDP;CLDC规范中并没有详细的规定。2.2.5 CLDC中类的预审核模式 J2SE提供了字节码的审核机制用于检查类文件的完整性。该审核机制是在编译时进行的,其目的是确保类文件中不包含可能破坏系统安全的或是违反了Java语言规范的恶意代码。其内容主要包括:(1)所有本地变量在使用前必须初始化(2)在构造对象时,其构造函数必须在该对象被使用前调用(3) 每个对象的构造方法必须调用父类的构造方法(要求最先调用Java.lang.Object的构造方法)(4)本地变量、实例和静态成员在声明时指明的对象类型必须和实际赋值的对象类型一致。例如,给一个声明成String类型的变量赋予Integer类型的值是不被允许的。类的审核机制仅仅针对于外来的类文件(比如从网络上下载的),而对本地文件系统中的类的加载是不用审核的。CLDC和J2SE一样,也要求虚拟机能够辨别并拒绝非法的类文件。但由于J2SE中定义的标准类审核过程对于应用CLDC的小内存消耗的小型设备来说是不现实的,因此CLDC专门定义了其特有的预审核机制。在CLDC的预审核机制中,要下载的Java类文件的每一个方法都包含了一个堆栈映射属性,这个属性是CLDC独有的,J2SE规范中没有定义。堆栈映射的属性会通过虚拟机的预审核器添加到标准的类文件中,该预审核器会分析类中的每一个方法。堆栈映射属性通常会增加约5的类的大小。图2 程序编译过程如图2所示,当程序的源程序被编译后,必须被预审核器预审核,然后才能生成可以被下载到目标设备上运行的类文件。把一部分的审核任务放在预审核器中完成,可以使与CLDC兼容的虚拟机审核Java类文件时速度更快,并且只需要很少的虚拟机代码和动态内存,而它们的安全级别相同。因此,在CLDC/MIDP环境下开发程序,其程序经过编译后,必须经过预审核后才能运行。2.3 MIDP的简介在Configuration中舍弃了设备的特殊性来保证Java平台的相容性,但是仅仅有Configuration显然是不够的,特殊的具体设备其独有的功能和硬件条件都没有得到支持。为此,在Configuration的基础上,根据设备具体功能再进行一次划分,比如智能手机,PDA等等。功能的划分也就是其他硬件条件的划分,比如屏幕大小,内存,计算能力,电力供应等等都是从属于功能的,因此同功能的设备的硬件条件都是非常相似的。简表(Profile)就是针对每一类功能设备的特殊性定义的与设备特性相关的API,建筑于配置之上,作为配置的扩展和补充。MIDP(Mobile Information Device Profile,移动信息设备简表)就是建立在 CLDC 的基础之上,用来描述手机和寻呼机这样更加具体化的无线移动设备的简表。MIDP连同功能较低的CLDC配置一起为移动设备应用的开发提供了最可能用到的Java平台。具体定义了J2ME适用的硬件和软件框架,并提供了这个框架要实现的基本功能及其标准接口。2.3.1 MIDP的硬件需求由于移动通信设备在屏幕、内存、处理器等问题上有诸多限制,在手机或是PDA等移动通信设备上开发应用程序必须要考虑一些技术上的特殊点。MIDP描述最低的硬件需求:(1) 显示屏:屏幕至少有96像素宽54像素高,屏幕至少支持两种颜色。 (2) 输入设备: 单手键盘(指ITU-T手机键盘), 双手键盘(指标准键盘,即QWERTY键盘)或触摸屏。 (3)内存:至少要有128KB非易失性内存(掉电后不会失去内容的内存)用于MIDP组件,32KB用于Java堆,8KB非易失性内存用于持久存储数据、32KB非易失性内存用于Java运行时环境。 (4)网络:提供在有限带宽的情况下,进行双向、无线通信功能,并允许间歇性连通。 (5)声音:在MIDP2.O中提供了媒体API的一部分实现,要求设备具有专门的硬件或软件算法用于简单声音实现。2.3.2 MIDP的软件需求(1)内核:至少要能运行KVM虚拟器。(2)需要某种形式的联网支持,在某些平台上可使用一个套接字级的API,基于此可以实现强制性的MIDP HTTP支持。对于不提供此方便接口的设备,厂商需要为HTTP提供一种方法从而在设备网络和Internet之间搭建连接。 (3)软件必须对系统键盘以及定点设备提供访问。若发生按键或释放键的操作,软件都必须能够分发相应事件。 (4)必须能够访问设备的屏幕。2.3.3 MIDP的APIMIDP 包含四个核心 CLDC 软件包(Java.lang、Java.io、Java.util 和Javax.microedition.io),另加下面的三个特定于 MIDP 的软件包:(1)用户界面包:Javax.microedition.Lcdui (2)应用生命周期包:Javax.microedition.MIDlet (3)持久存储包:Javax.microedition.Rms2.4 MIDlet的简介运行在MIDP设备上的JAVA应用程序叫做MIDlet(Mobile Information Devices applet 即移动通信设备小程序)。一个MIDlet包括至少一个JAVA类,此类必须派生自MIDP定义的抽象类Javax.microedition.midlet.MIDlet。MIDlet不能够单独地运行,必须运行在特定的环境之中,或者运行在一个容器中。我们可以把这个容器看作是一个大的应用程序,它运行在Java虚拟机之上,但不能完成任何特定的任务,因此需要程序开发者编写代码以完成一项工作,这些编写的程序就称作小应用程序。这样设计的目的是为了让它能在所有的容器中运行,这些容器实现可能不同,但容器的内部却是相同的。 通过这种形式,程序开发者就从各种运行环境、各种设备中解放出来,只需设计一个MIDlet,就可以在不同的浏览器上运行。比如不同厂家、不同型号的手机,只要它支持JZME、支持MIDP,就有这样一个容器。MIDlet中这个容器就是MIDP的实现,它以SUN公司发布的CLDC规范和MIDP规范为标准,然后针对设备进行移植,从而提供给所有的MIDlet都一样的容器内部接口。编写MIDP应用程序的要求就是必须扩展MIDlet类,这个类定义了一些接口,JVM可以通过这些接口对MIDlet进行控制。一旦MIDlet被JVM加载后,首先会调用MIDlet中没有参数的构造函数以进行初始化的工作。2.4.1 MIDlet的生命周期 所有MIDlet都派生自抽象基类Javax.microedition.midlet.MIDlet,其中包括MIDP平台为控制MIDlet生命周期调用的方法,还有MIDlet本身用来请求改变其状态的方法。MIDlet必须有一个公共的不带参数的默认构造函数,也必须实现startApp()、pauseApp()和destroyApp()方法。startApp()正常结束后,MIDlet获得所需要的资源,MIDlet处于运行状态。pauseApp()运行时,MIDlet会释放持有的任何资源。如果MIDlet创建了对象,则将对象状态存储到持久性存储器中并把对象设置为Null。如果MIDlet启动了任何线程,则停止或者暂停这些线程。MIDlet处于停止状态。destroyApp()运行后,MIDlet需要释放它所分配的所有资源,终止所有后台线程,并停止任何活动的定时器。MIDlet处于消亡状态。在任何一给定时刻,MIDlet可能处于以下三种状态之一:暂停(Paused)、活动(Active)和销毁(Destroyed)。当MIDlet被应用程序管理器成功的初始化后,就开始了它的生命周期。如图下图所示:图3 MIDlet的生命周期 从图3可以看出,MIDlet在应用程序在生命周期中可能出于以下三种状态之一:运行状态(Active)、停止状态(Paused)、消亡状态(Destroyed)。初次加载MIDlet时,会调用静态的初始化程序,创建一个MIDlet实例并使得他处于Paused状态,当startApp方法被调用的时候MIDlet进入Active状态,也就是运行状态。在active状态调用destroyApp()或者pauseApp()方法可以使得MIDlet进入Destroyed或者Paused状态。事实上,当destroyApp(unconditional)方法被调用的时候,程序管理器通知MIDlet进入destroyed状态。在destroyed状态的MIDlet必须释放了所有的资源,并且保存数据。如果unconditional为false的时候,MIDlet可以在接到通知后抛出异常而保持在当前状态,如果设置为true的话,则必须立即进入destroyed状态。2.5 LWUIT的简介 LWUIT(Lightweight User Interface Toolkit 轻量级用户界面工具包)是由sun公司推出的开源轻量级UI工具包,可良好的运行在J2ME平台上。主要的特性包括:类似Swing 的MVC架构,支持多种可视化组件,布局(Layouts),皮肤更换,字体,触摸屏,动画效果,Rich控件,3D集成,Painter,模式对画框等。对比MIDlet的自带UI库,LWUIT的UI库使用更方便,显示效果更好5。 LWUIT的组件层次如图4:图4 LWUIT的层次结构3 J2ME移动购物系统的需求分析 在软件工程中,需求分析指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围、定义和功能时所要做的所有的工作。需求分析是软件工程中的一个关键过程,只有真正了解系统用户的需求,系统设计的时候才能有的放矢,针对具体的需求实现具体的功能模块,这样一方面可以降低系统开发的成本、缩短开发周期,另一方面可以有效提高工作的效率。3.1系统功能的需求分析 用例描述系统如何与外部参与者交互,每个用例表示系统提供给其用户的一段功能,对于捕获非形式化的需求来说,用例很有用6。用例图(User Case)就是由主角、用例以及它们之间的关系构成图,面向对象的建模过程中,用例图一般用来做系统功能需求分析。移动购物系统的用例分析如图5:图5 系统用例图(1) 用户用户是指移动购物系统的使用者,同时也是交易过程的发起者,是本系统的主要服务对象。他能够通过登录连接到服务器端,浏览感兴趣的商品信息,购买自己需要的商品,支付生成的物品订单以及查询和管理自己的账户信息等。(2)登录为了保证系统的安全性,用户想要使用移动购物系统就必须注册,注册信息包括用户名和密码等。使用移动购物系统的功能前,凭借注册的用户名和密码进行登录,验证合法后才能进行相应的操作。(3)浏览商品本系统会以一种合理的方式将数据库中的商品信息展现给用户,用户也可以通过有关功能对商品信息进行筛选,使用户专注于自己感兴趣的信息。(4)购买商品 用户可以在手机端选择想要购买的物品,然后只需要简单的操作就可以生成相应的商品订单作为支付的依据,整个过程十分方便。用户也可以将自己喜欢的商品放入购物车中。购物车中的东西也可以修改,删除,清空。我们的购物车有保存的功能,等下次用户再次登录时我们会保存用户上次放入购物车中没有卖的东西。(5)订单支付系统会把订单信息详细地展示给用户。用户只需要选择想要进行支付的订单,然后进行一系列简单操作,就可以使用自己的账户进行支付操作,这个过程中,支付请求被提交给金融机构的支付网关,由他们扣除用户账户内的金额,把他转到相应的商家的账户上,完成后返回一个交易成功的信息,整个支付过程结束。(6)信息查询系统提供简单的用户信息查询和管理功能,用户对部分的注册信息进行修改。3.2 各功能模块的分析(1)登陆模块 输入:用户输入正确的用户名和登陆密码。处理:根据用户输入的登陆信息与数据库中的信息作比较,信息符合要求即可登陆,否则登陆失败。输出:输出登陆处理信息。说明:用户名具有唯一性,用户名对应一个密码。(2)注册模块输入:用户输入用户名,登陆密码,真实姓名,住址,电话号码,性别,出生日期。处理:根据用户输入的注册信息与数据库中的信息作比较,信息符合要求即可注册,否则注册失败。输出:输出处理信息。说明:用户注册必须要输入的信息是用户名和密码,其它信息不强制输入,但用户有意购物则必须输入其它信息。(3)商品浏览模块 输入:商品类型,品牌等信息。处理:根据用户输入的信息读取数据库中的相关的数据项,并返回给客户端。输出:商品具体信息。说明:商品浏览模块包括商品搜索功能,用户输入搜索信息,系统返回相关信息。(4)购物车功能模块 输入:商品信息。处理:把用户的所选择的商品的主关键字保存下来。输出:用户所选择的商品信息。说明:用户使用本系统购物时,不需要每购买一件商品就付一次费,用户可以把所选择的商品“放进”购物车,最后一次性付费。(5)订单管理模块输入:订单信息。处理:保存订单信息。输出:订单处理信息。说明:用户每一次购买商品就生成“一张订单”,订单记录付费总金额,商品清单,交易日期等信息。(6)用户信息管理模块输入:修改的和新输入的用户信息。处理:保存用户输入的信息。输出:处理信息。说明:除了用户名不能修改外,用户注册时所输入的信息均可修改,由于用户注册时有部分的信息可以为空,所以本系统允许注册后再输入其它3.3 开发环境3.3.1软件开发环境软件开发环境如表1所示:表1 软件开发环境开发工具类型开发工具名称Java版本移动端开发工具UI库UI设计程序1.6J2ME Wireless Toolkit 2.2Eclipse+Eclipseme.featureLWUITLWUIT_Theme_Design说明:使用Eclipse开发手机应用程序必须安装Eclipseme插件。该插件可以将各手机厂商的实用模拟器紧密连接到Eclipse开发环境中,为开发者提供一种无缝统一的集成开发环境。在本系统开发中使用的是Eclipse+Eclipseme.feature _1.7.9_site。而WTK(Wireless Toolkit)是SUN的无线工具开发包,该工具箱包含了完整的生成工具、实用程序以及设备仿真器。LWUIT_Theme_Design是一个专门设计LWUIT主题的软件。3.3.2数据库环境数据库环境如表2所示:表2 数据库环境开发工具类型开发工具名称数据库数据库界面管理程序MySQLMySQL-front说明:MySQL+front是一款小巧的管理Mysql的应用程序.主要特性包括多文档界面,语法突出,拖拽方式的数据库和表格,可编辑/可增加/删除的域,可编辑/可插入/删除的记录,可显示的成员,可执行的SQL 脚本,提供与外程序接口,保存数据到CSV文件等。3.3.3服务器环境服务器环境如表3所示:表3 服务器环境开发工具类型开发工具名称Web应用服务器Tomcat 6.0说明:本系统的服务器使用的是由Apache组织开发的Tomcat6.0。3.3.4硬件环境硬件环境如表4所示:表4 硬件环境硬件类型开发工具名称CPU内存Intel Pentium Dual E2140DDR2 2G4系统分析与设计4.1 系统架构的分析本系统使用MVC(Model-View-Controller),即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离。这样一个应用被分成三个核心部件:模型(Model)、视图(View)、控制器(Control),每个部分各自处理自己的任务。视图是用户看到并与之交互的界面,同时也是反馈信息显示的窗口;控制部分则是整个系统的核心,它接收用户发送的请求,并把这个请求映射到对应的逻辑处理单元,同时也把处理的结果按照要求的格式返回给用户终端;模型担负着表示具体的实体数据信息及业务规则的任务。这种模式结构灵活,各模块之间提供相应的数据接口进行消息的传递,这样有利于以后部件的重用及对该系统的扩展。模型、视图、控制器三者之间的关系和各自的主要功能如图6所示。 图6 MVC的关系MVC模式作为一种已成熟应用在PC客户端的设计模式,其优点是不言而喻的。这些优点同样也在J2ME上得到了很好的体现:(1)MVC最大的优点就在于它把一个应用分成了3层,这样程序设计的灵活性就大大增加了。例如,一个应用的业务流程或者业务规则的改变只须改动MVC的模型层,而界面表现方式的改变则只须改动MVC的视图层。(2)将MVC分离可以让不同的专家负责不同的模块。一般情况下,M部分由熟悉数据库、网络传输的专家负责;V部分则交给对UI有研究的专家。分工意味着可以提高效率并可以按照传统的责任划分来处理软件开发过程,使开发者可以专心于一个领域,从而极大地提高了软件开发的效率。(3)模型的部分,因为足够抽象,可以方便地重复利用,符合OO的思想。另一方面可以利用J2meUnit等单元测试工具对模型进行单元测试,以保证工程质量。然而MVC模式也存在着一些缺点,而这些缺点在J2ME应用上体现得更加明显:(1)MVC模式应用于J2ME上的最大缺点莫过于增大了代码体积。据不完全统计,使用了MVC模式后,代码体积约是不使用MVC的1.5倍。这对PC上的客户端软件来说可能不算什么,可是对于存储容量十分有限的移动设备则是致命的。(2)模型、视图与控制器分离,它们之间传递数据时会耗费一定的系统时间,这或多或少会降低程序的运行效率。而程序体积的膨胀也使得J2ME在装载类时会耗费更多的时间,也从一定程度上损害了程序的性能。(3)MVC的3个部件定义并不具体,对于3个部件的具体功能还存在着一些争议。这给初学者留下不少的陷阱,加大了使用MVC模式的难度。4.2 系统逻辑结构的设计整个系统逻辑结构如图7,主要涉及了无线移动终端、服务器端和数据库服务系统三个部分。图7 系统逻辑结构(1)无线移动终端: 决定移动购物终端数据界面的展示方式,数据格式的转换及网络的访问方式等。客户端程序可以在无线移动终端选用支持J2ME的手机或者手机模拟器软件来运行。采用J2ME技术规范开发应用程序MIDlet,可以屏蔽各个手机厂商不同手机软硬件的特性差异,使程序可以在各种支持J2ME的手机上很好的运行和移植。(2)服务器端: 主要用来抽象移动商务系统的应用功能,封装商务系统的状态,提供使用该系统功能的方法和路径。系统使用ApacheTomcat作为系统的web服务器。ApacheTomcat作为一个开源的Servlet容器,完整的实现了servlet和JSP规范。此外,Tomcat是以Java编写的,所以Tomcat服务器(以及应用程序)可以被移植到不同的服务器7、操作系统甚至架构上,而不需要任何改变。(3)数据库服务系统: 负责存储系统逻辑处理所需的数据,管理数据的存储和一致性。本系统中使用MySQL数据库对数据进行存储。MySQL数据库是基于客户机/服务器CS体系结构的分布式数据库管理系统,具有功能丰富、使用简便、管理方便、运行速度快、安全可靠性强等优点,同时MySQL-Front简化了管理、优化工作,并且增强了迅速、成功的部署在线商务应用程序所需的可靠性和伸缩性。4.3业务逻辑设计本系统的客户端运作模式可分为两种,第一种:不与服务器发生交互。第二种:与服务器进行交互。(1) 不与服务器进行交互的运作模式图8 不与服务器交互的模式说明:当界面的切换不涉及到数据库的数据,客户端不会与服务器发生交互。 (2)与服务器进行交互的模式图9 与服务器进行交互的模式说明:当界面的内容涉及到数据库里的数据,客户端需要与服务器发生交互。客户端利用通信控制器与服务器进行通信,通信控制器则利用相应的通信模型与服务器进行通信,通信控制器通过向界面控制器返回数据从而控制界面的切换。4.3客户端的设计(1)MyMIDlet类 该类派生自MIDlet类,主要负责系统主界面的功能菜单以及布局、按钮的显示和处理相应的响应事件的类。Startapp方法中调用了UIControl对象对视图进行控制。(2)UIControl类UIControl类是一个核心的类,主要作用是控制视图的转换,它是每一个View类的参数。 其中核心方法handle方法根据不同的事件ID对视图进行切换。其工作方式有两种:第一种如果视图不需要和数据库进行交互,那只需要对视图进行实例化后,调用其show方法即可;第二种若视图需要和数据库进行交互,UIControl会调用对应的初始化方法,先传递参数再进行实例化,然后再显示。(3)EventControl事件控制类没有方法,只有最终的静态的属性,属性对应的数值是程序中每个事件的编号,其作用是对应用程序中各个事件进行管理、UIControl控制视图转换时起导航作用。 事件控制类的设计降低程序的复杂性,提高程序的可读性,同时也使程序思路更清晰。(4)ImageControl类说明:图片控制类的作用主要是读取图片,静态方法getImange(String image)以图片的名字作为参数,返回Image类型的数据。主要是对客户端的静态图片进行管理的。 (5)CommumicateControl类CommumicateControl类作用是控制客户端与服务器的交互。通过事件ID,CommumicateControl调用相应的Model的方法。(6)AddressData、BTData、ColletionData、GoodsData、OrderData、RegisterData类有时候客户端与数据库的交互是一系列数据进行传输的,一个一个数据地进行传输效率低下,上述的类就是方便数据传输而设计的。上述类的内部都有一系列的私有属性,每一个私有属性都对应一对get/set操作,上述类还包含一个序列化方法和一个反序列化方法。发送方发送数据时通过序列化方法发送数据,接收方通过对应的反序列化方法接收数据。(7)model包中的类与服务器通信的每一个动作都对应一个model,由于发送和接收的数据千差万别,所以每一个发送和接收都有一个model进行相应的处理。当客户端和服务器只需要少量数据交互的时候,不需要通过序列化和反序列化操作,而是直接调用model中的相关操作直接进行发送或接收。4.4服务器的设计(1)MyServlet类MyServlet类派生于Servlet,它担当客户请求(Web浏览器或其他HTTP客户程序)与服务器响应(HTTP服务器上的数据库或应用程序)的中间层。(2)MainControl类这是服务器的核心类。MysServlet只对进行客户请求进行接收,它不会对客户请求进行处理。MainControl会根据客户请求的报头调用相应的处理方法对客户的请求进行处理。(3)Manage包中的类这些类负责接收客户端发送过来的数据,并向客户端发送处理后的数据。(4)ConnectionBean类ConnectionBean类负责连接数据库,其中包含的getStatement方法返回一个statement类型的值。(5)Bean类这些类负责对数据进行处理,并对数据库进行操作。4.5 数据库设计数据库E-R图如下:图10 数据库E-R图说明:user表记录了用户的信息。goods表记录的商品的信息。addressbook表记录了用户的送货地址。一个用户对应多个送货地址,但当前送货地址只有一个。attention-brand和attention-type分别表示用户关注的品牌和用户关注的商品类型。使用本系统用户可以选择自己喜欢的品牌和商品类型,系统会根据用户的选择向用户展示相应的信息。brand和type分别表示数据库中所有的品牌和商品类型。bill表记录了用户的订单,一个用户可以对应多张订单。由于用户一次可以购买多种商品,所以一张订单可以对应多种商品,订单bill和bill-includes就是表达了这种情况。comment表记录用户对已购买的商品的评价,iscomment字段表示商品是否已经评价。由于系统有“暂存架”功能,系统会记录用户“放在暂存架”的商品。comment也是设计来实现此功能。当用户把一个商品“放进暂存架”,comment表会添加一条记录,此时isbuy字段为false,即用户还没有购买,iscomment字段也为false,即用户还没有评价。当用户从“暂存架”菜单中购买了商品,对应商品的isbuy字段会变为true,表示商品被购买,此时用户才可以对商品进行评价,但用户对商品进行了评价后,iscomment字段为true。5基于J2ME的移动购物系统的实现5.1购买功能购买功能的序列图:图11 购买功能的序列图实现代码:public ShopUI(BTData btdata, UIControl uicontrol,CommumicateControl commumicatecontrol) this.btdata = btdata;this.uicontrol = uicontrol;this.commumicatecontrol = commumicatecontrol;this.setLayout(new BorderLayout();this.setCommandListener(this);back = new Command(Back);this.addCommand(back);this.type_string = this.btdata.getType();this.type_count = this.btdata.getTC();this.brand_string = this.btdata.getBrand();this.brand_count = this.btdata.getBC();this.type_container = new Container(new FlowLayout();this.brand_container = new Container(new FlowLayout();
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 大学资料


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!