回退消息传递的制作方法

文档序号:12692884阅读:218来源:国知局
回退消息传递的制作方法与工艺

相关申请的交叉引用

本申请要求2012年1月27日提交的第61/591,803号美国临时申请以及2012年2月2日提交的第13/368,258号美国专利申请的优先权。每一个美国专利申请通过引用被结合于此。

背景

本公开涉及电子通信。尤其是,本公开涉及用于回退消息传递(fallback messaging)的系统和方法。

社交网络及其他类型的电子通信的普及和使用近年来急剧增长。传统上,用户使用社交网络来查看和评论彼此的社交流(social stream),然而,已经开发了便于在社交网络的成员之间进行通信的新特征。例如,用户可以使用内置的消息传递功能来彼此发送即时消息。

尽管用户一度专门在台式机或膝上型计算机上经由因特网访问这些社交网络,然而用户现在是在他们的诸如智能电话等便携式电子设备、上网本和平板电脑上经由因特网访问这些社交网络。然而,来自这些便携式电子设备的因特网访问有时不可用或者是断断续续的,并且阻止用户互相之间接收或发送消息。例如,由于覆盖死区、弱连通性或过载蜂窝网络,用户可能未能从社交网络的另一用户接收到消息。

当前的系统和方法已经受限于它们在用户不能可靠访问因特网时如何交换消息。例如,当因特网连接是断断续续或者不稳定可用时,使用这些系统和方法的用户可能不能发送或接收消息,或者可能仅能在到因特网的访问再次可用时发送或接收消息。



技术实现要素:

本公开至少部分通过提供用于回退消息传递的系统和相关方法来克服现有技术中的缺陷和限制。在一个创新方面,系统包括用于发送和接收消息数据的接口模块、回退确定模块以及分派器。回退确定模块确定消息数据所指定的用户设备的网络数据连接的可用性,以至少部分基于网络数据连接的可用性来接收消息数据并生成路由信号。回退确定模块耦合至接口模块以接收消息数据。分派器至少部分基于路由信号,使用本机消息传递协议经由网络数据连接或者使用回退消息传递协议经由回退数据连接来分派消息数据。分派器耦合至回退确定模块以接收路由信号。

在另一个创新方面,用于回退消息传递的计算机实现的方法包括:接收为用户设备的用户所指定的消息数据,接收用户设备的连接信息,由处理器至少部分基于连接信息来确定到用户设备的网络数据连接是否可用,以及如果确定网络数据连接不可用则经由使用回退消息传递协议的回退数据连接将消息数据分派至用户设备。

其他方面包括相应的系统、方法和装置,包括计算机程序产品。以下揭示的系统和方法在许多方面是有利的。例如,即使用户设备不能耦合至因特网这样的网络,它们也可以将消息传送至用户设备。即使消息已经经由回退来发送,它们也可以维持无缝的用户消息传递体验。然而,特征和优点的这一概述并非包括一切,许多其他的特征和优点也在本公开的范围内。此外应当注意到,本公开中使用的语言主要是为可读性和指令性目的而选择的,并非要限制这里所揭示的主题的范围。

附图说明

本公开通过示例但非限制地在附图中说明,附图中相同的附图标记用来表示相同的元件。

图1是示出根据本公开一些实施例的用于回退消息传递的系统的框图。

图2是示出根据本公开一些实施例的社交网络服务器的框图。

图3是示出根据本公开一些实施例的用户设备的框图。

图4是根据本公开一些实施例的用于回退消息传递的方法的流程图。

图5是根据本公开一些实施例的用于回退消息传递的方法的流程图。

图6A和6B是根据本公开一些实施例的用于回退消息传递的方法的流程图。

图7是根据本公开一些实施例的用于查看消息线程的用户界面的图形表示。

图8是根据本公开一些实施例的用于管理用户设置的用户界面的图形表示。

具体实施方式

系统概述

图1是示出根据一些实施例的用于回退消息传递的系统100的框图。系统100的体系结构包括社交网络服务器101、网络105、移动网络106、由用户125a、125b…125n(在此个别和总体地称为125)访问的用户设备115a、115b…115n(在此个别和总体地称为115)、社交图表130、搜索服务器135、连接服务器140、通知服务器145、SMS网关150以及电子邮件服务器160。在所示实施例中,实体101、115、130、135、140、145、150和160经由网络105电子通信地耦合,实体115和150经由移动网络106电子通信地耦合,网络105和移动网络106经由信号线127耦合用于电子通信。然而,本公开不限于该配置,系统100的实体可以经由一个混合网络而互连,该混合网络组合网络105和移动网络106,或者连接至任何数量的网络105和移动网络106以及/或者由任何数量的网络105和移动网络106互连。尽管本公开在上面主要在和经由社交网络服务器101的消息传递有关的活动的上下文中描述,但是本公开也可应用于网络的多个实体之间的任何类型的电子通信。

社交网络服务器101是用于提供社交联网服务的服务器。在所述实施例中,社交网络服务器101经由信号线108耦合至网络105。在一些实施例中,社交网络服务器101包括一个或多个处理器以及一个或多个存储设备,该一个或多个存储设备存储数据或指令用于由一个或多个处理器执行。例如,社交网络服务器101是具有数据处理、存储和通信能力的服务器、服务器阵列或任何其他计算设备或者计算设备的群组。在其他实施例中,社交网络服务器101是经由软件实现的虚拟服务器(即,虚拟机)。例如,虚拟服务器在主机服务器环境中工作,并且经由抽象层(例如,虚拟机管理器)来访问主机服务器的物理硬件,例如处理器、内存、存储器、网络接口等。在一些实施例中,社交网络服务器101经由网络105与系统100的其他实体106、115、130、135、140、145、150和160交互。在这些及其他实施例中,社交网络服务器101直接经由信号线104耦合至SMS网关150并且与SMS网关150交互。社交网络服务器101还通过专用信号路径,经由例如网络105、网络105和移动网络106的组合或者是移动网络106来耦合,用于与用户设备115a、115b…115n通信。应当理解,社交网络服务器101可以被存储在设备和服务器的任一组合中,或者被存储在设备或服务器的仅一个中。

社交网络服务器101包括社交网络软件/应用102。社交网络软件/应用102是包括用于提供社交网络功能的例程的软件。在一些实施例中,社交网络软件/应用102是可由处理器235(见图2)执行以提供社交网络功能的一组指令。在其他实施例中,社交网络软件/应用102被存储在社交网络服务器101的存储器237(见图2)中,并且可由处理器235(见图2)执行。在这些实施例的任一个中,社交网络软件/应用102可适用于经由总线220(见图2)与处理器235(见图2)及社交网络服务器101的其他组件协作和通信。尽管仅示出一个社交网络服务器101,然而多个社交网络服务器101可以被包括在系统100中。

社交网络是用户通过一个或多个共同特征相连接的任何类型的社交结构。共同特征包括关系/连接,例如友谊、家庭、工作、兴趣等等。共同特征由一个或多个社交联网系统(诸如系统100中包括的那些社交联网系统)来提供,社交联网系统包括显式定义的关系以及与其他在线用户的社交连接所暗指的关系,这些关系形成社交图表130。

在一些例子中,社交图表130可以反映出这些用户以及他们如何相关的映射。而且应当理解,社交网络服务器101和社交网络软件/应用102表示一个社交网络,可能有多个社交网络耦合至网络105,每一个社交网络具有其自身的服务器、应用和社交图表130。例如,第一社交网络更专注于商业联网,第二社交网络更专注于或集中于学术,第三社交网络更专注于当地企业,第四社交网络更专注于一般兴趣或专门关注的约会及其他。在一些实施例中,社交图表130是服务器硬件以及数据仓库,数据仓库用于管理描述各种社交网络的用户的社交图表的数据,各种社交网络包括由社交网络服务器101和社交网络软件/应用102所表示的社交网络。在其他实施例中,社交网络130被包括在社交网络服务器101中。

群组消息传递引擎103是包括用于在一组用户125之间交换消息的例程的软件。在一些实施例中,群组消息传递引擎103可工作于社交网络服务器101上。在其他实施例中,群组消息传递引擎103可工作于客户机用户设备115a上。尽管图1仅示出社交网络服务器101和用户设备115a包括群组消息传递引擎103,然而实践中,诸如第三方服务器这样的任何所述设备以及其他设备都可以包括群组消息传递引擎103。以下至少参考图2-图6B描述了群组消息传递引擎103的附加结构和功能。

用户设备115a、115b…115n是具有数据处理和数据通信能力的计算设备。在一些实施例中,用户设备115是能发送和接收语音和数据通信的手持式无线计算设备。例如,用户设备115可以包括处理器、存储器、电源及一个或多个网络接口,用于经由无线电信号广播和接收控制数据、语音数据和/或网络数据。用户设备115还可以包括以下设备中的一个或多个:图形处理器、高分辨率触摸屏、物理键盘、前置和后置相机、诸如加速度计和/或陀螺仪这样的传感器、GPS接收机、蓝牙模块、存储可应用固件的存储器、以及各种物理连接接口(例如USB、HDMI、耳机插孔等),等等。此外,用于管理用户设备115的硬件和资源的操作系统、用于提供对硬件和资源的应用访问的应用程序编程接口(API)、用于为用户交互和输入生成和显示界面的用户界面模块、以及诸如用于打电话、视频电话、web浏览、消息传递、社交联网、打游戏、捕捉数字视频和/或图像等应用这样的应用可以被存储和操作于用户设备115上。在一些实施例中,用户设备115包括工作站计算机、台式计算机、膝上型计算机、上网本计算机、平板计算机、智能电话、机顶盒/单元、包括计算机处理器的因特网协议互连的智能电视,该计算机处理器能够接收观看者输入、访问诸如因特网的计算机网络上的视频内容、以及执行软件例程以向观看者提供增强的功能和交互性、等等。在其他实施例中,不同的用户设备115a、115b…115n包括不同类型的计算设备。例如,用户设备115a是智能电话,用户设备115b是非智能电话种类的移动电话,用户设备115n是平板计算机。在一些实施例中,用户设备115是客户机或终端设备。图1中用户设备115a、115b…115n作为示例被包括。尽管图1示出三个或更多个用户设备,然而本公开应用于具有一个或多个用户设备的任何系统体系结构。

在一些实施例中,用户设备115a经由信号线116和118耦合至移动网络106,并且经由信号线114耦合至网络105。用户125a经由信号线120与用户设备115a交互。在其他实施例中,用户设备115b经由信号线122耦合至移动网络106,而用户125b经由信号线124与用户设备115b交互。在还有其他实施例中,用户设备115n经由信号线126耦合至网络105,而用户125n经由信号线128与用户设备115n交互。

