关系网络可视化分析

2024-09-24

关系网络可视化分析(共4篇)

关系网络可视化分析 篇1

0 前言

网络协议是计算机网络中进行数据交换而建立的规则、标准和约定的集合,是用来描述进程之间信息交换数据时的规则术语。在计算机网络中,两个相互通信的实体处在不同的地理位置,其上的两个进程相互通信,需要通过交换信息来协调它们的动作和达到同步,而信息的交换必须按照预先共同约定好的过程进行。

一个网络协议至少包括三要素:

(1)语法用来规定信息格式;数据以及控制信息的格式、编码及信号电平等。

(2)语义用来说明通信双方应该怎么做;用来协调与差错处理的控制信息。

(3)时序详细说明事件的先后顺序;速度匹配和排序等。

在典型的网络结构中,网络协议和通信采用的是分层式设计方案。在当前最流行的OSI网络结构参考模型中,同层的协议之间能相互进行通信。

网络协议分析是指通过程序分析网络数据包的协议头和协议尾,从而了解信息和相关的数据包在产生和传输过程中的行为,通过多层协议头和协议尾及相关信息来识别网络通信过程中可能出现的问题,将多层协议和数据包从低级数据包编译升级为高级数据包,以便于实时观察以及了解网络的使用和流量分析。

目前国内外的研究主要基于网络流量观察以及网络监视探测,网络数据分析。对于网络协议在语法以及语义的分析较为成熟。工具大多通过数据化,表格化的方式展现分析结果。然而对于网络协议数据的过程分析很难通过数据化的范式给人以直观的感受。随着技术的不断发展,如何将网络数据过程可视化成为了新的关注点。

1 可视化技术

随着人们对用户体验和视觉冲击力追求不断地提高,用户希望能够更加直观的了解网络协议传输过程,从而更好的理解网络协议并有效地监控网络状态。

目前有许多可视化技术,主要有Flash,GDI,GDI+,Direct X,WPF。

(1)Flash

Flash特别适用于创建通过Internet提供的内容,因为它的文件非常小。Flash是通过广泛使用矢量图形做到这一点的。Flash比起3D技术等具有轻量级,加载快速的优点,但展现效果不如3D技术细致。

(2)GDI

GDI不仅提供了图形图像的绘制功能,同时还对硬件显示进行了更高层次的抽象。换句话说,它将硬件的复杂性封装在了GDI API中,用户使用起来更加方便。

(3)GDI+

顾名思义,GDI+是作为GDI的扩展而被引入到Windows中的。它提供了很多GDI所没有的扩展功能,例如对JPG和PNG图像格式支持,渐变阴影和抗锯齿等。无论是GDI还是GDI+,它们最大的局限就是不支持硬件加速,同时无法展现动画和3D图像。

(4)Direct X

正如在上面所分析的那样,GDI及其扩展GDI+的一个最大问题就是不支持硬件加速和动画。这对于游戏开发者来说,是无法接受的。为了解决这个问题,微软开发了Direct X。Direct X能够很好的利用硬件加速,能够支持3D,全彩图像,流媒体等等,非常适合游戏工业等对图形图像处理要求比较高的领域。

(5)WPF

WPF是微软新一代图形系统,运行在.NET Framework 3.0架构下,为用户界面、2D/3D图形、文档和媒体提供了统一的描述和操作方法。基于Direct X技术的WPF不仅带来了前所未有的3D界面,而且其图形向量渲染引擎也大大改进了传统的2D界面。因为WPF是在Direct X的基础上实现的,所以开发人员可以利用WPF创建简单的UI元素,还可以更进一步,开发自定义的UI元素,例如网格(Grid),流文档(Flow Document)和椭圆(Ellipse)等。还可以利用WPF创建轻量级动画。

利用可视化技术,我们希望能够获得以下特性:

(1)实时性

