JP5429003B2 - The information processing apparatus, communication control method and communication control program - Google Patents

The information processing apparatus, communication control method and communication control program Download PDF

Info

Publication number
JP5429003B2
JP5429003B2 JP2010079207A JP2010079207A JP5429003B2 JP 5429003 B2 JP5429003 B2 JP 5429003B2 JP 2010079207 A JP2010079207 A JP 2010079207A JP 2010079207 A JP2010079207 A JP 2010079207A JP 5429003 B2 JP5429003 B2 JP 5429003B2
Authority
JP
Grant status
Grant
Patent type
Prior art keywords
data
threads
robot
thread
server
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
JP2010079207A
Other languages
Japanese (ja)
Other versions
JP2011210144A (en )
Inventor
賀彦 村川
秀親 伊藤
Original Assignee
富士通株式会社
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
Grant date

Links

Images

Description

本発明は、情報処理装置、通信制御方法及び通信制御プログラムに関する。 The present invention relates to an information processing apparatus, a communication control method and a communication control program.

ネットワーク(network)を介して各種のサービス(service)を提供する仕組みが知られている。 Mechanism through a network (network) to provide various services (service) has been known. 一例としては、家庭や公共の空間でロボット(robot)によるインタネット(internet)を介したサービスを提供するロボットサービスが提案されている。 As an example, a robot service that provides a home and public services through the Internet (internet) robotic (robot) in space have been proposed.

かかるロボットサービスを提供する場合には、ロボットが収容されるファイアウォール(firewall)を通過して所定のサーバ(server)へアクセス(access)できることが求められる。 When providing such a robot service, it is required to be accessible through the firewall robot is accommodated (firewall) to the predetermined server (server) (access). さらには、ロボットがローカルアドレス(local address)しか有していない場合でも、ロボット及びサーバ間で双方向通信が実行できることも求められる。 Furthermore, the robot even if you do not have local address (local address) only, also required that the two-way communication can be executed between robots and the server.

これらの要求を満たすために、ロボットを起点としてHTTP(HyperText Transfer Protocol)による通信を実現する通信方式がRSi(Robot Service initiative)により策定されている。 To meet these requirements, a communication method for realizing the communication according to HTTP (HyperText Transfer Protocol) the robot starting has been developed by RSi (Robot Service initiative).

この通信方式では、ロボットからサーバへデータ転送を行うための上り用の通信路と、サーバからロボットへデータ転送を行うための下り用の通信路との2つの通信路がそれぞれ使用される。 In this communication system, a communication channel for the uplink for transferring data to the server from the robot, two communication paths between the communication path for the downlink for performing data transfer from the server to the robot is used, respectively. なお、ロボット及びサーバは、相手先へ送信するデータを保持する送信キュー(queue)及び相手先から受信したデータを保持する受信キューをそれぞれ有するものとする。 Incidentally, the robot and the server is assumed to have each a receive queue for holding data received from the transmission queue (queue) and the destination for holding data to be transmitted to the destination.

一例として、ロボットからサーバへの上り通信を行う場合を想定する。 As an example, a case of performing the uplink communication from the robot to the server. この場合には、ロボット側で上り用のHTTP通信のセッション(session)を実現するロボット側の上りHTTPスレッド(thread)は、ロボットの送信キューにデータが保持されているか否かを監視する。 In this case, uplink HTTP thread robot side to realize the session for HTTP communication for uplink (session) with the robot side (thread) monitors whether the data in the transmission queue of the robot is held. このとき、ロボットの送信キューにデータが保持されると、ロボット側の上りHTTPスレッドは、送信キューに保持されたデータをHTTPリクエストのペイロード(payload)へ埋め込んでサーバへ送信する。 At this time, the data in the transmission queue of the robot is held, up HTTP thread robot side transmits to the server embeds the data held in the transmission queue to the payload of the HTTP request (payload). 一方、サーバ側で上り用のHTTP通信のセッションを実現するサーバ側の上りHTTPスレッドは、HTTPリクエストのペイロードに埋め込まれていたデータをサーバの受信キューに保持させるとともに、空のHTTPレスポンスをロボットへ応答する。 Meanwhile, uplink HTTP thread server that realizes a session for HTTP communication for uplink on the server side, with and holds the data that was embedded in the payload of the HTTP request to the server receive queue, an empty HTTP response to the robot respond. このようにして、ロボットからサーバへのデータ転送が上り用の通信路のHTTPリクエストにより実現される。 In this way, the data transfer from the robot to the server is implemented as an HTTP request of the communication path for the uplink.

他の一例として、サーバからロボットへ下り通信を行う場合を想定する。 As another example, assume a case of performing downlink communication from the server to the robot. この場合には、ロボット側で下り用のHTTP通信のセッションを実現するロボット側の下りHTTPスレッドは、予め空のHTTPリクエストをサーバへ送信する。 In this case, the robot-side downlink HTTP thread to realize the session for HTTP communication for the downlink in the robot side, the pre sent an empty HTTP request to the server. 一方、サーバ側で下り用のHTTP通信のセッションを実現するサーバ側の下りHTTPスレッドは、サーバの送信キューにデータが保持されるまでロボットから受信したHTTPリクエストに対するレスポンスを保留状態とする。 On the other hand, the server side of the downstream HTTP thread to realize the session for HTTP communication for the downlink on the server side, the response to the HTTP request received from the robot to the data to the server of the transmission queue is maintained on hold. そして、サーバの送信キューにデータが保持されると、サーバ側の下りHTTPスレッドは、HTTPリクエストの保留状態を解除し、送信キューに保持されたデータをHTTPレスポンスのペイロードへ埋め込んでロボットへ送信する。 When the data to the server of the transmission queue is maintained, downstream HTTP thread server cancels the hold of the HTTP request, and transmits to the robot by embedding the data held in the transmission queue to the payload of the HTTP response . また、ロボット側の下りHTTPスレッドは、HTTPレスポンスのペイロードに埋め込まれていたデータをロボットの受信キューに保持させるとともに、空のHTTPリクエストをロボットへ再び送信する。 Also, downlink HTTP thread robot side, along with to hold the data that was embedded in the payload of the HTTP response to the robot receive queue again sends an empty HTTP request to the robot. このようにして、サーバからロボットへのデータ転送が下り用の通信路のHTTPレスポンスにより実現される。 In this way, the data transfer from the server to the robot is realized by the HTTP response of the channel for the downlink.

特表2002−517857号公報 JP-T 2002-517857 JP 特開2003−58439号公報 JP 2003-58439 JP

しかしながら、上記の従来技術では、上り用の通信路と下り用の通信路とを固定して使用するので、上り通信のHTTPレスポンスおよび下り通信のHTTPリクエストが実態的なデータ転送に利用されず、通信路を有効活用することができないという問題がある。 However, in the above prior art, since the use to secure the communication channel for communication channel and the downlink for the uplink, HTTP response and downlink communication HTTP requests uplink communication is not available for actual data transfer, it is not possible to effectively utilize a communication channel.

例えば、上り通信を行う場合には、ロボットがサーバへ送信するHTTPリクエストはロボットの送信キューにあるデータをサーバへ転送するのに利用できる。 For example, when performing uplink communication, HTTP requests the robot to transmit to the server can be used to transfer the data in the transmission queue of the robot to the server. ところが、サーバがロボットへ送るHTTPレスポンスは、HTTPリクエストに対する形式的な応答が空のレスポンスとしてなされるに過ぎず、サーバからロボットへのデータ転送は実態的になされない。 However, HTTP response that the server sends to the robot is not just a formal response to the HTTP request is made as an empty response, data transfer from the server to the robot is not made in substantive. また、下り通信を行う場合には、サーバがロボットへ送信するHTTPレスポンスはサーバの送信キューにあるデータをロボットへ転送するのに利用できる。 Also, when performing downlink communication, HTTP response the server sends to the robot can be used to transfer data to the server's transmission queue to the robot. ところが、ロボットがサーバへ送るHTTPリクエストは、サーバの送信キューにデータが保持される時のために空のリクエストとしてなされるに過ぎず、ロボットからサーバへのデータ転送は実態的になされない。 However, HTTP request to send a robot to the server, only to be made as an empty request for when the data is held in the server of the transmission queue, data transfer from the robot to the server is not made in substantive.

開示の技術は、上記に鑑みてなされたものであって、通信路を有効活用することができる情報処理装置、通信制御方法及び通信制御プログラムを提供することを目的とする。 The technology disclosed, which has been made in view of the above, the information processing apparatus capable of effectively utilizing the communication path, and an object thereof is to provide a communication control method and a communication control program.

本願の開示する情報処理装置は、判定部と、スレッド制御部とを有する。 The information processing device disclosed in the application comprises a determination unit, and a thread control unit. 前記判定部は、クライアントサーバ環境下にある自装置の通信先となる他方の装置との間で双方向通信を行うために動作される複数のスレッドのうち、送信キューにデータが格納されるのを待機しているスレッドの数が所定の閾値以上であるか否かを判定する。 The determination unit, among the plurality of threads operating in order to perform two-way communication with another device as a destination of the apparatus under a client-server environment, the data is stored in the transmission queue the number of threads that are waiting for is equal to or greater than a predetermined threshold value. 前記送信キューは、前記他方の装置へ送信するデータを保持する。 The transmit queue holds the data to be transmitted to the other device. 前記スレッド制御部は、自装置で動作するスレッドの動作を制御する。 The thread control unit controls the operation of the thread operating in its own device. 前記スレッド制御部は、前記判定部によって前記スレッドの数が所定の閾値以上であると判定された場合には、空のリクエストもしくは空のレスポンスを送信するようにスレッドを機能させる。 The thread control unit, wherein, when the number of the threads by the determining unit determines that it is greater than the predetermined threshold value, to function threads to send empty request or an empty response. 前記スレッド制御部は、前記スレッドの数が所定の閾値未満であると判定された場合には、それ以降に前記送信キューに格納されるデータを通信データの本体として埋め込んでリクエストまたはレスポンスを送信するようにスレッドを機能させる。 The thread control unit, when the number of the threads is determined to be less than the predetermined threshold, transmits an embedded request or response data stored in the transmission queue to thereafter as the body of the communication data the functioning of the thread so.

本願の開示する情報処理装置の一つの態様によれば、通信路を有効活用することができるという効果を奏する。 According to one aspect of the information processing apparatus disclosed in the present application, an effect that it is possible to effectively utilize a communication channel.

図1は、実施例1に係る情報処理装置の構成を示すブロック図である。 Figure 1 is a block diagram showing a configuration of an information processing apparatus according to the first embodiment. 図2は、実施例2に係るクライアントサーバシステムのシステム構成を示す図である。 Figure 2 is a diagram showing a system configuration of a client-server system according to the second embodiment. 図3は、実施例2に係るロボットの構成を示すブロック図である。 Figure 3 is a block diagram showing the configuration of a robot according to the second embodiment. 図4は、共有データの一例を示す図である。 Figure 4 is a diagram showing an example of the shared data. 図5は、実施例2に係るサーバの構成を示すブロック図である。 Figure 5 is a block diagram showing a configuration of a server according to the second embodiment. 図6は、共有データの一例を示す図である。 Figure 6 is a diagram showing an example of the shared data. 図7は、実施例2に係るHTTPロボットスレッドに実行される処理の手順を示すフローチャートである。 Figure 7 is a flowchart showing a procedure of processing executed HTTP robot thread according to the second embodiment. 図8は、実施例2に係るHTTPサーバスレッドに実行される処理の手順を示すフローチャートである。 Figure 8 is a flowchart showing a procedure of processing executed HTTP server threads according to the second embodiment. 図9は、実施例3に係る通信制御プログラムを実行するコンピュータの一例について説明するための図である。 Figure 9 is a diagram for explaining an example of a computer that executes a communication control program according to the third embodiment.

以下に、本願の開示する情報処理装置、通信制御方法及び通信制御プログラムの実施例を図面に基づいて詳細に説明する。 Hereinafter, the information processing apparatus disclosed in the present application will be described in detail with reference to embodiments of a communication control method and a communication control program in the drawings. なお、この実施例は開示の技術を限定するものではない。 Incidentally, this embodiment is not intended to limit the disclosed technique.

図1は、実施例1に係る情報処理装置の構成を示すブロック図である。 Figure 1 is a block diagram showing a configuration of an information processing apparatus according to the first embodiment. 図1に示すように、情報処理装置1は、判定部1aと、スレッド制御部1bとを有する。 As shown in FIG. 1, the information processing apparatus 1 includes a determination unit 1a, and a thread control unit 1b.

判定部1aは、クライアントサーバ環境下にある自装置の通信先となる他方の装置との間で双方向通信を行うために動作される複数のスレッドのうち、送信キューにデータが格納されるのを待機しているスレッドの数が所定の閾値以上であるか否かを判定する。 Determination unit 1a among the plurality of threads operating in order to perform two-way communication with another device as a destination of the apparatus under a client-server environment, the data is stored in the transmission queue the number of threads that are waiting for is equal to or greater than a predetermined threshold value. この送信キューとは、他方の装置へ送信するデータを保持するキューを指す。 And the transmission queue, refers to a queue that holds the data to be transmitted to the other device.

スレッド制御部1bは、情報処理装置1で動作するスレッドの動作を制御する。 Thread control unit 1b controls the thread operating at the information processing apparatus 1. 例えば、スレッド制御部1bは、判定部1aによってスレッドの数が所定の閾値以上であると判定された場合に、空のリクエストもしくは空のレスポンスを送信するようにスレッドを機能させる。 For example, the thread control unit 1b, if the number of threads by the determination unit 1a is determined to be equal to or greater than a predetermined threshold value, to function threads to send empty request or an empty response. 一例として、情報処理装置1がクライアントとして機能する場合には、クライアントからサーバへデータ転送を行う上り用の通信路として機能するスレッドが十分に存在する場合にその逆の下り用の通信路としてスレッドを機能させることができる。 Thread As an example, in the case where the information processing apparatus 1 functions as a client, as a communication path for the downlink and vice versa when the thread that functions as a communication path for the uplink that transfers data from the client to the server is present in sufficient it can be made to function. 他の一例として、情報処理装置1がサーバとして機能する場合には、下り用の通信路として機能するスレッドが十分に存在する場合に上り用の通信路としてスレッドを機能させることができる。 As another example, when the information processing apparatus 1 functions as a server, can function threads as a communication channel for the uplink when the thread that functions as a communication path for the downlink is sufficiently present.

また、スレッド制御部1bは、スレッドの数が所定の閾値未満であると判定された場合に、送信キューにデータが格納されるまで待機した後にそのデータを通信データの本体として埋め込んでリクエストまたはレスポンスを送信するようにスレッドを機能させる。 Moreover, the thread control unit 1b, if the number of threads is determined to be less than a predetermined threshold, request or response is embedded as the body of the communication data to the data after waiting until the data is stored in the transmission queue the functioning of the thread to send. 一例として、情報処理装置1がクライアントとして機能する場合には、上り用の通信路として機能するスレッドが十分に存在しない場合に上り用の通信路としてスレッドを機能させることができる。 As an example, in the case where the information processing apparatus 1 functions as a client, can function threads as a communication channel for the uplink when the thread that functions as a communication path for the uplink is not sufficiently present. 他の一例として、情報処理装置1がサーバとして機能する場合には、下り用の通信路として機能するスレッドが十分に存在しない場合に下り用の通信路としてスレッドを機能させることができる。 As another example, when the information processing apparatus 1 functions as a server, can be thread that functions as a communication path for the downlink is to function thread as a communication path for the downlink in the absence of sufficiently.

このように、本実施例に係る情報処理装置1は、上り用の通信路として機能させるスレッド及び下り用の通信路として機能させるスレッドを機動的に変更できる。 Thus, the information processing apparatus 1 according to this embodiment can flexibly change the thread to function as the communication path for the thread and downstream to function as a communication channel for the uplink. このため、本実施例に係る情報処理装置1では、上り用の通信路と下り用の通信路とを固定する場合に比べて、上り通信で発生する空のレスポンスの送信回数及び下り通信で発生する空のリクエストの送信回数を低減できる。 Therefore, the information processing apparatus 1 according to the present embodiment, as compared with a case of fixing a communication channel for communication channel and the downlink for the uplink, occurs in the number of transmissions and downlink communication empty responses that occur in uplink communication empty of the number of times of transmission of the request to be reduced. また、本実施例に係る情報処理装置1では、スレッドを機動的に変更しても、各通信路として機能させるスレッドを適切な数に保つことができる。 Further, in the information processing apparatus 1 according to the present embodiment, even if flexibly change the thread, it is possible to keep the threads to function as the communication channel to the appropriate number. それゆえ、本実施例に係る情報処理装置1によれば、通信路を有効活用することが可能になる。 Therefore, according to the information processing apparatus 1 according to this embodiment, it is possible to effectively utilize a communication channel. さらに、本実施例に係る情報処理装置1では、通信路の数を増減させる場合に上り専用の通信路及び下り専用の通信路の2つを1組として拡張または縮退せずとも、通信路の数をよりきめ細やかに増減させることができる。 Furthermore, in the information processing apparatus 1 according to the present embodiment, expansion or without degenerating the two communication paths and downlink dedicated communication channel of the uplink dedicated as a set when increasing or decreasing the number of communication paths, the communication channel it can be more attentive to increase or decrease the number.

[システム構成] [System configuration]
続いて、実施例2に係るクライアントサーバシステムについて説明する。 The following describes a client server system according to the second embodiment. 図2は、実施例2に係るクライアントサーバシステムのシステム構成を示す図である。 Figure 2 is a diagram showing a system configuration of a client-server system according to the second embodiment. 図2の例では、サーバ30がネットワーク20を介して気象情報や防災情報などの各種の情報をロボット10へ通知したり、また、ロボット10がロボット10の異常可否やセンサ出力をサーバ30へ通知したりする場合を想定する。 In the example of FIG. 2, and notifies various information, such as weather information and disaster prevention information to the robot 10 the server 30 via the network 20, also notified of the abnormality whether or sensor output of the robot 10 is a robot 10 to the server 30 a case is assumed to be or.

図2に示すように、クライアントサーバシステム(client server system)は、ロボット10と、サーバ30とを有する。 As shown in FIG. 2, the client-server system (client server system), includes a robot 10, a server 30. これらロボット10及びサーバ30は、ネットワーク20を介して、相互に通信可能に接続される。 These robots 10 and the server 30 via the network 20, is communicatively connected to each other. なお、ネットワーク20には、インターネット(Internet)、LAN(Local Area Network)やVPN(Virtual Private Network)などの任意の種類の通信網を採用できる。 Note that the network 20 may employ Internet (Internet), any kind of communication network such as LAN (Local Area Network) or VPN (Virtual Private Network).

ロボット10は、情報サービスや物理サービスなどの各種のサービスを提供するサービスロボットである。 Robot 10 is a service robot which provides a variety of services such as information services and physical services. 情報サービスの一例としては、サーバ30からネットワーク20を介して受信した気象情報や防災情報などを表示デバイスや音声出力デバイスを介して出力するサービスが挙げられる。 Examples of information services include services to output through a display device or an audio output device such as weather information or disaster information received from the server 30 via the network 20. また、物理サービスの一例としては、サーバ30からネットワーク20を介して受信した遠隔操作情報にしたがって荷物を搬送する搬送サービスや施設内の警備を行う警備サービスなどが実行される。 Further, as an example of a physical services, such as security service for security of transport services and the facility for transporting a load according to the remote operation information received from the server 30 via the network 20 is executed.

なお、ロボット10は、サーバ30からデータを受信するだけではなく、サーバ30へデータの送信も行う。 Note that the robot 10 not only receives data from the server 30 also carries out transmission of data to the server 30. 一例としては、ロボット10は、ロボット10に設けられた各種のセンサ(sensor)、例えば音声、画像、温度や湿度などを検出するセンサの出力をサーバ30へ送信することにより、ロボット10のセンサ情報をサーバ30へアップロード(upload)する。 As an example, the robot 10, a sensor of various provided in the robot 10 (: sensor), for example, voice, image, by transmitting the output of the sensor for detecting the temperature and humidity to the server 30, the sensor information of the robot 10 the upload (upload) to the server 30. 他の一例としては、ロボット10は、自装置が正常または異常であるのかをサーバ30へ定期的に送信することもできる。 As another example, the robot 10 can also be the own device transmits whether it is normal or abnormal to the server 30 periodically.

サーバ30は、クライアント端末であるロボット10にデータ配信を行うコンピュータ(Computer)である。 Server 30 is a computer for performing data delivery to the robot 10 that is a client terminal (Computer). 一例としては、外部装置からネットワーク20を介して収集した気象情報や防災情報などをロボット10へ送信する。 As an example, to transmit the meteorological information and disaster prevention information collected via the network 20 from an external device to the robot 10. なお、サーバ30は、ロボット10へデータを送信するだけではなく、ロボット10からもデータを受信する。 The server 30 may not only transmit the data to the robot 10, and receives data from the robot 10. 一例としては、サーバ30は、ロボット10からネットワーク20を介してセンサ情報を受信することにより、ロボット10の管制を行う。 As an example, the server 30, by receiving the sensor information from the robot 10 through the network 20, performs the control of the robot 10.

ここで、図2に示すロボット10及びサーバ30の間では、ロボットを起点としてHTTP(HyperText Transfer Protocol)による通信を実現する通信方式が採用されるものとする。 Here, between the robot 10 and the server 30 shown in FIG. 2, it is assumed that the communication method for realizing the communication according to HTTP (HyperText Transfer Protocol) of the robot as a starting point is employed. かかる通信方式を採用するのは、ロボット10及びサーバ30の間におけるファイアウォールの有無に関係なく、また、ロボットがローカルアドレスしか保有していない場合でも、ロボット10及びサーバ30の間の双方向通信を行うためである。 Is to employ such a communication system, with or without a firewall between the robot 10 and the server 30, Even if the robot does not possess only local address, the two-way communication between the robot 10 and the server 30 This is because to do.

これを説明すると、ロボット10及びサーバ30には、HTTP通信のセッションを確立することによりロボット10及びサーバ30間の通信路を生成する通信制御プログラムがそれぞれインストール(install)される。 To explain this, the robot 10 and the server 30, a communication control program for generating a communication path between the robot 10 and the server 30 are installed respectively (install) by establishing a session for HTTP communication. ここでは、ロボット10にインストールされる通信制御プログラムをロボット向けの通信制御プログラムと呼び、サーバ30にインストールされる通信制御プログラムをサーバ向けの通信制御プログラムと呼ぶ。 Here, the communication control program installed in the robot 10 is called a communication control program for the robot, called a communication control program installed in the server 30 and the communication control program for the server.

このうち、ロボット向けの通信制御プログラムが動作するロボット10では、サーバ30との間でHTTPセッションを確立するスレッドがHTTPロボットスレッド18A及びHTTPロボットスレッド18Bとして動作する。 Of these, the robot 10 a communication control program for the robot is operated, a thread that establishes an HTTP session with the server 30 operates as an HTTP robot thread 18A and HTTP robot thread 18B. また、サーバ向けの通信制御プログラムが動作するサーバ30では、ロボット10との間でHTTPセッションを確立するスレッドがHTTPサーバスレッド38A及びHTTPサーバスレッド38Bとして動作する。 Further, the server 30 communication control program for the server is running, operating threads established as HTTP server threads 38A and HTTP server threads 38B of the HTTP session with the robot 10. 図2に示す例では、同一のセッションを確立するスレッドの符号にはその末尾に同一の大文字アルファベットを付している。 In the example shown in FIG. 2, the thread of the code to establish the same session are denoted by the same capitalization in the end. なお、以下では、HTTPロボットスレッド18A及び18Bを区別なく総称する場合にはHTTPロボットスレッド18と表記し、また、HTTPサーバスレッド38A及び38Bを区別なく総称する場合にはHTTPサーバスレッド38と表記する。 In the following, denoted as HTTP robot thread 18 in the case of collectively without distinguishing HTTP robot threads 18A and 18B, also referred to as HTTP server threads 38 in the case of collectively without distinguishing HTTP server threads 38A and 38B .

このように、ロボット10及びサーバ30では、両者の間で確立されたHTTP通信のセッションの数と同数の組のHTTPロボットスレッド18及びHTTPサーバスレッド38が動作する。 Thus, in the robot 10 and the server 30, as many sets of HTTP robot thread 18 and HTTP server threads 38 of the HTTP communication established between the two sessions to operate.

