制造个性化的动态和实时可配置软件架构的方法和装置转让专利

申请号 : CN200880101401.9

文献号 : CN101802804B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 邱新陈李强王凡

申请人 : 通用仪表公司

摘要 :

一种接收用于使通信设备个性化的个性化请求的过程。进一步,该过程将个性化请求提供给消息控制器,消息控制器根据规则集合,用消息编写器引擎编写具有个性化信息的消息,并且根据规则集合,用消息流控制引擎对用于消息的一个或多个通信参数进行配置。规则集合指示消息编写器引擎和消息流控制引擎在分布式环境中利用的分布式环境文件集合,以及消息编写器引擎和消息流控制引擎在集中式环境中利用的集中式环境文件集合。

权利要求 :

1.一种用于设备个性化的方法,包括:

在消息控制器中接收用于使第一通信设备个性化的第一个性化请求和用于使第二通信设备个性化的第二个性化请求,所述第二通信设备不同于所述第一通信设备;

在所述消息控制器中根据规则集合来编写具有特定于所述第一通信设备的个性化信息的第一消息以及具有特定于所述第二通信设备的个性化信息的第二消息,并且用消息流控制引擎根据所述规则集合来为所述第一消息配置特定于所述第一通信设备的一个或多个通信参数,以及为所述第二消息配置特定于所述第二通信设备的一个或多个通信参数,其中所述规则集合具有指示在分布式环境中所使用的分布式环境文件集合以及在集中式环境中所使用的集中式环境文件集合的信息;以及根据用于所述通信设备的个性化软件配置,用消息处置器对所述消息进行处理,其中所述消息处置器将所述第一消息发送到所述第一通信设备,所述第一通信设备在操作中到具有用于规定第一消息简档的第一图形用户界面的第一站,并且所述消息处置器将所述第二消息发送到所述第二通信设备,所述第二通信设备在操作中连接到具有用于规定第二消息简档的第二图形用户界面的第二站,所述第二图形用户界面不同于所述第一图形用户界面。

2.如权利要求1所述的方法,其中所述一个或多个通信参数包括消息路径。

3.如权利要求1所述的方法,其中所述一个或多个通信参数包括消息传输速率。

4.如权利要求1所述的方法,其中所述一个或多个通信参数确定错误消息处置工作流。

5.如权利要求1所述的方法,其中所述一个或多个通信参数包括消息处理时间。

6.如权利要求1所述的方法,其中所述一个或多个通信参数包括元数据,所述元数据指示特定于用于所述通信设备中的特定模块的通信接口的消息协议。

7.如权利要求1所述的方法,其中所述集中式环境包括客户端模式,并且所述配置是客户端模式。

8.如权利要求7所述的方法,其中所述消息处置器基于所述客户端模式来检索客户端动态链接的库文件。

9.如权利要求1所述的方法,其中所述分布式环境包括客户端模式或服务器模式。

10.如权利要求9所述的方法,其中所述配置是服务器模式。

11.如权利要求10所述的方法,其中所述消息处置器基于所述服务器模式检索服务器动态链接的库文件。

12.如权利要求1所述的方法,其中所述消息控制器同时实时地编写所述第一消息和所述第二消息。

13.一种用于设备个性化的方法,包括:

在消息控制器中接收用于使第一通信设备个性化的第一个性化请求和用于使第二通信设备个性化的第二个性化请求,所述第二通信设备不同于所述第一通信设备;

在所述消息控制器中用消息编写器引擎根据规则集合来编写具有特定于所述第一通信设备的个性化信息的第一消息以及具有特定于所述第二通信设备的个性化信息的第二消息,并且根据所述规则集合为所述第一消息配置特定于所述第一通信设备的一个或多个通信参数,以及为所述第二消息配置特定于所述第二通信设备的一个或多个通信参数,其中所述规则集合具有指示在分布式环境中所使用的分布式环境文件集合以及在集中式环境中所使用的集中式环境文件集合的信息;以及根据用于所述通信设备的个性化软件配置,用消息处置器对所述消息进行处理,其中所述消息处置器将所述第一消息发送到所述第一通信设备,所述第一通信设备在操作中到具有用于规定第一消息简档的第一图形用户界面的第一站,并且所述消息处置器将所述第二消息发送到所述第二通信设备,所述第二通信设备在操作中连接到具有用于规定第二消息简档的第二图形用户界面的第二站,所述第二图形用户界面不同于所述第一图形用户界面。

14.如权利要求13所述的方法,其中所述消息控制器同时实时地编写所述第一消息和所述第二消息。

说明书 :

制造个性化的动态和实时可配置软件架构的方法和装置

技术领域

[0001] 本公开一般涉及对设备的配置。具体而言,本公开涉及对设备的个性化。

背景技术

[0002] 目前利用多种制造过程和消息协议来对诸如移动设备、机顶盒、线缆调制解调器等通信设备进行个性化,即,使其独一无二。这些制造过程和消息协议通常相互不同,但却共享一定的相似性。在个性化过程中,多个设备可以共享某些消息。这些消息可以是基于核心技术的特定于某些产品的特定安全个性化数据消息和/或共同制造测试消息,共同制造测试消息用于利用已加载的个性化数据来证实设备正操作正常。
[0003] 然而,共享消息的各个设备之间的不同可能造成个性化过程中的分歧和差异。例如,一个设备可能具有不同于其他设备的产品/工厂配置。结果是一个设备可能利用一个协议集合和消息层,而另一设备可能利用不同的协议集合和消息层。进一步,一个设备的硬件组件可能需要个性化,而另一设备的硬件组件可能不需要个性化。举例而言,一个设备可能仅需要对嵌入的安全芯片进行个性化,而另一设备可能需要对嵌入的主机模块和嵌入的安全芯片都进行个性化。另外,一个设备可能利用不同于其他设备的消息路径。举例而言,一个设备可能利用RS 232/光纤串行链路,而另一设备可能利用调制解调器。结果是不同的消息重传机制可能用于不同的消息路径和错误条件。最终,由于可以使用不同的安全芯片,因而一个设备可能利用不同于另一设备的安全机制。例如,一个设备可能利用具有第一尺寸的加密密钥和鉴权密钥,而另一设备可能利用具有小于第一尺寸的第二尺寸的加密密钥和鉴权密钥。进一步,一个设备利用的加密算法可能不同于另一设备利用的加密算法。
[0004] 已经开发出软件应用来尝试解决这些分歧和差异。然而,开发额外软件应用带来新的问题。例如,为了解决分歧和差异,用于将新软件功能添加到现有代码的开发时间一般将耗费额外的时间量。该额外的时间对需要快速启动的设备而言往往显得太重要。进一步,软件应用需要验证/测试代码。验证/测试代码独立于软件应用,并由此向开发软件应用所需时间引入额外的时间。验证/测试代码用于产品查证和作为实验室中的压力测试工具,以避免需要利用实际的设备对主应用程序代码进行回归测试。进一步,任何特性增强和缺陷修复需要在不同的应用中重复和重测。另外,任何制造相关参数和配置的变动均需要代码变动。代码变动可能导致在现场单独的软件更新和部署,完成该任务将需要时间和资源。另外,单独的软件更新和部署可能有中断生产过程,带来新的缺陷和/或错误的可能性。

发明内容

[0005] 在本发明的一个方面,可以利用一种过程对通信设备进行个性化。该过程接收用于使通信设备个性化的个性化请求。进一步,该过程将个性化请求提供给消息控制器,消息控制器根据规则集合,用消息编写器引擎(MCE)编写具有个性化信息的消息,并且根据规则集合,用消息流控制引擎(MFCE)配置用于消息的一个或多个通信参数。规则集合指示MCE和MFCE在分布式环境中利用的分布式环境文件集合,以及MCE和MFCE在集中式环境中利用的集中式环境文件集合。另外,该过程根据用于通信设备的个性化软件的配置,并基于用于通信设备的个性化软件的配置是被包括在分布式环境中还是集中式环境中,用消息处置器对消息进行处理。
[0006] 在另一方面,可以利用一种过程对通信设备进行个性化。该过程接收用于使第一通信设备个性化的第一个性化请求,以及用于使第二通信设备个性化的第二个性化请求。第二通信设备不同于第一通信设备。进一步,该过程将第一个性化请求和第二个性化请求提供给消息控制器,消息控制器用MCE编写具有特定于第一通信设备的个性化信息的第一消息以及具有特定于第二通信设备的个性化信息的第二消息,并且用MFCE为第一消息配置特定于第一通信设备的一个或多个通信参数,以及为第二消息配置特定于第二设备的一个或多个通信参数。最后,过程根据用于通信设备的个性化软件的配置,用消息处置器对消息进行处理。
[0007] 在另一方面,可以利用一种过程对通信设备进行个性化。该过程接收用于使第一通信设备个性化的第一个性化请求,以及用于使第二通信设备个性化的第二个性化请求。第二通信设备不同于第一通信设备。进一步,该过程将第一个性化请求和第二个性化请求提供给消息控制器,消息控制器同时实时地用MCE编写具有特定于第一通信设备的个性化信息的第一消息以及具有特定于第二通信设备的个性化信息的第二消息,并且用MFCE为第一消息配置特定于第一通信设备的一个或多个通信参数,以及为第二消息配置特定于第二设备的一个或多个通信参数。最后,过程根据用于通信设备的个性化软件的配置,用消息处置器对消息进行处理。

附图说明

[0008] 通过结合附图参考以下描述,本公开的上述特征将变得更明显,在附图中相同的附图标记指示相同的元件,其中:
[0009] 图1说明用于目标设备的制造配置的分层消息接口/组件的定义。
[0010] 图2说明用于在工程开发环境中个性化的个性化软件架构。
[0011] 图3说明图1说明的个性化软件架构的扩展视图。
[0012] 图4说明用于第一产品的由图3所示的MCE编写的消息格式。
[0013] 图5说明用于第二产品的由图3所示的MCE编写的特定消息。
[0014] 图6说明用于第三产品的由图3所示的MCE编写的特定消息。
[0015] 图7说明作为接收用于定义图3所示的MCE XML文件和MFCEXML文件的用户输入的显示示例的显示。
[0016] 图8说明可以用于对通信设备进行个性化的过程。
[0017] 图9说明另一可以用于对通信设备进行个性化的过程。
[0018] 图10说明又一可以用于对通信设备进行个性化的过程。
[0019] 图11说明实施用于制造个性化的动态和实时可配置软件架构的站或系统的框图。

具体实施方式

