首页> 中国专利> 用于Flash应用程序的具有分布式对象的集成硬件平台的系统和方法

用于Flash应用程序的具有分布式对象的集成硬件平台的系统和方法

摘要

提供了用于Flash应用程序的具有分布式对象的集成硬件平台的系统和方法,用于提供集成硬件平台,以允许经由在主机系统上的Flash运行时环境中执行的Flash应用程序所使用的应用程序接口(API)的硬件控制。提供了计算机平台,其包括处理器、外围硬件、连接器设备以及存储器。所述存储器包括由用于Flash应用程序的API提供的用于远程方法的API实现、用于使得Flash应用程序和平台处理器之间能够通信的代理服务器、以及用于提供安全策略从而为与平台处理器的通信授予网络连接许可的安全服务。API远程方法调用允许Flash应用程序控制外围硬件,并且联网的服务器可管理远程调用以控制多个联网客户的平台硬件。

著录项

  • 公开/公告号CN103336724A

    专利类型发明专利

  • 公开/公告日2013-10-02

    原文格式PDF

  • 申请/专利权人 迪斯尼实业公司;

    申请/专利号CN201310089295.X

  • 发明设计人 乔纳森·罗斯;

    申请日2010-01-12

  • 分类号G06F9/54;H04L29/06;

  • 代理机构北京安信方达知识产权代理有限公司;

  • 代理人周靖

  • 地址 美国加利福尼亚州

  • 入库时间 2024-02-19 20:12:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-12-07

    授权

    授权

  • 2013-11-06

    实质审查的生效 IPC(主分类):G06F9/54 申请日:20100112

    实质审查的生效

  • 2013-10-02

    公开

    公开

说明书

本申请是申请日为2010年1月12日,申请号为201010002255.3,发 明名称为“用于Flash应用程序的具有分布式对象的集成硬件平台的系统 和方法”的申请的分案申请。

技术领域

本发明一般涉及数据和图形显示。更具体地,本发明涉及具有分布式 对象的Flash应用程序。

背景技术

对于丰富的多媒体互联网应用,Flash平台很受欢迎,其在多数主要 硬件和操作系统中具有高的浏览器渗透率和可用性。用户能够从个人电脑 到移动电话及视频游戏机的多种设备容易地运行Flash应用程序。越来越 多地,现代Flash应用程序正使用分布式对象以提供用户和服务器之间共 享的在线背景给用户。因此,例如在虚拟社区和在线游戏世界,用户能够 对其他用户产生持久改变的影响。例如,用户能够互相谈话,交易物品, 组队成组,以及进行其它的相互作用。另外,由于Flash平台的方便可得, 几乎在任何地方,无论是在家、办公室、网吧或机场候机楼,用户都能够 访问这些在线社区。

然而,互动只限于能够和Flash应用程序直接通信的设备。因此,人 类输入设备仅限于传统的键盘、诸如电脑鼠标的定位设备(pointing  devices)、网络摄像机以及在Flash中具有直接硬件支持的其它设备。另 外,Flash应用程序的输出一般限于在执行Flash应用程序的系统上播放 的视听内容。因此,在Flash应用程序中,很难支持诸如单独的设备上的 视听回放以及振动、物理对象的运动的特征。

虽然可直接连接到Flash的外围设备对于传统的应用可能是合适的, 但是与在线游戏和社区相互作用的更多的创新方式可能要求不在Flash中 实施的新的硬件支持。虽然这种新硬件可能容易由单独的硬件或软件支 持,但是用户会更喜欢技术麻烦最少的解决方案。Flash应用程序能够方 便地在互联网上被访问,并且在许多系统中,一般预装了或可容易获得 Flash环境,使得用户免去了使用专用的游戏硬件或安装额外的游戏软件 的麻烦,使用专用的游戏硬件或安装额外的游戏软件在公共环境中尤其不 切实际。由于Flash平台的方便可得,因而用户能够从家里、办公室或在 旅行期间访问相同的在线账户。然而,对于直接硬件访问,Flash平台只 提供有限的支持,限制了用户能够与Flash应用程序相互作用的方式。

发明内容

本发明提供系统和方法来克服本领域中的缺陷和不足,该系统和方法 用于用户与可广泛访问的Flash平台相互作用,以提供在共享在线环境下 的互动体验,突破了当前对在Flash应用程序中可直接访问的硬件的限制。

提供系统和方法,其提供用于Flash应用程序的具有分布式对象的集 成硬件平台,该平台大体上如在至少一个附图中所示和/或关于至少一个 附图所描述。

本发明提供一种由计算机平台的平台处理器使用以经由用于Flash应 用程序的应用程序接口(API)来提供硬件控制的系统,所述Flash应用 程序在具有主机处理器和主机存储器的主机系统上的Flash运行时环境中 执行,所述计算机平台包括:

位于所述主机系统之外的硬件设备;

可链接到所述主机系统的连接器设备;以及

平台存储器,其具有由所述Flash应用程序的所述API提供的用于远 程方法的API实现、使得所述Flash应用程序和所述平台处理器之间能够 通信的代理服务器、以及用于提供安全策略来为与所述平台处理器的通信 授予网络连接许可的安全服务;

所述系统包括:

用于通过所述连接器设备建立与所述主机系统的链接的装置;

用于启动所述安全服务和所述代理服务器的执行的装置;

用于从所述Flash应用程序接收由所述代理服务器的执行所中继 的API远程方法调用的装置;以及

用于执行由所述API远程方法调用所指示的所述API实现以控 制所述硬件设备的装置。

根据本发明所提供的系统,其中所述平台处理器还被配置为向一服务 器发送所述API远程方法调用。

根据本发明所提供的系统,其中所述服务器处理所述API远程方法 调用,以分配一API远程方法调用到第二个主机系统。

根据本发明所提供的系统,其中所分配的API远程方法调用由在所 述第二个主机系统上执行的Flash应用程序使用,以控制链接到所述第二 个主机系统的计算机平台的硬件设备。

根据本发明所提供的系统,其中所述平台处理器被配置为将安全服务 代码和代理服务器代码复制到所述主机存储器,并且其中所述平台处理器 被配置为使得所述主机处理器执行来自所述主机存储器的所述安全服务 代码和所述代理服务器代码。

