专利名称:用于蓝光光盘的java生存周期模型的制作方法
技术领域:
本发明涉及光学存储器的领域。本发明尤其涉及蓝光光盘、播放器以及它们的逻辑规范。
背景技术:
BD-ROM(蓝光光盘ROM)是消费电子设备、软件公司和娱乐产业的协会从事的即将到来的光学存储器规范,其中它们期望集成最大的存储器、重放以及软件技术以开发下一代载体和播放器,其将新用户体验机会和高存储密度结合。BD-ROM是下一代只读光盘标准,它利用蓝激光以便每一数据层可能获得至少25GB的容量。光学标准可以定义载体的物理和逻辑格式。本发明涉及光学载体的逻辑格式,即光盘上的应用层,在此将不讨论物理格式。用于BD-ROM的主要预测应用是高清晰度电视,然而,诸如web浏览、聊天应用或游戏之类的web连接和交互性也在该标准的范围内。
BD-ROM标准的当前草案规定了电影模式,其中通过与电影对象的交互体验数字音频/视频(A/V)数据。电影模式的概念包含与数字通用光盘类似的功能,该电影模式主要涉及A/V内容的播放。电影对象可以启动包括存储在盘上的一系列A/V序列的播放列表并且也允许内容创作者对有关A/V重放进行一些前期和后期处理。电影模式还包括标题,该标题作为用户查看的项目并且用户可以选择该标题来重放。索引表将标题与电影对象链接。
除了这个A/V重放能力之外,交互式服务将可用于新一代光学介质并且需要一种编程环境来启动存在于盘上的交互性应用程序。产业协会把具有现有的虚拟机、应用编程接口以及库的JavaTM,SUN技术看作好的候选技术以允许光学存储器载体上交互性应用程序的可行性。然而,在个人计算机环境适应消费电子设备中出现若干问题,用户期望和体验是不同。
第一个问题是软件应用程序可能包含在研发或测试期间没有暴露出来的错误,并且这些没有检测到的代码错误应该不会阻止读取BD-ROM或者阻止运行BD-ROM播放器。的确,应用程序出乎意料地停止的事实也应该不会导致播放器停止。第二个问题(这个问题是Java所特有的)通常是在Java中,一个应用程序在Java虚拟机的一个实例上运行并且停止该应用程序通常意味着当必须释放到本地平台的所有钩(hook)时停止Java虚拟机。停止和开始虚拟机意味着下载与环境有关的所有类文件并且这个过程占用30秒。然而,约为若干秒的延迟在消费电子应用中是不可接受的。
发明内容
因此,发明人寻找了一种缓解这些缺点的解决方案并且已知的多媒体家庭平台(MHP)节目环境提供它们一个基础以开发其中应用程序显示出与MHP定义的生存周期模型相似的生存周期模型的一个环境。
MHP是用于交互式电视的基于Java标准。在MHP中,应用程序可以作为一个独立的应用程序而运行或者它可以执行所谓的Xlet接口。Xlet通常是执行简单功能(例如,电子节目指南(EPG)、交互式游戏、增强的内容、管理广播介质流水线、聊天应用、菜单列表等等)的小程序。Xlet是用于Java应用程序的另一名字并且像applet,Xlet受运行它们的软件的控制。在applet的情况下,下层软件是浏览器或applet阅读器。在Xlet的情况下,下层软件是数字电视接收机中的机顶盒或者支持Java平台的任何其他消费电子设备。Xlet不包括主方法并且执行定义了Xlet的生存周期方法特征(signatures)的Xlet接口。Xlet接口定义了生存周期方法以用信号通知下面状态变化创建、启动、开始、暂停和破坏。所有Java电视实现都具有应用程序管理器,该应用程序管理器调用Xlet的生存周期方法通过它们不同的应用程序状态移动一个或多个Xlet。
例如,观众可能正播放游戏连同游戏竞赛节目并且决定查看节目列表。如果节目列表和游戏都是Xlet,则用信号通知接收机中的应用程序管理器当观众选择节目列表时,Xlet存在。此时,应用程序管理器暂停节目Xlet,并且接收机将节目列表Xlet下载到接收机中。应用管理器下载并且启动节目列表Xlet。
基于Xlet概念,发明人实现了用于BD-ROM环境(播放器和载体)的相似类型的应用程序。因此,本发明涉及包括具有预定生存周期模型的至少一个Java对象应用程序的光学存储器载体。生存周期模型定义了至少三种方法,当调用这些方法时导致应用处于下面相应状态之一暂停状态、活动状态、不活动状态。载体还包括加载器应用程序,该加载器应用程序被配置以在Java虚拟机上运行。这个加载器应用程序具有主方法以及生存周期,该生存周期与载体到扫描设备的插入相链接(link),并且加载器应用程序进一步被配置以控制对象应用程序的生存周期。加载器也是这样的以致于它把对象应用程序控制到暂停状态或不活动状态,无论何时调用存储在载体上的另一对象应用程序。
本发明将最初在MHP中使用的一些概念应用于BD-ROM盘,该BD-ROM盘现在加载至少一个Java对象应用程序和加载器应用程序。Java对象应用程序和加载器应用程序在一些方面类似于对应的Java对象应用程序和应用程序管理器。在本发明中,仅仅加载器应用程序包括主方法并且加载器应用程序控制对象应用程序的生存周期。加载器应用程序的生存周期与盘到扫描设备的插入相链接,这意味着当插入和扫描盘时启动载入加载器应用程序并且随后当从设备弹出盘时中断载入加载器应用程序。因此,加载器应用程序在盘的持续时间内在Java虚拟机上运行并且当盘在设备中时Java虚拟机结果没有被取消或重新启动。因此,缓解了与上述的Java虚拟机的引导相关联的其中一个缺点。另外,本发明的一个特性是加载器应用程序每次仅仅允许运行一个对象应用程序并且如果用户或系统调用另一对象应用程序同时第一对象应用程序正运行,则导致第一对象应用程序进入暂停或不活动状态。本发明在各种方面不同于MHP。首先,在MHP中,多于一个的Xlet同时运行,而本发明每次仅仅允许运行一个Java对象应用程序,并且加载器应用程序被存储在具有Java对象应用程序的盘上并且不在其中存储Java虚拟机的播放器中。本发明的一个优点是为开发者共同体提供可靠且接收良好的计算环境以开发用于光介质的应用程序。
现在参考附图通过示例将更加详细地描述了本发明,其中图1示出了Java环境的基本部分;图2示出了本发明的盘/播放器系统的逻辑部分;以及图3示出了本发明的Java对象应用程序的方法和状态。
具体实施例方式
附图中具有相似或相应特性的元件通过相似参考数字来标识。
图1说明了典型Java环境的基本部分。典型Java环境包括在设备的硬件110上运行的软件部分。该设备可以是个人计算机或消费电子设备,例如网络读写板、个人数字助理、游戏控制台、机顶盒等。Java技术被设计使相同应用程序在不同种类网络和各种硬件结构上执行。Java虚拟机(VM)120是Java平台的第一部分,其启用中性的体系结构技术。Java VM120是可移动Java技术平台的两个主要元件之一,其中Java编程语言编译器产生代码。Java VM120被修改或关闭(ported)以适合特定硬件110。仅仅为软件的Java平台除了JavaVM120之外还包括Java应用程序编程接口(API)130。Java API130是现成软件部分的大集合,它提供许多有用的能力,例如图形用户接口(GUI)、连通性、I/O等等。Java API130被分组到相关类和接口的库中;这些库在该产业中也称为包(package)。然后,在Java平台120,130之上,执行以Java代码编写的开发者应用程序组140。
图2示出了本发明的BD-ROM系统的框图。该系统包括盘200和播放器100。播放器100包括硬件110、具有Java库的应用程序编程接口125和Java VM120。BD-Rom盘或蓝光盘200包括加载器应用程序210、Java对象220、230、240,A/V数据260和电影对象250。
必须注意的是,尽管在BD-Rom的环境中将描述本发明,但是本发明包括满足本发明特性的任何现有或将来类型的光学或非光学存储器载体,不管该载体是只读、可写还是可重写的。
如在介绍部分所解释的,BD-ROM盘200可以启用交互式模式和电影模式。在图2中,通过块260和250说明电影模式。电影对象250与存储在盘200的数据存储部分260中的A/V序列的一个或多个播放列表相关联并且电影对象250允许观看和处理A/V内容260。例如,电影对象250指向例如形成电影的A/V剪辑的播放列表。用户可以通过索引表中的标题来选择和播放A/V剪辑或电影。索引表可以位于根菜单中并且索引表的一部分可显示给用户,以用于选择。
交互式模式包括Xlet或Java对象220、230、240和加载器应用程序210。Java对象220、230、240除了提供诸如聊天、菜单列表、屏幕动画、游戏、因特网浏览等之类的交互式应用程序之外,还能够控制A/V重放。Java对象220-240和加载器应用程序210可以一起存储在盘200上作为一个单独的Jar文件。Jar文件是Java存档文件,它可以由Java VM120自动地压缩、加载和解压缩。这样一个Jar文件可以包括明显文件(manifest file),它描述包括在存档中的文件并且表示包含加载器应用程序210的文件。加载器应用程序210包括主方法并且可以是的确存储在盘200上的唯一应用程序。加载器应用程序210的生存周期固有地与盘200链接,当盘200插入播放器100时加载器应用程序的生存周期被启动加载;当盘200从播放器100移出时该加载器应用程序的生存周期停止。因此,加载器应用程序在盘200的持续时间内运行。相反地,Java对象220-240不包括主方法并且仅仅在盘200的持续时间的一部分内运行。
Java对象220-240能够启动A/V序列的播放列表、捕捉和处理用户操作和命令,例如用户按下遥控键并且最后将控制传送给电影对象250。在这个实施例中,当将控制从Java对象220-240传送到电影对象250时,加载器应用程序210将取消或暂停Java对象220-240,正如在下文根据图3所说明的生存周期模型将要解释的。然而,尽管加载器应用程序210能导致Java对象220-240处于不活动状态340,但是加载器应用程序210仍在Java VM120上运行,该Java VM120不被终止。
加载器应用程序210保存在盘200上存在的一系列所有应用程序或Java对象220-240并且控制所有对象220-240的相应生存周期。加载器应用程序210通过调用关于应用程序或对象220-240状态的其方法215、225、235、245或255来发出命令给对象220、230或240。应用程序Java对象220-240可以处于以下四个状态之一中启动状态310、暂停状态320、活动状态330和不活动或取消状态240,并且对象220-240的生存周期包括可以调用的四种方法315-355。加载器应用程序210首先加载存储器中的Java对象220-240为加载状态310,它基本上是自动地或通过初始化进行,并且通过加载器应用程序210调用初始化方法315,迫使进入暂停状态320,在该暂停状态320应用程序或对象220-240正等候命令。暂停状态320中的Java对象220-240使用来自设备100和Java VM120的最小资源,并且在设备100的屏幕或任何输出上不出现任何内容。从暂停状态320中,加载器应用程序210调用启动方法325并且将Java对象220-240激活到活动状态330,在该活动状态330中,与Java对象220-240相关联的应用程序正运行。从活动状态330,加载器应用程序210通过调用暂停方法265将Java对象220-240暂停回到暂停状态320或者通过调用破坏方法335将取消活动Java对象220-240进入到状态340。加载器应用程序210破坏来自状态310、320或330的任何状态的Java对象220-240,或者加载器应用程序210等待直到Java对象220-240自动地终止为止。
在一个实施例中,按照如下实现暂停状态320。在暂停状态320中,Java对象220-240必须停止提供任何服务并可能释放资源,并且变为静止。释放所有资源包括释放所有用户事件和控制,例如遥控键、键盘、声音输入、触摸屏输入等等。Java对象220-240不保持对这些控制和资源的专门访问,并且不必响应由它们产生的事件。可替换地,Java对象220-240保持对一个或多个A/V控制资源的暂时访问。例如,在Java对象220-24迫使进入暂停状态320之前,作为播放列表一部分而启动的任何A/V内容可以继续运行。然而,Java对象220-240不启动任何新的播放列表或启动新内容的显示,例如播放列表上的下一项,或响应与A/V内容相关的事件。
如上所述的,Java对象通过调用其启动方法325而从其暂停状态320返回。当Java对象220-240返回活动状态330时,Java对象220-240收回在暂停状态320中释放的所有资源。这意味着注册用户事件,屏幕显示在启动方法325中实现或者从启动方法中开始。在启动方法之后,注册对A/V控制的访问被执行并且被保持直到取消Java对象220-240或Xlet。在计算环境中,注册用户事件是必需的以便接收用户命令和输入。如果不包括注册过程,则Java对象将不转送用户输入并且因此将对它们不响应。
如上所述的,可以将控制从Java对象220-240传送到电影对象250。当控制从Java对象220-240传送到电影对象250时,加载器应用程序210取消Java对象220-240,正如下文根据图3所解释的。然而,尽管加载器应用程序210可以导致Java对象220-240处于不活动状态340,但是加载器应用程序210仍在Java VM120上运行,该Java VM120不被终止。加载器应用程序210在背景中运行直到控制被传送回加载器应用程序210,在这个情况中加载器应用程序210运行与根菜单相关联的Java对象220-240,该根菜单示出了交互式标题的列表。可替换地,电影对象250示出了交互式标题的菜单而不是Java对象220-240,并且当选择一个交互式标题时,控制被传送到加载器应用程序210并且启动与所选择标题链接的Java对象220-240。
当用户按压Java标题期间的菜单时,也需要暂停状态320。当这发生时,启动菜单并且启动另一标题。如果用户按下恢复命令,则播放器100恢复当第一菜单调用发生时最初播放的标题。如果用户再次选择菜单按钮,则暂停当前播放的标题并且取消先前的标题。播放器100具有一个暂停的Java对象220-240,当用户要求恢复时,该对象220-240继续。如果当用户试图暂停第二Java对象时暂停Java对象220-240,则第一暂停的Java对象被取消以便可以暂停第二Java对象。
必须理解的是,本发明包括每次运行一个应用程序Java对象220-240。因此,在一个典型实施例中,加载器应用程序210在启动时启动与交互式菜单的显示相关联的Java对象220-240。用户可以从多个交互式标题中进行选择,其中每个显示的标题与另一Java对象220-240链接。当用户选择一个标题时,加载器应用程序210取消或暂停菜单Java对象220-240,并且启动与该标题链接的Java对象220-240。例如,新Java对象220-240与A/V内容、游戏的播放或者与包括多个可选择项目或标题的另一菜单列表的显示相关联,该另一菜单列表与另一组Java对象的相关。
在另一典型实施例中,需要一种机制,该机制用信号通知哪个Java对象220-240被允许利用哪些标题来运行。需要这种机制以允许容易的实现并且能够精确的启动且关闭Java对象。索引表被定义,以表示当选择一个标题时哪个(或哪些)电影对象应该运行。索引表存储索引,这些索引存储了到电影对象250或Java对象220-240的链接。
在另一实施例中,电影对象250可以被实现为执行等同功能的Java对象,并且在这种情况中,盘100规定了完整的Java环境。
对本领域的技术人员应该显而易见的是,许多其他可替换的实施例也属于所附加权利要求的范围。在这一方面,下面进行了结束语评论。存在通过硬件项或软件项或二者实现功能的许多方法。例如,在此所示出的附图是图解性的,每个图仅仅表示一个实施例。因此,尽管附图示出了作为不同块的不同功能,但是这一点也不排除单个硬件项或单个软件项执行若干功能。也不排除通过多个硬件项、多个软件项或二者的集合来执行一个功能。
权利要求
1.一种存储器载体,包括具有预定生存周期模型的至少一个Java对象应用程序,其包括至少三种方法,当这些方法被调用时导致Java对象应用程序处于下面对应状态之一暂停状态、活动状态和不活动状态;在Java虚拟机上运行的加载器应用程序,其具有主方法和生存周期,该生存周期与载体到扫描设备的插入相链接,并且加载器应用程序配置成控制对象应用程序的生存周期;其中当调用载体上另一Java对象应用程序时,加载器应用程序控制对象应用程序为暂停或不活动状态。
2.根据权利要求1的载体,其中载体包括光学存储部分。
3.根据权利要求1的载体,其中对象应用程序包括交互式服务。
4.根据权利要求1的载体,其中对象应用程序和加载器应用程序被存储在载体上的Java存档文件中,该Java存档文件包括指向加载器应用程序的明显文件。
5.根据权利要求1的载体,其中对象应用程序包括重放视频序列的控制。
6.根据权利要求1的载体,还包括索引表,用于将对象应用程序与标题或菜单项相关联。
7.根据权利要求1的载体,其中加载器应用程序配置成将对象应用程序控制为暂停状态并且通过与扫描设备相关联的资源的应用程序控制释放。
8.根据权利要求6的载体,其中所述资源包括播放器的显示。
9.根据权利要求1的载体,其中加载器应用程序配置成控制对象应用程序为启动状态并且控制向系统的注册以接收用户事件。
10.根据权利要求1的载体,其中载体还包括一个相关联的电影对象以控制音频和/或视频序列的重放。
11.一种系统,包括存储Java虚拟机的扫描设备;存储载体,其包括具有预定生存周期模型的至少一个Java对象应用程序,其包括至少三种方法,当这些方法被调用时导致Java对象应用程序处于下面对应状态之一暂停状态、活动状态和不活动状态;当载体被插入扫描设备时被配置在Java虚拟机上运行的加载器应用程序,其具有主方法和生存周期,该生存周期与载体到扫描设备的插入相链接,并且加载器应用程序配置成控制对象应用程序的生存周期;其中,当调用载体上另一Java对象应用程序时,加载器应用程序控制对象应用程序为暂停或不活动状态。
全文摘要
光学存储器载体利用实现为Java对象的应用程序来加载,该Java对象启动交互式服务,例如游戏、交互式A/V内容重放、web浏览。每个Java对象包括至少三种方法,用于设置应用程序为不活动状态暂停状态或活动状态。也利用包括主方法的加载器应用程序来加载该载体。加载器应用程序控制载体上存在的所有Java对象的对应生存周期并且控制Java对象的相应方法。加载器应用程序每次仅仅允许运行一个Java对象。加载器应用程序的生存周期与该盘相链接,当盘插入设备时,将加载器应用程序加载到存储器中;并且当移走盘时,取消加载器应用程序。该设备运行Java虚拟机,加载器应用程序被配置在Java虚拟机之上运行。因为加载器应用程序的生存周期与该盘相链接,所以Java虚拟机在盘插入设备的时间内运行,并且当Java对象暂停或取消时不取消Java虚拟机。
文档编号G06F9/48GK1864135SQ200480029571
公开日2006年11月15日 申请日期2004年9月30日 优先权日2003年10月10日
发明者P·S·纽顿, D·P·凯利 申请人:皇家飞利浦电子股份有限公司