希望得到与实际传输过程一致的展现效果,而不是预编译的一段动画。通过分析网络数据包,自动识别网络数据的上下文关系,根据网络数据上下文,追溯数据的传输过程,从而了解网络数据的生命周期,并根据网络数据的生命周期,进行生命周期模拟,过程可视化展现,对网络协议的语法以及时序进行优化展示。

(2)可控性

由于网络数据在传输过程中的时长可能是微秒级的,1:1的真实展现,很难识别。通过可视化技术,我们将过程进行1:n的放慢,使用户可以清晰的看到完整过程,并可以在重点过程记录标签。

(3)良好的体验

可视化的过程需要是流畅的,平滑的,易于控制的,具有良好的人机交互。

不同的技术在实施中有不同的特点,在权衡效果,性能,人机交互以及各方特性后,我们认为采用WPF技术能够更好完成需求。采用Flash技术,其简单轻便的特点是突出的,但在实时性上会比较差;采用GDI/GDI+技术,该技术非常成熟,在实时性上较Flash更为优秀,但其渲染效果较差,很难带给用户良好的用户体验;Dirext X技术可以带给用户卓越的用户体验,但是这款技术对于显卡硬件的要求比较高,同时性能消耗比较大;而采用WPF技术,可以很好的照顾各个方面。

2 框架设计

网络协议可视化工具适用于不同网络适配器,根据用户定义过滤过则,进行数据包捕捉、过滤。捕获数据保存,根据原始数据进行数据包语法、语义的解释,识别语序以及数据间的联系,追溯数据之间的联系,可视化数据传输的过程。

研究、学习国内外成功网络协议分析器的思想和方法,并且结合已有相关开发经验,研究、设计协议过程分析与识别功能。基于Win Pcap进行网络数据的监听,自定义动态过滤。将捕捉的数据保存,分离出数据包各层协议的首部信息和携带的数据信息,根据数据包的首部信息判别数据协议类型,根据数据协议类型分层解析数据包的数据内容,完成网络数据的语法以及语义分析。

通过分布式数据监听,解析多点数据协议,分析多点数据中协议标识号相同的数据包,根据发送时间对数据包进行排序,识别数据包传输过程,完成对数据包语序的分析,如图1。

3 关键技术

(1)协议过程分析与识别

基于Win Pcap进行网络数据的监听,自定义动态过滤。将捕捉的数据保存,分离出数据包各层协议的首部信息和携带的数据信息,根据数据包的首部信息判别数据协议类型,根据数据协议类型分层解析数据包的数据内容,完成网络数据的语法以及语义分析。

通过分布式数据监听,解析多点数据协议,分析多点数据中协议标识号相同的数据包,根据发送时间对数据包进行排序,识别数据包传输过程,完成对数据包语序的分析。

(2)算法优化

根据协议过程分析与识别的结果,进行动画展示主要分为两个步骤,第一个步骤是对数据的筛选以及排序,第二个步骤是根据上一步的筛选结果进行动画绘制。在第一个过程中将有大量数据在内存中进行数据处理,第二个步骤会占用大量的GPU资源以及内存资源进行图形的绘制。当结果数据过于庞大时,第二个步骤会消耗大量的系统资源。可能会出现内存不足的现象。

考虑到这个风险,我们对大数据量可视化工作采用分段解析并渲染,使内存中同时只运行一段动画的数据,从而降低资源消耗,使动画的播放平滑流畅(图2)。

4 总结

本文研究的网络协议过程分析能够组织网络数据的上下文,将追溯网络数据的传输过程,了解网络数据的生命周期。将网络数据的语法,语义,语序以及数据之间的关系更好的组织起来。本次课题研究的网络协议过程分析可视化,采用了WPF技术,这种技术可以优化绘制效果,增强用户体验,使用户能够更加直观的理解一个网络数据活动的过程,将网络数据的传输过程立体化。同时能够提高开发效率,减小开发成本。

参考文献

[1]PRuoming Pang.PVerna Paxson,PRobin Sommer.PLarry Peterson.yacc for writing application protocol parsers.ACM.2006.