在一些实施例中,用户设备115a包括群组消息传递应用107。群组消息传递应用107是包括用于经由群组消息传递引擎103与其他用户交换消息的例程的软件。例如,群组消息传递应用107可操作以指令用户设备115a呈现用户界面、接收用户输入、以及将信息发送至群组消息传递引擎103a或103b或从群组消息传递引擎103a或103b接收信息。在一些实施例中,群组消息传递应用107是可由处理器335(见图3)执行以提供此处所述功能的一组指令。在其他实施例中,群组消息传递应用107被存储在用户设备115的存储器337(见图3)中,并且可由处理器335(参见图3)访问和执行以提供此处所述的功能。在这些实施例的任一个实施例中,群组消息传递应用107可适用于经由总线320(见图3)与处理器335(见图3)以及用户设备115a的其他组件协作和通信。以下至少参考图3、7和8讨论群组消息传递应用107的附加结构和功能。用户设备115a还可任选地包括群组消息传递引擎103b,群组消息传递引擎103b也至少参考图2-图6B在下文进一步详细描述。尽管图1仅示出用户设备115a包括群组消息传递应用107和群组消息传递引擎103b,但在实践中,任何数量的用户设备115可以包括这些元件。

网络105为常规类型,有线或无线,并且可具有任何数量的配置,诸如星形配置,令牌环配置或其他已知配置。而且,网络105可包括局域网(LAN)、广域网(WAN)(例如因特网)以及/或者多个设备可通过其通信的任何其他互连的数据路径。在一些实施例中,网络105可以是对等网络。网络105还可耦合至或包括移动网络106或其他电信网络的部分,用于以各种不同的通信协议发送数据,各种不同的通信协议包括:短消息传递服务(SMS)、多媒体消息传递服务(MMS)、扩展消息传递服务(XMS)、超文本传输协议(HTTP)、直接数据连接、无线访问协议(WAP)、各种电子邮件协议等等。在一些实施例中,网络105包括用于发送和接收数据的蓝牙通信网络。

网络数据连接是将用户设备115耦合至网络105以用于与连接服务器140、社交网络服务器101以及耦合至网络105的系统100的其他实体进行通信的数据链路。用户设备115可以或直接或间接地耦合至网络105。在所述实施例中,用户设备115a和115n分别经由信号线114和126直接连接至网络105。用户设备115a和115n可包括无线网络接口控制器,用于将数据分组发送至网络105的接入点或者自网络105的接入点接收数据分组。例如,用户设备115a和115n可以是Wi-Fi启用的设备,Wi-Fi启用的设备连接至诸如无线热点这样的无线局域网(WLAN)。在这些或其他实施例中,用户设备115a经由信号线118、移动网络106和信号线127间接地连接至网络105。例如,用户设备115a经由移动网络106的无线广域网(WWAN)连接至网络105。移动网络可以路由由用户设备115a通过移动网络106和信号线127发送和接收的网络数据分组。信号线114和118使用虚线描述,以示出经由这些信号线114和118建立的网络数据连接可能变得不可用。

移动网络106可以是包括分布式无线电网络和集线器的蜂窝网络。在一些实施例中,无线电网络包括分布在地理区域上的多个收发机节点(即,多个小区站点)群组。每一收发机节点群组由控制设备(或位于无线电网络中或位于移动电话网络的集线器中)控制。收发机节点通过无线电信道与附近的用户设备115无线地通信。控制器设备确定哪个收发机节点位于最佳位置来接收和发送数据至附近的用户设备115并且在用户设备115移进移出范围时控制收发机节点间的切换。移动网络106和用户设备115可以使用一多路复用协议或者多个多路复用协议的组合来进行通信,多路复用协议包括频分复用(FDMA)、时分复用(TDMA)、码分复用(CDMA)、空分复用(SDMA)、波分复用(WDMA)和随机存取协议、或者诸如正交频分复用(OFDMA)、正交跳频复用(OFHMA)这样的任何衍生协议,等等。移动网络106和用户设备115也可以采用多输入多输出(MIMO)信道来提高将移动网络106和用户设备115耦合的信号线上的数据吞吐量。移动网络106可以是任一代移动电话网络。在一些实施例中,移动网络106是2G或2.5G全球移动通信系统(GSM)、IS-95等网络。在其他实施例中,移动网络106是3G(通用移动电信系统)UTMS、IS-2000等网络。在还有其他实施例中,移动网络106是4G演进高速分组访问(HSPA+)、3GPP长期演进(LTE)、全球微波接入互操作性(WiMaxTM)等网络。在甚至还有其他实施例中,移动网络106可以是任何已知的移动网络类型,或者可以是支持两个或更多个技术标准的后向兼容的多代网络。

信道由将用户设备115耦合至移动网络106的一对不同的射频信号组成,即发送信号和接收信号。例如,控制信道是通过其上传送SMS数据、标识数据和设置数据的信道,语音信道是通过其上在语音呼叫期间传送语音数据的信道,网络数据信道是通过其上传送网络数据分组的信道,网络数据分组可以包括语音数据分组和应用数据分组两者。在一些实施例中,信号线116和118包括用于在用户设备115a和移动网络106的传输节点之间发送和接收数据的一个或多个信道。例如,在2G或3G移动网络中,信号线116可以包括控制信道和语音信道,信号线118可以包括数据信道。用户设备115和移动网络106的传输节点通过控制信道来回传送控制数据,以设立语音呼叫或数据分组传输。至少部分基于该控制数据,移动网络106的控制器设备(诸如传输节点控制器或无线电网络控制器)确定语音呼叫的适当语音信道并将语音呼叫分配给语音信道,或者为用户设备115上工作的应用确定用于发送和接收网络数据分组的可用数据信道118。在该例中,数据信道118是包括与语音和控制信道116的信号不同的一对射频信号的信道。在包括某些4G及后来的移动电话网络的另一例子中,信号线116构成控制信道,而信号线118构成数据信道,因此省略了语音信道。数据信道用于传送语音数据和应用数据两者作为网络数据分组,诸网际网协议(IP)数据分组。在该另一例子中,移动网络106的核心网络包括分组交换设备,分组交换设备基于数据分组的报头中所包括的信息来路由从用户设备115接收到的数据分组。

回退数据连接是经由移动网络106和回退消息传递服务器将用户设备115耦合至社交网络服务器101的数据链路。回退消息传递服务器是用于在社交网络服务器101和用户设备115之间中继消息的服务器。回退消息传递协议是回退消息传递服务器用来经由回退数据连接发送和接收消息数据的通信协议,并且包括任何标准的消息传递协议,诸如SMS、MMS、XMS、WAP、简单邮件传输协议(SMTP)、可扩展消息传递和存续(presence)协议(XMPP)、会话初始协议(SIP)、因特网中继聊天(IRC)协议等等。在一些实施例中,回退消息传递服务器是或者分别经由信号线131和104直接耦合至、或者经由网络105间接耦合至移动网络106和社交网络服务器101的SMS网关150。在其他实施例中,回退消息传递服务器是经由网络105耦合至移动网络106和社交网络服务器101的电子邮件服务器160。然而,这些例子不是穷尽的,其他回退消息传递机制也在本公开的范围内,其他回退消息传递机制例如耦合至移动网络106和社交网络服务器101的即时消息传递(IM)服务器(未示出)。

回退数据连接有利地充当用于将用户设备115连接至回退消息传递服务器的网络数据连接的替代数据链路。在一些实施例中,将用户设备115耦合至移动网络的控制信道116充当回退数据连接的片段。在其他实施例中,将用户设备115耦合至移动网络106的专用消息传递信道充当回退数据连接的片段。在这些或其他实施例中,移动网络106和信号线以及/或者将移动网络106耦合至回退消息传递服务器的网络105也构成回退数据连接的片段。例如,回退数据连接经由信号线116、移动网络106和信号线131将用户设备115连接至回退消息传递服务器(例如SMS网关150)。在另一例子中,回退数据连接经由信号线116、移动网络106以及信号线127和117将用户设备115连接至回退消息传递服务器(例如SMS网关150)。尽管在这些实施例和例子的上下文中描述了本公开,但应当理解,回退数据连接可以是充当网络数据连接的替代数据链路并且将用户设备115连接至回退消息传递服务器的任何数据链路。

以下是回退数据连接的实施例的附加非限制性例子。用户设备115a经由控制信道116和数据信道118耦合至移动网络106的节点。控制信道116链接至移动网络106的SMS切换元件(未示出)并且表示回退数据连接的片段。数据信道118链接至与网络105互连的移动网络106的WWAN并且表示网络数据连接的片段。与移动网络106的该节点耦合的其他用户设备115的大流量业务使该节点被数据业务所压倒,且用户设备115a不能经由WWAN连接至网络105。结果,社交网络服务器101不能经由网络数据连接而连接至和传送消息数据至用户设备115a。社交网络服务器101标识出该网络数据连接不可用,并且使用控制信道116经由回退数据连接将消息数据作为SMS消息传送至用户设备115a,该控制信道116仍能传送数据来去用户设备115a——尽管节点经受大流量数据业务。在另一例子中,用户设备115a位于移动网络106的远程地理位置,在那里手机接收效果差,且用户设备115a仅能经由控制信道116用移动网络106的节点获得信号,该控制信道116表示回退数据连接的片段。和上例类似,社交网络服务器101标识出到用户设备115a的网络数据连接不可用,并且使用控制信道116经由回退数据连接将消息数据作为SMS消息传送至用户设备115a。

搜索服务器135经由信号线112通信地耦合至网络105。在一些实施例中,搜索服务器135包括用于检索和来自因特网的搜索项相匹配的结果的搜索引擎143。尽管仅示出一个搜索服务器135,但应当理解,可以存在多个搜索服务器135。

