产生使用者界面的方法或系统的制作方法

文档序号:10693993阅读:212来源:国知局
产生使用者界面的方法或系统的制作方法
【专利摘要】本发明相关于产生动态使用者界面的系统与方法,用来产生动态使用者介面于电子装置,其中所述动态使用者介面显示运行于远端伺服器上一或多个应用程序的输出。在本发明的一较佳实施例中,所述一或多个应用程序是由机器人程序所执行。在另一较佳实施例中,所述一或多个应用程序耦接至客户端装置,包括所述客户端装置的硬件设备,以使得所述一或多个应用程序与所述电子装置之间的使用者互动变得可行。
【专利说明】产生使用者界面的方法或系统
[0001 ]交互关联之其他专利申请案
[0002]本申请案主张以下各案之优先权:
[0003].美国专利临时申请案第61862967号,其申请日为西元2013年8月7日,且其标题为「用于应用程序内检索与应用程序浏览器的方法与系统」;
[0004].美国专利临时申请案第61922860号,其申请日为西元2014年I月I日,且其标题为「用于产生与应用程序检索相关的使用者界面的方法与系统」;
[0005].美国专利临时申请案第61951548号,其申请日为西元2014年3月12日,且其标题为「用于产生与应用程序检索相关的使用者界面的方法与系统」;及
[0006].美国专利临时申请案第61971029号,其申请日为西元2014年3月27日,且其标题为「用于应用程序与虚拟机器间通讯的方法与系统」。
[0007]所述被主张优先权的各申请案是以其整体被合并于本申请案中。
技术领域
[0008]本发明涉及多种用在电子设备上产生使用者界面的方法或系统,具体涉及多种提供使用者动态输出数据而呈现于界面且用在电子设备上产生使用者界面的方法或系统。
【背景技术】
[0009]目前被产生用于呈现物件的使用者界面,大部分本质上皆属静态,物件可例如为网路搜寻引擎的搜寻结果,网路搜寻引擎可例如为谷歌(Google)或雅虎(Yahoo)或应用程序中的行动装置应用程序市集,应用程序可例如为安卓应用程式下载系统(Android’sPlay Store)或苹果应用程式下载系统(Apple’s App Store)。举例来说,不论物件是一个网页、一个软件应用程序、一个网路个人电脑游戏(online PC(Personal Computer)game)、一个行动装置应用程序等,网路搜寻结果及应用程序市集典型的为界面上的每一物件显示静态的文字及/或影像。由于此些文字及/或影像已由创造者于制造时预先确定,所以此些文字/及影像皆为静态的。由于静态讯息所呈现的资讯可能已过时,若物件近期已有所更新,则静态讯息提供给使用者的讯息即使有用,但仍然受限。此外,于每一物件中,静态的文字及影像几乎没有提供关于视觉以及感受的讯息。为了获得如视觉以及感受体验方面的讯息,使用者将必须下载(download)、执行(execute)及/或安装(install)此些物件。举例来说,若物件为一网页,则使用者将必须进入(enter)该网站;或是,若物件为一行动装置应用程序,则使用者将必须下载、安装及执行应用程序。
[0010]因此,为了让使用者于界面上可以接收到最健全、最新的资讯,以及关于物件的视觉及感受的良好体验,甚至为了让使用者可以在无须下载、安装或执行物件于使用者所持有的装置的情况下,即可直接地于界面上与物件互动,则有必要提供改良的使用者界面来实现上述目的的必要,而不只是提供静态的、预先设定好的文字及/或影像于界面上。

【发明内容】

