CN103279396B - 用于向次级设备传送应用和会话状态的***和方法 - Google Patents
用于向次级设备传送应用和会话状态的***和方法 Download PDFInfo
- Publication number
- CN103279396B CN103279396B CN201310013948.6A CN201310013948A CN103279396B CN 103279396 B CN103279396 B CN 103279396B CN 201310013948 A CN201310013948 A CN 201310013948A CN 103279396 B CN103279396 B CN 103279396B
- Authority
- CN
- China
- Prior art keywords
- equipment
- application
- dependence
- phase
- computer
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/4104—Peripherals receiving signals from specially adapted client devices
- H04N21/4126—The peripheral being portable, e.g. PDAs or mobile phones
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/148—Migration or transfer of sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/50—Service provisioning or reconfiguring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W4/00—Services specially adapted for wireless communication networks; Facilities therefor
- H04W4/60—Subscription-based services using application servers or record carriers, e.g. SIM application toolkits
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/30—Definitions, standards or architectural aspects of layered protocol stacks
- H04L69/32—Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
- H04L69/322—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
- H04L69/329—Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Stored Programmes (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及用于向次级设备传送应用和会话状态的***和方法。第一设备向第二设备传送运行中的应用。第一设备发送用于向第二设备传送运行中的应用的请求。第二设备确定应用当前是否安装于第二设备上。第二设备确定应用是否是被设计成在第二设备的平台上运行的应用。第二设备然后从第一设备接收用于应用的状态信息。响应于确定状态信息,所述第二设备利用从所述第一设备接收的状态信息来执行相对方应用。
Description
技术领域
公开内容总体涉及一种计算机实现的方法、计算机程序产品和数据处理***。更具体而言,公开内容涉及一种用于在相异设备之间传送运行中的应用的计算机实现的方法、计算机程序产品和数据处理***。
背景技术
电池寿命已经并且将总是电池供电的便携式计算机和移动设备的重大限制。电池单元技术的发展已经通过电池将使用计算机的能力从仅一小时延长至接近一天。然而移动计算劳动力仍然在不断的基础上面临移动设备的电池的接近耗尽的充电。为了最大化移动设备的移动使用,自动化功率管理技术已经演变,这些技术一般包括显示背光、硬驱动供电和减少中央处理单元(CPU)速度的静态管理。
尽管在功率管理时尽力而为,多数计算终端用户仍然可能见证过向他们通知电池寿命即将耗尽的时刻——经常是在计算至关重要时的关键时间。关闭移动设备经常造成在移动设备上运行的任何应用的未保存数据和状态信息的丢失。
发明内容
根据本发明的一个实施方式,提供一种用于从第一设备向第二设备传送应用的计算机实现的方法、数据处理***和计算机程序产品。第一设备发送用于向第二设备传送运行中的应用的请求。第二设备确定应用当前是否安装于第二设备上。第二设备确定应用是否是被设计成在第二设备的平台上运行的应用。第二设备然后从第一设备接收用于应用的状态信息。响应于接收状态信息,第二设备利用从第一设备接收的状态信息来执行相对方应用。
附图说明
图1是提供的说明性实施方式可以实现于其中的数据处理环境的示例图;
图2是根据本发明一个优选实施方式描绘的处于移动设备这一形式的客户端的图;
图3是根据本发明一个优选实施方式示出的移动设备的框图;
图4是根据一个有利实施方式描绘的数据处理***的图示;
图5是示出的用于从一个设备向另一设备传送运行中的应用的数据流程;
图6是根据一个示例实施方式示出的用于向设备发送运行中的应用的流程图;并且
图7是根据一个示例实施方式示出的用于从运行不同平台的设备接收运行中的应用的流程图。
具体实施方式
如本领域技术人员将理解的那样,本发明的方面可以实现为***、方法或者计算机程序产品。因而本发明的方面可以采用全硬件实施方式、全软件实施方式(包括固件、常驻软件、微代码等)或者组合软件与硬件方面的实施方式的形式,这些实施方式可以这里都通称为“电路”、“模块”或者“***”。另外,本发明的方面可以采用在一个或者多个计算机可读介质中实现的计算机程序产品的形式,该计算机可读介质具有在其上实现的计算机可读程序代码。
可以利用一个或者多个计算机可读介质的任何组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质可以例如是但不限于电子、磁、光学、电磁、红外线或者半导体***、装置或者设备或者前述计算机可读存储介质的任何适当组合。计算机可读存储介质的更多具体示例(非穷尽列举)将包括以下示例:具有一个或者多个接线的电连接、便携式计算机盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或者闪存)、光纤、便携光盘只读存储器(CD-ROM)、光学存储设备、磁存储设备或者前述计算机可读存储介质的任何适当组合。在本文的上下文中,计算机可读存储介质可以是任何如下有形介质,该有形介质可以包含或者存储用于由指令执行***、装置或者设备使用或者与指令执行***、装置或者设备结合使用的程序。
计算机可读信号介质可以包括例如基带中或者作为载波的部分的传播数据信号,该传播数据信号具有在其中实现的计算机可读程序代码。这样的传播信号可以采用包括但不限于电磁、光学或者其任何适当组合的多种形式中的任何形式。计算机可读信号介质可以是任何如下计算机可读介质,该计算机可读介质不是计算机可读存储介质并且可以传达、传播或者传送用于由指令执行***、装置或者设备使用或者与指令执行***、装置或者设备结合使用的程序。
可以使用任何适当的介质来传输计算机可读介质上实现的程序代码,这些介质包括但不限于无线、有线、光纤线缆、RF等或者前述介质的任何适当组合。
可以用一个或者多个编程语言的任何组合来编写用于实现用于本发明方面的操作的计算机程序代码,该编程语言包括诸如Java、Smalltalk、C++等面向对象编程语言和比如“C”编程语言或者相似编程语言这样的常规过程化编程语言。程序代码可以完全在用户的计算机上、部分在用户的计算机上、作为独立软件包、部分在用户的计算机上而部分在远程计算机上或者完全在远程计算机或者服务器上执行。在后一种场景中,远程计算机可以通过包括局域网(LAN)或者广域网(WAN)的任何类型的网络连接到用户的计算机,或者可以(例如通过使用因特网服务提供商的因特网)进行与外部计算机的连接。
上文参照根据本发明实施方式的方法、装置(***)和计算机程序产品的流程图图示和/或框图描述本发明的方面。将理解流程图图示和/或框图的每个块以及在流程图图示和/或框图中的块组合可以由计算机程序指令实现。可以向通用计算机、专用计算机或者其它可编程数据处理装置的处理器提供这些计算机程序指令以产生机器,从而经由计算机或者其它可编程数据处理装置的处理器执行的指令创建用于实现在流程图和/或框图的一个或者多个块中指定的功能/动作的装置。
这些计算机程序指令也可以存储于计算机可读介质中,该计算机可读介质可以指引计算机、其它可编程数据处理装置或者其它设备以特定方式工作,从而存储于计算机可读介质中的指令产生包括指令的制造品,这些指令实现在流程图和/或框图的一个或者多个块中指定的功能/动作。
也可以向计算机、其它可编程数据处理装置或者其它设备上加载计算机程序指令以使一系列操作步骤在计算机、其它可编程装置或者其它设备上执行以产生计算机实现的过程,从而在计算机或者其它可编程装置上执行的指令提供用于实现在流程图和/或框图的一个或者多个块中指定的功能/动作的过程。
现在参照附图并且具体参照图1,提供说明性实施方式可以实现于其中的数据处理环境的示例图。应当理解仅提供图1作为一个实现的图示而并非旨在于隐含关于不同实施方式可以实现于其中的环境的任何限制。可以进行对描绘的环境的许多修改。
图1描绘了说明性实施方式可以实现于其中的数据处理***的网络的图解表示。网络数据处理***100是说明性实施方式可以实现于其中的计算机网络。网络数据处理***100包含网络102,该网络是用来提供在网络数据处理***100内连接在一起的各种设备和计算机之间的通信链路的介质。网络102可以包括连接、比如接线(wire)、无线通信链路或者光纤线缆。
在描绘的示例中,服务器计算机i04和服务器计算机106与存储单元108一起连接到网络102。此外,客户端计算机110、112和114连接到网络102。客户端计算机110、112和114可以例如是个人计算机或者网络计算机。在描绘的示例中,服务器计算机104向客户端计算机110、112和114提供信息、比如引导文件、操作***映像和应用。客户端计算机110、112和114在这一示例中是服务器计算机104的客户端。网络数据处理***100可以包括未示出的附加服务器计算机、客户端计算机和其它设备。
位于网络数据处理***100中的程序代码可以存储于计算机可记录存储介质上并且向数据处理***或者其它设备下载以用于使用。例如程序代码可以存储于服务器计算机104上的计算机可读存储介质上并且通过网络102向客户端计算机110下载以用于在客户端计算机110上使用。
在描绘的示例中,网络数据处理***100是具有网络102的因特网,该因特网代表使用传输控制协议/网际协议(TCP/IP)协议组以相互通信的网络和网关的全世界汇集。在因特网的中心是在由路由数据和消息的数以千计的商业、政府、教育和其它计算机***构成的主要节点或者主机计算机之间的高速数据通信链路的主干。当然,网络数据处理***100也可以实现为多个不同类型的网络、如比如内联网、局域网(LAN)或者广域网(WAN)。图1旨在于作为示例而并非用于不同说明性实施方式的架构限制。
因此,本发明的说明性实施方式提供一种用于从第一设备向第二设备传送应用的计算机实现的方法、计算机***和计算机程序产品。第一设备发送用于向第二设备传送运行中的应用的请求。第二设备确定应用是否当前安装于第二设备上。第二设备确定应用是否为设计成在第二设备的平台上运行的应用。第二设备然后从第一设备接收用于应用的状态信息。响应于接收状态信息,第二设备利用从第一设备接收的状态信息来执行相对方应用。
现在参照图2,根据本发明的一个优选实施方式描绘了处于移动设备这一形式的客户端的图。移动设备200包括用于呈现文字和图形信息的显示器202。显示器202可以是已知显示设备、比如液晶显示器(LCD)设备。显示器可以用来呈现地图或者指引(direction)、日历信息、电话目录或者电子邮件消息。在这些示例中,屏幕202可以使用输入设备、如比如触笔210来接收用户输入。
移动设备200也可以包括键盘204、扬声器206和天线208。除了使用屏幕202之外,键盘204也可以用来接收用户输入。扬声器206提供用于音频输出、比如呈现音频文件的机制。天线208提供在建立移动设备200与网络、比如图2中的网络202之间的无线通信链路时使用的机制。
移动设备200也优选地包括可以借助在移动设备200内操作的计算机可读介质中驻留的***软件来实现的图形用户界面。
现在转向图3,根据本发明的一个优选实施方式示出了移动设备的框图。移动设备300是移动设备、比如图2中的移动设备200的示例,实现本发明的过程的代码或者指令可以位于该移动设备中。移动设备300包括处理器304和主存储器306连接到的总线302。显示适配器308、键盘适配器310、储存器312和音频适配器314也连接到总线302。支架链路316提供用于将移动设备300连接到在将移动设备300中的数据与另一数据处理***同步时使用的支架的机制。另外,显示适配器308也包括用于在运用触屏显示器时从触笔接收用户输入的机制。
操作***在处理器304上运行并且用来协调并且提供对图3中的移动设备300内的各种部件的控制。用于操作***和应用或者程序的指令位于存储设备、比如储存器312上并且可以向主存储器306中加载以用于由处理器304执行。
本领域普通技术人员将理解图3中的硬件可以根据实现变化。除了图3中描绘的硬件之外或者取而代之还可以使用其它内部硬件或者***设备、比如快闪ROM(或者等效非易失性存储器)或者光盘驱动等。
现在转向图4,根据一个有利实施方式描绘了数据处理***的图示。数据处理***400可以用来实现移动设备、比如图2的移动设备200或者服务器计算机、比如图1的服务器计算机104和服务器计算机106之一。在这一说明性示例中,数据处理***400包括通信框架402,该通信框架提供在处理器单元404、存储器406、持久储存器408、通信单元410、输入/输出(I/O)单元412与显示器414之间的通信。在这些示例中,通信框架402可以是总线***。
处理器单元404服务于执行可以向存储器406中加载的用于软件的指令。处理器单元404根据特定实现可以是某一数目的处理器、多处理器核或者某一其它类型的处理器。如这里参照项而使用的那样,某一数目意味着一个或者多个项。另外,可以使用某一数目的异构处理器***来实现处理器单元404,在该异构处理器***中,主存储器与次级处理器一起存在于单个芯片上。作为另一说明性示例,处理器单元404可以是包含相同类型的多个处理器的对称多处理器***。
存储器406和持久储存器408是存储设备416的示例。存储设备的能够存储信息的任一件硬件,该信息如比如是而不限于数据、以功能形式的程序代码和/或在临时基础和/或持久基础上的其它适当信息。存储设备416在这些示例中也可以称为计算机可读存储设备。存储器406在这些示例中可以例如是随机存取存储器或者任何适当易失性或者非易失性存储设备。持久储存器408根据特定实现可以采用各种形式。
例如持久存储器408可以包含一个或者多个部件或者设备。例如持久储存器408可以是硬驱动、闪存、可重写光盘、可重写磁带或者上述持久储存器的某一组合。持久存储器408使用的介质也可以是可移除的。例如可移除硬驱动可以用于持久存储器408。
在这些示例中通信单元410提供与其它数据处理***或者设备的通信。在这些示例中,通信单元410是网络接口卡。通信单元410可以通过使用物理和无线通信链路二者来提供通信。
输入/输出单元412允许与可以连接到数据处理***400的其它设备输入和输出数据。例如输入/输出单元412可以提供用于通过键盘、鼠标和/或某一其它适当输入设备的用户输入的连接。另外,输入/输出单元412可以向打印机发送输出。显示器414提供用于向用户显示信息的机制。
用于操作***、应用和/或程序的指令可以位于通过通信框架402与处理器单元404通信的存储设备416中。在这些说明性示例中,指令以功能形式处于持久储存器408上。可以向存储器406中加载这些指令以用于由处理器单元404执行。处理器单元404可以使用可以位于存储器、比如存储器406中的计算机实现的指令来执行不同实施方式的过程。
这些指令称为处理器单元404中的处理器可以读取并且执行的程序代码、计算机可用程序代码或者计算机可读程序代码。程序代码在不同实施方式中可以实现于不同物理或者计算机可读存储介质、比如存储器406或者持久储存器408上。
程序代码418以功能形式位于可选择性移除的计算机可读介质420上并且可以向数据处理***400上加载或者向数据处理***400传送以用于由处理器单元404执行。程序代码418和计算机可读介质420在这些示例中形成计算机程序产品422。在一个示例中,计算机可读介质420可以是计算机可读存储介质424或者计算机可读信号介质426。计算机可读存储介质424可以例如包括向驱动或者其它设备中***或者放置的光盘或者磁盘,该驱动或者其它设备是用于向存储设备、比如硬驱动上传送的持久储存器408的部分,该存储设备是持久储存器408的部分。计算机可读存储介质424也可以采用连接到数据处理***400的持久储存器、比如硬驱动、拇指驱动或者闪存这一形式。在一些实例中,计算机可读存储介质424可能不可从数据处理***400移除。在这些示例中,计算机可读存储介质424是用来存储从鞥徐代码418的物理或者有形存储设备而不是传播或者传输程序代码418的介质。计算机可读存储介质424也称为计算机可读有形存储设备或者计算机可读物理存储设备。换而言之,计算机可读存储介质424是人可以触摸的介质。
备选地,可以使用计算机可读信号介质426向数据处理***400传送程序代码418。计算机可读信号介质426可以例如是包含程序代码418的传播数据信号。例如计算机可读信号介质426可以是电磁信号、光学信号和/或任何其它适当类型的信号。可以通过通信链路、比如无线通信链路、光纤线缆、同轴线缆、接线和/或任何其它适当类型的通信链路传输这些信号。换而言之,通信链路和/或连接在说明性示例中可以是物理的或者无线的。
在一些有利实施方式中,可以通过网络从另一设备或者数据处理***通过计算机可读信号介质426向持久储存器408下载程序代码418以用于在数据处理***400内使用。例如可以通过网络从服务器向数据处理***400下载服务器处理***中的计算机可读存储介质中存储的程序代码。提供程序代码418的数据处理***可以是能够存储和发送程序代码418的服务器计算机、客户端计算机或者某一其它设备。
针对数据处理***400图示的不同部件并非为了提供对可以实现不同实施方式的方式的架构限制。不同有利实施方式可以实现于包括除了针对数据处理***400图示的部件之外或者取而代之的部件的数据处理***中。可以相对于所示说明性示例变化图4中所示其它部件。可以使用能够运行程序代码的任何硬件设备或者***来实现不同实施方式。作为一个示例,数据处理***可以包括与无机部件集成的有机部件和/或可以完全由排除人类的有机部件组成。例如存储设备可以由有机半导体组成。
在另一说明性示例中,处理器单元404可以采用硬件单元的形式,该硬件单元具有针对特定使用而制造或者配置的电路。这一类型的硬件可以执行操作而无需程序代码从存储设备向存储器中加载以被配置成执行操作。
例如当处理器单元404采用硬件单元的形式时,处理器单元404可以是配置成执行某一数目的操作的电路***、专用集成电路(ASIC)、可编程逻辑器件或者某一其它适当类型的硬件。利用可编程逻辑器件,设备被配置成执行该数目的操作。设备可以在以后时间被重新配置或者可以被持久地配置成执行该数目的操作。可编程逻辑器件的示例例如包括可编程逻辑阵列、可编程阵列逻辑、现场可编程逻辑阵列、现场可编程门阵列和其它适当硬件设备。利用这一类型的实现,可以省略程序代码418,因为用于不同实施方式的过程实现于硬件单元中。
在又一说明性示例中,可以使用在计算机和硬件单元中发现的处理器组合来实现处理器单元404。处理器单元404可以具有配置成运行程序代码418的某一数目的硬件单元和某一数目的处理器。利用这一描绘的示例,过程中的一些过程可以实现于该数目的硬件单元中,而其它过程可以实现于该数目的处理器中。
在另一示例中,总线***可以用来实现通信框架402并且可以由一个或者多个总线、比如***总线或者输入/输出总线组成。当然,可以使用任何适当类型的架构来实现总线***,该架构提供在附着到总线***的不同部件或者设备之间的数据传送。
此外,通信单元可以包括发送数据、接收数据或者发送并且接收数据的某一数目的更多设备。通信单元可以例如是调制器或者网络适配器、两个网络适配器或者其某一组合。另外,存储器可以例如是存储器406或者比如在可以存在于通信框架402中的接口和存储器控制器集线器中发现的高速缓存。
现在参照图5,示出了用于从一个设备向另一设备传送运行中的应用的数据流程。设备510和设备512可以例如是图2的移动设备200。备选地,设备510和设备512也可以是但不限于例如写字板计算机、膝上型计算机、桌面型计算机和电视。
设备510包括应用514。应用514是设计成向用户提供服务的软件应用。应用514与***软件和中间件对照,该***软件和中间件管理并且集成计算机的能力、但是通常未在执行让用户受益的任务时直接应用它们。应用514包括依赖关系(dependency)516。依赖关系516是由应用514利用的子例程、方法、变量、代码、数据结构和对象。依赖关系516可以例如包括但不限于库518、设备功能520和其它应用522上的依赖关系。
库518是向应用、比如应用514和其它应用522提供服务的资源汇集、比如预编写的代码和子例程、类、值和类型规范。设备功能520在功能上由移动设备、比如全球定位设备、电话提供。其它应用522是设计成向用户提供服务的其它软件应用。
设备510包括传送应用524。传送应用524是用于向另一设备、比如设备512传送运行中的应用、比如应用514和从另一设备、比如设备512接收运行中的应用、比如应用514的软件应用。
传送应用524包括传送算法526。传送算法526是用于从设备510向设备512移动运行中的应用、比如应用514的一系列指令。
传送应用524允许设备510连接到其它设备、比如设备512。设备510可以例如但不限于通过使用个人区域网络连接来连接到其它设备。传送应用524然后实现传送运行中的应用、比如应用514,包括用于运行中的应用的任何应用状态、比如应用状态528。应用状态528是描述应用514的执行状态生命周期的数据。
在执行期间从设备510向设备512传送应用514。传送应用524收集例如但不限于过程状态数据、关于绑定到过程的打开文件和打开套接字的数据、与过程关联的流的状态、与过程关联的文件的状态以及关于应用514的当前状态的任何其它信息并且存储数据为应用状态528。应用状态528用来在与应用512在上次保存应用状态528时在设备510上处于的相同状态中在设备510上重启应用512。
设备512包括库530、设备功能532和其它应用534。设备512包括具有传送算法538的传送应用536。库530、设备功能532、其它应用534和传送应用536中的每项分别与库518、设备功能520、其它应用522和传送应用524相似。
设备512可以是与设备510不同的平台。也就是说,设备512可以例如是不同制造品、不同机型并且运行与设备510不同的操作***。
在一个实施方式中,应用514是设计成在与设备512不同的平台上运行的应用。设计成在不同平台上运行的应用是旨在于用于在与设备512不同的设备上使用的应用。当应用510被设计成在与设备512不同的平台上运行时,传送应用536可以联系应用提供商540以获得对应的应用542。
应用提供商540是使应用可用于设备、比如设备510和设备512的数据处理***、比如图1的服务器计算机104和服务器计算机106之一。应用提供商540提供以如下格式可执行的应用,该格式被设计成在将在其上执行应用的平台上运行。例如以设备510可执行的格式编译应用514。相对方应用542可以提供与应用514相同的服务、但是代之以用设计成在设备512的平台上运行的格式来编译。设备510和设备512中的任一设备或者两个设备可以通过网络544访问应用提供商540。
传送应用536提供用于将应用514的依赖关系516映射到由相对方应用542利用的子例程、方法、变量、代码、数据结构和对象的指令。在一个说明性实施方式中,传送应用524和传送应用536中的每个应用通过创建依赖关系映射来提供指令。
传送应用524确定并且收集由应用514利用的每个子例程、方法、变量、代码、数据结构和对象的标识、属性和设置。类似地,传送应用524确定由相对方应用542利用的每个子例程、方法、变量、代码、数据结构和对象的标识、属性和设置。这一过程是迭代的。发现的每个标识属性和设置可以触发发现其它应用和服务直至发现整个基础设施。在发现用于应用514和相对方应用542中的每个应用的每个子例程、方法、变量、代码、数据结构和对象的标识、属性和设置之后,传送应用542可以应用基于试探的算法以将它已经发现的依赖关系相关。传送应用524使用这一分析以将依赖关系516映射到相对方应用542依赖于的库530、设备功能532和其它应用534。
当完成映射时,可以从设备510向设备512传送应用状态528。在一个说明性实施方式中,传送应用524和传送应用536使用检查点和重启特征以移动工作量分区。
检查点过程是用于给定过程的软件部件,该软件部件收集过程状态数据、关于绑定到过程的打开文件和打开套接字的数据以及关于应用514中的过程的当前状态的任何其它信息并且保存它为应用状态528。传送应用524然后冻结应用514并且向设备512发送应用状态528。设备512然后可以本地存储应用状态528并且配置相对方应用542以利用应用状态528。设备512然后可以启动相对方应用542。
现在参照图6,根据一个示例实施方式示出了用于向设备发送运行中的应用的流程图。过程600是在设备的软件部件、比如图5的传送应用526上执行的软件过程。
过程600始于发送用于向运行不同平台的不同设备传送运行中的应用的请求(步骤610)。运行中的应用可以是图5的应用514。不同设备可以是图5的设备524。
过程600然后创建用于运行中的应用的依赖关系映射。依赖关系映射(步骤620)是由运行中的应用利用的每个子例程、方法、变量、代码、数据结构和对象的标识、属性和设置。在一个示例实施方式中,依赖关系映射是有向图。
过程600然后标识运行中的应用是否被设计成在不同设备的平台上运行(步骤630)。过程600可以例如通过从不同设备接收通知来标识运行中的应用被设计成在不同移动平台上运行。响应于确定运行中的应用被设计成在不同设备的平台上运行(在步骤630为“是”),过程600继续步骤650。
响应于确定运行中的应用未被设计成在不同设备的平台上运行(在步骤630为“否”),过程向不同设备发送依赖关系映射(步骤640)。
过程600保存用于运行中的应用的应用状态(步骤650)。应用状态可以是图5的应用状态528。应用状态可以包括状态数据、关于绑定到过程的打开文件和打开套接字的数据以及关于运行中的应用、比如图5的应用514中的过程的当前状态的任何其它信息。
响应于保存应用状态,过程600冻结应用(步骤660)并且向运行不同平台的不同设备发送应用状态(步骤670)。过程600随后终止。运行不同平台的不同设备然后可以利用应用状态以在运行不同平台的不同设备上启动相对方应用。
现在参照图7,根据一个说明性实施方式示出了用于从运行不同平台的设备接收运行中的应用的流程图。过程700是在软件部件、比如传送应用536上执行的软件过程。
过程700始于接收用于从设备传送运行中的应用的请求(步骤705)。设备可以是图5的设备510。
响应于接收请求,过程700确定相对方应用当前是否被安装(步骤710)。相对方应用可以是图5的相对方应用542。响应于确定相对方应用被安装(在步骤710为“是”),过程700继续到步骤720。
响应于确定相对方应用并未被安装(在步骤710为“否”),过程700从应用提供商取回相对方应用(步骤715)。应用提供商可以是图5的应用提供商540。过程700继续到步骤720。
过程700创建用于相对方应用的依赖关系映射(步骤720)。依赖关系映射是由相对方应用利用的每个子例程、方法、变量、代码、数据结构和对象的标识、属性和设置。在一个说明性实施方式中,依赖关系映射是有向图。
过程700然后确定在不同设备上运行的应用是否被设计成在当前设备的平台上运行(步骤725)。响应于确定在不同设备上运行的应用被设计成在当前设备的平台上运行(在步骤725为“是”),过程700继续到步骤745。
响应于确定在不同设备上运行的应用未被设计成在当前设备的平台上运行(在步骤725为“否”),过程700从当前运行中的应用的设备接收依赖关系映射(步骤730)。依赖关系映射是由运行中的应用利用的每个子例程、方法、变量、代码、数据结构和对象的标识、属性和设置。在一个说明性实施方式中,依赖关系映射是有向图。
响应于从当前运行中的应用的设备接收依赖关系映射,过程700将相对方应用的依赖关系与运行中的应用的依赖关系相关(步骤735)。过程700然后继续到步骤740。
响应于将相对方应用的依赖关系与运行中的应用的依赖关系相关,过程700确定依赖关系映射是否有效(步骤740)。对依赖关系映射的验证可以确定运行不同平台的设备是否支持依赖关系。
响应于确定依赖关系映射无效(在步骤740为“否”),过程700终止。由于运行不同平台的设备不能支持依赖关系,所以运行不同平台的设备不能运行传送的应用。
现在返回至步骤740,响应于确定依赖关系映射有效(在步骤740为“是”),过程700接收应用状态(步骤745)。应用状态可以是图5的应用状态528。应用状态可以包括状态数据、关于绑定到过程的打开文件和打开套接字的数据以及关于运行中的应用、比如图5的应用514中的过程的当前状态的任何其它信息。
响应于接收应用状态,过程700配置相对方应用以利用应用状态(步骤750)。过程700然后启动相对方应用(步骤755)而过程随后终止。
因此,本发明的说明性实施方式提供一种用于从第一设备向第二设备传送应用的计算机实现的方法、计算机***和计算机程序产品。第一设备发送用于向第二设备传送运行中的应用的请求。第二设备确定应用当前是否被安装于第二设备上。第二设备确定应用是否是被设计成在第二设备的平台上运行的应用。第二设备然后从第一设备接收用于应用的状态信息。响应于接收状态信息,第二设备利用从第一设备接收的状态信息来执行相对方应用。
已经出于示例的目的而呈现对本发明各种实施方式的描述、但是并非旨在于穷举或者限于公开的实施方式。许多修改和变形将为本领域普通技术人员所清楚而未脱离描述的实施方式的范围和精神实质。选择这里所用术语以最好地说明实施方式的原理、实际应用或者较市面上发现的技术而言的技术改进或者使本领域其他技术人员能够理解这里公开的实施方式。
图中的流程图和框图图示了根据本发明各种实施方式的***、方法和计算机程序产品的可能实现的架构、功能和操作。就这一点而言,流程图或者框图中的每个块可以代表代码的模块、段或者部分,该代码的模块、段或者部分包括用于实现指定逻辑功能的一个或者多个可执行指令。也应当注意在一些备选实现中,在块中指出的功能可以不按图中指出的顺序出现。例如事实上根据涉及到的功能可以基本上并行执行接连示出的两个块或者有时可以反序执行这些块。也将注意框图和/或流程图图示的每个块以及在框图和/或流程图图示中的块组合可以由执行指定功能或者动作的基于专用硬件的***实现或者由专用硬件与计算机指令的组合实现。
Claims (12)
1.一种用于从第一设备向第二设备传送应用的计算机实现的方法,所述方法包括:
由所述第二设备接收用于从所述第一设备向所述第二设备传送应用的请求,其中所述应用正在所述第一设备上运行;
由所述第二设备确定所述应用当前是否安装于所述第二设备上;
由所述第二设备确定所述应用是否是被设计成在所述第二设备的平台上运行的应用;
由所述第二设备从所述第一设备接收用于所述应用的状态信息;
响应于接收用于所述应用的状态信息,由所述第二设备利用从所述第一设备接收的所述状态信息在所述第二设备上执行相对方应用;
响应于确定所述运行中的应用是被设计成在所述第二设备的所述平台上运行的应用,创建用于所述相对方应用的依赖关系映射;
从所述第一设备接收用于所述应用的依赖关系映射;以及
将用于所述相对方应用的所述依赖关系映射中的依赖关系与用于所述应用的所述依赖关系映射中的依赖关系相关。
2.根据权利要求1所述的计算机实现的方法,还包括:
响应于确定所述运行中的应用当前并未安装于所述第二设备上,接收所述相对方应用。
3.根据权利要求2所述的计算机实现的方法,其中所述接收所述相对方应用的步骤还包括:
响应于确定所述运行中的应用当前并未安装于所述第二设备上,接收所述相对方应用,其中所述相对方应用接收自由所述第一设备和应用提供商构成的组中的至少一项。
4.根据权利要求1所述的计算机实现的方法,还包括:
响应于将用于所述相对方应用的所述依赖关系映射中的依赖关系与用于所述应用的所述依赖关系映射中的依赖关系相关,确定所述依赖关系映射是否有效;以及
响应于确定所述依赖关系映射无效,不从所述第一设备向所述第二设备传送所述应用。
5.根据权利要求1所述的计算机实现的方法,其中所述第一设备选自由移动设备、写字板计算机、膝上型计算机、桌上型计算机和电视构成的组。
6.根据权利要求1所述的计算机实现的方法,其中所述第二设备选自从由移动设备、写字板计算机、膝上型计算机、桌上型计算机和电视构成的组。
7.一种用于从第一设备向第二设备传送应用的***,所述***包括:
用于由所述第二设备接收用于从所述第一设备向所述第二设备传送应用的请求的装置,其中所述应用正在所述第一设备上运行;
用于由所述第二设备确定所述应用当前是否安装于所述第二设备上的装置;
用于由所述第二设备确定所述应用是否是被设计成在所述第二设备的平台上运行的应用的装置;
用于由所述第二设备从所述第一设备接收用于所述应用的状态信息的装置;
用于响应于接收用于所述应用的状态信息、由所述第二设备利用从所述第一设备接收的所述状态信息在所述第二设备上执行相对方应用的装置;
用于响应于确定所述运行中的应用是被设计成在所述第二设备的所述平台上运行的应用、创建用于所述相对方应用的依赖关系映射的装置;
用于从所述第一设备接收用于所述应用的依赖关系映射的装置;以及
用于将用于所述相对方应用的所述依赖关系映射中的依赖关系与用于所述应用的所述依赖关系映射中的依赖关系相关的装置。
8.根据权利要求7所述的***,还包括:
用于响应于确定所述运行中的应用当前并未安装于所述第二设备上、接收所述相对方应用的装置。
9.根据权利要求8所述的***,其中所述用于接收所述相对方应用的装置还包括:
用于响应于确定所述运行中的应用当前并未安装于所述第二设备上、接收所述相对方应用的装置,其中所述相对方应用接收自由所述第一设备和应用提供商构成的组中的至少一项。
10.根据权利要求7所述的***,还包括:
用于响应于将用于所述相对方应用的所述依赖关系映射中的依赖关系与用于所述应用的所述依赖关系映射中的依赖关系相关、确定所述依赖关系映射是否有效的装置;以及
用于响应于确定所述依赖关系映射无效、不从所述第一设备向所述第二设备传送所述应用的装置。
11.根据权利要求7所述的***,其中所述第一设备选自由移动设备、写字板计算机、膝上型计算机、桌上型计算机和电视构成的组。
12.根据权利要求7所述的***,其中所述第二设备选自从由移动设备、写字板计算机、膝上型计算机、桌上型计算机和电视构成的组。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/350,942 | 2012-01-16 | ||
US13/350,942 US8938518B2 (en) | 2012-01-16 | 2012-01-16 | Transferring applications and session state to a secondary device |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103279396A CN103279396A (zh) | 2013-09-04 |
CN103279396B true CN103279396B (zh) | 2016-01-27 |
Family
ID=48780762
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310013948.6A Expired - Fee Related CN103279396B (zh) | 2012-01-16 | 2013-01-15 | 用于向次级设备传送应用和会话状态的***和方法 |
Country Status (2)
Country | Link |
---|---|
US (2) | US8938518B2 (zh) |
CN (1) | CN103279396B (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20130099520A (ko) * | 2012-02-29 | 2013-09-06 | 삼성전자주식회사 | Html을 이용한 사용자 인터페이스 이전 장치 및 방법 |
US9071347B2 (en) * | 2012-08-21 | 2015-06-30 | Google Technology Holdings LLC | Electronic device and method for transferring information from one device to another device |
US20150172360A1 (en) * | 2012-09-27 | 2015-06-18 | Heyuan Liu | Cross-device operation using gestures |
US9369823B2 (en) * | 2013-09-24 | 2016-06-14 | Google Technology Holdings LLC | System and method for transferring software applications and data between two mobile devices with different operating systems |
WO2015099588A1 (en) * | 2013-12-29 | 2015-07-02 | Telefonaktiebolaget L M Ericsson (Publ) | Enabling provision of a service to a mobile terminal in a wireless communications network |
US9621650B2 (en) | 2014-09-30 | 2017-04-11 | Google Inc | Mobile application state identifier framework |
US20170052683A1 (en) * | 2015-08-20 | 2017-02-23 | International Business Machines Corporation | Altering a display perspective to avoid scrolling |
US11153164B2 (en) | 2017-01-04 | 2021-10-19 | International Business Machines Corporation | Live, in-line hardware component upgrades in disaggregated systems |
US10534598B2 (en) | 2017-01-04 | 2020-01-14 | International Business Machines Corporation | Rolling upgrades in disaggregated systems |
US10554427B2 (en) | 2017-03-08 | 2020-02-04 | International Business Machines Corporation | Resuming a context on a group of electronic devices |
US10313854B2 (en) * | 2017-11-08 | 2019-06-04 | International Business Machines Corporation | Listing service registrations through a mobile number |
US11750735B2 (en) * | 2021-10-28 | 2023-09-05 | International Business Machines Corporation | Changing a user interface based on aggregated device capabilities |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564979A (zh) * | 2001-10-04 | 2005-01-12 | 西门子公司 | 更新不同终端上软件的方法 |
CN1945535A (zh) * | 2005-08-23 | 2007-04-11 | 捷讯研究有限公司 | 在电子设备之间传送软件状态的方法和*** |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0644158A (ja) * | 1991-06-27 | 1994-02-18 | Intaakomu:Kk | リモートインストール方法 |
EA002886B1 (ru) | 1997-11-13 | 2002-10-31 | Хайперспейс Коммьюникейшнз, Инк. | Система пересылки файлов |
US7240099B2 (en) | 2000-03-06 | 2007-07-03 | Sony Corporation | System and method for efficiently performing data transfer operations |
US7181759B2 (en) | 2000-05-26 | 2007-02-20 | Bigband Networks, Inc. | System and method for providing interactivity for end-users over digital broadcast channels |
US20080201705A1 (en) * | 2007-02-15 | 2008-08-21 | Sun Microsystems, Inc. | Apparatus and method for generating a software dependency map |
US20090183151A1 (en) * | 2008-01-15 | 2009-07-16 | Sam Gharabally | Obtaining Software for a Handheld Device |
US8516125B2 (en) | 2008-06-08 | 2013-08-20 | Apple Inc. | System and method for simplified data transfer |
US9015818B2 (en) | 2009-07-31 | 2015-04-21 | Adobe Systems Incorporated | Software application operational transfer |
US20110163944A1 (en) | 2010-01-05 | 2011-07-07 | Apple Inc. | Intuitive, gesture-based communications with physics metaphors |
US8490055B2 (en) * | 2010-09-17 | 2013-07-16 | Ca, Inc. | Generating dependency maps from dependency data |
CN103229156B (zh) * | 2010-10-01 | 2016-08-10 | Flex Electronics ID Co.,Ltd. | 多操作***环境中的对接***的自动配置 |
US8224894B1 (en) * | 2011-05-09 | 2012-07-17 | Google Inc. | Zero-click sharing of application context across devices |
US8806196B2 (en) | 2011-11-04 | 2014-08-12 | Motorola Solutions, Inc. | Method and apparatus for authenticating a digital certificate status and authorization credentials |
US20130147784A1 (en) | 2011-11-22 | 2013-06-13 | Thomas Casey Hill | Methods and apparatus to control presentation devices |
-
2012
- 2012-01-16 US US13/350,942 patent/US8938518B2/en not_active Expired - Fee Related
- 2012-04-30 US US13/460,609 patent/US8782139B2/en not_active Expired - Fee Related
-
2013
- 2013-01-15 CN CN201310013948.6A patent/CN103279396B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1564979A (zh) * | 2001-10-04 | 2005-01-12 | 西门子公司 | 更新不同终端上软件的方法 |
CN1945535A (zh) * | 2005-08-23 | 2007-04-11 | 捷讯研究有限公司 | 在电子设备之间传送软件状态的方法和*** |
Also Published As
Publication number | Publication date |
---|---|
US20130185380A1 (en) | 2013-07-18 |
US8938518B2 (en) | 2015-01-20 |
US8782139B2 (en) | 2014-07-15 |
US20130185383A1 (en) | 2013-07-18 |
CN103279396A (zh) | 2013-09-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103279396B (zh) | 用于向次级设备传送应用和会话状态的***和方法 | |
US10936293B2 (en) | Container image layer reordering | |
US9444896B2 (en) | Application migration between clouds | |
US8676848B2 (en) | Configuring cloud resources | |
US9619371B2 (en) | Customized application performance testing of upgraded software | |
CN102202049A (zh) | 用于多虚拟机设备的网络策略实现 | |
WO2013055601A1 (en) | Discovery-based indentification and migration of easily cloudifiable applications | |
US20220082616A1 (en) | Systems and methods for networked device testing | |
US8776048B2 (en) | Early configuration in deploying an enterprise application | |
CN114338680A (zh) | 用于在计算设备中相对于服务水平协议来管理服务质量的方法和装置 | |
CN104239088B (zh) | 对分布式计算机网络的节点执行操作 | |
KR20220042043A (ko) | 에지 환경에서의 데이터 라이프사이클 관리를 위한 장치, 시스템, 제조 물품, 및 방법 | |
US11582285B2 (en) | Asynchronous workflow and task api for cloud based processing | |
CN111124299A (zh) | 数据存储管理方法、装置、设备、***及存储介质 | |
US20220035660A1 (en) | Migration evaluation system and method | |
Kottari et al. | A survey on mobile cloud computing: Concept, applications and challenges | |
CN109976832A (zh) | 一种提供寄宿程序的方法与设备 | |
KR20210113963A (ko) | 정보 획득 방법 및 장치 | |
US9559904B2 (en) | Dynamic agent replacement within a cloud network | |
US20220035657A1 (en) | Migration evaluation system and method | |
US20120233332A1 (en) | Resource Property Aggregation in a Multi-Provider System | |
CN111327472B (zh) | 用于获取目标网络的方法及装置 | |
CN114697206B (zh) | 物联网节点管理方法、装置、设备和计算机可读介质 | |
US8560544B2 (en) | Clustering of analytic functions | |
US20220300611A1 (en) | Run-time communications protocol parameter adjustment in containerized applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160127 Termination date: 20210115 |
|
CF01 | Termination of patent right due to non-payment of annual fee |