[go: up one dir, main page]

CN1669020A - 用于实时系统控制的组件模型 - Google Patents

用于实时系统控制的组件模型 Download PDF

Info

Publication number
CN1669020A
CN1669020A CNA038038528A CN03803852A CN1669020A CN 1669020 A CN1669020 A CN 1669020A CN A038038528 A CNA038038528 A CN A038038528A CN 03803852 A CN03803852 A CN 03803852A CN 1669020 A CN1669020 A CN 1669020A
Authority
CN
China
Prior art keywords
slot
component
definition
assembly
dynamic
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
CNA038038528A
Other languages
English (en)
Inventor
布赖恩·S.·弗兰克
约翰·W.·萨布利特
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.)
Tridium Inc
Original Assignee
Tridium Inc
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 Tridium Inc filed Critical Tridium Inc
Priority to CN200910166396.6A priority Critical patent/CN101719056B/zh
Publication of CN1669020A publication Critical patent/CN1669020A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

一种基于组件的软件程序,其中每一组件基于一种组件类型。从包括插槽定义的基本类创建组件类型。标识该插槽定义并将其存储在组件类型对象中。创建相同组件类型的一个或多个组件,每一组件包括到组件类型对象的引用,和包括与组件类型对象中属性插槽定义相关联的值的存储位置的槽映象。属性插槽值通过被放置到存储位置中而进入组件。也公开了一种自动指定唯一名称给组件的方法。创建一个根组件。进一步将非根组件放置到根组件中或其它非根组件中,从而所有组件形成一个树结构。分配一个唯一标识串给组件,其包括所有该组件的前辈组件的名称和该组件名称的顺序列表。

Description

用于实时系统控制的组件模型
根据35 U.S.C.119(e),本专利申请要求序列号为60/357329,申请日为2002年2月15日,标题为“用于实时系统控制的组件模型”的美国临时专利申请的优先权,其全部内容在此引入作为参考。
背景技术
许多不同的努力需要客户软件来解决他们的问题。通常各领域专家非常了解这些问题,诸如建筑自动化专家、工厂自动化专家和交通管制专家。然而很少有领域专家具有普通程序设计技术所需要的技能,诸如面向对象的程序设计。如今,各领域专家必须试图将他们的要求详细说明给程序员,然后由程序员来构建所需要的系统。该过程容易出现错误、费时并且伴随着错误传达。所需要的是理解问题空间的领域专家具有能够自己构建软件系统的能力。期望领域专家有时间或倾向能够变成专业程序员是不可行的。因此有必要提供一种工具,其使得外行也能够创建客户软件。理想的这些工具会让软件系统的配置参数、执行逻辑和数据是图形可视化的。图形工具会让领域专家能够创建、监控和改变软件系统,而不需要理解神秘的程序设计语言语法。
面向组件的系统是一种新概念,其通过将软件功能封装在组件中,可以连接组件来构建应对现实世界需要的应用,从而提供某些特征。然而为了实现实际的系统,已知的现有技术仍然需要程序设计语言的知识。软件组件,到现在为止,仍然需要程序设计技巧将组件连接在一起创建功能性系统。而且,现有的组件技术并不允许领域专家将整个系统图形可视化,和在运行时作出改变。例如,领域专家可能会希望在运行时改变执行流程、或添加新的行为,并且希望能够立即看到这对软件系统有什么影响。这种探索性的程序设计方式与当前方案不一致,当前方案需要软件停止、重新编译、然后重新启动。而且,为了改善性能添加特征等,可能会需要添加修改或更新该软件。对于任何更新、添加或修改,当前方案再次需要软件停止、重新编译并重启。在正在控制关键过程的某些环境中,停止软件可能会特别困难。提供这种方案所存在的另一个具体困难是,需要允许领域专家能够增强或扩展软件组件,使它们适应特定应用领域的独特需要。从历史来看,这些添加或扩展需要常规的程序设计技巧和知识。本发明意欲解决这些问题和其它需要。
发明内容
本发明的一个方面是软件程序,其代码包括用于在机器上执行的相同组件类型的一个或多个组件。该软件程序的组件通过特定方法产生。在该方法中,将包括一个或多个插槽定义(slot definition)的基本类(base class)提供给一个框架(framework),其中最少有一个插槽定义是属性插槽定义。基本类中的所有属性插槽定义都被标识。对于每一属性插槽定义,都定位获取(getter)和设置(setter)过程。生成一个组件类型对象,其被配置用来存储插槽定义。被标识的属性插槽定义然后就被存储于该组件类型对象中。生成一个或多个组件。这些组件中每一个都有槽映象(slotmap)对象,它是从槽映象类中被实例化的。每一槽映象对象也包括存储于组件类型对象中的每一属性插槽定义的值,每一值与单个组件关联,因而提供了存储每一组件所独有的数据的能力。
在该方面的进一步发展中,组件被设计为允许通过动态插槽来扩充它们的属性和数据字段。
另一个方面提供有一种用于为基于组件的软件系统的扩充自动指定名称的方法。在该方法中,创建了一个根组件。该根组件没有父组件。一个或多个非根组件被置于该根组件内,并且一个或多个其它非根组件则被置于非根组件内,这样所有的非根组件都有父组件,并且整个结构形成了树型。在该点上,组件分配有唯一标识串,其包含该组件的所有前辈组件和该组件的名称的顺序列表。
在该方面的进一步发展中,扩充命名方法来标识组件的各个插槽。
通过对附图和优选实施例的描述,可以进一步的理解本发明的这些和那些方面以及特征和优势。
附图说明
图1所示为创建组件类型和该组件类型的多个组件实例的流程图;
图2所示为从相同的组件类型中生成的两个组件的框图;
图3所示为包括动态插槽的组件系统的框图;
图4所示为包括链接的组件系统的框图;
图5A所示为包括链接的组件系统的组件级抽象概念的框图,其中执行细节被隐藏;
图5B所示为图5A中所示组件系统的框图;其中链接已经被删除;
图6所示为已经重新编译以提高效率的组件系统的框图;和
图7所示为树型结构中组件系统的框图;
图8所示为是可视化界面的操作流程图。
具体实施方式
本发明的组件模型提供一种软件组件的独特组件设计,其允许应用开发者在适合于非程序员的图形环境下扩展和修改软件组件。该组件模型设计允许将新的插槽,诸如属性、动作或主题,加入标准组件,而不需要通常所需要的软件编码步骤。
对于软件开发的组件模型方式允许创建与最终使用应用具有直接关系的软件组件,同时仍然利用了面向对象的软件设计的优点。同样的,组件比在纯面向对象的方式中提供更高层次的抽象概念。在对象封装了可以应用于软件功能(诸如串操作、提供缓冲管理等)的行为的地方,组件可组装对象以满足最终应用目标(诸如提供用户界面展示以改变时间表、检查警报和将确认命令传递回到发出警报的装置等)的需要。
这里有两个层次的抽象概念:一个是面向对象的层次,其处理组件的实现;另一个是组件的层次,其隐藏面向对象的层次,并通过使用组件进行与特定现实应用有关的应用创建。至少也有两类人可以运行和修改本发明的软件:开发者和用户。开发者使用面向对象的概念实现本发明的组件模型。可选的,开发者也创建在组件层次所定义的功能。用户通常不会看到面向对象的实现。相反,用户几乎专门处理组件和监控器,在组件层次创建和修改系统。当然,用户和开发者可以是同一个人。
根据组件类型创建软件程序内的组件。组件类型类似于面向对象的程序设计中的类的概念,也就是,它是描述所有属于该类型的组件实例的共同特征的抽象概念。在优选实施例中,组件类型的创建以及大多数其它有关组件的功能由构架来完成,有时候我们称其为NiagaraTMFramework。该构架是基于组件的软件中的软件模块,其完成一些与实现组件模型相关的若干有用功能,诸如创建组件类型和组件、提供组件与外部软件模块之间的接口,和提供通过向他们添加插槽来扩展组件的能力,等等。包括在初始化(引导装入)阶段和在组件运行时,该构架也提供用于软件的执行流。
面向对象程序由类组成,其定义用来分配属于该类的实例的模板。每一类由称为成员的子部件组成。成员可以是用来存储数据的字段,或可以是用来存储可执行行为的方法。
本发明描述了使用面向对象的原型构建的组件模型。该组件模型然后可以被非程序员使用来构建面向组件的程序。该组件模型由组件类型组成,其定义了用来分配属于该类型(类似于面向对象的类)的实例的模板。每一组件类型由称为插槽(类似于面向对象的成员)的子部件组成。插槽与成员之间的区别在于插槽存在于更高层次的抽象概念,从而它们可以被非程序员或面向组件程序的终端用户直接使用。
在组件模型中有三种类型的插槽。属性是存储数据值的插槽。属性可以用来存储配置数据,提供实时状态信息或存储任何其它数据。动作类似于方法,它们是存储执行行为的插槽。例如,终端用户可能会调用的一个动作可能是“打开电扇”。动作也可以实现纯软件功能。主题是第三插槽类。主题用来表示事件。主题用于表示事件已经发生。
链接是特定类的属性插槽。链接用来指定基于组件的软件中的执行流。更具体的,链接用来创建两个不同插槽之间的因果关系。这种关系表示,例如一个函数响应于另一个函数的调用而被调用。在对象模型中,这些关系通常用静态码(例如条件过程调用)定义,并且没有重编译就不能改变。在组件模型中链接通常是动态插槽,于是它们在运行时可以被创建和删除,不需要重编译软件就可以改变软件的执行流。
因为组件模型是按照面向对象的程序构建的,必须使用面向对象的成员来实现组件模型。术语:类、成员、字段和过程(method)指的是常规面向对象的概念。术语:组件类型、插槽、属性、动作和主题指的是面向组件的概念,它们与本发明相关。
对象与组件之间的一个大的区别是组件在运行时可以改变。例如,添加一个新的过程到对象典型的需要重编译该对象的类。组件模型允许我们在运行时在组件中定义插槽和添加新插槽。在编译的代码中所定义的插槽被冻结。冻结的插槽是不可变的,但是得到了编译代码的处理效率。运行时定义的插槽是动态的。
在面向对象的程序设计中,运行程序中的类定义的存储由编译器处理,在很大程度上对开发者是不可见的。因此,在面向对象的程序设计中,类通常作为抽象概念而不是作为实际的数据结构引用。于是,在大多数面向对象的环境中开发者可以安全的作为实际对象的抽象定义来引用类,而不会被类定义需要物理地存在于计算机存储器中的某个地方这样的事实混淆。
在本发明的组件模型中,组件类型必须在计算机存储器中存储和处理。优选的由构架通过在对象中存储组件类型,即组件类型对象,来完成组件类型的存储。于是,组件类型对象是组件类型的物理表示。从组件到组件类型对象的引用用来表示给定对象属于组件类型的事实。
图1的流程图描述了如何通过创建组件类型对象来创建组件类型,和如何产生基于该组件类型的多个组件实例。
为了创建新的组件类型,开发者需要提供类定义给构架-基本类(步骤100)。在优选实施例中,开发者通过将基本类添加到基于组件的软件来提供基本类。有一组预定的规则集,用来将基本类的成员映射到组件模型中不同类型的插槽。这些规则例如可以是基于基本类的成员的类型或名称。开发者通过添加成员根据该规则集到对应于这些冻结插槽的基本类定义,指示组件类型应该具有哪些冻结插槽。在优选的实施例中,开发者也添加将基本类向构架登记的声明。添加基本类之后,编译并执行该基于组件的软件。一旦软件开始运行,作为初始化程序的一部分,该构架检测基本类并通过图1中的过程的其余部分,以创建一个或多个组件类型以及基于它们的一个或多个组件。
在步骤101中,构架检查该基本类,并发现所有相关成员。该步骤可以通过基本类的自检来完成。
所有类型的插槽(属性、动作、主题)都包括定义。属性插槽的定义指定属性插槽所保存的数据类型和属性插槽的名称。动作插槽的定义包括动作插槽的名称和执行该动作的实现方法的代码。相似的,主题插槽的定义包括主题的名称和实现该主题的代码。属性插槽也包括数值,动作插槽和主题插槽不具有数值(但实现它们的方法可以有任意数目的隐藏在组件级的变量)。属性插槽需要获取和设置过程来获得和设置数值。这些获取和设置过程是属性插槽定义的一部分,并且最初就定义在基本类中。
在步骤102,获取和设置过程检查对应于属性插槽的基本类的每一成员。按照惯例,获取和设置过程通过将前缀“获取”和“设置”加在属性插槽的名称的前头,连同分别实现这些功能的标准编码来命名。
然后构架创建组件类型对象(步骤103)。组件类型对象的目的是指示组件类型。组件类型对象包括能够存储和检索一个或多个插槽定义的数据结构。这种数据结构例如可以是数组或哈希表。组件类型对象也包括名称,其是组件类型的名称。该名称或者从基本类的名称拷贝,或者由开发者以其他方式标识,例如通过使用基本类中的指定字段。
在步骤104,基本类的所有插槽定义被存储在组件类型对象中。这些被称作为冻结插槽定义。在步骤105,构架生成槽映象类,其与在步骤103中所创建的组件类型对象相关联。槽映象类定义了对应于组件类型对象的每一属性插槽的成员。槽映象类也包括用于创建附加动态插槽的方法。
于是在步骤107,对于每个现有的基本类,至此重复该过程。
一个或多个反复之后,在步骤106中创建了必要数目的组件类型对象。对于每一组件类型对象都有各自的槽映象类、其实例可以存储冻结属性插槽以及可以添加的任意动态插槽的唯一值。
于是创建了一个或多个组件类型,但该软件仍然缺少基于组件的功能,因为不存在这些组件类型的实例。在步骤106中从现有的组件类型对象生成一个或多个组件。该构架创建多个组件实例,以提供组件级功能。例如,基于数据文件或用户输入来创建这些组件实例。例如,数据文件可以有效的包含一个早已被开发者或用户设计好的组件系统,数据文件包括组件实例、他们的组织、他们的结构属性和通过链接指示的系统中的执行流。而且,通过实例化组件和通过前端浏览器等在它们中间创建链接,用户可以使用图形界面从零做起创建这种系统。
在优选实施例中,该构架最终负责创建组件。当需要创建某种组件类型的组件时,该构架从现有的组件一般类中创建一个组件实例。该一般类包括一个或多个用于与其他组件通信(或用于管理组件)的实用成员,和适合用于插入槽映象或到槽映象的引用的字段。构架标识与所要创建组件的组件类型相关联的组件类型对象以及与该组件类型相关联的槽映象类。它然后从槽映象类创建槽映象实例。该构架将槽映象实例附加到组件实例中,使得该槽映象被有效的包括在该组件中。它然后创建从组件实例到组件类型对象的引用。该引用,通常是指针,指定一个实例-类型关系,即指定该特殊组件实例属于该组件类型对象所描述的组件类型。
如果组件类型对象包括属性插槽的定义,那么构架可选的为它们分配值。这些值例如可以从数据文件或用户输入获得。如果构架有一个值要分配给属性插槽,则构架通过在槽映象对象的适当字段中设置该值来完成。这可以通过访问在属性插槽定义中的设置过程来完成,或通过访问组件或槽映象的设置过程来完成,或通过直接访问插槽值来完成。如果没有提供插槽值,那么该构架或者分配默认值或者什么也不做。
在一个可选实施例中,并不为每一组件类型对象创建槽映象类,而是每一组件包括一个一般槽映象,其是或其包含在组件对象中所定义的一种数据结构,为属性插槽的属性插槽值提供存储位置,并也可以存储动态字段定义和值。用于此目的的数据结构是本领域所熟知的,并可以为数组、哈希表等。
该构架分配名称到每一组件,该名称或者通过构架生成或者以与属性插槽值同样的方式获得。
通过这种方式,构架创建属于一个或多个组件类型的多个组件。图2描述了两个这种组件211和212,其都属于组件类型对象200所定义的单个组件类型。该组件类型对象包括名称202和冻结插槽204的定义。在所描述的范例中,有一个冻结动作插槽起始206、一个冻结主题插槽警报208和一个冻结属性插槽hrs_running210。插槽hrs_running210包含一个整数,但是在其他范例中,该属性插槽可以包含更多复数数据或数据结构或其他数据类型。插槽206和208分别包括执行该过程和主题所需的编码。组件211和212,名称为FirstFan和SecondFan,分别包括槽映象215和216。每一组件槽映象包括组件的冻结属性插槽217和218的值。
根据该优选实施例的突出方面,当该软件执行时可以添加动态插槽到组件。动态插槽与冻结插槽的类型相同。运行时动态插槽的添加通过用户或者通过软件自身完成。根据实施方式的不同,或者通过向构架发出请求或者通过调用组件的实用程序来加入动态插槽。不论采用什么方式,动态插槽通过存储在槽映象中来添加。动态插槽通常具有定义,如果它是属性插槽它还有值。该定义存储在槽映象中,并且该值如果可以应用,也存储在那里。图3所示为在两个动态插槽已经被添加到组件211后图2中的组件系统。通过将定义添加到槽映象215,称为“停止(stop)”的动态动作插槽301已经被添加。同样,通过将定义303和值304添加到槽映象,称为power_usage的动态属性插槽302也被添加。
注意到组件211仍然引用相同的组件类型对象200。该组件类型对象并没有被改变以记录动态插槽的添加。因此,即使在添加了两个动态插槽之后,组件FirstFan211仍然是相同的组件类型。并且相应的,组件211和212仍然是相同的组件类型,而与组件211多出两个插槽无关。这种从“纯”类型-实例模型的分离是由于性能原因:为每一改变的组件创建新的组件类型会降低系统性能并需要过多的附加存储器。组件具备实用过程,允许它们为动态插槽检查它们的槽映象,并将它们的定义提供到外部组件、构架或该软件的其它模块。这些实用过程是必须的,因为组件类型对象并不具有动态插槽的定义。动态插槽可以被其它组件、构架或该软件的另一模块以与槽映象对象的冻结插槽非常相同的方式访问。
动态插槽一旦被创建,以后可以通过从槽映象中去除它们的定义(和任何值)而将其删除。例如,这种情况可以作为新提出特征或功能的测试结果出现,它的引入是由于不需要重新编译软件,也就是不用中断服务。
不需要重新编译引入动态插槽的能力也允许用户添加影响程序流的新的关系和连接。这通过“链接”实现,其是保存有两个组件之间关系的插槽。更具体的,一个链接保存两个不同组件的两个插槽(这两个插槽都不是该链接)之间的因果关系。为了简化引用,这两个插槽被称作为源插槽和目标插槽。保存这些插槽的组件分别称作为目标组件和源组件。也有多个可能的因果关系可以由链接表示。在表1列出了在优选实施例中所使用的链接类型以及它们所链接的插槽类型。注意到由于在组件级,执行流概念包括属性字段的变化,在表1中列出的所有链接控制组件系统的执行流。
目标   语义
属性 属性   当源属性改变时,设置目标属性
属性 动作   当源属性改变时,调用该动作
动作 动作   当源动作被调用时,调用目标动作
动作 主题   当源动作被调用时,启动目标主题
主题 动作   当源主题启动时,调用该动作
主题 主题   当源主题启动时,启动目标主题
表1
用户可以通过链接各种组件的各种插槽来创建执行流。链接是冻结的或者动态的。动态链接允许在软件运行时改变组件系统的执行流。要改变执行流所要做的就是创建或删除链接。为了避免创建和删除相同的链接,优选实施例允许激活和去活链接。这提供了另外的优势,即,通过适当制定的动态链接,不能被删除的冻结链接仍然可以被去活。被去活的链接并不用作链接,但仍然存在于目标组件中,并且随后可以被激活。
链接作为一种类型的插槽实现。在优选实施例中,链接包括在目标组件中,也就是保存该目标插槽的组件。链接优选的包括下列插槽:源组件字段,保存到源组件的引用或源组件的名称;源字段,保存源插槽的名称;目标字段,保存目标插槽的名称;以及“激活”标志,表示它是被激活还是被去活。
链接也包括对于处理它们有用的过程(method),诸如激活和去活过程,或者改变源字段、源组件、和/或目标字段的过程。注意到由于链接已经包括在目标组件中,在该设置中避免了到目标组件的引用;目标组件直接被链接的布局引用。
在优选实施例中,当链接被激活时,它们在源组件创建一个调节器(knob)。调节器是与链接相似的数据结构,其存储在源组件的槽映象中。调节器向源组件指示,它必须将事件从它的插槽传播到目标组件的插槽。调节器包括类似于链接的数据字段的数据字段,但它包括目标组件的,而不是源组件的引用或名称。调节器并不包括激活标志。相反,当链接被去活时,旋钮简单地被删除。
图4所示为已经添加动态链接401的图3的组件。该链接被激活,从而它使得对应的调节器402被创建。由于源插槽和目标插槽是属性,在FisrtFan的hrs_runnig的值改变的事件中,该链接的效果是将SecondFan的hrs_runnig的值改变到FisrtFan的hrs_runnig的新值。换言之,一旦值217变化,该链接将使值218跟随值217。链接运行的方式相同,而与它链接的是冻结插槽或动态插槽无关(尽管如果包括有动态插槽会有一些性能损失)。
图5A是图4的组件系统的抽象图,其中省去了实现细节。它示出了从组件级别看到的链接功能。这里链接401用从源插槽到目标插槽,而不是到组件211中的插槽的箭头表示。尽管该链接存在于组件211中。
图5A展示了该组件模型的一个优点。该组件模型允许抽象化并以相对简单的方式显示复杂的动态系统。提供用户可视界面,其中组件系统的一个或多个组件被可视地表示为窗口小部件(widget)或图表。实际上,可以类似于图5A中所示的实现可视表示。组件在属性插槽中可以存储它们自己的表示,或者这些表示可以被图形模块处理。有关可以结合在此所描述的组件模型一起工作的优选可视界面的进一步细节,参见同一天申请的,标题为“Real-Time Data InterfaceAnd Method For Browser And The Like”的美国专利申请(尚未给予流水号)【代理人案卷号3929/1k294US2】,其全部内容在此引入作为参考。
一旦组件通过图形界面表示给用户,也显示各种相关的插槽和这些组件的值。通过这种界面,点击选择各种插槽和拖动组件之间的链接以添加链接,允许用户改变值或执行组件的过程。
而且,通过操作屏幕上的链接、插槽和组件的可视表示,允许用户添加新的组件、添加或去除动态属性、添加和删除动态链接、或激活和去活链接。这样用户可视地再编程了一个基于组件的系统。
图5B是去除链接401之后图5A中组件系统的抽象图。链接的去除用虚线401′表示。通过从组件211中去除动态链接插槽411来完成去除。任何其他动态插槽可以类似的被去除。
该优选实施例的一个优点是它同时具有冻结插槽的效率和速度以及动态插槽的灵活性。有些时候动态插槽被证明是太低效了。尽管该优选实施例被用来通过使用动态插槽快速改变和检测该组件系统,以找到最优配置。一旦找到最优配置,执行重新编译以将所有的动态插槽转换为冻结插槽。在重新编译之后,该系统会保留它的最优配置,但具有更好的性能。
图6描述了如何优化图3中所示系统的组件211。将动态插槽编译成冻结插槽可以导致原始组件类型的改变或导致新的组件类型,如果原始组件类型的所有组件并不具有相同的动态插槽。通过从槽映象215中去除它们的定义并增加组件类型基本类200的冻结插槽定义,动态插槽301、302被转换成冻结插槽。属性插槽302的值304保留在槽映象215中,但是现在与相同组件类型的所有组件所共同的冻结插槽定义相关联。通过在这些定义中所列或从这些定义导出的偏移量(offset),两个值217和304与它们各自的定义210和303成对。
图7描述了将组件分级组织成组件系统的优选方法。如前所述,组件可以包括其他组件作为属性插槽。这通过包括到另一组件的引用作为属性插槽来实现。在可选实施例中,使用指定所有权的链接,而非引用。
优选的利用组件的能力来包括其他组件并组织系统组件为树结构,如图7所示。这些组件类型对象706、707、708和709分别描述组件类型A、B、C和D。组件701是组件类型A,组件702和703是组件类型B,组件704是组件类型C,而组件705是组件类型D。组件702、703和704作为插槽全部包括在组件701中,这种包括关系通过组件701的插槽710中的引用定义。组件704进一步包括组件705。还有一个执行流链接713,以粗箭头表示,其以组件705的插槽711作为源并以组件703的插槽712作为目标。包括其他组件的组件称为父组件。包括在其他组件中的组件称为子组件。可以以相似的结构组织更复杂的系统。在优选实施例中,系统的所有组件以单树组织。这就意味着有一个父组件,称为根组件,它不包括在其他任何组件中,以及一个或多个非根组件按照它们到根组件的继承关系布置。在图7中根组件是组件701。该组织产生一个附加优点就是每一组件通过一个字符串被唯一的标识,该字符串由它的前辈名称的顺序列表组成,始于根组件,终止于该组件的名称。该特征可以用来保证复杂的组件系统中组件的唯一标识,其中来自不同厂家的新组件被不断添加到该系统。标识可以用字段名称扩展,以便类似地为组件的字段提供唯一标识。
由于可视界面是组件模型的一个重要优点,本发明还包括一种用于提供可视界面的系统。该系统特别用于为组件模型提供界面,因为它是基于可视对象或窗口小部件,并且每个这样的窗口小部件可以可视化一个组件。另一个有用特征是该系统同时具有很大的灵活性和较低的资源使用。
该可视化系统被设计成与用于以标准化文件格式显示第三方内容的流行软件,如HTML浏览器,兼容。在一个优选实施例中,本发明作为HTML文件中的Java小程序实现。Java程序被称作引擎。图8所示为可视化系统的操作流程图。在步骤801用户将带有引擎的HTML页面装载到HTML浏览器上。在步骤802,HTML浏览器执行该引擎。在步骤803,该引擎请求配置文件。通过计算机网络或者从用户的计算机请求该配置文件。在一个优选实施例中,配置文件是XML文件。该配置文件包括可视显示的布局,并且它还包括到一个或多个窗口小部件的引用,以及用于这些窗口小部件的位置和/或大小信息。
窗口小部件是可视对象。窗口小部件的范例是组件、物理装置、图形、饼分图和表格的表示。窗口小部件可以做成动画或以多种不同的方式提供信息。窗口小部件也任选的具有与用户交互的能力。
有一些可执行代码与在配置文件中引用的每一窗口小部件相关联。该代码称为扩展。扩展位于用户计算机上或通过计算机网络与用户计算机相连的其他计算机上。扩展可以通过包括在配置文件中的引用来定位。引擎对配置文件进行语法分析和定位扩展。引擎然后装载扩展,如果需要,从计算机网络上下载它们(步骤804)。引擎然后并行执行所有扩展。一旦执行扩展,它们在用户界面上显示引擎帮助。每一扩展显示它所关联的窗口小部件。引擎显示在配置文件中描述的整体布局,并且操作所显示的窗口小部件,以根据配置文件改变它们的大小和位置。扩展任选的与其它软件模块通信,并根据这些通信改变/更新与它们相关联的窗口小部件。在示范实施例中,窗口小部件是组件的图形表示,并且与该窗口小部件相关联的扩展通过计算机网络与组件通信。扩展还任选的通过接受和响应用户所发出的指令与用户交互。扩展也可以从其它软件组件接收信息或向其发送信息,如基于与用户交互的组件。于是根据扩展的软件代码、与其它软件模块的通信、和/或与用户的交互,窗口小部件连续更新。扩展可以进一步向其它软件模块发送从用户接收到的控制信号。
例如,窗口小部件表示温度调节装置,其由温度调节组件来控制。对应于温度调节窗口小部件的扩展通过网络发送更新温度该数请求。该温度调节组件响应。然后该扩展更新温度。用户与窗口小部件进行交互。例如,用户通过点击窗口小部件来表达想要以摄氏度而不是以华氏度来察看温度。扩展接收请求并更新该窗口小部件。用户也可以通过窗口小部件发送命令到实际的温度调节装置。例如,如果用户想要关闭温度调节装置,或让其进入省电模式,该窗口小部件会向温度调节组件转发该命令。
当扩展经常使用网络通信时,可视界面系统的可选实施例具有更高的效率。因为并行处理的多个扩展的多个网络通信通常会引发性能问题,在可选实施例中,扩展并不启动网络通信,而是发送请求到引擎。引擎在预定的时间期间收集网络通信请求,并试图将它们合并成更大的捆,然后通过网络发送它们,于是提高了网络效率。只有发送到相同计算机的通信可以被捆绑。在接收端也必须有软件模块以能够将该通信解开捆绑。引擎也从某些软件模块接收捆绑,该捆绑包含发送到一个或多个扩展的通信,将它们解开捆绑成单个的通信并将这些单个的通信发送到它们所要到达的扩展。当多个扩展与相同的软件模块通信时该实施例是最有效的。
为了具体和清楚的说明,已经使用语言、格式和协议描述了可视界面系统,诸如HTML、Java、XML。该可视界面并不限于这些语言、格式和协议。该可视界面系统可以配置成使用任何允许嵌入应用的语言运行。任何数据文件格式,包括属性数据格式可以代替XML使用。
关于可以连同在此所描述的组件模型一起运行的优选可视界面的更具体的细节,可以再次参见前述美国专利申请“Real-Time DataInterface And Method For Browser And The Like”。
并不是所有的软件程序需要以组件模型实现。基于组件的功能比常规的面向对象的代码会更慢并且更大。于是在优选实施例中,只有可能需要被动态修改的代码部分,或使用组件模型的其它特征的代码部分会以组件模型实现。但是技术上不以组件模型实现的代码仍然可以封装成组件,从而它对其它组件是以组件出现的。
在本文档中所描述的计算机可以是任何计算装置。计算机网络包括无线网络。
虽然已经连同特定实施例描述了本发明,但是本发明由所附权利要求无限制地定义,并且本发明包括单元和方法步骤的非实质变化。

Claims (26)

1.一种用于在机器上执行的软件程序,该软件程序包括相同组件类型的一个或多个组件,组件类型由包括一个或多个插槽定义(slotdefinition)的基本类来定义,其中至少一个插槽定义为属性插槽定义,通过以下步骤在运行期间产生所述组件:
标识所述基本类中的所有属性插槽定义;
为所述基本类中的每一个标识的属性插槽定义定位获取(getter)和设置(setter)过程;
产生一个组件类型对象,该组件类型对象被配置用来存储插槽定义;
在该组件类型对象中存储在标识步骤中标识的属性插槽定义;
产生一个或多个组件,每一组件具有一个槽映象(slotmap)和对该组件类型对象的引用,其中每个槽映象包括用于存储在该组件类型对象中的每一属性插槽定义的值的存储位置;和
通过将属性插槽值插入到所述一个或多个组件的一个特定组件的槽映象中的存储位置,设置属性插槽值,该属性插槽值与组件类型对象中的其中一个属性插槽定义相关联。
2.根据权利要求1的方法,进一步包括以下步骤:
产生一个槽映象类,该槽映象类定义了用于每一属性插槽的值的一个或多个存储位置,属性插槽的定义在标识步骤中标识;
其中在产生一个或多个组件的步骤中,每一槽映象是槽映象类的一个实例。
3.根据权利要求1的方法,其中该基本类的至少一个定义是动作插槽定义,并进一步包括以下步骤:
标识该基本类中的一个或多个动作插槽定义;和
在所述组件类型对象中存储该一个或多个动作插槽定义。
4.根据权利要求1的方法,其中该基本类的至少一个定义是主题插槽定义,并进一步包括以下步骤:
标识该基本类中的一个或多个主题插槽定义;和
在该组件类型对象中存储该一个或多个主题插槽定义。
5.根据权利要求1的方法,进一步包括步骤:在执行该软件程序的过程中,向一个或多个组件中的第一组件的槽映象添加一个动态插槽,同时保持所述组件类型对象不改变,该添加步骤与任何编译步骤无关。
6.根据权利要求5的方法,其中所述动态插槽是一个属性插槽,并且该添加步骤包括:
添加一个动态属性插槽定义到所述第一组件的槽映象中;和
添加一个动态属性插槽值到所述第一组件的槽映象中。
7.根据权利要求5的方法,其中所述动态插槽是一个动作插槽,并且该添加步骤包括:
添加一个动态动作插槽定义到所述第一组件的槽映象中。
8.根据权利要求5的方法,其中所述动态插槽是一个主题插槽,并且其中添加步骤包括:
添加一个动态主题插槽定义到所述第一组件的槽映象中。
9.根据权利要求5的方法,进一步包括步骤:在执行该软件程序的过程中,从所述第一组件去除该动态插槽,该去除步骤与任何编译步骤无关。
10.根据权利要求6的方法,进一步包括以下步骤:
执行该软件程序一段时间;
从所述第一组件中去除所述动态属性插槽;
添加一个冻结属性插槽定义到所述组件类型对象中,该冻结属性插槽定义与所述动态属性插槽定义相同;
添加一个冻结属性插槽值到所述第一对象的槽映象中,该冻结属性插槽值与动态属性插槽值相同;
其中通过至少部分编译该软件程序来执行添加冻结属性插槽定义和冻结属性插槽值的步骤。
11.根据权利要求7的方法,进一步包括以下步骤:
执行该软件程序一段时间;
从第一组件中去除所述动态动作插槽;
添加一个冻结动作插槽定义到所述组件类型对象中,该冻结动作插槽定义与所述动态动作插槽定义相同;
其中通过至少部分编译该软件程序来执行添加冻结动作插槽定义的步骤。
12.根据权利要求8的方法,进一步包括以下步骤:
执行该软件程序一段时间;
从第一组件中去除动态主题插槽;
添加一个冻结主题插槽定义到所述组件类型对象中,该冻结主题插槽定义与所述动态主题插槽定义相同;
其中通过至少部分编译该软件程序来执行添加冻结主题插槽定义的步骤。
13.根据权利要求5的方法,进一步包括以下步骤:
显示该软件程序的图形表示;和
允许用户操作该图形表示;
其中响应用户对该图形表示的操作,执行该添加步骤。
14.根据权利要求13的方法,进一步包括步骤:响应用户对图形表示的操作,去除动态插槽。
15.根据权利要求5的方法,其中产生多个组件来定义代码,每一组件具有各自的槽映象和对相同组件类型对象的引用,其中动态插槽是一个链接,其定义了从所述两个或多个组件的第二组件中的源插槽到所述第一组件中的目标插槽的代码执行流。
16.根据权利要求15的方法,进一步包括以下步骤:
显示包括该链接的图形表示的该软件程序的图形表示;和
允许用户操作该链接的图形表示;
其中响应用户对该链接的图形表示的操作,执行该添加步骤。
17.根据权利要求15的方法,其中所述源插槽是一个属性插槽,且所述目标插槽是一个属性插槽,该方法另外包括步骤:执行代码,使得所述目标插槽的值随所述源插槽的值的任何改变而改变。
18.根据权利要求15的方法,其中所述源插槽是一个属性插槽且所述目标插槽是一个动作插槽,该方法另外包括步骤:执行代码,使得所述目标插槽响应于所述源插槽的值的改变而被调用。
19.根据权利要求15的方法,其中所述源插槽是一个主题插槽且所述目标插槽是一个动作插槽,该方法另外包括步骤:执行代码,使得所述目标插槽响应于所述源插槽的启动而被调用。
20.根据权利要求15的方法,其中所述源插槽是一个主题插槽且所述目标插槽是一个主题插槽,该方法另外包括步骤:执行代码,使得所述目标插槽响应于源插槽的启动而启动。
21.根据权利要求15的方法,其中所述源插槽是一个动作插槽且所述目标插槽是一个动作插槽,该方法另外包括步骤:执行代码,使得所述目标插槽响应于所述源插槽被调用而被调用。
22.根据权利要求15的方法,其中所述源插槽是一个动作插槽且所述目标插槽是一个主题插槽,该方法另外包括步骤:执行代码,使得所述目标插槽响应于所述源插槽的调用而启动。
23.根据权利要求15的方法,其中该链接包括:
到所述第二组件的引用;
所述源插槽的插槽名称;和
所述目标插槽的插槽名称。
24.一种用于在基于组件的软件系统中,自动为组件指定唯一名称的方法,包括下列步骤:
创建一个根组件,该根组件没有父组件;
将一个或多个非根组件置于该根组件内;
将一个或多个非根组件置于其它非根组件内,使得这些组件形成一种树结构,并且每一非根组件有一个父组件;
在这些非根组件中指定一个第一组件、包括该组件的前辈组件的名称和该组件名称的顺序列表的唯一标识串。
25.根据权利要求24的方法,其中第一组件包括一个插槽,并进一步包括以下步骤:
提供对所述插槽的标识。
26.根据权利要求25的方法,其中所述插槽是一个动态插槽。
CNA038038528A 2002-02-15 2003-02-18 用于实时系统控制的组件模型 Pending CN1669020A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN200910166396.6A CN101719056B (zh) 2002-02-15 2003-02-18 用于实时系统控制的组件模型

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US35732902P 2002-02-15 2002-02-15
US60/357,329 2002-02-15

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN200910166396.6A Division CN101719056B (zh) 2002-02-15 2003-02-18 用于实时系统控制的组件模型

Publications (1)

Publication Number Publication Date
CN1669020A true CN1669020A (zh) 2005-09-14

Family

ID=27757598

Family Applications (2)

Application Number Title Priority Date Filing Date
CNA038038528A Pending CN1669020A (zh) 2002-02-15 2003-02-18 用于实时系统控制的组件模型
CN200910166396.6A Expired - Lifetime CN101719056B (zh) 2002-02-15 2003-02-18 用于实时系统控制的组件模型

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN200910166396.6A Expired - Lifetime CN101719056B (zh) 2002-02-15 2003-02-18 用于实时系统控制的组件模型

Country Status (8)

Country Link
US (3) US7822806B2 (zh)
EP (1) EP1474753B1 (zh)
JP (1) JP2006504156A (zh)
KR (1) KR20040096577A (zh)
CN (2) CN1669020A (zh)
AU (2) AU2003211125A1 (zh)
CA (1) CA2475050A1 (zh)
WO (2) WO2003071444A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101535952A (zh) * 2005-08-19 2009-09-16 谷歌公司 将来自插件模块的信息内容在用户界面中进行显示的软件架构
CN101655795B (zh) * 2009-09-25 2012-10-10 金蝶软件(中国)有限公司 服务实例的创建方法和系统
US8954488B2 (en) 2009-01-21 2015-02-10 Microsoft Corporation Extensibility for web based diagram visualization
CN104346149A (zh) * 2013-07-30 2015-02-11 商业对象软件有限公司 用于数据可视化的描述性框架

