[0047] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,以下说明和附图对于本发明是示例性的,并且不应被理解为限制本发明。以下说明描述了众多具体细节以方便对本发明理解。然而,在某些实例中,熟知的或常规的细节并未说明,以满足说明书简洁的要求。
[0048] 在本申请一个典型的计算硬件配置中,客户端/终端、网络设备和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
[0049] 本发明中的客户端、移动终端或网络设备包括处理器,含单核处理器或多核处理器。处理器也可称为一个或多个微处理器、中央处理单元(CPU)等等。更具体地,处理器可为复杂的指令集计算(CISC)微处理器、精简指令集计算(RISC)微处理器、超长指令字(VLIW)微处理器、实现其他指令集的处理器,或实现指令集组合的处理器。处理器还可为一个或多个专用处理器,诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)、数字信号处理器(DSP)、网络处理器、图形处理器、网络处理器、通信处理器、密码处理器、协处理器、嵌入式处理器、或能够处理指令的任何其他类型的逻辑部件。处理器用于执行本发明所讨论的操作和步骤的指令。
[0050] 本发明中的客户端、移动终端或网络设备包括存储器,用于存储大数据,可包括一个或多个易失性存储设备,如随机存取存储器(RAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、静态RAM(SRAM)或其他类型的存储设备。存储器可存储包括由处理器或任何其他设备执行的指令序列的信息。例如,多种操作系统、设备驱动程序、固件(例如,输入输出基本系统或BIOS)和/或应用程序的可执行代码和/或数据可被加载在存储器中并且由处理器执行。
[0051] 本发明中的客户端、移动终端或网络设备的操作系统可为任何类型的操作系统,例如微软公司的Windows、Windows Phone,苹果公司IOS,谷歌公司的Android,以及Linux、Unix操作系统或其他实时或嵌入式操作系统诸如VxWorks等。
[0052] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,以下说明和附图对于本发明是示例性的,并且不应被理解为限制本发明。以下说明描述了众多具体细节以方便对本发明理解。然而,在某些实例中,熟知的或常规的细节并未说明,以满足说明书简洁的要求。本发明的具体流量控制设备及控制方法参见下述实施例:
[0053] 第一实施例
[0054] 如图1为本发明第一实施例流程示意图所示:
[0055] 一种开放型软件仓库管理方法,所述方法包括如下步骤:
[0056] S100:在所述软件仓库端进行权限管理,根据所述权限将对应的所述软件发布至指定分配的目录中;
[0057] S200:配置文件端提供对应的所述软件的依赖关系;
[0058] S300:嵌入式操作系统的调用工具调用所述配置文件和对应的所述软件。
[0059] 优选地,所述的开放型软件仓库管理方法,所述指定分配的目录中存储的所述软件为安装软件或者升级软件。
[0060] 优选地,所述的开放型软件仓库管理方法,所述嵌入式操作系统为Linux、Windows Embedded、VxWorks或者OpenWrt。
[0061] 优选地,所述的开放型软件仓库管理方法,所述调用工具为Opkg,所述Opkg是一个基于ipkg的轻量级的软件包管理系统。
[0062] 优选地,所述的开放型软件仓库管理方法,所述调用工具通过所述配置文件:
[0063] 发现所述软件存在软件冲突,则给对应的所述软件打上标签,所述标签供所述软件实际发生安装或者升级时提示参考;
[0064] 发现所述软件存在特定依赖关系,则安装依赖包。
[0065] 本发明还提供了一种开放型软件仓库管理系统,如图2为本发明第一实施例构架示意图所示:包括存储所述软件仓库的服务器和需要所述软件仓库服务的网络设备,[0066] 所述服务器,用于提供互不共享权限的目录和存储供公共查询的配置文件;
[0067] 指定分配的所述目录,用于存储获取对应权限的所述软件;
[0068] 所述配置文件,用于提供各个对应的所述软件的依赖关系;
[0069] 装载有嵌入式操作系统的所述网络设备,通过调用工具调用所述配置文件和访问对应权限的所述软件。
[0070] 优选地,所述的开放型软件仓库管理系统,所述指定分配的目录中存储的所述软件为安装软件或者升级软件。
[0071] 优选地,所述的开放型软件仓库管理系统,所述嵌入式操作系统为Linux、Windows Embedded、VxWorks或者OpenWrt。
[0072] 优选地,所述的开放型软件仓库管理系统,所述调用工具为Opkg,所述Opkg是一个基于ipkg的轻量级的软件包管理系统。
[0073] 优选地,所述的开放型软件仓库管理系统,所述调用工具通过所述配置文件:
[0074] 发现所述软件存在软件冲突,则给对应的所述软件打上标签,所述标签供所述软件实际发生安装或者升级时提示参考;
[0075] 发现所述软件存在特定依赖关系,则安装依赖包。
[0076] 第二实施例
[0077] 在实施例一的基础上,
[0078] 服务器端操作流程如下:
[0079] B1000:第三方用户通过身份验证后,登录插件服务器;
[0080] B2000:插件服务器根据身份验证指定其发布软件的专用目录;
[0081] B3000:第三方用户在专用目录中上传软件;
[0082] B4000:第三方用户在(公用)配置文件中说明上传软件的冲突关系或者依赖关系。
[0083] 网络设备端的操作流程如下:
[0084] R1000:网络设备调用opkg工具,获取服务器的网络地址;
[0085] R2000:网络设备向服务器发出请求,并获取服务器端的第三方发布的配置文件;
[0086] R3000:网络设备解析配置文件,发现软件冲突,则打上相应发布者的标签;
[0087] R4000:网络设备解析配置文件,发现软件之间存在依赖关系,则安装依赖包;
[0088] R5000:网络设备检查欲安装的软件是否带有软件发布者的标签?有则将相关信息反馈至安装策略中。
[0089] 第三实施例
[0090] 本实施例面向OpenWrt嵌入式设备的软件管理,软件服务器不再由设备管理者维护,而是由众多的第三方软件发布者来更新维护,网络架构如图2构架示意图所示。
[0091] 本发明涉及到插件服务器和OpenWrt嵌入式设备。在插件服务器侧,为第三方软件发布者进行权限管理,每个第三方软件发布者只能在有权限的目录里发布和更新软件,互不干扰,在目录里要包含第三方软件的配置文件,保证在自己发布的软件里解决所有的依赖关系。
[0092] 在OpenWrt嵌入式设备侧,opkg更新软件时先获取插件服务器的配置文件,即每个第三方发布目录下的配置文件,若发现软件冲突,则打上第三方的tag。设备在安装某个软件时,根据tag来决定安装某一方的软件。
[0093] 本发明从插件服务器和设备侧来进行描述:
[0094] 如图3本发明第三实施例服务器端(侧)流程示意图所示,插件服务器侧的流程说明。
[0095] (1)第三方登录服务器发布软件版本。
[0096] (2)服务器进行第三方的身份认证。
[0097] (3)服务器根据权限认证,指定第三方软件版本发布目录。
[0098] 如图4第三实施例设备端(侧)流程示意图所示,OpenWrt设备侧的流程说明。
[0099] 1.设备执行opkg install或者opkg update命令进行软件安装或升级。
[0100] 2.设备根据opkg配置文件获取插件服务器地址,并向服务器发送查询请求。
[0101] 3.服务器向设备发送所有第三方发布的配置文件。
[0102] 4.设备解析配置文件,若发现有相同的软件包由不同的第三方发布,则将软件包打上相应的发布者tag。
[0103] 5.设备解析软件包信息,若软件之间有依赖关系,则安装依赖包。
[0104] 6.检查安装的软件是否带发布者tag,若有,则反馈给应用层进行安装策略选择。
[0105] 7.将软件安装至设备。
[0106] 通过以上流程,OpenWrt设备将自行解决软件包依赖、冲突的问题,有利于整个布局系统向开放平台发展。
[0107] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。