已阅读5页,还剩63页未读, 继续免费阅读
(模式识别与智能系统专业论文)基于嵌入式linux的java中间件研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着计算机技术的不断进步,嵌入式系统应用迅速地深入到人们生活的各个 领域。j a v a 语言从问世到今天,已经从一种编程语言发展为一个技术体系,从 嵌入式计算系统到分布式计算系统,j a v a 都具有独特的优势。将j a v a 技术与嵌 入式系统相结合已经成为嵌入式系统研究的重要方向。本文通过分析j a v a 技术 体系特点和j a v a 嵌入式应用现状,对j a v a 虚拟机和p e m o n a lj a v a 技术进行了 研究。在此基础上结合w o l fl i n u x 嵌入式操作系统平台的特点,对w o f fl i n u x 上的j a v a 技术应用及其运行瓶颈进行深入分析,提出了一个基于嵌入式l i n u x 的j a v a 虚拟机和中间件的解决方案,并给出了具体的虚拟机实现和嵌入式,商用 数据库中间件应用实例。该虚拟机和中间件应用系统充分符合w 酣l i n u x 的硬 件平台和操作系统特点,优化了w o i fl i n u x 上的j a v a 计算,为嵌入式l i n u x 系 统提供了一种纯j a v a 的嵌入式计算和分布式计算平台解决方案。最后通过具体 实现实例验证了这个解决方案的可行性与正确性。 关键字:j a v a ,w o f fl i n u x ,嵌入式计算,分布式计算,j a v a 虚拟机,中间件 a b s t r a c t w i t ht h ed e v e l o p m e n to fc o m p u t e rs c i e n c e t h ea p p l i c a t i o n so fe m b e d d e d s y s t e mc o m e f o r t hl a r g e l y t o d a y lj a v ah a sd e v e l o p e dt oat e c h n i c a ls y s t e m f r o mam e r ep r o g r a m m i n g l a n g u a g e a n d i th a su n m a t c h a b l e a d v a n t a g e r a n g i n gf r o m t h ee m b e d d e d s y s t e mt ot h e d i s t r i b u t e ds y s t e m 。i ti sa ni m p o r t a n t r e s e a r c ha r e ao fe m b e d d e d s y s t e mt h a te m b e d d e dc o m p u t i n gi n t e g r a t e sw i t h j a v at e c h n i q u e 1 nt h i sp a p e r ,t h ef e a t u r eo fj a v at e c h n i c a ls y s t e m 。a p p l i c a t i o n o fe m b e d d e d j a v a ,j a v av i r t u a lm a c h i n ea n dp e r s o n a lj a v aa r ea n a l y z e d a n d t h e nj a v aa p p l i c a t i o na n di t sb o f f i e n e c ko nw o | fl i n u xa r e a n a l y z e db a s e do n t h ef e a t u r eo fw o l fl i n u xe m b e d d e do p e r a t i n gs y s t e m as o l u t i o no fj a v a v ir t u a lm a c h i n ea n dm i d d l e w a r eb a s e do ne m b e d d e dl i n u xi sp r e s e n t e d ,a n d t h ea p p l i c a t i o n so fj a v av i r t u a im a c h i n ea n de m b e d d e d b u s i n e s sd a t a b a s e m i d d l e w a r ea r ei m p l e m e n t e d t h e s ea p p l i c a t i o n so p t i m i z et h ej a v ac o m p u t i n g o nw o l fl i n u x ,a n dp r o v i d ea p u r ej a v as o l u t i o no fe m b e d d e dc o m p u t i n ga n d d i s t r i b u t e dc o m p u t i n gf o re m b e d d e dl i n u xo p e r a t i n gs y s t e m a tl a s t ,w eg i v e o u ri d e ao rj a v ae m b e d d e d a p p l i c a t i o n si nf u t u r e k e y w o r d s :j a v a w o l fl i n u x 。e m b e d d e dc o m p u t i n g ,d i s t r i b u t e dc o m p u t i n g j a v av i r t u a lm a c h i n e m i d d l e w a r e 1 1j a v a 体系概述 第一章绪论 j a v a as i m p l e 。o b j e c t - o r i e n t e d ,d i s t r i b u t e d ,i n t e r p r e t e d ,r o b u s t , s e c u r e , a r c h i t e c t u r e n e u t r a l 。p o r t a b l e ,h i g hp e r f o r m a n c e ,m u l t i - t h r e a d ,a n dd y n a m i c l a n g u a g e i ! 这是s u nm i c m s y s t e m s 的 j a v aw h i t ep a p e r ) 中对j a v a 语言的定义。j a v a 语言来自于s u n 公司的一个叫做g r e e n 的项目,其目的是为家用消费电子产品开发 一个分布式代码系统,他们基于c + + 开发了一种新的编程语言o a k ( j a v a 的前身) 。 1 9 9 5 年5 月,当s u nm i c r o s y s t e m s 公司把j a v a 在i n t e r n e t 上发布时,立即引起了 全世界的震动。从那时起,j a v a 语言成为i n t e r n e t 上的主力开发语言。它彻底改变了 应用软件的开发模式,带来了自p c 机以来的又一次技术革命。j a v a 是一个真正的独 立平台的计算方案,它能充分发挥i n t e r n e t 的作用,j a v a 计算是实现“一个世界,一 个网络”构想的关键。过去妨碍这一构想成为现实的是计算平台不能兼容,而j a v a 语言却以其许多优秀特性使之成为允许各类系统相互兼容和共享应用环境的桥梁。 j a v a 发展到今天,已经不仅仅是单纯的一种程序开发语言,而发展成为了一个以 j a v a 语言为核心的应用于各种计算环境的一整套解决方案。j a v a 不仅包括语言、标 准、组件、计算模式,还包括设备、网络技术及软件开发思想体系等等一系列相关技 术。统称之为j a v a 体系。 从一种语言到一种技术体系,本身是一个质的飞跃,在分布式计算和嵌入式计算 等技术蓬勃发展的背景下,j a v a 技术本身也在不断地完善。从嵌入式芯片到企业级应 用,j a v a 技术都提供了完整、优秀的解决方案。而这种全能性,正是由j a v a 语言自 身特点、j a v a 运行系统、计算模式以及其全方位的平台标准等因素所决定的。 1 1 1j a v a 语言特点 j a v a 语言是j a v a 技术体系的核心。w n t eo n c e 。r u na n y w h e r e 是s u n m i c r o s y s t e m s 对j a v a 语言特点最精练的概括。从大型机到嵌入式的智能卡芯片,j a v a 语言无处不在,这是与j a v a 语言本身特点分不开的。j a v a 语言具有如下主要特点: 可移植性:j a v a 语言采用了多种机制来保证可移植性。首先,j a v a 从本质上讲是 解释型的,这意味着任何一台机器只要装备了j a v a 解释器,就可以运行j a v a 程 序:其次,j a v a 的数据类型在任何机器上都是一致的,不支持特定硬件环境的数 据类型。j a v a 语言的可移植性使得应用软件能够在任意平台上运行,这大大加快 了软件产品的开发过程,增强了软件产品的可复用性。同时,也给软件产业带来 一种崭新的开发模式。 面向对象:面向对象可以说是j a v a 语言另一个最为重要的特性。j a v a 语言的设 计是完全面向对象的,它不支持类似c 语言那样的面向过程的程序设计技术。同 时。它支持静态和动态风格的代码继承和重用。 分价性:j a v a 包括一个支持h t t p 和f t p 等t c p i p 的类库。因此,j a v a 应用 程序可以利用这些类库打开并访问网络上的资源,其访问方式与访问本地文件系 统几乎完全相同。分布式环境尤其是i n t e m e t 提供动态内容无疑是一项非常宏伟 的任务,但j a v a 语言的特性使得我们能够很容易的实现这个目标。 稳定性和安全性:分布式计算环境要求软件具有高度的稳定性和安全性。c + + 程 序员知道,c + + 程序在稳定性方面的最大问题在于指针的使用和缺乏自动的内存 管理,而j a v a 语言解决了这些问题。j a v a 语言摒弃了c + + 语言中的指针,减少 了由于程序员因为指针使用不当而造成的安全隐患。内存分配和布局由j a v a 运行 系统决定,并提供了自动垃圾回收器来进行内存回收。正是这些改进,大大提高 了j a v a 语言本身的稳定性和安全性。 动态特性:j a v a 的动态特性是其面向对象设计的延伸。j a v a 程序的基本组成单元 为类,而j a v a 的类又是运行过程动态装载的,这使得j a v a 可以在分布环境中动 态的维护应用程序及其支持类库之间的一致性,而不像c + + 那样,每当其支持类 库升级之后,相应的应用程序都必须重新编译。 此外,j a v a 语言还具有简单、高效性、鲁棒性、体系结构中立等特点,正是这些 特点支撑起了现在的各种j a v a 应用技术闭。 1 1 2j a v a 运行时系统 j a v a 语言的可执行代码是字节码( b y t ec o d e ) 。一方面,字节码不直接针对某 个具体平台,在执行之前,需要将字节码转化为本机代码;另方面,为了实现语言 的动态性与安全性,j a v a 编译器没有将变量和方法的引用直接编译为具体的内存引 用,也没有确定程序执行过程中的内存布局,而是将符号引用信息保留在字节码中, 这样类的装载和符号的消解都要在运行时进行,为此j a v a 专门为字节码的运行引入 了运行时系统。j a v a 由运行系统装载程序运行时需要的类、安排运行时的内存布局、 确定方法调用所需要的实际地址,最后也是由运行时系统控制执行代码。j a v a 运行时 系统包括两个部分: j a v a 虚拟机( j a v a v i r t u a lm a c h i n e ) 。j a v a 虚拟机是一种抽象化的计算机,可以 在其上运行j a v a 的字节码。虚拟机的引入保证了j a v a 的可移植性,它是j a v a 程序运行在各种不同平台上运行的基础。关于虚拟机的内容将在本文第二章进行 论述。 第一章绪论 j a v a a p i ( j a v a a p p l i c a t i o np r o g r a mi n t e r f a c e ) 。j a v a 运行支持库。分为基本核 心类库( c o r ea p i ) 和各种外加功能的扩展类库。 j a v a 虚拟机执行字节码的过程可分为三个步骤:代码的装入、代码的验证和代码 的执行。字节码的运行由两种方式:解释执行方式,虚拟机通过字节码解释器来运行 程序指令。字节码解释执行速度比较慢,因为每条指令必须在每次执行时都进行解释, 这导致许多不必要的重复工作量;即时编译方式,j v m 通过j i t ( j u s t i n t i m e ) 编译 器将字节码转化为本机代码,然后全速执行本机代码。目前的j a v a 运行系统通常采 用的是第一种方法。 从运行机制来看,j a v a 有两类应用程序。一类是j a v a 应用程序( j a v a a p p l i c a t i o n ) ,它是可以独立运行的j a v a 程序,由一个或多个类组成,每个类定义均 已编译成它自己的j v m 对象代码的c l a s s 文件。另一类是j a v a 应用小程序( j a v a a p p l e t ) ,它是j a v a 应用到i n t e m e t 的w w w 中后产生的一个重要概念。a p p l e t 不能 独立运行,而是一个由已在运行的j a v a 应用程序( 如w e b 浏览器或a p p l e t v i e w e r ) 装入运行的j a v a 类。随着在不同操作平台上,具有j a v a 运行系统的浏览器越来越多, 使得在i n t e r n e t 上进行基于j a v a 的分布式计算成为可能。 1 1 3j a v a 计算模式 从最早的大型机,终端模式,到多个p c 计算模式,再到今天基于整个i n t e r n e t 的 分布式计算,计算模式的每一次进步都是一场革命。分布式计算是一种新的应用程序 开发方式,通过将应用程序模块化、分布化,它可以协调多个计算机的处理能力,充 分利用网络资源。可以说,分布式计算是计算机技术和网络技术发展的必然结果,并 必然产生巨大的反作用,大大促进计算机应用的发展。 作为一种与低层硬件和操作系统无关的、“一次编写、处处运行”的计算语言和计 算平台,j a v a 天生就具有将网络上的各个平台连成一个整体的能力,它是实现了“网 络就是计算机”诺言的分布式技术环境,并由此开创了一种崭新的计算模式。 j a v a 计算模式是一个瘦客户机朋艮务器模型,j a v a 应用程序代码按照用户的需求 从服务器上动态地下载到客户机上。在某种情况下,应用程序在用户的硬盘中缓存, 而有时则仅仅存放在内存中。应用程序存储在服务器上,客户机只是在需要的时候才 通过网络进行传输。因此管理工作就可以集中在服务器上进行,用户可以保证得到最 新版本的应用程序。j a v a 计算模式充分体现了计算分布从集中到分散、运行从静态到 动态和以网络为中心,即所谓“网络计算”的分布式计算发展趋势。 针对分布式计算环境,j a v a 计算模式根据需求,通过将运算分散到网络中的不同 计算机上,实现了网络协同计算,从而提高了整个系统的执行效率,增加了动态可扩 充性n 同时,j a v a 中问件技术使得各种异构计算环境能够协同工作,极大地提高了网 釜二雯堕堕 络计算环境的利用率,使得真正的网络计算成为可能。关于j a v a 分布式计算和中间 件的内容参见本文第四章。 1 1 4j a v a 平台版本 计算机技术发展到今天,其分布领域极为广泛。从通讯卫星、企业应用服务器到 家庭个人电脑,从大型控制系统到智能家电、移动通信设备,人们对计算的需求越来 越多,要求也越来越高。j a v a 为各种不同规模的应用制定了不同的应用平台版本。这 些平台版本根据不同应用设备的特性,对虚拟机和a p i 进行了标准化,根据这些标准, 软件厂商可以实现不同的j a v a 运行环境,但是对于符合平台标准的程序,这些运行 环境是完全支持的。这使得j a v a 程序员在只需要了解一些必要的a p i 的情况下,就 可以对某种特定的设备进行j a v a 编程。j a v a 平台概念的提出,保证了j a v a 程序的 兼容性,明晰了j a v a 应用的层次,更让j a v a 应用变得更加有的放矢。 在早期,s u n m i c r o s y s t e m s 提出了四种j a v a 应用平台的概念,即s t a n d a r d j a v a p l a t f o r m 、p e r s o n a lj a v ap l a t f o r m 、e m b e d d e dj a v ap l a t f o r m 和j a v ac a r dp l a t f o r m 。 这几种平台分别对应于标准j a v a 、p e r s o n a lj a v a 、嵌入式j a v a 和j a v a 卡片等几种 不同规格的j a v a 应用。其中p e r s o n a lj a v a 主要用于有连接网络要求的消费式电子系 统,如机顶盒、专用游戏机、手持电脑、w e b 电话、p d a ( p e r s o n a ld i g i t a l a s s i s t a n t s ) 等。e m b e d d e dj a v a 用于各种嵌入式设备,它是为比那些p e r s o n a lj a v a 的硬件环境 要求还严格的嵌入式设备设计的,它与p e r s o n a lj a v a 一低一高为各种不同的嵌入设 各环境提供了相应的j a v a 解决方案。它对标准j a v a 和p e r s o n a lj a v a 保持向上兼容。 而j a v a 智能卡即j a v ac a r d 是一个用予智能卡的软件规范。它遵从i s 0 7 8 1 4 - - 4 规 范,可以在绝大多数智能卡上运行。早在1 9 9 6 年,s u n 就推出了j a v ac a r d1 1 规范, 1 9 9 7 年底又推出了j a v ac a r d2 0 p j 。 最近,随着企业级分布式计算和嵌入式电子产品的不断更新发展,s u n m i c r o s y s t e m s 经过对过去几种平台规范的整合,提出了全新的j a v a 应用版本 j 2 e e ( j a v a2p l a t f o r me n t e r p r i s ee d i t i o n ) 、j 2 s e ( j a v a 2p l a t f o r ms t a n d a r de d i t i o n ) 及j 2 m e ( j a v a2p l a t f o r mm i c r oe d i t i o n ) 。这三个应用标准作为j a v a 开发规范,保 证了j a v a 软件产品的兼容性。对于这几种应用版本,将在本文第二章进一步讨论。 1 1 5j a v a 体系问题分析 f j i 而几个小节论述了j a v a 体系的一些重要概念和特点。从整体上讲,j a v a 体系 由于语言特点、运行系统、计算模式、平台版本上的独到之处,使之成为应用程序j 1 : 发的重要的、优秀的工具。但是,任何事物都有其正反两面,j a v a 并不是完美的,它 在一些方面存在着缺陷: 第一章绪论 j a v a 的运行效率不高。与同规模的c 语言相比,j a v a 的运行速度要低1 0 至2 0 倍。虽然通过新的执行方法设计,j a v a 程序的运行效率有了较大的提高,但与c 语言相比,j a v a 还是有一定的差距。 j a v a 存在着一些安全漏洞。如j a v a 具有自动垃圾回收功能,它可以为程序开发 人员自动管理内存,但是某些自动回收功能的具体实现并不能做到完全的安全, 可能导致整个应用程序崩溃。 j a v a 虚拟机是j a v a 程序运行的基础,通过虚拟机,j a v a 可以跨平台运行。但是 各种操作系统与硬件平台上的实现比较复杂,虚拟机的缺陷将导致所有j a v a 应用 无法实现。 虽然j a v a 体系起源于嵌入式系统应用,但到目前为止,j a v a 在嵌入式系统上成 功的应用却寥寥无几。这一方面与j a v a 在i n t e m e t 上的巨大成功有关,另一方面也因 为j a v a 体系本身存在着一些问题。首先,嵌入式系统的资源有限,普通j a v a 虚拟机 没有针对嵌入式系统进行有效优化,导致j a v a 的运行效率不高,造成大量的j a v a 应 用无法移植到嵌入式系统;其次基于嵌入式系统的j a v a 计算模式不完善,使得嵌入 式系统j a v a 计算形式单一,制约了j a v a 在嵌入式系统的应用。 1 2j a v a 与n e t 技术 2 0 0 0 年6 月m i c r o s o f t 公司发布了n e t 战略,该技术是与s u n 的j a v ao r e 技 术相对应的。剥去商业竞争的因素,从技术角度来讲,二者是相似的,它们都是i n t e r n e t 现状下的基于w e b 的分布式计算方案。n e t 是m i c m s o f f 公司的x m l w e b 服务( w e b s e r v i c e ) 平台,x m lw e bs e r v i c e 是为应用程序提供数据和服务的逻辑单元。x m l w e b s e r v i c e 结合了组件技术和w e b 技术中的优秀方面,它是n e t 编程模型的基石。 n e t 的核心概念就是“把软件当作服务”,也就是把软件应用产品与商业、内容、 信息服务合并成一种事务,使之成为可以在网络上订阅使用的服务形式。人们设计、 构造、实施、运作、集成和使用软件的方式都可以通过网络完成,因此也就要按照使 用这些服务的不同方式支付相应的费用。n e t 希望彻底把计算模式从单一的、客户 机,月r 务器和w e b 网站的方式转向分布式计算。在n e t 策略中有几个重要的概念: x m l 技术。x m l 被行业称为网络计算的世界语( l i n g u af r a n c a ) ,是一种代替 h t m l 的可扩展标记语言。x m l 采用文木标记的形式定义各种可交换数据结构, 并且可以利用标准的网络协议进行传输。正因为这些特性,x m l 实际上代表了平 台中性和进行网络计算的趋势。 w e b 服务是n e t 的核心概念。它是基于网络的分布式应用程序的基本构造模块, 而这些程序是以平台、对象模板和多语言方式构建的。w e b 服务建立在像s o a p 和x m l 之类的开放的i n t e r n e t 标准之上,并且由此形成了可编程网络理念的基础。 第一章绪论 通用语言运行时c l r ( c o m m o nl a n g u a g er u n t ! m e ) 。它可以调用并运行任何编 程语言所写的代码。c l r 具有交叉语言集成、自定义组件、简单配置、版本化以 及集成安全服务等特点。这一点十分类似于j a v a 虚拟机的概念。 c # 语言。一种新型的编程语言,为n e t 策略而设计。它与j a v a 语言比较类似。 从一个j a v a 程序员的眼中看n e t 策略,可以发现它继承了许多j a v a 技术的精 髓思想,并且用m i c r o s o f t 的商业模式成功加以包装。n e t 的最初想法是希望进行接 近操作系统平台的定制开发,当然这是指使用w i n d o w s ( 目前是x p 、m e 和2 0 0 0 ) 。 v i s u a lb a s i c 和c 撑是n e t 平台上最重要的开发语言,并且它们不能在其它平台上运 作。m i c r o s o f t 声称有许多开发商在开发与n e t c o m m o nl a n g u a g er u n t i m e ( c l r ) 相合作的语言,但直到今天,我们看到c l r 还只是一个w i n d o w s 版的技术。这就说 明存在一个重要的互用性问题,因为每种编程语言( 根据定义来划分) 都有其各自特 定的数据类型和数据结构【4 l 。 图1 - 1 简要地对n e t 与j 2 e e 技术进行了对比,不难发现j 2 e e 与n e t 既有许 多相似之处,又存在不少区别。m i c r o s o f t 作为最成功的p c 软件制造商,她推出的n e t 策略必然以她自己的商业模式加以推广,而作为优秀的跨平台分布式计算技术的j a v a 语言,其发展前景更加广阔,因此如何做到二者的互用性是一个非常重要的问题。 n 日j a v a 1 3j a v a 手机 图1 1 n e t 与j a v a 的比较 手机作为现代最重要的通信手段,是最重要的嵌入式电子产品之一。目前,j a v a 在手机设备上的应用方兴未艾,j a v a 正在成为手机应用软件开发的主流技术。 - 6 - 第一章绪论 针对嵌入式设备及消费类电器的j 2 m e ( j a v a2p l a t f o r mm i c r oe d i t i o n ) 在被推 出之后,首先做出反应的就是全球各大手机制造商,他们把j 2 m e 引进到手机上,使 我们平常通信用的手机更加易用,更加个性化。j 2 m e 一经推出,m o t o r o l a 公司作为 j 2 m e 的主要支持者,第一个在自己生产的手机上移植了k v m ( 千字节虚拟机) ,又 领导全球手机厂家制定了m i d p ( 动信息设备框架) 规范。目前k v m 与m i d p 相结合 的手机软件开发体系已经成为了j a v a 手机程序开发的事实标准【5 l 。 回顾移动电话的发展历史,我们不难发现移动电话上应用软件的发展也经历了三 个阶段。传统的移动电话通常只有通话和短消息功能,只能提供基本的语音服务。随 后移动电话上又增加了一些简单的附加应用,如电话簿和电话铃声编辑功能等。而现 在随着v v a p 技术的发展,移动电话增加了访问i n t e m e t 的功能,使用户可以直接在 手机上以无线方式浏览网页。然而,随着无线i n t e m e t 新应用的出现,新的问题也随 之而来。 首先面临的是开发瓶颈的问题。通常,手机类嵌入式系统普遍使用c 语言和专用 的实时操作系统,开发速度慢,也没有动态加载应用程序的能力。移动电话上应用程 序的开发变得越来越困难,一方面单纯依靠手机厂商自身的软件开发能力难以满足市 场的需求,而另一方面广大的软件开发商却又无法参与进来,开发适用于移动电话的 应用程序。这无疑极大制约了新应用的推广与普及。 其次,移动电话访问i n t e m e t 只能通过w a p 方式,而、 a p 采用b r o w s e r s e r v e r 方式访问i n t e r n e t 却功能有限。现在的w a p 解决方案要求手机通过w a p 网关x t + 能访 问i n t e r n e t ,而且只能访问w m l 而不是主流的h t m l ,也不能显示复杂格式的图形。 此外,因为现有的w a p 解决方案不够智能,而且不能访问本地存储区,如果进行在 线交易会增加服务器负荷,反应速度慢,使无线i n t e m e t 应用受到了很大的限制。 j a v a 的应用则使上述问题迎刃而解。因为j a v a 语言是跨平台运行的,这特性 使第三方软件开发商可以很容易地介入进来开发应用程序,也可以很方便地将应用程 序安装移植到移动电话上,开发周期也大大缩短,而且还能支持应用程序的动态下载 和升级。j a v a 还提供了h t t p 高级i n t e r n e t 协议,使移动电话能以c l i e n t s e r v e r 方 式直接访问i n t e r n e t 的全部信息,不同的c l i e n t 访问不同的文件,此外还能访问本地 存储区,提供最高效率的在线交易。 旗于k v m 的j a v a 除了能够更好地增强完瞢移动r 【i 话i :已有的成用外,还j | !步 增加j 。字典、图斗5 、游戏、遥控家电和定时提隧等新的心用,并能访问电子f | 1 | j 什、| i ! | j 时消息、股票和电子地图等信息。 最近j a v a 技术团体的成员开始大力推动j a v a 在小型设备上的应用。他们已经瞄 准了那些专门为手机开发应用的独立软件开发商。近日,j a v a 组织就发布了“j a v a 规范要求j s r l 8 5 ”,这是一个专门为手机应用开发商设计的融合了目前主要的j a v a a p i 的体系结构。用于测试产品兼容性的测试包也即将推出。 第一章绪论 目前已经有多家手机制造商表示支持j s r l 8 5 规范,包括摩托罗拉,诺基亚,索 尼爱立信以及日本的n t td o c o m o 等。 1 4 本章小结 j a v a 发展到今天,已经从一种编程语言演变为一个技术体系,本章我们着重讨论 了j a v a 体系的基本特点,并简要地对比j a v a 技术,对m i c r o s o f f 的n e t 战略进行分 析,最后分析了当前j a v a 手机和k j a v a 的应用趋势。正是由于j a v a 体系本身所具有 的特点决定了j a v a 在嵌入式计算与分布式计算领域的优势,另一方面j a v a 技术体系 在嵌入式系统的应用方面也存在一些可改进之处,出于这些因素的考虑,本文对基于 、v o | fl i n u x 的j a v a 嵌入式计算平台和分布式中间件进行了深入的研究,并通过v v o i f l i n u x 的j a v a 虚拟机与嵌入式,商用数据库实现实例对研究进行了论证。 第二章j a v a 平台标准和虚拟机 第二章j a v a 平台标准和虚拟机 2 1p e r s o n a lj a v a 平台 2 1 1p e r s o n a ij a v a 技术特- 眭 p e r s o n a lj a v a 是一个特定的j a v aa p i 和j a v a 运行环境的集合,即一种特定的 j a v a 平台。它主要应用于有联网要求的消费式电子产品,如机顶盒、专用游戏机、手 持电脑、w e b 电话、p d a 等。 p e r s o n a lj a v a 的规范根据其要应用的环境做出了相应的调整,在j a v aa p i 的基 础上,去掉了一些对资源要求较大的类,保留了图形和网络的类,并对其中的一些方 法进行了修改。和标准j a v a 类似,p e r s o n a lj a v a 也是由个j a v a 核心和扩展类库 组成。它运行在j a v a 虚拟机上,可用于各种不同的操作系统和处理器。p e r s o n a lj a v a 的虚拟机可以与一般的j a v a 虚拟机完全相同,没有删减。p e r s o n a lj a v a 支持一个高 级的图形用户接口,支持下载和执行j a v aa p p l e t 程序。s u n 公司于1 9 9 7 年发布了 p e r s o n a lj a v a l 0 规范的草案。并在该年底推出正式版本。其对硬件的要求如下: 0 5 一1 m 的r a m 2 m 的r o m 个主频大于5 0 m h z 的3 2 位处理器 另外,为了适应各种嵌入设备的要求,p e r s o n a lj a v a l 0 可处理多种输入输出方 式,如游戏杆、触摸屏、电视输出、远程控制等。还要能让那些没有计算机使用经验 的人方便使用。p e r s o n a lj a v a 是可选配的,很多模块可根据嵌入设备的不同要求选 择使用。目前其版本到了p e r s o n a lj a v a l 2 。 p e r s o n a lj a v aa p i p e r s o n a lj a v aa p l l 0 基本上是j d k l 1 的一个子集,但仍然有一些p e r s o n a l j a v a a p i 与j d k l 1 中的不同,j d k l 1 的a p i 可根据与p e r s o n a lj a v a 的关系分为四 种:需要的( r e q u i r e d ) ,即被完全支持:不被支持的( u n r e q u i r e d ) ;可选配的 ( o p t i o n a l ) :已改变的( m o d i f i e d ) ,即该a p i 在p e r s o n a lj a v a 中虽然有,但功能发 生了改变。 p e r s o n a lj a v aa 州_ r p e r s o n a lj a v aa wl 是p e r s o n a lj a v a 与标准j a v a 的最大区别。p e r s o n a lj a v a 的程序设计必须要保证用户界面简单易用。对于各种不同的消费式电子产品来说,其 输入设备不像如今的计算机那样有较为普遍的标准,而是多种多样的。为此,p e r s o n a l j a v a 定义了在j d k l 1 中没有的输入接口: p a c k a g ej a v a a w t ; p u b l i ci n l e r f a c en o l n p u t p r e f e r r e d 0 p u b l i ci n l e f f a c ek e y b o a r d l n p u t p e r f e r r e d 0 p u b l i ci n t e f f 2 c e a c t i o n l n p u t p r e f e r r e d 0 p u b l i ci n t e r f a c ep o s i t i o n a l l n p u t p r e f e r r e d 编程人员使用它们可以按一般既有键盘又有鼠标的计算机那样给各种消费式电子 设备编程。首先,设备系统要有能替代设备所没有的输入设备的其它设备,比如没有 鼠标,可用键盘的某些按键代替它的功能;其次,p e r s o n a lj a v a 把不同设备的输入 消息转化成鼠标和键盘的输入消息,这些消息就会传给有实现四个新增的输入定义的 j a v a 程序。需要说明的是程序最多只能实现上述四个接口中的一个,多余的会被当作 无效。此外,在窗口操作时还应注意以下内容: 避免多个重叠窗口 避免拖拽 使用菜单应注意 避免双击鼠标操作 运行p e r s o n a lj a v a 的硬件环境的显示屏不但一股比计算机的小( 即象素要少得 多) ,而且各种产品的显示屏大小还有很大的区别。因此在应用p e r s o n a lj a v a 编程时 需要注意,a p p i e t 的尺寸必须是相对尺寸,而不是绝对尺寸。此外,p e r s o n a lj a v a 在字体、颜色的限制方面,p e r s o n a lj a v a 支持的字体不论从数量还是字体的大小都 是很有限的,使用n e wf o n t ( ) 方法产生一字体时并不能保证得到的是制定的类型和 大小。另外p e r s o n a lj a v a 所支持的颜色一般为四种或十六种,不能用x o r 模式绘图, 因为这将导致在一些设备上无法显示;在改变c o m p o n e n t 类中的文本及双缓冲方面、 电视环境下的图形显示方面、p a i n t ( ) 和u p d a t e ( ) 方法的使用方面都与标准j a v a 有一些差别,在p e r s o n a lj a v a 环境下,如果程序不调用p a i n t ( ) 方法,那么在系统 自动调用该方法时,由于硬件性能方面的原因,有可能产生致命的错误,这在一般的 j a v a 环境下体现不出来。 设计p e r s o n a lj a v a 虚拟机的主要目标就是要减少静态内存覆盖区和运行时内存 的使用。p e r s o n a lj a v a 应用程序一般工作在内存较少的硬件环境中,这样,尽量减 少所占用的内存资源就显得尤为重要。以下列出了几种减少内存需求的编程技巧: 注意内存垃圾回收,虽然j a v a 的内存回收是自动完成的,但实际上,j a v a 只是 在一块内存空间已无任何指向它的引用时才真正回收该内存。 调用资源重布方法,在不再使用对象是,调用它该方法,可以提高内存回收效率。 限制t e x t a r e a 的文本大小。通过方法t e x t a r e a r e p l a c e r a n g e ( ) 实现。 一1 0 苎三童! 型! ! 鱼塑堡塑生型! ! _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ - - _ _ _ 一 e 谨慎使用哈希表( h a s h t a b l e ) 。一般其长度不确定,会大量消耗内存。 使用u r l 为基础的方式获得图像【6 】。 2 1 2p e r s o n a lj a v a 开发工具及过程 s u n 公司为了发展消费类电子产品的市场,提出了p e r s o n a lj a v a 的概念,同时 他们也为p e r s o n a lj a v a 规定了一系列的标准,从a p i 标准到虚拟机标准都有了明确 的规定。各个生产厂商都遵循这一标准,使得消费类电子产品的软件开发更加统一化、 简单化。同样也使得软件开发人员能够不用关心电子产品的硬件特性而直接为其实现 软件功能。p e r s o n a lj a v a 开发工具主要有: j a v a ( t m ) d e v e l o p m e n tk i t ( j d k ) j d k 是一个标准的j a v a 语言开发环境,它包括j a v a 虚拟机、j a v aa p i 、j a v a 源程序编译器( j a v a c ) 以及j a v aa p p l e t v i e w e r 等。但是,j d k 是一个用于标准的j a v a 程序开发工具,并不能针对p e r s o n a lj a v a 的规范进行检测,在该工具下进行开发, 我们无法知道我们的程序是否完全符合p e r s o n a lj a v a 的规范。因此,在开发过程中 我们可以利用j d k 来编辑和编译源程序,形成在p e r s o n a lj a v a 虚拟机上可以运行的 类文件。 另外b o r l a n d 公司的j b u i l d e r 是一个很好的可视化j a v a 语言集成开发环境,用 它来开发和调试j a v a 程序十分方便和高效。 p e r s o n a l j a v a ( t m ) 3 1e m u l a t i o ne n v i r o n m e n t ( p j e e ) p j e e 是一个专门用于p e r s o n a lj a v a 开发的工具。从它的名字我们可以看出, 它是一个p e r s o n a lj a v a3 1 版本的仿真环境。我们可以用它在p c 上进行p e r s o n a l j a v a 运行环境的仿真,从而验证我们的程序是否真的能够在支持p e r s o n a lj a v a 的电 子设备上运行。正如s u n 公司对p j e e 的说明: t h ep e r s o n a lj a v ae m u l a t i o ne n v i r o n m e n ts o f t w a r ea l l o w s y o u t o : t e s t a p p l e t st h a tw i l lr u ni nb r o w s e r ss u p p o r t i n gt h ep e r s o n a lj a v a3 1 p l a t f o r m t e s t a p p l i c a t i o n st h a tw i l lr u no nt h ep e r s o n a lj a v a3 1p l a t f o r m p e r s o n a lj a v a ( t m ) 3 1e m u l a t i o ne n v i r o n m e n t 主要包括三个部分:一个是 r u n t i m e ,包括核心的j a v a 类库( c l a s s z i p ) ,这个z i p 文件不能进行解压缩,里面 包含所有关于p e r s o n a lj a v ap l a t f o r m 的类;一个是t o o l s ,包括p e r s o n a lj a v a i n t e r p r e t e r 和p e r s o n a lj a v aa p p l e t v i e w e r 两个运行j a v aa p p l i c a t i o n 与a p p l e t 的工 具;还有一部分就是文档。要注意的是p j e e 中没有w e b 浏览器,可以下载h o t j a v a 浏览器配合使用。 j a v a c h
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 麻醉住培基地建设与特色
- 预测与决策方法
- 音乐鉴赏整体设计
- 分享语文学习方法
- 膝关节损伤的检查方法
- 多用电表教学设计
- 2025版骨质疏松护理实操指导
- 托运轿车协议书
- 融资合作框架协议书
- 瑜伽转卡协议书
- 2025年移动式压力容器R2作业证理论全国考试题库(含答案)
- 2024移动式压力容器充装许可鉴定评审作业指导书
- 2024年中级经济师《金融专业知识与实务》真题及答案
- 鲁班奖临建方案
- DB11T 1946-2021 智慧工地评价标准
- 风电项目安全专业监理实施细则
- 交通运输安全管理体系建设手册
- RDC民生物流配送中心介绍省公开课金奖全国赛课一等奖微课获奖课件
- 十字交叉法解一元二次方程练习100题及答案
- 耳穴压豆治疗失眠
- (正式版)YBT 6328-2024 冶金工业建构筑物安全运维技术规范
评论
0/150
提交评论