论文:论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技术,大大提高了系统开发效率,节省系统开发和维护成本,使系统具有更好的开放性、易扩展性,以及可移植性。从该项目完工后使用效果看,到达了预期目的,得到了用户的好评。
在今后的日子里,本人一定会更加努力钻研专业基础知识,提高自身水平,为国家信息化建设尽自己绵薄之力。
更多内容请见: 备考系统架构设计师-核心总结索引