(机械设计及理论专业论文)j2eej2me体系结构研究及其在实践中的应用.pdf_第1页
(机械设计及理论专业论文)j2eej2me体系结构研究及其在实践中的应用.pdf_第2页
(机械设计及理论专业论文)j2eej2me体系结构研究及其在实践中的应用.pdf_第3页
(机械设计及理论专业论文)j2eej2me体系结构研究及其在实践中的应用.pdf_第4页
(机械设计及理论专业论文)j2eej2me体系结构研究及其在实践中的应用.pdf_第5页
已阅读5页,还剩63页未读 继续免费阅读

(机械设计及理论专业论文)j2eej2me体系结构研究及其在实践中的应用.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

北京邮电大学硕士论文摘要 摘要 为适应电子商务的发展,企业界提出了j 2 e e 体系结构,并且得到了广泛的应 用。嗣辩,隧羞无线技术豹发展,应用于无线通信设各的j 2 m e 标糖,也越来越 受到入稻戆重视。本文戮蘩阏主书痦为镪,分绥了j 2 e e 和j 2 m e 戆髂系结椽,并 且,缩合j 2 m e 与j 2 e e ,展现了未来移动电子商务的一个侧面。 在寓践中主要解决了一下问题: 1 ) 利朋j m s 实现了购物提交与生成订单的异步处理。 2 ) 强溅了一释苇熹撼葵法,瓣决了关系型数攥簿与基次垄数攥缝掌奄夔矛藩,实 现了图书目录的动态管疆。 3 ) 利用k x m l 解析器,交现了x m l 格式的文件在j 2 m e 数据传输中的应用。 关键潺:j 2 e ej 2 m e 奄孑巍务 粥;! ; 北京邮电大学硕士论文 摘要 a b s t r a c t a d a p t i n gf o rt h ed e v e l o p m e n to ft h ee l e c t r o n i cc o m m e r c e ,t h ei n d u s t r i e s b r i n gf o r w a r dt h ej 2 e ea r c h i t e c t u r ea n da p p l yi t i n p r a c t i c ea b r o a d ,a tt h e s a m e t i m e ,w i t ht h ed e v e l o p m e n t o ft h ew i r e l e s sc o m m u n i c a t i o n t e c h n o l o g y , j 2 m es t a n d a r d ,w h i c hi sa p p l i e do nt h ew i r e l e s sc o m m u n i c a t i o nd e v i c e s ,i s a t t a c h e dm o r ei m p o r t a n c et o 1w i l li n t r o d u c ej 2 e ea n dj 2 m ea r c h i t e c t u r ei n t h i sa r t i c l eb a s e do ns o m ei n t e r n e tb o o k s t o r e ,a n d i n t e g r a t et h ej 2 e ea n d j 2 m et os h o wa na s p e c to ft h em o b i l ee c o m m e r c ei nt h ef u t u r e 1s o l v et h e f o l l o w i n gp r o b l e m s i np r a c t i c e 1 ) r e a l i z et h ea s y n c h r o n o u ss u b m i s s i o na n dc r e a t i o no ft h eo r d e rv i at h e j m s , 2 ) p u t f o r w a r dan o d et r e ea r i t h m e t i cf o rt h ed y n a m i cm a n a g e m e n to ft h e b o o kc a t a l o g ,r e s o l v et h ec o n t r a d i c t i o nb e t w e e nt h er e l a t i o nd a t a b a s e a n d t h eh i e r a r c h i c a ld a t as t r l i c t u r e 3 ) b y t h ek x m l p a r s e r ,m a k e u s eo ft h ex m l f o r m a tf i l et ot h ed a t at r a n s p o r t | o r t h e 。1 2 m e k e yw o r d s :j 2 e ej 2 m ee c o m m e r c e 北京邮电大学硕士论文 第一章绪论 第一章绪论 1 1 电子商务的发展及其趋势 1 1 1电子商务的发展历程 电子商务是i n t e r n e t 爆炸式发展的真接产物,是网络技术应用的全新发展方 向。电子商务指的是利用简单、快捷、低成本的电予通讯方式,买卖双方不谋面 地进行各种商贸活动。 i n t e r n e t 本身所具有的开放性、全球性、低成本、高效率的特点,也成为电 子商务的内在特征,并使得电子商务大大超越了作为一种新的贸易形式所具有的 价值,它不仅会改变企业本身的生产、经营、管理活动,而且将影响到整个社会 的经济运行与结构。电子商务将传统的商务流程电子化、数字化,一方面以电子 流代替了实物流,可以大量减少人力、物力,降低了成本;另一方面突破了时间 和空间的限制,使得交易活动可以在任何时间、任何地点进行,从而大大提高了 效率。电子商务所具有的开放性和全球性的特点,为企业创造了更多的贸易机会。 电子商务使企业可以以相近的成本进入全球电子化市场,使得中小企业有可能拥 有和大企业一样的信息资源,提高了中小企业的竞争能力。电子商务重新定义了 传统的流通模式,减少了中间环节,使得生产者和消费者的直接交易成为可能, 从而在一定程度上改变了整个社会经济运行的方式。电子商务一方面破除了时空 的壁垒,另一方面又提供了丰富的信息资源,为各种社会经济要素的重新组合提 供了更多的可能,这将影响到社会的经济布局和结构。 1 i 2 技术的沿革及新的要求 在电子商务的开始阶段,静态式的w e b 是在因特网上进行商务的主要途径。 这种电子商务体现于客户可以随时在商业的网站上浏览、寻找和搜集静态的商务 信息。静态式的w e b 阶段使用的技术以h y p e r t e x tm a r k u pl a n g u a g e ( h t m l ) 和 图片为主。后来发展到用多媒体的技术,例如m a c r o m e d i af l a s h 等。 筘l撕 北京邮电大学硕士论文第一章绪论 动态的电子商务为用户提供了与网站交互的功能。开始的时候,c o m m o n g a t e w a yi n t e r f a c e ( c g i ) 是交互式w e b 的主要技术。 自从s u nm i c r o s y s t e m s 把j a v as e r v l e t s 接口定义为标准的w e b 服务器插件 程序,j a v as e r v l e t s 成为交互式w e b 的主要技术。用j a v a 编程语言设计和实现 的w e b 应用程序是可靠的、跨平台的和高性能的。j a v as e r v l e t s 与c g i 程序相 似,但是s e r v l e t s 是跨平台和高性能的。任何一个w e b 服务器都可以装配上 s e r v l e t s 引擎来执行s e r v l e t s 程序。s e r v l e t s 引擎是一个在j v m ( j a v av i r t u a l m a c h i n e ) 中运行的高性能的插件程序。 几乎在同时,m i r c o s o f t 公司也推出了功能相近的a s p 技术,实现了交互式 的w e b 技术,但是,这种技术一样缺少跨平台性。 典型的系统应用是通过j a v as e r v l e t 来调用后台的数据库,来达到用户的数 据交互与存储。 但是,随着网络环境的不断增长,电子商务的不断发展,用户访问量成直线 型增长,编程人员出了要完成用户的商业逻辑以外,还要负责数据库连接池、事 务处理、负载均衡等等底层的功能。所以,要求发展一种体系结构,使得编程人 员只要关心业务逻辑,而其他方面由服务器来完成,充分发挥中间件的强大作用。 同时具有很好的可扩展性和伸缩性,这就是多层体系结构。 1 2 多层体系结构的介绍 在当今i t 界,多层结构主要有两种体系结构,m i r c o s o f t 公司提出的n e t 体系结构和s u n 公司提出的j 2 e e 体系结构。这两种技术都是多层结构的具体实现。 1 2 1 j 2 e e 体系结构的介绍 j 2 e e ( j a v a2e n t e r p r i s ee d i t i o n ) 是一种利用j a v a2 平台来简化企业解 决方案的开发、部署和管理相关的复杂问题的体系结构。j 2 e e 技术的基础就是核 心j a v a 平台或j a v a2 平台的标准版,j 2 e e 不仅巩固了标准版中的许多优点,例 如”编写一次、随处运行”的特性、方便存取数据库的j d b ca p i 、c o r b a 技术以及 能够在i n t e r n e t 应用中保护数据的安全模式等等,同时还提供了对e j b ( e n t e r p r i s ej a v a b e a n s ) 、j a v as e r v l e t sa p i 、j s p ( j a v as e r v e rp a g e s ) 以 筑2虹 北京邮电大学硕士论文第一章绪论 及x m l 技术的全面支持。其最终目的就是成为一个能够使企业开发者大幅缩短投 放市场时间的体系结构。 j 2 e e 应用程序是一组企业应用程序,其由许多必要的服务程序集成,如事务 处理服务程序,安全服务程序等。 对于商业层上执行商业处理和数据资料处理,在j 2 e e 应用程序中,大多数是 用e n t e r p r i s ej a v a b e a n s ( e j b ) c o m p o n e n t s 来建立的。这一层完成商业处理和 数据处理,通过j a v ad a t a b a s ec o n n e c t i v i t y ( j d b c ) 或s q l j 或使用j a v a c o n n e c t o ra r c h i t e c t u r e ( j c a ) 的现有系统来实现数据库的连接。 w e b 浏览器和无线设备与j s p 连接,使用户不必在乎它们与h t m l ,x h t m l 或 w m l 之间的接口。 1 2 2 n e t 体系结构介绍 n e t 大量的改写了m i c r o s o f t 早期开发平台的底层代码和组件,其中包括了 许多现在正广范用到的技术,也包括m t s 和c o m + ,消息队列( m s m q ) ,和m i c r o s o f t s q ls e r v e r 数据库。极大扩展了原来w i n d o w s 平台下的应用。是m i c r o s o f t 近年 来在技术上的最重要的生机。实际上,也是在j a v a 及其j 2 e e 打破了m i c r o s o f t 的垄断地位,促使m i c r o s o f t 从中吸取经验教训,以及这些技术的优点,所作的 一次努力,一次巨大的变革。 n e t 应用程序是运行在一个大型的程序包上,由其提供大量的服务,例如事 务处理,安全保护和消息传输服务。 在商业层上用n e t 的管理组件来建立n e t 应用程序。在这一层上,完成的是 商业处理和数据整理。它通过a d o n e t 来连接数据,也可通过s o a p ,u d d i ,w s d l 来连接商业伙伴。 传统的胖客户机,网页浏览,无线设备通过h t m l ,x h t m l 或w m l 与a s p n e t 实现联接,高级用户界面则是由w i n d o w s 的窗体建立。 1 2 3 两种体系结构的比较 可以看出,j 2 e e 和n e t 的基本思想是一致的。但是实现和应用又有各自的特 点。下图总结了一些比较结果。 北京邮电大学硕士论文第一章绪论 特征j 2 e e n e t 按零类型辍瀣产熬 中阉终供应礴3 0 多家 m i r c o s o f t 平螽无关性与平台无关w i n d o w s 系列操作系统 缡疆语言 j a v ac 撑v b 。n e t 解释器j r ec l r 鼎步消息处理j m sm m q 瓣蒙骚务羚d la d s l 动态w e b 页面j s p a s p n e t 中间层组件e j bn e tm a n a g e m e n t c o m p o n e t 数撰瘁连接j d b ca 转o 。n e t 辩w e b s e r v i c e s 翡支撩支拷支特 中间件功能( 负载均衡、商有 逐羧漶等) 开发工其w 曲g a i nv i s u a l c a f ev i s u a l s t u d i o n e t j b u i l d e r v i s a u l a g e 等 j 2 e e 是个技术标准,并不是一个产鼯。它日益究善,成为电子商务的主嚣 开发平台,符合j 2 e e 标猴的产品礴b e a 公司的w e b l o g i e 、s u n 公司的 n e t d y n a m i c s 、i b m 豹w e b s p h e r e ,还有惫旗著名鼗援瘁厂家i n f o r m i x 、o r a c l e 、s y b a s e 谯内的上百个产品。校据i d c ( i n t e r n e t d a t a c e n t e r ) 的最新统计,夜三层结构的 系统中,建立在j 2 e e 架构上的约占总数的接近7 0 。可以说,至少在目前的竞 争中,j 2 e e 麓镶先静。 1 。3 课题的研究任务及其实现的鞘标 本系统怒一个完整瓣 毫予商务系统一潮上书痦静韶分。 第4旋 j e 京都电大学硕士论文 第一牵绪论 图1 1 系统的总体结构 从图中可以着出,这是一个较完熬的网土书癌鳃决方寨。各子系绞是通道数 据库达到信息共享得。 该电子瑟务系统网站是一令典型熬b 2 c ( b u s i n e s s t oc u s t o m e r 鬻家对客 户) 架构的网上购物系统,其基本功自包括简单会员管理、商品选择、订购、订 荦处壤、商晶维护等,贯穿当翡普逶蕊务网辩的一般楚理遥稷。 本系统是建立在j 2 e e 体系结构基础上的众业级应用,充分运用j 2 e e 的备种 技术,贯彻模型,视图腔制器( m o d e l - - v i e w - - c o n t r o l e r ) 一m v c 设计模式,分 离数据访问和数据表现。视图可以通过模式访阀数据,并根攒客户端熊要求来显 示数据。视图用j s p 实现,保证当模溅改变的时候,数据显示也必须同时改变。 控制器用s e r v l e t 实现,结合摸型翻视葱,把客户壤来豹请求转换或模整戆够璞勰 并执彳子的请求,并且根据请求以及执行结果来决定下次显示哪一个视图,实现 骞 枣缭往夔,袋子扩黢瓣控翻嚣,来维护整个滚程。凑e j b 寒实现模整,毽裁蹩 应用的商业逻辑,处理由控制器传递过来的对数据的访问请求。 渊月j 相 5) i 北京邮电大学硕士论文第一章绪论 图1 2 系统设计模式m v c 同时,系统通过一个j a v a 手机投票系统,以j 2 m e 为客户端,以j 2 e e 为服 务器端,将j 2 m e 技术与j 2 e e 体系结构结合起来,展示出未来移动电子商务的一 个侧面。 60 ( 乾京都电大攀硬士论文 第二章j 2 e e 体系络鞫魏磷究 第二章j 2 e e 体系结构的研究 下面蹙j 2 e e 下w e b 戚用的完整示图: 图2 - 1j 2 e e 的宠整视图 j 2 e e 为搭建具有可伸缩能、灵活性、易维护性的商务系统提供了良好的机制, 具有如下主要优点 保留现存的i t 资产 鑫予金监必须逶疲薪静鬻韭需求,秘用蠢有数金鼗信怠系统方霹静投资,琵 不是煎新制定全盘方案就变得很重要。这样,一个以渐进的( 而不是激进的,全 盘否定的) 方式建立谯已有系统之上的服务器端平台瓶制是公司所需求的。j 2 e e 架构w 以充分利用用户原有的投资,如一些公司使用的b e a t u x e d o 、i b mc i c s , i b m e n c i n a ,、i n s p r i s ev i s i b r o k e r 以及n e t s c a p ea p p l i c a t i o ns e r v e r 。这之所以成为 可能是因为j 2 e e 拥肖广泛的业界支褥和一些重要的“企业计算”镁域供应囊豹 参与。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移槭的 j 2 e e 镁域翁舞缓途掇。峦予蘩予j 2 e e 平台豹产品尼乎能够程 壬 毒撩终系绞秘硬 件配鼹上运行,现有的操作系统和硬件也能被保留使用。 离效的开发: j 2 e e 允许公司把一些通用的、很繁琐的服务端任务交给中间件供应商去完成。 这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时闻。高 级q ,州中 :供应巍提供以下这熙复杂的中阔件暇务: 瓤71 j 北京邮电大学硕士论文第二章j 2 e e 体系结构的研究 状态管理服务一让开发人员写更少的代码。不用关心如何管理状态,这样能 够更快地完成程序开发。 持续性服务一让开发人员不用对数据访问逻辑进行编码就能编写应用程 序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。 分布式共享数据对象c a c h e 服务一让开发人员编制高性能的系统,极大提 高整体部署的伸缩性。 支持异构环境 j 2 e e 能够开发部署在异构环境中的可移植程序。基于j 2 e e 的应用程序不依 赖任何特定操作系统、中间件、硬件。因此设计合理的基于j 2 e e 的程序只需开 发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。 j 2 e e 标准也允许客户订购与j 2 e e 兼容的第三方的现成的组件,把他们部署到异 构环境中,节省了由自己制订整个方案所需的费用。 可伸缩性 企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满 足那些在他们系统上进行商业运作的大批新客户。基于j 2 e e 平台的应用程序可 被部署到各种操作系统上。例如可被部署到高端u n i x 与大型机系统,这种系统 单机可支持6 4 至2 5 6 个处理器。( 这是n t 服务器所望尘莫及的) 。j 2 e e 领域的 供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器 集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来商业 应用的需要。 稳定的可用性 一个服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要。因 为i n t e m e t 是全球化的、无处不在的,即使在夜间按计划停机也可能造成严重损 失。若是意外停机,那会有灾难性后果。j 2 e e 部署到可靠的操作环境中,他们支 持长期的可用性。一些j 2 e e 部署在w i n d o w s 环境中,客户也可选择健壮性能 更好的操作系统如s u ns o l a r i s 、i b mo s 3 9 0 。最健壮的操作系统可达到9 9 9 9 9 的可用性或每年只需5 分钟停机时i b 】。这是实时性很强商业系统理想的选择。 在介绍j 2 e e 体系结构之前。有必要先介绍一下j a v a 语言的特点。 笫8贝 北京邮电大学硕士论文第二章j 2 e e 体系结构的研究 2 1j a v a 语言的特点 j a v a 语言作为一种程序设计语言,它简单、面向对象、不依赖于机器的结构、 具有可移植性、鲁棒性、安全性、并且提供了并发的机制、具有很高的性能。其 次,它最大限度地利用了网络,j a v a 的小应用程序( a p p l e t ) 可在网络上传输而不 受c p u 和环境的限制。另外,j a v a 还提供了丰富的类库,使程序设计者可以很方 便地建立自己的系统。 j a v a 语言有下面一些特点:简单、面向对象、分布式、解释执行、鲁棒、安 全、体系结构中立、可移植、高性能、多线程以及动态性。 简单性 j a v a 语言是一种面向对象的语言,它通过提供最基本的方法来完成指定的任 务,只需理解一些基本的概念,就可以用它编写出适合于各种情况的应用程序。 j a v a 略去了运算符重载、多重继承等模糊的概念,并且通过实现自动垃圾收集大 大简化了程序设计者的内存管理工作。另外,j a v a 也适合于在小型机上运行,它 的基本解释器及类的支持只有4 0 k b 左右,加上标准类库和线程的支持也只有 2 1 5 k b 左右。库和线程的支持也只有2 1 5 k b 左右。 面向对象 j a v a 语言的设计集中于对象及其接口,它提供了简单的类机制以及动态的接 口模型。对象中封装了它的状态变量以及相应的方法,实现了模块化和信息隐藏; 而类则提供了一类对象的原型,并且通过继承机制,子类可以使用父类所提供的 方法,实现了代码的复用。 分布性 j a v a 是面向网络的语言。通过它提供的类库可以处理t c p i p 协议,用户可以 通过u r l 地址在网络上很方便地访问其它对象。 鲁棒性 j a v a 在编译和运行程序时,都要对可能出现的问题进行检查,以消除错误的 产生。它提供自动垃圾收集来进行内存管理,防止程序员在管理内存时容易产生 的错误。通过集成的面向对象的例外处理机制,在编译时,j a v a 提示出可能出现但 未被处理的例外,帮助程序员正确地进行选择以防止系统的崩溃。另外,j a v a 在编 译i l 还可捕获类型声明中的许多常见错误,防止动态运行时不匹配问题的出现。 雏9埘 北京邮电大学硕士论文第二章j 2 e 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 虚拟机中 的表示,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 解释器直接对j a v a 字节码进行解释执行。字节码本身携带了许多编译时 信息,使得连接过程更加简单。 高性能 和其它解释执行的语言如b a s i c 、t c l 不同,j a v a 字节码的设计使之能很 容易地直接转换成对应于特定c p u 的机器码,从而得到较高的性能。 多线程 多线程机制使应用程序能够并行执行,而且同步机制保证了对共享数据的正 确操作。通过使用多线程,程序设计者可以分别用不同的线程完成特定的行为, 而不需要采用全局的事件循环机制,这样就很容易地实现网络上的实时交互行 为。 动态性 j a v a 的设计使它适合于一个不断发展的环境。在类库中可以自山地加入新的 方法和实例变量而不会影响用户程序的执行。并且j a v a 通过接口来支持多重继 承,使之比严格的类继承具有更灵活的方式和扩展性。 北京邮电大学硕士论文 第二章j 2 e e 体系结构的研究 2 2j 2 e e 体系结构的主要技术 j 2 e e 是建立在j a v a 2 平台上的,都是通过j a v aa p i 来实现各种工能,j 2 e e 平台由一整套服务( s e r v i c e s ) 、应用程序接口( a p i s ) 和协议构成,它对开发基 于w e b 的多层应用提供了功能支持。 s u n 设计j 2 e e 的部分起因就是想解决二层化结构的缺陷。于是,j 2 e e 定义 了一套标准来简化n 层企业级应用的开发。它定义了一套标准化的组件,并为这 些组件提供了完整的服务。j 2 e e 还自动为应用程序处理了很多实现细节,如安全、 多线程等。 用j 2 e e 开发n 层应用包括将二层化结构中的不同层面切分成许多层。一个n 层化应用能够为以下的每种服务提供一个分开的层: 显示:在一个典型的w e b 应用中,客户端机器上运行的浏览器负责实现用户 界面。 动态生成显示:尽管浏览器可以完成某些动态内容显示,但为了兼容不同的浏 览器,这些动态生成工作应该放在w e b 服务器端进行,使用j s p 、s e r v l e t ,或者 x m l ( 可扩展标记语言) 。 业务逻辑:业务逻辑适合用s e s s i o ne j b 来实现。 数据访问:数据访问适合用e n t i t y e j b 和j d b c 来实现。 由于j 2 e e 建立在j 2 s e ( j a v a 2 平台标准版) 的基础上,所以具备了j 2 s e 的 所有优点和功能。包括“编写一次,到处可用”的可移植性、通过j d b c 访问数 据库、同原有企业资源进行交互的c o r b a 技术,以及一个经过验证的安全模型。 在这些基础上,j 2 e e 又增加了对e j b ( 企业级j a 、,a 组件) 、j a v as e r v l e t 、j s p 和 x m l 技术的支持。 j 2 e e 提供了一个框架,一套标准a p i ,用于开发分稚式结构的应用,这个框 架的实际实现留给了第三方厂商。部分厂商只是专注于整个j 2 e e 架构中的的特 定组件,例如a p a c h e 的t o m c a t 提供了对j s p 和s e r v l e t s 的支持,b e a 系统 公司则通过其w e b l o g i c 应用服务器产品为整个j 2 e e 规范提供了一个较为完整的 实现。 成日服务器已使建立和部署伸缩性较好的分斫i 式应用的过程大为简化。应用 服务器和j 2 e e 代你处理了大量常规的编程任务,包括提供习f 务服务、安全领域、 笫i l贝 北京邮电大学硕士论文第二章j 2 e e 体系结构的研究 可靠的消息、名字和目录服务、数据库访问和连接池、线程池、负载平衡和容错 处理等。 通过以一种标准、易用的方式提供这些公共服务,应用服务器产品造就了具 有更好伸缩性和可维护性的应用系统,使其为大量的用户提供了增长的可用性。 在接下来的部分里,将描述构成j 2 e e 的各种技术,并且了解应用服务器是如 何在一个分布式应用中对它们进行支持的。最常用的j 2 e e 技术应该是j d b c 、 j n d i 、e j b 、j m s 、j s p 和s e r v l e t 等。 2 3 j s p s e r v l e t 视图与控制 j 2 e e l 3 系统平台包含了j a v as e r v l e t s2 3 和j a v as e r v e rp a g e ( j s p ) 1 2 的 标准j a v a 扩充。 j s p 页面由j s p 引擎执行,引擎安装在w e b 服务器或者使用j s p 的应用服务 器上,j s p 引擎接受客户端对j s p 页面的请求,并且生成j s p 页面给客户端的响 应。j s p 引擎实际上是把j s p 标签、j s p 页中的j a v a 代码连同静态h t m l 内容都 转换为大块的j a v a 代码,这些代码块被j s p 引擎组织到j a v a s e r v l e t 中,然后 j a v a s e r v l e t 自动把它们编译成j a v a 字节码,这些字节码由j a v a 虚拟机( j v m ) 解 释执行。当访问一个j s p 页时,实际上是由一个已经生成的,预编译过的s e r v l e t 来完成所有的工作。s e r v l e t 只需对每一次请求时的j s p 页面编译一次,并且是由 j s p 引擎自动生成并编译的。服务器在遇到访问j s p 网页的请求时,首先执行其 中的程序片段,所有程序操作都在服务器端执行。j s p 引擎解释j s p 标识和小脚 本,生成所请求的内容,并且将结果以h t m l 或x m l 页面的形式发送回客户端 浏览器。 s e r v l e t 提供的功能大多与j s p 类似,不过实现的方式不同。j s p 通常是大多 数h t m l 代码中嵌入少量的j a 、,a 代码,而s e r v l e t 全部由j a v a 写成并且生成 h t m l 。 s e r v l e t 是- l o o d , 型的j a v a 程序,它扩展了w e b 服务器的功能。作为一种服务 器端的应用,当被请求时丌始执行,这和c g ip e r l 脚本很相似。s e r v l e t 和c g i 脚本的一个很大的区别是:每一个c g i 在丌始的时候都要求开始一个新的进 程;而s e r v l e t 足在s e r v l e t 引擎中以分离的线程来运行的。因此s e r v l e t 在可伸缩 北京邮电大学硕士论文第二章j 2 e e 体系结构的研究 牲土爨拱了缀好豹改进。 从上面的介绍来看,j s p 与s e r v l e t 实际上实现来说是一样的,那么什么情况 下用j s p ,什么情况下用s e r v l e t 呢? s e r v l e t 是j a v a 对c g i 脚本的回应。它们在服务器上运行并且截获浏览器的请 求,辛管为客户与低级应用程序之闯的中间层运行。s e r v l e t 适磁于确定如何处璜客 户请求以及调用其它服务器方对象,并不适合于生成内容。从j a v a 代码中生成标 志是很难实现和维护的。s e r v l e t 必须由熟悉j a v a 的开发者来设计和开发。 露另一方愆j s p 艇茭则可以采用一秸不大像程| 亭,更像是w e b 页蕊豹形式来 设计和开发。当我们需要显示带有嵌入式动态内容的标志时,j s p 网页非常理想。 但是尽管缓用这样生成h t m l 比s e r v l e t 受容易。但j s p 秘页并不适合处溪应 用程序逻辑。这样使得j s p 网页可以由具有表现技巧的设计师来生成和维护,丽 毽靛不需要溪褥j a v a 。 s e r v l e t 与j s p 网页在功能上虽然有所重叠,但是可以把s e r v l e t 看作控制对象, 而把j s p 网页看作是视图对象。它们是互补静技术,复杂的w e b 应用程序两糟都 要用到。 2 4 e j b j 2 e e 的核心 e j b ( e n a t e r p r i s ej a v a b e a n ) 技术是j 2 e e 体系结构中的核心技术之一。它是j a v a 服务嚣端服务框架的技术规范其最新规范憝2 0 0 1 年8 月发布的e n t e r p r i s e j a v a b e a n ss p e c i f i c a t i o n ,v e f s i o n2 0 ,定义了如何编写和部署暇务器端组件,提供 了组件与管理组件的应用服务器之间的标准约定。它是一种组件架构,应用程序 嚣发鬟霹班专注予金渡应恁疑豢戆裔业逻辑, 毳;不必攒心嗣溺框架豹实现藤题, 使得开发人员能够快速开发出具有可伸缩性、多层次、跨平螽和分布式的高度复 杂的企业级应羯。 2 4 1e j b 枣的各角色 e j b 2 。0 媛范定义了以下六静不同的角色袈宠成其任务: 1 企业b e a n 开发者 企盈b e a n 开发者受责习:笈执行商妲逻辑黼赠的e j b 野i 件,辫:发f :f j 静e j l 3 绑 北京邮电大学硕士论文第二章j 2 e e 体系结构的研究 件打包成9 j b j a r 文件。企业b e a n 开发者负责定义e j b 的远程接1 2 1 和自身接口, 编写执行商业逻辑的企业b e a n 类,提供部署e j b 的部署描述符( d e p l o y m e n t d e s c r i p t o r ) 。部署描述符包含e j b 的名字,e j b 用到的资源配置,如j d b c 等。 企业b e a n 开发者是典型的商业应用开发领域专家。 2 应用组装者 应用组装者负责利用各种e j b 组装成大的可部署的应用系统单元。应用组装 者根据企业b e a n 开发者提供的e j b - j a r 文件,创建出包含应用组装说明的e j b - j a r 文件。应用组装者有时还需要提供一些相关的程序,如在一个电子商务系统里, 应用组装者需要提供j s p 程序。应用组装者必须掌握所用的e j b 的自身接口和远 程接口,但不需要知道这些接口的实现。 3 部署者 部署者负责将企业b e a n 开发者或应用组装者的e j b - j a r 文件部署到用户的系 统环境中。系统环境包含某种e j b 服务器和e j b 容器。部署者必须保证所有由 e j b 组件开发者在部署文件中声明的资源可用,例如,部署者必须配置好e j b 所 需的数据库资源。 部署过程分两步:部署者首先利用e j b 容器提供的工具生成一些类和接口, 使e j b 容器能够利用这些类和接口在运行状态管理e j b 。部署者把e j b 组件和 其他在上一步生成的类安装到e j b 容器中。部署者是某个e j b 运行环境的专家。 4e j b 服务器提供者 e j b 服务器提供者是系统领域的专家,精通分布式交易管理,分布式对象及 其它系统级的服务。一个典型的e j b 服务器提供者是一个操作系统开发商、中间 件开发商或数据库开发商。在目前的e j b 规范中,假定e j b 服务器提供者和e j b 容器提供者来自同一个开发商,所以,没有定义e j b 服务器提供者和e j b 容器 提供者之间的接口标准。 5 容器提供者 e j b 容器提供者提供以下功能: ( 1 ) 提供部署企业b e a n 所需的部署工具。 ( 2 ) 提供对已部署好企业b e a n 实例运行时刻的支持。 由企! b e a n 看来,e j b 容器是目标系统环境的一部分。e j b 容器为部署企 北京邮电大学硕士论文第二章j 2 e e 体系结构的研究 业b e a l l 提供运行环境,e j b 容器负责为企业b e a n 提供事务管理,安全管理等服 务。e j b 容器提供者必须是系统级的编程专家,还要具备一些应用领域的经验。 e j b 容器提供者的工作主要集中在开发一个可伸缩的,具有事务管理功能的集成 在e j b 服务器中的容器。e j b 容器提供者为企业b e a n 开发者提供了一组标准的、 易用的a p i 访问e j b 容器,使e j b 组件开发者不需要了解e j b 服务器中的各种 技术细节e j b 容器提供者负责提供系统监测工具用来实时监测e j b 容器和运行 在容器中的e j b 组件状态。 6 系统管理员 系统管理员负责为e j b 服务器和容器提供一个企业级的计算和网络环境。系 统管理员负责利用e j b 服务器和容器提供的监测管理工具监测e j b 组件的运行 情况。 图2 - 1 描述了在企业应用开发的过程中,e j b 六种不同角色所起的作用。 2 4 2e j b 的体系结构 1 整体描述 图2 2 是e n t e r p r i s ej a v a b e a n s 体系结构的一个整体描述。 这里先对其作简要的介绍,在本文的后面内容中将对主要部件作较详细的介 绍。 e j b 服务器是管理e j b 容器的高端进程或应用程序,并提供对系统服务的访 问。e j b 服务器也可以提供厂商自己的特性,如优化的数据库访问接口,对其他 服务如c o r b a 服务的访问,对s s l3 0 的支持等。一个e j b 服务器必须提供对 可访问j a v a 名字和目录服务接口( j n d i ) 的名字服务和事务服务支持。访问一些 可能的e j b 服务器、应用服务器、中间件服务器等。 e j b 容器是一个管理一个多个e j b 类或实例的抽象。它通过规范中定义的接 口使e j b 类访问所需的服务。容器厂商也可以在容器或服务器中提供额外服务的 接口。 北京邮电大学硕士论文第二章j 2 e e 体系结构的研究 姚备月矗 图2 - 1e j b 中的不同角色 ej 8 服务器 图2 - 2 e j b 的体系结构 第1 61 j 1 北京邮电大学硕士论文第二章j 2 e e 体系结构的研究 会话b e a n 或实体b e a n 的自身接口列出了所有定位、创建、删除企业b e a n 类 实例的方法,自身对象是自身接口的实现。会话b e a n 或实体b e a n 的远程接口 列出了企业b e a n 类中的商业方法。e j b 对象实现远程接口,并且客户端通过它 访问企业b e a n 实例的商业方法。企业b e a n 开发者定义远程接口,容器开发商 提供产生相应的e j b 对象的方法。客户端不能得到企业b e a n 实例的引用,只能 得到它的e j b 对象实例的引用。当客户端用一个方法,e j b 对象接受请示并把 它传给企业b e a n 实例,同时提供进程中必要的包装功能。客户端应用程序通过 自身对象来定位、创建、删除企业b e a n 类的实例,通过e j b 对象来调用实例中 的商业方法。客户端可以用j a v a 来编程,通过j a v a r m i 来访问自身对象和e j b 对 象,或用其他语言编程并通过c o r b a i i o p 访问,使得部署的服务器端组件可以 通过j a v a 接口来访问。 消息驱动b e a n 对于客户来说,仅仅只是j a v a 消息服务( j a v am e s s a g e s e r v i c e ) 的一个消息使用者。客户通过使用j a v a 名字和目录服务接口来定位一个 消息驱动b e a n 相关联的j a v a 消息服务目的地。 2 企业b e a n 的结构 e j b 体系结构的一个主要目标是将企业应用开发者从必须处理应用的系统级 事项中解脱出来,使其将精力集中在应用的商业逻辑方面。企业b e a n 开发者将 应用作为一组企业b e a n 来开发,每一个企业b e a n 由企业b e a n 类、企业b e a n 客 户视图和部署描述符三部分构成。 ( 1 ) 企业b e a n 类 企业b e a n 类是一个j a v a 类,它实现了商业逻辑和企业b e a n 对象生命的周 期方法。e j b 2 0 规范定义了三种类型的企业b e a n :会话b e a n 、实体b e a n 和消 息驱动b e a n 。 1 ) 会话b e a n 会话b e a n 是一种作为单用户执行的对象。作为对远程的任务请示的相应, 容器产生一个会话b e a n 的实例。一个会话b e a n 有一个用户。从某种程序来说, 一个会话b e a n 对于服务器来说就代表了它的那个用户。会话b e a n 也能用于事 务,它能够更新共享的数据,但它不直接描绘这些共享的数拥。会话e j b 的生命 周期是相对较短的。典型的是,只有当用j - 保持会话的时候,会话e j b 是活着的。 北京邮电大学硕士论文第二章j 2 e e 体系结构的研究 一旦用户退出了,会话e j b 就不再与用户相联系了。会话e j b 被看成是瞬时的, 因为如果容器崩溃了,那么用户必须重新建立一个新的会话对象来继续会话。 会话e j b 又被分为两种:有状态会话e j b 和无状态会话e j b 。有状态会话e j b 用于贯穿多个方法请求和事务的商业过程,当用户终止与有状态会话e j b 互操作 的时候,e j b 也不再拥有状态值。其典型例子是网上商店的购物车。而无状态会 话e j b 用于客户调用方法期间不用维护任何状态信息,无状态会话e j b 并不掌握 它的客户的信息或者状态。用户能够调用e j b 的方法来完成一些操作。但是,e j b 只是在方法调用的时候才知道用户的参数变量。当方法调用完成以后,e j b 并不 继续保持这些参数变量。这样,所有的无状态会话e j b 的实例都是相同的,除非 它正在方法调用期间。这样,无状态会话e j b 就能够支持多个用户。容器能够声 明一个无状态会话e j b 。能够将任何会话e j b 指定给任何用户。其典型例子是执 行较复杂的数学运算的e j b 。 2 ) 实体e j b 实体e j b 对数据库中提供了一种对象的视图。例如:一个实体e j b 能够模 拟数据库表中一行相关的数据。多个客户能够共享访问同一个实体e j b 。实体e j b 通过事务的上下文来访问或更新下层的数据。这样,数据的完整性就能够被保证。 实体e j b 能存活相对较长的时间,并且状态是持续的。只要数据库中的数据存在, 实体e j b 就一直存活。即使e j b 容器崩溃了,实体e j b 也是存活的。实体e j b 生 命周期能够被容器或者e j b 自己管理。如果由e j b 自己管理,就必须写实体e j b 的代码,包括访问数据库的调用。实体e j b 是由主键唯标识的。主键是c l i e n t 能够定位特定的数据。通常,主键与标识数据库中一块数据库的主键是相同的。 例如当实体e j b 代表一个数据库记录时,主键可能是该记录的组合键。对于每个 实体e j b 的实例,有一个相应的e j b 对象。当一个e j b 对象与一个实体e j b 实 例对应时,该实例的主键保存在e j b 对象中。 3 ) 消息驱动e j b 新的e j b 规范

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论