Families Citing this family (149)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6981250B1 (en) * 2001-07-05 2005-12-27 Microsoft Corporation System and methods for providing versioning of software components in a computer programming language
US8001523B1 (en) * 2001-07-05 2011-08-16 Microsoft Corporation System and methods for implementing an explicit interface member in a computer programming language
US7890639B1 (en) * 2002-01-30 2011-02-15 Novell, Inc. Method and apparatus for controlling access to portal content from outside the portal
US7987421B1 (en) 2002-01-30 2011-07-26 Boyd H Timothy Method and apparatus to dynamically provide web content resources in a portal
CN1669020A (zh) 2002-02-15 2005-09-14 特里迪姆公司 用于实时系统控制的组件模型
US7565647B2 (en) * 2002-03-22 2009-07-21 Sun Microsystems, Inc. Markup compiler that outputs MIDlets
US20030181196A1 (en) * 2002-03-22 2003-09-25 Eran Davidov Extensible framework for code generation from XML tags
US7512932B2 (en) 2002-03-22 2009-03-31 Sun Microsystems, Inc. Language and object model for describing MIDlets
US20030182626A1 (en) * 2002-03-22 2003-09-25 Eran Davidov On-demand creation of MIDlets
US7305671B2 (en) * 2002-03-22 2007-12-04 Sun Microsystems, Inc. Conversion of an object model to a source file generation model
US7246324B2 (en) * 2002-05-23 2007-07-17 Jpmorgan Chase Bank Method and system for data capture with hidden applets
US7958455B2 (en) * 2002-08-01 2011-06-07 Apple Inc. Mode activated scrolling
US20040044755A1 (en) * 2002-08-27 2004-03-04 Chipman Timothy W. Method and system for a dynamic distributed object-oriented environment wherein object types and structures can change while running
CA2513498C (en) * 2003-01-22 2011-10-11 Nimcat Networks Inc. Call transfer system, method and network devices
US7685515B2 (en) * 2003-04-04 2010-03-23 Netsuite, Inc. Facilitating data manipulation in a browser-based user interface of an enterprise business application
US7685010B2 (en) 2003-04-04 2010-03-23 Netsuite, Inc. Concise communication of real-time business information in an enterprise network
US7681112B1 (en) 2003-05-30 2010-03-16 Adobe Systems Incorporated Embedded reuse meta information
US7392512B2 (en) * 2003-09-08 2008-06-24 Microsoft Corporation System and method for automatic conversion from WAP client provisioning XML represented objects to OMA DM tree structure represented objects
EP1671268A4 (en) * 2003-09-19 2006-12-06 Lattix Inc DEVICE AND METHOD FOR MANAGING THE DESIGN OF A SOFTWARE SYSTEM USING A DEPENDENCE STRUCTURE
US7480709B2 (en) * 2003-11-14 2009-01-20 Rockwell Automation Technologies, Inc. Dynamic browser-based industrial automation interface system and method
US7324931B1 (en) * 2003-11-17 2008-01-29 The Mathworks, Inc. Conversion of model components into references
US7412367B1 (en) * 2003-11-17 2008-08-12 The Mathworks, Inc. Transparent subsystem links
US20050125787A1 (en) * 2003-12-05 2005-06-09 Leonid Tertitski Convertible runtime graphical user interface
US7392295B2 (en) * 2004-02-19 2008-06-24 Microsoft Corporation Method and system for collecting information from computer systems based on a trusted relationship
GB2411331A (en) 2004-02-19 2005-08-24 Trigenix Ltd Rendering user interface using actor attributes
US9552141B2 (en) * 2004-06-21 2017-01-24 Apple Inc. Methods and apparatuses for operating a data processing system
US7490295B2 (en) * 2004-06-25 2009-02-10 Apple Inc. Layer for accessing user interface elements
US7546543B2 (en) * 2004-06-25 2009-06-09 Apple Inc. Widget authoring and editing environment
US8453065B2 (en) 2004-06-25 2013-05-28 Apple Inc. Preview and installation of user interface elements in a display environment
US8302020B2 (en) 2004-06-25 2012-10-30 Apple Inc. Widget authoring and editing environment
US7761800B2 (en) 2004-06-25 2010-07-20 Apple Inc. Unified interest layer for user interface
US8239749B2 (en) 2004-06-25 2012-08-07 Apple Inc. Procedurally expressing graphic objects for web pages
US8566732B2 (en) 2004-06-25 2013-10-22 Apple Inc. Synchronization of widgets and dashboards
US9009313B2 (en) 2004-07-12 2015-04-14 NetSuite Inc. Simultaneous maintenance of multiple versions of a web-based business information system
US7558843B2 (en) 2004-07-12 2009-07-07 Netsuite, Inc. Phased rollout of version upgrades in web-based business information systems
US7500181B2 (en) * 2004-08-31 2009-03-03 International Business Machines Corporation Method for updating a portal page
US9471332B2 (en) * 2004-10-19 2016-10-18 International Business Machines Corporation Selecting graphical component types at runtime
US8875040B2 (en) * 2005-06-07 2014-10-28 Rockwell Automation Technologies, Inc. Universal web-based reprogramming method and system
US8140975B2 (en) 2005-01-07 2012-03-20 Apple Inc. Slide show navigation
US20060168526A1 (en) * 2005-01-12 2006-07-27 Nokia Corporation Platform-specific application user interface remoting
US7926029B1 (en) * 2005-01-13 2011-04-12 21St Century Systems, Inc. System and method of progressive domain specialization product solutions
WO2006096919A1 (en) * 2005-03-16 2006-09-21 Airscape Technology Pty. Limited Method for distributing computing between server and client
US7546582B2 (en) 2005-03-30 2009-06-09 International Business Machines Corporation Managing dynamic configuration data for producer components in a computer infrastructure
US8543931B2 (en) 2005-06-07 2013-09-24 Apple Inc. Preview including theme based installation of user interface elements in a display environment
US8924869B2 (en) * 2005-08-12 2014-12-30 Barry Fellman Service for generation of customizable display widgets
US8024054B2 (en) * 2005-08-22 2011-09-20 Trane International, Inc. Building automation system facilitating user customization
US8050801B2 (en) 2005-08-22 2011-11-01 Trane International Inc. Dynamically extensible and automatically configurable building automation system and architecture
US7917232B2 (en) 2005-08-22 2011-03-29 Trane International Inc. Building automation system data management
US8055386B2 (en) * 2005-08-22 2011-11-08 Trane International Inc. Building automation system data management
US8055387B2 (en) * 2005-08-22 2011-11-08 Trane International Inc. Building automation system data management
US7870090B2 (en) * 2005-08-22 2011-01-11 Trane International Inc. Building automation system date management
US7904186B2 (en) * 2005-08-22 2011-03-08 Trane International, Inc. Building automation system facilitating user customization
US8099178B2 (en) * 2005-08-22 2012-01-17 Trane International Inc. Building automation system facilitating user customization
US9104294B2 (en) 2005-10-27 2015-08-11 Apple Inc. Linked widgets
US7743336B2 (en) 2005-10-27 2010-06-22 Apple Inc. Widget security
US8543824B2 (en) 2005-10-27 2013-09-24 Apple Inc. Safe distribution and use of content
US7752556B2 (en) 2005-10-27 2010-07-06 Apple Inc. Workflow widgets
US7954064B2 (en) 2005-10-27 2011-05-31 Apple Inc. Multiple dashboards
US7707514B2 (en) 2005-11-18 2010-04-27 Apple Inc. Management of user interface elements in a display environment
US20070143673A1 (en) * 2005-12-20 2007-06-21 Microsoft Corporation Extensible architecture for chart styles and layouts
US20070185065A1 (en) * 2006-02-03 2007-08-09 Vikramjit Chhokar Combination therapy for coronary artery disease
US20070182841A1 (en) * 2006-02-07 2007-08-09 Donnie Drake Image sensing microelectronic device with glass tilt control features, and various methods of making same
US20070257354A1 (en) * 2006-03-31 2007-11-08 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Code installation decisions for improving aggregate functionality
US7738972B2 (en) * 2006-06-29 2010-06-15 Honeywell International Inc. Modular shared-memory resource stage driver system for flexible resource linking in an energy conversion system
US8418128B2 (en) * 2006-06-29 2013-04-09 Honeywell International Inc. Graphical language compiler system
US9726392B2 (en) 2006-06-29 2017-08-08 Honeywell International Inc. Generic user interface system
US8112162B2 (en) * 2006-06-29 2012-02-07 Honeywell International Inc. System level function block engine
US8869027B2 (en) 2006-08-04 2014-10-21 Apple Inc. Management and generation of dashboards
WO2008070320A2 (en) * 2006-10-23 2008-06-12 Chipin Inc. Method and system for providing a widget for displaying multimedia content
US8839100B1 (en) * 2007-01-26 2014-09-16 The Mathworks, Inc. Updating information related to data set changes
US8196097B1 (en) * 2007-03-02 2012-06-05 Google Inc. Method and apparatus for extending a software gadget
WO2008121410A1 (en) * 2007-03-29 2008-10-09 Ludi Labs, Inc. Interface definition for implementing contextual applications
WO2008131417A1 (en) * 2007-04-23 2008-10-30 Snac, Inc. Mobile widget dashboard
US20080271127A1 (en) * 2007-04-24 2008-10-30 Business Objects, S.A. Apparatus and method for creating stand-alone business intelligence widgets within an authentication framework
KR101415023B1 (ko) * 2007-04-26 2014-07-04 삼성전자주식회사 네트워크를 통한 정보 제공 방법 및 장치
US8578330B2 (en) * 2007-06-11 2013-11-05 Sap Ag Enhanced widget composition platform
US8954871B2 (en) 2007-07-18 2015-02-10 Apple Inc. User-centric widgets and dashboards
US8667415B2 (en) 2007-08-06 2014-03-04 Apple Inc. Web widgets
US8156467B2 (en) 2007-08-27 2012-04-10 Adobe Systems Incorporated Reusing components in a running application
US10176272B2 (en) * 2007-09-28 2019-01-08 Excalibur Ip, Llc System and method of automatically sizing and adapting a widget to available space
US8176466B2 (en) 2007-10-01 2012-05-08 Adobe Systems Incorporated System and method for generating an application fragment
US7418710B1 (en) 2007-10-05 2008-08-26 Kaspersky Lab, Zao Processing data objects based on object-oriented component infrastructure
US8650306B2 (en) * 2007-10-24 2014-02-11 Honeywell International Inc. Interoperable network programmable controller generation system
US9619304B2 (en) 2008-02-05 2017-04-11 Adobe Systems Incorporated Automatic connections between application components
US20090199205A1 (en) * 2008-02-06 2009-08-06 Honeywell International Inc. Configurable graphics virtual machine based display system
US7908391B1 (en) * 2008-03-25 2011-03-15 Symantec Corporation Application streaming and network file system optimization via feature popularity
US8307300B1 (en) 2008-05-13 2012-11-06 Google Inc. Content resizing and caching in multi-process browser architecture
US8656293B1 (en) 2008-07-29 2014-02-18 Adobe Systems Incorporated Configuring mobile devices
US20100070881A1 (en) * 2008-09-12 2010-03-18 At&T Intellectual Property I, L.P. Project facilitation and collaboration application
JP5097070B2 (ja) * 2008-09-24 2012-12-12 株式会社日立システムズ プロパティファイル読み込みシステムと方法およびプログラム
US20100083219A1 (en) * 2008-10-01 2010-04-01 Microsoft Corporation Runtime Object Composition
US8762708B2 (en) 2008-10-11 2014-06-24 David L. Blankenbeckler Secure content distribution system
US9488992B2 (en) * 2008-10-16 2016-11-08 Honeywell International Inc. Wall module configuration tool
US8180824B2 (en) 2009-02-23 2012-05-15 Trane International, Inc. Log collection data harvester for use in a building automation system
US8495566B2 (en) * 2009-07-28 2013-07-23 International Business Machines Corporation Widget combos: a widget programming model
US20130275890A1 (en) * 2009-10-23 2013-10-17 Mark Caron Mobile widget dashboard
US8661408B2 (en) * 2009-11-23 2014-02-25 Michael James Psenka Integrated development environment and methods of using the same
US9258201B2 (en) * 2010-02-23 2016-02-09 Trane International Inc. Active device management for use in a building automation system
US8793022B2 (en) 2010-02-26 2014-07-29 Trane International, Inc. Automated air source and VAV box association
US8219660B2 (en) 2010-02-26 2012-07-10 Trane International Inc. Simultaneous connectivity and management across multiple building automation system networks
US20110246913A1 (en) * 2010-03-30 2011-10-06 Microsoft Corporation Automated User Interface Generator
US8538588B2 (en) 2011-02-28 2013-09-17 Honeywell International Inc. Method and apparatus for configuring scheduling on a wall module
US20130019195A1 (en) * 2011-07-12 2013-01-17 Oracle International Corporation Aggregating multiple information sources (dashboard4life)
US9058401B2 (en) * 2011-08-16 2015-06-16 Fabebook, Inc. Aggregating plug-in requests for improved client performance
US10083247B2 (en) 2011-10-01 2018-09-25 Oracle International Corporation Generating state-driven role-based landing pages
US20130139073A1 (en) * 2011-11-09 2013-05-30 Revionics Inc. System and method for changing functionalities of websites using widgets
US8826158B1 (en) * 2011-12-14 2014-09-02 The United States Of America As Represented By The Director, National Security Agency Device for and method of determining changes to GUI
US8930886B2 (en) * 2011-12-15 2015-01-06 Microsoft Corporation Identifying application resources through implicit application models
US9558278B2 (en) 2012-09-11 2017-01-31 Apple Inc. Integrated content recommendation
US9218118B2 (en) 2012-09-11 2015-12-22 Apple Inc. Media player playlist management
CN103853534B (zh) * 2012-11-30 2017-12-01 腾讯科技(深圳)有限公司 一种照片即时显示方法及装置
US11373191B2 (en) 2013-03-15 2022-06-28 Usgbc Systems, devices, components and methods for dynamically displaying performance scores associated with the performance of a building or structure
US9697299B2 (en) * 2013-08-01 2017-07-04 Raytheon Company Embedded system web server
WO2015024262A1 (zh) * 2013-08-23 2015-02-26 华为终端有限公司 一种网页页面处理方法及设备
US10228837B2 (en) * 2014-01-24 2019-03-12 Honeywell International Inc. Dashboard framework for gadgets
US9274790B2 (en) * 2014-04-30 2016-03-01 Oracle International Corporation Customization manager
US10545639B1 (en) * 2014-09-29 2020-01-28 Rockwell Collins, Inc. Run-time widget creating system, device, and method
CN104298750B (zh) * 2014-10-14 2018-02-23 北京国双科技有限公司 用于实时系统通信的更新处理方法及装置
US9920944B2 (en) 2015-03-19 2018-03-20 Honeywell International Inc. Wall module display modification and sharing
US10684756B2 (en) * 2016-04-27 2020-06-16 Rockwell Collins, Inc. Avionics picture-in-picture display
US10269235B2 (en) 2016-08-26 2019-04-23 Trane International Inc. System and method to assist building automation system end user based on alarm parameters
EP3601895B1 (en) 2017-03-31 2023-03-01 Honeywell International Inc. Method for providing a comfort dashboard and non-transitory computer-readable medium
US11108539B2 (en) * 2017-11-21 2021-08-31 Disney Enterprises, Inc. Techniques for analyzing and verifying time in machine-based networks
US11347524B2 (en) * 2018-09-04 2022-05-31 Fisher-Rosemount Systems, Inc. Systems and methods for embedding a web frame with preconfigured restrictions in a graphical display view of a process plant
EP3621050B1 (en) 2018-09-05 2022-01-26 Honeywell International Inc. Method and system for improving infection control in a facility
CN109814778B (zh) * 2018-12-24 2020-12-22 天津字节跳动科技有限公司 小程序选项卡的实现方法、装置、电子设备及介质
US10978199B2 (en) 2019-01-11 2021-04-13 Honeywell International Inc. Methods and systems for improving infection control in a building
US11620594B2 (en) 2020-06-12 2023-04-04 Honeywell International Inc. Space utilization patterns for building optimization
US11783658B2 (en) 2020-06-15 2023-10-10 Honeywell International Inc. Methods and systems for maintaining a healthy building
US11914336B2 (en) 2020-06-15 2024-02-27 Honeywell International Inc. Platform agnostic systems and methods for building management systems
US11783652B2 (en) 2020-06-15 2023-10-10 Honeywell International Inc. Occupant health monitoring for buildings
US20210390474A1 (en) 2020-06-15 2021-12-16 Honeywell International Inc. Dashboard for multi site management system
US11823295B2 (en) 2020-06-19 2023-11-21 Honeywell International, Inc. Systems and methods for reducing risk of pathogen exposure within a space
US11184739B1 (en) 2020-06-19 2021-11-23 Honeywel International Inc. Using smart occupancy detection and control in buildings to reduce disease transmission
US12142385B2 (en) 2020-06-22 2024-11-12 Honeywell International Inc. Methods and systems for reducing a risk of spread of disease among people in a space
US12131828B2 (en) 2020-06-22 2024-10-29 Honeywell Internationa Inc. Devices, systems, and methods for assessing facility compliance with infectious disease guidance
US11619414B2 (en) 2020-07-07 2023-04-04 Honeywell International Inc. System to profile, measure, enable and monitor building air quality
US12524786B2 (en) 2020-08-04 2026-01-13 Honeywell International Inc. Methods and systems for determining guest satisfaction including guest sleep quality in hotels
US11402113B2 (en) 2020-08-04 2022-08-02 Honeywell International Inc. Methods and systems for evaluating energy conservation and guest satisfaction in hotels
CN112130856B (zh) * 2020-09-29 2023-11-03 重庆紫光华山智安科技有限公司 强扩展性的前端可视化界面生成方法、系统、介质及终端
US11894145B2 (en) 2020-09-30 2024-02-06 Honeywell International Inc. Dashboard for tracking healthy building performance
US11372383B1 (en) 2021-02-26 2022-06-28 Honeywell International Inc. Healthy building dashboard facilitated by hierarchical model of building control assets
US11662115B2 (en) 2021-02-26 2023-05-30 Honeywell International Inc. Hierarchy model builder for building a hierarchical model of control assets
US12142382B2 (en) 2021-03-01 2024-11-12 Honeywell International Inc. Airborne infection early warning system
US11474489B1 (en) 2021-03-29 2022-10-18 Honeywell International Inc. Methods and systems for improving building performance
US12038187B2 (en) 2021-09-28 2024-07-16 Honeywell International Inc. Multi-sensor platform for a building
US12261448B2 (en) 2022-06-07 2025-03-25 Honeywell International Inc. Low power sensor with energy harvesting
US12431621B2 (en) 2023-01-26 2025-09-30 Honeywell International Inc. Compact dual band antenna
US20240272923A1 (en) * 2023-02-15 2024-08-15 Candle Corporation Systems and methods for intra-application orchestration

