首页 / 专利库 / 专利权 / 声明 / 基于声明性映射的用户输入的响应

基于声明性映射的用户输入的响应

阅读:748发布:2020-05-12

专利汇可以提供基于声明性映射的用户输入的响应专利检索,专利查询,专利分析的服务。并且提供了例如依据故事板而实现对用户输入作出直接响应的系统和方法。例如,应用可以预先定义根据接收的输入描述输出的故事板。可以外在且与所述应用无关地使用所述预先定义的故事板,以代表所述应用处理用户输入。,下面是基于声明性映射的用户输入的响应专利的具体信息内容。

1.一种由计算系统的至少一个处理器实现的方法,所述方法包含:
从应用中接收基于输入描述输出的声明性映射的集合(100);
接收指向所述应用的用户输入(110,400);以及
响应于所述用户输入,基于来自所述声明性映射集合的至少一个声明性映射而代表所述应用生成输出(120)。
2.依照权利要求1所述的方法,所述方法进一步包含:经由触摸界面接收触摸操作(400,410),以及进一步包含确定所述触摸操作是否与所述声明性映射集合中的声明性映射相关联。
3.依照权利要求2所述的方法,所述方法进一步包含:响应于所述用户输入没有与所述声明性映射集合相关联(440)而将所述用户输入转发到所述应用。
4.依照权利要求1所述的方法,其中,所述生成输出(120)包含:
识别由所述用户输入表示的输入操作(500);以及
从所述声明性映射集合中选择与所述输入操作相关联的至少一个声明性映射(510)。
5.依照权利要求4所述的方法,所述方法进一步包含:基于所述用户输入确定与所述输入操作相关联的值的集合(520)。
6.依照权利要求5所述的方法,所述方法进一步包含:基于所述至少一个声明性映射为与所述输入操作相关联的所述值的集合而确定输出参数集合(530)。
7.依照权利要求6所述的方法,所述方法进一步包含:基于所述输出参数集合生成输出转换(540),其包括在所述应用的区域或对象的至少一个上生成操作。
8.依照所述权利要求1所述的方法,所述方法进一步包含:将所述输出发送到配置为在显示器上显示所述输出的图形子系统(550)。
9.一种系统,所述系统包含:
直接操作部件(804,940,1100),配置为从应用(802,920)接收声明性映射集合(806,
942)以及从所述系统的操作系统(910)接收针对所述应用的触摸输入(800,900),其中,所述直接操作部件(804,940,1100)依据所述声明性映射集合(806,942)而独立于所述应用并且代表所述应用导出作为所述触摸输入的响应的输出(944)。
10.依照权利要求9所述的系统,其中,所述声明性映射集合(806,942)与触摸操作的类型相关联。
11.依照权利要求9所述的系统,其中,所述声明性映射集合(806,942)与所述应用再现应用内容(926,938)的显示器的区域(936)相关联。
12.依照权利要求11所述的系统,其中,将所述直接操作部件(804,940,1100)配置为将所述应用内容(926)的所述输出(944)应用到与所述声明性映射集合(806,942)相关联的显示器空间区域。
13.依照权利要求9所述的系统,其中,将所述直接操作部件(804,940,1100)配置为将所述输出(944)提供给所述操作系统(910)以指示图形处理单元(932)应用由所述输出(944)规定的输出转换。
14.依照权利要求9所述的系统,其中,所述声明性映射集合(806,942)包括所述触摸输入特征集合的各自的声明性映射。
15.依照权利要求9所述的系统,其中,所述声明性映射集合(806,942)包括多个函数,所述函数将所述触摸输入的输入参数集合映射到为所述触摸输入的响应而规定所述输出(944)的输出参数集合。

说明书全文

基于声明性映射的用户输入的响应

技术领域

[0001] 本主题公开涉及基于由应用预先定义的输入至输出的声明性映射而代表应用对用户输入作出响应。

背景技术

[0002] 典型地,计算机软件以各种各样可能的响应对用户输入作出响应。例如,对诸如鼠标输入的用户输入或者来自指向装置的其他输入作出的反应可以是更新显示屏上光标(cursor)的位置。对用户输入作出的其他响应可包括更广泛的任务,例如,将在显示屏上显示的新内容的重新获得或者生成。在更进一步的示例中,应用可以对用户输入响应以对之前生成的显示内容进行复杂操作和/或转换。
[0003] 随着诸如触摸屏、多点触摸显示器等的触摸输入技术的快速扩散,计算机软件受到了用户输入类型不断增加的变化的影响。举例来说,触摸输入可以涉及各种手指和手操作,例如猛敲(swipe)、收缩(pinch)、轻敲、持续接触等。这种触摸输入可以产生复杂输入的涌入,要求应用在给定时间作出响应。
[0004] 典型地,依照下列过程,对用户输入从用户动作到应用响应进行处理。经由例如键盘、鼠标、指示笔、触摸屏等的输入装置将用户动作捕捉为用户输入。输入装置以及相关联的硬件将用户动作转换成由操作系统接收的信号。该操作系统可以处理这些信号,识别出与该用户输入相关联的一个或多个应用,以及将一个或多个消息经由系统应用程序接口(API)、系统程序库、应用基础结构等发送到应用。该应用使用应用逻辑以生成适当的响应,其通过该操作系统反向传送回输出硬件,将该响应表示给用户。上述过程可以引入附加处理时间,其可能对应用的响应性有负面影响,特别是对于像触摸输入那样的日益增多的复杂输入类型。此外,该附加处理时间引入了可视效果,特别是对于触摸输入。例如,利用触摸输入,用户可以直接使手指位置与屏幕上的响应联系起来。
[0005] 以上所述的当前输入处理及响应系统的不足仅仅用于提供一些常规系统问题的概述,而没有打算是穷尽的描述。通过阅读以下的说明书,其他常规系统的问题以及本文所描述的各种非限制性的实施例的相应益处将进一步变得清楚明了。发明内容
[0006] 本文提供了简化的发明内容以助于实现对随后的详细描述和附图中的示范性的、非限制性的实施例的不同方面的基本或概括理解。然而,本发明内容没有打算作为广泛的或者详尽的概述。相反,本发明内容的唯一目的是以简化形式介绍一些与某些示范性的、非限制性的实施例相关的观念,以将其作为随后的不同实施例的详细描述的前奏。
[0007] 在一个实施例中,应用可以提供预先定义特定输入的全部输出的一个或多个故事板(storyboard)。故事板可以根据接收的输入描述输出,以便可以依照获得的用户输入生成适当的输出。故事板实现了用户输入的快速反馈和响应,这是由于可以独立于应用来处理该用户输入。例如,在一个实施例中,操作系统可以使用故事板而代表应用对用户输入作出响应,以增加该应用的性能,并使交互响应普适于(universalize)运行在操作系统上的所有应用。
[0008] 在另一个实施例中,响应于触摸操作,可将输出转换描述为故事板以实现对触摸输入的直接响应。触摸输入可以包括触摸操作,其中,用户经由用户手指和手的手势直接操作显示屏上的对象。通过故事板,可以提前将不同操作类型,例如,划线(stroke)、拖动、轻拂(flick)、收缩、多点手势等,声明性地映射到不同输出转换,例如,缩放、扫视(pan)、平移、倾斜(skew)、旋转、改变比例等,这可以独立于应用而被执行。
[0009] 以下将更详细地描述这些及其他实施例。

附图说明

[0010] 参照附图将进一步描述各种非限制性的实施例,其中:图1是图解说明旁路(bypass)应用的输入处理并代表该应用对用户输入作出响应的示范性的、非限制性的实施例的流程图
[0011] 图2是依照一个或多个方面的常规触摸输入和视觉响应的示范性的、非限制性的图解说明。
[0012] 图3是依据一个或多个实施例的经由输入堆栈的常规输入流的示范性的、非限制性的图解说明。
[0013] 图4是图解说明处理与预先定义的操作相对应的用户输入的示范性的、非限制性的实施例的流程图。
[0014] 图5是图解说明以由应用预先定义的方式对用户输入作出响应的示范性的、非限制性的实施例的流程图。
[0015] 图6是依据一个或多个实施例的表示为故事板的扫视操作的示范性的、非限制性的图解说明。
[0016] 图7是依据一个或多个实施例的表示为故事板的旋转操作的示范性的、非限制性的图解说明。
[0017] 图8是图解说明代表和代替与用户输入相关联的应用对用户输入作出响应的示范性的、非限制性的动作的方图。
[0018] 图9是依据一个或多个实施例的示范性的、非限制性的直接操作系统的方块图。
[0019] 图10是依据一个或多个实施例的响应于输入操作的输出转换的示范性的、非限制性的图解说明。
[0020] 图11是依据一个或多个实施例的示范性的、非限制性的直接操作部件的方块图。
[0021] 图12是表示可以实现本文所描述的各种实施例的示范性的、非限制性的联网环境的方块图;以及图13是表示可以实现本文所描述的一个或多个方面的各种实施例的示范性的、非限制性的计算系统或操作环境的方块图。

具体实施方式

