CN106164854B - 用户界面控件和通信 - Google Patents

用户界面控件和通信 Download PDF

Info

Publication number
CN106164854B
CN106164854B CN201580018581.4A CN201580018581A CN106164854B CN 106164854 B CN106164854 B CN 106164854B CN 201580018581 A CN201580018581 A CN 201580018581A CN 106164854 B CN106164854 B CN 106164854B
Authority
CN
China
Prior art keywords
user interface
interface control
role
computer
template
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
CN201580018581.4A
Other languages
English (en)
Other versions
CN106164854A (zh
Inventor
B·奥兰尼科
A·夏克
L·E·韦利基
A·R·迪亚斯
S·N·艾哈迈德
M·王
R·A·詹森
M·D·奥维霍特
P·K·什雷斯塔
A·巴格赫里
Z·于
J·O·卡萨尔特雷罗斯
D·R·亚拉曼希里
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 CN106164854A publication Critical patent/CN106164854A/zh
Application granted granted Critical
Publication of CN106164854B publication Critical patent/CN106164854B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • 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
    • 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/54Interprogram communication
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (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)
  • User Interface Of Digital Computer (AREA)

Abstract

用户界面控件,所述用户界面控件具有依据该用户界面控件所扮演的角色来处理不同角色逻辑的不同逻辑组件。所述用户界面控件还可具有执行可跨多个用户界面控件公共的通用功能的通用功能组件。还有,用于在两个用户界面控件之间进行通信以建立通信链接的协议。第一用户界面控件请求来自第二用户界面控件的信息,随后它获得所请求的信息。第二用户界面控件随后将所请求的信息提供给第一用户界面控件,并且随后等待所请求信息的验证。

Description

用户界面控件和通信
背景
计算系统经常显示用户界面元素调用控件,用户可以与之交互以使得计算系统执行相应的操作或通过其用户可以可视化底层信息。通常,用户界面控件都在同一进程中操作并且这样可以共享公共的共享存储器。然而,存在在其中用户界面控件可能不在同一进程或甚至不在同一机器上运行的其它实例。例如,可能存在具有每个都是由不同提供者提供的多个扩展的分布式应用。用户界面控件可能由不在同一信任圈内的不同扩展提供。
此处要求保护的主题不限于解决任何缺点或仅在诸如上述环境这样的环境中操作的各实施例。相反,提供该背景仅用于例示其中可实现所述一些实施例的一个示例性技术领域。
简要概述
在此所述的至少一些实施例涉及用户界面控件,所述用户界面控件具有依据该用户界面控件所担当的角色来处理不同角色逻辑的不同逻辑组件。所述用户界面控件还可具有执行可跨多个用户界面控件公共的通用功能的通用功能组件。例如,通用功能组件可以由模板来提供。而且,大多数逻辑组件也可以由模板来提供,这样,用户界面元素的功能是数据驱动的,可能仅涉及定义逻辑组件的功能。
在此所述的至少一些实施例还可以涉及用于在两个用户界面控件之间进行通信以建立通信链接的协议。例如,第一用户界面控件请求来自第二用户界面控件的信息,随后(例如通过从用户请求信息或通过从递归执行同一通信协议的另一个用户界面控件索要一些或所有的所请求信息)获得所请求的信息。第二用户界面控件随后将所请求的信息提供给第一用户界面控件,并且随后等待所请求信息的验证。在这种场景中,第一用户界面控件可能具有在其中第一用户界面控件收集信息的收集者角色,而第二用户界面控件可能具有在其中第二用户界面控件提供信息的提供者角色。可存在以串行或层次方式安排的多个这样的通信链接。因此,任何给定的用户界面控件可以同时执行收集者和提供者两者的角色。
提供本概述以便以简化的形式介绍将在以下的详细描述中进一步描述的一些概念。本概述并非旨在标识出要求保护的主题的关键特征或必要特征,亦非旨在用作辅助确定要求保护的主题的范围。
附图简述
为了描述可获得本发明的上述和其它优点和特征的方式,将通过参考附图中示出的本发明的具体实施例来呈现以上简要描述的本发明的更具体描述。可以理解,这些附图只描绘了本发明的各典型实施例,并且因此不被认为是对其范围的限制,将通过使用附图并利用附加特征和细节来描述和解释本发明,在附图中:
图1示出了其中可采用本文中所描述的原理的示例计算系统;
图2示出了可以表示软件组件的特定用户界面控件,所述软件组件依据由用户界面控件占据的角色执行角色逻辑组件;
图3示出了在其中向创建模块馈送控件创建数据、模板选择器和角色标识符以因而创建用户界面控件的创建环境;
图4抽象描述了在其中通过多个通信链接耦合多个用户界面控件的环境;
图5示出了第一用户界面控件(在其能力为收集者时)从第二用户界面控件(在其能力为提供者时)获取数据的方法的流程图;
图6示出了显示包括收集者、提供者和终端用户这三个节点的链接通信图;
图7示出了表示由正担当提供者角色的用户界面控件所支持的用户界面元素的用户界面;以及
图8示出了表示由正担当提供者角色和收集者角色这两者的用户界面控件所支持的用户界面元素的用户界面。
详细描述
在此所述的至少一些实施例涉及用户界面控件,所述用户界面控件具有依据该用户界面控件所担当的角色来处理不同角色逻辑的不同逻辑组件。所述用户界面控件还可具有执行可跨多个用户界面控件公共的通用功能的通用功能组件。例如,通用功能组件可以由模板来提供。而且,大多数逻辑组件也可以由模板来提供,这样,用户界面元素的功能是数据驱动的,可能仅涉及以声明性方式定义逻辑组件的功能。
在此所述的至少一些实施例还可以涉及用于在两个用户界面控件之间进行通信以建立通信链接的协议。例如,第一用户界面控件请求来自第二用户界面控件的信息,随后(例如,通过从用户请求信息或通过从循环执行同一通信协议的另一个用户界面控件索要一些或所有的所请求信息)获得所请求的信息。第二用户界面控件随后将所请求的信息提供给第一用户界面控件,并且随后等待所请求信息的验证。在这种场景中,第一用户界面控件具有在其中第一用户界面控件收集信息的收集者角色,而第二用户界面控件可以具有在其中第二用户界面控件提供信息的提供者角色。可存在以串行或层次方式安排的多个这样的通信链接。而且,所述层次可以由松散耦合且在多个流程中可重新使用的组件构成。因此,任何给定的用户界面控件可以同时执行收集者和提供者两者的角色。
将参考图1描述对计算系统的一些介绍性讨论。随后,将参考后续的附图来描述示例用户界面、方法和支持体系结构。
计算系统现在越来越多地采取多种多样的形式。例如,计算系统可以是手持式设备、电器、膝上型计算机、台式计算机、大型机、分布式计算系统或甚至常规上不被认为是计算系统的设备。在本说明书以及权利要求书中,术语“计算系统”被广义地定义为包括任何设备或系统(或其组合),该设备或系统包含至少一个物理且有形的处理器以及其上能具有可由处理器执行的计算机可执行指令的物理且有形的存储器。存储器可以采取任何形式,并可以取决于计算系统的性质和形式。计算系统可以分布在网络环境中,并可包括多个组分计算系统。
如图1所例示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,该物理系统存储器可以是易失性的、非易失性的、或两者的某种组合。术语“存储器”也可在此用来指示诸如物理存储介质这样的非易失性大容量存储器。如果计算系统是分布式的,则处理、存储器和/或存储能力也可以是分布式的。如本文中所使用的,术语可执行模块摂或可执行组件摂可指可在计算系统上执行的软件对象、例程或方法。此处所描述的不同组件、模块、引擎以及服务可以实现为在计算系统上执行的对象或进程(例如,作为分开的线程)。
在随后的描述中,参考由一个或多个计算系统执行的动作描述了各实施例。如果这样的动作是以软件实现的,则执行动作的相关联计算系统的一个或多个处理器响应于已经执行了计算机可执行指令来引导计算系统的操作。例如,这样的计算机可执行指令可以在形成计算机程序产品的一个或多个计算机可读介质上实现。这样的操作的示例涉及对数据的操纵。计算机可执行指令(以及被操纵的数据)可以存储在计算系统100的存储器104中。计算系统100还可包含允许计算系统100例如通过网络110与其他消息处理器通信的通信信道108。计算系统100还可包括可用于显示诸如此处所描述的用户界面之类的各用户界面的显示器112。
本文中描述的各实施例可包括或利用专用或通用计算机,该专用或通用计算机包括诸如例如一个或多个处理器和系统存储器等计算机硬件,如以下更详细讨论的。本文中描述的各实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是可由通用或专用计算机系统访问的任何可用介质。存储计算机可执行指令的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。由此,作为示例而非限制,本发明的各实施例可包括至少两种显著不同的计算机可读介质:计算机存储介质和传输介质。
计算机存储介质包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储设备、或者可用于存储以计算机可执行指令或数据结构的形式的期望程序代码手段且可由通用或专用计算机访问的任何其他有形介质。
“网络”被定义为使得电子数据能够在计算机系统和/或模块和/或其它电子设备之间传输的一个或多个数据链路。当信息通过网络或另一个通信连接(硬连线、无线、或者硬连线或无线的组合)传输或提供给计算机时,该计算机将该连接适当地视为传输介质。传输介质可以包括可用于携带计算机可执行指令或数据结构形式的期望程序代码装置并可被通用或专用计算机访问的网络和/或数据链路。上述的组合应当也被包括在计算机可读介质的范围内。
此外,在到达各种计算机系统组件之后,计算机可执行指令或数据结构形式的程序代码资料可从传输介质自动传输到计算机存储介质(或反之亦然)。例如,通过网络或数据链路接收到的计算机可执行指令或数据结构可以在网络接口模块(例如,“NIC”)内的RAM中被缓冲,然后最终被传输至计算机系统RAM和/或计算机系统处的较不易失性的计算机存储介质。因而,应当理解,计算机存储介质可被包括在还利用(或甚至主要利用)传输介质的计算机系统组件中。
计算机可执行指令例如包括,当在处理器处执行时使通用计算机、专用计算机、或专用处理设备执行某一功能或某组功能的指令和数据。计算机可执行指令可以是例如二进制代码、诸如汇编语言之类的中间格式指令、或甚至源代码。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述特征或动作。相反,上述特征和动作是作为实现权利要求的示例形式而公开的。
本领域的技术人员将理解,本发明可以在具有许多类型的计算机系统配置的网络计算环境中实践,这些计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持式设备、多处理器系统、基于微处理器的或可编程消费电子设备、网络PC、小型计算机、大型计算机、移动电话、PDA、寻呼机、路由器、交换机等等。本发明也可在其中通过网络链接(或者通过硬连线数据链路、无线数据链路,或者通过硬连线和无线数据链路的组合)的本地和远程计算机系统两者都执行任务的分布式系统环境中实施。在分布式系统环境中,程序模块可以位于本地和远程存储器存储设备二者中。
图2示出可以表示软件组件的特定用户界面控件200,所述软件组件可以例如由图1的计算系统100来执行,并且这可以导致在显示器112上显示对应的用户界面元素。
用户界面控件200能够实现几个角色中的任意一个或多个。例如,特定用户界面控件200包括用于当特定用户界面控件200分别具有第一、第二和第三角色时处理相应的第一、第二和第三逻辑的三个不同的角色逻辑组件201、202和203。具体地,用户界面控件200具有当用户界面控件200具有第一角色时用于处理第一角色逻辑的第一角色逻辑组件201、具有当用户界面控件200具有第二角色时用于处理第二角色逻辑的第二角色逻辑组件202,以及具有当用户界面控件200具有第三角色时用于处理第三角色逻辑的第三角色逻辑组件203。省略号204表示可以存在由用户界面控件200所实现的任意数目的多个角色。
用户界面控件200还包括用于执行通用功能的通用功能组件210。这样的通用功能可以包括例如用于与其它用户界面控件通信以接收来自其它用户界面控件的数据或将数据提供给其它用户界面控件的通信功能211。通用功能还可以包括用于维护用户界面控件200的当前一个或多个角色的记录的角色管理功能212。在一些实施例中,可能已经从一组可用的模板的一个模板中创建了用户界面控件。每个模板可以包括对应的通用功能组件以及每个角色逻辑组件的大部分代码。实际上,来自用户界面模板之一的用户界面控件的构建可以实质上是数据驱动的。例如,模板可以包括用户界面构成方面并具有配套代码制品。因此,模板可以封装视觉、交互和后端行为和逻辑。
图3示出了在其中向创建模块310馈送控件创建数据301、模板选择器302和角色标识符303的用户界面控件创建环境300。可用模板320被示为包括三个用户界面控件模板321、322和323,但是省略号324表示了存在任意数目的用户界面控件模板320可供用户界面控件作者使用。对于用户界面控件将要具有用于其对应的角色逻辑组件的每个角色来说,作者提供了创建数据301和模板选择器302。随后,创建模块310提供具有合适的角色逻辑组件(例如201、202、203和204)的用户界面控件305,并且还具有校正通用功能210。
例如,通过多个步骤引导用户的向导模板可以被用于角色逻辑组件。向导模板可以与执行任务的各步骤的所有通用代码一起提供,并且可仅要求步骤的名字和到下一步骤的指针。在这种情况下,模板可以是数据驱动的,其中用户提供关于步骤的数据(例如名字、指针目的地等等)以及对这些步骤的改变或完成作出反应的可选控制器逻辑。显示可填充的字段的表格模板可以被用于角色逻辑组件。用户可以仅仅提供用于表格布局的模板和合适的数据。向用户呈现选择列表的选择器模板可以被用于角色逻辑组件,在这种情况下,可能仅将可选择项的名字作为数据提供。
创建的用户界面控件在不同的上下文中可以是可重新使用的。在一个实施例中,同一用户界面控件的每个实例的操作可以取决于输入数据和用户界面控件的每个实例在其中操作的上下文而不同。这样,一旦用户界面控件被创建,同一用户界面控件的多个实例可以被用在不同的处理流程中。
在一个实施例中,由第一角色逻辑组件201实现的第一角色可以是例如收集者角色,在其中用户界面控件从一个或多个其它界面控件处收集数据。由第二角色逻辑组件202实现的第二角色可以是例如提供者角色,在其中特定用户界面控件将数据提供给一个或多个其它用户界面控件。
第三角色的示例可以是供应角色。例如,供应用户界面控件可以针对特定目的聚集数据。供应角色意指用户界面控件可以随后使用所聚集的数据以便执行诸如例如资源创建之类的其它任务。
当第一用户界面控件执行收集者的第一角色而第二用户界面控件执行提供者的第二角色时,在两个用户界面控件之间的通信链接可以在第一和第二用户界面控件之间实现。在这样的通信链接中,在第一用户界面控件请求由第二用户界面控件提供的数据之后,第一用户界面控件收集这样的信息。下面将描述关于用于通信链接的示例通信协议的更多内容。
图4抽象说明了在其中通过多个通信链接耦合多个用户界面控件的环境400。每个用户界面控件由对应的环表示。例如,环境400被示为包括4个用户界面控件401到404。如果环的右半边被对角线填充,这表示用户界面控件具有收集者角色如果环的左半边被对角线填充,这表示用户界面控件具有提供者角色。因此,用户界面控件401具有收集者角色,用户界面控件402具有收集者和提供者两者的角色,用户界面控件403具有收集者和提供者两者的角色,而用户界面控件404具有提供者角色。
在用户界面控件401(归因于其收集者角色)和用户界面402(归因于其提供者角色)之间建立通信链接411。类似地,在用户界面控件402(归因于其收集者角色)和用户界面403(归因于其提供者角色)之间建立通信链接412。最后,在用户界面控件403(归因于其收集者角色)和用户界面404(归因于其提供者角色)之间建立通信链接413。
根据下文中所述的协议,用户界面控件401将信息请求(如箭头421所示)提交给用户界面控件402,并从用户界面控件402接收所请求的信息(如箭头431所示)。作为收集者,用户界面控件401还可以请求来自用户的信息。用户界面控件401还具有如由星号表示的供应角色。因此,用户界面控件401可以使用所请求的信息以执行某种任务,例如资源创建。当用户界面控件401提交信息请求421时,用户界面控件401还可以使得用户界面控件402被实例化,并将输入数据提交给用户界面控件402。
为了提供所请求的信息,用户界面控件402向用户界面控件403提交信息请求(如箭头422所示)并从用户界面控件403接收所请求的信息(如箭头432所示)。用户界面控件402还可以提示用户输入数据。当用户界面控件402提交信息请求422时,用户界面控件402还可以使得用户界面控件403被实例化,并将输入数据提交给用户界面控件403。
为了将所请求的信息提供给用户界面控件402,用户界面控件403向用户界面控件404还提交另一信息请求(如箭头423所示),并从用户界面控件404接收所请求的信息(如箭头433所示)。用户界面控件403还可以提示用户输入数据。当用户界面控件403提交信息请求423时,用户界面控件403还可以使得用户界面控件404被实例化,并将输入数据提交给用户界面控件404。
为了将所请求的信息提供给用户界面控件403,用户界面控件404可以提示用户输入数据。一旦提供了输入数据,并且用户确认该输入数据,所请求的信息被提供返回用户界面控件403。
现在将参考图5和图6来描述每个通信链接的示例通信协议。图5示出了第一用户界面控件(在其能力为收集者时)从第二用户界面控件(在其能力为提供者时)获取数据的方法500的流程图。通信协议不要求用户界面控件具有共享存储器。因此,用户界面控件可以在不同的进程上或甚至在不同的机器上运行。这样,在此所述的原理可以在分布式应用中和/或具有提供用户界面控件(就像当应用允许扩展作者为该应用创作扩展时的情况那样)的多个源的应用中被有效使用。
方法500包括由在通信链接中的第一用户界面控件执行的动作(如在图5的左栏中标题“收集者”下所表示的)。方法500还包括由在通信链接中的第二用户界面控件执行的动作(如在图5的左栏中标题“提供者”下所表示的)。
收集者首先请求来自提供者的信息(动作511)。作为该进程的部分,收集者还可以将用作提供者的用户界面控件实例化,并使得实例化的用户界面控件担当提供者角色。收集者还可以为提供者提供输入数据,输入数据很可能比收集者可用的数据总量小很多。输入数据还可以包括元数据,其中所述输入数据可以被用作一些字段的默认值。图6示出了显示包括收集者、提供者和终端用户的三个通信节点的链接通信图600。收集者被示为通过箭头601将初始数据和上下文信息发送给提供者。因此,图6的箭头601是图5的动作511的示例。图5将频繁参考图6描述。随后,提供者接收获取信息的请求(动作521)。这个接收还由图6中的箭头601表示。
随后,提供者获取所请求的信息(动作522)。例如,对于一些或所有的所请求信息,提供者可以提示用户所请求的信息。参考图6,提供者可以从用户搜寻和获取输入(由箭头602表示)。或者,提供者可以自己承担收集者角色并再次递归开始方法500,这次还使用又一个用户界面控件作为收集者。
当提供者获得所请求的信息时,该提供者执行所请求的信息的验证。这种验证是在提供者上下文中。参考图6,提供者如箭头603所示验证。提交通信604表示用户提交输入数据的意向。例如用户可以选择在用作提供者并出于接收用户输入的目的向用户呈现的用户界面控件中的“提交”或“OK”或“完成”按键。
提供者随后将所请求的信息提供给收集者(动作524)。此时,提供者还是将所提供的数据作为完整提供而对待。因此,提供者用户界面控件保持显示通过收集者的待定验证。随后,收集者接收所请求的信息(动作512)。动作524和512由图6中的箭头605统一表示。因此,所请求的信息的提供就像尝试/提交编程模型中的“尝试”。
随后,收集者在其自身的上下文中验证所请求的信息(动作513),在大多数情况下,可以比提供者的上下文更加宽泛,因为收集者仅仅向提供者请求正被构建的较大项的数据的一部分。如果收集者没有成功验证所请求的信息,收集者向提供者传送一个或多个错误(由图6中的箭头606表示)。随后,提供者可以通过可能提示用户不同的输入和可能通过显示错误给用户(因而使得用户执行校正动作,例如提供所需附加输入或改变一些字段值)来尝试获取没有错误的更多信息。
如果收集者成功验证所请求的信息,收集者告知提供者所请求的信息被验证(动作514),据此提供者接收通信(动作525)。动作514和525由箭头606表示,这就像在尝试/提交编程模型中的“提交”。
一旦提供者从收集者接收验证,那么收集者执行后验证动作(动作526)。例如,用作提供者的用户界面控件可能关闭。提供者用户界面控件的这种关闭由图6中的箭头607表示。因为用户界面控件用作数据的提供者,所以提供者担当收集者。因此,尽管提供者用户界面控件可以执行其自身的所请求信息的验证,提供者主命令是提供对收集者可接受的所请求的信息。因此,提供者直到收集者用户界面控件验证了所请求的信息,才自身满足于它已经完成该任务。
参考回图4,注意通信链接形成一系列用户界面控件。然而,可形成任何层次的通信链接。例如,任何给定收集者可以征集多个提供者来提供收集者感兴趣的所有信息。甚至可能存在许多(可能几十或甚至数百个)提供者正在工作以提供收集者所请求的信息。
图7示出了表示由用户界面控件所支持的用户界面元素的用户界面700,所述用户界面控件正担当提供者角色。如前所述,提供者角色是要获取所请求的信息。因此,用户界面700提供表格。回想图3,给定用户界面控件的作者可以指定控件模板(在这种情况下是表格)、创建数据(在这种情况下是要插入的字段名且可能是布局模板)以及由结果表格所服务的对应角色(在这种情况下是提供者角色)。用户将把所请求的信息输入到用户界面元素700中,并选择OK按键以由此引起在图6中的箭头604的提交操作。参考图3,当用户界面控件700的作者使用控件创建器310时,该作者可能已经提供了表格模板的标识符,并提供了字段的名字(在这种情况下包括“Server Name(服务器名)”、“Server Admin Login(服务器管理登录)”、“Password(密码)”以及“Confirm Password(确认密码)”)以及指定的提供者角色。
图8示出了表示由用户界面控件所支持的用户界面元素的用户界面800,所述用户界面控件正担当提供者角色和收集者角色这两者。还有,在这种情况下,用户界面控件还正在担当供应商角色以由此创建项。例如,表格801表示用户界面元素的通过从用户收集创建输入来用作提供者的部分。向导802表示用户界面元素的用作收集者的部分。目前,服务器处于被配置的过程中,就是说收集者已经请求来自另一个提供者的关于该服务器的信息,并且正在等待所请求的信息。一旦已经收集了所有所请求的信息,创建按键803可以被启用。参考图3,当用户界面控件800的作者使用控件创建器310时,该作者可以已经提供了表格模板的标识符,并提供了字段的名字以及指定的提供者角色。还有,作者可以已经提供了向导模板的标识符,以及要执行的步骤的名字。
因此,在此所述的原理提供了一种用于创作用户界面控件并允许这些控件彼此合作以获取完成任务所需的信息。
本发明可具体化为其它具体形式而不背离其本质特征。所描述的实施例在所有方面都应被认为仅是说明性而非限制性的。从而,本发明的范围由所附权利要求书而非前述描述指示。落入权利要求书的等效方案的含义和范围内的所有改变应被权利要求书的范围所涵盖。

Claims (9)

1.一种由计算系统的一个或多个处理器执行的计算机实现的方法,所述计算系统包括包含计算机可执行指令的存储器,所述计算机可执行指令使得所述一个或多个处理器执行时,执行所述计算机实现的方法,并且其中所述计算机实现的方法生成能够实现几个角色中任意角色的用户界面控件,所述计算机实现的方法包括:
接收控件创建数据和为用户界面控件从多个模板中选择的模板,所述模板提供使得多个角色中的每一角色能够从该模板被实例化的多个角色逻辑组件,并且所述模板还提供通用功能组件,所述通用功能组件用于执行对从所述模板实例化的用户界面控件的每一实例而言公共的一个或多个通用功能;
接收对应于第一角色的第一角色ID;
创建对应于所述第一角色ID的第一用户界面控件实例,所述第一用户界面控件实例包括对应于所述第一角色ID的逻辑并且包括一个或多个通用功能,所述逻辑对应于由所述模板提供的第一角色ID以及一个或多个通用功能;
创建对应于与第二角色相对应的第二角色ID的第二用户界面控件实例,所述第二用户界面控件实例包括对应于第二角色ID的逻辑并且包括一个或多个通用功能,所述逻辑对应于由所述模板提供的第二角色ID以及一个或多个通用功能;以及
其中所述通用功能中的至少一个通用功能是可由所述第一和第二用户界面控件实例中的每一个执行,其中所述通用功能中的至少一个通用功能能够实现所述第一和第二用户界面控件实例之间的通信,并且其中所述通用功能中的至少一个通用功能使得所述第一和第二用户界面控件实例中的每一者能够将数据提供给另一方以及从另一方接收数据。
2.如权利要求1所述的计算机实现的方法,其特征在于,所述第一角色包括收集者角色,所述收集者角色允许所述第一用户界面控件实例从所述第二用户界面控件实例收集数据。
3.如权利要求2所述的计算机实现的方法,其特征在于,所述第二角色包括提供者角色,所述提供者角色允许所述第二用户界面控件实例将数据提供给所述第一用户界面控件实例。
4.如权利要求3所述的计算机实现的方法,其特征在于,执行所述第一角色的所述第一用户界面控件实例和执行所述第二角色的所述第二用户界面控件实例构建一个通信链接,在所述通信链接中所述第二用户界面控件实例将所述第一用户界面控件实例所请求的数据提供给所述第一用户界面控件实例。
5.如权利要求1所述的计算机实现的方法,其特征在于,所述用户界面控件相对于不同的通信链接同时执行所述第一角色和第二角色。
6.如权利要求1所述的计算机实现的方法,其特征在于,所述通用功能组件执行的所述通用功能的至少一个通用功能是角色管理功能,当所述角色管理功能被执行时,维持对应的用户界面控件实例的当前一个或多个角色的记录。
7.如权利要求1所述的计算机实现的方法,其特征在于,所述角色逻辑组件中的一个角色逻辑组件包括第三角色,所述第三角色当被执行时为所述用户界面控件的另外实例提供供应商角色。
8.一种用于计算机架构的系统,包括:
一个或多个处理器;
显示器;
包含计算机可执行指令的存储器,当所述一个或多个处理器执行所述计算机可执行指令时,执行由计算系统的一个或多个处理器执行的一个计算机实现的方法,所述计算机实现的方法在显示屏处生成用户界面控件,所述用户界面控件能够实现几个角色中的任意角色,所述计算机实现的方法包括:
接收控件创建数据和为用户界面控件从多个模板中选择的模板,所述模板提供使得多个角色中的每一角色能够从所述模板被实例化的多个角色逻辑组件,并且所述模板还提供通用功能组件,所述通用功能组件用于执行对从所述模板实例化的用户界面控件的每一实例而言公共的一个或多个通用功能;
接收对应于第一角色的第一角色ID;
创建对应于所述第一角色ID的第一用户界面控件实例,所述第一用户界面控件实例包括对应于所述第一角色ID的逻辑并且包括一个或多个通用功能,所述逻辑对应于由所述模板提供的第一角色ID以及一个或多个通用功能;
创建对应于与第二角色相对应的第二角色ID的第二用户界面控件实例,所述第二用户界面控件实例包括对应于所述第二角色ID的逻辑并且包括一个或多个功能,所述逻辑对应于由所述模板提供的第二角色ID以及一个或多个通用功能;以及
其中所述通用功能中的至少一个通用功能是可由所述第一和第二用户界面控件实例中的每一个执行,其中所述通用功能中的至少一个通用功能实现所述第一和第二用户界面控件实例之间的通信,并且所述通用功能中的至少一个通用功能使得所述第一和第二用户界面控件实例中的每一者能够将数据提供给另一方以及从另一方接收数据。
9.一种或多种包含计算机可执行指令的计算机可读存储设备,所述计算机可执行指令致使一个或多个处理器执行如权利要求1-7中任一项所述的计算机实现的方法。
CN201580018581.4A 2014-04-02 2015-03-31 用户界面控件和通信 Active CN106164854B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461974185P 2014-04-02 2014-04-02
US61/974,185 2014-04-02
US14/306,095 US10175953B2 (en) 2014-04-02 2014-06-16 User interface control and communication
US14/306,095 2014-06-16
PCT/US2015/023447 WO2015153525A1 (en) 2014-04-02 2015-03-31 User interface control and communication

Publications (2)

Publication Number Publication Date
CN106164854A CN106164854A (zh) 2016-11-23
CN106164854B true CN106164854B (zh) 2020-03-10

Family

ID=54210805

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580018581.4A Active CN106164854B (zh) 2014-04-02 2015-03-31 用户界面控件和通信

Country Status (4)

Country Link
US (1) US10175953B2 (zh)
EP (1) EP3126964B1 (zh)
CN (1) CN106164854B (zh)
WO (1) WO2015153525A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10078740B2 (en) * 2014-12-01 2018-09-18 Google Llc Method to fetch functionality across applications
CN108768957B (zh) * 2015-06-12 2021-10-15 华为技术有限公司 一种应用的用户信息管理的方法、设备及系统
EP4275141A1 (en) * 2021-02-23 2023-11-15 Coda Project, Inc. System, method, and apparatus for publication and external interfacing for a unified document surface

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101739251A (zh) * 2008-11-17 2010-06-16 康佳集团股份有限公司 一种界面控件生成方法及其系统
CN101828166A (zh) * 2007-10-19 2010-09-08 微软公司 动态更新的虚拟列表视图

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5764958A (en) 1995-11-30 1998-06-09 International Business Machines Corporation Method and apparatus for creating dynamic roles with a system object model
US6785812B1 (en) 2000-01-14 2004-08-31 Avaya Technology Corp. Secure and controlled electronic document distribution arrangement
US6819343B1 (en) * 2000-05-05 2004-11-16 Microsoft Corporation Dynamic controls for use in computing applications
US7134085B2 (en) 2000-12-13 2006-11-07 National Instruments Corporation System and method for automatically configuring program data exchange
US7155681B2 (en) 2001-02-14 2006-12-26 Sproqit Technologies, Inc. Platform-independent distributed user interface server architecture
US20020116225A1 (en) 2001-02-15 2002-08-22 Margaret Morse Tracking and reporting client outcome
US20030043192A1 (en) * 2001-08-31 2003-03-06 Schlumberger Technology Corporation Dynamically modifiable user interface
US7340526B2 (en) 2001-10-30 2008-03-04 Intel Corporation Automated content source validation for streaming data
US7234158B1 (en) 2002-04-01 2007-06-19 Microsoft Corporation Separate client state object and user interface domains
US7251808B2 (en) * 2003-09-11 2007-07-31 International Business Machines Corporation Graphical debugger with loadmap display manager and custom record display manager displaying user selected customized records from bound program objects
WO2005076130A1 (en) * 2004-02-03 2005-08-18 Corizon Limited Method and apparatus for composite user interface creation
US20060015755A1 (en) 2004-07-16 2006-01-19 Uptake Systems, Inc. Data collector systems and methods
US20060236254A1 (en) * 2005-04-18 2006-10-19 Daniel Mateescu System and method for automated building of component based applications for visualizing complex data structures
US7831918B2 (en) * 2005-09-12 2010-11-09 Microsoft Corporation Content based user interface design
US8782539B2 (en) 2005-10-05 2014-07-15 Invensys Systems, Inc. Generic utility supporting on-demand creation of customizable graphical user interfaces for viewing and specifying field device parameters
US7921367B2 (en) * 2005-12-20 2011-04-05 Oracle International Corp. Application generator for data transformation applications
US20070300167A1 (en) * 2006-06-21 2007-12-27 Prashanth Kadur Integrated development environment and related methods
US20080244693A1 (en) 2007-03-28 2008-10-02 Bea Systems, Inc. Smart web services policy selection using machine learning
US8214753B2 (en) * 2009-02-20 2012-07-03 International Business Machines Corporation Logic for designing portlet views
US8726230B1 (en) * 2011-10-07 2014-05-13 Google Inc. Generating a user interface for sending data among resources
US20140115503A1 (en) * 2012-10-23 2014-04-24 Prashant Mishra User interface element-based development
US8966438B2 (en) * 2013-06-02 2015-02-24 Mark Spencer Chamberlain System and methods for end-users to graphically program and manage computers and devices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101828166A (zh) * 2007-10-19 2010-09-08 微软公司 动态更新的虚拟列表视图
CN101739251A (zh) * 2008-11-17 2010-06-16 康佳集团股份有限公司 一种界面控件生成方法及其系统

Also Published As

Publication number Publication date
EP3126964A1 (en) 2017-02-08
WO2015153525A1 (en) 2015-10-08
US10175953B2 (en) 2019-01-08
EP3126964B1 (en) 2020-05-06
CN106164854A (zh) 2016-11-23
US20150288747A1 (en) 2015-10-08

Similar Documents

Publication Publication Date Title
US9672276B2 (en) Multi-act creation user interface element
US8762187B2 (en) Easy process modeling platform
CA2915619C (en) Method and apparatus for customized software development kit (sdk) generation
US11635974B2 (en) Providing a different configuration of added functionality for each of the stages of predeployment, deployment, and post deployment using a layer of abstraction
US9600342B2 (en) Managing parallel processes for application-level partitions
US11797273B2 (en) System and method for enhancing component based development models with auto-wiring
US20190228003A1 (en) Using an Action Registry to Edit Data Across Users and Devices
US20160011912A1 (en) Process scheduling and execution in distributed computing environments
CN106164854B (zh) 用户界面控件和通信
US9904452B2 (en) Building user specific user interface instances
Chowhan Hands-on Serverless Computing: Build, Run and Orchestrate Serverless Applications Using AWS Lambda, Microsoft Azure Functions, and Google Cloud Functions
Galizia et al. Using Apache Airavata and EasyGateway for the creation of complex science gateway front-end
US10169055B2 (en) Access identifiers for graphical user interface elements
US20230266978A1 (en) No-code metadata-driven provisioning of generic document service controls
Shrivastava Learning Salesforce Einstein
US11132374B2 (en) Property painter
Fabiyi et al. Investigating a Science Gateway for an Agent-Based Simulation Application Using REPAST
JP2023537725A (ja) 分析ワークスペースの実体化
Palviainen et al. Towards user-driven cyber-physical systems—Strategies to support user intervention in provisioning of information and capabilities of cyber-physical systems
Huang SportMingles sports social network for iOS
US20130031116A1 (en) Modeled business object data import
Chamarthi Cross platform mobile learning application
US20230267163A1 (en) Runtime completion of web component metadata
Granlund et al. RFC: A user-friendly system for managing and automating network changes in a secure zone model
US20190087919A1 (en) Interface that provides separate data entry and data presentation in a manufacturing environment

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