论面向服务的架构与其应用

摘要:2020年4月,本人所在的某市金融投资集团启动了集团综合管理系统建设,该项目实现基金、融资租赁、资金管理、转贷、融资担保、保理等金融业务信息化及人力资源、智能办公、法务管理等内部管理功能,在此项目中,我担任了架构师,负责项目总体架构设计工作。本文以该综合管理系统为例,主要论述了面向服务的架构在该系统中的应用。提供数据联邦、数据复制转换、工作流集成等控制服务实现新老系统数据的集成、流程的集成及交互界面的集成;提供已有信息和应用资产集成及通用业务开发模板等业务逻辑服务实现已有应用、新开发应用的集成;提供分布式存储、分布式事务、单点登录、短信邮件等IT支持服务实现高效、便捷的应用开发及稳定、可靠的运行环境。通过面向服务的架构提供高质量、可重用的平台服务。
正文:本人所在的某市金融投资集团已经建设了移动办公系统、财务系统、融资租赁系统、基金管理系统等应用系统,但仍有部分业务缺乏信息化支撑,已建成的系统比较分散,主要是“竖井式”方式建设,系统与系统之间信息不共享以及信息与业务流程相脱节。针对这些问题,2020年4月,经集团党委决定,启动集团业务管理系统建设,实现以下功能。一、实现转贷、保理、融资担保、资金管理、人力资源、智能办公等信息化,同时整合基金管理系统、内部办公系统、财务系统等已有信息资产,促进部门、子公司之间横向协同。二、建立统一共享的信息平台,利用数据报表平台为管理层提供决策信息支持,实现纵向管控。三、建立涵盖分布式文件存储、单点登录、分布式事务支持、短信邮件通知、可控任务调度等服务的基础IT设施,提供高质量、可重用的平台服务。
在此项目中,我担任架构师,负责项目总体架构设计。由于项目范围较大,我采用分层设计,总体分为IT基础设施层、业务层、数据管控层。在此项目中,通过将已有系统功能封装为服务实现重用,并通过提供稳定、高效、健康的IT基础设施,实现了新开发服务的快速开发。
SOA技术参考架构中包含六大服务。1.连接服务。连接服务通过企业服务总线提供架构中各个元素之间连接的能力。2.业务逻辑服务。业务逻辑服务包括业务应用服务、业务伙伴服务、应用和资产,用于提供实现业务逻辑及执行业务逻辑的能力。3.控制服务。实现人、流程和信息的集成,以及执行这些集成逻辑的能力,包括信息服务、流程服务服务、交互服务。4.开发服务。贯彻整个软件开发生命周期的开发平台,从需求分析,到建模、设计、开发、测试的维护等全面的工具支持。5.业务创新与优化服务。用于监控业务系统运行时的性能,并及时通过获取到的性能和变化,采取措施适应变化的市场,包括公共事件框架、采集服务、监控服务等功能。6.IT支持管理服务。支持各业务系统运行的IT基础设施,包括安全、目录服务、系统管理和资源虚拟化等,提供稳定、可靠、安全、健康的IT运行环境。下面将以控制服务、业务逻辑服务、IT支持管理服务三个方面来具体论述面向服务的架构实施过程。
一、控制服务。
由于涉及到新老系统的集成,自然也离不开数据信息的集成。在本项目中,我开发了数据复制、转换服务,及数据联邦服务。由于融资租赁系统数据与新系统并不完全兼容,需要对数据进行清洗、转换,因此基于KETTLE ETL工具实现了从老系统数据库提取所需数据,过滤到不符合要求的数据,并对信息进行转换,如两个系统的人员id、部门id并不一致,按规则处理后,新系统才可以方便使用。有时我们需要同时访问多个数据源,如针对员工考勤处理、报表处理等,我们需要同时访问移动办公系统的数据库及业务综合系统自身的数据库,通过多数据源访问框架、路由策略的配置及SQL解析确定需要访问的数据源,我们搭建了数据联邦服务,仅需要在数据联邦服务这一层关心数据所在的位置,而对于业务层则是透明的。另外,基于activity工作流引擎实现了流程编排服务,实现如转贷业务服务的项目立项流程、合同签订流程、收付款流程等一系列业务流程的流程审批功能,以及流程审批时伴随着的一系列动作。
二、业务逻辑服务。
集团已有应用信息资产数量较大,存量数据较多,对于融资租赁系统这类拥有代码的系统,及移动办公系统这类具有较完善接口文档的系统,我们通过对这些存量服务进行封装,产生一个可用、便捷的服务并注册到企业服务总线中,以便与新开发的服务进行交互。如移动办公系统,我们封装了新闻发布接口、消息通知接口、OA工作流接口、OA登录接口、待办任务接口,实现了业务综合系统与移动办公系统服务层面的互联互通。而对于新开发的业务应用,我们对旧业务系统进行抽象、归纳,总结出适应于各个集团金融业务的特定领域体系结构,并对其进行实现,开发了可重用的组件,包含项目管理、合同管理、投放管理、财务管理、收尾管理等功能,并支持各个业务的个性化定制,实现具体业务时,继承所需类,并在继承类中增加个性化数据,实现个性化功能,而后来如果一个功能在多个业务中重复出现,又可以将该功能加入到基础组件中,这样利用业务基础模板,可以非常快速地增加功能,并最大化了业务功能复用。
三、IT支持管理服务。
为业务系统营造健康、高效的运行环境,我们开发了诸如基于OSS的分布式存储服务、基于CAS的单点登录服务、短信邮件通知服务、日志管理服务、任务调度服务等一系列公共支持服务。基于阿里云的OSS服务,我们封装了树形结构的文档管理组件,以及单文件组件、单文件夹组件,支持文件的上传、下载、压缩、检索等服务,而由于OSS本身支持的定时备份,我们可以不需要过分担心数据丢失、硬件损坏的问题。基于CAS的单点登录,我们实现了遗留系统与新系统的登录打通,而用户不需要重复登录,也便于系统间的数据传递,并可基于用户身份进行数据权限的验证,避免用户通过前台漏洞获取权限外的数据。又基于短信平台接口以及Spring提供的邮件组件,封装了短信发送、邮件发送功能,并支持单独发送、批量发送,发送文字模板定制、历史记录查询等高级功能。通过这些基础功能的服务化,对于业务功能来说,仅需要通过webservice调用相关接口,帮助业务功能高效地开发,并由于这些基础功能在实际运行中经过长久地考验,远比单独开发来得更加稳定、可靠。
项目经过一年多的开发测试,于2021年7月份上线,至今系统运行平稳,实现了所预期的横向协同、纵向管控的目标,有力地支持了集团业务的开展运营。但系统仍存有遗憾,一是由于部分旧系统没有代码,因此无法改造,导致系统中存在多个工作流引擎,分别是移动办公系统自带的工作流、融资租赁系统工作流及业务综合系统工作流,因此对于审批时,领导需要同时审批三个地方的工作流,造成极大的不便,目前通过在移动办公系统中生成待办任务集中整合,并链接至相应系统处理URL来方便办理。另外由于涉及服务较多,服务部署任务较为繁重,尤其是开发阶段,部署压力较大,后续通过接入jenkins实现自动化部署,极大减轻了运维的压力,以帮助开发人员全身心地投入到开发中。

