基于J2ME平台的掌上网络商店客户端开发.docx
- 文档编号:24603168
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:40
- 大小:288.55KB
基于J2ME平台的掌上网络商店客户端开发.docx
《基于J2ME平台的掌上网络商店客户端开发.docx》由会员分享,可在线阅读,更多相关《基于J2ME平台的掌上网络商店客户端开发.docx(40页珍藏版)》请在冰豆网上搜索。
基于J2ME平台的掌上网络商店客户端开发
分类号:
TP393UDC:
D10621-408-(2007)5920-0
密级:
公开编号:
2003032194
成都信息工程学院
学位论文
基于J2ME平台的掌上网络商店——客户端的开发
论文作者姓名:
金博文
申请学位专业:
网络工程
申请学位类别:
工学学士
指导教师姓名(职称):
何林波
论文提交日期:
2007年6月10日
基于J2ME平台的掌上网络商店——客户端的开发
摘要
根据SUN的定义,J2ME是一种以广泛消费性产品为目标的高度优化的Java运行时环境,它包括寻呼机、移动电话、可视电话、数字机顶盒和汽车导航系统。
J2ME具有显著的优势,它对移动设备的智能化和多样化提供了革命性的解决方案,并因其具有“WriteOnce,runanywhere”的Java特性提高了开发效率。
随着移动通信市场竞争的逐渐加剧,移动通信运营商将逐步把战略投资方向转移到种类繁多的无线数据业务上面来,因此J2ME无线数据应用具有较为广泛的商业前景。
目前,网上购物系统具备的24×7服务模式与即时互动方式,大量吸引了广大购物者的注意力,具有很大的市场潜力。
本论文选择的是基于J2ME平台来研究无线网络模式下的网络商店,论文首先介绍了J2ME相关的基础技术与理论,随后研究了在线销售系统的若干关键技术,重点是对客户端部分的结构和具体功能做了较为详细的阐述。
最后,根据自己的设计思路和方法实现了基于J2ME平台的掌上网络商店客户端系统的开发,并与负责服务端开发的同学进行了验证、配合测试,达到了预期成果。
关键词:
J2ME;XML;无线应用;网络商店
ThePalmPlatformofe-ShopBasedontheJ2ME-
ClientDevelopment
Abstract
AccordingtoSun’sdefinition,J2MEisanoptimizedJavafunctioningenvironmentorientedinmassiveconsumptionproducts.Anditincludes:
pagers,mobilephones,videophone,digitalset-topboxesandcarnavigationsystems.Asaresult,itprovidesarevolutionarysolutionformobiledevicesandintelligentdiversification,andimprovesthedevelopingefficiencyforits"WriteOnce,runanywhere"Javaproperties.Meanwhile,asthecompetitionofmobilecommunicationsmarketincreases,mobilecommunicationsoperatorswillgraduallyshiftthestrategicdirectionoftheinvestmentbusinesstoawidevarietyofwirelessdataservicestotheirsuperiors,SoJ2MEwirelessdataapplicationswithawiderrangeofbusinesswillprospect.Currently,onlineshoppingsystemwitha24x7service,whichisanimmediateinteractivemode,notonlyattractsalotofcustomers,butalsohasgreatmarketpotential.
Basedonthat,thispaperchoosesJ2ME-basednetworkshoptostudythewirelessnetworkmodel.Atfirst,thispaperintroducesandanalyzestheJ2MErelatedbasictechnologyandtheory.Andthenitstudiessomekeytechnologiesoftheonlinesalessystem.Stillthispapersurveysthedetailsoftheclientpartofthestructuralanalysisandspecificfunctions.Finally,accordingtotheideasanddesignmethodbasedontheJ2MEplatformforhandheldshopsnetworkclientsystem,andwiththehelpoftheclassmatewhowasinchargeoftheserverdevelopment,thispaperachievestheexpectedresults.
Keywords:
Java2MicroEdition;XML;Wirelessapplication;Networkstore
目录
论文总页数:
26页
1引言1
1.1选题背景及目的1
1.2手机软件现状1
2相关技术及开发环境介绍2
2.1J2ME概况2
2.2J2ME体系结构3
2.3联网机制5
2.4数据交换技术7
2.5开发环境8
2.5.1关于WirelessToolKit2.59
2.5.2eclipse下面的J2ME环境配置9
3需求分析与设计方案9
3.1需求分析9
3.2设计方案10
3.3J2ME客户端需要完成的任务12
4程序流程与具体实现13
4.1程序涉及到的若干类13
4.2XML的解析13
4.3登陆系统实现17
4.4注册系统实现18
4.5查询系统实现20
4.6购买系统实现21
5系统开发测试中的问题22
5.1屏幕跳转22
5.2事件处理机制23
结论23
参考文献24
致谢25
声明26
1引言
1.1选题背景及目的
近几年,由于微处理器性能的大幅提升,加上无线通讯技术的突破,手持式移动设备开始受到大众的青睐。
短短几年内,手机已经升级了几代产品,普及率逐年攀升,生产效率不断上升,产品价格比个人电脑的摩尔定律有更惊人的下调,以至手机是大多是城市居民不可缺少的一件随身设备。
继短信、彩信等服务之后,中国移动提供基于Java的百宝箱业务,应用产品遍及商务应用、信息获取、英汉互译、游戏娱乐等多媒体领域。
根据官方公布的统计数据,我国移动电话用户已突破3亿。
依托这样的市场,一旦无线Java应用大规模开展起来,将会创造出比短信业务更为惊人的利润。
Java语言原先的开发目的与市场的需求不谋而合,并且也已经成为手机应用程序开发的标准,国际大公司如Nokia、Motorola及Siemens等所设计的手机内都加入Java程序的支持,可见在不久的将来,Java将会成为移动设备上最热门的语言。
手机中将Java语言引入,作为一种通用的开发标准,并将向市场推广普及仅仅短短几年,中文资料除台湾出版过相关书籍外,国内相关介绍资源很有限,国内J2ME开发商也屈指可数,名声较响的Digital-Red公司也仅成立于1999年。
本文可算是对新技术的一些尝试,代表对无线平台应用程序推广的一些努力。
而本次研究的目的就在于:
在设计J2ME网络商店-客户端中,仔细研究J2ME,掌握基本的J2ME开发技术、网络编程技术,XML解析技术等知识。
1.2手机软件现状
Java手机软件平台采用的基本Java平台是CLDC(ConnectedLimitedDeviceConfiguration)和MIDP(MobileInformationDeviceProfile),是J2ME(Java2MicroEdition)的一部分,在中国一般称为“无线Java”技术。
此前,有人把它叫做“K-Java”;其实,K-Java的叫法只是Sun公司在开发KVMJava虚拟机时的项目代号,在该技术被正式命名为KVM后,就不再用K-Java了。
KJava即J2ME(Java2MicroEdition),是Sun公司专门用于嵌入式设备的Java软件。
以KJava编程语言为手机开发应用程序,可以为手机用户提供游戏、个人信息处理、电子地图、股票等服务程序。
J2ME(Java2MicroEdition)是致力于消费产品和嵌入式设备的最佳解决方案。
J2ME在设计其规格的时候,遵循着“对于各种不同的装置而造出一个单一的开发系统是没有意义的事”这个基本原则。
于是J2ME先将所有的嵌入式装置大体上区分为两种:
一种是运算功能有限、电力供应也有限的嵌入式装置(比方说PDA、手机);另外一种是运算能力相对较佳、并且在电力供应上相对比较充足的嵌入式装置(比方说冷气机、电冰箱)。
因为这两种区分,所以Java引入了一个叫做Configuration的概念,然后把上述运算功能有限、电力有限的嵌入式装置定义在ConnectedLimitedDeviceConfiguration(CLDC)规格之中;而另外一种装置则规范为ConnectedDeviceConfiguration(CDC)规格。
也就是说,j2me先把所有的嵌入式装置利用Configuration的概念区隔成两种抽象的型态。
Java技术的开放性、安全性和庞大的社会已有资源,以及其跨平台性,即“编写一次,到处运行”的特点,使Java技术成为智能手机软件平台的事实标准。
采用Java技术后,编写应用程序和提供服务的人就不必关心接受其服务的手机采用的是什么操作系统和芯片,只要按照Java的要求去写程序就好了;同样,生产手机的厂商也不必顾虑将来谁来提供增值服务。
可以看出,采用Java技术,可以建立完整、高效的无线数据增值服务产业链,从而为用户提供灵活、个性化、内容方式多样的服务。
2相关技术及开发环境介绍
2.1J2ME概况
虽然Java已经被用到许多企业级软体上,可是其实骨子里面还是非常适合用在嵌入式系统之中。
Java平台演进到Java2后,Java平台分别针对不同领域的需求被分成四个版本,亦即J2EE、J2SE、J2ME以及JavaCard(其结构示意图见图1)。
其中J2ME定位在消费性电子产品的应用上。
这个版本针对资源有限的电子消费产品的需求精简核心类库,并提供了模块化的架构让不同类型产品能够随时增加支持的能力。
这个版本的应用层面相当广泛,会是未来Java平台发展的重点项目。
J2ME在设计其规格的时候,遵循着“对各种不同的装置而造出一个单一的开发系统是没有意义的事”这个基本原则。
图1Java平台的结构
于是J2ME先将所有的嵌入式装置大体上区分为两种:
一种是运算功能有限、电力供应也有限的嵌入式装置(比方说PDA、手机);另外一种则是运算能力相对较佳、在电力供应上相对比较充足的嵌入式装置(比方说冷气机、电冰箱、电视机上盒(set-topbox))。
因为这两种型态的嵌入式装置,所以Java引入了一个叫做Configuration的概念,把上述运算功能有限、电力有限的嵌入式装置定义在ConnectedLimitedDeviceConfiguration(CLDC)规格之中;而另外一种装置则规范为ConnectedDeviceConfiguration(CDC)规格。
也就是说,J2ME先把所有的嵌入式装置利用Configuration的概念区隔成两种抽象的型态。
J2ME平台被认为是最杰出的手机游戏平台,它为开发者、设备制造商、网络通信公司和消费者广泛接受。
它有一些非常重要的特征对所有组织都有益。
因为J2ME应用在不同设备上都是便携式的,他们常常可在网络上下载和执行。
如果没有正确的防范,它则为用户和无线通信公司冒着无数个安全的风险。
幸运的是,Java被设计成一种安全的语言。
所有字节码应用在执行之前都要校验;JVM在执行过程中监督应用的安全性和存储违反问题。
MIDPv2运行时间包括一个完全特征化的、基于域的安全管理员,它在应用的数字签名者鉴别的基础上赋予应用API级许可。
2.2J2ME体系结构
J2ME体系结构是基于设备的系列和类别的。
一个类别定义了一个特定种类的设备:
移动电话、简单寻呼机和电脑记事本都是单独的类别。
对存储器和处理能力有相近需求的若干类别的设备构成设备的一个系列。
移动电话、简单寻呼机和简单个人电脑记事本一起就是占用资源很小的设备的一个系列。
图2定义了在J2ME上下文环境中设备的系列和类别之间的关系。
为了支持资源受限设备系列所要求的那种灵活性和可定制部署,人们将J2ME体系结构设计成模块化的和可伸缩的。
J2ME技术在一个完整的应用程序运行时模型中定义了这种模块性和可伸缩性,在该模型(图3所示)中的四个软件层都构建在设备的主机操作系统上。
Java虚拟机层(JavaVirtualMachineLayer):
这一层是Java虚拟机的一个实现,它是为特定设备的主机操作系统定制的,而且支持一个特定的J2ME配置(configuration)。
配置层(ConfigurationLayer):
配置层定义了Java虚拟机功能的和特定类别设备上可用的Java类库的最小集。
从某种程度上说,一个配置定义了Java平台功能部件和库的共同性,开发者可以假设这些功能部件和库在属于某一特定类别的所有设备上都是可用的。
用户不太会见到这一层,但它对框架(profile)实现者非常重要。
框架层(ProfileLayer):
框架层定义了特定系列设备上可用的应用程序编程接口(API)的最小集。
框架在一个特定的配置上面实现。
应用程序是针对特定的框架编写的,因此可以移植到支持该框架的任何设备上。
一个设备可以支持多个框架。
用户和应用程序供应商看到最多的就是这一层。
MIDP层:
移动信息设备框(MobileInformationDeviceProfile(MIDP))是一个JavaAPI集合,它处理诸如用户界面、持久存储和联网这样的问题。
Java虚拟机层(JavaVirtualMachineLayer)、配置层(ConfigurationLayer)和框架层(ProfileLayer)一起构成了连接限制设备配置(ConnectedLimitedDeviceConfiguration(CLDC))。
MID框架(MIDProfile)和CLDC提供了一个标准的运行时环境,这个环境允许把新的应用程序和服务动态地部署在终端用户设备上。
用MIDPAPI进行J2ME编程:
构件CLDC和MIDP组合起来为创建移动电话和简单双向寻呼机上的应用程序提供了完整的环境。
MIDP框架的核心是一个MIDlet应用程序。
这个应用程序继承了MIDlet类,以允许应用程序管理软件对MIDlet进行控制、从应用程序描述符检索属性以及对状态变化进行通知和请求。
所有MIDlet都继承MIDlet类—运行时环境(应用程序管理器)MIDlet应用程序代码之间的接口。
MIDlet类提供了用于调用、暂停、重新启动和终止MIDlet应用程序的API。
应用程序管理软件可以在运行时环境内管理多个MIDlet的活动。
此外,MIDlet可以自己发起一些状态变化,并把这些变化通知给应用程序管理软件。
MIDPAPI类的完整集合可以分为两个类别:
1、用于用户界面的MIDPAPI:
设计这些API是为了能以一系列屏幕显示为基础与用户进行交互操作,每一屏幕显示把适量的数据显示给用户。
命令以每屏幕为基础提供给用户。
这些API应用程序决定下一屏显示什么、执行什么计算和使用网络服务的何种请求。
2、用于处理数据库的MIDPAPI:
这些API负责组织和操作设备数据库,这个数据库由在MIDlet的多个调用之间跨越时保持持久的信息组成。
底层的CLDCAPI用于处理字符串、对象和整数。
还提供了Java2API的一个子集,用于处理I/O和网络通信。
图4定义了J2ME的构件。
2.3联网机制
通用联网框架(图5)在J2ME平台中扮演着十分重要的角色,如果没有它,我们写的应用程序对外人来说只能说“神秘”,而应用了通用联网框架进行联网的程序就显得“神奇”了。
这里我将对通用联网框架进行整体的分析,由于移动信息设备的资源受限特性,所以和java.io包不适合在这里使用。
现实世界中使用着各种各样的网络通信协议,这使得设计好这个框架非常不容易,至少我是这么认为的。
然而当我们分析GCF的时候可以清楚地发现它有如下几个特性:
基于接口设计,便于扩展、提供创建连接的工厂方法、使用标准URL简化了程序员的工作。
当我们察看CLDC1.1的API的时候可以发现其中定义了8个接口、一个Connector类和ConnectionNotFoundException异常。
在MIDP2.0中进行了扩展,提供了HttpConnection、HttpsConnection接口,这样使得MIDlet具备了通过Http或者Https协议与server通信的能力,提供了SocketConnection、ServerSocketConnection、UDPDatagramConnection接口,使得MIDlet能够在TCP/IP层通过socket进行通信或者使用数据报进行通信的能力。
结合GCF的接口层次图来了解通用联网框架是最好的办法,下面我们看看它的层次结构。
最上层的接口是Connection,其他的接口都从他那里继承。
在Connection中只定义了一个方法close()。
在我们的现实世界中通常使用的是分组数据交换和电路交换,所以在网络框架中有DatagramConnection和StreamConnection。
由于在基于流传输中我们需要对输入流和输出流通是具有操作的能力。
因此StreamConnection扩展了InputConnection和OutputConneciton,我们经常使用的Conn.openInputStream(),conn.openOutputStream()方法都是在这两个重要的接口中定义的。
StreamConnectionNotifier接口定义了连接监听器应该具备的能力,它的方法acceptAndOpen()方法返回一个StreamConnection类型的连接,ServerSocketConnection继承了StreamConnectionNotifier接口,这样如果你做socketserver的时候就可以通过使用这样的URL,socket:
//:
port在你的设备上建立监听端口等待连接。
SocketConnection继承StreamConnection正好可以和ServerSocketConnection交相辉映。
UDPDatagramConnection则是为了分组数据交换中使用而继承了DatagramConnection接口。
ContentConnection接口中只定义了三个方法getEncoding(),getLength()和getType(),HttpConnection就是他的子类,在HttpConnection中定义了大量的操作。
图5通用联网框架
而GCF的是使用非常简单,主要集中在Connector的open()方法上。
我们要做的是提供一个标准URL给open方法,例如需要得到HttpConnection我们应该写类似下面的代码:
Stringurl=“http:
//myip:
myport/myservlet”;
HttpConnectionhttpConn=(HttpConnection)Connector.open(url);
我在这里只列入它的基本格式:
{scheme}:
[{target}][{parms}],针对不同的网络通信方式,我要做的就是写出不同的URL,并通过强制转换得到你需要的连接类型。
2.4数据交换技术
本章主要介绍在J2ME中客户端和服务器端的数据交换技术,由于移动设备有限的处理器能力和内存,不支持一些像JavaRMI或JAX-RPC复杂的客户端/服务器通信机制,而必须选择一种较为轻量级通信机制。
一般通信方式有:
基于HTTP的通信方式、基于SOCKET的通信方式和基于数据包的通信方式等。
但是基于SOCKET或数据包方式目前不是所有的MIDP设备都支持,而且可能无法穿越防火墙,而基于HTTP的通信方式却不存在此类问题,大多数企业的防火墙都对80端口上的向外HTTP请求没有限制或做少量的限制,对大多数应用,以HTTP作为通信协议基础完全可以胜任。
而且所有的MIDP设备都支持HTTP网络,因此使用HTTP网络的应用程序跨平台性很好。
另外,Java网络API为HTTP通信提供了编程接口。
图6基于HTTP的MIDP客户端和服务器端
下面阐述基于HTTP的MIDP客户端和Servlet之间的基本通信方案(如图6所示)。
一、基于HTTP的MIDP客户端和Servlet之间的通信步骤为:
1.首先,MIDP客户端将请求消息编码并将其打包成一个HTTP请求,设置Content_type头内容,将其设置为text/plain(文本内容请求)或application/octet-stream(二进制请求)等等,以确保网关对该请求的正确处理。
2.然后,Servlet接收HTTP请求包,并将其解码,然后Servlet或一些代理(如企业bean)执行该请求任务。
3.接着,Servlet将响应消息编码并将其打包成一个HTTP响应包,同样设置Content_type和Content-Length的头内容。
text/plain针对文本内容响应,image/png针对PNG图片响应,而application/octet-stream用来指定二进制响应。
4.最后,MIDP客户端接收HTTP响应并将该响应解码,然后MIDP客户端应用程序执行相应的任务。
本系统采用的通讯方式即为如上所述的传统的HTTP方式。
但是这种通信方式在移动商务系统的应用的过程中也有一些弊端,比如:
在服务器端响应的过程中,客户端异常关机或超出了网络服务范围,这样数据将丢失。
二、Servlet之间的基本通信方案:
目前有效的数据交换格式有两种:
二进制格式和XML格式。
XML是一种更复杂的数据交换格式。
使用XML数据格式存在如下的不利因素:
1.将额外的库加载到MIDP应用程序中,额外地要占有一定的内存,这对于有线内存的移动设备来说可能是不可取的。
2.使用XML格式的数据比较大,必将增加了网络的传输负担,而对有限带宽的无线网络来说将会产生更长的延迟。
二进制格式是最简单的数据交换格式,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 J2ME 平台 掌上 网络 商店 客户端 开发