




已阅读5页,还剩94页未读, 继续免费阅读
(计算机软件与理论专业论文)中间件软件工程研究.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
中间件软件工程研究 计算机软件与理论专业 研究生卢暾指导教师唐宁九 摘要 中间件位于网络操作系统和应用组件之间,用它可以简化构筑大规模的分 布式系统。中间件解决了系统异构、设施通信和分悫式组 牛的协调等阍题。 利用现有的中间件产品,软件工程师能建立分布跨越一个局域网的系统。 中问件的发展的目标有;扩展基于i n t e m e t 规模的中间件、研究具有适用 性和可配置的中间件、开发具有可靠性的无线系统的中间件。中间件软件工 程研究的挑战在于:为分布式系统的构建设计标记、技术、方法和工具,使 得分布式系统能系统自动地建立和利用中间件所提供的这种功能。 本文首先用归纳、比较的方法对现有中间件技术和产品徽了一个详细和 深入的对比,通过这种比较我们能了解现在中间件发展的阶段:同时用软件 工程的研究方法对各种中间件技术进行研究,分柝了由于中闻件对非功能性 ( u n f u n c t i o n a l ) 的需求,从而得出应当寻求新的中间件体系结构来满足这个 要求;然后根据自己的研究,提出了一神运用反射性和组件技术的新型中闻 件体系结构,并把它和现有中间件体系结构进行了比较,从而体现了这种结 构的优势;最后用p y t h o n 实现了我们的结构,并指出了它的优势以及缺点, 同时说明了在这个领域自己还需要改进和完成的工作。 关键词:m i d d l e w a r em e t a - o b j e c tr e c t a - p r o t o c o lc o m p o n e n tq o s 体系结构 基础设施绑定软件工程分布式计算 r e s e a r c h o fm i d d l e w a r ea n ds o f t w a r ee n g i n e e r i n g m a j o rc o m p u t e rs o f t w a r e & t h e o r y p o s t g r a d u a t e :l u t u ns u p e r v i s o r :p r o f t a n gn i n g j i u a b s t r a c t : t h ec o n s t r u c t i o no fal a r g ec l a s so fd e s t r i b u t e ds y s t e m sc a l lb es i m p l i f i e db y l e v e r a g i n gm i d d l e w a r e ,w h i c hi sl a y e r e db e t w e e nn e t w o r ko p e r a t i n gs y s t e m sa n d a p p l i c a t i o n sc o m p o n e t s m i d d l e w a r e r e s o l v e s h e t e r o g e n e i t y ,a n df a c i l i t a t e s c o m m u n i c a t i o na n dc o o r d i n a t i o no fd i s t r i b u t e dc o m p o n e n t s e x i s t i n gm i d d l e w a r e p r o d u c t se n a b l es o f t w a r ee n g i n e e r st ob u i l ds y s t e m st h a ta r ed i s t r i b u t e da c r o s sa l o c a l - a r e an e t w o r k s t a t e o f - t h e a r tm i d d l e w a r er e s e a r c ha i m st o p u s ht h i s b o u n d a r yt o w a r d si n t e m e t s c a l e d i s t r i b u t i o n ,a d a p t i v e a n d r e c o n f i g u r a b l e m i d d l e w a r ea n dm i d d l e w a r ef o rd e p e n d a b l ea n dw i r e l e s ss y s t e m s t h ec h a l l e n g e f o rs o f t w a r ee n g i n e e r i n gr e s e a r c hi st od e v i s en o t a t i o n ,t e c h n i q u e s ,m e t h o d sa n d t o o l sf o rd i s t r i b u t e ds y s t e mc o n s t r u c t i o nt h a ts y s t e m a t i c a l l yb u i l da n de x p l o i tt h e c a p a b i l i t i e st h a tm i d d l e w a r ed e l i v e r s m i d d l e w a r et e c h n o l o g i e ss u c ha sc o r b ao rj a v a 踟h a v ep r o v e dt h e i r s u i t a b i l i t y f o r ”s t a n d a r d ”c l i e n t s e r v e r a p p l i c a t i o n s h o w e v e r ,c h a l l e n g e sf r o m e x i s f i n ga n dl ! e wt y p e so fa p p l i c a t i o n s ,i n c l u d i n gs u p p o r tf o rm u l t i m e d i a ,r e a l - t i m e r e q u i r e m e m sa n dm o b i l i t ys e e m st 0i n d i c a t et h en e e df o rd e f i n i n gan e w a r c h i t e c t u r ef o ro p e nd i s t r i b u t e df r o mt h e b e g i n n i n g w i t h f l e x i b i l i t y a n d a d a p m b i l i t yi nm i n d t h i sc a nb ea c h i e v e db yd e f i n i n ga no p e ne n g i n e e r i n ga n d a l l o w si n s p e c d o na n da d a p t a t i o no ft h eu n d e r l y i n gc o m p o n e n | s i no u ro p i n i o n ,t o m e e tt h en e e d so fs u c ha p p l i c a t i o n s ,n e wa p p r o a c h e st ot h e e n g i n e e r i n go f m i d d l e w a r ep l a t f o r m sa r er e q u i r e di no r d e rt oa l l o wf o rn c o n f i g u r a b i l i t yo ft h e u n d e r l y i n gs u p p o r to f f e r e db yt h ep l a t f o r m ,a n di i ) t h ea b i l i t yt oo p e nt h e i m p l e m e n t a t i o ni no r d e rt oi n s p e c ta n da d a p tt h ep l a t f o r m sc o m p o n e n t s t h ep a p e r c o m p a r e sm a i nk i n d so fm i d d 】e w a r ep r o d u c t s ,a n dt h e np r o p o s e sa n e x tg e n e r a t i o nm i d d l e w a r ea r c h i t e c t u r et h a tc o n f o r m st or e q u i r e m e n t s 嬲i n d i c a t e d a b o v e t h i sa r c h i t e c t u r ei sc h a m c t e r i s t i s e db yb e i n go p e n ,a n da d a p t a b l eb a s e do n t h ep r i n c i p l eo fr e f l e c t i o n t h ep a p e ra l s or e p o r to ns o m ee x i s t i n gr e s e a r c h p r o t o t y p e sw i t haf o c u st o w o r d s t h e i rs u i t a b i l i t ya sn e x tg e n e r a t i o nm i d d l e w a r e k e yw o r d s : m i d d l e w a r e m e t a - o b j e c tm e t a p r o t o c o lc o m p o n e n tq o s a r c h i t e c t u r e i n f r a s t r u c t u r e b i n d i n gs o f t w a r ee n g i n e e r i n g d i s t r i b u t e dc o m p u t i n g 磐! ! 丕堂亟圭堂堡丝塞 1 、绪论 2 0 世纪8 0 年代,解决软件工程危机提到议事日程。当时计算机硬件遵循 摩尔定律正大幅度提高着性价比,加上因特网技术和视窗技术的产生和普 及,使计算机应用得以空前普及。计算机应用模式也由单机到局域网、广域 网、因特网:由主机终端方式到客户端服务器、浏览器服务器以及n 层结 构方式;应用系统由集中到分布,再到大集中方式。但是应用软件的开发仍 然是瓶颈,软件工程危机依然未能彻底解决。计算机技术应用的目的是实现 信息处理自动化,但是应用软件的开发和集成直处于手工作坊式阶段,离 工厂化、流程作业化、模块装配化、自动化甚远。 对于用户和软件工程师来说,如何屏蔽不同厂商产品的差异? 如何减少应 用软件系统集成的工作复杂度? 则成为软件工程和系统集成的重大技术课 题。 尽管“开放性”原则已成为共识,但是。由一个厂商去统一多种产品之问 的差异是不现实的,这个问题由用户通过应用软件去弥补也不可能,于是中 间件应运而生。中间件是一种屏蔽异构和分布所导致集成和共享的各种复杂 技术细节而使技术问题简单化的软件工程技术和系统集成技术。 中间件的定义有多种模式。看问题的角度不同反映问题的本质不同,定 义的形式也不同。早期的中间件是指处于操作系统和应用程序之间的系统软 件。一组中间件的集成,则称为平台,这里的平台一般专指运行平台,有的 也指开发平台。 分布式系统一般离不开系统间的通信。因此,通信中间件是基础或核心 有专家定义为“中间件= 平台+ 通信”。从而把中间件与系统软件( 包括操作 系统、支撑软件) 和应用软件区分开来。 中间件软件是在计算机硬件和操作系统之上,支持应用软件开发运行的系 统支持软件,是分布式应用的一个标准平台 在诸多中间件定义中,我们推荐i d l 的表述:中间件是一类独立的系统 软件和服务程序,实现分布式应用在不同技术之间的资源共享。中间件是一 类而不是一种软件,是基于分布式处理和应用的软件,最突出的特点是实现 应用之间的互操作和资源共享。 一 中间件是构件化软件的表现形式。中间件抽象了典型应甩。应用软件工程 1 四! ! 盔堂亟土堂焦丝塞 师可以基于标准的中间件进行再开发、定制和部署,而不是原有意义上的编 程或设计,是软件构件化、装配化的具体实现。 可以说,没有中间件,就构造不成分布式应用系统;没有中间件,将构造 不成三层、四层或n 层机构系统;没有中间件,将构造不成真正具有生命力 的大型应用系统。中间件技术将成为软件领域的又一核心技术,中间件产业 将是今后若干年内最有希望的软件产业。 1 1 软件技术发展方向 信息技术的不断发展,成了推动当今社会前进的主要动力之一,它正在 日益深刻地影响着我们的一切。机械的发明解放了人们的双手和双脚,它使 人们可以完成通过双手和双脚难以完成的任务,而计算机技术的发展使人们 的大脑得以解放,它可以帮助人们完成几方面的任务:按照人们给它设定的 格式对信息进行记忆;按照人们的要求对信息进行传输:按照人们提供的信 息和已经保存的资料。提供选择性的意见。这切都使人们的思维空间得以 扩展。更重要的是计算机使人们的脑力劳动不再是建立在个人的基础上的, 而是使人们可以在全世界的范围内进行脑力劳动的分工与协作。所有创造性 的脑力劳动都必须建立在通过信息交换得到的他人的脑力劳动成功之上,而 现在的成果又成了他人继续发展新的成果的基础。 计算机技术以及建立在计算机技术之上的信息技术的发展主要体现在两 个方面:计算机制造技术和计算机的应用技术。计算机制造技术的发展主要 体现在三个方面,即处理速度的提高、信息存储量的加大和信息交换能力的 增强。计算机技术的另一方面的发展,即计算机的应用技术的发展,也就是 软件技术的发展。当然,软件技术的发展基础是计算机硬件本身的发展。同 时,更为重要的方面是对软件不断进行抽象和提炼。将抽象出的部分变成编 写应用软件的基础,随着抽象和提炼的不断进行,应用软件开发的基础越来 越雄厚,而应用软件开发则越来越简单。 最初的计算机只有软件和硬件,软件开发的基础是机器语言。现在这种 开发方式依然存在,如:p c 机的b i o s ,单片机等。这种软件的开发方式有 着非常突出的缺点:工作量极大,一个非常小的动作需要非常大量的描述才 能实现;与人的自然语言的差距太大,造成了理解、记忆和思考等多方面的 问题。结果是软件不能编写得很大。因此,这种计算机谤钮靡愿箍摄嚣常有 2 婴班丕堂塑堂焦迨塞 一 限。 随着计算机硬件的发展,为了解决最初的计算机存在的问题,形成了计 算机新的结构体系:计算机硬件、系统软件和应用软件。计算机的制造厂商 将计算机的硬件和系统软件提供给用户,客户自行开发应用软件。系统软件 以接近自然语言的方式提供给客户,而另一方面仍然使用机器指令在计算机 上运行,在这二者之阊包含了相当复杂的软件技术内容,逐步超出了一个人 能完成的范围。因此,必须对开发软件的方法进行改进,这就是软件工程技 术。在这种情况下计算机韵应用得到了非常大的发展,开始由主要从事科学 计算发展到了商业管理领域。 计算机技术本身的发展,特别是个人电脑的出现,为计算机的应用提供 了更雄厚的基础。但是又产生了新的问题:计算机的系统软件虽然希望尽可 能地方便应用软件的开发者,但是由于其所包含的内容太多加上技术更新 速度太快,使应用软件的开发增加了难度。同时,随着计算机处理能力的不 断提高以及计算机使用人员的不断增加,使应用软件中的微小阃题放大,一 个计算机系统在规模非常小的时候没显示出来的问题,当成千上万的人每年 3 6 5 天,一天2 4 小时不停使用的时嫉有就会出现,并且造成严重的后果,而 计算机制造厂商由于应用的范围太广,无法全面地照顾所有的用户,这就产 生了一个新的技术中间件技术。它余于系统软件和应用软件之阃,对应 用软件进行了抽象,将大量的应用软件的技术细节包含其中。中间件的出现 大大降低了应用系统的开发周期和开发成本,提高了系统的稳定性和可移植 性,已经成为大型应用系统的个组成部分。 计算机技术还在不断发展。新的发展趋势的第一个特征是数据传送速度 的不断提高,这就对计算机在一个非常广大的范围内的连接和信息交换提供 了可能,表现的形式是计算机大量进入家庭。第二个特征是应用者使用的计 算机的标准化程度的不断提高。由于计算机应用已经有相当长时间,产生了 不同时代、不同方式的应用系统间的连接的问题,这就为计算机技术。特别 是中间件技术的发展提出了新的要求:要进一步简化应用程序的开发难度和 内容。在应用系统中仅需要简单地描述清楚使用者的业务逻辑,其他由中间 件帮助完成。如图1 - 1 应用系统基础设施( 应用开发人员眼里的“计算机”) 所示。 3 婴删盔兰塑主堂壁堡塞 圈1 1 应用系统基础设施( 应用开发人员艰里的。计算机一) 1 2 中间件要解决的问题 世界著名的咨询机构n es t a n d i s h g r o u p 在一份报告中归纳了中间件的十 大优越性: 节省应用开发费用 _ 减少系统运行费用 缩短开发周期 一减少项目开发风险 一帮助合理运用资金 应用的集合 一降低系统维护费用 - 提高应用系统质量 利于技术革新 - 增加产品的吸引力 4 哩纠丕堂亟主堂焦造塞 中间件屏蔽了底层操作系统的复杂性,使程序开发人员面对一个简单而 统一的开发环境,减少程序设计的复杂性,将注意力集中在自己的业务上 不必再为程序在不同系统软件上的移植而重复工作,从而大大减少了技术上 的负担。 中间件带给应用系统的不只是开发的简便、开发周期的缩短,也减少了 系统的维护、运行和管理的工作量,还减少了计算机总体费用的投入。 中间件作为新层次的基础软件,其重要作用是将不同时期、在不同操作 系统上开发应用软件集成起来,彼此象一个天衣无缝的整体协调工作,这是 操作系统、数据库管理系统本身做不了的。中间件的这一作用,在技术不断 发展之后,使以往在应用软件上的劳动成果仍然物有所用,节约了大量的人 力、财力投入。 1 3 中间件产生的技术原因 中间件系统是因为应用软件系统的不断扩大而产生的,现在已经是大型 应用系统中的不可缺少的组成部分。中间件具有多种模式、多种体系结构, 应用系统的开发方式也不相同。在中间件系统中包含了多种软件技术。 1 3 1 从单一程序结构到模块化处理 最初编程时,程序都是“一题一解”,我们称其为单一程序结构。后来, 为了节约内存,具有类似处理功能的程序段被相对集中起来组成所谓“模 块”f m o d d c ) ,可以允许其他程序段调用。 “模块”概念的出现是与规模化联系在一起的而规模化是现代工业给 我们的重要启示之一生产一次,重复使用;最小投入,最大产出;降低 成本,提高效率。 中间件作为基础软件的一种,它的基础程序在整个应用系统中的作用就 相当于模块。并且还是经常被调用的模块。同时基础软件的开发还是一件耗 时费力的工作,如果使用标准商业中间件的话,大部分的工作将得以节省, 用户可以将注意力集中于个性化的增值应用方面,并缩短开发周期5 0 * - 7 5 。从而更快地将产品投放市场。 1 3 ,2 面向对象的处理方式 5 婴趔盔堂亟堂焦迨皇 面向对象( o b j e c t - o r i e n t e d ) 的处理方式给出了软件系统的体系结构,引入 了软件复用的思维方法。所谓面向对象的处理方式,就是将系统看成由多个 对象组成,通过对象之间的通信形成系统,为客观世界过渡到软件系统提供 途径和编程的思维方法。其主要特征是:类的概念和封装性:继承性;多态 性。实际上,面向对象的处理方式实现了对象的封装,使用户不必关心对象 的行为是如何实现这样一些细节。通过对对象的封装,实现了模块化和信息 的隐藏,这就有利于程序的可移植性和安全性,同时也有利于对复杂对象的 处理。 从方法学的角度进行讨论,面向对象技术具有接近人认识问题时的那种 归纳、演绎的功能:从工程实现上,面向对象技术中的“对象”具有类似 “预构件”的品质;从发展前景上,面向对象技术具有适应网络计算、分布 处理、资源共享、并发工程、先期技术验证等需求的潜能。 面向对象的中间件是对象技术和分布式计算发展的产物,业界普遍认为 面向对象是今后中间件发展的主流方向,它提供一种通讯机制,透明地在异 构的分布计算环境中传递对象请求,而这些对象可以位于本地或者远程机 器。 1 3 3 从集中处理到分布式处理 2 0 世纪7 0 年代中期,流行的思想是利用大型设备采用集中信息服务的方 式来争取公司信息服务的全面性和综合性,我们将其称为集中处理的方式。 分布式计算( d i s t r i b u t e dc o m p u t i n g ) 的出现以及广泛采用是计算机发展历 史上的一次革命,它不仅是一种技术上的概念,也是一种结构上的概念。 分布式计算网络会按照地理位置成功来考虑设计( 即物理上的分布和逻 辑上的分布) 。而大多数网络是这两方面的结合。在分布式计算系统中,计算 机组成网络,每台计算机可以与一台或多台其他计算机和联结。而分布式计 算系统的中心贝q 通过集中的信息服务部门( 由业务领域所分派的) 或决策组 织( 其中用户和信息服务分担管理责任) 来控制。 分布式计算很好地解决了集中分散的问题,因为它的概念本身就是建立 在集中和分散这两种信息服务都能实现的原则基础上的。集中分散的问题归 结起来就是建立综合的信息系统( 集中) 和对用户服务( 分散) 这两者结合 的问题,规模的大小已不再是争论点。理论上说,分布式诤算能将这两个领 6 婴趔盔兰亟圭堂焦丝毫 域最后地结合在一起。计算机系统不仅能连接到所有的业务领域,而且能致 力于个业务领域的应用。由于所有的分布式系统都有用一个网络联在一起, 所以信息系统的综合也就很容易实现了。 分布式系统还具有较高的运行效率,很好克服了以前剥用大型设备采用 集中信息服务方式的缺陷。 应该说,分布式计算是网络发展的必然趋势。而中间件在分布式计算的 实现中则起着相当重要的作用。这是因为伴随着分布式应用的发展,不同硬 件平台、不同网络环境以及异构数据库之问的差距也随之出现,如何屏蔽他 们之间的这种差距呢? 中间件可以很好地解决这个问题。它对各种硬件平 台、操作系统、网络数据库产品以及客户端实现了兼容和开放。同时,它还 能整合多种企业应用模式,提高系统效率,保障传输可靠,安全加密,缩短 开发周期等等。 1 3 4 从c s 模式到三层体系 传统的客户机服务器结构是指服务器和客户层两层,包括远程数据访问 和存储过程调用。在两层结构系统中,客户端提供用户界面、运行逻辑处理 应用,而典型服务器端接收客户端s q l 语句并对数据库进行查询,然后返回 查询结果。 在两层结构给系统带来灵活性的同时,也逐渐暴露出其客户端和服务端 负担过重的现象。一方面,所有的业务全放在客户端处理,网络的交通很容 易堵塞,而且业务逻辑也不容易扩充;另一方面,所有的处理过程都放在数 据库层进行只是将最终结果返回到客户端。这种结构的业务逻辑需采用专 用语言开发。很难再移植到其他的数据库上去。也缺少相应的调试工具,具 有明显的局限性。 此外,随着企业应用的不断扩充和新应用的不断增加,不同硬件平台、 不同网络环境、不同数据库之间的互操作,多种应用模式并存,系统效率过 低,传输不可靠,数据加密、开发周期过长等等问题也令人头痛。 随着i n t e m e t q n t r a n e t 的兴起,二层客户机,服务器结构的局限性越来越 大,成为现代软件应用的一道不可逾越的障碍,越来越多的世界知名软件公 司改用三层结构开发软件。据世界权威媒体披露,每年全球约有超过5 0 的 软件开发项目最终以失败告终。该媒体明确指出,三层结构是解决上述问题 7 磐丛盔堂壁主兰鱼逢窑 的关键。 三层结构模式是当今先迸的协同应用程序开发模型,这种方案将客户杌 服务器系统中各种部件划分为三层服务( 即客户端服务、中间层服务和数据 库服务) 。它其实是o l t p 在线事务处理的一种应用。它的特点是联机的用户 数比较多,每次交易的时间都比较短,交易量比较大,而且每次都是采用通 用的大型数据库。 三层结构到底有什么好处呢? 首先,当客户数大量增加时,我们采用一 个中间层,把客户和数据库隔开客户只需要连接到中间层上,业务逻辑与客 户的业务界面也是分离的,软件的开发和维护相对来说都比较独立,就像樱 厅里设了训练有索的服务员一样,极大的减轻了网络韵压力。 其次,中间层的业务逻辑采用标准的语言开发( 如c 语言) ,跟平台无 关,程序可以很容易地从n t 或u n i x 或a s 4 0 0 移植到别韵大型机器上。同 时,我们使用的是标准的数据访问接口,跟数据库也无关。当业务逻辑和要 处理的数据不断增加时,以前的做法可能是通过硬件升级,加一些c p u 或内 存。若采用三层结构,业务逻辑是在多个服务器上实现的,两台不够用,可 以再加,可以使很少的机器达到很好的性能,甚至一个大型机的性能,采用 三层结构可以极大地减少硬件投资。 最后,三层结构的中间件还提供全程交易保护功能,即要么全部提交, 要么全部放弃,数据具有高度的完整性。因为采用了三层结构,使得访问可 以隔离在不同的层次之间,安全性的维护与管理都比较容易实现。 另外三层结构是一个基于组件的开发模式,中间件一般采用一些组件或 对象,每一个业务逻辑都对应一些组件,就像车体和构成车体的若干部件一 样,不仅使开发团队化,而且使功能重组非常容易,大大地提高了生产率。 我们用表格来对三层体系结构与两层结构做一下对比,见表格1 1 。 8 竖出盔堂壁堂垒迨塞 一 指标两层结构 三层结构 所有的臌务逻辑郡必瑚置装在客户埔,奢 可以将部分或全邵业务逆髯控制 客户端的负载户端必须有足够的能力对这些进行处理, 安装在引用服务器上以减少客户 使客户端过于庞大色虢蕾效察低 端的贺载 每个客户端都必须和数据库直接连接,而 只有应用服务器和数据库直接相 对数据服务器性能 每个连接都会占用数据库的资源,家中数 连,由应用服务器处理客户端对数 据库的负载,如果连接数目过多,就有可 的影响 据库的连接请求,降低了对数据库 能使数据库的性能急剧下降,甚至会导致 资源的占用 数据库的崩溃 数据以交易包形式传输,网络流量 客户端直接使用s q l 语句访阔后台数据小,同时客户端可以共享应用服务 网络流量和负载 库网络流量较大器中的公共数据( 如数据字舆 等) 节省带宽,提高了反应速度 客户端直接连接后台数据库,结构简单,结构复杂,编程的工作量和难度较 系统结构及工作量 编程简单,工作量小大 表格l i :两层结构和三层结构比较表 1 4 中间件是实现电子商务的基础软件 在越来越热的电子商务领域,中间件将发挥重大作用。基于w e b 技术的 中间件应用服务器,就是应用于电子商务的典型代表。 近年来,经济全球化。普遍的用户开放带来了更激烈的市场竞争, i n t e r n e t 的飞速发展,极大推动了国有企业、私人机构、政府或其他的公共服 务部门改进原有的产品和服务,业务电子化、电子商务、电子服务递送成为 重要的服务手段。 从技术角度来看,电子商务将由i n t e m e t i n t r a n e t 技术、传统i t 技术以及 具体的业务处理所构成。但是,电子商务系统的建立将会面临许多新的问 题,包括应用系统能不能快速建立,能不能适应大用户数、高处理量的要 求,能不能提供高效率、高可靠性、高可用性等关键任务的要求,能不能满 足安全需要等等。 以上这些问题,只是依赖简单的w e b 技术是不够的。目前常用的w e b 技 术由于早期更多的是面向信息发布。因此存在并发访问瓶颈、难扩展、效率 低、不安全等诸多问题,不能满足电子商务的需求为了很好地解决这些问 题。需要以w e b 的底层技术为基础,规划一个整体的应用框架,并提供一个 支撑平台,用于h l i 嘲峨寂甩的开发、赧罨和管理,并能僦她解浃生述的各种 9 璺越盔兰亟兰壁丝塞 一 问题。这已经发展成为一个能广泛适应的标准的支撑层,成为i n t e r n e t 应用的 基础设施( i n f r a s t r u c t u r e ) ,这以支撑层实际上是基于h 啦c m e t 的中闻件,也就 是应用服务器。 同时,由于企业并不能把业务一步跨至t j i n t e m e t 上,而必须同传统的应用 系统结合,因此也必须通过中间件来集成w e b 应用和传统应用,实现完整的 电子商务。 在这种情况下,电子商务应用应包含以下层次: - 浏览器:实现电子商务的入口。 i n t e m e t i n t r a n e t :实现电子商务的通道。 _ 电子商务应用:提供不同应用类型的电子商务的应用逻辑,如网上商店、 网络支付、虚拟社区等等。 电子商务基础平台:这里就是中间件在电子商务中的位置。中间件对电子 商务应用提供支撑,用于开发、部署和管理应用系统,保证系统的高效、可 靠、安全和易扩充,同时实现与传统业务系统的互连。 中间件已经成为电子商务领域不可缺少的重要基础设施。可以说,没有 中间件就不能支撑今天的网络应用。 1 5 中间件符合软件发展的潮流 依靠知识的不断积累,社会生产力才会获得发展,软件也需要利用已有 的成果。众所周知,人类社会的生产方式从1 9 世纪的手工式单件生产进化到 2 0 世纪的大工业生产,一个决定性的飞跃就是出现了标准化的零部件。产品 可由现成的零部件装配而成,从而使生产走向了规模化。那么,我们的软件 生产是否也能脱离传统手工业生产模式,转向从标准化零部件为基础的高效 率、高质量的新型生产方式呢? 软件构件化( s o r l h v a r ec o m p o n e n t ) 技术是在大生产启发下应运而生的, 是软件技术跨世纪的一个发展趋势,其目的是彻底改变软件生产方式从根 本上提高软件生产的效率和质量,提高开发大型软件系统尤其是商用系统的 成功率。有了软件构件之后,应用开发人员就可以利用现成的软件构件装配 成适用于不同领域、功能各异的应用软件。 软件复用一直是整个世界软件所追求的梦想,软件构件化为实现这一梦 想指出了一条切实可弦的道路,丽巾阃件正是梅俅化歉姊麴雕蝴霸 申褥 l o 璺! ! 盔堂鲤主堂焦造塞! : 件抽象了典型的应用模式,应用软件制造者可以基于标准的形式进行开发, 使软件构件化成为可能,加速了软件复用的现实化进程。因此,中间件是符 合软件发展阶段内在规律的。 2 、中间件软件工程 2 1 中间件概述 一个计算机应用系统不使用中间件当然完全可以运行,但是这样的应用 系统只能再小规模的系统上运行,数据处理量不能太大,计算机与计算机之 间不能相距太远,不能使用广域网,不能处理关键性业务等。一句话,没有 中间件的应用系统,如果它的作用是可有可无,帮你解决一些小的问题,则 完全可以胜任;但是,如果这个应用系统需要承担特别大的数据处理量,或 者需要特别高的准确性,如果没有中间件为基础的话,就经常会出现一些问 题,这些问题会对系统的稳定构成严重的威胁。 中间件系统对应用系统具有共性的问题进行了抽象,将抽象以后的部分 从应用程序中提取出来,形成一个新的实体。这个实体主要解决在小规模应 用的时候不能发现的问题,提高系统运行的稳定性。这样当应用系统需要扩 大运行规模的时候,不需要将应用系统变得太复杂。 为了更充分地发挥中间件的效能,我们必须对中间件系统的概念、架构 和它的分类情况有一个初步的了解。 2 1 1 中间件的引入 2 1 1 1 中间件的概念 客户机服务器的概念和应用已经流行了许多年了,尽管有关专家预测到 传统的客户机服务器结构有可能过时,代之于w e b 技术,对象技术、数据 仓库技术等新的概念和结构。但实际上,客户机,服务器的概念还在发展( 如 三层或多层客户服务器结构) ,客户机服务器方式的应用还在迅猛扩张随 着对各种老应用的不断扩充和新的应用的不断增加,各企业r r 部门面临的问 题越来越多,诸如踏过不同硬件平台、不同的网络环境、不同的数据库之间 互操作、新旧系统并存、系统效率过低、传输不可靠、数据需要加密、各种 应用模式、开发周期过长等等问题,这些问题只靠传统的系统软件或工具软 四! ! 盔堂塑主兰堡垒塞 件提供的功能已经不能满足要求。伴随着分布式应用的迅猛发展,中间件这 以新兴的软件领域已悄然崛起。 中间件的概念 既然许多问题是由各种不同的厂商的产品引起的,又不能靠传统的系统 软件( 如操作系统和数据库等) 、工具软件( 如c a s e 工具、4 g l 等 解决, 人们便想用另外一种软件来解决。顾名思义,你可以把中间件理解成是处在 应用软件和系统软件之间的一类软件,或是独立于硬件或数据库厂商( 处在 它们中间,实现它们的互联) 的一类软件,亦或是客户、服务方之间的连接 件,或者是需要进行二次开发的中间产品。这里引用一个比较流行的的中间 件的定义:中间件是一种独立的系统软件或服务程序,分布式应用系统借助 这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统 之上,管理计算资源和网络通讯。从中间件的定义可以看出中间件是一类 软件,而非一种软件;中间件不仅仅实现互联,还要实现应用之间的互操 作;中间件是基于分布式处理的软件。定义中特别强调了其网络通讯功能。 中间件解决的问题 首先,应用的互连和互操作是中间件首先要解决的问题。这里所说的应 用互连和互操作而不是说系统之间的互连,是因为中间件是一种应用级的软 件。它是一种应用集成的关键件,不管这些应用分布在不同的硬件平台上, 使用了不同的数据库,透过了多么复杂的网络,亦或是同一电脑中的不同应 用系统。其次。针对不同的应用领域。对中间件又有各种不同的要求。由于 实际的应用环境千差万别,不能指望有一种包罗万象的中间件解决所有的问 题。为了更好说明中间件能解决什么问题,需要对中间件做一个分类说明。 中间件的发展趋势 消息中间件是目前中间件技术的发展热点,如果把交易中间件看成是一 类特殊的消息中间件的话。那么消息中间件在目前市场上占据主导地位,而 且发展势头迅猛。消息中间件以其独特的优势为各种分布式应用的开发注入 了强大动力,极大地推动了应用系统集成的发展。 中间件的另一个发展动向是向i n t e m e t 延伸,i n t e m e t 脑t r a n e t 技术早已在 全球范围内广泛采用,但由于其自身的技术特点,在构造许多大型企业级应 用时,如并发控制、负载平衡、可靠传输、数据路由等仍显不足,因而仍然 存在供中间件发展的中间地带。 1 2 2 1 1 2 中间件的应用领域分类 技术的发展和市场的演进使中间件成为分布式应用的关键性基础设施, 中间件的内涵也变得越来越丰富,种类越来越多,技术越来越复杂,应用范 围越来越广阔。相应的,选择什么样的中间件变得越来越重要了。 一各式各样的中间件 从宏观上看,中间件可以分为3 大类: 口数据类( d a mi n t e g r a t i o n ) :用于数据的存取、利用和增值此类中 间件用于构件以数据为中心的应用。 口处理类( p r o c e s si n t e g r a t i o n ) :把分布在网络节点上的各个应用或处 理连接在一起,形成一个统一的分布式应用。 口分布式构件类( d i s t r i b u t e dc o m p o n e n t s ) :支持构件式应用,未来应 用的发展方向,目前竞争激烈。 主要类型的中间件 虽然中间件具有非常多的种类,而且各自具有各自的技术体系和操作原 理,但是不论式哪种中间件,如果它可以被称为中间件的话,必须具有两个 基本特征:一是。不论哪种中间件必须可以提供一种与应用程序的接口:二 是,任何一种中间件,不论其采用哪种运行体制,它必须式采用客户机服务 器方式为基础的分布式的体系。这两个特征的几种体现就是不同节点间的会 话方式( 同步方式、异步方式) 。 一些典型的中间件有:数据访问中间俘、远程过程调用中间件、面向消 息的中间件、交易管理中间件、对敦中间件、应用服务器中间件。 2 1 1 3 中间件的技术规范 技术规范在中闻件的应用中有非常重要的作用,这是由予中间件的应 用,一开始就建立在开放平台上,中间件应用的基础就是希望在各个平台上 的应用能够形成一个有机的整体,因此一种中间件一般需磊一种规范为基 础,这样一方面便于应用软件开发者的接受,另一方面便于与其他类型的软 件进行有机酌结合。 在描述各种主要的中间件技术规范之前,现提到这样一个技术规范,它 是c l i 全称是s q lc a l l 酗呛i ,i n t 蕊 f n c e ,这不完全是一个中i 鼽 技术规范,它 1 3 婴川盍堂亟主堂焦造塞 是一个数据库的技术规范,它定义了如何在应用程序中调用数据库资源,并 且使用遵循这一规范开发的产品,客户端的应用程序可以直接调用服务端的 数据。 _ d c e 体系 d c e 是d i s t r i b u t e dc o m p u t i n ge n v i r o n m e n t 分布式计算环境的缩写,由 o p e ng r o u p 制定。d c e 由多个共同在一起工作的组件组成,当然还包括用于 管理这些组件的管理工具。d c e 被称作中问件或使其具有能力的技术,它不 是独立存在的,而是被捆绑在供应商的操作系统中,或者由第三方供应商进 行集成的。 d t p 模型 d t p 模型是x o p e n 组织提出的一种软件结构,这种结构允许多个应用 程序去共享多个资源管理器提供的资源,并且具有协调全局事务的能力。 c o r b a c o r b a 是c o m m o no b j e c tr e q u e s tb r o k e ra r c h i t e c t u r e 的缩写,即公共对 象请求代理结构,由o m g 制定。o m g 组织推出的c o r b a 体系结构是对 o r b ( o b j e c tr e q u e s tb r o k e r ) 的一种实现,o r b 对象请求代理是一种分布式 计算模型,是分布式对象系统中对象间发送和接收消息的软总线,可以简化 本地和远地间的通信。以透明的方式实现互连、互通和互操作,相对提高处 理速度并增加可靠性。对象请求代理是整个c o r b a 参考模型的核心,它类 似于一个电话交换机。提供产生呼叫和接受呼叫的基本处理机制,通过与对 象服务的结合,可以确保符合c o r b a 规范的应用实体之间进行有意义的通 信。 j 2 e e j 2 e e 是j a v a 2p l a t f o r me n t e r p r i s ee d i t i o n 的缩写,是一种多层应用模式的 结构体系。整个规范由s u n 公司提出,它将业务逻辑从系统服务功能和用户 界面中分离出去,放置在客户层和应用基础设施这两层间的中间层,是目前 应用最为广泛的面向w e b 的应用系统结构规范。 一互联网相关技术规范 dw e b ( w o r l dw i d e w e b ) 是一种网络化的信息资源,它依赖于三个机 制,使用这些信息资源可以面对广大的使用者。 a 、u r l 一种唯一的命名机制,为弼上的资源进行定位。 “ 婴丕望塑主茎堡堡塞 b 、h t t p :一种用于分布式、互相协作、混合型媒体的信息系统的 应用层的通信规程,使用它以便在网上可以存取这些被命名的资源。 c 、h n 位:混合文本,以便更好地驾驭这些信息资源。 口除了以上技术规范外,还有一些规范也非常重要,它们的用途是实现 企业于企业间通过w e b 实现数据交换。 a 、x m l ( e x t e n s i b l em a r k e u pl a n g u a g e ) :通过提供更灵活和更容易 被接收的信息标识方法来改进w e b 的功能。 b 、s o a p ( s i m p l eo b j e c ta c c e s sp r o t o c 0 1 ) :一种轻量级规程,用于 在没有控制中心、分布式的环境中交换信息。 c 、u d d i ( u n i v e r s a ld e s c r i p t i o n ,d i s c o v e r ya n di n t e g r a t i o n ) :该规范 用于w e b 服务以分布式、以w e b 为基础的信息的注册。 d 、w s d l ( w e bs e r v i c ed e s c r i p t i o nl a n g u a g e ) :一组包含面向文档 或面向过程消息的端点操作信息的x m l 格式网络服务描述。 2 1 1 4 中间件在应用系统的位置 应用系统的基本结构 节点、进程和客户端服务端之间的关系是中间件的核心概念,它们之间 不同的变化组合,构成了整个基于中间件的应用系统。节点是这个系统的基 本元素,节点问不同的连接构成了中间件网络;在节点上运行的客户应用程 序或服务应用程序构成了节点上的客户进程或服务进程( 也可能是线程) ;不 同节点上的进程间的数据交换构成了中间件的基本操作。 一个完整的计算机应用系统通常需要完成某种主题,如:财务管理、库 存管理等。为了符合应用目的的需要,在很多时候需要把多台计算机构成一 个计算机应用系统。在这些计算机之间用网络连接起来,在这个计算机应用 系统中一台计算机被称为系统中的一个节点:一个应用系统由多台计算机组 成,每台计算机完成相对独立的操作的任务 计算机应用系统中的节点根据需要被分成不同类型的节点,有时多台计 算机需要使用同一个数据集合,因此需要将数据集中在一个节点上,形成一 个数据保存处理的中心,其他节点都根据操作人员的指令,对这个节点上的 数据提出操作请求,保存这些数据的节点根据请求对本节点上的数据进行处 理,并将处理结果返回给发出请求的节点。发出请求的节点将得到的结果进 1 5 t 四删盔堂亟堂焦量塞 行输出或其他处理,集中保存和处理数据的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科级护理管理组织
- 重症超声右心功能评估
- 垃圾处理设施安全责任书废物处置与环境保护版
- 高科技园区场地租赁及配套设施建设合作协议
- 商业大厦清洁服务外包合同
- 高强度不锈钢驳接爪研发与市场推广协议
- 多元化餐饮业态合伙人合作协议范本
- 公共停车场场地使用与管理合同范本
- 民宿产业场地无偿使用协议
- 创新型产业园区厂房土地使用权转让合同
- 2024精麻药品培训知识试题库及答案(完整版)
- 2024年吉林长春市中考地理试卷真题(含答案解析)
- 2024年湖北黄冈市检察机关招聘雇员制检察辅助人员50人历年(高频重点复习提升训练)共500题附带答案详解
- 2024国家开放大学《大学语文》网上课程1-5形考任务附答案
- 《小型水库雨水情测报和大坝安全监测设施建设与运行管护技术指南》
- 2024年小区地下车位租赁合同
- 光伏系统在智能温室大棚中的设计与应用
- 2023-2024学年云南省昆明市高一下学期期中考试化学检测试题(含答案)
- 体育赛事医疗保障方案
- 进口肉类项目商业计划书(2024-2030)
- 稀奶油和奶油的加工
评论
0/150
提交评论