在编译期间将呈现元数据转换成浏览器可渲染格式的制作方法

文档序号:11160939阅读:779来源:国知局
在编译期间将呈现元数据转换成浏览器可渲染格式的制造方法与工艺

计算机系统当前被广泛应用。许多计算机系统具有表单或其他显示机制,通过表单或其他显示机制将计算机系统中的信息呈现给用户。

作为示例,一些计算机系统包括业务系统。业务系统可包括例如企业资源规划(ERP)系统、客户关系管理(CRM)系统、业务线(LOB)系统等。这些类型的系统可具有在不同上下文中呈现给用户的数百或数千种不同的表单。每种表单可具有许多不同的控件。一些表单还具有相关联的逻辑、数据、状态信息和其他行为信息。

业务系统只是这种系统的一个示例。例如,电子邮件或其他消息收发系统,以及电子店面、文档管理系统和大量其他计算机系统同样具有向用户呈现数据的表单或类似机制。

为了开发表单,开发人员通常在开发环境中对表单进行建模。然后经建模的表单被编译成可序列化格式(诸如XML)并被保存到数据存储中。

在运行时期间,表单可被用在基于服务器的系统(诸如基于服务器的业务系统)中。当用户在浏览器中请求表单时,具有需要被打开的表单的名称的请求被发送到服务器。服务器随后使用XML表示来创建并初始化表单及其控件,并且来执行与表单相关联的任何运行时代码。在所有代码已经被执行之后,服务器根据表单可被发送到客户端应用的格式来生成表单,并且将表单发送到客户端。在一些系统中,服务器使用完整表单的描述符来生成表单的表示。例如,服务器可生成表单的JavaScript对象表示法(JSON)表示。JSON表示由浏览器中的代码解释,以生成被用来在浏览器中渲染表单的结构和标记语言格式。因此,服务器生成表单的整体表示并将其传送到客户端以在浏览器中渲染。

提供以上讨论仅用作一般的背景信息,并不旨在用作帮助来确定所要求保护的主题的范围。

概述

在客户端设备上接收对表单的请求。在客户端设备上接收表单的静态表示,其包括定义表单的总体结构的结构信息以及属性信息,并且客户端设备上的浏览器基于静态表示来生成表单的可渲染的标记语言表示。从服务器接收行为和状态信息,并且其被用来增强表单的可渲染版本。然后浏览器渲染表单的增强的、可渲染的版本。

提供本概述以便以简化的形式介绍以下在详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。所要求保护的主题不限于解决在背景中提及的任何或所有缺点的实现。

附图简述

图1是开发环境的一个示例的框图。

图2是解说图1中所示的环境在开发表单时的操作的一个示例的流程图。

图2A示出了在开发环境中生成的用户界面显示的一个示例。

图3是解说基于服务器的运行时环境的一个示例的框图。

图4A和4B(统称为图4)示出了图3所示的基于服务器的运行时环境在渲染由用户所请求的表单时的操作的一个示例。

图5示出了可在图3所示的环境中生成的用户界面显示的一个示例。

图6示出了被置于云计算环境中的图3示出的环境的一个示例。

图7-9示出了移动设备的各种示例。

图10是计算环境的一个示例的框图。

详细描述

图1示出了可被用来开发向用户103显示信息的表单或其他机制的开发环境100的一个示例的框图。开发环境100可包括开发系统102和数据存储104。在图1所示的示例中,示出了开发系统102生成用户界面显示106,用户界面显示106具有供用户103进行交互的用户输入机制108。用户103可以是正在使用开发系统102开发模型或代码并且储存在数据存储104中的开发者。用户103说明性地与用户输入机制108交互以控制并操纵系统102。

开发系统102本身说明性地包括处理器110、用户界面组件112、元数据创作功能114、表单编译器116,并且开发系统102还可包括其他项118。数据存储104说明性地包括由用户102建模的每个表单的静态(例如,标记语言)表单表示120。数据存储104还说明性地包括服务器表示122。静态表单表示120说明性地包括定义对应表单的总体分层结构的结构信息124。静态表单表示120还可包括属性信息126以及其他信息128。另外,在一个示例中,静态表单表示120可包括指示绑定到对应表单的数据源的一些数据绑定信息。

服务器表示122可包括逻辑130、数据和其他数据绑定信息132、对应于表单的状态和行为信息134,并且服务器表示122还可包括其他项136。

在更详细描述环境100的总体操作之前,将首先提供简要概览。用户界面组件112本身或者在开发系统102中的其他项的控制下说明性地生成具有用户输入机制108的用户界面显示106。用户103说明性地使用用户输入机制108以便访问元数据创作功能114来创作表示给定表单的元数据。元数据创作功能114说明性地是在开发系统102中或在另一开发工具中所提供的功能,该功能允许用户103创作定义表单或其他表示机制的元数据或其他数据。出于本讨论的目的,在一个示例中,术语“表单”将被用来意指向用户显示信息的任何机制。

表单编译器116说明性地将用户102在开发表单中输入的元数据编译成静态表单表示120和服务器表示122。静态表示120可说明性地是服务器可以用来将表单发送到请求客户端的表示。例如,静态表示120可以是表单的JSON表示。在一个示例中,静态表示120包含表单控件分层结构(由结构信息124定义)以及可由浏览器在运行时环境中使用的一组属性和其他可选数据绑定信息(由属性信息126定义),以便在浏览器中生成表单的可渲染版本。编译器116还说明性地生成由服务器表示122所表示的表单的标记语言(例如,XML)版本。

因此,如下面参考图3更详细地描述的,在运行时期间,客户端设备上的浏览器可请求来自基于服务器的系统的表单并且将接收静态表示120。然后,客户端可开始构建表单的可渲染版本,同时服务器执行与表单相关联的逻辑130,并且还获得数据132以及任何状态和行为信息134。当服务器请求被完成时,该信息可被发送到客户端设备上的浏览器,在浏览器中该信息与已使用静态表单表示120创建的可渲染版本合并,以获得表单的最终的经渲染版本。

图2是解说图1中所示的环境100在创作并编译表单时的操作的一个示例的流程图。开发系统100首先从用户103接收指示用户103希望访问开发系统103以便开发表单的用户输入。这由图2中的框150指示。例如,这可以是认证信息152或其他信息154。

用户界面组件112随后显示表单创作显示,使得用户103可访问元数据创作功能114以便创作表单。显示表单创作显示由框156指示。其可包括元数据显示158、属性显示160和其他显示部分162。

图2A示出表单创作显示164的一个示例。可以看出,在一个示例中,显示164包括允许开发者查找各种表单的浏览器显示部分166。显示164还说明性地包括允许开发者创作元数据的元数据显示部分158。图2A中所示的示例示出了表示表单的分层元数据结构168的一个示例。预览部分170示出了当由元数据结构168表示的表单在运行时期间被渲染时,该表单将看起来像什么的预览。

开发系统102接收元数据创作功能114上的输入以便创作表单。这由图2的流程图中的框172指示。因此,开发者可修改或添加到元数据结构168以进一步开发一般在170处显示的表单。

在某一时刻,表单编译器116编译创作出的表单。在一个示例中,这可在每当用户保存正在被创作的表单时执行。在另一示例中,编译器116可间歇地或者周期性地自动编译表单。当然,编译也可在其他时间执行。接收指示表单编译器116将编译表单的编译输入由图2的流程图中的框174指示。

然后,如框166所示,表单编译器116编译创作出的表单。在这样做时,如上所讨论的,表单编译器116生成静态表单表示120、服务器表示122,并且表单编译器116还可生成其他项178。编译器116反射分层结构168中的元数据以生成表单的静态版本120。例如,静态版本120可使用JSON字符串或其他描述符来表示,所示其他描述符可由将渲染表单的运行时浏览器理解。在任何情况下,静态表示120可被浏览器使用来创建作为经建模的表单的完整表示的标记语言表单(例如,HTML表单),但是不具有表单的逻辑结果、所有数据绑定、以及状态和行为信息。此信息将由服务器在运行时期间提供。

下面的表1示出了表示图2A中所示的示例表单的静态表单表示204的经编译文件的一个示例。为了生成静态表示,表单编译器116在经建模的元数据结构168上反射并且生成表单的静态表示。“静态”意味着该表示不包括与表单相关联的逻辑或代码的结果。在一个示例中,静态表示是JSON表示,但它也可以是其他表示。在表1中可以看出,该表示包括控件层次结构和属性,所述控件层次结构和属性被需要以创建视觉上有效的表单的表示。该表示还可任选地包括一些数据绑定信息。这是作为编译表单时的中间步骤来完成的。

表1

然后,表单编译器116将经编译的表单储存在数据存储104中,以供运行时使用。这由图2中的框180指示。

图3是基于服务器的运行时环境182的一个示例的框图。环境182说明性地包括服务器环境184、客户端设备186和数据存储188。图3所示的示例示出了客户端设备186生成用户界面显示190以供显示用于用户194的交互的表单192。

服务器环境184说明性地包括一个或多个处理器196、应用服务器组件198、表单处理组件200,并且服务器环境184还可包括其他项202。数据存储188说明性地储存由应用服务器组件198运行的应用所使用的表单的静态表单表示204和服务器表示206。数据存储188还可包括数据源208以及其他项210。客户端设备186说明性地包括浏览器210,其包括表单渲染组件212。客户端设备186还可包括处理器214、用户界面组件216、显示设备218,并且客户端设备186还可包括其他项220。在更详细描述环境182的总体操作之前,将首先提供简要概览。

应用服务器组件198说明性地运行使用由储存在数据存储188中的各种表示和数据表示的表单和数据的应用(诸如业务系统应用或其他应用)。表单处理组件200说明性地处理对表单的请求。客户端应用组件213说明性地运行由应用服务器组件198伺服的应用的客户侧部分。因此,用户194可通过客户端应用213请求表单192的显示。例如,用户界面组件216本身或者在其他项的控制下说明性地在客户端设备186上的显示设备218上生成用户界面显示190。

当用户194请求表单192的呈现时,浏览器210将该请求提供给服务器环境184。表单处理组件200检索所请求的表单的静态表单表示204,并将其直接提供给客户端设备186。表单渲染组件212使用静态表单表示来生成标记语言、所请求的表单的可渲染版本。该表单的可渲染版本将说明性地是表单的完整渲染,将要运行的关于表单的任何逻辑的结果越少,由应用服务器组件198基于服务器表示206生成的行为和状态信息(以及一些数据和数据绑定)就越少。服务器表示206被提供给应用服务器组件198,在应用服务器组件198处生成了其他信息,例如,运行与表单相关联的逻辑,获得数据和数据绑定,获得行为和状态信息等。然后该附加信息被提供以形成渲染组件212,其中该附加信息与已经由表单渲染组件212生成(或正在被生成)的表单的可渲染版本合并。一旦合并,整个表单就被浏览器210内的表单渲染组件212渲染,以供向用户194显示。

图4A和4B(统称为图4)示出了解说基于服务器的运行时环境182的操作的一个示例的流程图。服务器环境184首先接收访问基于服务器的应用的用户输入。这由图4的框230指示。这可以采用认证信息232或其他信息234的形式。

客户端应用组件213结合应用服务器组件198随后生成允许用户194来控制并操纵基于服务器的应用的用户界面显示190。在某一时刻,用户194将提供请求给定表单192的显示的输入。接收这样的输入由图4的流程图中的框236指示。

该请求将说明性地由浏览器210提供至服务器环境184中的表单处理组件200。然后,表单处理组件200检索所请求的表单的静态表单表示204,并将其提供到客户端设备186上的表单渲染组件212。表单处理组件200还说明性地获得所请求的表单的服务器表示206,并且将服务器表示206提供给应用服务器组件198,使得组件198能够执行获得动态信息所需的任何服务器侧处理,该动态信息被用来完整地渲染该表单,包括表单的当前数据、状态信息、行为信息等。检索服务器表示206和静态表单表示204并将它们提供给客户端设备186中的服务器环境184分别由图4中的框238所指示。

在图4中的这一点上,在客户端设备186和服务器环境184两者上开始处理。客户端186上的浏览器210中的表单渲染组件212接收所请求的表单的静态表示。这由框240指示。然后,表单渲染组件212执行静态表示的任何必要的转换,以获得表单结构的可渲染版本及其属性。这由框242指示。此时在处理中生成的表单是该表单的完整工作版本,但其不包括由服务器提供的信息(如果有的话)。

同时,请求由表单处理组件200发送到应用服务器组件198,以请求任何附加的状态或行为信息,并请求服务器组件198执行与表单相关联的任何逻辑并为所请求的表单获得任何附加数据(如果存在的话)。在图4中的框244指示在应用服务器组件198处接收请求。然后,应用服务器组件198执行获得该附加信息(如果有的话)所需的各种操作。这由框256指示。然后,应用服务器组件198将数据、逻辑结果、行为和状态信息等发送到在浏览器210中表单渲染组件212。这由框248指示。被生成并发送到表单渲染组件212的表单的服务器表示可以是具有与静态表示相同的格式的描述符格式的表单的完整表示。因此,动态信息(例如数据、状态信息、行为信息、逻辑结果等)可被组件212标识为增量并且作为增量被应用。在另一示例中,从服务器发送的描述符可仅表示来自所请求表单的已创建的可渲染版本的增量(或变化)。在任一情况下,框250指示了在表单渲染组件212处接收来自服务器的该信息。

然后,表单渲染组件212利用从应用服务器组件198接收的任何信息来增强所请求表单的已创建的可渲染版本。这是通过将该信息与已创建的表单合并来完成的,以便获得经更新的可视化和所请求的表单的状态。这由框252指示。该合并说明性地通过将从服务器发送的动态信息所获得的增量应用于已创建的表单来完成。然后,表单渲染组件212在浏览器210中渲染所请求的表单,以在用户界面显示190上显示给用户194。渲染表单由框254指示。

图5A示出用户界面显示256的一个示例。用户界面显示256示出了上文参考图2A和表1所描述的经渲染的表单的示例。一旦为用户194渲染所请求的表单,用户就可以与该表单进行交互(诸如通过填充字段、激活显示的控件等)。表示这些用户交互的信息可被传送到应用服务器组件198用于处理。例如,该信息可能表示一些用户交互可能将调用进一步的逻辑操作或运行与表单相关联的业务逻辑或其他代码。该信息还可能表示用户交互可能以其他方式调用服务器侧处理。如果是这种情况,则处理返回至框246,在框246,应用服务器组件198执行由用户交互触发的处理。然后,应用服务器组件198将该处理的结果发送回浏览器210中的渲染组件212,使得结果可被渲染。然而,将注意到,在一个示例中,修改以表示来自现有表单的变化的增量的形式而不是作为全新的表单表示被发送。以这种方式,表单渲染组件212可将增量应用于表单的经渲染版本,而不必重新计算表单的整个可渲染版本。在另一示例中,服务器表示表示整个表单,并且客户端上的渲染组件212标识差异(或增量),并将差异(或增量)应用于已生成的表单的可渲染版本。接收用户交互由图4中的框258指示。

可以看出,将创作出的表单编译成静态表示以及其相应的基于服务器的表示可被用来改进表单渲染性能。当浏览器210等待服务器应用组件198运行并执行所有逻辑并且随后将结果返回到浏览器210时,浏览器210中的表单渲染组件212可开始使用该静态表示来为客户侧上的表单创建文档对象模型或其他结构。这两种类型的处理可并行执行。因此,当应用服务器组件198返回表单的任何附加描述符时,仅增量(在已经作为可渲染表单生成的内容与附加信息之间的变化)被应用。描述可作为增量发送,或者该增量可在客户端上被标识。这提高了渲染性能。当用户与表单交互时也可以这样做。

本讨论提到了处理器和服务器。在一个实施例中,处理器和服务器包括具有相关联的存储器和时序电路系统(未分别示出)的计算机处理器。它们是它们所属的系统或设备的功能部分,且由这些系统中的其他组件或项的功能来激活并促成这些功能。

同样,讨论了多个用户界面显示。它们可以采取各种各样的不同形式且可具有布置于其上的各种各样的不同用户可致动输入机制。例如,用户可致动输入机制可以是文本框、复选框、图标、链接、下拉菜单、搜索框,等等。例如,可使用点击设备(诸如跟踪球或鼠标)来致动它们。可使用硬件按钮、开关、操纵杆或键盘、拇指开关或拇指垫等等来致动它们。还可使用虚拟键盘或其他虚拟致动器来致动它们。另外,在其上显示它们的屏幕是触敏屏的情况下,可以使用触摸手势来致动它们。同样,在显示它们的设备具有语音识别组件的情况下,可以使用语音命令来致动它们。

还讨论了数个数据存储。将注意,它们可各自被分解成多个数据存储。它们全部可位于访问它们的系统的本地,全部可以是远程的,或一些可以在本地而其他在远程。本文构想了所有这些配置。

