例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。即时通讯模块124用于在操作系统122的基础上实现即时通讯的功能,即实现文字、图片、视频、音乐、文档等内容的发送。具体地,即时通讯模块124可为各公司开发的即时通讯应用程序,如腾讯公司的微信或者手机QQ应用程序。
[0047]可以理解,第二用户端202、第三用户终端203、以及第四用户终端204可与第一用户终端201具有相似的结构。第一用户终端201、第二用户终端202、第三用户终端203、第四用户终端204内分别安装有同一款即时通讯应用程序。
[0048]在一个应用场景中,第一用户301通过第一用户终端201登入即时通讯服务,第二用户302通过第二用户终端202登入即时通讯服务,第三用户303通过第三用户终端203登入即时通讯服务,第四用户304通过第四用户终端204登入即时通讯服务。
[0049]第一用户301通过即时通讯应用程序提供的界面,可以选择将某一多媒体内容(例如图片、音乐、视频、或者其他格式的文档)发送给多个用户(例如,上述的第二用户
302、第三用户303、以及第四用户304)。可以理解,在接收到用户的发送指令后,一方面,上传模块126会将待发送的内容上传至接入节点内的存储服务器111中;另一方面,上传模块126会将上传者以及所有接收者的信息发送给内容分发服务器112。
[0050]在一个实例中,待分发的内容是存储在第一终端内的本机文件,此时,上传模块126需要将本机文件上传至存储服务器111中。存储服务器111将待分发内容的存储索引返回给上传模块126。
[0051]在另一个实例中,待分发的内容是存储在互联网内其他服务器内的公开文件,此时,上传模块126可以将待分的内容的资源定位符上传至存储服务器111,由存储服务器111直接根据资源定符抓取内容并存储;另外,上传模块126也可以按照本机文件相同的方式直接上传待分享内容。存储服务器111将待分发内容的存储索引返回给上传模块126。
[0052]在另一个实例中,待分的内容已经缓存在存储服务器111中,此时上传模块126无须再进行上传操作。
[0053]参阅图4,其为存储服务器111的一个实施例的结构框图。如图4所示,存储服务器111包括:存储器202、处理器204、存储控制器206、外设接口 208、以及网络模块210。可以理解,图4所示的结构仅为示意,其并不对接入服务器111的结构造成限定。例如,接入服务器111还可包括比图4所示更多或者更少的组件,或者具有与图4所示不同的配置。
[0054]存储器202可用于存储软件程序以及模块,如本发明实施例中的即使通讯会话的方法及装置对应的程序指令/模块,处理器204通过运行存储在存储器202内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。
[0055]存储器202可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器202可进一步包括相对于处理器206远程设置的存储器,这些远程存储器可以通过网络连接至接入服务器111。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。处理器206以及其他可能的组件对存储器202的访问可在存储控制器204的控制下进行。
[0056]外设接口 208将各种输入/输入装置耦合至处理器206。处理器206运行存储器202内的各种软件、指令接入服务器111执行各种功能以及进行数据处理。在一些实施例中,外设接口 208、处理器206以及存储控制器204可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
[0057]网络模块210用于接收以及发送网络信号。上述网络信号可包括无线信号或者有线信号。在一个实例中,上述网络信号为有线网络信号。此时,网络模块210可包括处理器、随机存储器、转换器、晶体振荡器等元件。
[0058]上述的软件程序以及模块包括:操作系统222以及存储模块224。操作系统222其可包括各种用于管理系统任务(例如内存管理、存储设备控制、电源管理等)的软件组件和/或驱动,并可与各种硬件或软件组件相互通讯,从而提供其他软件组件的运行环境。存储模块224用于根据客户端(包括用户终端以及接入节点内的其他服务器)的请求存储数据或者返回查询的数据。
[0059]参阅图5,内容分发服务器112结构与存储服务器11相似,其不同之处在于其内运行的软件模块。内容分发服务器112包括内容分发模块226。内容分发模块226用于根据用户终端内的上传模块126上传的上传者及接收者的信息进行内容的分发操作。
[0060]参阅图6,其为在上述的内容分发过程中,用户终端、存储服务器、内容分发服务器之间的交互示意图。首先,第一用户301通过即时通讯模块124提供的界面选择要发送的内容以及多个接收者(步骤I),在接收到第一用户301的用户指令后,一方面,上传模块126将待分发的内容上传至接入节点内的存储服务器中,并获取待分发的内容在存储服务器中的索引;另一方面,上传模块126将上传模块126将上传者(如第一用户301)以及所有接收者的信息发送给内容分发模块226。
[0061]内容分发模块226在获取上传者以及接收者的信息后,解析接收到的信息可以获取第一接收者列表,第一接收者列表内包含待摄像头内容被指定的接收者的识别信息。然后,内容分发模块226需要根据第一接收者列表获取第二接收者列表,第二接收者列表内每个接收者所属的接入节点均不同于所述第一用户终端的接入节点。
[0062]具体地,内容分发模块226查询上传者以及所有接收者所属的接入节点(步骤3及步骤4)。具体地,可以向一个地理位置信息服务器(如图1所示的服务器103)发送查询请求,将上传者以及所有接收者的标识上传给地理位置信息服务器以进行查询。一个用户(或者说对应的用户终端)的地理位置可以是通过以下方式采集的:根据IP地址与地理位置的映射关系数据库将用户终端的IP地址映射为其地理位置;或者直接接收用户终端上传的地理位置信息。可以理解,目前的移动电子终端内可包括定位模块,通地全球定位系统或者无线定位技术实现地理位置的定位,在获取用户的授权后,应用程序可以获取用户终端的地理位置,并将地下位置上传至地理位置信息服务器中。
[0063]在一个实例中,地理位置信息服务器返回的是上传者以及接收者的地理位置信息。此时,内容分发模块226可以自行判定上传者或者接收者所属的接入节点。
[0064]例如,由于接入节点的位置是固定的,因此根据每个用户终端距各接入节点的距离即可判定其属于哪个接入节点。例如,选择距离最近的接入节点作为该用户终端的所属接入节点。当然,由于在实际的互联网中,访问的快速并不直接等同于物理上的距离,因此,判定用户终端属于哪个接入节点并不限于只根据地理距离。例如,还可根据网络架构以及具体经验给每个接入节点定义服务范围,若一个用户终端的地理位置落上述一个接入节点的服务范围内,则该用户终端属于该接入节点。
[0065]在另一个实例中,地理位置信息服务器还提供查询一个用户所属的接入节点的服务,也就是说,通过将接入节点的地理位置信息以及服务范围等信息存储在地理位置信息服务器内,可将查询一个用户终端属于哪个接入节点的操作置于地理位置信息服务器内进行。在此种情形下,内容分发模块226可直接接收到上传者或者接收者所属的接入节点的信息。
[0066]在查询到上传者以及接收者所属的接入节点的信息后,内容分发模块226进行接收者列表的第一次聚合操作,对于所有的接收者,判断其所属的接入节点是否与上传者相同,若相同,则可忽略该接收者,否则,均保留该接收者。经过此步骤,得到第二接收者列表,第二接收者列表内每个接收者所属的接入节点均不同于所述第一用户终端的接入节点。
[0067]参阅图7,在一个实例中,具有5个接收者,其中,I个接收者所属的接入节点(标识符为I)与上传者所属的接入节点(标识符为I)相同,其余4个接收者所属的接入节点与上传者所属的接入节点不同,因此,在经过上次的聚合操作后,第二接收者列表中的接收者只有4个接收者。
[0068]在获取第二接收者列表后,内容分发模块226可从存储模块224中获取待分发的内容(步骤5及步骤6)。具体地,内容分发模块226可将待分发内容的存储索引上传给存储模块224,存储模块224在接收到存储索引后,根据存储索引读取对应的记录,并返回读取的数据,即待分发的内容。
[0069]在获取待分发的内容后,内容分发模块226将待推送的内容分发给第二接收者列表中每个接收者所属的接入节点。
[0070]根据上述的过程,可以避免针对位于同一接入节点内的接收者进行内容推送操作,可以提升推送效率,降低网络流量。
[0071]然而,可以理解,根据此种方式,第二接收者列表中的每个接收者都执行一次推送操作,当有超过一个接收者属于同一接入节点时,会对同一接入节点进行多次推送操作。
[0072]为了进一步提升推送效率,在获取第二接收者列表后,参阅图8,还可获取第二接收者列表内每个接收者所属的接入节点以得到一个接入节点列