CN105144220A - 支持计算的基于约束的配置 - Google Patents

支持计算的基于约束的配置 Download PDF

Info

Publication number
CN105144220A
CN105144220A CN201480021482.7A CN201480021482A CN105144220A CN 105144220 A CN105144220 A CN 105144220A CN 201480021482 A CN201480021482 A CN 201480021482A CN 105144220 A CN105144220 A CN 105144220A
Authority
CN
China
Prior art keywords
constraint
evaluation
assembly
configuration
value
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.)
Pending
Application number
CN201480021482.7A
Other languages
English (en)
Inventor
L·尼斯特德
D·康拉德
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 CN105144220A publication Critical patent/CN105144220A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0621Item configuration or customization

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Marketing (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

基于约束的配置器接收用数字值表达的配置属性。使用该数字值执行计算且基于该计算的结果来评估约束。基于所评估的约束来自动显示输出。

Description

支持计算的基于约束的配置
背景
对于配置器(configurator)或配置***,当前存在许多不同用途。例如,产品配置***允许用户配置用户正购买的产品。作为一个具体示例,如果用户正在购买计算机,该用户可上线并使用产品配置器来按照该用户恰好希望的方式来配置该计算机,以使得该用户的个人配置的计算机被发货。
一般而言,存在两种类型的可以使用的配置***。第一种是基于规则的配置***。在这种***中,利用一组规则来实现配置。基于用户输入,规则的一部分被匹配,且规则执行。然而,已经发现基于规则的配置***在许多领域中是有缺点的。例如,基于规则的***尝试具有覆盖每个具体用户输入的规则。可能非常难以创作综合性的规则集合,且这种***是非常脆弱的。如果一规则未被匹配,则基于规则的***可能遇到问题。从而,通常需要大的规则集。
一个示例可能有助于解说基于规则的配置***和基于约束的***之间的差异。在大多数情况下,规则将按照If-Then-Else(如果-那么-否则)的形式来表达。例如,假定想要确保两个颜色变量具有相同颜色。在基于规则的配置***中,这一般可被建模如下:
If(ColorDoor!=Blank)(如果(颜色门!=空))
Then(则)
ColorFrame=ColorDoor(颜色框=颜色门)
If(ColorFrame!=Blank)(如果(颜色框!=空))
Then(则)
ColorDoor=ColorFrame(颜色门=颜色框)
由于约束编程的声明性质,所述相同可用一个约束来实现
ColorDoor=ColorFrame(颜色门=颜色框)
因此,存在从基于规则的配置***朝向基于约束的配置***的一次移动离开。
基于约束的配置***利用约束满足问题求解器或实现配置器中的组合式约束的另一种类型的约束求解器。使用计算机配置***的以上示例,如果用户尝试配置计算机,它可能是:计算机制造商不提供同时具有光学驱动器和额外的硬盘驱动器的计算机。在该情况下,配置器或配置***实现不允许用户将这两种选项均选择的约束。在另一示例中,如果用户正尝试订购某种型号的电视,则该型号可能仅以特定尺寸制造。因此,实现了仅允许用户选择具有可用尺寸之一的给定型号的电视的约束。然而,许多基于约束的配置***不支持使用十进制值表达的属性。类似地,许多基于约束的配置***不执行用十进制或浮点表达式的数值计算。
一些基于约束的配置***不执行数值计算。然而,为了这样做,它们需要分开的用户输入。例如,如果基于约束的配置***正在执行包括值A乘以值B的计算,需要该用户将A和B两个值均输入并且随后致动分开的用户输入机制以便使计算结果被显示。
提供以上讨论仅用作一般的背景信息,并不旨在帮助确定所要求保护的主题的范围。
概述
基于约束的配置器接收用数字值表达的配置属性。使用该数字值执行计算且基于该计算的结果来对约束求值。基于被求值的约束来自动显示输出。
提供该概述以便以简化形式介绍概念的选集,所述概念在以下详细描述中被进一步描述。该概述不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在被用来帮助确定所要求保护的主题的范围。所要求保护的主题不限于解决在背景中提及的任何或所有缺点的实现。
附图简述
图1是基于约束的配置***的一个实施例的框图。
图2是示出图1所示的***的总体操作的一个实施例的流程图。
图3A-3J是示例性用户界面显示。
图4-6示出基于约束的配置***的不同实现。
图7是其中基于约束的配置***可被部署的各种架构的框图。
图8-12示出了多个不同移动设备。
图13是一个说明性计算环境的框图。
详细描述
图1是一个说明性的基于约束的配置***100的框图。***100被示为生成具有供用户106使用的用户输入机制104的用户界面显示102。在图1中示出的实施例中,***100包括配置器组件108、约束满足问题(CSP)求解器组件110以及求值引擎112。CSP求解器组件110被示出为访问一组约束111。求值引擎112说明性地耦合到可调用库组件114和数学函数求值器组件116。***100还说明性地包括处理器118和数据存储120。图1还示出了,在一个实施例中,***100包括用户界面组件122。
配置器组件108使用用户界面组件122来生成用户界面显示102。用户界面显示102具有允许用户106配置要被配置的项的用户输入机制104。在关于图1讨论的实施例中,基于约束的配置***100将被部署为允许用户106配置产品的产品配置***。当然,此环境仅是作为示例来描述的,且也可使用各种其他环境。以下描述这些的示例。
处理器118说明性地是具有相关联的存储器和时序电路(未分开示出)的计算机处理器。其说明性地为***100的功能部件,并且由***100中的各种组件和引擎激活,并且促进所述各种组件和引擎的功能性。
数据存储120解说性地存储可由处理器118用于促进***100中的组件和引擎的功能性的数据和其他指令。当然,数据存储120也可存储其他数据。还应当注意,尽管存储120被示出为作为***100的一部分的单个数据存储,然而该存储也可以是多个不同数据存储。此外,该数据存储可以位于***100本地或在***100远程(并能由***100访问),或一些数据存储可位于本地而一些数据存储可位于远程。
还要注意,在***100中已经示出了各种组件和引擎。然而,那些组件和引擎可被组合为执行该功能性的更少的组件或引擎,或者它们可以被分为更多组件和引擎,这些组件和引擎中的每一个执行该功能性的一子集。本文构想了所有这些体系结构。
在详细描述***100的操作之前,将给出概览以增强理解。用户106使用显示器102上的用户输入机制104来提供用户输入以配置产品。用户输入机制104可包括各种用户输入机制中的任何机制,诸如按钮、链接、下拉菜单、复选框、网格、或其他用户可致动的输入机制。它们还可以按各种不同方式来致动。例如,在用户界面显示102被显示在触敏显示屏上的情况下,用户106可使用他或她的手指、指示笔或另一设备来致动用户输入机制104。类似地,用户输入机制104可以是在显示设备上显示的软键盘、硬件键盘、指点和点击设备,诸如鼠标或轨迹球,且其中基于约束的配置***100被提供有语音识别组件,用户106可使用话音命令来激活用户输入机制104。而且,用户输入机制104可使用拇指垫(thumbpad)、键盘、或各种其他项来致动。
当用户106已提供了用户输入时,配置器108使用约束满足问题(CSP)求解器组件110来求解用于配置产品的组合式约束。尽管本讨论通过描述具有CSP求解器的***来进行,然而可使用任何约束求解器。例如,可使用满足性求解器(SAT求解器)或另一约束求解器。CSP求解器只是出于示例的目的而描述的。作为示例,如果用户正在订购来自销售商的电视机,则情况可以是:来自该销售商的特定尺寸的电视仅有银色和黑色,而没有白色。因此,CSP求解器组件110接收用户输入并应用和求解约束111。当然,要注意,约束111可被存储在存储120中或约束111可被分开存储或约束111可在***100外部并由***100访问等。
配置器组件108使用求值引擎112来对数学公式求值或调用用于求值的方法。数学或逻辑公式是采用一个或多个变量作为输入并预期一个或多个变量作为输出的数学或逻辑函数。变量可以是数字或其他类型。所述方法可位于***内部或外部。例如,所述方法可位于可调用库中、在第三方***处等。求值引擎112说明性地访问数学函数求值器组件116来基于用户106所提供的输入来对数学函数求值。数学函数求值器组件116具有公式集合,所述公式具有给定输入变量集合和目标变量。当用户或另一组件提供输入变量时,组件116对公式求值来获得目标值作为结果。
求值引擎112也可调用可调用库组件114以便执行求值。可调用库组件114包括具有给定输入变量集合和一个目标变量或多个目标变量的方法的集合。仅为便于举例,本讨论关于具有单一目标变量的实施例来进行。当用户106提供输入变量中的一个或多个输入变量时,求值引擎112可调用可调用库组件114来获得目标变量或目标变量的估计值。例如,在一些输入变量未被设置或推导出的情况下,求值引擎112仍旧可求值并调用函数和方法。例如,在具有丢失值的那些输入变量可使用针对每个变量类型的缺省值的情况下,这可以实现。求值引擎112提供被求值的变量给配置器组件108,该配置器组件可向CSP求解器组件110通知新值已被获得,以便CSP求解器组件110可基于新值来对各约束111求解。
图2是更详细地示出图1所示的基于约束的配置***100的总体操作的一个实施例的流程图。图3A-3J示出了***100生成的说明性用户界面显示。现在将彼此结合地来描述图2和3A-3J。
本描述将在***100为允许用户配置盒子的配置***的情况下进行。这仅是示例且仅是为说明性目的描述的。***100可在许多不同环境中使用。
图3A是显示允许用户配置该盒子的产品配置模型的性质的用户界面显示148的一个示例。该模型包括可由用户设置的变量152的集合。每个变量152具有在列154中的名称、在列156中的由CSP求解器组件110使用的名称、以及在列158中的变量类型。尽管该示例示出列154中的用户友好的名称和列156中的组件110所使用的名称两者,然而也可使用单个名称。可使用添加按钮160来添加附加变量,且可使用移除按钮162来移除变量。在152处示出的变量包括可使用十进制值或浮点值定义的变量。那些变量包括面积、高度、宽度、长度、和体积。要注意,变量可以是其他的、更复杂的类型的,诸如日期、串、类等。
变量152还包括布尔变量“isBig”。如下面描述的,如果盒子的面积超过给定阈值,则“isBig(为大)”布尔变量具有值“真”。如果面积小于该阈值,则“isBig”布尔变量具有值“假”。
变量152还包括在枚举的文本域中定义的变量。该变量是颜色。该盒子的模型还包括在164示出的至少一个约束以及在166示出的公式集合。约束暗示[isBig,color!=”sliver”]([isBig,颜色!=”银色”])被命名为C1。变量isBig为C1约束的一部分。C1约束意味着:如果“isBig”布尔变量被设置为真,则颜色不能是“银色”。
166处名称为“Area(面积)”的公式示出了通过将长度变量乘以宽度变量来计算面积。如果面积计算(面积>2.5)为真,则颜色控制公式将其目标变量(布尔变量“isBig”)设置为真。体积公式被计算以将其目标变量(体积)设置为通过将面积变量乘以高度变量所计算的值。
为了开始配置盒子,用户首先提供标识用户希望配置的产品(例如该盒子)的适当输入(诸如产品标识符)。配置器组件108随后生成用户界面显示102(使用用户界面组件122),该用户界面显示具有可接收来自用户106的输入的用户输入机制104。这由图2中的框150指示。要注意,显示102也可从组件108独立的生成,诸如由第三方。
继续***100的整体操作的描述,图3B是用户界面显示170的一个实施例,该用户界面显示允许用户106输入各个变量的值以供配置器组件108考虑。用户106可输入长度变量、宽度变量、高度变量、面积变量、或体积变量的值。这些值可以是十进制值、浮点值或其他数字值。类似地,用户可从相应的下拉菜单中选择颜色,且用户还可从下拉菜单中将布尔变量“isBig”设置为真或假。要注意,尽管用户可输入所有这些变量的值,用户还可输入这些变量中的一些变量的值,而其余变量可由配置器组件108来计算(例如,通过使用CSP求解器组件110或求值引擎112之一或两者)。
接下来,再次参考图2,配置器组件108接收将一变量设置为一个值的用户输入。接收将一变量设置为一个值的用户输入由图2中的框176指示,而通过***的另一部分的求值或影响来接收一变量的一个值(如下所述)由框177指示。图3C示出了用户界面显示172的一个实施例,其中用户106已通过将十进制值1.20键入到长度文本框174中而将该数字值作为长度变量输入。因为用户仅已经将十进制值1.20作为长度变量输入,所以还没有足够的信息来对任何约束求值或者执行图3中的约束部分164和公式部分166中指定的任何计算。因此,不发生其他任何事情。这可从图2中示出的流程图看出。该变量已经具有由用户设置的值(在本例中)且这由图2中的框177指示。接收了变量值之后,配置器组件108确定该产品(例如,盒子)的配置是否完整。即,配置器组件108确定所有变量值是否已被充分设置以完全配置该产品。这由图2中的框179指示。答案为“否”,因为只有长度值已经被输入。
配置器组件108从而向CSP求解器组件110通知用户已提供一输入。这在图2中由框178指示。CSP求解器组件110随后确定该变量(为长度输入的值)是否是CSP求解器所求值的约束的一部分。对此问题的答案为“否”,因为在图3A中的164处示出的作为本实施例中的约束的一部分的仅有变量是布尔“isBig”变量和颜色变量。因此,处理在框176处继续。确定该变量是否是CSP求解器组件110所求值的约束的一部分由图2中的框180指示。
配置器组件108还(在其通知组件110同时)通知求值引擎112变量已被设置了值。这由图2中的框182指示。求值引擎112确定该变量的值是否是到公式或方法的输入。这由框184指示。可以看出,对此的答案为“是”,因为在图3A中在166处设置的公式之一为面积公式,该面积公式采用长度和宽度作为输入。因此,求值引擎112随后确定该公式或方法(在此例中为面积公式)是否使全部输入被设置为值以使得其可被计算。这由图2中的框186指示。对此的答案为“否”,因为只有长度变量已被设置为值。该面积公式还需要宽度变量被设置为值。因此,与在CSP求解器组件110处的处理一样,求值引擎112处的处理返回到框176,在该处配置器组件108等待另一输入。
图3D示出了用户界面显示188的一个实施例,其中用户还在文本框190中输入了宽度变量的值。在框177中,配置器组件108再次确定另一变量已经具有由用户设置的值。在框179,配置器组件108随后再次确定该配置未完成。配置器组件108向CSP求解器组件110通知在框178输入的宽度值。CSP求解器组件110随后确定该变量是否是要被CSP求解器组件110求值的约束的一部分。对此的答案为“否”。由CSP求解器组件110求值的仅有约束是C1约束。因此,来自图2中的CSP求解器组件分支的处理再次返回框176来等待另一用户输入或返回框177,其等待来自该***的另一部分的输入。
在框182,配置组件108还向求值引擎112通知新变量值。求值引擎112确定该变量是否是到公式或方法的输入。再次,对此的答案为“是”,因为面积公式采用长度和宽度作为其输入。
求值引擎112随后确定该公式或方法是否具有全部输入被设置为值。对此的答案也为“是”,因为该用户已经为该盒子(产品)的长度变量和宽度变量两者均输入了值。因此,求值引擎112调用可调用库组件114或调用数学函数求值器组件116来对具有所需输入的公式或方法求值。这由图2中的框192指示。
在正被讨论的实施例中,面积公式被数学函数求值器组件116自动求值,该数学函数求值器组件将长度值(1.20)乘以宽度值(1.30)以得到面积变量的值,其为1.56。所得到的面积值被求值引擎112返回到配置器组件108,该配置器组件在面积本文框194中显示该面积值。将目标变量(面积变量)设置为所得到的值(1.56)并将其显示由图2中的框196指示。
还要注意,当求值引擎112将面积计算的结果返回配置器组件108时,配置器组件108确定新变量已经通过求值引擎112的求值设置了其值。即,面积变量已经由求值引擎112设置了其值。因此,配置器组件108再次返回至框179处的处理并确定该盒子的配置是否完成。答案当然为“否”,因为仅长度、宽度、以及面积已经被输入或计算。
因此,配置器组件108同时(或在不同时间)通知CSP求解器组件110面积变量的值已经被设置,且还通知求值引擎112面积变量的值已经被设置。这由图2的框178和182指示。CSP求解器组件110确定该面积变量是否是要被CSP求解器组件110求值的约束的一部分。对此的答案为“否”,同样因为要求值的仅有约束为C1约束。
然而,求值引擎112确定面积变量的值为对另一公式的输入。即,其为对颜色控制公式和“体积”公式的输入,该颜色控制公式设置“isBig”变量而“体积”公式计算体积变量的值。确定这一点由图2中的框184指示。颜色控制公式仅需要一个输入,且其为面积变量的值。体积公式需要面积值和高度值两者。因为高度值尚未被输入或计算,体积公式将不被求值引擎112求值。
然而,在框186,确定颜色控制公式具有为对其求值所需的所有输入。因此,在框192,求值引擎112使用求值引擎112执行比较,或调用可调用库组件114上的方法。如果面积值大于2.5,则比较或方法调用返回“isBig”变量的值“真”,而如果面积不大于2.5,则为“isBig”变量返回“假”值。因为所计算的面积仅为1.56,则该比较或方法调用为布尔“isBig”变量返回值“假”。求值引擎112随后将布尔变量设置为“假”并将其返回给显示该布尔变量的配置器组件108。
可以看出,在图3D中,“isBig”布尔变量在文本框200中被设置为“假”。基于此,配置器组件108随后再次在框177确定已通过求值设置了另一变量的值。即,已通过对颜色控制公式的求值将“isBig”布尔变量的值设置为“假”。基于将“isBig”变量设置为“假”已经没有更多公式要被求值,所以图2的求值引擎侧上的处理在该时刻完成。
然而,配置器组件108通知CSP求解器组件110布尔变量“isBig”的值已被设置。在框180,CSP求解器组件110确定该布尔变量是否是要被CSP求解器组件110求值的约束的一部分。在图3A中的164可以看出,如果“isBig”布尔变量被设置为真,则该盒子不能为银色的。然而,如果“isBig”布尔变量被设置为假,则对该盒子的颜色没有约束,且被提供的所有颜色对该盒子可用。因此,CSP求解器组件110将该变量固定为CSP求解器中的“假”值。这由框204指示。CSP求解器组件110随后找到C1约束满足问题的解并可任选地显示所述解。
在本示例中,C1约束不适用,因为所有颜色均是可用的。然而,寻找解由图2中的框206指示。CSP求解器组件110随后确定,给定已经被固定的那些变量,任何其他变量是否仅有一个可行值。这由图2中的框208指示。对此的答案为“否”,所以处理返回至框176和177。
图3E显示了示出CSP求解器组件110的操作的用户界面显示202的一个实施例。在图3E中可以看出,“isBig”变量在框200中已被设置为“假”。因此,当用户通过致动按钮210来调用针对颜色的下拉菜单时,下拉菜单212被显示。可以看出,为该盒子提供的所有颜色均可用且能由用户选择,包括银色。该用户可选择颜色。
然而,图3F显示了指示当用户在文本框190中将宽度变量的值设置为3.0而不是1.3时C1约束如何被应用的用户界面显示214。求值引擎112自动调用数学函数求值器组件116来计算面积为3.60。“自动”的意思是这是在不需要任何进一步用户动作的情况下完成的。引擎112所做的比较或可调用库组件114的方法调用将布尔变量“isBig”求值为“真”,因为其大于2.5。因此,在文本框200中将布尔变量设置为真。随后,当用户致动按钮210来显示下拉菜单212时,可以看到,除了银色之外的所有颜色可用。这是因为CSP求解器组件110已经应用了C1约束,该约束为:如果“isBig”布尔变量被设置为真,则该盒子不能是银色的。
图3G示出了用户界面显示215的一个实施例,其中用户已经将高度文本框217中的高度变量设置为4.0。在该情况下,相同类型的处理进行且求值引擎112调用数学函数求值器组件116来对“体积”公式求值并将该值设置为14.40。这在文本框216中显示。配置组件108随后确定该配置完成。因此,处理在框179处结束。
以上讨论与图3A中示出的方法有关。然而,也可以使用其他模型。图3H示出了用户界面显示250的另一实施例。用户界面显示250示出了与图3A中所示的类似的一种型号的盒子的性质,且类似的项被类似地编号。然而,可以看出,附加变量已被添加到该盒子。“价格”变量已被添加且这是在十进制域中。此外,“isExpensive(为贵)’变量已被添加且这在布尔域中。
类似地,另一约束164(C2)已被添加,该约束指示“isBig”布尔变量将与“isExpensive”布尔变量具有相同值。即,如果“isBig”布尔变量被设置为真,则“isExpensive”变量也被设置为真,反之亦然。类似地,如果一个被设置为假,则两个均被设置为假。
图3H还示出了已被添加的另一公式166。价格公式被设置成使得如果“isExpensive”布尔变量为真,则价格被设置为10.4。否则,将其设置为2.2。
图3I显示另一用户界面显示260。用户界面显示260类似于图3G中显示的用户界面显示215并且类似的项被类似地编号。然而,附加变量和公式和约束也被示出。因此,可以看出,长度已被设置为1.20,宽度已被设置为3.00,而高度已被设置为4.00。面积已被求值为3.60且体积已被求值为14.40。基于面积变量的值,“isBig”布尔变量已被求值为真,并且因此,基于图3H中示出的附加C2约束,“isExpensive”布尔变量也被设置为真。
再次参考图2中示出的流程图,一旦长度和宽度变量被指定,则面积变量由数学函数求值器组件116来计算。数学函数求值器组件116(或可调用库114)随后还确定布尔变量“isBig”被设置为真。CSP求解器组件110将在框178被通知这一点且该CSP求解器组件将确定“isBig”变量是到C1约束的输入,且它将此约束添加到CSP问题,从而从用户可选择的选项中消除银色这种颜色。这在图2中的框180、204和206处自动执行。
而且,因为“isBig”变量已被设置为真,所以CSP求解器组件110在框208确定其他变量仅具有一个可行值。因为“isBig”变量的值等于“isExpensive”变量的值这一C2约束已被添加,则因为“isBig”变量已被设置为真,所以可推断“isExpensive”变量也为真。因此,在框280,CSP求解器组件110推断“isExpensive”布尔变量的值为真,并在图3I中的框282处显示该值。配置器组件108随后确定“isExpensive”变量已在框177通过推断而被设置为真,并且向求值引擎112通知此变化。
求值引擎112确定这是到价格公式的输入并且因此对价格公式求值以将其设置为值10.4,因为“isExpensive”布尔变量已被设置为真。此值被设置,且在图3I中在文本框284中被显示。此处理在图2中的框184、186、192和196处自动执行。
该用户随后可选择颜色。配置器组件108随后确定该配置在框179完成,且处理结束。
图3J是用户界面显示300的一个实施例,其显示了与图3H中示出的类似的盒子的模型,且类似的项被类似地编号。总而言之,可以看出,该模型具有变量152、约束164、以及公式166。然而,用户界面显示300中示出的模型也包括可对可调用库组件114做出的方法调用302,连同304处的针对那些方法调用的输入和输出。此外,可以看出,风阻变量已经被添加并且风阻计算器类已经在可调用库组件114中被命名。被称为“计算盒子”的方法也已经被定义。方法“计算盒子”将在盒子的长度、宽度、以及高度已知时被调用,以便将风阻属性设置为十进制域中的值。
从而可以看出,配置器模型将约束处理和数学计算和函数调用处理分为两个独立的阶段,这两个阶段均自动通知配置器组件108。配置器组件108还向CSP求解器组件110和求值引擎112两者自动通知另一者的结果。因此,***处理十进制值和浮点值且自动地在进行中(onthefly)进行更复杂的计算且自动显示它们。当值可被推断时,它还推断这些值。因为十进制值和复杂计算是与CSP求解器组件分开地处理的,所以对CSP求解器组件110的性能有非常小的影响。其显著解决了约束问题,且没有影响它的十进制值或计算。
还要注意,上面参考图1-3J的讨论主要是在产品配置器的上下文中的,该产品为盒子。然而,这仅是一个应用,且基于约束的配置***也可被部署在各种其他上下文中。图4示出了其中基于约束的配置***100可被部署的一个架构400。在图4中可以看出,***100被部署在用于产品制造商订单***404的产品配置器402内。即,产品制造商或生产商具有订单***404,在该订单***内产品配置器402部署基于约束的配置***100。***404也还具有其他订单组件406,尽管这些订单组件是任选的。图4中示出的架构400还示出了用户106与在用户设备408上显示的用户界面显示102交互。用户设备408可直接(如由箭头410所指示的)或通过网络412与产品制造商订单***404交互。在任一情况下,产品配置器402的输出可作为输出414被提供至另一***,以便为用户106配置产品。
图5示出了在其中部署基于约束的配置***100的另一架构420。架构100示出了数据中心***422,该数据中心***包括云服务配置器424。***422也可具有其他云服务组件426。在图5中示出的架构中,用户106正在配置基于云的服务或其他数据中心服务,如用户106所期望的。***422生成输出430,该输出可被提供至其他***,以配置用户106所期望的云服务。
图6示出了可在其中部署基于约束的配置***100的又一架构450。架构450示出了包括装备配置器454的本地装备配置器***452。***452也可包括其他装备组件456。***452被用来为期望应用配置一部本地装备。“本地”的意思是该装备已经被拥有且没有像在先前的实施例中所覆盖的那样在购买之前被配置。例如,假定用户106为拥有泵的组织工作。还假定该泵要被部署在给定应用中。在该实施例中,基于约束的配置***100可被用来配置该泵的某些性质以使得该泵以期望方式操作。作为示例,假定该泵具有可配置的冲程长度或位移。这可由用户106使用基于约束的配置***100来设置。类似地,当然,泵的操作速度可以是可配置的或泵的各种其他方面中的任何其它方面也可以是可配置的。在配置约束要被应用的情况下,基于约束的配置***100也可被用来实现这一点。***452说明性地生成输出460,该输出可被用来配置该部特定装备(例如泵)462。
还可以使用其它实施例。例如,***100可被用来配置网络、安装和配置应用、配置操作***等。
图7是图1中显示的***100的框图,除了它被置于云计算架构500中。云计算提供了不要求最终用户知晓交付服务的***的物理位置或配置的计算、软件、数据访问和存储服务。在各个实施例中,云计算通过诸如因特网之类的广域网使用合适的协议来交付服务。例如,云计算提供者通过广域网交付应用,并且它们可以通过web浏览器或任何其他计算组件被访问。***100的软件或组件以及相对应的数据可被存储在远程位置处的服务器上。云计算环境中的计算资源可以被整合在远程数据中心位置处或者它们可以是分散的。云计算基础体系结构可以通过共享数据中心来交付服务,即使在用户看来它们是单个访问点。因此,在此所述的组件和功能可以从使用云计算体系结构的远程位置处的服务提供者来提供。可替代地,它们可以从常规的服务器中提供,或者它们可以直接地或以其他方式安装在客户端设备上。
本说明书旨在包括公共云计算和私有云计算两者。云计算(公共和私有两者)提供了基本无缝的资源联营以及对管理和配置底层硬件基础结构的降低的需求。
公共云由供应商管理,并且通常支持使用同一基础结构的多个消费者。此外,与私有云相反,公共云能够将终端用户从管理硬件中释放出来。私有云可由机构本身管理,并且基础结构通常不与其他机构共享。该机构在某种程度上仍然维护着硬件,诸如安装和维修等。
在图7中显示的实施例中,一些项与图1中显示的那些是类似的,并且它们被类似地编号。图7具体地示出***100位于云502(可以是公共的、私有的或者其中某些部分是公共的而某些部分是私有的组合)中。因此,用户106使用用户设备504通过云502来访问那些***。
图7还描绘了云架构的另一实施例。图7示出还构想了***100中的某些元素被置于云502中而其他元素没有被置于云502中。作为示例,数据存储120可被置于云502的外部,并且通过云502来访问。在另一实施例中,CSP求解器组件110和约束111也在云502的外部。无论它们位于哪里,它们都可直接由设备504通过网络(广域网或局域网)访问,它们可由服务主存在远程站点处,或者它们可作为通过云来提供或通过驻留在云中的连接服务来访问的服务。本文构想了所有这些体系结构。
还要注意,***100或其部分可被置于各种不同的设备上。这些设备中的某些包括:服务器、台式计算机、膝上型计算机、平板计算机、或其他移动设备,诸如掌上计算机、蜂窝电话、功能电话、智能电话、多媒体播放器、个人数字助理等。
图8是可被用作其中可部署本***(或其部分)的用户或客户端的手持式设备16的手持式或移动计算设备的一个说明性实施例的简化框图。图9-12是手持式或移动设备的示例。
图8提供了客户端设备16的组件的大体框图,该客户端设备16可以运行***100的组件或者与***100交互、或二者。在设备16中,提供了通信链路13,该通信链路允许手持设备与其它计算设备通信,并且在一些实施例中提供用于诸如通过扫描来自动接收信息的信道。通信链路13的示例包括:红外端口、串行/USB端口、诸如以太网端口之类的电缆网络端口、以及允许通过一个或多个通信协议的通信的无线网络端口,所述通信协议包括作为用于提供对网络的蜂窝接入的无线服务的通用分组无线服务(GPRS)、LTE、HSPA、HSPA+、以及其他3G和4G无线电协议、1Xrtt和短消息服务,并包括提供对网络的本地无线连接的802.11和802.11b(WiFi)协议、和蓝牙协议。
根据其他实施例,应用或***(如***100)在连接到SD卡接口15的可移动安全数字(SD)卡上被接收。SD卡接口15和通信链路13沿总线19与处理器17(也可实现来自图1的处理器118)进行通信,该总线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执行时致使处理器根据所述指令执行计算机实现的步骤或功能。***100或约束111或数据存储120中的项例如可驻留在存储器21中。类似地,设备16可具有客户端***24,该客户端***可运行各种业务应用或实现***100的部分或全部。处理器17可以也被其他组件激活以促进它们的功能性。
网络设置31的示例包括诸如代理信息、因特网连接信息以及测绘之类的事物。应用配置设置35包括为特定企业或用户定制应用的设置。通信配置设置41提供了用于与其他计算机进行通信的参数,并且包括诸如GPRS参数、SMS参数、连接用户名和口令之类的项目。
应用33可以是之前已经存储在设备16上的应用或是在使用期间安装的应用,但是这些应用可以是操作***29的一部分,或者也可以在设备16之外被托管。
图9示出其中设备16是平板计算机600的一个实施例。在图9中,计算机600被显示为具有在显示屏幕602上显示的用户界面显示202(被用于选择颜色)。屏幕602可以是触摸屏(使得来自用户手指604的触摸姿势可以用于与应用交互)或者启用笔的界面,其接收来自笔或指示笔的输入。其还可以使用屏幕上虚拟键盘。当然,其还例如可以通过诸如无线链路或USB端口之类的合适的附连机制附连到键盘或其他用户输入设备。计算机600还可以解说性地接收语音输入。
图10和图11提供了可使用的设备16的附加示例,尽管也可以使用其他设备。在图10,提供功能电话或移动电话45作为设备16。电话45包括:一组小键盘47,其用于拨打电话号码;显示器49,其能够显示包括应用图像、图标、网页、照片和视频在内的图像;以及控制按钮51,其用于选择在显示器上示出的项目。电话包括天线53,该天线53用于接收诸如通用分组无线服务(GPRS)和1Xrtt之类的蜂窝电话信号以及短消息服务(SMS)信号。在一些实施例中,电话45还包括容纳安全数字(SD)卡57的SD卡槽55。
图11的移动设备是个人数字助理(PDA)59或多媒体播放器或平板计算设备等等(在此称为PDA59)。PDA59包括电感屏61,所述电感屏感测指示笔63(或其他指示器,诸如用户的手指)在该指示笔被置于屏幕之上时的位置。这允许用户在屏幕上选择、突出显示和移动项目以及绘图和书写。PDA59还包括多个用户输入键或按钮(比如按钮65),其允许用户将显示器61上所显示的菜单选项或其他显示选项滚屏,并且允许用户在没有接触显示器61的情况下改变应用或选择用户输入功能。尽管未被示出,但是PDA59可以包括允许与其他计算机进行无线通信的内置天线和红外发射机/接收机、以及允许与其他计算设备的硬件连接的连接端口。这样的硬件连接通常是通过经由串行或USB端口连接到其他计算机的支架来完成的。因此,这些连接是非网络连接。在一个实施例中,移动设备59还包括容纳SD卡69的SD卡槽67。
图12类似于图10,不同之处在于电话是智能电话71。智能电话71具有显示图标或图块或其他用户输入机制75的触敏显示器73。机制75可由用户用来运行应用、进行呼叫、执行数据传输操作,等等。一般而言,智能电话71被构建在移动操作***上且提供比功能电话更高级的计算能力和连接性。
注意,设备16的其他形式是可能的。
图13是其中可采用(例如)***100的计算环境的一个实施例。参考图13,用于实现一些实施例的示例性***包括计算机810形式的通用计算设备。计算机810的组件可以包括,但不限于,处理单元820(可以包括处理器118)、***存储器830和将包括***存储器在内的各种***组件耦合至处理单元820的***总线821。***总线821可以是若干类型的总线结构中的任一种,包括存储器总线或存储器控制器、***总线和使用各种总线体系结构中的任一种的局部总线。作为示例而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和***部件互连(PCI)总线(也称为夹层(Mezzanine)总线)。参考图1描述的存储器和程序可被部署在图13的对应部分中。
计算机810通常包括各种计算机可读介质。计算机可读介质可以是能由计算机810访问的任何可用介质,而且包含易失性和非易失性介质、可移动和不可移动介质。作为示例而非限制,计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质不同于且不包括已调制数据信号或载波。计算机存储介质包括硬件存储介质,该硬件存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据的信息的任何方法和技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括,但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算机810访问的任何其它介质。通信介质通常具体化计算机可读指令、数据结构、程序模块或传输机制中的其他数据,并包括任何信息递送介质。术语“已调制数据信号”是指使得以在信号中编码信息的方式来设置或改变其一个或多个特性的信号。作为示例而非限制,通信介质包括诸如有线网络或直接线连接之类的有线介质,以及诸如声学、RF、红外及其他无线介质之类的无线介质。上述任何组合也应该包括在计算机可读的介质范围内。
***存储器830包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)831和随机存取存储器(RAM)832。包含诸如在启动期间帮助在计算机810内的元件之间传输信息的基本例程的基本输入/输出***833(BIOS)通常存储在ROM831中。RAM832通常包含处理单元820可立即访问和/或当前正在操作的数据和/或程序模块。作为示例而非限制,图13示出了操作***834、应用程序835、其他程序模块836和程序数据837。
计算机810还可以包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作为示例,图13示出了从不可移动、非易失性磁介质中读取或向其写入的硬盘驱动器841,从可移动、非易失性磁盘852中读取或向其写入的磁盘驱动器851,以及从诸如CDROM或其他光学介质等可移动、非易失性光盘856中读取或向其写入的光盘驱动器855。可在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等。硬盘驱动器841通常通过诸如接口840之类的不可移动存储器接口连接到***总线821,并且磁盘驱动器851和光盘驱动器855通常通过诸如接口850之类的可移动存储器接口连接到***总线821。
以上讨论并在图13中示出的驱动器及其相关联的计算机存储介质为计算机810提供了对计算机可读指令、数据结构、程序模块和其他数据的存储。在图13中,例如,硬盘驱动器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描述的多个或所有的元件。图13中所描绘的逻辑连接包括局域网(LAN)871和广域网(WAN)873,但还可包括其他网络。此类联网环境在办公室、企业范围的计算机网络、内联网和因特网中是常见的。
当在LAN联网环境中使用时,计算机810通过网络接口或适配器870连接到LAN871。当在WAN联网环境中使用时,计算机810通常包括调制解调器872或用于通过诸如因特网等WAN873建立通信的其它手段。调制解调器872可以是内置的或外置的,可经由用户输入接口860或其它适当的机制连接到***总线821。在联网环境中,相关于计算机810所示的程序模块或其部分可被存储在远程存储器存储设备中。作为示例,而非限制,图13示出了远程应用程序885驻留在远程计算机880上。应当理解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链路的其它手段。
还要注意,尽管已经描述了各个实施例,然而这些实施例也可被组合。例如,一个实施例的部分可与另一实施例的部分相组合。本文构想了所有这些。
尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。相反,上述具体特征和动作是作为实现权利要求的示例形式公开的。

Claims (10)

1.一种基于约束的配置***,包括:
配置器组件,所述配置器组件生成用户界面显示,所述用户界面显示具有用于接收数字用户输入的用户输入机制;
求值引擎,所述求值引擎从所述配置器组件接收所述数字用户输入并基于所述数字用户输入对数学公式自动求值以得到数字结果并将所述数字结果返回给所述配置器组件,所述配置器组件基于所述数字结果自动显示输出值;以及
计算机处理器,所述计算机处理器是所述***的功能部件且由所述配置器组件和所述求值引擎激活,且促进对所述数学函数的求值。
2.如权利要求1所述的基于约束的配置***,其特征在于,所述配置组件接收约束用户输入,且进一步包括:
约束求解器组件,所述约束求解器组件从所述配置器组件接收所述约束用户输入并基于所述约束用户输入对约束求值以得到约束结果,并将所述约束结果返回给所述配置器组件。
3.如权利要求1所述的基于约束的配置***,其特征在于,所述配置器组件接收十进制值或浮点值作为所述数字用户输入。
4.如权利要求1所述的基于约束的配置***,且其特征在于,进一步包括:
具有方法的可调用库,所述方法能够被所述求值引擎调用以对所述方法求值;以及
数学函数求值器组件,所述数学函数求值器组件能够从所述求值引擎接收所述数字用户输入以对所述数学公式求值。
5.一种储存计算机可读指令的计算机可读存储介质,所述计算机可读指令在被计算机执行时,使得所述计算机执行一种方法,所述方法包括:
在基于约束的配置***的用户界面显示处接收指示要被配置的产品的产品标识符;
在所述用户界面显示处接收配置输入作为十进制形式的数字用户输入值,所述数字用户输入指示配置变量的值;
基于所述数字用户输入值,用求值引擎对用于所述配置的数学公式自动求值;以及
基于所述数学公式的所述求值的结果在所述用户界面显示上显示要被配置的所述产品的第二配置变量。
6.一种执行配置的计算机实现的方法,包括:
在基于约束的配置***的用户界面显示处接收配置输入作为数字形式的数字用户输入值,以设置配置变量的值;
基于所述数字用户输入值,用求值引擎对用于所述配置的数学公式自动求值;以及
基于所述数学公式的所述求值的结果在所述用户界面显示上显示第二配置变量的值。
7.如权利要求6所述的计算机实现的方法,其特征在于,还包括:
向约束求解器组件自动提供所述数学公式的所述求值的结果;
基于所述数学公式的所述求值的结果来自动对约束求值;以及
显示所述约束被求值的指示。
8.如权利要求7所述的计算机实现的方法,其特征在于,还包括:
当对数学公式求值以得到公式结果时,向所述约束求解器组件提供所述公式结果;
在所述约束求解器处确定是否能够基于所述公式结果对至少一个约束求值;
如果能够基于所述公式结果对至少一个约束求值,则对所述至少一个约束求值并显示被求值的所述至少一个约束的指示;以及
基于所述结果在所述约束求解器处确定是否能够推断附加配置变量的值。
9.如权利要求7所述的计算机实现的方法,其特征在于,还包括:
当对约束求值以得到约束结果时,向所述求值引擎提供所述约束结果;
在所述求值引擎处确定是否能够基于所述约束结果对至少一个公式求值;以及
如果能够基于所述约束结果对至少一个公式求值,则对所述至少一个公式求值并显示被求值的所述至少一个公式的指示。
10.如权利要求6所述的计算机实现的方法,其特征在于,接收配置输入作为数字形式的数字用户输入包括接收十进制值或浮点值。
CN201480021482.7A 2013-04-15 2014-04-14 支持计算的基于约束的配置 Pending CN105144220A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/862,485 2013-04-15
US13/862,485 US20140310205A1 (en) 2013-04-15 2013-04-15 Constraint-based configuration supporting calculations
PCT/US2014/033908 WO2014172220A1 (en) 2013-04-15 2014-04-14 Product configuration based on constraints

Publications (1)

Publication Number Publication Date
CN105144220A true CN105144220A (zh) 2015-12-09

Family

ID=50771620

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480021482.7A Pending CN105144220A (zh) 2013-04-15 2014-04-14 支持计算的基于约束的配置

Country Status (4)

Country Link
US (1) US20140310205A1 (zh)
EP (1) EP2987127A1 (zh)
CN (1) CN105144220A (zh)
WO (1) WO2014172220A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10001978B2 (en) 2015-11-11 2018-06-19 Oracle International Corporation Type inference optimization
CN112394976A (zh) * 2020-10-16 2021-02-23 深圳市科漫达智能管理科技有限公司 一种公式自定义配置的方法及相关装置
CN112783476B (zh) * 2021-01-15 2022-02-22 中国核动力研究设计院 一种堆芯数值求解器易扩展软件***、调用方法及终端

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6300948B1 (en) * 1996-09-17 2001-10-09 Scott D. Geller Methods and systems for user interfaces and constraint handling in configuration software
CN1825343A (zh) * 2004-10-01 2006-08-30 微软公司 创作和执行基于流程且基于约束的工作流的统一模型
US20100198901A1 (en) * 2009-02-05 2010-08-05 Oracle International Corporation Managing Floating Point Variables in Constraint Satisfaction Problems

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8599217B1 (en) * 2011-09-30 2013-12-03 Google Inc. Methods and apparatus for reordering of rows and columns in layout grids

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6300948B1 (en) * 1996-09-17 2001-10-09 Scott D. Geller Methods and systems for user interfaces and constraint handling in configuration software
CN1825343A (zh) * 2004-10-01 2006-08-30 微软公司 创作和执行基于流程且基于约束的工作流的统一模型
US20100198901A1 (en) * 2009-02-05 2010-08-05 Oracle International Corporation Managing Floating Point Variables in Constraint Satisfaction Problems

Also Published As

Publication number Publication date
WO2014172220A1 (en) 2014-10-23
US20140310205A1 (en) 2014-10-16
EP2987127A1 (en) 2016-02-24

Similar Documents

Publication Publication Date Title
CN107710157B (zh) 多租户计算***以及多租户计算***的计算机实现方法
CN106605234B (zh) 使用近场通信与许可控制共享内容
CN105264492B (zh) ***行为的自动发现
US20190258447A1 (en) User interface and security for coordinated program
CN105723337B (zh) 用于从交互式开发环境递增地编译软件制品的方法和***
CN110168487B (zh) 一种触摸控制方法及装置
CN112600977A (zh) 快速打开应用或应用功能的方法及终端
CN105531658A (zh) 角色定制的工作空间
CN104067270A (zh) 在多文档知识库中的人员在场检测
CN105408922A (zh) 过程流基础结构和配置界面
CN106663090A (zh) 在编译期间将呈现元数据转换成浏览器可渲染格式
CN110837404A (zh) 应用内部功能模块的快捷操作处理方法、装置和存储介质
WO2014204785A2 (en) Portable business logic
CN107257956A (zh) 具有自动升级的分层数据表面处理配置
CN105144220A (zh) 支持计算的基于约束的配置
CN110223615B (zh) 一种广告展示控制方法、装置、介质及广告推送服务器
US9804749B2 (en) Context aware commands
US20150227865A1 (en) Configuration-based regulatory reporting using system-independent domain models
US20150113499A1 (en) Runtime support for modeled customizations
US20150113498A1 (en) Modeling customizations to a computer system without modifying base elements
CN104769579A (zh) 文档管理***中的列表管理
CN107003867A (zh) 使用区段以用于跨平台的应用的定制
CN105940419A (zh) 具有可选工作空间表示的控制板
US10909138B2 (en) Transforming data to share across applications
US9753788B2 (en) Extensibility of engines in computing systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20151209

WD01 Invention patent application deemed withdrawn after publication