Process32First 的两个超参数是什么意思思

拒绝访问 |
| 百度云加速
请打开cookies.
此网站 () 的管理员禁止了您的访问。原因是您的访问包含了非浏览器特征(391e3de9db5143d1-ua98).
重新安装浏览器,或使用别的浏览器远程数据中心监控管理系统研究
南京信息工程大学 硕士学位论文 远程数据中心监控管理系统研究 姓名:方忠进 申请学位级别:硕士 专业:系统分析与集成 指导教师:葛化敏
南京信息工程大学硕士论文远程数据中心监控管理系统研究摘要随着计算机和网络技术的发展,当代社会己经进入了网络化社会,计算机 数据中心在人们生活和工作中所起的作用越来越重要,在企业、政府、高校等部门,起着至关重要的作用。本文设计了一个远程数据中心监控管理系统,该系统基于TCP/IP理论,监 控端与被监控端主要采用客户端/N务器结构,管理端则采用B/S结构方便远程 管理,同时为了能够及时提醒管理人员进行必要操作和人工干预,本系统还加 入了基于GPRS的远程进程、文件查看和管理功能。监控端(服务器端)运行于监 控中心,监视并记录各远程机的运行状态及数据改动情况,并负责远程唤醒被 关闭的系统;被监控端(客户端)在本地执行进程和文件更改监视并执行监控端发来的各种指令,并实时地将各种监控数据返回监控端存储并显示。文章重点分析研究了c/s结构与B/S结构相结合的软件体系结构和基于c/s 的进程监控与文件监视系统以及基于B/S模式和GPRS模式的远程管理系统等诸 多关键技术,并介绍了使用VB.net相关组件并调用API函数实现进程和文件监 控的原理与过程,并根据管理人员提供的进程数据和自身学习建立智能管理数 据库。应用实践表明,本课题研究开发的远程数据中心监控管理系统稳定可靠, 用户界面友好,使用简单有效。它的应用将使数据中心机房管理工作提升到一个新水平,为数据中心机房安全、规范、科学化管理提供有力保障。监控端有大量的监控数据需要保存,在本系统监控端建立了数据库,及时 存储并对监控数据提供了检索查询功能,论文介绍了系统用到的相关数据库技术。关键词:进程监控,远程监控,GPRS,WMI,数据库 南京信息工程大学硕士论文远程数据中心监控管理系统研究ABSTRACTWiththe development of computer and the network technologies,we call today’S societyournetwork society.Computer data is most commonly used in important role in company,government,school etc.lifeandwork which playsanThe remote monitoring and managing system for data centre was designed which adopts C/S model for the monitor and remotecomputer,andB/S model for themanagingcomputer,basedon onTCP/IP network theory.The function of remote progress monitor and management basedGPRS is added to remind the administrators to take some manual work.The monitor(server)runsin Monitor Center,it monitors and records the datachangeinformation in remote computers,takes charge of wake―on―Lan.The client installed progresss and fileonthe remote computer will monitor itschange,carryout instructions from the monitor,at the same time it will send alot of monitoring data to the monitor to store and display in real time. This paper goes into details many key techniques,such as combines the B/Sto establish a mixed―structure software,the progressandC/S inonaoneandfiles monitor system baseC/S fullystructure,andremote management system base on B/Scourseand GPRS.This paper providesdescription how the monitor ofand file is realized using VB.net groupware and APIcourse ourfunctions.The intelligent managing database is established by the administratordata provided by theandself-learning function.The Practice verifies thatremote monitoring andmanaging system is dependable means.andeffective.It comes trueanew data centermanagementIn the monitor,there are a lot of monitoring data which must be stored,in this system we createadatabaseto store these dataandprovide the query function,the related theory is providedin this paper. Keywords:Progress Monitor,RemoteMonitor,GPRS,WMI,Database 南京信息工程大学硕士论文远程数据中心监控管理系统研究学位论文独创性声明本人郑重声明: 1、坚持以“求实、创新”的科学精神从事研究工作。 2、本论文是我个人在导师指导下进行的研究工作和取得的研究成果。3、本论文中除引文外,所有实验、数据和有关材料均是真实的。 4、本论文中除引文和致谢的内容外,不包含其他人或其它机构已经发 表或撰写过的研究成果。 5、其他同志对本研究所做的贡献均已在论文中作了声明并表示了谢意。作者签名:El期:上og,岳∥学位论文使用授权声明本人完全了解南京信息工程大学有关保留、使用学位论文的规定,学校 有权保留学位论文并向国家主管部门或其指定机构送交论文的电子版和纸 质版:有权将学位论文用于非赢利目的的少量复制并允许论文进入学校图书 馆被查阅:有权将学位论文的内容编入有关数据库进行检索:有权将学位论 文的标题和摘要汇编出版。保密的学位论文在解密后适用本规定。作者签名:日期: 南京信息工程大学硕士论文远程数据中心监控管理系统研究关于学位论文使用授权的说明本人完全了解南京信息工程大学有关保留、使用学位论文的规定,即:学校有权保留 送交论文的复印件,允许论文被查阅和借阅;学校可以公布论文的全部或部分内容,可以 采用影印、缩印或其他复制手段保存论文。(保密的论文在解密后应遵循此规定)作者签名:导师签名:日期:兰翌里多:i, 南京信息工程大学硕士论文远程数据中心监控管理系统研究第一章引言1.1研究背景随着计算机网络的不断发展,计算机数据中心在整个计算机网络中扮演的角色越来越 重要,为网络数据共享提供了极大的便利。但是,在这种便利的背后也隐藏着很多的威胁, 这些威胁可能来自于数据中心的内部也可能来自外部。来自于外部的威胁早已被相关人员 重视并开展了防范技术的研究,随着信息安全技术的不断发展,数字认证、加密解密、防 火墙等技术给数据中心提供了安全保障,在一定程度上能有效化解来自于互联网的威胁和 攻击。但是,对于数据中心计算机工作状态及位于数据中心的内部人员和局域网的威胁则 常常被人所忽视,比如中小型的企事业单位,如学校机房、企业网络中心等。位于数据中 心所处的部门内部和局域网内的管理相对是宽松的,虽然重要的数据管理也采用了授权口 令等一些简单的防范措施,而对企事业单位内部一些核心数据和成果并没有采取可靠的方 法来进行监控与管理,甚至内部人员可以轻易获取和修改里面的数据,对于误操作和恶意 破坏的保护工作几乎没有,在企业和党政部门的网络中,一些重要的电子文档和资料,一 旦由于合法用户的误操作或内部人员的恶意破坏将对数据造成无法挽回的损失,后果不堪 设想。而在有些部门里要求数据中心的计算机或服务器处于24小时工作的状态,而数据中 心的管理目前仍然以手工维护为主,一旦机器故障而又没有及时得到解决的话,将会损失 很多重要的数据。对于这些部门,如高校、气象部门等,由于历经多年存下来的数据量和 实时接收的数据量非常大。重视和提高企事业单位数据中心机房的监控管理水平,对提高 服务质量,减轻机房管理人员劳动强度,都有十分重要的意义。 当今时代,远程监控与管理系统作为一种新型的数据中心监管方式,其目标在于实现 控制层与管理层数据及应用的无缝集成。因此,作为数据中心机房管理信息系统,向远程、 智能及无线化发展是适应社会发展的必然要求,是计算机技术和无线通信技术发展的必然 结果,也是数据中心机房管理自动化发展的必然趋势。1.2研究现状目前,数据中心的管理方式主要有计算机有线网络管理和计算机设备集中管理即KVM (Keyboard、Video和Mouse的简称)管理两种模式。前者利用便捷的网络系统,开发基 于B/S或C/S架构的监管平台,管理员通过相应的ID登陆系统进行管理,这种方式可以一 南京信息工程大学硕士论文远程数据中心监控管理系统研究次性了解多台主机的工作情况,界面友好,操作方便,很容易实施对主机的各种操作。但 这种管理模式对网络的依赖性很强(一般以局域网管理为主),一旦网络中断或管理员不在 现场的情况下发生故障将无法得到及时解决。 KVM管理模式是通过一种KVM切换器将数据中心的各主机的多套键盘、鼠标和显示 终端等集中到一套设备上,通过KVM切换器依次切换到各台主机,工作界面和传统的管 理员直接面对主机管理一样。通过KVM模式,管理员只要在一套I/O设备前即可对数据 中心的各主机进行管理,工作界面直观,管理方便。但KVM管理模式受距离限制(一般 最大在一百米左右),且在同一时间段只能看到一台主机的状态,只是将以前的管理员纯手 工管理进行了优化,不需要在各房间和楼层间跑动。 对比以上两种管理模式,他们均需要工作人员在现场进行操作与管理,为了解决一人 管理多台、多处计算机网络的问题,经分析研究,采用C/S模式集中监控和管理,B/S模 式远程管理,GPRS(GeneralPacket RadioService)模式辅助管理的方法是一个很好的选择,能很好地解决目前两种模式中存在的问题。1.3研究目的与意义根据以上的背景和现状,解决问题的有效方法就是开发出相应的管理系统,利用服务 器对数据中心工作中的计算机工作状态和重要文件进行监控,以保障数据中心数据的安全 性和了解计算机的工作状态,这样既可以防止内部人员和外部因素的破坏,又能够实时监 控数据中心各工作机器的工作状态,并对内部的计算机进行文件访问和进程运行的相关记 录,方便日后的安全检查。同时为了保证数据中心的管理人员能够远程实时掌握机器的工作状态和对其的操作,系统还采用了远程桌面监视和基于B/S和GPRS的远程监控与管理功能。 本课题要研究的远程数据中心监控管理系统,将使数据中心机房的管理工作上升到一 个新层次,使管理人员从日常繁琐的重复性劳动中解脱出来,可实现数据中心的无人值守 管理,是实现数据中心机房安全化、科学化、规范化管理的重要基础和保证。1.4论文主要工作本文研究了远程任务与进程管理、文件系统监视、远程引导、远程桌面和GPRS无线通 信等相关技术,详细设计了整个监控系统。 系统的监控端和被控端采用c/s(客户机/N务器)结构,被控端程序运行于受控的主2 南京信息工程大学硕士论文远程数据中心监控管理系统研究机之上,监视被控机器上的文件系统的读写、新建与删除操作以及任务和进程的工作状态, 并定期将这些数据传送给监控端服务器,监控端接收到数据后进行相应的记录并分析进程 的工作状态和合法性,本系统建立相应的智能知识库,供服务器在判断进程和任务合法性 及缺失进程时使用,一旦出现非法进程则自动向被控端发出终止该进程的指令;如发现本 应正常工作的进程没有被执行则发出运行任务的指令,被控端接收到指令后执行相应的命 令,如果监控端服务器在多次发出指令后问题仍然存在,则通过GPRS模式向管理人员发出 警告,请求人工干预。对于进程和文件的监控技术是整个系统的核心内容。本部分基于 VB.net平台,应用Filesystemwatcher组件、API函数和WMI接口技术来实现。 本系统还加入了传统的远程控制的功能,如远程文件管理和远程桌面监视功能,远程 文件管理功能包括文件的新建、删除、上传、下载和执行等,如同操作人员在本地执行一 样;远程桌面监视功能能够方便管理人员了解远程终端的使用情况。为了管理人员能够方 便地进行管理,系统还增加了基于B/S和GPRS的远程进程、文件管理功能,管理人员可以 通过浏览器或手机查看被控机器的进程工作状态和文件的信息,并可以执行诸如关闭进程、 新建任务等操作。1.5内容安排论文分为六部分: 第一部分为引言。 第二部分介绍网络编程基本理论,这些理论是数据中心监控系统监控数据和指令、进 行网络传输的基础。 第三部分是系统的总体设计,主要介绍了C/S与B/S结构的相关知识,并且根据目前 管理的实际情况,对本系统提出了C/S和B/S结构相结合的软件框架体系并引入基于GPRS 的报警提醒系统,并对系统功能模块进行了设计与分析。 第四部分是系统设计与实现,本部分介绍了遍历系统进程并对其合法性进行分析,进 而采取相应操作的原理;通过对Fi 1eSystemwatcher组件的应用实现对文件系统进行监视 和监控数据记录:介绍了远程桌面监控设计,直接以shell方式调用windows远程桌面并 根据预先生成的配置好的连接配置文件进行连接:远程唤醒设计与实现,介绍了利用WMI 技术获取被控端MAC地址,并利用AMD公司开发的网络唤醒技术,发送Magic Packet数据包实现远程唤犀;监控端数据安全建设,介绍了为了保障相关设置和监控数据的安全所采用的加密及人员管理方法;GPRS远程管理的设计与实现,介绍了基于GPRS的远程信息发3 南京信息工程大学硕士论文远程数据中心监控管理系统研究送原理及过程;B/S架构远程管理设计,以ASP.net作为WEB前端开发技术,通过对数据 库的操作,管理人员可以远程查看各服务器进程情况并能够执行关闭与启动操作,查看进 程监控记录,查看文件监控记录,查看监控属性设置等。 第五部分是系统性能测试,对开发的系统在气象部门数据中心环境中进行应用测试, 并得出了测试结果及评价。 第六部分是总结,对论文所做工作进行总结,并对不足之处进行展望。4 南京信息工程大学硕士论文远程数据中心监控管理系统研究第二章网络编程基本理论进行远程监控的一个前提条件是有一个控制环境,这个环境就是计算机网络。因此, 在讲述远程监控的具体技术之前,先介绍一些网络通信程序设计方面的相关知识。这些知 识对于远程监控软件是不可缺少的,特别是TCP/IP协议,因为TCP/IP是整个计算机网络 的灵魂。在这一部分,先简单地介绍一下网络的应用和常用协议,然后讲述网络通信实现 等方面的内容。2.1通信协议选取在本系统中,被控端要向监控端频繁地传输数据,这些数据主要是进程数据、任务数据和文件相关数据等。对于数据通信方式的选择,主要从安全性和实时|生的角度考虑。一种方法是被监控端程序把数据写入到本地硬盘上,监控端去读取这些数据。但是这 种方法速度慢,需占用磁盘空间,无法满足监视的实时性要求。而且可靠性和稳定性不高。 另外一种方法是采用PC与PC之间直接通信的方式,即利用某种通信协议来实现被监 控端与监控端的计算机直接在内存中交换数据信息的方法,而过期的数据可以从内存中直 接释放掉,所以实时性比较好。 当前,因特网把分布于全球不同国家、不同地区的众多计算机相互连接起来。不同的 开发商开发了不同的通信方式,为了使这些互连的计算机能够进行相互通信,必须开发严 格的标准,使用相同的“语言”,即使用相同的协议(Protoc01)。通过制定协议,定义主机 之间的每个数据包中的每一位,网络中不同的计算机只要遵守这个协议,按照这种“语言” 就能自由地进行信息交换。 目前,在因特网中使用的协议是TCP/IP,它是目前最完整、最被普遍接受的通信协议 标准,而且它支持WindowsSockets的接口。我们就选用TCP/IP作为本系统的通信协议。2.2TCP/IP协议TCP/IP起源于20世纪60年代末,是美国政府资助的一个分组交换网络研究项目。早期的计算机是没有互相连接的,因此许多数据都是散布在各个单独的计算机内,美国国防 部的想法是希望让这些分散的计算机可以共享资源,也希望重要的资源可以利用网络分散5 南京信息工程大学硕士论文远程数据中心监控管理系统研究在各地,以避免被攻击的危险。在这种想法的推动下,建立了ARPANET这个为人所熟知的 分散的网络协议,这也是TCP/IP的起源。现在TCP/IP己经成为计算机之间最常用的网络 协议。它是~个真正的开放系统,因为协议组件的定义及其多种实现可以公开得到,所以 己经成为Internet的基础。TCP(Transmission 是这两种主要的通信协议的集合。 TCP/IP不是一个单一的协议,而是一个协议族,因为其多样性,TCP/IP不直接使用 OSI模型,而是使用一个4层的模型进行通信,如图2.1所示。从该图可以看出,OSI参考 模型与TCP/IP模型之间没有简单的对应关系。TCP/IP参考模型的每一层对应OSI模型的 一层或多层。ControlProtoc01)和IP(Internet Protoc01)2.2.1网络接口层网络接口层是TCP/IP模型的第一层,对应OSI模型的数据链路层和物理层。通常包括 操作系统中的设备驱动程序和计算机中对应的网络接口卡。它们一起处理针对电缆(或其他 任何传输媒介)的物理接口细节,是网络拓扑结构和网络层的联络者。OSI参考模型‘ 应用层 表示层 会话层一TCP/IP参考模型应用层传输层网络层1●r7传输层 网络互联层数据链路层物理层1 .J。 7网络层图2.1 OSI参考模型与TCP/IP模型对照图2.2.2网络层网络层是TCP/IP模型的第二层,其功能与OSI模型的网络层类似,主要负责网络编址 和选路,处理分组在网络中的活动,例如分组的路由选择。此外网络层还负责数据包分片 和重组,以进行传输。在网络层使用的常用协议有网际协议(IP),Internet控制报文协议6 南京信息工程大学硕士论文远程数据中心监控管理系统研究(ICMP)、地址解析协议(ARP)和Internet组管理协议(IGMP)。2.2.3传输层传输层是TCP/IP模型的第三层。它主要负责建立连接,为两台主机的应用程序提供端 到端的通信。在TCP/IP协议组件中,使用两个协议:传输控制协议(TCP)和用户数据报协议 (UDP)。TCP进行面向连接的通信,要建立三次握手,以确保无误、有序、无丢失和没有重复地传递数据,所以速度慢、可靠。而UDP进行通信时,无须建立三次握手机制,也不确保数据包的可靠传递。本质上,UDP将数据传递给接收方,希望数据能够被接收,所以UDP 的速度快,但不确保可靠传递。2.2.4应用层应用层是TCP/IP模型的第四层。应用层负责TCP/IP应用程序,包括基于套接字的应 用程序和网络基本输入输出系统(BIOS)应用程序。目前,不同的TCP/IP实现都会提供 Telnet远程登陆、文件传输协议、SMTP用于电子邮件的简单邮件传输协议、SNMP简单网 络管理协议等通用的应用程序。2.3Winsocket套接字Winsocket概述2.3.1随着计算机网络技术的发展,TCP/IP协议被集成到操作系统内核中,相当于在操作系 统中引入了~种新型的输入/输出操作,这种用户进程与网络协议的交互作用要解决网络操 作的两个进程在不同计算机上建立联系以及如何用一种通用机制支持多种协议的问题。 80年代初,美国政府的高级研究工程机构(ARPA)给U.C.Berkeley分校提供了资金, 让他们在BSD UNIX操作系统下实现TCP/IP协议。在这个项目中,研究人员为TCP/IP网络 通信开发了一个API(应用程序接口)。这个API称为Socket接口(套接字),Socket接口 成为TCP/IP网络最为通用的API,也是在Internet上进行应用开发最为通用的API。 90年代初,由Microsoft联合了其他几家公司共同制定了一套Windows下的网络编程 接口,即Windows Sockets规范(简称Winsocket[40,46,483)。Windows Sockets规范以 U.C.Berkeley分校BSD UNIX中流行的Socket接口为范例定义了一套MicrosoftWindows下网络编程接口。它不仅包含了人们所熟悉的Berkeley Socket风格的库函数,也包含了7 南京信息工程大学硕士论文远程数据中心监控管理系统研究一组针对Windows的扩展库函数,增加了符合Windows消息驱动特性的网络事件异步选择 机制,以使程序员能充分地利用Windows消息驱动机制进行编程。Windows Sockets规范 是一套开放的、支持多种协议的Windows下的网络编程接口。从1991年的1.0版到1995 年的2.0.8版,经过不断完善并在Intel、Microsoft、Sun、SGI、Informix、Novell等公 司的全力支持下,已成为Windows网络编程的事实上的标准。目前,在实际应用中的 WindowsSockets规范主要有1.1版和2.0版。两者的最重要区别是1.1版只支持TCP/IP 协议,而2.0版可以支持多协议。2.0版有良好的向后兼容性,任何使用1.1版的源代码, 二进制文件,应用程序都可以不加修改地在2.0规范下使用。WindowsSockets规范本意在于提供给应用程序开发者一套简单的API,并让各家网络软件供应商共同遵守。此外,在一个特定版本Windows的基础上,Windows Sockets也定 义了一个二进制接口(ABI),以此来保证应用WindowsSockets API的应用程序能够在任何 网络软件供应商的符合Windows Sockets协议的实现上工作。因此这份规范定义了应用程 序开发者能够使用,并且网络软件供应商能够实现的一套库函数调用和相关语义。WindowsSockets规范定义并记录了如何使用API与Internet协议族(IPS,通常我们指的是TCP/IP)连接,尤其要指出的是所有的Windows Sockets实现都支持流套接字和 数据报套接字。 Socket实际在计算机中提供了一个通信端口,可以通过这个端口与任何一个具有 Socket接口的计算机通信。应用程序在网络上传输,接收的信息都通过这个Socket接口 来实现。在应用开发中就像使用文件句柄一样,可以对Socket旬柄进行读,写操作。 通讯的基石是套接字,一个套接字是通讯的一端。在这一端上你可以找到与其对应的 一个名字。一个正在被使用的套接字都有它的类型和与其相关的进程。网络通信包括两个 进程,每个进程由协议,网络地址和端口号唯一地标识,端口是TCP/IP协议堆栈提供的上 层应用程序的访问点。套接字Socket接口是TCP/IP网络的API,是网络通信端点的抽象 表示,其中包含协议、本地地址、本地端口、远程地址和远程端口等主要信息,每个套接 字都有虚电路和数据报类型。通信时应用程序只需将数据写入或从套接字取出,套接字API 负责处理与TCP/IP协议堆栈的接口,简化了网络通信设计。Socket机制的核心结构由三 部分组成:套接字层、协议层和设备层,基本的套接字模型如图所示。8 南京信息工程大学硕士论文远程数据中心监控管理系统研究客户端程序客户端程序 套接字层套接字层回回 田协议层 设备层 以太网驱动程序回回 田协议层设备层I?-l以太网驱动程序图2.2基本的套接字模型结构图套接字存在于通讯域中。通讯域是为了处理一般的线程通过套接字通讯而引进的一种抽象概念。套接字通常和同一个域中的套接字交换数据(数据交换也可能穿越域的界限, 但这时一定要执行某种解释程序)。Windows Sockets规范支持单一的通讯域,即Internet 域。各种进程使用这个域,互相之间用Internet协议族来进行通讯(Windows 以上的版本支持其他的域,例如WindowsSockets2)。 Sockets 1.1套接字可以根据通讯性质分类,这种性质对于用户是可见的。应用程序一般仅在同一 类的套接字间通讯。不过只要底层的通讯协议允许,不同类型的套接字间也照样可以通讯。 用户目前可以使用两种套接字,即流套接字和数据报套接字。流套接字提供了双向的、 有序的、无重复并且无记录边界的数据流服务;数据报套接字支持双向的数据流,但并不 保证是可靠、有序、无重复的。也就是说,一个从数据报套接字接收信息的进程有可能发 现信息重复了,或者和发出时的顺序不同。数据报套接字的一个重要特点是它保留了记录 边界。对于这一特点,数据报套接字采用了与现在许多包交换网络(例如以太网)非常类 似的模型。2.3.2面向连接的连接方式被监控端和监控端之间的数据传输主要采用面向连接协议的套接字,面向连接协议的 套接字调用,服务器必须首先启动,直到它执行完accept()调用,进入等待状态,才可 以接收客户请求。 监控部分分为监控端和被监控端两个部分,在被监控端执行监视操纵,执行监控端命 令,监控端要控制被控制端动作时,必须向被控制端发送请求。在这个系统中,考虑控制 中通信可靠性和稳定性,我们采用面向连接的TCP协议,即流式套接字进行信息的交换。9 南京信息工程大学硕士论文远程数据中心监控管理系统研究2.3.3Winsocket程序设计在98和WindowsNT等Windows版本操作系统下进行Winsocket开发使用的编程语言有 很多,VC++,JAVA,DELPHI,VB等。Winsock控件将Socket函数进行封装之后提供给用户。 利用Winsock控件可以抛开大量复杂的API函数的调用,直接利用控件进行客户机与远程计算机的联机,并通过用户数据记录通信协议(UDP)或者传输控制协议(TCP)通信协议来进行数据交换。这两种通信协议都可以用来建立客户端与服务器端的应用程序。应用程序ll?-I应用程序2工网络编程界面(WinSockct)工 I工 工物理通信介质工 工 工网络通信协议服务界面(TCP/IP)操作系统(Windows,Linux)图2.3应用程序与WinSocket的关系应用程序调用Windows Sockets的API实现相互之间的通讯。WindowsSockets又利用 下层的网络通讯协议功能和操作系统调用实现实际的通讯工作。Winsocket接口在Windows 编程环境中的位置如图2.3所示。可以看到,Winsock.dll位于TCP/IP协议栈和应用程序 之间。也就是说,Winsocket管理与TCP/IP协议的接口。 在网络编程中最常用的方案便是客户机/服务器模型。在这种方案中客户应用程序向服 务器程序请求服务。一个服务程序通常在一个众所周知的地址监听对服务的请求,也就是 说,服务进程一直处于休眠状态,直到一个客户对这个服务的地址提出了连接请求。在这 个时刻,服务程序被“惊醒”并且为客户提供服务,对客户的请求作出适当的反应。虽然 基于连接协议(流套接字)的服务是设计客户机/服务器应用程序时的标准,但有些服务也 是可以通过无连接协议(数据报套接字)提供的。这两种编程模型分别如图所示。lO 南京信息工程大学硕士论文远程数据中心监控管理系统研究服务器端客户端图2.4面向连接的编程模型服务器端 创建套接字(socket)客户端 创建套接字(socket)绑定IP和端口(bind)收发数据(send/recv)收发数据(send/recv)关闭连接(closesocket)关闭连接(closesocket)图2.5面向无连接的编程模型一般在使用中,面向连接协议的Socket编程模型应用最为广泛,因为面向连接协议提 供了一系列的数据纠错功能,可以保证在网络上传输的数据及时、无误地到达对方。 总的来说,使用Socket接口(面向连接或无连接)进行网络通信时,必须按下面简单 的四步进行处理: (1)程序必须建立一个Socket; (2)程序必须按要求配置此Socket。也就是说,程序要么将此Socket连接到远方的主 机上,要么给此Socket指定一个本地协议端口; (3)程序必须按要求通过此Socket发送和接收数据; (4)程序结束时必须关闭此Socket。 南京信息工程大学硕士论文远程数据中心监控管理系统研究WinsocketAPI的主要函数见下表。 表2.1 WinsocketAPI主要函数表函数名WSAStartup 0功能说明 此函数是应用程序调用WindowsSockets连结应用程序与Windows SocketsDLLDLL函数中的第一个,也唯有此函数呼叫成功後,才可以再调用其他Windows Sockets DLL的函数。的第一个函数WSACleanup 0结束Windows当应用程序不再需要使用WindowsSocketsDLLSocketsDLL的使用时,须调用此函数来注销使用,以便释放其占用的资源socket0建立Socket此函数用来建立一Socket描述字,并为此 Socket建立其所使用的资源closesocket 0关闭某一Socket此一函数是用来关闭某~Socket 此函数在服务程序上使用,是调用监听函数 1isten()必须要调用的函数bind()将一本地地址与一个 SOCKET描述字连接在一起1isten()设定Socket为监听此函数在服务程序上使用,来设定Socket进入监 听状态,并设定最多可有多少个在未真正完成连接 前的客户端的连接要求。(目前最大值限制为5, 最小值为1)状态,准备被连接accept0接受某一Socket的连 接要求,以完成面向连接的客户端Socket服务端应用程序调用此函数来接受客户端Socket 连接请求,accept0函数的返回值为一新的 Socket,新Socket就可用来在服务端和客户端之 间的信息传递接收,而原来Socket仍然可以接收 其他客户端的连接要求的连接请求connect()要求连接某一Socket 到指定的网络上服务端此函数用在客户端,用来向服务端要求建立连接。 当连接建立完成後,客户端即可利用此Socket来与服务端进行信息传递recv()从面向连接的Socket接收信息此函数用来从面向连接的Socket接收信息send()使用面向连接的此函数用来从面向连接的Socket发送信息Socket发送信息WSAAsyncSe l ect 0要求某一Socket有 事件(event)发生时 通知使用者此函数用来请求WindowsSocketsDLL为窗口句柄发~条消息一无论它何时检测到由IEvent参数指 明的网络事件。要发送的消息由wMsg参数标明.被 通知的套接口由s标识。本函数自动将套接口设置 为非阻塞模式12 南京信息工程大学硕士论文远程数据中心监控管理系统研究2.4Windows管理规范(WMI)2.4.1WMI基础WMI(Windows ManagementInstrumentation,Windows管理规范),是微软基于WebInformation Model,的企业管理(wBEM)这一理念与标准的具体实现,并对CIM(Common公用信息模型)提供完整的支持,通过它可以访问、配置、管理和监视几乎所有的Windows 资源。 WMI最初于1998年作为一个附加组件与Windows 是内置在WindowsNT 4.0 Service Pack4一起发行,2000、Windows XP和Windows Server Management Task2003系列操作系统中核心的管理支持技术。基于由Di stributedForce(DMTF)所监督的业界标准,WMI是一种规范和基础结构,通过它可以访问、配置、管理和监视几乎所有的Windows资源。WMI是Windows 2K/XP管理系统的核心;对于其他的Win32操作系统,WMI是一个有用的插件。WMI以CIMOM为基础,CIMOM即公共信息模型对象管理器(CommonInformation ModelObject Manager),是一个描述操作系统构成单元的对象数据库,为MMC和脚本程序提供了一个访问操作系统构成单元的公共接口。有了WMI,工具软件和脚本程序访问操作系统的 不同部分时不需要使用不同的API;相反,操作系统的不同部分都可以插入wMI,工具软件 和1jl『MI可以方便地读写wMI。 wMI体系结构由三个层次组成,由下至上依次是托管资源,wMI基础结构,使用者。 (1)托管资源是任意逻辑或物理组件,通过使用wMI进行公开和管理。可以使用雕I管 理的Windows资源包括:计算机系统、磁盘、外同设备、事件日志、文件、文件夹、文件 系统、网络组件、操作系统子系统、性能计数器、打印机、进程、注册表设置、安全性、 服务、共享、SAM用户和组、Active Directory、Windows安装程序、Windows驱动程序模 式(WDM)设备驱动程序,以及SNMP管理信息基(MIB)数据等。WMI托管资源通过一个提 供程序与WMI通讯。当开始编写代码来与WMI托管资源交互时,还经常会用到一个术语“实 例”,它被用于引用在运行代码中的托管资源的虚拟表示形式。 (2)中间层是WMI基础结构。WMI由三个主要组件构成:公共信息模型对象管理器(Common Information Model ObjectManager,CIMoM)、公共信息模型(CommonInformationModel,CIM)储存库,以及提供程序。这三个WMI组件共同提供通过其定义公开访问与检 索配置和管理数据的基础结构。 WMI提供程序13 南京信息工程大学硕士论文远程数据中心监控管理系统研究WMI提供程序在WMI和托管资源之间扮演着中间方的角色。提供程序代表着应用程序 向1jl『MI托管资源请求信息,并发送指令到wMI托管资源。例如程序可以使用内置Win32提 供程序来检索内存和服务的相关信息,也可以使用事件日志提供程序来从Windows事件日 志中检索记录。 通过将托管资源公开给基于wMI标准的、有统一访问接口的WMI基础结构,程序隐藏 了托管资源独有的实现细节。WMI提供程序使用托管资源本机API相应的托管资源通讯, 使用WMI编程接口与CIMOM通讯。例如,内置的日志提供程序调用Win32事件日志API来 访问事件日志。 基于WMI的可扩展体系结构,软件开发人员可以开发并集成附加提供程序来公开其产 品特有的管理函数。监视Exchange连接器状态的Exchange 个这样的示例。同样,ApplicationServer、Internet Server2000提供程序就是一Center、Operations Manager、Systems ManagementInformation Server和SQLServer等都包含WMI提供程序。CIMOM(CIM Object Manager)CIMOM(读作see-mom)处理使用者和提供程序之间的交互。可以将CIMOM作为WMI的 信息代理。所有的WMI请求和数据都经过CIMOM。windowsnagement Instrumentation服务 (winmgmt.exe),在运行Windows MillenniumEdition(Me)、Windows 98或Windows 95 2.5的计算机上,WMI作为一个标准可执行进程运行;在运行Windows 2000或Windows4.0 Service Pack OSR NT XP4的计算机上,WMI服务作为一个单独的服务进程运行;在Windows和windowsServer系列操作系统上提供了CIMOM角色,在通用服务主机进程(svchost.exe) 的控制下运行。 CIM储存库 CIM储存库,在WMI SDK中也称为WMI储存库,是存储建模wMI托管资源的类定义的 wMI架构,所以CIM是WMI的数据模型。虽然CIM储存库能够存储一些数据(而且它确实 存储了),但是它的主要目的是构建管理环境的模型。CIM不是为存储它所定义的大量管理 信息而设计的。相反,大部分数据是根据需要动态地从WMI提供程序检索的。其原因很简 单,大多数WMI托管资源的操作状态更改很频繁,因而必须按需读取以确保检索的是最新 的信息。一个例外是WMI操作数据。WMI操作数据(例如,命名空间信息、提供程序注册 信息、托管资源类定义和永久事件订阅)存储于CIM储存库中。 (3)使用者包括管理应用程序和管理工具,位于整个WMI体系结构的顶层,它们通过 WMI基础结构访问并控制可用信息。14 南京信息工程大学硕士论文远程数据中心监控管理系统研究2.4.2.NET中的WMI编程在.NET Framework中可以通过System.Management命名空间中提供的一组托管代码类 来访问wMI,通过这些类.NET Framework应用程序可以访问和操作从任何源提供的管理信息, 以便在wMI储存库和提供程序提供的动态对象之间收发数据,这些源包括:Windows操作系 统、用WMI规范化的本机应用程序、以及用System.Management.Instrumentation规范化 的托管代码等。System.Management.Instrumentation仅是通过WMI提供信息的几种方法 之一,两个命名空间不互相依赖。如果使用System.Management类,将能够访问任何WMI信 息,而不仅仅是用System.Management.Instrumentation编写的规范。耍管理远程服务器需 要有登录远程计算机的账号和密码,要执行相关操作还需要有在该计算机上的相应管理权 限,.NET提供了简单、一致的编程模式,主要包括远程连接、查询和提取数据。15 南京信息工程大学硕士论文远程数据中心监控管理系统研究第三章系统总体结构设计3.1需求分析随着互联网的发展,网络安全日渐受到人们重视,安全技术发展至今,己形成很多成 熟有效的防护措施如防火墙,加密、解密技术等,这些技术给普通用户提供了较为安全的 外部网络环境。但是,处在内部网络中时,防范意识却大大降低了,一种情况非常普遍: 局域网中的重要数据是对整个局域网内部透明的,如在公司网络中,产品研发过程中的各 种核心技术资料和工作资料对整个开发组是透明的和共享的,对于防误操作、防破坏的保 护几乎没有采取任何措施。这样就使得在局域网中使用重要数据的安全性得不到保障。 现代社会,电子文档和电子档案正在逐渐取代纸质文档和纸质档案,在机要部门网络 中,如果没有有效的监控,对于重要电子文档,合法用户的误操作或内部人员的有意篡改, 都会造成严重后果。这对电子政务和办公自动化的顺利实现是一个威胁。 根据以上这些情况,开发了本软件系统,通过对远程文件系统的监视,对数据的读、 写、删除等操纵进行监视和记录,结合远程桌面和远程唤醒功能,保障了进程实时工作和 内部网络机密数据的安全性,有效减小了内部人员对数据的威胁。本软件还结合了传统B/S 远程浏览端管理和GPRS无线报警等功能,可以及时方便地了解远程机的工作情况。3.2系统运行环境与架构系统运行对机器硬件配置要求较低,目前使用的电脑均能满足系统要求,系统运行环 境为Windows平台系统;客户端(被监控端)安装在被监控主机上,服务器端(监控端)为监 控端及监控数据管理中心。整个系统的结构如图所示。其中,监控端负责管理各被监控端, 存储和显示监控数据,并提供检索;被监控端负责监视本地系统的活动,实时向监控端返 回监视数据。16 南京信息工程人学硕士论文远程数据中心监控管理系统研究一/‘LAN◇毋黔◇被棒』嵩/~一≮图3.1系统组成原理图3.3建设原则根据监控系统的特性和实际需求,建立原则如下: 1)应充分考虑监控系统与现有数据中心系统的衔接。 2)按照层次化、模块化、参数化结构进行设计,以便于系统功能的扩展和平滑升级。 3)应用软件所依托的网络、硬件服务器平台、操作系统和数据库是多种多样的,应用 软件必须具有跨平台的能力。 4)具备安全性、可靠性以及高效性。 5)遵循有关的国家标准、工业标准、行业标准。 6)应用服务与数据库服务应在逻辑上实现分离:系统中各功能子系统在逻辑上实现分离。7)应确保数据操作的合法性、正确性、完整性。对重要的数据信息应进行加密处理和存储。8)应考虑软件功能模块的重用,减少不必要的重复开发工作。 9)实现监控数据相对集中处理,便于数据的实时统计、分析和监管。17 南京信息工程大学硕士论文远程数据中心监控管理系统研究3.4系统体系结构3.4.1c/s结构3.4.1.1C/s简介PC时代到来后,计算机网络和计算机应用得到了很大的发展。PC价格的不断下降和性 能的持续上升,逐步将在面向终端的网络时代中处于核心地位的大型主机赶向网络应用的 角落。Netware和WindowNT的兴起,以及大型数据库系统的粉墨登场,开辟了网络应用的 新模式一一客户机/N务器(c/s)模式。这种模式是计算机网络发展第二阶段出现的一种分 布式计算处理的网络系统。客户机/服务器结构简称c/s结构或称两层结构,由服务器提供 应用(数据)服务,多台客户机进行连接。在c/s结构中,位于另一个计算机上层的计算机 称为服务器,而在下层的计算机称为客户端。一个典型的c/s结构的系统的组织结构如图。/、▲目”警◆r一一/一~,,.?‘JJ,。?图3.2 c/s结构的系统的组织结构 c/s模式是指任何将事务处理分开进行的网络系统,大体上分为:文件服务器系统、数据库服务器系统、事务服务器系统和组件服务器系统。但绝大多数的c/s应用系统是c/s 数据库系统。充当服务器的是大型数据库系统,如Sybase、Oracle、Informix等。3.4.1.2c/s结构功能子系统不同于将软件视为在一台机器上的单个应用,适合于C/S体系结构的软件有几种不同 的子系统,它们可以被分配到客户机或服务器上去: 用户交互/表示子系统:该子系统实现所有通常和图形用户界面(GUI)相关的功能。 应用子系统:该子系统实现在应用领域范围内的需求。例如,某业务应用可能基于数值18 南京信息工程大学硕士论文远程数据中心监控管理系统研究输入、计算、数据库信息和其他考虑生成一系列报表。某组件应用可能提供能够进行公告 板通信或电子邮件的设施。在这两种情况下,可以对应用软件进行划分,某些构件驻留在 客户机上,而另一些构件驻留在服务器上。 数据库管理子系统:该子系统完成应用需要的数据操纵和管理。数据操纵和管理可以简 单到记录的传递或复杂到高级SQL事务的处理。当和三类子系统的每一种相关的大多数功 能被分配给服务器时,得到一个“胖”服务器设计:相反,当客户实现了用户交互/表示、 应用和数据库结构的大多数功能,则产生“胖”客户设计。 c/s模式的数据库系统是一种两层结构的系统:第一层是在客户机系统上结合了表示 与业务逻辑;第二层是通过网络结合了数据库服务器。这是一种典型的“胖”客户设计。3.4.1.3选用c/s结构优势c/s结构很好地实现了网络环境下分布式计算、信息和资源共享的课题。那么为什么 要选择c/s结构作为在网络环境中应用程序系统的体系结构模式呢?回答这个问题要从客 户服务器模型的特点谈起。 客户一服务器模型最重要的特点是非对等相互作用,即客户与服务器处于不平等的地 位,服务器拥有客户所不具备的软硬件资源、运算能力、信息资源等,服务器提供服务, 客户请求服务。客户服务器分别是两个应用程序。 而事实上,在网络中客观存在着大量的资源分布和运算能力不均等的现象:小到一个物 理网络,往往是某些主机拥有大容量外存,某些主机只有很少外存或没有外存;有些主机 拥有打印机,有些主机没有。大到整个网间网,少数网点拥有超级运算能力,大量网点由 PC机构成……诸如此类,不一而足。同时网间网中还存在人为的不均等现象,人为的不均 等主要针对信息而言,比如名字信息、地址信息等;有些主机拥有大量的信息资源,作为 信息服务提供者向网络用户提供信息,其他大量的Pc则处于接收服务的位置。可见,不均 等现象不可避免,而客户一服务器模型体现了这种现象并很好地适应了这种现象。客户一 服务器模型起源于资源、运算能力和信息不均等的现实。 此外,与单机进程通信不同的是,在网络环境下进程(程序)间的通信完全是异步的。 每次通信均由随机启动的客户进程(程序)发起,服务器进程(程序)从开机起就处于等待状 态。这样服务器可以随时响应客户的请求。这种进程间通信的特点完美地解决了异步通信 的问题。同时客户与服务器的请求应答模式为相互通信进程间的数据传输同步提供了有力 的支持。 综上所述,选择客户一服务器模型不是偶然的,它是客观现实与技术实现相结合的产19 南京信息工程大学硕士论文远程数据中心监控管理系统研究物。3.4.2B/S结构为了解决在今天的网络技术环境里,两层结构的C/S模式在系统的集成与维护、操作 界面一致性、系统的扩展性等方面的局限性,一个调度任务集中的、以客户为中心的应用 程序平台一一B/S模式在众多的解决方案中凸现出来。B/S模式即浏览器/服务器模式,是 一个分布式、开放、适应性强、高性能、端到端的平台。B/S是对C/S模式的一种改进, 它将在两层C:/S结构中集成在客户端的交互/表示功能和企业逻辑功能分离,将业务逻辑功 能集成到一个新的Web服务器上,从而形成三层结构的新型软件体系结构一一B/S/S(浏览 器/Web服务器/数据服务器)。B/S结构如图所示:Web服 团客户机I客户抛一,~参 ■气蓼{}尸机3图3.3 B/S结构的系统的组织结构3.4.2.1三层B/s结构功能划分各自完成的功能如下: 客户机:负责表示层的功能,即用于界面引导、接受用户输入并向应用服务器发送服务 请求、显示处理结果。客户端实际运行的是一个web浏览器,如IE、firefOX。 应用服务器:完成业务逻辑功能,执行业务逻辑、向数据库发送请求。 数据库服务器:充当数据存储层,执行数据逻辑、运行SQL式存储过程。 这种B/S结构有两个显著的优点:表示层和业务层完全分离。客户端统一采用浏览器, 南京信息工程大学硕士论文远程数据中心监控管理系统研究这不仅让用户使用方便,而且使得客户端不存在安装维护的问题。当然软件开发和维护的 工作不是自动消失了,而是转移到了web服务器端。解决了在Internet环境下系统规模不 断扩大、用户数量不断增加,而导致的系统维护和管理的问题。 B/S结构有利于Internet异构系统通讯。Internet异构系统通讯的关键点在于:一个 是通讯的标准,两个进程需要采用标准的协议进行通讯;另外一个是数据的打包,数据应 该采用一致的形式进行打包和解包。当前基于Internet最流行的传输协议就是HTTP,所 有的web浏览器都通过这个协议和Web服务器进行通讯并得到相关的网页。而数据的打包 也需要采用一定的标准,当前出现的跨平台的信息编码的标准就是HTML(XML)。因为HTTP 和HTML(XML)都是工业标准,并不和任何平台,厂商挂钩,所以基于这两种标准构建的系 统无疑在网络环境下是极有生命力的。3.4.2.2c/s结构与B/S结构并存B/S结构相对比较成熟,但当前C/S结构仍有其用武之地,因此今后一段时间内会出 现C/S结构与B/S结构并存的局面。c/s结构在技术上很成熟,它的主要特点是交互性强、 具有安全的存取模式、网络通信量低、响应速度快、利于处理大量的数据。但是该结构的 程序是针对性开发,变更不够灵活,维护和管理的难度较大。通常只局限于小型局域网, 不利于扩展。并且,由于该结构的每台客户机都需要安装相应的客户端程序,分布功能弱 且兼容性差,不能实现快速部属安装和配置,因此缺少通用性,具有较大的局限性。要求 具有一定专业水准的技术人员去完成。 而B/S结构的主要特点是分布性强、维护方便、开发简单且共享性强、总体成本低。 但数据安全性问题、对服务器要求过高、数据传输速度慢、软件的个性化特点明显降低, 这些缺点是有目共睹的,难以实现传统模式下的特殊功能要求。例如通过浏览器进行大量 的数据输入或进行报表的应答、专用性打印输出都比较困难和不便。此外,实现复杂的应 用构造有较大的困难。虽然可以用ActiveX、Java等技术开发较为复杂的应用,但是相对 于发展己非常成熟c/s的一系列应用工具来说,这些技术的开发复杂,并没有非常成熟的 技术工具用于开发。各取这两种模式的长处,形成一种过渡性的MIS系统混合结构,即c/s、 B/S混合模型。3.4.3系统网络设计本系统采用了C/S和B/S结合的软件框架体系并增加GPRS框架结构,充分利用了C/S2l 南京信息工程大学硕士论文远程数据中心监控管理系统研究模式下操作灵活,功能强大的特点,负责完成组织事务的处理;同时考虑了B/S模式下集 中化管理和维护,客户端的免安装和零维护的特点,极大地降低了日后的维护成本,用以 完成客户集成功能、向客户提供自主服务;利用了GPRS及时方便的特性。它由三个部分构 成:采用C/S结构的局域网系统、采用B/S结构的web网上查看管理系统和采用GPRS通信 方式的远程无线查看管理系统。3.4.4内部网络结构一个局域网的基本组成可分成四个部分:服务器,为多个网络用户提供服务的共享设 备;客户机,用户使用的计算机;网络通信系统,连接客户机和服务器的设备;网络操作 系统,管理网络硬件操作的软件。其中,服务器、客户机和网络通信系统是网络中的硬件 部分,网络操作系统是网络中的软件部分。具体到本系统的设计,局域网服务器是一台运 行着数据库系统的监控服务器:客户机负责监视本机系统将结果上报监控端并执行监控端 指令:网络通信设备指的是由网卡、集线器、交换机和传输介质构成的硬件系统;网络操 作系统选用的是普遍采用的基于WindowsNT的操作系统。基于局域网组建的目的和当前局 域网的规模,局域网的拓扑结构采用星型结构。其结构的示意图如下:图3.4内部网络结构图局域网功能上是以数据库服务器为中心,监控终端、管理终端连接到数据库服务器上, 并通过数据库管理系统和其他终端建立连接,从而成为一个整体。物理连接上整个计算机 系统通过集线器(或交换机)为中心的星型网络联系在一起,当端口数量不足时通过级连方 式将多个集线器(或交换机)组合在一起而组成一个更大的星型网。 南京信息工程大学硕士论文远程数据中心监控管理系统研究3.4.5BIS远程管理BIS结构的模块单元完成以下功能:用户可以通过Internet/Intranet访问或维护本 管理系统。这是一个Internet下的分布式结构,由几个主要部分组成:统一的用户界面, 即各种浏览器,如微软的IE、firefox等;响应客户端请求的Web服务器(HTTP服务器), 如Apache、IIS等;提供数据信息的数据库服务器,在我们的系统中使用微软的SQLServer 作为数据库后台;网络载体,主要是Internet和Intranet。此外,还有网络操作系统和 服务器端处理业务逻辑的处理程序。由上述几个部分组成一个完整的B/S结构的网上管理 系统。其组成结构示意图如下:”¨l磋鲻趔嘲嘲嘲堪嘲磋鳓躐嘲图3.5 B/S远程管理结构示意图3.4.6GPRS远程管理采用有线网络和无线网络相结合的方式协作管理的系统结构图如图3.6所示。 远程数据中心监控管理系统研究蚓3.6协作竹理的系统结构图 远程控制软件‘般分为两个部分:一部分足窖户端程序(C1 j ent),另‘部分足服务器 端程J予(Server),通常在使用前需要将客广端科序安装到监控端的IU腩h将服务器端程序安装到被拱弼j的电脑上。它的控制的过科一般是允在监控端lU腑卜执行客户端程序,像?个蒋通的客户一样向被控端【也腩?{1119 J]陵务器端程序发…信Ij,建立一个特殊的远程服务, 然后通过这个远程服务,使』}J符种远程控制功能发送远程控制命令,控制被控端I乜脑中的 符种应』{撺,坍i运行。3.5系统功能模块设计系统基于’I’CP/W协议,采川c/s利B/S模式,)j:增加GPRS无线通信模块。C/S模式 具有}艮好的易JL}j性,及很强的控制功能,被本系统采H],监控端程序运行在监控机上,被 监控端弄警序运行在被监控机_Jj。监控端向铍临控端发出请求和控制指令,被控端响应请求 斤作}11相应的反馈。通过Socket进行一点对多点的通信,实现监控端同时对多台受控机的 ’爻时远程临控和管理,同n、j管理人员可以通过浏览器查看和管理被控端。 台“II‘IL-J‘。]-_,j[”!f;,各个铍控机实时f,f勺。IIP,盯J:V。二-;数据通过网络连接;1:聚,然后采用数据库进行存储 平¨组织,数据库使用sQLSer、,01-建立,通过监控端群序,可进行存储羽1奄询。被监控端中 自勺文件嘛视部分是本系统的核心部分,它实际是通过获知操作系统外壳a勺活动消息,进而 获j=l』文什系统的所有2;;动,系统采J【{{了VB.net可i台,应J+j 函数利WM T接口技术米实现。整体界面截图如卜.:Fi lcSy.stemwatcher组件、AP] 南京信息T程大学硕士论文远程数据中心监控管理系统研究图3.7整体界面截图整个系统分为三部分:监控端程序、被控端程序和管理端程序。 监控端程序对内部网络中的各T作计算机的内部计算机访问、修改等操作进行监视和 记录。分为数据通讯模块、数据库写入和查询模块、文件管理模块和界面模块四个模块。 被控端程序负责对本地计算机进程进行监视、文件系统监视,响应监控端关于进程和 文件管理及远程桌面的相关工作。分为通讯模块、监视模块和响应模块。 管理端负责远程控制被控端的信息设置、人员管理等,并且拥有监控端除监控以外的功能。 系统整体模块划分图如下: 南京信息工程大学硕士论文远程数据中心监控管理系统研究图3.9系统整体模块划分图3.5.1c/s部分模块图图3.10 C/S部分模块划分图26 南京信息工程大学硕士论文远程数据中心监控管理系统研究3.5.2a/s部分模块图图3.11 B/S部分模块划分图3.5.3GPRS部分模块图图3.12 GPRS部分模块划分图3.5.4系统模块设计 3.5.4.1数据管理模块27 南京信息工程大学硕士论文远程数据中心监控管理系统研究图3.13数据管理模块图 人员信息:记录管理人员的用户名、密码、安全问题、级别。 设置数据管理:进程、文件、远程桌面和远程唤醒的参数添加、修改、删除、导入、导出。权限管理:设置各级别管理人员能够执行的操作。 记录管理:监控数据的写入、更新、查看、删除。3.5.4.2监控管理模块图3.14监控管理模块图 新建用户:为每台被控端新建一个用户名,并设置密码,为开启远程桌面功能服务。 被控端设置:设置监控端是否开启监视被控端进程、文件等功能,记录保存时间长度。 监控文件设置:设置文件监视的目录、类型和操作类型。 进程判别:根据智能管理知识库,判断是否出现非法进程及需要执行的进程是否已经 开启。 监控信息写入:根据监控的情况,将进程监控、文件监控信息写入数据库。3.5.4.3进程管理模块 南京信息工程大学硕士论文远程数据中心监控管理系统研究图3.15进程管理模块图 进程遍历:定时对已经开启进程监控的被控端进行进程的遍历,并将结果发送至服务 器。 进程关闭:关闭非法进程和管理人员指令指定关闭的进程。 进程重启:重新启动需要实时运行但处于非正常工作状态的进程。 合法性修改:根据管理人员指令对某进程的合法性进行修改,并更新进程信息库。3.5.4.4文件监视模块图3.16文件监视模块图 修改文件监视的相关属性。3.5.4.5智能管理库模块图3.17智能管理库结构图 数据导入:将备份过的智能管理库的进程信息导入至当前数据库。29 南京信息工程大学硕士论文远程数据中心监控管理系统研究数据导出:为了以后管理的方便,将设置好的智能数据库数据导出备用。 批量修改:批量修改被控端合法进程、非法进程、需要运行的进程数据。 批量删除:批量删除被控端合法进程、非法进程、需要运行的进程数据。 批量添加:批量添加被控端合法进程、非法进程、需要运行的进程数据。30 南京信息工程大学硕士论文远程数据中心监控管理系统研究第四章系统设计与实现4.1进程监控系统设计4.1.1任务管理与进程监控的原理 4.1.1.1进程的概念进程(Process)在操作系统中是一个十分重要的概念,是进行系统资源分配、调度和 管理的最小单位。进程是可并发执行的程序在一个数据集合上的运行过程,是指一个程序 在其自身的虚拟空间中的一次执行的活动。之所以要创建进程,就是为了使多个程序可以 并发的执行,从而提高系统的资源利用率和吞吐量。进程和程序的概念不同,下面是对这 两个概念的比较:1)程序只是一个静态指令的集合;而进程是一个程序的动态执行过程,它具有生命期,是动态产生和消亡的。2)进程是资源申请、高度和独立运行的单位,因此,它使用系统中的运行资源;而程序不能申请系统资源,不能被系统调度,也不能作为独立运行的单位,因此,它不占 用系统的运行资源。 程序和进程无一一对应的关系。一方面一个程序可以由多个进程所共用,即一个程序在运行过程中可以产生多个进程;另一方面,一个进程在生命期内可以顺序地执行若干的程序。可以说,进程是运行中的程序,是程序的一次运行活动。相对于程序,进程是一个 动态的概念,而程序是静态的概念。4.1.1.2进程管理进程管理涉及到进程控制、队列管理和进程调度等。进程的生命过程是从它创建时开 始,直至任务终止而撤消,其间会经历各种状态的转换,它们都是在操作系统控制下完成 的。操作系统提供了对进程的基本操作,也成为原语。这些原语包括创建原语、阻塞原语、 终止原语、优先级原语和调度原语。4.1.2进程监控的实现如果要进行进程监控,首先要获取被控端所运行的进程信息,然后再根据数据库里的31 南京信息工程大学硕士论文远程数据中心监控管理系统研究信息来判断进程的合法性进而采取进一步的操作。4.1.2.1进程遍历在操作系统成功加载入系统内存并掌握计算机软硬件的控制权后,计算机运行大量的 进程,每一个应用程序实例在运行起来后都会在当前系统下产生一个进程,大多数应用程 序均拥有可视界面,用户可以通过标题栏上的关闭按钮关闭程序,而通过远程管理时则一 般不会通过三个系统热键来察看和管理进程,因此要判断一个进程是否合法或者监控一个 进程以保证它一直处于正常工作状态的话,必需要能够每隔较短的时间就枚举出系统内运 行的进程并将获取到的相关进程项发送给监控服务器,再由监控服务器写入监控数据库并 根据进程的智能管理知识库来判断是否该关闭或启动某个进程并将操作信息写入数据库。 在进行进程遍历时需要用到的API函数主要有:CreateToolhelp32Snapshot、Process32First和Process32Next。要对当前系统所有已开启的进程进行枚举,就必须首先获得那些加载到内存的进程当 前相关状态信息。在Windows操作系统下,这些进程的当前状态信息不能直接从进程本身 获取,系统已为所有保存在系统内存中的进程、线程以及模块等的当前状态的信息制作了一个只读副本――系统快照,用户可以通过对系统快照的访问完成对进程当前状态的检测。在具体实现时,系统快照旬柄的获取是通过Win32 API函数CreateT001help32Snapshot() 来完成的,通过该函数不仅可以获取进程快照,而且对于堆、模块和线程的系统快照同样 可以获取。 CreateT001help32snapshot函数为指定的进程、进程使用的堆(HEAP)、模块(MODULE)、 线程(THREAD))建立一个快照(snapshot)。该函数有两个参数,其中,参数dwFlags:指定 将要创建包含哪一类系统信息的快照句柄,本程序中只需要检索系统进程信息,因此可将 其设置为TH32CS―sNAPPRoCESS;第二个参数th32ProcessID’则指定了进程的标识号,当设 置为0时指定当前进程。 Process32First()函数也有两个参数:HANDLE hSnapshot是传入的Snapshot句柄; 参数LPPROCESSENTRY32 lppe是指向PROCESSENTRY32结构的指针,其作用是从Snapshot 得到第一个进程记录信息。 Process32Next()函数和Process32First()函数相类似,只是LPPROCESSENTRY32 lppe 参数指向PROCESSENTRY32结构的指针,其作用是从Snapshot得到下一个进程记录信息。 在得到系统的快照句柄后,就可以对当前进程的标识号进行枚举了,通过这些枚举出 的进程标识号可以很方便地对进程进行管理。进程标识号通过函数Process32First 0和 Process32Next()而得到,这两个函数可以枚举出系统当前所有开启的进程,并且可以得到32 南京信息工程大学硕士论文远程数据中心监控管理系统研究相关的进程信息。 源码(相关变量和对象定义部分忽略): ‘遍历进程,取其启动参数Dim pros As Process()=Process.GetProcessesFor I As Integer=0 To pros.Length一1Dim hProcess As Integer=OpenProcess(&H 1 FOFFF,True,pros(i).Id)lstView.Items.Add(pros(i).ProcessName)lstView.Items(i).Subltems.Add(Hex(pros(i).Id).PadLett(8,&pros(i).Id.ToString.PadLeft(4, ”0”)&”O”)&”[””】I.) O)ReadProcessMemory(hProcess,Dim readaddr As Integerbaseaddr,tmpBuffer,4,=System.BitConverter.ToInt32(tmpBuffer,0) ReadProcessMemory(hProcess,readaddr,lpBuffer, 5 1 2,O)lstView.Items(i).Subltems.Add(System.Text.Encoding.GetEncoding(”GB23 1 2”1.GetString(1 pBuffer))Next4.1.2.2进程合法性判别在各被控端进行进程遍历后,将所有目前正在运行的进程的文件名和名称等相关信息 发送给监控端,监控端根据智能管理知识库里面之前已经建立起来的进程信息知识库进行 判断,区分哪些是合法进程(默认首次获取的进程均为合法进程),哪些是未知进程,哪些 是非法进程,这个进程识别相对比较简单,通过在进程数据库中查找该进程的信息,如果 数据库中的进程类型为非法进程则判定该进程非法,并调用关闭函数:如合法则忽略,如 果发现该进程在数据库中没有记录则定义为未知进程,调用进程报警函数通过GPRS给管理 人员发送提示信息。4.1.2.3进程终止与新建监控端一旦发现被控端运行的进程中含有知识库中定义的非法进程,将会向被控端发 送强行结束该进程的指令,被控端接收到指令后将根据进程名(比如word.exe)执行结束 操作,如果执行结束进程操作成功则向监控端发送成功结束消息,监控端将记录已经成功 结束该进程的消息写入信息库;如果被控端在连续三次执行进程结束命令后仍然无法正常 结束该非法进程,则向监控端发送结束失败消息,这时监控端将调用GPRS信息发送模块将 该非法进程文件名和名称发送到管理人员的手机或另一GPRS终端,请求人工干预。33 南京信息工程大学硕士论文远程数据中心监控管理系统研究结束进程可以利用Shell函数调用Windows自带的系统程序NTSD和已经获取的进程 ID来进行,也可以利用API函数TerminateProcess来关闭进程,对于Windowsxp及以后 版本的操作系统关闭进程则更为方便,操作系统自带有两个好用的工具taskl ist和 taskiii。tasklist能列出所有的进程,和相应的信息。taskill能查杀进程,语法很简单: taskill程序名。 ntsd从Windows2000系统开始就是系统自带的用户态调试工具。被调试器附着(attach) 的进程会随调试器一起退出,所以可以用来在命令行下终止进程。使用ntsd自动就获得了 debug权限,从而能杀掉大部分的进程。ntsd会新开一个调试窗口,本来在纯命令行下无 法控制,但如果只是简单的命令,比如退出(q),用一c参数从命令行传递就行了。Ntsd按 照惯例也向软件开发人员提供。只有系统开发人员使用此命令。有关详细信息,请参阅NTSD 中所附的帮助文件。用法:ntsd―Cq―PPID,PID则是需要终止的进程的ID。本系统中主要采用TerminateProcess来结束进程,以word.exe为例关键代码如下:l=CreateToolhelp32Snapshot(TH32CS―SNAPPROCESS,0)IflThen my.dwSize=1 060If(Process32First(1,my))Then’遍历第一个进程Doi=InStr(1,my.szExeFile,Chr(0)) mName=LCase(Left(my.szExeFile,i-1))If reName=”winword.exe”Then pid=my.th32ProcesslD pname2reNameMsgBox”找至-IJword” IfMsgBox(”你想删除”&mName&”进程?”,vbYesNo+vbQuestion)<>vbYes Then ExitSub EndIf Dim mProcID As LongmProclD=OpenProcess(1&,一1&,pid)TerminateProcess mProclD.O& flag=True ExitSub Else34 南京信息工程大学硕士论文远程数据中心监控管理系统研究flag=False End If LoopUntil(Process32Next(1,my)<1)’遍历所有进程知道返回值为FalseEnd If 1 1=CloseHandle(1) End IfIfflag2False ThenMsgBox”没有找Nword”EndIf由于在数据中心管理中,有些程序是需要二十四小时处于工作状态的,因此在进程遍 历获取被控端所有正在运行的进程以后,监控端会和各被控端需要运行的进程列表进行比较,如果发现有进程未运行或处于非正常工作状态,将会向被控端发送新建或重新启动该 进程的指令,被控端接收到指令后将根据进程的文件路径(比如C:\word.exe)执行新建 或关闭后重新新建进程操作,如果执行进程新建或重启操作成功,则向监控端发送成功新 建或重启消息,监控端将记录已经成功结束该进程的消息入信息库:如果被控端在连续三 次执行进程新建或重启命令后仍然无法正常新建或重启该进程,则向监控端发送失败消息, 这时监控端将调用GPRS信息发送模块将该需要新建的进程文件名和路径发送到管理人员 的手机或另一GPRS终端,请求管理人员人工干预。4.1.3进程智能管理 4.1.3.1进程信息库建设计算机中有多个进程在运行中,有的占用了太多的系统资源,造成机器运行缓慢。甚 至有些进程是间谍软件、病毒或木马,如此部门隐私和机器的控制权会被黑客所掌控。进 程管理知识库建立的目的是通过管理人员提供并及时更新大多数常见的进程知识,并根据 进程的性质将进程信息库分为合法进程库、非法进程库,并将被控端曾经运行但未进行安 全性审核的进程划入未知进程库,监控端根据获得的进程信息进而采取相应的处理措施。合法进程库包括操作系统正常运行中所需要的系统进程和业务工作需要的进程,这里面也包含需要二十四小时实时工作的进程,计算机执行相关功能而启用的应用程序;非法 进程库则是和常见的病毒库类似,包含了已知的各类病毒或木马进程的相关信息。智能管 理知识库对于合法进程采取允许正常运行的策略,而对于非法进程则采取强制性关闭策略,35 南京信息工程大学硕士论文远程数据中心监控管理系统研究对于进程信息库中没有判定合法性质的进程则采取先放行并通知管理人员的策略。 进程信息库包含的字段有:进程文件、进程名称、进程描述和进程介绍,后两个字段 为备注型字段。管理人员可以批量添加、更新和删除信息库中的进程信息,以使得进程信 息始终处于比较新的状态。4.2文件系统监视与文件传输4.2.1文件监视的设计与实现对文件系统的监视是整个数据中心监控功能中很重要的一部分,其功能是对监控端和 被控端主机上的文件系统上的操作进行监视,比如文件的创建、删除、重命名等,监/被控 端实时记录下对文件进行操作的人员的相关信息,并将执行的修改或删除操作和操作的时 间写入监视数据库。有些人采取常规的方式,即写一个桌面应用程序,其界面可能是隐藏 的,采用每隔一个时间片段读取文件信息,然后写到一个log文件中。然后设置系统启动 的事件自动加载程序。但是这样的程序会有致命的缺点:l、不是连续的获取信息,因为他 们采用了Timer时钟控件的tick事件;2、在NT系统中,可能要一定的权限才可以运行, 比如要管理员身份等。还有系统中会有进程显示,显然很容易被关闭。.NETFramework能很容易创建完成这些任务的定制应用程序,且能够通过加入Windows服务的方法克服上述的缺点,帮助完成这些任务的是FileSystemwatcher组件。这个组件 提供了几个应用程序可以捕获的事件。应用程序可以对文件系统事件作出响应。FileSystemWatcher组件可以监视指定的本地计算机、网络驱动器或远程计算机上的文件夹或文件中若干种更改,如可监视文件或文件夹的属性、最近修改日期或大小方面的 修改;还可监视文件或文件夹的重命名、删除或创建操作行为。使用FileSystemwatcher 的基本过程相对简单,但首先必须设置一些属性,如指定监控的位置、内容以及引发应用 程序要处理的事件的时间。然后给FileSystemwatcher提供定制事件处理程序的地址,当 发生重要事件时,FileSystemwatcher就调用这些属性。然后打开FileSystemwatcher,等 待事件。 在启用FileSystemWatcher对象之前必须设置的属性如下表所示。表4.1 属性PathFil eSystemwatcher对象属性说明 它设置要监控的文件位置或目录36 南京信息工程大学硕士论文远程数据中心监控管理系统研究NotifyFiiter这是NotifyFiiters枚举值的组合,NotifyFiIters枚举值 规定在被监控的文件内要监控哪些内容。这些表示要监控的文件 或文件夹的属性。如果规定的属性发生了变化,就引发事件。可 能的枚举值足:Attribules、CreationTime、DirectoryName、 FileName、LastAccess、LastWrile、Security和Size。注意可 以通过二元OR操作符合并这些枚举值Filter监控文件的过滤器,例如,木.txt若要监视所有文件中的更改,需要将Fi 1ter属性设置为空字符串(~)。若要监视特 定的文件,需要将Fi iter属性设置为该文件名。例如,若要监视文件MyDoc.txt中的更 改,则需将Filter属性设置为“MyDoc.txt”。也可以监视特定类型文件中的更改。例如, 若要监视文本文件中的更改,请将Filter属性设置为“术.txt”。在本监控系统中,在脏控端提供一个文件监视设置管理界面,供管理员根据不同的 监控主机和不同的监控目的来进行详细的设置。设置界面如下:文什监控设置界面图4.1文件监控设置界面图 对应的代码: FileSystemWatcherfswatcher=new FileSystemWatcher0fswatcher.Path=Textl.Text fswatcher.Filter=Text2.Text fswatcher.Created+2newFileSystemEventHandler(fswatcher Created)设置之后,就可以为4个事什Changed、Created、Del eted和Renamed编写事件处理 程序。这需要创建白己的方法,并将方法赋给对象的事什。将自己的事件处理程序赋给这37 南京信息工程大学硕士论文远程数据中心监控管理系统研究些方法,就可以在引发事件时调用方法。当修改与Path、NotifyFilter和Filter属性匹 配的文件或目录时,就引发每一个事件。在设置了属性和事件之后,当数据中心监控系统 启动以后将自动启动文件监控功能因此默认时当进入系统时立即将EnableRaisingEvents 属性设置为true,就可以开始监控工作,考虑到实际使用过程中的情况不同,可以由管理 员设置是否自动开启文件监控功能。以下是监控文件Changed事件代码,其他事件代码和 这个类似。Private SubfileSystemWatcherl_Changed0’得到更新的文件名,以及路径 stringname=e.Name’获得监控到的修改的文件名stringpath=e.FullPath嗾得监控到的修改的文件路径messageout=”文件”+stringname+”己更改!所在目录:”+stringpathCallmessageinlog(messageout)’调用文件监控事件函数写入日志模块End Stlb4.2.2远程文件管理为了能够让监控端操作被监控端磁盘上的资源就像操作本地磁盘上的资源一样方便, 设计了文件系统管理部分。通过文件系统管理能在被控端实现的功能主要包括监控端与被 监控端之间的文件上传与下传、被控端文件的删除、文件的执行等。监控端要对被监控端 文件进行操作,双方首先进行相应的执行命令的约定,即监控端发送指定的字符串,被控 端接收到后在指令库中查找到相应的命令行并解释执行。 要实现远程文件管理,首先被控端遍历当前磁盘上的文件列表,并将文件列表传输到 监控端。在VB.net下采用DirectoryInfo类进行文件和文件夹的遍历。实现代码如下: Sub Main()Dim path As String Dim m――files As String Dim dir As System.10.Directory Dim m fileNames AsString()。文件Dim m―dirNames As String()。目录 Dim m――dirs As String Dim m_cmdl(1 As String=System.Environment.GetCommandLineArgs0Try’path=dir.GetCurrentDirectory0 m―fileNames=dir.GetFiles(m_cmdl(1))m―dirNames=dir.GetDirectories(m_cmdl(1))’目录38 南京信息工程大学硕士论文远程数据中心监控管理系统研究Catchpath=dir.GetCurrentDirectory0 m―fileNames=dir.GetFiles(path) m―dirNames=dir.GetDirectories(path) ’Console.WriteLine(path)EndTry’获取文件For Each m――files In m――fileNamesConsole.WriteLine(m_files)Next m――filesFor Each m――dirs In m――dirNamesConsole.WriteLine(”<DIR>”&vbTab&m_dirs)Next m――dirs End Sub监控端发出文件执行命令后,被控端通过调用API函数ShellExecute函数执行需要执 行的文件,ShelIExecute函数原型及参数含义如下:Public Declare Funetion ShellExeeute Lib”shell32.dll”A1ias “Shel iExeeuteA”(ByVal By Val hwnd As’Long,’父窗口句柄lpOPeration As String, AsByVal IPFile操作类型 String,要进行操作的文件或路径 ‘当lpOperation为“explore”时指定要传递的参ByVa]IPParameters As String,数,通常设为NULLByVal IPDireetory As ByVal nshowCmd AsString,’指定默认目录,通常设为NULLLong’文件打开的方式,以通常方式还是最大化或最小化显示)AsLong文件删除功能可以使用”shell”执行命令,也可以直接使用VB函数Kill实现,语法 为:KILL文件路径\文件名4.3远程桌面监控设计4.3.1远程桌面监控原理远程桌面基于“终端服务”技术(注:在Windows的Server版本中,这一技术叫做终 端服务,提供这一服务的主机叫做终端服务器)。当你从基于Windows的客户机或其它能使 用远程桌面协议(RDP)的终端使用远程桌面时,有许多本地资源(客户机上的资源)可以 在远程主机中使用,这些资源包括: 本地文件系统:远程桌面可以使本地的驱动器映射在远程主机的资源管理器中,这使 得本地文件系统可用于终端会话中的远程电脑上,客户机文件系统可以通过远程主机进行 访问。 本地打印机:打印作业从远程主机路由到与本地计算机连接的打印机上。客户机登录39 南京信息工程大学硕士论文远程数据中心监控管理系统研究到远程主机时,就会检测本地打印机,并将合适的打印机驱动程序安装到远程主机上。 本地物理端口及设备:运行在远程主机的应用程序能够访问客户机上的串行和并行端 口,端口重定向可以使这些端口能够在远程主机上访问和操作设备,例如,远程主机的应 用程序可使用连接在本地端口上的条形码阅读器或扫描仪。 本地音响系统:可以运行远程主机上的多媒体播放程序,然后从本地计算机的音箱中 欣赏音乐。 本地剪贴板:准确地说,远程主机使用的仍然是自己的剪贴板,只不过在远程桌面中 主机剪贴板的内容能与客户机剪贴板保持同步,也就是客户机和远程主机能够共享剪贴板 内容,这样,就可从“远程桌面连接”窗口内的文档中复制或剪切文本和图形,然后将其 粘贴到本地计算机上的文档中。4.3.2远程桌面的实现由于Windows本身自带的远程桌面功能非常强大且易用,因此,本系统在实现远程桌

我要回帖

更多关于 技术参数是什么意思 的文章

 

随机推荐