これらHTTPロボットスレッド18A及びHTTPサーバスレッド38Aと、HTTPロボットスレッド18B及びHTTPサーバスレッド38Bとは、いずれも上り用の通信路または下り用の通信路として固定使用されない。 And these HTTP robot threads 18A and HTTP server threads 38A, and the HTTP robot threads 18B and HTTP server threads 38B, neither fixed used as the communication path or channel for the downlink for uplink. すなわち、ロボット10及びサーバ30は、上り用の通信路として機能させるスレッド及び下り用の通信路として機能させるスレッドを機動的に変更する。 That is, the robot 10 and the server 30 changes the thread to function as the communication path for the thread and downstream to function as the communication path for the uplink to flexibly.

一例として、図2に示す2組のHTTPロボットスレッド18及びHTTPサーバスレッド38が動作している場合、すなわち2つの通信路を用いる場合を想定してロボット10及びサーバ30間のデータ転送を説明する。 As an example, if two pairs of HTTP robot thread 18 and HTTP server threads 38 shown in FIG. 2 is operating, that is, assuming the case of using two communication paths describing a data transfer between the robot 10 and the server 30 .

図2に示す符号16aは、サーバ30へ送信するデータを保持する送信キューである。 Code 16a shown in FIG. 2 is a transmission queue for holding data to be transmitted to the server 30. この送信キュー16aには、ロボット10が特定のサービスを提供するためにインストールされたロボット用のアプリケーション、以下「ロボット用サービスアプリ」と記載によって生成されたデータがサーバ30へ通知される場合に格納される。 The transmission queue 16a, stored when installed application for robots, the following data generated by as a "service application robot" is notified to the server 30 for the robot 10 to provide a particular service It is. 図2に示す符号16bは、サーバ30から受信したデータを保持する受信キューである。 Code 16b shown in FIG. 2 is a receive queue for holding data received from the server 30. この受信キュー16bに格納されたデータは、ロボット用サービスアプリにより使用される。 The data stored in the reception queue 16b is used by the service application robot. 図2に示す符号36bは、ロボット10へ送信するデータを保持する送信キューである。 Code 36b shown in FIG. 2 is a transmission queue for holding data to be transmitted to the robot 10. この送信キュー36bには、ロボット10が特定のサービスを提供するためにインストールされたサーバ用のアプリケーション、以下「サーバ用サービスアプリ」と記載によって生成されたデータがロボット10へ通知される場合に格納される。 The transmission queue 36b, stored when installed application server, the following data generated by as a "service application server" is notified to the robot 10 to robot 10 to provide a particular service It is. 図2に示す符号36aは、ロボット10から受信したデータを保持する受信キューである。 Code 36a shown in FIG. 2 is a receive queue for holding data received from the robot 10. この受信キュー36aに格納されたデータは、サーバ用サービスアプリにより使用される。 The data stored in the reception queue 36a is used by the server for the service application.

図2に示すように、ロボット10側のHTTPロボットスレッド18は、サーバ30からHTTPレスポンスを受信すると、HTTPレスポンスのペイロードに埋め込まれているデータを受信キュー16bへ格納する。 As shown in FIG. 2, HTTP robot thread 18 of the robot 10 side receives the HTTP response from the server 30, it stores the data embedded in the payload of the HTTP response to the receive queue 16b. そして、HTTPロボットスレッド18は、送信キュー16aのデータの有無を確認する。 Then, HTTP robot thread 18, to confirm the presence or absence of data in the transmission queue 16a. このとき、送信キュー16aにデータが存在する場合には、HTTPロボットスレッド18は、送信キュー16aに保持されているデータをHTTPリクエストのペイロードへ埋め込んでHTTPリクエストをサーバ30へ送信する。 At this time, if the data exists in the transmission queue 16a is HTTP robot thread 18 transmits the HTTP request to the server 30 embeds the data held in the transmission queue 16a to the payload of the HTTP request. また、既に送信キュー16aにデータが格納されるのを待機しているスレッドがある場合には、HTTPロボットスレッド18は、自スレッドを下り用の通信路として機能させるために、空のHTTPリクエストをサーバ30へ送信する。 When there is a thread that is waiting for already data in the transmission queue 16a is stored, HTTP robot thread 18, in order to function as the communication path for the downlink self thread, an empty HTTP request and transmits it to the server 30.

一方、サーバ側のHTTPサーバスレッド38は、ロボット10からHTTPリクエストを受信すると、HTTPリクエストのペイロードに埋め込まれているデータを受信キュー36aへ格納する。 On the other hand, HTTP server thread 38 of the server side receives the HTTP request from the robot 10, and stores the data embedded in the payload of the HTTP request to the receive queue 36a. そして、HTTPサーバスレッド38は、送信キュー36bのデータの有無を確認する。 Then, HTTP server thread 38, to confirm the presence or absence of data in the transmission queue 36b. このとき、送信キュー36bにデータが存在する場合には、HTTPサーバスレッド38は、送信キュー36bに保持されているデータをHTTPレスポンスのペイロードへ埋め込んでHTTPレスポンスをロボット10へ送信する。 At this time, if the data exists in the transmission queue 36b is HTTP server thread 38 transmits the HTTP response to the robot 10 by embedding the data held in the transmission queue 36b to the payload of the HTTP response. また、既に送信キュー36bにデータが格納されるのを待機しているスレッドがある場合には、HTTPサーバスレッド38は、自スレッドを上り用の通信路として機能させるために、空のHTTPレスポンスをロボット10へ送信する。 When there is a thread that is waiting for already data in the transmission queue 36b is stored, HTTP server thread 38, in order to function the self thread as a communication path for the uplink, an empty HTTP response and transmits it to the robot 10.

一例として、防災情報を提供するサービス提供アプリがロボット10及びサーバ30で実行される場合を想定する。 As an example, a service providing application for providing disaster information is assumed to be executed by the robot 10 and the server 30. この場合には、ロボット10からサーバ30へ防災情報の配信要求を上り通信路を利用してリクエストし、サーバ30により気象警報、例えば大雨警報や波浪警報の発令情報が収集されると、サーバ30からロボット10へ下り通信路でその情報を通知できる。 In this case, a distribution request for disaster prevention information from the robot 10 to the server 30 by utilizing the uplink channel request, weather warning by the server 30, for example, issuance information heavy rain alarm and waves alarm is collected, the server 30 can be notified that information downlink communication path to the robot 10 from.

なお、図2の例では、ロボット10及びサーバ30の間で2つの通信路が生成される場合を例示したが、ロボット10及びサーバ30の間で生成される通信路は3つ以上であってもかまわない。 In the example of FIG. 2, a case has been exemplified where two communication paths between the robot 10 and the server 30 is generated, a communication path is created between the robot 10 and the server 30 is a three or more it may be. 一例としては、通信制御プログラムの開発者の設定により任意の通信路の数を生成することができる。 As an example, it is possible to generate a number of optional communication path by the developer of the setting of the communication control program. 他の一例としては、ロボット10またはサーバ30で動作するサービス提供用アプリが生成するデータ量に応じて任意の通信路の数を生成することもできる。 As another example, it is also possible to generate a number of optional communication path according to the amount of data service providing application operating in the robot 10 or the server 30 generates.

[ロボット10の構成] [Configuration of the robot 10]
次に、本実施例に係るロボットの構成について説明する。 Next, the configuration of a robot according to the present embodiment. 図3は、実施例2に係るロボットの構成を示すブロック図である。 Figure 3 is a block diagram showing the configuration of a robot according to the second embodiment. 図3に示すように、ロボット10は、センサ類11と、表示部12と、通信インタフェース部13と、制御部14とを有する。 As shown in FIG. 3, the robot 10 includes a sensor such 11, a display unit 12, a communication interface unit 13, a control unit 14. なお、ロボット10は、図3に示した機能部以外にも既知のサービスロボットが有する各種の機能部、例えば各種の入力デバイスや記憶デバイスの他、ロボット10が自走を行うための駆動部等を有するものとする。 Note that the robot 10, various functional portion having a known service robot in addition to functional units illustrated in FIG. 3, for example, various other input devices or storage devices, drive for the robot 10 performs self like It shall have the.

センサ類11は、音声、画像、温度や湿度などを検出する各種のセンサである。 Sensors 11 includes various sensors for detecting voice, image, such as temperature and humidity. 例えば、音声を検出するセンサの一例としては、マイク(microphone)を適用できる。 For example, as an example of a sensor for detecting a voice, it can be applied microphone (microphone). また、画像を検出するセンサの一例としては、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)などの撮像デバイスを適用できる。 As an example of a sensor for detecting an image is applicable to imaging devices such as CCD (Charge Coupled Device) or CMOS (Complementary Metal Oxide Semiconductor). これらの他にも、温度センサ、湿度センサや生体センサなどを適用することもできる。 In addition to these, it may be applied such as temperature sensor, a humidity sensor and a biological sensor. なお、センサ類11の出力は、後述のロボット用サービス提供アプリ15により収集される。 The output of the sensors 11 are collected by the robot service providing application 15 described below.

表示部12は、モニタ、ディスプレイやタッチパネルなどの表示デバイスである。 Display unit 12, a monitor, a display device such as a display or a touch panel. 一例としては、表示部12は、サーバ30からネットワーク20を介して受信した防災情報や気象情報などを表示することにより、情報サービスのインタフェースとして機能する。 As an example, the display unit 12 by displaying disaster prevention information and weather information received from the server 30 via the network 20, which functions as an interface for information services.

通信インタフェース部13は、ネットワーク20を介して接続される他装置、例えばサーバ30との間で通信を行うためのインタフェース(interface)である。 The communication interface unit 13, another apparatus connected via a network 20, for example interface for communicating with the server 30 (interface).

制御部14は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。 Control unit 14, for example, an electronic circuit such as ASIC (Application Specific Integrated Circuit) or FPGA (Field Programmable Gate Array) integrated circuit or a CPU (Central Processing Unit) or MPU, such as (Micro Processing Unit).

制御部14は、各種の処理手順を規定したプログラム、例えばOS(Operating System)、ロボット向けの通信制御プログラムやロボット用サービス提供アプリなどのプログラムや制御データを格納するための内部メモリを有する。 Control unit 14, a program that defines various processing procedures, such as OS (Operating System), has an internal memory for storing programs and control data such as a communication control program, the robot service providing application for the robot. 制御部14は、内部メモリを用いて種々の処理を実行する。 Control unit 14 performs various processes using the internal memory. 制御部14は、図3に示すように、ロボット用サービス提供アプリ15と、送信キュー16aと、受信キュー16bと、共有メモリ17と、HTTPロボットスレッド18とを有する。 Control unit 14, as shown in FIG. 3 includes a robot service providing application 15, a transmission queue 16a, a receive queue 16b, a shared memory 17, and a HTTP robot threads 18.

ロボット用サービス提供アプリ15は、ロボット10が特定のサービスを提供するためにインストールされたロボット用のアプリケーションである。 Service providing application 15 robot is an application for the installed robot for robot 10 to provide a particular service. 一例としては、ロボット用サービス提供アプリ15が情報サービスを提供するアプリである場合を想定する。 As an example, a case service providing application 15 robot is apps providing information services. この場合には、ロボット用サービス提供アプリ15は、定期時刻または指定時刻に防災情報及び/又は気象情報をサーバ30へ要求する電文を送信キュー16aへ格納する。 In this case, the service providing application 15 robot stores the message for requesting the disaster information and / or weather information on a regular time or a specified time to the server 30 to the transmission queue 16a. その後、サーバ30から防災情報及び/又は気象情報を表示用データとして受信すると、後述のレスポンス受信制御部18Acにより表示用データの受信イベントが通知される。 Then, when receiving the disaster information and / or weather information from the server 30 as display data, reception event of the display data is notified by the response reception control unit 18Ac described later. この受信イベントの通知を受け付けたことを契機に、ロボット用サービス提供アプリ15は、受信キュー16bから表示用データを取り出して防災情報及び/又は気象情報を表示部12へ表示させる。 In response to the acceptance notification of the reception event, the service providing application 15 robot takes out the display data from the receive queue 16b is displayed on the display unit 12 the disaster information and / or weather information.

