CN105900058A - 动态地调整品牌和平台界面元素 - Google Patents

动态地调整品牌和平台界面元素 Download PDF

Info

Publication number
CN105900058A
CN105900058A CN201480072436.XA CN201480072436A CN105900058A CN 105900058 A CN105900058 A CN 105900058A CN 201480072436 A CN201480072436 A CN 201480072436A CN 105900058 A CN105900058 A CN 105900058A
Authority
CN
China
Prior art keywords
data
handling system
data handling
amount
user
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201480072436.XA
Other languages
English (en)
Other versions
CN105900058B (zh
Inventor
H·艾哈迈德
D·P·希尔
R·M·布鲁克讷
P·麦克凯
D·G·坎贝尔
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105900058A publication Critical patent/CN105900058A/zh
Application granted granted Critical
Publication of CN105900058B publication Critical patent/CN105900058B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5054Automatic deployment of services triggered by the service manager, e.g. service implementation by automatic configuration of network components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5055Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/509Offload

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

各实施例在第二数据处理系统上呈现通过跨第一数据处理系统和第二数据处理系统执行数据处理而从数据集中得到的结果。由第二数据处理系统执行的处理的量可被动态地调整。第一数据处理系统接收指示相较于要被呈现给用户的第二数据处理系统的界面特征的第一数据处理系统的界面特征的量的信息。数据处理可基于相较于要被呈现给用户的第二数据处理系统的界面特征的第一数据处理系统的界面特征的量来在第一数据处理系统和第二数据处理系统之间被动态地分配。

Description

动态地调整品牌和平台界面元素
背景
背景和相关技术
计算机和计算系统已经影响了现代生活的近乎每一个方面。计算机通常涉及工作、休闲保健、运输、娱乐、家政管理等。
通常,设备访问来自分布式系统的服务。设备通常具有它们自己的界面特征。例如,一些设备可显示使用单选按钮的真/假选择器,而其他设备使用滑块控件。由此,不同设备的用户在访问相同服务时,取决于他们正使用哪个设备平台来访问服务,将通常具有非常不同的用户体验。在一些情况下,这可能是理想的,然而在其他情况下,这可能是较不理想的。
此处要求保护的主题不限于解决任何缺点或仅在诸如上述环境这样的环境中操作的各实施例。相反,提供该背景仅用于例示其中可实现所述一些实施例的一个示例性技术领域。
简要概述
本文中示出的一个实施例包括可在包括第一数据处理系统和第二数据处理系统的计算环境中实现的方法。该方法包括用于在第二数据处理系统上呈现通过跨第一数据处理系统和第二数据处理系统执行数据处理而从数据集中得到的结果的动作,其中由第二数据处理系统执行的处理的量可取决于相较于要被呈现给用户的第二数据处理系统的界面特征的第一数据处理系统的界面特征的量来被动态地调整。该方法包括第一数据处理系统接收指示相较于要被呈现给用户的第二数据处理系统的界面特征的第一数据处理系统的界面特征的量的信息。该方法还包括第一数据处理系统基于相较于要被呈现给用户的第二数据处理系统的界面特征的第一数据处理系统的界面特征的量来在第一数据处理系统和第二数据处理系统之间动态地分配数据处理。数据处理包括要由第一数据系统执行的第一部分和要由第二数据处理系统执行的第二部分。
提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。
附加特征和优点将在以下描述中提出,且部分会从描述中显而易见,或者可以通过实践此处的原理来获悉。本发明的特征和优点可以通过在所附权利要求书中特别指出的工具和组合来实现和获得。本发明的特征从以下描述和所附权利要求书中将更完全显而易见,或者可以通过如下文所述实践本发明而获悉。
附图简述
为了描述可获得以上记载的及其他优点和特征的方式,将参照各具体实施例呈现以上简述的主题的更具体描述,各具体实施例在附图中例示。理解这些附图仅描述典型的实施例,因此不应被视为限制本发明的范围,各实施例将通过使用附图以附加的具体性和细节来描述和解释,附图中:
图1示出可相互交互的第一和第二数据处理系统;
图2示出由用户感受到的响应性的图形表示;
图3示出数据处理流水线;
图4示出用于跨两个系统划分数据处理并在系统之一处呈现数据的方法;以及
图5示出用于基于平台相较于品牌透过效应跨两个系统划分数据处理并在系统之一处呈现数据的方法。
详细描述
本文中示出的实施例允许数据处理在不同的系统之中被动态地分配。在一些实施例中,这可通过相较于被发送的被更完整预处理的数据的量来改变作为预期要被进一步处理的经较少处理的数据来发送的数据的量来实现。在最极端的示例中,一个系统可处理所有数据来创建供第二系统显示的像素或位图集。第一系统可接着将像素或位图流传输到第二系统,其中第二系统可简单地通过在第二系统处的显示器上显示像素或位图来呈现它们。替换方法可被实现来提供像素或位图,诸如电子邮件或其他消息收发。在另一极端中,所有原始数据可从第一系统被发送到第二系统,其中第二系统可存储、处理和呈现该数据。
尽管当前存在执行类似功能性的系统,但是相反,本文中的实施例包括用于动态地改变在第一系统处对经较少处理的数据执行的处理的量以及允许第二系统对经较少处理的数据的各部分执行处理以产生可被呈现在第二系统处的经处理的数据的功能性。通过使用之前的示例,第二系统将接收某些经预处理的数据,5但还将处理某些附加的经较少处理的数据以创建能通过在第二系统处显示这些经处理的数据的全部来被呈现的数据。被发送到第二系统的相较于经较少处理的数据的量的经预处理的数据的量可随着时间基于改变的因素来改变。由此,各实施例可动态地改变由两个系统中的每一个所执行的数据处理的量。
在第一系统处完成的处理的量以及在第二系统处完成的处理的量动态地取决于第二系统的能力。由此,例如,如果第一系统确定第二系统具有低的处理能力或低的数据存储能力,则第一系统可处理经较少处理的数据中的大部分或全部,使得从第一设备发送到第二设备的数据全部是或大部分是像素或以其他方式被预处理。相反,如果第一系统可确定例如第二系统具有相对较高的处理能力以及相对较高的存储能力,并且不存在其他限制因素,则第一系统可发送大部分经较少处理的数据,这些经较少处理的数据将之后被第二系统处理来创建可在第二系统处呈现的数据,这些数据可之后通过将数据显示在第二系统处来被呈现。
由第一系统发送到第二系统的经预处理的数据的量相较于经较少处理的数据的量可基于第二系统的能力(包括第二系统的能力改变时)被动态地改变。由此,相比于第二系统处于完全功率模式和/或没有忙于本地地处理其他任务时,如果第二系统正以低功率状态操作,或者如果第二系统正忙于处理其他任务使得可用处理功率和/或存储是低的,则更多的经预处理的数据和更少的经较少处理的数据将由第一系统发送到第二系统。在以下也示出了各种其他能力,诸如接口能力、存储能力、可用硬件设备、系统正由电池电力供电还是由某个硬连线的功率源供电、剩余电池电力的量等。
在一些实施例中,影响系统的外部因素也可被用于确定系统之间的处理分配。例如,网络带宽、网络延迟、错误域、商业考量、管理员设置、系统集成的程度等可被用于确定如何在系统之间分配处理。
图1中示出了一说明性示例。图1示出了第一系统102,其可以例如是服务器、分布式服务、云服务等。图1还示出了第二系统104,其可以例如是客户端系统,诸如台式系统、膝上型电脑系统、智能电话或其他客户端系统。注意,尽管示出并调出了服务器客户端示例,但是在其他实施例中,第一和第二系统可以是被实现在相同计算机硬件上的对等系统中的对等体,或者可实现其他配置。
如图1中示出的,第二系统104向第一系统102发送指示第二系统104的能力的信息106。如以下更加详细讨论的,能力可包括信息,诸如可用处理功率、可用存储器、可用持久存储、可用硬件设备、所安装的可用软件应用、可用受管运行时环境或开发平台、可用人类用户界面等。第一系统102向第二系统104发送数据集108。图1示出用范围在纯原始数据和纯像素之间的滑块控件110所表示的数据集108。这比喻性地表示以下事实:数据集108可被第一系统102变化地配置为纯原始数据,使得所有处理和呈现由第二系统104执行,或数据集108可为纯像素,使得实际上除了通过将数据集108中的数据显示在第二系统104处来呈现数据集108中的数据之外没有对数据集108中的数据执行其他处理,或数据集108可以取决于第二系统104的能力是某个可变量的经较少处理的数据和像素数据。
通常,应用尝试为高度交互和高度数据驱动。然而,当数据处理中的全部或大部分在第一系统102(例如,服务器)处被执行,而呈现在第二系统104(例如,客户端)处被执行时,这些目标可能难以实现。说明性地,用户交互会要求:第一系统102向第二系统104发送像素,第二系统104接收与用户的交互,第二系统104将交互发送到第一系统102,第一系统102执行更多的数据处理,第一系统102创建像素,第一系统102向第二系统104发送像素,以及最终使第二系统104显示像素。然而,如果第二系统104具有低的处理功率,则在第二系统104必须花费过度的时间量来执行可被第一系统102快得多地来完成的处理的情况下,可显现出相等或更糟的交互性体验。
考虑以下示例。假设某一简单的应用对三个变量A、B和C执行数学加法运算。变量A和B可以是静态的或通过某个计算获得。C是用户提供的变量。在其中客户端设备(例如,系统104)是低能力设备并向服务器(例如,系统102)这么指示的场景中,客户端将接收来自用户的输入,将输入发送到将执行运算A+B+C的服务器。如果客户端是中等能力设备,则服务器可计算A+B并将结果发送到客户端,其中客户端会接收针对C的输入并接着简单地将C添加到先前从服务器提供的针对A+B的结果。如果客户端是高能力设备,则服务器可简单地将A和B提供到客户端。客户端可接着接收来自用户的C并在客户端处计算A+B+C。
在一替换实施例中,处理的划分可基于从根本上说取决于低层平台能力的实现花费。在这种情况下,可在会话的初始化时(连接时间)确定处理的分配并且之后不改变。例如,语音到文本转换或光学字符识别或触摸姿势识别全部是仅被成熟开发平台支持且通常在新兴设备上不可用的膨胀算法。由此,可在会话初始化时确定经确定的处理量并在此之后不会改变(除非存在对第二系统作出的广泛且不太可能的改变)使得处理的分配在初始分配之后不太可能改变。
处理的分配可在各个不同的点处发生。例如,分配可在以下以从最不动态到最动态的次序移动的点中的一个或多个处确定:开发时间、编译时间、安装时间、会话初始化、在能力改变时、根据每个请求和/或连续校准。这些点可能是其中处理分配被作出的最通用的点,但是应当理解,其他点也可被用于确定应当在第一和第二系统之间作出处理分配方面的改变。
场景可基于操作的类型、操作的百分比等来实现。例如,不同的操作可取决于执行某一操作需要多少处理能力来被不同地分类。例如,逻辑XOR运算可相对简单,而浮点计算可相对复杂。这两个操作之间的是变化的操作复杂度。可针对操作来标识或定义复杂度值。例如,静态复杂度值可被手动地分派到一操作。在以上示例中,可能为1的复杂度可被应用到XOR运算,而为10的复杂度被应用到浮点计算。简单的加法计算可被分派4。替换地,可确定用于完成一操作的处理器周期的数量。被传递到客户端设备的操作的类型可基于客户端设备的能力。例如,高能力的设备可被引导来执行所有操作,而随着客户端的能力被降低,该设备将仅被引导来执行不超过某个复杂度阈值、处理器周期阈值或其他适当度量的操作。
在一替换实施例中,一设备可基于其能力被引导来执行某个百分比的操作。一设备的能力越高,该设备就会被引导来执行由某一应用执行的全部操作中越高的百分比。在另一替换或附加的实施例中,一设备可取决于其能力被引导来以特定速率执行操作。例如,一设备的能力越高,该设备就将被引导来每分钟、每秒、或某个其他时间单元执行更多的操作。任何需要被执行、但不能以该设备正在执行操作的速率来被执行的其他操作可接着在不同的系统(例如,当该设备是第二系统104时,为第一系统102)处被执行。
类似的原理可针对图形操作来实现。例如,操作的范围可从显示像素到执行复杂的多边形计算,在之间伴随有变化的复杂度操作(诸如定标、着色、加阴影、布局重新计算(例如,在横向和纵向之间移动)、缩放、平移、滚动、防叠处理等)。这些操作中的每一个可具有与它们相关联的某个复杂度值,并且阈值可被确定,使得阈值内的操作可取决于客户端设备(例如,系统104)的能力被发送到客户端,而超过阈值的操作可由服务器或服务(例如,系统102)执行以产生可被发送到客户端以供显示的像素。由此,例如,如果一设备是低能力设备,各实施例可致使服务器将数据转换成几何形状并且还将几何形状呈现成位图图像,并简单地将这些位图图像发送到设备,而无需任何本地计算。可通过类似使用图像映射和/或通过将用户输入隧穿到服务的技术来实现交互性。在给定两个系统之间足够能力的网络连接的情况下,这不必然引起较低质量的体验。
在一替换示例中,如果设备是中等能力的设备(在这个示例中,该设备不能本地地进行数据到几何形状的转换和布局操作),则在调整大小拖动操作期间,各实施例可在服务器上执行布局并在客户端设备上执行光学定标以在服务器上等待的同时管理即时响应性。这个的示例被示出在图2中,其示出用户感受到的响应性的图形表示。图2示出用户向第二系统104发出请求202。只要第二系统可在第二系统104上执行处理,它就能这么做并向用户返回响应206。这向用户提供一种即时响应的感觉。然而,附加的处理可由第一系统102执行,并且一旦响应204可从第一系统发送,响应204就被发送。这还对用户感受到的响应性作出贡献。
可基于设备的能力或影响设备的其他因素来作出关于哪些操作在服务器处执行以及哪些操作在该设备处执行的各种其他决定。如在本文中示出的先前示例中,在该设备处执行的全部操作的百分比以及设备的所请求的操作的比率可被用作操作的度量。并且,如提到的,操作的量和/或类型可基于改变的设备能力随着时间针对同一设备来改变。此外,应该注意,即使在系统执行哪些操作方面存在改变,也可存在类似的用户体验。例如,特定的服务水平可被选择,诸如显示200x200个像素的服务水平。即使客户端设备的提供像素的一部分的能力可改变,但是作为服务器系统(例如,系统102)和客户端系统(例如,系统104)的努力的结果,即使每个系统随着时间执行不同量的数据处理,200x200个像素将依然随着时间被提供。
其他类别的操作可使用类似的原理。例如,在软件支持可用的情况下,墨水识别或语音到文本转换可在客户端上发生。否则,原始输入将被流传输到服务器以供处理。在另一示例中,预测分析或预报算法可取决于数据的大小和其他机器学习因素来转移处理。在还一示例中,不同机器之间的处理分配可基于动态模型(诸如动态学习模型)被动态地分配。例如,考虑墨水到文本转换。当用户首先获得第二数据处理系统时,各实施例可偏向墨水到文本转换更频繁地在第一数据处理系统上发生。随着第一数据处理系统学习用户的墨水行为,从而导致在第一数据处理系统上创建用户的姿势的模型,这个模型可被安装在第二数据处理系统上来使得墨水到文本转换更加准确,而不必随着时间来同样多地利用第一数据处理系统。
在还一示例中,处理可基于用户交互自身的性质在不同的机器之中分配。这多半独立于实际操作的复杂度。例如,实时交互(其要求系统基于用户输入实时地提供UI更新)将在客户端(例如,第二数据处理系统104)上完成。相反,非实时交互(即使是非常简单的那些)不必这样,并且出于其他操作上的原因可在服务器(例如,第一数据处理系统)上完成。
本文中的各实施例通过基于系统中的一者或两者的能力以及它们之间通信信道的质量来平衡什么处理由每个系统执行来促进提供高度交互且高度数据驱动的应用。例如,如以上示出的,各实施例具有在基于各个特征要求在纯数据和纯像素范围上的任意位置从服务(例如,主)到客户端(例如,从)(或者在对等体之间)发送指令的能力。
通过使用这样的功能,各实施例可提供用于跨服务和客户端层级来运行组件流水线中的全部或子集的灵活性。由此,各实施例展现鲁棒性以动态地基于各因素来针对各个特征决定服务/客户端握手细节,各因素类似客户端硬件和软件能力、系统之间通信介质的性能、历史使用模式、系统的可用性、负载特征、商业限制等。
在基于云的服务上下文中,商业限制可涉及订阅类型、所购买的资源、剩余的资源、竞争格局等。例如,在一些实施例中,订阅类型可指用户已订阅的服务水平。服务水平可具有对资源的量和类型的不同保证、对服务和/或资源可用性的不同保证等。一般而言,用户所购买的较低的资源水平或用户所购买的较低的服务水平表明更多的处理将由客户端机器而非在基于云的服务处被执行,因为较大量资源可基于特定用户没有订阅这些服务而在云服务处对该特定用户不可用。替换地,如果用户具有根据时间或处理的量的给定的资源分配,随着用户接近该分配的限制,更多的处理可被卸载到客户端设备,而非云设备。
一些实施例可结合从华盛顿州雷蒙德市的微软公司可用的Power View可视化平台来实现。Power View可视化平台为所有Power BI(商业智能)客户端(其也从华盛顿州雷蒙德市的微软公司可用)提供视觉基础。针对这个特定系统的架构风格是“后端重—本机前端”,表明后端可执行大部分的数据处理,而数据使用本机前端用户界面技术被呈现给用户。这允许以下概念被实现:
·部署配置的普遍性和多样性(例如,跨单个或两个层级);
·支持所有数据大小-从本地离线数据到云范围的大型数据;
·一旦被构建,就能在任何地方针对视觉和行为来运行,从而允许开发者编写可在服务器处被运行的单个应用代码集,同时允许客户端使用它们的本机接口来与应用进行交互;
·跨大范围的客户端设备(例如,从电话到个人计算机)最大化不同客户端设备的性能;
·对所有设备能力(不管是标准的还是专有的)的即时访问;
·对用户体验的选择,从而允许其中客户端本机用户界面元素被为所有用户提供的平台透过效应(platform shine-through)或其中经标准化的用户界面元素被为所有用户提供的品牌透过效应(brand shine-through)的不同水平;
·从视觉到分析的连续节奏的创新,以允许对一应用的更新针对所有用户,而无需用户手动地应用更新,而是在服务器水平处更新;
·对工程师视觉(无论是由系统实现者构建的还是从第三方带来的)的灵活度;
·跨相同会话的多个用户的更丰富的协作前景;
·对开源软件创新的未经限制的访问-跨web和设备。
Power BI以及其他服务跨设备和服务在各种各样的单层级和两层级部署模式上提供高度数据驱动、视觉上互连的体验。各场景的范围可从交互式视觉洞察到预测分析到在本地到云规模数据的范围上的排定的报告。
两层级系统可实现以数据为中心的视觉表示模型以及运行该表示模型的代码。该两层级系统具有服务器或服务(例如,系统102)(诸如基于云的服务),该服务器或服务通常运行该代码中的大部分,而表示模型被显示在连接到服务器或服务的客户端设备(例如,系统104)处。在一层级系统中,不同的实体可在离线模式中被实现。例如,不同的视觉系统可被实现在相同的硬件上,使得不需要在广域网上或云环境中发生供该两个实体相互通信的通信。由此,在一些实施例中,第一数据处理系统和第二数据处理系统两者均可被实现在单个客户端设备上。排定的作业是单层级系统的另一示例,其中第一和第二系统运行在服务器硬件上并诸如经由电子邮件或通过在排定的时间添加到服务器存储来递送结果。本文中的各实施例可被实现在一层级或两层级系统或类似的配置和组合中。
典型表示模型的范围从“纯原始数据”到“纯像素”。在范围的其中服务执行最小处理的一端,服务提供经较少处理的数据。在该范围的另一端,服务执行最大处理,使得服务将输出呈现为被发送到客户端的位图。用户输入被转发到服务并由服务处理。先前的方案主要在应用水平处选择该范围的任一端。相反,本文中的各实施例提供用于在特征水平粒度处进行选择的灵活度以及进行中的动态协商。
由此,各实施例实现完全灵活的视觉表示模型。该视觉表示模型可支持完整范围的值,从而允许开发者针对他们的场景来适当地设计服务/客户端工作负载。在第一系统或第二系统上进行地更多或更少可因此是关于管理和平衡例如以下折衷因素中的一个或多个:
·云大小数据相较于(vs.)客户端大小数据
·低交互性相较于高交互性
·云节奏相较于客户端节奏
·单个实现相较于多个实现
·高协作相较于低协作
·云能力相较于客户端能力
·品牌透过效应相较于平台透过效应
·连接体验相较于离线体验
具体而言,各实施例可改变被递送到客户端(例如,系统104)的经较少处理的数据的量。具有相对较低存储和/或存储器能力的客户端相较于具有相对较高存储和/或存储器能力的客户端而言将具有更少的经较少处理的数据以及更多的像素或经处理的数据被服务(例如,系统102)发送到该客户端。当更少的经较少处理的数据被发送到客户端时,更多的经较少处理的数据被所谓的“云”或其他服务或服务器(例如,系统102)处理,由此平衡云(或服务器)大小数据相较于客户端大小数据因素。
各实施例可基于关于客户端是期望与用户相对低量的交互性还是与用户相对高量的交互性的因素来改变什么数据在客户端处被处理。例如,如果客户端设备相较于其他设备而言具有低的交互性能力,则更多经较少处理的数据可在后端(例如,系统102)处被处理,因为较少需要在客户端设备处具有高度交互的用户体验。低的交互性能力的特征在于:较小的屏幕尺寸;较弱的或不存在触摸屏;较低的屏幕分辨率;很少或没有按钮或其他外围设备等。相反,具有较高交互性能力的设备可在设备处处理更多的经较少处理的数据,同时更少的数据在后端处被处理。较高交互性设备的特征可在于:较大的屏幕;较高的屏幕分辨率;更交互的触摸屏,诸如具有更多触摸点、更多精度、更为响应等的屏幕;更多输入选项,诸如更多按钮、相机、GPS设备、近场传感器、罗盘、陀螺仪或其他移动传感器、连接的外围设备(诸如鼠标、键盘、笔式平板、生物测定传感器等);语音识别硬件和/或软件;高度交互的本机设备平台,诸如来自华盛顿州雷蒙德市微软公司的Windows Phone OS(操作系统)、来自加利福尼亚州库珀蒂诺市的Apple(苹果)公司的iOS或来自加利福尼亚州山景城的谷歌公司的Android(安卓)等。可被标识为具有较高交互性能力的设备相较于具有较低交互性能力的设备针对应用会被赋予的任务而言可被赋予针对该相同的应用执行更多对经较少处理的数据的操作或接收较少处理的数据的任务。
各实施例可基于设备能力来平衡节奏。节奏指更新应用的能力。如果节奏仅在服务水平处被执行(例如,在“云”中),则应用可在无需更新任何客户端设备软件的情况下被更新。相反,节奏可通过仅在客户端设备水平处更新软件来实现。两种方式的混合也可被实现。在一些实施例中,这可基于客户端设备的设备能力。例如,如果客户端设备具有较高的处理和/或存储能力,则应用可在设备水平处(例如,系统104水平)被更新。替换地,对于低能力的设备(例如,系统102),应用可在服务水平处(例如,在系统104水平处)被更新。各种替换方式可被实现。例如,在一些实施例中,客户端可运行瘦客户端,其中一些更新可在客户端处被执行,并且应用的各部分也可在服务水平处被执行,其中更新在服务水平处被执行。客户端的“瘦度”可基于处理器和/或存储能力。替换地或附加地,客户端的“瘦度”可基于在设备处什么本机框架(例如,C#、JavaScript、CSS、HTML5、iOS等)可用。更有能力的和/或特征丰富的本机框架允许客户端“更瘦”,从而表明该瘦客户端具有更少的数据处理功能。由此,在客户端处更新的量将基于客户端有多“厚”或多“瘦”。
类似地,各实施例可基于单实现场景相较于多实现场景来平衡数据处理。例如,如果单实现要被实现,则对经较少处理的数据的大部分处理可在服务水平(例如,系统102水平)处被执行,使得在大多数情况下,像素和位图被发送到客户端(例如,系统104)。另一方面,如果存在多个实现(诸如使用Windows Phone OS、IPhone和Android的本机能力的实现),则瘦客户端(也许使用C++)可被安装在会用作与服务的接口的设备处。更多特征丰富的客户端可被实现在客户端设备处(也许分别使用C++、Objective C和JavaScript)。
各实施例可基于针对应用发生的协作的量来平衡数据处理。例如,在其中许多用户同时对一文档或数据集进行操作的高协作场景中,更高的处理可在服务水平(例如,系统102水平)处被执行,其可用作多个不同客户端(例如,诸如系统104之类的系统)的主。在其中较少或潜在甚至仅单个用户对一文档或数据集进行操作的低协作场景中,更多的处理可由客户端设备(例如,系统104)自身来执行。
如提到的,各实施例可基于云能力相较于客户端能力的差异来平衡数据处理。如本文中讨论的,客户端能力可涵盖多个不同因素中的一个或多个。更高能力的客户端相较于更低能力的客户端在实现相同应用时会被赋予的任务而言可被赋予执行更多经较少处理的数据处理的任务。更低能力的客户端可被发送更少经较少处理的数据以及更多像素数据或经预处理的数据。相反,所谓的云实现可实质上具有以弹性方式(按需)可用的无限制的计算和存储。类似机器学习的先进技术越来越需要云能力来用用户定制、社交因素、推荐引擎等来丰富特征。由此,只要客户端设备不能处理数据处理,云实现就可处理任何需要被处理的处理。
各实施例可基于希望强调品牌“透过效应”还是平台“透过效应”来平衡处理。透过效应是本文中被用于指终端用户所具有的交互性体验的术语。特定平台具有特定经标准化的界面元素。例如,Windows Phone OS电话、iPhones以及Android电话的用户中的每一者都期望特定的用户界面元素被呈现在特定的平台中并在与特定平台进行交互时期望特定的“外观和感觉”。例如,IPhone在界面的左上角实现后退导航按钮,而Windows Phone OS和Android实现可被用于导航的一般后退按钮。作为另一示例,iOS使用真/假滑块按钮,而Windows Phone OS和Android使用复选框来实现相同的功能性。如果希望更多品牌透过效应,则更特定的指令从服务发送到客户端设备以提供更统一的用户界面体验。如果希望更多平台透过效应,则指示界面元素的笼统信息可从服务被发送到客户端设备并且客户端设备可使用本机平台功能性。例如,服务可发送应当在客户端设备处实现复选框的指示。客户端设备可接着实现其针对复选框的本机界面元素。例如,如果客户端设备是Windows Phone OS设备,则复选框会被显示。相反,如果客户端设备是IPhone,则真/假滑块会被实现。
也就是说,各实施例可基于各个因素来改变品牌透过效应的量相较于平台透过效应的量。例如,用户偏好设置或管理员设置可允许定义相较于被显示在客户端设备处的经品牌化的或一致的用户界面元素的量应当被实现的平台用户界面元素的量。一些设置可允许各个界面更加以品牌为中心,而其他界面元素更加以平台为中心。以品牌为中心的界面可导致在后端系统(例如,系统102)处的更多的处理以及在客户端系统(例如,系统104)处的更少的处理,因为品牌用户界面元素将由后端系统确定。相反,更多以平台为中心的界面可导致更多的处理要在客户端系统处被执行,而更少的处理在后端系统处被执行。
简而言之,完整的品牌透过效应要求在所有平台上相同的外观和感觉。因此,在服务上一次实现它是高效的,而非在以相同结果为目标的各个客户端处的多个实现。因此,处理的量在客户端处受到影响。作为用于理解的示例,品牌透过效应可由应用来示出,该应用导致在该应用被实现在其上的任意平台(例如,iOS、Android等)上的Windows Modern(现代)UI(用户界面)样式界面。
由不同连接实体执行的处理的量可基于不同实体相对于彼此的硬件实现细节来改变。例如,在连接体验场景中,各实体经由外部网络连接或其他外部硬件连接来连接。在一离线体验中,各实体可使用通用硬件来实现。例如,两个不同的实体(例如,系统102和104)可被实现在相同的机器上并使用软件互连来用于通信。也可实现混合示例。例如,两个实体可大部分被实现在相同硬件系统上,但是可各自使用不同的外部存储或其他外部数据存储。两个实体越离线,它们就可共享越多的数据处理工作负载,或替换地,存在越少的关于哪个实体执行数据处理工作负载的考量。相反,随着实体变得相对于彼此越“连接”(其中它们通过外部网络或外部硬件连接被连接),就存在越多关于哪个实体执行哪个数据处理工作的考量。附加地,数据处理分配可随着系统变得相互越来越连接或越来越不连接而改变。例如,如果两个系统都移动到相同的存储,这可导致在两个不同的系统之间如何分配数据处理方面的改变。
再一次返回到一般讨论,一般而言,高度交互性的工作负载(例如,呈现、动画化、样式化以及输入处理)更加适合于在客户端设备上;而数据密集型的工作负载(例如,数据成型、文档分析、根据数据构造几何形状以及在画布上对几何形状的布局)更加适合于在后端上。然而,这些是对许多特征起作用的一般指南,但一般从架构的角度来看不是要求。实际上,本文中的各实施例具有动态地改变在客户端处执行哪些类型的工作负载以及给定类型的工作负载中的多少工作负载和在后端处执行哪些类型的工作负载以及给定类型的工作负载中的多少工作负载的能力。由此,例如,地图可视化可锻炼架构的灵活度,并发送要被地理编码并被呈现在客户端上的经度和纬度点。在另一示例中,具有动画化帧的可视化可本地地进行所有处理并简单地将像素帧从服务流传输到客户端。
图3中示出了典型高级流水线300。流水线300示出一范围,沿着该范围,可商定处理责任的协商。具体而言,图3示出表示数据的生成的数据源框302。图3示出数据访问框304,其中已被生成的数据可被访问。图3示出数据分析框306,其中可对数据执行计算或可以其他方式分析数据。图3示出表示用于呈现数据的机制的数据呈现器框308。图3示出呈现模型框310,其示出可开发关于数据将如何被呈现的模型。最后,图3示出用户界面框312,其表示可被用户用于查看数据的表示或分析数据的结果和/或与其进行交互的元素。
在一些实施例中,处理可沿着流水线300中示出的范围在特定点处被划分。例如,一些实施例可确定由框302-306所表示的处理应当在第一数据处理系统102上发生,并且由框308-312所表示的处理应当在第二数据处理系统104上发生。作为另一极端示例,对于低能力的设备,各实施例可确定由框302-310所表示的处理应当在第一数据处理系统102处被执行,而第二数据处理系统仅显示如框312所示出的用户界面。
在替换实施例中,两个不同的数据处理系统102和104可共享由图3的各框所表示的不同处理的不同部分。例如,第一数据处理系统102可产生如数据源框302所表示的一些数据,而该数据的其他部分可由第二数据处理系统104来产生。
下面的讨论现在涉及可被执行的多个方法和方法动作。尽管这些方法动作可以以特定次序被讨论或在流程图中被例示为以特定次序发生,但是除非特别指明否则不需要任何特定排序,或者因某一动作取决于在该动作被执行之前完成的另一个动作而要求特定排序。
现在参考图4,例示出方法400。方法400可在包括第一数据处理系统和第二数据处理系统的计算环境中被实现。方法400包括用于在第二数据处理系统上呈现通过跨第一数据处理系统和第二数据处理系统执行数据处理而从数据集中得到的结果的动作。由第二数据处理系统所执行的处理的量可取决于第二数据处理系统的能力被动态地调整。
方法400包括第一数据处理系统接收指示结果将被如何呈现在第二数据处理系统处的信息(动作402)。例如,客户端设备可具有对被呈现在客户端设备处的数据的分辨率进行限制的各种约束,诸如分辨率、网络限制等。客户端设备可向服务器指示这个服务水平。替换地,服务器可以能够通过网络测试(诸如客户端查验或其他分析)来确定分辨率水平。由第一数据处理系统和第二数据处理系统两者所执行的处理将被执行以实现这个服务水平。
方法400还包括第一数据处理系统接收指示第二数据处理系统的能力的信息(动作404)。各个示例将在以下被示出,但是一般而言,这样的能力可以是硬件能力,诸如可用的处理能力、存储器或存储;软件能力,诸如丰富开发平台的可用性、开发者工具和运行时环境;网络能力;第一数据处理系统连接到第二数据处理系统的程度;网络通信能力等。
方法400还包括第一数据处理系统确定提供结果所需要的数据处理(动作406)。
方法400还包括第一数据处理系统基于第二数据处理系统的能力在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理(动作408)。需要的数据处理包括要由第一数据系统执行的第一部分和要由第二数据处理系统执行的第二部分。
方法400可被实现,其中第一数据处理系统是服务器,并且第二数据处理系统是客户端。例如,如图1中示出的,第一数据处理系统102可以是服务器系统,而第二数据处理系统104可以是客户端。
方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收指示第二数据处理系统的数据处理能力的信息。
方法400可被实现,其中在会话的发起处(在客户端和服务器建立第一连接时),尤其是软件能力在那个时间被发现。在许多实施例中,这些不趋向在会话期间进一步改变。
方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收指示第二数据处理系统的可用处理器能力的信息。例如,第二系统104可发送关于第二系统具有104多少可用的处理器容量的信息(如在106处示出的)。这可以是动态的,且随着负载和需求在第二系统104处改变而随着时间改变。由此,第二系统104可随着时间在第二数据系统随着时间被赋予针对应用的不同处理的任务时发送信息。替换地或附加地,某些处理器能力可被保留。由此,可提供指示多少处理器能力被保留用于处理特定数据的信息。这可影响数据处理如何在两个不同的数据处理系统之间分配。作为处理能力方面的某个阈值改变、保留或出于其他理由的结果,第二数据系统104可周期性地发送信息。
方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收指示在第二数据处理系统处可用的存储器的信息。再次,如其他示例中示出的,这可随着时间改变,其可被传递到第一数据处理系统,使得第一数据系统可将不同的数据处理分配到第二数据处理系统。
方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收指示在第二数据处理系统处可用的硬件设备的信息。例如,这样的信息可包括关于录音机、GPS设备、蓝牙、Wi-Fi、蜂窝数据、相机、近场传感器、陀螺仪、倾斜传感器或其他适当硬件的信息。硬件方面的改变或对于正被硬件感测的事物的改变可改变被分配到第二系统的处理的量。例如,如果蜂窝硬件指示较弱的信号或较低能力的通信系统,则更多的处理可被分配到第二系统,因为向第二系统发送像素可能更加数据通信密集。
方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收指示硬件设备被改变的信息。例如,各实施例可指示鼠标或其他设备已经在USB端口处被添加。
方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收指示设备屏幕分辨率的信息。这个分辨率可以是设备的整体分辨率,或可以是由用户选择的针对设备处的窗口的尺寸。由此例如,如果在设备处显示应用数据的窗口被用户改变,则这样的改变可导致要在第二数据处理系统处被执行的数据处理的量方面的改变。
方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收指示在第二数据处理系统处可用的图形处理能力的信息。例如,这可关于第二数据处理系统在图形处理单元(GPU)上处理图形命令的能力。
方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收指示在第二数据处理系统处可用的用户界面元素的信息。例如,各实施例可标识触摸屏、按钮、键盘等。
方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收指示由第二数据处理系统支持的一个或多个编程平台的信息。例如,这样的信息可包括指示系统使用C#、JavaScript、Objective C或某个其他编程平台的信息。
方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收指示第二数据处理系统处的一个或多个操作系统的信息。
方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收指示由第二数据处理系统支持的运行时环境的信息。例如,这样的信息可包括指示系统使用Managed Runtime(受管运行时)、Java Virtual Machines(Java虚拟机)、JavaScript引擎或某个其他运行时环境的信息。
方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收指示在第二数据处理系统处使用的浏览器的信息。
方法400还可包括确定要在第二数据处理系统处被实现的交互性的量。在这样的实施例中,在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理可基于要在第二数据处理系统处被实现的交互性的量。
方法400还可包括确定要在第二数据处理系统处被实现的应用维护的量。在这样的实施例中,在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理可基于要在第二数据处理处被实现的应用维护或升级的量。关于此的示例在以上对应用节奏的讨论中被示出。
方法400还可包括确定在应用的用户之间的应用协作的量。在一些这样的应用中,在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理基于跨活跃用户的协作的量。
方法400还可包括确定要在第二数据处理系统处被实现的第二数据处理系统平台交互性的量。在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理可基于要在第二数据处理系统处被实现的第二数据处理系统平台交互性的量。关于此的示例在以上对品牌相较于平台透过效应的讨论中被示出。
方法400可被实现,其中针对第二数据处理系统的能力方面的改变来执行在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理。例如,可用处理能力改变、存储器可用性改变、在系统处可用的设备改变(诸如由新设备被添加或被移除引起)等可触发各实施例重新评估多少数据处理正被第一和第二数据处理系统中的每一者执行,并相应地调整这些量。
方法400可被实现,其中针对从第二数据处理系统到第一数据处理系统的每个请求来执行在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理。由此,每当第二数据处理系统向第一数据处理系统请求数据或服务时,重新评估就可发生以确定两个系统之间数据处理的分配是否应当被改变,并且如果是,则适当的重新分配被执行。
方法400可被实现,其中使用对第二数据处理系统的能力的连续校准以及影响第二数据处理系统的因素来执行在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理。在这个示例中,各实施例可具有连续地监视针对第二数据处理系统的能力方面的改变的监视代理。当这样的改变发生时,数据处理可在不同的系统之间被重新分配。
方法400还可包括接收指示影响第二数据处理系统的因素的信息,并且第一数据处理系统基于影响第二数据处理系统的因素来在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理。例如,方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收定义第二数据处理系统的错误域的信息。错误域标识会使系统停用的组件以及其故障。由此,例如,如果第二数据处理系统位于易受攻击的错误域中,则更少的数据处理可被分配到第二数据处理系统。由此例如,如果第二系统缺乏电池备用或位于具有很少冗余性的服务器机架中,则将更多的数据处理分配到第一数据处理系统以防止数据丢失可能是谨慎的。
在另一示例中,方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收指示第二数据处理系统与第一数据处理系统之间的网络质量的信息。这个质量可根据例如网络延迟或带宽来定义。由此例如,当第一系统102和第二系统104之间的网络质量是低的时,在第二系统104处执行更多数据处理可能更好,因为像素数据可消耗高的网络带宽。随着网络质量改进,更多的处理可在第一系统102处被执行。
在还一示例中,方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收指示第二数据处理系统与其他实体之间的集成程度的信息。例如,如以上示出的,可取决于实现是更加离线还是更加连接来作出改变。具体而言,当两个系统实质上被实现在相同硬件上时,该实现被称为离线。当两个系统通过外部网络或连接来连接时,该实现被称为更加连接。
在还一示例中,方法400可被实现,其中接收指示第二数据处理系统的能力的信息包括接收指示第二数据处理系统正由电池电力来供电的信息。由此例如,当第二数据处理系统正用电池电力运行时,更多的数据处理可被分配到第一数据处理系统。在一些这样的实施例中,接收指示第二数据处理系统的能力的信息包括接收指示在第二数据处理系统处剩余的电池电力的量的信息。由此,甚至可基于在第二数据处理系统处剩余的电池电力的量来作出对数据处理分配的进一步的细化。相反,当处理系统被某一基础结构方法(诸如来自公共事业公司或其他发电机源)供电时,第二数据处理系统相较于在被电池供电时可被分配更多数据处理。
现在参考图5,例示出方法500。方法500可被实现在包括第一数据处理系统和第二数据处理系统的计算环境中。方法500包括用于在第二数据处理系统上呈现通过跨第一数据处理系统和第二数据处理系统执行数据处理从数据集中得到的结果的动作,其中由第二数据处理系统执行的处理的量可取决于相较于要被呈现给用户的第二数据处理系统的界面特征的第一数据处理系统的界面特征的量来被动态地调整。具体而言,这个实施例可实现以上示出的品牌透过效应相较于平台透过效应。
方法500包括第一数据处理系统接收指示相较于要被呈现给用户的第二数据处理系统的界面特征的第一数据处理系统的界面特征的量的信息(动作502)。例如,可作出关于相较于终端用户所使用的平台上的平台专用元素界面元素,多少量的经标准化的用户界面元素将被显示给终端用户的判定。在一具体示例中,第一数据处理系统可以能够将用户界面元素标准化为Windows Phone OS界面元素。然而,第二数据处理系统可以是iOS或Android设备。由此,如果第一数据处理系统界面主导,则更多的界面元素将是Windows Phone OS样式元素,然而如果是第二数据处理系统界面主导,则更多的iOS或Android界面元素将被显示。
方法500还可包括第一数据处理系统基于相较于要被呈现给用户的第二数据处理系统的界面特征的第一数据处理系统的界面特征的量来在第一数据处理系统和第二数据处理系统之间动态地分配数据处理(动作504)。数据处理包括要由第一数据系统执行的第一部分和要由第二数据处理系统执行的第二部分。
方法500可被实现,其中第一数据处理系统是服务器,并且第二数据处理系统是客户端。
方法500可被实现,其中指示相较于要被呈现给用户的第二数据处理系统的界面特征的第一数据处理系统的界面特征的量的信息是基于第二数据处理系统处的用户设置。例如,用户可具体地指示他们偏好的界面元素的类型。这可通过具体地标识界面元素以及哪个样式应当主导来实现。替换地,用户可调整滑块或其他可变指示符,从而指示用户偏好一种类型的界面相较于另一种类型的界面的程度。系统可接着根据用户的偏好来平衡界面元素。
方法500可被实现,其中指示相较于要被呈现给用户的第二数据处理系统的界面特征的第一数据处理系统的界面特征的量的信息是基于第二数据处理系统处的特征。例如,如果第二数据处理系统运行特定操作系统、本机设备平台或本机框架,则可作出关于将主导用户界面体验的界面元素的判定。这样的判定可基于操作系统、本机设备平台或本机框架有效地实现特定界面元素的能力或感受到的特定用户对特定操作系统、本机设备平台或本机框架的忠诚度或出于其他原因来作出。
方法500可被实现,其中基于相较于要被呈现给用户的第二数据处理系统的界面特征的第一数据处理系统的界面特征的量在第一数据处理系统和第二数据处理系统之间动态地分配数据处理包括在更多的数据处理要被分配到第二数据处理系统时发送笼统界面元素指令。例如,一指令可被简单地传递到第二数据处理系统,指示“真/假”选择界面元素要被显示。第二数据处理系统可接着使用它所具有的任何本机能力来实现这个界面元素,不管是经由复选框、滑块还是某个其他元素。
相反,方法500可被实现,其中基于相较于要被呈现给用户的第二数据处理系统的界面特征的第一数据处理系统的界面特征的量在第一数据处理系统和第二数据处理系统之间动态地分配数据处理包括在更多的数据处理要被分配到第二数据处理系统时发送特定界面元素指令。例如,替代于简单地指示真/假元素应当被显示,第一数据处理系统可指示滑块应当被实现并且该滑块的右侧上的标记应当被标记“真”,而该滑块的左侧上的标记应当被标记“假”。由此,第一系统相较于第二系统所具有的而言将具有对界面的感受的更多控制。
方法500还包括确定要在第二数据处理系统处被实现的交互性的量。在一些这样的实施例中,在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理也基于要在第二数据处理系统处被实现的交互性的量。
方法500还可包括确定要在第二数据处理系统处被实现的应用维护的量。在一些这样的实施例中,在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理基于要在第二数据处理系统处被实现的应用维护或升级的量。关于此的示例在以上对应用节奏的讨论中被示出。
方法500还可包括确定在应用的用户之间的应用协作的量。在一些这样的实施例中,在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理基于跨活跃用户的协作的量。
方法500可被实现,其中每当一会话在第一数据处理系统和第二数据处理系统之间被初始化时,在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理就被执行。
方法500可被实现,其中针对指示相较于要被呈现给用户的第二数据处理系统的界面特征的第一数据处理系统的界面特征的量的信息方面的改变来执行在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理。
方法500可被实现,其中针对从第二数据处理系统到第一数据处理系统的每个请求来执行在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理。
方法500可被实现,其中使用指示相较于要被呈现给用户的第二数据处理系统的界面特征的第一数据处理系统的界面特征的量的信息来使用连续校准来执行在第一数据处理系统和第二数据处理系统之间动态地分配需要的数据处理。
而且,各方法可由计算机系统实现,计算机系统包括一个或多个处理器以及诸如计算机存储器这样的计算机可读介质。特别是,计算机存储器可以存储计算机可执行指令,该计算机可执行指令在由一个或多个处理器执行时使各种功能得以被执行,诸如各实施例中记载的动作。
本发明的各实施例可以包括或使用包括计算机硬件的专用或通用计算机,如以下更详细讨论的。本发明范围内的各实施例也包括用于实现或存储计算机可执行指令和/或数据结构的实体及其它计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:物理计算机可读存储介质和传输计算机可读介质。
物理计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储(如CD、DVD等)、磁盘存储或其他磁存储设备、或可用于存储计算机可执行指令或数据结构形式的所需程序代码装置且可由通用或专用计算机访问的任何其他介质。
“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括可用于携带计算机可执行指令或数据结构形式的期望程序代码装置并可被通用或专用计算机访问的网络和/或数据链路。以上的组合也被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码装置可从传输计算机可读介质自动转移到物理计算机可读存储介质(或者相反)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可被缓存在网络接口模块(例如,“NIC”)内的RAM中,并且然后最终被传输至计算机系统RAM和/或计算机系统处的较不易失性的计算机可读物理存储介质。因此,计算机可读物理存储介质可以被包括在同样(或甚至主要)利用传输介质的计算机系统组件中。
计算机可执行指令包括例如使通用计算机、专用计算机或专用处理设备执行某一功能或一组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、云计算系统、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
替换地或另选地,此处描述的功能可以至少部分由一个或多个硬件逻辑组件来执行。例如、但非限制,可使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、程序专用的集成电路(ASIC)、程序专用的标准产品(ASSP)、片上系统系统(SOC)、复杂可编程逻辑器件(CPLD)、等等。
本发明可以以其他具体形式来体现,而不背离其精神或特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

Claims (10)

1.一种在包括第一数据处理系统和第二数据处理系统的计算环境中用于在所述第二数据处理系统上呈现通过跨所述第一数据处理系统和所述第二数据处理系统执行数据处理而从数据集中得到的结果的方法,其中由所述第二数据处理系统执行的处理的量能取决于相较于要被呈现给用户的所述第二数据处理系统的界面特征的所述第一数据处理系统的界面特征的量被动态地调整,所述方法包括:
所述第一数据处理系统接收指示相较于要被呈现给用户的所述第二数据处理系统的界面特征的所述第一数据处理系统的界面特征的量的信息;以及
所述第一数据处理系统基于相较于要被呈现给用户的所述第二数据处理系统的界面特征的所述第一数据处理系统的界面特征的量在所述第一数据处理系统和所述第二数据处理系统之间动态地分配数据处理,其中所述数据处理包括要由所述第一数据处理系统执行的第一部分和要由所述第二数据处理系统执行的第二部分。
2.如权利要求1所述的方法,其特征在于,所述第一数据处理系统是服务器,并且所述第二数据处理系统是客户端。
3.如权利要求1所述的方法,其特征在于,指示相较于要被呈现给用户的所述第二数据处理系统的界面特征的所述第一数据处理系统的界面特征的量的信息是基于所述第二数据处理系统处的用户设置。
4.如权利要求1所述的方法,其特征在于,指示相较于要被呈现给用户的所述第二数据处理系统的界面特征的所述第一数据处理系统的界面特征的量的信息是基于所述第二数据处理系统的特征。
5.如权利要求1所述的方法,其特征在于,基于相较于要被呈现给用户的所述第二数据处理系统的界面特征的所述第一数据处理系统的界面特征的量在所述第一数据处理系统和所述第二数据处理系统之间动态地分配数据处理包括在更多的数据处理要被分配到所述第二数据处理系统时发送笼统界面元素指令。
6.如权利要求1所述的方法,其特征在于,基于相较于要被呈现给用户的所述第二数据处理系统的界面特征的所述第一数据处理系统的界面特征的量在所述第一数据处理系统和所述第二数据处理系统之间动态地分配数据处理包括在更多的数据处理要被分配到所述第二数据处理系统时发送特定界面元素指令。
7.如权利要求1所述的方法,其特征在于,还包括确定要在所述第二数据处理系统处实现的交互性的量,并且其中在所述第一数据处理系统和所述第二数据处理系统之间动态地分配需要的数据处理基于要在所述第二数据处理系统处实现的交互性的量。
8.如权利要求1所述的方法,其特征在于,还包括确定要在所述第二数据处理系统处实现的应用维护的量,并且其中在所述第一数据处理系统和所述第二数据处理系统之间动态地分配需要的数据处理基于要在所述第二数据处理系统处实现的应用维护或升级的量。
9.如权利要求1所述的方法,其特征在于,还包括确定应用的用户之间的应用协作的量,并且其中在所述第一数据处理系统和所述第二数据处理系统之间动态地分配需要的数据处理基于跨用户的协作的量。
10.如权利要求1所述的方法,其特征在于,每当一会话在所述第一数据处理系统和所述第二数据处理系统之间被初始化时,在所述第一数据处理系统和所述第二数据处理系统之间动态地分配需要的数据处理就被执行。
CN201480072436.XA 2014-01-06 2014-12-23 动态地调整品牌和平台界面元素 Active CN105900058B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/148,370 US9608876B2 (en) 2014-01-06 2014-01-06 Dynamically adjusting brand and platform interface elements
US14/148,370 2014-01-06
PCT/US2014/072011 WO2015103015A1 (en) 2014-01-06 2014-12-23 Dynamically adjusting brand and platform interface elements

Publications (2)

Publication Number Publication Date
CN105900058A true CN105900058A (zh) 2016-08-24
CN105900058B CN105900058B (zh) 2019-07-02

Family

ID=52355253

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480072436.XA Active CN105900058B (zh) 2014-01-06 2014-12-23 动态地调整品牌和平台界面元素

Country Status (4)

Country Link
US (1) US9608876B2 (zh)
EP (1) EP3092558B1 (zh)
CN (1) CN105900058B (zh)
WO (1) WO2015103015A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9501808B2 (en) 2014-01-06 2016-11-22 Microsoft Technology Licensing, Llc Division of processing between systems based on business constraints
US9483811B2 (en) 2014-01-06 2016-11-01 Microsoft Technology Licensing, Llc Division of processing between systems based on external factors
DE102015206281A1 (de) * 2014-04-08 2015-10-08 Ignis Innovation Inc. Anzeigesystem mit gemeinsam genutzten Niveauressourcen für tragbare Vorrichtungen
US10698737B2 (en) * 2018-04-26 2020-06-30 Hewlett Packard Enterprise Development Lp Interoperable neural network operation scheduler
US11818021B2 (en) * 2022-01-13 2023-11-14 Dell Products L.P. Resilient consensus-based control plane

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101114367A (zh) * 2006-07-25 2008-01-30 阿里巴巴公司 一种涉及多系统的数据处理方法及系统
US20090288013A1 (en) * 2008-05-16 2009-11-19 Honeywell International Inc. Scalable User Interface System
CN101908076A (zh) * 2010-08-24 2010-12-08 北京世纪高通科技有限公司 页面布局自适应方法及装置
CN102656551A (zh) * 2009-12-14 2012-09-05 高通股份有限公司 用于视频显示系统的流送技术
US20120262477A1 (en) * 2011-04-18 2012-10-18 Brian K. Buchheit Rendering adjustments to autocompensate for users with ocular abnormalities

Family Cites Families (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6718706B2 (en) 2000-10-25 2004-04-13 Edward R. Katz Entryway protector
US6684257B1 (en) 1999-10-15 2004-01-27 International Business Machines Corporation Systems, methods and computer program products for validating web content tailored for display within pervasive computing devices
CN100437528C (zh) 1999-12-03 2008-11-26 松下电器产业株式会社 数据自适应装置、数据自适应方法
US7072984B1 (en) 2000-04-26 2006-07-04 Novarra, Inc. System and method for accessing customized information over the internet using a browser for a plurality of electronic devices
US7274368B1 (en) 2000-07-31 2007-09-25 Silicon Graphics, Inc. System method and computer program product for remote graphics processing
WO2002091202A1 (en) 2001-05-04 2002-11-14 Globespan Virata Incorporated System and method for distributed processing of packet data containing audio information
US20020174316A1 (en) 2001-05-18 2002-11-21 Telgen Corporation Dynamic resource management and allocation in a distributed processing device
JP3631702B2 (ja) 2001-07-19 2005-03-23 エヌイーシーシステムテクノロジー株式会社 描画表示システム
DE10260796B3 (de) 2002-12-23 2004-09-02 Daimlerchrysler Ag Steuerschaltung für Signalleuchten eines Fahrzeuges
JP4077352B2 (ja) 2003-03-31 2008-04-16 株式会社日立製作所 負荷分散方法及びその実施システム並びにその処理プログラム
EP1469391A1 (en) 2003-04-16 2004-10-20 Agilent Technologies, Inc. Remote controlled data processing system via a network
US7747683B2 (en) 2005-12-29 2010-06-29 Pike Ltd. Method and system for operating applications for remote terminal devices
US7778822B2 (en) 2006-05-19 2010-08-17 Sony Ericsson Mobile Communications Ab Allocating audio processing among a plurality of processing units with a global synchronization pulse
US7809663B1 (en) 2006-05-22 2010-10-05 Convergys Cmg Utah, Inc. System and method for supporting the utilization of machine language
US8068450B2 (en) 2007-01-23 2011-11-29 Embarq Holdings Company, Llc System and method for providing aggregated wireless communications services
US20080301545A1 (en) 2007-06-01 2008-12-04 Jia Zhang Method and system for the intelligent adaption of web content for mobile and handheld access
US8595186B1 (en) 2007-06-06 2013-11-26 Plusmo LLC System and method for building and delivering mobile widgets
KR100964013B1 (ko) 2007-11-09 2010-06-15 광주과학기술원 사용자 선호도 기반의 데이터 변환 서비스 시스템 및 그방법
US9361396B2 (en) 2008-01-31 2016-06-07 Microsoft Technology Licensing, Llc Adaptation of display pages for client environments
DE112009001700B4 (de) 2008-07-22 2019-02-07 Toyota Jidosha Kabushiki Kaisha Multikernsystem, fahrzeugseitige elektronische Steuerungseinheit und Aufgabenumschaltverfahren
US9037692B2 (en) 2008-11-26 2015-05-19 Red Hat, Inc. Multiple cloud marketplace aggregation
US9880877B2 (en) 2009-01-22 2018-01-30 International Business Machines Corporation Methods for rule-based dynamic resource adjustment for upstream and downstream processing units in response to an intermediate processing unit event
JP4970479B2 (ja) 2009-03-03 2012-07-04 ソニー株式会社 情報処理システム
US8838797B2 (en) 2009-07-10 2014-09-16 Empire Technology Development Llc Dynamic computation allocation
US20110054880A1 (en) 2009-09-02 2011-03-03 Apple Inc. External Content Transformation
US8321565B2 (en) 2009-11-02 2012-11-27 Verizon Patent And Licensing Inc. Network usage throttling systems and methods
KR101365938B1 (ko) 2010-05-17 2014-02-24 한국전자통신연구원 자원의 우선순위 할당 방법, 이를 이용하는 자원 운용 방법 및 장치
US20120233555A1 (en) * 2010-11-08 2012-09-13 Eyelead Sa Real-time multi-user collaborative editing in 3d authoring system
US8495218B1 (en) 2011-01-21 2013-07-23 Google Inc. Managing system resources
US8589119B2 (en) 2011-01-31 2013-11-19 Raytheon Company System and method for distributed processing
US9069459B2 (en) 2011-05-03 2015-06-30 Microsoft Technology Licensing, Llc Multi-threaded conditional processing of user interactions for gesture processing using rendering thread or gesture processing thread based on threshold latency
WO2012167094A1 (en) 2011-06-01 2012-12-06 Security First Corp. Systems and methods for secure distributed storage
US9087412B2 (en) * 2011-09-26 2015-07-21 Nokia Technologies Oy Method and apparatus for grouping and de-overlapping items in a user interface
US9935813B2 (en) * 2011-12-20 2018-04-03 Blackberry Limited Virtual window screen rendering using application connectors
US9110728B2 (en) 2012-01-31 2015-08-18 Vmware, Inc. Elastic allocation of computing resources to software applications
US8396983B1 (en) 2012-03-13 2013-03-12 Google Inc. Predictive adaptive media streaming
US9071613B2 (en) 2012-04-06 2015-06-30 International Business Machines Corporation Dynamic allocation of workload deployment units across a plurality of clouds
CN103491111B (zh) * 2012-06-08 2016-12-14 阿里巴巴集团控股有限公司 无线应用发布、实现方法与装置
WO2014011622A2 (en) 2012-07-09 2014-01-16 Vid Scale, Inc. Power aware video decoding and streaming
US8917281B2 (en) * 2012-11-05 2014-12-23 Rightware Oy Image rendering method and system
TWI496068B (zh) * 2013-03-18 2015-08-11 Univ Nat Chiao Tung 訊息通知圖形介面之顯示方法、裝置以及電腦可讀取儲存裝置
US9274585B2 (en) 2013-06-13 2016-03-01 Advanced Micro Devices, Inc. Combined dynamic and static power and performance optimization on data centers
US9501808B2 (en) 2014-01-06 2016-11-22 Microsoft Technology Licensing, Llc Division of processing between systems based on business constraints
US9483811B2 (en) 2014-01-06 2016-11-01 Microsoft Technology Licensing, Llc Division of processing between systems based on external factors
US20150193275A1 (en) 2014-01-06 2015-07-09 Microsoft Corporation Building interactive, data driven apps

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101114367A (zh) * 2006-07-25 2008-01-30 阿里巴巴公司 一种涉及多系统的数据处理方法及系统
US20090288013A1 (en) * 2008-05-16 2009-11-19 Honeywell International Inc. Scalable User Interface System
CN102656551A (zh) * 2009-12-14 2012-09-05 高通股份有限公司 用于视频显示系统的流送技术
CN101908076A (zh) * 2010-08-24 2010-12-08 北京世纪高通科技有限公司 页面布局自适应方法及装置
US20120262477A1 (en) * 2011-04-18 2012-10-18 Brian K. Buchheit Rendering adjustments to autocompensate for users with ocular abnormalities

Also Published As

Publication number Publication date
WO2015103015A1 (en) 2015-07-09
CN105900058B (zh) 2019-07-02
US20150195153A1 (en) 2015-07-09
US9608876B2 (en) 2017-03-28
EP3092558B1 (en) 2021-09-15
EP3092558A1 (en) 2016-11-16

Similar Documents

Publication Publication Date Title
CN112001585B (zh) 多智能体决策方法、装置、电子设备及存储介质
CN105900058A (zh) 动态地调整品牌和平台界面元素
CN110390387A (zh) 对深度学习应用所用资源进行评估
CN112416599B (zh) 一种资源调度方法、装置、设备及计算机可读存储介质
CN105988870A (zh) 低触摸操作次数移动设备
US11263815B2 (en) Adaptable VR and AR content for learning based on user's interests
CN112000700A (zh) 地图信息展示方法、装置、电子设备及存储介质
US10546509B2 (en) Evaluating user contribution in collaborative environments
CN111695695A (zh) 用户决策行为量化分析方法及装置
US20200027364A1 (en) Utilizing machine learning models to automatically provide connected learning support and services
Sharakhov et al. Visualizing real-time radio spectrum access with CORNET3D
US9501808B2 (en) Division of processing between systems based on business constraints
CN102939586A (zh) 交互图表系统中的局部化布局和布线
US20150193275A1 (en) Building interactive, data driven apps
CN114785693B (zh) 基于分层强化学习的虚拟网络功能迁移方法及装置
US9483811B2 (en) Division of processing between systems based on external factors
CN106406742B (zh) 移动终端屏幕亮度调节方法、装置及移动终端
Baek et al. Effect-driven dynamic selection of physical media for visual iot services using reinforcement learning
CN110930824B (zh) 一种人工智能大数据九宫算术系统
JP7218633B2 (ja) 情報処理装置及びプログラム
CN113407829A (zh) 在线学习资源推荐方法、装置、设备及存储介质
Kompaniets et al. GOMS-TLM and Eye Tracking Methods Comparison in the User Interface Interaction Speed Assessing Task
Richardson et al. Retrofitting realities: affordances and limitations in porting an interactive geospatial visualization from augmented to virtual reality
KR101747407B1 (ko) 사용자 경험 측정에 기반한 적응형 사용자 인터페이스를 제공하는 시스템 및 그 방법
US11861490B1 (en) Decoupled machine learning training

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant