使用 MongoDB 剖析开放银行:技术挑战和解决方案
开放银行(或开放金融)在银行业掀起了一股颠覆性浪潮,它迫使金融机构(银行、保险公司、金融科技公司、企业甚至政府机构)迎接一个透明、协作和创新的新时代。这种模式转变要求银行与第三方提供商(TPP)公开共享客户数据,通过结合“同类最佳”的产品和服务,提升客户体验,促进创新金融技术解决方案的发展。
截至 2020 年,全球有 2470 万人使用开放银行服务,预计到 2024 年这一数字将达到 1.322 亿。这种上升趋势推动了竞争,刺激了创新,并促进了传统银行与灵活的金融科技公司之间的合作。
在这一变革格局中,**MongoDB 作为领先的开发者数据平台,通过提供安全、可扩展且灵活的基础架构来管理和保护共享的客户数据,在支持开放银行业务方面发挥着至关重要的角色。**通过利用 MongoDB 技术的力量,金融机构可以降低成本,改善客户体验,并通过严格的监管合规性来降低与广泛共享客户数据相关的潜在风险。
图 1:开放银行架构示例
开放银行/金融的本质是利用通用数据交换协议与第三方共享金融数据和服务。本文我们将从数据和数据服务的角度深入探讨开放银行的技术挑战和解决方案,并探讨 MongoDB 如何帮助金融机构克服这些障碍并释放这个开放生态系统的全部潜力。
1 动态环境和标准
随着开放银行标准的不断发展,金融机构必须保持适应性,以满足不断变化的法规和行业需求。传统的关系型数据库(Relational database)往往难以跟上开放银行业务的动态要求,原因在于其僵化的模式难以随着时间的推移而改变和管理。在没有标准化开放银行框架的国家,银行和第三方提供商面临着开发多个版本的 API 来与不同机构集成的挑战,这会造成复杂性并阻碍互操作性。幸运的是,开放银行标准或指南(如欧洲、新加坡、印度尼西亚、香港、澳大利亚等)都普遍要求或建议开放 API 为 RESTful,并支持 JSON 数据格式,这为通用数据交换奠定了基础。
MongoDB 通过提供灵活的开发者数据平台来应对这些挑战,该平台本身支持 JSON 数据格式、简化数据建模并为开发者提供灵活的模式更改。借助 MongoDB Data API 等功能,开发者可以通过低代码方式轻松公开数据,从而减少开发和维护工作。稳定的 API 功能可确保数据库升级期间的兼容性,防止代码破坏并提供无缝过渡。此外,MongoDB 还提供提高生产力的功能,例如全文搜索、数据可视化、数据联合、移动数据库同步和其他应用服务,使开发者能够加快产品上市时间。借助 MongoDB 的功能,金融机构和第三方提供商可以更有效地驾驭不断变化的开放银行格局、促进协作并为客户提供创新解决方案。
Natwest 就是一个利用 MongoDB 的原生 JSON 数据管理和灵活性的客户示例。Natwest 是英国一家主要的零售和商业银行,总部位于英国伦敦。随着开放银行业务的增长,该银行在几年内每月的 API 调用次数从零增加到 9 亿次,预计未来几年还将增长 10 倍。
Natwest 的“API 银行”技术负责人 Jonathan Haggarty 在题为“使用 API 数据驱动客户价值”的演讲中分享,Natwest不断发展的API 生态系统使其能够将大量 JSON 数据推送到 MongoDB 中,从简单的信息到相当复杂的信息都很容易,并且还可以更轻松地通过数据屏蔽来混淆用户详细信息以保护客户隐私。
Natwest 能够通过其 API 生态系统为合作伙伴提供客户数据洞察,例如“客户在电子商务领域的位置”、“零售商推出折扣的最佳时间”以及“最有价值客户”的洞察等等。
2 性能
在开放银行的动态格局中,满足对性能、可扩展性和可用性的不可预测的需求至关重要。应用程序的效率和整体客户体验在很大程度上依赖于 API 的响应能力。然而,如果第三方供应商的业务和技术要求不公开,建立开放银行平台就会变得错综复杂。如果不仔细管理,可能会导致不可预见的性能问题并增加成本。开放银行要求 API 在各种工作负载下都具有高性能。OBIE 建议所有付款邀请(文件付款除外)和帐户信息 API 的每个端点响应的平均 TTLB(到最后一个字节的时间)为 750 毫秒。遵守某些司法管辖区的监管服务级别协议(SLA)进一步增加了复杂性。传统架构和数据库通常很难满足这些苛刻的标准,需要进行大量更改才能确保可扩展性和最佳性能。
这就是 MongoDB 发挥作用的地方。MongoDB 专为通过其 WiredTiger 存储引擎及其压缩功能提供卓越的性能而构建。此外,MongoDB Atlas 根据其智能索引和架构建议、自动数据分层以及用于分析的工作负载隔离来提高性能。
著名的金融服务应用程序提供商 Temenos 通过利用 MongoDB Atlas 实现了卓越的交易量处理性能和效率,证明了其能力。他们最近使用 MongoDB Atlas 和 Microsoft Azure 运行了基准测试,并以破纪录的每秒 150,000 笔交易成功处理了惊人的 2 亿笔嵌入式金融贷款和 1 亿个零售账户。这展示了 MongoDB 的强大功能和可扩展性以及无与伦比的性能,使金融机构能够有效应对开放银行带来的挑战。MongoDB 确保出色的性能、可扩展性和可用性,以满足行业不断变化的需求。
3 可扩展性
构建一个为 TPP 提供服务的平台(TPP 可能不会披露其业务用途和技术/性能要求),如果托管不周,可能会带来不可预测的性能和成本问题。例如,新加坡的一家银行面临一个问题,他们的开放 API 每周三都会遇到峰值负载和崩溃。经过调查,他们发现其中一个 TPP 每周三都会开展促销活动,导致 API 调用激增,导致该银行的基础设施不堪重负。除了满足特定已知交易量的性能要求之外,能够在不可预测的工作负载下执行的可扩展解决方案也至关重要。
MongoDB 灵活的架构和可扩展性功能有效解决了这些问题。凭借其基于分布式文档的数据模型,MongoDB 允许垂直和水平无缝扩展。通过利用分片,数据可以分布在多个节点上,确保资源的高效利用,并使系统能够在不影响性能的情况下处理大量交易。MongoDB 的自动分片功能可随着工作负载的增长进行动态扩展,为金融机构提供适应不断变化的需求的灵活性,并确保平稳且可扩展的开放银行基础设施。
4 可用性
在开放银行领域,可用性成为一项关键挑战。随着第三方提供商 (TPP) 对银行服务的依赖程度越来越高,确保持续可用性变得更加复杂。以前,银行可以在非高峰时段关闭某些服务以进行维护。然而,由于 TPP 提供 24x7 全天候体验,任何停机时间都是不可接受的。这给银行带来了更大的压力,要求他们保持 Open API 服务的持续可用性,即使在计划的维护窗口或不可预见的事件期间也是如此。
MongoDB Atlas 是完全托管的全球云数据库服务,可有效解决这些可用性挑战。MongoDB Atlas 凭借其多节点集群和多云 DBaaS 功能,可确保高可用性和容错能力。它提供了在多个领先云提供商上运行的灵活性,使银行能够最大限度降低集中风险,并通过跨不同云平台的分布式集群实现更高的可用性。MongoDB Atlas 提供的强大复制和故障转移机制可保证服务不间断,并使金融机构能够为其客户和 TPP 提供可靠且始终可用的开放银行 API。
5 安全和隐私
数据安全和同意管理是参与开放银行业务的银行最关心的问题。将身份验证和授权机制暴露给第三方提供商会引发安全问题,并带来数据保护方面的复杂技术问题。银行需要精细的访问控制和加密机制来保护共享数据,包括细粒度地管理数据共享同意。此外,银行必须了解《通用数据保护条例》(GDPR) 等数据隐私法规的情况,这些法律提出了与传统银行法规不同的严格要求。
MongoDB 提供一系列解决方案,可有效解决这些安全和隐私挑战。
可查询加密(Queryable Encryption) 提供了一种在 MongoDB 中管理加密数据的机制,从而确保即使与第三方提供商共享敏感信息也能保持安全。
MongoDB 的全面加密功能涵盖静态数据和传输中数据,在数据的整个生命周期中保护数据。
MongoDB 的灵活架构允许金融机构捕获管理数据共享同意的不同数据要求,并将来自不同国家的用户同意统一到单一数据存储中,从而简化对复杂数据隐私法规的遵守。
此外,MongoDB 的地理分片功能可确保相关数据和同意信息保留在最近的云数据中心,同时为访问数据提供最佳响应时间,从而确保遵守数据驻留法规。
为了进一步增强数据隐私,MongoDB 提供了字段级加密技术,支持字段级别的对称加密,以保护敏感数据(例如个人身份信息),即使是与 TPP 共享时也是如此。字段的随机加密增加了一层安全性,并可对加密数据进行查询操作。MongoDB 的可查询加密(Queryable Encryption)技术进一步增强了安全性并防御密码分析,确保开放银行生态系统中的客户数据受到保护和保密。
网络研讨会|MongoDB Atlas安全性和可查询加密
6 活动监控
由于银行在开放银行生态系统中提供了大量 API,活动监控和故障排除已成为维护强大且安全的基础设施的关键方面。MongoDB 通过其监控工具和审核功能简化了活动监控。管理员和用户可以精细地跟踪系统活动、监控数据库系统和应用程序事件。
MongoDB Atlas 具有管理 API,可用于以编程方式管理 Atlas 服务。例如,可以使用 Atlas Administration API 来创建数据库部署、向这些部署添加用户、监控这些部署等。这些 API 可帮助实现 CI/CD 管道的自动化,并监控数据平台上的活动,使开发者和管理员能够从繁琐的工作中解放出来,专注于创造更多业务价值。性能监控工具(包括性能优化顾问)有助于衡量和优化系统性能,确保 API 提供卓越的用户体验。
图 2:MongoDB Atlas 上的活动监控
MongoDB Atlas Charts 是 MongoDB Atlas 的一项集成功能,可提供分析和可视化功能。金融机构可使用 MongoDB Atlas Charts 创建商业智能仪表盘。这样就不需要与传统商业智能工具相关的昂贵许可,随着越来越多的 TPP 使用 API,成本效益也会随之提高。利用 MongoDB Atlas Charts,金融机构可以向 TPP 提供全面的业务遥测数据,例如保险报价单数量、保单交易、API 调用量和性能指标。这些见解使金融机构能够做出数据驱动的决策,提高运营效率,并优化开放银行生态系统中的客户体验。
图 3:Atlas Charts 样本仪表盘
7 实时性
开放银行业务给金融机构带来了新的挑战,因为它们努力在 TPP 不可预测的工作负载中提供服务并扩大规模。虽然静态内容带来的难度较小,但需要实时更新或连续流的 API(例如动态账户余额或经 ESG 调整的信用评分)需要近乎实时的实时数据交付功能。
为了使应用程序能够立即对发生的实时更改或更改做出反应,组织可以利用基于其聚合框架的 MongoDB Change Streams 对单个集合、数据库甚至整个部署中的数据更改做出反应。此功能进一步增强了 MongoDB 的实时数据和事件处理和分析能力。
MongoDB 提供了多种机制来支持数据流,包括用于事件驱动架构的 Kafka Connector 和用于使用 Spark 进行流处理的 Spark Connector。
这些解决方案使金融机构能够有效满足其开放银行合作伙伴的实时数据需求,实现无缝集成和实时数据交付,从而增强客户体验。
结论
MongoDB 的技术能力使其成为金融机构踏上开放银行之旅的关键推动力。从管理动态环境和适应不可预测的工作负载,到确保可扩展性、可用性、安全性和隐私,MongoDB 提供了一套全面的工具和功能来有效应对开放银行业务的挑战。以 MongoDB 作为底层基础设施,金融机构可以自信地驾驭不断发展的开放银行格局,提供创新的解决方案,推动银行业的未来。拥抱 MongoDB 使金融机构能够释放开放银行的全部潜力,并在协作和数字化转型的时代提供卓越的客户体验。
MongoDB Atlas
MongoDB Atlas 是 MongoDB 公司提供的 MongoDB 云服务,由 MongoDB 数据库的开发团队构建和运维,可以在亚马逊云科技、Microsoft Azure、Google Cloud Platform 云平台上轻松部署、运营和扩展。MongoDB Atlas 内建了 MongoDB 安全和运维最佳实践,可自动完成基础设施的部署、数据库的构建、高可用部署、数据的全球分发、备份等即费时又需要大量经验运维工作。让您通过简单的界面和 API 就可以完成这些工作,由此您可以将更多宝贵的时间花在构建您的应用上。
相关文章:

使用 MongoDB 剖析开放银行:技术挑战和解决方案
开放银行(或开放金融)在银行业掀起了一股颠覆性浪潮,它迫使金融机构(银行、保险公司、金融科技公司、企业甚至政府机构)迎接一个透明、协作和创新的新时代。这种模式转变要求银行与第三方提供商(TPP&#x…...

鸿蒙 HarmonyOS NEXT星河版APP应用开发-阶段二
一、鸿蒙应用界面开发 弹性布局-Flex 语法 /* 弹性容器组件 Flex() 位置: Flex默认主轴水平往右,交叉轴垂直向下(类似Row) 语法: Flex(参数对象){子组件1,子组件2,子组件3 } 属性方法: direction…...

26.4 Django 视图层
1. 视图函数 视图函数是Django框架中用于处理Web请求并返回Web响应的重要组件. 以下是对Django视图函数的详细解释: * 1. 视图函数与URL的映射.为了让Django能够知道哪个URL对应哪个视图函数, 需要在应用的urls.py文件中定义URL模式.使用path或re_path函数来定义URL模式, 并将…...

Hbase介绍
Hbase介绍 HBase 是一个开源的、分布式的、面向列的 NoSQL 数据库系统,它建立在 Apache Hadoop 之上,提供了高可靠性、高性能、可伸缩性和高可用性的存储解决方案。让我来简单介绍一下 HBase 的架构。 1. 架构概述: HBase 的架构设计基于 Go…...

rollup学习笔记
一直使用的webpack,最近突然想了解下rollup,就花点时间学习下. 一,什么是rollup? rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码,比如我们的es6模块化代码,它就可以进行tree shaking,将无用代码进行清除,打包出精简可运行的代码包. 业…...

多商户零售外卖超市外卖商品系统源码
构建你的数字化零售王国 一、引言:数字化零售的崛起 在数字化浪潮的推动下,零售业务正经历着前所未有的变革。多商户零售外卖超市商品系统源码应运而生,为商户们提供了一个全新的数字化零售解决方案。通过该系统源码,商户们可以…...

HTML 教程
HTML 教程 HTML(HyperText Markup Language)是一种用于创建网页的标准标记语言。它描述了一个网站的结构骨架,使得浏览器能够展示具有特定格式的文本、链接、图片和其他内容。本教程将带你深入了解HTML的基础知识,包括其语法、常用标签以及如何构建一个基本的网页结构。 …...
【仿真建模-解析几何】求有向线段上距指定点最近的坐标
Author:赵志乾 Date:2024-06-25 Declaration:All Right Reserved!!! 问题描述: 有向线段起点A为(x1,y1),终点B为(x2,y2&a…...

Linux系统中常用的基本命令
1. 文件与目录管理 ls: 列出目录内容。cd: 切换当前工作目录。pwd: 显示当前工作目录的路径。mkdir: 创建一个新目录。rmdir: 删除空目录。cp: 复制文件或目录。mv: 移动或重命名文件或目录。rm: 删除文件或目录。touch: 创建一个空文件或更新文件时间戳。 2. 文本内容查看 …...

数据结构与算法:回溯算法约束条件:剪枝详解、示例(C#、C++)与回溯典型例题详解
文章目录 一、约束条件二、剪枝三、典型例题四、常用术语五、示例N 皇后问题 C# 示例N 皇后问题 C 示例 六、常见用用回溯算法解决的问题汇总组合问题:图论问题:棋盘游戏问题:优化问题:调度问题:其他问题: …...

利用sortablejs实现拖拽排序
import Sortable from "sortablejs";created() {//禁止火狐拖拽进行搜索document.body.ondrop function(event){event.preventDefault();event.stopPropagation();}}// 打开对话框的时候调用下openCustomDialog(){this.rowDrop()}// 行拖拽 rowDrop() {this.$nextTi…...

超越AnimateAnyone, 华中科大中科大阿里提出Unimate,可以根据单张图片和姿势指导生成视频。
阿里新发布的UniAnimate,与 AnimateAnyone 非常相似,它可以根据单张图片和姿势指导生成视频。项目核心技术是统一视频扩散模型,通过将参考图像和估计视频内容嵌入到共享特征空间,实现外观和动作的同步。 相关链接 项目࿱…...

【MDK5问题】:MDK5无法跳转,并且提示:no browse information available in xxxxx
1、问题: MDK5原来的函数调用可以直接跳转到原函数,但是出现不能跳转原函数的情况,且提示:no browse information available in xxxxx 的情况; 2、解决: 如下图所示:在魔术棒(pro…...

OS中断机制-外部中断触发
中断函数都定义在中断向量表中,外部中断通过中断跳转指令触发中断向量表中的中断服务函数,中断指令可以理解为由某个中断寄存器的状态切换触发的汇编指令,这个汇编指令就是中断跳转指令外部中断通过在初始化的时候使能对应的中断服务函数如何判断外部中断被触发的条件根据Da…...

LabVIEW如何进行电磁兼容性测试
电磁兼容性(EMC)测试是确保电子设备在其工作环境中能够正常运行且不会对其他设备产生有害干扰的关键步骤。LabVIEW作为一种强大的系统设计和开发工具,可以有效地用于电磁兼容性测试。以下是如何使用LabVIEW进行电磁兼容性测试的详细步骤和方法…...

Spring底层架构核心概念总结
Spring底层架构核心概念总结 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! Spring框架是Java企业级应用开发中最受欢迎的框架之一。它以其强大的依赖注入&am…...

hex、bin、elf、s19等文件格式介绍以及格式转换
文章目录 前言一、bin文件二、hex文件数据记录格式扩展线性地址记录(HEX386)格式扩展段地址记录(HEX86)文件结束(EOF)记录三、elf文件四、S19文件五、不同格式之间转换将bin文件转换成hex文件将hex文件转换成bin文件将bin文件转换成s19文件前言 编译器或汇编器将程序的源代码(…...

oracle 窗口函数使用
Oracle 数据库中的窗口函数(也称为分析函数或OLAP函数)允许您对一组相关的行执行计算,而不是只针对单行。这些函数在数据分析中特别有用,因为它们允许您执行诸如计算移动平均值、累积总和、百分比排名等操作。 以下是一些常用的 …...

【Git】git常用命令
初始化配置 设置用户名和邮箱,来标识身份,方便日后上传GitHub git config --global user.name "xxx" git config --global user.email "xxx"git config --global --list # 存用户名和密码 git config --global --list # 查看配置新…...

【Proteus仿真】【Arduino单片机】寻迹避障蓝牙遥控小车
文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使LCD1602液晶,L298电机,直流电机,HC05/06蓝牙模块,HCSR04超声波,红外寻迹模块等。 主…...

嵌入式实验---实验八 ADC电压采集实验
一、实验目的 1、掌握STM32F103ADC电压采集程序设计流程; 2、熟悉STM32固件库的基本使用。 二、实验原理 1、使用STM32F103R6采集可变电阻上的电压信号,并通过计算把当前ADC转换值和电压值显示在LCD1602液晶屏上; 2、对照电压表读数&…...

PHP框架详解:Symfony框架的深度剖析
PHP框架详解:Symfony框架的深度剖析 摘要: Symfony是当前最受欢迎的PHP框架之一,它以其强大的功能和灵活性而闻名。本文将详细介绍Symfony框架的核心概念、架构、组件以及其实践应用,帮助读者深入理解这一框架的优势和使用场景。…...

Linux `screen` 命令详解与使用指南
Linux screen 命令详解与使用指南 在Linux系统中,screen 是一个非常有用的工具,它允许用户在单个终端会话中运行多个进程,并能在会话之间切换。screen 特别适用于远程登录(如通过SSH)时,确保即使网络连接断…...

CSRF绕过
目录 1. 检查referer referer绕过 2. 检查origin 3. Cookie检查 SameSite 持久性验证 4. Token检查 检测token编码类型,尝试篡改token 绕过token检测 在页面上尝试修改密码, 观察请求的格式. 绕过思路 1. 编写一个js脚本完成以下的任务: 2. 引诱登录的用户触发这…...

如何处理Java中的BufferOverflowException异常?
如何处理Java中的BufferOverflowException异常? 大家好,我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编,也是冬天不穿秋裤,天冷也要风度的程序猿! 在Java编程中,BufferOverflowExceptio…...

XMLTomcatHttp协议
XML&Tomcat&Http协议 目录 XML&Tomcat&Http协议 1. xml解析(了解) 1.1 配置文件 1.1.1 配置文件的作用 1.1.2 常见的配置文件类型 1.2 properties文件 1.2.1 文件示例 1.2.2 语法规范 1.3 XML文件 1.3.1 文件示例 1.3.2 概念介绍 1.3.3 XML的基本语…...

Lua优化技巧
常见的Lua优化小技巧 Lua常见优化点:1. 尽量使用局部变量2. table的相关减少对表的访问for循环预分配表空间元表 3. string的相关4. 避免运行时加载编译5. 尽量避免频繁创建临时对象闭包表 Lua常见优化点: 1. 尽量使用局部变量 尽量将变量局部化&#x…...

探索CSS中的cursor鼠标属性
在网页设计中,细节决定成败。CSS的cursor属性是这些细节中的关键一环,它不仅影响着网页的美观,更关乎用户体验。今天,我们就来深入了解一下cursor属性,看看如何通过它来增强网页的交互性。 cursor属性概览 cursor属性…...

图象去噪1-使用中值滤波与均值滤波
1、中值滤波 使用中值滤波去除图像的异常像素点,使用cv2.cv2.medianBlur(img, 3)表示再图像在中值滤波窗口3*3的范围内,从下到大排序,将当前值替换为排序中值(如下图所示)将56替换为(56,66,90,…...

微软Edge浏览器全解析
微软Edge浏览器是一款由微软开发的现代网页浏览器,旨在为用户提供高效、安全和可定制的浏览体验。 这款浏览器最初于2015年发布,作为Internet Explorer(IE)的继任者,并随着Windows 10操作系统一同亮相。然而࿰…...