CN112416656B - 一种用于车站应用服务器的数据离线存储方法 - Google Patents

一种用于车站应用服务器的数据离线存储方法 Download PDF

Info

Publication number
CN112416656B
CN112416656B CN202011422455.4A CN202011422455A CN112416656B CN 112416656 B CN112416656 B CN 112416656B CN 202011422455 A CN202011422455 A CN 202011422455A CN 112416656 B CN112416656 B CN 112416656B
Authority
CN
China
Prior art keywords
data
file
application server
station application
line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202011422455.4A
Other languages
English (en)
Other versions
CN112416656A (zh
Inventor
吴翔
卢颖涛
曹亚辉
陈震解
王亚飞
柯健
陈海欢
张鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casco Signal Ltd
Original Assignee
Casco Signal Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casco Signal Ltd filed Critical Casco Signal Ltd
Priority to CN202011422455.4A priority Critical patent/CN112416656B/zh
Publication of CN112416656A publication Critical patent/CN112416656A/zh
Application granted granted Critical
Publication of CN112416656B publication Critical patent/CN112416656B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1456Hardware arrangements for backup
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1461Backup scheduling policy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种用于车站应用服务器的数据离线存储方法,该方法采用离线数据存储方式,将终端软件发送过来的运行线、调度命令数据进行处理后,存储到本地文件中并进行双机同步备份。与现有技术相比,本发明具有使车站不安装数据库实现数据的本地存储等优点。

Description

一种用于车站应用服务器的数据离线存储方法
技术领域
本发明涉及数据存储方法,尤其是涉及一种用于车站应用服务器的数据离线存储方法。
背景技术
铁路信号调度集中(Centralized Train Control,CTC)系统是我国铁路保证行车安全、提高运输效率的基础装备,负责对列车运行的监督和控制,辅助行车调度人员对全线列车进行管理,是整个铁路系统有序、高效运行的核心。
目前,在CTC环境下,应用服务器设置在中心,各个车站的数据需通过应用服务器保存至中心数据库中,运行线以及调度命令等数据也需采用数据库等方式进行存储。而对于部分车站,利用数据库技术进行数据的存储及维护成本较高,且对于每个车站均需安装对应的数据库,无法满足车站需求。
经过检索,中国专利公开号CN108306989A公开了一种用于铁路调度集中系统的主备机数据同步方法,所述方法将主备机中的程序模块分为需要进行数据同步的程序模块和不需要进行数据同步的程序模块;对需要进行数据同步的每个程序模块分别建立通信连接通道,由主机程序模块对其读取到的数据进行逻辑运算,并将运算结果通过该通道同步到与其对应的备机程序模块;对不需要进行数据同步的程序模块,由主机程序模块和备机程序模块分别对其各自读取到的数据进行运算,减少了同步数据量。该现有技术存储列车调度集中业务的关键性数据,如列车运行图计划、运行实绩、调度命令、表示信息及其它调度集中业务数据的数据库服务系统,实现冗余和备份,但数据仍采用数据库进行存储,无法满足车站应用服务器需求。
发明内容
本发明的目的就是为了克服上述现有技术存在的缺陷而提供一种用于车站应用服务器的数据离线存储方法,使车站不安装数据库实现数据的本地存储。
本发明的目的可以通过以下技术方案来实现:
根据本发明的一个方面,提供了一种用于车站应用服务器的数据离线存储方法,该方法采用离线数据存储方式,将终端软件发送过来的运行线、调度命令数据进行处理后,存储到本地文件中并进行双机同步备份。
作为优选的技术方案,所述的车站应用服务器以十六进制格式将数据存储到本地文件,数据传输时采用设定的数据格式,车站应用服务器收到终端软件发送的数据后,将不同的数据采用数据结构进行解析存储到内存中。
作为优选的技术方案,对于每条数据,所述的车站应用服务器采用关键字进行标识,并在结构中存入数据长度,在内存中维持对应每条数据在文件中的存储位置。
作为优选的技术方案,所述的方法具体包括以下步骤:
步骤S1、通过TCP/IP以及GSoap通信机制,接收终端软件发送的运行线、调度命令的消息数据;
步骤S2、对于TCP/IP方式传输的运行线消息,采用序列化消息方式,将获取的数据进行反序列化,转存到程序内定义的运行线的存储结构中;
步骤S3、对于GSoap方式传输的调度命令数据,采用XML格式对数据进行解析,将解析的数据转存到程序内定义的调度命令的存储结构中;
步骤S4、将结构中存储的数据按照字节格式依次序列化成字节流,增加包含数据类型、数据操作类型、数据内容的结构,存储到程序的内存中;
步骤S5、车站应用服务器对于数据同时维护两份内存,第一份内存保存数据后,利用任务轮询读取内存中的数据去写入文件;第二份内存保存的数据,利用任务轮询读取数据后按照设定格式组包后,发送给备机;
步骤S6、写文件的任务读取到数据时,按照数据收到的操作类型,获取文件指针,并对文件进行相应操作;
步骤S7、发送给备机的数据,备机通过通信机制收到数据后,进行解析,判断是否为合法数据,若为非法数据进行丢弃,若为合法数据则写入内存中,通过任务轮询读取后写入文件;
步骤S8、对于写入文件中的数据,终端软件通过GSaoap方式发送消息进行查询,主机接收到查询消息后,打开对应班别的文件获取数据,以请求条件过滤后组成XML格式数据,返回给终端软件;
步骤S9、主备机连接时,只有主机A可响应终端软件的查询请求,备机B无法响应;
步骤S10、当退出的主机A重新启动后,自动成为备机去连接主机B。
作为优选的技术方案,所述的步骤S4中的内存中每个Item中包含了数据类型、数据操作类型、数据关键字、关键字数量、存入数据的长度、数据的内容。
作为优选的技术方案,所述的步骤S4具体为:
步骤S41、初始化存储内存数组ItemArray;
步骤S42、将数据结构中的数据按照设定格式序列化,复制到Item中的字节数组中;
步骤S43、获取该条数据主键Key的数量,以及各主键Key的值;
步骤S44、遍历内存中还未写入文件中存储的数据,判断是否有该条数据相同的Key,若存在与该条数据相同的Key,则根据上一次的操作类型来决定本次操作,如上一记录为Insert操作,本记录也为Insert操作,则修改本记录操作为update操作;若不存在与该条数据相同的Key,则将本记录的操作作为本次操作;
步骤S45、根据数据操作类型对文件进行插入、更新、删除操作。
作为优选的技术方案,所述的步骤S6中的操作类型包括增加、修改、删除。
作为优选的技术方案,所述的步骤S8具体为:
步骤S81、接收Gsoap发送来的XML查询消息;
步骤S82、解析出查询的时间以及请求条件;
步骤S83、根据查询的结束时间,获取当前班别;
步骤S84、打开班别对应的文件,遍历文件中的数据,找到符合条件的数据组包后发送给查询终端。
作为优选的技术方案,所述的步骤S9中,当主机A因为故障原因退出后,如果备机B一段时间内无法与主机A建立连接,则备机B自动切换成主机,继续响应终端软件的数据存储和查询请求。
作为优选的技术方案,所述的步骤S10中,主机B将当前文件中的数据发送至A进行同步,从而保证双机文件内容一致。
与现有技术相比,本发明具有以下优点:
1)本发明设计了一种数据存储方式,在内存中对数据的存储位置、数据类型进行存储,以便定位到数据在文件中的存储位置。
2)本发明省去数据库安装以及维护等工作,可通过对文件操作实现数据的增删改查。
3)本发明可取代数据库,将车站中的运行线、调度命令等数据进行存储,按照班别对数据进行存储,以文件形式实现了数据查询与跟踪。
4)本发明设计了一种车站服务器的数据存储方法,对运行线、调度命令进行存储,在此基础上,车站所需的其他相关数据可通过同样方式进行扩展。
附图说明
图1为本发明数据存储的流程图;
图2为本发明车站服务器软件界面示意图;
图3为本发明运行线终端显示软件的示意图;
图4为本发明调度命令终端显示软件的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
本发明主要研究CTC车站部署的车站应用服务器对于离线数据的存储技术,主要创新点:对于终端软件发送的运行线、调度命令等数据,采用TCP/IP、GSoap等通信机制相结合,对于接收的数据可按运行线、调度命令分别进行解析,并进行数据的合法性校验,防止数据错误;对于同一份数据,应用服务器中维持了用于存储本地的内存以及用于双机同步的内存,本地内存中数据始终维持最新的数据,可用来写入本地文件和当前文件中数据的恢复重写,双机同步内存中数据可用于双机同步;采用包括数据长度、主键、数据类型、数据类型、数据内容的自定义结构,将完整的结构作为数据写入文件,以实现对数据的定位和跟踪;主机和备机在程序启动时会进行文件数据的同步,保持双机文件的一致性;终端软件界面上可按照班次对应查询应用服务器存入本地文件的数据,应用服务器按照条件过滤后,返回给终端软件进行显示。
参考图1-4,说明本发明的技术方案,首先,参考图1,本领域技术人员很容易理解数据的本地存储过程。在图1基础上,图2介绍本发明的应用服务器界面,收到不同数据后界面有相应的日志打印。图3及图4介绍数据在终端软件上的显示方式。
首先参考图1,介绍本发明的数据存储过程,包括以下步骤:
步骤100:启动主备机的车站服务器程序,备机通过TCP/IP方式连接上主机,主机通过commsvr(应用通信服务器)与终端软件建立通信。
步骤101:备机连接上主机时,主机将当前文件中数据取出发送至备机,备机收取数据后对本地文件中的数据进行更新,完成数据初始化的双机同步。
步骤102:终端软件将所述的运行线、调度命令数据发送给服务器。以运行线数据为例,服务器收到终端软件发送的运行线数据,转为运行线结构数据,检验数据合法后,存入DBItem以及stbyItem。Item类代码实现如下:
Figure BDA0002823065470000051
步骤103:存入DBItem中的数据,通过任务轮询,将数据依次取出,实现如下:
Figure BDA0002823065470000052
Figure BDA0002823065470000061
步骤104:从DBItem中依次读取出item数据后,将m_pLang中数据放入FileContentTag的m_Content中,并最终将数据转成FCTagInFile格式,文件中的数据内容按照FCTagInFile格式写入。存储至文件中的FCTagInFile结构代码如下:
Figure BDA0002823065470000062
Figure BDA0002823065470000071
步骤105:根据数据操作类型m_OperType,对当前班文件执行对应操作,以Insert操作为例,实现代码如下:
Figure BDA0002823065470000072
Figure BDA0002823065470000081
步骤106:存入stbyItem中的数据,以轮询函数读取,利用组包方式,发送给备机。实现代码如下:
Figure BDA0002823065470000082
步骤107:备机收到主机发送的数据,通过解析出数据的类型,定位对应的DBItem,将数据存储到Item中,后执行步骤102,写入备机本地文件中。
步骤108:文件在本地保存方式则按照车站工作模式,一天可分为两个班次,一个班次对应生成一个文件用于存储数据,应用服务器在换班时间点自动生成新的文件写入,在查询数据时只需打开对应的班别文件去读取数据即可。
参考图2,服务器程序收到从终端软件获取的数据,以运行线为例,对数据按照Item格式存入内存中,而后对文件执行对应的insert、update、delete操作。
参考图3,终端软件接收到运行线数据后,会先向服务器程序发送数据进行存储,再向服务端程序发送请求,获取运行线数据并显示。
参考图4,终端软件可收取调度命令数据或建立调度命令发送给服务器程序进行存储,也可通过对应班别查询服务器程序在文件中写入的数据并显示。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (9)

1.一种用于车站应用服务器的数据离线存储方法,其特征在于,该方法采用离线数据存储方式,将终端软件发送过来的运行线、调度命令数据进行处理后,存储到本地文件中并进行双机同步备份;
所述的方法具体包括以下步骤:
步骤S1、通过TCP/IP以及GSoap通信机制,接收终端软件发送的运行线、调度命令的消息数据;
步骤S2、对于TCP/IP方式传输的运行线消息,采用序列化消息方式,将获取的数据进行反序列化,转存到程序内定义的运行线的存储结构中;
步骤S3、对于GSoap方式传输的调度命令数据,采用XML格式对数据进行解析,将解析的数据转存到程序内定义的调度命令的存储结构中;
步骤S4、将结构中存储的数据按照字节格式依次序列化成字节流,增加包含数据类型、数据操作类型、数据内容的结构,存储到程序的内存中;
步骤S5、车站应用服务器对于数据同时维护两份内存,第一份内存保存数据后,利用任务轮询读取内存中的数据去写入文件;第二份内存保存的数据,利用任务轮询读取数据后按照设定格式组包后,发送给备机;
步骤S6、写文件的任务读取到数据时,按照数据收到的操作类型,获取文件指针,并对文件进行相应操作;
步骤S7、发送给备机的数据,备机通过通信机制收到数据后,进行解析,判断是否为合法数据,若为非法数据进行丢弃,若为合法数据则写入内存中,通过任务轮询读取后写入文件;
步骤S8、对于写入文件中的数据,终端软件通过GSaoap方式发送消息进行查询,主机接收到查询消息后,打开对应班别的文件获取数据,以请求条件过滤后组成XML格式数据,返回给终端软件;
步骤S9、主备机连接时,只有主机A可响应终端软件的查询请求,备机B无法响应;
步骤S10、当退出的主机A重新启动后,自动成为备机去连接主机B。
2.根据权利要求1所述的一种用于车站应用服务器的数据离线存储方法,其特征在于,所述的车站应用服务器以十六进制格式将数据存储到本地文件,数据传输时采用设定的数据格式,车站应用服务器收到终端软件发送的数据后,将不同的数据采用数据结构进行解析存储到内存中。
3.根据权利要求2所述的一种用于车站应用服务器的数据离线存储方法,其特征在于,对于每条数据,所述的车站应用服务器采用关键字进行标识,并在结构中存入数据长度,在内存中维持对应每条数据在文件中的存储位置。
4.根据权利要求1所述的一种用于车站应用服务器的数据离线存储方法,其特征在于,所述的步骤S4中的内存中每个Item中包含了数据类型、数据操作类型、数据关键字、关键字数量、存入数据的长度、数据的内容。
5.根据权利要求1所述的一种用于车站应用服务器的数据离线存储方法,其特征在于,所述的步骤S4具体为:
步骤S41、初始化存储内存数组ItemArray;
步骤S42、将数据结构中的数据按照设定格式序列化,复制到Item中的字节数组中;
步骤S43、获取该条数据主键Key的数量,以及各主键Key的值;
步骤S44、遍历内存中还未写入文件中存储的数据,判断是否有该条数据相同的Key,若存在与该条数据相同的Key,则根据上一次的操作类型来决定本次操作,如上一记录为Insert操作,本记录也为Insert操作,则修改本记录操作为update操作;若不存在与该条数据相同的Key,则将本记录的操作作为本次操作;
步骤S45、根据数据操作类型对文件进行插入、更新、删除操作。
6.根据权利要求1所述的一种用于车站应用服务器的数据离线存储方法,其特征在于,所述的步骤S6中的操作类型包括增加、修改、删除。
7.根据权利要求1所述的一种用于车站应用服务器的数据离线存储方法,其特征在于,所述的步骤S8具体为:
步骤S81、接收Gsoap发送来的XML查询消息;
步骤S82、解析出查询的时间以及请求条件;
步骤S83、根据查询的结束时间,获取当前班别;
步骤S84、打开班别对应的文件,遍历文件中的数据,找到符合条件的数据组包后发送给查询终端。
8.根据权利要求1所述的一种用于车站应用服务器的数据离线存储方法,其特征在于,所述的步骤S9中,当主机A因为故障原因退出后,如果备机B一段时间内无法与主机A建立连接,则备机B自动切换成主机,继续响应终端软件的数据存储和查询请求。
9.根据权利要求1所述的一种用于车站应用服务器的数据离线存储方法,其特征在于,所述的步骤S10中,主机B将当前文件中的数据发送至A进行同步,从而保证双机文件内容一致。
CN202011422455.4A 2020-12-08 2020-12-08 一种用于车站应用服务器的数据离线存储方法 Active CN112416656B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011422455.4A CN112416656B (zh) 2020-12-08 2020-12-08 一种用于车站应用服务器的数据离线存储方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011422455.4A CN112416656B (zh) 2020-12-08 2020-12-08 一种用于车站应用服务器的数据离线存储方法

