金融科技创新团队

作者: 时间:2020-10-03 点击数:468 字号:

一、团队基本情况

(一)团队人员构成                       总人数:7

教师

博士

硕士

本科

3

0

2

2

(二)团队导师简况

教授

副教授

讲师

1

2

0

首席导师情况

姓名

王莹

性别

民族

专业技术职务

副教授

行政职务

研究方向

智能软件开发技术

近三年获奖

2020年沈阳市中青年科技创新人才计划

主要承担课程

软件质量保证与测试技术

电子邮箱

wangying@swc.neu.edu.cn

导师梯队成员情况

姓名

团队中分工

专业技术职务

研究方向

电子邮箱

朱志良

理论研究、技术指导

教授

软件重构技术、软件可靠性理论、服务科学与信息整合技术等

zzl@mail.neu.edu.cn

于海

理论研究、技术指导

副教授

复杂性软件系统、软件重构技术、软件可靠性理论、混沌分形理论与应用、多媒体信息处理

yuhai@mail.neu.edu.cn

二、团队研究方向

自适应金融微服务软件架构演化模式与智能化开发

一、研究背景与意义

随着互联网的发展,越来越多金融行业开始通过软件系统提供线上服务,最初使用的软件架构大多是单体架构,在开发的初期它常常能表现开发周期短、易部署、测试方便和开发成本低等优点。然而,随着业务的拓宽,软件的更新和维护往往会变得越来越困难,这迫使人们纷纷开始寻找解决方案。微服务架构的使用为开发指出了一条新的道路,它提倡彻底的“组件化”和“服务化”,将大的业务拆分为多个符合单一职责原则的微服务,每个微服务只负责完成一个小的逻辑,通过微服务之间的通信完成所有的业务,以微服务为基本单元进行系统升级和维护,大大提高了开发的灵活性和可拓展性。如果能够完成软件架构的转型,金融行业的软件开发和维护成本将会大大降低,新增业务的开发效率也会大大提高。但当开发微服务架构的金融软件或将应用程序从单体架构迁移到微服务架构时,应用程序的质量、可维护性、数据一致性等关键特性都可能出现问题。而作为金融软件,对事务型的状态数据一致性处理及交易成本更高。如果这些问题出现,则可能会给系统的使用者带来严重的经济损失。智能化开发技术可以给金融微服务架构开发带来许多优点,比如使金融软件以基于BASE理论的TCC模式和基于ACID理论的FMT模式来保证数据的一致性。所以智能化开发技术的使用可以有效解决金融微服务架构软件的开发问题。

二、研究目标

金融微服务架构要求将应用程序划分成多个小的服务(符合SRP—单一职责原则),让每个服务运行独立的自己的进程中,不同服务之间采用轻量级的通信机制来实现通信,最终协作完成整体业务;不仅如此,每个微服务还能够被独立地开发和部署;对具体的一个服务而言,根据金融业务的上下文,应该选择合适的语言、工具对其进行构建,对于不同的服务可以使用不同的语言来编写,也可以使用不同的方式进行数据存储。


1 微服务架构模式图

微服务架构的这些特点造就了其独特的优点,但也为架构的转型造成了很大的困难,如服务难以拆分、存储结构变化巨大和服务部署问题等。如果我们可以提供一套有效的理论方案,借助智能化开发方法实现服务发现、服务拆分和通信建立等需求,我们离软件架构转型的目标就更近了一步。

除了能够为转型提出合理方案之外,对转型需求也要做出评估,具体而言就是建立一套机制来判断软件架构是否需要转型以及转型需求是否合理;另一方面,要能够对转型成功的系统从多方面与原系统进行进行分析比较,比如实现同一业务的复杂度、所需资源、业务扩展等方面的比较。

同时,如何通过自然语言理解,程序约束条件获取开发社区中符合条件的代码,并利用自然语言处理,数据挖掘等方式提取这些代码中的关键点作为数据,再利用深度学习得到代码中的各项特征。最终达到智能化开发微服务架构软件的目标。


