# 项目文档汇总 **Repository Path**: yangqdseu/summary_of_project_documents ## Basic Information - **Project Name**: 项目文档汇总 - **Description**: 项目文档汇总 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2019-08-26 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 项目文档汇总 #### 项目介绍 项目文档汇总,涵盖轨道交通中主要项目相关设计文档、开发档与项目链接 #### 设计综述 项目主要用于轨道交通综合监控中的数据采集、处理与转发,主要由JAVA构成,由于轨道交通部署环境大多为双机热备部署,因此设计时需要考虑到主备切换,故障转移,以及一些第三方组件在集群部署时必须使用三台服务器进行部署而主备双机环境难以满足的情况 #### 软件架构 1.采集模块:包含MODBUS,IEC104(60875-104)协议采集,第三方自定义协议采集等 2.数据处理模块:采集数据缓存,归档,数据抽取与转发,使用JEDIS与INFLUXDB CLIENT进行主要开发 3.展示模块:由常见的SSM或spring boot框架构成的B/S模块,用于展示采集层所采集到的设备信息 4.运维模块:采集服务器所运行的应用信息,必要时进行应用重启或根据配置进行定时重启 #### 项目介绍 1.采集模块 1)modbus采集基类:j2mod 2.6-se 项目地址:https://gitee.com/dufzh/j2mod.git 由github项目j2mod 2.6 FORK而来,通信使用java原生socket与BIO,由于原项目部分接口定义为私有,为方便二次开发,更改为公有接口并移至开源中国,并更改版本号为j2mod 2.6-se。 2)modbus采集应用:SEModbus 项目地址:https://gitee.com/dufzh/SEmodbus.git 基于j2mod 2.6-se,spring,mybatis开发,分为master与long_poll,simdata三个分支,simdata为模拟数据使用,已不再维护,master分支为短轮询分支(即每次读取数据就会发起连接,连接设备读取后断开),long_poll为长轮询分支(即保持应用与设备的socket连接,读取数据后仍然保持连接),数据采集后放入redis进行缓存,由于现有采集压力较大(15-20万点),因此长轮询分支较为适合当前的使用场景。 3)104采集基类:IEC104BASE 项目地址:https://gitee.com/dufzh/IEC104BASE.git 由openmuc组织的IEC 60870-5-104项目FORK而来,通信使用java原生socket与BIO,原项目使用gradle 3.3进行构建,由于构建较为复杂,目前已将项目通过脚本构建为MAVEN项目,原有GRADLE脚本仍然保留,可继续使用gradle 3.3版本构建(高版本gradle会报方法未找到错误)。 · 2.数据处理模块 1)缓存与实时数据库选件:REDIS,INFLUXDB。缓存采集到的实时数据以供程序异步处理,包括归档,转发,生成事件与报警等 2)数据处理项目:midware 项目地址:https://gitee.com/dufzh/midware.git 项目基于springboot架构,制作简单展示页面用于嵌入至西门子平台系统。从采集缓存中抽取实时数据进行转发(目前已向玖道转发17号线CIOS数据)。支持通过HTTP请求对MODBUS设备进行指令下发 3.展示模块 由常见的SSM或spring boot框架构成的B/S模块,用于展示采集层所采集到的设备信息,包含工单流转,服务器状态信息展示,报文展示等功能,目前尚未开始此部分开发。 4.运维模块 1)定时任务,运行数据采集项目:checkApp 项目地址:https://gitee.com/dufzh/CheckApp.git 基于springboot架构,用于采集服务中运行的其他应用运行信息,配置定时重启任务,主备或多机切换,部分功能依赖zookeeper #### 项目现存问题 1.modbus采集应用:SEModbus 项目地址:https://gitee.com/dufzh/SEmodbus.git 1)部分设备采集时与标准MODBUS协议起始点不一致,标准为从0开始,而部分设备从1 开始,存在1位偏移量,需要针对不同设备做到可配置偏移量功能 2)缺少对外API接口 #### 项目功能点 checkApp 1.对redis,zookeeper运行状态进行监控 2.对其他内部应用进行监控: 1)定时重启 2)采集运行状态 3)运行状态判断,例:监控应用是否从start状态成功转入work状态,累积判断5次不成功后重启此应用,并记录日志