【系统架构设计师】论文:论SOA面向服务架构技术的应用

2024-08-31 18:36

本文主要是介绍【系统架构设计师】论文:论SOA面向服务架构技术的应用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

论文:论SOA面向服务架构技术的应用

文章目录

      • 摘要
      • 正文
      • 总结

摘要

本人于2020年7月参加国内某某知名港口供电业务系统的开发工作,在该项目中主要担任系统架构师,主要负责该系统架构和网络安全体系架构设计。经过近20年的港口信息化建设,港口供电系统已经建立了一些应用系统,但是,随着港口供电业务的发展,有些系统已经无法满足目前供电业务需求,同时存在已经开发的系统之间信息共享能力弱,系统集成度较低,系统扩展难的现象。为了解决供电系统中复杂、分散、异构的数据信息之间交换,实现数据的高可复用性,同时适应新的业务需求,开发新的应用系统以适应日益增长的港口供电线系统信息化需求,实现系统平台的易扩张性,易集成的特性,在供电业务系统中,我们采用WCF开发技术,建立了SOA架构。 目前该项目已于2021年7月完工,从运行效果来看,达到了预期的目的,得到了同行和用户一直好评,也说明SOA技术对实现企业信息系统的开发有着非常重要的意义。

正文

本人于2020年7月参加了国内某某知名港口供电业务系统的开发工作,在该项目中担任系统架构师,主要负责系统架构和网络安全体系架构的设计。经过近20年的港口信息化建设,港口供电系统信息化建设已经取得一些成绩,建立了多个应用系统,如劳资系统、调度派工系统、财务管理系统、电费管理系统等。但是由于不同的系统在不同的时期开发,运行在不同的平台上,采用不同的开发技术和规范标准,导致"信息孤岛"现象存在,系统之间数据共享和交换较为困难。按照合同规定,该项目必须在1年内完成。为了在有限的时间内,开发出高效的应用系统,我们必须采用科学的开发方法,经过分析,我们采用WCF开发技术,运用SOA 架构来实现系统的功能需求。 经过需求分析,我们将该系统分为电费管理、财务业务一体化管理、安全护品管理、机电设备管理、物资管理、生产调度管理、流程申报管理、网上办公管理、工程项目管理、报表及领导查询管理模块。
在该系统中,我们前端程序采用微软的.NET平台中的C#进行开发,数据库采用oracle进行数据存储。通过对系统需求分析,我们采用以下方法实现:

  • (1)电费管理模块虽然已经有该应用系统,但是目前的电费管理计算方法已经发生很大变化,在新的系统中必须按照最新的电费计算方法开发,但是很多基础资料,我们应该导入到后台数据库中。因此该部分应该采用淘汰老系统,复用有价值的数据方法开发。
  • (2)财务业务一体化管理、工程管理、流程申报管理、报表及查询过管理是在新系统提出的新业务需求,需要全新开发。
  • (3)安全护品管理是我公司以前帮供电业务系统开发,而且也是基于WCF开放技术实现的,在新系统中,可以将此系统直接集成到新的供电业务管理系统平台下。
  • (4)机电设备管理、物资管理、生产调度管理虽然已有的应用系统基本能满足目前的业务需求,但是由于开发技术比较落后,系统维护困难,此外数据共享能力差,我们决定采用将数据集成到新的业务系统中,前端应用重新开发。

在该系统中,我们采用以下开发技术实现供电业务系统功能,系统采用层次架构设计风格来实现所有系统功能,在该系统是通过四层架构(client/contract/service/Host)的方式实现的。

一、我们通过需求分析,将用户需求分解为一个个服务。
由于该系统涉及港口供电业务系统方方面面,在该系统中需要编写很多服务。我们在前端编写的客户端界面以插件(plugin)的形式进行注册,各个客户端界面调用的服务通过统一的端口,以申请访问服务器上的服务,在该系统中具体是通过显示指定服务,同时依赖契约层方法实现和服务器上服务关联的。安全护品模块是我公司开发的,所以可以直接将该部分界面注册到开发平台下。

二、中间契约层实现提供服务接口功能。
中间层既要被服务层所用,也要为客户端所用。我们通过契约层将所有的服务操作暴露给用户,同时实现将所有的接口转换为服务契约,客户端所有需要的服务也在契约层上进行查找,客户端无须知道每一个服务(service)是如何实现。中间契约层实际上就是定义了在该层有哪些可用的操作,以及每个操作的方法签名。

三、服务实现层具体实现如何完成每一个服务。
所有的服务层要和契约层相关联,在该系统中服务层通过注册表以访问数据库,实现和数据库相关的所有操作。Host层的本质就是把一个Service置于一个运行中的进程中,并以Endpoint的形式暴露出来,并开始监听来自Client端的请求。Host层通过XML语言描述实现和服务实现层以及契约层相关联。等所有的系统功能完成后,将所有的服务注册部署到相关的应用服务器,以提客户端申请服务成功查找,进而实现系统的通信功能。

通过采用这种面向服务的架构给系统带来了很大益处,实现了系统的高可复用性。如安全信息管理模块、物资管理,港口其他单位的信息化需求较为相似,以后在为其他企业开发项目的系统的时候,只需要为该企业开通权限,允许调用此服务即可实现系统功能。对于以后新出现客户需求,只要添加新的服务接口就可以,不需要搭建新的系统架构。同时通过此层次架构的开发,增强了系统网络安全性,由于各个层次的功能明确,客户端将无法直接访问数据库层,取而代之的是专门的应用服务器去访问访问服务,而其通过对服务器的访问安全设置,提高了对数据库的访问安全性。此外,大大提供企业应用的集成度,在该系统中,港口供电系统的所有应用被集成到一个统一的平台下,如财务部门、劳资人事部门、生成管理部分都需要调用人员信息,在统一的系统平台下,该信息只要一次完成,多次调用即可,打破了传统的同一个界面在不同的应用系统中要重复开发的现象。

总结

该系统已经于2021年7月,成功通过了供电业务部门的验收,大大提高了港口供电系统信息化管理水平,提高了港口供电系统生产效率,得到了用户的肯定。但是目前该系统由于开发时间有限,该系统仍存在一些需要改进之处。由于港口供电业务系统平台注册的服务很多,系统用户也很多,有些服务调用响应时间较长,如电费收取模块本身计算较为复杂,在加上服务查找时间,导致客户端获取数据较慢。在今后,我们对采用层次架构风格系统要采用将应用服务器进行分类,将服务按功能发布到不同服务器上,同时要提供备份应用服务器,当其中一台服务器无法工作时候,备用服务器要立刻启动去工作。以较少服务的响应时间和保证系统通信正常。

由于在该体统中数据共享程度高,在不同系统间进行数据读取时候,要注意对输入数据的校验,如我们发现在人力资源管理系统中输入的数据有些格式错误,数据不正确,这就要求系统提供智能化识别功能。同时对系统出错的时候,要能够有一定的容错功能,要提供回滚功能,如在此系统中的流程申报出错,要提示与此相关联的所有操作都要撤销。 在该系统中,由于使用了SOA技术,大大提高了系统开发效率,节省系统开发和维护成本,使系统具有更好的开放性、易扩展性,以及可移植性。从该项目完工后使用效果看,到达了预期目的,得到了用户的好评。
在今后的日子里,本人一定会更加努力钻研专业基础知识,提高自身水平,为国家信息化建设尽自己绵薄之力。

更多内容请见: 备考系统架构设计师-核心总结索引

这篇关于【系统架构设计师】论文:论SOA面向服务架构技术的应用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1124681

相关文章

PHP应用中处理限流和API节流的最佳实践

《PHP应用中处理限流和API节流的最佳实践》限流和API节流对于确保Web应用程序的可靠性、安全性和可扩展性至关重要,本文将详细介绍PHP应用中处理限流和API节流的最佳实践,下面就来和小编一起学习... 目录限流的重要性在 php 中实施限流的最佳实践使用集中式存储进行状态管理(如 Redis)采用滑动

深入浅出Spring中的@Autowired自动注入的工作原理及实践应用

《深入浅出Spring中的@Autowired自动注入的工作原理及实践应用》在Spring框架的学习旅程中,@Autowired无疑是一个高频出现却又让初学者头疼的注解,它看似简单,却蕴含着Sprin... 目录深入浅出Spring中的@Autowired:自动注入的奥秘什么是依赖注入?@Autowired

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Python 基于http.server模块实现简单http服务的代码举例

《Python基于http.server模块实现简单http服务的代码举例》Pythonhttp.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用Threa... 目录测试环境代码实现相关介绍模块简介类及相关函数简介参考链接测试环境win11专业版python

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Nginx中配置使用非默认80端口进行服务的完整指南

《Nginx中配置使用非默认80端口进行服务的完整指南》在实际生产环境中,我们经常需要将Nginx配置在其他端口上运行,本文将详细介绍如何在Nginx中配置使用非默认端口进行服务,希望对大家有所帮助... 目录一、为什么需要使用非默认端口二、配置Nginx使用非默认端口的基本方法2.1 修改listen指令

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

SysMain服务可以关吗? 解决SysMain服务导致的高CPU使用率问题

《SysMain服务可以关吗?解决SysMain服务导致的高CPU使用率问题》SysMain服务是超级预读取,该服务会记录您打开应用程序的模式,并预先将它们加载到内存中以节省时间,但它可能占用大量... 在使用电脑的过程中,CPU使用率居高不下是许多用户都遇到过的问题,其中名为SysMain的服务往往是罪魁