Publications (2)

Publication Number Publication Date
CN112416656A CN112416656A (zh) 2021-02-26
CN112416656B true CN112416656B (zh) 2022-08-26

Family

ID=74776139

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011422455.4A Active CN112416656B (zh) 2020-12-08 2020-12-08 一种用于车站应用服务器的数据离线存储方法

Country Status (1)

Country Link
CN (1) CN112416656B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113190385A (zh) * 2021-05-21 2021-07-30 卡斯柯信号有限公司 车站应用服务器主备机的数据同步方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1808394A (zh) * 2006-02-20 2006-07-26 南京联创科技股份有限公司 基于内存数据库的软双机方法
CN103023879A (zh) * 2012-11-26 2013-04-03 国电南瑞科技股份有限公司 一种基于高速缓存的数据中心间广域数据同步方法
CN108306989A (zh) * 2018-04-20 2018-07-20 北京全路通信信号研究设计院集团有限公司 一种用于铁路调度集中系统的主备机数据同步方法
CN109194720A (zh) * 2018-08-15 2019-01-11 京信通信系统(中国)有限公司 主备机数据同步方法、装置和计算机设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9626250B2 (en) * 2015-03-16 2017-04-18 International Business Machines Corporation Data synchronization of block-level backup

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1808394A (zh) * 2006-02-20 2006-07-26 南京联创科技股份有限公司 基于内存数据库的软双机方法
CN103023879A (zh) * 2012-11-26 2013-04-03 国电南瑞科技股份有限公司 一种基于高速缓存的数据中心间广域数据同步方法
CN108306989A (zh) * 2018-04-20 2018-07-20 北京全路通信信号研究设计院集团有限公司 一种用于铁路调度集中系统的主备机数据同步方法
CN109194720A (zh) * 2018-08-15 2019-01-11 京信通信系统(中国)有限公司 主备机数据同步方法、装置和计算机设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Research on file synchronization backup system based on security policy";Dongming Chen 等;《2011 IEEE 3rd International Conference on Communication Software and Networks》;20110908;246-249 *
"铁路调度集中系统实时备份与应急切换技术";胡跃华 等;《计算机系统应用》;20160229;第25卷(第2期);223-226 *

Also Published As

Publication number Publication date
CN112416656A (zh) 2021-02-26

Similar Documents

Publication Publication Date Title
CN110113420B (zh) 基于nvm的分布式消息队列管理系统
CN100562858C (zh) 内存数据库远程容灾的方法、装置和系统
CN1794207B (zh) 实现缓存一致性的方法和系统
US7043504B1 (en) System and method for parallel primary and secondary backup reading in recovery of multiple shared database data sets
KR100471567B1 (ko) 이중화 시스템 환경에서 데이터 동기화를 위한 트랜잭션관리 방법
CN110012088B (zh) 一种基于Kubernets的Redis主从集群自动化部署方案
US20030229764A1 (en) Data storage subsystem
CN103051681B (zh) 一种面向分布式文件系统的协作式日志系统
CN104820701A (zh) 数据记录和同步方法及系统
CN102081611A (zh) 一种主、备网管系统数据库同步的实现方法及装置
CN102761615A (zh) 一种实现远程复制系统数据同步的方法及装置
US20110302382A1 (en) Storage system, remote copy and management method therefor
CN105491106A (zh) 一种石油测井主从数据库系统实时同步系统和方法
CN112416656B (zh) 一种用于车站应用服务器的数据离线存储方法
CN100385407C (zh) 网络信息系统异地数据镜像方法
CN114374701B (zh) 一种多级联动人工智能平台样本模型透明共享装置
CN1217270C (zh) 一种同网异构数据备份系统及其实现方法
CN102594874A (zh) 一种同步处理方法和装置
CN109189573A (zh) 一种基于nvdimm的异构内存管理系统
JP2003330781A (ja) データ多重保障方法
US7143082B2 (en) Distributed-processing database-management system
CN111506668B (zh) 机器人集群智能化数据同步方法及系统
CN110362428A (zh) 在线自动恢复数据库块的方法和系统
CN113946623B (zh) 一种主备系统数据实时同步系统及方法
CN116226093B (zh) 基于双活高可用架构的实时数据库系统

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40038781

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant