CN101238435B - 对等通信*** - Google Patents

对等通信*** Download PDF

Info

Publication number
CN101238435B
CN101238435B CN2006800289994A CN200680028999A CN101238435B CN 101238435 B CN101238435 B CN 101238435B CN 2006800289994 A CN2006800289994 A CN 2006800289994A CN 200680028999 A CN200680028999 A CN 200680028999A CN 101238435 B CN101238435 B CN 101238435B
Authority
CN
China
Prior art keywords
peer
transmitting
information receiving
data
message
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.)
Active
Application number
CN2006800289994A
Other languages
English (en)
Other versions
CN101238435A (zh
Inventor
S·M·德米塞
W·M·辛特尔
B·E·约翰森
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN101238435A publication Critical patent/CN101238435A/zh
Application granted granted Critical
Publication of CN101238435B publication Critical patent/CN101238435B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/131Protocols for games, networked simulations or virtual reality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/06Optimizing the usage of the radio link, e.g. header compression, information sizing, discarding information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/12Messaging; Mailboxes; Announcements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/26Network addressing or numbering for mobility support
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W92/00Interfaces specially adapted for wireless communication networks
    • H04W92/16Interfaces between hierarchically similar devices
    • H04W92/18Interfaces between hierarchically similar devices between terminal devices

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种将应用程序数据从一个网络对等体上的应用程序组件发送至另一个网络对等体上的应用程序组件的对等通信***。对该通信***提供编程接口以便于编程依赖于通信的应用程序。通信***使用每个对等体都会出于对等应用程序组件之间的通信之外的其他目的而连接的消息收发提供方,由此降低对等应用程序层要求用于通信的资源并使得该***可有利地在便携式电子设备中使用。此外,该通信***使用已经在每个消息收发提供方中分配的地址,从而允许对等体之间的对等通信可以已经是不可寻址的。

Description

对等通信***
发明背景
计算机***广泛地用于数据通信并用于提供依赖于不同位置上各计算设备之间数据交换的许多商业和个人应用程序。因特网是广泛使用的通信网络的一个示例。这些网络包括多个互连的服务器和其他设备,可以向这些服务器和其他设备发送数据或由连接至网络的其他设备从中获取数据。为了实现指向网络内特定设备的网络通信,可向每个设备分配一网络地址。每个地址同时是唯一且永久的,意味着在网络上发送的任何消息都包含总是要被路由至指定设备的该设备的地址。
依赖于网络通信的许多应用程序的用户作为“对等体(peer)”连接至网络。在此上下文中,“对等体”指的是包含通常可由单个用户通过其获取对网络的访问的硬件和软件的平台。结果,在网络上可以存在比诸如服务器的其他设备多得多的对等体。因为网络可用的地址数通常有限,所以常常没有足够的网络地址为每个对等体分配唯一的网络地址。
并非为其分配唯一和持久的地址,每个对等体常规上通过诸如路由器的执行网络地址翻译(NAT)的设备连接至网络。路由器具有唯一且永久的网络地址以使得在网络上发送的消息可寻址至该路由器。而该路由器又经子网连接至多个对等体。每个对等体可被分配仅在该子网中有意义的地址。
在对等体发送针对经网络传送的消息时,它可以***其子网地址作为消息从何处发送的地址。路由器经子网接收这些消息并将它们转发到网络上。在转发消息之前,路由器将对等体的子网地址翻译成可被识别为有效网络地址的其自身的地址。
处理消息的服务器和其他网络设备可以使用该消息内的地址以将一响应导向该原始消息的发送者。因此,路由器接收针对通过其子网连接的任何对等体的所有响应。路由器随后经其子网转发这些消息,但首先是将每个进入消息中的地址翻译为意欲接收该消息的对等体的子网地址。以此方式,每个对等体可以经网络发送消息并接收响应。
但是,因为对等体的地址不是唯一且永久的,所以网络设备难以发起与对等体的通信。为了发起与对等体的通信,另一对等体或网络设备需要发现用于向该对等体发送消息的地址。
避免对地址发现的需要的一种方法是通过使用存储转发消息收发***。存储转发消息收发***利用在网络内具有唯一和永久地址的中继服务器。针对一对等体的消息可被发送至中继服务器,后者则存储该消息。中继服务器等待该消息意欲发送的对等体发送一消息至该中继服务器来要求针对该对等体的任何存储的消息。这一消息会包括中继服务器可用其将响应导向该对等体的地址,并且该中继服务器可以将针对该对等体的任何存储的消息作为响应发送给该消息。
为了存储转发***能够工作,中继服务器必须能够标识这些消息所针对的特定对等体。为了标识对等体,中继服务器可以建立其自身的寻址机制。因为这些地址不被用作网络地址,所以中继服务器不受分配地址中可用网络地址有限的约束。
电子邮件是存储转发收发***广泛使用的一个示例。电子邮件服务的每个用户都具有一电子邮件地址,该地址可由中继服务网和其他对等体用于将消息路由至用户从中访问电子邮件***的对等体。
其他的网络寻址机制是已知的。某些消息收发提供方使用为每个对等体分配网络地址的网络。例如,蜂窝电话***为每个对等体分配唯一且永久的地址(即,电话号码),允许文本消息以SMS格式从一个对等体传送至另一对等体而无需中继服务器的介入。
作为另一示例,即时消息收发使用另一种方法来提供向对等体的消息实时传输。在即时消息收发格式中,可用于接收消息的对等体向由消息提供方操作的中继服务器标识其自身。一旦中继服务器获得可通过其将消息发送至对等体的地址,则该地址就被提供给希望与该对等体通信的其他对等体。
发明概述
本发明涉及对等通信。在一个方面,编程接口被提供给可以接收或发送数据的每个对等体上的通信组件。该接口使得要求对等通信的应用程序程序的创建更为便利。
通信组件可以使用出于在对等应用程序之间通信数据之外的其他原因而在对等体上访问的消息收发提供方来发送和接收消息,以允许在不消费实质通信资源的情况下实现对等应用程序,这对诸如智能电话、PCA和袖珍式PC之类的资源受限的设备尤为重要。使用现有的消息收发提供方发送对等应用程序数据也通过使用业已建立的寻址机制而简化了通信。
在另一方面,通信组件可以聚集从多个消息收发提供方接收的消息或者从多个消息提供方中选择一个消息提供方来发送消息。这一结构允许消息收发提供方提供带有不同特性的服务,这些特性可用来达到各种应用程序的需要,或者达到同一应用程序在不同时刻的需要,诸如通过允许消息提供方供应不同的传输特征用以被用于为同一应用程序传送不同的消息类型。
以上概述并不限制由所附权利要求定义的本发明。
附图简述
附图不旨在被按比例绘制。在附图中,各个附图中示出的每一完全相同或近乎完全相同的组件由同样的标号表示。为清楚起见,不是每个组件在每张附图中均被标号。附图中:
图1是对等网络的略图;
图2是示出了在图1对等网络中使用的软件架构的图示;
图3是示出了与具有图2架构的软件相关联的数据结构的略图;
图4是由对等体用于发送消息的进程的流程图;以及
图5是用于接收消息的进程的流程图。
详细说明
人们已经认识到能够从提供依赖于对等通信的应用程序中获得显著的益处。通过为这些应用程序提供简单的交换数据方法,就能够更容易地开发用于对等环境的应用程序。
如下将进一步详述,提供编程接口以允许应用程序程序使用现有消息收发提供方来发送和接收数据。接口允许在每个对等体上运行的应用程序以一种与应用程序向数据存储中存储信息并从中检索信息极为类似的方式来与其他对等体交换数据。应用程序开发者由此就无需理解网络寻址或与网络通信相关联的复杂事务。作为进一步的优势,使用现有的消息收发提供方就能够基于对等通信大幅降低应用程序的大小。这一大小的降低在资源受限的***中尤为重要。因此,提供一种通过其消息收发提供方可被轻易访问的应用编程接口就能使得用于便携电子设备的对等应用程序的开发更为便利。
此外,编程接口还能让与其地址通常由其消息收发提供方掩码的设备进行通信变得更为便利。例如,当前用于蜂窝消息收发提供方的寻址技术不提供从应用程序到特定被访地址()的便捷通信机制。
本发明的一个实施例可用于如图1所示的对等网络100。对等网络100具有多个对等体,诸如对等体110A和110B。每个对等体可以是台式计算机或者是任何其他可由网络启用的计算设备。诸如110A和110B的对等体可以通过消息收发提供方120通信。在此示例中,消息收发提供方120提供存储转发型的电子邮件***。
消息收发提供方120在此示例中使用因特网140来传送电子邮件消息。每个对等体110A和110B都通过执行网络地址翻译的设备连接至因特网140,因此不具有固定的因特网地址。在此示例中,对等体110A和110B通过执行网络地址翻译的路由器112A和112B连接。
消息收发提供方120包括中继服务器130。在此示例中,中继服务器130是邮件服务器。中继服务器130具有固定的因特网地址,使得任何对等体可以初始与其的通信。
每个对等体110A和110B都可以包括在其上可以存储数据和计算机可执行指令的计算机可读介质。每个对等体110A和110B上的计算机可读介质的某些部分可以实现使用消息收发提供方120发送或接收电子邮件消息的消息收发客户机230(图2)。例如,对等体110A上的消息收发客户机230可以接收指定要被发送的电子邮件消息和该消息要被发送到的地址的用户输入。消息收发客户机随后可以通过路由器112A将消息发送给中继服务器130。如果电子邮件消息针对通过对等体110B访问网络的用户,则对等体110B上的消息收发客户机230(图2)就可以通过路由器112B来访问中继服务器130以便从服务器130接收电子邮件消息。以此方式,电子邮件消息就从对等体110A发送至对等体110B。可以采取相反的步骤以便将消息从对等体110B发送至对等体110A。
为了便于在对等体110A上运行的应用程序的组件与在对等体110B上运行的应用程序的组件之间共享应用程序数据,对等体110A上的通信客户机230就可以将包含应用程序数据的消息发送给中继服务器130。类似地,对等体110B上的通信客户机230可以从中继服务器130检索包含应用程序数据的消息。通信客户机230随后可以使得该数据对于对等体110B上的收件人应用程序组件可用。以此方式,可在对等体110A上的对等体应用程序组件和对等体110B上的对等体应用程序组件之间建立虚拟链路114。类似地虚拟链路可以在能够访问消息收发提供方120的任何两个或更多对等体之间建立。
对等网络100还可以包括其他的消息收发提供方来用于应用程序数据的传送。在图1的示例中,示出了消息收发提供方160。在此实施例中,消息收发提供方160使用蜂窝电话***传送消息。消息收发提供方160操作多个接入点,诸如接入点170A和170B。接入点可用消息收发主干线180互连。在此示例中,消息收发提供方160是由蜂窝电话公司管理的网络,并且可以传送包括文本消息在内的多种消息。消息收发提供方160的用户通过可以是蜂窝电话、智能电话或配备用于发送和接收消息的其他设备的对等体来访问网络。在此示例中,示出对等体150A和150B作为被构造以SMS格式接收消息的便携式手持电子设备。
消息收发提供方120和160是用来在不同网络对等体上运行的各应用程序组件之间通信数据的消息收发提供方的示例。可以使用任何合适的消息提供方。如在此所述一种使用相对较少资源进行对等通信的简单方法是对基于便携式计算设备的对等体尤为期望的。这些设备通常连接至根据诸如IMAP、POP3、SMTP、SMS、HTTP、TCP/IP和MMS等协议操作的消息收发提供方。
消息收发提供方可以通过web服务或其他合适途径而被间接访问。在网络100,对消息收发提供方160的访问由通过服务器190提供的web服务连接至因特网140的设备进行。服务器190连接至消息收发提供方160主干线180。服务器190可以发送寻址至由消息收发提供方160连接至主干线180的任何对等体(诸如,150A和150B)的消息。此外,服务器190具有由消息收发提供方160识别的网络地址并且可以接收来自通过消息收发提供方160连接的对等体150A和150B的消息。
服务器190还可以通过对因特网140的连接来耦合至诸如对等体110A和110B的对等体,并且与连接至因特网140的任何对等体交换消息。这些对等体可以使用由服务器190提供的web服务以使用消息收发提供方160来发送和接收消息。
服务器190互连消息收发提供方120和160,并且可以使用一个消息收发提供方将发送的消息转发给经另一消息收发提供方接收消息的对等体。因特网140和主干线180之间的交叉耦合允许数据从连接至因特网140的对等体发送到连接至消息收发提供方160的对等体。虚拟链路154示出了对等体110B和对等体150B之间的通信是可能的。类似的虚拟链路可用于在连接至不同消息收发提供方的对等体之间的应用程序数据的传输。
转到图2,示出了消息收发客户机230的软件架构。这一消息收发客户机可以在期望通信的任何对等体上使用。消息收发客户机230可以在其上执行诸如应用程序210A...210D的各应用程序的对等体上使用。这一对等体也可与电子邮件用户界面250一并编程以提供电子邮件通信。
消息收发客户机230使用多个消息收发提供方,诸如消息收发提供方220A、220B、220C和220D来促进通信。这些消息收发提供方例如可以是提供对电子邮件消息收发***访问的因特网服务提供方、提供对SMS消息收发***访问的蜂窝电话公司、或者现在已知或今后开发的任何其他的消息收发提供方。这一消息收发提供方不必是商业实体,并且网络对等体通过其发送消息的任何机制都可认为是“消息收发提供方”。消息收发提供方也不一定是由单个实体建立的。“消息收发提供方”可以是由不同实体拥有或操作的交互用以传输消息的组件的集合。
在示出的实施例中,消息收发客户机230可以被实现为存储在与对等体相关联的计算机可读介质上的多个计算机可执行指令。在对等体被实现为在台式计算机或其他计算设备上执行的软件时,计算机可读介质可以是计算设备中的计算机存储器。计算机可执行指令可以由任何期望的编程语言准备并且可以在存储到计算机可读介质内之前被转换为机器码或可执行码,或者可以在运行时被解释或应用于JIT编译器以导出可执行码。
在图2中,计算机可执行指令标记消息收发客户机230可以被组织为多个模块,每个模块都可执行与该消息收发客户机相关联的功能。每个模块可以根据用于创建模块的编程语言的构造来与其他模块交互。例如,每个模块都可以包含被暴露给其他模块的函数调用,以使得一个模块的函数都可从另一模块中调用。作为替代,该模块可以用解析为链接一部分的从一个模块到另一模块的参考而被链接入一个可执行文件。作为另一替代,每个模块可以是在执行时被动态链接的模块库的一个元素。因此,可以使用在其中每个模块都被实现并且在其中各模块的交互都不是对本发明至关重要的特定形式以及任何合适的方法。
在图2中示出的模块之一是消息收发聚集器232。消息收发聚集器232用作对多个消息收发提供方220A...220D的接口。它包括收件箱236和发件箱234。消息收发聚集器232可被构造为使用已知技术与各个消息收发提供方交互。然而,消息收发聚集器232提供与多个消息收发提供方交互的机制。在示出的实施例中,消息收发聚集器232包括通过其可从任何消息收发提供方接收消息的收件箱236以及通过其可使用任何消息收发提供方发送消息的发件箱236。
收件箱236可以接收来自所有消息收发提供方220A...220D的消息并且在存储器中缓冲这些消息直到由电子邮件用户界面250或诸如210A...210D的应用程序处理。消息可以连同对消息源的指示一并存储,它可以包括对通过其接收消息的消息收发提供方的指示。这一指示可以被显式地存储或者可从存储的其他信息中隐式地表示。例如,消息可以包括对消息来源地址的指示,它可以指示发送该消息的消息收发提供方。
发件箱234可以接收来自电子邮件用户界面250或应用程序210A...210D的消息并且在存储器中缓冲这些消息直到它们被发送。发件箱可以缓冲要经任何消息收发提供方传输的消息。要传输的每个消息可以与诸如对要经其传输的消息收发提供方的指示之类的消息路由信息一并存储。这一指示可被显式地包括在消息内或者可被隐式地包括,诸如通过以标识通过其发送这一消息的消息收发提供方的格式来指示该消息的目的地地址。
为了方便提供消息路由信息,消息收发客户机230包括消息路由信息模块242。消息路由信息模块242可以包含与每个被访地址的路由信息相关联的被访地址目录。路由信息可以包括对把消息传输至各地址有用的一个或多个被访地址。该路由消息可以显式地指定能够将消息携带至该被访地址的消息收发提供方。作为替代或者附加,也可以基于存储的地址格式隐式地提供路由信息。在某些实施例中,消息路由信息模块242可以包括与传输至单个被访地址的多于一个模式有关的路由信息,从而允许消息收发客户机230选择对于被递送消息的形式最为合适的消息收发提供方,或者在消息无法经首先选择的消息收发提供方递送的情况下使用替换的消息收发提供方。发件箱234可以使用路由信息来设置使用消息收发提供方220A...220D之一来传输的消息的格式。
图2示出了便于计算机应用程序之间对等消息的消息收发客户机230的附加模块。在示出的实施例中,消息收发客户机230包括消息分派器238、注册表240以及便于消息收发客户机230与电子邮件用户界面250或应用程序210A、210B、210C和210D之间通信的应用编程接口(API)244。
在此示例中,应用程序210A、210B、210C和210D表现为可以在对等体上执行的任何应用程序。应用程序可以是诸如字处理程序或电子数据表的数据处理应用程序。在此示例中,数据处理应用程序可以按在其中从另一对等体获取数据或向其发送数据的对等模式来操作。数据可被发送至相应的数据处理应用程序或者生成或使用数据的任何其他应用程序,或者从该应用程序中被接收。
然而,本发明不限于结合数据处理应用程序使用,并且应用程序210A、210B、210C和210D可以是能够在对等模式中操作的现在已知或将来开发的任何应用程序。例如,应用程序210A、210B、210C和210D的部分或全部可以是游戏或者其他娱乐用对等应用程序。在其中应用程序是游戏的实施例中,对等网络100内的对等体各自可配备有游戏应用程序的组件。在对等体之间发送的数据可以表现为在游戏中“移动”或其他游戏信息。
电子邮件用户界面250包括将用户界面呈现给其上安装有消息收发客户机230的对等体的人类用户的软件。该界面的确切形式可以依赖于对等体计算机处理器的硬件组件,诸如通过鼠标或其他定位设备激活的在显示器上呈现的图形用户界面、通过键盘访问的文本界面、或者通过音频界面服务的自然语言界面。电子邮件用户界面250也接收来自人类用户的指定要发送电子邮件消息的内容以及有关该消息的路由信息的文本或其他输入。
电子邮件用户界面250和每个应用程序210A、210B、210C和210D可被实现为包含计算机可执行指令的一个或多个组件。计算机可执行指令可以是任何合适的计算机语言。这些应用程序是本领域内已知的,并且电子邮件用户界面250和应用程序210A、210B、210C和210D可以使用已知的编程技术来构造。
电子邮件用户界面250和应用程序210A、210B、210C和210D不同于本领域内已知的常规电子邮件客户软件和应用程序,因为它们使用API244发送和接收消息。API244提供一种机制,该机制用于应用程序210A、210B、210C和210D向另一对等体上的应用程序组件发送数据或从中接收数据并用于电子邮件用户界面250与其他对等体上的电子邮件客户机发送和接收电子邮件消息。API244简化了应用程序的编程和电子邮件客户机的创建,因为它不需要这些程序去包括执行由消息收发客户机230执行的任何数据通信功能的软件。
在某些实施例中,API244提供对应用程序210A、210B、210C和210D的接口,该接口的形式与对数据存储的接口的形式相同。因为数据存储通常在应用程序中使用,所以API244提供一种机制,用于计算机程序员使用熟悉形式的简单命令将对等通信合并入一个应用程序。API244还提供用于电子邮件用户界面250的功能,诸如常规地可在电子邮件客户机中找到的发送和接收消息功能,以及允许电子邮件用户界面250即使在使用多个消息收发提供方发送消息的情况下仍比传统的电子邮件客户机更为简单的功能。
API244可以是包含以任何合适的计算机语言编写的计算机可执行指令的模块。在此实施例中,API244可以被动态连接至电子邮件用户界面250和应用程序210A、210B、210C和210D,以使得在API244中实现的各函数可以从电子邮件用户界面250和应用程序210A、210B、210C和210D中调用。链接还允许应用程序210A、210B、210C和210D和电子邮件用户界面250中的函数从API244内调用。
在此实施例中,API244包括可以从应用程序210A、210B、210C和210D和电子邮件用户界面250中调用的多个通信函数。一个这类函数(“SEND(发送)”函数)可以使用该对等体已访问的消息收发提供方来传输数据。为了发送数据,API244将数据提供给发件箱234。
SEND函数可以同步或异步地操作。对于同步操作,函数可以在消息由所选消息收发提供方发送时返回,由此阻止调用程序的运行直到该传输完成。对于异步操作,该SEND函数可以操作而不阻止调用程序的执行。
发件箱234可以按适当的形式向期望的消息收发提供方提供消息。例如,发件箱234可以设置消息的格式以带有指示其针对的被访地址、发件人地址、时间戳或其他期望信息的头部并在消息正文中添加数据。
由API244提供的SEND函数可以对信息收件人的指示作为其一个参数来接收。收件人可以按任何合适的方式标识。在一个实施例中,收件人被识别为命名的被访地址并且无需被有关经由消息收发提供方之一连接的对等体的地址所指定。发件箱234可以从消息路由信息模块242内的记录中确定具有由消息收发提供方220A...220D之一识别的格式的合适地址。以此方式,应用程序信息可以从一个对等体的应用程序组件发送至另一对等体的应用程序组件,而无需对该应用程序组件编程以使用对等体地址。
为了便于向意欲的应用程序组件递送消息,一旦消息达到其上执行该应用程序组件的对等体,就可构造消息收发客户机230以使得用于在对等体应用程序之间通信的数据在传输前由标识符标记。例如,API244内的SEND函数在将数据传递至发件箱234之前,可以附加一应用程序标签,以将数据标识为表示对等通信的数据。这一应用程序标签还可以标识该数据来源于何种应用程序和/或该数据所针对的应用程序。作为替代,数据可用应用程序标签来标记,从而将该数据标识为表现要由电子邮件用户界面250处理的电子邮件消息。
一经消息收发提供方220A,...220D接收包含有关应用程序210A、210B、210C和210D之一数据的消息,通信客户机230就可使用应用程序标签来管理数据对适当应用程序的递送。在图2的实施例中,消息分配器328检索来自发件箱234的消息并通过API244将其转发到意欲的收件人应用程序。
消息分派器238可以是包括计算机可执行指令的组件,这些计算机可执行指令监视收件箱236内的消息并且按需基于接收到消息内的应用程序标签将消息内的数据转发给电子邮件用户界面250或者应用程序210A...210D之一。递送可以由将数据通过API244呈现给收件人应用程序的组件的消息分派器238实现。
在接收到包含应用程序数据的每个消息时,消息分派器238确定多个应用程序210A、210B、210C和210D中的哪一个要接收来自该消息的数据。在描述的实施例中,注册表240可由消息分派器238维持以跟踪哪些应用程序可用于接收数据。如前所述,标识应用程序接收消息内数据的应用程序标签可以在传输之前被附加给该数据。应用程序标签可以类似地将消息标识为包含电子邮件数据,从而允许消息分派器238类似地将电子邮件数据连接至电子邮件用户界面250。
注册表240可以包含由消息分派器238使用的信息,用以将信息基于应用程序标签传递给收件人应用程序。例如,每个应用程序可以提供通过其接收数据的函数。该函数的名称和其他标识符可以结合应用程序标签在注册表240内存储。消息分派器238可以读取收件箱236中信息内的应用程序标签并且标识注册表240内有关该应用程序标签的条目。作为注册表240内该条目的一部分,可以提供有关该应用程序的函数。消息分派器238可以从收件箱236中移除消息并象注册表240中指示的那样调用有关该应用程序的函数。对于导向电子邮件用户界面250的消息,来自该消息的数据可以类似地通过在注册表240内标识的电子邮件用户界面250内的函数来供应。
如上所述,来自收件箱236内消息的数据由消息分派器238推入收件人应用程序。将数据推入应用程序不是必须的。每个应用程序可以拉入数据。为了实现拉入架构,消息分派器238可以包含可由应用程序210A...210D或电子邮件用户界面250调用的“RECEIVE(接收)”函数。这一函数可以检查收件箱236内的消息以标识包含有关该应用程序调用RECEIVE函数的消息。应用程序标签也可用于将收件箱236内的消息匹配该意欲的应用程序,虽然也可以使用任何合适的途径。
API244也可被编程以包含其他通信函数,例如管理存储在消息路由信息模块242内信息的函数。例如,API 244可被编程以带有添加或移除消息路由信息模块242内的记录的函数。这一函数可由接收用户输入的应用程序210A...210D之一调用,该用户输入指定了在对等网络100中该应用程序将与其交换数据的对等体。相反地,应用程序可以在不再期望与通过在一记录中指定的地址可达到的对等体通信时调用API244内的函数以从数据结构300中移除该记录。数据结构300中的记录可以通过由电子邮件用户界面250做出的函数调用而被类似地添加或移除。
API244可以包括被调用来编辑数据结构300内任何记录中的信息的函数。API244还可以包含允许应用程序搜索在数据结构300内特定记录的函数。在数据结构内添加、移除、编辑或搜索记录的函数是已知的。因此,在API244内的这些函数可以使用现在已知或将来开发的常规编程技术来实现。
API244可以为管理消息收发客户机230提供其他的功能性。例如,API244可以提供应用程序可调用以向消息分派器238注册的函数。这一函数可以将包括有关于该应用程序调用该注册函数的应用程序标签的记录放入注册表240。注册函数除了关于该应用程序的应用程序标签之外,还可以存储至该应用程序的入口点,而消息分派器238可以使用该入口点发送来自指向该应用程序的消息的数据。
转到图3,示出了消息路由信息模块242的额外细节。消息路由信息模块242可被实现为任何合适形式的数据结构。图3示出了可被使用的数据结构的示例。数据结构300可被存储在与其上执行消息收发客户机230的对等体相关联的计算机可读存储器内。
图3的示例示出了包括诸如记录310A、310B和310C的多个记录的数据结构300。每个记录可以包含多个字段,在记录310C中这些字段被编号为320C、322C和324C。
字段320C存储被访地址。被访地址可以被存储为由编码标识符或任何其他合适方式编码的文本字符串。被访地址无需是可由任何消息收发提供方使用的地址。例如,被访地址可被指定为人类用户或应用程序组件。
字段322C标识消息收发提供方,经该消息收发提供方,消息可被发送至在字段320C中标识的被访地址。可以使用任何合适的方法来表示消息收发提供方,诸如通过存储消息收发提供方的名称、与消息收发提供方相关联的代码或者通过其可访问消息收发提供方的端口。
字段324C包括一地址,通过该地址,就可使用在字段322C中标识的消息收发提供方来访问字段320C内标识的被访地址。
数据结构300可以包括在被访地址字段内具有相同值的多个记录,以指示相同的被访地址可使用多个消息收发提供方来访问。作为替代,数据结构300内的记录可以具有比指示的更多的字段,从而允许多个消息收发提供方指定一被访地址。
转向图4,示出了一进程,通过该进程可将数据作为对等通信的一部分传输。在此示例中,可以使用操作存储转发消息收发***的消息收发提供方来传输数据,虽然可以使用任何合适的消息收发提供方。图4的进程包括在应用程序内执行的用以发送数据的子进程410。在框412,应用程序生成要发送的数据。框412可以表现为应用程序的常规处理。例如,在字处理应用程序中,处理程序框412可以涉及获取用户输入,而这能够以任何合适方式来获取。
在框414,应用程序通过做出对API244内SEND函数的调用来开始该传输进程。在框414做出的对API244的调用包括将标识被访地址和要发送数据的参数传递给SEND函数。在此示例中,被访地址信息通过指定应用程序的应用程序标签来处理远程对等体上的该数据,标识接收该通信的对等体内的另一应用程序组件。
随后在消息收发客户机230内执行子进程420。在框414内做出的对API244的SEND函数的调用导致对消息路由信息模块242的访问。与在框414做出的对API的调用中指定的被访地址相关联的路由信息从数据结构300中检索。该信息指定消息收发提供方以及由该消息收发提供方识别的与意欲接收该数据的对等体相关联的地址。对等体的该地址不必是该对等体的网络地址,而可以是能够由该消息收发提供方识别的任何地址。例如,当使用存储转发消息收发提供方时,消息可以首先被传输至中继服务器,并且从中继服务器中检索出该消息的对等体可以是无法经用于传输该消息的网络来寻址的。
在框424,选择消息收发提供方。当在数据结构300内存在单个条目用于被指定为在框414调用的SEND命令的参数的被访地址的情况下,在框424选择在该记录内指定的消息收发提供方。在存在有关这一被访地址的多个记录的情况下,在框424的处理可以涉及执行一算法来选择较佳的消息收发提供方。可以基于传输等待延迟时间、要通信的数据量、或者与每个消息收发提供方相关联的其他因素以及期望的传输特性来从多个消息收发提供方中选择传输该消息的消息收发提供方。
在框425,一个或多个应用程序标签被添加至要被传输的数据应用程序标签可以标识生成该待传输数据的应用程序和/或要接收该数据的应用程序。
在框426,消息聚集器232将该数据、该应用程序标签以及该应用程序在其上执行的对等体的目的地址格式为一消息。消息则具有可由被选择的消息收发提供方识别的以传输该消息的形式。这一消息例如可以包括其内包含要接收该消息的对等体的地址的头部。为该被选消息收发提供方将适当格式化的消息被传递给发件箱234。
在框430,发件箱234内的消息可由所选的消息收发提供方发送。在此示例中,所选的消息收发提供方是存储转发消息收发提供方。因此,使用该消息收发提供方的消息传输导致在框432该消息被存储在中继服务器上。
图4的进程也可用于由电子邮件用户界面250来发送电子邮件消息。当发送电子邮件时,在框425附加将数据标识为电子邮件消息的应用程序标签。
图5示出了一进程,通过该进程由一个对等体发送的数据可由远程对等体上的应用程序接收并且可以作为图4进程的继续而被执行的。图5的进程在框510处开始,其中与该对等体相关联的消息收发客户机230的消息聚集器232将消息移入收件人236。在消息是经存储转发消息收发提供方传送的示例中,框510涉及从中继服务器中检索消息并将其移入收件箱236。其他消息收发提供方可以利用使得消息到达收件箱236而无需消息收发聚集器232始发一传输的推入式技术。
接下来执行子进程520。在此示例中,子进程520在其上运行有接收该数据的应用程序的对等体内的消息分派器238中执行。在框522,从收件箱236中读出消息。在框524,消息分派器238分析该消息的数据部分以读取作为消息传输的一部分而在框424(图4)附加至该数据的应用程序标签。消息分派器238把从接收到的消息中的应用程序标签与存储在前注册表240内的标识码相比较以标识该数据是针对哪个应用程序。
在框526,消息分派器238可以提取接收到的消息的数据部分。该数据用于在框528调用API244内的RECEIVE函数。在框528调用的RECEIVE函数接受在框526提取的数据作为参数。该函数还接受从注册表240中读取的用于标识入口点的信息作为参数或者通过一种方法来使得标识的应用程序接收消息的其他方法。在框528做出的对API244的调用随后使用为该应用程序程序指定的入口点将数据传送至指定的应用程序。
处理随后行进至框530。在框530,接收该数据的应用程序根据该应用程序处理数据。处理可以独立于数据被传输至该应用程序的方法。
至此描述了本发明的至少一个实施例的若干方面,可以理解,本领域的技术人员可容易地想到各种更改、修改和改进。例如,可以结合作为诸如个人计算机或智能电话的单个用户设备的对等体来描述本发明。然而,本发明不是如此受限。以上描述的***可用于从通常被认为是服务器的设备传输至对等体。在此实施例中,服务器可以推入通知消息的对等体设备。
作为另一个示例,软件可被描述为由多个模块构成。每个模块可以是物理上分开的一组计算机可执行指令,诸如可以按源代码或可执行码的形式被存储在计算机可读介质的分开和可识别部分。然而,模块可以被组合或实现为较大程序的一部分或者一个程序的组件,并且可以不具有可分开标识的结构。在后一种情况下,“模块”可以是较大组件的功能部分。
作为一个额外变化的示例,以上描述了在其中消息收发提供方被用于将消息从一个对等体传送至远程对等体的实施例。消息可以按任何方式通信。单个消息也可以使用多个提供方通信。例如,消息可以使用第一电子邮件消息收发提供方来传输,其中该第一电子邮件消息收发提供方将消息中继至蜂窝电话公司以供递送至远程对等体。因此,任何数目或组合的消息收发提供方或通信信道可以用作消息的消息收发提供方。
此外,可由API或消息收发客户实现的通信功能不限于上述指定的消息。例如,通信***的某些组件可以被编程以轮询数据结构300内的被访地址,从而找出期望和/或能够参与对等通信的被访地址。这一功能对实现多人游戏的应用程序组件尤为有用。可以轮询各被访地址以找出期望参与游戏的被访地址。即使这一功能没有被实现为消息收发客户机230的一部分,应用程序仍可通过使用从数据结构300中读取条目的功能来轮询地址并将消息发送给该地址。
这样的更改、修改和改进旨在是本公开的一部分,且旨在处于本发明的精神和范围内。从而,前述描述和附图仅用作示例。
可按照众多方式中的任一种来实现本发明的上述实施例。例如,可使用硬件、软件或其组合来实现各实施例。当使用软件实现时,软件代码可在无论是在单个计算机中提供的还是在多个计算机之间分布的任何合适的处理器或处理器的集合上执行。
而且,此处略述的各种方法或过程可被编码为可在采用各种操作***或平台中任何一种的一个或多个处理器上执行的软件。此外,可使用多种合适的程序设计语言和/或常规程序设计或脚本工具中的任何一种来编写这样的软件,而且它们还可被编译为可执行机器语言代码。
在此方面,本发明可被具体化为用一个或多个程序编码的一个或多个计算机可读介质(例如,计算机存储器、一个或多个软盘、紧致盘、光盘、磁带等),当这些程序在一个或多个计算机或其它处理器上执行时,它们执行实现本发明上述各个实施例的方法。这一个或多个计算机可读介质可以是可移动的,使得其上存储的程序可被加载到一个或多个不同的计算机或其它处理器上以便实现本发明上述的各个方面。
此处以一般的意义使用术语“程序”或“软件”,来指可被用来对计算机或其它处理器编程以实现本发明上述的各个方面的任何类型的计算机代码或指令集。此外,应理解,根据本实施例的一个方面,当被执行时实现本发明的方法的一个或多个计算机程序不必驻留在单个计算机或处理器上,而可以模块化的方式分布在多个不同的计算机或处理器之间以实现本发明的各方面。
计算机可执行指令可以具有可由一个或多个计算机或其他设备执行的各种形式,诸如程序模块。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,它们执行特定任务或实现特定抽象数据类型。通常,程序模块的功能可以按需在各个实施例中进行组合或分布。
本发明的各个方面可单独、组合或使用未在前述实施例中特别讨论的各种安排来使用,从而并不将其应用程序限于前述描述中所述或附图中所示的组件的细节和安排。例如,一个实施例中描述的各方面可使用任何方式与另一实施例中描述的各方面组合。
在权利要求书中使用诸如“第一”、“第二“、“第三”等序数词来修饰权利要求元素本身并不意味着一个权利要求元素较之另一个权利要求元素的优先级、先后次序或顺序、或者方法的各动作执行的时间顺序,而仅用作将具有某一名字的一个权利要求元素与具有同一名字(除序数词的使用之外)的另一元素区分开的标签以区分各权利要求元素。
而且,此处所用的短语和术语是为描述起见而不应被认为是限制。此处对“包括”、“包含”、或“具有”、“含有”、“涉及”及其变型的使用旨在包括其后所列的项目及其等效物以及其它项目。

Claims (20)

1.一种对等通信方法,包括:
(a)使用多个消息收发提供方中的至少一个来发送和接收消息;
(b)将数据存储到包括多个条目的数据存储中,每个条目包括用于存储被访地址指示的字段、用于存储所述多个消息收发提供方中的消息收发提供方的指示的字段、以及与所述指示的消息收发提供方内的被访地址相关联的地址;
(c)将应用程序与使用所述多个消息收发提供方之一接收的消息相关联并且将所述消息提供给所述关联应用程序;以及
(d)通过编程接口指定通信相关命令,所述通信相关命令引起所述多个消息收发提供方之一和所述数据存储之间的交互,以执行与所述数据的发送或接收有关的通信功能,其中所述通信相关命令标识被访地址,检索与被访地址相关联的路由信息,所述路由信息指定至少一个消息收发提供方以及所述至少一个消息收发提供方识别的与被访地址相关联的至少一个地址,被访地址无需是由所述多个消息收发提供方使用的地址。
2.如权利要求1所述的方法,其特征在于,所述编程接口适于执行包括在注册表内制作一条目的通信功能。
3.如权利要求1所述的方法,其特征在于,所述编程接口适于执行包括使用所述多个消息收发提供方中的消息收发提供方来发送消息的通信功能。
4.如权利要求1所述的方法,其特征在于,所述编程接口适于执行包括改变所述数据存储内一条目的通信功能。
5.如权利要求1所述的方法,所述方法用于便携式电子设备。
6.如权利要求1所述的方法,另外还包括:
(e)发送消息,所述消息轮询由所述数据存储内各条目指示的被访地址来标识期望接收与对等应用程序有关的通信的被访地址。
7.一种在第一对等体上具有第一组件和在第二对等体上具有第二组件的应用程序之间的通信方法,包括如下动作:
(a)将来自所述第一组件的数据提供给所述第一对等体上的第一存 储转发消息收发客户机,所述数据包括标识被访地址的信息,其中被访地址无需是由多个消息收发提供方的任何一个使用的地址;
(b)用所述第一存储转发消息收发客户机从多个消息收发提供方中选择至少一个消息收发提供方;
(c)使用所述至少一个被选的消息收发提供方以及所述至少一个被选的消息收发提供方识别的与被访地址相关联的至少一个地址,将所述数据发送给所述第二对等体上的第二存储转发消息收发客户机,所述第二存储转发消息收发客户机使用多个消息收发提供方中的至少一个来发送和接收消息;以及
(d)将来自所述第二存储转发消息收发客户机的所述数据提供给所述第二组件。
8.如权利要求7所述的方法,其特征在于,所述应用程序是多人游戏并且所述提供数据的动作(a)包括提供在所述游戏中表示玩家动作的数据。
9.如权利要求7所述的方法,其特征在于,所述发送数据的动作(c)包括将所述数据从所述第一存储转发消息收发客户机发送至中继服务器并从所述中继服务器发送至所述第二存储转发消息收发客户机。
10.如权利要求7所述的方法,其特征在于,所述选择的动作(b)包括根据由IMAP、POP3、SMTP、SMS、HTTP、TCP/IP和MMS组成的集合中的协议进行操作来选择消息收发提供方。
11.如权利要求7所述的方法,其特征在于,所述提供数据的动作(a)包括通过定义的接口提供数据。
12.如权利要求7所述的方法,其特征在于,所述第一存储转发消息收发客户机包括电子邮件程序并且所述方法还包括以下动作:
(e)用所述第一存储转发消息收发客户机接收用户输入以发送基于文本的消息;以及
(f)经所述多个消息收发提供方之一发送所述基于文本的消息。
13.如权利要求7所述的方法,其特征在于,所述动作(d)包括基于所述数据与所述第二组件有关的标识将由所述第二存储转发消息收发客户机接收到的至少一个消息选择性地路由至所述第二组件。 
14.一种在包括多个消息收发提供方、耦合至所述多个消息收发提供方至少一部分的第一对等体、以及耦合至所述多个消息收发提供方至少一部分的第二对等体的***中的对等通信方法,包括:
由第一对等体中的第一通信组件使用所述多个消息收发提供方的至少一部分来发送或接收数据,所述第一通信组件具有第一编程接口,通过所述第一编程接口,数据可被提供以使用所述多个消息收发提供方中的消息收发提供方来传输并且来自所述多个消息收发提供方的消息收发提供方的信息可被传递给应用程序;
由第一对等体中的第一应用程序生成和处理应用程序数据,所述第一应用程序适于通过所述第一编程接口传递生成的应用程序数据并通过所述第一编程接口接收应用程序数据以供处理,其中所生成的应用程序数据包括标识被访地址的信息,所述被访地址的信息无需是由所述多个消息收发提供方使用的地址;
由第二对等体中的第二通信组件使用所述多个消息收发提供方的至少一部分来发送或接收数据,所述第二通信组件具有第二编程接口,通过所述第二编程接口,数据可被提供以使用所述多个消息收发提供方中的消息收发提供方来传输并且来自所述多个消息收发提供方的消息收发提供方的数据可被传递给应用程序;
由第二对等体中的第二应用程序生成和处理应用程序数据,所述第二应用程序适于通过所述第二编程接口传递生成的应用程序数据并通过所述第二编程接口接收应用程序数据以供处理。
15.如权利要求14所述的方法,其特征在于,所述第一对等体和所述第二对等体在所述多个消息收发提供方的至少一个中是不可寻址计算设备。
16.如权利要求14所述的方法,其特征在于,所述多个消息收发提供方的至少一个是存储转发消息收发提供方。
17.如权利要求14所述的方法,其特征在于,所述多个消息收发提供方的至少一个是实时消息收发提供方。
18.如权利要求17所述的方法,其特征在于,所述至少一个实时消息收发提供方使用SMS协议。 
19.如权利要求18所述的方法,其特征在于,另外还包括由web服务使用所述SMS协议以连接至所述至少一个消息收发提供方,由此所述消息收发提供方通过所述web服务耦合至所述第一对等体和所述第二对等体。
20.如权利要求17所述的方法,其特征在于,所述至少一个实时消息收发提供方使用IM协议。 
CN2006800289994A 2005-08-26 2006-07-27 对等通信*** Active CN101238435B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/213,520 2005-08-26
US11/213,520 US7680112B2 (en) 2005-08-26 2005-08-26 Peer-to-peer communication system
PCT/US2006/029534 WO2007024412A2 (en) 2005-08-26 2006-07-27 Peer-to-peer communication system

Publications (2)

Publication Number Publication Date
CN101238435A CN101238435A (zh) 2008-08-06
CN101238435B true CN101238435B (zh) 2012-07-04

Family

ID=37772105

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2006800289994A Active CN101238435B (zh) 2005-08-26 2006-07-27 对等通信***

Country Status (6)

Country Link
US (1) US7680112B2 (zh)
EP (1) EP1917580B1 (zh)
JP (1) JP4866422B2 (zh)
KR (1) KR20080047344A (zh)
CN (1) CN101238435B (zh)
WO (1) WO2007024412A2 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070271234A1 (en) * 2006-05-22 2007-11-22 Ravikiran Chickmangalore N Information Exchange Among Members of a Group of Communication Device Users
US9225552B2 (en) * 2010-05-24 2015-12-29 Microsoft Technology Licensing, Llc Mail service management system
US7912983B1 (en) 2010-10-21 2011-03-22 Intelepeer, Inc. Multi-layer stack platform for cloud communications
EP3278505B1 (en) * 2015-03-30 2020-07-08 Irdeto B.V. Monitoring a peer-to-peer network
KR101962022B1 (ko) 2017-07-18 2019-03-25 주식회사 에스원 에지 서버를 활용한 피-투-피 접근 시스템 및 그 방법
US20230292141A1 (en) * 2022-03-09 2023-09-14 Netgear, Inc. Repurposing consumer electronic devices as nodes in wireless mesh networks

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1518394A (zh) * 2003-01-06 2004-08-04 三菱电机株式会社 远程工厂监视***和远程工厂监视方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05252155A (ja) * 1992-03-05 1993-09-28 Hitachi Ltd 電子メールアドレス情報交換方式
WO2000065438A2 (en) * 1999-04-28 2000-11-02 Tranxition Corporation Method and system for automatically transitioning of configuration settings among computer systems
JP2002101118A (ja) * 2000-09-25 2002-04-05 Sanyo Electric Co Ltd 電子メール中継装置
US7269624B1 (en) * 2000-12-20 2007-09-11 At&T Bls Intellectual Property, Inc. Method and apparatus for dynamically managing electronic mail messages on a remote electronic mail messaging system
CN101030275B (zh) * 2001-02-12 2013-11-06 Emc公司 索引惟一电子邮件消息及其使用的***和方法
US7099871B2 (en) * 2001-05-04 2006-08-29 Sun Microsystems, Inc. System and method for distributed real-time search
US7212808B2 (en) * 2002-10-15 2007-05-01 Wildseed Ltd. Unified message box for wireless mobile communication devices
US20040186918A1 (en) * 2003-03-21 2004-09-23 Lonnfors Mikko Aleksi Method and apparatus for dispatching incoming data in a multi-application terminal
US7430581B2 (en) * 2004-01-14 2008-09-30 Research In Motion Limited System and method for wirelessly provisioning a mobile communication device
US8112103B2 (en) * 2004-01-16 2012-02-07 Kuang-Chao Eric Yeh Methods and systems for mobile device messaging
US20060031309A1 (en) * 2004-05-20 2006-02-09 International Business Machines Corporation Electronic mail attachment management system and method
US20060009243A1 (en) * 2004-07-07 2006-01-12 At&T Wireless Services, Inc. Always-on mobile instant messaging of a messaging centric wireless device

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1518394A (zh) * 2003-01-06 2004-08-04 三菱电机株式会社 远程工厂监视***和远程工厂监视方法

Also Published As

Publication number Publication date
US20070061476A1 (en) 2007-03-15
JP2009506425A (ja) 2009-02-12
EP1917580A2 (en) 2008-05-07
EP1917580B1 (en) 2015-04-15
CN101238435A (zh) 2008-08-06
EP1917580A4 (en) 2012-11-14
WO2007024412A2 (en) 2007-03-01
KR20080047344A (ko) 2008-05-28
WO2007024412A3 (en) 2007-07-19
US7680112B2 (en) 2010-03-16
JP4866422B2 (ja) 2012-02-01

Similar Documents

Publication Publication Date Title
CN102150443B (zh) 用于在即时消息用户和短消息服务用户之间进行通信的方法
KR100493525B1 (ko) 아바타 메일 제공시스템 및 방법
CN101238435B (zh) 对等通信***
US7966387B1 (en) System and method for provisioning personalized data into mobile device
CN102307159B (zh) 有效管理“已发送消息”文件与重新发送消息的方法和装置
US7526300B2 (en) Short message management system using a VM application and a mobile communication terminal
EP1091532A2 (en) A flexible system and method for communicating between a broad range of networks and devices
US20070283039A1 (en) Mail application with integrated text messaging functionality
CN100536440C (zh) 操作供应商内以及供应商间的消息传送***的***和方法
CN106789569A (zh) 分布式***中的持久个人消息收发
KR19990036003A (ko) 메시지 전송 방법 및 네트워크
CN100539552C (zh) 用于推电子邮件信息到多个无线通信设备的方法和***
CN111835837A (zh) 多端适配的消息推送方法及***
CN101310545A (zh) 利用远程计算机的移动设备用互联网邮件客户端***及其控制方法
JP2014063430A (ja) 通信制御装置、メッセージ転送方法およびメッセージ転送プログラム
CN110391969A (zh) 基于多媒体的聊天方法及装置、存储介质、电子装置
CN115766610A (zh) 一种基于发布订阅的消息队列
KR20030097243A (ko) 멀티미디어 메시지 서비스를 이용한 무선 게시판 서비스제공 방법 및 시스템
JPH09200255A (ja) 電子メール送受信装置
CN110008036A (zh) 数据传输方法及装置
CN101563896B (zh) 融合消息***服务的识别方法
KR20030058746A (ko) 이동 단말로의 인스턴스 메시지 전송 방법
CN113347460B (zh) 直播***搭建平台及消息传输方法
CN1997965A (zh) 用于在消息代理器中动态创建分析器的方法和***
KR20030035164A (ko) 무선 인터넷 카드 제공 방법 및 시스템

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150429

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150429

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.