CN101317416A - 内容路由器 - Google Patents

内容路由器 Download PDF

Info

Publication number
CN101317416A
CN101317416A CNA2006800337269A CN200680033726A CN101317416A CN 101317416 A CN101317416 A CN 101317416A CN A2006800337269 A CNA2006800337269 A CN A2006800337269A CN 200680033726 A CN200680033726 A CN 200680033726A CN 101317416 A CN101317416 A CN 101317416A
Authority
CN
China
Prior art keywords
order
content
going out
conflict
arrival
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.)
Pending
Application number
CNA2006800337269A
Other languages
English (en)
Inventor
托斯滕·舒尔茨
麦克·波尔里斯
麦特瑟斯·伯尔
比卓恩·艾伯森
马尔库斯·迈耶
温卡塔彻里·斯里尼瓦桑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yahoo Inc
Original Assignee
Yahoo Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Yahoo Inc filed Critical Yahoo Inc
Publication of CN101317416A publication Critical patent/CN101317416A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/56Routing software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Abstract

一种方法、装置和系统,用于在多个内容节点和内容路由器的命令存储器之间路由对信息的改变。内容节点可以是用户设备(例如,移动电话)和用户帐户(例如,电子邮件帐户)。内容节点可以保存一种或多种内容类型,例如,电子邮件、联系人、任务、事件和库项目。命令存储器将冲突检测、解决和错误处理集中在内容路由选择系统中。

Description

内容路由器
相关申请交叉引用
本申请与以下申请相关:与本申请同时提交的Marco BOERRIES等的题为“内容路由器异步交换”的美国申请No.11/182,313(律师案卷32421-20015.00);与本申请同时提交的
Figure A20068003372600121
EBBESEN等的题为“内容路由器仓库”的美国申请No.11/182,665(律师案卷32421-20016.00);与本申请同时提交的Venkatachary SRINIVASAN等的题为“内容路由器转发”的美国申请No.11/182,331(律师案卷32421-20019.00);与本申请同时提交的Matthias BREUER等的题为“内容路由器通知”的美国申请No.11/182,288(律师案卷32421-20020.00);以及与本申请同时提交的MeherTENDJOUKIAN等的题为“内容路由器网关”的美国申请No.11/182,073(律师案卷32421-20026.00)。这些申请中的每个都通过引用结合于此。
技术领域
本发明涉及维护用户设备和帐户,更具体而言,涉及对从多个设备和联网帐户可访问的信息进行同步。
背景技术
已知的路由器和同步系统不对从一个节点接收到的负载数据进行分析来是否将该数据的全部或者一部分转发到第二节点。例如,路由器使用其接收到的地址和路由选择表,来确定哪些目的地节点将接收到来分组的拷贝。已知的路由器基于分组的地址确定路由选择。另外,已知的不包含长期存储器来保存分组。因此,除非在第二节点也连接到路由器时第一节点将分组发送到该路由器,否则第二节点将不会接收到该分组。
同步系统保存被镜像到一个或多个手持设备上的一组记录的主拷贝。在一个设备上发生改变并且该设备将改变的记录转发到同步系统后,同步系统对其主拷贝进行更新,然后在其他设备与该系统同步时对其他设备可用。已知的同步系统必需保存所有同步的记录的主拷贝。例如,手持同步器可以与PC上的同步工具一起工作。同步器和PC二者都维护所有记录的主拷贝。因此,可以在多个位置处维护主拷贝。另外,如果同步系统将与未同时连接到该同步系统的设备一起工作,则同步系统需要保存每个新记录的拷贝。如果记录代表音频文件或图像文件,则同步系统可能需要较大的存储设备。
因此,用于对内容目的地进行同步的改进的系统将是有益的,具体而言,提高了灵活性、降低了复杂度和/或提高了性能的系统也是有益的。
发明内容
因此,本发明寻求单独或者以任何组合形式缓和、减轻或者消除上述缺点中的一个或多个。
根据本发明的一个方面,提供了一种内容路由选择系统,用于在多个内容节点和命令存储器之间路由对信息的改变,该内容路由选择系统包括:存储和转发逻辑,包括:处理逻辑,用于:处理来自第一内容节点的到来命令;基于所述到来命令的内容类型和一个或多个路由选择参数,选择一组目的地内容节点;以及生成去往所选择的目的地内容节点中的每个的外出命令;以及命令存储器,耦合到所述处理逻辑,用于保存所述到来命令和一组所述外出命令;以及连接数据集配置,耦合到所述处理逻辑,用于保存所述一个或多个路由选择参数。
一些实施例包括用于在第一协议和命令协议之间进行翻译的网关;以及用于在通用协议和命令协议之间进行翻译的协议适配器。
一些实施例包括具有用于保存到来命令的到来队列和用于保存一组外出命令的外出队列的命令存储器。一些实施例包括用于保存到来命令和一组外出命令的数据库,其中每条命令具有标识命令的状态的属性。一些实施例包括外出转运队列状态。一些实施例包括到来转运队列状态。
根据本发明第二方面,提供了一种用于在多个内容节点和命令存储器之间路由对信息的改变的方法,该方法包括,在内容路由器处:接收来自第一内容节点的到来命令;将所述到来命令存储到与所述第一内容节点相关联的命令存储器中;基于下述内容选择一组目的地内容节点:所述到来命令的内容类型、与目的地内容节点和所述内容类型相关联的路由选择参数;以及针对所选目的地内容节点中的每个:生成外出命令;以及如果命令之间不存在冲突则将所述外出命令存储到所述命令存储器中。
根据本发明第三方面,提供了一种计算机程序产品,包括在包含处理逻辑和命令存储器的内容路由选择系统中使用的程序代码,该内容路由选择系统用于在多个内容节点和命令存储器之间路由对信息的改变,该计算机程序产品包括:用于接收来自第一内容节点的到来命令的程序代码;用于将所述到来命令存储到与所述第一内容节点相关联的命令存储器中的程序代码;以及用于基于下述内容选择一组目的地内容节点的程序代码:所述到来命令的内容类型、与目的地内容节点和所述内容类型相关联的路由选择参数;以及针对所选目的地内容节点中的每个:用于生成外出命令的程序代码;以及用于将所述外出命令存储到所述命令存储器中的程序代码。
附图说明
参考附图将仅以示例的方式描述本发明的实施例,在附图中:
图1A和1B示出了信息分发和同步系统。
图2示出了根据本发明实施例的经由网络耦合到多个内容节点的内容路由器。
图3示出了根据本发明实施例一个内容节点中的改变经由内容路由器到内容节点中选出的一组内容节点的传播路径。
图4示出了根据本发明实施例的用户的连接的电子邮件帐户,并且包括示例屏幕快照。
图5和6示出了根据本发明实施例的到存储和转发逻辑的连接以及由存储和转发逻辑执行的处理。
图7A和7B示出了根据本发明实施例的耦合到仓库的存储和转发逻辑。
图8A和8B示出了根据本发明实施例的用于剥离示例电子邮件的可分离片断然后从电子邮件的源请求该被剥离的片断的过程。
图9A到9C示出了根据本发明实施例的存储和转发逻辑的结构以及处理逻辑和内容节点之间的数据路径。
图10A到10D示出了根据本发明实施例的从内容节点和内容路由器看的PUT-GET-ACK过程。
图11示出了根据本发明实施例的连接数据集配置(connected data setconfiguration)的结构的表示。
图12A到12E示出了根据本发明实施例的外部和内部逻辑,该逻辑可用来将内容路由器接口到用户设备和用户帐户。
图13和14A到14I示出了根据本发明实施例的各种命令的结构。
图15A到15C示出了根据本发明实施例的给出了用户设备与存储和转发逻辑之间的信令的序列图。
图16A到16D示出了根据本发明实施例的给出了用户帐户与存储和转发逻辑之间的信令的序列图。
具体实施方式
在下面的说明中,参考示出了本发明的若干实施例的附图。应当理解,也可以利用其他实施例,并且在不脱离本公开的精神和范围的情况下,可以作出机械、组合、结构、电和操作改变。下面的详细描述不应当被认为是限制性的,本发明的实施例的范围仅由授权专利的权利要求书限制。
下面给出的详细描述的一些部分以过程、步骤、逻辑块、处理和可在计算机存储器上被执行的对数据位的操作的其他符号表示给出。过程、计算机执行的步骤、逻辑块、处理等在这里被认为是导致期望结果的步骤或指令的有条理的序列。这些步骤是利用对物理量的物理操纵的步骤。这些量可以采取电、磁或者无线电信号,这些信号在计算机系统中可以被存储、传输、组合、比较或者以其他方式被操纵。这些信号有时可以被称作位、值、元素、符号、字符、项、数字等。每个步骤可由硬件、软件、固件或者它们的组合执行。
图1A示出了路由选择系统。路由器100包括用来路由分组120的路由选择模块101和路由选择表102。路由器100利用附加到分组120的地址信息和路由选择表102来确定哪些数据接收器140-1至140-3将接收到来分组120的转发拷贝。路由器100将分组120转发为分组130-1至130-3。已知的路由器不基于到来分组120中包括的内容的类型确定路由选择,而是基于附加到分组120的地址信息确定路由选择。
图1B示出了包括PC 150和多个数据保存器160的同步系统。数据保存器160可以是经由线缆连接到PC 150的手持组织器。用户可以将信息改变到第一数据保存器160-1中,例如,将新的联系人输入到其中。用户周期性地将数据保存器160连接到PC 150,利用PC 150的CPU 151对每个数据保存器160进行同步。第一数据保存器160-1与CPU 151交换数据170-1。CPU 151将任何更新后的新信息保存为数据171。PC 150累积通过其同步的数据171的持久拷贝152。在第二数据保存器160-2与PC 150同步时,CPU 151利用来自第一数据保存器160-1保存的信息对第二数据保存器160-2进行更新。即使在数据保存器160-1和160-2都已被同步后,同步系统也保持改变后的信息的拷贝作为持久拷贝152,尽管改变后的信息不再需要用于同步。已知的同步系统保存通过该同步系统同步的数据的完整持久拷贝152。
图2示出了根据本发明实施例的经由网络10耦合到多个内容节点300-1至300-3的内容路由器200。内容路由器200辅助实现可附接到网络10的类似的和不同的内容节点300-1至300-3的同步。内容路由器200可以是以硬件和/或软件方式实现的单个网络组件。或者,内容路由器200可以是联网组件的系统200。内容路由器200利用通过网络10发送的命令400-1和400-3来传输信息。网络10利用命令400将每个内容节点300-1至300-3与内容路由器200连接。网络10可以是异类的有线和/或无线网络(例如,互连的内连网、因特网和移动无线电网络)的聚集。或者,网络10可以是单个网络。另外,内容路由器200可以桥接两个或更多个分离的网络。
命令400-1可以在来自内容节点300-1的消息中被传输。该消息可以是利用对内容节点300-1可用的协议编码为位序列的。一条消息可以包含一个命令片断,在该情形中,可以将多条消息组合来形成完整的命令。或者,一条消息可以包含多条命令。在内容节点300所使用的一些协议中,一条或多条消息可以代表一条或多条命令。内容路由器200可以在内容节点300所使用的消息协议和在内容路由器200内部所使用的命令结构或协议之间进行翻译。
从内容节点300,用户可以使用命令来输入、存储、访问、更新、修改和/或删除内容或元数据(即,关于内容的信息)。内容可以具有多种内容类型之一,例如,联系人、日历事件、任务、电子邮件和/或库项目。此外,内容可以具有个人信息管理(PIM)内容类型,其可以包括联系人、日历事件或任务。库项目包括媒体对象,例如,照片、音频文件、视频片断、电影或温度,或者可以这些项目的群组,例如,相册或者家庭电影集。元数据包括挂接于这种内容的信息。
内容节点300可以是服务器上的用户的帐户。这种内容节点300可以访问一种内容类型的内容。例如,用户帐户可以是电子邮件服务器上的个人电子邮件帐户(例如,Yahoo!
Figure A20068003372600171
),照片服务器上的家庭相册帐户(例如,Yahoo!
Figure A20068003372600172
)、PIM服务器上的PIM帐户(例如,Yahoo!
Figure A20068003372600173
book或者Yahoo!
Figure A20068003372600174
)、或者多媒体库服务器上的音乐库帐户(例如,Yahoo!
Figure A20068003372600175
)。此外,内容节点300可以是能访问两种或者更多种内容类型的用户帐户。例如,用户帐户可以访问电子邮件、PIM信息、日历信息和记事本,例如,利用Yahoo!
Figure A20068003372600176
用户帐户。
内容节点300可以是用户设备。这种用户设备可以是有线设备,例如,家用个人计算机、办公PC、数码相机或者机顶盒,或者可以是无线设备,例如,移动电话、膝上PC、手持PC、或者具有无线能力的数码相机。一些设备可能同时具有有线和无线能力,而另一些设备可能只具有有线能力或者无线能力。一些用户设备可以访问单个内容类型。其他用户设备可以访问两种或者更多种内容类型。
内容节点300可以是对信息进行组织的用户设备,包括诸如
Figure A20068003372600181
Figure A20068003372600182
之类的PIM设备,或者提供更受限的信息管理服务的更专用的移动电话。信息管理服务可以包括例如PIM服务,例如,日历、地址薄、任务和笔记。日历一般维护与时间有关的有组织的属性,例如,与相应的日期和时间范围有关的事件(例如,会议、生日、假期)。地址薄一般维护与个人(例如,法律上的“个人”,例如,人和商业实体,或者甚至宠物)、地点(例如,个人的地址)有关的有组织的属性,或者其他联系人信息属性(例如,电话号码)。
图3示出了根据本发明实施例的一个内容节点300-1中的改变到内容节点300中的选出的一组内容节点的传播路径。一组内容节点300可以包括内容节点的空集、单个内容节点、一个或多个内容节点的子集、或者全部内容节点。内容节点300可以充当数据的来源(数据源)、数据的接收器(数据接收器)或者这二者的组合。在这种情形中,内容节点300-1充当数据源而内容节点300-2、300-3、300-6和300-8充当数据接收器。对内容节点300-1的改变可以代表包括添加、修改或者删除内容或元数据的多个事件之一。
如图所示,内容节点300-1充当数据或元数据的来源。内容节点300-1可以生成包括改变后的内容或者指示对内容的改变的元数据的命令400-1,该命令可以被传输到内容路由器200。内容节点300-1可以将命令400-1推到内容路由器200,或者内容路由器200可以针对命令400-1票选内容节点300-1。
内容路由器200检查命令400-1的内容。基于到来命令400-1的内容,内容路由器200选择将向可能的内容节点300-2至300-8中的哪些通知改变。在本示例中,内容路由器200选择内容节点300-2、300-3、300-6和300-8,然后将到来命令400-1转变成外出命令400-2、400-3、400-6和400-8,来分发对改变的指示。外出命令400-2、400-3、400-6和400-8可以包括或者可以不包括与进入命令400-1相同的内容。另外,内容路由器200不保存通过其同步的所有内容的持久拷贝。
内容节点300-1可以是包含一个或多个内容和/或元数据数据库的用户设备(例如,PIM设备)或用户帐户(例如,Yahoo!帐户)。例如,如果内容节点300-1包括地址薄,改变可以是新的、修改的或者删除的联系人。如果内容节点300-1包括日历,则改变可以是新的、修改的或者删除的事件,例如,安排。如果内容节点300-1包括任务列表,则改变可以是新的、修改的或者删除的任务。类似地,如果内容节点300-1包括记事本,则改变可以是新的、修改的或者删除的纪事。改变也可以是添加、修改或者删除信息的集合,例如,查看的股票的列表、加入书签的网页的列表、或者主页的配置。
如果内容节点300-1是电子邮件帐户,则改变可以是该电子邮件帐户已接收到新内容,例如,来自因特网的到来电子邮件消息,或者已删除内容,例如,删除现有的电子邮件。用户可能已更新了元数据,例如,将消息状态从未读改变成已读、将消息标记为未读、或者设置重要性级别。类似地,如果内容节点300-1是移动电话,则改变可以是其接收到新的内容,例如,来自无线网络的新报纸消息或新SMS消息,或者用户已删除了内容,例如,删除消息。
此外,如果内容节点300-1是媒体库,改变可以指示用户已添加、修改或删除了媒体对象,例如,照片、音频文件、视频片断、电影或文档,或者可以是这些项目的群组,例如,影集或家庭电影集。例如,改变可以指示用户已向照片添加了文字、或者已加载了新的歌曲。在发明人MarcoBOERRIES等2005年5月13日提交的题为“MEIDA OBJECTORGANIZATION ACROSS INFORMATION MANAGEMENTSERVICES”的美国申请No.11/129,697中进一步描述了媒体对象,该申请通过引用结合于此。
在描述改变时,内容节点300-1可以发送实际的新的或修改后的内容。在一些实施例中,内容节点300-1而是可以发送元数据。这种元数据可以包括改变后的内容的特征、改变后的内容的经变换的拷贝和/或对存储器中的内容的引用,例如,超链接或地址指针。发送引用而不是实际内容允许接收内容节点300-2访问来自发送内容节点300-1的内容,而不要求通过内容路由器200传递内容自身。
内容路由器200可以辅助实现在若干个具有电子邮件能力的内容节点300之间路由电子邮件,所述内容节点300例如是用户设备或者用户帐户。在用户的第一电子邮件帐户(例如,个人电子邮件帐户)处接收到的电子邮件可以经由内容路由器200被转发到用户的第二电子邮件帐户(例如,第二内容节点上的工作电子邮件帐户)。类似地,在用户的第二电子邮件帐户处接收到的电子邮件可以通过内容路由器200被转发到用户的第一电子邮件帐户。用户也可以添加第三电子邮件帐户,例如,Yahoo!电子邮件帐户,并且对内容路由器200进行配置,来将在第三帐户处从因特网接收到的电子邮件消息路由到第一和第二帐户。
图4示出了根据本发明实施例的用户的连接的电子邮件帐户320-1至320-3,并且示例屏幕快照20。诸如Outlook帐户之类的一些内容节点允许用户建立多个电子邮件邮箱或文件夹。图示了具有一个连接的收件箱的两个电子邮件帐户320-1和320-2和不具有连接的收件箱的一个电子邮件帐户320-3。连接的电了邮件帐户可以向内容路由器200报告信息,并且可以从内容路由器200接收信息。
例如,内容节点(320-1、320-2或3203)可以以命令的形式(分别为31、32或33)向内容路由器200报告新的到来电子邮件。响应于每个到来命令(31、32或33),内容路由器200选择一组目的内容节点(例如,分别为320-1和320-2),并且形成去往每个选出的内容节点(分别为320-1和320-2)的收件箱的外出命令(34和35)。
来自用户的个人电子邮件帐户320-1的屏幕快照20示出了收件箱21以及连接的收件箱22,收件箱21用于保存未通过内容路由器200传递而直接从因特网接收到的电子邮件消息,收件箱22用于保存从内容路由器200接收到的电子邮件消息。连接的收件箱22包含从用户的每个连接的电子邮件帐户320-1至320-3合并的电子邮件。通过查看连接的收件箱22,用户可以在一个文件夹中快速查看去往该用户的多个连接的电子邮件帐户的所有电子邮件。因此,连接的收件箱22可以被看作在用户的若干个连接的电子邮件帐户之间发送给该用户的所有电子邮件的窗口。
用户也可以配置电子邮件帐户来包括针对具有电子邮件功能的每个内容节点300的分离的文件夹或收件箱。在这里,快照20示出了用于来自个人电子邮件内容节点320-1的电子邮件的收件箱23、用于来自工作电子邮件内容节点320-2的电子邮件的收件箱24和用于来自Yahoo!
Figure A20068003372600211
电子邮件帐户节点320-3的电子邮件的收件箱25。利用分离的文件夹允许用户管理来自一个内容节点的独立的电子邮件帐户,例如,用户帐户320-1。
图5和6示出了根据本发明实施例的与存储和转发逻辑210的连接和由存储和转发逻辑210执行的处理。存储和转发逻辑210允许多个连接的内容节点300将对一个内容节点300上的信息的改变通过内容路由器200传输到其他内容节点300,而不要求每个内容节点300都同时耦合到内容路由器200。存储和转发逻辑210可以与内容节点的特质去耦合。即,存储和转发逻辑210可以类似地对待每个内容节点,而不管内容节点是用户设备还是用户帐户,或者内容节点作为客户机还是作为服务器工作。另外,存储和转发逻辑210还可以将冲突检测任务从内容节点移走,并且将冲突检测任务和解决方案集中到存储和转发逻辑210中。
可以以硬件、可执行代码或者二者的组合来实现存储和转发逻辑210。存储和转发逻辑210可以包括VLSI和/或FPGA硬件。存储和转发逻辑210可以包括孤立的服务器或者服务器网络。存储和转发逻辑210可以用通用重要处理单元(CPU)实现,或者用精简指令集计算机(RISC)实现。存储和转发逻辑210可以包括片上或者片外存储器,例如,RAM、PROM、EPROM、E2PROM等。存储和转发逻辑210还可以包括磁存储器,例如,硬盘驱动器,并且还可以包括光存储器。可执行代码可以是从脚本、软件、固件和/或机器码导出的。
图5的内容路由器200可以包括耦合到连接数据集配置500和仓库600的存储和转发逻辑210。存储和转发逻辑210可以被耦合到关联的内容节点300-1至300-4。图6示出了由到来命令触发的存储和转发逻辑210中的事件的序列,该序列开始于1000。这些动作包括在1001处处理到来命令、在1002处选择外出内容节点、在1003处生成外出命令、在1004处处理外出命令、以及在1005处发送经处理的外出命令。命令是到来命令还是外出命令是从存储和转发逻辑210的视角来看的。
在1000处,事件序列在具有改变要报告的内容节点300-1向存储和转发逻辑210发送新命令400-1时开始。内容节点300-1不将改变(例如,命令添加包括的新电子邮件消息)发送给其他内容节点。相反,内容节点300-1将改变发送到存储和转发逻辑210,存储和转发逻辑210可以创建或者可以不创建一组外出命令,来命令将新电子邮件消息或者该新电子邮件消息的多个部分发送到相应一组内容节点。
在1001处,存储和转发逻辑210对来自内容节点300-1的到来命令400-1进行处理。对到来命令400-1进行处理包括基于始发内容节点300-1的限制或者专门能力将命令进行变换。在变换命令时,存储和转发逻辑210可以使用可以保存命令的一个或多个可分离的片断的仓库600和包含在处理命令时使用的变换规则的连接数据集配置500。对到来命令和外出命令的变换将参考图7A、7B、8A和8B进行详细描述。
对到来命令400-1进行处理还可以包括检测到来命令400-1和存储和转发逻辑210中的未决命令之间的冲突并且解决该冲突。存储和转发逻辑210可以在存储器中保存多条未决的命令,等待对其进行处理。未决命令可以是先前从特定内容节点300接收到并且处理过的,正等待存储和转发逻辑210的进一步处理的到来命令。另外,未决命令也可以是存储和转发逻辑210响应于到来命令而生成的命令。这些生成的命令等待作为外出命令(例如,400-2或400-4)被传送到特定的内容节点300。
冲突解决可以包括丢弃新命令400-1、删除未决命令和/或将新命令400-1与未决命令汇聚。如果新到来命令400-1与先前接收到的等待执行的到来命令冲突,则可能发生冲突。例如,先前接收到的到来命令可以是用于添加内容节点300-1从因特网接收到的新电子邮件的命令。随后的到来命令可以是删除同一电子邮件,例如,如果用户已从内容节点300-1上的用户的收件箱删除了该电子邮件。如果用于添加该新电子邮件的命令在接收到随后的用于删除该同一电子邮件的命令时仍在存储和转发逻辑210中未决,则存在冲突。在该情形中,通过丢弃这两条命令来解决该冲突。或者,如果随后的到来命令是添加该同一新电子邮件,则存储和转发逻辑210检测到重复的命令,然后通过丢弃这两条重复的命令之一来解决该冲突。
如果新到来命令400-1与作为去往特定内容节点300的外出命令而生成的命令冲突,则也可能发生冲突。例如,存储和转发逻辑210可以保存用于更新地址薄中的联系人的未决外出命令。新的到来命令可以是完全删除该同一联系人。存储和转发逻辑210检测到该冲突,并且通过删除该未决外出命令(更新联系人)并且保存该新的到来命令(删除联系人)来解决该冲突。最终将处理该新的到来命令,删除联系人动作将作为外出命令被传播到其他连接的内容节点300。
存储和转发逻辑210也可以针对内容节点300将到来命令400-1与未决命令汇聚。例如,先前接收到的到来命令400-1可以是添加新任务到任务列表。后续到来命令400-1可以是以某种方式修改该任务。存储和转发逻辑210检测到冲突,并且通过将来自后续到来命令(修改任务)的修改结合到先前的到来命令(添加任务)中,从而解决该冲突。所得到的汇聚的命令可以是添加修改后的任务。所得到的汇聚的命令可以替换先前的到来命令。或者,可以将先前的到来命令丢弃,并且将所得到的汇聚的命令作为新的到来命令保存。冲突检测和解决将参考图9A-9C和10A-10D进一步描述。
在1002处,存储和转发逻辑210选择一组外出内容节点,在这里是内容节点300-2和300-4。在选择外出内容节点时,存储和转发逻辑210可以再次利用连接数据集配置500,连接数据集配置500还包含在路由选择规则中使用的路由选择参数。路由选择规则和连接数据集配置500将参考图11进一步描述。
在1003处,存储和转发逻辑210分别生成去往每个选出的内容节点300-2和300-4的外出命令400-2和400-4。取决于所选出的内容节点的能力和配置,存储和转发逻辑210可以对处理过的到来命令进行改动,以适应所选出的目的地内容节点的限制和需求。例如,取决于目的地内容节点的限制,存储和转发逻辑210可以利用仓库600来保存到来命令400-1的可分离片断,并且或者修改该片断或者从外出命令删除该片断。相反,内容路由器200可以将额外的信息片断插入到外出命令中。
内容路由器200可以基于用户定义的规则、系统定义的规则、或者已知的内容节点限制来对命令进行改动。内容路由器200可以基于在到来命令400-1中找到的信息来修改命令。内容路由器200可以将元数据附加到外出命令,所述元数据例如是位置、时间或者从用户的帐户或设备可访问的其他信息。内容路由器200可以保存关于命令如何被修改的记录,以使得如果相关命令被返回则可以反转该修改。在一些情形中,内容路由器200在不修改的情况下传递过命令。
在1004处,存储和转发逻辑210对外出命令进行处理。如同在1001处对到来命令一样,存储和转发逻辑210类似地执行新的外出命令与未决的到来命令和外出命令之间的冲突检测和解决。
在1005处,存储和转发逻辑210将外出命令400发送到各自的内容节点300。发送外出命令400可以包括以信号发送通知到内容节点300。与请求不同(在请求-响应协议中),通知是其中发送者不期望指示接收到该通知的响应或确认的信号。就此而言,通知是自包含的,因为其完全次发送的。另外,可以以软件(例如,信号量、标志或软件信号指令)和/或硬件(硬件连线或寄存器)实现通知。通知可以包括外出命令400的内容类型。如果内容节点利用IP地址被连接到网络10,则存储和转发逻辑210可以发送HTTP命令来向该内容节点通知外出命令未决。如果内容节点是具有SMS功能的移动电话,则存储和转发逻辑210可以利用SMS消息发送通知。
内容节点300-1可以在命令400-1中发送具有一个或多个片断的内容。为了使流出内容路由器200的数据量最小化,存储和转发逻辑210可以用相应的一个或多个引用替换命令的一个或多个片断,而不是转发原始片断自身,其中这些引用提供到原始内容的链接。或者,内容节点300-1可以包括到内容的源的一个或多个引用,而不是包括内容自身。
接收到对内容的引用(例如,对内容节点300-1上存在的新照片的引用)的内容节点300-4可以发起对等传送450来从内容节点300-1提取内容。这样,内容路由器200可以在两个内容节点同时连接到网络10时,以对等传送405的方式来辅助实现两个内容节点之间的内容传送。
由于内容节点的限制和需求,存储和转发逻辑210可以通过在将命令发送到内容节点之前对该命令的可分离片断进行修改、替换或删除,从而使该命令相适应。例如,一些内容节点可能不能处理、使用或存储命令的一些片断。在一些实施例中,存储和转发逻辑210可以利用下述三种方法之一来适应这些具有有限功能的内容节点,其中这些方法中的一些使用仓库。即使该内容节点能够处理完整的到来命令,存储和转发逻辑210还可以出于其他原因而使用这些方法,例如,内容节点中的存储器限制或者存储和转发逻辑210和内容节点之间的带宽限制。
在一些情形中,内容路由器200被配置来针对新命令票选内容节点300。内容路由器200可以周期性地票选内容节点300来确定是否已发生了任何改变。票选周期可以基于到网络的连接的类型或预期成本。例如,如果内容节点300是经由SMS连接被连接到网络的移动电话,则可以每24小时进行一次票选。如果移动电话经由GPRS数据网络连接被连接到网络,则可以每20分钟进行一次票选。如果移动电话被置于具有到因特网的有线连接的台座中,则每数秒到数分钟可以进行一次票选。
在一些情形中,从存储和转发逻辑210到内容节点300的通知可能被阻挡,因为内容节点300在防火墙之后。为了接收到命令,可以将内容节点300配置来票选选择内容路由器200。在内容节点300针对未决外出命令400票选时,存储和转发逻辑210可以利用去往内容节点300的一条命令或者一批命令来答复以进行处理。命令400的结构将参考图13和14A-14I进一步描述。存储和转发逻辑210之间的通知和命令交换将参考图15A-15C和16A-16D进一步描述。
根据第一方法,存储和转发逻辑210可以通过从有效负载中剥离不兼容或者不期望的片断来适应有限能力内容节点内容节点,并且将所剥离的片断保存到仓库600中。因此,仓库600可以保存将来可用的命令的片断。如果稍后需要这些片断,则存储和转发逻辑210可以从仓库600访问它们。该方法将在下面结合图7A和7B描述。
图7A和7B示出了根据本发明实施例的耦合到仓库600的存储和转发逻辑210。由于内容节点300的限制和需求,存储和转发逻辑210可以通过在将命令发送到内容节点300之前删除命令的片断,从而使该命令相适应。在使命令相适应之前,存储和转发逻辑210可以在仓库600中保留未经修改的片断或者完整的命令。因此,仓库600可以保存将来可用的命令的一个或多个片断。根据其他实施例,片断也可以对从命令中删除片断(例如,电子邮件中的文件)可用。例如,如下参考图8A所述,可以针对到来命令删除文件。或者,如下面参考文件中继服务器和图12E所述,可以针对到来命令删除文件。
图7A示出了利用仓库600来保存来自第一内容节点300-1的外出命令400-1的可分离片断的存储和转发逻辑210。在命令包含可分离并且不同的内容时,则可以从该命令解析出可分离内容,或者逐段地修改可分离内容。例如,联系人可以包括全名(第一片断401)、家庭电话号码(第二片断402)和工作电话号码(第三片断403)。这些片断中的每个都是可分离并且不同的。即,这些片断中的一个或多个可以被删除和/或修改和/或组合,从而形成修改后的命令。例如,如果诸如移动电话之类的特定内容节点具有只能处理单个电话号码这样的限制,则存储和转发逻辑210在准备相应的外出命令时可以从到来命令中删除工作电话号码(第三)。存储和转发逻辑210也可以将工作电话号码放置在仓库600中以备将来使用。
作为另一个示例,到来命令可以包括诸如下述新电子邮件消息之类的内容,该电子邮件消息具有电子邮件体和附带的文件。该附带的文件与电子邮件体是可分离的并且不同的。存储和转发逻辑210可以生成用于将该新电子邮件添加到第二内容节点300-2的外出命令400-2。去往第二内容节点300-2的外出命令400-2可以包括该电子邮件体,但是只包括对该文件的引用。
如图所示,到来命令400-1部分作为经删节的外出命令400-2被转发到第二内容节点300-2。到来命令400-1包括示例性有效负载441,有效负载441包含三个片断的内容和/或元数据401、402和403。存储和转发逻辑210将第三片断403的拷贝存储到仓库600中,并且还准备具有有效负载451的外出命令400-2,有效负载451包含第二片断401和第二片断402,但是删除了第三片断403。内容路由器200可能例如由于目的地内容节点300-2的限制而删除第三片断403。这种限制可以包括:内容节点300-2具有有限的已分配存储容量,或者删除预定格式的所有附件的一般变换规则。
作为另一个示例,用户可以将新联系人添加到内容节点300-1。内容节点300-1发送包含有效负载441的添加联系人命令440,该有效负载441表示在内容节点300-1处创建的联系人。有效负载441可以包含信息的三个片断401到403。第一片断401可以是保存名和姓的结构。第二片断402可以是电话号码。第三片断403可以是超链接或者网页。如果目的地内容节点300-2不能接收超链接,则存储和转发逻辑210可以剥离出包含超链接的第三片断403。因此,从存储和转发逻辑210发送的有效负载451可能与存储和转发逻辑210接收到的有效负载441不同。存储和转发逻辑210将第三片断403存储到仓库600中以备可能将来使用。例如,存储和转发逻辑210可以在用户改变有效负载451的片断之后或者存储和转发逻辑210将改变转发到第一内容节点300-1之前访问仓库600,如下所述。
图7B示出了存储和转发逻辑210响应于来自第二内容节点300-2的到来命令400-2A(其包含原始到来命令400-1和更新后的第二片断402A)从仓库600访问片断。第二片断402可能作为用户在内容节点300-2处修改该片断(例如,电子邮件附件)的结果而已被更新。在存储和转发逻辑210对来自内容节点300-2的到来命令400-2A进行处理时,其确定先前与有效负载451相关联并且现在与有效负载451A相关联的任何片断是否被保存在仓库600中。存储和转发逻辑210确定出第三片断403先前与有效负载451相关联,然后将来自仓库600的第三片断403与包含原始第一片断401和更新后的第二片断402A的有效负载451A合并,来创建完整的数据结构。如果内容节点300-1被配置来对每个片断401到403中保存的内容进行处理,则存储和转发逻辑210准备包含第一片断401、更新后的第二片断402A和重新附加的第三片断403的有效负载441A。
根据第二方法,存储和转发逻辑210可以通过对来自有效负载441的不兼容或者不期望的片断进行修改来适应有限能力内容节点300-2。如果将来可能需要该片断,则存储和转发逻辑210可以将该片断保存到仓库600中。该第二方法除以下部分之外与第一方法类似:在第二方法中,第一方法中剥离的片断被修改并且被发送到内容节点。如果将来有限能力的内容节点在命令中返回了该修改后的片断,则存储和转发逻辑210可以在将该命令转发到其他内容节点之前用来自仓库600的原始片断替换该返回的片断。
例如,如果从第一内容节点300-1到达的命令400-1包括名字符串和姓字符串,但是第二内容节点300-2仅能处理单字符串名称,则存储和转发逻辑210可以用单个字符串结构替换该双字符串结构,其中该单字符串结构包含连接的名和姓。存储和转发逻辑210可以将包括名字符串和姓字符串的结构存储到仓库600中。如果稍后该内容(以修改后的方式或者未修改的方式)被从第二内容节点300-2发送,并且目的地内容节点可以处理双字符串名称,则存储和转发逻辑210可以用来自仓库600的双字符串结构的拷贝替换来自第二内容节点300-2的到来命令中的连接的字符串。这样,从一个有限能力内容节点300-2丢失的内容可以在其被转发到其他内容节点之前被恢复。
不利用仓库600来保留已被剥离或者修改的内容的原始片断,而是存储和转发逻辑210可以从片断的源内容节点或者从由源内容节点引用的存储设备提取原始片断。
根据第三方法,不将片断保存到仓库中。存储和转发逻辑210可以通过对来自命令有效负载的不兼容的或者不期望的片断进行剥离或者修改来适应有限能力内容节点。但是,利于该方法,不在仓库中保留剥离的或修改后的片断的拷贝。如果稍后需要这些片断,则存储和转发逻辑210可以从原始到来命令的源请求并接收片断。下面将结合图8A和8B描述本方法的示例。
图8A示出了根据本发明实施例剥离示例性电子邮件的片断的过程。到来电子邮件900通过SMTP连接从因特网到达第一内容节点300-1。电子邮件900包括包含到来电子邮件头部和主体401的有效负载901,电子邮件头部和主体401包含下述信息,例如日期,时间,去往、来自和答复电子邮件地址以及发送者输入的文本。有效负载901还包括图像文件附件402(例如,JPEG文件)和演示文件附件403(例如,PowerPoint演示)。在内容节点300-1上运行的应用可以将附件402和403转换成链接402A和403A,这些连接允许具有能力的内容节点通过到附件的超链接访问这些附件。内容节点300-1然后可以根据诸如IMAP之类的电子邮件协议创建一个或多个消息910,形成包括以下内容的有效负载911:电子邮件头部和主体401、到图像文件的链接402A、以及到演示文件附件的链接403A。内容节点300-1将消息910发送到内容路由器200内的协议接口逻辑260。
协议接口逻辑260将一个或多个消息910转换成包含有效负载421的命令420,其中有效负载421包括从有效负载911提取出的电子邮件头部和主体401、到图像文件的链接402A、以及到演示文件附件的链接403A。协议接口逻辑260允许内容节点适应不同的协议来与内容路由器200一起工作。存储和转发逻辑210从协议接口逻辑260接收到来命令420,并且准备去往内容节点300-2的外出命令430。在该示例中,内容节点300-2不能处理演示文件附件403或者其链接403A。对于该内容节点300-2,存储和转发逻辑210被配置来剥离任何到演示文件附件的链接403A。存储和转发逻辑210准备包括有效负载431的外出命令430,其中有效负载431包含电子邮件头部和主体401、到图像文件的链接402A,但是不包含到演示文件附件的链接403A。在该情形中,存储和转发逻辑210不将链接403A的拷贝保留到仓库600中以备后用。
在内容路由器200已将剥离的电子邮件转发到内容节点300-2之后,内容节点300-2处的用户可以将该电子邮件转发到外部因特网地址。当协议接口逻辑260接收到该转发的电子邮件时,其可以确定该电子邮件是否丢失了原始邮件中包含的一个或多个片断。协议接口逻辑260可以从内容节点300-1处包含完整电子邮件的收件箱请求丢失的片断。在接收到原始片断之后,协议接口逻辑260可以将这些片断恢复到转发的电子邮件。接下来,协议接口逻辑260可以利用与内容节点300-1处的收件箱相关联的电子邮件服务器来将电子邮件转发到外部因特网地址。
图8B示出了根据本发明实施例如果用户稍后转发电子邮件则将剥离的片断恢复到该电子邮件的过程。用户可能转发先前在内容节点300-2处接收到的电子邮件。例如,内容节点300-2发送包含有效负载441的命令440,其中有效负载441包含新创建的电子邮件头部和主体401B、原始电子邮件头部和主体401和到图像文件的链接402A。该命令440包括演示文件附件403或者其链接403A。响应于接收到命令440,存储和转发逻辑210生成包括有效负载451的外出命令450,其中有效负载451包含来自有效负载441的片断。
协议接口逻辑260接收命令450,并且检测出其是转发的电子邮件。协议接口逻辑260可以通过从第一内容节点300-1请求未被删节的电子邮件来尝试恢复剥离的片断。或者,协议接口逻辑260可以仅请求剥离的片断402和403。在响应中,第一内容节点300-1例如在一个或多个IMAP消息960中将剥离的片断发送到协议接口逻辑260,其中一个或多个IMAP消息960形成包括图像文件附件402和演示文件附件403的有效负载961。
协议接口逻辑260准备包含有效负载971的电子邮件,其中有效负载971包括外出电子邮件头部和主体401B、电子邮件头部和主体401、原始图像文件附件402和原始演示文件附件403。协议接口逻辑260可以例如以包括有效负载971的SMTP消息970的形式将该电子邮件转发到与内容节点300-1相关联的电子邮件服务器300-1A。
电子邮件服务器300-1A用到外部因特网地址的外出电子邮件980对SMTP消息970作出响应。外出电子邮件980包含到来电子邮件的先前被协议接口逻辑260剥离或修改过但被恢复的片断中的每个。外出电子邮件980还包含在内容节点300-2处创建的外出电子邮件头部和主体401B。结果,外出电子邮件可以表现出其是从包含原始附件402和403的电子邮件转发的,即使用户从其转发电子邮件的内容节点300-2具有有限的能力并且未接收附件也如此。
仓库600还可以用于保存在链接的内容节点之间路由的信息的清单(inventory)。或者,该清单可以被保存在分离的存储器中。该清单可以包括路由到内容路由器或者从内容路由器路由的内容的特征和/或一种或多种内容类型的元数据的特征。该清单可用于对在链接的内容节点300中的一个或多个上存在的路由的内容的特征进行概括。该清单可以用来预览项目计数。例如,如果针对特定的内容节点300改变了一个或多个路由选择参数,则内容路由器200可以估计或者确定将需要被从一个或多个其他内容节点300取回的特定内容类型的额外项目的数目,来使该特定内容节点300符合更新后的路由选择参数。基于清单中的特征,这些特征可以用来计算在落入条件内的内容节点上存在的内容类型的总数。可以对清单中的条目进行计数来求总一个内容节点上存在的特定内容类型的数目。在一些实施例中,可以在冲突检查期间使用清单来标识重复命令。
对于电子邮件内容类型,内容路由器可以从通过内容路由器200路由并且在内容节点上存在的每个电子邮件消息收集清单中的信息。例如,对于每条用于添加新电子邮件消息的命令,内容路由器200可以保存该电子邮件的特征,例如,该电子邮件的存在,内容节点接收到该电子邮件的日期。清单中的条目可以被计数来求总在内容节点上存在的电子邮件消息的数目。对于通过内容路由器路由的多个电子邮件消息,基于清单中的日期特征,每个电子邮件的日期可以用来对内容节点上存在的落入指定日期范围的电子邮件消息的数目进行计数。当用户希望查看如果该用户改变了路由选择参数(例如,电子邮件应当在内容节点上存在的天数)则内容节点将包含的电子邮件消息的数目,则内容路由器200可以计算清单中落入特定日期范围的电子邮件的数目。
内容路由器200上的调度器还可以使用清单来从内容节点300删除先前通过内容路由器200路由到该内容节点300的电子邮件消息。内容路由器200上的调度器可以周期性地对先前通过内容路由器200路由的电子邮件消息的清单中的日期进行比较。例如,调度器可以将这些日期与指示用户选择的在内容节点上保存所路由的电子邮件的天数的参数进行比较。路由选择参数可以是在用户设备例如移动电话上保存最近3天的电子邮件。新的电子邮件消息在它们到达内容路由器200时可以被转发到用户设备,并且保存每个新电子邮件的清单。在用户在一个或多个内容节点处的动作删除了电子邮件时,内容节点将电子邮件删除动作发送到内容路由器,并且相应地清单被更新。调度器可以周期性地(例如,夜间)将清单中的电子邮件的日期与指示仅应当在用户设备上将电子邮件保存一定天数的路由选择参数相比较。如果清单指示用户设备包含了比路由选择参数所许可的老的电子邮件,则内容路由器上的调度器可以生成命令来删除该用户设备上的比路由选择参数所许可的老的每个电子邮件。例如,路由选择参数可以指示在用户设备上保存电子邮件的两天历史。每晚调度器都可以存储用于从该用户设备删除超过两天的电子邮件的命令。另外,清单可以被用来向用户指示如果改变了路由选择参数,则需要从内容节点删除或者添加到内容节点的电子邮件的数目。例如,如果内容节点的当前指示将电子邮件保存两天的路由选择参数被改变成将电子邮件保存一天,则内容路由器200可以从与该内容节点相关联的清单数据确定特定数目的电子邮件消息应当被从该内容节点删除。类似地,如果特定内容节点300的路由选择参数被从两天改变成三天,则内容节点200可以从与该特定内容节点300相关并且与另一个相关的内容节点相关的清单数据确定应当从该相关内容节点路由到该特定内容节点的电子邮件消息的数目。
类似地,清单可由内容路由器用来限制内容节点上的一种或多种内容类型的数目。内容路由器可以发送与内容类型(其中,内容节点已保存了预定数目的内容类型)的每个添加命令相对应的删除命令。或者,调度器可以用来周期性地对于每种内容类型确定内容节点的内容项目数目是否超过了预定阈值数目。预定阈值数目可由用户配置,或者可以是内容类型的默认值。例如,如果内容节点(例如,移动电话)可以具有500条或者更多条电子邮件消息。内容节点,例如用户帐户,可以具有较大的预定阈值数目,例如5000。对于添加到内容节点的每个新电子邮件消息,内容路由器可以发送对应的删除命令来从内容节点删除最老的电子邮件消息。或者,调度器可以周期性地确定内容节点是否具有超过预定数目的特定内容类型的项目,并且然后发送一条或多条命令来删除过期的内容。例如,预定数目可以是500,这可以指示特定用户设备可以具有多至500个电子邮件。如果内容路由器确定该用户设备具有多于500个电子邮件,则其可以发送多个删除命令来删除超过500的电子邮件消息。在一些实施例中,内容路由器发送删除命令来在删除超过预定阈值数目的最老的电子邮件消息。在配置内容节点时,清单可以被用来从其他内容节点请求最近的500个电子邮件,以转发到所配置的内容节点。在新电子邮件到达时,可以将它们添加到该内容节点,直到达到预定限制,例如,5000,为止。一旦达到该限制,则内容路由器可以发出删除命令来从该内容节点删除最老的电子邮件消息。
类似地,对于事件,内容节点可以具有该内容节点上的事件的最大数目的预定阈值数目。对于添加到内容节点的每个新事件,如果将超过预定阈值数目,则内容路由器可以发送删除命令来删除最老的事件。或者,内容路由器可以周期性地检查清单来确定在内容节点上存在的事件内容类型的数目。内容路由器然后可以发送一条或多条删除命令来从内容节点删除最老的事件。
类似地,对于任务,内容节点可以具有该内容节点上的任务的最大数目的预定阈值数目。对于添加到内容节点的每个新任务,如果将超过预定阈值数目,则内容路由器可以发送删除命令来删除最老的任务。或者,内容路由器可以周期性地检查清单来确定在内容节点上存在的任务内容类型的数目。内容路由器然后可以发送一条或多条删除命令来从内容节点删除最老的任务。或者,内容路由器可以然后发送一条或多条删除命令来删除已完成的任务,直到不会超过预定阈值为止。
另外,内容路由器200可以计算并保存新电子邮件的校验和。在确定用于添加新电子邮件的命令是否与命令存储器中的命令或者先前通过内容路由器传递的命令重复时可以使用该校验和。
图9A到9C示出了根据本发明实施例的存储和转发逻辑210的结构和处理逻辑250与内容节点300-1至300-n之间的数据路径。
图9A示出了具有命令存储器220和处理逻辑250的存储和转发逻辑210。处理逻辑250被耦合到连接数据集配置500和命令存储器220。命令存储器220也被示为耦合到内容节点300-1至300-n。命令存储器220可以配置来包括用于每个内容节点300的到来存储器230和外出存储器240二者。内容节点300可以将一条或多条命令推(放)到到来存储器230。内容节点300还可以从外出存储器240拉(取)回一条或多条命令。
本领域技术人员将认识到,可以利用数据库来形成到来存储器230和外出存储器。例如,可以在包含命令的数据库中配置命令存储器220。数据库中的每条命令可以关联有属性。例如,与数据库中的命令相关联的属性可以将该命令标识为用于特定内容节点300的到来命令或外出命令。
图9B示出了根据本发明实施例的存储和转发逻辑210中的用于单个内容节点300的命令存储器的结构。命令存储器220包括到来存储器230和外出存储器240。
在一些实施例中,到来存储器230包括到来队列231和相应的转运(in-transit)队列232。到来队列231保存存储和转发逻辑210从内容节点300接收到的但是处理逻辑250尚未作出响应的到来命令。相应的到来转运队列232保存处理逻辑250正对其作出响应的到来命令。一旦处理逻辑250已成功地对到来命令作出了响应,处理逻辑250就可以从转运队列232丢弃该到来命令。如果处理逻辑250对到来命令的处理未成功,例如,如果必需的资源不可用,则处理逻辑250可以将到来命令从转运队列232移回到来队列231。
在一些实施例中,外出存储器240包括外出队列241和相应的转运队列242。外出队列241保存处理逻辑250(响应于到来命令)已生成但是处理逻辑250尚未开始将该外出命令向内容节点300发送的外出命令。相应的外出转运队列242保存处理逻辑250已向内容节点300发送但是处理逻辑250尚未接收到指示内容节点300已接收到该外出命令的确认或保证。
本领域技术人员将再次认识到,可以使用数据库来保存命令,并且与每条命令相关联的一个或多个属性可以指示该命令在到来队列231中、在相应的到来转运队列232中、在外出队列241中或者在相应的外出转运队列242中。
图9C示出了用于保存来自源内容节点300-1的到来命令的到来存储器230-1和用于保存去往目的地内容节点300-2的外出命令的外出存储器240-2。
在当源内容节点300-1被耦合到存储和转发逻辑210期间,源内容节点300-1可以将命令或者命令集发送(放置)到内容路由器200。处理逻辑250可以将到来命令或者命令集放置到与源内容节点300-1相关联的到来队列231-1中。
在稍后的时刻,处理逻辑250可以对到来队列231-1中保存的到来命令作出响应。作为对到来队列231-1中的到来命令的响应的一部分,处理逻辑250可以将到来命令从到来存储器230-1中的到来队列231-1移动到转运队列232-1。另外,处理逻辑250可以选择将针对来生成外出命令的目的地内容节点300-2。一般而言,处理逻辑250可以选择一组目的地内容节点,包括多个目的地内容节点、单个目的地内容节点、或者不包括目的地内容节点。接下来,处理逻辑250可以将所生成的外出命令放置到目的地内容节点的外出队列241-2中。
在处理逻辑250已成功地准备了外出命令并且将其写到外出队列241-2后,处理逻辑250可以从到来存储器230-1中的转运队列232-1删除到来命令。如果处理逻辑250未成功地准备外出命令或写外出命令,则处理逻辑250可以从专用队列232-1将到来命令移回到来队列231-1。这样,或者成功地对到来命令作出了响应,或者到来命令被放回到来队列231-1以备将来尝试对该到来命令进行处理。
处理逻辑250可以向内容节点300-2发送通知,来向内容节点300告知外出命令在外出队列241-1中未决。在稍后的时刻,目的地内容节点300-2可以从外出队列241-2请求(拉)该外出命令。或者,内容路由器200可以外出命令推到目的地内容节点300-2。在将外出命令发送到目的地内容节点300-2的过程已经开始但是处理逻辑250确定该外出命令已被成功地发送和/或接收之前,处理逻辑250可以将外出命令从外出队列241-2移动到与目的地内容节点300-2相关联的转运队列242-2。
发送和/或接收成功可由处理逻辑250内部确定,由接收到删除外出命令的指令确定,或者由接收到确认(ACK)或等价的通知(该通知提供了足够的保证,保证目的地内容节点300-2已接收到该外出命令)确定。对确认的传输可由目的地内容节点300-2发起或者由充当目的地内容节点300-2的代理的中间实体发起,如下面参考图15B、15C、16B和16C所述。
如果接收到否定的确认(NACK),则错误被检测出、已超时等,在可以将转运队列242-2中存在的该外出命令移回外出队列241-2。结果,如果确定了故障,例如,临时故障,则处理逻辑250可能还有将来的机会将该外出命令从外出队列241-2重发到目的地内容节点300-2。如果处理逻辑250确定故障是永久的,则其可以丢弃该命令,从而避免可能无止尽地循环将命令传入和传出转运队列232、242。
这样,足以确认外出命令已被内容节点300-2接收到,或者被放回外出队列241-2以备将来尝试将其发送到目的地内容节点300-2。
在到来和外出队列231、241和相应的转运队列232、242之间移动命令的动作有助于确保命令仅在已正确地对其作出了响应或者被正确地发送后才被丢弃。另外,在到来和外出队列231、241和转运队列232、242之间移动命令的过程可能利用将数据从一个分配的缓冲器到另一个的实际移动发生。或者,在队列之间移动的过程可以通过改变数据库中的标志或属性而虚拟地发生。另外,每次命令例如在发生错误条件后从转运队列232或242进入到来队列231或外出队列241时,处理逻辑250可以执行下述的冲突检查。
图10A到10D示出了根据本发明实施例的从内容节点300和内容路由器200看的Put-Get-Act过程。该过程的目的是到来队列和外出队列231、241中的冲突命令。通过解决到来队列和外出队列231、241中的冲突,内容节点300可以从解决冲突的负担中解脱出来。
根据PUT-GET-ACK过程,内容节点300首先将内容节点300中未决的所有命令发送(PUT)到内容路由器200。内容路由器200解决到来命令和已在到来队列231或外出队列241中的命令之间的任何冲突。在内容节点300已将所有命令发送向内容路由器200后,内容节点300接收(GET)来自外出队列241的命令。最后,内容路由器200接收到确认(ACK),该确认保证内容节点300接收到外出命令。
图10A示出了从内容节点300来看的内容路由器200和内容节点300之间的PUT-GET-ACK过程。在1100处,诸如用户设备310之类的内容节点300等待,直到存在需要或者能力将命令推给内容路由器200或者从内容路由器200获取命令为止。
在1101处,内容节点300从内容路由器200接收到告知命令在外出队列241中未决的通知和/或内容节点300确定其有一条或多条命令要向内容路由器200发送。
在1102处,内容节点300首先确定是否存在任何命令要向内容路由器200发送。通过要求内容节点300在接收命令之前发送命令,在内容路由器200中而不是由内容节点300处理了冲突解决。
在1103处,内容节点300发送请求来将命令从内容节点300 PUT到内容路由器200。如果内容节点300有一条或者多条命令要推向内容路由器200,则其可以发送一系列一条或多条独立的请求,每条都包含包括命令的有效负载。或者,其可以发送一系列一条或多条请求,每条都包含包括成批命令的有效负载。
在1104处,内容节点300接收到指示内容路由器200接收到命令的确认。内容节点300然后再次在1102处进行检查,以确定是否存在多条命令要推向内容路由器200。
在1105处,如果内容节点300没有任何未决命令要推向内容路由器200,则内容节点300接下来进行检查,以确定是否存在任何要获取的命令。在一些实施例中,内容路由器200包括在1104中接收到的确认中的指示。该指示向内容节点300指明未决命令正在外出队列241中等待。如果没有命令被推向内容路由器200,则内容节点300可以基于早先接收到的通知确定可能存在一条或多条未决命令要获取。
如果存在要从内容路由器200 GET的命令,则在1106处,内容节点300发送请求到内容路由器200。在1107处,内容节点300然后接收到响应,该响应具有包含一条或多条命令的有效负载。在1108处,内容节点300对命令进行处理,这可以包括执行命令或者可能仅保存命令以备将来执行。在1109处,内容节点300向内容路由器200发送指示命令已被接收到并已被处理的确认(ACK)。在1110处,内容节点300等待指示内容路由器200已成功地接收到其确认(ACK)的响应。
接下来,再次在1105处,内容节点300进行检查来看是否存在任何更多的命令要获取。内容节点300可以通过对在1110处最后接收到的响应进行检查来确定内容路由器200是否具有额外的命令。在一些实施例中,响应可能包含指示,该指示指明一条或者多条额外的命令在外出队列241中未决。在一些实施例中,响应可能包含曾在外出队列241中未决的一条或多条额外的命令。在响应包含指明一条或多条额外的命令在外出队列241中未决的指示的情形中,内容节点300通过在1106处请求并且处理命令来继续。在响应包含一条或多条额外的命令的情形中,内容节点300通过在1108处对命令进行处理来继续。
图10B示出了从接收内容节点300 PUT到内容路由器200的新的到来命令的内容路由器200来看的内容路由器200和内容节点300之间的PUT-GET-ACK过程。在1200处,内容节点300向内容路由器200发送新命令,其中该新命令去往到来队列231。
在1201处,处理逻辑250确定在新命令与到来队列231或外出队列241中存在的任意命令之间是否存在任何冲突。在1209处,如果在新命令和现存命令之间存在冲突,则处理逻辑250通过确定是丢弃该命令、将该新命令与现存冲突命令汇聚、从队列231或241删除现存冲突命令和/或将该新命令移动到到来队列231,从而解决该冲突。检测和解决新命令和现存命令之间的冲突的过程将在下面参考图10D进一步描述。在1203,如果没有检测到冲突,则处理逻辑250将命令移动到到来队列231。
随后,处理逻辑250开始对到来队列231中的命令进行处理,如1204处所示。在1205处,一旦开始了处理,处理逻辑250可以将命令从到来队列231移动到转运队列232。在1206处,处理逻辑250接收指示改命令已被处理的确认、接收改命令未被处理的否定确认、或者确定由于诸如超时之类的故障必需重新处理该命令。
在1207处,处理逻辑250接收到确认。因此,处理逻辑250从转运队列232移走或者丢弃该命令。或者在1208处,如果未及时接收到确认,则处理逻辑250准备将该命令从转运队列232移回到来队列231,以备在1204处重处理。此刻,可以将要被移动的命令作为新命令处理。在1201A处,处理逻辑250执行要被移动的命令与内容节点300的到来和外出队列231、241中的命令之间的冲突检查。该过程然后如上参考1202所述继续。
图10C示出了从为从内容路由器200 GET的内容节点300生成新外出命令的内容路由器200来看的内容路由器200和内容节点300之间的PUT-GET-ACK。在1210处,内容路由器200可以响应于来自与同一个用户相关联的不同的连接的内容节点的到来命令,生成新的外出命令。
在1211处,处理逻辑250确定在该新命令和到来队列231和外出队列241中存在的任意命令是否存在任何冲突。在1219处,如果在该新命令和现存命令之间存在冲突,则处理逻辑250通过确定是丢弃该命令、将该新命令与现存冲突命令汇聚、从队列231或241删除现存冲突命令和/或将该新命令移动到外出队列241,从而解决该冲突。在1213处,如果未检测到冲突,则处理逻辑250将该命令移动到外出队列241。在1214,处理逻辑250可以向内容节点300发送通知来指示新命令正在外出队列241中等待。
随后,处理逻辑250开始对外出队列241中的命令进行处理。在1215处,一旦开始了处理,处理逻辑250就将命令从外出队列241发送向内容节点300。处理逻辑250也可以将命令从外出队列241移动到转运队列242。在1216处,处理逻辑250等待来自内容节点300的指示该命令已被内容节点300处理了的确认。如果处理逻辑250接收到指示该命令未被处理的否定确认或者确定确定由于诸如超时之类的故障必需重新处理该命令,则可能发生了故障。
在1215处,处理逻辑250接收到确认。因此,处理逻辑250从转运队列242移走或者丢弃该命令。或者在1218处,如果未及时接收到确认,则处理逻辑250准备将该命令从转运队列242移回外出队列241,以备重处理。此刻,可以将要被移动的命令作为新命令处理。在1211A处,处理逻辑250执行要被移动的命令与内容节点300的到来和外出队列231、241中的命令之间的冲突检查。该过程然后如上参考1212所述继续。
图10D示出了用于检测新命令400与到来队列231和外出队列241中的现存命令之间的冲突的结构。新命令400可以是从内容节点300接收到的或者是处理逻辑250生成的。来自内容节点300的新命令去往到来队列231。由处理逻辑250生成的新命令去往外出队列241。在新命令被保存到到来队列231或外出队列241之前,处理逻辑250确定是否存在冲突。
为了确定是否存在冲突,处理逻辑250将新命令400与到来队列231和/或外出队列241中的现存命令401-407进行比较。如果新命令400和现存的队列中的命令包含相关内容或元数据,则处理逻辑250可以确定必需在新命令400和该现存命令之间解决冲突。
为了解决所检测的冲突,处理逻辑250可以确定是否一条命令取代另一条。在现存命令取代新命令的情形中,处理逻辑250可以丢弃新命令400。在新命令取代现存命令的情形中,处理逻辑250或者可以在适当的队列231或241中用新命令400取代现存命令,或者可以从队列231或241中删除该现存命令并且将新命令400作为新的条目添加到适当的队列231或241中不同的位置处。
或者,处理逻辑250可以确定是否应当将新命令400和与该新命令400冲突的命令汇聚成单条命令。在命令被汇聚的情形中,处理逻辑250可以或者用汇聚的命令替换现存命令,或者可以从队列231或241中删除该现存命令并且将汇聚的命令作为新的条目添加到适当的队列231或241中。
图11示出了根据本发明实施例的连接数据集配置800的结构的表示。连接数据集配置800包括针对连接到内容路由器200的每个用户的分层配置,例如,510至570。第一用户利用配置和维护工具定义连接数据集配置510。配置和维护工具可以是例如基于web的图形用户界面(GUI),其可以经由SQL数据库调用访问数据库800。
每个用户配置510至570可以包括针对用户设备的配置511和针对用户帐户的配置516。每个针对用户设备的配置511包括针对每个用户设备的一组配置512、513。每个用户设备和帐户配置512、513、517和518包括针对每个已配置内容类型的一组配置。
本领域技术人员将认识到,可以利用若干种可能的分层结构之一来构造连接数据集配置800。例如,用户设备配置511和用户帐户配置516可以被组合到单个结构中。用户设备或用户帐户与内容类型之间的分层结构可以被逆转,以使得内容类型配置包含针对多个用户设备和/或用户帐户的配置,而不是用户设备或用户帐户配置包含针对多个内容类型的配置。
如图所示,用户设备配置513包含针对由用户设备处理的每种内容类型的配置。例如,如果用户设备B能够处理联系人、事件、待处理项目(任务)、电子邮件和库项目,则用户设备B配置513可以包含各自的配置513-1、513-2、513-3、513-4和513-5。可以向用户的连接的内容节点的每种内容类型分配数据库ID。因此,数据库ID与特定用户的特定连接的内容节点上的特定内容类型具有一对一关系。该数据库ID可在内容节点与内容路由器200通信时由该内容节点使用。例如,由内容节点生成的每条命令可以包括特定的数据库ID,用来标识用户、内容节点和内容类型,如下面参考图13所述。
针对特定内容节点(例如,用户设备B 513)的联系人内容类型的配置可能要求联系人包括电话号码。例如,一些移动电话仅允许联系人包括电话号码。或者,用户可能仅希望该用户设备上的具有电话号码的联系人。如果设置了这种标志,将不把没有电话号码的所有联系人路由到该内容节点。标志可以指示电话号码必须仅是数字的,不应当有其他ASCII字符。在这种情形中,可以如下所述使用仓库来保存ASCII填充的电话号码的未过滤过的版本,而内容路由器将准备包括仅数字电话号码的联系人。
针对特定内容节点的事件内容类型的配置513-2可以仅允许将在接下来两周(或者其他设置的将来持续时间)内发生的事件被路由到该内容节点。因此,如果一个内容节点将新时间发送给内容路由器,则内容路由器将确定该事件是否将在预定的将来时间内发生。如果标志和持续时间指示该时间落在参数之外,则内容路由器将不将该事件路由到该内容节点。另外,内容路由器可以包括如下所述的仓库,该仓库可以被周期性地查看来确定事件是否落入该持续时间内,并且是否可以被从一个内容节点取回并发送到该内容节点。另一个标志可以指示在将事件转发到该内容节点之前将从该事件删除所有的附件。另一个标志可以指示在将事件转发到该内容节点之前将从该事件删除所述的纪事。
类似地,针对特定内容节点的将要执行的任务内容类型的配置513-3可以仅允许期限在接下来两周内(或者其他设置的将来持续事件)的任务被路由到该内容节点。
针对电子邮件的配置513-4被示为包括在路由选择规则中使用的路由选择参数和在变换规则中使用的变换参数。路由选择规则可由处理逻辑250用来选择一组目的地内容节点。该组可以是空组,从而没有内容节点被选择来接收外出命令。或者,该组可以指示可以接收外出命令的一个或多个目的地内容节点。路由选择规则包括内容节点接收特定内容类型的能力,或者一个内容节点上所允许的元素的数目的上限。例如,路由选择规则可以是阻止去往一个设备的将增加未读或已读电子邮件的数目的任何命令。路由选择参数可以是指示内容节点是否正接受命令的标志指示。例如,如果内容节点的电子邮件邮箱已满,则可以设置标志来阻挡额外电子邮件的发送。路由选择规则可以指示可接受输入的最大大小。例如,如果内容节点是存储器有限的移动电话,则路由选择参数可以被用来阻挡比特定大小大(例如,比1K字节大)的所有电子邮件消息。如果连接速度低于预定速率或者如果连接类型未提供较高的传送速率,则路由选择参数可以指示内容路由器应当阻挡去往内容节点的所有命令。例如,路由选择参数可以指示诸如移动电话之类的内容节点将不接收具有附件的电子邮件消息,如果该移动电话未与有线连接相连接的话。
对于每个选出的目的地内容节点,处理逻辑250可以生成外出命令。处理逻辑250可以在处理变换规则时使用变换参数。变换规则可以被用来确定所生成的外出命令的内容。例如,变换参数可以是用于将命令截取到最大大小(例如,将大小限制为小于1K字节)的最大大小值。变换参数可以是用来确定是否应当从命令切除特定内容类型的标志。例如,标志可以用来指示内容节点仅接受作为图像文件的附件。变换参数可以是用来阻挡所有附件的标志。例如,标志可以用来指示内容节点不接受作为文档文件的附件。如果连接速度低于预定速率或者如果连接类型未提供较高的传送速率,变换参数可以指示内容路由器应当删除所有附件。例如,变换参数如果诸如移动电话之类的内容节点与有线连接相连接则可以指示该移动电话接受具有附件的电子邮件消息,如果该移动电话与无线连接相连接则指示可以剥离附件。变换参数可以是如果内容节点接近充满状态则用来阻挡所有附件的标志。例如,标志可以用来在内容节点接近充满(例如,90%满)时指示该内容节点不接受附件。内容节点可以从电子邮件剥离附件从而保留该内容节点上的可用空间。
针对特定内容节点的库项目内容类型的配置513-5可以仅允许图像被路由到该内容节点。另一个标志可以用来过滤音频文件。另外,另一个标志可以用来过滤电影文件。
图12A到图12E示出了根据本发明实施例可用来将内容路由器200用接口连接到用户设备310和用户帐户320的外部和内部逻辑。内容路由选择系统可以包括存储和转发逻辑210。内容路由选择系统还可以包括诸如协议逻辑260和/或协议接口逻辑之类的逻辑。另外,内容路由选择系统可以包括网关,例如,设备网关和/或服务器网关。或者,网关可以在内容路由选择系统外部。
图12A示出了内容路由器200,其被耦合到外部协议接口逻辑260,并且包括连接数据集配置500和耦合到协议接口260的命令接口的存储和转发逻辑210。协议接口逻辑260可以用来利用具有多种协议的接口将存储和转发逻辑210与各种内容节点类型(例如,用户设备310-1至310-3和用户帐户320-1至320-3)耦合。
在所示实施例中,协议接口逻辑260在内容节点310、320所使用的协议和在存储和转发逻辑210中处理的命令400之间进行翻译。具体而言,协议接口逻辑260接收基于用来与内容节点310-1至310-3和用户帐户320-1至320-3通信的特定内容节点协议的消息910-1至910-3和920-1至920-3。协议接口逻辑260将这些信号转换成用于存储和转发逻辑210的命令400。协议接口逻辑260还接收来自存储和转发逻辑210的命令400,并且将这些命令转换回针对特定内容节点310-1至310-3和320-1至320-3裁剪的910-1至910-3和920-1至920-3。
如上所述,内容路由器200耦合到协议接口逻辑260的命令接口。如下所述,内容路由器200耦合到协议接口逻辑260的消息接口。
图12B示出了包括存储和转发逻辑210和在消息801和命令400之间进行翻译的协议适配器268的内容路由器200。协议接口逻辑260包括设备网关264,设备网关264用于在来自用户设备的消息910和来自内容路由器200的消息之间进行翻译。设备网关264利用各种协议将内容路由器200与用户设备耦合。各种用户设备和协议可以包括运行SyncML协议或者基于SMS的协议的移动电话、运行二进制协议的基于JavaTM的客户机设备,运行HTTP协议的基于家用个人计算机的客户机等。
设备网关264执行不同用户设备类型所使用的各种协议和内容路由器200所使用的通用协议(例如,XML-RPC(可扩展标记语言-远程过程调用)协议)之间的翻译的功能。通用协议允许在也使用该通用协议的额外的网关被耦合到内容路由器200时提供容易的可扩展性。此外,使用通用协议将设备协议转换与协议适配器268去耦合,并且与存储和转发逻辑210去耦合。
除了翻译协议之外,设备网关264将服务器建模为从充当客户机的用户设备310来看支持客户机-服务器关系。设备网关264还将客户机建模为从充当服务器的存储和转发逻辑210来看指示客户机-服务器关系。
在替换实施例中,协议适配器268是与内容路由器200分离的。协议适配器268可以是协议接口逻辑260的一部分或者可以是孤立的。
一些用户设备310可以包括不考虑内容路由器200的用户接口应用。对于这些用户设备310,用户设备310可以包括可了解内容路由器200的数据路由选择驱动器,并且该数据路由选择驱动器用接口与用户接口应用连接。数据路由选择驱动器使用可用的协议来与内容路由器200通信,从而将用户应用与内容路由器200耦合。通过该可用协议接收到的命令被翻译成用于该用户应用的指令。另外,应用中发生的改变作为通过该可用协议发送的消息被传输到内容路由器200。
一些用户设备310可以包括数据路由选择驱动器和可了解内容路由器200的应用二者。其他用户设备310,例如SyncML使能的移动电话,可能因为这种设备内在的能力而不需要可了解内容路由器200的数据路由选择驱动器。例如,SyncML使能的移动电话内在地包括内容路由器200可调用的空中SyncML同步例程。因此,内容路由器200可以将改变推向SyncML使能的移动电话,而不要求在用户设备310上存在可了解内容路由器200的软件。
图12C示出了包括存储和转发逻辑210和在消息801和命令400之间进行翻译的协议适配器268的内容路由器200。协议接口逻辑260包括服务器网关266,服务器网关266用于在来自用户帐户的消息920和具有在内容路由器200中使用的通用协议的消息之间进行翻译。服务器网关266利用各种协议将内容路由器200与用户帐户耦合。
服务器网关266允许根据各种服务器协议利用用户帐户通信访问内容路由器200,所述服务器协议例如是HTTP XML、J DAV、Web DAV交换、IMAP、POP3等。服务器可以包括PIM服务器(例如,Yahoo!
Figure A20068003372600451
服务器)、照片服务器(例如,Yahoo!
Figure A20068003372600452
服务器)、电子邮件服务器(例如,PacBell电子邮件服务器)等。例如,内容节点320可以是利用IMAP协议与内容路由器200通信的电子邮件服务器上的用户帐户。
与设备网关264类似,服务器网关266将客户机建模为存储和转发逻辑210。与建模客户机和服务器之间的中间设备的设备网关264不同,服务器网关266建模服务器之间的中间设备。一般来说,在客户机-服务器关系中两个服务器不通信。但是,服务器网关266允许帐户服务器与存储和转发逻辑210服务器通信,这二者在客户机-服务器关系中都充当服务器。为了辅助实现这种通信,服务器网关266将客户机建模为从用户帐户320来看支持客户机-服务器关系,并且建模从存储和转发逻辑210来看的客户机。
如上所述,协议接口逻辑260位于内容路由器200外部。如下所述,内容路由器200包括协议接口逻辑260。
图12D示出了包含存储和转发逻辑210、协议适配器268、协议接口逻辑260的内容路由器200,其中协议接口逻辑260包括设备网关264和服务器网关266。如上所述,设备网关264和服务器网关266在设备和服务器所使用的协议与诸如XML-RPC之类的通用协议之间进行翻译。协议适配器268在通用协议与用来与存储和转发逻辑210通信的命令400之间进行翻译。在存储和转发逻辑210和协议适配器268之间发送的命令可以采用请求-响应模式,例如,在包括通过因特网的ORB间远程方法调用协议(RMI-IIOP)技术接口的JavaTM平台中。Java RMA平台允许在Java使能的内容节点上运行的对象调用在基于Java的存储和转发逻辑210中运行的对象上的方法。此外,内容路由器200可以利用一个或多个路由选择参数和/或一个或多个变换参数对设备网关264和/或服务器网关266进行配置,使得网关可以对内容节点的命令执行路由选择和变换。
设备网关264被示为将协议适配器268耦合到运行SyncML协议310-1的移动电话310-1和利用二进制协议910-2工作的基于JavaTM的客户机设备310-2。服务器网关266被示为分别利用协议920-1、920-2和920-3将协议适配器268耦合到PIM服务器320-1、照片服务器320-2、电子邮件服务器320-3。
诸如XML-RPC之类的通用协议允许在多种操作系统上和在不同环境中运行的应用利用HTTP作为传输层并利用XML作为编码方案执行远程过程调用。XML-RPC协议允许将复杂的数据结构从在设备网关264、服务器网关266、XML-RPC使能的设备或者XML-RPC使能的服务器上运行的应用传输到协议适配器268和存储和转发逻辑210。协议适配器268或者存储和转发逻辑210可以对接收到的数据结构进行处理并将结果返回到应用。
具有利用通用协议通信的能力的内容节点可以绕过网关,从而可以直接与协议适配器268通信。例如,运行客户机应用的Symbian设备或者WinCE、Win32或者家用个人计算机(PC)310-3可以直接与协议适配器268通信,并且避免使用设备网关264,因为PC 310-3已采用了通用协议。另外,智能电话310-4也可以利用通用协议通信从而避免使用设备网关264。类似地,用户帐户可以使用通用协议从而绕过服务器网关266来与协议适配器268通信。如图所示,Yahoo!
Figure A20068003372600471
服务器320-4使用通用协议从而避免使用服务器网关266。在一些实施例中,内容节点直接与命令400通信(未示出),从而可以避免使用协议适配器268。
通过使用通用协议,协议适配器268可以类似地对待来自设备网关264的消息801、来自服务器网关266的消息803、来自用户设备310-3、310-4的消息810-3、810-4和来自用户帐户320-4的消息820-4,从而简化了协议适配器268的设计和实现方式。因此,可以类似地对待通用协议形式的到来消息,而不用考虑到协议适配器268的输入路径。结果,存储和转发逻辑210可以类似地对待来自每个内容节点的命令。
内容路由器200也可以包括从存储和转发逻辑210向设备和/或服务器网关264、266发送的通知信号(虚线),如图12D所示。如果外出命令在外出队列241中等待,则存储和转发逻辑210可以周期性地向适当的网关264、266发送通知信号(虚线)。可以利用telnet、HTTP、定制API等从存储和转发逻辑210向网关264、266发送通知。网关264、266然后可以发起请求,请求来自存储和转发逻辑210的外出命令或命令400。网关264、266可以接收包括来自外出队列241的命令的响应。
在一些实施例中,在网关264、266接收到通知信号并且取回了外出命令后,网关准备包含该命令的外出通知消息。如果外出命令大小相对较小,则网关264、266可以将该命令包括在通知中。
根据一些实施例,存储和转发逻辑210确定可以向内容节点300发送通知,来向内容节点300告知外出队列可能包含外出命令。存储和转发逻辑210生成去往网关264、266的通知信号。网关264、266从存储和转发逻辑210接收该通知信号。该通知信号可以指示内容节点300的外出队列241中的外出命令的可用性。响应于接收到该通知信号,网关264、266例如可以通过到协议适配器268的呼叫来请求外出命令。协议适配器268从存储和转发逻辑210取回该命令,将其提供给网关264、266。网关264、266接收包含该外出命令的响应。网关264、266准备包含该外出命令的外出通知。网关264、266可以将该外出命令编码成致密的二进制序列。网关264、266然后将外出通知发送给内容节点300,内容节点300可以是诸如移动电话之类的用户设备310或者诸如电子邮件帐户之类的用户帐户320。例如,设备网关264可以通过SMS网关将外出通知发送给移动电话。网关264、266可以经由协议适配器268将对外出通知的确认发送给存储和转发逻辑210。
图12E示出了根据本发明实施例的多服务器内容路由选择系统。内容路由器200作为第一服务器工作。内容路由器200包括存储和转发逻辑210和协议适配器268,它们可以利用基于命令的交换(例如,利用RMI-IIOP)在内部通信,利用通用协议(例如,XML-RPC)在外部通信。内容路由器200还可以包括连接数据集配置500和/或仓库600和/或在内容路由器200内部或外部的文件中继服务器700。此外,命令存储器220、连接数据集配置500、仓库600和文件中继服务器700每个都可以在分离的存储器中形成、在通用存储器中被组合、或者以分离和组合存储器的组合的形式形成。例如,命令存储器220、连接数据集配置500、仓库600和文件中继服务器700可以每个都在分离的数据库中形成,例如,分离的关系数据库,或者两个或更多个可以被组合在组合的数据库中。
内容路由选择系统还可以包括用来与内容节点通信的服务器。设备网关(服务器)264利用设备专用协议910来用接口与用户设备310连接。服务器网关(服务器)266利用服务器专用协议920来用接口与用户帐户320连接。
本发明的一些实施例包括或者被耦合到文件中继服务器700。文件中继服务器700充当文件中继存储器,并且可以被耦合到服务器和/或内容路由器200(图中未示出直接连接)中的一个或多个,并且/或者被耦合到内容节点中的一个或多个。
文件中继服务器700辅助实现具有可分离片断的命令在多个内容节点之间的传输,包括在命令被保存到存储和转发逻辑的命令存储器之前将片断分开。文件中继服务器700可以向内容节点310、320、服务器264、266或内容路由器200提供输入(协议适配器268或存储和转发逻辑210),用来存储一个或多个文件,以使得在到来命令被存储到存储和转发逻辑210的命令存储器220中之前从到来命令删除文件。通过删除可分离的片断,尤其是较大的文件,命令存储器能够保存大量的命令,并且可以更轻快地处理命令。文件中继服务器700还可以提供机制用来将文件路由到防火墙后的内容节点和从防火墙后的节点路由文件。由防火墙隔开的两个内容节点300可能不允许访问来自另一个的内容(例如,文件)和元数据。但是,如果两个内容节点300都能够通过服务器264、266、内容路由器200、协议适配器268或者存储和转发逻辑210直接或间接将内容和/或元数据提供给文件中继服务器700,则多个内容节点300实际上可以交换内容和/或元数据。另外,在一些实施例中,文件在被保存到文件中继服务器700之前,被内容节点310、320、服务器264、266、内容路由器200、协议适配器268或存储和转发逻辑210加密。在一些实施例中,实现了安全机制使得一个内容节点提供的文件仅对连接到同一用户的其他内容节点可用,例如,如针对该用户在连接数据集配置中所配置的。安全机制可以包括对请求来自文件中继服务器700的文件的每个请求进行认证,以及对接收到的和递送的文件进行加密。
多服务器内容路由选择系统可以使用文件中继服务器700来向内容节点提供用于在对等连接405(如图5所示)不期望或者不可能时接收附件的路径。对等连接450在一个或者两个内容节点都在阻挡对等连接的防火墙后时可能不可用。另外,对等连接450在每个内容节点没有都同时连接到网络10时也可能不可用。文件中继服务器700可以提供用于命令的附件或其他片断的临时仓库。
文件中继服务器700可以从存储和转发逻辑210卸载处理。例如,源内容节点、设备网关或者协议适配器可以从到来命令或者消息切除可分开的片断,例如,从电子邮件切除大文件。对在文件中继服务器700上的存储的引用可以放置到到来命令中替换删除的片断。内容路由器200和连接的内容节点300可以以与对源内容节点300上存在的文件的引用类似的方式对文件中继服务器700上存在的文件的引用进行处理。所产生的经删节到来命令然后可以被发送向存储和转发逻辑210,并且通过删除较大的片断或者用对较大片断的引用替换从而可以显著变小。在后续时刻,与经删节的到来命令相对应的外出命令可以被从存储和转发逻辑210传递出。协议适配器、设备网关或者目的地内容节点可以检测到引用,并且用从文件中继服务器700取回的片断替换该引用。这样,命令存储器220可以不再承担保存大文件的任务。
在第一场景中,使用孤立的文件中继服务器700。首先,用户的企业电子邮件帐户经由因特网接收到包括附件的新电子邮件。用户帐户将改变(即,新电子邮件的到达)传输向内容路由器200。存储和转发逻辑210接收到包含该电子邮件的到来命令,但是,内容节点300已用标识附件在企业服务器上的位置的元数据链接替换了该电子邮件中的附件。如果电子邮件帐户在防火墙之后,则其他连接的内容节点可能不能访问对附件的元数据链接。在该情形中,存储和转发逻辑210可以将元数据链接转发给协议接口逻辑260,并且可以指示协议接口逻辑260基于该元数据链接取回该附件。协议接口逻辑260将取回的附件导向文件中继服务器700。在响应于到来命令生成外出命令时,存储和转发逻辑210用定位文件中继服务器700上的附件的链接替换标识作为该附件的源的企业服务器的元数据链接。接收到外出命令的内容节点将查找文件中继服务器700而不是不可访问的服务器。
在第二场景中,公共电子邮件服务器被用作文件中继服务器700。如上所述,用户的企业电子邮件帐户经由因特网接收到包括附件的新电子邮件。用户帐户将新电子邮件的到达连同对附件的引用而不是附件自身传输向存储和转发逻辑210。存储和转发逻辑210指示协议接口逻辑260基于该引用取回该附件。在该场景中,协议接口逻辑260将附件导向去往公共电子邮件服务器的命令。存储和转发逻辑210然后生成去往每个其他连接的内容节点的命令,该命令具有将用户导向公共电子邮件服务器而不是企业电子邮件服务器的元数据链接。这样,内容节点可以访问源自该内容节点不能访问的电子邮件服务器的附件。
在另一个场景中,第一内容节点将包括嵌入的附件的到来命令发送向内容路由器200。网关264或266接收来自该命令的附件,并且将该附件保存到文件中继服务器700。网关可以删除所有附件或者特定的附件类型。网关可以基于一个或多个配置参数来基于判决删除一个或多个附件,其中配置参数可以是对内容节点、内容节点类型和/或用户的连接数据集配置专用的。网关可以用引用替换附件,引用允许网关或者内容节点自身从文件中继服务器700取回附件。或者,协议适配器268或存储和转发逻辑210可以交换命令中的附件和引用,并且将附件存储到文件中继服务器700和/或从其取回附件。
在一些实施例中,内容节点310或320用接口与文件中继服务器700连接。例如,如果用户帐户320从因特网接收到具有附加的文件的电子邮件,则其可以将该电子邮件作为用来添加包含文件的新电子邮件的命令转发到内容路由器200。或者,用户帐户320可以然后分离地将文件转发到文件中继服务器700。用户帐户320然后生成并发送具有电子邮件的命令,该电子邮件的附件已被用对文件中继服务器700上的文件的引用所替换。当目的地内容节点(例如,用户设备310)接收到具有引用的外出命令时,内容节点310可以自动地从文件中继服务器700取回文件,并且用所取回的文件替换该引用来恢复原始电子邮件。或者,用户设备310可以允许用户按照到文件中继服务器700的引用手动取回文件。
在一些实施例中,网关264、266用接口与文件中继服务器700连接。例如,如果网关264、266从源内容节点310或320接收到用于添加包含附加的文件的新电子邮件的到来命令,则接收到该到来命令的网关264、266可以将文件转发到文件中继服务器700,然后用对文件中继服务器700上的该文件的引用替代命令中的该文件。稍后,在向目的地内容节点发送包含引用的外出命令时,从内容路由器200接收命令的服务器264、266可以通过用从文件中继服务器700提取出的文件替换引用从而恢复电子邮件。
在一些实施例中,协议适配器268用接口(未示出)与仓库600连接。例如,如果协议适配器268从源内容节点310或320接收到用于添加包含文件的新电子邮件的到来命令,则协议适配器268可以将文件转发到文件中继服务器700。协议适配器268然后用对文件中继服务器700上的该文件的引用替换该附加的文件。当目的地内容节点310、320请求包含引用的外出命令时,协议适配器268可以用从文件中继服务器700提取出的文件替换该引用。
在一些实施例中,存储和转发逻辑210用接口(未示出)与文件中继服务器700连接。例如,如果存储和转发逻辑210从源内容节点310或320接收到用于添加包含文件的新电子邮件的到来命令,则存储和转发逻辑210可以将文件转发到文件中继服务器700。存储和转发逻辑210然后用对文件中继服务器700上的该文件的引用替换命令中的该文件。在存储和转发逻辑210接收包含引用的外出命令时,其可以用从文件中继服务器700提取出的文件替换引用。
图13和14A至14I示出了根据本发明实施例的各种命令的结构。
图13示出了根据本发明实施例与主键和数据库标识符相关联的命令。术语“命令”包括下述改变的通知和消息(不一定采用“命令”格式):通知和消息的接收者(例如,内容节点)可以相应地对这样的改变采取行动。在一些实施例中,命令包括主键,其中主键是由处理逻辑250分配给每条到来命令的单调增加的值。对于与一个用户相关联的所有命令,主键是唯一的。对于与所有用户相关联的所有命令,主键也可以是唯一的。在一些实施例中,时间戳可以被用作主键。
命令也可以被与数据库标识符相关联。数据库标识符可以被用作包括来自多个用户和多个内容节点的命令的数据库中的索引或键。数据库标识符可以是数据库为添加到该数据库的每个内容节点和内容类型分配的顺序增加的数字。因此,数据库标识符可以间接或者直接地顺序标识特定的用户、特定的内容节点或内容节点类型、以及特定的内容类型。内容节点标识符可以包括标识特定用户设备或用户帐户的标识符。内容类型可以包括对Contact项、Event项、ToDo项、Emial项或Library项的指示。Library项可以用来指示ConnectedPhoto元数据、ConnectedDocuments元数据或ConnectedMusic元数据之一。
命令也可以被与队列标识符相关联,队列标识符指示可以认为命令存在于到来队列231、到来转运队列232、外出队列241还是外出转运队列242中。命令也可以作为具有关联的属性的条目被存储到数据库中,例如,SQL数据库,其中属性包括主键、数据库标识符和队列标识符。
命令可以包含命令类型和有效负载。有效负载可以包括内容自身。或者,有效负载可以包括元数据,或者可以包括内容和元数据二者。元数据提供关于内容的质量、条件和其他特征的信息。元数据可以包括例如下述信息:对内容的描述、指明对内容的改变的指示和/或对内容的源的引用或链接。
命令类型指示所请求或采取的动作。在一些实施例中,命令类型指示下列动作之一,所述动作包括:添加、更新、删除、获取、获取-结果、查询、查询-结果、查询-结束和清空。对于到来命令,命令类型指示已发生的改变。例如,接收到的添加命令类型的命令意味着内容已被添加到内容节点。对于外出命令,命令类型指示下述改变:内容路由器请求在内容节点上发生,以便使该内容节点与其中已发生了改变的内容节点同步的改变。例如,添加命令类型意味着在有效负载中指定的内容应当被添加到内容节点。
具有添加命令类型的命令指示将内容记录添加到内容节点的动作。添加命令类型的有效负载可以包括内容自身、关于内容的元数据和/或对内容的引用。
具有删除命令类型的命令指示从内容节点删除内容记录的动作。删除命令类型的有效负载可以包括指示哪些内容和/或关于内容的元数据应被删除的元数据。
具有获取命令类型的命令指示向内容节点请求获取内容记录的请求。获取命令类型的有效负载可以包括指示哪些内容和/或关于内容的元数据要被获取的元数据。具有获取-结果命令类型的命令是响应于获取命令类型而发送的命令。获取-结果命令类型的有效负载可以包括内容自身、关于内容的元数据和/或对内容的引用。
具有查询命令类型的命令指示向内容节点请求某一类别的内容的请求。查询命令类型的有效负载指示被请求的内容的类别。查询命令类型可以被用来请求内容节点上的所有内容,或者具有特定特征的所有内容。具有查询-结果命令类型的命令指示对查询命令类型的响应。查询-结果命令类型的有效负载包括所请求的内容或者关于内容的元数据。内容节点300可以在多个批次中发送查询-结果命令;因此,内容路由器200可能需要给出指示查询结果流已结束的指示。对查询命令类型的最终响应在具有查询-结束命令类型的命令中指示出。查询-结束命令类型的有效负载可以是具有特定特征的最终内容,或者为空从而指示空集合响应。如果没有找到结果,则查询命令类型产生指示空响应的查询-结束命令类型。如果找多多于一个结果,则查询命令类型产生一个或多个查询-结果命令类型,然后产生包含最后匹配的查询-结束命令类型。
具有清空命令类型的命令指示内容节点删除有效负载所指示的某一类别的内容。具有刷新命令类型的命令指示内容路由器200恢复发送内容节点。取决于内容节点的能力和连接数据集配置中的用户配置,可以通过向内容节点300发送清空命令来清空其自己的内容或者发送查询命令来导入其所有数据来发起恢复。在任一情形中,内容节点300可以从其他内容节点中的个或多个接收合并的内容和元数据,使得内容节点300可以与连接的内容节点同步。
命令还可以包括具有依赖于命令类型和数据类型的格式的数据有效负载。数据有效负载可以包含改变后的记录,或者可以包含元数据,例如,对位于数据源或文件中继服务器处的改变后的记录的链接或引用。
图14A示出了应当被添加到内容节点的新电子邮件。数据有效负载包括用来唯一地标识该邮件的电子邮件ID、头部、消息的前2K字节和对原始消息的链接。图14B示出了向内容节点指示电子邮件已读的命令。图14C示出了删除特定电子邮件的命令。
图14D示出了添加新音频文件的命令。图14E示出了删除音频文件命令。图14F示出了添加新安排的命令。图14G示出了在命令包含记录的情况下添加新联系人的命令。图14H示出了在命令还包含记录的情况下更新新联系人的命令。图14I示出了添加照片图像的命令。照片自身未被包括在该命令中,但是可以包括对原始照片图像的引用。
图15A到15C示出了显示出根据本发明实施例用户设备310和存储和转发逻辑210之间的信令的序列图。诸如具有无线能力的移动PC之类的用户设备310可以经受对该用户设备310上的内容和元数据的一系列改变。在用户设备310上运行的应用可以周期性地准备指示出在该期间发生的改变的有效负载,并且可以在其恢复无线通信时发送命令。利用对用户设备310可用的协议,应用准备REQUEST消息,并且放入包含一列命令的有效负载。例如,用户可能已接收到新SMS消息AAA。因此,应用可以生成指示连接的内容节点可以添加新电子邮件AAA的命令。另外,用户可能已从日历中删除了事件BBB并且利用工作电话号码更新了联系人CCC。在一些实施例中,一批命令被限制为包括仅对通用命令类型工作的命令。例如,一批命令可以仅包括添加、删除或修改电子邮件消息的命令。
本领域技术人员将认识到,用户设备310可以使用多种协议来与设备网关264通信。因此,在这里示出的REQUEST-RESPONSE协议仅是一种可能。根据本发明实施例,每个REQUEST-RESPONSE是命令的一个原子对,其中这两个命令必需都发生,否则任个都不能认为已成功。与要求多个REQUEST-RESPONSE对的其他协议不同,根据本发明的每个REQUEST-RESPONSE对可以在执行任务时进行。对于无线网络,命令对的较长序列更可能遭袭(incurring)并被中断。因此,单个REQUEST-RESPONSE原子对提供了最优的可能性和吞吐量。
用户设备发送REQUEST来将其有效负载中包含的命令推向设备网关264,设备网关建模对用户设备310的服务器。在建模服务器时,设备网关264作出反应并且对其作出响应。设备网关264从设备协议翻译成内部使用的协议,然后向协议适配器268发送REQUEST,其指示放入了在有效负载中指示的命令。或者,如果使用户设备310能够利用内部协议通信,则可以绕过设备网关264。
协议适配器268将REQUEST的有效负载转换成命令(例如,添加、删除和更新)序列,并且将这些命令发送(推)向存储和转发逻辑210,以由存储和转发逻辑210进行处理。存储和转发逻辑210可以向每条命令分配内部使用的单调增大的主键(例如,0010021、0010022和0010023)。此外,对于每条命令,存储和转发逻辑210可以确定数据库ID,数据库ID唯一地标识用户、特定的内容节点和内容类型。存储和转发逻辑210还可以为每条命令设置队列ID来指示该命令是未决执行或者成功执行但未决确认的到来或外出命令。存储和转发逻辑210可以对与相同数据库ID相关联的每条命令执行冲突检查。如果没有检测到冲突,则命令可以与所分配的属性一起被存储到数据库中。如果检测到冲突,则存储和转发逻辑210通过删除数据库中存在的命令、丢弃冲突的到来命令和/或将到来命令与现存命令汇聚来解决冲突。
响应于成功处理并且录入到到来队列中,存储和转发逻辑210将指示成功的指示返回给协议适配器268。协议适配器268又用RESPONSE对来自用户设备310的REQUEST作出响应,其中该RESPONSE指示成功地转发了在REQUEST中接收到的所有命令。类似地,对来自用户设备310的REQUEST的成功处理由指示成功的RESPONSE作出了确认,如图所示。接收到指示成功的RESPONSE的用户设备310可以丢弃早先发送的命令的有效负载。如果用户设备310未能接收到这种确认,则其可以在后续REQUEST中重发命令的有效负载。
根据本发明的实施例,用户设备310利用单次REQUEST-RESPONSE交换完成与内容路由器200的交易,如图所示。单次REQUEST-RESPONSE交换减少了如果协议要求多次REQUEST-RESPONSE交换来完成交易将会发生的错误地中断会话的机会。每个请求和响应对被涉及来与多对协议不同地进行。在多对协议中,如果发生故障,则正在进行的中间流被丢失,并且必须从头重启整个会话。因此,根据本发明的实施例,每个成功的单次REQUEST-RESPONSE交换都朝向完成使内容节点同步的任务前进,并且任何故障仅影响单次REQUEST-RESPONSE交换。
图15B示出了用户设备在接收到通知后向内容路由器200请求(拉)命令时的序列。一旦存储和转发逻辑210生成了新外出命令并且将其存储到外出队列241中,存储和转发逻辑210就可以生成通知信号来指示设备网关264向用户设备310发送通知。通知可以包括或者可以不包括对内容类型的指示。设备网关264可以收集去往内容节点的一系列通知,并且可以例如利用HTTP分组(如果可用的话)或者SMS分组周期性地将所收集的通知发送给用户设备310。如果用户设备310利用免费信道或者成本可忽略不计的信道连接到网络10,例如,如果用户设备310接入有线因特网连接,则可以在几乎没有延迟的情况下发送通知。如果用户设备310利用便宜的信道(例如,利用GPRS连接)连接,则可以按照频繁的间隔收集并发送通知。在一些实施例中,内容路由选择系统保持对标志进行更新来指示当前连接类型,从而在确定更新内容节点的频率时提供该内容路由选择系统可以使用的变量。
在接收到通知之后,用户设备310可以开始单次REQUEST-RESPONSE会话来获取未决命令的内容类型。用户设备310向设备网关264发送REQUEST来获取未决命令的内容类型。设备网关264用RESPONSE来答复REQUEST,其中该RESPONSE包括对未决命令的内容类型的指示。
在接收到内容类型后,用户设备310可以开始单次REQUEST-RESPONSE会话来获取单个命令或者一批未决命令。用户设备310向设备网关264发送REQUEST来获取未决命令。设备网关264将该REQUEST从用户设备310所使用的外部协议转换成通用内部协议。设备网关264将通用协议的REQUEST发送给协议适配器268。协议适配器268将该REQUEST转换成用于从外出队列241获取命令的调用。存储和转发逻辑210返回包含来自外出队列241的一批命令的有效负载。或者,存储和转发逻辑210可以一次返回单条命令,协议适配器268可以将命令组合来形成一批命令。协议适配器268利用RESPONSE答复从设备网关264接收到的REQUEST,其中RESPONSE包含将由用户设备310执行的命令的有效负载。或者,协议适配器268可以在每个响应中利用每次一条命令作出答复。设备网关264转发RESPONSE,作为对原始从用户设备310接收到的REQUEST的RESPONSE。
有时在初次REQUEST-RESPONSE交换之后,用户设备开始第二次REQUEST-RESPONSE交换,来确认对命令的成功处理。设备网关264将该确认转发到协议适配器268,协议适配器268调用来自存储和转发逻辑210中的转运队列242的删除命令。存储和转发逻辑210返回成功。协议适配器268利用确认该成功的RESPONSE答复REQUEST。设备网关264然后利用确认该成功的RESPONSE答复来自用户设备310的REQUEST。
图15C示出了在内容路由器200将通知内的命令推向用户设备310时的事件序列。在一些实施例中,存储和转发逻辑210在通知中包括低优先级和/或相对较小的有效负载。例如,电子邮件已被阅读这一事实可以被认为是低优先级并且字节数较小的事件。这种低优先级事件可以利用通知层传输,而无需接收一般在REQUEST-RESPONSE交换中所要求的确认。例如,存储和转发逻辑210可以发送这样的有效负载,该有效负载包含表明内容GGG以被修改的标志。命令GGG可以代表用来指示电子邮件已从未读状态被改变成已读状态的电子邮件标志。有效负载还可以包含用来标识特定电子邮件的标识符。一旦接收到通知信号,设备网关264、协议适配器268和存储和转发逻辑210之间的通信将如上参考图15B所述地工作。最终,设备网关264将包括该命令的通知发送给用户设备310。
图16A到16D示出了显示出根据本发明实施例用户帐户320和存储和转发逻辑210之间的信令的序列图。
图16A示出了内容路由器200从用户帐户320接收(获取)命令时的序列。服务器网关266可以周期性地利用单次REQUEST-RESPONSE交换票选用户帐户320。如果不存在改变,则用户帐户320可以发送指示该情况的RESPONSE。如果存在改变,则用户帐户320可以发送指示该改变的RESPONSE(未示出)。或者,一些用户帐户320可以发起REQUEST-RESPONSE交换来指示存在改变。服务器网关266利用包含确认的RESPONSE来确认接收到REQUEST。在任一情形中,一旦服务器网关266了解到存在一个或多个改变,则服务器网关266就发送请求改变的REQUEST。用户帐户利用具有包含一列命令的有效负载的RESPONSE作出答复。
服务器网关266从服务器协议翻译成内部通用的协议,然后向协议适配器268发送REQUEST,该REQUEST指示放入了在有效负载中所指示的命令。或者,如果使用户帐户320能够利用通用协议通信,则可以绕过服务器网关266。
协议适配器268将REQUEST的有效负载转换成一系列命令(例如,添加、删除和更新),并且将这些命令提供给存储和转发逻辑210。存储和转发逻辑210对每条命令进行处理。存储和转发逻辑210可以向每条命令指派一个单调增大的主键(例如,0030021、0030022和0030023)。此外,对于每条命令,存储和转发逻辑210可以确定数据库ID,数据库ID可以唯一地标识用户、特定的内容节点和内容类型。存储和转发逻辑210还可以针对每条命令设置队列ID来指示该命令处于到来队列状态中。存储和转发逻辑210可以对与同一数据库ID相关联的每条命令执行冲突检测。如果没检测到冲突,则可以将命令与所指派的属性一起存储到数据库中。如果检测到冲突,则存储和转发逻辑210通过删除数据库中存在的命令、丢弃冲突的到来命令和/或将到来命令与现存命令汇聚来解决冲突。
响应于成功处理并且录入到到来队列中,存储和转发逻辑210将指示成功的指示返回给协议适配器268。协议适配器268又用指示成功的RESPONSE对来自服务器网关266的REQUEST作出响应。如果任何REQUEST-RESPONSE交换失败,将不需要重复先前的REQUEST-RESPONSE交换。在一些实施例中,服务器网关266与用户帐户320交换REQUEST-RESPONSE对(未示出)来向用户帐户320告知其可能丢弃了先前传输的命令。
图16B示出了在内容路由器200将命令推(放)向用户帐户320时的序列。当存储和转发逻辑210在其针对用户帐户320的外出队列中有命令时,其可以向服务器网关266发送通知信号。在一些实施例中,该通知信号包括内容类型。服务器网关266捕获通知信号,并且在发送REQUEST来获取未决的外出命令时建模客户机。在建模客户机时,服务器网关266代表用户帐户发出对外出命令的请求。协议适配器268执行对存储和转发逻辑210的获取命令调用,存储和转发逻辑210返回命令有效负载。例如,命令有效负载可以包括添加新电子邮件DDD、删除联系人EEE和修改多媒体内容的标题FFF。协议适配器268可以向每条命令指派索引,并且将命令包括在响应于先前接收到的REQUEST的RESPONSE中。服务器网关266然后建模客户机,并且发起REQUEST来将命令推向用户帐户320。用户帐户320利用RESPONSE确认接收到REQUEST和命令。服务器网关266然后发起REQUEST来确认用户帐户320接收到命令。协议适配器将确认转换成对存储和转发逻辑210的删除命令调用,来从转运队列中删除命令。存储和转发逻辑210返回成功,然后协议适配器268利用RESPONSE确认从服务器网关266接收到的RESPONSE。
图16C示出了在服务器网关266将通知消息中的命令推向用户帐户320时的事件序列。在一些实施例中,存储和转发逻辑210可以在通知中包括低优先级和/或相对较小的有效负载。例如,电子邮件已被阅读这一事实可以被认为是低优先级并且字节数较小的事件。这种低优先级事件可以利用通知层传输,而无需接收一般在REQUEST-RESPONSE交换中所要求的确认。在一些实施例中,通知信号包括内容类型。响应于接收到初始通知信号,服务器网关266可以在发送REQUEST来获取未决外出命令时建模客户机。在响应中,协议适配器268执行对存储和转发逻辑210的获取命令调用,存储和转发逻辑210返回命令。例如,命令GGG可以包括用来修改电子邮件的读状态的指令。协议适配器268可以向命令指派索引,并且将命令包括在响应于先前接收到的REQUEST的RESPONSE中。服务器网关266将通知信号中的命令推向到来存储器230。在发送通知信号之前或之后,服务器网关266可以发起REQUEST来确认用户帐户320接收到命令。协议适配器将确认转换成对存储和转发逻辑210的删除命令调用来从转运队列删除命令。存储和转发逻辑210返回成功,然后协议适配器268利用RESPONSE确认从服务器网关266接收到的RESPONSE。
图16D示出了本发明的一个实施例,该实施例具有位于防火墙之后的服务器网关266,以及具有用户帐户320的帐户服务器。如果服务器网关266在防火墙之后,则协议适配器268可能不能发起REQUEST-RESPONSE交换,并且来自协议适配器268的通知将被阻挡。在该情形中,服务器网关266可以发起每次REQUEST-RESPONSE交换。
不是接收通知来确定内容路由器200在其外出队列241中存在命令,而是服务器网关266可以通过发起REQUEST-RESPONSE交换来请求通知信息。服务器网关266可以通过向协议适配器268发送指示已请求了为外出队列241中的外出命令的票选的REQUEST,来周期性地为外出命令票选。在响应中,协议适配器268请求存储和转发逻辑210检查去往用户帐户320的任何外出命令。存储和转发逻辑210返回指示在外出队列241中是否存在任何命令的指示。协议适配器268可以利用包括所返回的指示的RESPONSE对先前的REQUEST作出响应,其中所返回的指示指明在外出队列241中是否存在任何命令。如果在外出队列241中存在命令,则服务器网关266可以发起REQUEST来获取外出命令,如图16B所示(利用REQUEST-RESPONSE交换)或如图16C所示(在通知信号中)。另外,如果用户帐户320向服务器网关266传输了命令则服务器网关266可以针对改变票选用户帐户320,服务器网关266可以发起REQUEST来将命令推向到来队列231,如图15A所示。
尽管针对特定实施例和说明性附图描述了本发明,但是本领域技术人员将认识到本发明不限于所述实施例或附图。
将意识到,为了清楚起见参考不同的功能单元描述了上面的说明。但是,清楚的是,在不脱离本发明的情况下,可以在不同的功能单元之间适当地分配功能。因此,对特定功能单元的引用仅被看作对用于提供所述功能的适当装置的引用,而不是说明严格的逻辑或物理结构或组织。
可以以任何适当的形式实现本发明,包括硬件、软件、固件或它们的任意组合。本发明的不同方面至少部分可以实现为在一个或多个数据处理器和/或数字信号处理器上运行的计算机软件或固件。本发明可以被实现在计算机程序产品中,例如,机器可读介质(例如,存储卡、ROM、RAM、PROM、EPROM、闪存、磁或光盘、CD-ROM、DVD等)。可以以任何适当的方式物理地、在功能上或者逻辑地实现本发明实施例的元件或组件。实际上,功能可以在单个单元、多个单元中实现,或者作为其他功能单元的一部分实现。这样,本发明可以在单个单元中实现,或者可以物理地并且在功能上分配在不同的单元和处理器之间。
尽管已结合一些实施例描述了本发明,但是不是要将本发明限于所述的特定形式。相反,本发明的范围仅由权利要求书限定。另外,尽管可能看起来结合特定实施例描述了一个特征,但是本领域技术人员将认识到可以根据本发明对所述实施例的各个特征进行组合。此外,结合一个实施例描述的本发明的方面可以单独作为一个发明。
此外,将意识到,在不脱离本发明的精神和范围的情况下,本领域技术人员可以进行各种修改和改变。本发明不由前述说明性细节限定,而是根据权利要求书限定。

Claims (82)

1.一种内容路由选择系统,用于在多个内容节点和命令存储器之间路由对信息的改变,该内容路由选择系统包括:
存储和转发逻辑,包括:
处理逻辑,用于:
处理来自第一内容节点的到来命令;
基于所述到来命令的内容类型和一个或多个路由选择参数,选择一组目的地内容节点;以及
生成去往所选择的目的地内容节点中的每个的外出命令;以及
耦合到所述处理逻辑的命令存储器,用于保存所述到来命令和一组所述外出命令;以及
耦合到所述处理逻辑的连接数据集配置,用于保存所述一个或多个路由选择参数。
2.如权利要求1所述的内容路由选择系统,还包括协议翻译逻辑,用于在第一协议和命令协议之间进行翻译。
3.如权利要求2所述的内容路由选择系统,其中,所述协议翻译逻辑包括用于在通用协议和所述命令协议之间进行翻译的协议适配器。
4.如权利要求3所述的内容路由选择系统,其中,在所述通用协议和所述命令协议之间进行翻译包括将具有多条命令的所述通用协议的消息变换成所述命令协议的分离的命令。
5.如权利要求2所述的内容路由选择系统,其中,在所述第一协议和所述命令协议之间进行翻译包括将具有多条命令的所述第一协议的消息变换成所述命令协议的分离的命令。
6.如权利要求2所述的内容路由选择系统,其中,所述协议翻译逻辑还包括用于在所述第一协议和通用协议之间进行翻译的网关。
7.如权利要求2所述的内容路由选择系统,其中,所述协议翻译逻辑包括:
网关,用于在所述第一协议和通用协议之间进行翻译;以及
协议适配器,用于在所述通用协议和所述命令协议之间进行翻译。
8.如权利要求1所述的内容路由选择系统,其中,所述一个或多个路由选择参数包括基于所述内容节点的能力的参数。
9.如权利要求1所述的内容路由选择系统,其中,所述内容类型是联系人内容类型,所述一个或多个路由选择参数包括指示要求电话号码的参数。
10.如权利要求1所述的内容路由选择系统,其中,所述内容类型是事件内容类型,所述一个或多个路由选择参数包括指示路由选择事件在预定的将来持续时间中发生的参数。
11.如权利要求1所述的内容路由选择系统,其中,所述内容类型是任务内容类型,所述一个或多个路由选择参数包括指示路由选择任务在预定的将来持续时间中结束的参数。
12.如权利要求1所述的内容路由选择系统,其中,所述内容类型是电子邮件内容类型,所述一个或多个路由选择参数包括指示内容节点是否为满的参数。
13.如权利要求1所述的内容路由选择系统,其中,所述内容类型是电子邮件内容类型,所述一个或多个路由选择参数包括指示阻挡具有一个或多个附件的电子邮件消息的参数。
14.如权利要求1所述的内容路由选择系统,其中,所述内容类型是媒体库内容类型,所述一个或多个路由选择参数包括指示特定媒体类型的路由选择命令的参数。
15.如权利要求1所述的内容路由选择系统,还包括耦合到所述处理逻辑的通知逻辑,用于向网关发送通知信号。
16.如权利要求3所述的内容路由选择系统,其中,所述协议适配器包括利用远程过程调用(RPC)协议的接口。
17.如权利要求16所述的内容路由选择系统,其中,所述RPC协议包括XML-RPC协议。
18.如权利要求1所述的内容路由选择系统,其中,所述命令存储器包括用于保存所述到来命令的到来队列和用于保存一组所述外出命令的外出队列。
19.如权利要求1所述的内容路由选择系统,其中,所述命令存储器包括用于保存所述到来命令和一组所述外出命令的数据库,其中每条命令具有标识所述命令的状态的属性。
20.如权利要求19所述的内容路由选择系统,其中,所述状态包括到来队列状态和外出队列状态。
21.如权利要求20所述的内容路由选择系统,其中,所述状态还包括外出转运队列状态。
22.如权利要求20所述的内容路由选择系统,其中,所述状态还包括到来转运队列状态。
23.如权利要求1所述的内容路由选择系统,其中,所述处理逻辑能用于解决所述到来命令和所述命令存储器中的命令之间的冲突。
24.如权利要求1所述的内容路由选择系统,其中,所述处理逻辑能用于在将外出命令发送给所选目的地内容节点之前接收所述到来命令。
25.如权利要求1所述的内容路由选择系统,其中,所述处理逻辑能用于接收来自所选目的地内容节点的一组到来命令,并且在将一条或多条外出命令发送给所述目的地内容节点之前解决所述一组到来命令和所述一条或多条外出命令之间的冲突。
26.如权利要求1所述的内容路由选择系统,还包括用于耦合到一个或多个内容节点的网关服务器。
27.如权利要求26所述的内容路由选择系统,其中,所述网关服务器包括用于耦合到一个或多个用户设备的设备网关服务器。
28.如权利要求26所述的内容路由选择系统,其中,所述网关服务器包括用于耦合到一个或多个用户帐户的服务器网关服务器。
29.如权利要求26所述的内容路由选择系统,其中,所述网关服务器包括:
用于耦合到一个或多个用户设备的设备网关服务器;以及
用于耦合到一个或多个用户帐户的服务器网关服务器
30.如权利要求29所述的内容路由选择系统,还包括协议适配器,用于将所述存储和转发逻辑耦合到所述设备网关服务器和所述服务器网关服务器。
31.一种用于在多个内容节点和命令存储器之间路由对信息的改变的方法,该方法包括,在内容路由器处:
接收来自第一内容节点的到来命令;
将所述到来命令存储到与所述第一内容节点相关联的命令存储器中;
基于下述内容选择一组目的地内容节点:所述到来命令的内容类型、与目的地内容节点和所述内容类型相关联的路由选择参数;以及
针对所选目的地内容节点中的每个:
生成外出命令;以及
如果命令之间不存在冲突则将所述外出命令存储到所述命令存储器中。
32.如权利要求31所述的方法,还包括处理所述到来命令,其中所述处理包括解决所述到来命令和与所述第一内容节点相关联的所述命令存储器中的冲突命令之间的冲突,并且其中存储所述到来命令包括存储经处理后的命令。
33.如权利要求32所述的方法,其中,解决所述冲突包括从所述命令存储器删除所述冲突命令。
34.如权利要求32所述的方法,其中,解决所述冲突包括将所述到来命令与来自所述命令存储器的所述冲突命令合并。
35.如权利要求32所述的方法,其中,解决所述冲突包括丢弃所述到来命令。
36.如权利要求32所述的方法,其中,解决所述冲突包括丢弃所述到来命令和从所述命令存储器删除所述冲突命令。
37.如权利要求32所述的方法,其中:
所述到来命令包括删除电子邮件消息的命令;
所述命令存储器中的所述冲突命令包括与同一电子邮件消息相关联的命令;并且
解决所述冲突包括从所述命令存储器删除所述冲突命令。
38.如权利要求32所述的方法,其中:
所述命令存储器中的所述冲突命令包括添加电子邮件消息的命令;
所述到来命令包括更新所述电子邮件消息的读标志的命令;并且
解决所述冲突包括将来自所述命令存储器的所述冲突命令与所述到来命令合并。
39.如权利要求38所述的方法,还包括用所合并的命令替换所述到来命令并删除所述命令存储器中的所述冲突命令。
40.如权利要求38所述的方法,还包括丢弃所述到来命令并用所合并的命令替换所述命令存储器中的所述冲突命令。
41.如权利要求31所述的方法,还包括处理所述外出命令,其中处理所述外出命令包括解决所述外出命令和与所选目的地内容节点相关联的所述命令存储器中的冲突命令之间的冲突,并且其中存储所述外出命令包括存储经处理后的外出命令。
42.如权利要求41所述的方法,其中,解决所述冲突包括从所述命令存储器删除所述冲突命令。
43.如权利要求41所述的方法,其中,解决所述冲突包括将来自所述命令存储器的所述冲突命令合并到所述外出命令中。
44.如权利要求41所述的方法,其中,解决所述冲突包括丢弃所述外出命令。
45.如权利要求41所述的方法,其中,解决所述冲突包括丢弃所述外出命令并从所述命令存储器删除所述冲突命令。
46.如权利要求41所述的方法,其中:
所述外出命令包括删除电子邮件消息的命令;
来自所述命令存储器的所述冲突命令包括与同一电子邮件消息相关联的命令;并且
解决所述冲突包括从所述命令存储器删除所述冲突命令。
47.如权利要求41所述的方法,其中:
来自所述命令存储器的所述冲突命令包括添加电子邮件消息的命令;
所述外出命令包括更新所述电子邮件消息的读标志的命令;并且
解决所述冲突包括将来自所述命令存储器的所述冲突命令与所述外出命令合并。
48.如权利要求47所述的方法,还包括用所合并的命令替换所述外出命令并删除所述命令存储器中的所述命令。
49.如权利要求47所述的方法,还包括丢弃所述外出命令并用所合并的命令替换所述命令存储器中的所述命令。
50.如权利要求31所述的方法,还包括将所述到来命令从到来队列移动到与所述第一内容节点相关联的所述命令存储器中的到来转运队列中。
51.如权利要求50所述的方法,还包括:
确定可以丢弃所述到来命令;以及
将所述到来命令从所述到来转运队列丢弃。
52.如权利要求50所述的方法,还包括:
检测与对所述到来命令的处理相关的错误条件;以及
响应于检测到所述错误条件,将所述到来命令从所述到来转运队列移动到与所述第一内容节点相关联的所述到来队列。
53.如权利要求31所述的方法,还包括将所述外出命令从外出队列移动到与所选目的地内容节点相关联的所述命令存储器中的外出转运队列。
54.如权利要求53所述的方法,还包括:
确定可以丢弃所述外出命令;以及
将所述外出命令从所述外出转运队列丢弃。
55.如权利要求53所述的方法,还包括:
接收确认所选目的地内容节点已接收到所述外出命令的确认;以及
响应于接收到所述确认,将所述外出命令从所述外出转运队列丢弃。
56.如权利要求53所述的方法,还包括:
检测与对所述外出命令的递送相关的错误条件;以及
响应于检测到所述错误条件,将所述外出命令从所述外出转运队列移动到与所选目的地内容节点相关联的所述外出队列。
57.一种计算机程序产品,包括在包含处理逻辑和命令存储器的内容路由选择系统中使用的程序代码,该内容路由选择系统用于在多个内容节点和命令存储器之间路由对信息的改变,该计算机程序产品包括:
用于接收来自第一内容节点的到来命令的程序代码;
用于将所述到来命令存储到与所述第一内容节点相关联的命令存储器中的程序代码;以及
用于基于下述内容选择一组目的地内容节点的程序代码:所述到来命令的内容类型、与目的地内容节点和所述内容类型相关联的路由选择参数;以及
针对所选目的地内容节点中的每个:
用于生成外出命令的程序代码;以及
用于将所述外出命令存储到所述命令存储器中的程序代码。
58.如权利要求57所述的计算机程序产品,还包括用于处理所述到来命令的程序代码,其中用于处理的程序代码包括用于解决所述到来命令和与所述第一内容节点相关联的所述命令存储器中的命令之间的冲突的程序代码,并且其中存储所述到来命令包括存储经处理后的命令。
59.如权利要求58所述的计算机程序产品,其中,解决所述冲突包括从所述命令存储器删除所述冲突命令。
60.如权利要求58所述的计算机程序产品,其中,解决所述冲突包括将所述到来命令与来自所述命令存储器的所述冲突命令合并。
61.如权利要求58所述的计算机程序产品,其中,解决所述冲突包括丢弃所述到来命令。
62.如权利要求58所述的计算机程序产品,其中,解决所述冲突包括丢弃所述到来命令和从所述命令存储器删除所述冲突命令。
63.如权利要求58所述的计算机程序产品,其中:
所述到来命令包括删除电子邮件消息的命令;
所述命令存储器中的所述冲突命令包括与同一电子邮件消息相关联的命令;并且
用于解决所述冲突的程序代码包括用于从所述命令存储器删除所述冲突命令的程序代码。
64.如权利要求58所述的计算机程序产品,其中:
所述命令存储器中的所述命令包括添加电子邮件消息的命令;
所述到来命令包括更新所述电子邮件消息的读标志的命令;并且
用于解决所述冲突的程序代码包括用于将来自所述命令存储器的所述冲突命令与所述到来命令合并的程序代码。
65.如权利要求64所述的计算机程序产品,还包括用于用所合并的命令替换所述到来命令并删除所述命令存储器中的所述命令的程序代码。
66.如权利要求64所述的计算机程序产品,还包括用于丢弃所述到来命令并用所合并的命令替换所述命令存储器中的所述命令的程序代码。
67.如权利要求58所述的计算机程序产品,还包括用于处理所述外出命令的程序代码,其中用于处理所述外出命令的程序代码包括用于解决所述外出命令和与所选目的地内容节点相关联的所述命令存储器中的命令之间的冲突的程序代码,并且其中用于存储所述外出命令的程序代码包括用于存储经处理后的外出命令的程序代码。
68.如权利要求67所述的计算机程序产品,其中,用于解决所述冲突的程序代码包括用于从所述命令存储器删除所述冲突命令的程序代码。
69.如权利要求67所述的计算机程序产品,其中,用于解决所述冲突的程序代码包括用于将来自所述命令存储器的所述冲突命令合并到所述外出命令中的程序代码。
70.如权利要求67所述的计算机程序产品,其中,用于解决所述冲突的程序代码包括用于丢弃所述外出命令的程序代码。
71.如权利要求67所述的计算机程序产品,其中,用于解决所述冲突的程序代码包括用于丢弃所述外出命令并从所述命令存储器删除所述冲突命令的程序代码。
72.如权利要求67所述的计算机程序产品,其中:
所述外出命令包括删除电子邮件消息的命令;
来自所述命令存储器的所述冲突命令包括与同一电子邮件消息相关联的命令;并且
用于解决所述冲突的程序代码包括用于从所述命令存储器删除所述冲突命令的程序代码。
73.如权利要求67所述的计算机程序产品,其中:
来自所述命令存储器的所述冲突命令包括添加电子邮件消息的命令;
所述外出命令包括更新所述电子邮件消息的读标志的命令;并且
用于解决所述冲突的程序代码包括将来自所述命令存储器的所述冲突命令与所述外出命令合并的程序代码。
74.如权利要求23所述的计算机程序产品,还包括用于用所合并的命令替换所述外出命令并删除所述命令存储器中的所述命令的程序代码。
75.如权利要求23所述的计算机程序产品,还包括用于丢弃所述外出命令并用所合并的命令替换所述命令存储器中的所述命令的程序代码。
76.如权利要求57所述的计算机程序产品,还包括用于将所述到来命令从到来队列移动到与所述第一内容节点相关联的所述命令存储器中的到来转运队列中的程序代码。
77.如权利要求76所述的计算机程序产品,还包括:
用于确定可以丢弃所述到来命令的程序代码;以及
用于将所述到来命令从所述到来转运队列丢弃的程序代码。
78.如权利要求76所述的计算机程序产品,还包括:
用于检测与对所述到来命令的处理相关的错误条件的程序代码;以及
用于响应于检测到所述错误条件,将所述到来命令从所述到来转运队列移动到与所述第一内容节点相关联的所述到来队列的程序代码。
79.如权利要求57所述的计算机程序产品,还包括用于将所述外出命令从外出队列移动到与所选目的地内容节点相关联的所述命令存储器中的外出转运队列的程序代码。
80.如权利要求79所述的计算机程序产品,还包括:
用于确定可以丢弃所述外出命令的程序代码;以及
用于将所述外出命令从所述外出转运队列丢弃的程序代码。
81.如权利要求79所述的计算机程序产品,还包括:
用于接收确认所选目的地内容节点已接收到所述外出命令的确认的程序代码;以及
用于响应于接收到所述确认,将所述外出命令从所述外出转运队列丢弃的程序代码。
82.如权利要求79所述的计算机程序产品,还包括:
用于检测与对所述外出命令的递送相关的错误条件的程序代码;以及
用于响应于检测到所述错误条件,将所述外出命令从所述外出转运队列移动到与所选目的地内容节点相关联的所述外出队列的程序代码。
CNA2006800337269A 2005-07-14 2006-07-06 内容路由器 Pending CN101317416A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/182,287 2005-07-14
US11/182,287 US7849199B2 (en) 2005-07-14 2005-07-14 Content router

Publications (1)

Publication Number Publication Date
CN101317416A true CN101317416A (zh) 2008-12-03

Family

ID=37661574

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800337269A Pending CN101317416A (zh) 2005-07-14 2006-07-06 内容路由器

Country Status (6)

Country Link
US (3) US7849199B2 (zh)
EP (1) EP1908256A2 (zh)
JP (1) JP4881380B2 (zh)
KR (1) KR101035472B1 (zh)
CN (1) CN101317416A (zh)
WO (1) WO2007011533A2 (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012079482A1 (en) * 2010-12-16 2012-06-21 Huawei Technologies Co., Ltd. Method and apparatus to create and manage virtual private groups in a content oriented network
WO2014023257A1 (zh) * 2012-08-09 2014-02-13 华为终端有限公司 指令处理方法、装置和系统
WO2014190690A1 (zh) * 2013-05-31 2014-12-04 华为技术有限公司 信息为中心网络icn中转发报文的方法、装置及系统
CN104811486A (zh) * 2009-06-19 2015-07-29 日本技术贸易株式会社 内容管理装置和内容管理方法
CN110166523A (zh) * 2019-04-09 2019-08-23 腾讯科技(深圳)有限公司 内容更新方法、装置、设备和计算机可读存储介质
CN111954996A (zh) * 2017-12-19 2020-11-17 维我系统公司 用于控制电子通信的系统和方法

Families Citing this family (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8880610B2 (en) * 2003-09-11 2014-11-04 International Business Machines Corporation Managing locally initiated electronic mail attached documents
US7724657B2 (en) * 2004-07-23 2010-05-25 Citrix Systems, Inc. Systems and methods for communicating a lossy protocol via a lossless protocol
US7623515B2 (en) * 2005-07-14 2009-11-24 Yahoo! Inc. Content router notification
US7631045B2 (en) * 2005-07-14 2009-12-08 Yahoo! Inc. Content router asynchronous exchange
US20070014277A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router repository
US20070014307A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Content router forwarding
US20070016632A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. System and method for synchronizing between a user device and a server in a communication network
US7849199B2 (en) * 2005-07-14 2010-12-07 Yahoo ! Inc. Content router
US7788352B2 (en) * 2005-07-14 2010-08-31 Yahoo! Inc. System and method for servicing a user device
US20070016636A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. Methods and systems for data transfer and notification mechanisms
US20070014243A1 (en) * 2005-07-14 2007-01-18 Yahoo! Inc. System and method for provisioning a user device
US8417782B2 (en) 2005-07-14 2013-04-09 Yahoo! Inc. Universal calendar event handling
US20070038703A1 (en) * 2005-07-14 2007-02-15 Yahoo! Inc. Content router gateway
US8112549B2 (en) 2005-07-14 2012-02-07 Yahoo! Inc. Alert mechanism for notifying multiple user devices sharing a connected-data-set
US20070100856A1 (en) * 2005-10-21 2007-05-03 Yahoo! Inc. Account consolidation
US7779157B2 (en) 2005-10-28 2010-08-17 Yahoo! Inc. Recovering a blade in scalable software blade architecture
US7870288B2 (en) * 2005-10-28 2011-01-11 Yahoo! Inc. Sharing data in scalable software blade architecture
US7873696B2 (en) 2005-10-28 2011-01-18 Yahoo! Inc. Scalable software blade architecture
US8024290B2 (en) * 2005-11-14 2011-09-20 Yahoo! Inc. Data synchronization and device handling
US8065680B2 (en) * 2005-11-15 2011-11-22 Yahoo! Inc. Data gateway for jobs management based on a persistent job table and a server table
US9367832B2 (en) * 2006-01-04 2016-06-14 Yahoo! Inc. Synchronizing image data among applications and devices
US20070186177A1 (en) * 2006-02-03 2007-08-09 Yahoo! Inc. Content navigation interfaces and associated methods
US20070186173A1 (en) * 2006-02-03 2007-08-09 Yahoo! Inc. Instant messenger alerts and organization systems
US9880702B2 (en) * 2006-02-03 2018-01-30 Yahoo Holdings, Inc. Content structures and content navigation interfaces
US8531953B2 (en) * 2006-02-21 2013-09-10 Barclays Capital Inc. System and method for network traffic splitting
US8055444B2 (en) * 2006-04-04 2011-11-08 Yahoo! Inc. Content display and navigation interface
US20070245006A1 (en) * 2006-04-18 2007-10-18 Nokia Corporation Apparatus, method and computer program product to provide ad hoc message recipient lists
US9781071B2 (en) * 2006-06-28 2017-10-03 Nokia Technologies Oy Method, apparatus and computer program product for providing automatic delivery of information to a terminal
EP2039138B1 (en) * 2006-07-07 2019-05-22 Genband US LLC Identifying network entities in a peer-to-peer network
US20080034008A1 (en) * 2006-08-03 2008-02-07 Yahoo! Inc. User side database
US7873988B1 (en) 2006-09-06 2011-01-18 Qurio Holdings, Inc. System and method for rights propagation and license management in conjunction with distribution of digital content in a social network
US7992171B2 (en) 2006-09-06 2011-08-02 Qurio Holdings, Inc. System and method for controlled viral distribution of digital content in a social network
US7925592B1 (en) 2006-09-27 2011-04-12 Qurio Holdings, Inc. System and method of using a proxy server to manage lazy content distribution in a social network
US8554827B2 (en) * 2006-09-29 2013-10-08 Qurio Holdings, Inc. Virtual peer for a content sharing system
US7886334B1 (en) 2006-12-11 2011-02-08 Qurio Holdings, Inc. System and method for social network trust assessment
US9195996B1 (en) 2006-12-27 2015-11-24 Qurio Holdings, Inc. System and method for classification of communication sessions in a social network
US20080198422A1 (en) * 2007-02-19 2008-08-21 Tamara Lynne Casey Contextual Management of Multiple Device Capabilities in a Communication Device
US20080208980A1 (en) * 2007-02-26 2008-08-28 Michael Ruarri Champan Email aggregation system with supplemental processing information addition/removal and related methods
US20080270629A1 (en) * 2007-04-27 2008-10-30 Yahoo! Inc. Data snychronization and device handling using sequence numbers
US7818384B2 (en) * 2007-07-26 2010-10-19 Rachal Eric M Simultaneous synchronous split-domain email routing with conflict resolution
US20090182739A1 (en) * 2008-01-10 2009-07-16 Microsoft Corporation Using metadata to route documents
US8533280B1 (en) * 2008-05-02 2013-09-10 BitGravity, Inc. Distributed origin content delivery network
AU2010202034B1 (en) 2010-04-07 2010-12-23 Limelight Networks, Inc. Partial object distribution in content delivery network
EP2329395A2 (en) 2008-09-19 2011-06-08 Limelight Networks, Inc. Content delivery network stream server vignette distribution
AU2010276462B1 (en) 2010-12-27 2012-01-12 Limelight Networks, Inc. Partial object caching
US8694448B2 (en) * 2008-12-16 2014-04-08 At&T Intellectual Property I, L.P. Method and apparatus for providing an adaptive parser
KR101530997B1 (ko) * 2009-06-23 2015-06-25 삼성전자주식회사 셀간 간섭을 집중시키는 불휘발성 메모리 장치의 프로그램 방법
CN102035720B (zh) * 2009-09-24 2012-07-04 华为技术有限公司 数据传输方法和系统
US8923293B2 (en) * 2009-10-21 2014-12-30 Palo Alto Research Center Incorporated Adaptive multi-interface use for content networking
US8805925B2 (en) * 2009-11-20 2014-08-12 Nbrella, Inc. Method and apparatus for maintaining high data integrity and for providing a secure audit for fraud prevention and detection
US9264342B2 (en) * 2009-12-24 2016-02-16 Samsung Electronics Co., Ltd. Terminal device based on content name, and method for routing based on content name
NL2004765C2 (en) * 2010-05-25 2011-11-28 Arjuna Decogabat B V Energy self-sufficient datacenter for processing and storage of classified data.
US20120084423A1 (en) * 2010-10-04 2012-04-05 Openwave Systems Inc. Method and system for domain based dynamic traffic steering
US8819152B2 (en) 2011-01-25 2014-08-26 Kristy Joi Downing Email addressee verification systems and methods for the same
US8799400B2 (en) * 2011-02-02 2014-08-05 Imvu, Inc. System and method for managing multiple queues of non-persistent messages in a networked environment
US8713269B2 (en) 2011-07-14 2014-04-29 Intellectual Ventures Fund 83 Llc Distributed image acquisition, storage, and backup system
US9927958B2 (en) * 2011-08-25 2018-03-27 Vmware, Inc. User interface for networks including virtual machines
US9602358B2 (en) 2011-08-25 2017-03-21 Vmware, Inc. Extensible infrastructure for representing networks including virtual machines
US9729669B2 (en) 2012-03-15 2017-08-08 Alcatel Lucent Method and system for fast and large-scale longest prefix matching
US9198204B2 (en) 2012-04-11 2015-11-24 Google Inc. Apparatus and method for seamless commissioning of wireless devices
US10397013B1 (en) 2012-04-11 2019-08-27 Google Llc User interfaces, systems and methods for configuring smart devices for interoperability with a smart hub device
US10075334B1 (en) 2012-04-11 2018-09-11 Google Llc Systems and methods for commissioning a smart hub device
US10142122B1 (en) 2012-04-11 2018-11-27 Google Llc User interfaces, systems and methods for configuring smart devices for interoperability with a smart hub device
US9001697B2 (en) 2012-12-14 2015-04-07 Western Digital Technologies, Inc. Methods and devices for replacing and configuring a router in a network
US10391387B2 (en) 2012-12-14 2019-08-27 Microsoft Technology Licensing, Llc Presenting digital content item with tiered functionality
US9143929B1 (en) 2012-12-14 2015-09-22 Western Digital Technologies, Inc. Methods and devices configured for IP address conflict detection and resolution upon assignment of WAN IP address
US9374420B2 (en) * 2012-12-14 2016-06-21 Microsoft Technology Licensing, Llc Content source selection in a P2P network
KR102022592B1 (ko) * 2013-03-04 2019-09-19 삼성전자주식회사 전자 장치에서 전송 정보를 관리하기 위한 방법 및 장치
US9922580B2 (en) 2013-04-30 2018-03-20 Google Llc Apparatus and method for the virtual demonstration of a smart phone controlled smart home using a website
KR101545670B1 (ko) 2013-07-25 2015-08-19 서울시립대학교 산학협력단 데이터 연산 방법 및 시스템
IN2013CH05044A (zh) 2013-11-08 2015-05-29 Huawei Technologies India Pvt Ltd
US10088818B1 (en) 2013-12-23 2018-10-02 Google Llc Systems and methods for programming and controlling devices with sensor data and learning
US9420331B2 (en) 2014-07-07 2016-08-16 Google Inc. Method and system for categorizing detected motion events
US10601604B2 (en) 2014-11-12 2020-03-24 Google Llc Data processing systems and methods for smart hub devices
US20170371727A1 (en) * 2014-12-22 2017-12-28 Hewlett Packard Enterprise Development Lp Execution of interaction flows
AU2016270937B2 (en) * 2015-06-02 2021-07-29 Liveperson, Inc. Dynamic communication routing based on consistency weighting and routing rules
US10454872B2 (en) * 2015-06-22 2019-10-22 Microsoft Technology Licensing, Llc Group email management
CN108886495B (zh) * 2016-02-18 2022-07-05 瑞萨电子株式会社 消息处理器
US10282125B2 (en) * 2017-04-17 2019-05-07 International Business Machines Corporation Distributed content deduplication using hash-trees with adaptive resource utilization in distributed file systems
US10652077B2 (en) * 2018-08-31 2020-05-12 Subcom, Llc Techniques for interfacing between web services and interface description language (IDL)-based remote procedure call (RPC) services and an optical communication system implementing same
US11516290B2 (en) * 2019-12-18 2022-11-29 International Business Machines Corporation Sharing tuples across independent coordination namespace systems

Family Cites Families (245)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4270168A (en) 1978-08-31 1981-05-26 United Technologies Corporation Selective disablement in fail-operational, fail-safe multi-computer control system
DE3341605A1 (de) 1983-11-17 1985-05-30 Consortium für elektrochemische Industrie GmbH, 8000 München Alpha-tertiaere dimethylacetale, ihre herstellung und verwendung als riechstoffe
JP2840320B2 (ja) * 1989-09-20 1998-12-24 株式会社日立製作所 半導体記憶装置
US5436960A (en) 1991-05-20 1995-07-25 Campana, Jr.; Thomas J. Electronic mail system with RF communications to mobile processors and method of operation thereof
US5371882A (en) 1992-01-14 1994-12-06 Storage Technology Corporation Spare disk drive replacement scheduling system for a disk drive array data storage subsystem
US5371743A (en) 1992-03-06 1994-12-06 Data General Corporation On-line module replacement in a multiple module data processing system
FR2692055B1 (fr) 1992-06-09 1996-10-25 Bull Sa Dispositif de conception de reseaux de commande d'informations pour la modelisation de tous processus.
EP0596594B1 (en) 1992-10-26 2000-07-12 Sun Microsystems, Inc. Remote control and pointing device
US5440719A (en) 1992-10-27 1995-08-08 Cadence Design Systems, Inc. Method simulating data traffic on network in accordance with a client/sewer paradigm
US5625757A (en) 1993-12-24 1997-04-29 Hitachi, Ltd. Printing system
JP2699872B2 (ja) 1994-06-01 1998-01-19 日本電気株式会社 データ受信装置およびバッファ管理方法
US5475813A (en) 1994-07-18 1995-12-12 International Business Machines Corporation Routing transactions in the presence of failing servers
US5684952A (en) 1994-07-25 1997-11-04 Apple Computer, Inc. Supervisory control system for networked multimedia workstations that provides reconfiguration of workstations by remotely updating the operating system
US5742905A (en) 1994-09-19 1998-04-21 Bell Communications Research, Inc. Personal communications internetworking
EP0709779B1 (en) 1994-10-31 2001-05-30 International Business Machines Corporation Virtual shared disks with application-transparent recovery
US5633484A (en) 1994-12-26 1997-05-27 Motorola, Inc. Method and apparatus for personal attribute selection and management using a preference memory
US5684990A (en) 1995-01-11 1997-11-04 Puma Technology, Inc. Synchronization of disparate databases
US5774668A (en) 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US6883034B1 (en) 1995-06-23 2005-04-19 Cisco Technology, Inc. Method of resolving conflicts in access control lists in router by comparing elements in the lists based on subsumption relations
US5727202A (en) 1995-10-18 1998-03-10 Palm Computing, Inc. Method and apparatus for synchronizing information on two different computer systems
JP3459149B2 (ja) 1995-11-06 2003-10-20 シャープ株式会社 電子メール転送システム
US5873084A (en) 1996-01-18 1999-02-16 Sun Microsystems, Inc. Database network connectivity product
US5815663A (en) 1996-03-15 1998-09-29 The Robert G. Uomini And Louise B. Bidwell Trust Distributed posting system using an indirect reference protocol
JP3451415B2 (ja) 1996-03-29 2003-09-29 富士通株式会社 ネットワーク管理システムのデータベース同期方法
US5852724A (en) 1996-06-18 1998-12-22 Veritas Software Corp. System and method for "N" primary servers to fail over to "1" secondary server
US5764908A (en) 1996-07-12 1998-06-09 Sofmap Future Design, Inc. Network system containing program modules residing in different computers and executing commands without return results to calling modules
US6069896A (en) 1996-10-15 2000-05-30 Motorola, Inc. Capability addressable network and method therefor
US5787437A (en) 1996-10-29 1998-07-28 Hewlett-Packard Company Method and apparatus for shared management information via a common repository
US6169789B1 (en) 1996-12-16 2001-01-02 Sanjay K. Rao Intelligent keyboard system
US5864653A (en) 1996-12-31 1999-01-26 Compaq Computer Corporation PCI hot spare capability for failed components
US6006274A (en) 1997-01-30 1999-12-21 3Com Corporation Method and apparatus using a pass through personal computer connected to both a local communication link and a computer network for indentifying and synchronizing a preferred computer with a portable computer
US6092169A (en) 1997-04-02 2000-07-18 Compaq Computer Corporation Apparatus and method for storage subsystem drive movement and volume addition
US6157944A (en) 1997-05-14 2000-12-05 Citrix Systems, Inc. System and method for replicating a client/server data exchange to additional client notes connecting to the server
US5937168A (en) 1997-05-30 1999-08-10 Bellsouth Corporation Routing information within an adaptive routing architecture of an information retrieval system
JP3148152B2 (ja) 1997-06-27 2001-03-19 日本電気株式会社 電子メールシステムを用いた同報メールの配送方法
US6073172A (en) 1997-07-14 2000-06-06 Freegate Corporation Initializing and reconfiguring a secure network interface
US6141690A (en) 1997-07-31 2000-10-31 Hewlett-Packard Company Computer network address mapping
US6021449A (en) 1997-08-01 2000-02-01 International Business Machines Corporation Video FIFO overflow control method that blocks video encoder data when overflow is imminent and resumes flow when frames sizes have returned to nominal size
US6134581A (en) 1997-10-06 2000-10-17 Sun Microsystems, Inc. Method and system for remotely browsing objects
US6170065B1 (en) 1997-11-14 2001-01-02 E-Parcel, Llc Automatic system for dynamic diagnosis and repair of computer configurations
US6236991B1 (en) 1997-11-26 2001-05-22 International Business Machines Corp. Method and system for providing access for categorized information from online internet and intranet sources
KR100301825B1 (ko) 1997-12-29 2001-10-27 구자홍 엠펙비디오디코디시스템및엠펙비디오디코딩시스템의오버플로우처리방법
JPH11212884A (ja) 1998-01-22 1999-08-06 Internatl Business Mach Corp <Ibm> 電子メール伝送装置およびその方法
DE19805711C2 (de) 1998-02-12 1999-11-18 Siemens Ag Verfahren und Anordnung zum Austausch einer defekten Baugruppe vorzugsweise innerhalb einer digitalen Vermittlungsstellenanlage
US6799224B1 (en) 1998-03-10 2004-09-28 Quad Research High speed fault tolerant mass storage network information server
US7028312B1 (en) 1998-03-23 2006-04-11 Webmethods XML remote procedure call (XML-RPC)
US6453356B1 (en) 1998-04-15 2002-09-17 Adc Telecommunications, Inc. Data exchange system and method
US6163856A (en) 1998-05-29 2000-12-19 Sun Microsystems, Inc. Method and apparatus for file system disaster recovery
US6463463B1 (en) 1998-05-29 2002-10-08 Research In Motion Limited System and method for pushing calendar event messages from a host system to a mobile data communication device
US6144999A (en) 1998-05-29 2000-11-07 Sun Microsystems, Incorporated Method and apparatus for file system disaster recovery
US6105067A (en) 1998-06-05 2000-08-15 International Business Machines Corp. Connection pool management for backend servers using common interface
US6530083B1 (en) 1998-06-19 2003-03-04 Gateway, Inc System for personalized settings
US6108779A (en) 1998-07-17 2000-08-22 International Business Machines Corporation Server and computer network that permit a client to be easily introduced into the computer network
US6769124B1 (en) 1998-07-22 2004-07-27 Cisco Technology, Inc. Persistent storage of information objects
US6192396B1 (en) 1998-08-11 2001-02-20 Canon Kabushiki Kaisha Electronic mail with recipient-specific content
EP0986225A1 (en) 1998-09-11 2000-03-15 Visto Corporation System and method for securely synchronizing multiple copies of a workspace element in a network
US6489954B1 (en) 1998-10-13 2002-12-03 Prophet Financial Systems, Inc. System and method for permitting a software routine having restricted local access to utilize remote resources to generate locally usable data structure
US6304981B1 (en) 1998-10-19 2001-10-16 Gateway, Inc. Adaptive shutdown system and method for an information handling system
US6256676B1 (en) 1998-11-18 2001-07-03 Saga Software, Inc. Agent-adapter architecture for use in enterprise application integration systems
US20030097361A1 (en) 1998-12-07 2003-05-22 Dinh Truong T Message center based desktop systems
US6857123B1 (en) 1998-12-18 2005-02-15 International Business Machines Corporation Method and apparatus for a Meta Data Service in a data processing system
US6496941B1 (en) 1998-12-29 2002-12-17 At&T Corp. Network disaster recovery and analysis tool
US6311187B1 (en) 1998-12-29 2001-10-30 Sun Microsystems, Inc. Propogating updates efficiently in hierarchically structured data under a push model
JP2000209254A (ja) 1999-01-11 2000-07-28 Mitsubishi Electric Corp 情報提供システム
US6463032B1 (en) 1999-01-27 2002-10-08 Advanced Micro Devices, Inc. Network switching system having overflow bypass in internal rules checker
US6457062B1 (en) 1999-04-08 2002-09-24 Palm, Inc. System and method for synchronizing multiple calendars over wide area network
US6647260B2 (en) 1999-04-09 2003-11-11 Openwave Systems Inc. Method and system facilitating web based provisioning of two-way mobile communications devices
US6671824B1 (en) 1999-04-19 2003-12-30 Lakefield Technologies Group Cable network repair control system
US6505236B1 (en) 1999-04-30 2003-01-07 Thinmail, Inc. Network-based mail attachment storage system and method
US6904043B1 (en) 1999-05-21 2005-06-07 Advanced Micro Devices, Inc. Apparatus and methods for storing and processing header information in a network switch
US6477565B1 (en) 1999-06-01 2002-11-05 Yodlee.Com, Inc. Method and apparatus for restructuring of personalized data for transmission from a data network to connected and portable network appliances
US6543004B1 (en) 1999-07-29 2003-04-01 Hewlett-Packard Development Company, L.P. Method and apparatus for archiving and restoring data
US6880126B1 (en) 1999-08-03 2005-04-12 International Business Machines Corporation Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data
US6859834B1 (en) 1999-08-13 2005-02-22 Sun Microsystems, Inc. System and method for enabling application server request failover
US6477580B1 (en) 1999-08-31 2002-11-05 Accenture Llp Self-described stream in a communication services patterns environment
US6785704B1 (en) 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
US6633907B1 (en) 1999-09-10 2003-10-14 Microsoft Corporation Methods and systems for provisioning online services
US6779042B1 (en) 1999-09-10 2004-08-17 Ianywhere Solutions, Inc. System, method, and computer program product for enabling on-device servers, offline forms, and dynamic ad tracking on mobile devices
US6822951B1 (en) 1999-11-05 2004-11-23 Texas Instruments Incorporated Method and apparatus for routing messages in a wireless network
US7574351B2 (en) 1999-12-14 2009-08-11 Texas Instruments Incorporated Arranging CELP information of one frame in a second packet
US6571354B1 (en) 1999-12-15 2003-05-27 Dell Products, L.P. Method and apparatus for storage unit replacement according to array priority
US6853713B1 (en) 1999-12-17 2005-02-08 Nortel Networks Limited Client-server network for managing internet protocol voice packets
US6766469B2 (en) 2000-01-25 2004-07-20 Hewlett-Packard Development Company, L.P. Hot-replace of memory
DE10064627B4 (de) 2000-02-02 2004-02-12 International Business Machines Corp. Verfahren und System für die Verarbeitung von E-Mail-Nachrichten in einem Datenübertragungssystem
GB0003604D0 (en) 2000-02-16 2000-04-05 Step Uk Limited System and method for linking information resources
GB0006055D0 (en) 2000-03-14 2000-05-03 Ibm Managing pervasive devices
AUPQ627700A0 (en) 2000-03-17 2000-04-15 Nuc-One Enterprises Pty Ltd Email alert device
US6665709B1 (en) 2000-03-27 2003-12-16 Securit-E-Doc, Inc. Method, apparatus, and system for secure data transport
JP2001344105A (ja) 2000-03-31 2001-12-14 Hitachi Software Eng Co Ltd Webアプリケーション開発方法、開発支援システム、および該方法に係るプログラムを記憶した記憶媒体
WO2001076120A2 (en) 2000-04-04 2001-10-11 Stick Networks, Inc. Personal communication device for scheduling presentation of digital content
SE523220C2 (sv) 2000-04-19 2004-04-06 Microsoft Corp Förfarande och system för tillhandahållande av mobila e-posttjänster
US6813770B1 (en) 2000-04-21 2004-11-02 Sun Microsystems, Inc. Abstract syntax notation to interface definition language converter framework for network management
US6868444B1 (en) 2000-05-05 2005-03-15 Interland, Inc. Server configuration management and tracking
US20020016818A1 (en) * 2000-05-11 2002-02-07 Shekhar Kirani System and methodology for optimizing delivery of email attachments for disparate devices
US20020032020A1 (en) 2000-05-12 2002-03-14 Brown Bonnie L. Local and remote email alert apparatus and methods
JP3714850B2 (ja) 2000-05-18 2005-11-09 松下電器産業株式会社 ゲートウェイ装置、接続サーバ装置、インターネット端末、ネットワークシステム
US6865157B1 (en) 2000-05-26 2005-03-08 Emc Corporation Fault tolerant shared system resource with communications passthrough providing high availability communications
US6785868B1 (en) 2000-05-31 2004-08-31 Palm Source, Inc. Method and apparatus for managing calendar information from a shared database and managing calendar information from multiple users
US6941148B2 (en) 2000-06-03 2005-09-06 International Business Machines Corporation Device registry for automatic connection and data exchange between pervasive devices and backend systems
US7051087B1 (en) 2000-06-05 2006-05-23 Microsoft Corporation System and method for automatic detection and configuration of network parameters
US20020039420A1 (en) 2000-06-12 2002-04-04 Hovav Shacham Method and apparatus for batched network security protection server performance
US6751661B1 (en) 2000-06-22 2004-06-15 Applied Systems Intelligence, Inc. Method and system for providing intelligent network management
US6785680B1 (en) 2000-06-26 2004-08-31 International Business Machines Corporation Method and apparatus for providing individualized client data from a service provider to a portable digital device of a client
US6577905B1 (en) 2000-06-29 2003-06-10 International Business Machines Corporation Apparatus and method for providing a transient port
US6452809B1 (en) 2000-11-10 2002-09-17 Galactic Computing Corporation Scalable internet engine
WO2002009109A1 (fr) 2000-07-21 2002-01-31 Fujitsu Limited Dispositif d'enregistrement de disque, procede de remplacement de secteur pour disque vierge, et disque vierge
US6944662B2 (en) 2000-08-04 2005-09-13 Vinestone Corporation System and methods providing automatic distributed data retrieval, analysis and reporting services
US7035902B1 (en) 2000-08-11 2006-04-25 International Business Machines Corporation Method, article of manufacture and apparatus for processing an electronic mail document
US6687716B1 (en) 2000-09-13 2004-02-03 Radiant Data Corporation File consistency protocols and methods for carrying out the protocols
US20040053472A1 (en) * 2000-09-18 2004-03-18 Hideki Kiryu Method for film formation of gate insulator, apparatus for film formation of gate insulator, and cluster tool
US6785712B1 (en) 2000-09-21 2004-08-31 Rockwell Collins, Inc. Airborne e-mail data transfer protocol
US6611849B1 (en) 2000-09-29 2003-08-26 Palm Source, Inc. System for synchronizing databases on multiple devices utilizing a home base
US6901429B2 (en) 2000-10-27 2005-05-31 Eric Morgan Dowling Negotiated wireless peripheral security systems
US6510050B1 (en) 2000-11-21 2003-01-21 Sun Microsystems, Inc. High density packaging for multi-disk systems
US20020156756A1 (en) 2000-12-06 2002-10-24 Biosentients, Inc. Intelligent molecular object data structure and method for application in heterogeneous data environments with high data density and dynamic application needs
JP2002198925A (ja) 2000-12-25 2002-07-12 Matsushita Electric Ind Co Ltd データ受信装置及びその方法
NO20006683D0 (no) 2000-12-28 2000-12-28 Abb Research Ltd Fremgangsmåte for tidssynkronisering
US6931454B2 (en) 2000-12-29 2005-08-16 Intel Corporation Method and apparatus for adaptive synchronization of network devices
US20030189593A1 (en) 2001-01-05 2003-10-09 Yarvin Curtis G. Method and apparatus for dynamically updating a markup language based user interface
US6941326B2 (en) 2001-01-24 2005-09-06 Microsoft Corporation Accounting for update notifications in synchronizing data that may be represented by different data structures
US20020116396A1 (en) 2001-02-22 2002-08-22 Christopher Somers System for providing electronic contact information from a central source and method for updating contact information
US7085824B2 (en) 2001-02-23 2006-08-01 Power Measurement Ltd. Systems for in the field configuration of intelligent electronic devices
US7339786B2 (en) 2001-03-05 2008-03-04 Intel Corporation Modular server architecture with Ethernet routed across a backplane utilizing an integrated Ethernet switch module
US20020133821A1 (en) 2001-03-08 2002-09-19 Koninklijke Philips Electronics N.V. Activity schedule controls personalized electronic content guide
JP2002269010A (ja) 2001-03-09 2002-09-20 Pioneer Electronic Corp 電子メール処理システム及びメールサーバ
AU2002303126A1 (en) 2001-03-16 2002-10-03 Novell, Inc. Client-server model for synchronization of files
US20020138579A1 (en) 2001-03-20 2002-09-26 Bernol Goldberg Method and system for completing e-mail transmissions
US6711579B2 (en) 2001-04-20 2004-03-23 Sree Ayyanar Spinning And Weaving Mills Limited Data storage schema independent programming for data retrieval using semantic bridge
US6839564B2 (en) 2001-04-25 2005-01-04 Nokia Corporation Synchronization of database data
US20020194083A1 (en) 2001-05-08 2002-12-19 Srinivas Balabhadrapatruni System and method for network service provisioning
US7051088B2 (en) 2001-05-14 2006-05-23 Hewlett-Packard Development Company, L.P. Systems and methods for providing off-line backup of a programmable device's configuration data to users of programmable devices at a service location
US6744874B2 (en) 2001-05-15 2004-06-01 Hengning Wu Method of universal communication and devices thereof
US7089297B1 (en) 2001-05-25 2006-08-08 Oracle International Corporation Mechanism for automatically configuring a network resource
US7020662B2 (en) 2001-05-29 2006-03-28 Sun Microsystems, Inc. Method and system for determining a directory entry's class of service based on the value of a specifier in the entry
US6596941B2 (en) * 2001-06-13 2003-07-22 Salvatore M. Tripoli A.C. electrical power delivery system for a pickup truck bed utility box
JP3820925B2 (ja) 2001-06-20 2006-09-13 ソニー株式会社 受信装置および方法、情報配信方法、フィルタ蓄積プログラムおよび記録媒体
US6965929B2 (en) 2001-06-29 2005-11-15 Intel Corporation Configuring a network device
US7073083B2 (en) 2001-07-18 2006-07-04 Thomas Licensing Method and system for providing emergency shutdown of a malfunctioning device
US20030023690A1 (en) 2001-07-26 2003-01-30 Sunit Lohtia Method and apparatus for providing selective delivery of notifications to users of multiple devices over a network
US7093006B2 (en) 2001-07-31 2006-08-15 Motorola, Inc. Method of dynamically configuring access to services
US6596077B2 (en) 2001-07-31 2003-07-22 Illinois Institute Of Technology Controlled nucleation of protein crystals
US7089259B1 (en) 2001-08-03 2006-08-08 Mcafee, Inc. System and method for providing a framework for network appliance management in a distributed computing environment
US7080123B2 (en) 2001-09-20 2006-07-18 Sun Microsystems, Inc. System and method for preventing unnecessary message duplication in electronic mail
ES2291269T3 (es) 2001-09-21 2008-03-01 Koninklijke Kpn N.V. Sistema informatico, red de comunicacion de datos, programa informatico y soporte de datos, todos para filtrar un mensaje recibido que comprende contenido de lenguaje de marcacion.
US20030074358A1 (en) 2001-09-24 2003-04-17 Siamak Sarbaz Integration, management and processing of network data from disparate sources
US6875268B2 (en) * 2001-09-26 2005-04-05 Hrl Laboratories, Llc Method of improving a surface of a substrate for bonding
JP2003108417A (ja) 2001-10-01 2003-04-11 Toshiba Corp データ共有およびデータ配信方法
US7570668B2 (en) 2001-10-03 2009-08-04 Nokia Corporation Data synchronization
CA2463095A1 (en) 2001-10-15 2003-04-24 Maximilian Ott Dynamic content based multicast routing in mobile networks
US7506059B2 (en) 2001-10-26 2009-03-17 Nokia Corporation Mobile client provisioning web service
US6622192B2 (en) 2001-11-13 2003-09-16 Inventec Corporation Method of shutting down a server in safety
US7487262B2 (en) * 2001-11-16 2009-02-03 At & T Mobility Ii, Llc Methods and systems for routing messages through a communications network based on message content
US7373362B2 (en) 2001-11-19 2008-05-13 Extended Systems, Inc. Coordinated synchronization
US6904482B2 (en) 2001-11-20 2005-06-07 Intel Corporation Common boot environment for a modular server system
GB0128243D0 (en) 2001-11-26 2002-01-16 Cognima Ltd Cognima patent
GB2382962A (en) * 2001-12-07 2003-06-11 Altio Ltd Data routing without using an address
WO2003052553A2 (en) 2001-12-13 2003-06-26 Waveset Technologies System and method for resource management
US6670982B2 (en) 2002-01-04 2003-12-30 Hewlett-Packard Development Company, L.P. Wireless digital camera media
US20030130882A1 (en) 2002-01-09 2003-07-10 Saxon Shuttleworth System and method for synchronous peer-to-peer appointment scheduling facilitation
US20030177171A1 (en) 2002-01-22 2003-09-18 Brown Bruce Loring Electronic mail retrieval
US20030145021A1 (en) 2002-01-31 2003-07-31 Jarmo Parkkinen Method and arrangement for serially aligning database transactions
US6665179B2 (en) 2002-02-06 2003-12-16 Shin Jiuh Corp. Blade server module
US20030172138A1 (en) 2002-03-11 2003-09-11 Mccormack Jonathan I. System and method for managing two or more electronic devices
US20040039801A9 (en) 2002-03-11 2004-02-26 Venkatachary Srinivasan System and method for delivering data in a network
US20030212684A1 (en) 2002-03-11 2003-11-13 Markus Meyer System and method for adapting preferences based on device location or network topology
US6848034B2 (en) 2002-04-04 2005-01-25 International Business Machines Corporation Dense server environment that shares an IDE drive
US20030195922A1 (en) 2002-04-10 2003-10-16 Alcatel SNMP trap and inform shaping mechanism
KR100873711B1 (ko) 2002-04-15 2008-12-12 노키아 코포레이션 동기 관련 정보를 핸들링 하는 방법 및 장치
US20040103157A1 (en) 2002-04-17 2004-05-27 Nokia Corporation Store-and-forward server and method for storing and forwarding for instant messaging service implemented in IP multimedia core network subsystem (IMS)
EP1495420B1 (en) 2002-04-17 2008-11-12 Nokia Corporation Method and network device for synchronization of database data routed through a router
US20030212818A1 (en) 2002-05-08 2003-11-13 Johannes Klein Content based message dispatch
US6892311B2 (en) 2002-05-08 2005-05-10 Dell Usa, L.P. System and method for shutting down a host and storage enclosure if the status of the storage enclosure is in a first condition and is determined that the storage enclosure includes a critical storage volume
US20030212739A1 (en) 2002-05-09 2003-11-13 Antoine Boucher Store and forward architecture
US20030217125A1 (en) 2002-05-15 2003-11-20 Lucent Technologies, Inc. Intelligent end user gateway device
US20040078450A1 (en) 2002-07-08 2004-04-22 Tsu-Wei Chen Packet routing via payload inspection for digital content delivery
US7152100B2 (en) 2002-07-09 2006-12-19 Adtran, Inc. System and method for provisioning network access devices
KR100522178B1 (ko) * 2002-07-30 2005-10-18 주식회사 애트랩 광마우스 및 광마우스의 오동작 방지 방법
US7379990B2 (en) 2002-08-12 2008-05-27 Tsao Sheng Ted Tai Distributed virtual SAN
JP2004135249A (ja) 2002-08-13 2004-04-30 Murata Mach Ltd 電子メールサーバ装置
US7036902B2 (en) * 2002-08-22 2006-05-02 Canon Kabushiki Kaisha Printing apparatus
US20040044799A1 (en) 2002-09-03 2004-03-04 Nokia Corporation Method, device and system for synchronizing of data providing for the handling of an interrupted synchronization process
US8386568B2 (en) 2002-09-05 2013-02-26 International Business Machines Corporation Annotating and routing message content
US20040059834A1 (en) 2002-09-19 2004-03-25 Bellsouth Intellectual Property Corporation Efficient exchange of text based protocol language information
US7165224B2 (en) 2002-10-03 2007-01-16 Nokia Corporation Image browsing and downloading in mobile networks
AU2003284292A1 (en) 2002-10-21 2004-05-13 Bitfone Corporation System with required enhancements to syncml dm environment to support firmware updates
FI114750B (fi) 2002-10-29 2004-12-15 Nokia Corp Datan synkronoiminen
US7366796B2 (en) 2002-11-05 2008-04-29 Microsoft Corporation Method and levels of ping notification
US20040088414A1 (en) 2002-11-06 2004-05-06 Flynn Thomas J. Reallocation of computing resources
US20050185936A9 (en) 2002-11-08 2005-08-25 Ich-Kien Lao Mobile and vehicle-based digital video system
US7343168B2 (en) 2002-11-08 2008-03-11 Openwave Systems Inc. Asynchronous messaging based system for publishing and accessing content and accessing applications on a network with mobile devices
US20040092273A1 (en) 2002-11-08 2004-05-13 Openwave Systems Inc. Asynchronous messaging based system for publishing and accessing content and accessing applications on a network with mobile devices
FI114245B (fi) 2002-11-13 2004-09-15 Nokia Corp Synkronointi-istunnon järjestäminen
TW200411465A (en) 2002-11-19 2004-07-01 Xepa Corp An accounting and management system for self-provisioning digital services
US7047448B2 (en) 2002-11-21 2006-05-16 Bitfone Corporation Software self-repair toolkit for electronic devices
US6895480B2 (en) 2002-12-10 2005-05-17 Lsi Logic Corporation Apparatus and method for sharing boot volume among server blades
US6865597B1 (en) 2002-12-20 2005-03-08 Veritas Operating Corporation System and method for providing highly-available volume mount points
US7409674B2 (en) 2002-12-26 2008-08-05 Research In Motion Limited System and method of creating and communicating with component based wireless applications
US7046668B2 (en) 2003-01-21 2006-05-16 Pettey Christopher J Method and apparatus for shared I/O in a load/store fabric
US20040143836A1 (en) 2003-01-21 2004-07-22 Mccormack Jonathan Ian System and method for sharing objects among two or more electronic devices
US20040230661A1 (en) 2003-01-29 2004-11-18 Gus Rashid Rules based notification system
EP1443701A1 (en) 2003-01-31 2004-08-04 Motorola Inc. Management of a communications terminal using a management platform in a different administrative domain
US20040181580A1 (en) 2003-03-11 2004-09-16 Etienne Baranshamaje Method, computer useable medium, and system for portable email messaging
WO2004086191A2 (en) 2003-03-20 2004-10-07 Rosenfelt Michael I Method and system for providing backup messages to wireless devices during outages
US6836778B2 (en) 2003-05-01 2004-12-28 Oracle International Corporation Techniques for changing XML content in a relational database
US7275073B2 (en) 2003-05-07 2007-09-25 Good Technology, Inc. System and method for notifying mobile devices based on device type and network capabilities
US7397823B2 (en) 2003-06-04 2008-07-08 Agilent Technologies, Inc. Providing time synchronization across store-and-forward communication devices using protocol-enabled switches
US20040247090A1 (en) 2003-06-05 2004-12-09 Nurmela Wayne Denis Process for providing alert notification to communication devices
US20050015430A1 (en) 2003-06-25 2005-01-20 Rothman Michael A. OS agnostic resource sharing across multiple computing platforms
EP1639435A4 (en) 2003-06-27 2009-12-30 Hewlett Packard Development Co SYSTEM AND METHOD FOR DOWNLOADING UPDATE PACKAGES INTO A MOBILE HAND APPARATUS IN A CARRIER NETWORK
WO2005008981A1 (en) 2003-07-03 2005-01-27 Sinett Corporation Apparatus for layer 3 switching and network address port translation
WO2005008998A1 (en) 2003-07-03 2005-01-27 Sinett Corporation Initialization vector generation algorithm and hardware architecture
WO2005008999A1 (en) 2003-07-03 2005-01-27 Sinett Corporation Hardware acceleration for diffie hellman in a wireless lan
US8645471B2 (en) 2003-07-21 2014-02-04 Synchronoss Technologies, Inc. Device message management system
US20050021637A1 (en) 2003-07-22 2005-01-27 Red Hat, Inc. Electronic mail control system
WO2005011215A1 (en) 2003-07-28 2005-02-03 Mohamed Asif Abdul Majeed E-mail reception notification system
CA2476156A1 (en) 2003-07-30 2005-01-30 J2X Technologies Inc. System, computer product and method for enabling wireless data synchronization
US7289495B2 (en) 2003-08-07 2007-10-30 Teamon Systems, Inc. Communications system providing adaptive polling based upon user usage patterns and related methods
US7512638B2 (en) 2003-08-21 2009-03-31 Microsoft Corporation Systems and methods for providing conflict handling for peer-to-peer synchronization of units of information manageable by a hardware/software interface system
US20050080891A1 (en) 2003-08-28 2005-04-14 Cauthron David M. Maintenance unit architecture for a scalable internet engine
US20050055698A1 (en) 2003-09-10 2005-03-10 Sap Aktiengesellschaft Server-driven data synchronization method and system
EP1517566B1 (en) 2003-09-16 2006-07-19 Research In Motion Limited Demand-based update provisioning for a mobile communication device
US7290034B2 (en) 2003-09-18 2007-10-30 Vulcan Portals Inc. Method and system for polling a server for new emails, downloading the new emails in a background process, and caching the downloaded emails for access by an email application of an electronic device, such as a portable computer
US20050067482A1 (en) 2003-09-26 2005-03-31 Wu Daniel Huong-Yu System and method for data capture and management
US7409425B2 (en) 2003-11-13 2008-08-05 International Business Machines Corporation Selective transmission of an email attachment
US20050198351A1 (en) 2004-02-20 2005-09-08 Microsoft Corporation Content-based routing
US7293006B2 (en) 2004-04-07 2007-11-06 Integrated Project Solutions Llc Computer program for storing electronic files and associated attachments in a single searchable database
US20060168225A1 (en) 2004-10-29 2006-07-27 John Gunning Network and a distributed electronic commerce system using the network
US20060259511A1 (en) 2005-05-13 2006-11-16 Yahoo! Inc. Media object organization across information management services
US20070016636A1 (en) 2005-07-14 2007-01-18 Yahoo! Inc. Methods and systems for data transfer and notification mechanisms
US20070014307A1 (en) 2005-07-14 2007-01-18 Yahoo! Inc. Content router forwarding
US8112549B2 (en) 2005-07-14 2012-02-07 Yahoo! Inc. Alert mechanism for notifying multiple user devices sharing a connected-data-set
US7788352B2 (en) 2005-07-14 2010-08-31 Yahoo! Inc. System and method for servicing a user device
US8417782B2 (en) 2005-07-14 2013-04-09 Yahoo! Inc. Universal calendar event handling
US20070014277A1 (en) 2005-07-14 2007-01-18 Yahoo! Inc. Content router repository
US20070038703A1 (en) 2005-07-14 2007-02-15 Yahoo! Inc. Content router gateway
US7849199B2 (en) * 2005-07-14 2010-12-07 Yahoo ! Inc. Content router
US20070014243A1 (en) 2005-07-14 2007-01-18 Yahoo! Inc. System and method for provisioning a user device
US7631045B2 (en) 2005-07-14 2009-12-08 Yahoo! Inc. Content router asynchronous exchange
US20070016632A1 (en) 2005-07-14 2007-01-18 Yahoo! Inc. System and method for synchronizing between a user device and a server in a communication network
US7623515B2 (en) 2005-07-14 2009-11-24 Yahoo! Inc. Content router notification
US20070100856A1 (en) 2005-10-21 2007-05-03 Yahoo! Inc. Account consolidation
US7779157B2 (en) 2005-10-28 2010-08-17 Yahoo! Inc. Recovering a blade in scalable software blade architecture
US7870288B2 (en) 2005-10-28 2011-01-11 Yahoo! Inc. Sharing data in scalable software blade architecture
US7873696B2 (en) 2005-10-28 2011-01-18 Yahoo! Inc. Scalable software blade architecture
US8024290B2 (en) 2005-11-14 2011-09-20 Yahoo! Inc. Data synchronization and device handling

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104811486B (zh) * 2009-06-19 2019-06-14 日本技术贸易株式会社 内容管理装置和内容管理方法
CN104811486A (zh) * 2009-06-19 2015-07-29 日本技术贸易株式会社 内容管理装置和内容管理方法
CN103262063A (zh) * 2010-12-16 2013-08-21 华为技术有限公司 用于在内容导向网络中创建和管理虚拟专用组的方法和设备
WO2012079482A1 (en) * 2010-12-16 2012-06-21 Huawei Technologies Co., Ltd. Method and apparatus to create and manage virtual private groups in a content oriented network
US8918835B2 (en) 2010-12-16 2014-12-23 Futurewei Technologies, Inc. Method and apparatus to create and manage virtual private groups in a content oriented network
CN103262063B (zh) * 2010-12-16 2016-06-29 华为技术有限公司 用于在内容导向网络中创建和管理虚拟专用组的方法和设备
WO2014023257A1 (zh) * 2012-08-09 2014-02-13 华为终端有限公司 指令处理方法、装置和系统
US9704503B2 (en) 2012-08-09 2017-07-11 Huawei Device Co., Ltd. Command handling method, apparatus, and system
WO2014190690A1 (zh) * 2013-05-31 2014-12-04 华为技术有限公司 信息为中心网络icn中转发报文的方法、装置及系统
CN111954996A (zh) * 2017-12-19 2020-11-17 维我系统公司 用于控制电子通信的系统和方法
CN111954996B (zh) * 2017-12-19 2022-08-23 维我系统公司 用于控制电子通信的系统和方法
CN110166523A (zh) * 2019-04-09 2019-08-23 腾讯科技(深圳)有限公司 内容更新方法、装置、设备和计算机可读存储介质
CN110166523B (zh) * 2019-04-09 2022-12-27 腾讯科技(深圳)有限公司 内容更新方法、装置、设备和计算机可读存储介质

Also Published As

Publication number Publication date
WO2007011533A2 (en) 2007-01-25
EP1908256A2 (en) 2008-04-09
KR101035472B1 (ko) 2011-05-18
US20070014278A1 (en) 2007-01-18
US20070014303A1 (en) 2007-01-18
US20070028000A1 (en) 2007-02-01
WO2007011533A3 (en) 2008-04-10
US7849199B2 (en) 2010-12-07
JP4881380B2 (ja) 2012-02-22
KR20080032183A (ko) 2008-04-14
JP2009510811A (ja) 2009-03-12

Similar Documents

Publication Publication Date Title
CN101317416A (zh) 内容路由器
US7631045B2 (en) Content router asynchronous exchange
US7623515B2 (en) Content router notification
US20070038703A1 (en) Content router gateway
US20070014277A1 (en) Content router repository
US20070014307A1 (en) Content router forwarding
CN101711386B (zh) 在外部和/或本地电子邮件服务器和/或无线设备之间同步电子邮件消息
CN102027461B (zh) 扩展的消息收发平台
US9723460B1 (en) Device message management system
US8484746B2 (en) Method and system for managing electronic messages
US20080091782A1 (en) Method and system for delegating and managing tasks over instant messenger
CN101193077A (zh) 用于订阅匹配的方法和系统
CN101702943A (zh) 用于高速缓存无线数据服务中的电子邮件消息的装置和方法
CN101854351A (zh) 用于基于标准的消息传输的系统和/或方法
US7373424B2 (en) Exactly once protocol for message-based collaboration
US20060086798A1 (en) Deferred email message system and service
KR100438757B1 (ko) 휴대통신기구 및 유무선 인터넷을 이용한 정보관리시스템및 그 방법
JP5607461B2 (ja) システム及びゲートウェイ
JP3973352B2 (ja) 電子メール仲介装置および電子メール送達方法
CN101924815A (zh) 3g moa 手机中间件嵌入式系统
CN110519212A (zh) 一种基于匿名推断的通信转发系统
JP2006135662A (ja) ファイル転送中継方法とファイル転送中継システム
JP2005020706A (ja) 電子メール送受信システム
JPH11239170A (ja) 分散型メールシステム並びにメール到着確認用プログラムを記録した記録媒体
CN112910763A (zh) 一种提供实时数据接口服务的方法、装置、设备及介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1127445

Country of ref document: HK

C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20081203

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1127445

Country of ref document: HK