第2章 需求分析 2.1 高可用性 随着计算机应用的不断深入,企业对计算机系统的依赖程度也日渐增加。尤其在一些关键行业的关键应用上,应用的后台核心系统是否具有高可用性能力,已经成为影响一个公司业务成败的关键因素。高可用性包括保护业务关键数据的完整性和维持应用程序的连续运行等方面。在这些信息处理系统中保存了大量的关键业务数据,一旦信息发生丢失或破坏,将带来灾难性的影响和损失。在传统观念中,往往选择价格昂贵的专有计算机系统来提高业务系统运行的稳定性,系统实施及维护成本极高。而价格较低的单一的PC服务器系统目前还无法满足用户对于安全性及可用性的要求。在资源有限的情况下,如何保证业务系统的高可用性和数据的安全,已成为众多用户关注的焦点问题。 2.2 集中备份 在信息系统位于多个不同地理位置的环境下,如何有效地保护数据成为一个严重的挑战。核心系统一般都具有数据保护方案,而远程地点却常常被忽视,这样使部分的关键数据无法受到保护。对远程系统中的数据进行集中备份,是一种大幅度节省管理成本的解决方案。这种方案的特点是:图2.2通过 LAN/WAN网络将多个远程站点的数据复制到中央系统上,进行集中统一地数据管理。在发生系统故障或灾难后,它几乎可立即进行恢复。为此,提供了基于网络数据复制技术的集中备份解决方案 图2.1 2.3 灾难恢复 数据作为企业宝贵的资源,其重要性已经得到人们的充分认识。如果企业因为交易数据被误操作而损失,因为地震、火灾、海啸等原因而丢失数据,客户资料因为黑客的入侵而造成更改等等,这样的事故所带来的后果是什么?至少,这会使企业的业务造成混乱,甚至造成无法估量的财产损失。所以,如何保护企业的数据,如何使企业免遭数据灾难,已经成为企业所必须考虑的重要问题。 通常,企业采用定时备份技术。但这种备份技术的容灾能力非常有限,因为传统的备份主要是采用内置或外置的磁带机进行冷备份,备份磁带同时也在机房中统一管理,一旦整个机房出现了灾难,如火灾、盗窃和地震等灾难时,这些备份磁带也随之销毁,所存储的磁带备份也起不到任何容灾功能。 2.4 持续数据保护 当企业是以分钟(或更小的时间单位)来计算数据丢失带来的损失时,或者要尽力缩短灾难发生到恢复正常运转所需的时间时,企业就面临如何持续保护数据的挑战。传统的数据保护方式只能创建、管理和恢复单个时间点的数据备份,例如每隔24小时做一次备份或者每隔几小时做一次快照,或用镜像方式备份,依照日志来同步数据,最后将恢复的数据分段传送到动态的系统环境中,操作过程繁琐而又耗时,同时会出现丢失数据的可能。 持续数据保护(CDP, Continuous Data Protection)技术能够捕捉到一切文件级或数据块级别的数据写改动,并提供记录所有历史数据状态的动态恢复日志,使得恢复到任意时刻的数据成为可能。从理论上来讲,IT经理们将可以彻底摒弃传统的预先设定时间点的备份解决方案,大大节省了人力物力财力和时间,提高了系统管理的效能。 例如RoseHA的工作原理 RoseHA双机系统的两台服务器(主机)都与磁盘阵列(共享存储)系统直接连接,用户的操作系统、应用软件和RoseHA高可用软件分别安装在两台主机上,数据库等共享数据存放在存储系统上,两台主机之间通过私用心跳网络连接。配置好的系统主机开始工作后,RoseHA软件开始监控系统,通过私用网络传递的心跳信息,每台主机上的RoseHA软件都可监控另一台主机的状态。当工作主机发生故障时,心跳信息就会产生变化,这种变化可以通过私用网络被RoseHA软件捕捉。当捕捉到这种变化后RoseHA就会控制系统进行主机切换,即备份机启动和工作主机一样的应用程序接管工作主机的工作(包括提供TCP/IP网络服务、存储系统的存取等服务)并进行报警,提示管理人员对故障主机进行维修。当维修完毕后,可以根据RoseHA的设定自动或手动再切换回来,也可以不切换,此时维修好的主机就作为备份机,双机系统继续工作。 RoseHA实现容错功能的关键在于,对客户端来说主机是透明的,当系统发生错误而进行切换时,即主机的切换在客户端看来没有变化,所有基于主机的应用都仍然正常运行。RoseHA采用了虚拟IP地址映射技术来实现此功能。客户端通过虚拟地址和工作主机通讯,无论系统是否发生切换,虚拟地址始终指向工作主机。在进行网络服务时, RoseHA提供一个逻辑的虚拟地址,任何一个客户端需要请求服务时只需要使用这个虚拟地址。正常运行时,虚拟地址及网络服务由主服务器提供。当主服务器出现故障时,RoseHA会将虚拟地址转移到另外一台服务器的网卡上,继续提供网络服务。切换完成后,在客户端看来系统并没有出现故障,网络服务仍然可以使用。除IP地址外,HA还可以提供虚拟的计算机别名供客户端访问。对于数据库 服务,当有主服务器出现故障时,另外一台服务器就会自动接管,同时启动数据库和应用程序,使用户数据库可以正常操作。 2.5 支持xml做配置 客户端发送通过通讯协议发送给服务器的创建数据集的信息,服务器经过错误检查验证通过后,将把创建数据集的具体信息放入xml中一个节点一个数据集,放入软件的配置路径下。支持导入导出xml和备份机制等,支持读写备份,在保存完成配置文件后拷贝一个配置文件作为备份,这样防止不正常关机,丢失配置文件。读取的时候先读配置文件。 2.6 服务器记录日志和软件辅助工具的开发 服务器每操作一个动作(如:统计文件)就要记录日志,日志分为系统日志和程序日志。系统日志:就是程序可能会出现异常终端或者中毒等,如果写下系统日志,可以查看系统日志,了解程序的错误程序日志:主要记录用户的操作顺 序,而出现了错误的时候,通过程序自己的日志可以看到用户做的操作从而知道程序的bug 2.7 应用数据集支持SQL Server数据库文件的管理 应用数据集比起文件数据集,增加一些应用信息如:SQL Server的登录信息和数据集规则中的数据集文件路径等。创建数据集时支持通配符,如果用户想管理”c:\my data\”所有的.txt,那么就创建一个路径为:path=c:\my data\ 属性1:isinclude=true表示包含此文件。属性2:isrecurse=true 表示递归子目录,这样就管理所有c:\my data\*.txt 2.8 通讯协议字节对齐 中间的网络通讯是java作为客户端,c++作为服务器,通讯协议要保证字节对齐。 2.9 平台运行方式和帐户 本软件的服务器是基于系统的服务的,他能在无人值守的环境下很长时间的运行在系统的服务平台上。系统用户帐户作为软件用户,不同的用户可以得到不同的权限,比如有些用户就是“游客”的方式(guest),不可以操作有些文件的数据。
第1章 主要功能 程序分为Service和GUI两个组件,他们之间使用TCP通信,GUI和Service可以运行在不同的主机上。 1.1 在GUI中添加Service 要对Service进行管理,就要将Service添加到GUI中。添加可以是自动添加也可以是手工添加。自动添加网络中的Service,GUI启动的时候搜索网络中运行的Service,并将他们添加到GUI中。搜索使用UDP广播的方式,为了避免端口冲突,可以设置两个UDP广播端口。无法自动添加的Service,就需要手工添加,添加的时候需要指定服务器以及端口号。服务器的名称可以直接输入,也可以将局域网或者活动目录中的主机列举出来进行选择。 1.2 登陆服务器 在GUI对Service进行操作之前,应该先登录到服务器上。登录服务器采用操作系统的帐户管理,特别对于域中的管理会更方便。项目设立rosedataset用户组,登录用户名和密码验证通过之后,判断该用户如果在rosedataset组中就有管理的权限,否则不能登陆成功。 登录时要求输入用户名和密码。如果登录成功,那么保存用户名和密码,下次登录时就使用保存的用户名和密码。注意,用户名和密码的保存必须加密,另外保存的路径应该存放在当前用户的家目录中。 自动登录:GUI启动后,将上次管理过的服务器加入到管理界面,并自动搜索网络中的服务器也加入到管理界面。然后使用上次保存的用户名和密码来自动登录服务器;如果没有当前服务器的用户名和密码记录,就是用当前的Windows帐户登录服务器;如果登录失败,当前的服务器处于未登录状态,等待用户手工登陆。 1.3 创建数据集 创建数据要制定数据集的名称,应用类型,一个或多个数据集规则。如果应用类型不是文件系统,而是SQL Server或者Oracle等等应用,那么需要指定应用的信息。例如SQL Server,可以指定一个数据库的名称,我们能够自动搜索到数据库包含的文件,并自动生成数据集规则,这种规则叫做应用规则。另外应用数据集也可以手动增加额外的规则,这些规则叫做普通规则。如果应用类型是文件系统,那么所有的规则都是普通规则。 1.4 修改数据集 数据集的名称可以修改,数据集的普通规则也可以进行修改/添加/删除。但是数据集的应用类型不能修改,数据集的应用规则也不能修改。数据库的文件可能会发生变化,所以必须提供更新应用数据集规则的功能,可以对当前的数据集规则和实际的数据库包含的文件进行同步,以保持一致。 1.5 数据集的文件遍历和统计 一个数据集所表示的是磁盘的能够满足数据集规则的文件的集合,所以可以对这些满足条件的文件进行遍历和统计,统计结果包含:文件总数;目录总数;所有文件大小的字节总数。 1.6 其他功能点 Ø GUI和Service建立会话 GUI根据指定的Service的主机名,和Service建立TCP连接之后,进行验证协商,然后开始正式通信。一个Service能够同时处理多个GUI会话。一个GUI也能同时管理多个主机上的Service。 Ø GUI从Service获取数据集列表 GUI第一次登录到Service后,获取所有数据集信息,并显示出来。也提供数据集刷新操作能够从服务器重新获取数据集列表,并刷新显示。 创建文件系统数据集 GUI要求输入数据集的名称,并创建数据集的规则。GUI可以从Service查询Service的目录文件列表,然后选择目录或者文件作为规则的根路径,然后可以设置该路径的属性:是否递归到子目录,文件名称过滤字符串,是数据集的包含规则还是排除规则。GUI在创建数据集的时候,可以对规则进行添加/修改和删除操作,一个数据集至少需要一条include规则(不包含任何文件的数据集是没有意义的)。数据集的参数配置完成后,用户可以对配置进行确认。这个时候GUI将这些配置发送给Service,Service根据配置创建出数据集,并保存到配置文件。 Ø 创建SQL Server数据集 GUI要求输入数据库的实例名,以及登录数据库的用户名和密码。GUI用这些信息发送给Service,请求这个实例的数据库列表和每个数据库的文件信息,显示出来供用户选择;用户只能选择某个数据库,而不能选择数据库的一部分文件;另外也要查询Service的目录文件列表,支持扩展规则,参看上面创建文件系统数据集。用户同样填写数据集名称信息,并且可以添加/删除/修改扩展规则。数据集的参数配置完成后,用户可以对配置进行确认。这个时候GUI将这些配置发送给Service,Service根据配置创建出数据集,并保存到配置文件。 Ø 更新SQL Server数据集的数据库文件 在SQL Server数据集创建之后,SQL Server的数据库可以重新配置数据文件和日志文件,这样出现了数据集中的文件路径和实际的数据库路径不一致的情况。GUI要求输入登录数据库的用户名和密码然后向Service发送请求,Service根据数据集中记录的实例名和GUI发送来的用户密码连接到数据库,查询数据库的文件路径,如果出现不一致的情况,就更新当前数据集;并向GUI报告结果。 第1章 引言 1 1.1 Rose Datasystems公司背景介绍 1 1.2 主要概念 2 1.2.1 普通数据集 2 1.2.2 应用数据集 3 第2章 需求分析 4 2.1 高可用性 4 2.2 集中备份 4 2.3 灾难恢复 5 2.4 持续数据保护 5 2.5 支持xml做配置 6 2.6 服务器记录日志和软件辅助工具的开发 7 2.7 应用数据集支持SQL Server数据库文件的管理 8 2.8 通讯协议字节对齐 8 2.9 平台运行方式和帐户 8 第3章 主要功能 9 3.1 在GUI中添加Service 9 3.2 登陆服务器 9 3.3 创建数据集 9 3.4 修改数据集 10 3.5 数据集的文件遍历和统计 10 3.6 其他功能点 10 3.7 软件功能及其流程图 11 第4章 Service模块设计 13 4.1 Windows服务管理器类(CDsServiceApp) 13 4.2 配置文件类(CDsConfigFile) 13 4.3 客户端队列类(CDsClientList) 13 4.4 客户端类(CDsClientSession) 14 4.5 客户端通信数据结构类(CDsClientStruct) 14 4.6 执行客户端命令(CDsClientCmd) 14 4.7 数据集队列(CDsDatasetList) 14 4.8 数据集类(CDsDataset) 15 4.9 数据集客户端接口类(CDsClientDataset) 15 第5章 GUI模块设计 16 5.1 软件安装 16 5.2 主界面 19 5.3 与服务器通信 23 第6章 通信协议 25 6.1 UDP查找Service 25 6.2 建立会话 26 6.3 出错通知 27 6.4 用户登录 27 6.5 结束会话 28 6.6 枚举目录结构 28 6.7 查询数据集列表 28 6.8 查询数据集规则 29 6.9 创建数据集 29 6.10 修改数据集名称 30 6.11 修改数据集规则 30 6.12 统计数据集文件 31 6.13 查询统计结果 31 6.14 删除数据集 32 6.15 文件系统应用 32 6.16 SQL Server应用 33 6.17 Service事件通知 36 结论与展望 37 致谢 38 附录 39 参考文献 44 外文资料原文 45 翻译文稿 46
参考文献 [1] 王丽珍等.数据仓库与数据挖掘原理及应用. 科学出版社 [2] 严蔚敏.数据结构C语言版. 清华大学出版社出版 [3] MSDN Library for Visual Studio 2005 [4] 磁盘阵列和双机备份. 人民交通出版社 [5] 远望图书部.系统备份、数据还原、故障急救.人民交通出版社 |