具体实施方式
本发明涉及将面向任务的用户界面用于以文档为中心的软件应用程序的系统和方法。面向任务的用户界面旨在比常规界面更易于发现,以及更好地执行未知的任务而不会牺牲执行已知任务的效率。用户界面便于搜索和/浏览可以通过使用以文档为中心的软件应用程序来执行的任务。
如在本申请中所使用的,术语“组件”、“系统”等指的是计算机相关的实体,或者是硬件、软件(例如,执行中的)和/或固件。例如,组件可以是运行在处理器上的进程、处理器、对象、可执行文件、程序和/或计算机。作为说明,运行在服务器上的应用程序和该服务器均可以是组件。一个或多个组件可以驻留在进程中,且组件可以位于一个计算机上和/或在两个或更多计算机之间分布。
参考附图描述本发明,在所有附图中,相同的参考标号被用来引用同样的元素。在以下描述中,为说明起见,描述众多具体细节,以提供对本发明的全面理解。然而,显然,可以无需这些具体细节而实现本发明。在其它实例中,公知的结构和设备以框图的形式示出,以便于描述本发明。
图1示出了根据本发明的方面便于导航任务的系统100。系统100包括任务导航组件110,它可以由用户使用来导航任务。另外,作为说明,用户可以使用能够利用导航组件110的应用程序,诸如对视力受损的用户的屏幕阅读器应用程序。用户可以与任务导航组件110交互,例如,使用鼠标、键盘、语音、触摸屏显示器、传感器(例如,检测身体移动、接近度、体温、触摸...的传感器)等。任务导航组件110还与可以执行任务的文档、应用程序、操作系统等相关联。任务导航组件是可缩放的,且例如可以与支持上千任务的应用程序相关联。任务导航组件包括浏览组件120和搜索组件130。浏览组件120可以用来浏览与文档、应用程序(例如,以文档为中心的软件应用程序...)、操作系统等相关联的任务的分层结构(例如,基于分层的任务索引)。搜索组件130可以由用户和/或应用程序使用来搜索任务。
任务是可以在应用程序中执行的动作、修改等等。例如,任务可以是将文本变为粗体或创建商业计划。同样,任务可以是用户想要使用应用程序完成的事物且可以为更多信息而与该用户对话。另外,任务可以完成涉及该任务的所有动作中的一部分,并可以向用户查询解释以及其它信息来完成剩余的动作。而且,任务可以在任何环境中启动,环境可以不同于仅当满足某些环境条件时才有用的常规工具和/或特征。作为说明,与某些常规文字处理应用程序相关联的“拆分单元格”工具仅当用户已经选中表格时才是活动的。相反,可以执行本发明中使用的“拆分单元格”任务而不必之前选中表格。而是,该任务可以便于指令用户选取表格中的单元格(如果文档中存在表格)。同样,假定文档中不存在表格,那么该任务可以便于创建表格和/或向用户查询她是否希望创建表格,然后可以继续任务的剩余部分。根据本发明的一方面,任务可以被组织成分层结构(例如,基于分层的任务的索引)。分层结构中的任务例如可以在用户选取特定任务之后直接执行。
可以将任务导航组件110用于以文档为中心的软件应用程序。作为说明,任务导航组件100可以由用户使用以便于发现可以使用以文档为中心的软件应用程序执行的任务。以文档为中心的软件应用程序可以是运行在客户机上的软件、从服务器执行的软件或者是两者的结合。以文档为中心的软件应用程序临时性地转换文档以允许用户查看和/或执行文档上的操作。以文档为中心的软件应用程序可以是,例如,生产应用程序(例如,文字处理软件、演示应用程序、电子表应用程序、桌面发布和网络内容创建应用程序...)、成像应用程序、开发应用程序等。应用程序的类型允许用户查看和/或修改相关联类型的文档。因此,例如,文字处理程序可以被用来查看和/或修改文本文档(例如,.doc文件...)。文档是可以含有若干视图的数据片段。为说明起见,html文档可以作为网页、纯文本、从硬盘中直接读取的一连串1和0来等查看。另外,文档是与其它数据分离的。可以用于本发明的任何类型的文档(以及相关联的以文档为中心的软件应用程序)包括,但不限于,电子表、文本、图象、注解、示意图等。
浏览组件120提供可以使用应用程序、操作系统、文档执行的任务的分层结构,且用户和/或应用程序可以浏览该任务的分层结构。例如,用户可以浏览分层结构来发现可以被完成的任务、选取所期望的任务等。根据本发明的示例性方面,浏览组件120可以是应用程序入口,借此该入口的功能以层次组织。这样,利用浏览组件120的导航可以类似于导航网站。例如,导航组件120可以提供后退按钮、前进按钮等,它们可以便于遍历分层结构内的不同节点。除此之外或者可选地,浏览组件120可以提供用户可以使用鼠标、键盘、触摸面板等选取的超链接,它允许遍历分层结构。而且,用户可以利用语音来导航分层结构。根据本发明的另一方面,浏览组件120的分层结构可以允许同一任务在该分层结构内的多个位置出现。本发明构想到分层结构可以在运行时(例如,由浏览组件120、应用程序、操作系统...)、在制造该应用程序时(例如,由以文档为中心的软件应用程序)和/或在安装该应用程序(或任何应用程序)或操作系统时生成。另外,浏览组件120可以在运行时、安装、或任何其它时间获取任务的分层结构。而且,该分层结构可以基于用户偏好、安装的应用程序、制造商的修改(例如,通过因特网接收)等而被更新。可以理解,任务的分层结构可以是基于树的分层结构;然而,本发明不限制于此。
浏览组件120还可以被利用来发现可以使用应用程序、操作系统、文档等完成的任务。根据一方面,浏览组件120可以显示描述分层结构中沿着路径存在的任务的类型的工具提示。例如,如果用户将光标移动至显示器上与浏览组件120相关联的元素上方,那么可以显示工具提示来向用户警告分层结构中该特定段的内容。
搜索组件130便于搜索可以通过以文档为中心的软件应用程序、操作系统、文档等执行的任务。搜索组件130可以从多个任务中搜索任务。在一示例性方面,搜索组件130可以从可以使用应用程序、操作系统、文档等执行的所有任务中搜索任务。或者,搜索组件130可以便于可被执行的任务的子集中的搜索。搜索组件130可以利用关键字搜索、自然语言搜索、语音等。根据本发明的一方面,搜索组件130可以便于搜索位于任务分层结构(例如,基于分层的任务的索引)内的任务。
本发明提供相比常规用户界面的优点。具体地,本发明的用户界面提高了可便于利用应用程序(例如,以文档为中心的软件应用程序)的任务的可发现性。另外,系统100使得用户能够有效地完成她不知道如何实行的任务,从而减少了对使用应用程序“帮助”特征的需求。而且,本发明允许对用户知道如何完成的任务的高效的执行。依照本发明的示例性方面,工具栏和/或菜单可以使用用户最常用的工具和/或特征来提供。例如,可以基于用户偏好、使用等个性化包括的工具和/或菜单。
参考图2,示出了便于导航可以使用应用程序(例如,以文档为中心的软件应用程序)、操作系统、文档等完成的任务的分层结构。任务可以与应用程序、操作系统和/或文档有关。例如,任务可以是在文档上操作的插入脚注、将文字用斜体表示等。根据另一说明,任务可以在应用程序上操作,诸如创建新的宏的任务。系统200包括允许用户和/或应用程序导航与文档、应用程序(例如,以文档为中心的软件应用程序)、操作系统等相关联的任务的任务导航组件210。而且,导航组件210包括浏览组件120、搜索组件130和环境分析器220。浏览组件120使得用户和/或应用程序能够遍历能够被执行的任务的分层结构。另外,搜索组件130便于搜索利用例如关键字搜索、自然语言搜索、语音等的任务。
环境分析器220可以被用来评估与文档、应用程序、操作系统等相关联的当前环境。例如,环境分析器220可以确定通过任务导航组件210利用以文档为中心的软件应用程序的用户和/或应用程序的身份,标识正被使用的应用程序(例如,以文档为中心的软件应用程序),确定是否选取了文档内的特定对象等。例如,环境分析器220可以确定正使用演示应用程序。另外,环境分析器220可以标识选取了诸如表格、幻灯片、图象等。环境分析器220还可以评估正使用任务导航组件210的用户的偏好。
除此之外或者可选地,环境分析器220可以呈现与特定环境相关的任务。这样,环境分析器220可以显示,例如关于用户正使用的演示应用程序的任务。在示例性实施例中,如果确定了选中了文档内的表格,则环境分析器220可以显示与该表格相关的任务。
根据本发明的一方面,可以结合浏览组件120使用环境分析器220,使得环境分析器220确定当前环境并向浏览组件120提供该环境或与该环境相关的信息。之后,浏览组件120可以向用户呈现包括可以执行的全部任务的子集的分层结构。或者,浏览组件120可以向用户显示分层结构中与当前环境相关的特定位置和/或与该位置相关的任务,从而使得用户能够通过选中超链接,利用后退和/或前进按钮等从这样的位置遍历。
转向图3,示出了便于呈现可以使用应用程序、文档、操作系统等实行的任务的系统300。系统300包括任务导航组件310,它包括浏览组件120、搜索组件130、环境分析器220以及个性化组件320。个性化组件320被用来将任务导航组件310个性化成使用该任务导航组件310的每一用户和/或应用程序的个别偏好和/或典型使用模式。
根据一方面,个性化组件320可以维护由用户执行的任务的历史记录。历史记录可以同浏览组件120一起使用;从而,例如用户可以通过所执行的任务的历史记录来浏览。除此之外或者可选地,用户可以使用搜索组件130来从历史记录中的任务中搜索任务。搜索组件130还可以被用来例如按照文档、时间等过滤历史记录中的任务。
而且,个性化组件320可以使得用户能够输入多个喜爱的任务。例如,当用户发现可以使用以文档为中心的软件应用程序完成的任务时,用户可以将该任务添加至其喜爱的任务中。可以使用鼠标、键盘、语音输入等添加任务。可以使用浏览组件120来浏览和/或使用搜索组件130来搜索喜爱的任务。浏览组件120和/或搜索组件130可以使用喜爱的任务来使得用户能够快速地访问这些特定的任务,因为仅浏览和/或搜索较小数量的任务。
图4示出了便于标识可以使用文档、应用程序、操作系统等实行的任务的系统400。系统400包括任务导航组件410,它包括浏览组件120和搜索组件130。任务导航组件410被耦合至任务存储420,它存储与文档、应用程序、操作系统等相关联的任务。根据示例,任务存储420包含应用程序(例如,以文档为中心的软件应用程序)可以支持的任务。
任务存储420可以由浏览组件120和/或搜索组件130来使用。例如,当用户使用搜索组件130来执行搜索时,搜索组件130查询任务存储420的内容,来返回与该搜索相关的任务。而且,任务可以被分层地存储在任务存储420中。或者,任务可以被存储在聚类(例如,具有相关任务的子聚类)、表等中,且浏览组件120可以便于向用户呈现分层结构中的任务。而且,可以当制造或开发应用程序或操作系统时、当创建文档时、当安装应用程序或操作系统时、当运行时(例如,通过任务导航组件410...)等,来向任务存储420提供任务。
任务存储420可以是,例如易失性存储器或者是非易失性存储器,或可以包括易失性和非易失性存储器两者。作为说明,而非限制,非易失性存储器可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM)或闪存。易失性存储器可以包括,随机存取存储器(RAM),它作为外部高速缓存存储器。作为说明,而非限制,RAM可以以多种方式可用,诸如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)以及直接Rambus RAM(DRRAM)。本发明系统和方法的任务存储420旨在包括,而不限于,这些和任何其它合适类型的存储器。本发明构想到任务存储420可以是任务导航组件410的一部分,如所述作为独立的组件,或作为其结合。另外,例如,任务存储420可以包括存储在硬盘上并当运行时加载至存储器中的文件和/或数据库。
参考图5,示出了使得能够可以向通过应用程序(例如以文档为中心的软件应用程序)、文档、操作系统等执行的任务的分层结构添加任务的系统500。该系统包括任务导航组件510(例如,任务导航组件110、210、310、410)、任务存储420以及任务添加组件520。任务添加组件520便于创建新的任务和/或向任务存储420提供新的任务来将该新的任务添加至存储器中的多个现有任务。
任务添加组件520可以被用来创建新的任务。例如,任务添加组件520可以包括任务编辑器,它可以由用户使用来创作新的任务。作为说明,用户可以利用任务编辑器结合现有任务来生成新的任务。由此,例如,用户可以创作引入表格并将该表格单元格中的所有文本使用斜体的新任务。任务添加组件520除此之外或者可选地可以在新软件组件安装之后添加任务。例如,如果安装了以文档为中心的软件应用程序,那么可以通过任务添加组件520来向任务存储420提供新的任务。这些任务可以由任务添加组件520自动地或基于用户对任务的选择来添加;然而,本发明不限制于此。
而且,任务添加组件520可以向用户建议新任务。例如,任务添加组件可以分析任务导航组件(例如,浏览组件120、搜索组件130、环境组件220、个性化组件320...)的使用,并可以因此建议新任务。在示例性实施例中,任务添加组件520可以建议作为现有任务的组合的新任务。根据本发明的另一方面,任务添加组件520可以接收对应用程序和/或操作系统的更新(例如,通过因特网、诸如光盘等介质...),这提供了可以向任务存储420提供的额外的任务。而且,可以在分层结构中通过用户、任务添加组件520、任务导航组件510(例如,浏览组件120...)、任务存储420等分类新任务。
根据又一示例,任务添加组件可以被用来由应用程序开发员和/或创作者来创建任务和/或原始分层结构。这样,任务添加组件520可以被用作允许创建任务的分层结构并向任务分配实现方式的创作工具。除此之外或者可选地,分离的工具(例如,用户不可访问)可以被用来生成任务的原始分层结构以及分配实现方式。
图6示出了根据本发明的方面导航和/或执行与文档、应用程序(例如,以文档为中心的软件应用程序)、操作系统等相关联的任务的系统600。系统600包括任务导航组件510、界面组件610、包括对话组件630的任务执行组件620以及机器学习组件640。用户和/或应用程序可以与界面组件610交互。界面组件610可以是,例如显示器、鼠标、键盘、触摸面板、操纵杆、传感器、人机交互接口、使得用户能够输入和/或输出信息的设备,或其组合。
界面组件610被耦合至任务导航组件510。这样,用户可以搜索和/或浏览可以使用文档、应用程序、操作系统等通过界面组件610利用任务导航组件510来执行的任务。作为示例,用户可以使用键盘和显示器来进行键盘搜索,以使用任务导航组件510(例如,搜索组件130、浏览组件120...)标识所期望的任务。
另外,界面组件610被耦合至任务执行组件620。任务执行组件620在选取任务之后实行与该任务相关联的命令。例如,可以由用户和或另一应用程序通过界面组件610使用任务执行组件620来选择任务。可以从当浏览时等使用导航组件510获取的所接收到的搜索结果、历史记录、喜爱的任务、环境中选择任务。根据示例,任务执行组件620可以当选中任务时自动执行与该任务相关联的命令。依照另一示例性实施例,任务执行组件620可以使用对话组件630来从用户处获取另外的信息和/或请求用户执行另外的动作等。例如,用户可以选取拆分表格中单元格的任务。如果在该文档中仅存在一张表格,那么任务执行组件620可以选取该表格在其上执行操作。然而,任务执行组件620需要向用户查询要拆分表格中的哪个单元格;这样,可以使用对话组件630来请求用户选取表格中要拆分的单元格。
另外,任务导航组件510(和/或图2的浏览组件120、搜索组件130和环境分析器220、图3的个性化组件320、图5的任务添加组件520...)和/或任务执行组件620,可以结合导航和/或执行与以文档为中心的软件应用程序相关联的任务来使用机器学习组件640。机器学习指的是涉及允许计算机和/或程序“学习”的技术的开发的人工智能领域。更具体地,机器学习可以涉及用于至少部分地基于对数据集的分析来创建和/或修改计算机程序的方法。这样,任务导航组件510和/或任务执行组件620可以随时间的推移而更高效地操作,因为收集了更多的环境数据、用户历史记录、应用程序历史记录等。
而且,机器学习组件640可以作出关于确定可以被完成的任务和/或执行与之相关联的任务的推论。如此处所用,术语“推断”或“推论”一般指的是从通过事件和/或数据捕捉的观察值集合中推出或推断系统、环境和/或用户的状态的过程。推论可以例如被用来标识特定的环境或动作,或可以生成状态的概率分布。推论可以是概率性的——即,基于对数据和事件的考虑对所关心的状态的概率分布的计算。推论也可以指的是用于从一组事件和/或数据组成较高层级事件的技术。这样的推论使得从一组观察到的事件和/或存储的事件数据中构造新的事件或动作,而不论所观察到的事件是否在紧密相邻的时间上相关,也不论所观察到的时间和数据是来自一个还是若干个事件和数据源。这样,给定特定环境数据,任务导航组件510(和/或浏览组件120、搜索组件130、环境分析器220、个性化组件320、任务添加组件520...)可以作出关于导航和/或执行可以通过以文档为中心的软件应用程序实行的任务的推论。
参考图7,示出了便于发现和/或执行可以被完成的任务的系统700。系统700包括面向任务的用户界面710和以文档为中心的软件应用程序720,它们被耦合在一起。用户与面向任务的用户界面710交互,该用户界面可以向用户提供可以使用以文档为中心的软件应用程序720执行的任务。面向任务的用户界面可以使用导航技术(例如,通过导航组件110、浏览组件120、搜索组件130、环境分析器220、个性化组件320...)来生产以文档为中心的软件应用程序720可以执行的任务。任务可以被用来查看和/或修改以文档为中心的软件应用程序720和/或相关联的文档。
图8-10示出根据本发明的方法。为说明的简单起见,该方法作为一连串动作来示出和描述。可以理解和领会,本发明不受所示动作和/或动作的顺序的限制,例如,动作可以按各种顺序和/或与此处未提供和描述的其它动作同时发生。而且,不是所有示出的动作对实现根据本发明的方法都是必需的。另外,本领域的技术人员可以理解和领会,该方法可以替换地通过状态图或事件被表示为一连串相互关联的状态。
图8示出了便于发现和/或执行可以使用应用程序(例如,以文档为中心的软件应用程序)、操作系统等执行的任务的方法800。在810处,接收到用户输入。用户输入是关于搜索和/或浏览请求的。在820处,基于用户输入导航任务。例如,可以浏览、搜索任务。根据本发明的方面,用户可以输入关键字搜索、自然语言搜索和/或语音,这样可以向用户返回关于搜索准则的多个任务。可以对一个或多个应用程序可以完成的所有任务上或仅在其子集上执行搜索。可替换地或者除此之外,用户可以浏览向用户呈现的任务的分层结构。可以使用例如后退按钮、前进按钮、多个入口、链接等来遍历分层结构。依照另一示例性方面,可以部分地基于文档和/或应用程序相关联的当前环境(例如,用户、选择的对象、使用的应用程序)来导航任务。而且,可以基于对特定用户个性化的准则来导航任务,诸如例如,喜爱的任务、历史记录、使用某个任务的概率等。另外,在830处执行任务。可以自动地或使用用户协助来执行任务。而且,可以无论使用用户输入与否来完成任务的启动。
转向图9,示出了根据本发明的方面便于呈现和/或执行任务的方法900。在910处,评估当前环境。例如,可以考虑文档等内选取的用户、应用程序、文档、对象。在920处,显示与当前环境相关联的任务。这样,显示的任务可以与文档中选中的对象(例如,幻灯片、表格、图象...)相关。例如,如果用户选中表格,那么将向她呈现可应用于该表格的任务。在930处,在文档和/或应用程序(例如,以文档为中心的软件应用程序)上执行所选中的任务。
图10示出了根据本发明的一方面,便于使用应用程序(例如,以文档为中心的软件应用程序)、操作系统、文档等来导航和/或执行任务的方法1000。在1010处,接收关于搜索和/或浏览任务的信息。例如,信息可以是关于搜索的性能,且可以被用来生成搜索结果。为说明起见,搜索可以在可以被完成的所有任务或任务的子集上执行。除此之外或者可选地,信息可以被用来浏览任务的分层结构。分层结构可以被存储在任务存储(例如,(图4的)任务存储420)中和/或可以在浏览时生成。在1020处,接收到任务选择。由用户选取用户想要执行的特定任务。在1030处,开始执行任务,使得执行部分或所有动作。在1040处,确定是否可能完成该任务而不必向用户查询或向用户请求来执行动作。如果不能够完成该任务,那么在1050处进行与用户的对话。对话可以请求用户提供信息、执行动作等。当完成该对话后,方法返回至1030来执行任务。如果没有额外的查询和/或动作是必需的,那么能够完成该任务,然后结束方法1000。
图11是用于以文档为中心的软件应用程序的面向对象的用户界面1100的屏幕截图。该面向对象的用户界面1100描述了新的演示。根据本发明的方面,可以确定当前环境(例如,该新的演示)。基于当前环境,用户界面可以在格式栏1110中显示与当前环境相关的任务。这样,依照该示例,包含在格式栏1110中的项涉及该新的演示。
转向图12,示出了根据本发明的一方面便于以可发现的方式导航任务的分层结构的面向任务的用户界面1200的屏幕截图。用户界面1200描述了其中用户已经选择了名为“Working with objects and properties of the current slide(使用当前幻灯片的对象和属性工作)”的任务的示例性情景。在这样的选取之后,出现用户界面1200左侧的面板1210,它显示当前幻灯片的对象和属性以及关于两者的信息。参考图13,示出了便于发现任务的面向任务的用户界面1300的屏幕截图。类似于用户界面1200(图12),用户界面1300示出了含有对象和/或属性的面板1210。用户可以利用输入设备悬停在面板1210中的项1310上方(例如,通过鼠标定位光标...),这便于显示预览窗格1320。预览窗格1320例如可以表示如果用户沿着该用户悬停其上的特定项1310的路径向下遍历所可能的任务。在该示例性屏幕截图中,所显示预览窗格1320涉及页眉和页脚,并呈现存在于分层结构该段中的任务。从而,预览窗格1320提高了可被执行的任务的可发现性。
图14是根据本发明的一个或多个方面的面向任务的用户界面1400的屏幕截图。面向任务的用户界面1400可以包括为可以通过以文档为中心的软件应用程序执行的任务的分层结构的有效导航而使用的面包屑式控件1410。转向图15,示出了根据本发明的一个或多个方面的面向任务的用户界面1500的屏幕截图。用户界面1500示出了可以使用以文档为中心的软件应用程序完成的任务的分层结构。
为了提供用于实现本发明各个方面的另外的环境,图16-17和以下讨论旨在提供可在其中实现本发明各个方面的合适的计算环境的简要概括描述。尽管以上在运行在本地计算机和/或远程计算机上的计算机程序的计算机可执行指令的通用语境中描述了本发明,但是本领域的技术人员可以认识到,也可以与其它程序模块结合来实现本发明。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务和/或实现特定抽象数据类型。
而且,本领域的技术人员可以理解,可以使用其它计算机系统配置来实现该有创造性的方法,包括单处理器或多处理器计算机系统、小型计算机、大型计算机、以及个人计算机、手持式计算设备、基于微处理器和/或可编程消费者电子产品等,它们中的每一个在操作上都可以与一个或多个相关联的设备通信。本发明所示的方面也可以在分布式计算环境中实现,其中任务由通过通信网络连接的远程处理设备执行。然而,本发明即使不是全部方面,也有某些方面可以在独立的计算机上实现。在分布式计算环境中,程序模块可以位于本地和远程存储器存储介质中。
图16是本发明可与之交互的示例计算环境1600的示意性框图。系统1600包括一个或多个客户机1610。客户机1610可以是硬件和/或软件(例如,线程、进程、计算设备)。系统1600还包括一个或多个服务器1620。服务器1620可以是硬件和/或软件(例如,线程、进程、计算设备)。服务器1620可以例如作为通过使用本发明来执行转变的线程的外壳。
客户机1610与服务器1620之间的一种可能的通信可以是适于在两个或更多计算机进程之间传输的数据包的形式。系统1600包括可以被使用来便于客户机1610与服务器1620之间通信的通信架构1640。客户机1610可被连接至可被用来存储对客户机1610而言为本地的信息的一个或多个客户机数据存储1650。类似地,服务器1620可被连接至可被用来存储对服务器1640而言为本地的信息的一个或多个服务器数据存储1630。
参考图17,用于实现本发明各方面的示例性环境1700包括计算机1712。计算机1712包括处理单元1714、系统存储器1716以及系统总线1718。系统总线1718将包括但不限于系统存储器1716的系统组件耦合至处理单元1714。处理单元1714可以是各种可用处理器中的任何一种。也可以使用双微处理器和其它多处理器体系结构作为处理单元1714。
系统总线1718可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和/或使用各种可用的总线体系结构中的任一种的局部总线,可用的总线体系结构包括,但不限于,工业准则体系结构(ISA)、微通道体系结构(MCA)、扩展的ISA(EISA)、智能驱动器电子接口(IDE)、VESA局部总线(VLB)、外围部件互连(PCI)、插件总线、通用串行总线(USB)、高级图形接口(AGP)、个人计算机存储卡国际协会总线(PCMCIA)、火线(IEEE 1394)以及小型计算机系统接口(SCSI)。
系统存储器1716包括易失性存储器1720和非易失性存储器1722。基本输入/输出系统(BIOS)包含有助于诸如启动时在计算机1712中元件之间传递信息的基本例程,它通常存储在非易失性存储器1722中。作为说明,而非限制,易失性存储器1722可以包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除ROM(EEPROM)或闪存。易失性存储器1720可以包括用作外部高速缓存的随机存取存储器(RAM)。作为说明,而非限制,RAM以多种形式可用,诸如同步RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双倍数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)以及直接Rambus RAM(DRRAM)。
计算机1712也包括可移动/不可以移动、易失性/非易失性计算机存储介质。图17示出例如磁盘存储1724。磁盘存储1724包括,但不限于,如磁盘驱动器、软盘驱动器、磁带驱动器、Jaz驱动器、Zip驱动器、Ls-100驱动器、闪存卡或记忆棒的设备。另外,磁盘存储1724可以包括独立或与其它存储介质结合的存储介质,包括但不限于,诸如光盘ROM设备(CD-ROM)、CD可记录驱动器(CD-R驱动器)、CD可重写驱动器(CD-RW驱动器)或数字多功能盘ROM驱动器(DVD-ROM)等的光盘驱动器。为了便于将磁盘存储设备1724连接至系统总线1718,一般使用诸如接口1726等可移动或不可移动接口。
可以理解,图17描述了作为用户和在合适的操作环境1710中描述的基本计算机资源之间的中介的软件。这样的软件包括操作系统1728。可被存储在磁盘存储1724上的操作系统1728用来控制和分配计算机系统2712的资源。系统应用程序1730利用了操作系统1728通过存储在系统存储器1716或者磁盘存储1714上的程序模块1732和程序数据1734执行的资源管理。可以理解,本发明可以使用各种操作系统或操作系统的组合来实现。
用户通过输入设备1736向计算机1712输入命令或信息。输入设备1736包括,但不限于,诸如鼠标、跟踪球、笔、触摸垫等定点设备、键盘、麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪、TV调谐器卡、数码相机、数码摄像机、网络摄像头等。这些和其它输入设备经由接口端口1738通过系统总线1718连接至处理单元1714。接口端口1738包括,例如串行端口、并行端口、游戏端口和通用串行总线(USB)。输出设备1740使用某些与输入设备1736相同类型的端口。从而,例如,USB端口可以用于向计算机1712提供输入,并向输出设备1740提供来自计算机1712的输出信息。提供输出适配器1742来示出存在类似监视器、扬声器和打印机以及其它需要专用适配器的输出设备1740的某些输出设备1740。作为说明而非限制,输出适配器1742包括提供输出设备1740和系统总线1718之间的连接装置的显卡和声卡。应该注意,诸如远程计算机1744等其它设备和/或设备系统同时提供输入和输出能力两者。
计算机1712可使用至一台或多台远程计算机,诸如远程计算机1744的逻辑连接在网络化环境中操作。远程计算机1744可以是个人计算机、服务器、路由器、网络PC、工作站、基于微处理器的装置、对等设备或其它常见网络节点等,且通常包括上文相对于计算机1712描述的许多或所有元件。为简洁起见,对于远程计算机1744仅示出存储器存储设备1746。远程计算机1744通过网络接口1748被逻辑连接至计算机1712,并且然后通过通信连接1750被物理地连接。网络接口1748包括诸如局域网(LAN)和广域网(WAN)的通信网络。LAN技术包括光纤分布式数据接口(FDDI)、铜线分布式数据接口(CDDI)、以太网、令牌环等。WAN技术包括,但不限于,点对点链路、类似综合业务数字网(ISDN)及其变体的电路交换网络、分组交换网络和数字用户线(DSL)。
通信连接1750指的是用来将网络接口1748连接至总线1718的硬件/软件。尽管为说明清楚,将通信连接1750示为位于计算机1712内,然而通信连接2750也可以在计算机2712外部。仅为示例的目的,连接至网络接口1748所必需的硬件/软件包括内部和外部技术,诸如包括常规电话级调制解调器、线缆调制解调器和DSL调制解调器等的调制解调器、ISDN适配器以及以太网卡。
以上描述的包括本发明的示例。当然,不可能为描述本发明而描述每个可想象的组件或方法的组合,但是本领域的普通技术人员可以认识到,本发明的众多其它组合和排列是可能的。从而,本发明旨在包括落入所附权利要求书精神和范围内的所有这样的变更、修改和变化。
尤其关于以上描述的组件、设备、电路、系统等执行的各种功能,用于描述这样的组件的术语(包括对“装置”的引用),旨在对应于执行所描述组件的指定的功能的任何组件(例如,功能等效组件),即使与执行本发明此处所示示例性方面的功能的所揭示的结构结构上不同,除非以其它方式指示。就此,也可以认识到,本发明包含系统,以及含有用于执行本发明的各个方面的动作和/或事件的计算机可执行指令的计算机可读介质。
另外,尽管仅参考若干实现方式揭示了本发明的具体特征,这样的特征可以按照所期望的与其它实现方式的一个或多个特征相结合,并有利于任何给定或特定的应用程序。而且,就术语“包括”、“包含”以及其变化或者在详细描述中或者在权利要求书中所使用的意义上而言,这些术语旨在以类似于术语“含有”的方式为包括性的。