(电子科学与技术专业论文)异构数据协议集成软件系统设计与开发.pdf_第1页
(电子科学与技术专业论文)异构数据协议集成软件系统设计与开发.pdf_第2页
(电子科学与技术专业论文)异构数据协议集成软件系统设计与开发.pdf_第3页
(电子科学与技术专业论文)异构数据协议集成软件系统设计与开发.pdf_第4页
(电子科学与技术专业论文)异构数据协议集成软件系统设计与开发.pdf_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

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

文档简介

硕士学位论文 a b s t r a c t e n t e r p r i s e 1 e v e ld a t ac o m m u n i c a t i o ns y s t e m sh a v eb e e nw i d e l yu s e dw i t h t h e r a p i dd e v e l o p m e n t o fi n f o r m a t i o ni n d u s t r y ,w h i c hb r i n g m o r e”i n f o r m a t i o n i s o l a t e d i s l a n d ”p h e n o m e n o n si ne n t e r p r i s e t od e a lw i t ht h i ss i t u a t i o na n d t oi m p r o v e t h eb u s i n e s se f f i c i e n c y ,d a t ai n t e g r a t i o nm u s tb et a k e ni ne n t e r p r i s e i n t e g r a t i o no f h e t e r o g e n e o u sd a t ap r o t o c o li san e w b r a n c hi nt h ef i e l do fd a t ai n t e g r a t i o n h o w e v e r , d u et om o s t l yc u s t o md a t ap r o t o c o l sa p p l i c a t e di nh e t e r o g e n e o u sp r o t o c o ls y s t e m s , t h o s es y s l e m sc a nn o tb ei n t e g r a t e dv i ac o m m e r c i a l i z a t i o np r o t o c o li n t e g r a t i o nb u s a t d r e s e n t ,t h u st h ed a t ao fs y s t e m sc a nn o tb es h a r e d i nw h o l ee n t e r p r e i s e i ti st h e p r o b l e mt h a te n t e r p r i s en e e d t os o l v eu r g e n t l y b a s e do nt h er e s e a c h e so ns o m es t a n d a r d d a t a p r o t o c o l s a n dt h ew a yo f c u s t o m i z i n gc o m m o nc u s t o mp r o t o c o l ,am o d e lo fh e t e r o g e n e o u sd a t ap r o t o c o l 1 s c o n s t r u c t e d ,a n da ni n t e g r a t i n gh e t e r o g e n e o u sd a t ap r o t o c o ls y s t e m f o c u s e do nt h e s m e sa p p l i c a t i o n si sd e s i g n e db a s e do nt h i sm o d e l t h em a i n l y f u n c t i o n so ft h e s y s t e ma r es h o w na sf o l l o w e d : f i r s t t h es y s t e mc a ng e n e r a t e d i f f e r e n td a t ap r o t o e a l f o m a to fd a t a c o m m u n i c a t i o ns y s t e mb yc o n f i g u r a t i o n ,a n di t i sa b l et od y n a m i cr e g i s t r a t i o no 。 w i t h d r a w na n yc u s t o mp r o t o c o1 s e c o n d ,t h ed a t a ,s e n tb ys o m ec o m m u n i c a t i o n s y s t e m s ,c a nb e s h a r e da n d c e n t r a l i z e dm o n i t o r e da f t e r i t b e i n gp r o c e s s e db y m e a n so fr e a l - t i m ep r o t o c o l r e c o g n i t i o n ,d a t aa n a l y s i s ,d a t ad i s t r i b u t i o n t h i r d s o m en e c e s s a r ys e r v i c ef u n c t i o n sa r ep r o v i d e d f o rt h ei n t e g r a t i o no f c u s t o md r o t o c o lb ys y s t e m ,s u c ha sc u s t o m ei n t e r f a c e sa n df u n c t i o n sf o rl o a d i n go f c o s t o mp r o t o c o lp a r s i n gr u l e s t h i st h e s i sd e s c r i b e st h ep r o c e s so fr e a l i z i n gt h ei n t e g r a t i o ns y s t e mt h r o u g h s o m ef r a m e w o r k s ,i n c l u d i n gs p r i n g ,h i b e r n a t e ,m i n a ,a n d s o m eo t h e rk e y t e c h n o l o g i e ss u c h a st h en i o ,p r o t o c o li d e n t i f i c a t i o n a n dx m lt e c h n o l o g y t h e f l e x i b l ea r c h i t e c t u r eo fs y s t e me n s u r e sas t r o n ge x p a n s i b i l i t ya n dh i g he f f i c i e n c y f o r t h ef o l l o w i n gd e v e l o p m e n t k e yw o r d s :h e t e r o g e n e o u sd a t ap r o t o c o l ;d a t ai n t e g r a t i o n ;d a t a c o m m u n i e a t i o n s y s t e m ;m i n a i l l 1 1 研究背景 第1 章绪论 随着信息技术产业的快速发展与互联网的广泛普及,i t 信息系统在企业中 得到越来越多的应用。在基于健全的网络的基础上,许多业务系统,例如:o a 系统、人事系统、物资系统、数采系统等,都已经在各企业中得到大肆的应用。 从总体来看,企业普遍缺乏从整个企业的角度对企业进行规划,i t 信息系统 的应用往往是为满足局部要求或者为达到某一个特定的目的;企业在不同时期使 用的业务系统所采取的开发技术、数据交换接口、数据库系统都可能会不同。由 此企业中出现了一些主要信息的编码不统一、源数据重复采集及数据不能共享和 同步更新等问题,导致大大小小的“信息孤岛”不可避免的出现在企业中。 随着企业信息化技术的快速推进,“信息孤岛”对企业的负面影响也日益显著。 这些“孤岛”对企业的影响可大致分为以下几个方面【1 2 : ( 1 ) 部门间数据不能快速共享。各个数据信息源的独立存储,不利于信息的 快速汇总、查询或加工。这种对信息采集缺乏深入细致的严格分类、整理和加工, 将导致企业信息资源不完整、不系统以及缺乏连续性,将造成企业信息资源不能 得到有效地开发和利用。 ( 2 ) 企业冗余数据、垃圾信息大量存在。任何系统之间都应该相互连接交换 信息,实现资源共享和信息融合加值,才能发挥整体意识。但对于在不同时期, 不同平台上开发出来的传统的企业信息系统,一般来说是不兼容的。在整个企业 中产生许多冗余的数据和大量的信息垃圾。这给信息资源的深度开发和充分利用 带来极大的困难。 ( 3 ) 数据的一致性无法保障。由于信息定义与采集过程彼此独立,企业的同 一数据可能在不同的应用中不一致。各部门所使用的数据资源大都各自为政,使 数据资源在企业生产与管理领域发挥的功能非常有限。 ( 4 ) 难以实现对企业决策的及时数据支持。孤立的信息系统无法有效地提供 跨部门、跨系统的综合性的信息,因此,任何个孤立的信息系统只能回答局部 的问题。 合理地消除“信息孤岛”现象对于企业发展有着重要的意义。“信息孤岛”的消 除可实现企业分布信息资源共享、信息流畅;可提高企业决策效率;同时有利于 企业的集中管理、增强企业的市场竞争能力。 数据的集成是解决企业“信息孤岛”现状的重要手段。数据集成是指企业通过 异构数据协议集成软件系统设计与开发 各种合适的集成技术将企业的各个数据服务器有机的统一起来,通过对数据的融 合处理,为各数据需求系统提供一个统一的出入平台。企业中数据集成的方式方 法多种多样,通过数据协议将数据集成的方法是数据集成领域的一个小的分支。 但目前企业中越来越多的数据通信系统采用的是自定义数据协议,这给异构数据 协议的集成带来新的挑战。 为适应协议集成市场上新的需求,有必要对异构数据协议的集成进行深入研 究。本论文的出发点就是针对这一实际情形而提出,主要面向中小企业设计一个 适应大多数自定义异构数据协议的集成系统。 1 2 国内外研究现状 数据集成在业界内已经有3 0 多年的历史了,其经历了从传统的只研究多数据 库集成到目前的对所有数据源的集成两个阶段【3 1 。在国内外有的研究机构专门成 立了针对数据集成的研究项目,比较有名的斯坦福大学的t s i m m i s 【4j 、i b m 的 t h eg a r l i cp r o j e c t 5 6 1 、东南大学的v e r s a t i l e 7 1 以及华中大学的p a n o r a m l 8 1 ,这些 项目在文献 9 中有着详细的介绍。 针对数据的集成,学术界也提出了不少的集成手段【3 】,其中有基于中间件的 数据集成技术【1 0 1 ,也有基于j 2 e e 的数据集成技术1 1 1 或基于x m l 的数据集成技 术【1 2 】等方法。但在企业中最常用的手段是采用协议集成技术实现数据的集成,主 要应用s o a ( s e r v i c e o r i e n t e da r c h i t e c t u r e ,面向服务架构) 技术进行各数据协议 的绑定与管理【”】,从而达到将各协议的数据集成与共享的目的。s o a 的宗旨是为 软件集成而服务,实现了技术与架构的分离,消除了软件服务集成的所有障碍。 在基于s o a 的数据协议集成技术中,比较有典型代表的有“e s b 服务总线”、“m u l e 服务总线”、“基于j b i 的s e r v i c e m i x 服务总线”以及“c x f 服务总线”,这些主要是 a p a c h e 社区、s u n 公司及i b m 等公司做出的贡献。i b m 甚至专门开发了 w e b s p h e r ee s bs e r v e r 和w e b s p h e r ep r o c e s ss e r v e r 产品。s o a 协议集成思想,以 j b i 架构思想为例,j b i 容器的b c ( b i n d i n gc o m p o n e n t ) 绑定组件接收到各种数 据传输协议后,将具体协议解耦,得出n m ( n o r m a lm e s s a g e 、规格化消息) 一 起送到n m r ( n o r m a lm e s s a g er o u t e r 、规格化路由器) ,再由n m r 将n m 送到 不同的s e ( s e r v i c ee n g i n e s ) 组件。基于s o a 的协议集成方式示意图如下图1 。】 所示。 但针对数据协议的集成,基于s o a 技术的服务总线目前只集成各标准的应用 数据传输协议,没有提供针对自定义数据协议的集成手段。 图1 1s o a 的协议集成方式示意图 1 3 研究目标与内容 本文结合当前市场上数据协议集成需求与其发展趋势,面向中小型企业进行 开发,研究一个自定义数据协议集成系统,该系统的应具有以下功能: ( 1 ) 实现对各异构通信系统的数据流的接收、解析以及各数据协议实时数据 与历史数据的显示查看。 ( 2 ) 将不同通信系统的实时数据或历史数据提供给外部数据请求系统。 ( 3 ) 实现动态加载或者撤消各异构协议的监听。 ( 4 ) 实现对自定义协议解析规则的动态管理。 本论文具体的研究内容如下: ( 1 ) 研究目前数据集成的的常用手段与各应用通信协议的工作原理,并应 用这些知识构建异构数据协议集成系统。 ( 2 ) 对n i o 技术、协议识别技术以及x m l 技术进行探索,并结合使用这些 技术应用于异构数据协议集成系统的开发。 ( 3 ) 对目前流行框架如s p r i n g 、h i b e r n a t e 、m i n a 等进行研究,并将这些框 架技术应用于异构数据协议集成系统的开发。 ( 4 ) 设计并实现面向中小企业的异构数据协议的集成系统。系统通过对自 定义数据协议的动态配置与管理进行数据的集成,并提供了服务于数据协议集成 的基本功能。 1 4 论文的组织结构 本论文的组织结构安排如下所示: 异构数据协议集成软件系统砹计与开发 = = = = = ! = 皇= = = = = ! = = 皇竺= ! ! ! ! ! 鼍! ! ! ! ! 苎墨! ! ! 巴= = = = = = = = ! = ! = = 暑= = = ! = = = 皇= 摹= = 皇= = ! ! ! ! ! ! ! = 竺! = = 竺= = = 皇= = = = 第一章:绪论。介绍了本课题的研究背景以及这一领域在国内外的研究现状, 并简要的阐述了课题的研究目标与内容。 第二章:系统关键技术。概况性的介绍了异构数据协议集成系统中所使用到 的n i o 、协议识别及x m l 等关键技术。 第三章:系统应用框架技术。简要的介绍异构数据协议集成系统中所使用到 的各种框架技术,如:s p r i n g 、h i b e r n a t e 及m i n a 框架等,同时介绍了这几种框 架问的集成方法。 第四章:系统的设计方案。阐述了异构数据协议集成系统的架构设计、功能 设计以及模块设计。 第五章:系统的实现。详细述说了异构数据协议集成系统各功能模块的具体 实现并给出了系统数据库的设计与实现。 第2 章系统关键技术 本文在异构数据协议集成软件系统的实现中应用了多种技术,本章主要简介 系统中要用到的三种关键技术:n i o ( n e wi n p u t o u t p u t ,新i o ) 技术、协议识别 技术及x m l 技术。 2 1n 1 0 技术 1 n i o 技术简介 i o ( 输入输出) ,一般指的是数据的输入输出操作。在j a v a 语言中,i o 有 传统1 0 与新i o 两种方式。传统i o 是通过字节的移动方式处理数据的输入输出, 使用传统i o 的系统一次只能处理一个字节【14 1 ,其数据处理效率不高。而n i o 是 对传统i o 的改进,它使用内存映射文件方式,以块的形式对数据流进行输入输 出操作,其核心创新增加的了缓冲容器( b u f f e r ) 和通道( c h a n n e l ) 两个对象。 通道代表对i 0 设备的连接,可以直接将指定的数据或者文件部分全部映射 为缓冲数据。通道向缓冲容器发送数据,或者从缓冲缓冲容器中获取数据 1 5 1 。 缓冲容器可以被看做为一个容器,被用来存储或运输数据。开发人员在使用 n i o 时只与缓冲容器进行数据的交互,操作其中的大块数据,这样可提高了程序 的数据处理效率。j a v a 中提供了缓冲容器的操作各种基本数据的子类,但唯一与 通道交互的缓冲容器是b y t e b u f f e r ( b u f f e r 的子类) ,用以存储未加工的字节数据。 与缓冲容器交互时应注意其存在四个重要的属性 1 4 - 1 6 1 :容量( c a p a c i t y ) 、上 界( 1 i m i t ) 、位置( p o s i t i o n ) 以及标记( m a r k ) : 容量:在创建缓冲时指定,必须为正数,代表缓冲能容纳的最大数据量, 一旦指定就不可再更改。 上界:缓冲容器中第一个不能被操作的数据的位置索引,在其以后的数 据将不能被读写,直到更改缓冲容器上界。 位置:下一个将被读或写的数据的位置索引。 标记:备忘位置索引,允许程序直接将缓冲器中数据位置定位到标记处。 在实际开发时,四者的关系为:o = 标记 = 位置 = 上界 = 容量。 2 基于n i o 的非阻塞s o c k e t 通信 s o c k e t 是进程问通讯的方式之一,用以实现分布在相同或不同主机的相关进 程间的数据交换。阻塞式s o c k e t 通信指的是当程序使用线程执行数据输入、输出 操作以后,在操作返回之前线程会一直阻塞,这样一条线程只能对应一个客户端。 异构数据| ! ! j j 、议集成软件系统砹汁与开发 = := =:= = = = = :2 = := 兰! 詈= ! ! 皇掣! 阜竺! ! ! ! ! - ! ! ! ! ! ! ! 竺= ! ! = 苎= = = ! = 竺= = ! = = = = = 亨= = = = = = = = = = = = = = = = 寰! ! 孽竺 使用阻塞式s o c k e t 通信的服务器并发处理性能很差,而使用n i o 技术可以让服务 器仅借助一条或者几条线程的方式同时处理连接于服务器的所有客户端,这是通 过n i o 非阻塞式通信的特性而实现的。 n i o 为非阻塞式s o c k e t 通信的实现提供了可选通道( s e l e c t a b l e c h a n n e l ) 和 选择器( s e l e c t o r ) 这两个特殊对象: 可选通道:通道( c h a n n e l ) 的抽象子类,支持非阻塞i o 操作,对应于 服务器与客户端具体子类分别为s e r v e r s o c k e t c h a n n e l 与s o c k e t c h a n n e l 。 选择器:可被视为对象的多路选择器,监测多个可选通道的1 0 使用状况。 所有希望使用非阻塞方式工作的系统( 服务器与多个客户端) 都需要向 选择器进行注册后才能工作。 c n e n fc e n tc l i e n t 图2 1n i o 非阻塞s o c k e t 通信1 1 4 1 如图2 1 所示,服务端打开一个通道( s e r v e r s o c k e t c h a n n e l ) ,并向通道中注 册一个选择器( s e l e c t o r ) ,这个选择器是与一些其感兴趣的操作的标识 ( s e l e c t i o n k e y ,即通过这个标识可以定位到具体的操作,从而进行响应的处理) 相关联的。服务端基于选择器( s e l e c t o r ) 轮询通道( s e r v e r s o c k e t c h a n n e l ) 上注 册的事件,当检测到事件发生时,会调用空闲的线程进行相应的处理。客户端在 请求与服务端通信时,也可以像服务器端一样注册并通过轮询来处理指定的事件, 事件处理都是异步的,所以线程不会阻塞。 硕卜学位论文 2 2 协议识别技术 协议的数据集成需要依靠协议识别技术来实现,随着网络应用日新月异的发 展,有关协议识别的种类与方法也越来越多,主要有以下几类: 1 基于端口的协议识别 网络中各主机间进程的应用层通信需要指定通信双方的源地址和目的地址, 这通过主机的i p 地址的唯一性可以标识。在实际应用中,某一主机的通信是可以 和其他多个主机同时进行不同的通信,也即同一主机可以提供多个对外的网络服 务,比如h t t p 通信、f t p 服务及t e l n e t 服务等。为确保各通信进程的对应唯一 性,在通信时各主机还应指定通信时的端口标识。 主机中存在6 5 5 3 6 个可用端口,其范围为o 6 5 5 3 5 。据i n t e r n e t 编号管理局 ( i n t e r n e ta s s i g n e dn u m b e r sa u t h o r i t y ,i a n a ) 规范,端口的分配有三种方式【l7 】 保留端口:端口的分配范围为0 1 0 2 3 ,它们主要被应用于已知的应用层 协议。 动态分配的端口:这种端口的端口号没有固定的应用协议绑定使用,可 以由协议开发者动态的分配给协议,其分配范围一般都是大于1 0 2 4 的。 注册端口:注册端口是比较特殊的一种端口,它可以固定为某种应用软 件的服务端口,但是它又不代表已经形成的标准应用层协议。 一些常用的应用层协议与其端口号的对应关系如表2 1 所示: 表2 1 常用协议对应端口号及描述【1 7 】 通常情况下,能被使用基于端口的协议识别技术来识别的协议一般为i a n a 中注册的标准应用层协议或者在某软件中注册的协议。但随着网络技术的发展, 越来越多协议的端口的使用方式不再遵循着i a n a 的规范【18 1 ,主要表现有动态端 异构数据协议集成软件系统i 5 乏计与开发 = = = = := = = = = :! 墨= = ! 皇葛= 詈! ! ! 阜! ! :- ! ! 竺! ! ! 皇! ! ! ! = 竺竺! = = = ! ! 苎! ! 烹= ! = = ! ! ! = ! ! ! = ! ! = = ! = = = = = = = = = = = = = = = = = = = 口通信、通信时不按规范选择通信端口及不在i a n a 中注册其使用的端口号。通 信中主机的同一端口可能会接收到其他主机错误发送过来的数据。这些情形使得 基于端口的协议识别技术的准确率大大下降,漏判率与判错率显著增加,但技术 的算法所占用的空问时间性比较小,协议识别速度快,在应用时往往和其它协议 识别算法结合使用。 2 基于内容特征的协议识别 基于内容特征的协议识别主要是通过提取负载中的特殊信息或者负载中出现 频率较高的信息,主要提取内容特征标识、协议头尾特殊标志或其组合等信息, 然后将其与预定义的应用层协议的特征库进行匹配,从而判断此负载所属的协议 1 8 - 2 0 。此种识别方法的准确率比较高,但其具有空间时间性较复杂、占用系统的 资源较多、识别速度相对较慢等缺点。目前基于内容的特征识别方法研究主要致 力于在保证准确率的同时降低其算法的复杂性与减少资源的占用率,主要分为基 于字符串的模式匹配识别与基于正则表达式的匹配识别两种方法。 2 1 基于字符串的模式匹配 字符串模式匹配就是在某一大文本字符串中寻找一串与目标字符串完全相等 的字符,并标记其出现的位置。在匹配算法检索符号序列的方式中,字符串匹配 模式有前缀模式、后缀模式以及两者结合模式之分,这些模式的匹配检索过程可 以看做利用一个固定的长度窗口来检索将要匹配的字符串,它从左向右进行窗口 的移动,在窗口中检验模式的匹配,直到找到所匹配的字符串模式或者扫描完整 个大文本字符串。 字符串匹配算法的描述可以用以下公式表示【1 9 : 已知:有限符号集合y ,大小为口。 模式串p a t ,p = p ,p 2 p 。,p ,( 1 i m ) ,m 是模式串长度。 目标串t x t ,t = 正瓦瓦,p ,z ( 1 j ) ,1 1 是目标串长度。 求解:出现的位置集合o = i ) ,使得v i o ,t j + k = p 女( 0 k , 一1 ) 。 对模式匹配的算法中,比较常用的算法有b f 算法、k m p 算法、b m 算法等。 b f ( b r u t e f o r c e ,蛮力) 算法,是最基本的串匹配算法,它所依赖的基本技 术是扫描技术。所谓扫描技术,就是通过一定的策略将待求解的问题的所有元素 依次处理一次,从而找出问题的解。算法是从大文本字符串中的第i 个字符开始 和将要匹配的模式的第一个字符相比较,相等则继续挨个向后比较后续字符,不 相等则从第i + 1 个字符位置重新比较。依次类推,直到匹配成功或者匹配完所有 大文本字符串。b f 算法的基本思路图可如下图2 2 所示: 主串s d 。 卅 模式t k 。 一一一i 图2 2b f 算法回溯匹配 b f 算法回溯次数太多,最坏情况下的时间复杂度是 o ( p a t t e r n l e n g t h 术t a r g e t l e n g t h ) ,匹配速度较慢。 针对上述情形,1 9 7 7 年d e k n u t h 与v r p r a t t 和j h m o r r i s 同时提出了一种 改进方法,其改进的核心思想在于:每当匹配过程中出现字符串比较不等时,不 需回溯指针,而是利用已经得到的“部分匹配”结果,将模式向右尽可能远“滑动” 的一段距离,继续进行下一次比较 2 1 1 。这种算法被称为k m p ( 克努特莫里斯一普 拉特操作) 算法,其时间复杂度为o ( p a t t e r n l e n g t h + t a r g e t l e n g t h ) ,当文本字符串 较大时,时间复杂度可以只为o ( t a r g e tl e n g t h ) 大大的提高了字符串的匹配效率。 k m p 算法可以用以下伪代码描述: ( 1 ) 在串s 和串t 中分别设比较的起始下标i 和i ; ( 2 ) 循环直到s 中所剩字符长度小于t 的长度或t 中所有字符均比较完毕; a 如果s 【i = td ,则继续比较s 和t 的下一个字符;否则 b 将j 向右滑动到n e x t j 】的位置,即j = n e x t j ; c 如果产0 ,则将 和i 都加1 ,进行下一趟比较。 ( 3 ) 如果t 中所有字符均比较完毕,则返回匹配的起始下标,否则返回0 。 b m 算法也是对传统蛮力算法的一种改进算法,它由r s b o y e r 和j s m o o r e 共同提出。其与k m p 算法的基本不同点在于b m 算法是一种后缀模式的算法, 它从右向左扫描整个目标字符串。b m 算法定义了两个规则:好后缀规则和坏字 符规则。依赖于这两个规则,算法选择不同的扫描跳跃方式,其最好情况下的时 间复杂度为o ( n m ) ,最坏情况下时间复杂度为o ( m * n ) ,其中n 为大文本字符串 的长度,m 为模式串的长度。 在基于字符串模式匹配的协议识别技术的应用中,每个应用层协议必须有区 别于其他的协议的特殊字符串,这个字符串可以是几个字符串的组合或者是协议 特有的字符串,并且字符串需尽量出现在协议报文的前面,这样可以提高字符串 匹配的速度。表2 2 展示了几种常用协议的特征串: 9 异构数据协议集成软件系统设计与开发 表2 2 常用协议的特征串表 协议 协议特征串 偏移】 b g p s m t p d o o m 3 h a l f l i f e 2 d e a t h m a t c h h t t p bi t t o r r e n t a p p l ej u i c e 1 0 0 b a o 、x 讯x m x m x m x 讯x m x m x m x m x m x m x m x m x m x f f l x f f 0 r c p r r o 0 】 x f f x f f c h a l l e n g e o h l e m p d e a t h m a t c h + h t t p + 】& & c o n n e c t i o n : + & & c o n t e n t t y p e : + 】& & c o n t e n t - l e n g t h :【4 x 1 3 b i t t o r r e n tp r o t o c o l 0 a j p r o t x o d x o a 0 】 x 0 1 x o1 x 0 5 x o a 2 2 基于正则表达式的协议识别 由于正则表达式的精炼性与简洁性,其往往被应用于各个领域进行字符串的 匹配。近年来,协议识别领域在字符串的匹配上也更倾向于此种协议识别方法。 基于正则表达式的协议识别技术有基于n f a ( n o n d e t e r m i n i s t i cf i n i t ea u t o m a t a , 非确定有限状态自动机) 与基于d f a ( d e t e r m i n i s t i cf i n i t ea u t o m a t a ,有限状态自 动机) 之分【2 2 1 ,其协议匹配识别主要过程是将正则表达式经过转换处理成为n f a , 如果是基于d f a 正则表达式识别,此处继续将n f a 转换为d f a ,然后将得到的 n f a 或d f a 构造相对应的匹配引擎进行协议的匹配。这两种正则表达的识别方 法在应用时都会经过预编译处理,其对系统的资源消耗都较低,但时间代价比较 高。为优化这些协议识别方法的速度,一些著名的算法被研究提出,主要有 t h o m p s o n 算法和h o p c r o f 的填表算法。有时为追求更高的识别速度,基于正则表 达式的协议识别技术也可以配合硬件一起合作工作。 协议识别的技术还存在其他许多种方法,比如有基于会话的协议识别、基于 流量的协议识别及深度检测识别方法等,在此就不一一阐述。但在实际应用中, 开发人员应根据具体软硬件条件及协议的特征方法选择合适的识别技术进行应 用。为达到最佳效果,合适的识别技术可以是某一种识别方法,也可以是几种识 别方法的组合。 2 3x m l 技术 2 0 世纪8 0 年代,s g m l ( t h es t a n d a r dg e n e r a l i z e dm a r k u pl a n g u a g e ,标准 通用标记语言) 形成问世,其提供了与其它用户交换文档的一种标准方式,具有 高度的灵活性。但同时s g m l 也比较复杂,只适宜大型用户或者企业使用。在9 0 年代早期,由于w e b 需求,欧洲粒子物理研究所的b e r n e r s l e e 从s g m l 中抽取 1 0 硕_ _ _ l 学位论文 = ! = ! ! = ! = ! = = ! = = ! = = = ! ! ! ! ! ! ! ! ! ! ! ! ! = ! ! = ! := = :2 = :2 := := := := = := := = = := = = ! = = = ! = = 子集,设计了h t m l 语言 23 1 。 h t m l 语言是一个简化了的s g m l 应用,它摒弃了s g m l 的大多数复杂性, 同时提供s g m l 部分功能。但在h t m l 文档中,数据与页面的表现形式是糅合一 起的,一旦有数据添入或者减少都会给文档改动带来极大的困难,同时h t m l 语 言也只提供几个有限的用于构造文档的元素集合。在日益广泛的i n t e r n e t 应用中, 由于数据交换频繁,简单的h t m l 语言已经远不能满足人们的需求,需要一种新 的标记语言的出现。在此背景下,x m l 语言应用而生。 x m l 引( e x t e n s i b l em a r k u pl a n g u a g e ,可扩展标记语言) 是从1 9 9 6 年第一次出 现出现,并向w 3 c ( t h ew o r l dw i d ew e b c o n s o t i u m ,全球信息网联盟) 提案, 而后在1 9 9 8 二月被发布为w 3 c 标准( x m l l 0 ) 。它也是s g m l 的一个子集,它 既可以继续使用s g m l 的许多功能,也能仍然使用h t m l 提供的所有重要选项。 它包含文档类型定义( d o c u m e n tt y p ed e f i n i t i o n ,d t d ) 或x m ls c h e m a ,x s l 及 x m l 文件本身三部分。d t d 或x m ls c h e m a 用来规定x m l 文件的逻辑结构,定 义x m l 文件中的元素、元素的属性以及元素和元素属性之间的关系。x s l 用来 规定x m l 文档的呈现样式,使得数据与其表现形式相互独立。此外, x l i n k ( e x t e n s i b l el i n kl a n g u a g e ,可扩展链接语言) 也是x m l 的一个组件,x l i n k 可以进一步扩展目前w e b 上已有的简单链接。 图2 3x m l 体系结构图 如图2 3 所示,首先我们通过d t d 或x m l s c h e m a 定义数据类型,然后通过 x m l 文件输入数据内容构成文档结构树,最后通过由x m l 文件关联的c s s 或 x s l 样式表文件来完成x m l 文档。 x m l 简明、易学、易用、易实现,为w e b 编程注入了新的活力,并为信息 技术带来新的机遇。x m l 有许多特点,其优越性十分明显,具有广阔的应用前景。 ( 1 ) 良好的验证机制 x m l 文件格式具有验证机制,是属于良好格式的文件。x m l 提供一组可以 自定义的规则集,允许任何用户根据其本身的要求创建自己的标记元素集,但标 记的定义和使用是否符合语法,需要验证。x m l 通常有两种验证方法。一种是 d t d ,即文档类型定义,d t d 是一个专门的文件,用来定义和检验x m l 文件中 的标记。另一种是x m ls c h e m a ,它比d t d 更优越,用以定义元素的内容及其属 性值的数据类型。 ( 2 ) 文档结构与显示内容相分离 在x m l 中数据和显示格式是分离设计的。h t m l 是x m l 中元数据文件的容 器,x m l 元数据文件中存放的是纯数据,它可以以源的形式注入于h t m l 文档。 可以说h t m l 文档提供数据的展示外观样式,而x m l 是数据的存放数据库。x m l 文件中使用的t a g 是开发人员自定义的,提高了文件的可读性。数据与显示样式 的分离设计,允许外观设计与数据组织分开进行,可以提高系统的开发效率。 ( 3 ) 面向对象性 x m l 的文件是树状结构,同时包含自定义的属性,这非常有利于面向对象方 面的编程,可以方便的实现对象数据的存储。 ( 4 ) 可扩展性 x m l 允许使用者创建和使用他们自己的标记。这一点意义巨大,企业可以在 特定行业中可以定义该领域的特殊标记,作为该领域信息共享与数据交换的基础。 ( 5 ) 其他特性 x m l 还具有简单有用、开放的国际化标准和易移植等特性。 x m l 具有如此好的特性,可以非常方便的应用于数据集成与数据交换领域 中。目前不同企业、不同部门中存在着许多不同的数据应用系统:操作系统有n t 、 u n i x ,数据库系统有s q ls e r v e r 、o r a c l e ,m y s q l 等。传统的在这些不同的操 作系统、不同的数据库软件之间传输信息、进行数据共享等操作,必须借助于第 三方软件,非常之不便。有了x m l ,各种不同的系统之间可以采用x m l 作为交 流媒介。x m l 不但简单易读,而且可以标注各种文字、图像甚至二进制文件,媒 介交流系统只要有x m l 处理工具,就可以轻松地读取并利用这些数据,这样使 得x m l 成为一种非常理想的数据交换工具。图2 4 示意了x m l 在数据交换领域 中的应用。 图2 4x m l 在数据交换领域中应用示意图 1 2 i - 卜学位论文 ! ! ! ! ! ! = ! ! ! ! ! ! ! ! ! ! ! ! = ! ! = = = = = = = = = = = = = = = = = = = = = = = = = = = = ! ! = = ! ! = ! ! = ! ! ! = = 1 2 4 本章小结 本章首先对n i o 技术及其非阻塞通信的应用做了简单介绍,n i o 技术是并发 服务器开发的一中关键技术;然后阐述了多种协议识别技术的工作原理,在实际 开发时,开发人员可以根据需求将不同协议识别技术结合应用;最后讨论了x m l 技术的起源及其特点与应用,x m l 技术现已成为数据交换领域的一个重要手段。 异构数据仂、议集成软件系统没计与开发 := = := ! ! ! ! = = ! _ e = ! ! ! ! ! ! ! ! = ! ! ! ! ! = ! ! = = ! = = = = = ! = ! = = ! = = = = = = = = = ! = = = = = = = = = = = = = = = = = = = = = 第3 章系统应用框架技术 框架,即f r a m e w o r k ,是应用于某一开发领域的一组相互协作的类文件的组 合,能被重复用来完成系统的各项功能。框架将设计划分为一组抽象类,并定义 他们各自的责任和相互之间的协作。它提取出特定领域中软件开发的共性,将易 变化的部分封装为扩展点,并通过回调机制进行扩展点的控制,其目的尽量追求 重用所带来的价值量 25 1 。开发人员通过继承框架类中的某些类以及组合其实例来 完成某种特定的软件功能应用,可以缩短软件开发周期,降低软件开发成本。 3 1 s p r i n g 框架 s p r i n g 2 6 1 是一个全面的、模块化的、非侵入式的轻量级开源框架,是为简化 企业应用的开发而产生的。s p r i n g 核心功能主要有控制反转i o c ( i n v e r s eo f c o n t r 0 1 ) 与面向切面编程a o p ( a s p e c to r i e n t e dp r o g r a m m i n g ) ,通过配置文件或 元数据注释的方式简化程序的代码量,实现应用系统的低耦合与高内聚等特性。 同时,s p r i n g 着重关注系统架构分层,为应用程序提供了用于持久层的s p r i n g j d b c 、基于表现层的s p r i n gm v c 以及业务逻辑层的事务管理等模块化企业级应 用技术。由于s p r i n g 的优越性,其目前在企业级软件应用开发中是最为流行的框 架之一。 在传统的企业开发应用中,“笨重”的e j b 由于其高昂的代价、过长的开发部 署周期以及复杂的开发机制越来越不受人们的欢迎。s p r i n g 思想的提出,最初来 自r o dj a h n s o n 所著的( ( e x p e r to n e o n - o n ej 2 e ed e s i g na n dd e v e l o p m e n t ) ) ,阐述 了在不使用e j b 开发j 2 e e 企业级应用的一些设计思想和具体的做法 2 7 1 。s p r i n g 框架在2 0 0 3 年6 月的a p a c h e2 0 的使用许可中被首次发布,其版本1 0 在2 0 0 4 年3 月发布。由于其开源性,在众人的探索下,目前s p r i n g 版本已经发布到3 1 。 经历了众多的改进,此框架现已经能和许多主流框架如h i b e r n a t e 、s t r u t s 、j m s 等框架无缝集成。 1 s p r i n g 体系结构 1 4 图3 1s p r i n g 体系结构 由图3 1 中我们可以看出,s p r i n g 的体系结构由7 个组件组成。在开发应用 中,每个组件既可以单独使用,也可以联合其他组件一起应用。各组件的具体功 能如下【2 6 引1 : ( 1 ) s p r i n gc o r e 组件:s p r i n g 框架的核心组件。由图可知,s p r i n g 框架的 其他组件都是构建在此模块之上,它是整个s p r i n g 框架的基础组件。在此模块中, 如图3 1 所示,s p r i n g 提供了一个b e a n 容器以及各种s p r i n g 框架内部使用的工具 类。b e a n 容器具有了i o c 与依赖注入等功能,实现对配置文件中各j a v a b e a n 的 依赖关系的管理,这有利于应用系统的松散耦合。同时,组件提供了s p r i n g 框架 的基础i 0 工具类等。 ( 2 ) s p r i n ga o p 组件:a o p 有经历过两次变革( 这将在稍后提到) ,s p r i n g a o p 属于

温馨提示

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

评论

0/150

提交评论