论SOA在企业集成架构设计中的应用
摘要
2022年8月,我参与了胶凝砂砾石坝施工质量监控系统的开发工作,该系统旨在帮助水利工程建设法人单位、施工企业、监理机构及相关政府部门解决水利工程建设施工质量监控和工程项目管理等问题。我在该项目中担任系统分析师,主要负责该系统的系统分析及设计工作。本文以胶凝砂砾石坝施工质量监控系统为例,主要论述了SOA在企业集成架构设计中的具体应用。服务提供者主要完成服务的设计、描述、定义和发布等相关工作;服务注册中心保证该系统各个模块、服务的相互独立性与松耦合;服务请求者通过WebService技术调用服务。实践证明,通过以上技术的应用有效实现了资源共享和系统间的互操作性,提高了系统的灵活性,最终系统顺利上线,获得用户一致好评。
正文
胶凝砂砾石坝是在面板坝和碾压混凝土重力坝基础上发展起来的一种新坝型,其特点是采用胶凝砂砾石材料筑坝,使用高效率的土石方运输机械和压实机械施工。与常规坝型相比,胶凝砂砾石坝在适用性和经济性方面具有独特的优势,可以就地、就近取材,不需设置集料筛分,施工进度快,施工工序简单高效,因而要求施工过程紧凑,高峰期筑坝效率要求高,这给施工质量控制带来了一定的困难和风险,需要综合考虑影响施工质量的各方面因素,尽量采用自动化监控手段,加强实时质量监控力度,这使胶凝砂砾石坝施工质量监控系统应运而生。
2022年8月,我参与了胶凝砂砾石坝施工质量监控系统的开发工作,担任该系统的系统分析师,主要负责该系统的系统分析及设计工作。该系统的主要功能模块包括采料监控、运料监控、拌合监控、碾压监控和温湿度监控等。旨在帮助水利工程建设法人单位、施工企业、监理机构及相关政府部门,解决水利工程建设施工质量监控和工程项目管理等问题,通过信息技术和施工信息现场采集、实时传输、统一存储、科学分析和在线处理,及时生成质量监控报表和发布质量预警信息,提高水利工程建设管理和科学化、现代化和信息化,落实法人负责、监理控制、施工保证、政府监督等各项职能。因此,要满足该系统的需求,选择一种合适的架构技术至关重要。
SOA是一种应用程序架构,在这种架构中,所有功能都定义为独立的服务,服务之间通过交互和协调完成业务的整体逻辑。SOA指定了一组实体,包括服务提供者、服务消费者、服务注册表、服务条款、服务代理和服务契约,这些实体详细说明了如何提供和消费服务。服务提供者提供符合契约的服务,并将他们发布到服务代理。这些服务是自我包含的、无状态的实体,可以由多个组件组成。服务代理者作为存储库、目录库或票据交换所,产生由服务提供者发布的事先定义的标准化接口,使得服务可以提供给在任何异构平台和任何用户接口使用。这种松散耦合和跨技术实现,使各服务在交互过程中无需考虑双方的内部实现细节、实现技术、以及部署在什么平台上,服务消费者只需要提出服务请求,就可以发现并调用其他的软件服务得到答案。SOA作为一种粗粒度、松耦合的架构,具有松散耦合、粗粒度服务、标准化的接口、位置和传输协议透明、服务的封装和重用、服务的互操作等几个特点。
该系统要求开发周期短,系统灵活性高等,结合SOA的特点,我们最终采用了面向服务的、基于SOA的企业应用集成。下面具体论述其应用过程。
1、服务提供者
服务提供者主要完成服务的设计、描述、定义和发布等相关工作。经过对水利行业施工工程及施工工艺的深入研究,通过查阅《胶凝砂砾石坝施工指南》等相关资料,根据企业应用集成的要求,对胶凝砂砾石坝施工质量监控系统的业务流程进行梳理;综合考虑服务粗粒度、松耦合、自包含和模块化等特点进行服务的设计。为了避免服务通信期间,信息量过大,服务之间交互过于频繁,尽量的减少了服务的数量。同时,为了保证服务自身功能的完整性,尽可能的减少服务与系统之间的通信,在胶凝砂砾石坝施工质量监控系统的分析与开发过程中,先行设计,提取出了两个必要,急需的服务便于日后集成使用,其中包括拌合监控中标准拌合比对比服务和碾压监控中的碾压轨迹生成服务。
在标准拌合比对比服务中主要实现针对现有拌合配比与标准拌合比的对比,以判断现有拌合配比是否符合标准的工作。由于胶凝砂砾石坝就地、就近取材的特性,因此在不同的水利施工工地所使用的采料也不尽相同,标准拌合比对比服务预留了标准拌合比的输入接口,以适应不同的需求。在碾压轨迹生成服务中主要实现读取定位信息绘制碾压轨迹,以监控是否存在漏碾和欠碾的情况。由于受到胶凝砂砾石坝选址和机密程度的限制,定位信息可以选择GPS或者超宽带技术,但是两种定位的方式的数据格式并不相同,因此碾压轨迹生成服务的开发中预留了两种数据格式的接口来读取定位信息。待完成服务设计之后,服务提供者采用WSDL进行服务描述,而后再利用UDDI技术将这些服务信息发布至服务注册中心,公布查找和定位服务的方法。
2、服务注册中心和服务请求者
在胶凝砂砾石坝施工质量监控系统采用了服务注册中心。服务注册中心比不是一个必选角色,但是为了保证该系统各个模块、服务的相互独立性与松耦合,在该系统中依然保留了服务注册中心。同时,服务注册中心的存在也使得服务请求者与服务提供者之间进一步解耦。在服务注册中心包含有已发布的标准拌合比对比服务与碾压监控中的碾压轨迹生成服务的描述信息,其描述信息主要包括服务功能描述、参数描述、接口定义、信息传递等相关信息。
服务请求者通过WebService技术调用服务。当服务完成发布,在服务请求者要使用已发布的服务。利用Web Service技术在拌合监控阶段,通过服务注册中心获取拌合监控中标准拌合比对比服务的相关功能,接口,参数及其返回值等相关服务信息;之后使用Web Service技术传递服务所需的标准拌合比等相关参数,进而调用该服务相关的运算、处理和分析。利用Web Service技术在拌合监控阶段,通过服务注册中心获取实时施工数据采集处理服务的服务定义和功能,接口,参数及其返回值等相关服务信息;之后根据施工工地的具体情况选择不同的定位方式,传递服务所需相关参数,最后实时施工数据采集处理服务运行结束返回的绘制碾压轨迹坐标点同样是利用Web Service技术传递至服务请求者。服务请求者接收到碾压轨迹的坐标点后最终完成碾压轨迹的绘制工作并在界面中将其呈现出来。在这期间服务请求者无需了解服务是如何对数据进行处理和分析的。
整个项目历时10个月开发,于2023年6月完成交付,到目前运行稳定。通过在水利施工工地等恶略环境下的一段时间的使用,用户普遍反馈良好。总体来讲,选用SOA有如下优势:
- 1、系统更易维护。当需求发生变化时,不需要修改提供业务服务接口,只需要调整业务服务流程或者修改操作即可。
- 2、更高的可用性。该特点是在于服务提供者和服务请求者的松散耦合关系上得以发挥与体现。这种没有绑定在特定实现上、具有中立的接口定义的特征称为服务之间的松耦合。松耦合有两个明显的优势,一是它的灵活性,其独立于实现服务的硬件平台、操作系统和编程语言;二是当组成整个应用程序的每个服务的内部结构和实现逐渐地发生改变时,它能够继续存在。
- 3、更好的伸缩性,依靠业务服务设计、开发和部署等所采用的架构模型实现伸缩性。使得服务提供者可以互相彼此独立地进行调整,以满足新的服务需求。
实践证明,SOA技术的使用大大提高了系统开发效率,节省了开发和维护成本,使得系统具有更好的开放性、易扩展性和可维护性,从项目完工后的使用效果来看,达到了预期目的。