[0011]本发明是为了解决上述问题而进行的,目的在于提供一种公开用来在电子设备上产生使用者界面的方法与系统,其中使用者界面可提供物件的动态输出数据、并将动态输出数据呈现于使用者界面上以提供给使用者。
[0012]本发明提供了一种产生动态使用者界面的系统,具有这样的特征,包括:一或多个客户端;一或多个伺服器,其联网至一或多个客户端;一或多个应用程序,其常驻于一或多个伺服器;以及一或多个机器人程序,其常驻于一或多个伺服器。其中,一或多个机器人程序用来对应一或多个客户端的一或多个请求,来执行一或多个应用程序,且在一或多个机器人程序执行一或多个应用程序时,一或多个伺服器用来以直播或接近直播的方式,提供一或多个输出数据到一或多个客户端。
[0013]在本发明提供的动态使用者界面系统中,还可以具有这样的特征:其中,输出数据包括自一或多个应用程序的输出数据中取出的文字、快照或一系列快照,或部分或全部缩时视讯及/或音讯数据。
[0014]在本发明提供的动态使用者界面系统中,还可以具有这样的特征:其中,一或多个请求与线上搜寻有关。
[0015]在本发明提供的动态使用者界面系统中,还可以具有这样的特征:其中,被传送到该客户端的一或多个应用程序的输出数据,是源自于与一或多个请求相关的应用程序。
[0016]在本发明提供的动态使用者界面系统中,还可以具有这样的特征:其中,关联性是使用应用程序内数据所决定。
[0017]在本发明提供的动态使用者界面系统中,还可以具有这样的特征,还包括一或多个应用程序伺服器,用来支援一或多个应用程序的执行。
[0018]在本发明提供的动态使用者界面系统中,还可以具有这样的特征还包括用于储存应用程序内数据的数据库,应用程序内数据包含该一或多个应用程序与相对应的应用程序伺服器的间所交换的数据。
[0019]在本发明提供的动态使用者界面系统中,还可以具有这样的特征,还包括:常驻于客户端的媒体输出,以及常驻于客户端的客户端应用程序。客户端应用程序用来呈现从伺服器通过媒体输出传送的一或多个应用程序的输出数据。
[0020]在本发明提供的动态使用者界面系统中,还可以具有这样的特征:其中,由媒体输出显示的客户端应用程序所呈现一或多个应用程序的输出数据,用来使使用者可通过客户端应用程序与一或多个应用程序互动。
[0021]在本发明提供的动态使用者界面系统中,还可以具有这样的特征:其中,由媒体输出显示的客户端应用程序所呈现一或多个应用程序的输出数据,是耦接于一或多个相对应的应用程序,耦接行为包括传送一座标及一对事件标签。
[0022]在本发明提供的动态使用者界面系统中,还可以具有这样的特征:模拟物理动作的手段,物理动作在借由模拟来与一或多个应用程序互动的过程中被需要,模拟是基于使用者与媒体输出显示的客户端应用程序所呈现一或多个应用程序的输出数据的互动来进行。
[0023]在本发明提供的动态使用者界面系统中,还可以具有这样的特征:其中,一或多个客户端还包括一或多个硬件设备,且一或多个应用程序耦接于一或多个硬件设备。
[0024]在本发明提供的动态使用者界面系统中,还可以具有这样的特征,还包括:用来辅助一或多个应用程序的一或多个虚拟机器,一或多个应用程序无法于一或多个伺服器以本地端方式运行。
[0025]在本发明提供的动态使用者界面系统中,还可以具有这样的特征:其中,一或多个应用程序的事件被产生用于促进使用者互动。
[0026]在本发明提供的动态使用者界面系统中,还可以具有这样的特征:其中,被产生用于使用者互动的一或多个应用程序的事件,其启始于应用程序中与来自一或多个客户端的一或多个请求的关联性最高的位置。
[0027]本发明的其他优点在此将一部份的被阐述于说明书,及于说明书的一部份中将会显而易见,或可透过本发明的实践而得知。本发明的优点透过元件及组合特别地指出于附加地权利请求,将会实现及达到。应当被理解的是,先前一般的说明书及接下来细节的说明书皆仅为例示性及解释性的,而不构成对本发明权利要求范围的限制。
【附图说明】
[0028]图1是本发明的实施例中动态使用者界面的一较佳实施例的一输出数据;
[0029]图2是本发明的实施例中动态使用者界面的第二实施例的输出数据,其中使用者与界面互动是可行的;
[0030]图3是本发明的实施例中动态使用者界面的系统的一较佳实施例;
[0031]图4是本发明的实施例中动态使用者界面的系统的较佳实施例的一软件及相关的硬件结构;图5a及图5b是本发明的实施例中动态使用者界面的方法的较佳实施例的流程;图5c及图5d是在无机器人程序被请求执行应用程序的情形下,本发明的实施例中动态使用者界面的方法的第二较佳实施例的流程;以及
[0032]图6是本发明的实施例中有关于使用相机拍摄照片的应用程序的动态使用者界面呈现输出资料的输出资料的一较佳实施例。
【具体实施方式】
[0033]为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,以下实施例结合附图对本发明动态使用者界面系统作具体阐述。
[0034]本发明的一例示性的动态使用者界面,较佳地包含一方法或系统,其用于产生一界面,界面显示与一或数个应用程序相关的讯息,其中就一应用程序,动态使用者界面较佳地显示应用程序的输出数据,输出数据包含应用程序的文字、一或多个影像、一或多张快照(snapshot)、或部分或全部缩时(part or full time-lapsed)视讯及/或音讯数据,且应用程序如同已被执行般而不需另要求使用者下载、安装或执行。
[0035]图1是描述本发明动态使用者界面的输出数据的一较佳实施例,其中至少一部份的输出数据是较佳地由一远端伺服器串流(stream)出来,其中应用程序在远端伺服器上是由机器人程序(robot,是指某个能以人类无法达到的速度不间断地执行某项任务的软件程序。或是webrobot,又称网路蜘蛛(web spider)或网路爬虫机器人(web crawler))所执行。透过展示被执行的应用程序的传输数据,本发明的动态使用者界面提供有关于应用程序的资讯,包含应用程序的视觉及感受资讯。另外,于本发明的一较佳实施例中,动态使用者界面是用来让使用者可与应用程序互动。于另一较佳实施例中,这些执行于远端伺服器的应用程序可耦接至设置于使用者设备中的硬件设备(举例来说,一感应器或一输入设备),使得硬件数值可被传送至该些应用程序。
[0036]本发明的动态使用者界面可较佳地处理各种应用程序,举例来说,如果一应用程序包含一行动应用程序(mobile app),除了提供相关于行动应用程序的静态文字叙述及/或静态影像的外,本发明的动态使用者界面,如同行动应用程序已被执行般,较佳地呈现行动应用程序的文字、一或多个快照、或部分或全部缩时视讯及/或音讯的输出数据。于其他例子中,如果一应用程序包含一手机游戏(mobile game),除了提供相关于手机游戏的静态文字叙述及/或静态影像的外,本发明的动态使用者界面,如同手机游戏已被使用者于智慧型行动装置(smart device)游玩般,较佳地呈现应用程序所产生的文字、一或多个快照、或部分或全部缩时视讯及/或音讯的输出数据,输出数据是当一或多个机器人程序操作游戏时,由应用程序所产生,且观看动态使用者界面的使用者可据此观看手机游戏,如同手机游戏被机器人程序所游玩一般。于其他例子中,如果一应用程序包含一具有数个网页的网站,除了提供关于网站的静态文字叙述及/或静态影像的外,本发明的动态使用者界面,如同网站已被使用者点击进入不同的网页般,较佳地呈现网页的文字、一或多个快照、或部分或全部缩时视讯及/或音讯的输出数据。如同熟悉本领域者可理解的是,本发明可适用于任何应用程序,应用程序的输出数据包含文字、动态影像及/或音讯,如视讯、动画或数个静态的影像,如图片或网页。
[0037]于其他例子中,因为一些应用程序可能已具备一子程序(subprogram)或一活动(activity)来执行该些应用程序的至少一部分,以向使用者说明应用程序如何被执行(executed)/操作(operated),所以在此情况下,机器人程序没有必要用来实施本发明的动态使用者界面(也就是说,此类应用程序于子程序/活动被发起(initiate)后,可自动地产生动态输出数据)。在本例子中,本发明的系统只需要发起/激活(activate)此类应用程序、并将输出数据串流(stream)至动态使用者界面中相对应的部分,而不需要求一或多个机器人程序来操作应用程序。
[0038]此外,在一较佳实施例中,本发明的动态使用者界面不仅提供些应用程序的输出数据,并且使得使用者于在无须被要求下载、安装或执行应用程序的情形下,亦可借由动态使用者界面与些应用程序互动。
[0039]图2是描述本发明用于使用者互动的一较佳实施例。
[0040]如图2所示,为了本发明于动态使用者界面上所展示的应用程序900,界面较佳地允许使用者输入文字讯息至对话框(box)912、并提交(submit)文字讯息至应用程序,而不需下载应用程序900。在其他例子中,使用者可以透过本发明的动态使用者界面,在界面上直接地点击(click)主页键(home button)918或地图页键(map button)920,即可控制地图应用程序800。如此一来,本发明的动态使用者界面不仅展示了应用程序的输出数据,并且提供使用者可透过动态使用者界面而与应用程序互动(interact)的机会。
[0041]在其他本发明的实施例,动态使用者界面用来让使用者可与界面上显示的应用程序互动,界面需要身体的动作来控制些应用程序,例如旋转、倾斜或摇动用户的设备。在本发明的实施例中,该些身体的动作可较佳的根据使用者的互动以及界面上所显示应用程序的输出数据而被模拟。特别的是,一使用者可以借由在一或多个方向拉动(drag)显示于动态使用者界面的一应用程序的视觉输出数据,来与应用程序互动,以模拟身体的动作。举例来说,若应用程序是一款赛车驾驶竞技游戏,且款赛车驾驶竞技游戏允许使用者借由实际将一游戏装置往左或往右倾斜来控制游戏中车辆的行进方向,则在动态使用者界面上可借由往左或往右拉动应用程序的输出数据,使得使用者可模拟倾斜的动作。同样地,若游戏允许使用者利用一摇动(shake)的动作与游戏互动,一使用者可透过快速的在动态使用者界面上连续往左及往右拉动搜寻结果来模拟摇动动作,进而达成与搜寻结果的互动。
[0042]在其他的较佳实施例,本发明的动态使用者界面被用来耦接装置包含的硬体装置,本发明的界面系被显示于装置上,且本发明的界面使用些硬体装置产生的硬体数值作为所讨论的应用程序的输入资讯。举例而言,所讨论的应用程序可较佳地自使用者装置接收真实或模拟的座标(或地理位置),其中本发明的界面是透过装置的一全球定位系统(GPS-Global Posit1ning System)模块(module)被显示于装置上,或甚至是透过由函式IP2Locat1n或其他可以由网际网路协定位址(IP-1nternet Protocol)找到地理位置(geo-locat1ns)的手段所模拟的位置资讯来显示于装置上。于其他例子中,本发明的应用程序可收集及接收本发明的界面在定位上的变化,或可收集及接收本发明的界面所常驻的装置在定位上的变化并相对应地旋转,以帮助使用者可更方便的控制/操作本应用程序。如果有数个应用程序需要实体动作控制,使用者界面可集中在一特定的应用程序,举例来说,使用者界面可在隐藏其他显示于动态使用者界面的其他应用程序的使用者界面或输出数据的同时,凸显应用程序/使用者界面或应用程序的输出数据。本发明的动态使用者界面具备与装置进行智慧型通讯的能力,目的是为了提供使用者有如同搜寻结果已安装于装置的本地端(I ο ca 11 y)中的相同体验。
[0043]本发明的动态使用者界面在提供搜寻结果的内文(context)上特别有用。目前,由较受欢迎的搜寻引擎(search engines)如谷歌(Google)及雅虎(Yahoo)等提供的搜寻结果,会受静态的数据(data)及影像所限制。除了由常见的搜寻服务所提供的静态数据及影像的外,本发明的动态使用者界面可提供搜寻结果中的文字、一或多个快照或部分或全部缩时视讯及/或音讯的输出数据,且如同机器人程序执行搜寻结果一般。再者,因为应用程序正在运行的同时,本发明可存取(access to)由应用程序所产生的数据(这样的动态数据,又可被称为“应用程序内数据”(in-app data)),除了基于搜寻结果的静态描述以外,搜寻可另基于(be based on)应用程序内数据。借由实施(perform)基于应用程序内数据的搜寻,可带来更丰富且可供搜寻的数据(richer pool of data),使得相较于一般的搜寻方法或系统而言,可得到更精确的搜寻结果。关于应用程序内数据的方法与系统,可参考美国专利申请案编号13960779(U.S.Patent App.N0.13960779)来得到更多的细节描述。此外,在本发明的一实施例中,如图1和图2所示,本发明的动态使用者界面使得使用者可与应用程序呈现于搜寻结果界面上的输出数据互动。借由将本发明应用于搜寻内文(searchcontext),相较于一般搜寻方法或系统的搜寻结果,本发明在搜寻到更多讯息时能够提供更高的精确度,并提供视觉及感觉上较佳建议的搜寻结果,而不需使用者下载、安装或执行应用程序。
[0044]另外,本发明的动态使用者界面对于应用程序的购买目的或应用程序的租赁目的具有潜在的价值。特别的是,本发明可应用于行动应用程序市场,如安卓应用程序门市(Android App stores),其中本发明使得使用者在购买及/或下载应用程序的前,可先体验应用程序。此外,本发明对于希望租出去(rent out)应用程序而不是卖出应用程序的企业也是有用的,其中使用者可借由本发明的动态使用者界面使用租来的应用程序,而不须下载应用程序。熟悉本领域且具有其一般知识者即可理解,本发明可应用于多种不同的商业环境。
[0045]图3描绘了本发明的一个较佳实施例中产生动态使用者界面的系统。
[0046]如图3所示,本系统较佳地包含一或多个伺服器lO(server),一或多个客户端(client) 20 及/或一或多个伺服器应用程序(&。。1;^31:;[011 server) 30。
[0047]每一伺服器10较佳地另包含一个监督程序lOiKsupervisor)、一或多个机器人程序110 (robot)、一或多个应用程序120 (app Ii cat 1n)、一或多个处理器130 (processor)及/或一或多个网路界面140(network interface)。监督程序100较佳地包含一软件程序(software program),其在本发明作为一控制者。每个机器人程序110较佳地包含一软件程序,其被用来执行一或多个应用程序120。每个应用程序120较佳地包含一软件应用程序、连网电脑游戏(online PC game)、行动应用程序、或网页浏览器等。处理器130较佳地被用在处理(process)伺服器10的构成部件(component)的数据,如监督程序100、机器人程序110、应用程序120、网路界面140、一数据库(database) 150或一或多个虚拟机器160(virtualmachine)中其中的一。数据库150较佳地在系统发出请求时储存数据。
[0048]本发明的系统还包含一或多个虚拟机器160。如果任一应用程序120不能在伺服器10的作业系统上以本机端方式运作,一或多个虚拟机器160可帮助应用程序120在伺服器10上执行。应被指出的是,伺服器10较佳地包含数个虚拟机器160,所以伺服器10可模拟多样性的作业系统,如安卓、微软视窗作业系统(Windows)、苹果行动设备作业系统(i0S)、UNIX(UNIX作业系统)等。
[0049]应用程序伺服器30较佳地包含与对应的应用程序120通信及/或协助执行应用程序120的伺服器。举例来说,于本发明的一较佳实施例,一应用程序120可能包含一网路电脑游戏;在这个例子中,相对应的应用程序伺服器30较佳地包含一伺服器来安装网路游戏120及执行数种任务,该些任务可包含但不限于为网路游戏120接收数据、提供数据及/或处理数据。在其他本发明较佳地实施例中,应用程序120可包含一行动应用程序;在这个例子中,相对应的应用程序伺服器30较佳地包含一伺服器,伺服器安装行动应用程序120及执行数种任务,该些任务可包含但不限于为相对应的行动应用程序120接收数据、提供数据及/或处理数据。于其他本发明的较佳实施例,应用程序120可包含一网站浏览器(web browser),其可展示网站;在本例中,相对应的应用程序伺服器30较佳地包含一网站伺服器,网站伺服器承载网站及执行数种任务,该些任务可包含但不限于为网站浏览器应用程序120接收数据、提供数据及/或处理数据。于其他本发明的较佳实施例,应用程序120可以是一独立的(stand-alone)软件应用程序而不需任何应用程序伺服器30来操作,使得在本例中,系统不需要相对应的应用程序伺服器30。
[0050]一或多个客户端20包含一或多个输入模块210(module)、一或多个网路界面220(network interface)、一或多个处理器230(processor)、一或多个媒体输出240(mediaoutput)、一或多个硬件设备250(hardware device)及/或一或多个客户端应用程序260(client applicat1n)。一或多个输入模块21用来接收输入数据,如使用者的请求。输入模块210可包含一屏幕键盘(onscreen keyboard)、一实体键盘(physical keyboard)、一手写(handwriting)输入模块、一语音输入设备(如一麦克风)或上述各个元件的可能组合。一或多个网路界面220使伺服器10得以与客户端20通讯。媒体输出240较佳地可输出文字、视讯及/或音讯资讯,例如由伺服器10所接收与一或多个应用程序120有关的输出数据。
[0051]另外,在本发明的一较佳实施例中,使用者可与应用程序互动,媒体输出240也可接收来自一使用者的输入数据。举例来说,媒体输出240可在指向设备(pointing device)检测位置,如一光标(cursor)或是触敏屏幕,其中在使用触敏屏幕的情况下,使用者可使用例如触控笔(stylus)或手指尖端的物理接触方式向媒体输出指出位置。
[0052]此外,于本较佳实施例中,客户端20还包含一或多个硬件设备250,其包含但不限制于一相机、一麦克风、一全球定位系统(GPS,Global Posit1ning System)、一加速度计(accelerometer)、一陀螺仪(gyroscope )、一光感测器(light sensor)、一温度计(thermometer)、一石兹力计(magnetometer)、一气压计(barometer)、一近接感测器(proximity sensor)、一湿度计(hygrometer)、一近场通信(Near Field Communicat1n,NFC)、一图像感测器(image sensor)或一喇卩八(loudspeaker)。在一例子中,硬件设备250较佳地被用在感测(8 61186)环境数值(611¥;[1'011111611丨31 Va I Ue S ),如影像、声音、加速度(accelerat1n)、大气温度(ambient temperature)、方定车专率(rate of rotat1n)、环境光位准(ambient light level)、地磁场(geomagnetic field)、周遭气压(ambient airpres sure)、一物体相对于硬件设备的视觉屏幕的接近度、相对环境湿度、座标(coordinates)(全球定位系统/辅助全球定位系统(AGPS,Assisted Global Posit1ningSystem模块)等。本发明的系统较佳地使硬件设备250及应用程序120的信息交换得以进行,这些被交换的信息包含环境数值。这种信息交换的流程如下解释于图5b。在一例子中,客户端应用程序260可较佳地包含或被用在耦接于一软件应用程序,软件应用程序可显示本发明的动态使用者界面的输出数据,例如一网站浏览器或一客制化软件应用程序(应用程序)包含或耦接于媒体输出240。
[0053]图4在本发明的一较佳实施例中图示了伺服器10的一较佳软件及相关的硬件架构(hardware architecture)、与客户端20,在较佳实施例中,使用者可与动态使用者界面所显示出的应用程序互动。
[0054]如图4所示,伺服器10的结构较佳地包含虚拟机器160(若被应用程序120所请求)、一内核(kernel)41 O、一硬件抽象层(hardware abstract1n layer,HAL)420、一或多个程序库(libraries) 430、一应用程序框架(app Ii cat 1n framework )440、应用程序450 及/或一虚拟驱动程序(pseudo driver)460。客户端20的一架构较佳地包含硬件设备250、一设备驱动程序520、一存储器(memory) 530、一硬件抽象层540、一或多个程序库550、一应用程序框架560及/或一应用程序260。
[0055]硬件抽象层420及540较佳地包含多个软件(pieces of software),其为应用程序450提供硬体资源的存取(access)。值得注意的是,虽然硬件抽象层是安卓操作系统软件结构的标准部分(standard part),然而硬件抽象层可能不完全以相同的形式或甚至存在于所有其他作业系统,如苹果行动设备作业系统(1S)及微软视窗作业系统(Windows)。因此,在本发明的替代(alternative)实施例中,在非安卓操作系统运行的客户端20较佳地包含用于处理硬件控制及通信的相似软件结构,例如微软视窗驱动程序模型(Windows DriverModel)。在另一较佳实施例,硬件抽象层是不需要的。应用程序450较佳地包含监督程序100、机器人程序110及/或应用程序120。在一较佳实施例中,应用程序260包含一网站浏览器。程序库(libraries)430以及550和应用程序框架440及560较佳地提供软件平台,且应用程序450及260可在软件平台上运行。如前,当应用程序120在伺服器10可以本地端方式运行,则可能不需要虚拟机器160。
[0056]存储器530较佳地包含随机存取存储器,且由硬件设备250所产生的硬件数值可以储存在随机存取存储器上。虚拟驱动程序460较佳的把来自客户端20的硬件数值转换(convert)成使应用程序120或应用程序120的应用程序界面(Applicat1n programminginterface,API)可理解的数据,并可发送(transmit)所转换的数据至应用程序120或应用程序120的应用程序界面。在一较佳实施例中,一虚拟驱动程序可用来处理一组应用数值(例如,其可被用来仅处理全球定位系统座标及传送数值给与位置相关联的应用程序界面)。在其他的较佳实施例中,虚拟驱动程序460可较佳地被用来处理数个硬件设备250至一应用程序120(也就是说,其可被用来变成能够转换/传输来自不同的硬件设备的不同类型的硬件数值),以及因此促进应用程序120及超过一硬件设备的耦接。更进一步关于虚拟驱动程序的细节将与图5b—同描述。
[0057]如熟悉本领域并具有其一般知识者即能理解,系统的各种组件(components)可被并入至更少的伺服器或甚至单一电子计算机。举例来说,伺服器10及任一伺服器30可能皆常驻于一机器。从另一观点来看,伺服器10、客户端20及/或应用程序伺服器30的各种组件并没有必要常驻于单一伺服器或单一客户端中,但可能位于分散(separate)的多个伺服器及/或多个客户端中。举例来说,伺服器10的数据库150可座落于其自有的数据库伺服器,且数据库伺服器是分开但联网于伺服器10。在其他例子中,客户端20的媒体输出240可以不必是一内置(built-1n)屏幕,而也可以是联网于客户端20的分开独立的显示器(monitor)。
[0058]图5a是描述用来产生本发明动态使用者界面的方法的一较佳实施例的流程图。
[0059]如图5a所示,在步骤1000中,监督程序10较佳地启动(initiate)—或多个机器人程序110以运行一或多个应用程序120。机器人程序110是较佳地被编程(program)用来模拟使用者的行为而用以自动地执行应用程序。在其他较佳实施例中,机器人程序110可借由随机地探测(probe)多个应用程序120的使用者界面,而被用来随机地操作多个应用程序120。此种类的机器人程序110是适合用来操作各种应用程序120。机器人程序110的各种实施例的举例已描述于美国专利申请案编号13960779。在本发明的一较佳实施例中,机器人程序110包含使用预编程(preprogram)逻辑来运行应用程序120的一软件程序。在其他本发明的较佳实施例中,机器人程序110包含一软件程序,软件程序使用一光学字符识别(Opticalcharacter recognit1n,OCR)逻辑来操作应用程序120。在本发明的另一较佳实施例,机器人程序110包含一软件程序,软件程序根据应用程序120预录的(pre-recorded)人控操作(human manipulat1n)来操作应用程序120,包含使用学习自应用程序120的人控操作的逻辑。
[0060]举例来说,在本发明的较佳实施例中,使用者可与显示于动态使用者界面的应用程序互动,当一使用者透过动态使用者界面来运行及控制一搜寻结果以进行操作时,使用者的行为(例如点击(click)界面是用来模拟触摸/轻敲的事件,或拖拉的动作是用来模拟滑动/移动的事件)较佳地会被客户端应用程序260及/或一或多个硬件设备250所侦测、并传送回监督程序100及/或机器人程序110,以将使用者的行为记录为一脚本(script)(或一部分的程序编码(programming code))以帮助机器人程序稍后使用脚本操作/控制同样的应用程序。借由此种教学/机器学习的机制,机器人程序110透过学习而更像人类的行为举止,其较佳地变得更”有智慧”(intelligent)。相应地,因为机器人程序110变得更”拟人化”(human-like),显示于动态使用者界面的应用程序120的输出数据将会对使用者更具有意义。在第四个本发明的较佳实施例,机器人程序110包含一软件程序,其根据四种被描述的逻辑中两个或两个以上的组合,操作应用程序120。
[0061]在步骤1010,监督程序100或机器人程序110较佳地决定是否每个应用程序120可以运行在伺服器10本地的作业系统,或决定在步骤1020中应用程序120需要被执行在虚拟机器160上。于一较佳地实施例中,若已知应用程序120可以在伺服器10以本地端方式运行特定作业系统,而非运行伺服器10原有的作业系统,则可以省略步骤1010、并直接地进入步骤1020,以使得应用程序120可在虚拟机器160上被相对应的作业系统执行。在步骤1030,若有需要,为了在步骤1040运作顺畅,应用程序120会连线到一或多个相对应的应用程序伺服器30。在步骤1050,应用程序120输出的数据,其包括但不限于文字、视讯及/或音讯。在步骤1060,监督程序100决定是否将由应用程序120输出的数据储存于数据库150。若储存数据是必须的,于步骤1070,由应用程序120输出的数据较佳地储存于数据库150。
[0062]在一较佳实施例中,数据储存于数据库150中,且数据包含如同被机器人程序110所执行的一或多个应用程序120的输出数据。输出数据较佳地包含文字、视讯及/或音讯输出数据。在其他本发明的较佳实施例,储存于数据库150的数据包含在应用程序120及其相对应的应用程序伺服器30的间传输的数据。在另外一个本发明的较佳实施例,储存于数据库150的数据包含如前的两种数据。
[0063]在本发明的一较佳实施例中,监督程序100决定储存应用程序120输出的所有输出数据以及在应用程序120和相对应所有的应用程序伺服器30的间传输的所有数据于数据库150中。在其他本发明的较佳实施例,监督程序100可能决定只储存部分的数据。作法较佳的原因在于保留伺服器10的资源,例如伺服器10的处理器电源及/或储存空间。举例来说,若所讨论的其中一个应用程序120包含一全长(full length)的电影,本发明的系统仅会储存一系列的电影快照、电影的小片段、一系列电影的小片段或一全长版本但仅具低解析度品质的电影,而不会储存整部电影。
[0064]在一较佳实施例,步骤1000至1070被连续地重复执行。在其他较佳实施例,步骤1000至1070仅定期地或仅在需要时才会重复执行。举例来说,若有一使用者所请求的资讯未存在于数据库150中或在没有足够的系统资源等状况下,本发明才会执行。
[0065]在步骤2000,本发明系统的一使用者可透过输入模块210而产生一请求。于本发明的一较佳实施例,若输入模块210包含一实体键盘,可以透过键入(type)特定指令/关键字来产生请求。在本发明的其他较佳实施例,若输入模块包含一声音输入设备如麦克风,于接收指令/关键字的音频格式(aud1 form)并辨识出音频格式后,请求会被产生出来。
[0066]于步骤2010,应用程序260借由联网界面220及140,传输请求给监督程序100。于步骤2020,监督程序100接收请求。于步骤2030,监督程序100辨识出有关于请求的应用程序120。于本发明的较佳实施例中,储存于数据库150中的数据可被监督程序100用来决定其中的一应用程序120与一特定请求间的关联性。如上,当其中的一应用程序120正在运行,且当数据在其中的一应用程序120及其相对应的应用程序伺服器30间相互流通时,储存于数据库150中的数据可包含在应用程序内数据(in-app data),其较佳地包含其中的一应用程序120的文字、视讯及/或音讯等输出数据。各种演算法(algorithms)可用来决定相关性,其中最简单的演算法包含将请求中包含的文字与置底搜索数据(underlying search data)相比对。
[0067]于步骤2040,监督程序100决定借由联网界面140及220,传送有关于被讨论(inquest1n)的请求的应用程序120的输出数据到客户端20。于本发明的一较佳实施例,监督程序100传送来自其中的一应用程序120的整体输出数据。于其他本发明的较佳实施例中,监督程序100是较佳地仅传输部分的输出数据。举例来说,在一较佳实施例,监督程序100为了要节省(conserve)系统资源例如处理电源及/或储存空间,则可能会限制到客户端20的传输量。特别是,若被讨论的应用程序120的一包含一全长的电影,监督程序100会较佳地限制输出传输量到一系列的电影快照、电影的小片段、一系列电影的小片段到客户端应用程序260,而不是传输整部电影。
[0068]于步骤2050,当接收到与被讨论的请求相关的应用程序120的输出数据时,在步骤2060,客户端应用程序260会在媒体输出230上显示输出数据。在本发明的一较佳实施例,媒体输出240被用来显示来自于一或多个相关的应用程序120的一或多个输出数据。如前,当应用程序120被执行或接近即时处理(real time)时,应用程序120的输出数据较佳地包含文字、音讯、快照或一系列快照、或部分或全部缩时视讯及/或音讯数据。在本发明的其他较佳实施例,从伺服器10串流出来的数据并非直播(live)或接近直播,而是源自于先前储存于数据库150的数据。
[0069]图5b描述本发明的较佳的一方法,其中使用者可透过动态使用者界面与一或多个应用程序120互动。
[0070]如图5b所示,在步骤3000,为了增进互动,监督程序100较佳地耦接于客户端应用程序的输出数据,且输出数据是显示在媒体输出240及/或输入模块210上,使得若使用者启动与其中的一特定应用程序120的互动,监督程序100有能力可以侦测到。上述例子较佳的包含使用座标来投射(mapping)客户端应用程序260的输出数据投射于并显示在媒体输出240。举例来说,若媒体输出240包含一配有480x800分辨率(resolut1n)的屏幕,则笛卡儿座标(Cartesian coordinates) [33,88]于一视窗(window)较佳地指出从左上角起算第33列上的像素及第88行上像素的位置,其中视窗用来显示应用程序120的活动。透过提供讯息,如相对应于客户端应用程序260的中心及/或一对XY轴座标,例如[33,88]及[109,208],可指定即将被产生的影像(view)的左上角及右下角的位置,其中显示于媒体输出240的客户端应用程序260的输出数据可耦接于监督程序100。应该被提出的是,笛卡儿座标系统外的座标系统,当符合上述条件时,亦可被使用。
[0071 ]于其他较佳实施例,耦接客户端应用程序260显示于媒体输出240的输出数据较佳地另包含:使用一或多个事件标签以指出与该些座标有关的一事件。举例来说,事件"TOUCH[33,66]”代表使用者在媒体输出240位于座标[33,66]的像素上轻敲或触碰屏幕位置。熟悉本领域及具有其一般常识者即可理解,座标及/或事件标签可能需要适当的转译(translat1n)或转换给监督程序100,原因在于监督程序100可能被用在与媒体输出240不同的分辨率,或在于仅有部分的媒体输出240用在显示动态使用者界面的用途。借由提供座标及事件标签,当使用者的行为指出该使用者希望启动与其中的一特定应用程序120的互动,且特定应用程序120被显示于本发明的动态使用者界面时,监督程序100可较佳地侦测到事件。
[0072]在步骤3010,使用者可用各种方式较佳地启动与应用程序120的互动。举例来说,若媒体输出240包含一触敏屏幕,使用者可较佳地与显示于媒体输出240的其中的一特定应用程序120的输出数据直接互动,例如以使用者手指的顶端触碰来进行互动。于其他本发明的较佳实施例中,使用者可使用荧幕上的游标(cursor)瞄准(aim)及轻触滑鼠(mouse)在显示于媒体输出240上其中的一特定应用程序120的输出数据上,而与其中的一特定应用程序120互动。在此两例中,一套座标及触摸事件标签被传送给监督程序100,以指出使用者希望与对应于座标相对应位置的其中的一特定应用程序120互动。于其他较佳实施例,若输入模块包含一键盘,为了启动与对应于例如数字9的一特定应用程序的互动,使用者可简单的敲击对应于数字9的特定按键(keys)。
[0073]接下来,于步骤3020,监督程序100创造应用程序120的一新事件(instance),以特定用来单独与使用者互动。因为新事件的应用程序较佳的由使用者手动操作,所以没有必要将新事件与一机器人程序110连接。若有多于一使用者希望与一应用程序120互动,应用程序120的数个事件将被产生在伺服器10,使得每个使用者可各自独立地与应用程序120的事件互动。应该被提出的是,若应用程序120请求一虚拟机器160来执行,在一较佳实施例中,应用程序120的其他事件与新事件,可皆产生于同一虚拟机器160中。在其他较佳实施例,应用程序120的新事件可执行于其独占的一虚拟机器160,而非与应用程序120的其他事件共享虚拟机器160来产生并执行。
[0074]当应用程序120的一新事件被产生出来,应用程序120的新事件是较佳地于一开始时即被初始化,如同使用者刚开启应用程序一般。举例来说,若被讨论的应用程序是一个游戏,应用程序120的新事件可由游戏的最初状态开始执行,让使用者可以由游戏的最初状态开始体验。于其他例子中,若应用程序120是一个行动应用程序,其提供使用者收听音讯串流的能力,则行动应用程序的新事件可于预设的(default)第一页开始执行,其中使用者可浏览于不同种类(页)的音乐。
[0075]于另一种情形,当应用程序120的新事件被产生出来时,应用程序120的新事件可以精确地或大概地(approximately)以使用者向应用程序120请求互动时的状态被执行。举例来说,若被讨论的应用程序120是用来显示动画片(animat1n)或影片,应用程序的新事件可以精确地或大概地由使用者要求与应用程序120互动的时间点开始播放动画片。在其他例子中,若被讨论的应用程序120是一行动应用程序,行动应用程序包括一或多个活动或网页,该些活动或网页其中的一内容是新车的相关介绍,且要求是例如关于买新车的位置的资讯,则应用程序120的新事件可直接地引导(br ing)使用者到具有数页(mu 11 1-page)的行动应用程序中显示有销售新车的位置资讯的特定网页。
[0076]在其他本发明的较佳实施例,当应用程序120的一新事件被产生出来时,应用程序120的新事件可以由应用程序120的特定部分开始执行,其中特定部分与请求关联性最高。举例来说,若被讨论的应用程序120是餐厅X具有多个网页的网站,且请求是关于餐厅X的位置,机器人程序可直接地引导网页的新事件到具有多个网页的网站中显示有餐厅X位置资讯的特定网页。同样地,若被讨论的应用程序120是餐厅X的多屏幕(multiscreen)行动应用程序,且请求是有关于餐厅X的位置,则机器人程序可引导新事件到多屏幕行动应用程序中显示有餐厅X位置资讯的特定屏幕。
[0077]接下来,为了要促进使用者与应用程序120的互动,客户端20较佳地耦接于执行在伺服器10上的应用程序120。此较佳地包含将媒体模块240及硬体设备250耦接于应用程序120。
[0078]在步骤3030,于一较佳实施例,在耦接于监督程序100的状况下,耦接客户端应用程序260中显示于媒体输出240的输出数据至应用程序120,较佳的包含使用座标及/或事件标签所进行的投射(mapping)。在耦接于监督程序100的情况下,熟悉本领域并具有一般常识者即可理解,座标可能需要对应于应用程序120进行适当的转译或转换,其理由可包含应用程序120所使用的分辨率与媒体输出240的分辨率不同及/或应用程序120的输出数据仅占据在媒体输出240的客户端上的应用程序260的一部分输出数据。借由耦接客户端260的输出数据到应用程序120,使得应用程序120可接收在媒体输出240的使用者操作。
[0079]当显示在媒体输出240的客户端应用程序260的输出数据被耦接于应用程序120时,本发明的动态使用者界面可用来让使用者与一应用程序互动,其中应用程序需要以物理运动(phys i caI mot1n)来控制。在的前提过的一例子中,为了要模拟物理运动,使用者可借由在一或多个方向拖拉应用程序120的视觉输出数据,来较佳地与显示于动态使用者界面的一应用程序互动,或操作及控制应用程序。于一较佳实施例,拖拉动作可较佳地产生一系列的” DRAG[X,Y]”座标及对应的事件标签对(pair),其中相对应的应用程序120可将X及Y座标的数值变化转译(interpret)为一个特定的方向。于另一个实施例,客户端应用程序260可能将一系列”DRAG[X,Y]座标及事件标签对转换成数据,以适当地与应用程序120互动,其中应用程序120可将数据转译为一方向。
[0080]如使用拖拉机制的一应用程序的例子,若应用程序是一驾驶跑车游戏,其使一使用者可借由在游戏设备上以物理方式做出左倾斜动作或右倾斜动作,来控制驾驶跑车游戏中车辆的方向;若使用者于动态使用者界面上拖拉应用程序的输出数据至右或左,则驾驶跑车游戏可使使用者在应用程序120上模拟倾斜动作。同样地,若驾驶跑车游戏使一使用者可利用一摇动的动作与驾驶跑车游戏互动,一使用者可借由在动态使用者界面中快速连续的向左及向右拖拉搜寻结果来模拟摇动的动作并与搜寻结果互动,以使使用者可与应用程序120互动。
[0081 ]在其他本发明的较佳实施例,客户端20的硬件设备250亦可耦接于应用程序120,将感应装置250耦接于应用程序120的过程较佳地包含步骤3040,其中客户端20获得应用程序120所需要的硬件设定。
[0082]硬件设备的设定是较佳地为一组数值,此组数值用来配置(configure)应用程序120需要的硬件设备250。于本发明的一较佳实施例中,若客户端20共有八个硬件设备,则硬件设定可较佳地采用八位元(digits)的形式(每一位元具有一”O”或” I”的数值)来指出应用程序120的硬件数值代表的请求。举例来说,硬件设定[0,1,1,0,0,0,0,0]可用来指出需要第二及第三个伺服器/硬件设备被需要,且应该从客户端20被重新导向(redirect)到应用程序120。应用程序120的硬件设定可借由分析(analyze)应用程序120而取得。于一安卓应用程序的例子中,AndroidManifest.xml档案指出被需要用来执行应用程序的活动与意图过滤器(intent filters)等的数量,并借此提供应用程序的硬件需求资讯。在此例中,每一执行于虚拟机器上的应用程序可具备至少一个硬件设定。
[0083]在接收到硬件设定时,于步骤3050,监督程序100较佳地开启及耦接需要的硬件设备250到应用程序120。此步骤较佳地引入(involve)虚拟伺服器460及驱动程序520的使用。在其他例子中,应用程序120可在不考虑应用程序120的硬件设定的情况下被耦接于复数的驱动程序,并传送硬件数值到伺服器以外由硬件设定所选择的第二环境。熟悉本领域及具备一般知识者即可理解,驱动程序不需要无时无刻的运行。驱动程序可在接收硬件设定后启动,且当驱动程序不再被应用程序120所需要时驱动程序可被停止,或当使用者转换(switch to)到其他应用程序120时,客户端20可停止驱动程序。
[0084]—旦硬件设备250被親接于应用程序120,当一硬件设备250被触发(trigger)于步骤3060时,存储530在步骤3060中接收一或多个从驱动程序520传输而来的硬件数值。于步骤3070中,客户端20接着用伺服器10的硬件抽象层420来传送硬件数值到应用程序120。虚拟驱动程序460接收硬件数值,将硬件数值转换成适合应用程序120的格式,并将被转换的硬件数值传送到应用程序120做处理。
[0085]在其他本发明的较佳实施例,并不需要实施(implement)虚拟驱动程序。硬件数值可被传送到硬件抽象层420,并直接地传输到应用程序120。举例来说,当一使用者使用动态使用者界面来操作一导航(navigat1n)应用程序,导航应用程序实际上是在没有直接地耦合于一真正的全球卫星定位系统/辅助全球卫星定位系统(GPS/AGPS)模块的情况下运行。产生在客户端20的全球卫星定位系统信号不能被传送到导航应用程序120,因为动态使用者界面本身是一应用程序,且不能用来接收硬件数值。例如,在一安卓应用程序,程式设计者需要在封装(pack)应用程序包裹档案的前,在程式码中写下一行载入(loading)包裹android, locat1n中包含的类别(class) “GpsSatellite”用的程式码,以取得座标,其中应用程序包裹档案可例如为安卓中的.apk档案。上述载入类别“GpsSatellite”的原因在于预测或限制可运行在动态使用者界面的应用程序是不可能的,所以得知所有硬件可提供的所有函式(funct1ns)也是很困难的。于本发明的一例子中,动态使用者界面可预设的载入所有类别来提供服务。于本发明的其他例子,动态使用者界面可动态地自我配置,以载入特定种类的类别,或在接收相关硬件数值后,耦接于特定硬件(例如实施在动态使用者界面中的一程序回应于硬件数值来载入相对应的类别)。
[0086]于一较佳实施例,每当步骤3050需要时,与硬件程序250相对应的驱动程序可持续地耦接于应用程序120,以使相对应的硬件数值/硬件所产生的档案可被传送到应用程序120。于其他较佳实施例,当没有连网服务时,硬件数值可在存储560被暂存(buffer),且当连网服务恢复时,硬件数值仅传输到应用程序120。
[0087]于本发明的一较佳实施例中,硬件数值包含影像、声音、加速度、周遭的温度、旋转率、环境光位准、地磁场、周遭的气压、一物体相对于视觉屏幕的接近度、相对环境湿度、或座标(全球定位系统/辅助全球定位系统模块)等。硬件数值是从客户端20中包含例如相机、麦克风、加速度计、温度计、陀螺仪、磁力计、气压计、近程式传感器(proximity sensors)或湿度计等硬件而来。
[0088]如前关于本发明的方法的叙述,监督程序100执行许多任务。应该被注意到的是监督程序100可被建造(structure)成单一的软件模块,或监督程序100可包含由监督程序100执行的各种功能所对应划分(divide)的数个模块。举例来说,监督程序100可以包含一个模块特别用来传输应用程序120的输出数据、包含另一不同的模块用来控制数据库储存、或包含再另一其他模块用来制造应用程序的事件等。另外,于其他实施例中,并不需要监督程序100所执行的特定任务,因此应用程序100中对应特定任务的模块不被包含于本发明的方法及系统。举例来说,若应用程序120总是把其所有的输出数据传送到客户端20,则无监督程序100决定应该要传送什么数据到客户端20的必要。极端而言,若不需要由监督程序100执行大部分的任务,的后监督程序100剩余的功能可被整合(fold into)于本发明的方法及系统的其他组件,像是机器人程序110。举例来说,若一特定的使用者总是要求(refer to)唯一的应用程序,输出数据的全部会从应用程序产生且无进行使用者互动的必要,因此不需要监督程序100的控制及决策功能。取而代的的是,机器人程序110可在步骤220中处理请求的接收,并在步骤230及240中,处理被请求的应用程序120的传送。
[0089]如图示,图4、图5b及图6可能被用来描述一较佳实施例,其中一使用者使用相机作为硬件设备250来为应用程序120拍摄影像。注意于图5中,虚线代表函数呼叫或指令(呼叫/指示硬件或相对应的应用程序界面);且实线代表真实的数据传送,例如影像或任何种类的硬件数值。
[0090]于步骤3000中,监督程序100较佳地耦接客户端应用程序260的输出数据于媒体输出240上、并接收(listen for)使用者的行为。于步骤3010,为了开启与应用程序120的互动,一使用者较佳地选择显示于本发明动态使用者界面的应用程序120,动态使用者界面寄送座标及使用者事件到监督程序100。在接收座标及触摸事件时,监督程序100启动应用程序120。于步骤3020,监督程序100特别为了使用者产生一应用程序120的新事件。接下来,于步骤3030,监督程序100使用座标及事件标签,将显示于媒体输出240的客户端应用程序260的输出数据与应用程序120耦接。于步骤3040,监督程序100接收应用程序120的硬件设定,在硬件设定中其中的一硬件250所请求的将会是一相机。于步骤3050,监督程序100将相机的驱动程序耦接于应用程序120,此可能需要启动驱动程序520及虚拟驱动程序460。于步骤3060,硬件250被启动,此可能包含一使用者按下一按钮,按钮对应于一应用程序的相机图案,且应用程序显示在动态使用者界面上,按钮例如可为图6的按钮610。于接收触摸事件的后,监督程序100接着识别出触摸事件,并应用(apply)触摸事件在应用程序120上。在任何对分辨率差异所进行的适当转换后,应用程序120可根据触摸事件座标识别出使用者希望拍摄照片,因为触摸事件座标代表触摸事件发生于相机启动按钮内的位置。如图6所示,在本发明的其他实施例中,应用程序120可能寄送一套座标以配置一媒体输出240上的区域620,区域620对应于一用来启动相机的按钮。举例来说,传送一套座标回去应用程序120的步骤可能是不需要的,因为客户端应用程序260可能被用来识别使用者触摸屏幕以产生初始触摸事件的位置。于一例子中,对应于一按钮的一图形物件(view)可由动态输出界面产生于其本地端,因此图形物件的分辨率可以本地端方式被修正(fixed)。然而,动态使用者界面的剩余屏幕是用来显示应用程序120的输出数据,且分辨率可用来调整(adjust)联网的带宽(bandwidth)(例如,于高带宽时可采用1080P(progressive scan,逐行扫描),而于低带宽时可采用360P)。
[0091 ]在步骤3070中,一旦相机被启动,硬件数值会被寄送到存储530。硬件数值较佳地包含一或多个被拍摄的图像。于步骤3080中,此数据接着透过硬件抽象层420及540被寄送到应用程序120。
[0092]于本发明的其他较佳实施例,其不需要机器人程序来运行应用程序120。取而代的的是,使用者可简单地请求其希望使用的应用程序120,则伺服器10制造一应用程序120的新事件供使用者使用以做为回应,且当应用程序120被机器人程序110所执行时,不需要预先显示应用程序120的使用者输出数据。因此,对应于如图3所示的特定实施例的系统将不需要机器人程序110。图5c及图5d图示本发明的较佳实施例的过程。
[0093]于步骤4000,使用者由输入模块210输入(enter)—请求。在步骤4010中,客户端20接着传送请求至伺服器10。接下来,在步骤4020中,在接收请求时,监督程序100决定有关于请求的应用程序120于步骤4030中。在步骤4040中,监督程序100产生应用程序120的一新事件,监督程序100决定应用程序120是否需要一虚拟机器及应用程序伺服器30来适当地运行于步骤4050-4080中。在步骤4090中一旦应用程序120的新事件被产生出来,应用程序120会启动及开始产生输出数据。应该被强调的是,应用程序120的输出数据在此情况下是相关于应用程序120的正常初始化状态,例如输出数据包含显示应用程序120的启动屏幕,但显示步骤并不是由机器人程序110的执行所造成。在步骤4100中,监督程序100传送输出数据到客户端20,且客户端20于步骤4110中接收输出数据。于步骤4120中,客户端20显示由伺服器10传送到应用程序120的输出数据,透过客户端应用程序260显示于媒体输出240。
[0094]接下来,于步骤4130中,监督程序100使用XY座标及/或事件标签来耦接显示于媒体输出240的应用程序260的输出数据至应用程序120,以使得使用者及应用程序120透过应用程序120的输出数据进行互动,其中输出数据是由客户端应用程序260显示于媒体输出240。若硬件被需要与应用程序120互动,客户端20会取得由应用程序120传输而来的硬件设定。在步骤4150中,监督程序100使用驱动程序520来耦接必要的硬件设备250于应用程序120、硬件抽象层530、虚拟驱动程序460及硬件抽象层420。当应用程序120与硬件设备250耦接时,其有可能于步骤4160中触发硬件设备250。在步骤4170中,硬件设备250产生硬件数值,其中虚拟应用程序460会将硬件数值转换成应用程序120可以处理的形式,并在转换后将硬件数值传回应用程序120。随着应用程序120完全耦接于客户端20,使用者现在可借由客户端20使用应用程序120,如同应用程序120正运行于客户端20上,而不需实际地在设备20上下载、安装及/或执行应用程序120。
[0095]熟悉本领域并具有其一般能力者即知,上述例子可在不偏离本发明的较广发明概念的情况下做出改变。可理解的是,因此本发明并不局限于所公开的特定实施例,但其目的在于保护涵盖如本发明各请求项所定义的具有本发明精神及范围内的任何改变。
[0096]更进一步地,在描述本发明具有代表性的例子时,本说明书可能以一段特定顺序的步骤来呈现本发明的方法及/或过程。然而,本发明所呈现的方法或过程并不全然依赖在此阐述的特定步骤顺序,因此方法或过程不应该受上述的特定序列步骤所限制。熟悉本领域的人即可理解,即使采用上述特定顺序以外的其他顺序,本发明所阐述的步骤亦可实现本发明的各实施例。因此,于本说明书所阐述的上述特定步骤顺序不应被认定为本发明权利要求的限制。另外,涉及本发明的方法及/或过程的权利要求,不应受限于其书面的步骤顺序所提供的功效,且熟悉本领域并具有一般能力者即可知悉,本发明的步骤顺序可在维持本发明精神及范围的情况下被改变。
【主权项】
1.一种产生动态使用者界面的系统,其特征在于,包括: 一或多个客户端; 一或多个伺服器,其联网至所述一或多个客户端; 一或多个应用程序,其常驻于所述一或多个伺服器;以及 一或多个机器人程序,其常驻于所述一或多个伺服器,其中所述一或多个机器人程序用来执行所述一或多个应用程序,且在所述一或多个机器人程序执行所述一或多个应用程序时,所述一或多个伺服器用来提供一或多个输出数据到所述一或多个客户端。2.如权利要求1所述的动态使用者界面系统,其特征在于: 还包括监督程序,其常驻于所述一或多个伺服器。3.如权利要求1所述的动态使用者界面系统,其特征在于: 所述输出数据包括自所述一或多个应用程序的输出数据中取出的文字、快照或一系列快照,或部分或全部缩时视讯及/或音讯数据。4.如权利要求1所述的动态使用者界面系统,其特征在于: 所述一或多个伺服器由所述一或多个客户端接收一或多个请求。5.如权利要求4所述的动态使用者界面系统,其特征在于: 所述请求与线上搜寻有关。6.如权利要求4所述的动态使用者界面系统,其特征在于: 所述请求相关于一或多个用于应用程序租赁用途的应用程序。7.如权利要求4所述的动态使用者界面系统,其特征在于,所述请求相关于一或多个用于应用程序购买用途的应用程序。8.如权利要求4所述的动态使用者界面系统,其特征在于: 所述被传送到该客户端的一或多个应用程序的输出数据,是源自于与所述一或多个请求相关的应用程序。9.如权利要求8所述的动态使用者界面系统,其特征在于: 关联性是使用应用程序内数据所决定。10.如权利要求1所述的动态使用者界面系统,其特征在于,还包括: 用于储存应用程式内数据的数据库,所述应用程式内数据包括来自所述一或多个应用程序的所述输出数据。11.如权利要求10所述的动态使用者界面系统,其特征在于: 传送至所述一或多个客户端的所述数据的来源包括储存于所述数据库的输出数据。12.如权利要求1所述的动态使用者界面系统,其特征在于,还包括: 一或多个应用程序伺服器,用来支援所述一或多个应用程序的执行。13.如权利要求1所述的动态使用者界面系统,其特征在于,还包括: 用于储存应用程序内数据的数据库,所述应用程序内数据包括所述一或多个应用程序与相对应的应用程序伺服器的间所交换的数据。14.如权利要求4所述的动态使用者界面系统,其特征在于,还包括: 常驻于所述客户端的媒体输出。15.如权利要求14所述的动态使用者界面系统,其特征在于,还包括: 常驻于客户端的客户端应用程序,所述客户端应用程序用来呈现从所述伺服器透过所述媒体输出传送的所述一或多个应用程序的输出数据。16.如权利要求15所述的动态使用者界面系统,其特征在于: 由所述媒体输出显示的所述客户端应用程序所呈现所述应用程序的输出数据,用来使使用者可透过客户端应用程序而与所述一或多个应用程序互动。17.如权利要求16所述的动态使用者界面系统,其特征在于: 由所述媒体输出显示的所述客户端应用程序所呈现所述一或多个应用程序的输出数据,是耦接于所述一或多个相对应的应用程序。18.如权利要求17所述的动态使用者界面系统,其特征在于: 所述耦接行为包括传送一座标及一对事件标签。19.如权利要求16所述的动态使用者界面系统,其特征在于,还包括: 模拟物理动作的手段,所述物理动作在借由模拟来与所述一或多个应用程序互动的过程中被需要,所述模拟是基于使用者与所述媒体输出显示的所述客户端应用程序所呈现所述一或多个应用程序的输出数据的互动来进行。20.如权利要求1所述的动态使用者界面系统,其特征在于: 所述客户端还包括一或多个硬件设备。21.如权利要求20所述的动态使用者界面系统,其特征在于: 所述一或多个应用程序耦接于所述一或多个硬件设备。22.如权利要求21所述的动态使用者界面系统,其特征在于: 所述耦接行为包括硬体数值的交换。23.如权利要求22所述的动态使用者界面系统,其特征在于: 所述一或多个应用程序用来由所述一或多个硬件设备在所述客户端上对应的驱动程序、用来接收所述硬件数值的虚拟驱动程序、硬件抽象层、及耦接于所述一或多个应用程序的程序库中至少其中的一,接收所述硬件数值。24.如权利要求1所述的动态使用者界面系统,其特征在于,还包括: 用来辅助所述一或多个应用程序的一或多个虚拟机器,所述一或多个应用程序无法于所述一或多个伺服器以本地端方式运行。25.如权利要求15所述的动态使用者界面系统,其特征在于: 所述一或多个应用程序的事件被产生用于促进使用者互动。26.如权利要求25所述的动态使用者界面系统,其特征在于: 被产生用于促进使用者互动的所述应用程序的所述事件,启始于所述应用程序的起始处。27.如权利要求25所述的动态使用者界面系统,其特征在于: 被产生用于促进使用者互动的所述应用程序的所述事件,启始于当使用者与所述应用程序的间的交流被启始时,所述应用程序被执行的处。28.如权利要求25所述的动态使用者界面系统,其特征在于: 被产生用于使用者互动的所述应用程序的所述事件,其启始于所述应用程序中与所述使用者请求的关联性最高的位置。29.一种产生产生动态使用者界面的方法,其特征在于,包括: 在一或多个伺服器上,使用一或多个机器人程序来执行一或多个应用程序;以及 将所述一或多个应用程序的输出数据传送至一或多个客户端。30.如权利要求29所述的方法,其特征在于: 所述被传送的一或多个应用程序的输出数据包括自所述一或多个应用程序的输出数据中取出的文字、快照或一系列快照,或部分或全部缩时视讯及/或音讯数据。31.如权利要求29所述的方法,其特征在于,还包括: 由所述一或多个客户端接收一或多个请求。32.如权利要求31所述的方法,其特征在于: 所述一或多个请求包括一或多个线上搜寻索引。33.如权利要求31所述的方法,其特征在于: 所述一或多个请求包括由一或多个应用程序而来的一或多个用于应用程序租赁用途的请求。34.如权利要求31所述的方法,其特征在于: 所述一或多个请求包括由一或多个应用程序而来的一或多个用于应用程序购买用途的请求。35.如权利要求29所述的方法,其特征在于: 所述传输输出数据的步骤包括所述一或多个应用程序的输出数据相关联于所述一或多个请求。36.如权利要求35所述的方法,其特征在于: 所述一或多个应用程序的关联性是使用应用程序内数据所决定。37.如权利要求29所述的方法,其特征在于: 传输所述一或多个应用程序的输出数据的步骤,是在所述一或多个应用程序产生所述输出数据时,以直播或接近直播的方式完成。38.如权利要求29所述的方法,其特征在于,还包括: 储存应用程序内数据,所述应用程序内数据包括由位于所述一或多个数据库内且由所述一或多个应用程序而来的输出数据。39.如权利要求38所述的方法,其特征在于: 所述传送所述一或多个应用程序的输出数据的步骤是通过传送储存于所述一或多个数据库内的输出数据来完成。40.如权利要求29所述的方法,其特征在于,还包括: 使用一或多个应用程序伺服器来支援所述一或多个应用程序的执行。41.如权利要求40所述的方法,其特征在于,还包括: 储存应用程序内数据于一或多个数据库内,且所述应用程序内数据包括所述一或多个应用程序与相对应的应用程序伺服器的间所交换的数据。42.如权利要求29所述的方法,其特征在于,还包括: 显示所述一或多个应用程序的输出数据于一或多个媒体输出上。43.如权利要求42所述的方法,其特征在于,还包括: 使用一或多个客户端应用程序,来显示所述一或多个应用程序的输出数据于一或多个媒体输出上。44.如权利要求43所述的方法,其特征在于,还包括: 通过在所述媒体输出上由所述客户端应用程序显示的所述一或多个应用程序的输出数据,来使使用者可与所述一或多个应用程序交流。45.如权利要求44所述的方法,其特征在于,还包括: 将在所述媒体输出上显示的所述一或多个客户端应用程序所呈现所述一或多个应用程序的输出数据,耦接于所述一或多个相对应的应用程序。46.如权利要求45所述的方法,其特征在于: 所述将在所述媒体输出上显示的所述一或多个客户端应用程序所呈现所述一或多个应用程序的输出数据,耦接于所述一或多个相对应的应用程序的步骤包括:交换一或多个座标及事件标签对。47.如权利要求45所述的方法,其特征在于,还包括: 模拟物理动作的手段,所述物理动作在借由模拟来与所述一或多个应用程序互动的过程中被需要,所述模拟是基于使用者与所述媒体输出显示的所述客户端应用程序所呈现所述一或多个应用程序的输出数据的互动来进行。48.如权利要求44所述的方法,其特征在于,还包括: 产生所述一或多个应用程序的事件,以促进使用者与所述应用程序的所述事件的间的互动。49.如权利要求48所述的动态使用者界面系统,其特征在于: 被产生用于促进使用者互动的所述应用程序的所述事件,启始于所述应用程序的起始处。50.如权利要求48所述的动态使用者界面系统,其特征在于: 被产生用于促进使用者互动的所述应用程序的所述事件,启始于当使用者与所述应用程序的间的交流被启始时,所述应用程序被执行的处。51.如权利要求48所述的动态使用者界面系统,其特征在于: 被产生用于促进使用者互动的所述应用程序的所述事件,其启始于所述应用程序中与所述一或多个请求的关联性最高的位置。52.如权利要求29所述的方法,其特征在于,还包括: 将所述一或多个应用程序耦接至常驻于所述一或多个客户端内的一或多个硬件装置。53.如权利要求52所述的方法,其特征在于: 将所述一或多个应用程序耦接至常驻于所述一或多个客户端内的所述一或多个硬件装置的所述步骤包括交换一或多个硬件数值。54.如权利要求53所述的方法,其特征在于,还包括: 所述一或多个应用程序处理所述硬件数值。55.如权利要求29所述的方法,其特征在于,还包括: 使用一或多个虚拟伺服器来执行所述一或多个应用程序。56.一种产生动态使用者界面的系统,其特征在于,包括: 一或多个客户端; 一或多个伺服器,其联网至所述一或多个客户端; 一或多个应用程序,其常驻于所述一或多个伺服器;以及 一或多个客户端应用程序,其常驻于所述一或多个客户端; 其中所述一或多个客户端应用程序耦接于所述一或多个常驻于所述伺服器内的一或多个应用程序,以使得使用者得以通过所述一或多个客户端来与所述一或多个应用程序互动。57.如权利要求56所述的动态使用者界面系统,其特征在于,还包括: 媒体输出,其用来呈现所述一或多个客户端应用程序所显示的一或多个应用程序的输出数据。58.如权利要求56所述的动态使用者界面系统,其特征在于: 所述一或多个客户端应用程序与所述一或多个应用程序的间的耦接步骤包 括座标与事件标签对的交换。59.如权利要求56所述的动态使用者界面系统,其特征在于: 另包含一或多个硬件装置。60.如权利要求59所述的动态使用者界面系统,其特征在于: 所述一或多个应用程序耦接于所述一或多个硬件装置。61.如权利要求60所述的动态使用者界面系统,其特征在于: 所述耦接步骤包含交换一或多个硬件数值。62.如权利要求61所述的动态使用者介面系统,其特征在于: 其中,所述一或多个应用程序用来处理由所述硬件装置而来的硬件数值。63.—种产生动态使用者界面系统的方法,包括如下步骤: 产生并初始化一或多个伺服器上一或多个应用程序的事件;及耦接在所述一或多个伺服器上应用程序的事件于一或多个客户端,以使得使用者得以使用所述一或多个客户端来与所述一或多个应用程序互动,其中所述一或多个客户端相对于所述一或多个伺服器是位于远端。64.如权利要求63所述的方法,其特征在于,还包括: 使用一或多个客户端应用程序来在一或多个媒体输出上展示所述一或多个应用程序的输出数据。65.如权利要求64所述的方法,其特征在于: 所述耦接步骤包含通过所述一或多个显示于所述媒体输出的客户端应用程序,将所述一或多个应用程序的输出数据耦接至一或多个应用程序的一或多个对应事件。66.如权利要求65所述的方法,其特征在于: 所述通过所述一或多个显示于所述媒体输出的客户端应用程序,将所述一或多个应用程序的输出数据耦接至一或多个应用程序的一或多个对应事件的步骤包括:交换一或多个座标及事件标签对。67.如权利要求63所述的方法,其特征在于,还包括: 耦接所述一或多个应用程序至常驻于所述一或多个客户端的一或多个硬件装置。68.如权利要求67所述的方法,其特征在于: 所述耦接所述一或多个应用程序至常驻于所述一或多个客户端的一或多个硬件装置的步骤包括:交换一或多个硬件数值。69.如权利要求68所述的方法,其特征在于,还包括: 所述一或多个应用程序处理所述一或多个硬件数值。70.—种用于配置触感区域、第一布局、或根据执行于第二环境的第二应用程序的第二图形物件的第二布局来产生执行于第一环境的第一应用程序的第一图形物件的方法,包括: 接收一对XY座标;及 根据所接收的所述对XY座标,在所述第一应用程序的所述第一布局上的一位置,产生第一图形物件。71.如权利要求68所述的方法,其特征在于,还包含: 接收标签,其中所述标签代表于/对应于所述第一图形物件处理的一种事件,其中由所述第一图形物件所处理的所述种事件与所述第二应用程序的第二图形物件相似或相同;及配置所述第一图形物件,以具有对应于所述标签的功能。72.—种由第一环境至第二环境传送由硬件驱动程序而来的硬件数值的方法,包括下列步骤: 耦接至所述第二环境; 由所述第二环境接收硬件设定; 基于所述硬件设定,配置以由驱动程序接收硬件数值;及 传送所接收的硬件数值至所述第二环境。73.如权利要求70所述的方法,其特征在于,还包括: 耦接于所述驱动程序,以在接收所述硬件设定后,由所述驱动程序对应地接收所述硬件数值。74.如权利要求70所述的方法,其特征在于,还包括: 在接收所述硬件设定前,耦接于多个驱动程序;及 将所述硬件数值由所述硬件设定所选定的所述硬件驱动程序,传送至所述第二环境。75.如权利要求70所述的方法,其特征在于,还包括: 当没有网路服务时,暂存所述硬件数值;及 当有网路服务时,将所述硬件数值传送至所述虚拟机器。76.—种将来自第一环境的硬件驱动程序的硬件数值传送至第二环境上执行的第二应用程序的方法,包括以下步骤: 耦接于所述虚拟机器; 由所述虚拟机器接收硬件设定; 根据所述硬件设定,耦接至驱动程序; 由所述驱动程序接收硬件数值;及 将所述硬件数值传送至所述第二应用程序。77.如权利要求74所述的方法,其特征在于,还包括: 当没有网路服务时,暂存所述硬件数值;及 当有网路服务时,将所述硬件数值传送至所述第二应用程序。78.—种根据虚拟机器上第二应用程序来初始化第一应用程序的活动的方法, 包括如下步骤: 接收触碰事件; 传送一对XY座标至所述虚拟机器,其中所述对XY座标代表荧幕上被触碰而产生所述触碰事件的位置; 接收配置,以对所述第一应用程序的第一活动进行初始化;及 当接收到所述触碰事件时,传送所述第一活动所产生的第一结果至所述虚拟机器。79.如权利要求76所述的方法,其特征在于,还包括: 接收二对XY座标,所述二对XY座标代表可被触碰而产生所述触碰事件的区域的左上角位置及右下角位置。80.如权利要求77所述的方法,其特征在于,还包括: 若所述区域被触碰,则初始化所述第一活动。81.如权利要求78所述的方法,其特征在于,还包含: 当接收到所述触碰事件时,将所述第一活动所产生的第二结果传送至所述虚拟机器。82.如权利要求76所述的方法,其特征在于,还包括: 接收一对XY座标及半径值,所述对XY座标代表产生所述触碰事件的圆形区域的中心,且所述半径值代表所述圆形区域的半径。83.如权利要求80所述的方法,其特征在于,还包括: 若所述区域被触碰,则初始化所述第一活动。84.如权利要求80所述的方法,其特征在于,还包括: 当接收到所述触碰事件时,将所述第一活动所产生的第二结果传送至所述虚拟机器。85.如权利要求X所述的方法,其特征在于: 所述硬件包含蓝芽、W1-Fi无线网路、近场通信、相机、全球定位系统、陀螺仪、罗盘、及加速度计。86.如权利要求X所述的方法,其特征在于: 所述虚拟机器包括可主控多个应用程序的作业系统。87.—种在第一计算装置上的第一应用程序接收广告的方法,其包括: 传送第一 XY座标,其中第一应用程序的使用者界面被触碰至一虚拟机器; 由所述虚拟机器或另一伺服器接收第二 XY座标;及 当所述第一应用程序用来基于所述第二 XY座标形成触碰区域时或在此的前,接收广告;及 其中所述触碰区域可被触碰而启始一活动。88.一种在第一计算装置的第一应用程序上接收广告的方法,其包括: 接收XY座标,以用来配置所述第一应用程序来形成触碰区域于其使用者界面上,或是以用来在所述第一应用程序的所述使用者界面上显示所述第一应用程序的操作画面或所述广告时,产生活动,其中所述触碰区域可被触碰而启始一活动。
【文档编号】G06F3/00GK106062663SQ201480040011
【公开日】2016年10月26日
【申请日】2014年8月7日
【发明人】许瑞城, 林修平, 吴齐人
【申请人】飞搜股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1