COE 代码分析文档库总览
本目录是一套围绕 COE 体系构建的代码分析文档库,当前包含 1 份总览文档、1 份代码规范文档,以及 10 份系统级解读文档。
其中,本文件承担母文档角色,用于统一说明文档边界、系统分工、全局架构、典型协作场景和阅读入口。
一、文档库定位
这套文档库的目标,不是逐仓堆砌说明,而是建立一套可以复用的全局认知框架,帮助后续分析始终围绕同一套系统边界、职责分层和调用语境展开。
文档库由以下三类文档组成:
| 类别 | 文档 | 作用 |
|---|---|---|
| 总览文档 | README.md | 统一说明 10 个系统的职责边界、关系分层、协作模式与阅读入口 |
| 规范文档 | coe代码规范.md | 总结四个代表性仓库抽象出的开发规范、分层方式和工程约束 |
| 系统解读文档 | bcdps.md、bcrc-tcs.md、bctsp.md、bcvs.md、bfon.md、bfps-ap.md、bglp.md、blms.md、bnbs.md、bcps.md | 分别说明单个系统的定位、结构、关键模块、主要链路和分析结论 |
建议阅读顺序如下:
- 先阅读本总览文档,建立全局心智模型。
- 再根据问题落到对应系统文档,理解单仓内部结构。
- 涉及代码落位、模块分层或新增功能设计时,再配合阅读 coe代码规范.md。
二、分析范围与整体规模
当前纳入文档库分析范围的系统共 10 个,合计约有:
17,150个 Java 文件2,054个 XML 文件9,499个 SQL 文件
从工程形态和业务分工看,这是一组典型的多仓协同系统,而不是单体式应用拆分后的简单并列工程。整体呈现出以下共性特征:
- 每个系统都具备独立的构建、部署、配置和数据库脚本体系。
- Java 8 与 Java 21 并存,系统代际差异明显。
- RMB 是系统间通信主干,REST 主要集中在运营、前台或测试场景。
- MyBatis 与大规模 SQL 仍是核心持久化手段。
- 批量、文件、调度、对账、日终类能力在多个系统中占比很高。
三、系统清单
| 系统 | 中文名 | 全局定位 | 架构层级 | Java 版本 | 详解文档 |
|---|---|---|---|---|---|
BCDPS | 征信数据处理服务 | 统一征信查询/响应网关,承接外部征信平台与模型平台 | 风控与征信域 | Java 8 | bcdps.md |
BCRC-TCS | 风险交易组合系统 | 风控编排中枢,负责反欺诈、审批状态流转与回调恢复 | 风控与征信域 | Java 21 | bcrc-tcs.md |
BCTSP | 大数据任务调度平台 | 调度、ETL、数据质量和血缘分析平台 | 调度与基础设施域 | Java 8 | bctsp.md |
BCVS | 信核系统 | 面核、电核、刷脸、答题及案件工单流转平台 | 核验与作业域 | Java 8 | bcvs.md |
BFON | 信贷产品运营平台 | 面向运营侧的贷款、客户、借据、交易和文件服务层 | 渠道与运营域 | Java 21 | bfon.md |
BFPS-AP | 文件处理系统应用平台 | 大文件拆分、合并与传输抽象层 | 文件基础设施域 | 未明确 | bfps-ap.md |
BGLP | 总账平台 | 分录生成、科目映射、余额管理与年终处理平台 | 会计核心域 | Java 8 | bglp.md |
BLMS | 名单管理系统 | 黑白名单、通用名单查询、上报和导入平台 | 风控与征信域 | Java 8 | blms.md |
BNBS | 贷款底座新业务系统 | 产品域编排层、CGI 网关、资金中台与批扣中台组合平台 | 产品编排域 | Java 21 | bnbs.md |
BCPS | 信用处理系统 | 信用账户、借据、入账、重组、额度和批扣核心平台 | 信用核心域 | Java 21 | bcps.md |
从职责分层看,这 10 个系统可以进一步归纳为五类:渠道与运营、产品编排、风控与核验、信用与会计核心、文件与调度基础设施。
四、全局架构视图
从全局角度看,COE 更像一张分层协作网络,而不是一条单系统串行链路。其核心结构可概括如下:
flowchart LR
BFON["BFON<br/>渠道与运营服务层"]
BNBS["BNBS<br/>产品编排与资金/批扣中台"]
RISK["BCRC-TCS / BCDPS / BCVS / BLMS<br/>风控、征信与核验域"]
BCPS["BCPS<br/>信用核心"]
BGLP["BGLP<br/>会计核心"]
INFRA["BFPS-AP / BCTSP<br/>文件与调度基础设施"]
BFON --> BNBS
BFON --> BCPS
BNBS --> RISK
BNBS --> BCPS
BCPS --> BGLP
INFRA -.支撑.-> BNBS
INFRA -.支撑.-> BCPS
INFRA -.支撑.-> BGLP
4.1 渠道与运营域
代表系统:
BFONBNBS中的CGI与部分渠道接入模块
这一层直接面向前台渠道或运营人员,负责接收操作请求、组织页面或渠道语义、转换对外报文,并把请求引导到产品编排层或核心处理层。
4.2 产品编排域
代表系统:
BNBS
这一层负责承接贷款产品前中段流程,包括建档、状态流转、流程编排、资金中台、批扣中台和部分批量处理能力。
它既不是简单的前置网关,也不是信用账户核心,而是连接前台请求、风控核验与后端信用核心的组合编排层。
4.3 风控、征信与核验域
代表系统:
BCRC-TCSBCDPSBCVSBLMS
这一层共同构成准入与风险闭环,职责划分如下:
BCRC-TCS负责风控流程编排和反欺诈决策协同。BCDPS负责征信请求、响应与外部征信平台适配。BCVS负责人工核验、面核、电核、刷脸、答题和案件工单流转。BLMS负责黑白名单与通用名单服务。
4.4 信用与会计核心域
代表系统:
BCPSBGLP
这两套系统共同构成后端核心:
BCPS是信用业务核心,负责账户、借据、计划、入账、还款、重组、额度与批扣。BGLP是会计处理核心,负责分录、科目、余额、日终与年终账务处理。
4.5 文件与调度基础设施域
代表系统:
BFPS-APBCTSP
这一层不直接承担贷款主流程,但深度参与批量、文件与离线能力:
BFPS-AP负责大文件拆分、合并和传输抽象。BCTSP负责调度、ETL、数据质量和血缘分析。
五、典型协作场景
以下内容是全局职责协作视图,用于理解系统组合方式,不应机械理解为每笔交易都严格按同一同步顺序穿透全部系统。
5.1 对客申请、审批与落账链路
一条典型的贷款申请到落账链路,通常会在以下系统间协作:
- 渠道请求首先进入
BFON或BNBS-CGI。 - 产品流程由
BNBS-ADM、BNBS-DCN等模块承担编排职责。 - 风控、征信、名单、人工核验分别由
BCRC-TCS、BCDPS、BLMS、BCVS参与。 - 信用账户、借据、还款与入账处理进入
BCPS。 - 会计分录和总账处理进入
BGLP。
5.2 运营查询与贷后处理链路
运营侧很多场景并不经过完整的产品编排主链,而是按查询目标直达后端系统:
BFON接收运营查询或处理请求。- 借据、计划、交易、扣款结果等核心数据主要来自
BCPS。 - 产品域附加信息、前置流程信息或渠道信息则可能来自
BNBS。
这也是为什么 BFON 在全局上同时依赖 BNBS 与 BCPS。
5.3 批量、文件与日终链路
批量和文件场景的协作方式与联机主链明显不同:
BCTSP负责调度或数据任务编排。BFPS-AP提供文件拆分、合并与传输能力。BNBS、BCPS、BFON按各自领域执行批扣、通知、对账或批量作业。BGLP在账务汇总、日终或年终场景参与最终落账与归集。
六、关键系统边界
这部分用于统一最容易混淆的系统边界判断,避免后续分析把不同层次的系统误读为同类职责。
6.1 BFON、BNBS、BCPS 不是同一层系统
BFON更接近运营服务层与前台接口层。BNBS更接近产品流程编排层与资金/批扣中台。BCPS更接近信用账户与借据核心。
三者都与贷款业务相关,但关注点完全不同:BFON 组织运营能力,BNBS 组织产品流程,BCPS 组织信用核心处理。
6.2 BCPS 与 BGLP 的边界是“业务核心”与“会计核心”
BCPS负责信用业务事实与业务处理结果。BGLP负责会计分录、科目映射与账务余额结果。
因此,BCPS 不应被等同于总账系统,BGLP 也不应被等同于贷款业务主流程系统。
6.3 风控与核验域四个系统分工明确
BCRC-TCS是风控编排与反欺诈中枢。BCDPS是征信数据网关。BCVS是人工核验与工单作业平台。BLMS是名单能力平台。
它们共同服务于准入和风险闭环,但不是重复建设,也不应被合并理解为单一“风控系统”。
6.4 BFPS-AP 与 BCTSP 是支撑平台,不是交易核心
BFPS-AP解决的是文件基础设施问题。BCTSP解决的是调度、数据处理与离线治理问题。
两者都非常重要,但在全局图中更适合作为基础设施层,而不是实时业务主链的核心节点。
七、技术与工程特征
从代码和工程结构看,COE 体系具有非常鲜明的工程特征:
| 主题 | 结论 |
|---|---|
| 通信主干 | RMB 是主要系统间通信方式,REST 主要集中在运营、前台和测试场景 |
| 语言代际 | Java 8 与 Java 21 并存,新老系统混合演进 |
| 持久化风格 | MyBatis、Mapper XML 与大规模 SQL 是主流模式 |
| 部署模式 | 存在独立服务、联合部署、批量子系统、union-app、core-* 等多种部署形态 |
| 数据库模式 | 存在单业务库、产品线分库、运行库与核心库分层等多种组织方式 |
| 批量特征 | 批扣、对账、通知、文件、日终、年终类能力在多个仓库中都占有重要位置 |
这些特征意味着:后续做代码分析、表关系梳理、跨系统调用追踪时,必须先判断当前问题属于联机主链、批量链路、产品编排、信用核心还是基础设施场景。
八、阅读导航
面对不同问题,建议优先从以下文档组合开始:
| 关注问题 | 优先阅读 | 配合阅读 |
|---|---|---|
| 想建立全局认知 | README.md | coe代码规范.md |
| 想看运营接口、贷后查询、文件上传 | bfon.md | bnbs.md、bcps.md |
| 想看贷款产品主流程、状态机和批扣编排 | bnbs.md | bcrc-tcs.md、bcps.md |
| 想看风控、征信、名单、核验协作 | bcrc-tcs.md、bcdps.md | bcvs.md、blms.md |
| 想看借据、还款、入账、额度、重组核心 | bcps.md | bglp.md |
| 想看总账、分录、余额与年终处理 | bglp.md | bcps.md |
| 想看批量、文件、调度与离线能力 | bctsp.md、bfps-ap.md | bnbs.md、bcps.md |
| 想判断代码落位与模块分层是否合理 | coe代码规范.md | 对应系统详解文档 |
九、总览结论
站在全局视角看,这套 COE 体系最稳妥的理解方式可以归纳为三点:
- 它不是单一核心系统,而是一组按职责分层协作的多仓系统网络。
- 其主骨架由“渠道与运营层、产品编排层、风控与核验层、信用核心层、会计核心层、文件与调度基础设施层”共同构成。
- 这套文档库应按“总览建立全局认知、单仓理解局部结构、规范文档统一工程语言”的方式配合使用。
如果把 10 个系统压缩成一句话:
BFON负责运营与前台服务语义,BNBS负责产品流程编排与资金/批扣中台,BCRC-TCS / BCDPS / BCVS / BLMS负责准入与风险闭环,BCPS负责信用核心处理,BGLP负责会计核心,BFPS-AP / BCTSP负责文件与调度基础设施。