[0022] 概述如同背景技术中所讨论的那样,用户输入和应用输出之间的反应时间(latency)可能造成应用看上去无反应或反应缓慢。例如,在由硬件获得用户输入的时间与将输出显示在显示屏上的时间之间的时间段处于几十毫秒到几百毫秒的范围。当该应用烦扰于执行耗时的任务(例如I/O到磁盘、复杂数学运算)同时用户输入排队时,这个延迟可能更容易引起用户的注意。
[0023] 此外,用户输入的某些分类对于反应时间问题比其他分类更敏感。在一个示例中,通过触摸输入,可由用户容易地观测出如上所述的反应时间,从而使应用看上去无反应和缓慢。改善应用响应性而不管输入反应时间的常规方法包括使用多个线程来分配和分离应用的任务。例如,应用可以包括输入线程和再现线程。输入线程从例如应用结构或操作系统的较低层获得用户输入消息,并且可以实现一个队列。输入线程周期性地将获得的用户输入排列到再现线程,再现线程基于用户输入执行输出的再现和布局。分离的输入线程和再现线程使应用保持对用户输入作出响应,例如,在后端处理期间连续地接收用户输入而不会阻挡进入的用户输入。然而,当应用执行再现和布局功能时,显示给用户的输出仍将受到引人注意的反应时间的影响。因此,创建响应应用的常规方法不能提供对用户输入作出应用响应的快速输出。
[0024] 在各种、非限制性的实施例中,应用可以预定义针对用户输入的应用行为。例如,应用可以提供输入至输出的故事板或声明性映射(declarative mapping)。该故事板或声明性映射为给定输入规定输出的稳健描述。可以为应用的特定对象(例如,作为应用的用户界面一部分而再现的对象或内容)定义故事板。另外,故事板可以与应用用户界面的区域相关联,从而描述该区域对于特定输入的输出,而不管该区域内的视觉内容。
[0025] 依照进一步的实施例,应用外的部件可以利用所提供的故事板或声明性映射,以代表该应用生成应用响应。在这方面,应用可以集中于后端处理、内容生成等,同时该外部部件用即时视觉结果来维持响应的用户界面。因此,该外部部件实现了将应用输入处理旁路以减少与图形用户界面的布局和重新再现相关联的反应时间。
[0026] 在一个实施例中,本文所描述的一种方法包括:从应用中接收基于输入描述输出的声明性映射的集合,接收针对该应用的用户输入,以及响应于用户输入,基于来自声明性映射集合的至少一个声明性映射而代表该应用生成输出。在一个示例中,接收用户输入可以包括经由触摸界面接收触摸操作,以及确定该触摸操作是否与声明性映射集合中的声明性映射相关联。此外,该方法还可以包括响应于用户输入没有与声明性映射集合相关联而将用户输入转发给应用。
[0027] 依照进一步的实施例,生成输出可以包括识别出由用户输入表示的输入操作,以及从声明性映射集合中选择与该输入操作相关联的至少一个声明性映射。此外,该方法可以包括基于该用户输入确定与该输入操作相关联的值的集合,基于所述至少一个声明性映射确定与该输入操作相关联的值的集合的输出参数集合,以及基于该输出参数集合生成输出转换,其中包括在该应用的区域或对象的至少一个上生成操作。此外,该方法可以包括将输出发送到配置为在显示屏上显示该输出的图形子系统,例如图形处理单元(GPU)。
[0028] 在另一个实施例中,集成在操作系统中的直接操作子系统可以包括输入部件,配置为从至少一个应用中接收至少一个声明性映射,以及与触摸界面的至少一个触摸操作对应的用户输入,以及输出转换部件,配置为基于所述至少一个声明性映射创建至少一个输出转换,其中,所述至少一个输出转换表示对用户输入作出的至少一个响应。该子系统可以进一步地包括输入评估部件,配置为确定该用户输入是否对应于已经为其接收所述至少一个声明性映射的一个声明性映射的触摸操作,操作分析部件,配置为识别与该用户输入相关联的值的集合,以及参数确定部件,配置为导出所述至少一个输出转换的至少一个输出参数,并且基于所述至少一个声明性映射而获得与该用户输入相关联的值的集合对应的输出参数集合。依照一个示例,所述至少一个声明性映射包括多个函数,这些函数将该用户输入的输入参数集合映射到为用户输入的响应而规定输出的输出参数集合。在另一个示例中,该输出转换部件独立于该用户输入所针对的应用而生成该输出转换。
[0029] 在另外的实施例中,描述了一种系统,所述系统包括:直接操作部件,配置为从应用中接收声明性映射集合以及从该系统的操作系统中接收应用的触摸输入,其中,依据声明性映射集合,直接操作部件独立于该应用且代表该应用导出对触摸输入作出响应的输出。依照某些示例,该声明性映射集合与触摸操作的类型相关联,或者声明性映射集合与该应用再现应用内容的显示器的区域相关联。在进一步的示例中,将方向操作部件配置为将应用内容的输出应用到与声明性映射集合相关联的显示器空间区域。此外,将该方向操作部件配置为将输出提供给操作系统以指示图形处理单元应用输出中规定的输出转换。另外,声明性映射集合包括针对触摸输入的特征集合的各个声明性映射。
[0030] 在本文中,以上已经介绍了用于提供依据预先定义的输入至输出的声明性映射而代表应用对用户输入作出直接响应的某些实施例的概述。作为随后内容遵循的路标(roadmap),将更加详细地描述对图形用户界面的对象或区域进行直接操作的各种示范性的、非限制性的实施例和特征。然后,给出了一些非限制性实现方式和示例以进行附加示例,其后是可以实现这些实施例和/或特征的典型网络和计算环境。
[0031] 基于预先定义的输入至输出的声明性映射的直接输入响应如上所述,在各种实施例中,应用可以提供提前定义特定输入的全部输出的一个或多个故事板。该故事板根据接收的输入描述输出,以便可以依照获得的用户输入生成适当的输出。该故事板实现了对用户输入的即时反馈和响应,这是由于可以独立于应用处理该用户输入。例如,在一个实施例中,操作系统可以使用故事板而代表应用对用户输入作出响应以增加该应用的性能,并使交互响应普适于运行在操作系统上的所有应用。
[0032] 在一个具体的非限制性的示例中,触摸输入可以包括触摸操作,其中用户经由用户的手指和手的手势而在显示屏上直接操作对象。例如,该用户可以将手指放在显示屏显示应用的对象的位置上。当与显示屏保持接触时,用户可以以任意方向沿着显示屏滑动他或她的手指,期望将在下面的对象上执行某些转换。典型地,每个应用都拥有响应于接收的触摸操作而在对象上形成输出转换的职责,这就造成了跨越不同应用的不同的响应时间和行为。在一个实施例中,可以将针对操作类型的输出转换描述为故事板以实现对触摸操作的直接响应。例如,可以提前将各种操作类型,例如,划线、拖动、轻敲、收缩、多点手势等,声明性地映射到各种输出转换,例如,缩放、扫视、平移、倾斜、旋转、改变比例等。
[0033] 此外,应该意识到,可以使用故事板为触摸之外的其他输入类型提供预先定义的响应。例如,可以由故事板定义键盘输入、鼠标输入等。此外,应该意识到,所描述的行为可以扩展到在显示屏上操作对象的范围之外。作为一个示例,故事板可以描述复杂的响应,例如,删除、文件保存、文件打开、最小化、最大化、或基本上任意的其他应用行为。
[0034] 对于如上所述的独立于应用响应来声明可能的输出的一个或多个非限制性方式,图1示出了图解说明用于旁路应用的输入处理并代表该应用对用户输入作出响应的示范性的、非限制性的实施例的流程图。在100处,可以从应用中接收一个或多个故事板,例如,输入至输出的声明性映射。该故事板可以与显示该应用的图形用户界面的显示屏上的特定对象或区域相关。对于显示屏上的特定对象或区域,可以通过应用预先定义一个或多个故事板,以描述响应于用户输入而将在对象或区域上执行的输出转换或输出操作。在一个具体的非限制性的示例中,对象的故事板可以将用户输入的参数或特征与该对象的变量、特征或参数中的响应(例如改变或转换)相关联(例如相映射)。例如,故事板可以依照预先定义的比例(例如,1:1,2:1,10:1等)将在X方向上拖动输入的长度映射到在X方向上对象平移的量。
[0035] 在110处,可以接收打算供应用使用的用户输入。可以将用户输入与由应用预先定义且从应用中获得的至少一个故事板相关联。在120处,代表应用生成输出。在一个实施例中,基于由应用为所接收的用户输入预先定义的至少一个故事板来生成输出。
[0036] 在一个非限制性示例中,可以将接收的用户输入对准、指向或否则关联到在显示屏上显示的应用的对象。例如,该对象可以是图形或图像,并且该用户输入可以涉及该图形上的移动操作。可以将与该对象和该对象上的移动操作相关联的一个或多个故事板用来生成输出。故事板可以将移动操作在X方向上的量值映射到该对象在X方向上平移的量。因此,对于该故事板,可以分析用户输入以确定移动操作在X方向上的量值,并且可以基于该故事板计算在X方向上平移的量。类似地,与该对象和移动操作相关联的另一个故事板可以提供从移动操作在Y方向上的分量到该对象在Y方向上平移的量的函数。通过经由故事板确定的X方向上的平移和Y方向上的平移,可以生成并显示输出,例如该对象的整个平移。
[0037] 依照一个实施例,可以与应用无关地,使用该故事板以代表该应用处理用户输入。例如,操作系统可以利用故事板来直接操作应用对象,例如,响应于用户输入而更新应用的视觉输出,以增加由用户感知的响应的速度。虽然故事板可以将来自键盘、鼠标等的输入的特征映射到更新应用的视觉输出所用的参数,但是将意识到,针对触摸输入的故事板可提供另外的益处。如上所述,在用户动作(例如用户输入)与来自应用的响应(例如视觉输出)之间的时间可以处于几十毫秒到几百毫秒的范围。对于基于触摸的输入,这种延迟带来了应用视觉输出上引人注意的影响。
[0038] 举例来说,图2是常规触摸输入和视觉响应的示范性的、非限制性的图解说明。最初,显示屏上的对象可以位于位置200,如图2中所图解说明的。用户可以用手指、指示笔、或其他指示工具触摸该对象,意在将该对象移动到位置200之外的新位置。例如,当保持接触显示屏时,用户可以用手指沿着该对象的路径前进以向前移动,其中,该路径与路径P1平行。用户可以在位置202处停止该路径轨迹,位置202表示用户期望的对象的最终位置。当用户利用手指从位置200到位置202运动时,将相应的用户输入信号发送到该应用。随着接收用户输入信号,则该应用可以着手于输入处理以最终生成视觉输出,描述由对象沿着用户所追踪的路径P1移动。
[0039] 然而,如上所述,应用输入处理具有某些固有的反应时间。这个反应时间可以在视觉上显现给用户,如图2中所图解说明的。具体地,当追踪路径P1的手指停在位置202时,对象穿过路径P2到达位置204,该位置204处于位置200(初始位置)和位置202(最终位置)之间。
[0040] 转向图3,示出了依据一个或多个实施例的经由输入堆栈的常规输入流的示范性的、非限制性的图解说明。输入300可以出现在用户与输入硬件(例如触摸屏、键盘、鼠标等)交互的时候。由硬件堆栈302经由输入装置捕捉输入300。硬件堆栈302可以将输入装置上的用户动作转换成电子信号。操作系统(OS)输入堆栈304可以获得该电子信号,并将该电子信号转换为软件消息。OS输入堆栈304可以将软件消息发送到适当的应用。例如,OS输入堆栈304可以识别出具有焦点的应用,并且发出事件或中断以将输入300的焦点通知给该应用。
[0041] 应用堆栈306从OS输入堆栈304接收表示输入300的软件消息。应用堆栈306包括函数和子程序以对输入300进行处理及响应。例如,应用堆栈306可以包括响应于输入300而对图形用户界面和/或在图形用户界面中显示的内容进行布局和重新再现的逻辑。
应用堆栈306基于输入300生成视觉输出,该视觉输出经由显示堆栈308显示在显示屏上而作为输出。显示堆栈308可以包括该OS的功能性,例如视频驱动器、图形库等,以及包括显示硬件,例如图形装置、显示屏等。
[0042] 如之前所述,从硬件堆栈302捕捉到输入300的时间到在显示屏上显示310的时间之间的时间带来了可由用户感知的反应时间。尤其是在触摸输入的情况下,输入到输出的好几百毫秒的延迟可以导致应用中引人注意的滞后(lag)。尽管这种延迟可以存在于其他类型的输入(例如键盘输入、鼠标输入等)中,在此类情形中的延迟并不像触摸输入那样普遍。例如,对于触摸输入,用户同时地感知产生用户输入的用户动作,例如触摸屏上的手势,以及响应于用户输入的该应用的视觉输出。此外,基于动作本身的用户感知而控制用户动作。对于其他输入类型,例如鼠标输入,用户典型地感知产生动作的输入结果,例如光标的运动,而不是动作本身。举例来说,典型地,该用户不会基于鼠标装置移动了多远而控制用户动作,而是基于光标的运动来控制用户动作。因此,对于非触摸输入,用户对输入作出反应并感知对输入的视觉响应,其是在后(post)反应时间。对于触摸输入,用户对输入本身作出反应并感知输入本身,而不是视觉响应。因而,图2中所图解说明的现象变得更加普遍(prevalent)。
[0043] 依照一个实施例,与应用堆栈306相关联的应用可以基于输入300的参数描述输出310的特征,以生成故事板或输入至输出的声明性映射。利用声明性映射,输入流可以旁路应用堆栈306并且沿着图3中所示的虚线从OS输入堆栈304前进到显示堆栈308。例如,OS输入堆栈304可以基于该故事板根据输入300来创建输出310。可以直接在显示屏上将由OS输入堆栈304创建的输出显示为输出310,而无需该应用的介入。因此,通过跳过应用堆栈306,加速了输入处理并缩短了如上所述的视觉输出滞后。
[0044] 图4示出了图解说明处理与预先定义的操作对应的用户输入的示范性的、非限制性的实施例的流程图。在400处,接收对准应用的用户输入。在一个特定、非限制性的示例中,用户输入是作为用户与触摸屏显示器或其他基于触摸的界面之间交互结果而生成的触摸输入。在410处,确定用户输入是否与操作有关。例如,可以监视并取样原始用户输入,以识别出原始用户输入是否与故事板中已经描述的操作相对应。通过监视,可以将短暂的用户动作(例如轻敲)与较长的用户动作(例如,猛敲)相识别。在420处,确定410中所识别出的操作是否是以为其提供故事板的操作。在430处,如果该操作与故事板相对应,则代表该应用基于该故事板处理用户输入,例如操作。在440处,如果该操作没有与故事板相对应,则将该用户输入作为未声明的输入而被转发到应用。
[0045] 图5示出了图解说明以由应用预先定义的方式对用户输入作出响应的示范性的、非限制性的实施例的流程图。在500处,识别由接收的用户输入表示的输入操作。在510处,选择与所识别出的输入操作相关联的至少一个声明性映射。在520处,确定与该输入操作相关联的值的集合。在530处,根据该输入操作的值的集合,利用所选择的至少一个声明性映射来确定输出参数集合。在540处,基于输出参数集合生成输出转换。在550处,将输出转换发送到被配置为执行该转换并显示结果的图形处理单元。
[0046] 参照图6,其描述了依据一个或多个实施例的表示为故事板的扫视操作的示范性的、非限制性的图解说明。如图6中所示,可滚动列表600被包含在应用中,并且能对一个或多个手势作出响应,例如垂直扫视操作。在一个示例中,垂直扫视操作可以涉及用户将手指放在触摸界面上由可滚动列表600占用的位置上,并且在保持接触的同时,向上和/或向下滑动手指。
[0047] 依照图6中所示的示例,可滚动列表600可以包括开始于索引0而终止于索引1000的1000个条目的列表。在同一时间不能看到全部条目。例如,可滚动列表600可以包括可见部分602以及隐藏部分604。可见部分602可以是由视见区(viewport)606包含的可滚动列表600的一部分,视见区606可以表示包含可滚动列表600的有界区域。在一个示例中,视见区606可以是显示屏上应用的窗口,或者可以是该应用窗口内的区域。图6中还示出了具有滚动指示条(indicator)610的滚动条608。滚动指示条610具有预定大小,以便当可滚动列表600在视见区606的顶端显示索引0时,滚动指示条610位于滚动条
608的顶端,以指示可滚动列表600已经一直滚动到顶端。类似地,当可滚动列表600在视见区606的底端显示索引1000时,滚动指示条610可以位于滚动条608的底端,以指示可滚动列表600已经一直滚动到底端。
[0048] 按照惯例,响应于垂直扫视操作,例如,以向下方向,与可滚动列表600相关联的应用将从隐藏部分604获取内容。隐藏部分604的量或者隐藏部分605中的内容的像素数可以依赖于该扫视操作的幅度(magnitude)。例如,扫视操作的幅度可以与一个条目的大小相对应并且促使按照一个条目的距离而扫视可滚动列表600。因此,应用引出条目I并且在视见区606的底端上、之前由条目H占用的位置再现条目I。再在比各自位置高一个位置的新位置上重新再现条目B到条目H。因此,条目A落在视见区606和可见部分602之外,并且不会被重新再现。
[0049] 在一个实施例中,故事板使可滚动列表600响应于垂直扫视操作而被操作,而独立于与该列表相关联的应用。换句话说,故事板实现了可滚动列表600的直接操作,从而旁路了该应用的输入处理。在图6中,以图形表示图解说明了与可滚动列表600相关联的示范性的、非限制性的故事板612。如所示,故事板612将输入和输出相关联。具体地,故事板612将输入(例如,在这种情形中,垂直扫视操作)的参数、变量或特征映射到期望输出(例如,滚动该列表)的参数、变量或特征。
[0050] 像故事板612这样的故事板可以用任意单位定义输入和输出(或它们的特征)。换句话说,在故事板中所使用的单位可被选为响应于特定操作而能最好地描述输出行为。例如,故事板612可以根据可滚动列表600的条目描述输入和输出。在该示例中,故事板612将垂直扫视操作在Y方向上条目数量的长度与可滚动列表600应该滚动的条目的数量相关联。
[0051] 在更进一步的实施例中,故事板612可以指定可滚动列表600的状态。例如,故事板612输入轴上的值可以指示可滚动列表600的当前滚动位置。例如,输入轴的值0指示可滚动列表600的索引0(例如条目A)处于可见部分602的最高点上(或者处于某些其他预定的基准点上)。类似地,输出轴可以指示可滚动列表600的输出状态。
[0052] 作为图解说明,可滚动列表600的初始状态可以与故事板612的输入轴上的值0相对应(例如,索引0(条目A)处于基准点)。可以接收幅度为I1(条目数量)的可滚动列表600上的垂直扫视操作。因此,用户输入与故事板612的输入轴上从值0到值I1的平移相对应。利用故事板612,可以基于该输入生成适当的视觉输出。例如,可滚动列表600的滚动或扫视可出现在从具有0值的初始状态到具有O1值的最终状态。换句话说,可以滚动可滚动列表600使得该列表索引O1处的条目代替索引0处的条目而占用该基准点。
[0053] 如图6中所示,仅为由故事板612定义的边界内的输入生成输出。例如,当条目A(索引0)处于可见部分602的最顶端位置时,可滚动列表600被认为是滚动到了顶端。因此,如故事板612中所示,当接收到向上方向的用户输入(例如垂直扫视操作)时;不再改变可滚动列表600,这是由于该列表已经滚动到了顶端。在另一个示例中,当条目Z(索引1000)处于可见部分602的最底端位置时,不再响应于向下指示的垂直扫视输入进一步向下滚动可滚动列表600。然而,在上述边界之间的位置,响应于获得的输入,依照故事板612中所描述的关系而滚动可滚动列表600。在故事板612的特定、非限制性示例中,响应于输入,依照1:1的比例而线性地滚动可滚动列表600。然而,应该意识到,可以定义除了线性转换之外的输入和输出之间的其他关系来描述扫视操作。例如,滚动输出可以与输入成抛物线关系,以致于随着用户越来越向下扫视可滚动列表600而使感知的滚动速度增加。在另一个示例中,该关系可以主要是线性的,但也可包括非线性部分,例如摩擦点(friction point)。作为图解说明,非线性曲线可以将故事板612的平部分转换到故事板612的线性部分。可以由用户将非线性曲线感知为滚动的摩擦或粘滞,使得从可滚动列表600的顶端开始的滚动缓慢地开始并增加到恒定的比例,并且随后,随着到达可滚动列表600的终点开始减慢直到停止点。
[0054] 在另一个实施例中,所接收的用户输入可以与多个故事板相关联,以致于响应于该用户输入输出多个转换。例如,对应于滚动指示条610的故事板614可以与跟故事板612相同的垂直扫视操作相关联,以随着用户扫视可滚动列表600而沿着滚动条608平移滚动指示条610。可以通过完全不同的单位或不同的关系来独立地定义故事板612和614。如图6中所示,故事板614相比于故事板612包括不同的输出单位。在图6所图解说明的示例中,根据可滚动列表600中的条目定义故事板612输出。相反,可以将故事板614定义为多个像素,根据这些像素,滚动指示条610将从滚动条608的顶端移动到滚动条608的底端。通过对给定输入定义多个故事板,多个对象的各种输出转换可以同时出现、可以以不同速率出现等,其中,可以根据完全不同的单位定义各种输出转换。
[0055] 图7示出了依据一个或多个实施例的表示为故事板的旋转操作的示范性的、非限制性的图解说明。如图7中所示,故事板700充分地描述了响应于与旋转操作对应的用户输入而在对象上的输出。故事板700描述了输入和输出之间非线性的声明性映射的特定的、非限制性的示例。然而应该意识到,可以用线性关系在故事板中充分地描述该旋转操作。
[0056] 故事板700图解说明了如何将复杂应用行为建模为声明性映射,以便可以独立于应用响应来实现该行为。例如,故事板700描述了如何将优选的对象状态,例如粘结点(sticky point),传送给用户。在图7所示的示例中,优选的对象状态可以是90°的倍数。因此,在对象旋转操作期间,该对象视觉上看起来是粘在优选对象状态上。这个行为可变得像是对象最初不愿意为该旋转输入的一部分而进行旋转,直到其迅速赶上并且对齐到下一个优选对象状态。
[0057] 图7图解说明了依据故事板700的、与经历旋转操作的对象702相关联的视觉输出。具体地,在故事板700从旋转的0°初始状态到旋转的90°最终状态的不同点上图解说明了对象702的状态。在P0处,对象702处于旋转的0°初始状态。与对象702相关联的是旋转手柄(handle)704,其可由用户操作以在对象702上执行旋转操作。例如,该用户可以触摸旋转手柄704并且以向右的弧线拖动旋转手柄704以启动对象702的顺时针旋转。
[0058] 在P1处,旋转手柄704大约从P0处所示的之前位置顺时针移动了67.5°。如图7中所示,依照故事板700将67.5°的输入映射为对象702的轻微输出旋转。随着用户继续旋转对象702并由P1继续到P2,旋转手柄704进一步从P1处的之前位置移动了微小的距离。在P2处,旋转手柄704大约是从P0处的初始位置顺时针移动了78.75°。随着P1和P2之间的附加的微小输入,对象702被操作以描述更大的旋转量。例如,随着大约11.25°的附加输入,对象702依据故事板700从初始装置大约旋转了45°。随着用户继续该旋转操作并将旋转手柄704移动到图7中所示的对应P3的90°位置,对象702也将旋转到90°。
[0059] 将意识到,响应于该旋转输入,可以依据另一个故事板(未示出)来视觉上控制旋转手柄704。在一个实施例中,与旋转手柄704相关联的故事板可以具有输入和输出之间的线性关系,以便旋转手柄704正确地反映出迄今为止用户施加在旋转操作中的旋转量。此外,与旋转手柄704相关联的故事板可以指定旋转手柄704将围绕其进行旋转的旋转点。在一个示例中,该旋转点可以与对象702的旋转点相对应,以便旋转手柄704沿着图7中所示的对象702周围的弧线前进。
[0060] 如图6和7中所示,可以定义故事板,其将各种输入特征映射到各种输出特征。虽然图6和7图解说明了少数示例,但是将意识到,故事板可根据一系列广泛的参数来预先定义输出行为。作为非限制性和非详尽的示例,故事板可以从具有输入值集合的输入操作中提供声明性映射,该输入操作可以包括水平扫视、垂直扫视、水平比例改变、垂直比例改变、比例改变转换的中心点、旋转度、旋转的中心点、水平倾斜、垂直倾斜、倾斜的中心点等。对于每个输入值类型,故事板可以描述输出参数或特征的改变。例如,对于给定操作,可以定义故事板以将该操作的水平扫视的值映射到要施加在该对象上的水平输出平移的量。
[0061] 此外,该故事板可以定义不同输入范围内的完全不同的输出行为。例如,带有边界的区域内的垂直扫视操作可以在故事板中定义为具有与该垂直扫视变量有关的三个转换点。在一个示例中,这三个转换点可以分隔为扫视边界之下的区域、扫视边界之内的区域和扫视边界之上的区域。在扫视边界之上和扫视边界之下,故事板可以定义定值转换;在此,输出运动相对于输入保持恒定。在扫视边界内,该转换可以是具有1:1斜率的线性值。依据示例定义的具有作为垂直扫视位置的输入变量的故事板定义了扫视对扫视边界内的触摸输入作出直接响应的区域,然后一旦到达边界限制则停止移动。可以将类似的运动用于控制比例改变和旋转。另外,可以将故事板用于控制来自输入操作集合的、除操作输出之外的任意独立变量。例如,可以响应于输入而转换对象不透明度。
[0062] 如同本文所描述的,作为故事板的输入至输出的声明性映射使应用转移了移动区域或对象的职责。因为故事板提供了丰富的机构来定义与输入有关的复杂函数,所以通过在输入操作参数上定义一组函数到任意数量的输出变量而使丰富的交互模式变得可能。
[0063] 图8示出了图解说明代表和代替与用户输入相关联的应用对用户输入作出响应的示范性的、非限制性的动作的方块图。如图8中所图解说明的,应用802可以接收用户输入800。在一个实施例中,用户输入800可以涉及由用户在触摸界面上产生的触摸操作。然而,应该意识到,可以将本文所描述的方法应用到其他形式的输入(例如键盘输入、鼠标输入、视觉输入(例如,视频或照相机输入)等)中。
[0064] 应用802可以定义被提供给直接操作部件804的一个或多个声明性映射806。声明性映射806可以是数学函数、转换、图形等,其将用户输入800的变量与作为用户输入800响应的视觉输出的特征或参数相关联。利用从应用804获取的声明性映射806,直接操作部件804可以响应于用户输入800而生成输出。直接操作部件804可以将所生成的输出推送到输出显示器810,以由用户感知为对用户输入800作出的响应。直接操作部件804可以与应用802异步和并行地操作。当直接操作部件804代表应用802对用户输入800自动作出响应时,直接操作部件804将输出通知808发送到应用802。输出通知808提醒应用802:已经为应用802对用户输入800作出了直接响应。因此,在接收到输出通知808之后,应用802就可以更新内部状态以反映出由于直接操作部件804所生成的输出而产生的任何改变。
[0065] 依照进一步的实施例,常规再现路径(例如,从用户输入800,经由应用802,到输出显示器810)可以是不受时间限制的。沿着常规再现路径从用户输入800到输出显示器810流逝的时间量可以是变量,并且受实现方式详细应用802的影响。例如,流逝的时间量大约可以是50-500毫秒。通过直接操作部件804和声明性映射806,用户输入800的收到与输出显示器810上的响应之间的时间量可以受到限制的和/或保持不变,而不管应用802的实现方式。
[0066] 图9图解说明了依据一个或多个实施例的示范性的、非限制性的直接操作系统的方块图。该直接操作系统可以包括应用920,配置为在计算系统的操作系统(OS)910上执行。可以将OS 910配置为将来自用户的输入提供给应用920,并且将由应用920提供的输出信息提供给用户。在一个示例中,输出信息可以是在显示屏上显示的视觉输出信息。因此,OS 910可以使用配置为再现、合成和转换图形信息的视频装置930。另外,视频装置930可以将图形信息转换成电子信号,该电子信号作为视觉输出950而被发送到显示设备以显示给用户。
[0067] 依照一个特定的、非限制性的实施例,OS 910可以接收来自用户的输入操作900。该用户可以经由在例如触摸屏、多点触摸屏等的触摸界面上执行的手势而提供输入操作
900。OS 910可以经由输入部件912获得输入操作900以将来自触摸界面的电子脉冲转换成软件消息或数据,输入部件912包括固件层、输入装置驱动器、中断处理子程序等。
[0068] 按照惯例,输入部件912可以将输入操作900转发到应用920或者计算机系统上具有输入焦点的另一个应用。应用920可以接收输入部件922处的输入操作900。在一个实施例中,输出部件922可以是配置为执行事件循环或输入队列的应用920的输入线程。输入部件922可以连同其他接收的输入一起而对输入操作排序和/或区分优先次序,并且发送指令到后台部件924以进行其他处理。例如,后台部件924可以包括一个或多个软件线程,用于重新获得信息、再现用户界面、再现用户界面内容等。例如,后台部件924可以生成内容926,将内容926提供给OS 910的输出部件914以输出给用户。输出部件914可以包括各种配置为与视频装置930通信的各种固件、视频驱动器、视频图形库和结构等。输出部件914可以将内容926提供给图形处理单元(GPU)932,其被配置为执行3D计算机图形计算、纹理映射、多边形再现、几何图形计算和转换、沿着坐标系平移、反锯齿处理、明暗处理等。在一个示例中,GPU 932可以执行再现缓冲器934(例如,缓冲器)的2D加速,其中缓冲器934包括可在显示屏上显示的完整数据帧。缓冲器934内的区域936可以与应用920相关联。具体地,区域936可以是存储器的一部分或者将显示来自应用920的内容926的显示屏的一部分。
[0069] 依照一个实施例,可以由直接操作部件940独立于应用920来处理,例如响应,输入操作900。直接操作部件940可以从应用920接收声明性映射942。声明性映射942可以与由输入操作900表示的操作的类型(例如,猛敲、轻敲、收缩等)相关联。在一个非限制性的示例中,声明性映射942可以包括多个函数,这些函数将输入操作900的参数集合映射到规定对输入操作900作出响应的适当输出的参数集合。直接操作部件940使用输入操作900上的多个函数以获得规定输出转换944的参数集合。直接操作部件940将输出转换944提供给输出部件914,输出部件914可以指示GPU 932执行对于缓冲器934内的内容的输出转换944。
[0070] 依照又一个实施例,可以在诸如区域936的区域上定义声明性映射942,该区域对应于由来自应用920的内容占用的显示器或视频存储器的一部分。在这方面,直接操作部件940忽略了该区域内的实际内容,将所述职责留给应用920。因此,直接操作部件940可以代表应用920生成内容上的输出转换,同时允许应用920以它认为合适的方式改变该内容。然而将意识到,当在该区域生成新的内容时,所以直接操作部件940变得能够响应于输入操作而发起新内容上的转换。
[0071] 在更进一步的实施例中,当已经代表应用920生成了输出转换944时,直接操作部件940可以将通知发送到应用920。在一个示例中,将该通知处理为到输入部件922的输入。例如,该通知可以规定已经执行的特定转换,其指示将重新获得另外的或新的内容。因此,输入部件922可以指示后台部件924重新获得这些内容,并使在该区域内显示的这些重新获得的内容受该转换支配。
[0072] 图10示出了依据一个或多个实施例的响应于输入操作的输出转换的示范性的、非限制性的图解说明。如图10中所示,区域1000(例如应用的、显示器上的、存储器中的等)可以包括地图部分1002。区域1000可以与如上所述的一个或多个声明性映射或故事板相关联。例如,一个这种故事板可以描述响应于收缩操作的输出转换。如图10中所示,收缩操作包括用户制造的至少两个接触的点,例如触点1006和触点1008。随后,用户通过将手指滑动在一起(例如收缩)、同时维持触点而渡过接触1006和接触1008之间的距离。响应于收缩操作,可以在区域1000上执行比例改变或缩放转换。例如,如图10所示,按照响应而改变内容比例或缩放内容,例如地图部分1002。通过改变地图部分1002的比例或缩放地图部分1002,可以显露出空白空间1004。为区域1000负责的应用可以获得新的内容来填充空白空间1004,其中该新的内容一旦被再现,则服从于区域1000上定义的声明性映射。
[0073] 参照图11,其提供了图解说明依据一个或多个实施例的示范性的、非限制性的直接操作部件1100的方块图。如图11中所示,直接操作部件1100可以包括输入部件1102,配置为从一个或多个应用获得声明性映射或故事板,以及获得由用户与诸如触摸界面的输入装置交互而生成的用户输入。输入部件1102可以将所接收的声明性映射存储到存储器1104。
[0074] 输入评估部件1106可以监视并取样接收的用户输入以识别该用户输入是否与已知操作相对应。例如,已知操作可以是已经接收到与之相关联的声明性映射的输入操作。如果用户输入对应于操作,则可以由操作分析部件1108分析该操作,该操作分析部件1108被配置为识别操作的与之相关联的变量和值。参数确定部件1110基于所识别出的变量和值而使用一个或多个声明性映射导出输出参数。可以由输出转换部件1112使用该输出参数来生成作为接收的用户输入的响应的输出转换。
[0075] 示范性的联网和分布式的环境本领域的技术人员之一可以意识到,本文所描述的直接操作系统和方法的不同实施例可以结合任何计算机或者其他客户端或服务器装置而实现,所述计算机或者其他客户端或服务器装置可被布置为计算机网络的一部分或处于分布式计算环境中,并且可以连接到任何类型的数据存储。在这方面,本文所描述的不同实施例可以在任何计算机系统或者环境中实现,所述计算机系统或者环境具有任意数量的存储器或者存储单元,以及在任意数量的存储单元上产生的任意数量的应用和处理。这包括,但不限于,配置在网络环境或者分布式计算环境中的具有服务器计算机和客户端计算机的环境,这种环境具有远程或者本地存储。
[0076] 分布式计算通过计算装置和系统之间的通信交换而提供对计算机资源和服务的共享。这些资源和服务包括信息交换、诸如文件的对象的高速缓冲存储和磁盘存储。这些资源和服务还包括为了负载平衡,在多个处理单元之间共享处理能、资源扩充、处理的专业化等。分布式计算可以利用网络连通性,允许客户端使用它们的集体力量而使整个企业受益。在这方面,不同的装置可以具有参与到资源管理机制中的应用、对象或者资源,所述资源管理机制即为本主题公开的各种实施例所描述的那些。
[0077] 图12提供了示范性的联网或者分布式计算环境的示意图。所述分布式计算环境包括计算对象1210,1212等,以及计算对象或者装置1220,1222,1224,1226,1228等,它们可以包括如由应用1230,1232,1234,1236,1238所表示的程序、方法、数据存储、可编程逻辑等。可以意识到,计算对象1210,1212等和计算对象或者装置1220,1222,1224,1226,1228等可以包括不同的装置,例如个人数字助理(PDA)、音频/视频装置、移动电话、MP3播放器、个人计算机、膝上笔记本等。
[0078] 每个计算对象1210,1212等和计算对象或者装置1220,1222,1224,1226,1228等都可以经由通信网络1240,直接或者间接地与一个或多个其他计算对象1210,1212等以及计算对象或者装置1220,1222,1224,1226,1228等进行通信。即使在图12中被图解说明为单个元件,但是通信网络1240可以包括为图12的系统提供服务的其他计算对象和计算装置,和/或可以表示多个互联网络(未示出)。每个计算对象1210,1212等和计算对象或者装置1220,1222,1224,1226,1228等也可以包含应用,例如,应用1230,1232,1234,1236,1238,它们可以利用API、或者其他对象、软件、固件和/或硬件,适于与依据本主题公开的各种实施例所提供的用户输入处理方法进行通信或者实现所述用户输入处理方法。
[0079] 存在多种支持分布式计算环境的系统、部件和网络配置。例如,经由本地网络或者广泛分布的网络,通过有线或者无线系统可以将计算系统连接在一起。当前,许多网络被耦合到互联网,互联网提供了用于广泛分布的计算的基础并且包括许多不同的网络,尽管任何网络基础都可以用来做与各种实施例中所描述的系统相关的示范性通信。
[0080] 因而,可以利用网络拓扑的主机和网络基础,例如客户端/服务器、对等,或者混合结构。所述“客户端”是种类或分组的成员,它们使用它们所不涉及的其他种类或分组的服务。例如,客户端可以是粗略地处理一组指令或者任务的进程,所述一组指令或者任务请求由其他程序或进程提供的服务。所述客户端进程利用所请求的服务,而不需要必须“知晓”任何关于所述其他程序或者服务本身的工作细节。
[0081] 在客户端/服务器结构中,尤其是在联网的系统中,客户端通常是访问由其他计算机,例如服务器提供的共享网络资源的计算机。在图12的图解说明中,作为非限制性的示例,可以考虑将计算对象或者装置1220,1222,1224,1226,1228等作为客户端,并且可以考虑将计算对象1210,1212等作为服务器,在此,作为服务器的计算对象1210,1212等提供数据服务,例如接收来自客户端计算对象或者装置1220,1222,1224,1226,1228等的数据、数据存储、数据处理、将数据发送给客户端计算对象或者装置1220,1222,1224,1226,1228等,尽管取决于环境,可以将任何计算机视为客户端、服务器、或者上述两者。
[0082] 典型地,服务器是通过远程或者本地网络可访问的远程计算机系统,所述远程或者本地网络例如是互联网或者无线网络基础。所述客户端进程可以在第一计算机系统中运行,并且所述服务器进程可以在第二计算机系统中运行,它们通过通信媒介彼此通信,从而提供了分布式的功能性并且允许多个客户端利用所述服务器的信息汇集能力。
[0083] 在通信网络1240或者总线是互联网的网络环境中,例如,计算对象1210,1212等可以是网络服务器,它们经由任意数量的已知协议,例如超文本传输协议(HTTP)来与其他计算对象或者装置1220,1222,1224,1226,1228等进行通信。作为服务器的计算对象1210,1212等也可以作为例如,计算对象或者装置1220,1222,1224,1226,1228等的客户端,这正是分布式计算环境的特征。
[0084] 示范性的计算装置如前所述,有益地,本文所描述的方法可以应用于任何装置,其中期望代表计算系统中的应用独立地处理用户输入。因此,可以理解的是,手持、便携和所有类型的其他计算装置和计算对象都可以被考虑与各种实施例结合使用,即,可将用户输入声明性地映射到输出响应的任何地方。由此,以下将在图13中描述的下述通用目的远程计算机仅仅是计算装置的一个示例。
[0085] 可以经由操作系统部分地实现实施例,由装置或对象的服务开发者所使用,和/或包含在应用软件之中,所述应用软件操作以执行本文所描述的各种实施例的一个或多个功能方面。通常在上下文中将软件描述为计算机可执行指令,例如程序模块,由一个或者多个计算机,例如,客户端工作站、服务器、或者其他装置执行。那些本领域技术人员将意识到,计算机系统具有多种用于通信数据的配置和协议,并且因此,不限于任何具体配置或协议。
[0086] 因此,图13图解说明了适当的计算系统环境1300的示例,在其中可以实现本文所描述的实施例的一个或多个方面,尽管上面已经解释清楚了,计算系统环境1300仅仅是适当的计算环境的一个示例,并且其没有打算暗示对使用或功能性的范围的任何限制。另外,计算系统环境1300没有打算被解释为具有任何对示范性计算系统环境1300所图解说明的任何一个部件或者部件的结合有关的依赖。
[0087] 参照图13,用于实现一个或多个实施例的示范性的远程装置包括计算机1310形式的通用目的计算装置。计算机1310的部件可以包括,但不局限于,计算单元1320,系统存储器1330,和系统总线1322,系统总线1322将包括系统存储器的各种系统部件耦合到处理单元1320。
[0088] 典型地,计算机1310包括多种计算机可读介质,并且可以是可由计算机1310访问的任何可用的介质。系统存储器1310可以包括易失性和/或非易失性存储器,例如只读存储器(ROM)和/或随机访问存储器(RAM)形式的计算机存储介质。作为示例而非限制,系统存储器1330也可以包括操作系统、应用程序、其他程序模块,和程序数据。
[0089] 用户可以通过输入装置1340将命令和信息输入到计算机1310。监视器或者其他类型的显示装置也经由接口,例如输出接口1350,连接到系统总线1322。除了监视器,计算机也可以包括其他外围输出装置,例如扬声器和打印机,可以通过输出接口1350将它们连接。
[0090] 利用与一个或多个其他远程计算机(例如,远程计算机1370)的逻辑连接,计算机1310可以在联网或者分布式环境中操作。远程计算机1370可以是个人计算机、服务器、路由器、网络PC、对等装置或其他普通网络节点,或者任何其他远程媒体消耗或者传输装置,并可以包括关于计算机1310所述的任何或者全部元件。图13描述的逻辑连接包括网络
1372,例如局域网(LAN),或者广域网(WAN),但是也可以包括其他网络/总线。这种联网环境在家庭、办公室、企业范围计算机网络、企业内部互联网和互联网中是很普通的。
[0091] 如上所述,虽然连同各种计算装置和网络结构描述了示范性实施例,但是其基本概念可以被应用于任何网络系统和任何计算装置或系统,在其中,所希望的是改善资源利用的效率。
[0092] 同样,存在实现相同或者相似功能性的多种方式,例如,适当的API、工具箱、驱动器代码、操作系统、控制、独立或者可下载软件对象等,它们使应用和服务能够利用本文所提供的方法。因此,本文的实施例可以从API(或者其他软件对象)以及实现本文所描述的一个或多个实施例的软件或硬件对象的立场上进行考虑。因此,本文所描述的各种实施例可以具有完全硬件、部分硬件且部分软件、以及软件的多个方面。
[0093] 本文使用的词语“示范性的”是指用作示例、范例或例证。为了消除疑问,本文所公开的主题不受这些示例的限制。另外,本文作为“示范性的”描述的任何方面或构思都没有必要被解释为比其他方面或构思优选或有利,也不意味着排除对于本领域技术人员来说公知的那些等同的示范性的结构和方法。此外,在这个意义上使用术语“包括”、“具有”、“包含”及其他相似的词语,为了消除疑问,可将这些术语规定为某种意义上类似于术语“含有”的包括,当在权利要求中使用时,其作为开放式转换词语、而不排除任意附加的或其他的元件。
[0094] 如所述的,可以连同硬件、或软件、或适当时连同两者的结合来实现本文所描述的各种方法。在本文中所用的术语“部件”、“模块”、“系统”等同样打算涉及与计算机有关的实体,或者是硬件、硬件和软件的结合、软件,或者是执行中的软件。例如,部件可以是,但不局限于,运行在处理器上的进程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。作为图解说明,运行在计算机上的应用和计算机都可以是部件。一个或多个部件可以驻留在执行的进程和/或线程内,并且部件可以本地位于一个计算机上和/或分布在两个或多个计算机之间。
[0095] 已经参照几个部件之间的交互而描述了上述系统。可以意识到,这种系统和部件可以包括那些部件或规定的子部件、某些规定的部件或子部件、和/或另外的部件、以及依照上述的各种改变和结合。还可将子部件实现为通信地耦合到其他部件的部件,而不是(分层的)上层部件内包括的部件。另外,可以注意到,可以将一个或多个部件结合为提供总的功能的单个部件,或者分成若干个分离的子部件,并且可以注意到,可以提供任意一个或多个中间层,例如管理层,以通信地耦合到这种子部件,以便提供完整的功能性。本文所描述的任意部件还可以与本文未明确描述、但由那些本领域技术人员通常公知的一个或多个其他部件进行交互。
[0096] 考虑到上文所描述的示范性系统,参照不同附图的流程还可了解到可依据所描述的主题实现的方法。虽然为了简单描述的目的,将这些方法表示并描述为一系列的块,但是将理解并意识到的是,各种实施例不受限于块的顺序,因为某些块可以以不同顺序出现和/或与来自本文所描述和说明的其他块同时出现。在此,经由流程图图解说明了非连续的、或分枝的流程,可以意识到,可以实现各种其他分枝、流程路径和块的顺序,以达到相同或相似的结果。此外,在实现下文中所描述的方法中,某些图解说明的块是任选的。
[0097] 除了本文所描述的各种实施例,将理解的是,可以使用其他相似的实施例,或者可以对所描述的实施例进行修改和增加以执行相应实施例的相同或等同的功能,而没有从此偏离。更进一步地,多个处理芯片或多个装置可以共享本文所描述的一个或多个功能的性能,并且同样地,可通过多个装置实现存储。因此,本发明并不局限于任一单个实施例,而是依据附加权利要求书以广度、精神和范围解释本发明。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