送信キュー16aは、サーバ30へ送信するデータを保持するキューである。 Transmission queue 16a is a queue that holds the data to be transmitted to the server 30. この送信キュー16aには、ロボット用サービス提供アプリ15により生成されたデータがサーバ30へ通知される場合に格納される。 This transmission queue 16a, the data generated by the robot service providing application 15 is stored when it is notified to the server 30. また、受信キュー16bは、サーバ30から受信したデータを保持するキューである。 The reception queue 16b is a queue that holds the data received from the server 30. この受信キュー16bに格納されたデータは、ロボット用サービス提供アプリ15により使用される。 Data stored in the reception queue 16b is used by the robot service providing application 15. これら送信キュー16a及び受信キュー16bは、FIFO(First-In First-Out)などの方式でデータが入出力される。 These transmission queues 16a and receive queue 16b, the data in a manner such as FIFO (First-In First-Out) is input.

共有メモリ17は、各HTTPロボットスレッド18により共有されるメモリである。 Shared memory 17 is a memory shared by the HTTP robot thread 18. この共有メモリ17には、HTTPロボットスレッドごとにそのスレッドが上り用の通信路として機能しているか、あるいは下り用の通信路として機能しているかを示す通信方向を対応付けた共有データを記憶する。 The shared memory 17 stores the shared data that associates communication direction indicating whether the thread for each HTTP robot thread is functioning as a communication path for or down, and functions as a communication path for the uplink . なお、共有メモリ17には、RAM(Random Access Memory)を始め、フラッシュメモリ(flash memory)などの半導体メモリ素子を含む記憶デバイス全般を適用できる。 Incidentally, in the shared memory 17, including RAM (Random Access Memory), it can be applied storage devices in general including semiconductor memory devices such as flash memory (flash memory).

図4は、共有データの一例を示す図である。 Figure 4 is a diagram showing an example of the shared data. 図4に示す共有データは、HTTPロボットスレッド18Aが上り用の通信路として機能しており、HTTPロボットスレッド18Bが下り用の通信路として機能しており、また、HTTPロボットスレッド18Cが上り用の通信路として機能している場合を示す。 Shared data shown in FIG. 4 is HTTP robot thread 18A functions as a communication path for the uplink, and serves as the communication path for the downlink is HTTP robot thread 18B, addition, HTTP robot thread 18C is for uplink shows the case where functions as a communication path. なお、共有データは、制御部14で動作する各HTTPロボットスレッド18により、通信路の上りまたは下りが切り替えられる場合に更新される。 Note that shared data by each HTTP robot thread 18 that operates the control unit 14, are updated when uplink or downlink communication path is switched.

HTTPロボットスレッド18は、サーバ30との間でHTTPセッションを確立することによりロボット10及びサーバ30間の通信路を生成するスレッドである。 HTTP robot thread 18 is a thread that generates a communication path between the robot 10 and the server 30 by establishing a HTTP session with the server 30. このHTTPロボットスレッド18は、通信制御プログラムの開発者により設定された通信路の数のスレッドがロボット向けの通信制御プログラムにより生成される。 The HTTP robot thread 18, the number of threads of the channel set by the developer of the communication control program is generated by the communication control program for the robot. なお、ここでは、HTTPロボットスレッド18の数が変化しないものとして説明を行うが、ロボット向けの通信制御プログラムにより動的に変更されることとしてもかまわない。 Here, although a description assuming that the number of HTTP robot thread 18 does not change, it may be possible to be dynamically changed by the communication control program for the robot.

ここで、図3の例では、HTTPロボットスレッド18を2つ図示しているが、3つ以上のHTTPロボットスレッド18が動作している場合を想定しつつ、HTTPロボットスレッド18Aを例にとってHTTPロボットスレッド18の機能を説明する。 In the example of FIG. 3, it is illustrated two HTTP robot thread 18, while assuming that three or more HTTP robot thread 18 is operating, HTTP robot as an example HTTP robot thread 18A explaining the function of the thread 18. なお、HTTPロボットスレッド18A以外のHTTPロボットスレッド18、例えばHTTPロボットスレッド18Bが果たす機能も同様である。 Incidentally, HTTP robot threads other than HTTP robot thread 18A 18, for example, HTTP robot thread 18B functions performed versa.

HTTPロボットスレッド18Aは、図3に示すように、上り用スレッド判定部18Aaと、リクエスト送信制御部18Abと、レスポンス受信制御部18Acとを有する。 HTTP robot thread 18A, as shown in FIG. 3, with the uplink thread judging section 18Aa, a request transmission control unit 18Ab, and a response reception controller 18Ac.

上り用スレッド判定部18Aaは、共有メモリ17に記憶された共有データを用いて、上り用の通信路として機能する上り用スレッドの数が所定の閾値以上であるか否かを判定する処理部である。 The thread decision unit 18Aa uplink uses the shared data stored in the shared memory 17, the number of ascending threads that functions as a communication path for the uplink is at the processing unit that determines whether it is greater than the predetermined threshold value is there. ここで言う「上り用スレッド」とは、送信キュー16aにデータが格納されるのを待機しているHTTPロボットスレッド18のことを指す。 The "uplink thread" refers to HTTP robot thread 18 data in the transmission queue 16a is waiting to be stored.

これを説明すると、上り用スレッド判定部18Aaは、ロボット10の電源が起動された直後の初期状態または後述のレスポンス受信制御部18AcによりHTTPレスポンスの受信制御が行われた後に処理を起動する。 To explain this, ascending the thread decision unit 18Aa starts the processing after the reception control of the HTTP response is performed by the initial state or below the response reception control unit 18Ac immediately after the power supply of the robot 10 is activated. 上り用スレッド判定部18Aaは、共有メモリ17に記憶された共有データのうち通信方向が「上り」と書き込まれているスレッド数の集計値を上り用スレッド数として導出する。 The thread decision unit 18Aa uplink derives the aggregated value of the number of threads that communication direction among the shared data stored in the shared memory 17 is written as "upstream" as ascending threads. このとき、上り用スレッド判定部18Aaは、上り用スレッド数に自スレッドを含めて集計することとしてもよいし、また、含めずに集計することとしてもかまわない。 In this case, ascending the thread decision unit 18Aa may be as to aggregate including self thread to the thread number for the uplink, also may be possible to aggregate without including. そして、上り用スレッド判定部18Aaは、上り用スレッド数が閾値以上であるか否かを判定する。 Then, ascending the thread decision unit 18Aa determines whether the number of threads for the uplink is equal to or larger than the threshold.

このとき、上り用スレッド数が閾値以上である場合には、上り用スレッド判定部18Aaは、共有メモリ17に記憶された自スレッドに対応する通信方向のエントリを「下り」へ更新する。 At this time, when the number of threads for the uplink is equal to or larger than the threshold, the uplink thread judging section 18Aa updates the communication direction of the entry corresponding to the own thread stored in the shared memory 17 to "down". これにより、HTTPロボットスレッド18Aは、送信キュー16aにデータが格納されるのを待機する上り用スレッドとして機能するようになる。 Thus, HTTP robot thread 18A will function as ascending thread to wait for data to be stored in the transmission queue 16a. また、上り用スレッド数が閾値未満である場合には、上り用スレッド判定部18Aaは、共有メモリ17に記憶された自スレッドに対応する通信方向のエントリを「上り」へ更新する。 Further, when the number of threads for the uplink is less than the threshold value, ascending the thread decision unit 18Aa updates the communication direction of the entry corresponding to the own thread stored in the shared memory 17 to "up". これにより、HTTPロボットスレッド18Aは、HTTPサーバスレッド38Aへ空のHTTPリクエストを送信する下り用スレッドとして機能するようになる。 As a result, HTTP robot thread 18A is made to function as a downlink for a thread to send an empty HTTP request to the HTTP server thread 38A.

ここで、3つ以上の通信路を生成している場合、すなわち3組以上のHTTPロボットスレッド18が動作している場合には、一例として、(動作中のスレッドの数/2+1)=nを上り用スレッドの数と比較する閾値として用いる。 Here, when generating three or more communication paths, i.e. when three or more of the HTTP robot thread 18 is operating, as an example, a = n (number / 2 + 1 in operation thread) used as a threshold to be compared with the number of ascending threads. このように、全HTTPロボットスレッド18の過半数を閾値とすれば、HTTPロボットスレッド18の上り用スレッドと下り用スレッドとの割合をバランスよく維持させることができる。 Thus, if the threshold value a majority of all HTTP robot thread 18, can be maintained good balance ratio of a reverse thread and downlink thread of HTTP robot thread 18.

リクエスト送信制御部18Abは、HTTPリクエストの送信制御を行う処理部である。 Request transmission control unit 18Ab is a processing unit that performs transmission control of the HTTP request. このリクエスト送信制御部18Abは、上り用スレッド判定部18Aaによる判定結果に応じて自スレッドが上り用または下り用のいずれの通信路として機能するかを切り替える。 The request transmission control unit 18Ab switches whether the information thread in accordance with a determination result by ascending the thread decision unit 18Aa function as any communication path for ascending or descending.

これを説明すると、上り用スレッド判定部18Aaにより上り用スレッド数が閾値未満であると判定された場合には、上り用スレッドが不足していると推定できる。 To explain this, when it is determined that the number of threads for the uplink is less than the threshold value by ascending the thread decision unit 18Aa, it can be estimated that uplink thread is missing. このため、リクエスト送信制御部18Abは、自スレッドを上り用スレッドとして機能させる。 Therefore, the request transmission control unit 18Ab is to function itself thread as ascending thread. すなわち、リクエスト送信制御部18Abは、送信キュー16aにデータが入るまで待機してから送信キュー16aに格納されたデータをペイロードに埋め込んでHTTPリクエストをサーバ30のHTTPサーバスレッド38Aへ送信する。 That is, the request transmission control unit 18Ab transmits an HTTP request to the HTTP server thread 38A of server 30 embeds the data stored in the transmission queue 16a waits until the data enters the transmission queue 16a in the payload.

また、上り用スレッド判定部18Aaにより上り用スレッド数が閾値以上であると判定された場合には、上り用スレッドが十分に存在していると推定できる。 Further, when it is determined that the number of threads for the uplink is equal to or higher than the threshold by ascending the thread decision unit 18Aa, it can be estimated that ascending thread is sufficiently present. このため、リクエスト送信制御部18Abは、自スレッドを下り用スレッドとして機能させる。 Therefore, the request transmission control unit 18Ab is to function as a thread for the downlink self thread. すなわち、リクエスト送信制御部18Abは、HTTPサーバスレッド38でHTTPリクエストを保留状態とするために、ペイロードにデータがない空のHTTPリクエストをサーバ30のHTTPサーバスレッド38Aへ送信する。 That is, the request transmission control unit 18Ab, in order to hold the HTTP request in HTTP server threads 38, sends an empty HTTP request has no data payload to the HTTP server thread 38A of the server 30.

レスポンス受信制御部18Acは、HTTPレスポンスの受信制御を行う処理部である。 Response reception control unit 18Ac is a processing unit that performs reception control of the HTTP response. これを説明すると、レスポンス受信制御部18Acは、サーバ30のHTTPサーバスレッド38AからHTTPレスポンスを受信すると、HTTPレスポンスのペイロードにデータがあるか否かを判定する。 To explain this, the response reception control unit 18Ac determines, upon receiving the HTTP response from HTTP server thread 38A of the server 30, whether there is data in the payload of the HTTP response. このとき、ペイロードにデータがあった場合には、レスポンス受信制御部18Acは、ペイロードに埋め込まれているデータを受信キュー16bへ格納する。 At this time, when there is data in the payload, the response reception controller 18Ac stores data embedded in the payload to the receiving queue 16b. そして、レスポンス受信制御部18Acは、ペイロードに埋め込まれているデータの受信イベントをロボット用サービス提供アプリ15のハンドラに通知する。 The response reception control unit 18Ac notifies the received event data embedded in the payload handler robot service providing application 15. また、ペイロードにデータがなかった場合には、受信キュー16bへのデータの格納やハンドラへの通知を行わずにHTTPレスポンスの受信制御を終了する。 Further, when there is no data in the payload ends the reception control of the HTTP response without notification to the store and the handler data to the receive queue 16b.

[サーバ30の構成] [Configuration of Server 30]
次に、本実施例に係るサーバの構成について説明する。 Next, the configuration of a server according to the present embodiment. 図5は、実施例2に係るサーバの構成を示すブロック図である。 Figure 5 is a block diagram showing a configuration of a server according to the second embodiment. 図5に示すように、サーバ30は、表示部31と、コンテンツ記憶部32と、通信インタフェース部33と、制御部34とを有する。 As shown in FIG. 5, the server 30 includes a display unit 31, a content storage unit 32, a communication interface unit 33, a control unit 34. なお、サーバ30は、図5に示した機能部以外にも既知のサーバ装置が有する各種の機能部、例えば各種の入力デバイスや記憶デバイス等を有するものとする。 Note that the server 30 is assumed to have various functional portions having a known server device other than the function units shown in FIG. 5, for example, various types of input devices or storage devices.

表示部31は、モニタ、ディスプレイやタッチパネルなどの表示デバイスである。 Display unit 31, a monitor, a display device such as a display or a touch panel. 一例としては、表示部31は、ロボット10からネットワーク20を介して受信したロボット10のセンサ情報を表示することにより、ロボット10の周辺環境をモニタリングするモニタサービスのインタフェースとして機能する。 As an example, the display unit 31, by displaying the sensor information of the robot 10 received from the robot 10 through the network 20, which functions as an interface of the monitor service to monitor the surrounding environment of the robot 10. 他の一例としては、表示部31は、ロボット10からネットワーク20を介して受信した異常可否情報を表示することにより、ロボット10本体の状態を管理するメンテナンスサービスのインタフェースとして機能する。 As another example, the display unit 31, by displaying the abnormality permission information received from the robot 10 through the network 20, which functions as an interface of the maintenance service for managing the state of the robot 10 body.

コンテンツ記憶部32は、各種のコンテンツを記憶する記憶デバイスである。 Content storage unit 32 is a storage device for storing various contents. このコンテンツ記憶部32に記憶されるコンテンツは、予め登録されたコンテンツであってもよいし、後述のサーバ用サービス提供アプリ35により収集されたコンテンツ、例えば防災情報や気象情報であってもよい。 Content stored in the content storage unit 32 in advance may be a registered content, content that is collected by the server service providing application 35 described below, for example it may be a disaster prevention information and weather information. なお、コンテンツ記憶部32には、ハードディスク、光ディスクなどの記憶装置をはじめ、フラッシュメモリなどの半導体メモリ素子を含む記憶デバイス全般を適用できる。 Note that the content storage unit 32, a hard disk, a storage device such as an optical disk beginning, can be applied to storage devices in general including semiconductor memory devices such as flash memory.

通信インタフェース部33は、ネットワーク20を介して接続される他装置、例えばロボット10との間で通信を行うためのインタフェースである。 The communication interface unit 33, another apparatus connected via a network 20, for example an interface for communicating with the robot 10.

制御部34は、各種の処理手順を規定したプログラム、例えばOS(Operating System)、サーバ向けの通信制御プログラムやサーバ用サービス提供アプリなどのプログラムや制御データを格納するための内部メモリを有する。 Control unit 34 has a program that defines various procedures, such as OS (Operating System), an internal memory for storing programs and control data such as a communication control program, the server service providing application for servers. 制御部34は、内部メモリを用いて種々の処理を実行する。 Control unit 34 executes various processes using the internal memory. 制御部34は、図5に示すように、サーバ用サービス提供アプリ35と、受信キュー36aと、送信キュー36bと、共有メモリ37と、HTTPサーバスレッド38とを有する。 Control unit 34 includes, as shown in FIG. 5, the server service providing application 35, a receive queue 36a, a transmission queue 36b, a shared memory 37, and a HTTP server threads 38.

サーバ用サービス提供アプリ35は、ロボット10が特定のサービスを提供するためにインストールされたサーバ用のアプリケーションである。 Service providing application server 35 is an application for the installed server for the robot 10 to provide a particular service. 一例としては、サーバ用サービス提供アプリ35が情報サービスを提供するアプリである場合を想定する。 As an example, a case server service providing application 35 is an application that provides information services. この場合には、サーバ用サービス提供アプリ35は、ロボット10からの防災情報及び/又は気象情報の要求電文の受信イベントが後述のリクエスト受信制御部38Aaにより通知されるので、その要求電文を受信キュー36aから取り出す。 In this case, the server service providing application 35, the reception event request message of disaster information and / or weather information from the robot 10 is notified by the request reception control unit 38Aa described later, receives the request message queue take out from 36a. これを契機に、サーバ用サービス提供アプリ35は、コンテンツ記憶部32から読み出したり、また、外部装置からネットワーク20を介して収集したりすることにより、防災情報及び/又は気象情報を取得する。 Taking this opportunity, service providing application 35 is for the server, and reads from the content storage unit 32, also, by or collected via the network 20 from an external device, acquires disaster information and / or weather information. その後、サーバ用サービス提供アプリ35は、先に取得した防災情報及び/又は気象情報をロボット10で表示させるために加工処理を行って表示データを生成する。 Thereafter, the server service providing application 35 generates display data by performing processing for displaying the disaster information and / or weather information previously acquired by the robot 10. そして、サーバ用サービス提供アプリ35は、先に生成した表示データを送信キュー36bへ格納する。 Then, the server for the service providing application 35 stores display data generated earlier to the transmission queue 36b.

受信キュー36aは、ロボット10から受信したデータを保持するキューである。 Receive queue 36a is a queue that holds the data received from the robot 10. この受信キュー36aに格納されたデータは、サーバ用サービス提供アプリ35により使用される。 Data stored in the reception queue 36a is used by the server for the service provider application 35. また、送信キュー36bは、ロボット10へ送信するデータを保持するキューである。 The transmission queue 36b is a queue that holds the data to be transmitted to the robot 10. この送信キュー36bには、サーバ用サービス提供アプリ35により生成されたデータがロボット10へ通知される場合に格納される。 This transmission queue 36b, the data generated by the server service providing application 35 is stored when it is notified to the robot 10. これら受信キュー36a及び送信キュー36bは、FIFO(First-In First-Out)などの方式でデータが入出力される。 These receive queue 36a and the transmission queue 36b, the data is input and output in a manner such as FIFO (First-In First-Out).

共有メモリ37は、各HTTPサーバスレッド38により共有されるメモリである。 Shared memory 37 is a memory shared by the HTTP server thread 38. この共有メモリ37には、HTTPサーバスレッドごとにそのスレッドが上り用の通信路として機能しているか、あるいは下り用の通信路として機能しているかを示す通信方向を対応付けた共有データを記憶する。 The shared memory 37 stores the shared data that associates communication direction indicating whether the thread for each HTTP server thread is functioning as a communication path for or down, and functions as a communication path for the uplink . なお、共有メモリ37には、RAMを始め、フラッシュメモリなどの半導体メモリ素子を含む記憶デバイス全般を適用できる。 Incidentally, in the shared memory 37, including the RAM, it can be applied to storage devices in general including semiconductor memory devices such as flash memory.

図6は、共有データの一例を示す図である。 Figure 6 is a diagram showing an example of the shared data. 図6に示す共有データは、HTTPサーバスレッド38Aが上り用の通信路として機能しており、HTTPサーバスレッド38Bが下り用の通信路として機能しており、また、HTTPサーバスレッド38Cが上り用の通信路として機能している場合を示す。 Shared data shown in Figure 6 serves as the communication path for the HTTP server thread 38A uplink, and serves as the communication path for the downlink is HTTP server threads 38B, also, the HTTP server thread 38C is for uplink shows the case where functions as a communication path. なお、共有データは、制御部34で動作する各HTTPサーバスレッド38により、通信路の上りまたは下りが切り替えられる場合に更新される。 Note that shared data by each HTTP server thread 38 that operates the control unit 34, are updated when uplink or downlink communication path is switched.

HTTPサーバスレッド38は、ロボット10との間でHTTPセッションを確立することによりロボット10及びサーバ30間の通信路を生成するスレッドである。 HTTP server thread 38 is a thread that generates a communication path between the robot 10 and the server 30 by establishing a HTTP session with the robot 10. このHTTPサーバスレッド38は、通信制御プログラムの開発者により設定された通信路の数のスレッドがサーバ向けの通信制御プログラムにより生成される。 The HTTP server thread 38, the number of threads of the channel set by the developer of the communication control program is generated by the communication control program for the server. なお、ここでは、HTTPサーバスレッド38の数が変化しないものとして説明を行うが、サーバ向けの通信制御プログラムにより動的に変更されることとしてもかまわない。 Here, although a description assuming that the number of HTTP server threads 38 does not change, it may be possible to be dynamically changed by the communication control program for the server.

ここで、図5の例では、HTTPサーバスレッド38を2つ図示しているが、3つ以上のHTTPサーバスレッド38が動作している場合を想定しつつ、HTTPサーバスレッド38Aを例にとってHTTPサーバスレッド38の機能を説明する。 Here, in the example of FIG. 5, it is illustrated two HTTP server threads 38, while assuming that three or more HTTP server thread 38 is operating, the HTTP server as an example HTTP server threads 38A explaining the function of the thread 38. なお、HTTPサーバスレッド38A以外のHTTPサーバスレッド38、例えばHTTPサーバスレッド38Bが果たす機能も同様である。 Incidentally, HTTP Servers threads other than HTTP server threads 38A 38, for example, HTTP server threads 38B functions performed versa.

HTTPサーバスレッド38Aは、図5に示すように、リクエスト受信制御部38Aaと、下り用スレッド判定部38Abと、レスポンス送信制御部38Acとを有する。 HTTP server thread 38A, as shown in FIG. 5, has a request reception controller 38Aa, and the downlink thread judging section 38Ab, and a response transmission controller 38ac.

リクエスト受信制御部38Aaは、HTTPリクエストの受信制御を行う処理部である。 Request reception control unit 38Aa is a processing unit that performs reception control of the HTTP request. これを説明すると、リクエスト受信制御部38Aaは、ロボット10のHTTPロボットスレッド18AからHTTPリクエストを受信すると、HTTPリクエストのペイロードにデータがあるか否かを判定する。 To explain this, the request reception control unit 38Aa determines when receiving an HTTP request from the HTTP robot thread 18A of the robot 10, whether there is data in the payload of the HTTP request. このとき、ペイロードにデータがあった場合には、リクエスト受信制御部38Aaは、ペイロードに埋め込まれているデータを受信キュー36aへ格納する。 At this time, when there is data in the payload, the request reception control unit 38Aa, stores data embedded in the payload to the receiving queue 36a. そして、リクエスト受信制御部38Aaは、ペイロードに埋め込まれているデータの受信イベントをサーバ用サービス提供アプリ35のハンドラに通知する。 The request reception control unit 38Aa notifies the received event data embedded in the payload handler server service providing application 35. また、ペイロードにデータがなかった場合には、受信キュー36aへのデータの格納やハンドラへの通知を行わずにHTTPリクエストの受信制御を終了する。 Further, when there is no data in the payload ends the reception control of HTTP requests without notification to the store and the handler data to the receive queue 36a.

下り用スレッド判定部38Abは、共有メモリ37に記憶された共有データを用いて、下り用の通信路として機能する下り用スレッドの数が所定の閾値以上であるか否かを判定する処理部である。 The thread decision unit 38Ab for the downlink uses the shared data stored in the shared memory 37, the number of downlink thread that functions as a communication path for the downlink is in processing unit that determines whether it is greater than the predetermined threshold value is there. ここで言う「下り用スレッド」とは、送信キュー36bにデータが格納されるのを待機しているHTTPサーバスレッド38のことを指す。 Here, the term "down for thread" refers to the HTTP server thread 38 in which the data in the transmission queue 36b are waiting to be stored.

これを説明すると、下り用スレッド判定部38Abは、リクエスト受信制御部38AaによりHTTPリクエストの受信制御が行われた後に処理を起動する。 To explain this, downlink thread judging section 38Ab starts the processing after the reception control of HTTP request is made by the request reception control unit 38Aa. 下り用スレッド判定部38Abは、共有メモリ37に記憶された共有データのうち通信方向が「下り」と書き込まれているスレッド数の集計値を下り用スレッド数として導出する。 The thread decision unit 38Ab for the downlink is derived as threads for the downlink aggregate value of the number of threads that communication direction among the shared data stored in the shared memory 37 is written as "downstream". このとき、下り用スレッド判定部38Abは、下り用スレッド数に自スレッドを含めて集計することとしてもよいし、また、含めずに集計することとしてもかまわない。 In this case, the downlink thread judging section 38Ab may be as to aggregate including self thread to the thread number for the downlink, also may be possible to aggregate without including. そして、下り用スレッド判定部38Abは、下り用スレッド数が閾値以上であるか否かを判定する。 The downlink thread judging section 38Ab determines whether the number of threads for the downlink is equal to or larger than the threshold.

