征信信息管理系统架构方案
征信信息管理系统
系统架构方案
目录
目录 . ................................................................................................................................ i
第1章 前言 . ................................................................................................................. 1
1.1. 项目背景 . ....................................................................................................... 1
1.2. 项目目标 . ....................................................................................................... 1
1.3. 性能压力 . ....................................................................................................... 1
1.4. 可扩展性 . ....................................................................................................... 2
1.5. 通用性 . ........................................................................................................... 2
1.6. 开放性 . ........................................................................................................... 2
1.7. 安全性 . ........................................................................................................... 2
1.8. 经济性原则 . ................................................................................................... 2
第2章 逻辑框架 . ......................................................................................................... 3
2.1. 逻辑框架图 . ................................................................................................... 3
2.2. 数据源分析 . ................................................................................................... 4
2.2.1. 预警数据库 . ........................................................................................ 5
2.2.2. 500强数据库 . ...................................................................................... 5
2.2.3. 重点企业数据库 . ................................................................................ 5
2.2.4. 上市公司数据库 . ................................................................................ 5
2.2.5. 人行信贷登记咨询系统 . .................................................................... 5
2.2.6. 个人信用联合征信系统 . .................................................................... 6
2.2.7. 人行个人征信系统(PCRS ) . .......................................................... 6
2.2.8. 工商局开创信息网 . ............................................................................ 6
2.2.9. 房地产交易中心 . ................................................................................ 7
2.2.10. 总行CIIS 系统 ................................................................................. 7
2.3. 功能框架 . ....................................................................................................... 8
第3章 体系结构 . ....................................................................................................... 10
3.1. 技术架构 . ..................................................................................................... 10
3.2. 系统层次 . ..................................................................................................... 11
3.3. 逻辑流程 . ..................................................................................................... 12
3.4. 核心模块与系统流程 . ................................................................................. 14
3.4.1. 模块说明 . .......................................................................................... 15
3.4.2. 系统流程 . .......................................................................................... 16
3.5. WEB数据处理框架 . .................................................................................... 17
第4章 关键需求分析 . ............................................................................................... 20
4.1. 法人关联查询 . ............................................................................................. 20
4.1.1. 多数据源综合展现 . .......................................................................... 20
4.1.2. 关联查询(多层查询) . .................................................................. 21
4.2. 批量查询 . ..................................................................................................... 22
4.2.1. 批量执行器 . ...................................................................................... 22
4.2.2. 个人批量查询 . .................................................................................. 22
4.3. 批量数据下载 . ............................................................................................. 23
4.3.1. 任务调度 . .......................................................................................... 23
4.3.2. 断点续传 . .......................................................................................... 23
4.3.3. 手工控制 . .......................................................................................... 24
4.4. 历史信息查询 . ............................................................................................. 24
4.5. 日志管理 . ..................................................................................................... 24
4.5.1. 日志记录 . .......................................................................................... 24
4.5.2. 日志分析 . .......................................................................................... 25
4.6. 权限管理 . ..................................................................................................... 25
第5章 基于XML 的WEB 信息抽取 . ..................................................................... 28
5.1. Web信息抽取技术概述 .............................................................................. 28
5.2. 相关标准 . ..................................................................................................... 28
5.2.1. XML . .................................................................................................. 28
5.2.2. XHTML ............................................................................................. 31
5.2.3. DOM .................................................................................................. 31
5.2.4. XPath . ................................................................................................. 32
5.2.5. XSLT .................................................................................................. 33
5.3. 设计思路 . ..................................................................................................... 33
5.4. 总体框架 . ..................................................................................................... 34
第6章 关键技术分析 . ............................................................................................... 37
6.1. 组件技术 . ..................................................................................................... 37
6.2. 日志记录 . ..................................................................................................... 37
6.3. TIDY ............................................................................................................. 38
6.4. XML2DB ...................................................................................................... 38
6.5. Anchor-HOP模式......................................................................................... 39
6.5.1. 信息定位的优化方法 . ...................................................................... 39
6.5.2. 基于树路径的定位 . .......................................................................... 39
6.5.3. 基于文本的定位方式 . ...................................................................... 40
6.5.4. Anchor-HOP模式.............................................................................. 41
第7章 部署 . ............................................................................................................... 43
7.1. 网络部署图 . ................................................................................................. 43
7.2. 分布式部署图 . ............................................................................................. 44
7.3. 系统环境 . ..................................................................................................... 44
7.3.1. 硬件环境 . .......................................................................................... 44
7.3.2. 软件环境 . .......................................................................................... 44
第1章 前言
1.1. 项目背景
随着经济的发展,创建一个诚实守信的社会氛围越来越受到政府、企业、个人的重视,人行、市政府、总行都陆续推出和完善相应的征信系统。这些新生系统游离在原来的客户集成查询系统外,各行部在为企业办理信贷业务的时需要多系统查询,增加了客户经理操作的复杂性,容易造成查询不及时而增加信贷资产的风险。因此进一步加强借款人信息的集中管理显得十分必要。同时工商局、房地产中心等外部信息查询还需要手工分别进行操作,未实现各类信息的自动、联动查询,无法进行有效的监控和管理;从这些系统中查询的信息还无法实现有效地储存,重复利用极低,制约了我们对客户的分析工作。
1.2. 项目目标
征信管理系统是以客户征信信息上报管理查询为主,兼顾其他外部信息管理查询的工作平台,对在此平台上工作的相关业务人员提供强大的查询、管理、数据校验、决策支持。该信息平台同时也是银行在适应以“客户为中心”的业务转型形势下的支持系统。提高查询工作的效率,改变目前各类征信系统和外部信息分散查询的方式,实现由客户经理直接通过平台集中查询,分行进行管理监控的信息查询体系。
1.3. 性能压力
保证系统的通过应用服务组件的分布式发布和主机系统的集群能力,提供系统的高服务性能和大压力运行承受能力。
对于性能压力的最大承受能力要进行均衡和压力分配运算,保证硬件资源到高可用性,包括CPU 运算能力、内存需求、系统的IO 压力,网络通信能力等。
建设后的系统分布和群集能力要能满足10000数量级的门户应用访问和500
用户并发级的应用访问。
1.4. 可扩展性
系统的可扩展能力,包括硬件设备物理整合能力、系统接口的通讯方式、数据通讯格式、流程的相互借鉴、多应用的整合和发布等等。
1.5. 通用性
系统的功能设计要能满足工作流应用系统的一般业务需求,并形成核心功能接口,满足工作流系统、集成系统、二次开发等通用性需求。
1.6. 开放性
在系统的独立性基础上,必须保证系统的开放性,使本系统与其他应用系统可以有机地结合。本系统与业务系统是相对独立的两个系统,本系统既可以独立运行,也能辅助业务系统而存在的,为了达到这个目标,我们通过提供灵活的接口,将工作流的相关处理功能结合到业务系统中,又不影响两套系统的独立性。
1.7. 安全性
系统的安全性主要考虑两个方面。一是系统操作、运行的安全性;二是系统数据的安全性。本系统兼顾开放与安全相结合,并遵循安全性第一的设计原则,在网络化环境下,数据的管理和应用、信息的传输和处理,各层次间均设置严格的安全措施。
1.8. 经济性原则
系统的建设是一项复杂的、长期不断发展的系统工程,因此在规划建设过程中,必须遵循长远规划、逐步建设的指导方针。同时,在技术实现上,应采用灵
活的、能不断适应业务发展的框架,确保投资的最大收益
第2章
逻辑框架
2.1.
逻辑框架图
主要服务数据的采集、整理、存储等功能,后者主要实现数据的展现、维护等功能。
1、行内用户(包括支行客户经理和分行各层管理人员)通过分行局域网以浏览器方式访问本系统,服务器接受响应后,通过内部网络分别到预警数据库、500强数据库、重点企业数据库和上市公司数据库查询;同时由本系统数据库服... 征信数据管理系统由“本地数据库服务器”、“WEB 应用服务器”组成。前者
务器连接外部服务器,按照事先约定接口(拨号或专线)查询并采集人行信贷登记系统信息、联合征信信息、总行CIIS 、人行个人征信信息、工商局开创信息网、房地产交易中心等信息。
2、本系统与行内信息数据库(包括上市公司数据库、预警数据库、500强数据库、重点企业数据库)连接,向数据库发送查询请求,各数据库返回标准格式的查询报告,由本系统汇总为统一格式,呈现用户,提供浏览、邮箱转发和打印功能;
3、本系统同外部信息(人行信贷登记咨询系统服务器、个人联合征信系统服务器等)相连,发送查询条件,并分别按照人行信贷登记咨询系统和个人联合征信系统的查询操作,完成客户信息查询,同时保存查询页面和查询数据;将查询获取的信息整理为标准格式的信息查询报告;
4、在获取外部信息服务器中信息后,在本系统的数据库中存储为人行贷款卡数据库、个人信用信息数据库等数据库,以供日后系统性的分析;同时定期从上述外部服务器中批量下载相关数据,存储并可以报表的格式展现。
2.2. 数据源分析
征信管理系统可以从本地数据库和外部网站获取数据。目前本地数据包括: 预警数据库;
500强数据库;
重点企业数据库;
上市公司数据库;
外部网站包括:
人行信贷登记咨询系统;
个人信用联合征信系统;
人行个人征信系统;
工商局开创信息网;
房地产交易中心
总行CIIS 系统;
2.2.1. 预警数据库
数据库系统为ORACLE 。分为个人客户预警信息和法人客户预警信息两类。
2.2.2. 500强数据库
数据库系统为ORACLE 。
2.2.3. 重点企业数据库
数据库系统为ORACLE 。
2.2.4. 上市公司数据库
数据库系统为ORACLE 。查询财务信息报告时候,可以直接使用数据库中的数据;而查询行业信息报告时,直接调用上市公司WEB 服务器上的HTML 文件。按上市行业分类标准:“d:\ncicc\doc\上市+年份(如上市1998)\cust”目录下存放所有企业的、按上市分类的、给定年份的财务比率分析的文件(以股票代码为文件名:如600000.htm )。
2.2.5. 人行信贷登记咨询系统 本系统是人民银行的服务器,不允许外部直接访问数据库,通过HTML 页面提供用户查询。
网站主页http://9.xx.xx.xx/。登录,并通过客户卡号密码校验之后进入主界面。按照预定义的路径,一次访问如下页面获取相应的信息:
1. 贷款卡状态查询;
2. 借款人负债查询;
3. 担保查询;
4. 借款人大事查询;
5. 借款人概况查询;
然后退出系统。
2.2.6. 个人信用联合征信系统
本系统是上海资信公司的服务器,不允许外部直接访问数据库,通过HTML 页面提供用户查询,同时提供批量查询功能,反馈每个查询客户的HTML 文件格式的报告。
网站主页:https://136.xx.xx.xx:8444/。使用HTTPS 协议。主页登录之后,提交查询条件到https:// 136.xx.xx.xx:8444/cgi-bin/orglgn_main.cgi,得到个人信用报告页面。
2.2.7. 人行个人征信系统(PCRS )
本系统是人民银行总行的服务器,通过工总行的代理进行访问,目前不能直接访问数据库,通过HTML 页面提供用户查询,目前不提供批量查询功能。
网站主页:http://9. xx.xx.xx:7001/creditunion/。需要通过代理服务器访问。系统需要自动记录用户在PCRS 网站登录的用户名和密码,以后自动匹配使用。
2.2.8. 工商局开创信息网
本系统是面向INTERNET 的服务器,通过分行的代理进行访问,目前不能直接访问数据库,通过HTML 页面提供用户查询,不提供批量查询功能。
网站主页:http://www.xx.com.cn。需要通过代理服务器访问。使用系统配置好的统一的用户名和口令访问,需要记录所用户在该网站的访问情况。
2.2.9. 房地产交易中心 本系统通过专线进行访问,目前不能直接访问数据库,通过HTML 页面提供用户查询,不提供批量查询功能。
网站主页:http://172. xx.xx.xx /Login.jsp。需要通过代理服务器访问。使用系统配置好的统一的用户名和口令访问,需要记录所有用户在该网站的访问情况。
2.2.10. 总行CIIS 系统
本系统是总行的服务器,通过内部网进行访问,目前不能直接访问数据库,通过HTML 页面提供用户查询,提供个人与法人的批量查询功能。网站主页:
。系统需要自动记录用户在CIIS 系统登录的用户名和密码,以后可以自动匹配。
2.3. 功能框架
征信管理系统为用户提供丰富的功能。我们把这些功能分成两大部分:
数据维护类:针对系统的参数提供增删改的基本功能,配合权限控制,
基本上可以直接针对数据库进行操作,这类功能包括:
⏹ 用户管理;
⏹ 参数表维护;
⏹ 法人校验表维护;
⏹ 任务管理等。
查询类:这类功能是最频繁使用,并且在性能上,要求变化上都有着和
数据维护类不同的要求,征信管理系统提供一整套完整的软件模型支持
这些功能的实现,该模型是基于组件的异步处理模型,可以提供简单的
查询报告,交互式的查询报告等,具体的功能包含:
⏹ 个人客户查询;
⏹ 法人客户查询:含交互式和非交互式两种;
⏹ 预警;
⏹ 批量查询;
⏹ 数据导出;
⏹ 日志报告;
⏹ 分析报告;
⏹ 法人历史查询等。
在模型内部,还支持调度、日志等基本功能。
第3章 体系结构
征信管理系统采用多层体系结构,符合J2EE 规范。
3.1. 技术架构
从技术架构上,征信管理系统采用如下的技术基础,按照其依赖关系:
1. 数据源(Data Source):对关系数据库采用标准的连接池,SQL Map等
标准的方式进行管理,对Internet 数据源则采用自行开发的模块,两者
统一规划管理;
2. J2EE :征信管理系统部署在符合J2EE 规范的应用服务器上,并且本身
符合J2EE 规范;
3. XML :征信管理系统广泛的采用XML 技术,包括系统配置,数据和展
现的配置,页面数据解析规则等,核心的处理部分更采用标准的XSLT
技术;
4. 组件框架(Component Framework):征信管理系统采用面向组件设计和
实现,系统应用一个标准的组件框架(容器)来组织系统所有的组件,
保证组件符合低耦合、高内聚的要求,可以针对组件本身进行升级改造
而把对系统其他部分的影响降到最低,这也是MVC 模式中M (Model )的最佳实现方式;
5. 页面流控制(Page Flow Control):按照MVC 的要求,对用户操作的页
面流进行集中控制。
3.2. 系统层次
征信管理系统是一个多层结构系统,突出软件模型的设计。
系统分为数据层,模型层,页面控制层,和浏览器层。每一层对向上提供本层的访问原语,屏蔽本层的实现细节。由于浏览器层,页面控制层和数据层,都有相应的标准甚至实现,因此,我们的重点放在建立一个符合征信业务要求的业务模型,该模型的特点如下:
1. 使用组件框架建立模型的基础框架,模型由组件组成;
2. 采用消息机制实现异步操作,同步操作实际上有异步操作模拟;
3. 采用队列、线程池控制系统的性能和并发量;
在模型层中的核心流程,则是反映系统内部最核心的操作的处理过程。这在下一节详细介绍。
3.3. 逻辑流程
逻辑流程从逻辑上描述征信管理系统的核心流程。征信管理系统的核心流程是根据用户的需要从特定的网站系统或者数据库检索数据,并进行综合处理,最后把结果展现给用户。这里主要描述从外部网站系统获取数据并展现的流程。
1. 检索数据:数据按照要求的数据源并发的进行处理,数据源可以根据系
统管理员进行设定,原则上,只要能保证一个独立事务的过程就可以作
为一个数据源,比如不同的网站或者数据库都可以作为一个独立的数据
源;
2. 获取页面:根据要求从外部网站获取页面;
3. 处理页面:使用XSLT 技术从页面中获取所需要的信息,构造成为能被
系统识别的XML 文件;
4. 链接处理:某些页面中包含一些链接需要进一步处理,把链接目标的数
据也获取过来,连接被定义在页面处理完成之后生成的XML 文件中,
如果有多个连接,则并发的进行处理;链接有两类,使用超链接地址识
别:
a) 普通链接:并没有在系统中专门定义的链接,系统只是简单的获取
链接目标的数据;
b) 特定链接:如同法人被担保人一类的链接,系统中需要专门进行处
理,并可以判断相关的信息有效期等操作;在这种情况,源页面中
可能并没有存在实际的超链接,而是由处理规则自动产生一个虚拟
的链接查找特定的关联信息;
5. 查询数据:所有数据从外部网站获取并处理之后,都存储在本地数据库
中,然后利用SQL 或者数据库相关的操作直接从数据库中获取数据并
进行展现相关的处理。
实际上,在一个查询的过程中,可能同时存在从外部网站和内部业务数据库
同时获取数据的情况,由于不同的事务可以独立并发的进行处理,因此,获取数据的过程可以互不影响,独立进行,所有的事务都完成之后,统一构造展现结果,无需区分数据来源。
3.4. 核心模块与系统流程
征信管理系统的核心部分从不同的数据源获取数据,按照用户的要求展现结果。其中数据可以是直接从关系数据库中获取的数据,也可以是从internet 上获取的页面经过处理之后的数据;在系统中,把这两种不同的数据源统一进行处理。对于大多数的展现(查询、报表、分析)功能,可以遵循下面的规则处理:
部分简单的功能,一次操作展现结果之后就结束了,但有些复杂的功能需要交互的展现,如法人关联客户的查询等,需要查询、选择、在查询。
整个系统采用消息/异步机制为基础的设计,最大限度的保证处理效率和系统稳定性。对于用户可见的功能,系统会模拟同步的方式,在系统允许的时间内把结果返回给用户;但如果操作的时间过长,该请求会被转为异步方式,用户不能马上得到结果。
3.4.1. 模块说明
功能接口:系统模型对外接口,用户提交的请求由该模块接受处理,构造为系统内部的数据结构,调度和批量处理等模块,按照特定的逻辑向该模块发出请求。
请求处理器:对请求进行分析、记录,在异步基础上实现同步功能,进行并发控制,过滤重复请求,减少无谓的资源浪费,匹配异步结果等。
请求队列:是一个FIFO 队列,保存请求对象,连接请求处理器和处理线程。 处理线程:实际上是一个线程池容器,包含个数可配置的工作线程,这些线程侦听请求队列,如果发现有请求对象,则开始工作处理请求,否则被会被挂起;处理线程的工作分两大块:一是从数据源获取数据,二是根据用户的定义渲染最
终展现的结果。
获取数据:从数据源获取指定数据的框架,在这里主要考虑把关系数据库和来自WEB 的页面都作为展现结果的数据源;一般来说,关系数据库的数据可以简单的通过SQL 语句表示,而来自WEB 的页面数据,则需要一些特定的方式获取页面并进行解析以获得相应的信息。
Web 数据源:把WEB 数据封装成为系统数据源之一,用户定义展现来自WEB 的数据的时候,可以直接使用系统提供的原语。
Web 数据处理:需用从Internet 网站上获取页面,并进行一系列的处理,处理的细节,参见下面的WEB 数据处理框架和关键技术分析。
渲染结果:按照用户的定义把数据渲染成为HTML 、Excel 或者文本的结果。 结果处理器:对需要展现的结果进行处理,最直接的,把结果返回客户端,对于一些特殊的操作,可能会把结果保存在磁盘上,或者通过邮件、FTP 发送到指定的目标。
调度:根据用户设置,定时或者周期性的执行动作。
批量处理:根据用户提交的批量文件,分解成为一系列独立的请求,向功能接口提交请求。
3.4.2. 系统流程
1、用户在操作界面上输入(选择)参数,并提交;
2、功能接口接受用户请求,并进行处理,形成请求对象;
3、进入请求处理器,先判断有没有相同的工作正在被执行,如果正在执行,
当前请求直接被挂起,等到相同的工作被处理完,一起返回给客户端;反之,登记需要执行的动作,并且发请求对象放入请求队列;
4、处理线程被唤醒,根据请求对象,加载用户配置,进行请求处理;
5、根据数据源的要求获取数据,如果是关系数据库的数据源,直接使用
JDBC 进行数据库访问,如果是WEB 数据源,则按照下面的步骤进行:
a) 根据要求访问网站,对于不同的网站有不同的访问和登录的要求,
获得指定的页面;
b) 对页面进行优化处理,使页面内容符合XML 规范,并使用相应的
规则对页面进行处理,获取其中的信息;
c) 把信息存入系统数据库中;
d) 从数据库中获取数据;
6、结合展现样式的定义渲染最终的展现结果;
7、对于某些操作来说,可以在展现结果上进行操作,并且再次提交请求,
重复1的动作。
3.5. WEB数据处理框架
WEB 数据处理框架提供了一个可扩展的框架,满足系统从WEB 上获取并且解析数据,以及其他应用模块对WEB 数据的操作等要求。
在这个框架中,有两个重要的需要扩展的部分:
规则映射(Rules Mapping):不同的页面有着不同的信息和信息的组织
方式,因此每个页面都需要一个专门的规则来告诉系统怎样获取这些数
据,这些规则使用标准的XSL ,需要建立一个可扩展的框架,在新增页
面的时候,可以方便的增加相应的规则,并且可以直接使用;而原有页
面上的格式调整,有限度的数据变化,都可以局限在规则的修改,而不
需要影响系统本身;
网站处理器(Website Processor):不同的网站有着不同的访问要求,包
括:
⏹ 网站地址,端口;
⏹ 访问协议,HTTP 或者HTTPS 等;
⏹ 登录规则:不同的网站需要不同的登录方式,有些使用固定的用户
名/密码,有些使用映射表找到相应的用户名/密码,有些则需要用户
输入验证码;
访问规则:可以是直接访问一个特定的页面,也可以是按照一个既
定的路径依次访问,甚至是根据页面的内容进行关联的访问;
不同的要求都有着不同的实现方式,系统提供一个可扩展的框架把这些不同的实现方式组织在一起。
另外,WEB 数据处理框架中,还有四个重要的模块:
1. TIDY :对HTML 页面进行优化,使之变成符合XML 规范的XHTML ;
2. XSLT :系统采用的规则由XSL 文件表示,因此,可以采用标准的XSLT
过程把页面变成可以被程序所理解的仅包含所需要数据的XML 文件;
3. XML2DB :把XML 文件的内容直接映射到关系数据库中;
4. 特殊模块(Special Module):针对一些特殊的网站访问方式专门实现的
模块,可以说是对WEB 数据访问的一种控制方式,有两种:
a) 路由访问(Route Query):按照既定的路径依次访问所有的页面,
并且把页面内容记录下来;
b) 追溯访问(Trace Query):根据页面中的特定内容和指定的地址进行
交互性的或者批量的追溯访问,一直到没有相关信息位置(超链接)。
第4章 关键需求分析
这章对征信管理系统中的关键需求进行分析,并不涵盖系统的所有需求,只对系统中最关键的部分进行初步分析。包括:
法人关联查询;
批量查询;
批量数据下载;
日志管理;
权限管理等部分。
4.1. 法人关联查询
法人关联查询需要从人行信贷咨询系统、法人客户预警信息库、上司公司数据库、500强数据库、重点企业数据库、总行CIIS 等系统获取相应的信息,构造一个综合分析报告。其中,要对借款人和担保人进行查询,并对他们的关联企业(被担保人或其他关联企业)信息进行追溯查询,并一直追溯至最终的被担保企业与我行无负债业务为止。
在进行人行信贷咨询系统查询时,事先由用户选择查询的方式:
查询到第几层,即追溯到底或追溯查询的层次数,缺省为“追溯到底”; 是否每层查询前进行人工干预,即从第二层开始,用户在每层查询前选
择需要查询的企业,缺省为“人工干预”。
上述两种情况的最终结果,都是展示一个法人客户的综合分析报告。
4.1.1. 多数据源综合展现
征信管理系统平台支持同时从多个数据源获取数据,并综合在一个报告中展
现。每个数据源都包含独立的事务过程,可以进行预处理(抓取页面、存储过程等操作),获取数据等操作,形成系统内部的数据模型
在系统中,可以对数据模型内部进行二次加工,最终生成所需要的报告。不同的数据源是同时并发的执行,最大限度地提高系统性能。
4.1.2. 关联查询(多层查询)
法人关联查询中,需要对企业的关联企业(借款人或被担保人)进行追溯查询,一直到关联企业与我行无负债业务为止。关联客户作为源页面中的一个标识,可以在页面处理规则中增加标识的识别代码,形成目标信息的查询地址和参数,自动(或根据需要)获取关联信息,并在系统内部形成一个关联图。
4.2. 批量查询
用户可以提交一个批量查询文本,系统根据文本的定义在后台自动完成所需要的所有信息查询,并把生成的结果以邮件方式发送,或者暂存在服务器中,用户可以根据需要从服务器下载。
4.2.1. 批量执行器
系统内置的批量文本解析执行包,根据可以配置不同的实例以满足法人和个人批量查询的文本的要求。
批量执行器逐行读取批量定义文件,并校验按行校验内容,如发现不正确的请求信息,则给出提示,用户可忽略或修正错误重新提交;经确认之后的文本,交由后台线程逐行执行,向系统发出请求,所得到的结果,根据用户的要求,或发送邮件,或保存在服务器硬盘上。
批量执行器是一个框架,可以客户化新的批量查询的实例,目前系统提供个人的批量查询。
4.2.2. 个人批量查询
批量查询文本格式:
姓名|证件号|证件类型|查询原因|
姓名|证件号|证件类型|查询原因|
······
每条记录占一行,每行以回车键结束。姓名可以缺省。
4.3. 批量数据下载
系统管理员在每月月末(或者某一时间)执行操作,由系统根据企业校验表提供的企业贷款卡、卡密码,从人行信贷咨询系统自动查询所有企业的贷款增量数据,并按照截止时间储存在数据库服务器上。
批量下载数据时,记录每户企业的下载结果(下载成功或失败);若遇到系统中断,则自动记录断点,在系统恢复正常后从断点处继续下载。另外,系统管理员有权中断批量下载的进程。
系统同时提供任务调度功能,在设定的时间或者周期自动触发任务进行数据下载。
4.3.1. 任务调度
实际上任务调度是系统内置的一个功能包,是一个通用的调度器,提供一个时间调度的框架,可以客户化成为多种自动任务的功能。调度器提供:
指定时间发生任务,如某月某日几点几分;
指定周期发生任务,如每个15秒,或者每月的1号等;
目前提供定时下载数据的功能。
4.3.2. 断点续传
批量数据下载以行(数量可设置)为事务单位,在一个事务单位完成之后,自动提交,并作日志。如果发生系统故障或者人工停止,再次出发该任务的时候,可以从断点开始继续工作。
在重新开始工作的时候,管理员可以选择是否保留以前的数据。
4.3.3. 手工控制
管理员可以对任务进行手工控制,包括:
启动任务;
暂停任务;
取消任务;
恢复任务等;
4.4. 历史信息查询
征信管理系统本身就是一个查询分析平台,可以从不同的数据源获取数据并进行相应的深加工,充分利用数据库的特性(SQL 语句,存储过程,事务等)完成各种查询需求。因此,本身具备了完善的分析报告、报表等展现功能,开发人员或管理员可以根据需求定制相应的查询报告。
查询结果可以在页面上显示,也可以下载为文本、Excel 等格式。
4.5. 日志管理
在征信管理系统中,在用户操作的同时,需要记录大量的日志信息,包括用户登录、注销等行为,以及查询的所有数据,在某种程度上,日志信息比用户实际发生的数据还要多,因此,提供一个高效低耗的日志系统,是系统性能的重要保证。
4.5.1. 日志记录
征信管理系统采用成熟的Log4J 为日志框架,自行开发相应的业务日志模块,可以根据需求配置所需要的日志信息,高效灵活的在系统数据库中记录日志。
日志的内容包括:
用户信息:用户姓名、用户代码、机构、专业等
登陆时间:
查询时间:开始和完成时间
查询参数:输入的查询条件
查询的数据库
是否查到
查询输出的报告内容
有无预警提示
预警提示报告
有无反馈处理意见
反馈处理意见的内容
是否本地查询
4.5.2. 日志分析
利用征信管理平台本身的查询分析功能,可以提供以下日志分析报告: 用户使用该系统的日志记录;
各个数据库查询情况的日志记录;
各预警情况的日志记录;
各机构查询情况的日志统计;
各角色查询情况的日志统计;
4.6. 权限管理
征信管理系统提供了功能、数据双重控制的权限模型。在此模型中,有如下定义:
◆ 功能:系统中的一个独立功能模块,如法人客户查询、个人查询、机构
管理等,一个功能有一组程序组成,有一个系统入口;
◆ 机构:银行的组织机构,从总行、分行到各个网点等;
◆ 数据:和机构相关的层次数据,如不同支行的客户;
◆ 角色:一组功能的集合;
◆ 用户:征信管理系统的使用者,隶属于某个机构,拥有一个角色,可执
行某些功能,看到某些数据;
系统管理员可执行如下的操作:
机构管理:
1. 增加机构;
2. 删除机构;
3. 修改机构信息等;
功能管理:
1. 新增功能(须有实际的功能模块支持);
2. 删除功能(并不删除实际的程序包,但用户无法再使用);
3. 修改功能信息等;
角色管理:
1. 新增角色;
2. 删除角色;
3. 修改角色信息;
4. 为角色配置所包含的功能等操作;
用户管理:
1. 增加用户;
2. 删除用户;
3. 修改用户信息;
4. 设置用户所属机构;
5. 设置用户所属角色等操作;
由此可以看出,管理员实际上可以随意设置角色,但在系统初始化的时候,我们提供如下角色配置:
在日常维护的时候,系统管理员可以根据实际的情况进行调整。
第5章 基于XML 的WEB 信息抽取
5.1. Web信息抽取技术概述
Web 信息抽取,就是从半结构化的Web 文档中抽取数据,其实属于Web 内容挖掘的范畴。
定义:给定一个包含一系列对象的页面S, 找到一个映射关系W ,它可以将S 中的对象映射到一个数据集R ,并且这个映射W 还必须可以从任何与S 类似的页面S ’中识别并抽取数据。(其中的“类似”页面指与S 来自同一网站或Web 服务的页面,具有相对一致的页面结构)。
定义中的映射W就是通常所说的包装器(Wrapper )。包装器是过分析一定数量的样本案档(这个数量一般较少)而生成的,一旦生成后,就可以利用这个包装器对与样方案档具有类似结构的所有文档进行自动的信息抽取。Web 数据抽取的核心是构造用于抽取的Wrapper 。
5.2. 相关标准
5.2.1. XML
XML(Extended Markup Language)作为一种新的、WWW 上的数据交换标准,扮演了极为重要的角色。XML 是标准通用标记语言SGML(ISO 8897)的一个子集,用于支持Internet 上结构文档的交换。和HTML 的面向显示相比,XML 是面向内容的。XML 因具有更多的语义、良好的可扩展性、简单易用、自描述等特点而特别适用于Web 上的半结构数据,并可用于数据交换。XML 正在成为数据组织和交换的事实标准;同时,大量的XML 也迅速地出现在了Web 上。目前,对XML 数据的存储和查询方面的研究方兴未艾。
XML 具有以下主要性质:
1. 扩展性。XML 是一种用于设计标记语言的原语言,而不是像HTML 那样,
是一种只有一个固定标记集的特定标记语言。XML 允许用户根据其需要
创建自己的标记,这些标记可通过XML DTD(Document Type Definition)
加以定义,XML 的可扩展性就在于此。
2. 灵活性。XML 提供了一种结构化的数据表现方式,从而使用户界面与结
构化数据相分离。
3. 自描述性。XML 文档通常包含一个文档类型(DTD )声明,从而便于机器
理解数据的意义。XML 文档中的数据可被任何能够对XML 数据进行解析
的应用程序所抽取、分析和处理,并以所需格式显示。
5.2.1.1. XML的结构特征
图
4.1是一个简单的XML 文档,下面将以这个例子来说明XML 的结构特征。
图4-1 一个简单的XML 文档
一个具有正规格式的XML 文档的定义形式是一个简单的层次树,每个都有且仅有一个根节点,称为文档实体(document entity )或文档根(document root )。这个节点可能包含PI 和/或注释,而且总是包含子元素树,子元素树的根被称为文档元素(document element)。这个元素是这个树中其它所有元素的父元素,而且它可能不包含在其它任何元素当中。值得注意的是,文档根和文档元素并不是一回事,在图4-1中的文档元素是employee 元素,它和XML 声明都是文档根的子节点。
元素树和其中的父-子关系是XML 的一个非常重要的特性。任何元素类型只能是以下四种之一:如果元素类型只允许包含其它元素或标记,而不能包含字符数据,这种节点称作元素内容节点;如果元素类型可以包含字符数据或其它元素,这样的节点被称为混合型节点;混合型节点的一种子集就是只包含字符数据的元素,称之为字符内容节点;如果元素不包含任何内容,我们称它为空元素,但是空元素标记可以包含属性。
5.2.1.2. XML的模式
XML 的模式是对XML 文档中数据的结构和形式的约束机制,类似于数据库理论中的数据模式的概念。目前主要有两种定义XML 模式的方法:DTD 和SCHEMA 。
DTD :XML 使用SGML 的DTD 来定义文档的逻辑结构,同时指定了元素之
间关系的规则。这非常类似于定义数据模式。只有采用了DTD ,进行合
法性检查的处理器才能保证文档的一致性。符合DTD 的文档称为“合法”
的,否则文档就不是合法的,但它仍是一个XML 文档。与SGML 不是的
是,XML 允许文档类型声明是可选的,因此一个成形的XML 文档可以有
声明与任何一个DTD 相符合,这样它就不是一个合法的文档,因为无法
检查它与DTD 之间是否符合,它也不是非法的,因为它并没有违反DTD
的约束。DTD 是一种新的语法规则,DTD 文档不是一个XML 文档。
XML SCHEMA:与DTD 相对应的是XML SCHEMA,它比DTD 功能更强大,且
符合XML 文档规范。与DTD 一样,Schema 指定了XML 文档符合的逻辑结
构,并将这种逻辑结构应用于XML 文档内容上。XML SCHEMA规范基于
XML-Data 和DCD(Document Content Description ,文档内容描述) 之上。
它用以对文档进行有效性验证,即XML 文档是否符合指定的XML Schema 。
在XML Schema中定义出现在文档中的元素和属性,这些元素之间的关
系就构成了文档的逻辑结构。与DTD 不同的是,XML Schema使用的是
XML 语法,同时XML Schema 比DTD 有许多优点。相比之下,DTD 使用闭
合的内容模型,而XML Schema使用开放的内容模型,这样使XML 文档
的编制更加灵活。XML Schema 最重要的部分是形式化定义允许出现在特
定文档中的元素和属性,以及这些元素和属性之间的彼此关系。与DTD
不同,XML Schema 允许为元素和属性定义数据类型,这有利于指定数据
格式、有效性验证和方便DOM 的处理。数据类型包括其它编程语言的一
般数据类型和XML 规范中特殊的属性类型。为了利用数据类型,我们必
须在XML Schema 中包括所用数据类型的Namespaces (名字空间)。另外,
XML Schema是可扩展的,即它是建立在开放的内容模型基础上的,XML
Schema 开发人员可自由向XML Schema文档中增加自己的元素。可以利
用这个扩展性来为某个元素增加额外的约束条件。
5.2.2. XHTML
从某种角度上说,HTML 是XML 的一个子集。虽然HTML 并不符合严格的XML 语法,但是许多浏览器都能够显示有许多错误的HTML 文档。这样使得大量的HTML 文档根本不能被直接解析。为改变这一状况,W3C 推出了HTML 的替代标准XHTML 。它严格建立在XML 基础上,并且明确定义了文档规则,使得人们可以向使用XML 那样处理XHTML ,并且可以利用各种强大的XML 标准技术来操纵XHTML 文档,从而可以大大简化应用程序的开发和维护。
方案利用了这一特点,先将HTML 转化为XHTML 文档,然后利用XSLT 作为抽取规则从XHTML 文档中抽取出需要的数据。
5.2.3. DOM
数据库技术中使用标准的ODBC/JDBC接口规范,可以用一种一致的方式访问各种类型的数据库。在XML 的应用开发中,同样需要一个统一的XML 数据接口,于是W3C 制定了一套书写XML 分析器的标准接口规范-DOM (Document Object Model ,文档对象模型)。
DOM ,是一个对象化的XML 数据接口,定义了HTML 文档和XML 文档的逻辑结构,给出了一种访问和处理HTML 文档和XML 文档的方法。DOM 接口提供了一种通过分层对象模型来访问XML 文档信息的方式,这些对象模型依据XML 的文档结构,即元素间有序的嵌套结构,形成一棵对象节点树,方案中称此结构为DOM 树。
它将XML 文档表示为节点构成的树。
5.2.4. XPath
XPath ,是一种定位XML 文档的各个部位的语言,可以将XPath 理解成为XML 的SQL 语句,它基于XML 文档的逻辑结构,用XPath 可以检索XML 文档的元素和属性。
在Java 程序中使用XPath 与在Java 程序中使用SQL 差不多,因此可以把XPath 看成与SQL 相似的查询语言,不同的只是XPath 并不是从数据库中抽取信息,而是从XML 文档中抽取信息。
Location Step 是XPath 的基本结构,提供了从XML 文档中选择节点的方法,包括三个部分:轴(axis )、节点测试(nodetest)和谓词(predicate)。轴与节点测试用双冒号(::)分开,每个谓词放在方括号中,即
axisname::nodetest[predicate]。
1. 轴:轴定义了要定位的节点相对于上下文的方向和范围。如:
✧ Self :节点本身
✧ Child :上下文节点的所有子节点
✧ Parent :父节点
✧ Attribute :上下文节点的属性
2. 节点测试:允许从指定的轴中选择特定的元素或者其他节点类型,来进
一步缩小节点定位范围。如下:
✧ Name :具有指定名称的任何元素或属性
✧ *:沿着属性轴,星号匹配所有属性节点
✧ Test():任何文本节点
✧ Node():任何节点。
3. 谓词:谓词是方括号中的XPath 表达式,对所选择的每个节点求值。
5.2.5. XSLT
XSLT 是一个转换语言。XSLT 样式单描述一种样式的文档如何转换为另一种样式的文档。输入与输出文档使用XPath 数据模型表示。XPath 表达式从输入文档中选择要进一步处理的节点。包含XSLT 指令的模板作用于选择的节点,产生新的节点,然后将其加入到输出文档中。
以图4-1中的
XML 文档为例,编写XSLT 如图4-2所示:
图
4-2 employee.xsl
输出结果如图4-3所示:
图4-3 转换结果
从抽取的角度来看,XSLT 文档就是抽取规则。由于XSLT 是一个广泛使用的标准,语言强大而且有很多工具支持它,因此方案采用XSLT 作为抽取规则。
5.3. 设计思路
目前,W3C 已经公布了一些标准用以操纵XML 数据,XSL 就是一种用于显示和转换XML 文档的标准。其转换语言XSLT 与XPath 的结合使用,可以将
一个XML 文档中的数据抽取出来并且以一个用户预先定义的新格式的XML 文档显示出来。
从某种意义上说,HTML 可以看作XML 的一个子集,因此可以利用XSLT 技术对HTML 文档进行数据抽取,但是HTML 却并不符合XML 语法,而且其中存在着大量的语法错误,而浏览器却纵容了这一缺点,使得HTML 无法直接被其它Web 应用所解析和利用。因此,实际上XSLT 并不能直接应用于HTML 文档,所以需要将其进行转化。方案首先将HTML 文档转化成为符合XML 语法的XHTML 文档, “HTML2XHTML ”表示HTML 格式到XHTML 格式的转化。然后需要将XHTML 文档解析成为DOM 树结构,以“XHTML2DOM ”表示该过程。最后在获得DOM 树的基础上,应用XSLT 将DOM
树结构转化为结果XML 文档。
5.4. 总体框架
模块说明:
1. 抽取规则:包含了系统所需要的所有页面信息解析的规则。
2. 数据库:包括抽取结果数据库和Web 页面数据库,保存经过解析之后的
数据和原始的页面内容。
3. 页面优化模块:主要针对web 页面进行优化处理,使结构不完整或不规
范的Web 页面转化成为结构良好的XHTML 文档。
4. 信息抽取模块:信息抽取以获得抽取规则为前提,任何信息抽取的关键
工作都致力于获得健壮可靠的抽取规则,然后运用抽取规则进行信息的抽取。
框架特点:
1. 平台中所有的操作都基于XML 的逻辑模型DOM 树。
DOM (document object model),文档对象模型,是W3C 制定的标准接口规范,HTML 文档被解析后,转化为DOM 树,树的每个结点是一个对象。DOM 模型不仅描述了文档的结构,还定义了对象的行为,利用对象的方法和属性,可以方便地访问、修改、添加和删除DOM 树的结点和内容。
2. 用XML 作为知识表现的模型。
这样做的好处是:
用XML 能充分提示知识的含义。XML 具有自描述性,用能够体现
语义信息的XML 标签表示知识库中的数据,使得知识容易理解。如
果知识的含义能够为人所理解,自然会方便用户对知识库的操作。
用XML 使知识库容易扩展。通过为各个知识库制定XML Schema
来定义各个知识库的元素、属性和结构。使得用户很容易地在需要
对模式进行修改的时候对其进行修改,这使知识库容易地被扩展。
这个特点同样使规则库的修改方便简单。
由于XML 本身结构性较强的特点,利用XML 表现的知识库就具有
清晰的结构。原本复杂的知识变得易于表达和组织。
目前越来越被Web 应用所接受的XML ,作为一种国际标准,越来越
多的开发工具和开发包开始支持它的查询和编辑,使得XML 所表达
的知识库易于操作。
3. 用XML 表示抽取结果
本系统抽取的最终结果是结构良好的XML 文档。采用XML 表示抽取结
果的原因是:
XML 结果数据容易被其它系统访问和使用,方便和其它系统整合。XML
数据结构性强,可以直接被其它应用程序访问,或者通过XML 的查询语言来访问也比较方便。这样,信息抽取系统可以方便地为信息集成、信息过滤等其它需要信息抽取结果的系统服务。
抽取结果可以容易地表示和转换为不同格式,满足不同用户的需要。
通过使用不同的XSLT 文件,同一内容的抽取结果可以以不同风格展示,应用在不同的场合,使数据能够更合理地、有针对性地表现出来。这在推动信息数据表现个人化、风格化的同时,也提高了数据的可重用性。另外通过使用XSLT 处理器和XSL 样式表,可以容易地将XML 的抽取结果转换为另一种格式,满足不同需要。
4. XSLT 作为抽取规则
XSLT 它可以访问任一层次上的任一个部分的XML 数据,而且它易于理解和修改,并为许多工具所支持。信息抽取实际上就是一个信息定位的过程,XSLT 本来是用于转换XML 文档的,但由它定义了强大而且灵活的一套数据定位语言Xpath 以及抽取指令,可以进行复杂的抽取和变换。又因为HTML 可以看作XML 的子集,因此完全可以利用XSLT 作为抽取规则。
处理流程如下图所示:
第6章 关键技术分析
6.1. 组件技术
征信管理系统的核心关键技术是采用面向组件的面向组件的编程技术(Component Oriented Programming COP)。COP 是把系统分割成一些组件或设施的一种思想,每种设施都有一个工作接口和围绕该接口的契约。COP 的主要好处之一是修改项目代码的一些部分不会破坏整个系统。另一个好处是可以有某组件的多种实现,并可以在运行时刻进行选择。面向对象编程(Object Oriented Programming ,OOP )和COP 的主要区别在于集成的层次,COP 系统的复杂性更容易管理,使类之间更少的相互依赖,提高了代码重用的程度。
所谓组件,简单的说就是接口+实现,强调接口与实现分离。一个接口声明了自身的契约,承诺可以完成什么样的功能,也是也其他组件的通讯协议;实现则是组件的内部细节。通过组件化技术,把简单的接口提升为功能独立的组件,通过利用组件,以及组件之间的交互来完成系统功能。
采用面向组件编程最大的好处是使得系统获得了最大限度的灵活性和可扩展性,实现了真正的柔性系统。
6.2. 日志记录
对于日志记录,系统同时提供两种方式。
详细日志记录是通过将日志记录内容包装成一个XML 串,并将其和其他信息一并记录到日志表中。这样的记录方式具有以下优点:
记录的日志内容比较详细,并且可以任意详细; 展现日志的时候,可以借助于XSLT 进行视图的渲染。 同时对于分析类的要求,提供另外一个Logger 组件。
业务逻辑动作完成以后,分别调用两个Logger 进行日志的写入,并且可以
为不同的要求配置不同的Logger 。
6.3. TIDY
在W3C HTML的标准中,大多数标记会成对出现,符合HTML 标准的文档称为格式良好的(well formed)。HTML 文档有些是用工具辅助写的,有些是手工完成的,许多没有完全遵守这些标准,是有错误的,比如无相应结束标记、标记嵌套不合理等。由于竞争的需要,各种浏览器容忍了这一缺点,浏览器的容错能力相当强,能够解析有很多缺陷的HTML 文档。因此,现在Web 上很多页面的HTML 源文档存在着语法错误。为了能够对所有的网页按照HTML 标准来解析,必须对网页进行扫描,将有缺陷的网页修复。
HTML Tidy是一个开放源代码的强大工具,可用于修正HTML 文档中的常见错误并生成格式编排良好的等价文档。建议使用Tidy 的类库,将其集成到系统当中。Web 页面将通由Tidy 进行页面预处理,将源HTML 文档转换成等价的XHTML 文档。
6.4. XML2DB
网页经过抽取后变成XML 文件,需要将把XML 文件的内容直接映射到关
系数据库中,在这个过程中采用一种通用的技术,不需要针对特定的XML 文件写不同的映射程序。如果页面的内容变化了,用户只需修改映射文件,就可以将XML 映射到数据库中。
XML2DB 的主要原理是通过一个map 文件来描述数据库中的域或表和XML 树型结构之间的对应关系。在作XML 数据到Database 之间转化时通过对map 文件的分析为XML 中的每一个节点找到对应的字段或表。XML2DB Engine的实现此Map 文件的解释器,它的工作就是对Map 文件进行分析根据Map 文件中的标签执行相应的具体操作,作为结果,它将整个XML 中的数据添加到数据库中的一张或多张表中。
6.5. Anchor-HOP模式 6.5.1. 信息定位的优化方法
被抽取的web 页面是易变的,页面样式的变化也比较频繁。一旦页面发生变化,抽取规则就可能失效,因此,编写健壮的抽取规则至关重要。抽取平台中使用了XSLT 作为抽取规则,其中利用了XPath 的数据定位功能。实际上抽取规则的失效主要源于XPath 路径表达式的失效。因此,需要得到尽可能健壮的XPath 路径表达式,即对信息定位进行优化。
6.5.2. 基于树路径的定位
例如以下基于树路径的方式,即:
/html[1]/body[1]/center[1]/table[6]/tr[1]/td[6]
这种方式在页面结构没有发生变化时最为准确和直观,但是当页面结构发生了变化,如增加了一个标签后,这种绝对路径表达式就会失去效用。如上面的表达式变为:
/html[1]/body[1]/center[1]/table[6]/tr[1]/td[7]
当路径表达式发生改变后,原有的XPath 就失效了。实际上,在基于树路径的定位过程中,树结构中的任一个层次发生微小的改变就会最终影响到抽取规则的失效性。而且由于Web 页面较为复杂,一个信息点的树路径往往较长较深,更加剧了XPath 表达式的脆弱,因为路径越深,路径就越敏感。因此,在实际的抽取工作中,仅仅依靠树路径的定位方式是不够的。
6.5.3. 基于文本的定位方式
这种定位方式不依赖页面的结构,而依赖页面中的特定的文本进行信息的定位。
这种定位方法中用到了XPath 语法中轴、谓词以及一些XPath 函数。
6.5.4. Anchor-HOP模式
Root Anchor Data
该模型的主要思想就是利用文本搜索和相对路径结合的方法,根据页面上不易变化的文本信息进行数据的定位。
Anchor 实际上是一个参照节点,一般是包含所有待抽取信息的共同的最近的祖先节点。
节点符合这一要求。并且通过观察发现“Computers- Programming Java”出现在描绘图书的书名等具体信息之前,可以做为Anchor 为定位提供参考。另外,TITLE 、AUTHOR 等信息是待抽取的信息点,即Hop 。因此可以将定位信息重新构造成为:
//table[start-with(normalize-space(.),’computer-Programming Java’)]
抽取规则也将重新构造:
第7章 部署
7.1. 网络部署图
7.3. 系统环境 7.3.1. 硬件环境
7.3.2. 软件环境
整个系统采用JA V A 开发,符合J2EE 规范,真正实现平台无关。