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

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

简介

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

方案背景

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

  1. 开发与维护难度大。传统的开发方式是用代码来实现合规,在合规逻辑本身比较复杂,条件判断复杂的情况下,通过读代码的方式来理解和修改系统非常低效。复杂代码往往非常难以理解和维护,修改老系统非常容易破坏正确逻辑或者引进新的bug,导致开发质量低下。
  2. 上线时间难以保证。新合规的出现是无法预测的,而某些新合规往往会规定较紧迫的上线时间。在开发工作安排的非常饱满,开发进度非常紧张的时候,为新合规上线划拨资源,安排进度从项目管理角度是上线很困难的事情。甚至曾经出现过虽然国家发布了新合规和规定了上线时间,但由于各个公司实在无法按时上线,最终国家不得不推迟上线时限的情况。
  3. 无法保证系统质量。现代互联网公司往往是大规模并行开发,有固定的发布节奏,并且一次发布多个功能同时上线是常态。这种情况下,新合规功能可能会与有缺陷的功能一同上线,当缺陷版本回退的时候,会导致合规功能一起回退,从而影响新合规的实际上线时间节点和效果。

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

解决方案

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

 5168b4f49401114306ec30f283560e6a8740cce6

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,无环境依赖

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

2,快速上手

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

3,快速融入现有系统

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

4,可视化工具

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

总结:

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

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

a712910ac08c1341872252dd9aa549a2b9595380

原文发布时间为:2018-01-12

本文作者:赫杰辉&怀立德

本文来自云栖社区合作伙伴“中生代技术”,了解相关信息可以关注“中生代技术”微信公众号

相关文章
|
1月前
|
新零售 人工智能 大数据
赚哈哈新零售系统开发模式|方案设计|详情分析
新零售指的就是新型零售商业模式,将线上与线下进行融合
|
4月前
|
人工智能 自然语言处理 搜索推荐
用好这套系统,食品行业的私域运营不用愁!
随着互联网的深入发展,食品行业正面临着前所未有的挑战和机遇。传统的营销方式已经不能满足消费者的需求,而私域流量的兴起则为食品企业提供了一个全新的、低成本且高效率的营销方式。本文将探讨食品行业如何解决好三个痛点做私域。
|
12月前
严选售后服务架构演变之路:把复杂业务做简单(2)
严选售后服务架构演变之路:把复杂业务做简单
111 0
|
12月前
严选售后服务架构演变之路:把复杂业务做简单(1)
严选售后服务架构演变之路:把复杂业务做简单
|
供应链 数据管理 数据挖掘
谈谈大型多元化集团物料主数据建设心得
随着大数据、数据湖、数据中台的建设,数据作为计算和分析的对象,其质量的好坏直接决定数据分析和数据挖掘的效果。
谈谈大型多元化集团物料主数据建设心得
|
监控 Cloud Native 容灾
斯凯奇全渠道业务中台最佳实践|学习笔记(二)
快速学习斯凯奇全渠道业务中台最佳实践
236 0
斯凯奇全渠道业务中台最佳实践|学习笔记(二)
|
Cloud Native 安全 Dubbo
斯凯奇全渠道业务中台最佳实践|学习笔记(一)
快速学习斯凯奇全渠道业务中台最佳实践
379 0
斯凯奇全渠道业务中台最佳实践|学习笔记(一)
|
大数据 数据挖掘
党建管理系统开发,组织部干部人事任免平台建设方案
党建管理系统顾名思义就是专为党务工作者服务的党务工作信息化管理平台,党建管理系统的建设全面响应了“网络发展到哪里,党建工作就覆盖到哪里”的号召,党建管理系统通过互联网大数据技术,实现了党务管理、党员管理、党组织管理、党员考核等党务工作的线上办公,不受时间、地点的约束,支持随地随地开展党建工作。
119 0
|
数据可视化 大数据
智慧党建平台建设,组织部干部人事任免系统开发方案
智慧党建平台是运用信息化新技术,整合各方资源,更有效的加强组织管理,提高服务群众水平,扩大党在网络世界存在感和数字化影响力,提高党的执政能力,巩固党的执政基础的新平台、新模式、新形态。
171 0
|
项目管理 数据库
银行核心业务系统开发项目管理之道-金融项目我们应该关注那些东西
  银行核心业务系统是支付系统,包括大小额支付、票交系统、网银系统和银联卡支付系统等。这些系统的共同特点是需要接入中国人民银行的业务系统,需要按照人民银行的业务规范、报文规范、文件传输规范和通讯规范等,基于这类项目的共同点的分析,这类项目开发需要关注的重点往往与传统项目有一些出入,主要包括以下几个方...
732 0

热门文章

最新文章