同样,附图示出了具有归属于每一框的功能的多个框。将注意,可以使用更少的框,使得功能由更少的组件来执行。同样,可以使用更多框,其中功能被分布在更多组件之间。

图6是图3中所示的运行时环境182的框图,只是其各元素被置于云计算架构500中。云计算提供了不要求终端用户知晓交付服务的系统的物理位置或配置的计算、软件、数据访问和存储服务。在各个实施例中,云计算通过诸如因特网之类的广域网使用合适的协议来交付服务。例如,云计算提供者通过广域网交付应用,并且它们可以通过web浏览器或任何其他计算组件被访问。架构100的软件或组件以及相对应的数据可被存储在远程位置处的服务器上。云计算环境中的计算资源可以被整合在远程数据中心位置处或者它们可以是分散的。云计算基础结构可以通过共享数据中心来交付服务,即使在用户看来它们是单个访问点。因此,在此所述的组件和功能可以从使用云计算架构的远程位置处的服务提供者来提供。替代地,它们可以从常规的服务器中提供,或者它们可以直接地或以其他方式安装在客户端设备上。

本说明书旨在包括公共云计算和私有云计算两者。云计算(公共和私有两者)提供了基本无缝的资源联营以及对管理和配置底层硬件基础结构的降低的需求。

公共云由供应商管理,并且通常支持使用同一基础结构的多个消费者。此外,与私有云相反,公共云能够将终端用户从管理硬件中释放出来。私有云可由机构本身管理,并且基础结构通常不与其他机构共享。该机构在某种程度上仍然维护着硬件,诸如安装和维修等。

在图6中所示的实施例中,一些项与图3中所示的那些是类似的,并且它们被类似地编号。图6具体地示出服务器环境184和数据存储188可位于云502(可以是公共的、私有的或者其中某些部分是公共的而某些部分是私有的组合)中。因此,用户194使用用户设备186通过云502来访问那些系统。

图6还描绘了云架构的另一实施例。图6示出还构想了环境182的某些元素可被置于云502中而其他元素没有被置于云502中。作为示例,数据存储188可被置于云502的外部,并且通过云502来被访问。在另一实施例中,表单处理组件200也可在云502的外部。无论它们位于哪里,它们都可直接由设备186通过网络(广域网或局域网)访问,它们可由服务主存在远程站点处,或者它们可作为通过云来提供或通过驻留在云中的连接服务来访问的服务。本文构想了所有这些架构。

还要注意,环境182或其部分可被置于各种不同的设备上。这些设备中的某些包括:服务器、台式计算机、膝上型计算机、平板计算机、或其他移动设备,诸如掌上计算机、蜂窝电话、智能电话、多媒体播放器、个人数字助理等。

图7是可被用作其中可部署本发明的系统(或其部分)的用户或客户的手持式设备16的手持式或移动计算设备的一个说明性实施例的简化框图。图8-9是手持式或移动设备的示例。

图7提供了客户端设备16的组件的大体框图,该客户端设备16可以运行环境100或182的组件或者与这些环境交互、或二者。在设备16中,提供了通信链路13,该通信链路允许手持设备与其他计算设备通信,并且在一些实施例中提供用于诸如通过扫描来自动接收信息的信道。通信链路13的示例包括:红外端口、串行/USB端口、诸如以太网端口之类的电缆网络端口、以及允许通过一个或多个通信协议的通信的无线网络端口,所述通信协议包括作为用于提供对网络的蜂窝接入的无线服务的通用分组无线服务(GPRS)、LTE、HSPA、HSPA+、以及其他3G和4G无线电协议、1Xrtt和短消息服务,并包括提供对网络的本地无线连接的802.11和802.11b(WiFi)协议、和蓝牙协议。

根据其他实施例,应用或系统被容纳在连接到可移动安全数字(SD)卡接口15的SD卡上。SD卡接口15和通信链路13沿总线19与处理器17(也可实现来自图1和3的处理器110、196或214)进行通信,该总线19还连接到存储器21和输入/输出(I/O)组件23、以及时钟25和定位系统27。

