APP下载

Flex技术在审计分析模型构建平台中的应用

2018-10-15孙小雨张再跃

计算机技术与发展 2018年10期
关键词:分析模型调试组件

孙小雨,张再跃

(江苏科技大学 计算机科学与工程学院,江苏 镇江 212003)

0 引 言

随着商业银行业务的快速发展,其经营风险日益显现,防范风险成为银行的重要任务之一,识别和揭示风险成为审计的首要目标。计算机辅助审计是由专职机构和人员,利用计算机依法对银行的各种经济活动的真实性、合法性进行审查,用于改善经营管理,提高经济效益[1]。数据式审计是目前主流的审计模式[2]。数据式审计,也称为计算机审计,是一种通过对银行业务交易电子数据的收集、转换、整理、分析和检证以实现审计目标的审计方式[3-4]。审计分析模型是实施数据式审计的有效手段。商业银行业务数据种类繁多,不同的业务数据需要不同的审计分析模型。目前,审计人员通常是运用数据库SQL及相关技术,针对不同类型的业务数据,以手动编写SQL语句的方式构造相应的审计分析模型[5]。该建模方式设计过程复杂,当涉及到大量数据表时SQL语句更加繁琐复杂,容易造成审计人员设计思维混乱。因此,构建统一平台,为各类业务的审计模型的设计提供必要的环境基础,成为当下银行建立业务数据审计有效机制的重要内容;从计算机应用技术领域看,是一项十分有意义的工作。

基于上述情况,结合Flex技术开发了审计分析模型的构建平台(以下简称“构建平台”)。首先对构建平台的基本性质与基本功能进行分析研究,描述了构建平台的基本框架结构,给出了利用构建平台设计审计分析模型的基本流程。Flex技术不仅极大增强了前端页面的表现力,为用户提供更加友好的界面,而且还拥有强大的组件库,为审计分析模型设计过程中模型构建思路图的绘制提供便利,展现了可视化的模型设计全过程。

1 相关研究

1.1 Flex技术

Flex技术是目前使用最广泛的RIA开发技术之一,可构建具有表现力的Web应用程序。Flex技术框架包括MXML描述语言、ActionScript程序语言和Flex类库[6]。开发人员使用MXML和ActionScript语言开发应用程序。在装有Adobe Flash Player插件的浏览器中可运行Flex创建的RIA。Flex编译器Flex Builder x.0将MXML、ActionScript以及一些Flex类库编译成SWF文件,然后在客户端由FlashPlayer解析执行该SWF文件,实现对应用的访问[7-8]。

平台的设计采用Flex的MVC框架中成熟的Cairngorm框架[7],其分层MVC有助于构建商业应用程序。Cairngorm框架包括以下几个部分:

·Model(模型):在Flex接口的客户端存储应用中所有的Value Objects(数据)和共享变量。

·View(界面):包含一个或多个Flex组件(按钮、面板、组合框等)所组成的集合。在Model Locator(模型定位器)中绑定数据,并基于用户操作(点击、滚动、拖拽等)生成自定义的Cairngorm事件。

·Front Controller(前端控制器):接收界面生成的自定义事件Events,将其与Cairngorm命令控制器建立映射关系。

·Command(命令控制器):管理商业关系,对Caringorm代理进行调用。

·Delegate(代理):由命令创建,实例化远程过程调用(HTTP,Web Service等)并处理命令的返回结果数据。

·Service(服务):定义连接远程数据存储的远程过程调用(HTTP,Web Service等)以获取数据。

Flex技术内包括很多可视化UI组件,它们可实现高交互。通过组件行为属性可以动态适应用户行为习惯,组件间通过消息通信实现协调动作[9]。可视化组件可用于数据集成与数据绑定。

·数据集成:集合类数据与DataProvider。集合类可用于Flex可视化组件数据源,标准类型包括ArrayCollection和XMLListCollection。Flex中的其他可视化组件,如Button、ComboBox、DataField等,可使用DataProvider进行数据源的指定。

·数据绑定:数据绑定是Flex技术重要的特性之一,借助数据绑定可使应用中不相同的部分相联系,让一个对象的数据自动反映到另一对象的数据上。

1.2 审计分析模型

审计分析模型是以数据为分析对象,将由不同的风险特征制定的风险规则按照审计目的进行灵活组合而构成的风险识别引擎[10]。目前常见的构建审计分析模型的方法包括[11]:(1)根据法律规定建模;(2)根据审计专家经验建模;(3)根据业务规则建模;(4)根据不同类型数据之间的对应关系建模。构建这几类分析模型时,审计人员需具备清晰的审计思路,通过手动编写SQL语句进行构建。利用审计分析模型进行数据分析的步骤如下[12-13]:

·了解审计需求和目的:通过学习相关业务流程和法律文件知识,掌握审计目标。

·建立分析模型:分析模型是确立分析的初步表达。审计人员结合审计目的和需求,根据法律法规、业务规则以及个人经验等通过建立计算机语言表达的查询、统计等条件进行分析模型的构建。

·分析审计数据:通过上步构建的分析模型,根据数据字典或数据库说明等相关技术文献,确定实现模型所需的基础表数据,并对其进行研究,清楚业务数据表中各字段的具体意义。

·建立中间表:商业银行数据库中的数据是按照便于管理的目的进行存放,一般不符合审计需求,因此需要对原始数据进行“加工”,生成有助于完成分析的“中间表”。“加工”是指对原始数据进行选择、整合,形成符合审计需求的数据集合,即“中间表”。

·完成分析:按照上述过程,审计人员手动编写SQL语句构建审计模型,对数据进行核对、检查、判断等操作,得到结果。

2 审计分析模型构建平台的分析与设计

2.1 构建平台的数据采集

审计人员在明确审计目的,了解相关业务流程,提炼风险点形成审计思路后,在构建平台上根据审计思路绘制模型思路图。构建平台的数据来源于银行内部数据,如核心业务系统、信贷管理系统、信用卡系统、国际业务系统、电子银行系统等。基于数据库强大的分发机制,各业务系统的数据文件定期(每天)被下发至服务器的指定目录上,根据服务器的地址、下载端口以及登录账号和密码,使用ETL[14](extract-transform-load)工具将不同业务线的数据下载至ODS层中。加载数据时,首先对银行内各业务系统数据接口进行整理,通过ETL配置程序设置ETL数据加载时间,并保存在ETL配置库中,程序自动读取ETL规则即可实现数据导入。

由于数据来源于不同的业务系统,数据结构复杂且格式不统一,因此要对数据进行转换、清理。在明确数据抽取策略、数据转换和数据清洗规则后,利用ETL工具对数据进行操作。利用ETL工具对ODS层中的数据进行抽取、清理与转换操作:

·数据抽取:由于银行交易数据量日益剧增,数据更新量大,所以采用全量抽取方式;每日在数据加载结束后的固定时间进行数据抽取,增强数据的实时性。

·数据清洗:保证数据的高质量,对过滤出的不符要求的数据,包括不完整的数据、错误与重复的数据进行统一处理,如:NULL值处理、去除重复数据记录等。

·数据转换:对清洗后的数据进行转换,包括数据类型统一转换、数据合并、数据拆分、数据验证等。

2.2 构建平台的总体框架

构建平台的框架结构包括Flex表现层、支撑层、数据层,如图1所示。

图1 构建平台的总体框架

·Flex表现层:基于浏览器的一个富客户端,采用Flex技术整合Cairngorm框架为用户呈现一个丰富的、具有高交互性的可视化的模型设计界面,提供了模型设计、模型调试、模型管理、任务调度等功能。

·支撑层:支撑层包括应用开发组件、技术中间件和其他中间件。应用开发组件包括统一用户管理组件、任务调试组件、日志组件、安全认证组件等。数据展现(Flex)组件等属于技术中间件,其他中间件包括应用服务器和Web服务器。

·数据层:数据层是最底层,主要由应用数据库与业务数据集市组成。

2.3 构建平台的主要模块设计

2.3.1 模型设计模块

模型设计模块是构建平台的核心模块,采用图形化交互的方式设置数据并提供绘制分析模型的思路图的功能。模型设计的基本步骤是:

·确立模型的初步表达和数据表:明确构建模型涉及的数据表以及模型的初步表达式。

·构建模型思路图起点:在构建平台的资源管理器中选中上步确立的数据基础表,根据Flex提供的拖动技术,将基础表拖拽至构建平台的主区画板上形成模型思路图的起点。

·构建结果集图元:一般复杂的模型思路图中包含多张结果集,除最终结果外,其他结果集都是中间表。在构建平台的主区画板上添加结果集图元,形成模型思路图的中间表或者结果点。

·构建连线图元:设置已有的基础表图元或结果集图元到结果集的连线,形成基础表和结果集的关联。

·根据模型初步表达对结果集进行属性设置:选中结果集,设置结果集的类型属性,即连线图元的关联类型。构建平台提供的关联类型主要包括数据关联、数据叠加、数据提取、数据导入、数据导出等。

