CN102087577B - 与位置无关地执行用户接口操作 - Google Patents
与位置无关地执行用户接口操作 Download PDFInfo
- Publication number
- CN102087577B CN102087577B CN201010576562.2A CN201010576562A CN102087577B CN 102087577 B CN102087577 B CN 102087577B CN 201010576562 A CN201010576562 A CN 201010576562A CN 102087577 B CN102087577 B CN 102087577B
- Authority
- CN
- China
- Prior art keywords
- client
- server
- server side
- application
- user interactions
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/54—Indexing scheme relating to G06F9/54
- G06F2209/541—Client-server
Abstract
本公开涉及系统、方法和软件,它们涉及与位置无关地执行用户接口操作。所述执行可以包括:通过客户端侧用户接口识别用户交互,该客户端侧用户接口与服务器侧计算机可通信地连接。然后动态地确定在客户端侧还是在服务器侧处理识别出的用户交互。如果用户交互将在客户端侧处理,则调用客户端侧动作处理程序。如果用户交互将在服务器侧处理,则请求服务器侧动作处理程序处理该交互。
Description
技术领域
本公开涉及有关与位置无关地执行用户接口操作(location-independentexecution of user interface operation)的系统、方法和软件。例如,本公开提供了一种框架(framework),其有助于在客户端侧或服务器侧的操作处理之间进行切换,这种切换往往是实时的。
背景技术
图形用户接口(GUI)允许计算机用户通过显示接口控制计算机系统以及输入和修改计算机系统上的数据。一些应用在客户端服务器体系结构中运行的客户端程序中实现用户接口(UI),例如,网页浏览器。UI一般包括可由用户操作以与应用交互的控件。控件可以包括按钮、菜单、下拉菜单、对话框、滚动条和使得用户能够查看应用数据、调用应用功能以及以其他方式与应用交互的任何其他控件。每个控件都具有相关联的控件状态,并且应用具有相关联的UI状态。控件状态和UI状态能够基于用户交互而改变。在GUI中导航一般包括移动诸如鼠标的指示设备到活动元素(active element)以及通过点击该元素来启动(activate)该元素。或者,来自键盘设备的各种键击(例如按下“tab”键)允许用户遍历GUI元素。
用户接口(或网页)应用框架的开发往往涉及关于操作或用户交互(例如用户点击链接或按钮以触发操作)应当在客户端侧(可能使用在浏览器内运行的Java Script框架)处理还是在服务器侧(可能使用在网页应用服务器上运行的Java框架)处理的争论。通过在客户端服务器体系结构中运行的客户端程序中绘制应用(例如,网页浏览器)的UI状态,可以生成应用的可视表示(visual representation)。
发明内容
本公开的一个方面涉及与位置无关地执行用户接口操作或交互。例如,一种用于与位置无关地执行用户接口操作的计算机程序产品包括存储计算机可读指令的有形存储介质。在一个实例中,所述指令可操作用于识别通过客户端侧用户接口的用户交互,所述客户端侧用户接口与服务器侧计算可通信地耦合。然后,所述指令动态地确定在客户端侧还是在服务器侧处理识别出的用户交互。在一些情况中,至少部分地根据多个标准来进行所述动态确定,所述多个标准包括处理能力、往返数量以及操作环境。如果用户交互将在客户端侧处理,则所存储的指令调用客户端侧动作处理程序。否则,如果用户交互将在服务器侧处理,则指令请求服务器侧动作处理程序处理该交互。
不同的实施例可以实现或利用以下特征中的一个或多个。例如,所存储的指令可以要求服务器侧动作处理程序处理交互包括:确定该用户交互包含同步动作还是异步动作,并基于所述确定请求同步服务器侧动作处理程序或异步服务器侧动作处理程序之一处理该交互。在另一个例子中,所存储的指令可以利用规则仓库或其他类似的逻辑来确定在客户端侧还是服务器侧处理识别出的用户交互。这个示例性的规则仓库可以包括主键,该主键例如直接地映射到具体的交互,或者该规则仓库可以包括存储不同交互动作的动态表达的规则。在再一个示例中,所存储的指令还可操作用于利用用户接口从服务器侧计算机接收客户端侧动作处理程序。在用户交互包含多个事件周期的实例中,动态确定在客户端侧还是服务器侧处理识别出的用户交互可以针对每个事件周期发生。
尽管被一般地描述为处理和转换相应数据的计算机实现的软件,但是一些或所有方面可以是计算机实现的方法或者进一步包括在相应的系统或用于执行所描述功能的其他设备中。本公开的这些和其他方面和实施例的细节将在附图和以下描述中阐述。本公开的其他特征、对象和优点将从说明书、附图和权利要求中变得清晰。
附图说明
图1示出了根据本公开的一种实现方式的、提供与位置无关地执行用户接口操作或交互的示例系统;
图2是图1中描述的连线(wire)的示例配置。
图3是图2中描述的连线的示例性实例。
图4是使用图1中描述的系统在运行时的示例性连线事件周期。
图5示出了图1中描述的系统的各种使用情况。
图6A-6C示出了根据本公开的一种实现方式的、图5中的使用情况的各种示例流程。
图7示出了根据本公开的一种实现方式的示例性连线运行时序列。
具体实施方式
本公开内容的一个方面针对提供与位置无关地执行用户接口操作或交互的系统。更具体来说,该系统提供了用于以逐个情况的方式(a case by casemanner)解决“客户端侧”对“服务器侧”这一问题的框架。换句话说,在企业解决方案中可能需要控制请求的源,特别是对于外部内容更是如此。例如,服务提供商可能限制来自客户机器或托管环境(hosting environment)的对服务的访问。再例如,解决方案可以实现安全性,从而使外部网页内容可以从服务器侧提取,但不能直接通过客户端浏览器提取(这可以帮助控制数据大小,利用黑名单过滤掉可疑网站等等)。对于大多数场景,系统可以实现服务器侧方式。然而在特定运行时场景中,系统能够实现这样的机制:如果在客户端侧执行用户交互对于该场景而言是合理的或者满足特定准则,则就在客户端侧执行用户交互。这些准则可以包括确定这是否改善系统性能或总体操作,这是否节省往返(roundtrip),或者这是否不会过于复杂以至于不能处理,等等。在一些情况中,对于使用哪个模型来执行交互的决定可以对于开发者透明地通过框架来选择(即,开发者不必决定是使用客户端侧方式还是服务器侧方式)。取决于运行的场景/应用,框架动态地决定实施那种方式。这也可以取决于正在运行所述场景/应用的环境(例如,如果应用正在门户中运行则结果可能不同)。简言之,系统不强制实施事先的(或一般的)定义,而是提供实施逐个情况地进行决定的能力以及针对特定情况或场景的最优化的解决方案。这样,在特定配置中,这种基础设施可以不限于客户端侧方式或服务器侧方式,可以不限于特定系统全景(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)文件或模板、相关或不相关的软件应用或子系统,等等。因此,存储器也可以被看作是数据仓库(repository),例如来自一个或多个应用的本地数据仓库。事实上,与位置无关的框架可以驻留在服务器侧和客户端侧(客户端侧逻辑和分派)两者之上。
更具体来说,框架可以是能够使用或有助于使用本身也是软件的知晓全景的应用间通信基础设施的任何应用、程序、模块、处理或其它软件。不管具体实现方式如何,“软件”可以包括软件、固件、连线或编程的硬件或包括在有形计算机可读介质上的以上各项的任何组合。事实上,形式转换模块130可以以任何适当的计算机语言编写或描述,所述计算机语言包括C、C++、Java、Visual Basic、编译语言、Perl、任何适当版本的4GL等等。例如,形式转换模块130可以是复合应用(composite application),所述复合应用中的部分可以被实现为Enterprise Java Beans(EJBs),或者设计时(design-time)组件可以具有将运行时实现生成到不同平台中的能力,所述不同平台例如J2EE(Java 2平台企业版)、ABAP(Advanced Business ApplicationProgramming,高级商业应用编程)对象或微软的.NET。
根据一些实现方式,通信可以采用一个或多个可扩展标记语言(eXtensible Markup Language,XML)文档文件或部分或结构化查询语言(“SQL”)语句或脚本编辑(scripting)语言或脚本语言或扩展语言的脚本的形式。例如,通信结构145可以被格式化、存储或定义为文本文件、虚拟存取方法(Virtual Storage Access Method,VSAM)文件、平面文件(flat file)、Btrieve文件、逗号分隔值(comma-separated-value,CSV)文件、内部变量或者一个或多个库中的各种数据结构。除了XML,其他的示例脚本编辑语言可以包括JavaScript、层叠样式表单(Cascading Style Sheets,CSS)、HTML、异步JavaScript和XML(asynchronous JavaScript and XML,AJAX)等等。
服务器也可以包括处理器。处理器执行诸如前述软件的指令,并操控数据以执行服务器的操作,并且可以是例如中央处理单元(CPU)、刀片(blade)、专用集成电路(ASIC)或现场可编程门阵列(FPGA)。将会理解到,可以根据具体需要使用多个处理器,并且提到处理器时旨在根据应用需要包括多个处理器。
网络112便利计算机服务器和任何其他本地或远程计算机,如客户端104,之间的无线或有线通信。所述网络可以是企业或安全网络的全部或一部分。在另一个例子中,网络可以是跨越有线或无线链路的、仅仅位于服务器和客户端之间的VPN。这样的示例性无线链路可以经由802.11a、802.11b、802.11g、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的至少一部分交互。例如,GUI可以呈现(往往是经由页面或容器)有关在一个或多个应用或应用实例之间通信的业务信息的各种视图。一般来说,GUI向特定用户提供对于系统100所提供的或在系统100内通信的数据的有效且用户友好的表示。GUI可以包括多个可定制图文框或视图,所述可定制图文框或视图具有交互区、下拉菜单和可由用户操作的按钮。GUI也可以呈现多个入口(portal)或应用程序控制面板(dashboard)。例如,GUI可以显示允许用户输入和定义用于一个或多个模块的搜索参数的安全网页。应理解,术语“图形用户接口”可用作单数或复数,以描述一个或多个图形用户接口以及特定图形用户接口的每个显示。实际上,不脱离本公开的范围,在适当的情况下,提到GUI可能是指应用的前端或组件,以及通过客户端104可访问的特定接口。因此,GUI考虑到了任何在系统100中处理信息并有效地向用户呈现结果的图形用户接口,如通用网页浏览器或触摸屏。服务器可以通过网页浏览器(如MicrosoftInternet 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 Serializer/Deserializer)。服务器侧事件总线经由ProcessWires联系混搭基础设施(可能是连线处理器),然后ProcessWires调用ReturnInEvent(返回输入事件)。然后,该事件经由toJSON被事件串行器/解串行器处理,并经由ReturnInEvents返回到客户端侧事件。然后,CA经由onEvent将事件发送给目标。
图2是图1中描述的连线的示例配置200。连线定义对象的结构包含转换器(transformer),转换器表示源和目标芯片(chip)定义端口之间的实际连线转换数据。换言之,转换器帮助实现基本不兼容组件相互通信并交换信息的通信。转换器可以根据在特定对象类中实现的定义来翻译信息。为了容易处理,简单的转换可以在客户端侧完成,但具有业务逻辑(服务调用)的较复杂转换可以在服务器侧完成。这样,混合的解决方案能够实现这种混合的数据流。在这个例子中,连线定义200还包括一个或多个输出元素、输入元素、一个或多个输入区以及一个或多个输出区。在一些情形下,可以针对运行时、运行时构建(runtime authoring)和管理场景优化连线持续性。在运行时进程中,源的输出事件(out event)被转换成目标的输入事件(in event)。连线数据被传输并能够与容器(工作空间/页面)相关联,以使得其生命周期能够利用容器的生命周期来管理。将会理解,这是对连线的抽象说明,从而存在导出的基于客户端侧的连线表示(基于JavaScript)以及导出的基于服务器侧的连线表示(基于java)。这两种表示同时存在并且共享相同的定义。这种配置帮助实现基于相同的元数据运行客户端侧事件场景和服务器侧事件场景,同时根据环境激活相应的转换器和事件处理器。
连线定义可以存储在全局仓库中(或其他持续性)并且表示在系统上已经创建的连线。在一些情况中,这些定义可以被不同系统中的各种连线实例访问。当添加新的实例时,可以通过建议机制(suggestion mechanism)搜索连线定义。
图3是图2中描述的连线的示例实例300。该实例300将源芯片实例的输出端口(out-port)和目标芯片实例的输入端口(in-port)映射成特定的连线定义。在一些配置中,实例与特定容器(页面/工作空间)相关联,并且其帮助提供在运行时中对相应连线定义的快速访问。如上面提到的,连线实例的生命周期往往与容器相关。例如,当页面被删除/复制/传输时,一般以相同方式处理该页面的连线实例。为了帮助完成这一点,一种实现方式可以将连线示例作为属性中的XML表示本地存储在该页面之下。这种实现方式的例子可以如下:
<wiring>
<target id=““port=““wireDefinitionId=““>
<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通过ProcessWires(处理连线)方法调用WiringProcessor(连线处理器)620。然后在704,WiringProcessor调用iLocalWireInstanceManager(本地连线实例管理器)630,这可能通过init()方法进行调用。在706,通过createWiringMapForPage()(为页面创建连线映射)调用环境或工作空间访问模块640,在708,createWiringMapForPage()生成并返回WiringMap(连线映射)。在步骤710,WiringProcessor(连线处理器)通过联系iLocalWireInstanceManager模块确定连线实例300,连线实例300在步骤712被返回。可以将这些实例作为任何适当的通信或数据结构,例如数组、对象或列表,来返回。然后在714和716 WiringProcessor联系环境或工作空间访问模块以确定每个具体的连线实例是否与这个具体动作相关。之后,WiringProcessor在步骤718转换参数并在720返回输入端口(inport)事件。
尽管本公开使用多个数据和处理流程以及相应的描述说明了与各种公开方法和技术相关的示例技术,但是系统100考虑到了使用或实现任何适当的技术来执行这些或其他任务。将会理解,这些技术仅仅是出于示例的目的,并且所描述的技术或类似的技术可以在任何适当的时间执行,包括并行执行、单独执行或组合执行。此外,这些流程中的许多步骤可以同时发生和/或以不同于所示出以及所描述的顺序的顺序发生。此外,系统100可以使用具有附加步骤、更少步骤和/或不同步骤的处理和方法,只要这些处理和方法适当即可。简言之,尽管本公开从特定实现方式以及一般关联方法的角度进行了描述,但这些实现方式和方法的替代方式或置换方式对于本领域技术人员而言将是明显的。因此,其他的实现方式也在权利要求书的范围之内。
Claims (12)
1.一种用于在混搭环境中使用连接应用的连线与位置无关地执行用户接口操作的计算机实现的方法,其中所述连线包括一个或多个输出元素、输入元素、一个或多个输入区以及一个或多个输出区,其中所述连线包含转换器,所述转换器根据具体实施的定义来翻译信息,由此使能应用之间的通信,该方法包括由一个或多个处理器执行的下列步骤:
导出所述连线的基于客户端侧的JavaScript表示;
导出所述连线的基于服务器侧的JavaScript表示;
其中所述基于客户端侧的JavaScript表示和所述基于服务器侧的JavaScript表示使用相同的元数据并且共享相同的定义;
通过客户端侧用户接口识别用户交互,该客户端侧用户接口与服务器侧计算机可通信地连接,其中所述用户交互触发从一个应用到另一个应用的导航;
动态地确定在客户端侧还是在服务器侧处理识别出的用户交互,其中所述动态地确定根据多个准则的全部来进行,所述准则包括处理能力、往返数量和操作环境、在触发所述导航之前确保应用之间的一致性的难度、以及所述应用仅在客户端侧、基于具有客户端前端的服务器侧、还是基于客户端侧的应用和基于服务器的应用的组合;
如果用户交互将在客户端侧处理,则调用客户端侧动作处理程序;以及
如果用户交互将在服务器侧处理,则请求服务器侧动作处理程序处理该交互。
2.如权利要求1所述的计算机实现的方法,其中请求服务器侧动作处理程序处理交互包括:
确定用户交互包含同步动作还是异步动作;以及
基于所述确定请求同步服务器侧动作处理程序或异步服务器侧动作处理程序之一来处理该交互。
3.如权利要求1所述的计算机实现的方法,其中,动态地确定在客户端侧还是在服务器侧处理识别出的用户交互包括:利用规则仓库来确定在客户端侧还是服务器侧处理识别出的用户交互。
4.如权利要求3所述的计算机实现的方法,其中,所述规则仓库包括主键,其映射到具体的交互。
5.如权利要求3所述的计算机实现的方法,其中,所述规则仓库包括存储各种不同交互动作的动态表达的规则。
6.如权利要求1所述的计算机实现的方法,还包括:利用用户接口代码从服务器侧计算机接收客户端侧动作处理程序。
7.一种在混搭环境中使用连接应用的连线通过知晓全景的应用间通信基础设施进行通信的计算机系统,其中所述连线包括一个或多个输出元素、输入元素、一个或多个输入区以及一个或多个输出区,其中所述连线包含转换器,所述转换器根据具体实施的定义来翻译信息,由此使能应用之间的通信,所述计算机系统包括:存储器,其存储客户端侧用户接口和客户端侧动作处理程序;以及
一个或多个处理器,其在执行时:
导出所述连线的基于客户端侧的JavaScript表示;
导出所述连线的基于服务器侧的JavaScript表示;
其中所述基于客户端侧的JavaScript表示和所述基于服务器侧的JavaScript表示使用相同的元数据并且共享相同的定义;
通过客户端侧用户接口识别用户交互,该客户端侧用户接口与服务器侧计算机可通信地连接,其中所述用户交互触发从一个应用到另一个应用的导航;
动态地确定在客户端侧还是在服务器侧处理识别出的用户交互,其中所述动态地确定根据多个准则的全部来进行,所述准则包括处理能力、往返数量和操作环境、在触发所述导航之前确保应用之间的一致性的难度、以及所述应用仅在客户端侧、基于具有客户端前端的服务器侧、还是基于客户端侧的应用和基于服务器的应用的组合;
如果用户交互将在客户端侧处理,则调用客户端侧动作处理程序;以及
如果用户交互将在服务器侧处理,则请求服务器侧动作处理程序处理该交互。
8.如权利要求7所述的计算机系统,其中所述一个或多个处理器请求服务器侧动作处理程序处理该交互包括该一个或多个处理器:
确定该用户交互包含同步动作还是异步动作;以及
基于所述确定请求同步服务器侧动作处理程序或异步服务器侧动作处理程序之一来处理该交互。
9.如权利要求7所述的计算机系统,其中,所述存储器还存储规则仓库,并且其中所述一个或多个处理器利用该规则仓库来动态地确定在客户端侧还是在服务器侧处理识别出的用户交互。
10.如权利要求9所述的计算机系统,其中,所述规则仓库包括主键,其映射到具体的交互。
11.如权利要求9所述的计算机系统,其中,所述规则仓库包括存储各种不同交互动作的动态表达的规则。
12.如权利要求9所述的计算机系统,所述一个或多个处理器还可操作用于利用用户接口代码从服务器侧计算机接收客户端侧动作处理程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/632,253 US20110137909A1 (en) | 2009-12-07 | 2009-12-07 | Location independent execution of user interface operations |
US12/632,253 | 2009-12-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102087577A CN102087577A (zh) | 2011-06-08 |
CN102087577B true CN102087577B (zh) | 2015-05-20 |
Family
ID=43414223
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010576562.2A Active CN102087577B (zh) | 2009-12-07 | 2010-12-07 | 与位置无关地执行用户接口操作 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20110137909A1 (zh) |
EP (1) | EP2339465B1 (zh) |
JP (1) | JP2011118879A (zh) |
CN (1) | CN102087577B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981914A (zh) * | 2011-09-05 | 2013-03-20 | 联想(北京)有限公司 | 同步方法和电子设备 |
WO2013023440A1 (zh) | 2011-08-15 | 2013-02-21 | 联想(北京)有限公司 | 一种应用管理方法及设备 |
US9152947B2 (en) | 2011-12-05 | 2015-10-06 | Sap Portals Isreal Ltd | Real-time social networking |
US9164990B2 (en) | 2011-12-20 | 2015-10-20 | Sap Portals Israel Ltd | Annotating contextual workspaces |
US9070109B2 (en) | 2012-07-10 | 2015-06-30 | Sap Portals Israel Ltd | Dynamic presentation of a user profile |
US9110752B2 (en) | 2012-07-11 | 2015-08-18 | Sap Portals Israel Ltd | Enterprise portal mobile applications installs |
US9053152B2 (en) | 2012-08-06 | 2015-06-09 | Sap Portals Israel Ltd | Search and context based creation in dynamic workspaces |
US9696885B2 (en) * | 2013-09-20 | 2017-07-04 | International Business Machines Corporation | Integrated user interface using linked data |
US9558287B2 (en) | 2013-09-24 | 2017-01-31 | Sap Portals Israel Ltd. | Automatic removal of inappropriate content |
US9652220B2 (en) | 2015-05-11 | 2017-05-16 | Sap Portals Israel Ltd. | Zero down-time deployment of new application versions |
US9667708B1 (en) | 2015-12-30 | 2017-05-30 | International Business Machines Corporation | Boost orchestrator for client-server architectures |
US10339934B2 (en) | 2016-06-27 | 2019-07-02 | Google Llc | Asynchronous processing of user requests |
US10506078B2 (en) | 2016-06-30 | 2019-12-10 | Sap Portals Israel Ltd. | Centralized overview display generated from annotated data sources |
KR102276895B1 (ko) | 2017-08-17 | 2021-07-12 | 삼성전자주식회사 | 반도체 장치 및 그 이벤트 프로파일링 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5046002A (en) * | 1986-12-01 | 1991-09-03 | Hitachi, Ltd. | Distributed data base access request processing system |
US5757925A (en) * | 1996-07-23 | 1998-05-26 | Faybishenko; Yaroslav | Secure platform independent cross-platform remote execution computer system and method |
CN1835507A (zh) * | 2005-03-17 | 2006-09-20 | 国际商业机器公司 | 用于用户与web浏览器交互的服务器端处理的方法与系统 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2098461A1 (en) * | 1992-06-17 | 1993-12-18 | Antony S. Williams | Method and system for registering data formats for objects |
US6950848B1 (en) * | 2000-05-05 | 2005-09-27 | Yousefi Zadeh Homayoun | Database load balancing for multi-tier computer systems |
US7013340B1 (en) * | 2000-05-18 | 2006-03-14 | Microsoft Corporation | Postback input handling by server-side control objects |
US7155681B2 (en) * | 2001-02-14 | 2006-12-26 | Sproqit Technologies, Inc. | Platform-independent distributed user interface server architecture |
JP3963690B2 (ja) * | 2001-03-27 | 2007-08-22 | 富士通株式会社 | パケット中継処理装置 |
US20030014478A1 (en) * | 2001-06-29 | 2003-01-16 | Noble Alan C. | Dynamically distributed client-server web browser |
US7707317B2 (en) * | 2002-07-01 | 2010-04-27 | Prolifiq Software Inc. | Adaptive electronic messaging |
US20070022155A1 (en) * | 2002-08-22 | 2007-01-25 | Owens David H | Method and system for integrating enterprise software applications with desktop software applications |
US7853699B2 (en) * | 2005-03-15 | 2010-12-14 | Riverbed Technology, Inc. | Rules-based transaction prefetching using connection end-point proxies |
US7370100B1 (en) * | 2003-12-10 | 2008-05-06 | Foundry Networks, Inc. | Method and apparatus for load balancing based on packet header content |
US20080168131A1 (en) * | 2007-01-08 | 2008-07-10 | Microsoft Corporation | Platform for defining single-page web signup facilities |
US7945849B2 (en) * | 2007-03-20 | 2011-05-17 | Microsoft Corporation | Identifying appropriate client-side script references |
US8001551B2 (en) * | 2007-04-24 | 2011-08-16 | Microsoft Corporation | Providing localized resources for client-side script execution |
JP4395178B2 (ja) * | 2007-05-29 | 2010-01-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | コンテンツ処理システム、方法及びプログラム |
US7802071B2 (en) * | 2007-07-16 | 2010-09-21 | Voltaire Ltd. | Device, system, and method of publishing information to multiple subscribers |
CN101159972B (zh) * | 2007-09-12 | 2011-04-20 | 华为技术有限公司 | 业务处理方法和处理系统以及业务控制点 |
CN101572598B (zh) * | 2008-04-28 | 2013-03-06 | 国际商业机器公司 | 用于可靠的快速集成的方法和装置 |
JP5455069B2 (ja) * | 2008-05-14 | 2014-03-26 | 日本電気株式会社 | 情報処理システムと情報処理方法 |
US8584082B2 (en) * | 2008-06-12 | 2013-11-12 | Serena Software, Inc. | System for dynamic discovery, configuration, and development of process-bound widgets |
-
2009
- 2009-12-07 US US12/632,253 patent/US20110137909A1/en not_active Abandoned
-
2010
- 2010-10-18 EP EP10013725.6A patent/EP2339465B1/en active Active
- 2010-10-20 JP JP2010235497A patent/JP2011118879A/ja active Pending
- 2010-12-07 CN CN201010576562.2A patent/CN102087577B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5046002A (en) * | 1986-12-01 | 1991-09-03 | Hitachi, Ltd. | Distributed data base access request processing system |
US5757925A (en) * | 1996-07-23 | 1998-05-26 | Faybishenko; Yaroslav | Secure platform independent cross-platform remote execution computer system and method |
CN1835507A (zh) * | 2005-03-17 | 2006-09-20 | 国际商业机器公司 | 用于用户与web浏览器交互的服务器端处理的方法与系统 |
Also Published As
Publication number | Publication date |
---|---|
CN102087577A (zh) | 2011-06-08 |
EP2339465B1 (en) | 2014-02-26 |
US20110137909A1 (en) | 2011-06-09 |
JP2011118879A (ja) | 2011-06-16 |
EP2339465A1 (en) | 2011-06-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102087577B (zh) | 与位置无关地执行用户接口操作 | |
US11461542B2 (en) | Providing asynchronous general user interface (GUI) input | |
CN106022007B (zh) | 面向生物组学大数据计算的云平台系统及方法 | |
US9119056B2 (en) | Context-driven application information access and knowledge sharing | |
US9395890B2 (en) | Automatic discovery of system behavior | |
CN102043665B (zh) | 知晓系统全景的应用间通信基础架构 | |
US10452607B2 (en) | Reusable transformation mechanism to allow mappings between incompatible data types | |
CN103617066A (zh) | 一种工作流引擎及其实现方法 | |
US20130067100A1 (en) | Multi-desktop interaction using nested remote desktop sessions | |
CN103092581A (zh) | 一种Web前端本地开发环境的搭建方法和装置 | |
US10754628B2 (en) | Extracting web API endpoint data from source code to identify potential security threats | |
US11928166B2 (en) | Data retrieval system and method | |
CN102298617A (zh) | 一种用于获取目标页面的方法与设备 | |
CN104834534A (zh) | 扩展应用程序功能的方法、装置及系统 | |
CN102196027A (zh) | 一种实现移动云服务的系统及方法 | |
Huang et al. | A geospatial hybrid cloud platform based on multi-sourced computing and model resources for geosciences | |
CN115408715A (zh) | 基于区块链和ipfs的异构数据处理系统、方法及设备 | |
US10979515B1 (en) | Resource discovery agent computing device, software application, and method | |
CN114489622A (zh) | 静态资源管理方法、Node.js应用、电子设备和存储介质 | |
US20130111343A1 (en) | Load balancing of user interface script execution | |
KR20220026603A (ko) | 파일 처리 방법, 장치, 전자 기기 및 저장 매체 | |
CN116339715A (zh) | 前端页面构建方法和装置、电子设备及存储介质 | |
CN101236490A (zh) | 一种获取业务逻辑的方法及系统 | |
EP4102361A2 (en) | Method and apparatus for managing functions of a query engine | |
US11775261B2 (en) | Dynamic process model palette |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C53 | Correction of patent of invention or patent application | ||
CB02 | Change of applicant information |
Address after: German Waldo Applicant after: SAP AG Address before: German Waldo Applicant before: SAP AG |
|
COR | Change of bibliographic data |
Free format text: CORRECT: APPLICANT; FROM: SAP AG TO: SAP EUROPE AG |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |