设备间的无缝应用会话重构的制作方法

文档序号:7751057阅读:212来源:国知局
专利名称:设备间的无缝应用会话重构的制作方法
技术领域
本发明涉及一种无缝重构在第一电子设备上发起的至第二电子设备的应用会话 的方法。更详细地,本发明涉及捕捉第一设备上的包括第一设备媒体会话位置的应用会话 数据,以及涉及通过将重构的应用会话定位在与接收到的第一设备媒体会话位置相对应的 第二设备媒体会话位置处而在第二设备上无缝地重构应用会话。
背景技术
用户通常利用多个电子设备来执行任务,该多个电子设备例如桌上型计算机、膝 上型计算机、移动电话、音频播放器等。这些电子设备通常执行彼此相似的功能或应用会 话。例如,上述列出的每个电子设备能够播放音频文件并且一些电子设备能够播放视频文 件。用户通常基于他们的周围环境而选择特定的电子设备来利用。例如,用户在办公 室可以利用桌上型计算机,在公共汽车上可以利用移动电话并且在机场可以利用膝上型计 算机。当用户在第一设备和第二设备之间切换时,用户需要在第二设备上执行用户已经在 第一设备上执行的动作以将第二设备上的应用会话带至与它们在第一设备上的相同点。例 如,用户可以在第一设备上查看网页并且为了在第二设备上查看相同的网页,用户需要再 次输入网页地址。在另一个例子中,用户可以在第一设备上看视频并且为了在第二设备上 的相同位置在第二设备上开始看视频,用户需要将视频快速转发到适当的位置。

发明内容
第一设备捕捉在第一设备上正在执行的每个应用会话的会话数据并且将会话数 据提供至第二设备以用于第二设备重构应用会话。第一设备通过识别当前在第一设备上执 行的一个或多个应用会话来开始会话数据捕捉。每个应用会话包括媒体对象和会话数据。 会话数据包括与媒体对象相对应的媒体对象识别符(例如文件名、URL等)和第一设备媒 体会话位置(例如滚动位置、回放位置、光标位置等)。第一设备捕捉会话数据并将捕捉到 的会话数据发送到一个或多个第二设备。第二设备适于使用接收到的会话数据重构至少一 个应用会话。在重构过程中,第二设备将应用会话定位在与接收到的第一设备媒体会话位 置相对应的第二设备媒体会话位置。第二设备还具有与第一设备相似的能力来捕捉会话数 据并将该会话数据提供给第一设备,第一设备相应地重构应用会话。前面为发明内容并且由此包含必要的简化概括并省略细节。从而,本领域普通技 术人员应该理解到发明内容仅用于示例而不用于任何方式的限制。仅由权利要求限定的本 发明的其它方面、发明特征和优势将在下面不受限的具体实施方式
中变得显而易见。


通过参考附图可以更好地理解本发明并且本领域技术人员可以显而易见本发明 的多个目的、特征和优势,其中
图1是能够实施这里描述的方法的数据处理系统的框图;图2提供了图1所示的信息处理系统环境的扩展以说明这里描述的方法能够在连 网的环境下操作的多种信息处理系统上执行;图3是示出通过各种通信手段在一个或多个第二设备之间交换会话数据的第一 设备的示例框图;图4是示出第一设备将会话数据提供至第二设备以允许第二设备在与第一设备 上的回放位置对应的第二设备媒体会话位置开始播放音频文件的图;图5是示出在用于利用这里描述的本发明的实施例的设备中包括的各种硬件和 软件部件的示例图;图6是示出捕捉对于包括媒体会话位置的数据页面的会话数据的插件的图;图7是示出在从第一设备向第二设备提供会话数据时采取的步骤的高层流程图;图8是示出在第一设备捕捉会话数据时采取的步骤的流程图;图9是示出在第二设备处理会话数据时采取的步骤的流程图;以及图10是示出在第二设备上利用接收到的会话数据来重构应用会话时采取的步骤 的流程图。
具体实施例方式在下面的说明书和附图中描述了某些特定细节以提供本发明的各种实施例的完 整理解。然而,在下面的公开中并不描述通常与计算和软件技术相关联的某些公知细节,从 而避免不必要地混淆本发明的各种实施例。此外,相关领域的普通技术人员将理解到它们 能够不使用一个或多个下述细节而实现本发明的其它实施例。最后,当参考下面的公开中 的步骤和顺序描述各种方式时,这样的描述用于提供本发明的实施例的清楚实现,并且步 骤或步骤的顺序不应被看做实现本发明所必须的。相反地,下文用于提供本发明的例子的具体实施方式
,不应被看做对发明本身的限制。此外,任意数目的变形落入说明书所附的权 利要求限定的本发明的范围内。下面的具体实施方式
通常在发明内容之后,如上所述,进一步用于按照需要解释 或扩充本发明的不同方面和实施例的定义。关于这点,具体实施方式
首先描述适于实现与 本发明相关联的软件和/或硬件技术的图1的计算环境。在图2中将连网的环境表示为基 本计算环境的延伸,以强调能够在多个分离的设备上执行现代的计算技术。图1表示信息处理系统100,其是能够执行在此描述的计算操作的计算机系统的 简化例子。信息处理系统100包括连接至处理器接口总线112的一个或多个处理器110。 处理器接口总线112将处理器110连接至北桥115,北桥115已知为存储器控制器集线器 (Memory Controller Hub, MCH)。北桥115连接至系统存储器120并且提供处理器110访 问系统存储器的手段。图形控制器125也连接至北桥115。在一个实施例中,PCI Express 总线118将北桥115连接至图形控制器125。图形控制器125连接至例如计算机监视器的 显示设备130。北桥115和南桥135使用总线119彼此连接。在一个实施例中,总线是直接媒体 接口 (Direct Media Interface,DMI)总线,其在北桥115和南桥135之间的每个方向上以 高速传输数据。在另一个实施例中,外设部件互连(PCI)总线连接北桥和南桥。南桥138,也被称为I/O控制器集线器(ICH)是通常实现以比北桥提供的能力更低速度操作的能力 的芯片。南桥135通常提供用于连接各种部件的各种总线。这些总线包括例如PCI和PCI Express总线、ISA总线、系统管理总线(SM总线或SMB)、和/或低管脚数(Low Pin Count, LPC)总线。LPC总线通常连接低带宽设备,例如引导“R0M”196和“遗留(legacy) ”1/0设备 (使用“超I/O”芯片)。“遗留” I/O设备198能够包括例如串行和并行端口、键盘、鼠标和 /或软盘控制器。LPC总线还将南桥135连接至可信平台模块(Trusted Platform Module, TPM) 195。在南桥135中通常包括的其它部件包括直接存储器存取(Direct Memory Access, DMA)控制器,可编程中断控制器(Programmable Interrupt Controller,PIC)、以及存储设 备控制器,存储设备控制器使用总线184将南桥135连接至例如硬盘驱动器的非易失性存 储设备185。ExpressCard 155是将可热插拔的设备连接至信息处理系统的插槽。ExpressCard 155支持PCI Express和USB连接,因为ExpressCard 155使用通用串行总线(USB)和PCI Express总线连接至南桥135。南桥135包括USB控制器140,USB控制器140向连接至USB 的设备提供USB连接。这些设备包括网络摄像机(摄像机)150、红外(IR)接收器148、键 盘和轨迹板144、以及蓝牙设备146,这提供了无线个人局域网(PAN)。外部设备可以无线 电地连接到蓝牙设备146并发送数据到信息处理系统,在此情况下蓝牙设备146用作信息 处理系统的数据接收器。USB控制器140还向其它各种USB连接的设备142提供USB连接 性,USB连接的设备142例如为鼠标、可移除非易失性存储设备145、调制解调器、网卡、ISDN 连接器、传真机、打印机、USB集线器、以及许多其它类型的USB连接的设备。当可移除的非 易失性存储设备145被表示为USB连接的设备时,能够使用不同的接口(例如固件接口等) 来连接可移除非易失性存储设备145。当外部设备连接到能够从信息处理系统接收数据的 USB控制器140时,USB控制器作为数据接收器。无线局域网(LAN)设备175通过PCI或PCI Express总线172连接至南桥135。 LAN设备175通常实现均使用相同的协议以进行信息处理系统100和另一个计算机系统或 设备之间的无线通信的空中调制技术的IEEE 802. 11标准之一。光存储设备190使用串行 ATA(SATA)总线188连接至南桥135。串行ATA适配器和设备在高速串行链路上通信。串 行ATA总线还将南桥135连接至其它形式的存储设备,例如,硬盘驱动器。音频电路160,例 如声卡,通过总线158连接至南桥135。音频电路160还提供例如音频线路输入和光学数字 音频输入端口 162、光学数字输出和耳机插孔164、内置扬声器166以及内置麦克风168的 功能。以太网控制器170使用例如PCI或PIC Express总线的总线连接至南桥135。以太 网控制器170将信息处理系统100连接至计算机网络,例如局域网(LAN)、因特网和其它公 共和私人计算机网络。当外部设备通过至以太网控制器170的连接使用无线LAN设备175 或有线LAN连接至信息处理系统时,并且当外部设备发送数据至信息处理系统时,LAN设备 175执行数据接收器的角色。确实,能够通过信息处理系统的部件将数据路由或发送到信息 处理系统的任何设备作为外部设备,并且接收这样的数据的部件作为信息处理系统的数据 接收器。尽管图1示出了一个信息处理系统,但信息处理系统可以采用多种形式。例如,信 息处理系统可以采用桌上型计算机、服务器、便携式电脑、膝上型计算机、笔记本或者其它 形式的计算机或数据处理系统。此外,信息处理系统能够采取其它形式,例如个人数字助理(PDA)、游戏设备、ATM机、便携电话设备、通信设备或其它包括处理器和存储器的设备。图1示出的和这里描述的提供安全功能的可信平台模块(TPM 195)仅是硬件安全 模块(Hardware Security Module,HSM)的一个例子。因而,这里描述和主张的TPM包括任 何类型的HSM,包括但不限于符合可信计算组(TCG)标准(名称为“可信平台模块(TPM)规 范版本1.2”)的硬件安全设备。TPM是可以包括在任何数目的信息处理系统(例如图2中 示出的信息处理系统)中的硬件安全子系统。图2提供了图1所示的信息处理系统环境的延伸以表明在此描述的方法能够在连 网的环境下操作的多种信息处理系统上实现。信息处理系统的类型范围从例如手持计算机 /移动电话210的小的手持设备到例如大型计算机270的大的大型机系统。手持计算机210 的例子包括个人数字助理(PDA)、个人娱乐设备,个人娱乐设备例如为MP3播放器、便携电 视以及光盘播放器。信息处理系统的其它例子包括笔输入计算机或平板计算机220、膝上型 或笔记本计算机230、工作站240、个人计算机系统250以及服务器260。在图2中没有被单 独示出的其它类型的信息处理系统由信息处理系统280表示。如图所示,各种信息处理系 统能够使用计算机网络200而被网络连接在一起。能够用于互连各种信息处理系统的计算 机网络的类型包括局域网(LAN)、无线局域网(WLAN)、因特网、公共交换电话网络(PSTN)、 其它无线网络、以及能够被用于互连信息处理系统的任何其它网络拓扑。许多信息处理系 统包括非易失性数据存储,例如硬盘驱动器和/或非易失性存储器。图2所示的一些信息 处理系统描述了分离的非易失性数据存储(服务器260利用非易失性数据存储265、大型计 算机270利用非易失性数据存储275、以及信息处理系统280利用非易失性数据存储285)。 非易失性数据存储可以是各种信息处理系统外置的部件,或者可以是一个信息处理系统内 置的部件。此外,使用不同技术能够在两个或更多个信息处理系统之间共享可移除非易失 性存储设备145,例如将可移除非易失性存储设备145连接至USB端口或信息处理系统的其 它连接器。图3是示出第一设备通过各种通信手段在一个或多个第二设备之间交换会话数 据的示例框图。图3包括四个设备,第一设备300和第二设备310-330。第一设备300和第 二设备310-330是电子设备,例如桌上型计算机、膝上型计算机、笔记本电脑(可接入因特 网的设备)、移动电话、音频播放器、视频播放器等。本领域技术人员应当理解可以使用比图 3所示的更多或更少的设备来交换会话数据。例如,用户利用第一设备300来查看网页、听音乐和输入文档。这些动作中的每一 个对应于在第一设备300上执行的一个应用会话。第一设备300可以使用多个应用执行多 个应用会话。例如,用户可以在将来自网页的信息传送到文档中时在第一设备300上听音 乐。在一个实施例中,用户可能希望继续应用会话但是不能继续在第一设备300上工作。例 如,用户可能在办公室中使用桌上型计算机(第一设备300)并且可能需要去机场。在该例 子中,用户可能希望在膝上型计算机或移动电话(例如第二设备310)上继续应用会话。第一设备300基于事件,例如手动请求、系统触发事件、应用触发事件或网络触发 事件,来捕捉对于每个应用的会话数据。手动请求对应于用户通过用户接口窗口来请求第 一设备300来捕捉会话数据。例如,系统触发事件是例如第一设备300进入休眠模式、暂停 模式、低电池模式,检测改变的数据的百分比、时间间隔和预定调度次数的事件。网络触发 事件可以是例如第二设备进入无线网络(无线网络365),线缆插入和耦合到第二设备(线缆355)、网络线缆插入等事件。应用触发事件可以是例如当应用保存数据时的事件。对于每个应用会话,第一设备300捕捉媒体对象识别符和第一设备媒体会话位 置。媒体对象识别符例如是文档文件名、网页URL或音频文件名。第一设备媒体位置可以 包括滚动位置、光标位置或回放位置。例如,用户可以听已经播放了两分钟的歌曲,并且在 这个例子中,回放位置将是“2:00”。在另一个例子中,用户可以在特定位置(例如65页的 中间)查看大的文档,并且在这个例子中,滚动位置可以反映用户的查看位置。此外,基于 应用会话,第一设备300可以捕捉例如用户输入的文本、历史、小量信息(cookie)等的其它 会话数据(见图8和对应的文本用于进一步的细节)。在一个实施例中,第一设备300可以仅对于对应的第二设备可以再生的应用会话 捕捉会话数据。例如,如果第一设备300正在捕捉要发送到第二设备310 (可以是音频播放 器)的数据,第一设备300可以仅捕捉音频类型的应用会话数据(见图8和对应的文本用 于进一步的细节)。一旦第一设备300已经捕捉了会话数据,第一设备300将会话数据发送到适当的 第二设备310-330。例如,第一设备300可以通过无线网络365将会话数据360发送到设备 320。在一个实施例中,第一设备300可以将会话数据发送到多个第二设备,例如通过线缆 355将文字处理和电子数据表会话数据350发送到第二设备310 (例如膝上型计算机),并 且还通过无线网络365将音频会话数据360发送到第二设备320 (例如音频播放器)。在另 一个实施例中,第一设备300可以将计算机网络385(例如分布式网络)上的会话数据370 存储到会话数据存储380中用于以后由第二设备330提取。例如,用户可能希望将会话数 据370存储在会话数据存储380中,并且当用户到达机场时使用第二设备330提取会话数 据 370。当第二设备接收会话数据时,第二设备使用会话数据来重构与第一设备300上的 应用会话的状态相似的应用会话。例如,第二设备310可以接收对于音频应用会话、网页应 用会话以及文字处理应用会话的会话数据。在该实施例中,第二设备310重构每个应用会 话并根据会话数据中包括的第一设备媒体位置信息定位每个应用会话(例如回放位置、滚 动位置、光标位置等)。在一个实施例中,第一设备300可以将一个应用会话标记为“活动 窗口”,在这种情况下第二设备将对应的重构的应用会话指定为第二设备上的活动窗口(见 图10和对应的文本用于进一步的细节)。本领域技术人员应当理解第二设备310-330也可 以捕捉会话数据并将会话数据发送到第一设备300,例如当第二设备320进入无线网络365 时。图4是示出第一设备将会话数据提供至第二设备以允许第二设备在与第一设备 上的回放位置对应的第二设备媒体会话位置开始播放音频文件的图。第一设备300包括第一设备显示器400,其示出了播放歌曲(媒体名称410)的应 用会话。第一设备显示器400示出了歌曲已经播放了 “ 2 34 ”(第一设备媒体会话位置420)。 第一设备300捕捉包括媒体对象识别符(对应于媒体名称410的文件名)和第一设备媒体 会话位置420的会话数据。第一设备300然后通过无线网络365将会话数据360发送到第 二设备320。接下来,第二设备320在第二设备显示器450上重构应用会话。如同所见的,第二 设备320在相同的歌曲中的相同位置(第二设备媒体会话位置470)开始播放该歌曲(媒体名称460)。本领域技术人员应当理解第二设备320也可以捕捉会话数据并将会话数据发 送到第一设备300,例如当第二设备320进入无线网络365时。图5是示出在用于利用这里描述的本发明的实施例的设备中包括的各种硬件和 软件部件的示例图。第一设备500 (静止设备或移动设备)包括会话管理器505,其监视应 用会话并捕捉会话数据以提供给第二设备。本领域技术人员应当理解第二设备可以具有与 图5所示的部件相似的部件,从而重构应用会话以及捕捉后续应用会话数据以提供给第一 设备。第一设备500监视手动请求510、系统事件触发515、网络触发事件520以及应用 触发事件525用于指示何时捕捉会话数据。手动请求510可以是用户通过用户界面窗口手 动地发起会话数据捕捉请求。系统触发事件515可以是设备3进入休眠模式、暂停模式、低 电池检测,改变的数据的百分比、时间间隔和调度的事件。网络触发事件520可以是例如设 备处于无线网络范围内,线缆插入和耦合到第二设备、网络线缆插入等事件。应用触发事件 525可以是例如当用户保存数据时,当应用自动地保存数据时或者当应用检测到会话数据 中的改变时的事件。文件存储560可以包括用于会话管理器505访问的文件,例如文档文件、音频文 件、视频文件等。日志存储570包括指定其它设备能力的条目。例如,会话管理器505可以 确定捕捉第二设备支持的特定应用的会话数据。例如,第二设备可能具有安装的有限的应 用,例如音频文件播放器,并且在该例子中,会话管理器505可以确定仅捕捉第二设备能够 执行的会话数据。在一个实施例中,用户可以配置会话管理器505来仅捕捉特定应用的会 话数据以使发送到第二设备的会话数据量最小。在另一个实施例中,会话管理器505可以 访问日志存储570中的条目以识别第二设备的支持的应用并自动地确定仅捕捉日志条目 中指定的第二设备支持的特定应用的会话数据。应用管理器540调用应用并管理应用会话。单个应用可以具有正执行的多个应用 会话,例如文字处理应用具有多个打开的文档。显示器545将应用会话显示给用户。显示 器545可以集成到第一设备500 (例如蜂窝电话显示器)中或外置于第一设备500 (外部计 算机监视器)。会话管理器505捕捉对于应用会话的会话数据并且将会话数据存储在会话数据 存储550中(见图8和相应的文本用于进一步的细节)。会话管理器505可以将每个应用 的会话数据分别存储作为会话数据记录。例如,会话管理器505可以对于音频应用会话在 会话数据记录中存储歌曲名称(媒体对象标识符)、回放位置(第一设备媒体会话位置)并 且也可以存储歌曲(媒体对象)。当会话管理器505存储对于每个应用会话的会话数据时,会话管理器505通过收 发器590将会话数据580提供给第二设备,收发器590可以是有线发射器、无线发射器、光 发射器等。在反方向,当第一设备500接收来自第二设备的会话数据时,会话管理器505接收 会话数据并将其存储在会话数据存储580中。接下来,会话管理器评估会话数据并且相应 地重构应用会话(见图9、10和相应的文本用于进一步的细节)。图6是示出捕捉对于包括媒体会话位置的数据页面的会话数据的插件的图。使用 图6所示的例子,用户可以使用移动设备来在网页600中包括的表上输入文本。在该例子中,在输入数据的中间,用户进入他的办公室并希望使用自己的桌上型计算机完成文本输 入。由此,用户可以调用移动设备来捕捉会话数据并将会话数据发送到用户的桌上型计算 机。在一个实施例中,移动设备可以进入无线网络(例如蓝牙)并接下来自动地捕捉 会话数据并向第二设备提供会话数据。在一个实施例中,插件610负责捕捉对于网页600的应用会话的会话数据。由此, 插件610从域620提取作为媒体对象识别符的URL,并且也从域630-670提取用户输入的数 据。最后,插件610识别和存储例如光标位置690和滚动位置680的媒体对象位置信息。接下来,插件610将捕捉的会话数据670发送到第二设备(例如用户的移动设 备),允许第二设备通过将用户输入的数据放置(populate)在适当的域、基于滚动位置680 定位网页并且将鼠标放在光标位置690来重构网页600。在一个实施例中,设备可以使用屏幕抓取来捕捉会话数据。在该实施例中,设备拍 摄活动窗口的图像的屏幕快照并且然后解析图像用于可识别的文本和/或图像。图7是示出在从第一设备向第二设备提供会话数据时采取的步骤的高层流程图。 例如,用户可能需要离开办公室并希望将活动应用会话信息(会话数据)从自己的桌上型 计算机转发到自己的膝上型计算机。在该例子中,用户可以在将数据输入网页表中时听歌 曲,并且在该例子中,用户可能希望将网页位置、用户输入的数据、歌曲和歌曲的当前回放 位置(例如歌曲进行两分钟)转发到用户的膝上型计算机。接下来,用户的膝上型计算机 能够使用用户输入的数据重构网页并且在相同的回放位置开始播放歌曲。在700开始第一设备处理,随后第一设备处理例如文档、视频文件、音频文件、网 页等媒体对象(步骤705)。例如,第一设备可以执行各种应用会话,其中一些应用会话可以 使用单个应用(例如多个文字处理文档)并且其它应用会话可以使用不同的应用(电子数 据表文件、音频文件等)。第一设备确定是否捕捉会话数据(决定710)。例如,第一设备可以检测进入第二 设备的个人域网(例如无线网络),这触发第一设备来捕捉会话数据。在另一个例子中,用 户可以例如通过用户界面窗口手动地请求第一设备来捕捉会话数据。如果第一设备不应当 捕捉会话数据,决定710分支到“否”分支712,其循环回以继续处理媒体对象。该循环继 续,直到第一设备应当捕捉会话数据,在该点上决定710分支到“是”分支714。在一个实施 例中,第一设备在反复的基础上,例如每分钟或当第一设备检测到会话数据中的改变时,捕 捉数据。第一设备继续通过一系列步骤来捕捉对于当前在第一设备上执行的应用会话的 会话数据,每个会话数据可以存储作为会话数据记录(预定处理框715,见图8和相应的文 本用于进一步的细节)。一旦第一设备捕捉到会话数据,第一设备确定是否直接将会话数据 转发到第二设备(例如通过至第二设备的无线连接或从第一设备耦合到第二设备的线缆) (决定720)。如果第一设备应当直接将会话数据转发到第二设备,决定720分支到“是”分 支722,然后在步骤725第一设备将会话数据728转发到第二设备。另一方面,如果第一设 备不应当直接将会话数据转发到第二设备,决定720分支到“否”分支742而绕过步骤725。第一设备确定是否在网络(例如分布式网络)上保存会话数据(决定730)。例 如,用户可以请求第一设备捕捉会话数据并在网络上存储会话数据以在以后例如在机场提取会话数据。如果第一设备应当在网络上保存会话数据,决定730分支到“是”分支734,然 后处理在计算机网络385上保存会话数据380中的会话数据(步骤735)。另一方面,如果 第一设备不应当在网络上保存会话数据,决定730分支到“否”分支732而绕过步骤735。 第一设备处理在740结束。第二设备处理在750开始,然后第二设备确定是否被请求以接收来自第一设备的 会话数据的直接转发(决定755)。例如,第二设备可以通过线缆连接至第一设备,该线缆通 知第二设备准备接收来自第一设备的会话数据。如果第二设备应当接收会话数据的直接转 发,决定755分支到“是”分支757,然后第二设备在步骤760接收会话数据728。另一方面, 如果第二设备没有被通知接收会话数据的直接转发,则决定755分支到“否”分支759而绕 过步骤760。第二设备确定第二设备是否连接到网络,例如局域网(LAN)(决定765)。如果第 二设备没有连接到网络,决定765分支到“否”分支769而绕过经过网络的会话数据提取步 骤。另一方面,如果第二设备在网络上,决定765分支到“是”分支,然后确定会话数据是否 在网络上可用(决定770)。例如用户可以将会话数据存储在网络上而希望在以后并且在 不同的位置提取会话数据。如果会话数据在网络上不可用,决定770分支到“否”分支774 而绕过通过网络的会话提取步骤。另一方面,如果会话数据在网络上可用,决定770分支到 “是”分支772,然后第二设备通过计算机网络385从会话数据存储380提取会话数据(步 骤 775)。第二设备确定是否已经直接接收到会话数据或通过网络接收到会话数据(决定 780)。如果第二设备已经接收到会话数据,决定780分支到“是”分支782,然后处理使用 会话数据来在第二设备上重构应用会话。作为重构处理的一部分,第二设备使用第一设备 媒体会话位置(包括在会话数据中)来在对应的第二设备媒体会话位置(例如特定滚动位 置、回放位置或光标位置)重构应用会话(预定处理框,见图9和对应的文本用于进一步的 细节)。第二设备处理在790结束。图8是示出在第一设备的捕捉会话数据中采取的步骤的流程图。处理在800开 始,然后确定是否捕捉用于第二设备的特定应用的会话数据(决定810)。例如,第二设备 可以具有安装的有限的应用,例如音频文件播放器,并且在该例子中,处理可以确定仅捕捉 第二设备能够执行的会话数据,例如音频应用会话。在一个实施例中,用户可以配置第一设 备来仅捕捉特定应用的会话数据以使发送到第二设备的会话数据量最小。在另一个实施例 中,第一设备可以检测第二设备的支持的应用并自动地确定仅捕捉第二设备支持的特定应 用的会话数据。在另一个实施例中,第一设备可以向第二设备提供所有可用的会话数据,并 且在该实施例中第二设备仅重构第二设备支持的特定应用的会话数据。如果处理不应当捕捉对于当前执行的每个应用会话的会话数据,决定810分支到 “否”分支812,然后处理识别每个当前执行的应用会话。另一方面,如果处理应当捕捉应用 特定的会话数据,决定810分支到“是”分支814,然后处理查找第一设备日志存储825来定 位用于第二设备的条目并且识别第二设备的支持的应用,例如音频播放器应用、视频播放 器应用等。确定处理是否在第一设备日志存储825中找到与第二设备对应的条目(决定 830)。如果处理没有找到用于第二设备的条目,决定830分支到“否”分支832,然后第一设备检查与第二设备837的连通性(ping)并且接收属于第二设备837’支持的应用的信息, 该信息存储在第一设备日志存储825中。另一方面,如果处理在第一设备日志存储825定 位到用于第二设备的条目,决定830分支到“是”分支834而绕过步骤835。在步骤840,处 理识别与第二设备的支持的应用(例如音频应用会话)相对应的应用会话。一旦识别了每个应用会话(步骤815)或识别了特定应用的应用会话(步骤840), 处理在步骤850选择第一识别的应用会话。在步骤860,处理捕捉对于选定的应用会话的会 话数据并将会话数据作为会话数据记录存储在第一设备会话数据存储865中。会话数据包 括媒体对象识别符和媒体会话位置。媒体对象识别符识别应用会话中的媒体对象,例如文 件名或URL。媒体会话位置识别媒体对象中的特定位置,例如回放位置或滚动位置。在媒体对象是网页的一个示例实施例中,处理可以捕捉URL(媒体对象识别符)、 滚动位置(X和Y)、光标位置、历史、相关插件数据、小量信息、临时文件、密码、表数据以及 回放位置(如果在网页内播放音频/文件)。在媒体对象是媒体文件(例如音频文件或视频文件)的另一个示例实施例中,处 理可以捕捉例如为文件名(媒体对象识别符)、回放位置和文件的会话数据。在媒体对象是文档的另一个示例实施例中,处理可以捕捉例如为文件名、光标位 置、文件、滚动位置、最近打开的文件(历史)以及自从上次保存后对文件的改变的会话数 据。一旦对于第一应用会话捕捉了会话数据时,确定是否有任何更多的识别的应用会 话(决定870)。如果有更多的识别的应用会话,决定870分支到“是”分支872,循环回以 选择下一个识别的应用会话和捕捉会话数据。该循环继续,直到没有更多的识别的应用会 话来捕捉会话数据,在该点上决定870分支到“否”分支874。在步骤880,处理检测到与活动用户界面窗口相对应的一个应用会话。本领域技术 人员应当理解,活动用户界面窗口是在窗口管理器中当前关注的窗口。不同的窗口管理器 以不同的方式指示活动窗口并允许用户以不同的方式在窗口之间切换。例如,在基于窗口 的用户环境中,点击特定的窗口会导致该窗口变为活动。活动用户界面窗口是向其发送在 键盘上键入的键的窗口,该窗口可以在视觉上由其它窗口遮挡。处理在890返回。图9是示出在第二设备处理会话数据时采取的步骤的流程图。第二设备使用会话 数据来在特定媒体会话位置(例如歌曲的回放位置或文档上的滚动位置)重构应用会话。 处理在900开始,然后第二设备读取存储在第二设备会话数据存储908中存储的第一会话 数据记录(步骤905)。第二设备检查可能处理与会话数据对应的媒体对象类型的应用(步 骤910)。例如,会话数据可能对应于音频文件,在这种情况下第二设备识别音频播放器以重 构与会话数据对应的应用会话。第二设备确定应用是否可用来处理媒体对象类型(决定915)。例如,会话数据可 能对应于第二设备没有安装的应用。在一个实施例中,第一设备可以仅发送第二设备支持 的会话数据(见图8和相应的文本用于进一步的细节)。如果第二设备识别了与媒体对象类型相对应的应用,决定915分支到“是”分支 917,然后第二设备在步骤920标记重构可用的会话数据记录。另一方面,如果第二设备没 有定位支持媒体对象类型的应用,决定915分支到“否”分支919,然后第二设备标记重构不 可用的会话数据记录。
确定是否有更多的会话数据记录要分析(决定930)。如果有更多的会话数据记录 要分析,决定930分支到“是”分支932,循环回读取和处理下一个会话数据记录。该循环继 续,直到没有更多的会话数据记录要分析,在该点决定930分支到“否”分支934。在分析会话数据记录之后,第二设备确定是否有重构可用的任何会话数据记录 (决定940)。如果没有重构可用的会话数据记录,决定940分支到“否”分支942,然后处理 在990返回。另一方面,如果有重构可用的会话数据记录,决定940分支到“是”分支944,然后 第二设备在步骤945选择第一可用会话数据记录。确定是否提示第二设备的用户去重构应 用会话(决定950)。例如,第二设备的用户可以设置每次当第二设备接收到来自第一设备 的会话数据时提示用户的默认特征。如果第二设备不应当提示用户,决定950分支到“否” 分支952,然后第二设备使用会话数据来重构应用会话(预定处理框960,见图10和相应的 文本用于进一步的细节)。另一方面,如果第二设备应当提示用户,决定950分支到“是”分支954,然后第二 设备提示用户第二设备是否应当重构应用会话(步骤965)。例如,第二设备可以正在播放 歌曲并从第一设备接收与不同的歌曲对应的会话数据。在该例子中,第二设备可以提示用 户是否用户希望载入不同的歌曲并在会话数据中包括的回放位置(媒体会话位置)开始播 放不同的歌曲。第二设备接收来自用户的输入并确定是否重构应用会话(决定970)。如果第二设 备应当重构应用会话,决定970分支到“是”分支972,然后第二设备使用会话数据来重构应 用会话(预定处理框960,见图10和相应的文本用于进一步的细节)。另一方面,如果用户 不希望第二设备重构会话数据,决定970分支到“否”分支974,然后处理绕过步骤960。第二设备确定是否有更多可用的会话数据记录要处理(决定980)。如果有更多可 用的会话数据记录要处理,决定980分支到“是”分支982,然后处理循环回来选择和处理下 一个可用的会话数据记录。该循环继续,直到没有更多可用的会话数据记录要处理,在该点 决定980分支到“否”分支984。在步骤985,第二设备识别在与一个重构的应用会话对应的会话数据中包括的活 动用户界面窗口标记。当第一设备在捕捉会话数据时,第一设备从各种应用会话识别活动 用户界面窗口,例如在窗口管理器中的当前关注的窗口(见图8和相应的文本用于进一步 的细节)。如果存在活动用户界面窗口标记,第二设备识别对应的重构的应用会话并在第二 设备将其指定为活动用户界面窗口。处理在990返回。图10是示出在第二设备利用接收到的会话数据来重构应用会话时采取的步骤的 流程图。在图9中,第二设备分析会话数据记录并基于会话数据的媒体对象类型(例如音 频文件、文档、电子数据表等)将特定应用与会话数据相关联。图10所示的示例步骤利用 相关联的应用和会话数据来重构应用会话。处理在1000开始,然后第二设备使用媒体对象识别符(包括在会话数据中)来定 位媒体对象。例如,媒体对象识别符可以是URL,在这种情况下第二设备使用URL来访问网 页。在另一个例子中,媒体对象定位器可以是文件名,在这种情况下第二设备定位文件。确 定第二设备是否在例如文件位置定位了媒体对象(决定1010)。如果第二设备没有定位媒 体对象,决定1010分支到“否”分支1012,然后第二设备检查与第一设备300的连通性并接收媒体对象(步骤1015)。另一方面,如果第二设备定位了媒体对象,决定1010分支到“是” 分支1018。在步骤1020,第二设备调用应用并将媒体对象载入应用。第二设备确定会话数据 是否包括用户输入的数据(决定1030)。例如,用户可以向第一设备上的网页表输入信息, 并希望在第二设备上完成表。在该例子中,第一设备捕捉用户输入的信息(姓名、地址等) 并且将用户输入的信息包括在发送到第二设备的会话数据中。如果会话数据包括用户输入的数据,决定1030分支到“是”分支1032,然后第二设 备在步骤1040使用用户输入的数据构成媒体对象。另一方面,如果会话数据不包括用户输 入的数据,决定1030分支到“否”分支1038而绕过步骤1040。第二设备确定会话数据是否包括第一设备媒体会话位置,例如回放位置、滚动位 置或光标位置(决定1050)。如果会话数据包括第一设备媒体会话位置,决定1050分支到 “是”分支1052,然后第二设备在对应的第二设备媒体会话位置定位重构的应用会话(步骤 1060)。例如,如果第一设备正在播放歌曲并且当第一设备捕捉会话数据时歌曲已经播放了 两分钟,第二设备将歌曲的开始回放位置定位到歌曲中的两分钟。第二设备在步骤1070在 第二设备媒体会话位置显示/播放媒体对象并在1080返回。本发明的优选实施之一是客户端应用,即,例如可以常驻在计算机的随机访 问存储器中的代码模块中的一组指令(程序代码)或其它功能描述材料(functional descriptive material)。在计算机要求之前,该一组指令可以被存储在另一个计算机存储 器中,例如在硬盘驱动中或在例如光盘(用于在⑶ROM中最终使用)或软盘(用于在软盘 驱动中最终使用)等可移动存储器中。从而,可以作为在计算机中使用的计算机程序产品 来实施本发明。另外,虽然在通过软件选择性地激活或重新配置的通用计算机中便利地实 施所描述的各种方法,但是本领域的普通技术人员还将认识到可以在被构造以执行需要的 方法步骤的硬件、固件或在更专用的设备中执行该方法。功能描述材料是将功能性告知机 器的信息。功能描述材料包括但不限于计算机程序、指令、规则、事实、可计算函数的定义、 目标及数据结构。虽然已经示出并描述了本发明的特定实施例,但是对于本领域技术人员来说显 然,基于本文的宗义,不脱离本发明及其更广泛的方面,可以进行变化和修改。因此,后附权 利要求将包括本发明范围内的全部改变和修改,这些改变和修改落在本发明的实质精神和 范围之内。此外,将理解后附权利要求单独限定本发明。本领域技术人员将理解,如果所提 出的权利要求元素的特定标记被指出,则该指出将在权利要求中被明确的描述,没有该描 述则没有该限制。对于帮助理解的非限制性的示例,下面所附的权利要求包括使用介绍性 短语“至少一个”和“一个或多个”来介绍权利要求元素。然而,即使当相同的权利要求包 括介绍性短语“一个或多个”或“至少一个”及例如“一个”等限定词,该短语的使用也不应 被解释为表示通过介绍由限定词“一个”限定的权利要求元素而将包括该种介绍的权利要 求元素的任意特定的权利要求限制为仅包括一个该元素的发明,对于在权利要求中使用的 其它限定词也是同样。
权利要求
1.一种信息处理方法,包括在接收设备处接收捕捉的会话数据,所述捕捉的会话数据包括每个都对应于一个或多 个应用会话的一个或多个会话数据记录,所述一个或多个应用会话中的每个都包括媒体对 象和会话数据,所述会话数据包括与所述媒体对象相对应的媒体对象识别符和媒体会话位 置;选择所述一个或多个会话数据记录中的一个会话数据记录并从所选择的会话数据记 录中抽取所述媒体会话位置;以及在与对应的媒体位置相对应的媒体位置处重构与所选择的会话数据记录相对应的所 述一个或多个应用会话中的一个应用会话,其中所述捕捉的会话数据是从所提供的外部设 备接收的。
2.根据权利要求1所述的方法,还包括确定应用是否可用来重构与所选择的会话数据记录相对应的所述应用会话;响应于确定所述应用不可用来重构与所选择的会话数据记录相对应的所述应用会话, 丢弃所选择的会话数据记录并选择所述捕捉的会话数据中包括的不同的会话数据记录;以 及响应于确定所述应用可用来重构与所选择的会话数据记录相对应的所述应用会话,执 行所述应用会话的重构。
3.根据权利要求1所述的方法,还包括确定所选择的会话数据记录包括用户输入的数据;以及其中所述应用会话的重构包括使用所述用户输入的数据来构成重构的应用会话。
4.根据权利要求1所述的方法,其中所述媒体会话位置对应于所述媒体对象中的所述 媒体对象的开始位置之外的位置,在所述接收设备处在所述开始位置开始所述媒体对象的 执行。
5.根据权利要求4所述的方法,其中所述媒体会话位置是从由滚动位置、回放位置和 光标位置组成的组中选择的。
6.根据权利要求1所述的方法,其中所述会话数据包括音频控制值,并且所述方法还 包括基于所述会话数据中包括的所述音频控制值来在所述接收设备处配置音频控制水平。
7.一种信息处理系统,包括一个或多个处理器;由所述一个或多个处理器中的至少一个处理器可访问的存储器;数据接收器;指令集,存储在所述存储器中并且由所述一个或多个处理器中的至少一个处理器执行 以实现以下动作在所述数据接收器处接收捕捉的会话数据,所述捕捉的会话数据包括每个都对应于一 个或多个应用会话的一个或多个会话数据记录,所述一个或多个应用会话中的每个都包括 媒体对象和会话数据,所述会话数据包括与所述媒体对象相对应的媒体对象识别符和媒体 会话位置;选择所述一个或多个会话数据记录中的一个会话数据记录并从所选择的会话数据记录中抽取所述媒体会话位置;以及在与对应的媒体位置相对应的媒体位置处重构与所选择的会话数据记录相对应的所 述一个或多个应用会话中的一个应用会话,其中所述捕捉的会话数据是由所述数据接收器 从外部设备接收的。
8.根据权利要求7所述的信息处理系统,其中所述指令集还执行以下动作 确定应用是否可用来重构与所选择的会话数据记录相对应的所述应用会话;响应于确定所述应用不可用来重构与所选择的会话数据记录相对应的所述应用会话, 丢弃所选择的会话数据记录并选择所述捕捉的会话数据中包括的不同的会话数据记录;以 及响应于确定所述应用可用来重构与所选择的会话数据记录相对应的所述应用会话,执 行所述应用会话的重构。
9.根据权利要求7所述的信息处理系统,其中所述指令集还执行以下动作 确定所选择的会话数据记录包括用户输入的数据;以及其中所述应用会话的重构包括使用所述用户输入的数据来构成重构的应用会话。
10.根据权利要求7所述的信息处理系统,其中所述媒体会话位置对应于所述媒体对 象中的所述媒体对象的开始位置之外的位置,在所述接收设备处在所述开始位置开始所述 媒体对象的执行。
11.根据权利要求10所述的信息处理系统,其中所述媒体会话位置是从由滚动位置、 回放位置和光标位置组成的组中选择的。
12.根据权利要求7所述的信息处理系统,其中所述会话数据包括音频控制值,并且所 述指令集还执行以下动作基于所述会话数据中包括的所述音频控制值来在所述接收设备处配置音频控制水平。
13.一种信息处理方法,包括识别当前在第一设备上执行的一个或多个应用会话,其中所述一个或多个应用会话中 的每个都包括媒体对象和会话数据,所述会话数据包括与所述媒体对象相对应的媒体对象 识别符和第一设备媒体会话位置;在所述第一设备捕捉所述会话数据并将捕捉的会话数据存储在存储器中;以及 发送所述捕捉的会话数据。
14.根据权利要求13所述的方法,还包括 识别一个或多个支持的应用;选择与所述一个或多个支持的应用相对应的所述一个或多个应用会话,所述选择导致 一个或多个支持的应用会话;以及仅将与所述一个或多个支持的应用会话相对应的会话数据发送至外部提供的第二设备。
15.根据权利要求14所述的方法,其中所述发送还包括仅将所述会话数据通过计算机网络路由到所述外部提供的第二设备。
全文摘要
本发明涉及设备间的无缝应用会话重构。第一设备捕捉在第一设备上正在执行的每个应用会话的会话数据并且将会话数据提供至第二设备以用于第二设备来重构应用会话。第一设备识别当前在第一设备上执行的一个或多个应用会话。每个应用会话包括媒体对象和会话数据,会话数据包括与媒体对象相对应的媒体对象识别符和第一设备媒体会话位置。第一设备捕捉会话数据并将捕捉到的会话数据发送到一个或多个第二设备。第二设备适于使用接收到的会话数据重构至少一个应用会话并将应用会话定位在与接收到的第一设备媒体会话位置相对应的第二设备媒体会话位置。
文档编号H04L29/06GK102006274SQ20101019643
公开日2011年4月6日 申请日期2010年6月2日 优先权日2009年9月2日
发明者塞恩·迈克尔·乌尔里克, 斯蒂文·理查德·佩林, 朱莉·安妮·莫里斯, 詹姆斯·约瑟夫·恩拉舍, 詹尼弗·格林伍德·扎瓦克基, 贾斯廷·雅勒·达布斯, 阿克赛尔·拉米雷斯·弗洛雷斯, 霍华德·杰弗里·洛克 申请人:联想(新加坡)私人有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1