このとき、下り用スレッド数が閾値以上である場合には、下り用スレッド判定部38Abは、共有メモリ37に記憶された自スレッドに対応する通信方向のエントリを「上り」へ更新する。 At this time, when the number of threads for the downlink is equal to or larger than the threshold, the downlink thread judging section 38Ab updates the communication direction of the entry corresponding to the own thread stored in the shared memory 37 to "up". これにより、HTTPサーバスレッド38Aは、HTTPロボットスレッド18Aへ空のHTTPレスポンスを送信する上り用スレッドとして機能するようになる。 Thus, HTTP server threads 38A will function as ascending thread sending an empty HTTP response to the HTTP robot thread 18A. また、下り用スレッド数が閾値未満である場合には、下り用スレッド判定部38Abは、共有メモリ37に記憶された自スレッドに対応する通信方向のエントリを「下り」へ更新する。 Further, when the number of threads for the downlink is less than the threshold value, the downlink thread judging section 38Ab updates the communication direction of the entry corresponding to the own thread stored in the shared memory 37 to "down". これにより、HTTPサーバスレッド38Aは、送信キュー36bにデータが格納されるのを待機する下り用スレッドとして機能するようになる。 Thus, HTTP Servers thread 38A will function as downlink thread to wait for data to be stored in the transmission queue 36b.

ここで、3つ以上の通信路を生成している場合、すなわち3組以上のHTTPサーバスレッド38が動作している場合には、一例として、(動作中のスレッドの数/2+1)=nを下り用スレッドの数と比較する閾値として用いる。 Here, when generating three or more communication paths, that is, when the HTTP server threads 38 of the three or more is operating, as an example, a = n (number / 2 + 1 in operation thread) used as a threshold to be compared with the number of downlink thread. このように、全HTTPサーバスレッド38の過半数を閾値とすれば、HTTPサーバスレッド38における上り用スレッドと下り用スレッドとの割合をバランスよく維持させることができる。 Thus, if the threshold value a majority of all HTTP server threads 38, can be maintained good balance ratio of a reverse thread and downlink thread in HTTP server threads 38.

レスポンス送信制御部38Acは、HTTPレスポンスの送信制御を行う処理部である。 Response transmission control section 38Ac is a processing unit that performs transmission control of the HTTP response. このレスポンス送信制御部38Acは、下り用スレッド判定部38Abによる判定結果に応じて自スレッドが上り用または下り用のいずれの通信路として機能するかを切り替える。 The response transmission control section 38Ac the own thread in accordance with a determination result by the downlink thread judging section 38Ab switches whether to function as any communication path for ascending or descending.

これを説明すると、下り用スレッド判定部38Abにより下り用スレッド数が閾値未満であると判定された場合には、下り用スレッドが不足していると推定できる。 To explain this, when the number of threads for the downlink by downlink thread judging section 38Ab is determined to be less than the threshold, it can be estimated that the downlink thread is missing. このため、レスポンス送信制御部38Acは、自スレッドを下り用スレッドとして機能させる。 Therefore, response transmission control section 38Ac is to function as a thread for the downlink self thread. すなわち、レスポンス送信制御部38Acは、送信キュー36bにデータが入るまで待機してから送信キュー36bに格納されたデータをペイロードに埋め込んでHTTPレスポンスをロボット10のHTTPロボットスレッド18Aへ送信する。 That is, the response transmission control section 38Ac transmits an HTTP response to the HTTP robot thread 18A of the robot 10 by embedding the data stored in the transmission queue 36b waits until the data enters the transmission queue 36b to the payload.

また、下り用スレッド判定部38Abにより下り用スレッド数が閾値以上であると判定された場合には、下り用スレッドが十分に存在していると推定できる。 Further, when the number of threads for the downlink by downlink thread judging section 38Ab is determined to be equal to or larger than the threshold value, it can be estimated that the downlink thread is sufficiently present. このため、レスポンス送信制御部38Acは、自スレッドを上り用スレッドとして機能させる。 Therefore, response transmission control section 38Ac is to function itself thread as ascending thread. すなわち、レスポンス送信制御部38Acは、HTTPロボットスレッド18からのHTTPリクエストを待機するために、ペイロードにデータがない空のHTTPレスポンスをロボット10のHTTPロボットスレッド18Aへ送信する。 That is, the response transmission control section 38Ac, in order to wait for HTTP requests from HTTP robot thread 18, and transmits empty HTTP response has no data payload to HTTP robot thread 18A of the robot 10.

[処理の流れ] Process Flow
次に、本実施例に係るクライアントサーバシステムの処理の流れを説明する。 Next, the flow of processing in a client-server system according to this embodiment. なお、ここでは、(1)HTTPロボットスレッド18に実行される処理フローを説明してから、(2)HTTPサーバスレッド38に実行される処理フローを説明する。 Here, (1) after describing the processing flow to be executed HTTP robot thread 18, the processing flow executed in (2) HTTP server threads 38.

(1)HTTPロボットスレッドに実行される処理フロー 図7は、実施例2に係るHTTPロボットスレッドに実行される処理の手順を示すフローチャートである。 (1) processing flow is executed HTTP robot thread 7 is a flowchart showing a procedure of processing executed HTTP robot thread according to the second embodiment. この処理は、ロボット10の電源が起動された直後の初期状態または後述のレスポンス受信制御部18AcによりHTTPレスポンスの受信制御が行われた後に起動される。 This process is started after the reception control of the HTTP response is performed by the initial state or below the response reception control unit 18Ac immediately after the power supply of the robot 10 is activated.

図7に示すように、上り用スレッド判定部18Aaは、送信キュー16aにデータが格納されるのを待機している上り用スレッド数が閾値以上であるか否かを判定する(ステップS101)。 As shown in FIG. 7, the thread decision unit 18Aa uplink determines whether the number of threads for the uplink is equal to or larger than the threshold data in the transmission queue 16a is waiting to be stored (step S101).

ここで、上り用スレッド数が閾値未満である場合(ステップS101否定)には、上り用スレッド判定部18Aaは、共有メモリ17に記憶された自スレッドに対応する通信方向のエントリを「上り」へ更新する(ステップS102)。 Here, if the number of threads for the uplink is less than the threshold (No at Step S101), ascending the thread decision unit 18Aa includes the communication direction of the entry corresponding to the own thread stored in the shared memory 17 to the "uplink" update (step S102).

その後、リクエスト送信制御部18Abは、送信キュー16aにデータが入るまで待機する(ステップS103)。 Then, the request transmission control unit 18Ab waits until the data enters the transmission queue 16a (step S103). そして、リクエスト送信制御部18Abは、送信キュー16aに格納されたデータをペイロードに埋め込んでHTTPリクエストをサーバ30のHTTPサーバスレッド38Aへ送信する(ステップS104)。 The request transmission control unit 18Ab transmits an HTTP request to the HTTP server thread 38A of server 30 embeds the data stored in the transmission queue 16a data in the payload (step S104).

一方、上り用スレッド数が閾値以上である場合(ステップS101肯定)には、上り用スレッド判定部18Aaは、共有メモリ17に記憶された自スレッドに対応する通信方向のエントリを「下り」へ更新する(ステップS105)。 On the other hand, updates if the number of threads for the uplink is equal to or larger than the threshold (Yes at Step S101), ascending the thread decision unit 18Aa includes the communication direction of the entry corresponding to the own thread stored in the shared memory 17 to "down" (step S105).

そして、リクエスト送信制御部18Abは、HTTPサーバスレッド38でHTTPリクエストを保留状態とするために、ペイロードにデータがない空のHTTPリクエストをサーバ30のHTTPサーバスレッド38Aへ送信する(ステップS106)。 The request transmission control unit 18Ab, to the HTTP request on hold in HTTP server threads 38, sends an empty HTTP request has no data payload to the HTTP server thread 38A of the server 30 (step S106).

その後、サーバ30のHTTPサーバスレッド38AからHTTPレスポンスを受信すると(ステップS107)、レスポンス受信制御部18Acは、HTTPレスポンスのペイロードにデータがあるか否かを判定する(ステップS108)。 Then, upon receiving the HTTP response from HTTP server thread 38A of the server 30 (step S107), the response reception control unit 18Ac determines whether there is data in the payload of the HTTP response (step S108).

このとき、ペイロードにデータがあった場合(ステップS108肯定)には、レスポンス受信制御部18Acは、ペイロードに埋め込まれているデータを受信キュー16bへ格納する(ステップS109)。 At this time, if there is data in the payload (step S108: Yes), the response reception control unit 18Ac stores data embedded in the payload to the receiving queue 16b (step S109). そして、レスポンス受信制御部18Acは、ペイロードに埋め込まれているデータの受信イベントをロボット用サービス提供アプリ15のハンドラに通知する(ステップS110)。 The response reception control unit 18Ac notifies the received event data embedded in the payload handler robot service providing application 15 (step S110). その後、上記のステップS101に戻り、上記のステップ101〜ステップS110までの処理を繰り返し行う。 Then, the process returns to step S101 described above to repeat the processing up to the above steps 101 to S110.

また、ペイロードにデータがなかった場合(ステップS108否定)には、受信キュー16bへのデータの格納やハンドラへの通知を行わずに上記のステップS101に戻る。 Further, if there is no data in the payload (step S108, No), it returns to step S101 without notifying the storage or handler of the data to the receive queue 16b. そして、上記のステップ101〜ステップS110までの処理を繰り返し行う。 Then, repeating the process until the above steps 101 to S110.

なお、上記のステップS102及びステップS105の処理は、ステップS107の処理が実行されるまでであればステップの順番を入れ替えたり、並列処理するなど任意のタイミングで実行できる。 The processing of steps S102 and S105 are or change the order of the steps as long as up to the process of step S107 is executed, it can be executed at any timing such as parallel processing. また、上記のステップS109及びステップS110の処理は、互いに順番を入れ替えたり、並列処理したりすることができる。 The processing of step S109 and step S110, or change the order together, or can be parallel processing.

(2)HTTPサーバスレッドに実行される処理フロー 図8は、実施例2に係るHTTPロボットスレッドに実行される処理の手順を示すフローチャートである。 (2) the process flow diagram is executed HTTP server thread 8 is a flowchart showing a procedure of processing executed HTTP robot thread according to the second embodiment. この処理は、サーバ30の電源がオン状態になり、かつロボット10のHTTPロボットスレッド18AからHTTPリクエストを受信した場合に起動される。 This process, power to the server 30 is turned on, and is activated when it receives a HTTP request from the HTTP robot thread 18A of the robot 10.

図8に示すように、ロボット10のHTTPロボットスレッド18AからHTTPリクエストを受信すると(ステップS301)、リクエスト受信制御部38Aaは、HTTPリクエストのペイロードにデータがあるか否かを判定する(ステップS302)。 As shown in FIG. 8, upon receiving the HTTP request from the HTTP robot thread 18A of the robot 10 (step S301), the request reception control unit 38Aa determines whether there is data in the payload of the HTTP request (step S302) .

このとき、ペイロードにデータがあった場合(ステップS302肯定)には、リクエスト受信制御部38Aaは、ペイロードに埋め込まれているデータを受信キュー36aへ格納する(ステップS303)。 At this time, if there is data in the payload (step S302: Yes), the request reception control unit 38Aa stores the data embedded in the payload to the receiving queue 36a (step S303). そして、リクエスト受信制御部38Aaは、ペイロードに埋め込まれているデータの受信イベントをサーバ用サービス提供アプリ35のハンドラに通知する(ステップS304)。 The request reception control unit 38Aa notifies the received event data embedded in the payload handler server service providing application 35 (step S304).

一方、ペイロードにデータがなかった場合(ステップS302否定)には、受信キュー36aへのデータの格納やハンドラへの通知を行わずにそのままステップS305に移行する。 On the other hand, if there is no data in the payload (step S302 negative), it proceeds to step S305 without notifying the storage or handler of the data to the receive queue 36a.

ここで、下り用スレッド判定部38Abは、送信キュー36bにデータが格納されるのを待機している下り用スレッド数が閾値以上であるか否かを判定する(ステップS305)。 Here, the downlink thread judging section 38Ab determines whether the number of threads for the downlink waiting is equal to or larger than the threshold for data in the transmission queue 36b is stored (step S305).

このとき、下り用スレッド数が閾値以上である場合(ステップS305肯定)には、下り用スレッド判定部38Abは、共有メモリ37に記憶された自スレッドに対応する通信方向のエントリを「上り」へ更新する(ステップS306)。 At this time, when the number of threads for the downlink is equal to or larger than the threshold (step S305: Yes), the downlink thread judging section 38Ab has a communication direction of the entry corresponding to the own thread stored in the shared memory 37 to the "uplink" update (step S306).

