CN108156246B - 一种文件分发方法、***、服务器及客户端 - Google Patents
一种文件分发方法、***、服务器及客户端 Download PDFInfo
- Publication number
- CN108156246B CN108156246B CN201711450400.2A CN201711450400A CN108156246B CN 108156246 B CN108156246 B CN 108156246B CN 201711450400 A CN201711450400 A CN 201711450400A CN 108156246 B CN108156246 B CN 108156246B
- Authority
- CN
- China
- Prior art keywords
- docker
- mirror image
- image
- file
- parent
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种文件分发方法、***、服务器和客户端。所述方法包括:服务器接收客户端发送的文件下载请求,根据请求中的文件信息查找是否存在相映射的历史Docker镜像;若存在,将历史Docker镜像的ID发送给客户端;否则基于文件信息创建新Docker镜像,将新Docker镜像的ID发送给客户端;客户端接收服务器发送的Docker镜像ID;根据Docker镜像ID查找是否存在对应的历史Docker镜像;若存在,提取历史Docker镜像的文件;否则从服务器下载与Docker镜像ID对应的Docker镜像,提取该Docker镜像的文件。所述方法避免了文件重复下载,能够节省***资源,提高下载速度。
Description
技术领域
本申请涉及网络技术领域,主要涉及一种文件分发方法、***、服务器及客户端,尤其涉及一种基于Docker的文件分发方法、***、服务器及客户端。
背景技术
文件分发例如文件下载和应用程序更新等,是由客户端向服务器发送文件下载请求,服务器接收到文件下载请求后,根据该请求找到对应的文件,将文件返回给客户端。
现有技术中,服务器对于客户端的每一次文件下载请求,都视为一次全新的文件下载请求,将请求的文件全部重新进行下载处理,然后发送给客户端。但实际上,客户端所请求的文件中,可能包括客户端已经下载过的,若服务器仍然将请求的全部文件发送给客户端,便会出现文件重复下载的问题。
例如客户端对一个应用程序进行更新,从服务器下载最新版本的应用程序更新包,该应用程序更新包包含100个文件,其中80个文件在前一个版本的应用程序更新包中已经存在,并已由客户端下载,这种情况下,客户端发起更新请求后,若服务器仍然将最新更新包中的100个文件都发送给客户端,客户端接收全部100文件,其中便有80个文件是重复下载的,这不仅浪费文件下载资源,还会导致文件下载效率低。
发明内容
本申请提供了一种文件分发方法、***、服务器和客户端,以解决文件重复下载的问题。
第一方面,本申请提供一种文件分发方法,所述方法包括:服务器接收客户端发送的文件下载请求,获取所述请求中携带的文件信息;根据所述文件信息查找是否存在与所述文件信息相映射的历史Docker镜像;若存在与所述文件信息相映射的历史Docker镜像,将所述历史Docker镜像的ID发送给所述客户端;否则,基于所述文件信息创建新Docker镜像并保存所述新Docker镜像,将所述新Docker镜像的ID发送给所述客户端;所述客户端接收所述服务器发送的所述历史Docker镜像的ID或所述新Docker镜像的ID;根据所接收到的Docker镜像ID查找是否存在与所述Docker镜像ID对应的历史Docker镜像,所述Docker镜像ID为所述历史Docker镜像的ID或所述新Docker镜像的ID;若存在与所述Docker镜像ID对应的历史Docker镜像,所述客户端提取所述历史Docker镜像中的文件;否则,所述客户端从所述服务器下载与所述Docker镜像ID对应的Docker镜像,提取与所述Docker镜像ID对应的Docker镜像中的文件。
所述文件分发方法基于Docker,将文件以Docker镜像的形式保存于Docker镜像服务器中,客户端向服务器请求下载文件时,服务器不直接向客户端返回文件,而是根据请求的文件的信息在Docker镜像服务器查找到对应的已存在的历史Docker镜像,或创建新Docker镜像,将历史Docker镜像或新Docker镜像的ID返回给客户端。客户端接收到服务器方返回的Docker镜像ID后,由客户端中的Docker客户端查找Docker镜像ID对应的Docker镜像是否已存在,若存在,则不必从Docker服务下载Docker镜像,若不存在,但该Docker镜像的父镜像已存在,在不需重复下载该父镜像,只需下载该Dcoker镜像即可,实际上下载的主要是该Docker镜像的增量镜像部分。所述方法通过Docker镜像或其父镜像的复用,避免了Docker镜像的重复下载,从而也避免了文件的重复下载,因此能够节省***资源,提高文件下载速度。
结合第一方面,在第一方面第一种可能的实现方式中,所述基于所述文件信息创建新Docker镜像,包括:查找包含与所述文件信息对应的文件中一个或多个文件的备选Docker镜像,且所述备选Docker镜像中不包含除与所述文件信息对应的文件中一个或多个文件之外的其他文件;选择所述备选Docker镜像中最大的Docker镜像为父镜像;基于所述父镜像以及所述父镜像未包含的文件创建所述新Docker镜像,其中所述父镜像未包含的文件为与所述文件信息对应的文件中的一个或多个文件。采用该种继承父镜像,基于父镜像和增量镜像创建Docker镜像的方式有利于Docker镜像的复用,节省***资源
结合第一方面或第一方面第一种可能的实现方式,在第一方面第二种可能的实现方式中,所述客户端从所述服务器下载与所述Docker镜像ID对应的Docker镜像,包括:判断所述Docker镜像ID对应的Docker镜像是否具有父镜像;若所述Docker镜像具有父镜像,查找所述父镜像是否已存在;若所述父镜像不存在,从所述服务器下载所述父镜像以及与所述Docker镜像ID对应的Docker镜像;若所述Docker镜像不具有父镜像,或者所述父镜像已存在,从所述服务器下载与所述Docker镜像ID对应的Docker镜像。采用该实现方式,父镜像可以复用,Docker客户端不需重复下载父镜像,从而能够节省***资源,提高下载速度。
第二方面,本申请提供一种文件分发***,所述***包括:文件分发单元,用于接收文件接收单元发送的文件下载请求,获取所述请求中携带的文件信息;文件合成单元,用于根据所述文件信息在Docker镜像服务器中查找是否存在与所述文件信息相映射的历史Docker镜像;若存在与所述文件信息相映射的历史Docker镜像,将所述历史Docker镜像的ID传输至所述文件分发单元,否则,基于所述文件信息创建新Docker镜像,将所述新Docker镜像保存于所述Docker镜像服务器,以及将所述新Docker镜像的ID传输至所述文件分发单元;所述文件分发单元还用于:将所述历史Docker镜像的ID或所述新Docker镜像的ID发送给所述文件接收单元;Docker镜像服务器,用于保存Docker镜像;所述文件接收单元,用于接收所述文件分发单元发送的所述历史Docker镜像的ID或所述新Docker镜像的ID;Docker客户端,用于根据所述文件接收单元所接收到的Docker镜像ID查找是否存在与所述Docker镜像ID对应的历史Docker镜像,所述Docker镜像ID为所述历史Docker镜像的ID或所述新Docker镜像的ID;文件提取单元,用于若所述Docker客户端中存在与所述Docker镜像ID对应的历史Docker镜像,提取所述历史Docker镜像中的文件;所述Docker客户端还用于:若不存在与所述Docker镜像ID对应的历史Docker镜像,从所述Docker镜像服务器下载与所述Docker镜像ID对应的Docker镜像;所述文件提取单元还用于:提取与所述Docker镜像ID对应的Docker镜像中的文件。
结合第二方面,在第二方面第一种可能的实现方式中,所述文件合成模块,具体用于:若所述Docker镜像服务器中不存在与所述文件信息相映射的历史Docker镜像,在所述Docker镜像服务器中查找包含与所述文件信息对应的文件中一个或多个文件的备选Docker镜像,且所述备选Docker镜像中不包含除与所述一个或多个文件之外的其他文件;选择所述备选Docker镜像中最大的Docker镜像为父镜像;基于所述父镜像以及所述父镜像未包含的文件创建所述新Docker镜像,生成所述新Docker镜像的ID,并将所述新Docker镜像保存于所述Docker镜像服务器,其中所述父镜像未包含的文件为与所述文件信息对应的文件中的一个或多个文件。
结合第二方面或第二方面第一种可能的实现方式,在第二方面第二种可能的实现方式中,所述Docker客户端具体用于:若不存在与所述Docker镜像ID对应的历史Docker镜像,则判断所述Docker镜像ID对应的Docker镜像是否具有父镜像;若所述Docker镜像具有父镜像,查找所述父镜像是否已存在;若所述父镜像不存在,从所述Docker镜像服务器下载所述父镜像以及与所述Docker镜像ID对应的Docker镜像;若所述Docker镜像不具有父镜像,或者所述父镜像已存在,从所述Docker镜像服务器下载与所述Docker镜像ID对应的Docker镜像。
第三方面,本申请提供一种服务器,所述服务器包括收发器、存储器、处理器和Docker镜像服务器,所述收发器用于:接收客户端发送的文件下载请求,获取所述请求中携带的文件信息;所述处理器通过调用所述存储器内存储的程序或指令用于:根据所述文件信息在所述Docker镜像服务器中查找是否存在与所述文件信息相映射的历史Docker镜像;若存在与所述文件信息相映射的历史Docker镜像,将所述历史Docker镜像的ID传输至所述收发器;否则,基于所述文件信息创建新Docker镜像并将所述新Docker镜像保存至所述Docker镜像服务器,将所述新Docker镜像的ID传输至所述收发器;所述收发器还用于:将所述历史Docker镜像的ID或所述新Docker镜像的ID发送给所述客户端。
结合第三方面,在第三方面第一种可能的实现方式中,所述处理器具体用于:若所述Docker镜像服务器中不存在与所述文件信息相映射的历史Docker镜像,在所述Docker镜像服务器中查找包含与所述文件信息对应的文件中一个或多个文件的备选Docker镜像,且所述备选Docker镜像中不包含除与所述一个或多个文件之外的其他文件;选择所述备选Docker镜像中最大的Docker镜像为父镜像;基于所述父镜像以及所述父镜像未包含的文件创建所述新Docker镜像,生成所述新Docker镜像的ID,并将所述新Docker镜像保存于所述Docker镜像服务器,其中所述父镜像未包含的文件为与所述文件信息对应的文件中的一个或多个文件。
第四方面,本申请提供一种客户端,所述客户端包括收发器、存储器、处理器和Docker客户端,所述收发器用于:接收服务器发送的Docker镜像ID;所述Docker客户端用于:根据所述Docker镜像ID查找是否存在与所述Docker镜像ID对应的历史Docker镜像;所述处理器通过调用所述存储器内存储的程序或指令用于:若存在与所述Docker镜像ID对应的历史Docker镜像,提取所述历史Docker镜像中的文件;所述Doker客户端还用于,若不存在与所述Docker镜像ID对应的历史Docker镜像,从所述服务器下载与所述Docker镜像ID对应的Docker镜像;所述处理器还用于:提取所述Docker镜像ID对应的Docker镜像中的文件。
结合第四方面,在第四方面第一种可能的实现方式中,所述Docker客户端,若不存在与所述Docker镜像ID对应的历史Docker镜像,则判断所述Docker镜像ID对应的Docker镜像是否具有父镜像;若所述Docker镜像具有父镜像,查找所述父镜像是否已存在;若所述父镜像不存在,从所述服务器下载所述父镜像以及与所述Docker镜像ID对应的Docker镜像;若所述Docker镜像不具有父镜像,或者所述父镜像已存在,从所述服务器下载与所述Docker镜像ID对应的Docker镜像。
本申请所提供的文件分发方案,将文件以Docker镜像的形式保存于Docker镜像服务器中,客户端向服务器请求下载文件时,服务器不直接向客户端返回文件,而是根据请求的文件的信息在Docker镜像服务器查找到对应的已存在的历史Docker镜像,或创建新Docker镜像,将历史Docker镜像或新Docker镜像的ID返回给客户端。客户端接收到服务器方返回的Docker镜像ID后,由Docker客户端查找Docker镜像ID对应的Docker镜像是否已存在,若存在,则不必从Docker镜像服务器下载Docker镜像,若不存在,但该Docker镜像的父镜像已存在,在不需重复下载该父镜像,只需下载该Dcoker镜像即可(实际上下载的主要是该Docker镜像的增量镜像部分),这样通过Docker镜像或其父镜像的复用,避免了Docker镜像的重复下载,由于文件从Docker镜像提取,因此也就避免了文件的重复下载,从而节省***资源,提高文件下载速度。
附图说明
图1为本申请提供的一种文件分发***的结构示意图;
图2为文件合成单元创建新Docker镜像的流程示意图;
图3为Docker客户端下载Docker镜像的流程示意图;
图4为本申请提供的一种文件分发方法的流程示意图;
图5为本申请提供的一种服务器的结构示意图;
图6为本申请提供的一种客户端的结构示意图。
具体实施方式
为方便地理解本申请,以下对Docker以及Docker镜像作简单介绍。Docker是一种开源的应用容器引擎,通常使用客户端/服务器(Client/Server)架构模式,Docker服务器(或称Docker镜像服务器)接受来自Docker客户端的请求,并处理这些请求(例如创建、运行或分发容器)。Docker客户端和Docker服务端既可以运行在同一个设备上,也可通过socket或者RESTful(Representational State Transfer,REST指的是一组架构约束条件和原则,满足这些约束条件和原则的应用程序或设计就是RESTful)API(Application ProgrammingInterface,应用程序编程接口)等进行通信。Docker服务端一般在宿主机后台运行,等待接收来自Docker客户端的消息。Docker客户端亦运行于宿主机,其提供了一系列可执行命令,用户使用这些命令实现Docker客户端跟Docker服务端的交互。
Docker镜像代表一个容器的文件***内容。一个Docker镜像可以构建于另一个Docker镜像之上,这种层叠关系可以是多层的。第一层的镜像称为基础镜像(Base Image),其他层叠于基础镜像之上的镜像称为父镜像(Parent Image)。每层镜像(除最顶层镜像外)继承其父镜像的属性和设置,并在本层镜像添加自己的配置。Docker镜像通过Docker镜像ID进行识别。
参见图1,为本申请提供的一种文件分发***,所述***包括:
文件分发单元U101,用于接收文件接收单元发送的文件下载请求,获取所述请求中携带的文件信息;
文件合成单元U102,用于:根据所述文件信息在Docker镜像服务器U103中查找是否存在与所述文件信息相映射的历史Docker镜像;若存在与所述文件信息相映射的历史Docker镜像,将所述历史Docker镜像的ID传输至所述文件分发单元,否则,基于所述文件信息创建新Docker镜像,将所述新Docker镜像保存于所述Docker镜像服务器,以及将所述新Docker镜像的ID传输至所述文件分发单元;
所述文件分发单元还用于:将所述历史Docker镜像的ID或所述新Docker镜像的ID发送给所述文件接收单元。
Docker镜像服务器U103用于保存Docker镜像;
所述文件接收单元U104,用于接收所述文件分发单元发送的所述历史Docker镜像的ID或所述新Docker镜像的ID;
Docker客户端U105,用于根据所述文件接收单元所接收到的Docker镜像ID查找是否存在与所述镜像ID对应的历史Docker镜像;
文件提取单元U106,用于若所述Docker客户端中存在与所述Docker镜像ID对应的历史Docker镜像,提取所述历史Docker镜像中的文件;
所述Docker客户端还用于:若不存在与所述镜像ID对应的历史Docker镜像,从所述Docker镜像服务器下载与所述Docker镜像ID对应的Docker镜像;
所述文件提取单元还用于:提取与所述Docker镜像ID对应的Docker镜像中的文件。
其中,文件分发单元、文件合成单元和Docker镜像服务器运行于提供下载文件的一端,例如网站的文件服务器;文件接收单元、Docker客户端和文件提取单元运行于下载文件的一端,例如移动终端等客户端。客户端需要下载文件时,由文件接收单元向提供下载文件的服务器,具体地,向该服务器中的文件分发单元发送文件下载请求,所述请求中携带有请求下载的文件的信息。文件分发单元接收到所述文件下载请求后,解析所述文件下载请求,获取到其中携带的文件信息(例如文件的文件名和URL(Uniform Resource Locator,统一资源定位符))。
文件合成单元中存储有文件信息与Docker镜像ID的映射表。一个Docker镜像中包含有一个文件或一个文件集合,创建Docker镜像时,也生成该Docker镜像的ID,以及该Docker镜像的ID和其所包含的文件的信息的映射关系,该映射关系保存于文件信息与Docker镜像ID的映射表中。例如Docker镜像m3包含文件名为file1、file2、file3的三个文件,则所述映射表中保存有m3与集合[file1file2file3]的映射关系。文件合成单元根据文件分发单元解析得到的文件信息,在所述映射表中查找是否存在与所述文件信息相映射的Docker镜像ID,例如,客户端需下载文件file1、file2和file3,在向文件分发单元发送的文件下载请求中包含file1、file2和file3的文件名等信息,文件分发单元接收到文件下载请求后,获取其中包含的三个文件的信息,例如文件名file1、file2和file3,然后文件合成单元根据文件名在所述映射表中查找是否存在与集合[file2file2file3]相映射的Docker镜像ID。
若文件合成单元查找到了与所述文件信息相映射的Docker镜像ID,在Docker镜像服务器中便能查找到该Docker镜像ID指示的Docker镜像,也就是文件合成单元查找到了与所述文件信息相映射的Docker镜像;或者文件单元单元根据所述映射表查找到与所述文件信息相映射的Dokcer镜像ID后,再根据该Docker镜像ID在Docker镜像服务器中查找是否存在该Docker镜像ID对应的Docker镜像,若存在,则文件合成单元查找到了与所述文件信息相映射的Docker镜像,与所述文件信息相映射的Docker镜像存在。由于Docker镜像服务器保存的是已创建的Docker镜像,因此将经文件合成单元查找到的与所述文件信息相映射的Docker镜像称为历史Docker镜像。
若文件合成单元查找到存在与所述文件信息相映射的历史Docker镜像,则说明文件信息对应的文件已经下载过,则文件合成单元将该历史Docker镜像的ID传输给文件分发单元,由文件分发单元返回给客户端的文件接收单元。若文件合成单元未查找到与所述文件信息相映射的历史Docker镜像,例如所述映射表中不存在与所述文件信息相映射的Docker镜像ID,或者虽然映射表中存在与所述文件信息相映射的Docker镜像ID,但Docker镜像服务器中不存在该Docker镜像ID对应的Docker镜像(例如该Docker镜像已删除),则说明文件信息对应的文件未被下载或未被全部下载过,这种情况下,文件合成单元先基于所述文件信息创建新Docker镜像。
具体地,文件合成单元创建新Docker镜像的流程如图2所示,步骤如下:
步骤S201,文件合成单元先在Docker镜像服务器中查找包含与所述文件信息对应的文件中一个或多个文件的备选Docker镜像,且所述备选Docker镜像中不包含除与所述文件信息对应的文件中一个或多个文件之外的其他文件,例如文件信息对应三个文件file1、file2和file3,Docker镜像服务器中可能保存有只包含文件file1的Docker镜像m1,包含有文件file1和file2的Docker镜像m2,则m1和m2都为备选Docker镜像。
步骤S202,文件合成单元查找到所述备选Docker镜像后,选择其中最大的Docker镜像为父镜像,例如m1为50M,m2为100M,则以m2为父镜像。
步骤S203,确定父镜像后,文件合成单元基于该父镜像以及该父镜像未包含的文件创建新Docker镜像,其中所述父镜像未包含的文件为与所述文件信息对应的文件中的一个或多个文件,例如m2为父镜像,其只包含文件file1和file2,未包含文件file3,则创建新Docker镜像m3,m3继承m2,file3作为m3的增量镜像,m3的实际代码描述为“from m2;Addfile3”。实际上m3包含的是增量镜像所包含的文件file3,file1和file2并不实际包含于m3中,而是包含于所继承的m2中,但从Docker镜像和文件信息的映射角度而言,可以描述为m3包含file1、file2和file3。这种继承父镜像,基于父镜像和增量镜像创建Docker镜像的方式有利于Docker镜像的复用,节省***资源。
若文件合成单元未在Docker镜像服务器中查找到备选Docker镜像,也就是Docker镜像服务器中不存在任何包含与所述文件信息对应的文件中的一个或多个文件,且不包含除与所述文件信息对应的文件中一个或多个文件之外的其他文件的Docker镜像,则文件合成单元创建没有父镜像的新Docker镜像,该Docker镜像中包含与所述文件信息对应的所有文件。
文件合成单元创建新Docker镜像时生成该新Docker镜像的ID,并将创建的新Docker镜像保存于Docker镜像服务器中。文件合成单元创建新Docker镜像后,将新Docker镜像的ID传输给文件分发单元,由文件分发单元返回给客户端的文件接收单元。
文件接收单元接收文件分发单元发送的Doker镜像ID,将该Doker镜像ID传输给Docker客户端。Docker客户端中保存有已下载过的Docker镜像(例如保存于缓存中,Docker客户端中已保存的Docker镜像可称为历史Docker镜像),Docker客户端先根据Docker镜像ID查找缓存中是否存在与该Docker镜像ID对应的Docker镜像,若存在,则直接将该Docker镜像ID对应的Docker镜像传输给文件提取单元,由文件提取单元提取Docker镜像包含的文件,这样,若客户端所要下载的文件若已全部下载过,在不需再从服务器全部下载,避免文件的重复下载。
若Docker客户端中不存在与文件接收单元接收到的Docker镜像ID对应的历史Docker镜像,则Docker客户端根据该Docker镜像ID从Docker镜像服务器下载对应的Docker镜像。具体地,如图3所示,步骤如下:
步骤S301,Docker客户端判断该Docker镜像ID对应的Docker镜像是否具有父镜像,具体地,Docker客户端可以根据该Docker镜像ID从Docker镜像服务器获取到该Docker镜像ID对应的Docker镜像的信息,该Docker镜像的信息中包含Docker镜像的父镜像信息,根据父镜像信息判断该Dcker镜像是否具有父镜像,例如父镜像信息为空,在说明不具有父镜像,否则具有父镜像,并得到父镜像的ID;或者Docker镜像ID中包含父镜像信息,Docker客户端解析该Dcoker镜像ID,得到该Docker镜像ID对应的Docker镜像的父镜像信息,根据父镜像信息判断该Docker镜像是否具有父镜像。
步骤S302,若该Docker镜像具有父镜像,则查找该父镜像是否已存在,也就是判断父镜像是否已下载过;
步骤S303,若该父镜像不存在,也就是该父镜像未被下载过,则从Docker镜像服务器下载该父镜像以及与所述Docker镜像ID对应的Docker镜像。
步骤S304,若所述Docker镜像不具有父镜像,或者所述父镜像已存在,从Docker镜像服务器下载与所述Docker镜像ID对应的Docker镜像。例如Docker镜像ID对应的为Docker镜像m3,m3不具有父镜像,则从Docker镜像服务器下载m3;若m3具有父镜像m2,例如m3的描述为“from m2;Add file3”,m2已存在,则从Docker镜像服务器下载m3即可,实际上下载的是包含file3的一个增量镜像,这样m2可以复用,Docker客户端不需重复下载m2,从而能够节省***资源,提高下载速度;若m2不存在,则从Docker镜像服务器下载m2和m3,也就是父镜像和增量镜像都需下载,才能完整得到m3包含的文件。Docker客户端下载完毕Docker镜像ID对应的Docker镜像后,将下载得到的Docker镜像传输给文件提取单元,由文件提取单元提取Docker镜像中的文件,完成文件的下载。
本申请提供的基于Docker的文件分发***,将文件以Docker镜像的形式保存于Docker镜像服务器中,客户端向服务器请求下载文件时,服务器不直接向客户端返回文件,而是根据请求的文件的信息在Docker镜像服务器查找对应的已存在的历史Docker镜像,或创建新Docker镜像,将历史Docker镜像或新Docker镜像的ID返回给客户端。客户端接收到服务器方返回的Docker镜像ID后,由Docker客户端查找Docker镜像ID对应的Docker镜像是否已存在,若存在,则不必从Docker镜像服务器下载Docker镜像,若不存在,但该Docker镜像的父镜像已存在,在不需重复下载该父镜像,只需下载该Dcoker镜像即可(实际上下载的主要是该Docker镜像的增量镜像部分),这样通过Docker镜像(或其父镜像)的复用,避免了Docker镜像的重复下载,由于文件从Docker镜像提取,因此也就避免了文件的重复下载,从而节省***资源,提高文件下载速度。
为了描述的方便,描述以上***时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
参见图4,为本申请还提供一种文件分发方法,所述方法包括:
步骤S401,服务器接收客户端发送的文件下载请求;
步骤S402,获取所述请求中携带的文件信息;
步骤S403,根据所述文件信息查找是否存在与所述文件信息相映射的历史Docker镜像;
步骤S404,若存在与所述文件信息相映射的历史Docker镜像,将所述历史Docker镜像的ID发送给所述客户端;
步骤S405,否则,基于所述文件信息创建新Docker镜像并保存所述新Docker镜像,将所述新Docker镜像的ID发送给所述客户端;
步骤S406,所述客户端接收所述服务器发送的所述历史Docker镜像的ID或所述新Docker镜像的ID;
步骤S407,根据所接收到的Docker镜像ID查找是否存在与所述Docker镜像ID对应的历史Docker镜像,所述Docker镜像ID为所述历史Docker镜像的ID或所述新Docker镜像的ID;
步骤S408,若存在与所述Docker镜像ID对应的历史Docker镜像,所述客户端提取所述历史Docker镜像中的文件;
步骤S409,否则,所述客户端从所述服务器下载与所述镜像ID对应的Docker镜像,提取与所述镜像ID对应的Docker镜像中的文件。
其中,在一种可能的实施方式中,所述基于所述文件信息创建新Docker镜像,包括:
查找包含与所述文件信息对应的文件中一个或多个文件的备选Docker镜像,所述备选Docker镜像中不包含除与所述文件信息对应的文件中一个或多个文件之外的其他文件;
选择所述备选Docker镜像中最大的Docker镜像为父镜像;
基于所述父镜像以及所述父镜像未包含的文件创建所述新Docker镜像,其中所述父镜像未包含的文件为与所述文件信息对应的文件中的一个或多个文件。
具体地,服务器先在Docker镜像服务器中查找包含与所述文件信息对应的文件中一个或多个文件的备选Docker镜像,且所述备选Docker镜像中不包含除与所述文件信息对应的文件中一个或多个文件之外的其他文件。查找到所述备选Docker镜像后,以其中最大的Docker镜像为父镜像。确定父镜像后,基于该父镜像以及该父镜像未包含的文件创建新Docker镜像,其中所述未包含的文件作为新Docker镜像的增量镜像,这种继承父镜像,基于父镜像和增量镜像创建Docker镜像的方式有利于Docker镜像的复用,节省***资源。
若未在Docker镜像服务器中查找到备选Docker镜像,也就是Docker镜像服务器中不存在任何包含与所述文件信息对应的文件中一个或多个文件,且不包含除与所述文件信息对应的文件中一个或多个文件之外的其他文件的Docker镜像,则创建没有父镜像的新Docker镜像,该Docker镜像中包含与所述文件信息对应的所有文件。
创建新Docker镜像时同时生成该新Docker镜像的ID,并将创建的新Docker镜像保存于Docker镜像服务器中。创建新Docker镜像后,服务器将新Docker镜像的ID返回给客户端。
其中,在一种可能的实施方式中,所述客户端从所述服务器下载与所述镜像ID对应的Docker镜像,包括:
判断所述Docker镜像是否具有父镜像;
若所述Docker镜像具有父镜像,查找所述父镜像是否已存在;
若所述父镜像不存在,从所述服务器下载所述父镜像以及与所述镜像ID对应的Docker镜像;
若所述Docker镜像不具有父镜像,或者所述父镜像已存在,从所述服务器下载与所述镜像ID对应的Docker镜像。
具体地,若Docker客户端中不存在与文件接收单元接收到的Docker镜像ID对应的历史Docker镜像,则Docker客户端根据该Docker镜像ID从Docker镜像服务器下载对应的Docker镜像。具体地,Docker客户端判断该Docker镜像ID对应的Docker镜像是否具有父镜像,具体地,Docker客户端可以根据该Docker镜像ID从Docker镜像服务器获取到该Docker镜像ID对应的Docker镜像的信息,该Docker镜像的信息中包含Docker镜像的父镜像信息,根据父镜像信息判断该Dcker镜像是否具有父镜像;或者Docker镜像ID中包含父镜像信息,Docker客户端解析该Dcoker镜像ID,得到该Docker镜像ID对应的Docker镜像的父镜像信息,根据父镜像信息判断该Docker镜像是否具有父镜像。
若该Docker镜像具有父镜像,则查找该父镜像是否已存在,也就是父镜像是否已下载过,若该父镜像不存在,也就是该父镜像未被下载过,则从Docker镜像服务器下载该父镜像以及与所述Docker镜像ID对应的Docker镜像。若所述Docker镜像不具有父镜像,或者所述父镜像已存在,从Docker镜像服务器下载与所述Docker镜像ID对应的Docker镜像,这样父镜像可以复用,Docker客户端不需重复下载父镜像,从而能够节省***资源,提高下载速度。若父镜像不存在,则从Docker镜像服务器下载父镜像和所述Docker镜像ID对应的Docker镜像,也就是父镜像和增量镜像都需下载,才能完整得到所有文件。Docker客户端下载完毕Docker镜像ID对应的Docker镜像后,提取Docker镜像中的文件,完成文件的下载。
本申请提供的基于Docker的文件分发方法,将文件以Docker镜像的形式保存于Docker镜像服务器中,客户端向服务器请求下载文件时,服务器不直接向客户端返回文件,而是根据请求的文件的信息在Docker镜像服务器查找到对应的已存在的历史Docker镜像,或创建新Docker镜像,将历史Docker镜像或新Docker镜像的ID返回给客户端。客户端接收到服务器方返回的Docker镜像ID后,由客户端中的Docker客户端查找Docker镜像ID对应的Docker镜像是否已存在,若存在,则不必从Docker镜像服务器下载Docker镜像,若不存在,但该Docker镜像的父镜像已存在,在不需重复下载该父镜像,只需下载该Dcoker镜像即可,实际上下载的主要是该Docker镜像的增量镜像部分。所述方法通过Docker镜像或其父镜像的复用,避免了Docker镜像的重复下载,从而也避免了文件的重复下载,因此能够节省***资源,提高文件下载速度。
本申请还提供一种服务器,如图5所示,所述服务器包括收发器、存储器、处理器和Docker镜像服务器,
所述收发器用于:接收客户端发送的文件下载请求,获取所述请求中携带的文件信息;
所述处理器通过调用所述存储器内存储的程序或指令用于:
根据所述文件信息在所述Docker镜像服务器中查找是否存在与所述文件信息相映射的历史Docker镜像;
若存在与所述文件信息相映射的历史Docker镜像,将所述历史Docker镜像的ID传输至所述收发器;
否则,基于所述文件信息创建新Docker镜像并将所述新Docker镜像保存至所述Docker镜像服务器,将所述新Docker镜像的ID传输至所述收发器;
所述收发器还用于:将所述历史Docker镜像的ID或所述新Docker镜像的ID发送给所述客户端。
其中,在一种可能的实施方式中,所述处理器具体用于:
若所述Docker镜像服务器中不存在与所述文件信息相映射的历史Docker镜像,在所述Docker镜像服务器中查找包含与所述文件信息对应的文件中一个或多个文件的备选Docker镜像;
选择所述备选Docker镜像中最大的Docker镜像为父镜像;
基于所述父镜像以及所述父镜像未包含的文件创建所述新Docker镜像,生成所述新Docker镜像的ID,并将所述新Docker镜像保存于所述Docker镜像服务器,其中所述父镜像未包含的文件为与所述文件信息对应的文件中的一个或多个文件。
具体地,服务器先在Docker镜像服务器中查找包含与所述文件信息对应的文件中一个或多个文件的备选Docker镜像,且所述备选Docker镜像中不包含除与所述文件信息对应的文件中一个或多个文件之外的其他文件。查找到所述备选Docker镜像后,以其中最大的Docker镜像为父镜像。确定父镜像后,基于该父镜像以及该父镜像未包含的文件创建新Docker镜像,其中所述未包含的文件作为新Docker镜像的增量镜像,这种继承父镜像,基于父镜像和增量镜像创建Docker镜像的方式有利于Docker镜像的复用,节省***资源。
若未在Docker镜像服务器中查找到备选Docker镜像,也就是Docker镜像服务器中不存在任何包含与所述文件信息对应的文件中一个或多个文件,且不包含除与所述文件信息对应的文件中一个或多个文件之外的其他文件的Docker镜像,则创建没有父镜像的新Docker镜像,该Docker镜像中包含与所述文件信息对应的所有文件。服务器创建新Docker镜像时同时生成该新Docker镜像的ID,并将创建的新Docker镜像保存于Docker镜像服务器中。创建新Docker镜像后,服务器将新Docker镜像的ID返回给客户端。
本申请还提供一种客户端,如图6所示,所述客户端包括收发器、存储器、处理器和Docker客户端,
所述收发器用于:接收服务器发送的镜像ID;
所述Docker客户端用于:根据所述镜像ID查找是否存在与所述镜像ID对应的历史Docker镜像;
所述处理器通过调用所述存储器内存储的程序或指令用于:若存在与所述镜像ID对应的历史Docker镜像,提取所述历史Docker镜像中的文件;
所述Doker客户端还用于,若不存在与所述镜像ID对应的历史Docker镜像,从所述服务器下载与所述镜像ID对应的Docker镜像;
所述处理器还用于:提取所述镜像ID对应的Docker镜像中的文件。
其中,在一种可能的实施方式中,所述Docker客户端,具体用于:
若不存在与所述镜像ID对应的历史Docker镜像,解析所述Docker镜像,判断所述Docker镜像是否具有父镜像;
若所述Docker镜像具有父镜像,查找所述父镜像是否已存在;
若所述父镜像不存在,从所述服务器下载所述父镜像以及与所述镜像ID对应的Docker镜像;
若所述Docker镜像不具有父镜像,或者所述父镜像已存在,从所述服务器下载与所述镜像ID对应的Docker镜像。
具体地,若Docker客户端中不存在与文件接收单元接收到的Docker镜像ID对应的历史Docker镜像,则Docker客户端根据该Docker镜像ID从Docker镜像服务器下载对应的Docker镜像。具体地,Docker客户端判断该Docker镜像ID对应的Docker镜像是否具有父镜像,具体地,Docker客户端可以根据该Docker镜像ID从Docker镜像服务器获取到该Docker镜像ID对应的Docker镜像的信息,该Docker镜像的信息中包含Docker镜像的父镜像信息,根据父镜像信息判断该Dcker镜像是否具有父镜像;或者Docker镜像ID中包含父镜像信息,Docker客户端解析该Dcoker镜像ID,得到该Docker镜像ID对应的Docker镜像的父镜像信息,根据父镜像信息判断该Docker镜像是否具有父镜像。
若该Docker镜像具有父镜像,则Docker客户端查找该父镜像是否已存在,也就是父镜像是否已下载过,若该父镜像不存在,也就是该父镜像未被下载过,则从Docker镜像服务器下载该父镜像以及与所述Docker镜像ID对应的Docker镜像。若所述Docker镜像不具有父镜像,或者所述父镜像已存在,从Docker镜像服务器下载与所述Docker镜像ID对应的Docker镜像,这样父镜像可以复用,Docker客户端不需重复下载父镜像,从而能够节省***资源,提高下载速度。若父镜像不存在,则Docker客户端从Docker镜像服务器下载父镜像和所述Docker镜像ID对应的Docker镜像。Docker客户端下载完毕Docker镜像ID对应的Docker镜像后,所述处理器提取Docker镜像中的文件,完成文件的下载。
所述客户端通过Docker镜像或其父镜像的复用,避免了Docker镜像的重复下载,因此也避免了文件的重复下载,从而能够节省***资源,提高文件下载速度。
为了描述的方便,描述以上装置时以功能分为各种单元和模块分别描述。当然,在实施本申请时可以把各单元和模块的功能在同一个或多个软件和/或硬件中实现。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于方法或设备实施例而言,由于其基本相似于***实施例,所以描述得比较简单,相关之处参见***实施例的部分说明即可。以上所描述的设备及***实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模型来实现本实施例方案的目的。
Claims (10)
1.一种文件分发方法,其特征在于,包括:
服务器接收客户端发送的文件下载请求,获取所述请求中携带的文件信息;
根据所述文件信息查找是否存在与所述文件信息相映射的历史Docker镜像;
若存在与所述文件信息相映射的历史Docker镜像,将所述历史Docker镜像的ID发送给所述客户端;
否则,基于所述文件信息创建新Docker镜像并保存所述新Docker镜像,将所述新Docker镜像的ID发送给所述客户端;
所述客户端接收所述服务器发送的所述历史Docker镜像的ID或所述新Docker镜像的ID;
根据所接收到的Docker镜像ID查找是否存在与所述Docker镜像ID对应的历史Docker镜像,所述Docker镜像ID为所述历史Docker镜像的ID或所述新Docker镜像的ID;
若存在与所述Docker镜像ID对应的历史Docker镜像,所述客户端提取所述历史Docker镜像中的文件;
否则,所述客户端从所述服务器下载与所述Docker镜像ID对应的Docker镜像,提取与所述Docker镜像ID对应的Docker镜像中的文件。
2.如权利要求1所述的文件分发方法,其特征在于,所述基于所述文件信息创建新Docker镜像,包括:
查找包含与所述文件信息对应的文件中一个或多个文件的备选Docker镜像,且所述备选Docker镜像中不包含除与所述文件信息对应的文件中一个或多个文件之外的其他文件;
选择所述备选Docker镜像中最大的Docker镜像为父镜像;
基于所述父镜像以及所述父镜像未包含的文件创建所述新Docker镜像,其中所述父镜像未包含的文件为与所述文件信息对应的文件中的一个或多个文件。
3.如权利要求1或2所述的文件分发方法,其特征在于,所述客户端从所述服务器下载与所述Docker镜像ID对应的Docker镜像,包括:
判断所述Docker镜像ID对应的Docker镜像是否具有父镜像;
若所述Docker镜像具有父镜像,查找所述父镜像是否已存在;
若所述父镜像不存在,从所述服务器下载所述父镜像以及与所述Docker镜像ID对应的Docker镜像;
若所述Docker镜像不具有父镜像,或者所述父镜像已存在,从所述服务器下载与所述Docker镜像ID对应的Docker镜像。
4.一种文件分发***,其特征在于,包括:
文件分发单元,用于接收文件接收单元发送的文件下载请求,获取所述请求中携带的文件信息;
文件合成单元,用于根据所述文件信息在Docker镜像服务器中查找是否存在与所述文件信息相映射的历史Docker镜像;
若存在与所述文件信息相映射的历史Docker镜像,将所述历史Docker镜像的ID传输至所述文件分发单元;
否则,基于所述文件信息创建新Docker镜像,将所述新Docker镜像保存于所述Docker镜像服务器,以及将所述新Docker镜像的ID传输至所述文件分发单元;
所述文件分发单元还用于:将所述历史Docker镜像的ID或所述新Docker镜像的ID发送给所述文件接收单元;
Docker镜像服务器,用于保存Docker镜像;
所述文件接收单元,用于接收所述文件分发单元发送的所述历史Docker镜像的ID或所述新Docker镜像的ID;
Docker客户端,用于根据所述文件接收单元所接收到的Docker镜像ID查找是否存在与所述Docker镜像ID对应的历史Docker镜像,所述Docker镜像ID为所述历史Docker镜像的ID或所述新Docker镜像的ID;
文件提取单元,用于若所述Docker客户端中存在与所述Docker镜像ID对应的历史Docker镜像,提取所述历史Docker镜像中的文件;
所述Docker客户端还用于:若不存在与所述Docker镜像ID对应的历史Docker镜像,从所述Docker镜像服务器下载与所述Docker镜像ID对应的Docker镜像;
所述文件提取单元还用于:提取与所述Docker镜像ID对应的Docker镜像中的文件。
5.如权利要求4所述的文件分发***,其特征在于,所述文件合成模块,具体用于:
若所述Docker镜像服务器中不存在与所述文件信息相映射的历史Docker镜像,在所述Docker镜像服务器中查找包含与所述文件信息对应的文件中一个或多个文件的备选Docker镜像,且所述备选Docker镜像中不包含除与所述文件信息对应的文件中一个或多个文件之外的其他文件;
选择所述备选Docker镜像中最大的Docker镜像为父镜像;
基于所述父镜像以及所述父镜像未包含的文件创建所述新Docker镜像,生成所述新Docker镜像的ID,并将所述新Docker镜像保存于所述Docker镜像服务器,其中所述父镜像未包含的文件为与所述文件信息对应的文件中的一个或多个文件。
6.如权利要求4或5所述的文件分发***,其特征在于,所述Docker客户端具体用于:
若不存在与所述Docker镜像ID对应的历史Docker镜像,判断所述Docker镜像ID对应的Docker镜像是否具有父镜像;
若所述Docker镜像具有父镜像,查找所述父镜像是否已存在;
若所述父镜像不存在,从所述Docker镜像服务器下载所述父镜像以及与所述Docker镜像ID对应的Docker镜像;
若所述Docker镜像不具有父镜像,或者所述父镜像已存在,从所述Docker镜像服务器下载与所述Docker镜像ID对应的Docker镜像。
7.一种服务器,其特征在于,包括收发器、存储器、处理器和Docker镜像服务器,
所述收发器用于:接收客户端发送的文件下载请求,获取所述请求中携带的文件信息;
所述处理器通过调用所述存储器内存储的程序或指令用于:
根据所述文件信息在所述Docker镜像服务器中查找是否存在与所述文件信息相映射的历史Docker镜像;
若存在与所述文件信息相映射的历史Docker镜像,将所述历史Docker镜像的ID传输至所述收发器;
否则,基于所述文件信息创建新Docker镜像并将所述新Docker镜像保存至所述Docker镜像服务器,将所述新Docker镜像的ID传输至所述收发器;
所述收发器还用于:将所述历史Docker镜像的ID或所述新Docker镜像的ID发送给所述客户端。
8.如权利要求7所述的服务器,其特征在于,所述处理器具体用于:
若所述Docker镜像服务器中不存在与所述文件信息相映射的历史Docker镜像,在所述Docker镜像服务器中查找包含与所述文件信息对应的文件中一个或多个文件的备选Docker镜像,且所述备选Docker镜像中不包含除与所述文件信息对应的文件中一个或多个文件之外的其他文件;
选择所述备选Docker镜像中最大的Docker镜像为父镜像;
基于所述父镜像以及所述父镜像未包含的文件创建所述新Docker镜像,生成所述新Docker镜像的ID,并将所述新Docker镜像保存于所述Docker镜像服务器,其中所述父镜像未包含的文件为与所述文件信息对应的文件中的一个或多个文件。
9.一种客户端,其特征在于,包括收发器、存储器、处理器和Docker客户端,
所述收发器用于:接收服务器发送的Docker镜像ID;
所述Docker客户端用于:根据所述Docker镜像ID查找是否存在与所述Docker镜像ID对应的历史Docker镜像;
所述处理器通过调用所述存储器内存储的程序或指令用于:若存在与所述Docker镜像ID对应的历史Docker镜像,提取所述历史Docker镜像中的文件;
所述Doker客户端还用于,若不存在与所述Docker镜像ID对应的历史Docker镜像,从所述服务器下载与所述Docker镜像ID对应的Docker镜像;
所述处理器还用于:提取所述Docker镜像ID对应的Docker镜像中的文件。
10.如权利要求9所述的客户端,其特征在于,所述Docker客户端,包括:
若不存在与所述Docker镜像ID对应的历史Docker镜像,则判断所述Docker镜像ID对应的Docker镜像是否具有父镜像;
若所述Docker镜像具有父镜像,查找所述父镜像是否已存在;
若所述父镜像不存在,从所述服务器下载所述父镜像以及与所述Docker镜像ID对应的Docker镜像;
若所述Docker镜像不具有父镜像,或者所述父镜像已存在,从所述服务器下载与所述Docker镜像ID对应的Docker镜像。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711450400.2A CN108156246B (zh) | 2017-12-27 | 2017-12-27 | 一种文件分发方法、***、服务器及客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711450400.2A CN108156246B (zh) | 2017-12-27 | 2017-12-27 | 一种文件分发方法、***、服务器及客户端 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108156246A CN108156246A (zh) | 2018-06-12 |
CN108156246B true CN108156246B (zh) | 2020-12-04 |
Family
ID=62462423
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711450400.2A Active CN108156246B (zh) | 2017-12-27 | 2017-12-27 | 一种文件分发方法、***、服务器及客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108156246B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114666319B (zh) * | 2022-03-02 | 2024-03-22 | 北京百度网讯科技有限公司 | 数据下载方法、装置、电子设备和可读存储介质 |
CN115348254B (zh) * | 2022-07-21 | 2023-05-30 | 昆仑数智科技有限责任公司 | 文件打包下载方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105069353A (zh) * | 2015-08-11 | 2015-11-18 | 武汉大学 | 一种基于Docker的可信容器安全加固方法 |
CN105740048A (zh) * | 2016-01-26 | 2016-07-06 | 华为技术有限公司 | 一种镜像管理方法、装置及*** |
CN105930230A (zh) * | 2016-04-18 | 2016-09-07 | 乐视控股(北京)有限公司 | 多层镜像的管理方法 |
CN106487850A (zh) * | 2015-08-29 | 2017-03-08 | 华为技术有限公司 | 一种云环境下获取镜像的方法、装置和*** |
CN106506587A (zh) * | 2016-09-23 | 2017-03-15 | 中国人民解放军国防科学技术大学 | 一种基于分布式存储的Docker镜像下载方法 |
-
2017
- 2017-12-27 CN CN201711450400.2A patent/CN108156246B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105069353A (zh) * | 2015-08-11 | 2015-11-18 | 武汉大学 | 一种基于Docker的可信容器安全加固方法 |
CN106487850A (zh) * | 2015-08-29 | 2017-03-08 | 华为技术有限公司 | 一种云环境下获取镜像的方法、装置和*** |
CN105740048A (zh) * | 2016-01-26 | 2016-07-06 | 华为技术有限公司 | 一种镜像管理方法、装置及*** |
CN105930230A (zh) * | 2016-04-18 | 2016-09-07 | 乐视控股(北京)有限公司 | 多层镜像的管理方法 |
CN106506587A (zh) * | 2016-09-23 | 2017-03-15 | 中国人民解放军国防科学技术大学 | 一种基于分布式存储的Docker镜像下载方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108156246A (zh) | 2018-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101888704B1 (ko) | 근접-기반 피어-개시 장치 구성을 위한 방법 및 시스템 | |
KR101885133B1 (ko) | 디지털 디바이스에서 어플리케이션 자동 인스톨 기능을 제공하기 위한 장치 및 방법 | |
JP2012514378A (ja) | Nfc対応デバイスにアプリケーションをインストールする方法及びデバイス | |
CN108235763B (zh) | 检测***、方法及相关装置 | |
CN103841134A (zh) | 基于api发送、接收信息的方法、装置及*** | |
CN103309694A (zh) | 应用程序更新方法和装置 | |
CN102081536A (zh) | 一种增量升级方法及服务器 | |
CN103476002A (zh) | 数据交互的方法和装置 | |
CN104820643A (zh) | 用于在用户设备与智能设备之间建立连接的方法和装置 | |
US9058182B2 (en) | Management device for causing devices to update programs and computer readable media | |
CN104780189A (zh) | 一种软件升级方法及装置 | |
WO2009109980A2 (en) | Method and system for transfer of application between devices | |
CN108156246B (zh) | 一种文件分发方法、***、服务器及客户端 | |
CN103987064A (zh) | 接入点ap升级方法及装置 | |
CN105530323A (zh) | 一种文件升级方法、相关设备及*** | |
CN104619039A (zh) | 无线局域网中终端设备互联的方法、***和终端设备 | |
CN111339047B (zh) | 一种数据交互方法、装置及*** | |
CN102685220A (zh) | 一种基于web页面的数据交互方法及*** | |
CN103036983A (zh) | 一种信息获取的方法、网络节点、服务器及*** | |
CN114553477B (zh) | 页面跳转方法、装置、设备和存储介质 | |
CN104536777A (zh) | 用于确定需要启动的应用并执行相应操作的方法和装置 | |
US9172592B2 (en) | Apparatus and method for providing application-related management object | |
CN113596795B (zh) | 设备绑定方法、装置及计算机可读存储介质 | |
CN105045638A (zh) | 一种软件包信息的获取方法、软件包的安装方法及装置 | |
KR20150109720A (ko) | 프로그램 일괄배포방법 및 이를 이용하는 서버-클라이언트 시스템 |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201117 Address after: Room 4-15, 4 / F, building 10, East District, No. 10 courtyard, northwest Wangdong Road, Haidian District, Beijing 100193 Applicant after: BEIJING WELINK Co.,Ltd. Address before: 100084 Haidian District, Haidian District, Beijing, No. four layer 4034 Applicant before: BEIJING GALAXY CLOUD INFORMATION TECHNOLOGY Co.,Ltd. Applicant before: BEIJING GALAXY WORLD GROUP Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |