CN101689152B - 多进程间数据共享以及交互操作和交叉网络执行方法 - Google Patents
多进程间数据共享以及交互操作和交叉网络执行方法 Download PDFInfo
- Publication number
- CN101689152B CN101689152B CN200880017354.XA CN200880017354A CN101689152B CN 101689152 B CN101689152 B CN 101689152B CN 200880017354 A CN200880017354 A CN 200880017354A CN 101689152 B CN101689152 B CN 101689152B
- Authority
- CN
- China
- Prior art keywords
- data
- event
- protein
- application program
- sequence
- 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.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
Abstract
在此描述的实施例包括用于封装需要在进程之间或者跨越进程共享的数据的机制。这些机制包括色拉、蛋白质和池。一般而言,色拉提供最低水平的用于进程间交换的数据定义,蛋白质提供中等水平的用于查询和过滤的结构和钩子而池则提供高水平的组织和访问语义。色拉包括用于有效的不依赖于平台的数据表示和访问的机制。蛋白质提供使用色拉作为有效载荷的数据封装和传输方案。池在进程之内、在本地进程当中、跨越远程或分布式进程之间的网络并且经由较长期(例如盘上等)存储提供蛋白质的结构化并且灵活的聚集、排序、过滤和分发。
Description
相关申请
本申请要求2007年4月24日申请的美国(US)专利申请第60/926,116号的权益。
本申请与2006年2月8日申请的美国专利申请第11/350,697号相关,该专利申请要求2005年2月8日申请的美国临时专利申请第60/651,290号的权益。
技术领域
本发明涉及计算进程之内和之间的数据的表示、操纵和交换。
背景技术
传统的编程环境并不充分支持多计算机处理单元(CPU)和交叉网络执行或者大量计算进程之间的数据的灵活共享。
例如,传统的用户面对的计算平台(例如OS X、微软视窗、UNIX之上的X视窗)提供了用于传输进程之间的事件数据的设施。但这些现有的机制都遇到下述缺点:难以建立多进程和多机应用程序,并且迫使用户在多于一个的编程语言中工作以通过挫折环(frustrating hoop)跳转。例如,传统的事件框架被强烈地作为典型,这使得它们不灵活,给予系统卖主相对于应用程序设计员的设想的特权,并且形成了与日益流行的动态语言(例如Ruby、Python和Perl)的设施的失配。传统的框架还仅配置成支持点对点数据传送,这使协调多于几个的不同进程的活动变得困难或不可能。传统的框架还强烈地依赖于具体的本机存储器内数据结构,这使得它们不适于盘上存储或跨越网络传输。
通过引用进行结合
本说明书中提到的每个专利、专利申请和/或出版物都以其整体通过 引用结合于此到这样的程度,以至于好像每个单独的专利、专利申请和/或出版物都具体而单独地被指示通过引用而进行结合。
附图说明
图1是根据实施例的包括使用色拉(slaw)、蛋白质(protein)和池(pool)的数据表示的处理环境的框图。
图2是根据实施例的蛋白质的框图。
图3是根据实施例的记述(descrip)的框图。
图4是根据实施例的摄取(ingest)的框图。
图5是根据实施例的色拉的框图。
图6A是根据实施例的池中蛋白质的框图。
图6B示出了根据实施例的色拉头部格式。
图6C是根据实施例的使用蛋白质的流程图。
图6D是根据实施例的构造或生成蛋白质的流程图。
图7是根据实施例的包括使用色拉、蛋白质和池的数据交换的处理环境的框图。
图8是根据实施例的处理环境的框图,该处理环境包括多个装置和在所述装置中的一个或多个上运行的众多程序,其中,等离子体构造(例如池、蛋白质和色拉)用于允许众多运行的程序共享并对装置所生成的事件集体做出反应。
图9是根据替换实施例的处理环境的框图,该处理环境包括多个装置和在所述装置中的一个或多个上运行的众多程序,其中,等离子体构造(例如池、蛋白质和色拉)用于允许众多运行的程序共享并对装置所生成的事件集体做出反应。
图10是根据另一个替换实施例的处理环境的框图,该处理环境包括多个输入装置,所述多个输入装置耦合在运行于装置中的一个或多个上的众多程序当中,其中,等离子体构造(例如池、蛋白质和色拉)用于允许众多运行的程序共享并对输入装置所生成的事件集体做出反应。
图11是根据又一个替换实施例的处理环境的框图,该处理环境包括多个装置,所述多个装置耦合在运行于装置中的一个或多个上的众多程序 当中,其中,等离子体构造(例如池、蛋白质和色拉)用于允许众多运行的程序共享并对装置所生成的图形事件集体做出反应。
图12是根据再一个替换实施例的处理环境的框图,该处理环境包括多个装置,所述多个装置耦合在运行于装置中的一个或多个上的众多程序当中,其中,等离子体构造(例如池、蛋白质和色拉)用于允许对运行的程序进行状态检查、可视化和调试。
图13是根据另一个替换实施例的处理环境的框图,该处理环境包括多个装置,所述多个装置耦合在运行于装置中的一个或多个上的众多程序当中,其中,等离子体构造(例如池、蛋白质和色拉)用于允许影响或控制该进程池中产生和放置的状态信息的特性。
具体实施方式
在此教导了实施例,所述实施例包括新颖的编程或处理环境,其使得能够进行并且鼓励大规模多进程交互操作。在此提供的实施例克服了传统编程环境中的问题,传统的编程环境并不充分支持多计算机处理单元(CPU)和交叉网络执行或者大量计算进程之间的数据的灵活共享。
在此描述了用于封装将要在进程之间或者跨越进程共享的数据的方法和系统。这些机制包括色拉、蛋白质和池。一般而言,色拉提供最低水平的用于进程间交换的数据定义,蛋白质提供中等水平的用于查询和过滤的结构和钩子(hook),而池则提供高水平的组织和访问语义。色拉包括用于有效的不依赖于平台的数据表示和访问的机制。蛋白质提供使用色拉作为有效载荷的数据封装和传输方案。池在进程之内、在本地进程当中、跨越远程或分布式进程之间的网络并且经由较长期(例如盘上等)存储提供蛋白质的结构化并且灵活的聚集、排序、过滤和分发。
在此描述的实施例的配置和实现包括几个构造,它们一起使众多能力成为可能。例如,在此描述的实施例提供了数据在大量进程之间的有效交换。在此描述的实施例还提供了灵活的数据“定型(typing)”和结构,以便支持数据的广泛变化的种类和使用。进而,在此描述的实施例包括全都由基本上类似的应用程序编程接口(API)驱动的用于数据交换(例如本地存储器、盘、网络等)的灵活机制。此外,描述的实施例使得以不同的编程语言编写的进程之间的数据交换成为可能。另外,在此描述的实施例使得数据缓存和聚集状态的自动维护成为可能。
在以下描述中,介绍了众多的特定细节,以便提供对在此描述的实施例的透彻理解并使对实施例的描述成为可能。然而本领域技术人员将会认识到的是,可以在不使用特定细节中的一个或多个的情况下,或者可以在使用其它部件、系统等的情况下,来实施这些实施例。在其它实例中,众所周知的结构或操作未被示出或者没有进行详细描述,以避免使所公开的实施例的方面模糊。
下面的术语旨在具有如它们在此使用的以下一般意义。如在此使用的术语“进程”指的是执行一段时间的计算机程序。这个执行可能被机器或处理器之间的传送或暂停所打断,所以进程很可能被无限期挂起并“串行化”或“调度”至盘、跨越存储器总线或者越过网络。如本领域技术人员所理解的那样,前述意义可以包括其它意义。
如在此使用的术语“装置”指的是运行一个或多个程序或算法的任何基于处理器的装置、在一个或多个程序或算法之下运行的任何基于处理器的装置以及/或者耦合或连接到运行一个或多个程序或算法并且/或者在一个或多个程序或算法之下运行的基于处理器的装置的任何装置。如在此使用的术语“事件”指的是与运行或执行着的程序或算法、基于处理器的装置和/或耦合或连接到基于处理器的装置的装置相关联的任何事件(例如事件可以包括但不限于输入、输出、控制、状态、状态变化、动作、数据(而不管该数据的格式或该数据与其相关联的处理的阶段)等)。
图1是根据实施例的包括使用色拉、蛋白质和池的数据表示的处理环境的框图。在此提供的实施例的主要构造包括色拉、蛋白质和池。如在此描述的色拉包括用于有效的不依赖于平台的数据表示和访问的机制。如在此详细描述的蛋白质提供数据封装和传输方案,并且实施例的蛋白质的有效载荷包括色拉。如在此描述的池提供蛋白质的结构化但却灵活的聚集、排序、过滤和分发。池在进程之内、在本地进程当中、跨越远程或分布式进程之间的网络并且经由“较长期”(例如盘上)存储借助于蛋白质提供对数据的访问。
图2是根据实施例的蛋白质的框图。蛋白质包括长度头部、记述和摄取。如下面详细描述的那样,记述和摄取中的每一个都包括一个或多个色拉。
图3是根据实施例的记述的框图。如下面详细描述的那样,记述包括偏移、长度和色拉。
图4是根据实施例的摄取的框图。如下面详细描述的那样,摄取包括偏移、长度和色拉。
图5是根据实施例的色拉的框图。如下面详细描述的那样,色拉包括类型头部和类型专用数据。
图6A是根据实施例的池中蛋白质的框图。蛋白质包括长度头部(“蛋白质长度”)、记述偏移、摄取偏移、记述和摄取。记述包括偏移、长度和色拉。摄取包括偏移、长度和色拉。
如在此描述的蛋白质是用于封装数据的机制,所述数据需要在进程之间共享,或者需要跨越总线或网络或其它处理结构而移动。作为例子,蛋白质提供了用于传输和操纵数据的改进机制,所述数据包括对应于或者关联于用户接口事件的数据;特别地,实施例的用户接口事件包括2006年2月8日申请的美国专利申请第11/350,697号中描述的手势接口的用户接口事件,该专利申请以其整体通过引用结合于此。作为进一步的例子,蛋白质提供了用于传输和操纵数据的改进机制,所述数据包括但不限于图形数据或事件以及状态信息,这只是举几个例子。蛋白质是结构化的记录格式和用于操纵记录的方法的相关集合。如在此使用的记录的操纵包括将数据放到结构中、将数据从结构取出以及查询数据的格式和存在。蛋白质配置成经由以多种计算机语言编写的代码来使用。如在此描述的那样,蛋白质还配置成用于池的基本构筑块。进而,蛋白质配置成天然地能够在处理器之间并跨越网络移动,同时维持它们包括的数据原封不动。
与传统的数据传输机制形成对照,蛋白质是未定型的。在未定型的同时,蛋白质提供了强大且灵活的模式匹配设施,在其上实施“类型相似”功能。如在此描述的那样配置的蛋白质还固有地为多点(尽管作为多点传输的子集容易实现点对点形式)。另外,蛋白质定义了“通用”记录格式,其例如在存储器内、盘上和线(网络)上格式之间并无不同(或者仅在所执行的可选优化的类型方面不同)。
参考图2和6,实施例的蛋白质是字节的线性序列。在这些字节之内封装有记述列表和被称为摄取的关键值对的集合。记述列表包括任意精细但却有效可过滤的每个蛋白质事件描述。摄取包括关键值对的集合,其包括蛋白质的实际内容。
蛋白质与关键值对以及关于网络友好和多点数据交换的某些核心思想的相关性,与给予“元组(tuple)”的概念特权的较早系统(例如Linda、 Jini)共享。蛋白质与面向元组的系统在几个主要方面不同,包括使用记述列表以提供标准的可优化的模式匹配基底(substrate)。蛋白质还与面向元组的系统在适合于多种存储和语言构造的记录格式的严格规范连同对该记录格式的“接口”的几个具体实施方面不同。
转向蛋白质的描述,蛋白质的前四个或八个字节指定了蛋白质的长度,其在实施例中必须是16字节的倍数。这个16字节粒度确保了字节准直和总线准直效能在当代的硬件上可实现。未被自然“四倍长字校直”的蛋白质被填充以任意字节,以便它的长度是16字节的倍数。
蛋白质的长度部分具有以下格式:呈大端(big-endian)格式的指定长度的32位,其中四个最低阶位充当旗标以指示宏观水平蛋白质结构特性;继之以32个进一步的位,如果蛋白质的长度大于2^32字节的话。
实施例的16字节准直但书意味着前四个字节的最低阶位作为旗标可用。而且因此前三个低阶位旗标分别指示蛋白质的长度可以用前四个字节表示还是需要八个,蛋白质使用大端还是小端(little-endian)字节排序,以及蛋白质使用标准还是非标准结构,但是蛋白质不限于此。第四个旗标位被保留以供将来使用。
如果八字节长度旗标位被设置,则蛋白质的长度通过以下计算:读取下四个字节,并且使用它们作为大端的八字节整数的高阶字节(其中已经读取的四个字节供应低阶部分)。如果小端旗标被设置,则蛋白质中的所有二进制数值数据都将被解释为小端(否则为大端)。如果非标准旗标位被设置,则蛋白质的剩余部分不符合下面将要描述的标准结构。
在此不会进一步讨论非标准蛋白质结构,除了要说的是,关于对使用蛋白质和池的系统程序员可用的非标准蛋白质格式,存在用于描述和同步化的各种方法,并且当空间或计算周期受到约束时,这些方法是可以使用的。例如,实施例的最短蛋白质是十六字节。标准格式的蛋白质不能将任何实际的有效载荷数据装配到这十六个字节中(其中的最大份额已经被移交以描述蛋白质的组成部分的位置)。但是非标准格式的蛋白质就能够可以想象地使用16个字节中的12个用于数据。交换蛋白质的两个应用程序可以相互决定它们发出的任何16字节长的蛋白质总是包括例如表示来自实时模拟数字转换器的12个8位传感器值的12个字节。
紧跟着长度头部,在蛋白质的标准结构中,出现两个更多的可变长度整数。这些数分别指定了对记述列表中的第一个元素和第一个关键值对 (摄取)的偏移。这些偏移在此也分别被称为记述偏移和摄取偏移。这些数的每四倍的字节顺序由蛋白质端旗标位指定。对于每个而言,前四个字节的最高有效位确定数字是四个还是八个字节宽。如果最高有效位(msb)被设置,则前四个字节是双字(八字节)数字的最高有效字节。这在此被称为“偏移形式”。指向记述和对的单独偏移的使用允许记述和对通过不同的代码路径处理,使得例如与记述模式匹配和蛋白质装配相关的特殊优化成为可能。在蛋白质的开始处的这两个偏移的存在还允许几个有用的优化。
大多数蛋白质不会如此大以至于需要八字节的长度或指针,所以一般而言,长度(具有旗标)和两个偏移数字只会占据蛋白质的前三个字节。在许多硬件或系统体系结构上,超过第一个的一定数目字节的提取或读取是“免费的”(例如16个字节正好占用与单个字节相同数目的时钟周期以跨越单元处理器的主总线牵引)。
在许多实例中,允许蛋白质内部的实施专用或环境专用的缓存或元数据都是有用的。偏移的使用允许在蛋白质的开始附近创建任意尺寸的“洞”,其中可以放置这样的元数据。可以利用八个字节的元数据的实施在许多系统体系结构上免费得到那些字节,其中每次提取蛋白质的长度头部。
记述偏移指定了蛋白质的开始与第一个记述条目之间的字节数。每个记述条目包括到下一个记述条目的偏移(当然是以偏移格式),继之以可变宽度的长度字段(又是以偏移格式),继之以色拉。如果没有进一步的记述,则偏移按规定是四个字节的零。否则,偏移指定这个记述条目的开始与下一个记述条目之间的字节数。长度字段以字节的方式指定色拉的长度。
在大多数蛋白质中,每个记述都是串,以色拉串的方式被格式化:四字节长度/类型头部,其中最高有效位被设置并且只有较低的30位用于指定长度,继之以头部的指示数目的数据字节。通常,长度头部从蛋白质取其端。字节被假定编码UTF-8字符(并且这样一来——注意——字符数就不一定与字节数相同)。
摄取偏移指定了蛋白质的开始与第一个摄取条目之间的字节数。每个摄取条目包括到下一个摄取条目的偏移(以偏移格式),又继之以长度字段和色拉。摄取偏移在功能上等同于记述偏移,除了它指向下一个摄取条目而不是下一个记述条目之外。
在大多数蛋白质中,每个摄取具有色拉cons类型,其包括双值列表,一般用作关键/值对。色拉cons记录包括:四字节长度/类型头部,其中第二最高有效位被设置并且只有较低的30位用于指定长度;到值(第二)元素开始的四字节偏移;四字节长度的关键元素;用于关键元素的色拉记录;四字节长度的值元素;以及最后用于值元素的色拉记录。
一般而言,cons关键字是色拉串。跨越几个蛋白质和色拉cons长度和偏移字段的数据的重复提供了用于细化和优化的又一次机会。
如上所述,根据实施例使用的用于将定型的数据嵌入蛋白质内部的构造是被称为“色拉”的标记字节序列规范和抽象。色拉是表示(可能是聚集的)定型数据的字节的线性序列,并且与编程语言专用API相关联,其允许色拉在存储器空间、存储介质和机器之间创建、修改和四处移动。色拉类型方案旨在可扩展并且尽可能重量轻,并且成为可以从任何编程语言使用的通用基底。
建立有效的大规模的进程间通信机制的愿望是色拉配置的驱动器。传统的编程语言提供了在进程专用存储器布局中工作良好的复杂数据结构和类型设施,但是当数据需要在进程之间移动或存储在盘上时,这些数据表示总是损坏。色拉体系结构是用于进程间通信的第一基本上有效的多平台友好的低水平数据模型。
但更重要的是,色拉配置成连同蛋白质一起影响并启用未来计算硬件(微处理器、存储器控制器、盘控制器)的开发。对比如公共可用的微处理器的指令集合的几个专用添加使得色拉可以甚至对于单进程、存储器内数据布局变得与大多数编程语言中使用的方案一样有效。
每个色拉包括可变长度类型头部继之以类型专用数据布局。在例如支持C、C++和Ruby形式的全色拉功能的示例实施例中,通过可从每种语言访问的系统头部文件中定义的通用整数来指示类型。更加复杂和灵活的类型分辨功能也是可能的:例如经由通用对象ID和网络查找的间接定型。
实施例的色拉配置允许色拉记录用作例如来自Ruby和C++两者的语言友好方式的对象。C++编译器外部的一套实用程序完整性检查色拉字节布局,创建专用于单独色拉类型的宏和头部文件,并且自动生成用于Ruby的绑定。结果,良好配置的色拉类型即使当从单个进程之内使用时也十分有效。进程的可访问存储器中任何地方的任何色拉都可以被寻址而没有复制或“去串行化”步骤。
实施例的色拉功能包括用于执行以下中的一个或多个的API设施:创建特定类型的新色拉;创建或建立对来自盘上或存储器内字节的色拉的语言专用引用;以类型专用方式将数据嵌入色拉之内;查询色拉的尺寸;从色拉之内检索数据;克隆色拉;以及翻译色拉之内全部数据的端和其它格式属性。每个色拉都执行上述行为。
图6B示出了根据实施例的色拉头部格式。色拉的详细描述如下。
每个色拉的内部结构都优化类型分辨、对封装数据的访问以及用于该色拉实例的尺寸信息中的每一个。在实施例中,色拉类型的完全集合被设计得最小完全,并且包括:色拉串;色拉cons(亦即对);色拉列表;以及色拉数字对象,其自身表示被理解为半打排列或这种基本属性的单独数字类型的广泛集合。任何色拉的其它基本性质是其尺寸。在实施例中,色拉具有量化成四的倍数的字节长度;这些四字节字在此被称为“quad(四)”。一般而言,这样的基于四的尺寸定位使得色拉与现代计算机硬件体系结构的配置良好配准。
实施例中的每个色拉的前四个字节包括头部结构,其编码类型描述和其它元信息,并且将特定类型意义归因于具体位模式。例如,色拉头部的第一个(最高有效)位用于指定该色拉的尺寸(以四字的长度计)是否遵循初始四字节类型头部。当这个位被设置时,可以理解的是,色拉的尺寸明确地记录在色拉的下四个字节中(例如字节五至八);如果色拉的尺寸是这样的,以至于不能以四个字节来表示(亦即,如果尺寸是或大于二的三十二次幂),那么色拉的初始四个字节的下一个最高有效位也被设置,这表明色拉具有八字节(而不是四字节)长度。在这种情况下,检查过程会发现存储在顺序字节五至十二中的色拉长度。另一方面,小数目的色拉类型意味着在许多情况下完全指定的典型位模式“留下未使用”四字节色拉头部中的许多位;并且在这样的情况下这些位可以用于编码色拉的长度,节省否则会需要的字节(五至八)。
例如,实施例留下色拉头部的最高有效位(“长度跟随”旗标)未设置,并且设置下一位以指示色拉是“wee cons”,并且在这种情况下色拉的长度(以四计)被编码在剩余的三十位中。类似地,“wee string”用头部中的模式001来标记,其留下二十九位用于表示色拉串的长度;并且头部中的引导0001描述“wee list”,其依靠二十八个可用长度表示位可以是高达二的二十八次幂个quad大小的色拉列表。“full string”(或cons或list)具有不同的头部中的位签名,其中最高有效头部位必定被设置, 因为色拉长度分开编码在字节五至八(或十二,在极端情况下)中。注意,等离子体实施在色拉构造之时“决定”是使用这些构造的“wee”还是“full”版本(该决定基于作为结果的尺寸是否会“配合”可用的wee位),但是full对比于wee的细节相对于等离子体实施的用户是隐藏的,用户只知道和关心她正在使用色拉串或色拉cons或色拉列表。
数值色拉在实施例中用引导头部模式00001指示。随后的头部位用于表示可能以任意排列进行组合的一组正交性质。实施例使用但不限于五个这样的字符位以指示数字是否是:(1)浮点;(2)复数;(3)无符号;(4)“宽(wide)”;(5)“粗短(stumpy)”((4)“wide”和(5)“stumpy”进行排列以指示八、十六、三十二和六十四位数表示)。两个另外的位(例如(7)和(8))指示封装的数值数据是二、三或四元素矢量(其中两个位为零表明数值是“一元素矢量”(亦即标量)。在这个实施例中,第四个头部字节的八个位用于编码封装的数值数据的尺寸(以字节计而不是quad)。这个尺寸编码被偏移一,以便它可以表示包括一和二百五十六字节以及之间的任何尺寸。最后,两个字符位(例如(9)和(10)用于指示数值数据编码单独数值条目的阵列,其中的每一个具有由字符位(1)至(8)描述的类型。在阵列的情况下,单独数值条目不是每个用另外的头部标记,而是包装为连续的数据,其跟随单个头部以及可能的明确色拉尺寸信息。
这个实施例提供了简单而有效的色拉复制(其可以实施为字节对字节复制)以及极其直接和有效的色拉比较(在这个实施例中,当且仅当考虑序列的两个色拉的组成部分字节中的每一个一一匹配时,这两个色拉才相同)。这后一性质例如对于蛋白质体系结构的有效实施是重要的,蛋白质体系结构的关键性和普遍的特征之一是搜索或“匹配”蛋白质的记述列表。
进一步,此处的实施例允许简单且有效地构造聚集色拉形式(例如色拉cons和色拉列表)。例如,实施例通过以下从两部分色拉(其可以具有任何类型,包括它们自己聚集)建立色拉cons:(a)查询每个部分色拉的尺寸;(b)分配尺寸等于两个部分色拉的尺寸和头部加上尺寸结构所需的一个、两个或三个quad之和的存储器;(c)在前四个、八个或十二个字节中记录色拉头部(加上尺寸信息);以及然后(d)依次将部分色拉的字节复制到紧接着后续的存储器中。重要的是,这样的构造例程不需要知道关于两部分色拉的类型的任何东西;只有它们的尺寸(以及作为字节序列的可访问性)要紧。相同的过程适用于色拉列表的构造,所述色拉列表 是(可能地)异样类型的任意许多子色拉的排序封装。
作为存储器内顺序字节的色拉系统的基础格式的进一步后果结合“遍历”活动——例如循环使用模式使用获得对色拉列表中存储的单独色拉的顺序访问。表示蛋白质结构之内的记述和摄取的单独色拉必须类似地遍历。以令人晕倒的直接且有效的方式完成这样的调度:为了“到达”色拉列表中的下一个色拉,将当前色拉的长度添加到其存储器内的位置,并且作为结果的存储器位置等同地为下一个色拉的头部。这样的简化是可能的,因为色拉和蛋白质设计避免“间接”;不存在指针;相反地,数据简单地以其全体存在就位。
关于色拉比较这一点,等离子体系统的完全实施必须承认跨越不同操作系统、CPU和硬件体系结构以及它们当中的不同且不兼容的数据表示方案的存在。大多数这样的不同包括字节排序策略(例如小对比于大端)和浮点表示;其它不同也存在。等离子体规范要求色拉所封装的数据保证可解释(亦即必须以从中检查色拉的体系结构或平台的自然格式出现)。这个要求依次表明等离子体系统自身对数据格式转换负责。然而,规范仅规定,在色拉变得对可能检查它的执行进程“根本可见”之前发生转换。因此达到单独的实施,在该点它选择执行这样的格式c转换;两个适当的方法是,色拉数据有效载荷一致于本地体系结构的数据格式(1)当单独的色拉从它已被包装在其中的蛋白质中“拉出”时,或者(2)对于同时在蛋白质中的全部色拉,当该蛋白质从它处于其中的池中提取时。注意,转换规定考虑硬件辅助实施的可能性。例如,建立有明确等离子体能力的联网芯片组可以基于接收系统的已知特性智能地并且在“传输时”执行格式转换。交替地,传输的过程可以将数据有效载荷转换成规范格式,其中接收过程对称地从规范转换到“本地”格式。另一个实施例执行“在金属”的格式转换,意味着数据总是以规范格式存储,即使在本地存储器中也是,并且当数据从存储器中检索并放置在就近CPU的寄存器中时,存储器控制器硬件自身执行转换。
实施例的最小(和只读)蛋白质实施包括利用蛋白质的一个或多个应用程序或编程语言中的操作或行为。图6B是根据实施例的用于使用蛋白质的流程图650。操作开始于查询652蛋白质的以字节计的长度。记述条目的数目被查询654。摄取的数目被查询656。通过指数检索658记述条目。通过指数检索660摄取。
在此描述的实施例还定义了允许蛋白质被构造并填充以数据的基本 方法、使一般任务对程序员更容易的助手方法以及用于创建优化的钩子。图6C是根据实施例的用于构造或生成蛋白质的流程图670。操作开始于创建672新蛋白质。一系列的记述条目被附加674。摄取也被附加676。匹配记述的存在被查询678,并且匹配摄取关键字的存在被查询680。给定摄取关键字,摄取值被检索682。跨越记述执行684模式匹配。在蛋白质的开始附近嵌入686非结构化的元数据。
如上所述,色拉提供最低水平的用于进程间交换的数据定义,蛋白质提供中等水平的用于查询和过滤的结构和钩子,而池则提供高水平的组织和访问语义。池是用于蛋白质的仓库,提供线性序列和状态缓存。池还提供通过众多不同类型的多个程序或应用程序进行的多进程访问。此外,池提供一组共同的可优化的过滤和模式匹配行为。
可以容纳成千上万个蛋白质的实施例的池起作用以维持状态,以便单独的进程可以卸载对多进程程序代码共同的大多数冗长簿记。池维持或保持过去可用蛋白质的大缓冲器——柏拉图式理想的(Platonic)池明确地无限——以便参与的进程可以随意在池中向后和向前扫描。缓冲器的尺寸当然依赖于实施,但是在通常使用中常常可以将蛋白质保持在池中以小时或天计。
与现有的进程间通信框架所采取的机械式点对点方法形成对照,如在此所述的池使用的最通常的风格遵守生物学比喻。名称蛋白质暗指生物学灵感:池中的数据蛋白质可用于大量计算进程进行的灵活查询和模式匹配,就像活体组织中的化学蛋白质可用于大量细胞试剂进行的模式匹配和过滤。
两个另外的抽象依靠生物学比喻,包括使用“处理机(handler)”和高尔基(Golgi)框架。参与池的进程一般创建若干处理机。处理机是将匹配条件与处理行为相关联的相对小束的代码。通过将一个或多个处理机联系到池,进程设立灵活的回叫触发,其封装状态并对新的蛋白质起反应。
参与几个池的进程一般从抽象高尔基类继承。高尔基框架提供若干有用的例程,用于管理多个池和处理机。高尔基类还封装双亲-子女关系,提供不使用池的本地蛋白质交换的机制。
根据实施例提供的池API配置成允许池以多种方式实施,以便既考虑系统专用目标,又考虑给定硬件和网络体系结构的可用能力。池所依靠的两个基本系统规定是存储设施和进程间通信的装置。在此描述的现存系 统使用以下的灵活组合:共享存储器、虚拟存储器和用于存储设施的盘以及用于进程间通信的TCP/IP套接字和IPC队列。
实施例的池功能包括但不限于以下:参与池;将蛋白质放置在池中;从池中检索下一个未看到的蛋白质;反绕或快进池内的内容(例如蛋白质)。另外,池功能可以包括但不限于以下:设立用于进程的流池回叫;选择性地检索匹配记述或摄取关键字的特殊模式的蛋白质;向后并向前扫描匹配记述或摄取关键字的特殊模式的蛋白质。
上述蛋白质被提供给池,作为与其它应用程序共享蛋白质数据内容的方式。图7是根据实施例的包括使用色拉、蛋白质和池的数据交换的处理环境的框图。这个实例环境包括三个装置(例如装置X、装置Y和装置Z,在此集体被称为“装置”),它们通过使用如上所述的色拉、蛋白质和池来共享数据。装置中的每一个耦合到三个池(例如池1、池2、池3)。池1包括众多蛋白质(例如蛋白质X1、蛋白质Z2、蛋白质Y2、蛋白质X4、蛋白质Y4),它们从各个装置贡献或传送到池(例如,蛋白质Z2由装置Z传送或贡献到池1,等等)。池2包括众多蛋白质(例如蛋白质Z4、蛋白质Y3、蛋白质Z1、蛋白质X3),它们从各个装置贡献或传送到池(例如,蛋白质Y3由装置Y传送或贡献到池2,等等)。池3包括众多蛋白质(例如蛋白质Y1、蛋白质Z3、蛋白质X2),它们从各个装置贡献或传送到池(例如,蛋白质X2由装置X传送或贡献到池3,等等)。虽然上面描述的例子包括耦合或连接在三个池当中的三个装置,但是任何数目的装置可以以任何方式或组合来耦合或连接在任何数目的池当中,并且任何池可以包括从任何数目或组合的装置中贡献的任何数目的蛋白质。这个例子的蛋白质和池如上所述参考图1-6。
图8是根据实施例的处理环境的框图,该处理环境包括多个装置和在所述装置中的一个或多个上运行的众多程序,其中,等离子体构造(例如池、蛋白质和色拉)用于允许众多运行的程序共享并对装置所生成的事件集体做出反应。这个系统只是多用户、多装置、多计算机交互控制场景或配置的一个例子。更加具体地,在这个例子中,包括多个装置(例如装置A、B等等)和在装置上运行的若干程序(例如应用程序AA-AX、应用程序BA-BX等等)的交互系统使用等离子体构造(例如池、蛋白质和色拉)以允许运行的程序共享并对这些输入装置所生成的事件集体做出反应。
在这个例子中,每个装置(例如装置A、B等等)将由运行于各个装置上的程序(例如应用程序AA-AX、应用程序BA-BX等等)生成的或者 从其输出的离散原始数据翻译成等离子体蛋白质,并且将那些蛋白质存放到等离子体池中。例如,程序AX生成数据或输出并提供该输出给装置A,装置A依次将原始数据翻译成蛋白质(例如蛋白质1A、蛋白质2A等等)并将那些蛋白质存放到池中。作为另一个例子,程序BC生成数据并提供该数据给装置B,装置B依次将数据翻译成蛋白质(例如蛋白质1B、蛋白质2B等等)并将那些蛋白质存放到池中。
每个蛋白质包含记述列表,其指定通过应用程序登记的数据或输出以及用于程序自身的识别信息。在可能的情况下,蛋白质记述也可以给予输出事件或动作以一般语义意义。蛋白质的数据有效载荷(例如摄取)承载了用于程序事件的有用状态信息的全部集合。
如上所述,蛋白质在由耦合或连接到池的任何程序或装置使用的池中是可用的,而不管程序或装置的类型。因此,在任何数目的计算机上运行的任何数目的程序都可以从输入池中提取事件蛋白质。这些装置只需能够经由本地存储器总线或网络连接而参与池,以便从池中提取蛋白质。这个的直接后果是以下有益的可能性:将负责生成处理事件的进程与使用或解释事件的进程解耦。另一个后果是事件的源和消费者的多路化,以便装置可以由一个人控制或者可以由几个人同时使用(例如基于等离子体的输入框架支持许多并发用户),同时作为结果的事件流对多个事件消费者依次可见。
作为例子,装置C可以从池中提取一个或多个蛋白质(例如蛋白质1A、蛋白质2A等等)。在蛋白质提取之后,装置C在蛋白质数据所对应的处理事件中可以使用从蛋白质的记述和摄取的色拉中检索或读取的蛋白质的数据。作为另一个例子,装置B可以从池中提取一个或多个蛋白质(例如蛋白质1C、蛋白质2A等等)。在蛋白质提取之后,装置B在蛋白质数据所对应的处理事件中可以使用蛋白质的数据。
耦合或连接到池的装置和/或程序可以在池中向后和向前浏览以查找具体的蛋白质序列。通常有用的是,例如设立程序以等待匹配一定模式的蛋白质出现,然后向后浏览以确定这个蛋白质是否已连同一定的其它蛋白质一起出现。用于利用输入池中的存储的事件历史的这种设施通常使编写状态管理代码不必要,或者至少显著减少对这样的不希望有的编码模式的依靠。
图9是根据替换实施例的处理环境的框图,该处理环境包括多个装置和在所述装置中的一个或多个上运行的众多程序,其中,等离子体构造(例 如池、蛋白质和色拉)用于允许众多运行的程序共享并对装置所生成的事件集体做出反应。这个系统只是多用户、多装置、多计算机交互控制场景或配置的一个例子。更加具体地,在这个例子中,包括多个装置(例如分别耦合到装置A和B的装置X和Y)和在一个或多个计算机(例如装置A、装置B等等)上运行的若干程序(例如应用程序AA-AX、应用程序BA-BX等等)的交互系统使用等离子体构造(例如池、蛋白质和色拉)以允许运行的程序共享并对这些输入装置所生成的事件集体做出反应。
在这个例子中,每个装置(例如分别耦合到装置A和B的装置X和Y)被管理和/或耦合以在一个或多个程序之下或者与其相结合地运行,所述一个或多个程序驻留在各个装置上(例如装置A、装置B等等),各个装置将由装置(例如装置X、装置A、装置Y、装置B等等)硬件所生成的离散原始数据翻译成等离子体蛋白质,并且将那些蛋白质存放到等离子体池中。例如,与驻留在装置A上的应用程序AB相结合地运行的装置X生成原始数据,将离散的原始数据翻译成蛋白质(例如蛋白质1A、蛋白质2A等等)并将那些蛋白质存放到池中。作为另一个例子,与驻留在装置A上的应用程序AT相结合地运行的装置X生成原始数据,将离散的原始数据翻译成蛋白质(例如蛋白质1A、蛋白质2A等等)并将那些蛋白质存放到池中。作为还有另一个例子,与驻留在装置C上的应用程序CD相结合地运行的装置Z生成原始数据,将离散的原始数据翻译成蛋白质(例如蛋白质1C、蛋白质2C等等)并将那些蛋白质存放到池中。
每个蛋白质包含记述列表,其指定通过输入装置登记的动作以及用于装置自身的识别信息。在可能的情况下,蛋白质记述也可以给予装置动作以一般语义意义。蛋白质的数据有效载荷(例如摄取)承载了用于装置事件的有用状态信息的全部集合。
如上所述,蛋白质在由耦合或连接到池的任何程序或装置使用的池中是可用的,而不管程序或装置的类型。因此,在任何数目的计算机上运行的任何数目的程序都可以从输入池中提取事件蛋白质。这些装置只需能够经由本地存储器总线或网络连接而参与池,以便从池中提取蛋白质。这个的直接后果是以下有益的可能性:将负责生成处理事件的进程与使用或解释事件的进程解耦。另一个后果是事件的源和消费者的多路化,以便输入装置可以由一个人控制或者可以由几个人同时使用(例如基于等离子体的输入框架支持许多并发用户),同时作为结果的事件流对多个事件消费者依次可见。
耦合或连接到池的装置和/或程序可以在池中向后和向前浏览以查找具体的蛋白质序列。通常有用的是,例如设立程序以等待匹配一定模式的蛋白质出现,然后向后浏览以确定这个蛋白质是否已连同一定的其它蛋白质一起出现。用于利用输入池中的存储的事件历史的这种设施通常使编写状态管理代码不必要,或者至少显著减少对这样的不希望有的编码模式的依靠。
图10是根据另一个替换实施例的处理环境的框图,该处理环境包括多个输入装置,所述多个输入装置耦合在运行于装置中的一个或多个上的众多程序当中,其中,等离子体构造(例如池、蛋白质和色拉)用于允许众多运行的程序共享并对输入装置所生成的事件集体做出反应。这个系统只是多用户、多装置、多计算机交互控制场景或配置的一个例子。更加具体地,在这个例子中,包括多个输入装置(例如输入装置A、B、BA和BB等等)和在一个或多个计算机(例如装置A、装置B等等)上运行的若干程序(未示出)的交互系统使用等离子体构造(例如池、蛋白质和色拉)以允许运行的程序共享并对这些输入装置所生成的事件集体做出反应。
在这个例子中,每个输入装置(例如输入装置A、B、BA和BB等等)由驻留在各个装置上(例如装置A、装置B等等)的软件驱动器程序管理,所述各个装置将由输入装置硬件所生成的离散原始数据翻译成等离子体蛋白质,并且将那些蛋白质存放到等离子体池中。例如,输入装置A生成原始数据并提供该原始数据给装置A,装置A依次将离散的原始数据翻译成蛋白质(例如蛋白质1A、蛋白质2A等等)并将那些蛋白质存放到池中。作为另一个例子,输入装置BB生成原始数据并提供该原始数据给装置B,装置B依次将离散的原始数据翻译成蛋白质(例如蛋白质1B、蛋白质2B等等)并将那些蛋白质存放到池中。
每个蛋白质包含记述列表,其指定通过输入装置登记的动作以及用于装置自身的识别信息。在可能的情况下,蛋白质记述也可以给予装置动作以一般语义意义。蛋白质的数据有效载荷(例如摄取)承载了用于装置事件的有用状态信息的全部集合。
为了示意,这里是这样的系统中的用于两个典型事件的示例蛋白质。蛋白质在这里被表示为文本,然而在实际实施中,这些蛋白质的组成部分是定型的数据束(例如色拉)。描述一般而言“一根手指点击”姿势(在相关申请中有描述)的蛋白质如下:
[Descrips:{point,engage,one,one-finger-engage,hand,
pilot-id-02,hand-id-23}
Ingests:{pilot-id=>02,
hand-id=>23,
pos=>[0.0,0.0,0.0]
angle-axis=>[0.0,0.0,0.0,0.707]
gripe=>..^||:vx
time=>184437103.29}]
作为进一步的例子,描述鼠标点击的蛋白质如下:
[Descrips:{point,click,one,mouse-click,button-one,
mouse-id-02}
Ingests:{mouse-id=>23,
pos=>[0.0,0.0,0.0]
time=>184437124.80}]
前述样本蛋白质中的任一个或两者可能使主机装置的参与程序运行其代码的特殊部分。这些程序可能对一般的语义标签感兴趣:全部当中最一般的是“point”,或者更特定的对“engage,one”。或者它们可以寻找似乎仅会由精确装置生成的事件:“one-finger-engage”,乃至单个聚集对象“hand-id-23”。
如上所述,蛋白质在由耦合或连接到池的任何程序或装置使用的池中是可用的,而不管程序或装置的类型。因此,在任何数目的计算机上运行的任何数目的程序都可以从输入池中提取事件蛋白质。这些装置只需能够经由本地存储器总线或网络连接而参与池,以便从池中提取蛋白质。这个的直接后果是以下有益的可能性:将负责生成“输入事件”的进程与使用或解释事件的进程解耦。另一个后果是事件的源和消费者的多路化,以便输入装置可以由一个人控制或者可以由几个人同时使用(例如基于等离子体的输入框架支持许多并发用户),同时作为结果的事件流对多个事件消费者依次可见。
作为例子或蛋白质使用,装置C可以从池中提取一个或多个蛋白质(例如蛋白质1B等等)。在蛋白质提取之后,装置C在处理蛋白质数据 所对应的输入装置CA和CC的输入事件时可以使用从蛋白质的记述和摄取的色拉中检索或读取的蛋白质的数据。作为另一个例子,装置A可以从池中提取一个或多个蛋白质(例如蛋白质1B等等)。在蛋白质提取之后,装置A在处理蛋白质数据所对应的输入装置A的输入事件时可以使用蛋白质的数据。
耦合或连接到池的装置和/或程序可以在池中向后和向前浏览以查找具体的蛋白质序列。通常有用的是,例如设立程序以等待匹配一定模式的蛋白质出现,然后向后浏览以确定这个蛋白质是否已连同一定的其它蛋白质一起出现。用于利用输入池中的存储的事件历史的这种设施通常使编写状态管理代码不必要,或者至少显著减少对这样的不希望有的编码模式的依靠。
在此描述的系统实施例中使用的输入装置的例子包括如消费电子产品中使用的姿势输入传感器、键盘、鼠标、红外线遥控器以及面向任务的触媒对象,这只是举几个例子。
图11是根据又一个替换实施例的处理环境的框图,该处理环境包括多个装置,所述多个装置耦合在运行于装置中的一个或多个上的众多程序当中,其中,等离子体构造(例如池、蛋白质和色拉)用于允许众多运行的程序共享并对装置所生成的图形事件集体做出反应。这个系统只是包括多个运行程序(例如图形A-E)和一个或多个显示装置(未示出)的系统的一个例子,其中,使得程序中的一些或全部的图形输出以协调的方式可用于其它程序,使用等离子体构造(例如池、蛋白质和色拉)以允许运行的程序共享并对装置所生成的图形事件集体做出反应。
对于计算机程序而言通常有用的是显示由另一个程序生成的图形。几个通常的例子包括视频会议应用程序、基于网络的放映幻灯片和演示程序以及视窗管理器。在这种配置下,池用作等离子体库以实施一般化的框架,该框架封装视频、网络应用程序共享和视窗管理,并且允许程序员添加在这种程序的当前版本中通常不可用的若干特征。
在等离子体组成环境中运行的程序(例如图形A-E)通过耦合和/或连接到池而参与协调池。每个程序都可以将蛋白质存放在该池中,以指示不同种类的图形源的可用性。可用于显示图形的程序也存放蛋白质,以指示它们显示的能力、安全和用户简档以及物理和网络位置。
图形数据也可以通过池传输,或者显示程序可以指向其它种类的网络 资源(例如RTSP流)。如在此使用的短语“图形数据”指的是依赖宽阔连续区的多种不同表示;图形数据的例子包括但不限于文字例子(例如“图像”或像素块)、程序性例子(例如“绘图”指示的序列,诸如流下典型的openGL管线)以及描述性例子(例如借助于几何转换、裁剪和合成操作来组合其它图形构造的指令)。
在本地机器上,图形数据可以通过平台专用显示驱动器优化来递送。即使当图形没有经由池传输时,通常周期性的屏幕捕捉也会存储在协调池中,以便客户在不直接访问更深奥的源的情况下仍然可以显示后退图形。
这里描述的系统的一个优点在于,与大多数消息传递框架和网络协议不同,池维持数据的显著缓冲。所以程序可以向后回绕到池中以查看访问和使用模式(在协调池的情况下)或者提取以前的图形帧(在图形池的情况下)。
图12是根据再一个替换实施例的处理环境的框图,该处理环境包括多个装置,所述多个装置耦合在运行于装置中的一个或多个上的众多程序当中,其中,等离子体构造(例如池、蛋白质和色拉)用于允许对运行的程序进行状态检查、可视化和调试。这个系统只是包括多个装置(例如装置A、装置B等等)上的多个运行程序(例如程序P-A、程序P-B等等)的系统的一个例子,其中,一些程序使用或经由池访问其它程序的内部状态。
大多数交互计算机系统包括彼此并排运行的许多程序,它们或者在单个机器上或者在多个机器上,并且跨越网络进行交互。多程序系统可能难以配置、分析和调试,因为运行时间数据隐藏在每个进程内部并难以访问。在此描述的实施例的一般化框架和等离子体构造允许运行的程序使许多它们的数据经由池可用,以便其它程序可以检查它们的状态。这个框架启用比传统调试器更灵活的调试工具、复杂的系统维护工具以及可视化装备,所述可视化装备配置成允许人工操作员详细地分析一个或多个程序已经过的状态的序列。
参考图12,在这个框架中运行的程序(例如程序P-A、程序P-B等等)在程序启动时生成或创建进程池。这个池登记在系统年鉴中,并且施加安全与访问控制。更加具体地,每个装置(例如装置A、B等等)将由运行于各个装置上的程序(例如程序P-A、程序P-B等等)生成的或者从其输出的离散原始数据翻译成等离子体蛋白质,并且将那些蛋白质存放到等离子体池中。例如,程序P-A生成数据或输出并提供该输出给装置A, 装置A依次将原始数据翻译成蛋白质(例如蛋白质1A、蛋白质2A、蛋白质3A等等)并将那些蛋白质存放到池中。作为另一个例子,程序P-B生成数据并提供该数据给装置B,装置B依次将数据翻译成蛋白质(例如蛋白质1B-4B等等)并将那些蛋白质存放到池中。
在程序寿命的存续期间,具有充分访问许可的其它程序可以附接到池并读取程序存放的蛋白质;这表示基本检查模态,并且在概念上是“单路”或“只读”命题:在程序P-A中感兴趣的实体检查由其进程池中的P-A存放的状态信息流。例如,在装置C下运行的检查程序或应用程序可以从池中提取一个或多个蛋白质(例如蛋白质1A、蛋白质2A等等)。在蛋白质提取之后,装置C可以使用从蛋白质的记述和摄取的色拉中检索或读取的蛋白质的数据以访问、解释和检查程序P-A的内部状态。
但是,回顾等离子体系统不仅是有效的状态传输方案,而且是全方向消息收发环境,几个另外的模式支持程序对程序状态检查。授权的检查程序可以自己将蛋白质存放到程序P的进程池中,以影响或控制在该进程池中产生和放置的状态信息的特性(毕竟,程序P不仅向所述进程池中写入而且还从中读取)。
图13是根据另一个替换实施例的处理环境的框图,该处理环境包括多个装置,所述多个装置耦合在运行于装置中的一个或多个上的众多程序当中,其中,等离子体构造(例如池、蛋白质和色拉)用于允许影响或控制该进程池中产生和放置的状态信息的特性。在这个系统例子中,装置C的检查程序例如可以请求程序(例如程序P-A、程序P-B等等)或者在单个瞬时或者在具体的一段时间倾卸比正常更多的状态到池中。或者,预示调试通信的下一个“等级”,感兴趣的程序可以请求程序(例如程序P-A、程序P-B等等)发出列举其运行时间环境中现存的对象的蛋白质,它们单独地能够并且可用于经由调试池进行交互。由此可知,感兴趣的程序可以“寻址”程序运行时间中的对象当中的个体,将蛋白质放置在具体的对象单独会占用并做出反应的进程池中。感兴趣的程序例如可以请求对象发出报告蛋白质,描述其全部成分变量的瞬时值。甚至更重要的是,感兴趣的程序可以经由其它蛋白质指导对象改变其行为或其变量的值。
更加具体地,在这个例子中,装置C的检查应用程序将对于对象列表的请求(例如“请求对象列表”)(以蛋白质的形式)放置到池中,该请求然后由耦合到池的每个装置(例如装置A、装置B等等)提取。响应于该请求,每个装置(例如装置A、装置B等等)将列举其运行时间环 境中现存的对象的蛋白质(例如蛋白质1A、蛋白质1B等等)放置到池中,它们单独地能够并且可用于经由调试池进行交互。
由此可知经由来自装置的列举,并且响应于对象的列举,装置C的检查应用程序寻址程序运行时间中的对象当中的个体,将蛋白质放置在具体的对象单独会占用并做出反应的进程池中。装置C的检查应用程序例如可以将请求蛋白质(例如蛋白质“请求报告P-A-O”、“请求报告P-B-O”)放置在池中,对象(例如分别是对象P-A-O、对象P-B-O)发出报告蛋白质(例如蛋白质2A、蛋白质2B等等),描述其全部成分变量的瞬时值。每个对象(例如对象P-A-O、对象P-B-O)提取其请求(例如分别是“请求报告P-A-O”、“请求报告P-B-O”),并且做为响应,将蛋白质放置到包括所请求的报告(例如分别为蛋白质2A、蛋白质2B)的池中。装置C然后提取各种报告蛋白质(例如蛋白质2A、蛋白质2B等等),并且如对报告的内容适当的那样采取随后的处理动作。
用这种方式,使用等离子体作为互换介质最终趋于侵蚀调试、进程控制以及程序对程序通信与协调之间的区别。
最后,一般化的等离子体框架允许可视化和分析程序以松散耦合的方式设计。例如显示存储器访问模式的可视化工具可以结合输出其基本存储器读取和写入至池的任何程序一起使用。经历分析的程序不需要知道可视化工具的存在或设计,反之亦然。
以上述方式使用池并不过度影响系统性能。例如,实施例已允许在池中每秒存放几十万个蛋白质,以便使得即使相对冗长的数据输出也能够不显著地抑制大多数程序的响应性或交互特征。
上述系统和方法的例子包括一种方法,该方法包括:检测源装置的事件;生成至少一个数据序列,所述数据序列包括指定所述事件和所述事件的状态信息的装置事件数据,其中所述装置事件数据和状态信息是具有与所述源装置的应用程序相对应的类型的类型专用数据;以及形成数据容器以包括所述至少一个数据序列,所述数据容器具有包括所述至少一个数据序列的独立于应用程序的表示的数据结构。
实施例的生成所述至少一个数据序列包括:生成包括第一各自装置事件数据的第一各自数据集;生成包括第二各自状态信息的第二各自数据集;以及形成第一数据序列以包括所述第一各自数据集和所述第二各自数据集。
实施例的生成所述第一各自数据集包括形成所述第一各自数据集以包括所述源装置的识别数据,所述识别数据包括识别所述源装置的数据。
实施例的生成所述至少一个数据序列包括:生成包括第一各自装置事件数据的第一各自数据集;生成包括第二各自状态信息的第二各自数据集;以及形成第二数据序列以包括所述第一各自数据集和所述第二各自数据集。
实施例的生成所述第一各自数据集包括生成第一各自数据集偏移,其中所述第一各自数据集偏移指向所述第二数据序列的所述第一各自数据集。
实施例的生成所述第二各自数据集包括生成第二各自数据集偏移,其中所述第二各自数据集偏移指向所述第二数据序列的所述第二各自数据集。
实施例的所述第一各自数据集是描述表,所述描述表包括所述数据的描述。
实施例的所述装置事件数据是表示定型数据的标记字节序列。
实施例的所述装置事件数据包括类型头部和类型专用的数据布局。
实施例的所述状态信息是表示定型数据的标记字节序列。
实施例的所述状态信息包括类型头部和类型专用的数据布局。
实施例的所述方法包括:生成至少一个偏移;以及形成所述数据容器以包括所述至少一个偏移。
实施例的所述方法包括:生成具有第一可变长度的第一偏移;其中所述第一偏移指向所述至少一个数据序列中的第一数据序列的装置事件数据。
实施例的所述方法包括:生成具有第二可变长度的第二偏移;其中所述第二偏移指向所述至少一个数据序列中的第一数据序列的状态信息。
实施例的所述方法包括:使用所述至少一个偏移中的第一偏移通过所述数据容器形成第一代码路径;使用所述至少一个偏移中的第二偏移通过所述数据容器形成第二代码路径;其中所述第一代码路径和所述第二代码路径是不同的路径。
实施例的所述第一偏移和所述第二偏移中的至少一个包括元数据,所 述元数据包括与所述应用程序的上下文相对应的上下文专用元数据。
实施例的所述方法包括:生成包括所述数据容器长度的头部;以及形成所述数据容器以包括所述头部。
实施例的所述方法包括将所述数据容器传送到储存库。
实施例的所述方法包括:检测第二源装置的第二事件;针对与所述第二事件相对应的数据容器而搜索所述储存库。
实施例的所述方法包括:识别所述数据容器和所述第二事件之间的对应性;响应于所述识别而从所述储存库中提取所述数据容器;以及响应于所述数据容器的内容,代表所述第二源装置执行与代表所述第二源装置的所述第二事件相对应的处理操作,其中所述源装置对应于第一类型的应用程序并且所述第二源装置对应于第二类型的第二应用程序。
实施例的所述储存库耦合到多个应用程序,所述储存库包括与所述多个应用程序相对应的多个数据容器,所述储存库提供由所述多个应用程序对所述多个事件容器的访问,其中所述多个应用程序中的至少两个应用程序是不同的应用程序。
实施例的所述储存库提供多个数据容器的状态缓存。
实施例的所述储存库提供多个数据容器的线性排序。
实施例的所述数据结构是未定型的。
实施例的所述数据容器的数据结构提供所述状态信息和所述装置事件数据的独立于平台的表示。
实施例的所述数据容器的数据结构提供对所述装置事件数据和所述状态信息的独立于平台的访问。
实施例的所述方法包括:将所述数据容器从具有第一应用程序类型的第一应用程序传送到具有至少一个第二应用程序类型的至少一个第二应用程序,其中所述第一应用程序类型不同于所述第二应用程序类型,其中生成所述至少一个数据序列由所述第一应用程序执行;以及在所述传送期间维持所述数据容器的所述至少一个数据序列原封不动。
实施例的所述方法包括在所述第二应用程序的操作期间使用所述至少一个数据序列。
实施例的所述事件包括用户接口事件。
实施例的所述事件包括图形事件。
实施例的所述事件包括存放状态信息。
上述系统和方法的例子包括一种方法,该方法包括:生成包括源装置的装置事件数据和识别数据的第一数据集,所述装置事件数据包括指定由所述源装置登记的事件的数据,所述识别数据包括识别所述源装置的数据;生成包括所述事件的状态信息的全部集合的第二数据集;其中所述第一数据集和所述第二数据集中的每一个包括呈类型专用数据布局的定型数据束;以及通过形成数据容器以包括所述第一数据集和所述第二数据集来封装所述第一数据集和所述第二数据集,其中所述数据容器具有包括所述至少一个数据序列的独立于应用程序的表示的数据结构。
上述系统和方法的例子包括一种方法,该方法包括:检测在第一类型的应用程序下运行的装置的事件;生成数据序列,所述数据序列包括指定所述事件和所述事件的状态信息的装置事件数据,其中所述装置事件数据和状态信息是具有与所述应用程序相对应的类型的类型专用数据;形成数据容器以包括所述数据序列,所述数据容器具有包括所述数据序列的独立于应用程序的表示的数据结构;检测在具有至少一个第二类型的至少一个第二应用程序下运行的至少一个第二源装置的第二事件,其中所述第二类型不同于所述第一类型;识别所述数据容器和所述第二事件之间的对应性;以及使用所述数据容器的数据序列的内容,响应于所述第二事件来执行操作。
实施例的生成所述数据序列包括:生成包括所述装置事件数据的第一数据集;生成包括所述状态信息的第二数据集;以及形成第一数据序列以包括所述第一数据集和所述第二数据集。
实施例的所述装置事件数据是表示定型数据的标记字节序列。
实施例的所述装置事件数据包括类型头部和类型专用的数据布局。
实施例的所述状态信息是表示定型数据的标记字节序列。
实施例的所述状态信息包括类型头部和类型专用的数据布局。
实施例的所述方法包括:生成至少一个偏移;以及形成所述数据容器以包括所述至少一个偏移。
实施例的所述方法包括:生成具有第一可变长度的第一偏移,其中所述第一偏移指向所述至少一个数据序列中的第一数据序列的装置事件数 据;以及生成具有第二可变长度的第二偏移,其中所述第二偏移指向所述至少一个数据序列中的第一数据序列的状态信息。
实施例的所述方法包括:使用所述至少一个偏移中的第一偏移通过所述数据容器形成第一代码路径;使用所述至少一个偏移中的第二偏移通过所述数据容器形成第二代码路径;其中所述第一代码路径和所述第二代码路径是不同的路径。
实施例的所述第一偏移和所述第二偏移中的至少一个包括元数据,所述元数据包括与所述应用程序的上下文相对应的上下文专用元数据。
实施例的所述方法包括将所述数据容器传送到储存库。
实施例的所述方法包括:针对与所述第二事件相对应的数据容器而搜索所述储存库;以及响应于识别所述对应性而从所述储存库中提取所述数据容器。
实施例的所述储存库耦合到所述应用程序和所述至少一个第二应用程序,所述储存库包括与所述应用程序和所述至少一个第二应用程序相对应的多个数据容器,所述储存库提供由所述应用程序和所述至少一个第二应用程序对所述多个事件容器的访问。
实施例的所述储存库提供多个数据容器的状态缓存。
实施例的所述储存库提供多个数据容器的线性排序。
实施例的所述数据结构是未定型的。
实施例的所述数据容器的数据结构提供所述状态信息和所述装置事件数据的独立于平台的表示。
实施例的所述数据容器的数据结构提供对所述装置事件数据和所述状态信息的独立于平台的访问。
上述系统和方法的例子包括一种方法,该方法包括:检测在第一类型的应用程序下运行的第一源装置的事件;生成数据序列,所述数据序列包括指定所述事件和所述事件的状态信息的装置事件数据,其中所述装置事件数据和状态信息是具有与所述应用程序相对应的类型的类型专用数据;形成数据容器以包括所述数据序列,其中所述数据容器具有包括所述数据序列的独立于应用程序的表示的数据结构;将所述数据容器放置在储存库中;检测在具有至少一个第二类型的至少一个第二应用程序下运行的至少一个第二源装置的第二事件;搜索所述储存库并识别所述数据容器和所述 第二事件之间的对应性;以及使用所述数据容器的数据序列的内容,代表所述第二源装置执行与所述第二事件相对应的操作。
在此描述的系统和方法(包括用于通过使用色拉、蛋白质和池来封装数据并传送和使用所封装的数据的系统和方法)包括处理系统和/或在处理系统下运行和/或与处理系统相关联。如本领域中所知的那样,处理系统包括一起操作的基于处理器的装置或计算装置或者处理系统或装置的组成部分的任何集合。例如,处理系统可以包括便携式计算机、在通信网络中操作的便携式通信装置和/或网络服务器中的一个或多个。便携式计算机可以是从个人计算机、蜂窝电话、个人数字助理、便携式计算装置和便携式通信装置当中选择的装置的任何数目和/或组合,但不限于此。处理系统可以包括较大计算机系统之内的组成部分。
实施例的处理系统包括至少一个处理器和至少一个存储装置或子系统。处理系统还可以包括或耦合到至少一个数据库。通常在此使用的术语“处理器”指的是任何逻辑处理单元,诸如一个或多个中央处理单元(CPU)、数字信号处理器(DSP)、应用程序专用集成电路(ASIC)等等。处理器和存储器可以整体集成到单个芯片上,分布在主机系统的若干芯片或组成部分当中,和/或由算法的某种组合来提供。在此描述的方法可以在(一个或多个)软件算法、程序、固件、硬件、部件、电路中的一个或多个中以任何组合实现。
实施在此描述的系统和方法的系统部件可以位于一起或者位于分开的位置中。因此,实施在此描述的系统和方法的系统部件可以是单个系统、多个系统和/或地理上分开的系统的部件。这些部件也可以是单个系统、多个系统和/或地理上分开的系统的子部件或子系统。这些部件可以耦合到主机系统的或与该主机系统相耦合的系统的一个或多个其它部件。
通信路径耦合系统部件并包括用于在部件当中传达或传送文件的任何介质。通信路径包括无线连接、有线连接和混合无线/有线连接。通信路径还包括至网络的耦合或连接,所述网络包括局域网(LAN)、城域网(MAN)、广域网(WAN)、专有网络、局间或尾端网络以及因特网。进而,通信路径包括可移动固定介质像软盘、硬盘驱动器、CD-ROM盘以及快闪RAM、通用串行总线(USB)连接、RS-232连接、电话线、总线以及电子邮件消息。
除非上下文明确要求,否则贯穿说明书,单词“包括”等在与排除或穷举的意义相反的包括的意义上阐释;换言之,在“包括但不限于”的意 义上阐释。使用单数或复数的单词也分别包括复数或单数。另外,单词“在此”、“在下面”、“在上面”、“以下”以及类似含义的单词指的是作为整体的本申请而不是本申请的任何特殊部分。当在引用两个或更多条目的列表中使用单词“或者”时,该单词覆盖了所有的以下单词解释:列表中的任何条目、列表中的所有条目以及列表中条目的任何组合。
编程环境的实施例的上述描述并不旨在穷举或将描述的系统和方法限制到公开的精确形式。如本领域技术人员将会认识到的那样,虽然为了示意的目的在此描述了编程环境的特定实施例和例子,各种等效修改在其它系统和方法的范围之内都是可能的。在此提供的编程环境的教导可以适用于其它处理系统和方法,而不仅仅是用于上面描述的系统和方法。
上述各种实施例的要素和行为可以进行组合以提供进一步的实施例。考虑到上述详细描述,可以对编程环境进行这些以及其它改变。
Claims (51)
1.一种用于通过数据在多个计算进程之间的灵活共享而使得程序的多进程交互操作和交叉网络执行成为可能的方法,包括:
检测所述多个计算进程中的源装置的事件;
生成至少一个数据序列,所述数据序列包括指定所述事件和所述事件的状态信息的装置事件数据,其中所述装置事件数据和状态信息是具有与所述源装置的应用程序相对应的类型的类型专用数据;以及
形成数据容器以包括所述至少一个数据序列,所述数据容器具有包括所述至少一个数据序列的独立于应用程序的表示的数据结构,其中,所述数据容器使得数据在所述多个计算进程中的其它进程之间的共享成为可能。
2.如权利要求1所述的方法,其中,生成所述至少一个数据序列包括:
生成包括第一各自装置事件数据的第一各自数据集;
生成包括第二各自状态信息的第二各自数据集;以及
形成第一数据序列以包括所述第一各自数据集和所述第二各自数据集。
3.如权利要求2所述的方法,其中,生成所述第一各自数据集包括形成所述第一各自数据集以包括所述源装置的识别数据,所述识别数据包括识别所述源装置的数据。
4.如权利要求2所述的方法,其中,生成所述至少一个数据序列包括:
形成第二数据序列以包括所述第一各自数据集和所述第二各自数据集。
5.如权利要求4所述的方法,其中,生成所述第一各自数据集包括生成第一各自数据集偏移,其中所述第一各自数据集偏移指向所述第二数据序列的所述第一各自数据集。
6.如权利要求4所述的方法,其中,生成所述第二各自数据集包括生成第二各自数据集偏移,其中所述第二各自数据集偏移指向所述第二数据序列的所述第二各自数据集。
7.如权利要求2所述的方法,其中,所述第一各自数据集是描述表,所述描述表包括所述数据的描述。
8.如权利要求1所述的方法,其中,所述装置事件数据是表示定型数据的标记字节序列。
9.如权利要求8所述的方法,其中,所述装置事件数据包括类型头部和类型专用的数据布局。
10.如权利要求1所述的方法,其中,所述状态信息是表示定型数据的标记字节序列。
11.如权利要求10所述的方法,其中,所述状态信息包括类型头部和类型专用的数据布局。
12.如权利要求1所述的方法,包括:
生成至少一个偏移;以及
形成所述数据容器以包括所述至少一个偏移。
13.如权利要求12所述的方法,包括:
生成具有第一可变长度的第一偏移;
其中所述第一偏移指向所述至少一个数据序列中的第一数据序列的装置事件数据。
14.如权利要求13所述的方法,包括:
生成具有第二可变长度的第二偏移;
其中所述第二偏移指向所述至少一个数据序列中的第一数据序列的状态信息。
15.如权利要求12所述的方法,包括:
使用所述至少一个偏移中的第一偏移通过所述数据容器形成第一代码路径;
使用所述至少一个偏移中的第二偏移通过所述数据容器形成第二代码路径;
其中所述第一代码路径和所述第二代码路径是不同的路径。
16.如权利要求14所述的方法,其中,所述第一偏移和所述第二偏移中的至少一个包括元数据,所述元数据包括与所述应用程序的上下文相对应的上下文专用元数据。
17.如权利要求1所述的方法,包括:
生成包括所述数据容器长度的头部;以及
形成所述数据容器以包括所述头部。
18.如权利要求1所述的方法,包括将所述数据容器传送到储存库。
19.如权利要求18所述的方法,包括:
检测第二源装置的第二事件;以及
针对与所述第二事件相对应的数据容器而搜索所述储存库。
20.如权利要求19所述的方法,包括:
识别所述数据容器和所述第二事件之间的对应性;
响应于所述识别而从所述储存库中提取所述数据容器;以及
响应于所述数据容器的内容,代表所述第二源装置执行与代表所述第二源装置的所述第二事件相对应的处理操作,其中所述源装置对应于第一类型的应用程序并且所述第二源装置对应于第二类型的第二应用程序。
21.如权利要求18所述的方法,其中,所述储存库耦合到多个应用程序,所述储存库包括与所述多个应用程序相对应的多个数据容器,所述储存库提供由所述多个应用程序对所述多个事件容器的访问,其中所述多个应用程序中的至少两个应用程序是不同的应用程序。
22.如权利要求18所述的方法,其中,所述储存库提供多个数据容器的状态缓存。
23.如权利要求18所述的方法,其中,所述储存库提供多个数据容器的线性排序。
24.如权利要求1所述的方法,其中,所述数据结构是未定型的。
25.如权利要求1所述的方法,其中,所述数据容器的数据结构提供所述状态信息和所述装置事件数据的独立于平台的表示。
26.如权利要求1所述的方法,其中,所述数据容器的数据结构提供对所述装置事件数据和所述状态信息的独立于平台的访问。
27.如权利要求1所述的方法,包括:
将所述数据容器从具有第一应用程序类型的第一应用程序传送到具有至少一个第二应用程序类型的至少一个第二应用程序,其中所述第一应用程序类型不同于所述第二应用程序类型,其中生成所述至少一个数据序列由所述第一应用程序执行;以及
在所述传送期间维持所述数据容器的所述至少一个数据序列原封不动。
28.如权利要求27所述的方法,包括在所述第二应用程序的操作期间使用所述至少一个数据序列。
29.如权利要求1所述的方法,其中,所述事件包括用户接口事件。
30.如权利要求1所述的方法,其中,所述事件包括图形事件。
31.如权利要求1所述的方法,其中,所述事件包括存放状态信息。
32.一种用于通过数据在多个计算进程之间的灵活共享而使得程序的多进程交互操作和交叉网络执行成为可能的封装数据的方法,包括:
生成包括所述多个计算进程中的源装置的装置事件数据和识别数据的第一数据集,所述装置事件数据包括指定由所述源装置登记的事件的数据,所述识别数据包括识别所述源装置的数据;
生成包括所述事件的状态信息的全部集合的第二数据集;
其中所述第一数据集和所述第二数据集中的每一个包括呈类型专用数据布局的定型数据束;以及
通过形成数据容器以包括所述第一数据集和所述第二数据集来封装所述第一数据集和所述第二数据集,其中所述数据容器具有包括至少一个数据序列的独立于应用程序的表示的数据结构,其中,所述数据容器使得数据在所述多个计算进程中的其它进程之间的共享成为可能。
33.一种用于通过数据在多个计算应用程序之间的灵活共享而使得程序的多进程交互操作和交叉网络执行成为可能的方法,包括:
检测在所述多个计算应用程序中的第一类型的应用程序下运行的装置的事件;
生成数据序列,所述数据序列包括指定所述事件和所述事件的状态信息的装置事件数据,其中所述装置事件数据和状态信息是具有与所述应用程序相对应的类型的类型专用数据;
形成数据容器以包括所述数据序列,所述数据容器具有包括所述数据序列的独立于应用程序的表示的数据结构,其中,所述数据容器使得数据在所述多个计算应用程序中的其它应用程序之间的共享成为可能;
检测在所述多个计算应用程序中的具有至少一个第二类型的至少一个第二应用程序下运行的至少一个第二源装置的第二事件,其中所述第二类型不同于所述第一类型;
识别所述数据容器和所述第二事件之间的对应性;以及
使用所述数据容器的数据序列的内容,响应于所述第二事件来执行操作。
34.如权利要求33所述的方法,其中,生成所述数据序列包括:
生成包括所述装置事件数据的第一数据集;
生成包括所述状态信息的第二数据集;以及
形成第一数据序列以包括所述第一数据集和所述第二数据集。
35.如权利要求33所述的方法,其中,所述装置事件数据是表示定型数据的标记字节序列。
36.如权利要求35所述的方法,其中,所述装置事件数据包括类型头部和类型专用的数据布局。
37.如权利要求33所述的方法,其中,所述状态信息是表示定型数据的标记字节序列。
38.如权利要求37所述的方法,其中,所述状态信息包括类型头部和类型专用的数据布局。
39.如权利要求33所述的方法,包括:
生成至少一个偏移;以及
形成所述数据容器以包括所述至少一个偏移。
40.如权利要求39所述的方法,包括:
生成具有第一可变长度的第一偏移,其中所述第一偏移指向所述至少一个数据序列中的第一数据序列的装置事件数据;以及
生成具有第二可变长度的第二偏移,其中所述第二偏移指向所述至少一个数据序列中的第一数据序列的状态信息。
41.如权利要求39所述的方法,包括:
使用所述至少一个偏移中的第一偏移通过所述数据容器形成第一代码路径;
使用所述至少一个偏移中的第二偏移通过所述数据容器形成第二代码路径;
其中所述第一代码路径和所述第二代码路径是不同的路径。
42.如权利要求40所述的方法,其中,所述第一偏移和所述第二偏移中的至少一个包括元数据,所述元数据包括与所述应用程序的上下文相对应的上下文专用元数据。
43.如权利要求33所述的方法,包括将所述数据容器传送到储存库。
44.如权利要求43所述的方法,包括:
针对与所述第二事件相对应的数据容器而搜索所述储存库;以及
响应于识别所述对应性而从所述储存库中提取所述数据容器。
45.如权利要求43所述的方法,其中,所述储存库耦合到所述应用程序和所述至少一个第二应用程序,所述储存库包括与所述应用程序和所述至少一个第二应用程序相对应的多个数据容器,所述储存库提供由所述应用程序和所述至少一个第二应用程序对所述多个事件容器的访问。
46.如权利要求43所述的方法,其中,所述储存库提供多个数据容器的状态缓存。
47.如权利要求43所述的方法,其中,所述储存库提供多个数据容器的线性排序。
48.如权利要求33所述的方法,其中,所述数据结构是未定型的。
49.如权利要求33所述的方法,其中,所述数据容器的数据结构提供所述状态信息和所述装置事件数据的独立于平台的表示。
50.如权利要求33所述的方法,其中,所述数据容器的数据结构提供对所述装置事件数据和所述状态信息的独立于平台的访问。
51.一种用于通过数据在多个计算应用程序之间的灵活共享而使得程序的多进程交互操作和交叉网络执行成为可能的方法,包括:
检测在所述多个计算应用程序中的第一类型的应用程序下运行的第一源装置的事件;
生成数据序列,所述数据序列包括指定所述事件和所述事件的状态信息的装置事件数据,其中所述装置事件数据和状态信息是具有与所述应用程序相对应的类型的类型专用数据;
形成数据容器以包括所述数据序列,其中所述数据容器具有包括所述数据序列的独立于应用程序的表示的数据结构,其中,所述数据容器使得数据在所述多个计算应用程序中的其它应用程序之间的共享成为可能;
将所述数据容器放置在储存库中;
检测在所述多个计算应用程序中的具有至少一个第二类型的至少一个第二应用程序下运行的至少一个第二源装置的第二事件;
搜索所述储存库并识别所述数据容器和所述第二事件之间的对应性;以及
使用所述数据容器的数据序列的内容,代表所述第二源装置执行与所述第二事件相对应的操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US92611607P | 2007-04-24 | 2007-04-24 | |
US60/926,116 | 2007-04-24 | ||
PCT/US2008/061457 WO2008134452A2 (en) | 2007-04-24 | 2008-04-24 | Proteins, pools, and slawx in processing environments |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101689152A CN101689152A (zh) | 2010-03-31 |
CN101689152B true CN101689152B (zh) | 2016-10-05 |
Family
ID=39888612
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200880017354.XA Expired - Fee Related CN101689152B (zh) | 2007-04-24 | 2008-04-24 | 多进程间数据共享以及交互操作和交叉网络执行方法 |
Country Status (7)
Country | Link |
---|---|
US (4) | US8407725B2 (zh) |
EP (2) | EP2163987A3 (zh) |
JP (2) | JP5905662B2 (zh) |
KR (1) | KR101545360B1 (zh) |
CN (1) | CN101689152B (zh) |
NO (1) | NO20093236L (zh) |
WO (1) | WO2008134452A2 (zh) |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1851750A4 (en) | 2005-02-08 | 2010-08-25 | Oblong Ind Inc | SYSTEM AND METHOD FOR CONTROL SYSTEM BASED ON GESTURES |
US9075441B2 (en) | 2006-02-08 | 2015-07-07 | Oblong Industries, Inc. | Gesture based control using three-dimensional information extracted over an extended depth of field |
US8370383B2 (en) | 2006-02-08 | 2013-02-05 | Oblong Industries, Inc. | Multi-process interactive systems and methods |
US8531396B2 (en) | 2006-02-08 | 2013-09-10 | Oblong Industries, Inc. | Control system for navigating a principal dimension of a data space |
US8537111B2 (en) | 2006-02-08 | 2013-09-17 | Oblong Industries, Inc. | Control system for navigating a principal dimension of a data space |
US9823747B2 (en) | 2006-02-08 | 2017-11-21 | Oblong Industries, Inc. | Spatial, multi-modal control device for use with spatial operating system |
US9910497B2 (en) | 2006-02-08 | 2018-03-06 | Oblong Industries, Inc. | Gestural control of autonomous and semi-autonomous systems |
US8941588B2 (en) * | 2008-04-24 | 2015-01-27 | Oblong Industries, Inc. | Fast fingertip detection for initializing a vision-based hand tracker |
JP5905662B2 (ja) | 2007-04-24 | 2016-04-20 | オブロング・インダストリーズ・インコーポレーテッド | プロテイン、プール、およびスロークス処理環境 |
US8723795B2 (en) | 2008-04-24 | 2014-05-13 | Oblong Industries, Inc. | Detecting, representing, and interpreting three-space input: gestural continuum subsuming freespace, proximal, and surface-contact modes |
US9740293B2 (en) | 2009-04-02 | 2017-08-22 | Oblong Industries, Inc. | Operating environment with gestural control and multiple client devices, displays, and users |
US9684380B2 (en) | 2009-04-02 | 2017-06-20 | Oblong Industries, Inc. | Operating environment with gestural control and multiple client devices, displays, and users |
US9495013B2 (en) | 2008-04-24 | 2016-11-15 | Oblong Industries, Inc. | Multi-modal gestural interface |
US9952673B2 (en) | 2009-04-02 | 2018-04-24 | Oblong Industries, Inc. | Operating environment comprising multiple client devices, multiple displays, multiple users, and gestural control |
US9740922B2 (en) | 2008-04-24 | 2017-08-22 | Oblong Industries, Inc. | Adaptive tracking system for spatial input devices |
US10642364B2 (en) | 2009-04-02 | 2020-05-05 | Oblong Industries, Inc. | Processing tracking and recognition data in gestural recognition systems |
WO2010045394A1 (en) * | 2008-10-14 | 2010-04-22 | Oblong Industries, Inc. | Multi-process interactive systems and methods |
US10824238B2 (en) | 2009-04-02 | 2020-11-03 | Oblong Industries, Inc. | Operating environment with gestural control and multiple client devices, displays, and users |
US9317128B2 (en) | 2009-04-02 | 2016-04-19 | Oblong Industries, Inc. | Remote devices used in a markerless installation of a spatial operating environment incorporating gestural control |
US9933852B2 (en) | 2009-10-14 | 2018-04-03 | Oblong Industries, Inc. | Multi-process interactive systems and methods |
US9971807B2 (en) | 2009-10-14 | 2018-05-15 | Oblong Industries, Inc. | Multi-process interactive systems and methods |
EP2612271A4 (en) | 2010-08-31 | 2017-07-19 | Annai Systems Inc. | Method and systems for processing polymeric sequence data and related information |
US8982879B2 (en) | 2011-03-09 | 2015-03-17 | Annai Systems Inc. | Biological data networks and methods therefor |
DE102011017305A1 (de) * | 2011-04-15 | 2012-10-18 | Abb Technology Ag | Bedien- und Beobachtungssystem für technische Anlagen |
US9491236B2 (en) | 2012-06-22 | 2016-11-08 | Annai Systems Inc. | System and method for secure, high-speed transfer of very large files |
CN112607540A (zh) | 2013-02-07 | 2021-04-06 | 通力股份公司 | 电梯服务的个性化 |
US9990046B2 (en) | 2014-03-17 | 2018-06-05 | Oblong Industries, Inc. | Visual collaboration interface |
US8886622B1 (en) | 2014-06-03 | 2014-11-11 | Conduce Inc. | Interactive visualization of multiple data sources across multiple computers |
US10529302B2 (en) | 2016-07-07 | 2020-01-07 | Oblong Industries, Inc. | Spatially mediated augmentations of and interactions among distinct devices and applications via extended pixel manifold |
CN109254858B (zh) * | 2018-08-31 | 2021-07-23 | 武汉斗鱼网络科技有限公司 | 活动窗口的数据共享方法、装置、设备及存储介质 |
CN111310658B (zh) * | 2020-02-14 | 2023-06-27 | 京东科技信息技术有限公司 | 一种动作模式识别模型的更新方法和装置 |
Family Cites Families (137)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US1843568A (en) * | 1923-03-15 | 1932-02-02 | James C Ledbetter | Electric steam iron |
US7164117B2 (en) | 1992-05-05 | 2007-01-16 | Automotive Technologies International, Inc. | Vehicular restraint system control system and method using multiple optical imagers |
US4843568A (en) | 1986-04-11 | 1989-06-27 | Krueger Myron W | Real time perception of and response to the actions of an unencumbered participant/user |
US5664177A (en) * | 1988-04-13 | 1997-09-02 | Digital Equipment Corporation | Data processing system having a data structure with a single, simple primitive |
JPH0816877B2 (ja) | 1991-06-10 | 1996-02-21 | インターナショナル・ビジネス・マシーンズ・コーポレイション | データ処理システム用資源データの実時間捕獲及び減縮方法及びシステム |
JP3244798B2 (ja) | 1992-09-08 | 2002-01-07 | 株式会社東芝 | 動画像処理装置 |
US5982352A (en) | 1992-09-18 | 1999-11-09 | Pryor; Timothy R. | Method for providing human input to a computer |
DE69315969T2 (de) | 1992-12-15 | 1998-07-30 | Sun Microsystems Inc | Darstellung von Informationen in einem Anzeigesystem mit transparenten Fenstern |
US5454043A (en) | 1993-07-30 | 1995-09-26 | Mitsubishi Electric Research Laboratories, Inc. | Dynamic and static hand gesture recognition through low-level image analysis |
US7218448B1 (en) | 1997-03-17 | 2007-05-15 | The Regents Of The University Of Colorado | Extended depth of field optical systems |
US5594469A (en) | 1995-02-21 | 1997-01-14 | Mitsubishi Electric Information Technology Center America Inc. | Hand gesture machine control system |
EP0823683B1 (en) | 1995-04-28 | 2005-07-06 | Matsushita Electric Industrial Co., Ltd. | Interface device |
US6002808A (en) | 1996-07-26 | 1999-12-14 | Mitsubishi Electric Information Technology Center America, Inc. | Hand gesture control system |
JP3749369B2 (ja) | 1997-03-21 | 2006-02-22 | 株式会社竹中工務店 | ハンドポインティング装置 |
US6075895A (en) | 1997-06-20 | 2000-06-13 | Holoplex | Methods and apparatus for gesture recognition based on templates |
US6720949B1 (en) | 1997-08-22 | 2004-04-13 | Timothy R. Pryor | Man machine interfaces and applications |
US6340957B1 (en) | 1997-08-29 | 2002-01-22 | Xerox Corporation | Dynamically relocatable tileable displays |
US6807583B2 (en) * | 1997-09-24 | 2004-10-19 | Carleton University | Method of determining causal connections between events recorded during process execution |
EP0905644A3 (en) | 1997-09-26 | 2004-02-25 | Matsushita Electric Industrial Co., Ltd. | Hand gesture recognizing device |
US6072494A (en) | 1997-10-15 | 2000-06-06 | Electric Planet, Inc. | Method and apparatus for real-time gesture recognition |
WO1999035633A2 (en) | 1998-01-06 | 1999-07-15 | The Video Mouse Group | Human motion following computer mouse and game controller |
US9292111B2 (en) * | 1998-01-26 | 2016-03-22 | Apple Inc. | Gesturing with a multipoint sensing device |
JP3660492B2 (ja) | 1998-01-27 | 2005-06-15 | 株式会社東芝 | 物体検知装置 |
US6043805A (en) | 1998-03-24 | 2000-03-28 | Hsieh; Kuan-Hong | Controlling method for inputting messages to a computer |
JPH11316693A (ja) * | 1998-05-01 | 1999-11-16 | Nec Software Chugoku Ltd | プログラム間データ連携システム及び方法 |
US6198485B1 (en) | 1998-07-29 | 2001-03-06 | Intel Corporation | Method and apparatus for three-dimensional input entry |
US6950534B2 (en) | 1998-08-10 | 2005-09-27 | Cybernet Systems Corporation | Gesture-controlled interfaces for self-service machines and other applications |
US6501515B1 (en) | 1998-10-13 | 2002-12-31 | Sony Corporation | Remote control system |
JP2000132305A (ja) | 1998-10-23 | 2000-05-12 | Olympus Optical Co Ltd | 操作入力装置 |
US6222465B1 (en) | 1998-12-09 | 2001-04-24 | Lucent Technologies Inc. | Gesture-based computer interface |
US7145551B1 (en) | 1999-02-17 | 2006-12-05 | Microsoft Corporation | Two-handed computer input device with orientation sensor |
US6351744B1 (en) | 1999-05-28 | 2002-02-26 | Unisys Corporation | Multi-processor system for database management |
JP4332649B2 (ja) | 1999-06-08 | 2009-09-16 | 独立行政法人情報通信研究機構 | 手の形状と姿勢の認識装置および手の形状と姿勢の認識方法並びに当該方法を実施するプログラムを記録した記録媒体 |
US7050606B2 (en) | 1999-08-10 | 2006-05-23 | Cybernet Systems Corporation | Tracking and gesture recognition system particularly suited to vehicular control applications |
US7229017B2 (en) | 1999-11-23 | 2007-06-12 | Xerox Corporation | Laser locating and tracking system for externally activated tags |
JP3762173B2 (ja) * | 1999-11-26 | 2006-04-05 | 株式会社東芝 | 計算機システム及びネットワークシステム並びに記録媒体 |
DE10007891C2 (de) | 2000-02-21 | 2002-11-21 | Siemens Ag | Verfahren und Anordnung zur Interaktion mit einer in einem Schaufenster sichtbaren Darstellung |
SE0000850D0 (sv) | 2000-03-13 | 2000-03-13 | Pink Solution Ab | Recognition arrangement |
US7109970B1 (en) | 2000-07-01 | 2006-09-19 | Miller Stephen S | Apparatus for remotely controlling computers and other electronic appliances/devices using a combination of voice commands and finger movements |
US7227526B2 (en) | 2000-07-24 | 2007-06-05 | Gesturetek, Inc. | Video-based image control system |
US20020065950A1 (en) | 2000-09-26 | 2002-05-30 | Katz James S. | Device event handler |
US7058204B2 (en) | 2000-10-03 | 2006-06-06 | Gesturetek, Inc. | Multiple camera control system |
US20020184401A1 (en) * | 2000-10-20 | 2002-12-05 | Kadel Richard William | Extensible information system |
US6703999B1 (en) | 2000-11-13 | 2004-03-09 | Toyota Jidosha Kabushiki Kaisha | System for computer user interface |
US20020085030A1 (en) | 2000-12-29 | 2002-07-04 | Jamal Ghani | Graphical user interface for an interactive collaboration system |
US7259747B2 (en) | 2001-06-05 | 2007-08-21 | Reactrix Systems, Inc. | Interactive video display system |
US8300042B2 (en) | 2001-06-05 | 2012-10-30 | Microsoft Corporation | Interactive video display system using strobed light |
US20020186200A1 (en) | 2001-06-08 | 2002-12-12 | David Green | Method and apparatus for human interface with a computer |
US20040125076A1 (en) | 2001-06-08 | 2004-07-01 | David Green | Method and apparatus for human interface with a computer |
US7151246B2 (en) | 2001-07-06 | 2006-12-19 | Palantyr Research, Llc | Imaging system and methodology |
US20030048280A1 (en) | 2001-09-12 | 2003-03-13 | Russell Ryan S. | Interactive environment using computer vision and touchscreens |
US7159194B2 (en) | 2001-11-30 | 2007-01-02 | Palm, Inc. | Orientation dependent functionality of an electronic device |
US7369984B2 (en) * | 2002-02-01 | 2008-05-06 | John Fairweather | Platform-independent real-time interface translation by token mapping without modification of application code |
US7340077B2 (en) | 2002-02-15 | 2008-03-04 | Canesta, Inc. | Gesture recognition system using depth perceptive sensors |
EP1478966B1 (en) | 2002-02-27 | 2007-11-14 | CDM Optics, Incorporated | Optimized image processing for wavefront coded imaging systems |
US7170492B2 (en) | 2002-05-28 | 2007-01-30 | Reactrix Systems, Inc. | Interactive video display system |
US7348963B2 (en) | 2002-05-28 | 2008-03-25 | Reactrix Systems, Inc. | Interactive video display system |
US7850526B2 (en) | 2002-07-27 | 2010-12-14 | Sony Computer Entertainment America Inc. | System for tracking user manipulations within an environment |
US7854655B2 (en) | 2002-07-27 | 2010-12-21 | Sony Computer Entertainment America Inc. | Obtaining input for controlling execution of a game program |
US7576727B2 (en) | 2002-12-13 | 2009-08-18 | Matthew Bell | Interactive directed light/sound system |
US7991920B2 (en) | 2002-12-18 | 2011-08-02 | Xerox Corporation | System and method for controlling information output devices |
US7665041B2 (en) | 2003-03-25 | 2010-02-16 | Microsoft Corporation | Architecture for controlling a computer using hand gestures |
US8745541B2 (en) | 2003-03-25 | 2014-06-03 | Microsoft Corporation | Architecture for controlling a computer using hand gestures |
GB0308943D0 (en) | 2003-04-17 | 2003-05-28 | Univ Dundee | A system for determining the body pose of a person from images |
WO2004107266A1 (en) | 2003-05-29 | 2004-12-09 | Honda Motor Co., Ltd. | Visual tracking using depth data |
US7694314B2 (en) * | 2003-08-28 | 2010-04-06 | Siebel Systems, Inc. | Universal application network architecture |
US7280346B2 (en) | 2003-09-29 | 2007-10-09 | Danger, Inc. | Adjustable display for a data processing apparatus |
US7436535B2 (en) | 2003-10-24 | 2008-10-14 | Microsoft Corporation | Real-time inking |
US20050212753A1 (en) | 2004-03-23 | 2005-09-29 | Marvit David L | Motion controlled remote controller |
US7555613B2 (en) | 2004-05-11 | 2009-06-30 | Broadcom Corporation | Storage access prioritization using a data storage device |
CN100573548C (zh) | 2004-04-15 | 2009-12-23 | 格斯图尔泰克股份有限公司 | 跟踪双手运动的方法和设备 |
US20050283752A1 (en) * | 2004-05-17 | 2005-12-22 | Renate Fruchter | DiVAS-a cross-media system for ubiquitous gesture-discourse-sketch knowledge capture and reuse |
WO2005116802A1 (ja) | 2004-05-25 | 2005-12-08 | Sony Computer Entertainment Inc. | 入力装置及び方法、文字入力方法 |
US7366368B2 (en) | 2004-06-15 | 2008-04-29 | Intel Corporation | Optical add/drop interconnect bus for multiprocessor architecture |
US7519223B2 (en) | 2004-06-28 | 2009-04-14 | Microsoft Corporation | Recognizing gestures and using gestures for interacting with software applications |
US7466308B2 (en) | 2004-06-28 | 2008-12-16 | Microsoft Corporation | Disposing identifying codes on a user's hand to provide input to an interactive display application |
US7559053B2 (en) * | 2004-08-24 | 2009-07-07 | Microsoft Corporation | Program and system performance data correlation |
US7761814B2 (en) | 2004-09-13 | 2010-07-20 | Microsoft Corporation | Flick gesture |
US7613830B2 (en) * | 2004-12-10 | 2009-11-03 | Microsoft Corporation | Reliably transferring queued application messages |
WO2006074310A2 (en) | 2005-01-07 | 2006-07-13 | Gesturetek, Inc. | Creating 3d images of objects by illuminating with infrared patterns |
HUE049974T2 (hu) | 2005-01-07 | 2020-11-30 | Qualcomm Inc | Képeken lévõ objektumok észlelése és követése |
CN101137996A (zh) | 2005-01-07 | 2008-03-05 | 格斯图尔泰克股份有限公司 | 基于光流的倾斜传感器 |
US7966353B2 (en) * | 2005-01-31 | 2011-06-21 | Broadcom Corporation | Method and system for flexibly providing shared access to non-data pool file systems |
EP1851750A4 (en) | 2005-02-08 | 2010-08-25 | Oblong Ind Inc | SYSTEM AND METHOD FOR CONTROL SYSTEM BASED ON GESTURES |
EP1886509B1 (en) | 2005-05-17 | 2017-01-18 | Qualcomm Incorporated | Orientation-sensitive signal output |
US7428542B1 (en) | 2005-05-31 | 2008-09-23 | Reactrix Systems, Inc. | Method and system for combining nodes into a mega-node |
US20070078966A1 (en) * | 2005-09-30 | 2007-04-05 | Rockwell Automation Technologies, Inc. | Presentation of automation data |
US8681098B2 (en) | 2008-04-24 | 2014-03-25 | Oblong Industries, Inc. | Detecting, representing, and interpreting three-space input: gestural continuum subsuming freespace, proximal, and surface-contact modes |
US8531396B2 (en) | 2006-02-08 | 2013-09-10 | Oblong Industries, Inc. | Control system for navigating a principal dimension of a data space |
US8669939B2 (en) | 2006-02-08 | 2014-03-11 | Oblong Industries, Inc. | Spatial, multi-modal control device for use with spatial operating system |
US8537111B2 (en) | 2006-02-08 | 2013-09-17 | Oblong Industries, Inc. | Control system for navigating a principal dimension of a data space |
US9063801B2 (en) | 2008-04-24 | 2015-06-23 | Oblong Industries, Inc. | Multi-process interactive systems and methods |
US8370383B2 (en) | 2006-02-08 | 2013-02-05 | Oblong Industries, Inc. | Multi-process interactive systems and methods |
US8537112B2 (en) | 2006-02-08 | 2013-09-17 | Oblong Industries, Inc. | Control system for navigating a principal dimension of a data space |
US8769127B2 (en) | 2006-02-10 | 2014-07-01 | Northrop Grumman Systems Corporation | Cross-domain solution (CDS) collaborate-access-browse (CAB) and assured file transfer (AFT) |
JP4781897B2 (ja) * | 2006-04-26 | 2011-09-28 | 富士通株式会社 | センサイベント制御装置 |
US20070288467A1 (en) * | 2006-06-07 | 2007-12-13 | Motorola, Inc. | Method and apparatus for harmonizing the gathering of data and issuing of commands in an autonomic computing system using model-based translation |
JP4148281B2 (ja) | 2006-06-19 | 2008-09-10 | ソニー株式会社 | モーションキャプチャ装置及びモーションキャプチャ方法、並びにモーションキャプチャプログラム |
US20080040692A1 (en) * | 2006-06-29 | 2008-02-14 | Microsoft Corporation | Gesture input |
US8234578B2 (en) | 2006-07-25 | 2012-07-31 | Northrop Grumman Systems Corporatiom | Networked gesture collaboration system |
US7725547B2 (en) | 2006-09-06 | 2010-05-25 | International Business Machines Corporation | Informing a user of gestures made by others out of the user's line of sight |
US7979850B2 (en) * | 2006-09-29 | 2011-07-12 | Sap Ag | Method and system for generating a common trace data format |
US8356254B2 (en) * | 2006-10-25 | 2013-01-15 | International Business Machines Corporation | System and method for interacting with a display |
US7984452B2 (en) * | 2006-11-10 | 2011-07-19 | Cptn Holdings Llc | Event source management using a metadata-driven framework |
TWI330802B (en) | 2006-12-13 | 2010-09-21 | Ind Tech Res Inst | Inertial sensing method and system |
JP2010515170A (ja) | 2006-12-29 | 2010-05-06 | ジェスチャー テック,インコーポレイテッド | 機能強化したインタラクティブシステムを用いた仮想オブジェクトの操作 |
US20090262074A1 (en) | 2007-01-05 | 2009-10-22 | Invensense Inc. | Controlling and accessing content using motion processing on mobile devices |
CN101617271B (zh) | 2007-02-15 | 2015-07-15 | 高通股份有限公司 | 使用闪烁电磁辐射的增强输入 |
US20080208517A1 (en) | 2007-02-23 | 2008-08-28 | Gesturetek, Inc. | Enhanced Single-Sensor Position Detection |
US20080222660A1 (en) * | 2007-03-06 | 2008-09-11 | Jari Tavi | Processing of data of a plurality of applications with a single client application |
JP5905662B2 (ja) | 2007-04-24 | 2016-04-20 | オブロング・インダストリーズ・インコーポレーテッド | プロテイン、プール、およびスロークス処理環境 |
WO2008134745A1 (en) | 2007-04-30 | 2008-11-06 | Gesturetek, Inc. | Mobile video-based therapy |
WO2008137708A1 (en) | 2007-05-04 | 2008-11-13 | Gesturetek, Inc. | Camera-based user input for compact devices |
US8726194B2 (en) | 2007-07-27 | 2014-05-13 | Qualcomm Incorporated | Item selection using enhanced control |
US7949157B2 (en) | 2007-08-10 | 2011-05-24 | Nitin Afzulpurkar | Interpreting sign language gestures |
US9261979B2 (en) | 2007-08-20 | 2016-02-16 | Qualcomm Incorporated | Gesture-based mobile interaction |
CN107102723B (zh) | 2007-08-20 | 2019-12-06 | 高通股份有限公司 | 用于基于手势的移动交互的方法、装置、设备和非暂时性计算机可读介质 |
EP2597868B1 (en) | 2007-09-24 | 2017-09-13 | Qualcomm Incorporated | Enhanced interface for voice and video communications |
US8341635B2 (en) | 2008-02-01 | 2012-12-25 | International Business Machines Corporation | Hardware wake-and-go mechanism with look-ahead polling |
US8280732B2 (en) | 2008-03-27 | 2012-10-02 | Wolfgang Richter | System and method for multidimensional gesture analysis |
US9740293B2 (en) | 2009-04-02 | 2017-08-22 | Oblong Industries, Inc. | Operating environment with gestural control and multiple client devices, displays, and users |
US8723795B2 (en) | 2008-04-24 | 2014-05-13 | Oblong Industries, Inc. | Detecting, representing, and interpreting three-space input: gestural continuum subsuming freespace, proximal, and surface-contact modes |
US9684380B2 (en) | 2009-04-02 | 2017-06-20 | Oblong Industries, Inc. | Operating environment with gestural control and multiple client devices, displays, and users |
US8269817B2 (en) | 2008-07-16 | 2012-09-18 | Cisco Technology, Inc. | Floor control in multi-point conference systems |
US20100060568A1 (en) | 2008-09-05 | 2010-03-11 | Apple Inc. | Curved surface input device with normalized capacitive sensing |
WO2010030822A1 (en) | 2008-09-10 | 2010-03-18 | Oblong Industries, Inc. | Gestural control of autonomous and semi-autonomous systems |
US8363098B2 (en) | 2008-09-16 | 2013-01-29 | Plantronics, Inc. | Infrared derived user presence and associated remote control |
US8788977B2 (en) | 2008-11-20 | 2014-07-22 | Amazon Technologies, Inc. | Movement recognition as input mechanism |
US8704767B2 (en) | 2009-01-29 | 2014-04-22 | Microsoft Corporation | Environmental gesture recognition |
JP5358834B2 (ja) | 2009-02-17 | 2013-12-04 | 株式会社ワコム | 位置指示器及び入力装置 |
US8856691B2 (en) | 2009-05-29 | 2014-10-07 | Microsoft Corporation | Gesture tool |
US20100315439A1 (en) | 2009-06-15 | 2010-12-16 | International Business Machines Corporation | Using motion detection to process pan and zoom functions on mobile computing devices |
GB2474536B (en) | 2009-10-13 | 2011-11-02 | Pointgrab Ltd | Computer vision gesture based control of a device |
EP2524279A1 (en) | 2010-01-14 | 2012-11-21 | BrainLAB AG | Gesture support for controlling and/or operating a medical device |
US9465457B2 (en) | 2010-08-30 | 2016-10-11 | Vmware, Inc. | Multi-touch interface gestures for keyboard and/or mouse inputs |
US9213890B2 (en) | 2010-09-17 | 2015-12-15 | Sony Corporation | Gesture recognition system for TV control |
US20120239396A1 (en) | 2011-03-15 | 2012-09-20 | At&T Intellectual Property I, L.P. | Multimodal remote control |
-
2008
- 2008-04-24 JP JP2010506501A patent/JP5905662B2/ja active Active
- 2008-04-24 WO PCT/US2008/061457 patent/WO2008134452A2/en active Application Filing
- 2008-04-24 KR KR1020097024470A patent/KR101545360B1/ko active IP Right Grant
- 2008-04-24 EP EP09014670A patent/EP2163987A3/en not_active Ceased
- 2008-04-24 CN CN200880017354.XA patent/CN101689152B/zh not_active Expired - Fee Related
- 2008-04-24 US US12/109,263 patent/US8407725B2/en active Active
- 2008-04-24 EP EP08746810A patent/EP2150893A4/en not_active Ceased
-
2009
- 2009-10-28 NO NO20093236A patent/NO20093236L/no not_active Application Discontinuation
-
2013
- 2013-03-26 US US13/850,837 patent/US9804902B2/en not_active Expired - Fee Related
-
2014
- 2014-06-19 JP JP2014126090A patent/JP2014222506A/ja active Pending
-
2017
- 2017-09-14 US US15/705,077 patent/US10664327B2/en active Active
-
2020
- 2020-04-20 US US16/852,865 patent/US20200250018A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20130347006A1 (en) | 2013-12-26 |
US9804902B2 (en) | 2017-10-31 |
NO20093236L (no) | 2010-01-15 |
WO2008134452A2 (en) | 2008-11-06 |
US10664327B2 (en) | 2020-05-26 |
US8407725B2 (en) | 2013-03-26 |
EP2163987A2 (en) | 2010-03-17 |
EP2150893A2 (en) | 2010-02-10 |
CN101689152A (zh) | 2010-03-31 |
JP5905662B2 (ja) | 2016-04-20 |
US20180004583A1 (en) | 2018-01-04 |
KR20100017321A (ko) | 2010-02-16 |
US20080271053A1 (en) | 2008-10-30 |
JP2010525494A (ja) | 2010-07-22 |
WO2008134452A3 (en) | 2009-12-30 |
US20200250018A1 (en) | 2020-08-06 |
JP2014222506A (ja) | 2014-11-27 |
KR101545360B1 (ko) | 2015-08-19 |
EP2150893A4 (en) | 2012-08-22 |
EP2163987A3 (en) | 2013-01-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101689152B (zh) | 多进程间数据共享以及交互操作和交叉网络执行方法 | |
CN102224476B (zh) | 多进程交互系统和方法 | |
US10565030B2 (en) | Multi-process interactive systems and methods | |
CN102460510B (zh) | 用于与空间操作系统一起使用的空间多模式控制设备 | |
CN106886689B (zh) | 一种病原微生物基因组快速分析方法及系统 | |
CN107330238A (zh) | 医疗信息采集、处理、存储与显示方法与装置 | |
US10990454B2 (en) | Multi-process interactive systems and methods | |
EP1340184A2 (en) | Method and system for modeling biological systems | |
KR20120034637A (ko) | 데이터의 표현, 조작 및 교환을 포함하는 제스처-기반 시스템 | |
DE102021206537A1 (de) | Schnittstellenübersetzung unter verwendung eines oder mehrerer neuronaler netzwerke | |
DE102021205525A1 (de) | Animation von inhalten unter verwendung eines oder mehrerer neuronaler netzwerke | |
Lee et al. | Bio-STEER: A Semantic Web workflow tool for Grid computing in the life sciences | |
DE102021111080A1 (de) | Höhepunkt-bestimmung unter verwendung eines oder mehrerer neuronaler netzwerke | |
Niu et al. | SMNet: symmetric multi-task network for semantic change detection in remote sensing images based on CNN and transformer | |
CN115700789A (zh) | 一种基于多模态医学数据的肺炎预检分诊系统 | |
US11275556B2 (en) | Method, computer-readable medium, and processing unit for programming using transforms on heterogeneous data | |
Sugawara et al. | An e-Workbench for the study of microbial diversity: the system design and basic functions | |
CN102804206B (zh) | 包括数据表示、操作和交换的基于姿势的控制系统 | |
DE102021206161A1 (de) | Interaktionsbestimmung unter verwendung von einem oder mehreren neuronalen netzwerken | |
Jin et al. | A Multiagent Framework to Integrate and Visualize Gene Expression Information | |
Singh et al. | Emerging Web Tools and Their Applications in Bioinformatics | |
Deevi et al. | An extensible automated protein annotation tool: standardizing input and output using validated XML | |
Dahlquist et al. | 10 th Annual Bioinformatics Open Source Conference | |
van Beek et al. | A vision and strategy for the virtual physiological |
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: 1142981 Country of ref document: HK |
|
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: WD Ref document number: 1142981 Country of ref document: HK |
|
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20161005 Termination date: 20210424 |
|
CF01 | Termination of patent right due to non-payment of annual fee |