2 软件智能化方法流程

三、 待解决问题

1. 如何开发出支持微服务架构的架构语言和开发工具

在了解了微服务架构的特性之后,我们希望为架构设计活动提供支持,特定于该领域的架构语言可能会是进行架构设计一种恰当的抽象、通用的表达方式。通过架构语言,开发人员可以清晰、准确地在软件开发中使用微服务架构。但现阶段还未有一款成熟的架构语言或开发工具来帮助开发人员快速的实现微服务架构软件开发。所以,开发出支持微服务架构的架构语言和开发工具是我们研究的一个重要目标。

  1. 如何有效地实现应用程序从单体架构向微服务架构的迁移

当一款应用程序需要从单体架构向微服务架构进行迁移时,首先需要判断这款应用程序是否适合迁移。判断的标准是程序在单体架构或微服务架构下,哪一种架构可以使程序获得更高的运行效率。但如何得到运行效率的结果还没有良好的解决办法。同时,在微服务架构中,每个业务可以被有效拆分为多个微服务并进行独立部署,微服务之间通过公共接口进行通信,业务复杂度较高时程序的运行效率维持在一个稳定的状态。而单体架构中服务之间的耦合性较为紧密。所以,如何通过智能化开发将紧耦合的服务有效拆分和部署,达到松耦合的目的;提取公共接口实现轻量级通信,以至于最终完成程序的架构迁移,这是目前在研究的一个主要问题。

  1. 当已经投入使用的系统需要加入新的功能时,无法直接将新的功能模块整合至原系统的服务中,系统的可扩展性较低

单体架构开发的系统,系统的服务之间耦合性较高,技术选型兼容度低,当新的功能在开发社区中已经存在成熟的模块,但使用的开发语言不同时,原系统难以兼容新的功能模块。但微服务因自身具有的技术兼容度较高的特点,则可以很好的完成功能模块的兼容,从而使系统具有良好的可扩展性。如何通过智能化软件开发使微服务架构在实际开发中具有良好的兼容性是问题之一。

  1. 如何评估从单体架构迁移到微服务架构对应用程序造成的影响

在现阶段,采用微服务架构的迁移过程是一个多维的问题。架构迁移所带来的系统耦合性的改变,服务间通信机制的改变都可能会给程序带来难以估计的影响,急需一种较成熟的评估技术来评估迁移的影响。但由于微服务架构迁移的实际案例较少,评估影响所需要的数据较少,同时,进行评估的技术也处于初级阶段。在这种情况下,从实际案例中提取出有效的数据,并利用智能化开发测试数据以完成评估技术。这也是本次研究的重要目标之一。

四、 研究方法

本课题拟提出的研究方向为自适应金融微服务软件架构演化模式与智能化开发。通过自然语言语分析,程序约束条件获取符合条件的开源代码,之后自然语言处理,数据挖掘,机器学习相结合的智能化方法,通过大量阅读代码来总结出程序所提取代码的各项特征。最终开发出支持微服务架构的架构语言和开发工具,并使程序具有良好的可扩展性。在程序进行架构迁移时,可以智能化实现迁移,并根据深度学习得到的代码特征在迁移后对程序架构迁移的影响进行合理的评估。主要研究方法如下:

1. 收集资料,分析微服务架构本身面临的挑战和解决方案
       
为了更好地对架构迁移过程中存在的问题进行分析和提出合理的方案,首先要对微服务架构本身的特性和使用的难点进行分析,从理论上掌握问题根源和可能的解决方案,再借助目前已经公开的微服务框架(Spring CloudDubbo)问题解决实例进行深入理解。

2. 对互联网企业进行调查,分析实际困难和收集转型方案

问题来自于实践,想要真正了解架构迁移过程中的难题,必须要对实践经历进行调查,并且调查类型需要广泛。重