连接服务器140是用于为用户设备115生成和提供连接信息的服务器。在所述实施例中,连接服务器140经由信号线111耦合至网络105。在一些实施例中,连接服务器140是包括处理器、存储器和网络通信能力的硬件服务器。在其他实施例中,连接服务器140是虚拟服务器。在一些实施例中,每当用户设备115经由网络数据连接耦合至网络105并且可以发送和接收网络数据时,用户设备115经由网络105建立和维持到连接服务器140的数据连接。根据请求,连接服务器140为一个或多个用户设备115生成连接信息并且将连接信息发送至请求该信息的设备。例如,连接服务器140测试用户设备115是否连接至连接服务器140,生成包括描述连接测试的结果的验证信号在内的连接信息,并且将连接信息发送至请求该信息的设备。在一些实施例中,当用户设备115建立到网络105的网络数据连接时,用户设备115使用与群组消息传递引擎103相关联的唯一标识符(诸如社交网络软件/应用102的用户标识符)登录至连接服务器140。因而,假如给定用户授权,连接服务器140就意识到被登录到连接服务器140内的用户标识符,并且能将对此的确认提供至社交网络服务器101的群组消息传递引擎103以及系统100的其他组件。在这些及其他实施例中,连接服务器140通过向用户设备115发送验证请求(诸如因特网控制消息协议(ICMP)回声请求),经网络数据连接测试是否存在到用户设备115的开放数据连接。如果连接是活跃的,则用户设备115通过经由网络数据连接和网络105发送确认信号(诸如回声应答(即查验(ping))),来确认接收到验证请求。如果连接不再是活跃的,则未从用户设备115接收到响应,且验证请求超时。

在一些实施例中,群组消息传递引擎103指令社交网络服务器101从连接服务器104请求用户设备115经由网络数据连接而连接至网络105的验证。在其他实施例中,群组消息传递引擎103指令社交网络服务器101从连接服务器140请求群组消息传递应用107可由用户设备115的处理器操作或活跃地操作的验证。尽管图1将连接服务器140描述为独立的实体,但连接服务器140可以被包括在包含社交网络服务器101的系统100的其他元件中。此外,尽管仅描述了一个连接服务器140,但是系统100可以包括任何数量的连接服务器140。例如,连接服务器140可按地理区域分布,以便于位于那些区域中的用户设备115更快且更有效地连接至连接服务器140。在另一例子中,如果特定地连接服务器140被业务过载,用户设备115可以连接至其他利用率较低的连接服务器140。

通知服务器145是用于将通知提供至一个或多个用户设备115的服务器。在所述实施例中,通知服务器145经由信号线113耦合至网络105。在一些实施例中,通知服务器145是包括处理器、存储器和网络通信能力的硬件服务器。在其他实施例中,通知服务器145是虚拟服务器。通知服务器145可包括推送通知服务器(PNS),推送通知服务器(PNS)是包括可由通知服务器145的处理器(未示出)执行以指令通知服务器145经由网络105将推送通知转发至一个或多个用户设备115的例程的软件。推送通知由通知服务器145从社交网络服务器101、系统100的其他实体或其他第三方服务器(未示出)接收,并且经由网络105被转发至一个或多个用户设备115。推送通知的一些例子包括自定义文本通知、指示等待查看的通知数量的标记以及声音。

在一些实施例中,推送通知的使用是不必要的,因为群组消息传递应用107可以被初始化,并且在接收到来自群组消息传递引擎103的信号之际可以向用户125a显示界面。在其他实施例中,其中用户设备115a被限制接收对于不活跃或者其界面未被活跃地显示至用户125a的任何应用的推送通知,用户设备115a从通知服务器145接收到的推送通知被显示给用户125a,以通知用户关于已发生的任何新的群组消息传递活动。尽管图1将通知服务器145描述为单独实体,但是通知服务器145可以被包括在包含社交网络服务器101的系统100的其他元件中。此外,尽管仅描述了一个通知服务器145,但是系统100内可以包括不止一个通知服务器145。

SMS网关150是用于经由回退数据连接发送和接收消息数据的回退消息传递服务器。在所述实施例中,SMS网关150经由信号线117耦合至网络105。SMS网关150也可以经由信号线104直接耦合至社交网络服务器101,用于在那些实体间直接通信。在一些实施例中,SMS网关150是包括处理器、存储器和网络通信能力的硬件服务器。在其他实施例中,SMS网关150是虚拟服务器。尽管图1将SMS网关150描述为单独实体,但是SMS网关150可以被包括在包含社交网络服务器101的系统100的其他元件中。SMS网关150不限于发送和接收SMS消息,而是可以以包括MMS、XMS等的任何消息传递格式,使用任何移动消息传递协议来发送和接收消息数据。因而,除了其常规含义以外,术语“文本消息”可以包括仅文本,或是包括文本、图形、音频、视频等的任一组合。

在一些实施例中,SMS网关150是直接至移动网关,它经由信号线131直接连接至移动网络106并且与移动网络106上工作的用户设备115通信。在其他实施例中,SMS网关150是经由网络105与移动网络106接口的聚合器或SS7型移动网关。在这些其他实施例中,SMS网关150经由信号线117耦合至网络105;经由信号线117和127与移动网络106通信;并且使用移动网络106的网关元件发送和接收文本消息。诸如短消息服务中心(SMSC)网关之类的网关元件控制去往和来自在移动网络上工作的用户设备115的消息传递。

在这些实施例中,SMS网关150从社交网络服务器101接收文本消息,并且使用相应的文本消息传递协议将文本消息中继至指定的接收者用户设备115。例如,SMS网关150将从社交网络服务器101接收到的消息数据转换成文本消息格式(例如SMS),并且经由SMS协议将文本消息分派至消息数据中指定的一个或多个接收者。在另一例子中,SMS网关150接收到的消息数据以文本消息格式(例如SMS)预先格式化,并且SMS网关150将消息数据中继至消息数据的报头中标识的一个或多个接收者。在其他实施例中,SMS网关150经由回退数据连接从用户设备115接收文本消息,并且将文本消息中继至社交网络服务器101的群组消息传递引擎103。SMS网关150可以以与文本消息被SMS网关150所接收的格式相同的格式将文本消息中继至群组消息传递引擎103,或者SMS网关150可以将文本消息转换成与群组消息传递引擎103兼容的另一格式然后将经转换的消息中继至群组消息传递引擎103。

万一用户设备115不能建立到网络105的网络数据连接并且连接至连接服务器140,那么SMS网关150接收和中继文本消息所使用的数据链路就有利地充当回退数据连接。例如,如前所述,信号线116和122可以包括将用户设备115a和115b耦合至移动网络106的传输节点的控制信道。响应于接收到SMS消息形式的消息数据,移动网络106的切换元件或者直接经由信号线131或间接经由信号线127和117、以及经由网络105来中继去往和来自SMS网关150的SMS消息。结果,即使用户设备115a不能建立到连接服务器140的网络数据连接(例如,用户设备115a不能在信号线118上经由移动网络106的WWAN或者在信号线114上经由网络105的WLAN连接至网络105),SMS消息(即,消息数据)也可以被有利地传送至用户设备115a或者由用户设备115a生成并发送。

电子邮件服务器160是用于发送、接收电子邮件(电邮)和提供到电子邮件的访问的消息传递服务器。在一些实施例中,电子邮件服务器160充当回退消息传递服务器,并且经由回退数据连接发送和接收电子邮件。在一些实施例中,电子邮件服务器160是包括处理器、存储器和网络通信能力的硬件服务器,并且经由信号线136耦合至网络105。在其他实施例中,电子邮件服务器160是虚拟服务器。电子邮件服务器160包括可操作以发送、存储、接收电子邮件和提供对电子邮件的访问的电子邮件服务器软件。电子邮件服务器160包括可操作以在系统100的任何组成元件之间发送电子邮件的服务器软件。例如,电子邮件服务器160接收、存储用户设备115所发送的电子邮件并且将电子邮件中继至社交网络服务器101,反之亦然。在一些实施例中,电子邮件由电子邮件服务器160和系统100的其他元件使用诸如SMTP、IMAP、POP、Webdav等协议通过网络105来发送。在其他实施例中,电子邮件服务器160使用回退数据连接经由移动网络106在社交网络服务器101和用户设备115之间中继电子邮件消息。尽管仅描述了一个电子邮件服务器160,但是系统100中可以包括任何数量的电子邮件服务器160。

社交网络服务器101

图2是根据一些实施例的社交网络服务器101的框图。在所述实施例中,社交网络服务器101是包括社交网络软件/应用102、群组消息传递引擎103、消息传递数据存储214、处理器235、存储器237和通信单元239的计算设备。组件102、103、214、235、237和239经由通信总线220在通信上耦合。总线220可以是用于在计算机的组件之间或在计算机之间传递数据的任何类型的常规通信总线。

处理器235包括用于执行计算并且向显示设备(未示出)提供电子显示信号的算术逻辑单元、微处理器、通用控制器或某一其他处理器阵列。处理器235耦合至总线220用于与社交网络服务器101的其他组件通信。处理器235处理数据信号并且可以包括各种计算体系结构,各种计算体系结构包括复杂指令集计算机(CISC)体系结构、精简指令集计算机(RISC)体系结构或者实现指令集组合的体系结构。尽管图2仅示出一个处理器,但是可以包括多个处理器。处理能力可能限于支持图像的显示以及图像的捕获和传输。处理能力可能足以执行更复杂的任务,包括各类特征提取和采样。应当理解,其他处理器、操作系统、传感器、显示器和物理配置是可行的。

存储器237存储可由处理器235执行的指令和/或数据。存储器237耦合至总线220以用于与社交网络服务器101的其他组件通信。指令和/或数据可以包括用于执行这里所述的任何和/或全部技术的代码。存储器237可以是动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪存或某一其他已知的存储器设备。在一些实施例中,存储器237还包括非易失性存储器或类似的永久存储设备和介质,包括例如硬盘驱动器、软盘驱动器、CD-ROM设备、DVD-ROM设备、DVD-RAM设备、DVD-RW设备、闪存设备或已知用于更永久地存储信息的某一其他大容量存储设备。为清楚起见,这里将存储器237或337(见图3)存储的指令和/或数据描述为不同的功能性“模块”或“引擎”,其中不同的模块或引擎是在由处理器235或335(见图3)执行时引起所述功能的存储在存储器237或337(见图3)中的不同的指令和/或数据。

通信单元239通过信号线108耦合至网络105,并且耦合至总线220。在一些实施例中,通信单元239是包括用于有线连通性的端口的网络接口设备(I/F)。例如,通信单元239包括CAT-5接口、USB接口或SD接口等等。通信单元239将处理器235链接至网络105,网络105又可被耦合至其他处理系统。通信单元239使用标准通信协议提供到网络105以及到系统100的其他实体的其他连接,标准通信协议包括例如TCP/IP、HTTP、HTTPS、SMTP、SMS、MMS、XMPP、SIP、IRC等。在其他实施例中,通信单元239包括使用用于无线通信的Wi-Fi、蓝牙或蜂窝通信来发送和接收信号的收发机。

群组消息传递引擎103

