用于控件间通信的方法和设备的制作方法

文档序号:6485082阅读:134来源:国知局
用于控件间通信的方法和设备的制作方法
【专利摘要】提供了用于促成控件间通信的各种方法。一种示例方法可以包括从多个控件中的第一控件接收消息以便在数据文件中进行存储。该方法还可以包括同时使得该数据文件中的另一个消息能够被多个控件中的至少第二控件所访问。该方法可以进一步包括使得信息文件记录该数据文件的状态以使得能够同时接收并访问该数据文件中的消息。
【专利说明】用于控件间通信的方法和设备
【技术领域】
[0001]本发明的实施例总体上涉及控件(widget),尤其涉及一种用于使用文件输入和/或输出操作进行控件间通信的方法、设备和计算机程序产品。
【背景技术】
[0002]随着web技术的快速发展,涌现出越来越多的完全通过互联网进行操作的应用。一种这样的应用是控件。控件是可以在第三方控件引擎中执行和/或可以在另一应用内执行的独立应用。目前存在有若干控件引擎,这些引擎包括Apple? Dashboard、
Microsoft?小装置、Portlets、Opera?浏览器的呈现引擎、Nokia? QT web运行环境
等。控件正在日益流行并且随着控件数量的增加,它们可能被组合在一起(例如,控件协同)以提供丰富的互联网应用。

【发明内容】

[0003]因此,根据示例实施例而提供了一种方法、设备和计算机程序产品以使得能够进行控件间通信。在这里所描述的一些实施例中,使用文件输入和输出操作来实现控件间通信。诸如数据文件的第一文件可以被用来从多个控件接收消息并且向它们传输消息。数据文件因此允许由多个控件中的一个或多个对该数据文件进行同时读取。另外,基于以下所描述的示例实施例,多个控件可以对数据文件进行写入。诸如信息文件的第二文件可以被用来记录第一文件的状态以确保由多个控件对该数据文件所进行的同时读取和写入将不会导致任何不一致。
[0004]一种示例方法可以包括从多个控件中的第一控件接收消息以便在数据文件中进行存储。该方法还可以包括同时使得该数据文件中的另一个消息能够被多个控件中的至少第二控件所访问。该方法可以进一步包括使得信息文件记录该数据文件的状态以使得能够同时接收并访问该数据文件中的消息。
[0005]一种示例设备可以包括至少一个处理器以及至少一个存储计算机程序代码的存储器,其中该至少一个存储器和所存储的计算机程序代码被配置为利用该至少一个处理器而使得该设备至少从多个控件中的第一控件接收消息以便在数据文件中进行存储。该至少一个存储器和所存储的计算机程序代码进一步被配置为利用该至少一个处理器而使得该设备同时使得该数据文件中的另一个消息能够被多个控件中的至少第二控件所访问。该至少一个存储器和所存储的计算机程序代码进一步被配置为利用该至少一个处理器而使得该设备使得信息文件记录该数据文件的状态以使得能够同时接收并访问该数据文件中的消息。
[0006]在另外的实施例中,提供了一种计算机程序产品,其包括至少一个具有存储于其中的计算机可读程序指令的非瞬时计算机可读存储介质,该计算机可读程序指令包括被配置为从多个控件中的第一控件接收消息以便在数据文件中进行存储的程序指令。该计算机可读程序指令还包括被配置为同时使得该数据文件中的另一个消息能够被多个控件中的至少第二控件所访问的程序指令。该计算机可读程序指令还包括被配置为使得信息文件记录该数据文件的状态以使得能够同时接收并访问该数据文件中的消息的程序指令。
[0007]—种示例设备可以包括用于从多个控件中的第一控件接收消息以便在数据文件进行存储中的装置。该设备还可以包括用于同时使得该数据文件中的另一个消息能够被多个控件中的至少第二控件所访问的装置。该设备可以进一步包括用于使得信息文件记录该数据文件的状态以使得能够同时接收并访问该数据文件中的消息的装置。
【专利附图】

【附图说明】
[0008]由此已经总体上对本发明的实施例进行了描述,现在将参考附图,其并不必依比例进行绘制并且其中:
[0009]图1是依据本发明一个实施例的具有数据文件的示例控件间通信系统的示意性表不;
[0010]图2是依据本发明一个实施例的可以由移动终端具体化的示例设备的框图;
[0011]图3是在依据本发明一个实施例所执行的控件间通信期间的控件事件的示例框图;
[0012]图4是依据本发明一个实施例的用于数据文件、信息文件和消息的示例格式的示例框图;
[0013]图5是示出依据本发明实施例的示例控件间通信确认的框图;
[0014]图6-10示出了示例框图,其示出在依据本发明实施例的控件间通信期间的示例数据文件和信息文件;和
[0015]图11图示了示例流程图,其图示了依据本发明实施例的控件间通信。
【具体实施方式】
[0016]现在将参考附图在下文中对一些实施例进行更为全面地描述,附图中示出了本发明的一些而非全部实施例。实际上,示例实施例可以采用许多不同的形式,并且并不应当被理解为局限于这里所给出的实施例;相反,提供这些实施例使得本公开将满足适用的法律需求。相同的附图标记通篇指代相同要素。根据一些示例实施例术语“数据”、“内容”、“信息”以及类似术语可,以互换使用以指代能够被传送、接收、操作、和/或存储的数据。此外,如这里所使用的,术语“示例性”并非被提供用于传递任何定性声明,而是仅被用来传递示例的说明。因此,使用任何这样的术语并不应当被理解为对本发明实施例的精神和范围进行限制。
[0017]如这里所使用的,术语“电路装置”是指以下的全部:(a)仅硬件的电路实施方式(例如仅以模拟和/或数字电路装置的实施方式);(b)电路和软件(和/或固件)的组合,诸如(如可应用的):(i )(多个)处理器的组合或者(ii )共同工作而使得诸如移动电话或服务器的装置执行各种功能的(多个)处理器/软件(包括(多个)数字信号处理器)、软件和(多个)存储器的部分JP(C)电路,诸如(多个)微处理器或者(多个)微处理器的一部分,其需要软件或固件进行操作,即使该软件或固件并非物理存在。
[0018]“电路装置”的这个定义应用于本申请中该术语的所有使用情况,包括任意权利要求。作为另一个示例,如本申请所使用的,术语“电路装置”还将涵盖仅一个处理器(或多个处理器)或者处理器的部分和其(或它们的)伴随软件和/或固件的实施方式。例如并且如果适用于特定权利要求要素,术语“电路装置”还将涵盖用于移动电话的基带集成电路或专用集成电路,或者服务器、蜂窝网络设备、其它网络设备中的类似集成电路。
[0019]图1是依据本发明实施例的示例控件间通信的示意性表示。在一个实施例中,控件间通信例如通过使用文件输入和输出操作来实现。特别地,一个或多个文件可以被用来允许控件10从文件进行读取和/或写入以允许数据在控件10之间进行共享。如这里所描述的,读取和/或写入操作可以使用存储在数据文件12中的消息来实现。这样的消息可以通过一个或多个控件10传输至数据文件12以使得其它控件10可以同时访问一个或多个消息而导致几乎瞬时的控件间通信。
[0020]在一个实施例中,信息文件14随后可以用作备份,因为其被配置为在读取和/或写入操作期间记录数据文件的状态。因此,多个控件10可以同时与数据文件12进行交互并且在数据文件12变为受损的情况下,信息文件14可以被用来修复数据文件12中的任何
不一致。
[0021]在一些示例实施例中,图1的控件间通信系统可以在移动终端上执行,该移动终端可以是移动通信设备,如例如移动电话、便携式数字助理(PDA)、传呼机、膝上计算机或者任意多种其它手持或便携式通信设备、计算设备、内容生成设备、内容消费设备或者它们的组合。这样,移动终端可以包括一个或多个处理器,其可以单独或者结合一个或多个存储器定义处理电路装置。在存储器中所存储的指令由一个或多个处理器执行时,处理电路装置可以利用该指令而使得移动终端以特定方式进行操作或执行具体功能。移动终端还可以包括通信电路装置和相对应的硬件/软件以使得能够与其它设备和/或网络进行通信。
[0022]例如,在一个实施例中,移动终端可以被具体化为或者以其它方式包括如图2的框图所总体表示的设备15。虽然设备15可以被移动终端所采用,但是应当注意的是,以下所描述的组件、设备或元件可以并非是强制的并且因此在某些实施例中可以省略其中的一些。此外,一些实施例可以包括这里所示出或描述的那些以外的另外或不同的组件、设备或元件。
[0023]就此而言,图2图示了设备15的示例框图。虽然出于示例的目的图示了移动终端(例如,设备15)的若干实施例并且将在随后进行描述,但是其他类型的用户终端,诸如移动电话、移动计算机、便携式数字助理(PDA)、传呼机、膝上计算机、台式计算机、游戏设备、电势和其它类型的电子系统,可以采用本发明的一些实施例。
[0024]如所示出的,设备15可以包括与传送器18和接收器19进行通信的天线17(或多个天线17)。设备15还可以包括处理器20,其被配置为分别向传送器提供信号以及从接收器接收信号。处理器20例如可以被实现为各种装置,包括电路装置、具有附带的(多个)数字信号处理器的一个或多个微处理器、没有附带的数字信号处理器的一个或多个处理器、一个或多个协同处理器、一个或多个多核处理器、一个或多个控制器、处理电路装置、一个或多个计算机、包括诸如ASIC (专用集成电路)或FPGA (现场可编程门阵列)的集成电路的各种其它处理元件、或者其一些组合。因此,虽然在图2中被示为单个处理器,但是在一些实施例中,处理器20包括多个处理器。处理器20所发送并接收的这些信号可以包括依据可应用蜂窝系统和/或任意多种不同的有线或无线联网技术的空中接口标准的信令信息,所述的有线或无线联网技术包括但并不局限于无线保真(W1-Fi)、诸如电气与电子工程师协会(IEEE)802.11,802.16的无线局域网(WLAN)技术和/或之类的。此外,这些信号可以包括话音数据、用户生成数据、用户请求数据和/或之类的。就此而言,移动终端能够利用一种或多种空中接口标准、通信协议、调制类型、访问类型和/或之类的进行操作。更具体地,设备15能够依据各种第一代(1G)、第二代(2G)、2.5G、第三代(3G)通信协议、第四代(4G)通信协议、互联网协议多媒体子系统(MS)通信协议(例如,会话发起协议(SIP))和/或之类的进行操作。例如,移动终端能够依据2G无线通信协议IS-136(时分多址(TDMA))、全球移动通信系统(GSM)、IS-95 (码分多址(CDMA))和/或之类的进行操作。而且,例如,移动终端能够依据2.5G无线通信协议通用分组无线服务(GPRS)、增强数据GSM环境(EDGE)和/或之类的进行操作。另外,例如,移动终端能够依据3G无线通信协议进行操作,诸如通用移动电信系统(UMTS )、码分多址2000 (CDMA2000 )、宽带码分多址(WCDMA)、时分同步码分多址(TD-SCDMA)和/或之类的。此外,移动终端还能够依据3.9G无线通信协议进行操作,诸如长期演进(LTE)或演进通用陆地无线接入网(E-UTRAN)和/或之类的。此外,例如,移动终端能够依据第四代(4G)无线通信协议和/或之类的以及未来可能研发的类似无线通信协议进行操作。
[0025]一些窄带先进移动电话系统(NAMPS)以及全接入通信系统(TACS)移动终端也可以从本发明的一些实施例获益,如双模或更高模式的电话(例如,数字/模拟或TDMA/CDMA/模拟电话)。此外,设备15能够根据无线保真(W1-Fi)或全球微波接入互操作性(WiMAX)协议进行操作。
[0026]应当理解的是,处理器20可以包括用于实施设备15的音频/视频和逻辑功能的电路装置。例如,处理器20可以包括数字信号处理器设备、微处理器设备、模数转换器、数模转换器和/或之类的。设备15的控制和信号处理功能可以根据其相应能力在这些设备之间进行分配。另外,处理器可以包括对可以存储在存储器中的一个或多个软件程序进行操作的功能。例如,处理器20可以能够操作诸如web浏览器的连接程序。该连接程序可以允许设备15根据协议传送和接收诸如基于位置的内容的web内容,上述协议诸如无线应用协议(WAP)、超文本传输协议(HTTP)和/或之类的。设备15能够使用传输控制协议/互联网协议(TCP/IP)跨互联网或其它网络传送和接收web内容。
[0027]设备15还可以包括用户接口,例如包括耳机或扬声器24、响铃22、麦克风26、显示器28、用户输入接口和/或之类的,它们可操作耦合至处理器20。就此而言,处理器20可以包括被配置为对一用户接口的一个或多个元件的至少一些功能进行控制的用户接口电路装置,上述元件如例如扬声器24、响铃22、麦克风26、显示器28和/或之类的。处理器20和/或包括处理器20的用户接口电路装置可以被配置为通过存储在可用处理器20所访问的存储器(例如,易失性存储器40、非易失性存储器42和/或之类的)上的计算机程序指令(例如,软件和/或固件)对用户接口的一个或多个元件的一个或多个功能进行控制。虽然并未示出,但是移动终端可以包括用于对与移动终端相关的各个电路(例如用于提供机械振动作为可检测输出的电路)进行供电的电池。用户输入接口可以包括允许移动终端接收数据的设备,诸如键盘30、触摸屏(未示出)、操纵杆(未示出)和/或其它输入设备。在包括键盘的一些实施例中,键盘可以包括数字(0-9)和相关按键(#、*)和/或用于操作移动终端的其它按键。[0028]设备15可以包括存储器,诸如智能卡、订户身份模块或订户标识模块(SIM)、可移除用户身份模块(R-UIM)和/或之类的,它们可以存储与移动订户相关的信息要素。除了SIM之外,移动终端可以包括其它可移除和/或固定存储器。设备15可以包括其它非瞬时存储器,诸如至少一个易失性存储器40和/或至少一个非易失性存储器42。例如,易失性存储器40可以包括随机访问存储器(RAM)(包括动态和/或静态RAM)、片上或片下高速缓存存储器和/或之类的。可以是嵌入式和/或可移除的非易失性存储器42例如可以包括只读存储器、闪存、磁性存储设备(例如,硬盘、软盘驱动器、磁带等)、光盘驱动器和/或媒体、非易失性随机访问存储器(NVRAM)和/或之类的。与易失性存储器40 —样,非易失性存储器42可以包括用于数据的临时存储的高速缓存区域。存储器可以存储一个或多个软件程序、指令、信息条目、数据和/或之类的,它们可以被移动终端用于执行其功能。例如,存储器可以包括能够唯一识别设备15的诸如国际移动设备标识(IMEI)码的标识符。
[0029]控件间通信模块44可以被实现为各种装置,诸如电路装置、硬件、包括存储在计算机可读介质(例如,存储器40)并且由处理设备(例如,处理器20)所执行的计算机可读程序指令的计算机程序产品,或者它们的一些组合,并且在一个实施例中,其被实现为处理器20或者以其它方式由处理器20所控制。在其中控件间通信模块44独立于处理器20实现的一个实施例中,控件间通信模块44可以与处理器20进行通信。控件间通信模块44可以进一步诸如经由总线而与存储器40和/或42、传送器18和接收器19中的一个或多个进行通信。
[0030]控件间通信模块44可以被配置为使得能够通过在诸如图1的控件10的控件与诸如数据文件12的至少一个数据文件之间提供连接而进行控件间通信。控件间通信模块44还可以在诸如存储器40和/或42的存储器中所存储的数据文件之间提供连接和/或提供到通过互联网可达的远程数据文件的链接,诸如通过使用诸如与远程数据文件进行交互的传送器18和/或接收器19的装置。
[0031]在一个实施例中,控件间通信模块44可以被配置为使得至少一个控件能够发送消息(例如,写入操作)和/或对消息进行访问(例如,读取操作)。控件间通信模块44可以接收控件的访问数据文件的请求。
[0032]为了访问数据文件,控件可以被分配以位置指示符。位置指示符随后可以识别数据文件中所要读取的下一条消息和/或可以识别控件所读取的最后一条消息。在控件还不具有位置指示符的情况下,控件间通信模块44可以被配置为对控件提供位置指示符。例如,位置指示符最初可以识别数据文件中最旧的消息,并且随后可以按时间排序从一条消息移动至下一条消息。可替换地或附加地,来自信息文件的头部字段可以被用来将位置指示符定位在数据文件中最旧的消息。
[0033]在一个实施例中,一旦已经向控件分配了位置指示符,控件间通信模块随后就可以被配置为通过循环通过数据文件中的所有消息来确定数据文件中是否存在针对控件的消息。例如,可能存在针对多个控件中的任意一个的消息并且一些消息可能并非应用于所有控件。控件间通信模块44进一步被配置为查看数据文件中的每条消息以确定控件目标。在消息将控件识别为目标或者至少一个目标的情况下,则该消息的有效载荷可以在控件操作期间被控件获取和使用。
[0034]控件间通信模块44还可以被配置为使得数据文件从控件接收消息。在一些实施例中,控件间通信模块44可以使得数据文件被锁定而无法从其它控件接收消息直至其结束其当前的接收操作。在其它实施例中,消息可以被存储在队列中以便随后传输至数据文件、信息文件和/或之类的。还可以使用二进制指数退避算法以避免冲突。可替换地或附加地,控件间通信模块44还可以通过标志位而指示数据文件被锁定,该标志位可以位于信息文件的起始处。这样的标志位可以与互斥排除信标(semaphore)和/或之类的相类似。
[0035]在一个实施例中,并且一旦控件在数据文件上具有锁定,则控件间通信模块44然后可以使得该控件所生成的消息被写入到数据文件中的可用区域。特别地,消息可以被格式化以便存储在数据文件中。例如,控件间通信模块44可以确定消息的可用区域边界并且然后可以尝试从当前可用区域分配消息的长度字段的大小。可以使用诸如首次适应、最佳适应、最差适应或之类的分配算法,其可以与设备20的存储器分配系统相类似。
[0036]在分配成功的情况下,控件间通信模块44可以被配置为将消息写入数据文件并且还将任意的更新提供至数据文件的字段。控件间通信模块44然后可以释放锁定并且允许其它控件对数据文件进行写入。在一个实施例中并且在消息无法被分配的情况下,则控件间通信模块44可以通过删除旧消息来清空数据文件,而使得需要的空间可用和/或可以对消息进行重新分配。
[0037]图3是在依据本发明一个实施例执行的控件间通信期间的控件事件的示例框图。在一个实施例中,控件通常以诸如JavaScript的脚本语言进行编写。因此,为了执行控件,通常由配备有事件队列302的主线程来实施脚本解析器。事件队列302中的事件可以包括用户交互(例如,鼠标点击)、计时器、系统通知等。可替换地或附加地,发送或接收数据,诸如利用数据字段进行的文件输入和输出操作,也可以被认为是要由事件队列302中的控件所追踪的事件。每个控件可以追踪其自己的事件并且因此可以在其事件队列中具有单独事件。如关于数据文件12所示出的,事件队列中的事件可以导致对数据文件12的同时访问。
[0038]图4是依据本发明一个实施例的用于数据文件、信息文件和消息的示例格式的示例框图。在一个实施例中,数据文件12可以被划分为多个部分,诸如消息区域和可用区域。消息区域可以包含控件所发送的消息链。这些消息利用指示它们何时被接收的时间戳进行格式化。时间戳例如可以被控件间通信模块44用来在数据文件中的时间超过预定时间的情况下清空数据文件。消息还可以包括表示消息查总长度的长度字段以及指示数据文件中的下一个消息的起始位置的下一个字段。目标计数字段也可以被用来描述可能正在接收消息的控件的数量。可以使用后续目标计数文件来识别要接收具体消息的控件的列表。还可以包括有效载荷字段,其包含消息的有效载荷。
[0039]数据文件12还包括与消息空间分隔开来的可用区域。该可用区域由多个离散分块所组成并且分块表被用来限定可用空间。
[0040]图5是示出依据本发明实施例的示例控件间通信确认的框图。如区域502中所示,消息可能还没有被任何控件所确认并且因此目标列表按照名称而包括目标控件。在区域504,控件2可以确认消息并且因此消息可以从列表中去除控件2。在区域506,控件I确认并且类似地控件I从列表中被去除。在区域508,控件3可以确认消息并且因此已经所有控件都已经确认接收到消息。一旦消息已经被所有目标所确认,则其可以从数据文件中清除。
[0041]图6-10示出了示例框图,其示出在依据本发明实施例的控件间通信期间的示例数据文件和信息文件。图6图示了数据文件,其是空的并且因此还没有从任何控件接收到消息或者已经清除了数据。因此,信息文件的头部和尾部字段被设置为零而自由分块则被设置为从零到最大,指示数据文件为空。
[0042]图7图示了包含消息的数据文件和信息文件。消息区域包括从Msgl到MsgN的消息,并且如参考消息链702所示出的,消息通常可以与下一个字段相连接。例如,MsgN可以从位置B开始并且可以具有长度b,信息文件的尾部字段然后可以被修改为B并且自由分块的开始位置然后可以被设置为B+b。
[0043]在一个实施例中并且作为示例,控件可以在如参考图2的控件间通信模块44所描述的那样获得锁定之后发送诸如MsgN+Ι的消息。然而,在该示例中,可能没有足够大小的区域并且因此要进行清空数据文件。在该示例中,通过对Msgl至MsgN进行检查可能发现Msg2和MsgN并未被所有目标所确认,因此它们不能从消息区域中被删除。因此,消息区域有所收缩并且创建了如图8所示的仅包含Msg2和MsgN的新链。在对所删除的消息进行融合之后,由于Msg2和MsgN的中断,所以可用区域可以由三个自由分块所组成。这三个分块的边界可以为(0,a)、(A, B)、(B+b, Max)。因此,因为Msg2从位置a开始,所以信息文件的头部和尾部子段可以被更新为a和B。
[0044]图8图示了在如图7所示的清理数据文件之后的数据文件和信息文件的内容。因此,MsgN+Ι的大小现在可以适应可用区域。在一个实施例中并且通过使用首次适应分配算法,MsgN+Ι可以在始于O的空间中进行分配并且其长度为d。在这样的情况下,如图9所示,信息文件中的尾部字段和第一自由分块的开始位置可以分别被设置为O和d。图10图示了在另一个控件发送了诸如消息MsgN+2的消息之后的数据文件和信息文件的内容。类似于参考图7和8所描述的过程,信息文件中的尾部字段和最后的自由分块的开始位置可以分别被设置为A和D。
[0045]图11图示了由依据本发明一个实施例的方法、设备和计算机程序所执行的示例操作的示例流程图。将要理解的是,该流程图中的每个框以及流程图中框的组合可以由各种手段来实施,诸如硬件、固件、处理器、电路装置和/或与包括一个或多个计算机程序指令的软件的执行相关联的其它设备。例如,以上所描述的一个或多个过程可以由计算机程序指令来实现。就此而言,实现了以上所描述过程的计算机程序指令可以由采用本发明实施例的存储器40、42所存储并且由设备中的处理器20来执行。如将要意识到的,任何这样的计算机程序指令都可以被加载到计算机或其它可编程设备(例如,硬件)上以生产机器,以使得所产生的计算机或其它可编程设备实现提供在流程图的(多个)框中所指定的功能的实现。这些计算机程序指令也可以存储在非瞬时性计算机可读存储存储器中,其可以指示计算机或其它可编程设备以特定方式工作,以使得存储在计算机可读存储存储器中的指令产生这样的制品,该制品的执行在流程图中所指定的功能。计算机程序指令还可以被加载到计算机或其它可编程设备上以产生要在计算机或其他可编程设备上实施的一系列操作,以使得在计算机或其它可编程设备上执行的指令提供用于实施流程图的(多个)框中所指定的功能的操作。这样,当被执行时,图11的操作将计算机或处理电路装置转换为被配置为执行本发明示例实施例的特定机器。因此,图11的操作定义了用于对计算机或处理进行配置以执行示例实施例的算法。在一些情况下,通用计算机可以被提供以处理器的实例,该处理器执行图11的算法以将通用计算机变换为被配置为执行示例实施例的特定机器。[0046]因此,流程图中的框支持用于执行指定功能的手段的组合和用于执行指定功能的操作的组合。还将要理解的是,流程图中的一个或多个框以及流程图中框的组合可以由执行所指定功能的基于专用硬件的计算机系统或者特殊用途的硬件和计算机指令的组合来实施。
[0047]在一些实施例中,这里的某些操作可以如下文所描述的那样进行修改或进一步放大。此外,在一些实施例中还可以包括另外的可选操作。应当意识到的是,以下的每种修改、可选添加或放大可以单独或者与这里所描述的任意其它特征进行组合地随以上操作而包括。
[0048]图11是图示依据本发明实施例所执行的控件间通信的示例流程图。如在操作1102所示,设备15可以包括用于从多个控件中的第一控件接收消息以便在数据文件中进行存储的装置,比如传送器18、接收器19、处理器20、控件间通信模块44或之类的。还可以从多个控件中的任意一个接收消息。然而,在要接收消息的情况下并且如操作1104所示,设备15可以包括用于使得数据文件得以被锁定的装置,比如处理器20、控件间通信模块44或之类的。因此,仅允许单条消息被写入到数据文件。接着,如在操作1106中所示的,设备15可以包括用于使得数据文件在从第一控件接收到消息的情况下被解锁的装置,比如处理器20、控件间通信模块44或之类的。因此,一旦写入操作完成,数据文件就可以被解锁从而允许另一个控件对数据文件进行写入。
[0049]如在操作1108中所示出的,设备15可以包括用于同时使得数据文件中的消息被多个控件中的至少第二控件所访问的装置,比如处理器20、控件间通信模块44或之类的。为了该消息得以被访问,如操作1110中所示,设备15可以包括用于确定数据文件中的第二控件的位置指示符并且基于所确定的位置指示符使得数据文件中的消息被访问的装置,t匕如处理器20、控件间通信模块44或之类的,其中位置指示符标识要被访问的下一条消息。如操作1112中所示,设备15可以包括用于确定消息的目标、并且在第二控件是目标的情况下,使得控件能够访问消息的装置,比如处理器20、控件间通信模块44或之类的。如操作1114所示,设备15可以包括用于使得信息文件记录数据文件的状态而使得能够同时向和从数据文件接收和传送消息的装置,比如处理器20、控件间通信模块44或之类的。
[0050]有利地,如这里所描述的控件间通信系统例如可以允许控件的组合并且允许控件以允许用户体验有所改进的方式进行通信。此外,例如,该控件间通信系统可以使得能够进行跨引擎通信(跨运行环境)。可替换地或附加地,这里所描述的一些实施例还允许效率有所提高,可以不要求服务器支持,可以支持单播、组播和广播并且最终更为可靠。虽然贯穿描述使用了控件,但是这里所描述的系统和方法针对移动应用(app)、桌面应用和/或支持读/写操作的其他可执行文件而言也可以是有效的。
[0051]这里给出的本发明的许多修改和其它实施例将被已经从之前描述和相关联附图中所给出的教导所获益的与这些发明相关领域的技术人员所意识到。因此,所要理解的是,本发明并不局限于所公开的具体实施例并且修改和其它实施例意在被包括在所附权利要求的范围之内。此外,虽然以上描述和相关联附图在元件和/或功能的某些示例组合的情景下对示例实施例进行了描述,但是应当意识到的是,可以由可替换实施例提供元件和/或功能的不同组合而并不背离所附权利要求的范围。就此而言,例如,不同于以上所明确描述的元件和/或功能的不同组合也预期在一些所附权利要求中被给出。虽然这里采用了具体术语,但是它们仅以一般和描述性含义被使用而并非用于限制的目的。
【权利要求】
1.一种方法,包括: 从多个控件中的第一控件接收消息以便在数据文件中进行存储; 同时使得所述数据文件中的另一个消息能够被所述多个控件中的至少第二控件所访问;以及 使得信息文件记录所述数据文件的状态以使得能够同时接收并访问所述数据文件中的消息。
2.根据权利要求1的方法,其中同时使得所述数据文件中的所述消息能够被所述多个控件中的所述第二控件所访问进一步包括确定所述数据文件中的用于所述第二控件的位置指示符,其中所述位置指示符标识要由所述第二控件所访问的下一条消息,以及使得所述数据文件中的所述下一条消息被访问。
3.根据权利要求2的方法,其中使得所述数据文件中的所述消息基于所确定的位置指示符被访问进一步包括确定用于所述消息的目标控件;并且在所述第二控件是所述目标的情况下,使得所述第二控件能够访问所述消息。
4.根据权利要求2或3中任一项的方法,其中使得所述数据文件中的下一条消息被访问进一步包括使得所述位置指示符增加至所述数据文件中的下一条消息并且使得所述第二控件能够访问所述下一条消息。
5.根据权利要求1-4中任一项的方法,进一步包括在控件在所述数据文件中并不具有位置指示符的情况下,使得在所述数据文件中创建位置指示符并且将所述位置指示符分配给所述数据文件中最旧的消息。
6.根据权利要求1-5中任一项的方法,其中所述数据文件被配置为包含多条消息。
7.根据权利要求1-5中任一项的方法,其中从多个控件中的第一控件接收所述消息以便在数据文件中进行存储进一步包括使得所述数据文件被锁定;并且在从所述第一控件接收到所述消息的情况下,使得所述数据文件被解锁。
8.一种设备,包括至少一个处理器以及至少一个存储计算机程序代码的存储器,其中所述至少一个存储器和所存储的计算机程序代码被配置为利用所述至少一个处理器使得所述设备至少: 从多个控件中的第一控件接收消息以便在数据文件中进行存储; 同时使得所述数据文件中的另一个消息能够被所述多个控件中的至少第二控件所访问;以及 使得信息文件记录所述数据文件的状态以使得能够同时接收并访问所述数据文件中的消息。
9.根据权利要求8的设备,其中所述至少一个存储器和所存储的计算机程序代码进一步被配置为利用所述至少一个处理器使得所述设备确定所述数据文件中的用于所述第二控件的位置指示符,其中所述位置指示符标识要由所述第二控件所访问的下一条消息,以及使得所述数据文件中的所述下一条消息被访问。
10.根据权利要求9的设备,其中所述至少一个存储器和所存储的计算机程序代码进一步被配置为利用所述至少一个处理器使得所述设备确定用于所述消息的目标控件;并且在所述第二控件是所述目标的情况下,使得所述第二控件能够访问所述消息。
11.根据权利要求9或10中任一项的设备,其中所述至少一个存储器和所存储的计算机程序代码进一步被配置为利用所述至少一个处理器使得所述设备使得所述位置指示符增加至所述数据文件中的下一条消息并且使得所述第二控件能够访问所述下一条消息。
12.根据权利要求8-11中任一项的设备,所述至少一个存储器和所存储的计算机程序代码进一步被配置为利用所述至少一个处理器使得所述设备在控件在所述数据文件中并不具有位置指示符的情况下,使得在所述数据文件中创建位置指示符并且将所述位置指示符分配给所述数据文件中最旧的消息。
13.根据权利要求8-12中任一项的设备,其中所述数据文件被配置为包含多条消息。
14.根据权利要求8-13中任一项的设备,所述至少一个存储器和所存储的计算机程序代码进一步被配置为利用所述至少一个处理器使得所述设备使得所述数据文件被锁定;并且在从所述第一控件接收到所述消息的情况下,使得所述数据文件被解锁。
15.一种计算机程序产品,包括至少一个具有存储于其中的计算机可读程序指令的非瞬时计算机可读存储介质,所述计算机可读程序指令包括: 被配置为从多个控件中的第一控件接收消息以便在数据文件中进行存储的程序指令; 被配置为同时使得所述数据文件中的另一个消息能够被所述多个控件中的至少第二控件所访问的程序指令;以及 被配置为使得信息文件记录所述数据文件的状态以使得能够同时接收并访问所述数据文件中的消息的程序指令。
16.根据权利要求15的计算机程序产品,其中所述计算机可读程序指令进一步包括被配置为确定所述数据文件中的用于所述第二控件的位置指示符的程序指令,其中所述位置指示符标识要由所述第二控件所访问的下一条消息,以及被配置为使得所述数据文件中的所述下一条消息被访问的程序指令。
17.根据权利要求16的计算机程序产品,其中所述计算机可读程序指令进一步包括被配置为确定用于所述消息的目标控件的程序指令;以及在所述第二控件是所述目标的情况下,被配置为使得所述第二控件能够访问所述消息的程序指令。
18.根据权利要求16或17中任一项的计算机程序产品,其中所述计算机可读程序指令进一步包括被配置为使得所述设备使得所述位置指示符增加至所述数据文件中的下一条消息的程序指令以及被配置为使得所述第二控件能够访问所述下一条消息的程序指令。
19.根据权利要求15-18中任一项的计算机程序产品,所述计算机可读程序指令进一步包括被配置为在控件在所述数据文件中并不具有位置指示符的情况下,使得在所述数据文件中创建位置指示符的程序指令,以及被配置为将所述位置指示符分配给所述数据文件中最旧的消息的程序指令。
20.根据权利要求15-19中任一项的计算机程序产品,其中所述数据文件被配置为包含多条消息。
21.根据权利要求15-20中任一项的计算机程序产品,所述计算机可读程序指令进一步包括被配置为使得所述数据文件被锁定的程序指令;以及在从所述第一控件接收到所述消息的情况下,被配置为使得所述数据文件被解锁的程序指令。
22.—种设备,包括: 用于从多个控件中的第一控件接收消息以便在数据文件中进行存储的装置;用于同时使得所述数据文件中的另一个消息能够被所述多个控件中的至少第二控件所访问的装置;以及 用于使得信息文件记录所述数据文件的状态以使得能够同时接收并访问所述数据文件中的消息的装置。
23.根据权利要求22的设备,其中用于同时使得所述数据文件中的所述消息能够被所述多个控件中的所述第二控件所访问的装置进一步包括用于确定所述数据文件中的用于所述第二控件的位置指示符并且使得所述数据文件中的要由所述第二控件所访问的下一条消息被访问的装置,其中所述位置指示符标识所述下一条消息。
24.根据权利要求23的设备,其中用于使得所述数据文件中的所述消息基于所确定的位置指示符被访问的装置进一步包括用于确定用于消息的目标控件的装置;以及用于在所述第二控件是所述目标的情况下,使得所述第二控件能够访问所述消息的装置。
25.根据权利要求23或24中任一项的设备,其中用于使得所述数据文件中的所述下一条消息被访问的装置进一步包括用于使得所述位置指示符增加至所述数据文件中的下一条消息的装置以及用于使得所述第二控件能够访问所述下一条消息的装置。
26.根据权利要求22-25中任一项的设备,进一步包括在控件在所述数据文件中并不具有位置指示符的情况下,用于使得在所述数据文件中创建位置指示符的装置以及用于将所述位置指示符分配给所述数据文件中最旧的消息的装置。
27.根据权利要求22-26中任一项的设备,其中所述数据文件被配置为包含多条消息。
28.根据权利要求22 -27中任一项的设备,其中用于从多个控件中的所述第一控件接收消息以便在数据文件中进行存储的装置进一步包括用于使得所述数据文件被锁定的装置;以及用于在从所述第一控件接收到所述消息的情况下使得所述数据文件被解锁的装置。
【文档编号】G06F9/44GK103842960SQ201180073851
【公开日】2014年6月4日 申请日期:2011年9月30日 优先权日:2011年9月30日
【发明者】张锦锋, 陈灿峰, 郗闽军, 邓杨, 吴菲菲 申请人:诺基亚公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1