论面向服务的架构与其应用相关推荐

  1. 基于面向服务体系架构(SOA)和面向资源体系架构(ROA)的业务组件模型

    引言 在<面向服务体系架构(SOA)和业务组件(BC)的思考>(以下简称< SOA 和 BC >)一文中介绍了基于面向服务体系架构(SOA)的组件模型,本文按照"分离 ...

  2. 亚马逊如何变成 SOA(面向服务的架构)?

    上一篇文章,我摘录了<程序员的呐喊>.这本书有趣的内容太多,今天再摘录一段. 1. 亚马逊公司不仅是世界最大的网络书店,还是世界最大的云服务商.它是怎么实现从电商到云商的转变呢? 一切都是 ...

  3. SOA (面向服务的架构)

    见:https://baike.baidu.com/item/SOA/2140650?fr=aladdin UDDI 解说参见:UDDI是什么 SOAP解说参见: SOAP:简单对象访问协议 面向服务 ...

  4. 面向服务的架构SOA

    一.什么是SOA SOA(Service-Oriented Architecture),即面向服务的架构. SOA是一种粗粒度.松耦合服务架构,服务之间通过简单.精确定义接口进行通讯,不涉及底层编程接 ...

  5. 谈谈SOA面向服务体系架构的安全问题

    谈谈SOA面向服务体系架构的安全问题 本文我们讨论的是面向服务体系架构(SOA)的安全应用.在展开讨论之前,首先让我们来解析面向服务体系架构的实际含义.面向服务体系架构是一种涉及若干以服务为导向的应用 ...

  6. SOA面向服务的架构概念梳理

    原文地址来自:http://baike.baidu.com/link?url=C9VVTLY58Vt1JyJy0oakTA5cPp8kgT375lOujSFWtyo05hQWAQ7XltmN2W1fe ...

  7. 软件架构设计---面向服务的架构

    面向服务的架构  迄今为止,对于面向服务的架构(Service-Oriented Architecture,SOA)还没有一个公认的定义.许多组织从不同的角度和不同的侧面对 SOA 进行了描述,较为典 ...

  8. SOA(面向服务的架构)

    SOA 是面向服务的架构,即企业的 IT 系统是由服务组成的,也即企业的各个应用系统是由许多标准的服务件"组装"起来的,组成应用系统中的各个服务之间是一种非常松耦合的关系. 服务基 ...

  9. SOA面向服务的架构设计

    目录 面向服务的架构 1 SOA 概述 1.1. 服务的基本结构 1.2.SOA 设计原则 1.3. 服务构件与传统构件 2 SOA 的关键技术 2.1. UDDI 2.2.WSDL 2.3.SOAP ...

  10. IFS应用系统-面向服务的架构(SOA)

    IFS面向服务的架构(SOA)有助于客户提高敏捷度与降低总持有成本(TCO) . http://www.ifsworld.com/cn/ IFS 应用系统建立在网络和门户技术基础上,提供了60多个 企 ...