群组消息传递引擎103是包括用于在一组用户125间交换消息的例程的软件。在一些实施例中,群组消息传递引擎103是可由处理器235执行以提供用于在一组用户125之间交换消息的功能的一组指令。在其他实施例中,群组消息传递引擎103被存储在社交网络服务器101的存储器237中,并且可由处理器235访问和执行以提供该功能。在这些实施例的任一个中,群组消息传递引擎103可适用于经由总线220与处理器235及社交网络服务器101的其他组件协作和通信。群组消息传递引擎103在缺省实现方式下交换的消息是使用本机消息传递协议交换的。在一些实施例中,本机消息传递协议是适用于跨IP网络(例如因特网)通信的即时消息传递协议。例如,本机消息传递协议是XMPP、SIP、IRC、HTTP等。

在所述实施例中,群组消息传递引擎103包括接口模块202、回退确定模块204、映射模块206、分派器208、用户设置模块210和转换模块212。群组消息传递引擎103的组件202、204、206、208、210和212以及群组消息传递引擎103本身被通信耦合至总线220,用于彼此间通信以及与社交网络服务器101的其他组件102、214、235、237和239通信。群组消息传递引擎103经由总线220与社交网络软件/应用102交互和通信。例如,群组消息传递引擎103可以与社交网络软件/应用102的认证模块(未示出)交互,以验证尝试访问群组消息传递引擎103的用户125,并且向群组消息传递引擎103提供对社交网络软件/应用102和社交图表130的信息和功能的访问。在其他实施例中,群组消息传递引擎103被存储和操作于第三方服务器(未示出)上,第三方服务器由网络105耦合用于与社交网络服务器101、社交网络软件/应用102和社交图表130的通信和交互。在这些或其他实施例中,群组消息传递引擎103可以经由API访问信息并且使用社交网络软件/应用102和社交图表130的功能。

接口模块202是包括用于以下的例程的软件:用于经由通信单元239接收请求信号,解析来自请求信号的消息数据并且将消息数据发送至回退确定模块204、映射模块206、分派器208、用户设置模块210和转换模块212以及从回退确定模块204、映射模块206、分派器208、用户设置模块210和转换模块212接收消息数据。在一些实施例中,接口模块202是可由处理器235执行以提供该功能的一组指令。在其他实施例中,接口模块202被存储在社交网络服务器101的存储器237中,并且可由处理器235访问和执行以提供该功能。在这些实施例的任一个中,接口模块202可适合于经由总线220与处理器235及社交网络服务器101的其他组件协作和通信。

在所述实施例中,接口模块202经由总线220耦合至回退确定模块204以发送经解析的消息数据。例如,用户125使用用户设备115上安装的群组消息传递应用107编写给一组接收者的消息,并且通过选择发送按钮来发送该消息。作为响应,用户设备115生成包括该消息的请求信号,并且经由移动网络106和/或网络105将该请求信号发送至通信单元239。接口模块202从通信单元239接收请求信号,解析与来自请求信号的消息相关联的数据,并将消息数据发送至回退确定模块204供进一步处理。在其他实施例中,接口模块202可以生成和发送响应信号,响应信号确认由群组消息传递引擎103成功接收到消息数据、或者由群组消息传递引擎103将消息数据中包括的消息成功分派至预期接收者。

接口模块102经由总线220耦合至映射模块206、分派器208、用户设置模块210、转换模块212以及社交网络服务器101的其他组件102、214、235、237和239以发送和接收信息。在一些实施例中,接口模块202将经由通信单元239接收到的请求信号发送至用户设置模块210供进一步处理。在其他实施例中,接口模块202耦合至消息传递数据存储214以便使用编程的操作来操纵数据,操纵即存储、查询、更新和/或删除。在一些实施例中,接口模块202存储从经由网络105自其他设备接收到的请求信号解析的消息数据。在其他实施例中,接口模块202接收来自用户设备115的存档请求以便存档用户设备115上存储的一个或多个消息。例如,如果用户125期望备份用户设备115上存储的较旧消息(例如,SMS消息及对于群组消息传递应用107本机的消息),用户可以将命令输入用户设备115上安装的群组消息传递应用107以便将消息中的全部或一些发送至社交网络服务器101供存档。万一消息不小心从用户125的用户设备115被删除,用户125稍候可以输入命令以便从社交网络服务器101检索那些消息。

回退确定模块204是包括用于以下功能的例程的软件:为用户设备115确定网络数据连接的可用性以及至少部分基于网络数据连接的可用性来生成路由信号。在一些实施例中,回退确定模块204是可由处理器235执行以提供该功能的一组指令。在其他实施例中,回退确定模块204被存储在社交网络服务器101的存储器237中,并且可由处理器235访问和执行以提供该功能。在这些实施例的任一个中,回退确定模块204可适合于经由总线220与处理器235及社交网络服务器101的其他组件协作和通信。

回退确定模块204耦合至接口202以接收用户设备115所发送的消息数据。回退确定模块204解析消息数据以得到发送者和接收者信息。例如,回退确定模块204从消息数据的元数据中解析发送者和接收者信息。发送者信息和接收者信息所标识的发送者和接收者形成消息传递群组。发送者信息包括发送该消息数据的用户125或用户设备115的标识信息。例如,发送者信息包括以下的一个或多个:与社交网络软件/应用102用户账户相关联的发送者的用户标识符、发送者的用户设备115的网络地址(例如IP地址、端口等)、发送者的用户设备115的移动电话号码、与用户设备115的计算环境有关的信息(例如操作系统类型和版本以及群组消息传递应用107类型和版本)、等等。接收者信息还包括被指定接收消息数据的每个用户设备115的标识信息。例如,接收者信息包括以下的一个或多个:与社交网络软件/应用102的接收者用户账户相关联的接收者的用户标识符、接收者的用户设备115的网络地址、接收者的用户设备115的移动电话号码、等等。

回退确定模块204经由网络105耦合至连接服务器140以发送连接查询并接收连接信息。在一些实施例中,回退确定模块204所生成和发送的连接查询包括来自接收者信息的接收者标识符的列表。通过使用标识符列表,连接服务器140确定标识符所标识的用户设备115是否连接至连接服务器140,并且生成并发送连接信息至回退确定模块204,连接信息描述每一个用户设备115是否经由网络数据连接耦合至连接服务器140。以上参考图1且以下参考图4-图6B描述了连接服务器140的附加结构和功能。回退确定模块204经由总线220耦合至映射模块206以发送连接信息并接收映射数据。在一些实施例中,映射数据包括由连接信息标识为未连接至连接服务器140的接收者的回退标识符。下面进一步讨论了回退标识符。

回退确定模块204经由总线220耦合至分派器208,并且经由总线220将路由信号发送至分派器208。在一些实施例中,回退确定模块204所生成的路由信号包括表明应该使用哪个传递协议来将消息发送至每个接收者的分派指令。在其中接收者的用户设备115被连接信息描述为未被连接至连接服务器140的一些实施例中,回退确定模块204所生成的分派指令有利地指示分派器208将消息中继到回退消息传递服务器,以便使用回退数据连接经由回退消息传递协议来分派。这为操纵接收者用户设备115的接收者提供了即使接收者用户设备115未经由网络数据连接(例如因特网连接)被连接至连接服务器140,也仍能接收消息的好处。在其中连接信息将接收者用户设备115描述为经由网络数据连接被耦合至网络105并且被连接至连接服务器140的一些实施例中,回退确定模块204所生成的分派指令指示分派器208使用本机消息传递协议经由网络数据连接来分派消息。路由信号还可以包括连接信息、映射数据或包括分派器208发送消息所必要的发送者和接收者信息的来自消息数据的任何信息。例如,对于回退接收者(即,被指定经由回退消息传递协议接收消息的接收者),路由信号包括诸如回退标识符这样的映射数据,如下进一步详述。

映射模块206是包括用于映射被交换的消息数据的例程的软件。在一些实施例中,映射模块206是可由处理器235执行以提供这里所述功能的一组指令。在其他实施例中,映射模块206被存储在社交网络服务器101的存储器237中,并且可由处理器235访问和执行以提供该功能。在这些实施例的任一个中,映射模块206可适合于经由总线220与处理器235及社交网络服务器101的其他组件协作和通信。

映射模块206经由总线220耦合至回退确定模块204以接收连接信息和消息数据。映射模块206分析连接信息,向回退接收者(即,被指定经由回退消息传递协议接收消息的每个接收者)分配回退标识符,使用回退标识符将消息数据映射至交换消息的一组用户,以及生成并提供包括回退标识符的映射数据至回退确定模块204。映射模块206还将包括回退标识符的映射数据存储在消息传递数据存储214中供稍候引用和修订。在一些实施例中,回退标识符是从将SMS网关150标识为移动网络106上的电信端点的电话号码池中取出的电话号码。在其他实施例中,回退标识符是从被分配给群组消息传递引擎103的电子邮件地址池中取出的电子邮件地址。在这些及其他实施例中,映射模块206所分配的回退标识符一次可以被分配给一个消息传递群组以避免与其他消息传递群组冲突。

在一些实施例中,回退消息传递协议可能对于回退接收者或回退接收者的用户设备需要与本机消息传递协议所不同的标识信息。例如,本机消息传递协议可能需要每个接收者被与社交网络软件/应用102相关联的用户标识符所标识,该用户标识符可以使用来自连接服务器140的连接信息被映射到用户设备115。相反,回退消息传递协议可能需要回退接收者被与回退消息传递协议相关联的标识符所标识,诸如移动电话号码或电子邮件地址。在一些实施例中,与本机消息传递协议相关联的标识信息可以和与回退消息传递协议相关联的标识信息相同。例如,用户可以使用用于发送和接收电子邮件的相同电子邮件地址作为用于访问群组消息传递应用103的用户标识符。然而,在其他实施例中,标识符可能不同。在这些其他实施例中,映射模块206能检索与回退消息传递协议相关联的替代标识信息。例如,映射模块206可以查询社交图表130或与社交网络软件/应用102相关联的用户账户以得到替代的标识信息。在另一例子中,替代的标识信息被包括在消息数据中,映射模块206解析来自消息数据的替代的标识信息。在其他实施例中,尽管映射模块206被描述为能够检索替代的标识信息,然而分派器208、回退确定模块204或群组消息传递服务器103或社交网络服务器101的任何其他组件提供这一功能。

在一些实施例中,映射模块206将交换消息的用户群组125(即,消息传递群组)的消息传递线程与唯一会话标识符相关联。特别是,唯一会话标识符标识与被交换的消息数据相关联的消息线程。例如,一旦初始消息由用户125经由群组消息传递引擎103发送至一个或多个其他用户125,则形成消息线程。当响应于初始消息在用户125之间交换后续消息时,添加至消息线程。这些消息被唯一会话标识符标识为属于相同的消息线程。在一些实施例中,通过映射模块206将分配给回退接收者的回退标识符映射至与消息线程相关联的唯一会话标识符,将经由回退消息传递协议分派和接收到的消息与消息线程相关联。