Family Cites Families (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4435764A (en) 1981-08-06 1984-03-06 Data General Corp. Computer network having a single electrically continuous bi-directional bus
US4747041A (en) 1983-06-27 1988-05-24 Unisys Corporation Automatic power control system which automatically activates and deactivates power to selected peripheral devices based upon system requirement
JPS6170654A (ja) 1984-09-14 1986-04-11 Hitachi Ltd 分散処理システムにおける資源管理方式
US4635195A (en) 1984-09-25 1987-01-06 Burroughs Corporation Power control network using reliable communications protocol
US4677566A (en) 1984-10-18 1987-06-30 Burroughs Corporation Power control network for multiple digital modules
FR2610120B1 (fr) 1987-01-26 1989-07-13 Merlin Gerin Ensemble de commande et de protection connectant un reseau de communication local a un processus industriel
US5175852A (en) 1987-02-13 1992-12-29 International Business Machines Corporation Distributed file access structure lock
DE69108900D1 (de) 1990-01-30 1995-05-18 Johnson Service Co Vernetztes betriebsmittelverwaltungssystem.
US5608870A (en) * 1992-11-06 1997-03-04 The President And Fellows Of Harvard College System for combining a plurality of requests referencing a common target address into a single combined request having a single reference to the target address
US6012071A (en) * 1996-01-29 2000-01-04 Futuretense, Inc. Distributed electronic publishing system
US5862052A (en) 1996-04-12 1999-01-19 Fisher-Rosemount Systems, Inc. Process control system using a control strategy implemented in a layered hierarchy of control modules
US5982362A (en) 1996-05-30 1999-11-09 Control Technology Corporation Video interface architecture for programmable industrial control systems
US5918233A (en) 1996-05-30 1999-06-29 The Foxboro Company Methods and systems for providing electronic documentation to users of industrial process control systems
US5786993A (en) 1996-06-14 1998-07-28 Landis & Gyr Technology Innovation Corp. Apparatus for and method of controlling and/or regulating process parameters of an installation
US6047222A (en) 1996-10-04 2000-04-04 Fisher Controls International, Inc. Process control network with redundant field devices and buses
JP2865136B2 (ja) 1996-11-11 1999-03-08 日本電気株式会社 テスト考慮論理合成システム
US5916306A (en) 1996-11-14 1999-06-29 Johnson Controls Technology Communication protocol for a router-based building automation and control network
US6262729B1 (en) * 1997-04-14 2001-07-17 Apple Computer, Inc. Method and apparatus for binding user interface objects to application objects
US6055562A (en) 1997-05-01 2000-04-25 International Business Machines Corporation Dynamic mobile agents
US6266721B1 (en) 1997-05-13 2001-07-24 Micron Electronics, Inc. System architecture for remote access and control of environmental management
US6370448B1 (en) 1997-10-13 2002-04-09 Rosemount Inc. Communication technique for field devices in industrial processes
US6067477A (en) 1998-01-15 2000-05-23 Eutech Cybernetics Pte Ltd. Method and apparatus for the creation of personalized supervisory and control data acquisition systems for the management and integration of real-time enterprise-wide applications and systems
US6356920B1 (en) 1998-03-09 2002-03-12 X-Aware, Inc Dynamic, hierarchical data exchange system
US6028998A (en) 1998-04-03 2000-02-22 Johnson Service Company Application framework for constructing building automation systems
US6119125A (en) 1998-04-03 2000-09-12 Johnson Controls Technology Company Software components for a building automation system based on a standard object superclass
US6185566B1 (en) 1998-05-05 2001-02-06 Robert A. Adams Network management system having an embedded network database
US6591305B2 (en) * 1998-06-30 2003-07-08 Sun Microsystems, Inc. Method and system for delivering data from a server object to a client object using a non-proprietary data transfer protocol
US6353853B1 (en) 1998-10-26 2002-03-05 Triatek, Inc. System for management of building automation systems through an HTML client program
US6411700B1 (en) 1998-10-30 2002-06-25 Nec America, Inc. Telemanagement system with single point of entry
US6157943A (en) 1998-11-12 2000-12-05 Johnson Controls Technology Company Internet access to a facility management system
US6728960B1 (en) * 1998-11-18 2004-04-27 Siebel Systems, Inc. Techniques for managing multiple threads in a browser environment
DE19853205A1 (de) * 1998-11-18 2000-06-15 Siemens Ag Verfahren zur Steuerung technischer Prozesse
US6636885B1 (en) * 1999-03-26 2003-10-21 Sun Microsystems, Inc. System using interface class in client computer to resolve references and retrieve delayed class applet from server
JP2000347866A (ja) 1999-06-04 2000-12-15 Nec Corp 分散システムとアクセス制御装置及び方法、並びにアクセス制御用プログラムを記録した記録媒体
DE19933584A1 (de) * 1999-07-17 2001-01-18 Ibm Verfahren zur kompakten Darstellung von Informationspaketen und deren Speicherung oder Übertragung
US6681243B1 (en) * 1999-07-27 2004-01-20 Intel Corporation Network environment supporting mobile agents with permissioned access to resources
US6842906B1 (en) 1999-08-31 2005-01-11 Accenture Llp System and method for a refreshable proxy pool in a communication services patterns environment
US7010503B1 (en) * 2000-03-10 2006-03-07 Ams Services, Inc. Traffic reduction in networked data collection
US20030221162A1 (en) 2000-03-20 2003-11-27 Sridhar Mandayam Andampillai Meta-templates in website development and methods therefor
US6922685B2 (en) * 2000-05-22 2005-07-26 Mci, Inc. Method and system for managing partitioned data resources
US6721777B1 (en) 2000-05-24 2004-04-13 Sun Microsystems, Inc. Modular and portable deployment of a resource adapter in an application server
JP2001337823A (ja) * 2000-05-25 2001-12-07 Sony Corp コンポーネントウェア作成方法および記録媒体
US7388831B2 (en) * 2000-07-26 2008-06-17 Pluris, Inc. Method and apparatus for bond management according to hierarchy
KR100352549B1 (ko) 2000-07-29 2002-09-12 주식회사 알티캐스트 어플리케이션 정의 화일을 이용한 디지털 방송용 컨텐츠데이터의 관리방법 및 그 시스템
US7080159B2 (en) 2000-12-15 2006-07-18 Ntt Docomo, Inc. Method and system for effecting migration of application among heterogeneous devices
CN1669020A (zh) 2002-02-15 2005-09-14 特里迪姆公司 用于实时系统控制的组件模型

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101535952A (zh) * 2005-08-19 2009-09-16 谷歌公司 将来自插件模块的信息内容在用户界面中进行显示的软件架构
US8954488B2 (en) 2009-01-21 2015-02-10 Microsoft Corporation Extensibility for web based diagram visualization
CN102292719B (zh) * 2009-01-21 2016-09-21 微软技术许可有限责任公司 用于基于web的图表可视化的可扩展性
CN101655795B (zh) * 2009-09-25 2012-10-10 金蝶软件(中国)有限公司 服务实例的创建方法和系统
CN104346149A (zh) * 2013-07-30 2015-02-11 商业对象软件有限公司 用于数据可视化的描述性框架

Also Published As

Publication number Publication date
CA2475050A1 (en) 2003-08-28
WO2003071442A9 (en) 2003-10-16
WO2003071444A9 (en) 2003-10-16
JP2006504156A (ja) 2006-02-02
AU2003211126A1 (en) 2003-09-09
US7225426B2 (en) 2007-05-29
AU2003211125A1 (en) 2003-09-09
CN101719056B (zh) 2016-01-27
US7822806B2 (en) 2010-10-26
WO2003071444A1 (en) 2003-08-28
US20030159129A1 (en) 2003-08-21
EP1474753A4 (en) 2009-12-09
EP1474753A1 (en) 2004-11-10
US20040215740A1 (en) 2004-10-28
US20030158975A1 (en) 2003-08-21
CN101719056A (zh) 2010-06-02
KR20040096577A (ko) 2004-11-16
EP1474753B1 (en) 2018-08-22
WO2003071442A1 (en) 2003-08-28

Similar Documents

Publication Publication Date Title
CN1669020A (zh) 用于实时系统控制的组件模型
CN103718155B (zh) 运行时系统
US7269792B2 (en) System and method for generating high-function browser widgets with full addressability
KR100986415B1 (ko) 커맨드 바인딩을 수행하기 위한 데이터-바인딩 매카니즘의 애플리케이션
US20100205604A1 (en) Systems and methods for efficiently running multiple instances of multiple applications
US9600411B2 (en) System and method for determining an object's lifetime in an object oriented environment
RU2459238C2 (ru) Управляемая среда выполнения для организации взаимодействия между программными приложениями
US20080270979A1 (en) Methods and systems for using type models to generate an implementation of a type
US20190114165A1 (en) Using semantic annotations to control compatibility behaviors
CN110716720A (zh) 一种实现应用热部署的方法和装置
JPH0635709A (ja) オブジェクトクラス規定装置、ウィジェット及びその実現方法
CN101645009A (zh) Web服务集成开发系统和方法
CN105573763B (zh) 一种支持rtos的嵌入式系统建模方法
JP4084956B2 (ja) オブジェクト集合方法およびシステム
JP5209058B2 (ja) ソフトウェア・コンポーネントを作成するための方法
US7499956B1 (en) Annotation processing from source files and class files
Kraimer et al. EPICS application developer’s guide
US8001523B1 (en) System and methods for implementing an explicit interface member in a computer programming language
US9015728B2 (en) Methods, apparatus, and systems to access runtime values of object instances
US8984473B2 (en) Methods for type analysis in systems for code generation
HK1081680A (zh) 用於實時系統控制的組件模型
Navas et al. Reconciling run-time evolution and resource-constrained embedded systems through a component-based development framework
CN119440611B (zh) 一种配置参数绑定方法、装置、设备及介质
CN120295807A (zh) 数据处理方法、装置、电子设备、存储介质及程序产品
Geiger et al. Using actions charts for reactive web application modeling

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1081680

Country of ref document: HK

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1081680

Country of ref document: HK