已阅读5页,还剩52页未读, 继续免费阅读
(计算机软件与理论专业论文)基于网格的神经计算平台架构及接口设计与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要: 由于神经网络应用环境的复杂性及要求处理大量数据的问题,从而神经网络 计算需要超强的计算能力,因此在神经网络计算平台中引入了网格和分布式的思 想,力图建立,个基于网格的神经网络计算平台。由于现在网格浏览器还不具备 通用性,因此计算平台要实现统一控制和完全托管的思想就只能先由分布式结构 模拟。 计算平台要求能够跨平台使用,对于神经网络算法也要求能经过简单的配置 就可以运行。因此s u n 公司提出的j 2 e e 平台能很好的满足神经网络计算平台的 架构。j 2 e e 是一种利用j a v a2 平台来简化企业解决方案的开发、部署和管理相 关的复杂问题的体系结构。j 2 e e 体系结构提供中间层集成框架用来满足无需太 多费用而又需要高可用性、高可靠性以及可扩展性的应用的需求。j 2 e e 具备的 这些功能正是神经网络计算平台的需求。计算平台后台使用g l o b u s 实现,很好 的利用了闲置资源。 本文提出基于j 2 e e 的分布式应用系统使整个系统成为一个多层的组件系 统,以实现系统横向、纵向之间的弱耦合,使系统具备了灵活性、可重用性、可 测性、可扩展性。计算平台预留了c o r b a 接口,对于使用用其它语言写就的经 典程序也可以很好的挂到本平台上。 本文分三部分。第一部分简单介绍了本计算平台用到的技术。第二部分主要 描述了计算平台架构的设计实现思想。第三部分提出了一个神经网络算法,并且 就此算法在平台上进行了使用试验,以检测平台的可用性。 关键字: j 2 e e ,三层结构,e j b ,分布式,网格 a b s t r a c t t h e a p p l i c a t i o n e n v i r o n m e n to fa r t i f i c i a l n e u r o nn e t w o r k ( a n n ) i sv e r y c o m p l e x a n da n n i sa l w a y su s e dt od e a lw i t hag r e a tl o td a t a s o a n nn e e d s v e r yp o w e r f u lc o m p u t a t i o n a l a b i l i t y t h e n ,w e i n t r o d u c e g r i d a n dd i s t r i b u t i o n c o n c e p t i o ni n t oa n nc o m p u t a t i o n a lp l a t f o r m s u c h a p l a t f o r m t r i e st oc o n s t r u c ta n n c o m p u t a t i o n a lp l a t f o r m w i t hg r i d a tp r e s e n t ,u s i n gg r i db r o w s e r sh a sn o tb e e n u n i v e r s a ly e t ,s ow eh a v et ou s ed i s t r b u t e da r c h i t e c t u r et os i m u l a t et h ei d e ao f u n i t c o n t r o la n dt r u s t e e s h i pc o m p l e t e l yi nt h ep l a t f o r m c o m p u t a t i o np l a t f o r mi sr e q u i r e df o rb e i n gu s e do nd i f f e r e n tp l a t f o r m sa n dt h e a n n a l g o r i t h m sm u s t r u na f t e r s i m p l ee m p l o y m e n t f r o m t h i sp o i n t ,w ef i n dt h a tt h e j 2 e ep l a t f o r mp r o v i d e db ys u nc o m p a n yf i t s v e r yw e l l j 2 e ei s a l la n :l l i t e c t u r e w h i c hi su s e dt o s i m p l i f y t h e c o m p l i c a t i o n s o fd e v e l o p m e n t ,d e p l o y m e n ta n d m a n a g e m e n to f e n t e r p r i s es o l u t i o n s w e p r e s e n t ad i s t r i b u t e da p p l i c a t i o ns y s t e mb a s e do nj 2 e ea n di tm a k e st h ew h o l e s y s t e m b e c o m eam u l t i - t i e r c o m p o n e n ts y s t e m ,l o o s e c o u p l eh o r i z o n t a l l y a n d v e r t i c a l l y , p r o v i d ef l e x i b i l i t y , r e u s a b i l i t y , t e s t a b i l i t ya n de x t e n s i b i l i t y a tt h es a m e t i m e ,t h ec o m p u t a t i o np l a t f o r ml e a v e s c o r b a a p p l i c a t i o np r o g r a m m i n gi n t e r f a c e , s ot h ea p p l i c a t i o n sc o d e dw i t ho t h e rl a n g u a g ec a ne a s i l yr 印l a n t e dt ot h i sp l a t f o r m t h ec o m p u t a t i o np l a t f o r mi sr e a l i z e dw i t hg l o b u s ,i tm a k e su s eo fr e s o u r c e sw h i c h l e f tu n u s e d f u l l y t h i sp a p e rc o n s t i t u t e so ft h r e ep a r t s i nf i r s t p a r t ,w es i m p l yi n t r o d u c et h e t e c h n o l o g yi no u rc o m p u t a t i o np l a t f o r m t h es e c o n dp a r t d e s c r i b e st h ed e s i g na n d r e a l i z a t i o no ft h i sc o m p u t a t i o n p l a t f o r mi nd e t a i l i nt h et h i r dp a r t ,w ea p p l ya na n n a r i t h m e t i co nt h i sp l a t f o r mt ot e s tt h eu s a b i l i t y k e y w o r d s : j 2 e e ,t h r e e l a y e ra r c h i t e c t u r e ,e j b ,d i s t r i b u t i o n ,g r i d 第一章基于网格的神经计算平台 1 1 神经网络的发展历史和现状 神经网络是一门活跃的边缘性交叉学科。神经网络理论是巨量信息并行处理 和大规模并行计算的基础,神经网络既是高度非线性动力学系统,又是自适应组 织系统,可用来描述认知、决策及控制的智能行为。它的中心问题是智能的认知 和模拟。 四十年代初,美国m c c u l l o c h 和p i t t s 从信息处理的角度,研究神经细胞行 为的数学模型表达,提出了二值神经元模型。m p 模型的提出开始了对神经网络 的研究。1 9 4 9 年心理学家d o h e b b 提出著名的h e b b 学习规则,即由神经元之 间结合强度的改变来实现神经学习的方法。虽然h e b b 学习规则在人们研究神经 网络的初期就已提出,但是其基本思想至今在神经网络的研究中仍发挥着重要作 用。 五十年代末期,r o s e n b l a t t 提出感知机( p e r c e p t r o n ) ,首先从工程角度出发 研究了用于信息处理的神经网络模型。这是一种学习和自组织的心理学模型,它 基本符合神经生理学的原理。p e r c e p t r o n 虽然比较简单,却已具有神经网络的一 些基本性质,如分布式存储、并行处理、可学习性、连续计算等。但就是这些神 经网络的特性与当时流行的串行的、离散的、符号处理的电子计算机及其相应的 人工智能技术有本质上的不同,由此引起许多研究者的兴趣,在六十年代掀起了 神经网络研究的第一次高潮。但是,当时人们对神经网络研究过于乐观,认为只 要将这种神经元互连成一个网络,就可以解决人脑思维的模拟问题。然而,后来 的研究结果却又使人们走到另一个极端上。 在六十年代末,美国著名人工智能专家m i n s k y 和p a p e r t 对r o s e n b l a t t 的工 作进行了深入研究,出版了颇有影响的“p e r c e p t r o n ”一书,指出感知机的功能 和处理能力的局限性,甚至连x o r ( 异或) 这样的问题也不能解决。同时也指 出如果在感知器中引入隐含神经元,增加神经网络的层次,可以提高神经网络的 处理能力,但是却无法给出相应的网络学习算法。因此m i n s k y 的结论是悲观的。 另一方面,由于六十年代以来集成电路和微电子技术日新月异的发展使得电子计 算机的计算速度提高,加上那时以功能模拟为目标的以知识信息处理为基础的知 识工程等研究成果给人工智能从实验室走向实用带来了希望等,这些技术进步可 能会给人们造成这样的认识:以为串行信息处理及其以它为基础的传统人工智能 技术的潜力是无穷的。所以这就暂时掩盖了发展新型计算机和寻找新的人工智能 途径的必要性和迫切性。另外,当时对大脑的计算原理、对神经网络计算的优点、 缺点、可能性及其局限性等还很不清楚。总之,认识上的局限性使得对神经网络 的研究进入了低潮。 但在这一低潮时期,仍有一些学者在扎扎实实地继续着神经网络模型和学习 算法的基础理论研究,提出了许多有意义的理论和方法。其中,s g r o s s b e r g 等 提出了自适应共振理论;k o h o n e n 提出了自组织映射;f u k u s h i m a 提出了认知机 网络模型理论;a n d e r s o n 提出了b s b 模型等等,从而为神经网络的发展奠定了 理论基础。 进入八十年代,首先是基于“知识库”的专家系统的研究和运用在许多方面 取得了较大成功。但在一段时间以后,实际情况表明专家系统关不像人们所希望 的那样高明,特别是在处理视觉、听觉、形象思维、联想记忆以及运动控制等方 面,传统的计算机和人工智能技术面临着重重困难。模拟人脑的智能信息处理过 程,如果仅靠串行逻辑和符号处理等传统的方法来解决复杂的问题,可能产生计 算量的组合爆炸。因此具有并行分布处理模式的神经网络理论又重新受到人们的 重视。对神经网络的研究又开始复兴,掀起了第二次研究高潮。 1 9 8 2 年,美国力w k r t 理工学院物理学家j j h o p f i e l d 提出了一种新的神经网络 h n n 。他引入了“能量函数”的概念,使得网络稳定性研究有了明确的判据。 h n n 的电子电路物理实现为神经计算机的研究奠定了基础,并将其应用于目前 电子计算机尚难解决的计算复杂度为n p 完全型问题,例如著名的“巡回推销员 问题”( t s p ) ,并取得了很好的效果。从事并行分布处理研究的学者,如h i n t o n 、 s e j n o w s k y 和r u m e l h a r t 等于1 9 8 5 年对h o p f i e l d 模型引入随机机制,提出了 b o l t z m a n n 机,他们的工作又受到连接机制者的响应,1 9 8 6 年r u m e l h a r t 等人在 多层神经网络模型的基础上提出了多层神经网络模型的反向传播学习算法( b p 算法) ,解决了多层神经网络的学习问题,证明了多层神经网络的计算能力并不 像m i m s k y 等人所预料的那样弱,相反它可以完成许多学习任务,解决许多实际 问题。 近十几年来,许多具备不同信息处理能力的神经网络已被提出来并应用于许 多信息处理领域,如模式识别、自动控制、信号处理、决策辅助、人工智能等方 面。神经计算机的研究也为神经网络的理论研究提供了许多有利条件,各种神经 网络模拟软件包、神经网络芯片以及电子神经计算机的出现,体现了神经网络领 域的各项研究均取得了长足进展。同时,相应的神经网络学术会议和神经网络学 术刊物的大量出现给神经网络的研究者们提供了许多讨论交流的机会。 1 2 网格技术的兴起 网格计算( g r i d ) ,顾名思义,就是指将多个计算机组成网格状网络。“g r i d ” 在英语中是“方格”的意思,是一种“模拟实现高性能计算机”的技术。比如,假如 有一- 项业务使用速率为l g 的c p u 需要6 分钟的处理时间。如果网络中有6 台 安装了同样c p u 的计算机,可以把这项业务平均分成6 等份,分别交给每台计 算机进行处理。那么,理论上,这项业务的处理时间将缩短到1 分钟。这就是网 格计算的基本思路。 网格计算是第三代i n t e m e t 计算;网格计算是高性能计算;网格计算是协同计 算;网格计算同时也是普遍计算和公用计算的基础和雏形。首先,网格计算是“第 三代i n t e m e t 计算”。随着i n t e m e t 的发展,人类生活从思维方式、工作模式和生 活理念等多方面遭遇巨大的影响与冲击。在网络计算时代,以e m a i l 为主要应 用的第一代i n t e r n e t 把遍布于世界各地的计算机用t c p i p 协议连接在一起。在 w e b 计算时代,第二代i n t e m e t 通过w e b 信息浏览及电子商务应用等信息服务, 实现全球网页的连通。 而第三代i n t e r n e t 面i 临的任务是:如何实现互联网上所有资源的全面连通。这 些资源包括:计算资源、存储资源、通信资源、软件资源、信息资源、知识资源 等。这成为推动网格计算( g i r dc o m p u t i n g ) 发展的基本动力。从这个意义上说, 网格计算的首要特点是高可用性。其次,网格计算是“高性能计算”。计算机适用 于解决计算性很强的复杂问题,但计算机在技术和建造上的发展永远赶不上实际 问题对计算机能力的需求。计算环境不能满足要求常常导致计算机无法解决复杂 的实际问题。 于是,有人设想:如果有一种技术可以使全世界的计算机联合起来,当所有 的计算能力聚合到一起,有哪一种单独的超级计算机或者高性能计算机能够媲美 它的计算能力! 这种技术就是网格计算技术。这使网格计算具有本质上的“高性 能”。而这种高性能成为目前学术界和企业界孜孜不倦地追求网格计算实现的原 生动力。 第三,网格计算是一种“协同计算”。由于网格计算是构筑在i n t e m e t 上的一 组新兴技术。其基础设施必须建立在基于i p 协议的宽带数字通信网络上。近年 来宽带技术的发展和使用成本的骤降使之成为可能。网格计算的出现将改变传统 的c l i e n t s e r v e r 和c l i e n t c l u s t e r 结构,形成新的p e r v a s i v e g r i d 体系结构。在这 种体系结构之下,才有可能使用户把整个网络视为一个巨大的计算机,并从中享 受一体化的、动态变化的、可灵活控制的、智能的、协作式信息服务。这使网格 计算在网络计算的四种模式( 其他三种是企业计算、对等计算和普及计算) 中脱 颖而出,并逐步进入科学研究、制造业信息化、电子政务、企业协同、教育信息 化甚至娱乐空间。这种协同性要求也推动了网格计算中可管理性和安全性的发展 需求。 最后,基于高可用性、高性能和协同性,网格计算的概念在2 0 0 3 年成为极 其诱人的“概念新贵”。网格概念的核心是“资源及服务”及对“资源的使用”。这里 的“资源,包括计算机、数据库、仪器没备、信息服务等极其广泛的内容。网格计 算的实质,是在打破传统的强加在“资源”之上的种种限制的基础上,为使用者提 供一种前所未有的“高级服务”。 网格计算的“高级服务”包括下面几个方面的含义:资源的网格化:网格资 源的协调性:以及网格资源的融合性。通过网格计算的“高级服务”,可以将资 源从特定的地理位置的束缚中解放出来,使得该资源可以通过网格输送到任何角 落。通过网格计算的“高级服务”,使任何网格资源来说,在一定的规则约束和 管理下都可以实现相互协作,打破不同资源之间在广泛共享与协作方面的障碍。 由于网格系统提供的资源是增强的可动态任意组合的资源,通过网格计算的“高 级服务”还可使打破原来在资源能力和资源类型方面的限制。从这些意义上讲, 理想的网格计算实际上是普及计算和公用计算的先声。 1 3 基于网格的神经计算平台 鉴于更多的计算问题不能由单台计算机完成,而必须由多台计算机协同解决 才能在预定的时间能顺利完成。我们构建计算平台的目标就是解决对台计算机的 协同工作,实现一个基于共享计算资源的、用于解决大规模应用的高性能计算网 格系统。 在计算平台的使用上,采用了统一控制的思想和完全托管的思想。 ( 1 ) 统一控制是指用户登录计算平台只要一次就可以使用所有平台上给予用 户使用的任何资源和用户的个人信息,系统也会保护用户的个人信息安全以及保 持登录直到用户退出计算平台。 ( 2 ) 完全托管是指用户对需要计算的问题提交后可以完全交给计算机,中间不 需要用户的干预,只需在一定的时间后再次登录获取计算结果即可。 神经网络计算平台的总体架构如图所示图一所示: 图一计算平台的结构 计算平台的底层支持结构 实验室多达2 0 台的个人计算机以及百兆局域网提供了平台需要的底层支持 结构,这些个人计算机构成计算平台的各个计算节点,它们之问通过高达百兆的 局域网连通,每个计算节点都配有1 g 赫兹以上频率的c p u 以及2 0 g 以上的数 据存储空问,并且配有各种高效软件,能给g l o b u s 系统提供有力的支持。 计算平台的系统软件 计算平台利用的个人计算机安装有不通的操作系统,比如w i n d o w s2 0 0 0 p r o ,r e dh a tl i n u x s9 0 ,w i n d o w s9 8 等等。由于计算节点之间系统的异构 性,因此需要一个系统软件来消除节点之间的差异,实现对整个网格计算资源的 统一管理。 g l o b u s 项目使目前国际上最有影响的与网格计算相关的项目之一。g l o b u s 对信息安全、资源管理、信息服务、数据管理以及应用开发环境等网格计算的关 键理论和技术进行了广泛的研究,开发出能在多种平台上运行的网格计算工具包 软件( g l o b u st o o l k i t ) ,能够用来帮助规划和组建大型的网格试验和应用平台, 开发适合大型网格系统运行的大型应用程序。g l o b u st o o l k i t 实现的主要组成 部分如下: ( 1 ) 网格安全基础设施- - g r i ds e c u r i t yi n f r a s t r u c t u r e ( g s i ) : g s i 负 责在广域网络下的安全认证和加密通信,提供单点登录功能、远地身份鉴别 功能、数据传输加密功能等。提供了基于g s i 协议的g e n e r i cs e c u r i t ys e r v i c e a p i 接口。是保证网格计算环境安全性的核心部分。 ( 2 ) 信息架构- - m e t a c o m p u t i n gd i r e c t o r ys e r v i c e ( 肋s ) :m d s 主要 完成对网格计算环境中信息的发现、注册、查询、修改等工作,提供对网格 计算环境的一个真实、实时的动态反映。主要基于l d a p 协议,其处理的信息 主要是网格计算环境中的各种资源( 包括数据资源、计算资源等) 、服务和 其他主体的描述。m d s 是网格计算环境中的信息服务中心。 ( 3 ) 数据管理- - g l o b a la c c e s st os e c o n d a r ys t o r a g e ( g a s s ) :g a s s 简化了在g l o b u s 环境中应用程序对远程文件i o 的操作,使得使用u n i x 和标 准c 语言i o 库的应用程序基本不用改动就可以在g l o b u s 环境中执行。g a s s 是 一个支持网格计算环境远程i o 访问的中间件。 ( 4 ) 通信提供了多线程通信库n e x u s 。提供g l o b u s i o 库,在此基础上 程序员可以使用t c p 、u d p 、i pm u l t i c a s t 、文件i o 等服务实现安全、 异步通信,以及q o s 。 ( 5 ) 错误检测h e a r t b e a tm o n i t o r 提供对进程的监控,并定时向其他监视器 发送心跳。 ( 6 ) 可移植性提供了可移植的l i b c 库,线程库,数据转换库, g l o b u s u t pa p i 以及g 1 0 b u st o o l k i t 要用到的基本数据类型库。 应用服务器 在计算平台的使用上,用户可以使用i e 等浏览器访问应用服务器w e b 服 务系统。网格应用服务器类似于现在的w e b 服务器,考虑到现在网格浏览器 的不普及,本计算平台同时提供w e b 方式的浏览和登录。不同的是本应用服务 器还提供对平台内的计算资源的管理,用户提交的问题的队列排序等功能。浏览 器把用户对任务的描述发送给应用服务器,应用服务器在翻译后将其列入队列, 保存到数据库中,等候服务器调用网格环境中的各种必要资源完成计算任务。一 旦资源管理部分给计算任务分配了必要的计算资源后,就将计算任务提交给各个 计算节点学习计算。学习完成后如果精度符合要求,那么就计算用户的需计算数 据,在计算结束后,应用服务器把计算好的数据结果保存到应用服务器上用户个 人信息库中等候用户读取。这可以大大方便用户访问高性能计算机:不必出差, 不必到实验室排队,在家中就可以随时提交任务。计算平台会在预定的时间 内自动完成计算。一般来说,任务提交和返回结果的通信量相比计算时的内 部通信量是很小的。 6 第二章计算平台架构工具简介 神经网络计算平台可支持神经网络算法的即时挂靠,可真正面向实际应用。 具备高可靠性和安全性,可维护性以及具备可扩展的业务框架和标准的对外接 口,就这些特性而言,系统必须要有齐全的设计开发文档,必须在开发一种可用 的,可实现的系统的基础上,使系统在结构上是可达到这些目地的。 神经网络计算平台的架构主要e h - - 部分组成,前台用户部分由j 2 e e 的多层 应用体系结构实现,后台采用g r i d 思想实现神经计算算法对本平台内闲置资源 的使用。 2 1 神经网络计算平台前台使用工具简介 现在许多的应用系统都采用客户机服务器( c s ) 结构。c s 结构的面向应 用众多随时可能加入使用的用户群而言,采用浏览器方式发布应用是现今最为有 效的开发方式,使在此架构上运行的系统能够有可能对大容量的的数据进行有效 的管理和分析。但是,它还有以下几点缺点:当客户端数目激增时,服务器端的 性能会因为负载过重而大大衰减;一旦应用的需求发生变化,客户端和服务器端 的应用程序都需要进行修改,给应用维护和升级带来了极大的不便;大量的数据 传输增加了网络的负载等等。相对两层式c s 系统,更好的方式是三层式多层 式结构。 2 1 1 体系结构选择 企业应用体系结构已经经历了巨大的发展。第一代企业应用是集中式的大型 机应用。在2 0 世纪8 0 年代后期并1 1 9 0 年代早期,几乎所有新的企业应用采纳二 层体系结构( 也称为客户服务器体系结构) ;后来企业应用体系结构发展到三 层结构;然后是基于w e b 的体系结构;目前,发展至i j j 2 e e 应用体系结构。 2 1 1 1 二层应用体系结构 体系结构是指程序的宏观的物理的或者逻辑的程序的结构,包括代码程序包 的组织,在网络的各个节点之间的程序包的分布,程序的各个组成部分之间的通 讯和协同工作机制。 一个系统在逻辑上,在纵向可以分成许多层次,在横向可以分成许多子系统。 每一个层次是负责一类责任的类的集合,比如负责用户界面显示的类就可以组成 一个用户界面层。一个应用程序通常可以分成3 个层次,用户界面层、业务逻辑 层和数据存储层。每一个层次都使用f 一个层次提供的服务,同时向上一个层次 提供服务。用广,界面层主要负责用户界面的显示和更新,业务逻辑层负责具体的 业务逻辑的处理,数据存储层主要负责数据存取和其他的数据库的操作。 一个典型的两层客户服务器系统如下图所示。从图中可以看出用户界面层、 业务逻辑层和数据存储层都在客户端。这种系统通常称为胖客户c s 结构。 图2 。1 :二层应用体系结构 这种体系结构的好处在于:首先,交互性强是c s 结构固有的一个优点。在 c s 中,客户端有一套完整的应用程序,在出错提示、在线帮助等方面都有强大 的功能,并且可以在子程序间自由切换。 其次,c s 模式提供了更安全的存取模式。由于c s 是配对的点对点的结构 模式,采用适用于局域网、安全性比较好的网络协议( 例如:n t 的n e t b e u i 协 议) ,安全性可以得到较好的保证。 再次,采用c s 模式将降低网络通信量。c s 只有二层物理结构,网络通信 量只包括c l i e n t 与s e r v e r 之间的通信量,对于相同的任务,完成的速度较快。使 得c s 更利于处理大量数据。 最后,c s 很容易开发,特别是因为用户界面层、业务逻辑层和数据存储层 驻留在同一进程中,开发者不必处理分布式应用的复杂关系。但这种两层式 的系统有以下不足之处: 由于用户界面层、业务逻辑层和数据存储层都在客户端,使得客户端变 得很庞大,从而使能够运行这些客户端的机器也变得更加昂贵; 由于数据存储层在客户端,这就使得每一个客户端都要有一个对数据库 服务端的数据库连接。而对于服务端而言,数据库连接是一种代价较高的资源。 这就使客户端的个数受到相当大的限制; 同第一点原因,每一个客户端都要进行比较复杂的配置,这种配置对 于非计算机专业人员有可能要求较高,因而企业就需要为这些操作人员提供培 训,增加企业的培训成本; 在通常情况下,数据存储层与数据库服务器是紧密耦合的,也就是说, 数据存储层对数据库的访问模式与特定的数据库相关的。在c s 模式下,用户界 面层、业务逻辑层和数据存储层在实现上是不严格区分的,所以用户界面层、业 务逻辑层都是与数据存储层都是紧密耦合的。这样,任何数据库的改变,比如数 据库的结构的改变,数据库的厂家的改变,都会影响到用户界面的表示以及业务 逻辑的处理,这就是通常所说的数据相关性。这样就使得系统维护、升级困难以 及成本高昂。 2 1 1 2 传统的三层应用体系结构 传统的三层体系结构克服了二层体系结构的一些限制。这个三层体系结构将 用户界面层放置于客户端,而将业务逻辑层和数据存储层放置在中间层服务器, 也就是应用服务器上。 业务辨层 用户界面层 爿卜 i 一 数据存德屠 数据库 帅th 客户端应用服务器 图3 2 :三层应用体系结构 三层体系结构有了一些改进。应用服务器通过重用那些跨越多个客户的昂 贵资源来改进可伸缩性,例如数据库连接。可伸缩性的改进带来了性能的改进。 这个体系结构也改进了安全与应用管理。虽然三层体系结构消除了二层体系结 构中的一些缺陷,但是它也有不足之处:复杂性、应用缺乏可移植性、提供商 的不兼容性、采用的有限性、与w e b 的不兼容性。复杂性:开发一个三层体 系结构比开发一个二层体系结构更复杂。例如,程序员必须处理分布、多线程、 安全等事项。分布式应用引入了开发者必须处理的系统级程序设计复杂性。另 外,分布式应用需要客户i t 部门来补偿应用部属与管理支撑的缺乏。应用缺 乏可移植性。因为适用于三层平台的一个应用框架的各个提供商在他的框架中 使用不同的应用编程接口,因此独立软件提供商( i s v ) 就不可能写出那些能 够部署在由其他提供商提供的应用服务器的应用程序。提供商的不兼容性。 i s v 并没有热情去为多个尚未被广泛采用的框架写应用程序。虽然有一些工 具支持分布式应用,这些工具只能在它们被开发时所面向的框架上工作。许多 9 工具不能跨越大多数框架。其结果是,只有对一组相容的工具的有限的支持。 同样,程序员对于工具和框架的知识也是很有限的。与w e b 的不兼容性。这 个传统的三层体系结构不能直接与w e b 一起工作。这个三层体系结构对于客 户与运行在服务器上的应用之间的通信使用一个专用的协议,而这个协议不能 与w e b 一起工作。虽然许多应用框架提供商在他们的前端产品上增加了对 w e b 客户的支持,但是其结果依然受制于上述列出的缺陷。 2 1 1 3 基于w 曲的应用体系结构 w e b 的引入和成长改变了一切。因为二层和传统的三层体系结构都不支持 w e b 应用的开发,因此早期的w e b 应用开发者不得不想出一个新的途径。他们 使用各种w e b 服务器插件扩充。这些扩充激活服务器上的程序来从存储在企业 数据库中的信息动态的构造h t m l 文档,同时它也从提交的h t m l 表单中将信 息加入到企业数据库中。 这种扩充的一个例子是c g i ( 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 应用,但是c g ! 方式并不 适合于更加复杂的企业应用,原因如下: c g i 脚本没有提供内在业务过程或者一个业务实体的结构良好的封装。 c g i 脚本难以开发、维护和管理。高层的应用开发工具没有为c g i 脚本 的开发提供良好的支撑。 c g i 脚本将业务过程的实现和表现逻辑的实现缠绕在一起。当需要改变 实现中的一部分( 例如一个业务过程) 时,就会有意外改变其它部分的危险。 c g i 脚本实现并不利于业务规则完整性的维护。企业业务规则的实现被 分散到多个c g i 脚本程序中,它们被部署到企业中的几个w e b 服务器上,因此, 企业维护其业务规则的完整性是困难的。 而微软公司针对这种情况,在不改变h t t p c g i 规范的情况下,设计了i i s ( i n t e m e ti n f o r m a t i o ns e r v e r ) ,允许任何浏览器装载并运行服务器d l l 。i s a p i 服 务器扩展就是这样一种i i s 装载使用的d l l 文件,该程序运时响应从客户程序 ( 浏览器) 发送过来的g e t 或者p u t 请求,i s a p i 服务器扩展基于这些请求参 数送回h t m l 代码。i s a p i 服务器扩展装载后成为i i s 进程的一部分,所以比脚 本描述要快得多,因为脚本描述需要装载一个独立可执行的程序。 微软公司后来发布了a c t i v es e r v e rp a g e s ,即常称的a s p ,这是一套微软开发 的服务器端脚本环境,a s p 内含于i i s 之中,通过a s p 可以结合h t m l 网页、 a s p 指令和a c t i v e x 组件建立动态、交互且高效的w e b 服务器应用程序。有了 a s p ,所有的程序都将在服务器端执行,包括所有嵌在普通h t m l 中的脚本程 序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减 轻了客户端浏览器的负担。但a s p 每次被访问时,都需要在服务器端i i s 或p w s 加载,这样就降低了交互的速度。a s p 只是在微软环境下获得完全的支持,在 其它平台上扩展网难,因为它必须依赖基于w i n 3 2 的组件模型。 微软n e t 体系结构是微软x m lw e bs e r v i c e s 平台。x m lw e bs e r v i c e s 允许 应用程序通过i n t e m e t 进行通讯和共享数据,而不管所采用的是哪种操作系统、 设备或编程语言。微软n e t 平台提供创建x m lw e bs e r v i c e s 并将这些服务集 成在一起之所需。 n e t 只能在w i n d o w s 上运行,但是理论上可以支持许多语言。而且,n e t 支持s o a p ,使得不同平台的组件可以和n e t 的组件交换讯息。虽然n e t 中 有些技术( 比方说s o a p 和其d i s c o v e r y 与l o o k u p 机制) 是公丌的规格,核心 的技术( 比方说i l 执行时期系统、a s p + 、w i nf o r m 与w e bf o r m ) 都还是由 微软所把持,而且微软将会是n e t 完整开发工具和平台的唯一提供厂商。 j 2 e e 则可以在任何有j v m 的平台上执行,只要有兼容的服务( 比如说: e j b 容器、j m s 等) 即可。j 2 e e 的一切标准都是公开的,许多厂商都提供兼 容的产品和开发工具。但是j 2 e e 是一个单一语言的平台,如果要和其它语言平 台沟通必须透过c o r b a 。 在这里,选用j 2 e e 体系结构是因为:j 2 e e 已被市场证明是成功的平台: j 2 e e 具有更先进的编程模型,开发者可以创建更先进的对象模型以及获得更好 的平台性能;使用j 2 e e 结构可以利用现有的硬件;j 2 e e 具有平台中立性,因 而具有良好的平台移植性;j 2 e e 通过j c a ( j 2 e ec o n n e c t o ra r c h i t e c t u r e ) 具有 更好的遗留系统集成性能:j 2 e e 使用j a v a 语言,其具有更好的市场接受度以及 成熟度。 2 1 2j 2 e e 应用体系结构 自从1 9 9 5 年3 月问世以来,j a v a 程序设计语言以及j a v a 平台技术在信息技 术发展中扮演着越来越重要的角色。 j a v a 的使用可以帮助开发者花更少的时间开发更好的应用,它能够做到下 面几点: ( 1 ) 快速入门和学习; ( 2 ) 编写更少的代码: ( 3 ) 编写更好的代码; ( 4 ) 快速应用开发; ( 5 ) 以1 0 0 纯j a v a 来防止平台依赖性; ( 6 ) 编写一次,到处运行( w r i t eo n c e ,r u na n y w h e r e ) ; ( 7 ) 发布程序更容易。 因为提供商已经集成了j a v a 虚拟机j v m ( j a v av i r t u a lm a c h i n e ) ,它在操作 系统之上| 为应用提供了一个通用的运行环境,这使得j a v a 平台的“w r i t eo n c e , r u na n y w h e r e ”准则是完全可能实现的。 1 9 9 8 年1 2 月,s u n 公司发布了j a v a2 平台。j a v a2 与j d kv 1 2 对应。在 1 9 9 9 年6 月,s u n 公司宣布了详细的重新组织发布j a v a 平台的方法。虽然,s u n 以前封装了一组j a v a 企业技术和a p i ,并标出“j a v a 企业平台”,但是直到1 9 9 9 年 6 月s u n 才将研制与众不同的且集成的j a v a 企业平台作为其追求目标。 2 1 2 1j 2 e e 的概念 目前,j a v a2 平台有3 个版本,它们是适用于小型设备和智能卡的j a v a2 平 台m i c r o 版( j a v a2p l a t f o r l nm i c r oe d i t i o n ,j 2 m e ) 、适用于桌面系统的j a v a2 平 台标准版( j a v a2p l a t f o r ms t a n d a r de d i t i o n ,j 2 s e ) 、适用于创建服务器应用程序 和服务的j a v a2 平台企业版( 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 e e ) 。 j 2 e e 是一种利用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 m 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 a s 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 ) 以及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 ,有良好的向导支持打包和部署应用,添加目录 支持,增强了安全机制,提高了性能。 2 1 2 2j 2 e e 的优势 j 2 e e 为搭建具有可伸缩性、灵活性、易维护性的商务系统提供了良好的机 制: 1 保留现存的i t 资产:由于企业必须适应新的商业需求,利用已有的企业 信息系统方面的投资,而不是重新制定全盘方案就变得很重要。这样,一个以 渐进的( 而不是激进的,全盘否定的) 方式建立在已有系统之上的服务器端平台 机制是公司所需求的。j 2 e e 架构町以充分利用用户原有的投资,如一些公司使 用的b e at u x e d o 、i b mc i c s 、i b me n c i n a 、i n p r i s ev i s i b r o k e r 以及n e t s c a p e a 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 平台的产品 几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留 使用。 2 高效的开发:j 2 e e 允许公司把一些通用的、很繁琐的服务端任务交给 中间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应 地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务: 状态管理服务:让开发人员写更少的代码,不用关心如何管理状态, 这样能够更快地完成程序开发。 持续性服务:让开发人员不用对数据访问逻辑进行编码就能编写应 用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于 开发与维护。 分布式共享数据对象c a c h e 服务:让开发人员编制高性能的系 统,极大提高整体部署的伸缩性。 3 支持异构环境:j 2 e e 能够开发部署在异构环境中的可移植程序。基 于j 2 e e 的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合 理的基于j 2 e e 的程序只需开发一次就可部署到各种平台。这在典型的异构 企业计算环境中是十分关键的。j 2 e e 标准也允许客户订购与j 2 e e 兼容的第 三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案 所需的费用。 4 可伸缩性:企业必须要选择一种服务器端平台,这种平台应能提供极 佳的可伸缩性去满足那些在他们系统上进行商业运作的大批新客户。基于 j 2 e e 平台的应用程序可被部署到各种操作系统上。例如可被部署到高端 u n i x 与大型机系统,这种系统单机可支持6 4 至2 5 6 个处理器。( 这是n t 服 务器所望尘莫及的) j 2 e e 领域的供应商提供了更为广泛的负载平衡策略。 能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理 器,实现可高度伸缩的系统,满足未来商业应用的需要。 5 稳定的可用性:一个服务器端平台必须能全天候运转以满足公司客户、 合作伙伴的需要。因为i n t e r n e t 是全球化的、无处不在的,即使在夜间按 计划停机也可能造成严重损失。若是意外停机,那会有灾难性后果。j 2 e e 部 署到可靠的操作环境中,他们支持长期的可用性。一些j 2 e e 部署在 w i n d o w s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 教师招聘考试试题及答案题完整版
- 教育法律法规试题及答案大全
- 施工质量安全相关试题及答案分享
- 月嫂时间管理试题及答案
- 构建稳定有效的国家金融监管体系
- 常见病各种应急预案(3篇)
- 普通财务个人述职报告
- 街道办事处半年工作总结
- 强化涉农资金管理
- 2025年南平浦城公安招聘警务辅助人员9人考试笔试模拟试题及答案解析
- 2025年出台民政局离婚协议合同范本
- 2025年甘肃省庆阳市林业和草原局招聘专职聘用制护林员92人笔试考试参考题库及答案解析
- 中国五矿校招面试题及答案
- 员工工作责任心培训-课件
- 《第13课 分解问题步骤》教学设计教学反思-2023-2024学年小学信息技术浙教版2023三年级上册
- 大型方格沉井施工方案
- 2025年大学《电缆工程-电缆电气性能测试》考试备考题库及答案解析
- GB/T 21782.8-2025粉末涂料第8部分:热固性粉末贮存稳定性的评定
- 山东省青岛市2025-2026学年高三上学期期初调研检测数学试题(含解析)
- 江苏2025年工贸行业企业主要负责人及安全管理人员真题模拟及答案
- 2025年咖啡产业咖啡产业数字化发展研究报告及未来发展趋势预测
评论
0/150
提交评论