具体实施方式
基本概念:
本发明的基本构思,是设计一种用于综合的无线装置访问和管理的动态机器组合方法。该方法利用短距离无线通信技术来连接各种装置并综合它们的功能,以构造能够给最终用户带来真正的便利和灵活性的动态机器。
首先,我们需要定义某些基本的概念:
1.装置:指的是具有比较简单的结构和功能的设备,例如一个灯。一个PDA也被认为是一个装置,因为它小且紧凑且提供了有限的功能,虽然它具有很多的组件。
2.机器:指的是由多个组件组成的设备,它能够产生复杂的功能。例如,一个汽车是由几百个组件组成的机器。组件本身可以是装置或机器。组件机器可被认为是装置的子集。
3.能力:一个装置或机器所能够提供的功能,且以什么程度提供这些功能。(在某些文章中,这也被称为服务。为了避免混淆,在此选择使用“能力”)。例如,一个监测器能够显示文本和图形,且进一步地,它具有分辨率、颜色深度和刷新速率。
4性质:代表内部数据或状态信息的装置或机器变量。性质是可随时间变化的装置或机器动态或运行支持信息。
5.方法:一个装置或机器向用户或其他装置提供的用来操纵它的方式。例如,任何装置都具有使其他方开通/关断它的通/断方法。
6.事件:装置或机器彼此发送的小的通信数据包。借助事件,装置能够交换数据和命令而用知道太多彼此的内部情况。
7.服务:来自一或多个装置或机器的远程或本地信息或数据提供。
动态机器栈(DMS)
DMS是所有所需的DMS功能在一定的平台上的软件实施。一个DMS具有以下的功能或服务模块:
1)蓝牙和/或其他无线协议支持:
如果目标平台已经支持象蓝牙的模块。则DMS中不需要额外的支持。然而,在其中无线模块为可选的系统上,DMS必须有必要的蓝牙和/或其他无线协议支持支持。
蓝牙和/或其他无线协议支持是DMS的必需功能。
2)DMTP处理
不同的无线装置要彼此进行对话,必须要有一种高级的协议。动态机器传输协议(DMTP)就是这样的协议,它们使得装置能够进行独立于下级协议的数据交换。
DMTP处理模块是进行实际的DMTP操作以使得能够进行不同装置彼此的高层对话的模块。
DMTP处理功能是DMS所始终需要的。
3)DMNS处理
一个DM中的所需组件需要被给予方便的名称以供人访问。且当用户发出暗含的指令时,DM需要明白用户所指的是哪个部分。
DMNS指的是动态机器命名服务,它就是执行上述工作的。一个DMNS模块将按照装置或DM性质、用户习惯或经验,来执行实际的命名和分辨。
DMNS处理是DMS的可选功能。
4)DMDP处理
处理大规模的装置管理需要有辅助服务。动态机器装置pool就是解决这种问题的。
只有具有足够的处理能力的系统需要包括这种模块来进行管理和为其他装置提供服务
DMDP处理是DMS的可选功能。
5)DMML处理
为了使各种装置能够描述它们自己并被其他装置所理解,需要一种公共语言。动态机器标志语言就是用于这种目的的。
DMML模块的工作是使装置通过DMTP而存储和交换描述。
DMML处理是DMS的必需功能.
6)DMTL运行支持
为了构造DMS应用,需要一种跨平台的语言。动态机器模板语言指的是这样的语言。
DMTL运行支持应该包含使装置运行DMS应用所需的每一种东西。
DMTL运行支持是DMS的必需功能。
标准对于构造一种可工作的DMS是非常重要的,因为DMS被假定是在最大范围的装置上进行工作的。所有的装置制造商和组件开发商将需要建立并按照开放的标准,以使各种产品能够进行相互作用而不发生问题。即使对于非开放的或特定的应用,仍然需要一种内部标准来使所有部分能够良好地工作在一起。
支持DMS的任何装置都必须安装有一个DMS。某些组件可来自操作系统的设计者或来自第三方的开发商。它可以具有文档、RAM、ROM或内装在芯片逻辑单元中的库、插件、驱动器或程序的形式,它被认为是一个DMS,而不论各个组件是如何实施的。
DMS处于诸如蓝牙的无线协议的上方,并利用DMTP作为装置之间通信的协议。装置利用DMML进行自身描述并被其他装置所理解。用DMTL写的应用定义了各种DM功能并给用户提供了真正的便利和灵活性。
以下是对DMS组件的详细描述。
DMTP和装置之间的通信
诸如蓝牙的协议已经支持语音和数据通信,但不支持所有其他的数据通信。因而需要更高级的协议来进行复杂的数据交换。另外,DMS被假定是在蓝牙之外的各种栈之间工作的。因而要求有更高级的协议以能够进行跨平台的通信。在此DMTP指的是任何这样的协议。
一种真实的DMTP应该考虑到各种无线协议的特性,把下面的细节隐藏起来,并提供一种标准的界面,以在各种平台之间进行复杂的数据交换。它可以是面向连接的或无连接的包切换协议,具有所需的路由和故障容忍能力。例如,如果两个蓝牙装置处于同一微微网(Piconet)内,它们能够彼此直接对话。如果这两个装置处于不同的微微网中,需要转送机制才能使包找到它们的目的地。且如果这两个装置具有不同的通信模块,网关或路由器将帮助双方之间的数据交换。
注意在一定的情况下,例如所有装置都是蓝牙装置并处于同一微微网中,DMTP处理模块似乎是不必要的。然而,对于更为一般的实施,DMTP是一种必需。即使在最简单的情况下,DMTP也肯定会增强通信的可靠性并有助于减轻相同种类的栈的不同版本之间的不兼容的扭曲。
DMML和装置描述
DMTP保证公共方式的装置对话,但它们必须采用相同的语言才能够彼此理解。DMML指的是进行装置描述的所有可能的公共语言。一种真实的DMML将基于XML技术,这些技术将使得DMS应用与基于XML的服务之间的连接变得容易。各个DMS装置应该具有一或多个内装的DMML页、语音命令和使人和/或装置理解该装置的性质所需的其他东西。来自一个特定装置的DMML页被认为是该装置的一种可读取格式的一种详细的简档。进一步的分析可在对该页进行了分析之后进行,且另一方随后可对该装置进行适当的操作。
任何DMS装置都应该具有一个DMML处理模块,其工作是分析从其他装置获得的DMML页并在得到通过DMTP模块的询问时把该装置自己的页送到其他装置。
另外,可以在需要时为高级管理产生有关整个DM的DMML页。DMS应用可包括用于产生这些页的方法。
DMTL和DMS应用
一个DM被假定提供各个单独的装置以外的先进功能。构造聪明得足以理解彼此的能力并自动产生增强的功能的装置是非常困难的。且可以有很多方式来采用两个最简单的装置。因此,需要专用的软件来使增强的特征能够为用户所用,且这样的程序被称为DMS应用。
DMS应用被假定为是在各种平台之间工作。因此,要求一种独立于平台的编程语言,称为DMTL。以真正的DMTL写成的一个应用被认为是在各种平台上工作。因此所需的支持必须出现在各个平台上,这些支持被认为是被包括在DMTL运行支持模块中。
另外,一种相同的应用被认为是在不组装置上运行的;只要它们满足了所有的要求。所以一个DMS应用也被称为一个模板。适合该模板的所有对象组都可运行该应用。一个模板应该包含装置能力要求、所需的数据和方法。且直到运行支持所涉及的实际装置组才被确定。
DMNS
其他的装置可通过一个的装置的地址来对其进行识别。但各个所需的装置或组件需要一种用户友好的名称。当用户发出了一个暗示指令时,还需要识别实际的目标装置。DMNS指的是解决上述问题的服务。
一个真正的DMNS被认为是在一个专用的公共装置、机器或用户装置上运行的独立于应用的服务。它应该与装置一起工作以获得所需的信息一诸如应用和装置性质、用户习惯或偏好以及空间信息,以为装置找到适当的名称或分辨实际的装置名。人工智能可被应用在DMNS的实施之中。DMS应用可包括相对方法;以有助于DMNS。
一个组件装置的名称只是一个临时的alias,并可在DM分解之后变为无效。然而,自我学习的机制可被用在实际的DMNS实施中,且该名称有可能被保留以改善服务的性能。
DMDP
在公共场合以及家庭和汽车环境中,可能有成百甚至上千个装置供公共访问。DMDP指的是用有效的管理手段对其进行分辨的服务。
一种实际的DMDP服务可以在一个专用的公共装置或机器上运行。DMDP可以作为一个中间方进行工作以处理装置管理任务。每当一个DMS应用被启动且具有一定的能力的装置被请求时,DMDP应该帮助该应用找到适合的装置。当该应用已经利用这些装置完成时,DMDP将帮助复位这些装置以供将来使用。
DMDP的工作,是消除在大量的候选者中找到适当的装置的开销。从而能够简化和加快DM的构造并优化通信性能。
所需的标准
1)装置能力描述:
这是DMS的基础。可以通过对已有的装置进行分类而获得。例如,我们可为监测器定义一个能力输入项名称“显示器”,并随后在此输入项之下定义副输入项,诸如“分辨率”、“颜色深度”以及其他所需的项。各个输入项的标志和有效参数范围应该得到确定。
2)装置性质描述:
能力代表的是装置的“静态”信息,而性质揭示的是装置的“动态”或运行支持状态,例如监测的当前分辨率。性质描述标准与能力标准非常类似并可通过类似的程序获得。
3)事件描述:
装置的作用可通过事件获得,即包含命令或数据的消息包,困为装置不能彼此直接进行控制。事件描述描述标准被假定为通过标准化的数据格式和参数范围的归一化的数据交换。
产生一个覆盖了所有种类的装置的完整的标准并不是容易的。但相同种类的装置支持相同的一组事件则是可能的,这被认为是标准的一个子集。一个子集可在需要时得到更新。且开发商可查询最新的版本以进行应用授权。
任何装置都必须依照相对的DMS标准,不论是开放的还是封闭的,以保持兼容性和一致性,否则DMS将不能进行良好的工作。
动态机器组合:
1)对装置的要求:
DMS应用要求DMS使能的装置,它们可以全部是新的装置或者是经过改造的传统装置。即它们必须具有所需的组件和功能。且最重要的是它们必须按照DMS相关的标准。
2)对无线能力要求:
一个DMS装置必须具有至少一个无线模块、蓝牙、IR或其他。DMS的所需组件必须得到安装。
3)DMS工作模式支持:
装置应该支持以下的工作模式:
·单独的:所有装置的默认模式;即与其他装置无关地独立地工作。
·从属机:装置只按照从其他装置送来的命令或数据而进行操作。在此模式下,装置作为DM的一个组件而进行工作。所有装置都应该支持这种模式。
·主导机:应该作为DM的协调者而进行操作;即它监测多个装置的状态并根据DMS应用逻辑对它们的操作进行控制。只有具有强大的处理能力的装置能够支持这种主导机模式。
动态机器所要求的逻辑组件:
一个DM需要某些逻辑组件才能进行工作。逻辑组件实际上是组件装置的联合。所有这些组件的定义应该被包括在DMS应用编码中,且某种应用被假定只在满足该应用定义的装置组上工作。一个逻辑组件的实际组成随着应用而变化。对于一个相同的应用和一组相同的装置,每次的组成也可以不同。
CPU描述:就象PC的CPU一样,一个DM的CPU可以控制整个设备的操作。支持主导机模式的所有装置都可成为CPU。且一个CPU可由多个这样的装置组成。
控制面板:一个DM必须具有人-机交流所需的能力。控制面板把各种装置的HCI能力相结合以形成一个综合的界面,使用户能够访问该机器。
主功能体:实现DM所要执行的主要任务的部分。根据应用定义和装置能力,它可包括一或多个装置。
连接点:它是一个DM与其他装置、机器或服务的接口。它可包括多个装置的多个模块。如果DM不需要与其他装置进行接触。则不需要连接点。
动态装置链接(DDL):
在编程时一个应用的作者可能并不准确地知道在运行支持时通信将采用的装置是什么。但他可定义组件装置的所需能力,并利用虚设对象来完成DM逻辑编码。找到匹配的装置并把虚设对象链接到实际的装置,是主导机装置的责任。且这种过程被称为动态装置链接。
如图2A所示,一个DM可能需要从A至H的某些能力。下面的三个装置恰巧具有所有这些所需能力,因而在运行支持它们能够分别被链接到适当的虚设对象,如图2A所示。当然,这不是把装置与对象链接起来的唯一方式。图2B显示了链接装置的另一种可能的方式。
DDL过程被认为是在构造一个DM时由一个主导机装置进行的。该主导机装置应该试图发现周围的可获得的适当的装置并通过DMTP构造逻辑组件以及整个的DM。链接的装置被置于从属机模式并开始按照来自CPU的命令而进行操作。当不再需要该DM时启动一个相反的过程,且所有的装置都被解除链接并被置于单独模式。
DDL是DMS编程中的一个重要概念,即程序逻辑不是根据实际的对象写的,而是按照虚设的对象写的。构造DM中的一个非常重要的步骤,是虚设对象必须被链接到实际的装置,然后应用逻辑才能够实际开始工作。
动态机器的寿命周期:
寿命周期指的是一个动态机器按照希望而形成、工作和消失的可能步骤。
概念/构思步骤:DM是要帮助用户方便地解决某些问题。所以必须发现问题并构思一种解决方案。
应用的写作:把该解决方案变成DMTL中的实际编码的实际步骤,指的是相对协议和标准。对DM和运行支持逻辑的静态定义应该被包括在该应用编码中。
安装应用:当一个DMS应用编码被完成时,需要把它安装在一定的DMS使能的装置中,才能够使它开始工作。一种应用可以被预安装在装置OS或硬件中,或者可以作为一种可选的库、插件或程序。
触发:一个应用需要被触发才能够开始工作。它可以由用户手动启动,也可以按照用户的偏好、装置的配置、政策、事件、方案等等而自动地启动。
DDL:用可获得的装置构造成一个DM的组装过程。如果在构造步骤中需要专门的行动,应用编码可包括所需的构造方法。如果没有足够的可获得资源,该过程失败且随后的步骤将不被执行。
工作/运行:
DM根据在该应用中定义的逻辑进行工作,它应该响应于装置事件或用户命令来完成一定的任务。
反向DDL:当不再需要DM时,分解过程要么按照应用逻辑自动启动,要么由DM用户手动启动。所有占用的组件装置和资源都被释放。
应用可包括所需的分解方法,以在分解步骤中执行额外的操作。
用户反馈:应用还可包括一定的方法,以帮助把用户经验、不满、建议或其他形式的反馈送回到适当的接收器,这可有助于装置制造商、应用开发商或服务提供商通过重复进行上述的所需步骤而改善DMS应用的适用性、效率和性能。
以下结合附图描述动态机器(DM)的组装、运行、和分解。
图1说明了一个DMS应用(模板)的产生过程,它包括从用户发现问题并确定需求、进行需求分析、进行模板设计、至模板的安装运行。
在图1中,在步骤S101,用户确定用任何单个的装置都不能解决的问题,并确定需要一种解决方案。随后,在步骤S102,对要求进行分析,以为解决方案找出所需的能力/组件。在S103,用户进行系统设计,包括定义用户的作用、系统组件之间和其他装置/机器之间的数据交换。在S104,进行模板编制,即为所确定的解决方案进行实现的编码,包括能力要求和运行支持逻辑。这些能力要求和运行支持逻辑都被写入到一个模板中,该模板在类似的装置都能够工作。
一种面向对象的原稿(script)语言DMTL被用于模板编制,这保证了跨平台的能力。模板编制所涉及的标准包括:装置能力描述、装置性质描述、装置方法描述、事件描述等。
在S105,做好的模板被安装到一个用户装置上,从而为了运行作好了准备
图3显示了DMS应用的组合过程,包括用户启动模板即应用、分析应用、搜索所需设备、构造必要的逻辑功能部件、以及开始运行。在步骤S301,用户利用适当的装置,启动相应的模板。该装置具有DMTL运行支持环境和无线通信能力,并具有所需的处理和存储能力。在S302,处理对模板进行分析。以确定所需的能力/组件,并估计所需的处理能力。在S303。处理根据模板分析的结果,检查所需的装置。在S304,判定是否可获得DMDP。如判定结果为“否”,则处理进行到步骤S305,以广播询问消息,即利用DMTP进行独立于协议的数据交换。随后,在S306,处理等候其他装置以DMML页形式的答复。
所有的装置在得到询问时都应该送回内装的DMML页,作为对询问消息的回答。该DMML页可涉及:装置能力描述、装置性质描述、装置方法描述、事件描述等。
在S307,根据预定的标准,处理过滤出候选装置,这些标准包括是否最佳、令人满意、费用、位置等。随后,处理进行到步骤S311。
如果在步骤S304的判定结果为“是”。既可获得DMDP,则处理进行到S309,以把要求送到DMDP服务器。该DMDP提供了装置管理服务,用于进行装置管理并加速装置搜索。随后,在S310,DMDP找到适当的装置并把结果送回到用户装置。随后,处理进行至步骤S311。
在S311,判定是否找到了所需的装置。如果结果为“否”。则处理进行到步骤S312,以向用户提示失败,随后处理被放弃;而在判定找到了所需的装置的情况下,处理进行到步骤S313,以设定至所需装置的无线连接,其中在涉及到带有各种无线协议栈的装置的情况下,可以采用网关。随后在S314进行动态装置联结。
在S315构造DM的逻辑组件;根据模板的要求和运行支持逻辑定义,各个组件可以由多个装置构成。这些组件一般包括:CPU,即具有足够的处理功能从而能够控制DM的运行的装置;它可以是启动模板的用户装置,也可以是其他的装置;控制面板,它是整个DM的HCI部分,是根据模板中定义的所需HCI能力而构造的;主功能部分,即实现DM的主要任务的部分;以及,连接点,它只在DM需要与其他的装置/机器进行连接时才需要。
在S316,通过DMNS对组件/装置进行命名,即用对于用户友好的名称对DM中的所需组件/装置进行命名,以进行多模型的处理。
至此,DM构造完成。
图4显示了DMS的运行过程,其中CPU进行初始化操作,并对运行中产生的各种事件进行处埋,即对相关的设备进行操作。
如图4所示,在DMML开始工作之后,在S401,CPU对DM进行初始化,其中CPU执行模板中定义的入口方法,以通过向组件装置发送适当的事件包,而对所需的装置和整个DM进行初始化。
在S402,获得一个事件,该事件可以是任何用户输入、数据交换和装置状态改变所产生并送到CPU的事件。
在S403,判定是否找到了预定的处理逻辑。如果没有,处理进行到步骤S404,在那里该事件被放弃。
如果在步骤S403找到了预定的处理逻辑,则处理进行到S406,在那里利用模板的预定逻辑对该事件进行处理,并确定组件装置应该执行什么处理。
随后,处理进行到S407,在那里组件装置通过事件而得到指令,CPU产生至适当的装置的适当的事件包。其中涉及到事件描述标准。
随后,处理进行到S408,在那里CPU通过DMTP把事件包送向适当的组件。
图5显示了DMS的拆卸过程。其中CPU进行拆卸、广播重置消息并释放设备。
如图5所示,在S501,一个用户命令或一个一定的事件触发了分解过程,DM停止工作。随后,在S502,CPU调用分解方法,包括释放资源、与远程服务器断开等等。然后,在S503,广播复置事件,其中所有的组件装置都应该通过回答这种事件而进行确认,并进行必需的清除;在该步骤中采用了事件描述标准。在S504,进行等候直到各个组件进行了确认。
随后,在S505,判定组件是否是通过DMDP获得的。如果该判定结果为“否”,则处理进行到S506,以广播另一复置事件,随后在S507,CPU进行DMS的自我分解以释放CPU控制的组件,从而完成分解过程。
如果在S505的判定结果为“是”,处理进行到S508。在那里把组件装置返回给DMDP,且DMDP将进行所需的清除和复置。随后,在S509,用户装置自我释放,从而完成分解过程。
DMS的优点
自然而一致的装置访问和管理:不同的装置具有不同的访问方法。在传统的方法中,如果一个装置要支持某种存取方法,它必须实际安装有适当的模块。例如,如果一个微波炉要支持语音命令,它必须具有一个语音识别模块。不同的装置带有不同的远程控制部分,当组合在一起时会产生很多的混乱和不便。DMS提供了解决这类问题的一种新的方案。即通过DM构造而使所有装置的存取和管理能力能够为所有其他装置所用。例如,一个装置的语音识别引擎可为其他装置进行服务,以使这些其他装置能够呈现为语音便能的装置。或者带有触摸屏的一个PDA可显示其他很多装置的控制面板,且用户能够在不产生混乱的情况下利用该PDA在任何时候使任何所希望的装置成为命令的目标装置。
方便和灵活性:人们需要不同的装置,但任何单个的装置都不可能所有的工作。我们总是需要携带很多不同的装置。这非常不方便。或者我们可以试图发明某种强大的“全合一”装置。在现实中,“全合一”是吸引人的的又是不实际的,因为这样的装置难于被制成便携的形式且需要不时得到更新以适应新的要求,而这绝对不是灵活的。借助DMS,可以在需要时构造出强大的DM且用户只需要携带少数的主导机装置。有很多方式来使用简单的装置,从而使得我们不用为具体的应用而制造专用的机器。DMS将为人们提供能够解决甚至最复杂的问题的动态机器。
优化的资源分配:今天,人们持续地遇到“80-20”问题,即可能要花费80%的时间利用仅仅20%的功能,但却要支付100%的费用。DMS提供对这种问题的一种解决方案,即把那些不经常使用的功能模块制成共享的公共资源。这些资源能够通过DMS而与其他的装置相结合,以执行复杂的任务。因而用户能够只是在需要时“租用”不经常使用的资源,而不是“购买”这些资源并等候使用它们的稀有机会。
应该理解的是,在此显示和描述的实施例和变形只是为了说明本发明的原理,且在不脱离本发明的范围的前提下,本领域的技术人员能够实施各种修正。