版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于wmi的网络管理研究节点信息提取摘要随着计算机网络的迅速发展,网络设备和网络上运行的各种应用服务越来越多,计算机网络正变的日益复杂。伴随着计算机网络的不断发展,网络管理也显得尤为重要。如何及时有效的了解计算机网络的运行情况,准确快速的知道当前计算机网络中节点的软、硬件信息。本课题的任务就是基于wmi(windows management instrumentation)对网络进行管理研究,该应用程序利用c+编程语言实现,通过c+接口程序调用wmi,提取网络中节点的软、硬件信息。本文首先对网络管理、wmi做了概述,而后详细设计和实现了基于wmi网络管理的应用程序,该应用程序实现了通过wmi对
2、网络中节点(windows主机)进行信息资源的采集。本文对基于wmi网络管理的研究与设计,是对网络管理的一种有益尝试,为网络管理提供了一种可行的解决方案。本文实现的网络管理应用程序需要在所有网络节点上安装客户端便可对其进行信息提取,具有良好的可使用性。关键词:网络管理;软硬件信息提取;wmi;visual c+编程 network management based on wmi extract node informationabstractwith the rapid development of computer network, network equipment and network
3、 applications running on more and more services, computer networks are become increasingly complex.with the continuous development of computer networks,network management is especially important.how to timely and effective understanding of the operation of computer networks, quickly and accurately t
4、o know the current computer network node software and hardware information.the task of the subject is based on wmi (windows management instrumentation) to the network management research, the application using c + + programming language, c + + interface program by calling wmi, extracting the network
5、 node software and hardware information.this article first network management, wmi was summarized, and then detailed design and implementation of wmi-based network management applications, the application is implemented on network nodes through wmi (windows host) the collection of information resour
6、ces.this wmi network management based on the research and design, network management is a useful attempt, for the network management provides a viable solution.this implementation of network management applications do need to install all the network nodes can be their client for information extracti
7、on, with good usability.key words:network management;extract hardware and software information; wmi;visual c+目录摘要iabstractii1 绪论11.1 前言11.2课题的来源和背景11.3 现实状况及发展趋势21.4课题研究的意义21.5课题的主要研究内容22 开发环境及相关技术介绍42.1 应用程序开发环境42.2 相关技术介绍42.2.1 网络管理介绍42.2.2 网络管理技术介绍42.2.3 网络管理协议介绍62.2.4 网络管理模式介绍72.2.5 网络管理软件介绍92.2
8、.6 网络管理的发展趋势92.2.7 wmi及体系结构介绍102.2.8 mfc介绍123 总体设计133.1 总体设计思想133.2 总体设计原则133.3 应用程序功能结构144 详细设计154.1 程序设计环境搭建154.2 查看wmi各分类的属性和方法154.3 应用程序的详细设计174.3.1 界面布置204.3.2 添加代码及库文件205 测试215.1软件测试的目的215.2 测试的基本原则215.3 测试方案215.3.1 程序测试215.3.2 系统测试225.4 测试结果226 结论23参考文献24致谢26毕业设计(论文)知识产权声明27毕业设计(论文)独创性声明28附录2
9、91 绪论1.1 前言网络管理是伴随着计算机网络和通信技术的发展而发展的,几者之间相辅相成;随着网络和通信技术的飞速发展,网络管理也成为重要的前言技术。网络管理包括对硬件、软件和人力的使用、综 合与协调,以便对网络资源进行监视、测试、配置、分析、评价和控制,这样就能以合理的价格满足网络的一些需求,如实时运行性能、服务质量等。1.2课题的来源和背景自从人类进入信息社会特别是互联网在全世界的普及与发展,计算机网络已逐渐成为人类社会不可分割的一个部分,它对社会、政治、经济、军事、科技、教育以及人们的生活和工作方式产生了巨大影响,它不仅是一项技术的革命,也使人类社会的发展进入到一个新时代。 当前计算机
10、网络规模不断提高,复杂性不断增加,随着信息流量增加和网络进一步扩大,以及用户对网络性能的要求越来越高,潜在的问题也会随之越来越多。这就需要不断进行维护和优化,以提高网络的性能,因此这时候如果没有一个高效的网络性能管理系统对网络系统进行管理,那么很难保证为广大用户提供令人满意的服务。网络管理是控制一个复杂的计算机网络,使其能具有最好的效率的过程,通常包括数据采集、数据处理和数据分析并提供解决方案。 wmi技术是微软提供的windows下的系统管理工具,通过该工具可以在本地管理客户端系统中几乎一切的信息,很多专业的网络管理工具都是基于wmi开发的。wmi是一种轻松获取系统信息的强大工具,信息源可能
11、是一个硬件、操作系统或软件应用程序,数据源提供的信息称为规范。鉴于wmi在windows下良好的应用性,本次毕业设计方向为基于wmi的网络管理研究,由此加深对网络管理的认识、理解,同时在应用程序实现过程中, 掌握wmi相关技术。1.3 现实状况及发展趋势伴随internet时代的到来,的迅猛发展,新的网络产品及组网模式不断地涌现,越来越多的企业、政府、学校、个人等都融入互联网当中,网络已经与人们 的学习、工作及生活密不可分,因此保障网络的通畅、可靠也就显得极为重要,而网络管理的质量会直接影响网络的运行质量。一般来讲,计算机系统有一定规模并连网的企业,就有的需求,尤其是办公地点分布于各处,拥有着
12、上百或上千台网络设备的企 业,有了网管系统为网络把脉,就可实时查看全网的状态,检测可能出现的瓶颈,并进行自动处理或告警显示,以保证网络的高效、可靠运转。网络管理从功能上讲一般包括配置管理、性能管理、安全管理、计费管理、故障告警管理等,从管理的分工上讲可以细分为网络管理系统和网元管理系统两大类,网元管理系统一般由原厂商提 供,各厂商采用专有的管理mib库,以实现对厂商设备本身的细致入微的管理,包括可以显示出厂商设备图形化的面板等,例如公司的cisco works、港湾网络公司的hammerview等;网络管理系统则主要用于掌握全网的状况,作为底层的网管平台来服务于上层的网元管理系统,当前比较有
13、名的有hp openview、ibm tivoli等。网络管理发展到今天,从功能上讲已经非常丰富,但在实际使用当中仍然存在着很多的不足, 例如:配置以及管理复杂、使用不够灵活、智能化程度不高等,尤其对于大型网络的管理,成百上千台的网络设备,网络管理变成了一项非常烦琐的工作,甚至使得 网络管理人员干脆弃之不用,因此未来网络管理的发展方向应该是智能化和简单化,使得网络管理工作变得轻松而高效。1.4课题研究的意义wmi是microsoft用来支持企业管理系统而引进的几项技术之一。它允许应用程序的开发者,使用简单的、一致的机制,去查询企业中的任一台计算机上的信息或进行系统配置,我们可以借助它来获取网络
14、中结点的信息。wmi采用了一套统一的接口,涵盖了系统中所有的硬件设备和软件信息,比如网络连接情况,各种接口的状态,可以通过wmi提供的类接口获取和设置系统内几乎所有设备的状态信息,对它进行分析和管理。本课题的研究,将有助于加深我对网络管理概念及意义的的理解,对wmi的认识。1.5课题的主要研究内容本文在网络管理应用中,选择了用wmi对网络节点的软、硬件信息提取进行设计,理解什么是wmi是程序设计的基础,重点是怎么利用wmi对网络节点信息的提取,后续还要懂得如何利用wmi对网络进行合理有效的管理。应用程序采用c+语言进行开发,基于c/s的架构,界面实现采用mfc框架,代码实现采用sdk。程序的完
15、成需要做到如下工作:了解网络管理的概念,对wmi技术做深入研究,并使用visual c+编程实现对网络节点主机的软硬件信息进行提取,验证基于wmi对网络的管理。2 开发环境及相关技术介绍2.1 应用程序开发环境本文主要是网络管理的研究,实现网络管理的技术采用的是wmi,如下是基于wmi的应用程序的应用环境及开发过程中应用到的软件:网络应用环境:client/server架构;硬件配置:硬盘:160 gb;内存:1 gb;操作系统:windows xp;编程语言及所用框架:visual c+;mfc;sdk开发工具: visual studio 2008;测试环境及计算机:局域网内;window
16、s xp 操作系统的个人计算机;2.2 相关技术介绍2.2.1 网络管理介绍计算机网络是计算机技术和通讯技术发展和结合的产物。计算机网络管理指的是初始化并监视一个活动的计算机网络,收集网络系统中的信息,然后作适 当地处理,以便诊断问题,控制或者更好地调整网络的一系列操作。计算机网络管理的目的是为了提高网络效率,使之发挥最大效用。网络管理的概念随着现代网络技术的发展而不断演变。对于网络管理,目前还没有严格统一的定义,可以将网络管理定义为以提高整个网络系统的工作效率、管理层次与维护水平为目标,主要涉及对网络系统的运行及资源进行监测、分析、控制和规划的行为与系统。具有障管理、配置管理、性能管理、安全
17、管理、计费管理五大功能,其重要的意义在于根据网络信息及时对网络进行管理,以保证网络可靠性、提高网络运行效率。2.2.2 网络管理技术介绍 网络管理技术主要有以下几种: snmp管理技术,rmon管理技术,cmip管理技术,分布对象网络管理技术。a. snmp管理技术。snmp(simple network management protocol)简单网络管理协议。 snmp首先是由internet工程任务组织(internet engineering task force,即ietf)的研究小组为了解决internet上的路由器管理问题而提出的。是专门用于对internet进行管理的,简单适用
18、,已成为当前网络界的实际标准,但snmp难以用于复杂的网络管理,只适用于tcp/ ip网络,在安全方面也有欠缺。snmp是目前最常用的环境管理协议。snmp被设计成与协议无关,所以它可以在 ip,ipx,appletalk,osi以及其他用到的传输协议上被使用。snmp是一系列协议组和规范,它们提供了一种从网络上的设备中收集网络管理 信息的方法。snmp也为设备向网络管理工作站报告问题和错误提供了一种方法。snmp的发展:简单网络管理协议(snmp)是目前tcp/ip网络中应用最为广泛的网络管理协议。 于1990年5月,rfc1157定义了snmp(simplenetworkmanagemen
19、tprotocol)的第一个版本snmpv1。rfc1157和另一个关于管理 信息的文件rfc1155一起,提供了一种监控和管理计算机网络的系统方法。因此,snmp得到了广泛应用,并成为网络管理的事实上的标准。 snmp在90年代初得到了迅猛发展,同时也暴露出了明显的不足,如,难以实现大量的数据传 输,缺少身份验证(authentication)和加密(privacy)机制。因此,1993年发 布了snmpv2,具有以下特点: 支持分布式网络管理 l 扩展了数据类型 l可以实现大量数据的同时传输,提高了效率和性能 丰富了故障处理能力 l 增加了集合处理功能 l加强了数据定义语言b. rmon管
20、理技术。rmon(remote network monitoring)远端网络监控, 最初的设计是用来解决从一个中心点管理各局域分网和远程站点的问题。rmon 规范是由 snmp mib (snmp管理信息库)扩展而来。 rmon 中,网络监视数据包含了一组统计数据和性能指标,它们在不同的监视器(或称探测器)和控制台系统之间相互交换。结果数据可用来监控网络利用率,以用于网络 规划,性能优化和协助网络错误诊断。 当前 rmon 有两种版本: rmon v1 和 rmonv2 。 rmon v1 在目前使用较为广泛的网络硬件中都能发现,它定义了 9 个 mib 组服务于基本网络监控; rmon v
21、2 是 rmon 的扩展,专注于 mac 层以上更高的流量层,它主要强调 ip 流量和应用程序层流量。 rmon v2 允许网络管理应用 程序监控所有网络层的信息包,这与 rmonv1 不同,后者只允许监控 mac 及其以下层的信息包。 rmon 监视系统有两部分构成:探测器(代理或监视器)和管理站。 rmon 代理在 rmon mib 中存储网络信息,它们被直接植入网络设备(如路由器、交换机等),代理也可以是 pc 机上运行的一个程序。代理只能看到流经它们的流量,所以在每个被监控的 lan 段或 wan 链接点都要设置 rmon 代理,网管工作站用 snmp 获取 rmon 数据信息。rmo
22、n mib (rmon管理信息库)是对snmp 框架的重要补充,其目标是要扩展snmp 的mib-ii,使snmp能更为有效、更为积极主动地监控远程设备。c. cmip管理技术。cmip(common management information protocol)即通用管理信息协议。是iso(国际标准化组织)为了解决不同厂商、不同 机种的网络之间互通而创建的开放系统互联网络管理协议。 cmip可对一个完整的网络管理方案提供全面支持,在技术和标准上比较成熟。最大的优势在于,协议中的变量并不仅仅是与终端相关的一些信息,而且可以被用于完成某些任务,但是过于复杂,实施费用过高。cmip 中采用可靠
23、iso (iso-reliable)面向连接传输机制并内置安全机制,其功能包括:访问控制、认证和安全日志(security log)。管理信息在网络管理应用程序和管理代理之间交换。管理对象是管理设备的一个特征且可以被监控、修改或控制等,并能完成各种作业。cmip并没有指定网络管理应用程序的功能,只定义了管理对象的信息交换机制,而没有定义信息的使用和说明。 与 snmp 相比,cmip 的主要优势在于: cmip变量不仅用于传发信息还可以完成各种作业;而 snmp 不具备这种功能。 cmip更加安全,它内置安全机制,功能包括访问控制、认证和安全日志(security log)。 cmip功能 强
24、大,在单个请求下可以实现多种功能。 cmip在异常网络条件下具有更好的报告功能。d.分布对象网络管理技术。分布对象网络管理技术是将corba(common object request broker architecture,公共对象请求代理体系结构)技术应用于网络管理而产生的,主要采用分布对象技术将所有的管理应用和被管元素都看作分布对象,这些分布对象之间的交互就构成了网络管理。这种方法最大的特点是屏 蔽了编程语言、网络协议和操作系统的差异,提供了多种透明性,因此适应面广,开发容易,应用前景广阔。2.2.3 网络管理协议介绍a. snmp。snmp(simple network managem
25、ent protocol,简单网络管理协议)是专门设计用于在ip网络管理网络节点(服务器、工作站、路由器、交换机及hubs等)的一种标准协议,它是一种 应用层协议。snmp使 网络管理员能够管理网络效能,发现并解 决网络问题以及规划网络增长。snmp管 理的网络有三个主要组成部分:管理的设备、代理和网络管理系统。 b. cmip。cmip(common management information protocol,公共管理信息协议)作为国际标准,由iso制 定的公共管理信息协议(cmip)着重于普适性。cmip主 要针对osi七层协议模型的传输环境而设计,采用报告机制,具有许多特殊的设施和能
26、力,需要能力强的处理机和大容量的存储器。在网络管理过程中,cmip不是通过轮询而是通过事件报告进行工作,由网络中的各个设备监测设施在发现被检测设备的状态和参数发生变化 后及时向管理进程进行事件报告。管理进程一般都对事件进行分类,根据事件发生时对网络服务影响的大小来划分事件的严重等级,网络管理进程很快就会收到事件报告,具有及时性的特点。2.2.4 网络管理模式介绍网络管理模式总体上可以分为两类:一类是集中的管理模式,另一类是分布式的管理模式,以简单网管协议(snmp)和通用管理信息协议(cimp)为基础的网管系统大都采用集中管理模式。后来出现的静态层次管理模型、委派管理模型、移动代理模型和主动网
27、络模型都属于分布式的管理模式。a. 集中管理模式。集中管理模式是传统的网络管理模式。现行的各种商用网管系统大都采用这种方式。数据网上一般采用snmp作为网管协议,电信网上一般采用cimp作为网管协议,其中snmp由于其简单,容易实现,所以得到大多数厂家的承认,已经成为一个事实上的工业标准,得到了广泛的应用。集中管理模式采用cs的编程结构,每一台被管设备上都有一个代理(agent)来负责收集和管理本地设备的各种状态信息,管理端作为一个client,通过向代理发送查询消息来获得的所查询设备的状态信息,代理作为一个server,来回答管理端的查询,管理端和代理之间采用网络管理协议进行通信,如snmp
28、或cimp。为了实现网管系统的平台无关性和灵活性,也可以采用基于web的方式,有两种实现方式一种是在浏览器和被管设备之间加入一个web server,由它来收集被管设备的信息并响应用户的查询,另一种方式是在每一个被管设备上都安装一个小型web server,浏览器直接从被管设备收集信息,因为只有很少的厂家的设备内置web server,所以只有第一种方式得到了广泛应用。集中管理方式虽然技术很成熟,但是随着网络技术的不断发展,网络逐渐变得更加复杂,规模也逐渐扩大,这种管理方式已经出现很多弊病:管理端是通过轮询的方式来管理被管设备的,这会给网络造成很大的负担。因为所有的网络管理工作都是通过管理端进
29、行的那么在要收集的信息量较大时,它很可能成为整个网络管理系统的瓶颈,这就制约着网络管理系统所能管理的网络设备的数量,所以说这种方式的可扩展性很差。因为网络管理协议是固定的,而且代理所能收集的信息也是在设备出厂后就固定下来,当我们要增加新的网络管理功能时,比如说要获得一个snmp代理上的m1b中没有定义的变量的值,那么因为代理的功能不能改变,这个要求很难做到,所以说网络管理系统的功能也是受限制的,灵活性很差。正是由于集中的管理模式存在着许多弊端所以才出现了分布式的管理模式。b. 分布式管理模式。分布式管理模式又可以分为:静态的层次模型,委派管理模式,基于移动代理和主动网络的管理模式。(1)静态的
30、层次管理模式。这种模式主要是对集中管理模式的一个改进但是它已经具有分布式的特点。它的主要思想是在主网管工作站和被管设备之间加入一层称为中间管理者的实体,由这个中间实体负责它所在的局域网或附近的几个设备的管理由它来监视被管设备的状态信息,对被管设备进行查询,对查询所得的信息进行集成或过滤后再把处理后的数据送交给上级的管理者。它和主网管工作站只是在需要的时候进行通信,一般的管理任务都由中间实体完成,这样不但减少了整个网络用于网管的流量开销,而且还提高了系统的可扩展性;因为中间实体也能完成局部网络的大部分管理任务,所以也提高了系统的可靠性;因为这种模式是在集中管理模式的基础上发展起来的,可以继承集中
31、管理模式的许多宝贵经验;应用这种模式对被管设备要求很低,如原来的snmp客户端设备仍然可以继续使用这样可以保护用户的投资。应用这种模式的系统有很多,如tivoli management framework和snmpv2的远程网络监视(rmon)等 。(2)委派管理模式。委派管理模式是为了增加系统的灵活性而提出来的。与前面两种方式的最大不同是一些管理子程序可以被动态地委派到其它的管理站点或被管站点,这就对被管站点提出了更高的要求。它要能接受委派的子程序并提供运行环境,在程序结束后要关闭它。子程序的委派方式可以采用远程估价(remoteevaluation,rev)或代码需求(codeondema
32、nd,cod)两种方式。采用委派管理方式可以动态地安装新的程序,添加新的功能,有利于软件的更新和维护,有利于新协议和新服务的推广和使用,可以在各个层次进行数据集成和处理以减小网络流量,但是和层次模型相比,它的复杂性增大,对被管站点的资源要求也较高,特别是在安全性管理方面的代价较大。(3)基于移动代理和主动网络的管理模式。移动代理和主动网络技术是近年来出现的网络技术。移动代理是指一个独立、具有自治功能的程序它能自动从一个站点迁移到另一个站点以完成一个特定的任务。在主动网络中,程序可以随时被注入到网络设备中,这样网络设备的括动和它们处理数据的方法都可以动态地控制和定制。移动代理和主动网络是两种不同
33、的技术,移动代理面向的是应用,强调程序的独立性、自治性和活动性,主动网络强调的是底层网络系统的动态可控,代码移动创造一个统一的、方便的环境,但是它们的目的是一样的,都是使网络成为动态可控的系统。实际上它们之间可以互为补充:主动网络为移动代理提供执行环境,移动代理是主动网络代码移动的最佳手段。主动网络管理模式相对于委派代理模式配置更加灵活,功能更加强大,在配置管理、性能管理、容错管理、记费管理、安全管理这5大管理功能的各个方面都有很广阔的应用前景,可以说是真正的分布式管理模式。但是它也有自身的弱点,其中最主要的就是主动网络的安全性管理更加复杂和困难,而且因为在各个主动站点要建立一个代码迁移的环境
34、,所以对各个主动站点的资源要求较高。2.2.5 网络管理软件介绍事实上,网络管理技术是伴随着计算机、网络和通信技术的发展而发展的,二者相辅相成。从网络管理范畴来分类,可分为对网“路”的管理。即针对交换机、路 由器等主干网络进行管理;对接入设备的管理,即对内部pc、服务器、交换机等进行管理;对行为的管理。即针对用户的使用进行管理;对资产的管理,即统计 it软硬件的信息等。根据网管软件的发展历史,可以将网管软件划分为三 代: 第一代网管软件就是最常用的命令行方式,并结合一些简单的网络监测工具,它不仅要求使用者精通 网络的原理及概念,还要求使用者了解不同厂商的不同网络设备的配置方法。 第二代网管软件
35、有着良好的图形化界面。用户无须过多了解设备的配置方法,就能图形化地对多台设 备同时进行配置和监控。大大提高了工作效率,但仍然存在由于人为因素造成的设备功能使用不全面或不正确的问题数增大,容易引发误操作。 第三代网管软件相对来说比较智能,是真正将网络和管理进行有机结合的软件系统,具有“自动配 置”和“自动调整”功能。对网管人员来说,只要把用户情况、设备情况以及用户与网络资源之间的分配关系输入网管系统,系统就能自动地建立图形化的人员与网 络的配置关系,并自动鉴别用户身份,分配用户所需的资源(如电子邮件、web、文档服务等)。2.2.6 网络管理的发展趋势随着标准化活动的开展及系统互联的需要,网络管
36、理发展有如下趋势:a. 实现分布式网络管理。分布式对象的核心是解决对象跨平台连接的和交互的问题,以实现分布式应用系统。可减少中央网管的负荷,以及网管信息传递的时延,使管理更为有效。b. 实现综合化网络管理。综合化网络管理要求网络管理系统提供多种级制的管理支持,即实现对互联的多个网络的管理。c. 实现对业务的监控功能。d. 实现智能化管理。支持策略管理和网络管理系统本身的自诊断、自调整。e. 实现基于web的管理。通过使用web浏览器在网络的任何节点上去监测、控制网络及各子网的管理功能。基于web的管理以其统一、友好的界面风格,地理和系统上的可移动性以及系统平台的独立性吸引着越来越多的用户和开发
37、商。2.2.7 wmi及体系结构介绍a. wmi介绍。wmi最初于 1998 年作为一个附加组件与 windows nt 4.0 service pack 4 一起发行,是内置在 windows 2000、windows xp 和 windows server 2003 系列操作系统中核心的管理支持技术。基于由 distributed management task force (dmtf) 所监督的业界标准。wmi 是一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的 windows 资源。wmi作为windows 2k/xp管理系统的核心;对于其他的win32操作系统,wmi是
38、一个有用的插件。wmi以cimom为基础,cimom即公 共信息模型对象管理器(common information model object manager),是一个描述操作系统构成单元的对象数据库,为mmc和脚本程序提供了一个访问操作系统构成单元的公共接口。有了wmi,工具软件和脚本程序访问操作系统的不 同部分时不需要使用不同的api;相反,操作系统的不同部分都可以插入wmi,工具软件也可以方便地读写wmi。而wmi作为windows 2000操作系统的一部分提供了可伸缩的,可扩展的管理架构.公共信息模型(cim)是由分布式管理任务标准协会(dmtf)设计的一种可扩展的、面向对象的架构,用
39、于管理系统、网络、应用程序、数据库和设备。windows管理规范也称作cim for windows,提供了统一的访问管理信息的方式。利用wmi,可以监视、跟踪和控制有关软件应用程序、硬件组件和网络的系统事件,将来自不同来源的数据用通用、标准且逻辑上有组织的方式映像出去,以便在管理数据之间建立相互关系和关联,而不必考虑这些数据的类型、内容或来源。使用wmi可以获得统一的编程api,远程管理,可发现和导航,过滤查询,强大的事件发布和订阅等功能。b. wmi 的主要功能。访问本地主机的一些信息和服务,通过wmi 可以获取主板、bios、磁盘、显卡、声卡、内存、操作系统、网络等几乎所有的系统信息。获
40、取远程计算机信息和实现使用wmi 远程控制计算机,可以管理远程计算机,比如:重启,关机,关闭进程,创建进程,ip 地址自动更改,对服务器硬盘资源进行实时监视和自动化管理等。c.wmi体系结构。wmi体系结构由以下组件构成:提供程序使用者公共信息模型 (common information model, cim) 储存库公共信息模型对象管理器 (common information model object manager, cimom),如图2.1所示。图2.1 wmi体系结构这些组件建立在 cim 之上。该模型面向对象、独立于系统和应用程序,并且提供定义托管计算环境中的对象的分层架构。cim
41、 通过类定义托管环境中的对象。这些类包括描述行为的方法和描述数据的属性。cim 中包括的对象有应用程序、网络、打印机和驱动程序等。“提供程序”是托管系统(如操作系统、服务、应用程序、设备驱动程序等)与 cimom 之间的中间代理程序。在 visual studio analyzer 中提供程序相当于事件源。其作用是使用系统提供的任何管理接口提取系统的管理信息。通过各种 com 接口,提供程序可向 wmi 提供数据,处理来自系统管理应用程序的请求,并生成事件通知。提供程序还将管理信息和接口映射到 cim 储存库中定义和存储的对象类。“使 用者”是系统管理应用程序(如 microsoft syst
42、ems management server (sms))或第三方应用程序或脚本。使用者只需要知道它们打算获取其信息的对象的类。信息的来源以及实际获取信息的方式无关紧要,它们被隐藏起来。使用 者可以获取有关计算机、操作系统、应用程序和设备的信息,以及获取可通过其他管理协议得到的信息。“cim 储存库”是一个对象数据库,用于存储定义的对象,如用于访问和操作系统管理信息的静态类定义和实例。cim 储存库由 cimom 管理,它形同对象请求的代理程序。cimom 跟踪可用的类并决定由哪一个提供程序负责提供这些类的实例。cimom 和 cim 储存库由称为 winmgmt 的系统服务表示,可通过一组 c
43、om 接口访问。当收到 wmi 使用者发出的管理信息请求时,cimom 对该请求进行计算处理,找到具有该信息的提供程序,然后将数据返回给使用者。使用者只请求所需的信息,它毫不知晓信息的确切来源,也不了解从基础 api 中提取有关信息的任何细节。2.2.8 mfc介绍a. mfc概念。mfc,微软基础类(microsoft foundation classes),同vcl类似,是一种application framework,随微软visual c+ 开发工具发布。该类库提供一组通用的可重用的类库供开发人员使用。大部分类均从cobject 直接或间接派生,只有少部分类例外。 mfc 应用程序的总
44、体结构通常由开发人员从mfc类派生的几个类和一个cwinapp类对象(应用程序对象)组成。mfc 提供了mfc appwizard 自动生成框架。 windows 应用程序中,mfc 的主包含文件为afxwin.h。此外,mfc的部分类为mfc/atl 通用,可以在win32 应用程序中单独包含并使用这些类。b. mfc优势。随着编程语言的推陈出新,mfc一些缺点日益突出。最重要的就是入门门槛相对其他语言要高,而且同样完成一个任务代码量相对较多,mfc似乎江河日下。但是mfc真的没有任何优势了吗?不是,面对底层程序,它能很轻松的与windows api或驱动程序结合,就是在自己的代码中直接使用
45、api函数,而api和驱动程序的资料都是以c语言为基 础的,这使得vc程序员能够更轻松的使用windows api。这样造成了一个很有意思的现象,即入门时vc程序员要付出更多的努力来学习,但是一旦掌握后,开发其他领域的程序或使用第三方软件时,如工业控制 类的程序,由于底层的程序都是用c语言编写,反倒是vc程序员能够更快的掌握该领域的编程技术。而很多其他的编程语言甚至找不到相关的资料。这就说明 vc(mfc)实际上是一种入门困难,但是扩展学习却很轻松的语言框架。如果既限于某一领域的话vc毫无优势可言,但是如果开发一个新的领域的应用程序或 者该程序涉及多个应用领域的话,可减少重复学习的频率和难度,
46、vc(mfc)的优势会立刻显现出来。3 总体设计3.1 总体设计思想设计该应用程序的目的是为实现基于wmi对网络管理进行研究,能及时有效的知道当前网络节点(windows 主机)的软、硬件信息。为了使应用程序能符合实际应用的标准,程序设计参考了软件开发的思想,提出了总体设计,详细设计及后期测试,保证应用程序的可用性。本应用程序主界面设计采用mfc(microsoft foundation classes 微软基础类)框架,使用了对话框cdialog、按钮cbutton、列表clist,获取信息采用sdk(software development kit, 软件开发工具包);主要任务是对网络节点
47、(windows主机)进行信息提取,提取出节点的软、硬件信息,硬件信息如:网卡mac、ip地址,cpu型号,显示卡型号,硬盘及内存容量等,并将提取出来的信息显示到界面上。3.2 总体设计原则为充分发挥该应用程序的潜力,挖掘应用深度和扩大适应能力,需要采用成熟且稳定的应用架构和以实用为根本准则,使得应用程序既能满足业务需求,又能在一段时间内适应将来发展需要。因此,在开发应用程序时遵循如下设计原则:a. 实用性原则。这是所有应用软件最基本的原则,直接衡量系统的成败,每一个提交到用户手中的应用程序都应该是实用的,能解决用户的实际问题,否则该设计就是不成功的。b. 适应性原则。系统需要具备一定的适应能
48、力,能在一段时间内,来应对未来变化的环境和需求。可扩展性主要体现在程序易于扩展,例如可以在现有基础上添加部分模块而不改变现有的框架,程序架构可以根据网络环境和用户的需求适时调整,从某种程度上说,这也是系统的适应性。c. 可靠性原则。系统应该是可靠的,在出现异常的时候应该有人性化的异常信息方便用户理解原因,或采取适当的应对方案。d. 可维护性和可管理性原则。应用程序应该有一个完善的管理机制,而可维护性和可管理性是重要的两个指标。3.3 应用程序功能结构应用程序的实现“节点(windows主机)集成wmi利用c+程序接口调用wmi将信息显示于界面”。节点必须是windows主机,因为wmi是一项核
49、心的windows管理技术,wmi作为一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的windows资源;windows 2k/xp和windows 98 都支持wmi;如果为nt 4.0和windows 95加上了 service pack 4或更高版本,nt 4.0和win95也支持wmi。不支持如linux、unix等操作系统。c+ 程序接口调用wmi,先初始化com,初始化com环境的目的是使调用com的api工作正常,而后连接com或者dcom,(dcom:是一系列微软的概念和程序接口,利用这个接口,客户端程序对象能够请求来自网络中另一台计算机上的服务器程序对象。dco
50、m基于组件对象模型(com),com提供了一套允许同一台计算机上的客户端和服务器之间进行通信的接口。)连接成功后,执行查询,查询成功后,将查询的数据输出。4 详细设计4.1 程序设计环境搭建由于程序设计开发环境是基于windows xp操作系统,wmi集成在系统中,不需再安装 wmi sdk,只需要安装应用程序开发工具 visual studio 2008即可。安装过程不再描述,安装成功后,便可进入应用程序的详细开发。4.2 查看wmi 各分类的属性和方法在进行wmi 编程的时候,我们需要得到相应的信息类型的属性、方法,方法有两种:a. 在windows 环境中。单击“开始”-“运行”,在弹出
51、的“运行”对话框中输入“wbemtest”命令,单击“确定”按钮,即打开了“windows 管理规范测试器”,如图4.1所示。图4.1 windows管理规范测试器界面 点击“连接”,开始默认的名称空间为“rootdefault”; 当需要更改名称空间,将默认的“rootdefault” 更改为“rootcimv2”,单击“连接”。弹出界面如图4.2所示。图4.2 名称空间“root/cimv2”界面单击“打开类别”,在弹出的对话框中输入要查找的类名(例如win32_processor)就可以查询类的属性和方法。如图4.3所示。图4.3 win32_processor的对象编辑器b. 利用in
52、ternet 上的msdn 来查看wmi 各分类的属性、方法。4.3 应用程序的详细设计开发工具安装好后,打开visual studio 2008,选择文件新建项目,新建项目下,选择visual c+ 下的mfc,右侧选择mfc应用程序,并输入应用程序名称,如图4.4所示。图4.4 新建项目而后,选择“确定”,弹出的对话框选择下一步,弹出“应用程序类型”对话框,其中“应用程序类型”选择 基于对话框,“mfc的使用”选择 在静态库中使用mfc,并勾去“使用unicode库”,如图4.5所示。图4.5 应用程序类型完成后,选择“下一步”,弹出“用户界面功能”界面,在该不做任何操作,如图4.6所示。
53、图4.6 用户界面功能 继续选择“下一步”,在“高级功能”界面不做任何操作;选择“下一步”,为“生产的类”界面,如图4.7所示。图4.7 生成的类在该界面不做任何操作,点击“完成”,出现如下界面,便可以开始布置控件,如图4.8所示。图4.8 界面布局4.3.1 界面布置在右侧工具箱中选择需要布局的控件,需要使用到的控件有“list box”、“list control”、“button”。“list box” 用于显示输出的软件信息,并在“添加变量”中添加成员变量名。“list control” 用于显示输出的硬件信息,并在“添加变量”中添加成员变量名。修改“button” 属性中captio
54、n信息,布局完成,如图4.9所示。图4.9 主界面布置4.3.2 添加代码及库文件界面布置完成后,如图4.9所示。如需获取硬件信息,直接双击“硬件信息”按钮,出现“void cmyinfodlg:onbnclickedbutton2()/ todo: 在此添加控件通知处理程序代码”,直接将编写好的程序代码添加入即可;获取“软件信息”等都用相同方法。添加wbemuuid.lib依赖库:项目属性,在属性页的“链接器”下拉项中选择“输入”项,在右侧“附近依赖项”添加“wbemuuid.lib”。5 测试5.1软件测试的目的软件测试的目的决定了如何去组织测试。如果测试的目的是为了尽可能多地找出错误,那
55、么测试就应该直接针对软件比较复杂的部分或是以前出错比较多的位置。如果测试目的是为了给最终用户提供具有一定可信度的质量评价,那么测试就应该直接针对在实际应用中会经常用到的假设。关于软件测试,很多都引用g.myers关于软件测试目的的观点:a. 测试是为了发现程序中的错误而执行程序的过程。b. 好的测试方案是有可能发现迄今尚未发现的尽可能多的错误的测试。c. 成功的测试是发现迄今尚未发现的错误的测试。5.2 测试的基本原则软件测试从不同的角度出发会派生出两种不同的测试原则,从用户的角度出发,就是希望通过软件测试能充分暴露软件中存在的问题和缺陷,从而考虑是否可以接受该产品;从开发者的角度出发,就是希
56、望测试能表明软件产品不存在错误,已经正确地实现了需求。因此测试应该遵循以下原则:a. 测试前要认定被测试的软件有错,不要认为被测试的程序是正确的。b. 确定测试软件的预先测试结果。c. 尽量避免测试自己编写的程序。d. 测试要考虑各种边界条件,特殊情况,制造极端状态和意外状态,比如网络异常中断、电源断电等情况。e. 测试时应以需求为标准。f. 要确定找到的新错与已找到的旧错成正比。本应用程序的测试是以开发者的角度出发,参考了b、d、e三条原则。 5.3 测试方案5.3.1 程序测试 程序测试是对编码阶段出现的语法错、语义错、运行错进行查找的编码执行过程。通过查找编码错和纠正编码错来保证算法的正确实现。程序测试仅限于编码阶段。5.3.2 系统测试在程序开发完成之后,进行了系统测试。系统测试,是将通过确认测试的应用程序,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 寿司餐馆服务行业营销策略方案
- 碳素材料细分市场深度研究报告
- 弹花齿条产业链招商引资的调研报告
- 危机管理培训行业相关项目经营管理报告
- 发行有价证券行业营销策略方案
- PET塑料瓶的回收利用行业营销策略方案
- 刻度机产品供应链分析
- 塑料加工机器产品供应链分析
- 声音和影像的数字化行业营销策略方案
- 装钓鱼假饵用盒商业机会挖掘与战略布局策略研究报告
- 斜井提升安全管理制度
- 卡簧规格尺寸_图文
- 唐钢钢材材质单(共2页)
- 美国高中化学酸碱反应 Acid-Base Reactions
- 施工现场临时用电安全检查表(共3页)
- 勇者斗恶龙9图文攻略
- 医院年度财务报表和部门决算报表审计工作规程
- 阳离子纤维素总结资料
- 学校(纸盘画)社团活动课程简案
- 下肢动脉置管溶栓的护理要点
- 现代自然科学大事年表(1894 1985)
评论
0/150
提交评论