以下に、本発明を実施するための形態について、添付の図面を用いて詳細に説明する。
なお、以下に説明する実施の形態は、本発明の実現手段としての一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されてもよい。また、各実施の形態を適宜組み合せることも可能である。
[第1の実施形態]
<デジタルカメラの構成>
図1は、本実施形態のデータ処理装置の一例であるデジタルカメラ100の構成例を示すブロック図である。なお、ここではデータ処理装置の一例としてデジタルカメラについて述べるが、データ処理装置はこれに限られない。例えばデータ処理装置は携帯型のメディアプレーヤやいわゆるタブレットデバイス、パーソナルコンピュータなどの情報処理装置であってもよい。
制御部101は、入力された信号や、後述のプログラムに従ってデジタルカメラ100の各部を制御する。なお、制御部101が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
撮像部102は、撮像部102に含まれるレンズで結像された被写体光を電気信号に変換し、ノイズ低減処理などを行いデジタルデータを画像データとして出力する。撮像した画像データはバッファメモリに蓄えられた後、制御部101にて所定の演算を行い、記録媒体110に記録される。
不揮発性メモリ103は、電気的に消去・記録可能な不揮発性のメモリであり、制御部101で実行される後述のプログラム等が格納される。
作業用メモリ104は、撮像部102で撮像された画像データを一時的に保持するバッファメモリや、表示部106の画像表示用メモリ、制御部101の作業領域等として使用される。
操作部105は、ユーザがデジタルカメラ100に対する指示をユーザから受け付けるために用いられる。操作部105は例えば、ユーザがデジタルカメラ100の電源のON/OFFを指示するための電源ボタンや、撮影を指示するためのレリーズスイッチ、画像データの再生を指示するための再生ボタンなどの操作部材を含む。また、後述する表示部106に形成されるタッチパネルも操作部105に含まれる。なお、レリーズスイッチは、SW1およびSW2を有する。レリーズスイッチが、いわゆる半押し状態となることにより、SW1がONとなる。これにより、AF(オートフォーカス)処理、AE(自動露出)処理、AWB(オートホワイトバランス)処理、EF(フラッシュプリ発光)処理等の撮影準備を行うための指示を受け付ける。また、レリーズスイッチが、いわゆる全押し状態となることにより、SW2がONとなる。これにより、撮影を行うための指示を受け付ける。
表示部106は、撮影の際のビューファインダー画像の表示、撮影した画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部106は必ずしもデジタルカメラ100が内蔵する必要はない。デジタルカメラ100は内部又は外部の表示部106と接続することができ、表示部106の表示を制御する表示制御機能を少なくとも有していればよい。
記録媒体110は、撮像部102から出力された画像データを記録することができる。記録媒体110は、デジタルカメラ100に着脱可能なよう構成してもよいし、デジタルカメラ100に内蔵されていてもよい。すなわち、デジタルカメラ100は少なくとも記録媒体110にアクセスする手段を有していればよい。
接続部111は、外部装置と接続するためのインターフェースである。本実施形態のデジタルカメラ100は、接続部111を介して、外部装置とデータのやりとりを行うことができる。なお、本実施形態では、接続部111は外部装置と無線LANで通信するためのインターフェースを含む。制御部101は、接続部111を制御することで外部装置との無線通信を実現する。なお、通信方式は無線LANに限定されるものではない。
なお、本実施形態におけるデジタルカメラ100は、インフラストラクチャモードにおけるスレーブ装置として動作することが可能である。スレーブ装置として動作する場合、周辺のアクセスポイント(以下、AP)に接続することで、APが形成するネットワークに参加することが可能である。また、本実施形態におけるデジタルカメラ100は、APの一種ではあるが、より機能が限定された簡易的なAP(以下、簡易AP)として動作することも可能である。なお、本実施形態におけるAPは中継装置の一例である。デジタルカメラ100が簡易APとして動作すると、デジタルカメラ100は自身でネットワークを形成する。デジタルカメラ100の周辺の装置は、デジタルカメラ100をAPと認識し、デジタルカメラ100が形成したネットワークに参加することが可能となる。上記のようにデジタルカメラ100を動作させるためのプログラムは不揮発性メモリ103に保持されているものとする。
なお、本実施形態におけるデジタルカメラ100はAPの一種であるものの、スレーブ装置から受信したデータをインターネットプロバイダなどに転送するゲートウェイ機能は有していない簡易APである。したがって、自機が形成したネットワークに参加している他の装置からデータを受信しても、それをインターネットなどのネットワークに転送することはできない。
以上がデジタルカメラ100の説明である。次に、外部装置の一例である携帯電話200について説明する。
<携帯電話の構成>
図2は、本実施形態の通信装置の一例である携帯電話200の構成例を示すブロック図である。なお、ここでは通信装置の一例として携帯電話について述べるが、通信装置はこれに限られない。例えば通信装置は、無線機能付きのデジタルカメラ、携帯型のメディアプレーヤやいわゆるタブレットデバイス、パーソナルコンピュータ、スマートフォンなどの情報処理装置であってもよい。
制御部201は、入力された信号や、後述のプログラムに従って携帯電話200の各部を制御する。なお、制御部201が装置全体を制御する代わりに、複数のハードウェアが処理を分担することで、装置全体を制御してもよい。
撮像部202は、撮像部202に含まれるレンズで結像された被写体光を電気信号に変換し、ノイズ低減処理などを行いデジタルデータを画像データとして出力する。撮像した画像データはバッファメモリに蓄えられた後、制御部201にて所定の演算を行い、記録媒体210に記録される。
不揮発性メモリ203は、電気的に消去・記録可能な不揮発性のメモリであり、制御部201で実行される各種プログラム等が格納される。デジタルカメラ100と通信するためのプログラムも不揮発性メモリ203に保持され、カメラ通信アプリケーションとしてインストールされているものとする。なお、本実施形態における携帯電話200の処理は、カメラ通信アプリケーションにより提供されるプログラムを読み込むことにより実現される。なお、カメラ通信アプリケーションは携帯電話200にインストールされたOSの基本的な機能を利用するためのプログラムを有しているものとする。なお、携帯電話200のOSが本実施形態における処理を実現するためのプログラムを有していてもよい。
作業用メモリ204は、撮像部202で生成された画像データを一時的に保存するバッファメモリや、表示部206の画像表示用メモリや、制御部201の作業領域等として使用される。
操作部205は、携帯電話200に対する指示をユーザから受け付けるために用いられる。操作部205は例えば、ユーザが携帯電話200の電源のON/OFFを指示するための電源ボタンや、表示部206に形成されるタッチパネルなどの操作部材を含む。
表示部206は、画像データの表示、対話的な操作のための文字表示などを行う。なお、表示部206は必ずしも携帯電話200が内蔵する必要はない。携帯電話200は表示部206と接続することができ、表示部206の表F示を制御する表示制御機能を少なくとも有していればよい。
記録媒体210は、撮像部202から出力された画像データを記録することができる。記録媒体210は、携帯電話200に着脱可能なよう構成してもよいし、携帯電話200に内蔵されていてもよい。すなわち、携帯電話200は少なくとも記録媒体210にアクセスする手段を有していればよい。
接続部211は、外部装置と接続するためのインターフェースである。本実施形態の携帯電話200は、接続部211を介して、外部装置とデータのやりとりを行うことができる。なお、本実施形態では、接続部211は外部装置と無線LANで通信するためのインターフェースを含む。制御部201は、接続部211を制御することで外部装置との無線通信を実現する。なお、本実施形態におけるデジタルカメラ100は、少なくともインフラストラクチャモードにおけるスレーブ装置として動作することが可能であり、周辺のAPが形成するネットワークに参加することが可能である。
公衆網接続部212は、公衆無線通信を行う際に用いられるインターフェースである。携帯電話200は、公衆網接続部212を介して、他の機器と通話をしたり、データ通信をすることができる。通話の際には、制御部201はマイク213およびスピーカ214を介して音声信号の入力と出力を行う。本実施形態では、公衆網接続部212は3Gを用いた通信を行うためのインターフェースを含むものとする。なお、3Gに限らず、LTEやWiMAX、ADSL、FTTH、いわゆる4Gといった他の通信方式を用いてもよい。また、接続部211および公衆網接続部212は必ずしも独立したハードウェアで構成する必要はなく、例えば一つのアンテナで兼用することも可能である。以上が携帯電話200の説明である。
<接続形態の概要>
図3は、本実施形態における、デジタルカメラ100と携帯電話200との接続形態を模式的に表した図である。デジタルカメラ100と携帯電話200が無線でデータを送受信する場合、図3(a)、図3(b)の2つの接続形態が考えられる。
図3(a)は、外部中継装置の一例である外部AP300が形成する無線LANネットワークに、デジタルカメラ100と携帯電話200とが参加する形態である。デジタルカメラ100及び携帯電話200は、外部AP300が定期的に送信するビーコン信号を検知し、外部AP300が形成する無線LANネットワークに参加する。デジタルカメラ100と携帯電話200は同じ無線LANネットワークに参加した後、互いの機器発見、機器の能力取得などを経て無線LANによるデータの送受信が可能な状態となる(機器間の通信を確立する)。
また、本実施形態における外部AP300は、公衆網などを用いてインターネットなどの外部ネットワークに接続することが可能である。したがって、携帯電話200は、外部AP300を介してインターネット上にデータを送信することが可能である。
図3(b)は、外部AP300を介さず、デジタルカメラ100と携帯電話200とが直接接続する形態である。この場合は、デジタルカメラ100が簡易APとして動作して無線LANネットワークを形成する。デジタルカメラ100は簡易APとして動作すると、ビーコン信号の定期的な送信を開始する。携帯電話200はビーコン信号を検知し、デジタルカメラ100が形成した無線LANネットワークに参加する。そして図3(a)の場合と同様、互いの機器発見、機器の能力取得などを経て通信を確立し、データの送受信が可能な状態となる。
なお、前述したように、本実施形態におけるデジタルカメラ100はインターネットなどの外部ネットワークへの通信機能を有していない。したがって、デジタルカメラ100が形成する無線LANネットワークに参加している携帯電話200は、簡易APを介してインターネットなどにデータを送信することはできない。
以上述べたように、デジタルカメラ100と携帯電話200には2通りの接続形態がある。本実施形態では、これらの接続形態に応じて適切な制御を行う例について説明する。
<接続処理>
図4は、携帯電話200と接続する際のデジタルカメラ100の処理を示すフローチャートである。なお、本フローチャートに示す処理は、デジタルカメラ100の制御部101が入力信号やプログラムにしたがい、デジタルカメラ100の各部を制御することにより実現される。なお、特に断らない限り、デジタルカメラ100の処理を示す他のフローチャートでも同様である。本フローチャートは、デジタルカメラ100のユーザがメニュー操作などで他装置との接続を指示したことに応じて開始される。
ステップS400で、制御部101は外部APの形成する無線LANネットワークに参加するか、自機を簡易APとして動作させるかを選択させる画面を表示部106に表示する。本ステップで表示される画面の一例を図5A(a)に示す。
ステップS401において、ユーザ操作によりボタン501が選択されたと判断した場合、制御部101は無線LAN無線ネットワークを形成することが選択されたと判断し、処理をステップS402に進める。ユーザ操作によりボタン502が選択されたと判断した場合、制御部101は外部APが形成する無線LANネットワークに参加することが選択されたと判断し、処理をステップS407に進める。
ステップS402で、制御部101は無線LANネットワークを形成する。具体的には、制御部101はネットワークを形成するのに必要なESSID、BSSID、認証方式、暗号種別、暗号鍵を生成する。また制御部101は、接続機器がネットワークに参加するために必要な情報として、少なくともESSIDおよび暗号鍵を表示部106に表示する。この表示の一例を図5A(b)に示す。図5A(b)の例では、ダイアログ503に示されるように、ESSIDは「CAMERA−123」、暗号鍵は「12345678」に決定されている。なお、暗号鍵やESSIDは接続ごとや接続機器ごとに生成してもよいし、常に同じになるようにしてもよい。さらに本ステップでは、他機器との通信を可能にするため、IPアドレスの割り当て、サブネットの設定を行い、ステップS403に進む。
一方、ステップS407に進んだ場合、制御部101は周辺の無線LANネットワークをスキャンし、その結果検出されたビーコン信号に含まれるESSIDの一覧を表示部106に表示する。この際の画面の一例を図5A(c)に示す。図5A(c)の例では、「NETWORK−100」及び「NETWORK−101」というESSIDが検出されている。ユーザ操作により、図5A(c)のリスト506から無線LANネットワークが選択されると、制御部101は選択された無線LANネットワークへの参加、つまりAPへの接続処理を行う。さらに、他機器との通信を可能にするため、IPアドレスの割り当て、サブネットの設定を行い、ステップS403に進む。
ステップS403で、制御部101は、同一ネットワーク内の接続可能な機器を検索する。なお、ここで携帯電話200がデジタルカメラ100により検索可能な状態になるためには、携帯電話200側での操作が必要になる。以下、図5A、図5Bを用いて、携帯電話200側の操作について説明する。図5Bは、本実施形態における携帯電話200の処理を示すフローチャートである。なお、本フローチャートに示す処理は、携帯電話200の制御部201が入力信号やプログラムにしたがい、携帯電話200の各部を制御することにより実現される。なお、特に断らない限り、携帯電話200の処理を示す他のフローチャートでも同様である。
まず、携帯電話200のユーザにより所定の操作がなされたことに応じて、ステップS551で制御部201は、参加する無線LANネットワークを選択する画面を表示部206に表示させる。この画面に遷移すると、制御部201は周辺の無線LANネットワークのスキャンを行い、その結果検出されたESSIDのリスト510を表示する。画面の一例を図5A(e)に示す。本実施形態では、これらの処理はカメラ通信アプリケーションの起動前に携帯電話200のOSの機能により行われるが、予め起動されたカメラ通信アプリケーションがOSの機能と連携しながら処理を行ってもよい。ここで、デジタルカメラ100が簡易APとして動作している場合は、携帯電話200はデジタルカメラ100のESSIDを検出し、リスト510に表示する。図5A(e)では、デジタルカメラ100のESSIDとして「CAMERA−123」が表示されている。
ステップS552で、制御部201はリスト510のうちいずれかのESSIDが選択されるのを待機する。ユーザ操作により、リスト510のうちいずれかのESSIDが選択されると、ステップS553において制御部201は対応する無線LANネットワークへの参加処理を行う。これで、ネットワークへの参加は完了する。
ネットワークへの参加後、携帯電話200のユーザは携帯電話200にインストールされたカメラ通信アプリケーションを起動する。カメラ通信アプリケーションを起動した後の携帯電話200の処理を図5(b)のフローチャートで説明する。カメラ通信アプリケーションの主な機能としては、同じネットワーク内に存在するデジタルカメラと通信を確立する機能、画像データなどのコンテンツデータを送受信する機能、自機の有するコンテンツデータをサーバに送信する処理を制御する機能がある。
ユーザ操作に基づきカメラ通信アプリケーションが起動されると、ステップS571において、図5A(f)のような待機画面が表示部206に表示される。ダイアログ511には、現在参加しているネットワークのSSIDが表示される。図5A(f)の例は、図5A(e)の画面で「CAMERA−123」が選択された場合を示している。また、カメラ通信アプリケーションを起動後、デジタルカメラ100が携帯電話200を検出できるよう、無線LANネットワークを介して自機器のサービスの通知を行う。デジタルカメラ100はこのサービスの通知に基づき、携帯電話200を検出することができる。なお、このサービスの通知には携帯電話200のデバイス名及びUUIDが含まれる。ステップS572において、制御部201はデジタルカメラ100からの接続要求を待機する。接続要求があったと判断した場合は、ステップS573においてデジタルカメラ100との通信を確立する。
図4の説明に戻る。ステップS403で、制御部101は、同一ネットワークに存在する接続可能な機器を検索する。前述したように、携帯電話200側でサービス通知が行われていれば、デジタルカメラ100は携帯電話200を検出することができる。検索の結果、接続可能な機器を検出した場合、制御部101はサービスの通知に含まれるデバイス名を表示部106にリスト表示する。リスト表示の一例を図5A(d)に示す。また、同じくサービスの通知に含まれるUUIDとデバイス名とを関連づけて作業用メモリ104に保存する。
なお、本実施形態ではサービスの通知にデバイス名とUUIDが含まれる構成としたが、サービスの通知を受信したデジタルカメラ100が、デバイス名及びUUIDを携帯電話200に問い合わせる構成としてもよい。
ステップS404で、制御部101はステップS403でリスト表示された機器名のうちいずれかを選択するユーザ操作を受け付ける。
ステップS405で、制御部101は、ステップS404で選択された機器のUUIDを用いて携帯電話200に接続要求を送信し、選択された機器との通信を確立するための処理を開始する。なお、本実施形態では相手機器のUUIDを用いて接続を実行するが、UUIDからIPアドレスやポート番号を特定して接続したり、検索を行う時点でIPアドレスを入手してもよい。通信を確立した後は処理をステップS406に進める。
ステップS406で、制御部101はステップS405で通信を確立した携帯電話200に対し、現在参加している無線LANネットワークが簡易APにより形成されたものか否かを通知する。具体的には、自機が簡易APとして動作し、自機の無線LANネットワークに携帯電話200が参加している場合、デジタルカメラ100は無線LANネットワークが自機により形成されたものである旨を携帯電話200に通知する。また、他のAPが形成した無線LANネットワークに参加している場合、デジタルカメラ100は無線LANネットワークが自機により形成されたものでない旨を携帯電話200に通知する。この通知により、携帯電話200は、デジタルカメラ100により形成されたネットワークに参加しているか、他のAPにより形成されたものかを判断することができる。そしてこの通知に基づき、携帯電話200は、自機が参加している無線LANネットワークから外部ネットワークへと通信可能であるかを判断することができる。
<接続後の動作>
図6は、デジタルカメラ100と通信を確立した後の、携帯電話200の動作を示すフローチャートである。
デジタルカメラ100と通信を確立すると、携帯電話の制御部201は、図7(a)に示すカメラ通信アプリケーションのメニュー画面を表示部206に表示する。メニュー画面には設定ボタン701、閲覧ボタン702が表示される。設定ボタン701は、携帯電話200のデバイス名の設定や、アップロードにおける各種設定を行うためのボタンである。閲覧ボタン702は、通信を確立したデジタルカメラ100に保存されている画像データを表示部206に表示させるためのボタンである。
ステップS601で、制御部101は閲覧ボタン702が選択されたか否かを判断する。閲覧ボタン702が選択されたと判断した場合にはステップS602に進む。選択されていないと判断した場合は処理を繰り返す。
ステップS602で、制御部201はデジタルカメラ100に対して、デジタルカメラ100が有する画像データのサムネイルを要求する。この要求に応答して、デジタルカメラ100は要求されたサムネイルを携帯電話200に送信する。なお、サムネイルは1枚ずつの要求を繰り返してもよいし、まとめて複数枚要求するコマンドを送信してもよい。
ステップS603で、携帯電話200は接続部211を介してデジタルカメラ100から送信されたサムネイルを受信する。
ステップS604で、制御部201は受信したサムネイルを表示部206に一覧表示する。図7(b)に表示画面の一例を示す。図7(b)の例では、サムネイルが4列に表示されており、上下方向へのスクロール操作によりさらに他の画像データを表示させることが可能である。
ステップS605で、制御部201は、一覧表示されたサムネイルの中からいずれかのサムネイルが選択されたか判断する。選択されたと判断した場合には、ステップS606に進む。そうでない場合は、ステップS604に戻る。
ステップS606で、制御部201は選択されたサムネイルを大きなサイズで表示する。図7(c)に表示の一例を示す。図7(c)に示すように、選択されたサムネイルが図7(b)と比べてより大きなサイズで表示される。なお、ステップS606では選択されたサムネイルをそのまま大きなサイズで表示しているが、大きなサイズで表示することに鑑みて、より大きなサムネイルもしくは本画像データを再度デジタルカメラ100に要求してもよい。
また、図7(c)に示す画面には受信ボタン705が含まれる。受信ボタン705は、表示されているサムネイルに対応する本画像データをデジタルカメラから受信し、かつ受信した画像データに対して所定の処理を行うためのボタンである。以下、具体的に説明する。
ユーザ操作によりボタン705が選択されると、制御部201は図7(d)に示すメニューが画像データに半透明で重畳表示される。以下、メニューに含まれるボタンについて説明する。
ボタン706は、デジタルカメラ100から受信した本画像データをSNS(ソーシャルネットワークサービス)にインターネットを介してアップロードするためのボタンである。携帯電話200のユーザは予めアップロード先のSNSを設定しておき、ボタン706が選択されると、SNSの提供するサーバに本画像データを送信する処理が開始される。なお、ボタン706が選択されたことに応じてアップロード先のSNSを設定する処理を開始してもよい。
ボタン707は、デジタルカメラ100から受信した本画像データをコンテンツサーバにアップロードするためのボタンである。携帯電話200のユーザは予めアップロード先のコンテンツサーバを設定しておき、ボタン707が選択されると、コンテンツサーバに、本画像データをインターネットを介して送信する処理が開始される。なお、ボタン707を選択したことに応じてアップロード先のコンテンツサーバを設定する処理を開始してもよい。
ボタン708は、デジタルカメラ100から受信した本画像データをメールに添付して送信するためのボタンである。ボタン708が選択されると、制御部201はメールアプリケーションを起動し、受信した本画像データを添付したメールのひな形を提供する。携帯電話200のユーザは、所望の文面を入力後、インターネットを介して任意のアドレスにメールを送信することができる。
ボタン709は、デジタルカメラ100から受信した本画像データを記録媒体210に記録するためのボタンである。ボタン707が選択されると、デジタルカメラ100から受信した本画像データが記録媒体210に記録される。
ボタン710はキャンセルボタンであり、選択されると図7(d)に示すメニューを消去し、表示は図7(c)の状態に戻る。
続いてステップS607で、制御部201は図7(d)に示すボタンのうち、ボタン706〜709のいずれかが選択されたか判断する。ボタン706〜709のいずれかが選択されたと判断した場合はステップS608に進む。ボタン710が選択されたと判断した場合には、ステップS606に戻る。
ステップS608に進むと、制御部201は、ステップS605で選択したサムネイルに対応する画像データを携帯電話200に要求する。携帯電話200が要求に応じて画像データをデジタルカメラ100に送信すると、携帯電話200は画像データを受信し、画像データを作業用メモリ204に保持する。画像データの受信中は表示部206に図7(e)の画面を表示する。なお、携帯電話200のユーザは図7(e)のボタン712を選択することにより、受信を中止することができる。
画像データの受信が完了すると処理はステップS609に進み、制御部201はステップステップS607においてどのような処理が選択されたかを判断する。ボタン706、ボタン707、ボタン708のいずれかのボタンが選択された、つまり受信した画像データを外部に送信する動作が選択されたと判断した場合は、処理をステップS611に進める。一方、ボタン709が選択されていると判断した場合、つまり受信した画像データを外部に送信せずに記録媒体210に保存する動作が選択されたと判断した場合は、処理をステップS610に進める。
まず、ステップS610に進んだ場合について説明する。ステップS610で、制御部201はステップS608で受信した画像データを作業用メモリ204から記録媒体210に保存し、処理を終了する。
次に、ステップS611に進んだ場合について説明する。ステップS611で、制御部201は、現在参加しているネットワークがデジタルカメラ100の簡易AP機能で形成されたものか判断する。制御部201は、図4のステップS406でデジタルカメラから受信した通知を参照することで、本ステップにおける判断を行う。デジタルカメラ100の簡易AP機能で形成されたネットワークではないと判断した場合、処理をステップS612に進める。デジタルカメラ100の簡易AP機能で形成されたネットワークであると判断した場合、処理をステップS613に進める。
まず、ステップS611からステップS612に進んだ場合について説明する。この場合、制御部201は、現在自機が参加しているネットワークが簡易AP機能により形成されたものではなく、外部APによるものであると判断する。つまり、図3(a)に示すような接続形態であると判断する。この場合、外部APを介して携帯電話200は画像データを送信することが可能である。そこで制御部201は、インターネットを介した所定の送信先情報(URLやメールアドレス)とステップS608で受信した画像データとを、外部APに対して送信する。このことにより、外部APから所定の送信先に画像データが送信される。
次に、ステップS611からステップS613に進んだ場合について説明する。この場合、制御部201は、現在の接続形態が図3(b)に示すものであると判断する。この場合、携帯電話200はAPの形成するネットワークに接続しているものの、APを介して外部のネットワークに画像データを送信することはできない。そこで携帯電話200は本ステップで、現在参加しているネットワークから離脱し、AP(ここではデジタルカメラ100)との接続を切断する。
ステップS614で、制御部201はデジタルカメラ100を介さない通信方法で画像データを外部に送信する。本実施形態では、公衆網接続部212を用いた3Gネットワークを介した通信により、画像データの送信を行う。
なお、他の実施形態として、デジタルカメラ100以外のAPが形成したネットワークに接続部211を用いて接続し、そのAPを介した画像データの送信を試みてもよい。また、公衆網接続部212によるデータ送信と接続部212によるデータ送信を並行して行うことができるのであれば、ステップS613でネットワークから離脱せずに公衆網接続部212によるデータ送信を行ってもよい。
ステップS613、ステップS614での処理中に表示部206に表示される画面を図7(f)に示す。図7(f)の画面には、今まで参加していたデジタルカメラ100が形成していたネットワークから切断された旨をダイアログ713にてユーザに通知する。さらに別の通信方法で画像データの送信を行っている旨をダイアログ714にてユーザに通知する。このようにしたのは以下の理由による。単にダイアログ713のみを表示すると、ユーザはこのままでは画像データが送信できないと思ってしまう可能性がある。そこで本実施形態では、ネットワークから切断された旨を示すダイアログとともに、送信が行われている旨を示すダイアログも表示することとした。
なお、ステップS611の判断を行わず、ステップS612において一定時間または一定回数送信できなかった場合にネットワークから離脱する方法も考えられる。しかしながらこの場合、ネットワークの離脱までに時間がかかる可能性が高く、通信量も増えてしまうおそれがある。したがって、予めデジタルカメラ100から携帯電話200に対し、ネットワークが簡易APによるものか否かを通知しておく方がより好ましい。
また、ステップS613、S614で画像データを送信する前に、画像データへのコメントやタイトルを追加したり、SNSの設定(たとえば公開範囲やアルバムの選択など)を行う画面を表示してもよい。
また、ここでは、1つの画像データをデジタルカメラ100から受信し、携帯電話200から送信する例を説明したが、複数枚の画像データを選択して携帯電話200が受信し、それらを順次外部ネットワークに送信してもよい。また、一旦画像データを受信した後、どの画像データを携帯電話200から送信するかを選択させるようにしてもよい。
以上が、デジタルカメラ100と接続した後の携帯電話200の動作である。次に、デジタルカメラ100側の詳細な動作について以下に説明する。図8は、携帯電話200と接続した後のデジタルカメラ100の動作を示すフローチャートである。
ステップS801で、デジタルカメラ100の制御部101は、接続部111を介して携帯電話200からの要求を受信したかどうかを判断する。要求を受信した場合にはステップS801、受信していない場合にはステップS802に進む。ここで受信する可能性のある要求としては、ステップS602で送信されるサムネイルの要求か、ステップS607〜ステップS608で送信される画像データの要求のいずれかである。
ステップS804に進んだ場合について説明する。ステップS804で、制御部101は、ステップS801で受信した要求がサムネイルの要求(ステップS602で送信される要求)であるかを判断する。サムネイルの要求であると判断した場合にはステップS805に進む。サムネイルの要求でないと判断した場合にはステップS807に進む。
まず、ステップS805に進んだ場合について説明する。ステップS805で、制御部101は記録媒体110に保存している画像データの中から、携帯電話200から要求されている画像データを検索し、検索された画像データに対応するサムネイルを作業用メモリ104に読み込む。もちろん、複数のサムネイルを読み込むことも可能である。この際、サムネイルは既に画像データに関連づけされているものを用いてもよいし、別途新たなサムネイルを生成してもよい。
続いてステップS806で、制御部101は作業用メモリ104に保持したサムネイルを要求された携帯電話200に送信し、処理をステップS801に戻す。この処理の結果、携帯電話200側ではステップS603のサムネイル受信処理が実行される。以上が、デジタルカメラ100から携帯電話200にサムネイルを送信する処理である。
次に、ステップS807に進んだ場合について説明する。ステップS807で、制御部101は、ステップS801で受信した要求がサムネイルに対応する画像データの要求(ステップS617で送信される要求)であるか判断する。画像データの要求であると判断した場合にはステップS808に進む。画像データの要求でないと判断した場合にはステップS810に進む。
まず、ステップS808に進んだ場合について説明する。ステップS808で、制御部101は記録媒体110に保存している画像データの中から要求されている画像データを検索し、検索された画像データを作業用メモリ104に読み込む。
続いてステップS809で、制御部101は作業用メモリ104に保持した画像データを携帯電話200に送信し、処理をステップS801に戻す。この処理の結果、携帯電話200側ではステップS608の画像データ受信処理が実行される。
一方でステップS810に進んだ場合、制御部101は、受信した要求は自機が適切に応答できないものであると判断し、その旨を示すエラー通知をデジタルカメラ100に送信する。
次に、ステップS801からステップS802に進んだ場合について説明する。ステップS802で、制御部101は、接続が切断されたかを判断する。本ステップで接続が切断されたと判断されるケースとしては、以下があげられる。携帯電話200と確立していた通信が切断された場合、携帯電話200がネットワーク上に存在しなくなった場合、自機がAPからのビーコン信号を受信できなくなり、ネットワークを見失った場合などである。なお、自機が簡易APとして動作している場合はネットワークを見失うことはない。接続が切断されたと判断した場合、処理はステップS803に進む。切断されてないと判断した場合は処理はステップS801に戻る。
ステップS803において、制御部101は自機が簡易APとして動作しているか否か判断する。簡易APとして動作していないと判断した場合は処理をステップS811に進める。簡易APとして動作していると判断した場合は処理をステップS812に進める。
ステップS811で、制御部101は現在参加しているネットワークからの離脱処理を行う。それに対しステップS812では、制御部101は現在自機が形成しているネットワークを消滅させる。具体的には、ビーコン信号の送信を停止し、ネットワークに対してネットワークを消滅させる旨などの通知をブロードキャストする。
以上が、デジタルカメラ100から携帯電話200に画像データを送信する処理である。
<動作概略>
以下、図6、図8に示す処理の概要を図9、図10を用いて説明する。図9、10は、デジタルカメラ100が有する画像データを携帯電話200が受信し、その受信した画像データをインターネット904へと送信する際の概要図である。
まず図9(a)を用いて、デジタルカメラ100がAPとして動作した場合(図4のステップS402)について説明する。この場合、タイミング901で、デジタルカメラ100と携帯電話200は、デジタルカメラ100の形成したネットワークに参加し、通信を確立する。この際、デジタルカメラ100は現在のネットワークが自機で形成したネットワークか否かを携帯電話200に通知する(図4のステップS406)。
そしてタイミング902で、デジタルカメラ100は自機が有する画像データを、自機が形成した無線LANネットワークを介して携帯電話200に送信する。ここで、携帯電話200は受信した画像データをインターネット904に送信する処理を行うのであるが、携帯電話200は現在のネットワークがデジタルカメラ100により形成されたものであることを事前の通知で認識している。そこで携帯電話200はタイミング903で、デジタルカメラ100により形成されたネットワークから離脱し、3Gを用いて公衆回線網経由で画像データをインターネット904に送信する。これが、デジタルカメラ100がAPとして動作した場合の動作の概要である。
なお、デジタルカメラ100がAPとして動作した場合の動作として、図9(b)に示す形態も考えられる。図9(b)の形態では、携帯電話200がタイミング903でネットワークから離脱した後に、周囲に外部AP300があればタイミング913で外部AP300の形成するネットワークに参加する。そしてタイミング914で外部AP300経由でインターネット904に画像データを送信する。なお、この際の外部AP300への接続はユーザ操作によって行ってもよい。図9(b)のような動作をする利点は以下の通りである。すなわち、デジタルカメラ100と携帯電話200との間で通信を行う場合、外部APを経由して通信するよりデジタルカメラ100と携帯電話200とが直接通信した方が通信速度が早いケースが多い。そこで、デジタルカメラ100と携帯電話200との間のデータ通信はデジタルカメラ100の形成するネットワークを用いて直接通信し、インターネットを介したデータ通信が必要になったタイミング外部APの形成するネットワークに参加するのが効率的である。このように、第1のネットワークから第2のネットワークに参加するネットワークを変更することで、インターネットへのデータ送信が可能となる。
次に図10を用いて、外部AP300の形成するネットワークを用いた場合(図4のステップS407)について説明する。まずタイミング1001で、デジタルカメラ100と携帯電話200は外部AP300により形成されたネットワークに参加する。そして、外部AP300を介してデジタルカメラ100と携帯電話200との通信を確立する。そしてタイミング1002で、外部AP300を介してデジタルカメラ100から携帯電話200に画像データが送信され、携帯電話200は画像データを受信する。そして携帯電話200は受信した画像データをインターネット904に送信する処理を行うのであるが、携帯電話200は現在のネットワークがデジタルカメラ100により形成されたものでないことを事前の通知で認識している。そこで携帯電話200はタイミング1003で、インターネット904に画像データが送出されるよう、外部AP300に対して画像データを送信する。これが、外部AP300を利用した場合の動作の概要である。
以上説明したように、本実施形態におけるデジタルカメラ100は、現在参加しているネットワークが自機の簡易AP機能を用いて形成されたものか否かを携帯電話200に通知することとした。この構成により、携帯電話はネットワークの特徴に合わせた適切な処理を実行することが可能となる。
また、本実施形態では、ユーザが携帯電話200を操作することでデジタルカメラ100から携帯電話200への画像データの送信や、インターネットへの画像データの送信を指示する構成とした。これに対し、ユーザがデジタルカメラ100を操作して、画像データを携帯電話200に送信したり、携帯電話200からインターネットへの画像データの送信を指示するようにしてもよい。
また本実施形態では、デジタルカメラ100がネットワークを形成して携帯電話200と直接通信する構成とした。これに対し、Wi−Fi Directのように機器同士が事前に通信してどちらがAPとなるような接続形態においても、本発明を適用することは可能である。
また、本実施形態ではデジタルカメラ100から受信した画像データを携帯電話200がインターネットを介して送信する場合にネットワークを切り替える制御を例としてあげたが、本発明の適用範囲はこれに限定されない。例えば、参加中のネットワークがデジタルカメラ100により形成されたものであると判断した場合、携帯電話200は自機のWebブラウザや電子メールなど、インターネットを利用するアプリケーションを使用する場合に同様の制御を行ってもよい。
<携帯電話のアプリケーションが切り替られた場合の動作>
ここまで、携帯電話200がカメラ通信アプリケーションを用いて、デジタルカメラ100と通信するシステムについて説明した。ここで本実施形態の携帯電話200は、カメラ通信アプリケーションのみならず、様々な機能のプログラムを不揮発性メモリ203に保持し、複数のアプリケーションとして利用することができる。これらのアプリケーションは、ユーザ操作などに基づき切り替えることが可能である。以下、カメラ通信アプリケーションと他のアプリケーションとが切り替えられた場合の処理について説明する。
図11に、本実施形態の携帯電話200における、アプリケーション切り替えの概要を示す。
図11(a)は、カメラ通信アプリケーションを起動した状態の携帯電話200の外観例である。なお、図11(a)に示す画面は表示画面の一例であり、前述のとおり、カメラ通信アプリケーションが起動されると、図7(a)〜(f)のような画面が表示される。 図11(a)はさらに、携帯電話200の外観も示している。表示部206は操作部205の一例としてのタッチパネルも備える。また、携帯電話200は操作部205の一例として、「ホーム」ボタン221、「メニュー」ボタン222、「戻る」ボタン223などのボタンを備える。
本実施形態における携帯電話200は、フォアグラウンドとバックグラウンドという概念でアプリケーションを管理する。フォアグラウンドにいるアプリケーションとは、表示部206に表示されている状態にあるアプリケーションを指す。バックグラウンドにいるアプリケーションとは、表示部206には表示されていないものの、起動はされているアプリケーションを指す。
本実施形態における携帯電話200は、所定のアプリケーションをフォアグラウンドで実行中であっても、「ホーム」ボタン221を押下することにより、実行中のアプリケーションの画面をバックグラウンドに遷移させることができる。この場合、ホーム画面と呼ばれる画面がフォアグラウンドに表示される。図11(b)に、ホーム画面の画面例を示す。ホーム画面では、各アプリケーションを示すボタンが一覧表示される。ユーザ操作によりボタンが選択されると、各アプリケーションの起動や、起動中アプリケーションの呼び出しを行うことができる。例えば、ボタン231はカメラ通信アプリケーションのボタンであり、ボタン232はインターネットブラウジングを行うためのWebブラウザアプリケーションのボタンである。
図12(b)のホーム画面でWebブラウザアプリケーションのボタン232をユーザが選択すると、図12(c)に示すようにWebブラウザアプリケーションが起動し、Webブラウザアプリケーションの画面231が表示される。なお、Webブラウザアプリケーションがまだ起動していなかった場合には新規に起動してフォアグラウンドに遷移させ、画面を表示する。一方、すでにWebブラウザアプリケーションを起動していた場合には、バックグラウンドにいたWebブラウザアプリケーションの画面をフォアグラウンドに遷移させることで、Webブラウザアプリケーション画面を再表示する。
また、本実施形態における携帯電話200は、「戻る」ボタン223を使用して、現在の操作を行う直前にフォアグラウンドに表示していたアプリケーションを呼び出すことができる。その場合、バックグラウンドにいたアプリケーションの画面をフォアグラウンドに遷移させるとともに、表示中であったアプリケーションの画面をバックグラウンドに遷移させることになる。このようにして、携帯電話200では、複数のアプリケーションを随時切り替えることができる。
ここで、本実施形態のカメラ通信アプリケーションがフォアグラウンドからバックグラウンドに遷移した場合について説明する。本実施形態における携帯電話200は、現在参加中のネットワークが、簡易APとしてのデジタルカメラ100が形成したものであるか否かに基づき、アプリケーション切り替え時の処理を異ならせる。
まず、簡易APにより形成されたネットワークに参加していると判断した場合、携帯電話200はカメラ通信アプリケーションをバックグラウンドに遷移させる。さらに携帯電話200は参加中のネットワークから離脱し、周辺の他のネットワークに接続する。このようにした理由は以下の通りである。すなわち、携帯電話200にインストールされるアプリケーションの多くは、インターネットを利用するものが多く存在する。仮にこのようなアプリケーションに切り替わった場合に、携帯電話200が引き続き簡易APが形成したネットワークに参加していると、インターネットが利用できず不便だからである。なお、ネットワークから離脱後に新たなネットワークに参加する処理は、離脱後に自動的に実行してもよいし、離脱後にユーザの操作に応じて実行してもよい。
本実施形態のカメラ通信アプリケーションでは、図11(d)に示すとおりに、アプリケーション切り替え後、簡易APが形成したネットワークから離脱したタイミングで、デジタルカメラとの接続を切断した旨のメッセージ231を表示する。さらに、ネットワークからの離脱後、自動的に新たなネットワークに参加する場合はその旨も通知する。
なお、通常APの形成するネットワークに参加していると判断した場合は、そのままネットワークへの参加を継続する。
なお、携帯電話200がデジタルカメラ100から画像データを受信している最中にアプリケーションの切り替え指示を受け付けた場合、即座にネットワークから離脱せず、画像データの受信を継続してもよい。この場合には、図11(e)に示すメッセージを表示し、デジタルカメラ100との接続を継続することを伝えるとともに、その間は他のアプリケーションでインターネットを利用できないことを伝える。
図12は、カメラ通信アプリケーションから他のアプリケーションへの切り替えが実行されたときの携帯電話200の処理を示すフローチャートである。なお、以下の説明で各アプリケーションが動作主体のように記述する場合があるが、実際には各アプリケーションのプログラムに従い、制御部201が携帯電話200の各部を制御することにより処理が実現される。
ステップS1201にて、カメラ通信アプリケーションは、バックグラウンドへの遷移通知を待機する。バックグラウンドへの遷移通知は、ユーザによりホームボタン221が操作されたことを検知したOSが、カメラ通信アプリケーションに対して通知する。通知を受けたと判断した場合、処理はステップS1202へ進む。
ステップS1202において、バックグラウンドに遷移したカメラ通信アプリケーションは、現在参加しているネットワークがデジタルカメラ100の簡易AP機能で形成されたものか判断する。制御部201は、図4のステップS406でデジタルカメラから受信した通知を参照することで、本ステップにおける判断を行う。デジタルカメラ100の簡易AP機能で形成されたネットワークではないと判断した場合、処理をステップS1212に進める。デジタルカメラ100の簡易AP機能で形成されたネットワークであると判断した場合、処理をステップS1203に進める。
まず、ステップS1202からステップS1212に進んだ場合について説明する。この場合、現在自機が参加しているネットワークが簡易AP機能により形成されたものではなく、外部APによるものであると判断する。つまり、図3(a)に示すような接続形態であると判断する。この場合、参加中のネットワークに接続したままとする(ステップS1212)。これにより、他のアプリケーションでもインターネットを利用することが可能である。
次に、ステップS1202からステップS1203に進んだ場合について説明する。ステップS1203において、カメラ通信アプリケーションは、現在デジタルカメラ100から画像データを受信中であるか判断する。受信中であればステップS1204へ進む。受信処置中でなければステップS1207へ進む。
受信中の場合には、ステップS1204にて、図11(e)に示すとおりのメッセージを表示し、デジタルカメラとの接続を継続することを伝える。デジタルカメラから画像を受信する操作はそもそもユーザが指示したものなので、画像受信処理中であることが自明であれば、このメッセージは表示しなくともよい。その後、ステップS1205にて、カメラからの画像データの受信処理を継続し、ステップS1206にて画像データの受信が完了したと判断した場合には、ステップS1207へ進む。
ここで、カメラ通信アプリケーションはバックグラウンドに遷移した後、ステップS1207で一定時間待機する。これは、ユーザが誤操作で他のアプリケーションへ接続してしまった可能性を考慮したものであり、もしすぐにカメラ通信アプリケーションがフォアグラウンドに戻された場合に、デジタルカメラとの接続を維持しておくためである。この一定時間は、10秒など、アプリケーション切り替えが誤操作でないことを判断するに十分な時間を設けるのがよい。なお、このステップS1207は必ずしも実行する必要はなく、ステップS1207を省略することで、切り替え先のアプリケーションをすぐに利用できるようにすることも考えられる。
続いてカメラ通信アプリケーションは、ステップS1208にて、自身が引き続きバックグラウンドにいるかいなかを判断する。バックグラウンドにいると判断した場合には、ステップS1209にてネットワークを離脱し、ステップS1210にて新たなネットワークへ接続する。そしてステップS1211にて図11(d)に示すとおりに、アプリケーション切り替え後、カメラが形成したネットワークから離脱したタイミングで、カメラとの接続を切断した旨のメッセージ231を表示する。
なお、ここでは省略したが、ステップS1211でメッセージを表示する前に、新しいネットワークでインターネットが利用できるか判断したうえで、その利用の可否をメッセージ表示しても良い。
[第2の実施形態]
第1の実施形態では、携帯電話200側で必要に応じて参加するネットワークを切り替える形態について説明した。しかしながら、ネットワークを切り替える制御を容易に行えないシステムも考えられる。特に、いわゆるスマートフォンと呼ばれる携帯電話の場合、OSと、OS上で動作するアプリケーションの役割分担がある程度明確になっている。例えば、ネットワークの切り替えはOSの機能であり、アプリケーションからはネットワークを切り替える制御ができないケースが考えられる。本実施形態では、上記のようなケースにおいても、ネットワークの特徴に応じた適切な処理を実行できるようにする。なお、本実施形態は第1の実施形態と共通する部分が多いため、共通部分の説明は省略し、本実施形態に特有の部分を中心に説明する。以下、OSやカメラ通信アプリケーションが処理の主体であるかのように記載する箇所があるが、実際には制御部201がOSまたはカメラ通信アプリケーションのいずれかのプログラムを読み込み、各種処理を実現していることはいうまでもない。
図14は、本実施形態における、携帯電話200の動作を示すフローチャートである。このフローチャートはデジタルカメラ100と接続した後の処理を示すものであり、図6と同様の処理に関しては同じステップ番号を付した。図6のフローチャートと異なるのは、ステップS1101〜S1104である。
ステップS1101で、カメラ通信アプリケーションは、接続しているデジタルカメラ100に対して、形成したネットワークの消滅要求を出す。この要求を受信したデジタルカメラ100は、自機の簡易AP機能で形成したネットワークを消滅させる。前述したように、ネットワークの消滅処理として、デジタルカメラ100はビーコン信号の送信を停止し、ネットワークに対してネットワークが消滅することを通知する。
続いて、ステップS1102で、接続しているネットワークが消滅しているかどうかを判断する。ネットワークが消滅したと判断した場合には、ステップS612に進む。消滅していないと判断した場合は処理を繰り返す。
本実施形態におけるOSは、今まで参加していたネットワークが消滅したことを検知すると、ネットワークの切り替えを行う。まず周辺の無線LANネットワークを検索し、以前接続したことのある無線LANネットワークを検出した場合はそのネットワークに参加する。また、以前接続したことのある無線LANネットワークが検出されなかった場合は、3G通信に切り替える。このように、カメラ通信アプリケーションは携帯電話200の参加するネットワークを直接切り替えることはできないものの、デジタルカメラ100の形成するネットワークを消滅させるよう制御することで、間接的にネットワークを切り替えることが可能となる。
次に、ステップS1103で、カメラ通信アプリケーションはOSに対してインターネットへの画像データの送信を要求する。具体的には、送信先のアドレス、送信対象となる画像データを特定する情報などをOSに通知する。通信アプリケーションの処理はここまでである。
次にステップS1104にてOSは、現在参加しているネットワークを介して画像データをインターネットに送信する。
以上が、本実施形態における携帯電話200の動作である。続いて、デジタルカメラ100の動作について説明する。図15は、本実施形態におけるデジタルカメラ100の動作を示すフローチャートである。このフローチャートは携帯電話200と接続した後の処理を示すものであり、図8と同様の処理に関しては同じステップ番号を付した。図6のフローチャートと異なるのは、ステップS1201、S1202である。ステップS807において、制御部101が本画像データの取得要求ではないと判断した場合に、処理はステップS1201に進む。
ステップS1201で、制御部101は、携帯電話200からの要求がネットワークの消滅要求であるかどうかを判断する。消滅要求である場合にはステップS1202に進む。消滅要求でない場合はステップS810に進み、エラーを送信する。
ステップS1202で、制御部101は自機の簡易AP機能で形成したネットワークの消滅処理を行い、終了する。
なお、本実施形態ではネットワークの消滅要求を受けた時点で消滅処理を行ったが、携帯電話200に処理を受け付けたことを返信し、その後所定時間待ってからネットワーク消滅処理を実行してもよい。そうすることによって、携帯電話200は要求が受け付けられたことを知ることができる。
同様に、図15に、携帯電話のアプリケーションの切り替えが実行されたときの、本実施形態におけるカメラ通信アプリケーションの処理としてのフローチャートを示す。図12と同様の処理に関しては同じステップ番号を付した。図12のフローチャートと異なるのは、ステップS1601〜S1602である。
ステップS1601で、カメラ通信アプリケーションは、接続しているデジタルカメラ100に対して、形成したネットワークの消滅要求を出す。この要求を受信したデジタルカメラ100は、自機の簡易AP機能で形成したネットワークを消滅させる。前述したように、ネットワークの消滅処理として、デジタルカメラ100はビーコン信号の送信を停止し、ネットワークに対してネットワークが消滅することを通知する。
続いて、ステップS1602で、接続しているネットワークが消滅しているかどうかを判断する。ネットワークが消滅したと判断した場合には、ステップS612に進む。消滅していないと判断した場合は処理を繰り返す。
以上に説明したように、本実施形態によれば、携帯電話のアプリなどネットワークの切断が実施できない場合でも、ユーザがネットワークの接続状態を意識することなく、画像データのアップロードを最適なネットワークで行うことが可能になる。
また、本発明の目的は、以下の様にして達成することも可能である。まず、前述した実施形態の機能を実現するソフトウェアのプログラムコードを記録した記憶媒体(または記録媒体)を、システムあるいは装置に供給する。そして、そのシステムあるいは装置のコンピュータ(またはCPUやMPU)が記憶媒体に格納されたプログラムコードを読み出し実行する。この場合、記憶媒体から読み出されたプログラムコード自体が前述した実施形態の機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、コンピュータが読み出したプログラムコードを実行することにより、前述した実施形態の機能が実現されるだけでなく、以下のようにして達成することも可能である。即ち、読み出したプログラムコードの指示に基づき、コンピュータ上で稼働しているオペレーティングシステム(OS)などが実際の処理の一部または全部を行い、その処理によって前述した実施形態の機能が実現される場合である。ここでプログラムコードを記憶する記憶媒体としては、例えば、フレキシブルディスク、ハードディスク、ROM、RAM、磁気テープ、不揮発性のメモリカード、CD−ROM、CD−R、DVD、光ディスク、光磁気ディスク、MOなどが考えられる。また、LAN(ローカル・エリア・ネットワーク)やWAN(ワイド・エリア・ネットワーク)などのコンピュータネットワークを、プログラムコードを供給するために用いることができる。