CN107003867B - 使用区段以用于跨平台的应用的定制 - Google Patents

使用区段以用于跨平台的应用的定制 Download PDF

Info

Publication number
CN107003867B
CN107003867B CN201580061794.5A CN201580061794A CN107003867B CN 107003867 B CN107003867 B CN 107003867B CN 201580061794 A CN201580061794 A CN 201580061794A CN 107003867 B CN107003867 B CN 107003867B
Authority
CN
China
Prior art keywords
section
computing system
metadata
user interface
call
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
Application number
CN201580061794.5A
Other languages
English (en)
Other versions
CN107003867A (zh
Inventor
A·阿格廷
J·莫藤森
S·克里斯南
J·格雷罗戈麦斯
D·J·朗德
R·A·德罗林杰
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 CN107003867A publication Critical patent/CN107003867A/zh
Application granted granted Critical
Publication of CN107003867B publication Critical patent/CN107003867B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

基于客户端的应用包括用于定义系统的用户界面显示的区段。这些区段可以由后端系统定制,因此定制被移动应用的经修改的版本所适应。

Description

使用区段以用于跨平台的应用的定制
背景技术
计算机系统目前正在广泛使用。一些这样的计算机系统由制造商出售,然后在它们针对给定组织被部署之前被大量定制。
作为示例,一些企业计算机系统由计算机系统制造商生成。然后,它们在被部署在企业组织处之前经常被多个不同个体修改。例如,由制造商出售的基本计算机系统可以由独立的软件供应商(ISV)、各种不同的开发者、以及甚至组织处将最终部署它的开发者修改。这可以被做到,因为个体组织的需求可能与其他组织不同。因此,组织更改或定制系统以符合它们的个体需求。
这些类型的计算机系统的一些示例包括电子邮件系统、协作系统、业务系统(诸如客户关系管理系统、企业资源规划系统、业务线系统等)、文档共享系统、数据库管理系统和各种各样的其他系统。在使用这些类型的计算机系统的一些架构中,后端计算机系统被用来执行针对计算机系统的处理中的一些处理。然而,用户通过各种客户端设备与后端系统交互,客户端设备诸如移动设备(智能电话,诸如平板式手机、平板电脑等的具有大屏幕的智能电话)、膝上型计算机、台式计算机等。客户端设备(诸如移动设备)中的一些客户端设备运行该客户端设备用于连接到整个系统的基于客户端的应用(诸如移动应用)。移动应用使得用户能够使用其移动设备容易地访问和将数据输入到后端系统。
这种类型的架构存在某些挑战。例如,在后端系统被定制的情况下,移动应用可能需要被重新配置以便与后端系统适当地交互。一些移动应用通过允许用户使用移动应用的内置功能或通过设置仅对其更改来解决此问题。其他移动应用提供对移动应用的源代码的访问,从而允许组织对其更改并创建移动应用的定制的版本。
所有这些不同的机制都存在显著的缺点。一些机制限制了系统对于内置功能或者对于由底层框架支持的控件和模式的灵活性。一些其他机制(在对源代码的更改被做出的情况下)当对移动应用或后端系统的原始版本进行更改时需要软件供应商处理以及可能重新实现应用或者甚至后端系统。
上面的讨论仅被提供用于一般背景信息,并且不旨在用于确定所要求保护的主题的范围中的辅助。
发明内容
基于客户端的应用包括用于定义系统的用户界面显示的区段。这些区段可以由后端系统定制,因此定制被移动应用的单个版本所适应。
本发明内容被提供为以简化形式介绍概念的选择,其在下面的具体实施方式中被进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用作帮助确定所要求保护的主题的范围中的辅助。所要求保护的主题不限于解决背景技术中指出的任何或所有缺点的实现。
附图说明
图1A和1B(在此统称为图1)示出了计算系统架构的框图的一个示例。
图1C示出了一组区段元数据的框图的一个示例。
图2A和2B(在此统称为图2)示出了图1所示的架构在生成具有区段的用户界面显示中的操作的流程图的一个示例。
图3A-3C示出了具有区段的用户界面显示的各种示例。
图4A和4B(在此统称为图4)示出了图示图1的架构中的移动设备的操作的一个示例的流程图。
图5是其中区段被多个后端计算系统支持的架构的框图。
图6是其中区段在多个不同的移动应用中被重用的架构的框图。
图7是被部署在云计算架构中的、图1所示的架构的一个示例的框图。
图8-10示出了移动设备的示例。
图11是能够被用在先前图中的架构中的任何架构中的计算环境的一个示例的框图。
具体实施方式
图1是计算系统架构100的一个示例的框图。架构100说明性地包括计算系统102(其可以是后端计算系统)、多个移动设备104-106、一个或多个其他客户端设备107、管理设备108和应用商店系统110。系统102和110可以由设备104、106、107和108通过网络112访问。网络112可以是局域网、广域网、近场通信网络、蜂窝网络、各种各样的其他网络、或这种网络的任何组合。
在一个示例中,移动设备104-106和客户端设备107中的每一个包括应用组件114,应用组件114运行基于客户端的应用(例如,移动应用),其允许对应的移动设备或客户端设备与计算系统102交互。基于客户端的应用说明性地生成用户界面显示116-118,其具有用于用户124-126的交互的对应的用户输入机构120-122。用户124-126说明性地与用户输入机构120-122交互,以便通过基于客户端的应用来控制和操纵计算系统102。
管理设备108说明性地生成具有用于管理员132的交互的用户输入机构130的管理用户界面显示128。管理员132说明性地与用户输入机构130交互,以便在计算系统102中执行管理操作。如图1所示的各种设备和系统可以说明性地从应用商店系统110访问和下载应用。
在描述架构100在生成具有区段的用户界面显示中的操作之前,将首先描述架构100中的项目中的一些项目的简要概述及其操作。在一个示例中,计算系统102是后端计算系统,其包括一个或多个处理器或服务器134、用户界面组件136、区段访问系统138、区段定义/定制系统140、区段存储库143(其包括定义多个不同区段的区段定义元数据145和147)、数据存储库149,并且其也可以包括其他项目150。区段访问系统138说明性地允许各种设备上的移动应用(或其他基于客户端的应用)访问由区段定义元数据145和147定义的区段,以便生成用户界面显示。
在图1所示的示例中,系统138说明性地包括上下文标识组件141、控件标识组件142、数据标识组件144、保存处理组件146、定制逻辑组件148,并且其可以包括其他项目151。上下文标识组件141说明性地标识从移动设备或其他客户端接收到的、请求对区段的访问的调用的上下文。控件标识组件142标识在所请求的区段上定义的控件,并且数据标识组件144标识绑定到那些控件的数据。定制逻辑组件148可以被用于对数据执行定制处理,并且当保存操作由移动设备或其他客户端请求时,保存处理组件146说明性地处理它们。系统138说明性地开放了可以由移动设备或其他客户端设备使用的应用编程接口(API)152。
区段定义/定制系统140可以被使用(例如,由管理员132),以便定义新的区段或者为部署系统102的特定组织定制区段。因此,系统140说明性地包括区段定义生成器154、区段定义修改器156,并且其可以包括其他项目158。区段定义生成器154包括允许管理员132定义各个区段并将它们保存到区段数据存储库143的功能。区段定义修改符156包括允许管理员132修改用于保存在数据存储库143中的各个区段的区段定义元数据的功能。应当注意,管理员132不需要被认为是特定用户角色的定义,而是对能够管理、更改、配置或定制区段定义或其他区段元数据等的用户的引用。这可能包括例如后端系统开发者、ISV、系统管理员等。
数据存储库149说明性地存储一组表单160、应用162、过程164、工作流166、实体168,并且其可以存储其他项目170。数据存储库149还可以包括一组区段172-174,它们分别包括区段元数据,该区段元数据定义控件、数据绑定和/或要被显示在用户界面显示的给定区段中的其他项目。
应用162可以说明性地由处理器或服务器134运行以实现过程164或工作流166。它们可以对可以表示系统102内的数据项的实体168执行操作。在其中系统102是企业资源规划系统或客户关系管理系统的示例中,例如,实体168可以定义和表示那些系统内的项目。例如,客户实体可以定义和表示客户。产品实体可以定义和表示产品。报价实体可以定义和表示对潜在客户作出的报价。机会实体可以定义和表示在系统内被跟踪的商业机会。这些仅是示例,并且各种各样的其他或不同的实体也可以被使用。
在图1所示的例子中,移动设备104的一个示例可以是智能电话或移动电话。在另一示例中,移动设备106可以是平板计算机或另一计算机。其他客户端计算设备107可以是台式计算机、膝上型计算机等。
在图1所示的例子中,移动设备104说明性地包括处理器172、用户界面组件174、数据存储库176(其可以存储一个或多个应用178)、后端连接组件180、应用组件114、显示设备182,并且其可以包括其他项目184。应用组件114可以说明性地被用于在移动设备104上运行应用178。组件114可以说明性地包括元数据解析组件186、区段请求组件188、区段渲染组件190、应用上下文标识符192、编辑处理组件194,并且其可以包括其他功能196。
后端连接组件180被应用说明性地用于连接到计算系统102。区段请求组件188说明性地请求可用于渲染用户界面显示的区段。应用上下文标识符192可以被用于标识给定应用的上下文(诸如应用的身份、应用上什么表单是打开的等),使得上下文信息能够与区段请求一起被发送。
元数据解析组件186说明性地解析从系统102接收到的、对应于给定区段的元数据。元数据可以标识用于该区段的各种控件和数据绑定,并且区段渲染组件190说明性地基于所解析的元数据来渲染该区段。区段内的数据可以是可编辑的。当用户124在给定表格或其他用户界面显示上编辑数据时,编辑处理组件194接收编辑该数据的用户输入,并且可以被用于将那些编辑的指示提供回系统102,在系统102处它们由区段访问系统138中的保存处理组件146处理。当数据为只读时,则不需要保存组件和编辑组件。下面关于图8-10来提供各种移动设备的附加特征的描述。
管理设备108说明性地包括处理器198、数据存储库200、区段配置系统202、用户界面组件204,并且其也可以包括其他项目206。区段配置系统202说明性地包括允许管理员132配置数据存储库143中的各个区段的功能。管理员132因此可以说明性地定制区段。管理员132还可以说明性地编写可以由定制逻辑组件148在各个区段中的数据上运行的定制代码或逻辑。
图1C是可以被用于定义区段的一组区段定义元数据145的一个示例。在图1C所示的示例中,区段定义元数据145说明性地包括唯一地标识被定义的区段的区段标识符(或区段ID)221。它可以包括定义行为的元数据223,客户端应用将使用该行为以在要出现在该区段中的各种控件中显示数据。例如,控件可以包括图表、网格、表格、文本框、复选框、或各种各样的其他控件。元数据145还说明性地包括定义将数据绑定到控件的数据绑定225的元数据。区段定义元数据145也可以包括其他项目227。
图2A和2B(在此统称为图2)示出了架构100使用区段在移动设备上生成用户界面显示中的操作的流程图的一个示例。在一个示例中,移动设备104的用户124首先提供允许移动设备104从应用商店系统110接收和安装移动应用178的输入。这由框210指示。例如,用户124可以使用浏览器将移动设备104导航至应用商店系统110上的页面。然后,用户124可以使用各种不同类型的下载机制中的任一种从应用商店系统110下载应用。用户124还因此说明性地提供输入,使得处理器172将应用178安装在移动设备104上,使得其能够被使用。
然后,移动设备104接收启动应用178的用户输入(或其他输入)。这由图2中的框212指示。例如,用户124可以输入认证信息214并启动应用。用户可以提供其他输入,或其他计算系统可以提供输入以启动应用178。这由框216指示。
在某个点处,在应用178的操作期间,应用178将被控制以生成和渲染用户界面显示(诸如表单160),其至少部分由一个或多个区段定义。这由框218指示。在该点处,区段请求组件188使用应用上下文标识符192来标识指示应用178的上下文的各种上下文信息。它还可以说明性地确定标识表单上要被显示的区段的区段标识符。它还可以标识表单针对其被显示的实体类型,并且它可以获得用于要被显示在用户界面显示(例如,在表单上)上的每个区段的其他标识数据。获得区段ID、实体类型、其他标识数据和上下文信息由图2中的框220指示。
当适当的信息被获得以便标识正被请求的区段时,区段请求组件188使用后端连接组件180来利用用于要被显示的、用户界面显示中的每个区段的信息来调用系统102。这由图2中的框222指示。再次,该调用可以包括应用上下文数据224、区段标识符221、标识用于正被显示的对应表单或用户界面显示的实体类型的实体类型信息226、标识被绑定到该区段的数据的标识数据228,并且其还可以包括用户身份230、标识正在进行调用的设备的类型的设备类型信息(如方框232所示)、或其他信息236。
区段ID 221、应用上下文224、实体类型226、标识数据228、用户身份信息230和设备类型信息232(以及其他信息236)可以由(图1中所示的)系统138中的定制逻辑组件148使用,以生成由系统102返回的区段的定制表示。因此,可以向个体用户、个体设备类型等定制给定区段的特定渲染。这些仅是示例,并且一些在下面被更详细地描述。
作为响应,系统102针对每个区段生成描述控件的元数据以及要在那些控件中显示的数据。系统102在响应调用中的操作将在下面关于图4被更详细地描述。
应当注意,移动设备104不需要等待对调用的响应。相反,它可以继续执行其他处理。
区段渲染组件190针对在向后端系统102的调用中标识的每个区段,通过后端连接组件180最终接收到描述各种控件的元数据,以及要在那些控件中显示的数据。接收该元数据由图2中的框238指示。
然后,元数据解析组件186解析接收到的元数据,以标识特定控件和对应的数据。这由框240指示。
区段渲染组件190然后针对要被显示的每个区段生成所标识的控件。这由框242指示。它在每个对应区段中在页面上显示控件。这由框244指示。然后,它将数据绑定到那些控件以在所显示的控件中显示数据。这由框246指示。
在一个示例中,由系统102返回的元数据不仅描述要显示什么控件和要在它们中显示的数据,而且还指示在每个给定控件中数据是否可由用户124编辑。例如,系统138可以访问一组权限、访问对应于数据的控件设置、或者各种各样的其他信息,以确定用户124是否能够编辑数据。由系统102返回的元数据将因此指示这一点。如果其可编辑,则用户124可以提供修改该数据的编辑输入。确定数据是否可编辑以及接收编辑该数据的编辑用户输入由图2中的框248和250指示。
编辑处理组件194说明性地生成用户输入机构并且通过它们接收允许用户124对所显示的数据执行编辑操作的用户输入。作为一个示例,元数据可以指示字段区段被标记为强制的。如果是这种情况,则可能需要用户在该字段中输入值。也可以进行其他编辑。在某个点处,用户124可能希望保存已经进行的编辑。接收保存输入由框252指示。然后,编辑处理组件194针对已经被编辑的每个区段生成对后端系统102的调用(例如,通过后端连接组件180)。该调用说明性地包括经编辑的数据。利用经编辑的数据生成对后端系统102的调用由图2中的框254指示。
在处理经编辑的数据时,可以是,保存处理组件146简单地将经编辑的数据保存到数据存储库149。然而,也可以是,定制逻辑组件148可以在保存的数据上运行定制逻辑以在被保存之前对其进行修改。因此,在一个示例中,保存处理组件146还将保存的数据的新副本发送回移动设备104,连同用于保存的数据的新元数据。这由图2中的框256和258指示。元数据解析组件186然后基于接收到的新元数据来解析该新元数据并且区段渲染组件190在正被显示的表单上利用区段来渲染新显示。这由框260指示。当然,应当理解,用户124可以通过移动应用提供其他输入,并且那些用户交互也被处理。这由框262指示。
图3A-3C示出了多个用户界面显示的示例,其指示上面关于图1和图2讨论的项目中的一些项目。例如,图3A示出了用户界面显示(诸如显示116或118)的一个示例。用户界面显示可以被显示在显示设备上,并且一般在264处被指示。在如图3A所示的示例中,特定的用户界面显示具有与其相对应的三个不同的区段266、268和270。每个不同的区段通过区段存储库143中的区段定义元数据来说明性地定义。
因此,当在移动设备104上运行的移动应用希望显示包含区段266-270的特定用户界面显示时,区段请求组件188获得用于区段266-270中的每个区段的区段标识符,连同任何其他期望的上下文信息,可能包括应用的上下文、用户的身份、移动设备的身份等,并且调用区段访问系统138(例如,通过API 152)来获得与那些区段中的每个区段相对应的元数据。系统138返回用于那些区段中的每个区段的元数据,然后它们可以说明性地由区段渲染组件190渲染。图3B示出了显示264现在包括与区段266、268和270中的每个区段相对应的控件和数据。在如图3B所示的示例中,区段268包括两个文本框控件272和274,其中的每一个显示定制的数据。因此,可以看出,管理员132具有定制的区段268以包括被应用动态确定的定制控件元数据,以被显示为显示定制的数据的文本框控件272和274。另一方面,在没有任何定制的情况下,区段266和270显示被绑定至它们的控件和对应的数据。图3B示出了用户界面显示264被显示在相对宽的显示设备上,诸如在平板计算机、膝上型计算机等上发现的显示设备。
图3C示出了在一个示例中,由系统138返回的元数据可以基于其中其要被渲染的设备的类型来被修改。图3C示出了例如移动设备104是智能电话276。因此,与图3A和3B中所示的显示屏相比,显示屏相对较小。因此,取代于利用如图3B所示中所布置的区段来显示用户界面显示264,这些区段被布置在大体水平的方向上,并且它们可以在由箭头278所指示的方向上可滚动。因此,图3C示出了整个区段266连同区段268的一部分被显示在智能电话276上。然而,为了看到区段268的剩余部分以及区段270,用户必须使用适当的滚动输入(诸如滑动手势、键盘输入等)来将显示向左滚动。
在另一示例中,取代于区段访问系统138基于要被渲染在其上的设备的类型来修改元数据,该设备上的区段渲染组件190本身修改显示。例如,可以是,区段渲染组件190已经包含用于基于显示设备182的屏幕尺寸来修改区段的布局的功能。在这种情况下,系统138不需要执行任何类型的依赖于设备的处理。相反,针对区段266-270相同的元数据被返回,而不管请求它的设备的类型如何。使用设备的设备规格和属性的应用本身来确定区段268-270的布局,并且相应地渲染它们。
图4A和4B(在此统称为图4)示出了流程图,该流程图示出了计算系统102响应于来自客户端设备的、针对要被渲染到用户界面显示上的区段的调用的操作的一个示例。区段访问系统138首先接收针对用户界面显示的至少一部分的调用,该用户界面显示包括一个或多个区段。这由图4中的框280指示。然后,系统138解析接收到的信息以标识正被请求的特定区段145或147。上下文标识组件140可以标识与被返回的任何上下文信息相对应的区段。控件标识组件142标识所标识的区段上的特定控件,并且数据标识组件144标识绑定到那些控件的数据。解析接收到的信息以标识正被请求的特定区段以及控件和被绑定到那些控件的数据由框282指示。
定制逻辑组件148然后确定在返回调用之前是否要运行任何定制代码。这由框284指示。如果是,则如框286所示运行定制代码或定制逻辑,然后将该区段和元数据返回给调用系统。这由框288指示。再次,返回说明性地包括指示要被显示在该区段中的控件290的信息以及要被显示在那些控件中的数据292。它也可以包括其他项目294。
计算系统102然后可以等待进一步的调用。这由框295指示。
如果数据是可编辑的,则保存处理系统146可以从客户端设备接收另一个调用以保存经编辑的数据。这由框296指示。如果接收到这样的调用,则保存处理组件146再次确定是否在保存的数据上运行任何定制逻辑或定制代码。这由框298指示。如果是,则定制逻辑由定制逻辑组件148运行,如框300所示。然后,保存处理组件146执行如框302所示的其他保存操作。例如,它可以将数据存储在数据存储库149中。这由框304指示。如框306所示,它也可以执行其他操作。
如框308所示,保存处理组件146然后将保存的数据的新副本返回给调用系统。它还返回与调用系统中的该区段相对应的新元数据。这由框310指示。
图5是另一架构312的框图。架构312类似于架构100,除了它包括多个不同的后端计算系统102和314。在图5所示的架构中,后端计算系统102由一个组织部署,而后端计算系统314由另一组织部署。此外,移动设备104的用户被第一组织雇佣,并且因此利用移动设备104连接到后端计算系统102。移动设备106的用户由第二组织雇佣,并且因此利用移动设备106连接到后端计算系统314。
然而,移动设备104和106两者都已经从应用商店系统110下载了相同的移动应用178。由于后端计算系统102和314可以具有不同的管理员,所以那些管理员可以不同地设置或配置由移动应用178实现的区段,因为它们用于不同的组织。这也可以由开发者或其他人完成。因此,当移动设备104的用户与后端计算系统102连接时,移动应用178可以要求与包括一组区段320-322的用户界面显示318相对应的信息。设备106上的移动应用178可以针对包括相同区段中的一个或多个区段的用户界面显示324来调用后端计算系统314。然而,由于区段可以与它们在后端计算系统314中的区段存储库143中被不同地配置在后端计算系统102的区段存储库143中,所以两个不同的移动设备104和106将生成相同区段的不同的渲染。
例如,可以看出,在如图5所示的示例中,该区段322(如由设备104渲染)具有一般在326处示出的一组复选框控件。然而,相同的区段322(如由设备106渲染)具有一组文本框控件328和330,而非复选框控件326。因此,相同的移动应用178可以生成两个完全不同的用户界面显示,即使针对相同的区段,因为那些区段在对应的后端计算系统102和314中被不同地修改。
图6示出了另一示例架构338。架构338类似于如图1所示的架构100,除了它显示移动设备104现在已经从应用商店系统110下载了两个不同的移动应用178和340。可以是,应用178和340两者渲染使用存储在后端计算系统102的区段存储库142中的相同区段中的一些区段的用户界面显示。如果是这种情况,则如果该区段由管理员、开发者等进行某种定制,当应用178和340访问该特定区段以用于渲染时,该定制将由应用178和340呈现。这不需要修改应用178或340来被完成。
例如,图6示出了移动应用178访问后端计算系统102并且已经获得了用于区段320和322的数据,并且已经渲染了区段320和322。区段322已经被定制成包括具有定制的数据的两个文本框328和330。尽管移动应用340被显示在完全不同的用户界面显示344上,移动应用340也已经访问了后端计算系统102并且获得用于区段322的数据,以及渲染了区段322。显示344显示区段342和322。可以看出,当移动应用340是与应用178完全分离的应用时,因为它访问相同的区段322,因此在后端计算系统102处对区段322进行的任何修改或定制使用应用178和340两者被渲染。因此,即使在显示344中,区段322具有定制控件328和330,连同与它们相对应的任何定制的数据。
其示例可能是有帮助的。假设组织具有用于输入费用的应用178。应用178具有使用定制字段的用户界面显示屏,该定制字段允许用户标识用于费用的“部门”。也可以是,组织具有另一应用340,其允许主管批准费用。在这种情况下,可以是,第二移动应用340中的显示屏也将使用标识该“部门”的字段。在这种情况下,当区段322被配置为标识“部门”时,该特定定制将被反映在用于输入费用的应用178以及用于批准它们的应用340两者中,因为两个应用将参考相同区段。
这显著地增强了管理员或开发者实现定制的能力,因为他们仅需要在单个地方进行。定制将被反映在访问包括那些定制的区段的所有基于客户端的应用中。
除了以上讨论的优点之外,还可以看出,本讨论还提供了许多其他的技术优点。它有利地允许移动应用的用户下载相同的应用,但由支持后端计算系统的组织进行的定制可以被应用用于生成用户界面显示的经定制的渲染。在每个组织处,它们可以被相同的移动应用访问,但是导致完全不同的渲染。这使得定制能够在不修改基于客户端的应用的情况下进行,从而提高开发者的生产力,并且减少实现定制中涉及的错误。本讨论还有利地允许在不同平台上处理相同的基于客户端的应用的不同版本的不同方法。在其中针对给定客户后台计算系统跨应用相同的架构中,后端计算系统可以选择返回针对正在请求它的每个平台被优化的元数据,同时仍然针对那些定制共享业务逻辑。本讨论提供了可扩展性,因为区段可以由后端计算系统使用元数据和数据的组合来控制。这允许组织将它们自己的功能添加到应用,而不必对基本应用的新版本做出反应。区段可以跨应用被使用,因此一个定制导致多个应用更改以反映该定制。区段可以跨平台被使用,因此单个定制可以导致在不同平台上的不同的应用实现更改以反映定制。区段可以基于用户、基于用户界面显示中所示的实体类型、或甚至基于实体本身来渲染不同的用户界面元件。这些区段支持读和写功能,并且不同的后端计算系统可以支持它们自己的定制。同时,仅单个基于客户端的应用需要由不同后端计算系统的不同用户来实现。相同的应用将从与其连接的后端计算系统中取得定制。因此,对于每个组织不需要使用不同的后端来管理在应用商店系统的级别处的基于客户端的应用。
还将注意到,本讨论已经讨论了区段如何被构建以及这如何与用户界面的视觉方面相关。然而,应当理解,用于区段的信息也可以由可访问性系统发送和使用以生成该区段的音频表示(例如,以大声读出区段的内容)。但这是一个例子。
本讨论已经提到了处理器和服务器。在一个实施例中,处理器和服务器包括具有没有单独示出的相关联的存储器和定时电路的计算机处理器。它们是它们所属的并且由其激活的系统或设备的功能部件,并且促进那些系统中的其他组件或项目的功能。
此外,已经讨论了许多用户界面显示。它们可以采用各种不同的形式,并且可以具有设置于其上的各种不同的用户可致动的输入机构。例如,用户可致动的输入机构可以是文本框、复选框、图标、链接、下拉菜单、搜索框等。它们也可以以各种不同的方式被致动。例如,它们可以使用点击设备(诸如轨迹球或鼠标)来被致动。它们可以使用硬件按钮、开关、操纵杆或键盘、拇指开关或拇指垫等来被致动。它们也可以使用虚拟键盘或其他虚拟致动器来被致动。另外,其中它们被显示于其上的屏幕是触敏屏幕,它们可以使用触摸手势被致动。此外,其中显示它们的设备具有语音标识组件,它们可以使用语音命令被致动。
还已经讨论了许多数据存储库。将会注意到它们可以分别被分成多个数据存储库。所有这些可以在访问它们的系统的本地,所有这些可以是远程的,或者一些可以是本地的而另一些则是远程的。这些配置中的所有配置是在此预期的。
此外,附图示出了具有归因于每个块的功能的许多框。应该注意,可以使用更少的框,因此功能由更少的组件执行。此外,可以使用更多的框,其中功能被分布在更多组件之间。
图7是图1所示的架构100的框图,除了将其元件被设置在云计算架构500中。云计算提供计算、软件、数据访问和存储服务,其不需要终端用户对交付服务的系统的物理位置或配置的了解。在各种实施例中,云计算使用适当的协议在广域网(诸如因特网)上交付服务。例如,云计算提供商在广域网上交付应用,并且它们可以通过web浏览器或任何其他计算组件来被访问。架构100的软件或组件以及对应的数据可以被存储在远程位置处的服务器上。云计算环境中的计算资源可以在远程数据中心位置处被合并,或者它们可以被分散。云计算基础设施可以通过共享数据中心交付服务,即使它们作为用于用户的单个访问点。因此,在此描述的组件和功能可以使用云计算架构从远程位置处的服务提供商被提供。备选地,它们可以从常规服务器被提供,或者它们可以直接或以其他方式被安装在客户端设备上。
该描述旨在包括公共云计算和私有云计算两者。云计算(公共和私有)提供了基本上无缝的资源的池化,以及管理和配置底层硬件基础设施的减少需求。
公共云由供应商管理,并且通常支持使用相同基础设施的多个消费者。此外,与私有云相对的公共云可以将终端用户从管理硬件中释放出来。私有云可以由组织本身管理,并且基础架构通常不与其他组织共享。组织仍然在某种程度上维护硬件,诸如安装和维修等。
在图7所示的实施例中,一些项目类似于图1所示的项目,并且它们被相同地编号。图7具体示出了计算系统102可以位于云502中(其可以是公共的、私有的、或者其中部分是公共的而其他部分是私有的组合)。因此,用户124使用移动设备104通过云502来访问那些系统。
图7还描绘了云架构的另一示例。图7示出了还预期的是,计算系统102的一些元件可以被设置在云502中而其他元件未被设置在云502中。作为示例,数据存储库142、149可以被布置在云502的外部,并且通过云502被访问。在另一示例中,区段定义/定制系统140或其他系统可以在云502的外部。不管它们位于何处,它们可以由管理设备108通过网络(广域网或局域网)直接访问,它们可以由服务托管在远程站点处,或者它们可以通过云被提供为服务或由驻留在云中的连接服务访问。这些架构中的所有架构是在此预期的。
还将注意到,架构100或其部分可以被设置在各种不同的设备上。这些设备中的一些设备包括服务器、台式计算机、膝上型计算机、平板计算机或其他移动设备,例如掌上计算机、蜂窝电话、智能电话、多媒体播放器、个人数字助理等。
图8是可以用作用户或客户的手持设备16的手持或移动计算设备的一个说明性示例的简化框图,其中本系统(或其部件)可以被部署。图9-10是手持设备或移动设备的示例。
图8提供可以运行架构100的组件或者与架构100交互或两者的客户端设备16的组件的一般框图。在设备16中,通信链路13被提供,其允许手持设备与其他计算设备进行通信,并且在一些实施例下提供用于诸如通过扫描自动接收信息的信道。通信链路13的示例包括红外端口、串行/USB端口、诸如以太网端口的有线网络端口、以及允许通过一个或多个通信协议进行通信的无线网络端口,一个或多个通信协议包括通用分组无线业务(GPRS)、LTE、HSPA,HSPA+和其他3G和4G无线电协议、1Xrtt和短消息服务,它们是用于向网络提供蜂窝接入的无线服务,以及Wi-Fi协议、和蓝牙协议,它们提供到网络的本地无线连接。
在其他实施例下,在连接到SD卡接口15的可拆卸安全数字(SD)卡上接收到应用或系统。SD卡接口15和通信链路13沿着总线19与处理器17(其也可以体现处理器134、172或198)通信,总线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可以具有客户端系统24,客户端系统24可以运行各种业务应用或体现应用组件114的部分或全部。处理器17也可以由其它组件激活以促进它们的功能。
网络设置31的示例包括诸如代理信息、因特网连接信息和映射的事物。应用配置设置35包括为特定企业或用户定制应用的设置。通信配置设置41提供用于与其他计算机通信的参数,并且包括诸如GPRS参数、SMS参数、连接用户名和密码的项目。
应用33可以是先前已经被存储在设备16上的应用或在使用期间被安装的应用,尽管这些应用也可以是操作系统29的一部分,或者被托管在设备16外部。
图9示出了其中设备16是平板计算机600的一个实施例。如图9所示,示出具有用户界面显示屏602的计算机600。屏幕602可以是触摸屏(因此可以使用来自用户手指的触摸手势来与应用交互)或者从笔或触针接收输入的启用笔的界面。它也可以使用屏幕上的虚拟键盘。当然,它也可能通过诸如无线链路或USB端口之类的合适的附接机构被附接到键盘或其他用户输入设备。计算机600也可以说明性地接收语音输入。
可以使用装置16的附加示例。设备16可以是功能电话、智能电话或移动电话。电话可以包括用于拨打电话号码的一组键盘,能够显示包括应用图像、图标、网页、照片和视频的图像的显示器,以及用于选择显示器上显示的项目的控制按钮。电话可以包括用于接收蜂窝电话信号的天线,蜂窝电话信号诸如通用分组无线业务(GPRS)和1Xrtt以及短消息服务(SMS)信号。在一些示例中,电话还包括容纳SD卡的安全数字(SD)卡插槽。
移动设备还可以是个人数字助理(PDA)或多媒体播放器或平板计算设备等(以下称为PDA)。当触针被定位在屏幕上方时,PDA包括感测触针(或其他指针,诸如用户的手指)的位置的感应屏幕。这允许用户选择、突出显示和移动屏幕上的项目以及绘图和写入。PDA还可以包括许多用户输入键或按钮,其允许用户滚动通过被显示在显示器上的菜单选项或其他显示选项,并且允许用户更改应用或选择用户输入功能,而不接触显示器。尽管未示出,但是PDA可以包括允许与其他计算机的无线通信的内部天线和红外发射器/接收器以及允许与其他计算设备的硬件连接的连接端口。这样的硬件连接通常通过经由串行或USB端口连接到其他计算机的支架进行。因此,这些连接是非网络连接。图10示出了移动设备可以是智能电话71。智能电话71具有显示图标或图块或其他用户输入机构75的触敏显示器73。用户可以使用机构75来运行应用、进行呼叫、执行数据传输操作等。通常,智能电话71被构建在移动操作系统上,并且提供比功能电话更高级的计算能力和连接性。
注意,设备16的其他形式是可能的。
图11是其中(例如)可以部署架构100或其部件的计算环境800的一个示例。参考图11,用于实现一些实施例的示例系统包括计算机810形式的通用计算设备。计算机810的组件可以包括但不限于处理单元820(其可以包括处理器134、172或198或其他设备中的那些)、系统存储器830和系统总线821,系统总线821将包括系统存储器的各种系统组件耦合到处理单元820。系统总线821可以是包括存储器总线或存储器控制器、外围总线和使用各种总线架构中的任一种的本地总线的若干类型的总线结构中的任一种。作为示例而非限制,这种架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线、以及外围组件互连(PCI)总线也称为夹层总线。关于图1描述的存储器和程序可以被部署在图11的对应部分中。
计算机810通常包括各种计算机可读介质。计算机可读介质可以是可以由计算机810访问的任何可用介质,并且包括易失性和非易失性介质、可拆卸和不可拆卸介质。作为示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质与调制数据信号或载波不同,并且也不包括调制数据信号或载波。它包括硬件存储介质,包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法或技术实现的易失性和非易失性、可拆卸和不可拆卸介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其他存储器技术、CD-ROM、数字通用盘(DVD)或其他光盘存储、磁带盒、磁带、磁盘存储或其他磁存储设备、或可用于存储期望的信息并且可由计算机810访问的任何其它介质。通信介质通常体现计算机可读指令、数据结构、程序模块或传输机制中的其他数据,并且包括任何信息传递介质。术语“调制数据信号”是指以将信息编码在信号中的方式来使其特征中的一个或多个被设置或更改的信号。作为示例而非限制,通信介质包括诸如有线网络或直接有线连接的有线介质,以及诸如声学、RF、红外和其它无线介质的无线介质。上述任一项的组合也应被包括在计算机可读介质的范围内。
系统存储器830包括诸如只读存储器(ROM)831和随机存取存储器(RAM)832之类的易失性和/或非易失性存储器形式的计算机存储介质。包含有助于在计算机810内的元件之间(例如在启动期间)传送信息的基本例程的基本输入/输出系统833(BIOS)通常被存储在ROM 831中。RAM 832通常包含对于处理单元820可立即访问和/或当前正由处理单元820操作的数据和/或程序模块。作为示例而非限制,图11示出了操作系统834、应用程序835、其他程序模块836和程序数据837。
计算机810还可以包括其他可拆卸/不可拆卸的易失性/非易失性计算机存储介质。仅作为示例,图11示出了读取或写入不可拆卸的非易失性磁性介质的硬盘驱动器841以及读取或写入诸如CD ROM或其他光学介质的可拆卸的非易失性光盘856的光盘驱动器855。能够在示例性操作环境中使用的其他可拆卸/不可拆卸、易失性/非易失性计算机存储介质包括但不限于磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器841通常通过诸如接口840的不可拆卸存储器接口连接到系统总线821,并且光盘驱动器855通常通过诸如接口850的可拆卸存储器接口连接到系统总线821。
备选地或者附加地,本文所描述的功能可以至少部分地由一个或多个硬件逻辑组件来执行。例如但不限于,可以使用的硬件逻辑组件的说明性类型包括现场可编程门阵列(FPGA)、专用集成电路(诸如ASIC)、专用标准产品(诸如ASSP)、片上系统(SOC)、复杂可编程逻辑器件(CPLD)等。
上面讨论并在图11中示出的驱动器及其相关联的计算机存储介质提供用于计算机810的计算机可读指令、数据结构、程序模块和其他数据的存储。如图11所示,例如,硬盘驱动器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描述的元件中的许多或所有元件。图11中描绘的逻辑连接包括局域网(LAN)871和广域网(WAN)873,但也可以包括其他网络。这样的网络环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中被使用时,计算机810通过网络接口或适配器870连接到LAN871。当在WAN联网环境中被使用时,计算机810通常包括调制解调器872或用于通过WAN 873(诸如因特网)建立通信的其他装置。可以是内部或外部的调制解调器872可以经由用户输入接口860或其他适当的机制连接到系统总线821。在联网环境中,相对于计算机810描绘的程序模块或其部分可以被存储在远程存储器存储设备中。作为示例而非限制,图11示出了驻留在远程计算机880上的远程应用885。应当理解,所示出的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他装置。
还应注意,在此描述的不同实施例可以以不同的方式被组合。也就是说,一个或多个实施例的部分可以与一个或多个其他实施例的部分组合。所有这一切是在此预期的。
第一示例包括计算系统,包括:
由所述计算系统开放的应用编程接口,其从客户端应用接收针对用户界面显示的调用,所述用户界面显示在其上具有多个不同的预定义区段,所述调用包括区段标识元数据;
区段访问系统,其解析所述调用以标识所述用户界面显示上的所述多个不同区段;
控件标识组件,其访问与所标识的区段中的每个区段相对应的区段定义元数据,并且标识指示在所标识的区段中的每个区段上显示的控件的控件元数据;以及
数据标识组件,其访问所述区段定义元数据并且标识与所标识的区段中的每个区段相对应的数据绑定元数据,所述数据绑定元数据指示绑定到所述控件中的每个控件的数据,所述应用编程接口通过返回所述控件元数据和所述数据绑定元数据来返回所述调用以用于在所述客户端应用处在所述用户界面显示上渲染多个所标识的区段中的每个区段。
另一示例包括任何或所有先前示例的计算系统,还包括:
上下文标识组件,其访问调用中的上下文信息并且基于所述上下文信息来标识所述区段。
另一示例包括任何或所有先前示例的计算系统,还包括:
另一示例包括任何或所有先前示例的计算系统,还包括:
定制逻辑组件,其在返回先前调用之前确定是否要针对所标识的区段中的任一区段运行定制逻辑,并且如果是,则在返回所述调用之前运行所述定制逻辑。
另一示例包括任何或所有先前示例的计算系统,其中所述应用编程接口利用编辑元数据返回所述调用,所述编辑元数据标识多个所标识的区段中的不同区段,所述不同区段是可编辑区段。
另一示例包括任何或所有先前示例的计算系统,还包括:
保存处理组件,其从所述客户端应用通过所述应用编程接口接收保存调用,所述保存调用包括对应于给定可编辑区段的经编辑的数据并且保存用于所述给定可编辑区段的所述经编辑的数据。
另一个示例包括任何或所有先前示例的计算系统,其中所述保存处理组件通过所述应用编程接口向所述客户端应用返回基于所述经编辑的数据而被更新的经更新的元数据。
另一示例包括任何或所有先前示例的计算系统,还包括:
区段定义生成器,其检测区段定义输入并且基于所述区段定义输入来生成定义新区段的区段定义元数据,并且将用于所述新区段的所述区段定义元数据存储在区段存储库中。
另一示例包括任何或所有先前示例,还包括:
区段定义修改器,其检测区段修改输入并且基于所述区段修改输入来修改用于给定区段的区段定义元数据,并且将用于所述给定区段的经修改的所述区段定义元数据存储在所述区段存储库中。
另一示例包括计算系统,包括:
显示设备;
用户界面组件;以及
运行应用的应用组件,所述应用控制所述用户界面组件在所述显示设备上显示用户界面显示,所述用户界面显示具有多个预定义区段并且调用后端系统以接收用于所述用户界面显示上的所述预定义区段中的每个区段的区段元数据,接收所述区段元数据并且基于从所述后端系统接收到的所述区段元数据控制所述用户界面组件以在所述显示设备上显示所述预定义区段。
另一示例包括任何或所有先前示例的计算系统,还包括:
后端连接组件,其由所述应用组件控制以通过由所述后端系统开放的应用编程接口来调用所述后端系统,以每当所述应用组件显示不同的用户界面显示时接收一组区段元数据。
另一示例包括任何或所有先前示例的计算系统,其中所述应用组件包括:
区段请求组件,其标识要被显示在所述用户界面显示上的区段并且控制所述后端连接组件以针对用于所标识的区段的区段元数据来调用所述后端系统。
另一示例包括任何或所有先前示例的计算系统,其中所述区段请求组件通过确定标识要被显示的所述区段的区段标识符、所述用户界面显示要针对其被显示的实体类型以及标识绑定至要被显示的所述区段的数据的一组标识数据来标识要被显示的所述区段。
另一示例包括任何或所有先前示例的计算系统,还包括:
应用上下文标识符,其标识在所述计算设备上运行的所述应用的应用上下文,并且将所述应用上下文提供给所述区段请求组件。
另一示例包括任何或所有先前示例的计算系统,其中所述区段请求组件通过确定标识其上部署了所述计算系统的设备的设备类型的设备类型标识符和标识所述设备的用户的用户身份来标识要被显示的所述区段。
另一示例包括任何或所有先前示例的计算系统,其中所述区段请求组件控制所述后端连接组件以利用所述区段标识符、所述实体类型、所述标识数据、所述应用上下文、所述设备类型和所述用户身份来调用所述后端系统。
另一示例包括任何或所有先前示例的计算系统,其中所述应用组件还包括:
元数据解析组件,其解析所述区段元数据以标识渲染信息;以及
区段渲染组件,其基于所述渲染信息来在所述用户界面显示上渲染所述区段。
另一示例包括计算机实现的方法,包括:
从被部署在第一客户端设备上的第一客户端应用接收针对用户界面显示的调用,所述用户界面显示在其上具有多个不同的预定义区段,所述调用包括区段标识元数据;
解析所述调用以基于所述区段标识元数据来标识所述用户界面显示上的所述多个不同区段;
标识指示在所标识的区段中的每个区段上显示的控件的控件元数据;
标识与所标识的区段中的每个区段相对应的数据绑定元数据,所述数据绑定元数据指示绑定到所述控件中的每个控件的数据;以及
通过返回包括所述控件元数据和所述数据绑定元数据的区段渲染元数据来返回所述调用,以用于在所述客户端应用处在所述用户界面显示上渲染多个所标识的区段中的每个区段。
另一示例包括任何或所有先前示例的计算机实现的方法,还包括:
从第二客户端应用接收针对用户界面显示的调用,所述用户界面显示至少具有所述多个不同的预定义区段中的给定区段;以及
向所述第二客户端应用返回用于所述给定区段的、与返回给所述第一客户端应用不同的区段渲染元数据。
另一示例包括任何或所有先前示例的计算机实现的方法,还包括:
从第二客户端应用接收针对用户界面显示的调用,所述用户界面显示至少具有所述多个不同的预定义区段中的给定区段;以及
向所述第二客户端应用返回用于所述给定区段的、与返回给所述第一客户端应用不同的区段渲染元数据。
另一示例包括任何或所有先前示例的计算机实现的方法,还包括:
从被部署在第二客户端设备上的所述第一客户端应用接收针对所述用户界面显示的调用;以及
将与返回给被部署在所述第一客户端设备上的所述第一客户端应用的相同的区段渲染元数据集合返回给所述第二客户端设备上的所述第一客户端应用。
尽管主题已经以特定于结构特征和/或方法动作的语言被描述,但是应当理解所附权利要求中限定的主题不一定限于上述具体特征或动作。相反,上述具体特征和动作被公开为实现权利要求的示例形式。

Claims (20)

1.一种计算系统,包括:
应用编程接口,被配置为:
通过所述计算系统从与客户端计算设备相关联的客户端应用接收调用,所述客户端设备与所述计算系统分离,所述调用与用户界面显示相关联,并且包括区段标识元数据;
区段访问系统,被配置为:
基于在所述调用中接收到的所述区段标识元数据,标识分别在所述用户界面显示上预定义的多个不同区段;
控件标识组件,被配置为:
访问与所标识的所述多个不同区段中的每个区段相对应的区段定义元数据,并且
基于所述区段定义元数据,标识用户界面控件元数据,所述用户界面控件元数据指示在所标识的所述多个不同区段中的每个区段上的用户界面控件;以及
数据标识组件,被配置为:
基于所述区段定义元数据,标识数据绑定元数据,所述数据绑定元数据与所标识的所述多个不同区段中的每个区段相对应并且指示绑定到所述用户界面控件中的每个用户界面控件的数据,
其中所述应用编程接口被配置为通过所述计算系统向所述客户端计算设备发送所述控件元数据和所述数据绑定元数据。
2.根据权利要求1所述的计算系统,还包括:
上下文标识组件,被配置为:
访问所述调用中的上下文信息;以及
基于所述上下文信息来标识所述区段。
3.根据权利要求2所述的计算系统,还包括:
定制逻辑组件,被配置为:
确定定制逻辑要在返回所述调用之前针对所标识的所述区段中的特定区段而被运行;以及
基于所述确定,在返回所述调用之前运行所述定制逻辑。
4.根据权利要求3所述的计算系统,其中所述应用编程接口被配置为利用编辑元数据返回所述调用,所述编辑元数据标识所标识的所述多个区段中的哪些区段是可编辑区段。
5.根据权利要求4所述的计算系统,还包括:
保存处理组件,被配置为:
从所述客户端应用通过所述应用编程接口接收保存调用,所述保存调用包括对应于给定可编辑区段的经编辑的数据;以及
保存用于所述给定可编辑区段的所述经编辑的数据。
6.根据权利要求5所述的计算系统,其中所述保存处理组件被配置为:
通过所述应用编程接口向所述客户端应用返回基于所述经编辑的数据而被更新的经更新的元数据。
7.根据权利要求6所述的计算系统,还包括:
区段定义生成器,被配置为:
基于区段定义输入的指示,生成定义新区段的区段定义元数据;以及
将用于所述新区段的所述区段定义元数据存储在区段存储库中。
8.根据权利要求6所述的计算系统,还包括:
区段定义修改器,被配置为:
基于区段修改输入的指示,修改用于给定区段的区段定义元数据;以及
将用于所述给定区段的经修改的所述区段定义元数据存储在所述区段存储库中。
9.一种计算系统,包括:
处理器;以及
存储器,其存储由所述处理器可执行的指令,其中所述指令在被执行时将所述计算系统配置为:
接收与所述计算系统上的客户端应用相关联的用户界面显示的指示,所述用户界面显示包括多个预定义区段;
生成对与所述计算系统远离的服务器计算系统的调用,所述调用指示用于所述用户界面显示上的所述多个预定义区段中的每个区段的区段元数据;
从所述服务器计算系统接收所述区段元数据;并且
基于接收到的所述区段元数据,利用所述预定义区段生成所述用户界面显示的表示。
10.根据权利要求9所述的计算系统,其中所述指令在被执行时将所述计算系统配置为:
通过由所述服务器计算系统开放的应用编程接口来调用所述服务器计算系统;以及
针对多个不同用户界面显示中的每个用户界面显示接收一组区段元数据。
11.根据权利要求9所述的计算系统,其中所述指令在被执行时将所述计算系统配置为:
标识要被显示在所述用户界面显示上的区段;以及
控制所述服务器计算连接组件,以针对用于所标识的区段的区段元数据来调用所述服务器计算系统。
12.根据权利要求11所述的计算系统,其中所述指令在被执行时将所述计算系统配置为:
通过确定标识要被显示的所述区段的区段标识符、所述用户界面显示要针对其被显示的实体类型以及标识绑定至要被显示的所述区段的数据的一组标识数据来标识要被显示的所述区段。
13.根据权利要求12所述的计算系统,其中所述指令在被执行时将所述计算系统配置为:
标识在所述计算系统上运行的所述客户端应用的应用上下文;以及
基于所述应用上下文来调用所述服务器计算系统。
14.根据权利要求13所述的计算系统,其中所述指令在被执行时将所述计算系统配置为:
通过确定标识其上部署了所述计算系统的设备的设备类型的设备类型标识符和标识所述设备的用户的用户身份来标识要被显示的所述区段。
15.根据权利要求14所述的计算系统,其中所述指令在被执行时将所述计算系统配置为:
利用所述区段标识符、所述实体类型、所述标识数据、所述应用上下文、所述设备类型和所述用户身份来调用所述服务器计算系统。
16.根据权利要求13所述的计算系统,其中所述指令在被执行时将所述计算系统配置为:
解析所述区段元数据以标识渲染信息;以及
基于所述渲染信息来在所述用户界面显示上渲染所述区段。
17.一种计算机实现的方法,包括:
通过计算系统从与客户端计算设备相关联的客户端应用接收调用,所述客户端计算设备与所述计算系统分离,所述调用与用户界面显示相关联,并且包括区段标识元数据;
基于在所述调用中接收到的所述区段标识元数据,标识分别在所述用户界面显示上预定义的多个不同区段;
标识用户界面控件元数据,所述用户界面控件元数据指示在所标识的所述多个不同区段中的每个区段上的用户界面控件;
标识数据绑定元数据,所述数据绑定元数据与所标识的所述多个不同区段中的每个区段相对应并且指示绑定到所述用户界面控件中的每个用户界面控件的数据;以及
通过所述计算设备向所述客户端计算设备返回包括所述控件元数据和所述数据绑定元数据的区段渲染元数据。
18.根据权利要求17所述的计算机实现的方法,其中所述客户端应用包括第一客户端应用,并且所述方法还包括:
通过所述计算系统从第二客户端应用接收第二调用,所述调用与第二用户界面显示相关联,所述第二用户界面显示至少具有所述多个不同预定义区段中的特定区段;以及
向所述第二客户端应用返回第二区段渲染元数据,所述第二区段渲染元数据与返回给所述第一客户端应用的所述区段渲染元数据不同。
19.根据权利要求17所述的计算机实现的方法,其中所述客户端应用包括第一客户端应用,并且还包括:
通过所述计算系统从第二客户端应用接收第二调用,所述调用与第二用户界面显示相关联,所述第二用户界面显示至少具有所述多个不同预定义区段中的特定区段;以及
向所述第二客户端应用返回用于所述特定区段的第二区段渲染元数据,所述第二区段渲染元数据包括与返回给所述第一客户端应用的所述区段渲染元数据相同的一组区段渲染元数据。
20.根据权利要求17所述的计算机实现的方法,还包括:
通过所述计算系统从被部署在第二客户端设备上的第一客户端应用接收调用;以及
将与返回给被部署在第一客户端设备上的所述第一客户端应用的相同的一组区段渲染元数据返回给所述第二客户端设备上的所述第一客户端应用。
CN201580061794.5A 2014-11-13 2015-11-03 使用区段以用于跨平台的应用的定制 Active CN107003867B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462079179P 2014-11-13 2014-11-13
US62/079,179 2014-11-13
US14/687,073 2015-04-15
US14/687,073 US9996230B2 (en) 2014-11-13 2015-04-15 Using sections for customization of applications across platforms
PCT/US2015/058699 WO2016077093A1 (en) 2014-11-13 2015-11-03 Using sections for customization of applications across platforms

Publications (2)

Publication Number Publication Date
CN107003867A CN107003867A (zh) 2017-08-01
CN107003867B true CN107003867B (zh) 2020-04-07

Family

ID=54548270

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580061794.5A Active CN107003867B (zh) 2014-11-13 2015-11-03 使用区段以用于跨平台的应用的定制

Country Status (4)

Country Link
US (2) US9996230B2 (zh)
EP (1) EP3218802B1 (zh)
CN (1) CN107003867B (zh)
WO (1) WO2016077093A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11204925B2 (en) * 2018-06-05 2021-12-21 Sap Se Enabling data source extensions
US10795698B2 (en) * 2018-07-24 2020-10-06 Microsoft Technology Licensing, Llc User interface based on metadata
US10761817B2 (en) * 2018-07-26 2020-09-01 Pershing LLC System and method for facilitating an instance-specific user interface

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101315604A (zh) * 2008-06-30 2008-12-03 华为技术有限公司 软件定制模块的实现方法及系统
CN101350023A (zh) * 2008-08-29 2009-01-21 北京航空航天大学 一种基于服务组合的可定制查询方法与平台
US7853899B1 (en) * 2002-12-30 2010-12-14 Sap Aktiengesellschaft Configuring and extending a user interface
US8484553B2 (en) * 2003-05-05 2013-07-09 Arbortext, Inc. System and method for defining specifications for outputting content in multiple formats

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6753885B2 (en) * 2000-04-06 2004-06-22 Microsoft Corporation System and theme file format for creating visual styles
US20020103881A1 (en) 2000-09-11 2002-08-01 Francois Granade Method and system for integrating applications and mobile networks
AU2003202131A1 (en) * 2002-02-04 2003-09-02 Mobileaware Technologies Limited Document transformation
JP3755500B2 (ja) * 2002-09-06 2006-03-15 ソニー株式会社 Guiアプリケーション開発支援装置および方法、並びにコンピュータ・プログラム
US20050108648A1 (en) * 2003-02-28 2005-05-19 Olander Daryl B. Method for propagating look and feel in a graphical user interface
US20050097180A1 (en) * 2003-10-31 2005-05-05 Aaron Abdelhak System and method for improved customized portal web pages
US7970823B2 (en) * 2004-09-02 2011-06-28 Broadway Technology, Llc System for sharing data objects among applications
US8095565B2 (en) 2005-12-05 2012-01-10 Microsoft Corporation Metadata driven user interface
US7877677B2 (en) * 2006-03-01 2011-01-25 Infogin Ltd. Methods and apparatus for enabling use of web content on various types of devices
CA2578466A1 (en) 2007-01-12 2008-07-12 Truecontext Corporation Method and system for customizing a mobile application using a web-based interface
US9081463B2 (en) * 2007-12-05 2015-07-14 Adobe Systems Incorporated Systems and methods for run-time editing of a web page
US8788542B2 (en) * 2008-02-12 2014-07-22 Oracle International Corporation Customization syntax for multi-layer XML customization
US8504979B2 (en) 2009-03-06 2013-08-06 Concurrent Technologies Corporation Application framework for reactive information propagation and planning for lifelike exercises
CN103069383B (zh) * 2010-06-02 2016-09-28 艾伦智能科技公司 具有图形用户界面的装置及开发多媒体计算机应用程序的方法
US9483449B1 (en) * 2010-07-30 2016-11-01 Amazon Technologies, Inc. Optimizing page output through run-time reordering of page content
WO2012037566A1 (en) * 2010-09-17 2012-03-22 Oracle International Corporation Method and apparatus for choosing resources based on context and inheritance
US8949370B1 (en) * 2011-01-12 2015-02-03 Google Inc. Mobile application generation
US9348939B2 (en) 2011-03-18 2016-05-24 International Business Machines Corporation Web site sectioning for mobile web browser usability
US20120254768A1 (en) 2011-03-31 2012-10-04 Google Inc. Customizing mobile applications
US8898629B2 (en) 2011-04-06 2014-11-25 Media Direct, Inc. Systems and methods for a mobile application development and deployment platform
WO2012148867A1 (en) 2011-04-26 2012-11-01 Soultanov Rafael Web-based app builder for mobile devices with automatic updates
US8943124B2 (en) 2011-09-12 2015-01-27 Fiserv, Inc. Systems and methods for customizing mobile applications based upon user associations with one or more entities
US8656353B2 (en) 2012-03-09 2014-02-18 User-Friendly Phone Book, L.L.C. Mobile application generator
US10296562B2 (en) * 2013-02-12 2019-05-21 Oath Inc. Dynamic generation of mobile web experience
US10025856B2 (en) * 2013-06-14 2018-07-17 Target Brands, Inc. Dynamic landing pages
US20150106751A1 (en) * 2013-10-11 2015-04-16 ContentActivator Systems And Methods For Creating And Serving Dynamically Adjustable Web Pages
US9189207B2 (en) * 2014-03-11 2015-11-17 Telefonaktiebolaget L M Ericsson (Publ) Methods and systems for dynamic runtime generation of customized applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7853899B1 (en) * 2002-12-30 2010-12-14 Sap Aktiengesellschaft Configuring and extending a user interface
US8484553B2 (en) * 2003-05-05 2013-07-09 Arbortext, Inc. System and method for defining specifications for outputting content in multiple formats
CN101315604A (zh) * 2008-06-30 2008-12-03 华为技术有限公司 软件定制模块的实现方法及系统
CN101350023A (zh) * 2008-08-29 2009-01-21 北京航空航天大学 一种基于服务组合的可定制查询方法与平台

Also Published As

Publication number Publication date
US20160139754A1 (en) 2016-05-19
EP3218802A1 (en) 2017-09-20
US9996230B2 (en) 2018-06-12
EP3218802B1 (en) 2022-11-23
WO2016077093A1 (en) 2016-05-19
US20180335909A1 (en) 2018-11-22
US10895963B2 (en) 2021-01-19
CN107003867A (zh) 2017-08-01

Similar Documents

Publication Publication Date Title
US10379818B2 (en) Multi-tenant, tenant-specific applications
CN108431763B (zh) 通过网络服务管理多个云存储装置
US10027644B2 (en) Analysis with embedded electronic spreadsheets
US10152308B2 (en) User interface display testing system
KR20170016362A (ko) 컴파일 동안 표시 메타데이터를 브라우저 렌더링 가능 포맷으로 변환하는 기법
JP2015517165A (ja) ユーザーインターフェイスウェブサービス
US10895963B2 (en) Using sections for customization of applications across platforms
US20180075093A1 (en) Sharing document links from multiple data providers
US9804749B2 (en) Context aware commands
US20150227865A1 (en) Configuration-based regulatory reporting using system-independent domain models
US10540065B2 (en) Metadata driven dialogs
US20150248227A1 (en) Configurable reusable controls
US20150347352A1 (en) Form preview in a development environment
CN107533487B (zh) 云掌控的设置
US9811333B2 (en) Using a version-specific resource catalog for resource management
US10372844B2 (en) Expressing extensions with customized design time behavior
CN106415626B (zh) 从单个项目发起的组选择
US9753788B2 (en) Extensibility of engines in computing systems

Legal Events

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