技术“开源”对于金融业软件发展的影响

2023-10-13 07:20

本文主要是介绍技术“开源”对于金融业软件发展的影响,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

2019 年 11 月份 CNBC 的一则新闻,报道了华尔街巨头高盛要把自己投入了14年研发的一个技术平台Alloy以及专门为这个平台所设计的语言,免费、开源共享给华尔街的其他机构。去年更早的时候,高盛也声称把自己的一些交易与风控相关代码贡献到 GitHub(竞争对手摩根大通则已经把一个与区块链相关的技术 quorum 开源到GitHub)。

不夸张的说,开源软件改变世界 – 不管在一个 App 里面还是在一套交易系统中,都“借力”着不计其数的开源代码库、开源工具。

现在谁敢说自己的软件是一行一行代码从零开始构建?正如高盛的技术负责人 Don Duet 所说,从技术角度看“开源渗透到我们所做的一切事情中”。

金融机构IT研发的痛点

采用第三方的封闭技术,你可能得纠结这几个问题:

  • 传统大厂的技术非常封闭,他们没有开放接口(那是生财工具– 要一个收一个的钱);
  • 他们的古老技术架构也无法承载插件化的订制;
  • 他们不响应你的个性化诉求,用起来很不爽;
  • 小公司的技术你不放心,怕他们改变产品方向甚至终止产品线,或者可能被收购合并甚至关门大吉。总之,基于闭源的技术你害怕被“绑架”。

自研,你也可能纠结这几个问题:

  • 一些与业务非直接相关的底层技术,自己的团队不是缺乏专业性去驾驭就是无法专心专注去做好;
  • 一旦展开,等于给自己挖坑,还得经常面对成本预算方面的质疑;
  • 采用开源技术,又往往没有符合行业特性、针对金融场景直接可用的选择;
  • 学习掌握进行改造的成本高(一旦自行改造,很可能又掉进长期维护的坑)。

除非你是高盛,在一些业务场景需要用到一些基础技术而市场上却没有选择的情况下,自行研发,然后共享到开源社区让同业甚至业外技术人员共同维护与利用,避免了“胎死腹中”的命运。

采购源代码并没有什么大用

首先,“买断源代码”这种做法真的非常、非常过时。

源代码不是固化的、“买断”之后就不变的,因为厂商可能在未来不断升级、不断修复缺陷、不断优化,你买一个“快照”一样的东西,基于它东改西改,很快和原厂的版本分离,厂商无法替你维护,你也享受不到他们在服务行业过程中的优化重构、升级换代。

其次,“买代码”这种事情,相当部分花的是冤枉钱,其实自己并没有资源或者能力去维护,也就是买个“保险”吧。

就算真的要源代码,也不是“买断”,而是买服务 – 例如获得厂商部分公共代码库的访问权,在服务合同时间范围内随时可以抽取最新的代码并可以通过厂商提供的工具、指引能自己进行构建,并且万一自己修改后还可以提交回开发商的代码库供其合并,一句话,就是用源代码版本管理工具及最佳实践管理好行业级、跨机构的互助。

当然,一些开发商也没有这种源代码交付与管理的能力。

你要“买断”?打一个压缩包,作为电邮附件给你发过去,或者找个网盘临时共享一下,或者用 QQ 发送一下…

之后这份代码就和主库彻底告别,再也无法同步。

改变软件的研发、销售与交付方式

越来越多的软件公司,商业模式架设在开源生态之上。如果以向金融机构提供基础性软件技术的企业,是适合这么做的。

怎样算“基础性软件技术”?就是具有行业通用性和针对性、满足金融业务应用需求共性、从众多金融机构的商业场景中总结抽象出来的基础技术层,它往往首先面向金融机构的 IT 研发人员,供其进行订制和二次开发以支撑更上层的业务应用。

以我们公司当前的小程序技术为例,它可私有化部署、配备安全沙箱、客户端 SDK 化可随意嵌入到任何银行和券商的 App 中,它本身还是一个开发平台。这就是针对行业需求量身定做的基础技术。

