CN109992570A - 一种嵌入式***的文件同步方法 - Google Patents

一种嵌入式***的文件同步方法 Download PDF

Info

Publication number
CN109992570A
CN109992570A CN201910181129.XA CN201910181129A CN109992570A CN 109992570 A CN109992570 A CN 109992570A CN 201910181129 A CN201910181129 A CN 201910181129A CN 109992570 A CN109992570 A CN 109992570A
Authority
CN
China
Prior art keywords
file
client
server
data
received
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.)
Pending
Application number
CN201910181129.XA
Other languages
English (en)
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.)
SHANGHAI BAUD DATA COMMUNICATION CO Ltd
Original Assignee
SHANGHAI BAUD DATA COMMUNICATION CO 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 SHANGHAI BAUD DATA COMMUNICATION CO Ltd filed Critical SHANGHAI BAUD DATA COMMUNICATION CO Ltd
Priority to CN201910181129.XA priority Critical patent/CN109992570A/zh
Publication of CN109992570A publication Critical patent/CN109992570A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种嵌入式***的文件同步方法,其属于一种Client/Server(C/S)交互模型,C/S交互的协议建立在OSI(Open System Interconnection Reference Model)中的数据链路层之上,Client和Server分别运行自己的状态机,根据收到的协议报文进行状态变迁并处理文件数据。本发明方案为设备之间的文件传输提供了便利,并且可以让多台设备构成的***的文件集中存储在服务器上,避免分散维护带来额外的开销。

Description

一种嵌入式***的文件同步方法
技术领域
本发明涉及软件***中文件同步技术,具体涉及嵌入式***中的文件同步技术。
背景技术
机框式(包括分布式、集中式等)的***,是多台设备组合在一起的,包括主控和线卡,将它们的文件统一存储在作为服务器的主控设备上,能大大减少维护的复杂度,解决文件同步的问题成为关键。
但是传统的文件传输方式,需要通过TFTP、FTP等协议,对于无法配置 IP的情景,它们将无法应用。
由此可见,提供一种适用于嵌入式***的新的文件传输方案为本领域亟需解决的问题。
发明内容
针对现有多台设备的***中文件不易管理,以及现有文件传输方案在交互方面的缺陷,需要一种适用于嵌入式***的新的文件传输方案。
为此,本发明的目的在于提供一种嵌入式***的文件同步方法,以克服现有技术所存在的问题。
为了达到上述目的,本发明提供的嵌入式***的文件同步方法,所述文件同步方法属于一种Client/Server(C/S)交互模型,C/S交互的协议建立在OSI 中的数据链路层之上,Client和Server分别运行自己的状态机,根据收到的协议报文进行状态变迁并处理文件数据。
进一步的,所述文件同步方法将线卡设备作为客户端初始化,将主控设备作为服务器端初始化,线卡设备和主控设备之间建立以太网物理链路。
进一步的,所述文件同步方法允许客户端向服务器请求文件,和/或允许服务器主动向客服端更新文件。
进一步的,服务器端维护了不同类型客户端启动时所需的文件,并在收到不同客户端请求时,做出响应。
进一步的,所述文件同步方法中,客户端上线后,向主控设备上的服务器端发送请求报文,报文中包含了自己的客户端类型,服务器端收到之后,根据客户端的类型,找到对应的文件列表信息发送给客户端,客户端收到服务器端发送的文件列表信息后,在客户端本地查找对应文件,并将文件信息再答复给服务器端,服务端对客户端发送的文件信息进行比较,如果客户端文件和服务器端文件不一致,则需要更新客户端的文件。
进一步的,所述文件同步方法中主控设备上的服务器可以主动同步文件到客户端,服务器端可根据用户输入相应指令来同步文件到客户端。
进一步的,所述服务器中运行服务器端状态机,该服务器端状态机根据收到的报文进行状态变迁,并执行相应的动作。
进一步的,所述服务器端处理过程包括如下步骤:
1)接收到客户端的请求报文,表明客户端需要版本文件,服务器端需要向客户端发送报文,告知文件信息;
2)接收到客户端的FILE_INFO报文,根据INFO信息,判断该文件是否需要更新,向客户端发送OK/ERROR;
3)接收到DATA_REQUIEST报文,向客户端发送文件数据;
4)接收到DATA_RETRASMIT报文,向客户端重传文件数据;
5)接收到DATA_VERIFYOK,表示更新完成;
6)接收到DATA_VERIFYERROR,表示更新失败;
7)接收到FILE_RECV_OVER,表示客户端接收数据完毕,本次同步完成,关闭会话。
进一步的,所述客户端中运行客户端状态机,该客户端状态机根据收到的报文进行状态变迁,并执行相应的动作。
进一步的,所述客户端处理过程包括如下步骤:
1)接收到更新文件列表后,向服务器端发送文件info信息和列表索引;
2)接收到FILE_SERVER_ACK,表明上次传送给服务器的info信息,服务器已经收到,准备更新文件;
3)接受到READY_UPDATE,表明服务器准备好同步文件数据了,发送 DATA_REQUIEST,向服务器请求文件数据;
4)接收到FILE_DATA,表明这是文件数据,处理这些数据,写入内存或者文件***,如果接受的数据的长度是0,表明文件数据传输完成,发送 FILE_RECV_OVER通知主控关闭会话;
5)接收到FORCE_UPDATE,表明服务器端发起了强制更新,转步骤1)。
本发明为设备之间的文件传输提供了便利,并且可以让多台设备构成的***的文件集中存储在服务器上,避免分散维护带来额外的开销。
附图说明
以下结合附图和具体实施方式来进一步说明本发明。
图1为本发明实例中客户端主动向服务器请求文件流程示意图;
图2为本发明实例中服务器端主动向客户端更新文件流程示意图;
图3为本发明实例中服务器端状态机示意图;
图4为本发明实例中客户端状态机的示意图。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面结合具体图示,进一步阐述本发明。
本实例针对多台设备之间文件进行传输的问题,在多台设备之间维护一套文件同步***,以实现多台设备之间无需通过TFTP、FTP等协议,在不配置 IP的情况下,进行文件传输。
本文件同步***中的文件同步协议,建立在OSI中的数据链路层之上, Client和Server分别运行自己的状态机,根据收到的协议报文进行状态变迁并处理文件数据。
据此原理,本实例方案在具体实现时采用Server/Client模型,主要由服务器和客户端相互配合实现。
其中,服务器由主控设备来形成,而客户端则由线卡设备来形成,服务器端和客户端通过网络连接。
再者,服务器端维护了不同类型客户端启动时所需的文件列表,在收到不同客户端请求时,能找到对应的文件名。
作为举例,具体的记录格式如下:
[T]card_type:card_type为16进制数,如[T]0x15;
[N]description:description为机型的描述,如[N]LS12GE-TX;
[M]msu_filename:msu_filename表示要同步的文件在服务器的文件名;
[L]ls_filename:ls_filename表示要同步的文件在客户端的文件名。
举例,现在有一条记录:
[T]0x02
[N]LP66_16PON_SFP_CARD
[M]P66_LS_BIN
[L]P66_LS.BIN
当客户端上线时,发送报文给服务器端,告知自己的客户端类型是0x02,服务器端根据card_type进行查找,找到如上的记录,表示主控上的文件名是 P66_LS_BIN,同步给客户端时在客户端上命名为P66_LS.BIN。
在此基础上,为了能够使得服务器与客户端能够准确的执行相应的动作,本实例分别在服务器中运行服务器端状态机,在客户端中运行客户端状态机。
参见图3,其所示为运行在服务器中的服务器端状态机的示意图。由图可知,该服务器端状态机有两种状态,一种是空闲,另外一种是处理报文和文件。当服务器接收用户指令,或者是收到客户端的请求时,服务器从空闲态变为忙碌态,当同步完成或者是发生超时(一段时间没有收到客户端的响应),则又转变成空闲态。
参见图4,其所示为运行在客户端中的客户端状态机的示意图。由图可知,当客户端和服务器端的底层链接建立时(物理链路linkup,由底层模块通知),客户端状态转变为③,此时客户端需发送自己的客户类型给服务器,客户端转变为状态⑩,等待服务器的更新文件列表,客户端接受文件列表完毕后,转至状态⑪,发送自己的文件信息给服务器端,转至状态⑦,等待服务器的回复,如果是收到ACK(OK)表明文件无需更新转至状态⑧本次同步结束,如果是收到 ACK(ERROR)则需更新文件,转至状态④,开始正式进行文件同步,接受完文件数据后,将文件写入FLASH,同步结束。
由此,在服务器端,服务器端状态机根据收到的报文进行状态变迁,并执行相应的动作,服务器端要处理的报文如下:
1)接收到客户端发送的card_type报文(包含客户端的类型信息),表明客户端启动,需要版本文件,服务器端需要向客户端发送文件列表信息。
2)接收到客户端的FILE_INFO报文(包含要更新的文件的信息),根据该信息,判断该文件是否需要更新,并把结果告知客户端。以上文中客户端类型 0x02的客户端为例,客户端的FILE_INFO报文中包含P66_LS.BIN文件的长度和CRC校验和,主控上的服务器端检查P66_LS_BIN的文件长度和CRC校验和,如果文件长度或者CRC校验和不一致,则要更新客户端的文件,发送报文ACK_ERROR给客户端,如果无需更新,则发送ACK_OK给客户端。
3)接收到DATA_REQUIEST报文(客户端请求文件数据),向客户端发送文件数据。
4)接收到DATA_RETRASMIT报文(客户端请求重传文件数据,比如某次传输中出现CRC错误,则客户端会请求重传),向客户端重传文件数据。
5)接收到FILE_RECV_OVER报文,表示客户端处理数据完毕,本次同步完成,关闭会话。
由此,在客户端,客户端状态机根据收到的报文进行状态变迁,并执行相应的动作,主要动作过程如下:
1)接收到包含更新文件列表的报文后(更新文件列表报文,由服务器端发送,可以是用户输入指令同步文件时由服务端主动发送,也可以是服务器端相应客户端的请求后的回应),向服务器端发送文件info信息和列表索引,这些信息中包含文件长度和CRC校验和。
2)接收到FILE_SERVER_ACK报文,表明上次传送给服务器的info信息,服务器已经收到,FILE_SERVER_ACK报文只有两种,一种是ACK_OK表明文件无需同步,一种是ACK_ERROR表明客户端的文件和服务器端的文件不一致,需要更新。
3)接受到主控发送的READY_UPDATE报文,表明服务器准备好同步文件数据了,向服务器发送DATA_REQUIEST报文(向服务器请求文件数据)。
4)接收到FILE_DATA报文(表明这是文件数据),处理这些数据,写入内存或者文件***,如果最后接受的数据的长度是0,表明文件数据传输完成,发送FILE_RECV_OVER报文(客户端本地接收数据完成)通知主控关闭会话。
5)接收到FORCE_UPDATE报文(表明服务器端发起了强制更新),转步骤1)等待服务器发送文件列表信息。
另外,如果是服务器端主动向客户端更新文件,则不限于主控设备上的记录,可以指定文件进行同步,命令格式update ls[slot][filename_in_server] [filename_in_client],其中update ls是用户命令,参数slot指定要更新的客户端所在的槽位号,参数filename_in_server是服务器端要更新的文件名,参数 filename_in_client则是服务器端文件更新到客户端后在客户端上的文件名。
上述本发明的方法,或特定***单元、或其部份单元,为纯软件架构,可以透过程序代码布设于实体媒体,如硬盘、光盘片、或是任何电子装置(如智能型手机、计算机可读取的储存媒体),当机器加载程序代码且执行(如智能型手机加载且执行),机器成为用以实行本发明的装置。上述本发明的方法与装置亦可以程序代码型态透过一些传送媒体,如电缆、光纤、或是任何传输型态进行传送,当程序代码被机器(如智能型手机)接收、加载且执行,机器成为用以实行本发明的装置。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。

Claims (10)

1.嵌入式***的文件同步方法,其特征在于,所述文件同步方法采用Client/Server交互模型,Client/Server交互的协议建立在OSI中的数据链路层之上,Client和Server分别运行各自的状态机,根据收到的协议报文进行状态变迁并处理文件数据。
2.根据权利要求1所述的文件同步方法,其特征在于,所述文件同步方法将线卡设备作为客户端初始化,将主控设备作为服务器端初始化,线卡设备和主控设备之间建立以太网物理链路。
3.根据权利要求1所述的文件同步方法,其特征在于,所述文件同步方法允许客户端向服务器请求文件,和/或允许服务器主动向客服端更新文件。
4.根据权利要求1所述的文件同步方法,其特征在于,所述文件同步方法在服务器端维护了不同类型客户端启动时所需的文件,并在收到不同客户端请求时,做出响应。
5.根据权利要求1所述的文件同步方法,其特征在于,所述文件同步方法中,客户端上线后,向主控设备上的服务器端发送请求报文,报文中包含了自己的客户端类型,服务器端收到之后,根据客户端的类型,找到对应的文件列表信息发送给客户端;客户端收到服务器端发送的文件列表信息后,在客户端本地查找对应文件,并将文件信息再答复给服务器端;服务端对客户端发送的文件信息进行比较,如果客户端文件和服务器端文件不一致,则需要更新客户端的文件。
6.根据权利要求1所述的文件同步方法,其特征在于,所述文件同步方法中,主控设备上的服务器可主动同步文件到客户端,服务器根据输入的指令来同步文件到客户端。
7.根据权利要求1所述的文件同步方法,其特征在于,所述服务器中运行服务器端状态机,该服务器端状态机根据收到的报文进行状态变迁,并执行相应的动作。
8.根据权利要求5或7所述的文件同步方法,其特征在于,所述服务器端处理过程包括如下步骤:
1)接收到客户端的请求报文,表明客户端启动,需要版本文件,服务器端需要向客户端发送报文,告知文件信息;
2)接收到客户端的FILE_INFO报文,根据INFO信息,判断该文件是否需要更新,向客户端发送OK/ERROR;
3)接收到DATA_REQUIEST报文,向客户端发送文件数据;
4)接收到DATA_RETRASMIT报文,向客户端重传文件数据;
5)接收到DATA_VERIFYOK,表示更新完成;
6)接收到DATA_VERIFYERROR,表示更新失败;
7)接收到FILE_RECV_OVER,表示客户端接收数据完毕,本次同步完成,关闭会话。
9.根据权利要求1所述的文件同步方法,其特征在于,所述客户端中运行客户端状态机,该客户端状态机根据收到的报文进行状态变迁,并执行相应的动作。
10.根据权利要求5或9所述的文件同步方法,其特征在于,所述客户端处理过程包括如下步骤:
1)接收到更新文件列表后,向服务器端发送文件info信息和列表索引;
2)接收到FILE_SERVER_ACK,表明上次传送给服务器的info信息,服务器已经收到,准备更新文件;
3)接受到READY_UPDATE,表明服务器准备好同步文件数据了,发送DATA_REQUIEST,向服务器请求文件数据;
4)接收到FILE_DATA,表明这是文件数据,处理这些数据,写入内存或者文件***,如果接受的数据的长度是0,表明文件数据传输完成,发送FILE_RECV_OVER通知主控关闭会话;
5)接收到FORCE_UPDATE,表明服务器端发起了强制更新,转步骤1)。
CN201910181129.XA 2019-03-11 2019-03-11 一种嵌入式***的文件同步方法 Pending CN109992570A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910181129.XA CN109992570A (zh) 2019-03-11 2019-03-11 一种嵌入式***的文件同步方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910181129.XA CN109992570A (zh) 2019-03-11 2019-03-11 一种嵌入式***的文件同步方法

