




已阅读5页,还剩65页未读, 继续免费阅读
(计算机应用技术专业论文)基于jxme的移动对等网络研究和mp2pchess的实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于j x m e的移动对等网络研究和mp 2 p c h e s s 的实现 3 . 4 . 2 穿越两个防火墙. 价, . , . - . . . . . - 二 卜 . ., . . . . . . - . . .一3 3 第四章 移动对等网 络平台一 j x me . . . . . . . . 一 . ., . 二“ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 4 . 1 移动对等网络的资源限制二价 . ” 二 , , , . . . . . . . . 一 价 一 . 价 价一 3 4 4 . 2 j x me的目标 , . . . . . . . 卜 一 _ . . . . . . . . 卜 . “ -, , , 一 _ - . . - . 卜 t . 一, . . . , . .3 4 4 . 3 j x me的体系结构 . . . . 一 . . . . . 一 , , . , . , . . . 一卜 . _ 一 . _ . _ _ 3 5 4 . 4 j x me的发布服务 _ _ _ _ 一 . . 二, , . . _, . . . . , 一 价, _ t . . . . . . . . . . . . 3 7 4 . 5 j x me的发现服务. , 二 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 一. .一 . _ . _ 一3 8 4 . 6 j x me双向管道的实现“ 一 . . - . 一 _ . 卜. . . . . 一 , . , , , , , , . . . . . . . . - -. . . . . . . . . . . . . . . . . - - - . . . . 4 0 第五章 国际象棋m p 2 p c h e s 、 的实现二 t . 一, , ._ . . , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2 5 . 1 mp 2 p c h e s s 的类文件价 . , 二 价 , , 一 , . 价 一 一:. 一一.一一一 . 4 2 5 . 2 mp 2 p c h e s s 的处理流程二 , . . . . . “ . 价 . , . , , ., , , . . - . . . . . . . . . . . . . . . . . . . . . . . . 4 2 5 . 3总结一 , 一价 二 , . , . , . -二, , 一 , . , , . . . . . . . . . . .一“ 二 价一一4 4 第六章 总结与展望. 一 - - . . - . . . . - 卜 . , . . . . . . . . . . . . . . . . 4 5 6 . 1 全文总结. t . 二 一 , _ . . , . . . 一 , , 二 价 . . .一 价 . 一一一一一 . _ 一, . . . . . . . . . 4 5 6 . 1 进一步改进的方向. . . . 一 , . . , , , , . . . . . . . . . . . . . . . . . . 4 5 参考文献 . . . . ,. . , , . . . . . , , . . . - , , . . , . . _ . .4 6 附录. ” . “ . . 卜 . 卜” . , . . . . . . . - . . . - - ,. “ . “ - - “ . “ “ 一, . , 一甲 _ . . 一 . . . . . . , ,. 4 8 附录一 m p 2 p c h e s s .j a v a 文 件 . - .一 , ” . . . ,. . .- .- . ” . 价一 , 4 8 附录二g a m e j a v a 的接口二 价. . . . . .- . ., . ,- . , . . . . . . . 6 1 致谢. . . . . . _ ,. , . . . . 二”二, , . , 6 3 图表 目录 图 1 - 1 mi d p 在j 2 m e 体系中的位置 . ” 价 一 ,. “ . 一, . ”. “ . 价 . . . . .一 价 一.一 1 3 图 1 - 2 mi d l e t 的生命周期卜 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , . . . . 1 5 图 2 - 1 网络互联方式的 变革. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 7 图 2 - 2 四类对等网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 0 图 3 - 1 j x t a的平台无关性. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3 图 3 - 2 j x t a的三层结构. . . . , . 甲 . 甲 . 二 , . . “ . . . . . . . . . . . . . . 2 4 图 3 - 3 对等组关系模型图“ . . . . . . , , 二 , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , . , , , . . . 2 8 图 3 一 单播型管道. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 0 图 3 - 5 多播型管道. . . . . . , 二 , . . . . . . . . . . . . . . . . . . , . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 0 图 4 - 1 移动对等网络的拓扑结构 , . . . . . . . . . . . . . . “ . . . . , . , . . . . . 3 5 图 4 - 2 j x m e的体系结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , . . . . . . . . 3 6 图 5 - 1 mp 2 p c h e s s 的处理流程. . . . . . . . . . . , . . . . . . . . . . . . . . . . _ . . 卜 二 , , . . 4 3 加373839 k v m中被限制使用的包 j o i n消息的流格式. 发布管道的消息格式. . 发现管道的消息格式 . , , 基于 j x me的移动对等网络研究和 mp 2 p c h e s s 的实现 摘要 对等网络让一个用户的计算机与另 一 个用户的计算机可以不需要通过任何 中介而直接通信, 是现有客户机/ 服务器和浏览器/ 服务器模式的有益补充。 j x t a 是s u n公司提出的统一的对等网络应用开发平台,而j x me是j x t a工程向移 动设备平台的拓展和延伸, 它建立 在j 2 me的基础上, 通过把对等网络进行适当 的裁减和优化, 使得在资源有限的移动设备上运行对等网络应用成为可能。 由于 移动对等网络的研究刚起步, 在实现上还不完善, 要达到商业化应用水平尚有很 多需要改进的地方, 因此, 对j x me进行研究分析就具有一定的前瞻性。 本文除 通过分析 j x me参考实现的源代码来研究 j x me的运行机制外,还利用 j x me 平台设计实现了一个移动对等网络上的国际象棋双人游戏。 关键字:对等网络,j x t a , j 2 me , j x me ab s t r a c t c o m p u t e r s i n p 2 p ( p e e r t o p e e r ) n e t w o r k c a n c o m m u n i c a t e w i t h e a c h o t h e r w i th o u t a n y a g e n t s . p 2 p i s a h e l p f u l s u p p l e m e n t t o t h e c u r r e n t c l i e n t/ s e r v e r a n d b r o w s e r / s e r v e r m o d e l s . j x t a , p r o p o s e d b y s u n mi c r o s y s t e m i n c , p r o v i d e s a n u n i v e r s a l p 2 p a p p l i c a t i o n d e v e l o p m e n t p l a t f o r m . m e a n w h i l e , j x m e h e l p s j x t a t o e x t e n d i t s f i e l d t o m o b i l e d e v i c e s . b y c u t t i n g d o w n p 2 p s y s t e m s m o d e s t l y a n d c a r e f u l l y , i t i s p o s s ib l e t o l a u c h p 2 p a p p l i c a t i o n s o n m o b i l e d e v i c e s w h i c h o n l y h a v e l i m i t e d m e m o ry a n d p r o c e s s r e s o u r c e s . a s a c o m p a r a t i v e l y n e w r e s e a r c h f i e l d , i t n e e d s m o r e i m p r o v e m e n t s t o r e a c h t h e c o m m e r c i a l l e v e l , t h e r e f o r e , i t i s w o r t h f u l to r e s e a r c h a n d a n l y z e f o r j x m e . t h i s p a p e r n o t o n l y d e e p l y r e s e a r c h s t h e w o r k m e c h a n i s m o f j x m e b y a n a l y z i n g t h e j x me s o p e n s o u r c e , b u t a l s o i m p l e m e n t s a d u a l - u s e r s c h e s s g a m e ( m p 2 p c h e s s ) b a s e d o n j x m e r e f e r e n c e i m p l e m e n t i o n . k e y w o r d s : p 2 p , j x t a, j 2 me , j x me 基干i x me的移动对等网络研究和 mp 2 p c h e s s 的实现 一 2书 -j一 朋 舀 网络的迅猛发展推动了网络互联方式不断发生变革, 从客户机/ 服务器模式 向浏览器/ 服务器模式的转变造就了互联网的成功。 但是海量并且不断膨胀的信 息仍然主要分布在相对少量的服务器上, 网络带宽和处理器能力的局部短缺造成 了互联网络整体运行效率的下降, 于是, 均衡利用网络和处理器资源的对等网络 计算模式被提出并迅速取得了成功。 另一方面, 移动通信产业的发展聚集了数以 亿计的用户,如何让对等网络的成功延伸和拓展到移动网络便成为一个新的课 题。 在此背景下, s u n公司提出了j x m e 工程, j x m e是j x t a f o r j 2 m e 的简 称, 致力于为资源受限的设备提供了一个对等网络应用的基础平台。 由于移动对 等网络的研究还处在起步阶段, 对j x m e平台的实现机制进行研究便具有一定的 前瞻意义。 本文的主要研究成果是从研究j x me 参考实现的源代码入手, 深入了解j 2 m e 和j x t a这两个平台, 着重研究怎样对常规的对等网络进行必要的裁减使得它可 以在资源有限的平台上运行。 同时还自 行设计了一个基于j x me的移动对等网络 应用mp 2 p c h e s s ,使得本文对移动对等网络的研究不仅仅停留在理论的层面上。 由于j x me提出的时间不长,自身还处在不断完善过程中, 各种相关的资料还相 当欠缺。 本文从理论和实践两个方面对该技术进行较为完整的 研究, 不仅对自己 的研究能力是一种锻炼,也对其他感兴趣者起一个抛砖引玉的效果。 本文的结构是这么安排的:第一章介绍了j 2 m e的相关技术,包括k v m, m i d p 和c l d c 。 第二章简要阐述了对等网络的概念, 发展历史和三类主要应用。 第三章介绍了j x t a的框架和涉及的基本概念。 第四章详细介绍了j x m e的实现 机制, 包括各种消息的流格式, 创建对等点, 对等组和管道的具体方法。 第五章 描述了自 行设计的移动对等网络应用 mp 2 p c h e s s 的处理流程。附录给出了源代 码中与移动对等网络技术密切相关的部分。最后一章对全文进行了总结和展望。 基于 j x me的移动对等网络研究和 mp 2 p c h e s s 的实现 第一章 j 2 me平台介绍 2 0 世纪 9 0 年代初, s u n 公司在研究电子消费产品的软件平台时) 卜 发出一种 新的编程语言,该语言被命名为 o a k . s u n公司基于 o a k开发出一个被称为七 星的家用控制器, 这是一个小巧的手持设备, 带有液晶触摸屏,以及内嵌的无线 网络和红外线通信装置。 七星控制器可以用作电视机、 录相机的遥控器, 并具有 今天p d a设备的某些功能,例如日 程安排。出于成本控制的原因,为七星控制 器开发的软件必须依靠很少的内存和处理能力就可以运行, 并且具有很高的可靠 性。 o a k 语言的开发小组拥有非常丰富 c + + 开发经验, 而 c 十 + 语言一直以功能强 大而著称, 但其缺乏对指针使用的限制, 容易导致指针误操作进而影响程序的可 靠性。 o a k 通过在编译时执行更严格类型检查, 检测出更多的错误并且不再支持 c 十 十 语言中降低程序可靠性的某些特性, 例如指针和编程者控制的内存分配, o a k 显著地提高程序的稳定性和安全性。不幸的是,s u n 的努力没有得到市场的认 同,基于 o a k开发的产品也没有获得消费者的青睐。与此同时,互联网的兴起 创造出巨大的浏览器软件市场需求,于是 s u n把 o a k编程语言改名为 j a v a , 并利用j a v a 编写了 一 个跨平台 的浏览器一 h o tj a v a 。当时浏览器软件的 市 场领导 者网景公司把 j a v a小程序集成进它自己的浏览器软件一 n e t s c a p e o随着浏览器 的广泛使用, j a v a语言开始进入公众的视野。 j a v a 语言具有平台独立性, 这使得基于j a v a 开发的软件一次编码, 即可在所 有主流操作系统平台上运行。利用 j a v a 语言跨平台的特性,软件开发商可以 编 写平台无关的软件, 从而削减软件开发的成本。 因此, j a v a 语言在发布之后的短 短数年中,引起了极大的轰动, 广受欢迎。 为了 满足wi n d o w s 和x - w i n d o w s 平 台开发者编写用户界面非常复杂的软件的需要, j a v a语言的内容和范围迅速膨 胀,增加了更复杂的用户界面类库和一系列支持分布式计算和安全计算的特性。 当s u n发布j a v a 2 平台第一版时, j a v a 2 平台己 经被分为几个不同的版本。 j a v a 环境支持的核心功能称为j 2 s e版一标准版.支持企业级应用的称为j 2 e e版, 它在j 2 s e的基础上集成了s e r v l e t s , e j b等新技术。适合移动电话和 p d a等嵌 入式设备使用的j a v a环境称为j 2 m e 版。 与大多数软件一样, j a v a 的每一新版本都对系统资源提出了更高的要求。虽 然j a v a 起源于为消费电子产品开发的软件,j 2 s e对内存和处理器能力的要求已 经大大超过了消费电子产品所能承受的范围。 然而,当s u n致力于推动j a v a 成 为互联网和商业软件编程语言时,为嵌入式设备甚至智能卡提供 j a v a支持的需 求也在增长。 针对这种需求, s u n公司推出了几个功能被裁减的j a v a 平台版本, 每一个版本为一个特定的垂直细分市场量身定做。 这些平台都基于j d k 1 . 1 开发, 基于j x me的移动对等网络研究和 mp 2 p c h e s s 的实现 而j d k 1 . 1 是j a v a 2 平台的前身和蓝本。这些版本采用不同的裁减技术去适应有 限的资源。 也就是说, 每一个被裁减的平台代表了一种独立的解决方案, 每种解 决方案都需要花费时间和成本去满足它自身特定市场的需求,各平台间互不兼 容。j 2 me平f 宁 是基于j a v a 2 平台为资源有限设备开发的统一 的解决方案,旨在 最终取代以前从j 几 j d k i . l 开发的各种不同的产品。 j 2 m e 通过配置 ( c o n f i g u r a t i o n ) 和简要表 ( p r o f i l e ) 对具体形态千差万别的 资源有限设备进行抽象和分类【 1 2 0 1 . 1酉 己 置 配置是为一系列设备定义软件运行环境的规范,通常包括: . 可用内存的类型和数量 . 处理器的类型和速度 . 可用网络连接的类型 配置为它的目 标设备定义了一个最小的平台, 设备提供商必须完整地实现这 个规范。 从而让软件开发者能依赖稳定的环境编程, 并尽可能地开发出与设备无 关的应用程序。 j 2 m e在设计其规格的时候,遵循着 “ 对于各种不同的设备造单一的系统 是没有意义的事” 这个基本原则。 于是j 2 me先将所有的嵌入式装置大体上区分 为两种:一种是运算功能有限、电力供应也有限的嵌入式设备,例如 p d a,移 动电话。 另外一种则是运算能力相对较佳、 并且在电力供应上相对比较充足的嵌 入式设备, 例如冷气机、电冰箱、电视机机顶盒。 因为这是两种型态的嵌入式设 备,所以当前 j 2 m e定义了两个配置:c l d c ( c o n n e c t e d l im i te d d e v i c e c o n f i g u r a t i o n ) 和c d c ( c o n n e c t e d d e v i c e c o n f i g u r a t i o n ) . c l d c : c l d c面向低端消费电子产品,典型的c l d c平台是具有 5 1 2 k b可 用内存的移动电话或者p d a 。正是由于这个原因,c l d c与移动j a v a 应用密切 关联,移动j a v a 应用允许用户下载移动应用程序 ( mi d l e t s )到他们的手持设备 中 ( 本文将在 c l d c的基础上实现一个移动应用 mp 2 p c h e s s , 它也是一个 mi dl e t ) e c d c : c d c面向的目 标市场介于运行c l d c的低端设备和运行j 2 s e完全版 的桌面系统之间。 这些设备通常具有2 m以上的内存和更强的处理器,因此, 它 们能支持更完整的j a v a 软件环境。高端 p d a 、智能移动电话、网络电话、家用 网关和机顶盒设备可能会使用c d c平台。 c l d c 和c d c都包含有自己的j a v a 虚拟机和一个为应用软件提供编程环境 的核心 j a v a 类库。 由于处理能力和内存容量的限制, 尤其是低端设备, 使得 j 2 me 基于j x me 的移动对等网络研究和m p 2 p c h e s s 的实现 虚拟机不可能象 j 2 s e虚拟机那样支持所有 j a v a语言特性和软件优化。所以, j 2 me虚拟机通常只实现j 2 s e虚拟机的部分功能。例如,使用c l d c的设备通 常都没有支持浮点运算的硬件,因此,c l d c虚拟机通常也不支持 j a v a语言中 的fl o a t 和d o u b l 。 类型,以及涉及浮点运算的任何类型和方法。需要说明的是, 配置规范并没有限制必须使用特定的虚拟机, 设备提供商可以自己开发或者购买 第三方的满足规范最低要求的虚拟机。s u n为两个配置提供了参考实现,其中 分别包含了 一 个可供参考的虚拟机。 . c l d c参考实现是为w i n d o w s , s o l a r i s 和 l i n u x 平台开发的源代码和 二进制代码。 针对只有几十或者几百k内存的运行环境, s u n在c l d c 的参考实现中提供了一个经过裁剪的虚拟机一k v m. k v m 只需极少 的内存, 并且为内存有限的运行环境优化了垃圾收集机制。 k v m可能 是近期内大多数 c l d c实现的基础,当 然,用户也可以选择其他的虚 拟机来代替k v m,例如i b m的j 9 虚拟机。 . c d c参考实现为l i n u x 操作系统和wi n d r i v e r v x w o r k s 实时操作系统 提供源代码。这个版本的虚拟机被称为c v m,除了不支持j 2 s e 1 .3 版 虚拟机中的h o t s p o t 技术以 及早期的及时编译技术以 外, c v m实现了 c d c 规 范要 求的 全 部j 2 s e 虚拟 机功能. i n s i g n i a s o lu t io n s 和i b m等 三方提供商也计划提供了自己的c d c实现和相应的虚拟机。 配置还包含一个j a v a 语言类的核心类库, 这个核心类库必须基于j a v a 2 的平 台,从而尽可能地提高在不同j 2 m e平台和j 2 s e平台上开发的应用程序之间的 兼容性。简而言之,这意味着开发者必须遵循以下原则: 1 : j 2 m e必须尽可能地重用j 2 s e的类和包。 比如, 某个j 2 me 平台摈弃标 准的j a v a . u t i l . d a t e 类不用而开发一个自己 专用的d a t e 类是不能容忍的。 2 :当j 2 me 重用j 2 s e的 类时,不能增加新的 属性和方法。同 样,也不能 在j 2 s e的包中增加新的类。 这条法则确保了为j 2 m e开发的代码可以在j 2 s e上 编译和运行,从而在j 2 m e 和j 2 s e平台之间共用代码成为可能。 1 . 1 . 1 c l d c 的虚拟机 c l d c 设备在计算能力和内存容量上的限制使得它不可能实现完整的j a v a 虚 拟机和支持所有的 j 2 s e核心类。在 wi n d o w s平台上运行一个简单的” h e l l o , wo r l d 程序需要 1 6 m 内存,相比之下,一个典型的c l d c设备只具备 1 2 8 k闪 存和3 2 k动态内存。 为了在有限资源中支持j a v a 应用, s u n提供了一个k i l o b y t e v m简称k v m的参考实现 3 . 基于j x me的移动对等网络研究和 mp 2 p c h e s s 的实现 k v m的语言特性 使用c l d c的多数设备都没有支持浮点运算的硬件, 所以k v m中没有提供 对fl o a t 和d o u b l e 类型的支持, 在开发c l d c 应用时, 存在以 下编 码限 制: 4 5 1 :不能声明或使用fl o a t , d o u b l e 类型的变量和数组 2 :不能使用 fl o a t 和 d o u b l e 类型的常量,例如 3 . 1 4 f 3 : f l o a t 和d o u b l e 型变量不能作为函数的参数 4 :函数不能有返回fl o a t 或 d o u b l e 型的返!i ii 值 5 :不能创建 f l o a t 和 d o u b l e 类型的对象。 当开发c l d c应用时,s u n并没有限制开发者使用的j a v a 编译器版本。因 此, 开发者可以使用j 2 s e的编译器编译c l d c应用程序, 当应用程序违反c l d c 的规范使用 fl o a t 和 d o u b l e 类型时, j 2 s e编译器检测不出这类错误, 直到应用程 序被装载进c l d c虚拟机进行类文件验证时刁会检测出这类错误。 除了对浮点运算的限制以外, k v m限制使用j 2 s e中某些包和特性, 详细内 容见下表 1 - 1 . 被限制的特性或包限制措施 r e fl e c t i o n j a v a . l a n g .r e fl e c t , j a v a .l a n g .j a v a 等 与 反 射 相 关 联的 包 在 c l d c中都不支持 we a k r e f e r e n c e s c l d c中没有提供j a v a .l a n g . r e f 包 o b j e c t f i n a l i z a t i o nc l d c中j a v a . l a n g . o b j e c t 对象不能执行f i n a l i z e s 方法 t h r e a d i n g f e a t u r e sc l d c 支持线程, 但是不支持线程群 e r r o r s a n d e x c e p t i o n sj 2 s e平台中多数抛出和处理异常或错误的机制在 c l d c 平台中 不支持, 当出 现异常时, 通常由 设备自 身 处理,而不是报告给应用程序。 j a v a na t i v e i n t e r f a c e c l d c不允许j a v a类调用本地代码,一是由于内存的 限制,二是防止本地恶意代码造成的安全性问题 表 1 . 1 k v m中被限制使用的包 1 . 1 . 2 c l d c 的安全机制 类装入控制 在j 2 s e平台的安全模型中,不同安全级别的代码具有不同的 系统资源访问 控制权。 例如, 安装在用户系统上的应用程序通常具有不受限制的控制权, 而从 互联网站点上下载的 j a v a小程序只能访问网络,不能访问本地资源。介于这两 个极端例子之间的其他代码, 安全模型对根据代码来源地的安全级别对每个应用 程序单独授权。 j 2 s e的安全平台支持证书和数字签名技术,确保代码在传输过 基于j x me的移动对等网络研究和 mp 2 p c h e s s 的实现 程中未被更改。 c l d c虚拟机允许用户运行从网络下载的程序。对于从网络下载的程序, c l d c虚拟机采用j 2 s e虚拟机处理j a v a 小程序的安全措施,限制在隔离环境中 执行, 禁止应用程序访问本地资源, 从而确保设备不被恶意代码破坏。 每个 c l d c 的实现版本都有自己的类装入器,允许从宿主设备支持的任何位置装入类代码, 包括网络和本地存储器。 c l d c不允许应用程序代码创建自己的类装入器, 也不 允许更改系统自 带的类装入器查找和定位类代码的方式。 简而言之, 应用程序不 能修改系统的有效c l a s s p a t h或等价的其他属性。 上述限制的结果是, 应用程 序 代 码不能 试图 用自 身的 代码 替 代系统 核 心的j a v a 和j a v a x .m i c r o e d i t io n 包。 系 统类装入器总是忽略那些包含在应用程序代码中但伪装成属于系统核心包的类 代码。 本地代码的访问控制 c l d c没有包括j n i 的实现,即使本地代码能作为应用程序的一部分安装, 也不可能在运行中被动态链接。除非 c l d c或它的配置提供专用的j a v a 接口, 应用程序不能直接调用宿主设备操作系统提供的功能。 这个限制能阻止应用程序 代码读取或修改用户不希望它访问的信息。 然而,通过事先把本地代码链接进虚拟机,可以扩充j a v a 程序的可用a p i , 因为这种机制只能用于客户定制的虚拟机中,因此不会带来普遍的安全风险。 类校验 j 2 s e 提供字节代码验证器来检查j a v a 类文件的完整性, 防止类文件违背j a v a 语言的以下原则: . 所有的本地变量必须先初始化后使用 . 创建对象时,必须先调用构造函数后使用 . 每个构造函数必须先调用它父类的构造函数 . 引用必须指向与它类型匹配的对象 当从外部 ( 例如网络) 装入类代码时, j 2 s e虚拟机运行字节代码验证器,而 从本地文件系统装入类代码时,并不运行字节代码验证器。 而在c i dc 环境中, 通常对所有的应用程序代码都进行验证。然而, j 2 s e虚拟机采用的验证算法需 要占 用大量的处理器和内存资源,在 c l d c环境中分成两个阶段来执行验证算 法。 事先验证:这个过程包括了字节代码验证中大多数复杂的,消耗大量时间的 验证算法。 通常在源代码编译完成后, 装入目 标设备之前进行事先验证, 验证的 记录保存在类文件中,可以在运行时由设备访问。 运行时验证:设备 自身执行运行时验证。根据具体的设备,可以在装入时进 基于1 x m e 的移动对等网络研究和m p 2 p c h e s s 的实现 行验证, 也可以 把运行时验证作为安装进程的一部分。 利用事先验证保留的信息, 运行时验证只进行快速的线性扫描,确保代码遵循j a v a 语言的规则。 1 . 2简要表 区分出两种主要的配置之后,为了更明确地区分出各种嵌入式装置上 j a v a 程序该如何开发以及它们应该具有哪些功能,j 2 me在c l d c和c d c的 卜 层定 义了简要表,为进行嵌入式设备应用开发的第三方提供了开发的a p i , 简要表在 配置的基础上增加了与设备相关的特定类。c l d c和c d c配置都有一个或以上 的简要表,一些简要表自 身依赖于其他的简要表。简要表分为以下几类: m i d p ( m o b i l e i n f o r m a t i o n d e v i c e p r o f i l e ) : m i d p 在c l d c 的基础v - 增加t 网 络、 用户界面组件和本地存储等功能。 这个简要表主要是为显示屏和存储空间都 有限的移动电话设计的,因而它仅提供了相对简单的用户界面和基于 h ttp l 1 的基本网络功能。 mi d p是最广为人知的j 2 me简要表, 因为它是无线j a v a 应用 的 基础并且是当 前唯一 支持p a l m o s 系统的 简要表 6 0 p d a p ( p d a p r o f il e ) : p d a p 和m i d p 类似, 它 是为p d a系 统设计 的。 与 移 动电话相比较,p d a通常具有较大的显示屏和较多的内存,因此,p d a简要表 可以提供更复杂的用户界面类库和基于j a v a 的应用程序接口 ( a p i ) . f o u n d a t i o n p r o f i l e : 基础简要表扩展了c d c , 它几乎包括了j a v a 2 1 .3 版的所 有核心类库,是其他c d c简要表的基础。 p e r s o n a l b a s i s a n d p e r s o n a l p r o f i l e s ( 个人基础简要表) :p e r s o n a l b a s i s 在基 础简要表的基础上增加了简单的用户界面,在同一时间只允许用户激活一个窗 口 。 p e r s o n a l p r o f i l e 支持 更 复 杂的 用 户界 面。 r m i p r o f i l e : r mi p r o f i l e 在 f o u n d a t i o n p r o f i l e 的基础上增加了j 2 s e中客户 端 r mi 的a p i . g a m e p r o f i l e : g a m e p r o f i le 为c d c 设 备 提 供了 一 个 编 写 游 戏 软 件的 平台 。 1 . 2 . 1 m i d p简介 mi d p 是基于c l d c和k v m的j a v a 平台, 它在j 2 me体系中的位置如图1 - 1 所示。在图1 一1 中,最低层的是嵌入式系统的硬件设备,在硬件设备之上是宿 主系统软件, 包括操作系统和系统使用的库文件。 向上一层是c l d c , 这部分代 表了k v m和c l d c规范定义的相关库函数, 提供上层j a v a a p i 所需要的最低层 j a v a 功能。在 c l d c上有两种a p i : mi d p 和 o e m特殊类,后者扩展了mi d p 所定义的功能,但它不可能满足所有 o e m的要求。这些类可能有 o e m为某一 幕于 j xme的移动对等网络研究和 mp 2 p c h e s s 的实现 确定的设备提供,并且不可移植。 宿主应用程序 m1 dlb cl dc 硬件设备 图 1 - 1 m i d p 在j 2 m e 体系中的 位置 图1 - 1 表明, c l d c 和m i d p 是o e m特殊类的 基础, 这并不意味着这些a p i 没有自己 私有的功能 ( 例如,被声明为n a t i v e 的方法) 。这幅图 显示,m i d p中 任何一个固有方法实际上是k v m的一部分, k v m把j a v a 的a p i 映射为本地系 统的内部实现。 基于mi d p 开发的应用程序被称为m i d l e t s , mi d l e t s 可以使用mi d p 增加的 a p i 也可以使用从c l d c继承过来的a p i . mi d l e t s 不能直接访问宿主设备的操 作系统,除非牺牲系统的可移植性。因为k v m不支持j n i , mi d p应用程序访 问本地代码必须直接把本地代码链接进用户单独定制的虚拟机中。 设备提供商在 s u n提供的mi d p参考实现的基础上,增加一些安装, 删除 和管理的功能,开发自己的m i d p 实现。图1 - 1 中标记为o e m特殊类的代码是 混合使用mi d p 和c l d c的服务,且与宿主设备密切相关的,不可移植的代码。 1 . 2 . 2 m i d p的硬件要求 内存: mi d p 包含许多核心j a v a 平台以外的软件和应用, 因此比最小的c l d c 环境需要更多的内 存。m i d p规范要求,除了 c l d c占 用的内存外,至少需要 1 2 8 k内存用于存储mi d p实现,3 2 k内存用作j a v a 对象堆,8 k的闪存用来持 久保存mi d l e t s 信息,从而确保设备关机时这些信息不会丢失。 显示屏:mi d p规范要求显示屏最小宽度为%象素,长度为5 4象素,至少 支持 2 种颜色。 基于1 x m e的移动对等网络研究和 mp 2 p c h e s s 的实现 网络连接: mi d p支持移动电话内嵌的无线链接和附件在p d a上的独立调制 解调器。 mi d p并不要求网络始终保持连通, 也不要求网络直接支持t c p / i p 。 只 要求设备提供对h ttp 1 . 1 的支持。 1 . 2 . 3 m i d p 应用程序 运行在mi d p 设备上的j a v a 应用程序称为mi d l e t s ,一个mi d l e t s 至少包含 一 个 从m i d p定 义的 抽 象 类j a v a x .m ic r o e d it io n .m i d le t .m l d t e t 派生 的j a v a 类。 m id l e t s 在j a v a 虚 拟机的 执行 环 境中 运行,由 虚 拟机 提供 生 命周 期 控 制。 一 个 mi d i e t 也可以利用mi d i e t 类提供的方法来获取运行环境提供的服务。一组相关 的mi d l e t s 可以组成一个mi d i e t s u i t e , mi d i e t s u i t e 中的所有midl e t s 作为一个 单一的实体在设备上安装或者删除。mi d i e t s u i t e 共享宿主环境的静态和运行时 资源,包括: . 如果设备支持同时运行一个以 上的m i d l e t s ,一个m i d i e t 套件中的 所有 活动m i d l e t s 应该在同一个j a v a 虚拟机中运行, 从而共享j a v a 类的实例 和其他装入虚拟机的资源。这意味着数据可以在 m i d l e t s间共享, j a v a 的同步机制可以保护并发执行的midl e t s 对系统资源的并发请求。 . m idl e t s 可以 访问他们自 己 存储在设备上的持久数据, 也可以 访问同一套 件内其他midl e t s 的持久数据,但是不允许访问其他 midl e t 套件的持 久数据, 因为midp中的命名空间通常在mi d i e t 套间范围内有效。 这样 既可以部分避免m idi e t 套件间的命名冲突, 又可以防止未经授权的恶意 代码读写其他midi e t 套件中的信息。 1 . 2 . 4 m i d i e t 的生命周期 所 有的m idle t s 都从 抽 象 类j a v a x .m ic r o e d i tio n .m id l e t . m idl e t 派 生而 来, 这 个 父类包括了midp平台控制midi e t 生命周期的方法和midl e t s 请求改变自 身状 态的方法。图1 - 2 描述了一个m idi e t 的生命周期,包括以下3 个状态:活动, 暂停和终止。 当一个m idi e t 被装入时, 它处在暂停状态, 开始执行类和实例的 初始化。 如果在初始化过程中出 现异常, 这个m i d l e t s 会被终结, 占 用的系统资源被释放。 如果没 有出 现异常, m idl e ts 将等待系统调度, 设备 通过调 用m i d l e t s 的s t a r t a p p o 方法使 m i d l e t s 从暂停状态切换到活动状态, 通过 d e s t r o y e d d 方法终结一个 midl e t 的生命周期。 基于j x me的移动对等网络研究和 mp 2 p c h e s s 的实现 装入 mi d l e t mi d l e t 调用 用户终止 d e s t ro y e d 0 方法 用户终止 图 1 - 2 仙皿 d l e t 的生命局期 1 . 3其他的微型j a v a平台 j 2 m e是s u n为把j a v a 应用于小型设备而开发的平台,然而, 如前文所述, 在j 2 m e出 现之前,已 有其他的j a v a 平台存在,它们和j 2 m e有相类似的功能, 下文将简要介绍这些平台并与j 2 me相比较。 1 .
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 残疾筛查试题及答案解析
- 湖南化学特岗试题及答案
- 安全专项应急预案
- 医学基础知识复习方式的多样性试题及答案
- 系统架构设计师职业规划试题及答案
- 激光技术工程师考试方案设计
- 药物相互作用临床案例分析试题及答案
- 药师考试考点试题及答案分析
- 社区管理知识试题及答案
- 确立2024年文化产业管理证书考试立足点试题及答案
- 2024年人大题库考试中国特色社会主义理论题库答案
- 爱国卫生专业培训
- 抗菌药物科学化管理
- 双碳背景下的我国物流行业优化发展研究
- 智慧物流园区建设可行性研究
- 2024年湖北宜昌猇亭区社区专职工作者招考聘用管理单位遴选500模拟题附带答案详解
- 国家安全教育1班学习通超星期末考试答案章节答案2024年
- 大学生创新创业基础(创新创业课程)完整全套教学课件
- 静脉治疗行业标准
- 大学物理复习资料
- 2023年国家药监局药品审评中心招聘笔试真题
评论
0/150
提交评论