根据本发明所提供的系统,其中所述连接器设备被配置为使用通用串 行总线(USB)。

根据本发明所提供的系统,其中所述硬件设备被配置为使用提供所述 硬件设备的物理运动的机械控制系统。

根据本发明所提供的系统,其中所述硬件设备被配置为使用表示系统 来控制视听元件。

根据本发明所提供的系统,其中所述硬件设备被配置为使用环境监测 系统以探测和记录外部信号来与所述计算机平台相互作用。

根据本发明所提供的系统,其中所述环境监测系统包括用于探测和记 录与所述计算机平台的触觉相互作用的触觉传感器。

根据本发明所提供的系统,其中所述环境监测系统包括用于音频记录 的扩音器。

根据本发明所提供的系统,其中所述环境监测系统包括用于视频记录 的摄像机。

本发明提供一种由计算机平台的平台处理器使用以经由Flash应用程 序使用的应用程序接口(API)来提供硬件控制的方法,所述Flash应用 程序在具有主机处理器和主机存储器的主机系统上的Flash运行时环境中 执行,所述计算机平台包括位于所述主机系统之外的硬件设备、可链接到 所述主机系统的连接器设备、以及平台存储器,所述平台存储器具有由所 述Flash应用程序的所述API提供的用于远程方法的API实现、用于使得 所述Flash应用程序和所述平台处理器之间能够通信的代理服务器、以及 用于提供安全策略来为与所述平台处理器的通信授予网络连接许可的安 全服务,所述方法包括:

通过所述连接器设备建立与所述主机系统的链接;

启动所述安全服务和所述代理服务器的执行;

从所述Flash应用程序接收由所述代理服务器的执行所中继的API远 程方法调用;以及

执行由所述API远程方法调用所指示的所述API实现以控制所述硬 件设备。

根据本发明所提供的方法,其中所述平台处理器还被配置为向一服务 器发送所述API远程方法调用。

根据本发明所提供的方法,其中所述服务器处理所述API远程方法 调用,以分配一API远程方法调用到第二个主机系统。

根据本发明所提供的方法,其中所分配的API远程方法调用由在所 述第二个主机系统上执行的Flash应用程序使用,以控制链接到所述第二 个主机系统的计算机平台的硬件设备。

根据本发明所提供的方法,其中所述平台处理器被配置为将安全服务 代码和代理服务器代码复制到所述主机存储器,并且其中所述平台处理器 被配置为使得所述主机处理器执行来自所述主机存储器的所述安全服务 代码和所述代理服务器代码。

根据本发明所提供的方法,其中所述连接器设备被配置为使用通用串 行总线(USB)。

根据本发明所提供的方法,其中所述硬件设备被配置为使用环境监测 系统以探测和记录外部信号来与所述计算机平台相互作用。

本发明还提供一种用于控制由具有平台处理器的计算机平台提供且 位于主机系统之外的硬件设备的方法,所述方法供在所述主机系统上的 Flash运行时环境中执行的Flash应用程序使用,所述平台处理器提供用 于使所述Flash应用程序和所述平台处理器之间能够通信的代理服务器、 以及用于提供安全策略从而为与所述平台处理器通信授予网络连接许可 的安全服务的执行,所述方法包括:

向所述安全服务的执行发起对所述安全策略的请求;

确认所述Flash运行时环境已经为与所述平台处理器的通信授予许 可;以及

通过网络连接发送API远程方法调用到所述代理服务器的执行,以 控制所述硬件设备。

附图说明

在审阅了下面的详细描述和附图后,本发明的特征和优点对于本领域 的普通技术人员将变得更加明显,其中:

图1呈现了根据本发明的一种实施方式的集成硬件平台环境的框图;

图2a呈现了根据本发明的一种实施方式,描述用于所述集成硬件平 台的接口生成工作流程的流程图;

图2b呈现了根据本发明的一种实施方式,用于由Flash开发者所利 用的所述集成硬件平台的Flash开发环境的框图;

图2c呈现了根据本发明的一种实施方式,用于由硬件开发者所利用 的所述集成硬件平台的硬件开发环境的框图;

图3呈现了根据本发明的一种实施方式,具有分布式对象的集成硬件 平台环境的框图;以及

图4示出了根据本发明的一种实施方式描述步骤的流程图,通过这些 步骤,集成硬件平台中的硬件设备的处理器经由用于Flash应用程序的应 用程序接口(API)来提供硬件控制。

具体实施方式

本申请是针对用于Flash的具有分布式对象的集成硬件平台的一种系 统和方法。下面的描述包含有关本发明的实施的具体信息。本领域的技术 人员将会意识到,本发明可以用与本申请具体讨论的方式所不同的方式来 实施。此外,为了不使本发明模糊,本发明的一些具体细节未被讨论。本 申请中未描述的具体细节在本领域的普通技术人员的知识范围之内。本申 请的附图及其伴随的详细描述仅针对本发明的示例性实施方式。为保持简 洁,使用本发明的原则的本发明的其他实施方式在本申请中未被具体描 述,且未由本发明的附图具体图解。

图1呈现了根据本发明的一种实施方式的集成硬件平台环境的框图。 环境100包括硬件设备110和主机系统150。硬件设备110包括外部硬件 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之间的数据通信。 主机系统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。

从一个高层次的角度看,环境100允许主机系统150与连接的硬件设 备110相互作用。主机系统150经由主机处理器160运行Flash应用程序 175,该Flash应用程序可以进一步连接到由游戏服务器的分布式在线服 务所支持的联网在线游戏。除了游戏,Flash应用程序175还可以支持任 何其他类型的分布式在线应用程序,如虚拟世界、业务合作、社会网络或 电子商务。