(1)数据关联。

数据关联实现了多表之间的关联功能,它的概念与SQL中的关联定义是一致的。构建平台支持三种关联:左关联(默认的关联类型),即使右表中没有匹配,也从左表返回所有的行;完全关联,只要其中一个表中存在匹配,就返回行;交叉关联,如果表中有至少一个匹配,则返回行。

(2)数据叠加。

数据叠加功能实现了多张(至少两张)源表(基础表或结果集)之间的字段叠加,生成新的结果数据的功能,其核心是分别查询出主表、副表对应叠加字段的数据,并将数据进行简单叠加。

(3)数据提取。

数据提取是指从源表中进行数据提取形成结果集,包括条件提取和分组提取。

条件提取功能实现了将源表的数据根据设置的条件提取出来形成新的结果集;分组提取功能实现了将源表中的数据根据设置的分组条件提取出来生成新的结果集。

(4)数据导入与导出。

数据导入实现了将外部数据导入到构建平台的功能。构建平台提供两种数据导入格式:Txt文件和Excel文件。

数据导出实现了从构建平台导出数据到客户端本地的功能,其输出是含有数据的Microsoft Excel 97-2003文件格式的Excel文件。Flex利用as3xls对数据进行导出操作。

2.3.2 模型调试模块

模型设计完成后,可能由于设计人员操作不当或设计思维存在偏差而导致在设计模型的过程中出现错误,因此要对模型进行调试。通过观察模型设计思路图中的结果集的数据是否符合模型设计的预期结果来判断模型设计过程中某一步骤执行逻辑的准确性,从而保证模型的整体准确性。模型调试的基本步骤是:

·发起调试:通过触发发起调试按钮,才可对当前模型进行下一步断点设置操作。

·设置断点:在当前未设置断点的结果集的右键菜单上显示断点选项,设置断点后,结果集上显示断点标识,表示运行到当前结果集步骤之前停下来。

·启动模型调试:开始模型调试,打开模型调试的设置对话框。模型调试操作对话框上包括选择调试的起始步骤、终止步骤以及设置模型调试的运行参数。其中,参数设置中的变量设置依赖创建、打开模型中的模型参数设置。

·模型调试运行:通过调试运行按钮,开始在调试模式下运行。调试运行时,正在运行的步骤对应的结果集图元高亮显示;若运行至断点处时,其所在的结果集图元下的变量视图显示所有的变量信息。

2.3.3 模型管理模块

模型管理是对模型的各类操作进行综合管理,其功能包括模型固化、新建模型、打开模型、删除模型、模型导入、模型导出等,其中模型固化生成模型定义,即构成模型的SQL语句,是构建平台的最终目标。

2.3.4 任务调度模块

任务调度模块主要是对构建平台的目标产物—审计分析模型进行实际调用,发现和查找银行业务数据中的可疑数据。该模块是依赖第三方,或者外部任务调试器进行运行管理的;但是为了配合模型调试模块,进行了简单的多线程任务。

3 Flex技术在审计分析模型构建平台中的应用

构建平台采用MXML语言定义用户界面,ActionScript语言进行程序控制,实现了可视化的模型设计功能。

3.1 Flex与数据交互

Flex与数据交互的方式包括:HttpService、WebService和RemoteObject。构建平台采用RemoteObject模式进行数据的交互。利用其调用Java对象,将Java数据模型直接映射至Flex程序中,这样做可以减少交互间需要解析对象的麻烦。客户端配置需要在services-config.xml配置文件中定义Flex AMF通道来获得服务端对象。服务器端需要在web.xml文件进行servlet配置,并在services-config.xml配置文件中完成SpringFactory数据通道配置,其中SpringFactory是FlexFactory的子类。services-config.xml文件中同时加载remoting-config.xml文件,用于添加RemoteObject组件,内容如下:

3.2 Flex技术实现可视化的构建平台

3.2.1 构建平台主页

构建平台主页由工具栏、项目管理器、资源管理器、主区画板、属性视图等基本要素组成,其中资源管理器和主区画板实现如下:

·资源管理器。资源管理器是构建平台提供的资源管理工具,依靠Flex Sdk主要实现两大部分:绘图控件和承载基础表资源的树形列表。绘图控件包括结果集图元控件和连线图元控件。树形列表显示基础表数据信息,基础表信息按业务分类进行导航呈现。

·主区画板。主区画板用于绘制审计分析模型的思路图,是编辑模型的主操作区,是用户设计模型的核心工作区。主区画板是一个Flex Canvas画板,自定义实现矩形框架区域用于放置基础表图元、结果集图元和连线图元,其位置由X、Y记录,方便位移时计算位置。

