




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 本文分析了在管理信息系统中集成实时监控系统信息遇到的问题, 如跨操作系统平台接收数据、处理网络故障和数据库的故障的自恢复功 能、如何处理海量数据等,并针对这些问题结合实例给出一套包括网络 设计、数据库设计、软件设计的完整的设计模型。从应用的角度给出3 层c s 结构在系统中的应用。 概括地介绍了网络的3 层c s 结构与m i d a s 中间件技术应用以及在 u n i x 的t c p i p 网络环境下,如何设计3 层c s 数据库,并利用o r a c l e r d b m s 设计”g o m i s 粮油信息管理系统”这一大型分布式数据库应用系 统的总体设计、方法及系统结构模型,总结了一些应用开发中的经验和 体会。 关键词:s 实时监控数据库o r a c l e 海量数据3 层c s 机构客 户机服务器 a b s t r a c t t h i st h e s i sd i s c u s s e ss u c hp r o b l e m se n c o u n t e r e di ni n t e g r a t i n g r e a l 一t i m em o n i t o rs y s t e mi n f o n n a t i o ni nm a n a g e m e n ti n f o m l a t i o ns y s t e n la 8 r e c e i v i n gd a t ab yc m s s i n go p e r a t i n gs ”t e mp l a t f o m ,d e a l i n gw i t l ln e t w o r k f a i l u r ea 1 1 ds e l f _ r e s t o r a t i o no fd a t a b a s ef a i l u r e ,a i l dh o wt od e a lw i mal a r g e n u m b e ro fd a t a w i t ht h ep u 坤o s eo fs o l v i n gt h e s ep r o b l e m s ,m i st h e s i s p r c s e m sw i t he x a m p l e sas e to f c o m p l e t ed e s i g nm o d e l ,i n c i u d i n gt h ed e s i g n o fn 咖o r k ,d a t a b a s ea n ds o f 研a r e ,趴da l s oa i l a l y z e sm e 印p l i c a t i o no f t l l r e e - t i c rc si m es y s t e m t h i s 也e s i sa l s or e s 嘲p t i v e l yi n t r o d u st h e 吐1 r e e t i 钉c ss 衄l c t u r eo f n e t w o r k ,m e 印p l i c a t i o no fm a si n t e n l l e d i a t et e c h n 0 1 0 9 y ,h o wt od e s i g n t h r e e t i e rc sd a t a b a s eu n d e rt c p l po f u n i xn e 觚o r k ,a 1 1 dt h et o t a ld e s i g n , d e s i g nm e m o da i l ds y s t e ms 廿1 l c t u r em o d e 】o fg 0 一m i sg m i na n de d i b l eo i l i i l f b n a t i o ns y s t e r l l 一ab i gd i s t r i b u t i v ed a t a b a s ea p p l i c a t i o ns y s t e m b y u s i n go r a c l er d b m s ,s oa st og e ts o m ee x p e r i e l l c e si n 印p l i c a t i o na n d d e v e l o o m e m k e yw o r d s :m i sr e a l - t i m em o n j t o r ,o r a c l e ,l a r g e - u m b e rd a t a , t h r e e - l a y e rc ss t r u c t u r e ,c l i c e n “s e n r e r 1 1 引言 第一章绪论 随着我国加入世界贸易组织以来,原国有粮食企业受到很大的冲击 与考验,在政策放开同时,国有粮食企业也在转变机制与市场策略,以 适应市场的需要,在这个前提下,企业高速发展,管理局业务迅速增多、 覆盖面增宽,总的特点是信息量变大、信息交流快,管理这样范围内的数 据就提出了对数据监控、系统监控、计算机资源联网、实现分布式管理、 共享资源等要求,面对这些新的要求和变化,我们采用了最流行的 t c p i p 网络协议及先进的a u 4 技术,采用3 层c s 结构建成了管理局 i n t e r n e t ,实现了管理局各职能部门之间的联网。并开发出粮油信息管 理信息系统( g 0 一m i s ) ,对管理局的信息实现了计算机管理。系统采用了 先进的o r a c l e 数据库为主数据库,利用o r a c l e 提供的p r o c 、 d e v e l o p e r 2 0 0 0 以及s u n 的j a v a 等工具为主要开发工具进行开发。 g 0 一m i s 系统中实时监控系统和数据库技术的好坏直接影响到企业 的生产和管理。实时监控系统的主要目标是实时监控和控制设备的正常 稳定运行,它采集的实时信息隐含着设备和产品的情况,是分析如何提 高产品质量、避免设备损坏的数据基础。如何能够把实时监控系统的数 据信息集成到m i s 系统中,将带来三点益处:( 1 ) 编程人员可在m i s 中 结合一些模块开发软件,完成对这些数据进行各种直观查询、统计分析 等功能,如有必要可以将多个实时监控系统的数据集成到一个m i s 系统 中;( 2 ) 具备权限的人员可以在m i s 网络的各个终端上获取这些数据信 息,进行查询和统计分析;( 3 ) 减少实时监控系统的多项功能要求将会 大大提高该系统运行的稳定性和实时性。 而性能优异的、使用便捷的数据库又是一个管理信息系统( m i s ) 得以顺利实施、扩展的必要条件。这里概括地介绍了在u n l x 的t c p i p 网络环境下,如何利用o r a c l er d b m s 设计”g o m i s 粮油信息管理系统” 这一大型分布式数据库应用系统的总体设计及方法,并以粮油信息管理 系统( g o m i s ) 为例,分析了在系统与数据集成时需要解决的关键问题, 提出一套在管理信息系统中分布式数据库应用的可行方案。在开发过程 中我们遇到了不少问题和困难,也积累了不少经验,这为我们今后应用 o r a c l e 丌发新的应用系统提供了一个很好的经验“。 1 2 课题主要研究目的、内容和意义 国有粮食企业一直是我国的支柱企业之一。国有粮食企业更是国家 粮食宏观调控的主要力量,国家在保证粮食安全、确保军需民食和保护 农民利益等方面,要继续依靠和发挥固有粮食购销企业的作用。但是, 历史的车轮滚滚向前,从计划经济向社会主义市场经济转变的步伐谁也 无法阻挡。特别是我国加入w t o 后,经济市场化、现代化、全球化的要 求已非常现实地摆在了我国各行各业面前。入世,对我国的粮食生产将 会带来重要的影响,对现行的粮食流通体制将会产生猛烈的冲击。为此, 中央采取了积极的应对措施,做出了加快粮食购销市场化改革进程的决 定。根据中共中央关于固有企业改革和发展若干重大问题的决定( 中 发 1 9 9 9 1 6 号) 和国务院关于进一步深化粮食流通体制改革的意见 ( 国发 2 0 0 1 2 8 号) 在这个前提下我国国有粮食部门的领导们深刻体会到内部体制改 革的重要性,大力贯彻党中央的决定。为了迅速提高企业自身的发展潜 力,先进的管理手段成为了首选。结合国内外的多方面经验技术,我们 为国有粮食企业的科学管理开发了g o m i s ( 粮油信息管理系统) 系统。 该系统引进先进的工程思想,应用先进的开发技术并结合企业自身 特点,为我国国有粮食企业量身定做。由于篇幅所限,本文只谈到系统 中监控系统与系统中三层c s 结构是如何开发和应用,并给出系统的整 体解决方案。 系统的成功开发。彻底的解决了国有粮食企业存在的弊端、杜绝了 种种矛盾现象的产生。根据粮食产销区的特点,切实做到政企分开,实行 减员增效:积极推进了企业战略性改组,加快了组织形式创新和产权制 度;全面加强了企业管理,完善了经营机制。通过系统的成功应用,使国 有粮食企业经济效益得到明显提高,市场竞争能力和抗御风险能力逐步 得到增强,使其在粮食宏观调控中继续发挥着主导作用。 作为计算机应用专业的研究生,课题的选取有一定的难度。因为应 用本身就是指根据一定的理论依据,开发产品或者提出新的应用理念。 随着i t 业的发展,相信读者已经注意到系统软件已经被国外大公司所 垄断,国内根本无法入手,即使是开放代码的l i n u x 中国也只是停留 在将其汉化的层面之上。而应用软件的开发却是当今中国软件开发的最 前沿阵地。随着企业的成长与壮大原有小型服务软件已经不能适应企业 的需求,m i s 、m i p 、m i p i i 、e i p 等大型管理系统相继引入。而开发过 程( p r e s s ) 也显得尤为重要,项目的开发过程需要一个可用于指导顾 客、用户、开发人员和项目经理等参与者的过程。我们需要一个能将软 件产业有史以来第一次有机地结合在一起的最好的过程一一任何旧的 丌发过程都无法做到这一+ 点。过程工程师要权衡技术、工具、人员、组 织模式四种因素,职责日见重要。不仅现在必须存在,而且还要保持到 将来。所以国内计算机硕士研究生定位、选题,选择过程工程师的项目 开发,我认为在计算机应用领域可见一般。 我的论文正是对国有粮食部门面对w t 0 的冲击,急需解决的问题一 一管理上层次,计划任务多元化的需求,信息现代化项目的深入研究, 并把所学理论知识在开发过程中加以应用,在市场中加以实践与检验。 第二章g 0 一s 系统中监控系统的分析和设计 2 ,1 监控系统分析 g o m i s 系统中实时监控系统和数据库技术的好坏直接影响到企业 的生产和管理。实时监控系统的主要目标是实时监控和控制设备的正常 稳定运行,它采集的实时信息隐含着设备和产品的情况,是分析如何提 高产品质量、避免设备损坏的数据基础。如何能够把实时监控系统的数 据信息集成到m i s 系统中,将带来三点益处:( 1 ) 编程人员可在m i s 中 结合一些模块开发软件,完成对这些数据进行各种直观查询、统计分析 等功能,如有必要可以将多个实时监控系统的数据集成到一个m i s 系统 中;( 2 ) 具备权限的人员可以在m i s 网络的各个终端上获取这些数据信 息,进行查询和统计分析:( 3 ) 减少实时监控系统的多项功能要求将会 大大提高该系统运行的稳定性和实时性。 2 2 监控系统中存在的问题 2 2 1 操作系统的不同 一般来说,为了满足系统的稳定性和实时性要求,重要复杂的实时 监控系统一般是基于各种版本的u n i x 操作系统设计的;而大部分的m i s 系统则是基于w i n d o w s9 x 、w i n d o w sn t 和w i n d o w s2 0 0 0 操作系统设 计的。因此在进行数据集成的设计时要考虑保证m i s 方的接收软件可以 跨操作系统平台接收实时监控系统端的实时数据。1 。 2 2 2 软件的运行方式不同 对一般的m i s 应用,用户只是在使用的时候,才运行该软件进行 数据操作,操作完毕后即退出该软件,不会出现某位用户一天2 4 小时 都在操作该软件的情况。而实时监控系统一般是一天2 4 小时不问断这 种情况下,实时监控数据接收软件就必须具有网络故障的自恢复功能和 数据库故障的自恢复功能,因为在软件的运行过程中不可避免地会出现 网络堵塞、网络瞬间切断再连接、网络硬件的瞬间不稳定等各种复杂现 象,数据库也会出现堵塞、死锁、停止服务等异常现象,所以实时数据 库接收软件必须有足够的健壮性来处理上述各种故障,并且在故障消除 4 后能够自动恢复f 常运行”。 2 2 3 数据的实时性要求不同 实时监控系统的响应速度一般是不超过3 秒,在m i s 中尽管不要求 这样的响应速度,但是应该不超过1 分钟。实时监控系统软件为了提高 系统的响应速度,一般是采用自己设计的实时数据库,而m i s 方使用的 数据库是商用的数据库( 如s y b a s e 、o r a c l e 等) ,这些商用数据库增 加了很多安全机制和用户身份的审核确认等功能,所以在实时性方面则 相对来说比较弱 1 0 。要达到这样高的响应速度( = l s ) ,在数据库设 计、开发设计的选择、程序代码的优化等方面都需要特殊的考虑,这也 是一般的m i s 系统应用不需要考虑的9 ”1 。 2 2 4 数据量的不同 接收软件接收的实时数据是海量数据。以市级粮食局的网络系统为 例,每个粮库监控系统需要监控1 5 个节点,市粮食局要实时监控3 5 个 粮库的数据,共采集1 5 $ 3 5 条线路的数据。按照每5 分钟存储一个采样 点为周期计算,在粮食收购的高峰期,一天存储1 5 十3 5 2 8 8 条记录。 这样的数据量是一般的数据库难以承受的,所以在数据库的设计时要充 分考虑到对海量数据的存取问题。一般m i s 软件数据量远远达不到这个 数量级。 第三章g 0 一s 系统中集成实时监控系统信息的解决方案 针对上述在m i s 中集成处理实时监控系统数据信息的特点,我们提 出了一套包括网络设计、数据库设计、软件设计三部分的解决方案,它 是针对集成系统实时数据信息设计的,但它对集成一般的实时监控系统 也有很强的适用性。 3 1 网络设计 由于粮食系统本身是一个基于网络运行的复杂实时监控系统,需要 比较高的安全性和稳定性,所以在与实时监控系统网络连接和采集数据 时,绝对不能破坏系统的安全性和稳定性。由于操作系统的不同,所以 在网络设计时应考虑相应的协议。在网络设计时采用3 层c s 结构、分 层连接的设计。 3 1 13 层c s 的网络设计概念 计算机网络技术是当今世界发展最快、使用最广泛的技术。一方面, 在当今的信息时代,信息的流量越来越大,需要处理、分析的数据越来越 多,以前单用户处理的管理系统往往无法满足现实的需要,而网络系统 所提供的联机、信息共享等功能,使得这一困难变得十分容易解决,所以 管理系统走向网络化将成为必然的趋势。另一方面,管理系统的网络体 系结构也随着计算机网络技术的发展而发展,9 0 年代中期以前是使用微 机局域网的文件服务器( f i l e s e r v e r ) 结构模式,接着发展到客户机 服务器( c l i e n t s e r v e r ) 结构,并于9 0 年代中期以后成为分布式处理的 主流,随后又发展到基于两层客户机服务器( c s ) 结构模式,由于两层 c s 结构具有效率低下、维护困难、安全性差和伸缩性差等缺点,在实 际应用过程中,由于企业的规模和需求千变万化,而两层c s 结构在管 理前端的增强功能、共享公用过程和保证安全性方面同样存在着局限性 难以满足企业不断发展的需要“”。因此,3 层c s 结构便应运而生。 由于3 层c s 结构的应用,可解决多网络、多结构的分布式处理,尤其是 能很好地支持i n t e r n e t i n t r a n e t e x t r a n e t 。可以预见,随着计算机网 络技术推进和i n t e r n e t 的普及,网络管理系统的体系结构必将会转向 采用3 层c s 结构模式。 3 1 23 层c s 结构 3 层c s 结构的出现明显改善了两层c s 结构的性能。它以构造分 割应用程序的能力为基础对应用程序进行分割,不同的功能被分割到不 同的组件旱,使其在逻辑上各自独立,并且单独加以实现。这些组件分为 三个逻辑层,即客户层、应用层和数据层。3 2 。其组成结构如图3 1 所 不。 图3 13 层c s 结构图 ( 1 ) 客户层( c l e n t ) :通常实现用户界面,提供可视化的用户接口, 负责用户和应用程序问的对话,用来表示信息和收集数据。它接受用户 的输入、请求,将结果以适当的形式( 如图形、报表) 返回结合用户,常以 g u i 界面表现出来。客户层只与应用服务器打交道,确保用户与应用服 务器的紧密结合“。 ( 2 ) 应用服务器( a p p l i c a t i o ns e r v e r ) :它是应用逻辑处理的核心 是连接客户和数据库服务器的桥梁。应用服务器和客户间的数据交往应 尽量简洁,客户将请求信息发送给应用服务器,应用服务器返回数据和 结果。它与数据库服务器打交道,而客户不能直接与数据库服务器打交 道。应用服务器一般和数据库服务器有密集数据交往,应用服务器向数 据库服务器发送s q l 请求,数据库服务器将访问结果返回给应用服务 器。此外,应用服务器也可能和数据库服务器没有数据交换,而作为客户 的独立服务器使用“。 ( 3 ) 数据库服务器( d a t a b a s es e r v e r ) :以传统的基于s q l 的d b m s 实现,负责管理数据的定义、维护、访问和更新,并响应应用服务器的数 据请求。它的物理实现可以在某种数据库管理系统中,也可以是一个异 种数据库的集合,这种数据库可以驻留在多种平台上。并且将数据服务 和应用程序的其他组件分开,在维护、修改甚至重构数据结构及访问机 制时,可以丝毫不影响业务服务程序和客户端程序。 3 1 33 层c s 结构的优点 由于在3 层c s 结构中,应用服务器实现应用服务,数据库服务器实 现数据服务。每一个客户端应用程序不再直接和数据库服务器相连,而 只和应用服务器相连,通过应用服务器和数据库服务器相连。因此,与两 层c s 结构相比,3 层c s 具有如下明显的优势。 可伸缩性 3 层c s 结构中的三层,只是逻辑上的概念。具体实现时,物理结构 上的差异可能会很大。灵活的硬件系统构成,可使各部分选择与其处理 负荷处理特性相适应的硬件。比如,应用初始阶段,可将三层放在一台计 算机上,随着应用程序的发展,可以将其放在两台甚至多台计算机上,只 要它们在体系上遵循3 层c s 结构即可。 可维护性 3 层c s 结构中,各层相对独立,可以并行开发,也可以选择各自最 适合的开发语言。由于应用逻辑被封装到了应用服务器上,因此,当应用 逻辑发生变化时,仅需修改应用服务器中的程序,而不必对每个客户端 的程序都进行更新。这样就使系统的维护和升级更加容易,也加强了数 据的一致性。“。 提高了系统的性能 2 层c s 结构是一种胖客户型,即数据计算和数据处理集中在客户 端,这种系统的网络负荷大,直接影响信息处理的速度。在3 层c s 结构 中,客户端应用程序和应用服务器之间的链接实际上只是一些简单的通 信协议,而和数据库服务器打交道所需要的设置或驱动程序,均由应用 服务器来承担,这既减轻了客户端的负担,也降低了数据库服务器的链 接代价。 安全性 由于应用服务器分割了客户端应用程序和数据库应用程序,用户的 8 识别和权限可以分层进行设定,因而能有效地阻止非法入侵者的恶意破 坏,系统的安全性得到了加强。 开放性 在3 层c s 结构中,客户层和应用层可用各种支持的a c t i v e x 的开 发工具开发。由于采用a c t i v e x 技术,这样就可以将系统中的一些部件 接口。提供给客户进行2 次丌发,既可重写客户端程序,又可重写满足特 殊需要的功能层部件,还可添加新的部件。 3 1 4 基于3 层c s 结构的网络设计 m 1 s 系统是应用最广的数据库管理系统之一。由于各单位的规模和 管理模式千差万别,因而监控系统的开发需要考虑诸方面的因素。3 层 c s 结构的出现,为创建高效、易维护和开放性好的m i s 系统提供了极大 的方便。根据系统需求监控系统网络设计如图3 2 所示: 图3 2 监控系统网络设计 发送机是监控系统中的一台备用服务器或工作站,上面运行数据采 集系统转发实时数据的进程,将数据采集系统的实时数据发送到转发 机,转发机接到数据后,将数据转发到接收机,接收机收到数据后,将 数据存到数据库内。这样分层设计的优点是: ( 1 ) 保证数据采集系统的安全性和稳定性。只有转发机连接到数 据采集系统的网络上,而且也是只有转发机和发送机之间有数据传送, 转发机采用w i n d o w sn t 作为操作系统,在软件层只能通过f t p 或t e l n e t 软件能够访问数据采集系统,但是必须经过r _ :i 令验证,所以可以保证采 集系统的安全性。在网络层,虽然m i s 的接收机等其他微机和采集系统 的网络有物理连接,但是通过i p 地址的划分和网关的设置上的不同, 也完全可以保证其他的所有的m i s 的微机无法访问数据采集系统网络。 另外,转发机可以放在调度机房内,从人员的管理上也可以得到绝对的 保证。在软件层,发送机作为c l i e n t ,转发机作为s e r v e r ,转发机向 发送机发送数据请求报文,发送机接收到报文后才开始发送数据,数据 采集系统的发送机主动处理事务,m i s 方的转发机被动的接收数据,所 以数据采集系统的稳定性也不会受到影响”。 ( 2 ) t c p i p 网络协议可以跨操作系统接收数据。t c p i p 协议是一 种开放的网络协议,逐步成为局域网和广域网的标准。使用t c p i p 协 议,能够使采用不同的操作系统的计算机有序的方式交换数据。在接收 机的网络编程中,采用是面向连接的t c p i p 协议,保证数据的可靠性, 没有采用不可靠的无连接递送服务的u d p 协议”。 ( 3 ) 分层的网络设计使接收机系统的配制更加灵活。一般的情况 下,数据采集系统m i s 的机房不在同一个位置上,这样的设计可以将转 发机放置在任何的位置。通常情况下,建议将转发机放置在数据采集系 统附近的位置上。接收机放置在距离l i i s 数据库较近的位置上。发送机 到转发机、转发机到接收机、接收机到数据库之间的软件设计上都具有 网络故障的自恢复功能,提高系统的可靠性”。 3 2 监控系统数据库设计 数据库应用经历了从单机到网络、从网络到客户服务器结构、再 从c s 结构到多层( m u l t i t i e r ) 分布式结构这样几个阶段。目前c s 结构如火如荼,多层数据库应用初见端倪。 3 2 13 层c s 数据库多层结构 客户服务器结构拖动了数据库应用的普及,但随着数据库应用规 模的扩大,特别是今天的应用范围由l a n 扩展到w a n ,甚至扩展到 i n t e r n e t 时,传统的客户服务器两层结构f 1 益显示出它的弊端来,主 要表现在以下几个方面: ( 1 ) 执行效率无法满足日益膨胀的客户需求。客户服务器结构中 的客户数量受到定的限制,一般而言,当客户数量由数十个增加到数 百个时,系统的执行效率便开始显著下降,主要原因是大量的数据库并 0 发连接消耗了宝贵的数据库资源,而这种连接往往使用效率非常低。 ( 2 ) 客户服务器结构的维护成本较大。首先是硬件成本,在数据 库服务器端相对不变的情况下,要提高系统的执行效率,往往需要对客 户机的硬件进行升级;其次是软件成本,包括应用软件的维护成本和系 统的扩充成本,在客户服务器的体系结构下,随着系统规模的扩大这两 种成本会显著地增加。另外,随着应用需求的变化,整个系统缺乏灵活 性。 ( 3 ) 大规模的应用系统在负载平衡能力上显得力不从心。虽然目 前多数的数据库系统都支持分布式应用,但仍然需要客户端的应用来实 现负载的均衡。当数据库连接成为系统的负担时,负载平衡能力就显得 非常必要了。 3 2 2 数据库多层结构分析 上述客户服务器结构的缺点在多层应用系统中都会得到比较好的 解决,除此之外,两者相比较,后者还具有如下几个明显的优势: ( 1 ) 多层应用的客户端属于瘦客户模式。从应用推广的角度来看, 瘦客户意味着无需在客户端做复杂的安装和配置,大大减轻了软件使用 者的负担。这种模式正发展成一种趋势,它代表着系统应用逐渐走向成 熟、简洁、灵活。 ( 2 ) 多层应用可以实现更好的安全性。对于大多数数据库应用来 说,系统的安全性都是被放在很重要的位置上。多层结构采用安全验证 多级划分的分布式安全管理系统的应用软件得到保护,因为软件的关键 部分都集中在中间层。 ( 3 ) 多层结构可以更好地支持分布式计算环境。从应用的发展趋势 来看分布式的业务促使我们的软件出人头地用分布式的体系结构,在 赞助体系结构下我们可以做到游刃有余地满足绝大部分的应用需求。 ( 4 ) 多层结构可以减少网络开销。在两层结构中,对于典型的一次 事务处理( t r a n s a c t i o n ) ,客户机与数据库往往要进行多次交互。在多 层结构中,可以通过中间层,客户机的数据交互只需要一次,数据的多 次交互可以限定在中间层与数据库之间,这样网络上的数据流量就会大 大减少。 ( 5 ) 多层结构可以部分地消除数据库瓶颈。虽然数据库的并发度不 能无限制的提高,但多层结构中可以通过增加中间层的并发度、分解数 据库承担的计算任务、共享数据库连接等措施来降低数据库的负荷,从 而提高数据库系统的运行效率。 3 2 3 数据库应用系统的任务分割 任何数据应用从逻辑上可以概括地分为用户界面、商业规则和访问 控制、数据存储这样三个基本任务。这三种不同的任务可以在一个程序 里实现,也可以分割在几个程序里实现。在数据库的多层应用中,三层 结构是应用的基本方式。如果我们将上述三种任务分别用不同软件来实 现的话,这就是典型的三层应用结构这三软件都是整个应用系统服务 的,我们称之为系统的表示层、商业规则层、数据层。 表示层是一个人机交互的接口,它提供给用户一个可视化的界面, 借此使用者可以下达系统应用软件操作的指令,如数据的获取、数据的 输入、数据的修改、数据的有效性验证等一系列操作。 数据层是一个相对独立的层面,它负责执行数据的存储管理、数据 的完整性、数据的安全性等任务,另外它还需要响应数据操作的请求, 产生数据操作的结果。这一层大多数的应用系统采用成熟的数据库管 理系统来实现,如o r a c l e 、s y b a s e 、m ss q ls e r v e r 等。 商业规则层位于表示层和数据层之间,是两者沟通的桥梁,因此又 叫中间层。从表示层看,它是服务器,从数据层看,它又是客户端,因 此它是两套客户服务器结构的交汇点。从功能上看,它控制数据的访 问、传递表示层和数据层进行信息交互所需要的指令和数据。从物理上 看,它把用户和数据隔离开来,通过其内部封装的企业对象来完成表示 层和数据层之间的数据交易,从而实现应用系统更好的安全性和灵活 性。为了减轻表示层和数据层负担,在多层结构中,可以把原先两层结 构中存在于客户端或数据库端的数据处理和业务逻辑迁移到商业规则 层( 比如将原先数据库端普遍存在的存储过程移向中间层) ,这样在整 个应用系统中数据的处理趋向集中,非常有利于后期的软件维护和系统 升级3 。 在多层结构的应用系统中,典型的情况是采用三层结构 ( t h r e e t i e r ) 。如果根据实际需要将中间层再分成若干个层次,如将 承担负载平衡的部分和负责数据存取的部分从中间层分离出来,则构成 真正的多层结构( m u l t i t i e r ) 。 3 2 4 m i d a s 中间件技术 所渭中间件( m i d d l e w a r e ) ,通俗地说,就是在多层结构中,任何 不在客户端和( 数据库) 服务器端执行并且担负有特定功能的应用程序, 例如在b s 结构的动态网站中,w e bs e r v e r 就是一种我们常见的中间件。 在数据库的多层应用中,中问件是系统实现的核心部件,它担负着系统 的关键性任务。在传统的采用两层结构的系统中,所有的客户端都是直 接与数据库服务器连接的,这种连接属于有状念的连接,这就决定了系 统的主要瓶颈取决于数据库服务器。正是由于中问件的出现,使得我们 可以克服在两层结构中的诸多弊端。在多层结构中,由中间件技术实现 绝大部分的商业规则和业务处理,由此诞生出一个或多个担负企业运算 的服务器,我们统称为应用服务器”1 。 m i d a s 是m u l t i t i e rd i s t r i b u t e da p p l i c a t i o ns e r v i c e ss u i t e 的英文缩写,是b o r l a n d i n p r i s e 公司来实现分布式多层数据库应用的 通用中间件产品,它是我们在视窗条件下用d e l p h i 或c + + b u il d e r 来 开发多层应用系统的中介透明引擎,它提供客户端程序和应用服务器之 间互通数据库信息的机制。通过m i d a s ,我们不仅可以开发出高效率的 应用服务器也可以通过它来改造我们的客户端,为应用程序“减肥”, 使之可以连接不同类型的应用服务器,如独立于平台的c o r b a 服务器或 微软的m t s 服务器。另外,经过减肥的瘦客户应用程序可以比较方便地 发布到互联网上。 m i d a s 在开发数据库的多层应用方面,有如下几个主要功能: ( 1 ) 远程数据代理( r e m o t ed a t ab r o k e r ) :通过这个中介桥梁, 实现客户端非直接地存取数据库并管理客户端与远程数据库服务器之 间的数据流。 ( 2 ) 数据约束代理( c o n s t r a i n tb r o k e r ) :部分地代替数据库本身 的c o n s t r a i n t 功能,让数据在未提交到数据库前就执行必要的数据校 验和有效性检查,从而提高系统效率。 ( 3 ) 企业对象代理( b u s i n e s s0 b j e c tb r o k e r ) :允许我们开发符 合商业逻辑和企业规则的智能对象,为客户端提供可重用的服务。事实 上,上述三项功能也是任何中间件产品所应该具备的基本功能,在此不 再赘述。除此之外,m i d a s 还为我们提供了另外两个重要功能:容错能 力( f a u l tt o l e r a n c e ) 和负载平衡能力( l o a db a l a n c i n g ) ,这是大型 的关键性多层数据库所必须赋予的专门功能。实践中,我们可以通过 m i d a s 为应用服务器设置b r o k e rs e r v e r 来实现这两项功能。为了说明 方便,我们给出图3 3 所示: 图3 ,3 应用服务器 从上图我们可以看出,在一个大型应用中,我们可以为中问层设置 多个应用服务器a p p l i c a t i o ns e r v e r ,其中的容错能力和负载平衡能 力主要通过b r o k e rs e r v e r 来实现。 在上述系统结构,每个应用服务器需要向b r o k e rs e r v e r 进行注册。 当客户端应用程序需要连接服务器时,它不是直接与应用服务器打交 道,而是通过b r o k e rs e r v e r 寻找与之相匹配的应用服务器,一旦找到, 客户端就会与这个特定的应用服务器建立通信连接。b r o k e rs e r v e r 的 作用主要体现在这个查找过程中,系统的容错能和负载平衡能力就是在 这个查找过程中得以实现。 首先来看负载平衡能力。在一个繁忙的分布式系统中,一个应用服 务器往往会不堪重负,此时就需要有多个应用服务器来协同承担服务任 务。此时大量客户端的访问需求如何在应用服务器之间分配呢? 这就需 要有一个调度机制。当某个客户端需要建立连接时,b r o k e rs e r v e r 就 会根据各个应用服务器的负荷情况分配一个适当的应用服务器与之建 立连接。从整体上看,大量的服务需求就被分布到不同的应用服务器中 去执行。通过这个“调度”机制从而实现系统的负载平衡。 再来看系统容错能力。当连接的应用服务器在运行过程中由于某种 原因出现故障时,客户端的程序调用就会出现错误,一旦发现这种状态, b r o k e rs e r v e r 就会启动连接“向导”功能,在网络中寻找另外一个提 供同样服务并且运行j f 常的应用服务器,如果找到,b r o k e rs e r v e r 就 会将客户端的连接引向这台无故障的应用服务器。这一过程对于客户端 应用来说是完全“透明”的,也就是说客,、端应用程序不会意识到这个 搜寻过程。这就是三层结构通过b r o k e rs e r v e r 实现系统容错的基本原 理。当然,实现这个容错功能的前提是客户端应用程序与应用服务器之 1 4 间的连接必须是无状态的连接,否则客户端应用在执行过程中更换应用 服务器会导致运行错误。 构造好了应用服务器,客户端的应用程序如何与之建立连接呢? 这 就要依靠通信协议。m i d a s 支持多种通信协议,如t c p i p 、d c o m 、1 1 0 p ( c 0 r b a ) 、h t i p 等,并且将这些协议的实现细节封装成组件的形式供 开发者使用,这就大大减轻了开发人员的负担,减少了客户端应用程序 为建立通信连接而需要编写的大量代码。 3 2 5 m i d a s 多层应用的体系结构 有对多层分布式数据库应用的总体认识后,我们来具体介绍m i d a s 在开发应用服务器和客户端应用程序的框架结构。目前在w i n d o w s 平台 下支持m i d a s 技术的开发工具主要有b o r l a n d i n p r i s e 公司的d e l p h i 和c + + b u i l d e r ,两者在很多方面都采用了相同或相似的技术,如它们 共用相同的基础类库v c l ,体系结构一脉相继承,为开发人员提供的组 件和类也都是一致的。不同之处在于具体的编程语言,d e l p h i 使用的 o b j e c tp a s c a l ,c + + b u i l d e r 使用的中是b o r l a n d i n p r i s e 公司扩展 的c + + 语言。 开如多层数据库应用主要涉及数据集和m i d a s 两个方面的组件,图 3 4 是基本的结构示意图。 图3 4 多层数据库基本结构 1 5 在这个结构示意图中,我们给出b o r l a n d i n p r i s e 公司构造三层应 用的基本框架,为简化起见,图中没有包含承担负载平衡的b r o k e r s e r v e r 部分。下面就各个部分功能和作用做出简要说明。客户瑞应用 程序主要有三部分构成:数据感应组件、t c l i e n t d a t a s e t 组件和 t r e m o t e s e r v e r 组件。数据感应组件和t d b g r id 、t d b n a v ig a t o r 等,它 负责数据的界面显示,构成软件的用户界面。t c l i e n t d a t a s e t 和 t r e m o t e s e r v e r 主要负责连接远程应用服务器,其中t c l i e n t d a t a s e t 是远程数据模块中数据集组件在客户端的映象,t r e m o t e s e r v e r 通过特 定的连接协议负责与指定的应用服务器建立连接,实际连接的组件有: t d c o m c o n n e e t i o n、t s o c k e t c o n n e c t i o n、t w e b c o n n e c t i o n、 t c o r b a c o n n e c t i o n 等。除此之外,要连接客户端和应用服务器,实现 单据的正确交互,两端都需要m i d a s 构架的一个核心动态库m i d a s d l l , 它负责将客户端与应用服务器端需要传递的数据转化为数据封包( d a t a p a c k e t ) ,然后再通过网络发送给对方,当然数据封包到达对方后, m i d a s d l l 还需要解包。这种数据传递形式,一方面压缩了网络上需要 传递的数据量,另一方面也在一定程度上保证了数据的安全性。 应用服务器主要由远程数据模块( r e o t ed a t am o d u l e ) 和封装了 商业逻辑的企业对象( b u s i n e s so b j e c t ) 两部分组成,其中企业对象 在上述图示中没有明确画出。整个应用服务器对客户端来说表现为一个 a u t o m a t i o ns e r v e r ,由远程数据模块实现i a p p s e r v e r 接口,并为客户 端提供d c o m 、t c p i p 等多种连接方式。远程数据模块中的 t d a t a s e t p r o v i d e r 和数据集组件t d b d a t a s e t 则通过数据库接口( 如 肋e 、a d 0 、s q ll i n k 等) 连接远程数据服务器,并将取得的数据通过 i a p p s e r v e r 接口以数据封包的形式传递给客户端。另外可以根据需要 在远程数据模块中加入t d a t a b a s e 组件和t s e s s i n o n 组件,以便对数据 库连接和会话做进一步的控制。这个i a p p s e r v e r 接口在m i d a s 技术中 扮演着非常重要的角色,只有通过它位于另外一台机器中的m i d a s 客户 端程序才能通过网络远程调用应用服务器提供的一系列服务,而这些服 务则主要由内含于应用服务器中的各种企业对象提供,应用需求中的任 何业务规则和企业计算都可以编写为专门的企业对象封装起来。这里的 企业对象与使用何种语言编写是无关的,但必须符合o m g 组织( 0 bj e c t m a n a g e m e n tg r o u p ) 定义的规范标准,可以是c o m d c o m c 0 m + 对象,也 可以是独立于平台的c o r b a 对象,这是从技术角度划分的如果从企业对 象在服务器中的作用来分,在一个大型应用系统中,这些企业对象可能 包括负责数据存取的数据对象( d a t ao b j e c t s ) ,代表业务主体的实体 对象( e n t i t yo b j e c t s ) ,负责处理逻辑的规则对象( r u l e0 bj e c t s ) , 以及为了系统协调运行的控制对象( c o n t r o lo b j e c t s ) 等。在此需要 特别说明的是,在m i d a s 应用服务器中t a p p s e r v e r 接口和企业对象是 两个关键因素,企业对象提供后台服务资源,而接口负责对外输出服务 的功能调用,两者相互配合,刁+ 能完成应用服务器的使命”。 从以上的介绍可以看出,开发一个实际的分布式多层数据库应用并 不困难,关键是要理解多层体系结构的设计思想和一系列相关的概念, 特别是对应用服务器与企业对象的深刻理解。在此基础上,采用适当的 开发工具和技术( 如本文介绍的c + + b u i l d e r d e l p h i 和m i d a s ) 就会 达到事半功倍的效果。 3 2 6g o m i s 系统实时监控系统数据库的设计诠释 我们在m i s 系统中采用大型关系型数据库0 r a c l e8 i 。数据库设计 也是采用分层设计。我们首先从监控系统的需求角度来看如图3 5 所 示。 图3 5 监控系统结构 接收机接收数据后,将数据存到实时库内,定时处理程序每5 分钟 将实时库内的数据全部存到当日库内,在每日的2 3 点5 5 分将当曰库内 的数据压缩到历史库内。 这种分层的设计方式具有以下的优点: ( 1 ) 满足系统的实时要求。对数据库的操作中,一般有i n s e r t 、 u p d a t e 、d e l e t e 三种操作,其中实时库和当r 库是速度最快的一种。 在软件启动时,先对实时库和当曰库进行初始化操作,即插入所有线路 的实时记录和当日记录。然后在接受数据后,赢接u p d a t e 实时库内的 数据。实际上在系统的运行过程中,耗时最多的就是数据库操作。接收 机仅仅u p d a t e 实时库的数据,操作实际运行测试,每个粮库的数据刷 新速度小于1 秒,符合系统设计的要求。 ( 2 ) 解决数据库的并发访问。处理实时系统的数据,不可避免的要遇到 数据库的并发访问,而数据库的并发访问会降低数据库系统性能,容易 引起数据库系统的死锁。分层的设计可以最大限度的降低数据库的并发 访问的发生,通过图3 5 ,我们可以看出,定时处理程序在每5 分钟转 存数据、每日2 3 点5 5 分转存当日数据时会有并发访问现象。由于对当 日库是u p d a t e 操作,操作时间很短,所以也不会有死锁现象发生。2 3 点5 5 分转存当日库数据到历史库,这个时间内一般没有用户查询操作, 所有也不会出现死锁现象。 ( 3 ) 解决海量数据的存储。实时数据另一个不能避免的问题就是海 量数据的存储。每日需要存储的记录就有2 9 1 4 5 6 条,而且会不断的恶 性膨胀。这么大的数据量是一般的数据库难以承受的。数据仓库可以处 理海量数据,但是投资太大,简单的数据仓库也要几百万的投资。在目 前的情况下
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小海改名申请书
- 民办学校办学申请书
- 师生转换身份申请书
- 申请士官院校申请书
- 在校入籍申请书
- 远程立案申请书
- 安全检查相关培训课题课件
- 天津劳动仲裁申请书
- 医院买保险申请书
- 暨大活细胞课件
- 成人床旁心电监护护理规程
- 食用菌种植项目可行性研究报告立项申请报告范文
- 2025版技术服务合同协议
- 焦炉机械伤害事故及其预防
- GB 5768.1-2025道路交通标志和标线第1部分:总则
- 江西红色文化考试试题及答案
- 苏州市施工图无障碍设计专篇参考样式(试行)2025
- 哮喘的诊疗和规范化治疗
- 2025年中国文创产品行业市场发展现状及投资前景展望报告
- 2025年新高考“八省联考”语文试题及参考答案解析版
- 2024年巴中市市属事业单位考试真题
评论
0/150
提交评论