CN104094243B - 信息处理装置和信息处理方法 - Google Patents

信息处理装置和信息处理方法 Download PDF

Info

Publication number
CN104094243B
CN104094243B CN201280069142.2A CN201280069142A CN104094243B CN 104094243 B CN104094243 B CN 104094243B CN 201280069142 A CN201280069142 A CN 201280069142A CN 104094243 B CN104094243 B CN 104094243B
Authority
CN
China
Prior art keywords
equipment
server
message
information
notice
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
CN201280069142.2A
Other languages
English (en)
Other versions
CN104094243A (zh
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Publication of CN104094243A publication Critical patent/CN104094243A/zh
Application granted granted Critical
Publication of CN104094243B publication Critical patent/CN104094243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/10Protocols in which an application is distributed across nodes in the network
    • 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/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • 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/212Monitoring or handling of messages using filtering or selective blocking

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

为了减小云侧的系统负荷,并且对大量设备进行处置。信息处理装置包括通信单元和控制单元。解析表通信单元能够在需要的情况下,通过经由网络分别连接到第一设备、第二设备以及经由解析表网络持续连接到解析表第二设备的持续连接的服务器,来与第一设备、第二设备以及服务器进行通信。解析表控制单元能够控制解析表通信单元使得解析表通信单元从解析表第一设备接收寻址到解析表第二设备的数据,向解析表持续连接的服务器发送用于请求向解析表第二设备发送用于通知解析表数据的存在的通知消息的通知请求信息,并且响应于来自接收到解析表通知消息的解析表第二设备的请求,向解析表第二设备发送解析表数据。

Description

信息处理装置和信息处理方法
技术领域
本技术涉及一种能经由网络与多个设备进行通信的信息处理装置。
背景技术
传统上,作为使得能够在由于网络地址转换(NAT)路由器或者代理服务器/防火墙而彼此无法直接进行通信的设备之间自由进行通信的技术,存在称为可扩展消息和存在协议(XMPP)的消息协议。具体地,在云系统中设置使用XMPP的服务器,并且该服务器调解(intermediate)设备之间的所有通信,使得设备能够彼此通信,而不受NAT路由器或者代理服务器/防火墙影响。与XMPP相关的文献的示例包括下面的专利文献1。
专利文献1:日本专利申请公开第2007-318185号
发明内容
本发明要解决的问题
然而,在使用XMPP的方法中,使用基于可扩展标记语言(XML)的协议,因此在服务器与所有客户机建立恒定连接之后,服务器需要进行例如对XML进行解析的复杂的处理。因此,在这种方法中,单个服务器能够处置的客户机的数量不足。
鉴于上述情形,本技术的目的是提供一种能够减小云系统上的系统负荷,并且单个装置能够处置大量设备的信息处理装置、信息处理方法和程序。
解决问题的手段
为了实现该目的,根据本技术的实施例的信息处理装置包括通信单元和控制单元。通信单元能够在需要的情况下,经由网络在第一设备、第二设备以及经由网络持续连接到第二设备的持续连接的服务器中之间进行连接,以进行通信。控制单元能够控制通信单元,以便从第一设备接收寻址到第二设备的数据,向持续连接的服务器发送用于请求向第二设备发送用于通知该数据的存在的通知消息的通知请求信息,并且响应于来自接收到通知消息的第二设备的请求,向第二设备发送数据。
在本技术中,信息处理装置能够在从第一设备接收到寻址到第二设备的数据时,经由持续连接的服务器向第二设备发送通知消息,并且响应于来自第二设备的访问发送数据。因此,通过使持续连接的服务器与第一设备和第二设备保持连接并且通知数据的存在,信息处理装置能够减小其自己的负荷。此外,持续连接的服务器不需要复杂的处理,并且仅需要最小的通信缓冲器。因此,持续连接的服务器能够连接到极其大量的第一和第二设备。其结果是,单个信息处理装置能够间接处置的设备的数量显著增加。
这里,上述数据包括例如运动图像、静止图像、音频、文本、消息或者程序的任意类型的数据。虽然信息处理装置一般是服务器设备,但是其不限于此,而可以是任意其它设备。
信息处理装置还可以包括存储单元。第二设备可以经由通信中继装置与信息处理装置和持续连接的服务器进行通信。在这种情况下,如果通信中继装置被设置为传送从信息处理装置到第二设备的通信,则控制单元可以控制存储单元存储关于传送设置的信息。此外,代替发送通知请求信息或者除了发送通知请求信息之外,控制单元可以控制通信单元使用所存储的信息直接向第二设备发送通知消息。
通过这样,如果第二设备侧的通信中继装置(路由器)支持使用通用即插即用因特网网关设备(UPnP IGD)协议的NAT穿越机制,则信息处理装置还能够通过所谓的NAT穿越(traversal)直接向第二设备发送通知消息。
如果对解析表第二设备分配了全局IP地址,则代替发送解析表通知请求信息或者除了发送解析表通知请求信息之外,解析表控制单元可以控制解析表通信单元以便直接向解析表第二设备发送解析表通知消息。
通过这样,如果可以在不使用通信中继装置的情况下访问第二设备,则信息处理装置还能够直接向第二设备发送通知消息。
解析表信息处理装置和解析表持续连接的服务器分别可以包括多个信息处理装置和多个持续连接的服务器。在这种情况下,解析表第一设备和解析表第二设备可以各自被设置为利用用于唯一地识别解析表第一设备、解析表第二设备、解析表多个信息处理装置和解析表多个持续连接的服务器的设备识别信息,对应于解析表信息处理装置中的一个和解析表持续连接的服务器中的一个,使得解析表第一设备和解析表第二设备中的每一个与解析表信息处理装置中的一个和解析表持续连接的服务器中的一个进行通信。在这种情况下,如果基于解析表设备识别信息确定解析表第二设备对应于另一信息处理装置,则解析表控制单元可以控制解析表通信单元以便向解析表另一信息处理装置传送解析表数据。
通过这样,存在多个信息处理装置和多个持续连接的服务器,因此支持大量设备的通信。
信息处理装置还可以包括存储单元。在这种情况下,解析表控制单元可以创建表,在该表中定义了基于哈希值的值和解析表多个信息处理装置中的每一个的识别信息之间的对应关系,解析表哈希值是基于解析表第一设备和解析表第二设备中的每一个的设备识别信息根据预定哈希函数获得的。此外,解析表控制单元可以控制解析表存储单元以便存储所创建的表,并且基于所存储的表确定对应于解析表第二设备的另一信息处理装置。
因此,使用该表,信息处理装置能够容易地确定对应于第二设备的另一信息处理装置。
如果在解析表第一设备和解析表第二设备中的每一个中设置了用于唯一地识别拥有解析表第一设备和解析表第二设备中的每一个的用户的用户识别信息,则代替解析表设备识别信息,解析表控制单元可以使用解析表用户识别信息,来创建解析表表。
通过这样,即使设备具有不同类型的识别信息,同一用户拥有的设备也连接到同一信息处理装置,因此多个信息处理装置之间的通信减少,并且云系统的负荷减小。
根据本技术的另一实施例的信息处理装置包括通信单元和控制单元。通信单元能够经由网络持续连接到第一设备和第二设备以进行通信。此外,通信单元能够在需要的情况下,经由解析表网络连接到传达解析表第一设备和解析表第二设备之间的数据的发送和接收的中间服务器,以进行通信。控制单元能够控制解析表通信单元,以便在解析表中间服务器接收到从解析表第一设备发送的寻址到解析表第二设备的数据时,从解析表中间服务器接收用于请求向解析表第二设备发送用于通知该数据的存在的通知消息的通知请求信息,并且基于解析表通知请求信息,向解析表第二设备发送解析表通知消息。
通过这样,信息处理装置能够使单个中间服务器能够间接处置的设备的数量显著增加,并且能够减小中间服务器的负荷。
根据本技术的另一实施例的信息处理装置包括通信单元和控制单元。通信单元能够在需要的情况下连接到网络上的第一服务器,并且能够持续连接到网络上的第二服务器,以进行通信。控制单元能够控制解析表通信单元,以便从解析表第二服务器接收用于通知存在从另一信息处理装置发送的数据的通知消息,并且基于接收到的通知消息,从解析表第一服务器接收解析表数据。
根据本技术的另一实施例的信息处理方法包括:经由网络与第一设备建立连接,并且从解析表第一设备接收寻址到第二设备的数据。在该方法中,向持续连接到解析表第二设备的服务器,发送用于请求向解析表第二设备发送用于通知解析表数据的存在的通知消息的通知请求信息。然后,响应于来自接收到解析表通知消息的解析表第二设备的请求,建立连接,并且向解析表第二设备发送解析表数据。
根据本技术的再一实施例的程序使信息处理方法执行接收步骤、第一发送步骤和第二发送步骤。在接收步骤中,经由网络与第一设备建立连接,并且从解析表第一设备接收寻址到第二设备的数据。在第一发送步骤中,向持续连接到解析表第二设备的持续连接的服务器发送用于请求向解析表第二设备发送用于通知解析表数据的存在的通知消息的通知请求信息。在第二发送步骤中,响应于来自接收到解析表通知消息的解析表第二设备的请求,与解析表第二设备建立连接,并且向解析表第二设备发送解析表数据。
发明的效果
如上所述,根据本技术,能够减小云系统上的系统负荷,并且单个装置能够处置大量设备。
附图说明
[图1]示出本技术的第一实施例中的系统的网络配置的图。
[图2]示出系统中的消息服务器的硬件配置的框图。
[图3]示出系统中的设备的硬件配置的框图。
[图4]示出系统中的每个节点的软件模块配置的框图。
[图5]示出消息服务器的通知手段列表的示例的图。
[图6]示出消息服务器的连接信息列表的示例的图。
[图7]示意性地示出通知手段是通知服务器的情况下的设备之间的数据传输处理的流程的图。
[图8]示意性地示出通知手段是全局IP的情况下的设备之间的数据传输处理的流程的图。
[图9]示意性地示出通知手段是UPnP IGD的情况下的设备之间的数据传输处理的流程的图。
[图10]示意性地示出通知手段是用户设置的情况下的设备之间的数据传输处理的流程的图。
[图11]示出作为数据的发送源的设备的消息发送器的操作的流程的流程图。
[图12]示出作为数据的目的地的设备的通知手段设置单元的操作的流程的流程图。
[图13]示出作为数据的目的地的设备的通知服务器通知接收器的操作的流程的流程图。
[图14]示出作为数据的目的地的设备的直接通知接收器的操作的流程的流程图。
[图15]示出作为数据的目的地的设备的消息接收器的操作的流程的流程图。
[图16]示出通知服务器的连接处理器的操作的流程的流程图。
[图17]示出通知服务器的连接管理单元的操作的流程的流程图。
[图18]示出消息服务器的连接处理器的操作的流程的流程图。
[图19]示出消息服务器的连接管理单元的操作的流程的流程图。
[图20]示出消息服务器的消息发送器的操作的流程的流程图。
[图21]示出本技术的第二实施例中的系统的网络配置的图。
[图22]示出本技术的第二实施例中的系统中的每个节点的软件模块配置的图。
[图23]示出本技术的第二实施例中的确定与设备相对应的服务器的处理的流程的流程图。
[图24]示出本技术的第二实施例中的创建的消息服务器分配表的示例的图。
[图25]示出本技术的第二实施例中的创建的通知服务器分配表的示例的图。
[图26]示出本技术的第二实施例中的创建的用于确定消息服务器的网络地址的解析表的示例的图。
[图27]示出本技术的第二实施例中的创建的用于确定通知服务器的网络地址的解析表的示例的图。
[图28]示意性地示出本技术的第二实施例中的设备之间的数据传输处理的流程的图。
[图29]示出本技术的第二实施例中的消息服务器的连接处理器的操作的流程的流程图。
[图30]示出本技术的第二实施例中的消息服务器的连接管理单元的操作的流程的流程图。
[图31]示出本技术的第二实施例中的消息服务器的消息传送单元的操作的流程的流程图。
[图32]示出本技术的第三实施例中的系统的网络配置的图。
[图33]示出本技术的第三实施例中的消息服务器的连接管理单元的操作的流程的流程图。
具体实施方式
下文中,参考附图,描述根据本技术的实施例。
<第一实施例>
首先,描述本技术的第一实施例。
[系统的网络配置]
图1是示出根据该实施例的系统的网络配置的图。
如在图中所示,该系统包括云系统中的消息服务器100和通知服务器200以及可经由广域网(WAN)连接到这些服务器的多个设备300。
在该实施例中,在云系统中设置了一个消息服务器100和一个通知服务器200。
设备300可以是任意信息处理装置,例如智能电话、蜂窝电话、平板个人计算机(PC)、台式PC、膝上型PC、个人数字助理(PDA)、便携式AV播放器、电子书、数字静止照相机、摄像机、电视机、个人视频记录器(PVR)、游戏机、汽车导航系统或者数字相框。虽然该图仅示出了两个设备300A和300B,但是设备300的数量可以是三个或更多个。
每个设备300可以经由通信中继装置310与上述消息服务器100和通知服务器200进行通信,并且可以在不使用通信中继装置310的情况下直接与这些服务器进行通信。
每个设备300持续连接到通知服务器200以可与通知服务器200进行通信,并且在需要的情况下与消息服务器100建立连接,以进行通信。消息服务器100在需要的情况下与通知服务器200和设备300建立连接,以进行通信。
通信中继装置310意为具有对内部网络(设备300侧)和外部网络(云系统侧)之间的通信进行中继的功能的装置,除非外部服务器由于在两个网络中使用不同的地址或者保护安全的机制而使用特殊手段,否则通信中继装置310防止指定和连接到特定内部设备。以NAT路由器、代理服务器和防火墙作为这种通信中继装置310的示例。
在下面描述细节时,消息服务器100用作传达设备300之间的通信(例如消息的发送和接收)的服务器。此外,通知服务器200用作用于发送指示向作为数据的目的地的设备300呈现了从设备300发送的数据(消息)的通知消息的通知手段中的一个。下面将描述其它通知手段。
在下面的描述中,有时将消息服务器100、通知服务器200和设备300统称为“节点”。
[消息服务器的硬件配置]
图2是示出消息服务器100的硬件配置的图。如在图中所示,消息服务器100包括中央处理器(CPU)11、只读存储器(ROM)12、随机存取存储器(RAM)13、输入/输出接口15以及将它们彼此连接的总线14。
CPU 11在需要的情况下适当地访问RAM 13等,并且在进行各种类型的运算处理的同时,对消息服务器100的所有块进行总体控制。ROM 12是固定地存储诸如CPU 11要执行的程序和各种参数的OS和固件的非易失性存储器。RAM 13用作CPU 11的工作区等,并且临时存储OS、正在执行的各种应用和正在处理的各种类型的数据。
显示单元16、操作接收单元17、存储单元18、通信单元19等连接到输入/输出接口15。
显示单元16例如是使用液晶显示器(LCD)、有机电致发光显示器(OELD)、阴极射线管(CRT)等的显示设备。
操作接收单元17例如是如鼠标的指示设备、键盘、触摸面板或者另一输入装置。如果操作接收单元17是触摸面板,则可以将触摸面板与显示单元16一体化。
存储单元18例如是包括硬盘驱动(HDD)的非易失性存储器、闪存(固态驱动;SSD)或者另一固态存储器。存储单元18存储上述OS、各种应用和各种类型的数据。特别地,在该实施例中,存储单元18存储下面要描述的多个软件模块的程序、通知手段列表、连接信息列表等的数据库。
通信单元19是用于连接到WAN 50的NIC等,其用来与通知服务器200或者设备300进行通信。
[通知服务器的硬件配置]
通知服务器200具有与消息服务器相同的硬件配置,因此省略其描述。在该实施例中,将与消息服务器100的CPU 11、存储单元18和通信单元19相对应的通知服务器200的硬件模块分别称为CPU 21、存储单元28和通信单元29。
存储单元28存储下面要描述的多个软件模块的程序、连接信息列表等的数据库。
[设备的硬件配置]
图3是示出设备300的硬件配置的图。如在图中所示,设备300具有与消息服务器100基本相同的硬件配置。具体地,设备300包括CPU 31、ROM 32、RAM 33、输入/输出接口35和将它们彼此连接的总线。设备300还包括显示单元36、操作接收单元37、存储单元38和通信单元39。
显示单元36可以内置在设备300中,或者可以在外部连接到设备300。
存储单元38存储下面要描述的多个软件模块的程序和各种数据库等。
[每个设备的模块配置]
图4是示出消息服务器100、通知服务器200和设备300的软件模块的配置的图。
(消息服务器的模块配置)
如在图中所示,消息服务器100包括连接处理器101、连接管理单元102、消息处理器105和消息发送器106的软件模块以及通知手段列表103和连接信息列表104的数据库。
连接处理器101接收来自设备300的连接请求,并且与设备300建立连接。
连接管理单元102对与通知服务器200和设备300的所有连接进行管理,并且对接收到的消息进行处理、发送或者传送。
消息处理器105对寻址到消息服务器100的接收到的消息进行处理。
消息发送器106向设备300发送消息,以由消息服务器100进行处置。
通知手段列表103是关于用于向设备300通知消息的存在的通知手段的信息的列表。图5示出了通知手段列表的示例。
如下面将描述的,在实际进行通信之前,每个设备300与消息服务器100进行通信,并且当消息服务器100接收到寻址到该设备的消息时,每个设备300登记设备300希望消息服务器100使用的通知手段。
如在图中所示,在通知手段列表中描述了节点ID(设备的设备ID、服务器的服务器ID)、通知手段和相关信息的项目。
节点ID是例如具有128位、用于唯一地识别消息服务器100、通知服务器200和设备300的ID。
一般基于诸如WLAN/以太网(Ethernet(注册商标))中的MAC地址和蜂窝电话的IMEI的预先嵌入每个设备300的硬件中的信息来生成设备ID,使得设备ID是每一组设备300的唯一ID。然而,可以以任意形式分配设备ID,只要能够确保其唯一性即可。
服务器ID是用于唯一地识别云系统中的消息服务器100和通知服务器200的ID。一般来说,例如,为了在发生故障的情况下,用另一服务器替换服务器,使用在服务器起动时指定的ID作为服务器ID。然而,与在设备ID中相同,可以以任意方式设置服务器ID。
节点ID例如用高位指示ID类型,并且用低位指示每个节点专用的ID。在设备ID的情况下,例如ID类型是“0300”,在消息服务器100的服务器ID的情况下,ID类型是“0400”,或者在通知服务器200的服务器ID的情况下,ID类型是“0401”。
具体地,设备ID例如是“03000000-0000-0000-0000-0000c293975d”,并且服务器ID例如是“04010000-0000-0000-0000-000000000123”。在该图的示例中,示出了与单个设备ID相关联的多个通知手段的条目。实际上,针对具有不同ID的节点(消息服务器100、通知服务器200和多个设备300)中的每一个,描述了通知手段的条目。
在该实施例中,作为通知手段,存在“全局IP”、“UPnP IGD”、“用户设置”和“服务器”四种。针对由于通信中继装置310而无法从外部设备(消息服务器100)直接进行通信的情况,提供了通知服务器200。因此,在不存在通信中继装置310的情况下,或者在可以在通信中继装置310中进行特殊设置的情况下,消息服务器100能够在不使用通知服务器200的情况下进行通知。
“全局IP”示出了对设备300(例如移动设备)分配全局IP地址,并且在不使用通信中继装置310的情况下可以进行从消息服务器100到设备300的直接连接。在该条目中,作为相关信息,描述了与节点ID相对应的节点的全局IP地址和端口号。
“UPnP IGD”示出了可以进行通信中继装置310根据来自与其连接的本地节点的指令,从外部设备向特定内部节点传送通信,以及可以执行从消息服务器100经由通信中继装置310到设备300的连接的设置。具体地,这适用于用作通信中继装置310的NAT路由器使用UPnP IGD协议支持NAT穿越机制的情况。在这种情况下,NAT路由器被设置为使得内部设备300与消息服务器100协作地确定WAN 50侧的端口号和LAN侧的端口号,并且将关于WAN 50侧的端口号的通信向LAN侧的IP地址/端口号传送。消息服务器100将WAN侧的IP地址和端口号作为相关信息存储在通知手段列表中,并且使用存储的IP地址和端口号与设备300进行通信。
“用户设置”示出了不根据来自设备300的指令,而是用户使用端口转发机制手动改变这样的设置来进行如在“UPnP IGD”中的传送设置。在这种情况下,也存储设置的IP地址和端口号作为相关信息。
“服务器”示出了消息服务器100可以经由通知服务器200连接到每个设备300。在每个设备300经由不支持NAT穿越机制等的普通通信中继装置310连接到云系统的情况下,使用该通信手段。
在该通信手段列表中,也可以将关于同一设备的信息呈现为多个条目。例如,这适用于设备300是例如智能电话的便携式终端,并且连接到用于蜂窝电话的网络和无线LAN两者的情况。此外,在实际操作中,可以对该列表的条目设置截止日期。
连接信息列表104是描述关于消息服务器100在特定时间点保持的连接的信息的列表。图6示出了其示例。如在图中所示,在连接信息列表104中描述了通知服务器200或者与消息服务器100连接的设备300的节点ID、IP地址和套接字号的项目。每次建立与通知服务器200或者设备300的连接时,向连接信息列表104中添加相应的条目。当连接释放时,从连接信息列表104中移除相应的条目。
(通知服务器的模块配置)
如图4所示,通知服务器200包括连接处理器201和连接管理单元202的软件模块以及作为数据库的连接信息列表203。
连接处理器201接收来自设备300的连接请求,并且建立连接。
连接管理单元202对消息服务器100和设备300之间的所有连接进行管理。当接收到来自消息服务器100的通知请求时,连接管理单元202向相应的设备300发送通知消息。
连接信息列表203是描述关于通知服务器200在特定时间点保持的连接的信息的列表。其配置与消息服务器100的连接信息列表104的配置相同。
(设备的模块配置)
如图4所示,每个设备300包括通知手段设置单元301、通知服务器通知接收器302、直接通知接收器303、消息接收器304、消息发送器305和消息处理器306的软件模块。
通知手段设置单元301在消息服务器100中设置设备300可以使用的通知手段。
通知服务器通知接收器302连接到通知服务器200,并且接收通知消息。
直接通知接收器303在不使用通知服务器200的情况下,直接接收来自消息服务器100的通知消息。
消息接收器304连接到消息服务器100,并且接收从另一设备300发送的数据(消息)。
消息发送器305连接到消息服务器100,并且发送寻址到另一设备的数据(消息)。
消息处理器306对从消息服务器100接收到的数据(消息)进行处理。
用来发送消息的设备300A仅需要至少包括消息发送器305,因此在图中,用虚线示出了其它模块。当然,用作发送器的设备300A可以包括与用作接收器的设备300B相同的模块。类似地,虽然在图中用虚线示出了用来接收消息的设备300B中的消息发送器305,但是设备300B也可以包括消息发送器305。
[系统的操作]
接下来,关注设备300之间的数据(消息)传输处理,来描述如此构成的系统中的消息服务器100、通知服务器200和设备300的操作。在该实施例和其它实施例中,由CPU和在其控制下执行的软件模块协作执行构成该系统的节点中的操作。
在进行数据(消息)传输处理之前,消息服务器100和通知服务器200预先向每个设备300通知与其相对应的通知服务器ID、消息服务器ID、网络地址(主机名称或者IP地址/端口号)等作为初始设置信息。
(数据传输处理示例:通知手段是通知服务器的情况)
首先,描述通知手段是通知服务器200的情况下的设备300之间的数据(消息)传输处理的流程。图7是示意性地示出这种情况下从设备300A到设备300B的数据传输处理的流程的概要的图。
如在图中所示,在检查与云系统的通信的环境之后,用来接收消息的设备300B(目的地)首先经由通信中继装置310B连接到通知服务器200(图中的(1))。持续保持该连接。
随后,设备300B经由通信中继装置310B连接到消息服务器100,并且将通知服务器200设置为通知手段(发送通知手段设置信息)(图中的(2))。
随后,作为消息发送源的设备300A向消息服务器100发送寻址到设备300B的消息(图中的(3))。
随后,接收到消息的消息服务器100向通知服务器200发送用于通知存在从设备300A到设备300B的消息的通知消息发送请求(通知请求)((4))。
随后,接收到通知请求的通知服务器200使用已经建立的与设备300B的连接,向设备300B发送通知消息(图中的(5))。
然后,接收到通知消息的设备300B经由通信中继装置310B与消息服务器100建立连接,并且接收来自设备300A的消息(图中的(6))。
(数据传输处理示例:通知手段是全局IP的情况)
首先,描述通知手段是全局IP的情况下的设备300之间的数据(消息)传输处理的流程。图8是示意性地示出这种情况下的从设备300A到设备300B的数据传输处理的流程的概要的图。
如在图中所示,用来接收消息的设备300B(目的地)首先检查与云系统的通信的环境(图中的(1))。
随后,在检查到能够直接与云系统进行通信之后,设备300B连接到消息服务器100,并且将全局IP设置为通知手段(图中的(2))。
随后,作为消息发送源的设备300A向消息服务器100发送寻址到设备300B的消息(图中的(3))。
随后,接收到消息的消息服务器100与设备300B建立连接,并且直接向设备300B发送通知消息(图中的(4))。
然后,接收到通知消息的设备300B与消息服务器100建立连接,并且接收来自设备300A的消息(图中的(5))。
(数据传输处理示例:通知手段是UPnP IGD的情况)
接下来,描述通知手段是UPnP IGD的情况下的设备300之间的数据(消息)传输处理的流程。图9是示意性地示出这种情况下的从设备300A到设备300B的数据传输处理的流程的概要的图。
如在图中所示,在检查与云系统的通信的环境之后,用来接收消息的设备300B(目的地)首先使用UPnP IGD设置通信中继装置310B(路由器)来使用NAT穿越机制,以传送从云系统到设备300B的通信(图中的(1))。
随后,设备300B经由通信中继装置310B连接到消息服务器100,并且将UPnP IGD设置为通知手段(图中的(2))。
随后,作为消息发送源的设备300A向消息服务器100发送寻址到设备300B的消息(图中的(3))。
随后,接收到消息的消息服务器100基于UPnP IGD的设置与设备300B建立连接,并且经由通信中继装置310B向设备300B发送通知消息(图中的(4))。
然后,接收到通知消息的设备300B基于UPnP IGD的设置与消息服务器100建立连接,并且经由通信中继装置310B接收来自设备300A的消息(图中的(5))。
(数据传输处理示例:通知手段是用户设置的情况)
接下来,描述通知手段是用户设置的情况下的设备300之间的数据(消息)传输处理的流程。图10是示意性地示出这种情况下的从设备300A到设备300B的数据传输处理的流程的概要的图。
如在图中所示,在检查与云系统的通信的环境之后,用来接收消息的设备300B(目的地)的用户首先使用端口转发机制,手动设置通信中继装置310B(路由器),以传送从云系统到设备300B的通信(图中的(1))。
随后,设备300B经由通信中继装置310B连接到消息服务器100,并且将用户设置设定为通知手段(图中的(2))。
随后,作为消息发送源的设备300A向消息服务器100发送寻址到设备300B的消息(图中的(3))。
随后,接收到消息的消息服务器100基于通过端口转发机制进行的设置与设备300B建立连接,并且经由通信中继装置310B向设备300B发送通知消息(图中的(4))。
然后,接收到通知消息的设备300B基于通过端口转发机制进行的设置与消息服务器100建立连接,并且经由通信中继装置310B接收来自设备300A的消息(图中的(5))。
(设备的操作)
接下来,描述设备300在上述传输处理中的操作。
图11是示出作为消息发送源的设备300A的消息发送器305的操作的流程的流程图。
如在图中所示,消息发送器305首先基于设备300A的节点ID(设备ID),确定相应的消息服务器100(步骤111)。如上所述,在该实施例中,仅设置了一个消息服务器100,并且预先向每个设备300通知服务器ID和其网络地址,因此消息发送器305基于该信息来识别消息服务器100。
随后,消息发送器305经由通信中继装置310A与消息服务器100建立连接(步骤112)。
随后,消息发送器305向消息服务器100发送寻址到设备300B的消息(步骤113)。
在完成消息的发送之后,消息发送器305释放与消息服务器100的连接(步骤114)。
图12是示出作为数据(消息)的目的地的设备300B的通知手段设置单元301的操作的流程的流程图。
如在图中所示,通知手段设置单元301首先基于设备300B的节点ID(设备ID),确定相应的消息服务器100(步骤121)。如上所述,在该实施例中,也预先向设备300B通知消息服务器100的服务器ID和网络地址,因此通知手段设置单元301基于该信息来识别消息服务器100。
随后,通知手段设置单元301经由通信中继装置310B与消息服务器100建立连接(步骤122)。
随后,通知手段设置单元301向消息服务器100发送标识了上述四种通知手段中的至少一个的通知手段设置信息(步骤123)。
在完成通知手段设置信息的发送之后,通知手段设置单元301释放与消息服务器100的连接(步骤124)。
图13是示出设备300B的通知服务器通知接收器302的操作的流程的流程图。如上所述,当将通知手段设置为通知服务器200时,进行这些操作。
如在图中所示,通知服务器通知接收器302首先基于设备300B的节点ID(设备ID),确定相应的通知服务器200(步骤131)。如上所述,在该实施例中,仅设置了一个通知服务器200,并且预先向每个设备300通知服务器ID和其网络地址,因此通知服务器通知接收器302基于该信息来识别通知服务器200。
随后,通知服务器通知接收器302经由通信中继装置310B与通知服务器200建立连接(步骤132)。
随后,通知服务器通知接收器302向通知服务器200通知设备300B的节点ID(设备ID)(步骤133)。
随后,通知服务器通知接收器302从接收到来自消息服务器100的通知请求的通知服务器200,接收通知消息(步骤134)。
随后,接收到通知消息的通知服务器通知接收器302判断是否在该时间点未建立与消息服务器100的连接(步骤135)。
如果判断为未建立与消息服务器100的连接(是),则通知服务器通知接收器302向消息接收器304发送与消息服务器100建立连接的请求(步骤136)。
每次接收到通知消息时,通知服务器通知接收器302重复进行上述从步骤134至136的处理。
图14是示出设备300B的直接通知接收器303的操作的流程的流程图。如上所述,当将通知手段设置为通知服务器200之外的通知手段时,进行这些操作。
如在图中所示,直接通知接收器303首先等待对从消息服务器100发送的通知消息的接收(步骤141)。
随后,直接通知接收器303接收来自消息服务器100的通知消息(步骤142)。
随后,在接收到通知消息之后,直接通知接收器303判断是否在该时间点未建立与消息服务器100的连接(步骤143)。
如果判断为未建立与消息服务器100的连接(是),则直接通知接收器303请求消息接收器304与消息服务器100建立连接(步骤144)。
每次接收到通知消息时,直接通知接收器303重复进行上述从步骤142至144的处理。
图15是示出设备300B的消息接收器304和消息处理器306的操作的流程的流程图。
如在图中所示,消息接收器304首先以与上述相同的方式,基于设备300B的节点ID(设备ID),确定相应的消息服务器100(步骤151)。
随后,消息接收器304经由通信中继装置310B与消息服务器100建立连接(如果通知手段是全局IP,则不使用通信中继装置310B直接与消息服务器100建立连接)(步骤152)。
随后,消息接收器304向消息服务器100通知设备300B的节点ID(设备ID)(步骤153)。
随后,消息接收器304等待从消息服务器100的消息接收、超时、错误和通信中断中的任意一个(步骤154)。
如果接收到了消息(步骤155:是),则消息处理器306对接收到的消息进行处理(步骤156)。
如果未接收到消息,而发生了超时或者错误(步骤157:是),则消息接收器304释放与消息服务器100的连接(步骤158)。
每次建立与消息服务器100的连接时,消息接收器304和消息处理器306重复进行上述从步骤154至158的处理。
(通知服务器的操作)
接下来,描述通知服务器200在上述传输处理中的操作。
图16是示出通知服务器200的连接处理器201的操作的流程的流程图。
如在图中所示,连接处理器201首先等待来自设备300或者消息服务器100的连接请求(步骤161)。
如果接收到了来自设备300或者消息服务器100的连接请求(步骤162:是),则连接处理器201接受连接请求,并且建立连接(步骤163)。
随后,连接处理器201从作为连接源的设备300或者消息服务器100接收其节点ID(设备300的设备ID或者消息服务器100的服务器ID)(步骤164)。
然后,连接处理器201将节点ID和关于连接的信息(IP地址和套接字号)记录在连接信息列表203中,并且将它们新添加到连接管理目标中(步骤165)。
图17是示出通知服务器200的连接管理单元202的操作的流程的流程图。
如在图中所示,连接管理单元202首先针对使用连接信息列表203管理的所有连接,等待消息接收、错误和通信中断中的任意一个(步骤171)。
随后,连接管理单元202确定是否接收到了消息(步骤172)。
如果确定接收到了消息(是),则连接管理单元202确定消息是否是来自消息服务器100的通知请求(步骤173)。
如果确定消息是来自消息服务器100的通知请求(是),则连接管理单元202从接收到的消息中获取作为通知目标(通知消息的发送目标)的设备300的设备ID(步骤174)。
随后,连接管理单元202确定在连接信息列表203中是否存在与所获取的设备ID匹配的条目(步骤175)。
如果确定存在与所获取的设备ID匹配的条目(步骤176:是),则连接管理单元202使用与该条目相对应的连接(IP地址和套接字号),向作为目标的设备300发送通知消息(步骤177)。
在上述步骤172中,如果确定未接收到消息(否),则连接管理单元202针对管理目标的连接中的任意一个,确定是否发生了错误或者通信中断(步骤178)。
如果发生了错误或者通信中断(是),则连接管理单元202从连接信息列表203中排除与发生了错误或者通信的连接相关联的条目(步骤179)。
(消息服务器的操作)
接下来,描述消息服务器100在上述传输处理中的操作。
图18是示出消息服务器100的连接处理器101的操作的流程的流程图。
如在图中所示,连接处理器101首先等待来自设备300的连接请求(步骤181)。
如果从设备300接收到了连接请求(步骤182:是),则连接处理器101接受来自设备300的连接请求,并且建立连接(步骤183)。
随后,连接处理器101从作为连接源的设备300接收其设备ID(步骤184)。
然后,连接处理器101将设备ID和关于连接的信息(IP地址和套接字号)记录在连接信息列表104中,并且将设备300新添加到连接管理目标(步骤185)。
图19是示出消息服务器100的连接管理单元102和消息处理器105的操作的流程的流程图。
如在图中所示,连接管理单元102首先针对使用连接信息列表104管理的所有连接,等待消息接收、错误和通信中断中的任意一个(步骤191)。
随后,连接管理单元102确定是否接收到了消息(步骤192)。
如果确定接收到了消息(是),则连接管理单元102从消息中获取被设置为其发送目的地的节点ID(步骤193)。
随后,连接管理单元102确定所获取的节点ID是否是消息服务器100的节点ID(服务器ID)(步骤194)。
如果确定节点ID是消息服务器100的节点ID(是),则消息处理器105对消息进行处理(步骤195)。
如果确定发送目的地的节点ID不是消息服务器100的节点ID(否),则连接管理单元102基于被设置为发送目的地的节点ID,确定与其相对应的消息服务器的节点ID(步骤196)。
如上所述,在该实施例中,仅设置了一个消息服务器100,因此连接管理单元102确定与发送目的地相对应的服务器的节点ID是其自己的节点ID(消息服务器100)(步骤197:是)。
然后,连接管理单元102向消息发送器106传递该消息(步骤198)。
在上述步骤192中,如果确定未接收到消息(否),则连接管理单元102针对管理目标的连接中的任意一个,确定是否发生了错误或者通信中断(步骤199)。
如果发生了错误或者通信中断(是),则连接管理单元102从连接信息列表104中排除与发生了错误或者通信中断的连接相关联的条目(步骤200)。
图20是示出消息服务器100的消息发送器106的操作的流程的流程图。
如在图中所示,消息发送器106首先从通知手段列表103中获取与被设置为发送目的地的节点ID匹配的条目(步骤201)。
如果确定在通知手段列表103中不存在与该节点ID匹配的条目(步骤202:是),则消息发送器106终止处理。
如果确定存在与该节点ID匹配的条目(步骤202:否),则消息发送器106确定是否将该条目的通知手段设置为通知服务器200之外的通知手段(步骤203)。
如果确定将通知手段设置为了通知服务器200之外的通知手段(是),则消息发送器106基于该条目的相关信息,与作为消息发送目的地的设备300(300B)建立连接(步骤204)。
随后,消息发送器106使用该连接,向设备300发送通知消息(步骤205)。
当通知消息的发送完成时,消息发送器106释放与设备300的连接(步骤206)。
如果在上述步骤203中确定将通知手段设置为了通知服务器200(否),则消息发送器106基于被设置为发送目的地的节点ID,确定与其相对应的通知服务器200的节点ID(服务器ID)(步骤207)。
随后,消息发送器106向具有该节点ID的通知服务器200发送对被设置为消息的发送目的地的设备300的通知请求以及设备300的节点ID(设备ID)(步骤209)。当发送完成时,消息发送器106释放与通知服务器200的连接(步骤210)。
随后,消息发送器106等待来自作为消息发送目的地的设备300的新连接或者超时(步骤211)。
如果判断为具有发送目的地的节点ID的设备300已连接到消息服务器100(步骤212:是),则消息发送器106使用与该节点ID相对应的连接,向设备300发送消息(步骤213)。
如果在发送对通知服务器200的通知请求之后的预定时间段内,没有来自具有发送目的地的节点ID的设备300的连接(发生了超时)(步骤214:是),则消息发送器106丢弃该消息(步骤215)。
然后,消息发送器106从通知手段列表103中获取与发送目的地的节点ID匹配的下一个条目(步骤216),并且重复上述步骤202之后的处理。
[结论]
如上面所讨论的,在该实施例中,除了消息服务器100之外,云系统还设置有作为用于设备300的通知手段的通知服务器200,因此即使存在通信中继装置310,每个设备300也能够持续连接到云系统。此外,消息服务器100的负荷相应地减小。
与所有设备300持续连接到消息服务器100的情况相比,所有设备300持续连接到通知服务器200,然后仅在需要的情况下连接到消息服务器100的情况的优点在于后者能够使可以连接到单个服务器的设备300的数量显著增加。例如,倘若单个消息服务器100能够支持的设备的数量是50,000个,则通知服务器200能够支持的设备的数量是1,000,000个。
在消息服务器100中,要进行的处理很复杂,并且考虑到通信效率,需要为每个连接准备足够的通信缓冲器大小。然而,在通知服务器200中,通知服务器200仅需要具有向设备300发送非常小的消息(通知消息)的功能,处理非常简单,并且仅需要最小的通信缓冲器。因此,能够使单个通知服务器200需要的资源尽可能最小化。
另外,在该实施例中,如果可以将通信中继装置310设置为另一通信手段,以将外部通信传送到特定内部设备300,则云系统的负荷通过这种机制进一步减小。在一些情况下,无法将如UPnP IGD的通知服务器之外的手段本身应用到所有设备300之间的通信。然而,在采用通知服务器200的系统中,其有效地用作用于减小整个系统的负荷的手段。
<第二实施例>
接下来,描述本技术的第二实施例。在该实施例中,用相同的附图标记表示具有与第一实施例相同的配置和功能的部分,并且省略其描述。
[系统的网络配置]
图21是示出根据该实施例的系统的网络配置的图。
在第一实施例中,在云系统(WAN 50)中仅设置了一个消息服务器100和一个通知服务器200。然而,如在图中所示,在该实施例中,设置了多个消息服务器100和多个通知服务器200。如下面将描述的,使用这种配置,在多个消息服务器100之间中继来自设备300的消息。
虽然在图中示出了6个消息服务器100和2个通知服务器200,但是消息服务器100和通知服务器200的数量不限于此。
[每个设备的模块配置]
图22是示出包含在消息服务器100、通知服务器200和设备300中的每一个中的软件模块的配置的图。
(消息服务器的模块配置)
如在图中所示,除了与第一实施例相同的模块(参见图4)之外,消息服务器100还包括消息传送单元107。
为了向消息服务器100(100A)不处置的设备300发送消息,消息传送单元107向另一消息服务器100(100B)传送该消息。
在该实施例中,通知服务器200和设备300的模块的配置与在第一实施例中描述的配置相同。
[系统的操作]
接下来,将关注于设备300之间的数据(消息)传输处理,来描述如此构成的系统中的消息服务器100、通知服务器200和设备300的操作。
(确定设备要使用的服务器的处理)
在该实施例中,设置了多个消息服务器100和多个通知服务器200,因此在消息发送处理之后,预先确定每个设备300使用消息服务器100中的哪一个以及通知服务器200中的哪一个。通过基于设备ID进行预定计算,来确定该设备300和其使用的每个服务器之间的对应关系。首先描述确定处理。
下面描述的确定处理是示例,其可以由消息服务器100和设备300两者执行,并且可以通过任意方式确定对应关系,只要能够确保两者可以获得相同的结果即可。
图23是示出确定与设备300相对应的服务器的处理的流程的流程图。虽然要描述的处理在下面将被描述为由消息服务器100的消息传送单元107执行的处理,但是其可以由另一模块执行。
如在图中所示,针对消息服务器100和通知服务器200中的每一个,消息传送单元107首先依据实际使用的服务器的数量,划分从0到0xffffffff的值,并且创建服务器分配表(步骤271)。例如,将该表存储在存储单元18中。
图24是示出针对消息服务器100的服务器分配表的示例的图。图25是示出针对通知服务器200的服务器分配表的示例的图。如在这两个图中所示,针对预定范围中的每一个划分从0到0xffffffff的值。对值范围分配消息服务器100和通知服务器200的服务器ID中的每一个。
随后,消息传送单元107从作为服务器分配目标的设备300接收节点ID(步骤272)。
随后,消息传送单元107将接收到的节点ID与预定填充数据组合,并且基于SHA256-哈希计算哈希值(步骤273)。
随后,消息传送单元107从获得的哈希值中取得低32位(步骤274)。
然后,消息传送单元107从服务器分配表中搜索取得的低32位,并且查找对其分配的服务器ID,由此确定相应的服务器ID(步骤275)。
虽然在图中示出了消息服务器100进行确定处理的示例,但是上述处理中的全部或者一部分(例如步骤272至274)可以由设备300进行。这时,将需要的信息、例如服务器分配表从消息服务器100发送到设备300。
此外,与在第一实施例中相同,基于嵌入每个设备300的硬件中的信息(无线LAN的MAC地址、蜂窝电话的IMEI等)确定设备ID。因此,即使在购买设备300之后,用户不进行任何设置,用户也可以连接到与设备300相对应的消息服务器100和通知服务器200。用户可以经由它们享受能够与任意其它设备300进行通信的环境。
(确定服务器的网络地址的处理)
在该实施例中,设置了多个消息服务器100和多个通知服务器200,因此还需要预先确定与多个消息服务器100和多个通知服务器200的服务器ID相对应的TCP/IP上的网络地址。下面,描述确定网络地址的处理。
关于确定网络地址的这样的处理,下面的描述也是示例。其可以由消息服务器100和设备300两者执行,但是其也可以通过任意方式执行,只要能够确保两者可以获得相同的结果即可。
下面,为了确定网络地址(IP地址和端口号),描述(1)使用域名系统(DNS)的示例和(2)使用解析表(resolution table)的示例。虽然下面要描述的处理也由消息服务器100的消息传送单元107进行,但是其可以由另一模块进行。
(1)使用DNS的示例
消息服务器100的消息传送单元107基于作为网络地址确定目标的另一消息服务器100的服务器编号,生成主机名称。然后,消息传送单元107基于主机名称获取使用TCP/IP网络上的DNS机制的IP地址。
例如,消息服务器100的主机名称被生成为“ms15.server.com”,并且通知服务器的主机名称生成为“ns1.server.com”。
使用固定值作为它们的端口号。
然后,将获取的IP地址和端口号分发到设备300以及另一消息服务器100和通知服务器200中。
(2)使用解析表的示例
消息传送单元107针对消息服务器100和通知服务器200中的每一个,创建其中定义与服务器编号相对应的IP地址和端口号的解析表。将这些解析表分发到设备300以及另一消息服务器100和通知服务器200中。
图26是示出用于消息服务器100的解析表的示例的图。图27是示出用于通知服务器200的解析表的示例的图。
(数据传输处理示例)
接下来,描述该实施例中的设备300之间的数据(消息)传输处理。图28是示意性地示出设备300之间的数据传输处理的流程的概要的图。
如在图中所示,作为消息发送源的设备300A首先向消息服务器100A发送寻址到设备300B的消息(图中的(1))。
随后,如果判断为该消息是应当由另一消息服务器100B处置的消息,则接收到该消息的消息服务器100A向消息服务器100B传送该消息(图中的(2))。
随后,已经向其传送了消息的消息服务器100B向与其相对应的通知服务器200B,发送用于要求通知存在从设备300A到设备300B的消息的的通知请求。接收到通知请求的通知服务器200B向与其相对应的设备300B发送通知消息(图中的(3))。
然后,接收到通知消息的设备300B与和其相对应的消息服务器100B建立连接,并且接收来自设备300A的消息(图中的(4))。
(消息服务器的操作)
接下来,描述消息服务器100在上述传输处理中的操作。在下面的描述中,示出了首先接收到来自设备300A的消息的消息服务器100A的操作。此外,为了进行描述,将另一消息服务器100称为消息服务器100B。
图29是示出消息服务器100A的连接处理器101的操作的流程的流程图。
如在图中所示,连接处理器101首先等待来自设备300或者另一消息服务器100B的连接请求(步骤291)。
如果接收到了来自设备300或者另一消息服务器100B的连接请求(步骤292:是),则连接处理器101接受该连接请求,并且建立连接(步骤293)。
随后,连接处理器101从作为连接源的设备300或者另一消息服务器100B接收其节点(设备ID、服务器ID)(步骤294)。
然后,连接处理器101将节点ID和关于连接的信息(IP地址和套接字号)记录在连接信息列表104中,并且将设备300或者另一消息服务器100B新添加到连接管理目标中(步骤295)。
图30是示出消息服务器100A的连接管理单元102的操作的流程的流程图。
如在图中所示,连接管理单元102首先针对使用连接信息列表104管理的所有连接,等待消息接收、错误和通信中断中的任意一个(步骤301)。
随后,连接管理单元102确定是否接收到了消息(步骤302)。
如果确定接收到了消息(是),则连接管理单元102从消息中获取被设置为其发送目的地的节点ID(步骤303)。
随后,连接管理单元102确定所获取的节点ID是否是消息服务器100A的节点ID(服务器ID)(步骤304)。
如果确定节点ID是消息服务器100A的节点ID(是),则消息处理器105对消息进行处理(步骤305)。
如果确定发送目的地的节点ID不是消息服务器100A的节点ID(否),则连接管理单元102参考服务器分配表,并且基于被设置为发送目的地的节点ID,确定与其相对应的消息服务器的节点ID(步骤306)。
随后,连接管理单元102确定与用户ID相对应的消息服务器的节点ID是否是消息服务器100A的节点ID(步骤307)。
如果确定相应消息服务器的节点ID是消息服务器100A的节点ID(是),则连接管理单元102将消息传递到消息发送器106(步骤308)。
如果确定相应消息服务器的节点ID是另一消息服务器100B的节点ID(否),则连接管理单元102将消息传递到消息传送单元107(步骤309)。
在上述步骤302中,如果确定未接收到消息(否),则连接管理单元102针对管理目标的连接中的任意一个,确定是否发生了错误或者通信中断(步骤310)。
如果发生了错误或者通信中断(是),则连接管理单元102从连接信息列表104中排除与发生了错误或者通信的连接相关联的条目(步骤311)。
图31是示出消息服务器100A的消息传送单元107的操作的流程的流程图。
如在图中所示,消息传送单元107基于连接信息列表104,检查是否存在与另一消息服务器100B的节点ID相对应的连接(已经连接到另一消息服务器100B)(步骤311)。
如果确定存在相应的连接(步骤312:是),则消息传送单元107将消息传送到连接的另一消息服务器100B(步骤313)。
如果确定不存在相应的连接(步骤312:否),则消息传送单元107与另一消息服务器100B建立连接(步骤314)。
然后,消息传送单元107将其条目添加到连接信息列表104中(步骤315),然后重复进行上述步骤311之后的处理。
[结论]
如上面所讨论的,在该实施例中,设置了多个消息服务器100和多个通知服务器200,并且在消息服务器100之间传送消息,因此支持大量设备300之间的通信。
<第三实施例>
接下来,描述本技术的第三实施例。在该实施例中,用相同的附图标记表示具有与第一和第二实施例相同的配置和功能的部分,并且省略其描述。
[系统的网络配置]
图32是示出根据该实施例的系统的网络配置的图。
在上述第一和第二实施例中,假设设备300由不同的用户所拥有。然而,当然,多个用户可能拥有多个设备300。在这种情况下,认为由同一用户拥有的设备300之间的通信次数大于其它的次数。因此,在该实施例中,引入每个设备300的“所有者”的概念,并且针对设置了用于标识所有者的用户ID的设备300,基于用户ID来确定与其相对应的消息服务器100和通知服务器200。
如在图中所示,在该实施例中,与在第二实施例中相同,在云系统中也存在多个消息服务器100和多个通知服务器200。对于设备300中的设备300B和设备300C,将同一用户设置为所有者。在这种情况下,对于设备300B,将消息服务器100B和通知服务器200B设置为与其相对应的服务器。此外,对于设备300C,基于在第二实施例中描述的服务器分配表,将消息服务器100C和通知服务器200C设置为与其相对应的服务器。另外,其具有与设备300B相同的用户ID,因此还将消息服务器100B和通知服务器200B设置为与其相对应的每个服务器。
[系统的操作]
接下来,将关注于设备300之间的数据(消息)传输处理,描述如此构成的系统中的消息服务器100、通知服务器200和设备300的操作。
(基于用户ID确定要使用的服务器的处理)
作为初始数据,除了如上所述的基于设备ID的消息服务器分配表和通知服务器分配表(下文中称为针对设备ID的服务器分配表)之外,消息服务器100还创建基于用户ID的消息服务器分配表和通知服务器分配表(下文中称为针对用户ID的服务器分配表)。预先将这些表分发到设备300、消息服务器100和通知服务器200中的每一个中。除了用用户ID替换设备ID之外,创建针对用户ID的服务器分配表的方法与在第二实施例中所描述的相同。
可以由设备300创建针对设备ID的服务器分配表和针对用户ID的服务器分配表。
为了创建这些表,单独准备基于设备ID分配的一组服务器和基于用户ID分配的一组服务器。
此外,每个设备300包括用于记录用户ID(所有者ID)的部件。将每个设备300的初始状态设置为空(NULL)。
与在第二实施例中相同,尚未设置用户ID的设备300连接到通过设备ID确定的消息服务器100和通知服务器200。
另一方面,可以将已经设置了用户ID的设备300连接到通过设备ID和用户ID中的每一个所确定的所有消息服务器100和通知服务器200。用来发送消息的设备300一般连接到由其用户ID确定的消息服务器100。如果将用户ID设置为消息的目的地,则将用来接收消息的设备300连接到与其相对应的消息服务器100。否则,其连接到与设备ID相对应的消息服务器100。
如果每个设备300知道作为消息发送目的地的设备300的设备ID和用户ID两者,则每个设备300将两者设置为消息的目的地,并且发送消息。
如果每个设备300仅知道作为消息发送目的地的设备300的设备ID,则将设备ID设置为消息的目的地,并且发送消息。
(消息服务器的操作)
接下来,描述消息服务器100在上述消息传输处理中的操作。图33是示出这些操作的流程的流程图。在下面的描述中,示出了首先接收到来自设备300A的消息的消息服务器100A的操作。此外,为了进行描述,将另一消息服务器100称为消息服务器100B。
如在图中所示,消息服务器100A的连接管理单元102首先针对使用连接信息列表104管理的所有连接,等待消息接收、错误和通信中断中的任意一个(步骤331)。
随后,连接管理单元102判断是否接收到了消息(步骤332)。
如果确定接收到了消息(是),则连接管理单元102从消息中获取被设置为其发送目的地的用户ID和节点ID(步骤333)。
随后,连接管理单元102确定所获取的节点ID是否是消息服务器100A的节点ID(服务器ID)(步骤334)。
如果确定节点ID是消息服务器100A的节点ID(是),则消息处理器105对消息进行处理(步骤335)。
如果确定发送目的地的节点ID不是消息服务器100A的节点ID(否),则连接管理单元102确定是否存在作为发送目的地的用户ID和节点ID两者(步骤336)。
如果确定存在作为发送目的地的用户ID和节点ID两者(是),则连接管理单元102查找针对用户ID的服务器分配表,并且基于被设置为发送目的地的用户ID,确定与其相对应的消息服务器的节点ID(步骤337)。
随后,连接管理单元102确定与该用户ID相对应的消息服务器的节点ID是否是消息服务器100A的节点ID(步骤338)。
如果确定相应消息服务器的节点ID是消息服务器100A的节点ID(是),则连接管理单元102将消息传递到消息发送器106(步骤339)。
如果确定相应消息服务器的节点ID是另一消息服务器100B的节点ID(否),则连接管理单元102将消息传递到消息传送单元107(步骤340)。
如果在上述步骤336中,确定不存在作为发送目的地的用户ID和节点ID两者,即仅存在节点ID(否),则连接管理单元102查找针对设备ID的服务器分配表,并且基于被设置为发送目的地的节点ID(设备ID),确定与其相对应的消息服务器的节点ID(步骤341)。
随后,连接管理单元102确定与该节点ID相对应的消息服务器的节点ID是否是消息服务器100A的节点ID(步骤342)。
如果确定相应消息服务器的节点ID是消息服务器100A的节点ID(是),则连接管理单元102将消息传递到消息发送器106(步骤343)。
如果确定相应消息服务器的节点ID是另一消息服务器100B的节点ID(否),则连接管理单元102将消息传递到消息传送单元107(步骤344)。
在上述步骤332中,如果确定未接收到消息(否),则连接管理单元102针对管理目标的连接中的任意一个,确定是否发生了错误或者通信中断(步骤346)。
如果发生了错误或者通信中断(是),则连接管理单元102从连接信息列表104中排除与发生了错误或者通信的连接相关联的条目(步骤347)。
[结论]
如上面所讨论的,根据该实施例,只要将同一用户ID设置为消息的目的地,则将设置了该用户ID的设备300连接到同一消息服务器100和通知服务器200。因此,消息服务器100之间的通信的次数减少,并且云系统的负荷减小。
[变形例]
本技术不仅仅局限于上述实施例,可以对本技术进行各种改变,而不脱离本技术的精神。
在上述实施例中的每一个中,对于从消息服务器100到通知服务器200的通信,每次进行通信时,建立或者释放连接。然而,可以将连接保持预定时间段。
在上述实施例中的每一个中,在可使用多个通知手段的情况下,消息服务器100依次尝试它们。然而,在可使用多个通信手段的情况下,消息服务器100可以根据优先顺序尝试它们,或者可以依次使用多个通知手段并行进行通知处理,以提高响应。
在上述实施例中的每一个中,每个设备300设置有用于设置通知手段的通知手段设置单元301。然而,在每个设备300仅使用特定通知手段的情况下,可以省略通知手段设置单元301。
在上述实施例中的每一个中,每个设备300依据是否使用通知服务器200,设置有通知服务器通知接收器302和直接通知接收器303。然而,它们中的任意一个可以工作,或者两者可以同时操作。
在上述实施例中的每一个中,一旦建立连接,则每个设备300的消息接收器304使用的连接被保持预定时间段。然而,消息接收器304可以在需要的情况下在每次建立连接时,连接到服务器。此外,在上述实施例中的每一个中,可以每次建立或者释放每个设备300的消息发送器305使用的连接。一旦建立连接,则可以将其保持预定时间段。
在上述实施例中的每一个中,每个设备300的消息接收器304和消息发送器305被示出为单独的模块。然而,两者可以共享连接。
在上述实施例中的每一个中,每个设备300在连接到消息服务器100的同时,还保持与通知服务器200的连接。然而,当释放与消息服务器100的连接时,每个设备300可以从通知服务器200断开,并且重新连接到通知服务器200。
在上述实施例中的每一个中,在经由消息服务器100的设备300之间的所有交换中都使用消息。然而,针对每个设备300的应用,基于这种消息机制,可以提供远程过程调用(RPC)机制和流通信机制,并且进一步提供例如HTTP模拟的通信机制。
在上述实施例中,消息服务器100和通知服务器200被示出为物理上不同的服务器。然而,通过用于与每个设备300的连接的缓冲器大小的设置和如何对其进行处置而产生它们之间的不同,因此代替在物理上不同的服务器上运行的模式,下面的模式可以提供相同的效果。
(1)在单个服务器机器上运行通知服务器处理和消息服务器处理两者。(2)在单个服务器机器上运行具有通知服务器功能和消息服务器功能的单个服务器处理(依据与设备300的通信情形,在对应于通知服务器的连接模式和对应于消息服务器的连接模式之间进行切换)。
[其它]
本技术还可以采用以下配置。
[1]一种信息处理装置,包括:
通信单元,其能够在需要的情况下,经由网络在第一设备、第二设备以及经由所述网络持续连接到所述第二设备的持续连接的服务器之间进行连接,以进行通信;以及
控制单元,其能够控制所述通信单元,以便从所述第一设备接收寻址到所述第二设备的数据,向所述持续连接的服务器发送用于请求向所述第二设备发送用于通知所述数据的存在的通知消息的通知请求信息,并且响应于来自接收到所述通知消息的所述第二设备的请求,向所述第二设备发送所述数据。
[2]根据[1]所述的信息处理装置,还包括:
存储单元,其中,
所述第二设备经由通信中继装置与所述信息处理装置和所述持续连接的服务器进行通信,以及
所述控制单元
如果所述通信中继装置被设置为传送从所述信息处理装置到所述第二设备的通信,则控制所述存储单元以便存储关于传送设置的信息,以及
代替发送所述通知请求信息或者除了发送所述通知请求信息之外,还控制所述通信单元使用所存储的信息直接向所述第二设备发送所述通知消息。
[3]根据[1]或[2]所述的信息处理装置,其中,
如果对所述第二设备分配了全局IP地址,则代替发送所述通知请求信息或者除了发送所述通知请求信息之外,所述控制单元控制所述通信单元以便直接向所述第二设备发送所述通知消息。
[4]根据[1]至[3]中的任一项所述的信息处理装置,其中,
所述信息处理装置和所述持续连接的服务器分别包括多个信息处理装置和多个持续连接的服务器,
所述第一设备和所述第二设备各自被设置为利用用于唯一地识别所述第一设备、所述第二设备、所述多个信息处理装置和所述多个持续连接的服务器的设备识别信息,对应于所述信息处理装置中的一个和所述持续连接的服务器中的一个,使得所述第一设备和所述第二设备中的每一个与所述信息处理装置中的一个和所述持续连接的服务器中的一个进行通信;以及
如果基于所述设备识别信息确定所述第二设备对应于另一信息处理装置,则所述控制单元控制所述通信单元以便向所述另一信息处理装置传送所述数据。
[5]根据[4]所述的信息处理装置,还包括:
存储单元,其中,
所述控制单元
创建表,在所述表中定义了基于哈希值的值和所述多个信息处理装置中的每一个的识别信息之间的对应关系,所述哈希值是基于所述第一设备和所述第二设备中的每一个的设备识别信息根据预定哈希函数获得的,
控制所述存储单元以便存储所创建的表,并且
基于所存储的表确定对应于所述第二设备的另一信息处理装置。
[6]根据[5]所述的信息处理装置,其中,
如果在所述第一设备和所述第二设备中的每一个中设置了用于唯一地识别拥有所述第一设备和所述第二设备中的每一个的用户的用户识别信息,则代替所述设备识别信息,所述控制单元使用所述用户识别信息来创建所述表。
对附图标记的描述
11、31 CPU
12、32 ROM
13、33 RAM
18、38 存储单元
19、39 通信单元
50 WAN
100 (100A、100B、100C)消息服务器
101 连接处理器
102 连接管理单元
103 通知手段列表
104 连接信息列表
105 消息处理器
106 消息发送器
107 消息传送单元
200 (200A、200B、200C)通知服务器
201 连接处理器
202 连接管理单元
203 连接信息列表
300 (300A、300B、300C)设备
301 通知手段设置单元
302 通知服务器通知接收器
303 直接通知接收器
304 消息接收器
305 消息发送器
306 消息处理器
310 (310A、310B)通信中继装置

Claims (7)

1.一种信息处理装置,包括:
通信单元,其能够在需要的情况下,经由网络在第一设备、第二设备以及经由所述网络持续连接到所述第二设备的持续连接的服务器之间进行连接,以进行通信;
控制单元,其能够控制所述通信单元,以便从所述第一设备接收寻址到所述第二设备的数据,向所述持续连接的服务器发送用于请求向所述第二设备发送用于通知该数据的存在的通知消息的通知请求信息,并且响应于来自接收到所述通知消息的所述第二设备的请求,向所述第二设备发送所述数据;以及
存储单元,其中,
所述第二设备经由通信中继装置与所述信息处理装置和所述持续连接的服务器进行通信,以及
所述控制单元
如果所述通信中继装置被设置为传送从所述信息处理装置到所述第二设备的通信,则控制所述存储单元以便存储关于传送设置的信息,以及
代替发送所述通知请求信息或者除了发送所述通知请求信息之外,还控制所述通信单元使用所存储的信息直接向所述第二设备发送所述通知消息。
2.根据权利要求1所述的信息处理装置,其中,
如果对所述第二设备分配了全局IP地址,则代替发送所述通知请求信息或者除了发送所述通知请求信息之外,所述控制单元控制所述通信单元以便直接向所述第二设备发送所述通知消息。
3.根据权利要求1所述的信息处理装置,其中,
所述信息处理装置和所述持续连接的服务器分别包括多个信息处理装置和多个持续连接的服务器,
所述第一设备和所述第二设备各自被设置为利用用于唯一地识别所述第一设备、所述第二设备、所述多个信息处理装置和所述多个持续连接的服务器的设备识别信息,对应于所述信息处理装置中的一个和所述持续连接的服务器中的一个,使得所述第一设备和所述第二设备中的每一个与所述信息处理装置中的一个和所述持续连接的服务器中的一个进行通信;以及
如果基于所述设备识别信息确定所述第二设备对应于另一信息处理装置,则所述控制单元控制所述通信单元以便向所述另一信息处理装置传送所述数据。
4.根据权利要求3所述的信息处理装置,其中,
所述控制单元
创建表,在所述表中定义了基于哈希值的值和所述多个信息处理装置中的每一个的识别信息之间的对应关系,所述哈希值是基于所述第一设备和所述第二设备中的每一个的设备识别信息根据预定哈希函数获得的,
控制所述存储单元以便存储所创建的表,并且
基于所存储的表确定对应于所述第二设备的另一信息处理装置。
5.根据权利要求4所述的信息处理装置,其中,
如果在所述第一设备和所述第二设备中的每一个中设置了用于唯一地识别拥有所述第一设备和所述第二设备中的每一个的用户的用户识别信息,则代替所述设备识别信息,所述控制单元使用所述用户识别信息来创建所述表。
6.一种信息处理装置,包括:
通信单元,其能够经由网络持续连接到第一设备和第二设备以进行通信,并且能够在需要的情况下,经由所述网络连接到传达所述第一设备和所述第二设备之间的数据的发送和接收的中间服务器,以进行通信;
控制单元,其能够控制所述通信单元,以便在所述中间服务器接收到从所述第一设备发送的寻址到所述第二设备的数据时,从所述中间服务器接收用于请求向所述第二设备发送用于通知该数据的存在的通知消息的通知请求信息,并且基于所述通知请求信息,向所述第二设备发送所述通知消息;以及
存储单元,其中,
所述第二设备经由通信中继装置与所述信息处理装置和所述中间服务器进行通信,以及
所述控制单元
如果所述通信中继装置被设置为传送从所述信息处理装置到所述第二设备的通信,则控制所述存储单元以便存储关于传送设置的信息,以及
代替发送所述通知请求信息或者除了发送所述通知请求信息之外,还控制所述通信单元使用所存储的信息直接向所述第二设备发送所述通知消息。
7.一种信息处理方法,包括:
经由网络与第一设备建立连接,并且从所述第一设备接收寻址到第二设备的数据;
向持续连接到所述第二设备的服务器,发送用于请求向所述第二设备发送用于通知所述数据的存在的通知消息的通知请求信息;
响应于来自接收到所述通知消息的所述第二设备的请求,建立连接,并且向所述第二设备发送所述数据;以及
所述第二设备经由通信中继装置与信息处理装置和所述服务器进行通信,
如果所述通信中继装置被设置为传送从所述信息处理装置到所述第二设备的通信,则存储关于传送设置的信息,以及
代替发送所述通知请求信息或者除了发送所述通知请求信息之外,还使用所存储的信息直接向所述第二设备发送所述通知消息。
CN201280069142.2A 2012-02-13 2012-11-27 信息处理装置和信息处理方法 Active CN104094243B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012-028074 2012-02-13
JP2012028074 2012-02-13
PCT/JP2012/007588 WO2013121487A1 (ja) 2012-02-13 2012-11-27 情報処理装置、情報処理方法及びプログラム

Publications (2)

Publication Number Publication Date
CN104094243A CN104094243A (zh) 2014-10-08
CN104094243B true CN104094243B (zh) 2017-03-08

Family

ID=48983657

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280069142.2A Active CN104094243B (zh) 2012-02-13 2012-11-27 信息处理装置和信息处理方法

Country Status (4)

Country Link
US (1) US20140365606A1 (zh)
JP (1) JP5962676B2 (zh)
CN (1) CN104094243B (zh)
WO (1) WO2013121487A1 (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6291802B2 (ja) * 2013-11-18 2018-03-14 株式会社リコー 制御システム、通信システム、プログラム、及び制御方法
JP5940566B2 (ja) * 2014-01-15 2016-06-29 シャープ株式会社 ネットワークシステム、常時接続方法、サーバ、電子機器、プログラム
JP2015103123A (ja) * 2013-11-27 2015-06-04 シャープ株式会社 ネットワークシステム、通信方法、電子機器、アプリケーションサーバ、プログラム
JP5929946B2 (ja) * 2014-02-27 2016-06-08 コニカミノルタ株式会社 画像形成システム、中継サーバー、通信制御方法及びプログラム
KR20160061681A (ko) * 2014-11-24 2016-06-01 삼성전자주식회사 메시지 전송 시스템, 메시지 전송 서버, 사용자 단말 장치, 메시지 전송 방법 및 메시지 수신 방법
JP7311780B2 (ja) * 2019-10-28 2023-07-20 株式会社バッファロー ルータ、制御プログラム、端末装置、通信システム
CN112752353B (zh) * 2019-10-31 2022-06-10 中移物联网有限公司 一种连接方法及终端设备
CN113285971B (zh) * 2021-02-23 2022-11-18 江苏未来智慧信息科技有限公司 针对工具柜的数据输送平台和输送方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100533415C (zh) * 2005-05-11 2009-08-26 索尼株式会社 服务器设备、用于其的器件间连接方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965917B1 (en) * 1999-09-07 2005-11-15 Comverse Ltd. System and method for notification of an event
US6498835B1 (en) * 2000-02-29 2002-12-24 Ameritech Corporation Method and system for providing visual notification in a unified messaging system
JP2002344529A (ja) * 2001-05-21 2002-11-29 Sharp Corp プッシュ型サービスシステム
US7499973B2 (en) * 2001-12-21 2009-03-03 Motorola, Inc. System and method for automatically forwarding a communication message
US7899932B2 (en) * 2003-01-15 2011-03-01 Panasonic Corporation Relayed network address translator (NAT) traversal
KR101252609B1 (ko) * 2004-08-31 2013-04-09 쿠니히로 시이나 통화를 수반하는 푸쉬형 정보통신 시스템
US7853245B2 (en) * 2005-11-08 2010-12-14 Research In Motion Limited System and methods for wireless messaging
JP4715553B2 (ja) * 2006-03-01 2011-07-06 パナソニック電工株式会社 防犯システム
US8924489B2 (en) * 2011-01-05 2014-12-30 Apple Inc. Message push notification client improvements for multi-user devices
US20120331526A1 (en) * 2011-06-22 2012-12-27 TerraWi, Inc. Multi-level, hash-based device integrity checks

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100533415C (zh) * 2005-05-11 2009-08-26 索尼株式会社 服务器设备、用于其的器件间连接方法

Also Published As

Publication number Publication date
JP5962676B2 (ja) 2016-08-03
JPWO2013121487A1 (ja) 2015-05-11
WO2013121487A1 (ja) 2013-08-22
US20140365606A1 (en) 2014-12-11
CN104094243A (zh) 2014-10-08

Similar Documents

Publication Publication Date Title
CN104094243B (zh) 信息处理装置和信息处理方法
KR102046700B1 (ko) 메시지 버스 서비스 디렉토리
CN105991796B (zh) 一种用于部署网络中的用户终端的配置服务的方法和系统
AU2016387475A1 (en) Virtual network, hot swapping, hot scaling, and disaster recovery for containers
CN102148767A (zh) 一种基于nat的数据路由方法及其装置
WO2021203126A1 (en) Cloud-native proxy gateway to cloud resources
CN103631652A (zh) 虚拟机迁移的实现方法及系统
JP2005322107A (ja) 負荷分散装置及びプログラム
JP2008225644A (ja) ゲートウェイ装置、ゲートウェイ装置の負荷分散方法及びゲートウェイ装置の負荷分散プログラム
CN113824723A (zh) 一种应用于音视频数据传输的端到端系统解决方法
CN107547665A (zh) 一种dhcp地址分配的方法、设备及系统
CN107659930A (zh) 一种ap接入控制方法和装置
CN109474713A (zh) 报文转发方法和装置
JP6211975B2 (ja) ネットワーク延伸システム、制御装置、およびネットワーク延伸方法
US9063963B2 (en) Method and system for migration of managed devices
JP2020174259A (ja) 通信システム及び通信方法
CN106130926A (zh) 一种报文的处理方法及装置
CN105939344A (zh) 一种tcp连接的建立方法及装置
JP4683345B2 (ja) ネットワーク負荷分散装置、ネットワーク負荷分散方法及びプログラム
US20130254425A1 (en) Dns forwarder for multi-core platforms
WO2019167562A1 (ja) ゲートウェイ装置、通信システム、及び、自動倉庫システム
US9804907B2 (en) Remote procedure call for a distributed system
JP2004153366A (ja) 仮想プライベートネットワーク(vpn)システム及び中継ノード
CN105516121B (zh) 无线局域网中ac与ap通信的方法及系统
CN112887185B (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
C14 Grant of patent or utility model
GR01 Patent grant