CN101051969B - 用于传感器网络的动态生成操作系统 - Google Patents
用于传感器网络的动态生成操作系统 Download PDFInfo
- Publication number
- CN101051969B CN101051969B CN200610130901.8A CN200610130901A CN101051969B CN 101051969 B CN101051969 B CN 101051969B CN 200610130901 A CN200610130901 A CN 200610130901A CN 101051969 B CN101051969 B CN 101051969B
- Authority
- CN
- China
- Prior art keywords
- operating system
- application
- equipment
- code
- sensor network
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
- Measurement Of Velocity Or Position Using Acoustic Or Ultrasonic Waves (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
可确定为使用传感器网络(102)执行应用(130)的应用需求(144),该传感器网络(102)包括多个设备(104、106、108、110)。可确定与设备相关的硬件约束(146),基于应用需求(144)和硬件约束(146),生成操作系统(128)。以此方式,可生成为具体应用(130)和硬件资源(114-124)特定的、且优化的操作系统(128)。
Description
技术领域
本发明涉及操作系统,包括用于传感器网络设备的操作系统。
背景技术
传感器网络可用来提供数据的检测、特征化或其它使用,该数据可涉及实际任何类型的物理处理、操作或环境。例如,传感器网络可配置在公司的多个位置,并且可被用来,仅指出一些示例,实现温度检测系统、欺骗监视操作或患者跟踪系统。
在提供这些和许多其它类型的功能中,除了为传感器网络的每个设备提供期望的传感器和/或输出元件之外,还可以为其提供本地处理能力、存储器和通信能力。但是,可以以相对便宜的成本,和以极小的尺寸提供这些传感器网络的传感器设备。同样,包括这样设备的传感器网络可被配置在大且多种多样的地理区域(例如,作为供应链管理系统的一部分)之内和通过大且多种多样的地理区域,和/或可被用于更集中的区域,例如,为了提供相对大量的用于相应的应用(例如,检测整个房间的温度波动)的数据点。
但是,这些传感器设备的降低的成本和尺寸一般意味着花费在一些或所有所包括的处理能力、存储器或通信能力或它的使用上的额外费用。例如,由这些传感器设备执行的无线通信可能给传感器设备的电源施加相对大的负担。
发明内容
根据一个总的方面,一种方法包括确定用于使用传感器网络执行应用的应用需求,传感器网络包括多个设备,确定与设备相关的硬件约束;基于应用需求和硬件约束通过合成操作系统的代码来动态生成一个操作系统,其中,使用一个或多个看门狗应用来确保操作系统的生成包含对于操作系统和/或应用的配置是必需的或期望的、但是不直接涉及操作系统上运行应用的功能的组件;通过网关计算机将生成的操作系统配置到一个或多个设备,其中, 在操作系统的代码被合成之后,利用指定的目标语言对所述合成的操作系统的代码进行编译,并且,在操作系统被配置之前,利用代码测试器来测试生成代码的操作,其中由代码测试器生成测试数据,并且由生成的操作系统操作测试数据。
根据另一个总的方面,一种系统包括组件库,可操作地存储与提供给传感器网络的多个设备的功能相关的操作系统组件;操作系统生成器,可操作地基于与实现在多个设备上的应用相关的应用需求并且基于与多个设备相关的硬件约束,通过合成操作系统的代码来从被选择的操作系统组件中动态生成操作系统,其中,操作系统生成器使用一个或多个看门狗应用来确保操作系统的生成包含对于操作系统和/或应用的配置是必需的或期望的、但是不直接涉及操作系统上运行应用的功能的组件;以及网关计算机,用于可操作地将生成的操作系统配置到一个或多个设备,其中,在操作系统的代码被合成之后,操作系统生成器可操作地利用指定的目标语言对所述合成的操作系统的代码进行编译,并且,在操作系统被配置之前,操作系统生成器可操作地利用代码测试器来测试生成代码的操作,其中由代码测试器生成测试数据,并且由生成的操作系统操作测试数据。
根据另一个总的方面,一种装置包括具有存储指令于其中的存储介质。指令包括用于确定与将在传感器网络上实施的应用相关的应用需求的第一代码段,用于确定与传感器网络的硬件资源相关的硬件约束的第二代码段,和用于生成操作系统的第三代码段,该操作系统支持应用程序和硬件资源。
在附图和下面的说明中阐明一个或多个实施方式的细节。根据说明书和附图以及根据权利要求书,其它的特征将是显然的。
附图说明
图1是用于生成在传感器网络设备中使用的操作系统的系统的方框图。
图2是示出了图1的系统的一个示例操作的流程图。
图3是图1的传感器网络设备的系统层的方框图。
图4是图1的操作系统生成器的实施例的详细示意方框图。
图5是示出了图1的系统的操作的流程图。
图6是图1的系统的用户接口的例子。
具体实施方式
图1是用于生成在传感器网络102的设备中使用的操作系统的系统100的方框图。系统100生成支持与传感器网络102的设备相关的应用和硬件资源中使用的所需的操作系统。此外,可基于应用需求和硬件资源生成操作系统,用于其特殊的支持。因此,传感器网络设备的计算资源(例如,处理能力,存储器,或者功率)可以被保存和/或有效地使用。
在图1的例子中,传感器网络102包括多个设备104、106、108和110。设备104-110可包括传感器微片(motes)或其它可配置在宽范围的设置和环境中的设备。例如,设备104-110可被放置于房间和其它地点周围固定的位置,或可附着在可移动的物品(例如,车辆、货盘或其它的集装箱、或人)上,或可以他们自身拥有运动的能力(例如,当在水下环境中提供感测时,可使其通过水运动)。如下面更详细地说明,设备104-110可与一个或多个传感器或输出元件相关,并且因此可收集用于本地或远程使用和分析的数据。
举例来说,这里示出的设备104包括各种组件的例子,这些组件的例子打算用来予以说明下面要更详细地说明的传感器网络102的多个方面并对其进行更详细解释。但是,应理解的是设备104可以包括附加的或可选的组件,这将是显然的,如取决于期望的使用。此外,尽管图1中没有示出,应该理解设备106-110中的任一个也可包括多种示出的组件的任一个,或其它的组件,这将是显然的。
因此,示出的设备104包括处理板112,该处理板包括存储器114、中央处理单元(CPU)116和射频(RF)收发机118。例如,存储器114可包括随机存取存储器(RAM)和/或只读存储器(ROM)。CPU 116可包括在传感器网络设备的操作中已知为有用的许多可用微处理器中的任何一个。相似地,如下面所详细说明的,RF收发机118可与一些已知的结构和功能相关,这些结构和功能用来提供设备104与设备106-110中任一个之间以及与其它设备之间的无线通信。
另外,尽管对于图1的例子被称为处理板112,但应该理解的是,该处理板112的元件,和图1中可能示出或没示出的其它元件,可包括在单个微处理器芯片上。此外,尽管在图1中示出了RF收发机118,但应该理解的是,也可使用其它形式的通信,例如,光通信。
设备104也可以包括传感器120和传感器122或者与它们相关联。如上所述,这些传感器实际上可用于直接或间接地检测设备104环境的任何特征或条件。尽管上面提供了这些传感器的一些例子,但是可包括的其它作为传感器120/122的传感器例子,包括麦克风、加速计、磁力计、照相机或其它图像传感器、动作检测器、光检测器(例如,光敏二极管)、射频标识(RFID)读卡机(为了识别主动的或被动的RFID标签)、和/或被设计来检测涉及湿度、压力或振动的条件的传感器。
设备104也可包括输出元件124,它一般来说可以指任何可操作地提供动作或其它输出的设备。例如,输出元件124可包括发光二极管(LED)、音频扬声器、执行器(actuator)、或对设备104的环境提供某些影响的或者影响该环境内部的任何其它的设备。
如传感器120、122,示出的输出元件124作为设备104的分离元件。但是,应该理解的是,传感器120、122和输出元件124彼此可部分或整体地集成,并且,例如,可作为单个微机电系统(MEMS)的部分来实现。此外,这些MEMS传感器或输出元件可制造在与存储器114、CPU 116相同的微芯片上,并且可以因此用来形成与设备104一起使用的嵌入式系统。
电源126可用来给设备104提供电源。例如,电源126可给处理板112的元件、传感器120、122,或输出元件124供电。尽管示出单个电源,但应该理解的是,多个电源可被包括在设备104上,或与设备104相关。例如,在需要时,本地电池可用于处理板112的元件,同时传感器120、122和输出元件124的电源由所连接的、较大的电源提供。
因此,元件112-126一般示出了可被设备104包括或与设备104相关的各种硬件和/或物理组件或资源的例子。如上所述,这些硬件资源的选择、设计和使用受减少成本和/或设备104的尺寸的需要和期望的约束。
除刚才说明的物理组件之外,设备104也可提供各种与物理、硬件组件相关的软件组件。例如,可包括操作系统128,表示存储于存储器114中并且在CPU 116上运行的软件,和负责控制和管理一些或所有的物理组件112-126和与其相关的基本系统运行。
此外,操作系统128可提供一个基础,基于该基础来运行使用存储器114和CPU 116实现的应用,例如,应用130。这样的应用可用在设备104的具体的实施方式中,例如,在检测、收集、聚集、预处理、传输、报告中,或在另外的使用与设备104的环境相关的数据中。
因此,例如,操作系统128可用来实现应用130,以支持如传感器120、122和输出元件124的硬件设备,并且支持与任一个这些元件或处理板112的元件相关的基本系统操作(例如,存储器114的管理,或CPU 116的调度任务)。为了提供并且支持这样的功能,操作系统128包括许多不同类型的组件或元件。
例如,操作系统128可包括一个或多个设计用来允许在应用130和硬件设备之间交互的驱动器。作为例子,示出图1的操作系统128包括驱动器132,驱动器132可代表与传感器120、122中之一或输出元件124相关的驱动器。尽管在图1的例子中仅示出一个驱动器,但如下面更详细地说明,根据设备104的传感器120、122、输出元件124或其它硬件资源中的哪个被用于各自的应用130,可使用一个或多个驱动器。
稍微相似地,操作系统128包括允许在操作系统128与应用130之间通信的应用接口134。例如,应用接口134可允许应用130调用操作系统128的某些功能,例如,涉及设备104与一个或多个设备106-110的无线连接的功能。
因此,基于应用130的需求、和/或传感器120的可用性或使用或者与设备104相关的其他硬件约束,驱动器132和应用接口134可包括在操作系统128中。从此意义来说,与其它可在设备104上运行的应用相反,驱动器132和应用接口134可被认为是应用130选择的结果。但是,操作系统128的其它的部分可部分或全部地不依赖具体应用130的选择,即,实际上可与任何这种应用一起使用。
例如,射频(RF)通信驱动器136可包括在用于允许操作系统128和RF收发机118之间通信(并且因此用于与设备106-110的无线通信)的操作系统128中。达到这种程度以致RF通信被可以在设备104上实现的大多数或所有的应用所使用,RF通信驱动器136作为例子可以被包括作为操作系统128的一个组件,该驱动器136包括在其中以用于设备104的实际任何应用。
稍微相似地,尽管没示出,可包括操作系统128的其它组件,来执行与设备104和相关组件相关的核心功能,例如已提及的存储器114的管理或CPU116的调度。如下所说明,可集成这些组件来提供某些对于在设备104上运行的几乎任何应用是相同的基本功能。
尽管一般包括操作系统组件132、134和136来提供可包括于操作系统128的组件类型的例子,应该理解的是,许多其它类型的组件也可包括在操作系统128中。例如,除驱动器132(例如,它可支持传感器120)外,可包括附加的操作系统组件来支持或启动传感器122或输出元件124。例如,可包括附加驱动器,并且可包括传感器输入/输出组件来启动与传感器120、122或在他们之间的通信。
另外,除了应用接口134,可包括与应用130关联的操作系统组件。例如,可包括与从/由操作系统128由应用130请求的呼叫(例如,促使CPU 116改变操作的模式的呼叫)相关的组件。此外,附加的操作系统组件可与操作系统128本身的功能性相关,例如,操作系统加载器或用户接口。
因此,在图1的例子中,包括操作系统生成器138可操作来生成操作系统128,其中作为结果的操作系统128仅仅包括那些被要求、选择、期望和/或优化的组件,用于包括其中以支持应用130(如果可能,或其它被包括的应用)、以及仅仅支持应用130的执行期间要使用的设备104的那些硬件资源。
例如,情况可能是,应用130是温度检测应用,而传感器120可能是温度传感器。那么,在一个直接的例子中,情况可能是,温度检测应用130从 传感器120简单地读取检测温度值用于其中的收集、分析、和/或报告。因此,驱动器132可表示在收集/报告温度数据期间操作传感器120的温度传感器驱动器。那么,例如,在此例中,操作系统生成器138将生成操作系统128,该操作系统如包括驱动器132,但是不包括分离的传感器122的驱动器或输出元件124的驱动器。因此,包括存储器114、CPU 116和电源126的设备104资源,可被保留并且有效使用。
在另一个例子中,应用130可包括使用输出元件124响应温度传感器120检测的温度变化的功能。例如,应用130可操作地检测本地温度已上升到100度或某个预定的值以上,然后使得用作输出元件124的LED发光。在此例中,可由包括在操作系统128中的操作系统生成器138生成第二个驱动器(图1中未示出),用于驱动输出元件(LED)124来响应来自应用130的命令和/或(温度检测)传感器120的输出。此外,由于在应用130的上下文中仅当需要输出元件124时可包括这第二个驱动器,否则不包括它,所以设备104的资源可被保留并且有效地使用。
在操作中,操作系统138可在个人计算机(PC)140上实现、在工作站实现,或在实际的任何其它的具有充足的用于其操作的资源的计算设备上实现。操作系统生成器138可使用预先配置有操作系统组件的操作系统组件库142来装配操作系统128。例如,组件库142中的每个这样的操作系统组件可以与启动访问和组合它的关联操作系统组件的接口相关。
在选择并组合操作系统组件进入操作系统128的过程中,操作系统生成器138可访问或相反确定在图1的例子中分别响应应用130和硬件资源112-116的应用需求144和硬件约束146。例如,应用需求144一般可表示与传感器网络102的设备104-110的任何期望使用相关的需求。例如,这样的使用可包括项目跟踪(例如,跟踪项目通过供应链被生产和销售)、监视(例如,欺骗监视和偷窃监视)、卫生保健系统中的患者跟踪、或实际上传感器网络102的任何使用。因此,在一些实施方式中,操作系统生成器138可基于应用130的选择或说明确定应用需求144,例如,通过分解和分析应用130来确定相关的约束或组件。在其它的实施方式中,应用需求144可以是交互用户(如,应用开发者)的输入。
同时,就哪些硬件设备或资源可用和/或期望与应用130一起使用而言,硬件约束146一般可涉及传感器网络102的限制和能力。例如,设备104-110 中每个设备可包括特定类型的传感器,或仅设备104-110中的一些子集可包括特定类型的传感器。传感器(和输出元件,如输出元件124)就获得的测量类型、性能可靠性、功率消费或获得测量的质量方面广泛地变化。一些传感器和输出元件可与应用130高度相关,而有些与应用130相关较少,或不相关。
图1中,尽管应用需求144和硬件约束146概念地示出了与PC 140相关地存储,但是应该理解的是,这仅是一个例子,应用需求144和硬件约束146可部分或完全地从其它的资源获得。例如,用户接口148可用来允许用户(图1中未示)指定一些或所有应用需求144和/或硬件约束146。例如,如下以更详细地说明,用户接口148可允许用户来指定期望类型的应用,比如这里说明的那些中的一个或多个,和期望用来实现应用的期望类型的传感器或输出元件。
此外,或可选地,可预先确定一些或所有应用需求144和/或硬件约束146,以备操作系统生成器138的将来使用。例如,硬件约束146可包括传感器网络102中的所有设备104-110的预先设定的列表,和每个设备上传感器和/或输出元件的类型和质量的列表。
更进一步地,硬件约束146可包括信息,如传感器网络102的哪些硬件资源当前被使用,并且因此对应用130来说是不可用的。在这个例子中,监视和/或跟踪系统(图1中未示)可用来确定传感器网络102的当前资源使用。
基于应用需求144和硬件约束146,操作系统生成器138可生成操作系统128。例如,操作系统生成器138可使用代码合成技术用于组合来自操作系统组件库142的操作系统组件,并且因此生成操作系统128,如下面参考图4更详细的说明。因此,作为结果的操作系统128可仅仅包括那些用于实现应用130需要或期望的组件,而同时依然执行可能对实际上任何这样的应用来说是必需的非应用具体化的功能(例如,存储器管理)。
一旦以这种方式生成,操作系统128可由网关计算机150设置到设备104,和/或到设备106-110。例如,这种网关可表示位于传感器网络102边界(和与其通信)上的计算设备。网关计算机150可以功能足够强大以与远程系统(如,PC140)进行通信并且执行与传感器网络102有关的其他功能,并且由此使得传感器网络102从执行这些功能中解除。
例如,在配置操作系统128的过程中,无线收发机152可包括在网关计算机150内,并且可被用来将操作系统128无线传输到安装在设备104上的 代码注入器154。然后代码注入器154可进行操作以将操作系统128注入在设备104上。相似说明可适用于将应用操作系统128注入到一个或多个其余的设备106-110上。
例如,情况可能是,应用130的实现仅要求传感器网络102的设备104-110的一些子集。在此情况下,可仅仅将操作系统128配置在该设备子集内包括的那些设备上。
在图1中,包括了应用组件库156,其表示可由应用构造器(applicationbuilder)158使用的组件,用来构造具有用户特性期望级的应用130(或许与应用需求144和/或硬件约束146相结合)。例如,在上面参考的温度检测应用中,来自应用组件库156的第一应用组件可与(温度)传感器120期望的操作(例如,采样率、分离点或危险温度值、或与其它的传感器或输出元件的通信)相关,而同时第二应用组件可与输出元件124的使用(例如,LED和关于它的操作的标准,例如,包括依靠当前检测的温度闪光频率)相关。因此,通过选择这样的应用元件的一个或两个,用户可定制应用130,如期望的用于相互和/或与其它组件组合。
但是,应该理解的是,以这种定制的方式提供应用仅仅是一个例子。在其它的实施方式中,应用可作为一个整体提供,这使得对于一些用户来说选择和使用期望的应用比较容易和直观(尽管潜在地较不灵活的)。这样的应用,和其它的应用,可被用户参数化以实现期望的功能性(例如,通过提供传感器网络102的配置的具体的设置或内容)。在其它实施方式中,用户构造和使用应用和/或应用组件,以提供高度定制的应用。但是,在任何这样的例子中,和在其它的例子中,操作系统生成器138可以对被选择的/构造的/参数化的应用130和对应用130使用的硬件资源两者都是特定的方式生成操作系统128。
但是,使用操作系统的例如上面说明的相同或相似的技术,选择或建造应用130,网关计算机150可用于将应用130配置给设备104(和其它的设备106-110的一些或所有)。例如,为注入存储器114和CPU 116的执行,网关计算机150可将应用无线传输给代码注入器154。
因此,系统100允许操作系统的动态生成和配置,该操作系统对于特殊的传感器网络设备的应用需求和硬件约束来说是特定的。以此方式,可优化传感器网络102的使用。例如,由于与操作系统128相关的存储器量和处理能力可被最小化,此存储器和处理能力可被用于应用130和/或传感器120、 122/输出元件124的其它一些功能,而不是以其它方式被利用(than otherwisebe available)。此外,或可选地,与操作传感器网络102相关的设备的功率可被减少或相反被保存。
尽管图1示出了操作系统的动态生成的某些例子,但是许多其它的例子和配置是可能的。例如,下面关于图5和6更详细的说明,结合PC140说明的一些或所有功能,包括操作系统生成器138,可以直接在网关计算机150上执行。此外,可将操作系统生成器138的使用配置为网络上的服务,例如,企业内部互联网上的业务,使得用户接口148可与企业入口相关并且被期望的传感器网络的企业员工访问。
此外,尽管应用需求144和硬件约束146被说明为被操作系统生成器138使用来生成操作系统128,应该理解的是,可使用其它需求/约束。例如,如关于图5和6更详细的说明,可包括非功能约束,例如,如在某个时间周期之后或指定的事件之后发送设备104的一个或多个元件进入待机/休眠模式的命令的功率节省功能。相似地,全系统和/或网络约束可被用来生成操作系统138。例如,传感器网络102可能具有某些必须被操作系统生成器138遵守的需求,比如在给定的时间可运行应用130的多个或多种设备的限制。
图2是示出了图1的系统100示例操作的流程图200。在图2的例子中,如上所述,可确定传感器网络的应用需求(202)。例如,用户经由用户接口148可进入应用需求144。相似地,用户可选择(或者另外指定、说明或提供)应用130,并且操作系统生成器138可分解应用130来确定应用需求144。此外,或可选地,根据传感器网络102上已知的应用类型,可预先配置和/或事先存储特殊应用配置的应用需求144。
如这里说明的,应用需求一般可包括对条件应用的期望反应,例如,对温度、光、声音或其它的可由传感器120、122确定的条件。例如,对感知条件的这种应用反应可以是停止或开始收集数据、传送数据、发起其它的传感器的使用,或发起输出元件124的使用(例如,使LED发光或使扬声器发声)。
如上所述,为了用户轻而易举地使用,一些应用可以采用很高级的说明,例如,使得用户可简单地指定应用130的高级说明,如“温度检测”。在这样的例子中,例如,高级应用说明/规范可被配置为与(可能选择的)特定的低级应用需求相关,比如将使用的温度传感器类型,或被配置在区域内的温度传感器的密度,或温度传感器获得温度测量的频率。
也可以确定传感器网络的硬件约束(204)。例如,如所述,硬件约束146可表示传感器网络102中可用的这(类)设备的能力或限制。例如,硬件约束146可包括此类在每个设备104-110上可用的传感器/输出元件,和其它的可选择的硬件限制,例如,存储器114、CPU 116或电源126的限制。
如上所述,通过用户接口148,硬件约束146可由用户整体地或部分地指定。在其它的实施方式中,硬件约束146可被整体地或部分地预先配置并存储。在一些实施方式中,特殊的一个应用需求144的规格可导致可能的硬件约束的缩小的列表,并可通过用户选择进一步指定/缩小。相反地,在特殊的应用需求被确定之前可指定特殊的硬件约束,使得可基于指定的硬件约束生成应用/应用需求的缩小的列表。
然后,可生成操作系统(206)。例如,操作系统生成器138可访问或相反确定应用需求144和硬件约束146,并且可基于以上继续生成操作系统128。例如,操作系统生成器138可以使用操作系统组件库142的组件合成操作系统128的代码。如这里所述,操作系统生成器138可因此生成仅包括那些应用130的实现必需和期望的操作系统组件的操作系统128,而同时为特殊应用、设备和/或传感器网络优化操作系统128。换句话说,可生成操作系统来提供支持设备的可用硬件资源(例如,一个或多个传感器120、122,输出元件124,存储器114,CPU 116,RF收发机118,或电源126)的子集,可用的硬件资源的子集足以满足应用需求和执行应用。
一旦生成,可将操作系统注入到传感器网络的一个或多个设备上(208)。例如,网关计算机150的无线收发机152可用于将操作系统128传输到设备104,用于代码注入器154在其上的注入。相似的内容可应用于将操作系统128或其变化注入到设备104-110的期望的或必需的一些上。
应用本身可被指定、装配、和/或配置在传感器网络上(210),假定在操作系统128的顶部。例如,应用的构造程序158可使用应用组件156和/或应用需求144构造应用130。在其它实施方式中,应用130可被预先配置和预先建立。也应理解的是,应用130可优先于或于操作系统128的生成同时被指定或建立。一旦装配或另外确定,可将应用130,如通过无线收发机152和代码注入器154(和相似的可被包括在设备106-110上的代码注入器)配置到设备104-110。
最后关于图2,流程图200的处理可重复继续,也即,通过回到确定应 用需求(202)并且再次继续整个流程图200。例如,为了与一系列应用和硬件资源(例如,传感器和输出元件)一起使用,第一操作系统可被配置在传感器网络102上。那么,同一传感器网络稍后可与不同的操作系统一起使用,支持不同的应用和硬件资源。因此,由于传感器网络可被应用到更多种功能和应用,可实现节省成本和精力。
图3是图1的设备104的系统层的方框图。在图3的例子中,第一级302被示为硬件级,在该级实现传感器120、122。当然,输出元件124以及设备104的其它的硬件资源也可被包括在级302。
硬件级302处的传感器120、122收集模拟数据,如包括对于传感器120、122是本地温度测量的数据流。在第二级304处模拟数据被转换成数字形式,即,模-数转换层304。
然后在操作系统级306处操作系统128可接收数字化的数据。例如,操作系统生成器138可构造操作系统128包括用于从传感器120、122接收和解释数字化数据的组件。
一个或多个应用(图3中示出为应用组件130A和130B)可构造在应用级308、建立在操作系统级别306上操作系统128的顶部。即,操作系统级306可支持单个应用、包括一个或多个组件或模块的一个应用、或多个应用。
因此,如上所述,图3示出了操作系统128可支持多个传感器。操作系统128也可支持多个不同应用或应用组件的操作和功能。通过使用操作系统生成器138动态地生成操作系统128,可配置操作系统128以仅支持那些具体的与给定配置的设备104和传感器网络102的设备104相关的硬件和软件资源。
图4是操作系统生成器138的例子实现的较详细的示意方框图。在图4的例子中,操作系统生成器138包括一个或多个接口402,该接口允许操作系统生成器138与,例如,用户接口148、应用需求144、硬件约束146和操作系统组件142通信。
使用这种数据,代码合成器404用于动态合成操作系统128。例如,可以在已知的软件合成平台的顶部,使用对于操作系统生成器138是特殊的应用层实现代码合成器404。
例如,在操作中,合成器404可以在需求的应用需求144的元件、硬件约束146和操作系统组件142之间实现匹配的算法。以此方式,合成器可确 定将在操作系统128中使用的各种算法和/或数据结构。那么,基于匹配操作,合成器404可访问库代码(library code)406,该代码可包括预配置的代码部分和/或通用代码模板,它们在使用给定的目标语言表示算法和/或数据结构的过程中有用,操作系统128最终将使用该语言编写。
在此阶段,合成器404可使用优化逻辑408,以关于传感器网络102总体上(或它的相关部分)优化的方式生成操作系统128。例如,可使用优化逻辑408来实现交织处理来最大化CPU和输入/输出资源的利用,或者优化CPU 116的调度。例如,在稍后的例子中,可使用预空的调度,其中无须等候执行的应用程序放弃CPU 116的使用就切换CPU 116的上下文。
在合成器404的操作期间或之后,可使用一个或多个看门狗应用410来确保操作系统128的生成包含任何对于操作系统和/或应用的配置是必需的或期望的、但是可能不直接涉及操作系统128上运行应用的功能的组件。例如,如上所述,设备104可包括RF通信驱动器136,可以假设它为了实际上所有可在设备104上运行和/或需求某种形式的射频通信的应用而被包括。在此情况下,尽管可能在应用需求144或硬件约束146中都没有指定RF通信驱动器136,看门狗410也可采取措施确保合成器404在装配操作系统128中包括RF通信驱动器136。因此,可阻止合成器404特征化或优化与应用130和/或硬件资源(例如,传感器120、传感器122、或输出元件124)一起使用的操作系统128达到这种核心的、基础的和/或本质的操作系统组件不包括在操作系统128内的程度。
在相似的例子中,看门狗应用410可确保某些操作系统组件包括在操作系统128内,这些操作系统组件对于配置在设备104-110上的任何操作系统都是重要的,或对于系统100的整个运行是重要的。例如,可以包括用于存储器114的存储管理,或用于CPU的任务调度的操作系统组件。此外,某些元件可与操作系统128相关,如与操作代码注入器154相关的代码,或用于在设备104的起始点装载操作系统的代码(此处,例如,为了允许如其中所说明的操作系统的进一步生成,可为设备104最初安装的操作系统的通用、初始版本)。在此点上,明显的是,不能引起代码注入器154(或启动代码)的功能的操作系统的注入和操作可导致系统100其后无力配置或操作第二、稍后配置的操作系统(或安装相应的应用)。
一旦以上述的方式被合成,结果代码可用指定的目标语言编译。那么, 在新生成的操作系统128的实际的配置之前,可用代码测试器412来测试生成代码的操作以确保可操作性、性能和可靠性。例如,可由代码测试器412生成测试数据,并且由生成的操作系统操作测试数据。
图5是示出了图1的系统100的操作的流程图500。图5中,假定通过相对较多的传感器网络实现系统100。例如,可在包括通过较大的地理区域传播的多个位置布置的传感器网络的全企业网络的环境中实现系统100。如另一个例子,系统100可能在特殊的站点或位置包括或许执行许多不同类型操作的大量传感器网络和/或设备。例如,在后面的例子中,在仓库设置中,可能有传感器网络部署用于监视存货,或提供欺骗监视/偷窃监视,或自动检测仓库中可涉及仓库货物的维持或保存的条件(例如,温度检测、湿度检测、变化检测或湿气检测)。
因此,在图5中,最初可确定传感器网络的应用上下文(application context)和/或位置(502)。例如,如上面的例子中,用户可以访问用户接口148来指定用户感兴趣于一个或多个传感器网络的温度检测应用,该网络被指定位于仓库环境中。如下较详细的说明,通过以此方式限制应用环境和/或传感器网络位置,系统100可能把期望的操作系统和/或应用的较快较多的有效配置和较集中的选择标准提供给用户。
例如,基于应用内容和/或传感器网络的位置,系统100可使许多用户可利用的可能的应用需求、组件、或特征减少(504)。例如,如果用户指定一个特殊的仓库用于期望的应用配置,那么系统100可提前知道何种类型的应用是必需的或者可用的或否则与那个仓库有关联。当然,如上所述,但在一些实施方式中,在用户期望并且能够如此做的情况下,可允许用户添加应用/组件/需求。
相似地,系统100可确定与指定的应用环境关联和/或传感器网络的位置相关的可用的硬件资源和/或约束(506)。那就是说,如使用以上的例子,系统100可确定在指定的仓库中只有有限的一些传感器和/或输出元件是可用的。在这一点上,可用硬件或硬件约束的确定可参考哪个传感器和/或输出元件被安装在仓库地点的设备上的绝对的说明,或者,在其它的实施方式中,可参考相反在仓库地点处当前不使用的传感器和/或输出元件的数目。在后者的例子中,为了确定其可用性,系统100可以执行可用硬件资源的监视。
系统100也可确定与用户指定的期望应用配置相关的各种系统和/或网络 约束(508)。例如,系统100可确定指定的仓库地点处的传感器网络可具有某种功率限制,或者可具有某种在其它的传感器网络中可不必要出现的通信限制。
基于前述,系统100可为用户呈现用户接口(510),如用户接口148,在接口中允许用户指定将与指定的传感器网络相关的期望特征和功能。例如,如上面关于图2的说明,用户接口148可接收应用的选择、应用需求、和/或用户指定的硬件约束(512)。例如,如下面关于图6的较详细说明,用户可通过用户接口148指定期望在具有某些与之相关的硬件约束的给定传感器网络上配置的温度检测应用。
在一些实施方式中,可以用简单、直接的方式实现应用定义、应用需求和/或硬件约束。例如,如这里所述,用户可简单地指定提前已知道将与某个硬件约束相关的一个或多个预构造的应用,此处在系统100上可继续生成相关的硬件操作系统。在实施方式的另一个例子中,可允许较复杂的用户构造一个期望的使用应用组件156的应用,或者在一些例子中,可被允许构造他们自身在系统100中使用的应用或应用组件。
用户接口148也可以用来接收可由用户指定的全系统约束(system-wideconstraints)的选择(514)。例如,在上面说明的仓库设置中,情况可能是,某些彼此存在情况下易燃的化学药品被存储在仓库中,因此不应被存储得彼此太近。因此,全系统约束大约应该在这种位置,通过该位置要求存储化学药品的货盘彼此间总是维持某个距离。那么,与每个货盘相关的传感器可共享位置信息以实施全系统约束。
也可通过用户接口148接收非功能性约束(516)。那就是说,这些非功能性约束可无需特别地关注、或参考可怀疑应用的功能而被施加。例如,这种非功能的约束可包括某种节省功率的特征、某种对用户指定的设备之间通信的约束、或任何其它与设备(或关于它的核心操作)相关的约束,但是对于配置在那些设备上的给定应用的功能并不特殊。
如这里所述,基于以上信息和或许基于附加的或可选的信息,可生成对于期望的应用和/或指定的传感器网络和相关的设备是特殊的操作系统(518)。因此,可最小化生成的操作系统的尺寸和资源消费,因为对于不与被配置的特殊应用相关的或配置的特殊的应用不需要的软件或硬件,不需要资源消费。操作系统的生成可包括操作系统的合成、优化和测试,和装配的 资源代码的编译,如上面关于图4的说明。
一旦生成,可将操作系统注入到指定设备上(520)。例如,网关计算机150的无线收发机152可用来将操作系统无线地传输给设备104的代码注入器154,相似的内容可应用到传感器网络102的设备106-110。即便在相关的设备和传感器网络是远程的或另外不可访问的情况下,这种无线注入允许生成的操作系统的快速并且便利的配置。
例如,传感器网络可配置在水下,或者弹药射程上,或海上采油钻塔上,或者可简单地安装在远离集团总部的仓库处。在这些情况下,用户实际上可从任何地方访问作为可访问网(或可访问的企业内部互联网)的入口的一部分的用户接口148,并且因此可更新期望的传感器网络的操作系统。此外,即使用户对于传感器网络102来说是本地的,情况可能是,没有对设备104-110可行的或可实践的访问是本地可用的。因此,例如,基于本地观察,基于入口的用户接口148在允许传播或访问用户在多个站点有效地修改传感器网络中是有用的。
随着操作系统就绪,可生成期望的应用(522)。例如,在简单的情况下,单个应用可配置到传感器网络102的设备104-110的一个或多个。在较复杂的例子中,多个应用或应用组件可配置到传感器网络的特殊的设备。例如,第一设备(例如,设备104)可接收第一系列应用或应用组件,而同时第二设备(例如,设备106)接收第二系列应用或应用组件。例如,不同的设备104、106可包括不同的传感器和/或输出元件,因此,在一些实施方式中,与那些传感器和/或输出元件相关的应用或应用组件可仅被配置到这些相关的设备。在这些情况下,操作系统对于所有的与全部应用相关的设备可能是相同的,或者为每个设备在一定程度上定制,来考虑设备(即,不同的应用组件或不同的传感器/输出元件)之间的刚刚说明的差异。
因此生成的应用可被注入到指定的设备(524)。例如,相似于操作系统128的配置,为了由CPU 116和操作系统128执行将其注入进存储器112,应用可被无线地传输到代码注入器154。
尽管上面以连续的顺序说明,应该理解的是,流程图500的操作可以以不同的顺序执行,或者可同时地被执行。而且,在各种实现中,一些操作的被忽略,或者另外的操作可能被添加。
此外,应该理解的是,这里说明的由用户执行的任何操作、技术和实现 的功能性实际上也可以以自动化或计算机处理的方式实现。例如,应用130可被自动化地指定给配置(例如,根据调度,或基于对某个事件或偶然事件的响应)。在这些情况下,操作系统生成器138可自动化地分解应用130的组件或其它的特征或功能,以确定应用需求144,并且可自动地确定硬件约束146(例如,基于已知的或已检测的关于可怀疑的传感器网络的硬件资源的信息)。那么,系统100可自动地配置作为结果的操作系统和应用。相反地,这里说明的一些或所有的自动操作、技术、和功能可以手动执行,包括确定应用需求和/硬件约束(例如,基于已知或参考的应用需求和/或硬件约束,用户可直接选择或指定期望的操作系统组件)。
图6是图1的系统100的用户接口148的例子。如上所述,在图6的例子中,用户接口148可表示与企业入口相关的接口。在其它的实施方式中,用户接口148可表示与/在图1的PC 140和/或网关计算机150上以单机模式实现的用户接口。
图6的用户接口148可结合图2的流程图200中、或者图5的流程图500中的一些或所有的操作使用。用户接口148,或它的变化,也示出了如上面说明的关于图2或5的那些的附加的或可选的操作。
例如,图6中,用户可通过指定字段602中的期望应用与用户接口148交互。在图6中说明和示出的具体例子中,用户已通过在下拉菜单从可能的或可用的应用字段中选择在字段602中指定温度检测应用。如已经说明的,可预先配置这种应用,以提供给用户不费力的应用选择和配置。但是,在其它的例子中,可将选择用于彼此交互的多个应用的选项提供给用户,或者可允许用户指定或提供用于构造的期望的应用组件到期望应用中,或可允许用户参数化存在的应用,以得到期望的目标或效果。
此外在图6中,用户可使用字段604从多个传感器网络中指定期望的传感器网络,或者传感器网络的类型。也就是说,在一个例子中,用户可指定网络“A”将用于字段602的温度检测应用的配置。在一些实施方式中,由于仅某些网络可提供这种应用,因此基于字段602中的温度检测应用的先前的指定,可限制许多包括在字段604的下拉列表中的网络。在其它的例子中,情况是相反的,即,字段604的网络的定义可将字段602的下拉菜单的内容约束到包括温度检测应用的一系列的应用。
可使用字段606指定传感器网络的位置。例如,传感器网络“A”可表 示仅仅配置在企业某个位置的某个类型的网络,所以要求用户使用字段606提供如在仓库“A”中指定的类型的具体网络的位置。当然,在其它的例子中,可首先指定网络位置,并且可用的传感器网络和/应用的结果列表可被定义并且呈现以响应领域606中网络位置的指定。
此外在图6中,用户可访问字段608的下拉菜单来选择设备或与指定传感器网络相关的设备类型。例如,字段608可用来指定在指定的温度检测应用中可用的温度传感器的类型,用于用户对它的选择。如上面,字段608可使用可用选择预先组装。
相似地,用户可选择可与字段602中指定的温度检测应用一起使用的另外的设备类型。在图6的例子中,用户可选择字段610中的LED,该字段用于字段602中温度检测应用中的可视通知。在给定的例子中,如果期望,用户可让字段610空白来指定不包括LED。在这些情况下,如这里所述,生成的作为结果的操作系统可包括(或不包括)驱动器或其它的相关的组件,用于支持LED和支持LED的期望使用(例如,依靠检测的温度范围,LED闪光频率)。
字段612允许选择二级输出设备的可能性来与字段602中的温度检测应用一起使用。特别地,在图6的例子中,可选择字段612指定扬声器用于允许响应未预料的温度检测的声音警报。在使用字段610中的LED时,这种扬声器具有字段602中的温度检测应用的包括是可选的,同样,可相应地生成作为结果的操作系统。
如上所述,可指定附加的系统和/或非功能的约束用于生成操作系统。在图6的例子中,使用字段614可指定非功能约束。例如,根据哪个传感器与字段602中的温度检测应用相关,在几分钟(例如,10分钟)的不活动状态后可进入功率保存状态,可指定节省功率特征。
此外,字段616示出了系统约束的例子,其中操作系统可被生成和/或被限制的传感器网络的设备的百分比。例如,设备可配置在给定的位置(例如,仓库位置),使得可由可用设备的一些子集提供充足的温度检测功能,从而使用传感器网络的所有设备可是多余的或浪费的。
一旦用户接口148的所有字段已被选择或另外指定,用户通过按钮618的选择可实现作为结果的操作系统的生成和配置。另一方面,用户使用复位按钮620可复位用户接口148一些或所有的字段。
尽管示出图6的用户接口148为单屏,但是应该理解的是,可使用多屏提供用户接口148的各种字段602-620。例如,考虑图5中的例子,情况是根据期望的传感器网络和/或传感器网络位置的选择,字段604和/或606出现在第一个屏幕上,以至于系统100使得将出现在字段602的可能应用字段减少。
尽管示出用户接口148包括下拉菜单,应该理解的是,任何期望的或适当的布局元件可用来提供其中说明的功能,或相似的功能。例如,可使用拖放工具/接口允许用户选择期望的应用组件和/或硬件资源。
可在数字电子电路中,或在计算机硬件、固件、软件或在它们的组合中实现这里说明的各种技术的实施方式。实施方式可作为计算机程序产品实现,即,计算机程序可确实包含在信息载体中,例如,在机器可读存储设备中或在传播的信号中,为了通过执行控制数据处理装置的操作,数据处理装置是如可编程的处理器,计算机或多个计算机。计算机程序,比如上面说明的计算机程序,能以任何形式的程序语言编写,包括汇编或编译语言,并且能以任何形式配置,包括如单机程序或如模块、部件、子程序或适合用在计算机环境中的其它单元。能配置计算机程序以在一个计算机上或多个计算机上实现,多个计算机在一个站点处或者可通过多个站点分布并且通过通信网络互相连接。
通过操作输入数据并且生成输出,可由执行计算机程序一个或多个可编程的处理器执行方法步骤来执行功能。方法步骤也可由特殊的目的逻辑电路执行,并且装置可被实施为特殊目的逻辑电路,例如,FPGA(现场可编程门阵列)或ASIC(特应专用集成电路)。
作为例子,适合执行计算机程序的处理器包括一般和特殊目的的微处理器,和任何种类的数字计算机的任何一个或多个处理器。一般地,处理器将接收来自只读存储器或随机存取存储器或者两者的指令和数据。计算机的元件可包括至少一个执行指令的处理器和一个或多个存储指令和数据的存储设备。一般地,计算机也可包括或者被可操作地耦合以从其接收数据或者传输数据到的,或者两者,一个或多个存储数据的大容量存储设备,例如,磁盘、磁光盘、或光盘。适合包含计算机程序指令和数据的信息载体包括非易失性存储的所有形式,例如包括半导体存储设备,例如,EPROM,EEPROM,和闪存设备;磁盘,例如,内部的硬盘或移动硬盘;磁光盘;和CD-ROM和 DVD-ROM盘。处理器和存储器可被特殊目的逻辑电路补充,或以特殊目的逻辑电路集成在特殊目的逻辑电路上。
为提供与用户的交互,可在计算机上实现实施方式,计算机具有显示设备,例如阴极射线管(CRT)或液晶(LCD)显示器,显示设备将信息显示给用户和键盘以及指示设备,例如鼠标或跟踪球,通过他们用户能提供输入给计算机。其它类型的设备能也被用来提供与用户的交互;例如,提供给用户的反馈能是任何形式的感知反馈,例如,视觉反馈,听觉反馈,或者触觉反馈;并且来自用户的输入能被以任何形式接收,输入包括声音的、语言的、或触觉的输入。
实施方式可在计算机系统中实现,计算机系统包括后端组件,例如,如数据服务器,或包括中间设备组件,例如,应用服务器,或者包括前端组件,例如,客户计算机,该客户计算机具有图形用户接口或网络浏览器,通过图形用户接口或网络浏览器用户能与实施方式,或后端、中间设备、或前端组件的任何组合交互。通过任何形式或数字数据通信的中间介质,例如,通信网络,可互连组件。通信网络的例子包括局域网(LAN)和广域网(WAN),例如,因特网。
虽然如这里说明的,已示出了所述实施方式的某些特征,现在对于本领域的技术人员来说,可进行许多修改、替换、变化和等同。因此,应该理解的是,附带的权利要求用于覆盖所有此种修改和变化。
Claims (17)
1.一种方法,包括:
(a)确定(202)使用传感器网络(102)执行应用(130)的应用需求(144),该传感器网络(102)包括多个设备(104、106、108、110);
(b)确定(204)与所述设备相关的硬件约束(146);
(c)基于所述应用需求(144)和所述硬件约束(146)通过合成操作系统(128)的代码来动态生成(206)操作系统(128),其中,使用一个或多个看门狗应用(410)来确保操作系统(128)的生成包含对于操作系统和/或应用的配置是必需的或期望的、但是不直接涉及操作系统上运行应用的功能的组件;
(d)在操作系统(128)的代码被合成之后,利用指定的目标语言对操作系统(128)的合成代码进行编译;
(e)在生成的操作系统(128)被实际配置之前,利用代码测试器(412)来测试操作系统(128)的合成代码的操作,其中由代码测试器(412)生成测试数据,并且由生成的操作系统(128)操作测试数据;以及
(f)通过经由网关计算机(150)将操作系统(128)传输到一个或多个设备(104、106、108、110),并且将该操作系统(128)注入到该一个或多个设备(104、106、108、110),来将该操作系统(128)配置到该一个或多个设备(104、106、108、110),
其中,所述方法通过返回用于确定应用需求的所述步骤(a),并继续执行步骤(a)~(f),来进行迭代继续。
2.如权利要求1所述的方法,其中确定使用传感器网络执行应用的应用需求包括:
接收对配置在所述传感器网络(102)上的所述应用(130)的指定;和
分解与所述应用(130)相关的功能性以确定所述应用需求(144)。
3.如权利要求1所述的方法,其中确定使用传感器网络执行应用的应用需求包括:
从用户经由用户接口(148)接收所述应用需求(144)。
4.如权利要求1所述的方法,其中确定使用传感器网络执行应用的应用需求包括:
定义与至少一个所述设备相关的传感器(120、122)所感测的条件;和
定义所述应用(130)对所述条件的期望响应。
5.如权利要求4所述的方法,其中定义所述应用对所述条件的期望响应包括:
定义与包括在所述期望响应中的至少一个所述设备相关的输出元件(124)的操作。
6.如权利要求1所述的方法,其中确定与所述设备相关的硬件约束包括:
确定与至少一个所述设备相关的硬件资源,该硬件资源包括一个或多个传感器(120、122)、输出元件(124)、处理器(116)、存储器(114)、无线通信设备(118)、或电源(126)。
7.如权利要求1所述的方法,其中确定与所述设备相关的硬件约束包括:
对于所述应用需求(144),确定由与所述设备相关的硬件资源提供的功能。
8.如权利要求1所述的方法,其中基于所述应用需求和所述硬件约束生成操作系统包括:
基于所述应用需求(144)和所述硬件约束(146),使用彼此组合的多个操作系统组件(142)来合成操作系统(128)。
9.如权利要求1所述的方法,其中基于所述应用需求和所述硬件约束生成操作系统包括:
比较所述应用需求(144)和所述硬件约束(146),以在支持所述设备的应用(130)和/或硬件资源中确定由所述操作系统(128)提供的功能。
10.如权利要求1所述的方法,其中基于所述应用需求和所述硬件约束生成操作系统包括:
生成所述操作系统(128)来提供对所述设备的可用硬件资源的子集的支持,该可用硬件资源的子集足够实现所述应用需求(144)和执行所述应用(130)。
11.如权利要求1所述的方法,包括:
确定与所述传感器网络(102)相关的全网络约束;和
基于所述全网络约束生成所述操作系统(128)。
12.如权利要求1所述的方法,包括:
确定对于所述应用(130)的功能不是必需的非功能性约束,该非功能性约束与所述传感器网络(102)或与所述设备相关;和
基于所述非功能性约束生成所述操作系统(128)。
13.一种系统,包括:
组件库(142),用于可操作地存储与将被提供给传感器网络(102)的多个设备(104、106、108、110)的功能相关的操作系统组件;
操作系统生成器(138),用于基于与在多个设备上和在与多个设备相关的硬件约束(146)上执行应用相关的应用需求(144),可操作地通过合成操作系统(128)的代码来从被选择的操作系统组件中动态生成操作系统(128),其中,操作系统生成器(138)使用一个或多个看门狗应用(410)来确保操作系统(128)的生成包含对于操作系统和/或应用的配置是必需的或期望的、但是不直接涉及操作系统上运行应用的功能的组件,并且,在操作系统(128)的代码被合成之后,操作系统生成器(138)可操作地利用指定的目标语言对操作系统(128)的合成代码进行编译;
代码测试器(412),其在生成的操作系统(128)被实际配置之前,可操作以测试操作系统(128)的合成代码的操作,其中由代码测试器(412)生成测试数据,并且由生成的操作系统(128)操作测试数据;以及
网关计算机(150),其可操作将操作系统(128)传输到一个或多个设备(104、106、108、110),并且将该操作系统(128)注入到该一个或多个设备(104、106、108、110),来将该操作系统(128)配置到该一个或多个设备(104、106、108、110),
其中,所述系统还被配置成迭代所述组件库(142)、操作系统生成器(138)代码测试器(412)以及网关计算机(150)的操作。
14.如权利要求13所述的系统,其中所述组件库(142)可操作地提供硬件驱动器或与所述设备的硬件资源相关的通信元件。
15.如权利要求13所述的系统,其中所述操作系统生成器(138)可操作地经由用户接口(148)确定所述应用需求(144)。
16.如权利要求13所述的系统,其中所述操作系统生成器(138)可操作地确定与所述设备的硬件资源相关的所述硬件约束(146),该硬件资源包括一个或多个传感器(120、122)、输出元件(124)、处理器(116)、存储器(114)、无线通信设备(118)、或电源(126)。
17.如权利要求13所述的系统,包括:
库代码库(406),其包括在从所述操作系统组件合成所述操作系统的过程中由所述操作系统生成器(138)使用的编程代码模板。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/313,311 | 2005-12-21 | ||
US11/313,311 US9015652B2 (en) | 2005-12-21 | 2005-12-21 | Dynamically-generated operating system for sensor networks |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101051969A CN101051969A (zh) | 2007-10-10 |
CN101051969B true CN101051969B (zh) | 2012-08-29 |
Family
ID=37943824
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200610130901.8A Active CN101051969B (zh) | 2005-12-21 | 2006-12-21 | 用于传感器网络的动态生成操作系统 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9015652B2 (zh) |
EP (1) | EP1801695B1 (zh) |
CN (1) | CN101051969B (zh) |
AT (1) | ATE447740T1 (zh) |
DE (1) | DE602006010160D1 (zh) |
Families Citing this family (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7757224B2 (en) * | 2006-02-02 | 2010-07-13 | Microsoft Corporation | Software support for dynamically extensible processors |
US8185599B2 (en) * | 2007-04-18 | 2012-05-22 | Microsoft Corporation | Programming techniques for distributed multi-party networks |
KR100931519B1 (ko) * | 2007-09-03 | 2009-12-14 | 주식회사 옥타컴 | 센서 노드 운영 체제에서 센서 디바이스 관리 기법 |
US9104430B2 (en) * | 2008-02-11 | 2015-08-11 | Palo Alto Research Center Incorporated | System and method for enabling extensibility in sensing systems |
US20090287964A1 (en) * | 2008-05-17 | 2009-11-19 | Sunrise Telecom Incorporated | Internet accessible test system |
EP3087858B1 (en) * | 2008-06-13 | 2021-04-28 | NIKE Innovate C.V. | Footwear having sensor system |
US9549585B2 (en) | 2008-06-13 | 2017-01-24 | Nike, Inc. | Footwear having sensor system |
US10070680B2 (en) | 2008-06-13 | 2018-09-11 | Nike, Inc. | Footwear having sensor system |
US9002680B2 (en) | 2008-06-13 | 2015-04-07 | Nike, Inc. | Foot gestures for computer input and interface control |
US20100198903A1 (en) * | 2009-01-31 | 2010-08-05 | Brady Corey E | Network-supported experiment data collection in an instructional setting |
US8769529B2 (en) | 2009-07-24 | 2014-07-01 | Novell, Inc. | Generating and automatically loading reduced operating system based on usage pattern of applications |
US9529689B2 (en) | 2009-11-30 | 2016-12-27 | Red Hat, Inc. | Monitoring cloud computing environments |
US20110214124A1 (en) * | 2010-02-26 | 2011-09-01 | James Michael Ferris | Systems and methods for generating cross-cloud computing appliances |
US20110213687A1 (en) * | 2010-02-26 | 2011-09-01 | James Michael Ferris | Systems and methods for or a usage manager for cross-cloud appliances |
EP2638491B1 (en) | 2010-11-10 | 2022-10-05 | NIKE Innovate C.V. | Systems and methods for time-based athletic activity measurement and display |
US9381420B2 (en) | 2011-02-17 | 2016-07-05 | Nike, Inc. | Workout user experience |
CA2827687C (en) | 2011-02-17 | 2016-12-20 | Nike International Ltd. | Footwear having sensor system |
KR101853239B1 (ko) | 2011-02-17 | 2018-04-27 | 나이키 이노베이트 씨.브이. | 위치 맵핑 |
KR101896204B1 (ko) | 2011-02-17 | 2018-09-07 | 나이키 이노베이트 씨.브이. | 센서 시스템을 가지는 신발류 |
CN102411502B (zh) * | 2011-09-09 | 2014-04-16 | 南京西奥仪表测控有限公司 | 一种组件式传感节点及其构造方法 |
US11684111B2 (en) | 2012-02-22 | 2023-06-27 | Nike, Inc. | Motorized shoe with gesture control |
US20130213147A1 (en) | 2012-02-22 | 2013-08-22 | Nike, Inc. | Footwear Having Sensor System |
US20130213146A1 (en) | 2012-02-22 | 2013-08-22 | Nike, Inc. | Footwear Having Sensor System |
US8739639B2 (en) | 2012-02-22 | 2014-06-03 | Nike, Inc. | Footwear having sensor system |
US11071344B2 (en) | 2012-02-22 | 2021-07-27 | Nike, Inc. | Motorized shoe with gesture control |
US9043004B2 (en) | 2012-12-13 | 2015-05-26 | Nike, Inc. | Apparel having sensor system |
US11006690B2 (en) | 2013-02-01 | 2021-05-18 | Nike, Inc. | System and method for analyzing athletic activity |
US9743861B2 (en) | 2013-02-01 | 2017-08-29 | Nike, Inc. | System and method for analyzing athletic activity |
US10926133B2 (en) | 2013-02-01 | 2021-02-23 | Nike, Inc. | System and method for analyzing athletic activity |
US9279734B2 (en) | 2013-03-15 | 2016-03-08 | Nike, Inc. | System and method for analyzing athletic activity |
KR102187505B1 (ko) * | 2013-07-22 | 2020-12-08 | 삼성전자 주식회사 | 전자 디바이스의 표시 제어 방법 및 장치 |
DE102014213205A1 (de) * | 2014-07-08 | 2016-01-14 | Robert Bosch Gmbh | Umfelderfassungssystem und Verfahren zum Betrieb eines Umfelderfassungssystems |
CN106231609B (zh) * | 2016-09-22 | 2019-06-21 | 北京工商大学 | 一种基于重点目标区域的水下传感器网络优化部署方法 |
US11580348B2 (en) | 2016-12-14 | 2023-02-14 | Trackonomy Systems, Inc. | Transient infrastructure for ubiquitous network communications applications |
US11003978B2 (en) | 2016-12-14 | 2021-05-11 | Ajay Khoche | Programmable network node roles in hierarchical communications network |
US10884808B2 (en) * | 2016-12-16 | 2021-01-05 | Accenture Global Solutions Limited | Edge computing platform |
US10706102B2 (en) | 2017-03-06 | 2020-07-07 | International Business Machines Corporation | Operation efficiency management with respect to application run-time |
US10698742B2 (en) * | 2017-03-06 | 2020-06-30 | International Business Machines Corporation | Operation efficiency management with respect to application compile-time |
DE102018112364A1 (de) * | 2018-05-23 | 2019-11-28 | Fujitsu Technology Solutions Intellectual Property Gmbh | Verfahren zum Bereitstellen anwendungsorientierter Software sowie Computersystem |
US10884717B2 (en) * | 2019-04-09 | 2021-01-05 | Raytheon Company | Resource management system featuring a sensor-agnostic software architecture |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0290330A (ja) * | 1988-09-28 | 1990-03-29 | Hitachi Ltd | プログラム構成方式 |
JP2592955B2 (ja) * | 1989-04-04 | 1997-03-19 | 株式会社東芝 | プログラム自動生成装置 |
US5812394A (en) * | 1995-07-21 | 1998-09-22 | Control Systems International | Object-oriented computer program, system, and method for developing control schemes for facilities |
US5860006A (en) * | 1995-09-15 | 1999-01-12 | Apple Computer, Inc. | Processor independent network operating system loadable modules |
US5901319A (en) * | 1996-06-14 | 1999-05-04 | The Foxboro Company | System and methods for generating operating system specific kernel level code from operating system independent data structures |
US6138271A (en) | 1996-06-26 | 2000-10-24 | Rockwell Technologies, Llc | Operating system for embedded computers |
US6226665B1 (en) * | 1996-09-19 | 2001-05-01 | Microsoft Corporation | Application execution environment for a small device with partial program loading by a resident operating system |
US6016394A (en) | 1997-09-17 | 2000-01-18 | Tenfold Corporation | Method and system for database application software creation requiring minimal programming |
US6075939A (en) * | 1997-09-27 | 2000-06-13 | Lynx Real-Trime Systems, Inc. | Tightly coupled, scalable module based micro-kernel operating system architecture |
US5999730A (en) * | 1997-10-27 | 1999-12-07 | Phoenix Technologies Limited | Generation of firmware code using a graphic representation |
US6604235B1 (en) * | 1999-01-06 | 2003-08-05 | Icebox, Llc | Operating system upgrading |
US6718533B1 (en) * | 1999-02-26 | 2004-04-06 | Real-Time Innovations, Inc. | Method for building a real-time control system with mode and logical rate |
US7089499B2 (en) * | 2001-02-28 | 2006-08-08 | International Business Machines Corporation | Personalizing user interfaces across operating systems |
US20030005412A1 (en) * | 2001-04-06 | 2003-01-02 | Eanes James Thomas | System for ontology-based creation of software agents from reusable components |
US6907610B2 (en) * | 2001-06-15 | 2005-06-14 | Microsoft Corporation | System and method for building a target operating system from a source operating system |
US7367020B2 (en) * | 2001-07-27 | 2008-04-29 | Raytheon Company | Executable radio software system and method |
US20030074487A1 (en) * | 2001-10-17 | 2003-04-17 | Tankut Akgul | Dynamic operating system |
US7428559B2 (en) | 2001-12-13 | 2008-09-23 | Microsoft Corporation | Versioning model for software program development |
US20030182652A1 (en) | 2001-12-21 | 2003-09-25 | Custodio Gabriel T. | Software building and deployment system and method |
CN100375086C (zh) * | 2002-07-03 | 2008-03-12 | 东京电子株式会社 | 用于动态传感器配置和运行时间执行的方法和设备 |
US7340737B2 (en) * | 2002-07-03 | 2008-03-04 | National Instruments Corporation | Wireless deployment / distributed execution of graphical programs to smart sensors |
US7346891B2 (en) * | 2002-07-05 | 2008-03-18 | Eka Systems Inc. | System and method for automating generation of an automated sensor network |
US7716632B2 (en) * | 2002-11-01 | 2010-05-11 | Vertafore, Inc. | Automated software robot generator |
US7197743B2 (en) * | 2003-03-04 | 2007-03-27 | Hitachi, Ltd. | Method for generating computer software for embedded systems |
US7725888B2 (en) * | 2003-09-26 | 2010-05-25 | Wind River Systems, Inc. | Systems and methods for dynamically linking application software into a running operating system kernel |
US8055907B2 (en) * | 2003-10-24 | 2011-11-08 | Microsoft Corporation | Programming interface for a computer platform |
US7739671B1 (en) * | 2003-12-22 | 2010-06-15 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Systems, methods and apparatus for implementation of formal specifications derived from informal requirements |
US7752608B1 (en) * | 2003-12-22 | 2010-07-06 | The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Systems, methods and apparatus for verification of knowledge-based systems |
US7231632B2 (en) * | 2004-04-16 | 2007-06-12 | Apple Computer, Inc. | System for reducing the number of programs necessary to render an image |
US7424601B2 (en) * | 2004-07-07 | 2008-09-09 | Yongyong Xu | Methods and systems for running multiple operating systems in a single mobile device |
US20060106920A1 (en) * | 2004-11-15 | 2006-05-18 | Microsoft Corporation | Method and apparatus for dynamically activating/deactivating an operating system |
US7395195B2 (en) * | 2004-12-27 | 2008-07-01 | Sap Aktiengesellschaft | Sensor network modeling and deployment |
US7844396B2 (en) * | 2005-09-13 | 2010-11-30 | Deere & Company | Method and system for modular data processing for a vehicle control system |
-
2005
- 2005-12-21 US US11/313,311 patent/US9015652B2/en active Active
-
2006
- 2006-12-19 EP EP06026317A patent/EP1801695B1/en active Active
- 2006-12-19 AT AT06026317T patent/ATE447740T1/de not_active IP Right Cessation
- 2006-12-19 DE DE602006010160T patent/DE602006010160D1/de active Active
- 2006-12-21 CN CN200610130901.8A patent/CN101051969B/zh active Active
Non-Patent Citations (2)
Title |
---|
L.FERNANDO FRIEDRICH等.A SURVEY OF CONFIGURABLE, COMPONENT-BASED OPERATING SYSTEMS FOR EMBEDDED APPLICATIONS.《IEEE MICRO》.IEEE SERVICE CENTER,2001,第21卷(第3期),54-68. * |
L.FERNANDOFRIEDRICH等.ASURVEYOFCONFIGURABLE COMPONENT-BASED OPERATING SYSTEMS FOR EMBEDDED APPLICATIONS.《IEEE MICRO》.IEEE SERVICE CENTER |
Also Published As
Publication number | Publication date |
---|---|
CN101051969A (zh) | 2007-10-10 |
EP1801695B1 (en) | 2009-11-04 |
EP1801695A1 (en) | 2007-06-27 |
US20070143452A1 (en) | 2007-06-21 |
US9015652B2 (en) | 2015-04-21 |
DE602006010160D1 (de) | 2009-12-17 |
ATE447740T1 (de) | 2009-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101051969B (zh) | 用于传感器网络的动态生成操作系统 | |
CN101072150B (zh) | 在用于智能物件的中间件中分布可重新定位的服务 | |
US10691089B2 (en) | Information processing apparatus or information communication terminal, and information processing method | |
Bellifemine et al. | SPINE: a domain‐specific framework for rapid prototyping of WBSN applications | |
US7676483B2 (en) | Executable task modeling systems and methods | |
CN101083586B (zh) | 用于智能物件监视的模块化监视器服务系统和方法 | |
Patel et al. | Towards application development for the internet of things | |
US20070067373A1 (en) | Methods and apparatuses to provide mobile applications | |
CN101013956A (zh) | 智能项目的分级的多层映射和监视架构 | |
US20070250358A1 (en) | System and method of RFID device management | |
CN105792751A (zh) | 用于修正基于永久rom的编程的系统和方法 | |
WO2023091275A1 (en) | Intelligence driven method and system for multi-factor optimization of schedules and resource recommendations for smart construction | |
CN101163152A (zh) | 智能物件环境中基于成本的组件部署 | |
CN102142025B (zh) | 构成带有链接的自动创建的视图 | |
Schwieren et al. | A design and development methodology for mobile RFID applications based on the ID-Services middleware architecture | |
Nam et al. | Business-aware framework for supporting RFID-enabled applications in EPC Network | |
Rodrigues et al. | GoalD: A goal-driven deployment framework for dynamic and heterogeneous computing environments | |
CN101295261B (zh) | 一种面向普适计算环境的构件化上下文处理方法 | |
Velasquez et al. | A 3D simulation framework for safe ambient-assisted home care | |
US9479889B2 (en) | Service platform for general-purposed multi-functional detectors | |
Wojciechowski et al. | A user interface level context model for ambient assisted living | |
Daniel et al. | Combining conceptual modeling and active rules for the design of adaptive web applications | |
KR20180026153A (ko) | 사용자의 스케줄을 이용한 대여 아이템 추천 장치 및 이를 이용한 방법 | |
Weijie et al. | A context-aware services development model | |
Kim et al. | A semantic framework for reconfiguration of instrumented cyber physical spaces |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |