详细描述
示例性操作环境
图1示出了可在其上实现本发明的合适的计算系统环境100的示例。计算系统环境100仅为合适的计算环境的一个示例,并不旨在对本发明的使用范围或功能提出任何限制。也不应该把计算环境100解释为对示例性操作环境100中示出的任一组件或其组合有任何依赖性或要求。
本发明可用于各种其它通用或专用计算系统环境或配置。适用于本发明的公知的计算系统、环境和/或配置的示例包括,但不限于:个人计算机、服务器计算机、手持式或膝上型设备、图形输入板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子产品、网络PC、小型机、大型机、包括上述系统或设备中的任一种的分布式计算机环境等。
本发明可在诸如程序模块等由计算机执行的计算机可执行指令的通用上下文中描述。一般而言,程序模块包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等等。本发明也可以在其中任务由通过通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和/或远程计算机存储介质中。
参考图1,用于实现本发明的示例性系统包括计算机110形式的通用计算设备。计算机110的组件可以包括但不限于:处理单元120、系统存储器130和将包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是若干类型总线结构中的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线体系结构中的任一种的局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、以及外围部件互连(PCI)总线,也称为小背板(Mezzanine)总线。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是能由计算机110访问的任何可用介质,而且包含易失性和非易失性介质以及可移动、不可移动介质。作为示例,而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括易失性和非易失性、可移动和不可移动介质,它们以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据这样的信息的任何方法或技术来实现。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机100访问的任何其它介质。通信介质通常以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,且包含任何信息传递介质。术语“已调制数据信号”指的是这样一种信号,其一个或多个特征以在信号中编码信息的方式被设定或更改。作为示例,而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、RF、红外线和其它无线介质。以上的任何组合也应包括在计算机可读介质的范围之内。
系统存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包含有助于诸如启动时在计算机110中元件之间传递信息的基本例程,它通常被存储在ROM 131中。RAM 132通常包含处理单元120可以立即访问和/或目前正在操作的数据和/或程序模块。作为示例而非局限,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括其它可移动/不可移动、易失性/非易失性的计算机存储介质。仅作为示例,图1示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器141,从可移动、非易失性磁盘152中读取或向其写入的磁盘驱动器151,以及从诸如CD ROM或其它光学介质等可移动、非易失性光盘156中读取或向其写入的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括,但不限于,盒式磁带、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器141通常由不可移动存储器接口,诸如接口140连接至系统总线121,磁盘驱动器151和光盘驱动器155通常由可移动存储器接口,诸如接口150连接至系统总线121。
以上描述并在图1中示出的驱动器及其相关联的计算机存储介质为计算机110提供了对计算机可读指令、数据结构、程序模块和其它数据的存储。例如在图1中,硬盘驱动器141被示为存储操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同或不同。操作系统144、应用程序145、其它程序模块146和程序数据147在这里被标注了不同的标号是为了说明至少它们是不同的副本。用户可通过诸如图形输入板或者电子数字化仪164、话筒163、键盘162和定点设备161(通常指的是鼠标、跟踪球或触摸垫)的输入设备向计算机110输入命令和信息。图1中未示出的其它输入设备可以包括操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些和其它输入设备通常由耦合至系统总线的用户输入接口160连接至处理单元120,但也可以由其它接口或总线结构,诸如并行端口、游戏端口或通用串行总线(USB)连接。监视器191或其它类型的显示设备也经由诸如视频接口190等接口连接到系统总线121。监视器191也可以与触摸屏面板等集成。注意到监视器和/或触摸屏面板可以在物理上耦合至其中包括计算设备110的外壳,诸如在图形输入板型个人计算机中。此外,诸如计算设备110的计算机也可以包括其它外围输出设备,诸如扬声器195和打印机196,它们可以通过输出外围接口194等连接。
计算机110可使用至一个或多个远程计算机,诸如远程计算机180的逻辑连接在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见网络节点,且通常包括以上相对于计算机110描述的许多或所有元件,尽管在图1中只示出存储器存储设备181。图1中所示的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可以包括其它网络。这样的联网环境在办公室、企业范围计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN联网环境中使用时,计算机110通常包括调制解调器172或用于通过诸如因特网等WAN 173建立通信的其它装置。调制解调器172可以是内置或外置的,它可以通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,相对于计算机110所描述的程序模块或其部分可以存储在远程存储器存储设备中。作为示例而非局限,图1示出远程应用程序185驻留在存储器设备181上。可以理解所示的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其他手段。
辅助显示子系统199可经由用户接口160连接以允许诸如程序内容、系统状态和事件通知的数据被提供给用户,即使计算机系统的主要部分处于低功率状态中。辅助显示子系统199可连接至调制解调器172和/或网络接口170以允许在主处理单元120处于低功率状态中时在这些系统之间进行通信。
分布式内容的辅助显示小配件
此处所述的技术的各个方面针对获取要在耦合至主机计算机系统的辅助显示设备上显示的内容并对其进行处理。一般,此处的大部分描述是针对其中内容从使用RSS(真正简单的整合)技术的远程数据源获得的特定示例,其中RSS技术一般指的是使用一个或多个基于XML的文件格式的web整合/内容分发。RSS一般由新闻网站和web日志(博客)使用以分发其内容,但是也可用于其他用途,包括推销、隐错报告或涉及周期性更新或发布的任何其他活动。
RSS技术允许因特网用户向网站,通常是频繁改变内容的网站订阅(通常没有成本)RSS订阅源。一般,每一这样的站点按需提供数据以分发,其中数据包括内容以及某些元数据,通常包括对其他内容的链接。该数据作为XML文件被递送给订户,该数据在此处被称为RSS数据或RSS订阅源,但在其他上下文中或者可被称为web订阅源、RSS流或RSS频道(channel)。RSS数据可包括附连的多媒体文件。
然而,如可以理解,此处所述的技术不限于任何特定的数据源和/或数据格式,或甚至RSS技术,并且是可用于本地以及远程数据。而且,此处所述的技术不限于任何特定类型的辅助设备,而是包括常规上不被认为是“计算机系统”耦合设备的设备,诸如电视机、收音机、录音机/录像机、电话、单独的计算机、移动通信设备、带有致动器的第二显示屏、手表、墙壁(例如,厨房)显示器、显示屏、数码相框、钟、无线电、媒体播放器、嵌入在消费者电子设备的主显示器内或使用该主显示器的设备、汽车、运输或其他车辆单元、键盘或主计算机系统的其他输入设备、寻呼机、个人数字助理等。因此,本发明不限于此处所述的示例、结构或功能;相反,此处所述的任何示例、结构或功能不是限定性的,且本发明大体上可用于以各种方式向计算和内容处理提供好处和优点。
转向图2,示出了包括各种组件的示例框图,主机计算机系统210(诸如基于图1中的个人计算机110的系统)诸如经由因特网214从RSS源212接收数据。注意,数据也还可经由某种其他手段获取,诸如经由LAN或其他WAN连接,或甚至本地数据源,诸如下载至文件/高速缓存/缓冲器。
如下所述,来自RSS源212的数据在RSS小配件216处接收。一般,小配件216包括运行在主机计算机系统上的向辅助显示平台注册以向一个或多个辅助显示设备发送数据的程序代码;可从控制面板启用或禁用小配件。
小配件216处理接收到的数据供辅助设备220进行内容消费(一般为显示)。也如下所述,该处理包括处理伴随RSS订阅源的元数据222。至此,RSS小配件216包括元数据处理器机制230或以其他方式与其相关联。如RSS/辅助转换器232所表示,处理也可包括将RSS内容224转换成辅助显示设备220(例如,图1的辅助显示子系统199的一部分)可处理的格式。一个这样的格式被称为简单内容格式(SCF),它包括辅助显示设备应能够显示的基本数据格式,并包括用于传输菜单、图片或通知数据的格式化。
为便于内容接收,RSS数据的源212在元数据222中提供关于内容224的信息。更具体地,代替需要主机计算机系统上处理其内容的专用小配件,RSS小配件216上的元数据处理器230可处理来自各个源的数据,并基于元数据区分数据。结果,该技术允许内容提供者将要辅助显示的内容向广泛的、潜在无限的受众整合发布,而无需每一接收方设备上的专用软件。
更具体地,作为数据分发/管理的特例,代替仅递送内容,内容提供者可使用RSS来分发辅助显示专用数据和创建新的小配件。例如,当用户向RSS订阅源订阅该特殊辅助显示数据有效载荷时,RSS小配件216可利用该数据创建新的、单独的辅助显示小配件,诸如图2的“小配件A”240。一旦创建了新的小配件240之后,RSS小配件担当管理新近创建的“虚拟”小配件并管理来自订阅的RSS订阅源的设备数据的“主控”小配件(本质上,RSS小配件执行数据管理,而给出单独的小配件的外观)。注意,尽管在图2中未明确示出,但小配件A或者可接收RSS内容和/或将所接收的RSS内容转换成辅助设备兼容格式,诸如简单内容格式。小配件216因此管理、定制来自源的RSS递送内容并将其分发给(或通过)用户的主机计算机系统以及用户的辅助显示设备。
在一个示例实现中,RSS数据首次从诸如源212的站点下载时,对应于元数据222的信息被写入主机系统的注册表234(例如,假定用户和/或策略允许这样的动作)。注意,在注册表234中已经有其相应信息的任何元数据不需要被重写到后续订阅源;相反,注册表234中的现有信息可用于确定关于相关联的RSS内容224的辅助设备显示如何处理该内容。之后,可向辅助显示设备220提供某种形式的内容224(例如,经由所创建的小配件240)。结果,从用户的角度,发现以及安装新的小配件与订阅RSS订阅源一样简单。
为完整性,图2示出了可用于辅助显示平台的其他小配件,包括“小配件B”241;注意,小配件B 241分别用于补充程序242和/或相关API 243。小配件B 241使用补充API 243通过API 246来与辅助设备220的驱动器248通信。
也为了完整性,图2示出给定系统210可配备有一个或多个驱动器249和辅助设备250。尽管其他驱动器249和辅助设备250经由虚线框示出以指示它们是可任选的,但应注意到辅助设备220也是可任选的,因为用户可仅具有例如一个其他辅助设备250以及第三方驱动器249。由辅助设备220和/或虚线框250所表示的一个这样的设备的示例包括增强显示器,一般包括运行SPOT(智能个人对象技术)固件和增强呈现代码的辅助显示设备,本质上是运行任何其他定制固件但能够担当辅助显示器的辅助显示设备的基本显示器,例如手机,以及单(或二、三等)行显示器,包括能够显示非常有限的数目(例如,文本的一行或两行)且基本上不包含图像支持的辅助显示器。其他类型的显示器包括附连显示器/边缘显示器/盖上(lid-top)显示器,一般指的是物理上位于笔记本个人计算机等的主体上例如位于盖子上方一类的辅助显示设备;包括不是物理上位于主机计算机上且通过有线或无线网络协议与主机计算机通信的辅助显示器的远程显示器;以及“虚拟”辅助显示器,一般包括在计算机系统的主显示器的一些区域内展示辅助内容的显示器。因此,尽管图2中所表示的辅助设备220和259被示为外部的,且耦合至主机计算机系统210(可能选择性耦合),但可以理解这样的设备可以或可以不在物理上附连主机计算机系统210,或以其他方式与主机计算机系统210可分离。
注意到,大多数RSS内容是HTML格式的文本,然而RSS 2.0允许经由<enclosure(附件)>标签嵌入其他数据,其中<enclosure>包括<item(项目)>的可任选的子元素。RSS附件类型由标准MIME类型定义。例如,辅助显示平台的一个实现支持使用增强显示器上的简单内容格式,例如jpg、gif以及bmp格式的图像。对更丰富的媒体场景,可启用其他媒体,例如对音频启用mpeg/wma,对视频启用wmv/avi/mpeg。
在RSS相关标记中,<enclosure>具有多个属性,诸如指定附件位于何处的URL、指定其大小(例如,按字节)的长度(length)以及指定其类型,如标准MIME类型的类型(type)。URL可以是http URL,例如:
<enclosure
url=“http://www.scripting.com/mp3s/weatherReportSuite.mp3”
length=″12216320″type=″audio/mpeg″/>
RSS小配件可请求RSS平台在附件属于已识别类型时下载附件。一旦附件被下载之后,小配件直接从RSS平台获取所附的文件。或者,RSS小配件可通过使用附件标记中的URL属性自己来下载附件。
因为对RSS有效载荷的类型没有限制,内容提供者和软件厂商能够在web上向用户的辅助显示设备分发基本上任何类型的数据,包括诸如股票报价和音乐的各种内容。也可递送丰富的媒体,使得诸如自动显示来自用户订阅的博客的图片的无线数码相框或自动下载用户最喜欢的播客和新闻的媒体播放器等场景或其他场景可能。
其他示例场景针对但不限于:博客/RSS消费(阅读)、博客/RSS创建(写博客)、数码相框、播客、安装使用RSS的新的小配件、以及工具栏(sidebar)集成。例如,考虑在上下班时收听音频播放器的一个用户。除了听音乐之外,他可使用其音频播放器或其他媒体设备在对接计算机(docked)时下载播客、照片和RSS订阅源。他可在上下班时消费这些内容。该设备自动挑选他经由RSS平台订阅源列表订阅的正确的订阅源,例如他可订阅来自其朋友的子集的照片和/或可能订阅从移动电话拍摄的较短的视频剪辑,且RSS小配件在设备与计算设备对接时将自动同步该内容。
对于写日志,移动设备(例如智能电话)可具有用于阅读以及用于拇指键盘(thumbpad)输入的小面板。以上消费示例使用,但此外,用户还可例如通过拍照、写到博客和/或经由用户的博客机制对内容记录博客来创建内容。使用RSS附件,用户可创建直接分发给某一组的照片订阅源以及伴随/说明文本。对不具有无线能力的设备,博客内容可被高速缓存用于当与计算设备对接时与RSS引擎同步。
数码相框也接收其订阅的内容。例如,辅助显示数码相框可被无线连接至个人计算机,并加载经由RSS订阅源挑选照片的自动安装的RSS小配件,计算机将照片推送给相框。相框可自动显示最新的照片,并周期性地循环以使其保持新鲜。
播客是可经由RSS播客订阅源促进的另一场景。为此,用户可将播客配置成对设备同步,例如使用来自辅助显示器的控制面板小程序的辅助小配件属性页。当用户订阅订阅源时,辅助小配件从RSS订阅源剥取所封装的播客。每当设备与计算设备对接时,小配件将播客同步到该设备上供稍后收听。
如此处所使用的,可使用RSS安装新的小配件。例如,以下参考图4所述,诸如zzzmovies.com的站点可供应RSS电影信息订阅源。当用户订阅该订阅源时,辅助RSS小配件216检测到zzzmovies.com分发允许辅助显示器显示来自该订阅源的电影信息,包括排片表、出票情况以及评论的特殊电影信息小配件。代替要求用户单独下载并安装这样的小配件,RSS小配件216(或另一实体,诸如控制面板小程序)自动安装新的电影信息小配件,通常遵循提示和/或其他策略检查。RSS小配件216将电影小配件配置成仅在所支持的设备上起作用,例如电影小配件将不会显示在单行键盘辅助显示器上,但将显示在手机屏幕上。
以此方式,RSS小配件216使得用户能够使用辅助显示平台在便携式设备上消费(和创建)各种媒体格式的内容,包括音频(例如,播客)、照片、文本(例如,博客)等。结果,用户能够经由其辅助显示设备浏览所订阅的订阅源、收听播客、查看照片/视频以及执行类似的任务。注意到,这可用消费/创建内容的单机RSS设备或通过使用诸如音频播放器的现有便携式设备消费多媒体内容来完成。
转向更具体的示例实现,如图3中一般地表示,RSS平台350向RSS小配件(用于辅助显示器)216提供RSS数据。在一个具体示例实现中,分发媒介(例如,诸如基于Internet Explorer的浏览器的浏览器)执行设置操作,该操作注册RSS订阅源平台使得应用程序或用户无需这样做。RSS订阅源平台也可被实现为位于动态链接库中的一个或多个Win32 COM API,例如msfeeds.dll。
RSS订阅源可被安排成一组文件夹和文件夹内的订阅源,诸如存储浏览器计算机收藏夹的安排。注意到文件夹和订阅源次序一般不在系统订阅源列表中维护,在一个示例实现(如浏览器收藏夹和站点)中,操作系统/浏览器组件以及RSS资源管理器程序共享一组注册表项来存储文件夹和订阅源在文件夹内的次序。RSS小配件216读取文件夹和订阅源次序的这些注册表项;且系统订阅源列表中用于存储订阅次序的示例注册表项为HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Feeds。
注意,用户可具有多个辅助设备,因此可能期望特定的订阅源被映射到特定的设备。例如,由于给定设备的限制,该设备可支持的订阅源可能仅是用户全部订阅的订阅源的子集,例如某些能够使用简单内容格式的设备可能具有当试图呈现RSS订阅源时将产生不良用户体验的形式因素,且用户应能够为这样的设备关闭订阅源。此外,为可用性原因,用户可能不想要在单个设备上消费所有订阅源,因为用户可能具有数百个订阅源。而且对于特定媒体类型,诸如照片,用户可仅选择消费来自特定源的订阅源。
为了使得用户能够将特定订阅源与特定辅助设备相关联,如图3中所示,可创建订阅源-对-设备(订阅源:设备)表352或类似的数据结构。为了创建订阅源-对-设备结构352,诸如经由辅助显示器的控制面板小程序354的属性页,在一个实现中,平台包括新的属性,例如AUX_CAPABILITY_DEVICE_NAME(辅助能力设备名),以对每一设备的能力定义。除了DEVICE_NAME(设备名)以外,可定义以下设备能力:
能力 | GUID值 | PID | 数据类型 | 属性变量类型 |
DEVICE_ID(设备ID) | {8ABC88A8-857B-4ad7-A35A-B5942F492B99} | 1 | GUID | VT_CLSID |
SCREEN_TYPE(屏幕类型) | {8ABC88A8-857B-4ad7-A35A-B5942F492B99} | 2 | SCREEN_TYPE(屏幕类型) | VT_I4 |
SCREEN_WIDTH(屏幕宽度) | {8ABC88A8-857B-4ad7-A35A-B5942F492B99} | 3 | UINT16(16位无符号整数) | VT_UI2 |
SCREEN_HEIGHT(屏幕高度) | {8ABC88A8-857B-4ad7-A35A-B5942F492B99} | 4 | UINT16 | VT_UI2 |
COLOR_DEPTH(色深度) | {8ABC88A8-857B-4ad7-A35A-B5942F492B99} | 5 | UINT16 | VT_UI2 |
COLOR_TYPE(颜色类型) | {8ABC88A8-857B-4ad7-A35A-B5942F492B99} | 6 | COLOR_TYPE(颜色类型) | VT_I4 |
DATA_CACHE(数据高速缓存) | {8ABC88A8-857B-4ad7-A35A-B5942F492B99} | 7 | BOOL(布尔) | VT_BOOL |
DEVICE_NAME(设备名) | {8ABC88A8-857B-4ad7-A35A-B5942F492B99} | 8 | 任何合适的,例如char* | 任何合适的,例如VT_char |
RSS小配件216可使用ISideShowCapabilitiesCollection(附带显示能力集合)接口来枚举用户系统上当前连接的辅助设备的子集。当小配件查询每一设备的属性时,小配件然后可获取设备的昵称(从以上DEVICE_NAME),并例如在控制面板小程序354的用户界面中呈现允许用户将特定订阅源与特定设备相关联的表等。
例如:
一般而言,小配件将进行以下步骤:
1.令来自IAuxiliaryDisplayContent(辅助显示器内容)::DifferentiateContent(不同内容)的BOOL*out_pfDifferentiateContent为真
2.当其调用ISideShowContentManager(附带显示内容管理器)::Add()(添加)以添加新内容,平台将为每一设备回调来自ISideShowContent(附带显示内容)接口的的单独的GetContent()(取内容)。
3.然后对于每一GetContent()调用,小配件可使用IAuxiliaryDisplayCapabilities(辅助设备能力)指针以查询每一设备的昵称。将设备名与内部存储的订阅源-对-设备映射组合,仅返回基于特定设备的订阅源。
RSS小配件216可使ISideShowContent::GetContent()回调适度失败,以仅返回基于设备的特定订阅源。注意到,这是回调,因为小配件调用ISideShowContentManager::Add,而内容管理器在其ISideShowContent接口上回调小配件。
一旦,以某种方式形成关联,例如,默认经由控制面板小程序的用户界面修改,RSS小配件216存储该订阅源-对-设备的结构(例如,图)352,使得小配件稍后能够访问存储352以确定要向哪一设备推送哪一订阅源。例如,一个用户可能想要在音乐播放器设备上看/听所有音乐相关订阅源,但想要在手机上看到紧急工作订阅源。注意,RSS小配件216(或由此创建的虚拟小配件)可为每一设备定制简单内容格式内容以考虑不同的订阅源。因为用户可在任何时间从辅助显示器的控制面板小程序354更新每一关联,RSS小配件216也相应地更新其存储的结构352。
RSS小配件216可默认地被安装为辅助显示清单的一部分。当没有附连任何辅助显示设备时,小配件可被禁用,无需在辅助显示器的控制面板小程序354中示出。在该示例实现中,RSS小配件216无需向RSS平台添加任何UI,因为配置可通过辅助显示器控制面板小程序354的用户界面得到处理。
在一个示例实现中,为了写入辅助显示小配件的所需注册表信息,可采用以下轮廓结构:
a.RSS
i.FriendlyName(昵称)=“
Web Feeds”(对应于基于
的系统中的“RSS”)
ii.OnlineOnly(仅在线)=DWORD:0x0
iii.CacheAlgorithm(高速缓存算法)=DWORD:0x0
iv.Icon(图标)=表示RSS小配件的图标
v.Endpoints(端点):例如简单内容格式端点或可任选RSS端点
如上所述,RSS小配件216也向辅助平台注册(例如,用于与API/组件246、356和358通信),尽管注意到小配件216无需被安装在不具有辅助显示器的主机计算机系统上或不具有支持辅助显示器的操作系统的主机计算机系统上。RSS小配件216可被默认安装,且可由设备制造商或其他实体定制。
注意到,首次找到能使用RSS的设备时,RSS小配件216可例如经由辅助显示器的控制面板小程序354显示对话等以关于在辅助设备上使用RSS以及如何与RSS小配件216交互对用户进行训练。还注意到,对于小配件的行为,小配件可被配置成如果满足准则,例如RSS平台启用并正在运行、它仅在适当的SKU(操作系统的库存单元)上运行以及能够支持RSS的一个或多个辅助显示设备当前安装在主机计算机上,则一旦用户登录即启动。在一个实现中,RSS小配件216在不满足这些准则中的每一个时将不被启用。
一旦被启用,RSS小配件216一般默认地在后台中运行,通常RSS平台是持续运行的;如果RSS、辅助平台因任何原因不存在,则RSS小配件216将自行禁用。可使RSS小配件216察觉到网络连通性,例如使得当没有辅助设备连接时,小配件可挂起数据传送。
对于基本平台、小配件和设备交互,可采用以下轮廓结构(尽管可以理解,不必按照所呈现的次序):
1.利用操作系统的RSS平台
a.加载RSS平台(例如DLL)
2.向所支持的辅助设备分发用户所订阅的RSS
a.从RSS订阅源API获取系统订阅源列表(所订阅的订阅源)
b.注册以下通知(RSS通知是递归的,因此订阅根文件夹将获得某种改变)
i.IFeedFolder.SubscriptionNotifications(添加/删除/改变新订阅源等)
ii.IFeedFolder.FeedNotifications(添加新项目)
c.针对改变监视订阅源列表
i.高速缓存最后与设备同步的订阅源的状态,使得当设备回到在线时知道如何更新设备上的订阅源状态
ii.用订阅源状态改变更新辅助显示器的控制面板小程序属性页。
d.默认地,小配件可将所有订阅源分发给所有有RSS能力的设备
i.然而,用户具有配置特定RSS订阅源以分发给特定辅助设备,即决定给定订阅源应前往哪一或哪些设备的选择。
ii.基于来自辅助显示器的控制面板小程序属性的用户改变存储并更新订阅源对设备的映射。
iii.该映射基于按-用户进行维护,使得用户与一组设备相关联。
e.令RSS同步引擎自动下载附件
(IFeed.DownloadEnclosuresAutomatically)
3.启用辅助设备来呈现用户经由RSS平台订阅的RSS订阅源
a.将RSS内容代码转换成简单内容格式
i.输入:RSS数据
ii.输出:简单内容格式数据
b.适度忽略例如由于设备限制而不能由特定辅助设备呈现的格式和内容。例如,这可当RSS订阅源包含不能被呈现的特殊格式HTML(表等)而发生。
c.媒体附件
i.从RSS平台获取特定RSS附件(例如,照片)并用辅助设备可处理的格式重新封装二进制数据
ii.以简单内容格式相应地标记需要设备上特殊处理的特定媒体附件(照片、视频等)
iii.将数据(例如,二进制数据)发送给设备
d.基于辅助设备能力,小配件确定特定的订阅源是否应被传递给设备。例如,如果设备是数码相框且订阅了特定的博客,则小配件将仅呈现嵌入的照片而不呈现相关联的文本或其他媒体。
4.多用户
a.当前活动的用户的订阅源仅被同步到与该用户相关联的设备。这防止某些状况,诸如第一用户向第二用户的设备(例如,音频播放器)发送订阅源,从而因为第一用户登录而擦去了第二用户存储的订阅源。
b.快速用户切换
i.仅当设备与所有登录的用户相关联时应用,例如膝上型计算机。
ii.来自老用户的数据从设备上移除,而活动用户的数据被同步到设备。
iii.在以上音频播放器场景中,音频播放器仅应与第二设备相关联,借此当第一用户登录时,小配件识别该设备不是第一用户的设备,且将不会擦去音频播放器的数据。
iv.辅助设备交互
c.导航——运行用户导航并浏览订阅源。
i.保存与浏览器组件中所示相同的文件夹和订阅源次序以维护一致的用户体验
ii.显示订阅源文件夹
1.用户可导航进出文件夹
iii.显示文件夹内的订阅源标题
1.如果可能,使用来自订阅源的图标。
2.用新的更新标记订阅源
3.在最后的括号里显示订阅源的未读项目数目
iv.显示订阅源中的项目
d.在选择订阅源之后
i.文本
1.浏览视图
a.示出项目以及相关联的<title(标题)>以及<description(描述)>的第一行
b.提供用于示出所有项目或仅未读项目的上下文菜单选项。
c.默认:仅显示未读项目
d.当选择特定订阅源项目时,打开项目
2.详细视图
a.详细显示项目内容。
b.提供用于导航文本的控件。
ii.如果项目具有附件:
1.使用MIME标签确定媒体类型
2.浏览视图
a.用适当图标指定带有媒体附件的项目
3.详细视图——确定呈现附件的适当格式
a.图像
i.显示适当的元数据——字幕等
ii.缩放图像以在尺度、分辨率和色深度方面适合设备细节
iii.提供用于下一/前一图像的导航控件
b.音频
i.用音频图标显示项目
ii.显示适当的元数据——艺术家、长度等。
iii.提供播放音频的控件(需要与固件集
成)——快进/倒带/暂停/播放
iv.提供导航控件——下一/前一项目
c.视频
i.用视频图标显示项目
ii.显示适当的元数据——制作者等
iii.提供播放视频的控件(需要与固件集成)——快进/倒带/暂停/播放
iv.提供导航控件——下一/前一项目
e.一旦订阅源被打开,即更新UI中的已读/未读状态。
5.处理来自设备的事件
a.内容遗失
i.小配件向该平台查询设备遗失的内容
ii.如果从平台删除了订阅源或项目,则小配件在设备上相应地移除所删除的内容
b.设备添加
i.确定该设备是否已与当前用户相关联。
1.如果否,则向用户查询他们是否想在该设备上启用RSS
ii.用经改变的数据(如果有)更新设备
c.设备移除
i.不做任何事
为了允许如回放播客、音乐和视频的场景,辅助设备驱动器框架358可与嵌入的设备直接接口以利用其硬件和固件。对辅助设备与本机设备集成(例如,播客场景),辅助设备驱动器可将内容直接写到设备存储器,并访问提供回放控制的固件功能。
从源提供者角度,辅助显示平台和RSS小配件允许软件厂商或内容发布者利用RSS来对用户分发和安装新的小配件。而且,它也增加了附带显示小配件的使用场景,如内容提供者和软件厂商现在除了从个人计算机本地提供以外,可从web将内容提供给附带显示设备。这可包括指定并注册新的MIME类型,包括用于简单内容格式的MIME类型(例如,内容类型:文本/x-简单_内容格式)以及用于辅助安装数据的MIME类型(例如,内容类型:应用程序/小配件)。
为方便于RSS实体可分发新的小配件的方式,即经由RSS订阅源,实体仅需发布附有小配件安装元数据的RSS订阅源。例如,小配件附件可包含新的小配件的标题、图标、所支持的端点等。之后,RSS同步引擎(例如,RSS平台350的一部分)自动下载简单内容格式和/或小配件附件。
从构建和分发新的使用RSS的辅助小配件的角度,考虑为诸如拥有站点zzzmovies.com的公司工作的软件开发员。为了发布允许用户基于每一用户的位置看见实时电影信息的“电影”小配件,开发员可使用附件将特殊数据(例如,关于电影小配件的元数据和简单内容格式的实时信息)嵌入在zzzmovies.com的RSS订阅源中。当被接收时,RSS小配件解析该简单内容格式数据,并在用户首次订阅该订阅源时安装电影小配件。
图4表示一个这样的说明性示例,例如其中诸如基于手机的辅助显示设备460的辅助设备呈现来自站点zzzmovies.com即经由其web服务器462获取的电影列表。在此示例中,考虑用户已经在手机460上经由RSS小配件216阅读了来自各个网站(服务器)464的各个RSS订阅源(X、Y、Z)。这种之前已订阅订阅源X、Y和Z的状态,在图4中一般由标有带圈数字一(1)的箭头表示。
在该示例中,之后某时,诸如当浏览zzzmovies.com的网站时,用户订阅包含来自zzzmovies.com服务器462的zzz电影小配件附件470的新的订阅源W。在这样的订阅请求之后,通知RSS小配件216(例如,经由RSS平台350),且该小配件看见<gadget(小配件)>附件。一般,这在图4中由标有带圈数字二(2)的箭头表示。作为响应,RSS小配件216将安装zzz电影小配件470(标有带圈数字三(3)的箭头)。注意,可能需要某些策略和/或用户批准以允许安装。
在安装之后,zzz电影小配件470可被加载并运行,且将使用RSS平台350订阅其自己的订阅源W,并在此刻之后可独立于RSS小配件216操作,如在图4中一般由标有带圈数字四(4)的箭头表示。经由订阅源W,zzz电影小配件470可通过附件接收简单内容格式的原始内容,但如上所述,或者也可包括将RSS订阅源内容转换成设备可理解的格式(诸如针对设备能力的最佳匹配订阅源内容的内容)的转换码。
一种替换的实现可使RSS小配件216订阅W订阅源,并管理zzz电影小配件的数据。在此实现中,RSS小配件216有效地运行zzz电影小配件。
注意到,一旦安装,就无需每次安装zzz电影小配件470,相反每当在RSS订阅源中检测到相同的元数据就可使用其在注册表中已经具有相应信息的元数据中的安装数据来加载并运行(即,实例化)小配件的实例。例如,如果小配件216识别出之前已将元数据处理成注册表中的安装数据,则安装数据可从注册表中读回(或当前元数据可被转换成等效的安装数据)以启用(例如,加载和运行)相应小配件的实例以处理内容。
如可容易理解地,尽管RSS小配件把处理RSS内容替代为为该目的而启用另一小配件是可行的,但图4中所例示的模型因多个原因而有优势,包括对新小配件470的管理是从RSS小配件216去耦,即使它们均使用RSS作为数据递送机制。该模型防止在两个地方重复显示订阅源W,例如一次在手机的RSS菜单中,一次在其自己的电影菜单中,并具有其他好处。新小配件470也可处理其自己的与主机服务器的数据交互,借此RSS小配件216无需具有逻辑、转换码等来处理从W订阅源接收的附加(非小配件相关)附件。注意到,如果RSS小配件216因任何原因而停止运行,电影小配件470也将停止。
图5示出可由RSS小配件216采用的示例逻辑,其中当用户首次订阅订阅源并接收包含适当元数据例如<gadget>附件的订阅源时(如经由步骤504和506评估)(步骤502),向用户给出安装用于该订阅源内容的小配件的选项。例如,步骤508表示正在评估的策略和/或用户同意,例如RSS小配件216的用户界面可向用户提示以指示该订阅源具有可用于该设备的某个[X]小配件,并询问用户是否想启用它。如果否,则该过程结束。注意到在步骤506,如果小配件已被安装,例如这不是用户首次订阅RSS订阅源,或者用户以某种其他方式安装了该小配件,则该过程前进至步骤512以使用已经安装的小配件。
如果用户/策略允许启用小配件,例如在步骤508用户同意,则在步骤510,RSS小配件继而安装新的小配件。在一个实现中,这可包括在<gadget>附件中写入基于元数据的必需的注册表信息,打开辅助显示器的控制面板小程序并提示用户将小配件分配给适当的设备,并将该特定的订阅源与新近安装的小配件相关联。这确保适当格式的后续附件(例如,简单内容格式的附件)仅被递送给该小配件。可向辅助平台注册新的小配件。在安装完成之后,过程继续至步骤512。
在步骤512,RSS小配件216加载并运行所安装的小配件。注意到,尽管小配件216自己可处理订阅源内容,在一个实现中,RSS小配件216不订阅该订阅源,不管理该订阅源,相反令新近加载并运行的小配件接收订阅源内容。除其他原因以外,这还有助于避免用户混淆,例如,这里该订阅源在用户设备RSS菜单上示出,同时在设备上显示单独的小配件。此外,所加载的小配件将处理其自己与其主机web服务器的交互、数据请求等,当它独立于RSS小配件216(该小配件216处理来自可能众多数据源的RSS订阅源)时是有利的。
如在图6中一般表示,经由图5加载和运行的(之前或新近安装的)小配件具有从RSS平台获取其特定订阅源(步骤618)以及处理与主机web服务器的数据交互(步骤624和628)的责任。与辅助平台的通信一般是在步骤620执行辅助设备理解格式所需的任何内容格式转换之后,将从RSS数据提取的任何内容(例如,简单内容格式附件中)发送给RSS平台(步骤622)。
以下信息针对某些示例的用户界面概念,使用页面来向用户演示信息,其中示例RSS字段通过将其封装在<brackets(括号)>中来示出:
标题栏:RSS文件夹该UI页面显示在辅助设备上高速缓存的可用的RSS文件夹。·带有具有未读项目的订阅源的文件夹可以是粗体的·文件夹可在结尾的括号内示出未读订阅源的数目·可用纯文本显示没有未读订阅源的文件夹·可突出显示所选文件夹 |
标题栏:RSS订阅源-[文件夹名]该页面显示用户对该辅助设备所订阅的订阅源·带有未读项目的订阅源可以是的粗体的,继之以括号中的未读项目数目·没有未读项目的订阅源可以是纯文本的·带有识别的媒体附件的订阅源在结尾将具有特殊图标,每一类型一个图标○识别的媒体:例如,照片、音乐、音频、视频 |
标题栏:[订阅源名=<channel title(频道标题)>]该页面显示该订阅源高速缓存的项目的头行视图 |
·以粗体显示项目<title>·太长的标题可省略·不存在的标题可用项目<description>的第一行代替·示出项目<description>的第一行■行可省略或截断■不存在的描述字段可留空■可按照最近更新的次序从上向下显示项目。 |
标题栏:[订阅源名]该页面显示设备上高速缓存的项目。媒体类型:文本■以粗体示出项目标题■太长的标题可省略■示出最后更新的时戳■时戳可省略■示出设备能够呈现的订阅源内容·如果内容不适合屏幕,则可上/下卷动·文本 |
标题栏:[订阅源名]媒体页面仅显示特定用户定义的媒体类型的附件。它不呈现文本或与订阅源相关联的任何其他媒体。媒体类型:图像 |
■以粗体示出项目标题■太长的标题可省略■示出最后更新的时戳■时戳可省略■示出附件标题(如果可用)■附件标题可省略■示出设备能够呈现的图像内容■以设备所支持的设置呈现图像(分辨率、色深度等)■如有需要,缩放图像以适合尺度 |
标题栏:[订阅源名]媒体类型:混合音频和文本■以粗体示出项目<title>■标题可继之以指示该项目附有音频内容例如音乐或播客的音频图标■太长的标题可省略■不存在的标题可由项目<description>的第一行代替■示出项目<description>的第一行■行可省略(或截断,视哪一个更便宜而定)■不存在的描述字段可留空■项目可按最近更新次序从上向下显示。 |
基本的两行显示不能良好地支持RSS,且在两行显示中,RSS信息与电子邮件或日历信息相比较并不关键和可读。对两行显示:■第一行■示出订阅源名——项目时戳。 |
■如果行不适合则省略;可向左/右卷动■第二行■示出项目名——项目描述■如果行不适合则省略;可向左/右卷动■除文本以外,适度拒绝格式化和媒体■导航订阅源■不示出文件夹信息,因为这不重要■小配件将展开文件夹/订阅源树并在基本显示器上顺序显示项目■上/下移动至订阅源中的下一项目。当订阅源用完项目时,可显示下一订阅源。当文件夹用完时,可显示下一文件夹的第一订阅源的第一项目,依此类推。 |
尽管本发明易于作出各种修改和替换构造,其某些说明性实施例在附图中示出并在上面被详细地描述。然而应当了解,这不旨在将本发明限于所公开的特定形式,而是相反地,旨在覆盖落入本发明的精神和范围之内的所有修改、替换构造和等效方案。