用于在运行时支持微件的跨容器移动的方法和系统与流程

文档序号:12041796阅读:179来源:国知局
用于在运行时支持微件的跨容器移动的方法和系统与流程
本发明的实施例总体上涉及Web技术,并且更具体地,涉及用于在运行时支持微件的跨容器移动的方法和系统。

背景技术:
随着Web技术的不断发展,微件(widget)已经在Web应用中得到了日益广泛的使用。在此使用的术语“微件”是指可以由用户或者过程(在具有授权的情况下)嵌入到第三方Web界面中的独立应用。这里所称的“Web界面”包括但不限于网页或者任何基于Web的应用的交互界面。微件允许用户向网页或者Web应用添加个性化的和/或可定制的动态内容。作为一个示例,用户可以在Web界面上添加与天气信息有关的微件“天气预报”,以用于从相应的天气信息提供方访问与天气情况有关的数据并将其动态显示在Web界面上。微件通常使用诸如JavaScript、Flash、HTML、CSS等Web技术实现,并且可以基于Web浏览器或者微件引擎所提供的API来执行各种操作。一般而言,微件包括定义文件和资源文件等组成。微件的定义文件例如是可扩展标记语言(XML)文件,描述widget的属性、事件以及视图等;而资源文件例如可以包括JS文件、层叠样式表(CSS)文件等。在Web界面上,微件通常被布置在称为“容器”(container)的对象中。“容器”提供用于绘制和管理微件的功能以及相关联的类(例如,JavaScript类)。例如,一个微件容器可以管理一个Web界面内的一组微件,解析每个微件的定义并且创建相应的封装以便将微件绘制在Web界面中。微件容器还可以管理微件的生命周期以及处理共享对象,等等。以Web浏览器应用为例,Web浏览器应用 所显示的每个网页可以与一个微件容器相关联,该微件容器用于管理和控制驻留于该实例或标签所显示的页面内的微件。在本文中,微件容器对微件的管理和控制可称为“托管”。在使用过程中,用户往往期望在运行时(runtime)用户界面内移动已经被绘制的微件。在此上下文中使用的术语“运行时”是指在微件被开发完成之后投入使用的状态,例如被部署和绘制之后。例如,实现这种微件运行时移动的一种常见手段是拖放(Drag-and-Drop,DnD)操作。用户例如可以利用鼠标之类的指点设备选择要移动的微件(例如,通过按下鼠标左键)。此后,用户可以利用指点设备拖动被选中的微件(例如,通过在鼠标左键保持按下的情况下移动鼠标的光标)直到达到目标位置。响应于拖放完成指示(例如,通过释放鼠标左键),微件被移动到目标位置。然而,目前微件的运行时移动只能在相同的容器内进行,而无法跨容器实现。仍以Web浏览器应用为例,如上所述,Web浏览器应用的一个实例或者标签通常与一个微件容器相关联。由此,在现有技术中用户无法将Web浏览器应用的一个实例或标签中已经部署和绘制的微件移动到Web浏览器应用的另一实例或标签中。可以理解,微件的开发者可以在开发期间通过例如在不同容器和应用之间拷贝微件代码而将微件部署在不同的容器中。然而,这种方式对于终端用户而言是不适用的,因为终端用户无法获得微件的源代码。换言之,在现有技术中,微件在不同容器之间的移动只能由开发者在开发和/或维护期间实现,而终端用户无法在运行时通过交互的方式在不同的容器之间移动微件。上述问题给用户的使用和操作带来了不便。例如,用户可能在一个Web浏览器实例所显示的页面中添加了一个“天气预报”微件,并且进行了特定的个性化设置。在这种情况下,如果用户希望在另一Web浏览器实例所显示的页面中使用同样的微件,则他必须重新执行整个添加和设置过程,而不能通过移动来复用已经部署和设置好的微件。

技术实现要素:
鉴于现有技术中存在的上述问题,本领域中需要一种在运行时支持微件的跨容器移动的解决方案。为此,本发明的实施例提供一种在运行时控制微件的方法和系统。在本发明的第一方面,提供一种用于在运行时控制微件的方法,该微件由第一微件容器托管。该方法包括:在运行时在该第一微件容器处检测将该微件移动到第二微件容器的指示,该第二微件容器不同于该第一微件容器;以及响应于检测到该指示而向该第二微件容器移动该微件以便使得该微件在运行时变为由该第二微件容器托管。在本发明的第二方面,提供一种用于在运行时控制微件的方法,该微件由第一微件容器托管。该方法包括:在运行时在不同于该第一微件容器的第二微件容器处检测将该微件移动到第二微件容器的指示;以及响应于检测到该指示而从该第一微件容器接收该微件以便在运行时由该第二微件容器托管该微件。在本发明的第三方面,提供一种用于在运行时控制微件的系统,该微件由第一微件容器托管。该系统包括:第一指示检测装置,配置用于在运行时在该第一微件容器处检测将该微件移动到第二微件容器的指示,该第二微件容器不同于该第一微件容器;以及微件移动装置,配置用于响应于检测到该指示而向该第二微件容器移动该微件以便使得该微件在运行时变为由该第二微件容器托管。在本发明的第四方面,提供一种用于在运行时控制微件的系统,该微件由第一微件容器托管。该系统包括:第二指示检测装置,配置用于在运行时在不同于该第一微件容器的第二微件容器处检测将该微件移动到第二微件容器的指示;以及微件托管装置,配置用于响应于该指示而从该第一微件容器接收该微件以便在运行时由该第二微件容器托管该微件。通过下文描述将会理解,利用本发明的实施例,允许用户在运 行时跨容器移动微件,即,将已经部署和运行在一个微件容器中的微件移动到另一微件容器,即使目的地微件容器原本并不支持该微件。从应用的角度考虑,用户例如可以通过拖放操作将一个Web界面中的微件移动到另一Web界面中。特别地,根据本发明的某些实施例,在运行时被移动的微件可以在移动前后在不同的微件容器中保持数据和状态的一致性。以此方式,与现有技术相比,本发明的实施例能够为Web应用的微件操作提供更大的便捷性和灵活性。附图说明通过参考附图阅读下文的详细描述,本发明实施例的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本发明的若干实施例,其中:图1示出了根据本发明一个示例性实施例的用于在运行时在第一微件容器处将目前由其托管的微件移动到第二微件容器的方法100的示意性流程图;图2示出了根据本发明另一示例性实施例的用于在运行时在第一微件容器处将目前由其托管的微件移动到第二微件容器的方法200的示意性流程图;图3示出了根据本发明一个示例性实施例的用于在运行时在第二微件容器处从第一微件容器接收目前由第一微件容器托管的微件的方法300的示意性流程图;图4示出了根据本发明另一示例性实施例的用于在运行时在第二微件容器处从第一微件容器接收目前由第一微件容器托管的微件的方法400的示意性流程图;图5示出了根据本发明一个示例性实施例的用于在运行时在第一微件容器处将目前由其托管的微件移动到第二微件容器的系统500的示意性框图;图6示出了根据本发明一个示例性实施例的用于在运行时在第二微件容器处从第一微件容器接收目前由第一微件容器托管的微件 的系统600的示意性框图;以及图7示出了适于用来实现本发明实施例的示例性计算系统700的示意性框图。具体实施方式下面将参考附图中示出的若干示例性实施例来描述本发明的原理和精神。应当理解,给出这些实施例仅仅是为了使本领域技术人员能够更好地理解进而实现本发明的思想,并非以任何方式限制本发明的范围。首先参考图1,其示出了根据本发明一个示例性实施例的用于在第一微件容器处将目前由第一微件容器托管的微件移动到第二微件容器的方法100的流程图。可以理解,方法100例如可由当前托管微件的第一微件容器或其关联方/过程来执行。方法100开始之后,在步骤S102,在当前托管微件的第一微件容器处,在运行时检测将微件移动到第二微件容器的指示,其中第二微件容器不同于第一微件容器。根据本发明的实施例,微件可以是任何目前已知或者将来开发的、可以被部署和绘制在Web界面(例如,网页)上以用于呈现数据和/或与用户交互的应用。微件可以采用任何适当的语言和Web技术来开发。本发明的范围在这些方面均不受限制。在执行步骤S102之前,微件由第一微件容器来托管。这里使用的术语“托管”是指对微件的创建、设置、绘制、交互、销毁等各个阶段的操作进行管理和控制。根据本发明的实施例,负责托管微件的容器可以驻留在Web应用客户端(例如,Web浏览器)一侧,也可以驻留在提供Web服务的服务器一侧。一个Web界面或者Web应用例如与一个微件容器相关联,并且每个微件容器例如可以托管一个或多个微件。特别地,根据本发明的实施例,步骤S102处检测的指示是运行时指示。换言之,这种指示是在微件被部署和绘制之后由终端用户 在使用期间提供的。这与开发者在开发和/或维护期间通过访问和修改源代码来控制微件具有实质性区别。在步骤S102,将微件从第一微件容器移动到第二微件容器的运行时指示例如可以是针对该微件的跨容器拖动操作。作为示例,用户可以通过鼠标之类的左键指点工具点击第一微件容器内的一个微件,并且在左键保持按下状态的同时开始拖动操作。一旦指点设备的光标移动出了当前微件容器的范围,则认为发生了微件的跨容器移动。如本领域技术人员知道的,在Web应用中,拖动操作是一个得到普遍支持的常见操作。在本发明的实施例中,通过利用拖动事件充当微件的跨容器移动的触发事件,能够实现与现有Web应用和微件的兼容。而且,在这样的实施例中,方法100的步骤可由负责拖动事件的处理机(handler)来执行,这还将在下文详述。注意,以拖动事件作为微件的跨容器移动的触发事件仅仅是示例性的。备选地或附加地,例如可以在Web界面上提供相应的控件(例如,下拉列表、复选框、文本输入框,等等),以供用户选择将要移动的微件以及移动的目的地容器。其他实现方式同样是可行的,本发明的范围在此方面不受限制。作为移动操作的目的地,第二微件容器是不同于第一微件容器的另一微件容器。例如,二者可以与Web浏览器应用(相同类型或者不同类型)的不同实例相关联,或者同一Web浏览器应用实例的不同标签相关联。接下来,方法100进行到步骤S104,在此响应于在步骤S102检测到的指示,将微件从第一微件容器移动到第二微件容器,以便使得该微件在运行时变为由第二微件容器托管。换言之,通过执行步骤S104,先前在第一微件容器内被绘制和操作的微件被添加到了第二微件容器内,并且由第二微件容器来控制和管理其绘制、设置、交互等各种操作。在步骤S104,为了将微件的托管方从第一微件容器在运行时变更为第二微件容器,一种简单可行的方式是将该微件的HTML代码 在运行时从第一微件容器递送给第二微件容器。作为示例,例如可以基于超文本链接语言(HTML)第5版(HTML5)在运行时在微件容器之间递送HTML代码。具体而言,在HTML5中存在称为DataTransfer(数据传送)的对象和相应的方法调用,可以用于跨容器(例如,跨浏览器)来递送数据。在现有技术中,终端用户无法在运行时跨容器移动微件主要是因为:微件的信息(例如,代码、定义,等等)是由托管该微件的微件容器来管理和维护的,而现有技术中不支持跨容器递送微件的这些信息。根据本发明的实施例,借助于HTML5之类的运行时跨容器数据递送机制,克服和解决了这一问题。注意,基于HTML5的实现仅仅示例性的,任何目前已知或者将来开发的支持跨容器或者跨浏览器递送数据的技术手段均可与本发明的实施例结合使用。例如,可以预想到的是,在HTML5之后的各个HTML语言后续版本中,也将会具有类似的功能,因此也可以用来实践本发明。另外,在本发明的可选实施例中,可以从第一微件容器向第二微件容器递送与该微件有关的附加和/或备选信息。例如,微件的详细定义(包括布局信息和脚本定义的事件,等等)以及该微件在被移动时刻的状态和即时数据可以从第一微件容器被递送个第二微件容器。这还将在下文参考图2详述。方法100在步骤S104之后结束。通过执行方法100,可以允许用户跨容器移动微件。从应用层面考虑,微件可以跨网页、跨Web应用、跨Web浏览器的实例和/或跨Web浏览器的标签而被移动。特别应当注意,方法100的每个步骤均可在运行时以即时方式执行。考虑一个具体示例,用户登录到一个财经类网站并且在网页中添加并配置了关于股票动态的微件。当用户登录到另一个科技类网站时,他希望在该网站的页面上也嵌入一个股票动态的微件,以便能够实时查看他/她感兴趣的高科技公司的股价动向。此时,用户利 用现有技术必须在该科技类网站的页面上重新添加和配置股票微件。而且,如果该科技类网站不支持该股票微件,则用户根本无法实现其意图。然而,通过利用本发明的实施例,用户可以在运行时跨网页将微件从财经网页拖放到科技类网站,并且该微件仍然能够正常运行。下面参考图2,其示出了图2示出了根据本发明另一示例性实施例的用于在运行时在第一微件容器处将目前由第一微件容器托管的微件移动到第二微件容器的方法200的流程图。图2中描述的方法200可以被认为是上文参考图1描述的方法100的一种特定实现。类似于方法100,方法200也可由当前托管微件的第一微件容器或其关联方/过程来执行。方法200开始之后,在步骤S202,在运行时检测把由第一微件容器托管的微件移动到第二微件容器的跨容器拖放事件。换言之,在步骤S202中,上文描述的方法100的步骤S102中的运行时微件跨容器移动指示被实现为针对微件的跨容器拖放事件。在这样的实施例中,跨容器移动微件所需的处理例如可以由拖放操作的事件处理机来实现。这样的事件处理机例如可以通过JavaScript之类的脚本语言来编写。这是本领域的普通技术人员所知道的,在此不再赘述的。接下来,在步骤S204,响应于针对微件的跨容器拖放事件,获取指示该微件的定义的信息,并且将其递送给作为目的地的第二微件容器。可以理解,由于微件目前由第一微件容器托管,因此在步骤S204,该微件的定义信息是第一微件容器可获得的。例如,这种定义信息可以从与第一微件容器相关联的服务器获取。备选地或附加地,此类定义信息也可以保存在第一微件容器的客户端本地。根据本发明的实施例,在步骤S204获取的定义信息可以是微件的定义文件,也可以是针对该定义文件的参考(例如,以统一资源定位符URL的形式)。微件的定义文件,通常由XML来描述,可 以包含与该微件有关的任何信息,包括但不限于以下一个或多个:该微件的显示部分的HTML代码、绘制布局信息(例如,层叠样式表单CSS)、能够发送和接受的事件,以及事件响应的代码(例如,由JavaScript之类的脚本语言定义),等等。与仅仅递送微件的HTML代码相比,通过获取和递送微件的定义信息能够更加完整地在跨容器移动之后保持微件的属性(例如,外观,事件以及事件响应机制)。作为示例,在步骤S204,由第一微件容器获取的关于微件定义信息可以基于诸如HTML5之类的数据递送机制而被递送给第二微件容器技术手段实现这种递送。当然,其他任何适当的数据递送手段均与本发明的实施例结合使用,本发明的范围在此方面不受限制。接下来,方法200进行到步骤S206,在此响应于跨容器移动微件的指示(在此例中是跨容器拖放事件),获取所要移动的微件在第一微件容器内的即时数据和状态信息,并将其递送给第二微件容器。根据本发明的某些实施例,这种即时数据和状态信息例如可以通过调用第一微件容器和/或Web浏览器/应用所提供的应用编程接口(API)来获取。备选地或附加地,也可以通过解析与微件相关联的可扩展标记语言(XML)文件来获取微件的某些状态和数据。这样获取的即时数据和状态同样可以利用例如HTML5中的DataTransfcr机制来实现跨容器递送,即,从第一微件容器被递送给第二微件容器。然而,本领域技术人员可以理解的是,微件的某些瞬态数据可能无法通过调用API或者解析XML获取。这样的数据例如针对微件的用户操作信息、编辑信息、用户保存/未保存的状态、AJAX(异步JavaScript和XML)调用状态,等等。为了解决这一问题,可以允许微件的开发者在开发期间编写用于保存此类瞬态数据和状态的接口,例如串行化函数。这样,在步骤S206,可以通过调用微件中定义的这种串行化函数来获取和保存相应的即时数据和状态。相应地,第二微件容器可以通过调用对应的解串行化函数来获取所保存的数 据和状态,这将在下文详述。方法200在步骤S206之后结束。与方法100相比,通过执行方法200,不仅可以将微件的HTML代码从第一微件容器递送到第二微件容器,而且还可以在运行时递送该微件的准确定义(包括布局等高级别信息)以及移动时刻的即时数据和状态。利用这些信息,第二微件容器可以更为有效地实现对该微件的托管。具体而言,第二微件容器不仅可以绘制微件,而且可以确保该微件的外观、状态、数据、属性等各种有关信息均与在第一微件容器中被移动的时刻保持一致。这样做是有益的。用户可以将已经部署和运行在一个Web界面中的任意给定微件移动到另一Web界面中(例如,通过拖放操作),同时保持该微件的数据和运行状态的完整性和一致性。以此方式,用户无需在另一Web界面中重新设置该微件。考虑一个具体示例,如果所移动的微件是用于提供游戏功能的微件,则用户可在游戏进行过程中跨容器移动该微件,并且能够在移动之后保持游戏的进度和状态,从而可以继续该游戏。特别应当注意,类似于方法100,方法200的每个步骤均可在运行时以即时方式执行。现在参考图3,其示出了根据本发明一个示例性实施例的用于在运行时在第二微件容器处从第一微件容器接收目前由第一微件容器托管的微件的方法300的流程图。可以理解,方法300例如可以由作为移动目的地的第二微件容器或其关联方/过程来执行。方法300开始之后,在步骤S302,在运行时检测将目前由不同于第二微件容器的第一微件容器托管的微件移动到第二微件容器的指示。可以理解,步骤S302对应于上文参照图1描述的步骤S102,因而上文结合步骤S102描述的特征在此同样适用。特别地,在某些示例性实施例中,步骤S302处的指示可以是用户利用诸如鼠标之类的指点设备而发起的拖放事件。接下来,方法300进行到步骤S304,在此从第一微件容器接收 被移动的微件,以便该微件在运行时变为由第二微件容器托管。可以理解,步骤S304对应于上文参照图1描述的步骤S104,因而上文结合步骤S104描述的特征在此同样适用。特别地,在本发明的某些实施例中,在步骤S304处可以利用诸如HTML5中的DataTransfer对象和机制来实现跨容器的数据递送。当然其他目前已知或者将来开发的数据递送机制也是可行的,本发明的范围在此方面不受限制。根据本发明的某些实施例,在步骤S304处,第二微件容器至少可以接收所移动的微件的HTML代码,并且在与第二微件容器相关联的Web界面上绘制该第二微件。由此,用户可以在与第二微件容器相关联的Web界面上浏览和操作该微件。除此之外,第二微件容器还可以从第一微件容器接收与该微件有关的附加和/或备选信息,这将在下文参照图4描述。方法300在步骤S304之后结束。通过执行方法300,用户可以将已经部署和运行在第一微件容器中的微件在运行时移动到第二微件容器中(例如,通过拖放操作),即使第二微件的服务提供方原本并不支持该微件。特别应当注意,方法300的每个步骤均可在运行时以即时方式执行。接下来参考图4,其示出了根据本发明另一示例性实施例的用于在运行时在第二微件容器处从第一微件容器接收目前由第一微件容器托管的微件的方法400的流程图。图4中描述的方法400可以被认为是上文参考图3描述的方法300的一种特定实现。类似于方法300,方法400也可由作为移动目的地的第二微件容器或其关联方/过程来执行。方法400开始之后,在步骤S402,在运行时在第二微件容器处检测将目前由第一微件容器托管的微件移动到第二微件容器的指示。在图4所述的实施例中,该运行时指示被实现为用户通过鼠标之类的指点设备发起的针对微件的跨容器拖放操作。类似地,如上文所述,在这样的实施例中,后续针对微件的处理可以由拖放事件 处理机来实现。接下来,方法400进行到步骤S404,在此从第一微件容器接收指示所移动的微件的定义的信息。步骤S404与方法200中的步骤S204对应。相应地,在步骤S404可以接收的定义信息可以是微件的定义文件本身,也可以是去往该定义文件的URL。微件的定义可以包括但不限于以下一个或多个:该微件的HTML代码、绘制布局信息(例如,CSS)、能够响应和处理的事件,等等。通过从第一微件容器接收这样的定义信息,能够更加完整地跨容器移动微件。根据本发明的某些实施例,在步骤S404处,可以利用诸如HTML5的DataTransfer机制之类的运行时跨容器数据递送机制来接收微件的定义信息。接下来,方法400进行到步骤S406,在此接收在检测到移动指示的时刻所移动的微件在第一微件容器内的即时数据和状态信息。步骤S406对应于方法200中的步骤S206。相应地,微件的某些即时数据和状态可能是通过由第一微件容器调用适当的API或者解析XML获取的。作为示例,可以利用HTML5等跨容器数据递送机制来接收微件的此类即时数据和状态。除此之外,另一些数据和状态则可能是通过第一微件容器调用微件内定义的例如串行化函数来保存的。相应地,在步骤S406处,第二微件容器可以通过调用对应的解串行化函数来获得所保存的即时数据和状态。微件中的解串行化函数例如也可以由微件的开发者来定义和提供。方法400继而进行到步骤S408,在此可选地,可以根据作为移动指示的拖放事件来确定在第二微件容器内绘制微件的位置。具体而言,当用户通过拖放操作将微件拖动到第二微件容器内的期望位置时,他/她例如可以通过释放鼠标左键来指示拖放操作完成。此时,可以获取鼠标光标所指示的、与第二微件容器相关联的Web界面的位置(例如,坐标信息)。此后,可以采用任何适当的策略来确定微件在第二微件容器内的绘制位置。作为一种可行方案,可以强行将微件严格绘制在光标指定的位置,其中光标在容器中的位置可以利用与标准HTML事件相关联的坐标信息获得。如果该位置已经存在呈现有其他信息,可以修改这些信息的呈现位置,以此方式来解决绘制位置的潜在冲突。换言之,按照这种方式,将光标位置的已有信息移动到第二微件容器内的其他位置显示,而将所移动的微件绘制在第二微件容器内的光标位置。作为解决绘制位置的潜在冲突的一种备选方案,也可以选择距离光标位置最近的可用位置来绘制微件。例如,微件容器通常将与之关联的Web界面内划分为称为微件盒(box)的多个区域,每个区域中用于绘制一个微件。如果拖放操作在第二微件容器内指示的位置所在的微件盒为空,则可以将所移动的微件绘制在该盒内。另一方方面,如果该盒已被用于绘制另一微件,则可以选择与光标指示的位置最靠近的可用空盒来绘制被移动的微件。上述示例仅仅是出于说明目的,其他任何适当的机制均可被用于在第二微件容器内绘制所移动的微件,例如基于Web界面的预定布局,等等。接下来,方法400进行到步骤S410,在此利用在步骤S404接收的定义信息,将移动到第二微件容器中的微件绘制在步骤S408所确定的位置。给出一个微件的定义信息(例如,定义文件或者去往该定义文件的链接),第二微件容器能够将该微件绘制在指定的位置。这是本领域的普通技术人员已知的,故在此不再赘述。继而在步骤S412,利用在步骤S406接收的微件的即时数据和状态,在第二微件容器中配置所绘制的微件。以此方式,第二微件容器不仅可以绘制该微件,而且能够确保该微件的外观、状态、属性、数据等各种信息的完整性和一致性。方法400可以继续执行可选的步骤S414,在此响应于在运行时由第二微件容器托管微件而保存该微件在第二微件容器内的信息,以用于该微件在第二微件容器内的重绘。可以理解,在某些Web应用中,用于Web界面的微件容器可能由后端服务器来管理和控制。 在这种情况下,虽然通过执行方法400实现了微件向第二微件容器的成功移动,但是一旦发生界面刷新之类的事件,所移动的微件将会在第二微件容器中丢失。为避免这种现象,执行可选的步骤S414是有益的。具体而言,在步骤S414,可以将所移动的微件在第二微件容器内的信息通过第二微件容器提供的API而存储在第二微件容器中,或者将该信息存储在第二微件容器可访问的任何其他存储位置。存储的信息可以包括但不限于以下一个或多个:微件的项目集合(itemSet)、事件关联(wire)、任何即时数据和状态以及与第二微件容器相关联的界面信息,等等。通过保存这些信息,在将来与第二微件容器相关联的界面发生例如刷新之类可能导致微件重绘的事件时,第二微件容器可以访问先前存储的信息,并且在刷新之后的界面中重绘被移动到第二微件容器中的微件。方法400在步骤S414之后结束。通过执行方法400,第二微件容器可以在运行时接收和托管原本由不同的第一微件容器托管的微件,即使第二微件容器的服务提供方原本不支持该微件。特别应当注意,类似于方法300,方法400的每个步骤均可在运行时以即时方式执行。上文已经参考图1到图4描述了根据本发明实施例的用于在运行时跨容器移动和接收微件的方法100-400。下面将参考图5和图6描述可用于执行上述方法的系统。首先参见图5,其示出了根据本发明一个示例性实施例的用于在运行时在第一微件容器处将目前由第一微件容器托管的微件移动到第二微件容器的系统500的框图。如图5所示,根据本发明的实施例,系统500包括:第一指示检测装置502,配置用于在运行时在该第一微件容器处检测将该微件移动到第二微件容器的指示,该第二微件容器不同于该第一微件容器;以及微件移动装置504,配置用于响应于检测到该指示而向该第二微件容器移动该微件以便使得该微件在运行时变为由该第二微件 容器托管。根据本发明的某些可选实施例,第一指示检测装置502可以包括:拖放事件检测装置,配置用于检测针对该微件的拖放事件以作为该将该微件移动到第二微件容器的指示。根据本发明的某些可选实施例,微件移动装置504可以包括:定义获取装置,配置用于获取指示该微件的定义的信息;以及定义递送装置,配置用于将该指示该微件的定义的信息从该第一微件容器递送给该第二微件容器。根据本发明的某些可选实施例,微件移动装置504可以包括:状态获取装置,配置用于响应于该指示而获取该微件在该第一微件容器内的即时数据和状态;以及状态递送装置,配置用于将获取的该即时数据和状态递送给该第二微件容器。参见图6,其示出了根据本发明一个示例性实施例的用于在运行时在第二微件容器处从第一微件容器接收目前由第一微件容器托管的微件的系统600的框图。如图6所示,根据本发明的实施例,系统600包括:第二指示检测装置602,配置用于在运行时在不同于该第一微件容器的第二微件容器处检测将该微件移动到第二微件容器的指示;以及微件托管装置604,配置用于响应于该指示而从该第一微件容器接收该微件以便在运行时由该第二微件容器托管该微件。根据本发明的某些可选实施例,第二指示检测装置602可以包括:拖放事件检测装置,配置用于在该第二微件容器处检测针对该微件的拖放事件,以作为将该微件移动到第二微件容器的该指示。根据本发明的某些可选实施例,微件托管装置604可以包括:定义接收装置,配置用于从该第一微件容器接收指示该微件的定义的信息;以及微件绘制装置,配置用于基于该微件的该定义在该第二微件容器内绘制该微件。根据本发明的某些可选实施例,微件托管装置604可以包括:状态接收装置,配置用于从该第一微件容器接收在检测到该指示时 该微件在该第一微件容器内的即时数据和状态;微件配置装置,配置用于利用获取的该即时数据和状态在该第二微件容器中配置该微件。根据本发明的某些可选实施例,系统600还可以包括:位置确定装置(未示出),配置用于根据该指示而确定在该第二微件容器中绘制该微件的位置。根据本发明的某些可选实施例,系统600还可以包括:状态保存装置(未示出),配置用于响应于在运行时由该第二微件容器托管该微件而保存该微件在该第二微件容器内的信息,以用于该微件在该第二微件容器内的重绘。应当理解,上文参考图5和图6描述的系统500和系统600包含的各个装置及其包含的可选子装置分别对应于上文参考图1-图2描述的方法100和200以及参考图3-图4描述的方法300和400的各个步骤。由此,上文针对方法100-400描述的所有特征和操作同样分别适用于系统500和600,故在此不再赘述。特别地,系统500和600中装置和可选子装置的划分不是限制性的而是示例性的。例如,在图5和图6中所示的单个装置的功能可以由多个装置来实现。反之,在图5和图6中所示的多个装置亦可由单个装置来实现。本发明的范围在此方面不受限制。还应当理解,系统500和600中包含的各装置和子装置可以利用各种方式来实现,包括软件、硬件、固件或其任意组合。例如,在某些实施例中,系统500和600的各装置可以利用软件和/或固件模块来实现。备选地或附加地,系统500和600的各装置也可以利用硬件模块来实现。例如,系统500和600的各装置可以实现为集成电路(IC)芯片或专用集成电路(ASIC)。系统500和600的各装置也可以实现为片上系统(SOC)。现在已知或者将来开发的其他方式也是可行的,本发明的范围在此方面不受限制。参考图7,其示出了适于用来实践本发明实施例的计算系统700的示意性框图。如图7所示,计算机系统可以包括:CPU(中央处 理单元)701、RAM(随机存取存储器)702、ROM(只读存储器)703、系统总线704、硬盘控制器705、键盘控制器706、串行接口控制器707、并行接口控制器708、显示控制器709、硬盘710、键盘711、串行外部设备712、并行外部设备713和显示器714。在这些设备中,与系统总线704耦合的有CPU701、RAM702、ROM703、硬盘控制器705、键盘控制器706、串行控制器707、并行控制器708和显示控制器709。硬盘710与硬盘控制器705耦合,键盘711与键盘控制器706耦合,串行外部设备712与串行接口控制器707耦合,并行外部设备713与并行接口控制器708耦合,以及显示器714与显示控制器709耦合。应当理解,图7所述的结构框图仅仅为了示例的目的而示出的,而不是对本发明范围的限制。在某些情况下,可以根据具体情况而增加或者减少某些设备。所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:可以是完全的硬件、也可以是完全的软件(包括固件、驻留软件、微代码等),还可以是硬件和软件结合的形式,本文一般称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包合计算机可读的程序代码。可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程 序可以被指令执行系统、装置或者器件使用或者与其结合使用。计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括—但不限于—无线、电线、光缆、RF等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。此外,应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,这些计算机程序指令通过计算机或其它可编程数据处理装置执行,产生了实现流程图和/或框图中的方框中规定的功能/操作的装置。也可以把这些计算机程序指令存储在能使得计算机或其它可编程数据处理装置以特定方式工作的计算机可读介质中,这样,存 储在计算机可读介质中的指令就产生出一个包括实现流程图和/或框图中的方框中规定的功能/操作的指令装置(instructionmeans)的制造品(manufacture)。也可以把计算机程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机或其它可编程装置上执行的指令能够提供实现流程图和/或框图中的方框中规定的功能/操作的过程。而且,附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1