[0020] 公开了一种提供用于制造个性化的动态和实时可配置软件架构的方法和装置。定义了分层消息接口/组件。这些分层消息/接口组件基于由设备的制造过程所规定的模块的配置。动态和实时可配置软件架构允许个性化软件通过利用不同的消息协议/消息层、安全机制、和消息路径以及不同的重传机制在不同的产品/工厂配置下动态操作。动态和实时可配置软件架构还允许基于初始个性化请求,同时实时地对不同的产品进行个性化。容易地采用动态和实时可配置软件架构用于新的产品变化,这从而减少了开发和测试时间。进一步,动态和实时可配置软件架构允许将个性化应用配置为:作为服务器运行,其包含用于设备的所有个性化数据,或者作为客户端运行,其与服务器接驳并将个性化数据传递到目标设备。
[0021] 图1说明用于工程开发环境中个性化的个性化软件配置100和由个性化软件配置100利用的消息传递接口。个性化软件配置100具有分层消息接口和组件的配置。对于新的产品,在将原型/测试设备的个性化过程集成到工厂的制造过程之前,首先在工程/产品开发环境中对原型/测试设备的个性化过程进行开发。在该环境中的个性化软件配置100允许将个性化应用,即软件应用,配置和操作为服务器102或客户端104。
[0022] 在一个配置中,如图1所示,服务器102位于信任实验室中,而客户端104可以分布于不同的产品开发团队/实验室,以将需要被个性化的被测单元(UUT)连接到服务器102。在个性化过程开发期间,不同的产品团队需要客户端104是可配置的,这样他们可以控制不同层的协议消息。因此,在该实例中,服务器102用第一通信接口(CI)构建核心“个性化”消息内容(常具有与设备中的特定安全组件/芯片相关的安全数据),并将其余的消息定义/构造留给客户端104,其可由不同的工程组来配置。换言之,客户端104可以被灵活地实时配置,以与服务器102和目标设备106接驳。因此,对于特定产品,用户可以为不同CI构造消息层。在开发之后,服务器和客户端创建的消息定义将被组合为基于XML的配置文件,该文件将由制造过程使用用于产品的个性化。在另一工程配置中,服务器102和客户端104均位于信任实验室内。将客户端104配置为对设备进行模拟,并执行服务器102的压力测试。在该实例之中,服务器102可以为设备的不同模块仅构建一整条消息。因此,个性化软件配置100允许客户端104和服务器102被配置地不一样,以适应两种配置。
[0023] 可以利用多个CI来通过消息传递接口在不同的组件之间传送消息。例如,CI可以用于目标设备106中的每个模块以与个性化应用通信,个性化应用被配置和操作为服务器102或客户端104。第一CI 116用于在服务器102和客户端104之间传递第一多条消息。每条消息标记为“M”。进一步,符合第一CI 116的第一多条消息标记为“M:1”。在第一多条消息中的每条消息进一步标记为“M:1-消息编号”。例如,在第一多条消息中的第一条消息标记为“M:1-1”。为了个性化,第一多条消息可以包括用于服务器102和/或客户端104的初始化、配置等的数据。
[0024] 进一步,第二CI 118用于将多条消息从客户端104或第二模块110传递到目标设备106的第一模块108。服务器102首先仅用第一CI 116构建核心个性化消息。客户端104移除/添加第一CI 116,以恢复用于客户端104/服务器102的核心个性化消息。例如,客户端104可以用第一CI116,从服务器102接收具有嵌入的核心个性化消息的第一多条消息M:1。客户端
104首先移除第一CI 116,接着恢复核心个性化消息。然后,客户端104用第二CI 118构建消息M:2,并将M:2转发到目标设备106中的第一模块1 108。在从第一模块108到服务器102的个性化响应消息中,客户端104需要移除第二CI 118。然后,客户端104基于用于第一CI 116的协议添加第一CI 114,并将M:1-j,…,M:1-k转发到服务器102。
[0025] 另外,第三CI 120用于将多条消息从第一模块108或第三模块112传递到目标设备106的第二模块110。客户端104移除/添加第一CI 116,以恢复用于客户端104/服务器102的核心个性化消息。另外,客户端104添加/移除其他CI,例如第二CI 118和/或第三CI 120,以构造用于其他模块和服务器102的消息。例如,客户端104可以在仅包括第一CI 116的情况下,从服务器102接收多条消息M:1。客户端104可以首先移除第一CI 116,并且基于用于第一CI 116的协议,恢复核心个性化消息。然后,客户端104添加第二CI 118和第三CI 120,其中第三CI 120嵌入在内消息层,而第二CI 118嵌入在外消息层以形成M:2。将M:2转发到第一模块108。因此,从客户端104发送到第一模块108的M:2消息符合第二CI 116。第一模块
108依次移除第二CI 118,并且基于用于第三CI 120的协议,恢复消息M:3-1…M:3-r,并将消息转发到第二模块110。然而,在从第二模块110到服务器102的响应消息中,每个模块以及客户端104需要实施反向消息接口转换。可以通过模块x 114来利用该方法,模块x 114利用x+1 CI 122。
[0026] 另外,以上配置所示的每个模块以及客户端104可以作为不对消息进行修改的直通(pass through)组件。
[0027] 在完成个性化过程的工程开发之后,服务器102和客户端104所使用的消息定义/接口可以被组合并被打包,以在用于每种产品的制造个性化过程之中使用。
[0028] 图2说明用于目标设备106的制造配置200的分层消息接口/组件的定义。在制造过程中,目标设备首先连接到个性化站(P站)204,其一般由制造团队开发。P站204在知道哪个设备要被个性化的情况下,将生成初始个性化请求,并将其发送到个性化服务器(P服务器)202。在该配置中,预期P服务器202构建个性化消息,基于工程开发过程生成的配置文件,可以将该个性化消息不做或仅做少量修改的情况下直接转发到需要被个性化的目标设备106中的模块。如以上参照图1所讨论的,将服务器102和客户端104在工程个性化配置中使用的消息层和CI进行组合和打包,以用于对特定产品的制造个性化过程。
[0029] 在一个实施例中,可以利用多个P站204,每个均具有不同配置和软件以对不同产品生成不同的个性化请求。开发不同P站204的不同制造工程团队可能得出不同的软件。目标设备106可以包括多个模块。例如,目标设备/产品106可以包括:第一模块108、第二模块110、第三模块112,…,模块x 114。第一模块108、第二模块110、和第三模块112被包含在目标设备106中,而模块x114被包含在目标设备中和附加目标设备中。换言之,模块x114由目标设备所共享。
[0030] 多个CI可以用于以与图1所示的工程配置相类似的方式,在制造配置或产品的不同组件之间传送消息。例如,CI可以由目标设备106中的每个模块利用,来与制造配置200中的其他模块以及P站204和P服务器202进行通信。第一CI 116用于在P站204和P服务器202之间传递第一多条消息。每条消息标记为“M”。进一步,将第一CI 116的第一多条消息标记为“M:1”。在第一多条消息中的每条消息进一步标记为“M:1-消息编号”。例如,在第一多条消息中的第一条消息标记为“M:1-1”。为了个性化,第一多条消息可以包括用于P站204的初始化、配置等的数据。
[0031] 进一步,第二CI 118用于将多条消息从P站204或第二模块110传递到目标设备106的第一模块108。如以上讨论的,预期P服务器202构建具有符合第一CI 116、第二CI 118、第三CE 120等的不同层的消息。P站204移除/添加第一CI 116,以恢复用于P站204/P服务器204的正确个性化消息。例如,P站204可以用在最外的消息层中存在的第一CI116,从P服务器202接收具有嵌入的个性化消息的第一多条消息M:1。P站204首先移除第一CI 116,然后用在消息最外层中存在的第二CI116恢复个性化信息以形成M:2,并且将M:2转发到目标设备106中的第一模块108。在从第一模块108到P服务器202的响应消息中,P站204首先从第一模块108接收消息。然后,P站204基于用于CI 114的协议添加第一CI 116。然后,P站204将M:
1-j,…,M:1-k传送到P服务器202。
[0032] 另外,第三CI 120用于将多条消息从第一模块108或第三模块112传递到目标设备106的第二模块110。P站204移除/添加第一CI 116,以恢复用于P站204/P服务器202的正确个性化消息。第一模块108移除/添加第二CI 118,以恢复用于第二模块110/P站204的正确个性化消息。例如,P站204可以从P服务器202接收包括所有消息CI的第一多条消息M:1,但是第一CI 116存在于最外的消息层中。P站204可以首先移除第一CI 116,并基于用于第一CI 116的协议,恢复消息。然后,P站204将已由P服务器202为第二CI 118和第三CI 120正确格式化的其余消息转发到第一模块108。因此,从P站204发送到第一模块108的消息符合第二CI 118。第一模块108依次移除第二CI 118,并基于用于第三CI 120的协议,恢复消息M:
3-1…M:3-r,并且将消息转发到第二模块110。然而,在从第二模块110到PServer 202的响应消息中,每个模块以及P站204实施反向消息接口转换。可以通过模块x 114来利用该方法,模块x 114利用x+1 CI 122。
[0033] 因此,目标设备106可以具有范围从第一模块108到模块x 114的模块。这些模块的每一个均可以具有对应的CI。例如,第一模块利用第二CI 118,第二模块110利用第三CI 120,而模块x 114利用x+1 CI 122。
[0034] 另外,以上配置所示的每个模块以及P站204可以作为不对任何消息进行修改的直通组件。
[0035] 图3说明图1说明的个性化软件配置100的扩展视图。个性化应用106包括消息控制器302、消息处置器304、和一个或多个库306。消息控制器302包括受控于XML的MCE 314和受控于XML的MFCE 316,消息处置器包括用于客户端的动态链接库(dll)和用于服务器的dll,一个或多个库306可以包括通信库、加密/鉴权库等。进一步,个性化应用与客户端104(图1所示)的图形用户界面(GUI)相交互。
[0036] 个性化软件配置100允许个性化应用以服务器模式310或客户端模式312操作。基于个性化应用是作为服务器102还是作为客户端104(图1所示)操作,消息流的方向是不同的。如果为了测试服务器代码而利用客户端104来模拟一种设备,则服务器102的操作将与客户端104的操作相对。例如,如果服务器102执行加密操作,则客户端104将接着执行对应的解密操作。因此,基于个性化应用是作为服务器102还是作为客户端104操作,而不同地实施消息处置器304。创建服务器动态链接库(dll)310和客户端dll 312。如果两个dll都存在,则可以将个性化应用配置为作为服务器102或客户端104操作。
[0037] 在一个实施例中,当个性化软件配置100在工厂中被利用时,移除客户端dll 312,这样仅服务器模式是可用的。进一步,多个工程团队可以通过利用客户端模式312,来在工程实验室中执行对测试设备的个性化。个性化软件配置100向多个工程团队提供根据产品规范,用不同的错误条件和接口消息来测试服务器代码/接口的灵活性。所以,客户端GUI 308可以由用户用在客户端模式中,以用于按需要定义接口消息和创建不同的错误条件。
[0038] 通过利用MCE 314和MFCE 316这两种消息处理引擎来构建消息控制器302。MCE 314用于基于由一个或多个可扩展标记语言(XML)文件所定义的信息来形成用于特定设备的消息。不同的XML文件(或组合的单个XML文件,但被不一样地标记)用于不同的设备。实时确定将要利用哪个XML文件(或者如果使用了单个XML文件,则XML文件的哪个部分被标记用于特定设备)。基于包括在由客户端104(图1)或P站204(图2)所生成的初始个性化请求中的设备信息做出该确定。
[0039] 图4说明用于第一产品的由图3所示的MCE 314编写的消息400的格式。以下代码是可用于编写消息400的XML文件的示例:
[0040]     <?xml version=″1.0″encoding=″utf-8″?>
[0041]     
[0042]     <!-Example#1:an example of a generic message composition[0043] below”-->
[0044]     
[0045]     M:X-m_header=″type_byte,type_specific_bytes(type dependant,[0046] variable length),
[0047]     M:X-m_Yn_Z-o_length″
[0048]     M:Y-n_header=″type_byte,type_specific_bytes(type
[0049]     dependent,variable length),M:Y-nZ-o_length″
[0050]     M:Zo_header=″type_byte,type_specific_bytes(type dependant,[0051] variable length),M:Z-o_length″
[0052]     M:Z-o_footer(optional)=″footer bytes specific to M:_Z-o″[0053] M:Y-n_footer(optional)=″footer bytes specific to M:Y-n″[0054]     M:X-m_footer(optional)=″footer bytes specific to M:X-m″/>[0055]     <!--“Product1_Msg_C”:指在用于产品1的个性化过程中的消息[0056] #C-->
[0057]     <!--X,Y,Z:“通信接口”X,Y,和Z的索引-->
[0058]     <!-M:X_m:特定于“通信接口”X的消息#m-->
[0059]     <!--_footer:对于“通信接口”可选。-->
[0060] 消息400是包括M::Z-o消息主体402的一般消息。进一步,包括M:Z-o头部404和M:Z-o脚部406。在一个实施例中,头部和脚部是元数据的部分,该元数据指示特定于通信设备中特定模块的通信接口的消息协议。另外,用于消息M:Y-n_Z-o的M:Y-n头部408和M:Y-n脚部410也在消息400中。进一步,用于消息M:X-m_Y-n_Z-o的M:X-m头部412和M:X-m脚部414也在消息中。
[0061] 图5说明用于第二产品的由图3所示的MCE 314编写的特定消息500。以下代码是可用于编写消息500的XML文件的示例:
[0062]     
[0063]     <!--Example#2:an example of a specific message composition[0064] below”-->
[0065]     
[0066]     M:1-1_header=″type_byte,type_specific_bytes(type dependant,[0067] variable length),M:1-1_2-3_3-1_length″
[0068]     M:2-3_header=″type_byte,type_specific_bytes(type dependant,[0069] variable length),M:2-3_3-1_length″
[0070]     M:3-1_header=″type_byte,type_specific_bytes(type dependant,[0071] variable
[0072]     length),M:3-1_length″
[0073]     M:3-1_footer=″footer bytes specific to M:3-1″M:2-3_footer=″footer
[0074] bytes specific to M:2-3″
[0075]     M:1-1_footer=″footer bytes specific to M:1-1″/>
[0076]     <!--“Product2_Msg_1”:指在用于产品2的个性化过程中的消息[0077] 1-->
[0078]     <!--M:1-1_header(or footer),M:2-3_header(or footer)and M:3-[0079]     1_header(or footer):特定于通信接口1的消息#1(M:1-1),特[0080] 定于通信接口2的消息#3(M:2-3),和特定于通信接口3的消息#1
[0081] (M:1-3)的头部(或脚部)-->
[0082] <!--M:1-1:特定于“通信接口1”的消息#1-->
[0083] <!--M:2-3:特定于“通信接口2”的消息#3-->
[0084] <!--M:3-1:特定于“通信接口3”的消息#1-->
[0085] 消息500是用于第二产品的特定消息构成并包括核心消息主体502。进一步,包括M:3-1头部504和M:3-1脚部506。另外,用于消息M:2-3_3-1的M:2-3头部508和M:2-3脚部510也在消息500中。进一步,用于消息M:3-1_2-3_3-1的M:1-1头部512和M:1-1脚部514也在消息中。
[0086] 图6说明用于第三产品的由图3所示的MCE 314所编写的特定消息600。以下代码是可用于编写消息600的XML文件的示例:
[0087]     
[0088]     <!--Example#3:a example of specific message composition below”[0089] -->
[0090]     
[0091]     M:1-2_header=″type_byte,type_specific_bytes(type dependant,[0092] variable length),M:1-4_2-5_3-2_length″
[0093]     M:2-5_header=″type_byte,type_specific_bytes(type dependant,[0094] variable length),M:2-5_3-2_length″
[0095]     M:3-2_header=″type_byte,type_specific_bytes(type dependant,[0096] variable length),M:3-2_length″
[0097]     M:3-2_footer=″footer bytes specific to M:3-2″M:2-5_footer=″footer
[0098] bytes specific to M:2-5″
[0099]     M:1-4_footer=″footer bytes specific to M:1-4″/>
[0100]     <!--“Product2_M:_1”:指在用于产品2的个性化过程中的消息1--[0101] >
[0102]     <!--M:1-4_header(or footer),M:2-5_header(or footer)and M:3-[0103]     2_header(or footer):特定于通信接口1的消息#4(M:1-4),特[0104] 定于通信接口2的消息#5(M:2-5),和特定于通信接口3的消息#2
[0105] (M:1-3)的头部(或脚部)-->
[0106]     <!--M:1-4:特定于“通信接口1”的消息#4-->
[0107]     <!--M:2-5:特定于“通信接口2”的消息#5-->
[0108]     <!--M:3-2:特定于“通信接口3”的消息#2-->
[0109] 消息600是用于第三产品的特定消息构成并包括M:3-2消息主体602。进一步,包括M:3-2头部604和M:3-2脚部606。另外,用于消息M:2-5_3-2的M:2-5头部608和M:2-5脚部610也在消息600中。进一步,用于消息M:1-4_2-5_3-2的M:1-4头部612和M:1-4脚部614也在消息600中。
[0110] 参考图3,MFCE 316还由一个或多个XML文件定义。MFCE 316用于配置一个或多个通信参数,诸如消息路径、消息方向、消息传输速度、消息处理时间/延迟、以及确定错误消息处理工作流的消息错误处理机制,即当错误生成时,等。在一个实施例中,错误实例可以包括无效消息格式和有效消息格式,但是在消息中有特定的错误状态。当针对无效消息格式检测到错误时,因为在传输期间可能有数据损坏,故一条或多条消息将令人不满意。当在有效消息格式中检测到错误,但消息中有特定的错误状态时,因为错误是不可恢复的,故将发送最后的终止消息。
[0111] MFCE 316 XML文件的示例如下所示:
[0112] <?xml version=″1.0″encoding=″utf-8″?>
[0113]
[0114] <!-定义缺省消息流控制参数-->
[0115]
[0117]     <!--Example:特定消息流控制引擎的示例-->
[0118]     
[0119]     <!--io=″I″:指“productX_Msg_1”是针对服务器的输入消息-->[0120]     
[0121]     <!--io=″I″:指“productX_Msg_2”是针对服务器的输出消息-->[0122]     
[0124]     <!--“delay”=“60000”:指将60秒的延迟添加到缺省超时值,因为[0125] 可能占用产品更多的时间以发送回“ProductX_Msg 3”消息-->
[0126]     
[0128]     
[0130]     <!--rptMsg=″ProductX_Msg 4″rptNum=″3″:指如果服务器接收[0131] 到未正确格式化的回复消息,它将重传先前的消息“ProductX_Msg 4”[0132] 达额外的三次-->
[0133]     
[0134]     
[0135] 在测试配置中,服务器模式310中消息流的方向与客户端模式312中消息流的方向相反。因此,到服务器102(图1所示)的输入消息将是客户端104(图1所示)的输出消息。在一个实施例中,为了一致,同一MFCE 316文件可以在服务器模式310和客户端模式312中利用。进一步,可以从服务器102的角度,例如,输入或输出,来定义MFCE 316。另外,可以从客户端
104的角度定义MFCE 316文件。为了一致,同一MCE 314文件也可以在服务器模式310和客户端模式312中利用。进一步,可以从服务器102的角度,例如,输入或输出,来定义MCE 314文件。另外,可以从客户端104的角度定义MCE 314文件。
[0136] 在一个实施例中,根据规则集合,MCE 314可以与MFCE 316结合利用。例如,可能针对输入消息存在规则。如果用于通信接口的特定头部/脚部包括在MCE 314文件中,则预期输入消息具有该头部/脚部。然而,当将消息发出时,就移除头部/脚部。如果用于通信接口的特定头部/脚部不包括在MCE 314文件中,则直接发出输入消息。另外,可能针对输出消息存在规则。如果用于通信接口的特定头部/脚部包括在MCE 314文件中,则应当在发出消息之前,将头部/脚部添加到消息。然而,如果用于通信接口的特定头部/脚部不包括在MCE 314文件中,则不添加任何头部/脚部的情况下就直接发出消息。
[0137] 根据各种配置,可以一起利用MCE 314和MFCE 316。对于在工厂中利用的配置,个性化应用以服务器模式310运行。因此,将由服务器102编写和控制所有的消息,这样仅利用从服务器角度定义的MCE 314和MFCE 316文件集合。对于工程开发所利用的配置,除了服务器102以外,客户端104与服务器102和UUT同时接驳,或模拟UUT。对于客户端104与服务器102接驳的实例,当与服务器102通信时,客户端104利用MCE 314和MFCE 316文件的第一集合,其应当匹配于服务器102所利用的MCE 314和MFCE 316文件。在该实例中,客户端104利用MCE318和MFCE 320文件的第二集合来与UUT通信。对于客户端104用于模拟UUT并与服务器102直接通信的实例,仅利用MCE 314和MFCE 316文件的一个集合。
[0138] 如以上讨论的,工程开发环境可以开发实际设备的模拟器,其可以由用户通过客户端GUI 308来利用,以使实际设备在实验室中可用之前,查证服务器102的应用。当个性化应用206用于这些目的时,为了规定将利用哪条消息和/或消息流,向用户提供定义MCE XML文件318和MFCE XML文件320的能力。进一步,在和不同产品开发团队的初始集成测试中,工程环境可能不具有加载站以用来为了产品查证在实验室中执行个性化,该加载站一般由不同的工厂工程团队开发。所以,可以将个性化应用206配置用作用于生成个性化数据的服务器204或者用于模拟加载站的客户端104。个性化应用206可以具有模拟设备的能力,该设备生成具有不同错误状态的消息。因此,个性化应用206可以由用户通过客户端GUI 308来利用以作为实验室中的压力测试工具,用于消除对用于服务器代码的回归测试的实际真实设备的需要。
[0139] 如以上讨论的,服务器102和客户端104通常执行不同的操作和过程。例如,如果服务器102执行加密,则客户端104将执行解密操作。因此,对于不同的操作和过程,对服务器102和客户端104实施不同的配置,例如服务器102中用于加密操作的配置和在客户端104中用于解密操作的配置。因此,创建了server.dll消息处置器322和client.dll消息处置器
324。仅将一个消息处置器304加载到应用处理空间,以使其成为服务器或客户端。
[0140] 在一个实施例中,server.dll消息处置器322具有两种类型消息生成器:MsgGen_ServerType1 326和MsgGen_ServerType2 328。为了简化说明,举出两个消息生成器作为示例。然而,可以利用两个以上的消息生成器。MsgGen_ServerType2 328是特定消息生成器,也就是其生成特定于单个产品的消息。另一方面,MsgGen_ServerType1 326是共用消息生成器,也就是其生成用于一组产品的消息。可以通过面向对象设计(OOD)编程的继承特性,将在MsgGen_ServerType1 326中定义的方法传递到特定消息生成器。例如,可以将在MsgGen_ServerType1 326中定义的方法传递到以下特定消息生成器:MsgGen_Prod1 330用于第一产品,和MsgGen_Prod2 332用于第二产品。进一步,这些特定消息生成器的每一个均可以生成用于对应产品的多条消息。例如,MsgGen_Prod1 330可以生成用于第一产品的多条消息,即Prod1_Msg1336,Prod1_Msg2 338,…,Prod1_MsgX 340。
[0141] 进一步,client.dll消息处置器324具有两种类型的消息生成器:MsgGen_ClientType1 342和MsgGen_ClientType2 344。为了简化说明,举出两个消息处置器作为示例。然而,可以使用两个以上的消息处置器。MsgGen_ClientType2 344是特定消息生成器。另一方面,MsgGen_ClientType1 342是共用消息生成器。可以通过OOD编程的继承特性,将在MsgGen_ClientType1 342中定义的方法传递到特定消息生成器。例如,可以将在MsgGen_ClientType1 342中定义的方法传递到以下特定消息生成器:MsgGen_Prod1 346用于第一产品,和MsgGen_Prod2348用于第二产品。进一步,这些特定消息生成器的每一个均可以生成用于对应产品的多条消息。例如,MsgGen_Prod1 346可以生成用于第一产的多条消息品,即Prod1_Msg1 352,Prod1_Msg2 354,…,Prod1_MsgX 356。另外,同一消息方法名称可以用于服务器102和客户端104,但是他们在server.dll 322和client.dll 324中被不同地实施。
[0142] 在消息生成器类中定义的消息处理方法遵循以下格式:
[0143] public STATUS Method_Name(ref byte[]data)
[0144] {
[0145] //processing/operations below
[0146] return STATUS.SUCCESS;
[0147] }
[0148] 数据保持核心消息内容,其是最内层的消息主体。对于输入,数据是将所有的头部和/或脚部(如果有的话)去除的消息部分。数组进入,并且具有的尺寸应当是它所包含的数据的长度。对于输出,数组保持准备好被添加到每个CI所规定的不同头部/脚部的已处理数据。数组尺寸在方法内创建,并且具有的尺寸应当是它所包含的数据的长度。即使在Server.dll 322和Client.dll 324中将出现同一方法名称,实施也将因服务器102和客户端104而有所不同。
[0149] 个性化应用302还利用一个或多个库306。一个或多个库306可以包括具有传输层安全(TLS)库、以太网库、串行通信库的通信库,和特定于产品的其他通信库。由用于特定产品的(一个或多个)XML文件对通信库的利用进行配置。进一步,一个或多个库306可包括具有以下库的加密库:数据加密标准(DES)库、高级加密标准(AES)库、椭圆曲线加密(ECC)库、库、硬件安全模块(HSM)库等。还可以由用于特定消息和/或产品的XML文件对密钥尺寸和算法参数进行配置。另外,一个或多个库306可以包括用于其他功用的其他库。
[0150] 图7说明了显示700,显示700是接收用于定义图3所示的MCE XML文件318和MFCE XML文件320的用户输入的显示的示例。显示700允许用户规定将利用哪条消息和/或消息流。显示700允许用户规定用于构建对特定产品的初始个性化请求的信息。例如,用户可以规定消息类型字节(MTB),其用于确定与使用的产品相关的消息类型,还可以规定单元地址字节(UAB),定义UAB来规定产品类型、需要被个性化的单元的开始单元地址、种子负载请求的数目,其等于需要被个性化的单元的数目、和请求索引。显示700还允许用户将Delphi外部消息协议规范(DEMPS)头部和/或脚部添加到客户端所利用的MCE XML文件318,以用于与UUT接驳。DEMPS是某些机顶盒所利用的一种通信接口。进一步,显示700允许用户规定由客户端104(图2所示)所利用的MFCE XML文件320中的一些参数,以用于与UUT接驳。例如,可以规定的参数有步骤之间的延迟、每个种子负载之间的延迟、读取ASR超时、和读取UUT超时。为了测试的目的,显示700还允许用户规定损坏哪条消息,以便测试错误处理和消息重传机制。例如,在长度字段有损坏的第一消息是与在校验和字段或数据字段有损坏的第一消息不同的消息。因此,可以将具有各种错误条件的特定消息认为是不同的基本消息,然后可以由MCE 314利用该消息来形成用于特定CI的不同消息。
[0151] 图8说明可以用于对通信设备进行个性化的过程800。在过程块802,过程800接收用于使通信设备个性化的个性化请求。进一步,在过程块804,过程800将个性化请求提供给消息控制器,消息控制器根据规则集合,用MCE编写具有个性化信息的消息,并且根据规则集合,用MFCE对用于消息的一个或多个通信参数进行配置。规则集合指示MCE和MFCE在分布式环境中利用的分布式环境文件集合,以及MCE和MFCE在集中式环境中利用的集中式环境文件集合。另外,在过程块806,过程800根据用于通信设备的个性化软件的配置,并基于用于通信设备的个性化软件的配置是被包括在分布式环境中还是集中式环境中,用消息处置器对消息进行处理。
[0152] 图9说明可以用于对通信设备进行个性化的另一过程900。在过程块902,过程900接收用于使第一通信设备个性化的第一个性化请求,以及用于使第二通信设备个性化的第二个性化请求。第二通信设备不同于第一通信设备。进一步,在过程块904,过程900将第一个性化请求和第二个性化请求提供给消息控制器,消息控制器用MCE编写具有特定于第一通信设备的个性化信息的第一消息以及具有特定于第二通信设备的个性化信息的第二消息,并且用MFCE为第一消息配置特定于第一通信设备的一个或多个通信参数,以及为第二消息配置特定于第二设备的一个或多个通信参数。最后,在过程块906,过程900根据用于通信设备的个性化软件的配置,用消息处置器对消息进行处理。
[0153] 图10说明可以用于对通信设备进行个性化的又一过程1000。在过程块1002,过程1000接收用于使第一通信设备个性化的第一个性化请求,以及用于使第二通信设备个性化的第二个性化请求。第二通信设备不同于第一通信设备。进一步,在过程块1004,过程1000将第一个性化请求和第二个性化请求提供给消息控制器,消息控制器同时实时地用MCE编写具有特定于第一通信设备的个性化信息的第一消息以及具有特定于第二通信设备的个性化信息的第二消息,并且用MFCE为第一消息配置特定于第一通信设备的一个或多个通信参数,以及为第二消息配置特定于第二设备的一个或多个通信参数。最后,在过程块1006,过程1000根据用于通信设备的个性化软件的配置,用消息处置器对消息进行处理。
[0154] 图11说明实施用于制造个性化的动态和实时可配置软件架构的站或系统1100的框图。在一个实施例中,使用通用计算机或任何其他硬件等效物来实施站或系统1100。这样,站或系统1100包括:处理器1110、存储器1120,例如,随机存取存储器(RAM)和/或只读存储器(ROM)、个性化模块1140、和各种输入/输出设备1130(例如,存储设备、包括但不限于磁带驱动器、软盘驱动器、硬盘驱动器或光盘驱动器、接收机、发射机、扬声器、显示器、例如在数字静止照相机或数字摄像机中使用的图像捕捉传感器、时钟、输出端口、用户输入设备(诸如,键盘、小键盘、鼠标等,或是用于捕捉语音命令的麦克风))。
[0155] 应当理解,可以将个性化模块1140实施为通过通信信道耦合到处理器1110的一个或多个物理设备。替代性地,可以由一个或多个软件应用(甚或软件和硬件的组合,例如使用专用集成电路(ASIC))来表示个性化模块1140,其中从存储介质(例如,磁或光驱动器或磁盘)加载软件,并由计算机的存储器1120中的处理器来操作。如此,可以将本公开的个性化模块1140(包括相关联的数据结构)存储在可由计算机读取的介质之上,例如,RAM存储器、磁或光驱动器或磁盘等。
[0156] 应当理解,还可以将本文描述的用于制造个性化的动态和实时可配置软件架构应用于其他类型的系统。本领域的技术人员将理解,在不偏离本方法和系统的范围和精神的前提下,可以配置本方法和装置的实施例的各种调整和修改。所以,应当理解,在所附权利要求的范围内,可以用本文具体描述以外的方式实践本方法和装置。