CN102426576B - 提高在嵌入式系统上检索数据的速度的方法和嵌入式系统 - Google Patents
提高在嵌入式系统上检索数据的速度的方法和嵌入式系统 Download PDFInfo
- Publication number
- CN102426576B CN102426576B CN201110220137.4A CN201110220137A CN102426576B CN 102426576 B CN102426576 B CN 102426576B CN 201110220137 A CN201110220137 A CN 201110220137A CN 102426576 B CN102426576 B CN 102426576B
- Authority
- CN
- China
- Prior art keywords
- content element
- client
- memory module
- embedded system
- medium
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9574—Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching
Abstract
本发明涉及提高在嵌入式系统上检索数据的速度的方法和嵌入式系统。具体地,本发明涉及用于提高由客户端在嵌入式系统上检索数据的速度的计算机实现的方法、计算机软件产品以及嵌入式系统,该嵌入式系统包括存储组件。该方法包括:在嵌入式系统上执行客户端;在嵌入式系统上执行媒介物,其中分别执行客户端和媒介物,并且其中媒介物管理存储组件;从媒介物处的客户端接收针对文档的第一内容元素的请求;由媒介物确定第一内容元素是否存储在存储组件中;以及当第一内容元素存储在存储组件中时:从存储组件检索第一内容元素;以及从媒介物向客户端发送第一内容元素。
Description
技术领域
本申请涉及用于提高由客户端在嵌入式系统上检索数据的速度的计算机实现的方法、计算机程序产品和嵌入式系统。
发明内容
根据一个方面,提供了用于提高由客户端在嵌入式系统上检索数据的速度的计算机实现的方法。该嵌入式系统可以包括存储组件。该方法可以包括在嵌入式系统上执行客户端。该方法还可以包括在嵌入式系统上执行媒介物(intermediary),其中分别执行客户端和媒介物,并且其中媒介物管理存储组件。该方法还可以包括从媒介物处的客户端接收针对文档的第一内容元素的请求。此外,该方法可以包括由媒介物确定第一内容元素是否存储在存储组件中。当第一内容元素存储在存储组件中时,该方法还可以包括从存储组件检索第一内容元素,并且从媒介物向客户端发送该第一内容元素。
在某些情况下,当第一内容元素没有存储在存储组件中时,该方法还包括从服务器检索第一内容元素,并且由媒介物基于存储规则确定是否将第一内容元素存储在存储组件中。
此外,存储规则可以包括以下中的至少一个:期满、统一资源定位符的字符串以及内容类型。
另外,该嵌入式系统可以包括非易失性存储器。固件可以以二值映像存储在非易失性存储器中。
此外,存储组件可以与固件分开进行存储。
在某些实施方式中,在嵌入式系统上执行客户端还可以包括从非易失性存储器向易失性存储器复制固件。向易失性存储器复制固件可以包括将非易失性存储器的全部内容复制到易失性存储器中。
此外,客户端和媒介物可以作为单独的进程来执行。
此外,该文档可以包括第二内容元素。第一内容元素可能很少被修改。此外,第二内容元素可能频繁被修改。因此,该方法还可以包括将第一内容元素存储在存储组件中。另外,该方法还可以包括确定不在存储组件中存储第二内容元素。
在某些情况下,该嵌入式系统是机顶盒。另外,该服务器可以包括用于递送因特网协议电视的软件。该软件可以被称为IPTV中间件。
该客户端可以包括web浏览器。
此外,可以将媒介物实现为客户端的外部组件。更具体地,可以将媒介物实现为客户端的插件。
根据另一方面,提供了包括计算机可读指令的计算机程序产品。该计算机可读执行当被加载到嵌入式系统上并在其上执行时,使得该系统执行根据上述方法的操作。
根据又一方面,提供了嵌入式系统。该嵌入式系统可以包括客户端。该嵌入式系统还可以包括可操作用于存储数据的存储组件。该嵌入式系统还可以包括媒介物。该媒介物可以操作用于管理存储组件。该媒介物还可以操作用于从客户端接收针对文档的第一内容元素的请求。该媒介物还可以操作用于确定第一内容元素是否在存储组件中。当第一内容元素在存储组件中时,该媒介物还可以操作用于从存储组件检索第一内容元素,并且向客户端发送第一内容元素。客户端和媒介物可以操作用于单独执行。
技术性定义
“嵌入式系统”可以被理解为设计用于执行一个或若干专用功能的计算机系统或设备。嵌入式系统可以与通用计算机系统(例如台式PC)形成对比。
“机顶盒”(STB)也被称为数据盒、机顶单元或集成接收器/解码器(IRD),这是嵌入式系统的示例。STB可以操作用于连接至显示设备(例如电视或者计算机)以及外部信号源(例如内容服务器)。STB可以操作用于将从外部信号源接收的信号转换成继而在显示设备上显示的内容。
“集成电路”(也被称为微电路、微芯片或者芯片)可以指代已经在半导体材料的薄衬底的表面中制造的小型电子电路。
“数字信号处理器”(DSP)可以被理解为被优化用于特定操作(可能包括信号处理(转换))的专用微处理器。与通用微处理器相比,DSP可以具有减少的硬件复杂性、减少的功能性、更低的成本、更好的性能以及减少的功耗。
“片上系统”(SoC)可以指代在单个集成电路上对计算机系统的存储组件的集成。可能需要额外的存储器和/或外围设备,以供SoC实现完整的功能性。SoC可以包括DSP。
“数字媒体处理器”(DMP),也被称为媒体处理器,可以被理解为被设计用于实时(或者接近实时)处理数据流(例如,诸如视频或者音频之类的媒体)的SoC。DMP可以包括以下中的一个或多个:DSP、存储器接口、媒体接口和音频/视频加速器。DMP可以能够对各种类型的媒体(例如图像)和媒体流进行解码、转码(从一种格式转换成另一种格式)、编码以及码率转换(transrate,从较高比特率缩放到较低比特率)。
“字符串”可以被理解为字符的有限序列,其中每个字符是诸如符号之类的信息单元。“文本”可以包括一个或多个字符串。
“高速缓存”可以指代存储数据从而使得针对该数据的未来请求可以被更快服务的存储组件。
“移动代码”可以指代在系统之间传送的软件,该软件可能在本地系统上执行而无需针对安装显式触发,或者由接收者执行。移动代码的示例包括JavaScript、VBScript、Java小应用程序以及ActiveX控件。
“因特网协议电视”(IPTV)可以被理解为一种系统,通过该系统数字电视服务使用分组交换网络基础设施上的因特网协议(IP)套件的架构和网络方法来进行递送。IPTV可以使用STB来进行递送。
“代理”可以指代充当针对来自寻求资源(例如文件或网页)的客户端的请求的媒介物的软件。
“静态”内容元素(也被称为静态内容)可以指代很少被修改的内容元素。例如,静态内容元素可以被少于每月一次地、少于每两个月一次地、少于每年一次地乃至更不频繁地被修改。
“动态”内容元素(也被称为动态内容)可以指代被频繁修改的内容元素。例如,动态内容元素可以被多于每月一次地、多于每月两次地、多于每周一次地乃至更频繁地被修改。一般而言,动态内容元素比静态内容元素被更频繁地修改。可以使用服务器逻辑生成动态内容元素。可以用于生成动态内容元素的服务器逻辑的示例是公共网关接口(CGI)、PHP:超文本预处理器(PHP)、Java服务器页面(JSP)以及活动服务器页面(ASP)。
“进程”可以被理解为执行程序的实例。进程可以包括程序计数器(包含将被提取的下一指令的存储器地址)的当前值、寄存器值以及变量。进程可以管理一组资源并且具有其自己的地址空间,以及信号句柄和记账信息。
“线程”也被称为控制线程、执行线程、迷你(mini)进程或者轻量进程。多个线程可以存在于一个进程内。线程可以与其他线程共享地址空间以及进程的其他资源。每个线程通常具有其自己的程序计数器、寄存器值、堆栈(包括输入参数、本地变量和临时变量)以及状态。
“纤程(fiber)”可以通过分配用于存储与该纤程相关联的数据和寄存器值的数据结构和堆栈而创建。纤程可以被理解为与线程类似。在线程之间切换可能要求进入和退出操作系统(OS)内核。然而,纤程可以被协同调度,并且操作系统内核不了解纤程。
“插件”可以被理解为用于实现特定功能或用于提高现存功能的性能的模块或者应用。这可以通过用诸如C之类的低级程序设计语言(即,相对接近机器级)来实现插件而完成。
可以通过参照Andrew S.Tanenbaum的Operating Systems第3版,2009来进一步理解进程、线程和纤程。
附图说明
图1示出了嵌入式系统的框图。
图2示出了嵌入式系统和服务器的示图。
图3示出了用户接口的框图。
图4示出了用于提高由客户端在嵌入式系统上检索数据的速度的示例性方法的流程图。
具体实施方式
在下文,将参照附图给出对示例的详细描述。应当理解,可以对示例进行各种修改。具体地,一个示例的元件可以被组合并且在其他示例中使用以形成新的示例。
在本说明书中描述的主题可以被实现为方法或在设备上实现,可能采取一个或多个计算机程序产品的形式。在本说明书中描述的主题可以在数据信号中或者在机器可读的介质上实现,其中该介质体现在一个或多个信息载体中,诸如半导体存储器或者硬盘。此类计算机程序产品可以使数据处理装置执行在说明书中描述的一个或多个操作。
此外,在本说明书中描述的主题还可以被实现为系统,该系统包括处理器以及耦合到处理器的存储器。该存储器可以对一个或多个程序编码,以使得该处理器执行在说明书中描述的一个或多个方法。在本说明书中描述的其他主题可以使用各种机器实现。
在以下示例性附图和描述中阐明了一个或多个实现的细节。通过描述、附图以及通过权利要求书,其他特征将会变得易于理解。
图1示出了包括芯片集102的嵌入式系统100的框图。在具体示例中,芯片集102可以是SoC,诸如包括音频/视频硬件加速器的32位MIPS 4KeC。在另一示例中,芯片集102可以是DMP,诸如包括高级RISC架构机(ARM)ARM926EJ-S CPU(RISC指代精简指令集计算机)的德克萨斯仪器TMS320DM6446。芯片集102可以是微处理器或者微控制器。还有可能是其他实现。
嵌入式系统100的某些实施方式包括第一非易失性存储器,诸如闪存104。备选地,嵌入式系统100可以包括另一种形式的非易失性存储器。嵌入式系统100的第一非易失性存储器可以是电子可寻址的。在某些情况下,嵌入式系统100的第一非易失性存储器可以是另一种形式的固态存储器,诸如硅-氧化物-氮化物-氧化物-硅(SONOS)存储器或者非易失性随机存取存储器。还有可能是其他类型的非易失性存储器。
闪存104可以固定到嵌入式系统100。具体地,闪存104可以被构建到芯片中,并且该芯片可以被有线连接到嵌入式系统100。闪存104的内容可以被称为固件。
在某些情况下,由闪存104存储的固件可以包括用于嵌入式系统100的操作系统,例如具有内核版本2.6的Linux。固件还可以包括客户端(例如,如图2中所描绘的)以及即使在客户端未连接到服务器(例如,如图2中所描绘的)时也可以用来构建用户接口(参见图3)的基本用户接口组件。
根据一个示例,嵌入式系统100可以包括第二非易失性存储器(未示出)。第二非易失性存储器可以被实现为硬盘驱动器,例如通用串行总线(USB)硬盘驱动器。
嵌入式系统100可以包括最低限度的硬件,例如为了执行基本联网任务而需要的硬件而没有其他硬件,以便降低成本。因此,嵌入式系统100上的程序,例如图2中描绘的客户端和代理,可以出于性能原因而采用诸如C之类的低级程序设计语言来实现。在该上下文中,“低级”可以被理解为指代需要更多基础硬件知识,并且(通常)比更高级的程序设计语言(例如Java)需要更多的编码时间的程序设计语言。此外,可能难于从在嵌入式系统100上的特定程序中的错误中恢复。例如,由于RAM 106的有限容量,内存泄漏可能对嵌入式系统100具有特别严重的影响。因此,对在嵌入式系统100上部署的程序进行充分调试和测试可能是必要的。因此,可能难于针对嵌入式系统100开发可以相对容易地在通用计算机上开发的程序。
嵌入式系统100可以被实现为STB或者实现为移动设备。例如,可以在具有Linux OS或者Android OS的移动计算机或者智能手机上实现嵌入式系统100。具体而言,嵌入式系统100可以被实现为NokiaN900、OpenMoko Neo Free Runner、HTC Hero或者Motorola Droid。还有可能是其他实现。
此外,闪存104的内容(例如操作系统和应用)可以按照单片方式(即,作为单个封闭块)存储在嵌入式系统100上。例如,闪存104的内容可以被存储为二值映像或者存储为压缩的二值映像。换言之,闪存104可以包含二值固件映像或者压缩的二值固件映像。这可以减小在嵌入式系统100上需要的闪存量,并且因而减小生产嵌入式系统100的成本。
此外,在嵌入式系统100上使用二值映像可以有利于嵌入式系统100的制造者或者维护者。例如,使用二值映像可以使用户更简单地更新嵌入式系统100。
二值固件映像可以包含代表存储介质(例如闪存104)的完整的内容和结构。二值映像可以被存储在单个文件中。根据传统技术,固件的内容可以包括静态内容元素。固件中静态内容元素的存储可以简单和容易地实现。此外,该技术可以允许对静态内容元素进行更新和操作而不需要请求软件组件(例如图2中描绘的代理)来管理静态内容元素。
静态内容元素的示例包括嵌入式系统100的本地GUI的元素。换言之,静态内容元素可能不与特定应用相关联。
然而,将静态内容元素存储在闪存104中作为二值固件映像的一部分可能具有以下效果:更新静态内容元素的唯一方式是执行完整的固件升级。
可能难于或者不期望执行完整的固件升级以便替换存储在嵌入式系统100的固件中的内容元素,例如静态内容元素。完整的固件升级可能导致使用更多的带宽、潜在的错误可能具有更严重的后果,并且完整的固件升级可能干扰嵌入式系统100的操作。例如,下载完整的固件以便更新一个或多个静态内容元素可能要求比仅仅下载待更新的静态内容元素更多的带宽。此外,完整的固件更新可能会失败,从而导致嵌入式系统100变得不可用。另外,完整的固件更新经常引起嵌入式系统100的操作的中断,这是由于通常需要对嵌入式系统100进行重新引导。
嵌入式系统100还可以包括易失性存储器,诸如随机存取存储器(RAM)106。此外,嵌入式系统100可以包括地面数字视频广播(DVB-T)接口108。
另外,嵌入式系统100可以包括接口,诸如USB端口110。USB端口110可以操作用于将USB设备连接到嵌入式系统100。
嵌入式系统100还可以包括可连接到外部网络(诸如以太网端口112)的访问装置。嵌入式系统100还可以支持无线访问,例如通过无线保真(WiFi)装置。外部网络可以提供对外部信号源的访问。
此外,嵌入式系统100可以包括重置按钮114,其可以被用于将嵌入式系统100返回到标准或者默认配置。嵌入式系统100还可以包括电源连接器116,其可以用于将嵌入式系统100连接到电源。
图2示出了与某些实施方式一致的嵌入式系统100的第二框图。第二框图还示出了服务器202。
服务器202可以能够向客户端204发送信号,诸如IPTV信号。服务器202可以包括IPTV中间件,即,与递送IPTV服务相关联的软件包。
可以在嵌入式系统100上执行客户端204。客户端204可以被实现为web浏览器(例如,Microsoft Internet Explorer、Mozilla Firefox、Opera、Fresco)、定制图形用户接口或者某些其他形式的用户接口。客户端204可以存储在闪存104的固件中。客户端204可以能够显示文档,例如网页。文档可以由内容元素组成。内容元素的示例是各种格式(例如,联合图像专家组(JPG)、图形交换格式(GIF)、便携式网络图形(PNG))的图像,以及标记语言文本,例如,超文本标记语言(HTML)、可扩展标记语言(XML)。内容元素还可以包括表现语义,诸如层叠样式表(CSS),以及移动代码,例如JavaScript。
客户端204可以操作用于根据表现语义显示图像和标记语言文本。客户端204还可以能够执行移动代码。
此外,客户端204可以被配置用于运行各种应用。例如,客户端204可以被配置用于执行视频点播目录,其使用户能够浏览视频的种类、选择用于观看的视频以及检索关于视频的信息。客户端204还可以执行电子节目指南。电子节目指南使用户能够浏览电视频道、查看每个频道的节目表以及检索关于TV节目的信息(例如,开始时间、结束时间、描述)。
在某些情况下,为了使成本最小化而用有限的资源来制造嵌入式系统100。例如,嵌入式系统100可以包括300MHz CPU、128MBRAM以及32MB闪存。此外,使用现代软件以在嵌入式系统上提供用户接口可能不是切实可行。因此,可以使用4至10年前的并且不包括某些功能的web浏览器实现嵌入式系统的客户端204。例如,嵌入式系统的客户端204可能不支持Java小应用程序或者ActiveX控件。
此外,可以在嵌入式系统100上执行媒介物。媒介物可以被实现为代理206。代理206可以与客户端204分开执行。将代理206实现为外部组件可能具有的优点在于并不必须将代理206集成到客户端204。
在某些实施方式中,代理206可以被实现为客户端204的外部组件。例如,客户端204可以被实现为浏览器,而代理206可以被实现为浏览器插件。在这种情况下,代理206在客户端204的存储器空间内操作。因此,代理206可以使用函数调用而不是HTTP来与客户端204通信。使用函数调用的通信可以具有改进性能的效果。
备选地,客户端204和代理206作为单独的进程来执行。在该上下文中,进程可以被理解为执行程序的实例。例如,客户端204是第一执行程序,而代理206是第二执行程序。客户端204和代理206还可以被执行为迷你进程,例如线程或者纤程。
因此,同客户端204分开执行媒介物可以通过将代理206实现为客户端204的外部组件来实现,或者通过将代理206实现为单独的进程来实现。还有可能是其他实现。
代理206可以包括管理组件。管理组件可以能够管理存储组件。在某些情况下,管理组件被实现为高速缓存管理器208。存储组件可以被实现为高速缓存209。由于嵌入式系统100的有限资源,高速缓存209的大小可能是受限的。客户端204可以与代理206交互,以便访问高速缓存209中的数据。虽然高速缓存209被描绘为与代理206分离,但是可以包括高速缓存209作为代理206的一部分。
代理206还可以包括接口,诸如超文本传输协议(HTTP)接口210。客户端204可以使用HTTP接口210与代理206通信。向嵌入式系统100添加代理206可以具有增强嵌入式系统100的性能的效果。例如,嵌入式系统100和服务器202之间的带宽需求可以被减小。
代理206可以使用信令机制以便管理和生成事件。事件可以由其他应用使用。例如,代理206可以在达到预置最大高速缓存大小时(即,当已经达到文件系统使用限度时)生成事件。代理206还可以在CPU利用达到预置阈值时(例如,由于执行操作)生成事件。
嵌入式系统100还可以包括HTTP内核应用程序设计接口(API)212。客户端204和代理206可以使用HTTP内核API 212与服务器202通信。例如,客户端204可以与服务器202通信以便选择IPTV节目进行观看。
在某些情况下,客户端204可以与代理206通信,而代理206使用HTTP内核API 212与服务器通信。在其他情况下,客户端204可以与HTTP内核API 212交互以便直接与服务器通信。
图3示出了与本发明的某些实施方式一致的用户接口300的框图。
客户端204可以能够显示用户接口300。用户接口300可以包括静态图像302,例如按照JPG格式的背景图像。另外,用户接口300可以包括按照表现语义形式的静态布局304。具体地,静态布局304可以确定用户接口300中的静态和动态内容元素的风格和位置。
此外,用户接口300可以包括移动代码306。例如,移动代码306可以体现在从服务器202下载到客户端204的文档中,并且可以由客户端204执行。
静态图像302、静态布局304以及移动代码306可以被理解为很少被修改的静态内容元素。根据传统技术,静态内容元素可以与客户端204一起存储在固件中。在固件中存储静态内容元素可以简单并容易地实现。此外,根据传统技术,并不要求在嵌入式系统100上执行代理206。由于嵌入式系统100可能要求程序特别稳定和高效(特别是在与通用计算机上的程序比较中),因此为嵌入式系统100编写程序(例如代理206)可能特别困难和费时。因此,用于嵌入式系统100的程序可能要求充分测试和调试,以及使用诸如C或者汇编语言之类的低级程序设计语言。
然而,根据本发明的某些实施方式,高速缓存209可以同固件分开存储(即,不在闪存104中)。例如,高速缓存209可以存储在与闪存104分离的第二非易失性存储器中。由于高速缓存209的内容在将电源连接器116从电源断开后仍将可用,因此在非易失性存储器中存储高速缓存209将是有利的。
内容元素(例如静态内容元素)可以存储在高速缓存209中。在高速缓存209中存储内容元素(即,与固件分离)产生以下技术效果:可以对内容元素进行更新而不需要执行完整的固件升级。
传统的嵌入式系统与传统的服务器交互以便下载内容元素(例如静态内容元素),并且在易失性存储器中存储所下载的内容元素。然而,这可能在特定情况下(例如,当多个嵌入式系统同时启动并且试图下载内容元素时)引起传统服务器的故障。例如,此类故障(也被称为连锁反应故障)可能发生在多个嵌入式系统升级的情况中,或者影响多个嵌入式系统的停电情况中。
在高速缓存209中存储内容元素(其中高速缓存209存储在嵌入式系统100的非易失性存储器(例如第二非易失性存储器)中)产生以下技术效果:可以避免某些或所有由于多个嵌入式系统同时启动而造成的故障(即,连锁反应故障)。例如,如果存在引起嵌入式系统100重新启动的停电,则客户端204可以能够凭借代理206检索用户接口300的大部分。类似地,根据本申请配置的其他嵌入式系统可以能够从相应的代理检索静态内容元素。由于从代理检索静态内容元素而产生的、对服务器202的HTTP请求的减少可以预防服务器202发生故障。
另外,使用代理206可以减少要求服务器202传输的数据,从而减小服务器202上的负荷。此外,使用代理206可以产生针对嵌入式系统100的减少的引导时间以及用户接口300的更快的显示。
动态图像308也可以是用户接口300的一部分。此外,用户接口300可以包括动态文本310。动态图像308和动态文本310可以被理解为动态内容元素。视频点播目录应用上下文中的动态图像的示例是电影片名和电影海报,其中电影海报是可以示出电影场景的该电影的可视广告。同样在视频点播目录应用上下文中,动态文本的示例是电影的描述和电影的演员表。
确定特定内容元素是动态内容元素还是静态内容元素可以基于对在一时间间隔上特定内容元素被修改的频繁程度的分析。如果特定内容元素被确定为静态内容元素,则可以创建存储规则(例如过滤器)。存储规则可以基于特定内容元素的类型和/或HTTP请求的URL。内容类型可以指代嵌入式系统100上的用户接口的构成。示例性内容类型包括JPEG图像(图像/jpeg)、gif图像(图像/gif)、html页面(文本/html)、层叠样式表(文本/css)以及javascript代码(应用/javascript)。
存储规则还可以包括期满,即,关于特定内容元素将被存储多长时间的指示。存储规则可以由高速缓存管理器208维护和实现。
图4示出了用于提高由客户端204在嵌入式系统100上检索数据的速度的示例性方法的流程图。
根据所描绘的方法,在步骤S402,在嵌入式系统100上执行客户端204和代理206。例如,可以自动执行客户端204和代理206。此外,可以分别执行客户端204和代理206,例如,作为单独的进程。
虽然步骤S404至步骤S422涉及HTTP请求,但还有可能使用其他协议,例如文件传输协议或者实时流协议。为了使用其他协议,对所描述的方法的轻微改变可能是必要的。
在步骤S404,客户端204可以请求文档的第一内容元素(也被称为页面的组件)。例如,可以响应于用户输入来请求文档并且可以从文档的第一内容元素开始处理请求。第一内容元素可以是文档中多个内容元素中的一个元素。备选地,第一内容元素可以是文档中的唯一内容元素。根据本发明的某些实施方式,文档包含多个内容元素并且客户端204针对每个内容元素执行HTTP请求。HTTP请求可以串行发生或者并行发生。
此外,在步骤S406,客户端204向代理206发送针对文档的第一内容元素的请求。例如,客户端204向HTTP接口210发送在步骤S404中描述的每个HTTP请求。代理206可以分析(例如解析)每个HTTP请求。
在步骤S408,代理206可以确定在步骤S406中发送的HTTP请求中所标识的内容元素是否存储在高速缓存209中。例如,HTTP请求可以标识第一内容元素。在某些情况下,当收到内容元素时将其存储在高速缓存209中。
步骤S410和步骤S414是可以取决于步骤S408的结果而采用的两个备选。当第一内容元素存储在高速缓存209中时,可以执行步骤S410。当第一内容元素没有存储在高速缓存209中时,则可以执行步骤S414。当执行步骤S414时,还可以执行步骤S416、步骤S418以及可选择地步骤S420。
因此,当第一内容元素存储在高速缓存209中时,代理206可以在步骤S410从高速缓存209检索第一内容元素。随后,代理206可以在步骤S412向客户端204发送第一内容元素。
备选地,当第一内容元素没有存储在高速缓存209中时,代理206可以在步骤S414向服务器202请求第一内容元素。例如,代理206可以向服务器202提出HTTP请求。服务器202可以在步骤S416响应代理206。在步骤S418,进行关于第一内容元素是否与至少一个存储规则相匹配的确定。换言之,步骤S418涉及确定是否基于存储规则存储第一内容元素。高速缓存规则是存储规则的示例。
取决于步骤S418的结果,可以在步骤S418之后执行步骤S420或者步骤S412。例如,当第一内容元素与存储规则匹配时,可以在步骤S420将第一内容元素存储在高速缓存209中。当第一内容与存储规则未匹配时,在步骤S418之后可以执行步骤S412。
根据具体示例,在步骤S406提出的示例性HTTP请求可以包括以下统一资源定位符(URL):“http://iptv-provider/GUI/images/background.png”。
例如,存储规则A如下:
根据存储规则A,如果HTTP请求包括具有字符串“/GUI/images”的URL(诸如以上示例性HTTP请求的URL),则代理206可以进行以下操作:
-将URL包括到对服务器202的请求中;
-从服务器202接收响应;以及
-在高速缓存209中存储服务器的响应的内容元素。
另外,根据存储规则A,内容元素(例如由URL指代的background.png图像)可以在高速缓存209中存储43,200分钟(30天)。换言之,内容元素具有43,200分钟的期满时间。如果客户端204在将来请求相同的URL,则代理206从高速缓存209检索background.png图像。
在进一步的示例中,存储规则B如下:
类似于存储规则A,根据存储规则B,如果HTTP请求包括指定“image/jpeg”的内容类型字段,则代理206可以进行以下操作:
-将HTTP请求的URL包括到对服务器202的请求中;
-从服务器202接收响应;以及
-在高速缓存209中存储服务器的响应的内容元素。
在另一示例中,存储规则C如下:
存储规则C包括“或”(OR)表达式,从而使得如果内容元素是JPEG图像或者GIF图像则规则匹配。
在使用“或”表达式限定的规则中,如果“或”规则内的至少一个子规则匹配则整个规则匹配。此外,如果使用“与”(AND)表达式限定规则,那么如果“与”表达式内的所有子规则匹配则整个规则匹配。在某些情况下(例如存储规则C),使用<rule></rule>标记限定每个子规则。还有可能是其他逻辑表达式(例如异或(XOR))。
因此,在某些情况下,当存储规则的一个或多个过滤器表达式与HTTP请求匹配时,根据期满时间存储HTTP请求的一个或多个内容元素。
取决于与内容元素相关联的期满政策,针对不同内容元素可以实现不同的存储规则。在某些情况下,针对静态内容元素而不针对动态内容元素实现存储规则。换言之,存储规则可以适用于很少被修改的内容元素,而存储规则可能不适用于频繁被修改的内容元素。例如,在上述示例性HTTP请求的URL中指代的background.png图像可以是很少被修改的内容元素。文档也可以包含频繁被修改的第二内容元素。可能不存在对应于第二内容元素的存储规则。因此,在步骤S418,做出不在高速缓存209中存储第二内容元素的确定。
有利地,由于不需要从服务器202下载存储在高速缓存209中的内容元素,因此在高速缓存209中存储内容元素可以显著地改进客户端204的性能。
在步骤S422,可以由客户端204收集对在步骤S404中指代的HTTP请求的响应。可以将响应进行汇编并且呈现为连贯的用户接口文档,即用户接口300。
实现图4的方法可以使用户接口300的所有静态内容被存储在高速缓存209中。备选地,由于高速缓存209存储容量的限制,可能在高速缓存209中存储静态内容的一部分。
凭借高速缓存209中的代理206,可以加速嵌入式系统100上的内容元素的处理。与服务器202相比,可以更快地从高速缓存209检索内容元素,例如静态内容元素。此外,由于同客户端204分开执行代理206,因此不存在将客户端204与代理206集成的需要。另外,通过区分静态内容元素(即,很少被修改的内容元素)和动态内容元素(即,频繁被修改的内容元素),可以按照有利的方式使用高速缓存209的有限容量。此外,通过将高速缓存209从嵌入式系统100的固件分离,可以更新存储在高速缓存209中的内容元素而不需要升级固件。
Claims (22)
1.一种用于提高由客户端(204)在嵌入式系统(100)上检索数据的速度的计算机实现的方法,所述嵌入式系统(100)包括存储组件(209),所述方法包括:
在所述嵌入式系统(100)上执行所述客户端(204);
在所述嵌入式系统(100)上执行(S402)媒介物(206),其中分别执行所述客户端(204)和媒介物(206),并且其中所述媒介物(206)管理所述存储组件(209);
从所述媒介物(206)处的所述客户端(204)接收(S406)针对文档(300)的第一内容元素(302、304、306)的第一请求;
由所述媒介物(206)确定(S408)所述第一内容元素(302、304、306)是否存储在所述存储组件(209)中;
响应于确定所述第一内容元素(302、304、306)存储在所述存储组件(209)中,
从所述存储组件(209)检索(S410)所述第一内容元素(302、304、306);以及
从所述媒介物(206)向所述客户端(204)发送(S412)所述第一内容元素(302、304、306);以及
响应于确定所述第一内容元素没有存储在所述存储组件中,
从服务器检索所述第一内容元素(302、304、306);
确定所述第一内容元素是否匹配存储规则,所述存储规则包括指示所述第一内容元素将被存储在所述存储组件中多长时间的期满规则,
如果所述第一内容元素匹配所述存储规则,则基于所述存储规则在所述存储组件(209)中存储所述第一内容元素(302、304、306)并且向所述客户端发送所述第一内容元素,以及
如果所述第一内容元素不匹配所述存储规则,则向所述客户端发送所述第一内容元素。
2.根据权利要求1所述的方法,其中所述存储规则包括以下中的至少一个:
期满,指示所述第一内容元素将被存储在所述存储组件中多长时间;
统一资源定位符的字符串,指示由所述统一资源定位符的所述字符串指代的所述第一内容元素将被存储在所述存储组件中;以及
内容类型,指示由所述内容类型指定的所述第一内容元素将被存储在所述存储组件中。
3.根据权利要求1所述的方法,其中所述嵌入式系统(100)包括非易失性存储器(104),并且其中固件作为二值映像存储在所述非易失性存储器(104)中。
4.根据权利要求3所述的方法,其中同所述固件分开存储所述存储组件(209)。
5.根据权利要求3所述的方法,其中在嵌入式系统(100)上执行所述客户端(204)还包括从所述非易失性存储器(104)向易失性存储器(106)复制所述固件,并且其中向所述易失性存储器(106)复制所述固件包括将所述非易失性存储器(104)的全部内容复制到所述易失性存储器(106)中。
6.根据权利要求1所述的方法,其中将所述客户端(204)和所述媒介物(206)作为单独的进程来执行。
7.根据权利要求1所述的方法,其中将所述媒介物(206)实现为所述客户端(204)的外部组件。
8.根据权利要求1所述的方法,其中所述第一内容元素(302、304、306)很少被修改,所述方法还包括:
由所述媒介物(206)基于所述存储规则确定在所述存储组件中存储所述第一内容元素(302、304、306);以及
在所述存储组件(209)中存储所述第一内容元素(302、304、306)。
9.根据权利要求1所述的方法,其中所述文档(300)包括第二内容元素(308、310),其中所述第二内容元素(308、310)频繁被修改,所述方法还包括:
从所述媒介物(206)处的客户端(204)接收针对所述文档的第二内容元素(308、310)的第二请求;
检索所述第二内容元素(308、310);以及
由所述媒介物(206)确定没有在所述存储组件(209)中存储所述第二内容元素(308、310)。
10.根据权利要求1所述的方法,其中所述嵌入式系统(100)是机顶盒,并且其中所述服务器(202)包括用于递送因特网协议电视的软件。
11.根据权利要求1所述的方法,其中所述客户端(204)包括web浏览器。
12.一种用于提高由客户端(204)在嵌入式系统(100)上检索数据的速度的计算机实现的设备,所述嵌入式系统(100)包括存储组件(209),所述设备包括:
用于在所述嵌入式系统(100)上执行所述客户端(204)的装置;
用于在所述嵌入式系统(100)上执行(S402)媒介物(206)的装置,其中分别执行所述客户端(204)和媒介物(206),并且其中所述媒介物(206)管理所述存储组件(209);
用于从所述媒介物(206)处的所述客户端(204)接收(S406)针对文档(300)的第一内容元素(302、304、306)的第一请求的装置;
用于由所述媒介物(206)确定(S408)所述第一内容元素(302、304、306)是否存储在所述存储组件(209)中的装置;
响应于确定所述第一内容元素(302、304、306)存储在所述存储组件(209)中,
用于从所述存储组件(209)检索(S410)所述第一内容元素(302、304、306)的装置;以及
用于从所述媒介物(206)向所述客户端(204)发送(S412)所述第一内容元素(302、304、306)的装置;以及
响应于确定所述第一内容元素没有存储在所述存储组件中,
用于从服务器检索所述第一内容元素(302、304、306)的装置;以及
用于确定所述第一内容元素是否匹配存储规则的装置,所述存储规则包括指示所述第一内容元素将被存储在所述存储组件中多长时间的期满规则,
如果所述第一内容元素匹配所述存储规则,则基于所述存储规则在所述存储组件(209)中存储所述第一内容元素(302、304、306)并且向所述客户端发送所述第一内容元素,以及
如果所述第一内容元素不匹配所述存储规则,则向所述客户端发送所述第一内容元素。
13.根据权利要求12所述的设备,其中所述存储规则包括以下中的至少一个:
期满,指示所述第一内容元素将被存储在所述存储组件中多长时间;
统一资源定位符的字符串,指示由所述统一资源定位符的所述字符串指代的所述第一内容元素将被存储在所述存储组件中;以及
内容类型,指示由所述内容类型指定的所述第一内容元素将被存储在所述存储组件中。
14.根据权利要求12所述的设备,其中所述嵌入式系统(100)包括非易失性存储器(104),并且其中固件作为二值映像存储在所述非易失性存储器(104)中。
15.根据权利要求14所述的设备,其中同所述固件分开存储所述存储组件(209)。
16.根据权利要求14所述的设备,其中用于在嵌入式系统(100)上执行所述客户端(204)的装置还包括用于从所述非易失性存储器(104)向易失性存储器(106)复制所述固件的装置,并且其中用于向所述易失性存储器(106)复制所述固件的装置包括用于将所述非易失性存储器(104)的全部内容复制到所述易失性存储器(106)中的装置。
17.根据权利要求12所述的设备,其中将所述客户端(204)和所述媒介物(206)作为单独的进程来执行。
18.根据权利要求12所述的设备,其中将所述媒介物(206)实现为所述客户端(204)的外部组件。
19.根据权利要求12所述的设备,其中所述第一内容元素(302、304、306)很少被修改,所述设备还包括:
用于由所述媒介物(206)基于所述存储规则确定在所述存储组件中存储所述第一内容元素(302、304、306)的装置;以及
用于在所述存储组件(209)中存储所述第一内容元素(302、304、306)的装置。
20.根据权利要求12所述的设备,其中所述文档(300)包括第二内容元素(308、310),其中所述第二内容元素(308、310)频繁被修改,所述设备还包括:
用于从所述媒介物(206)处的客户端(204)接收针对所述文档的第二内容元素(308、310)的第二请求的装置;
用于检索所述第二内容元素(308、310)的装置;以及
用于由所述媒介物(206)确定没有在所述存储组件(209)中存储所述第二内容元素(308、310)的装置。
21.根据权利要求12所述的设备,其中所述嵌入式系统(100)是机顶盒,并且其中所述服务器(202)包括用于递送因特网协议电视的软件。
22.根据权利要求12所述的设备,其中所述客户端(204)包括web浏览器。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP10425263A EP2413255A1 (en) | 2010-07-29 | 2010-07-29 | A computer-implemented method, a computer program product and an embedded system for increasing the speed of data retrieval by a client on the embedded system |
EP10425263.0 | 2010-07-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102426576A CN102426576A (zh) | 2012-04-25 |
CN102426576B true CN102426576B (zh) | 2015-06-03 |
Family
ID=44022988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110220137.4A Active CN102426576B (zh) | 2010-07-29 | 2011-07-28 | 提高在嵌入式系统上检索数据的速度的方法和嵌入式系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US8667080B2 (zh) |
EP (1) | EP2413255A1 (zh) |
CN (1) | CN102426576B (zh) |
CA (1) | CA2745981C (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8892631B2 (en) | 2009-04-09 | 2014-11-18 | International Business Machines Corporation | System and method of optimizing digital media processing in a carrier grade web portal environment |
US9338567B2 (en) * | 2012-06-14 | 2016-05-10 | Cochlear Limited | Auditory signal processing |
US10984175B2 (en) | 2013-08-09 | 2021-04-20 | Yottaa Inc. | Systems and methods for dynamically modifying a requested web page from a server for presentation at a client |
KR20150039425A (ko) * | 2013-10-02 | 2015-04-10 | 삼성전자주식회사 | 비디오/이미지 데이터 처리 방법 및 비디오/이미지 데이터 처리 시스템 |
PT3247084T (pt) | 2016-05-17 | 2019-06-06 | Nolve Dev S L | Servidor e metodo para fornecer acesso seguro a serviços com base na web |
CN110895477B (zh) * | 2018-09-13 | 2023-06-02 | 杭州海康威视数字技术股份有限公司 | 一种设备启动方法、装置及设备 |
US11606432B1 (en) * | 2022-02-15 | 2023-03-14 | Accenture Global Solutions Limited | Cloud distributed hybrid data storage and normalization |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1294712A (zh) * | 1997-03-25 | 2001-05-09 | 英特尔公司 | 计算机间传输的数据的动态代码转换系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1012733B1 (en) * | 1997-03-25 | 2006-05-24 | Intel Corporation | System, method and program for dynamically transcoding data transmitted between computers |
US6681298B1 (en) * | 2000-07-12 | 2004-01-20 | Powertv, Inc. | Hypertext markup language cache system and method |
US6895463B2 (en) * | 2001-10-30 | 2005-05-17 | Pioneer Digital Technologies, Inc. | Method and apparatus for efficiently running an execution image using volatile and non-volatile memory |
EP1899814B1 (en) * | 2005-06-30 | 2017-05-03 | Sling Media, Inc. | Firmware update for consumer electronic device |
US8170189B2 (en) * | 2005-11-02 | 2012-05-01 | Qwest Communications International Inc. | Cross-platform message notification |
-
2010
- 2010-07-29 EP EP10425263A patent/EP2413255A1/en not_active Ceased
-
2011
- 2011-07-11 CA CA2745981A patent/CA2745981C/en active Active
- 2011-07-27 US US13/191,759 patent/US8667080B2/en active Active
- 2011-07-28 CN CN201110220137.4A patent/CN102426576B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1294712A (zh) * | 1997-03-25 | 2001-05-09 | 英特尔公司 | 计算机间传输的数据的动态代码转换系统 |
Non-Patent Citations (1)
Title |
---|
Web Companion: A Friendly Client-Side Web Prefetching Agent;Klemm, R. P.;《IEEE TRANSACTIONS ON KNOWLEDGE AND DATA ENGINEERING》;19990831;577-594 * |
Also Published As
Publication number | Publication date |
---|---|
CA2745981C (en) | 2014-08-26 |
CN102426576A (zh) | 2012-04-25 |
US8667080B2 (en) | 2014-03-04 |
EP2413255A1 (en) | 2012-02-01 |
US20120030309A1 (en) | 2012-02-02 |
CA2745981A1 (en) | 2012-01-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102426576B (zh) | 提高在嵌入式系统上检索数据的速度的方法和嵌入式系统 | |
US11757961B2 (en) | System and method for streaming content from multiple servers | |
KR20140126328A (ko) | 애플리케이션 캐시를 사용하여 설치된 애플리케이션의 리소스를 업데이트하는 기법 | |
US9892205B2 (en) | Declarative show and hide animations in markup languages | |
US20140143647A1 (en) | Method for improving browser cache by reducing duplicate stored content | |
US20130144934A1 (en) | Web Content Targeting Based on Client Application Availability | |
US8001213B2 (en) | Method, apparatus and computer program product for providing unrestricted content on a user terminal | |
JP2011513804A (ja) | 直接ユーザアクセスを受ける記憶デバイス | |
US20160344832A1 (en) | Dynamic bundling of web components for asynchronous delivery | |
CN102362272A (zh) | 移动应用程序的设备相关的按需编译和部署 | |
KR101800744B1 (ko) | 어플리케이션과 브라우저 연동 방법 및 그 장치 | |
WO2013100969A1 (en) | Method and apparatus for streaming metadata between devices using javascript and html5 | |
US10757193B2 (en) | Increased interoperability between web-based applications and hardware functions | |
CN101355574A (zh) | 一种移动终端在线播放流媒体文件的方法 | |
CN111897564A (zh) | 一种应用更新方法及系统 | |
CN102017673A (zh) | 在用户终端和智能卡之间执行窗件的交互工作系统及其方法 | |
US8832467B2 (en) | Digital rights management metafile, management protocol and applications thereof | |
EP2572284B1 (en) | Method of optimization of cache memory management and corresponding apparatus | |
EP3007470A1 (en) | Performance improvement method in instance hosting environment and service system therefor | |
US20160103561A1 (en) | Identifying productive thumbnails for media content | |
WO2017197889A1 (zh) | 一种关键字链接方法、装置及系统 | |
Rome et al. | Multimedia on symbian OS: Inside the convergence device | |
US20160100217A1 (en) | System and method for optimizing delivery of video content in native mobile applications | |
CN113127433A (zh) | 一种本地文件访问系统、方法、装置及电子设备 | |
CN116020127A (zh) | 一种运行游戏的方法、装置及发送游戏的方法、装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |