JP7051396B2 - 通信装置、通信方法、およびプログラム - Google Patents

通信装置、通信方法、およびプログラム Download PDF

Info

Publication number
JP7051396B2
JP7051396B2 JP2017229878A JP2017229878A JP7051396B2 JP 7051396 B2 JP7051396 B2 JP 7051396B2 JP 2017229878 A JP2017229878 A JP 2017229878A JP 2017229878 A JP2017229878 A JP 2017229878A JP 7051396 B2 JP7051396 B2 JP 7051396B2
Authority
JP
Japan
Prior art keywords
response
communication device
http request
http
identification information
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
JP2017229878A
Other languages
English (en)
Other versions
JP2019101594A (ja
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2017229878A priority Critical patent/JP7051396B2/ja
Priority to US16/201,355 priority patent/US11303692B2/en
Publication of JP2019101594A publication Critical patent/JP2019101594A/ja
Application granted granted Critical
Publication of JP7051396B2 publication Critical patent/JP7051396B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/55Push-based network services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N23/661Transmitting camera control signals through networks, e.g. control via the Internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Description

本発明は、複数の通信装置の間でリクエストとレスポンスの送受信を行うシステムに関する。
ネットワーク上でのサービス提供形態の一つとして、サーバがクライアントから送信された要求を受け付け、要求に応じた処理を実行するものがある。サーバとクライアントとの間での通信には、HTTP(Hypertext Transfer Protocol)の技術が利用されることがある。例えば、クライアントはサーバにHTTPリクエストを送信することで処理の要求を行い、サーバは要求に応じた処理を実行した後にHTTPレスポンスを送信することでクライアントに処理の完了を通知する。
HTTPリクエストにより要求される処理の内容によっては、サーバによるリクエストの受信からレスポンスの送信までの時間が長くなることがある。特許文献1には、サーバが長い時間を要する処理を実行している間にクライアントから当該処理の結果を要求するリクエストを受信した場合に、当該処理が完了する前に、一時的にリクエストに応じられない旨のレスポンスを送信することが開示されている。
特開2013-210803号公報
サーバによるリクエストの受信からレスポンスの送信までの時間が長くなる場合、クライアントは、サーバが処理を実行中なのかリクエストがサーバに正しく受信されていないのかを判断できないままレスポンスを長時間待ち続けることになりうる。そのため、サーバがリクエストを正しく受信できていなかった場合には、クライアントが無駄に待機し続けることにより、システムにおける処理の遅延が大きくなる虞がある。また、リクエストがサーバに受信されていないと判断してクライアントがリクエストを再送した際に、実際にはサーバが処理を実行中である場合、リクエストに応じた処理をサーバが繰り返し実行してしまうことによりサーバの処理負荷が大きくなる。
一方、特許文献1に記載の技術では、クライアントはサーバに処理の結果を要求するリクエストを送信することで、サーバにおいてその処理が実行中であるか否かを確認することができる。しかしながら、サーバにおいて処理が完了したことを早く判断するためには、クライアントは、当該処理の完了を示すレスポンスを受信するまでリクエストを何度も送り直すことになりうる。そのため、クライアントの処理負荷が大きくなる虞がある。
本発明は、クライアントの処理負荷の増大を抑制しつつ、クライアントが送信したリクエストがサーバにより受信されたことと、当該リクエストに関する処理がサーバにより完了されたことを、クライアントが早く判断できるようにすることを目的とする。
上記の課題を解決するため、本発明に係る通信装置は、例えば以下の構成を有する。すなわち、HTTP(Hypertext Transfer Protocol)に従う通信を行う通信装置であって、前記通信装置に対して処理を要求するためのHTTPリクエストであって、要求される処理を識別するための識別情報を含むHTTPリクエストを、他の通信装置から受信する受信手段と、前記受信手段により前記HTTPリクエストが受信されてから、前記HTTPリクエストにより要求される処理の完了を示す第1のレスポンスを送信するまでの間に、第2のレスポンスを前記他の通信装置へ送信するかを、前記HTTPリクエストに含まれる前記識別情報に応じて決定する決定手段と、前記決定手段による決定に応じて、前記第1のレスポンス及び前記第2のレスポンスを前記他の通信装置へ送信する送信手段とを有し、前記送信手段がデータをサーバ装置へ送信する処理を実行している最中に前記データの送信を要求するための前記HTTPリクエストを受信した場合、前記送信手段は前記第2のレスポンスを送信し、前記サーバ装置への前記データの送信が完了した後に、前記データの格納先URLを含む前記第1のレスポンスを送信する。
本発明によれば、クライアントの処理負荷の増大を抑制しつつ、クライアントが送信したリクエストがサーバにより受信されたことと、当該リクエストに関する処理がサーバにより完了されたことを、クライアントが早く判断できるようになる。
通信システム10の構成例を示す図である。 サーバ装置110の機能構成例を示す図である。 クライアント装置120の機能構成例を示す図である。 サーバ装置110の動作について説明するためのフローチャートである。 情報保持部216が保持する情報の一例を示す図である。 クライアント装置120の動作について説明するためのフローチャートである。 サーバ装置110とクライアント装置120との間の通信に関するシーケンスの一例を示す図である。 サーバ装置110とクライアント装置120との間の通信に関するシーケンスの一例を示す図である。 サーバ装置110とクライアント装置120との間の通信に関するシーケンスの一例を示す図である。 通信システム20の構成例を示す図である。 サーバ装置110の動作について説明するためのフローチャートである。 情報保持部216が保持する情報の一例を示す図である。 通信システム20における通信に関するシーケンスの一例を示す図である。 サーバ装置110のハードウェア構成例について説明するための図である。
[システム構成]
以下、本発明の実施形態について、図面を参照して説明する。図1は、本実施形態に係る通信システム10の構成を示す図である。本実施形態の通信システム10においては、サーバ装置110とクライアント装置120とがネットワーク100を介して有線または無線で接続され、相互に通信を行って、例えば静止画や動画等のコンテンツデータや各種操作指示のコマンドなどを送受信する。なお、図1に示す通信システム10においては1台のサーバ装置110と1台のクライアント装置120とが接続されているが、接続形態はこれに限らない。例えば、1台のサーバ装置110と複数のクライアント装置120とが接続されていてもよいし、複数のサーバ装置110と1台のクライアント装置120とが接続されていてもよい。また、複数のサーバ装置110と複数のクライアント装置120とが接続されていてもよい。
ネットワーク100はサーバ装置110とクライアント装置120が接続するネットワークである。本実施形態におけるネットワーク100は、例えばインターネット、WAN(Wide Area Network)、LAN(Local Area Network)、又はそれらの組み合わせにより実現される。なお、サーバ装置110とクライアント装置120は、ネットワーク100を介さずに、直接接続されても良い。直接接続は例えば無線アドホックネットワークなどを用いて実現される。
サーバ装置110はHTTP(Hypertext Transfer Protocol)におけるサーバとして動作する。すなわちサーバ装置110は、クライアント装置120からHTTPリクエストを受信し、受信したリクエストに応じてクライアント装置120にHTTPレスポンスを送信する。クライアント装置120はHTTPにおけるクライアントとして動作する。すなわちクライアント装置120は、サーバ装置110へHTTPリクエストを送信し、サーバ装置から送信されたHTTPレスポンスを受信する。サーバ装置110及びクライアント装置120は具体的には、デジタルカメラ、ネットワークカメラ、プリンタ、複合機、テレビ、プロジェクタ、携帯電話、スマートフォン、及びPCなどである。例えば、クライアント装置120としてのスマートフォンが、サーバ装置110としてのネットワークカメラに、パン/チルトの制御や動画の撮影などの処理をHTTPリクエストにより要求する。サーバ装置110としてのネットワークカメラはHTTPリクエストを受信すると、要求に応じた処理を実行し、処理の完了を示すHTTPレスポンスをクライアント装置120としてのスマートフォンに送信する。このHTTPレスポンスを受信することで、スマートフォンは処理の完了を知ることができ、例えば処理結果に応じた次の処理の要求を行うことができる。ただし、サーバ装置110及びクライアント装置120の形態はこれらに限定されない。
ここで、サーバ装置110により実行される処理が長い時間を要する場合、クライアント装置120はリクエストを送信してからレスポンスを受信するまで長時間待機することになる。このようにレスポンスが長時間受信できない場合にクライアント装置120は、サーバ装置110が処理を実行中であるのかリクエストが正しくサーバ装置110に届いていないのかを判断できない。そこでクライアント装置120は、リクエストがサーバ装置110に正しく届いたか否かを確認するための問い合わせを新たにサーバ装置110に送信することで、リクエストの受信状況を確認することができる。しかしながらこの方法では、クライアント装置120が余分に通信を行うことになり、クライアント装置120の処理負荷やネットワーク100の負荷が大きくなりうる。特に問い合わせの送信のためにユーザ操作が必要である場合には、ユーザの手間も増加する可能性がある。
そこで本実施形態において、サーバ装置110は、HTTPリクエストを受信してから、そのHTTPリクエストにより要求される処理の完了を示すレスポンスを送信するまでの間に、暫定レスポンスをクライアント装置120へ送信する。これにより、サーバ装置110におけるリクエストの受信状況をクライアント装置120が容易に判断できるようになる。リクエストがサーバ装置110により受信され処理が実行中であるということを判断できれば、クライアント装置120は、新たに問い合わせを送信することなく処理の完了を示すレスポンスを待機し、効率的な通信が実現できる。また、リクエストがサーバ装置110により受信されていないということを判断できれば、クライアント装置120は、新たに問い合わせを送信することなくHTTPリクエストを再送し、サーバ装置110が処理を開始するまでの遅延を低減できる。
[装置構成]
図14は、サーバ装置110のハードウェア構成を示すブロック図である。なお、クライアント装置120も、サーバ装置110と同様の構成である。サーバ装置110は、CPU201、ROM202、RAM203、補助記憶装置204、表示部205、操作部206、通信部207、及びバス208を有する。
CPU201は、ROM202やRAM203に格納されているコンピュータプログラムやデータを用いてサーバ装置110の全体を制御する。ROM202は、変更を必要としないプログラムやパラメータを格納する。RAM203は、補助記憶装置204から供給されるプログラムやデータ、及び通信部207を介して外部から供給されるデータなどを一時記憶する。補助記憶装置204は、例えばハードディスクドライブ等で構成され、静止画や動画などのコンテンツデータを記憶する。
表示部205は、例えば液晶ディスプレイやLED等で構成され、ユーザがサーバ装置110を操作するためのGUI(Graphical User Interface)やエラー情報などを表示する。操作部206は、例えばキーボードやマウス、タッチパネル等で構成され、ユーザによる操作を受けて各種の指示をCPU201に入力する。通信部207は、クライアント装置120などの外部の装置と通信を行う。サーバ装置110が外部の装置と有線で接続される場合には、例えばLANケーブル等が通信部207に接続される。また、サーバ装置110が外部の装置と無線通信する機能を有する場合、通信部207はアンテナ等を備える。バス208は、中継装置101の各部を繋いで情報を伝達する。
なお、本実施形態ではCPU201がプログラムを実行することで通信部207を介したサーバ装置110と外部の装置との通信を制御するが、サーバ装置110と外部の装置との通信の少なくとも一部を通信部207がハードウェア処理により制御してもよい。また、本実施形態では表示部205と操作部206はサーバ装置110の内部に存在するが、表示部205及び操作部206の少なくとも一方がサーバ装置110の外部に別の装置として存在していてもよい。この場合、CPU201が、表示部205を制御する表示制御部、及び操作部206を制御する操作制御部として動作する。また、サーバ装置110は図2に示す構成要素以外の構成要素を有していてもよい。例えば、サーバ装置110がネットワークカメラである場合、サーバ装置110はレンズや撮像センサにより構成される不図示の撮像部を有していてもよい。
図2は、サーバ装置110の機能構成を示す図である。図2に示すサーバ装置110の各機能部は、サーバ装置110のCPU201がROM202やRAM203に格納されているプログラムを実行し、補助記憶装置204や通信部207などを制御することで実現される。リクエスト受信部211は、クライアント装置120から送信されるリクエストを受信する。リクエスト判定部212は、リクエスト受信部211により受信されたリクエストに、情報保持部216が保持する所定の識別情報が含まれているかを判定する。識別情報の詳細については図5等を用いて後述する。処理部213は、リクエスト受信部211により受信されたリクエストにより要求される処理など、サーバ装置110が有する機能に応じた各種の処理を実行する。暫定レスポンス送信部214は、リクエスト受信部211により受信されたリクエストに応じて、暫定レスポンスを送信する。完了レスポンス送信部215は、リクエスト受信部211により受信されたリクエストに応じた処理の完了を示す完了レスポンスを送信する。情報保持部216は、所定の識別情報を予め取得し保持する。
図3は、クライアント装置120の機能構成を示す図である。図3に示すクライアント装置120の各機能部は、クライアント装置120のCPU201がROM202やRAM203に格納されているプログラムを実行し、補助記憶装置204や通信部207などを制御することで実現される。リクエスト送信部321は、サーバ装置110へHTTPリクエストを送信する。レスポンス受信部322は、リクエスト送信部321により送信されたリクエストに応じてサーバ装置110から送信されるレスポンスを受信する。レスポンス判定部323は、レスポンス受信部322により受信されたレスポンスが暫定レスポンスか否かを判定する。
[動作フロー]
次に、サーバ装置110及びクライアント装置120の動作フローについて説明する。図4は、クライアント装置120とのHTTP通信における、サーバ装置110の動作を説明するためのフローチャートである。図4に示す処理は、サーバ装置110のCPU201がROM202に格納されたプログラムをRAM203に展開して実行することで実現される。ただし、以下で説明する処理の少なくとも一部が、CPU201とは異なる専用のハードウェアにより実現されてもよい。図4に示す処理は、サーバ装置110とクライアント装置120との間でHTTPコネクションなどの接続が確立されたタイミングで開始され、サーバ装置110がクライアント装置120からHTTPリクエストを受信するたびに実行される。ただし図4の処理の開始タイミングはこれに限定されない。
S411においてリクエスト受信部211は、クライアント装置120から、サーバ装置110に対して処理を要求するためのHTTPリクエストを受信する。ここで受信されるHTTPリクエストには、要求される処理を識別するための識別情報が含まれる。S412においてリクエスト判定部212は、S411において受信されたHTTPリクエストを解析し、HTTPリクエストに含まれる識別情報と情報保持部216が保持している所定の識別情報とが合致するかを判定する。具体的には、HTTPリクエストが所定のURL(Uniform Resource Locator)とメソッドを示す情報を含んでいれば、識別情報は合致すると判定され(S412でYES)、S414へ進む。S414へ進む場合は、以下で説明するように、サーバ装置110からクライアント装置120へ暫定レスポンスが送信されるフローとなる。一方、HTTPリクエストが所定のURLとメソッドを示す情報を含んでいなければ、識別情報は合致しないと判定され(S412でNO)、S413へ進む。S413へ進む場合は、以下で説明するように、サーバ装置110からクライアント装置120へ暫定レスポンスが送信されないフローとなる。所定の識別情報の詳細については図5を用いて後述する。
本実施形態において、所定のURLとメソッドを示す情報を含むHTTPリクエストは、長い時間を要する処理を要求するためのリクエストである。長い時間を要する処理とは例えば、サーバ装置110が有する撮影部による静止画の連続撮影処理、動画の撮影処理、撮影された画像の変換処理、及び撮影部による撮影の方向(パン及びチルト)又はズーム率を変更する処理などである。
サーバ装置110は、長い時間を要する処理を要求するための識別情報を含むHTTPリクエストを受信した場合には、以降の処理において暫定レスポンスをクライアント装置120へ送信することで、リクエストの受信をクライアント装置120に通知する。一方、サーバ装置110が短い時間で完了可能な処理を要求するための識別情報を含むHTTPリクエストを受信した場合には、処理の完了を示すレスポンスをクライアント装置120が長時間待ち続けることにならない。そのため、サーバ装置110は暫定レスポンスを送信しない。このように、サーバ装置110は、暫定レスポンスをクライアント装置120へ送信するか否かを、受信したHTTPリクエストに含まれる識別情報に応じて決定する。これにより、サーバ装置110が受信したすべてのHTTPリクエストに応じて暫定レスポンスを送信する場合と比較して、サーバ装置110の処理負荷やネットワーク100における通信データ量を低減することができる。
なお、サーバ装置110が暫定レスポンスを送信するか否かを決定するための基準は、受信したHTTPリクエストに含まれる識別情報と情報保持部216が保持する識別情報とが合致するか否かに限らない。例えばサーバ装置110は、識別情報が合致しない場合であっても、サーバ装置110が他の処理を実行中であるなどの理由により完了レスポンスが遅れることが見込まれる場合には、暫定レスポンスを送信すると決定してもよい。また例えば、識別情報が合致する場合であっても、要求された処理をすでに実行済みであるなどの理由により完了レスポンスを直ちに送信できる場合には、暫定レスポンスを送信しないと決定してもよい。
S413において処理部213は、クライアント装置120から受信したリクエストにより要求される処理を実施する。S418において完了レスポンス送信部215は、要求された処理の完了を示すHTTPレスポンスをクライアント装置120へ送信する。なお、リクエストにより要求される処理がレスポンスを送信する処理のみである場合には、S413のステップは省略されS418においてレスポンスが送信される。S418の処理が実行されると、図4の処理を終了する。このように、サーバ装置110は、暫定レスポンスをクライアント装置120へ送信しないと決定した場合には、暫定レスポンスを送信することなく完了レスポンスをクライアント装置120へ送信する。そのため、暫定レスポンスの送信に係るサーバ装置110の処理負荷を削減しつつ、クライアント装置120はHTTPリクエストがサーバ装置110により処理されたことを完了レスポンスの受信により知ることができる。
S414において暫定レスポンス送信部214は、S411におけるHTTPリクエストの受信に応じた暫定レスポンスをクライアント装置120へ送信する。暫定レスポンスは例えば、ステータスコードが100 ContinueであるHTTPレスポンスである。ただし、暫定レスポンスの内容はこれに限らない。S415において処理部213は、クライアント装置120から受信したリクエストにより要求される処理を開始する。なお、S414とS415の順番は逆転していてもよい。
S416において完了レスポンス送信部215は、S415で開始した処理の完了まで待機する。なお、HTTPリクエストにより要求された処理が完了する前に、サーバ装置110とクライアント装置120との間における通信セッションがアライブではないと判定された場合、処理部213は実行中の処理を中断してもよい。通信セッションがアライブではないと判断される場合とは、例えばTCP(Transmission Control Protocol)のコネクションが切断された場合などである。また、要求された処理が完了する前に、クライアント装置120がサーバ装置110へ、送信済みのリクエストを取り消す要求を送信した場合にも、処理部213は実行中の処理を中断してもよい。
S417にて完了レスポンス送信部215は、クライアント装置120から受信したリクエストに応じた処理の完了を示す完了レスポンスをクライアント装置120へ送信する。完了レスポンスは、例えば、ステータスコードが200 OKであるHTTPレスポンスである。なお、完了レスポンスには、処理の完了を示す情報に加えて、処理結果を示す情報などが含まれていてもよい。また、完了レスポンスの内容はこれに限らず、例えばリクエストの内容やサーバ装置110の状態、及び処理結果などに応じて異なるステータスコードを含むレスポンスが完了レスポンスとして送信されてもよい。また、サーバ装置110が要求された処理を途中で中断した場合には、例えば406 Not Acceptableや408 Request Timeoutなどのステータスコードを含むエラーレスポンスが完了レスポンスの代わりに送信される。以上により、図4の処理が終了する。
ここで、S412における判定処理に関連する、情報保持部216が保持する所定の識別情報について、図5を用いて説明する。本実施形態において、クライアント装置120から送信されるHTTPリクエストには、そのHTTPリクエストのメソッドを示す情報と、そのHTTPリクエストにより要求される処理の内容を特定するためのURLとが含まれる。情報保持部216は、HTTPリクエストに含まれ得るURLとメソッドを示す情報のうち、所定のURLとHTTPリクエストのメソッドを示す情報の組を、所定の識別情報として保持する。ただしこれに限らず、識別情報はURL又はメソッドの何れか一方のみで表されていてもよいし、URLの代わりにURI(Uniform Resource Identifier)などが用いられてもよい。また識別情報はこの他の形式の情報であってもよく、HTTPリクエストにより要求される処理の種別や内容を識別するための情報であればよい。
エントリ501の識別情報は、http://xxx/takePicというURLと、POSTのメソッドを示す情報で表現される。すなわち、S412において解析されるHTTPリクエストが、POSTメソッドのリクエストであり、且つhttp://xxx/takePicというURLを含むリクエストである場合には、S412の判定はYESとなる。なお、エントリ501の識別情報は、写真の連続撮影を意味する。また、HTTPリクエストに含まれるURLには、末尾にクエリ情報が記載されていてもよい。例えば、クライアント装置120から送信されるHTTPリクエストが、サーバ装置110による5枚の写真の連続撮影を要求するリクエストである場合、HTTPリクエストにはhttp://xxx/takePic?num=5というURLが含まれる。この場合も、HTTPリクエストはエントリ501の識別情報と合致する情報を含むものと判定される。
エントリ502の識別情報は、サーバ装置110が有する撮像部の光学ズームを要求するためのリクエストに対応する。例えば、200%の光学ズームを要求するためのHTTPリクエストには、http://xxx/zoom?rate=200というURLと、POSTメソッドを示す情報が含まれる。エントリ503は、サーバ装置110による動画の録画を要求するためのリクエストに対応する。例えば、10秒間の動画録画を要求するためのHTTPリクエストには、http://xxx/rec?time=10というURLと、POSTメソッドを示す情報が含まれる。
本実施形態において、情報保持部216が保持する所定の識別情報は、所定の時間長より長い時間を要する処理に対応する識別情報である。具体的には、サーバ装置110は、所定の時間長を指定するユーザによる操作やクライアント装置からの指示を受け付け、サーバ装置110が実行可能な処理のうち指定された時間長より長い時間を要する処理に対応する識別情報を情報保持部216に保持する。ただし、情報保持部216が保持する所定の識別情報の決定方法はこれに限らない。例えば、ユーザ操作やクライアント装置からの指示により処理の内容や識別情報そのものが指定され、サーバ装置110は指定に応じた識別情報を情報保持部216に保持してもよい。また、サーバ装置110が自装置の動作モードや実行中の処理の内容に基づいて、情報保持部216に保持する情報を自動で決定及び更新してもよい。図5に示す所定の識別情報の例は何れもメソッドがPOSTとなっているが、これに限らず、PUTやNOTIFYなどのメソッドに対応する識別情報が情報保持部216に保持されていてもよい。
次に、クライアント装置120の動作フローについて、図6を用いて説明する。図6に示す処理は、クライアント装置120のCPU201がROM202に格納されたプログラムをRAM203に展開して実行することで実現される。ただし、以下で説明する処理の少なくとも一部が、CPU201とは異なる専用のハードウェアにより実現されてもよい。図6に示す処理は、サーバ装置110とクライアント装置120との間でHTTPコネクションなどの接続が確立されたタイミングで開始され、クライアント装置120からサーバ装置110へHTTPリクエストを送信すべきイベントが発生する度に実行される。ただし図6の処理の開始タイミングはこれに限定されない。
S621においてリクエスト送信部321は、サーバ装置110へHTTPリクエストを送信する。S622においてレスポンス受信部322は、サーバ装置110からのレスポンスを受信する。なお、レスポンスを受信したクライアント装置120は、クライアント装置120を操作するユーザに対し、サーバ装置110からレスポンスを受信したこと、即ちHTTPリクエストがサーバ装置110により受信されたことを、表示や音により通知してもよい。S623においてレスポンス判定部323は、S622において受信したレスポンスが暫定レスポンスであるかを判定する。例えば、受信したレスポンスのステータスコードが100 Continueであれば、S623の判定はYESとなり、S624へ進む。一方、受信したレスポンスのステータスコードが100 Continueでなければ、図6の処理を終了する。
S624においてレスポンス受信部322は、サーバ装置110から完了レスポンスを受信するまで待機する。S625においてレスポンス受信部322は、サーバ装置110から送信された完了レスポンスを受信する。なお、サーバ装置110から完了レスポンスの代わりにエラーレスポンスが送信された場合には、S625においてレスポンス受信部322はエラーレスポンスを受信する。以上により図6処理が終了する。
[通信シーケンス]
図7は、通信システム10において実行される通信シーケンスの例を示す。サーバ装置110及びクライアント装置120が、図4及び図6を用いて上述した動作を実行することで、図7に示す通信シーケンスが実現される。S701において、クライアント装置120のリクエスト送信部321がHTTPリクエストを送信し、サーバ装置110のリクエスト受信部211はそのHTTPリクエストを受信する。ここで送信されるHTTPリクエストには、図5に示すような情報保持部216により保持される所定の識別情報が含まれる。
S702において、サーバ装置110のリクエスト判定部212はリクエストに所定の識別情報が含まれていると判定し、暫定レスポンス送信部214は受信したリクエストに対する暫定レスポンスを送信する。クライアント装置120のレスポンス受信部322は送信されたレスポンスを受信し、レスポンス判定部323はそのレスポンスが暫定レスポンスであると判定する。
S703において、サーバ装置110の処理部213はリクエストにより要求された処理を完了する。S704において、サーバ装置110の完了レスポンス送信部215は完了レスポンスを送信し、クライアント装置120のレスポンス受信部322はそのレスポンスを受信する。なお、サーバ装置110はHTTPリクエストにより要求される処理が完了した後に完了レスポンスを送信してもよいし、完了レスポンスの送信自体が要求される処理の一部又は全部であってもよい。また、サーバ装置110は要求された処理が正常に完了できると判断した場合に、その処理の完了前に完了レスポンスを送信してもよい。また、S702における暫定レスポンスの送信回数は1回でなくてもよく、例えばサーバ装置110は、S701におけるHTTPリクエストの受信からS704における完了レスポンスの送信までの間、一定期間ごとに暫定レスポンスを送信してもよい。
このように、クライアント装置120は、S702において暫定レスポンスを受信することで、S701において送信したHTTPリクエストがサーバ装置110により受信されたことを判断することができる。そのためクライアント装置120は、リクエストが正しく受信されたかを確認するための余分な通信などを行うことなく、サーバ装置110からのレスポンスを待機する。そしてクライアント装置120は、S704において完了レスポンスを受信することで、S701において送信したHTTPリクエストにより要求される処理がサーバ装置110により完了されたことを判断することができる。
なお、S702において送信される暫定レスポンスは例えばステータスコードが100 ContinueのHTTPレスポンスであり、S704において送信される完了レスポンスは例えばステータスコードが200 OKのHTTPレスポンスである。ただし、暫定レスポンスと完了レスポンスの内容はこれに限定されない。例えば、サーバ装置110は、ステータスコードが100から199のうち何れかであるHTTPレスポンスを暫定レスポンスとして送信し、ステータスコードが200から599のうち何れかであるHTTPレスポンスを完了レスポンスとして送信してもよい。ここで、100から199のステータスコードは、リクエストが受け付けられて処理が継続されることを示す。一方、200から599のステータスコードは、リクエストの処理が完了されたこと、リクエストの処理の完了のために追加的な処理が必要なこと、又はリクエストの内容又はリクエストの処理にエラーがあることを示す。
また例えば、サーバ装置110は、暫定レスポンスとしてHTTPレスポンスの一部分を送信し、完了レスポンスとしてそのHTTPレスポンスの残りの部分を送信してもよい。具体的には、サーバ装置110は、ステータスコードが200 OKのHTTPレスポンスのステータスライン及びヘッダを暫定レスポンスとして送信し、完了レスポンスとしてそのHTTPレスポンスのボディを送信してもよい。なお、暫定レスポンスは、HTTPレスポンスのボディの一部を含んでいてもよいし、ステータスラインのみを含んでいてもよい。
このような方法によっても、暫定レスポンスと完了レスポンスとがそれぞれ別のHTTPレスポンスとして送信される場合と同様の効果が得られる。すなわち、クライアント装置120は、HTTPレスポンスのステータスライン及びヘッダを受信することで、HTTPリクエストがサーバ装置110により受信されたことを判断できる。また、クライアント装置120は、HTTPレスポンスのボディを受信することで、HTTPリクエストにより要求される処理がサーバ装置110により完了されたことを判断できる。またこの方法によれば、暫定レスポンスと完了レスポンスとがそれぞれ独立したHTTPレスポンスとして送信される場合と比較して、通信システム10内のデータ通信量を削減することができる。
また、図8は、暫定レスポンスとしてサーバ装置110からクライアント装置120へストリーム予約の要求が送信され、完了レスポンスとして予約されたストリームを用いたプッシュレスポンスが送信される場合の通信シーケンスの例を示す。図7を用いて説明したシーケンスにおける処理と同様の処理については、同じ符号を付している。
HTTPに基づく通信規格であるHTTP/2においては、サーバから送信可能なデータとしてPUSH_PROMISEフレームが規定されている。サーバはクライアントにPUSH_PROMISEフレームを送信することで、論理的な接続であるストリームの予約を要求する。そしてサーバは、クライアントからの新たなリクエストを待つことなく、予約されたストリームを用いて任意のタイミングでクライアントにデータをプッシュすることができる。これにより、サーバからクライアントへのプッシュ型のデータ送信であるサーバープッシュが実現される。
HTTP/2において規定されるこのような機能を用いることで、本実施形態における暫定レスポンスと完了レスポンスを実現することができる。図8に示す通信シーケンスのS802において、サーバ装置110は、S701におけるクライアント装置120からのHTTPリクエストの受信に応じてPUSH_PROMISEフレームを含む暫定レスポンスを送信する。ここで送信されるPUSH_PROMISEフレームには、予約するストリームの番号が記載されている。そしてサーバ装置110は、S703においてリクエストに応じた処理が完了したことに応じて、S804においてクライアント装置120へプッシュレスポンスを送信する。ここで送信されるプッシュレスポンスは、S802におけるPUSH_PROMISEフレームを含む暫定レスポンスにより予約されたストリームを用いて送信されるレスポンスであり、リクエストに応じた処理の完了を示す。なお、プッシュレスポンスには、リクエストに応じた処理の結果に関するデータが含まれていてもよい。
このように、暫定レスポンスとしてサーバ装置110からクライアント装置120へストリーム予約の要求が送信され、完了レスポンスとしてプッシュレスポンスが送信される場合にも、図7に示す通信シーケンスを実行する場合と同様の効果が得られる。すなわち、クライアント装置120は、ストリーム予約の要求を受信することで、リクエストがサーバ装置110により受信されたことを判断できる。また、クライアント装置120は、プッシュレスポンスを受信することで、HTTPリクエストにより要求される処理がサーバ装置110により完了されたことを判断できる。またこの方法によれば、サーバ装置110はより柔軟なタイミングで完了レスポンスを送信することができる。
図9は、HTTP/2におけるサーバープッシュを用いる通信シーケンスの別の例を示す。図7を用いて説明したシーケンスにおける処理と同様の処理については、同じ符号を付している。サーバ装置110は、S701におけるHTTPリクエストの受信に応じて、S902においてステータスコードが100 ContinueのHTTPレスポンスを暫定レスポンスとして送信する。その後S903において、サーバ装置110は、PUSH_PROMISEフレームをクライアント装置120へ送信することでストリームを予約する。そしてサーバ装置110は、予約されたストリームを用いてS904においてプッシュレスポンスをクライアント装置120へ送信することで、S703における処理の完了をクライアント装置120に通知する。
このような通信シーケンスにおいても、図7に示す通信シーケンスを実行する場合と同様の効果が得られる。すなわち、クライアント装置120は、ステータスコードが100 ContinueのHTTPレスポンスを受信することで、HTTPリクエストがサーバ装置110により受信されたことを判断できる。また、クライアント装置120は、プッシュレスポンスを受信することで、HTTPリクエストにより要求される処理がサーバ装置110により完了されたことを判断できる。
また、図8や図9においてはプッシュレスポンスを完了レスポンスとして送信する場合の例を示しているが、HTTP/2におけるサーバープッシュを用いる場合において、サーバ装置110はプッシュレスポンスとは別に完了レスポンスを送信してもよい。具体的には、サーバ装置110は、暫定レスポンスとしてPUSH_PROMISEフレームをクライアント装置120へ送信し、予約されたストリームを用いたプッシュレスポンスを送信し、さらにその後に完了レスポンスを送信してもよい。ここで送信される完了レスポンスは、例えばステータスコードが200 OKのHTTPレスポンスなどである。
以上説明したように、本実施形態に係るサーバ装置110は、クライアント装置120との間でHTTPに従う通信を行う。具体的には、サーバ装置110は、サーバ装置110に対して処理を要求するためのHTTPリクエストであって、要求される処理を識別するための識別情報を含むHTTPリクエストを、クライアント装置120から受信する。またサーバ装置110は、HTTPリクエストが受信されてから、当該HTTPリクエストにより要求される処理の完了を示す第1のレスポンスを送信するまでの間に、第2のレスポンスをクライアント装置120へ送信するかを決定する。当該決定は、HTTPリクエストに含まれる識別情報に応じて行われる。そしてサーバ装置110は、当該決定に応じて、第1のレスポンス及び第2のレスポンスをクライアント装置120へ送信する。
このような構成によれば、クライアント装置120がサーバ装置110にリクエストを送信してから、サーバ装置110により当該リクエストが受信されたことをクライアント装置120が判断可能となるまでの時間を、短くすることができる。そのため、サーバ装置110がリクエストを正しく受信できていない場合にクライアント装置120がレスポンスを待ち続けるようなことが抑制でき、遅延が低減された効率的な通信が実現できる。また、サーバ装置110によりレスポンスが受信されたか否かを問い合わせるためのリクエストをクライアント装置120が別途送信する場合と比較して、クライアント装置の処理負荷を低減することができる。
また、図7から図9を用いて説明したように、本実施形態におけるサーバ装置110は、HTTP(HTTP/2を含む)において規定される形式のメッセージを従来とは異なる方法で用いることにより、暫定レスポンスと完了レスポンスを実現する。これによりサーバ装置110は、リクエストとレスポンスが1対1に対応するのが通常であるHTTPの通信方式に則りながらも、単一のリクエストに対して2種類のレスポンスを送信することができる。またサーバ装置110は、クライアント装置120が標準的でない特別なコマンドを理解する機能を有していなくても、HTTPに従う通信に対応していれば、リクエストの受信や処理の完了をクライアントに通知することができる。
[変形例]
なお、上記の説明においては、サーバ装置110がクライアント装置120から受信したHTTPリクエストにより要求される処理を完了した際に完了レスポンスを送信する場合を中心に説明した。ただしこれに限らず、サーバ装置110は、クライアント装置120から受信したHTTPリクエストに関係する処理であって、そのHTTPリクエストにより要求される処理とは別の処理が完了した際に、完了レスポンスを送信してもよい。以下ではこの場合の例について具体的に説明する。
図10は、通信システム10の変形例である通信システム20の構成を示す。通信システム20においては、図1に示した通信システム10の構成に加えて、ネットワーク100にストレージ装置130が接続されている。ストレージ装置130は、画像や音声などのコンテンツを記憶可能な装置であり、ネットワーク100を介してサーバ装置110及びクライアント装置120と通信可能である。
図11は、通信システム20におけるサーバ装置110の動作を説明するためのフローチャートである。図11に示す処理は、サーバ装置110のCPU201がROM202に格納されたプログラムをRAM203に展開して実行することで実現される。ただし、以下で説明する処理の少なくとも一部が、CPU201とは異なる専用のハードウェアにより実現されてもよい。図11に示す処理は、サーバ装置110とクライアント装置120との間でHTTPコネクションなどの接続が確立され、且つサーバ装置110の処理部213が所定の処理を開始したタイミングで実行される。以下では所定の処理がサーバ装置110からストレージ装置130への動画データの送信処理である場合を中心に説明するが、所定の処理の内容はこれに限らない。また、図11の処理の開始タイミングもこれに限定されない。以下では、図4を用いて説明した処理フローとの差異を中心に説明する。
S1110において、情報保持部216は、処理部213により実行中の所定の処理の対象となっているコンテンツへのアクセスが必要な別の処理を要求するためのHTTPリクエストに対応する識別情報を新たに格納する。例えば、実行中の所定の処理がストレージ装置130への動画データの送信処理である場合に、その動画データをクライアント装置120へ送信する処理に対応する識別情報や、その動画データを削除する処理に対応する識別情報が新たに格納される。ここで格納される識別情報の具体例については、図12を用いて後述する。
なお、処理部213により実行される所定の処理は、動画データの送信に限らず、動画以外のメディアデータや、アプリケーションを動かすためのアプリケーションデータ、又は装置の動作履歴を示すログデータなどのコンテンツを送信する処理であってもよい。また、所定の処理はコンテンツの送信処理に限らず、コンテンツのエンコード、デコード又は編集などの、コンテンツを変換する処理であってもよい。また、所定の処理は、動画データを生成するための動画撮影など、コンテンツを生成する処理であってもよい。
S411及びS412においては、図4を用いて上述した処理と同様に、サーバ装置110は、クライアント装置120からHTTPリクエストを受信し、そのリクエストが情報保持部216により保持されている識別情報と合致する情報を含むかを判定する。S412の判定結果がYESとなる場合はS414に進む。S414に進む場合とは、例えば、HTTPリクエストにより要求されるコンテンツと処理部213がストレージ装置130へ送信中であるコンテンツとが同一である場合などである。一方、S412の判定結果がNOとなる場合はS1113に進む。S1113に進んだ場合、完了レスポンス送信部215はリクエストに応じたレスポンスをクライアント装置120へ送信し、図11の処理を終了する。
S414において、暫定レスポンス送信部214は、S411におけるHTTPリクエストの受信に応じた暫定レスポンスをクライアント装置120へ送信する。この暫定レスポンスには、処理部213が所定の処理を実行中であることを示す情報が含まれていてもよい。S1115において完了レスポンス送信部215は、処理部213により実行中の所定の処理が完了するまで待機する。S1116において完了レスポンス送信部215は、クライアント装置120へ完了レスポンスを送信する。この完了レスポンスには、処理部213による所定の処理の完了を示す情報が含まれていてもよい。また、完了レスポンスには、コンテンツの送信先であるストレージ装置130の情報など、所定の処理の結果を示す情報が含まれていてもよい。処理部213による所定の処理が途中で中断した場合においては、完了レスポンスの代わりにエラーレスポンスが送信されてもよい。
なお、S1110において情報保持部216は、処理部213により実行中の所定の処理が所定の時間長より長い時間を要する処理である場合にのみ、識別情報を新たに格納してもよい。具体的には、処理部213により送信中である動画データが所定の時間長より長い場合や、所定のデータサイズより大きい場合に、情報保持部216は当該動画データの取得や削除を要求する処理に対応する識別情報を新たに格納してもよい。そうでない場合には、当該動画データの取得や削除を要求する処理に対応する識別情報を新たに格納しなくてもよい。
図12は、S1110において情報保持部216が新たに格納する識別情報の一例を示す。ここでは、処理部213により実行中の処理が動画データ1.mpgをストレージ装置130へ送信する処理であるものとする。エントリ1201の識別情報は、動画データ1.mpgの送信要求に対応するURLとメソッドの組である。エントリ1202の識別情報は、サーバ装置110が有する動画データの削除要求に対応するURLとメソッドの組である。例えば動画データ1.mpgの削除を要求するためのHTTPリクエストには、http://xxx/del?no=1というURLと、POSTメソッドを示す情報が含まれる。なお、S1110において新たに格納される識別情報はこれらの例に限定されず、処理部213により実行中の処理の対象となっているコンテンツへのアクセスが必要なリクエストに対応する識別情報であればよい。
図13は、通信システム20において実行される通信シーケンスの例を示す。サーバ装置110及びクライアント装置120が、図11及び図6を用いて上述した動作を実行することで、図13に示す通信シーケンスが実現される。S1300において、サーバ装置110の処理部213は、ストレージ装置130への動画データの送信を開始する。S701において、クライアント装置120のリクエスト送信部321は、サーバ装置110からストレージ装置130へ送信中の動画データを要求するためのHTTPリクエストを送信し、サーバ装置110はそのHTTPリクエストを受信する。S1302において、サーバ装置110の暫定レスポンス送信部214は、S701におけるHTTPリクエストに応じた暫定レスポンスをクライアント装置120へ送信する。送信される暫定レスポンスは、例えばステータスコードが100 ContinueのHTTPレスポンスであってもよいし、上述したPUSH_PROMISEフレームやHTTPレスポンスのヘッダであってもよい。
S1303において、サーバ装置110の処理部213は、S1300において開始した動画データの送信処理を完了する。送信処理の完了の後、S1304において、サーバ装置110の完了レスポンス送信部215は、S701におけるHTTPリクエストに応じた完了レスポンスをクライアント装置120へ送信する。完了レスポンスは、ステータスコードが200 OKのHTTPレスポンスであってもよいし、上述したプッシュメッセージやHTTPレスポンスのボディであってもよい。また、サーバ装置110は、S701におけるHTTPリクエストにより要求された動画データを完了レスポンスとしてクライアント装置120へ送信してもよい。
また、S1304において送信される完了レスポンスは、処理部213による動画データの送信先であるストレージ装置130へのアクセスを促すステータスコード308 Permanent Redirectを含むHTTPレスポンスであってもよい。ステータスコードが308 Permanent Redirectの場合、完了レスポンスは、ストレージ装置130内の動画データの所在を示すURLを含んでいてもよい。そして、完了レスポンスを受信したクライアント装置120は、ストレージ装置130に動画データを要求するためのリクエストを送信し、動画データを取得してもよい。
このように、クライアント装置120へのコンテンツの送信をサーバ装置110でなくストレージ装置130が実行することで、サーバ装置110の処理負荷を低減することができる。サーバ装置110がデジタルカメラでありストレージ装置130が高速なネットワークに接続されたPCである場合など、サーバ装置110よりもストレージ装置130の通信性能が高い場合には、クライアント装置120への動画データの送信時間も低減できる。
以上のように、サーバ装置110は、サーバ装置110装置に対してコンテンツを要求するためのHTTPリクエストをクライアント装置120から受信する。そしてサーバ装置110は、受信されたHTTPリクエストにより要求されるコンテンツに対してサーバ装置110が所定の処理を実行中である場合に当該HTTPリクエストに応じた第1のレスポンスをクライアント装置120へ送信する。さらにサーバ装置110は、当該所定の処理が完了した後に当該HTTPリクエストに応じた第2のレスポンスをクライアント装置120へ送信する。
これにより、クライアント装置120から送信されたリクエストに対するレスポンスがサーバ装置110により実行中の別の処理のために遅くなってしまう場合に、クライアント装置120はサーバ装置110によるリクエストの受信状況を早く判断できる。
なお、本実施形態ではサーバ装置110とクライアント装置120とがHTTPに従う通信を行う場合について説明したが、通信の方式はこれに限らない。例えば、CoAP(Constrained Application Protocol)などのHTTPのセマンティクスを用いるプロトコルに従う通信を行う場合にも本実施形態を適用できる。
<その他の実施形態>
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC等)によっても実現可能である。また、そのプログラムをコンピュータにより読み取り可能な記録媒体に記録して提供してもよい。
10 通信システム
100 ネットワーク
110 サーバ装置
120 クライアント装置

Claims (13)

  1. HTTP(Hypertext Transfer Protocol)に従う通信を行う通信装置であって、
    前記通信装置に対して処理を要求するためのHTTPリクエストであって、要求される処理を識別するための識別情報を含むHTTPリクエストを、他の通信装置から受信する受信手段と、
    前記受信手段により前記HTTPリクエストが受信されてから、前記HTTPリクエストにより要求される処理の完了を示す第1のレスポンスを送信するまでの間に、第2のレスポンスを前記他の通信装置へ送信するかを、前記HTTPリクエストに含まれる前記識別情報に応じて決定する決定手段と、
    前記決定手段による決定に応じて、前記第1のレスポンス及び前記第2のレスポンスを前記他の通信装置へ送信する送信手段と、
    を有し、
    前記送信手段がデータをサーバ装置へ送信する処理を実行している最中に前記データの送信を要求するための前記HTTPリクエストを受信した場合、前記送信手段は前記第2のレスポンスを送信し、前記サーバ装置への前記データの送信が完了した後に、前記データの格納先URLを含む前記第1のレスポンスを送信することを特徴とする通信装置。
  2. 前記送信手段は、前記第2のレスポンスを前記他の通信装置へ送信しないと前記決定手段により決定された場合に、前記第2のレスポンスを送信することなく前記第1のレスポンスを前記他の通信装置へ送信することを特徴とする請求項1に記載の通信装置。
  3. 前記送信手段は、前記HTTPリクエストにより要求される処理が完了した後に前記第1のレスポンスを送信することを特徴とする請求項1又は2に記載の通信装置。
  4. 前記受信手段により受信されるHTTPリクエストに含まれる識別情報は、当該HTTPリクエストのメソッドを示す情報と当該HTTPリクエストにより要求される処理の内容を特定するためのURLとを含むことを特徴とする請求項1乃至3の何れか1項に記載の通信装置。
  5. 予め取得された識別情報を保持する保持手段を有し、
    前記決定手段は、前記受信手段により受信されたHTTPリクエストに含まれる識別情報が前記保持手段により保持されている識別情報と合致する場合に、前記第2のレスポンスを前記他の通信装置へ送信すると決定することを特徴とする請求項1乃至4の何れか1項に記載の通信装置。
  6. 前記決定手段は、前記受信手段により受信されたHTTPリクエストに含まれる識別情報が、ユーザ又は第2の通信装置により指定される所定の時間長より長い時間を要する処理に対応する識別情報である場合に、前記第2のレスポンスを前記他の通信装置へ送信すると決定することを特徴とする請求項1乃至5の何れか1項に記載の通信装置。
  7. 前記決定手段は、前記受信手段により受信されたHTTPリクエストに含まれる識別情報が、撮影手段による撮影の方向又はズーム率を変更する処理に対応する識別情報である場合に、前記第2のレスポンスを前記他の通信装置へ送信すると決定することを特徴とする請求項1乃至5の何れか1項に記載の通信装置。
  8. 前記決定手段は、前記受信手段により受信されたHTTPリクエストに含まれる識別情報が、撮影手段による静止画の連続撮影処理、前記撮影手段による動画の撮影処理、及び前記撮影手段により撮影された画像の変換処理の何れかに対応する識別情報である場合に、前記第2のレスポンスを前記他の通信装置へ送信すると決定することを特徴とする請求項1乃至5の何れか1項に記載の通信装置。
  9. 前記送信手段により送信される前記第1のレスポンスは、200から599のうち何れかのステータスコードを含み、
    前記送信手段により送信される前記第2のレスポンスは、100から199のうち何れかのステータスコードを含むことを特徴とする請求項1乃至8の何れか1項に記載の通信装置。
  10. 前記送信手段により送信される前記第2のレスポンスは、HTTP/2において規定されるPUSH_PROMISEフレームを含み、
    前記送信手段は、PUSH_PROMISEフレームを含む前記第2のレスポンスにより予約されたストリームを用いて前記第1のレスポンスを送信することを特徴とする請求項1乃至8の何れか1項に記載の通信装置。
  11. 前記送信手段により送信される前記第2のレスポンスは、HTTPレスポンスのヘッダを含み、
    前記送信手段により送信される前記第1のレスポンスは、HTTPレスポンスのボディであることを特徴とする請求項1乃至8の何れか1項に記載の通信装置。
  12. HTTP(Hypertext Transfer Protocol)に従う通信を行う通信装置により実行される通信方法であって、
    前記通信装置に対して処理を要求するためのHTTPリクエストであって、要求される処理を識別するための識別情報を含むHTTPリクエストを、他の通信装置から受信する受信工程と、
    前記受信工程において前記HTTPリクエストが受信されてから、前記HTTPリクエストにより要求される処理の完了を示す第1のレスポンスを送信するまでの間に、第2のレスポンスを前記他の通信装置へ送信するかを、前記HTTPリクエストに含まれる前記識別情報に応じて決定する決定工程と、
    前記決定工程における決定に応じて、前記第1のレスポンス及び前記第2のレスポンスを前記他の通信装置へ送信する送信工程と、を有し、
    前記送信工程においてデータをサーバ装置へ送信する処理を実行している最中に前記データの送信を要求するための前記HTTPリクエストを受信した場合、前記第2のレスポンスを送信し、前記サーバ装置への前記データの送信が完了した後に、前記データの格納先URLを含む前記第1のレスポンスを送信することを特徴とする通信方法。
  13. コンピュータを、請求項1乃至11のいずれか1項に記載の通信装置の各手段として機能させるためのプログラム。
JP2017229878A 2017-11-30 2017-11-30 通信装置、通信方法、およびプログラム Active JP7051396B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017229878A JP7051396B2 (ja) 2017-11-30 2017-11-30 通信装置、通信方法、およびプログラム
US16/201,355 US11303692B2 (en) 2017-11-30 2018-11-27 Communication apparatus for transmitting response, communication method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017229878A JP7051396B2 (ja) 2017-11-30 2017-11-30 通信装置、通信方法、およびプログラム

Publications (2)

Publication Number Publication Date
JP2019101594A JP2019101594A (ja) 2019-06-24
JP7051396B2 true JP7051396B2 (ja) 2022-04-11

Family

ID=66633793

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017229878A Active JP7051396B2 (ja) 2017-11-30 2017-11-30 通信装置、通信方法、およびプログラム

Country Status (2)

Country Link
US (1) US11303692B2 (ja)
JP (1) JP7051396B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7051396B2 (ja) * 2017-11-30 2022-04-11 キヤノン株式会社 通信装置、通信方法、およびプログラム

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070016639A1 (en) 2001-09-29 2007-01-18 Anil Mukundan Method, apparatus, and system for managing status of requests in a client server environment
JP2012227603A (ja) 2011-04-15 2012-11-15 Canon Inc カメラ制御装置、カメラ制御装置の制御方法
JP2015120300A (ja) 2013-12-24 2015-07-02 株式会社リコー 情報処理システム、情報処理装置、情報処理方法および情報処理プログラム
US20160226946A1 (en) 2015-02-02 2016-08-04 Vmware, Inc. Streaming progress updates and results of rest api operations
JP2016218923A (ja) 2015-05-25 2016-12-22 キヤノン株式会社 通信装置、通信装置の制御方法、プログラム、および、通信システム
JP2017038297A (ja) 2015-08-12 2017-02-16 キヤノン株式会社 通信装置、通信方法、及び通信システム

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7493394B2 (en) * 2003-12-31 2009-02-17 Cisco Technology, Inc. Dynamic timeout in a client-server system
JP5340895B2 (ja) * 2009-11-24 2013-11-13 株式会社ソニー・コンピュータエンタテインメント 画像データ作成支援装置および画像データ作成支援方法
JP2013210803A (ja) 2012-03-30 2013-10-10 Mitsubishi Electric Corp データ蓄積装置及びデータ蓄積プログラム
US10592322B1 (en) * 2017-06-27 2020-03-17 Amazon Technologies, Inc. Adaptive timeout mechanism
JP7051396B2 (ja) * 2017-11-30 2022-04-11 キヤノン株式会社 通信装置、通信方法、およびプログラム

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070016639A1 (en) 2001-09-29 2007-01-18 Anil Mukundan Method, apparatus, and system for managing status of requests in a client server environment
JP2012227603A (ja) 2011-04-15 2012-11-15 Canon Inc カメラ制御装置、カメラ制御装置の制御方法
JP2015120300A (ja) 2013-12-24 2015-07-02 株式会社リコー 情報処理システム、情報処理装置、情報処理方法および情報処理プログラム
US20160226946A1 (en) 2015-02-02 2016-08-04 Vmware, Inc. Streaming progress updates and results of rest api operations
JP2016218923A (ja) 2015-05-25 2016-12-22 キヤノン株式会社 通信装置、通信装置の制御方法、プログラム、および、通信システム
JP2017038297A (ja) 2015-08-12 2017-02-16 キヤノン株式会社 通信装置、通信方法、及び通信システム

Also Published As

Publication number Publication date
US11303692B2 (en) 2022-04-12
US20190166182A1 (en) 2019-05-30
JP2019101594A (ja) 2019-06-24

Similar Documents

Publication Publication Date Title
JP6103999B2 (ja) 画像データ送信装置、画像データ受信装置、画像データ送信方法、画像データ受信方法、及びプログラム
US20150271233A1 (en) Method and apparatus for dash streaming using http streaming
JP4717408B2 (ja) 映像配信システム及び方法
US20150271231A1 (en) Transport accelerator implementing enhanced signaling
WO2008075733A1 (en) Apparatus for displaying an image, system for processing image data, and method of processing image data
JP6861484B2 (ja) 情報処理装置及びその制御方法、コンピュータプログラム
CN108476332B (zh) 客户端、服务器、接收方法及发送方法
CN115349248A (zh) 利用实时上行链路流式传输框架(flus)和5g应用功能(af)的基于网络的媒体处理(nbmp)部署
CN117596232A (zh) 流媒体快速启动方法、装置和系统
JP6116240B2 (ja) 送信装置、送信方法、及びプログラム
JP6429559B2 (ja) 通信装置、通信システム、情報処理方法及びプログラム
JP7051396B2 (ja) 通信装置、通信方法、およびプログラム
JP7262191B2 (ja) 電子機器及びその制御方法及びプログラム及び情報処理システム
JP2015095686A (ja) 撮像装置、撮像システム、撮像装置の制御方法、撮像システムの制御方法、及びプログラム
JP2014116805A (ja) 撮像装置及び情報処理装置及びそれらの制御方法、並びに、映像処理システム
JP6467395B2 (ja) 画像送信装置、画像受信装置、それらの制御方法および画像通信システム
EP2280512A1 (en) Electronic apparatus and control method for remotely processing files
JP6338746B2 (ja) 撮像システム、撮像装置、撮像装置における通信方法、及びプログラム
US9106608B2 (en) Communication device, communication method, and non-transitory computer-readable recording medium
WO2016177257A1 (zh) 一种数据分享的方法和装置
JP2018045674A (ja) 情報処理装置及びその制御方法、コンピュータプログラム
JP6173640B1 (ja) 通信装置、通信方法、プログラム、及び、撮像装置
JP6942609B2 (ja) 通信装置、通信方法、及びプログラム
JP6824949B2 (ja) 通信装置、制御方法およびプログラム
JP7293982B2 (ja) 処理装置、方法、及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201105

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210812

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210824

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211008

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: 20220301

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220330

R151 Written notification of patent or utility model registration

Ref document number: 7051396

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151