3.2.2 模型设计模块

根据模型设计步骤在进行到关联线类型设置步骤时,由于构建平台提供了多种关联类型,每一种关联类型的具体操作不同,所以关联类型视图内容也不相同。当关联线类型为数据关联时,关联视图上提供属性设置、字段设置、条件设置和排序设置等功能操作。条件设置功能通过Flex VBox布局构建了一个表达式编辑器,实现了对数据的过滤条件设置。

设置结果集的属性以及条件后,Flex前端提供查询,形成结果集数据的SQL语句,即构建审计分析模型的SQL语句。SQL语句包含在结果集图元的xml中,因此要对结果集xml说明进行解析,以获取形成结果集的SQL语句的各部分语句。结果集的xml说明获取过程如图2所示。

图2 获取结果集xml的流程

对结果集的xml说明解析获取SQL语句,类型为数据关联的SQL语句的整合过程:获取结果集xmlResultSet的xmlColumn,将其加入到Select子句中;循环获取模型思路图中的关联线,根据关联线获取源表,并加入到From子句中;由于数据关联包括三种关联类型,因此要对关联线的具体类型进行判断,根据关联类型将关联语法加入到From子句中,如From子句+“left join”;根据关联线获取目标表,并加入到From子句中。当进行到最后一个关联线,From子句整合完毕,进行Where子句的获取:xmlResultSet.getWhere();循环获取待排序字段,加入到OrderBy子句中;最后,组合的SQL语句即为:

Select子句.subString(1,select子句.length)+“From”+From子句.subString(1,From子句.length)+“Where”+Where子句+“OrderBy”+OrderBy子句.subString(1,OrderBy子句.length)

3.2.3 模型调试模块

按照模型调试步骤启动模型调试,模型调试依赖ModelJob(模型作业)实现,其包含了模型下所有的步骤作业(StepJob)。模型调试运行时,Dump参数保存运行信息,在Java后台表现形式是Map,Flex前端自动转化为Object对象,其结构如表1所示。

表1 Dump数据结构

调试模式下的运行主要依靠模型运行组件实现,模型运行组件提供模型运行命令接口的实现。在模型运行命令接口中,处理作业方法有:

·execute:执行作业方法;

·startup:启动作业方法,只有在暂停时候才能调用;

·pause:暂停作业方法,只有正在运行的作业才能调用;

·shutdown:停止(关闭)作业方法,正在运行的或已暂停的作业可以调用;

·getJobName:作业名称,用于标识线程名;

·getJobId:作业唯一标识别名,通过此标识来查询正在运行中的作业任务。

3.2.4 模型固化模块

模型固化是对设计完成并已保存的模型进行固化操作,借助Flex的Cairngorm框架的核心控制流程实现前端固化操作,被固化后的模型可以被其他应用系统使用。后台处理模型固化方法的最终结果是生成模型定义,基本流程是:首先对模型进行编译,得到模型的xml说明;然后对说明进行解析,获取模型的参数定义,判断结果集的类型以调用相应的解析方法得到模型的步骤定义;根据模型的步骤定义和参数定义生成模型定义。模型定义是构建平台的目标对象,整个设计过程就是为了生成模型定义,可以提供应用系统调用与运行。

4 结束语

Flex技术可以实现复杂的数据交互与快速实时响应,给用户带来丰富的交互体验,是企业级Web开发的重要技术。文中结合Flex技术设计了可视化的审计分析模型构建平台,替代了传统人工建模方式,为审计人员提供了一种全新的模型设计方式。用户只要了解数据库的条件限制方面的知识就可以操作平台进行建模,使得平台更具普适性,尤其适合银行内部人员针对少量新风险自主进行分析模型的设计。基于Flex技术的分析平台可以针对一些基本需求,也可以根据实际使用情况进行拓展,使其功能不断丰富与完善,因而具有很好的应用推广价值。

猜你喜欢

分析模型调试组件
基于BERT-VGG16的多模态情感分析模型
无人机智能巡检在光伏电站组件诊断中的应用
Kistler全新的Kitimer2.0系统组件:使安全气囊和安全带测试更加可靠和高效
纤维增强复合材料疲劳寿命预测及损伤分析模型研究进展
电气仪表自动化安装与调试分析
调试新设备
一种嵌入式软件组件更新方法的研究与实现
调试机械臂
通用(OA)办公自动化系统的组件运用
基于航拍无人机的设计与调试