发明内容
本发明要解决的技术问题在于避免现有技术的不足之处而提出确保网关装置与网关用户卡数据一致性的基于机卡分离式网关装置的数据同步方法。
本发明解决所述技术问题可以通过采用以下技术方案来实现:
提出一种基于机卡分离式网关装置的数据同步方法,所述机卡分离式网关装置包括设置有卡槽的网关装置,可拆装的安装在卡槽内的网关用户卡,以及安装在网关装置内的读写数据处理模块和数据同步模块。所述方法包括:
借助读写数据处理模块和数据同步模块完成的网关装置对网关用户卡的读卡过程和写卡过程;所述方法定义一无效卡文件和最大多实例卡文件数量;
所述读卡过程包括,网关装置读取存储在网关用户卡上的多实例卡文件,当读取到无效卡文件时,或者读取的多实例卡文件数量达到最大多实例卡文件数量时,网关装置停止读取多实例卡文件;将读取的多实例卡文件进行格式转换,使多实例卡文件转换为网关装置能够进行处理的数据格式;
所述写卡过程包括,网关装置对需要写入网关用户卡的数据进行格式转换,使数据转换为能够存储在网关用户卡内的多实例卡文件;如果格式转换形成的多实例卡文件数量小于最大多实例卡文件数量,在多实例卡文件后加入一无效卡文件;如果格式转换形成的多实例卡文件数量等于最大多实例卡文件数量,不加入无效卡文件,从而形成多实例卡文件组;将多实例卡文件组写入网关用户卡内的存储空间。
具体地,所述多实例卡文件以连续地地址存储在网关用户卡的存储空间内。
所述网关用户卡存储的数据形式还包括单实例卡文件。所述读卡过程还包括,网关装置读取存储在网关用户卡上的单实例卡文件,将读取的单实例卡文件进行格式转换,使单实例卡文件转换为网关装置能够进行处理的数据格式;
所述写卡过程还包括,网关装置对需要写入网关用户卡的数据进行格式转换,使数据转换为能够存储在网关用户卡内的单实例卡文件;随后将单实例卡文件写入网关用户卡内的存储空间。
对于网关装置的整体数据同步过程,包括如下步骤,
A. 检测网关用户卡是否在线,如果网关用户卡在线,执行步骤B;如果网关用户卡不在线,执行步骤I;
B. 按照读卡过程,网关装置读取网关用户卡的序列号,以及存储在该网关用户卡内的介质访问控制层Media Access Control地址;
比对网关装置内存储的网关用户卡的序列号与读取的当前网关用户卡的序列号是否一致,比对网关用户卡的介质访问控制层MAC地址与网关用户卡内存储的网关装置的介质访问控制层MAC地址是否一致;
如果两者都一致,执行步骤H;
如果两者不一致,执行步骤C;
C. 网关装置所有数据恢复成出厂预置数据;网关装置连接并向终端综合管理系统Integrated Terminal Management System发送网关用户卡的信息,进而请求下发网关用户卡的读写控制密钥;
D. 终端综合管理系统ITMS核对步骤C发送的网关用户卡信息无误,向网关装置发送网关用户卡的读写控制密钥;
E. 网关装置与网关用户卡之间进行双向鉴权,双向鉴权通过,执行步骤F;双向鉴权不通过,执行步骤I;
F. 按照所述读卡过程,网关装置读取网关用户卡的参数;
网关装置存储网关用户卡的读写控制密钥,读取网关用户卡内数据并存储网关用户卡的序列号;
按照所述写卡过程,网关装置将自身介质访问控制层MAC地址写入网关用户卡;
G. 网关装置向终端综合管理系统ITMS上报读卡成功;执行步骤J;
H. 网关装置使用其内部保存的参数数据进行业务配置,并使之生效;执行步骤L;
I. 网关装置以普通用户权限启动;执行步骤N;
J. 如果终端综合管理系统ITMS有工单数据下发,网关装置根据ITMS下发的工单修改配置参数,执行步骤K;
K. 按照所述写卡过程,网关装置将修改后的配置参数写入网关用户卡;执行步骤L;
L. 网关装置以管理员用户权限启动;执行步骤M至步骤N;
M. 网关装置在运行过程中,用户在界面上添加、修改或删除配置数据,首先在网关装置配置生效,然后按照所述写卡过程,网关装置将修改后的配置参数写入网关用户卡;
N. 网关装置实时检测网关用户卡的在线状态,
如果网关用户卡不在线,网关装置自动切换到以普通用户权限启动的普通用户管理模式,从而使涉及到需要同步的数据参数对用户不可见,进而就不能被修改;
如果网关用户卡在线,执行步骤B。
同现有技术相比较,本发明“基于机卡分离式网关装置的数据同步方法”的技术效果在于:
本发明确保网关装置内存储数据与网关用户卡内存储数据一致,有效、快速、准确地实现机卡分离型网关装置的同步机制。
具体实施方式
以下结合附图所示优选实施例作进一步详述。
本发明提出一种基于机卡分离式网关装置的数据同步方法,如图1所示,所述机卡分离式网关装置包括设置有卡槽的网关装置,可拆装的安装在卡槽内的网关用户卡,以及安装在网关装置内的读写数据处理模块和数据同步模块。网关用户卡使用用户身份识别模块Subscriber Identity Module卡,简称SIM卡。网关装置与网关用户卡之间的数据同步是通过数据同步模块和读写数据处理模块完成。所述读写数据处理模块在本发明实施例中采用读卡器。本发明所述数据同步方法包括:
借助读写数据处理模块和数据同步模块完成的网关装置对网关用户卡的读卡过程和写卡过程;所述方法定义一无效卡文件和最大多实例卡文件数量;
所述读卡过程包括,网关装置读取存储在网关用户卡上的多实例卡文件,当读取到无效卡文件时,或者读取的多实例卡文件数量达到最大多实例卡文件数量时,网关装置停止读取多实例卡文件;将读取的多实例卡文件进行格式转换,使多实例卡文件转换为网关装置能够进行处理的数据格式;
所述写卡过程包括,网关装置对需要写入网关用户卡的数据进行格式转换,使数据转换为能够存储在网关用户卡内的多实例卡文件;如果格式转换形成的多实例卡文件数量小于最大多实例卡文件数量,在多实例卡文件后加入一无效卡文件;如果格式转换形成的多实例卡文件数量等于最大多实例卡文件数量,不加入无效卡文件,从而形成多实例卡文件组;将多实例卡文件组写入网关用户卡内的存储空间。
本发明以下实施例中,所述多实例卡文件以连续地地址存储在网关用户卡的存储空间内。
所述网关用户卡存储的数据形式还包括单实例卡文件。对于单实例文件所述读卡过程还包括,网关装置读取存储在网关用户卡上的单实例卡文件,将读取的单实例卡文件进行格式转换,使多实例卡文件转换为网关装置能够进行处理的数据格式;所述写卡过程还包括,网关装置对需要写入网关用户卡的数据进行格式转换,使数据转换为能够存储在网关用户卡内的单实例卡文件;随后将单实例卡文件写入网关用户卡内的存储空间。
本发明实施例,网关用户卡内数据以文件的形式保存在网关用户卡,即SIM卡上,每个文件有文件名,卡文件分为单实例文件和多实例文件。单实例卡文件比较简单,如上所述,通过简单处理就能够和网关侧数据一一对应。多实例卡文件根据实际需要预估最大文件个数,以多个连续文件的形式存储在网关用户卡上。
网关装置的数据包括来自网络浏览器web页面,终端综合管理系统ITMS下发的工单和界面操作,其数据格式完全不同于网关用户卡文件的格式,需要进行两种数据格式之间的相互转换。
网关装置以文件为单位进行读写卡。网关装置发送一个读卡文件指令,读卡器读出网关用户卡内存储的卡文件并返回给网关装置,然后网关装置把卡文件内容统一转换成它能够识别的数据格式,再对数据进行配置生效。网关装置写卡文件时,需要先把网关装置内部的数据格式转换为卡文件格式,再发送到读卡器,读卡器负责把文件保存到网关用户卡上。
多实例卡文件是存储在网关用户卡上的多个位置连续的文件,以表示一组数据参数,网关装置对于多实例卡文件的同步处理,涉及到多个文件中数据的增加、修改或删除,如果按照普通文件的方式处理则比较复杂。由于多实例卡文件的总个数不会很多,本发明采用基于无效卡文件作为结束符的方式进行灵活处理。
本发明实施例中正常的卡文件格式为,
<P00="1" P01="2" P02="0" P03="0" P04="1" P05="1000" P06="1" P07=""P08="1" P09="00" P0A="0" P0B="1" P0C="" P0D="" P0E="" P0F="" P10="" P11=""P12="">。
定义无效卡文件的格式为,
<P00="0xFF">。
用于完成不同参数配置可以配置不同的多实例卡文件,因此,完成不同参数配置的最大多实例卡文件数量也可以采用分别定义的方式。本发明优选实施例,以建立简称WAN连接的、即广域网Wide Area Network连接的配置参数为例,建立WAN连接的多实例卡文件一共有10个卡文件(每个卡文件不超过2000字节,以结构体cf_wan表示),定义为数组形式,使用一个变量count表示数组中有效元素的个数。也就是最大多实例卡文件数量是10。其源程序形式可参考如下,
#define MAX_WAN_NUM 10
typedef struct
{
cf_wan wan_para[MAX_WAN_NUM];
int count;
} STRU_WAN。
建立WAN连接参数的10个多实例卡文件在卡中的逻辑存储顺序如下,文件名分别为6F07至6F10,每个卡文件存放一条WAN数据。其存储形式示意如下,
6F07 |
6F08 |
6F09 |
6F0A |
6F0B |
6F0C |
6F0D |
6F0E |
6F0F |
6F10 |
在网关装置与网关用户卡之间建立WAN连接进行数据同步时,需要处理所有的WAN参数,不超过10个多实例卡文件,即最大多实例卡文件数量是10。
读卡过程具体为,使用无效卡文件作为文件的结束标志来判断数据的有效元素。读卡器依次读取多个建立WAN连接的多实例卡文件,当读到无效卡文件的时候认为结束,以此来决定有效的卡文件个数,即有效数组元素的个数count。如果没有读到无效卡文件,则读到的全部卡文件都是有效数据。在获取读卡参数之后,根据无效卡文件得到count的值,再把count个有效多实例卡文件进行数据格式转换并设置到网关装置。网关装置会自动处理多实例卡文件转换而成的多实例参数,并使之生效。如果有效卡文件很少,则可以减少读卡次数,从而提高速度。
写卡过程具体为,把网关装置的有关建立WAN连接的数据经格式转换之后依次写到多个建立WAN连接的多实例卡文件中,如果多实例卡文件的数量没有达到数组的容量MAX_WAN_NUM,即设置为10的最大多实例卡文件数量,再写一个无效卡文件作为结束符。如果达到数组容量,即形成数据转换形成10个多实例卡文件,不写结束符,即无效卡文件,全部多实例卡文件都是有效数据。
根据上述方法,解决了多实例卡文件在增加、修改或删除过程中的数据同步问题。
下面对建立WAN连接参数在网关装置与网关用户卡之间通过读写卡过程完成的涉及多实例卡文件增加、修改或删除的同步过程进行示意性地详细说明,
假如网关用户卡内存储有建立WAN连接的参数,网关用户卡内的存储形式如下所示,其中以1至13的数字表示多实例卡文件,以0xFF表示无效卡文件,空白表示无数据,那么当有1个多实例卡文件时,其存储情况是,
此时对网关装置而言,count = 1。
a) 当新增1个建立WAN连接的参数时,网关装置中count = 2,网关用户卡内的存储形式是,
b) 再新增3个建立WAN连接的参数时,网关装置中count = 5,网关用户卡内的存储形式是,
c) 如果有5条多实例卡文件,删除其中数字2表示的多实例卡文件,网关装置中count= 4,网关用户卡内的存储形式是,
d) 再删除数字3和4分别表示的两个多实例卡文件,网关装置中count = 2,网关用户卡内的存储形式是,
此处应当注意,对第一个无效卡文件之后的数据不做处理,因为读到第一个无效卡文件时就认为有效数据已处理完毕。相应地,也减少了读写卡的次数。
e) 再添加8个建立WAN连接的参数,网关装置中count = 10,网关用户卡内的存储形式是,
由于达到设置为10的最大多实例卡文件数量,存储空间已经占满,就不需要存储无效卡文件。读卡时,也只会读到第10个多实例卡文件为止,而不会继续读取后续数据。
上述读、写卡过程蕴含在对于网关装置的整体数据同步过程,该同步过程包括如下步骤,如图2所示,网关装置采用光网络单元Optical Network Unit,简称ONU。
A. 检测网关用户卡是否在线,如果网关用户卡在线,执行步骤B。此步骤中网关装置和读卡器之间使用串口进行通信,网关装置启动时,向读卡器发送查询作为网关用户卡的SIM卡在线状态的指令,以检测网关用户卡是否在线,如果网关用户卡在线,发送复位卡指令,根据接收到的ATR(Answer To Reset,复位响应)来决定是否需要进行PPS(ProtocolAnd Parameter Selection,协议参数选择),以协商调整波特率。以上步骤都成功,网关装置能够和网关用户卡正常通信,网关装置正常启动。
如果网关用户卡不在线,进行步骤I,网关装置以普通用户权限的方式启动,对用户允许浏览和修改的数据参数做了限制,也就是涉及到作为网关用户卡的SIM卡中保存的数据参数,用户不可见。
B. 按照读卡过程,网关装置读取网关用户卡的序列号,以及存储在该网关用户卡内的介质访问控制层MAC地址;
比对网关装置内存储的网关用户卡的序列号与读取的当前网关用户卡的序列号是否一致,比对网关用户卡的介质访问控制层MAC地址与网关用户卡内存储的网关装置的介质访问控制层MAC地址是否一致;
如果两者都一致,执行步骤H;
如果两者不一致,执行步骤C;
C. 网关装置所有数据恢复成出厂预置数据;网关装置连接并向终端综合管理系统ITMS发送网关用户卡的信息,进而请求下发网关用户卡的读写控制密钥;
D. 终端综合管理系统ITMS核对步骤C发送的网关用户卡信息无误,向网关装置发送网关用户卡的读写控制密钥;
E. 网关装置与网关用户卡之间进行双向鉴权,双向鉴权通过,执行步骤F;双向鉴权不通过,执行步骤I;
F. 按照所述读卡过程,网关装置读取网关用户卡的参数;
网关装置存储网关用户卡的读写控制密钥,读取网关用户卡内数据并存储网关用户卡的序列号;
按照所述写卡过程,网关装置将自身介质访问控制层MAC地址写入网关用户卡;
G. 网关装置向终端综合管理系统ITMS上报读卡成功;执行步骤J;
H. 网关装置使用其内部保存的参数数据进行业务配置,并使之生效;执行步骤L;
步骤B至H还可以概括为,网关装置启动时,检测到网关用户卡在线之后,比较网关装置和网关用户卡的设备MAC地址和卡序列号,如果两者一致,说明已经进行了同步操作,直接进行步骤H,正常启动。如果不一致,网关装置连接ITMS上报X CT-COM BIND事件,该XCT-COM BIND事件作为基于逻辑ID的业务流程中首次认证时的事件号,包含逻辑ID,ITMS下发卡读写控制密钥CardKey,网关装置和网关用户卡使用CardKey进行双向鉴权,双向鉴权通过后,网关装置的数据同步模块读取网关用户卡内所有业务数据并同步到网关装置。然后将网关装置的设备MAC地址写网关用户卡,网关装置将网关用户卡内的卡序列号本地保存。这样网关装置和网关用户卡的MAC地址和卡序列号就一致了。
网关装置在之后的重启动中,只要作为网关用户卡的SIM卡在此网关装置上已经进行了数据同步,即设备MAC地址和卡序列号保持一致,不需要再读取网关用户卡的业务数据进行同步,直接使用网关装置本地保存的业务参数进行配置,按照正常流程启动。
I. 网关装置以普通用户权限启动,执行步骤N;
J. 如果终端综合管理系统ITMS有工单数据下发,网关装置根据ITMS下发的工单修改配置参数,执行步骤K;
K. 按照所述写卡过程,网关装置将修改后的配置参数写入网关用户卡;执行步骤L;
L. 网关装置以管理员用户权限启动;执行步骤M至步骤N;
用户在web页面或者ITMS平台上添加、修改或删除数据时,网关装置能够把相关数据实时同步保存到网关用户卡中,即以下步骤,
M. 网关装置在运行过程中,用户在界面上添加、修改或删除配置数据,首先在网关装置配置生效;按照所述写卡过程,网关装置将修改后的配置参数写入网关用户卡。
N. 网关装置实时检测网关用户卡的在线状态,
如果网关用户卡不在线,网关装置自动切换到以普通用户权限启动的普通用户管理模式,从而使涉及到需要同步的数据参数对用户不可见,进而需要同步的数据参数就不能被修改;
如果网关用户卡在线,执行步骤B。
本发明能够保证网关装置和网关用户卡的数据一致性,有效的解决了机卡分离型家庭网关的数据同步问题。