基础技术适合开源,是一种新的软件生产协作模式,它有以下的商业竞争优势:

  • 通过开源社区,吸引和利用优秀人才。最具前景、最有用的开源项目往往能吸引到最顶级工程师。这其实是一种“杠杆”的利用,也能促进开源产品在社区的快速迭代
  • 有助于获客。如上文所述,很多金融机构采购系统的时候也想获得源代码,这背后的逻辑是担心厂商封闭,让自己不能订制;以及对被某个技术“绑架”的防范 – 万一它忽然终止存在又无法被轻易替换,而分分钟和钱挂钩的业务系统却构建在它的基础之上,这个风险太大。处于敏感位置的基础技术,如即时通讯工具,其源代码开放可审计,也让一些机构对信息安全、数据隐私保护方面放心。开源在现在已经成为一种信心保障
  • 有助于建立商业生态。通过知识产权的开放,让客户以较低门槛采纳,逐渐形成市场规模,并形成社区、建立上下游的合作伙伴,有机会成为 de facto standard (事实上的标准)。Kafka 就是一个好例子,不知不觉中很多金融机构就已经采用了它,技术人员甚至以它的技术概念作为词汇表描述问题与方案
  • 构建在开源之上的软件公司,研发是社区化的协作,不仅有自己的研发人员主导,也有客户开发人员的参与(例如提报缺陷甚至直接修复和提交代码合并),甚至有认同这个技术的互联网技术粉丝的主动加盟。

    销售方式也发生改变,机构更多是从网上获得关于产品的信息、口碑、案例,随时通过社区或者其他社交频道与软件公司发起交流。销售人员可以在线陪伴运行 demo、双向互动。

    而软件的体验门槛非常低,例如我们就采用双 license 制,社区版免费并采用非商业化许可证,而企业版则采用 Copyleft(“著佐权”,见下一篇文章的介绍)许可证或者商业软件许可证。社区版能够让金融机构以最低门槛实现 POC 的原型验证甚至直接使用于商业用途。

    交付方面,源代码我们通过开发者社区交付,部分代码对互联网开放,任何人直接从 GitHub 可以获得;部分对机构客户开放,通过开发者社区可以访问源代码库,拖取被授权获得的分支。

    而软件系统的成品,全部都是基于云原生的技术架构、100% 容器化,用户通过镜像仓库拉取镜像进行自动化部署。这好像是一家汽车制造商的零件仓库,组装工人(IT)一按按钮(跑一个脚本),即把相关的车门、车胎、座椅、方向盘、发动机、外壳等等下载并自动组装。


Finclip小程序开放平台,为企业提供“小程序运行能力”,它作为小程序运行的环境,为小程序提供安全沙箱、代码解析和渲染等服务。 为了让更多 APP 轻松拥有“小程序运行能力”,凡泰极客将“小程序运行时”实现成一个可私有化部署的 iOS 和 Android 版本的 SDK,可以被第三方集成。也就是说,任何 APP 通过嵌入FinClip小程序SDK即可瞬间获得运行小程序的能力。

仅需 5 行代码,即可让你的 APP 快速启动和运行小程序,而且小程序运行时 SDK,Android 端 1.3 兆,iOS端 1.8 兆,轻量无感,同时SDK采用多线程运行方式,极端情况下也不影响宿主 APP 的安全稳定运行。 快来体验吧~现在注册,即可免费上架99个小程序”

 

 

这篇关于技术“开源”对于金融业软件发展的影响的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/201622

相关文章

springboot自定义注解RateLimiter限流注解技术文档详解

《springboot自定义注解RateLimiter限流注解技术文档详解》文章介绍了限流技术的概念、作用及实现方式,通过SpringAOP拦截方法、缓存存储计数器,结合注解、枚举、异常类等核心组件,... 目录什么是限流系统架构核心组件详解1. 限流注解 (@RateLimiter)2. 限流类型枚举 (

Python实现PDF按页分割的技术指南

《Python实现PDF按页分割的技术指南》PDF文件处理是日常工作中的常见需求,特别是当我们需要将大型PDF文档拆分为多个部分时,下面我们就来看看如何使用Python创建一个灵活的PDF分割工具吧... 目录需求分析技术方案工具选择安装依赖完整代码实现使用说明基本用法示例命令输出示例技术亮点实际应用场景扩

Qt如何实现文本编辑器光标高亮技术

《Qt如何实现文本编辑器光标高亮技术》这篇文章主要为大家详细介绍了Qt如何实现文本编辑器光标高亮技术,文中的示例代码讲解详细,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录实现代码函数作用概述代码详解 + 注释使用 QTextEdit 的高亮技术(重点)总结用到的关键技术点应用场景举例示例优化建议

Qt 设置软件版本信息的实现

《Qt设置软件版本信息的实现》本文介绍了Qt项目中设置版本信息的三种常用方法,包括.pro文件和version.rc配置、CMakeLists.txt与version.h.in结合,具有一定的参考... 目录在运行程序期间设置版本信息可以参考VS在 QT 中设置软件版本信息的几种方法方法一:通过 .pro

安装centos8设置基础软件仓库时出错的解决方案

《安装centos8设置基础软件仓库时出错的解决方案》:本文主要介绍安装centos8设置基础软件仓库时出错的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录安装Centos8设置基础软件仓库时出错版本 8版本 8.2.200android4版本 javas

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

Web技术与Nginx网站环境部署教程

《Web技术与Nginx网站环境部署教程》:本文主要介绍Web技术与Nginx网站环境部署教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、Web基础1.域名系统DNS2.Hosts文件3.DNS4.域名注册二.网页与html1.网页概述2.HTML概述3.

Java使用WebView实现桌面程序的技术指南

《Java使用WebView实现桌面程序的技术指南》在现代软件开发中,许多应用需要在桌面程序中嵌入Web页面,例如,你可能需要在Java桌面应用中嵌入一部分Web前端,或者加载一个HTML5界面以增强... 目录1、简述2、WebView 特点3、搭建 WebView 示例3.1 添加 JavaFX 依赖3

Java的"伪泛型"变"真泛型"后对性能的影响

《Java的伪泛型变真泛型后对性能的影响》泛型擦除本质上就是擦除与泛型相关的一切信息,例如参数化类型、类型变量等,Javac还将在需要时进行类型检查及强制类型转换,甚至在必要时会合成桥方法,这篇文章主... 目录1、真假泛型2、性能影响泛型存在于Java源代码中,在编译为字节码文件之前都会进行泛型擦除(ty