(计算机科学与技术专业论文)基于cif的客户信息传递及应用.pdf_第1页
(计算机科学与技术专业论文)基于cif的客户信息传递及应用.pdf_第2页
(计算机科学与技术专业论文)基于cif的客户信息传递及应用.pdf_第3页
(计算机科学与技术专业论文)基于cif的客户信息传递及应用.pdf_第4页
(计算机科学与技术专业论文)基于cif的客户信息传递及应用.pdf_第5页
已阅读5页,还剩72页未读 继续免费阅读

(计算机科学与技术专业论文)基于cif的客户信息传递及应用.pdf.pdf 免费下载

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

文档简介

基于c if 的客户信息传递及应用 摘要 当前,银行业的竞争日益激烈,如何最大限度地利用有限的行 内资源,同时去发现数量更大的潜在客户,是银行发展的关键。c i f 整合了其他系统的客户信息,更全面地对客户进行评估,有利于各 种营销活动、渠道业务的开展。同时提供了前端渠道的实时访问, 并从后台t c r m 和e d w 中获得分析后的数据和汇总数据,既从历 史的角度对客户进行评价,也保证了信息的权威性。 本文分析了客户信息的特点,基于c i f 架构,从客户信息传递 的角度进行了讨论,在设计和实现上做了以下有益的尝试: 分析了客户信息的特点。 对c i f 的整体结构设计进行了讨论。 对中间件进行了比较,利用消息中间件屏蔽异构系统的差异 性,并做了技术实现和优化设计。 对报文传递格式进行了标准化,利用v t d x m l 解析报文, 提高了解析的速度。 在电子银行渠道业务整合项目中进行了应用。 关键词:c i f 客户信息m qx m l c u s t o m e ri n f o r m l 气t i o nt r a n s f e ra n d a p p l i c a t i o nb a s e do nc i f a b s t r a c t n o w a d a y st h ec o m p e t i t i o no fb a n k si ss e v e r e h o wt om a k eu s eo f l i m i t e di n t e r b a n kc u s t o m e rr e s o u r c e sa tt h em o s te x t r e m e ,a n df i n do u t p o t e n t i a lc u s t o m e ra r et h ek e yt ob a n ki t s e l lc i fi n t e g r a t e sc u s t o m e r i n f o r m a t i o nf r o mm a n ys y s t e m so fb a n k ,w h i c hh e l pt od e v e l o pl o t so f c h a n n e lo p e r a t i o n sa n da c t i v i t i e s c i fp r o v i d e sr e a l t i m ea c c e s st o e n s u r et h ei n f o r m a t i o na u t h o r i t y a n du t i l i z e sa n a l y s i sd a t af r o mt c r m a n dg a t h e r e dd a t af r o me d wt oe v a l u a t ec u s t o m e ri nh i s t o r y t h i sp a p e ra n a l y s e st h ec h a r a c t e r i s t i co fc u s t o m e ri n f o r m a t i o n ,a n d p r o p o s e ss o m es u g g e s t i o n sf r o mv i e w so fc u s t o m e ri n f o r m a t i o nt r a n s f e r b a s e do nc i et h e r ea r eaf e wb e n e f i c i a la t t e m p t si nt h i sa r t i c l eo nb o t h d e s i g n i n ga n di m p l e m e n t i n g : a n a l y s et h ec h a r a c t e r i s t i co fc u s t o m e ri n f o r m a t i o n d i s c u s st h ea r c h i t e c t u r ed e s i g no fc i e c o m p a r et h em i d d l e w a r e ;u t i l i z et h em e s s a g em i d d l e w a r et o m e e tt h e r e q u i r e m e n to f d i f f e r e n tp l a t f o r m s ,t h e nm a k e t e c h n i q u er e a l i z a t i o na n do p t i m i z a t i o nd e s i g n m a k ea n a t t e m p t t os t a n d a r d i z et h e m e s s a g e w i t h v t d x m lw h i c hh a sb e t t e r e f f i c i e n c y t o p a r s e t h e m e s s a g e a p p l yt h e s ea b o v et oe b a n kc h a n n e lo p e r a t i o ni n t e g r i t y p r o j e c t 跹yw o i m s :c i fc u s t o m e ri n f o r m a t i o nm qx m l 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得的研究成 果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文中不 包含其他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其 他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做 的任何贡献均已在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:鱼邀 日期: 士竺里芷:2 :! 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即:研 究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和 借阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或 其它复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论文 注释:本学位论文不属于保密范围,适用本授权书。 本人签名:丛绉 导师签名: 日期:趟芷:立= 。! 幺 1 7 1 辫t :垒竺正! 立:! 孟 北京邮电大学硕士研究生学位论文 第一章前言 1 1 研究背景 随着国内金融体制改革的日益深化,对外资银行经营业务的限制日益减少, 同业竞争更加激烈,各个银行为了适应新的发展需要,争取更大的市场份额,对 自身的业务系统都在进行不同层次的改造。由原先的账务处理系统,逐步向以客 户为中心的金融服务系统转变。同时,很多银行也在进行业务上的改革,逐步向 多领域、多层次化迈进,很多银行已经开始了混业经营的尝试。同时,随着个人 可支配收入的提高,个人对各种金融产品和服务多元化有了更高的要求,如何有 效地利用已有客户资源,同时兼顾开发新的客户资源,成为了银行发展的重要问 题。 但与此相对应地,在银行目前的各类产品应用和服务渠道中,很多业务系统 和服务系统都根据各自的业务需要建立了客户信息系统。但是这些客户系统彼此 独立,物理上没有联系,形成了客户信息的一个个孤岛。同时,在各个独立客户 信息系统间,存在着信息冗余和信息不一致等问题【。这些问题使得客户为了某 种业务操作,需要多次到银行网点办理相关业务的签约手续。既给客户带来了极 大的不便,也使得银行人员做了很多重复的工作。而为提供信息整合和决策支持 的数据仓库虽然保存了完整的客户信息,但是它不是一个实时的查询系统,只能 将前一天的整合信息批量导入各个前端渠道系统,这样,在时间上和准确性上都 不能满足业务要求,对数据仓库的压力也很大。为此,在全行建立一个具有收集、 整理和维护功能于一身的客户单一视图是非常有必要的。 c i f ( c u s t o m e ri n f o r m a t i o nf i l e ,客户信息文件) 是提供全部客户信息集合 的一套文件或信息集合。它不仅可以提供客户静态信息,而且还可以记录客户动 态交易日志等控制信息。它是一个真正的联机事务处理系统,通过c i f 的建设, 既可以实现对客户基本信息和签约信息的共享,而且可以实现金融产品和渠道的 个性化。【2 1 1 2 国内外研究状况 无论是国内银行还是外资银行,寻找优质客户,为客户提供个性化的服务都 具有重要的意义。银行需要维护一个客户数据模型,以便将跨地区、跨渠道、跨 时间的客户信息进行整合、一分析。 第1 页 北京邮电大学硕士研究生学位论文 【3 】将各种分散的、各种跨平台的由账户关联的数据经过重新组合和加工, 构成面向决策的、按客户信息组织的系统。这样的系统被认为是一种分析系统, 它保存相应的历史数据供以后分析,往往将客户信息作为单独的主题,在数据仓 库中存放。【4 】对此思想进行了尝试,它以数据仓库理论为指导,定期将各业务 系统中的账务型原始数据经过抽取、转换、过滤,加载到数据仓库中,并按时间 序列长期保存,按主题划分成不同的数据集市;再将数据集市中的数据在时间、 业务种类、客户分类等几个维度上进一步划分和数据聚合处理,建立起具有完备 而准确的以数据仓库为基础的客户信息系统。这样的模式对客户信息有很好的分 析功能,但是由于数据仓库本身的特性,不能作为一个实时性的业务系统,反映 给前端的客户信息需要t + i 才能实现,所以,无法满足某些客户信息的实时性 要求。 本文提出利用c i f 的特性解决以上的问题。前端各个渠道系统一方面实时更 新主要的客户信息,另一方面在日终时将用于分析的相关信息e t l 到数据仓库 中,经过信息整合,将某些汇总、决策和营销信息在t + 1 批量加载到c i f 中。 通过将客户信息进行分类的方式,既满足了前台对客户信息的实时要求,也从历 史的角度对客户进行了全面的了解和分析。 中间件是在计算机硬件和操作系统之上,支持应用软件开发和运行的一类软 件,它位于操作系统和应用程序之间,是客户方与服务方之间的连接软件,是基 于分布式处理的系统软件。它能使应用软件相对独立于计算机硬件和操作系统平 台,它把大型企业分散的系统有机地组合在一起,实现大型企业应用软件系统的 集成。1 5 j 从应用角度上,一般将中间件分成三大类: 消息中间件:它把分布式网络上的各个结点连接在一起,保证了数据传输的 可靠性,代表产品有i b m 的w e b s p h e r em q 。 交易中间件:它把节点上的各个应用或处理连接在一起,形成统一的、协同 工作的分布式应用,达到交易的完整性和可靠性,代表产品有i b m 的c i c s 。1 6 1 对象中间件:在分布、异构的网络计算环境中,可以将各种分布对象有机地 结合在一起,完成系统的快速集成,实现对象重用,如o m g 组织的c o r m b , m i c r o s o f t 的d c o m 。1 5 j 前端渠道一般具有统一的处理平台,利用这个平台可以转发报文。通过制定 统一的报文标准,利用消息中间件对报文进行统一处理,可以比较好地满足业务 的需求。因为队里管理器可以管理多个队列,每个队列可以管理不同的消息,所 第2 页 北京邮电大学硕士研究生学位论文 以,可以将不同的应用逻辑映射到不同的消息队列中,保证了并发性,减少了响 应时间。与其它中间件技术不同,消息中间件不需要系统有一个可靠的底部传输 层,只是以消息的形式收发应用程序数据,连接运行于不同系统上的应用程序。 信息可以同步传送,也支持异步传送。在异步方式下,应用程序并不需要消息即 时即刻传送到对方,只需消息中间件把信息以消息的方式安全传送到适当的目的 地,并且只传一次。除了以上特点,有些消息中间件产品还具有负载均衡功能, 它可以动态分配队列,进一步改进了系统响应时间。 1 3 本文解决的问题 本文基于c i f ,对客户信息的传递进行设计和实现,这主要包含以下内容: 客户信息特点的讨论 中间件的比较和选择 c i f 的整体架构设计 客户信息访问的实时性 消息传递的并发性 对于客户信息的可靠性、完整性保证 1 4 本文结构 本文共八章,第一章描述问题的背景和国内外研究现状;第二章对客户信息 传递的方式与方法进行详细的讨论;第三章概述了w c b s p h c r cm q 的特点和典型 解决方案;第四章详细描述了c i f 的体系结构;第五章对系统的详细设计部分和 技术实现进行了讨论;第六章提出了一些优化方案;第七章以电子银行渠道在 c i f 上的应用为例进行了分析,第八章是本文的结论与进一步展望。 第二章客户信息传递 2 1 客户信息的研究背景 随着经济的高速发展,各个企业、社会公众与商业银行的联系更加密切,以 第3 页 北京邮电大学硕士研究生学位论文 银行为代表的金融机构已经成为人们社会生活中不可或缺的组成部分。无论是开 设存贷款账户、办理信用卡或是进行理财类产品的购买,客户都需要向商业银行 提供各类资料,尤其是在实行个人储蓄实名制之后,个人储蓄客户的资料更加准 确。然而,虽然商业银行掌握了大量的准确的客户信息,但是真正产生价值的客 户却是其中的少数,一般来讲,8 0 的利润来自2 0 的客户,即只有少数客户能 给银行带来效益,他们是银行的重点客户,而多数客户是无利可图的。另一方面, 各个前端渠道都会采集到大量的客户信息,有些信息往往是非常具有权威性的, 比如信用卡、个人贷款。但是它们往往非常分散,并不能供其他系统使用,客户 仍然需要频繁到柜台去填写重复的个人信息,既耽误了客户的宝贵时间,也影响 了业务办理上的效率。因此,迫切需要提供对客户信息的渠道整合。对于这个问 题,目前的解决方法有以下几种: 第一,利用数据仓库技术整合客户信息,对决策提供支持。 数据仓库是一个面向主题的、集成的、随时间变化的,但信息本身又相对稳 定的数据集合,对于数据决策有很好的支持。这里所说的主题是指用户使用数据 仓库进行决策时所关心的重点方向。在数据仓库的l d m 设计中,一般要有一个 p a r t y 主题,这个主题是指一个金融机构所服务的任意对象并有兴趣进行分析 的各种个人或团体客户、潜在客户、代理机构、雇员、分行、部门等。一个p a r t y 可以同时是其中很多种角色,但无论是个人客户、团体客户还是各种机构,从逻 辑上都可以看作是“客户”。通过对于这些客户的分析,可以对一个客户的所有 信息进行全面的汇总。文献【7 】尝试利用数据仓库技术构建客户信息管理系统。 第二,利用c r m 实施客户信息管理 。c r m 是现代营销理念和先进信息技术相结合的产物,其实施过程包括:通 过业务流程的再造形成职能完整、交流通畅、运行高效的组织机构;通过客户联 系渠道的整合,加强基于客户关系的营销,针对客户需求及时推出创新的金融产 品和服务;通过信息管理系统建设,强化对客户信息的收集、整理、挖掘、分析 和利用。i 州 由于银行信息处理系统之间联系的松散,造成客户信息过于分散、杂乱、甚 至互相矛盾,不利于整体客户信息的共享和分析。建立统一客户关系管理系统, 可以将全局客户信息统一起来,利用先进的分析手段,通过对客户信息的差异分 析、效益分析、风险分析,加强同客户的关系、建立客户细分市场。 第三,建立以c i f 为基础的客户信息应用 c i f 中存储了客户信息内容,它并不关心客户信息的分析和整理,也不关注 第4 页 北京邮电大学硕士研究生学位论文 业务流程上的管理,它更侧重于建立一个全行的客户单一视图,供前端渠道访问 和更新,也可以提供给其他渠道系统用于更新本地客户信息,同时兼顾实时性, 因此通常作为联机业务处理系统,为前端渠道提供权威的客户信息。 以上三种方式的应用场景不同,第一种方式偏重于分析和决策功能,数据仓 库将当天的数据进行抽取、转换、整合,装载入库进行各种分析,并产生各个维 度的汇总和整合信息。但是它需要t + i 的时间才能将分析结果导入到前端。c r m 偏向于对于客户业务流程的管理,通常应用于对某产品的营销分析,通过分析寻 找出潜在的购买客户,然后对这些客户进行定向营销。c r m 的设计往往是一个 长期的目标,而且随着业务内容的增加会变得更加复杂。而c i f 更适合前端的实 时应用,当一个客户进入某一渠道进行业务办理时,业务人员会看到关于此客户 的全部客户信息,它免去了客户和前端业务人员的很多重复劳动,反映了一个客 户的基本信息和对应某种业务的动态交易信息。 2 2 客户信息的特点 2 2 1 业务性 统一的客户信息主要服务于业务部门,这些部门的需求,以及与当前已有系 统的结合是系统设计方案的依据。因此,银行决策层的重视和相关业务部门的参 与,是系统能否顺利实施的关键。以科技为依托,按照现代经营管理的要求,对 客户信息系统进行实施。在经营发展战略上,进行信息平台的重组与整合,建立 全行的统一客户信息视图( c i f ) 是其中的重要内容。 2 2 2 异构性 客户信息的整合主要来自于前端的各个业务处理系统,没有充分和大量的业 务数据为依托,就无所谓全行的统一客户视图,也就失去了其存在的价值,因此, 完善的业务处理系统是建立统一客户信息的基础。但是,当前商业银行的客户信 息分布在各种系统上,如:核心银行、各部门信息管理系统( c s r 、网上银行、 国际结算、信贷系统等) 、外联系统( 信贷登记、同城票据交换等) ,由于系统间 没有建立信息交流通道,造成客户信息过于分散和杂乱,而且技术上的实现有很 大不同,往往一个系统对应一个数据库,数据库管理系统也是五花八门,进而使 第5 页 北京邮电大学硕士研究生学位论文 得信息的整合有很大的挑战。 2 2 3实效性 作为一个在线联机业务处理系统,c i f 对于响应时间的要求是非常苛刻的。 例如,某个客户通过客服电话,对一种理财产品表达了意向。此时,需要系统即 时反馈客户的基本信息,如果不能在短时间内对其做出反应,会对客户的意见产 生很大影响,甚至可能由此失去一个客户,这种损失对于银行来说是不可弥补的。 对于响应时间,需要从系统整体进行考虑,首先要从业务上仔细分析,将各种业 务需求进行仔细的分类。其次充分考虑并发用户量,在系统上线前做好测试。最 后在数据入库时,要对整体的库表结构进行调优,保证响应时间最短。 2 2 4 准确性 对于商业银行,每一个数字的变化都意味着客户金钱的得失,这对整个银行 的声誉和社会影响都有至关重要的作用,有时甚至会引发法律上的冲突,因此, 在这个方面是不允许出现任何差错的。但是由于统一客户信息是对多个系统的信 息整合,涉及到多个系统之间数据的同步,同时又要保证很短的响应时间,所以 在设计方面如何在两者之间找到一个平衡点显得至关重要。 2 2 5完整性 这里所指的完整性指的是交易的完整性,例如,在跨行转账交易中,某个用 户从银行a 转出1 0 0 元到银行b ,此时涉及到两个数据库的提交问题,当从此 用户的银行a 账户减去1 0 0 时,同时要在银行b 的账户上增加1 0 0 ,此时采用 两步提交的方式,即首先在两个数据库之间确认是否已经准备好,如果得到确认 回答,则调用事务操作进行操作,如果成功进行操作则提交,其中一个出现问题 则进行回滚,在账务上进行冲账。这种完整性的保证在分布式数据库中是非常主 要的,一般都是采取事务处理的方式,将提交的事务作为一个整体进行操作,如 果失败则进行回滚。同时,当出现非完整性情况时,需要有效、直观的方式将问 题的出现点标记出来,尽量用自动的方式对此情况进行更正。如果需要人工判断, 也要提供一种有效的操作规范。 第6 页 北京邮电大学硕士研究生学位论文 2 2 6 一致性 c i f 保存了客户的权威信息,但是其中的有些信息并不是直接由前端渠道采 集,而是根据需要由前端更新获得,或是通过一定的规则整合到c i f 中,因此在 时间上会有一定的时间差。从技术上看,更新操作一般会在一个事务中进行,如 果在事务没有提交前,对更新记录提交了查询请求,此时有两种处理方法。如果 使用户看到修改后的数据,那么此时看到的数据为未提交数据,也被称为脏数据。 另一种方式是保证在提交后才能看到更新后的数据,这是与前端的应用要求相关 的。文献【9 】对一致性也做了一些尝试,利用w e b s p h e r em q 和m i c r o s o f ts q l s e r v e r 复制机制来维护同一数据不同副本之间数据的一致性,并提出了两种方 法,消息队列法和复制控制法。对比分析了两种方法在实际中应用的特点和理论 上的技术差异。 , 2 3 客户信息的传递 这里的客户信息传递并不是通过短信、e m a i l 等方式的信息传递,它指的是 将前端各个渠道获得的客户信息,传递到客户信息库形成统一的客户单一视图。 客户信息的传递与业务上的需求是密不可分的,从类别上可以分为个人客户 和公司、机构客户,从内容上可以分为客户基本信息、客户交易信息,客户账务 信息,客户统计信息等。如果按类似的分类处理不同的应用,就会带来权限控制 问题。每个渠道都会对应不同的信息,例如,某个客户希望自己的信用卡地址信 息与借记卡地址信息是不相同的,而且不可互相查询,这时对渠道要有权限控制。 对于同一渠道的信息,会有数据上的控制,并不是每个登陆用户都可以看到全部 信息,按照角色会有更细致的分配。另外,对操作权限上的控制也是很严格的, 有些客户只有查询的权限,但是修改权限就要有更高的控制,网上银行就是很好 的例子,银行往往推出大众版和贵宾版,很多网上业务操作只对贵宾版开放,这 样的权限分配对业务操作的安全上有很大的帮助。 前端的渠道系统往往构建在不同的异构系统上,这种数据上的整合往往比较 复杂。同时,作为权威的客户信息库,c i f 也会实时同步一些信息到各个系统的 本地客户信息库。为了解决这个问题,可以采用“两查一改 的方式,即进行更 新操作时,先去核对更新信息是否与被更新信息一致,如果不一致,先更新c i f , 然后同步更新本地库,即在更新时有“主从 之分,不过这种机制的先决条件是, 第7 页 北京邮电大学硕士研究生学位论文 前端的访问优先与c i f 交互,此时,本地库的存在只是为了维护本地系统的运行, 数据层面已经以c i f 为主。另外,从后台e d w 加载分析、汇总数据到c i f 的做 法是不可取的,因为无论是文件导入或是批量数据加载,都会对系统的性能有很 大影响。一般的做法是将e d w 的数据作为补充数据,它并不用来反映客户的实 时信息,只是作为分析后的结果或是汇总数据的集合,此时,它的实效性要求就 不是很高了,可以安排在凌晨业务操作比较少的时候流出时间窗口批量进行。 作为一个实时的客户信息库,对于响应时间有很高的要求,因此,在客户信 息的传递方面也要做一些优化设计。例如,可以在信息的处理上做多线程处理, 将返回的信息设置为可并行获取,这样,可以有效地提高请求应答的效率。另 外,单条的数据更新机制也会将更新操作的影响降到最低,与数据库的连接采用 了数据库连接池的机制,这些都保证了系统的整体响应时间。 作为与客户相关的信息,信息的一致性是至关重要的,但是由于前端渠道众 多,多个渠道端并行访问c i f ,同时,c i f 也会向其他系统同步数据,如何保证 数据一致性是传递机制上面临的一大挑战。一个解决办法是利用消息中间件,通 过通信队列的方式进行存储和转发。队列采用了“先进先出一的方式,保证了时 间顺序与执行顺序的一致性,同时采用标识返回结果队列的方式,可以很容易地 辨认出对应请求的返回结果。在数据库的设计上也需要加入策略上的控制,对于 某些记录会有优先级的控制,对于某些基本信息,比如联系方式和地址信息,采 用分渠道、加时间戳的方式避免出现客户信息的不一致。 2 4 中间件的选择 银行系统的复杂要求决定了系统设计和开发的复杂性,客户信息系统本身由 于包含了多个渠道的数据整合,不可避免地带来数据上的一致性和完整性问题。 同时,系统之间也需要做实时的同步。中间件作为一种独立的服务程序和系统软 件,负责管理计算机资源和网络通信,【1 0 】它构建在操作系统和应用程序之间, 很好地解决了系统异构、异步操作、并发控制等一系列问题。 各种中间件和应用服务器产品一般都包括一个通信子系统,这个通信子系统 的目的是接受客户机和其它服务器实例的访问。由于应用范围和产品历史不同, 这些通信子系统本身千差万别。由于客户信息的传递基于可靠性的通信机制,因 此主要考虑当前流行的一些具有可靠性传输方式的中间件产品。比如i b m w e b s p h e r em q 、c i c s t x s e r i e s 和b e a t u x e d o 。 m q 与c i c s t x s e r i e s 或b e at u x e d o 有很大的不同,因为m q 被设计为一 第8 页 北京邮电大学硕士研究生学位论文 个以异步数据通信为基础的中间件,它的特点是存储和转发( 对持久消息,直接 保存到硬盘;对非持久消息,先保存到共享内存) ,而t p m 中间件( 包括t x s e r i e s 和t u x e d o ) 没有“存储”的功能,而侧重分布式的实时交易处理。 与m q 相比,c i c s 厂r x s e r i e s 和b e a t u x e d o 有以下的优势: 针对高速且有返回信息的交易有极快的响应速度。 强大的分布式事务处理的能力。 。完全屏蔽了通信层的工作,使开发更加简便,专注于业务系统。 c i c s 似s e r i e s 在内部使用了一个异步处理方式,其目的是充分利用系统资 源达到最高的吞吐效率。但对外仍然是一个同步通信的系统。与m q 不同, c i c s 似s e r i e s 没有任何存储数据或请求的操作,队列的容量和数据的生存期也 远远小于m q 。1 1 1 1 基于客户信息的消息传递需要跨系统的可靠传输,r p c 方式对响应时间的 要求更加苛刻,等待回复时会将执行挂起。【1 2 】客户信息的接收方不能因为工作 量大而导致溢出或丢弃,而且由于前端渠道信息的不同,交易消耗时间长短不定。 因此,r p c 方式不适合客户信息的应用。消息中间件系统有其自身的特点,它 的接收器快速存储收到的数据而不急于进行处理和响应,充分利用系统空闲时间 异步工作。而且,它可以高效率的执行批量交易和长时间交易而不去考虑通信等 待的问题。与此对应,如果采用同步系统,一个工作点的失败可能导致整个系统 的瘫痪。所以异步传输和存储转发是解决问题的最佳途径,选用消息中间件m q 成为了理想的选择。 m q 简化了应用之间数据的传输,屏蔽底层异构操作系统和网络平台,提供 一致的通讯标准和应用开发,确保分布式计算网络环境下可靠的、跨平台的信息 传输和数据交换。它基于消息队列的存储转发机制,并提供特有的异步传输机 制,能够基于消息传输和异步事务处理实现应用整合与数据交换。它具有强大的 跨平台性,支持的平台多达3 5 种。它支持各种主流u n i x 操作系统平台,如: h p u x ,a i x ,s u ns o l a r i s ,d i g i t a lu n i x ,o p e nv m x ,s u n o s ,n c ru n i x : 支持各种主机平台,如:o s 3 9 0 、m v s e s a 、v s e f _ :s a :同样支持w i n d o w sn t 服务器。在p c 平台上支持w i n d o w s 9 x a v i n d o w sm 阶m n d o w s2 0 0 0 和u n i x ( u n i x w a r e 、s o l a r i s ) 以及主要的l i n u x 版本( r e d h a t 、t u r b o l i n u x 等1 。 第9 页 北京邮电大学硕士研究生学位论文 3 1 基本概念 3 1 1消息和队列 第三章w e b s p h e r em q 概述 通信程序一般用消息交换数据,被发送的数据可以是字符串、数字、文件或 是简单的二进制流,除了消息中的数据部分,一般还要加上消息描述符,比如消 息类型和消息的优先级等。1 1 3 j 这些包装好的消息通过m q 提供的a p i ,都可以被 放入一个“容器中,这个“容器”就是队列,队列具有“先进先出 的特点, 这点与堆栈正好相反。在程序接收消息前,消息都是保存在队列中,当接收程序 准备就绪时,它从队列中获得消息。这种方式类似于图3 1 。 图3 1 单路通信消息队列【1 4 l 程序a 将消息放入名为q u e u e l 的队列中,程序b 从o u e u e l 中按照“先进 先出的原则取消息,在这个图中,程序a 、b 可以在同一个机器上,也可以在 不同的机器上。 在m o 中,消息分为两种类型,非永久性( n o n p e r s i s t e n t ) 消息和永久性 ( p e r s i s t e n t ) 灌j 息。非永久性消息存储在内存中,为了提高性能而创建,队列管理 器重新启动时,它将不可恢复。当用户对消息的可靠性要求不高而侧重系统的性 能表现时,可以采用该种类型的消息。永久性消息是存储在硬盘上,并且纪录数 据日志的,它具有高可靠性,在网络和系统发生故障等情况下都能确保消息不丢、 不重。 第1 0 页 北京邮电大学硕士研究生学位论文 同时,队列也分为很多种类型,其中包括:本地队列、远程队列、模板队列、 动态队列等。本地队列又分为普通本地队列和传输队列,普通本地队列是应用程 序通过a p i 对其进行读写操作的队列,传输队列可以理解为存储转发队列,例 如,将某个消息交给m q 系统发送到远程主机,而此时网络发生故障,m q 将把 消息放在传输队列中暂存,当网络恢复时,再发往远端目的地。远程队列是目的 队列在本地的定义,它类似一个地址指针,指向远程主机上的某个目的队列,它 仅仅是个定义,不占用磁盘存储空间。模板队列和动态队列是m q 的一个特色, 它主要用于系统的扩展。通过创建一个模板队列,当以后需要新增队列时,每打 开一个模板队列,m q 便会自动生成一个与模板队列一致的动态队列。还可以指 定该动态队列为临时队列或者是永久队列,若为临时队列,在关闭它的同时将它 删除;相反,若为永久队列,可以将它永久保留。 3 1 2 队列管理器 队列管理器构建了独立的的运行环境,是消息队列的管理者,用来维护和管 理消息队列,一台机器上可以创建一个或多个队列管理器。队列管理器是负责向 应用程序提供消息服务的机构,在m q 中,它集定义、配置、管理调度以及提 供各种服务功能于一身,对系统部件进行配置与管理,应用程序必须首先连接到 队列管理器,然后在队列管理器的控制下对各种对象进行操作。队列管理器可以 含有多个队列,但每一个队列只能属于一个队列管理器,一个操作系统平台可以 创建一个或多个队列管理器。【1 5 l 3 1 3通道 通道是两个队列管理器之间的端到端通信连接,消息在通道中只能单向流 动。按照流向可以分为输入通道和输出通道。两个队列管理器之间可以有多条通 道负责传输不同的内容,这样可以将不同优先级的消息错开,运行于不同速率的 网络上。即使是相同的网络物理连接,也可以按照消息的大小分开传送,以免小 数据传送被大文件所堵塞。 a 6 1 在通道上可以配置不同的通信协议,这样使得编程接口与通信协议无关。一 个通道只能用一种通信协议,但是不同的通道可以有不同的通信协议。通道两端 的队列管理器对这个通道的相关参数要互相对应,否则无法连通。 第1 1 页 北京邮电大学硕士研究生学位论文 在m q 中,一般将通道类型分为以下几种,可以在通道类型属性( c m :n 伊e ) 中进行约定: s d r :握手协议的主动方,消息的发送方。 r c v r :握手协议的被动方,消息的接收方。 s v r :在握手协议中既可以是主动方也可以是被动方,消息的发送方。 r q s t r :在握手协议中既可以是主动方也可以是被动方,消息的接收方。 c l n t c o n n :在哪连接时,定义客户端连接时使用。握手协议的主动方, 消息的发送方。 s v r c o n n :在c s 连接时,定义服务器端连接时使用。握手协议的被动方, 消息的接收方。 c l u s s d r :在群集中发送配置信息和应用信息。握手协议的主动方,消息 的发送方。 c l u s r c v r :在群集中发送配置信息和应用信息。握手协议的被动方,消 息的接收方。f 1 5 1 3 2 通信方式特点 这种消息、队列的通信方式与其他通信方式相比,有如下特点。 ( 1 ) 通信程序可以运行在不同的时间。 互相通信的程序之间并不是直接跨越网络进行直接的通信,而是由发起程序 将消息放入队列,获取程序从队列中获得所需要的数据。由于程序之间并不是直 接通信,因此它们可以运行在不同的时间。例如,发送程序已经将消息放入队列 中,但是目标程序由于程序忙,没有立即从队列中获得消息。此时,消息被保存 在队列中,即使有了新的消息,因为队列本身遵循“先进先出”的原则,原来被 保存的消息仍然会被优先获得,这种方式非常适合程序之间的异步操作。 ( 2 ) 对于应用架构没有限制。 第1 2 页 北京邮电大学硕士研究生学位论文 图3 2 多路通信【1 4 l 图3 2 显示了如下事实:a - k 表示不同的程序,消息可以从a 到b ,通过 c 再到d ,这是一种消息的传递关系。如果说a 到h 反映的是一对一的单队列 关系。那么程序f 从h 或是e 获得消息,就是一种一对多的关系。程序b 可以 将消息发送到程序c 、e 、g ,反映了多对一的关系。因此,通过m q 可以很好 地处理复杂的分布式应用,而不用关心架构上的复杂性。 ( 3 ) 程序之间的通信与复杂的网络环境是隔离的。 当发消息程序将消息发送到目的程序的消息队列中时,即使出现了网络上的 问题,目标程序也不用关心,它只需要去维护与自己相关的本地队列,然后在自 身程序空闲的情况下从队列中获得消息。b 4 1 3 3 通信模式 3 3 1 端到端模式 端到端是程序到程序的直接通信模式( 见图3 3 ) 。应用请求以消息的形式 从一个程序发送至另一个程序,双方采用面向连接的形式相互通信,这种连接有 可能是直连,那么它就是面向一个连接。也有可能是通过队列实现。一般常说的 消息队列模式也可以归为端到端模式,与直接的通信不同,通过队列的方式并不 第1 3 页 北京邮电大学硕士研究生学位论文 强求目的队列可用,因此比较适合企业的分布式应用,它尤其适合事件驱动方式, 通过触发相关应用处理企业的复杂业务需求。 3 3 2 订阅发布模式 图3 3 端到端模式【1 7 1 在这种模式中,没有传统意义上的客户端和服务器,它使得消息的分发突破 了目的队列地理指向的限制,使消息按照特定的主题甚至内容进行分发,用户或 应用程序可以根据主题或内容接收到所需要的消息。发布订阅功能使得发送者 和接收者之间的耦合关系变得更为松散,发送者不必关心接收者的目的地址,接 收者也不必关心消息的发送地址,发布消息的应用程序只需要简单地将消息以主 题方式发送出去,由消息代理负责将消息传递给所有订购该主题的应用程序( 见 图3 4 ) 。【1 7 】 消息总线 图3 4 订阅发布模式【1 7 】 在m q 中,这个消息代理叫做b r o k e r ,消息发布程序叫做p u b l i s h e r ,订阅 程序叫做s u b s c r i b e r ,发布者与订阅者之间只需要约定一个t o p i ce p - 7 。发布者 发布消息的目标由b r o k e r 控制,它会自动将其中的内容为每一个订阅者复制一 份,将它们分别放入订阅者订阅时指定的目标队列。 3 4 消息传递方案 第1 4 页 北京邮电大学硕士研究生学位论文 3 4 1 将消息发送至本地队列 这种传递方案不与任何其它w e b s p h e r em q 通信,而只是在本地进行独立通 信。下面的例子使用a m q s p u t 命令把测试消息放入队列,然后使用a m q s g e t 命令 验证是否已接收到该测试消息,如图3 - - 5 。 图3 5 将消息发送至本地队列【1 8 l 第一步:创建队列管理器 c r t m q m - qq m _ a p p l e s t r m q mq m _ a p p l e 第二步:创建本地队列 r u n m q s cq m 。a p p l e d e f i n eq l o c a l ( q 1 ) e n d 第三步:将测试消息放入队列 a m q s p u tq 1 仓i j 建名为q ma p p l e 的缺省队列管理器 启动队列管理器 l i 息甩m q s c 命令: 定义名为q 1 的本地队列 “停止m q s c 启动队列q l 在一行或多行上输入某些消息文本,然后按两次e n t e r 键结束输入。 第四步:验证是否已发送测试消息 a m q s g e tq 1 此时会显示此队列上的任何消息。 3 4 2 将消息发送至远程队列 这种传递方案是在两个装有w e b s p h e r em q 服务器端的机器之间进行通信。 图3 6 演示了一台计算机上的队列管理器q m _ o r a n g e 与另一台计算机上的 队列管理器q m 心p l e 之问的消息传递。在第一台计算机上创建的消息被传递 第1 5 页 北京邮电大学硕士研究生学位论文 到第二台计算机上的队列q 1 ( 此队列被称为远程队列) 。 a m q s p u t | a p i q m0 r a n g e - j 廿 0 1o ma p p l e o m o r a n g e o m a p p l e 图3 6 将消息发送至远程队列【1 8 j 基本过程:首先在发送机器上设置队列管理器和队列( 远程队列定义和传输 队列) ,然后定义消息通道,最后,把测试消息放入发送机器,并从接收机器的 队列上获取该消息。 第一步:在发送机器上创建队列管理器 c r t m q m qq m _ o r a n g e仓, l 建名为q m _ o r a n g e 的缺省队列管理器 s t r m q mq m _ o r a n g e 启动队列管理器 r u n m q l s r - mq m _ a p p l e tt c p - p ( 1 4 1 4 ) t 玉 建侦听器( 如果未使用- p 参数, 则使用缺省端口1 4 1 4 ,但不能对发送方和接收方使用相同的端口号。) 第二步:在发送队列管理器上创建队列 r u n m q s c 启动m q s c d e f i n eq l o c a l ( q m _ a p p l e ) u s a g e ( x m i t q ) 定义名为q m 。a p p l e 的本地队列 定义远程队列 d e f m eq r e m o t e ( q 1 ) r n a m e ( q 1 ) r q m n a m e ( q m _ a p p l e ) x m i t q ( q m a p p l e ) 第三步:创建消息通道 在接收机器上: r u n m q s c 启动m q s c 定义接收通道 d e f i n ec h a n n e l ( q m _ o r a n g e q m _ a p p l e ) c h l t y p e ( r c v r ) t r p t y p e ( t c p ) e n d停止m q s c 在发送机器上: 第1 6 页 _ | 眦 百器u 刚 一i mq 北京邮电大学硕士研究生学位论文 r u n m q s c 启动m q s c 定义发送通道( c o n n a m e 是接收方队列管理器的t c p 地址) d e f m ec h a n n e l ( q m _ o r a n g e q m _ a p p l e ) c h l t y p e ( s d r ) c o n n a m e ( c o n - n a m e 7 ) x m i t q ( q ma p p l e ) t r p t y p e ( t c p ) s t a r tc h a n n e l ( q m _ o r a n g e q m _ a p p l e ) 启动通道 e n d 第四步:将测试消息放入队列 在发送机器( 队列管理器为q m _ o r a n g e 的机器) 上执行此任务。 a m q s p u tq 1 在一行或多行上输入某些消息文本,然后按两次e n t e r 键结束输入。 第五步:验证是否已发送测试消息 在接收机器( 队列管理器为q m _ a p p l e 的机器) 上执行此任务 a m q s g e tq 1 3 4 3 c s 模式下的消息传递 m q 分为s e r v e r 和c l i e n t 两种版本,在m qs e r v e r 端,有队列管理器、队列、 消息通道等对象,它提供全面的消息服务;m qc l i e n t 提供了一个m q 应用程序 的开发和运行环境,它是m q a p i 的c l i e n t 实现。在c l i e n t 环境下,没有队列管 理器、队列等对象,它通过m q i 通道与s e r v e r 建立通讯,并将消息发送到s e r v e r 的队列,或从s e r v e r 的队列中获得消息。这种方式减少了系统负担、系统管理 开销和磁盘空间要求等。图3 7 显示了上面的逻辑,其中,客户机是

温馨提示

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

评论

0/150

提交评论