CN105765533A - 用于固件虚拟化的方法和装置 - Google Patents
用于固件虚拟化的方法和装置 Download PDFInfo
- Publication number
- CN105765533A CN105765533A CN201480038517.8A CN201480038517A CN105765533A CN 105765533 A CN105765533 A CN 105765533A CN 201480038517 A CN201480038517 A CN 201480038517A CN 105765533 A CN105765533 A CN 105765533A
- Authority
- CN
- China
- Prior art keywords
- firmware
- virtualization
- data
- subscriber equipment
- remote
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4416—Network booting; Remote initial program loading [RIPL]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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
-
- 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/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/654—Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
操作为虚拟化用户设备的固件的***和方法将所述用户设备的虚拟化固件存储在远程服务器上并且经由网络从所述用户设备接收固件数据。所述方法解析所述固件数据,将所述固件数据的一部分分配给存储在所述远程服务器上的相应的虚拟化固件,并且将所述固件数据的所述一部分***所述相应的虚拟化固件。所述方法基于包含所述固件数据的所述一部分的所述相应的虚拟化固件部署至少一个远程进程以访问由所述远程服务器提供的远程服务。
Description
技术领域
本发明的实施方式一般涉及用于固件虚拟化的方法和装置。
背景技术
在电子***和计算中,固件是永久存储器与存储在存储器中的程序代码和数据的组合。包含固件的设备的典型实施例是嵌入式固件***(例如,交通灯、消费者电器和数字手表、计算机、计算机外设、数字照相机等)。包含在这些设备中的固件提供了用于设备的控制程序。固件典型地被保持在常被嵌入设备中的非易失性存储设备(例如,ROM、EEPROM或闪存)中。设备的固件可能在其经济寿命期间几乎不会或绝不会进行更换。一些固件存储器设备被永久安装并且在制造之后不能被更换。更新固件的通常原因包括在设备为用户可用之后修复错误或向设备添加特征。这可能需要物理更换ROM集成电路或用需要擦除和替换存储在固件中的所有指令的特殊程序重新编程闪存。诸如个人计算机的ROMBIOS的固件可仅包含设备的基础单元功能并且可仅向更高级软件提供服务。诸如嵌入***存储器的程序的固件可以仅是运行在***上且提供其所有功能的程序。
然而,网络连接性和基于CLOUD的部署的扩散已经改变的应用/软件被虚拟化的方式。网络连接的设备能够经由互联网闪现或安装固件更新。然而,更新需要被限制于嵌入式存储器的尺寸并且常常需要手动发起、重启设备、闪现固件ROM、下载时间、以及其它中断电子设备操作的不便步骤。
因此,本领域需要固件虚拟化以更快部署新固件和扩展固件能力。
发明内容
本发明的实施方式一般涉及用于用户设备的固件虚拟化的方法、装置,其使用对远程存储的固件的调用以执行远程进程并且将进程的结果返回用户设备固件,其中其在至少一个附图中基本示出并结合至少一个附图进行了描述以及在权利要求中进行了更完整的阐述。
本公开的这些和其它特征和优点可通过结合附图回顾本公开的以下详细描述来理解,在全文中相似的附图标记指示相似的组件。
附图说明
因此本发明的上述特征可被详细理解的方式、上面简要概括的本发明的更具体的描述可参考实施方式得到,其中一些实施方式在附图中示出。然而,应注意,附图仅示出了本发明的典型实施方式,因此不被认为限制本发明的范围,本发明可准许其它同等有效的实施方式。
图1是根据本发明的一个或多个实施方式的固件虚拟化***的图示;
图2是根据本发明的一个或多个实施方式的固件虚拟化***的图示;
图3是根据本发明的一个或多个实施方式的使用与用户设备的嵌入式固件通过接口连接的图2中公开的虚拟化固件提供者的概述方法的流程图;
图4是根据本发明的一个或多个实施方式在平台上生成虚拟化固件的方法的流程图;
图5是根据本发明的一个或多个实施方式的使用虚拟化固件平台的用户设备的独立操作的方法的流程图;以及
图6是根据本发明的一个或多个实施方式的示例性计算服务器内的模块的框图。
具体实施方式
在下面描述的实施方式中,“进程”指存储在执行计算机(例如,服务器、个人计算机、移动设备等)上的随时可运行的代码基或预生成的用于函数的进程代码。每个进程通过名称、进程ID、图标、或标识进程功能的其它标识符被集成开发环境(IDE)的用户唯一识别。进程包括在用户设备的嵌入式固件之间通信的固件数据。执行是指进程在计算机(本地或远程、或基于CLOUD)上的启动。部署是发送或存储在晚些时候根据条件被执行的最终代码。“包”指通过公共属性(API名称、公共参数、SDK、参数名称、远程服务等)组织的进程的集合。函数(例如,进程)是用于呈现给用户描述与进程相关联的代码操作的描述性术语和/或图像。在一些时候方式中,函数可包括进程代码。
“固件”指存储在嵌入于用户设备中的非易失性存储器中的代码,其包括用于基本函数的代码以向更高级软件提供服务。如下面所讨论的,用户设备是能够连接至远程服务器以访问虚拟化固件的电子设备。用户设备的非限制性实施例包括笔记本电脑、平板电脑、蜂窝电话、计算机、电器、游戏***、打印机、扫描仪、外设、电动车、处理器、微控制器和存储有固件的其它电子设备。
本文公开的实施方式涉及远程服务器或服务器组(即,“CLOUD中”)上的固件库,其中用户设备可远程选择或自动连接至远程服务器以从用户设备上的固件访问进程。在一些实施方式中,远程进程调用被下载和安装到用户设备的固件中用于从用户设备直接调用远程服务器上的进程。计算平台包括硬件体系结构和软件框架(包括应用程序框架),其中它们的结合允许软件运行。典型的平台包括计算机体系结构、操作***和运行时库。
图1是根据本发明的一个或多个实施方式的固件虚拟化***100的图示。***100包括至少一个用户设备(102a…102n)、网络110和至少一个远程服务器(104a…104n)。至少一个用户设备(102a…102n)被统称为用户设备102,包括能够存储和执行程序的电子设备,例如个人计算机、外设、电器、游戏***、服务器、虚拟服务器、微控制器(MCU)和控制器、传感器、致动器、与网关连接的边缘设备、专用集成电路(ASIC)、微处理器和处理器、蜂窝电话、智能电话、平板电脑、笔记本电脑等。
每个用户设备(102a…102n)包括相应的存储器(112a…112n),存储器(112a…112n)存储嵌入的固件(103a…103n)以及连接和认证到网络110以连接至至少一个远程服务器(104a…104n)所必要的代码。固件利用连接代理便于连接至网络110和远程服务器104。
网络110可包括诸如局域网(LAN)、广域网(WAN)、无线局域网WLAN、蜂窝网、Wi-Fi、因特网或内联网的有线和/或无线网络中的至少一个或组合。至少一个远程服务器(104a…104n)可包括远程应用服务器、网页服务器、邮件服务器、主机服务器、数据库服务器、存储服务器等。
至少一个远程服务器(104a…104n)包括远程固件虚拟化平台(下文“平台”)108和存储器(114a…114n)以通过使用固件集合120、设备概要文件122和执行引擎124存储和执行用于虚拟化固件的具体进程调用。设备概要文件122可包括关于用户设备的附加信息(例如,固件更新历史、已知错误、扩展、库等。
存储器114a…114n还可存储用户接口模块、用户概要文件/账户的数据库、进程集合(即,进程库)、SDK和相关联的参数以跨网络110上的其它服务器(104n)链接和执行进程。
如下面进一步讨论的,执行引擎124基于虚拟化固件和从用户设备102接收的固件数据部署远程进程。在远程进程调用被存储在用户设备102的固件中的实施方式中,执行引擎124通过关联被调用的识别例程以及通过使用固件参数和调用参数运行/执行进程,处理对进程库中的例程的调用。调用参数存储在用户设备102a或远程服务器104a上,在一些实施方式中经由与用户设备102a的固件的交互(例如,经由图形用户界面或按钮按下)由用户直接指定。进程调用参数从来自用户设备102a的固件数据通信解析得到。在一些实施方式中,执行引擎126可在将进程结果返回用户设备102a的固件之前将输出发送至另一进程调用或存储在远程服务器104上的源进程调用。
图2是根据本发明的一个或多个实施方式的固件虚拟化***200的图示。***200包括用户设备102n、固件虚拟化的固件平台108和虚拟化固件服务(2021…202N)。用户设备102n至少包括CPU203N、支持电路204N以及包含指令和算法的存储器112n。CPU203N处理用户设备102n的输入和输出。CPU203N可以是市场上可买到的处理器、微处理器、微控制器等。在其它实施方式中,CPU203N是微控制器,例如PIC。支持电路204N包括向CPU203N提供例如时钟电路、网络通信、缓存、电源、I/O电路等功能的公知电路。替换实施方式可使用定制专用集成电路(ASIC)上的控制算法。
存储器112n可以是用于存储数据和可执行软件的任意形式的数字存储。这种存储器包括但不限于随机存取存储器、只读存储器、磁盘存储、光存储等。存储器112n存储与接口211N、嵌入式固件215N和网络连接管理器220N对应的计算机可读指令。
在一些实施方式中,用户接口211N包括键盘、电子按钮、扬声器、触摸屏、显示器、或其它用户交互机构。在一些实施方式中,用户接口211N可与嵌入式固件215N通信使得用户可与用户设备102n交互。
嵌入式固件215N包括用于用户设备102n操作的指令。在一些实施方式中,嵌入式固件215N可以是用于执行以更高级语言写的程序的基本指令集。在其它实施方式中,嵌入式固件215N可以是可执行程序。嵌入式固件215N与网络连接管理器220N通信使得嵌入式固件可耦接至外部虚拟化固件服务(2021…202N)。嵌入式固件215N还包括允许用户设备102n的绝大部分基本输入信号和输出信号可用于通过网络连接管理器220N通信的代码。在用户设备102n为打印机的实施例中,嵌入式固件215N选择性地允许用于按钮、指示器(例如LED)、显示屏的固件数据、或缓存的打印文件数据被传输至网络连接管理器220。
网络连接管理器220N准备用于从用户设备102n传送的固件数据,以及接收来自虚拟化固件平台108的固件数据。网络连接管理器220N可经由有线或无线网络耦接并且起网桥作用以访问网络110和平台108。
虚拟化固件平台108编码和解码去往和来自网络连接管理器220N的信号。虚拟化固件平台108包括至少一个虚拟固件提供者(VFP)202N,虚拟固件提供者(VFP)202N被统称为VFP202。VFP202包括虚拟化固件库102N、执行引擎124N、设备认证模块228N、固件虚拟化模块230N、进程扩展模块235N和设备概要文件数据库122N。在一些实施方式中,虚拟化固件平台108包括与其它VFP202一起执行进程的代码、以及调用经典服务组件(CSC)2101…210N提供的远程服务和与其通过接口连接的代码。
设备认证模块228N通过比较固件与存储在虚拟化固件库120N和/或设备概要文件122N中的虚拟化固件确定用户设备102n的嵌入式固件。在一些实施方式中,设备概要文件122N还包括用户账户信息以及虚拟化固件定制的偏好和基于偏好的虚拟化固件的执行。例如,用户账户偏好可规定当与固件和用户的所有权匹配的打印机连接至虚拟化固件平台108时,PDF文档被生成并且被邮寄至被打印的每份文档的指定用户邮件账户。例如邮件账户的邮寄地址的账户信息可被存储为用户账户的一部分。
在一些实施方式中,设备认证模块228N验证与对应于特定CSC210的特定用户账户的虚拟化固件服务(2021...202N)相关联的令牌和证书。例如,设备认证模块228N还可检索存储的邮件证书以登录到CSC210,即POP3邮件服务器,以基于来自进程扩展模块235N的进程执行发送邮件进程。
固件虚拟化模块230N处理来自用户设备102n的固件数据并且生成虚拟化固件。为了生成虚拟化固件,固件虚拟化模块230N接收(例如,来自用户设备102n的软件开发者或制造商的)固件。固件指令和参数被解析。参数的值的来源基于值源自用户设备102n、来自VFP202的进程、或CSC210提供的服务被确定。参数还被检查以确定与固件中的其它参数的相对关联性。参数然后被分配和链接至对应的数据来源。固件的链接和关联格式被存储为虚拟化固件库120N中的虚拟化固件指令集。
在一些实施方式中,虚拟化固件库120N包括用于用户设备102n的更新的固件指令。通过包括最新的固件版本,开发者可快速分发和确定被部署在用户设备102上的固件版本而不需要在用户设备102n上安装新固件。换句话说,用户设备102n可通过网络110在扩展嵌入式固件215N能力的虚拟化固件上操作。如下面进一步详细讨论的,在网络110不可用期间,用户设备102与安装有固件的工厂合作直到网络110和虚拟化固件再次可用。
进程扩展模块235N与固件虚拟化模块230N协调以执行平台108提供的虚拟化固件和被部署在CSC210上的服务之间的处理。进程扩展模块235N协调虚拟化固件参数和参数值来源的链接以执行由用户或设备概要文件122N中的开发者指定的进程。进程扩展模块235N还生成代码以链接固件与相应的API和SDK来实现CSC210所必要的特定进程。例如,打印机(即,用户设备102n)可具有制造商编程的取消和删除当前文件的打印机缓存的“取消打印”按钮。如平台108上的进程所规定的,以及通过使用虚拟化固件,按两次同一个按钮可触发打印机将打印机缓存数据发送至VFP202以随后提取缓存数据并且生成文件的数字PDF图像。PDF图像然后被邮寄至存储器设备概要文件122N中的邮件地址。因此,扩展打印机的固件能力而不需要修改或要求嵌入式固件215N的附加处理。
CSC210被云客户205N虚拟化并且与平台108通过接口连接,使得进程被部署在CSC210上。在一些实施方式中,CSC210经由网络110通信地耦接至平台108。CSC210N包括远程接口206N、应用层208N、虚拟化层212N和物理装备214N。每个CSC210代表由平台108提供的特定远程服务。例如,CSC210N可以是因特网服务和相应的服务器(例如,FACEBOOK、EBAY、POP3邮件、TWITTER、AMAZON、SMS、FTP、HTTP等),CSC2102可以是提供传统本地数据信息处理(例如,图像渲染、代码编译、数据分析、数据存储等)的计算机。
物理装备214N或机器(CPU、存储器、网络路由器等)在虚拟化层212N被虚拟化以进行处理并存储应用层208N可用的资源。虚拟化在单个计算机中建立了冗余和增加的操作带宽,在多个机器被虚拟化的实施方式中更甚。在这些实施方式中,处理工作量也可基于物理位置的优先级和独立性被分配给各个装备。
应用层208N允许虚拟化机器上的诸如数据库操作(例如,存储账户档案、入库数据等)的程序和功能的执行运行时间。远程接口层206N包括代码以访问网页服务器和利用API。远程接口层206N与云客户205N(例如,瘦客户、网页浏览器、移动应用程序、终端仿真器程序等)通信。
云客户205N便于去往和来自的VCP245的数据与应用层2081的通信。云客户205N通过呈现网页浏览器、终端仿真器或其它客户界面简化了层接口2061、2081、2121和2151。本发明的上述实施方式可利用云客户205以通过使用虚拟化固件便于基于来自用户设备102n的固件数据的远程进程调用代码生成。虚拟化固件将VFP202生成和提供的进程调用链接至应用层208N。
在一些实施方式中,虚拟化固件平台108可包括扩展嵌入式固件215能力的附加代码库。例如,如果用户设备102n是数字视频记录仪(DVR),则DVR嵌入式固件包括用于记录的电视节目的远程网络存储的网络连接管理器220N。在该实施例中,嵌入式固件215N包括仅与远程平台108通信的指令。远程平台108的VFP202随后处理固件数据以通过使用虚拟化固件平台108接收视频并协调网络110上的额外和/或冗余存储,重定向来自嵌入式固件215N的记录。在另一实施例中,VFP202可包括虚拟化固件以独立地调谐至频道来存储用于在机顶盒触发下记录的频道。在该实施例中,机顶盒嵌入式固件215N发送触发参数并且记录进程被传递至VFP202使得机顶盒固件具有扩展能力作为DVR。
图3是根据本发明的一个或多个实施方式的使用与用户设备102N的嵌入式固件215N通过接口连接的图2中公开的虚拟化固件提供者的概述方法300的流程图。
方法300从步骤305开始,并且继续进入步骤310。在步骤310,用户设备102N接收输入的固件数据。固件数据包括用户输入的数据以及用于远程服务器104N提供的进程的参数。固件数据还包括设备操作数据、处理器指令和来自外设的被转换为数字信号的模拟信号(例如,传感器数据、开关、按钮等)。
接下来,在步骤315,方法300协调嵌入式固件215N与连接代理(例如,网络连接管理器220)以将固件数据传送至平台108。方法然后继续进入步骤320。在步骤320,远程服务器104N上的平台108认证用户设备102N。认证包括验证在用户设备102N上操作的固件以及与用户设备102N相关联的预定的用户概要文件。
在步骤325,方法300将嵌入式固件215N匹配至存储在虚拟化固件库120N中的相应虚拟化固件。在图4中进一步描述了用于对应用户设备102的固件的虚拟化。在任选实施方式中,方法300可继续进入步骤335,在步骤335,发送网页链接或远程进程调用并将其存储在嵌入式固件215N中。在该实施方式中,用户设备102N存储指令以直接触发远程服务器104上的进程的远程进程调用,并且不需要协调步骤315。待存储的远程进程的类型由远程服务器104上的虚拟化固件的用户或软件开发者指定。
在步骤330,将来自用户设备102N的固件数据解析为对应的参数并且根据上下文被映射到虚拟化固件。因此,源自用户设备的特定输入或输出的参数被分配到相应的虚拟化固件。例如,指示电视电源灯为开的嵌入式固件参数由此被关联至虚拟化固件中的等效参数。
替换实施方式包括预解析固件数据并且仅将一部分(即,参数)传送给远程服务器104N。在该实施方式中,基于步骤325中的映射将预解析的固件数据分配给等效的虚拟化固件。
在步骤340,基于步骤325和330的匹配和映射将解析的固件数据***虚拟化固件。接下来,在步骤345,平台108基于虚拟化固件和从用户设备102N接收的固件数据执行远程进程。
在步骤350,平台将进程部署到相应的CSC210。继续该实施例,用户可指定平台108上的进程以在电视电源灯为开时向他们的蜂窝电话发送SMS文本消息来监视他们家的电视观看情况。在该实施例中,固件数据为电视的电源灯,其由虚拟化固件解释且随后触发执行代码以在SMS服务器(即,CSC210)上发送SMS消息的进程。文本消息包括TV使用的通知,并且被发送给基于与用户账户相关联的数据在进程中定义或存储在远程服务器104上的用户蜂窝电话的指定的电话号码。
在步骤355,将来自CSC210的处理结果数据返回给平台108。结果数据包括进程已经被成功部署的确认信号。另外,结果数据包括主动收听和接收来自CSC210的附加响应。继续该实施例,平台108收听来自用户的蜂窝电话号码的SMS文本消息以及文本消息的内容。用户因此可编辑与用户概要文件一起存储在远程服务器104N上的预定进程命令以控制电视监视:例如电源开、电源关、重置观看计时器等。
在步骤360,基于虚拟化固件库和远程进程参数转换从CSC接收的数据。VFP202还利用相应的API和SDK生成对用户设备102的嵌入式固件215N而言为本地的代码或信号。
在步骤365,通过连接代理接收结果数据并且将其传送至嵌入式固件215N以完成远程进程的执行。接收的数据因此为嵌入式固件215N的本机语言使得用户设备102N操作为就像远程进程数据源自嵌入式固件215N且由其生成一样。方法300然后在步骤370结束。
图4是根据本发明的一个或多个实施方式的在平台108上生成虚拟化固件的方法400的流程图。用于用户设备的每个固件版本被单独存储在远程服务器104上。另外,固件版本可包括具有修改参数的多个子迭代以便于用于所提供的各个服务的远程进程的执行。
方法从步骤405开始并且继续进入步骤410。在步骤410,从软件开发者或用户接收固件集。接下来,在步骤415,比较固件与之前通过VFP202接收且存储的固件。比较减少了存储在远程服务器104上的相同固件的非必要副本的数量。在步骤420,如果方法400确定固件已经被虚拟化,则方法400在步骤445结束。然而如果固件不同或是预先存在的虚拟化固件的修改,则方法400进入步骤425。
在步骤425,将固件指令解析为对应的变量参数。解析是基于参数的上下文映射(即,一个参数值如何与另一参数相关)进行的。还关于给定参数代表的上下文解析参数。例如,对于扫描仪的固件,解析和识别来自某一引脚的信号是否代表启动按钮的物理按钮按下被接收到的参数值用于远程进程。
接下来在步骤430,方法400确定具体参数值的来源。参数值可由用户输入、在用户设备102的操作期间生产、存储在用户设备的特定存储块中、与设备的用户概要文件一起存储在远程服务器104上、或者从远程源(例如,CSC210)接收。
在步骤435,将参数分配给相应值来源。分配包括将参数链接至网络参数以使固件收听来自进程的固件数据或路由数据用于***固件中。
在步骤440,将固件存储为虚拟化固件库120N中的虚拟化固件指令集。如上所述,库为平台108可用以执行远程进程并且确保更新的固件工作在给定用户设备上。方法400然后在步骤445结束。
在一些实施方式中,虚拟化固件以实时执行被调用和操作,并且嵌入式固件命令与远程固件集成,经由用户接口211提供虚拟化固件的实时执行。实时执行可包括远程进程调用和远程服务器104a上更新的服务的询问或命令的解码使得除了比如当用户设备102n被开发时提供的服务以外的在用户设备102n之后开发的服务可被调用。例如,可向用户呈现对电视上的按键远程赋值的选项以发用户正在看哪个节目的TWEET。虚拟化固件平台108允许发送TWEET而不管TWITTER社交服务器在远程控制之后被开发的事实。因此,固件能力受限于虚拟化固件平台108所提供的能力,不纯受限于用户设备102n上嵌入式固件215的能力。
图5是根据本发明的一个或多个实施方式的使用虚拟化固件平台108的用户设备102N的独立操作的方法500的流程图。方法500是处理实例的示例性方法,其中用户设备可不访问虚拟化固件平台108。方法500从步骤505开始并且继续进入步骤510,在步骤510,连接管理器220确定网络连接中断或不可用。任选地,在步骤515,方法500可通知用户断开的连接和减少的固件能力。接下来,在步骤520,用户设备102N工作在减少的指令集。在一些实施方式中,减少的嵌入指令集是用户设备102N的默认固件指令集。在步骤520,用户设备102N嵌入式固件以不需要由嵌入式固件执行的虚拟化固件的能力工作。
在步骤525,用户设备102N建立和存储需要虚拟化固件功能和查询的能力队列。方法500继续进入步骤530以确定如果与远程服务器104N的连接可用则返回步骤525创建队列列表直到有连接。如果连接可用,则方法500继续进入步骤535,将存储的查询传递至远程服务器104N以访问虚拟化固件平台108。
接下来在步骤540,解码和解析传递的查询用于远程服务器104N上的远程进程。在步骤545,方法执行、部署和返回来自远程服务的结果数据,如上面在方法300中描述的。方法500然后在步骤550结束。
本文公开的方法是实现图1的***100的示例性方法的实施例并且不对范围造成限制。附加的实施方式可包括所公开的各个方法的步骤的次序颠倒或组合执行的方法步骤。
图6是根据本发明的一个或多个实施方式的示例性计算服务器内的模块的简化框图。计算机***600包括与前述实施方式中的结构基本类似的包括服务器和电子设备的结构。
用于虚拟化固件的方法和装置的各个实施方式。一个这种计算机***是图6所示的计算机***600,计算机***600可在各个实施方式中实现图1至图5中所示的任一元件或功能。在各个实施方式中,计算机***600可被配置为实现上述的方法。计算机***600可用于实现上述实施方式的任意其它***、设备、元件、功能或方法。在所示实施方式中,计算机***600可被配置为在各个实施方式中作为处理器可执行的可执行程序指令622(例如,处理器610可执行的程序指令)实现方法300、400和500。
在所示实施方式中,计算机***600包括经由输入/输出(I/O)接口630耦接至***存储器620的一个或多个处理器610a-610n。计算机***600还包括耦接至I/O接口630的网络接口640、以及一个或多个输入/输出设备660,例如光标控制设备660、键盘670和显示器680。在一些实施方式中,键盘670可以是触摸屏输入设备。
在各个实施方式中,任一组件可由***利用以虚拟化如上所述的固件。在各个实施方式中,用户接口可在显示器680上生成和显示。在一些情况下,可想到,实施方式可使用计算机***600的单个示例实现,而在其它实施方式中多个这种***、或构成计算机***600的多个节点可被配置为主持各个实施方式的一部分或示例。例如,在一个实施方式中,一些元件可经由计算机***600的一个或多个节点实现,所述一个或多个节点不同于实现其它元件的节点。在另一实施方式中,多个节点可以分布式实现计算机***600。
在不同的实施方式中,计算机***600可以是包括但不限于个人计算机***、主框架计算机***、手持式计算机、工作站、网络计算机、应用服务器、存储设备、外设(如变换器、调制解调器、路由器)、或通常任意类型的计算或电子设备的多种类型的设备中的一种。
在各种实施方式中,计算机***600可以是包括一个处理器610的单处理器***、包括若干处理器610(例如,两个、四个、八个或其它合适的数量)的多处理器***。包括一个处理器710的单处理器***可划分单个处理器的功能以表现为用于处理和执行程序的同步数据的多个处理器。处理器610可以是能够执行指令的任意合适的处理器。例如,在各个实施方式中,处理器610可以是实现各种指令集体系结构(ISA)中的任一种的通用处理器或嵌入处理器。在多处理器***中,处理器610中的每个可通常地,但非必要,实现相同的ISA。
***存储器620可被配置为存储处理器610可访问的程序指令622和/或数据632。在各个实施方式中,***存储器620可使用任意合适的存储器技术实现,存储器技术例如,静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器、或任意其它类型存储器。在所示的实施方式中,实现上述实施方式的任一元件的程序指令和数据可被存储在***存储器620中。在其它实施方式中,程序指令和/或数据可被接收、发送或存储在不同类型的计算机可访问媒介上或与***存储器620或计算机***600分离的类似媒介上。
在一个实施方式中,I/O接口630可被配置为协调处理器610、***存储器620和设备中的任意外设之间的业务,包括网络接口640或其它***接口,例如输入/输出设备650。在一些实施方式中,I/O接口630可执行任意必要的协议、时序或其它数据转变以将来自一个组件(例如,***存储器620)的数据信号转换成适于由另一组件(例如,处理器610)使用的格式。在一些实施方式中,I/O接口630可包括对通过各种类型的***总线附接的设备的支持,例如***组件互连(PCI)总线标准或通用串行总线(USB)标准的变型。在一些实施方式中,I/O接口630的功能可被划分成两个或更多个单独的组件,例如,北桥和南桥。此外,在一些实施方式中,I/O接口630的一些或所有功能(例如,对***存储器620的接口)可被直接并到处理器610中。
网络接口640可被配置为允许在计算机***700与附接至网络(例如网络690)的其它设备(例如,一个或多个外部***)之间或计算机***600的节点之间交换数据。在各个实施方式中,网络690可包括一个或多个网络,包括但不限于局域网(LAN)(例如,以太网或企业网)、广域网(WAN)(例如,因特网)、无线数据网、蜂窝网、Wi-Fi、一些其它电子数据网、或它们的一些组合。在各个实施方式中,网络接口640可经由有线或无线通用数据网络(例如,任意合适类型的以太网)、经由电信/电话网络(例如,模拟语言网络或数字光纤网络)、经由存储区域网络(例如,光纤通道SAN)、或经由任意其它合适类型的网络和/或协议支持通信。
在一些实施方式中,输入/输出设备650可包括一个或多个显示终端、键盘、小键盘、触摸板、触摸屏、扫描设备、语音或光学识别设备、或适于通过一个或多个计算机***600输入或访问数据的任意其它设备。多个输入/输出设备650可存在于计算机***600中或者可分布在计算机***600的各个节点上。在一些实施方式中,类似的输入/输出设备可与计算机***600分离并且可通过有线或无线连接(例如,通过网络接口640)与计算机***600的一个或多个节点交互。
在一些实施方式中,所示的计算机***可实现上述任一方法,例如图3至图5的流程图所示的方法。在其它实施方式中,可包括不同的元件和数据。
本领域技术人员将理解,计算机***600仅是说明性的并且并非旨在限制实施方式的范围。具体地,计算机***和设备可包括可执行各个实施方式所指示的功能的硬件或软件的任意组合,包括计算机、网络设备、因特网装置、智能电话、平板电脑、PDA、无线电话、寻呼机等。计算机***600还可连接至未示出的其它设备,或者可取代地作为独立***操作。另外,在一些实施方式中,所示组件提供的功能可被组合到更少的组件中或分布到附加的组件中。类似地,在一些实施方式中,可能未提供所示组件中的一些的功能和/或其它附加的功能可能是可用的。
本领域技术人员还将理解,尽管各个项被说明为在被使用时存储在存储器或存储设备中,但是这些项或它们的一部分可在存储器与其它存储设备之间转移以用于存储器管理和数据完整性目的。替换地,在其它实施方式中,一些或所有软件组件可在另一设备的存储器中执行并且经由计算机间通信与所示的计算机***通信。一些或所有***组件或数据结构还可(例如,作为指令或结构数据)被存储在计算机可存取介质或便携式物体中以由合适的驱动器读取,它们的各个实施例已在上面描述。在一些实施方式中,存储在与计算机***600分离的计算机可存取介质上的指令可经由传输媒介或通过通信介质(例如,网络和/或无线链路)传送的信号(例如,电信号、电磁信号或数字信号)被发送给计算机***600。各个实施方式还可包括基于计算机可存取介质或经由通信介质接收、发送或存储根据上面描述实现的指令和/或数据。通常,计算机可存取介质可包括存储介质或存储器介质,例如磁性或光学媒介(例如磁盘或DVD/CD-ROM)、易失性或非易失性媒介(例如,RAM(例如SDRAM、DDR、RDRAM、SRAM等)、ROM等。
在不同的实施方式中,本文描述的方法可以软件、硬件或它们的组合实现。另外,可改变方法的次序,可添加、重新排序、组合、省略或以其它方式修改各种元件。本文描述的所有实施例以非限制的方式给出。对本领域技术人员显而易见的是可对本公开进行各种修改和改变。已经在具体实施方式的背景下描述了根据实施方式的实现。这些实施方式是说明性的而非限制性的。许多变型、修改、添加和改进是可行的。由此,可为本文作为单个示例描述的组件提供多个示例。各个组件、操作和数据存储之间的边界一定程度上是任意的,具体的操作是在特定说明性配置的背景下被说明的。可预想到功能的其它分配,并且其落入下面权利要求的范围内。最后,示例性配置中的作为独立组件给出的结构和功能可作为组合结构或组件实现。这些和其它变型、修改、添加和改进可落入下面权利要求限定的实施方式的范围内。
尽管前面是针对本发明的实施方式,但是在不偏离本发明的基本范围的情况下可想到本发明的其它实施方式,本发明的范围由所附权利要求确定。
Claims (15)
1.一种操作为虚拟化用户设备的固件的方法,包括:
将所述用户设备的虚拟化固件存储在远程服务器上;
经由网络从所述用户设备接收固件数据;
将所述固件数据的一部分分配给存储在所述远程服务器上的相应的虚拟化固件;
将所述固件数据的所述一部分***所述相应的虚拟化固件;以及
基于包含所述固件数据的所述一部分的所述相应的虚拟化固件部署至少一个远程进程以访问由所述远程服务器提供的远程服务。
2.根据权利要求1所述的方法,其中所述固件数据还包括来自所述用户设备上的嵌入式固件的命令。
3.根据权利要求2所述的方法,其中解析所述固件数据还包括识别所述命令中的触发参数和目标参数。
4.根据权利要求3所述的方法,还包括确定识别的触发参数和目标参数的参数值的相应来源。
5.根据权利要求1所述的方法,其中所述至少一个远程进程对应于用于部署在被所述远程服务器上的平台虚拟化的经典服务组件(CSC)上的进程。
6.根据权利要求5所述的方法,其中部署所述至少一个远程进程还包括以与所述CSC对应的本机语言生成进程代码以及在所述CSC上执行生成的进程代码。
7.根据权利要求1所述的方法,其中存储在所述用户设备上的固件不同于存储在所述远程服务器上的所述虚拟化固件。
8.根据权利要求1所述的方法,还包括检索对应于所述用户设备的所述远程服务器上存储的用户数据以***所述虚拟化固件中。
9.一种从用户设备访问远程服务器上的固件虚拟化***的方法,包括:
使用所述用户设备上的连接管理器通过网络连接至所述远程服务器上的远程虚拟化固件平台;
将来自存储在所述用户设备上的嵌入式固件的固件数据发送至所述虚拟化固件平台以基于所述固件数据部署远程进程;
通过所述虚拟化固件平台从执行的远程进程接收处理的数据,其中所述处理的数据为所述嵌入式固件的本机语言;以及
基于所述处理的数据操作所述用户设备和所述嵌入式固件。
10.根据权利要求9所述的方法,其中连接还包括在所述远程服务器上用相应的用户账户认证所述用户设备。
11.根据权利要求9所述的方法,其中所述固件数据还包括来自所述用户设备上的嵌入式固件的命令。
12.根据权利要求11所述的方法,其中所述固件数据还包括所述命令中的触发参数和目标参数。
13.根据权利要求9所述的方法,还包括将远程进程调用安装到所述用户设备上的所述嵌入式固件中以使用所述嵌入式固件通过所述虚拟化固件平台发起所述远程进程的部署。
14.一种操作为虚拟用户设备的固件的***,包括:
a)至少一个处理器;
b)至少一个输入设备,耦接至至少一个网络;以及
c)至少一个存储设备,存储处理器可执行指令,所述处理器可执行指令在被所述至少一个处理器执行时执行一种方法,所述方法包括:
i.将所述用户设备的虚拟化固件存储在远程服务器上;
ii.经由网络从所述用户设备接收固件数据;
iii.将所述固件数据的一部分分配给存储在所述远程服务器上的相应的虚拟化固件;
iv.将所述固件数据的所述一部分***所述相应的虚拟化固件;以及
v.基于包含所述固件数据的所述一部分的所述相应的虚拟化固件部署至少一个远程进程以访问由所述远程服务器提供的远程服务。
15.根据权利要求14所述的***,其中所述固件数据还包括来自所述用户设备上的嵌入式固件的命令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361845395P | 2013-07-12 | 2013-07-12 | |
US61/845,395 | 2013-07-12 | ||
PCT/US2014/046215 WO2015006599A1 (en) | 2013-07-12 | 2014-07-10 | Method and apparatus for firmware virtualization |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105765533A true CN105765533A (zh) | 2016-07-13 |
CN105765533B CN105765533B (zh) | 2019-03-01 |
Family
ID=52278052
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480038517.8A Active CN105765533B (zh) | 2013-07-12 | 2014-07-10 | 用于固件虚拟化的方法和装置 |
Country Status (9)
Country | Link |
---|---|
US (2) | US9830136B2 (zh) |
EP (1) | EP3019956A4 (zh) |
JP (1) | JP6464162B2 (zh) |
KR (1) | KR102073678B1 (zh) |
CN (1) | CN105765533B (zh) |
CA (1) | CA2915695C (zh) |
HK (1) | HK1225471A1 (zh) |
SG (1) | SG11201600194SA (zh) |
WO (1) | WO2015006599A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106301914A (zh) * | 2016-08-16 | 2017-01-04 | 上海斐讯数据通信技术有限公司 | 一种配置数据方法 |
CN106897027A (zh) * | 2017-01-18 | 2017-06-27 | 成都电科致远网络科技有限公司 | 一种基于桌面虚拟化的分布式存储服务***及方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3054763B1 (fr) * | 2016-07-29 | 2019-08-30 | Dover Europe Sarl | Systeme de protection avancee d'elements consommables ou detachables d'imprimante industrielle |
JP2018120422A (ja) * | 2017-01-25 | 2018-08-02 | ルネサスエレクトロニクス株式会社 | 車載通信システム、ドメインマスタ、及びファームウェア更新方法 |
WO2019023359A1 (en) * | 2017-07-25 | 2019-01-31 | BioHiTech America, LLC | SYSTEMS AND METHODS FOR INTELLIGENTLY CONTROLLING EQUIPMENT SUCH AS FOOD WASTE MACHINERY |
EP3717976A4 (en) | 2017-12-01 | 2021-08-04 | Ciambella Ltd. | METHOD AND DEVICE FOR GENERATING AND MANAGING INTELLIGENT SOLUTIONS FOR MEMORY PROGRAMMABLE CONTROLS (PLC) |
US10802821B2 (en) * | 2018-07-24 | 2020-10-13 | Vmware, Inc. | Firmware management |
US11789748B2 (en) | 2020-10-05 | 2023-10-17 | SK Hynix Inc. | Firmware parameters optimizing systems and methods |
KR102553371B1 (ko) | 2023-03-29 | 2023-07-07 | 주식회사 하임아이엔씨 | 사용 환경에 따른 커스터마이징된 mcu 펌웨어 업데이트 자동화 방법 및 장치 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101373441A (zh) * | 2008-09-19 | 2009-02-25 | 苏州壹世通科技有限公司 | 一种基于固件的虚拟化平台*** |
US20100299187A1 (en) * | 2009-05-19 | 2010-11-25 | Smx Inet Global Services Sa | Providing a local device with computing services from a remote host |
CN102177501A (zh) * | 2008-08-25 | 2011-09-07 | 宝威电源意大利股份公司 | 硬件虚拟化*** |
CN102271153A (zh) * | 2010-06-03 | 2011-12-07 | 英特尔公司 | 用于虚拟化tpm访问的***、方法以及装置 |
Family Cites Families (60)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US562360A (en) * | 1896-06-16 | Drawing-press | ||
US5623604A (en) * | 1992-11-18 | 1997-04-22 | Canon Information Systems, Inc. | Method and apparatus for remotely altering programmable firmware stored in an interactive network board coupled to a network peripheral |
US6108715A (en) | 1994-12-13 | 2000-08-22 | Microsoft Corporation | Method and system for invoking remote procedure calls |
US6266809B1 (en) * | 1997-08-15 | 2001-07-24 | International Business Machines Corporation | Methods, systems and computer program products for secure firmware updates |
US6158031A (en) | 1998-09-08 | 2000-12-05 | Lucent Technologies, Inc. | Automated code generating translator for testing telecommunication system devices and method |
US7376904B2 (en) | 2000-06-13 | 2008-05-20 | National Instruments Corporation | Automatic generation of programs with GUI controls for interactively setting or viewing values |
US6907446B1 (en) | 2000-10-16 | 2005-06-14 | Implicit Networks, Inc. | Method and system for dynamic delivery of beads |
US20020111995A1 (en) * | 2001-02-14 | 2002-08-15 | Mansour Peter M. | Platform-independent distributed user interface system architecture |
US20020194608A1 (en) | 2001-04-26 | 2002-12-19 | Goldhor Richard S. | Method and apparatus for a playback enhancement system implementing a "Say Again" feature |
US7103641B2 (en) | 2001-06-18 | 2006-09-05 | Intel Corporation | Method and apparatus for distributing computer platform firmware across a network |
US8082318B2 (en) | 2001-09-28 | 2011-12-20 | British Telecommunications Plc | Controlling service requests transmitted from a client to a server |
US6895573B2 (en) | 2001-10-26 | 2005-05-17 | Resultmaker A/S | Method for generating a workflow on a computer, and a computer system adapted for performing the method |
US7320126B2 (en) * | 2001-11-06 | 2008-01-15 | Sandisk Corporation | Implementation of in system programming to update firmware on memory cards |
US7346672B2 (en) | 2002-03-12 | 2008-03-18 | Hewlett-Packard Development Company, L.P. | Automatic TFTP firmware download |
JP4635121B2 (ja) | 2002-07-03 | 2011-02-16 | 東京エレクトロン株式会社 | 動的センサ構築およびランタイム実行のための方法 |
US8074201B2 (en) | 2002-07-10 | 2011-12-06 | National Instruments Corporation | Deployment and execution of a program on an embedded device |
SE524627C2 (sv) | 2002-10-07 | 2004-09-07 | Abb Research Ltd | Trådlös regulator och förfarande för styrning av en anordning anordnad relativt en robot |
US7478141B2 (en) | 2003-06-26 | 2009-01-13 | Intel Corporation | Accessing firmware of a remote computer system using a remote firmware interface |
US7246319B2 (en) | 2003-08-22 | 2007-07-17 | Idx Systems Corporation | Information system supporting customizable user interfaces and process flows |
US8104043B2 (en) | 2003-11-24 | 2012-01-24 | Microsoft Corporation | System and method for dynamic cooperative distributed execution of computer tasks without a centralized controller |
US20060036755A1 (en) | 2004-05-07 | 2006-02-16 | Abdullah Ibrahim S | Meta-protocol |
US7810099B2 (en) | 2004-06-17 | 2010-10-05 | International Business Machines Corporation | Optimizing workflow execution against a heterogeneous grid computing topology |
US8181020B2 (en) * | 2005-02-02 | 2012-05-15 | Insyde Software Corp. | System and method for securely storing firmware |
US7530059B2 (en) | 2005-02-18 | 2009-05-05 | International Business Machines Corporation | Method for inlining native functions into compiled java code |
US9317259B2 (en) | 2005-05-12 | 2016-04-19 | International Business Machines Corporation | Apparatus, system, and method for automatically generating a reusable software component for interfacing with a web service |
US7558915B2 (en) * | 2005-06-06 | 2009-07-07 | Dell Products L.P. | System and method for updating the firmware of a device in a storage network |
US20070056024A1 (en) * | 2005-09-05 | 2007-03-08 | Ho-Hsiung Hsu | Method for remote server login |
US7481361B2 (en) | 2005-09-29 | 2009-01-27 | International Business Machines Corporation | Method and system for identifying unsafe synthetic transactions and modifying parameters for automated playback |
KR100687762B1 (ko) | 2006-03-07 | 2007-02-27 | 한국전자통신연구원 | 코드 해석 장치, 코드정보 제공 장치 및 이를 이용한 방법 |
JP4808558B2 (ja) | 2006-07-12 | 2011-11-02 | 日本電信電話株式会社 | 連携シナリオ作成支援システム及びその方法並びにプログラム |
US7886234B2 (en) | 2006-10-13 | 2011-02-08 | Mediatek Inc. | Systems and methods for creating embedded target images |
KR20080044576A (ko) | 2006-11-17 | 2008-05-21 | 오종택 | 애드혹 통신 네트워크를 이용한 전력분산 장치 및 시스템과그 방법 |
US10997531B2 (en) | 2007-09-11 | 2021-05-04 | Ciambella Ltd. | System, method and graphical user interface for workflow generation, deployment and/or execution |
US20090198770A1 (en) | 2008-02-04 | 2009-08-06 | Universal Scientific Industrial Co., Ltd. | System and method of updating codes in controller |
US9311115B2 (en) | 2008-05-13 | 2016-04-12 | Apple Inc. | Pushing a graphical user interface to a remote device with display rules provided by the remote device |
US8249950B2 (en) | 2008-07-11 | 2012-08-21 | Ebay Inc. | Payment mechanism integration wizard |
DE102009011679A1 (de) | 2009-02-23 | 2010-08-26 | Pilz Gmbh & Co. Kg | Verfahren und Vorrichtung zum Erstellen eines Anwenderprogrammes für eine Sicherheitssteuerung |
US8948067B2 (en) | 2009-04-23 | 2015-02-03 | Honeywell International Inc. | Wireless controller grids for process control and other systems and related apparatus and method |
US8214653B1 (en) * | 2009-09-04 | 2012-07-03 | Amazon Technologies, Inc. | Secured firmware updates |
JP2011150430A (ja) | 2010-01-19 | 2011-08-04 | Kyocera Mita Corp | Sdk配布パッケージ生成装置、sdk配布パッケージ生成方法、およびsdk配布パッケージ生成プログラム |
US8869138B2 (en) * | 2011-11-11 | 2014-10-21 | Wyse Technology L.L.C. | Robust firmware update with recovery logic |
US8775781B2 (en) * | 2010-03-25 | 2014-07-08 | Microsoft Corporation | Intelligent boot device selection and recovery |
CN102262557B (zh) | 2010-05-25 | 2015-01-21 | 运软网络科技(上海)有限公司 | 通过总线架构构建虚拟机监控器的方法及性能服务框架 |
US8655461B2 (en) | 2010-05-25 | 2014-02-18 | Siemens Product Lifecycle Management Software Inc. | Method, system, and non-transitory computer readable storage medium for generating code for a closed-loop controller |
US8479154B1 (en) | 2010-08-20 | 2013-07-02 | Google Inc. | Interaction with partially constructed mobile device applications |
CN102479079B (zh) | 2010-11-29 | 2015-04-01 | 中兴通讯股份有限公司 | 应用生成方法和装置 |
US20120198434A1 (en) * | 2011-01-31 | 2012-08-02 | Digi International Inc. | Virtual bundling of remote device firmware upgrade |
US20120233588A1 (en) | 2011-03-10 | 2012-09-13 | Infosys Technologies Ltd. | Blended service creation, test, and deployment environment for multiple service endpoints |
US9250883B2 (en) | 2011-06-02 | 2016-02-02 | Open Invention Network, Llc | System and method for pervasive software platform-based model driven architecture application generator |
US9448810B2 (en) * | 2011-10-21 | 2016-09-20 | Hewlett-Packard Development Company, L.P. | Web-based interface to access a function of a basic input/output system |
US20130201316A1 (en) | 2012-01-09 | 2013-08-08 | May Patents Ltd. | System and method for server based control |
WO2013110178A1 (en) | 2012-01-23 | 2013-08-01 | Scl Elements Inc. | Programmable peripheral unit |
US9319270B2 (en) | 2012-04-12 | 2016-04-19 | FrontRange Solutions, Inc. | Configuration of third party applications in a sandboxed environment |
US9015694B2 (en) * | 2012-10-31 | 2015-04-21 | Aruba Networks, Inc | Cloud-based firmware distribution service |
CA2915619C (en) | 2013-06-18 | 2021-11-23 | Ciambella Ltd. | Method and apparatus for customized software development kit (sdk) generation |
CA2912852C (en) | 2013-06-18 | 2023-09-26 | Ciambella Ltd. | Method and apparatus for code virtualization and remote process call generation |
US20150127192A1 (en) | 2013-11-06 | 2015-05-07 | Hitachi, Ltd | Wireless vehicle control system |
US9619122B2 (en) | 2014-01-10 | 2017-04-11 | Ciambella Ltd. | Method and apparatus for automatic device program generation |
JP6441061B2 (ja) | 2014-12-16 | 2018-12-19 | 株式会社ダイヘン | 機械制御システム及び機械制御システムのユーザインタフェース設定方法 |
US9547482B2 (en) | 2015-06-02 | 2017-01-17 | Sap Portals Israel Ltd. | Declarative design-time experience platform for code generation |
-
2014
- 2014-07-10 JP JP2016525493A patent/JP6464162B2/ja active Active
- 2014-07-10 WO PCT/US2014/046215 patent/WO2015006599A1/en active Application Filing
- 2014-07-10 US US14/328,415 patent/US9830136B2/en active Active
- 2014-07-10 CA CA2915695A patent/CA2915695C/en active Active
- 2014-07-10 KR KR1020167000659A patent/KR102073678B1/ko active IP Right Grant
- 2014-07-10 CN CN201480038517.8A patent/CN105765533B/zh active Active
- 2014-07-10 SG SG11201600194SA patent/SG11201600194SA/en unknown
- 2014-07-10 EP EP14823798.5A patent/EP3019956A4/en not_active Withdrawn
-
2016
- 2016-12-02 HK HK16113791A patent/HK1225471A1/zh unknown
-
2017
- 2017-11-27 US US15/823,508 patent/US10282185B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102177501A (zh) * | 2008-08-25 | 2011-09-07 | 宝威电源意大利股份公司 | 硬件虚拟化*** |
CN101373441A (zh) * | 2008-09-19 | 2009-02-25 | 苏州壹世通科技有限公司 | 一种基于固件的虚拟化平台*** |
US20100299187A1 (en) * | 2009-05-19 | 2010-11-25 | Smx Inet Global Services Sa | Providing a local device with computing services from a remote host |
CN102271153A (zh) * | 2010-06-03 | 2011-12-07 | 英特尔公司 | 用于虚拟化tpm访问的***、方法以及装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106301914A (zh) * | 2016-08-16 | 2017-01-04 | 上海斐讯数据通信技术有限公司 | 一种配置数据方法 |
CN106301914B (zh) * | 2016-08-16 | 2019-10-25 | 上海斐讯数据通信技术有限公司 | 一种配置数据方法 |
CN106897027A (zh) * | 2017-01-18 | 2017-06-27 | 成都电科致远网络科技有限公司 | 一种基于桌面虚拟化的分布式存储服务***及方法 |
CN106897027B (zh) * | 2017-01-18 | 2020-03-24 | 成都电科致远网络科技有限公司 | 一种基于桌面虚拟化的分布式存储服务***及方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3019956A1 (en) | 2016-05-18 |
US20180081658A1 (en) | 2018-03-22 |
KR20160061306A (ko) | 2016-05-31 |
CA2915695A1 (en) | 2015-01-15 |
HK1225471A1 (zh) | 2017-09-08 |
KR102073678B1 (ko) | 2020-02-06 |
SG11201600194SA (en) | 2016-02-26 |
CN105765533B (zh) | 2019-03-01 |
JP6464162B2 (ja) | 2019-02-06 |
EP3019956A4 (en) | 2017-03-15 |
US20150019692A1 (en) | 2015-01-15 |
JP2016529602A (ja) | 2016-09-23 |
WO2015006599A1 (en) | 2015-01-15 |
US10282185B2 (en) | 2019-05-07 |
US9830136B2 (en) | 2017-11-28 |
CA2915695C (en) | 2022-03-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105765533A (zh) | 用于固件虚拟化的方法和装置 | |
CN104516783B (zh) | 权限控制方法和装置 | |
KR102368200B1 (ko) | 장치 설계를 위한 코드 모듈 선택 | |
CN110569130B (zh) | 一种跨进程通信方法、装置及设备 | |
CN107749894A (zh) | 一种安全、简单、智能的物联网*** | |
CN111930521A (zh) | 用于部署应用的方法、装置、电子设备及可读存储介质 | |
CN105765527A (zh) | 用于定制的软件开发包(sdk)的方法和装置 | |
US20060161768A1 (en) | Method of managing software components that are integrated into an embedded system | |
CN105814539A (zh) | 用于代码虚拟化和远程进程调用生成的方法和装置 | |
CN104011698B (zh) | 基于从相应的主应用程序数据导出的标识符来访问补充数据 | |
KR20170015968A (ko) | 모바일 장치들의 원격 구성을 허용하기 위해 모바일 장치들 상에 설치되는 고속 어플리케이션 | |
WO2021258951A1 (zh) | 一种镜像文件生成方法、装置和计算机可读存储介质 | |
CN110098952A (zh) | 一种服务器的管理方法和装置 | |
CN110213290A (zh) | 数据获取方法、api网关以及存储介质 | |
CN106506163B (zh) | Rom包处理方法及装置 | |
CN110955449B (zh) | 客户端的灰度发布方法及装置 | |
CN114096946A (zh) | 用于管理应用的方法和装置 | |
JP6305758B2 (ja) | 管理システム、管理システムによる管理方法、管理装置、管理装置の制御方法及びプログラム | |
CN106528069A (zh) | Sdk集成方法和装置 | |
CN102148831A (zh) | 一种终端应用的安全控制方法及*** | |
KR20190098516A (ko) | 어플리케이션과 관련된 데이터를 관리하기 위한 방법 및 그 전자 장치 | |
US20130097207A1 (en) | Information processing device, information processing method and computer program | |
KR20160134419A (ko) | 복수의 가입자 식별 정보를 포함하는 스마트 카드를 이용한 가입자 식별 정보 변경 방법, 단말 및 컴퓨터 프로그램 | |
KR102525600B1 (ko) | 다양한 통신 프로토콜 적용에 따른 멀티 프로세싱이 가능한 디바이스 펌웨어 관리 방법 및 시스템 | |
WO2023218875A1 (ja) | システム構築装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 1225471 Country of ref document: HK |
|
GR01 | Patent grant | ||
GR01 | Patent grant |