(计算机软件与理论专业论文)javamail规范的研究和实现.pdf_第1页
(计算机软件与理论专业论文)javamail规范的研究和实现.pdf_第2页
(计算机软件与理论专业论文)javamail规范的研究和实现.pdf_第3页
(计算机软件与理论专业论文)javamail规范的研究和实现.pdf_第4页
(计算机软件与理论专业论文)javamail规范的研究和实现.pdf_第5页
已阅读5页,还剩95页未读 继续免费阅读

(计算机软件与理论专业论文)javamail规范的研究和实现.pdf.pdf 免费下载

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

文档简介

7 7 9 0 9 8 j a v a m a il 规范的研究和实现 计算机软什j s i i t - 、j p 研究生:孙鹏指导老炳:唐宁九 近年来在 n t e r n e t i n t r a n e t e x t r a n p t 开发环境中,企业级应j 1 j 系统大 多采用i 层或多层应用模式,这就是为我们所知的“了层多层计算”。为了 便开发、部署、运行和管理基于多层结构的应用,需要以网络和分郁式计算:的 底层技术为基础,构建一个系统的应用框架,提供相应的支撑平台作为多层应 川的基础设施,这一支撑平台的关键就是位于中问层的应用服务器。 而近年在应用服务器市场上最具意义的进展,就是j 2 e e ( j a v a2p l a tf o r m e n t e r p r js ee d i to n ) 的出现。这是s u n 公司提出的开发、部署、运行和管理 基于j a v a 分布式应用的标准平台。它提供了对e j b 、j a v as e r v l e t 、j s p 等技 术的全而支持。e j b 作为j 2 e e 架构l j 最重要的组什,址服务器端分却式lf :模 型的核心。j 2 e e 使用e j b 容器作为商业组件的部署环境,e j b 容器负责控制e j b 的运行,并且为它提供重要的系统级的服务事务处理、安全、远端i i f , , 】、 数据库访m j 等。 j a a p ( j u s ta n o t h e ra p p s e r v e r p r o v i d e r ) 项目是完全或大部分基于j 2 e e 规范的企业级应用服务器的研究和开发。j a a p 定义为一个j 2 e e 应用服务器开 源项目,实质上是一组服务和工具的软件包。在前期工作中已完成的 :作包括 j m x 管理框架,e j b 容器和j d o 规范的独立实现,以及j a v a m a i l 规范的独立实 现。 j a v a m a i la p i 是一种可选的、能用于读取、编写和发送电子消息的包( 标 准扩展) 。您可使用这种包创建邮件用户代理( m a i lu s e ra g e n t ,m u a ) 类型 的程序,它类似于e u d o r a 、p i n e 及m jc r o s o f to u t o o k 这些邮件程序。其主要 只的不是像发送邮件或其他邮件传输代理( m a i lt r a n s f e ra g e n t ,m t a ) 类型 的程序那样用于传输、发送和转发消息。换句话说,用户可以与m u a 类型的程 序交互,以阅读和撰写电子邮件。m u a 依靠m t a 处理实际的发送任务。通常开 川夫。76 砸i t r 化沧文 发j a v a m a i l 秘序还需要彳fs u n 的j a v a b e a n sa c t i r a t j o df r a m e w o r k ( j a f ) 、 j d v d m a 儿a p i 的改汁足,为收发信息提供1 j 协议尢火的访问。,力j 址把该a i i 划分成阿个部分: 第一个部分定义了一绢平台无关、独市于通讯协议的邮件程序框架,该 部分称为应j j 级接口。 2 第二个部分为具体的协议实现层,该层使用特定的协议语占来实现第一 部分的相关服务的抽象类和接口,这些协议包括:s m t p 、p o p 、i m a p 和 n n t p 。如果要让d a v a m a i la p 与服务器通信,就需要为之提供协议。, 该部分称为服务提供者接口。 本文作者在j a v a m a i i 规范的基础上,进行了j a v a m a i l 体系架构的的研究 和实现。着重关注于j a v a m a i i 协议实现层的研究和实现。这样做的原因是: j a v a m a i l 只是定义了一组平台无关、独立于通讯协议的邮件程序框架,或者说 是接口,因此第三方可以方便的遵循该接口开发自己的协议,以增强j a v a m a i l 的功能,提供个性化的服务。 本文的主要贡献在框架层中,分析和改进了对附件中文名字的支持;在协 议实现层中,增强了p o p 3 协议的功能,鉴于s u n 公司并没有对n n t p 协议的默 认实现,本文作者进行了n n t p 协议的实现,并对j a v a m a i l 的安全性相关的问 题进行了分析和有意义的探索。 关键词:j 2 e e 应用服务器j a v a l v l a i lm i m es m t pp o p 3n n t p ! ! ! 型叁竺丝! :! :! ! 堡皇 t h er e s e a r c ha n di m p l e r n e n t a t i o n o fj a v a m a i ls p e c i f i c a t i o n m a j o r :c o m p u t e rs o f t w a r e & t h e o r y s t u d e n t :s u np e n ga d v i s o r :t a n gn i n f i u i nr e c e n ty e a r s ,i nt h ei n t e r n e t i n t r a n e t e x t r a n e td e v e l o p m e n te n v i r o n m e n t ,t h e e n t e r p r i s el e v e la p p l i c a t i o ns y s t e mm o s t l y u s e dt h r e eo rt h em u l t i l a y e r e da p p l i c a t i o n p a t t e r n a sw ea l lk n o w ,t h i si sc a l l e dt h e ”t h r e e m u l t i l a y e rc o m p u t i n g t h e r e f o r e ,i t i sn e e d e dt oc o n s t r u c ta l le n t i r ea p p l i c a t i o nf r a m e w o r kf o rt h ed e v e l o p m e n t , d e p l o y m e n t ,y l l na n dm a n a g e r m e n to ft h e s ea p p l i c a t i o n st op r o v i d et h e mw i t ha n a p p r o p r i a t e dc o r r e s p o n d i n gp l a t f o r ma st h ei n f r u s t r a c t u r e ,w h i c hi s b a s e do nt h e c o m p u t e rn e ta n dd i s t r i b u t e dc o m p u t i n gt e c h n o l o g i e s a c m a l l y t h ek e yo fs u c ha p l a t f o r mi st h ea p p l i c a t i o ns e v e ri nt h em i d d el a y e r d u r i n gt h ep a s ts e v e r a ly e a r s ,t h em o s ts i g n i f i c a n tp r o g r e s si nt h ea p p l i c a t i o ns e r v e r m a r k e tw a st h ea p p e a r a n c eo fj 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 ) i ti s a s t a n d a r dp l a t f o r ms p e c i f i e db yt h es u nc o r p o r a t i o nt od e v e l o p ,d e p l o y ,r u na n d m a n a g ej a v ad i s t r i b u t e da p p l i c a t i o n s i th a sp r o v i d e dw i t ht h ef u l ls u p p o r to fe j b j a v as e r v l e t a n dj s pe l c a st h em o s ti m p o r t a n tc o m p o n e n to fj 2 e e ,e j bi st h ec o r e o ft h ed i s t r i b u t e dc o m p u t i n gm o d e l j 2 e es p e c i f i c a t i o nd e f i n e de j bc o n t a i n e ra st h e e n v i r o n m e n tt od e p l o yb u s i n e s sc o m p o n e n t s e j bc o n t a i n e ri sr e s p o n s i b l ef o r m a n a g i n ge j bc o m p o n e n t s ,a n dp r o v i d e si m p o r t a n t s e r v i c e sa t s y s t e ml e v e l t r a n s a c t i o n ,s e e u r i t y , r e m o t ec a l l ,d a t a b a s ea c c e s se t c j a a p ( j u s t a n o t h e r a p p s e r v e rp r o v i d e 0p r o j e c te n g a g e s i n r e s e a r c h i n g a n d d e v e l o p i n ga p p l i c a t i o ns e i v e l a te n t e r p r i s el e v e la c c o r d i n gt oj 2 e es p e c i f i c a t i o n t h ej a a pi saj 2 e eo p e ns o t l r c ep r o j e c t ,i n c l u d i n gag r o u po fs o f t w a r ep a c k a g e so f s e r v i c e sa n dt o o lk i t s t h ej m x ,t h ee j bc o n t a i n e r , j d o a n dj a v a m a i l 3 州川人# 硼t j 学位论史 m p l e m e n t a l i o n ,h a v eb e e nc o m p l e t e di ne a r l y s t a g e j a v a v l a i la p ii sa no p t i o n a ls m n d a r de x t e n s i v ep a c k a g e ,w h i c hc a nb eu s e dt o r e a d ,w r i t ea n ds e n de l e c t r o n i cm e s s a g e y o uc a nu s et h ep a c k a g et od e v e l o pa l l e n t e r p r i s ea p p l i c a t i o nw h i c hi n c l u d e sm a i lu s e ra g e n t ( m a i lu s e ra g e n t 。m u a ) ,i t i ss i m i l a rt ot h ef o l l o w i n gp r o g r a m s :e u d o r a ,p i n ea n dm i c r o s o f to u t l o o k i t sm a i n g o a li sn o tt oa c ta st h em a i lt r a n s f e ra g e n t ( m t a ) p r o g r a m sw h i c ha r eu s a l l yu s e d t ot r a n s m i t ,a n dr e t r a n s m i tt h em e s s a g e s i no t h e rw o r d s ,t h ef i n a lu s e rm a yu s et h e m u a t y p ep r o g r a m st o r e a da n dw r i t ee l e c t r o n i cm e s s a g e s m u ad e p e n d su p o n m t at op r o c e s st h e a c t u a lt r a n s m i s s i o nd u t y u s u a l l yd e v e l o p i n gt h ej a v a m a i l p r o g r a m s a l s on e e dt h ej a v a b e a n sa c t i v a t i o nf r a m e w o r k ( j a f ) f r o ms u n m i c r o s y s t e m s t h eg o a lo fj a v a m a i la p ii st op r o v i d ei n d e p e n d e n c eo fs p e c i f i c p r o t o c 0 1 t h em e t h o di st od i v i d et h i sa p ii n t ot w op a r t s : 1 t h ef i r s tp a r td e f i n e sag r o u po fe l e m e n tw h i c ha r en e e d e df o rm o d e l i n ga m a i l i n gs y s t e m ,w h i c hp r o v i d e s a p l a t f o r m i n d e p e n d e n t a n d p r o t o c o l i n d e p e n d e n t f r a m e w o r k t o b u i l d m a i la n d m e s s a g i n g a p p l i c a t i o n s t h i sp a r ti sn a m e da p i ( 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 ) 2 t h es e c o n dp a r ti st h e p r o t o c o l r e a l i z a t i o n l a y e r , w h i c i h u s e s p e c i f i c p r o t o c o ll a n g u a g et oe x t e n do ri m p l e m e n tt h ec l a s s e so i n t e r f a c eo ft h ef i r s t l a y e ro fj a v a m a i l ,t h e s ep r o t o c o l si n c l u d e :s m t p p o ei v i a pa n dn n t e i na l la p p l i c a t i o n ,i fy o uw a n tt ou s e j a v a l v l a i la p it oc o m m u n i c a t ew i t ht h e s e r v e r , y o um u s tp r o v i d et h ec o r r e s p o n d i n gp r o t o c o lf o ri t t h i sp a r ti s n a m e ds p l ( s e r v i e ep r o v i d e ri n t e r f a c e ) t h ea u t h o ra n a l y s i s z e st h ew h o l ef r a m e w o r ko fj a v a m a i l a n dg i v eac o r r e s p o n d i n g i m p l e m e n t a t i o n ,h a sf o c u s e do nt h er e s e a r c ha n dt h er e a l i z a t i o no fp r o t o c o ll a y e r n l ef o l l o w i n gi s s u e si l l u s t r a t et h er e a s o n s :j a v a m a i lo n l yd e f i n e saf r a m e w o r ko f p l a t f o r m i n d e p e n d e n ta n dp r o t o c o l - i n d e p e n d e n t o rt os a yi td e f i n e sas e to fs m n d a r d c l a s s e sa n di n t e r f a c e st ob eu s e df o rt h ep r o t o c 0 1 t h e r e f o r et h et h i r dp a r t ya r e a l l o w e dt of o l l o wt h i ss t a n d a r dt od e v e l o pt h e i ro w ns e v i c ea c c o r d i n gt os p e c i f i c p r o t o c o lt os t r e n g t h e nt h ef u n c t i o no fj a v a m a i l ,t h e np r o v i dt h ei n d i v i d u a ls e r v i c e 4 叫川人。7 :硕j 学位论殳 t h em a i nc o n t r i b u t i o no ft h i sa r t i c l ei s :i nt h ef l a m el e v e l ,j a v a m a i li s a n a l y z e d a n di m p r o v e dt os u p p o r tt h ec h i n e s en a m eo fa na t t a c h m e n t :l ut h c p r o t o c o l r e a l i z a t i o nl e v e l ,i ti ss t r e n g t h e n e di np o p 3p r o t o c o lf u n c t i o n ,t h en n t pp r o t o c o l r e a l i z a t i o n ( s u nm i c r o s y s t e m s 1 n ch a sn o tg i v et h i sn n t pp r o v i d e r ) a n dt h e a n a l y s i sh a sb e e nc a r r i e do nt h ej a v a m a i ls e c u r ei s s u e sa n de f f o r t sa r em a d et ot a k e s o m es i g n i f i c a n te x p l o r a t i o n k e y w o r d s :j 2 e e ,a p p l i c a t i o ns e r v e r , j a v a m a i l ,m i m e ,s m t p ,p o p 3 ,n n t p 5 第一章综述 1 1 选题背景及其意义 近年来,在i n t e r n e t i n t r a n e t e x t r a n e t 开发环境中,企业级应用系统大 多采用三层或多层应用模式,这就是为我们所知的“三层多层计算”。为了方 便开发、部署、运行和管理基于多层结构的应用,需要以网络和分布式计算的 底层技术为基础,构建一个完整的应用框架,提供相应的支撑平台作为多层应 用的基础设施,这一支撑平台的关键就是位于中问层的应用服务器。 一个对应用程序服务器的定义如下:采用具有分布式计算能力的集成结构、 支持瘦客户机的软件服务器产品。应用程序服务器的基本用途包括:管理客户 会话、管理业务逻辑、管理与后端计算资源( 包括数据、事务和内容) 的连接。 目前基于j 2 e e 技术实现的应用服务器在市场上具有非常重要的地位。基于 j 2 e e 应用服务器的三层应用体系结构如图1 1 所示: 围i - 1j 2 e e 三层应用体系结构( 尽管2 e e 支持四层但是w e b 层和业务层通常认为 是中间层( m i d d l e n e r ) 的子层。导致了分布在客户端、中间层和e i s 层的三层应用) j 2 e e 平台使用多层分布式的应用模式。应用逻辑根据其功能分成多个组 件,各种不同的应用组件构成分布在不同的依赣于层的机器上的j 2 e e 程序。下 面列出了位于不同层的组件 一运行在客户机上的客户层组件 州川人毕碗 学位i t = 史 运行在j 2 e e 服务器一i j 的网络层 运行在j 2 e e 服务器j :的逻辑层 运行在e i s 服务器上的企业信息层 尽管j 2 e e 应用程序可以由三层或四层构成,j 2 e e 应用程序通常由三层构 成,因为他们分布于三个不同的位置:客户及,服务器,后台数据库服务器。 通过这种方式运行的三层应用模式拓展了基于客户服务的两层模式。 应用服务器已经成为构建新一代分布式应用系统的软件平台。因此对应用 服务器体系结构的研究是目前计算机软件及分布式系统领域研究的前沿课题。 1 2j 2 e e 应用服务器的国内外发展概况 应用服务器已经成为电子商务应用中一种非常关键的中闻件技术。许多厂 商都提供完整的j 2 e e 应用服务器,s u n 的许可证页面上 ( h t t p :j a v a s u n c o m j 2 e e l i c e n s e e s h t m l 猡n 出了已获得许可证和正式品 牌的厂商的完整列表。这些产品包括b e as y s t e m s 公司的w e b l o g i cs e r v e r 系 列,b o r l a n dc o r p 公司的a p p s e r v e r 系列,i b m 公司的w e b s p h e ra p p l i c a t i o n s e r v e r 系列,i p l a n e t 的i p l a n e ta p p l i c a t i o ns e r v e r 系列,o r a c l e 公司的 o r a c l ea s 系列等。 另外,开放源码的应用服务器对现有的应用服务器提供商具有一定的冲击 力。低价位和开放源代码的应用服务器,如j b o s s ,能够提供主要的应用服务器 功能,显然对中低端的应用是足够了。这也是许多应用服务器提供商发布低价 位和低端应用服务器版本的原因之一。其它的应用服务器还有e n h y d r a ,该项 目的主要目标之一就是集成现有的所有源代码开放项目,并将其合并为一个应 用服务器项目。可以肯定,开放源代码的应用服务器必会对市场产生重要影响。 但是,目前为止,国内从事应用服务器开发的公司屈指可数。大部分的公 司仅仅基于国外的应用服务器平台进行应用开发工作。不同的容器厂商分别有 对j 2 e e 规范各自不同的实现,有优有劣。甚至很多开源项目对j 2 e e 规范中某 一部分组件容器做了单独的实现。 通过比较和研究,我们发现不同的j 2 e e 应用服务器问存在着巨大的性能和 可扩展性差异。我们相信架构的设计是决定类似于性能和可扩展性等质量指标 的重要因素。因此,我们决定对这一领域进行研究,并创建自己的架构模型和 实现。 1 3j 2 e e 规范和j a v a m a i l 技术 作为中间层的应用服务器有着不同的标准,其中c o m 、c o r b a 和j 2 e e 是3 个最主要的规范,r 标的应用服务器没计基本i :都足基于以一j ? 3 种标准 c o m d c o m 是由微软开发的个分布式对象技术,适合于w i n d o w s w i n d o w sn t 环境,缺点是局限于w i n d o w s 的产品系列,兼容性差;c o r b a 是由o m g 组织开 发的技术,表示公共对象请求代理体系结构,核心的思想是对象b u s 的概念。 它允许对象即插即用,其通信协议i i o p 可以跨语言,跨厂商进行操作,但由于 各u n i x 厂商对c o r b a 执行得不够彻底,互联比较困难;而由s u n 公司发起的 j 2 e e 规范是现在市场上的主流。j 2 e e 标准是过去几年中形成的一个与厂家无关 的公共标准,它将许多分散的j a v a 技术整合到一起,组合成一个完整的企业标 准。 j 2 e e 主要包含以下规范: 中间件( m i d d l e w a r e ) 包括e n t e r p r i s ej a v ab e a n ( e j b ) 和j a v a m e s s a g es e r v i c ef j m s 等分布式企业计算的组件 名称和目录j n d i ( j a v an a m i n ga n dd i r e c t o r yi n t e r f a c e ) a p i 用于查 找服务和组件 表示( p r e s e n t a t i o n ) 服务器端小程序s e r v l e t 和j a v a 服务器页( j s p ) 支持 - w e b h t t p 浏览器访问 i j t s 、j t a ,j a v a m a i l ? j d b c 、j a f j 2 e e 是一个基于组件一容器模型的系统平台,其核心概念是容器。容器是 指为特定组件提供服务的一个标准化的运行时环境,j a v a 虚拟机就是一个典型 的容器。组件是一个可以部署的程序单元,它以某种方式运行在容器中,容器 封装了j 2 e e 底层的a p i ,为组件提供事务处理、数据访问、安全性、持久性等 服务。在j 2 e e 中组件和组件之间并不直接访问,而是通过容器提供的协议和方 法来相互调用。组件和容器问的关系通过“协议”来定义。容器的底层是j 2 e e 服务器,它为容器提供j 2 e e 中定义的各种服务和a p i 。一个j 2 e e 服务器( 也叫 j 2 e e 应用服务器) 可以支持种或多种容器。每个容器的服务包括两部分:j 2 s e 和一组扩展的服务。这是因为j 2 e b 是以j a v a 标准版为基础的,各容器在j 2 s e 之上再根据需要提供一些扩展的服务,如目录服务、事务管理、数据访问、消 息机制、安全性等。 j 2 e e 本身足一个标准,而不是一个现成的产船。s u n 公司联介i b m 、o r a c l e 、 b e a 等大型企业应川系统开发商于1 9 9 8 年共| l ! d 制订了一个笨于j a v a - t l t t :技术 的企业垃用系统开发规范。该规范定义了一个基于组件的多层企业应用系统开 发平台。平台角色及j 2 e e 中每种服务和核心a p i 的实现要求。、它是j 2 e e 成用 服务器开发商的大纲。这一规范和其定义的平台就构成了j 2 e e 。 j a v a m a i l 是用于存取邮件服务器的a p i ,它提供了一套邮件服务器的抽象 类。j a v am a jla p i 的开发是s u n 为j a v a 开发者提供公用a p i 框架的持续努力 的良好例证。提倡公用框架,反对受限于供应商的解决方案,充分预示着一个 日益开放的开发环境的建立。j a v am a i 】a p i 的结构本身证明了它的开发者的 基本目标之软件开发的工作量应该取决于应用程序本身的复杂程度以及开 发者所要求的控制程度。换句话说,j a v am a i la p i 尽可能地保持简单。 j a v a m a i la p i 由4 个包组成,用来分别提供新闻和电子邮件的功能。尽管 j a v a m a i la p i 有处理非i n t e r n e t 邮件和新闻服务的功能,但是默认实现仅包括 i n t e m e t 功能。 1 4 课题介绍及目标工作 本课题所进行的研究工作正是在上述背景下展开的,我们的最终日标是设 计、实现一个完全或大部分基二j :j 2 e e 规范的企业级应用服务器,其代号为 j a a p ( j u s ta n o t h e ra p p s e r v e rp r o v i d e r ) 。j a a p 的定义为一个j 2 e e 应用服务器 开源项目,实质上是一组服务和工具的软件包,包括一个j m x 管理框架( j a p p m x ) 和一个e j b 容器,以及嵌入的第三方的w e b 容器,并将在未来提供对商务组件和 w e b s e r v i c e 的支持。j a a p 基于j m x 构建,j m x 为基于s n m p 、c i m w e b m 或t m n 协议的 各种现有管理系统的互操作提供了一种动态管理框架和服务。j a a p 的实现基于 j 2 e ev 1 ,3 规范实现,支持e a r 、j a r 、w a r 文件的热部署,对这些文件的修改, 也不需要重启服务器就可以生效;支持e j b i 1 以及部分e j b 2 0 ;提供c a c h e 群 集服务;基于j m x 的服务框架,所有的服务被实现为j m x 服务( m b e a n s ) 被插入到 j a a p 的内核中;提供j a a p 的控制台c o n s o l e ( j a a p m xb a s e d ) ;集成t o m c a t ,提供 基本的j s p s e r v l e t 服务;独立实现y j d o 规范,以组件形式插入j a a p 应用服务 器,替代实体b e a n 完成数据库访问。 由于j 2 e e 框架规范包括的内容很广,所以,j a a p 的成功实现是个长期努 力的过程,已经实现的工作有: 1 按照j m x 规范v 1 2 版实现服务器的j m x 微内核,提供j a v a 应用程序、j a v a 4 x j 象、0 2 e 叫i 件等实体的“仙人式”僻州机梨,独成果为o a a p m x ; 2 按j f i e j b 容器规范实现j 2 e e i 架的e j b 容器,j 独妒成果为j a a p e j b ; 3 实现提供对e n t i t ye j b i i j , j j d o i 关替代实现,其独立成果为j a a p d o ; 本文作者足在胁人_ i :作的楚础j i 主璎增加了x t j a v a m a i l 规范的实现: 按 ! ( , j a v a m a i l 规范v i 3 版实现j a v a m a i l 底壕的实现j i :集成:f i i j a a i 叫t ,j 独: 成果为j a a p j m a i l 。 第二章j 2 e e 概述 j 2 e e 足成长很快的技术应j j 机架,全球很多新的应川足| jj 2 e e 分枷式应 川体系史撑的。,j 2 e e 足种技术脱池它给,i :发人d ! 提供j ,一种i :作平台它 定义了整个标准的应j j j l :发体系结构和一个部署环境。在这个体系结构中,应 用开发者的注意力集中于封装商业逻辑和商业规则上,一切与基础结构服务相 关的问题以及底层分配问题都由应用程序容器或者服务器来处理。这样j 2 e e 应用程序开发人员可以集中考虑应用程序的逻辑和相关的服务,而把所有基础 结构相关的服务交由运行环境实现。 2 1 j 2 e e 的演化 j a v a 编程语言是j 2 e e 的基础,j a v a 的前身是与平台无关的语言“o a k ”, 诞生于1 9 9 1 年s u n 公司的一个研究项目,最初的目的是为了应用于消费类电子 设备的开发。1 9 9 4 年i n t e r n e t 开始起步,j a v a 逐渐发展成为一种带有a p p l e t 和o a v a b e a n 之类技术的客户端) :发i m 1 9 9 6 年1 月,第一个j d g j d k i 0 诞生 1 9 9 6 年4 月,1 0 个最主要的操作系统供应商申明将在其产品中嵌入j a v a 技术。 1 9 9 6 年9 月,约8 3 万个网页应用了j a v a 技术来制作。 1 9 9 9 年2 月1 8 日,j d k i 1 发布。 1 9 9 8 年2 月,j d k i 1 被下载超过2 ,0 0 0 ,0 0 0 次。 1 9 9 8 年1 2 月8 日,j a v a 2 企业平台j 2 e e 发布。 1 9 9 9 年6 月,s u n 公司发布j a v a 的三个版本:标准版、企业版和微型版 ( j 2 s e 、j 2 e e 、j 2 m e ) 。 2 0 0 0 年5 月8 口,j d k 3 发布。 2 0 0 0 年5 月2 9 日,j d k i 4 发布。 2 0 0 1 年9 月2 4 日,j 2 e e i 3 发布。 2 0 0 2 年2 月2 6f j ,3 2 s e i 4 发布,臼此j a v a 的计算能力有了大幅提升。 2 0 0 4 年9 月3 0 日,j 2 s e i 5 发布,是j a v a 语言的发展史上的又一里程碎 事件。为了表示这个版本的重要性,j 2 s e i 5 更名为j 2 s e 5 0 。 6 i 叫川人1 :坝i7 ;r n l 仑文 2 2j 2 e e 的体系架构 j 2 e e 平台所需的各组成部分以及它们之问的关系如图2 1 所,j i ,该阿, i i ,kj 符绑成部分之0 , j f l j 逻车i 父系| f | j ”f i 农,j j 俳嘤把这此组成i ;l ;分放订:4 q j r j 杉【* * i :或f i i 司的虚拟杉lj :。 图2 1j 2 e e 架构 j 2 e e 体系结构可以从两个角度来看,一个是从应用程序的角度来看,从i 剞 中可以看出j 2 e e 的应用程序体系结构。客户端町以是w e b 浏览器或者j a v a 应 用程序,如果是浏览器的客户端,则可以使用a p p l e tc o n t a i n e r 来运行h t m l 网页里的a p p i e t 程序,浏览器的客户层通过h t t p 、s s l 等其它协议和w e b 层进 行通信。如果是一般的客户端,它可以使用j 2 e e 里的j m s 、j d b c 等特性,同时 所有的j 2 s e 里的内容都可以支持,它可以直接访问w e b 层、业务层和数据库层。 w e b 层又叫表示层,它上面运行了j s p 、j a v a b e a n 和s e r v e t 组件,这些 组件除了可以使用j 2 s e 的所有功能外,还可以使用许多j 2 e e 提供的服务:j m s 、 j a a s 、j d b c 、j t a 、j a v a m a i l 、j a x p 等,它通过调 j 业务层的e j b 来处理业务 逻辑。 业务层主要运行了e j b ,e j b 是j 2 e e 企业级应用的核心,它处理系统运算 i 大的、l k 抒逻掣l 匕给f f e a f f , j :, u i i 摊供j 7 统- 的 :l ii w e bj 工_ i i ! l 过远袱测川 的力泄i 米使川i j l ai i 州i l n x 使川择器提供的服务或抒j i i :接游m 数姒阼,叭 窬器还挺供j ,事务服务,简化j ,e j b 的开发。 另外一个角度魁从组件一容器的角度来看j 2 e e 的体系结构。容器足指为特 定绀f 1 :提供服务的一个标准化的运行肘环境,j a v a 虚拟机就足一个j i 型的容 器,e j b 容器是j 2 e e 平台中最重要的一种容器。组什是一个可以部署的私j 单 元,它以某种方式运行在容器中,容器封装了j 2 e e 底层的a p i 为_ t l l f t :提供目f 务处理、数据访问、安全性、持久性等服务。在j 2 e e 中组件和组件之问并不直 接访问,而足通过容器提供的协议和方法来棚互调用。组件和容器问的关系通 过“侨议”来定义。容器的底层是j 2 e e 服务器,它为容器提供j 2 e e 中定义的 各种服务和a p i 。一个j 2 e e 服务器( 也叫j 2 e e 应用服务器) 可以支持一种或多 种容器。每个容器的服务包括两部分:j 2 s e 和一组扩展的服务。这是凶为j 2 e e 址以j a v a 标准版为基础的,各容器在j 2 s e 之上褥根据需要提供些扩展的服 务,如目录服务、事务管理、数据访问、消息机制、安全性等。 2 3 j 2 e e 服务技术 1 h t t p 和h t t p s 客户端的h t t p 服务由j a v a n e t 包中的网络类提供,服务器方的h t t p 支持由s e r v l e t 和j s p a p i 定义。除了支持标准的h ”m 服务外,j 2 e e 适支 持h t r p s 。与h 1 v i 、p 类似,j 2 e e 的h t t p s 服务也是通过客户端的j a v a n e t 包和服务器端的s e r v l e t 和j s p a p l 来提供的。 2 j a v at r a n s a c t i o na p i ( j t a ) 在分布式计算中,事务是指用于修改数据的原子的、不可分割的工作 单元。事务由同一个功能单元的一条或者多条程序语句组成:如果在执行 过程中,任何一条语句失败,那么整个事务失败。在这种情况下,事务不 能提交,或者不能完成,系统被要求“回滚”到前一个状态,就好像这些 事务语句都没有执行一样。 在分布式数据驱动应用环境中,事务的价值可能比较明显和直观,j | j 来支持并发数据访问事务的底层事务管理系统极为重要,为了简化在构建 利用分布式应用时涉及到的复杂的工作,j 2 e e 提供了内建的事务管理服务。 3 r m i i l o p j a v ar m i i i o p ( j a v ar e m o t em e t h o di n v o c a t i o no v e rt h ei n t e r n e t h i n t e r o r bp r o t o c 0 1 ) 是j 2 e e 的网络机制。r m i i l o p j j i l 以前只订r m i 和c o r b a 阿利,选择来进行分斫j 武程序设计。j 2 s e 的远程方法调川( r e m o t e m e t h o di n v o c a t i o n ,r m i ) 特性为开发人员提供创建分布式j a v a t 0 4 a v a 应用的能力,在分布式j a v a 4 0 j a v a 应用中,可以从可能驻留在不同主机卜 的其它j a v a 虚拟机那里调用远程j a v a 对象的方法。由于j 2 e e 足构建在基 本的j 2 s e 的功能之上,j 2 e e 的r m i i i o p 子系统提供支持跨平台、协议冗 关的r m i 型编程的a p ,并提供这些a p i 的实现,这些a p i 既支持j 2 s e 本地r m i 协议( j 2 s en a t i v er m ip r o t o c o l ,j r m p ) ,又支持c o r b ah o p 协议。通过使用r m i 1 1 0 p j 2 e e 应用可以访问与r m i 编程规则兼容的 c o r b a 服务。 4 ,j a v ai d l j a v ai d l 使j 2 e e 应用组件能够使用i i o p 协议来访问外部c o r b a 对象, 而外部c o r b a 对象可以用任何语言编写。在典型情况下,这些对象驻留在 j 2 e e 产品之外,如位于e i s ( 企业信息系统) 层上,用于为与遗留系统之间 的掷议无关的交互提供方便。由

温馨提示

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

评论

0/150

提交评论