【系统架构设计师】论文:论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

相关文章

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

基于Python实现一个简单的题库与在线考试系统

《基于Python实现一个简单的题库与在线考试系统》在当今信息化教育时代,在线学习与考试系统已成为教育技术领域的重要组成部分,本文就来介绍一下如何使用Python和PyQt5框架开发一个名为白泽题库系... 目录概述功能特点界面展示系统架构设计类结构图Excel题库填写格式模板题库题目填写格式表核心数据结构

Linux系统中的firewall-offline-cmd详解(收藏版)

《Linux系统中的firewall-offline-cmd详解(收藏版)》firewall-offline-cmd是firewalld的一个命令行工具,专门设计用于在没有运行firewalld服务的... 目录主要用途基本语法选项1. 状态管理2. 区域管理3. 服务管理4. 端口管理5. ICMP 阻断

Java中的登录技术保姆级详细教程

《Java中的登录技术保姆级详细教程》:本文主要介绍Java中登录技术保姆级详细教程的相关资料,在Java中我们可以使用各种技术和框架来实现这些功能,文中通过代码介绍的非常详细,需要的朋友可以参考... 目录1.登录思路2.登录标记1.会话技术2.会话跟踪1.Cookie技术2.Session技术3.令牌技

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

Python使用Tkinter打造一个完整的桌面应用

《Python使用Tkinter打造一个完整的桌面应用》在Python生态中,Tkinter就像一把瑞士军刀,它没有花哨的特效,却能快速搭建出实用的图形界面,作为Python自带的标准库,无需安装即可... 目录一、界面搭建:像搭积木一样组合控件二、菜单系统:给应用装上“控制中枢”三、事件驱动:让界面“活”

Windows 系统下 Nginx 的配置步骤详解

《Windows系统下Nginx的配置步骤详解》Nginx是一款功能强大的软件,在互联网领域有广泛应用,简单来说,它就像一个聪明的交通指挥员,能让网站运行得更高效、更稳定,:本文主要介绍W... 目录一、为什么要用 Nginx二、Windows 系统下 Nginx 的配置步骤1. 下载 Nginx2. 解压

如何确定哪些软件是Mac系统自带的? Mac系统内置应用查看技巧

《如何确定哪些软件是Mac系统自带的?Mac系统内置应用查看技巧》如何确定哪些软件是Mac系统自带的?mac系统中有很多自带的应用,想要看看哪些是系统自带,该怎么查看呢?下面我们就来看看Mac系统内... 在MAC电脑上,可以使用以下方法来确定哪些软件是系统自带的:1.应用程序文件夹打开应用程序文件夹

windows系统上如何进行maven安装和配置方式

《windows系统上如何进行maven安装和配置方式》:本文主要介绍windows系统上如何进行maven安装和配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不... 目录1. Maven 简介2. maven的下载与安装2.1 下载 Maven2.2 Maven安装2.

使用Python实现Windows系统垃圾清理

《使用Python实现Windows系统垃圾清理》Windows自带的磁盘清理工具功能有限,无法深度清理各类垃圾文件,所以本文为大家介绍了如何使用Python+PyQt5开发一个Windows系统垃圾... 目录一、开发背景与工具概述1.1 为什么需要专业清理工具1.2 工具设计理念二、工具核心功能解析2.