在小型脚印尺寸装置上高速缓存缩减形式的网页的制作方法

文档序号:7971328阅读:219来源:国知局
专利名称:在小型脚印尺寸装置上高速缓存缩减形式的网页的制作方法
技术领域
本发明一般涉及计算机应用程序和小型脚印尺寸(footprint)装置。更具体地,本发明包括一种系统和一种方法,用于高速缓存缩减(reduced)形式的网页,以便在小型脚印尺寸装置上运行的浏览器中显示。
“智能化”的小型脚印尺寸装置的领域正在快速发展和变化。小型脚印尺寸装置包括手持式计算机、个人数据助理(PDA)、蜂窝式电话、全球定位系统(GPS)接收机、游戏机(game console)和许多这样的装置。这些装置变得更加智能化而且互连。诸如Sun Microsystems,Inc.的JiniTM等技术以及诸如开放式服务网关倡议(Open Service Gateway Initiative)(OSGI)等倡议把传统的计算机网络的概念扩展到包括小型脚印尺寸装置。
此增加的装置互连引起了对新型的计算服务及集成计算服务(基于装置间及其基于装置内的服务)的新方法的需要。“服务”是在可被人、应用程序或其它服务所使用的装置内实现的或可从该装置访问的实体。服务的概念很广,并可以许多不同的尺度来考虑。例如,服务包括诸如共享打印、电子邮件、电话技术等常见的基于网络的服务。服务还包括诸如可控制本地网络内的装置的功耗的能量管理服务、在发生差错时允许装置把信息发送给服务技术人员的诊断服务、即时地把紧急情况等通知健康状况专业人员的健康状况监测服务等不常见的例子。
服务还包括位于本地机器(local machine)或装置内并可在其中执行的模块或应用。例如,本地应用程序可利用与HTTP服务器进行通信的服务、HTML交付(render)引擎服务、书签服务、用户界面服务等。在此例中,应用程序可共同使用这些服务来实现网络浏览器(web browser)程序。
如今,在单个小型脚印尺寸装置中共同执行多个服务和应用已变得越来越普遍。然而,由于通常小型脚印尺寸装置中的存储器、处理功率和其它资源非常有限,所以需要专门的轻便服务/应用包容框架(containment framework)来实现服务和应用程序的想要的集成。还想要使包容框架足够灵活和可扩充,以便为任何类型的小型脚印尺寸装置的任何类型的服务和应用提供框架。另一个目的是使包容框架可与诸如JiniTM网络中的装置可获得的服务等脱离装置的服务兼容和集成。这里所述的包容框架实现了上述目的。
轻便的包容框架可使诸如个人数据助理、智能蜂窝式电话等小型脚印尺寸装置运行传统上与桌面计算环境有关的多用途应用程序。例如,围绕包容框架的一个实施例建立了Sun Microsystem,Inc.销售的个人应用(Personal Applications)组。Personal Application组包括一组集成的紧凑的存储器效率高的应用,包括个人应用浏览器(Personal Applications Browser)、个人应用电子邮件客户(Personal applications Email Client)和个人组织器(Personal Organizer)。
因为小型脚印尺寸装置可能具有很强的资源约束,重要的是不仅仅应用和服务框架是轻便的,而且应用和服务本身应尽可能紧凑和高效。网浏览器给出环球网(WWW)的适用性和普及性并向“智能化”的小型脚印尺寸装置发展,尤其是一类着眼于紧凑性、速度和效率的应用程序。本发明包括一种系统和方法,来高速缓存缩减形式的网页,以在网络浏览器中使用。网浏览器是允许用户观察网页的程序。
本发明包括一种系统和方法,来高速缓存缩减形式的网页,以在网络浏览器中使用。网页可以包括HTML码或其他标记语言码,如XML-导出的标记语言码,脚本(scripting)码,格式页(style sheet)等。有几个理由说明为什么在小型脚印尺寸装置上运行的网络浏览器希望高速缓存缩减形式的网页,而不是简单地高速缓存未经处理的网页版本。例如,与诸如桌面计算系统等其他计算系统相比,典型的小型脚印尺寸装置,可能具有较强的存储器约束。因此,以某种方法压缩被高速缓存的内容来减少网页高速缓存的存储器使用可能是重要的。而且,小型脚印尺寸装置与其他计算系统相比可能只有有限的处理能力。于是,为了避免对网页重新进行语法分析,对于小型脚印尺寸装置网络浏览器,希望借助于部分地或完全地高速缓存经语法分析的网页来节省CPU的周期。
此处描述高速缓存缩减形式的网页的两个基本方法。在一个方法中,浏览器可以高速缓存包括标记语言码、格式页等数据,但可去除多余的不需要的或不适用的数据,诸如某些标记语言标签。例如,许多网页包括用于多媒体或视觉效果的HTML或脚本码,它们不能在某些小型脚印尺寸装置上显示,或者可能因考虑到节省系统资源而予以去除。
在另一个方法中,该浏览器可以高速缓存已经语法分析的网页而不是原始网页。例如,一个网页可以被语法分析成一个树,诸如按照文档对象模型(Document Object Model)标准的树,此树可以用二进制形式存储在高速缓存器中。
在这里描述一个在小型脚印尺寸装置上运行的应用和服务的轻便包容框架(containment framework)。这样的包容框架使应用/服务能使用模块化的体系结构来配置。例如,网浏览器可以使用语法分析程序服务模块、高速缓存服务模块,用户界面服务模块等。可能希望在使用这种模块结构的网浏览器中实现这里所述的高速缓存缩减的网页。例如,网络浏览器可以使用语法分析服务来产生语法分析树,而语法分析服务可使用存储服务来高速缓存该语法分析树,使用任何方法都适用于特定的装置或系统。
作为另一个例子,网络浏览器可以使用语法分析服务来语法分析网页,而此语法分析服务可以使用另一个服务从网页中去除诸如未被支持的HTML标签等不必要的数据。一模块化软件体系结构使浏览器针对不同类型的装置从网页中去除不同类型的数据。
在参照附图并阅读下面详细叙述以后本发明的其他目的与优点将变成十分明了。


图1是示出高速缓存和重新使用缩减形式的网页的过程的流程图;图2是示出典型的小型脚印尺寸装置的硬件体系结构的方框图;图3是示出运行包容框架内的应用和服务的系统中所涉及的硬件/软件层的典型层次;图4示出一示例网络,其中运行包容框架中的应用/服务的小型脚印尺寸装置连到基于本地服务的网络;图5示出发现过程,其中服务提供者找到一查找服务;图6示出连接(join)过程,其中服务提供者用一查找服务给它的服务登记;图7示出查找过程,其中客户从查找服务中请求一服务;图8示出服务调用过程,其中客户使用从查找服务接收到的服务对象调用一服务;图9是示出包容框架的基本体系结构的摘要方框图;图10和11示出在包容框架中使用模块请求收听者(listener)来模拟分层的包容环境;图12示出使用包(parcel)把模块组合在一起;图13是示出典型查找过程的流程图,当中央框架实例(instance)接收到从客户模块查找服务模块的查找请求时可进行该过程;以及图14是示出模块释放过程的流程图。
虽然本发明容许各种修改和其它形式,但通过附图中的例子来示出本发明的特定实施例,并在这里详细描述。然而,应理解,这些附图及其详细描述将不限于所揭示的特定形式,而相反,本发明将覆盖落在所附权利要求书所限定的本发明的精神和范围内的所有修改、等价物和变形。
图1-高速缓存缩减的网页图1是一流程图,示出高速缓存和其后重新使用缩减形式的网页的过程。注意,图1示出了该过程的一实施例,加上结合,修改或略去各步骤的其它在图1的步骤600中,用户请求一网页。此请求可以各种方式发生。例如该用户可以单击网络链接(web link),或者用户可以在浏览器中输入URL,或者用户可以按一个键来更新当前的页等。此外,该网页本质上可能不被用户请求。例如,另一个应用可以在步骤600中请求该网页。在步骤602,网络浏览器与服务器通信来接收被请求的网页。例如,浏览器和服务器可以使用超文本传输协议(HTTP)从服务器将一网页传送到网络浏览器。网页可包含各种类型的数据,诸如文本、HTML码或其他标记语言码、诸如JavascriptTM码等脚本码,格式页指令等。
在步骤604,网络浏览器对网页进行语法分析,并高速缓存缩减形式的网页。浏览器可以使用各种高速缓存机构中的任一种。此高速缓存器可以是RAM的一部分或适于特定系统的其它类型存储器。在一个实施例中,浏览器可使用高速缓存服务来存储该缩减的网页。
如上所述,在步骤604中可使用各种类型的网页缩减。在一个实施例中,浏览器对网页作语法分析,以依据文档对象(DOM)标准产生语法分析树。该文档对象模型是网页的一个应用程序接口(API)。它确定了文档的逻辑结构和文档访问和处理的方法。网络浏览器可使用语法分析树来安排显示的网内容。
如上所述,小型脚印尺寸装置具有非常有限的资源,诸如存储器和处理器能力。与语法分析一个网页所需的时间和系统资源可以忽略不计的其他类型计算系统不同,在小型脚印尺寸装置中此语法分析可能需要大部分系统资源。因此,网络浏览器可以在网页第一次语法分析后高速缓存该语法分析树,而且此浏览器可以使用高速缓存的语法分析树来显示该网页,以响应于随后对该页的请求。例如,浏览器可以将语法分析树串行化成为存储图象,并高速缓存此存储图象。
网络浏览器还可以用其他方法缩减网页来进行高速缓存。这些缩减网页的其他形式可以与高速缓存语法分析树的技术或其它替代技术一起使用。在一个实施例中,当一对网页进行语法分析时,浏览器从网页中去除特定的成分。被去除的成分包括诸如HTML标签或XML-导出的标记语言标签,格式页属性等成分,对于特定小型脚印尺寸装置,它们是不被支持的或不必要的。例如网页常包括产生如闪烁文本等视觉效果的代码,它们在小型脚印尺寸装置中可能不被支持或者可能不必要的占用存储器和处理器资源。网页也可能包括诸如鼠标移动(mouseover)效果,动画等动态脚本码,这在小型脚印尺寸装置中是不必要或不被支持的。借助于去除这些类型的成分,产生缩减形式的网页,与原始网页相比它可能占有较少的高速缓存空间,且语法分析更快。
在某些情况下,网络浏览器可以替换网页中的其他成分,使得该网页被更快地语法分析并提供和/或更少的显示。例如,网络浏览器可以用简单地顺序列出单元内容来替代HTML表,使它不必要对表进行语法分析来确定列的宽度及行的高度等。
在步骤606中,浏览器显示网页。如上所述,浏览器可以在步骤604将网页语法分析成树,然后利用此树在步骤606安排和显示该网页。
在步骤608,用户请求与步骤600所请求的网页相同的网页。步骤606和608可以不是顺序相连的步骤。例如,用户可以在步骤608重新请求在步骤600的网页以前经过若干其他网页。如在步骤600一样,对网页的请求可以采取多种方式。
在步骤610,网络浏览器判断是否可使用网页的高速缓存版本。浏览器可以应用在该领域中众所周知的各种类型高速缓存算法,来作出此确定。如果该网页必须再次从服务器接收,则在步骤612网络浏览器与服务器通信以接收此网页。然后,如果可利用该网页的高速缓存版本,则在步骤614网络浏览器检索在步骤604存入高速缓存器中的缩减形式的网页。该浏览器可以用各种方式来检索该网页的缩减版本,这取决于在步骤604存储该网页的方式。例如,若该网页作为串行化的语法分析树存储,则可把该语法分析树读入存储器中。虽然步骤614的检索过程可能占用装置资源,但显示该网页的总开销可小于如步骤612那样必须重新接收网页并重新进行语法分析的情况。
在步骤616网络浏览器显示在步骤612或步骤614接收到的页。
小型脚印尺寸装置应用/服务包容框架需要或想要一种模块化的应用/服务框架来实现此处描述的这种网络浏览器,它高速缓存缩减形式的网页。下面叙述的包容框架允许对在小型脚印尺寸装置上运行的应用/服务能从各种模块来建立。例如,此包容框架能允许语法分析和高速缓存服务在各自分开的服务模块中实现。因此可以对不同的小型脚印尺寸装置使用合适的服务模块。
图2-硬件体系结构方框2是示出典型小型脚印尺寸装置的硬件体系结构的方框图。如这里所使用的,小型脚印尺寸装置是一种硬件装置,它包括诸如处理器和系统存储器等计算资源,但对一个或多个资源的约束明显多于典型的桌上型计算机。例如,小型脚印尺寸装置可具有两兆字节或更少的存储器,而典型的桌上型系统可具有64兆字节或更多。此外,就处理器类型或处理器速度或这两者而言,典型的小型脚印尺寸装置的处理能力明显地低于典型桌上型计算系统。例如,个人数据助理器件可具有16MHz的处理器,而典型的桌上型系统可具有100MHz或更高的处理器速度。此外,典型的小型脚印尺寸装置可具有的显示器尺寸明显小于桌上型计算系统的显示器屏。例如,与桌上型监视器的显示器屏相比,手持式计算机的显示器屏通常较小。
注意,给出特定的数字只是为了示例,并用作比较。例如,虽然个人数据助理装置具有典型数值为上述两兆字节的存储器,但具有八兆字节或更大的存储器的个人数据助理也可以仍然是小型脚印尺寸装置。
与典型的桌上型计算系统相比,除了如上所述的存储器、处理器和显示器尺寸资源以外,小型脚印尺寸装置可能对其它资源类型也有约束。例如,典型的小型脚印尺寸装置可没有硬盘,可没有网络连接,或者可具有间歇的网络连接,或可具有无线网络连接等。
许多小型脚印尺寸装置是便携式的和/或比桌上型计算机小,但也不必如此。此外,许多小型脚印尺寸装置主要或专门由电池供电。此外,小型脚印尺寸装置通常可具有的可能的用途范围比典型的桌上型计算系统更有限或更窄。小型脚印尺寸装置包括以下例子手持式计算机、可佩戴的装置(例如,腕表式计算机)、个人数据助理(PDA),“智能”蜂窝式电话、机顶盒(set-top box)、游戏机、全球定位系统(GPS)单元、电子教科书装置等,但不限于此。由于新型的消费装置快速涌现,不可能提供小型脚印尺寸装置的详尽清单。然而,术语“小型脚印尺寸装置”试图包括合理地包含在上述术语的精神和范围内的这些器件。
图2示出典型的小型脚印尺寸装置的方框图。注意,根据需要,小型脚印尺寸装置可具有各种不同的体系结构。为了简化,省略了理解本发明的操作所不需要的硬件元件。
如图2所示,小型脚印尺寸装置包含处理器100。处理器100可以是各种类型中的任一种,包括例如Pentium类的x86处理器、PowerPC处理器、以及其它不太强大的处理器或专门为小型脚印尺寸装置所开发的处理器。处理器100可具有各种时钟速度,包括与桌上型计算机类处理器中找到的时钟速度相类似的时钟速度,以及诸如16MHz等较低的时钟速度。
如图2所示,该装置还包括系统存储器102。系统存储器102可包括RAM或ROM等各种类型的存储器。较之典型的桌上型计算机系统,典型的小型脚印尺寸装置可具有非常小的存储器存储容量。
小型脚印尺寸装置还可包括一个或多个输入机构。图2中示出输入机构104。该输入机构104可以是适用于特定装置的各种类型中的任一种。例如,输入机构可以是键盘、鼠标器、跟踪球、触笔、麦克风等。
小型脚印尺寸装置还可包括一个或多个显示机构。在图2中示出显示器106。然而,小型脚印尺寸装置可不包括显示器,或可包括诸如音频扬声器等其它类型的输出机构。显示机构106可以是适用于一特定装置的各种类型中的任一种。较之桌上型计算机系统的显示器,诸如智能蜂窝式电话的典型小型脚印尺寸装置的显示机构可较小。
图3-硬件/软件层次3示出运行包容框架内的应用和服务的系统中所涉及的硬件/软件层的典型层次。该图是示意性的,可添加、组合或省略各层以适应特定装置或实现。
图3中所示的基础层为装置硬件层120,它包括支持诸如处理器和系统存储器等软件资源所需的硬件资源。在一个实施例中,小型脚印尺寸装置的硬件(诸如图2中所示小型脚印尺寸装置的硬件例子)实现图3所示的硬件层120。然而,在其它实施例中,硬件层120可以在其它类型的装置中实现,诸如资源约束比诸如智能卡等典型小型脚印尺寸装置更多的装置。
如图3所示,从硬件层向上的下一层是操作系统层122。如本领域内众所周知,操作系统在装置硬件与装置上运行的软件之间起到接口层的作用,且用作诸如输入/输出、存储器管理等低级任务的管理器。图3所示的操作系统122可以是任意特定的操作系统,它支持图3所示的更高层。操作系统122可以是适用于或特别为在小型脚印尺寸装置中使用而编写的小而有效的操作系统。例如,操作系统122可以是Sun Microsystems,Inc.销售的JavaOS操作系统。
在一个实施例中,在JavaTM应用环境中把包容框架实现为一个或多个JavaTM类。如图3所示,从操作系统向上的下一层是JavaTM虚拟机层124和JavaTM应用编程界面(API)类库层126。这两层一起构成JavaTM应用环境或JavaTM平台。可使用JavaTM库126来建立实现包容框架的类并编译成字节码。这些字节码是在JavaTM虚拟机124上执行的指令,JavaTM虚拟机124与操作系统122和/或装置硬件120交互。
在一个实施例中,在个人Java(PersonalJava)JavaTM应用环境中实行包容框架,该环境是被设计成完全可定标、模块化和可配置同时需要最少的系统资源的JavaTM平台。PersonalJava包括JavaTM虚拟机和包括核心和任选API及类库的JavaTMAPI的子集。此外,PersonalJavaTMAPI包括在诸如JavaTM抽象窗口工具包(AWT)的专门版本等资源有限环境中的消费者应用所需的专用特征。PersonalJavaTMAWT库旨在调谐消费产品的视觉和触觉,从而提供图形和窗口特征,同时支持低分辨率的显示器和替换的输入装置(通过用于鼠标器和键盘类装置的扩充事件模型)。
再参考图3,把包容框架128示作JavaTM平台层往上的下一层。如上所述,包容框架128还可基于其它平台。如以下详细所述,包容框架128通过例如使能模块登记、查找、实例跟踪等管理程序模块。模块可提供各种服务。为了使用其它模块的服务,包容框架128使能请求其它模块的模块。可把应用实现为利用其它模块的服务的模块。因而,包容框架128提供轻便、可扩充的服务和应用框架,使应用共存并共享一模块化的代码基础(code base)。
这种类型的可扩充体系结构使得多个程序模块协作,这是对小型脚印尺寸装置的重要提高。历史上,小型脚印尺寸装置限于相对窄的使用。例如,蜂窝式电话通常用于通话及其它极少的用途。然而,随着各种技术的改进,使得小型脚印尺寸装置变得“更加智能化”,具有多用途处理器及更大的显示器屏幕等,想要扩充小型脚印尺寸装置中所使用的应用的领域。
本包容框架可使与桌上型计算环境相关的各类应用和服务在小型脚印尺寸装置中以膝上型计算机用户熟悉的方式合作。如图3所示及如上所述,可把在小型脚印尺寸装置上运行的服务和应用130实现为在包容框架层128上所建立的模块。例如,使用包容框架128的一个实施例建立了Sun Microsystems,Inc.所销售的Personal Applications组。该Personal Application Suite包括结合了诸如浏览器、电子邮件客户和个人组织器等应用的集合。
图3还示出包容框架128把装置外的服务132与装置上的应用/服务130相结合。例如,包容框架128可在小型脚印尺寸装置与诸如JiniTM网络等网络之间提供接口。小型脚印尺寸装置系统可登记其被网络中的其它装置或客户所使用的服务。包容框架还可使能小型脚印尺寸装置内的服务和应用来查找和使用其它网络装置所提供的服务。以下参考图4更详细地讨论把小型脚印尺寸装置的服务与网络服务相结合。
图4-8示例的网络装置和服务联合图4示出一示例网络,其中把运行包容框架中的应用/服务的小型脚印尺寸装置连到基于本地服务的网络。在所示的例子中,利用包容框架144的小型蜂窝式电话134连到该网络。还示出,打印机130和因特网使能的电视机132连到该网络。在此例中,假设打印机130和电视机132可进行操作以把服务输出给一网络并可使用该网络上其它装置的服务。例如,打印机可输出其打印服务138,因特网电视机可查找打印服务并使用它来打印网页。为了便于装置和服务以这种方式联合,查找服务136位于网络上。查找服务136可位于诸如网络服务器等分开的装置上。
可以各种方式来实现装置与服务的联合。例如,可从Sun Microsystems,Inc.获得的JiniTM技术包括组件和使能图4所示类型的分配系统的编程模型。在一个实施例中,图4所示的本地网络可以是一JiniTM网络,打印机130和因特网电视机132可以是JiniTM使能的装置。每个装置可进行操作以找到JiniTM网络查找服务并以此查找服务来登记该装置所提供的服务。查找服务把指示一服务所提供的功能的界面映射到实行此服务的对象的集合。
为了把其服务添加到一服务联合中,装置或其它服务提供者可使用“发现”协议首先找出适当的查找服务。图5示出此发现过程。如图所示,例如图4所示的打印机130等服务提供者164可在本地网络上播放使任意查找服务识别它们自己的请求。
服务提供者164一旦找到查找服务160,服务提供者164可使用“连接”协议以查找服务160登记该服务提供者的服务。图6示出此连接过程。服务提供者164可产生可被客户用来调用该服务的服务对象。如图6所示,然后可把用于所提供的服务的服务对象与包含有关所提供的服务的类型或名称的信息的服务属性或描述符一起装入查找服务160中。例如,在JiniTM网络中,图4所示的打印机130可产生包括用于打印服务138的JavaTM编程界面的服务对象。然后,打印机130可调用查找服务136的“登记”方法,把此服务对象与规定把服务138登记为打印服务的属性、打印分辨率及可能的纸张尺寸等一起传送。
服务提供者164一旦把其服务与查找服务160相连接,则其它网络客户可请求并使用这些服务。在图7中示出请求服务、调用查找的过程。在发现查找服务后,客户162可从查找服务160请求一服务,这通过使用被请求服务的描述来完成。查找服务160尝试匹配请求者给出的描述同已与查找服务相连接的服务。查找服务160可使用服务提供者164在连接过程中所提供的服务属性来进行此匹配。如果找到匹配,则查找服务160把适当的服务对象提供给客户162。例如,可把被请求服务的JavaTM界面提供给客户162。
客户162一旦接收到来自查找服务的服务对象,该客户可调用该服务。图8示出服务调用过程。在调用一服务时,客户162和服务提供者164可相互直接通信。可把各种交互协议中的任一种用于此通信。例如,所使用的协议可以是JavaTM远程方法调用(Remote Method Invocation)(RMI)、CORBA、DCOM等。客户从查找服务接收到的服务对象可通过例如调用RMI方法回调位于服务提供者处的代码,或者它可在本地执行来提供被请求的服务,或者它可使用这些途径的组合。
如图4所示,用于本地网络的查找服务136还可对诸如因特网154等外部网络起到网关的作用。因而,可把基于服务的分布式计算模型扩充到包括本地网络以外的客户和服务。例如,可把为Open Service Gateway Initiative(OSGI)所开发的技术转到实现这种类型的分布式计算系统。
这种在不同网络与因特网之间及跨这些网络共享的服务可使能待开发的新型应用。例如,商人可使用因特网服务来记录有关特定消费者的数据,广告服务提供者可使用此数据把上下文特定(context-specific)的广告推向消费者装置,这是依据该装置连到的本地网络等来完成的。例如,订户可进入一大型购物中心并通过无线连接把个人数据助理(PDA)连接到该购物中心的本地网络。基于因特网的消费者数据服务可与该购物中心网络的查找服务相连接,并可提供有关已接入购物中心网络的特定客户的信息。然后,在此购物中心网络中运行的服务可使用此数据以及诸如订户在购物中心内的当前位置、日期等其它因素,以产生个人化的广告并把这些广告推向订户的PDA。
以图4的基于网络的服务的许多其它例子是可能的。例如,网络使能的家用消费者装置可通过因特网利用电力公司所提供的服务来管理家庭耗电;安全服务提供者可通过网络服务监控家庭或特定装置,并可在财产被侵占时立即通知拥有者;健康服务提供者可通过与医疗器械通信来远程地监控病人的情况;等等。
在以上所列的例子中,假设装置透明地连到网络,把网络服务与装置所属服务相结合,并输出装置所属服务给网络客户所使用。这里所述的包容框架可提供把诸如个人数据助理、手持式计算机、智能蜂窝式电话等信息尺寸装置的服务和应用与网络服务联合相结合的必要界面。
如图4所示及以下更详细的描述,包容框架144具有它自身类型的查找服务146。包容框架144内的查找服务146可利用发现、连接、操作和服务调用过程,与如上所述的本地网络查找服务相类似地进行操作。例如,个人组织器应用152可利用诸如日程表服务、联系清单服务、书签服务等(未示出)各种服务。个人组织器应用152可获得通过包容框架查找服务146与这些服务进行通信的索引。
包容框架144可把它自己的查找服务146与诸如图4所示的本地网络查找服务136等装置外的查找服务相结合。这样,诸如包容框架的应用/服务148、150和152变得可获得诸如打印服务138和网络服务140等装置外的服务,反之亦然。例如,个人组织器应用152可从包容框架查找服务146中请求打印服务。包容框架查找服务146可首先搜索装置上的打印服务。如果未找到,则包容框架查找服务146可从网络查找服务136中请求打印服务。然后,可把打印服务138的服务对象返还个人组织器152。在图4中示出装置上的服务/应用与装置外的服务之间的接口142。以下细节有关如何实现把装置上/装置外的服务相结合。
如上所述,服务的客户自己可以是其它客户的服务。例如,图4所示智能蜂窝式电话的电子邮件客户“应用”150本身可以是在包容框架144上运行的客户或网络客户的服务。例如,在发生故障的情况下,图4所示的打印机130可请求一电子邮件服务,从而可把诊断信息发送给服务技术人员。如果网络查找服务136不能找到基于网络的电子邮件服务,则它可通过接口142从智能蜂窝式电话134中请求电子邮件服务。可把在包容框架144中运行的电子邮件应用/服务150的服务对象传送给发出请求的打印机客户130。在此例中,打印机客户130可直接与电子邮件应用/服务150进行通信,以把包含诊断信息的电子邮件发送给打印机服务技术人员。电子邮件应用/服务150可在能找到电子邮件服务器服务时立即发送该电子邮件,或者它可在以后蜂窝式电话用户连到不同网络而可利用此服务时发送电子邮件。
虽然以上描述参考了诸如JiniTM技术等特定协议和编程模型,但注意,这些特定技术只是示意性的。例如,可把包容框架内的应用和服务与利用各种类型的标准、协议和编程模型中任一种的客户、服务、装置、网络等相结合,这些标准、协议和编程模型包括JiniTM、CORBA、COM/DCOM、Bluetooth、CAL、CEBus、HAVi、Home API、HomePNA、HomePnP、HomeRF、VESA等,但不限于此。
图9-包容框架方框9是示出包容框架环境的基本体系结构的摘要方框图。如上所述,包容框架提供应用和服务的包容系统。在系统内,以模块为单元来管理这些应用和服务。包容框架是轻便的;在一个实施例中,模块可与进行所有模块管理的单个框架管理器对象交互。在这里把此管理器叫做中央框架实例。在一个实施例中,可把中央框架实例实现为JavaTM类的实例。图9示出中央框架实例170及包括/管理的代码和数据。注意,图9示出了包容框架的一个实施例。其它实施例可利用不同的体系结构和/或可以不同的编程语言或软件环境来实现。例如,在其它实施例中,可由多个对象或组件来进行图9所示中央框架实例170所进行的模块管理/包容。
如图9所示,中央框架实例170包括代表目前装载在该系统中的模块的数据182。包容框架体系结构是不分层的。因而,可把所装载的模块表示为不分层的模块清单或阵列。此不分层的系统有助于保持核心包容框架代码和在框架块(compact)内运行的模块。利用诸如JavaBeansTM组件等分层组件的系统可提供相关的益处,但这些益处以需要更多系统资源的更复杂的管理系统为代价。然而,包容框架确实提供了一种不分层模块机构,以获得分层包容系统的许多益处。以下针对图10和11来描述此机构。
如图9所示,在一个实施例中,中央框架实例170包括模块可调用的公共可访问的方法178。可把这些方法分成抽象组。例如,一组方法172可包括查找方法。查找方法实行如上所述的查找服务功能。模块可把查找方法的模块描述符传送到中央框架实例170,以找到特定的服务模块。以下针对图13描述包容框架查找过程。另一组框架方法174可包括用于装载和卸载模块的方法。在找到服务模块后,客户模块可请求中央框架实例170来装载该服务模块并把一索引返还被装载的模块。然后,客户模块可调用此服务。当客户结束使用时,可调用一框架方法来释放此服务模块。虽然被描述为个别的组,把方法分成查找和装载/卸载组的分割可以仅仅是概念上的分割。例如,在一个实施例中,查找方法还可装载与它匹配的模块并可把一索引返还此匹配的模块。
图9还示出系统数据180(叫做框架元数据),它可包括描述所装载模块的清单的数据182以及描述系统状态的其它数据。中央框架实例170的方法176的另一抽象组可包括反射(reflection)方法。反射方法与其它方法组稍有不同,因为它们对核心元数据提供直接访问。特定类的模块(叫做系统模块)可调用反射方法来获得对元数据180的访问。常规的模块不可以访问元数据180。
在接收到核心系统数据180的索引后,系统模块可以任何想要的方式使用或修改该数据。因而,包容框架完全可扩充。中央框架实例170表示可保持较小,可添加系统模块来实行还未被中央框架实例170使能的任何功能。例如,系统模块可使能以上针对图4-8所述的在包容框架内运行的应用/服务和以外部网络为基础的服务之间的结合。
在此例中,可把这种系统模块编写为符合外部网络的协议和编程模型的辅助查找服务。例如,对于JiniTM网络,可编写一系统模块,该模块发现JiniTM网络查找服务并连接此网络查找服务,把它自己登记为辅助查找服务。在网络客户请求服务时,网络查找服务可对于由系统模块所实行的查找服务。该系统模块可尝试在包容框架内找到与被请求服务的描述匹配的服务模块。如果未找到匹配,则系统模块可进行任何必要的步骤,以把该服务模块输出给网络客户,因为该系统模块完全可访问系统模块清单和元数据。例如,系统模块可把匹配的服务模块装入并登记在系统中,并把新装载的模块的诸如JavaTM界面等界面返还请求者。
图10和11-模拟分层环境常常想要建立分层的模块上下文。例如,系统中可存在几个相同类型的服务模块,但每个模块的表现可稍有不同。在分层包容系统中,可通过发出请求的模块的母模块或包含模块滤除一模块对一服务的请求,从而可把一特定服务模块的索引传回请求者。分层包容还具有其它固有的优点,诸如能在模块层次中容易地分配和存储数据。然而,如上所述,就诸如存储器和处理能力等所需的系统资源而言,完全实现分层包容系统可能很费钱。包容框架可给开发者和应用提供具有分层包容的许多益处而没有通常与其相关的高的开销成本。
例如,包容框架的一个实施例允许模块把它们本身登记为其它模块的模块请求收听者。例如,模块A可通过调用中央框架实例的添加请求收听者(AddRequestListerner)方法把它本身登记为模块B的请求收听者。当模块B随后调用中央框架实例的一个方法来找到特定服务时,中央框架实例检查模块B的任何模块请求收听者。在此情况下,它找到模块A为请求收听者,并请求模块A把所请求的服务模块提供给模块B。
图10和11示出模块请求收听者在包容框架中的示例使用。图10示出打印服务所需的概念上的模块层次。如图所示,在打印管理器模块190中封装两个打印服务模块192和194、打印服务A和打印服务B。例如,这两个打印服务192和194可打印到不同的位置,具有不同的分辨率和彩色能力等。这两个打印服务模块中的任一个可满足另一模块对一打印服务所作的查找请求。然而,想要利用选择并返还特定打印服务的打印管理器模块。例如,打印管理器190可选择客户模块据此作出打印请求的打印服务,或者打印管理器可显示请求用户输入想要的打印服务特性的对话框。
虽然包容框架利用不分层的包容模型,但可通过把打印管理器模块190登记为可请求一打印服务的客户模块的模块请求收听者来实现图10中所示的层次。图11示出可在一系统中运行的示例模块198。如上所述,这些模块本身可把其它模块用作服务。依据包容框架的不分层模型,所示的模块排列成不分层布局,而没有固有的模块包容。
在此例中,可操作网络浏览器模块196来作出打印请求,例如请求打印一网页。如图11所示,可把打印管理器模块190登记为网络浏览器模块196的一个模块请求收听者。在接收到来自网络浏览器196的打印服务请求时,包容框架查找服务可找到被登记为网络浏览器模块196的一个请求收听者的打印管理器模块190,并可请求该打印管理器模块190把打印服务模块提供给网络浏览器请求者196。然后,打印管理器模块190可返还打印服务模块A192或打印服务模块B194的索引,或打印管理器模块190可给用户呈现一对话框,以使用户决定返还哪一个打印服务模块等。因而,可对包容框架的不分层模块实现图10的想要的模块层次。
图12-包封装单元可把模块封装成一个个单元(叫做包)。此封装适用于几个目的。例如,包提供了作为一个单元管理有关代码和数据的便利机构。如果紧密相关的模块具有静态的相关性,则可把它们封装在一起成为一个包。可使用包来管理系统内的安装和升级。
图12示出一个示例的包200,它把有关个人信息管理器(PIM)的模块组合在一起。图中示出日程表模块202、联系清单模块204、约会模块208和用户界面模块206。如果需要,该包中可存在各种其它模块。PIM包200的模块还可利用在包容框架内运行的各种核心服务模块,诸如书签服务、查找服务等。使用PIM包可简化PIM应用的安装和升级。这样把PIM模块封装成一个包还有对多目标开发产生不同的代码单元的开发时间的益处。
包还提供了给不分层的模块提供运行时间上下文的附加方法。在把一模块装入系统中时,中央框架实例可存储指定该模块属于哪一个包(如果有的话)的元数据。服务模块以后可使用此信息,依据客户所属的包,给不同的框架模块提供不同的服务。例如,客户模块可使用文件访问服务模块来获得根目录。文件访问模块可依据客户所属的包,给不同的客户返还不同的根目录。
图13-模块请求流程13是示出中央框架实例可在接收到来自一客户模块的对一服务模块的查找请求时执行的典型查找过程的流程图。注意,图13是示意性的,可组合、省略或修改各步骤。例如,如上所述,可添加定制查找过程的系统模块。
在图13的步骤300中,中央框架实例接收来自请求者模块的模块查找请求。例如,请求者模块可调用中央框架实例的请求模块(RequestModule)方法,传送被请求的服务模块的模块描述符以及请求者模块本身的索引。可把请求模块的索引添加到系统数据中,从而保持跟踪服务模块用户。如以下更详细的描述,一模块可在其它模块都不使用它时被卸载。
请求者模块所传送的模块描述符指定了有关被请求模块(框架实例可使用它来尝试找到匹配的模块)的各种属性。此模块描述符可以是包括诸如被请求模块的服务类型、类的名称和/或服务专用属性等信息的对象。请求者还可把一文本描述传送到中央框架实例,中央框架实例可使用此文本描述来产生模块描述符对象。
在步骤302,中央框架实例查看是否对发出请求的模块登记了任何请求收听者模块。如果找到请求收听者,则在步骤304,框架实例把该请求通知请求收听者并指令该请求收听者尝试提供与模块请求描述符匹配的模块。如果请求收听者可提供匹配的模块,则执行进到步骤314。否则,可请求其它登记的请求收听者来提供一模块,直到找到匹配或不再有请求收听者。
如果未找到请求收听者,或者如果请求收听者不能提供被请求的模块,则执行进到步骤306。然而,在一个实施例中,如果对发出请求的模块登记一个或多个请求收听者,且它们都不能提供匹配的模块,则执行可在步骤304后停止。在步骤306,中央框架实例检查模块的清单,以确定模块之一是否与模块描述符匹配。如果找到匹配,则在步骤308,框架实例检查匹配的模块是否可提供多个实例。如果不是,则执行进到步骤314。
如果在步骤308找到的匹配模块可提供多个实例,则中央框架实例可继续搜索模块清单中的匹配。如果不再有要搜索的模块,则执行进到步骤310。在步骤310,框架实例搜索模块清单中模块提供者的模块。模块提供者模块是能提供被请求模块的模块。例如,可把网络查找模块输入为包容框架的模块提供者模块。
如果找到模块提供者模块,则在步骤312,中央包容实例把该请求通知模块提供者模块并指令该模块试图提供与模块请求描述符匹配的模块。如果找到匹配,则执行进到步骤314。如果模块提供者不能提供被请求的模块,则中央框架实例可搜索其它模块提供者模块并重复步骤312。如果该模块清单中不存在模块提供者或每一个模块提供者可提供被请求的模块,则通知请求者该请求不能完成,且执行结束。
可从步骤304、308或312到达步骤314。在所有情况下,找到与模块请求描述符匹配的模块。在步骤314,把请求者登记为匹配模块的用户,在步骤316,把匹配模块的索引返还请求者。在步骤314中还执行装载匹配模块并对其进行初始化所涉及的任何必要初始化步骤。例如,模块可具有在装载模块时调用的初始化(Initialize)方法。
如上所述,图13的流程图是示意性的,各种实施例可具有不同的查找/装载脚本。例如,模块可调用中央框架方法来装载服务模块而不返还匹配模块的索引,或者在某些情况下可忽略请求收听者等。
图14-模块释放流程图在客户模块结束使用一服务模块时,客户可调用中央框架实例的一个方法来释放该模块。图14是示出模块释放过程的流程图。图14的流程图是示意性的,可根据不同实施例的需要或要求组合、省略、添加或修改各步骤。
在步骤330,中央框架实例接收来自一用户模块的模块释放通知。如以上对图13所述,当用户模块请求一服务模块时,把此用户模块添加到服务模块的用户清单中。在步骤332,中央框架实例从被释放模块的用户清单中除去释放用户模块。在步骤334,框架实例通过例如检查释放模块的用户模块清单中是否存在其它模块,来确定任何其它用户模块释放使用此被释放的模块。如果是这样,则执行停止。
如果其它模块都不使用被释放的模块,则中央框架实例可尝试卸载被释放的模块。在步骤336,框架实例可调用被释放模块的可结束(CanFinalize)方法。如果可卸载该模块,则CanFinalize返还真,否则返还假。如果CanFinalize方法在步骤336返还假,则执行停止。否则,可调用释放模块的结束(Finalize)方法。此Finalize方法可执行诸如释放资源等卸载模块的任何必要步骤。然后可卸载该模块,根据特定实施例,这可能涉及垃圾回收等。
虽然已结合特定实施例描述了本发明,但它不限于这里提出的特定形式,相反,它将覆盖包含在附加权利要求书所限定的本发明的精神和范围内的合理的替代、修改和等价物。
权利要求
1.一种在装置中高速缓存网页的方法,其特征在于所述方法包括响应于请求接收网页;创建缩减形式的网页;高速缓存缩减形式的网页。
2.如权利要求1所述的方法,其特征在于所述请求是观看所述网页的请求;所述方法还包括在接收网页后显示该网页;使用缩减形式的网页,以响应于观看该网页的后续请求,重新显示该网页。
3.如权利要求1所述的方法,其特征在于所述操作缩减形式的网页包括从网页中去除特定的标记语言标签。
4.如权利要求3所述的方法,其特征在于所述标记语言标签控制影响网页的显示的特性。
5.如权利要求4所述的方法,其特征在于影响网页显示的所述特性包括从如下构成的组中选出的特性颜色、字体和字体尺寸。
6.如权利要求5所述的方法,其特征在于所述标记语言是HTML。
7.如权利要求3所述的方法,其特征在于所述标记语言标签控制不被所述装置支持的显示特性。
8.如权利要求1所述的方法,其特征在于所述创建缩减形式的网页包括从网页中去除脚本码。
9.如权利要求8所述的方法,其特征在于所述脚本码是试图动态地改变网页的外观的JavaScriptTM码。
10.如权利要求1所述的方法,其特征在于所述创建缩减形式的网页包括将该网页语法分析成树状数据结构,所述高速缓存缩减形式的网页包括高速缓存所述树状数据结构。
11.如权利要求9所述的方法,其特征在于所述树状数据结构是包括代表该网页的元素的元素的树,该树的所述元素依据文档对象模型相关。
12.如权利要求2所述的方法,其特征在于所述在接收到网页后对显示该网页包括将该网页语法分析成一树状数据结构,并访问此树状数据结构以确定如何显示该网页;所述高速缓存缩减形式的网页包括高速缓存所述树状数据结构;而且所述使用缩减形式的网页以重新显示该网页包括从高速缓存器访问所述树状数据结构,以确定如何显示该网页。
13.如权利要求1所述的方法,其特征在于所述装置为小型脚印尺寸装置。
14.如权利要求1所述的方法,其特征在于所述装置是从包括如下构成的组中选出的一个装置个人数据助理(PDA)蜂窝式电话和全球定位系统(GPS)接收器。
15.一种可以操作来高速缓存缩减形式的网页的装置,其特征在于所述装置包括处理单元;耦合到所述处理单元的系统存储器;存储在所述系统存储器中的软件程序,其中所述软件程序可操作来响应于请求接收网页;创建缩减形式的所述网页;高速缓存所述缩减形式的所述网页。
16.如权利要求15所述的装置,其特征在于所述创建缩减形式的网页包括从该网页中去除特定的标记语言标签,其中所述标记语言标签控制影响该网页的显示的特性。
17.如权利要求16所述的装置,其特征在于影响该网页显示的所述特性包括从如下构成的组中选出的特性颜色、字体和字体尺寸。
18.如权利要求17所述的装置,其特征在于所述标记语言是HTML。
19.如权利要求15所述的装置,其特征在于所述标记语言标签控制不被所述装置支持的显示特性。
20.如权利要求15所述的装置,其特征在于所述软件系统可进一步操作来在接收该网页后显示该网页,其中所述在接收该网页后显示该网页包括将该网页语法分析成一树状数据结构,并访问该树状数据结构以确定如何显示该网页;使用缩减形式的网页,以响应于观看该网页的后续请求,重新显示该网页,其中所述使用缩减形式的网页来重新显示该网页包括从一高速缓存器访问所述树状数据结构以确定如何显示该网页。
21.如权利要求15所述的装置,其特征在于所述的装置为小型脚印尺寸装置。
22.一种包括用于高速缓存网页的程序指令的存储介质,其特征在于可执行程序指令来响应于请求接收网页;创建缩减形式的网页;高速缓存缩减形式的网页。
23.如权利要求22所述的存储介质,其特征在于所述请求是观看所述网页的请求,可进一步执行程序指令来在接收该网页后显示该网页;使用缩减形式的网页,以响应于观看该网页的后续请求,重新显示该网页。
24.如权利要求22所述的存储介质,其特征在于所述创建缩减形式的网页包括从该网页去除特定的标记语言标签,其中所述标记语言标签控制影响该网页显示的特性。
25.如权利要求22所述的存储介质,其特征在于影响该网页显示的所述特性包括从如下构成的组中选出的特征颜色、字体和字体尺寸。
26.如权利要求22所述的存储介质,其特征在于所述创建缩减形式的网页包括将该网页语法分析成一树状数据结构,并且所述高速缓存缩减形式的网页包括高速缓存所述树状数据结构。
27.如权利要求22所述的存储介质,其特征在于所述树状数据结构是包括代表该网页的元素的元素的树,而且该树的所述元素依据文档对象模型相关。
28.如权利要求22所述的存储介质,其特征在于,所述在接收到该网页后显示该网页包括将该网页语法分析成一树状数据结构,并访问此树状数据结构以确定如何显示该网页;所述高速缓存缩减形式的网页包括高速缓存所述树状数据结构;而且所述使用缩减形式的网页以重新显示该网页包括从高速缓存器访问所述树状数据结构,以确定如何显示该网页。
全文摘要
高速缓存缩减形式的网页的系统和方法。在小型脚印尺寸装置上运行网络浏览器可高速缓存缩减形式的网页。进行各种类型的缩减。例如,在高速缓存网页前去除它可能包含的对显示不必要或不被特定小型脚印尺寸装置支持的元素,这减少了所占的高速缓存器的大小及交付网页在以后观看的时间。替代文本形式的网页,可高速缓存语法分析树版本。描述了在小型脚印尺寸装置上运行的应用和服务的轻便包容框架。网络浏览器可建立在此包容框架上。
文档编号H04L12/28GK1290898SQ0011889
公开日2001年4月11日 申请日期2000年6月15日 优先权日1999年6月15日
发明者N·格雷厄姆, K·勒迪克 申请人:太阳微系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1