在一个实施例中,提供了I/O组件23以促成输入和输出操作。针对设备16的各个实施例的I/O组件23可以包括:输入组件,比如按钮、触摸传感器、多点触摸传感器、光学或视频传感器、语音传感器、触摸屏、邻近传感器、话筒、倾斜传感器以及重力开关;以及输出组件,比如显示设备、扬声器和或打印机端口。也可以使用其他I/O组件23。

时钟25说明性地包括输出时间和日期的真实时间时钟组件。时钟还可以说明性地为处理器17提供时序功能。

定位系统27说明性地包括输出设备16的当前地理位置的组件。这例如可以包括全球定位系统(GPS)接收机、LORAN系统、航位推算系统、蜂窝三角测量系统或者其他定位系统。这例如还可以包括生成所期望的地图、导航线路和其他地理功能的测绘软件或导航软件。

存储器21存储操作系统29、网络设置31、应用33、应用配置设置35、数据存储37、通信驱动程序39以及通信配置设置41。存储器21可以包括所有类型的有形易失性和非易失性计算机可读存储器设备。其还可以包括计算机存储介质(下面描述)。存储器21存储计算机可读指令,所述指令在被处理器17执行时致使处理器根据所述指令执行计算机实现的步骤或功能。类似地,设备16可具有可运行各种业务应用的客户端应用组件213和浏览器210。处理器17可以也被其他组件激活以促成它们的功能性。

网络设置31的示例包括诸如代理信息、因特网连接信息以及测绘之类的事物。应用配置设置35包括为特定企业或用户定制应用的设置。通信配置设置41提供了用于与其他计算机进行通信的参数,并且包括诸如GPRS参数、SMS参数、连接用户名和口令之类的项目。

应用33可以是之前已经存储在设备16上的应用或是在使用期间安装的应用,但是这些应用可以是操作系统29的一部分,或者也可以在设备16之外被托管。

图8示出其中设备16是平板计算机600的一个实施例。在图8中,计算机600被示为具有用户界面显示屏602。屏幕602可以是触摸屏(使得来自用户手指的触摸姿势可以用于与应用交互)或者启用笔的界面,其接收来自笔或指示笔的输入。其还可以使用屏幕上虚拟键盘。当然,其还例如可以通过诸如无线链路或USB端口之类的合适的附连机制附连到键盘或其他用户输入设备。计算机600还可以说明性地接收语音输入。

还可使用设备16的附加示例。例如,设备16可以是智能电话或移动电话45。电话可包括:一组小键盘,其用于拨打电话号码;显示器,其能够显示包括应用图像、图标、网页、照片和视频在内的图像;以及控制按钮,其用于选择在显示器上示出的项目。电话可包括天线,该天线用于接收诸如通用分组无线服务(GPRS)和1Xrtt之类的蜂窝电话信号以及短消息服务(SMS)信号。在一些示例中,所述电话还包括容纳安全数字(SD)卡的SD卡槽。

该设备也可以是个人数字助理(PDA)或多媒体播放器或平板计算设备等等(在此称为PDA)。PDA可包括电感屏,所述电感屏感测指示笔(或其他指示器,诸如用户的手指)在该指示笔被置于屏幕之上时的位置。这允许用户在屏幕上选择、突出显示和移动项目以及绘图和书写。PDA还可包括多个用户输入键或按钮,其允许用户将显示器上所显示的菜单选项或其他显示选项滚屏,并且允许用户在没有接触显示器的情况下改变应用或选择用户输入功能。尽管未被示出,但是PDA可以包括允许与其他计算机进行无线通信的内置天线和红外发射机/接收机、以及允许与其他计算设备的硬件连接的连接端口。这样的硬件连接通常是通过经由串行或USB端口连接到其他计算机的支架来完成的。因此,这些连接是非网络连接。

图9是智能电话71的一个示例。智能电话71具有显示图标或磁贴或其他用户输入机制75的触敏显示器73。机制75可由用户用来运行应用、进行呼叫、执行数据传输操作,等等。一般而言,智能电话71被构建在移动操作系统上且提供比功能电话更高级的计算能力和连接性。

注意,设备16的其他形式是可能的。

图10是可在环境100和182中使用的计算环境的一个示例。参考图10,用于实现一些实施例的示例系统包括计算机810形式的通用计算设备。计算机810的组件可包括,但不限于,处理单元820(可以包括处理器110、196或214)、系统存储器830和将包括系统存储器在内的各种系统组件耦合至处理单元820的系统总线821。系统总线821可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、外围总线和使用各种总线架构中的任一种的局部总线。作为示例而非限制,这样的架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也称为夹层(Mezzanine)总线)。参考图1描述的存储器和程序可被部署在图10的对应部分中。

计算机810通常包括各种计算机可读介质。计算机可读介质可以是能由计算机810访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质不同于且不包括已调制数据信号或载波。计算机存储介质包括硬件存储介质,该硬件存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法和技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其他存储器技术、CD-ROM、数字多功能盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁性存储设备、或能用于存储所需信息且可以由计算机810访问的任何其他介质。通信介质通常具体化计算机可读指令、数据结构、程序模块或传输机制中的其他数据,并包括任何信息递送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述任何组合也应该包括在计算机可读的介质范围内。

系统存储器830包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)831和随机存取存储器(RAM)832。包含诸如在启动期间帮助在计算机810内的元件之间传输信息的基本例程的基本输入/输出系统833(BIOS)通常存储在ROM 831中。RAM 832通常包含处理单元820可立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制,图10例示出了操作系统834、应用程序835、其他程序模块836和程序数据837。

计算机810还可以包括其他可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图10示出了从不可移动、非易失性磁性介质读取或向其写入的硬盘驱动器841和从诸如CD ROM或其他光学介质等可移动、非易失性光盘856读取或向其写入的光盘驱动器855。可在示例性操作环境中使用的其他可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器841通常通过诸如接口840等不可移动存储器接口连接到系统总线821,而光盘驱动器855则通常由诸如接口850等可移动存储器接口连接至系统总线821。

作为替换或补充,本文所述的功能可至少部分地由一个或多个硬件逻辑组件来执行。例如、但非限制,可使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、程序专用的集成电路(ASIC)、程序专用的标准产品(ASSP)、片上系统系统(SOC)、复杂可编程逻辑器件(CPLD)、等等。

上文讨论并在图10中示出的驱动器及其相关联的计算机存储介质为计算机810提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。例如,在图10中,硬盘驱动器841被示为存储操作系统844、应用程序845、其他程序模块846和程序数据847。注意,这些组件可与操作系统834、应用程序835、其他程序模块836和程序数据837相同,也可与它们不同。在此操作系统844、应用程序845、其他程序模块846以及程序数据847被给予了不同的编号,以至少说明它们是不同的副本。

用户可以通过诸如键盘862、话筒863以及诸如鼠标、跟踪球或触摸垫等定点设备861等输入设备来将命令和信息输入至计算机810中。其他输入设备(未示出)可以包括操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等。这些以及其他输入设备通常通过耦合到系统总线的用户输入接口860连接到处理单元820,但也可通过诸如并行端口、游戏端口或通用串行总线(USB)之类的其他接口和总线结构来连接。视觉显示器891或其他类型的显示设备也经由诸如视频接口890之类的接口连接至系统总线821。除了监视器以外,计算机还可包括诸如扬声器897和打印机896之类的其他外围输出设备,它们可通过输出外围接口895来连接。

计算机810使用到诸如远程计算机880等一个或多个远程计算机的逻辑连接在网络化环境中操作。远程计算机880可以是个人计算机、手持设备、服务器、路由器、网络PC、对等设备或其他常见的网络节点,且一般包括以上关于计算机810描述的多个或所有的元件。图10中所示的逻辑连接包括局域网(LAN)871和广域网(WAN)873,但也可以包括其他网络。此类联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。

当在LAN联网环境中使用时,计算机810通过网络接口或适配器870连接到LAN 871。当在WAN联网环境中使用时,计算机810通常包括调制解调器872或用于通过诸如因特网等WAN 873建立通信的其他手段。调制解调器872可以是内置的或外置的,可经由用户输入接口860或其他适当的机制连接到系统总线821。在联网环境中,相关于计算机810所示的程序模块或其部分可被存储在远程存储器存储设备中。作为示例而非限制,图10示出了远程应用程序885驻留在远程计算机880上。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其他手段。

还应注意,本文描述的不同实施例可以按不同的方式来组合。即,一个或多个实施例的各部分可以与一个或多个其他实施例的各部分组合在一起。本文中构想了所有这些。

示例1是一种计算系统,包括:

显示设备;以及