最新文章

  1. 洛谷 P2746 [USACO5.3]校园网Network of Schools
  2. gsea富集分析结果怎么看_怎么看肝功能检验结果?
  3. java 调用本地接口_JAVA通过本地接口调用C++
  4. 努力,做个淡定的女子
  5. VS Code 变身约会利器!以码会友,轻松找到心仪的TA!
  6. REVERSE-COMPETITION-0xGame2021
  7. linux怎么查看内核定义的结构体,Linux如何查找一个结构体的原始定义
  8. elcipse 编译cocos2d-x android
  9. 【Codeforces contest-1214 E】Petya and Construction Set【树上构造】
  10. java简单递归算法,Java递归算法简单示例两则
  11. 一次贴近实战的CTF比赛(cookie欺骗、php函数、Tomcat漏洞、注入、逆向等)
  12. 无刷电机FOC控制笔记
  13. 电视机计算机无法退出,怎么强制退出恢复模式-各大主流智能电视强制恢复出厂汇总!轻松解决疑难杂症...
  14. PLC PID调试总结
  15. 11.HCNA-HNTD——文件系统基础
  16. FlashFxp配置ftp
  17. 如何防止U盘病毒入侵方法
  18. “Ubuntu 18.04.2 LTS _Bionic Beaver_ - Release amd64 (20190210)” 的盘片插入驱动器“/cdrom/”再按「回车」键
  19. 配色网站第一期 50个配色网站随便挑
  20. iptable防火墙(一)

热门文章

  1. 真实面对,心怀感恩,减负前行
  2. 贵州大数据产业集聚区再添引擎
  3. c语言获得鼠标点击坐标方法,C语言怎样获取鼠标坐标?
  4. if语句中return用法和有无括号的区别——随笔
  5. 海马亚区微观结构及其与阿尔茨海默病血浆生物标志物的关系
  6. 解决Win系统缺少msvcp100.dll无法启动问题
  7. 小学计算机兴趣班培训总结,关于兴趣班的活动总结
  8. android 截图root权限,Android Root权限截屏
  9. SAP将“在中国,为中国”贯彻到底!
  10. 免费、不用部署SD:AI二维码制作教程