以下、図面を用いて、本発明の一実施形態について説明する。
〔第1の実施形態〕
まず、本発明の第1の実施形態について説明する。
<<実施形態の全体構成>>
図1は、本発明の第1の実施形態に係る通信システムの概略図である。図1に示されているように、通信システム1は、複数の通信端末(10aa,10ab,…)、各通信端末(10aa,10ab,…)用のディスプレイ(120aa,120ab,…)、複数の中継装置(30a,30b,30c,30d)、通信管理システム50、アプリケーションサーバ(80ab,80cd)、プログラム提供システム90、及びメンテナンスシステム100によって構築されている。
なお、以下、「アプリケーション」は「アプリ」と省略して説明する。また、以下では、「通信端末」は単に「端末」として表され、「通信管理システム」は単に「管理システム」として表されている。また、複数の端末(10aa,10ab,…)のうち任意の端末は、「端末10」と表され、複数のディスプレイ(120aa,120ab,…)のうち任意のディスプレイは「ディスプレイ120」と表され、複数の中継装置(30a,30b,30c)のうち任意の中継装置は「中継装置30」と表されている。更に、テレビ会議の開始を要求する要求元としての端末は「要求元端末」と表され、要求先である宛先(中継先)としての端末は「宛先端末」と表されている。また、ルータ(70a,70b,70c,70d,70ab,70cd)のうち任意のルータは、「ルータ70」と表されている。また、アプリサーバ(80ab,80cd)のうち任意のアプリサーバは、「アプリサーバ80」と表されている。なお、この通信は、音、映像(画像)、又は、音及び映像(画像)によって実現することができる。
この通信システム1によって、通信データの一例としての画像データ及び音データの通信が行われることで、遠隔地間のテレビ会議等を実現することができる。なお、複数のルータ(70a,70b,70c,70d,70ab,70cd)は、通信データの最適な経路の選択を行う。
また、端末(10aa,10ab,10ac,・・・)、中継装置30a、及びルータ70aは、LAN2aによって通信可能に接続されている。通信端末(10ba,10bb,10bc,・・・)、中継装置30b、及びルータ70bは、LAN2bによって通信可能に接続されている。また、LAN2a及びLAN2bは、ルータ70abが含まれた専用線2abによって通信可能に接続されている。更に、LAN2a、LAN2b、及び専用線2abは、会社の一例としてX社内で構築されている。例えば、LAN2aはX社のA事業所内で構築されており、LAN2bはX社のB事業所内で構築されている。
また、X社の保有する端末10のうち、端末(10ac,10bc)は、開発端末であって、デバッガを有しており、通信システム1の各端末10で動作するアプリの開発に用いられる。アプリサーバ80abは、X社の保有するアプリサーバであって、インターネット2iと接続している。端末(10ac,10bc)で開発されたアプリは、X社の保有するアプリサーバ80abにアップロードされる。また、通信システム1の各端末10は、アプリサーバ80abからアプリをダウンロードして、利用することができる。
一方、通信端末(10ca,10cb,10cc,・・・)、中継装置30c、及びルータ70cは、LAN2cによって通信可能に接続されている。通信端末10d(10da,10db,10dc,・・・)、中継装置30d、及びルータ70dは、LAN2dによって通信可能に接続されている。また、LAN2c及びLAN2dは、ルータ70cdが含まれた専用線2cdによって通信可能に接続されている。更に、LAN2c、LAN2d、及び専用線2cdは、所定の会社の一例としてY社内で構築されている。例えば、LAN2cはY社のC事業所内で構築されており、LAN2dはY社のD事業所内で構築されている。X社及びY社は、それぞれルータ(70ab,70cd)からインターネット2iを介して通信可能に接続されている。
また、Y社の保有する端末10のうち、端末(10cc,10dc)は、開発端末であって、デバッガを有しており、通信システム1の各端末10で動作するアプリの開発に用いられる。アプリサーバ80cdは、Y社の保有するアプリサーバであって、インターネット2iと接続している。端末(10cc,10dc)で開発されたアプリは、Y社の保有するアプリサーバ80cdにアップロードされる。また、通信システム1の各端末10は、アプリサーバ80cdからアプリをダウンロードして、利用することができる。
また、管理システム50、プログラム提供システム90、及びメンテナンスシステム100は、インターネット2iに接続されている。なお、管理システム50、プログラム提供システム90、及びメンテナンスシステム100の設置場所は限定されず、それぞれのシステムが同一地域あるいは同一国内に設置されていても、異なる地域あるいは異なる国内にそれぞれ設置されていても良い。
また、本実施形態では、LAN2a、LAN2b、専用線2ab、インターネット2i、専用線2cd、LAN2c、及びLAN2dによって、本実施形態の通信ネットワーク2が構築されている。この通信ネットワーク2には、有線だけでなく、WiFi(Wireless Fidelity)やBluetooth(登録商標)等の無線による通信が行われる箇所があってもよい。
また、図1において、各端末10、各中継装置30、管理システム50、各ルータ70、プログラム提供システム90、及びメンテナンスシステム100の下に示されている4組の数字は、一般的なIPv4におけるIPアドレスを簡易的に示している。例えば、端末10aaのIPアドレスは「1.2.1.3」である。また、IPv4ではなく、IPv6を用いてもよいが、説明を簡略化するため、IPv4を用いて説明している。
なお、各端末10は、複数の事業所間での通信や、同じ事業所内の異なる部屋間での通信だけでなく、同じ部屋内での通信や、屋外と屋内又は屋外と屋外での通信で使われてもよい。各端末10が屋外で使われる場合には、携帯電話通信網等の無線による通信が行われる。
また、図1に示されている各端末10は、通信データの送受信により、ユーザの通信を実現する端末であり、例えば、テレビ会議用端末である。更に、端末10は、所定の通信方式(通信の宛先と接続又は切断をするための呼制御方式、及び通信データをIPパケット化するための符号化方式)を利用して、通信データの送受信を行う。
なお、この呼制御方式としては、(1)SIP(Session Initiation Protocol)、(2)H.323、(3)SIPを拡張したプロトコル、(4)インスタントメッセンジャーのプロトコル、(5)SIPのMESSAGEメソッドを利用したプロトコル、(6)インターネットリレーチャットのプロトコル(IRC(Internet Relay Chat))、(7)インスタントメッセンジャーのプロトコルを拡張したプロトコル等が挙げられる。このうち、(4)インスタントメッセンジャーのプロトコルは、例えば、(4-1)XMPP(Extensible Messaging and Presence Protocol)、又は(4-2)ICQ(登録商標)、AIM(登録商標)、若しくはSkype(登録商標)などで利用されるプロトコルである。また、(7)インスタントメッセンジャーのプロトコルを拡張したプロトコルは、例えば、Jingleである。
また、端末10には、通話を実行するための通話アプリが、工場出荷前から複数インストールされている。
また、複数の端末10は、お互いに同じ通話アプリを利用した場合、通信ネットワーク2を介して通信を実現することができる。ここで、通話アプリは、通信及びメッセージアプリを含み、テレビ会議用の通話アプリの他に、例えば、Skype, Google Talk, LINE, FaceTime, カカオトーク, Tango(登録商標又は未登録商標)等が挙げられる。
また、図2に示されているように、通信システム1において、要求元端末と宛先端末との間では、管理システム50を介して、各種の管理情報を送受信するための管理情報用セッションseiが確立される。また、要求元端末と宛先端末との間では、中継装置30を介して、画像データ、及び音データの各データを送受信するためのセッションが確立される。ここでは、このセッションを、画像・音データ用セッションsedとして示している。
<<実施形態のハードウェア構成>>
次に、本実施形態のハードウェア構成を説明する。まず、端末10のハードウェア構成について説明する。端末10には、通話アプリを利用して端末10間のテレビ会議を実現するテレビ会議端末と、通話アプリを利用可能であるとともに通話アプリのデバッガを有している通話アプリ開発用のPC(Personal Computer)(以下開発端末と言う)と、が含まれている。以下、テレビ会議端末の外観について説明する。
図3は、本実施形態に係る端末10の外観図である。図3に示されているように、端末10は、筐体1100、アーム1200、及びカメラハウジング1300を備えている。このうち、筐体1100の前側壁面1110には、複数の吸気孔によって形成された不図示の吸気面が設けられており、筐体1100の後側壁面1120には、複数の排気孔が形成された排気面1121が設けられている。これにより、筐体1100に内蔵された冷却ファンの駆動によって、不図示の吸気面を介して端末10の後方の外気を取り込み、排気面1121を介して端末10の後方へ排気することができる。筐体1100の右側壁面1130には、収音用孔1131が形成され、後述する内蔵型のマイク114によって音声、物音、雑音等の音が収音可能となっている。
筐体1100の右側壁面1130側には、操作パネル1150が形成されている。この操作パネル1150には、後述の複数の操作ボタン(108a〜108e)、後述の電源スイッチ109、及び後述のアラームランプ119が設けられていると共に、後述の内蔵型のスピーカ115からの出力音を通すための複数の音声出力孔によって形成された音出面1151が形成されている。また、筐体1100の左側壁面1140側には、アーム1200及びカメラハウジング1300を収容するための凹部としての収容部1160が形成されている。筐体1100の右側壁面1130には、後述の外部機器接続I/F118に対して電気的にケーブルを接続するための複数の接続口(1132a〜1132c)が設けられている。一方、筐体1100の左側壁面1140には、後述の外部機器接続I/F118に対して電気的にディスプレイ120用のケーブル120cを接続するための不図示の接続口が設けられている。
なお、以下では、操作ボタン(108a〜108e)のうち任意の操作ボタンを示す場合には「操作ボタン108」を用い、接続口(1132a〜1132c)のうち任意の接続口を示す場合には「接続口1132」を用いて説明する。
次に、アーム1200は、トルクヒンジ1210を介して筐体1100に取り付けられており、アーム1200が筐体1100に対して、135度のチルト角θ1の範囲で、上下方向に回転可能に構成されている。図2は、チルト角θ1が90度の状態を示している。カメラハウジング1300には、後述の内蔵型のカメラ112が設けられており、ユーザ、書類、及び部屋等を撮像することができる。また、カメラハウジング1300には、トルクヒンジ1310が形成されている。カメラハウジング1300は、トルクヒンジ1310を介して、アーム1200に取り付けられている。そして、カメラハウジング1300は、トルクヒンジ1310を介してアーム1200に取り付けられており、カメラハウジング1300がアーム1200に対して、図2で示されている状態を0度として±180度のパン角θ2の範囲で、且つ、±45度のチルト角θ3の範囲で、上下左右方向に回転可能に構成されている。
なお、上記図3の外観図はあくまで一例であってこの外観に限定するものではない。端末10は例えば汎用的なPC、スマートフォン、タブレット型端末、電子黒板、プロジェクターなどの投影装置、自動車に搭載されるカーナビゲーション端末、複合機やプリンタなどの画像形成装置、ウェアラブル端末であってもよい。カメラやマイクは必ずしも内蔵型である必要はなく外付けであってもよい。
なお、端末10のうち開発端末、並びに、管理システム50、プログラム提供システム90、及びメンテナンスシステム100は、それぞれ一般のサーバコンピュータの外観と同じであるため、外観の説明を省略する。
続いて端末10のうちテレビ会議端末のハードウェア構成について説明する。図4は、本実施形態に係る端末10のハードウェア構成図である。図4に示されているように、本実施形態の端末10は、端末10全体の動作を制御するCPU(Central Processing Unit)101、IPL(Initial Program Loader)等のCPU101の駆動に用いられるプログラムを記憶したROM(Read Only Memory)102、CPU101のワークエリアとして使用されるRAM(Random Access Memory)103、通信端末10用のプログラム、画像データ、及び音声データ等の各種データを記憶するフラッシュメモリ104、CPU101の制御にしたがってフラッシュメモリ104に対する各種データの読み出し又は書き込みを制御するSSD(Solid State Drive)105、フラッシュメモリ等の記録メディア106に対するデータの読み出し又は書き込み(記憶)を制御するメディアドライブ107、端末10の宛先を選択する場合などに操作される操作ボタン108、端末10の電源のON/OFFを切り換えるための電源スイッチ109、通信ネットワーク2を利用してデータ伝送をするためのネットワークI/F(Interface)111を備えている。
また、端末10は、CPU101の制御に従って被写体を撮像して画像データを得る内蔵型のカメラ112、このカメラ112の駆動を制御する撮像素子I/F113、音声を入力する内蔵型のマイク114、音声を出力する内蔵型のスピーカ115、CPU101の制御に従ってマイク114及びスピーカ115との間で音声信号の入出力を処理する音声入出力I/F116、CPU101の制御に従って外付けのディスプレイ120に画像データを伝送するディスプレイI/F117、各種の外部機器を接続するための外部機器接続I/F118、端末10の各種機能の異常を知らせるアラームランプ119、及び上記各構成要素を図4に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン110を備えている。
ディスプレイ120は、被写体の画像や操作用等を表示する液晶や有機EL(Organic Electroluminescence)によって構成された表示部である。また、ディスプレイ120は、ケーブル120cによってディスプレイI/F117に接続される。このケーブル120cは、アナログRGB(VGA)信号用のケーブルであってもよいし、コンポーネントビデオ用のケーブルであってもよいし、HDMI(High-Definition Multimedia Interface)やDVI(Digital Video Interactive)信号用のケーブルであってもよい。
カメラ112は、レンズや、光を電荷に変換して被写体の画像(映像)を電子化する固体撮像素子を含み、固体撮像素子として、CMOS(Complementary Metal Oxide Semiconductor)や、CCD(Charge Coupled Device)等が用いられる。
外部機器接続I/F118には、図6に示されている筐体1100の接続口1132に差し込まれたUSB(Universal Serial Bus)ケーブル等によって、外付けカメラ、外付けマイク、及び外付けスピーカ等の外部機器がそれぞれ電気的に接続可能である。外付けカメラが接続された場合には、CPU101の制御に従って、内蔵型のカメラ112に優先して、外付けカメラが駆動する。同じく、外付けマイクが接続された場合や、外付けスピーカが接続された場合には、CPU101の制御に従って、それぞれが内蔵型のマイク114や内蔵型のスピーカ115に優先して、外付けマイクや外付けスピーカが駆動する。
なお、記録メディア106は、端末10に対して着脱自在な構成となっている。また、CPU101の制御にしたがってデータの読み出し又は書き込みを行う不揮発性メモリであれば、フラッシュメモリ104に限らず、EEPROM(Electrically Erasable and Programmable ROM)等を用いてもよい。
続いて端末10のうち開発端末のハードウェア構成について、テレビ会議端末と異なる点を説明する。図5は、本実施形態に係る端末10のハードウェア構成図である。開発端末において、カメラ112、マイク114、スピーカ115は外付けの外部機器であり、それぞれケーブル(112c,114c,115c)によって、外部機器接続I/F118に接続している。
また、開発端末には、操作ボタン108が設けられておらず、代わりに、ユーザから文字や選択結果等の入力を受け付ける手段として、キーボード120及びマウス121が設けられている。また、開発端末には、アラームランプ119が設けられておらず、端末10の異常を、スピーカ115あるいはディスプレイ120により通知するように構成されている。
図6は、本発明の本実施形態に係る管理システム50のハードウェア構成図である。管理システム50は、管理システム50全体の動作を制御するCPU201、IPL等のCPU201の駆動に用いられるプログラムを記憶したROM202、CPU201のワークエリアとして使用されるRAM203、管理システム50用のプログラム等の各種データを記憶するHD204、CPU201の制御にしたがってHD204に対する各種データの読み出し又は書き込みを制御するHDD(Hard Disk Drive)205、フラッシュメモリ等の記録メディア206に対するデータの読み出し又は書き込み(記憶)を制御するメディアドライブ207、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示するディスプレイ208、通信ネットワーク2を利用してデータ通信するためのネットワークI/F209、文字、数値、各種指示などの入力のための複数のキーを備えたキーボード211、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行うマウス212、着脱可能な記録媒体の一例としてのCD−ROM(Compact Disc Read Only Memory)213に対する各種データの読み出し又は書き込みを制御するCD−ROMドライブ214、及び、上記各構成要素を図6に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン210を備えている。
一方、中継装置30、アプリサーバ80、プログラム提供システム90、及びメンテナンスシステム100は、上記管理システム50と同様のハードウェア構成を有しているため、その説明を省略する。
続いて、端末10のうちテレビ会議端末のソフトウェア構成について説明する。図7は、テレビ会議端末のソフトウェア構成図である。図7に示されているように、OS1020、通話アプリ1031、通話アプリ1032、通話アプリ1033、及び通話アプリ1034は、RAM103の作業領域1010上で動作する。OS1020は、特に限定されないが、工場出荷前から端末10にインストールされている。また、通話アプリ(1031、1032、1033、1034)は、特に限定されないが、工場出荷前から端末10にインストールされたものであっても、工場出荷後にアプリサーバ80から取得してインストールされたものであっても良い。
また、これらのうち、OS1020は、基本的な機能を提供し、端末10全体を管理する基本ソフトウェアである。ブラウザは、OS1020上で動作するソフトウェアであって、情報を一定の目的に沿って表示し閲覧に供するために用いられる。通話アプリ(1031、1032、1033、1034)は、ブラウザ1021上で動作するソフトウェアであって、他の端末10と通信を行うために用いられる。なお、本発明の一実施形態によると、各通話アプリ(1031、1032、1033、1034)は、それぞれ異なる通信プロトコルに対応したものであっても良い。
なお、通話アプリ(1031、1032、1033、1034)は、一例であって、他のアプリがインストールされていてもよいが、説明の簡略化のために、4種類のアプリを説明した。また、複数の通話アプリがインストールされる場合は、上記(1)〜(7)のように、異なるプロトコルの通話アプリがインストールされてもよい。
続いて、端末10のうち開発端末のソフトウェア構成について、テレビ会議端末のソフトウェア構成と異なる点を説明する。図8は、開発端末のソフトウェア構成図である。開発端末には、OS1020上で動作するブラウザとして、開発用のブラウザ1021がインストールされている。開発用のブラウザ1021は、デバッガ1021aを付属する点で、テレビ会議端末のブラウザ1021とは異なっている。デバッガ1021aは、ブラウザ1021上で通話アプリ(1031、1032、1033、1034)を起動させたときに、起動させたアプリにおけるソースコードなどの中身を確認することで、通話アプリ(1031、1032、1033、1034)のデバッグを行うために用いられる。
<<実施形態の機能構成>>
次に、本実施形態の機能構成について説明する。図9は、本実施形態の通信システム1の一部を構成する端末10、管理システム50、及びアプリサーバ80の機能ブロック図である。図9では、端末10、及び管理システム50が、通信ネットワーク2を介してデータ通信することができるように接続されている。
<通信端末の機能構成>
端末10は、装置制御部1050及び通信制御部1060を有している。このうち、装置制御部1050は、図7又は図8に示されているOS1020およびブラウザ1021が起動することによって実現される。また、通信制御部1060は、図7あるいは図8に示されている通話アプリ(1031、1032、1033、1034)の何れかが起動されることによって実現される。
また、装置制御部1050は、送受信部11、操作入力受付部12、表示制御部13、起動要求部14、及び記憶・読出部19を有している。これら各部は、図4あるいは図5に示されている各構成要素のいずれかが、フラッシュメモリ104からRAM103上に展開された起動アプリ(プログラム)に従ったCPU101からの命令によって動作することで実現される機能である。
一方、通信制御部1060は、送受信部21、起動部22、表示制御部24、機能実行部25、及び記憶・読出部29を有している。これら各部は、図4あるいは図5に示されている各構成要素のいずれかが、フラッシュメモリ104からRAM103上に展開された通話アプリ(プログラム)に従ったCPU101からの命令によって動作することで実現される機能である。
また、端末10は、図4あるいは図5に示されているROM102、RAM103、フラッシュメモリ104によって構築される記憶部1000を有している。
(装置制御部の各機能構成)
次に、図9を用いて、端末10における装置制御部1050の各機能構成について詳細に説明する。なお、以下では、端末10における装置制御部1050の各機能構成を説明するにあたって、図4あるいは図5に示されている各構成要素のうち、装置制御部1050の各機能構成を実現させるための主な構成要素との関係も説明する。
図9に示されている端末10の送受信部11は、図4あるいは図5に示されているCPU101からの命令、及びネットワークI/F111によって実現され、通信ネットワーク2を介して、相手側の端末、各装置又はシステム等と各種データ(または情報)の送受信を行う。
操作入力受付部12は、図4あるいは図5に示されているCPU101からの命令、並びに図3に示されている操作ボタン(108a、108b、108c、108d、108e)及び電源スイッチ109によって実現され、ユーザによる各種入力又は各種選択を受け付ける。例えば、ユーザが、図3に示されている電源スイッチ109をONにすると、図9に示されている操作入力受付部12が電源オンを受け付けて、電源をONにする。
表示制御部13は、図4あるいは図5に示されているCPU101からの命令、及びディスプレイI/F117によって実現され、通信する際に相手側から送られてきた画像データをディスプレイ120に送信するための制御を行う。
記憶・読出部19は、図4あるいは図5に示されているCPU101からの命令及びSSD105によって実行され、又はCPU101からの命令によって実現され、記憶部1000に各種データを記憶したり、記憶部1000に記憶された各種データを読み出す処理を行う。
起動要求部14は、図4あるいは図5に示されているCPU101からの命令に基づいて、ブラウザ1021によって実現される機能であって、通信制御部1060に対して、通話アプリ(1031、1032、1033、1034)の起動を要求する。
(通信制御部の各機能構成)
次に、図4、図5、及び図9を用いて、端末10における通信制御部1060の各機能構成について詳細に説明する。なお、以下では、端末10における通信制御部1060の各機能構成を説明するにあたって、図4あるいは図5に示されている各構成要素のうち、通信制御部1060の各機能構成を実現させるための主な構成要素との関係も説明する。
図9に示されている送受信部21は、図4あるいは図5に示されているCPU101からの命令、及びネットワークI/F111によって実現され、通信ネットワーク2を介して、相手側の端末、各装置又はシステム等と各種データ(または情報)の送受信を行う。
起動部22は、図4あるいは図5に示されているCPU101からの命令によって実現され、装置制御部1050の操作入力受付部12がユーザによるアプリの選択を受け付けた場合に、操作入力受付部12の起動要求に基づいて通信制御部1060(通話アプリ)の動作を起動する。
表示制御部24は、図4あるいは図5に示されているCPU101からの命令、及びディスプレイI/F117によって実現され、画面のデータをディスプレイ120に送信するための制御を行う。
機能実行部25は、図4あるいは図5に示されているCPU101からの命令、及びカメラ112、マイク114、又はスピーカ115等によって実現され、画像又は音等による通信を実現するための制御を行う。
記憶・読出部29は、図4あるいは図5に示されているCPU101からの命令及びSSD105によって実行され、又はCPU101からの命令によって実現され、記憶部1000に各種データを記憶したり、記憶部1000に記憶された各種データを読み出す処理を行う。
<管理システムの機能構成>
管理システム50は、送受信部51、認証部52、登録部54、起動判断部55、及び記憶・読出部59を有している。これら各部は、図6に示されている各構成要素のいずれかが、HD204からRAM203上に展開された管理システム50用のプログラムに従ったCPU201からの命令によって動作することで実現される機能又は手段である。また、管理システム50は、図6に示されているHD204により構築される記憶部5000を有している。この記憶部5000には、以下に示すような各テーブルによって構成されているDB(5001,5002,5003,5004,5005)が構築される。
(端末認証管理テーブル)
図10は、端末認証管理テーブルを示す概念図である。記憶部5000には、図10に示されているような端末認証管理テーブルによって構成されている端末認証管理DB5001が構築されている。この端末認証管理テーブルでは、管理システム50によって管理される全ての端末10の各端末IDに対して、認証用のパスワードが関連付けられて管理される。例えば、図10に示されている端末認証管理テーブルにおいて、端末10aaの端末IDは「01aa」で、パスワードは「aaaa」であることが示されている。
(アプリ利用管理テーブル)
図11は、アプリ利用管理テーブルを示す概念図である。記憶部5000には、図11に示されているようなアプリ利用管理テーブルによって構成されているアプリ利用管理DB5003が構築されている。このアプリ利用管理テーブルでは、端末10を識別するための端末ID及びこの端末10にインストールされている複数のアプリのそれぞれを識別するためのアプリID毎に、この端末10でこのアプリの利用可能な期間(有効期間)の開始日と終了日とを関連付けて管理している。例えば、図11に示されているアプリ利用管理テーブルにおいて、端末IDが「01aa」である端末10aaでは、アプリIDが「a001」で識別されるアプリを2013年1月1日から2013年12月31日まで利用可能であることが示されている。
(アプリURL管理テーブル)
図12は、アプリURL管理テーブルを示す概念図である。記憶部5000には、図12に示されているようなアプリURL管理テーブルによって構成されているアプリURL管理DB5004が構築されている。このアプリURL管理テーブルでは、複数のアプリIDのそれぞれに、これらのアプリのアイコンデータの通信ネットワーク2におけるURL情報及びこれらのアプリの通信ネットワーク2におけるURL情報を関連付けて管理している。
(開発端末管理DB)
記憶部5000には、図13に示されているような開発者名称管理テーブル、図14によって示されているようなアプリ開発者管理テーブル、および図15によって示されているような開発端末管理テーブルによって構成されている開発端末管理DB5006が構築されている。なお、図13は開発者名称管理テーブルを示す概念図である。図14は、アプリ開発者管理テーブルを示す概念図である。図15は、開発端末管理テーブルを示す概念図である。
開発者名称管理テーブルでは、アプリケーションの開発者(デベロッパ)を識別するための開発者IDに対して、開発者の名称が関連付けられて管理される。例えば、図13に示されている開発者名称管理テーブルにおいて、開発者IDが「dv01」である開発者の名称は「A社」であることが示されている。なお、本実施形態の通信システム1において開発者は、開発者の保有する開発端末により、開発したアプリケーションのデバッグが許可されている。また、開発者は、人であっても、団体等であっても良く制限はない。
アプリ開発者管理テーブルでは、アプリケーションを識別するためのアプリIDに対して、開発者IDが関連付けられて管理される。例えば、図14に示されているアプリ開発者管理テーブルにおいて、アプリID「a010」で識別されるアプリは、開発者ID「dv01」によって識別されるA社によって開発されたことが示されている。
開発端末管理テーブルでは、端末10の端末IDに対して、この端末10を保有する開発者の開発者IDが関連付けられて管理される。例えば、図15に示されている開発端末管理テーブルにおいて、端末ID「01ac」で識別される端末10aaは、開発者ID「dv01」で識別されるA社によって保有されることが示されている。
(管理システムの各機能構成)
次に、通信管理システム50の各機能構成について詳細に説明する。なお、以下では、通信管理システム50の各機能構成を説明するにあたって、図6に示されている各構成要素のうち、通信管理システム50の各機能構成を実現させるための主な構成要素との関係も説明する。
送受信部51は、図6に示されているCPU201からの命令、及び図6に示されているネットワークI/F209によって実行され、通信ネットワーク2を介して各端末、装置又はシステムと各種データ(または情報)の送受信を行う。
認証部52は、図6に示されているCPU201からの命令によって実現され、送受信部51で受信された端末ID及びパスワードを検索キーとして、端末認証管理テーブル(図10参照)を検索し、この端末認証管理テーブルに同一の端末ID及びパスワードが管理されているかを判断することによって端末の認証を行う。
登録部54は、図6に示されているCPU201からの命令によって実現され、開発端末管理DB5006の各テーブルに、開発者ID、開発者名、アプリID、及び端末IDを登録する。
起動判断部55は、図6に示されているCPU201からの命令によって実現され、起動要求にかかるアプリの起動の可否を判断する。
記憶・読出部59は、図6に示されているCPU201からの命令及び図6に示すHDD205によって実行され、又はCPU201からの命令によって実現され、記憶部5000に各種データを記憶したり、記憶部5000に記憶された各種データを抽出する処理を行う。
<アプリサーバの機能構成>
アプリサーバ80は、送受信部81、及び記憶・読出部89を有している。これら各部は、図6に示されている各構成要素のいずれかが、HD204からRAM203上に展開されたアプリサーバ80用のプログラムに従ったCPU201からの命令によって動作することで実現される機能又は手段である。また、アプリサーバ80は、図6に示されているHD204により構築される記憶部8000を有している。
(アプリホスティングDB)
記憶部8000には、アプリホスティングDB8001が構築されている。アプリホスティングDBは、端末10のうち開発端末において開発され、アプリサーバ80にアップロードされたアプリを記憶して管理する。
送受信部81は、図6に示されているCPU201からの命令、及び図6に示されているネットワークI/F209によって実行され、通信ネットワーク2を介して各端末、装置又はシステムと各種データ(または情報)の送受信を行う。
記憶・読出部89は、図6に示されているCPU201からの命令及び図6に示すHDD205によって実行され、又はCPU201からの命令によって実現され、記憶部8000に各種アプリを記憶したり、記憶部8000に記憶された各種アプリを抽出する処理を行う。
<<実施形態の処理または動作>>
続いて、図16を用いて本実施形態の処理または動作の概要について説明する。図16は、通信システム1における各種情報の送受信の状態を示した概念図である。管理システム50は、複数の端末10において動作するアプリの起動を制御する起動制御装置としての機能を有している。管理システム50の開発端末管理DB5006(デバッグ許可端末管理手段の一例)におけるアプリ開発者管理テーブル(第1の管理手段の一例)では、アプリ毎に、このアプリのデバッグが許可される開発者(デベロッパの一例)の開発者ID(デベロッパ識別情報の一例)が関連付けられて管理されている。開発端末管理DB5006における開発端末管理テーブル(第2の管理手段の一例)では、開発者ID毎に、この開発者の保有する開発端末の端末IDが関連付けられて管理されている。すなわち、これらのテーブルに基づいて、開発端末管理DB5006は、アプリ毎に、このアプリのデバッグが許可されている開発端末を関連付けて管理することになる。
開発端末がアプリの起動を要求する場合に、開発端末管理DB5006において、この開発端末の端末IDに関連付けられているアプリケーション以外のアプリケーションの起動が要求されていたときには、送受信部51(起動制御手段の一例)は、起動を拒否する旨の情報を起動要求元の開発端末に送信する。一方、開発端末ではない端末10がアプリの起動を要求する場合には、開発端末管理DB5006で管理されている情報に関わらず、送受信部51は、アプリのURL(アプリケーションにアクセスするための情報の一例)を起動要求元の端末10に送信することにより起動を制御する。
この開発端末管理DB5006を用いることにより、開発端末において、当該開発端末によるデバッグが許可されているアプリ以外のアプリが起動しないように制御できるようになるので、デバッグに基づいたアプリの模倣を防ぐことができるようになる。
また、管理システム50は、開発端末管理テーブルにおいて、新たな端末IDが管理されるときに、新たに管理される端末IDによって識別される端末10において、デバッガをインストールすることを許可する。これにより、管理システム50では、デバッガがインストールされた端末10を管理できるので、起動判断部55(判断手段の一例)において、アプリの起動要求元の端末10が、デバッガを有する端末10であるか否かを判断することができるようになる。
続いて、本実施形態の処理または動作について、詳細に説明する。まずは、図17を用いて、開発端末を登録する処理について説明する。図17は、開発端末を登録する処理を示したシーケンス図である。図17では、図2に示されている管理情報用セッションseiによって、各種管理情報が送受信される。
まず、ユーザが、図3に示されている電源スイッチ109をONにすると、図9に示されている操作入力受付部12が電源ONを受け付けて、端末10を起動させる(ステップS1)。そして、送受信部11は、上記電源ONの受け付けを契機とし、通信ネットワーク2を介して管理システム50に、ログイン要求を行う(ステップS2)。これにより、管理システム50の送受信部51は、ログイン要求を受け付ける。なお、ログイン要求はログイン要求元の端末10のユーザによる指示入力を契機としてもよい。
このログイン要求には、要求元としての自端末である端末10を識別するための端末ID及びパスワードが含まれている。これら端末ID及びパスワードは、記憶・読出部19を介して記憶部1000から読み出されて、送受信部11に送られたデータである。なお、これら端末ID及びパスワードは、ログイン要求元の端末10のユーザによって入力されてもよい。また、端末10から管理システム50へログイン要求情報が送信される際は、受信側である管理システム50は、送信側である端末10のIPアドレスを取得することができる。
次に、管理システム50の認証部52は、送受信部51を介して受信したログイン要求情報に含まれている端末ID及びパスワードを検索キーとして、記憶部5000の端末認証管理テーブル(図10参照)を検索し、この端末認証管理テーブルに同一の端末ID及びパスワードが管理されているかを判断することによって端末認証を行う(ステップS3)。
そして、管理システム50の送受信部51は、上記認証部52によって得られた認証結果が示された認証結果情報を、通信ネットワーク2を介して、ログイン要求元の端末10に送信する(ステップS4)。これにより、ログイン要求元の端末10の送受信部11は、認証結果情報を受信する。続いて、認証部52によって正当な利用権限を有する端末であると判断された場合につき、以下説明する。
端末10の送受信部11は、通信ネットワーク2を介して管理システム50に、開発者登録を要求する旨の情報を送信する(ステップS5)。この要求には、開発者の名称「A社」が含まれている。これにより、管理システム50の送受信部51は、開発者登録の要求を受け付ける。
続いて、管理システム50の登録部54は、登録要求元の開発者を示す開発者ID「dv01」を作成するとともに、作成した開発者ID「dv01」を、登録要求元から送信された開発者の名称「A社」に関連付けて、開発者名称管理テーブル(図13)において管理させることにより開発者登録を行う(ステップS6)。開発者登録が完了すると、送受信部51は登録が完了した旨を示す登録結果情報を端末10へ送信する(ステップS7)。登録結果情報には、登録部54によって作成された開発者ID「dv01」が含まれている。
続いて、端末10の送受信部11は、通信ネットワーク2を介して管理システム50に、開発端末の登録を要求する旨の情報を送信する(ステップS8)。この要求には、開発者ID「dv01」と、開発端末として登録する端末10の端末IDとが含まれている。これにより、管理システム50の送受信部51は、開発端末登録の要求を受け付ける。
続いて、管理システム50の登録部54は、登録要求元の端末IDと、登録要求元から送信された開発者IDと、を関連付けて、開発端末管理テーブル(図15)において管理させることにより開発端末登録を行う(ステップS9)。開発端末の登録が完了すると、送受信部51は登録が完了した旨を示す登録結果情報を端末10へ送信する(ステップS10)。登録結果情報には、デバッガ機能を有するブラウザのインストールに必要な情報(例えば、インストーラーのURL)が含まれている。これにより、登録要求元の端末10では、デバッガをインストールすることが可能となる(ステップS11)。
端末10においてデバッガのインストールが完了すると、端末10は管理システム50へ、デバッガのインストールが完了した旨の情報を管理システム50へ送信する(ステップS12)。これにより、通信管理システム50では、開発端末管理テーブルに登録された端末10がデバッガを有する端末であることを把握することが可能となる。なお、デバッガを有する端末10をより正確に把握するために、管理システム50の登録部54は、インストールが完了した旨の情報が受け付けられた後に、端末IDを開発端末管理テーブルに登録するようにしても良い。
続いて、図18を用いて、開発端末である端末10において開発されたアプリをアプリ開発者管理テーブル(図14参照)に登録する処理について説明する。図18は、アプリを登録する処理を示したシーケンス図である。図18では、図2に示されている管理情報用セッションseiによって、各種管理情報が送受信される。
まず、端末10の送受信部11は、通信ネットワーク2を介して管理システム50に、アプリの登録を要求する旨の情報を送信する(ステップS21)。この要求には、開発者ID「dv01」、登録要求元の端末ID、アプリのアイコン画像およびアプリの登録先となるアプリサーバ80のURLが含まれている。これにより、管理システム50の送受信部51は、アプリ登録の要求を受け付ける。
続いて、管理システム50の登録部54は、登録要求元で開発されたアプリを識別するためのアプリIDを作成するとともに、作成したアプリIDを、登録要求元から送信された開発者IDに関連付けて、アプリ開発者管理テーブル(図14)において管理させることによりアプリ開発者登録を行う(ステップS22)。
続いて、管理システム50の登録部54は、登録要求元で開発されたアプリのアプリIDに関連づけて、登録要求元から送信された、アプリのアイコン画像およびアプリの登録先のURLを、アプリURL管理テーブル(図12)において管理させることによりアプリのURL登録を行う(ステップS23)。
アプリ登録が完了すると、送受信部51は登録が完了した旨を示す登録完了情報を、登録要求元の端末10へ送信する(ステップS24)。登録完了情報には、登録部で作成されたアプリIDが含まれている。登録完了情報が端末10の送受信部11によって受け付けられると、送受信部11は、アプリの登録先のURL、および、アイコンの画像情報の登録先のURLに、アプリおよびアイコンの画像情報を、登録する旨の要求をアプリサーバ80に送信する(ステップS25)。
これらの要求がアプリサーバ80の送受信部81で受け付けられると、記憶・読出部89は、端末10から送信されたアプリおよびアイコンの画像情報を、アプリホスティングDB8001における指定された登録先に登録する(ステップS26)。登録が完了すると、アプリサーバ80の送受信部81は、登録要求元の端末10へ、アプリおよびアイコンの登録が完了した旨を示す登録完了情報を送信する。
続いて、図19を用いて、端末10において、起動要求するアプリの候補を示すアプリアイコンを表示させるまでの処理を説明する。図19は、アプリアイコンを表示させるまでの処理を示したシーケンス図である。図19及び後述の図20では、全て図2に示されている管理情報用セッションseiによって、各種管理情報が送受信される。
端末10が、ステップS1からステップS4と同様の処理を経て管理システム50にログインした後、端末10の送受信部11は、通信ネットワーク2を介して管理システム50に、利用可能アプリの候補のリストを要求する(ステップS31)。これにより、管理システム50の送受信部51は、利用可能アプリの要求を受け付ける。この要求には、リスト要求元の端末10の端末IDが含まれている。
次に、管理システム50の記憶・読出部59は、上記ステップS31によって受信されたリスト要求元の端末10の端末IDを検索キーとしてアプリ利用管理テーブル(図11を参照)を検索することにより、この端末IDに対応するアプリID、有効期間開始日、および有効期間終了日を読み出す(ステップS32)。更に、記憶・読出部59は、上記ステップS32によって読み出されたアプリIDのうち、この処理の時点で有効期間内(有効期間開始日から有効終了日までの期間)を抽出し、抽出されたアプリIDを検索キーとして、アプリURL管理テーブル(図12を参照)を検索することにより、このアプリIDに対応するアイコンのURL情報を読み出す(ステップS33)。
次に、送受信部11は、通信ネットワーク2を介してリスト要求元の端末10に、利用可能なアプリの候補のリストとして利用可能アプリ情報を送信する(ステップS34)。この利用可能アプリ情報には、上記ステップS33で読み出されたアイコンのURL情報が含まれている。これにより、リスト要求元の端末10の送受信部11は、利用可能アプリ情報を受信する。
次に、端末10の送受信部11は、上記ステップS34によって受信したアイコンのURLで示される、アプリホスティングDB8001内のリソースにアクセスして、アイコンの画像情報の取得を要求する(ステップS35)。これにより、アプリサーバ80の送受信部81は、アイコンの画像情報の取得要求を受け付ける。
次に、アプリサーバ80の記憶・読出部89は、記憶部8000のアプリホスティングDB8001から、上記ステップS35によって要求されたアイコンの画像情報を読み出す(ステップS36)。そして、送受信部81は、通信ネットワーク2を介して取得要求元の端末10に、アイコンの画像情報を送信する(ステップS37)。これにより、要求元の端末10の送受信部11は、アイコンの画像情報を受信する。
次に、表示制御部13は、ディスプレイ120上に、図21に示されているような「アプリリスト」画面140を表示させる(ステップS38)。なお、図21は、アプリリストの画面例を示した図である。この画面140には、有効期間内のアプリのアイコンが表示される。ここでは、3つの各アプリID(a001,a002,a003)で示される3つのアプリのアイコン(141,142,143)が表示される。
続いて、図20を用いて、アプリのリストの中から所望のアプリを示すアプリアイコンの選択することにより、選択されたアプリの起動を要求する処理を説明する。なお、図20は、アプリの起動を要求する処理を示したシーケンス図である。
まず、ユーザの操作により、図21に示されている複数のアイコンのうち、所望のアイコンが選択されると、端末10の操作入力受付部12は、ユーザによるアプリアイコンの選択を受け付ける(ステップS41)。続いて、端末10の送受信部11は、通信ネットワーク2を介して管理システム50へ、選択されたアプリの起動の要求を示す起動要求情報を送信する(ステップS42)。起動要求情報には、起動要求元の端末10の端末ID、及び、選択されたアプリのアプリIDが含まれている。
管理システム50の送受信部51は、起動要求情報を受信することにより起動要求を受け付ける。起動要求が受け付けられると管理システム50の起動判断部55は、起動要求にかかるアプリの起動の可否を判断する(ステップS43)。ステップS43の処理について図22を用いて詳細に説明する。図22は、アプリの起動の可否を判断する処理を示したフロー図である。
まず、管理システム50の記憶・読出部59は、起動要求元の端末10の端末IDを検索キーとして、開発端末管理DB5006の開発端末管理テーブル(図15参照)を検索することにより対応する開発者IDを抽出する(ステップS43−1)。続いて、起動判断部55は、ステップS43−1において、起動要求元の端末10の端末IDに対応する開発者IDが抽出されたか否かに基づいて、起動要求元の端末10が開発端末であるか否かを判断する(ステップS43−2)。
起動要求元の端末10が開発端末でない場合(ステップS43−2のNO)、すなわち、ステップS43−1で開発者IDが抽出されなかった場合には、起動判断部55は起動要求にかかるアプリの起動を許可する(ステップS43−5)。起動要求元の端末10は開発端末ではなく、アプリをデバッグすることができないためである。
起動要求元の端末10が開発端末である場合(ステップS43−2のYES)、すなわち、ステップS43−1で開発者IDが抽出された場合には、管理システム50の記憶・読出部59は、起動要求にかかるアプリのアプリIDを検索キーとして、開発端末管理DB5006のアプリ開発者管理テーブル(図14参照)を検索することにより対応する開発者IDを抽出する(ステップS43−3)。続いて、起動判断部55は、ステップS43−1において抽出された開発者IDと、ステップS43−3で抽出された開発者IDと、を対比することで、起動要求元は、起動要求に係るアプリの開発者であるか否かを判断する(ステップS43−4)。
起動要求元が、起動要求に係るアプリの開発者である場合(ステップS43−4のYES)、すなわち、ステップS43−1で抽出された開発者IDと、ステップS43−3で抽出された開発者IDとが一致する場合には、起動判断部55は起動要求にかかるアプリの起動を許可する(ステップS43−5)。起動要求元にかかるアプリは、起動要求元で開発されているためである。起動要求が許可されると、記憶読出部59は、起動要求に係るアプリのアプリIDを検索キーとして、アプリURL管理テーブル(図12を参照)を検索することにより、対応するアプリのURL情報を読み出す(ステップS43−6)。
起動要求元が、起動要求に係るアプリの開発者でない場合(ステップS43−4のNO)、すなわち、ステップS43−1で抽出された開発者IDと、ステップS43−3で抽出された開発者IDとが一致しない場合には、起動判断部55は起動要求にかかるアプリの起動を拒否する(ステップS43−7)。起動要求元にかかるアプリは、起動要求元で開発されたものではないためである。
起動判断部55による、アプリの起動の可否の判断が完了すると、管理システム50の送受信部51は、起動要求元の端末10へ、アプリの起動の可否を示す起動可否情報を送信する(ステップS44)。なお、ステップS43−5において、起動が許可された場合には、起動要求に係るアプリにアクセスするためのURLとして、ステップS43−6で抽出されたアプリのURL情報も送信されることになる。
起動要求元の端末10の送受信部11が、起動可否情報を受信すると、表示制御部13は、起動可否を示す起動可否情報をディスプレイ120に表示させる。起動が許可された場合には、図9に示される装置制御部1050の起動要求部14は、通信制御部1060の起動部22に対して、起動を命令することで、通信制御部1060が起動する(ステップS45)。即ち、ユーザに選択されたアプリが起動することになる。なお、起動要求元の端末10が開発端末である場合には、デバッグモードでアプリが起動することになる。なお、これよりも前の処理は、装置制御部1050による処理であったが、これ以降は、通信制御部1060による処理となる。
アプリが起動すると、送受信部21は、起動可否情報に含まれるアプリのURLにアクセスして、アプリのダウンロードを要求する(ステップS46)。アプリのダウンロード要求がアプリサーバ80の送受信部81で受け付けられると、記憶読出部89はURLにより特定されるアプリを読み出す(ステップS47)。読み出されたアプリは、送受信部81によってダウンロードの要求元の端末10へ送信される。これにより、起動要求元の端末10では、ブラウザ1021上でアプリを動作させることが可能となる。
〔第2の実施形態〕
続いて、第2の実施形態について、第1の実施形態と異なる点を説明する。第2の実施形態の通信システム1は、図23に示されているように管理システム50が、リスト作成部56を有している点で第1の実施形態とは、異なる。なお、図23は、管理システム50の機能ブロック図である。リスト作成部56は、端末10において起動の要求が可能なアプリケーションのリストを作成する。
図24を用いて第2の実施形態の処理又は動作の概要について説明する。図24は、通信システム1における各種情報の送受信の状態を示した概念図である。第2の実施形態では、ステップS32において、リストの要求元の端末10の端末IDに対応するアプリIDが読み出された後、リスト作成部56は、読み出されたアプリIDの中から、処理の時点で有効期間内ではないアプリIDを除くことによりリストに含めるアプリの候補を特定する。
管理システム50のリスト作成部56(アプリケーションリスト作成手段の一例)は、開発端末において起動の要求が可能なアプリケーションのリストを作成する場合には、リストに含めるアプリの候補の中から、開発端末管理DB5006において、開発端末の端末IDに関連付けられているアプリ以外のアプリを除いてリストを作成する一方で、開発端末でない端末10において起動の要求が可能なアプリケーションのリストを作成する場合には、リストに含めるアプリケーションの候補の中から、開発端末管理DB5006において管理されているアプリケーションを除かずにリストを作成する。
この開発端末管理DB5006を用いることにより、開発端末において起動の要求が可能なアプリの候補から、当該開発端末によるデバッグが許可されているアプリ以外のアプリを除くことができる。これにより、デバッガを有する端末10において、起動可能なアプリを制限できるので、アプリの模倣を防ぐことができるようになる。
続いて、図25を用いて、第2の実施形態の処理又は動作について詳細に説明する。図25は、アプリのリストを作成する処理を示したフロー図である。第2の実施形態では、第1の実施形態におけるステップS32の処理が、図25に示された一連の処理に変更されている。
まず、管理システム50の記憶・読出部59は、リスト要求元の端末10の端末IDを検索キーとしてアプリ利用管理テーブル(図11を参照)を検索することにより、この端末IDに対応するアプリID、有効期間開始日、および有効期間終了日を読み出す(ステップS32−1)。続いて、リスト作成部56は、読み出されたアプリIDの中から、処理の時点で有効期間内ではないアプリIDを除くことによりリストに含めるアプリの候補を特定する(ステップS32−2)。
続いて、管理システム50の記憶・読出部59は、リスト要求元の端末IDを検索キーとして、開発端末管理DB5006の開発端末管理テーブル(図15参照)を検索することにより対応する開発者IDを抽出する(ステップS32−3)。続いて、リスト作成部56は、ステップS32−2において、リスト要求元の端末IDに対応する開発者IDが抽出されたか否かに基づいて、リスト要求元の端末10が開発端末であるか否かを判断する(ステップS32−4)。
リスト要求元の端末10が開発端末でない場合(ステップS32−4のNO)、すなわち、ステップS32−3で開発者IDが抽出されなかった場合には、リスト作成部56は、ステップS32−2で特定されたアプリの候補のすべてを、端末10において起動要求可能なアプリのリストに含める(ステップS32−9)。
リストの要求元の端末10が開発端末である場合(ステップS32−4のYES)、すなわち、ステップS32−3で開発者IDが抽出された場合には、記憶・読出部59は、ステップ32−2で特定された候補のアプリのアプリID毎に、このアプリIDを検索キーとして、アプリ開発者管理テーブル(図14参照)を検索することにより対応する開発者IDを抽出する(ステップS32−5)。続いて、リスト作成部56は、ステップS32−3において抽出された開発者IDと、ステップS32−5で抽出された開発者IDと、を対比することで、リスト要求元は、リストに含める候補のアプリの開発者であるか否かを判断する(ステップS32−6)。
リスト要求元が、候補のアプリの開発者である場合(ステップS32−6のYES)、すなわち、ステップS32−3で抽出された開発者IDと、ステップS32−5で抽出された開発者IDとが一致する場合には、リスト作成部56は、候補のアプリを起動の要求な可能なアプリのリストに含める(ステップS32−7)。
リスト要求元が、候補のアプリの開発者でない場合(ステップS32−6のNO)、すなわち、ステップS32−3で抽出された開発者IDと、ステップS32−5で抽出された開発者IDとが一致しない場合には、候補のアプリを起動の要求な可能なアプリのリストに含めない(ステップS32−8)。
各アプリについてリストに含めるか否かの判断が完了すると、リスト作成部56は、リストに含めると判断されたアプリIDにより、端末10において起動の要求が可能なアプリのリストを作成する(ステップS32−10)
リストが完成すると、記憶・読出部59は、上記ステップS32によって作成されたリストに含まれる各アプリIDを検索キーとして、アプリURL管理テーブル(図12を参照)を検索することにより、このアプリIDに対応するアイコンのURL情報を読み出す(ステップS33)。以後の処理は、第1の実施形態と同様であるので説明を省略する。
〔第3の実施形態〕
続いて、第3の実施形態について、第1の実施形態あるいは第2の実施形態と異なる点を説明する。第3の実施形態は、図26に示されているように管理システム50が、アプリ利用管理部57を有している点で第1の実施形態あるいは第2の実施形態と異なる。図26は、管理システム50の機能ブロック図である。アプリ利用管理部57は、アプリ利用管理DB5003に記録されている各種情報を更新する。第3の実施形態では、端末10からアプリを購入したときに、購入条件に基づいて、アプリ利用管理DB5003において、端末ID、アプリID、および有効期間が更新される。また、第3の実施形態では、端末10からアプリを購入したときに、購入条件に基づいて、指定された有効期間、その端末10において購入されたアプリの利用が可能となる。
まず、第3の実施形態の処理又は動作の概要について説明する。アプリ利用管理DB5003は(アプリケーション管理手段の一例、図11参照)、端末10毎に、この端末10によって購入されたアプリ(利用可能なアプリの一例)のアプリID(アプリケーション情報の一例)を関連付けて管理する。送受信部51(利用要求受付手段)は、端末10から、所望のアプリケーションの購入の要求(アプリケーションを利用可能とする要求の一例)を受け付ける。
開発端末から購入の要求が受け付けられたときに、アプリ利用管理部57(更新手段の一例)は、開発端末管理DB5006において所望のアプリケーションに関連付けられて、購入要求元としての開発端末の端末IDが管理されていない場合には、所望のアプリケーションの購入の要求を拒否する。一方、開発端末でない端末10から購入の要求が受け付けられたときに、アプリ利用管理部57は、この端末10において利用可能なアプリとして所望のアプリのアプリIDを関連付けて管理させることにより、アプリ利用管理DBを更新する。これにより、デバッガを有する端末10において、購入可能なアプリが制限されるので、購入されたアプリをデバッガモードで起動されて模倣されることを防ぐことができるようになる。
続いて、図27を用いて第3の実施形態の処理又は動作について詳細に説明する。図27は、アプリケーション利用管理テーブルを更新する処理を示したフロー図である。まず、管理システム50の送受信部51は、端末10から所望のアプリの購入の要求を受け付ける(ステップS51)。続いて、管理システム50の記憶・読出部59は、購入要求元の端末10の端末IDを検索キーとして、開発端末管理DB5006の開発端末管理テーブル(図15参照)を検索することにより対応する開発者IDを抽出する(ステップS52)。続いて、アプリ利用管理部57は、ステップS52において、購入要求元の端末IDに対応する開発者IDが抽出されたか否かに基づいて、購入要求元の端末10が開発端末であるか否かを判断する(ステップS53)
購入要求元の端末10が開発端末でない場合(ステップS53のNO)、すなわち、ステップS52で開発者IDが抽出されなかった場合には、アプリ利用管理部57はアプリ利用管理テーブルを更新する(ステップS56)。この場合、アプリ利用管理部57は、購入要求元の端末10の端末IDに関連付けて、所望のアプリのアプリIDを関連付けて管理させることにより、アプリ利用管理テーブルを更新する。また、アプリ利用管理部57は、購入要求元の端末10の端末ID、及び、所望のアプリのアプリIDに関連付けて、購入条件に基づく有効期間開始日および有効期間終了日を管理させることにより、アプリ利用管理テーブルを更新する。
起動要求元の端末10が開発端末である場合(ステップS53のYES)、すなわち、ステップS52で開発者IDが抽出された場合には、管理システム50の記憶・読出部59は、購入要求にかかる所望のアプリのアプリIDを検索キーとして、開発端末管理DB5006のアプリ開発者管理テーブル(図14参照)を検索することにより対応する開発者IDを抽出する(ステップS54)。続いて、アプリ利用管理部57は、ステップS52において抽出された開発者IDと、ステップS54で抽出された開発者IDと、を対比することで、購入要求元は、購入要求に係る所望のアプリの開発者であるか否かを判断する(ステップS55)。
購入要求元が、購入要求に係る所望のアプリの開発者である場合(ステップS55のYES)、すなわち、ステップS52で抽出された開発者IDと、ステップS54で抽出された開発者IDとが一致する場合には、上記のステップS56と同様に、アプリ利用管理部57はアプリ利用管理テーブルを更新する(ステップS56)。
購入要求元が、購入要求に係る所望のアプリの開発者でない場合(ステップS55のNO)、すなわち、ステップS52で抽出された開発者IDと、ステップS54で抽出された開発者IDとが一致しない場合には、アプリ利用管理部57はアプリの購入を拒否する(ステップS57)。
アプリの購入が可否の判断結果は、送受信部51により購入要求元の端末10へ送信される。
〔第4の実施形態〕
続いて、第4の実施形態について、第1の実施形態乃至第3の実施形態と異なる点を説明する。第4の実施形態では、開発端末は、デバッガ機能させずにアプリを起動させる。管理システム50は、第1の実施形態のステップS43におけるアプリ起動可否判断をせず、起動要求にかかるアプリを起動させるよう制御する。アプリの起動後に、開発端末がデバッガの起動要求をしたときに、管理システム50は、デバッガの起動の可否を判断する。
続いて、図28を用いて第4の実施形態の処理又は動作について詳細に説明する。図28は、デバッガを起動する処理を示したシーケンス図である。まず、開発端末においてアプリが起動しているときに、操作入力受付部12においてデバッガの起動要求が受け付けられると(ステップS61)、送受信部11はデバッガの起動要求元の端末10の端末IDおよび起動しているアプリのアプリIDを含むデバッガ起動要求情報を管理システム50へ送信する(ステップS62)。
管理システム50の送受信部51は、デバッガ起動要求情報を受信することによりデバッガ起動要求を受け付ける。デバッガ起動要求が受け付けられると管理システム50の起動判断部55は、起動要求にかかるデバッガの起動の可否を判断する(ステップS63)。ステップS63の処理について図29を用いて説明する。図29は、デバッガの起動の可否を判断する処理を示したフロー図である。
まず、管理システム50の記憶・読出部59は、デバッガ起動要求元の端末IDを検索キーとして、開発端末管理DB5006の開発端末管理テーブル(図15参照)を検索することにより対応する開発者IDを抽出する(ステップS63−1)。
続いて、管理システム50の記憶・読出部59は、デバッガ起動要求元において起動しているアプリのアプリIDを検索キーとして、開発端末管理DB5006のアプリ開発者管理テーブル(図14参照)を検索することにより対応する開発者IDを抽出する(ステップS63−2)。続いて、起動判断部55は、ステップS63−1において抽出された開発者IDと、ステップS63−2で抽出された開発者IDと、を対比することで、デバッガ起動要求元は、デバッガ起動要求元において起動しているアプリの開発者であるか否かを判断する(ステップS63−3)。
デバッガ起動要求元が、デバッガ起動要求元において起動しているアプリの開発者である場合(ステップS63−3のYES)、すなわち、ステップS63−1で抽出された開発者IDと、ステップS63−2で抽出された開発者IDとが一致する場合には、起動判断部55はデバッガの起動を許可する(ステップS63−4)。
デバッガ起動要求元が、デバッガ起動要求元において起動しているアプリの開発者でない場合(ステップS63−3のNO)、すなわち、ステップS63−1で抽出された開発者IDと、ステップS63−2で抽出された開発者IDとが一致しない場合には、起動判断部55はデバッガの起動を拒否する(ステップS63−5)。
起動判断部55による、デバッガの起動の可否の判断が完了すると、管理システム50の送受信部51は、デバッガ起動要求元の開発端末へ、デバッガの起動の可否を示す起動可否情報を送信する(ステップS64)。
デバッガ起動要求元の端末10の送受信部11が、デバッガ起動可否情報を受信すると、表示制御部13は、デバッガ起動可否を示すデバッガ起動可否情報をディスプレイ120に表示させる。デバッガの起動が許可された場合には、図9に示される装置制御部1050の起動要求部14は、通信制御部1060の起動部22に対して、デバッガの起動を命令することで、デバッガが起動する(ステップS65)。即ち、起動中のアプリのデバッグが可能となる。
<<実施形態の補足>>
上記実施形態における中継装置30、管理システム50、プログラム提供システム90、及びメンテナンスシステム100は、単一のコンピュータによって構築されてもよいし、各部(機能又は手段)を分割して任意に割り当てられた複数のコンピュータによって構築されていてもよい。また、プログラム提供システム90が単一のコンピュータによって構築されている場合には、プログラム提供システム90によって送信されるプログラムは、複数のモジュールに分けて送信されるようにしてもよいし、分けないで送信されるようにしてもよい。更に、プログラム提供システム90が複数のコンピュータによって構築されている場合には、複数のモジュールが分けられた状態で、各コンピュータから送信されるようにしてもよい。
また、上記各実施形態の端末用プログラム、中継装置用プログラム、又は伝送管理用プログラムが記憶されたCD−ROM等の記録媒体、並びに、これらプログラムが記憶されたHD204、及びこのHD204を備えたプログラム提供システム90は、いずれもプログラム製品(Program Product)として、国内又は国外へ、上記端末用プログラム、中継装置用プログラム、及び伝送管理用プログラムが利用者等に提供される場合に用いられる。
更に、上記実施形態の各IDは、それぞれを一意に識別するために使われる言語、文字、記号、又は各種のしるし等の識別情報を示す。また、各IDは、上記言語、文字、記号、及び各種のしるしのうち、少なくとも2つが組み合わされた識別情報であってもよい。
例えば、アプリIDは、アプリ識別情報の一例であって、このアプリ識別情報には、アプリIDの他に、アプリの名称等も含まれる。また、端末IDは、端末識別情報の一例であって、この端末識別情報には、端末IDの他に、端末10の製造番号、端末10のユーザに割り当てられたユーザID等も含まれる。
また、図21に示されているアイコンは、文字、絵記号、又は、絵記号に文字もしくは記号が含まれていてもよい。
また、上記では、端末10の一例としてテレビ会議端末について説明したが、これに限るものではない。例えば、要求元端末と宛先端末のうちの一方又は両方が、IP(Internet Protocol)電話機、インターネット電話機、PC(Personal Computer)等であってもよい。更に、通信が可能な端末だけでなく、通信以外に様々なデータ通信が可能な情報処理端末として、スマートフォン、タブレット端末、ゲーム機、カーナビゲーション装置等の通信端末であってもよい。この場合、通信管理システム50は、通信管理システムとして各種処理を実行する。