(通信与信息系统专业论文)计算机监控系统研究与实现.pdf_第1页
(通信与信息系统专业论文)计算机监控系统研究与实现.pdf_第2页
(通信与信息系统专业论文)计算机监控系统研究与实现.pdf_第3页
(通信与信息系统专业论文)计算机监控系统研究与实现.pdf_第4页
(通信与信息系统专业论文)计算机监控系统研究与实现.pdf_第5页
已阅读5页,还剩55页未读 继续免费阅读

下载本文档

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

文档简介

分类号t n 9 1 5 0 9密级 重庆邮电大学硕士学位论文 论文题目计算机监控系统研究与实现 ( 题名和副题名) 英文题目t h er e s e a r c ha n di m p l e m e n to fc o m p u t e r m o n i t e r i n gs y s t e m 硕士研究生童鸱 指导教师廑丝煎握 学科专业通篮当篮息孟统 论文提交日期芝竺乙。5 ! !论文答辩目期士兰! ! ! 占 论文评阅八葛利嘉教授重庆通篮掌院 围国割丝握重庆坚垫盘兰 答辩委员会主席谢显中教授重庆邮电大学 2 0 0 7 年4月2 0日 重庆邮电大学硕士论文摘要 摘要 随着计算机网络技术的发展及企事业单位网络建设的不断完善,如何 加强企业对计算机的管理,更好地利用网络资源为单位服务成为企事业单 位日益突出的问题。而计算机监控系统就是为了高效地管理好企业内的所 有计算机而建立的一种管理系统。计算机监控系统是在远方机器允许的情 况下,对其进行监控的一类软件,通过掌控被控端计算机实时的运行信息, 随时了解被监控计算机的状况,为计算机管理提供一种可靠、实用、方便 高效的管理模式。建立高效的企业计算机监控系统是企业综合自动化建设 的关键,因此计算机监控系统具有重要的应用价值。 计算机监控系统是一个复杂的系统,涉及网络安全、数据库、网络通 信等多方面的知识。本文研究和实现的计算机监控系统采用客户服务器模 式,系统分为客户端监控软件和服务器端软件两大部分。客户端监控软件 分为三个模块,分别完成客户机初始化、进程隐藏、使用日志监控等功能。 服务器端软件分为四个功能模块,主要是收集客户端各类信并存入数据库 中,并显示数据库和客户端的各类信息以便管理员对企业内的计算机进行 监测和管理。 客户端监控软件初始化模块主要使用木马技术实现客户端的进程隐 藏、开机自启动、文件关联启动等功能,网络通信模块的实现以t c p i p 协 议为基础,通过w i n s o c k 建立t c p 连接来发送与接收信息,监控模块主要 用w i n d o w s 钩子技术来实现用户日志使用记录功能。服务器端软件采用 多线程技术来实现与客户端的连接和数据传输,服务器端软件界面将客户 端主机的信息以列表的形式呈现给用户。 系统综合运用了结构化分析与设计、网络通信、多线程设计等多种技 术,实现了基于t c p i p 协议的计算机监控系统。经测试表明,该系统运 行稳定可靠,实现了预期的设计目标。 关键词:计算机监控客户n 务器模式w i n s o c k 重庆邮电大学硕士论文摘要 a b s t r a c t w i t ht h ed e v e l o p m e n to fc o m p u t e rn e t w o r kt e c h n o l o g ya n dc o n t i n u a l l y p e r f e c t i o no fe n t e r p r i s e sn e t w o r kc o n s t r u c t i o n ,h o wt o e n h a n c ee n t e r p r i s e c o m p u t e rm a n a g e m e n ta n dm a k eb e t t e r u s eo fn e t w o r kr e s o u r c e sf o r e n t e r p r i s e sh a sb e c o m eai n c r e a s i n g l yp r o m i n e n t i s s u e t h e c o m p u t e r m o n i t o r i n gs y s t e mi so n ek i n do fm a n a g es y s t e mw h i c hi sf o rh i g h l ye f f e c t i v e m a n a g e m e n to fe n t e r p r i s e sc o m p u t e r c o m p u t e rm o n i t o r i n gs y s t e mi sak i n d o fs o f t w a r et h a ti sm o n i t o r i n gr e m o t ec o m p u t e r si ft h e y r ep e r m i t t h es y s t e m c a nh e l pa d m i n i s t r a t o r st ok n o wr e m o t ec o m p u t e r s s t a t u si na n yt i m e i t p r o v i d e s ar e l i a b l e p r a c t i c a l e f f e c t i v em a n a g e m e n tp a t t e r nf o r c o m p u t e r m a n a g i n gs y s t e m e s t a b l i s h e s t h e h i g h l y e f f e c t i v eb u s i n e s s c o m p u t e r s u p e r v i s o r ys y s t e m i s t h e k e y o fa u t o m a t e d e n t e r p r i s es y n t h e s i z e s c o n s t r u c t i o n t h i st o p i ca l s oh a sav e r yi m p o r t a n tu s a g e c o m p u t e rm o n i t o r i n gs y s t e mi sas o p h i s t i c a t e ds y s t e mw h i c hr e l a t e dt o t h ed o m a i no fn e t w o r ks e c u r i t y ,d a t a b a s e ,n e t w o r kc o m m u n i c a t i o n t h i st h e s i s r e s e a r c ha n di m p l e m e n tac sp a t t e r nb a s e ds y s t e m t h es y s t e md i v i d e dt o t w op a r t s :t h ec l i e n tm o n i t o r i n gs o f t w a r ea n dt h es e r v e rc o n t r o l l i n gs o f t w a r e c l i e n tm o n i t o r i n gs o f t w a r ei sd i v i d e di n t ot h r e ep a r t s t h ep a r t sf u n c t i o n sa r e : i n i t i a l i z et h es y s t e m ,h i d i n gt h ep r o c e s s ,s u p e r v i s i n gt h el o gf i l e ,e t c t h e s e r v e ri sc o m p o s e do ff i v e p a r t s t h ep a r t sf u n c t i o n sa r e :c o l l e c t i n gc l i e n t i n f o r m a t i o na n ds a v i n gi tt ot h ed a t a b a s e ,s h o wt h ei n f o r m a t i o nf r o mt h e d a t a b a s ea n dc l i e n t t h i sc a nb ec o n v e n i e n tt ot h ea d m i n i s t r a t o rt os u p e r v i s i n g a n dm a n a g i n go ft h ec o m p u t e r t h ei n i t i a l i z i n gm o d u l eo fc l i e n ts o f t w a r eu s i n gt r o j a nt e c h n o l o g yt o i m p l e m e n tt h ep r o c e s sh i d i n g ,a u t or u nw h e ns y s t e mb o o t ,a s s o c i a t e f i l e f u n c t i o n e t c t h en e t w o r kc o m m u n i c a t i o nm o d u l ei sb a s e do nt c p i p p r o t o c o la n du s i n gw i n s o c kt oe s t a b l i s ht c pc o n n e c t i o nt os e n da n dr e c e i v e i n f o r m a t i o n t h em o n i t o r i n gm o d u l ei sb a s e do nw i n d o w sh o o kt e c h n o l o g y s e r v e rs o f t w a r ei si m p l e m e n t e dt ow i t hm u l t i t h r e a d st e c h n i q u e d a t as h o w i n g m o d u l eo ft h es e r v e rs o f t w a r ei sd e s i g n e dt os h o wt h ei n f o r m a t i o no fc l i e n t c o m p u t e r st oa d m i n i s t r a t o r sw i t hl i s t h 重庆邮电大学硕士论文摘要 t h es y s t e ma d o p t sm a n yc o m p r e h e n s i v e l yt e c h n o l o g i e s ,s u c ha sn e t c o m m u n i c a t i o n ,s t r u c t u r e da n a l y s i s d e s i g n a n dm u l t i - t h r e a d s d e s i g n i t i m p l e m e n t sac o m p u t e rm o n i t o r i n gs y s t e mb a s e do nt c p i et h er e s u l to f a p p l i c a t i o ns h o w st h a tt h i ss y s t e mi ss t e a d yr e l i a b l ea n dr e a l i z ea n t i c i p a t i v e o b j e c t k e yw o r d s :c o m p u t e rm o n i t o rc l i e n t s e r v e rp a t t e r nw i n s o c k i l l 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及 取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论 文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得重庞 整电太堂或其他教育机构的学位或证书而使用过的材料。与我一同工作 的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢 意。 学位论文作者签名:苔鹇 签字日期:力箩7 年5 月6 日 学位论文版权使用授权书 本学位论文作者完全了解重废鲣皇太堂有关保留、使用学位论 文的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁盘, 允许论文被查阅和借阅。本人授权重庆邮电盔堂 可以将学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等 复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:书,鹏 导师签名: 一7 影钆 签字e t 期: 纠年岁月日签字1 :3 期:。7 年r 月i e t 重庆邮电大学硕士论文第一章绪论 1 1 选题背景 第一章绪论 网络技术的不断发展和进步对整个社会产生了深远的影响。网络已经 进入科研、教育、商业、生产、生活等各个领域和部门,在整个社会的发 展中起着极其重要的作用。毫无疑问,公司、学校以及各种职能部门提供 互联网互通互联的功能可以带来很多的益处,但是一些员工滥用电脑,上 班时间沉迷网络游戏,浏览与工作无关的网站、聊天、收发私人信件、上 网看电影、下载音乐等行为,这无疑对工作和学习效率产生负面的影响。 据国外数据统计l i l ,开通互联网办公的企业中,企业员工平均每天有超过 二分之一的上班时间用来上网聊天,浏览色情网站或处理个人事务,如浏 览国家明令禁止的网站、工作时间上网打游戏聊天、下载和实际工作无关 的电影、歌曲,甚至利用各行业的网络,对国内外的某些网站发起恶意攻 击等。这些行为不仅消耗了网络带宽的资源,使网络资源得不到充分的利 用,而且影响了正常的办公业务同时也使企业的安全问题受到威胁。如今, 许多企业、部门已建成了电子政务互连,在电子政务内联网上,同时存在 许多不同部门的网络系统,而这些部门对保密的要求是不相同的。由于电 子政务内联网上同时接入了其它部门的网络系统,因此容易出现其它部门 不怀好意的人员( 或外部非法人员利用其它部门的计算机) 通过电子政务内 联网进入保密专用网络系统,并进一步窃取和破坏其中的重要信息( 如领导 的网络帐号和口令、涉密文件等) 。同时,在保密专用网络系统内,由于存 在不同等级的用户、不同密级的信息,如不采取相应的安全措施很容易发 生内部窃密或破坏,并且对密级信息的分级浏览控制也存在一定的安全隐 患1 2 1 引。由于电子政务内联网涉及的部门太多、地域范围太广,同时在保 密综合网内也是地域广泛,网络终端多,因此这种风险是必须采取措施进 行防范的。电脑太多,i t 管理员分身乏术,每天在资产管理、系统维护上 花费大量的时蚓和精力。因此各企业部迫切需要一种严格监控和记录员工 计算机的使用情况,并对不良行为做出及时控制、保障信息安全、提高生 产力的计算机监控系统。目前,建立高效的企业计算机监控系统是企业综 合自动化建设的关键。 重庆邮电大学硕士论文第一章绪论 由于计算机监控系统具有重要的应用价值,本文力图通过对计算机网 络编程技术和木马编程技术深入研究后,设计并实现出一种满足中小企业 网管理员的需求,对网络内所有计算机实行有效监控的管理系统。 1 2 研究现状与发展方向 计算机监控潜在的巨大发展前景,推动了计算机监控系统的迅猛发展。 目前国内外已经有很多公司提供计算机监控系统软件。计算机监控行业领 先的公司也研发出了一系列监控产品如:南京网亚计算机有限公司推出的 w o r k w i n 管理专家一局域网络监控软件员工监控软件1 4j 是一款功能强大的 局域网客户机局域网络监控、监视、控制与管理系统软件。上海腾顺科技 开发有限公司研制的局域网监控软件【5 】具有远程控制功能,北京清扬创新 网络科技有限公司研发的内网管理系统1 6 j 可以根据管理策略实现对全网 u s b 存储实现综合集中的管理。在配置了“禁止使用”策略的计算机则不 可以使用u s b 存储设备。在安装了管理软件的机器上,u s b 存储设备一接 入即可以被阻断;与此同时,会显示有u s b 存储接入的日志记录等。计算 机监控系统的发展如火如荼,但功能强大的监控系统许多功能并非中小企 业所需要的,它们没有对中小企业的需求进行开发。 计算机监控软件使用的是木马技术,旨在对内监控,并不执行它的破 坏功能。该类系统软件正朝着如下的几个方向发展i7 l : 跨平台性:主要是针对w i n d o w s 系统而言,如何让监控程序能够在不 同的w i n d o w s 平台上运行是一个需要解决的难点。因为n t 和 w i n d o w s 2 0 0 0 都具有权限的概念,这和w i n d o w s9 5 9 8 是不同的。另外 一般的监控程序多少都使用了某些w i n d o w s 系统下的特定的a p i ,因 此如何设计出与w i n d o w s 平台版本无关的监控系统是所有开发商们面 临的一个难点。 模块化设计:模块化设计是一种新的潮流,现在的远程监控软件同样 采用了模块化设计的概念。 更新更强的进程隐藏技术:传统的修改i n i 文件和注册表的手法,已 经不能适应更加隐秘的需要,目i i 很多木马的隐藏方式已经开始转变, 像病毒一样感染w i n d o w s 下的文件,监控软件也需要解决隐蔽性的问 题,因此木马的传播方式仍然可以借鉴。 即时通知:现在的监控软件已经有了即时通知的功能,如i r c 、i c q 通知等。 重庆邮电大学硕士论文第一章绪论 1 3 论文目标和主要工作 计算机监控系统涉及到数据库、计算机通信、计算机安全等多个领域, 整个系统对稳定性和响应速度有非常高的要求。本文主要工作就是采用结 构化分析与设计方法完成计算机监控系统( m o n s y s ) 的整个软件系统的架 构设计与开发。 1 3 1 研究目标 研究u s b 存储设备权限控制技术。防止用户通过u s b 接口的存储 设备输出数据( 用户可以从u s b 设备复制资料到计算机) 。 研究进程隐藏技术,防止用户发现软件或非法关闭、卸载软件。 研究远程监控技术。使服务器端能远程监控客户端屏幕,并且远程 操作用户的电脑。 研究获取计算机硬件配置信息的方法。 1 3 2 完成的主要工作及创新点 采用安全可靠的s q ls e r v e r 2 0 0 0 作为后台数据库,记录各种数据, 确保了数据记录的完整性、稳定性和查询的方便快捷性。 服务器端可以完全监视客户端的屏幕,了解用户使用情况,并可以 对客户端进行操作。 不仅能禁用u s b 设备,还能禁止u s b 设备的写入功能。 研究针对每台被监控计算机配置进行记录,有效解决硬件丢失问 题。 1 4 论文结构 本文共分六章,各章的内容安排如下: 第一章介绍了计算机监控系统的研究背景,并交待研究的现状以及研 究目标,主要工作及创新点,最后说明论文的组织结构。 第二章介绍了计算机监控系统( m o n s y s ) 实现所涉及的相关知识和关 键技术。 重庆邮电大学硕士论文第一章绪论 第三章介绍了计算机监控系统( m o n s y s ) 的系统需求分析、总体架构 设计、系统特点及实现思路和系统的开发环境。 第四章详细讲述了计算机监控系统( m o n s y s ) 服务器端和客户端各模 块的设计和实现。 第五章介绍系统整体功能的测试步骤与测试结果分析。 第六章总结了本文所做工作,并探讨了进一步的研究方向。 重庆邮电大学硕士论文第二章系统实现所涉及的相关技术 第二章系统实现所涉及的相关技术 2 1w i n s o c k 技术 2 1 1w i n s o c k 简介 随着互联网的飞速发展,网络通信模块已经成为了操作系统中不可或 缺的核心组成模块。为了开发w i n d o w s 平台下高效的网络通信程序, m i c r o s o f t 公司以b e r k e l e ys o c k e t 规范1 8 】为规范定义了一套m i c r o s o f t w i n d o w s 下的网络编程接口,它不仅包含了人们很熟悉的b e r k e l e ys o c k e t 风格的库函数,也包含了一组针对w i n d o w s 的扩展库函数,以使程序员能 充分利用w i n d o w s 消息驱动机制进行编程【9 1 。 w i n d o w ss o c k e t 规范本意在于提供给应用程序开发者一套简单的 a p i ,并让各网络软件供应商共同遵守。此外,在一个特定版本w i n d o w s 的基础上,w i n d o w ss o c k e t 规范也定义了一个二进制接口( a b i ) ,并通过 此二进制接口来保证其兼容性。因此这份规范定义了应用程序开发者能够 使用,而且网络软件供应商也能够实现的一套函数调用和相关语义。 w i n d o w ss o c k e t 规范定义并记录了如何使用a p i 与i n t e r n e t 协议连接,尤 其要指出的是,所有的w i n d o w ss o c k e t 实现都支持流式套接字和数据报套 接字。 应用程序调用w i n d o w s 套接字的a p i 实现相互之间的通信1 1 0 1 。 w i n d o w s 套接字又利用下层的网络通信协议功能和操作系统调用实现实际 的通信工作,他们之间的关系如下图所示。 重庆邮电大学硕士论文第二章系统实现所涉及的相关技术 i 应用程序1 卜一- l 应用裎序2 3l l网络编程界面,例如w i n d 。w ss o c k e t s l1 l网络通讯协议服务界面,例如t c 驯d i1 l操作系统,例如w n d o w s i1 f物理通讯介质 图2 iw i n s o c k 来进行数据传递模型 w i n d o w ss o c k e t s 也支持多线程的w i n d o w s 进程。w i n d o w ss o c k e t s 规 范中的针对w i n d o w s 的扩展部分为应用程序开发者提供了开发具有的 w i n d o w s 应用软件的功能。它有利于使程序员写出更加稳定并且更加高效 的程序【1 1 1 。 2 1 1w i n s o c k 工作原理 要进行互联网进行通信,至少需要一对套接字;其中一个运行于客户 机端,称之为c l i e n t s o c k e t ,另一个运行于服务器端,称之为s e r v c r s o c k e t 。 根据连接启动的方式以及本地套接字要连接的目标,套接字之间的链接过 程可以分为三个步骤【1 0 】: 1 服务器监听,是服务器端套接字并不定位具体的客户端套接字,而 是处于等待连接的状态,实时监控网络状态。 2 客户端请求,是指由客户端的套接字提出连接,要连接的目标是 服务器端的套接字。为此,客户端的套接字必须首先描述它要连接的服务 器的套接字,指出服务器端套接字的地址和端口号,然后就向服务器端套 接字提出连接请求。 3 连接确认,是指当服务器端套接字监听到或者说接收到客户端套接 字的连接请求,它就响应客户端套接字的请求,建立一个新的线程,把服 务器端套接字的描述发给客户端,一旦客户端确认了此描述,连接就建立 好了。而服务器端套接字继续处于监听状态,继续接收其他客户端套接字 6 重庆邮电大学硕士论文第二章系统实现所涉及的相关技术 的连接请求。 由于套接字是面向客户机服务器模型设计的,其处理方式又面向连接 和无连接两种方式。这两种方式都要求服务器先于客户端启动。 无连接方式:使用数据报套接字 大多数的数据报应用程序使用的是一个比较固定的事件序列来完成客户 应用程序和服务器应用程序之间的通信,如图2 2 所示: 图2 2 数据报套接字的使用方法 面向连接方式;使用流式套接字 流式套接字使用的是基于连接的协议,所以它的使用方法与数据报套 接字有所不同,因为用户在传输、接收数据之前必须首先建立连接,然后 才能从数据流中读出数据,而不是从一个数据报或一个记录中读出数据。 首先,服务器要创建一个用于侦听的套接字,为该套接字分配地址之 后,调用l i s t e n ( 1 函数使它处于侦听状态;客户机在创建套接字完毕后, 为套接字分配地址,然后调用c o n n e c t ( ) 函数,请求与服务器套接字连接; 服务器套接字在收到客户机的连接请求后,调用a c c e p t ( ) 函数,该函数创 建一个用于连接的套接字。应用该套接字和客户机上的连接套接字,用户 就可以在服务器和客户机之间进行数据传输了。在结束传输之后,客户机 调用c l o s e s o c k e t ( ) 函数关闭套接字,服务器也调用该函数关闭用于侦听和 连接的套接字。 流式套接字的使用方法如图2 3 所示。 重庆邮电大学硕士论文第二章系统实现所涉及的相关技术 图2 3 流式套接字的使用方法 2 2 多线程编程技术 w i n d o w s 是一种多任务的操作系统【1 2 l 【”】,在w i n d o w s 的一个进程内包 含一个或多个线程【1 4 】。3 2 位w i n d o w s 环境下的w i n 3 2a p i 提供了多线程 应用程序开发所需要的接口函数,而利用vc 中提供的标准c 库也可以开 发多线程应用程序,相应的mfc 类库封装了多线程编程的类1 1 ”,用户在 开发时可根据应用程序的需要和特点选择相应的工具。 多线程编程在w i n 3 2 方式下和m f c 类库支持下的原理是一致的,进 程的主线程在任何需要的时候都可以创建新的线程。当线程执行完后,自 动终止线程:当进程结束后,所有的线程都终止。所有活动的线程共享进 程的资源,因此,在编程时需要考虑在多个线程访问同一资源时产生冲突 的问题。当一个线程正在访问某进程对象,而另一个线程要改变该对象, 就可能会,“生错误的结果,编程时要解决这个冲突i ”i 。 w i n 3 2a p i 是w i n d o w s 操作系统内核与应用程序之间的界面,它将内 8 重庆邮电大学硕士论文第二章系统实现所涉及的相关技术 核提供的功能进行函数包装,应用程序通过调用相关函数而获得相应的系 统功能。为了向应用程序提供多线程功能,w i n 3 2a p i 函数集中提供了一 些处理多线程程序的函数集。直接用w i n 3 2 a p i 进行程序设计具有很多优 点:基于w i n 3 2 的应用程序执行代码小,运行效率高,但是它要求程序员 编写的代码较多,且需要管理所有系统提供给程序的资源。用w i n 3 2a p i 直接编写程序要求程序员对w i n d o w s 系统内核有一定的了解,会占用程序 员很多时间对系统资源进行管理,因而程序员的工作效率降低。 m f c 是微软的v c 开发集成环境中提供给程序员的基础函数库,它用 类库的方式将w i n 3 2a p i 进行封装,以类的方式提供给开发者 1 7 1 。由于其 快速、简捷、功能强大等特点深受广大开发者喜爱。在v c + + 附带的m f c 类库中,提供了对多线程编程的支持,基本原理与基于w i n 3 2a p i 的设计 一致,但由于m f c 对同步对象做了封装,因此实现起来更加方便,避免 了对象旬柄管理上的烦琐工作。在m f c 中,线程分为两种:工作线程和 用户界面线程。工作线程与前面所述的线程一致,工作线程编程较为简单, 一个基本函数代表了一个线程,创建并启动线程后,线程进入运行状态; 如果线程用到共享资源,则需要进行资源同步处理。工作线程没有消息机 制,通常用来执行后台计算和维护任务。用户界面线程是一种能够接收用 户的输入、处理事件和消息的线程。它是基于m f c 的应用程序的一个应 用对象,由c w i n a p p 派生类,该对象代表了应用进程的主线程。当线程 执行完并退出线程时,由于进程中没有其他线程存在,进程自动结束。类 c w i n a p p 从c w i n t h r e a d 派生出来,c w i n t h r e a d 是用户接口线程的基本类。 在编写用户接口线程时,需要从c w i n t h r e a d 派生自己的线程类,使用 c l a s s w i z a r d 可以完成这个工作。 如果用户的应用程序需要多个任务同时进行相应的处理( 特别地对于 客户服务器模型) ,则使用多线程是较理想的选择。 2 3 数据库访问技术 2 3 1o d b c 的基本概念 o d b c ( o p e nd a t a b a s ec o n n e c t i v i t y ,开放数据库互连) 是微软公司开放 服务结构( w i n d o w so p e ns e r v i c e sa r c h i t e c t u r e ,w o s a ) 中有关数据库的一个 组成部分,它建立了一组规范,并提供了一组对数据库访问的标准a p i 1 8 】。 重庆邮电大学硕士论文第二章系统实现所涉及的相关技术 这些a p i 利用s q l 来完成大部分任务。o d b c 本身也提供了对s q l 语言 的支持,用户可以直接将s q l 语句送给o d b c 。使用o d b c 让应用程序 的编写者避免了与数据源相联的复杂性。这种技术目前已经得到了大多数 d b m s 厂商们的广泛支持。m i c r o s o f td e v e l o p e rs t u d i o 为大多数标准的数 据库格式提供了3 2 位o d b c 驱动器。这些标准数据格式包括s q l s e r v e r 、 a c c e s s 、p a r a d o x 、d b a s e 、f o x p r o 、e x c e l 、o r a c l e 以及m i c r o s o f tt e x t 。如 果用户希望使用其他数据格式,用户需要相应的o d b c 驱动器及d b m s 。 o d b c 管理器位于w i n d o w s 控制面板的3 2 位o d b c 内,其主要任务 是管理安装的o d b c 驱动程序和管理数据源。驱动管理器包含在 o d b c 3 2 d l l 中,对用户是透明的。其任务是管理o d b c 驱动程序,是 o d b c 中最重要的部件。o d b c 驱动程序是一些d l l ,提供了o d b c 和数 据库之间的接口。数据源包含了数据库位置和数据库类型等信息,实际上 是一种数据连接的抽象。 应用程序要访问一个数据库,首先必须用o d b c 管理器注册一个数据 源,管理器根据数据源提供的数据库位置、数据库类型及o d b c 驱动程序 等信息,建立起o d b c 与具体数据库的联系。这样,只要应用程序将数据 源名提供给o d b c ,o d b c 就能建立起与相应数据库的连接。 在0 d b c 中,o d b c a p i 不能直接访问数据库,必须通过驱动程序管 理器与数据库交换信息。驱动程序管理器负责将应用程序对o d b c a p i 的 调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果 通过驱动程序管理器返回给应用程序。在访问o d b c 数据源时需要0 d b c 驱动程序的支持。 2 3 2v i s u a lc + + 开发数据库的优势 v i s u a lc + + 提供了多种多样的数据库访问技术一o d b ca p i 、m f c o d b c 、d a o 、o l ed b 、a d o 等。这些技术各有各的特点,他们提供了 简单、灵活、访问速度快、可扩展性强的开放技术,而这些正是v i s u a lc + + 开发和其他开发工具相比的优势所在。归纳起来可以概括为以下几个方面 【1 9 】: 1 简单性 首先,v i s u a lc + + 提供的m f c 类具有强大的功能,一些丌:发向导 会简化应用程序的开发;另外m f co d b c 和a d o 数据库接口已经将 一些底层的操作都封装在类中,用户可以方便地使用这些接门,而无 1 0 重庆邮电大学硕士论文第二章系统实现所涉及的相关技术 需编写操作数据库底层代码。 2 可扩展性 v i s u a lc + + 提供的o l e 技术和a c t i v e x 技术可以让开发者利用 v i s u a lc + + 中提供的各种组件、控件以及第三方开发者提供的组件来 创建自己的程序,从而实现应用程序的组件化,而组件化的应用程序 则会具有更好的扩展性。 3 访问速度快 v i s u a lc + + 为了解决利用o d b c 开发的数据库应用程序访问数据 库速度慢的问题,提供了新的访问技术,即o l ed b 和它的高层接口 a d o ,它们是基于c o m 接口的技术,因此使用这种技术可以直接对 数据库的驱动进行访问,从而提高访问速度。 4 数据源友好 传统的o d b c 技术只能访问关系型数据库,而在v i s u a lc + + 中, 通过o l ed b 访问技术不仅可以访问关系型数据库,还可以访问非关 系型数据库。 2 3 3m f c 数据库访问技术 1 m f c 的o d b c 数据库访问技术【1 8 1 m f c 的o d b c 类对于较复杂的o d b ca p i 进行了封装,提供了简化 的调用接口,从而大大方便了数据库应用程序的开发。程序员不必要了解 0 d b ca p i 和s q l 的具体细节,利用o d b c 类即可完成对数据库的大部分 操作。 m f c 的o d b c 类主要包括【1 9 】: c d a t a b a s e 类对象提供了对数据源的连接,通过它可以对数据源进行操 作。 c r e c o r d v i e w 类对象能以控制的形势显示数据库记录。这个视图是直 接连接到一个c r e c o r d s e t 对象的表视图。 c r e c o r d s e t 类对象提供了从数据源中提取出的记录集。c r e c o r d s e t 对 象通常用于两种形式:动态集( d y n a s e t s ) 和快照集( s n a p s h o t s ) 。动态集 能与其他用户所做的更改保持同步。快照集是数据的一个静态视图。每一 种形式在记录被打开时都能提供一组记录,区别在于,当用户在一个动态 集里滚动到一条记录时,由其他用户或是应用程序中的其他记录集对该记 录所做的更改就会相应地显示出来。 重庆邮电大学硕士论文第二章系统实现所涉及的相关技术 c f i e l d e x c h a n g e 类,支持记录字段数据交换( d f x ) ,即记录集字段对 数据成员与相应的数据库的表的字段之间的数据交换。该类的功能与 c d a t a e x c h a n g e 类的对话框数据交换功能类似。 c d b e x c e p t i o n 类,代表o d b c 类产生的异常。 概括地讲,c d a t a b a s e 针对某个数据库,它负责连接数据源;c r e c o r d s e t 针对数据源中的记录集,它负责对记录的操作;c r e c o r d v i e w 负责界面, 而c f i e l d e x c h a n g e 负责c r e c o r d s e t 与数据源的数据交换。 2 m f c 的d a 0 数据库访问技术 d a o 在很大程度上是o d b c 类的超集【1 8 l 【19 1 ,它包含了o d b c 类的大 部分功能。与o d b c 一样,d a o 提供了一组a p i 提供编程使用,从而大 大简化了程序的开发。利用m f c 的d a o 类,用户可以编写独立于d b m s 的应用程序。 d a o 类与o d b c 类相比具有很多相似之处。首先,二者都支持对各 种o d b c 数据源的访问。虽然二者使用的数据引擎不同,但都可以满足用 户编写独立于d b m s 的应用程序的要求;其次,d a o 提供了与o d b c 功 能相似的m f c 类,他们的大部分成员函数都是相同的。 d a o 类使用了微软j e t 数据库引擎,与o d b c 类十分相似。实际上, 可以很轻松地把数据库应用程序从0 d b c 移植到d a 0 ,只需要将程序中 使用的类的名字对应到d a o 中。 在o d b c 和d a o 之间还有许多不同的地方。其中一个较大的不同是 系统实现函数的方法不同,o d b c 使用一组d l l 实现,而d a o 使用o l e 对象来实现。此外,这两种方式还有一下不同之处:( 1 ) 记录集的默认类型 不同。o d b c 记录集的默认类型是快照,而d a o 默认类型则是动态集。( 2 ) 参数化的方式不同。( 3 ) 处理异常的方式不同。d a o 记录集是使用d f x 数 据交换机制( d a or e c o r df i e l de x c h a n g e ) 而不是r f x ,在d a o 记录集的 d o f i e l d e x c h a n g e 中,使用的是d f x 函数而不是r f x 函数。( 4 ) d a o 可以 通过o d b c 驱动程序直接访问o d b c 数据源,而不必在o d b c 管理器中 注册d s n 。 一般地讲,d a o 类提供了比o d b c 类更广泛的支持。一方面,只要 有o d b c 驱动程序,使用m i c r o s o f tj e t 的d a o 就可以访问o d b c 数据源。 另一方面,由于d a o 是给予m i c r o s o f tj e t 引擎的,因而在访问a c c e s s 数 据库时具有很好的性能,但在访问其他类型的库时,效率不是很高。 重庆邮电大学硕士论文第二章系统实现所涉及的相关技术 2 4d l l 技术 2 4 1d l l 简介 动态链接库( d y n a m i cl i n k a b l el i b r a r y ,d l l ) 是w i n d o w s 操作系统 最重要的组成要素之一1 2 0 l 。其中k e r n e l 3 2 d l l 、u s e r 3 2 d l l 、g d l 3 2 d l l 和 s y s t e m d r y 等以d l l 、d r y 、f o n 、s y s 和许多以e x e 为扩展名的动态链接库 模块构成了w i n d o w s 操作系统的核心。这些动态链接库包含有服务函数、 全局数据和资源,在运行时能够被系统自动加载到进程的地址空间中,成 为调用进程的一部分。如果和其他d l l 没有冲突,此模块将被映射到进程 地址空间的同一地址上。d l l 模块包含有各种导出函数,用于向外界提供 服务。d l l 也可以拥有属于自己的数据段,但却无法又有属于自己的堆栈, 只能使用与调用它们的应用程序相同的堆栈模式。在w i n 3 2 环境中,每个 进程都复制了自己的读写全局变量。如果想要与其他进程共享内存,必须 使用内存映射文件或者声明一个共享数据段。d l l 模块需要的堆栈内存都 是从运行进程的堆栈中分配出来的。w i n d o w s 在加载d l l 模块时将进出函 数调用与d l l 文件的导出函数相匹配。w i n d o w s 操作系统对d l l 的操作 仅仅是把d l l 映射到需要它的进程空间的虚拟地址空间里去。d l l 函数 中的代码所创建的任何对象( 包括变量名) 都归调用它的进程或线程所有。 一个d l l 的在内存中只有一个实例,可以为当前操作系统的多个应用程序 所共享。d l l 很好的实现了对代码的封装,在创建可执行模块时并不需要 公开其源代码。d l l 的制作与具体的编程语言及编译器无关,因此可以充 分发挥多种编程语言的优势,使程序设计人员能够以最适合的语言完成对 某个模块的设计。在设计比较大的应用程序时,一般将其划分为多个模块, 这些模块分别完成相对独立的功能,它们彼此协作来完成整个软件系统的 工作。可能有一些模块的功能较为通用,在构造其他软件系统时仍会被使 用。在构造软件系统时,如果将所有模块的源代码都静态编译到整个应用 程序e x e 文件中,会产生一些问题。一个缺点是增加了应用程序的大小, 会占用更多的磁盘空间,程序运行时也会消耗较大的内存空间,造成系统 资源的浪费;另一个缺点是,在编写大的e x e 程序时,在每次修改重建时 都必须调整编译所有的源代码,增加了编译过程的复杂性,也不利于阶段 性的单元测试。另外,由于d l l 的外部接口比较清楚,通过对d l l 模块 的划分,可以将一个庞大的任务细分为小同的模块而下放到不同工作小组 重庆邮电大学硕士论文第一二章系统实现所涉及的相关技术 去分头开发这在很大程度上简化对项目的管理。 2 4 1d l l 的调用方式 d l l 的调用方式有静态调用和动态调用两种【2 1 1 。其中,静态调用方式 由编译系统完成对d l l 加载、卸载的编码( 如还有其他程序也在使用此 d l l ,则w i n d o w s 对d l l 的应用技术减1 ,直到所有相关程序都借宿对此 d l l 的使用时才释放它) 。静态调用方式简单实用,但不够灵活,只能满 足一般需求。动态调用方式则是由程序设计人员通过使用a p i 函数来完成 对d l l 的加载与卸载,使用虽然较复杂,但却更加有效地使用内存,在编 写大型应用程序时往往采用这种方式。 在使用静态调用方式时,需要将生产动态链接库时产生的l i b 文件添 加到应用程序工程中,对要使用的d l l 中函数,只需要声明一下即可。在 程序员以静态调用方式编译生成应用程序时,应用程序中的调用函数将与 l i b 文件中的导出符号相匹配,这些符号或标识号进入到新生成的可执行 文件中。l i b 文件中包含了对应的d l l 文件名( 不是绝对路径) ,链接程 序将其存储在可执行文件内。一旦应用程序需要加载d l l 文件,操作系统 将根据此信息发现并加载d l l ,并通过符号名或标识号实现对d l l 函数

温馨提示

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

评论

0/150

提交评论