在一些实施例中,回退确定模块204接收到的消息数据表示经由回退数据连接响应于分派器208分派的前一消息而发送的回复消息。回退确定模块204可以有多种方式确定回复消息是否经由回退数据连接被发送。在一些实施例中,回退确定模块204通过将来自回复消息的发送者信息提供至映射模块206,且映射模块206指示发送者信息包括回退标识符,从而确定回退消息已经经由回退数据连接被发送。在其他实施例中,回退确定模块204确定消息数据已经经由回退确定模块204自接收到回复消息数据的通信端口和/或IP地址、用于发送回复消息数据的协议等等被发送。

在回复消息数据经由回退数据连接被发送的一些实施例中,映射模块206使用回退确定模块204所提供的发送者信息来查询消息传递数据存储214以得到所存储的映射数据。例如,映射模块206使用发送者信息中包括的回退标识符来查询消息传递数据存储214以确定消息传递群组,并且特别是,确定消息传递群组中回复消息应被分派至的接收者。然后,映射模块206将该信息提供给回退确定模块204,且回退确定模块204将该信息提供给分派器208作为接收者信息,如以上和以下进一步描述。作为示例,群组消息传递引擎103确定到用户设备115的网络数据连接不可用,因此消息数据经由回退数据连接以SMS消息的形式被分派至用户设备115。作为响应,经由回退数据连接从用户设备115接收到回复SMS消息数据。映射模块206使用回退确定模块204所提供的发送者的电话号码(即回退标识符)来查询消息传递数据存储214以得到映射数据,映射数据将回退标识符映射至消息传递群组的其他成员,其他成员在该例中是发送初始消息数据的用户。映射模块206将该映射数据提供给回退确定模块204,并且回退确定模块204使用映射数据来确定对于发送初始消息数据的用户是否存在网络数据连接,并且相应地分派回复消息数据。以下至少参考图4-图8描述映射模块206的附加结构和功能。

分派器208是包括用于部分地基于路由信号经由网络数据连接或回退数据连接来分派消息数据的例程的软件。在一些实施例中,分派器208是可由处理器235执行以提供功能的一组指令。在其他实施例中,分派器208被存储在社交网络服务器101的存储器237中并且可由处理器235访问和执行以提供功能。在这些实施例的任一个中,分派器208可适合于经由总线220与处理器235及社交网络服务器101的其他组件协作和通信。在所述实施例中,分派器208经由总线220耦合至接口模块202回退确定模块204、映射模块206、用户设置模块210、转换模块212和消息传递数据存储214以发送和接收信息。在一些实施例中,分派器208从回退确定模块208接收消息数据和路由信号。在其他实施例中,分派器208从接口模块202接收消息数据。

分派器208可以在分派消息数据之前任选地转换消息数据。在一些实施例中,响应于接收到消息数据和路由信号,分派器208可以指示转换模块212将消息数据转换成与用于发送消息数据的协议相兼容的格式。例如,分派器208指示转换模块212将消息数据转换成与回退接收者的回退消息传递协议相兼容的格式,以及将消息数据转换成与被指定经由本机消息传递协议接收消息的接收者的本机消息传递协议相兼容的格式。分派器208向转换模块212提供执行转换所需的信息,并且在转换后,转换模块212将经格式化的消息数据提供给分派器208进行分派。

在一些实施例中,分派器208根据路由信号中包括的分派指令来分派消息数据。如前参照回退确定模块204所述,分派指令表明应当使用哪个传递协议来发送消息数据。在一些实施例中,分派指令指示分派器208使用回退消息传递协议经由回退数据连接将消息数据分派至回退接收者。分派器208修改诸如接收者信息和发送者信息这样的消息数据,以便与回退标识符和回退接收者信息相对应,回退标识符和回退接收者信息由映射模块206映射并且被发送至回退确定模块204以用于和路由信号一起提供给分派器208。分派器208耦合至回退消息传递服务器,并且将消息数据中继至回退消息传递服务器用于经由回退数据连接而分派至每一个回退接收者的用户设备115。例如,回退消息传递服务器是SMS网关150、电子邮件服务器160、IM服务器等等。在更详细的例子中,路由信号中包括的分派指令指示分派器208使用文本消息传递协议(例如SMS)来分派消息数据,分派器208使用转换模块212将消息数据转换成文本消息格式,注释发送者和接收者信息以描述映射模块206所映射的回退发送者和接收者信息(即电话号码),并且分派器208经格式化的消息数据中继至SMS网关150。SMS网关150使用文本消息传递协议在移动网络106上经由回退数据连接将经格式化的文本消息传送至每一个回退接收者的用户设备115。在另一例子中,回退消息传递协议是电子邮件协议。在该例中,分派器208使用转换模块212针对每一个回退接收者将消息数据转换成电子邮件。电子邮件服务器160然后用映射模块206所映射的回退发送者和接收者信息来注释每个电子邮件,并将电子邮件分派至电子邮件服务器160,而电子邮件服务器160经由回退数据连接将电子邮件传递至回退接收者。在一些实施例中,电子邮件服务器160使用推送电子邮件协议将电子邮件实时传送至回退接收者的用户设备115。在其他实施例中,电子邮件服务器160保留电子邮件,直到它们被在每一个回退接收者的用户设备115上工作的群组消息传递应用107的实例经由电子邮件协议从电子邮件服务器160检索。在还有一例中,分派指令指示分派器208经由IM协议来分派消息,分派器208转换消息数据、寻址消息数据、并且经由回退数据连接使用IM协议分派数据消息或者经由回退数据连接将消息数据中继至IM服务器(未示出)以供分派。

在消息数据的接收者中的一个或多个被标识为具有网络数据连接的一些实施例中,分派指令指示分派器208使用本机消息传递协议经由网络数据连接来将消息数据分派至那些接收者中每一个接收者的用户设备115。基于路由信号中包括的信息,分派器208修改诸如接收者信息这样的消息数据,以将接收者描述为由连接信息标识为具有网络数据连接的那些用户。在一些实施例中,如果一些接收者经由网络数据连接被发送消息数据而一些接收者经由回退数据连接被发送消息数据,则经由网络数据连接发送的消息数据标记有用以标识该消息数据属于哪一个消息线程的信息。例如,消息数据的报头被标记有唯一会话标识符或回退标识符。这有利地有助于确保回复中发送的任何消息都会被标记相同的信息因此它们被映射模块206映射到消息线程和任何回退接收者。

分派器208耦合至消息传递数据存储214以存储消息数据的副本。在一些实施例中,分派器208以消息数据被分派的格式来存储该消息数据的副本。在其他实施例中,分派器208以消息数据被接口202接收的格式来存储该消息数据的副本。在还有其他实施例中,分派器208以消息数据被接收的格式和被分派的格式来存储该消息数据的副本。在其他实施例中,接口202在接收到消息数据时存储消息数据的副本。应当理解,消息数据不限于被分派器208和接口202存储,并且群组消息传递引擎103的其他模块204、206、210和212能存储消息数据。

用户设置模块210是包括用于确定、存储和检索用户可配置的设置的例程的软件。在一些实施例中,用户设置模块210是可由处理器235执行以提供该功能的一组指令。在其他实施例中,用户设置模块210被存储在社交网络服务器101的存储器237中并且可由处理器235访问和执行以提供该功能。在这些实施例的任一个中,用户设置模块210可适合于经由总线220与处理器235及社交网络服务器101的其他组件协作和通信。在一些实施例中,用户设置模块210耦合至接口模块202以接收请求信号。用户设置模块210解析请求信号以得到用户设置数据并且将用户设置数据存储在消息传递数据存储214中。在其他实施例中,用户设置模块210经耦合以便经由接口模块202从用户设备115接收对用户设置数据的请求信号。作为响应,用户设置模块210从消息传递数据存储214检索设置数据,并且生成包括设置数据的响应信号以及经由接口模块202将该响应信号发送至用户设备115。

用户设置数据指示群组消息传递引擎103关于如何在各种情况下运作。例如,用户125可以经由用户设备115提供用户设置数据,以指示群组消息传递引擎103在缺省情况下在一段时间内或在提供更新后的设置数据之前使用回退消息传递协议;在经过预定时间量之前延迟经由回退消息传递协议的分派;决定从经由回退消息传递协议接收消息退出,以免除特定接收者经由回退消息传递协议接收消息;以及确定要使用哪个协议作为回退消息传递协议(例如,SMS、MMS、电子邮件等)。然而,上述例子并非穷举了可以提供的用户设置数据的类型,应当理解,回退确定模块204的任何功能可由用户125提供的用户设置数据所规定。在一些实施例中,用户设置模块210经由总线220耦合至回退确定模块204以提供一个或多个用户可配置的设置,且回退确定模块204可以至少部分基于一个或多个用户可配置的设置来生成路由信号。

转换模块212是包括用于转换消息数据的例程的软件。如果网络数据连接被确定为不可被与连接服务器140合作的回退确定模块214使用,则转换模块212可以将消息数据转换成与回退数据连接的协议相兼容的格式。在一些实施例中,转换模块212接收格式与对于群组消息传递引擎103本机的协议相兼容的消息数据。在其他实施例中,转换模块212将消息数据转换成与对于群组消息传递引擎103本机的协议相兼容的格式,并且接收格式与回退数据连接的协议相兼容的消息数据。转换模块212经由总线220耦合至分派器208以发送和接收信息。在一些实施例中,转换模块212经由总线220从分派器208接收消息数据和转换指令。转换指令指示转换模块212转换消息数据,并且指明消息数据应当被转换成的协议或者消息数据应当被转换成的格式。然后,转换模块212经由总线220指示处理器235以转换消息数据并且将其提供给分派器208。例如,以上参照分派器208且以下参照图4-图6B描述了转换模块212的附加功能。

消息传递数据存储214是用于存储消息相关数据的数据存储。消息传递数据存储214经耦合以便经由总线220与群组消息传递引擎103的组件202、204、206、208、210和212以及社交网络服务器101的其他组件105、235、237和239通信。例如,消息传递数据存储214耦合至接口模块202、回退确定模块204和分派器208以发送和接收消息相关的数据/信息。在一些实施例中,消息传递数据存储210存储由群组消息传递引擎103的其他模块接收、生成和发送的信息。例如,消息传递数据存储214存储消息数据、用户设置数据、转换数据、映射数据、回退信息、等等。消息传递数据存储214可以存储用户125的消息数据的存档,所述消息数据包括文本消息、群组消息、即时消息、电子邮件等等。例如,用户125可以将用户125的用户设备115中存储的全部消息备份至消息传递数据存储214供以后检索(例如,万一消息从用户设备115被删除)。在一些实施例中,接口模块202耦合至群组消息传递引擎103的其他模块,因此这些模块可以使用编程操作来操纵(即,存储、查询、更新和/或删除)数据。

在一些实施例中,消息传递数据存储214是可工作于社交网络服务器101上并且可存储于存储器237中的数据库管理系统(DBMS)。例如,数据库可以使结构化查询语言(SQL)DBMS。在这些实施例中,社交网络服务器101、特别是群组消息传递引擎103经由总线220耦合至数据库以将数据存储在由行和列组成的多维表格中,并且使用编程操作(例如,SQL查询和语句)来操纵(即,插入、查询、更新和/或删除)数据行。

用户设备

图3是示出根据本公开一些实施例的用户设备115的框图。在所述实施例中,用户设备115包括SMS模块302、群组消息传递应用107、图形适配器314、输入设备318、处理器335、存储器337和通信单元339。用户设备115还包括耦合至图形适配器314的显示器316。组件302、107、335、337、339、103b、314、316和318经由总线220通信地耦合。总线320的功能可由互连的芯片集提供。在一些实施例中,用户设备115包括耦合至总线320以和用户设备115的其他组件通信的群组消息传递引擎103b。例如,以上参照图2描述了群组消息传递引擎103b。图形适配器314、显示器316、输入设备318和群组消息传递引擎103b用虚线描述以指示它们是用户设备115的任选特征。

处理器335包括算术逻辑单元、微处理器、通用控制器或某一其他处理器阵列以执行计算并且将电子显示信号任选地提供给显示设备316。处理器335经由总线320与其他组件通信。处理器335处理数据信号并且可以包括各种计算体系结构,各种计算体系结构包括复杂指令集计算机(CISC)体系结构、精简指令集计算机(RISC)体系结构或实现指令集组合的体系结构。尽管图3中仅示出一个处理器,但是可以包括多个处理器。用户设备115也可以包括可由处理器335执行的操作系统。

存储器337存储可由处理器335执行的指令和/或数据。存储器337经由总线320与用户设备115的其他组件通信。指令和/或数据包括用于执行这里所述的任一和/或全部技术的代码。存储器337可以是动态随机存取存储器(DRAM)设备、静态随机存取存储器(SRAM)设备、闪存或某一其他已知的存储器设备。在一些实施例中,存储器337还包括非易失性存储器或类似的永久存储设备和介质,包括例如硬盘驱动器、软盘驱动器、CD-ROM设备、DVD-ROM设备、DVD-RAM设备、DVD-RW设备、闪存设备或已知用于更永久地存储信息的某一其他大容量存储设备。在一些实施例中,群组消息传递应用107和/或群组消息传递应用103b被存储在存储器337中并且可由处理器335执行。

通信单元339包括用于与其他设备/设备网络相接的接口。在一些实施例中,通信单元339包括用于发送和接收无线信号的收发机。例如,通信单元339包括用于与移动网络106通信的无线电收发机(4G、3G、2G等)、以及用于WiFi和连通性的无线电收发机。在所述实施例中,通信单元339通过信号线114耦合至网络105,并且经由信号线116和/或118耦合至移动网络106。在这些及其他实施例中,通信单元339包括网络接口设备(I/F),网络接口设备(I/F)包括用于有线连通性的端口。例如,通信单元339包括CAT-5接口、USB接口或SD接口等。例如,通信单元339的接口提供至网络105的网络数据连接,经由网络106的回退数据连接,以及使用上述参照图1和2所讨论的协议的至其他网络和设备提供其他连接。以上至少参照这些附图描述了通信单元339的附加结构和特征。

SMS模块302是包括用于将SMS消息发送至用户设备115和从用户设备115接收SMS消息的例程的软件。在一些实施例中,SMS模块302是可由处理器335执行以提供该功能的一组指令。在其他实施例中,SMS模块302被存储在用户设备115的存储器337中并且可由处理器335访问和执行以提供该功能。在这些实施例的任一个中,SMS模块302可适合于经由总线320与处理器335及用户设备115的其他组件协作和通信。在一些实施例中,SMS模块302包括允许用户设备115的其他模块与SMS模块302交互的API。例如,经由总线320在通信上耦合至SMS模块302的路由模块306使用SMS模块302的API来将文本消息分派至SMS网关150。SMS模块可以基于经由API从路由模块306接收到的命令,在SMS模块302的指令下填充由用户界面引擎308生成和显示的界面的字段。或者,SMS模块可以在没有与用户125的任何进一步交互的情况下发送文本消息,或者可以向用户125显示提示以请求发送文本消息的授权。

图形适配器314将图像和其他信息显示在显示器316上。图形适配器314可以使包括单独处理器和存储器(未示出)的单独处理设备,或者可以与处理器335和存储器337集成。显示器316表示被配备成显示这里所述的电子图像和数据的任何设备。显示器316可以是常规的显示设备、监视器或屏幕,诸如有机发光二极管(OLED)显示器、液晶显示器(LCD)。在一些实施例中,显示器316是能从用户125的一个或多个手指接收输入的触摸屏显示器。例如,显示器316可以是能够检测并解释与显示表面的多个触点的电容性触摸屏显示器。

输入设备318是用于在用户设备115上输入数据的任何设备。在一些实施例中,输入设备318是能够从用户125的一个或多个手指接收输入的触摸屏显示器。输入设备318和显示器316的功能可集成,并且用户设备115的用户125可以通过使用一个或多个手指接触显示器316的表面来与用户设备115交互。例如,用户125通过使用手指来接触键盘区域中的显示器,来与触摸屏显示器316上显示的模拟(即,虚拟或软)键盘交互。在其他实施例中,输入设备318是单独的外围设备或是设备的组合。例如,输入设备318包括键盘(例如标准键盘)和指示设备(例如鼠标或触摸板)。输入设备318还可以包括麦克风、web相机或其他类似的音频或视频捕捉设备。

群组消息传递应用107

群组消息传递应用107是包括用于生成、发送和接收消息数据的例程的软件。具体而言,群组消息传递应用107从用户125接收输入信号,从输入信号生成消息数据和用户设置,将消息数据发送至群组消息传递引擎103和从群组消息传递引擎103接收消息数据,以及管理用户设置。在一些实施例中,群组消息传递应用107是可由处理器335执行以提供该功能的一组指令。在其他实施例中,群组消息传递应用107被存储在用户设备115的存储器337中并且可由处理器335访问和执行以提供该功能。在这些实施例的任一个中,群组消息传递应用107可适合于经由总线320与处理器335及用户设备115的其他组件协作和通信。在一些实施例中,群组消息传递应用107生成、发送和接收的消息具有与对于群组消息传递引擎103本机的协议相兼容的格式、或者与回退通信协议相兼容的格式,如前所述。

在所述实施例中,群组消息传递应用107包括路由模块304、消息传递模块306、用户界面引擎308、用户设置模块310和永久性模块312。路由模块304、消息传递模块306、用户界面引擎308、用户设置模块310和永久性模块312经由总线320耦合以用于彼此间通信以及与用户设备115的其他组件通信。

路由模块304是包括用于经由网络数据连接和回退数据连接选择性地路由消息的例程的软件。特别是,路由模块304基于网络数据连接是否可用将消息路由至用户设备115。在一些实施例中,路由模块304是可由处理器335执行以提供该功能的一组指令。在其他实施例中,路由模块304被存储在用户设备115的存储器337中并且可由处理器335访问和执行以提供该功能。在这些实施例的任一个中,路由模块304可适合于经由总线320与处理器335及用户设备115的其他组件协作和通信。

路由模块304经由总线320耦合至永久性模块312以发送和接收信息。在一些实施例中,路由模块304向永久性模块312请求指示网络数据连接是否存在的连通性信息。永久性模块312响应于该请求,生成连接信息并将连通性信息发送至路由模块304。路由模块304使用连通性信息来确定是经由网络数据连接还是经由回退数据连接来路由消息。例如,永久性模块312将连通性信息发送至路由模块304以指示用户设备115未经由网络数据连接(例如,经由网络105的WLAN或移动网络106的WWAN)耦合至网络105,并且,基于连通性信息,路由模块304经由回退数据连接路由消息以作为SMS消息。如果连通性信息指示网络数据连接将用户设备115或直接或间接地耦合至网络105,则路由模块304使用对于群组消息传递应用107和群组消息传递引擎103本机的协议,经由网络数据连接来将消息数据路由至群组消息传递引擎103。

消息传递模块306是用于接收、生成和存储消息数据的软件。在一些实施例中,消息传递模块306是可由处理器335执行以提供该功能的一组指令。在其他实施例中,消息传递模块306被存储在用户设备115的存储器337中并且可由处理器335访问和执行以提供该功能。在这些实施例的任一个中,消息传递模块306可适合于经由总线320与处理器335及用户设备115的其他组件协作和通信。

在一些实施例中,消息传递模块306经由总线320耦合至用户界面引擎308以接收描述用户125所输入的消息的输入信号。消息传递模块306基于输入信号生成消息数据,并且将消息数据发送至路由模块304用于路由至社交网络服务器101。在其他实施例中,消息传递模块306或者经由网络数据连接或者经由回退数据连接耦合至通信单元339以便从社交网络服务器101接收消息数据。消息传递模块306将消息数据存储在存储器337中供稍候检索。例如,用户界面引擎308检索消息传递模块306所存储的消息数据,并且生成显示当前和过去消息线程的主消息传递界面。

用户界面引擎308是包括用于呈现用户界面并用于经由用户界面接收用户输入的例程的软件。在一些实施例中,用户界面引擎308是可由处理器335执行以提供该功能的一组指令。在其他实施例中,用户界面308被存储在用户设备115的存储器337中并且可由处理器335访问和执行以提供该功能。在这些实施例的任一个中,用户界面引擎308可适合于经由总线320与处理器335及用户设备115的其他组件协作和通信。用户界面308经由总线320耦合至输入设备318以从用户125接收输入信号。例如,用户125使用输入设备125编写消息,并且用户界面引擎308接收描述所编写的消息的信号并且将信号存储在存储器337中供消息传递模块306检索。在其他实施例中,用户界面引擎308经由总线320耦合至消息传递模块306以将信号直接提供给消息传递模块306。

