《用于FLASH应用程序的具有分布式对象的集成硬件平台的系统和方法.pdf》由会员分享,可在线阅读,更多相关《用于FLASH应用程序的具有分布式对象的集成硬件平台的系统和方法.pdf(23页完整版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103336724 A (43)申请公布日 2013.10.02 CN 103336724 A *CN103336724A* (21)申请号 201310089295.X (22)申请日 2010.01.12 12/319,979 2009.01.13 US 201010002255.3 2010.01.12 G06F 9/54(2006.01) H04L 29/06(2006.01) (71)申请人 迪斯尼实业公司 地址 美国加利福尼亚州 (72)发明人 乔纳森罗斯 (74)专利代理机构 北京安信方达知识产权代理 有限公司 11262 代理人 周靖 郑霞 (54) 。
2、发明名称 用于 Flash 应用程序的具有分布式对象的集 成硬件平台的系统和方法 (57) 摘要 提供了用于 Flash 应用程序的具有分布式对 象的集成硬件平台的系统和方法, 用于提供集成 硬件平台, 以允许经由在主机系统上的 Flash 运 行时环境中执行的 Flash 应用程序所使用的应用 程序接口(API)的硬件控制。 提供了计算机平台, 其包括处理器、 外围硬件、 连接器设备以及存储 器。 所述存储器包括由用于Flash应用程序的API 提供的用于远程方法的API实现、 用于使得Flash 应用程序和平台处理器之间能够通信的代理服务 器、 以及用于提供安全策略从而为与平台处理器 的通。
3、信授予网络连接许可的安全服务。API 远程 方法调用允许 Flash 应用程序控制外围硬件, 并 且联网的服务器可管理远程调用以控制多个联网 客户的平台硬件。 (30)优先权数据 (62)分案原申请数据 (51)Int.Cl. 权利要求书 2 页 说明书 15 页 附图 5 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书15页 附图5页 (10)申请公布号 CN 103336724 A CN 103336724 A *CN103336724A* 1/2 页 2 1. 一种提供用于多媒体应用程序的硬件控制的系统, 所述系统包括 : 主机系统, 所述主机系统。
4、被配置为使用所述多媒体应用程序提供远程方案 ; 硬件设备 ; 其中, 硬件应用程序接口 (API) 被配置为根据所述远程方案控制所述硬件设备的硬件 系统。 2.如权利要求1所述的系统, 还包括API契约文件, 所述API契约文件具有硬件API定 义和多媒体应用程序 API 定义。 3. 如权利要求 1 所述的系统, 还包括主机处理器, 所述主机处理器被配置为 : 在所述主机系统与所述硬件设备之间建立链接 ; 启动安全服务和代理服务器的执行 ; 从所述多媒体应用程序接收由所述代理服务器的执行所中继的第一 API 远程方案调 用 ; 以及 执行由所述第一 API 远程方案调用所指示的 API 实现。
5、, 用于控制所述硬件设备。 4. 如权利要求 3 所述的系统, 其中所述主机处理器还被配置成向一服务器发送所述第 一 API 远程方案调用。 5.如权利要求4所述的系统, 其中所述服务器处理所述第一API远程方案调用, 以分配 第二 API 远程方案调用到第二个主机系统。 6. 如权利要求 5 所述的系统, 其中所述第二 API 远程方案调用由在所述第二个主机 系统上执行的第二多媒体应用程序使用, 以控制链接到所述第二个主机系统的第二硬件设 备。 7. 如权利要求 1 所述的系统, 还包括 : 主机处理器 ; 能够链接到所述主机系统的连接器设备 ; 具有用于远程方案的 API 实现的主机存储器。
6、, 用于使得所述多媒体应用程序和所述主机处理器之间能够通信的代理服务器, 以及 用于提供安全策略来为与所述主机处理器的通信授予网络连接许可的安全服务。 8. 如权利要求 1 所述的系统, 其中所述硬件设备被配置为使用机械控制系统以提供对 所述硬件设备的物理运动的控制。 9. 如权利要求 1 所述的系统, 其中所述硬件设备被配置为使用表示系统来控制视听元 件。 10. 如权利要求 1 所述的系统, 其中所述硬件设备被配置为使用环境监测系统来探测 和记录外部信号, 以与所述主机系统相互作用。 11. 如权利要求 10 所述的系统, 其中所述环境监测系统包括用于探测和记录与所述主 机系统的触觉相互作。
7、用的触觉传感器。 12. 如权利要求 10 所述的系统, 其中所述环境监测系统包括用于音频记录的扩音器和 / 或用于视频记录的摄像机。 13. 一种用于对多媒体应用程序提供硬件控制的方法, 所述方法包括 : 使用主机系统的所述多媒体应用程序提供远程方案 ; 根据所述远程方案经由硬件应用程序接口 (API) 控制硬件设备。 权 利 要 求 书 CN 103336724 A 2 2/2 页 3 14. 如权利要求 13 所述的方法, 还包括 : 在所述主机系统和所述硬件设备之间建立链接 ; 启动安全服务和代理服务器的执行 ; 从所述多媒体应用程序接收由所述代理服务器的执行所中继的第一 API 远程。
8、方案调 用 ; 以及 执行由所述第一 API 远程方案调用所指示的 API 实现以控制所述硬件设备。 15.如权利要求14所述的方法, 其中服务器处理所述第一API远程方案调用, 以分配第 二 API 远程方案调用到第二个主机系统。 16. 如权利要求 15 所述的方法, 其中所述第二 API 远程方案调用由在所述第二个主机 系统上执行的另一个多媒体应用程序使用, 以控制链接到所述第二个主机系统的第二硬件 设备。 17. 如权利要求 13 所述的方法, 还包括 : 将安全服务代码和代理服务器代码复制到主机存储器 ; 使得主机处理器执行来自所述主机存储器的所述安全服务代码和所述代理服务器代 码。。
9、 18. 如权利要求 13 所述的方法, 其中所述硬件设备被配置为使用机械控制系统以提供 对所述硬件设备的物理运动的控制。 19. 如权利要求 13 所述的方法, 其中所述硬件设备被配置为使用表示系统来控制视听 元件。 20. 如权利要求 13 所述的方法, 其中所述硬件设备被配置为使用环 境监测系统来探测和记录外部信号, 以与所述主机系统相互作用。 权 利 要 求 书 CN 103336724 A 3 1/15 页 4 用于 Flash 应用程序的具有分布式对象的集成硬件平台的 系统和方法 0001 本申请是申请日为 2010 年 1 月 12 日, 申请号为 201010002255.3,。
10、 发明名称为 “用 于 Flash 应用程序的具有分布式对象的集成硬件平台的系统和方法” 的申请的分案申请。 技术领域 0002 本发明一般涉及数据和图形显示。 更具体地, 本发明涉及具有分布式对象的Flash 应用程序。 背景技术 0003 对于丰富的多媒体互联网应用, Flash 平台很受欢迎, 其在多数主要硬件和操作系 统中具有高的浏览器渗透率和可用性。 用户能够从个人电脑到移动电话及视频游戏机的多 种设备容易地运行 Flash 应用程序。越来越多地, 现代 Flash 应用程序正使用分布式对象 以提供用户和服务器之间共享的在线背景给用户。 因此, 例如在虚拟社区和在线游戏世界, 用户能。
11、够对其他用户产生持久改变的影响。 例如, 用户能够互相谈话, 交易物品, 组队成组, 以及进行其它的相互作用。另外, 由于 Flash 平台的方便可得, 几乎在任何地方, 无论是在 家、 办公室、 网吧或机场候机楼, 用户都能够访问这些在线社区。 0004 然而, 互动只限于能够和 Flash 应用程序直接通信的设备。因此, 人类输入设备仅 限于传统的键盘、 诸如电脑鼠标的定位设备(pointing devices)、 网络摄像机以及在Flash 中具有直接硬件支持的其它设备。另外, Flash 应用程序的输出一般限于在执行 Flash 应 用程序的系统上播放的视听内容。因此, 在 Flash。
12、 应用程序中, 很难支持诸如单独的设备上 的视听回放以及振动、 物理对象的运动的特征。 0005 虽然可直接连接到 Flash 的外围设备对于传统的应用可能是合适的, 但是与在线 游戏和社区相互作用的更多的创新方式可能要求不在 Flash 中实施的新的硬件支持。虽然 这种新硬件可能容易由单独的硬件或软件支持, 但是用户会更喜欢技术麻烦最少的解决方 案。Flash 应用程序能够方便地在互联网上被访问, 并且在许多系统中, 一般预装了或可容 易获得 Flash 环境, 使得用户免去了使用专用的游戏硬件或安装额外的游戏软件的麻烦, 使用专用的游戏硬件或安装额外的游戏软件在公共环境中尤其不切实际。由于。
13、 Flash 平台 的方便可得, 因而用户能够从家里、 办公室或在旅行期间访问相同的在线账户。然而, 对于 直接硬件访问, Flash 平台只提供有限的支持, 限制了用户能够与 Flash 应用程序相互作用 的方式。 发明内容 0006 本发明提供系统和方法来克服本领域中的缺陷和不足, 该系统和方法用于用户与 可广泛访问的 Flash 平台相互作用, 以提供在共享在线环境下的互动体验, 突破了当前对 在 Flash 应用程序中可直接访问的硬件的限制。 0007 提供系统和方法, 其提供用于 Flash 应用程序的具有分布式对象的集成硬件平 说 明 书 CN 103336724 A 4 2/15。
14、 页 5 台, 该平台大体上如在至少一个附图中所示和 / 或关于至少一个附图所描述。 0008 本发明提供一种由计算机平台的平台处理器使用以经由用于 Flash 应用程序的 应用程序接口 (API) 来提供硬件控制的系统, 所述 Flash 应用程序在具有主机处理器和主 机存储器的主机系统上的 Flash 运行时环境中执行, 所述计算机平台包括 : 0009 位于所述主机系统之外的硬件设备 ; 0010 可链接到所述主机系统的连接器设备 ; 以及 0011 平台存储器, 其具有由所述Flash应用程序的所述API提供的用于远程方法的API 实现、 使得所述 Flash 应用程序和所述平台处理器。
15、之间能够通信的代理服务器、 以及用于 提供安全策略来为与所述平台处理器的通信授予网络连接许可的安全服务 ; 0012 所述系统包括 : 0013 用于通过所述连接器设备建立与所述主机系统的链接的装置 ; 0014 用于启动所述安全服务和所述代理服务器的执行的装置 ; 0015 用于从所述Flash应用程序接收由所述代理服务器的执行所中继的API远程方法 调用的装置 ; 以及 0016 用于执行由所述API远程方法调用所指示的所述API实现以控制所述硬件设备的 装置。 0017 根据本发明所提供的系统, 其中所述平台处理器还被配置为向一服务器发送所述 API 远程方法调用。 0018 根据本发明。
16、所提供的系统, 其中所述服务器处理所述 API 远程方法调用, 以分配 一 API 远程方法调用到第二个主机系统。 0019 根据本发明所提供的系统, 其中所分配的 API 远程方法调用由在所述第二个主机 系统上执行的 Flash 应用程序使用, 以控制链接到所述第二个主机系统的计算机平台的硬 件设备。 0020 根据本发明所提供的系统, 其中所述平台处理器被配置为将安全服务代码和代理 服务器代码复制到所述主机存储器, 并且其中所述平台处理器被配置为使得所述主机处理 器执行来自所述主机存储器的所述安全服务代码和所述代理服务器代码。 0021 根据本发明所提供的系统, 其中所述连接器设备被配置为。
17、使用通用串行总线 (USB)。 0022 根据本发明所提供的系统, 其中所述硬件设备被配置为使用提供所述硬件设备的 物理运动的机械控制系统。 0023 根据本发明所提供的系统, 其中所述硬件设备被配置为使用表示系统来控制视听 元件。 0024 根据本发明所提供的系统, 其中所述硬件设备被配置为使用环境监测系统以探测 和记录外部信号来与所述计算机平台相互作用。 0025 根据本发明所提供的系统, 其中所述环境监测系统包括用于探测和记录与所述计 算机平台的触觉相互作用的触觉传感器。 0026 根据本发明所提供的系统, 其中所述环境监测系统包括用于音频记录的扩音器。 0027 根据本发明所提供的系统。
18、, 其中所述环境监测系统包括用于视频记录的摄像机。 0028 本发明提供一种由计算机平台的平台处理器使用以经由 Flash 应用程序使用的 说 明 书 CN 103336724 A 5 3/15 页 6 应用程序接口 (API) 来提供硬件控制的方法, 所述 Flash 应用程序在具有主机处理器和主 机存储器的主机系统上的 Flash 运行时环境中执行, 所述计算机平台包括位于所述主机系 统之外的硬件设备、 可链接到所述主机系统的连接器设备、 以及平台存储器, 所述平台存储 器具有由所述 Flash 应用程序的所述 API 提供的用于远程方法的 API 实现、 用于使得所述 Flash 应用程。
19、序和所述平台处理器之间能够通信的代理服务器、 以及用于提供安全策略来 为与所述平台处理器的通信授予网络连接许可的安全服务, 所述方法包括 : 0029 通过所述连接器设备建立与所述主机系统的链接 ; 0030 启动所述安全服务和所述代理服务器的执行 ; 0031 从所述 Flash 应用程序接收由所述代理服务器的执行所中继的 API 远程方法调 用 ; 以及 0032 执行由所述 API 远程方法调用所指示的所述 API 实现以控制所述硬件设备。 0033 根据本发明所提供的方法, 其中所述平台处理器还被配置为向一服务器发送所述 API 远程方法调用。 0034 根据本发明所提供的方法, 其中。
20、所述服务器处理所述 API 远程方法调用, 以分配 一 API 远程方法调用到第二个主机系统。 0035 根据本发明所提供的方法, 其中所分配的 API 远程方法调用由在所述第二个主机 系统上执行的 Flash 应用程序使用, 以控制链接到所述第二个主机系统的计算机平台的硬 件设备。 0036 根据本发明所提供的方法, 其中所述平台处理器被配置为将安全服务代码和代理 服务器代码复制到所述主机存储器, 并且其中所述平台处理器被配置为使得所述主机处理 器执行来自所述主机存储器的所述安全服务代码和所述代理服务器代码。 0037 根据本发明所提供的方法, 其中所述连接器设备被配置为使用通用串行总线 (。
21、USB)。 0038 根据本发明所提供的方法, 其中所述硬件设备被配置为使用环境监测系统以探测 和记录外部信号来与所述计算机平台相互作用。 0039 本发明还提供一种用于控制由具有平台处理器的计算机平台提供且位于主机系 统之外的硬件设备的方法, 所述方法供在所述主机系统上的 Flash 运行时环境中执行的 Flash 应用程序使用, 所述平台处理器提供用于使所述 Flash 应用程序和所述平台处理器 之间能够通信的代理服务器、 以及用于提供安全策略从而为与所述平台处理器通信授予网 络连接许可的安全服务的执行, 所述方法包括 : 0040 向所述安全服务的执行发起对所述安全策略的请求 ; 004。
22、1 确认所述 Flash 运行时环境已经为与所述平台处理器的通信授予许可 ; 以及 0042 通过网络连接发送 API 远程方法调用到所述代理服务器的执行, 以控制所述硬件 设备。 附图说明 0043 在审阅了下面的详细描述和附图后, 本发明的特征和优点对于本领域的普通技术 人员将变得更加明显, 其中 : 0044 图 1 呈现了根据本发明的一种实施方式的集成硬件平台环境的框图 ; 说 明 书 CN 103336724 A 6 4/15 页 7 0045 图 2a 呈现了根据本发明的一种实施方式, 描述用于所述集成硬件平台的接口生 成工作流程的流程图 ; 0046 图2b呈现了根据本发明的一种。
23、实施方式, 用于由Flash开发者所利用的所述集成 硬件平台的 Flash 开发环境的框图 ; 0047 图 2c 呈现了根据本发明的一种实施方式, 用于由硬件开发者所利用的所述集成 硬件平台的硬件开发环境的框图 ; 0048 图 3 呈现了根据本发明的一种实施方式, 具有分布式对象的集成硬件平台环境的 框图 ; 以及 0049 图 4 示出了根据本发明的一种实施方式描述步骤的流程图, 通过这些步骤, 集成 硬件平台中的硬件设备的处理器经由用于Flash应用程序的应用程序接口(API)来提供硬 件控制。 具体实施方式 0050 本申请是针对用于 Flash 的具有分布式对象的集成硬件平台的一种。
24、系统和方法。 下面的描述包含有关本发明的实施的具体信息。本领域的技术人员将会意识到, 本发明可 以用与本申请具体讨论的方式所不同的方式来实施。 此外, 为了不使本发明模糊, 本发明的 一些具体细节未被讨论。 本申请中未描述的具体细节在本领域的普通技术人员的知识范围 之内。本申请的附图及其伴随的详细描述仅针对本发明的示例性实施方式。为保持简洁, 使用本发明的原则的本发明的其他实施方式在本申请中未被具体描述, 且未由本发明的附 图具体图解。 0051 图 1 呈现了根据本发明的一种实施方式的集成硬件平台环境的框图。环境 100 包括硬件设备 110 和主机系统 150。硬件设备 110 包括外部硬。
25、件 115、 硬件系统 125、 硬 件 API 131、 远程分布式方法 132、 串行器 133、 硬件应用程序 135、 分布式方法 136、 解串器 (deserializer)137、 串行连接 API 139、 以及连接器 142。外部硬件 115 包括传感器 116、 伺服系统 117 以及显示装置 118。硬件系统 125 包括环境监测系统 126、 机械控制系统 127 以及表示系统 (presentation system)128。连接 145 提供硬件设备 110 的连接器 142 和主 机系统 150 的接受器 (receptacle)152 之间的数据通信。主机系统 。
26、150 包括接受器 152、 主机处理器 160 和主机存储器 170。主机存储器 170 包括安全服务 162、 代理服务器 163 以及 Flash 运行时环境 (runtime environment)174。Flash 运行时环境 174 包括动作脚 本 (Actionscript) 硬件 API 171、 Flash 应用程序 175 以及 Flash 二进制套接字 (binary socket)API 179。 动作脚本硬件API 171包括串行器173、 远程分布式方法172、 解串器177 以及分布式方法 176。 0052 从一个高层次的角度看, 环境 100 允许主机系统 。
27、150 与连接的硬件设备 110 相互 作用。主机系统 150 经由主机处理器 160 运行 Flash 应用程序 175, 该 Flash 应用程序可 以进一步连接到由游戏服务器的分布式在线服务所支持的联网在线游戏。 除了游戏, Flash 应用程序 175 还可以支持任何其他类型的分布式在线应用程序, 如虚拟世界、 业务合作、 社 会网络或电子商务。 0053 为了简便, 图 1 仅描述了单个主机系统, 且忽略了关于所述游戏服务器的细节, 其 在下面的图 3 中以更多细节来描述。此外, 图 1 仅描述了连接到主机系统 150 的单个硬件 说 明 书 CN 103336724 A 7 5/1。
28、5 页 8 设备, 但是可选择的实施方式可以允许并行访问在运行 Flash 应用程序的单个主机系统上 的许多硬件设备。例如, Flash 应用程序 175 可能包括一个赛车游戏, 允许多个编号和类型 的硬件设备如方向盘和踏板连接到主机系统 150, 以分屏幕视频显示, 以容纳多个游戏者。 然后 Flash 应用程序 175 能够被设计成探测和利用所有连接的方向盘和踏板, 并且代理服 务器 163 能够相应地配置为在 Flash 应用程序 175 和多个硬件设备之间适当地按规定路 线发送通信。这种多个硬件设备特性还可以与在线游戏服务器结合, 以提供在硬件设备和 Flash 应用程序之间的多对多通。
29、信, 例如允许在线赛车, 其中多个参加的主机系统的每一个 都能够容纳一个或几个游戏者, 这取决于连接到每一个主机系统的硬件设备的数量。 然而, 为便于简化例子和提高可读性, 本申请将集中于只有单个硬件设备连接到主机系统的实施 方式。 0054 硬件设备 110 可以提供新颖的特性例如物理运动、 环境监测、 次要显示装置或扬 声器以及其他硬件能力给 Flash 应用程序 175, 其对于标准的 Flash 平台并非可用。通过 此额外的硬件, 与主机系统 150 的相互作用被扩展到 Flash 运行时环境 174 的本身能力和 主机系统 150 的标准支持的硬件能力之外。通过利用硬件应用程序接口 。
30、(API)131 实施 RMI( 远程方法调用 ), Flash 应用程序 175 能够远程控制硬件设备 110 的硬件系统 125, 或 提供硬件设备 110 所请求的数据。类似地, 在相反的方向, 动作脚本硬件 API 171 允许硬件 设备 110 远程控制 Flash 应用程序 175 或返回所请求的值。此外, 图 1 中所省略的分布式 对象 API, 通过与游戏服务器通信, 可以允许 Flash 应用程序 175 与连接到其他主机系统的 其他远程硬件设备联接。 0055 主机系统150可能包括个人计算机、 视频游戏机、 移动电话或能运行所述Flash平 台的任意其他设备。主机系统 1。
31、50 可能以前已经经由网页浏览器访问过网页服务器, 以通 过诸如互联网的网络下载 Flash 应用程序 175。然后 Flash 应用程序 175 可以在 Flash 运 行时环境 174 中执行, 该环境可包括提供 Flash 播放器支持的网页浏览器插件。 0056 运行时环境 174 提供一种环境, 其中 Flash 应用程序 175 能够被翻译成可由主机 处理器 160 执行的机器代码。Shockwave Flash(SWF) 文件不对应于能够被直接执行的机 器代码, 而是以中间字节码的形式被储存, 需要翻译成机器代码以运行在预期的平台上。 最 初, 这可能像是不利的, 但正是因为 SW。
32、F 文件不依赖于通过直接编译成机器代码的特定的 结构, 才使得相同的 SWF 文件能够通过利用适合各个所需的目标平台的 Flash 运行时环境 而被跨完全不同的平台使用, 类似Java。 这允许Flash应用程序被运行于多种多样的背景、 平台和配置, 但是, 由于使用解释性运行时环境的缘故, 有一些处理代价。而诸如动态编译 和适时 (just-in-time, JIT) 编译等技术能够减轻使用字节码而不是预编译的二进制所带 来的许多性能损失。 0057 对于多数用户, 最熟悉的 Flash 运行时环境是用于诸如 Internet Explorer 或 Firefox的网页浏览器的浏览器插件, 。
33、支持特定的平台或体系结构, 诸如Windows或Linux。 这允许 Flash 应用程序再现在网页浏览器的背景中。然而, 浏览器插件不是再现 Flash 的 唯一方法。例如, Adobe Integrated Runtime 或 Adobe AIR 提供一种跨平台的运行时环 境, 其支持 Flash, 但是着眼于本地安装的桌面应用程序而非网页浏览器中运行的程序。因 此, Adobe AIR 环境能够提供额外的特性, 其一般对于本地安装的桌面应用程序如本地或离 线数据储存可用。无论 Flash 运行时环境 174 是作为浏览器插件运行、 是被本地安装作为 说 明 书 CN 103336724 。
34、A 8 6/15 页 9 Adobe AIR、 还是代表一些可选择的应用程序范例, Flash 应用程序 175 都能够被支持。 0058 硬件设备 110 经由连接 145 可链接到主机系统 150, 连接 145 可以包括, 例如物理 上链接到连接器 142 和接受器 152 的通用串行总线 (USB) 电缆。在此实施方式中, 代理服 务器 163 可以包括用于在 Flash 二进制套接字 API 179 所使用的二进制套接字通信与串行 连接 API 139 所使用的 USB 串行连接之间的无缝翻译的机制。 0059 USB 仅仅是用于硬件设备连接的一个示例性协议, 并且可选择的实施方式可。
35、以使 用例如Firewire连接器, 或使用诸如Bluetooth或WiFi协议的无线传输。 如果连接145包 括物理电缆如 USB 或 Firewire, 那么连接 145 能够从主机系统 150 获取电力以操作硬件设 备110的组件。 在无线传输的情况下, 连接器142和接受器152可能会被无线接收器和发射 器取代, 连接 145 可代表无线射频信号, 并且电力可能通过具有插接站 (docking station) 的嵌入式可充电电池或一些其他方法来提供。 有线和无线连通性都还可能被提供有对电池 充电的有线连接。由于代理服务器 163 和串行连接 API 139 对于 Flash 应用程序。
36、 175 和硬 件应用程序 135 是模块化的, 所以新连通性协议支持能够容易被实施, 因为前述应用程序 不直接与连通性协议连接。 0060 一旦硬件设备 110 被提供了电力, 硬件应用程序 135 能够经由硬件 API 131 操纵 硬件系统 125, 硬件系统 125 包括环境监测系统 126、 机械控制系统 127 以及表示系统 128。 所提供的外围硬件系统仅仅是示例性的, 因为任意硬件可以被添加到硬件设备 110。环境 监测系统 126 可提供关于外部环境的不同的细节, 如触觉相互作用、 音频反馈和视频反馈, 其可以由触觉传感器、 扬声器和摄像机支持。机械控制系统 127 可通过控。
37、制伺服系统、 传动 装置、 发动机以及其他机械设备为硬件设备 110 的运动做准备。表示系统 128 可控制不同 的视听元件, 如 LCD 屏、 扬声器和 LED 灯。外部硬件 115 提供实际的硬件组件以支持硬件系 统 125, 包括用于监测的传感器 116、 用于运动的伺服系统 117 以及用于显示图像的显示装 置 118。 0061 硬件设备 110 还包括远程分布式方法 132 和分布式方法 136, 形成 RMI 系统的硬 件设备方面。而硬件应用程序 135 能够根据分布式方法 136 使用硬件 API 131 来控制硬 件系统 125, 或者发送远程分布式方法 132 以请求来自 。
38、Flash 应用程序 175 的服务。类似 地, Flash 应用程序 175 能够使用动作脚本硬件 API 171 来调用远程分布式方法 172 或接 收分布式方法 176, 这形成了前述 RMI 系统的 Flash 方面。串行器 133 和解串器 137 为硬 件设备 110 实行可能必要的、 不同的对象数据的变换, 如信号编组 (marshalling) 和解组 (unmarshalling)、 引用解析 (reference resolving) 以及其他操作。可移植的数据流使得 即使在不同的结构或环境的远程位置也可以是语义上相同的。例如, 相应的串行器 173 和 解串器 177 允。
39、许主机系统 150 与硬件设备 110 无缝通信对象数据, 即使主机系统 150 运行 在完全不同的结构上。 0062 Flash 应用程序 175 通过使用远程方法以驱动硬件系统 125 而非试图直接控制硬 件系统 125, 能够达到更加及时和准确的硬件控制。当硬件系统 125 需要以严格的定时容 差来驱动以有效地或完全地运行时, 尤其如此。例如, 伺服系统 117 可以由脉宽调制预期脉 冲信号以只有几毫秒的周期率来驱动。由于硬件设备 110 的嵌入式处理器 ( 图 1 中未显 示 ) 能够将其所有资源仅用于服务硬件应用程序 135, 因此, 如果硬件应用程序 135 被适当 开发, 则其能。
40、够支持有保证的及时的脉冲信号生成。 说 明 书 CN 103336724 A 9 7/15 页 10 0063 然而, Flash 应用程序 175 可以在如 Windows 的通用的多任务主机平台上运行, 其 设计成通过使用进程调度程序以同时容纳几个不同的应用程序来服务所有的执行任务。 因 此, Flash 应用程序 175 可能需要与其他任务竞争主机处理器 160 的关注。因此, 需要实时 服务的硬件设备 110 上的任务可能不会收到有保证的资源, 因为硬件中断或其他软件进程 可能抢占主机处理器 160。即使在主机系统 150 上有足够的资源可用以服务于时间关键的 任务, 但由于命令从 F。
41、lash 应用程序 175 发送到硬件系统 125 的协议开销, 可能会引进一些 延迟。在此延迟的期间, 用于硬件控制的关键的时间窗口可能已经消逝。 0064 另一方面, 诸如由嵌入式处理器提供的那些专用的主机外 (off-host) 的计算, 能 够提供用于细粒度 (fine-grained) 硬件控制的实时响应性。当开发硬件应用程序 135 时, 可针对硬件设备 110 中的嵌入式处理器的能力来优化方法, 以确保硬件系统 125 和相应的 外部硬件 115 在嵌入式处理器所提供的有限的 CPU 周期内被有效地驱动。由于嵌入式处理 器不需要像通用的处理器那样支持其他应用程序, 方法执行时间能。
42、够在外部硬件 115 所要 求的时间容差内被测量和优化。因此, 由硬件应用程序 135 所支持的远程方法能够保证用 于准确和有效的硬件控制的及时性。 0065 在 Flash 应用程序 175 能够调用远程方法以控制硬件系统 125 之前, 必须首先提 供对用于硬件设备 110 的分布式对象的引用, 其可以例如在通信握手过程的结束时被交 换, 或通过咨询名称目录服务而被获取。 一旦获取了所述分布式对象, 其公开或提供可以由 Flash 应用程序 175 调用的远程方法的接口, 在图 1 中示为远程分布式方法 172。这些远程 方法可例如允许环境监测系统 126 经由传感器 116 获取温度数据。
43、, 允许机械控制系统 127 经由伺服系统 117 移动一个对象, 以及允许表示系统 128 在显示装置 118 上显示图像。 0066 因此, Flash 应用程序 175 的开发者不必使自己关心硬件设备 110 的详细运作, 并 且能够简单地调用由动作脚本硬件 API 171 公开的远程方法, 其由例如在硬件设备 110 的 机器代码实施。类似地, 如果硬件设备 110 需要来自 Flash 应用程序 175 的、 待被完成的 某些信息或任务, 硬件设备 110 的开发者能够使用远程分布式方法 132, 而不是不得不理解 Flash应用程序175的错综复杂。 通过使用模块式开发的这种技术,。
44、 工作流程能够被分段和 独立地开发, 加快了交付日程并且控制了开发费用。 0067 虽然图1已经采用面向对象的RMI方式用于远程执行, , 但是也可以使用远程过程 调用 (RPC) 或其他提供远程执行的方法。也可以实施图 1 中未图示的更灵活的 RMI 方式, 例如支持可动态加载的类的 RMI 系统。目前, 只有对象引用被传递, 并且 API 实现被假设存 在于远程位置。可动态加载的类将允许硬件 API 容易地更新, 因为 API 实现可以按更新的 方法的需求被获取。 0068 然而, 由于硬件设备 110 的嵌入式处理器可能已经因费用和电力考虑而抑制了计 算资源, 复杂的 RMI 系统可能是。
45、不合乎要求的。待在硬件设备 110 上执行的方法一般会众 所周知且是不变的, 因为硬件系统 125 将可能不支持终端用户的硬件系统模块化的交换, 所以, 可能更为合理的是, 为硬件设备 110 建立嵌入式静态硬件 API, 使其适合于制造中将 包括的具体的硬件系统。然而, 所述静态硬件 API 还可能被储存在可擦写存储器部分, 如果 错误修正或额外的方法被开发用于硬件系统 125, 则允许硬件 API 仍然可被更新。 0069 Flash 运行时环境 174 能够通过主机系统 150 的网络协议栈, 例如传输控制协议 / 互联网协议 (TCP/IP) 协议栈, 来路由通信。由于 Flash 应。
46、用程序 175 仅能够直接寻址在 说 明 书 CN 103336724 A 10 8/15 页 11 Flash运行时环境174中本身支持的硬件, 而网络通信在Flash运行时环境174中是本身支 持的, 所以, Flash 应用程序 175 可改为利用网络通信来与硬件设备 110 通信。 0070 然而, 由于硬件设备 110 通过 USB 而非网络被连接到主机系统 150, 代理服务器 163 提供 Flash 应用程序 175 和硬件设备 110 之间的路由服务转换。代理服务器 163 可以 作为本地主机服务而执行, 截接通过指定的网络端口的通信传播。连接 145 建立之后, 在硬 件设。
47、备 110 和主机系统 150 之间的初始的握手可能导致安全服务 162 和代理服务器 163 从 硬件设备 110 被复制到主机存储器 170, 用于主机处理器 160 的进一步执行。然后 Flash 二 进制套接字API 179能够被配置为通过用于与硬件设备110通信的指定的网络端口与本地 主机通信, 代理服务器 163 无缝地处理二进制套接字数据和串行数据之间的转换。因此, 代 理服务器 163 通过利用 Flash 本身支持的网络通信能力, 桥接硬件设备 110 和 Flash 应用 程序 165 之间的通信缺口。 0071 允许 Flash 应用程序 175 发送和接收来自任意位置的。
48、数据, 会造成潜在的安全问 题, 尤其对于 DNS 绑定攻击, 所以不同的安全协议已经在 Flash 的较新的版本中被实施。特 别令人感兴趣的是套接字策略文件, 其呈现规则列表, 为套接字连接管理允许的网络端口 和主机。因此, 套接字策略文件能使得服务器可以拒绝来自某些主机或端口的访问, 但是 Flash 客户必须首先觉察到它们。 0072 因此, 在 Flash 运行时环境 174 允许 Flash 二进制套接字 API 179 通过所请求的 网络端口连接到服务器目的地之前, Flash 运行时环境 174 通过默认端口 843 自动向同一 服务器目的地的 IP 地址发出对套接字主策略文件的。
49、请求。即使服务器目的地和请求的主 机在相同的域, 此请求也被发送。可选择地, Flash 二进制套接字 API 179 能够明确指定一 个可选择的端口来请求安全策略。如果服务器目的地在超时周期内不提供响应, 或者如果 返回的套接字策略文件拒绝来自主机系统 150 或所请求的网络端口的访问, 那么 Flash 运 行时环境 174 将拒绝与服务器目的地的套接字通信, 并且 Flash 二进制套接字 API 179 可 以为原始请求返回一个错误代码。 0073 通过提供套接字策略文件形式的被适当格式化的安全策略, 在代理服务器 163 所 使用的网络端口上允许来自主机系统 150 的访问, 安全服务 162 可以满足 Flash 的以上的 安全特性。因此, Flash 运行时环境 174 被授予许可来通过代理服务器 163 管理的端口与 服务器目的地通信, 或者与主机系统 150 通信, 因为本地主机是一个身份参照 (identity reference)。这些许可仅仅是使得主机系统 150 和硬。