そして、レスポンス送信制御部38Acは、HTTPロボットスレッド18からのHTTPリクエストを待機するために、ペイロードにデータがない空のHTTPレスポンスをロボット10のHTTPロボットスレッド18Aへ送信する(ステップS307)。 Then, the response transmission control section 38Ac, in order to wait for HTTP requests from HTTP robot thread 18, and transmits empty HTTP response has no data payload to HTTP robot thread 18A of the robot 10 (step S307). その後、上記のステップS301に戻り、上記のステップ301〜ステップS306までの処理を繰り返し行う。 Thereafter, the flow returns to step S301 described above to repeat the processing up to the above steps 301 S306.

一方、下り用スレッド数が閾値未満である場合(ステップS305否定)には、下り用スレッド判定部38Abは、共有メモリ37に記憶された自スレッドに対応する通信方向のエントリを「下り」へ更新する(ステップS308)。 On the other hand, updated if the number of threads for the downlink is less than the threshold (step S305 negative), the downlink thread judging section 38Ab has a communication direction of the entry corresponding to the own thread stored in the shared memory 37 to "down" (step S308).

レスポンス送信制御部38Acは、送信キュー36bにデータが入るまで待機する(ステップS309)。 Response transmission control section 38Ac waits until the data enters the transmission queue 36b (step S309). そして、レスポンス送信制御部38Acは、送信キュー36bに格納されたデータをペイロードに埋め込んでHTTPレスポンスをロボット10のHTTPロボットスレッド18Aへ送信する(ステップS310)。 Then, the response transmission control section 38Ac transmits an HTTP response to the HTTP robot thread 18A of the robot 10 embed stored in the transmission queue 36b data in the payload (step S310). その後、上記のステップS301に戻り、上記のステップ301〜ステップS310までの処理を繰り返し行う。 Thereafter, the flow returns to step S301 described above to repeat the processing up to the above step 301 step S310.

なお、上記のステップS306の処理は、ステップS307の処理と順番を入れ替えたり、並列処理したりすることができる。 The processing of step S306 is or swap processing and order of steps S307, or can processed in parallel. さらに、ステップS308の処理は、ステップS309またはステップS310の処理と順番を入れ替えたり、並列処理したりすることができる。 Furthermore, the process of step S308, the process and or change the order of steps S309 or step S310, the can or parallel processing. また、上記のステップS303及びステップS304の処理は、互いに順番を入れ替えたり、並列処理したりすることができる。 The processing of step S303 and step S304 is, or change the order together, or can be parallel processing.

[実施例2の効果] Effects of Second Embodiment
上述してきたように、本実施例に係るロボット10及びサーバ30は、上り用の通信路として機能させるスレッド及び下り用の通信路として機能させるスレッドを機動的に変更できる。 As described above, the robot 10 and the server 30 according to this embodiment can flexibly change the thread to function as the communication path for the thread and downstream to function as a communication channel for the uplink. このため、本実施例に係るロボット10及びサーバ30では、上り用の通信路と下り用の通信路とを固定する場合に比べて、上り通信で発生する空のレスポンスの送信回数及び下り通信で発生する空のリクエストの送信回数を低減できる。 Therefore, the robot 10 and the server 30 according to the present embodiment, as compared with a case of fixing a communication channel for communication channel and the downlink for the uplink at the transmission frequency and downlink communication empty responses that occur in uplink communication it is possible to reduce the sky of the number of times of transmission of the request to occur. また、本実施例に係るロボット10及びサーバ30では、スレッドを機動的に変更しても、各通信路として機能させるスレッドを適切な数に保つことができる。 Further, the robot 10 and the server 30 according to the present embodiment, even if flexibly change the thread, it is possible to keep the threads to function as the communication channel to the appropriate number. それゆえ、本実施例に係るロボット10及びサーバ30によれば、通信路を有効活用することが可能になる。 Therefore, according to the robot 10 and the server 30 according to the present embodiment, it is possible to effectively utilize a communication channel. さらに、本実施例に係るロボット10及びサーバ30では、通信路の数を増減させる場合に上り専用の通信路及び下り専用の通信路の2つを1組として拡張または縮退せずとも、通信路の数をよりきめ細やかに増減させることができる。 Further, the robot 10 and the server 30 according to the present embodiment, expansion or without degenerating the two communication paths and downlink dedicated communication channel of the uplink dedicated as a set when increasing or decreasing the number of communication paths, a communication path the number can be a cause more attentive to increase or decrease the.

さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。 Now, have been described embodiments relates to a device disclosed, the present invention other than the embodiments described above, but that may be implemented in various different forms. そこで、以下では、本発明に含まれる他の実施例を説明する。 In the following, a description will be given of another embodiment included in the present invention.

[応用例] [Application Example]
上記の実施例2では、上り用スレッド判定部18Aa及び下り用スレッド判定部38Abが用いる閾値を過半数とする場合を説明したが、開示の装置はこれに限定されるものではない。 In the above second embodiment, a case has been described that the majority of the threshold value used by the ascending thread judging section 18Aa and the downlink thread judging section 38Ab, the disclosed device is not limited thereto. 例えば、ロボット用サービス提供アプリ15またはサーバ用サービス提供アプリ35によって生成されるデータの生成状態もしくは送信キュー16aまたは送信キュー36bに格納されているデータの格納量に応じて、閾値を変更してもよい。 For example, depending on the storage amount of data stored in a generation state or a transmission queue 16a or transmission queue 36b of data generated by the robot service providing application 15 or the server service providing application 35, changing the threshold value good.

一例としては、ロボット用サービス提供アプリ15またはサーバ用サービス提供アプリ35によって生成されるデータが多くなるほど閾値が高くなるように変更できる。 As an example may be modified such that the threshold as data generated by the robot service providing application 15 or the server service providing application 35 is large becomes high. 他の一例としては、送信キュー16aまたは送信キュー36bに格納されているデータの格納量、例えばデータサイズやメッセージ数が多くなるほど閾値が高くなるように変更できる。 As another example, it changes the transmission queue 16a or stored amount of data stored in the transmission queue 36b, for example, as the threshold as the number of the data size and the message is large becomes high. これによって、上り通信または下り通信の需要に応じてスレッドが上りスレッドとして機能するか、あるいは下りスレッドとして機能するのかを機動的に変更できる。 This allows flexibly changed or threads to function as either or downlink thread functions as uplink threads on demand of uplink communication or downlink communication.

[適用例] Application Example]
また、上記の実施例2では、サーバ30との間でHTTPセッションを確立することによりロボット10及びサーバ30間の通信路を生成する処理単位をスレッドとしたが、必ずしもスレッドである必要はなく、プロセスであってもかまわない。 In Example 2 above, although the process unit that produces the communication path between the robot 10 and the server 30 by establishing a HTTP session between the server 30 and the thread, need not necessarily be threaded, a process may be. この場合には、プロセス間で通信を行うことにより共有情報に相当する情報を各プロセスが収集することが好ましい。 In this case, the information corresponding to the shared information by communicating between processes it is preferred that each process collects.

また、上記の実施例2では、ロボット10及びサーバ30を有するクライアントサーバシステムにおいてロボットサービスを提供する場合を例示したが、開示の装置がこれに限定されるものではなく、一般のクライアントサーバシステムに適用できる。 Further, in the second embodiment, a case has been exemplified to provide a robot service in a client-server system having a robot 10 and the server 30, not the device disclosed is not limited thereto, generally the client-server system It can be applied. 一例としては、クライアント端末は、パーソナルコンピュータ、携帯電話、PHSやPDAなどの携帯情報端末であっても開示の装置を同様に適用できる。 As an example, the client terminal, a personal computer, a cellular phone, can be similarly applied to a portable information device disclosed be a terminal such as a PHS or PDA.

また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。 The components of each device illustrated in the drawings is not necessarily to be physically configured as illustrated. すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。 In other words, the specific mode of distribution and integration of each apparatus is not limited to the illustrated one, depending on various loads or use conditions, dispersed or functionally or physically in arbitrary units It may be configured by integration. 例えば、ロボット向けの通信制御プログラム及びロボット用サービス提供アプリの機能を統合して1つのソフトウェアとしてもかまわない。 For example, it may be one software to integrate the functions of the communication control program and service provision application robot for robot. また、サーバ向けの通信制御プログラム及びサーバ用サービス提供アプリの機能を統合して1つのソフトウェアとしてもかまわない。 It also integrates the functions of the communication control program and a server service providing application for servers may be as a single software.

[通信制御プログラム] [Communication control program]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。 Also, various processes described in the above embodiments may be realized by executing a prepared program by a computer such as a personal computer or a workstation. そこで、以下では、図9を用いて、上記の実施例と同様の機能を有する通信制御プログラムを実行するコンピュータの一例について説明する。 In the following, with reference to FIG. 9, illustrating an example of a computer that executes a communication control program having the same functions as in the above embodiment. なお、図9は、実施例3に係る通信制御プログラムを実行するコンピュータの一例について説明するための図である。 Incidentally, FIG. 9 is a diagram for explaining an example of a computer that executes a communication control program according to the third embodiment.

図9に示すように、実施例Xにおけるコンピュータ100は、操作部110aと、マイク110bと、スピーカ110cと、ディスプレイ120と、通信部130とを有する。 As shown in FIG. 9, the computer 100 in the embodiment X includes an operating unit 110a, a microphone 110b, a speaker 110c, a display 120, a communication unit 130. さらに、このコンピュータ100は、CPU150と、ROM160と、HDD(Hard Disk Drive)170と、RAM(Random Access Memory)180と有する。 Furthermore, the computer 100 includes a CPU 150, a ROM 160, a HDD (Hard Disk Drive) 170, a RAM (Random Access Memory) 180. これら110〜180の各部はバス140を介して接続される。 These units 110 to 180 are connected via a bus 140.

ROM160には、上記の実施例2で示したHTTPロボットスレッド18Aと、HTTPロボットスレッド18Bと同様の機能を発揮する通信制御プログラムが予め記憶される。 The ROM 160, the HTTP robot thread 18A shown in Example 2 above, the communication control program having the same function as HTTP robot thread 18B is stored in advance. つまり、ROM160には、図9に示すように、通信制御プログラム161が記憶される。 That is, the ROM 160, as shown in FIG. 9, the communication control program 161 is stored. この通信制御プログラム161については、図3に示したロボットの各構成要素と同様、適宜統合又は分離しても良い。 This communication control program 161, as with the components of the robot illustrated in FIG. 3, may be appropriately integrated or separated. なお、ここでは、ロボット向けの通信制御プログラムを動作させる場合を例示するが、サーバ向けの通信制御プログラムを動作させることもできる。 Here, illustrate the case of operating the communication control program for the robot, it is also possible to operate the communication control program for the server. また、RAM160に格納される各データは、常に全てのデータがRAM160に格納される必要はなく、処理に必要なデータのみがRAM160に格納されれば良い。 Each data stored in the RAM 160 is not always necessary that all the data is stored in the RAM 160, only the data necessary for processing may be stored in the RAM 160.

そして、CPU150が、この通信制御プログラム161をROM160から読み出して実行する。 Then, CPU 150 reads and executes the communication control program 161 from the ROM 160. これによって、CPU150は、図9に示すように、通信制御プログラム161については、通信制御プロセス151として機能するようになる。 Thus, CPU 150, as shown in FIG. 9, the communication control program 161, and functions as a communication control process 151. この通信制御プロセス151は、予め設定された数または動作中に動的に決定される数のHTTPロボットプロセスを起動させつつ動作できる。 The communication control process 151 can operate while starting the number of HTTP robotic process is dynamically determined during a preset number or operation. 図9に示す例では、HTTPロボットプロセス151a及びHTTPロボットプロセス151bの2つのプロセスが動作する場合を例示している。 In the example shown in FIG. 9 illustrates the case where two processes of HTTP robotic process 151a and HTTP robotic process 151b is operated. 各プロセス151a〜151bは、図3に示した、HTTPロボットスレッド18Aと、HTTPロボットスレッド18Bとにそれぞれ対応する。 Each process 151a~151b are shown in FIG. 3, the HTTP robot threads 18A, correspond to the HTTP robot threads 18B. なお、CPU150上で仮想的に実現される各処理部は、常に全ての処理部がCPU150上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。 Each processing unit which is virtually implemented on CPU 150 are always all processing units need not operate on CPU 150, only the processing unit required for the processing need be virtually realized.

