(58)【調査した分野】(Int.Cl.,DB名)
前記第1の確立部は、前記無線インターフェースを介した前記第1の無線接続を前記第1の外部装置と確立して、前記通信装置が親局として動作する第1の無線ネットワークに前記第1の外部装置を子局として参加させる、請求項1に記載の通信装置。
前記第1の外部装置は、サーバから、インターネットを介して、前記第1のIPアドレスが記述されているコンピュータプログラムを受信して、前記コンピュータプログラムを利用して、前記第1のIPアドレスを送信先として前記対象無線設定情報を前記通信装置に送信し、
前記通信装置は、さらに、
前記第1の無線ネットワークを利用して、前記第1の外部装置から、前記無線インターフェースを介して、通信相手を前記サーバから前記通信装置に切り替えるためのクロスドメイン要求を受信する要求受信部を備え、
前記設定受信部は、前記クロスドメイン要求が受信された後に、前記第1の外部装置から前記対象無線設定情報を受信する、請求項5に記載の通信装置。
【発明を実施するための形態】
【0012】
(システムの構成;
図1)
図1に示されるように、通信システム2は、プリンタ10と、携帯端末100と、サーバ200と、PC8と、を備える。携帯端末100は、アクセスポイント(以下では「AP(Access Pointの略)」と記載する)6とのWi−Fi接続を確立している。AP6がインターネット4に接続されているので、携帯端末100は、AP6を介して、インターネット4上のサーバ200との通信を実行することができる。
【0013】
プリンタ10は、SoftAP(Software Access Pointの略)として動作して、携帯端末100とのWi−Fi接続を確立することができる。この場合、プリンタ10は、当該Wi−Fi接続を利用して、携帯端末100から、AP6とのWi−Fi接続を確立するための無線設定情報を受信して、AP6とのWi−Fi接続を確立する。また、プリンタ10は、WFD(Wi-Fi Direct(登録商標)の略)方式のGroupOwner(以下では「G/O」と呼ぶ)として動作して、PC8とのWi−Fi接続を確立することもできる。
【0014】
(プリンタ10の構成)
プリンタ10は、操作部12と、表示部14と、Wi−Fiインターフェース16と、印刷実行部18と、制御部30と、を備える。各部12〜30は、バス線(符号省略)に接続されている。以下では、インターフェースのことを「I/F」と記載する。操作部12は、複数個のキーを備えており、ユーザの操作を受け付ける。表示部14は、様々な情報を表示するためのディスプレイである。印刷実行部18は、インクジェット方式、レーザ方式等の印刷機構を備える。
【0015】
Wi−FiI/F16は、Wi−Fi方式に従った無線通信(以下では「Wi−Fi通信」と呼ぶ)を実行するためのI/Fである。Wi−Fi方式は、Wi−Fi Allianceによって策定された規格に準拠した無線通信方式であり、例えばIEEE(The Institute of Electrical and Electronics Engineers, Inc.の略)802.11の規格、及び、それに準ずる規格(例えば、802.11a,11b,11g,11n等)に基づく無線通信方式である。Wi−FiI/F16は、SoftAP機能をサポートしている。また、Wi−FiI/F16は、Wi−Fi Allianceによって策定されたWFD機能をサポートしている。WFDは、Wi−Fi Allianceによって作成された規格書「Wi-Fi Peer-to-Peer (P2P) Technical Specification Version1.5」に記述されている無線通信方式である。
【0016】
制御部30は、CPU32とメモリ34とを備える。CPU32は、メモリ34内に格納されているプログラム38に従って、様々な処理を実行する。メモリ34は、ROM、RAM等によって構成される。また、メモリ34は、設定プロファイル記憶領域40と、APプロファイル記憶領域42と、G/Oプロファイル記憶領域44と、を備える。
【0017】
設定プロファイル記憶領域40は、プリンタ10がSoftAPとして動作することによって形成される無線ネットワーク(以下では「SoftAPNW」と呼ぶ)で利用される無線設定情報である設定プロファイルを記憶するための領域である。設定プロファイルは、プリンタ10が出荷される前から記憶領域40内に予め記憶されていてもよいし、プリンタ10が出荷された後に、例えばインターネット上のサーバから記憶領域40内にインストールされてもよい。設定プロファイルは、SSID(Service Set Identifierの略)「setupprinter10」を含む。当該SSIDは、SoftAPNWを識別するための識別子である。設定プロファイルは、さらに、認証方式として「OPEN」を含み、暗号化方式として「NONE」を含む。このように、認証方式が「OPEN」であるので、SoftAPNWでは認証が実行されず、暗号化方式が「NONE」であるので、SoftAPNWでは暗号化通信が実行されない。従って、設定プロファイルは、認証及び暗号化通信に必要なパスワードを含まない。また、設定プロファイルは、SoftAPNWにおけるプリンタ10のIPアドレス「192.168.0.1」を含む。
【0018】
APプロファイル記憶領域42は、AP6によって形成されている無線ネットワーク(以下では「通常APNW」と呼ぶ)で利用される無線設定情報であるAPプロファイルを記憶するための領域である。APプロファイルは、プリンタ10の出荷時には記憶領域42内に記憶されていない。AP6とのWi−Fi接続が確立される場合に、APプロファイルが記憶領域42内に記憶される。
【0019】
G/Oプロファイル記憶領域44は、プリンタ10がWFD方式のG/Oとして動作することによって形成される無線ネットワーク(以下では「WFDNW」と呼ぶ)で利用される無線設定情報であるG/Oプロファイルを記憶するための領域である。G/Oプロファイルは、プリンタ10の出荷時には記憶領域44内に記憶されていない。プリンタ10がG/Oとしての動作を開始する際に、G/Oプロファイルが記憶領域44内に記憶される。
【0020】
(携帯端末100の構成)
携帯端末100は、例えば、携帯電話(例えばスマートフォン)、PDA、ノートPC、タブレットPC、携帯型音楽再生装置、携帯型動画再生装置等の可搬型の端末装置である。ただし、変形例では、携帯端末100の代わりに、据置型の端末装置(例えばデスクトップPC等)が利用されてもよい。携帯端末100は、操作部112と、表示部114と、Wi−FiI/F116と、制御部130と、を備える。各部112〜130は、バス線(符号省略)に接続されている。
【0021】
操作部112は、複数のキーを備える。ユーザは、操作部112を操作することによって、様々な指示を携帯端末100に入力することができる。表示部114は、様々な情報を表示するためのディスプレイである。表示部114は、いわゆるタッチパネルとしても機能する(即ち操作部としても機能する)。
【0022】
Wi−FiI/F116は、Wi−Fi通信を実行するためのI/Fである。Wi−FiI/F116は、SoftAP機能及びWFD機能をサポートしていてもよいし、サポートしていなくてもよい。Wi−FiI/F116は、AP6とのWi−Fi接続を確立しており、この結果、携帯端末100が、通常APNWに参加している。
【0023】
制御部130は、CPU132とメモリ134とを備える。CPU132は、メモリ134に格納されている各プログラム138,140に従って、様々な処理を実行する。メモリ134は、揮発性メモリ、不揮発性メモリ等によって構成される。メモリ134は、携帯端末100の基本的な動作を実現するためのOSプログラム138のみならず、ブラウザプログラム140を格納する。ブラウザプログラム140は、汎用的なデータ閲覧ソフトウェアであり、例えば、IE(Internet Explorer(登録商標)の略)、Safari(登録商標)、GoogleChrome(登録商標)等である。また、メモリ134は、通常APNWで利用されるAPプロファイル150(即ち、SSID「networkap」、パスワード「XXX」等)を記憶している。APプロファイルは、上記のSoftAPNWで利用される認証方式「OPEN」及び暗号化方式「NONE」よりも高いセキュリティレベルを有する。例えば、認証が実行される認証方式である「Shared Key」、「WPA-EAP」等が採用される。また、例えば、暗号化通信が実行される暗号化方式である「AES」、「TKIP」等が採用される。
【0024】
(サーバ200の構成)
サーバ200は、プリンタ10のベンダによってインターネット4上に設置される。サーバ200は、携帯端末100によってインストールされるべき設定ファイル300(
図7参照)を格納している。
【0025】
設定ファイル300は、通常APNWで利用されるAPプロファイルを携帯端末100からプリンタ10に送信して、プリンタ10とAP6との間にWi−Fi接続を確立させるための様々なコマンドを含む。特に、設定ファイル300は、携帯端末100のブラウザプログラム140によって解釈可能なマークアップ言語に従って記述されており、本実施例では、当該言語は、HTML(Hyper Text Markup Languageの略)である。ただし、変形例では、当該言語は、XML(eXtensible Markup Languageの略)等の他の言語であってもよい。また、設定ファイル300内の各コマンドは、Javascript(登録商標)に従って記述されている。
【0026】
(PC8の構成)
PC8は、デスクトップPC等の据置型の機器である。ただし、変形例では、PC8の代わりに、ノートPC、タブレットPC等の可搬型の機器が利用されてもよい。
【0027】
(プリンタ10の処理:
図2)
続いて、
図2を参照して、プリンタ10のCPU32によって実行される処理を説明する。本実施例では、ユーザが、プリンタ10を新たに購入して、例えば家庭、会社等に設定されているAP6と当該プリンタ10との間にWi−Fi接続を確立させる状況を想定している。CPU32は、ユーザによって電源ON操作が実行されると、
図2の処理を実行する。なお、以下の全ての通信は、Wi−FiI/F16を介して実行されるので、以下では、「Wi−FiI/F16を介して」という説明を省略する。
【0028】
S500では、CPU32は、プリンタ10の動作モードが設定モードであるのか否かを判断する。ここで、プリンタ10は、設定モード及び通常モードのどちらかの動作モードで動作可能である。設定モードは、プリンタ10がAP6とのWi−Fi接続を確立するためのモードである。プリンタ10がAP6とのWi−Fi接続を確立する前の状態、即ち、APプロファイル記憶領域42にAPプロファイルが記憶されていない状態では、プリンタ10は設定モードで動作する。一方、プリンタ10がAP6とのWi−Fi接続を確立した後の状態、即ち、APプロファイル記憶領域42にAPプロファイルが記憶されている状態では、プリンタ10は通常モードで動作する。CPU32は、プリンタ10の動作モードが設定モードであると判断する場合(S500でYES)に、S505に進み、プリンタ10の動作モードが通常モードであると判断する場合(S500でNO)、S545に進む。
【0029】
S505では、CPU32は、SoftAPを起動して、プリンタ10が親局として動作するSoftAPNWを形成する。この段階では、プリンタ10のみが親局としてSoftAPNWに所属している。CPU32は、SoftAPとして動作するプリンタ10によって採用されるべき各設定値を決定する。
【0030】
図3を参照して、当該各設定値を説明する。CPU32は、設定プロファイル記憶領域40から設定プロファイルを読み出して、当該設定プロファイルをSoftAPNWで利用されるべき無線設定情報として決定する。即ち、CPU32は、SoftAPNWを識別するためのSSIDとして「Setupprinter10」を決定し、SoftAPNWで利用されるべきセキュリティ情報として認証方式「OPEN」及び暗号化方式「NONE」を決定する。CPU32は、SoftAPNWで利用されるべきパスワードを決定しない。
【0031】
さらに、CPU32は、SoftAPNW内でのプリンタ10のIPアドレスとして、設定プロファイルに含まれる固定値のIPアドレス「192.168.0.1」を決定する。また、CPU32は、ポート番号「443」によって識別される1個の通信ポートのみを開放する。ここで、ポート番号「443」によって識別される通信ポートは、HTTPS(Hyper Text Transfer Protocol Secureの略)に従った通信を実行するための通信ポートである。また、CPU32は、SoftAPNWに参加可能な子局の数の上限として「1」を決定する。
【0032】
S510では、CPU32は、携帯端末100とのWi−Fi接続を確立するための第1の接続確立通信を携帯端末100と実行する。第1の接続確立通信は、携帯端末100からプローブ要求を受信すること、及び、プローブ応答を携帯端末100に送信することを含む。ここで、CPU32は、S505で決定されたSSID「Setupprinter10」をプローブ応答内に記述する。これにより、プリンタ10がSSID「Setupprinter10」によって識別されるSoftAPNWの親局として動作していることを、携帯端末100に通知することができる。CPU32は、さらに、プローブ応答に含まれるIE(Information Elementの略)内のP2PGroupOwnerビットに「0」を記述する。当該ビットは、WFD方式に従った無線通信を実行可能であるのか否かを示す値が記述される領域である。「0」が記述された当該ビットは、WFD方式に従った無線通信を実行可能でないことを示す。「1」が記述された当該ビットは、WFD方式に従った無線通信を実行可能であることを示す。S510では、プリンタ10がWFD方式のG/Oとして動作していないので、当該ビットに「0」が記述される。これにより、WFD方式に従ったWi−Fi接続ではなく、通常のWi−Fi方式に従ったWi−Fi接続を確立すべきことを、携帯端末100に通知することができる。第1の接続確立通信は、さらに、各種信号(例えばAuthentication信号、Association信号、4-way handshake等)の通信を含む。これにより、CPU32は、携帯端末100とのWi−Fi接続を確立して、SoftAPNWに携帯端末100を子局として参加させる。S505で決定されたように、SoftAPNWでは、認証方式「OPEN」及び暗号化方式「NONE」が採用されており、パスワードが利用されない。このために、携帯端末100のユーザは、パスワードを携帯端末100に入力しなくても、携帯端末100をSoftAPNWに容易に参加させることができる。
【0033】
S515では、CPU32は、S510で確立されたWi−Fi接続を利用して、即ち、SoftAPNWを利用して、携帯端末100からAPプロファイルを受信するためのAPプロファイル受信通信を携帯端末100と実行する。これにより、CPU32は、携帯端末100から、S505で決定されたプリンタ10のIPアドレス「192.168.0.1」が送信先として指定されているAPプロファイル150を受信する。より具体的には、CPU32は、APプロファイル150に含まれる全ての情報を受信するのではなく、SSID「networkap」及びパスワード「XXX」を受信する。
【0034】
S520では、CPU32は、確認画面を表示部14に表示させる。確認画面は、プリンタ10を通常APNWに参加させるためのトリガである実行ボタン操作を受け付けるための画面である。
【0035】
S525では、CPU32は、S520で表示された確認画面内の実行ボタンがユーザによって操作されることを監視する。CPU32は、実行ボタンが操作される場合(S525でYES)に、S530に進む。
【0036】
S530では、CPU32は、AP6とのWi−Fi接続を確立するための第2の接続確立通信をAP6と実行する。第2の接続確立通信は、各種信号(例えばプローブ要求、プローブ応答、Authentication信号、Association信号、4-way handshake等)の通信を含む。これらの通信の過程において、CPU32は、S515で受信されたSSID「networkap」及びパスワード「XXX」をAP6に送信する。なお、CPU32は、第2の接続確立通信を開始する時点では、AP6の認証方式「Shared Key」及び暗号化方式「AES」を知らないが、第2の接続確立通信の過程において、AP6の認証方式及び暗号化方式を取得することができる。AP6においてプリンタ10の認証(即ちパスワード「XXX」の認証)が成功すると、CPU32は、AP6とのWi−Fi接続を確立して、通常APNWに子局として参加する。また、CPU32は、AP6とのWi−Fi接続確立した後に、AP6から通常APNWにおけるプリンタ10のIPアドレスを受信し、当該IPアドレスをAPプロファイル記憶領域42に記憶させる。
【0037】
S535では、CPU32は、S505で起動されたSoftAPを停止する。これにより、SoftAPNWが消滅する。
【0038】
S540では、CPU32は、APプロファイル150と同じAPプロファイルをメモリ34内のAPプロファイル記憶領域42に記憶させる。この結果、プリンタ10は、設定モードで動作することを終了し、通常モードで動作する(S500でNO)。
【0039】
S545では、CPU32は、プリンタ10をG/Oとして起動させるためのG/O起動操作がユーザによって実行されることを監視する。CPU32は、G/O起動操作が実行される場合(S545でYES)に、S550に進み、G/O起動操作が実行されない場合(S545でNO)に、S500に戻る。
【0040】
S550では、CPU32は、WFD方式のG/Oに移行して、プリンタ10が親局として動作するWFDNWを形成する。この段階では、プリンタ10のみが親局としてWFDNWに所属している。CPU32は、G/Oとして動作するプリンタ10によって採用されるべき各設定値を決定する。
【0041】
図3を参照して、当該各設定値を説明する。CPU32は、WFDNWで利用されるべき無線設定情報であるG/Oプロファイルを決定する。CPU32は、G/Oとして起動する毎にランダムに文字列を生成することによって、WFDNWを識別するためのSSIDを決定する。ランダムな文字列であるSSIDが決定されるので、当該SSIDは、SoftAPNWを識別するためのSSID「Setupprinter10」とは異なる。なお、変形例では、CPU32は、SSID「Setupprinter10」とは異なる予め決められている文字列を、WFDNWを識別するためのSSIDとして決定してもよい。CPU32は、WFDNWで利用されるべきセキュリティ情報として、予め決められている認証方式「WPA2-PSK」及び暗号化方式「TKIP」を決定する。当該セキュリティ情報は、SoftAPNWで利用される認証方式「OPEN」及び暗号化方式「NONE」よりも高いセキュリティレベルを有する。なお、変形例では、WFDNWの認証方式が「WPA-PSK」であってもよいし、WFDNWの暗号化方式が「AES」であってもよい。本変形例でも、WFDNWのセキュリティ情報は、SoftAPNWのセキュリティ情報よりも高いセキュリティレベルを有する。また、CPU32は、G/Oとして起動する毎にランダムに文字列を生成することによって、認証及び暗号化のためのパスワードを生成する。
【0042】
さらに、CPU32は、予め決められている数値範囲(例えば「192.168.1.0」〜「192.168.1.100」)の中から1個の数値を選択することによって、WFDNW内でのプリンタ10のIPアドレスを決定する。ここで、上記の数値範囲が、SoftAPNW内でのプリンタ10のIPアドレス「192.168.0.1」を含んでいないので、WFDNW内でのプリンタ10のIPアドレスは、SoftAPNW内でのプリンタ10のIPアドレス「192.168.0.1」とは異なる。なお、変形例では、CPU32は、IPアドレス「192.168.0.1」とは異なる予め決められている値を、WFDNW内でのプリンタ10のIPアドレスとして決定してもよい。また、CPU32は、複数個のポート番号によって識別される複数個の通信ポートを開放する。例えば、CPU32は、ポート番号「22」、「80」、「443」等を開放する。ポート番号「22」は、SNMP(Simple Network Management Protocolの略)に従った通信を実行するための通信ポートである。ポート番号「80」は、HTTP(Hyper Text Transfer Protocolの略)に従った通信を実行するための通信ポートである。また、CPU32は、WFDNWに参加可能な子局の数の上限として「4」を決定する。
【0043】
S555では、CPU32は、S550で決定されたG/Oプロファイル(即ち、SSID、認証方式「WPA2-PSK」、暗号化方式「TKIP」、パスワード、及び、IPアドレス)をメモリ34内のG/Oプロファイル記憶領域44に記憶させる。このように、本実施例では、CPU32は、G/Oを起動する毎にG/Oプロファイルを決定してG/Oプロファイル記憶領域44に記憶させる。ただし、変形例では、CPU32は、G/Oを停止する毎にG/Oプロファイルを決定してG/Oプロファイル記憶領域44に記憶させてもよい。
【0044】
S560では、CPU32は、WFD方式に従った無線接続(以下では「WFD接続」と呼ぶ)を確立するための第3の接続確立通信をPC8と実行する。第3の接続確立通信は、PC8からプローブ要求を受信すること、及び、プローブ応答をPC8に送信することを含む。ここで、CPU32は、S550で決定されたSSIDをプローブ応答内に記述する。これにより、プリンタ10がSSIDによって識別されるWFDNWのG/Oとして動作していることを、PC8に通知することができる。CPU32は、さらに、プローブ応答に含まれるIE内のP2PGroupOwnerビットに「1」を記述する。これにより、WFD方式に従ったWFD接続を確立すべきことを、PC8に通知することができる。第3の接続確立通信は、さらに、各種信号(例えば、Provision Discovery信号、Authentication信号、Association信号、WPS(Wi-Fi Protected Setupの略)Exchange、4-way handshake等)の通信を含む。これらの通信の過程において、CPU32は、WPS Exchangeを実行する際に、S550で決定されたパスワードをPC8に送信する。また、CPU32は、上記の各種信号の通信の過程において。PC8からSSID及びパスワードを受信する。CPU32は、PC8の認証(即ちパスワードの認証)が成功すると、PC8とのWFD接続を確立して、WFDNWにPC8を子局として参加させる。この結果、CPU32は、WFDNWを利用して、様々なデータの通信(例えば印刷対象の画像を表わす印刷データの受信)をPC8と実行することができる。
【0045】
(各デバイス10,100,8によって実行される処理;
図4〜
図8)
続いて、
図4〜
図8を参照して、
図2の処理によって実現される処理を説明する。なお、以下では、理解の容易化のために、各デバイス10,100の各CPU32,132が各プログラム38,138,140に従って実行する処理を説明する際に、CPUを主体として記載せず、デバイス(即ち、プリンタ10、携帯端末100)を主体として記載する。また、以下の全ての通信は、Wi−FiI/F16(又は116)を介して実行されるので、以下では、「Wi−FiI/F16(又は116)を介して」という説明を省略する。
【0046】
(SoftAPに従ったWi−Fi接続を確立するための処理:
図4)
まず、
図4を参照して、プリンタ10と携帯端末100との間に、SoftAPに従ったWi−Fi接続を確立するための処理を説明する。
【0047】
S10において、ユーザがプリンタ10に電源ON操作を実行すると、プリンタ10の電源がONされる。この場合、プリンタ10は、メモリ34内のAPプロファイル記憶領域42にAPプロファイルが記憶されていないので、設定モードで動作することを決定する(
図2のS500でYES)。この結果、S12では、プリンタ10は、SoftAPを自動的に起動してSoftAPNWを形成し、SoftAPNWの親局(即ちSoftAP)としての動作を開始する(S505)。電源ON操作に応じてSoftAPが自動的に起動されるので、ユーザは、電源ON操作を実行した後に、SoftAPを起動させるための操作を実行せずに済み、ユーザの利便性が向上する。
【0048】
S20では、ユーザは、ブラウザプログラム140を起動させるためのブラウザ起動操作を携帯端末100に実行する。この場合、携帯端末100は、ブラウザプログラム140に従って、ホーム画面を表示部114に表示させる。例えば、プリンタ10と共に出荷される取扱説明書には、サーバ200の位置を示すURL(Uniform Resource Locatorの略)が記述されている。S22では、ユーザは、当該URLを携帯端末100に入力する。この場合、S30において、携帯端末100は、ブラウザプログラム140に従って、S30で入力されたサーバ200のURLを宛先としてHTTP要求を送信する。この結果、S32において、携帯端末100は、サーバ200から設定ファイル300を受信する。
【0049】
携帯端末100によって実行される以下の各処理は、ブラウザプログラム140が設定ファイル300を実行することによって実現される処理(例えばS34)と、ブラウザプログラム140が利用されずにOSプログラム138によって実現される処理(例えばS42)と、を含む。以下では、前者の処理については、「ブラウザプログラム140に従って」と記載して説明し、後者の処理については、「OSプログラム138に従って」と記載して説明する。
【0050】
図7は、設定ファイル300内の各コマンドの一例を示す。設定ファイル300は、第1〜第7のコマンドcmd1〜cmd7を含み、各コマンドcmd1〜cmd7は、さらに、様々なコマンド500,502等を含む。まず、S34では、携帯端末100は、第1のコマンドcmd1内のコマンド500に従って、セットアップ画面600を表示部114に表示させる。セットアップ画面600は、携帯端末100とプリンタ10との間にWi−Fi接続を確立すべきことを促す確立メッセージ602と、当該Wi−Fi接続の確立の後に選択されるべき開始ボタン604と、を含む。
【0051】
S40では、ユーザは、確立メッセージ602に応じて、まず、携帯端末100の周囲に存在する接続可能なプリンタ10を検索するための検索操作を携帯端末100に実行する。この場合、S42では、携帯端末100は、OSプログラム138に従って、プローブ要求をブロードキャスト送信する。この結果、S44において、携帯端末100は、プリンタ10から、SSID「Setupprinter10」を含むプローブ応答を受信する。当該プローブ要求は、さらに、P2PGroupOwnerビットに「0」が記述されているIEを含む。
【0052】
S50では、携帯端末100は、OSプログラム138に従って、プローブ応答内のSSID「Setupprinter10」を含む検索結果を表示部114に表示させる。携帯端末100がプリンタ10とは異なるデバイス(例えばAP6等)からプローブ応答を受信する場合には、検索結果は、当該プローブ応答内のSSIDも含む。ここで、プリンタ10によって形成されるSoftAPNWのSSID「Setupprinter10」は、プリンタ10とAP6との間にWi−Fi接続を確立するためのセットアップを示す文字列(例えば「Setup」)と、プリンタ10に固有の文字列(例えば「printer10」)と、を含む。従って、ユーザは、検索結果からSSID「Setupprinter10」を容易に見つけることができ、この結果、S52において、SSID「Setupprinter10」を選択する。
【0053】
次いで、携帯端末100は、OSプログラム138に従って、S60において、切断要求をAP6に送信し、S62において、AP6から切断応答を受信し、この結果、S64において、AP6とのWi−Fi接続を切断する。携帯端末100は、AP6とのWi−Fi接続が確立されている状態を維持しながら、プリンタ10とのWi−Fi接続を確立することができない。このために、携帯端末100は、S60〜S64において、AP6とのWi−Fi接続を切断する。
【0054】
S70では、携帯端末100は、OSプログラム138に従って、プリンタ10とのWi−Fi接続を確立する。具体的には、携帯端末100は、S52で選択されたSSID「Setupprinter10」を宛先として、即ち、プリンタ10を宛先として、プローブ要求を送信し、さらに、各種信号(例えばAuthentication信号、Association信号、4-way handshake等)の通信をプリンタ10と実行する。SoftAPNWでは認証方式「OPEN」及び暗号化方式「NONE」が採用されており、プリンタ10において認証及び暗号化通信が実行されないので、携帯端末100は、プリンタ10とのWi−Fi接続を容易に確立することができる。
【0055】
プリンタ10の側から説明すると、S42、S44、及び、S70が、
図2のS510で実行される第1の接続確立通信である。プリンタ10は、第1の接続確立通信を携帯端末100と実行して、携帯端末100をSoftAPNWに子局として参加させる。
【0056】
(通常APNWのSSID等をプリンタ10に送信するための処理;
図5)
続いて、
図5を参照して、携帯端末100が通常APNWのSSID「networkap」及びパスワード「XXX」をプリンタ10に送信するための処理を説明する。なお、
図5以降では、携帯端末100によって実行されるほぼ全ての処理は、ブラウザプログラム140が設定ファイル300を実行することによって実現される処理である。このために、「ブラウザプログラム140に従って」という記載を省略し、ブラウザプログラム140が利用されずにOSプログラム138によって実現される処理のみについては、「OSプログラム138に従って」と記載して説明する。
【0057】
ユーザは、
図4のS70で携帯端末100とプリンタ10との間にWi−Fi接続が確立された後に、
図5のS200において、セットアップ画面600内の開始ボタン604(
図4のS34参照)を選択する。携帯端末100は、開始ボタン604が選択される場合に、設定ファイル300に含まれる第1のコマンドcmd1内のコマンド502(
図7参照)に従って、第2のコマンドcmd2を呼び出す。第2のコマンドcmd2は、予め決められているプリンタ10のIPアドレス504(即ち「192.168.0.1」)を含む。これにより、携帯端末100は、IPアドレス504を利用して後述の通信をプリンタ10と実行することができる。ユーザがプリンタ10のIPアドレス504を入力する必要がなく、ユーザの利便性が向上する。
【0058】
携帯端末100は、第2のコマンドcmd2がプリンタ10のIPアドレス504を含んでいるので、ブラウザプログラム140に従った通信相手をサーバ200(
図4のS30,S32参照)からプリンタ10に変更すべきことを知ることができる。携帯端末100は、このような通信相手の変更のために、いわゆるクロスドメインの通信を実行する。具体的には、S202では、携帯端末100は、IPアドレス504を送信先として含むHTTPS要求400をプリンタ10に送信する。
図7に示すように、HTTPS要求400は、通信相手をサーバ200からプリンタ10に変更するためのクロスドメイン要求(即ち「Access-Control-Request-Method: Post」)を含む。そして、S204では、携帯端末100は、プリンタ10からHTTPS応答を受信する。これにより、クロスドメインが完了し、携帯端末100は、プリンタ10との以降の通信を適切に実行することができる。
【0059】
次いで、S210では、携帯端末100は、第2のコマンドcmd2内のコマンド506に従って、IPアドレス504を送信先として含むHTTPS要求410をプリンタ10に送信する。
図7に示すように、HTTPS要求410は、プリンタ10の周囲に存在する1個以上のAPの検索をプリンタ10に実行させるための検索コマンド(即ち「"cmd": "search. ssid"」)を含む。
【0060】
プリンタ10の側から説明すると、S202〜S210が、
図2のS515で実行されるAPプロファイル受信通信の一部である。即ち、プリンタ10は、APプロファイル受信通信において、携帯端末100からクロスドメイン要求を含むHTTPS要求400を受信し(S202)、HTTPS応答を携帯端末100に送信し(S204)、携帯端末100から検索コマンドを含むHTTPS要求410を受信する(S210)。
【0061】
S220では、プリンタ10は、HTTPS要求410内の検索コマンドに従って、APを検索するためのプローブ要求をブロードキャスト送信する。この結果、S222では、プリンタ10は、AP6からSSID「networkap」を含むプローブ応答を受信する。
【0062】
S230では、携帯端末100は、プリンタ10から、上記の検索の結果として見つかったAP6のSSID「networkap」を含むHTTPS応答415を受信する。なお、プリンタ10がAP6とは異なるデバイスからプローブ応答を受信した場合には、HTTPS応答415は、当該プローブ応答内のSSIDも含む。即ち、HTTPS応答415は、AP6のSSID「networkap」を含む1個以上のSSIDを含む。携帯端末100は、プリンタ10からHTTPS応答415を受信することに応じて、設定ファイル300に含まれる第2のコマンドcmd2内のコマンド508(
図7参照)に従って、第3のコマンドcmd3を呼び出す。
【0063】
プリンタ10の側から説明すると、S220〜S230が、
図2のS515で実行されるAPプロファイル受信通信の一部である。即ち、プリンタ10は、APプロファイル受信通信において、プローブ要求をブロードキャスト送信し(S220)、AP6からAP6のSSID「networkap」を含むプローブ応答を受信し(S222)、AP6のSSID「networkap」を含むHTTPS応答415を携帯端末100に送信する(S230)。
【0064】
S240では、携帯端末100は、第3のコマンドcmd3内のコマンド510に従って、接続画面610を表示部114に表示させる。接続画面610は、プリンタ10とAP6との間にWi−Fi接続を確立するための無線設定情報を指定するための指定領域611,612と、無線設定情報の指定の後に選択されるべき接続ボタン613と、再スキャンボタン614と、戻るボタン616と、を含む。指定領域611,612は、SSID指定領域611と、パスワード指定領域612と、を含む。SSID指定領域611は、HTTPS応答415に含まれる1個以上のSSIDの中から1個のSSIDを指定するための領域である。パスワード指定領域612は、パスワードを指定するための領域である。再スキャンボタン614は、APの再検索をプリンタ10に実行させるためのボタンである。ユーザによって再スキャンボタン614が選択される場合には、携帯端末100はS210に戻る。また、ユーザによって戻るボタン616が選択される場合には、携帯端末100は
図4のS34に戻る。
【0065】
ユーザは、携帯端末100とAP6との間にWi−Fi接続を確立させるための操作を過去に実行しているので、AP6のSSID「networkap」及びパスワード「XXX」を知っている。このために、S242において、ユーザは、SSID指定領域611において、1個以上のSSIDの中からAP6のSSID「networkap」を指定することができ、パスワード指定領域612において、通常、パスワード「XXX」を指定することができる。なお、変形例では、携帯端末100とAP6との間にWi−Fi接続が確立されていなくてもよい。また、別の変形例では、AP6によって利用される認証方式が「OPEN」であり、暗号化方式が「NONE」である場合には、パスワードが指定されなくてもよい。ユーザは、SSID「networkap」及びパスワードの指定の後に、接続ボタン613を選択する。接続ボタン613が選択される場合に、携帯端末100は、設定ファイル300に含まれる第3のコマンドcmd3内のコマンド512に従って、第4のコマンドcmd4を呼び出す。
【0066】
S250では、携帯端末100は、第4のコマンドcmd4内のコマンド520に従って、IPアドレス504を送信先として含むHTTPS要求420をプリンタ10に送信する。
図7に示すように、HTTPS要求420は、指定済みのSSID「networkap」と、指定済みのパスワード「XXX」と、AP6とのWi−Fi接続の確立をプリンタ10に実行させるための接続コマンド(即ち「"cmd": "connect.ap"」)と、を含む。
【0067】
プリンタ10の側から説明すると、S250が、
図2のS515で実行されるAPプロファイル受信通信の一部である。即ち、プリンタ10は、APプロファイル受信通信において、携帯端末100から、指定済みのSSIDと、指定済みのパスワードと、接続コマンドと、を含むHTTPS要求420を受信する。
【0068】
S260では、プリンタ10は、携帯端末100からHTTPS要求420を受信することに応じて、確認画面618を表示部14に表示させる(S520)。確認画面618は、通常APNWへの参加のトリガである実行ボタン619を含む。S270では、ユーザは、確認画面618内の実行ボタン619を選択する(S525でYES)。
【0069】
(プリンタ10がAP6とのWi−Fi接続を確立する処理:
図6)
続いて、
図6を参照して、プリンタ10がAP6とのWi−Fi接続を確立する処理を説明する。
【0070】
S300では、プリンタ10は、HTTPS要求420内の接続コマンドに従って、HTTPS要求420内のSSID「networkap」及びパスワード「XXX」を利用して、Wi−Fi接続を確立するための第2の接続確立通信をAP6と実行する(S530)。具体的には、プリンタ10は、各種信号(例えばAuthentication信号、Association信号、4-way handshake等)の通信をAP6と実行する。この過程において、プリンタ10は、SSID「networkap」及びパスワード「XXX」をAP6に送信する。なお、プリンタ10は、HTTPS要求420を受信する時点では、AP6の認証方式及び暗号化方式を知らないが、AP6との第2の接続確立通信を実行する際に、AP6の認証方式及び暗号化方式を取得することができる。AP6においてプリンタ10の認証(即ちパスワード「XXX」の認証)が成功すると、S302において、プリンタ10とAP6との間にWi−Fi接続が確立される。プリンタ10は、Wi−Fi接続が確立されると、AP6から、通常APNWにおけるプリンタ10のIPアドレス「192.168.10.32」を受信する。当該IPアドレス「192.168.10.32」は、設定ファイル300に含まれるプリンタ10のIPアドレス「192.168.0.1」(
図7の符号504参照)とは異なる。
【0071】
S310では、プリンタ10は、HTTPS応答425を携帯端末100に送信する。
図7に示すように、HTTPS応答425は、AP6とのWi−Fi接続の確立が成功したことを示す情報(即ち「"success":"true"」)と、Wi−Fi接続を確立したWi−FiI/F16を示す情報(即ち「"net.if":"wlan"」)と、AP6のSSID「networkap」と、通常APNWにおけるプリンタ10のIPアドレス「192.168.10.32」と、を含む。そして、S312では、プリンタ10は、SoftAPを停止する(S535)。この結果、SoftAPNWが消滅し、携帯端末100とプリンタ10との間のWi−Fi接続が切断される。
【0072】
S314では、プリンタ10は、APプロファイル150をメモリ34内のAPプロファイル記憶領域42に記憶させる(S540)。この結果、プリンタ10は、設定モードで動作することを終了し、通常モードで動作することを開始する(S500でNO)。
【0073】
携帯端末100は、S310でHTTPS応答425を受信することに応じて、設定ファイル300に含まれる第4のコマンドcmd4内のコマンド522(
図7参照)に従って、第5のコマンドcmd5を呼び出す。S320では、携帯端末100は、第5のコマンドcmd5内のコマンド524に従って、接続結果画面620を表示部114に表示させる。接続結果画面620は、プリンタ10とAP6との間のWi−Fi接続の確立が成功したことを示す成功メッセージ621と、HTTPS応答425に含まれるSSID「networkap」と、HTTPS応答425に含まれるプリンタ10のIPアドレス「192.168.10.32」と、確認ボタン624を含む。確認ボタン624は、AP6を介したプリンタ10との確認通信を実行するためのボタンである。S322では、ユーザは、確認ボタン624を選択する。この場合、携帯端末100は、設定ファイル300内の第5のコマンドcmd5内のコマンド525(
図7参照)に従って、第6のコマンドcmd6を呼び出す。
【0074】
S324では、携帯端末100は、第6のコマンドcmd6内のコマンド526に従って、確認通信の実行をOSプログラム138に指示する。これにより、携帯端末100は、OSプログラム138に従って、メモリ134内のAPプロファイル150を利用して、AP6とのWi−Fi接続を再確立する。
【0075】
次いで、S330及びS332では、携帯端末100は、第6のコマンドcmd6内のコマンド526に従って、AP6を介して、HTTPS応答425内のIPアドレス「192.168.10.32」を送信先として含む確認要求をプリンタ10に送信する。この結果、S334及びS336では、携帯端末100は、プリンタ10から、AP6を介して、確認応答を受信する。携帯端末100は、確認応答を受信することに応じて、設定ファイル300に含まれる第6のコマンドcmd6内のコマンド528(
図7参照)に従って、第7のコマンドcmd7を呼び出す。
【0076】
S340では、携帯端末100は、第7のコマンドcmd7内のコマンド530に従って、確認結果画面630を表示部114に表示させる。確認結果画面630は、AP6を介したプリンタ10との通信が成功したことを示す成功メッセージ632を含む。これにより、ユーザは、携帯端末100及びプリンタ10の双方が同じ通常APNWに参加していることを知ることができる。
【0077】
(WFD接続を確立するための処理:
図8)
続いて、
図8を参照して、WFDNWのG/Oとして動作するプリンタ10がPC8とのWFD接続を確立する処理を説明する。
図8の初期状態では、プリンタ10は、
図4〜
図6の処理の後に、通常モードで動作している(
図2のS500でNO)。
【0078】
S400では、ユーザは、プリンタ10をWFDNWのG/Oとして起動させるためのG/O起動操作をプリンタ10に実行する(S545でYES)。この場合、S402では、プリンタ10は、G/Oを起動してWFDNWを形成し、G/Oプロファイルを決定する(S550)。G/Oプロファイルは、SSID「abcde」と、パスワード「YYY」と、認証方式「WPA2-PSK」と、暗号化方式「TKIP」と、IPアドレス「192.168.1.1」と、を含む。S404では、プリンタ10は、決定済みのG/Oプロファイルをメモリ34内のG/Oプロファイル記憶領域44に記憶させる(S555)。
【0079】
S410では、ユーザは、プリンタ10とPC8との間にWFD接続を確立させるためのWFD接続操作をPC8に実行する。これにより、プリンタ10は、第3の接続確立通信をPC8と実行する(S560)。具体的には、プリンタ10は、S420において、PC8からブロードキャスト送信されたプローブ要求を受信し、S430において、SSID「abcde」を含むプローブ応答をPC8に送信する。当該プローブ応答は、さらに、P2PGroupOwnerビットに「1」が記述されているIEを含む。
【0080】
S440では、プリンタ10は、各種信号(例えば、Provision Discovery信号、Authentication信号、Association信号、WPS Exchange、4-way handshake等)の通信をPC8と実行する。これらの通信の過程において、プリンタ10は、パスワード「YYY」をPC8に送信し、その後、PC8からSSID「abcde」及びパスワード「YYY」を受信し、PC8の認証(即ちパスワード「YYY」の認証)を実行する。プリンタ10は、当該認証が成功すると、S442において、PC8とのWFD接続を確立して、PC8をWFDNWに子局として参加させる。
【0081】
プリンタ10は、WFDNWを利用して、例えば、PC8から印刷対象の画像を表わす印刷データを受信することができ、当該印刷データに従った印刷を実行することができる。
【0082】
(本実施例の効果)
本実施例によると、プリンタ10は、SoftAPとして動作するプリンタ10と携帯端末100との間にWi−Fi接続が確立される場合(
図4のS70)に、実行ボタン619の操作を受け付けるための確認画面618を表示する(
図5のS260)。そして、プリンタ10は、実行ボタン619の操作を受け付ける場合(S270)に、プリンタ10とAP6との間にWi−Fi接続を確立して、通常APNWに子局として参加する(
図6のS302)。プリンタ10のユーザではない第三者は、プリンタ10に近づいて実行ボタン619を選択するのが困難である。従って、第三者が、プリンタ10のユーザが意図していないAPとのWi−Fi接続をプリンタ10に確立させることを抑制することができる。
【0083】
また、プリンタ10が、WFDNWでのプリンタ10のIPアドレスとして、SoftAPNWでのプリンタ10のIPアドレス「192.168.0.1」と同じIPアドレスを決定する比較例の構成を想定する。IPアドレス「192.168.0.1」はサーバ200内の設定ファイル300に記述されているので、プリンタ10のユーザではない第三者がIPアドレス「192.168.0.1」を知り得る。そして、仮に、第三者が、第三者のデバイスをWFDNWに参加させて、IPアドレス「192.168.0.1」が送信先として指定されているAPプロファイルをプリンタ10に送信すると、プリンタ10は、APプロファイルを受信してしまう。この結果、プリンタ10は、当該APプロファイルを利用して、プリンタ10のユーザが意図していないAPとのWi−Fi接続を確立し得る。これに対し、本実施例では、WFDNW内でのプリンタ10のIPアドレスとして、IPアドレス「192.168.0.1」とは異なるIPアドレス「192.168.1.1」を決定する。従って、仮に、第三者が、第三者のデバイスをWFDNWに参加させて、IPアドレス「192.168.0.1」が送信先として指定されているAPプロファイルをプリンタ10に送信することを試みても、プリンタ10は、当該APプロファイルを受信しない。この結果、プリンタ10は、当該APプロファイルを利用して、APとのWi−Fi接続を確立しない。このために、第三者が、プリンタ10のユーザが意図していないAPとのWi−Fi接続をプリンタ10に確立させることを抑制することができる。
【0084】
また、
図3に示されるように、SoftAPNWの各設定値とWFDNWの各設定値との間には多くの相違点が存在する。WFDNWのセキュリティ情報(即ち「WPA2-PSK」及び「TKIP」)は、SoftAPNWのセキュリティ情報(即ち「Open」及び「None」)よりも高いセキュリティレベルを有する。プリンタ10は、WFDNWを利用して、例えば印刷データ等の高い秘匿性を有するデータの通信をPC8と実行する。本実施例では、プリンタ10は、高いセキュリティレベルを有するWFDNWを利用してPC8との通信を実行するので、高い秘匿性を有するデータが第三者によって取得されることを抑制することができる。
【0085】
また、SoftAPNWでは、ポート番号「443」によって識別される通信ポート、即ち、HTTPSに従った通信を実行するための通信ポートのみが開放されている。これにより、例えば、プリンタ10のユーザではない第三者が、ポート番号「443」とは異なるポート番号によって識別されるプロトコル(例えば、HTTP、SNMP等)に従って、APプロファイルをプリンタ10に送信したとしても、プリンタ10は、当該APプロファイルを受信しない。これにより、第三者が、プリンタ10のユーザが意図していないAPとのWi−Fi接続をプリンタ10に確立させることを抑制することができる。
【0086】
また、SoftAPNWでは、参加可能な子局の数の上限が「1」である。このために、ユーザが、携帯端末100を利用して、AP6とのWi−Fi接続をプリンタ10に確立させることを試みている間(
図5のS200〜
図6のS302)に、第三者のデバイスが、プリンタ10とのWi−Fi接続を確立して、SoftAPNWに参加することを抑制することができる。この結果、第三者が、プリンタ10のユーザが意図していないAPとのWi−Fi接続をプリンタ10に確立させることを抑制することができる。
【0087】
(対応関係)
プリンタ10、携帯端末100、PC8、AP6が、それぞれ、「通信装置」、「第1の外部装置」、「第2の外部装置」、「対象アクセスポイント」の一例である。設定ファイル300が、「コンピュータプログラム」の一例である。
図4のS70のWi−Fi接続、
図6のS302のWi−Fi接続、
図8のS442のWFD接続が、それぞれ、「第1の無線接続」、「対象無線接続」、「第2の無線接続」の一例である。
図5のS260の確認画面618、
図5のS270の操作が、それぞれ、「所定画面」「トリガ操作」の一例である。
図5のS242で指定されるSSID及びパスワードが、「対象無線設定情報」の一例である。SSID「setupprinter10」、SSID「abcde」が、それぞれ、「第1のネットワーク識別子」、「第2のネットワーク識別子」の一例である。APプロファイル内のIPアドレス「192.168.0.1」、G/Oプロファイル内のIPアドレス「192.168.1.1」が、それぞれ、「第1のIPアドレス」、「第2のIPアドレス」の一例である。APプロファイル内の認証方式「OPEN」及び暗号化方式「NONE」、G/Oプロファイル内の認証方式「WPA2-PSK」及び暗号化方式「TKIP」が、それぞれ、「第1のセキュリティ情報」、「第2のセキュリティ情報」の一例である。SoftAPで開放される1個のポート、WFDNWで開放さえる複数個のポートが、それぞれ、「N1個の通信ポート」、「N2個の通信ポート」の一例である。
図8のS430のプローブ応答に含まれるP2PGroupOwnerビット「1」が、「可能情報」の一例である。
【0088】
以上、本明細書で開示する技術の具体例を説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には以上に例示した具体例を様々に変形、変更したものが含まれる。上記の実施例の変形例を以下に列挙する。
【0089】
(変形例1)
図2のS505において、プリンタ10は、SoftAPNWで利用されるセキュリティ情報として、認証方式「WPA-PSK」と、暗号化方式「TKIP」又は「AES」と、を決定してもよい。この場合、プリンタ10は、SoftAPNWで利用されるパスワードも決定する。本変形例では、さらに、
図2のS550において、プリンタ10は、WFDNWで利用されるセキュリティ情報として、認証方式「WPA2-PSK」と、暗号化方式「TKIP」又は「AES」と、を決定する。本変形例でも、WFDNWのセキュリティ情報は、SoftAPNWのセキュリティ情報よりも高いセキュリティレベルを有する。
【0090】
(変形例2)SoftAPNWで利用されるセキュリティ情報は、WFDNWで利用されるセキュリティ情報よりも高いセキュリティレベルを有していてもよい。例えば、SoftAPNWで利用されるセキュリティ情報として、認証方式「WPA2-PSK」と、暗号化方式「TKIP」又は「AES」と、が決定され、WFDNWで利用されるセキュリティ情報として、認証方式「WPA-PSK」と、暗号化方式「TKIP」又は「AES」と、が決定されてもよい。
【0091】
(変形例3)プリンタ10は、
図5のS260で確認画面を表示しなくてもよい。この場合、プリンタ10は、確認画面内の実行ボタンの操作を受け付けることなく、通常APNWに子局として参加する。本変形例でも、プリンタ10は、SoftAPNW内でのプリンタ10のIPアドレスとは異なるWFDNW内でのプリンタ10のIPアドレスを決定するので、プリンタ10のユーザではない第三者が、当該ユーザが意図していないAPとのWi−Fi接続をプリンタ10に確立させることを抑制し得る。本変形例では、「表示制御部」を省略可能である。
【0092】
(変形例4)
図2のS505及びS510に代えて、プリンタ10は、携帯端末100がSoftAP又はG/Oとして動作する無線ネットワークに子局として参加してもよい。即ち、「第1の無線ネットワーク」は、通信装置が親局として動作するネットワークであってもよいし、通信装置が子局として動作するネットワークであってもよい。
【0093】
(変形例5)プリンタ10は、SoftAPNWにおいて、複数個の通信ポートを開放してもよい。例えば、プリンタ10は、SoftAPNWにおいて、WFDNWで解放される各通信ポートと同じ各通信ポートを開放してもよい。また、SoftAPNWに参加可能な子局の数の上限は、「2」以上であってもよいし、WFDNWに参加可能な子局の数の上限は、「4」未満でもよいし「5」以上でもよい。
【0094】
(変形例6)プリンタ10は、WFDNWを形成しなくてもよい。即ち、プリンタ10は、
図2のS545〜S560を実行しなくてもよい。本変形例では、「第2の無線ネットワーク」に関係する各部(例えば「第2の確立部」、「第2のアドレス決定部」)を省略可能である。
【0095】
(変形例7)
図4のS32において、携帯端末100は、サーバ200から設定ファイル300を受信しなくてもよい。例えば、設定ファイル300は、プリンタ10のメモリ34に予め記憶されていてもよい。そして、携帯端末100は、SoftAPNWを利用して、プリンタ10から設定ファイル300を受信してもよい。
【0096】
(変形例8)「通信装置」は、プリンタ10に限られず、スキャナであってもよいし、印刷機能と他の機能(例えば、スキャン機能、FAX機能等)とを備える多機能機であってもよいし、他のデバイス(例えばPC、サーバ等)であってもよい。
【0097】
(変形例9)上記の各実施例では、
図2、
図4〜
図6、及び、
図8の各処理がソフトウェア(即ちプログラム)によって実現されるが、これらの各処理のうちの少なくとも1つが論理回路等のハードウェアによって実現されてもよい。
【0098】
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。