为了简便,图1仅描述了单个主机系统,且忽略了关于所述游戏服务 器的细节,其在下面的图3中以更多细节来描述。此外,图1仅描述了连 接到主机系统150的单个硬件设备,但是可选择的实施方式可以允许并行 访问在运行Flash应用程序的单个主机系统上的许多硬件设备。例如, Flash应用程序175可能包括一个赛车游戏,允许多个编号和类型的硬件 设备如方向盘和踏板连接到主机系统150,以分屏幕视频显示,以容纳多 个游戏者。然后Flash应用程序175能够被设计成探测和利用所有连接的 方向盘和踏板,并且代理服务器163能够相应地配置为在Flash应用程序 175和多个硬件设备之间适当地按规定路线发送通信。这种多个硬件设备 特性还可以与在线游戏服务器结合,以提供在硬件设备和Flash应用程序 之间的多对多通信,例如允许在线赛车,其中多个参加的主机系统的每一 个都能够容纳一个或几个游戏者,这取决于连接到每一个主机系统的硬件 设备的数量。然而,为便于简化例子和提高可读性,本申请将集中于只有 单个硬件设备连接到主机系统的实施方式。

硬件设备110可以提供新颖的特性例如物理运动、环境监测、次要显 示装置或扬声器以及其他硬件能力给Flash应用程序175,其对于标准的 Flash平台并非可用。通过此额外的硬件,与主机系统150的相互作用被 扩展到Flash运行时环境174的本身能力和主机系统150的标准支持的硬 件能力之外。通过利用硬件应用程序接口(API)131实施RMI(远程方 法调用),Flash应用程序175能够远程控制硬件设备110的硬件系统125, 或提供硬件设备110所请求的数据。类似地,在相反的方向,动作脚本硬 件API 171允许硬件设备110远程控制Flash应用程序175或返回所请求 的值。此外,图1中所省略的分布式对象API,通过与游戏服务器通信, 可以允许Flash应用程序175与连接到其他主机系统的其他远程硬件设备 联接。

主机系统150可能包括个人计算机、视频游戏机、移动电话或能运行 所述Flash平台的任意其他设备。主机系统150可能以前已经经由网页浏 览器访问过网页服务器,以通过诸如互联网的网络下载Flash应用程序 175。然后Flash应用程序175可以在Flash运行时环境174中执行,该环 境可包括提供Flash播放器支持的网页浏览器插件。

运行时环境174提供一种环境,其中Flash应用程序175能够被翻译 成可由主机处理器160执行的机器代码。Shockwave Flash(SWF)文件不对 应于能够被直接执行的机器代码,而是以中间字节码的形式被储存,需要 翻译成机器代码以运行在预期的平台上。最初,这可能像是不利的,但正 是因为SWF文件不依赖于通过直接编译成机器代码的特定的结构,才使 得相同的SWF文件能够通过利用适合各个所需的目标平台的Flash运行 时环境而被跨完全不同的平台使用,类似Java。这允许Flash应用程序被 运行于多种多样的背景、平台和配置,但是,由于使用解释性运行时环境 的缘故,有一些处理代价。而诸如动态编译和适时(just-in-time,JIT)编 译等技术能够减轻使用字节码而不是预编译的二进制所带来的许多性能 损失。

对于多数用户,最熟悉的Flash运行时环境是用于诸如Internet  Explorer或Firefox的网页浏览器的浏览器插件,支持特定的平台或体系 结构,诸如Windows或Linux。这允许Flash应用程序再现在网页浏览器 的背景中。然而,浏览器插件不是再现Flash的唯一方法。例如,Adobe  Integrated Runtime或Adobe AIR提供一种跨平台的运行时环境,其支持 Flash,但是着眼于本地安装的桌面应用程序而非网页浏览器中运行的程 序。因此,Adobe AIR环境能够提供额外的特性,其一般对于本地安装的 桌面应用程序如本地或离线数据储存可用。无论Flash运行时环境174是 作为浏览器插件运行、是被本地安装作为Adobe AIR、还是代表一些可选 择的应用程序范例,Flash应用程序175都能够被支持。

硬件设备110经由连接145可链接到主机系统150,连接145可以包 括,例如物理上链接到连接器142和接受器152的通用串行总线(USB) 电缆。在此实施方式中,代理服务器163可以包括用于在Flash二进制套 接字API 179所使用的二进制套接字通信与串行连接API 139所使用的 USB串行连接之间的无缝翻译的机制。

USB仅仅是用于硬件设备连接的一个示例性协议,并且可选择的实 施方式可以使用例如Firewire连接器,或使用诸如Bluetooth或WiFi协议 的无线传输。如果连接145包括物理电缆如USB或Firewire,那么连接 145能够从主机系统150获取电力以操作硬件设备110的组件。在无线传 输的情况下,连接器142和接受器152可能会被无线接收器和发射器取代, 连接145可代表无线射频信号,并且电力可能通过具有插接站(docking  station)的嵌入式可充电电池或一些其他方法来提供。有线和无线连通性 都还可能被提供有对电池充电的有线连接。由于代理服务器163和串行连 接API 139对于Flash应用程序175和硬件应用程序135是模块化的,所 以新连通性协议支持能够容易被实施,因为前述应用程序不直接与连通性 协议连接。

一旦硬件设备110被提供了电力,硬件应用程序135能够经由硬件 API 131操纵硬件系统125,硬件系统125包括环境监测系统126、机械 控制系统127以及表示系统128。所提供的外围硬件系统仅仅是示例性的, 因为任意硬件可以被添加到硬件设备110。环境监测系统126可提供关于 外部环境的不同的细节,如触觉相互作用、音频反馈和视频反馈,其可以 由触觉传感器、扬声器和摄像机支持。机械控制系统127可通过控制伺服 系统、传动装置、发动机以及其他机械设备为硬件设备110的运动做准备。 表示系统128可控制不同的视听元件,如LCD屏、扬声器和LED灯。外 部硬件115提供实际的硬件组件以支持硬件系统125,包括用于监测的传 感器116、用于运动的伺服系统117以及用于显示图像的显示装置118。

硬件设备110还包括远程分布式方法132和分布式方法136,形成 RMI系统的硬件设备方面。而硬件应用程序135能够根据分布式方法136 使用硬件API 131来控制硬件系统125,或者发送远程分布式方法132以 请求来自Flash应用程序175的服务。类似地,Flash应用程序175能够 使用动作脚本硬件API 171来调用远程分布式方法172或接收分布式方法 176,这形成了前述RMI系统的Flash方面。串行器133和解串器137为 硬件设备110实行可能必要的、不同的对象数据的变换,如信号编组 (marshalling)和解组(unmarshalling)、引用解析(reference resolving)以及 其他操作。可移植的数据流使得即使在不同的结构或环境的远程位置也可 以是语义上相同的。例如,相应的串行器173和解串器177允许主机系统 150与硬件设备110无缝通信对象数据,即使主机系统150运行在完全不 同的结构上。

