万维网应用程序的应用程序管理框架的制作方法

文档序号:6477922阅读:286来源:国知局
专利名称:万维网应用程序的应用程序管理框架的制作方法
万维网应用程序的应用程序管理框架 相关专利申请 本专利申请要求2007年7月29日提交的第60/952, 588号美国临时专利申请、 2007年8月6日提交的第60/954,022号美国临时专利申请以及2008年7月29日提交的 第12/181, 776号美国专利申请的优先权。该专利申请还涉及并且要求2006年5月8日 提交的名称为"Method for Synch皿i zing SoftwareApplication and User Data for Asynchronous Client-Serverand Peer to Peer Computer Networks,,的第11/382,058 号美国专利申请的优先权、2006年12月18日提交的名称为"System forRunning Web Applications Offline and Providing Access toNative Services"的第11/612, 282号 美国专利申请的优先权、2007年10月16日提交的名称为"Offline Automated ProxyCache for Web Applications"的第11/873, 305号美国专利申请、2008年1月4日提交的名 禾尔为"System and Methods forProviding Granular Security for Locally Running ScriptedEnvironments and Web Applications"的美国专利申请、2008年4月2日提交的 名禾尔为"System and Methods for ProvidingAccess to a Desktop and Applications of a Mobile Device"的第12/061, 179号美国专利申请、以及2008年5月7日提交的名称为 "Automatic Conversion Schema for Cached Web Requests,,的第12/116, 697号美国专利
申请的优先权。引用这些专利申请的全部内容供参考。
背景技术
最近几年,万维网(web)浏览器已经成为能力强大的软件包。除了提供万维网网 页,万维网浏览器可以运行有时被称为"微件(widget)"的小应用程序。许多万维网浏览 器还支持在万维网浏览器上运行更复杂的万维网应用程序的能力。可以利用诸如HTML、 XHTML、XML以及异步JavaScirpt和XML(Ajax)的各种万维网技术,实现这种万维网应用程序。 尽管万维网应用程序具有许多优点,但是仍在许多领域受困。例如,因为万维网应 用程序依赖于万维网浏览器,所以万维网浏览器必须在万维网应用程序运行之前启动。与 许多移动装置的情况一样,这种延迟可能令最终用户不满意,尤其是如果运行万维网应用 程序的装置具有有限的处理能力。此外,如果万维网浏览器没在运行,则万维网应用程序也 不运行。因此,万维网应用程序不能更新其数据。此外,如果用户希望同时运行几个万维网 应用程序,则该用户必须直接启动每个应用程序。而且,没有简易方法可以使多个万维网应 用程序共享一组用户输入控件。 在诸如蜂窝电话的移动装置上,某些widget可以运行在万维网浏览器上。这些 widget具有万维网应用程序的某些好处,诸如开发商比较容易利用万维网技术编写程序, 但是却受困于其它领域。首先,用户不能为了下载万维网网页而在widget中点击超链接。 其次,当用户希望从一个widget切换到另一个widget时,用户退出运行该第一 widget的 基础浏览器,然后,启动新浏览器实例(new browser instance),以运行第二widget。由于 这两个widget不同时运行,所以从一个widget到另一个widget的切换处理花费大量时间,这是最终用户所不希望的。此外,也不存在通过通用用户接口管理多个widget的机制。
基于万维网做广告已成为通常的做法,因此,根据各种准则,将广告插入万维网网 页中。然而,如果万维网浏览器没有连接到因特网,则该广告就不能插入万维网网页中。对 于诸如蜂窝电话的移动装置,当接收弱信号时或者当出了服务区时,通常这种装置与网络 断开。此外,当该装置脱机时,即使最终用户已经观看了和/或者点击了该广告,广告寄存 提供商也不能获得广告收入。在这种情况下,登广告者无需为使用通信媒体而向提供商支 付费用就可以获得登广告的好处。而且,当前的widget不容易支持基于万维网的广告。