[2]W.Richard Stevens.TCP/IP Illustrated Volumne 2 The Protocols.Addison Wesley/Pearson.2004.

[3]C.Anderson.Essential Windows Presentation Foundation.Addison-Wesley.2004.

[4]陈松桥.现代软件工程[M].北京:清华大学出版社.2004.

[5]Gamma E.设计模式-可复用面向对象软件的基础[M].北京:机械工业出版社.2000.

关系网络可视化分析 篇2

关键词:高速公路,复杂网络,四川省,Gephi

1四川省社会经济发展及交通建设现状

在缓慢复苏的世界经济发展背景下,中国经济由高速转向中高速增长的“新常态”。四川省委省政府在新的国际国内政治经济环境下,认真贯彻执行党中央、国务院的决策部署,正确把握发展大局,2014年全省实现生产总值2.85万亿元(增长8.5%);城镇居民人均可支配收入增长9%①(参见图1)。

在交通方面,四川省201 4年公路、铁路、航空和水路等主要运输方式完成货物周转量2474.4亿吨公里;完成旅客周转量1584.0亿人公里;高速公路通车里程5510公里③(参见图2)。

基于四川省交通建设高速发展,高速公路通车里程不断增长并形成复杂网络,该文运用复杂网络可视化图形分析工具一GEPHI,对形成的高速公路复杂网络拓扑结构及其性状进行深入分析,为规划、管理、建设等部门领导提供科学管理和决策的参考。

2复杂网络可视化图形分析工具一GEPHI

Gephi是一款由多国工程师和科学家联合研发、基于JVM的跨平台开源免费软件,主要用于分析各种复杂网络和系统。

Gephi被用于对各种网络和复杂系统的动态和分层图的交互可视化研究,如:关联分析、数据分析、社交网络、生物网络等复杂网络分析。除通过输入数据生成可视化图形外,还能自动计算并生成网络对应的特征参数分析图,该功能对于“大数据”时代下海量数据的复杂关系分析显得尤为重要。

3基于Gephi的四川高速公路复杂网络可视化图形分析

3.1四川省高速公路基础数据

具体见表1。

3.2基于Gephi的四川省高速公路复杂网络生成图

从图3中可以看出,四川省高速公路复杂网络共有节点476个,边588条。形成的复杂网络内射洪县、南部县、遂宁市、南充市、宜宾市和中江县等市县的节点度较大,联接的高速公路较多,交通相对畅通。省内连接成都市的高速公路都是通过成都绕城高速经三环路达到市中心,因而成都市的省道连接数在图中不高,而成都绕城节点度最高。

3.3四川省高速公路复杂网络可视化图形特性分析

应用Gephi可视化图形软件,不但能够得到省内高速公路复杂网络的可视化图形,而且能够对生成网络的拓扑特性自动分析并评估网络特性。这是选取Gephi作为分析工具的主要原因。

从图4中可以看出,四川省高速公路复杂网络度值最大为10,整个网络中超过75%的节点度大于等于2,这些站点可达性水平较高,承担着全省大量的交通量。同时表明,近年来四川省高速公路密集建设,对四川省交通运输水平提升成果明显。

从图5中可以看出,四川省高速公路加权网络的平均路径长度距离是12.53。表明四川省地域广阔,尤其是山区高速公路使得局部区域的高速公路成为该地区唯一通达途径。

从图6中可以看出,接近中心性较好的站点多位于成都及其附件的网络中心位置。这些节点连接道路数量相对较多,可达性较好,在网络中交通流传播速度快,影响范围大,路段的抗毁性较高,因而会在局部区域提高公众出行便利性和货物运输效率。但是,当出现拥挤或交通事故时,为减少其对整体路网的影响程度,可根据各站点接近中心性指标快速确定事故影响范围,以便短时间内采取措施恢复交通。

从图7中可以看到,四川省高速公路网络的模块化程度较高,同一模块化区域内部连通性较好。

4基于复杂网络分析的四川省高速公路开发建设的对策建议

综上所述,四川省高速公路网络主要集中在成都、宜宾、遂宁、广元、射洪、南部等市县,南北走向与东西走向发展不平衡,重要收费站相对集中在成都市中心城区,在未来的高速公路建设中应减少与此类中心性指标较高节点的直接连接,防止车流量进一步增高,保证核心区域收费站安全畅通。为提高网络整体运输效率和连通性,建议避开与重要型节点直连,采用与周边邻近节点连接,必要时可考虑设置环线,以减少交通压力,有效提高车流通过速度。

5结语

从文中可以看到,应用Gephi来分析复杂网络不仅可以生成表征节点连接关系的可视化图形,而且能计算出相关参数,因而其应用前景广大。

参考文献

[1]2015年四川省人民政府工作报告[EB/OL].http://www.sc.gov.cn/10462/10464/10797/20 15/2/5/10326259.shtrrd

[2]四川公众出行交通信息服务系统-四川路网[EB/OL].http://www.scjtcx.cn.

[3]高自友,吴建军,毛保华,等.交通运输网络复杂性及其相关问题的研究[J].交通运输系统工程与信息,2005,5(2):79-84.

关系网络可视化分析 篇3

社交网络是基于六度分隔理论[1]提出的新型网络应用形式。新浪微博作为国内最大的社交网络平台, 正慢慢改变国人生活中的点点滴滴。它不仅包含单个用户的用户生成内容及用户属性, 更包括用户间的相互关注关系, 可以说这更像是一种现实社会在虚拟网络世界中的映射侧面[2]。同时, 新浪微博中用户关系并非是静态的、片面的, 而是不断地随着消息的流转而动态发生改变。这些消息的流转、用户关系的动态变化, 又能对现实社会产生潜移默化的反作用力。因此, 通过对社交网络数据的采集、挖掘, 还原虚拟社交网络动态变化的整个过程, 发现消息流转的轨迹途径[3], 能够帮助我们更好地理解社交网络的内涵, 掌握其中隐含的客观规律, 更能够利用这些客观规律产生巨大的社会、经济、政治、商业价值。

本文从一个系统开发者的角度, 尝试开发一套基于新浪微博的应用系统, 对社交网络中的消息流转轨迹、用户群体动态关系变化进行数据提取、分析与挖掘, 通过各种数据采集、数据分析、数据可视化成果展示技术, 重现微博热点事件的扩散过程, 对社交网络中一些用户关注的局部网络属性关系进行抽象呈现, 对用户关系形成的复杂网络[4]开展分析。利用这些信息的潜在价值帮助用户理解所关注领域、群体的动态发展关系, 分析局部关系网络中的关键性节点。这样通过社交网络分析[5]来进行数据潜在价值的获取, 不论是对于网络热点事件的事后分析, 还是对于用户定制化的广告推广营销, 都具有很重要的意义。

1 系统设计与相关基础理论

1.1系统结构框架

本文中尝试开发的是一套基于新浪微博的数据采集、挖掘、展现系统, 它主要针对于社交网络中的消息转发轨迹、用户群体的动态关系变化[5]。系统从设计层次上来看, 可以分为前端采集模块、数据存储模块、数据挖掘业务模块、控制调度模块及用户输入及结果呈现模块。每一个模块独立地完成系统中的特定功能点, 并通过低耦合的接口进行协作通信。

前端采集模块负责对新浪微博平台数据的采集。由于数据处理能力的局限无法对新浪微博全数据进行采集处理, 系统设计的采集策略是对用户关注的局部数据进行实时采集[6]。也就是说, 需要用户在用户输入界面中输入其关注的特定微博ID字符串。控制调度模块通过用户输入向前端采集模块发放采集任务, 对用户关注的特定微博数据进行采集处理。这种机制就要求前端采集模块拥有良好的性能表现, 能够准实时地采集用户关注数据。

数据存储模块负责对采集数据的存储规整, 同时它需要为数据挖掘业务模块提供良好的数据访问资源。通过构建适当地数据存储模块能够提高数据挖掘业务模块的性能表现, 简化业务逻辑的实现过程。

数据挖掘业务模块是对数据挖掘业务逻辑的封装, 它提供一系列数据挖掘操作的接口, 将数据存储模块中存储的数据作为输入, 输出挖掘出的数据潜在信息。由于数据挖掘业务的复杂逻辑, 这样地封装对于系统的可维护性、健壮性都是非常有益的。

控制调度模块扮演地角色等价于MVC[7]模式中的控制器, 它从用户输入界面获得用户输入, 同时调度其他模块完成用户需要的操作, 将最终结果推送回数据展示界面。控制调用模块作为整个系统的调度中心, 负责程序运行过程地调度, 通过各个模块地接口调用实现完整的系统功能。

用户输入及结果呈现模块等价于MVC模式中的视图角色, 它为终端用户提供了交互接口, 用来获取用户的输入, 并将系统运行结果以直观的方式呈现给用户。在前端展示技术日趋成熟的趋势下, 程序处理结果能够以图表的形式动态地呈现在用户眼前[8]。

2 系统设计的相关基础理论

在消息的社交网络传播过程中, 并非每一个节点的作用都是相同的。总有那么一些关键节点对消息传播的影响力大于其他节点。社交网络传播学分析[9]使用节点中心度分析的方法寻找出那些在特定网络中影响力最大、最重要的节点。常用的节点中心度分析方法包括点度中心度分析、中介中心度分析、接近中心度分析等方法。

在图论的概念中, 节点的中心度分为点度中心、中介中心、接近中心等概念。点度中心是指相邻节点最多的一个点, 点度中心度分析主要用于获取与外界联系最广, 拥有最多消息来源的关键节点。点度中心度分析的计算公式为:

中介中心是指找出图中任意两点间的最短路径, 图中的某个点上途径的最短路径最多, 这个点即为中介中心。中介中心度分析主要用于获取在消息扩散过程中的关键扩散渠道, 表示任何消息的大规模扩散都会经由该节点, 该节点对消息的大规模扩散起关键作用。中介中心度分析分析的计算公式为:

接近中心是指到图上的每一个点的距离总和最近的点。接近中心度分析主要用于获取消息传播扩散效率最高的关键节点。接近中心度分析的计算公式为:

3 系统用户用例

在用户浏览微博内容的过程中, 往往对于某些特定事件、特定内容相关的微博产生兴趣, 希望了解参与该条微博的相关用户情况、微博转发流转轨迹、当前微博热度等情况。在需要对某一条特定的微博进行进一步的数据分析时, 可以将微博相关链接输入本系统, 系统将会自动按照分析流程为用户提供分析成果。系统的交互界面如图所示, 用户只需输入对应内容, 就能完成对系统的使用, 无需任何学习过程。

4 结束语

本文主要介绍了一种基于新浪微博的数据分析挖掘自动化系统的设计实现相关技术过程及思路, 对社交网络中大量产生的用户生成文本内容及用户关系数据采取了一些具有创新性和改进性的分析方式和方法, 能够有效得从社交网络数据中发现内在深层数据价值, 具备较强的实用性和适用范围。本系统在后续的研究工作中将进一步加强其功能, 特别是适应大数据时代全量数据采集的需求, 通过更好的数据采集机制和数据存储机制实现对社交网络平台中数据的全量采集。

摘要:近年来, 社交网络服务 (SNS) 正随着互联网技术的进步而迅猛发展, 国外学术机构、政府部门、商业公司实现了大量可行的数据分析系统。本文尝试着重描述了如何设计与实现一套基于新浪微博的社交网络数据分析与可视化系统, 根据业务特点设置自动化的数据分析过程和分析结果展示。

关键词:社交网络服务,微博,数据分析,设计实现

参考文献

[1]Stanley Milgram, "The Small World Problem", Psychology Today, 1967, Vol.2, 60–67.

[2]Michelle and Uking (China Daily) ."Special:Micro blog's macro impact".2 March 2011.Retrieved 26 October 2011.

[3]郭海霞.新型社交网络信息传播特点和模型分析[J].现代情报.2012 (01) .

[4]Newman, M.E.J.The structure and function of complex networks.Department of Physics, University of Michigan.

[5]吴凯.基于微博的信息传播建模与节点影响力研究[D].解放军信息工程大学2013.

[6]李卫, 刘建毅, 何华灿, 王枞.基于主题的智能Web信息采集系统的研究与实现.计算机应用研究.2006 (02) .

[7]Gamma, Erich et al. (1994) Design Patterns.

[8]任永功, 于戈.一种支持可视化数据挖掘的图像后处理方法.小型微型计算机系统.2005 (11) .

关系网络可视化分析 篇4

随着人们对软件系统功能需求的不断增加, 软件系统变得越来越庞大和复杂, 尤其是软件系统的缺陷和漏洞很难避免。软件系统在达到一定规模之后, 随着软件的长时间运行, 软件系统模块存在“老化”的特点, 总是面临各种故障或者失效问题, 或者由于内在的缺陷漏洞从而导致受到不同程度的攻击。总而言之, 现代社会的正常运作越来越依赖于基础设施的软件系统的安全可靠的运行。

软件系统的可信性问题已经成为国际上普遍关注的问题。现代大规模软件系统导致其产生可信问题的原因总结起来有:

(1) 软件规模越来越复杂, 人为配置以及使用不当, 或者软件存在内在缺陷。

(2) 软件的开发和运行环境已经由传统的静态封闭环境发展为开放多变的互联网环境, 而恶意代码的大量存在会破坏软件系统的正常运行。

为了解决系统面临的迫切的可信问题, 国内外众多组织机构已成立全球的计算平台和可信计算联盟组织, 正致力于解决面临的安全和可信问题。

基于上述背景, 本文将基于复杂网络研究的理论基础, 着重研究大规模软件系统中的故障预测与定位问题, 主要包括大规模软件系统的动态与静态分析方法, 基于复杂网络的故障预测与定位方法, 以及结果的可视化界面显示部分。

2 大规模软件系统故障预测模型的理论分析

2.1 基本原理

本文基于复杂网络理论, 将大规模软件系统的动态运行信息和静态信息提取出来, 再将软件的动态运行方法调用序列所映射的调用关系网络进行分析, 并利用可视化界面直观地展示出来, 进而达到故障与异常的检测与定位。

本文提出了一种基于调用动态网络的系统检测机制, 通过本文实现的大规模软件故障预测与定位系统完成了调用关系网络的生成, 并利用本模型对网络进行实时分析和监控。模型基本性质有:

(1) 复杂网络适应性:基于K核分解算法对网络静态结果分析, 能够形象地显示出大规模复杂网络的层次结构信息与核心节点, 更加难得的是此思想可以分析超大规模的网络, 这一点在利用K-core分解全美各航线大规模节点数据上已经得到了充分的体现, 因此说我们提出的模型系统可以用来分析超大规模网络系统, 具有可移植的良好特性;

(2) 不同的时间片段特性:由于我们的模型是利用实时监控的原理可以用来监控网络中每一个时间段内的状态改变, 记入下每一个状态对应调用关系网络, 利用该网络就可以分析所监控软件的未来发展趋势。

2.2 大规模软件系统故障预测方法与理论

2.2.1 动态网络分析方法简介

系统模型的故障预测与定位整体按照以下流程:

(1) 对软件运行过程进行持续的监控;

(2) 将监控得到的数据经过处理后生成相应的系统某一时间段内的方法调用关系图;

(3) 对被监控软件进行基本功能块的划分, 根据划分结果生成相应的特征网络与入口函数;

(4) 对软件的动态运行行为进行持续监控, 生成相应的时间片段∆ti内系统的调用关系网络Gi;

(5) 根据动态网络结构演化公式G’i+1=f (Gi, ∆ti+1) 来预测软件下一时间段内的状态G’i+1;

(6) 根据动态网络结构测量公式d=g (G’i+1, Gi+1) 来对软件∆ti+1内得到的监控状态Gi+1同预测状态G’i+1的差异进行测量;

如果测量公式得到的差异值超过了我们设定的阈值, 则认为被监控软件在∆ti+1在当前功能块发生了异常。

2.2.2 调用关系网络的矩阵表示形式

调用关系网络的数据结构可以有邻接矩阵和加权矩阵两种形式。

邻接矩阵:为了能够准确地检测到矩阵元素的变化, 本文在邻接矩阵的基础上做了一些限定, 定义矩阵中的每一个位置 (a, b) 代表确定的含义, 这样避免出现同构图的邻接矩阵相似的情况。

加权矩阵:增加了加权矩阵的分析, 主要了是为了图形效果的需要, 并加入了随机噪声的影响, 使得两幅图像的对比度更加明显。在加权图中的噪声波动的影响较去重图要强很多, 通过对比分析, 我们可以更加深入地研究调用关系生成网络的故障与异常发生机制。

2.2.3 模型建立

大规模复杂网络对应了软件系统的不断衍变周期, 用户不断对软件提出新的指令, 使得软件系统对此作出反应, 每一次反应都会产生一个新的状态, 软件状态随运行时间的增加也变得更加复杂, 为了对软件状态加以记录, 并加以分析, 我们首先为模型中对应的动态调用网络结构演变过程定义为一个映射函数:

G'i+1=f (Gi, Δti+1)

该函数的意义就是根据软件运行所产生的数据, 把这些数据划分成为一个个最小的时间切片, 测量这个时间切片内对应的特征网络的状态, 由此可见:

G'i+1=f (Gi, Δti+1) =Gk

式中:

Gk——为对应功能模块的特征网络时间切片。

由于我们所用的函数公式都是统一的, 所以不必担心时间切片的一致性, 因此可以推算出下一时刻的动态网络的时间切片, 由此可以使用特征网络Gk作为同一个功能块内的预测动态时间切片G’i+1, 并且由于时间切片Gk是在系统的动态运行监控过程中生成的, 保证了Gk的合理性。前一个值与后一个值只要网络调用不同就会发生变化, 研究这个变化其实就是分析复杂网络的动态特性, 进而达到对软件系统故障与异常的监控与定位。

3 预测模型实现与可视化界面的设计

3.1 大规模软件系统研究框架

大规模软件故障预测与定位系统的研究框架如图1所示:

大规模软件系统研究框架系统一共分为5个子模块:

监控模块:对软件行为进行持续监控, 得到软件运行时的方法执行信息, 以dat文件的格式存储;

数据处理模块:对监控数据进行处理, 通过重构trace来获得软件运行时的方法调用序列, 生成K核分解之后的调用关系网络;

故障注入模块:给被监控系统注入威布尔分布的概率故障;

故障分析模块:按照预测模型动态分析方法进行故障的分析工作;

显示模块:进行调用关系网络与故障分析结果的可视化。

3.2 数据库设计与数据处理模块

3.2.1 数据库表设计

根据之前的数据, 所获得的实验数据格式如图2所示:

其中每个字段的意义如表1所示:

所获得数据按照格式存入指定的目录中, 对数据的进一步处理在下一节中介绍。

3.2.2 数据处理模块介绍

数据处理模块的主要功能为:首先建立并初始化数据库;其次将监控数据按照格式进行解析后并存入数据库中;最后以trace为单位, 通过trace重构获得方法调用序列。

