(计算机软件与理论专业论文)备份系统中基于数据库面向主题的进程间通信方法研究——基于postgresql的实现.pdf_第1页
(计算机软件与理论专业论文)备份系统中基于数据库面向主题的进程间通信方法研究——基于postgresql的实现.pdf_第2页
(计算机软件与理论专业论文)备份系统中基于数据库面向主题的进程间通信方法研究——基于postgresql的实现.pdf_第3页
(计算机软件与理论专业论文)备份系统中基于数据库面向主题的进程间通信方法研究——基于postgresql的实现.pdf_第4页
(计算机软件与理论专业论文)备份系统中基于数据库面向主题的进程间通信方法研究——基于postgresql的实现.pdf_第5页
已阅读5页,还剩61页未读 继续免费阅读

(计算机软件与理论专业论文)备份系统中基于数据库面向主题的进程间通信方法研究——基于postgresql的实现.pdf.pdf 免费下载

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

文档简介

韩昧毕:备份系统中基于数据库面向主题的进程间通信方法研究 中山夫学硕士学位论文 2 仃i ) 5 - - 5 备份系统中基于数据库面向主题的进程间通信方法研究 基子p o s t g r e s q l 的实现 计算机软件弓理论 硕士生:韩昧华 指导教师:倪德明副教授 摘要 威腾网络数据备份容灾系统提供对网路环境下的数据库、文件系统等资源的统 一管理。备份= 拷贝+ 管理,备份资源种类繁多,每种资源备份恢复的方式不同, 决定了备份系统中存在多种彼此独立的应用程序。备份的过程就是一组属于不同角 色的应用程序通信协作的过程。 本文分析了应用套接字和消息队列中间件技术处理备份系统中多进程通信协作 问题的一些局限性。应用套接字技术应用程序的位置透明性和访问透明性不可能得 到保证,而且套接字使用起来不方便。消息队列中间件一般只负责消息在网络上的 安全传输,不关心应用程序的执行逻辑。结合广州市威腾网络备份容灾系统开发中 的实际需求,本文提出了备份系统中基于数据库面向主题的进程间通信方法,解决 了备份系统中多个进程之间通信协作问题。该方法中数据库负责消息的存储、消息 的筲理和应用程序之间的通信:其中主题是应用程序之间通信所操作的实体f 比如 备份集) ,关于丰题的信息存储在数据库中;多个应用程序连接到数据库,通过关 联相同的宅题实现通信和资源共享。该方法在备份产品n e t b u n k e r 2 的开发中,利 用开源数据库p o s t g r e s q l 得到了实现,使系统中的应用程序更有效的结合在一 起。 并且,威腾网络备份与容灾系统利用p o s t g r e s q l 数据库实现面向丰题的进程 间通信的方法,实现了g u t 的全局视图、基于用户的访问控制、消息的可靠性传 输、应用程序一对一,多对一的通信以及对应用程序的状态监控等。 关键字:主题,消息,队列,状态监控,p o s t g r e s q l 塑堕兰:鱼堡墨堑! 苎王塑塑璧耍塑圭墨些篓矍业望堡塑鲨堕窒 ! ! i 查堂堡主堂垡堡塞上婴! 二三 r e s e a r c h0 1 1d a t a b a s e b a s e da n ds u b j e c t o r i e n t e di p cm e t h o d i nb a c k u ps y s t e m :p o s t g r e s q l b a s e da p p l 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 ea n dt h e o r y n a l t i e :h a nm e i h u a s u p e r v i s o r :a s s o c i a t ep r o f d e m i n gn i a b s t r a c t t h ev i t o nn e t w o r kd a t ab a c k u pa n dd i s a s t e rr e c o v e r ys y s t e mi si n t e n tt op r o v i d ea u n i f o r mm a n a g e m e n tp r o d u c tf o rt h en e t w o r kr e s o u r c e ss u c ha sd a t a b a s e ,f i l es y s t e m b a c k u pi se q u a lt oc o p ya n dm a n a g e m e n t b e c a u s eo fv a r i o u sb a c k u pr e s o u r c e sa n d t e c h n i q u e sf o rb a c k u pa n dr e c o v e r y ,s ot h e r ea r em a n ya p p l i c a t i o n si n d e p e n d e n tw i t h e a c ho t h e ri nb a c k u ps y s t e m ,b a c k u pi sap r o c e d u r eo fm u l t i - p r o c e s sc o m m u n i c a t i o na n d c o o p e r a t i o n ,e a c hp r o c e s sb e l o n g s t oar o l e t h el i m i t a t i o no fa p p l y i n gs o c k e t sa n dt h em e s s a g eq u e u em i d d l e w a r ei nb a c k u p s y s t e ma r ea n a l y z e di nt h i sp a p e rr e s p e c t i v e l y t h el o c a t i o nt r a n s p a r e n c ea n da c c e s s t r a n s p a r e n c ec a n n o tb eg u a r a n t e e df o rt h ea p p l i c a t i o n sa p p l y i n gs o c k e t sa n dt h es o c k e t s a r ei n c o n v e n i e n t a sf o rt h em e s s a g eq u e u em i d d l e w a r e ,i ti so n l yt o t r a n s p o r tt h e m e s s a g er e l i a b l yi nn e t w o r k sa n di si g n o r a n tt oa p p l i c a t i o n sp e r f o r ml o g i c t h e d a t a b a s e - b a s e da n ds u b j e c t o r i e n t e di p cm e t h o dp r o p o s e di nt h i sp a p e ri sb a s e do nt h e r e a lr e q u i r e m e n to ft h eb a c k u pa n dr e c o v e r ys y s t e mo ft h eg u a n g z h o uv i t o nn e t w o r k t e c h n o l o g yc o ,l t d a n d s o l v e sm u l t i - p r o c e s sc o m m u n i c a t i o nb e t w e e np r o c e s s e sa r e p r o c e s s e db yd a t a b a s es y s t e m w h e r et h es u b j e c ti st h ee n t i t y ( s u c ha sb a c k u ps e o o p e r a t e dd u r i n gc o m m u n i c a t i n gb e t w e e na p p l i c a t i o n sa n dt h ei n f o r m a t i o na b o u ts u b j e c t i ss t o r e di nd a t a b a s e p r o c e s s e sl i n kt od a t a b a s ea n dc o m m u n i c a t ew i t he a c ho t h e ra s w e l la ss h a r er e s o u r c e sb ya s s o c i a t i n gt ot h es a m es u b j e c t t h em e t h o di sa p p l i e dt o n e t b u n k e r 2u s i n gt h eo p e ns o u r c ed a t a b a s es y s t e mp o s t g r e s q la n dh a v et h ep r o c e s s e s i nt h eb a c k u ps y s t e mi n t e g r a t e dm o r ee f f e c t i v e l y 韩味华:备份系统中基于数据j 牟面向主题的进程间通信方法研究中1 1 1 人学硕十学位论文 2 0 0 5 5 f u r t h e r m o r e ,t h i sm e t h o dp r o v i d e sg u ig l o b a lv i e w ,a c c e s sc o n t r o lb a s e do nu s e r , m e s s a g er e l i a b l yt r a n s p o r t i n g ,o n e t o o n ea n dm u l t i t o o n ec o m m u n i c a t i o nb e t w e e n a p p l i c a t i o n s ,s t a t e - m o n i t o r i n gf o ra p p l i c a t i o n sa n ds oo n k e yw o r d s :s u b j e c t ,m e s s a g e ,q u e u e ,s t a t e m o n i t o r i n g ,p o s t g r e s q l l l i 讳啉。产:备份系统r r l 基丁数据库面向士题的进利问通信方法研究 巾t l i 大学硕卜学位论文2 0 0 5 - - 5 第1 章引言 1 。1商业各份软件中多个进程通信面临的问题 随着计算机技术的发展,资源的复杂化和网络应用的复杂化,是商业备份与恢 复软件开发技术复杂化的必然。备份= 拷贝+ 管理【2 】,备份的过程就是多个属于 不同角色的应用程序通信协作的过程。在备份系统中多个应用程序通信协作面临以 下问题: 1 备份的过程就是一组应用程序通信协作的过程,每一个应用程序属于一个 角色,完成一个独立的功能,通过共享信息与其他应用程序通信协作。它们分布在 不同的计算机上,甚至跨系统,如何把多个应用程序有机的结合在一起。 2 如何实现资源的合理共享和信息格式的透明化,真正的发挥系统的优越 性: 3 备份系统要求应用程序具有更高的位置透明性和访问的透明性; 4 在一个备份与恢复系统中,多个独立的的应用程序之间的通讯不仅要求可 以同步发送接收,还要求能够实现异步的通讯。而传统的通讯技术一般都要求发送 方和接收方同时在线,而且发送者和接收者还要知道相互的程序的调用接口。而实 际情况是应用程序并不总是同时在线,一方面网络的,硬件的故障往往不可避免; 一方而为了台理的利用系统的资源,某一个应用需要此刻立即执行,而另外一个应 用需要等到下一个时刻执行,所以应用程序之间的异步通讯问题也要得以解决。 5 在备份与恢复系统中,资源的复杂化决定了消息的复杂化,不仅可能是一 条语句,个命令,甚至是x m l 文档。 6 多个进程需要的对系统资源共享,而它们可能在不同机器的不同的进程空 闯,每个应用程序只能关心自己所关联的资源,比如o r a c l e 备份与一液复的代理程 序,不能有权限访问和修改文件系统的消息,而资源在备份与恢复系统中需要统一 管理,这就对进程问的通信提出了更高的要求。 帏昧4 产:备价系统叶1 基j 馓据库面向主越的进程例通信方法研究t ! 生尘学理! 主! :垡堡茎三塑! 二1 7 备份与恢复软件要求应用程序的执行过程对用户透明,如何对消息的执行 过程进行跟踪,甚至控制。 1 2问题解决办法的讨论 应用基丁_ 数据库面向主题的进程间通信方法能够很好的解决以上问题。利用数 据库做为信息存储和转发的平台,可以实现对资源的统一管理,容易给用户一个全 局视图。每一个应用程序部连接到数据库,通过关联相同的主题来实现彼此通信和 共享资源,满足了应用程序之间交互的复杂性。消息以不同的数据结构存储在数据 库中,可以是一个命令,一条语句,甚至文件。利用数据库的存储过程触发器, 规则系统,可以在较小量的增加服务器的负担的情况下,大大的减少应用程序需要 处理的商业产品的应用逻辑。系统中的进程在自己的运行期间,于数据库保持一个 连接,可以做到对应用程序执行的过程进行跟踪,甚至控制。 在传统上不同系统中应用程序传输数据的任务都由程序设计者完成。在传统的 信息传输方式下,信息的发送端和接收端必须同步接收和发送,如果发生了通信故 障,必须重新建立二者之间的连接并重新进行信息的发送。在这种方式下,应用程 序的设计往待要耗去大量的人力物力,而效果并不理想。 在这种情况下,出现了消息队列中间技术,在采用了消息队列中间件技术的情 况下,应用程序之问信息的传送方式如图1 - 1 所示。 2 韩眯1 # :备份系统中基r 数据片面向j 摧的进程问通信方法研究 中| | 人学硕士学位论文 2 0 0 5 5 在采用消息队列中矧件的方式下,信息的发送端和接收端由于有了中间件,程 序设计者可以集中设讣与应用有关的部分,而不同平台之问的传输由中间件完成, 简化了程序设计和维护工作。消息的发送端和消息的接收端不必要时刻处于连接状 态,作为中间环节,中间件的加入使得信息有了暂时存放的地点即队列,使应用程 序之间的通信变得方便。当发牛通信故障时,信息会暂时存放,待故障排除后,信 息将由中间件传输到接收端或接收端从中问中取消息,因此即避免了信息的重复发 送,也避免了信息的丢失。但是作为商业产品的中间件一般都比较昂贵,而且商业 产品还要对中间件进行维护,使系统的结构变的更加复杂,一般中间件作用比较单 一,只负责消息在网络上的传输,不能满足备份与恢复软件对应用程序要求的更高 的集成性,在备份与恢复软件中应用中间件产品,不适合对资源的统一管理,备份 或恢复过程对用户透明。 利用数据库作为信息存储和消息交流的中间平台,应用程序通过关联相同的主 题把消息放入数据库和从数据库中取消息来进行通信。充分利用开源数据库的特 性,更有效的系统的应用程序集成在一起。采用基于数据库面向主题的进程间通信 技术,应用程序之间的消息的传送方式如图1 2 所示 堕气。, 西兰。 教瓤:蕾 翮。9 “、”- 3 帏咏华:备份系统叶1 基于数据库面向土题的进程阃通信方法研究 中山人学硕士学位沦塞兰堂- - 一5 1 。3 论文的主要工作 论文根据商业备份j 恢复软件应用系统开发中所面临的问题和广州市威腾网络 备份容灾系统开发的实际需求,提出了基于数据库面向主题的进程问通信方法,解 决了备份系统中多个进程之间的通信协作问题。第一章提出了目前商、i k 备份软件开 发中多个进程间的通信所需要解决的问题,对问题的解决方法进行了讨论。第二章 分析了消息队列中间件技术和s o c k e t s ( 套接字) 技术以及它们应用在备份系统中的局 限性。第二章阐述了备份系统中基于数据库面向主题的进程间通信方法的思想,详 细介绍了基于p o s t g r e s o l 面向丰题的进程间通信方法的结构,并总结了该方法的 功能特点。第四章介绍了利用p o s t g r e s q l 面向主题的进程间通信方法在广州市威 腾备份与容灾系统中的具体应用。第五章对该文的总结和下一步工作。 4 堑堕! ! ! 鱼塑至竺! 壁! :塑堡! 堕塑羔塑塑垡型塑丝笪生垡旦壅 ! l i 丛三兰堡主堂丝篓苎望! ! 二王 第2 章传统分布式进程间通信的相关技术 2 1 套按字( s o c k e t s ) 2 1 1 引言 在传统上,一个分布式系统中,对于不同节点上或相同节点上进程通信,主要 采用i n t e r n e ts o c k e t 技术来实现。套接字是一种网络a p l ( 应用程序编程接口) ,它 定义了许多函数和例程,用以它开发网络应用程序。套接字接口本意在于提供一种 进程问通信的方法,使得在相同或不同主机上的进程能阻相同的规范进行双向信息 传送,进程通过调用套接字接口a p i 来实现相互之间的通信。套接字叉利用下层 的网络通信协议功能和系统调用实现实际的通信工作。【5 h q 【7 】它们之间的关系如 图3 1 所示: li 刈脊演¥壤4l ( $ o e k 盯s 嘲撂通信:每汪黢并攘 i l f p ? i p 据g j 硝玎i 0 猎艘越似舟蠕 5 帏眯,# :蔷份系统中基r 数据片面向上题的进程问通信方法研究中山点兰堕兰垡笙茎! ! 竺! 二1 2 1 2 套接字的通信域 套接字存在于特定的通信域( 即地址族) 中,只有隶属于同一通信域的套接字才 能建立对话。创建一个套接字时需要指明它的通信域。由于b s d 套接字支持大多 数通信议,所以相对应套接字中的通信域的类型也较多,比较长见的套接字类型 肯: 1 u n i x 域:当创建通信域为u n i x 域的套接字时,它们都有真实的文件 或路径名,这利,套接字只能用在同一台机器上的不同进程之间的通信。 2 网际( i n t e m e t ) 通信域:这种套接字可以用在不同主机上1 i 相关进程之 间的通信。 2 1 3 套接字的类型 由于进程要在分布式的环境下实现进程之间的通信,因此数据需要被传输和接 收。通信中的数据存在于一种字节流或者是数据报格式中。当创建个套接字时, 它的类型决定了如何利用套接字在进程问通信。套接字必须采用相同的类型以便于 通信,基本的套接字的类型丰要有三种: 1 流套接字( s t r e a ms o c k e t ) :这种套接字是可靠的。使用这种套接字时,数据 传送和其发送时的次序一致,是按顺序的,但数据没有备份,因此通常需要某种方 式的错误检查和流控制。流套接字支持双向的通信,并且是面向连接的。也就是 说,两个进程使用套接字建立一个逻辑连接,连接的信息在通信过程中建立于传输 数据之前,并且保持到每次连接结束时。数据作为字节流被传送。 2 数据报套接字( d a t a g r a ms o c k e t ) :数据报套接字是潜在不可靠的。因此使用 这种套接字时,接收到的数据可能会是次序混乱的。数据报套接字支持双向的通 信,似却足无连接的,在发送和接收进程之间没有逻辑连接。每个数据报的发送 和处弹都是独立的。不同的数据报可能会采用不同的路由到达同一个目的地。由于 是无连接的服务,所以这里没有流控制,错误的控制也被减少到最小。数据报的报 文通常比较小而且是大小固定的。 6 怖眯+ # :符份系统巾基r 数据库面向i 题的进程问通信山法研究 中d i 人学硕士学位论文 2 0 0 5 5 3 原始套接字:原始套接字是除t c p 套接字和u d p 套接字之外的另一种背 用的套接字常用于与路由相关的应用,通过原始套接字可以读写| c m p ,i g m p 包, 可以构造自己的i p 包头( 可以发送具有特殊i p 头的u d p 和t c p 包) 等。 2 1 4 套接字的几个重要数据结构 1 套接字数据结构s o c k e t :套接字是由s o c k e t 数据结构表示的,在s o c k e t 结 构中指明了套接字的连接状态、可以对套接字进行的各种操作以及套接字的类型等 信息。 2 描述套接字通用地址的数据结构s o c k a d d r :此结构中指明了套接字所使用 的通信协议以及套接字对应的地址内容。特定于某个协议的套接字地址结构指钊- 都 要强制转换成通用的套接字地址结构指针。 3 描述因特网地址结构的数据结构s o c k a d d r i n :在这个数据结构中描述了套 接字使用的通信协议族,并指明了套接字对应的端口和网络地址等信息。 2 1 。5 套接字的几个重要的系统调用 1 s o c k e t ( ) :创建套接字,并为套接字数据结构分配存储空间。 2 b i n d ( ) :绑定地址,该函数将套接字描述符与相应的套接字地址对戍起 来,以指明套接字将使用本地的哪一个协议端口进行数据传送。对于使用t c p 传 输协议通信方式来说,通信双方需要给自己绑定一个唯一标识自己的套接字,以便 建立连接;对于使用u d p 传输协议,只需要服务器绑定一个标识自己的套接字就 可以了,用户则不需要绑定。 3 c o n n e c t ( ) :请求建立连接,面向连接的客户程序使用c o n n e c t ( ) 来配置套接 字并与远程服务器建立一个t c p 连接。 4 a c c e p t ( ) :让服务器接收客户端的连接请求,在建立好输入队列后,服务器 调用a c c e p t ( ) 函数,然后睡眠并等待客户的连接请求。 7 帏l 竦华:备份系统中基r 数据片面q 土题的进程问通信疗法研究 中山大学硕士学位论文 2 0 0 5 - - 5 5 用十通信的系统调用包括i o c v ( ) 、r e c v f r o m ( ) 、r e c v m s g ( ) 、s e n d ( ) 、 s e n d t o ( ) 、s e n d m s g ( ) ; 6 c l o s e ( ) :关闭套接字 2 1 6 套接字应用在备份系统中的局限性 套接字是一种传统上解决分布式系统中进程间通信的问题,套接字太复杂,使 用起来不是很方便。对于分布式环境下的编程,位置透明性和访问的透明性不可能 得到保证。不能满足不同种类,不同格式的消息传输。应用程序之间如果通信,必 须同时在线。不能有效的集成系统中的应用程序。备份系统是由多个不同角色的进 程组成,它们需要通过某种方式共享资源。而应用套接字技术很难实现多个进程之 间的资源共享。 2 2消息队列中间件技术 2 2 1 引言 中间件 s 9 1 1 1 0 是位于平台( 硬件利操作系统) 和应用之问的通用服务,用于 解决分布异构问题。能够实现不同操作系统平台,数据库和硬件系统平台之问的数 据通信。中间件是基础软件的一大类,属于可复用软件的范畴。 中间件= 平台+ 通信 i d c 的定义是:中间件是一种独立的系统软件或服务程序,分布式应用软件借 助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之 上,鸽:弹计算机资源和网络通信。 中间件解决什么问题,世界著名的咨询机构s t a n d i s hg r o u p 在份研究报告中 归纳了中间件的十大优越性: 缩短应用的开发周期 节约应用的开发成本 减少系统初期的建设成本 8 韩怵+ 产:祷份系统中基 一数据库面向上题的进程m 通信方法研究 巾山大学硕士学位论文 2 0 0 5 5 降低应用开发的失误率 保护已有的投资 简化应用集成 减少维护费用 提高应用的开发质量 保证技术进步的连续性 增强应用的牛命力 面向消息的中间件是中问件范畴中发展的最快的中间件类型之一,尽钎不存 在一个统一的标准及相关的规范,它已经成为一种成熟的技术。 面向消息的中间件( 1 l i e s s a g eo r i e n t e dm i d d l e w a r e ) 指的是利用高效可靠的 消息传递机制进行平台无关的数据交流,并基于数据通信来进行分布式系统的集 成。通过提供消息传递和消息的排队模型,它可在分布环境下扩展进程间的通信, 并支持多种通信协议、语言、应用程序、硬件和软件平台。 面向消息的中间件丰要是解决不同系统或应用之间的通讯问题,利用下层服 向卜层提供安全可靠的消息传递服务。 2 2 2 消息对列中间件的通讯模型 消息中间件的使用简化了应用的开发模式。典型的摹于消息队列中间仆的应用 编程模式是应用程序通过消息队列间接的与对方进行通讯,他们使用队列筲一理器提 供的服务来完成同本地或远地的应用程序的通信,他们只需要将消息交给消息队列 管理器,而不必关系消息如何到达目的地,消息是否丢失等。消息从源应用程序到 目标应用程序的传送过程是由消息中间件来处弹 保障的。采用消息队列模型可以 方便的实现一对一,一对多以及多对多的通讯。 消息队歹l j 中间件一般采用消息队列模型来实现这种异步通讯方式的( 如图2 - 1 所示) ,应用编程者在通讯时所需要的操作基本上只有两种:一是向一个队列发送 一条消息一是从消息队列中取消息,另一个则是从消息队列接收一个消息。消息 是如何传递的,应用程序不关心。 9 韩h 束# :带份系统中鐾丁数据库面向上翘的进程问通信 法研究 中| | i 人学硕士学位论文2 0 0 5 5 图2 2 描述了应用程序在使用消息队列中问件时进行通讯的模型。典型的使 用消息队列中间件进行通讯的应用程序大致按照下述步骤进行: 1 要求通讯的应用程序连接到相应的( 本地) 的消息队列上。 2 发送方发送消息到目的队列,该队列可能处于本机f 本地消息队列1 或远程 计算机( 远程消息队列) 。如果目的消息从列是远程消息队列,消息在到达目的消息 队列前应该安全的存放到本地计算机上。 3 接收程序在消息到达消息队列时开始运行。这个过程通常被成为“触发” ( t r i g g e r i n g ) ;另一种方式是采用所谓的“监听”方式,接收程序对本地的消息队列 进行监听以等待消息到达。显然作为消息队列这种机制应该解决的一种形式是允许 发送方利接收方不同时运行。采用消息队列这种机制应该解决的一种形式是允许发 送方和接收方不同时运行或是接收方没有准备好接收消息的情形,此时消息被存在 队列直到接收程序读出。 4 接收程序在处理完毕一个消息后,可以向消息发送方一个回答消息,回答 消息可能仪仅是一种确认,也可以是通知发送方消息处理的结果数据。 5 通讯双方在消息交换完毕后脱离所连接的消息队列,通讯任务完成。 1 0 帏眯华:耨份系统巾基1 t 数据片面向上题的进程问通信力法训究 巾i l i 大学硕十学位论文 2 0 0 5 - - 5 2 2 3 消息队列中间件的特点 消息队列中间利:对应用开发提供了许多优点简化了应用逻辑,阻使用消息队列 中间件来设计和实现一个应用需要进行多方面的考虑。不同于传统的同步通讯方 式,采用消息队列机制使通讯变成间接的交旺过程,既所滑的异步通讯模式。消息 队列中间件具有以下特点: 1 通讯程序可以在不同的时间运行,程序不在网络上直接通话,而是间接的 把消息放入消息队列。 2 对应用程序的结构没有约束,在复杂的应用场合中,通讯程序之间不仅可 以实现一对一的关系,还可以进行一列多和多对甚至多对多的关系。 3 程序与网络复杂性相隔离。 4 程序将消息放入消息队列或从消息队列中取消息来进行通讯,与次关联的 全部活动,比如维护消息队列,维护程序和队列之间的关系,处理网路的重新肩动 和在网络中移动消息等都是m q m 的任务。 2 2 _ 4 消息队列中间件应用在备份系统中的局限性 一般的消息中间件产品像i b mm q s e r i e s ,b e am e s s a g e q ,只负责消息在网络上 的安全传输,备份系统中通信双方不仅要求消息的安全传输,还要求通过共享资源 彼此关联。消息队列中间件不关心应用程序的执行逻辑,备份系统中应用消息队列 中间件,应用程序的状态信息需要还需要其他的机制维护,增加了软件结构的复杂 性。一般的消息中间件产品,都比较昂贵,不适合面向企业和公司的中小型备份软 件的开发。 t 堕坠堑:鱼丝墨竺! 兰! 墼塑堕亘堕尘璺堕垡型塑些笪生鲨里窒 ! - 生苎三兰堡兰篁堡塞婴! ! 二三 第3 章基于p o s t g r e s o l 面向主题的进程间通信方法 3 。1基本概念 主题( s ) :指一组应用程序通信协作所操作的实体,比如一个备份集,具有唯 一标识。 消息( m ) :应用程序之间通信要传输的数据称为消息,消息与丰题相关联。我 们可以定义消息的内容并对消息进行广义的解释,可以是一个通知,一条命令,甚 至x m 文件。 队列( 0 ) :消息的临时存放地,提供多种数据结构,具体体现为数据库中的 表。 队列管理器( q m ) :指一组服务进程,负责应用程序认证,消息的接收与转 发,消息和队列的管理等。具体的体现为一种关系数据库引擎。 应用程序( p ) :一个具有名称和位置属性,完成一个具体功能并且独立的程 序,具体为数据库的客户端应用程序。 3 2基于数据库面向主题的i p o 方法的主要思想 粟用套接字方式解决备份系统中多个进程之间的通信问题,用户使用起来相对 复杂,并且不能很好的保证位置的透明性和访问透明性。利用消息队列中间件技术 解决了备份系统中的消息传送问题,实现了平台无关的数据交流,但是它不关心应 用程序的逻辑,应用程序的状态信息还需要由其他机制维护。 备份= 拷贝+ 管理,备份的过程就是组应用程序通信协作的过程,每个应 用程序属于一个角色,完成一个特定的功能。 每一个应用程序在一次作业作用到一个主题,完成一个独立的功能。主题的信 息存放在数据库中,应用程序通过将关联主题的消息写入相应的队列和从队列中取 1 2 韩昧1 # :讲份系统中塾r 数据库面埘土地的进程间通信办法研宄中i i i 大学硕十望竺笙兰! ! 堕二! 出关联丰题的消息进行通信协作。作为消息暂存地的队列具有不同的数据结构。每 一应用程序作为一个数据库客户端应用,连接到数据库,接受数据库的认证和限 制。数据库可以负责消息的存储,队列的管理,应用逻辑的封装等,通过把数据库 做为消息存储和交流的平台。使系统中的应用程序更有效的结合在一起。下面我们 以开源数据库p o s t g r e s q l 为例,详细的介绍一下应用该方法的实现原理。 3 3基于p o s t g r e s q l 面向主题的i p c 方法 系统中的每一个独立的应用程序都以t c p i p + s s l 的方式联接到 p o s t g r e s q l ,彼此之间不直接通信。通过将关联一个主题的消息发送到相应的 队列和从相应的对列中取关联某个主题的消息来进行通信协作。它们都接收 p o s t g r e s q l 的认证。做为消息的暂存地的队列,具有不同的数据结构。利用 p o s t g r e s q l 的存储过程,触发器,规则系统实现对消息,队列的管理和应用逻辑 的封装等。根据p o s t g r e s q l 数据库为每一个客户端进程生成一个服务器端进程, 实现对应用程序跟踪,甚至控制。应用程序相瓦通信时所需要的操作基本上有两 种,一是p u t ( s ,m ) 向队列中发送关于丰题s 的消息,一是g e t ( s ,m ) 从队列中取关 于某一卡题的消息,该方法的结构图如图3 - 1 所示: 1 p 1 ,p 2 ,p 3 ,p 4 。为系统中一组彼此独立的应用程序,它们各自完成小 同的功能,通过关联同一个丰:题s 通信协作; 2 应用程序通过t c p i p + s s l 的方式连接到队列管理器( p o s t g r e s q l ) ; 3 应用程序通过p u t ( s ,m ) 将关联主题s 的消息m 放入队列q ,通过g e t ( s ,m ) 将关联主题s 的消息m 从q 中取出; 4 对列管王单器( p o s t g r e s q l ) 通过一定的规则决定是否允许此应用程序 连接到对列箭理器,负责消息的接收和转发,队列的管理等: 5 q 1 ,0 2 ,q 3 ,q 4 做为存放消息的队列,为了满足不同消息的格式它 们具有不同的数据结构; 6 t r j g g e r r u l e ,s t o r a g ep r o c e d u r e 是队列管弹器的内部机制,负责应用逻辑的 封装等: 1 3 韩昧# :备份系统中丛r 数据库面向卜题的进程问通信方法研究 巾l lj 大学硕士学仃论文 2 0 0 5 - - 5 7 通过应用程序p m o n i t o r ( p ( s ) ) 和它的数据结构m o n i t o r _ p r o c e s sq ,对系统 巾的席用程序进行状态监控; 3 4 实现目标 在备份系统中采用基rp o s t g r e s q l 面向主题的i p c 的方法,实现对资源的统 管理,给用户提供一个全局g u i 视图;使应用程序通过将关联一个丰题的消息 放入队列和将消息取出来实现的通信,满足了备份系统中应用程序之间交e 的复杂 性;实现对应用程序的访问认证;实现消息的可靠性传输;实现应用程序之间一对 一,一对多的通信;实现基于视图的数据隔离,使一个用户只能访问和操作自己的 消息;实现对应用程序执行过程的跟踪,甚至控制:使系统中的应用程序更有效的 结合在起。 1 4 帏昧华:帑份系统中基 数据库面向上题的址程州通信方法研艽 中山大学硕十学位论文 ! 殳堕二1 3 5 为什么选择p o s t g r e s q l 3 5 1 p o s t g r e s q l 数据库管理系统简介 p o s t g r e s q l 是一种特性非常齐全的自由软件的对象一关系型数据库管理系统 ( o r d b m s ) 1 4 1 ,它的很多特性正是当今许多商业数据库的前身。也是目前功能最 强大,特性最丰富和最复杂的自由软件数据库系统。有些特性甚至连大型的商业数 据库都不具备。起源于伯克利佃s d ) 酐j 数据库研究计划,目前已经衍牛成一项国际 开发项目,并且有非常广泛的用户。 p o s t g r e s q l 的特性覆盖了s q l 一2 s q l - 9 2 和s o l 一3 s q l 一9 9 ,首先,它包括了可 以说是甘前世界上最丰富的数据类型的支持,其中某些数据类型连商业数据库都不 具备,它是全功能的自由软件数据库,有很长时间,p o s t g r e s q l 是唯一支持事 务、子查询、多版本并发控制系统,数据完整性检查等特性的唯一的一种自由软件 的数据库管理系统。p o s t g r e s q l 采用的是比较经典的c s ( e l i e n t s e r v e r ) 结构,也就 是一个客户端对应一个服务器端守护进程的模式,这个守护进程分析客户端来的查 啕请求,生成规划树,进行数据检索,把最终结果格式化输出后返回给客户端。为 了便于客户端的程序的编写,由数据库提供了统一的客户端c 接l 】,并且不同的 客户端都是源于这个c 接口,比如o d b c ,j d b c ,p y l o n ,p e r l ,t c l ,c c + + ,e s q l 等, p o s t g r e s q l 几乎支持所有类型的数据库客户端接口。 3 5 2 同类数据库相比较 目前的丰要的商业关系数据库有:o r a c l e 、s y s b a s e 、d b 2 、i n f o r m a x 等,自由 软件数据库有:p o s t g r e s q l 、m y s q l 等。商业数据库一般都比较昂贵,不适合面向 企业利公司的中小型备份软件的开发。而自由软件数据库就成了首选,比较流行的 自由软件数据库有p o s t g r e s q l 和m y s q l 数据库。下面的表是p o s t g r e s q l 与其他数据 库的比较f 1 6 】如下表3 1 : 表3 1 同类数据库比较 1 5 堂坠兰! 鱼丝墨笙! 璺王墼塑堕堕塑尘塑堕些堡塑望堡生! i 塑室 ! 些查堂堡主堂笪堡茎! 唑二三 p o s t g r e s q l c l r a c l e m s s q lm y s q l o p e ns o u r c e y e s n on oy e s l i n u x y e sy e s n oy e s f r e e b s dy e sn on o y e s w i n d o w sy e sy e s y e sy e s s u ns o l a r i s y e sy e sn on o m a c 0 s xy e sn on on o l b m a i xy e sy e sn on o u n i x u xy e sy e sn on o a c i dy e sy e sn on o s t o r e dy e sy e sy e sn o p r o c e d u r e s t r i g g e r s c u r r e n ty e sy e s n on o t r a n s a c t i o n s o l a n s i9 9 y e sn o n on o s q l a n s i9 2y e sy e sy e sn o u n l i m i t e dn u m b e ry e sn on oy e s o f u s e r s r e f e r e n t i a ly e s y e sy e sn o i n t e g r i t y t r a n s c t i o n sy e s y e sy e sn o o d b cf r e ey e sy e sy e s y e s 每一种数据库都有自己的优点,p o s t g r e s q l 为传统数据库应用提供了相当全 面的特性,而m y s q l 则更关注于基于w e b 应用程序的快速性能表现。p o s t g r e s q l 具有独特的特性和普遍的实用性,比较适合中小型企业的软件产品开发,一些重要 的特性包括,低成本,容易安装,可靠性,可测量性,标准支持,性能可扩展性, 具体的说p o s t g r e s q l 具有了一下优点: 1 对事务的支持方面p o s t g r e s q l 比m y s q l 经历了更为彻底的测试。 1 6 帏眯1 拉:钎份系统巾基于数据库面向士题的进程划通信,j 法研究 巾山大学硕士学位论文 2 0 0 5 - - 5 2 对存储过程的支持,m y s q l 不支持存储过程,这是m y s q l 推广应用的最人 障碍。mp o s t g r e s q l 支持不同接f 1 的存储过程,对丁- 一个严格的商业应用来说,作 为数据库本身,有很多的商业逻辑存在,在较少的增加服务器负担的情况下,对这 些应用逻辑进行封装,避免了网络上大量的原始的s q l 语句的传输。 3 对视图的支持,p o s t g r e s q l 视图的存在可以最大限度的利用数据库服务器内 在的优化机制。这是m y s q l 的权限系统所无法实现的。 4 支持热备份,p o s t g r e s q l 提供在线热备份,这也是备份与恢复软件所要求 的。m y s q l 不支持热备份。 5 p o s t g r e s q l 是用c 语言写的,在不同的u n i x 平台上移植非常方便,并且提供 了存储过程,触发器的c 接口。 6 对约束支持。约束的作用更多地表现在对数据完整性的保证上,合理地使 用约束,也可以减少编程的工作量。 7 支持子查询,使用了查询的s q l 语句与使用带条件的多表连接相比具有更 高的程序可读性。 8 p o s t g r e s q l 可以更方便的使用u d f ( 用户定义函数) 进行扩展。 3 5 3 应用程序操作接口 系统中的每一个应用程序作为p o s t g r e s q l 客户端程序连接到服务器,向 p o s t g r e s q l 服务进程发送命令请求,并且获得返回结果。这个功能在由 p o s t g r e s q l 的c 应用程序接口l i b p q 实现的,p o s t g r e s q l 有丰富的客户端应用接 口,l i b p q 库同时也是是p s q l ( 客户终端) 、1 i b p q + + ( c + + ) 、l i b p g t c l 、p e r l 、e c p g 应用 接口底层引擎,使用l i b p q 的前端程序必须包括头文件l i b p q h 并且于l i b p q 库连 接。客户端应用程序通过l i b p q 连接到p o s t g r e s q l 服务器的示意图【3 】【4 】如图3 - - 2 所示我们在这里只是简单的介绍一下几个常用的a p i : p q c o n n e c t d b ( ) :连接到p o s t g r e s q l 服务器 1 7 b 昧华:需价最统中基丁数据库面向主默的进程m 通信方法研究 中山人学砸士学位论文 2 0 0 5 - - 5 接收参数:数据库连接串( k e y = v a l u e ) 返回结果:p g c o n n ( 数据库的连接对象) p o e x e c ( ) :向p o s t g r e s q l 发送查淘请求 接收参麴:p g c o n n 和c o m m a n d ( 命令字符串) 返回结构:p g r e s u l t 指针或n u l l 指针 p q n o t i f y ( ) :从一个来自服务器的未处理的信息列表中返回下一条通知 p q c l e a r ( ) :释放由p g r e s u l t 占用的空间 p q n t u p l e s ( ) :返回结果的记录数 p o g e t v a l u e ( ) ;返回对应行列的值 p o f i n i s h ( ) :释放到p o s t g r e s q l 的连接 1 8 帏眯华:符份系统巾基丁数据库面向主题的进程叫通信方法研究巾l h 大学硕士学位论文 2 0 0 5 - - 5 3 6 基于p o s t g r e s o l 面向主题的i p c 方法的功能特点 3 6 1 消息的属性以及可管理性 消息的类型没有要求,p o s t g r c s q l

温馨提示

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

评论

0/150

提交评论