在客户端设备上的表单渲染组件,所述表单渲染组件被配置成从服务器获得表示所述表单上的显示元素的结构的表单的静态表示,生成所述表单的可渲染表示,将从所述服务器接收到的所述表单的动态信息合并到所述表单的可渲染表示中以获得表单可视化,并且在所述显示设备上渲染所述表单可视化。

示例2是任何以及所有前述示例的计算系统,其中所述表单渲染组件被配置成接收所述动态信息,并且在合并所述动态信息之前,将所述可渲染表示与所述动态信息之间的差异应用于所述可渲染表示以获得所述表单可视化。

示例3是任何以及所有前述示例的计算系统,其中所述表单渲染组件接收所述动态信息作为所述表单的服务器表示,并且标识要应用于所述可渲染表示的差异。

示例4是任何以及所有前述示例的计算系统,其中所述表单渲染组件从所述服务器接收具有由所述服务器标识的差异的所述动态信息。

示例5是任何以及所有前述示例的计算系统,其中所述表单渲染组件从所述静态表示生成所述表单的可渲染表示作为没有所述动态信息的所述表单的功能表示。

示例6是任何以及所有前述示例的计算系统,其中所述表单渲染组件包括所述客户端设备上的浏览器。

示例7是任何以及所有前述示例的计算系统,且进一步包括:

客户端应用组件,所述客户端应用组件被配置成接收请求显示表单的用户输入,并且向所述服务器发送请求以获得所述表单的静态表示,并向所述服务器发送请求以获得所述动态信息。

示例8是一种计算系统,包括:

在服务器上的应用服务器组件,所述应用服务器组件被配置成从客户端接收请求表单的客户端请求,并且作为响应向所述客户端发送所述表单的静态表示;以及

在所述服务器上的表单处理组件,所述表单处理组件被配置成基于所述客户端请求来生成所述表单的动态信息,并且将所述动态信息与所述静态表示分开地发送到所述客户端。

示例9是任何以及所有前述示例的计算系统,其中所述应用服务器组件被配置成以描述所述表单的功能表示的描述符格式发送所述表单的静态表示。

示例10是任何以及所有前述示例的计算系统,其中所述表单处理组件被配置成以所述描述符格式来生成所述动态信息。

示例11是任何以及所有前述示例的计算系统,其中所述表单处理组件被配置成获得不同于所述表单的静态表示的所述表单的服务器表示,并且从所述服务器表示生成所述动态信息。

示例12是如权利要求11所述的计算系统,其中所述表单处理组件被配置成通过获得填充所述表单的数据来生成所述动态信息。

示例13是任何以及所有前述示例的计算系统,其中所述表单处理组件被配置成生成所述动态信息以包括指示所述表单上的控件的状态的表单状态信息。

示例14是任何以及所有前述示例的计算系统,其中所述表单处理组件被配置成通过运行与所述表单相对应的运行时逻辑来生成所述动态信息,以获得逻辑结果。

示例14是一种方法,包括:

在开发系统中接收指示定义表单的元数据的表单创作输入;

基于所述元数据来生成所述表单的静态表示,所述表单的静态表示包括指示所述表单上的控件结构的结构信息和指示所述表单的属性的属性信息;以及

基于所述元数据来与所述静态表示分开地生成所述表单的服务器表示,所述服务器表示指示所述表单的动态信息。

示例15是任何以及全部前述示例的方法,并且进一步包括:

接收编译用户输入并且响应于编译用户输入来生成所述静态和服务器表示。

示例16是任何以及全部前述示例的方法,并且进一步包括:

在数据存储中保存所述静态和服务器表示以用于运行时访问。

示例17是任何以及全部前述示例的方法,其中生成所述静态表示包括:

反射元数据以标识所述结构信息和所述属性信息。

示例18是任何以及全部前述示例的方法,其中生成所述静态表示包括:

基于所述静态表示,利用足够用于渲染所述表单的功能版本的信息来生成所述静态表示。

示例19是任何以及所有前述示例的方法,其中生成所述静态表示包括生成描述符格式的所述静态表示,并且其中生成所述服务器表示包括生成描述符格式的所述服务器表示。

示例20是任何以及全部前述示例的方法,并且进一步包括:

基于所述静态表示,在所述开发系统中显示所述表单的表单预览。

尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1