JP6055201B2 - サーバー装置、システム及びその制御方法 - Google Patents

サーバー装置、システム及びその制御方法 Download PDF

Info

Publication number
JP6055201B2
JP6055201B2 JP2012108912A JP2012108912A JP6055201B2 JP 6055201 B2 JP6055201 B2 JP 6055201B2 JP 2012108912 A JP2012108912 A JP 2012108912A JP 2012108912 A JP2012108912 A JP 2012108912A JP 6055201 B2 JP6055201 B2 JP 6055201B2
Authority
JP
Japan
Prior art keywords
client device
condition
server
specific communication
communication
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
JP2012108912A
Other languages
English (en)
Other versions
JP2013235518A5 (ja
JP2013235518A (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 JP2012108912A priority Critical patent/JP6055201B2/ja
Priority to US14/116,216 priority patent/US9596121B2/en
Priority to PCT/JP2013/056045 priority patent/WO2013168458A1/en
Priority to CN201380023983.4A priority patent/CN104272280B/zh
Publication of JP2013235518A publication Critical patent/JP2013235518A/ja
Publication of JP2013235518A5 publication Critical patent/JP2013235518A5/ja
Application granted granted Critical
Publication of JP6055201B2 publication Critical patent/JP6055201B2/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Landscapes

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

Description

本発明は、クライアント装置とインターネットを介して通信するサーバー装置、システム及びその制御方法に関する。
従来、クライアント・サーバーシステムにおける接続の確立方法には、受信側が受信した接続要求に基づいて送信側で有効化されたセキュリティプロトコル(例えば、SSL)を識別し、適切なプロトコルを用いて接続を確立する方法がある。そして、メッセージを暗号化して通信を行う。例えば、特許文献1参照。
また、クライアントからのハンドシェークを起点として、インターネット上のサーバーからファイアウォール内のイントラネットワーク上のクライアントに対して持続的に通信コネクションを維持することで通信を行うPush通信方式が提案されている。例えば、非特許文献1参照。
特表2009−508261号公報
Internet Engineering Task Force (IETF) RFC 6455: The WebSocket protocol(URL:http://tools.ietf.org/html/rfc6455)
Push通信を行う際、クライアントとサーバー間の通信コネクションを持続的に維持すると、サーバーでは通信を行うクライアントの台数分だけメモリやCPU使用、コネクション等のリソースを消費し続けることになる。よって、サーバーでのリソース消費効率を考慮すると、Push通信が必要になったタイミングで初めてクライアントからハンドシェークを行うことで通信コネクションを確立し、Push通信が完了したら通信コネクションを解放することが望ましい。
しかし、従来のクライアント・サーバーシステムにおける接続の確立方法では、Push通信を行うタイミングでサーバーからクライアントに対してハンドシェークを開始するように指示することができなかった。
本発明は、インターネットを介して通信を行うクライアント装置とサーバー装置の間で、サーバー装置側のリソースを考慮して、上述のようなPush通信を含む特定の通信方式に、適切なタイミングで切り替えることが可能な手法を提供する。
本発明は、クライアント装置とインターネットを介して通信するサーバー装置であって、
前記クライアント装置からHTTP(HyperText Transfer Protocol)プロトコルで問い合わせを受信する受信手段と、
前記受信した問い合わせの応答として、HTTPプロトコルから、前記クライアント装置からの要求なしに前記サーバー装置から指示が可能となる、HTTPプロトコルとは異なる特定の通信方式に切り替えるための初期通信を行う第1の条件を送信する送信手段と、
前記クライアント装置と前記第1の条件に従う初期通信を行うことにより前記特定の通信方式に切り替え、前記特定の通信方式により当該クライアント装置に対して送信の指示を行う指示手段と、
を有することを特徴とする。
本発明によれば、インターネットを介して通信を行うクライアント装置とサーバー装置の間で、サーバー装置側のリソースを考慮して、上述のようなPush通信を含む特定の通信方式に、適切なタイミングで切り替えることが可能となる。
Push通信型クライアント・サーバーシステムのシステム構成及びハードウェア構成を示すブロック図。 図1に示すシステムのソフトウェア構成を示すブロック図。 データベースサーバーサービスモジュール内のテーブル構成例を示す図。 リクエストを受信した第1の実施形態の処理を示すフローチャート。 第1の実施形態のハンドシェーク制御情報の例を示す図。 ハンドシェーク開始を登録する際の処理を示すフローチャート。 リクエストを受信した第2の実施形態の処理を示すフローチャート。 第2の実施形態のハンドシェーク制御情報の例を示す図。 Close処理を行うか否かを設定する際の処理を示すフローチャート。 ハンドシェークを開始する第3の実施形態の処理を示すフローチャート。 レスポンスを送信する第3の実施形態の処理を示すフローチャート。
以下、図面を参照しながら発明を実施するための形態について詳細に説明する。以下の実施形態では、Push通信型クライアント・サーバーシステムを例に挙げて説明する。尚、Push通信のプロトコルには、特定の通信方式である「WebSocket」を用いるものとする。
このWebSocketによる双方向通信では、インターネット上のサーバー装置からPushでコマンド送信が可能である。また、クライアント装置からの問い合わせ(要求)がなくても、コマンド送信が可能であり、双方向通信の際にヘッダ情報等を省略でき、ネットワーク上に流れるデータ量を少なくすることができる。しかしながら、サーバー装置のリソースが少ないと、複数のクライアント装置を管理することが困難であるという問題がある。
[第1の実施形態]
まず、Push通信型クライアント・サーバーシステムのシステム構成とハードウェア構成とを、図1に示すブロック図を用いて説明する。Push通信型クライアント・サーバーシステムは、LANで接続されたクライアントコンピューター120、ネットワークプリンター140、ファイアウォール160及びWANを介して接続されるサーバーコンピューター100とで構成される。
尚、サーバーコンピューター100とクライアントコンピューター120とは、汎用のコンピューター(例えば、パーソナルコンピューター)の構成を有するものとする。また、サーバーコンピューター100とクライアントコンピューター120とのハードウェア構成で重複するものについては、どちらか一方のみを説明し、もう一方については説明を省略する。
また、クライアントコンピューター120は、パーソナルコンピューター又はデジタル複合機などの画像形成装置である。
サーバーコンピューター100において、CPU101は、ROM103や外部メモリ106に記憶されたアプリケーションプログラム等に従って各種処理を実行する。更に、CPU101はシステムバス107に接続される各デバイスを総括的に制御する。RAM102は、CPU101の主メモリ、ワークエリア等として機能する。ROM103は、基本I/Oプログラム等の記憶領域として機能する読み出し専用のメモリである。ROM103或いは外部メモリ106には、CPU101の制御プログラムであるオペレーティングシステム(以下OS)等が記憶される。更に、ROM103或いは外部メモリ106には、アプリケーションプログラム等に基づく処理の際に使用するファイルやその他各種データを記憶する。
ネットワークI/F104は、ネットワークへ接続し、ネットワーク通信を制御する。外部メモリI/F105は、ハードディスク(HD)等の外部メモリ106とのアクセスを制御する。外部メモリ106は、ブートプログラム、各種のアプリケーション、ユーザーファイル、編集ファイル等を記憶する。
サーバーコンピューター100は、CPU101がROM103や外部メモリ106に書き込まれた基本I/Oプログラム及びOSを実行している状態で動作する。基本I/OプログラムはROM103に書き込まれており、OSはROM103もしくは外部メモリ106に書き込まれている。そして、コンピューターの電源がONされたときに、基本I/Oプログラム中のイニシャルプログラムロード機能により、ROM103もしくは外部メモリ106からOSがRAM102に書き込まれ、OSの動作が開始される。システムバス107は、各デバイスを接続する。
クライアントコンピューター120において、キーボードI/F121は、キーボード122や不図示のポインティングデバイスからの入力を制御する。ディスプレイI/F123は、ディスプレイ124の表示を制御する。CPU101は、ディスプレイ124上の不図示のマウスカーソル等で指示されたコマンドに基づいて登録された種々のウインドウを開き、種々のデータ処理を実行する。
ネットワークプリンター140において、ネットワークI/F141は、ネットワークへ接続し、ネットワーク通信を制御する。CPU142は、制御プログラム等に基づいてシステムバス151に接続されるプリンターI/F147を介してプリンター148に出力情報としての画像信号を出力する。尚、制御プログラムは、ROM144や外部メモリ150等に記憶される。
CPU142は、ネットワークI/F141を介してコンピューターと通信処理が可能となっており、ネットワークプリンター140内の情報等をクライアントコンピューター120に通知可能に構成されている。更に、CPU142はROM144或いは外部メモリ150に記憶されたアプリケーションプログラム等に基づいて処理を実行する。RAM143は、CPU142の主メモリ、ワークエリア等として機能し、不図示の増設ポートに接続されるオプションRAMによりメモリ容量を拡張することができるように構成されている。尚、RAM143は、出力情報展開領域、環境データ格納領域、NVRAM等に用いられる。ROM144或いは外部メモリ150には、CPU142の制御プログラムや出力情報を生成する際に使用するフォントデータ、ネットワークプリンター140上で利用される情報等が記憶される。
操作部I/F145は、操作部146との間のインタフェースであり、表示すべき画像データを操作部146に対して出力する。また、ユーザーが操作部146を介して入力した情報の受信も行う。操作部146は、操作のためのスイッチ及びLED表示器等が配されている操作パネル等に相当する。プリンターI/F147は、プリンター148(プリンターエンジン)に出力情報としての画像信号を出力する。外部メモリI/F(メモリコントローラ)149は、ハードディスク(HD)やICカード等で構成される外部メモリ150のアクセスを制御する。また、外部メモリ150は1個に限らず、少なくとも1個以上備え、内蔵フォントに加えてオプションフォントカード、言語系の異なるプリンター制御言語を解釈するプログラムを格納した外部メモリを複数接続できるように構成されていてもよい。更に、不図示のNVRAMを有し、操作部146から指示されたプリンターモード設定情報を記憶するようにしてもよい。システムバス151は、各デバイスを接続する。
次に、Push通信型クライアント・サーバーシステムのソフトウェア構成を、図2に示すブロック図を用いて説明する。まず、サーバーコンピューター100のソフトウェア構成を示す。
サーバーコンピューター100において、アプリケーション205、モジュール200、204、210は、外部メモリ106に保存されたファイルとして存在する。これらは実行時にOSやそのモジュールを利用するモジュールによってRAM102にロードされ実行されるプログラムモジュールである。また、アプリケーション205は、外部メモリ106の不図示のCD−ROM、ネットワークを経由して外部メモリ106のHDに追加することが可能となっている。
ネットワークモジュール200は、コンピューターとのネットワーク通信を行う。このネットワークモジュール200は、TCP/IPモジュール201、HTTPモジュール202、WebSocketモジュール203より構成される。TCP/IPモジュール201はTCP/IPプロトコルでのネットワーク通信を行う。HTTPモジュール202はトランスポート・プロトコルとしてTCPを使用し、HTTPプロトコルでのネットワーク通信を行う。WebSocketモジュール203はトランスポート・プロトコルとしてTCPを使用し、WebSocketプロトコルでのネットワーク通信を行う。
Webサーバーサービスモジュール204は、クライアントコンピューター120からのHTTPリクエストを受け取るとHTTPレスポンスを応答するサービスを提供する。一方、アプリケーション205は、クライアントコンピューター120に指示を出すことでクライアントコンピューター120経由でネットワークプリンター140を管理する。また、アプリケーション205は、例えばHTTPリクエストに応答して処理を実行するプログラムとして実装される。上述のように、アプリケーション205はWebサーバーサービスモジュール204とともに、クライアントコンピューター120及びネットワークプリンター140を管理するWebアプリケーションを実現している。
アプリケーション205において、探索モジュール206は、LAN接続されたネットワークプリンター140を探索するようクライアントコンピューター120に指示を行う。また、探索モジュール206はクライアントコンピューター120がアップロードしたネットワークプリンター140の探索結果を、ネットワークモジュール200を介して受信する。そして、受信した探索結果を後述するデータベースサーバーサービスモジュール210に格納する。ファームウェア配信モジュール207は、LAN接続されたネットワークプリンター140にファームウェアを配信するようクライアントコンピューター120に指示を行う。また、ファームウェア配信モジュール207はクライアントコンピューター120がアップロードしたネットワークプリンター140のファームウェア配信結果を、ネットワークモジュール200を介して受信する。そして、受信したファームウェア配信結果を後述のデータベースサーバーサービスモジュール210に格納する。
設定情報配信モジュール208は、LAN接続されたネットワークプリンター140の設定情報を配信するようクライアントコンピューター120に指示を行う。また、設定情報配信モジュール208はクライアントコンピューター120がアップロードしたネットワークプリンター140の設定情報配信結果を、ネットワークモジュール200を介して受信する。そして、受信した設定情報配信結果を後述するデータベースサーバーサービスモジュール210に格納する。ハンドシェーク制御情報管理モジュール209は、クライアントコンピューター120に対してWebSocketプロトコルのハンドシェーク開始を要求するためのハンドシェーク制御情報の作成を行う。尚、ハンドシェークは、クライアントコンピューター120からの要求がない場合にも、クライアントコンピューター120に対して指示が可能となる特定の通信方式に切り替えるための初期通信である。
データベースサーバーサービスモジュール210は、データを管理し、他モジュールからの要求に合わせてデータの格納と取り出しを行う。このデータベースサーバーサービスモジュール210は、アプリケーション205からアクセス可能であれば、サーバーコンピューター100とは別の機器上にあってもよい。ここでデータベースサーバーサービスモジュール210内のテーブル構成の一例を図3に示す。尚、図3に示すテーブル構成はあくまで一例であり、本例とは異なるテーブル構成であってもよい。
サービス管理テーブル300は、アプリケーション205が提供するネットワークプリンター管理サービスに関する情報を管理するテーブルである。このサービス管理テーブル300で管理される情報は、例えばサービスID、サービス名等である。ここでサービスIDとは、サービスを一意に識別するIDである。クライアントコンピューター管理テーブル301は、サーバーコンピューター100がPush通信を行うクライアントコンピューター120の情報を管理するテーブルである。このクライアントコンピューター管理テーブル301で管理される情報は、例えばクライアントID、クライアント名、IPアドレス等である。ここでクライアントIDとは、クライアントコンピューター120を一意に識別するIDである。
クライアントコンピューター・サービス管理テーブル302は、クライアントコンピューター120が行うネットワークプリンター管理サービスの紐付け情報を管理するテーブルである。プリンター管理テーブル303は、クライアントコンピューター120が探索したネットワークプリンター140の情報を管理するテーブルである。このプリンター管理テーブル303で管理される情報は、例えばプリンターID、プリンター名、設置場所、モデルID、IPアドレス等である。ここでプリンターIDとは、ネットワークプリンター140を一意に識別するIDである。
クライアントコンピューター・プリンター管理テーブル304は、クライアントコンピューター120が探索し、管理対象とするネットワークプリンター140の紐付け情報を管理するテーブルである。設定情報管理テーブル305は、設定情報配信モジュール208からクライアントコンピューター120の設定情報配信モジュール228を介してネットワークプリンター140に配信される設定情報を管理するテーブルである。この設定情報管理テーブル305で管理される情報は、例えば設定情報ID、モデルID、SNMPv1設定、MIBアクセス設定、SNMPv3設定、管理用パスワード設定、設置場所、ファイルサーバーURL等である。
ここで設定情報IDとは、設定情報を一意に識別するIDである。SNMPv1設定とは、ネットワークプリンター140をSNMPv1(Simple Network Management Protocol Version1)プロトコルが利用できる状態にするか否かの設定である。ここでSNMPv1はネットワークプリンター140を監視・制御するためのプロトコルである。MIBアクセス設定とは、ネットワークプリンター140上のMIB(Management Information Base)へのアクセス権限に関する設定であり、書き込み/読み込み、読み込みのみ、アクセス不可等の設定がある。
SNMPv3設定とは、ネットワークプリンター140がSNMPv3(Simple Network Management Protocol Version3)を利用できる状態にするか否かの設定である。ここでSNMPv3はSNMPの最新版であり、v1と比べてセキュリティ等が強化されている。管理用パスワード設定とは、ネットワークプリンター140をリモート管理する際に必要なパスワードを初期設定から変更するための設定である。ここで管理用パスワード設定はセキュリティ上暗号化されて設定情報管理テーブル305に格納される。
ファームウェア管理テーブル306は、ファームウェア配信モジュール207からクライアントコンピューター120のファームウェア配信モジュール227を介してネットワークプリンター140に配信されるファームウェアの情報を管理するテーブルである。このファームウェア管理テーブル306で管理される情報は、例えばファームウェアID、モデルID、ファームウェアバージョン、ファイルパス、リリース日時等である。ここでファームウェアIDとは、ファームウェアを一意に識別するIDである。ファイルパスとは、ファームウェアの実体ファイルが格納されているファイルパスである。リリース日時とは、ファームウェアのリリース予定を表す日時情報である。
設定情報配信タスク管理テーブル307は、ネットワークプリンター140へ設定情報配信を行うタスクを管理するテーブルである。この設定情報配信タスク管理テーブル307で管理される情報は、例えばタスクID、プリンターID、設定情報ID、配信結果、実行日時等である。ここでタスクIDとは、設定情報配信のタスクを一意に識別するIDである。ファームウェア配信タスク管理テーブル308は、ネットワークプリンター140へファームウェア配信を行うタスクを管理するテーブルである。このファームウェア配信タスク管理テーブル308で管理される情報は、例えばタスクID、プリンターID、ファームウェアID、配信結果、実行日時等である。ここでタスクIDとは、ファームウェア配信のタスクを一意に識別するIDである。
次に、クライアントコンピューター120のソフトウェア構成を説明する。尚、クライアントコンピューター120を構成する各モジュールは、それぞれROM103もしくは外部メモリ106に保存されたファイルとして存在するプログラムモジュールである。そして、実行時にOSやそのモジュールを利用するモジュールによってRAM102にロードされ実行される。
ネットワークモジュール220は、サーバーコンピューター100やネットワークプリンター140とのネットワーク通信を行う。ネットワークモジュール220は、TCP/IPモジュール221、HTTPモジュール222、WebSocketモジュール223より構成される。TCP/IPモジュール221はTCP/IPプロトコルでのネットワーク通信を行う。HTTPモジュール222はトランスポート・プロトコルとしてTCPを使用し、HTTPプロトコルでのネットワーク通信を行う。WebSocketモジュール223はトランスポート・プロトコルとしてTCPを使用し、WebSocketプロトコルでのネットワーク通信を行う。
アプリケーション224は、サーバーコンピューター100から受けた指示に基づいてネットワークプリンター140を管理する。また、アプリケーション224は、ネットワークプリンター140の管理結果をサーバーコンピューター100にアップロードする。このアプリケーション224において、ハンドシェーク制御情報管理モジュール225はサーバーコンピューター100から送信されたハンドシェーク制御情報を受信・解釈する。そして、ハンドシェーク制御情報によって指定されたタイミングに従って、WebSocketモジュール223を通じてWebSocketプロトコルのハンドシェーク処理を開始する。探索モジュール226は、サーバーコンピューター100からの指示を受けてLAN接続されたネットワークプリンター140を探索する。
この探索モジュール226が探索に使用する通信プロトコルの例としては、SNMP(Simple Network Management Protocol)やSLP(Service Location Protocol)等が挙げられる。その他として、WS−Discovery(Web Services Dynamic Discovery)などの通信プロトコルを使用してもよい。また、探索モジュール226はネットワークプリンター140の探索結果を、ネットワークモジュール200を介してサーバーコンピューター100にアップロードする。
ファームウェア配信モジュール227は、サーバーコンピューター100からの指示を受けてLAN接続されたネットワークプリンター140にファームウェアを配信する。また、ファームウェア配信モジュール227は、ネットワークプリンター140へファームウェア配信結果を、ネットワークモジュール200を介してサーバーコンピューター100にアップロードする。設定情報配信モジュール228は、サーバーコンピューター100からの指示を受けてLAN接続されたネットワークプリンター140に設定情報を配信する。また、設定情報配信モジュール228は、ネットワークプリンター140へ設定情報配信結果を、ネットワークモジュール200を介してサーバーコンピューター100にアップロードする。
続いて、ネットワークプリンター140のソフトウェア構成を説明する。ネットワークプリンター140において、各種モジュールはROM144或いは外部メモリ150に保存されたファイルとして存在し、実行時にRAM143にロードされ実行される。ネットワークモジュール240は、任意の通信プロトコルを使用してクライアントコンピューター120とのネットワーク通信を行う。印刷処理モジュール241は、クライアントコンピューター120から送信された印刷ジョブの受信及び制御、印刷処理を行う。
ファームウェア管理モジュール242は、ネットワークプリンター140のファームウェアの管理を行う。ファームウェア管理モジュール242がネットワークモジュール240経由でクライアントコンピューター120上のファームウェア配信モジュール227からファームウェア配信指示を受信すると、そのファームウェアで自機のファームウェアを更新する。そして、ファームウェア更新結果を応答としてクライアントコンピューター120上のファームウェア配信モジュール227に返却する。
設定情報管理モジュール243は、ネットワークプリンター140の設定情報の管理を行う。ここで設定情報とは、例えばSNMPv1設定、MIBアクセス設定、SNMPv3設定、管理用パスワード設定、設置場所等である。設定情報管理モジュール243がネットワークモジュール240経由でクライアントコンピューター120上の設定情報配信モジュール228から設定情報配信指示を受信すると、その設定情報で自機の設定を更新する。そして、設定情報更新結果を応答としてクライアントコンピューター120上の設定情報配信モジュール228に返却する。
以上の構成において、サーバーコンピューター100が、クライアントコンピューター120から送信されたHTTPリクエストを受信した際の動作を、図4に示すフローチャートを用いて説明する。
S400で、HTTPモジュール202がクライアントコンピューター120からHTTPリクエストをTCP/IPモジュール201を経由して受信する。S401でハンドシェーク制御情報管理モジュール209が、アプリケーション205がハンドシェークを要求しているか否かを判定する。アプリケーション205がハンドシェークを要求しているか否かの判定は、例えばデータベースサーバーサービスモジュール210の各テーブルに格納された値に基づいて判定してもよい。
ここでは、クライアント・サービス管理テーブル302でクライアントコンピューター120とファームウェア配信サービスが紐づけられ、ファームウェア管理テーブル306に近い将来リリース予定のファームウェアが登録されているケースを考える。アプリケーション205は、ファームウェアがリリースされ次第、なるべく早くクライアントコンピューター120経由でネットワークプリンター140に対してPush通信でファームウェアを配信したい。よって、この例では、ハンドシェーク制御情報管理モジュール209がハンドシェーク要求あり、と判定する。
また、別の例として、設定情報配信タスク管理テーブル307やファームウェア配信タスク管理テーブル308に、一定時間内に実行予定のタスクが任意数以上登録されているケースを考える。通常であれば、クライアントコンピューター120のアプリケーション224が定期的にサーバーコンピューター100にアクセスし(ポーリング)、サーバーコンピューター100上に登録されたタスクの情報を取得してタスクを実行する。しかし、サーバーコンピューター100に登録されたタスクが任意数よりも多い場合、サーバーコンピューター100はクライアントコンピューター120からの定期アクセスを待たずに直ちにPush通信でタスク実行を指示したい。よって、この例でも、ハンドシェーク制御情報管理モジュール209がハンドシェーク要求あり、と判定する。
更に、他の例として、クライアント・サービス管理テーブル302に、新たにクライアントコンピューター120と設定情報配信サービスが紐付けられたケースを考える。この場合、クライアントコンピューター120のアプリケーション224は新規にネットワークプリンター140を探索したらPush通信で直ちにネットワークプリンター140に対して初期設定を配信したい。よって、この例でも、ハンドシェーク制御情報管理モジュール209がハンドシェーク要求あり、と判定する。
上述のように、ハンドシェーク制御情報管理モジュール209は、例えばデータベースサーバーサービスモジュール210の各テーブルに格納された値に基づいて、アプリケーション205がハンドシェークを要求しているか否かを判定する。尚、ハンドシェーク制御情報管理モジュール209が、データベースサーバーサービスモジュール210に格納された値以外の情報に基づき、アプリケーション205がハンドシェークを要求しているか否かを判定してもよい。この場合、ハンドシェーク制御情報管理モジュール209は、サーバーコンピューター100のメモリやハードディスク等のリソース消費状況、ネットワーク帯域の混雑状況等に基づいて判定してもよい。
S401で、アプリケーション205がハンドシェークを要求していると判定した場合はS402へ進み、そうでない場合はS408へ進む。S402ではハンドシェーク制御情報管理モジュール209が、アプリケーション205の要求するハンドシェークがクライアントコンピューター120上のイベントをトリガーに開始するものか否かを判定する。上述の例で言うと、まずファームウェアリリース時にPush通信でファームウェアを配信する場合、サーバーコンピューター100上でのファームウェアリリースをトリガーにハンドシェークが開始される。よって、S402でハンドシェーク制御情報管理モジュール209が、ハンドシェークはクライアントコンピューター120上のイベントをトリガーに開始するものではないと判定する。
次に、サーバーコンピューター100からPush通信でタスク実行を指示する場合、サーバーコンピューター100上で登録タスク数が任意数以上になったことをトリガーにハンドシェークが開始される。よって、この場合もS402で、ハンドシェーク制御情報管理モジュール209が、ハンドシェークはクライアントコンピューター120上のイベントをトリガーに開始するものではないと判定する。
最後に、新規に探索されたネットワークプリンター140に対して初期設定を配信する場合、クライアントコンピューター120がネットワークプリンター140を探索したらそれをトリガーにハンドシェークが開始される。よって、この場合はS402で、ハンドシェーク制御情報管理モジュール209が、ハンドシェークはクライアントコンピューター120上のイベントをトリガーに開始するものであると判定する。
S402で、ハンドシェークがクライアントコンピューター120上のイベントをトリガーに開始するものであると判定した場合はS404へ進み、そうでない場合はS403へ進む。S403ではハンドシェーク制御情報管理モジュール209がアプリケーション205の要求するハンドシェークは周期的に開始するものか否かを判定する。上述の例で言うと、まずファームウェアリリース時にPush通信でファームウェアを配信する場合、ファームウェアの配信は一回行われるのみである。よって、S403でハンドシェーク制御情報管理モジュール209が、ハンドシェークは周期的に開始するものではない、と判定する。
一方、サーバーコンピューター100からPush通信でタスク実行を指示する場合は、サーバーコンピューター100上での登録タスク数が任意数以下になるまで、周期的にタスク実行が指示される。よって、この場合は、S403でハンドシェーク制御情報管理モジュール209が、ハンドシェークは周期的に開始するものであると判定する。
S403で、ハンドシェークが周期的に開始するものであると判定した場合はS405へ進み、そうでない場合はS406へ進む。S404〜S406では、ハンドシェーク制御情報管理モジュール209がハンドシェーク制御情報を生成する。このハンドシェーク制御情報の例を図5に示す。尚、図5では、XML形式による記述の例を示しているが、他の形式で記述されていてもよい。また、ハンドシェーク開始のトリガー(起因)となる第1の条件(500〜502)については、S404〜S406の説明の中で述べる。
S404ではハンドシェーク制御情報管理モジュール209が、クライアントコンピューター120上のイベントをトリガーにハンドシェークを開始するように指定されたハンドシェーク制御情報を生成する。クライアントコンピューター120上のイベントをトリガーにハンドシェークを開始するように指定されたハンドシェーク制御情報の例を図5の500に示す。この例では、ハンドシェーク開始のトリガーとなるアセンブリ、クラス、イベントをXML形式で記述している。
S405ではハンドシェーク制御情報管理モジュール209が、指定時刻以降、周期的にハンドシェークを開始するように指定されたハンドシェーク制御情報を生成する。指定時刻以降、周期的にハンドシェークを開始するように指定されたハンドシェーク制御情報の例を図5の501に示す。この例では、ハンドシェークの開始時刻、終了時刻、周期をXML形式で記述している。
S406ではハンドシェーク制御情報管理モジュール209が、ハンドシェークが指定時刻に一回のみ開始されるように指定されたハンドシェーク制御情報を生成する。指定時刻に一回のみハンドシェークを開始するように指定されたハンドシェーク制御情報の例を図5の502に示す。この例では、ハンドシェークの開始時刻をXML形式で記述している。
S407で、ハンドシェーク制御情報管理モジュール209が、S404〜S406で生成されたハンドシェーク制御情報をHTTPモジュール202が作成したHTTPレスポンスに付与する。ここで、HTTPレスポンスへのハンドシェーク制御情報の付与は、例えばHTTPのヘッダーやボディに含めることで行う。そして、S408で、HTTPモジュール202がHTTPレスポンスをクライアントコンピューター120に送信し、この処理を終了する。
尚、WebSocketのハンドシェーク(初期通信)を行う起因となる第1の条件として予め定めれたイベント、スケジュール情報及び周期を例に挙げたが、本発明はこれだけに限るものではない。
次に、クライアントコンピューター120がサーバーコンピューター100にHTTPリクエストを送信し、受信したHTTPレスポンスに基づいてハンドシェーク開始を登録する際の動作を、図6に示すフローチャートを用いて説明する。
S600で、HTTPモジュール222が、TCP/IPモジュール221を経由してHTTPリクエストをサーバーコンピューター100に送信する。S601で、HTTPモジュール222が、TCP/IPモジュール221を経由してサーバーコンピューター100から送信されたHTTPレスポンスを受信する。S602で、ハンドシェーク制御情報管理モジュール225が、S601で受信したHTTPレスポンスにハンドシェーク制御情報が付与されているか否かを判定する。ハンドシェーク制御情報が付与されている場合はS603へ進み、付与されていない場合はそのまま処理を終了する。
S603では、ハンドシェーク制御情報管理モジュール225が、HTTPレスポンスからハンドシェーク制御情報を取得する。そして、S604で、ハンドシェーク制御情報管理モジュール225が、取得したハンドシェーク制御情報の内容がクライアントコンピューター120上のイベントをトリガーにハンドシェークを開始するように記述されているか否かを判定する。判定した結果、ハンドシェーク制御情報の内容がクライアントコンピューター120上のイベントをトリガーにハンドシェークを開始するように記述されている場合はS606へ進み、そうでない場合はS605へ進む。
S605ではハンドシェーク制御情報管理モジュール225が、取得したハンドシェーク制御情報の内容が指定時刻以降、周期的にハンドシェークを開始するように記述されているか否かを判定する。判定した結果、ハンドシェーク制御情報の内容が指定時刻以降、周期的にハンドシェークを開始するように記述されている場合はS607へ進み、そうでない場合はS608へ進む。S606〜S608ではハンドシェーク制御情報管理モジュール225が、WebSocketモジュール223に対してハンドシェーク開始を登録する。
S606では、ハンドシェーク制御情報管理モジュール225が、WebSocketモジュール223に対してクライアントコンピューター120上のイベントをトリガーにハンドシェークを開始するようにハンドシェーク開始を登録する。また、S607では、ハンドシェーク制御情報管理モジュール225が、WebSocketモジュール223に対して指定時刻以降、周期的にハンドシェークを開始するようにハンドシェーク開始を登録する。また、S608では、ハンドシェーク制御情報管理モジュール225が、WebSocketモジュール223に対して指定時刻に一回のみハンドシェークを開始するようにハンドシェーク開始を登録する。
以上の処理により、Push通信を行う際に、サーバーコンピューター100からクライアントコンピューター120に対してPush通信を行うためのハンドシェークを開始するように指示することができる。よって、Push通信を行うためのサーバーコンピューター100とクライアントコンピューター120との間の通信コネクションを持続維持する時間を短くすることができる。そのため、サーバーコンピューター100のメモリやCPU使用、コネクション等のリソース消費を抑えることができる。
[第2の実施形態]
第1の実施形態では、Push通信を行う時のみ、サーバーコンピューター100からクライアントコンピューター120に対してハンドシェーク開始を指示することで、必要以上にサーバーのリソースを消費せずにPush通信を実現した。
第2の実施形態では、サーバーコンピューター100が自身に登録されているPush通信タスクを確認し、タスクの実行スケジュール間隔が一定時間以内であればWebSocketセッションのKeepAliveを指示する処理を説明する。このWebSocketセッションのKeepAlive指示によりPush通信完了後のClose処理をスキップし、次回以降のPush通信で接続を切断することなくそのまま使用することでCPU負荷や時間の無駄を節約することができる。
第2の実施形態におけるPush通信型クライアント・サーバーシステムのシステム構成及びハードウェア構成・ソフトウェア構成は、第1の実施形態における図1及び図2と同様であるため、説明は省略する。
まず、サーバーコンピューター100がクライアントコンピューター120から送信されたHTTPリクエストを受信する際の動作を、図7に示すフローチャートを用いて説明する。尚、この説明の一部は、第1の実施形態の図4と重複するため、異なる部分のみを以下に説明する。
S700で、ハンドシェーク制御情報管理モジュール209が、Push通信完了後にClose処理が必要か否かを判定する。ここでPush通信完了後にClose処理が必要か否かの判定は、例えば設定情報配信タスク管理テーブル307やファームウェア配信タスク管理テーブル308に任意の閾値時間内の間隔で実行予定のタスクが登録されているか否かで判定する。しかしながら、Push通信完了後にClose処理を行っても、結局、短い間隔しか空けずに再度Push通信を行うためのハンドシェークを行う必要があり、サーバーコンピューター100のCPU負荷や時間を消費してしまう。そこで、設定情報配信タスク管理テーブル307やファームウェア配信タスク管理テーブル308に任意の閾値時間内の間隔で実行予定のタスクが登録されている場合は、接続を維持した方が効率的なので、Push通信完了後にClose処理が不要と判定する。もちろん、ハンドシェーク制御情報管理モジュール209が上記以外の方法で、Push通信完了後にClose処理が必要か否かを判定してもよい。
S700でClose処置が必要と判断した場合はS701へ進み、そうでない場合はS702へ進む。このS701では、ハンドシェーク制御情報管理モジュール209が、Push通信完了後にClose処理を行うようにハンドシェーク制御情報に設定する。一方、S702では、ハンドシェーク制御情報管理モジュール209が、WebSocketセッションのKeepAliveを行うために、Push通信完了後にClose処理を行わないようにハンドシェーク制御情報に設定する。
Push通信完了後にClose処理を行うか否かを設定したハンドシェーク制御情報の例を図8に示す。尚、図8では、XML形式による記述の例を示しているが、もちろん、他の形式で記述されていてもよい。図8では、closeタグでPush通信完了後にClose処理を行うか否かを記述している。この図8に示す800、801、802は第1の実施形態で説明した図5に示す第1の条件500、501、502にそれぞれ対応する第2の条件である。
次に、クライアントコンピューター120がサーバーコンピューター100にHTTPリクエストを送信し、受信したHTTPレスポンスに基づいて、Close処理を行うか否かを設定する際の動作を、図9に示すフローチャートを用いて説明する。尚、この説明の一部は、第1の実施形態の図6と重複するため、異なる部分のみを以下に説明する。
S900で、ハンドシェーク制御情報管理モジュール225が、S603で取得したハンドシェーク制御情報に基づいて、Push通信完了後にClose処理が必要か否かを判定する。ここでClose処理が必要と判定した場合はS901へ進み、必要でないと判定した場合はS902へ進む。S901では、ハンドシェーク制御情報管理モジュール225が、WebSocketモジュール223に対してS606〜608で登録されたハンドシェーク開始後に行われるPush通信完了後にClose処理を行うように設定を行う。
一方、S902では、ハンドシェーク制御情報管理モジュール225が、WebSocketモジュール223に対してS606〜608で登録されたハンドシェーク開始後に行われるPush通信完了後にClose処理をスキップするように設定を行う。
尚、Push通信完了後のClose処理をスキップした場合、最終的なWebSocket通信のClose処理はサーバーコンピューター100もしくはクライアントコンピューター120の何れから行ってもよい。例えば、サーバーコンピューター100からClose処理を行う場合、サーバーコンピューター100が任意の閾値時間を経過して実行予定のタスクが登録されていないと判断すると、Close処理を行う。一方、クライアントコンピューター120からClose処理を行う場合、所定のタイムアウト時間が経過すると、Close処理を行う。
以上の処理により、サーバーコンピューター100が登録されているPush通信タスクの実行スケジュール間隔が一定以内であればWebSocketセッションのKeepAliveを指示し、Push通信完了後のClose処理をスキップする。それにより、次回以降のPush通信においても接続をそのまま使用することで、サーバーコンピューター100のCPU負荷や時間の無駄を節約することができる。
[第3の実施形態]
第2の実施形態では、サーバーコンピューター100がPush通信タスクの実行スケジュール間隔が一定以内であればWebSocketセッションのKeepAliveを指示していた。
第3の実施形態では、クライアントコンピューター120上で時刻指定もしくは周期実行のハンドシェーク開始が登録された場合、ハンドシェークを開始する前にサーバーコンピューター100にハンドシェーク要求有無の問い合わせを行う。
第3の実施形態におけるPush通信型クライアント・サーバーシステムのシステム構成及びハードウェア構成・ソフトウェア構成は、第1の実施形態における図1及び図2と同様であるため、説明は省略する。
また、サーバーコンピューター100がクライアントコンピューター120から送信されたHTTPリクエストを受信する際の動作は、第1の実施形態の図4と同様であるため、説明は省略する。
更に、クライアントコンピューター120がサーバーコンピューター100にHTTPリクエストを送信し、受信したHTTPレスポンスに基づいてハンドシェーク開始を登録する際の動作は、第1の実施形態の図6と同様であるため、説明は省略する。
ここで、クライアントコンピューター120がハンドシェーク要求に基づいて時刻指定もしくは周期実行でハンドシェークを開始する際の動作を、図10に示すフローチャートを用いて説明する。
まず、S1000で、ハンドシェーク制御情報管理モジュール225が、ネットワークモジュール220を経由してサーバーコンピューター100に対してハンドシェーク要求有無取得リクエストを送信する。S1001で、ハンドシェーク制御情報管理モジュール225が、ネットワークモジュール220を経由してサーバーコンピューター100から送信されたレスポンスを受信する。そして、S1002で、ハンドシェーク制御情報管理モジュール225が、受信したレスポンスに基づいてハンドシェーク要求の有無を判定する。ハンドシェーク要求があると判定した場合はS1003へ進み、WebSocketモジュール223がWebSocketプロトコルのハンドシェークを開始する。一方、ハンドシェーク要求がないと判定した場合はハンドシェークを開始せず、処理を終了する。
次に、サーバーコンピューター100がクライアントコンピューター120からハンドシェーク要求有無取得リクエストを受信し、レスポンスを送信する際の動作を、図11に示すフローチャートを用いて説明する。
まず、S1100で、ハンドシェーク制御情報管理モジュール209が、ネットワークモジュール200経由でハンドシェーク要求有無取得リクエストを受信する。S1101で、ハンドシェーク制御情報管理モジュール209が、アプリケーション205がハンドシェークを要求しているか否かを判定する。アプリケーション205がハンドシェークを要求しているか否かの判定は、例えば第1の実施形態のS401の説明で記載の方法などで行う。
ここで、ハンドシェークによるWebSocketプロトコルの確立が不要と判断する場合は、クライアントコンピューター120に対して緊急のファームアップの指示や閾値を上回るような多くの指示がサーバーコンピューター100に存在しない場合である。
S1101でアプリケーション205がハンドシェークを要求していると判定した場合はS1102へ進み、そうでない場合はS1103へ進む。このS1102では、ハンドシェーク制御情報管理モジュール209が、ハンドシェーク要求ありをレスポンスとしてネットワークモジュール200経由でクライアントコンピューター120に送信する。
一方、S1103では、ハンドシェーク制御情報管理モジュール209が、ハンドシェーク要求なしをレスポンスとしてネットワークモジュール200経由でクライアントコンピューター120に送信する。
以上の処理により、クライアントコンピューター120上で時刻指定もしくは周期実行のハンドシェーク開始が登録された場合、ハンドシェークを開始する前にサーバーコンピューター100にハンドシェーク要求の有無を確認する。よって、不要なハンドシェーク開始を減らすことができ、必要以上にサーバーコンピューター100のコネクション等のリソースを消費することを防ぐことができる。
また、実施形態では、ハンドシェークに先立って、クライアントコンピューター120がその要否のリクエストを行っていた。しかしながら、そのようなリクエストを行わなくても、サーバーコンピューター100が不要と判断した場合には、クライアントコンピューター120からのハンドシェークの要求に対して、無視する、又はエラーを返すなどするといった手法をとってもよい。これにより、不要なWebSocketプロトコルの確立を抑制することが可能となる。
[他の実施形態]
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

Claims (24)

  1. クライアント装置とインターネットを介して通信するサーバー装置であって、
    前記クライアント装置からHTTP(HyperText Transfer Protocol)プロトコルで問い合わせを受信する受信手段と、
    前記受信した問い合わせの応答として、HTTPプロトコルから、前記クライアント装置からの要求なしに前記サーバー装置から指示が可能となる、HTTPプロトコルとは異なる特定の通信方式に切り替えるための初期通信を行う第1の条件を送信する送信手段と、
    前記クライアント装置と前記第1の条件に従う初期通信を行うことにより前記特定の通信方式に切り替え、前記特定の通信方式により当該クライアント装置に対して送信の指示を行う指示手段と、
    を有することを特徴とするサーバー装置。
  2. 前記特定の通信方式は、WebSocketであることを特徴とする請求項1に記載のサーバー装置。
  3. 前記初期通信は、前記WebSocketのハンドシェークであることを特徴とする請求項2に記載のサーバー装置。
  4. 前記第1の条件は、さらに、スケジュール情報及び周期の少なくとも何れかを含むことを特徴とする請求項1乃至3の何れか1項に記載のサーバー装置。
  5. 前記第1の条件は、ネットワークを介して新規に画像形成装置を探索したことであることを特徴とする請求項1乃至4の何れか1項に記載のサーバー装置。
  6. 前記クライアント装置は、画像形成装置であることを特徴とする請求項1乃至の何れか1項に記載のサーバー装置。
  7. 前記第1の条件に対応する第2の条件に従って前記特定の通信方式による通信を切断する切断手段を更に有することを特徴とする請求項1乃至の何れか1項に記載のサーバー装置。
  8. 前記切断手段は、前記第2の条件として、前記クライアント装置に対して送信すべき指示がない場合に、前記特定の通信方式による通信を切断することを特徴とする請求項に記載のサーバー装置。
  9. 前記クライアント装置からの前記第1の条件に従う初期通信が行われる際に、前記クライアント装置に対して送信すべき指示がない場合、前記特定の通信方式に切り替えないよう制御することを特徴とする請求項1乃至の何れか1項に記載のサーバー装置。
  10. クライアント装置とインターネットを介して通信するサーバー装置の制御方法であって、
    受信手段が、前記クライアント装置からHTTP(HyperText Transfer Protocol)プロトコルで問い合わせを受信する受信工程と、
    送信手段が、前記受信した問い合わせの応答として、HTTPプロトコルから、前記クライアント装置からの要求なしに前記サーバー装置から指示が可能となる、HTTPプロトコルとは異なる特定の通信方式に切り替えるための初期通信を行う第1の条件を送信する送信工程と、
    指示手段が、前記クライアント装置と前記第1の条件に従う初期通信を行うことにより前記特定の通信方式に切り替え、前記特定の通信方式により当該クライアント装置に対して送信の指示を行う指示工程と、
    を有することを特徴とするサーバー装置の制御方法。
  11. 前記特定の通信方式は、WebSocketであることを特徴とする請求項10に記載の制御方法。
  12. 前記第1の条件は、さらに、スケジュール情報及び周期の少なくとも何れかを含むことを特徴とする請求項10又は11に記載の制御方法。
  13. 前記第1の条件に対応する第2の条件に従って前記特定の通信方式による通信を切断する切断工程を更に有することを特徴とする請求項10乃至12の何れか1項に記載の制御方法。
  14. 前記切断工程では、前記第2の条件として、前記クライアント装置に対して送信すべき指示がない場合に、前記特定の通信方式による通信を切断することを特徴とする請求項13に記載の制御方法。
  15. 前記クライアント装置からの前記第1の条件に従う初期通信が行われる際に、前記クライアント装置に対して送信すべき指示がない場合、前記特定の通信方式に切り替えないよう制御することを特徴とする請求項10乃至14の何れか1項に記載の制御方法。
  16. 請求項1乃至の何れか1項に記載のサーバー装置の各手段としてコンピューターを機能させるためのプログラム。
  17. クライアント装置と、当該クライアント装置とインターネットを介して通信するサーバー装置とを含むシステムであって、
    前記サーバー装置は、
    前記クライアント装置からHTTP(HyperText Transfer Protocol)プロトコルで問い合わせを受信する受信手段と、
    前記受信した問い合わせの応答として、HTTPプロトコルから、前記クライアント装置からの要求なしに前記サーバー装置から指示が可能となる、HTTPプロトコルとは異なる特定の通信方式に切り替えるための初期通信を行う第1の条件を送信する送信手段と、
    前記クライアント装置と前記第1の条件に従う初期通信を行うことにより前記特定の通信方式に切り替え、前記クライアント装置からの要求がなくても、前記特定の通信方式により当該クライアント装置に対して送信の指示を行う指示手段と、を有し、
    前記クライアント装置は、
    前記サーバー装置から、前記第1の条件を受信する受信手段と、
    前記受信された前記第1の条件に従い、前記サーバー装置に対して、前記初期通信を開始する制御手段と、を有する
    ことを特徴とするシステム。
  18. 前記特定の通信方式は、WebSocketであることを特徴とする請求項17に記載のシステム。
  19. 前記第1の条件は、さらに、スケジュール情報及び周期の少なくとも何れかを含むことを特徴とする請求項17又は18に記載のシステム。
  20. 前記クライアント装置は、画像形成装置であることを特徴とする請求項17乃至19の何れか1項に記載のシステム。
  21. 前記サーバー装置が、前記第1の条件に対応する第2の条件に従って前記特定の通信方式による通信を切断する切断手段を更に有することを特徴とする請求項17乃至20の何れか1項に記載のシステム。
  22. 前記切断手段は、前記第2の条件として、前記クライアント装置に対して送信すべき指示がない場合に、前記特定の通信方式による通信を切断することを特徴とする請求項21に記載のシステム。
  23. 前記サーバー装置が、前記クライアント装置からの前記第1の条件に従う初期通信が行われる際に、前記クライアント装置に対して送信すべき指示がない場合、前記特定の通信方式に切り替えないよう制御することを特徴とする請求項17乃至22の何れか1項に記載のシステム。
  24. クライアント装置と、当該クライアント装置とインターネットを介して通信するサーバー装置とを含むシステムにおける制御方法であって、
    前記サーバー装置は、
    前記クライアント装置からHTTP(HyperText Transfer Protocol)プロトコルで問い合わせを受信する受信工程と、
    前記受信した問い合わせの応答として、HTTPプロトコルから、前記クライアント装置からの要求なしに前記サーバー装置から指示が可能となる、HTTPプロトコルとは異なる特定の通信方式に切り替えるための初期通信を行う第1の条件を送信する送信工程と、
    前記クライアント装置と前記第1の条件に従う初期通信を行うことにより前記特定の通信方式に切り替え、前記クライアント装置からの要求がなくても、前記特定の通信方式により当該クライアント装置に対して送信の指示を行う指示工程と、を実行し、
    前記クライアント装置は、
    前記サーバー装置から、前記第1の条件を受信する受信工程と、
    前記受信された前記第1の条件に従い、前記サーバー装置に対して、前記初期通信を開始する制御工程と、を実行する
    ことを特徴とする制御方法。
JP2012108912A 2012-05-10 2012-05-10 サーバー装置、システム及びその制御方法 Active JP6055201B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2012108912A JP6055201B2 (ja) 2012-05-10 2012-05-10 サーバー装置、システム及びその制御方法
US14/116,216 US9596121B2 (en) 2012-05-10 2013-02-27 Server apparatus communicating with a client apparatus via the internet, system, and control method thereof
PCT/JP2013/056045 WO2013168458A1 (en) 2012-05-10 2013-02-27 Server apparatus, system, and control method thereof
CN201380023983.4A CN104272280B (zh) 2012-05-10 2013-02-27 服务器装置、系统及其控制方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012108912A JP6055201B2 (ja) 2012-05-10 2012-05-10 サーバー装置、システム及びその制御方法

Publications (3)

Publication Number Publication Date
JP2013235518A JP2013235518A (ja) 2013-11-21
JP2013235518A5 JP2013235518A5 (ja) 2015-05-28
JP6055201B2 true JP6055201B2 (ja) 2016-12-27

Family

ID=49550517

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012108912A Active JP6055201B2 (ja) 2012-05-10 2012-05-10 サーバー装置、システム及びその制御方法

Country Status (4)

Country Link
US (1) US9596121B2 (ja)
JP (1) JP6055201B2 (ja)
CN (1) CN104272280B (ja)
WO (1) WO2013168458A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9037735B1 (en) * 2013-03-15 2015-05-19 Kaazing Corporation Establishing websocket protocol extensions
JP6287215B2 (ja) * 2014-01-08 2018-03-07 セイコーエプソン株式会社 Pos制御システム、印刷装置、及びpos制御システムの制御方法
US9231998B2 (en) * 2014-01-22 2016-01-05 Ford Global Technologies, Llc Vehicle-specific computation management system for cloud computing
US11474767B1 (en) * 2014-05-28 2022-10-18 Amazon Technologies, Inc. Print from web services platform to local printer
JP6137149B2 (ja) * 2014-12-01 2017-05-31 コニカミノルタ株式会社 情報処理システム、クラウドサーバー、装置制御方法および装置制御プログラム
JP6311666B2 (ja) * 2015-07-01 2018-04-18 コニカミノルタ株式会社 通信システム、管理サーバおよびプログラム
CN105138598B (zh) * 2015-08-05 2018-11-09 深圳联友科技有限公司 远程定时任务的方法及系统
US10187267B2 (en) * 2015-10-15 2019-01-22 Ricoh Company, Ltd. Device management system, device management method, and server apparatus
CN106899652B (zh) * 2016-07-20 2020-08-21 阿里巴巴集团控股有限公司 一种推送业务处理结果的方法及装置
CN114281294A (zh) * 2021-12-31 2022-04-05 深圳市风扇屏技术有限公司 一种基于Sub-GHz的旋转显示系统及其方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0762669B1 (en) * 1995-08-18 2011-06-15 Ntt Mobile Communications Network Inc. Communication mode switching method for mobile station
JPH10126409A (ja) * 1996-10-18 1998-05-15 Nec Eng Ltd アラーム情報収集方式
JP2000293452A (ja) * 1999-04-01 2000-10-20 Ntt Data Corp データ中継装置、データ通信システム、データ通信方法及び記録媒体
US7194526B2 (en) * 2000-09-22 2007-03-20 Kyocera Corporation Network device management method, and network devices
JP3818901B2 (ja) * 2000-12-21 2006-09-06 富士通株式会社 記録媒体、ネットワーク監視装置、および、プログラム
WO2003065199A1 (fr) * 2002-01-29 2003-08-07 Matsushita Electric Industrial Co., Ltd. Procede de transmission de donnees d'impression, systeme d'impression et imprimante
JP2004157960A (ja) * 2002-01-29 2004-06-03 Matsushita Electric Ind Co Ltd 印刷データ転送方法、印刷システム及びプリンタ装置
JP4873684B2 (ja) 2005-08-30 2012-02-08 キヤノン株式会社 デジタル放送用受信装置及び印刷方法、プログラム並びに記憶媒体
US8220042B2 (en) 2005-09-12 2012-07-10 Microsoft Corporation Creating secure interactive connections with remote resources
JP4916227B2 (ja) * 2006-06-14 2012-04-11 キヤノン株式会社 デバイスの管理装置及びその管理装置の制御方法
US9459936B2 (en) * 2009-05-01 2016-10-04 Kaazing Corporation Enterprise client-server system and methods of providing web application support through distributed emulation of websocket communications
US20100299338A1 (en) * 2009-05-19 2010-11-25 Nokia Corporation Method and apparatus for providing device compatibility service
JP5476975B2 (ja) * 2009-12-18 2014-04-23 船井電機株式会社 ネットワーク間データ配信システム、情報通信端末、コンテンツ配信サーバ
US8812733B1 (en) * 2010-08-19 2014-08-19 Google Inc. Transport protocol independent communications library
WO2013031556A1 (ja) * 2011-08-26 2013-03-07 日本放送協会 受信機および受信方法
US8930492B2 (en) * 2011-10-17 2015-01-06 Blackberry Limited Method and electronic device for content sharing

Also Published As

Publication number Publication date
WO2013168458A1 (en) 2013-11-14
CN104272280A (zh) 2015-01-07
CN104272280B (zh) 2017-05-03
US9596121B2 (en) 2017-03-14
JP2013235518A (ja) 2013-11-21
US20140201263A1 (en) 2014-07-17

Similar Documents

Publication Publication Date Title
JP6055201B2 (ja) サーバー装置、システム及びその制御方法
JP5885410B2 (ja) プルプリントシステム、プリントサーバおよびその制御方法、並びにプログラム
JP5133430B2 (ja) ネットワークにおいて印刷ドキュメントをクライアントサイドでレンダリングする方法、システム、およびコンピュータ可読媒体
JP6140937B2 (ja) ネットワークデバイス、プログラム、システムおよび方法
JP5159071B2 (ja) 通信システム及び通信装置とその制御方法
JP2010282610A (ja) ネットワークシステム及びその管理方法
JP2012118733A (ja) 印刷システム、印刷方法、およびプログラム
US8826176B2 (en) Information processing apparatus and control method
WO2006064650A1 (ja) プロファイル取得方法、装置、プログラム、及び、記録媒体
JP6039446B2 (ja) Webサーバ装置、制御方法、そのプログラム。
US8867073B2 (en) Server apparatus, network system, job processing method, and storage medium
JP5419637B2 (ja) 管理装置、その方法及びプログラム
JP2013161450A (ja) ネットワークプリンター管理システム、ネットワークプリンター管理装置及びその制御方法
US20070250607A1 (en) Apparatus, system and method for executing discovery in network
JP4498045B2 (ja) 画像処理装置及びその制御方法及びプログラム
JP4532238B2 (ja) オンデマンドサービス提供システム
JP2012079171A (ja) ジョブ実行システム、ジョブ実行装置及びプログラム
JP6265473B2 (ja) Webサービスシステム、Webサービスメッセージ仲介方法およびプロキシサーバ
JP5924884B2 (ja) 管理装置、管理方法、及びプログラム
JP2021152796A (ja) プリンタ上で動作する複数のアプリケーションにプッシュ通知する方法
JP2007087129A (ja) 情報処理装置、デバイス設定方法、記憶媒体、プログラム
JP6288206B2 (ja) プログラム及び装置
CN114675971A (zh) 一种数据配置方法、装置、设备及可读存储介质
JP6226736B2 (ja) 情報処理装置、制御方法およびプログラム
JP2014186473A (ja) プログラム及び装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150410

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150410

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160401

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160520

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161202

R151 Written notification of patent or utility model registration

Ref document number: 6055201

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151