本发明涉及虚拟运营商云卡领域,具体涉及终端与远程服务器SIM卡状态同步的方法。
背景技术:
虚拟SIM卡,就是把SIM卡软件化,终端里内嵌包含SIM卡功能的安全芯片,或在芯片软件中实现SIM卡功能,让智能手机用户能“自由”地切换运营商,不再需要像以往一样的外部插卡就能接入网络。虚拟SIM卡能够为我们日常生活所带来的种种好处:
便利性:由于不再需要为设备设置一个独立的SIM卡槽,未来采用虚拟SIM卡设计的设备将拥有更轻、更薄的机身,消费者则可以出于成本和运营商优势的考虑随时切换运营商。对于那些拥有多个手机号码的用户来说,虚拟SIM卡的设计则更具吸引力,因为他们不再需要多部手机来进行切换,企业级用户也可以大大减少自己的设备购买成本。
成本:由于消费者可以更加轻松的切换运营商,因此那些传统的计费方式和长期合约已经开始从市面中消失了。坊间甚至还有消息称,目前已经有公司在开发一款可以根据资费和网络速度帮助消费者自动切换运营商网络的应用程序。
出行:移动设备用户在今后出国旅行的时候无需再花费时间选择目的地运营商了,因为虚拟SIM卡的设置完全可以帮助用户避免天价流量账单的出现。举例来说,当设备检测到用户正处于另一个国家的时候,其内置的虚拟SIM卡便会自动切换运营商网络。对于那些经常需要出国旅行和出差的大型企业用户来说,这一设计不仅十分便利,同时还大大减少了自己和企业之间的通讯成本。
安全性:由于手机不再需要实体SIM卡,因此今后黑客想办法破解被盗手机已经变得没有必要。对于企业来说,他们完全可以通过虚拟SIM卡卡进行身份验证的方法来允许访问企业网络,并在雇员设备丢失的情况下通过“移动设备管理解决方案”(Mobile Device Management solutions)对设备数据进行远程删除。
尽管虚拟SIM卡为用户能够带来上述诸多好处,但现有技术中还存在如下技术缺陷:在使用虚拟SIM卡的时候,由于鉴权顺序、网络异常等关系导致终端虚拟SIM卡与云端实卡的状态不一致,从而引起了终端通讯的异常的问题。
技术实现要素:
为了解决现有技术存在的不足,本发明的目的在于提供一种终端与远程服务器SIM卡状态同步的方法,用于同步终端虚拟SIM卡与云端实卡的状态。
为实现上述目的,本发明提供的终端与远程服务器SIM卡状态同步的方法,包括以下步骤:
(1)云卡终端发出鉴权请求至服务器;
(2)服务器将指令下发,云卡卡池接收指令并将指令放入指令队列;
(3)轮询线程读取指令并解析;
(4)判断当前实卡状态和指令有效性;
(5)进行鉴权指令处理并将指令写入缓存表;
(6)将鉴权结果返回至服务器,并发送给云卡终端。
进一步地,步骤(4)包括,判断当前实卡是否可授权、判断指令是否超时、判断指令是否存在缓存表中、判断指令是否先于缓存表中最新一条指令和判断是否是初始化指令。
进一步地,根据实卡状态是否为可操作状态来判断当前实卡是否可授权。
进一步地,根据当前时间与该指令存在队列的时间差值是否超过预设值来判断指令是否超时,其中,预设值为8秒。
进一步地,根据指令缓存队列中是否存在来判断指令是否存在缓存表中。
进一步地,根据指令特性值中带有的时间戳来判断指令是否先于缓存表中最新一条指令。
更进一步地,根据指令是否以8010开头来判断是否是初始化指令。
本发明提出一种终端与远程服务器SIM卡状态同步的方法,通过同步虚卡与云端实卡的状态,进而解决了云卡终端通讯的异常的问题。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,并与本发明的实施例一起,用于解释本发明,并不构成对本发明的限制。在附图中:
图1为根据本发明的终端与远程服务器SIM卡状态同步的方法的流程图;
图2为根据本发明的终端与远程服务器SIM卡状态同步的方法的具体流程图。
具体实施方式
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1为根据本发明的终端与远程服务器SIM卡状态同步的方法的流程图,图2为根据本发明的终端与远程服务器SIM卡状态同步的方法的具体流程图。下面将参考图1和图2,对本发明的终端与远程服务器SIM卡状态同步的方法进行详细描述。
首先,在步骤101,云卡终端发出鉴权请求至服务器。
在步骤102,服务器将指令下发到云卡卡池,云卡卡池接收指令并将指令放入指令队列。
在步骤103,轮询线程读取指令并解析。
在步骤104,判断当前实卡状态和指令有效性。判断过程如下:
根据实卡状态是否为可操作状态来判断当前实卡是否可授权,如果不可授权,则返回对应错误码,如果可授权,则根据当前时间与该指令存在队列的时间差值是否超过预设值(8s)来判断指令是否超时;
如果指令超时,则丢弃指令,如果指令不超时,则根据指令缓存队列中是否存在来判断指令是否存在缓存表中;
如果指令存在缓存表中,则返回缓存表中的指令解析结果,如果指令不存在缓存表中,则根据指令特性值中带有的时间戳来判断指令是否先于缓存表中最新一条指令;
如果指令先于缓存表中最新一条指令,则返回指令顺序异常错误码,如果指令没有先于缓存表中最新一条指令,则根据指令是否以8010开头来判断是否是初始化指令;
如果是初始化指令,则设置当前实卡的初始状态,之后进行授权处理,如果不是初始化指令,则直接进行授权处理。
在步骤105,进行鉴权指令处理并将指令写入缓存表。
在步骤106,将鉴权结果返回至服务器,并发送给云卡终端。
本发明通过在步骤104中的判断操作,解决了以下问题:终端鉴权指令上报解析,服务端下发至云卡卡池进行指令解析,云卡卡池接收到的指令后进行有序性处理,云卡卡池接收到的指令重复性处理。
本领域普通技术人员可以理解:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。