专利名称:用于为移动设备提供服务器代理的方法、设备及系统的制作方法
技术领域:
本发明总的涉及信息汇集,并且更具体地但不是排他性地涉及利用代理来汇集带外信息供移动设备使用。
背景技术:
一般来说,代理是在工作在前台的另一应用程序的后台执行某种类型的信息汇集和/或处理的应用程序。代理程序通常具有相对较小且明确的任务。例如随着互联网的发展,对于与搜索请求相关的信息汇集来说,代理已经变得更加重要。由代理汇集的信息可以被拖(pull)或推(push)到工作在前台的另一应用程序。因此,基于这些考虑和其它的考虑提出了本发明。
参考下面附图描述本发明的实施例,这些实施例不是限制性的,也不是排他性的。在附图中,除非另外规定,在所有的图中相似的标号表示相似的部件。
为了更好的理解本发明,将参考下面对本发明的详细描述,并且阅读时结合附图,在附图中图1示出了说明实现本发明的环境的一个实施例的功能性框图;图2示出了移动设备和服务器代理设备可利用的组件概况的一个实施例;图3图示了总体上示出用于为与移动设备相关联的收件箱收集信息的过程的一个实施例的逻辑流程图;图4示出了说明可用来进行配置和/或向服务器代理设备配置发送请求的若干接口的一个实施例的功能性框图;图5图示了总体上示出用于向服务器代理设备转达请求的过程的一个
具体实施例方式
在下面的详细描述中,参考示出了本发明的特定示例性实施例的附图。对这些实施例进行非常详细地描述以使得本领域技术人员能够实现本发明,并且应当理解在不脱离本发明的精神或范围的情况下,可以利用其它的实施例并且可以进行其它的改变。因此,下面的详细描述不应被认为是限制性的,并且本发明的范围仅由所附的权利要求书来限定。
简单地说,本发明使得具有一个或多个服务器代理的设备能够汇集来自网络上的至少一个资源的信息,并且自动地将该信息按适当的格式提供给移动设备的收件箱。服务器代理设备提供用于预处理对信息的请求、收集带外信息、过滤收集到的信息以及封装信息以按照适合于移动设备的收件箱的格式传送的过程。服务器代理可以基于至少一个要素来独立地收集和处理信息,所述要素包括但不限于时间、事件、用户概况、移动设备概况、请求、警报、历史数据、行为数据等。
服务器代理设备可以利用不同类型的服务器代理来收集信息,所述服务器代理包括但不限于编辑器、搜索代理、警报代理和前瞻(forwardlooking)代理。服务器代理设备利用收集模块来收集由服务器代理预处理的信息,所述收集模块包括用于收集由第三方代理提供的信息的模块以及收集由服务器代理预处理的信息的前摄取(proactive fetch)模块。
封装模块按适合移动设备使用的至少一种格式封装收集到的信息,所述格式包括但不限于无线应用协议(WAP)等。此外,封装模块可以提供加密和压缩来按照适合于向移动设备的收件箱传送的格式封装收集到的信息。
接口模块使得服务器代理设备能够响应于检索请求提供经预处理的收集到的信息或者自动地将信息推入移动设备的收件箱。
示例性操作环境图1示出了可以实现本发明的示例性环境中的组件。实现本发明并不需要所有的组件,并且在不脱离本发明的精神或范围的情况下可以在组件的布置和类型上进行改动。
在图1中,网络102中包括一个或多个局域网(“LAN”)和/或广域网(“WAN”),例如互联网,其实现了各个用户、设备、服务器、代理、模块、客户端、处理块等之间的通信。如图所示,客户端计算机104和服务器计算机108利用网络102来彼此进行通信并且与类似的设备进行通信。无线网络110被连接到网络102。无线网络110可以包括各种组件,例如服务器、消息中心以及被用来提供到移动设备的无线连接的塔。这些组件中很多是通过电线进行互连的;无线标志适用于使用无线网络的设备,而不适用于那些表示其结构的设备。无线网络110与网络102之间的连接可以利用各种已知的方法来实现,例如利用网关。移动设备106可以利用无线通信介质耦合到无线网络110。而且,移动设备可以包括移动电话、智能手机、寻呼机、对讲机、射频(RF)设备、红外(IR)设备、Wi-Fi设备以及组合了一个或多个前述设备的集成设备等。虽然未被示出,但是移动设备106可以包括消息传送工具的收件箱,所述消息传送工具例如是电子邮件、即时消息传送(IM)、短消息服务(SMS)等。
虽然未被示出,但是网络102中的LAN和WAN通常通过路由器和/交换机互相连接。而且,LAN和WAN内的通信链路可以包括双绞线、光纤或同轴电缆,而网络间的通信链路可以利用模拟电话线、完全的或部分的专用数字线(包括T1、T2、T3和T4)、综合业务数字网(ISDN)、数字用户线(DSL)、无线链路等。此外,在不脱离本发明的精神或范围的情况下,图1中的WAN和LAN的数目可以任意地增加或减少。
上述用于通信链路中传送信息的介质为一种计算机可读介质,即通信介质。一般来说,计算机可读介质可以包括任何可以通过计算机设备访问的介质。计算机可读介质可以包括计算机存储介质、通信介质或它们的任意组合。
另外,通信介质通常具体包括计算机可读指令、数据结构、程序块或者被调制的数据信号(例如载波或其它传输机制)中的其它数据并且包括任何信息传送介质。术语“被调制的数据信号”和“载波信号”包括这样的信号,所述信号中的一个或多个特征被按照某种方式设置或改变以在信号中对信息、指令、数据等进行编码。例如,通信介质包括有线介质和无线介质,所述有线介质例如双绞线、同轴电缆、光纤、波导及其它有线介质,所述无线介质例如声、RF、红外及其它无线介质。
服务器计算机108可以包括中央处理单元(处理器)、用于存储指令的存储器和经总线连接的网络接口单元等。处理器结合存储在存储器中的指令实现在服务器计算机108上执行的一个或多个应用的操作。这些应用包括但不限于服务器、客户端、协议、接口、编译器、转换器、模块、代理等。
对于服务器计算机108,网络接口单元包括用于将服务器计算机连接到网络102的必要电路,并且被配置为可以利用各种通信协议,这些通信协议包括但不限于TCP/IP、UDP/IP、SMS、IM和WAP。网络接口单元可以包括用于在有线和/或无线通信介质上传送信息的电路和组件或者与该电路和组件相接口,上述信息例如图形化显示、广告数据等。网络接口单元有时指收发器。
图2示出了移动设备与服务器代理设备之间的通信结构的概况200。移动设备(未示出)包括收件箱202,其与在移动设备上工作的消息传送工具进行通信,所述消息传送工具例如是电子邮件、SMS、IM等。服务器代理设备在至少一个服务器计算机、客户端计算机或主机计算机等(未示出)上工作。
如图所示,服务器代理设备包括至少四类彼此相互通信的模块接口模块、封装模块、代理模块和收集模块。当出现到移动设备的无线连接并且确定有足够的带宽可以用来提供收集到且经预处理的信息时,接口模块实现收集到且经预处理的信息向收件箱202的传送。
接口模块可以包括推入(push)组件204和检索(retrieve)组件206。如果无线连接可用,则推入组件204被配置为自动地将收集到且经预处理的信息提供给移动设备的收件箱202。如果无线连接可用,则检索组件206被配置为响应于来自移动设备的请求向收件箱202提供基本类似的信息。
位于接口模块和封装模块之间的是传送代理205。传送代理205被配置为监视移动设备以确定其是否可用。如果移动设备可用,则传送代理205可以经接口模块将来自位于服务器上的临时收件箱的响应提供给移动设备上的收件箱。
封装模块被配置为按适合于收件箱202的格式封装收集到且经预处理的信息。取决于收件箱202的特性,封装模块可用利用规格化组件208来安排收集到且经预处理的信息,利用压缩组件210来压缩信息并且/或者利用加密组件212来加密信息。
代理模块包括可用来实现对信息的收集和/或预处理的各种代理。这些代理可以包括用于编辑收集到的信息的编辑器代理214。例如,编辑器代理214可用于确定搜索所提供的前十个结果。代理模块还可以包括可以用于收集与查询相关的信息的搜索代理216。警报代理218也可以包括在代理模块内以收集与事件(警报)相关的信息,所述事件(警报)例如是股票价格的变化、天气变化、新闻稿等。而且,如图所示,代理模块还可以包括前瞻代理220,其可用来使用诸如移动设备、用户等的概况,并且使用历史数据和/或行为数据来预测可能有用的信息。这种历史数据和/或行为数据可以包括例如对飞机票的搜索、在特定城市中与移动设备的当前位置不相关的方向以及类似的与行为有关的信息。基于历史数据和/或行为数据,前瞻代理220可以预测在那个特定城市中收集天气信息将是有用的。然后前瞻代理220可以收集上述被预测的信息,从而该信息可以被提供给收件箱202。此外,前瞻代理220还可以被用于提供统计、预测和类似的信息供移动设备使用。
虽然图2中仅示出了四种代理,但是本发明并不局限于此,并且可以包括其操作至少间接地与收集和预处理移动设备可用的信息相关联的大部分任何其它类型的代理。
服务器代理设备中的收集模块被配置为使得信息能够在移动设备工作的带外被收集。收集模块包括前摄取组件222和第三方收集组件224。前摄取组件222可用于收集代理模块内代理所指示的信息。第三方收集组件224可用于收集可能不直接是服务器代理设备的一部分的代理和/或程序所指示的信息。这样的一个代理可以包括外部代理,其被安排为响应查询来提供飞机票信息。通常,这种类型的信息是用批量方法进行收集的;但是本发明并不局限于此,也可以利用其它的方法和外部代理。
图3示出了总体上显示了用于为与移动设备相关联的收件箱收集信息的过程300的一个实施例的逻辑流程图。例如,过程300可以在图1的服务器计算机108上实现。
开始框之后,过程300开始于框302,其中在移动设备工作的带外收集信息。然后可以利用服务器代理设备中的代理对收集到的信息进行预处理,如图2中所示。可以基于多种标准中的任一种自动地配置和至少部分地选择代理对信息的收集和预处理,所述标准包括但不限于时间、偏好、概况、情况、事件、历史数据、行为数据等。
过程300接下来到框304,其中按适合于向移动设备的收件箱传送的格式封装信息。过程300继续往下到框305,其中将封装后的信息发送到位于服务器计算机上的临时收件箱中,所述服务器计算机例如图1中的服务器计算机108等。
过程300继续往下到判决框306,在这里确定移动设备的收件箱是否可用。这个判定通常是由传送代理来执行并且基于是否存在网络连接以及对于移动设备是否有足够的可用带宽。如果移动设备的收件箱不可用或者带宽不够,则该过程在判决框306处循环一直等到移动设备可用为止。但是,如果判决框306处的判定为真,则该过程往前到框308,其中传送代理将经预处理/收集到的信息提供给接口模块,该接口模块能够向移动设备的收件箱提供信息。过程300完成以后,处理返回到调用过程来执行其它动作。
图4示出了说明可用来配置和/或发送请求给服务器代理设备406的若干接口的一个实施例的功能性框图400。如图所示,如果用户想要在移动设备中接收信息,则该用户可以向服务器代理设备406发送对信息的请求。除了对信息的请求以外,该请求还可以包括预定的指令。而且,如图所示,可以用电话呼叫404口头提出对信息的请求。也可以利用提示符(未示出)、web表单403、菜单、文本消息401、电子邮件402、即时消息(IM)、移动电话400呼叫等的辅助提出该请求。
一般地,对信息的请求被提供给服务器代理设备406,该服务器代理设备的操作基本与图2中所示出的服务器代理设备类似。通常有几种请求,包括一次性请求、基于事件的请求和基于时间的请求。可以使用连接到无线网络110的移动电话400将上述请求发送到服务器代理设备。移动电话400可以与图1中的移动设备106相同或者不同。虽然在此移动电话被示为耦合到无线网络110,但是移动电话400和移动设备106不必耦合到相同的网络。相反,移动设备106可以无线地耦合到网络102上的WAN,或者可以有类似的安排。
服务器代理设备406被配置为向使用移动电话400的用户提供接口,例如使用户能够口头地传达请求的语音菜单、电话按键信号和/或以上的组合。该接口可以包括语音识别模块以捕获用户所说的单词或预定命令。而且,该接口可以包括智能语言识别模块以适应普通的口语,并且减少对预定命令的使用。
在一个实施例中,用户可以利用耦合到陆线(land line)的电话404来传达请求,例如普通老式电话业务(POTS)405。可以按与移动设备400提出的请求类似的方式提出这种请求并对其处理。
或者,用户可以利用文本消息401来传达请求。例如,该文本消息可以是短消息业务(SMS)消息或类似的协议。可以使用移动设备、客户端计算机、陆线电话、移动电话400等传送文本消息401。包括在服务器代理设备406中或者与之通信的接口接收并处理文本消息中的请求。
Web表单403也可以被提供给客户。Web表单403可以由包括在服务器代理设备406中或者耦合到服务器代理设备406的web服务器模块提供。用户可以将包括请求的信息填充到web表单403中,然后执行动作,例如按下指示客户端向服务器代理设备406发送信息的按钮。也可以使用其它软件和通信协议将请求通过网络102传达给服务器代理设备406。上述软件和通信协议包括但不限于即时消息、互联网中继聊天、文件传输协议等。
图5示出了总体上显示了用于向服务器代理设备转达请求的过程500的一个实施例的逻辑流程图。在一个实施例中,在图1中的服务器计算机108中实现过程500。
在开始框之后,过程500开始于框502,在此从移动设备接收对信息的请求。过程接下来到框504,在此解析接收到的请求。对接收到的请求的解析可以包括利用语音识别应用、程序、脚本等。也可以包括将对信息的请求解析成预定的命令、句法等。该请求可以被解析成预定的格式以便其可以更容易地被服务器代理设备中的另一模块处理。过程继续到框506,在此解析后的请求被发送给配置为进一步处理该请求的服务器代理设备中的相关模块。该相关模块取决于特定的实施例。例如,可以利用代理模块内的一个代理来进一步处理上述请求。无论如何,一旦框506完成,过程就返回到调用过程以执行其它动作。
图6示出了总体上显示了向服务器代理设备内的被选择代理转达请求的过程的一个实施例的逻辑流程图。该请求可以用各种形式触发,包括一次性请求、基于事件的请求和/或基于时间的请求。特别是,如图所示,该请求可以被转达给搜索代理或警报代理。但是,本发明不局限于此,整个发明可以利用其它的代理类型,不过未在过程600中对它们进行描述。图6中的过程600可以在图1的服务器计算机108中实现。
如图6所示,在开始框之后,过程600开始于框602,此时在服务器代理设备内接收到对信息的请求。过程接下来到判决框604,在此确定上述请求是否包括可以由警报代理服务的动作,例如上面结合图2描述的。如果上述请求可以由警报代理服务,则过程分叉到框608;否则处理继续往下到判决框606。在框608处,警报代理可以操作为利用如下面结合图8所描述的过程收集与接收到的请求相关联的信息。例如,可以被收集的信息可以包括与触发事件相关联的信息,例如股票价格的变化等。实际上任何警报信息都可以通过警报代理收集。然后过程600继续往下到判决框606。
在判决框606处,确定被接收的请求是否包括可以由搜索代理服务的动作。如果要利用搜索代理,则过程分叉到框610,在此搜索代理被用来服务对信息的请求。搜索代理可以查询数据库、文件、网络基础设施等以寻找可以响应于对信息的请求中的查询的信息。在一个实施例中,搜索代理可以利用如下面结合图7所描述的过程。一旦框610完成或者如果不使用搜索代理,则处理就被配置为循环回到框602以监视对信息的下一个请求的接收。
图7示出了总体上显示了管理搜索请求的过程700的一个实施例的逻辑流程图。在一个实施例中,从图6的框610中调用过程700。此外,过程700可以在图2的搜索代理216内实现。
在开始框之后,过程700开始于框702,在此接收搜索请求。过程接下来到框704,在此确定适合于处理请求的收集组件。不同的收集组件可以与请求内的不同字段、字段的组合和/或搜索方法相关联。例如,经第三方收集组件收集信息可以更好地满足一组字段。无论如何,一旦确定了收集组件,过程就往下到框706,在此请求被转发给所确定的收集组件。在一个实施例中,在将请求发送给所确定的收集组件之前,在框704处修改上述请求。这种修改可以包括但不限于将请求和/或相关联的字段重新格式化为适合所确定的收集组件使用的格式。
过程接下来到框708,在此从所确定的收集组件中接收收集请求的结果。然后,过程继续到判决框710,在此确定是否对结果进行编辑。例如,可以进行编辑以按用户可以更好地使用的格式设置返回的结果。而且,这种编辑可以基于多种标准中的任一种,所述标准包括但不限于用户指定的预定标准、用户的计算设备的性能、浏览器格式等。例如,用户可能希望只接收搜索的前十个命中结果,或者用户可能希望只接收关于某个股票的特定值。无论如何,如果要进行编辑,则过程分叉到框712,在此结果被发送给编辑器代理。当编辑完成时,或者如果不进行编辑,则过程700往下到框714,在此发送结果以进行封装后用于向用户传送。下面结合图11更详细地描述用于封装结果的过程的一个实施例。一旦框714完成,过程700就返回到调用过程以执行其它动作。
图8示出了总体上显示了管理警报请求的过程800的一个实施例的逻辑流程图。例如,过程800可以在图2的警报代理218中实现。
开始框之后,过程800开始于框802,在此接收警报请求。在一个实施例中,从图6的框608中接收警报请求。如上所述,警报请求可以与事件、状态等相关联,当满足所述事件、状态等时,警报请求使得与警报相关联的信息被发送给用户。
过程接下来到框804,在此确定适合收集被请求的警报信息的收集组件。确定收集组件可以基于各种标准,包括所请求的警报信息的类型。而且,一个收集组件可以相比另一个收集组件进行更好地配置以处理特定的警报请求。无论如何,一旦确定了合适的收集组件,过程就进入框806,在此就警报信息的状态查询所确定的收集组件。
过程继续到判决框808,在此确定是否接收到响应于查询的警报信息。在一个实施例中,当所确定的收集组件确定满足警报请求时接收警报信息。如果确定没有接收到响应于查询的警报信息,则过程循环回到框806,在此进行另一次查询直到满足警报请求为止,例如接收到与警报请求相关联的信息。上述警报也可以被配置为在预定的时间以后超时。例如,如果用户想要知道给定时间内股票价格的变化,并且股票没有变化,则警报信息可以显示在给定时间内股票没有变化。
但是在判决框808处,如果已经接收到警报信息,则过程往下到框810,在此发送接收到的警报信息以进行封装用于传送给用户。在一个实施例中,接收到的警报信息被发送到下面结合图11描述的过程1100中。在另一个实施例中,接收到的警报信息被发送到与上面结合图2描述的封装模块基本类似的封装模块中。无论如何,一旦框810完成,过程就返回到调用过程以执行其它动作。
图9示出了总体上显示了供前瞻代理使用的过程的一个实施例的逻辑流程图。因而,在一个实施例中,在图2的前瞻代理220中实现图9的过程900。
来自用户的请求通常不专门针对前瞻代理。作为代替,前瞻代理可以监视去往其它代理的请求,确定预测性信息并且将该预测性信息提供给用户。同样,在开始框之后,过程900开始于框902,在此监视到其它代理的请求。过程900接下来到框904,在此确定是否检测到发往另一个代理的请求。如果是,则过程往下到框906;否则过程循环回到框902来继续检测到其它代理的警报。
在框906处,与发送请求的用户相关联的用户记录被检索。该用户记录包括与发送请求的用户相关联的信息,例如统计信息、行为信息、用户可应用的配置信息、计费信息等等。用户记录可以包括一个或多个数据记录并且用户记录的多个部分可以按不同的格式保存在一个或多个地方。
过程往下到框908,在此部分地基于检测到的请求利用统计数据、历史数据和/或行为数据修改用户记录。可以基于各种统计的和/或历史的行为数据修改用户记录。例如,与用户发送的大量请求相关联的统计数据可能已被另一个用户收集。统计数据、历史数据和/或行为数据也可以与一类请求、与请求相关联的时间、这类请求的频率等相关联。类似地,统计数据、历史数据和/或行为数据可以包括与请求中的关键字、请求的场景或实质、请求被发送的地点等相关联的信息。在一个实施例中,与检测到的请求相关联的用户设置可以用于帮助确定什么统计数据、历史数据和/或行为数据要被收集并用来修改用户记录。例如,在另一个实施例中,用户可能会指示要保存之前的请求并且在稍后的某个时间将其返回给用户。实际上,任何统计数据、历史数据和/或行为数据都可以被收集并且用于修改用户记录。而且,这样的统计数据、历史数据和/或行为数据还可以被用于其它用途,包括但不限于计费、研究等。
过程900接下来到框910,在此确定是否要提供附加的信息来修改用户记录。这个附加信息可以不是直接响应于检测到的请求的。但是,由于各种其它原因需要提供这种信息,例如其可以间接地帮助用户。因而例如,如果用户请求关于小说的信息,则可以发送关于小说的作者的附加信息,虽然这种信息不是用户直接请求的。确定是否提供附加信息可以取决于各种因素,包括用户标准、用户设置、服务器代理设备的配置、请求本身等。在一个实施例中,附加信息可以被提供给预定类型的请求,该请求可以由关键字、主题、频率等限定。此外,确定提供附加信息可以基于一类用户、一组预定用户等。无论如何,如果不提供附加信息,则过程循环回到框902;否则过程继续到框912。
在框912中,基于被检测到的请求和/或用户记录制订对附加信息的请求。例如,对附加信息的请求可以基于在检测到的请求中找到的关键字。除了用户记录中存在的某些历史、统计、行为或其它信息以外,对附加信息的请求也可以基于在检测到的请求中找到的关键字。因而,如果用户记录显示用户已经执行了关于地理位置A的预定次数的搜索,但是被监视的请求涉及地理位置B,则对附加信息的请求可以涉及关于从地理位置A到地理位置B的交通选择的信息。
在框914中,对附加信息的请求被发送给合适的收集组件。在一个实施例中,对附加信息的请求被发送给收集组件以执行与下面结合图10描述的那些动作基本类似的动作。但是,本发明并不局限于此,而是可以采用其它处理。例如,可以确定合适的收集组件包括一个能够收集并存储与广告信息相关联的附加信息的收集组件等。在本示例中,作为替代可以利用被专门配置为访问广告信息的收集组件。然后上述广告收集组件可以利用其自己的处理来搜索、收集和提供附加的广告信息。无论如何,一旦框916完成,过程就往下到框918,在此获得附加信息。然后过程继续往下到框920,在此接收到的附加信息被发送以按适合于向用户传送的格式进行封装。在一个实施例中,附加信息被发送给封装模块,该封装模块基本类似于上面结合图2所描述的。在另一个实施例中,在发送要封装的附加信息之前,发送附加信息进行编辑。在该实施例中,例如可以利用图2的编辑器代理214进行编辑。但是,本发明不局限于此,并且在附加信息被发送进行封装之前可以利用另一个编辑器或代理来执行对附加信息的动作。无论如何,一旦过程900完成,过程就返回到调用过程以执行其它动作。
图10示出了总体上显示了利用收集模块(如图2中所示)收集信息的过程1000的一个实施例的逻辑流程图。例如过程1000可以在图1的服务器计算机108中实现。
开始框之后,过程1000开始于框1002,在此接收对内容的请求。该请求可以从各种源中接收,包括但不限于图2的服务器代理设备中的代理等。例如,在一个实施例中,从图9的过程900中接收对内容的请求。一旦接收到对内容的请求,过程就往下到判决框1004,在此确定要用来为对内容的请求提供服务的收集组件的类型。如图10和图2中所示,示出了两种可能的收集组件前摄取组件和第三方收集组件。但是,本发明并不局限于此,其它的收集组件也可以用于为对内容的请求提供服务。
通常,如果对内容的请求涉及一般可访问的信息,例如通常可以通过互联网、通过服务器代理设备等得到的信息等,则该过程沿前摄取的方向往下。但是,在对内容的请求涉及一般不能通过上述源得到的信息的情况下,该过程可以利用第三方收集组件。例如这种信息可以包括旅馆预定信息、航班价格信息等。在一种配置中,服务器代理设备的操作者可以与第三方(例如航空公司)签订协议,其中服务器代理设备将访问属于第三方的某些其它专有信息等。这种访问通常可以通过第三方收集模块来实现。因而,如果确定了对内容的请求可以由前摄取组件来提供服务,则过程1000往下到框1006;否则,过程1000往下到框1010以由第三方收集组件处理。
在框1006处,对内容的请求被转发给前摄取组件进行处理。往下到框1008处,前摄取组件基于上述请求进行搜索、得到结果并且返回结果。在一个实施例中,框1008的动作利用上面结合图7描述的过程700。一旦框1008完成,过程就往下到框1018。
但是,在框1010处,对内容的几个请求可以在一起成批处理。虽然本发明并不局限于对请求成批处理,但是在一个实施例中可以进行成批处理以减少成本、简化对内容的共同请求等。无论如何,如果需要这样,则请求就和其它请求一起成批处理。框1010完成以后,过程继续往下到框1012,在此成批的请求(在分批的情况下)被发送给第三方收集组件进行处理。过程继续往下到框1014,在此接收与不同的成批请求相关联的结果。接下来,过程往下到框1016,在此分离成批的结果。然后过程继续往下到框1018。
在框1018处,所提供的结果被发送到用户的收件箱。在一个实施例中,结果被发送回请求代理做进一步的处理,例如利用封装模块准备结果或向用户的传送等。框1018完成以后,过程1000返回到调用过程以执行其它动作。
图11图示了总体上示出封装向移动设备传送的信息的过程的一个实施例的逻辑流程图。在一个实施例中,在上面结合图2描述的服务器代理设备内实现图11的过程1100。
在开始框之后,图11的过程1100开始于框1102,在此接收预期传送给移动设备的收件箱的信息。例如这样的信息可以包括从搜索代理接收到的搜索结果、从警报代理接收到的警报信息、预测性信息、历史信息、行为信息等。接收到这样的信息以后,过程往下到判决框1104,在此确定信息是否要规格化。信息的规格化可以包括修改信息的格式。可以基于各种因素作出上述判定,所述因素例如但不限于信息本身、信息要被送往的移动设备的类型以及用户设置。例如,移动设备可能不能显示某些信息格式。在这种情况下,信息会被重新格式化以在移动设备上查看。类似地,用户可以指示用预定的格式传送信息。
无论如何,如果确定了信息应当进行规格化,则过程往下到框1106,在此改变信息的格式;否则过程继续往下到判决框1108。在一个实施例中,可以通过图2的规格化组件208来执行框1106。信息的规格化可以引起信息的各种特征的变化,包括但不限于调整图像大小、改变图像格式/编码、改变字型大小、调整文本大小、重组文本等。类似地,例如可以通过操纵内容对根据例如HTML的描述语言或标记语言组织的信息进行重新格式化、重新组织等以改变表述格式。信息也可以被重新格式化为标记语言,或者如果已经是标记语言,则可以用不同的标记语言来设置信息。例如,可以按照遵从同步多媒体集成语言(SMIL)的格式来设置信息用以由移动设备表现。然后过程往下到判决框1108。
在判决框1108处,确定信息是否应当被压缩。可以基于各种因素作出上述判定,所述因素包括服务器代理设备的配置、移动设备的类型、可用带宽、用户设置等。还可以至少部分地基于网络连接的性能和移动设备解压信息的能力来确定压缩的类型。对压缩的使用也可以基于例如对由于“有损”的压缩等而可能引起的数据损坏的考虑。无论如何,如果确定了要进行压缩,则过程往下到框1110;否则,过程往下到判决框1112。
在框1110处,信息被压缩。在一个实施例中,利用图2的压缩组件210来完成压缩。可以根据一种或多种压缩机制来进行压缩,所述压缩机制包括但不限于行程长度编码、最小冗余编码、离散不规则变换压缩、分形(fractal)压缩等。实际上,任何的压缩机制都可以用来压缩信息。压缩完成以后,过程继续往下到判决框1112。
在判决框1112处,确定是否执行加密。加密是针对确保信息的私密性的。加密也可以被用于复制保护。无论如何,可以基于各种因素决定是否对信息加密,所述因素包括但不限于服务器代理设备的配置、移动设备的类型、信息的类型、用户设置等。如果决定了要进行加密,则过程往下到框1114;否则过程到框1116。
在框1114处,可以利用各种加密机制中的任一种对信息加密,所述加密机制包括但不限于公共密钥加密、对称密钥加密、混合加密等。完成了对信息的加密以后,过程往下到框1116。
在框1116处,信息被转发以传送给移动设备。在一个实施例中,信息被转发给接口模块,例如上面结合图2所描述的接口模块。在另一个实施例中,在框1116中利用例如图12中所描述的过程来准备用于传送给移动设备的信息。
图12示出了总体上显示了管理到移动设备的接口的过程的一个实施例的逻辑流程图。例如,可以在图2的接口模块中实现图12的过程1200。
在开始框之后,过程1200开始于框1202处,在此接收预期向移动设备传送的信息。通常从例如结合图11描述的封装模块中接收上述信息,但是也可以从服务器代理设备的其它组件中接收该信息,所述其它组件例如是收集模块或代理之一。
接收到信息以后,过程往下到判决框1204,在此决定接收到的信息是被推入移动设备还是由移动设备检索。可以基于各种标准作出上述决定,所述标准包括但不限于用户设置、移动设备的类型、信息的类型等。
如果决定了信息要由移动设备检索,则过程继续往下到框1210,在此通知被转发给移动设备的收件箱,指示信息可用。上述通知实际上可以用任何格式或形式,例如包括文本消息、SMS消息、即时消息、电子邮件等。过程接下来到框1212,在此从移动设备接收对信息的请求。然后过程往下到判决框1206。
在框1206处,确定包括用于发送信息的足够带宽的无线连接当前是否可用。虽然通知消息已经在框1210处被发送,但是现在的带宽可能不足以发送信息。很多现有的无线网络支持具有不同带宽容量的不同类型的连接。例如,典型的无线电话网可以支持用于发送短消息和语音通信的标准连接以及用于发送较大量数据的数据连接(例如1X CDMA连接)。因而,根据要发送的信息量和发送信息的带宽可用性作出框1206的决定。如果确定没有足够的带宽或者连接已经断开,则过程循环回到框1206直到连接可用并且具有足够的带宽为止。然而,当连接可用并且具有足够的带宽时,过程往下到判决框1214。
在判决框1214处,确定要发送的信息是否还是新的。当接口模块正在等待移动设备可用的具有足够带宽的连接时,信息可能已经过时。某个信息项变得过时所经历的时间可以取决于各种标准,例如信息的类型。因而,在判决框1214处检查预定的若干信息类型列表和指示对于相关的信息类型要变成过时的所必须经过的时间(例如保鲜时间)的相关值。某些类型的信息也可以被认为是决不会过时的,例如具有无限长的保鲜时间。但是在一个实施例中,判决框1214可以被删除或者基于其它可预定义的标准有选择地执行等。但是,如果确定信息要被更新,则过程分叉到框1218;否则过程进入到框1216,在此信息被发送给移动设备。框1216完成之后,过程返回到调用过程来执行其它动作。
但是在框1218处,信息可以被更新,例如通过执行对信息的另一次搜索,重新请求对信息的收集等。更新信息以后,过程循环回到判决框1206。
应当理解上述流程图中的每个框以及多个框的组合可以用计算机程序指令来实现。这些程序指令可以被提供给处理器以产生一种装置,以使得在处理器上执行的指令创建用于实现流程图的框中指定的动作的装置。处理器可以执行计算机程序指令来产生由处理器执行的一系列操作步骤以形成通过计算机实现的过程,因此在处理器上执行的指令提供了用于实现流程图的框中指定的动作的步骤。
因此,流程图中的框支持用于执行所指定的动作的操作组合、用于执行所指定的动作的步骤的组合以及用于执行所指定的动作的程序指令装置。还应当理解流程图中的每个框以及多个框的组合可以通过执行所指定的动作或步骤的基于专用硬件的系统或者专用硬件和计算机指令的组合来实现。
上面的说明书、示例和数据提供了对制作和使用本发明的完整的描述。由于在不脱离本发明的精神和范围的情况下可以实现本发明的很多实施例,所以本发明的范围落在所附的权利要求书中。
权利要求
1.一种用于在网络上向移动设备提供信息的方法,包括利用服务器代理设备中的至少一个模块来收集信息;利用所述服务器代理设备中的至少另一个模块来封装收集到的信息;以及使用所述服务器代理设备中的至少第三模块将所述信息发送给所述移动设备。
2.如权利要求1所述的方法,还包括将所述收集到的信息发送到与服务器相关联的临时收件箱;以及如果所述移动设备可用,则利用传送代理进行监视。
3.如权利要求1所述的方法,其中封装收集到的信息还包括执行所述信息的规格化、所述信息的压缩和所述信息的加密中的至少一项。
4.如权利要求3所述的方法,其中所述信息的规格化还包括修改所述信息的格式。
5.如权利要求1所述的方法,其中利用所述服务器代理设备中的至少一个模块来收集信息还包括利用前摄取组件和第三方收集组件中的至少一个。
6.如权利要求1所述的方法,其中向所述移动设备发送所述信息还包括确定所述信息是否要被所述移动设备检索,并且如果所述信息要被所述移动设备检索,则向所述移动设备提供所述信息可用的通知。
7.如权利要求1所述的方法,其中发送所述信息还包括确定服务器和所述移动设备之间的无线连接是否包括用于所述信息的足够带宽。
8.如权利要求1所述的方法,其中所述服务器代理设备中的所述至少一个模块、所述至少一个其它模块以及第三个模块每个能够在远离所述移动设备的服务器上执行。
9.一种用于向移动设备提供信息的方法,包括从一个或多个代理中选择代理;利用所选择的代理处理来自所述移动设备的请求;利用收集模块收集信息;利用封装模块将所述信息封装成适合于所述移动设备的格式;以及利用接口模块将所述信息发送到所述移动设备,其中所述一个或多个代理、所述收集模块、所述封装模块以及所述接口模块与服务器代理设备相关联。
10.如权利要求9所述的方法,其中所述多个代理中的一个还包括至少一个搜索代理。
11.如权利要求9所述的方法,还包括利用编辑器代理编辑所述信息,所述编辑器代理进一步被包括在所述服务器代理设备中。
12.如权利要求9所述的方法,还包括利用前瞻代理监视所述请求,所述前瞻代理不同于处理所述请求的代理;检索与发起所述请求的移动设备相关联的用户概况;基于所述请求确定附加信息;以及向所述移动设备发送所述附加信息,其中所述附加信息不构成对所述请求的响应。
13.如权利要求9所述的方法,其中封装所述信息还包括规格化所述信息、压缩所述信息和加密所述信息中的至少一个。
14.如权利要求9所述的方法,其中收集所述信息还包括利用前摄取组件和第三方收集组件中的至少一个,所述前摄取组件用于从可直接访问源收集信息,所述第三方收集组件用于从至少一个专用源收集信息,所述前摄取组件和所述第三方收集组件被包括在所述服务器代理设备中。
15.一种用于向移动设备提供信息的方法,包括利用警报代理处理请求;通过查询收集模块确定是否存在警报状态,并且如果存在所述警报状态,则使用封装模块以适合于所述移动设备的格式封装包括所述警报状态的存在的通知在内的信息;以及使用接口模块将所述信息发送到所述移动设备,其中所述警报代理、所述收集模块、所述封装模块以及所述接口模块被包括在服务器代理设备中。
16.一种用于在网络上向移动设备提供信息的服务器,包括收发器,其用于接收并向所述移动设备发送信息;以及耦合到所述收发器的服务器代理设备,包括接口模块,被配置为使用所述收发器按照推入模式和检索模式中的至少一种模式向所述移动设备提供信息;封装模块,被配置为准备用于传送到所述接口模块的信息;代理模块,被配置为能够确定用于传送到所述封装模块的信息;以及收集模块,被配置为从所述代理模块接收对信息的请求并且收集传送到所述代理模块的信息。
17.如权利要求16所述的服务器,其中所述服务器代理设备还包括推入组件和检索组件。
18.如权利要求16所述的服务器,其中所述封装模块还包括规格化组件、压缩组件和加密组件中的至少一个。
19.如权利要求18所述的服务器,其中所述规格化组件被配置为修改信息的格式。
20.如权利要求16所述的服务器,其中所述代理模块还包括编辑器、搜索组件、警报组件和转发组件中的至少一个。
21.如权利要求20所述的服务器,其中所述转发组件被配置为监视来自所述移动设备的对信息的请求并且部分地基于所述请求以及时间、事件、用户概况、移动设备概况、统计数据、历史数据和行为数据中的至少一个来确定至少某些附加信息。
22.如权利要求16所述的服务器,其中所述收集模块还包括前摄取模块和第三方收集模块中的至少一个。
23.如权利要求16所述的服务器,其中所述收集模块还被配置为利用对信息的请求的至少一个带外处理来收集信息。
24.一种用于在网络上传送信息的经调制的数据信号,所述经调制的数据信号包括使得服务器代理设备中的接口模块能够使用所述收发器按照推入模式和检索模式中的至少一种模式向移动设备提供信息;使得所述服务器代理设备中的封装模块能够准备用于向所述接口模块传送的信息;使得所述服务器代理设备中的代理模块能够确定用于向所述封装模块传送的信息;以及使得所述服务器代理设备中的收集模块能够从所述代理模块接收对信息的请求并且收集用于向所述代理模块传送的信息。
25.如权利要求24所述的经调制的数据信号,其中所述代理模块还被使得能够部分地基于对信息的请求执行对附加信息的编辑、搜索、警报和前瞻中的至少一个。
26.如权利要求24所述的经调制的数据信号,其中所述封装模块还被使得能够执行对所述信息的规格化、压缩和加密中的至少一个。
27.一种用于在网络上传送信息的设备,包括收发器,用于接收并向移动设备发送信息;接口装置,用于使用所述收发器按照推入模式和检索模式中的至少一种模式向移动设备提供信息;封装装置,用于准备用于向所述接口装置传送的信息;代理装置,用于确定用于向所述封装装置传送的信息;以及收集装置,用于从所述代理装置接收对信息的请求并且收集用于向所述代理装置传送的信息。
28.如权利要求27所述的设备,其中所述接口装置、所述封装装置、所述代理装置以及所述收集装置被包括在服务器代理设备中。
全文摘要
本发明使得一个或多个代理能够汇集来自网络上的至少一个服务器的信息并且自动地将该信息提供给服务器上的收件箱,然后如果与移动设备的无线连接是可用的,则将上述信息提供给移动设备上的收件箱。服务器代理设备用于预处理来自移动设备的对信息的请求,包括收集带外信息,过滤收集到的信息,以及封装信息从而以适合于移动设备的格式传送。服务器代理设备内的服务器代理可以主动地基于多种要素来收集信息,所述要素包括但不限于时间、事件、用户概况、移动设备概况、请求、警报和历史行为。
文档编号G06F15/16GK1879100SQ200480033086
公开日2006年12月13日 申请日期2004年11月10日 优先权日2003年11月10日
发明者蒋昭玮, 英庆·劳伦斯·崔, 周民 申请人:雅虎公司