Flash应用程序175通过使用远程方法以驱动硬件系统125而非试图 直接控制硬件系统125,能够达到更加及时和准确的硬件控制。当硬件系 统125需要以严格的定时容差来驱动以有效地或完全地运行时,尤其如 此。例如,伺服系统117可以由脉宽调制预期脉冲信号以只有几毫秒的周 期率来驱动。由于硬件设备110的嵌入式处理器(图1中未显示)能够将 其所有资源仅用于服务硬件应用程序135,因此,如果硬件应用程序135 被适当开发,则其能够支持有保证的及时的脉冲信号生成。

然而,Flash应用程序175可以在如Windows的通用的多任务主机平 台上运行,其设计成通过使用进程调度程序以同时容纳几个不同的应用程 序来服务所有的执行任务。因此,Flash应用程序175可能需要与其他任 务竞争主机处理器160的关注。因此,需要实时服务的硬件设备110上的 任务可能不会收到有保证的资源,因为硬件中断或其他软件进程可能抢占 主机处理器160。即使在主机系统150上有足够的资源可用以服务于时间 关键的任务,但由于命令从Flash应用程序175发送到硬件系统125的协 议开销,可能会引进一些延迟。在此延迟的期间,用于硬件控制的关键的 时间窗口可能已经消逝。

另一方面,诸如由嵌入式处理器提供的那些专用的主机外(off-host) 的计算,能够提供用于细粒度(fine-grained)硬件控制的实时响应性。当 开发硬件应用程序135时,可针对硬件设备110中的嵌入式处理器的能力 来优化方法,以确保硬件系统125和相应的外部硬件115在嵌入式处理器 所提供的有限的CPU周期内被有效地驱动。由于嵌入式处理器不需要像 通用的处理器那样支持其他应用程序,方法执行时间能够在外部硬件115 所要求的时间容差内被测量和优化。因此,由硬件应用程序135所支持的 远程方法能够保证用于准确和有效的硬件控制的及时性。

在Flash应用程序175能够调用远程方法以控制硬件系统125之前, 必须首先提供对用于硬件设备110的分布式对象的引用,其可以例如在通 信握手过程的结束时被交换,或通过咨询名称目录服务而被获取。一旦获 取了所述分布式对象,其公开或提供可以由Flash应用程序175调用的远 程方法的接口,在图1中示为远程分布式方法172。这些远程方法可例如 允许环境监测系统126经由传感器116获取温度数据,允许机械控制系统 127经由伺服系统117移动一个对象,以及允许表示系统128在显示装置 118上显示图像。

因此,Flash应用程序175的开发者不必使自己关心硬件设备110的 详细运作,并且能够简单地调用由动作脚本硬件API 171公开的远程方 法,其由例如在硬件设备110的机器代码实施。类似地,如果硬件设备 110需要来自Flash应用程序175的、待被完成的某些信息或任务,硬件 设备110的开发者能够使用远程分布式方法132,而不是不得不理解Flash 应用程序175的错综复杂。通过使用模块式开发的这种技术,工作流程能 够被分段和独立地开发,加快了交付日程并且控制了开发费用。

虽然图1已经采用面向对象的RMI方式用于远程执行,,但是也可以 使用远程过程调用(RPC)或其他提供远程执行的方法。也可以实施图1 中未图示的更灵活的RMI方式,例如支持可动态加载的类的RMI系统。 目前,只有对象引用被传递,并且API实现被假设存在于远程位置。可 动态加载的类将允许硬件API容易地更新,因为API实现可以按更新的 方法的需求被获取。

然而,由于硬件设备110的嵌入式处理器可能已经因费用和电力考虑 而抑制了计算资源,复杂的RMI系统可能是不合乎要求的。待在硬件设 备110上执行的方法一般会众所周知且是不变的,因为硬件系统125将可 能不支持终端用户的硬件系统模块化的交换,所以,可能更为合理的是, 为硬件设备110建立嵌入式静态硬件API,使其适合于制造中将包括的具 体的硬件系统。然而,所述静态硬件API还可能被储存在可擦写存储器 部分,如果错误修正或额外的方法被开发用于硬件系统125,则允许硬件 API仍然可被更新。

Flash运行时环境174能够通过主机系统150的网络协议栈,例如传 输控制协议/互联网协议(TCP/IP)协议栈,来路由通信。由于Flash应用 程序175仅能够直接寻址在Flash运行时环境174中本身支持的硬件,而 网络通信在Flash运行时环境174中是本身支持的,所以,Flash应用程 序175可改为利用网络通信来与硬件设备110通信。

然而,由于硬件设备110通过USB而非网络被连接到主机系统150, 代理服务器163提供Flash应用程序175和硬件设备110之间的路由服务 转换。代理服务器163可以作为本地主机服务而执行,截接通过指定的网 络端口的通信传播。连接145建立之后,在硬件设备110和主机系统150 之间的初始的握手可能导致安全服务162和代理服务器163从硬件设备 110被复制到主机存储器170,用于主机处理器160的进一步执行。然后 Flash二进制套接字API 179能够被配置为通过用于与硬件设备110通信 的指定的网络端口与本地主机通信,代理服务器163无缝地处理二进制套 接字数据和串行数据之间的转换。因此,代理服务器163通过利用Flash 本身支持的网络通信能力,桥接硬件设备110和Flash应用程序165之间 的通信缺口。

允许Flash应用程序175发送和接收来自任意位置的数据,会造成潜 在的安全问题,尤其对于DNS绑定攻击,所以不同的安全协议已经在 Flash的较新的版本中被实施。特别令人感兴趣的是套接字策略文件,其 呈现规则列表,为套接字连接管理允许的网络端口和主机。因此,套接字 策略文件能使得服务器可以拒绝来自某些主机或端口的访问,但是Flash 客户必须首先觉察到它们。

因此,在Flash运行时环境174允许Flash二进制套接字API 179通 过所请求的网络端口连接到服务器目的地之前,Flash运行时环境174通 过默认端口843自动向同一服务器目的地的IP地址发出对套接字主策略 文件的请求。即使服务器目的地和请求的主机在相同的域,此请求也被发 送。可选择地,Flash二进制套接字API 179能够明确指定一个可选择的 端口来请求安全策略。如果服务器目的地在超时周期内不提供响应,或者 如果返回的套接字策略文件拒绝来自主机系统150或所请求的网络端口 的访问,那么Flash运行时环境174将拒绝与服务器目的地的套接字通信, 并且Flash二进制套接字API 179可以为原始请求返回一个错误代码。

通过提供套接字策略文件形式的被适当格式化的安全策略,在代理服 务器163所使用的网络端口上允许来自主机系统150的访问,安全服务 162可以满足Flash的以上的安全特性。因此,Flash运行时环境174被授 予许可来通过代理服务器163管理的端口与服务器目的地通信,或者与主 机系统150通信,因为本地主机是一个身份参照(identity reference)。这些 许可仅仅是使得主机系统150和硬件设备110之间能够相互通信的最少数 量的特权,并且安全服务162能够例如返回更广阔的套接字策略文件,允 许从任何主机或任何端口访问。

虽然套接字策略文件指定用于套接字通信的许可,但是套接字元策略 指定访问套接字策略文件自身的许可。套接字元策略可以仅仅被限定在从 默认端口843提供的主套接字策略文件中。然而,由于默认的元策略允许 从服务器目的地上的任何端口和任何位置访问套接字策略,所以一般不需 要指定一个元策略,因为“所有”设置是默认的。此外,默认的套接字元 策略预计对于Flash的未来版本仍然保持“所有”。

虽然安全服务162和代理服务器163允许Flash应用程序175与硬件 设备110通信,但是其需要由主机处理器160执行以提供这种通信服务。 虽然传统的本地安装的软件通过安装本地服务或专门的驱动程序能够很 普通地完成这一点,但是在Flash应用程序的背景下,此情况可能不那么 明显。

一种可能是在连接145一建立时就使用握手过程,这启动执行安全服 务162和代理服务器163。此握手过程可能例如依靠于呈现作为一种公共 的HID(人机接口设备)的硬件设备110,使得主机系统150能够自动支 持不具有专门的驱动程序的硬件设备110,并且Flash应用程序175能够 简单地轮询硬件设备110的存在,以启动握手过程。以这种方式,用户能 够简单地连接硬件设备110,用于在Flash应用程序175中立即使用,而 无需处理复杂的软件或驱动程序的安装。其他实施方式可能使用例如自动 执行机制如Windows的Autorun,或可下载的驱动插件如Java或ActiveX 小部件(widget)。然而,由于用户可能不得不面对的各种安全告警和提示, 使用由主机系统150自动支持的一般公认的接口的实施方式可能是优选 的,因为这种接口一般能够在没有用户介入的情况下运行。未来的主机平 台可能提供可信计算,使得可以允许自动执行来自合法发布者的可信代 码,从而可能提供更加灵活和精细的系统。

出于本申请的目的,假设握手过程能够被实施,以在主机处理器160 上开始安全服务162和代理服务器163的执行。作为备用,如果用于硬件 设备110的自动支持的不同尝试失败了,可以提供手动软件安装指南或软 件下载给终端用户。一旦驱动程序或软件被手动安装,其可能被配置为在 主机系统150一起动时就自动执行,减轻手动安装的一些麻烦,因为用户 仅需要完成该过程一次。

移动到图2a,图2a呈现了根据本发明的一种实施方式,描述用于所 述集成硬件平台的接口生成工作流程的流程图。流程图200包括API契 约文件(contract file)290、RMI接口生成器293、Flash二进制套接字 API 279、动作脚本硬件API 271、C/C++串行连接API 239、串行器233、 解串器237、硬件API 231、远程分布式方法232以及分布式方法236。 API契约文件290包括硬件API定义291和Flash API定义292。RMI接 口生成器293包括Flash动作脚本接口构建器(builder)294和硬件C/C++ 接口构建器295。动作脚本硬件API 271包括串行器273、解串器277、 远程分布式方法272以及分布式方法276。

动作脚本硬件API 271对应于图1中的动作脚本硬件API 171,其包 括对应于串行器173的串行器273、对应于解串器177的解串器277、对 应于远程分布式方法172的远程分布式方法272、以及对应于分布式方法 176的分布式方法276。Flash二进制套接字API 279对应于Flash二进制 套接字API 179。C/C++串行连接API 239对应于串行连接API 139。串行 器233对应于串行器133。解串器237对应于解串器137。硬件API 231 对应于硬件API 131。远程分布式方法232对应于远程分布式方法132。 分布式方法236对应于分布式方法136。

在流程图200中可以发现如图1所描述的使用用于远程执行的RMI 方式的一些开发益处。在写实施代码之前,可以提前结合关于Flash远程 方法或Flash API定义292和硬件远程方法或硬件API定义291两者将如 何运作的协定标准来准备API契约文件290。利用通过RMI接口生成器 293处理API契约文件290的结果、以及代替远端现行工作(WIP)API 方法的模拟测试系统的开发,开发团队能够独立地开发Flash动作脚本或 硬件C/C++,而不等待或依靠其他开发团队的进展。只要开发者遵循由 API契约文件290预定的规范,那么独立开发的代码的后来的集成可以没 有任何问题地一起无缝地工作。此外,通过允许RMI接口生成器293产 生处理RMI支持和网络或串行总线通信的细节的API模块,可以避免可 能起因于手动编码这些API模块的人类编程错误,并且开发者能够将其 注意力集中于实施用于主要的Flash或C/C++应用程序的代码。

起因于API契约文件290的编程代码的增加的模块化和抽象化也促 进了更容易读、开发、调试和维护的更高级的程序设计风格,长期来说减 少了开发时间和费用。虽然具有大量的嵌入式低级程序代码和冗余码的专 门(ad-hoc)的程序设计风格可以提供更快的初始开发时期,但是,对于 任何中等大小的项目,例如在线游戏,在缺少代码的逻辑模块化的情况下, 代码维护可能迅速变成不利条件,而由API契约文件290所提供的清晰 定义的API能够促使逻辑模块化和代码重用。

检查RMI接口生成器293,Flash动作脚本接口构建器294和硬件 C/C++接口构建器295两者都生成图1中已经观察到的不同的API模块。 RMI接口生成器293能够从API契约文件290取得一般描述的API定义, 并且将其转换成以用于特定的目标平台的代码描述的API模块,或图2a 情况下的Flash和C/C++。RMI接口生成器293还可以被配置为通过替换 接口构建器而为其它目标平台生成API模块,但是C/C++对于低级系统 编程是常用的编程语言,并且也可适合产生用于测试硬件设备210的机器 代码。常规的RMI接口生成器293可能被内部开发,或者API契约文件 290可能使用现有的接口描述语言来表达,并且现有的跨平台RMI接口 生成器293可以被用来加快开发。

转向图2b,图2b呈现了根据本发明的一种实施方式,用于由Flash 开发者所利用的所述集成硬件平台的Flash开发环境的框图。图2b包括 测试主机系统250,其包括WIP(现行工作)Flash应用程序275、动作脚 本硬件271、Flash二进制套接字API 279、以及硬件设备模拟器296。测 试主机系统250可以对应于图1中的主机系统150的简化版本。

Flash二进制套接字API 279和动作脚本硬件API 271显示为灰色以 强调这些API模块已经通过RMI接口生成器293生成,并且不需要来自 开发者的进一步的相互作用。因此,Flash开发团队能够将开发集中于 WIP Flash应用程序275、或WIP Flash应用程序275将在客户方面支持的 在线游戏,包括分布式方法276的实施。

由于独立的团队可能正在开发硬件设备,硬件设备模拟器296作为替 代物来代替,用于开发目的。硬件设备模拟器296不一定需要准确地模拟 硬件设备。例如硬件设备模拟器296能够实施方法以返回预定的测试值, 或其可能更准确模仿实际硬件设备的响应,这取决于可用的开发资源、产 品时间表以及其他开发团队的进展。现行工作硬件设备可能也被使用,其 中未开发好的远程方法被指向硬件设备模拟器296而已开发好的远程方 法被指向WIP硬件。

类似地,独立的网络和服务器团队可能开发项目的分布式对象部分。 通过使用用于在线游戏的服务器模拟器,即使没有工作网络基础结构,对 于网络互操作性,测试主机系统250然后仍然能够被测试。相反地,如果 这种网络基础结构确实存在,那么可针对实际联网的硬件,对测试主机系 统250进行测试。如果这种测试确实发生了,那么可能需要进行一些处理 以阻止一般公众试图访问图2b中的测试组件。例如,阻止公众访问的防 火墙可能被安装用于测试组件,或者本地网络可能与公共互联网隔离。

移动到图2c,图2c呈现了根据本发明的一种实施方式,由硬件设备 开发者所利用的硬件开发环境的框图。图2c包括测试硬件设备210,其 包括硬件API 231、原型(prototype)硬件系统225、WIP硬件应用程序235、 远程分布式方法232、串行器233、分布式方法236、解串器237、C/C++ 串行连接API 239以及主机系统模拟器297。测试硬件设备210可以对应 于图1中的硬件设备110的简化版本。原型硬件系统225可以对应于硬件 系统125。

与图2b类似,几个API元件显示为灰色以表明它们已经由RMI接口 生成器293准备,其包括硬件API 231、远程分布式方法232、串行器233、 分布式方法236、解串器237以及C/C++串行连接API 239。因此,硬件 开发团队能够将开发集中于WIP硬件应用程序235、或者与原型硬件系 统225联接的主要硬件控制程序、以及分布式方法236的实施。

由于独立的Flash开发团队可能正在开发Flash应用程序,出于开发 的目的,主机系统模拟器297作为主机系统来代替,执行Flash应用程序。 与图2b中的硬件设备模拟器296类似,主机系统模拟器297不一定需要 准确模拟执行Flash应用程序的主机系统。例如,主机系统模拟器297可 以实施方法以返回预定的测试值,或者其可以更准确模仿实际Flash应用 程序的响应,这取决于可用的开发资源、产品时间表以及其他开发团队的 进展。也可使用测试主机系统上的现行工作Flash应用程序,其中未开发 好的远程方法被指向主机系统模拟器297而已开发好的远程方法被指向 WIP Flash应用程序。

类似地,开发原型硬件系统225可与开发驱动硬件系统的软件分开。 集成电路和电子工程团队可能独立于原型硬件系统225工作,而嵌入式系 统编程团队工作于用于驱动测试硬件设备210的软件,两个团队预先达成 关于原型硬件系统225将怎样经由硬件API 231与WIP硬件应用235接 口的协议。

因此,通过分离逻辑接口,模拟缺失或在开发部分中,以及利用自动 化预处理工具如图2a中的RMI接口生成器293,独立并行开发可以通过 很少的预先计划例如API契约文件290的准备来进行。通过周期地重建 独立开发的现行工作组件和互操作性测试,可能要求接口修正或实施改变 的任何问题可以在变成主要问题之前早期得到解决。因此模块化编程方式 的优点能够被保留而不牺牲整体方式的测试益处。

图3呈现了根据本发明的一种实施方式,具有分布式对象的集成硬件 平台环境的框图。分布式环境300包括硬件设备310a、硬件设备310b、 硬件设备310c、主机系统350a、主机系统350b、主机系统350c以及游 戏服务器385。硬件设备310a包括串行API 339、硬件应用程序335a、环 境监测系统326a、表示系统328a、触摸敏感的“猫毛”316a以及扬声器 318a。硬件设备310b包括串行API 339、硬件应用程序335b、环境监测 系统326b、机械控制系统327b、触摸敏感的“狗毛”316b以及伺服系统 317b。硬件设备310c包括串行API 339、硬件应用程序335c、环境监测 系统326c、表示系统328c、扩音器316c以及扬声器318c。主机系统350a 到350c的每一个都包括分布式对象API 389、Flash应用程序375、Flash 二进制套接字API 379以及代理服务器363。连接345a到345c分别将主 机系统350a到350c与硬件设备310a到310c相连接。

