以下に、本発明にかかる端末装置、情報通信システム、情報通信方法、および、プログラムの実施形態を図面に基づいて詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
[情報通信システムの構成]
まず、本実施形態における情報通信システムの構成の一例について、図2および図3を参照して以下に説明する。ここで、図2および図3は、本実施形態における情報通信システムの構成の一例を示すブロック図であり、該構成のうち本発明に関係する部分のみを概念的に示している。
図2に示すように、本実施形態の情報通信システムは、概略的に、ローカルコア20とローカルコアデータベース21とローカルプロキシ30とローカルダッシュボード60とを少なくとも備えた端末装置100、クラウドコア22とクラウドプロキシ40とクラウドプロキシデータベース41とクラウドダッシュボード61とを少なくとも備えたクラウドプロキシサーバ200、および、ゲートウェイ50とゲートウェイデータベース51と開発部52と管理制御パネル部53とエンドユーザガジェットアクセス部54と分析提案エンジン80とを少なくとも備えたゲートウェイサーバ300を通信可能に接続して構成される。
通信には、一例として、ネットワークを介した有線・無線通信等の遠隔通信等を含む。また、これら情報通信システムの各部は任意の通信路を介して通信可能に接続されている。ここで、図2に示すように、端末装置100、クラウドプロキシサーバ200、および、ゲートウェイサーバ300は、ネットワークを介して互いに拡張プロトコル(メッセージ)12を送受信してもよい。
ここで、本情報通信システムにおいて送受信されるプロトコル(メッセージ)は、通信用メッセージ群であってもよい。また、拡張プロトコルメッセージ12は、主要な構成により要求される特別なメッセージ群であってもよい。
また、図2に示すように、端末装置100と、ガジェット70が実装された装置、ウェブサーバ、および/または、アプリケーション等とは、ネットワークを介してベースプロトコル(メッセージ)11を送受信してもよい。また、図2に示すように、各装置の各部は、任意の通信路を介して拡張プロトコルメッセージ12、ベースプロトコルメッセージ11、および/または、内部メッセージ13を送受信してもよい。
ここで、ベースプロトコルメッセージ11は、全ての構成により要求されるメッセージ群であってもよい。また、端末装置100、クラウドプロキシサーバ200、および、ゲートウェイサーバ300は、ネットワークを介して互いにベースプロトコルメッセージ11を送受信してもよい。
なお、本情報通信システムにおいて、メッセージは、プログラミング言語特異的なAPI(Application Programming Interface)を束ねたプロトコルバインドSDK(Software Development Kit)を含んでいてもよい。
ここで、端末装置100において、ローカルコア20は、ガジェット70同士の通信を促進する仲介役として機能する。また、ローカルコアデータベース21は、ガジェット70同士の通信に関する情報を記憶する。また、ローカルプロキシ30は、ローカルコア20へのローカルのプロキシとして機能する。また、ローカルダッシュボード60は、ガジェット70に対するローカルのアクセスポイントとして機能する。
ここで、ガジェット70は、クラウドベースのソフトウェアまたはサービス等のクラウドガジェット71、自立型のインストール可能なソフトウェアまたはサービス等のローカルガジェット72、および、本情報通信システム対応の対応機器73などであってもよい。
また、図3に示すように、本情報通信システムは、概略的に、会社等においてクラウドガジェット71または対応機器73を実装したモバイル機器に通信可能に接続されたWindows(登録商標) PC100−1、スマートホームにおいて対応機器(測定機器)73に通信可能に接続されたハブ100−2、病院等において測定機器73に通信可能に接続されたLinux(登録商標)/Mac(登録商標)システム100−3、対応機器73を実装したドローンもしくはスマートカー、対応機器73を実装したウェアブルデバイスもしくはセンサ、対応機器73を実装したモバイル機器およびローカルガジェット72を実装したクラウドアプリケーションに通信可能に接続されたクラウドプロキシサーバ200、ならびに、第三者の支払ゲートウェイに通信可能に接続されたゲートウェイサーバ300を通信可能に接続して構成される。
このように、本情報通信システムにおけるプロトコルは、プラットフォーム(Windows(登録商標)、Linux(登録商標)またはMac(登録商標)等)、および、ハードウェアデバイスに関係なく、クロスプラットフォームの接続のための機能を提供する。
ここで、図4を参照して、本実施形態におけるクロスプラットフォームの接続性について説明する。図4は、本実施形態におけるプラットフォーム間接続の一例を示す図である。
図4に示すように、様々なプラットフォーム(iOS、Android(登録商標)、Widows(登録商標)、Mac(登録商標)またはLinux(登録商標)等)を実装する端末装置100、および、クラウドプロキシサーバ200のベースプロトコル(通信レイヤ)11は、ネットワークスタックの上に構築される。
それにより、通信レイヤ11は、標準のTCP/IPスタックを使用してネットワーク接続をサポートする全てのソフトウェアプログラム、デバイスおよびサービス間で水平統合する環境を提供することができる。
本情報通信システムは、TCP/IPスタックを介してメッセージ交換することにより、クロスプラットフォーム接続を可能としている。図4に示すように、本情報通信システムは、仮想化技術とは異なり、各プラットフォームのカーネルでプログラムを行い、その代りに、接続を可能にするために各プラットフォーム上のTCP/IPスタックを利用している。
これにより、本情報通信システムは、仮想化技術のようなベースのプラットフォームのカーネルにAPIまたはフックを必要としない、軽量メッセージ交換層である通信レイヤ11を提供することができる。
また、本情報通信システムは、クロスプラットフォーム接続を可能とするために、プラットフォームまたはOS毎に開発用のAPIとプログラミングインターフェースとの独自のセットをユーザに提供してもよい。
また、本情報通信システムにおいて、全てのプラットフォームは、TCP/IPスタックを介して、各プラットフォーム上のアプリケーションにネットワーク接続可能である。
このように、本情報通信システムは、TCP/IPスタック上の通信レイヤ11に基づいて、アプリケーション層のクロスプラットフォーム接続機能を提供することができ、地理的に離れたロケーションでも接続を確立することができる。
[端末装置100の構成]
次に、本実施形態における端末装置100の構成の詳細について、図3乃至図8を参照して以下に説明する。図5は、本実施形態における端末装置100の構成の一例を示すブロック図であり、該構成のうち本発明に関係する部分のみを概念的に示している。
ここで、本実施形態における端末装置100においては、各構成が一筐体内に全て備えられ、単独で処理を行うもの(スタンドアローン型)を、端末装置100として説明するが、当該実施例に限らず、各構成が分離した筐体内に備えられ、ネットワーク等を介して接続されて一つの概念としての装置を構成するものであってもよい。
ここで、端末装置100は、例えば、一般に市販されるデスクトップ型もしくはノート型のパーソナルコンピュータ等の情報処理装置、ハブ(集線装置)、タブレット端末、携帯電話、スマートフォン、PHS、または、PDA等の携帯端末装置等であってもよい。
また、図5に示すように、端末装置100は、概略的に、制御部102と記憶部106を備える。ここで、制御部102は、端末装置100の全体を統括的に制御するCPU等である。また、記憶部106は、各種のデータベースやテーブルなどを格納する装置である。
また、端末装置100は、TCP/IPスタック上に、TCP/IPスタックを介したメッセージ交換機能、および、外部装置(他の端末装置100、クラウドプロキシサーバ200、ゲートウェイサーバ300、ガジェット70を実装したデバイス、モバイル機器、および/または、測定機器等)とのクロスプラットフォーム接続機能を有するメッセージ交換層である通信レイヤ11を備えていてもよい。
また、端末装置100は、外部装置との通信および/または同期のために、外部装置とのメッセージ交換を中継するローカルプロキシ30を備えていてもよい。なお、本情報通信システムにおいては、ローカルコンポーネントからなるプロキシ内から、複数のデバイス、サービスまたはアプリケーションとの接続および同期を可能としている。
また、端末装置100は、ローカルにある(端末装置100上の)ガジェット70、および/または、外部装置上のガジェット70へのインターフェースであるローカルダッシュボード60を備えていてもよい。ここで、ローカルダッシュボード60は、ガジェット70、および/または、パイプライン等を表示させてもよい。
また、ローカルダッシュボード60は、Web(HTML)ベース、または、JavaFX(登録商標)ベース等のユーザインターフェースであってもよい。また、ローカルダッシュボード60は、端末装置100がネットワーク接続していない場合でも、ローカルに格納されたガジェット70へのインターフェースとしてアクセス可能であってもよい。
ここで、図6を参照して、本実施形態におけるローカルダッシュボード60の一例について説明する。図6は、本実施形態におけるローカルダッシュボード60の一例を示す図である。
図6に示すように、本実施形態におけるローカルダッシュボード60は、端末装置100に保存された、ユーザが利用可能な5つのパイプラインを表示している。
これら端末装置100の各部は任意の通信路を介して通信可能に接続されている。更に、端末装置100は、入出力部、および、入出力部の制御を行う入出力制御インターフェース部を備えていてもよく、端末装置100とネットワーク(またはルータ等の通信装置)との間における通信制御を行う通信制御インターフェース部を備えていてもよい。
記憶部106に格納される各種のデータベースやテーブル(ローカルコアデータベース21)は、固定ディスク装置等のストレージ手段である。例えば、記憶部106は、各種処理に用いる各種のプログラム、テーブル、ファイル、データベース、および、ウェブページ等を格納する。
また、図5において、制御部102は、OS等の制御プログラムや、各種の処理手順等を規定したプログラム、および、所要データを格納するための内部メモリを有する。そして、制御部102は、これらのプログラム等により、種々の処理を実行するための情報処理を行う。
制御部102は、ローカルに存在するコアエンジンであるローカルコア20を備えてもよい。ここで、ローカルコア20は、ガジェット70を制御するためのコントローラとして機能し、機能概念的に、発見可能スコア取得部20a、ガジェットグラフ取得部20b、ガジェット検出部20c、パイプライン構築部20d、および、ダウンロード部20eを備える。
このうち、発見可能スコア取得部20aは、ガジェット70の、ローカルにある(端末装置100上の)別のガジェット70および/または外部装置(別の端末装置100、クラウドプロキシサーバ200、ゲートウェイサーバ300、ガジェット70を実装したモバイル機器、ガジェット70を実装した測定機器、または、ガジェット70を実装したクラウドアプリケーション等)上のガジェット70による発見可能性を示す値である発見可能スコアを取得する発見可能スコア取得手段である。
ここで、発見可能スコア取得部20aは、ガジェット70から別のガジェット70への入力と出力との関数である接続性スコア(Cg)、ガジェット70に含まれる発見のコンテキストに関する情報であるコンテキストスコア(CXg)、アクセス制御およびセキュリティレベルに関連付けられた特定の権限を定義したプリビレッジスコア(Pg)、特定のライセンスプロパティに基づいて発見可能性を管理するライセンス形式を定義するライセンススコア(Lg)、および/または、ガジェット70の群集ダイナミクスを定量化した群衆スコア(CWg)に基づいて、発見可能スコア(Dg=f(Cg,CXg,Pg,Lg,CWg))を取得してもよい。
ここで、Cgは、2ガジェット70間の接続の値を示してもよい。ここで、Cgは、ガジェット70−1からガジェット70−2への入力(Ig)と出力(Og)との関数(Cg=f(Ig,Og))であってもよい。
また、CXgについて、各ガジェット70には、アプリケーションドメイン(分析、データ処理等)のような発見のコンテキストに関する情報が含まれており、発見スコアの計算に使用されてもよい。
また、Pgについて、各ガジェット70は、Pgを決定するアクセス制御およびセキュリティレベルの点で、それぞれ関連付けられた特定のプリビレッジを定義してもよい。また、Lgについて、各ガジェット70は、特定のライセンスプロパティに基づいて発見可能性を管理する独自のライセンス形式を定義してもよい。
また、アルゴリズムのメトリックに基づいて、上記の要因間のガジェット70の値を算出する一方で、CWgは、使用パターン、ダウンロード統計および専門家の推薦に基づいて群衆ダイナミクスを定量化した値であってもよい。
Dgは、ガジェットグラフ上のガジェット70の表示方法を決定し、ユーザのクエリに基づいて、ユーザに対してどのようにガジェット70を表示するかをコントロールしてもよい。
ここで、上記パラメータに基づいて、ガジェット70のDgを最適化するために、クラウド上で実行されているアルゴリズムを用いてもよい。
また、ガジェットグラフ取得部20bは、ガジェット70と、ローカルにある(端末装置100上の)別のガジェット70および/または外部装置(例えば、別の端末装置100、ゲートウェイサーバ300、ガジェット70を実装したモバイル機器、ガジェット70を実装した測定機器、または、ガジェット70を実装したクラウドアプリケーション等)上のガジェット70と、の接続性を示すガジェットグラフを取得するガジェットグラフ取得手段である。
ここで、ガジェットグラフ取得部20bは、ガジェット70から別のガジェット70への入力と出力との関数であるCgに基づいて、ガジェットグラフを取得してもよい。また、ガジェットグラフ取得部20bは、ガジェット70と、ローカルにある(端末装置100上の)別のガジェット70および外部装置上のガジェット70と、の接続性をマトリックスビューで示すガジェットマトリックスを取得してもよい。
ここで、図7を参照して、本実施形態のガジェットグラフについて説明する。図7は、本実施形態のガジェットグラフの一例を示す図である。
図7に示すように、ガジェットグラフは、本実施形態のプラットフォーム内のガジェット70が、他のどのガジェット70と接続することができるかを、各ガジェット70に関連する入力/出力(I/O)のパラメータに基づいて、ガジェット70間の接続性を表している。
なお、ガジェット70は、本実施形態の通信のためのメッセージ群であるプロトコルを用いて行う通信を理解できるソフトウェアプログラム、ハードウェアデバイス、サーバまたはクラウドベースのプログラム等であってもよい。
また、ガジェットグラフは、ガジェット70の発見可能性とガジェット70間のナビゲーションの可能性を容易にする。また、本実施形態における発見可能性は、下流ガジェット70(他のガジェット70からのデータやメッセージを受け取ることができるガジェット70)または上流ガジェット70(他のガジェット70にデータまたはメッセージを送ることができるガジェット70)を検出する機能であってもよい。
また、ガジェットグラフは、ガジェット70間の相互接続性をキャプチャできる。また、ガジェットグラフ上の各ガジェット70は、独自の通信とデータ交換フォーマット(I/O)との情報を保持していてもよい。また、ガジェットグラフは、ガジェット70のグローバルな接続性を可視化できる。
なお、接続性マトリックス、すなわち、ガジェットグラフ上の各セルのサイズは、ガジェット70のCgの値を示している。
また、図8を参照して、本実施形態のガジェットマトリックスについて説明する。図8は、本実施形態のガジェットマトリックスの一例を示す図である。
図8に示すように、ガジェットマトリックスは、ガジェット70(G1−G27)の接続性をマトリックスビューで表したものである。ここで、ガジェットマトリックスの各行および列は、ガジェット70とI/Oを示している。
ガジェットマトリックスの行列の各セルは、行と列とで表される2つのガジェット70間のデータおよびメッセージ交換の一般的なフォーマットの数を示している。また、ガジェットマトリックスは、他のガジェット70との接続性(セルの値)に基づいて、ガジェット70のクエリを可能にしている。
また、ガジェット検出部20cは、入力/出力フォーマットに基づいて、パイプラインを構築するためのガジェット70を検出するガジェット検出手段である。すなわち、ガジェット検出部20cは、入力/出力(I/O)フォーマットに基づいて、ガジェット70を自動検出できる。
また、ガジェット検出部20cは、I/Oフォーマットに基づいた各ガジェットパラメータの自動設定をしてもよい。
また、パイプライン構築部20dは、ローカルにある(端末装置100上の)ガジェット70と単数もしくは複数の外部装置(他の端末装置100またはクラウド等)上のガジェット70と、または、複数の外部装置上のガジェット70が、通信レイヤ11を介して互いに通信するパイプラインを構築するパイプライン構築手段である。
ここで、パイプラインは、実装されるOSの同一または非同一に係わらず、端末装置100上のガジェットと単数もしくは複数の外部装置上のガジェットと、または、複数の外部装置上のガジェット、の間の通信と同期とを可能とするハイブリッドパイプラインであってもよい。
このように、パイプライン構築部20dは、クロスプラットフォームダイナミックガジェットのパイプラインを構築できる。すなわち、パイプライン構築部20dは、本情報通信システムを介して互いに通信(メッセージデータを送信)するガジェット70同士のパイプラインを構築する機能を有する。
また、各ガジェット70は、デバイス(センサ、ウェアラブルデバイス、スマートフォン、または、ソフトウェアプログラム等)のような別の構成要素であってもよく、異なるプログラミング言語であってもよく、異なるマシンおよびOS(モバイル機器、パソコン、Mac(登録商標)、センサネットワーク等)上に存在していてもよい。
また、パイプラインを構成するコンポーネントは、異なる地理的位置に別の物理マシン上で実行されていてもよい。また、パイプラインは、ローカルコア20を実行している単一の端末装置(マシン)100上、また、クラウド(クラウドコア22を実行しているクラウドプロキシサーバ200等)上で実行してもよい。このように、本情報通信システムにおける各構成は、他のユーザとのパイプラインを共有する機能を有していてもよい。
また、本情報通信システムは、ユーザが自分の研究等のワークフローにあわせて、適当なガジェット70を選択し、ガジェット70のパイプラインを定義するための機能を提供してもよい。
また、本情報通信システムは、パイプラインビルダーガジェット70のプロトコルへの更新だけでなく、ゲートウェイ50からパイプラインのための特定のガジェット70を検出するための機能を提供してもよい。
また、ダウンロード部20eは、データ等を外部装置からダウンロードするダウンロード手段である。ここで、ダウンロード部20eは、パイプラインを構築するガジェット70を外部装置(例えば、ゲートウェイサーバ300等)から一括ダウンロードしてもよい。また、ダウンロード部20eは、クラウド上のパイプラインを保存する機能を有している。
例えば、ダウンロード部20eは、ゲートウェイ50(ガジェット70のウェブストア)からバンドルとして、パイプラインに関係する全てのガジェット70を一括ダウンロードする機能を有していてもよい。
ここで、図5に示すように、ローカルコア20は、Windows(登録商標)、Mac(登録商標)またはLinux(登録商標)等が実行されている各端末装置(マシン)100の制御部102に実装される。また、各ガジェット70(各マシンのOS上で動作するソフトウェアまたはアプリケーション等)は、ローカルコア20とやりとりする。
また、ローカルコア20は、端末装置(ハブ)100−2の制御部102に実装されてもよい。また、各ガジェット70(IoT(Internet of Things)内にあるデバイスまたはセンサ等)は、ハブ100−2上に実装されているローカルコア20と通信してもよい。
なお、端末装置100は、外部装置(他の端末装置100、または、クラウドプロキシサーバ200等)にて、パイプラインを実装可能としてもよい。
また、図3に示すように、ローカルコア20は、プラットフォームの中央部分を形成し、機能拡張のために更新する機能を提供してもよい。また、ベースプロトコルおよび拡張プロトコルに基づいて安定化されたローカルコア20は、Windows(登録商標)、Mac(登録商標)またはLinux(登録商標)のような異なるプラットフォーム上で機能する必要があるため、全ての機能をサポートしてもよい。
また、ローカルコア20は、パイプライン機能をサポートするように全ての関連プロトコルを更新し、パイプラインガジェットのサポートに関連する更新も行う機能を提供してもよい。
また、ローカルコア20は、ライセンス機能をサポートするために、プロトコルレベルの変更を行い、全てのガジェット70が特定のライセンス無しで発見できないように、ライセンスの種類を開発者が設定できる機能を提供してもよい。このライセンス追加機能により、有料のガジェット70が、無料またはオープンソースのライセンスを持つガジェット70から発見できなくなる。
また、ローカルコア20は、ローカルダッシュボード60にガジェットソーシャル機能をサポートするためにプロトコルレベルの変更を行う機能を提供してもよい。また、ローカルコア20(ダウンロード部20e)は、平行して同時に複数のガジェット70をダウンロードする機能、および、ダウンロードの進捗状況を示すテーブル形式のシンプルなユーザインターフェース(UI)でダウンロード状況を表示できるような機能を提供してもよい。
また、ローカルコア20は、端末装置(デバイス)100のオフラインからオンラインへの変更を、デバイス100へのガジェット70のダウンロードをトリガとして設定する機能を提供してもよい。これにより、ローカルコア20(ダウンロード部20e)は、デバイス100のオフライン時にキューが入れられ、自動的にゲートウェイサーバ300と同期したウェブストアから全てのガジェット70をデバイス100にダウンロードする機能を提供してもよい。
また、ローカルコア20は、ベースプロトコルおよび拡張プロトコルの全ての通信を追跡するロギングモジュールを備えていてもよい。当該ロギングモジュールは、ローカルコア20へのバックエンド機能として統合されてもよい。また、ローカルコア20は、記録されたログをインターネット上で実行されているロギングサーバ等にアップデートしてもよい。
ここで、ロギングモジュールは、ローカルコア20起動時に開始され、ローカルコア20の実行中作動してもよい。このため、ユーザ操作により、ロギングモジュールを実行する必要はない。また、ユーザは、ゲートウェイ50にログインせずにガジェット70を使用することができるため、ロギングモジュールは、ゲートウェイ50へのログインの有無に係わらず、動作するようにしてもよい。
また、ロギングモジュールは、ユーザがゲートウェイ50またはクラウドダッシュボード61にログインしていない場合、全ての関連データを収集し、ローカルデータベース(ローカルコアデータベース21)またはログファイルに格納(アプリケーションの一部としてバンドル)してもよい。
また、ロギングモジュールは、ユーザがゲートウェイ50またはクラウドダッシュボード61に接続(ログイン)している場合、ローカルデータベース(ローカルコアデータベース21)またはログファイルに格納されたデータをロギングサーバ等にアップロードしてもよい。なお、ロギングサーバのログでは、device_ID、INFO、ERROR、DEBUG等のログレベルのパラメータに基づいて検索することができる。
また、図3に示すように、ローカルダッシュボード60は、ユーザにとってのプラットフォームへのメインウィンドウとなっている。ここで、ローカルダッシュボード60は、ゲートウェイ50に接続せずにローカルコア20で動作してもよい。
例えば、ローカルダッシュボード60は、WebベースまたはJavaFX(登録商標)ベースであり、ダウンロードした全ガジェット70を表示し、ダウンロードしたガジェット70を検索する機能を提供してもよい。また、ローカルダッシュボード60は、ユーザ定義のタグによりローカルガジェットを分類する機能を提供してもよい。
また、ローカルダッシュボード60は、インターネット接続なしにローカルで実行可能である。ここで、ユーザがローカルダッシュボード60を使用して、任意のプラットフォームの任意の場所で実行されている任意の端末装置(デバイス)100を見ることができてもよい。
また、ユーザは、任意の端末装置(デバイス)100の任意のガジェット70をダウンロードし、ダウンロードの進行状況をローカルダッシュボード60からモニタリングできてもよい。また、ユーザは、ローカルダッシュボード60からガジェット70を削除したり、ガジェット70を実行したりできてもよい。
また、ローカルダッシュボード60は、ローカルにダウンロードしたガジェット70を分類する機能を提供することができる。また、ローカルダッシュボード60は、ローカルとクラウドとのガジェット70を分類してもよい。ここで、ローカルダッシュボード60は、1つのガジェット70を複数のカテゴリに分類する機能を提供してもよい。なお、これらのカテゴリは、ウェブストアで利用可能なカテゴリおよびタグとは関係ない。
また、ローカルダッシュボード60は、ガジェットソーシャル機能を提供するため、ガジェット管理を簡便にできる。また、ローカルダッシュボード60は、サポートされている全てのデータ形式に関連した任意の形式のデータをロードする機能を提供してもよい。
また、ローカルダッシュボード60は、ワークフロー作成機能を提供し、ユーザのパイプラインの実行を可能としてもよい。
[クラウドプロキシサーバ200の構成]
また、本実施形態におけるクラウドプロキシサーバ200の構成の詳細について、図2、図3および図9乃至図12を参照して以下に説明する。
クラウドプロキシサーバ200は、クラウドサービス(クラウドコンピューティング)を提供する情報処理装置であって、端末装置100等とゲートウェイサーバ300とのネットワークを中継するものであってもよい。なお、本実施形態において、クラウドプロキシサーバ200は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置として構成してもよく、また、該情報処理装置に任意の周辺装置を接続して構成してもよい。
図2および図3に示すように、クラウドプロキシサーバ200において、クラウドコア22は、クラウドに存在するコアエンジンであり、ガジェット70を制御するためのコントローラとして機能し、ガジェット70同士の通信を促進する仲介役として機能する。
また、クラウドコア22は、プラットフォームの中央部分を形成し、機能拡張のために更新する機能を提供してもよい。また、ベースプロトコルおよび拡張プロトコルに基づいて安定化されたクラウドコア22は、ローカルコア20が備える全ての機能、および、構成(例えば、発見可能スコア取得部20a乃至ダウンロード部20eに相当する構成等)を備えていてもよい。
また、クラウドプロキシサーバ200において、クラウドプロキシ40は、クラウドベースのプロキシとして機能する。また、クラウドプロキシ40は、ガジェット70のパイプラインを構築するためのクラウドベースのプラットフォームを提供してもよい。また、端末装置100上で実行されるガジェット70は、クラウドにおけるクラウドプロキシ40と通信してもよい。また、パイプラインは、クラウド(クラウドプロキシサーバ200)上で実行することができる。
このように、本情報通信システムにおいては、クラウド・コンポーネントからなるプロキシ内から、複数のデバイス、サービスまたはアプリケーションの接続および同期を可能としている。
また、本情報通信システムにおいては、クラウドプロキシ40とローカルプロキシ30とが通信し、メッセージを交換し、クロスプラットフォームでデバイス、サービスまたはアプリケーションとの接続を可能としている。
また、クラウドプロキシデータベース41は、各種のデータベース、テーブル、および/または、ファイルなどを格納するストレージ手段であり、クラウドプロキシ40を介したガジェット70同士の通信に関する情報を記憶する。
また、クラウドプロキシサーバ200において、クラウドダッシュボード61は、ガジェット70に対するクラウドベースのアクセスポイントとして機能する。ここで、ユーザは、クラウドプロキシサーバ200に通信可能に接続された任意の端末装置100等から、クラウドダッシュボード61を利用可能である。
ここで、クラウドダッシュボード61は、ユーザが任意のプラットフォームの任意の場所で実行されている任意の端末装置(デバイス)100を見る機能を提供してもよい。また、クラウドダッシュボード61は、任意の端末装置(デバイス)100の任意のガジェット70をダウンロードし、ダウンロードの進行状況をユーザにモニタリングさせる機能を提供してもよい。
また、クラウドダッシュボード61は、ユーザにローカルダッシュボード60のガジェット70を削除、および、ガジェット70を実行する機能を提供してもよい。
このように、ユーザは、クラウドベースのクラウドダッシュボード61を利用可能であり、ユーザがクラウドダッシュボード61を使用した場合、任意のプラットフォームの任意の場所で実行されている任意の端末装置(デバイス)100を見ることができる。
また、クラウドダッシュボード61は、どのデバイス(Windows(登録商標)、Mac(登録商標)、または、他デバイス等)上にあるローカルダッシュボード60にもアクセスできる。すなわち、クラウドダッシュボード61は、任意のデバイスにあるローカルダッシュボード60上で稼働するすべてのガジェット70に対しても、ブラウザを介してクラウドからアクセスできる。
ここで、図9乃至図12を参照して、本実施形態におけるクラウドダッシュボード61へのログインの一例について説明する。図9乃至図12は、本実施形態におけるクラウドダッシュボード61の一例を示す図である。
図9に示すように、ユーザは任意の端末装置100等からクラウドダッシュボード61にログインする。
そして、図10に示すように、ユーザは、ローカルダッシュボード60にアクセスしたいデバイスD1からデバイスD4を選択する。もしデバイスがオンラインであれば、ユーザは同じユーザ名とパスワードで、そのデバイスにログインする。ログインされたデバイス(デバイスD3およびデバイスD4)は、緑色で表示される。
ここで、もしデバイスがオフラインであれば、赤色で表示される。図10において、オフラインとして表示されたデバイスD1およびデバイスD2は、通信可能に接続されていないか、ログインされていないかのいずれかの状態であってもよい。
そして、図11に示すように、ユーザがデバイスを選択した場合、ユーザは、そのデバイス上のどのガジェット70(ガジェットG1乃至ガジェットG10)に対してもアクセス、起動、および、データの送信が可能となる。
ここで、図11に示すように、ユーザの操作する端末装置100と選択したデバイスとのプラットフォーム(Windows(登録商標))は、同一であってもよい。
また、図12に示すように、クラウドダッシュボード61は、ユーザの操作する端末装置100とプラットフォーム的に異なるデバイス上にあるガジェット70(ガジェットG11乃至ガジェットG15)にアクセスし、クラウドダッシュボード61のインターフェースから、異なるデバイスおよび/またはOS(iOS)上で動作する別のガジェット70にデータを送信する機能を提供してもよい。
[ゲートウェイサーバ300の構成]
また、本実施形態におけるゲートウェイサーバ300の構成の詳細について、図2および図3を参照して以下に説明する。
ゲートウェイサーバ300は、クラウドサービスを提供する情報処理装置であって、クラウドベースのインターフェースを提供し、ガジェット70の開発者、ユーザおよび管理者のための高度な機能を提供するものであってもよい。なお、本実施形態において、ゲートウェイサーバ300は、既知のパーソナルコンピュータ、ワークステーション等の情報処理装置として構成してもよく、また、該情報処理装置に任意の周辺装置を接続して構成してもよい。
図2および図3に示すように、ゲートウェイサーバ300において、ゲートウェイ50は、ガジェット70のマーケット、および、中枢管理命令部門として機能する。
また、ゲートウェイデータベース51は、各種のデータベース、テーブル、および/または、ファイルなどを格納するストレージ手段であり、ガジェット70等を記憶する。
また、開発部(開発者ポータル)52は、開発者にガジェット70の開発環境を提供する。ここで、開発部52は、ガジェット70の開発に使用するガジェットビルダーを提供してもよい。
また、管理制御パネル部(管理者ポータル)53は、ゲートウェイ50を管理するための制御インターフェースの提供等の機能を有する。ここで、管理制御パネル部53は、ガジェット70を管理および制御するクラウドベースの制御インターフェースを備えていてもよい。
また、エンドユーザガジェットアクセス部54は、ガジェット70の実行を可能とするクラウド環境の提供等の機能を有する。
また、分析提案エンジン80は、ガジェット70の分析および提案等を行う機能を有する。
ここで、ゲートウェイ50は、ガジェット70をブラウズし、タグベースの検索に基づいて、それらのガジェット70をユーザが検索可能な機能を備えていてもよい。また、開発者ポータル52から開発者は、ガジェット70にタグを付けることができる。また、開発者は、特定のガジェット70に対して最大5つのタグを付けられてもよい。
また、ゲートウェイ50は、指定された検索ボックスにユーザにより任意の単語が入力された場合、予め付加されたタグを使用してガジェット70を検索し、タグのいずれかに関連した単語に一致する全てのガジェット70を検索して、結果を表示させてもよい。
また、ゲートウェイ50は、ガジェットプラットフォーム、または、ガジェット提供者等の全てのデフォルトのタグをガジェット70の詳細ページに表示させてもよい。また、ゲートウェイ50のガジェット70のマーケット(ウェブストア)は、ユーザによりプラットフォームタグがクリックされた場合、該当するプラットフォームに関連する全てのガジェット70を表示させてもよい。
また、ガジェット70のウェブストアは、ユーザにより提供者タグがクリックされた場合、該当する提供者によりアップロードされた全てのガジェット70を表示させてもよい。
また、ガジェット70のウェブストアは、FAQ(よくある質問)形式のフォーマットで、生物学分野等に共通の問題領域のリストを表示させてもよい。そして、分析提案エンジン80は、対応するガジェット70を提案・表示させてもよい。
また、管理ポータルは、FAQのスタイルタグに基づいて、対応するガジェット70を供給するためのインターフェースを提供してもよい。すなわち、管理ポータルは、ユーザが頻繁に聞く質問が入力された場合、検索結果として対応するガジェット70の名称を表示してもよい。
ガジェット70のウェブストアは、ガジェット70の詳細ページで、同様の入出力フォーマットを有するガジェット70を全て表示させてもよい。また、ガジェット70のウェブストアは、類似の出力フォーマットを有するガジェット70をセクション:Upstream of me(私の上流)に表示させてもよい。
また、ガジェット70のウェブストアは、同様の入力フォーマットを有するガジェット70をセクション:Downstream of me(私の下流)に表示させてもよい。
また、ガジェット70のウェブストアは、評価数、レビュー数、インストール数、および/または、投票数等のパラメータに基づいて、ガジェット70を検索する機能を提供してもよい。
また、ガジェット70のウェブストアは、複数のガジェット70を一括ダウンロードするためのカートへの複数ガジェット70の一括追加機能を提供してもよい。
また、ガジェット70のウェブストアは、ユーザがカート機能に類似したガジェットバンドルに1つまたは複数のガジェット70を追加する機能を提供してもよい。
そして、ガジェット70のウェブストアは、ガジェットバンドルページを探索することで、追加された全てのガジェット70を一括ダウンロードさせ、インストールさせる機能を提供してもよい。
また、ユーザは、ダウンロードする前に、ガジェットバンドルをカテゴリと関連付けてもよい。ここで、端末装置100は、ガジェットバンドルからダウンロードした全てのガジェット70を、関連するカテゴリごとにローカルダッシュボード60に表示させてもよい。
また、ゲートウェイ50は、ガジェットバンドルまたはインスタンス(ガジェット70をセットにするパッケージ化バージョン)をアップロードまたはダウンロードする機能を提供してもよい。なお、ガジェットバンドルとインスタンスとの違いは、インスタンスにローカルコア20とローカルダッシュボード60とが含まれていることである。
また、ガジェット70のウェブストアは、ダウンロード用に別のページを備えていてもよい。ここで、別のページでは、いくつかのガジェット70、ローカルコア20およびローカルダッシュボード60を含むパッケージ化されたバージョンをダウンロードさせる機能を提供してもよい。ここで、パッケージ化されたバージョンは、Windows(登録商標)またはMac(登録商標)等の異なるOSプラットフォームで利用できる。
また、ゲートウェイ50は、ガジェット70のダウンロードおよびインストールの統計/履歴を、ゲートウェイ50上のユーザページに表示させてもよい。これにより、ユーザは、サインインするたびに、登録された全てのデバイスに対してガジェット70のダウンロード履歴を確認することができる。
ここで、ゲートウェイ50は、ダウンロードしたガジェット名、バージョン、プラットフォーム、デバイス、ダウンロード日付、および/または、ダウンロードステータス等をユーザページに表示させてもよい。
また、ユーザは、デバイス、プラットフォーム、および、ダウンロードステータス(成功/失敗)の3つのパラメータに基づいて、ガジェット70のダウンロード履歴をフィルタリングすることができる。
また、ゲートウェイ50は、ユーザがこれまでダウンロードした全てのガジェット70を確認できるように、ガジェット70のダウンロード履歴を表示するアーキテクチャをサポートする機能を提供してもよい。
また、ゲートウェイ50は、特定のユーザが全てのデバイスを管理する機能を提供してもよい。ここで、管理制御パネル部53は、デバイスの削除、または、名前の変更等を行う機能を提供してもよい。
また、ゲートウェイ50は、画像のアップロード、または、ガジェット70ウェブストアにより提供される利用可能なアバターライブラリからプリロードアイコンをユーザに選択させることにより、特定のデバイスにアバターを関連付ける機能を提供してもよい。
また、ゲートウェイ50は、ユーザ登録ページからユーザアバターおよび画像をアップロードする機能を提供し、画像をガジェットレビューとして表示させてもよい。このように、ゲートウェイ50は、画像をアップロード、または、ウェブストアから提供される利用可能なアバターライブラリからプリロードアイコンをユーザに選択させることで、ユーザアカウントのアバター画像を設定する機能を提供してもよい。
また、ゲートウェイ50は、ユーザ指定が無い場合、デフォルトのアバター画像を設定してもよい。ここで、ユーザにより選択された画像は、レビューを追加した場合に確認ページに現れてもよい。また、ゲートウェイ50は、いつでもアバター画像を削除および編集できる機能を提供してもよい。
また、ゲートウェイ50は、ユーザに代替メールアドレス、アバター、住所、連絡先、および、プロバイダURL等のユーザ詳細情報の管理ページを提供してもよい。
また、ゲートウェイ50は、ユーザのフィードバックに基づいて、既存のウェブストアのUIを拡張する機能を提供してもよい。
また、管理制御パネル部(管理者ポータル)53は、ゲートウェイ50を管理するための制御インターフェースを提供してもよい。ここで、管理者ポータル53は、全ガジェット70を管理する管理者インターフェースを提供し、ログインした管理者に全てのガジェット70を監視・管理させてもよい。
また、管理者ポータル53は、開発者がアップロードしたガジェット70をブロックする機能を提供し、管理者にガジェット70のブロック/未公開を設定させてもよい。なお、本実施形態において、開発者が管理者の設定を変更することはできないようにしてもよい。
また、管理者ポータル53は、本情報通信システムと無関係なデータのガジェット70をアップロードした場合、エラーを開発者に通知するための電子メールを送信する機能を提供してもよい。
ここで、管理者は、管理者ポータル53から、ガジェット70の開発者に各種通知およびメッセージ等の電子メールを送信することができる。この際、管理者は、開発者の電子メールアドレスを入力する必要はなく、該当する開発者を選択するだけで、自動的に登録メールアカウントに電子メールを送信することができる。
また、管理者ポータル53は、ガジェット70を束ねるバンドルを作成し、そのバンドルをゲートウェイ50上に表示する機能を提供してもよい。すなわち、管理者は、複数のガジェット70を選択して、バンドルを作成することができる。管理者が作成したバンドルは、ウェブストア内の別ページに表示され、ユーザは、端末装置100のローカルダッシュボード60またはクラウドダッシュボード61に当該バンドルをダウンロードすることができる。
また、管理者ポータル53は、トップ10ダウンロードガジェット、国ごとのダウンロード数、および、主に使用されたプラットフォーム等の統計結果を表示する機能を提供してもよい。ここで、管理者ポータル53には、簡単に管理者が定義したパラメータに基づいて、本情報通信システムのトラフィックを監視した統計グラフを表示する機能を提供してもよい。
また、開発部(開発者ポータル)52は、アップロード、変更、コミュニティに自作のガジェット70を公開する開発者のための管理制御インターフェースを提供してもよい。ここで、開発者ポータル52は、開発者の登録メカニズムを更新(国、州、連絡先、または、アバター等の新フィールドの導入)をしてもよい。
また、開発者ポータル52は、開発者の画像アップロード機能を提供してもよい。開発者は、画像をアップロード、または、事前にアップロードされた画像を選択することで、開発者アカウント用のアバター画像を設定することができる。
また、開発者ポータル52は、ユーザとしてのアカウントを開発者としてのアカウントとして同じものを使用可能とする機能を提供してもよい。
また、開発者ポータル52は、2つのガジェット70を親子のようにマッピングする機能を提供してもよい。また、開発者ポータル52は、ガジェット70に特定の起動環境を設定してもよい。例えば、開発者ポータル52は、2つのガジェット70について、親ガジェットを経由して子ガジェットが起動するように設定してもよい。
開発者は、開発者ポータル52から、親ガジェットを選択することができ、開発者ポータル52は、子ガジェットに指定できる全ガジェット70を検索するためのユーザインターフェースを提供してもよい。なお、開発者ポータル52は、検索結果として、ガジェット70のアイコンと名前とを表示させてもよい。
また、開発者ポータル52は、該当する子ガジェットを指定するためのガジェットマークを表示する機能を提供してもよい。ここで、開発者ポータル52は、子ガジェットをサポートする特定のガジェット70をマークしてもよい。これは、開発者ポータル52上で、簡単なチェックボックスとして表示させてもよい。
また、開発者ポータル52は、チェックボックスが選択されたガジェット70を、親ガジェットの検索対象にしてもよい。また、開発者は、チェックボックスが選択されたガジェット70のみを親ガジェットとして選択してもよい。
また、開発者ポータル52は、開発者にガジェットビルダーをダウンロードさせてもよい。なお、ガジェットビルダーを使用する場合、開発者は、常にオンラインである必要がある。
ここで、ガジェットビルダーは、ゲートウェイ50上で展開する前に、ガジェット70を構築し、テストする開発者用機能を提供してもよい。ここで、ガジェットビルダーは、子ガジェットのガジェットバンドルを作成する機能を提供してもよい。
また、ガジェット70は、固定のディレクトリ構造を含むサブディレクトリを保持し、ガジェット70関連の別ファイルは、特定のディレクトリにある必要があるが、ガジェットビルダーは、このようにディレクトリ構造を管理する機能を提供してもよい。
ここで、ガジェットビルダーは、ガジェット70のルートディレクトリとして任意のディレクトリを開発者に選択させ、ガジェットバイナリ、アイコンまたは依存ファイル等を開発者に選択させる機能を提供してもよい。
また、ガジェットビルダーは、ワンクリックでZIP形式のガジェットバンドルを開発者に構築させ、作成したバンドルを開発者ポータル52またはツール自体からアップロードする機能を提供してもよい。
また、ガジェットビルダーは、Windows(登録商標)、Mac(登録商標)またはLinux(登録商標)のような、任意のプラットフォームでダウンロード可能なユニバーサルガジェットのZIPを構築する機能を提供してもよい。
また、ガジェットビルダーは、特定のライセンスなしにガジェット70を発見できないように、開発者がガジェット70に対してライセンスの種類を設定する機能を提供してもよい。このライセンス追加機能により、有料のガジェット70が、無料またはオープンソースのライセンスをもつガジェット70から発見できなくなる。
[情報通信システムの処理]
次に、このように構成された本実施形態における情報通信システムの処理の詳細について、以下に図13乃至図25を参照して詳細に説明する。
[パイプライン構築処理]
図13乃至図18を参照して、本実施形態におけるパイプライン構築処理の一例について説明する。図13乃至図18は、本実施形態におけるパイプライン構築処理の一例を示すフロー図である。
図13に示すように、パイプライン構築部20dは、入力ファイルの種類をユーザに選択させる(ステップSA−1)。
そして、図14に示すように、パイプライン構築部20dは、ステップSA−1にて選択された入力ファイル(txt)を送るためのガジェット70をユーザに選択させる(ステップSA−2)。
そして、図15に示すように、パイプライン構築部20dは、出力ファイルの種類をユーザに選択させる(ステップSA−3)。
そして、図16に示すように、パイプライン構築部20dは、ガジェット(G2)70−1から出力される、ステップSA−2にて選択された出力ファイル(xml)を送るためのガジェット70をユーザに選択させる(ステップSA−4)。
そして、図17に示すように、パイプライン構築部20dは、ガジェット(G2)70−1、および、ガジェット(G1)70−2から構築されたパイプラインの名前をユーザに入力させる(ステップSA−5)。
そして、図18に示すように、パイプライン構築部20dは、ユーザインターフェースにユーザが利用可能なパイプラインの数を5から6に増加させ(ステップSA−6)、処理を終了する。
更に、図19乃至図25を参照して、本実施形態におけるパイプライン構築処理の一例について説明する。図19乃至図25は、本実施形態におけるパイプライン構築処理の一例を示すフロー図である。
図19に示すように、パイプライン構築部20dは、ゲートウェイ50のヘッダーページのパイプラインボタンがユーザによりクリックされ、パイプラインビルダーページが起動された場合、プラットフォーム(Windows(登録商標)、Mac(登録商標)またはLinux(登録商標))をユーザに選択させる(ステップSB−1)。
図20に示すように、パイプライン構築部20dは、入力ファイルの種類(フォーマット)をユーザに選択させる(ステップSB−2)。ここで、パイプライン構築部20dは、検索ボックスを使用して、必要なフォーマットを選択させてもよい。
そして、図21に示すように、パイプライン構築部20dは、ステップSB−1にて選択された入力ファイル(xml)を送るためのガジェット70をユーザに選択させる(ステップSB−3)。
そして、図22に示すように、パイプライン構築部20dは、出力ファイルの種類(フォーマット)をユーザに選択させる(ステップSB−4)。
そして、図23に示すように、パイプライン構築部20dは、ガジェット(G4)70−3から出力される、ステップSB−4にて選択された出力ファイル(xml)を送るためのガジェット70をユーザに選択させる(ステップSB−5)。
そして、図24に示すように、パイプライン構築部20dは、パイプラインビルダーページに、ガジェット(G4)70−3、および、ガジェット(G5)70−4から構築された完全なガジェットワークフローを表示させ、パイプラインの名前をユーザに入力させる(ステップSB−6)。
そして、図25に示すように、パイプライン構築部20dは、ユーザによりパイプライン作成ボタンがクリックされた場合、パイプラインを作成し、パイプラインビルダーページにユーザが利用可能なパイプラインの数を1から2に増加させ(ステップSB−7)、処理を終了する。ここで、パイプライン構築部20dは、パイプラインの作成保存に、ユーザのログインを要求してもよい。
このように、ゲートウェイ50は、クラウド環境における、ユーザインターフェースウィザードを使ったガジェット70/パイプラインのワークフローの作成機能を提供してもよい。また、パイプライン構築部20dは、ユーザが作成した全てのパイプラインは、簡単なテーブル形式で単一のページに表示させ、編集できる機能を提供してもよい。
更に、図26乃至図28を参照して、本実施形態における情報通信システムの一例について説明する。
まず、図26を参照して、本実施形態における情報通信システムのプラットフォームのシステムアーキテクチャの一例を説明する。図26は、本実施形態における情報通信システムのプラットフォームのシステムアーキテクチャの一例を示す図である。
図26に示すように、本情報通信システムのプラットフォームは、本プラットフォームアーキテクチャの複数のコンポーネントを組み合わせたものであってもよい。
ここで、図26に示すように、主なコンポーネントとしては、エンドユーザがローカルコア20と対話するためのWebベースのインターフェースであるローカルダッシュボード60、通信および/または同期のためにメッセージ交換を中継するローカルプロキシ30およびクラウドプロキシ40、ならびに、開発者、ユーザおよび管理者のための流通チャネルであるゲートウェイ50の拡張機能(例えば、マーケット(APPストア)、開発者ポータル52、管理者ポータル53およびガジェットビルダー等)であってもよい。
また、図27および図28を参照して、本実施形態におけるダッシュボードのアーキテクチャの一例を説明する。図27および図28は、本実施形態における通信概要の一例を示す図である。
本情報通信システムにおいては、インターネット接続およびポート8090で実行されているWebサーバなしに、ローカルに既存のHTMLベースのローカルダッシュボード60を実行するためのアーキテクチャを設定してもよい。
また、本情報通信システムにおいては、ローカルのローカルダッシュボード60が正常に動作することをテストし、既存のクラウドのダッシュボードに似た動作をすることを確認した。
また、本情報通信システムにおいては、ポート8090で実行されているWebサーバ、ポート9000で実行されているTCPサーバであるクラウドコア22、ならびに、Webサーバに接続するHTTPクライアントおよびTCPサーバに接続するTCPクライアントを実装したゲートウェイガジェット等のモジュールを使用し、Web APIを使用して、クラウドダッシュボード61を実装してもよい。
ここで、クラウドダッシュボード61は、基本的には、ポート8090で実行されているWebサーバおよびゲートウェイ50を介してクラウドコア22と対話してもよい。ここで、本情報通信システムにおいて、ポート8090で実行されているWebサーバは、ゲートウェイ50に要求を転送するだけであり、すべての処理がクラウドコア22内で行われてもよい。
ここで、図27に示すように、本情報通信システムにおいて、クラウドダッシュボード61は、ポート8090で実行されているWebサーバに接続し、Webサーバを介してさまざまな要求を送信してもよい。したがって、本情報通信システムにおいて、クラウドダッシュボード61は、ポート8090で実行されているWebサーバ、ローカルプロキシ30およびゲートウェイ50を使用して、ローカルコア20との間で様々なメッセージを送受信してもよい。
また、本情報通信システムにおいては、ポート8090で実行されているWebサーバがなくとも、クラウドのダッシュボードと同じように、直接ゲートウェイ50に同じセットのメッセージを送受信することができる方法を開発した。
ここで、その方法では、ポート8090で実行されているWebサーバを必要とせず、任意のインターネット接続も必要ない。具体的には、Webサーバが必要だが、ゲートウェイ50のような独立したガジェット70の作成、または、単にnodejsを使ってゲートウェイ50自体の内部にWebサーバを実装することで、ローカルのHTMLページは、インターネットおよびポート8090で実行されているWebサーバなしで、ローカルコア20からメッセージを送受信する方法を達成することができる。
したがって、本情報通信システムにおいては、クラウドダッシュボード61を再利用して、ゲートウェイ50へのローカルHTTP接続を確立し、ローカルコア20と対話することで、簡単にローカルにダッシュボードを実装することができる。
また、図28に示すように、本情報通信システムにおいては、インターネット接続が利用可能な場合、ゲートウェイ50がポート8090で実行されているWebサーバに接続されてもよい。
また、本情報通信システムにおいて、インターネットが利用できない場合、HTMLページに実装されたローカルダッシュボード60は、ポート7777上で実行されているゲートウェイローカルHTTPサーバを経由してのローカルコア20に接続してもよい。
ここで、本情報通信システムにおいて、ローカルダッシュボード60のHTMLページは、socket−I/Oを使用してローカルプロキシ30/クラウドプロキシ40上で実行されているポート7777HTTPサーバと接続してもよい。
また、本情報通信システムにおいて、ローカルダッシュボード60は、ローカルプロキシ30/クラウドプロキシ40内部のdashboard.js内部で扱われるプロトコルメッセージを送信し、ローカルプロキシ30/クラウドプロキシ40内部のdashboard.js内部で処理されてもよい。
また、本情報通信システムにおいて、最後にcoretalk.jsコアを用いてクラウドプロキシ40/ローカルプロキシ30にリクエストを転送してもよい。そして、本情報通信システムにおいては、クラウドプロキシ40/ローカルプロキシ30に応答を送信し、coretalk.jsはそれを受け取ってもよい。
次に、本情報通信システムにおいては、dashboard.jsから、socket.emitを使ってローカルダッシュボード60にメッセージが転送されてもよい。ここで、本情報通信システムにおいては、ダッシュボードsocket−I/Oがローカルコア20からの応答を受信するハンドラを持っていてもよい。
また、本情報通信システムにおいて、ローカルダッシュボード60は、接続文字列を変更する必要があり、その場合にポート8090で実行されているWebサーバに接続し、その際、ポート8090で実行されているWebサーバとローカルプロキシ30/クラウドプロキシ40とは、接続していてもよい。
このように、本情報通信システムの長所としては、本アーキテクチャが、クラウドダッシュボード61とローカルダッシュボード60とが、HTTPサーバへの接続文字列を除いて同様のHTMLページを持つことになることである。
また、本情報通信システムの長所としては、全てのクラウドダッシュボード61上の任意のUI関連の変更は、自動的にすべてのローカルダッシュボード60に反映されることである。また、本情報通信システムの長所としては、任意のJavaスクリプト(登録商標)およびCSSフレームワークを利用することができることである。
また、本情報通信システムの長所としては、JavaFX(登録商標)のサポート、および、異なるOSでどう実装するかに悩まされることなく、完全なブラウザベースのローカルダッシュボード60を構築することができることである。また、本情報通信システムの長所としては、2つのダッシュボードのために2つの別々のソースを維持する必要がないことである。
また、本情報通信システムの長所としては、ユーザは、ローカルまたはクラウドの区別なく、同じダッシュボードを使用できる点である。また、本情報通信システムの長所としては、Javaスクリプト(登録商標)を使用して開発したガジェットソーシャルを実装することが非常に簡単あり、非常に軽量化でき、実装するダッシュボードは1つだけでよい点である。
このように、本情報通信システムにおいては、クロスOSアプリケーションの統合とデータ転送とを可能にしている。例えば、Eコマースを行うような状況の場合、電子商取引市場のサービスプロバイダは、彼らの取引市場サーバとしてLinux(登録商標)等の特定のOSを使用し、電子商取引市場に出店している店は、自分の好みに応じてWindows(登録商標)またはOS X(登録商標)等のOSを混ぜてショップ管理アプリケーションを実行している場合がある。
そこで、本情報通信システムにおいては、ローカルにインストールされたシステムがOSに関係なく同様に動作するように設計され、パッケージ化する際に各OSに合わせたパッケージを作成することができる。
例えば、本情報通信システムにおいて、商慣行の監視・制御アプリのセットが、パッケージとしてインストールされている場合、市場に参加している店が非倫理的な価格設定等の特定の不正行為を犯した際、監視アプリは、不正行為の可能性のための市場サーバと通信してもよい。
そして、本情報通信システムにおいて、(市場管理の判断に関わる)不正行為が確認された場合、監視アプリは、店側の制御アプリを中断させることができ、不正行為が修正されるまで市場サーバへのアクセスを停止させることができる。
また、従来、市場アクセスの中断は、市場サーバを遮断して行われなければならず、ローカル監視のアプリを使わずに、不正行為をトレース、または、そのような予想される不正行為を防止することはできなかった。このような不正行為のトレースおよび防止は、ローカル監視アプリがお店の取引と入力行動とを追跡することができた場合にのみ行うことができた。
このような場合、店は、ピア・ツー・ピアの商業取引を行う意図個体であり、市場サーバへの単純な動作ログの収集および伝送とは異なる。したがって、従来のシステムでは、どのようなログを収集し、送信するかが静的に決定されていたが、本情報通信システムでは、サーバ側コマンドにモニタプログラムの動的な挙動変化を可能としている。
これにより、本情報通信システムでは、各店舗の行動を追跡するために、店舗側PCのメモリストレージを拡張記憶部として利用する機能を、市場プロバイダに提供することができる。
また、本情報通信システムにおいて、クライアントアプリケーションが、携帯電話、タブレットおよびPC等の端末装置100にインストールされている場合、クライアントアプリケーションを動的にユーザのショッピング行動に依存して再構成することができ、ユーザが自分のアカウントで所有する全てのデバイスに反映させることができる。
また、従来型のクラウドサービスでは、個々のアカウントに対して提供されたユーザ設定や情報をカスタマイズできるが、リッチクライアントアプリは変更できなかった。そこで、本情報通信システムにおいては、リッチクライアントアプリケーションを動的に、アカウント設定の変更に関連した再設定することを可能とし、このような変更をユーザのすべてのデバイスに反映させることができるようにした。
ここで、図29を参照して、本実施形態における情報通信システムの使用例について説明する。図29は、本実施形態における情報通信システムの使用例を示す図である。
本情報通信システムにおいて、ユーザが、複数のモバイルおよびPC等の端末装置(デバイス)100全てに本発明を実施するシステムをインストールしていた場合、且つ、ユーザがPC上でのビジネス文書作成に取り組んでおり、共同研究者のチームといくつかの図について議論したい場合に、ユーザは、タブレットデバイスを使用して、図とデジタルペンとを使用して、図上にコメントを表示するようにしたい場合がある。
このような場合、本情報通信システムにおいては、ユーザが、複数のモバイルおよびPC等の端末装置(デバイス)100全てに本発明を実施するシステムをインストールしていることを前提として、指定したイメージファイルをPCからツールに引き出すトリガにすることができ、タブレット上に描画ツールが表示され、コメントを書き込むことができるようにしてもよい。
そして、本情報通信システムにおいては、結果がすぐにドキュメントへの統合のためのPC側にフィードバックされる。
また、ユーザは、電話でいくつかの問題を議論したい場合がある。このような場合、本情報通信システムにおいて、ユーザはPCのローカルダッシュボード60上の電話ガジェットをクリックし、携帯電話を呼び出し、ユーザが話をしたい人に対して電話をかけることができる。
このような場合、本情報通信システムにおいては、シームレスに異なるデバイスと別のOSがインストールされた複数のアプリを起動することができる。従来、そのようなシームレスな統合利用することはできず、ユーザはDropbox(登録商標)やEvernote(登録商標)等のようなクラウドサービスにファイルを送信し、アプリケーションをアクティブにするために、各デバイスに取りこむ必要があった。
このように、本情報通信システムにおいては、複数のOSシームレスな方法で複数のデバイスの統合利用を可能にする。したがって、ユーザは、通信レイヤ11を端末装置100にインストールすることで、どのデバイス、または、OSが使用しているかを心配する必要なく、全てのデバイスを統合できる。
例えば、従来の文書共同作成ツールは、クラウドベースで存在し、各ユーザがオンラインでアクセスしてブラウザ上での編集をおこなっていた。
一方、図29に示すように、本情報通信システムにおいては、ローカルにあるLAN(Local Area Network)内にある異なるOS(Mac OS(登録商標)、Windows(登録商標)、および、Linux(登録商標))が稼働する端末装置(ローカルマシン)100−6、ローカルマシン100−7およびローカルマシン100−8と、クラウドプロキシサーバ(クラウドベースサーバ)200−1と、のアクセスを組み合わせたハイブリッドな共同作業が可能となる。
ここで、図29に示すように、本情報通信システムにおいては、システム上で稼働できるローカルガジェット(文書作成ガジェット)72は、ローカルのLAN内で、ローカルコア20およびローカルプロキシ30を介して通信することができる。
また、図29に示すように、本情報通信システムにおいては、クラウドベースサーバ200−1上で稼働するクラウドガジェット(文書作成ガジェット)71もまた、クラウドコア22およびクラウドプロキシ40を介してローカルガジェット72と通信することができる。
更に、図30を参照して、本実施形態における情報通信システムの使用例について説明する。図30は、本実施形態における情報通信システムの使用例を示す図である。
図30に示すように、本情報通信システムにおいては、ユーザがウェアラブルデバイスを装着した場合、ローカルガジェット(モニタリング&警告ガジェット)72により運動量、体温および/または心拍等が計測される。
そして、計測された情報が、ウェアラブルデバイス自体に蓄積させるとともに、その全てまたは一部の情報が、通信レイヤ11(ローカルプロキシ30とローカルコア20と、または、クラウドプロキシ40とクラウドコア22と)を通じて、医療機関の端末装置(ローカルサーバ)100−9上のガジェット(統合解析ガジェット)70−2に送られる。
そして、統合解析ガジェット70−2は、ウェアラブルデバイスから送られたデータを、その個人のクラウド上に存在するゲノム情報、および/または、ローカルサーバ100−9に存在する医療情報とともに解析する。
そして、統合解析ガジェット70−2の解析結果がクラウドプロキシサーバ(クラウドサーバ)200−2上に存在するガジェット(リスク計算ガジェット)70−1に送られ、リスク計算ガジェット70−1は、ユーザ個人のリスクを計算する。
そして、リスク計算ガジェット70−1の計算結果が、医療従事者が所有する端末装置(タブレット)100−10に送られ、タブレット100−10に実装されているガジェット(医療従事者向け対話ガジェット)70−3を通じて医師にリスク情報が提示される。
そして、医師の判断に従い、ユーザ個人の装着するウェアラブルデバイスに実装されているモニタリング&警告ガジェット72を通じて、ユーザに緊急に医療機関へ行くように等の警告を通知することもできる。なお、リスク計算ガジェット70−1、統合解析ガジェット70−2および医療従事者向け対話ガジェット70−3は、クラウドガジェット71またはローカルガジェット72のいずれであってもよい(例えば、状況によって使い分けられてもよい)。
また、本情報通信システムにおいて、ユーザが、複数のモバイルおよびPC等の端末装置(デバイス)100全てに本発明を実施するシステムをインストールしていた場合、且つ、ユーザのモニター対象の個人が、ウェアラブルデバイスなどで日常活動の連続的計測を行っており、ユーザが、複数の専門家のチームとの間で複数のデータを連動して解析し、モニター対象の個人の疾病悪化リスクを予測し、警告したい場合に、ユーザは、複数の計算環境に実装された複数のガジェット70を使用して、一連の解析を行い、さらに、タブレット端末等の端末装置100を利用して図とデジタルペンとを使用して、解析結果に対する医師などの判断をもとに、モニター対象個人に警告を表示するようにしたい場合がある。
このような場合、ユーザは、複数のモバイルおよびPC等の端末装置(デバイス)100全てに本発明を実施するシステムをインストールしていることを前提として、指定した行動データ、ゲノムデータ、および/または、医療データをPC等の端末装置100からツール(ガジェット70等)への送信処理をトリガとして、PC等の端末装置100上に解析ツールを表示させ、自動的に解析を実行させてもよい。
更に、タブレット等の端末装置100において、その結果を、対話ツール等のガジェット70に表示させ、医師などの判断を示すことができるようにしてもよい。
そして、本情報通信システムにおいては、タブレット等の端末装置100上の対話ツール等のガジェット70において示された医師の判断を反映して、モニター対象の個人の装着するウエアラブル端末に実装されているガジェットを起動させ、警告などをすぐにフィードバックしてもよい。
[他の実施形態]
さて、これまで本発明の実施形態について説明したが、本発明は、上述した実施形態以外にも、特許請求の範囲に記載した技術的思想の範囲内において種々の異なる実施形態にて実施されてよいものである。
また、実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
このほか、上記文献中や図面中で示した処理手順、制御手順、具体的名称、各処理の登録データや検索条件等のパラメータを含む情報、画面例、データベース構成については、特記する場合を除いて任意に変更することができる。
また、端末装置100、クラウドプロキシサーバ200、および、ゲートウェイサーバ300に関して、図示の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。
例えば、端末装置100、クラウドプロキシサーバ200、および、ゲートウェイサーバ300の各装置が備える処理機能、特に制御部102にて行われる各処理機能については、その全部または任意の一部を、CPU(Central Processing Unit)および当該CPUにて解釈実行されるプログラムにて実現してもよく、また、ワイヤードロジックによるハードウェアとして実現してもよい。尚、プログラムは、後述する、コンピュータに本発明に係る方法を実行させるためのプログラム化された命令を含む、一時的でないコンピュータ読み取り可能な記録媒体に記録されており、必要に応じて端末装置100に機械的に読み取られる。すなわち、ROMまたはHDD(Hard Disk Drive)などの記憶部106などには、OS(Operating System)と協働してCPUに命令を与え、各種処理を行うためのコンピュータプログラムが記録されている。このコンピュータプログラムは、RAMにロードされることによって実行され、CPUと協働して制御部を構成する。
また、このコンピュータプログラムは、端末装置100、クラウドプロキシサーバ200、および、ゲートウェイサーバ300に対して任意のネットワークを介して接続されたアプリケーションプログラムサーバに記憶されていてもよく、必要に応じてその全部または一部をダウンロードすることも可能である。
また、本発明に係るプログラムを、コンピュータ読み取り可能な記録媒体に格納してもよく、また、プログラム製品として構成することもできる。ここで、この「記録媒体」とは、メモリーカード、USBメモリ、SDカード、フレキシブルディスク、光磁気ディスク、ROM、EPROM、EEPROM、CD−ROM、MO、DVD、および、Blu−ray(登録商標) Disc等の任意の「可搬用の物理媒体」を含むものとする。
また、「プログラム」とは、任意の言語や記述方法にて記述されたデータ処理方法であり、ソースコードやバイナリコード等の形式を問わない。なお、「プログラム」は必ずしも単一的に構成されるものに限られず、複数のモジュールやライブラリとして分散構成されるものや、OS(Operating System)に代表される別個のプログラムと協働してその機能を達成するものをも含む。なお、実施形態に示した各装置において記録媒体を読み取るための具体的な構成、読み取り手順、あるいは、読み取り後のインストール手順等については、周知の構成や手順を用いることができる。
記憶部106に格納される各種のデータベース等は、RAM、ROM等のメモリ装置、ハードディスク等の固定ディスク装置、フレキシブルディスク、および、光ディスク等のストレージ手段であり、各種処理やウェブサイト提供に用いる各種のプログラム、テーブル、データベース、および、ウェブページ用ファイル等を格納する。
また、端末装置100、クラウドプロキシサーバ200、および、ゲートウェイサーバ300は、既知のデスクトップ型またはノート型のパーソナルコンピュータ、携帯電話、スマートフォン、PHS、およびPDA等の携帯端末装置、ならびに、ワークステーション等の情報処理装置として構成してもよく、また、該情報処理装置に任意の周辺装置を接続して構成してもよい。また、端末装置100、クラウドプロキシサーバ200、および、ゲートウェイサーバ300は、該情報処理装置に本発明の方法を実現させるソフトウェア(プログラム、データ等を含む)を実装することにより実現してもよい。
更に、装置の分散・統合の具体的形態は図示するものに限られず、その全部または一部を、各種の付加等に応じて、または、機能負荷に応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。すなわち、上述した実施形態を任意に組み合わせて実施してもよく、実施形態を選択的に実施してもよい。