文/罗恒钰 段荣
信息系统(Information System,IS)是指由计算机硬件和软件、网络和通信设备、数据资源、用户等组成的以处理信息流为目的的一体化系统;系统集成(System Integration,SI)指的是通过技术手段,将逻辑/物理上分离的设备、软件和数据等要素集成到相互关联、协同工作的系统中,使系统整体的功能、性能符合使用需求。随着计算机技术、网络与通讯技术的快速发展,信息系统的规模急剧膨胀,如何才能在既定成本的约束下,输出质量和技术状态受控的产品,成为摆在每个产品经理面前的首要任务。
信息系统的功能是由各计算节点通过网络不断地进行数据交互实现的,所以系统集成的关键就在于解决各信息节点之间的互连和互操作性问题。在实际工作中,通过实时采集和解析网络数据流,进而得出系统的输入-输出响应是否满足设计要求,是进行系统集成和测试验证的基本手段。借助于Wireshark 的灵活性和开放性,本文设计了一种任务数据解析和统计分析工具,不仅提供了实时解析任务数据流、快速验证系统工作状态的能力,还支持根据协议特征提供多种数据统计分析结果,能够极大地提高系统集成的工作效率。
本文设计的任务数据分析流程如图1所示,包括抓取数据、数据预处理、数据解析、分类结果分析四个步骤。其中,数据解析是获取任务参数和进行统计分析的基础,利用Wireshark 支持跨平台部署和开放式协议扩展能力,本文设计的任务数据解析器以Wireshark 插件的形式实现,具体的实现方法参见文献[1, 2, 4, 5]中的相关描述,本文重点介绍算法的设计和应用效果。
表1:任务数据抓取的实现方式
表2:创建私有协议支持
表3:创建任务数据解析支持
图2
为了便于开展工程应用,本文采用的数据获取方式以观察者的身份进行,不破坏系统的网络拓扑、不影响系统的正常通信,并且支持在线和离线两种使用场景,如表1所示。在线方式以实时解析任务数据流的方式工作,能够快速获取系统运行过程中的各种参数信息,提供实时确认系统工作状态、快速定位集成联试问题的能力;离线方式为抓取一段时间内系统运行过程中产生的任务数据,在事后通过对任务数据进行解析分析,验证系统的工作流程是否满足设计要求,还支持根据系统的动态响应辅助定位故障发生的原因。
该过程实现了从全网数据虑出所需数据的功能,类似于将原油加工成汽油的过程。为了提供足够的可操作空间,该过程除了提供基于主机IP 和公共协议的过滤能力外,还实现了多种基于内部协议属性的过滤手段。如表2所示,本文的设计将私有协议标识“myProto”,内部通信的关键属性消息标识“code”、消息长度“length”、发送时间“txTime”、消息的优先级“priority”、通信信道“channel”实现为任务数据的过滤关键字。
该过程实现了将二进制数据流,解析为系统工作参数的功能。该部分实现了解析器的核心功能,一般的设计思路为先将系统ICD(Interface Control Document, 接口控制文件)定义的消息格式录入解析器,然后再按照约定的格式解析任务数据。如表3所示,为了增强解析器的可扩展性,本文设计了一种ICD 动态注册机制,将数据解析的计算与ICD 的定义分开,解析器维护一个动态的协议列表,消息格式通过注册的形式挂接到该协议列表中;对于抓取的数据流,解析器能自动匹配协议列表中的消息定义,匹配成功之后,按照注册的接口定义解析数据。
该过程实现了将解析后的任务数据以易于理解方式呈现出来,以便工程设计人员能够快速获取系统的响应。对于解析后的任务参数信息,本文将它们按照ICD 定义的层次添加到Wireshar 的协议树上,具体实现参见表3中的相关描述。
将集成了任务数据解析器的Wireshark 部署到系统的信息处理节点上,抓取数据,进行任务数据识别与解析。以系统工作状态询问流程为例,图2给出了解析后的结果,可以看出,本文设计的解析器已经将晦涩难懂的二进制数据解析为任务参数值,并以直观的方式呈现出来,能够支撑工程设计人员快速确认系统的工作状态。在遇到系统响应异常的情况下,比如图2所示的“系统1”工作状态上报异常,也可以通过实时/事后解析任务数据的方式,确认“REQ”报文是否发送给“系统1”、“系统1”是否应答查询报文或者“系统1”的应答是否正确等来辅助定位故障发生的原因。
在系统集成后期或外场实验阶段,经常需要系统运行一段时间,完成某(几)项任务,来确认系统的功能和性能指标是否符合设计要求。在这个阶段,一般会将系统的交互数据保存下来,再通过离线分析的方式确认系统的动态响应是否符合设计要求。本文设计的解析器除了能够实时解析任务数据以外,还能根据通信协议的特征提供多种统计分析结果。图3以某次任务数据为例给出了三类统计分析结果,图3(a)给出了基于消息标识的统计结果,从图中可以看出该系统的业务功能主要通过7 类消息(占比超过5%的消息)实现,基于该结果,可以有针对性地分析这7 类消息所实现的业务功能,并在系统级进行处理优化,能够大幅提高整个系统的运行效率;图3(b)和图3(c)分别给出了基于源、目的地址的统计结果,从图中可以看出该系统内部交互的消息基本上集中在6 个主机(占比超过3%的主机),可见该系统实现的业务功能很不均衡,基于该结果,进一步分析这些主机所承担的业务,再在系统级进行资源优化整合,能够极大提高整个系统的运行效能,避免瓶颈效应。
本文基于Wireshark 设计了一种网络数据解析与分析工具,从实际的应用效果看,该工具能够在基于网络的信息系统中灵活部署,针对通过网络交互信息,能够将二级制网络数据实时解析为任务参数信息,辅助工程设计人员快速确认系统工作状态、定位故障发生的原因,给系统集成工作带来极大的便利。另外,通过该工具生成的任务数据定性分析结果,还能有针对性地优化系统的网络拓扑,提高整个系统的运行效能。
图3