1)常规软件架构分析
常规软件架构基本可满足综合监控平台的功能需求,目前常规隧道常用软件架构主要为ESB架构等传统架构。常规软件架构ESB主要优点如下:
本身有灵活性,根据需求变化,可重新编排服务或应用程序;
√ 对IT资产的复用;
使企业的信息化建设真正以业务或应用为核心,业务人员根据需求编排服务,不需要考虑技术细节。
但传统软件架构在软件接口统一性、服务编排灵活度、IT资源利用方面均存在不足,存在的弊端也不可忽视:
√ 应用复杂度增加,更新、维护困难
一个简单的应用会随着时间的推移而逐渐变大,那么开发团队将会面临很多问题,其中最主要问题就是这个应用太复杂,以至于任何单个开发者都很难进行二次开发或维护,特别是那些刚加入团队的开发人员,应用程序可能难以理解和修改。
√ 易造成系统资源浪费
虽然使用负载均衡的方式可以对项目中的服务容量进行水平扩展,这样导致其他不需要扩展的服务也进行了相应的扩展,但这种扩展是不需要的,因此这种方式会极大的浪费资源。
√ 影响开发效率
当一个应用越大时,启动时间就会越长。开发和调试的过程中,如果有很大一部分时间都要在等待中渡过,那么必然会对开发效率有极大的影响。
√ 应用可靠性低
传统单体应用架构在运行时的可靠性比较低,当所有模块都运行在一个进程中时,如果任何一个模块中出现了一个Bug,可能会导致整个进程崩溃,从而影响到整个应用。
√ 不利于技术的更新
传统单体应用架构一旦选定使用某些技术,则后期的开发和扩展将在这些技术的基础上实现。如果需要更改某种技术,则可能需要将整个应用全部重新开发,这种成本是非常大的。
√ 存储方式单一
传统单体架构所有的模块都共用一个数据库,一旦某个系统存储出现问题,可能会导致整个数据库数据错乱等问题。
本文建议采用的微服务架构,具有以下几个优点:
√ 易与开发和维护
由于微服务单个模块就相当于一个项目,开发这个模块我们就只需要关心这个模块的逻辑即可,代码量和逻辑复杂度都会降低,从而易于开发和维护。
√ 启动较快
相对单个微服务来说,相比于启动传统单体框架的整个项目,启动某个模块的服务速度明显是要快很多的。
√ 局部修改易部署
在开发中发现问题,如果是传统单体架构的话,就需要重新发布并启动整个项目,非常耗时间。微服务则不同,可以针对性的对软件模块出现的问题进行修复;修复后的软件模块部署相对简单,不必重启整个项目从而大大节约时间。
√ 按需伸缩
传统单体架构在想扩展某个模块的性能时不得不考虑到其他的模块的性能会不会受到影响,对于微服务而言,完全不是问题,任何模块通过任何方式来提升本身性能不比考虑其它模块的情况。
此外,相比于ESB\SOA更加精细,更多的以独立的进程的方式存在,互相之间并无影响;提供的接口方式更加通用化,各种终端都可以调用,无关语言、平台限制;更倾向于分布式去中心化的部署方式,适用于多遂管理的系统建设,可支持多隧道设施接入和统一中心的区域设施管理。
2)设备接口不统一、协议不兼容
由于隧道硬件厂商品牌繁多,各外场终端软件接口不统一、软件协议不兼容,数据格式标准不一致,软件硬件紧密耦合度不高,功能扩充弹性低,难以满足产线升级和重组需求,且整合不易。