与位置无关地执行用户接口操作的制作方法

文档序号:6337896阅读:136来源:国知局
专利名称:与位置无关地执行用户接口操作的制作方法
技术领域
本公开涉及有关与位置无关地执行用户接口操作 (location-independentexecution of user interface operation)的系统、方法和软件。 例如,本公开提供了一种框架(framework),其有助于在客户端侧或服务器侧的操作处理之 间进行切换,这种切换往往是实时的。
背景技术
图形用户接口(⑶I)允许计算机用户通过显示接口控制计算机系统以及输入和 修改计算机系统上的数据。一些应用在客户端服务器体系结构中运行的客户端程序中实现 用户接口(UI),例如,网页浏览器。UI—般包括可由用户操作以与应用交互的控件。控件 可以包括按钮、菜单、下拉菜单、对话框、滚动条和使得用户能够查看应用数据、调用应用功 能以及以其他方式与应用交互的任何其他控件。每个控件都具有相关联的控件状态,并且 应用具有相关联的UI状态。控件状态和UI状态能够基于用户交互而改变。在GUI中导航 一般包括移动诸如鼠标的指示设备到活动元素(active element)以及通过点击该元素来 启动(activate)该元素。或者,来自键盘设备的各种键击(例如按下“tab”键)允许用户 遍历⑶I元素。用户接口(或网页)应用框架的开发往往涉及关于操作或用户交互(例如用户点 击链接或按钮以触发操作)应当在客户端侧(可能使用在浏览器内运行的Java kript框 架)处理还是在服务器侧(可能使用在网页应用服务器上运行的Java框架)处理的争论。 通过在客户端服务器体系结构中运行的客户端程序中绘制应用(例如,网页浏览器)的UI 状态,可以生成应用的可视表示(visual !^presentation)。

发明内容
本公开的一个方面涉及与位置无关地执行用户接口操作或交互。例如,一种用于 与位置无关地执行用户接口操作的计算机程序产品包括存储计算机可读指令的有形存储 介质。在一个实例中,所述指令可操作用于识别通过客户端侧用户接口的用户交互,所述客 户端侧用户接口与服务器侧计算可通信地耦合。然后,所述指令动态地确定在客户端侧还 是在服务器侧处理识别出的用户交互。在一些情况中,至少部分地根据多个标准来进行所 述动态确定,所述多个标准包括处理能力、往返数量以及操作环境。如果用户交互将在客户 端侧处理,则所存储的指令调用客户端侧动作处理程序。否则,如果用户交互将在服务器侧 处理,则指令请求服务器侧动作处理程序处理该交互。不同的实施例可以实现或利用以下特征中的一个或多个。例如,所存储的指令可 以要求服务器侧动作处理程序处理交互包括确定该用户交互包含同步动作还是异步动 作,并基于所述确定请求同步服务器侧动作处理程序或异步服务器侧动作处理程序之一处 理该交互。在另一个例子中,所存储的指令可以利用规则仓库或其他类似的逻辑来确定在 客户端侧还是服务器侧处理识别出的用户交互。这个示例性的规则仓库可以包括主键,该主键例如直接地映射到具体的交互,或者该规则仓库可以包括存储不同交互动作的动态表 达的规则。在再一个示例中,所存储的指令还可操作用于利用用户接口从服务器侧计算机 接收客户端侧动作处理程序。在用户交互包含多个事件周期的实例中,动态确定在客户端 侧还是服务器侧处理识别出的用户交互可以针对每个事件周期发生。尽管被一般地描述为处理和转换相应数据的计算机实现的软件,但是一些或所有 方面可以是计算机实现的方法或者进一步包括在相应的系统或用于执行所描述功能的其 他设备中。本公开的这些和其他方面和实施例的细节将在附图和以下描述中阐述。本公开 的其他特征、对象和优点将从说明书、附图和权利要求中变得清晰。


图1示出了根据本公开的一种实现方式的、提供与位置无关地执行用户接口操作 或交互的示例系统;图2是图1中描述的连线(wire)的示例配置。图3是图2中描述的连线的示例性实例。图4是使用图1中描述的系统在运行时的示例性连线事件周期。图5示出了图1中描述的系统的各种使用情况。图6A-6C示出了根据本公开的一种实现方式的、图5中的使用情况的各种示例流程。图7示出了根据本公开的一种实现方式的示例性连线运行时序列。
具体实施例方式本公开内容的一个方面针对提供与位置无关地执行用户接口操作或交互的系统。 更具体来说,该系统提供了用于以逐个情况的方式(a case by casemarmer)解决“客户 端侧”对“服务器侧”这一问题的框架。换句话说,在企业解决方案中可能需要控制请求的 源,特别是对于外部内容更是如此。例如,服务提供商可能限制来自客户机器或托管环境 (hosting environment)的对服务的访问。再例如,解决方案可以实现安全性,从而使外部 网页内容可以从服务器侧提取,但不能直接通过客户端浏览器提取(这可以帮助控制数据 大小,利用黑名单过滤掉可疑网站等等)。对于大多数场景,系统可以实现服务器侧方式。 然而在特定运行时场景中,系统能够实现这样的机制如果在客户端侧执行用户交互对于 该场景而言是合理的或者满足特定准则,则就在客户端侧执行用户交互。这些准则可以包 括确定这是否改善系统性能或总体操作,这是否节省往返(roimdtrip),或者这是否不会过 于复杂以至于不能处理,等等。在一些情况中,对于使用哪个模型来执行交互的决定可以对 于开发者透明地通过框架来选择(即,开发者不必决定是使用客户端侧方式还是服务器侧 方式)。取决于运行的场景/应用,框架动态地决定实施那种方式。这也可以取决于正在运 行所述场景/应用的环境(例如,如果应用正在门户中运行则结果可能不同)。简言之,系 统不强制实施事先的(或一般的)定义,而是提供实施逐个情况地进行决定的能力以及针 对特定情况或场景的最优化的解决方案。这样,在特定配置中,这种基础设施可以不限于客 户端侧方式或服务器侧方式,可以不限于特定系统全景(landscape),并且可以不限于任何 具体的UI技术。
一个例子属于往返最优化领域。在该示例中,用户希望触发到另一个应用的导航。 取决于场景,这可以经由直接的客户端侧调用来完成(例如在简单场景中,其中应用能够 作为相对独立的应用来执行操作),或者可以经由服务器往返来完成(例如在较复杂场景 中,其中,框架帮助确保在触发导航之前运行在同一页面上的其他应用之间的一致性)。所 述框架并非仅仅提供多种可能性中的一种,而是提供一个触发导航的API,同时在总体上由 框架决定在哪里执行该导航(即在客户端侧执行还是在服务器侧执行)。另一个例子属于混搭(mashup)(即,若干小的“应用”或“芯片”的复合 (composition),这些“应用”或“芯片”经由“连线”(wire)连接以进行简单的通信)领域, 所述混搭包括来自服务器侧或客户端侧的组件(component)或其他技术。为了构筑混搭, 一般以基于事件的通信基础设施为基础来完成“连线”(wiring)。可以存在纯粹的基于客 户端侧的混搭环境,也存在基于服务器的环境。所描述的框架不是以静态方式定义处理交 互的位置,而是能够根据不同的约束来执行操作。这些示例性的约束可以包括作为混搭 场景和当前连线的一部分的应用是哪种类型?例如,该应用可以包括仅仅是客户端侧的应 用、仅仅是基于服务器的应用(具有客户端前端)、或者组合(combination)。为了帮助避免 不期望的往返,(例如如果用户点击控件,该控件改变某个其它客户端侧应用的某个状态, 则)该框架可以在客户端侧执行用户交互。或者,该框架可以确定例如,i)用户交互涉及 过于复杂的操作;ii)难以确保一致的屏幕,因此请求操作主要在服务器侧完成;或者iii) 混搭场景具有混合运行时技术(客户端侧和服务器侧),从而需要组合的事件周期。转到图示的实施例,图1示出了示例系统100,其实现了知晓全景的应用间通信基 础设施。系统100可以是跨越一个或多个网络的分布式客户端/服务器系统。在这样的实 现方式中,可以以使用任何标准的或私有的加密算法的加密格式来通信或存储数据。但是 系统100可以处于专用企业环境(在局域网或子网上)中,或处于任何其他适当的环境中, 而不会偏离本公开的范围。系统100可以包括服务器102、一个或多个客户端104以及一个 或多个网络112,或者系统100可以可通信地与它们连接。服务器102包括电子计算设备,其可操作用于接收、发送、处理和存储与系统100 相关联的数据。总体来说,图1仅仅提供了可与本公开一起使用的计算机的一个例子。一 般来说,每个计算机本意是包括任何适当的处理设备。例如,尽管图1示出了一个服务 器,其可与本公开一起使用,但系统100也可以使用服务器之外的计算机以及服务器池来 实现。事实上,服务器可以是任何计算机或处理设备,例如刀片服务器、通用个人计算机 (PC)、Macintosh、工作站、基于Unix的计算机、PDA、提供离线功能(设备中的小型足迹 (footprint)服务器)的智能电话、以及其他任何适当的设备。换句话说,本公开考虑到了 通用计算机之外的计算机以及没有传统操作系统的计算机。服务器可以被适配为执行任何 操作系统,包括Linux、UNIX、WindowsServer或其他任何适当的操作系统。根据一个实施 例,服务器还可以包括网页服务器和/或邮件服务器,或者可通信地与它们连接。服务器可以包括本地存储器。存储器可以是任何有形的计算机可读存储器,其可 以包括采用易失性或非易失性存储器形式的任何存储器或数据库模块,包括但不限于磁介 质、光介质、随机存取存储器(RAM)、只读存储器(ROM)、可移动介质、或其它任何适当的本 地或远程存储器组件。除其他项目外,存储器可以包括用于与位置无关地执行用户接口操 作或交互以及多个应用的框架,后面将对其进行更详细的描述。此外,存储器可以包括一个或多个操作环境。存储器还可以包括其他类型的数据,例如环境和/或应用描述数据、 一个或多个应用的应用数据、以及涉及VPN应用或服务的数据、防火墙策略、安全或访问日 志、打印或其他报告文件、超文本标记语言(HyperText Markup Language, HTML)文件或 模板、相关或不相关的软件应用或子系统,等等。因此,存储器也可以被看作是数据仓库 (r印ository),例如来自一个或多个应用的本地数据仓库。事实上,与位置无关的框架可以 驻留在服务器侧和客户端侧(客户端侧逻辑和分派)两者之上。更具体来说,框架可以是能够使用或有助于使用本身也是软件的知晓全景的应用 间通信基础设施的任何应用、程序、模块、处理或其它软件。不管具体实现方式如何,“软 件”可以包括软件、固件、连线或编程的硬件或包括在有形计算机可读介质上的以上各项 的任何组合。事实上,形式转换模块130可以以任何适当的计算机语言编写或描述,所述 计算机语言包括C、C++、Java、Visual Basic、编译语言、Perl、任何适当版本的4GL等等。 例如,形式转换模块130可以是复合应用(composite application),所述复合应用中的 部分可以被实现为Enterprise Java Beans (EJBs),或者设计时(design-time)组件可以 具有将运行时实现生成到不同平台中的能力,所述不同平台例如J2EE(Java 2平台企业 fk ) > ABAP (Advanced Business ApplicationProgramming, MMM^MM^S.) MM-^W 软的.NET。根据一些实现方式,通信可以采用一个或多个可扩展标记语言(extensible Markup Language, XML)文档文件或部分或结构化查询语言(“SQL”)语句或脚本编辑 (scripting)语言或脚本语言或扩展语言的脚本的形式。例如,通信结构145可以被格式 化、存储或定义为文本文件、虚拟存取方法(Virtual Storage Access Method,VSAM)文件、 平面文件(flat file)、Btrieve文件、逗号分隔值(comma-s印arated-value,CSV)文件、内 部变量或者一个或多个库中的各种数据结构。除了 XML,其他的示例脚本编辑语言可以包 括 JavaScript、层叠样式表单(Cascading Style Sheets,CSS)、HTML、异步 Javakript 和 XML (asynchronous JavaScript and XML, AJAX)等等。服务器也可以包括处理器。处理器执行诸如前述软件的指令,并操控数据以执行 服务器的操作,并且可以是例如中央处理单元(CPU)、刀片(blade)、专用集成电路(ASIC) 或现场可编程门阵列(FPGA)。将会理解到,可以根据具体需要使用多个处理器,并且提到处 理器时旨在根据应用需要包括多个处理器。网络112便利计算机服务器和任何其他本地或远程计算机,如客户端104,之间的 无线或有线通信。所述网络可以是企业或安全网络的全部或一部分。在另一个例子中,网 络可以是跨越有线或无线链路的、仅仅位于服务器和客户端之间的VPN。这样的示例性无线 链路可以经由802. lla、802. lib,802. llg、802. 20、WiMax等等。尽管被图示为单个或连续 网络,但所述网络可以在逻辑上被划分为各种不同的子网或虚拟网络,这不会偏离本公开 的范围,只要网络的至少一部分可以便利服务器和至少一个客户端之间的通信即可。例如, 服务器可以通过一个子网可通信地连接到仓库,同时通过另一个子网可通信地连接到特定 的客户端。换言之,所述网络包括可操作用来便利系统100中的各种计算组件之间通信的 任何内部或外部网络、网络、子网络或它们的组合。网络可以在网络地址之间传送例如网际 协议(IP)分组、帧中继帧、异步传输模式(ATM)信元、语音、视频、数据和其他适当的信息。 所述网络可以包括一个或多个局域网(LAN)、无线接入网(radio accessnetwork, RAN)、城域网(MAN)、广域网(WAN)、被称为互联网的全球计算机网络的全部或一部分、和/或位于一 个或多个地点的其他任何通信系统。在特定实施例中,网络可以是用户可经由特定的本地 或远程客户端104访问的安全网络。客户端104可以是可操作用来使用任何通信链路与服务器或网络连接或通信的 任何计算设备。在高层,每个客户端包括或执行至少GUI,并且每个客户端包括可操作用来 接收、发送、处理和存储与系统100相关联的任何适当数据的电子计算设备。此外,客户端 包括有形存储器和一个或多个处理器。将会理解到,可以存在可通信地连接到服务器的任 何数量的客户端。再有,可以适当地可交换地使用“客户端”、“本地机”和“用户”而不会偏 离本公开的范围。另外,为了便于说明,每个客户端都被描述为被一个用户使用。但是本公 开考虑到了许多用户可以使用一个计算机,或者一个用户可以使用多个计算机。本公开所 使用的客户端旨在包括个人计算机、触摸屏终端、工作站、网络计算机、kiosk、无线数据端 口、智能电话、个人数字助理(PDA)、这些或其他设备中的一个或多个处理器、或任何其他适 当的处理设备。例如,客户端可以是可操作用来与外部或非安全网络无线连接的PDA。在另 一个例子中,客户端可以包括膝上型计算机,其包括诸如键区、触摸屏、鼠标或能够接受信 息的输入设备,以及输出设备,该输出设备传送与服务器或客户端的操作相关联的信息,包 括数字数据、可视信息或GUI。输入设备和输出设备都可以包括固定或可移动存储介质,诸 如磁性计算机盘、CD-ROM或其他适当的介质,用以通过显示,即GUI的客户端部分或应用接 口,接收来自客户端的用户的输入并向客户端的用户提供输出。GUI可以包括图形用户接口,其可操作用以允许客户端的用户与出于各种目的 (如查看应用或其他事务数据)与系统100的至少一部分交互。例如,⑶I可以呈现(往往 是经由页面或容器)有关在一个或多个应用或应用实例之间通信的业务信息的各种视图。 一般来说,GUI向特定用户提供对于系统100所提供的或在系统100内通信的数据的有效 且用户友好的表示。GUI可以包括多个可定制图文框或视图,所述可定制图文框或视图具有 交互区、下拉菜单和可由用户操作的按钮。⑶I也可以呈现多个入口(portal)或应用程序 控制面板(dashboard)。例如,GUI可以显示允许用户输入和定义用于一个或多个模块的搜 索参数的安全网页。应理解,术语“图形用户接口,,可用作单数或复数,以描述一个或多个 图形用户接口以及特定图形用户接口的每个显示。实际上,不脱离本公开的范围,在适当的 情况下,提到⑶I可能是指应用的前端或组件,以及通过客户端104可访问的特定接口。因 此,GUI考虑到了任何在系统100中处理信息并有效地向用户呈现结果的图形用户接口,如 通用网页浏览器或触摸屏。服务器可以通过网页浏览器(如Microsoftlnternet Explorer 或Netscape Navigator)从客户端接受数据,并利用网络向浏览器返回适当的HTML或XML 响应。在客户端侧,可以存在客户端动作分派器(client action dispatcher,CAD)或事 件总线或框架和应用逻辑。在特定配置中,这是由用户(例如通过按下按钮、选择表行等) 触发的用户交互的单个进入点。CAD收到该动作并使用规则引擎对其进行分析。规则引擎 可以访问规则仓库。规则仓库包含应如何处理“动作”的规则。在最简单的情况中,规则是 简单的映射(例如“按钮点击_>服务器调用”),但你也可以想象规则是用来确定应当如何 处理动作的动态表达(dynamic expression)。然后,CAD可以将动作分派给所需要的动作处 理程序。更具体来说,尽管连线信息通常存储在服务器中,但运行时处理器(控制器)也可以被实现在客户端侧和/或服务器侧,并且可以负责在客户端侧事件周期和服务器侧事件 周期之间进行缓和。例如,图4示出了服务器侧实现方式。返回图1,所示的配置描述了补 充的客户端侧运行时组件,其帮助使解决方案成为环境不可知的(environment agnostic) (意思是,能够在事件周期中处理客户端侧UI组件和服务器侧UI组件两者)。客户端侧调用(client side call)直接由客户端调用动作处理程序(client callaction handler)(或其他某个相关模块)来处理。对于服务器侧调用,CAD (或其他某 个相关模块)可以区别同步调用和异步调用,这样可以向适当的同步和异步处理器发送请 求。而且,在服务器侧可以存在运行应用的特定应用容器。从而对于每个通道,能够经由服 务器侧动作处理程序(在上面的例子中,一个用于同步调用,一个用于异步调用)从客户端 侧调用应用。在操作混搭配置的一个例子中,如图1中的例子所示,通过客户端侧事件 总线识别来自源的RaiseEvent(引发事件)调用。CAD触发对服务器侧事件总线的 ProcessEvent (处理事件)调用,服务器侧事件总线经由fromJSONtoEvent调用事件串行器 /解串行器(Events krializer/Deserializer)。服务器侧事件总线经由ProcessWires联 系混搭基础设施(可能是连线处理器),然后ftOcessWires调用Returr^nEvent (返回输入 事件)。然后,该事件经由toJSON被事件串行器/解串行器处理,并经由ReturnhEvents 返回到客户端侧事件。然后,CA经由onEvent将事件发送给目标。图2是图1中描述的连线的示例配置200。连线定义对象的结构包含转换器 (transformer),转换器表示源和目标芯片(chip)定义端口之间的实际连线转换数据。换 言之,转换器帮助实现基本不兼容组件相互通信并交换信息的通信。转换器可以根据在特 定对象类中实现的定义来翻译信息。为了容易处理,简单的转换可以在客户端侧完成,但具 有业务逻辑(服务调用)的较复杂转换可以在服务器侧完成。这样,混合的解决方案能够 实现这种混合的数据流。在这个例子中,连线定义200还包括一个或多个输出元素、输入元 素、一个或多个输入区以及一个或多个输出区。在一些情形下,可以针对运行时、运行时构 建(runtime authoring)和管理场景优化连线持续性。在运行时进程中,源的输出事件(out event)被转换成目标的输入事件(in event)。连线数据被传输并能够与容器(工作空间 /页面)相关联,以使得其生命周期能够利用容器的生命周期来管理。将会理解,这是对连 线的抽象说明,从而存在导出的基于客户端侧的连线表示(基于JavMcript)以及导出的 基于服务器侧的连线表示(基于java)。这两种表示同时存在并且共享相同的定义。这种 配置帮助实现基于相同的元数据运行客户端侧事件场景和服务器侧事件场景,同时根据环 境激活相应的转换器和事件处理器。连线定义可以存储在全局仓库中(或其他持续性)并且表示在系统上已经创建的 连线。在一些情况中,这些定义可以被不同系统中的各种连线实例访问。当添加新的实例 时,可以通过建议机制(suggestion mechanism)搜索连线定义。图3是图2中描述的连线的示例实例300。该实例300将源芯片实例的输出端口 (out-port)和目标芯片实例的输入端口(in-port)映射成特定的连线定义。在一些配置 中,实例与特定容器(页面/工作空间)相关联,并且其帮助提供在运行时中对相应连线定 义的快速访问。如上面提到的,连线实例的生命周期往往与容器相关。例如,当页面被删除 /复制/传输时,一般以相同方式处理该页面的连线实例。为了帮助完成这一点,一种实现方式可以将连线示例作为属性中的XML表示本地存储在该页面之下。这种实现方式的例子 可以如下〈wiring〉〈target id = ""port = ""wireDefinitionld =""><src id = ""port = ""/><src id = ""port = ""/>..</target>〈/wiring〉在这个例子中,连线映射在运行时将被解析为存储器中的专用数据结构,该专用 数据结构将提供对相关连线数据的快速访问。当然,这种示例实现方式仅仅是用于举例说 明的目的,并且可以根据情况适当地使用任何语言、格式或其他实现方式细节。图5示出了图1中描述的系统的各种使用情况。在高层,该图示绘出了三种使用 情况运行时、运行时构建和管理,每种情况都将在图6中更具体地描述。具体来说,图6A 示出了示例的组件和数据流600,其用于实现连线的运行时处理;图6B示出了示例的组件 和数据流630,其用于实现连线的运行时构建;图6C示出了示例的组件和数据流660,其用 于实现连线管理。图7示出了根据本公开的一个实现方式,例如数据流600,的示例连线运行时序列 700。为了清楚演示,以下的描述一般在图1示出的环境的上下文中描述方法700。但是将 会理解到,方法700可以可替换地由任何其他适合的系统、环境、或适当的系统和环境的组 合来执行。具体来说,运行时序列700示出了在702 WiringRuntimeExtension (连线运行时 扩展)610通过ftOcessWires (处理连线)方法调用WiringProcessor (连线处理器)620。然 后在 704,WiringProcessor 调用 iLocalWirehstanceManager (本地连线实例管理器)630, 这可能通过init()方法进行调用。在706,通过CreateWiringMapForfage ()(为页面创建 连线映射)调用环境或工作空间访问模块640,在708,CreateffiringMapForPage ()生成 并返回WiringMap (连线映射)。在步骤710,WiringProcessor (连线处理器)通过联系 iLocalffirelnstanceManager模块确定连线实例300,连线实例300在步骤712被返回。可 以将这些实例作为任何适当的通信或数据结构,例如数组、对象或列表,来返回。然后在714 和716 WiringProcessor联系环境或工作空间访问模块以确定每个具体的连线实例是否与 这个具体动作相关。之后,WiringProcessor在步骤718转换参数并在720返回输入端口 (inport)事件。尽管本公开使用多个数据和处理流程以及相应的描述说明了与各种公开方法和 技术相关的示例技术,但是系统100考虑到了使用或实现任何适当的技术来执行这些或其 他任务。将会理解,这些技术仅仅是出于示例的目的,并且所描述的技术或类似的技术可以 在任何适当的时间执行,包括并行执行、单独执行或组合执行。此外,这些流程中的许多步 骤可以同时发生和/或以不同于所示出以及所描述的顺序的顺序发生。此外,系统100可 以使用具有附加步骤、更少步骤和/或不同步骤的处理和方法,只要这些处理和方法适当 即可。简言之,尽管本公开从特定实现方式以及一般关联方法的角度进行了描述,但这些实现方式和方法的替代方式或置换方式对于本领域技术人员而言将是明显的。因此,其他的 实现方式也在权利要求书的范围之内。
权利要求
1.一种用于与位置无关地执行用户接口操作的计算机实现的方法,该方法包括由一个 或多个处理器执行的下列步骤通过客户端侧用户接口识别用户交互,该客户端侧用户接口与服务器侧计算机可通信 地连接;动态地确定在客户端侧还是在服务器侧处理识别出的用户交互;如果用户交互将在客户端侧处理,则调用客户端侧动作处理程序;以及如果用户交互将在服务器侧处理,则请求服务器侧动作处理程序处理该交互。
2.如权利要求1所述的计算机实现的方法,其中请求服务器侧动作处理程序处理交互 包括确定用户交互包含同步动作还是异步动作;以及基于所述确定请求同步服务器侧动作处理程序或异步服务器侧动作处理程序之一来 处理该交互。
3.如权利要求1所述的计算机实现的方法,其中,动态地确定在客户端侧还是在服务 器侧处理识别出的用户交互包括利用规则仓库来确定在客户端侧还是服务器侧处理识别 出的用户交互。
4.如权利要求3所述的计算机实现的方法,其中,所述规则仓库包括主键,其映射到具 体的交互。
5.如权利要求3所述的计算机实现的方法,其中,所述规则仓库包括存储各种不同交 互动作的动态表达的规则。
6.如权利要求1所述的计算机实现的方法,还包括利用用户接口代码从服务器侧计 算机接收客户端侧动作处理程序。
7.如权利要求1所述的计算机实现的方法,所述动态地确定至少部分地根据多个准则 进行,所述多个准则包括处理能力、往返数量和操作环境。
8.一种用于与位置无关地执行用户接口操作的计算机程序产品,该计算机程序产品包 括存储计算机可读指令的有形存储介质,所述计算机可读指令在被执行时可操作用于通过客户端侧用户接口识别用户交互,该客户端侧用户接口与服务器侧计算机可通信 地连接;动态地确定在客户端侧还是在服务器侧处理识别出的用户交互;如果用户交互将在客户端侧处理,则调用客户端侧动作处理程序;以及如果用户交互将在服务器侧处理,则请求服务器侧动作处理程序处理该交互。
9.如权利要求8所述的计算机程序产品,其中,所存储的指令请求服务器侧动作处理 程序处理该交互包括所存储的指令确定用户交互包含同步动作还是异步动作;以及基于所述确定请求同步服务器侧动作处理程序或异步服务器侧动作处理程序之一来 处理该交互。
10.如权利要求8所述的计算机程序产品,其中,动态地确定在客户端侧还是在服务器 侧处理识别出的用户交互包括利用规则仓库来确定在客户端侧还是服务器侧处理识别出 的用户交互。
11.如权利要求10所述的计算机程序产品,其中,所述规则仓库包括主键,其映射到具体的交互。
12.如权利要求10所述的计算机程序产品,其中,所述规则仓库包括存储各种不同交 互动作的动态表达的规则。
13.如权利要求8所述的计算机程序产品,还包括其中所存储的指令还可操作用于利 用用户接口代码从服务器侧计算机接收客户端侧动作处理程序。
14.如权利要求8所述的计算机程序产品,所述动态确定至少部分地根据多个准则进 行,所述多个准则包括处理能力、往返数量和操作环境。
15.如权利要求8所述的计算机程序产品,其中,所述动态地确定在客户端侧还是服务 器侧处理识别出的用户交互在该用户交互包含多个事件周期时针对每个事件周期发生。
16.一种通过知晓全景的应用间通信基础设施进行通信的计算机系统,所述计算机系 统包括存储器,其存储客户端侧用户接口和客户端侧动作处理程序;以及一个或多个处理器,其在执行时通过客户端侧用户接口识别用户交互,该客户端侧用户接口与服务器侧计算机可通信 地连接;动态地确定在客户端侧还是在服务器侧处理识别出的用户交互;如果用户交互将在客户端侧处理,则调用客户端侧动作处理程序;以及如果用户交互将在服务器侧处理,则请求服务器侧动作处理程序处理该交互。
17.如权利要求16所述的计算机系统,其中所述一个或多个处理器请求服务器侧动作 处理程序处理该交互包括该一个或多个处理器确定该用户交互包含同步动作还是异步动作;以及基于所述确定请求同步服务器侧动作处理程序或异步服务器侧动作处理程序之一来 处理该交互。
18.如权利要求16所述的计算机系统,其中,所述存储器还存储规则仓库,并且其中所 述一个或多个处理器利用该规则仓库来动态地确定在客户端侧还是在服务器侧处理识别 出的用户交互。
19.如权利要求18所述的计算机系统,其中,所述规则仓库包括主键,其映射到具体的交互。
20.如权利要求18所述的计算机系统,其中,所述规则仓库包括存储各种不同交互动 作的动态表达的规则。
21.如权利要求18所述的计算机系统,所述一个或多个处理器还可操作用于利用用户 接口代码从服务器侧计算机接收客户端侧动作处理程序。
全文摘要
本公开涉及系统、方法和软件,它们涉及与位置无关地执行用户接口操作。所述执行可以包括通过客户端侧用户接口识别用户交互,该客户端侧用户接口与服务器侧计算机可通信地连接。然后动态地确定在客户端侧还是在服务器侧处理识别出的用户交互。如果用户交互将在客户端侧处理,则调用客户端侧动作处理程序。如果用户交互将在服务器侧处理,则请求服务器侧动作处理程序处理该交互。
文档编号G06F3/048GK102087577SQ20101057656
公开日2011年6月8日 申请日期2010年12月7日 优先权日2009年12月7日
发明者亚哈利.舍曼, 兰.格罗斯, 约肯.格特勒, 阿里尔.坦曼 申请人:Sap股份公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1