小记基于xstate实现携程金服业务流程动态化

简介: 小记基于xstate实现携程金服业务流程动态化

作者简介

赫杰辉(携程框架架构师),后台系统研发老油条,专注于开发效率提升、设计哲学总结。开源框架x-series作者,携程dal框架贡献者,太极爱好者,喜欢玩躺车等古怪玩意。

怀立德(携程金融架构师怀立德),从事金融行业技术10年了,对能让设计,开发工作变得更轻松的技术都有兴趣。毕生最大的目标就是如何让程序猿变得更懒,如今随着体重的逐渐上升,已略有小成。


简介

本文通过介绍携程在互联网金融服务领域如何快速高效解决合规落地问题,提出了一种基于xstate的工作流动态调整方案。这种方案适合所有需要在线流程升级的应用。包括金融,证券,电商,政务,物流等行业领域。


方案背景

随着互联网金融的日益壮大,传统银行与互联网公司合作寻求共赢成为一种常见的模式。携程作为在线旅游的领导者也主动顺应这一潮流,积极开拓了金融服务领域的业务。在具体应用中,某场景需要对用户资格进行在线审核。熟悉金融相关业务的开发人员应该知道,在线审核一般包含多个步骤与判断,是个比较复杂的流程。这些流程,步骤和判断都需要与一定国家的法律、规则和准则相一致,简称合规。当政策发生变化,系统也会必然随之调整以做到继续保持合规。传统的做法一般是通过代码来实现审核流程,升级的办法主要是修改代码,测试和重新发布。这种做法在携程这种量级的系统里无疑是极具挑战性的,具体表现在以下几个方面:

 

  1. 开发与维护难度大。传统的开发方式是用代码来实现合规,在合规逻辑本身比较复杂,条件判断复杂的情况下,通过读代码的方式来理解和修改系统非常低效。复杂代码往往非常难以理解和维护,修改老系统非常容易破坏正确逻辑或者引进新的bug,导致开发质量低下。


  1. 上线时间难以保证。新合规的出现是无法预测的,而某些新合规往往会规定较紧迫的上线时间。在开发工作安排的非常饱满,开发进度非常紧张的时候,为新合规上线划拨资源,安排进度从项目管理角度是上线很困难的事情。甚至曾经出现过虽然国家发布了新合规和规定了上线时间,但由于各个公司实在无法按时上线,最终国家不得不推迟上线时限的情况。


  1. 无法保证系统质量。现代互联网公司往往是大规模并行开发,有固定的发布节奏,并且一次发布多个功能同时上线是常态。这种情况下,新合规功能可能会与有缺陷的功能一同上线,当缺陷版本回退的时候,会导致合规功能一起回退,从而影响新合规的实际上线时间节点和效果。

 

简而言之,携程金服团队希望合规开发能降低成本,缩短周期;合规维护能做到快速理解,修改和验证现有系统;合规发布能精准,高效,影响面小,不可控干扰因素少;合格回退能独立实时,副作用小。理想情况下,最好能够做到不停机发布。


解决方案


金融团队的技术leader在评估各种方案时,也向携程框架部门寻求了技术支持。根据他们的需求,我向他们推荐了xstate。


微信图片_20220121164502.jpg


xstate是一个基于状态机模型的开源框架,利用与IDE紧密结合的模型编辑器,用户可以用可视化的方式直观地开发模型。xstate编辑器的功能非常完备,可以灵活地构建任意的复杂模型,模型存储格式为XML。xstate引擎对运行环境无特殊要求,可以内嵌到任意容器或单独运行。为了适应各种使用场景,xstate引擎提供了灵活多样的模型数据读取方式,包括读取file,url,classpath甚至stream等。


相对于类似框架,xstate的优点在于:

  1. 二次开发工作量小。Xstate的开发非常轻量级,即可以在不写一行代码的情况下实现一个功能完备的状态机,必要时也可以利用定义良好的接口实现灵活扩展。
  2. 概念简洁完备。Xstate仅仅包含状态机,状态,变迁,事件等最少核心概念。而很多类似产品的模型过于复杂,包括很多与核心模型无关的辅助模型。例如role,人员,组等。往往要完成繁琐配置才能真正用起来。
  3. 开发环境友好。Xstate的编辑器紧密结合在用户熟悉的主流开发环境里。用户无需离开当前开发环境,无需在多个不同的编辑器中切换。类似产品往往是与IDE无关的独立的编辑器。
  4. 使用方便。Xstate的产出只是模型文件。而且提供多种灵活的读取方式。类似产品往往依赖数据库,环境部署复杂。

 

在进一步沟通了解之后,携程金融团队认为该框架符合他们的各项要求,并在现有系统改造和新合规发布中加以采用。


使用效果


采用xstate后,当新合规下发时,开发人员一般只需在IDE里面打开已有xstate模型文件,在交互式的图形编辑器里面以所见即所得的方式修改状态机即可完成开发。测试人员可以通过状态机的可视化模型进行直观的理解和验证测试。测试通过后,模型可以单独发布到携程的配置中心,无需应用重新发布或重启。应用在监听到变更请求的时,通知xstate引擎读取新的模型数据并创建模型,即可实现合规的在线发布或升级。

 

使用xstate后,合规的开发与维护做到了简单高效,发布做到了灵活即时,最终的实际效果让用户很满意。同时xstate还吸收了用户在使用过程中提出的改进意见,促进了框架的进一步完善。合作做到了双赢。

 

Xstate使用心得


最近需要对目前的业务进行重构,考虑引入类工作流来完成业务流程。对比了好几款工作流引擎,如activiti,JBPM等,最后选择了Xstate来作为重构业务流程方案。


对比的几款开源软件都能完成我的业务需求,最终选择Xstate理由有以下几点:


  1. 1.    无环境依赖

对数据库,环境都无特殊要求。相比其余的引擎需要一系列的搭建工作,如建表,编写配置文件等,Xstate只需引入jar包就可直接使用。


  1. 2.    快速上手

一款框架产品可以快速上手是非常重要的。Xstate是一款非常轻量级的基于状态机的框架,通过阅读文档,运行sample即可快速了解整个框架的运作机制,从而进行自己的开发工作。十分符合目前互联网环境快速迭代的开发节奏。


  1. 3.    快速融入现有系统

Xstate提供了状态扭转所需要的所有基本步骤,使用配套的可视化工具可以快速搭建一套包含各个业务节点的工作流。通过简单配置可以迅速绑定节点和指定业务代码的关系,无需对已有的业务代码进行重构。这大大降低了二次开发的成本。


  1. 4.    可视化工具


Xstate配套有Xtools工具,通过可视化界面,快速完成功能设计,同时如上述第三点,通过配置节点和业务代码的关系,简单的操作就串起整个业务流程。


总结:


Xstate是一款可以快速上手的基于状态机的框架。很适合使用在各个有多个状态流转的业务场景中,满足多状态节点的互相流转。



目前我重构的业务功能已经完成,流程如下图。


微信图片_20220121164533.jpg


参考资料


xstate是开源框架集x-series中的一个独立组件,其他组件还包括流程图xunit,决策树xdecision。这些框架的使用方式都是基于可视化方式编辑模型。作者认为传统开发模式已经无法适应新的时代。具体可见:


X-Series可视化大规模应用开发工具集


相似观点:


即将到来的软件世界末日,作为程序员该如何应对


开源框架x-series github站点

相关文章
|
6月前
|
新零售 人工智能 供应链
推三返一新零售模式系统开发|成熟案例|方案设计
新零售是指通过互联网技术和大数据分析,将线上线下商业模式相结合
|
6月前
|
新零售 搜索推荐 物联网
甄美天使商城新零售系统开发|方案设计|成熟源码
“新零售”作为一种新兴业态而流行于零售行业。
|
6月前
|
人工智能 自然语言处理 搜索推荐
用好这套系统,食品行业的私域运营不用愁!
随着互联网的深入发展,食品行业正面临着前所未有的挑战和机遇。传统的营销方式已经不能满足消费者的需求,而私域流量的兴起则为食品企业提供了一个全新的、低成本且高效率的营销方式。本文将探讨食品行业如何解决好三个痛点做私域。
|
开发框架 小程序 前端开发
七星创客丨推三返一丨系统开发案例详细,七星创客推三返一丨七星创客系统开发规则玩法丨成熟方案丨源码逻辑
  随着互联网的普及和电商的迅速发展,越来越多的消费者开始选择在线购物。为了吸引更多的消费者,许多电商平台和卖家推出了各种促销模式,其中推三返一模式系统备受青睐
|
运维 监控 前端开发
云巧项目案例-某水务集团协同平台项目
某水务集团期望通过数字化转型实现供水全过程监控预警与水质全过程保障体系。在交付过程中面临业务复杂、高度定制化及项目工期紧张等挑战。项目组最终选择使用云巧进行模块化系统搭建,通过采用云巧表单与流程等通用组件,按照云巧标准定制开发,使用云巧搭建能力将新的应用系统定制开发页面与客户已有系统页面平滑对接。经评估,采用云巧比传统的软件定制开发节省了至少30%的人力和时间成本,同时保证了交付质量。
云巧项目案例-某水务集团协同平台项目
|
项目管理 数据库
银行核心业务系统开发项目管理之道-金融项目我们应该关注那些东西
  银行核心业务系统是支付系统,包括大小额支付、票交系统、网银系统和银联卡支付系统等。这些系统的共同特点是需要接入中国人民银行的业务系统,需要按照人民银行的业务规范、报文规范、文件传输规范和通讯规范等,基于这类项目的共同点的分析,这类项目开发需要关注的重点往往与传统项目有一些出入,主要包括以下几个方...
765 0
|
数据可视化 大数据
智慧党建平台建设,组织部干部人事任免系统开发方案
智慧党建平台是运用信息化新技术,整合各方资源,更有效的加强组织管理,提高服务群众水平,扩大党在网络世界存在感和数字化影响力,提高党的执政能力,巩固党的执政基础的新平台、新模式、新形态。
210 0
|
大数据 云计算
智慧党建管理系统开发方案,党建积分管理平台建设
“智慧党建”是当今党建工作的一种新理念。依托现代互联网技术,促使党的建设多维度全覆盖、党建措施智慧生成的实现,从而提升党的执政能力和治理能力。
221 0
智慧党建信息化管理平台建设,党员积分系统开发app
智慧党建信息化管理平台的建设为基层党组织提供管理、学习、活动、监督、考核等功能于一体的信息化应用平台,通过优化工作流程、统一标准、整合资源等方式,使党建工作向数字化、信息化方向转变。
213 0
|
数据采集 BI
智慧党建系统开发解决方案,党建积分信息化管理平台建设
智慧党建解决方案针对传统党建各个部门、系统的多源数据标准规范不统一、数据质量参差不齐等情况,进行数据统一、标准汇聚。打破数据孤岛,按照市、县、镇、乡、街道、社区模式进行统一管理,完善基层党建模块功能。
245 0