(计算机应用技术专业论文)东软his消息系统的设计与实现.pdf_第1页
(计算机应用技术专业论文)东软his消息系统的设计与实现.pdf_第2页
(计算机应用技术专业论文)东软his消息系统的设计与实现.pdf_第3页
(计算机应用技术专业论文)东软his消息系统的设计与实现.pdf_第4页
(计算机应用技术专业论文)东软his消息系统的设计与实现.pdf_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

: j iylllllllliillll8lllfjl4lllfl2lllllillihir8lllrf2flllll at h e s i si nc o m p u t e r a p p l i c a t i o nt e c h n o l o g y d e s i g na n di m p l e m e n to fn e u s o f th i s m e s s a g es y s t e m b y p a nt i e j u n s u p e r v i s o r :p r o f e s s o rl uz h a o x i a n o r t h e a s t e r nu n i v e r s i t y j u n e2 0 0 8 ,l毒 一 + 一 修; j 、 , 本人声明,所呈交 取得的研究成果除加以 或撰写过的研究成果,也不包括本人为获得其他学位而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确 的说明并表示谢意。 学位论文作者签名:跏、 日期:埘、幻d 学位论文版权使用授权书 本学位论文作者和指导教师完全了解东北大学有关保留、使用学 位论文的规定:即学校有权保留并向国家有关部门或机构送交论文的 复印件和磁盘,允许论文被查阅和借阅。本人同意东北大学可以将学 位论文的全部或部分内容编入有关数据库进行检索、交流。 作者和导师同意网上交流的时间为作者获得学位后: 半年口一年口一年半口两年口 学位论文作者签名:谢侈、 签字日期:劝扩、囝d 黧:红 导师签名:之:,夕一 答字日期:二。犷,渺罨、6 、白o # 东北大学硕士学位论文 东软s 消息系统的设计与实现 摘要 本文所设计和实现的系统是东软h i s ( h o s p i t a li n f o r m a t i o ns y s t e m ) 中的一个子 系统,该子系统为东软h i s 中各个子系统的消息传递搭建了一个高效和可靠的消息 传递桥梁,以此来减少东软h i s 中部分界面的操作复杂性,减少系统对数据库的访 问量以及减少应用程序对网络资源的占用,提高东软h i s 的运行效率。 本文分析了东软h i s 的体系架构和运行环境,引入消息中间件m s m q ( m i c r o s o f t m e s s a g eq u e u e ) 来开发一个子系统,在该子系统中使用m s m q 的h t t p 传输功能 解决消息在i n t e m e t 上的传输,使用实时消息群发来解决消息的群发,以及使用触发 器功能解决通知通告的下发、关闭东软h i s 、重启东软h i s 等等。该子系统除了使 用m s m q 外,还使用富文本格式来解决图文混排消息的发送,使用x m l 存储历史 消息等等。在系统开发上使用了v s n e t2 0 0 5 作为开发工具,它强大的开发能力和 对m s m q 极好的融合为消息系统开发创造了有利条件。 消息系统在东软h i s 中的应用不仅提高了运行效率,而且简化了用户操作,并 增强了东软h i s 的功能。 关键词:m s m q ;触发器;富文本格式;h 1 r p 传输 l i t 湃 f , 一 , 东北大学硕士学位论文 a b s t r a c t d e s i g na n di m p l e m e n t o fn e u s o f th i s m e s s a g es y s t e m a b s t r a c t t h es y s t e mt h a ti m p l e m e n t e da n dd e s i g n e di nt h i st h e s i si sas u b s y s t e mo fn e u s o f lh i s ( h o s p i t a li n f o r m a t i o ns y s t e m ) ,i tb u i l da ne f f i c i e n ta n dr e l i a b l eb r i d g eb e t w e e no t h e r s s u b s y s t e m so f n e u s o f ih i s t h i ss u b - s y s t e mc a nr e d u c ec o m p l e x i t yo fo p e r a t i o ni ns o m e n e u s o f lh i si n t e r f a c ea n dq u a n t i t yo fc o n n e c t i o nt od a t a b a s ea n dn e t w o r kr e s o u r c ea n d i m p r o v e s n e u s o f ih i se f f i c i e n t i nt h et h e s i s ,a n a l y z i n gt h ea r c h i t e c t u r ea n dr u n n i n ge n v i r o n m e n t so fn e u s o f ih i s ,a n d i n t r o d u c i n gm s m q ( m i c r o s o f tm e s s a g eq u e u e ) t h a ti s am o m ( m e s s a g e o r i e n t e d m i d d l e w a r e ) t od e v e l o pas u b s y s t e m u s i n gm s m qh 耵pt r a n s p o r tf e a t u r e st or e s o l v e t h ep r o b l e mt h a tm e s s a g et r a n s p o r ta ti n t e r n e t ,u s i n gm s m qr e a l - t i m em e s s a g i n gm u l t i c a s t f e a t u r e st or e s o l v et h ep r o b l e mt h a tm u l t i c a s tm e s s a g e ,a n du s i n gm s m q t r i g g e rf e a t u r e s t or e s o l v et h ep r o b l e mt h a td i s t r i b u t en o t i c e sa n db u l l e t i n ,c l o s en e u s o f ih i sa n dr e s t a r t n e u s o f ih i sa n ds oo n b e s i d e sm s m q ,u s i n gl 玎f ( r i c ht e x tf o r m a t ) t ot r a n s p o r t m e s s a g e st h a tc o n t a i nt e x ta n dp i c t u r e s ,u s i n gx m l t os a v eh i s t o r yr e c o r d e r sa n ds oo n a d d i t i o n a l l y , u s i n gv s n e t2 0 0 5a sd e v e l o p m e n tt o o lt od e v e l o pt h es u b - s y s t e m ,i ts t r o n g d e v e l o p m e n ta b i l i t y a n d m s m qi n t e g r a t i o n t h a te r e a t ef a v o r a b l ec o n d i t i o n sf o r d e v e l o p i n gt h es u b s y s t e m t h e a p p l i c a t i o no fm e s s a g es y s t e mt h a tn o to n l yi m p r o v e sn e u s o f ih i se f f i c i e n t l y , b u ta l s om a k e so p e r a t i o ne a s i l ya n de n h a n c e st h en e u s o f ih i sf u n c t i o n s k e yw o r d s :m s m q ;t r i g g e r ;r t f ;h 1 v r pt r a n s p o r t 东北大学硕士学位论文 目录 目录 。 独创性声明i 摘要i i a b s t r a c t 。l i l 第1 章引言l 1 1 研究背景与意义1 1 1 1 研究背景l 1 1 2 研究目的与意义1 1 2 技术选择与国内外发展现状2 1 3 论文研究内容及结构安排3 第2 章应用技术介绍5 2 1m s m q3 0 介绍5 2 1 1m s m q3 0 的新特性5 2 1 2m s m q3 0 的改进特性13 2 1 3m s m q3 0 功能特性l4 2 1 4 消息队列的直接格式名1 7 2 1 5m s m q 消息队列的类型1 7 2 2c 撑n e t 2 0 0 5 中相关技术1 8 2 2 1c 群n e t2 0 0 5 中的m s m q 18 2 2 2j 下则表达式- 一2 0 2 2 3r t f 2 1 2 3 本章小结2 2 第3 章消息系统总体设计2 3 3 1 东软h i s 概述2 3 3 2 东软h i s 总体架构及分析2 4 3 2 1 总体架构介绍2 4 3 2 2 总体架构中的消息系统2 8 3 3 消息系统设计目标及功能一2 9 3 4 消息系统分析与设计3 0 i v 东北大学硕士学位论文f l 录 3 4 1 消息系统运行环境及运行模式分析与设计3 0 3 4 2 消息系统的消息传递流程分析与设计3 0 3 4 3 消息系统的功能模块设计3 2 3 4 4 消息系统总体结构3 3_ 3 4 5 消息系统中消息类型分析与设计3 4 3 5 本章小结:3 6 第4 章消息系统详细设计与实现3 7 4 1 底层操作设计与实现3 7 4 1 1 消息发送的设计与实现3 7 4 1 2 消息接收的设计与实现3 8 4 1 3 辅助类的设计与实现3 8 4 2 数据库及访问类设计与实现4 0 4 2 1 数据库的设计- 4 0 4 2 2 数据库访问类设计与实现4 2 4 3 界面设计与实现4 2 4 3 1 用户控件和组件设计与实现4 2 4 3 2 窗口设计与实现4 3 4 4 消息系统服务的设计与实现5 3 4 5 本章小结5 4 第5 章消息系统的应用举例- 5 5 5 1 东软h i s 挂号系统中的消息系统应用一5 5 5 2 东软h i s 中消息系统的其它应用介绍5 7 5 3 消息系统的实际应用5 8 5 4 本章小结一5 8 第6 章结论5 9 6 1 总结:一5 9 j 6 2 展望一6 0 参考文献6 3 致谢6 6 v 东北大学硕士学位论文第1 章引言 第1 章引言 h i s 是我国医疗卫生事业改革中的重要一环,它对我国的医疗改革起着至关重要 的作用,它的使用提高了医疗行业的工作效率,使患者的信息得到有效的共享。随 着我国医疗卫生事业的改革,h i s 也在一步一步的成长。东软h i s 在全国有很高的 市场占有率,它的每一步成长都见证了我国医疗卫生事业改革的成果,东软h i s 也 在实践中逐步得到完善。 1 1 研究背景与意义 1 1 1 研究背景 在东软h i s 中,有时需要刷新控件,例如当一个患者挂号后或医生进行相应的 操作后转到下个医生站( 护士站) 时,下一个医生站( 护士站) 的医生( 护士) 如 果要得到患者的信息,就要刷新患者列表,以往是手动或系统自动刷新,手动刷新 使得系统变得不够灵活,增加了系统的操作复杂性,而自动刷新又会占用太多的系 统资源,刷新的频率难以掌握,有时的刷新则是无谓的空操作,得不到任何数据。 另外在东软h i s 中需要一个发布通知通告和文件传输,以及操作东软h i s 执行命令, 如关闭东软h i s 、重新启动东软h i s 等等的消息子系统。 在满足上述要求的同时,由于东软h i s 支持两层的c s ( c l i e n t s e r v e r ) 系统, 也支持三层的c s s ( c l i e n t s e r v e r s e r v e r ) 系统,其中两层系统主要用于局域网集中 式系统,三层系统是利用r e m o t i n g 技术实现的跨越i n t e m e t 的分布式系统,这就要 求开发的消息系统既要支持两层的集中式模式也要支持三层的分布式模式。 1 1 2 研究目的与意义 通过研究来设计和实现一个消息系统,实现消息的实时或异步、安全可靠和基 于优先级的消息传递,并将此系统应用到东软h i s 中,以解决东软h i s 中控件的异 步刷新、通知通告及时发布、文件的可靠性传输和客户端用户的在线交流,以及重 新启动东软h i s ,修改w i n d o w s 注册表信息等,进一步完善东软h i s 功能。 消息系统的实现可以减少东软h i s 的操作复杂性、响应时间、网络流量以及对 数据库的访问频率,从而提高客户端用户的工作效率和东软h i s 的运行效率,进一 步提升东软h i s 的性能。 东北大学硕士学位论文第1 章引言 1 2 技术选择与国内外发展现状 为了实现系统的快速开发,保证系统的可靠性和高效性,系统采用面向消息的 中间件服务进行开发,这种面向消息的中间件服务一般被称为消息队列系统 ( m e s s a g e q u e u i n gs y s t e m ) ,或者面向消息的中间件( m o m ,m e s s a g e o r i e n t e d m i d d l e w a r e ) 【。 消息队列系统是中间件产品的一个分类,它以其独特的优势为各种分布式应用 的开发注入了强大动力,极大地推动了应用系统集成的发展。它主要负责建立网络 通信的通道,进行数据或文件的收发。其优点在于能够在客户和服务器之间提供同 步或异步的连接,并且在任何时刻都可以将消息进行传送或者存储转发,这要比远 程过程调用( r p c ,r e m o t ep r o c e d u r ec a l l ) 更进一步的原因。另外消息中间件不会占 用大量的网络带宽,可以跟踪事务,并且通过将事务存储到磁盘上实现网络故障时 系统的恢复。 消息队列系统的重要特性之一是通常只能确保发送者发出的消息最终能够插入 到接收者的队列中,并不保证消息到达的时间,甚至不保证消息一定会得到读取。 这完全由接收者决定,这使得消息队列系统具有松散耦合的通信方式,消息进入接 收者的消息队列时,接收者不必处于运行状态,同样,当发送者所发送的消息被接 受者从消息队列中取出的时候,发送者也不必处于运行状态。发送者和接收者可以 彼此完全独立的运行。事实上,某个消息一旦进入到队列中,就将一直保留到从队 列中移出为止,而与其发送者或接收者是否正在运行无关,根据发送者和接收者运 行状态的不同,可分为4 种组合方式【1 1 ,如图1 1 所示。 发送者正在运行 接收者正在运行 : 发送者处于 发送者正在运行 i 非活跃状态 接收者处于 :接收者上e 在运行 非活跃状态 : 发送者处于 非活跃状态 接收者处于 非活跃状态 图1 1 消息队列的j i :作状态 f i g 1 1m e s s a g eq u e u e sw o r ks t a t e 消息队列系统适用于需要在多个进程之间进行可靠的数据传送的分布式环境, 它的一个重要作用是可以实现跨平台操作,为不同操作系统上的应用软件集成提供 一2 一 毋斟 刮i 抄 毋幽 够内上抄 东北大学硕士学位论文第1 章引言 服务。典型和较成熟的消息中间件产品有m i c r o s o f t 的m s m q 、i b m 的m q s e r i e s 和 t a l a r i a 的s m a r t s o c k e t 。我国中间件厂商的发展极其迅速,东方通、中创、金蝶,科 诺、信雅达和黎明网络等众多中间件厂商都已开发出非常优秀的消息中问件产品。 为了和东软h i s 的实施环境( 大部分采用w i n d o w s 系列操作系统) 很好的结合, 消息系统的丌发采用了微软的m s m q 。微软的m s m q 从n t 时代的1 0 已经发展到 了w i n d o w sx p w i n d o w ss e r v e r2 0 0 3 中的3 0 ,从1 0 的局域网的简单消息传递发展 到可以利用i i s 在i n t e r n e t 上传递可靠信息、智能路由和基于优先级的3 0 。尽管目前 已发展到w i n d o w sv i s t a 系列的4 0 ,但由于v i s t a 操作系统尚未大量普及,因此消息 系统仍采用m s m q 3 0 。 m s m q 的各项高性能使很多国内外企业获得了意想不到的收益,2 0 0 2 年纳斯达 克研制开发了s u p e r m o n t a g e 系统,其核心是n a s d a qp r i m e ,在该系统中的询价数 据通过m s m q 分成六路进入n a s d a qp r i m e ,该系统中每秒有7 , 9 0 0 笔询价,纳斯 达克软件工程及市场信息系统部副主席k e nr i c h m o n d 认为纳斯达克比在其它传统 研发平台上能节省更可观的成本,同时也提高了系统的研发力【2 】。除此之外,国外好 多企业的系统中应用了微软的m s m q ,如a v a n a d e 公司。 国内对消息中间件m s m q 也有广泛的应用,广东省第二人民医院,h i s 内部采 用m s m q 通讯方式;光华冠群软件有限公司的e a s y s p 系统中也应用了微软的 m s m q ,公司总经理许尔俊表示,在e a s y s p 产品实现过程中大量使用x m l ,而 w i n d o w s 平台提供的可扩展的x m l 支持使这一切易于实施,在保证了良好的性能的 同时,w i n d o w s 平台所集成的m s m q 省去了大量的开发时间和麻烦,可以更好地关 注系统的业务逻辑实现。w i n d o w s 平台的这种集成特性是其它平台所无法比拟的【3 】。 通过上述实例的简单介绍,很好地认证了m s m q 的优越性,以及m s m q 和 w i n d o w s 系统集成带来的卓越效益。 另外,微软出品的v s n e t 2 0 0 5 中c 撑n e t 很好的集成了对m s m q 的开发,使 开发效率得到快速的提升,并且生成的c o m 组件具有很好的复用性,可以一次编码, 多处使用。利用c 撑n e t 中对r t f 文档格式和正则表达式的支持来解决消息传递中 图文混排所遇到的问题。 1 3 论文研究内容及结构安排 本文的研究和撰写是基于东软h i s 中消息子系统的设计与实现来完成的。消息 子系统是一个基于m s m q 消息中间件来设计和实现的系统,在消息系统的设计与实 现中本人主要承担整个消息子系统的设计与实现,主要工作是对消息子系统的需求、 运行环境以及消息系统所基于的东软h i s 总体架构进行分析,从而确定消息系统的 实现目标以及采用的相关技术,完成消息系统的设计和编码实现。 一3 一 东北大学硕士学位论文第1 章引言 论文的结构安排如下: 第1 章主要介绍了消息系统的产生背景和开发意义,并介绍了在系统开发中使 用消息中问件m s m q 的发展及国内外应用的现状。 第2 章介绍了在论文中应用到的相关技术,主要是消息系统使用的消息中间件 m s m q 的各种功能特性,以及用到的其它技术r t f 和j 下则表达式。 第3 章介绍了东软h i s 总体框架,并对东软h i s 的总体框架作以分析,结合消 息系统的产生背景,产生了消息系统的功能需求,并确定消息系统的最终实现目标, 完成对消息系统的总体设计。 第4 章根据消息系统的总体设计,对消息系统按照底层操作、数据库操作和界 面3 部分的详细设计与实现进行了阐述。 第5 章主要介绍了消息系统在东软h i s 中挂号时的应用,以此来展示消息系统 在东软h i s 中的作用,并对其它应用做了简要介绍。 第6 章是对本文的总结,并在总结的基础上对未来消息系统在功能上做了展望, 提出了进一步要完善和加强的工作。 一4 一 i 东北大学硕士学位论文第2 章应用技术介绍 第2 章应用技术介绍 东软h i s 消息系统是在v s n e t2 0 0 5 环境下使用c 语言丌发实现的,该开发环 境很好的集成了m s m q ,m s m q 从1 0 发展到3 0 的历程中各方面功能有了很好的 完善和加强,如对工作组模式的改善以及新加入的对h t t p 传输协议的支持等等。 另外在c 撑n e t 开发环境中对消息传递过程中使用到的r t f 技术和正则表达式有很 好的支持。本章将对m s m q 的各方面功能以及消息传递过程中使用到的r 1 陌技术和 正则表达式作以简要介绍。 2 1m s m 03 0 介绍 m s m q 是微软视窗操作系统自带的消息中间件,它从n t 时代的1 0 已经发展 到了w i n d o w sx p w i n d o w ss e r v e r2 0 0 3 中的3 0 ,在w i n d o w s 操作系统下可以通过 安装m s m q 系统组件获得m s m q 。 2 1 1m s m 03 0 的新特性 ( 1 ) 基于h t t p 的消息传输 m s q m3 0 允许开发者使用h r r p 作为消息的传输协议,这一新增特点使得开发 者在开发应用时可以选择新增的h t l l p 协议或者以前的t c p 协议中某种协议作为消 息的传输协议【7 】。 m s m q3 0 提供了对以u r l 命名的队列支持,它能够生成s r m p ( s o a pr e l i a b l e m e s s a g ep r o t o c 0 1 ) 消息,s r m p 是以x m l 为基础的消息协议,使用它可以创建高服 务质量( q o s ,q u a l i t yo f s e r v i c e ) 的消息,这种消息可以通过h 1 v r p 传输,或者授权 的h t t p s 传输。 h 1 v r p 消息可以发送到在公司内部网络中的本地计算上的队列,也可以发送到在 广域网上的队列。要通过h 丁r p 发送消息的计算机必须安装消息队列的h t r p 支持 组件和i i s 。h 卅r p 消息的目的队列的直接格式名包括目标队列的u r l 地址、虚拟目 录名称和消息队列名称。默认的虚拟目录名称是m s m q ,但是消息队列可以通过i i s 注册不同的虚拟目录1 4 j 。 发送端应用能够控制和h t t p 相关的设置,例如使用h r r p 代理服务或者使用 h t t p s 进行安全通信。在接收端,m s m q3 0 和l i s 紧密的结合在一起,应用可以映 射特殊的u r l 到m s m q 队列,任何发送到这个u r l 的消息都会利用m s m q 将消 息自动插入到可用的消息队列中,基于m s m q 的应用可以使用标准的m s m qa p i 一5 一 东北大学硕士学位论文 第2 章应用技术介绍 获取这些消息及处理这些消息。 很多企业或公司通过代理服务器连接到广域网上,用来调度传出的消息,并且 通过防火墙对传入消息进行过滤以保护内部网络,消息队列利用h t t p 代理连接到 u r l 地址上来传出h r r p 消息,消息队列需要代理服务器的名字和可用的端口,如 果传输h t t p 消息,一般要求开放8 0 端口,如果传输h t t p s 消息,一般要求开放 4 4 3 端口。 当h 1 v r p 消息在内部网或广域网上传输时,企业内部计算机的网络名和消息队 列名要求对发送者开放。m s m q3 0 可以通过配置文件让发送的消息穿越防火墙而到 达不同局域网内的主机,m s m q3 0 将一个h t t p 消息根据包含在 中的 子 元素中的逻辑地址重定位到相关的物理地址,这种对应关系可以通过手动创建包含 的x m l 映射表来标明,每个 元素包含0 个或多个 子元素,每个 子元素包含一个 和 子元素,每个 元素描述了由 指出的逻辑地址到由 指出的物理地址的映射 关系。这个x m l 映射文件必须存储在w i n d o w s k s y s t e m 3 2 h n s m q h - n a p p i n g 文件夹下, 并且每次更新这个文件夹都要重新启动m e s s a g e q u e u e 服务,才能使更新生效2 6 1 。映 射表内容示例如下: h t t p :l o c a l h o s t m s m q l o g i c a l q u e u e h t t p :l o c a l h o s t m s m q p r i v a t e $ p h y s i c a l q u e u e 使用h t t p s 发送消息时,可以通过在发送者和接收者之问建立s s l ( s e c u r e s o c k e t sl a y e r ) 连接实现可靠通信,发送者被认为是s s l 的客户端,而接收者被认 为是s s l 的服务器端。s s l 安全协议提供了数据建立、服务器认证、消息完整性以 及可选的客户端的t c p i p 安全认证。使用h t t p s 传输消息,需要建立安全认证,一 获取安全证书的方法如下,一是到c a ( c e r t i f i c a t ea u t h o r i t y ) 中心申请证书,这需 要一定的费用,二是本机获取,在w i n d o wx p 的i i s 低于6 0 的情况下可以到微软 寸 的下载中心下载文件s s l d i a g n o s t i c s ,目前的版本为1 1 ,安装后,在s s l d i a g n o s t i c s 主窗口中右键单击w e b 站点层( 显示为【w 3 s v c 】) ,然后单击c r e a t e n e wc e r t ,这种方式不能通过这个工具自定义证书,只能安装自动生成的证书,用于 测试【6 】。在w i n d o w ss e r v e r2 0 0 3 下可以通过安装“安全证书”组件来获取证书。 ( 2 ) 对w e b 农场和防火墙支持 为了增强w e b 服务器的可用性,用户通常开发一个前端到后端的w e b 农场, 一6 一 东北大学硕士学位论文第2 章应用技术介绍 w 曲农场是一组独立的不进行任何共享的服务器组合,所有通过h t t p 传入的请求 都需要通过它们转发,它可以利用n l b ( n e t w o r kl o a db a l a n c i n g ) ,c i s i c o l o c a l d i r e c t o r ,n a t ( n e t w o r ka d d r e s st r a n s l a t i o n ) 和d n s ( d o m a i nn a m es y s t e m ) 等典型的轮叫调度方法来选择哪个服务器来为传入的h t t p 请求服务,在这种情况 下,可能会使同一个源点的两个成功的h t t p 连接被发送到不同的服务器上,这样 使端到端的可靠消息的状态一致性变得复杂。考虑下面的一个情形,一个m s m q 应 用发送了两个消息,这两个消息要求有先后次序到到达指定的u r l ,第一个消息可 能被发送到w e b 农场中的服务器a 上,而第二个消息可能被发送到w e b 农场中的服 务器b 上,在这种情况下,因为服务器b 不知道第一个消息被发送到了服务器a 上, 所以在服务器b 上的m s m q 服务将处理第二个消息而不是拒绝,这使从源点发送的 消息因失去了先后顺序而无法正常使用。 为了解决上述问题,m s m q3 0 引入了一个新概念“翻转消息代理”,翻转 代理功能应用到w e b 农场中的每个服务器上,每个翻转代理为每个队列的外部u r l 和内部u r l 建立一个映射表。每个到达w e b 农场的消息,m s m q3 0 将根据它的外 部u r l ,查找映射表得到内部u r l ,然后将消息发送到内部u r l 处,如图2 1 所示。 事实上,翻转消息代理不考虑消息的最终目的地,端到端的可靠消息协议并没有在 翻转消息代理层实现,而是实现在消息的最终目的地。 h - r r p 代理 l v wx x xe o m ) 图2 1w e b 农场的翻转消息代理 f i g 2 1w e b f a r m sr e v e r s em e s s a g ep r o x y 一7 一 东北大学硕士学位论文 第2 章应用技术介绍 翻转消息代理同时也有极其重要的安全角色,它处于企业应用的前端,所有的 h t t p 请求都在这里转发,在这罩可进行安全设置,例如只有通过h t t p s ,或者消 息的发送者是授权的,或者选择其它的安全准则的消息才能被转发,这样确保只有 授权的消息才能进入到企业内部网络1 7 】。 m s m q 利用h r r p 作为传输协议可以在不需要对m s m q 作特殊的防火墙配置的 情况下穿越防火墙。实现任何地方可以使用h 1 r p ,m s m q 消息就可以通过。 ( 3 ) 实时消息多播 在m s m q3 0 中一对多的机制为应用开发者提供了一套基础的工具来开发复杂 消息发白系统,m s m q3 0 提供了基于l p 的消息多播机制,它使用实际通用组播协 议p g m ( p r a g m a t i cg e n e r a lm u l t i c a s t ) 协议,它是一种可靠传输协议,用于需要从 组播源到组播接收端的有序或无序、无重复的组播数据传送的应用程序。p g m 主要 是为有基本可靠性需求的组播应用程序提供的一种可行解决方案,而不是用于有复 杂、有序、一致和健壮性需求的组播应用程序。它的中心设计目标是为可扩展性及 网络效能提供简单化操作,p g m 并不了解组成员,它只是根据纯粹的本地策略,由 源地址预先在一个传输窗口提供可靠的组播数据发送。从接收端加入组直到它离开, 在源传输窗口需要提供可靠传送。p g m 确保组中的接收端可以收到来自传输和修复 的所有包,或可以发现到不可修复的数据包丢失。p g m 支持一个组播组中的任何数 目的源地址,每一个由全球性的唯一传输会话标识符来识别。但是由于这些源会话 彼此之间完全独立操作,所以需要根据单个的源表述这个规范,并可在不需要更改 复合源的情况下扩展此规范。更为明确的是,p g m 并不特意用于那些依赖于已知接 收人组的确认传送,或依赖于复合源间的整个排序的应用程序。p g m 最适用于那些 成员可以随时加入和离开的程序,它要么对不可修复的数据包丢失不敏感,要么在 事件中准备采取应用程序恢复。通过它的可选项扩充,p g m 提供了明确的机制支持 与消息更新、数据谈判、低延时实时视频传输及批数据传输完全不同的应用程序【8 】。 在m s m q3 0 中,当一个应用发送了一个实时组播消息,这时网络上只有一份 该消息的拷贝在网络上传输,但消息可以被多个目的应用接受和处理,这个方法在 发送一个消息到大量的接收应用时非常有效。 在c 群n e t2 0 0 5 中由下列代码实现多播: m e s s a g e q u e u eq u e u e = n e wm e s s a g e q u e u e ( p a t h s ) ;仓l j 建消息队列 m e s s a g em e s s a g e = n e wm e s s a g e ( ) ;仓t j 建消息 m e s s a g e l a b e l = “m u l t i c a s t ”;消息标签 m e s s a g e b o d y = t h i si sam u l t i c a s ts a m p l e ;消息体 q u e u e s e n d ( m e s s a g e ) ;消息发送 其中p a t h s 可以使用t c p 协议或h t t p 协议的接收者队列格式名,也可以是二 一8 一 东北大学硕士学位论文第2 章应用技术介绍 者的混合队列格式名,例如p a t h s = “f o r m a t n a m e :d i r e c t = t c p :l o c a l h o s t p r i v a t e $ m u l t i c a s t q u e u el ,d i r e c t = h t t p :l o c a l h o s t m s m q p r i v a t e $ m u l t i c a s t q u e u e 2 ”。 ( 4 ) 消息触发器 消息队列触发器是一组触发器的集合,每个触发器和本地的一个特定镜像队列 相对应,每个消息达到该队列都会触发该触发器。一个消息队列与一个或多个规则 相关联,每个规则定义为一个或多个条件和一个动作。动作可以是可执行文件和参 数列表,或者是c o m 组件中的一个方法和参数列表。实际参数可以是消息的属性, 当所有条件满足时动作将被执行。 消息触发器创建示例。 ( a ) 创建触发器规则:首先在“计算机管理”的“服务和应用程序 中选择“消 息队列”,然后选择“消息队列触发器 右键中的“规则 来创建触发器规则。步骤 如图2 2 、图2 3 、图2 4 及图2 5 所示。 触发c o m 组件中的方法,选中“调用c o m 组件”,在组件进程i d 中输入调用 的组件i d ,其格式为p r o j e c t c l a s s n a m e ,如t r i g g e r s a m p l e s h o w m e s s a g e ,其中 t r i g g e r s a m p l e 为d l l 名称空间,s h o w m e s s a g e 为d l l 中的类名称,然后在方法名 称中输入s h o w m e s s a g e 类中s h o w 方法名,该方法要求是公开( p u b l i c ) 的方法。如 果c o m 是自己开发的n e t 组件,要作为触发器的调用目标必须将此c o m 组件注 册到全局装配缓存( g a c ,g l o b a la s s e m b l yc a c h e ) 中,如果要将自己的c o m 组件 添加到g a c 中,首先要生成一个强命名,所谓的强命名是m i c r o s o f t 为解决“d l l 地狱”采用的举措,它依靠唯一的钥匙对来保证d l l 装配的唯一性,其次要用g a c u t i l 工具将d l l 装配到g a c 中。 图2 2 创建触发器规则( 第一步) f i g 2 2c r e a t ear u l e ( t h ef i r s ts t e p ) 一9 一 图2 3 创建触发器规则( 第二步) f i g 2 3c r e a t ear u l e ( t h es e c o n ds t e p ) 第2 章应用技术介绍 图2 4 创建触发器规则( 第三步) 图2 5 创建触发器规则( 第四步) f i g 2 4c r e a t ear u l e ( t h et h i r ds t e p )f i g 2 5c r e a t ear u l e ( t h ef o u r t hs t e p ) 在创建强命名时首先要确保c o m 的i n t e r o p 选项被选中,在v s n e t2 0 0 5 中的 项目属性页的“生成”选项卡中可以设置该选项,然后利用n e t 的命令行工具或 v s n e t 2 0 0 5 界面中生成强命名钥匙,命令行如:s n - ks n k e y s n k ,利用v s n e t 2 0 0 5 中的项目属性页的“签名 选项卡中新建或选择己建的强命名钥匙,重新生成项目, 然后在命令行下使用g a c u t i l 将生成的c o m 组件注册到g a c 中,格式如g a c u t i l - i x x x d l l ,g a c u t i l 的语法为g a c u t i l 【 】,参数说明见表2 1 。 表2 1g a c u t i l 命令说明 t a t 1 e2 1g a c u t i lc o m m a n d s 命令说明 i 【r 】【f 】 i l 【r 】【f 】 u 【r 】 u l 【r 】 小 】 m 【 】 c d l l d l 将某个程序集安装剑全局程序集缓存中。 将一个或多个程序集安装到全局程序集缓存中。 将某个程序集从全局程序集缓存卸载。 将一个或多个程序集从全局程序集缓存卸载。 列出通过 存。 列出全局程序集缓存以及所有跟踪引用。 删除下载缓存的内容。 列出下载缓存的内容。 表2 1 中r 选项是指定要安装( i ,i l ) 或卸载( u ,u 1 ) 的跟踪引用,f 选项是指 要强制重新安装程序集。 触发可执行文件,选中“调用独立可执行文件( e x e ) ”,选择要调用的可执行 文件。 一1 0 一 东北大学硕士学位论文第2 章应用技术介绍 上述两种调用方法可以设置传入的参数,点击图2 4 中的“参数”,在弹出的界 面填写传入的参数,如在c o m 组件中的s h o w 方法要求传入发送的内容则可以选择 参数中的“消息正文”,如在独立运行的e x e 中设置参数,一般先传入m a i n 函数中, 然后由m a i n 函数传递给类中方法。 ( b ) 创建触发器 在“计算机管理”中选择“服务和应用程序”,然后选择“消息队列”中的“消 息队列触发器”,右键点击“触发器”,在弹出菜单中选择“新建”,在弹出界面中填 写触发器名称和被监视的队列,然后点击“下一步 设置触发器的触发规则,然后 点击“完成

温馨提示

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

评论

0/150

提交评论