虽然每一个主机系统包括相同的应用程序代码,但是每一个主机系统 都有独立的主机处理器(图3中省略)来独立地运行应用程序代码。正如 图1,每一个主机客户可能已经从网页服务器下载了应用程序代码。每一 个硬件设备还包含特别定制的用于每一个硬件设备的特定硬件配置的硬 件应用程序,每一个硬件应用程序在图3中省略的嵌入式处理器上执行。 几个其他的细节在图3中也省略了,例如用于实施RMI的一些细节,以 呈现更加简明易懂的示例性分布式系统的图示。如果需要,对于额外的细 节,可参考图1和图2。

硬件设备310a到310c的每一个都对应于图1的硬件设备110。串 行API 339对应于串行连接API 139。硬件应用程序335a到335c的每一 个都对应于硬件应用程序135。环境监测系统326a到326c的每一个都对 应于环境监测系统126。机械控制系统327b对应于机械控制系统127。表 示系统328a到表示系统328c每一个都对应于表示系统128。主机系统 350a到350c的每一个都对应于主机系统150。Flash应用程序375对应于 Flash应用程序175。Flash二进制套接字API 379对应于Flash二进制套 接字API 179。代理服务器363对应于代理服务器163。

游戏服务器385有可能经由分布式在线服务386连接到几个主机系统 以支持共享在线环境。例如,游戏服务器385可能主管一个在线世界,其 中用户由Flash应用程序375上的动物角色代表。每一个主机系统的用户 可购买代表他们希望在线玩的动物的硬件设备。因此主机系统350a的用 户可能购买一个猫型的硬件设备作为硬件设备310a,而主机系统350b的 用户可能购买一个狗型的硬件设备作为硬件设备310b,并且主机系统 350c的用户可能购买一个鸟型的硬件设备作为硬件设备310c,由图3中 的图标显示。然后每一个主机系统能够询问其各自的硬件设备以获取用于 执行远程方法的数据对象,并且可以通过一网络(未在图3中显示)发送 这些数据对象到游戏服务器385。然后分布式在线服务386能够监测和管 理每一个连接的主机系统,允许主机系统通过分布式对象API 389访问连 接到其他主机系统的硬件设备。

虽然每一个硬件设备的外观可能不同,但是内部组件可能都类似图1 中的硬件设备110,具有一些不同硬件能力。每一个平台都装备有环境监 测系统,但其被连接到不同的硬件。对于环境监测系统326a,对触摸敏 感的“猫毛”316a进行硬件访问。这可能包括猫毛的人工外层,其配置 成探测抚摸和其他触摸相互作用。因此,主机系统350a的用户可能抚摸 触摸敏感的“猫毛”316a,其生成硬件信号以被发送到环境监测系统326a, 如果需要,其被依次传递到硬件应用程序335a用于进一步处理。以相似 的方式,触摸敏感的“狗毛”316b可能提供相同的功能,并且扩音器316c 可能记录在主机系统350处的用户的说话的声音而非探测触觉相互作用。

每一个硬件设备还包含一些硬件系统以允许动物对相互作用“作出反 应”。例如,提供到扬声器318a的访问的表示系统328a能够模仿猫叫声。 这可能被触发作为对触摸敏感的“猫毛”316a被抚摸的响应。控制伺服 系统317b的机械控制系统327b能够启动人工狗尾的摆动,也被触发作为 对触摸敏感的“狗毛”316b的抚摸的响应。表示系统328c可能从扩音器 316c获取音调上升的声音样本,以模仿在主机系统350c处的用户说出的 话。

这些种类的互动玩具可能已经在玩具商店的货架上可得,但是Flash 应用程序375和游戏服务器385提供方便的共享在线背景以使用这些玩 具。例如,一旦用户连接硬件设备到其各自的主机系统,Flash应用程序 375可探测动物类型并且在连接该到主机系统的显示装置上视觉再现该 动物化身(avatar)。此外,当Flash应用程序375与分布式对象API 389联 接时,用户不仅能够看见他们自己的化身,也能够看见经由一网络连接到 游戏服务器385的其他主机系统的化身。因此,图3中每一个主机系统的 每一个用户都能够在他们各自的显示装置上同时看见猫、狗和鸟。

通过利用分布式对象API 389,Flash应用程序375能够支持分布式 用户与动物化身和相关的硬件设备相互作用。例如,主机系统350b处的 用户可能指示他的狗化身朝与主机系统350a相关的猫化身吠叫。因此 Flash应用程序375可以调用由硬件设备310b提供的远程“吠叫”方法。 然后硬件应用程序335b能够执行由被调用的对象所表明的相关本地方 法,或所述“吠叫”方法。这可能例如发送命令到机械控制系统327b, 使得伺服系统317b移动硬件设备310b的外部的“颚”。图3中未示出的 用于硬件设备310b的表示系统,还可能被利用来创造通过扬声器的可听 见的吠叫。

到目前为止,本实施例的所有影响被局限于本地背景、或单一的主机 系统和单一的硬件系统。然而,回想将吠叫指向猫化身的硬件设备310b 的用户,或与主机系统350a相关的用户。因此,主机系统350b可能经由 分布式对象API 389到分布式在线服务386,通知游戏服务器385此吠叫 动作。分布式在线服务386能够查询账户数据库,以确定与猫化身相关的 主机系统。然后基于可能性、账户统计或其他变量,分布式在线服务386 能够执行某种逻辑以确定猫化身的反应应该是什么,并且发送合适的响应 到主机系统350a。例如,分布式在线服务386方法可能指示主机系统350a 调用“毛直立(fur standing)”方法,导致触摸敏感的“猫毛”316a竖立。

可选择地,猫可能朝狗发出嘶嘶声,导致类似的进程发生。分布式在 线服务386可能询问与主机系统350b相关的“勇气(courage)”变量以决 定狗的反应。如果狗具有较低的勇气,则Flash应用程序375可能指示机 械控制系统327b使用伺服系统317b移动狗处于呜咽的位置,而高勇气可 能导致狗站立而处于威胁的姿势。这种响应也能够被发回游戏服务器 385,以使得主机系统350a和主机系统350c处的用户也能够在他们各自 的显示装置上观察到呜咽的或威胁猫的狗。再举一个例子,硬件设备310c 的鸟通过扬声器318c重复的词组也可通过主机系统350a和主机系统 350b的扬声器鸣叫,取决于鸟化身与在线世界中的其他用户的接近程度。

这个在线动物化身游戏仅仅是一个可能的实施方式,并且许多其他的 实施方式能够使用相同的原则。例如,Flash应用程序375可包括在线赛 车游戏,其具有看起来像方向盘并且支持力反馈或振动的硬件设备。如果 竞争的游戏者将他的车撞到用户,那么该用户的方向盘可能被指示强烈振 动,并且相同的影响可能发生在竞争的游戏者。Flash应用程序375还可 以包括两个游戏者的联网的棋游戏,其具有类似于棋盘的硬件设备,该硬 件设备具有硬件以探测棋子的位置并且移动棋子而没有手动介入。因此, 一边的用户能够手动地移动棋子,而另一边的棋子可能自动移动而没有用 户介入,并且虚拟的棋盘的显示可以在两边更新。

当然,除了游戏,集成硬件平台还可以支持其他的应用程序。例如, 所述平台可以利用用于硬件设备的绘图板,允许通过Flash应用程序375 由互联网连接的用户之间的协同绘图(collaborative drawing)或头脑风暴 (idea brainstorming)。由一个用户绘制的草图能够被所连接的其他用户看 见,并且其他连接的用户能够修改其在绘图板上看见的草图,所有的用户 看见相同的共享的画布背景(canvas)。由于本申请所描述的集成硬件平台 提供了到任意种类的硬件的广义的、抽象的接口,用于扩展Flash应用程 序的能力的创造性的实际上是无限的。

图4示出了根据本发明的一种实施方式描述步骤的流程图,通过所述 步骤,集成硬件平台中的硬件设备的处理器经由Flash应用程序的应用程 序接口(API)来提供硬件控制。流程图400省去了某些细节和特性,其 对于本领域的普通技术人员是明显的。例如,作为本领域已知的,步骤可 以包括一个或多个子步骤或可以涉及具体的装备或材料。虽然流程图400 中所表明的步骤410到440足以描述本发明的一种实施方式,但是本发明 的其他实施方式可以使用与流程图400中所示的步骤不同的步骤。

参考图4中流程图400的步骤410和图1的环境100,流程图400的 步骤410包括硬件设备110的处理器,其通过连接145建立与主机系统 150的链接。如之前所述,这可以利用物理连接如USB电缆或通过具有 电池作为电源的无线传输来做到。可选择地,可以支持这两种连接类型, 其中物理连接为电池提供充电电力。如果连接145是物理连接,那么硬件 设备110的嵌入式处理器可能会闲置,直到其从连接器142接收到指示电 连接的电流。如果连接145使用无线传输,那么插入到主机系统150的无 线接收器软件保护器(dongle)或手动开关可能会触发该嵌入式处理器进入 操作状态。一旦硬件设备110接收到电力,其可能开始准备任何必要的握 手或协议过程以打开与主机系统150的通信,例如公开可探测到的USB 设备。

参考图4中流程图400的步骤420和图1中的环境100,流程图400 的步骤420包括硬件设备110的处理器,其启动安全服务代码162和代理 服务器代码163的执行。如之前所述,这可以通过让主机系统150使用 USB HID发现以及Flash方面的设备轮询、通过利用自动操作系统特性、 通过使用下载的插件、或通过复制安全服务代码162和代理服务器代码 163到主机存储器170用于由主机系统150的主机处理器160执行的其他 的方法来完成。未来的平台可能提供可信计算,使得允许来自合法发布者 的可信代码的自动执行,从而提供精细的解决方案。

参考图4中流程图400的步骤430和图1中的环境100,流程图400 的步骤430包括硬件设备110的嵌入式处理器,其从Flash应用程序175 接收由代理服务器163的执行所中继(relay)的API远程方法调用。此事物 处理的细节已经结合图1讨论了一些细节,但是简略地,远程分布式方法 172被调用,被串行器173串行,由代理服务器163转送和转换成串行数 据,由串行连接API 139在硬件设备110上接收,由解串器137解串,并 且由硬件应用程序135根据其而起作用。

参考图4中流程图400的步骤440和图1中的环境100,流程图400 的步骤440包括硬件设备110的处理器,其实施来自步骤430的API RMI 所指示的硬件API 131以控制硬件系统125。再次,此事物处理的细节已 经结合图1和图2讨论了一些细节,但是总结步骤440,其集中于特定的 被调用的远程方法的实施,这可能涉及嵌入式机器代码的执行或通过其他 方式执行。

另外,主机系统150能够利用联网服务器,如图3的游戏服务器385, 允许与其他主机系统的硬件设备相互作用。以这种方式,对一个硬件设备 的状态改变能够影响不同硬件设备的状态。在如图3的联网背景下,硬件 设备310a到310c能够使用公共的Flash应用程序375、分布式对象API 389 和游戏服务器385,经过他们各自的主机系统350a到350c而相互通信。 这开辟了一个互动新世界,其具有对以前在Flash硬件平台上不直接支持 的硬件设备上的控制。通过使用利用Flash的网络通信能力的方便的一体 化的集成硬件平台,在支持共享的在线体验的Flash应用程序中获得新硬 件的支持可以像插入USB线一样简单。

从本发明的上述描述,明显的是,在不偏离本发明的范围的情况下, 可使用不同的技术来实施本发明的构思。此外,虽然本发明结合确定实施 方式的具体参考而被描述,但是本领域的普通技术人员将意识到,在不偏 离本发明的精神和范围的情况下,可以做出形式或细节上的改变。因此, 所描述的实施方式在所有方面都被视为说明性的而非限制性的。还应当理 解的是,本发明不局限于这里描述的特定的实施方式,而是在不偏离本发 明的范围的情况下能够有许多重排、修改以及替换。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号