用户界面引擎308所生成的用户界面可包括但不限于:用于编写消息的消息入口、用于查看所发送和接收的消息的主消息传递界面(例如,见图6)、以及用于输入、修改和显示与群组消息传递应用107和群组消息传递引擎103相关的用户首选项的设置对话框(例如,见图7)。在一些实施例中,用户界面包括允许用户125与用户设备115以及输入信息和命令交互的用户界面元素,诸如文本输入字段、选择框、下拉菜单、按钮、虚拟键盘和数字键盘等等。消息输入表格可以包括用于输入消息接收者的输入字段(诸如下拉菜单)以及用于定义消息正文的字段。在选择接收者时,用户125可以例如从可自社交图表130检索的用户125的社交图表的社交圈中进行选择。用户界面引擎308通过查询社交网络的社交图表130以得到用户设备115的用户125所限定的全部社交圈并且用社交圈来填充下拉菜单,生成该下拉菜单。在一些实施例中,用户125从他或她在社交网络上的联系人来限定家庭、朋友、熟人、工作联系人等的社交圈。图7和图8示出并且在以下进一步讨论了为由用户界面引擎308显示在用户设备115的显示器316上而生成的用户界面的例子。

用户设置模块310是包括用于存储、检索和发送用户设置相关信息的例程的软件。在一些实施例中,用户设置模块310是可由处理器335执行以提供功能的一组指令。在其他实施例中,用户设置模块310被存储在用户设备115的存储器337中并且可由处理器335访问和执行以提供功能。在这些实施例的任一个中,用户设置模块310可适合于经由总线320与处理器335及用户设备115的其他组件协作和通信。

在一些实施例中,用户设置模块310耦合至用户界面引擎308以接收被用户界面引擎308标识为用户设置相关信息的输入信号。例如,为了输入或修改用户125的用户设置,用户125使用输入设备318选择用户界面引擎308所呈现的用户界面中所包括的用户界面元素。用户界面引擎308将从输入设备318接收到的信号标识为用户设置相关信息并将信号发送至用户设置模块310。用户设置模块310基于接收到的用户设置相关信息来修改群组消息传递应用107的行为,并且保存用户设置相关信息供稍候引用和修改。在一些实施例中,用户设置模块310能将描述用户设置的数据存储在社交网络服务器101的消息传递数据存储214、用户设备115的存储器337或两者中并且从社交网络服务器101的消息传递数据存储214、用户设备115的存储器337或两者中检索描述用户设置的数据。在一些实施例中,用户设置模块310所维持的一些用户设置可应用于群组消息传递引擎103。例如,用户125可以通过修改回退选项界面800(见图8)中呈现的设置来控制群组消息传递引擎103的回退确定模块204的功能。以下至少参照图8描述了用户设置模块310的附加功能和结构。

永久性模块312是包括用于在用户设备115经由网络数据连接耦合至网络105时维持与连接服务器140的永久连接的例程的软件。在一些实施例中,永久性模块312是可由处理器335执行以提供功能的一组指令。在其他实施例中,永久性模块312被存储在用户设备115的存储器337中并且可由处理器335访问和执行以提供功能。在这些实施例的任一个中,永久性模块312可适合于经由总线320与处理器335及用户设备115的其他组件协作和通信。

永久性模块312经由总线320耦合至通信单元339。在一些实施例中,永久性模块312从通信单元339接收指示通信单元339是否耦合至网络105和/或移动网络106的连通性信号。如果连通性信号指示通信单元339或直接经由信号线114或间接经由信号线118耦合至网络105,如前所述,则永久性模块312就生成连接请求并且将连接请求发送至连接服务器140。连接服务器140接收该请求,使用请求中所提供的标识信息来标识用户设备115,并且在用户设备115被连接服务器140正确标识的情况下维持与用户设备115的永久连接。在一些实施例中,请求中提供的标识信息是与用户设备115的用户125或者用户设备115自身相关联的唯一标识符。例如,标识信息包括以下的一个或多个:移动网络订户密钥、媒体接入控制地址(MAC地址)、用户设备115的IP地址、标识群组消息传递应用107及其版本级别的信息、社交网络的用户标识符、等等。

方法

现在参照图4-图6,描述了本公开的方法的各个实施例。图4是根据本公开一些实施例的用于回退消息传递的方法400的流程图。方法400步骤402,由接口模块202从用户设备115接收一个或多个接收者的消息数据。方法400继续进行,由回退确定模块204与连接服务器140合作确定404一个或多个接收者的每一个的用户设备115是否具有到连接服务器140的网络数据连接。对于被确定404为没有网络数据连接的每一个接收者,回退确定模块204指示分派器208使用回退消息传递协议经由回退数据连接来分派406消息数据。对于被确定404为具有网络数据连接的每一个接收者,回退确定模块204指示分派器208使用对于群组消息传递引擎103本机的协议经由网络数据连接来分派408消息数据。该方法400特别有利,因为即使网络数据连接不可用(例如,不可使用、断断续续、不可靠、断开等等)也允许用户125继续经由回退数据连接来交换消息。

图5是根据本公开一些实施例的用于回退消息传递的方法的流程图。方法500始于由接口模块202从属于一消息传递群组的用户125的用户设备115接收502请求以将消息发送至该消息传递群组的其他用户(即,成员)。方法500继续进行,由接口模块202接收504描述该消息的消息数据。在一些实施例中,消息数据包括标识发送该消息的用户125以及被指定接收该消息的用户125的信息。接着,回退确定模块204与连接服务器104合作确定506被指定接收消息数据的每个用户125的用户设备115是否具有网络数据连接。在一些实施例中,回退确定模块204基于从连接服务器140接收到的连接信息来确定每个被指定接收者的用户设备115是否具有网络数据连接。例如,由于连接服务器140所提供的连接信息将网络数据连接描述为不存在或不可靠(例如,连通性断断续续、经由网络数据连接传输的数据分组的分组丢失率很高、等等),因此网络数据连接被回退确定模块204确定为不存在。对于被分派确定模块204确定508为不具有网络数据连接的每个被指定的接收者(即,回退接收者),方法500通过以下继续进行:由映射模块206使用回退标识符将消息数据映射510至消息传递群组,使用唯一会话标识符将消息数据映射至消息传递线程和消息传递群组,以及为回退接收者提供包括回退标识符和回退信息在内的映射数据,诸如电话号码。在一些实施例中,回退标识符是从与SMS网关150相关联的电话号码池中选取的电话号码,并且在消息数据经由回退数据连接作为SMS消息被发送时将SMS网关150标识为消息数据的发送者。

接着,分派器208任选地指示转换模块212将消息数据重新格式化512为SMS兼容的格式,然后分派器208基于路由信号修改消息数据的发送者和接收者以对应于路由信号中所包括的映射数据,并且将消息数据中继514至SMS网关150。在其他实施例中,消息数据未被重新格式化,消息数据的基本组成部分被中继514至SMS网关150。方法500继续,SMS网关150从分派器208接收消息数据,且如果消息数据未被转换模块212格式化成SMS兼容的格式,SMS网关150就格式化消息数据。然后,SMS网关使用SMS协议经由回退数据连接将消息数据分派516至每一个回退接收者的用户设备115。接着,分派器208将消息数据的副本任选地存储522在群组消息传递引擎103的消息传递数据存储214中,方法500于是完成并结束。

回过头参照步骤508,对于被确定508为具有网络数据连接的消息传递群组的每个用户,方法继续进行,由用户设置模块210验证518用户可配置的重写(override)设置(例如,见图8,808)是否指示群组消息传递引擎103无论网络数据连接的状态如何,都经由回退数据连接来分派该特定用户的所有消息数据。如果重写设置被设为重写,方法500如上所述完成步骤510、512、514、516以及任选的522,然后结束。如果手动重写设置未被设为重写,方法500继续进行,由分派器208基于回退确定模块204生成并且从回退确定模块204接收到的路由指令,使用对于群组消息传递引擎103本机的协议经由网络数据连接来分派520消息数据。在其他实施例中,用户可以通过设置指示方法500将消息数据存储在消息传递数据存储214中的用户设置(例如,见图8,806)来禁用经回退数据连接接收SMS消息,并且等待直到用户设备115建立了到连接服务器140的网络数据连接来分派它。例如,万一用户希望避免SMS消息传递费用被移动网络的操作者所访问,用户可以通过启用该设置来禁用经由回退数据连接将消息作为SMS消息被传递。方法500继续进行,分派器208任选地将消息数据的副本存储522在群组消息传递引擎103的消息传递数据存储214中,然后方法500完成并结束。

图6A和6B是根据本公开一些实施例的用于回退消息传递的方法的流程图。方法600始于由接口模块202从属于一消息传递群组的用户125的用户设备115接收602请求以将消息发送至该消息传递群组的其他用户(即,成员)。在一些实施例中,使用回退消息传递协议经由回退数据连接来接收602请求。在其他实施例中,使用对于群组消息传递引擎103本机的协议经由网络数据连接来接收602请求。方法600继续,由接口模块202接收604消息数据。

方法600继续,由映射模块206确定606消息数据中包括的发送者信息是否包括被映射到一组特定用户的回退标识符。在一些实施例中,将回退标识符包括在发送者信息中指示,在步骤604中接收到的消息数据是响应于以前在方法600的先前次迭代期间经由回退数据连接从群组消息传递引擎103接收到消息而从用户设备115被发送的。如上参照步骤510所述,在一些实施例中,回退标识符是将SMS网关150标识为前一消息的发送者的电话号码。映射模块206使用该电话号码来标识208该消息传递群组的其他成员(即,先前消息的发送者和其他接收者)。然后,映射模块206将该信息提供给回退确定模块204以在确定508被指定为接收该消息数据的每一个群组成员的网络数据连接的可靠性时使用,如上所述。在步骤606之后或在步骤608之后,视情况而定,方法600通过完成如上参照图5所述的步骤506到522而继续,然后结束。如图6A和图6B所示,方法600包括和上面对方法500所述的那些步骤类似的许多步骤。为理解的方便和容易,这里将不再重复具有相同附图标记且执行相同或类似功能的那些步骤以及它们的描述。

方法600特别有利,因为它允许经由回退数据连接发送的任何回复消息被路由回SMS网关150并最终至群组消息传递引擎130,并且允许回复消息被映射模块206映射回消息传递群组的成员。方法600还为消息传递群组的成员提供了更无缝的消息传递体验的好处,因为群组的所有成员可继续经由网络数据连接或经由回退数据连接接收被交换的消息数据,且即使被交换的消息中的一些已使用回退数据连接和消息传递协议被发送,被交换的消息也可以继续与一公共消息传递线程相关联。此外,尽管在SMS消息传递的上下文中描述了上述方法400、500和600及其优点,这些方法400、500和600及益处也可应用于以上讨论的其他回退消息传递协议,诸如MMS、XMS、电子邮件、IM等等。