そして、HDD170には、共有データ170aが設けられる。 Then, the HDD 170, shared data 170a is provided. なお、この共有データ170aは、図3に示した共有メモリ17に記憶されるデータに対応する。 Note that the shared data 170a corresponds to the data stored in the shared memory 17 shown in FIG.

そして、CPU150は、共有データ170aを読み出してRAM180に格納する。 Then, CPU 150 stores in the RAM180 reads shared data 170a. さらに、CPU150は、RAM180に格納された共有データ180aを更新しながら、通信制御プログラムを実行する。 Further, CPU 150, while updating the shared data 180a stored in the RAM 180, executes a communication control program.

なお、上記の通信制御プログラムについては、必ずしも最初からHDD170やROM160に記憶させておく必要はない。 Incidentally, for the above communication control program is not necessarily stored from the beginning HDD170 or ROM 160. 例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。 For example, a flexible disk 100, a so-called FD, CD-ROM, DVD disk, a magneto-optical disk, and stores the programs in the "portable physical medium" such as an IC card. そして、コンピュータ100がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。 Then, the computer 100 may be executed by acquiring the programs from the portable physical medium. また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ100がこれらから各プログラムを取得して実行するようにしてもよい。 Also, a public line, Internet, LAN, may be stored for each program, etc., etc. another computer or server device connected to the computer 100 via the WAN, so that the computer 100 retrieves and executes the programs from these it may be.

1 情報処理装置 1a 判定部 1b スレッド制御部 10 ロボット 11 センサ類 12 表示部 13 通信インタフェース部 14 制御部 15 ロボット用サービス提供アプリ 16a 送信キュー 16b 受信キュー 17 共有メモリ 18A,18B HTTPロボットスレッド 18Aa,18Ba 上り用スレッド判定部 18Ab,18Bb リクエスト送信制御部 18Ac,18Bc レスポンス受信制御部 20 ネットワーク 30 サーバ 31 表示部 32 コンテンツ記憶部 33 通信インタフェース部 34 制御部 35 サーバ用サービス提供アプリ 36a 受信キュー 36b 送信キュー 37 共有メモリ 38A,38B HTTPサーバスレッド 38Aa,38Ba リクエスト受信制御部 38Ab,38Bb 下り用スレッド判定部 38Ac, 1 the information processing apparatus 1a determination section 1b thread control unit 10 robot 11 sensors 12 display unit 13 network interface unit 14 control unit 15 robot service providing application 16a transmit queue 16b reception queue 17 shared memory 18A, 18B HTTP robot thread 18Aa, 18Ba ascending the thread decision unit 18Ab, 18Bb request transmission control unit 18Ac, 18Bc response reception control unit 20 network 30 server 31 display unit 32 content storage unit 33 service for the communication interface unit 34 control unit 35 server provides application 36a receive queue 36b transmit queue 37 shared memory 38A, 38B HTTP server threads 38Aa, 38Ba request reception control section 38Ab, 38Bb down thread judging section 38ac, 38Bc レスポンス送信制御部 38Bc response transmission control unit

Claims (4)

  1. クライアントサーバ環境下にある自装置の通信先となる他方の装置との間で双方向通信を行うために動作される複数のスレッドのうち、前記他方の装置へ送信するデータを保持する送信キューにデータが格納されるのを待機しているスレッドの数が所定の閾値以上であるか否かを判定する判定部と、 Among a plurality of threads operating in order to perform two-way communication with the communication destination becomes the other device of its own device under a client-server environment, the transmission queue that holds the data to be transmitted to the other device the number of threads that data is waiting to be stored and a determination unit to or greater than a predetermined threshold value,
    前記判定部によって前記スレッドの数が所定の閾値以上であると判定された場合には、空のリクエストもしくは空のレスポンスを送信するようにスレッドを機能させ、前記スレッドの数が所定の閾値未満であると判定された場合には、前記送信キューにデータが格納されるまで待機した後に当該送信キューに格納されたデータを通信データの本体として埋め込んでリクエストまたはレスポンスを送信するようにスレッドを機能させるスレッド制御部と を有することを特徴とする情報処理装置。 Wherein when the number of the threads by the determining unit determines that it is greater than the predetermined threshold value, to function threads to send an empty request or empty response, the number of the threads is less than a predetermined threshold value If it is determined that there is to function threads to send a request or response embed the data stored in the transmission queue after waiting until the data is stored in the transmission queue as the body of the communication data the information processing apparatus characterized by having a thread control unit.
  2. 前記送信キューにデータを格納するアプリケーションによって生成されるデータの生成状態もしくは前記送信キューに格納されているデータの格納量に応じて、前記判定部によって用いられる前記閾値を変更する閾値変更部をさらに有することを特徴とする請求項1に記載の情報処理装置。 In response to said stored amount of data stored in a generation state or said transmission queue of data generated by the applications that store data in the transmission queue, the threshold value changing unit for changing the threshold value used by the determination unit further the information processing apparatus according to claim 1, characterized in that it has.
  3. クライアントとして機能する第1の装置と、サーバとして機能する第2の装置とに用いられる通信制御方法であって、 A first device functioning as a client, a communication control method used in the second device functioning as a server,
    前記第1の装置が、 It said first device,
    前記第2の装置との間で双方向通信を行うために動作される複数のスレッドのうち、前記第2の装置へ送信するデータを保持する送信キューにデータが格納されるのを待機しているスレッドの数が所定の閾値以上であるか否かを判定する判定ステップと、 Among a plurality of threads operating in order to perform two-way communication with the second device, waiting for data in the transmission queue that holds the data to be transmitted to the second device is stored a determining step of determining the number of threads to or greater than a predetermined threshold are,
    前記判定ステップによって前記スレッドの数が所定の閾値以上であると判定された場合には、空のリクエストを送信するようにスレッドを機能させ、前記スレッドの数が所定の閾値未満であると判定された場合には、前記送信キューにデータが格納されるまで待機した後に当該送信キューに格納されたデータを通信データの本体として埋め込んでリクエストを送信するようにスレッドを機能させるスレッド制御ステップとを実行し、 If the number of threads by the determination step is determined to be above a predetermined threshold value, to function threads to send an empty request, the number of the threads is determined to be less than a predetermined threshold value If the the execution of the thread control step of function threads to send the request embeds the data stored in the transmission queue after waiting until the data is stored in the transmission queue as the body of the communication data and,
    前記第2の装置が、 It said second device,
    前記第1の装置との間で双方向通信を行うために動作される複数のスレッドのうち、前記第1の装置へ送信するデータを保持する送信キューにデータが格納されるのを待機しているスレッドの数が所定の閾値以上であるか否かを判定する判定ステップと、 Among a plurality of threads operating in order to perform two-way communication between said first device, waiting for data in the transmission queue that holds the data to be transmitted to the first device is stored a determining step of determining the number of threads to or greater than a predetermined threshold are,
    前記判定ステップによって前記スレッドの数が所定の閾値以上であると判定された場合には、空のレスポンスを送信するようにスレッドを機能させ、前記スレッドの数が所定の閾値未満であると判定された場合には、前記送信キューにデータが格納されるまで待機した後に当該送信キューに格納されたデータを通信データの本体として埋め込んでレスポンスを送信するようにスレッドを機能させるスレッド制御ステップと を実行することを特徴とする通信制御方法。 If the number of threads by the determination step is determined to be above a predetermined threshold value, to function threads to send an empty response, the number of the threads is determined to be less than a predetermined threshold value If the the execution of the thread control step of function threads to send a response by embedding the data stored in the transmission queue after waiting until the data is stored in the transmission queue as the body of the communication data communication control method characterized by.
  4. コンピュータに、 On the computer,
    クライアントサーバ環境下にある自装置の通信先となる他方の装置との間で双方向通信を行うために動作される複数のスレッドのうち、前記他方の装置へ送信するデータを保持する送信キューにデータが格納されるのを待機しているスレッドの数が所定の閾値以上であるか否かを判定する判定手順と、 Among a plurality of threads operating in order to perform two-way communication with the communication destination becomes the other device of its own device under a client-server environment, the transmission queue that holds the data to be transmitted to the other device the number of threads that data is waiting to be stored and the determining step equal to or larger than a predetermined threshold value,
    前記判定手順によって前記スレッドの数が所定の閾値以上であると判定された場合には、空のリクエストもしくは空のレスポンスを送信するようにスレッドを機能させ、前記スレッドの数が所定の閾値未満であると判定された場合には、前記送信キューにデータが格納されるまで待機した後に当該送信キューに格納されたデータを通信データの本体として埋め込んでリクエストまたはレスポンスを送信するようにスレッドを機能させるスレッド制御手順と を実行させることを特徴とする通信制御プログラム。 Wherein when the number of the threads by the determining step is determined to be above a predetermined threshold value, to function threads to send empty request or an empty response, the number of the threads is less than a predetermined threshold value If it is determined that there is to function threads to send a request or response embed the data stored in the transmission queue after waiting until the data is stored in the transmission queue as the body of the communication data a communication control program, characterized in that to execute a thread control procedures.
JP2010079207A 2010-03-30 2010-03-30 The information processing apparatus, communication control method and communication control program Active JP5429003B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2010079207A JP5429003B2 (en) 2010-03-30 2010-03-30 The information processing apparatus, communication control method and communication control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010079207A JP5429003B2 (en) 2010-03-30 2010-03-30 The information processing apparatus, communication control method and communication control program

Publications (2)

Publication Number Publication Date
JP2011210144A true JP2011210144A (en) 2011-10-20
JP5429003B2 true JP5429003B2 (en) 2014-02-26

Family

ID=44941104

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010079207A Active JP5429003B2 (en) 2010-03-30 2010-03-30 The information processing apparatus, communication control method and communication control program

Country Status (1)

Country Link
JP (1) JP5429003B2 (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6289461B1 (en) * 1998-06-09 2001-09-11 Placeware, Inc. Bi-directional process-to-process byte stream protocol
JP2003058439A (en) * 2001-08-15 2003-02-28 Toshiba Corp Pseudo asynchronous bidirectional communication system in unidirectional request response type communication, communication method, server device, client device and client program
US20050179936A1 (en) * 2004-02-13 2005-08-18 Microsoft Corporation Scalable print spooler
JP4977069B2 (en) * 2008-03-19 2012-07-18 株式会社野村総合研究所 Mail delivery speed adjustment system and program

Also Published As

Publication number Publication date Type
JP2011210144A (en) 2011-10-20 application

Similar Documents

Publication Publication Date Title
US6477143B1 (en) Method and apparatus for packet network congestion avoidance and control
US20040024861A1 (en) Network load balancing
US20040054996A1 (en) Dynamic TCP partitioning
US20020159396A1 (en) Adaptive TCP delayed acknowledgment
JP2004280717A (en) Remote control monitoring system and information communicating method used therefor
US20070127381A1 (en) Congestion control access gateway and congestion control method for the same
US20110296011A1 (en) Shared heartbeat service for managed devices
JP2000020423A (en) Real-time information distributing method
US20100180037A1 (en) Method and apparatus for optimizing and prioritizing the creation of a large number of VPN tunnels
JP2006191337A (en) Gateway device for transferring message between buses and network system using the device
US20050249230A1 (en) Systems and methods for implementing an acknowledgement mechanism for transmission of a real-time data stream
US20140040451A1 (en) Transparent middlebox with graceful connection entry and exit
CN102291808A (en) A network middleware communication method, a communication device and a communication device
US20060173860A1 (en) Information processing system, server apparatus and client terminal apparatus
US20130201817A1 (en) Fault detection and mitigation for in-vehicle lan network management
US20120110194A1 (en) Data communication method and information processing device
JP2003018181A (en) Communication system, communication method and control program
US20090228591A1 (en) Information processing apparatus, information processing apparatus control method, and computer product
US20060262738A1 (en) Administering acknowledgment messages in the transmission control protocol
JP2004282429A (en) Station device
JP2003229809A (en) Method for propagating message and system thereof
JP2006340099A (en) Gateway unit
JP2006201970A (en) Relay control program and its recording medium, replay control method and relay controller
JP2009232379A (en) Communication path securing method, device and program when wired lan fails
CN101594308A (en) Method and system for transmitting message

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20131031

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20131105

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131118

R150 Certificate of patent (=grant) or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150