在之前提到的网络动态系统分析中, 首先要获得网络的数据也就是trace信息, 在数据库部分我们已经对trace有了一个大致的认识, 在这里对trace做一个比较细致的介绍, 比如数据格式里的trace Id、eoi、ess等字段, 为了能够得到本文需要的方法调用关系, 首先要进行基于trace信息的数据分析, 重构运行时的trace路径。

下面给出一些本文中用到的术语定义:

方法 (operation) :为了实现特定服务而定义在组件中的一些函数。

执行 (execution) :运行时方法的一次执行过程。

路径 (trace) :每一次请求系统提供服务, 都会执行一系列嵌套的方法, 本文把这一系列的执行过程称之为“路径”。

在监控的过程中, 对于执行服务请求的线程附加一个特有的trace Id, 同时将其加入到同一个trace的所有的数据记录之中。

3.3 故障预测模块

通过把读入的调用关系网络对应矩阵转化为其对应的节点矩阵, 输出其对应的二范数, 然后把每次试验中的所有数据都做此处理, 呈现出总体变化图像, 首先是第一条正常情况下的曲线;再输出第二条异常情况下的曲线, 二者加以对比。

3.4 系统显示模块

分别从动态和静态分析理论来显示和分析对应的调用关系网络, 并显示其数据库对应的trace文本信息。通过观察生成的软件调用关系网络来分析并预测其间发生的异常与故障, 进而实现模型的监控功能。此处将添加两个动态图, 分别为加权图、和去重图。而注入加权的目的主要是为了突出去重图的优良特性。

4 结束语

本文提出了一种基于动态网络分析理论的大规模软件故障预测模型并建立了相应的可视化界面, 此模型可以实现大规模软件故障的预测, 设计故障注入实验对模型进行了验证, 取得了良好的效果, 证明了此模型的有效性。

由于java的矩阵处理能力较MATLAB相比较弱, 所以在本界面模块中采用了混合编程, 但java本身和matlab的接口并不及C或C++和matlab的多, 因此效率有待提高。以后可以根据实际需要, 在C或C++平台上开发程序。

利用2范数做动态分析时, 尽管取得了比较满意的精度, 但在一些特殊trace内部调用关系网络的结构性改变存在着误报的风险, 尽管对异常情况进行实际返回值与返回类型检查可以避免误报, 但是整个检测系统的开销时间将增加, 会导致灵敏性下降。在后续的开发中可以利用其它的矩阵分析理论解决这个问题。

摘要:本文将大规模软件动态运行信息映射为随时间变化的调用关系网络, 通过采用K核分解算法提取此静态网络的层次结构与核心节点信息进行可视化显示;同时基于矩阵二范数方法对动态网络的结构进行频谱分析实现故障定位;对大规模软件的运行状况进行了可更新的监控, 实现了异常的预测, 把实验的结果与理论很好地结合在一起, 验证了预测模型的有效性, 并为本模型的进一步扩展提供了可能。最后实现了该系统的可视化界面。

关键词:大规模软件,复杂网络,故障预测,故障定位,可视化界面

参考文献

[1]刘克, 单志广, 王戟, 等.“可信软件基础研究”重大研究计划综述[J].中国科学基金, 2008, 22 (3) :145-151.

[2]赵广元.MATLAB与控制系统仿真实践[M].北京:北京航空航天大学出版社, 2009.

[3]范立锋, 乔世权, 程文彬, 等.JSP程序设计[M].北京:人民邮电出版社, 2009.

[4]李建刚, 秦兴桥, 郑雨贝, 等.JSP网络编程技术与实践[M].北京:清华大学出版社, 2008.

[5]张新曼.精通JSP[M].北京:人民邮电出版社, 2007.

[6]詹静, 张焕国.可信平台模块自动化测试研究[J].计算机研究与发展, 2009, 46 (11) :1839-1846.

[7]Haohua Zhang, Hai Zhao, Wei Cai, et al.Using the K-core decomposition to analyze the static structure of large-scale software systems[J].Supercomput, 2009, 10 (3) :127-140.

上一篇:演示实验课下一篇:甘蔗制糖