面向服务的架构
要点: 面向服务的架构
论文需要体现:
1服务的特点:松耦合、粗粒度和标准化接口
2阐述对象、构件和服务之间的关系;
3 SOA的实现方式Web Service 和 ESB 描述项目
摘要
2022年6月份我参加了XX学校融合门户开发,担任系统分析师和部分架构设计工作,该系统主要包含门户系统,办事大厅,公文流转,在线预览等主要功能,本文结合作者的实践,以XX学校融合门户系统为例,讨论基于服务SOA 架构方法及其应用,(过程,方法,措施)我们采用面向对象的需求分析,形成完备的需求规格说明书,然后采用普元的EOS开发平台进行项目开发,结合BPS工作流管理平台集成金格在线编辑插件完成公文流转和办事大厅中的业务流程开发,最后采用ESB企业服务总线 完成服务的集成实现项目。
正本
随着智慧校园建设的发展,各个学校对于门户建设提出了更高的要求,融合门户包括了信息集成、应用集成和知识集成,以此提升学校的信息化应用水平,2022年4月学校通过公开招投标确定我们公司承担这项工作,项目金额为120万,公司具备教育行业融合门户平台建设经验,我承担本项目的分析与设计工作,本项目包括门户中心、公文流转中心、办事大厅、通知公告、流程中心、企业微信移动端等功能。融合门户建设目标是消除信息孤岛、实现跨部门、跨系统的协同作业,实现学校业务流程的高层次发展,进而实现流程再造,为学校的师生服务中心建设提供技术支撑。(项目背景介绍)
融合门户建设采用了面向服务的架构,主要特点是:1松散耦合,服务请求者通过SOAP 进行消息传递与服务提供者建立联系;2粗粒度,服务是一个抽象接口中封装了大块业务和技术能力,减少服务请求交换次数,通过UDDI注册中心完成服务动态发布;3标准化接口,服务之间通过WSDL 服务描述web server公共接口,web server接口可以集成注册到ESB企业服务总线中。(过度内容)
(正文部分)
以下主要介绍基于面向服务的架构分层框架实现,办事大厅和公文流转平台的实现, ESB 企业服务总线实现,面向服务的架构在安全策略以及面向服务的架构部署。
1 整个项目采用分层框架实现,分别是表现层,业务层,数据访问层、数据持久层、数据层组成。表现层采用VUE 框架适配PC端和移动端,移动端主要集成在企业微信中,把业务层,数据访问层、数据持久层封装为一个服务,为表现层提供服务。各个服务之间尽量少的耦合,服务之间通信通过soap完成;每个服务又是粗粒度的,完成大块业务和技术能力支撑;服务开放标准的API接口提供外部服务, 例如融合门户首页具有消息提醒模块,日历模块、通知公告模块以及代办事项模块,这些模块都是基于服务架构提供消息请求,前端表现层在获取soap 响应报文以后进行消息解析,把解析到的数据展现到数据表现层;同时可以对外提供API调用功能,把soap 响应报文开放出来供第三方服务调用。例如:登录界面采用第三方单点CAS认证,soap 请求报文发出以后,获取到响应报文,报文基本格式为HTTP + XML = SOAP,然后进行报文解析,确定是否通过单点认证进入融合门户。
2 办事大厅和公文流转平台采用普元中间件BPS工作流系统完成,工作流流转通过构件进行开发完成,以服务的形式提供给业务逻辑层调用,工作流平台包括:工作流引擎、管理监控工具、流程定义工具、工作流执行服务、客户端应用和调用应用。由于用户对公文编辑和在线预览的需求,工作流平台的表现层集成了永中在线预览服务和金格在线编辑iweboffice服务,集成过程也是以服务形式调用完成,每个服务内部又是由具备独立功能的构件组成,构件可以通过接口实现对象操作,例如在线预览各种类型文档文件,首先在ftp服务上搭建tomcat服务,在线预览服务调用tomcat 容器服务,然后把ftp服务上的文档文件下载到在线预览本地服务器缓存中,用户调用在线预览服务中指定的文档文件,文件实现网页端的在线预览。工作流业务针对学校多变的需求,可以及时调整流程,满足学校的需求变更。
3 ESB 企业服务总线实现不同服务和业务系统的集成,完成服务的注册,广泛使用不同类型的消息格式规范,主要对接方式包含消息队列、web server,ftp 文件和数据库直接访问模式。例如通过ESB 企业服务总线实现一卡通消费信息的读取,当消费者在POS机器上消费了一笔记录,这条记录就以soap报文形式发送到MQ消息队列,ESB 企业服务总线通过消息轮询读取MQ消息队列中指定的队列消息,并解析报文保存到数据中心平台数据库中,同时展示到门户个人消费信息界面上。 ESB 企业服务总线在本项目中还实现了消息映射转换功能,比如学工系统宿舍信息提供了web service 接口,传递学生ID信息可以获得学生所在的宿舍号,ESB 企业服务总线通过发送soap报文请求,获取到指定学生的宿舍信息,学生通过财务系统转账宿舍水电费,可以实现宿舍信息的请求调用获取并完成水电费的圈存服务。
4 本项目面向服务的架构在安全策略上主要通过三个方面完成,(1) 服务开放的端口通过防火墙配置完成,源IP地址和端口可以开放给指定的目标IP;(2)WEB 应用服务安全通过WEB应用防火墙完成,有些特殊soap 请求可以根据需要增加到URL白名单中;(3) 服务的有效性通过UDDI 服务注册中心完成;
5 项目把服务部署在超融合平台之上,包括负载均衡、缓存加速,WEB应用服务和文件系统服务集群;数据库部署在物理服务器上。负载均衡由keepalive+nginx组成,缓存加速由redis集群组成,提升可用性,WEB应用服务采用tomcat 容器构成。数据库采用MYSQL读写分离。
在面向服务的架构技术的成功实践下,该项目在2023年4月通过验收,正式运行1年来系统稳定,同时该架构降低用户对工作流业务的动态调整的难度和成本,为公司成为2期项目开发打下坚实的基础。回望本次项目的成功经历,我深刻体会到面向服务的架构技术在系统开发中起到了至关重要的作用。企业在完成多个融合门户建设项目以后,可以进一步延申到领域工程中,实现软件复用,服务复用,构件复用和对象复用。为以后的领域分析、领域设计和领域实现打下坚实的基础。当然在项目的分析和设计过程中也存在一些问题和不足,例如ESB企业服务总线部署和运维难度较大,需要专门的运维团队部署和管理,增加了系统的复杂性和运维成本。在以后的项目中,我们会继续结合实际场景和软件架构风格,力争建设高质量的软件项目。
参考
https://blog.csdn.net/weixin_39445036/article/details/106058574
 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号