zoukankan      html  css  js  c++  java
  • 某大型银行深化系统之四:系统架构

    传送门 ☞ 轮子的专栏 ☞ 转载请注明 ☞ http://blog.csdn.net/leverage_1229

    1逻辑架构


            某大型银行深化系统的整体逻辑架构是依据平台的建设目标进行设计的,按照主流技术标准采用分层的技术架构,在Java EE、SOA等标准规范体系下,将最基本的以及共性的信息处理、流程调度、优先级、权限、路由等相关的功能作为平台运维的核心层,以“工厂化”、“流水线”的指导思想建立起数据录入、凭证登记、影像扫描、传输、验印、OCR识别、安全加密、监控等等可共享的业务服务模块,并最终仅仅通过业务流程定义、客户化模块定制等简单的工序,就可以实现业务服务模块的合理调度和灵活组装,支撑起各类前后台分离业务。同时,该架构能够支撑起海量内容的处理要求,并且能够满足以下特性:

    1.1松耦合(Loosely-Coupled)

            系统设计将应用程序定义为不同组件(或称为服务),通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以松耦合的整合方式,并采用一种统一和通用的方法进行交互。

    1.2适应性(Flexibility)

            由于需要整合的系统相当多并且复杂,系统设计必须能够方便地适应当前相关系统的不同情况以及未来变化。包括支撑技术、系统接口以及业务需求等方面的变化。同时也能通过流程描述的方式适应面临的需求变更。本系统应尽可能减少对原有系统的改变。

    1.3扩展性(Scalability)

            能够通过增加系统的资源,如CPU、内存、网络、和存储等显著地提升系统的吞吐率。包括深度扩展(在一台服务器中增加更多的资源)和广度扩展(使用多台服务器)。

    1.4可用性(Availability)

            系统通过冗余的方法避免单点故障。同时,系统应尽量减少计划内的停机。

    1.5安全性(Security)

            系统的安全性涉及多个方面。在这里我们主要关注安全管理。包括认证(Authentication)、授权(Authorization)、审计(Audit)和管理(Administration)等方面。

    1.6成熟性(Maturity)

            该架构中使用的产品都是经过了市场的考验,并且在全球范围内有广泛基于SOA思想的应用平台架构设计的用户。应该尽量避免采用一些小的厂商开发的、或者自己开发的中间件产品。

    1.7先进性

            设计方案中采用市场领先并业内成熟的技术,使系统具备国内同业领先的地位。便于系统的升级和今后的维护。

    1.8标准性和开放性

            在本系统建议书中建议的产品,从网络协议到操作系统,全部遵循通用的国际或行业标准。系统整体架构充分利用现有资源,统筹考虑,长远规划。
            综上所述,该平台架构的分层从基础技术模块到业务共享处理模块,都充分考虑了平台各个部分的共有特性和任意组装性,体现了平台的稳定性和灵活性;由里而外分层设计,能够更加合理地找到不同粒度下各个问题解决方案的落足点;以核心功能共性化、业务服务工厂化、各类应用流水线化来实现平台的扩充性和先进性,从而适应各类前后台分离的业务处理需求。

    2功能结构


            系统功能结构自底向上分为三个层次:核心层、业务(服务)层、应用层。整个系统的核心层主要实现了流程的调度和控制,通过状态机流程管理完成整个业务从系统输入到结果输出的作业流程控制,同时提供了SSO登录授权管理;业务层提供了在每个业务流程中的各类处理功能服务和对外记账等接口服务;应用层通过Mashup糅合不同的服务和界面模块,是用户和操作者的UI界面。
            核心层通过任务分配器负责流程实例的产生、工作项池管理,以组内互备、组件均衡的方式保证系统可靠性和稳定性,对外提供了在业务类型(岗位)、权限、待完成时间、重要级别、系统负载等不同维度可调整的任务队列;任务抓取器以RMI调用方式对外提供了接口调用管理;队列中使用了PID优先级调度器来实时控制流程的每一个环节。登录授权管理通过验证体系来实现整个系统SSO(单点登录)。
            服务层主要体现了SOA体系下的组件复用和业务复用机制,由核心层流程来调度,包括录入、验印、扫描、数据核对、OCR、影像切分等业务共享服务,同时把与CCBS、交换、汇划等记账及其他系统接口做成可由流程调度的自动服务,其中影像处理服务集合包含了扫描、切片、安全、压缩、传输、缓存和归档等服务。每种类型的服务都是闭包内聚组件,通过以数据库为存储介质,以UDDI规范描述服务接口定义。服务可独立运行在不同的环境下,保证了系统的横向扩展能力。
            应用层通过服务层的界面模块,能够通过简单的流程定义和优先级等参数配置,就可以构成票据提入提出、批量代收入等不同应用系统。
            系统包括了两类结构化和非结构化数据存储格式,结构化数据以关系型数据库存储了流程数据库、业务数据库、报表数据库三种,非结构化数据以ECM存储管理。其中,因为各自服务是闭包的,因此不同的业务系统可以通过增加业务数据库来扩容。

    3运作流程


            系统的运作流程中,用户登陆、各服务组件之间都是在单点登录(SSO)认证体系下,用户只需登录一次系统就可访问每个SSO认证信息共享下的服务。下面是用户从登陆到工作项获取的流程:
            首先用户登陆,经过SSO统一认证后,将会话Session共享认证信息在各服务中进行共享;登陆成功后,任务抓取器调用权限服务以确定该用户拥有的岗位;从岗位信息中获取权限列表后,确定抓取哪个模块的任务队列;取得任务后,从任务类型返回该任务的工作页面;用户开始对任务进行处理,同时事务处理开始;用户提交给应用服务后,应用服务处理后将结果写回流程数据库,同时将业务数据写回业务数据库,此时完成了一个任务的事务处理。
            在一人多个岗位情况下,任务抓取器在取得权限时会确定两个及以上岗位的权限,对拥有的权限去不同的任务队列中获取任务,优先级调度器针对任务的优先级进行设置,使任务按照一定的顺序展现给用户,再若拥有的是同模块的不同岗位时,任务抓取器则会在该模块下抓取各个岗位所能获取的任务,当然对在业务上需要互斥的任务则不予抓取。
            针对人工服务,还有对于不需要人工参与的自动服务,流程控制引擎会在流程数据库中提取需要自动服务处理的任务,并提交给相应模块的自动服务,自动服务完成后将结果写回流程数据库,同时将业务数据写回业务数据库。

  • 相关阅读:
    webpack性能优化-PWA(离线访问技术)
    node增删改查
    webpack性能优化
    webpack常见配置
    第一个node接口
    $refs的解释
    vue路由传参的三种基本方式
    结构体的定义
    gcc 的编译流程 和gdb的调试方法
    makefile高级用法
  • 原文地址:https://www.cnblogs.com/innosight/p/3271144.html
Copyright © 2011-2022 走看看