Publications (1)

Publication Number Publication Date
CN109992570A true CN109992570A (zh) 2019-07-09

Family

ID=67130271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910181129.XA Pending CN109992570A (zh) 2019-03-11 2019-03-11 一种嵌入式***的文件同步方法

Country Status (1)

Country Link
CN (1) CN109992570A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1964348A (zh) * 2005-11-09 2007-05-16 大唐移动通信设备有限公司 一种数据传输方法和***
CN101483576A (zh) * 2008-01-11 2009-07-15 上海博达数据通信有限公司 一种分布式***中的版本管理实现方法
US20100306311A1 (en) * 2009-05-29 2010-12-02 Thales Method of Downloading Large Size Data to a Large Number of Networked Client Machines from a Single Server
CN106790348A (zh) * 2016-11-11 2017-05-31 北京百卓网络技术有限公司 分布式***的文件上传及下载方法与***
CN108076101A (zh) * 2016-11-17 2018-05-25 中车株洲电力机车研究所有限公司 一种基于组管理的多点文件可靠传输方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1964348A (zh) * 2005-11-09 2007-05-16 大唐移动通信设备有限公司 一种数据传输方法和***
CN101483576A (zh) * 2008-01-11 2009-07-15 上海博达数据通信有限公司 一种分布式***中的版本管理实现方法
US20100306311A1 (en) * 2009-05-29 2010-12-02 Thales Method of Downloading Large Size Data to a Large Number of Networked Client Machines from a Single Server
CN106790348A (zh) * 2016-11-11 2017-05-31 北京百卓网络技术有限公司 分布式***的文件上传及下载方法与***
CN108076101A (zh) * 2016-11-17 2018-05-25 中车株洲电力机车研究所有限公司 一种基于组管理的多点文件可靠传输方法

Similar Documents

Publication Publication Date Title
CN103327073B (zh) 数据同步协议
KR101863398B1 (ko) 다중-서버 예약 시스템 상의 동기화 메커니즘 시스템 및 방법
US9721246B2 (en) Synchronization patterns for mobile applications
CN107172187B (zh) 一种负载均衡***和方法
CN112448858B (zh) 网络通信控制方法及装置、电子设备和可读存储介质
CN101483576B (zh) 一种分布式***中的版本管理实现方法
US20110093744A1 (en) Distributed Batch Runner
CN106209966A (zh) 管控端更新设备状态的方法、服务端的处理方法和装置
CN103605798A (zh) 一种直接操作云端存储文件的方法
CN103139157A (zh) 一种基于socket的网络通信方法、装置及***
CN113626002A (zh) 一种服务执行方法及装置
CN103731465A (zh) 分布式***及其事务处理方法
CN106161393A (zh) 实现多个内容管理服务操作的方法和装置
CN105991698A (zh) 移动终端远程管理智能路由器文件的方法、***及设备
CN107872492B (zh) 一种在服务端支持多用户编辑数据对象的方法和装置
CN105978796A (zh) 基于不稳定移动网络的消息通信方法及***
CN102594874B (zh) 一种同步处理方法和装置
CN103001962A (zh) 业务支撑方法和***
CN109992570A (zh) 一种嵌入式***的文件同步方法
CN114172821B (zh) 服务状态的同步方法、装置及服务器
US9860112B2 (en) Techniques for synchronizing operations between regions when a network connection fails
CN110233791A (zh) 数据去重方法和装置
CN109271454A (zh) 一种数据同步的方法及网络设备
CN103077231B (zh) 一种数据库同步的方法及***
CN103118072B (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