用户界面

图7和图8是根据本公开一些实施例的用于回退消息传递的用户界面的实施例的图形表示。具体而言,图7是根据本公开一些实施例的用于查看消息线程的用户界面700的图形表示。用户界面引擎308所生成的用户界面700包括具有多个组件的窗口702,多个组件包括工具栏按钮704和706、水平滚动区域708、消息字段710、712、714和716、以及文本输入字段718。窗口702是用户界面700的其他元素的容器。工具栏704是用于将另一用户125添加至消息传递群组的按钮。在一些实施例中,选择该按钮激活一对话框,该对话框允许用户125从用户设备115上存储的联系人数据库或者从存储于社交图表130中且可从社交图表130检索的数据库将附加用户125添加至消息传递群组。在一些实施例中,可以向消息传递群组添加没有社交网络软件/应用102的用户账户并且仅可经移动电话号码寻址的电话联系人,且群组消息传递引擎103将经由SMS这样的文本消息传递协议在那些电话联系人和消息传递群组的其他成员之间交换消息。工具栏按钮706是用于修改消息传递设置706的按钮。在一些实施例中,选择按钮706激活了图8所述的用户界面800。下面进一步详细讨论用户界面800。水平滚动区域708是用于查看与消息传递线程相关联的消息传递群组的成员的缩略图的可水平滚动的字段。在一些实施例中,选择描述成员的图标显示一界面,该界面示出该成员在社交网络上的社交流或简述。在其他实施例中,选择描述成员的图标示出涉及或引用该成员的所有消息传递线程。

在一些实施例中,消息字段710、712、714和716的每一个反映消息线程的消息。行710和712描述了经由对群组消息传递应用107和群组消息传递引擎103本机的协议使用网络数据连接交换的消息。在所述实施例中,行714和716示出使用回退数据连接经由SMS(即,回退消息传递协议)交换的消息,并且被标记为“SMS”。文本输入字段718是用于输入要被发送至水平滚动区域708中所述的消息传递群组的其他成员的消息的文本的字段。在一些实施例中,一旦选择文本输入字段718来输入消息文本,用户界面引擎308呈现包括发送按钮的虚拟键盘,用于显示在显示器316上的文本输入字段718之下。为发送消息,用户125在文本输入字段718中输入消息文本,并且选择发送按钮来将消息数据发送至消息传递群组的其他成员(即,被指定的接收者)。在其他实施例中,用户125使用用户设备115中包括的硬件键盘来输入和发送消息文本。在一些实施例中,输入消息文本以答复在消息字段710、712、714和716之一中显示的前一消息。在其他实施例中,输入消息文本以便与消息线程的其他成员讨论一个新话题。在用户设备115未经由网络数据连接耦合至网络105的一些实施例中,一旦用户125输入并选择发送消息文本,消息传递模块306就从输入设备318接收描述消息的数据并且将其提供给路由模块304,并且路由模块304将消息文本中继至用户设备115的SMS模块302用于分派至SMS网关150,SMS网关150可以使用在从群组消息传递引擎103接收到的先前消息中所包括(例如,包括在字段714的消息数据中)的回退标识符在移动网络106上寻址。如果没有回退标识符可用于将消息数据发送至SMS网关150,群组消息传递应用107就可以通过从用户设备115的存储器337中存储的联系人数据库中检索消息传递群组的每一个成员的移动电话号码、并且将消息数据寻址到用户的电话号码而不是他们的群组消息传递引擎用户标识符(例如,社交网络软件/应用102用户标识符),从而经由SMS将消息数据直接发送至每一个成员。此外,对于该用户125发送的任何后续消息,群组消息传递应用107可以回过头使用本机群组消息传递引擎协议经由网络数据连接来发送消息,只要网络数据连接可用。

图8是根据一些实施例用于管理用户设置的用户界面800的图形表示。用户界面引擎308所生成的用户界面800包括窗口802、工具栏804以及用户设置切换键806和808。窗口802是用户界面800的其他元素的容器。工具栏804包括描述用户界面800的标记和用于返回从其激活用户界面800的前一用户界面(诸如用户界面700)的返回按钮。切换键806是将这里所述的回退功能在开启和关闭之间切换的用户可选择的开关。例如,如果用户125不希望在网络数据连接不可用时经由回退数据连接接收或发送消息,则用户125可以通过选择编辑和“关闭”(未示出)来关闭该功能。切换键808是无论网络数据连接是否可用,都经由回退数据连接将使用群组消息传递引擎103交换的所有消息作为SMS消息来发送的用户可选择的开关。在一些实施例中,将切换键808切换至开启位置在切换键806位于关闭位置时将切换键806自动切换至开启位置。尽管关于SMS描述了切换键806和808,但这些切换键可应用于这里所述的任一回退消息传递协议。此外,尽管仅示出两个设置被包括在用户界面800中,控制群组消息传递应用107或群组消息传递服务器103的任一方面的设置可以被包括在本公开中并且在本公开的范围内。还应当理解,用户界面700和800仅仅是例子,界面元素具有各种不同的格式、窗口内的位置及其组合,全部这些都被包含在本公开的范围内。

已经描述了用于回退消息传递的系统和方法。在上述描述中,为说明目的,提出了许多具体的细节以便提供对本公开的完全理解。应当理解,可以在没有这些具体细节的情况下实现各个示例实施例中描述的技术。在其他实例中,以框图形式示出结构和设备以避免混淆本公开。例如,上面在一些实施例中参照用户界面和特定硬件描述了本公开。然而,本公开应用于可接收数据和命令的任何类型的计算设备以及提供服务的任何设备。此外,上面主要在经由社交网络服务器101交换消息的上下文中描述了本公开。然而应当理解,本公开应用于端点间的任何类型的其他消息交换。

说明书中的“一个实施例”或“一实施例”是指结合该实施例描述的特定特征、结构或特性被包括在本公开的至少一个实施例中。在说明书中各处出现的短语“在一个实施例中”不必要全部指代相同的实施例。

以上详细描述的一些部分是用和计算机存储器内的数据位的操作的算术和符号表示来呈现的。这些算术描述和表示是数据处理领域的技术人员用来将他们的工作实质最有效地传达给所属领域其他人的手段。算法在此处且通常被视为是得到期望结果的自一致的步骤序列。这些步骤是要求物理量的物理操纵的那些步骤。通常,尽管非必要,这些量采取能被存储、传输、组合、比较及其他方式操纵的电信号或磁信号的形式。通常为了共同使用的原因,将这些信号指代为比特、值、元素、符号、字符、项、数字等已证实是方便的。

然而应当记住,所有这些和类似的项都与适当的物理量相关联,并且仅仅是应用于这些量的简便标记。从以上讨论显而易见,除非特别指明,可以理解,在整个说明书中,使用诸如“处理”或“计算”或“演算”或“确定”或“显示”等的讨论是指计算机系统或类似电子计算设备的动作和过程,计算机系统或类似电子计算设备操纵被表示为计算机系统的寄存器和存储器内的物理(电子)量的数据并将其变换成类似地被表示为计算机系统存储器或寄存器或其他这类信息存储、传输或显示设备内的物理量的其他数据。

本公开还涉及用于执行这里的操作的装置。该装置为所需目的特别构造,或者它可以包括由计算机中存储的计算机程序选择性激活或重新配置的通用计算机。这一计算机程序可以被存储在计算机可读存储介质中,计算机可读存储介质包括但不限于:包括软盘、光盘、CD-ROM和磁盘在内的任何类型的盘、只读存储器(ROM)、随机存取存储器(RAM)、EPROM、EEPROM、磁卡或光卡、包括非易失性存储器的USB密钥的闪存、或者适用于存储电子指令的任何类型的介质,每个介质均耦合至计算机系统总线。

本公开可以采取以下形式:完全硬件的实施例、完全软件的实施例、或包含硬件和软件元件两者的实施例。在一优选实施例中,本公开以软件实现,软件包括但不限于固件、常驻软件、微代码等。

而且,本公开可采取计算机程序产品的形式,计算机程序产品可从计算机可用或计算机可读介质访问,计算机可用或计算机可读介质提供程序代码供计算机或任何指令执行系统使用或者与计算机或任何指令执行系统结合。为此说明书的目的,计算机可用或计算机可读介质可以是能包含、存储、传送、传播或传输程序供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合的任何装置。

适合于存储和/或执行程序代码的数据处理系统将包括通过系统总线直接或间接耦合至存储器元件的至少一个处理器。存储器元件可包括在程序代码的实际执行期间采用的本地存储器、提供至少一些程序代码的临时存储的大容量存储和高速缓存存储器,以便减少在执行期间必须从大容量存储检索代码的次数。

输入/输出或I/O设备(包括但不限于键盘、显示器、指示设备等)可以或直接或通过中间I/O控制器耦合至系统。

网络适配器也可耦合至系统以使数据处理系统变得通过中间私有网络或公共网络耦合至其他数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅仅是一些目前可用的网络适配器类型。

最后,这里呈现的算法和显示并非与任何特定的计算机或其他装置内在相关。各种通用系统可用于按照这里原理的程序,或者构建更专门的装置来执行所需方法步骤可能证实是方便的。各种这些系统的所需结构将从以上描述显而易见。此外,本公开并不是参照任何特定的编程语言来描述。可以理解,可以使用各种编程语言来实现这里所述的本公开的原理。

本公开的范围并非意图被该详细描述所限制,而使被本申请的权利要求书所限。本领域的熟练技术人员将理解,本公开可以以其他具体形式体现,而不背离其精神或基本特征。同样,模块、例程、特征、属性、方法及其他方面的特定命名和区分不是强制的或重要的,实现本公开或其特征的机制可具有不同的名称、区分和/或格式。而且应当理解,本公开的模块、例程、特征、属性、方法及其他方面可以被实现为软件、硬件、固件或这三者的任一组合。同样,在本公开的一个组件(其一个例子是模块)被实现为软件时,该组件可以被实现为独立程序、较大程序的一部分、多个单独程序、静态或动态链接库、内核可加载模块、设备驱动器和/或以每一个及任何其他方式实现。此外,本公开根本不限于以任何特定的编程语言或者对于任何特定的操作系统或环境实现。因此,本公开对于本公开的范围意图是示意性的,而非限制性的,本公开的范围在所附权利要求书中阐述。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1