图1示出应用程序管理框架的实施例。 图2示出包括万维网浏览器和万维网虚拟机的计算装置的实施例。
图3示出用于启动应用程序框架的逻辑流程的实施例。
图4示出由应用程序框架处理事务的逻辑流程的实施例。 图5示出包括万维网应用程序和应用程序管理框架用户接口的移动装置的实施 例。 图6A-6F示出万维网应用程序和应用程序管理框架用户接口的实施例。 图7A示出万维网浏览器、万维网应用程序以及应用程序框架用户接口的实施例。 图7b示出万维网浏览器、万维网应用程序以及应用程序框架用户接口的另一个
实施例。 图8示出通信系统的实施例。 图9示出用于产生广告收入的逻辑流程的实施例。
具体实施例方式
各种实施例涉及万维网应用程序的应用程序管理框架,对于广泛的网络装置,它 可以提高速度、提高容量、改善用户感受、增加获得广告利润的机会、以及简化应用程序开 发。所描述的实施例可以采用用于在共享万维网浏览器应用程序管理框架中容纳、控制以 及显示多个基于万维网的应用程序的技术。这种技术尤其适合处理能力有限、间歇访问网 络、显示屏幕小并且用户输入能力有限的诸如蜂窝电话的移动装置。 共享万维网浏览器应用程序管理框架能够在应用程序之间迅速切换、允许执行 多任务、便于对各应用程序使用一组通用输入控件、并且使得以察觉不到的启动("自举 (boot)")时间使用应用程序成为可能。 此外,共享万维网浏览器应用程序管理框架内的应用程序可以使用该框架提供的 附加能力,诸如高速缓存脱机访问的内容或者数据,保证对所包含的应用程序的更新,使用 移动装置的本地服务,诸如日历或者联系信息,以及将广告插入应用程序的用户接口。所描 述的实施例也鼓励万维网应用程序的用户、万维网应用程序的开发商、万维网应用程序的 门户网站提供商、以及万维网广告提供商共享相互之间的服务。 为了全面理解该实施例,将具体描述其大量细节。然而,本技术领域内的技术人员 明白,在没有这些具体细节的情况下,也可以实施该实施例。在其它情况下,为了不妨碍理 解该实施例,对众所周知的操作、部件以及电路没有进行详细描述。可以明白,在此描述的具体结构和功能细节是说明性的,并不一定限制本发明的范围。 在整个说明书中,"各种实施例"、" 一些实施例"、" 一个实施例"或者"实施例"均 指,结合该实施例描述的特定特征、结构或者特性包括在至少一个实施例中。因此,位于整 个说明书各位置的短语"在各种实施例中"、"在一些实施例中"、"在一个实施例中"或者"在 实施例中"的意义不一定都指同一个实施例。此外,在一个或者多个实施例中,可以以任何 适当方式组合特定特征、结构或者特性。 图1示出适于实现各种实施例的应用程序管理框架100的体系结构图。尽管图1 作为例子示出有限数量的部件,但是可以想象对于给定实现,可以采用较多或者较少的部 件。 在各种实施例中,应用程序管理框架100可以由计算装置予以实现。该计算装置 的单元可以包括各种用于传播信息的物理部件和/或者逻辑部件,它们可以根据一组给 定的设计参数或者性能制约的要求,由硬件部件(例如,计算装置、处理器、逻辑器件)、可 以被各种硬件部件执行的可执行计算机程序指令(例如,固件、软件)或者它们的任意组合 予以实现。根据所描述的实施例,典型计算装置可以包括个人计算机(PC)、台式计算机、 笔记本计算机、膝上型计算机、移动计算装置、智能手机、个人数字助理(PDA)、移动电话、组 合移动电话/PDA、视频装置、电视机(TV)、数字电视机(DTV)、高清晰电视机(HDTV)、媒体播 放器、游戏机、消息传送装置(messaging device)或者任何其它适当的通信装置。
包括应用程序管理框架100的计算装置可以构成有线通信系统、无线通信系统或 者这二者的组合的一部分。例如,可以布置该计算装置,以通过一种或者多种诸如电线、电 缆、总线、印刷电路板(PCB)、以太网连接、对等(peer-to-peer(P2P))连接、底板、交换结 构(switch fabric)、半导体材料、对绞线、同轴电缆、光纤连接等等的有线通信链路传播信 息。可以布置该计算装置,以通过超过一种或者多种诸如无线电信道、卫星信道、电视频道、 广播频道、红外信道、射频(RF)信道、无线保真(WiFi)信道、一部分射频频谱、和/或者一 个或者多个许可频带或者免许可频带的无线通信链路传播信息。在无线实现中,该计算装 置可以包括一个或者多个用于无线通信的接口和/或者部件,诸如一个或者多个发射机、 接收机、收发信机、放大器、滤波器、控制逻辑、无线网络接口卡(WNIC)、天线等等。尽管作为 例子利用特定通信介质描述了特定实施例,但是应该明白,利用各种通信介质和相关技术, 可以实现在此讨论的原理和技术。 如图1所示,应用程序管理框架100可以由万维网浏览器105实现并且在 该万维网浏览器105上运行。根据所描述的实施例,万维网浏览器105可以由诸如
Internet Explorer 、 Mozilla 、 Firefox 、 Safari 、 Opera 、 Netsc即e Navigator⑧和/或者任何适当万维网浏览器的台式机版本或者移动版本的
万维网浏览器予以实现。在各种实施例中,万维网浏览器105可以支持应用程序管理框架 100要求的计算机编程语音、标准、万维网协议和/或者技术。这些计算机编程语音、标准、 万维网协议和/或者技术可以包括,但是并不局限于包括HTML、 XHTML、 XML、Flash / ActionScript、Macromedia⑧Flash⑧、JavaScript、 ECMAScript、 JScript、 Basic、 Visual Basic 、 Visual Basic Scripting Edition (VBScript) 、CSS、异步JavaScript
和xml (Ajax) 、Flex Java 、 Python、Perl 、 c#/. net、Flash⑧和/或者其它适当
的编程语言、脚本语言、或者基于VM的语言。此外,万维网浏览器105可以支持"本地"冲浪,在不要求与网络具有连通性的情况下,可以访问"本地主机"的资源。应该明白,即使当 仅需要本地主机资源时,当今的一些万维网浏览器也试图连接到网络上,这样可能干扰一 些实施例的操作。 在各种实施例中,万维网浏览器105可以提供用户接口的基础,并且可以包括诸
如用于诸如JavaScript⑧、Flash 、 VBScript和/或者其它脚本编程语言的计算
机编程语言的脚本解释程序的语言解释程序,其中由runtime解释程序实时解释基于浏览 器的脚本、字节码集、或者语言。利用诸如HTML、XHTML、XML、异步JavaScript和XML(Ajax) 等等的各种万维网技术,万维网浏览器105可以提供在万维网浏览器105上运行万维网应 用程序的平台。 通常,应用程序管理框架IOO可以由万维网浏览器105支持的诸如一种或者多种 编程语言、脚本语言或者基于虚拟机(VM)语言的计算机编程语言编写。例如,诸如HTML、 CSS、 JavaScript、以及ECMAScript的各种标准万维网技术可以应用于创建应用程序管理 框架100。由于许多网页作者熟悉这些技术,利用应用程序管理框架的好处是显而易见的。 我们知道,利用万维网技术进行开发通常比诸如C、 C++等等的专用本机编程语言进行开发 要快得多,而且容易得多。此外,对于移动装置,这种本机编程语言通常要求昂贵的开发工 具。然而,对于万维网应用程序,一大批免费可用的或者廉价的软件开发工具使得更大的开 发商群体进行万维网应用程序开发成为可能。 如图所示,应用程序管理框架100可以包括并且封装一个或者多个诸如万维网应 用程序110-1至110-N的万维网应用程序,其中N是基于所描述的实施例的任意适当正整 数。万维网应用程序110-1至110-N均可以由万维网浏览器105支持的任何语言编写。万 维网应用程序110-1至110-N的和应用程序管理框架100的源代码在诸如台式计算机、移 动电话等等的一大批硬件和软件平台之间是高度可移植的。此外,中央服务器可以将一组 万维网应用程序110-1至IIO-N预载到应用程序管理框架100内,并且对许多计算装置提 供整个应用程序管理框架100。在一些实施例中,万维网应用程序110-1至IIO-N可以包 括,或者可以在应用程序管理框架100内由一个或者多个小型应用程序或者widget予以实 现。 应用程序管理框架IOO可以允许用户在万维网应用程序110-1至110-N之间快 速切换,而不必重新启动万维网浏览器105或者HTML应用程序环境。在各种实现中,例 如,多个万维网应用程序110-1至IIO-N可以同时运行在应用程序管理框架100内。在 一个实施例中,万维网应用程序110-1至110-N可以运行在应用程序管理框架100内的 HTML " iframe"上。当多个万维网应用程序已在运行并且驻留在内存中时,在万维网应用程 序之间进行切换通常需要非常短的时间,因此改善了用户感受。 应用程序管理框架100可以捕获用户交互事件,诸如鼠标点击、指示笔点击、键盘 输入、滚动键(jog wheel)输入、触摸屏输入、语音输入、按钮输入等等。应用程序管理框架 IOO可以选择性地将一个或者多个捕获事件送到包含在应用程序管理框架100内的一个或 者多个万维网应用程序110-1至IIO-N。这有利于创建一组一起具有一组通用用户输入控 件的万维网应用程序。此外,对于具有有限输入控件的装置,这样简化了万维网应用程序开 发。例如,在移动电话上,允许用一只手指控制万维网应用程序是有利的。在各种实施例中, 应用程序管理框架100可以支持用户能够利用单只手指或者"鼠标悬停(mouseover)"在万维网应用程序110-1至110-N之间快速切换,以保证用户感受愉快。 应用程序管理框架100可以对一个或者多个所包含的万维网应用程序110-1至 110-N的各方面进行控制。例如,应用程序管理框架100可以对哪个万维网应用程序在给定 时间对用户是可视的、万维网应用程序是否在有效处理数据、和/或者何时指示"更新"万 维网应用程序或者将万维网应用程序重新下载到万维网浏览器105上,进行控制。应用程 序管理框架100还可以提示一个或者多个所包含的万维网应用程序110-1至IIO-N重新下 载或者更新其数据。 在各种实施例中,应用程序管理框架100可以提供保证开发商将多任务引入一个 或者多个万维网应用程序l 10-1至110-N的机制。例如,通过利用隐藏式帧(hidden frame) 按计划"隐藏"万维网应用程序,应用程序管理框架100可以使万维网应用程序在背景中运 行,同时用户看到不同万维网应用程序的用户接口。 应用程序管理框架100还可以提供开发商将基于万维网的广告插入其万维网应 用程序的机制。例如,万维网应用程序110-1至IIO-N可以使用现有广告链路和脚本编制 方法,也是在包括计算机和移动电话的广泛的装置上看得见的。 一个或者多个万维网应用 程序110-1至IIO-N可以包括横幅广告和/或者它本身可以是受应用程序管理框架100控 制和配置的广告。我们明白,应用程序管理框架100使得对最终用户提供免费或者低成本 万维网应用程序的商务方法成为可能,在这种方法中,广告收入可以在万维网应用程序开 发商、装置制造商、服务提供商、甚至最终用户之间共享。 图2示出适于实现各种实施例的计算装置200。如图所示,计算装置200可以包括 万维网浏览器205和万维网虚拟机(WebVM)210。在各种实施例中,应用程序管理框架100 可以与万维网浏览器205交互,如上所述。在这种实现中,应用程序管理框架100的能力可 以与WebVM 210的能力组合。 通常,WebVM 210可以实现本地万维网主机,以在计算装置200上提供服务器功 能,并且对万维网浏览器205使用本地应用程序。当在计算装置200上实现为服务器时, WebVM 210可以支持多个应用程序并且可以提供对多个应用程序的访问。WebVM 210可以 在计算装置200上本地运行诸如PHP、Python、PERL或者CGI编程环境的服务器端代码。为 了能够访问计算装置200的本地资源,WebVM 210还可以通过S0AP、XML PRC、REST等等实现 万维网方法编程接口和万维网服务扩展。因此,计算装置200可以提供用以访问诸如文件 系统、电话簿、媒体储存库(media store)、数据库、硬件部件(例如,照相机、麦克风等等)、 软件部件、和/或者计算装置200的其它受控资源的本地资源的服务器端接口。这种接口 还可以实现服务器端代码,用以允许用户对诸如电话簿、媒体储存库等等的本地资源进行 写入。 WebVM 210可以执行诸如安全HTTP(http)和/或者其它登录方法的保密措施,以 获得用户验证,从而防止未授权存取和使用应用程序和/或者其它资源。可以配置该WebVM 210,以在计算装置200上的应用程序与万维网浏览器205之间起媒介作用,从而代理本地 服务,并且确保只有可信实体可以准许访问特定功能。WebVM 210将可以实现各种基于web 的保密模型和访问限制,以对从请求访问计算装置200的本地资源的万维网浏览器进行函 数调用进行评估。 当与WebVM 210组合时,应用程序管理框架100具有几个附加优点。例如,在应用程序管理框架100内的一个或者多个万维网应用程序110-1至IIO-N可以与运行在WebVM 210内的本地服务器上的本地万维网应用程序或者本机应用程序交互,它们都在计算装置 200本身内。在计算装置200未连接到网络上的时间内,或者在需要将万维网应用程序的数 据本地存储到计算装置200上的时间内,这是具有优点的。在各种实施例中,诸如widget 的驻留或者非驻留万维网应用程序可以具有通过由WebVM 210实现的脱机代理对计算装 置的起始屏幕(home screen)发布通知的能力。 此外,应用程序管理框架100上的万维网应用程序可以使用WebVM 210的代理服 务,从与万维网应用程序来源于其的网站不同的网站存取数据或者服务。通常,用于万维网 应用程序的"起始策略"避免这种行为,以致运行在万维网浏览器上的脚本只能存取或者修 改位于该脚本来源于其的网站上的数据。当与WebVM 210组合时,应用程序管理框架100 可以提供根据该限制工作的机制。然后,在WebVM 210内实现适当的保密策略。
此外,WebVM 210可以频繁高速缓存所需数据,以便它可以立即被万维网应用程序 使用,而无需要求用户等待利用网络存取数据。这显著改善用户的整体感受,以致即使连接 到网络上的速度慢或者不能连接到网络上,用户仍感觉数据总是可用的。
图2示出WebVM 210的一种可能实现,配置WebVM 210,以在诸如移动装置(例如, 移动装置IOO)或者台式计算机的计算装置200上运行。在各种实施例中,可以如2006年 12月18日提交的名称为"System for Running Web ApplicationsOffline and Providing Access to Native Services"的第11/612, 282号美国专利申请所述,实现web虚拟机 (WebVM) 210,引用该美国专利申请的全部内容供参考。 如图所示,WebVM 210通过连接215直接与万维网浏览器205交互,该连接215由 运行在计算装置200上的http网络连接予以实现。通常,这可以由连接到本地主机IP地 址(例如,127. 0. 0. 1)或者其它适当地址或者地址与端口的组合的万维网浏览器205激活。 因此,WebVM 210可以在不同的地址端口组合上以及在不同的保密等级上同时提供不同的 应用程序,其中每个应用程序对于本地资源有不同的许可等级和存取权限。
WebVM 210通过包括设备内存API 238、设备文件API243、设备线程API 247、以及 专用设备函数和API 253的应用程序接口 (API)连接到设备服务。请注意,WebVM 210利 用API 238、243和247连接便于进行诸如内存访问、文件系统和任务/线程的内部操作并 且还用于在不同类别的设备和操作系统之间移植WebVM 210的资源。 接口 253可以由一个或者多个表示WebVM 210的扩展性质的元接口予以实现。利 用SOAP、 REST或者其它万维网服务绑定、运行在WebVM 210上或者通过万维网浏览器205 运行的万维网程序,诸如通过Ajax,可以对该计算装置200存取特定服务。例如,计算装置 200可以包括可用作C++或者Java service的机载照相机的电话簿或者数字媒体储存库。 在外部服务器不依赖于能够根据万维网编程技术存取本地服务并且保持客户机_服务器 编程模型,而万维网保密模型原封不动的情况下,利用WebVM 210通过接口 253的接口能 力,可以使万维网应用程序本地运行在计算装置200上(例如,移动装置或者台式计算机)。 例如,基于万维网的电话簿应用程序可以通过接口 253存取计算装置200上的本地电话簿, 然后,在本地将联系信息存储在本地SQL数据库213上,以产生混合功能。之后,同一个万 维网应用程序可以通过互联网将通过接口 255检索到的电话簿信息发送到或者存储到在 线门户网站。
根据一些实施例,接口 253可以包括设备主叫用户IDAPI (Device Caller ID API)。利用SOAP、 REST或者其它web服务绑定,运行在WebVM 210上的或者通过万维网浏 览器205运行的,诸如通过Ajax运行的web程序,可以对计算装置202存取特殊服务。例 如,计算装置202可以包括电话簿、通话记录(call log)以及对计算装置202上的主叫用 户10信息的存取,它们可以用作0++或者Java service。 在运行中,如由万维网浏览器205与网络代理260通过通路215的交互所描述的, WebVM 210运行http服务器堆栈的几个部分。网络代理260可以包括实现软件堆栈的基 于规则的网络代理引擎,该软件堆栈使输入的网络流量或者通过接口 255流向外界,或者 通过通路245流向http服务器265。例如,XHTML特许的并且运行诸如JavaScript或者 VBScript的本地脚本语言(在万维网浏览器205中)的基于浏览器的应用程序可以请求 新资源,诸如新页面或者XMLHttpRequest型数据调用。该请求通过网络代理260从万维网 浏览器205到达http服务器265,以进行处理。如果该请求是予万维网网页向服务器(例 如,万维网广告服务器),或者类似可寻址资产查询万维网网页,则http服务器265可以取 出该资源,然后,将它送回万维网浏览器205。 http服务器265可以从几个本地对象之一获 取资源,该本地对象包括由http服务器265和通过通路240连接到http服务器265的本 地应用程序捆绑管理器(local即plication bundle manager) 235实现的本地安装文件系 统。 如果该请求是对服务器端脚本语言(例如,PHP 、 Python 、 Java企业版(Java Enterprise Edition) 、 servlet或者公共网关接口脚本)进行的数据调用或者回调函数, 则http服务器265将该请求送到处理引擎。对于服务器端脚本语言,该请求通过通路270 被送到服务器端语言支持处理引擎275,该服务器端语言支持处理引擎275处理该请求、提 供语言具体特征、以及保持会话管理信息或者服务器端变量。如果该请求是通过万维网描 述语言界面(web description language interface)(例如,SOAP、WSDL、REST、XML远程序 调用或者类似功能)的,则该请求可以通过通路285被送到用于如上所述完成该请求功能 的专用万维网服务管理器223。还可以利用服务器端语言支持处理引擎275完成通过通路 290到专用万维网服务管理器223的调用,从而使得或者仅Ajax应用程序(例如,仅具有基 于浏览器的代码和逻辑的应用程序)或者基于服务器的代码和逻辑能够享用SOAP/REST/ Web服务插件。 WebVM 210也可以访问通过通路217连接到万维网服务管理器223的本地SQL数 据库213。本地SQL数据库213有能力存储最终用户数据,诸如爱好、地址或者概况信息。 在一些实施例中,本地SQL数据库213可以存储广告和主叫用户ID信息。通过运行在服务 器端语言支持处理引擎275上的服务器端脚本或者通过直接通过万维网服务管理器223发 出的直接万维网服务软件调用(例如,SOAP调用),运行在万维网浏览器205上的应用程序 可以访问本地SQL数据库213。本地SQL数据库213还可以通过通路203连接到数据同步 引擎225。应用程序资源以应用程序捆绑方式存储在由应用程序捆绑管理器235实现的数 据库中,该应用程序捆绑管理器235通过通路240直接连接到http服务器265。由应用程 序捆绑管理器235实现的数据库还通过通路230连接到数据同步引擎225。
在各种实现中,在具有HTTP服务器部件或者没有HTTP服务器部件的情况下,利用 消息传递接口 250与万维网服务管理器223交互,也可以提供应用程序捆绑225服务。这样可以使应用程序完成基于非套接字的直接服务,从而以有效方式访问本地硬件或者存储器。接口 250的例子可以包括诸如Li皿x DBus的消息内传递框架或者其它适当消息传递框架。例如,万维网服务管理器223可以通过直接消息传递接口与应用程序管理框架100通信。在这种模型中,该应用环境不仅可以用于这种浏览器,而且可以用于浏览器类的应用程序。换句话说,诸如webkit的浏览器供应引擎(a browser rendering engine)提供用于执行JavaScript/ECMAscript的HTML和帮助程序库,但是它本身不是浏览器应用程序。即,用户不认为它们处于浏览器环境。 应用程序捆绑管理器235管理整个万维网应用程序资产。应用程序可以由包括万维网应用程序的一批必要应用文件的万维网归档文件提供服务。万维网归档文件可以包括万维网应用程序的万维网资产的捆绑或者封装,该万维网应用程序包括索引文件、HTML文件、脚本文件(例如,JavaScript或者诸如PHP、 Python或者Perl的服务器脚本)、图形(例如,JPEG、 GIF)、动画、字典、以及其它万维网应用程序部件。利用诸如zip、 gzip或者zlib、或者其它适当封装方案的文件归档库,可以封装、存储以及压縮该万维网归档文件。
当对可以作为包括该应用程序资产的原子捆绑的一部分被存储的特定文件进行请求时,网络代理260、http服务器265、以及应用程序捆绑管理器235顺序工作,以解析该文件,就如同它宿主在因特网服务器上一样。这些部件还以与浏览器高速缓存采用的同样方式工作,以解析相同的原始策略保密执行。换句话说,xyz. foo. com/mypage. xhtml可以被本地存储,但是不像以自动(非程序控制)方法工作的浏览器高速缓存那样以程序方式被访问。明确地解析到本地地址(诸如运行在127. 0. 0. 1上的端口, S卩,http回送地址(httploopback address))的统一资源定位器(URL)通过http接口 210解析到本地万维网浏览器205,并且被送到本地万维网浏览器205。在某些情况下,万维网浏览器205并不清楚地知道实际提供该文件的地址。 利用同步引擎225,提供WebVM 210的附加功能,以分别通过通路230和203,更新本地存储的应用程序,诸如存储在应用程序捆绑管理器235的数据库和本地SQL数据库213内的那些应用程序。这样可以使以捆绑方式存储的应用程序作为单个文件以原子方式存储在计算装置200上。然后,同步引擎225可以管理几个这种应用程序的存储、更新、升级以及预订状态。例如,服务器可以存储关于本地同步引擎225要增强的预订应用程序的信息。当该预订过期时,该应用程序捆绑将失效或者被删除。该功能将与专用runtime(例如,Java微型版(Java MicroEdition))曾经相关的应用程序存储器类型扩展到基于万维网的应用程序。 此外,同步引擎225可以存储、同步、并管理存储在本地SQL数据库213内的应用数据。在典型(基于服务器的)应用中,用户数据(例如,基于电子商务的网店(web store)购物车信息或者照片共享网站的相片)可以存储在该网站的这种数据库上。然而,利用WebVM 210,通过万维网服务调用,可以立刻获得利用基于万维网的协议在本地存储应用数据的能力。此外,同步引擎225于是可以将存储在本地SQL数据库213内的用户数据移回位于因特网URL的标准运行服务器中。因此,同步引擎225允许将应用程序和用户数据都本地存储在计算装置200上。如果计算装置200无法找到,或者用户获得一个新的、可能被升级的装置,则可以将该用户的应用程序或者应用数据流畅无缝地重新送到该新装置。
同步引擎225还可以利用通路220通过网络代理260访问外部因特网。这可以使同步引擎225移动代码资产以及存储在应用程序捆绑管理器235的数据库或者本地SQL数据库213内的用户数据和应用数据,并且根据预订或者提供用户应用程序的商业规则保持它们。由于它利用数据库存储应用程序捆绑和用户数据,所以WebVM 210还可以对不同的用户支持不同的应用许可,以允许某些用户访问比其它用户更多或者不同的数据。
WebVM 210还可以实现2006年5月8日提交的名称为"Method for SynchronizingSoftware Application and UserData for Asynchronous Client—Server and Peer toPeerComputer Networks"的第11/382, 058号美国专利申请描述的各种技术,并且引用该美国专利申请的全部内容供参考。因此,WebVM 210可以支持创建脱机万维网应用程序并且对脱机产生的、之后必须与一个或者多个中央服务器一致而不存在数据冲突的相关用户数据进行管理。这样提供了不同用户数据中的哪个版本是新的以及需要将哪个附加到中央服务器的信息。这应用于实际万维网应用程序文件,以致除了使用户产生明显的在线和脱机感受的用户数据之外,还可以使软件应用程序同步。可以以允许对等同步和filedata分布的方式,分布数据集。为了提高计算机网络上的可用带宽的效率,可以将要求通过网络使数据集同步的事务数据的数量降至最少。 WebVM 210还可以实现脱机自动代理高速缓存,如2007年10月16日提交的名称为"0ffline Automated Proxy Cache forWeb Applications"的第11/873, 305号美国专利申请所述,在此引用该美国专利申请的全部内容供参考。脱机自动高速缓存可以支持调度和自动重发更新数据的请求。在各种实施例中,当该公布应用程序(publishingapplication)脱机时,可以利用调度参数自动检索代表公布应用程序的请求内容的更新版本(例如,被关闭、runtime未运行、VM未运行等等)。在这种实施例中,即使当该公布应用程序没有运行时,WebVM 210仍可以代表该重复调度运行的公布应用程序进行重复的Ajax请求。该公布参数可以包括调度参数,例如,该调度参数包括时间间隔参数,定义了请求数据更新的时间间隔;历史参数,定义了可以同时高速缓存的最大数量的数据版本;数据期满参数,指定了高速缓存中数据的到期时间;重试参数,定义了重试连接的次数;等等。
利用覆盖写(overwrite)(例如,如果公布应用程序发送不带调度参数的同样请求,则取消调度),利用显式请求删除(例如,如果公布应用程序发送参数,以通过序列号删除公布的请求,则取消自动调度的请求),利用应用程序删除(例如,如果用户或者操作系统删除该公布应用程序,则从该系统删除与该应用程序相关的全部自动公布和代理请求),利用程序清除(例如,API通过代理公布程序(proxy publisher)退出,以挂起给定的或者全部代理公布请求),和/或者利用超时(例如,如果给定的公布应用程序没有在诸如两个星期的给定时间内更新代理公布请求,则该代理公布程序可以使该重复代理请求老化移出、停止重复、并且与任何存储数据和规则一起从该队列中删除),可以终止重复/自动调度请求。 在各种实施例中,利用WebVM 210,在该应用程序确定的名称空间内,可以轮询上述一些或者全部公布参数。这种名称空间轮询可以自动执行。例如,如果诸如MySuperWidget. wgt的公布应用程序调用WebVM 210,则存储的查询和请求数据会被放在MySuperWidget作为前缀的名称空间或者表内。这样,不同的应用程序可以存储具有代理的请求,并且可以保持各结果分离,以避免命名冲突(例如,两个不同的销售商使用相同的变量名)。对于某些实现,明确鼓励反向URL命名(例如,com. lampdesk. MySuperWidget)。此外,还可以对通信间的消息提供公用名称空间。 WebVM 210还可以实现应用程序runtime环境,如2008年1月4日提交的名称为"System and Methods for ProvidingGra皿lar Security for Locally Running ScriptedEnvironmentsand Web Applications"的第12/019, 362号美国专利申请所述,引用该美国专利申请的全部内容供参考。应用程序runtime环境可以提供更精细的粒度以及在函数级的控制,而非为了控制应用程序而强制执行全有或者全无方法,在这种方法中,该应用程序或者完全自由运行或者被完全禁止运行。特别是,应用程序runtime环境允许基于脚本runtime的应用程序利用函数调用等级控件,以签约方式调用本地函数。
对于万维网归档文件,可以将万维网应用程序的一批万维网资产处理为可以签约并且可以以安全方式分布的单个文件。当捆绑万维网归档文件,以提供API (例如,S0AP调用)的细节时,自动产生签约文件(例如,显化文件(manifest file)),当该应用程序在认证机构注册时,应用程序以签约方式使用。当设置了应用程序使用的本机函数(nativefunction)清单时,签署机构和最后安装该应用程序的系统可以将该应用程序试图使用的函数与被签署并被特许的函数清单进行比较。这为目标操作系统提供了额外保密层并且实现系统范围的保密策略,以确定是否允许安装应用程序以及应用程序使用的函数是否违反该策略。 可以将执行函数调用的判定实时分派给操作系统,以致整体保密性与该操作系统的总体保密策略一致。通过使操作系统负责允许函数调用,API级的平台级保密控制可以通过多个runtime环境以及要求runtime环境仅跟踪哪个应用程序在请求什么服务予以实现。因此,该操作系统可以保持对保密性和访问脚本应用程序的控制,并且将必须遵从各种应用程序runtime环境的保密机构的数量最小化。 该应用程序runtime环境还可以以统一方式将签约过程和安装虚拟机或者基于脚本runtime层的应用程序回连到核心操作系统。特别是,当准许安装应用程序时,该操作系统可以接受基于签约脚本或者字节码的应用程序。此外,利用IP地址和端口地址组合,运行在同一个本地计算装置上的多个单独万维网应用程序可以被跟踪并且保持独立。因此,在运行在同一设备上的多个应用程序中,可以强制赋予不同的保密等级,并且即使应用程序之一是"流氓"应用程序,也可以保持应用程序的完整性。 WebVM 210还可以执行代理公布程序,如2008年5月7日提交的名称为"Automatic Conversion Schema for Cached WebRequests"的第12/116, 697号美国专利申请所述,引用该美国专利申请的全部内容供参考。该代理公布程序可以实现自动转换模式,该自动转换模式可以使得来自公布应用程序的数据结果被显示应用程序而非被公布应用程序提取和显示。例如,代理公布程序可以接收来自公布应用程序的请求,以检索来自数据服务器的数据结果。该请求可以包括到数据服务器的通路和所附公布参数。根据自动转换模式,该公布参数可以包括与该公布应用程序相关的解码参数,用于允许显示应用程序而非该公布应用程序解码该数据结果的变量,并且变换用于显示的该解码变量。该代理公布程序可以高速缓存包括所附公布参数的请求,并且检索来自该数据服务器的数据结果。该代理公布程序可以本地存储该数据结果以及高速缓存的公布参数,并且通过将该高速缓存的数据结果和公布参数送到该显示应用程序,可以对来自显示应用程序对与该公布应用程序相关的数据的查询做出响应。
在典型实施例中,该公布应用程序可以包括以JavaScript和XHTML编写的XHTMLwidget。该代理公布程序可以接收来自公布应用程序的通过因特网从远程数据服务器上检索数据结果的请求。来自该公布应用程序的该请求可以包括到诸如统一资源定位器(URL)的远程数据服务器的通路和所附公布参数。 通过高速缓存包括所附公布参数的请求并且通过到远程数据服务器的通路,该代理公布程序可以处理来自公布应用程序的请求。通过返回数据结果,该远程数据服务器可以以常规方式做出响应。该代理公布程序可以接收来自远程数据服务器的数据结果,并且通过在本地存储该数据结果和该公布应用程序的高速缓存公布参数,处理该数据结果。
该公布参数可以包括与该公布应用程序相关的解码参数,用于允许显示应用程序而非该公布应用程序解码该数据结果的变量并将它变换为用于显示的解码变量。解码参数可以命名为公布最小化表示的该公布应用程序而提取的变量。例如,通过仅公布一天的高温,widget可以公布天气应用程序的最小化表示,或者通过仅公布未读消息的数量,widget可以公布电子邮件应用程序的最小化表示。 解码参数还可以包括数据提取规则和数据格式化规则,用于指示该显示应用程序如何从数据结果(例如,响应文本)中提取万维网请求数据(例如,天气)、如何格式化该数据(例如,将该字符串与提取的万维网请求数据组合在一起)、以及如何显示该数据(例如,显示诸如URL或者文本的附加信息以及该响应文本)。 随后,该代理公布程序可以接收来自该显示应用程序的查询。在某些情况下,该显示应用程序可以从特定命名请求中请求数据。例如,该显示应用程序可以请求与公布应用程序相关的数据。在其它情况下,该显示应用程序可以向该代理公布程序要求当前存储的非专用(公布的)请求数据的全部名称清单。如果该显示应用程序不要求特定名称,则作为默认,该代理公布程序可以返回全部的命名规则。 —收到该显示应用程序选择的可用名称后,该代理公布程序可以将包括本地存储数据结果和公布参数的匹配结果送到该显示应用程序。通过利用该提取规则提取和解码该变量,并且利用该格式化规则以适当方式显示该提取值,该显示应用程序可以处理该匹配结果。在一些实施例中,通过利用该数据提取规则从该数据结果中提取变量以及将提取的变量和数据格式化规则送到该显示应用程序,该代理公布程序可以减少该显示应用程序所要求的处理。 通常,当该公布应用程序是基于万维网的应用程序时,该显示应用程序可以由阅读器应用程序或者不能提供基于万维网的标准内容的万维网浏览器外的移动装置起始屏幕(homescreen)予以实现。例如,该显示应用程序可以包括0/0++活动的起始屏幕(activehome screen)、新闻聚会器(newsaggregator)、广告牌(billboard)或者移云力装置证券行情收录器(mobile device ticker),该移动装置证券行情收录器仅显示少量信息,但是它要求高速缓存的数据结果的变换可以使用。利用公布应用程序提供的解码参数,该显示应用程序可以将高速缓存数据变换为可以使用的格式。该显示应用程序一旦获得可用格式的变量,该显示应用程序就可以以另一种格式重新公布该数据。 根据自动转换模式,该公布参数可以包括解码参数,用于允许该显示应用程序解码该数据结果的变量并变换用于显示的解码的变量。该解码参数可以包括名称参数(例如,var—name)和变量名,用于使该公布应用程序命名被提取的变量。该变量名可以由外部应用程序使用,以寻址该万维网应用程序保留的参数。该变量名可能不是脱机代理请求编 码的名称,但是它是外部应用程序所指的名称(例如,"TempJli")。 解码参数可以包括数据提取规则参数(例如,extraction_rules, var_extract_ regex)和用于从该响应或者数据结果中提取信息的指令。该公布应用程序可以使该代理 公布程序将用于从该响应中提取信息的指令与该信息请求一起存储。外部应用程序(例 如,显示应用程序)或者代理公布程序可以使用该提取指令,从存储的脱机代理请求中提 取(发现)由该名称参数(例如,varjame)所指的信息。 该提取指令可以以诸如PERL regex的服务器端脚本语言由规则表达式(regex) (例如,JS0N call) :get_byteS [23-28]或者"捕获规则的表达式",予以实现。该提取指令 还可以通过Xpath或者XQuery予以实现。该提取指令还可以包括XSLT变换。该提取指令 还可以包括定制程序,该定制程序本身是用于处理该请求的指令。例如,用于从该数据结果 提取信息的存储指令可以由含有JavaScript的XHTML网页予以实现。
解码参数可以包括数据格式化规则参数(例如,formatting—rules)和用于以外 部应用程序(例如,该显示应用程序)使用的格式显示该数据结果中的变量的指令。该公 布应用程序可以使该代理公布程序将一组表示如何显示和格式化该提取数据的任选独立 指令与该信息请求一起存储。该格式化指令可以包括字符串,该字符串就是提取应用程序 在警告对话中可以显示的内容。该参数可以利用不同语音参数进行复制。该格式化指令可 以是变换规则集,该变换规则集取该提取值并且以诸如通过XSLT的特定格式(例如,如果 2007.04. 1 l是该日期,则通过regex将它变换为April 11,2007)显示它。该提取指令用于 提取位于由该调用应用程序(例如,公布应用程序)形成的URL的服务器返回的数据,而该 格式化指令详细描述该提取数据应当如何出现在位于该调用应用程序之外的特定应用程 序(例如,显示应用程序)中。 该格式化指令可以由独立于提取该数据使用的regex的规则表达式(regex)予以 实现。该格式化指令还可以包括XSLT变换。该格式化指令还可以依据其自己的权利由存储 程序予以实现。例如,该存储程序本身可以作为参数传送,它携带该提取数据,并且以该调 用应用程序之外的外部应用程序可以使用和处理的方式,显示或者格式化该提取数据。例 如,该存储程序可以包括诸如乂1^1^+JavaScript的脚本应用程序。该显示和格式化指令还 可以由为了格式化该提取数据而创建的定制语言予以实现。该显示和格式化指令还可以由 A C/C++ sprintf ()授权串函数参数(c即able string function parameter)予以实现。
该解码参数可以包括专用参数(例如,set_request_private),该专用参数可以 由标志集予以实现,因此,脱机代理请求不能被外部应用程序读取。通过指示代理从不鼓励 来自特定应用程序的请求来实现保密,该公布应用程序可以有意不暴露其数据。这样,可 以防止特定应用程序接收给定的公布应用程序的高速缓存数据结果和公布参数。因此,该 公布应用程序可以进行脱机请求,该脱机请求是使用其它应用程序所专用的(而不是共享 的)。 该公布参数可以包括事件参数或者命令,用于要求该代理公布程序代表请求处理 之外的应用程序执行动作,以使万维网应用程序如常规应用程序一样工作,但是具有背景 唤醒任务。该任选参数是否可以执行取决于保密等级和操作系统。该事件参数可以包括 wake—upon(条件)参数或者命令,用于当满足特定脱机代理条件(例如,收到电子邮件)时,请求该代理公布程序唤醒(启动)应用程序。是否实际启动该应用程序由保密许可或 者操作系统决定。该代理公布程序可以执行操作系统服务,以使应用程序睡眠,从而公布可 以读取并且可以传送到其它应用程序的服务。例如,C/C++应用程序可以利用该代理公布 程序告示自身更新以及提出共享的可公布结果的请求。通常,当满足特定唤醒条件时,任何 被编译(静态链接)的应用程序都可以利用该代理公布程序进行唤醒。
该事件参数可以包括alert—upon(条件)参数或者命令,用于当满足条件(例如, 公布应用程序需要注意)时,请求该代理公布程序对该操作系统发出警告。这可以使万维 网应用程序通过该代理公布程序告示信息。该响应可以是对话框中告示的消息或者该装置 的起始屏幕/空闲屏幕上的文本或图标通知。例如,运行在蜂窝电话装置上的脚本widget 应用程序可以提供电子邮件查看服务,并且可以设定事件,以致当该代理公布程序发现新 电子邮件时,将事件请求发送到该装置的空闲屏幕,以使该用户知道查看其电子邮件。警告 参数还可以包fiH壬选alert_msg参数禾口^f壬选alert_urgency参数。 可以根据操作系统的保密策略,限制公布应用程序的脱机权能。例如,该代理公布 程序可以与该操作系统交互保密策略和许可,以限制公布应用程序脱机权能的使用。在一 些实施例中,为了保密目的,该代理公布程序包括应用程序签名ID或者参考页,用于操作 系统决定是否响应唤醒或者变更条件而执行请求。 WebVM 210还可以如2008年4月2日提交的名称为"Systemand Methods for Providing Access to a Desktop andApplications of a Mobile Device,,的第12/061, 179 号美国专利申请所述予以实现,引用该美国专利申请的全部内容供参考。因此,宿主在计算 装置200上的一个或者多个万维网应用程序被配置,可以由运行在与该计算装置200分离 的终端上的万维网浏览器进行访问。在各种实现中,该终端显示的UI可以包括与该计算装 置200的UI相比得到增强的界面。例如,可以配置移动装置上的应用程序,以提供包括到该 移动装置的浏览器的中心电话界面的UI,并且配置该移动装置上的应用程序,以当连接到 该终端的浏览器时,提供包括增强(例如,较大/较好/不同)界面的UI。通常,应用程序 可以提供在该移动装置上进行显示的简化界面和利用该终端的较大和/或者更有用的资 产(例如,较大屏幕、全尺寸键盘、鼠标、内存、浏览器插件、硬件等等)优势的增强界面。例 如,当处于电话模式时,使用四向导航和2个软键的移动装置上的应用程序可以对使用诸 如全键盘和鼠标的导航硬件并且在该终端的较大屏幕上显示更多内容的终端提供增强UI。
采用基于万维网的技术可以允许移动装置传送诸如小widget的多功能数据应用 程序或者甚至较大的传统应用程序。例如,在某些情况下,可以配置移动装置,以宿主并且 运行PC应用程序。在这种情况下,当被该终端访问时,可以运行该应用程序的增强版,而当 被该主机移动装置访问时,可以运行该应用程序的简化版。可以配置该应用程序,以支持在 该处理中无需要求修改该应用程序的两种环境。这样,该应用程序可以检测到其环境,并且 当被该移动装置使用时和被该终端使用时,该应用程序的运行不同。 图3示出用于初始化应用程序管理框架100的逻辑流程300的一个实施例。可以 由各种系统和/或者装置执行逻辑流程300,并且逻辑流程300可以根据一组给定设计参数 或者性能约束的要求,由硬件、软件、固件和/或者它们的任意组合予以实现。例如,逻辑流 程300的一个或者多个操作可以由逻辑器件(例如,计算机、处理器)执行的可执行程序指 令予以实现。
在该实施例中,用户指示万维网浏览器105开始工作,以初始化应用程序管理框 架100(步骤302)。例如,通过利用命令行自变量启动万维网浏览器105,或者通过提供统 一资源定位器(URL),用户可以指定应用程序管理框架100的脚本的协议、地址和名称。万 维网浏览器105利用该信息启动应用程序管理框架100 (步骤304)。 在该典型实施例中,应用程序管理框架100扫描其文档根,以发现可用万维网应 用程序资产(步骤306)。然后,应用程序管理框架100装载第一万维网应用程序的万维网 应用程序资产(步骤308)。如果附加的万维网应用程序可用(步骤310),则应用程序管理 框架100对每个万维网应用程序重复该处理(步骤312)。当全部万维网应用程序的所有 万维网资产被装载时(步骤314),应用程序管理框架100激活第一万维网应用程序(步骤 316)并且准备好接收用户输入事件(步骤318)。 我们明白,逻辑流程300示出用于初始化应用程序管理框架100的典型顺序,并且 可以利用替换步骤在该应用程序管理框架IOO内安装一个或者多个万维网应用程序。例 如,在某些情况下,万维网应用程序可以直接插入该应用程序管理框架100的源代码中。此 外,或者作为一种选择,在用户启动或者请求时,WebVM 210可以存储一个或者多个要由该 应用程序管理框架100装载的万维网应用程序。 在各种实施例中,一系列万维网应用程序可以存储在用户的计算装置上的 "cookie"中,因此,可以重装或者配置该万维网应用程序。在某些情况下,可以通过服务器 端逻辑(例如,SOAP、REST、JSON等)提供该系列万维网应用程序。 一些实施例可以利用服 务器端语言(例如,PHP)构建可以由用户和/或者万维网应用程序开发商定制的万维网应 用程序启动器。特定实施例还可以将用户爱好、配置或者万维网应用数据保存到在用户装 置上(例如,通过WebVM 210)或者在网络服务器上本地实现的数据库内。此外,该应用程 序管理框架100可以兼容诸如Adobe PDF、Flash 、VMRL等等的"插件(plug-in)"技术。
图4示出该应用程序管理框架100处理事件的逻辑流程400的一个实施例。逻辑 流程400可以由各种系统和/或者装置执行,并且它可以根据一组给定设计参数或者性能 约束的要求,由硬件、软件、固件和/或者它们的组合予以实现。例如,该逻辑流程400的一 个或者多个操作可以由逻辑器件(例如,计算机、处理器)执行的可执行程序指令予以实 现。 在该实施例中,该应用程序管理框架100对诸如用户交互事件的一个或者多个事
件进行处理。在装载了该应用程序管理框架ioo和万维网应用程序后,该应用程序管理框
架100就准备好处理事件(步骤402)。在该典型实施例中,用户可以通过在万维网应用程 序图标上点击鼠标按钮触发事件(步骤404)。该应用程序管理框架IOO捕获用户输入(步 骤406)。然后,该应用程序管理框架IOO使选择的万维网应用程序的图标高亮(步骤408), 并激活选择的万维网应用程序(步骤410)。 一旦万维网应用程序被激活,该应用程序管理 框架100就对该用户事件做出响应(步骤412)。 如果事件发生在选择的万维网应用程序中(步骤414),则该应用程序管理框架 IOO可以将该事件送到选择的万维网应用程序(步骤416)。如果事件发生在该应用程序管 理框架100的用户界面内,诸如用户点击不同万维网应用程序图标(步骤418),则该应用程 序管理框架100可以处理该事件(步骤420)。在该典型例子中,该应用程序管理框架100 使选择的万维网应用程序的图标高亮(步骤408),然后,继续进行该逻辑流程400的后续处理。 图5示出适合实施各种实施例的移动装置500。如图所示,移动装置500可以由组 合手持计算机和有时被称为智能电话的移动电话予以实现。我们明白,该移动装置500可 以包括具有手持形状系数的计算装置。尽管作为例子利用由智能电话实现的移动装置500 描述了特定实施例,但是该移动装置500可以由其它类型的用户设备(UE)或者无线计算装 置,诸如移动电话、个人数字助理(PDA)、组合移动电话/PDA、手持装置、移动单元、用户台、 游戏机、发信装置(messaging device)、多媒体播放器、寻呼机、或者其它适当移动通信装 置,予以实现。 通常,根据所描述的实施例,可以配置该移动装置500,以支持或者实现蜂窝语音 通信、无线数据通信以及计算能力。该移动装置500可以包括用于实现这种功能的各种部 件,例如,各种部件可以包括印刷电路板(PCB)、一个或者多个处理器(例如,主处理器、无 线电处理器)、一个或者多个收发信机(例如,语音通信收发信机、数据通信收发信机、GPS 收发信机)、内存(例如,易失性或者非易失性、可移动的或者不可移动的存储器、可擦或者 不可擦存储器、可写或者可重写存储器)、内部和/或者外部天线、可充电电池、等等。
通过利用移动网络进行通信,诸如码分多址(CDMA)网络、全球移动通信系统 (GSM)网络、北美数字蜂窝式(NADC)网络、时分多址(TDMA)网络、扩展TDMA(E-TDMA)网络、 窄带高级移动电话服务(NAMPS)网络、诸如宽带CDMA(WCDMA)网络、CDMA-2000网络、通用 移动电话系统(UMTS)网络的第三代(3G)网络等等,该移动装置500可以实现语音和无线 数据通信功能。 该移动装置500还可以支持包括因特网接入的无线广域网(WWAN)数据通信服务。 WWAN数据通信服务的例子可以包括演进-数据优化的或者演进-仅数据(EV-DO)、演进数 据和语音(EV-DV) 、 CDMA/1XRTT、具有通用分组无线服务系统的GSM(GSM/GPRS)、增强数据
速率的全球演进(EDGE)、高速下行链路分组接入(HSDPA)、高速上行链路分组接入(HSUPA)
坐坐 寸寸。 根据电气电子工程师学会(IEEE) 802. xx系列协议,诸如IEEE 802. lla/b/g/ n系列标准协议和变型(也称为"WiFi") 、 IEEE 802. 16系列标准协议和变型(也称为 "WiMAX") 、 IEEE802. 20系列标准协议和变型等等,该移动装置500可以实现无线局域网 (WLAN)数据通信功能。 还可以根据短程无线网络,诸如根据蓝牙技术联盟(SIG)系列协议、技术规范、配 置文件(profile)等等,提供BluetOOth⑧数据通信服务的个人无线局域网(PAN),布置 该移动装置500,以执行数据通信功能。短程无线网络的其它例子可以采用红外(IR)技术 或者近场通信技术和协议,诸如包括无源或者有源射频识别(RFID)协议和装置的电磁感 应(EMI)技术。 该移动装置500可以包括各种输入/输出(I/O)接口,用于与其它装置建立连接。
例如,该1/o接口可以包括串行连接端口、 iR端口、Bluetooth⑧接口、网络接口、wiFi
接口、WiMAX接口、蜂窝式网络接口、无线网络接口卡(WNIC)、收发信机等等。根据所描述的 实施例,这种连接可以利用各种有线和/或者无线通信介质予以实现。尽管作为例子利用 特定通信介质描述了特定典型实施例,但是我们明白,利用各种通信介质和相关技术,可以 实现在此讨论的原理和技术。
在一些实施例中,连接可以包括有线连接,诸如通用串行总线(USB)连接(例如,
usB主机、usB网)、串行总线接口 (SBi)链接(例如,Fire Wire )或者其它适当有线连
接,以当非常靠近时,将该移动装置500直接连接到(例如,系留、插入)装置。在其它实现
中,连接可以包括短程无线连接(例如,Bluetooth⑧连接、IR连接),以当非常靠近时, 将该移动装置500通信连接到装置。在某些实现中,根据所描述的实施例,该连接可以包括 该移动装置500与装置之间的网络连接,诸如WiFi连接、WiMax连接、以太网连接、蜂窝式 网络(例如,1G/2G/3G)连接、或者其它适当分组数据或者交换连接。 根据所描述的实施例,该移动装置500可以包括诸如系统程序和应用程序的各种 软件程序,以提供计算能力。典型系统程序可以包括但并不局限于包括操作系统(OS)、 设备驱动器、编程工具、实用程序、软件库、应用程序编程接口 (API)等等。例如,典型操 作系统可以包括PalmOS⑧、Microsoft OS、Unix OS、 Linux 0S、 Symbian 0S 、 Embedix 0S、无线二进制运行环境(BREW) 0S、 JavaOS、无线应用协议(WAP)OS,等等。
该移动装置500可以提供各种应用程序,以允许用户执行一个或者多个具体任 务。典型应用程序可以包括但并不局限于包括万维网浏览器应用程序(例如,万维网浏 览器105)、电话应用程序(例如,蜂窝式、VoIP、PTT)、联网应用程序、消息应用程序(例如, 电子邮件、IM、 SMS、匪S)、通讯录应用程序、日历应用程序、字处理应用程序、电子数据表应 用程序、数据库应用程序、媒体应用程序(例如,视频播放器、音频播放器、多媒体播放器、 数码相机、视频摄像机、媒体管理)、基于位置的服务(location based service (LBS))应 用程序、游戏应用程序等等。该应用程序可以包括或者由可执行的计算机程序指令予以实 现,该可执行的计算机程序指令存储在诸如易失性或者非易失性存储器的计算机可读存储 介质上,可以由处理器检索和执行,以实现该移动装置500的操作。该存储器还可以实现各 种数据库和/或者其它类型的数据结构(例如,数组、文件、表格、记录),用于存储供该移动 装置500的处理器和/或者其它单元使用的数据。 该移动装置500可以包括用于与应用程序交互的各种部件或者装置,诸如用于输 入数据和/或者命令的小键盘502和用于显示一个或者多个用户界面并接收用户输入的显 示器504 (例如,触摸屏)。我们明白,该移动装置500可以包括与一个或者多个应用程序一 起使用的各种部件或者装置,诸如指示笔、按键(例如,输入键、预置并且可编程热键)、按 钮(例如,动作按钮、多向导航按钮、预置并且可编程快捷按钮)、开关、麦克风、扬声器、头 戴音频耳机、摄像机,等等。 根据各种实施例,该移动装置500可以包括应用程序管理框架100,如上所述,该 应用程序管理框架100由万维网浏览器105实现并且包括多个万维网应用程序110-1至 110-N。在某些实现中,该移动装置500可以进一步包括与该应用程序管理框架100交互的 WebVM 210。 如图所示,该移动装置500可以显示万维网浏览器UI 505,作为万维网浏览器105 的例子。该万维网浏览器UI 505可以显示对应于万维网应用程序110-1的万维网应用程 序UI 510-1。在该实施例中,该万维网应用程序110-1可以包括活动时钟应用程序或者 widget,而该万维网应用程序UI 510-1可以显示该移动装置500的本地日期和时间以及其 它地方的时间。该万维网浏览器UI 505还可以显示提供用于在万维网应用程序110-1至 IIO-N之间迅速切换的接口以及接收一组常规输入控件的应用程序管理框架UI 515。在各种实现中,该万维网浏览器105可以包括由移动装置500实现的内部widget控件。
在一个或者多个实施例中,该应用程序管理框架UI 515可以由包括一组图标 520-1至520-M的菜单条实现,其中根据所描述的实施例,M是任意适当正整数值。该应用 程序管理框架UI 515的菜单条可以由包括翻页(page fli卯ing)UI的应用程序翻转托盘 (flip tray)予以实现,以致作为对诸如单次触摸屏幕(例如,按或者滑动)、按钮按下(例 如,导航按钮、专用硬键、软键)、或者与诸如单指操作转盘(jog-dial wheel)的辅助控件 交互的单个用户事件的响应,用户可以通过万维网应用程序或者widget非常快速地翻页。 利用触摸屏事件(例如,在图标上触摸或者按压)、按钮事件(例如,移动装置500可以具 有用于选择下一页和前一页的专用硬键或者软键按钮)、单指操作转盘事件、以及屏幕事件 (例如,通过鼠标点击图标)或者其他随机导航事件的任意组合,用户还可以选择或者进入 特定万维网应用程序。在一些实现中,图标托盘(icon tray)本身可以自动隐藏,以保留可 用屏幕面积。在这种情况下,当用户利用上述事件在万维网应用程序之间切换时,图标托盘 仅瞬间显现。 正如该典型实施例所述,这组图标520-1至520-M包括用于在活动万维网应用程 序之间切换的图标520-1至520-6。如图所示,图标520-1至520-6可以由时钟图标520-1 、 万维网邮件图标520-2、天气图标520-3、搜索图标520-4、新闻阅读器图标520-5、以及证券 行情图标520-6予以实现。例如,图标520-1至520-6可以对应于活动万维网应用程序或 者widget,诸如由时钟应用程序110-1、万维网邮件应用程序110-2、天气应用程序110-3、 搜索应用程序110-4、新闻应用程序110-5、以及证券行情应用程序110-6实现的万维网应 用程序110-1至110-6。然而,我们明白,图标520-1至520-6的排列和顺序不必一定与万 维网应用程序110-1至110-6的顺序对应。例如,在一些实施例中,用户可以设置优先权 (preference)、拖拉、移动、添加、移除和/或者定制由该应用程序管理框架UI 515显示的 一组图标。 我们还明白,该应用程序管理框架UI 515的部件的位置和形状并不局限于图5所 示的实施例。通过修改下层万维网网页的图形单元或者布局参数,可以容易地改变该应用 程序管理框架UI 515的属性,并且万维网网页编辑可以轻而易举地定制该应用程序管理 框架UI 515的属性。例如,尽管在万维网浏览器UI505的底部,以水平条示出该应用程序 管理框架UI 515,但是也可以沿该万维网浏览器UI 505的左侧,以垂直条示出它。该应用 程序管理框架UI 515还可以经常被隐藏。作为另一个例子,实际上,可以使用任意数量的 万维网应用程序图标,它们分别对应于万维网应用程序。 下面将描述其它典型实施例,在该典型实施例中,同样的参考编号表示相同的单 元,如上所述。我们明白,根据特定实施例描述的任何特征、结构或者特性均不局限于该实 施例,并且不能认为它们对该实施例的用途或者功能的范围有任何限制。
图6A示出显示万维网应用程序UI 510-2和应用程序管理框架UI 515的万维网 浏览器UI 505的一个实施例。在该实施例中,该应用程序管理框架515显示对应于万维网 应用程序110-1至110-M的一组图标520-1至520-M。如图所示,在万维网浏览器UI 505 界面上,用户可以看到对应于选择的万维网应用程序110-2的万维网应用程序UI 510-2。
在该典型实施例中,图标520-2的相对尺寸比其它图标大,这表示其相应万维网 应用程序110-2被选择,并且在该万维网浏览器UI 505上,用户可以看到万维网应用程序
20UI 510-2。我们明白,在其它实施例中,利用尺寸之外的特性,诸如形状、亮度、颜色、高亮等等和/或者这些特性的组合,可以将选择的万维网应用程序的图标和可见的万维网应用程序UI区别开。 图6B示出显示万维网应用程序UI 510-2和应用程序管理框架UI 515的万维网浏览器UI 505的另一个实施例。在该实施例中,该应用程序管理框架UI 515包括对应于当前选择的万维网应用程序的图标布置在该应用程序管理框架UI 515的中心的布局。在该典型实施例中,图标520-2的相对尺寸比其它图标大,这表示其相应万维网应用程序110-2被选择,并且在该万维网浏览器UI 505上,用户可以看到万维网应用程序UI 510-2。
如图6B所示,该应用程序管理框架UI 515的布局允许移动装置500管理比单次装配在小型显示器504上的万维网浏览器UI 505内的图标数量多的万维网应用程序。在一个例子中,可以配置该应用程序管理框架UI 515,以显示图标520-1至520-M(例如,M二5),而基础应用程序管理框架IOO包括多个万维网应用程序,诸如万维网应用程序110-1至110-N(例如,N二9)。不为了装配在该应用程序管理框架UI 515内,来縮小万维网应用程序110-1至110-N的图标,而仅示出诸如图标520-2的活动图标和五个其它图标。
在该例中,在该视图中对应于当前选择的万维网应用程序110-2和万维网应用程序UI 520-2的图标520-2被布置在该应用程序管理框架UI 515的中心。在该选择图标520-2的右侧是对应于下一个万维网应用程序110-3的图标520-3。在该选择图标520-1的左侧是对应于前一个万维网应用程序110-1的图标520-1。 图6B所示的应用程序管理框架UI 515还实现模块环绕(modulus wr即-around)功能。例如,当用户前进到左侧或右侧时,显示在该应用程序管理框架UI 515上的一些图标被其它图标代替。例如,当巻动通过对应于最后万维网应用程序的图标后,对应于第一万维网应用程序的图标通过模块环绕显现。 在图6B中,该应用程序管理框架UI 515显示的这组图标被排序为图标520-N、图标520-1、图标520-2 (较大)、图标520-3和图标520-4。如上所述,图标520-2被选择。显示在图标520-3的右侧的图标520-4对应于万维网应用程序l 10-4,它按顺序是排在万维网应用程序110-3之后的下一个。显示在图标520-1左侧的图标520-N对应于万维网应用程序IIO-N,它是应用程序管理框架IOO封装的这组万维网应用程序110-1至110-N中的最后一个万维网应用程序。 利用这种方案,在中间示出当前万维网应用程序的图标,诸如图标520-X,其中1《X《N。如果这组显示的图标包括在5个图标上,则在该当前万维网应用程序的图标的左侧,示出诸如图标520-(X-l)和图标520-(X-2)的前两个图标。在该当前万维网应用程序的图标的右侧,示出诸如图标520-(X+l)和图标520-(X+2)的下两个图标。例如,如果对应于万维网应用程序110-6的图标520-6将被选择,则这组显示图标被排序为图标520-4、520-5、520-6、520-7,以及520-8。 图7A-7F示出万维网应用程序和应用程序管理框架用户界面的实施例。在图7A-7F中,应用程序管理框架UI 515包括图标520-1至520-6,该图标520-1至520-6由分别对应于活动万维网应用程序或者widget的时钟图标520-l、万维网邮件图标520-2、天气图标520-3、搜索图标520-4、新闻阅读器图标520-5、以及证券行情图标520-6予以实现,该活动万维网应用程序或者widget由时钟应用程序110-1、万维网邮件应用程序110-2、天气应用程序110-3、搜索应用程序110-4、新闻应用程序110-5、以及证券行情应用程序110-6 予以实现。 图7A示出当图标520-1被选择时,可以显示的万维网应用程序UI 510-1(对于万 维网应用程序110-1)的实施例。图7B示出当图标520-1被选择时,可以显示的万维网应用 程序UI510-2 (对于万维网应用程序110-2)的实施例。图7C示出当图标520-3被选择时,可 以显示的万维网应用程序UI 510-3 (对于万维网应用程序110-3)的实施例。图7D示出当 图标520-4被选择时,可以显示的万维网应用程序UI 510-4(对于万维网应用程序110-4) 的实施例。图7E示出当图标520-5被选择时,可以显示的万维网应用程序UI 510-5(对于 万维网应用程序110-5)的实施例。以及,图7F示出当图标520-6被选择时,可以显示的万 维网应用程序UI 510-6(对于万维网应用程序110-6)的实施例。 通过在应用程序管理框架UI 515菜单条上点击或者选择特定图标,该用户可以 在万维网应用程序110-1至110-6与显示的万维网应用程序UI 510-1至510-6之间迅速 切换。例如,作为对单次触摸或者键按下的响应,用户可以以迅速连续方式縮放显示的万维 网应用程序UI 510-1至510-6。 我们明白,万维网应用程序UI 510-1至510-6是典型视图。例如,在该应用程序 管理框架100内可以含有任意数量的万维网应用程序110-1至IIO-N,并且可以利用任意顺 序布置万维网应用程序110-1至110-N及其相应图标。 在各种实现中,应用程序管理框架UI 515的应用程序翻页式菜单条有助于用户 确定广告。如图7E所示,万维网应用程序UI 510-5的典型实施例包括横幅广告700。如图 7F所示,万维网应用程序UI 510-6的典型实施例本身包括赞助广告702。
图8示出适于实施各种实施例的通信系统800的实施例。尽管为了说明问题,图 8示出有限数量的单元,但是我们明白,根据所描述的实施例,通信系统100可以包括更多 或者更少的单元以及其它类型的单元。根据一组给定设计参数或者性能制约的要求,通信 系统800的单元可以包括用于传递信息的物理或者逻辑实体,该物理或者逻辑实体由硬件 部件(例如,计算装置、处理器、逻辑器件)、由各种硬件部件执行的可执行计算机程序指令 (例如,固件、软件)或者它们的组合实现。 如图所示,通信系统800可以包括门户网站提供商802,该门户网站提供商802实 现用于存储widget 810-1至810-Z的widget图库(gallery) 805,其中根据所描述的实施 例,Z是任意正整数值。在各种实现中,万维网应用程序开发商815可以将一个或者多个 widget上载到widget图库805。该万维网应用程序开发商815可以与万维网应用程序的 创建者或者公布程序联系。随后,用户可以将一个或者多个widget从门户网站提供商802 下载到该移动计算装置500。 在一些实现中,根据预定模型,用户可以将各种万维网应用程序或者widget下载 到该移动装置500,以便用户可以获得驻留在装置上的万维网应用程序和widget。在一个 或者多个实施例中,该widget显然可以由门户网站提供商820和/或者宿主该widget的 万维网应用程序开发商815进行更新。在某些情况下,特定万维网应用程序或者widget只 能被显示或者持续短时间周期,诸如在特定事件(例如,娱乐事件或者诸如奥运会的体育 事件)期间。 在各种实施例中,widget不需要驻留在该移动装置500上,而是可以从门户网站提供商802的服务器上实时提供。例如,用户可以登录到该门户网站提供商802,并且可 以诸如通过万维网浏览器cookie被自动记忆或者通过注册和口令被手动记忆。该用户的 widget可以被流化,从该门户网站提供商到该移动装置500或者台式机浏览器继续存留。
在各种实现中,可以在该门户网站提供商802上配置widget,并且可以将该配 置信息和该widget —起传送到移动装置500。当用户购买新装置时,该用户先前确认的 widget可以被送到该新装置。如果该装置被盗或者丢失,则该用户在旧装置上的widget可 以被远程消除或者关闭。在一个或者多个实施例中,用户可以同时在几个不同装置或者台 式计算机上使用其widget。每个装置可以不显示相同的widget。 S卩,该用户可以配置不同 的装置,以显示不同的widget。该配置可以是装置相关的,或者可以是基于时间的、基于优 先权和/或者基于其它因素的。 如果该widget在本地存储应用数据或者配置数据,则该数据可以返回给该门户 网站提供商802。例如,用户可以配置证券行情收录器widget,以跟踪5个特定证券。然 后,该widget被送到移动装置500。在该移动装置500上,该用户利用widget屏幕控件改 变这些证券代码中的两个证券代码。这些新证券被稳定地送回门户网站提供商802,作为用 户对该widget配置的一部分。这允许提供给该用户的其它装置被任选、自动更新。备份数 据可以自动产生,而无需用户干预。在某些情况下,该备份数据可以根据widget应用程序 的类型任选。 根据各种实施例,为了产生广告收入,该万维网应用程序开发商815可以有几种 选择。例如,一种广告选择包括该门户网站提供商802对widget添加横幅广告。在某些情 况下,该门户网站提供商802可以在运行期间对widget添加横幅广告。在其它情况下,该 万维网应用程序开发商815可以在widget内包括横幅广告。实现该选择的例子是包括横 幅广告700的万维网应用程序UI 510-5。当横幅广告700被点击时产生的收入可以与万维 网应用程序开发商815共享。 另一种广告选择是widget被赞助的免费广告实现。在这种情况下,万维网应用程 序开发商815可以向该门户网站提供商802支付费用,以关闭广告。然后,万维网应用程序 开发商815拥有该widget的整个屏幕和用户体验。该widget可以由一个大型交互名牌产 品广告予以有效实现。该widget对用户有价值,同时让市场商人发布它们的消息。在某些 情况下,widget可以包括直接点进该品牌的网站。实现这种选择的例子是它本身包括资助 widget的万维网应用程序UI 510-6。 根据所描述的实施例,可以实现各种收入共享模型。例如,widget交互可以采用 千人成本(CPM)、每点击成本(CPC)、每次成本((cost per)CP)应用程序使用模型,等等。 CMP、 CPC和CP应用程序使用模型可以基于为广告交互保留的屏幕区域。当万维网应用程 序开发商815在该移动装置500上的其应用程序内产生广告显示时,该万维网应用程序开 发商815可以收取使用费。例如,对于其应用程序在装置上的每次安装、对于在装置上的其 应用程序的使用/用户交互、对于在该装置上通过其应用程序产生的广告收入、和/或者对 于广告或者widget点进之后发生的动作(例如,在点进商品网站之后,后续购买商品或者 服务)产生的收入,该万维网应用程序开发商815可以收取使用费。 在图8所示的实施例中,移动装置500的用户被赋予诸如万维网应用程序UI 510-5的widget。例如,该万维网应用程序UI 510-5可以对应于在一部分其屏幕区域内含有广告区域的万维网应用程序。在该广告区域内可以填充基于展现的广告,诸如横幅广告 700,可以根据CMP对其货币化。该横幅广告700可以是可动作的(例如,超级链接),可以 利用移动装置500的小键盘或者触摸激活控件在其上点击或者选择该横幅广告700。
在该典型实施例中,当该用户与横幅广告700交互(例如,点击)时,另一个UI 820出现在万维网浏览器UI 505内。例如,该UI 820可以是与该横幅广告700相关的商 品网站或者因特网上的其它常规网站。Widget可以连接到属于该万维网应用程序开发商 815的网站、商品网站或者另一个网站或者服务器,以提供另外的服务。在某些情况下,UI 820可以是存储在widget内的先前隐蔽的屏幕,这样可以更详细看到广告信息或者用户可 以与广告交互的交互屏幕。 该widget可以以在线或者脱机的方式与服务器上的万维网应用程序交互。例如, 在各种实现中,可以高速缓存广告内容(例如,一个或者多个深链路),以便在脱机时,可以 访问所点击广告的内容。用户/广告交互可以被立即(例如,以在线方式)或者延期(例 如,以脱机方式)提交到广告提供商825的服务器。为了确保脱机并且延期看到/点击的 广告合法,可以执行验证序列,用于稍候报告。例如,当用户在widget脱机时点击广告时, 该点击用时间戳进行了记录。可以以散列方式组合和存储标识符、时间戳和装置证书。该 散列随后可以与装置证书进行比较,以确保与该时间戳/装置匹配。当在线时,将该封装送 到广告提供商825的服务器用于广告收入支付处理。 在一些实施例中,根据主叫用户识别(主叫用户ID)信息,可以选择特定万维网广 告显示在运行于移动装置500上的万维网应用程序上。主叫用户识别(主叫用户ID)信息 可以从对该移动装置500的呼入或者从该移动装置500的呼出中获得。广告请求可以由该 移动装置500根据主叫用户ID信息产生,并且被发送到该广告提供商825的万维网广告服 务器上。该广告请求可以立即或者延期到之后的时间发送到万维网广告服务器上。该广告 请求可以用于查询具有主叫用户ID信息的该万维网广告服务器。 作为对该广告请求的响应,该万维网广告服务器可以根据主叫用户ID信息选择 相关广告,并且可以将相关万维网广告发送到该移动装置500。该移动装置500可以从该万 维网广告服务器接收与该主叫用户ID信息相关的万维网广告,并且将该万维网广告存储 在该移动装置500的本地数据库(例如,SQL数据库213)内。 在该移动装置500上,可以将该万维网广告插入万维网应用程序。该万维网广告 可以显示在电话用户界面软件或者独立软件应用程序中。在呼叫期间,万维网广告可以被 立即显示在移动装置500的诸如电话用户界面的用户界面上。还可以在之后的时间存储和 显示该万维网广告。 当用户看到和/或者点击该万维网广告时,该移动装置500可以记录该用户与该 万维网广告的交互(例如,看到和/或者点击)。用户/广告交互可以被立即(在线方式) 或者延期(脱机方式)提交到万维网广告服务器。在某些实现中,用户可以收到与万维网 广告进行交互的信用分(credit)。例如,可以实现从登广告者获得的收入部分地或者全额 资助用户拥有移动装置的产权或者服务的商务方法。在某些情况下,可以根据各种标准,诸 如用户点击广告的次数、广告的"页面浏览(pageview)"次数,等等,从广告提供商收取信用 分。在某些情况下,可以从广告提供商之外的各方(例如,贸易商、万维网应用程序开发商 等等)收取信用分。
在各种实现中,所描述的实施例使登广告者获取关于买方与卖方之间关系的有价 值信息。此外,还可以有效、廉价地采集这种信息。这可以使登广告者很快地洞察特定类型 的买方_卖方关系,并且根据个体用户的详情,制作目标明确的广告。例如,登广告者根据 分析在客户与卖方或者服务提供商之间可能存在的关系,可以确定目标用户。该登广告者 还可以对现有客户提供有用的特殊报价,或者从竞争者到潜在客户进行特殊报价。
呼入或者呼出的主叫用户ID信息可以对查询相关的附加信息提供有用的线索。 例如,该用户可以从知晓是否有关于他或者她正在调用的销售商的最近的新闻文章获益。 在这些情况下,该移动装置的用户可以从上下文敏感的附加信息受益,并且登广告者从接 触对登广告者提供的目标报价可能非常感兴趣的潜在用户受益。 在某些实现中,当朋友呼叫时,该用户可以从关于该主叫用户的生日、周年纪念等
提醒中受益。该信息可以产生对广告服务器的查询,导致对显示在该移动装置上的万维网
应用程序用户界面上的用户给出报价。万维网应用程序中的报价可以直接链接登广告者的
网站(例如,超级链接),包括地图超级链接、进行在线保留的超级链接、以及直接从该移动
装置500拨电话号码的电话链接。所有这种功能均是可用的,而不要求用户停止电话应用、
启动单独万维网浏览器或者其它软件应用程序,从而显著加速了用户交互。 我们明白,可以存在许多广告变型。例如,该万维网应用程序可以提供附加服务,
即,通过存储的或者手动插入的信用卡完成记账,通过对用户的移动账单/运营商账户
(carrieracco皿t)直接记账完成记账,选项服务可以绑定到收到的或者呼叫的电话号码上
(例如,今天是Sam的生日,你要送礼物给他吗?),用户可以在呼叫时或者在之后的某个时
间从网店/产品目录中购买某物,等等。 在某些实现中,为了安全目的或者根据电话用户的愿望,可以在数据库中查询另 一个通话参与者的电话号码,以确定该号码是否在"监视清单"上。然后,适当的消息会在 万维网应用程序中产生并显示,例如,当从募捐组织得知主叫用户时。可以在广告数据库中 查询另一个通话参与者的电话号码,以识别竞争者产品的报价。在通话期间或者在之后的 某个时间,可以利用另一个通话参与者的电话号码启动其它形式的通信。例如,万维网应用 程序屏幕的一部分可以成为与另一个通话参与者的即时消息会话,以便文本、图片或者文 件可以直接在参与者之间进行交换。 我们还明白,通话可以包括两个以上的参与者。例如,可以划分万维网应用程序 UI,以显示全部或者一些通话参与者的信息,并且可以允许在参与者之间传递文本、图片或 者文件。此外,所有参与者均可以在其各自的万维网应用程序用户界面上看到相同的显示, 或者他们可以看到与所插入的可能不同的万维网广告不同的显示。 可以通过从主叫用户ID标记或者后续查询获得信息,实现其它优点。无需立即使 用从主叫用户ID标记或者后续查询获得的信息。相反,即使当移动装置电话没有立即连接 到网络,或者未被蜂窝覆盖时,诸如在飞机上或者在隧道中,该信息仍可以被存储或者高速 缓存,供随后在适当时候使用。 其它优点是,由该主叫用户ID标记或者后续查询获得的信息可以直接在该移动 装置的万维网应用程序中使用。这对用户是有利的,因为与万维网应用程序的交互模型 (例如,利用指示笔、小键盘、鼠标等,点击超级链接、滚动网页等等,进行输入)是该用户所 熟悉的。此外,万维网公布商熟悉万维网应用程序编程,因此,不需要针对该用户移动装置的特殊编程技巧。此外,该万维网应用程序提供将其它信息或者万维网资源直接链接到主 叫用户ID信息的简单机制,而不必由切换应用程序或者等待特定软件应用程序进行启动 ("自举")。 我们明白,根据所描述的实施例,门户网站提供商802、万维网应用程序开发者 815、以及广告提供商825可以包括或者使用具有计算能力和/或者通信能力的任何适当 计算装置。典型计算装置可以包括但并不局限于包括移动装置、个人数字助理、移动计算 装置、智能电话、蜂窝电话、手机、单向寻呼机、双向寻呼机、发信装置、计算机、个人计算机 (PC)、台式计算机、膝上型计算机、笔记本计算机、手持计算机、服务器、服务器阵列或者服 务器中心(server farm)、万维网服务器、网络服务器、因特网服务器、工作站、小型计算机、 大型计算机、超级计算机、网络器材、万维网器材、分布式计算系统、多处理器系统、基于处 理器的系统、消费类电子产品、可编程消费类电子产品、电视、数字电视、机顶盒、无线接入 点、基站、用户台、移动用户中心、无线网控制器、路由器、集线器、网关、网桥、交换机、或者 它们的组合。 图9示出用于产生广告收入的逻辑流程900,它示出由在此描述的一个或者多个 实施例执行的操作。根据一组给定设计参数或者性能约束,逻辑流程900可以由各种系统 和/或者装置执行,并且可以由硬件、软件、固件和/或者它们的任意组合予以实现。例如, 逻辑流程900的一个或者多个操作可以由逻辑器件(例如,计算机、处理器)执行的可执行 编程指令予以实现。 在该实施例中,逻辑流程900示范了为了产生广告收入,移动装置500、门户网站 提供商902、万维网应用程序开发商815以及广告提供商825之间的交互。在各种实现中, 用户的移动装置500可以包括应用程序管理框架100以及可选择地包括WebVM 210。
当万维网应用程序开发商815写入万维网应用程序时,逻辑流程900启动(步骤 901)。万维网应用程序开发商815注册该广告提供商(步骤902),并且提供任意必要信息 以及广告提供商825所要求的资格证书,以便万维网应用程序开发商815可以从广告提供 商825那里获得广告。在一个实施例中,为了确保万维网应用程序开发商815与广告提供 商825之间事务的安全性和完整性,在万维网应用程序开发商815与广告提供商825之间 使用适当的安全证书。因此,万维网应用程序开发商815将万维网链路或者脚本包括在万 维网应用程序中(步骤903),以便当请求时,万维网应用程序可以从广告提供商825获得广
告 然后,万维网应用程序开发商815将该万维网应用程序上载到门户网站提供商 802 (步骤904)。在各种实现中,为了确保该开发商与该门户网站提供商之间事务的安全性 和完整性,在开发商815与门户网站提供商802之间使用适当的安全证书。门户网站提供 商802存储该万维网应用程序和/或者从服务器获得的该万维网应用程序必要的信息。
希望利用可用万维网应用程序的用户将应用程序管理框架100和任选的WebVM 210从门户网站提供商802安装到移动装置500上(步骤905)。在一个实施例中,为了确 保门户网站提供商802与用户之间事务的安全性和完整性,该用户利用适当的安全证书注 册到门户网站提供商802。通过门户网站,该用户可以浏览可用万维网应用程序并且选择万 维网应用程序动作(步骤906)。由应用程序管理框架100可以将该万维网应用程序下载并 安装在移动装置500上(步骤907)。用户通过选择相应万维网应用程序图标激活该万维网
26应用程序(步骤908)。 在逻辑流程900的典型实施例中,当用户访问万维网应用程序时,根据该移动装 置500是否立即链接到网络"在线"(步骤909),可以执行不同的步骤。如果该移动装置500 链接到网络(910),则通过网络,该万维网应用程序可以与应用程序管理框架100和/或者 WebVM 210—起请求并从万维网应用程序开发商的广告提供商825获得广告。然后,可以将 该广告下载并插入该用户选择的万维网应用程序中(步骤911)。 然而,如果该移动装置500不立即在线(步骤912),则该万维网应用程序可以与应 用程序管理框架100和/或者WebVM210 —起将高速缓存的或者预装载的广告从本地存储 器装载到该移动装置500上,然后,可以将该广告插入选择的万维网应用程序(步骤913)。 无论给定的万维网应用程序是否运行,WebVM 210可以不时地从广告提供商825获得这些 高速缓存的或者预装载的广告。 每当用户看到或者点击广告时,可以根据该移动装置500是否在线(步骤914),执 行不同的步骤。如果该移动装置500不在线(步骤915),则记录该事务用于之后传送(步 骤916)。有时,当该移动装置500在线时,则WebVM 210可以将相关事务信息发送到广告提 供商825,以便万维网应用程序开发商815可以接收广告佣金。无论含有该广告的万维网配 置是否在运行,这都可以实现。 如果当用户点击广告时该移动装置500在线(步骤917),则该万维网应用程序与 应用程序管理框架100和/或者WebVM210 —起将相关事务信息发送到该广告提供商,以便 该万维网应用程序开发商可以接收广告佣金(步骤918)。在变换实施例中,WebVM 210可 以改为延期发送广告事务详情直到稍后时间(例如, 一次性批发送许多事务)。
在一些实施例中,可以在移动装置500、门户网站提供商802、万维网应用程序开 发商815、以及广告提供商825之间执行验证或者审计步骤,以确保该广告事务是合法的, 并且不会发生"点击欺诈(click fraud)"。 所描述的实施例对用户提供了为所提供的活动和服务下载和使用万维网应用程 序的鼓励办法。万维网应用程序开发商815对创建万维网应用程序以共享广告收入给予财 务鼓励并且具有通过门户网站提供商802发布编写的万维网应用程序的机制。万维网应用 程序开发商815还具有从广告提供商825获得广告的机制。此外,即使当移动装置500不 在线时,万维网应用程序开发商815也可以从用户执行的事务中挣取广告收入。广告提供 商825可以从其登广告者挣取利润,并且具有通过万维网应用程序发布其广告的机制。门 户网站提供商802具有通过共享广告收入向用户发布万维网应用程序的鼓励办法。
此夕卜,即使当移动装置500不在线时,该门户网站提供商802也可以从用户执行事 务挣取广告收入。我们明白,在一些实施例中,用户、门户网站提供商、万维网应用程序开发 商、以及广告提供商的一些或者全部角色均可以由通用实体扮演。如上所述,该实施例创建 了所有参与者都受益的自保"有效循环(virtuous cycle)"。 我们明白,除非另有明确说明,诸如"处理"、"计算"、"运算"、"确定"等等的术语指 计算机或者计算系统或者类似电子计算装置的动作和/或者处理,将寄存器和/或者存储 器中以物理量(例如,电子)表示的数据处理和/或者变换为在存储器、寄存器或者其它这 种信息存储、发送或者显示器件内以物理量同样表示的其它数据。 —些附图可以包括流程图。尽管这些附图可以包括特定逻辑流程,但是我们明白,该逻辑流程仅示出通用功能的典型实现。此外,除非另有说明,该逻辑流程不一定必须以所 示的顺序执行。我们还明白,尽管逻辑流程示出特定顺序的步骤,但是根据变换实施例,也 可以以其它顺序的步骤执行。此外,逻辑流程的某些单独步骤可以包括以适合该单独步骤 的各种顺序执行的多个分步骤。另外,根据特定实现,可以添加附加步骤,或者去除一些步骤。 此外,该逻辑流程可以由硬件单元、由计算机执行的软件单元、嵌入硬件内的固件 单元、或者它们的任意组合予以实现。在各种实施例中,该逻辑流程可以包括可执行计算机 程序指令或者由可执行计算机程序指令予以实现。该可执行计算机程序指令可以由软件、 固件、模块、应用程序、程序、widget、子例程、指令、指令集、计算代码、字、数值、符号或者它 们的组合予以实现。该可执行计算机程序指令可以包括任何适当类型的代码,诸如源代码、 编译代码、解释代码、可执行代码、静态代码、动态代码等等。该可执行计算机程序指令可 以根据用于命令计算机执行特定功能的预先确定的计算机语言、方式或者语法予以实现。 根据所描述的实施例,该可执行计算机程序指令可以利用任何适当的高级、低级、面向对象 的、可视的、编译的和/或者解释的编程语言予以实现。 在各种实施例中,逻辑流程可以包括存储在制品和/或者计算机可读存储介质内 的可执行计算机程序指令或者由存储在制品和/或者计算机可读存储介质内的可执行计 算机程序指令予以实现。该制品和/或者计算机可读存储介质可以存储可执行计算机程序 指令,该可执行计算机程序指令当由计算机执行时可以使该计算机执行根据所描述的实施 例的方法和/或者操作。根据所描述的实施例,该制品和/或者计算机可读存储介质可以 由各种系统和/或者装置予以实现。在这种实施例中,计算机可以包括利用硬件和/或者 软件的任意适当组合实现的任意适当的计算机平台、装置、系统等等。 该制品和/或者计算机可读存储介质可以包括一种或者多种可以存储数据的计 算机可读存储介质,它们包括易失性存储器或者非易失性存储器、可移动存储器或者非移 动存储器、可擦除或者不可擦除存储器、可写或者可重写存储器等等。根据所描述的实施 例,计算机可读存储介质的例子可以包括,但并不局限于包括随机存取存储器(RAM)、动 态随机存取存储器(DRAM)、双倍数据速率动态随机存取存储器(DDRAM)、同步动态随机存 取存储器(SDRAM)、静态随机存取存储器(SRAM)、只读存储器(ROM)、可编程只读存储器 (PR0M)、可擦可编程只读存储器(EPR0M)、电可擦可编程只读存储器(EEPR0M)、闪速存储器 (例如,N0R型或者NAND型闪速存储器)、内容可寻址存储器(CAM)、聚合物存储器(例如, 铁电聚合物存储器)、相变存储器、双向开关半导体存储器、铁电存储器、硅_氧化硅_氮化 硅-氧化硅-硅(Silicon-Oxide-Nitride-Oxide-Silicon) (S0N0S)存储器、磁卡或者光 卡、或者任意其它适当类型的计算机可读存储介质。尽管如上所述描述了该实施例的特定 特征,但是,现在,本技术领域内的技术人员可以想到许多修改、替换、变更和等同。因此, 应当知道,所附权利要求书的目的是涵盖落入该实施例的实质范围内的所有这些修改和变 更。
28
权利要求
一种移动装置,包括万维网浏览器;应用程序管理框架,在该浏览器内予以实现,该应用程序管理框架封装多个万维网应用程序;以及应用程序管理框架用户界面,其包括一组对应于多个运行于该应用程序管理框架内的活动万维网应用程序的图标。
2. 根据权利要求1所述的移动装置,其中该应用程序管理框架用户界面是运行着的, 以允许在单个浏览器的情况下,在该应用程序管理框架的万维网应用程序之间切换。
3. 根据权利要求1或者2所述的移动装置,其中该应用程序管理框架用户界面是运行 着的,以对该应用程序管理框架的万维网应用程序提供一组通用的输入控件。
4. 根据上述权利要求中任一项所述的移动装置,其中该应用程序管理框架用户界面是 运行着的,以响应一个或者多个事件,进入该组图标。
5. 根据上述权利要求中任一项所述的移动装置,其中该应用程序管理框架的一个或者 多个万维网应用程序包括微件(widget)。
6. 根据上述权利要求中任一项所述的移动装置,其中当该移动装置未连接到主动网络 时,一个或者多个万维网应用程序是活动的。
7. 根据上述权利要求中任一项所述的移动装置,其中该应用程序管理框架的一个或者 多个万维网应用程序包括广告。
8. —种方法,包括将应用程序管理框架安装在万维网浏览器内; 将多个万维网应用程序安装在该应用程序管理框架内;以及显示包括一组图标的应用程序管理框架用户界面,该组图标对应于运行在该应用程序 管理框架内的多个活动万维网应用程序。
9. 根据权利要求8所述的方法,进一步包括提供一个或者多个该万维网应用程序,以 供在一个或者多个计算装置上使用。
10. 根据权利要求8或者9所述的方法,进一步包括安装万维网虚拟机,以与该应用程 序管理框架通信,该万维网虚拟机包括在该移动装置上的本地万维网服务器主机。
11. 根据权利要求io所述的方法,其中该万维网虚拟机包括万维网服务管理器,该万维网服务管理器通过直接消息传递接口与该应用程序管理框架通信。
12. —种包含计算机程序的计算机可读存储介质,包括运行于计算装置上以执行权利 要求8至11中任一项所述方法的计算机可读程序单元。
13. —种方法,包括从万维网应用程序开发商接收万维网应用程序; 将该万维网应用程序提供予用户的计算装置; 将广告插入特定开发商的特定万维网应用程序;以及与该特定万维网应用程序开发商共享由用户的该计算装置上的特定万维网应用程序 产生的广告展现获得的广告收入。
14. 根据权利要求13所述的方法,其中该万维网广告被插入该特定万维网应用程序,无论该用户的计算装置是处于网络在线状态还是脱机状态;以及该广告展现发生在该特定万维网应用程序中,无论该用户的计算装置处于网络在线状 态还是脱机状态。
15. —种包含计算机程序的计算机可读存储介质,包括运行于计算装置上以执行权利 要求13或者14所述方法的计算机可读程序单元。
全文摘要
各种实施例涉及万维网应用程序的应用程序管理框架,该应用程序管理框架可以提高速度、提高能力、改善用户体验、增加了广告收益的机会、以及对广泛的网络装置简化应用程序开发。所描述的实施例可以采用在共享的万维网浏览器应用程序管理框架内含有、控制、以及显示多个基于万维网的应用程序的技术。共享万维网浏览器应用程序管理框架提供了在应用程序之间迅速切换的能力,允许处理多任务、便于使用应用程序的一组通用输入控件、以及可以以察觉不到的启动(“自举”)时间使用应用程序。所描述的实施例还可以对万维网应用程序用户、万维网应用程序开发商、万维网应用程序门户网站提供商,以及万维网广告提供商提供共享互相之间事务的鼓励办法。
文档编号G06F3/048GK101790714SQ200880100912
公开日2010年7月28日 申请日期2008年7月29日 优先权日2007年7月29日
发明者曼吉尔纳斯·查特吉, 格雷戈里·R·西蒙, 罗德里克·斯威夫特 申请人:帕姆公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1