软件开发系统数据管理和非功能性设计方案 2.docx

上传人:b****7 文档编号:9796832 上传时间:2023-02-06 格式:DOCX 页数:12 大小:23.30KB
下载 相关 举报
软件开发系统数据管理和非功能性设计方案 2.docx_第1页
第1页 / 共12页
软件开发系统数据管理和非功能性设计方案 2.docx_第2页
第2页 / 共12页
软件开发系统数据管理和非功能性设计方案 2.docx_第3页
第3页 / 共12页
软件开发系统数据管理和非功能性设计方案 2.docx_第4页
第4页 / 共12页
软件开发系统数据管理和非功能性设计方案 2.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

软件开发系统数据管理和非功能性设计方案 2.docx

《软件开发系统数据管理和非功能性设计方案 2.docx》由会员分享,可在线阅读,更多相关《软件开发系统数据管理和非功能性设计方案 2.docx(12页珍藏版)》请在冰豆网上搜索。

软件开发系统数据管理和非功能性设计方案 2.docx

软件开发系统数据管理和非功能性设计方案2

软件开发系统数据管理和非功能性设计方案

1.1总体技术实现方案

充分考虑到CFETS系统存在在本外币等多种数据源,且数据源分散,多分散子系统的情况,同时各个子系统中存在统计口径不一致,影响统一的决策和各个部门信息的一致性。

在使用的过程中,会员信息维护复杂,且各个系统各自维护一套对应的会员信息,导致会员维护工作量加大。

数据仓库一期需求大致可以分成数据库架构的建立、ETL机制的建立、以及报表分析架构的建立和报表实施。

系统可以分成数据仓库和报表系统两大部分。

系统包含一个双机组成的数据仓库,和一个双机组成的报表服务平台。

数据仓库和报表服务器分别带有自己的外存磁盘阵列。

架构中的每个功能节点设计都含冗余度,保证系统不存在单一失败点,满足提供7x24不间断服务的要求。

在系统架构不变的前提下,系统的每部分可以用不同的技术实现。

比如,数据库管理系统可以使用Oracle的技术,也可以使用IBM的技术。

报表技术建议使用Actuate9。

使用我们建议的应用软件,这样的系统架构会有很强的可扩展性,用户可以通过增加硬件的方式扩容,以支持越来越多的用户和应用。

总体方案通过以下步骤实现数据到可用信息的转换:

1.通过ETL手段对不同的数据源数据进行抽取,转换,清洗,数据格式化。

2.通过ETL转化后的数据统一进入数据仓库,形成统一的数据视图。

3.进入数据仓库的数据模型可以为报表平台提供对应的数据来源。

4.通过认证的用户可以登陆报表平台消费和设计对应的报表。

1.2高效的ETL处理

1.2.1ETL总体处理流程

ETL处理流程:

1.从本币数据源或其他数据源中抽取需要的数据。

2.ETL对抽取到的数据进行必要的增量处理,生成一天的增量数据。

3.ETL对增量数据进行技术性检核、标准化、转换。

4.产生LDM落地数据文件。

5.落地数据文件下发到下游系统,同时进行数据入库。

6.整个ETL处理过程进行异常处理及监控。

ETL实施我们建议采用成熟的ETL工具,所选ETL工具需要满足如下基本要求:

(1)技术架构

1)支持所有的主流平台

2)模块化的架构设计,可按需进行模块添加和扩展

3)具有错误恢复逻辑的功能

4)支持并行处理

(2)核心功能

1)支持本地数据访问模式

2)支持星型模式

3)支持打包应用(例如SAP)

4)支持基本处理(例如SQL)

5)具有数据自动转换和清洗功能

6)支持实时ETL和按需ETL

7)具有自动错误预警功能

(3)开发环境

1)图形化界面

2)支持命令行

3)便于调试和维护

4)具有代码版本控制功能

(4)ETL管理

1)支持集中管理

2)自动产生每日ETL运行报表

3)具有ETL自动和手工调度功能

我们相信商业ETL工具中INFORMATICA会是一个很好的选择,开源ETL产品Kettle则是INFORMATICA之外一个很好的备选。

1.2.2数据仓库模型设计

数据建模

建模过程:

(以常用会计报表为例)

1.用户需要查看基于时间、机构和科目的报表。

2.建立以数据事实表为中心,需要时间、机构和度量作为其维度。

3.建立好如上的星型模型后,可发现模型具有如下优点。

4.灵活的数据查询,可基于时间查询对应的日报,月报和季报。

5.效率最优化,需要查询机构信息,则通过机构和事实表关联即可完成。

1.3数据质量管理

1.3.1数据仓库对数据质量的要求

数据仓库对数据质量的要求总体上归纳为:

数据完整性,包括数据源是否完整、数据取值是否完整、维度取值是否完整等。

数据准确性,包括数据源是否准确、编码映射关系是否准确、处理逻辑是否准确等。

数据核对准确的判断是要么结果一致,要么不一致但原因是可解释的。

数据一致性,包括源系统之间同一数据是否一致,源数据与抽取的数据是否一致,数据仓库内部各处理环节数据是否一致等。

数据逻辑合理性,主要从业务逻辑的角度判断数据是否正确,如帐目类型的金额、时长、次数的逻辑关系是否满足等。

数据时效性,包括数据处理(获取、整理、加载等)的及时性,数据异常检测的及时性,数据处理回退的及时性等。

数据仓库服务于经营决策,经营决策依据的数据应该是全面的、真实可靠的、有意义的。

数据时效性如果得不到保证,就可能延误了市场人员的分析,失去商机。

从数据仓库的建设过程来看,它本身修复数据以提高数据质量的能力并不是很强,但是它能发现生产系统存在的一些数据质量问题从而提醒用户哪些数据有质量问题,将数据问题反馈到业务支撑系统中,由后者做数据修正。

1.3.2数据质量改进目标

数据质量改进的目标是清理、标准化、提高和匹配现有数据。

通过数据整合,建立完整的、准确的、一致的统一客户视图,完善共享信息数据,并使共享信息数据服务于经营分析,为生产系统的改进提供标准。

建立数据整合流程,实现流程定义、流程配置和流程管控。

建立数据整合的规章制度,落实数据质量的分级负责。

建立起数据整合队伍,使数据质量能够得以持续改进。

1.3.3数据质量改进方法

数据质量控制要从技术、流程和管理三个方面进行。

从技术层面上,生产系统存在的噪音数据、遗漏数据和不一致性数据,需要进行数据清洗;同时需要对源数据做稽核,如总量稽核和分量稽核。

在流程层面上,对于源数据的抽取要遵从一定的业务规则,数据的抽取和转换需要很多步骤来完成,这就需要将过程流程化,并且流程可通过配置来实现。

在管理层面上,要求生产系统报送数据,按照“谁提供数据,谁负责”的原则由生产系统保证源数据的完整性、准确性、一致性、时效性。

下面是我们在技术层面采取的具体做法。

在ETL架构设计中我们会包括数据质量设计,将数据质量检查脚本加入到ETL流程中,分为技术检查和业务规则检查。

错误分严重程度,如主键重复的就停止ETL流程,等待解决,但低级别的错误不会阻塞ETL过程。

在这个过程中,所有的错误都会进行记录,最终生成数据质量检查报告。

但需要明确的是,很多情况下,许多数据问题在ETL之前都无法知道,只能通过ETL之后的数据核对才能发现,然后逐渐积累,加到ETL的规则控制中去。

1.4报表平台设计

建立报表查询门户,提供各类信息报表的查询,统一查询渠道,统一数据口径,统一用户管理。

多个管理信息系统在报表平台上表现为一个个独立的逻辑子系统。

通过报表平台,技术人员可以通过灵活配置逻辑系统集成不同BI工具产生的异构报表资源,业务人员可以进行不同报表资源的集中管理和发布,最终用户可以通过一致的展示环境获取报表信息。

1.4.1灵活的报表查询

在报表的查询过程中,可以通过浏览器直接浏览报表,同时,用户也可以通过简单的操作,对报表进行重新订制,为了更好的提高实用性,用户可通过浏览器同报表服务器进行交互,查看到需要的报表。

1.4.2先进的报表开发模式

在报表的开发中,我们将采用最先进的协同开发模式,开发人员定制业务逻辑,业务人员根据自己需要通过简单的拖动则可形成自己需要的报表。

1.4.3高效的报表消费

在使用的过程中,业务人员根本不用关心对应的后台业务逻辑,以及数据信息来源等信息,其只要根据自己的业务需要,通过简单的拖拽即可完成对报表的定制,获取到自己需要的信息。

1.4.4老系统统计报表移植

对于老系统的统计报表,我们将采取重写的方式移植到统一的报表平台上面。

重写后的统计报表基于新建的数据仓库,这样就统一了现存的多个统计系统,统一了统计口径,解决了统计口径不一致所造成的各个部门信息的不一致,并消除这种不一致对管理决策带来的负面影响。

老系统报表迁移的一个难点是如何保证数据仓库系统中的报表统计结果与原报表统计结果的一致性,对此要具体问题具体分析。

新报表的统计结果与原报表的统计结果不一致只可能是两种情况:

新报表的统计方式是错误的,造成新老报表统计结果不一致;新老报表的统计口径不一致,造成统计结果不一致。

如果是前一种情况,采用正确的统计方式就能修正错误。

如果是后一种情况,则需要根据业务的需要选择统计口径,使新报表能够达到业务人员的预期。

我们将会采用严格的测试手段来保证新报表与老报表统计结果的一致性。

测试的目的,是验证对于相同的输入,新老报表得到的输出结果完全一致。

实际测试中,我们将采用等价类划分以及边值分析法来设计测试用例,产生有限的测试用例来覆盖足够多的“任何情况”。

对有差异的报表,我们会作进一步的数据集对比,以确定问题的根源到底是在数据,还是报表逻辑。

1.5认证管理

在对用户信息的管理中,提供以角色和用户为安全模型的统一认证机制,只有具有对应角色的用户才能访问对应的报表。

1.6系统可靠性及可扩展性

系统的可靠性及可扩展性对企业级应用来说是非常重要的。

我们的设计充分考虑了这两个因素。

针对可靠性,我们的设计是在系统包含一个双机组成的数据仓库,和一个双机组成的报表服务平台。

数据仓库和报表服务器分别带有自己的外存磁盘阵列。

架构中的每个功能节点设计都含冗余度,保证系统不存在单一失败点,满足提供7x24不间断服务的要求。

采用的这样系统架构,主机系统的维护、系统扩容、升级、系统性能统计、分析、优化以及部件更换就能够在不影响应用系统功能的前提下完成。

而所有关键部件能够保证在不停顿数据共享服务的前提下提供热插拔能力。

对于可扩展性,使用我们建议的报表服务平台安讯iServer,系统架构会有很强的可扩展性,用户可以通过增加硬件的方式扩容,以支持越来越多的用户和应用。

安讯iServer可以运行在由多台服务器组成的集群上,利用任务控制与自动负载平衡技术,将任务平均分配到各台服务器上。

安讯iServer具备出色的可扩展性,用户可以简单的向集群中添加更多的服务器来满足更高的报表需求,而系统的性能随着服务器数量的增多呈线性增长,这方面的具体数据请参考附录D“安讯9系统性能白皮书”。

在集群系统中,安讯iServer可以通过不同的故障转移模(Failover)式来保障iServer各项服务的可用性。

对系统可扩展性的考虑能充分保证用户不在初期购买超出业务量需求的处理能力。

随着用户业务量的增长,主机系统能随时动态扩展处理能力,且系统性能是线性增长的,任何业务量的增长需要都能够通过对主机的线性扩展得到满足。

1.7非功能性设计

1.7.1性能需求

1.7.1.1容量设计

根据1994-2007年的所有交易数据总容量为10Gbyte,大概每年的数据容量在800M左右,从容量和可扩展性和灾备等多方面综合考虑,建议每年的数据量分配在2.5G左右。

1.7.1.2响应设计

高的响应能给用户带来效率上的提升,加快了工作效率,减少了等待时间,同时加快了系统的处理效率,我们将通过以下几方面手段来保证用户得到高质量的响应:

1.优化模型设计,好的模型设计能够减少冗余数据量的加载和检索,以及表间关联检索,能大大提高系统数据的响应时间。

2.有效利用数据库的缓存功能,对于经常访问的数据,可将数据缓存于数据库中,减少IO,

3.利用集群功能,合理分配负载,充分利用各主机的CPU,内存等硬件资源。

4.优化报表设计,减少报表生成所需要的系统资源。

5.充分利用报表系统的缓存功能,把报表生成任务安排到非高峰时段。

6.充分利用报表系统的对查询的缓存功能,减少对数据源的实时访问。

1.7.2灾备设计

1.7.2.1灾备级别

∙高:

内部系统核心数据,包括所有连机和脱机数据,需要高级别的备份。

∙中:

系统需要的资料数据。

∙低:

与系统关系不大,偶尔系统需要使用到的数据。

由此可见,对于高,中级别的数据,需要进行对应的备份。

1.7.2.2备份策略

为了保障核心数据和重要数据的完整性和一致性,我们将提供对应的磁盘备份、联机备份和远程备份功能:

磁盘备份:

通过镜像(mirrored)磁盘矩阵,对每一个写到磁盘的字节,作实时的镜像备份,减少磁盘机出错的几率。

磁盘备份一旦设定,由设备实现,无需人工干预。

联机备份:

提供24*365天的备份机制,用户可以基于调度来运行备份,可以基于系统运行的热备份。

我们设计方案中使用的Oracle10g或IBMDB2数据库,都支持热备份;Actuate9的报表服务器iServer,也支持联机热备份。

数据仓库的数据和报表服务器的报表,可以每天进行一次热备份。

远程备份:

提供对付灾害性的系统失败的有效方式。

远程备份把数据存放到地理上的远方,以应对主机可能遇到当地灾害性的损毁。

我们建议把每天的热备份数据,拷贝到远端备份存储服务器。

以上的备份策略,保证在不影响系统服务的条件下,在本地和远程,都保留一份前一天的备份数据,包括数据仓库和报表服务器的数据。

当地备份建议保留30天;远程备份建议保留7天。

备份可以保存在磁带库、或光盘库。

本地备份耗时目标是2小时;远程备份耗时目标是12小时。

1.7.2.3恢复策略

常规的数据恢复流程设计如下:

1)重启系统的所有服务器和存储设备

2)如必要,恢复系统

3)从本地备份选取前一天的备份,或最近的备份;如果本地备份丢失,取远程备份

4)恢复数据仓库和报表系统数据

5)恢复系统服务

常规数据恢复一般是在文件系统失败(包括磁盘设备失败)导致数据无法使用的情形下必须激活的程序。

常规数据恢复保证系统回复到前一天的状态,但也意味着当天数据的丢失。

一般系统出错的恢复,其实不一定需要用到备份,我们建议应该避免使用常规数据恢复,尽量考虑用其他办法把系统回复到最近的可用状态。

以下我们以Oracle数据库为例,说明一下可以考虑的恢复措施。

数据库的恢复过程分两步进行,首先将把存放在重做日志文件中的所有重做运用到数据文件,之后对重做中所有未提交的事务进行回滚。

数据库的恢复只能在发生故障之前的数据文件上运用重做,将其恢复到故障时刻,而不能将数据文件反向回滚到之前的某一个时刻。

数据库的异常、错误可以分为以下几类:

∙SQL语句失败

∙线程失败

∙实例失败

∙用户操作失败

∙存储设备失败

如果发生前三种失败,不需要人为干涉,系统会自动进行恢复。

对于用户操作型的失败(如误删除数据),系统采取的补救措施主要有导入最新的逻辑备份或进行到某一时间点的不完全恢复。

数据库引入了基于表空间的时间点恢复(TSPITR),可以单独将包含错误操作的表空间恢复到指定时间,而不必对整个数据库进行不完全恢复。

当错误操作发现比较及时而且数据量不大的情况下也可以考虑使用logminer生成反向SQL。

针对存储设备的失败的情况比较复杂,存储设备的失败必然会使放置在其上的文件变为不可用,我们先将数据库所涉及到的文件进行一个划分,主要可分为:

∙数据库的系统文件,指数据库的运行文件,各种应用程序

∙数据库控制文件

∙数据库联机重做日志文件

∙数据文件

∙归档日志文件

避免第一种文件失败主要依赖系统管理员进行操作系统级的备份,当发生事故后只能依靠操作系统备份将其恢复。

1.7.3可获性设计

按照我们在2.2.1中建议的系统架构,系统包含一个双机组成的数据仓库,和一个双机组成的报表服务平台。

数据仓库和报表服务器分别带有自己的外存磁盘阵列。

架构中的每个功能节点设计都含冗余度,保证系统不存在单一失败点。

此外,高可获性来自于我们建议的软件系统,无论是Oracle,IBMDB2,或Actuate9,都支持失败转移等高级集群功能,满足提供7x24不间断服务的要求,能够保证满足任何时候系统的可获性需求。

1.7.4易用性设计

在软件的易用性方面,我们将充分考虑用户的体验性,简单性,高效率性为客户定制一套更适合客户需要的的系统,根据需要,我们将基于以下方面进行设计:

∙使用大众化WEB浏览器如IE、Firefox作为客户端的浏览工具。

∙用户界面友好、同时易操作。

∙界面操作符合浏览习惯。

∙界面风格,术语统一。

∙灵活的页面布局,支持标签页。

∙合理的组织操作菜单

∙查询等出现错误时提供友好的提示。

∙提供友好的联机帮助界面。

1.7.5安全性设计

1.7.5.1身份认证

系统提供身份认证功能。

使用系统的用户必须先要经过申请审批管理流程,通过有关部门管理人员的合法性审批,系统管理员在系统管理模块中设置用户名、操作权限和初始密码,并告知用户后,用户才可以用指定的用户名和密码登录进入系统,进行权限范围内的操作。

在系统登录界面中,只有输入正确的用户名和密码,才能进入系统,进入系统后用户可随时修改自己的密码。

对用户密码可提供更严格的控制功能,如首次登录系统必须修改密码、经过多长时间必须修改密码、多次登录失败锁定用户等,进一步提供系统的身份认证安全性。

1.7.5.2用户权限控制

系统提供权限管理功能模块,系统管理员可增加、删除、修改用户、用户组,设置用户的、操作权限、数据权限。

通过用户、用户组及权限管理功能,可根据机构、部门、用户类别等建立用户组,用户可以属于某个组或几个组,也可以是独立用户。

通过对用户组进行授权,组中的每个用户都拥有组的所有权限,极大方便了授权管理;独立的用户可以独立授权。

用户组、用户的权限可以针对机构、业务数据的范围、功能范围等进行授权,实现系统应用的数据安全。

1.7.5.3关键数据加密存储

对于存储到系统中的一些关键敏感数据,程序对这些数据进行加密存储,使得在其它任何软件环境中都无法获取明码。

1.7.5.4系统操作处理日志

系统对用户登录情况,如登录用户、进入时间、退出时间、操作功能项等进行自动记录;对于数据录入、数据同步、数据抽取和数据分析等应用处理的时间、数据范围、执行情况等也自动记录日志,以便出问题时跟踪追查审计。

系统日志还可用于系统操作的防抵赖。

1.7.5.5安全管理机构和制度建设

明确系统的安全管理机构/部门、人员及职责,负责管理系统安全保密工作。

制定系统安全保密管理制度,并严格加以执行及监督,实现资源的合理配置和统一管理,实现统一的访问控制策略,确保系统的安全运行、安全审查。

在外部安全上,企业级的防火墙可以为本系统提供一个安全的运行环境。

在系统内部,本系统用户众多,机构、角色、权限各不相同,因此必须具有较高的安全性,防止用户越权访问以及窃取数据。

用户的每个动作都要经过身份验证,在身份与权限匹配的情况下才能继续执行其他操作,就可以有效实现安全性目标。

操作授权:

对不同使用部门使用产品的授权和其中不同级别的用户使用产品功能的授权由系统管理员分级授权,授权信息放在数据库中,操作员的每一个操作均需系统授权。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 教育学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1