用于游戏机的下载和配置系统及方法

文档序号:1603759阅读:310来源:国知局

专利名称::用于游戏机的下载和配置系统及方法
技术领域
:本发明涉及一种用于游戏机的下载和配置系统及方法。
背景技术
:在过去数年里,为了吸引赌客,娱乐场的规模、豪华度和舒适度全都有所增长。此外,娱乐场还尝试为赌客提供多种全新刺激的游戏。出于这个要求,游戏机的完善度和特性同样也有所增长,以便吸引和保持玩家的兴趣。由此,娱乐场能够提供范围很广并且数目很多的靠运气的游戏。例如,在娱乐场的场地中可以包括数千台通过娱乐场游戏网络通信并被监视的电子游戏机(EGM)。这些EGM使用了计算机图形学、立体声音响、动画、以及其它那些为了保持玩家游戏兴趣而被开发的特性,以便提供增强的游戏体验。此外,EGM还可以包括辅助网络设备,例如玩家追踪设备或增强的玩家界面(例如BallyGaming的iViewTM触摸屏显示器)。相应地,需要监视、维护和服务的EGM以及相关组件的数目也很庞大。在早期的游戏环境中,游戏机是独立设备。游戏机安全性的实现借助于物理锁定、安全协议、安全人员、物理和视频监视,此外,要想尝试破坏游戏机安全性,还需要实际出现在游戏机那里。出于同样原因,游戏机的管理需要有大量人员来与每一台游戏机进行物理交互。此外,改变游戏机参数的能力也需要物理交互。有鉴于业已提升的计算设备的处理能力和可用性,目前可以借助电子通信来定制游戏机,并且可以对游戏机进行远程控制。游戏设备制造商已经通过为游戏机添加附加特征而利用了游戏机的增强功能,以便在更长的时间中让玩家的注意力保持在游戏机上,由此提升最小赌注、赌博频率以及游戏速度。而这反过来导致玩家在更长的时间里在游戏机上以更快的步调用更多的金钱下注,从而增加物主的利润。对基于当前处理器的游戏机来说,可以使用该游戏机实施的交互数目以及数据显示/收集处理导致产生了将游戏机连接在游戏网络中的愿望。除了游戏机自身以外,与游戏机或游戏机群组相关联的众多设备也可以是网络的一部分。对游戏机或机壳内部的设备来说,非常重要的是,这些设备需要相互察觉并且能够与控制服务器进行通信。此外,不但网络设备的存在与否非常重要,而且该设备的物理位置以及与特定游戏机内部设备进行关联的能力同样是游戏网络的一个必要组成部分。当前,娱乐场操作方是使用手控方法来改变内容或是重新配置EGM和/或其它辅助联网设备的。例如,娱乐场雇员需要以物理方式换出EPROM,以便改变游戏内容,或者该雇员需要通过访问EGM上的服务菜单来改变游戏配置。如果存在大量机器和联网设备,那么这个处理将会是一个非常耗时并且成本很高的处理,这种高成本不但体现在操作和/或维护费用方面,而且还体现在因为EGM的延长停机时间而导致的利润损失。同样,对EGM来说,现有的软件更新或下载方法的劳动强度很大,并且其成本很高。例如,技术人员通常需要前往游戏机那里,以便使用新的软件包介质来替换现有的软件包介质(例如EPROM、CD-ROM、CompactFlash等等)。此外,软件包更新处理有可能需要预先将EGM禁用一段时间,以免有玩家在技术人员准备执行包更换的时候使用EGM。作为选择,在软件包更新之前还可以禁用EGM,但是技术人员必须通过周期性检查来确保一个或多个EGM不被玩家使用。另外,由于技术人员有机会访问执行配置所需要的EGM关键区域,或是那些包含现金的区域,因此,在软件包安装期间还有可能需要监视技术人员。对于经由网络将包传递到EGM的处理来说,该处理在传送期间有可能需要大量的网络带宽。典型的传送机制提供的是点到点传送,其中软件分发点(SDP)执行针对单个EGM的传送,直至传送结束,然后SDP才可以执行针对另一个EGM的传送。由于传送必须按顺序进行,因此,如果有数百或数千个EGM需要传送包,那么,延长的高带宽使用时间有可能会让人无法接受。此外,如果要在EGM上安装包,那么有可能需要确认在EGM内部具有可使用的相关软件包以及硬件元件。而这通常是一个容易遭受人为分析和人为误差的手动处理。相应地,目前需要提供一种用于更新和配置EGM以及其它联网组件的系统。
发明内容简要概括地说,这里的不同实施例涉及的是经由网络来管理游戏设备。本系统允许娱乐场操作方管理电子游戏机(EGM)群组。通过这种管理新游戏设备集合或已有集合(即群组)的处理,可以减少下载或配置大量EGM所需要的劳动。例如,新软件可以从某个中心位置下载到EGM群组,并且还可以从中心位置配置EGM。相应地,这种操作效能将会降低维护成本,并且会将维护或设置EGM所导致的EGM停机时间减至最少。在一个实施例中,EGM可以经由网络并且借助TCP/IP上的多播或其它适当机制来进行更新。在服务器上将会创建一个包括游戏信息和/或配置信息的包。该包经由网络被递送到一个EGM。另外,该包可以借助后台线程而被下载,并且可以在启用或禁用EGM的时候乃至在玩家活跃运行EGM的时候发生。本系统包括一种可供EGM报告来自传送的已破坏或丢失分组的方案,并且SDP将会使用该方案来重新发送分组。该SDP使用多播协议来重新发送分组,由此可以减少差错恢复期间使用的网络带宽。本系统包括一种使用了数字签名的包验证方法。每一个包都提供了数字签名,并且EGM可以使用该数字签名来核实包,以及验证包来源。对未经核实的包来说,EGM是不会安装或使用该包的。本系统包括系统管理点(SMP)管理包的依存关系(例如新包-A需要包-B和包-C来执行操作的依存关系)所需要的技术。通过使用这种技术,可以确认在请求EGM传送某个新包之前处理了新包-A的依存关系。此外,SMP还可以确定依存关系并且请求还将这些包传送到EGM。本系统包括SMP确定包的相关硬件元件在EGM上是否可用所需要的技术。这个概念与包依存关系相似;但是,SMP不能通过自动向EGM传送硬件元件来满足包依存关系。如果包所需要的硬件依存关系在EGM上可用,那么则允许将包传送到EGM;否则将不允许包传送。根据一个方法,本系统可以指定游戏机集合应该在指定时间具有某个特定状态。这些变化或状态有可能适用于不同的游戏机集合,网络系统允许娱乐场操作方定义软件编目变化(也就是借助下载)和调度配置变化。例如,娱乐场操作方可以定义默认的花费和面额,调度用于周末的循环替换(override),以及调度用于假日或娱乐场促销的一次性替换。相应地,这些变化可以在没有进一步的操作员交互的情况下发生。由此,娱乐场管理部门不必在每次当老虎机场地(slotfloor)采用新配置时到达现场。此外,配置变化是在EGM的后台操作期间在不影响游戏运行的情况下传递的,并且该变化是在指定的便利时间应用的(例如信用量测量计达到零信用量之后的预定时段)。相应地,在下载配置变化之前,EGM不需要处于关闭状态。此外,在这里公开了不同的分配冲突分析和解决方法。通常,这些冲突只在分配了相同类型的时候发生(例如下载和配置)。一般来说,除了与主机和所有者信息相关的数据将会取代其它分配之外,下载/配置冲突是通过在配置处理之前运行下载处理来避免的。作为选择,这些冲突有可能会因为EGM是某个不同集合的成员而发生,在所述集合中,会员资格有可能随时间而改变。例如,如果将EGM从5分面额切换到25分面额,那么有可能会将EGM切换到另一个集合(例如所有的25分EGM)。相应地,网络系统包含了不同的方法,以便解决为EGM给出不正确设置的情形(例如,本系统会筛选出EGM不支持的设置)。由此,这些方法提供了如何使网络主机在应用一个或多个指派的时候配置EGM的一致性过程。在另一个方法中,在这里公开了用于预先配置EGM的方法。在一个方法中,由于某个EGM或EGM内部的游戏主题可以支持数目众多并且种类繁多的选项,因此,网络系统将会使用选项模板来为预配置处理提供支持。例如,在将新内容下载到EGM之前,这时可以使用诸如组合内容(ComboOption)模板之类的选项定义模板来定义新内容的配置。此外,娱乐场操作方可以在业余时间调度新游戏主题下载,并且在完成安装时让网络主机配置新的游戏主题,而不需要操作方介入。此外,在这里还公开了EGM的自动下载和配置方法。在一个方法中,网络系统提供了一种用于识别EGM何时需要数据下载或配置的方法,而该网络则通过协调这些活动来避免发生冲突。举例来说,在一个方法中,在完成EGM下载之前将会禁止尝试配置该EGM。在另一个方法中,如果EGM的RAM巳被清空或者所述EGM已经脱机,那么网络主机将会自动恢复数据模块,并且对EGM进行配置。相应地,操作方可以从单个终端监视并管理一组EGM,从而消除对于老虎机(slot)技术人员收集配置数据以及以手动方式重新配置每一个EGM的需要。在另一个方法中,在这里公开了用于执行针对多个EGM的同时下载的方法。网络系统通过使用多播会话来分发(即下载)包,其中EGM将会请求所有或部分包(由下载服务器指示)。该方法还可以包括一种无损传送机制和一种IP多播处理,以此作为分发机制。这种多播分发机制节约了网络带宽,并且可以在主机上进行调节,此外还可以防止低优先级活动(如下载)干扰重要通信(如凭单或事件)。另一种方法旨在将关联于EGM包下载的存储器耗费减至最少。在该方法中,主机将包(例如BLOB(二进制字节列表))下载到EGM。然后,该包将被验证,并且可以立即或是在以后的预定时间安装。一旦在EGM上安装了包内容,那么作为选择,该包可以从EGM中移除。举例来说,包的某些部分可以通过使用新包改写该包而被移除。此外,该包的内容是由已经安装在EGM上的最终修订版本的模块来追踪的。从以下结合附图的详细描述中可以清楚了解本发明的其它特征和优点,其中这些附图举例描述了不同实施例的特征。图1描述的是可以与本系统结合使用的游戏网络的实施例。图2描述的是下载交互活动的综述。图3描述的是EGM启动消息流的综述。图4描述的是/dev/download驱动器初始化的逻辑流程。图5是描述用于核实下载请求以及将控制权传递给恰当句柄函数的流程图。图6是描述下载驱动器的附加包逻辑的流程图。图7是描述下载控制处理addPackage逻辑的流程图。图8描述的是用于下载接收机addPackage处理的消息流程。图9描述的是DR的逻辑流程。图10是描述必须预先具备的处理的流程图。图11描述的是用于该处理的逻辑流程。图12是如何将包安装在EGM上的综述。具体实施例方式在这里公开了用于管理联网游戏机的不同网络系统和方法。该系统支持数据下载和游戏机配置,其中举例来说,该游戏机可以是电子游戏机(EGM),但是并不局限于此。借助本网络系统,娱乐场操作方可以定义一个EGM集合,为一个或多个EGM集合分配模块,为一个或多个EGM集合分配配置变化,以及调度所有分配。本系统允许在位于一个或多个服务器的软件分发库中集中存储将要在EGM上运行的某些或所有软件。作为EGM更新、游戏替换、配置或是出于其它任何预期目的,该软件可以根据需要经由网络(例如以太网)发送,以便初始设置EGM。本系统在后台使用了多播将软件包下载到EGM,即使在运行完整游戏时也是如此。服务器通过对一个或多个包实施单次的多播传送而将其传送到所有目标机器。每一个EGM都会追踪包,并且记录丢失、受到破坏或是丢弃的分组。在一个实施例中,无论哪一个EGM请求哪一个分组,服务器都会接收来自所有EGM的分组重发请求,并且再次将其多播到所有EGM。单独的EGM接受所需要的丢失分组,并且忽略其它重新广播的分组。应该指出的是,本系统并不局限于多播传输,而是可以使用HTTP、HTTPS、FTP、SFTP禾口其它传输协议。应该指出的是,术语EGM旨在包含任何类型的游戏机,这其中包括作为游戏机使用的手持式设备,例如基于蜂窝的设备(如电话)、PDA等等。EGM可以用任何一个能够执行游戏的网络节点表示,并且它不仅仅局限于基于机壳的机器。对作为视频游戏控制台、手持式或其它便携式设备的一部分实施的游戏机来说,本系统具有同样的适用性。在一个实施例中,手持式或便携式游戏设备中的地理定位设备可以用于定位特定用户,以便用于管理和其它目的。举例来说,可以使用的地理定位技术包括但不局限于IP地址查找、GPS、蜂窝电话塔位置、小区ID、已知的无线接入点位置、所使用的WiFi连接、电话号码、客户机设备上的物理线路或端口、或是通过被访问的中间层或后端服务器。在一个实施例中,在玩家的客户机设备内部构造了GPS和生物测定设备,其中在一个实施例中,该客户机包含玩家自己的个人计算设备,此外,所述GPS和生物测定设备也可以由娱乐场作为附加设备并且通过使用USB、Bluetooth、IRDA、串行或其它接口提供给硬件,以便在其管辖范围以内启动应允的游戏,从而保证玩家游戏地点和标识的安全。在另一个实施例中,娱乐场还提供了具有这些内置设备的整套个人计算设备,例如平板类型的计算设备、PDA、蜂窝电话或是能够运行本系统游戏的其它类型的计算设备。在图1中描述了一个可以与本系统结合使用的网络的实施例。该例示网络包括包含了用于所有管辖区域的所有包的顶级厂家分发点101,包含了在管辖区域或子管辖区域内部使用并带有调整者许可产品签名的包的一个或多个管辖区域分发点102A和120B,用于调度和控制EGM的包下载的一个或多个软件管理点103A和103B,以及包含了调整者许可产品签名的包的一个或多个软件分发点104A和104B,其中该包只在其支持的游戏建立过程中使用。软件分发点(SDP)104A和104B可以与系统管理点(SMP)105A和105B进行通信,并且分别与一个或多个EGM106A和106B直接通信(SDP与SMP之间的通信是可选的。其益处是允许SMP和用户访问在SDP上可用的软件包目录)。本系统允许从中心点快速安全地部署和配置新游戏以及0S。它可以使用程序修复和更新来更新和修改现有游戏机,并且可以修改如下文件,如屏幕图像、视频、声音、付费表以及其它的EGM控制和支持文件。它从一个中心控制分发点提供了针对游戏机的完全控制,并且可以将对于EGM处的人为干预的需要以及延迟减到最少。在一个实施例中,在EGM中,在一开始被用作用于OS和下载包存储的存储介质的是一个1GB紧凑型闪存卡(compactflashcard)。第二紧凑型闪存则用于存储现今存在的产品游戏。OS紧凑型闪存被分成了产品、备份和下载区域。产品区域包含的是用于在EGM上提供游戏运行的有效OS和游戏管理软件。在该存储部分上将会执行所有的文件完整性检査和验证。其它区域将被用于存储备份软件和数据、新下载包、新软件包的安装和NVRAM存储、计数器、随机数字数据以及采用了加密数据格式的其它安全信息。软件下载是由游戏工作人员借助SMP来调度的。SMP通知其调度的单个游戏机接收来自特定厂家软件分发点(SDP)的下载包。然后,EGM将会请求SDP开始向其发送下载包。本系统通过使用多播网络协议解决了网络带宽使用问题,其中SDP将会使用该协议来广播同时针对多个EGM的传送。该SDP会向预定的EGM集合发送单次传送,由此与点到点策略相比,它仅仅使用了一小部分网络带宽。如果有X个EGM群组,并且每一个群组都包含了Y个EGM,那么通过以下计算,可以一般了解减少的网络带宽使用情况多播X*专送大小点到点(X*Y)*传送大小总的改进多播具有1/Y的网络使用率本系统包含了一种用于适应包的传输差错或接收差错的恢复方案。该恢复方案允许每一个EGM在未接收或接收到差错(数据损坏)的时候报告丢失部分(分组)。SDP逻辑可以累积一个关于丢失分组和相应EGM的列表,并且使用多播协议来重新发送丢失分组。所传送的具体包是由EGM规定的。EGM使用点到点协议来向SDP发起请求。而SDP则未必立即为这些请求提供服务,由此允许EGM在等待传送的同时以及在传送期间执行操作。EGM负责将所述传送记入日志,并且对已完成传送的有效性进行检查。这个日志可以用于在任何时间协调EGM的包内容。此外,SDP会将传送活动记入日志,并且提供一种用于交叉检査EGM包内容的手段。EGM是使用数字签名来核实所传送的包的。无论提供包的是哪一个特定的SDP服务器,该数字签名都会提供关于包自身的验证,并且该数据签名被用于确定该包是否遭受任何传输差错。如果EGM无法核实包,那么该包将不会被安装,并且不会以其它方式加以使用。本系统包含了确定EGM是否包含使用新包所需要的包(包依存关系)的技术。如果将要在EGM上工作的指定包A需要附加包,即包B和包C,那么可以从包A内部包含的包报头中确定依存关系。然后,在请求将包A传送到EGM之前,SMP可以确定EGM是否己经包含依存包,即包B和包C。同样,除了初始包A之外,SMP还可以自动选择将要传送的依存包,由此满足包A的依存关系。本系统的这个特性提供了所传送的包可被EGM实际使用的确保等级。本系统包含了确定包的依存硬件元件(组件)在EGM上是否可用所需要的技术。如果包X需要组件Y和组件Z,那么SMP可以读取EGM的组件,并且使用该信息来实施组件依存关系检査。如果包需要的组件依存关系在EGM上是可用的,则允许将包传送到EGM;否则将不允许该包传送。本系统的这个特性提供了所传送的包可被EGM实际使用的确保等级。在将新的EGM安装在娱乐场场所时,将软件直接传送到EGM的能力将会提供附加的替换方案。在请求安装新包前,在一开始可以用一个引导媒体(EPROM、CD-ROM、CompactFlash等等)来加载初始直接安装并放置在娱乐场场所的EGM,其中该引导媒体可以启动EGM并预备通信。有两种引导方法可以用于将软件传送到EGM。对这两种引导方法来说,在完成引导处理之前,这两种方法全都需要EGM的最低配置。该最低配置可以包括下列各项'1)用于EGM的唯一的网络IP地址。这个地址可以由DHCP提供,或者借助操作方配置分配给EGM。2)从EGM硬件(例如网卡MAC地址)推导得到或是借助操作方配置分配给EGM的唯一EGM标识符。3)发起传送请求的SDP网络服务器的地址。这个地址可以是一个硬编码的默认地址,该地址可以借助操作方配置而被替代。简单的引导模式需要使用必要的选项来配置EGM,以便定位SMP网络服务器。这个选项可以是一个硬编码的默认地址,并且该地址可以借助操作方配置而被替代。EGM将会使用该地址来定位SMP服务器,然后,SMP服务器会将新的包分配给EGM,以便进行传送。在一个实施例中,EGM及其关联的外围设备可以使用一种方案来标识,例如在名为"DeviceIdentification"的美国专利申请11/319,034中描述的方案,其中该申请在这里全部引入作为参考。在这个实施例中,在启动过程中,设备会在网络上发出其MAC地址。本地交换机收集与之相连的设备的MAC和IP地址。该交换机周期性地传送包含了设备表格以及相关联的MAC/IP地址的原始以太网帧、USB分组或是TCP分组。当设备接收到关于别的设备的信息时,该设备可以尝试与所述别的设备进行通信。首先,在这里将会使用一个核实过程来核实设备。随后,在设备之间可以进行通信。先进的引导模式包括RGM从SDP那里请求默认的引导包。这个引导包的包名称是预先定义的,并且是为EGM和SDP所知的。这个引导包包含了用于识别默认软件包和配置数据的配置文件。该引导包可以为具体的设备(娱乐场)定制,并且可以保存在SDP上。这样一来,所有的EGM都会请求预先定义的引导包,SDP会将引导包传送到EGM,并且EGM将会处理引导包。当EGM处理引导包时,EGM可以读取SMP地址、默认的EGMOS包,以及其它包,例如默认的外围设备固件包。这时,EGM可以从SDP请求这些包,并且SDP将开始向EGM传送默认包,最终以EGM准备好执行配置为结束。图2描述的是系统管理点105、EGM106与软件分发点104之间的下载交互的综述。该设计包括用于提供中心控制逻辑和逻辑的下载设备驱动器。它与下载分类(它可以是G2S或其它任何协议)以及下载控制线程相对接。该下载控制线程对来自下载分发点服务器的请求和下载包进行控制。在操作中,系统管理点105向EGM106的下载控制器206发送包命令和请求,以便向其告知添加和删除包、安装包、以及请求关于包和已安装模块的信息。该下载控制器206对这些请求进行过滤,然后将其传递到下载驱动器207,以便进行处理。然后,包添加请求将被提供给下载接收机进程208,该线程随后打开其与软件分发点104的通信。下载接收机进程208在多个分组中经由多播(或其它任何规定的传输协议)链路204来从软件分发点104接收分组数据,并且将这些包装配在紧凑型闪存中。一旦接收到了包的所有分组,则使用在包报头中传递的SHA—1核实字串来核实包数据。而恰当的状态和包状态信息则应该传回下载驱动器207,并且该驱动器会将该信息传递到下载控制器206,以便将其记入日志,并且传回系统管理点。下载驱动器207下载驱动器是在启动EGM系统的时候安装的。其主要功能是1-对保存在紧凑型闪存上的包和控制信息执行初始化。2-对来自下载控制器206的包添加命令以及安装规则进行处理。3-为下载控制器206提供列表和状态信息,以及下载和安装事件。4-对用于下载接收机进程208的包添加请求进行排队,并且将其经由针对驱动器的读取211传递到下载接收机208。5-为包更新其状态和差错条件,安装规则,以及将其传回下载控制进程206。下载控制线程206下载控制进程206要么是在游戏管理器上下文内部运行的线程,要么是在系统上没有运行游戏管理器时的独立进程。其主要任务是1-接收下载命令。2-将这些其并未处理的命令传递到下载驱动器207,以便递送到下载接收机进程208以及下载安装进程209。3-接收来自驱动器的下载和安装状态,并且将其记录在EGM106上的恰当日志文件中。4-在被请求时将日志信息和包、安装规则以及模块列表提供给系统管理点105。下载接收机进程208下载接收机进程208负责的是EGM106与软件分发点104之间的通信。其主要功能是1-接收来自下载驱动器207的包添加请求。2-开启与软件分发点104的TCPIP链路,并且请求在将要发送EGM106的包添加请求中定义的包。3-开启软件分发点104定义的多播通信端口,并且接收多种分组格式的被请求包。4-将包的分组装配到单个文件中。5-请求重新发送任何已经丢失或丢失的分组。6-通过计算SHA-1值以及通过将其与在包报头中传递的SHA-1核实字串进行匹配来核实包数据。7-将包接收进程的状态和差错信息经由下载驱动器207发回下载控制进程206。下载包安装进程209下载包安装进程209负责安装那些从软件分发点104下载的包。当开始安装下载包时,当从系统管理点105发送设置安装规则命令时,这时该进程将被告知何时开始安装下载包。该进程经由针对下载驱动器207的读取来接收这个命令。对下载包安装进程109来说,其基本功能是1-解析设置安装规则,以便确定如何处理包。2-根据设置安装规则命令中的指令而禁用EGM106。3-使用作为下载包一部分发送的命令文件来安装包。4-根据安装规则的指示,清除NVRAM。5-根据设置安装规则的指示,重启EGM106。6-经由下载驱动器207来发回状态和差错信息。EGM初始化图3描述的是EGM启动消息流程的综述。EGM106向SDP104发送一个请求包的消息302。SDP104则使用消息303进行答复,其中该消息303指示的是将要用于传输的包大小以及多播IP/套接字。从SDP104到EGM106的消息304是包数据本身。如果必要的话,EGM106可以通过发送消息305来请求丢失的分组。如上所述,系统使用了多播处理来向多个EGM发送包。当分组丢失并且EGM请求分组时,SDP104将会收集多个请求,并且向所有EGM发出所有丢失分组的多播。如果某个EGM不需要这些重新广播的分组中任何一个,则忽略该分组。否则,EGM将会接受重新广播的分组,并且使用该分组来完成包传输。下载驱动器在下载驱动器207与下载进程之间的接口中,所有设置状态、设置差错信息以及命令信息都经由IOCTL调用而被传递到驱动器207。这些进程使用了读取接口来从驱动器207获取处理指令。下载接收机208使用该读取接口来获取包添加请求,下载安装进程209使用该读取接口来获取设置安装规则请求,并且下载控制进程206使用读取接口而从接收机和安装进程那里接收状态和差错信息。/dev/download是一个可加载模块"设备驱动器",该设备驱动器是在系统出现的时候加载的(在一个实施例中,它可以是Linux可加载模块)。它会1-分配用于存储下载分类消息(例如G2S或其它协议)的下载缓存器。2-注册作为Lirmx核心设备的下载支持。3-对去往与驱动器进行通信的进程的读取队列执行初始化。4-为可被接收的包和设置安装规则初始化安装区域。一旦安装并且初始化了驱动器,那么所有其它操作将会被ioctl和读取函数入口点控制到驱动器中。该ioctl入口点DL—ioctl()将会处理经由从下载类接收的下载控制进程传递的所有的系统管理点105。该DL一read()入口点对为来自以下各项的所有读取请求提供服务用于包状态和差错的下载控制进程206用于传递包添加请求的下载接收机进程208,用于接收设置安装请求的下载安装器209。图4描述的是/dev/downloader初始化逻辑流程。在步骤401,读取队列区域和信号量将被初始化。在步骤402,包将被初始化,并且安装规则数据结构将被设置。在步骤403,驱动器将被注册到系统,并且在步骤404,系统将会返回。一旦安装并且初始化了/dev/download驱动器,那么dl—ioctl()驱动器207将会充当与下载控制进程206以及接收机进程208和安装进程209的接口。来自系统管理点105的所有请求都会经由下载控制进程206传递,并且要么传递到驱动器207上进行处理,要么在具有模块和日志请求的情况下在下载控制进程206自身内部被处理。该d1—ioctlO是用于确定如何对具体请求做出响应的命令ID。图5是对用于核实下载请求并且向合适的句柄函数传递控制权的例程进行描述的流程图。在步骤501,在命令ID上设置的特定交换机将被检查,以便能将来自SMP105的请求路由到正确的句柄。包添加和删除命令将被提供给DL—Packages502。设置和删除安装规则被传递到DL—install503。设置状态、检索状态、检索列表命令则被发送到DL一status504。注册进程将被发送到块505,其中被注册进程的进程标识将被存储。在506,未知命令返回差错事件。addPackage(包添加)处理逻辑来自下载分类的addPackage命令是由下载控制进程206、下载驱动器207以及下载接收机进程208处理的。通过将该处理分成这三个区域,可以有助于在不同的特定函数之间保持隔离度,从而易于将代码适配成支持结合任何协议的操作,以及提供用于集成未来可能出现的不同包下载协议和需求的能力。图6描述了下载驱动器207的addPackage逻辑。该addPackage逻辑通过检查来了解是否在EGM上已经存在该包,以及是否有足够空间来存储包信息。如果是的话,那么它会向下载接收机的驱动器读取队列和下载控制驱动器的读取队列发送包信息,如果读取未完成,那么它会投递(post)读取信号量。在步骤601,其中将会给出一个AddPackage请求,在步骤602将会确定是否存在被请求的包。如果不存在,那么系统会在步骤603返回包存在差错。否则,系统将会前进到步骤604,以便确定是否有最大数目的包排队等待。如果是的话,则在步骤605返回一个返回队列已满差错。否则,该系统前进到步骤606,并且将addPackage信息添加到包表格中。在步骤607,addPackage被放置在接收机读取队列中。在步骤608中将会确定接收机读取是否未完成。.如果不是的话,那么系统在步骤609返回正常状态。否则,系统在步骤610投递一个接收机读取休眠信号量。在步骤611,addPackage状态被放置在控制读取队列中。在步骤612中确定控制读取是否未完成。如果不是的话,则系统在步骤609返回正常状态。如果是的话,则系统在步骤613投递一个控制读取休眠信号量,并且在步骤609返回正常状态。下载控制进程的addPackage逻辑下载控制进程206具有一个用于从下载驱动器207进行读取的线程。当addPackage或包状态满足所述读取时,这时将会遵循图7的操作。包信息将会使用包ID作为文件名而被写入/Packages/Package目录。此外,这时还会创建一个日志条目,并且将其写入/Packages/Logs目录的包日志。最后,将创建和发回包状态消息,以便递送到系统管理点。在步骤701,其中将会从驱动器读取addPackage。在步骤702,addPackage被写入磁盘。在步骤703,其中将会确定写入操作是否成功。如果没有成功,则在步骤7004创建并发送差错事件。否则,在步骤705创建和写入包日志条目。在步骤706,其中将会确定日志写入是否成功。如果没有成功,则在步骤707发送差错事件。如果日志写入成功,或者在步骤707之后,在步骤708将会创建和发送一个包状态消息。在步骤709,其中会向下载驱动器发布读取。下载接收机的addPackage下载接收机负责从软件分发点104下载addPackage消息中标识的包。图8描述了用于完成这个任务的消息流程。该消息流程是在SMP105与EGM106之间以及EGM106与SDP104之间进行的。在EGM106内部,下载接收机(DR)进程208与软件分发服务器进行通信。addPackage命令801包含了将要取得联系的分发服务器的IP和套接字地址。DR208开启连至SDP104的链路,并且请求806在为其发送addPackage命令内部标识的包。SDP104使用一个包含了分组大小、超时值、包大小以及用于接收数据的多播端口的消息来做出响应807。而DR208则向SMP105发送下载启动状态802和下载进行消息803。在下载808数据分组时,DR208将会记录已发送分组,并且将会请求重发809任何未被接收的分组。这些分组将会作为多播的一部分而被重新发送810。在接收到804所有分组之后,这时将会为该包的数据部分计算一个SHA—1值,并且将其与作为包一部分发送的核实字串相比较。图9描述的是用于DR208的逻辑流程。在步骤901,DR读取将会启动。在步骤902,与SDP104相连的链路将会开启。在步骤903,其中将会确定是否建立链路。如果没有的话,则在步骤904发送包差错,并且在步骤905向驱动器发布读取。否则,在步骤906向SDP发送请求包。来自SDP的响应是在步骤907读取的。在步骤908,其中开启一个多播套接字。在步骤909,状态将会经由ioctl而被发送到DR。在步骤910,DR从多播套接字中进行读取。在步骤911,其中确定是否存在读取超时条件。如果不存在,则在步骤912将分组数据保存在指定的偏移和存储序列中。如果存在的话,则在步骤914向SDP发送一个分组重发请求,并且系统返回到步骤909。另外,在步骤915中将会核实已下载包(例如使用SHA—1)。在步骤916,其中将会确定数据是否通过核实。如果没有的话,则在步骤917向下载驱动器发送包差错状态消息。否则,在步骤918向下载驱动器发送包已核实状态,并且系统返回到步骤905。deletePackage(包删除)deletePackage命令由下载控制进程206和接收机进程208以及下载驱动器207进行处理。当下载驱动器207接收到deletePackage请求时,如果该包的状态没有经过核实,或者存在差错,那么该状态将被复位,以便删除未决状态,此外还会向下载接收机208发送删除包命令。然后,该下载接收机进程208应该删除其创建的任何文件,并且终止关于该文件的任何下载活动。当清除完成时,它会向下载驱动器207发回已删除状态,并且恢复其从下载驱动器207中进行的读取。当下载驱动器207接收到包已删除状态时,或者如果包的初始状态经过验证或存在差错,那么下载驱动器207将会释放包数据存储区域,并且向下载控制进程206发送一个deletePackage完成状态。下载控制进程206则将新的状态记录在包日志中,并且从/Packages/Packages目录中删除包状态文件。然后,它会向SMP105反向发送删除完成状态。setlnstallRule(设置安装规则)setlnstallRule下载分类命令是由下载控制进程206、下载安装进程209以及下载驱动器207来处理的。下载控制进程206在磁盘上以及安装规则日志文件中保持setlnstallRule的已更新状态,并且借助消息而将所述状态发回SMP105。下载驱动器207充当下载控制进程206与下载安装进程209之间的接口。此外,它还会核实包已不存在以及有足够空间来处理安装规则。下载安装进程——setlnstallRule在安装一个下载包的过程中,第一个步骤是解析包报头中包含的setlnstallRule命令以及先决条件(pre—requisite)。通过检查包报头,可以提取关于安装包所需硬件需求的信息,以及关于在EGM上支持包所需要的软件的信息。对软件先决条件来说,这些先决条件可以是指已经安装的软件或是包含在已被下载并且预备安装的其它包中的软件。图10是描述预先必要处理的流程图。在步骤1001,验证处理开始执行。在步骤1002,其中将会确定用于下载包的硬件先决条件是否存在。如果存在的话,则在步骤1003构建一个关于已安装硬件数据的表格。在步骤1004,硬件先决条件循环将被从包报头中读取。在步骤1005,其中将会确定该先决条件是否实际安装在硬件表中。如果是的话,则在步骤1006确定是否满足所有先决条件。如果满足的话,则在步骤1008返回成功。如果不满足,则返回到步骤1004。在步骤1005,如果在表格中没有安装这些先决条件,则在步骤1009中将安装差错记入日志。在步骤IOIO,安装状态将被发送到SMP105,并且在步骤1011返回差错。在步骤1002,如果硬件先决条件并不存在,则在步骤1007确定软件先决条件是否存在。如果没有指定先决条件,则在步骤1008返回成功。如果在步骤1007中的结果为是,则在步骤1012构建所需的软件表格。在步骤1013,将会从己安装模块目录中构建关于可用模块的表格。在步骤10H,将会构建来自可用包的模块的表格。在步骤1015,其中将通过先决条件表格进行循环。在步骤1016,确定在己安装模块中是否发现先决条件。如果已安装模块不满足先决条件,则步骤1019确定尚未安装的包是否可以满足先决条件。如果无法满足先决条件,则在步骤1009将安装差错记入日志。否则,在步骤1017,从表格中移除先决条件。在步骤1018,其中将会确定是否满足所有先决条件。如果是的话,则在步骤1008返回成功。如果不是的话,则返回到步骤1014。如果1016为否,则在步骤1019确定该先决条件是否处于包表格中。如果不是的话,则在步骤1009将安装差错记入日志。如果是的话,则在步骤1020确定在先决条件表格中是否具有包先决条件。如果是的话,则返回到步骤1015。如果不是的话,则在步骤1021向先决条件表格中添加包模块,并且返回到步骤1015。一旦满足了关于所有所需包的先决条件,则对包安装规则进行处理。该安装规则包含如下信息何时通过禁用机器来阻止游戏运行,在禁用游戏之后是否需要时间延迟,使用什么触发器来启动安装处理,以及在满足所有其它条件时,主要是否需要授权所述安装。图ll描述了关于该处理的逻辑流程。在步骤1101,其中将会启动DL一InstallerO。在步骤1102,其中将会确定是否满足用于安装的时间窗口。如果不满足,则系统在步骤1103等待安装周期。否则,在步骤1104中确定是否满足禁用条件。如果是的话,则在步骤.1105禁用硬币和钞票收集器。否则,在步骤1106确定是否应该立即禁用。如果不应该的话,则在步骤1107确定是否应该都不禁用。如果不是的话,则在步骤1108确定是否禁用零信用。如果不是的话,则在步骤1109返回差错并退出。如果步骤1108为是,则在步骤1110确定禁用等待时间是否届满。如果没有的话,则在步骤llll中等待禁用时间。对1106、1108、1110的结果"是"或者在步骤1111之后,在步骤1105将会禁用硬币和钞票接受器。在步骤1105之后或者在步骤1107的结果为"是"的情况下,在步骤1112中将会确定是否自动启动。如果不启动,则在步骤1113确定是否什么都不启动。如果不是的话,则在步骤1114确定是否发起操作方。如果不发起,则在步骤1116出错退出。否则,在1115显示等待开始安装。对1112和1113的结果"是"或者在1115之后,在步骤1117中将会确定是否需要主机授权。如果不是的话,则在步骤1118开始安装包。否则,在步骤1119确定是否接收到主机授权。如果没有的话,则在1120中等待主机授权。否则,在步骤1118中开始安装包。包安装——安装包内容一旦满足了安装需求和先决条件,则包安装准备就绪。一旦安装处理启动,则不应该取消或中断该处理。所下载的包是由至少三个不同部分构成的1-包含下列信息的报头i.模块名称、描述以及发行版本号。ii.文件及其在数据包中的偏移。iii.用于将包及其偏移安装到数据包中的命令过程的名称。2-用于核实包的数据部分的SHA—1核实字串。3-包含安装过程文件以及将要为该包安装的所有文件的包的数据部分。这个数据部分可以采样压縮或未压缩格式。当前得到支持的压縮格式是gzip禾卩bzip2。其它的压縮技术可以与实际包数据自身相适应,并且可以由在包数据中发送的安装命令文件来进行处理。图12是关于如何在EGM上安装包的综述。在步骤1201,包安装处理启动。在步骤1202,将数据从包拷贝到文件。在步骤1203,其中将会确定是否包数据经过压縮。如果是的话,则系统在步骤1204中解压缩文件。否则,在步骤1205中通过该包报头中的文件定义循环。在步骤1206,从包文件的文件部分中创建单个文件。在步骤1207,其中将会确定是否已经创建了所有文件。如果没有的话,则返回到1205。另外,在步骤1208中将会执行文件安装命令。在步骤1209,其中将会确定在InstallRule中是否规定重启。如果没有的话,则移除setlnstallRule,并且在步骤1210将状态记入日志并发送该状态,以及在步骤1211中返回成功。否则,在步骤1212中确定是否安装了预先必要的包。如果没有的话,则在步骤1213中记录差错,并且将状态发送SMP,以及在步骤1214中返回差错。否则,在步骤1215中置位NVRAM清除条件并且删除安装规则,以及在步骤1216中重启EGM。备选的包安装处理通过引入新的文件核实方法以及变换到G2S,本系统可以考虑一种用于下载包安装处理的备选实施例。通过修改当前的下载接口,可以使用类似G2S的命令来给出下载安装代码。也就是说,SetlnstallRule命令可以变为SetScript命令,以便由己安装的下载来进行处理。此外,getScriptList禾BGetScriptStatus命令将会映射GetlnstallRuleStatus和getlnstallRuleList命令。假设所有用于处理下载日志的命令都是用G2S支持代码来处理的,并且不是下载支持的一部分。CURL将被用于为借助HTTPS、SFTP、FTP、HTTP等等为下载包提供支持。对任何多播协议来说,本地开发的协议都是可以使用的。这个替换实施例是以下列命令为基础的:1.在这里使用了一个独立线程来向下载驱动器发布读取,以便接收setScript、deleteScript、authorizeScript命令。2.保持了脚本表格。该脚本表格中的每一个条目将会指向脚本表格中的下一个条目。此外还会使用一个全局指针来指向该表格中的第一个脚本。该表格是按照FIFO队列排列的,并且脚本是按照用于规定setScript命令的安装时间帧的顺序处理的。如果在setScript命令之前接收到关于该命令的authorizeScript命令,则拒绝该命令,并且向发送授权命令的服务器反向发送差错事件。该脚本表格可以同时保存在存储器和磁盘上。在存储器内部拷贝之前,在磁盘上将会更新脚本条目的状态。3.当接收到任何脚本命令时,这时将会执行下列处理setScript(设置脚本)如果关于该脚本的setScript记录不存在,则创建并且初始化一个具有等待处理状态的脚本记录。如果存在其它脚本记录,则根据该记录的安装起始时间帧值将其放置在处理队列中。如果处理队列中没有其它脚本,则将其放置在处理队列开始端。如果脚本正在等待起始安装时间并且具有处于接收到脚本之后的起始安装时间帧,则将已经有效的脚本放回到处理队列中,并且将新的脚本设置成等待起始时间帧。如果机器处于禁用状态,并且当前正在处理别的脚本,则将该脚本放入磁盘上的脚本队列。deleteScript(删除脚本)如果没有关于指定脚本的脚本记录,则返回差错,脚本不存在。如果在处理队列中具有脚本记录,则将其从处理队列中移除,并且发送脚本删除事件。如果脚本正在处理,并且初始状态是正在安装,则发送脚本正在安装事件,并且该脚本不被删除。如果脚本正在处理,并且未处于安装状态,则发送事件脚本取消,删除脚本记录以及复位状态。如果脚本正在脚本队列中等待,则开始处理下一个脚本。authorizeScript(授权脚本)那么有可能需要多个主机要对脚本的继续安装进行授权。在接收时,这时必须保持授权主机列表,并且设置其授权状态。在所有主机全都授权脚本之前,安装将不能进行。如果不存在关于指定脚本的脚本记录,则拒绝授权命令并且发回差错事件。如果正在处理脚本,则将脚本状态设置成在用于授权命令所规定的特定主机的命令中规定的状态。如果并未处理脚本,则将授权状态设置成在用于指定主机的命令中规定的状态。处理setScript命令当setScript命令进入处理状态时,这时将会按照如下顺序执行操作1)检查依存关系硬件和模块。模块依存关系可以通过己安装模块或是存在于setScript正在安装的包内部的模块来满足。需要确保考虑的是,setScript中的另一个包可以移除可能需要的模块。2)在考虑到SetScript命令内部的包可以移除模块并且由此释放存储器的情况下,检查存储依存关系。3)等待安装时间帧4)根据DisableType(禁用类型)属性来禁用EGM5)根据initiateType命令来启动包处理6)处理授权。所需要的授权有可能会是多个。这其中包括本地操作方授权以及多个主机授权。7)脚本既可以包含也可以不包含命令列表。如果不包含命令列表,则根据包的内容来安装包。命令列表仅仅是为移除模块或是在EGM上执行与安装或移除包不相关的特定命令而存在的。8)在移除包时,与之相关的文件核实清单同样必须从系统中移除9)当安装或是从EGM上移除致使所述清单将被修改、删除或添加的模块时,在安装结束之后,系统必须重启。10)根据管辖范围需求以及在setScript命令中规定的状态,删除已下载包。安装和更新模块需求当在具有足够存储器来保持操作环境备份拷贝的系统上安装或更新模块时,这时将会执行下列步骤。1)重设分区存取许可,以便允许写入这些分区。2)将产品环境拷贝到备份环境中。该处理可以在环境激活以及游戏运行的时候借助后台任务执行。3)将变化应用于产品环境。4)确保将boot.id文件设置成引导产品环境,以及确保备份环境存在。5)根据管辖范围需求来重启系统。在处理包时,该包要么包含的是用于系统更新的tar文件,要么包含的是关于整个存储媒体的某个分区的映像。如果存在映像文件,则通过执行检查来确保该映像具有用于该媒体的正确大小。在安装新游戏时,该处理是借助tar文件执行的。在这里将会执行检査,以便确保有足够空间来保持新的或是经过更新的游戏文件以及清单文件。对系统上的已有游戏来说,这些游戏将不做备份。如果游戏无法运行,那么我们希望必须从服务器再次下载该游戏。安装依存关系安装依存关系和先决条件是可以互换使用的。这其中的每一个都具有一组模块、硬件和以及存储依存关系,并且这些依存关系必须在可以安装模块之前已经存在。关于依存关系的检查是如下执行的模块依存关系——模块依存关系是由其模块ID和发行信息定义的。硬件依存关系——该模块依存关系是由硬件ID和版本号定义的。存储依存关系——由存储类型和所需要的自由空间数目定义。对发行信息和硬件版本号来说,测试标志将会定义如何识别是否满足依存关系。该依存关系检査标记具有下列值.0——不执行检查。1—-发行编号或版本号必须等于已安装硬件或模块的发行号或版本号。2——发行版编号或版本号必须大于已安装的发行号或版本号。3——版或版本必须大于或等于已安装的版或版本。setScript命令结构这部分描述的是将被传递到下载安装逻辑中的setScript命令结构。<table><row><column>字段条目</column><column>字段类型</column><column>描述</column></row><row><column>setScriptID</column><column>字符串</column><column>用于setScript命令的唯一标识符</column></row><row><column>startTime</column><column>time—t</column><column>规定所附命令何时可以开始处理的起始时间帧</column></row><row><column>endTime</column><column>Time—t</column><column>规定所附的脚本何时可以开始处理的时间窗口的末端</column></row><row><column>disableType</column><column>整型</column><column>指示用于将EGM禁用而开始处理所附脚本的条件。</column></row><row><column>initiateType</column><column>整型</column><column>指示开始处理所附命令列表所需要发生的事件。</column></row><row><column>authorizeLiist</column><column>串阵列</column><column>授权包安装所需要的主机的列表</column></row><row><column>packageList</column><column>串阵列</column><column>该脚本命令将要处理的包ID的列表。</column></row><table>startTime/endTime——该字段是用于定义其中setScript命令可以开始执行处理的时间窗口的时间起始端和结束端的日期和时间戳。在包列表内部,没有一个包会在达到该日期和时间之前开始执行处理。endTime是setScript命令无法启动之后的日期和时间戳。处理的启动取决于满足initiateType以及满足所有授权。如果没有满足这些条件,则中止setScript命令的处理,直至再次进入时间窗口。一旦第一个包开始处理,则不考虑时间窗口,所有其它包都会被处理。disableType——该字段规定的是如何禁用EGM。在进入时间处理时间窗口之前,EGM是不能禁用的。一旦满足禁用条件,那么EGM将被禁用,并且将会等待执行授权。如果在处理时间窗口内部没有执行授权,则停止setScript命令,并且重新启用EGM。然后,setScript命令将被放回到等待处理队列。initiateType——它规定的是为了开始安装而需要采取何种操作。这其中包括主机授权、本地操作方授权等等。对主机授权的情况来说,这些事件可以在禁用EGM之前发生。在处理时间窗口期间,所有初始需求都必须得到满足。authorizeList——该字段是必须对setScipt命令执行授权,以便启动处理的主机ID的列表。如果主机规定不准许授权,则终止关于setScript命令的处理。PackageList——该字段是将要处理的包的列表。这些包将会按照其在setScript命令内部指定的顺序进行处理。一个包内部的模块依存关系可以由包列表内部的另一个包中的模块来满足。当包规定删除某个模块时,这时会将该模块清单文件内部的所有文件连同清单文件本身一起从系统中删除。下载包描述本文档被用于规定下载包的细节设计。每一个下载包都是由不同的部分组成的。每一个部分都始于部分ID、部分大小以及部分内容。这些部分的内容取决于规定的包部分的类型。具体的包部分是包报头——它描述的是整个包。模块条目——包可以包含一个或多个模块条目。依存关系条目——在每一个模块之后。硬件和软件依存关系是为模块定义的。每一个模块既可以没有依存关系,也可以具有多个依存关系。文件条目——不同类型的文件条目将被定义。每一种类型都具有自己的唯一ID。处于包报头之后的所有部分都应该被认为是包数据的一部分。SHA1散列值是在整个包数据上计算得到的。在该散列值计算中,该散列值并不包含报头。每一个报头都包含一个整数报头。这个第一整数是部分ID,并且第二整数是该部分自身的大小。后续部分描述的是包含在每一个包部分内的信在下表中可以看到包报头的内容:<table><row><column>字段</column><column>描述</column></row><row><column>mcnt</column><column>整型</column><column>包含在包内部的模块的数目</column></row><row><column>cent</column><column>整型</column><column>包中定义的命令的数目</column></row><row><column>compression</column><column>整型</column><column>应用于包数据的压縮处理</column></row><row><column>psiz6</column><column>整型</column><column>包数据大小</column></row><row><column>hsize</column><column>整型</column><column>报头数据大小</column></row><row><column>type</column><column>整型</column><column>包类型</column></row><row><column>Time—stamp</column><column>Time—t</column><column>在构建包时的时间戳</column></row><row><column>vString</column><column>字符</column><column>包数据验证字串(SHAl或HMAC)</column></row><row><column>pkgld</column><column>字符</column><column>包的唯一标识符</column></row><row><column>release</column><column>字符</column><column>包的发行信息(版本,构建号等等)</column></row><row><column>description</column><column>字符</column><column>包内容描述</column></row><row><column>builderID</column><column>字符</column><column>创建包的厂家的标识</column></row><table>包报头是与包包含在一起的第一个部分,并且其在大小方面具有固定的长度。包数据压縮类型是:<table><row><column>压缩</column><column>描述</column></row><row><column>1</column><column>未压缩数据</column></row><row><column>2</column><column>使用gzip协议压縮的数据</column></row><row><column>3</column><column>使用bzip2协议压縮的数据</column></row><table>下列包类型将被标识:<table><row><column>包类型ID</column><column>描述</column></row><row><column></column><column>1</column><column>下载包是从包分发服务器下载的</column></row><row><column></column><column>2</column><column>上传包在EGM创建并被上传到服务器</column></row><row><column></column><column>3</column><column>通信包是从服务器下载的,并且只包含将要在EGM上运行的命令</column></row><table>模块部分在一个包内部可以存在多个模块部分。该模块部分是用包部分ID号2标识的,并且其大小是在下表中描述的模块信息大小。<table><row><column>字段</column><column>类型</column><column>描述</column></row><row><column></column><column>类型</column><column>整型</column><column>模块类型</column></row><row><column></column><column>动作</column><column>整型</column><column>对模块采取的动作(添加,更新,删除)</column></row><row><column></column><column>模块依存关系cnt.</column><column>整型</column><column>关于该模块的模块依存关系的数目</column></row><row><column></column><column>硬件依存关系cnt.</column><column>整型</column><column>关于该模块的硬件依存关系的数目</column></row><row><column></column><column>存储依存关系cnt</column><column>整型</column><column>关于规定的存储依存关系的数目</column></row><row><column></column><column>时间戳</column><column>整型</column><column>与模块何时构建相关联的时间戳</column></row><row><column></column><column>版本号</column><column>字符串</column><column>特定的版本,主要、次要、构建和版本编号</column></row><row><column></column><column>名称</column><column>字符串</column><column>空值将会终止包含模块名称的字符串</column></row><row><column></column><column>描述</column><column>字符串</column><column>用于描述模块的可选的空值终止字符串</column></row><table>每一个模块都被指定了一个唯一的模块名称。该名称的前三个字符是特定于制造商的,并且这些字符被用于标识模块的制造商。在一个实施例中,该名称的大小在长度方面不超出32个字符,但这仅仅是一个实例。硬件、模块和存储依存关系规定的是在包中包含的每种类型的依存关系的数目。类型被用于标识模块的类型。在下表中标识了所使用的模块类型:<table><row><column>模块类型ID</column><column>描述</column></row><row><column></column><column>OS</column><column>EGMOS模块。Linux和游戏核心、库以及实用程序</column></row><row><column></column><column>gm</column><column>EGM游戏模块</column></row><row><column></column><column>fw</column><column>固件模块</column></row><row><column></column><column>dt</column><column>数据模块。包含EGM唯一数据。</column><column>管辖区域模块</column></row><row><column></column><column>df</column><column>定义模块——用于定义EGM内部的新的模块</column></row><row><column></column><column>cf</column><column>配置模块——用于规定os、EGM和游戏的配置信息</column></row><table>包文件定义包内部的文件条目与包中标识的先前模块相关联。也就是说,在将下一个模块或命令定义与其跟随的模块关联之前将会遭遇到处于模块定义之后的所有文件条目。在以下实例中,模块1具有与之关联的文件1和2,并且模块2具有与之关联的文件3和4。_包报头_模块l_文件1_文件2_模块2_文件3_文件4_所有文件定义全都使用了相同的控制结构。<table><row><column></column><column>字段</column><column>类型</column><column>描述</column></row><row><column></column><column>类型</column><column>整型</column><column>跟随的类型文件</column></row><row><column></column><column>文件大小</column><column>整型</column><column>文件大小</column></row><row><column></column><column>文件名</column><column>字符串</column><column>包含完整限定的路径的文件名</column></row><row><column></column><column>目的地</column><column>字符串</column><column>存储了文件的完整限定的文件名。用于映象文件。</column></row><table>下文中描述的是可以包含的文件的类型清单文件部分数据区域包含的是以下三个字段<table><row><column></column><column>字段</column><column>类型</column><column>描述</column></row><row><column></column><column>类型</column><column>整型</column><column>清单类型,OS(1),游戏(2)</column></row><row><column></column><column>清单名称</column><column>字符串</column><column>清单文件名(最大32个字符)</column></row><row><column></column><column>文件数据</column><column>二进制</column><column>清单文件内容</column></row><table>Type字段被用于确定将清单文件拷贝到哪一个清单子目录。该清单将会拷贝到名为一个名为manifest的目录中,并且将会拷贝到OSl或Game子目录中。Tar文件——(包ID类型4)针对已安装模块以及游戏安装的更新将会采用tar文件的形式。分区映像文件——(包ID类型5)分区映像部分包含了EGM上的特定分区的完整映像。跟随在部分报头数据之后的是将要用映像替换的分区的标识,其后跟随的是映像自身。EGM会为映像文件分配一个名称,以便在EGM上进行处理。该分区标识是一个空值终止字符串。在任何设备上,包含清单核实文件的分区始终是分区1。这个分区不能使用分区映像来更新。设备映像文件——(包ID类型6)设备映像文件部分包含了EGM上的设备的完整映像,例如整个紧凑型闪存。当指定设备映像时,假设清单文件包含在映像文件自身内部,并且由此不包含在包清单部分中。跟随在部分报头之后的是一个空值终止字串,它包含的是映像表示的设备,例如dev/had,其后跟随的则是映像自身。EGM会在本地为映像文件指定一个名称。依存关系部分硬件依存关系(包ID类型7)硬件依存关系部分标识的是在可以安装先前定义的模块之前必须在系统上存在的硬件。与包中的每一个模块相关联的这些硬件依存关系的数目可以是任意的。该硬件依存关系部分包括在EGM己知的硬件ID,版本号以及将要执行的压缩类型(等于、大于、或者大于等于)。模块依存关系(包ID类型8)模块依存关系规定的是在安装先前定义的模块之前必须在EGM上存在的模块。与包中的每个模块相关联的模块依存关系的数目可以是任意的。该模块依存关系包括模块标识、模块版本号以及规定了将要对照版本号执行的比较类型的比较标识符(等于,大于,或者大于等于)。存储依存关系(包ID类型9)存储依存关系定义的是在EGM上存在的存储器的数目。存储记录中的字段规定了存储器类型、即RAM、ROM、磁盘等等,以及依照指定的存储类型而必须存在的空间数目或空闲空间数目。包记录标识符它描述的是当前为下载包部分分配的标识值。<table><row><column>包部分类型</column><column>ID</column><column>描述</column></row><row><column></column><column>包报头</column><column>1</column><column>包特有的信息</column></row><row><column></column><column>模块定义</column><column>2</column><column>定义了包含在包中的模块</column></row><row><column></column><column>清单文件</column><column>3</column><column>与先前模块定义相关联的清单文件</column></row><row><column></column><column>Tar文件</column><column>4</column><column>与先前模块定义相关联的Tar文件</column></row><row><column></column><column>分区映像</column><column>5</column><column>与先前模块定义相关联的分区映像文件</column></row><table>设备映像文件6与先前模块定义相关联的设备映像文件硬件先决条件7与先前模块定义相关联的硬件先决条件/依存关系模块先决条件8与先前模块定义相关联的模块先决条件/依存关系存储依存关系9与先前模块定义相关联的存储先决条件依存关系权利要求1.一种用于向一台或更多台游戏机提供软件的系统,包括软件分发点,用于产生下载包,以及作为多播的一部分将该包作为多个分组发送到一台或更多台游戏机;在每一台游戏机接收这些分组,并且确定是否接收到所有分组;向软件分发点请求丢弃的分组;在多播中重新发送所有丢弃的分组。2.权利要求l的系统,其中多播是作为后台进程进行的。3.权利要求l的系统,其中游戏机上的下载控制进程与系统管理点迸行通信,以便控制包下载。4.权利要求3的系统,还包括处于游戏机上的下载接收机、下载驱动器以及包安装器。5.权利要求4的系统,还包括在安装之前核实包。6.权利要求5的系统,还包括在安装包之前检査软件先决条件。7.权利要求6的系统,还包括在需要时,在安装包之前下载软件先决条件。8.权利要求7的系统,还包括在安装包之前检查硬件先决条件。9.权利要求l的系统,还包括将游戏机上的存储器分区。10.权利要求9的系统,其中该分区包括清单分区、游戏分区以及下载分区。11.权利要求8的系统,还包括在满足安装条件时禁用游戏机。12.—种用于初始化游戏机的系统,包括游戏机上的存储媒体,具有引导指令;通信装置,该通信装置在初始启动游戏机时使用弓I导指令来初始化与服务器的通信,以及从服务器请求软件包;游戏机,该游戏机接收软件包,并且使用引导指令将软件包安装在游戏机上。13.权利要求12的系统,其中引导指令包括用于通信的服务器默认地址。14.权利要求13的系统,其中该服务器是SMP网络服务器。15.权利要求12的系统,其中引导指令从服务器请求默认的引导包。16.权利要求15的系统,其中该服务器是SDP。17.—种用于向一台或更多台游戏机提供软件的方法,包括在软件分发点上产生下载包;作为多播的一部分,将作为多个分组的包发送到一台或更多台游戏机;在每一台游戏机接收分组;确定是否接收到所有分组;向软件分发点请求丢弃的分组;在多播中重新发送所有丢弃的分组。18.权利要求17的方法,其中多播是作为后台进程来进行的。19.权利要求17的方法,其中游戏机上的下载控制进程与系统管理点进行通信,以便控制包下载。20.权利要求19的方法,还包括处于游戏机上的下载接收机、下载驱动器以及包安装器。21.权利要求20的方法,还包括在安装之前核实包。22.权利要求21的方法,还包括在安装包之前检查软件先决条件。23.权利要求22的方法,还包括在需要时,在安装包之前下载软件先决条件。24.权利要求23的方法,还包括在安装包之前检查硬件先决条件。25.权利要求17的方法,还包括将游戏机上的存储器分区。26.权利要求25的方法,其中该分区包括清单分区、游戏分区和下载分区。27.权利要求24的方法,还包括当满足安装条件时禁用游戏机。28.—种初始化游戏机的方法,包括在游戏机的存储媒体上提供引导指令;在初始启动游戏机时使用该引导指令来初始化与服务器的通信;从服务器请求软件包;接收软件包,以及使用引导指令在游戏机上安装软件包。29.权利要求28的方法,其中引导指令包括用于通信的服务器默认地址。30.权利要求29的方法,其中服务器是SMP网络服务器。31.权利要求28的方法,其中引导指令从服务器请求默认的引导包。32.权利要求31的方法,其中该服务器是SDP。全文摘要本系统和方法允许娱乐场操作方管理电子游戏机(EGM)群组。通过这种管理新游戏设备集合或已有集合(即群组)的处理,可以减少下载或配置大量EGM所需要的劳动。例如,新软件可以从某个中心位置下载到EGM群组,并且还可以从中心位置配置EGM。相应地,这种操作效能将会降低维护成本,并且会将维护或设置EGM所导致的EGM停机时间减至最少。文档编号A63F9/00GK101346723SQ200680042129公开日2009年1月14日申请日期2006年9月11日优先权日2005年9月12日发明者乔希·拉尔森,克里斯·阿伯盖斯特,威尔·琼斯,安东尼·格林,帕特尔·帕维库玛,恩·卡迪马,戴尔·谢伯德,托马斯·巴肯尼,特拉维斯·格林,罗伯特·W·克劳德申请人:百利游戏有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1