【文献】
松本 一志、他1名,クラウド環境におけるダイナミックリソース管理技術,FUJITSU,富士通株式会社,2011年 1月11日,第62巻,第1号,第14-20頁,ISSN:0016-2515
【文献】
丸山 憂奈、他2名,協調ソフトウェア開発におけるcoordination communication支援環境の要件の検討,情報処理学会研究報告 ヒューマンコンピュータインタラクション(HCI) 2014-HCI-157[online],日本,情報処理学会,2014年 3月 7日,第1-6頁
(58)【調査した分野】(Int.Cl.,DB名)
前記管理部は、前記第1情報が特定された場合に、ネットワークに接続された前記デバイスノードの前記第1情報が蓄積される蓄積部を検索し、特定された前記第1情報が検索されたときに、前記第1情報と前記第2情報との関連付けを行う、請求項1記載のアプリケーション開発環境提供システム。
前記管理部は、前記第1情報に対応する認証情報がある場合には、前記蓄積部に蓄積された認証情報と、前記テナントによって前記第1情報とともに指示される認証情報とを用いて認証処理を行う、請求項2記載のアプリケーション開発環境提供システム。
前記管理処理は、前記第1情報の特定を行ったテナントに属するサイト及びアカウントのうち、特定のサイト及びアカウントに前記デバイスノードを割り当てる第1処理と、
前記サイト及び前記アカウント毎に、前記デバイスノードに対するアクセス権を設定する第2処理と、
前記デバイスノードの利用を特定のアプリケーションプログラムのみに制限或いは許可する第3処理と、
の少なくとも1つを含む、請求項1から請求項3の何れか一項に記載のアプリケーション開発環境提供システム。
前記管理処理が行われた前記デバイスノードを、アプリケーション開発画面に開発パーツとして表示する、請求項1から請求項4の何れか一項に記載のアプリケーション開発環境提供システム。
コンピュータを、ネットワークを介してアプリケーションプログラムの開発環境を提供するアプリケーション開発環境提供システムとして機能させるアプリケーション開発環境提供プログラムであって、
前記コンピュータを、
前記開発環境を利用するテナントの指示によって、前記アプリケーションプログラムで利用されるデバイスノードを識別する第1情報が特定された場合に、特定された前記第1情報と、前記第1情報の特定を行ったテナントに関する第2情報との関連付けを行い、前記テナントの指示に基づいて前記デバイスノードの使用を制限或いは許可する管理処理を行う管理手段として機能させるアプリケーション開発環境提供プログラム。
前記管理処理は、前記第1情報の特定を行ったテナントに属するサイト及びアカウントのうち、特定のサイト及びアカウントに前記デバイスノードを割り当てる第1処理と、
前記サイト及び前記アカウント毎に、前記デバイスノードに対するアクセス権を設定する第2処理と、
前記デバイスノードの利用を特定のアプリケーションプログラムのみに制限或いは許可する第3処理と、
の少なくとも1つを含む、請求項11記載の端末装置。
【発明を実施するための形態】
【0013】
以下、図面を参照して本発明の一実施形態によるアプリケーション開発環境提供システム、アプリケーション開発環境提供方法、アプリケーション開発環境提供プログラム、及び端末装置について詳細に説明する。尚、本実施形態で提供される開発環境は、通信ネットワークに接続されるセンサー、デバイス、及びシステム等から送信されるデータを入力値として演算処理等を行う、IoT(Internet Of Things:モノのインターネット)又はIIoT(Industrial Internet Of Things:産業用IoT)の基本ソフトウェア、アプリケーション、及びソリューション等(以下、これらを総称する場合には、「アプリケーション」という)のプログラムを開発するためのものである。
【0014】
〈アプリケーション開発環境提供システム〉
図1は、本発明の一実施形態によるアプリケーション開発環境提供システムのシステム概要を示す概略図である。
図1に示す通り、アプリケーション開発環境提供システム1は、クラウドコンピューティング環境において、デバイスノード11、スパイナルノード12、インテリジェンスノード13、及びソーシャリゼーションノード14の4階層の階層構造を基本構成とするシステムである。このアプリケーション開発環境提供システム1には、図示の通り、インテリジェンスノード13にシングスクラウド15及び端末装置16が接続される。
【0015】
デバイスノード11は、各種センサー、各種デバイス、及び各種システムによって構成される。各種センサーとは、例えば、温湿度センサー、圧力センサー、及び流量センサー等である。また、各種デバイスとは、例えば、制御装置であるPLC(プログラマブルロジックコントローラ)、車両内のCAN−BUS(Controller Area Network - BUS:バス型の制御ネットワーク)に接続されたOBD(On-Board Diagnostics:自己故障診断)デバイス、KPI(Key Performance Indicator:重要業績評価指標)モニター、特定のセンサーの現在値を表示する表示器、ランプ、ブザー、バルブ、及びロボットアーム等である。また、各種システムとは、例えば、DCS、ドローン管制システム、侵入検知システム、入室バッジリーダーが接続されたセキュリティシステム、及び照明やドアロックやエレベーターやスプリンクラーなどが接続されたビルディング・オートメーション・システム等である。
【0016】
図1に例示するアプリケーション開発環境提供システム1においては、デバイスノード11の階層には、センサーによって構成されるデバイスノード11a、アクチュエータによって構成されるデバイスノード11b、センサーによって構成されるデバイスノード11c、及びセンサーによって構成されるデバイスノード11dが含まれる。以下では、これらのデバイスノード11a〜11dを区別することなく総称する場合には、単に「デバイスノード11」という。
【0017】
尚、本実施形態に係るアプリケーション開発環境提供システム1のデバイスノード11は、説明を簡略化するため、センサーによって構成される3つのデバイスノード11a,11c,11dと、アクチュエータによって構成される1つのデバイスノード11bとによって構成されるものとしたが、これに限られない。デバイスノード11は、センサー、デバイス、或いはシステムによって構成される1つ以上のデバイスノードによって任意に構成可能である。
【0018】
デバイスノード11を構成するセンサー、デバイス、及びシステム等には、データを送信するもの、データを受信して表示するもの、及びデータ受信してアクションを起こすもの等がある。また、これらセンサー、デバイス、及びシステム等は、例えば、プラグ・アンド・プレイに対応した装置である。また、これらセンサー、デバイス、及びシステム等は、例えば、複数のアプリケーションと同時に通信を行う機能を有する装置である。
【0019】
デバイスノード11には、大きく分けて、スパイナルノード12を構成する装置に通信接続するもの、インテリジェンスノード13を構成する装置に通信接続するもの、及びシングスクラウド15を構成する装置に通信接続するものがある。スパイナルノード12を構成する装置に通信接続するデバイスノード11は、例えば、リアルタイム性を必要とする装置、データの遅延(データ通信の遅れ)や揺らぎ(データ通信速度のばらつき)等が許されないアプリケーションに使用される装置、及び大量のデータを生成するためインテリジェンスノード13に直接接続すると通信帯域を逼迫させてしまう恐れがある装置等である。
【0020】
インテリジェンスノード13を構成する装置に通信接続するデバイスノード11は、スパイナルノード12を構成する装置に通信接続するデバイスノード11とは異なり、例えば、遅延や揺らぎ等に影響されないような用途で使用される装置である。シングスクラウド15を構成する装置に通信接続するデバイスノード11は、例えば携帯電話網や衛星回線等の無線通信網を経由させなければ収容することが難しい遠隔地に設置される装置及び移動される装置等である。
【0021】
図1に示す例において、デバイスノード11a及びデバイスノード11bは、例えばローカルエリアネットワーク(LAN)を介してスパイナルノード12を構成する装置に接続されている。また、デバイスノード11cは、例えばインターネットを介してインテリジェンスノード13を構成する装置に接続されている。また、デバイスノード11dは、例えばセルラー網を介してシングスクラウド15を構成する装置に接続されている。
【0022】
スパイナルノード12は、サーバ装置によって構成され、ゲートウェイとして機能する。スパイナルノード12を構成するサーバ装置(以下、単に「スパイナルノード12」ともいう)は、クラウドコンピューティング環境において、少なくとも1つのデバイスノード11を収容する(即ち、論理的に接続、管理、又はデータの入出力を行う)サーバ装置である。
【0023】
スパイナルノード12は、一般的には、例えば、ゲートウェイサーバ、フォグコンピュータ、又はエッジコンピュータ等と呼ばれる装置である。スパイナルノード12は、クラウドコンピューティング環境におけるサーバ装置(本実施形態においては、インテリジェンスノード13及びソーシャリゼーションノード14)と、デバイスノード11を構成するセンサー、デバイス、及びシステムとの間に設置される。
【0024】
スパイナルノード12は、例えば、インテリジェンスノード13が通信することができない通信プロトコルによって通信を行うようなデバイスノード11からデータを受信し、受信したデータをインテリジェンスノード13が通信可能な通信プロトコルによってインテリジェンスノード13へデータ送信することにより、データの転送を行う。例えば、スパイナルノード12は、インターネットプロトコルによる通信を行うことができないアナログセンサー等から送信された信号を、インターネットプロトコル以外の通信プロトコルによって受信し、受信した信号をデジタル変換して正規化した後、インターネットプロトコルによる通信によってインテリジェンスノード13を構成するサーバ装置(以下、単に「インテリジェンスノード13」ともいう)へデータ送信することにより、データ転送を行う。
【0025】
また、スパイナルノード12は、例えば、デバイスノード11から送信されたデータを受信し、受信したデータに対して、演算、解釈、及び判定等の処理を行い、処理結果をインテリジェンスノード13へ送信する。
【0026】
スパイナルノード12は、例えば、デバイスノード11からデータを取得し、当該データに対して前処理を行った後、タイムスタンプ(発生時刻を表す記号)を付加してタイムシリーズデータとし、当該データを処理するロジックやアルゴリズム等をインテリジェンスノード13から取得して、当該ロジックや当該アルゴリズム等に基づいて当該タイムシリーズデータに対する処理(加工や判断等の処理)を実行する。また、スパイナルノード12は、例えば、必要に応じて又はインテリジェンスノード13からの指示に基づいて、インテリジェンスノード13に当該タイムシリーズデータを送信する。また、スパイナルノード12は、当該タイムシリーズデータと当該ロジックや当該アルゴリズム等に基づいて生成されたアクションを示す制御信号を、適切なデバイスノード11に対して送信する。
【0027】
また、スパイナルノード12は、当該タイムシリーズデータをスパイナルノード12に設けられたタイムシリーズデータベース(図示せず)に一時保存し、同時にスパイナルノード12は、当該タイムシリーズデータをインテリジェンスノード13の要求に応じて、インテリジェンスノード13に対して当該タイムシリーズデータを送信する。更に前記タイムシリーズデータベースに一時保存した古いデータから順に非同期的に、ヒストリアン(図示せず)に対してセキュリティを確保された通信経路を経由して送信する。尚、ヒストリアンはインテリジェンスノード13に直接接続することもでき、その場合、インテリジェンスノード13は、ローカル環境にヒストリアンが存在するかのようにヒストリアンを参照・利用することができる。
【0028】
また、スパイナルノード12には、スパイナルノード12に接続された初期状態のデバイスノードを識別するための情報を蓄積するデバイスプール領域32(
図4参照)が設けられている。このデバイスプール領域32は、スパイナルノード12に接続されているデバイスノードのうち、新規に利用可能なデバイスノードを識別するための情報が格納される領域である。デバイスプール領域32に蓄積される具体的な情報は、予めデバイスノードに一意に割り当てられた個体識別情報、或いは、個体識別情報及び認証用の固有パスコード(認証情報)である。このような情報は、例えばデバイスノードがスパイナルノード12に接続されたときに、プラグ・アンド・プレイによってデバイスノードから自動的にスパイナルノード12に送信されてデバイスプール領域32に蓄積される。
【0029】
尚、スパイナルノード12が単一のハードウェアによって構成されるような場合には、スパイナルノード12において故障や異常な動作が発生した場合に備えて、スパイナルノード12に通信接続するデバイスノード11は、2つ以上のスパイナルノード12に対して並行してデータを送信するようにしてもよい。デバイスノード11がインターネットプロトコルによって通信する装置である場合には、デバイスノード11が、マルチキャストやブロードキャストなどの技術を利用してデータ及び制御信号等を通信ネットワークへ送出し、複数のスパイナルノード12が当該データ及び当該制御信号等を並行して受信するような構成により冗長化を行ってもよい。
【0030】
インテリジェンスノード13、ソーシャリゼーションノード14、及びシングスクラウド15は、クラウドコンピューティング環境を提供するサーバ装置及びネットワーク機器等を含んで構成される。ここで、クラウドコンピューティング環境とは、インターネット等のネットワークに接続されたサーバにより各種のサービスを提供する環境である。インテリジェンスノード13、ソーシャリゼーションノード14、及びシングスクラウド15は、別々の装置によって物理的に分けられているような構成であってもよいし、単一の装置の中で論理的に分けてられているような構成であってもよい。
【0031】
インテリジェンスノード13を構成する装置は、企業内のアプリケーションを共同開発する複数の部門やグループ等の組織(以下、「サイト」ともいう)の間、及び複数の従業員(以下、「アカウント」又は「ユーザ」ともいう)の間において、アプリケーション開発環境やアプリケーション実行環境を共同利用できるようにするための機能を提供する。ソーシャリゼーションノード14を構成する装置(以下、単に「ソーシャリゼーションノード14」ともいう)は、アプリケーションを共同開発する複数の企業(以下、「テナント」ともいう)間、アプリケーションを提供する企業とアプリケーションを利用する企業顧客との間、及び企業と個人との間において、アプリケーション開発環境やアプリケーション実行環境を共同利用できるようにするための機能を提供する。
【0032】
アプリケーション開発環境とは、クラウドコンピューティング環境において、通信ネットワークに接続されるセンサー、デバイス、及びシステム等から送信されるデータを入力値として演算処理等を行う、IoT又はIIoTの基本ソフトウェア、アプリケーション、及びソリューション等のプログラム開発をするための開発環境である。また、アプリケーション実行環境とは、クラウドコンピューティング環境において、通信ネットワークに接続されるセンサー、デバイス、及びシステム等から送信されるデータを入力値として演算処理等を行う、IoT又はIIoTの基本ソフトウェア、アプリケーション、及びソリューション等のプログラムを実行するための環境である。
【0033】
以下、インテリジェンスノード13及びソーシャリゼーションノード14によって構成される、企業間、企業と個人、及び企業内のユーザ間において共同で利用可能な、本発明におけるアプリケーション開発環境及びアプリケーション実行環境等を総称して、Co-innovationスペース(共創空間)という。Co-innovationスペースは、クラウドコンピューティング環境における仮想の空間であり、企業(テナント)単位、又は組織(サイト)単位等で区切られた、互いに安全に隔離されたアプリケーション共創のための空間である。
【0034】
Co-innovationスペースのアーキテクチャを用いることにより、例えば、ビッグデータを用いたコンサルテーション、各種制御、アセット・マネジメント、リモートセンシング、リモートモニタリング、KAIZEN(改善)活動支援等を行うためのアプリケーションの開発、及びMESやDCS等のシステムの開発を行うことができる。尚、Co-innovationスペースは、クラウドコンピューティング環境において実装される代わりに、ローカル環境のデータセンターのサーバ装置において実装するような構成にすることも可能である。
【0035】
尚、上述のCo-innovationスペースのアーキテクチャは、インテリジェンスノード13及びソーシャリゼーションノード14を構成する1又は複数の装置により提供されるものでもよい。また、このCo-innovationスペースのアーキテクチャにおける記憶領域は、インテリジェンスノード13及びソーシャリゼーションノード14を構成する1又は複数の装置の記憶部、或いは、複数の装置が有する記憶部の記憶領域のうちの一部を複数組み合わせて構成されるものでもよい。
【0036】
インテリジェンスノード13及びソーシャリゼーションノード14は、上述した通り、サーバ装置において動作し、Co-innovationスペースがインテリジェンスノード13及びソーシャリゼーションノード14に実装される。インテリジェンスノード13は、Co-innovationスペースの主要な機能を有する。一方、ソーシャリゼーションノード14は、Co-innovationスペースが有する機能の中で、企業間、又は企業と個人との間でアプリケーションプログラムの共有や売買、及びコミュニケーション等が行われる場合に必要となる機能を有する。
【0037】
インテリジェンスノード13は、インテリジェンスノード13と通信接続する、スパイナルノード12の管理、デバイスノード11の管理を行う。また、ユーザは、ヒューマンマシンインターフェイス(HMI)を通じてインテリジェンスノード13にアクセスし、Co-innovationスペースを利用する。このヒューマンマシンインターフェイスとしては、例えば
図1に示す端末装置16が挙げられる。
【0038】
また、インテリジェンスノード13には、インテリジェンスノード13に接続された初期状態のデバイスノードを識別するための情報(前述した個体識別情報、或いは、個体識別情報及び固有パスコード)を蓄積するデバイスプール領域(蓄積部)(図示省略)が設けられている。このデバイスプール領域は、インテリジェンスノード13に接続されているデバイスノードのうち、新規に利用可能なデバイスノードを識別するための情報が格納される領域である。このような情報は、例えばデバイスノードがインテリジェンスノード13に接続されたときに、プラグ・アンド・プレイによってデバイスノードから自動的にインテリジェンスノード13に送信されてデバイスプール領域に蓄積される。
【0039】
また、インテリジェンスノード13は、様々な外部のシステムと連携するための多様な外部インターフェイスを有しており、外部のIoT及びIIoTクラウドコンピューティング環境、外部の課金システム、及び外部のデータベースシステム等との連携することができる。このように、インテリジェンスノード13が外部の様々なシステムと幅広く連携することができることによって、インテリジェンスノード13は、様々なIoTクラウドコンピューティング環境において、外部の様々なシステムと幅広く連携したCo-innovationスペース及びCo-innovationスペース上のアプリケーションを構築することができる。
【0040】
また、インテリジェンスノード13が様々な外部のシステムと連携するための多様な外部インターフェイスを有していることによって、インテリジェンスノード13は、IoT及びIIoTクラウドコンピューティング環境が提供するインターフェイス群を活用することができるため、顧客企業における業務プロセスのサプライチェーン全体、及びライフサイクル全体を対象としたソリューションを開発することができる。
【0041】
シングスクラウド15は、デバイスノードをクラウド(具体的には、インテリジェンスノード13)に接続するためのプラットフォームのサービスを提供する。このシングスクラウド15には、シングスクラウド15に接続された初期状態のデバイスノードを識別するための情報(前述した個体識別情報、或いは、個体識別情報及び固有パスコード)を蓄積するデバイスプール領域42(
図5参照)が設けられている。このデバイスプール領域42は、シングスクラウド15に接続されているデバイスノードのうち、新規に利用可能なデバイスノードを識別するための情報が格納される領域である。このような情報は、例えばデバイスノードがシングスクラウド15に接続されたときに、プラグ・アンド・プレイによってデバイスノードから自動的にシングスクラウド15に送信されてデバイスプール領域42に蓄積される。
【0042】
尚、上述のデバイスノードをクラウド(インテリジェンスノード13)に接続するためのプラットフォームのサービスは、シングスクラウド15を構成する1又は複数の装置により提供されるものでもよい。また、このデバイスプール領域42は、シングスクラウド15を構成する1又は複数の装置の記憶部、或いは、複数の装置が有する記憶部の記憶領域のうちの一部を複数組み合わせて構成されるものでもよい。
【0043】
端末装置16は、ネットワークを介して提供されるアプリケーションプログラムの開発環境(アプリケーション開発環境提供システム1によって提供される開発環境)に通信接続される装置である。この端末装置16は、例えばキーボード等の入力装置、液晶表示装置等の表示装置(表示部)、CPU(中央処理装置)やRAM等を備える装置本体を備えるパーソナルコンピュータによって実現される。尚、パーソナルコンピュータの型は、例えば、デスクトップ型、ノート型、タブレット型等の何れであっても良い。
【0044】
〈デバイスノードとインテリジェンスノードとの間の接続形態〉
図2は、スパイナルノードを介したデバイスノードとインテリジェンスノードとの間の接続形態の一例を示す図である。
図2に示す通り、デバイスノード11aとスパイナルノード12とは、ローカルエリアネットワークN11を介して接続され、スパイナルノード12とインテリジェンスノード13とは、ローカルエリアネットワーク、専用線、又はインターネットVPN(Virtual Private Network)等の通信網N12を介して接続される。尚、スパイナルノード12は、監視・管理ツールM1により管理される。
【0045】
図3は、シングスクラウドを介したデバイスノードとインテリジェンスノードとの間の接続形態の一例を示す図である。
図3に示す通り、デバイスノード11dとシングスクラウド15とは、例えばセルラー網N21及び専用線N22を介して接続され、シングスクラウド15とインテリジェンスノード13とは、専用線又はインターネットVPN等の通信網N23を介して接続される。尚、シングスクラウド15は、監視・管理センターM2により管理される。
【0046】
図2に示すデバイスノード11a、及び
図3に示すデバイスノード11dはそれぞれ、個体識別情報(或いは、個体識別情報及び固有パスコード)を内部に保持している。そして、例えば
図2示すデバイスノード11aの設置が完了すると、プラグ・アンド・プレイによってデバイスノード11aの個体識別情報等がローカルエリアネットワークN11を介してスパイナルノード12に送信される。また、例えば
図3に示すデバイスノード11dの設置が完了すると、プラグ・アンド・プレイによってデバイスノード11dの個体識別情報等がセルラー網N21及び専用線N22を介してシングスクラウド15に送信される。
【0047】
図4は、
図2に示す接続形態における個体識別情報の授受に係る構成を示すブロック図である。
図4に示す通り、デバイスノード11aは、個体識別情報保存部21、アクティベーション操作部22、及び個体識別情報送信部23を備える。個体識別情報保存部21は、上述の個体識別情報(或いは、個体識別情報及び固有パスコード)を保存する。アクティベーション操作部22は、プラグ・アンド・プレイによるアクティベーション操作で、個体識別情報送信部23に対し、個体識別情報(或いは、個体識別情報及び固有パスコード)の送信を指示する。個体識別情報送信部23は、アクティベーション操作部22の指示に基づいて、個体識別情報保存部21から個体識別情報(或いは、個体識別情報及び固有パスコード)を読み出して外部(例えば、ローカルエリアネットワークN11)に送信する。
【0048】
スパイナルノード12は、個体識別情報受信部31及びデバイスプール領域32(蓄積部)を備える。個体識別情報受信部31は、デバイスノード11aからローカルエリアネットワークN11を介して送信されてきた個体識別情報(或いは、個体識別情報及び固有パスコード)を受信する。デバイスプール領域32は、個体識別情報受信部31で受信された個体識別情報(或いは、個体識別情報及び固有パスコード)をデバイスリストに保存する。
【0049】
図5は、
図3に示す接続形態における個体識別情報の授受に係る構成を示すブロック図である。
図5に示す通り、デバイスノード11dは、
図4に示すデバイスノード11aと同様に、個体識別情報保存部21、アクティベーション操作部22、及び個体識別情報送信部23を備える。このようなデバイスノード11dでは、アクティベーション操作部22の指示に基づいて、個体識別情報送信部23により、個体識別情報保存部21から個体識別情報(或いは、個体識別情報及び固有パスコード)が読み出されて外部(例えば、セルラー網N21)に送信される。
【0050】
シングスクラウド15は、個体識別情報受信部41及びデバイスプール領域42(蓄積部)を備える。個体識別情報受信部41は、デバイスノード11dからセルラー網N21及び専用線N22を順に介して送信されてきた個体識別情報(或いは、個体識別情報及び固有パスコード)を受信する。デバイスプール領域42は、個体識別情報受信部41で受信された個体識別情報(或いは、個体識別情報及び固有パスコード)をデバイスリストに保存する。
【0051】
〈Co-innovationスペースの機能構成〉
図6は、本発明の一実施形態によるアプリケーション開発環境提供システムに実装されるCo-innovationスペースの機能構成図である。尚、Co-innovationスペースの機能は、インテリジェンスノード13及びソーシャリゼーションノード14の何れか一方のみで実現されても良く、インテリジェンスノード13及びソーシャリゼーションノード14の双方で実現されても良い。本実施形態では、説明を簡単にするために、Co-innovationスペースの機能が、インテリジェンスノード13で実現されるものとする。
【0052】
図6に示す通り、インテリジェンスノード13で実現されるCo-innovationスペースは、アプリケーションボード51、コミュニケーションツール52、ライブラリ53、ストレージ54、デバイス管理部55(管理部、管理手段)、テナント管理部56、サイト・アカウント管理部57、アプリケーションストア58、課金部59、及びデータベース部60を備える。
【0053】
アプリケーションボード51(プログラム開発部)は、マルチテナント、マルチサイト、及びマルチアカウントのアプリケーション開発環境及びアプリケーション実行環境をユーザへ提供する。アプリケーションボード51は、コンパイラや、ユーザに対して視覚的にアプリケーションプログラムを表示させることができる表示部等の機能を有する。表示部は、Co-innovationスペースを示す画像を表示し、当該Co-innovationスペースにおいて、レイアウト情報、結線情報、パラメータ情報、及び選択領域情報等に基づいて、視覚的にアプリケーションプログラムを表示する。
【0054】
レイアウト情報とは、開発対象であるアプリケーションプログラムの処理の形態を示す情報である。例えば、レイアウト情報には、開発対象であるアプリケーションプログラムが、多入力2出力の処理を行うアプリケーションであること、或いは多入力多出力の処理を行うアプリケーションであること、或いは1入力多出力の処理を行うアプリケーションであること等を示す情報が含まれる。
【0055】
結線情報とは、開発対象であるアプリケーションプログラムにおける、入力データ項目と、処理内容であるロジックと、処理結果である出力データ項目とをそれぞれ導線で結ぶことによってデータ項目やロジック間の関係性を視覚的に示す図を生成する際に定義される、当該導線に関する情報である。パラメータ情報とは、開発対象であるアプリケーションにおいて設定される各種パラメータの設定値を示す情報である。
【0056】
選択領域情報とは、開発対象であるアプリケーションプログラムの一連の処理の中で、ユーザによる操作等によって選択(指定)された一部の処理の部分を示す情報である。例えば、アプリケーションボード51によって視覚的に表示されたアプリケーションプログラムに対して、ユーザは当該アプリケーションプログラムの一部の領域を、マウス等を操作して囲むことにより、囲まれた領域を示す選択領域情報が生成される。
【0057】
コミュニケーションツール52は、ユーザ間で利用されるチャット機能、ビデオコミュニケーション機能、音声通話機能、画面共有機能、及び掲示板やソーシャルネットワークサービス(SNS)等のコミュニティ機能等を提供する。例えば、チャット機能は、テキストデータ(例えば、ソースコード等)、画像データ、及びプログラムの実行ファイル等だけでなく、開発対象であるアプリケーションプログラムの一部又は全部を、パラメータ値等の設定情報も含めてユーザ間で送受信して共有することができる。
【0058】
ライブラリ53は、アプリケーションボード51においてアプリケーションプログラムを開発又は実行する際に用いられる、汎用的な、処理ロジック、テンプレート、分析ツール、及びヒストリアン(履歴情報や実績情報が格納されたデータベース)等を提供する。例えば、ライブラリ53は、類似波形検索ツール、回帰分析ツール、重回帰分析ツール、MT法分析ツール、誤差分散分析ツール、データドリブンモデリングツール、ディープラーニングツール、及び相関分析ツール等の様々な分析ツールを記憶している。
【0059】
ストレージ54は、各種情報(例えば、開発したアプリケーションプログラムや分析結果データ等)を、一般公開される情報と、テナント共用の情報と、サイト共用の情報と、アカウント個人用の情報とに区別して、それぞれ一般公開用の記憶領域、テナント共用の記憶領域、サイト共用の記憶領域、又はアカウント個人用の記憶領域に記憶する。尚、各ユーザが、各種情報をどの記憶領域に保存可能であるかについては、予めテナントの管理者によってユーザごとに設定された権限に基づいて制御されるようにしてもよい。尚、ストレージ54は、記憶媒体、例えば、ハードディスクドライブ(HDD)、フラッシュメモリ、イーイーピーロム(EEPROM)、RAM(読み書き可能なメモリ)、ROM(読み出し専用メモリ)、又はそれらの任意の組み合わせによって構成される。
【0060】
デバイス管理部55は、インテリジェンスノード13が収容するデバイスノード11を構成するセンサー、デバイス、及びシステム等の情報を管理する。例えば、デバイス管理部55は、デバイスノード11の収容のために用いられる、デバイスノード11に付与された識別情報と、アカウント、サイト、及びテナントの識別情報とを関連付けた情報等を管理する。
【0061】
尚、スパイナルノード12が収容するデバイスノード11を構成するセンサー、デバイス、及びシステム等の情報については、インテリジェンスノード13のデバイス管理部55がスパイナルノード12を介し当該情報を取得して管理するようにしてもよいし、又は、スパイナルノード12が当該情報管理して、インテリジェンスノード13のデバイス管理部55が当該情報をスパイナルノード12から取得するようにしてもよい。
【0062】
テナント管理部56は、テナント(企業)に関する各種情報を管理する。例えば、テナント管理部56は、テナントの基礎情報、課金情報、操作権限、及び承認権限等の情報に対して、設定、変更、削除等を行う。また、例えば、テナント管理部56は、Co-innovationスペースの利用、及び有料又は無料の、アプリケーション、ツール、テンプレート、及びデータ等の利用に伴う契約に関する契約情報をテナントごとに管理する。
【0063】
サイト・アカウント管理部57は、サイト(組織)及びアカウント(ユーザ)に関する各種情報を管理する。例えば、サイト・アカウント管理部57は、サイト及びアカウントの基礎情報、課金情報、操作権限、及び承認権限等の情報に対して、設定、変更、削除等を行う。
【0064】
アプリケーションストア58は、ユーザが、アプリケーションプログラムの一部又は全部、ロジック、テンプレート、及びデータ等(以下、単にアプリケーション等と言う)の売買を行うための機能である。尚、アプリケーションストア58によって販売されるアプリケーション等は、月額課金、年額課金、利用度に応じた課金、又はワンタイムの課金等の、任意の課金方法で課金できるようにしてもよい。また、アプリケーションストア58によって販売されているアプリケーション等のうち特定のアプリケーション等については、ユーザが使用開始した日から一定期間(例えば、一か月間)は無料のお試し期間として、課金が発生しないようにしてもよい。
【0065】
課金部59は、アプリケーションストア58によって販売されているアプリケーション等を購入したユーザに対する課金処理を行う。尚、Co-innovationスペースの利用に対して課金処理を行うようにしてもよい。尚、課金先は、テナント、サイト、又はアカウントごとに予め登録することができるようにしてもよい。また、購入されたアプリケーション等が、ユーザによってアプリケーションストア58に登録されたアプリケーション等である場合には、当該アプリケーション等を購入したユーザに対して課金を行って徴収した金額の一部を、アプリケーション等を登録したユーザへ還元する(支払う)ことができるようにしてもよい。
【0066】
データベース部60は、アプリケーションの動作に必要な生産管理情報、プラント運転管理情報、品質情報等のデータをデータベースとして保持し、アプリケーションの要求に応じて必要なデータを提供する。尚、このデータベースは、SQLなどの一般的なデータベースでもよいし、非SQLの特定用途のデータベースでもよい。データベーステナント、サイト、またはアカウントごとに設定することができ、データの内容に応じて、管理者が個別にアクセス権限を設定することができるようにしてもよい。また、これらのデータベースは、Co-innovationスペースの外側にある外部のデータベースを参照するように構成してもよい。
【0067】
〈デバイスノードの収容〉
次に、デバイスノードのシステムへの収容について説明する。ここで、デバイスノードのシステムへの収容とは、システムにデバイスノードを論理的に接続し、管理し、入出力することを意味する。
図4,
図5を用いて説明した通り、デバイスノード11は、個体識別情報(或いは、個体識別情報及び固有パスコード)を内部の個体識別情報保存部21に保持している。そして、デバイスノード11は、プラグ・アンド・プレイによって、スパイナルノード12やシングスクラウド15に対して個体識別情報等を送信する。デバイスノード11からの個体識別情報等がスパイナルノード12やシングスクラウド15で受信されると、デバイスプール領域32やデバイスプール領域42に蓄積される。
【0068】
このとき、セキュリティの観点から個々のデバイスノードの存在を他テナントから知られてはならない場合がある。また、他ユーザ、他サイトからのアクセスを制限したい場合がある。更に、デバイスの収容を容易にすることは、設置作業の効率化の観点とコスト削減の観点で極めて重要である。これを実現するために、本実施形態では、
図7に示す通り、アクティベーテド(ACTIVATED)状態ST1、レジスタード(REGISTERD)状態ST2、アロケーテド(ALLOCATED)状態ST3、アサインド(ASSIGNED)状態ST4、及びアプロックド(APPLOCKED)状態ST5の5つの状態を定義している。
【0069】
図7は、デバイスノードの収容時における状態遷移を示す状態遷移図である。まず、デバイスノード11は、工場出荷時において初期状態になっている。初期状態からアクティベーション(Activation)という操作をすることにより、アクティベーテド状態ST1に遷移する。アクティベーテド状態ST1は、アクティベーションが完了したデバイスノード11が、スパイナルノード12又はシングスクラウド15で認識された状態である。
【0070】
尚、このとき、スパイナルノード12又はシングスクラウド15を構成する1又は複数の装置が、これらの装置から成る図示しない記憶部又は記憶領域に記憶されているデバイスノードの各状態を管理するための状態管理ファイルを用いて、アクティベーションが完了したデバイスノード11の状態(状態情報)をアクティベート状態ST1に登録又は変更することにより、デバイスノードの状態遷移を管理するものであっても良い。
【0071】
通常、デバイスノード11をネットワークに接続し、電源を投入するといった操作によって、プラグ・アンド・プレイにより、アクティベーションは完了する。尚、デバイスノード11のネットワークへの接続は、セルラー網/無線網で収容するならば、電波の届く範囲内にデバイスノード11を置くことにより実現される。また、ファイバーやツイストペアで収容する場合、デバイスノード11のネットワークへの接続は、配線を接続する等により実現される。
【0072】
アクティベーテド状態ST1では、アクティベーションが完了したデバイスノード11の個体識別情報等が、スパイナルノード12のデバイスプール領域32又はシングスクラウド15のデバイスプール領域42に蓄積されているだけであって、いかなるテナントからもその存在を認識できない。これにより、デバイスノード11が意図されない乗っ取り、アタック、スキミングされることはない。
【0073】
尚、このような状態であったとしても、デバイスプール領域32,42に蓄積された個体識別情報等が、第三者に何らかの方法で知られてしまうと、レジストレーション(Registration)という操作(デバイスノード11とテナントの割り付けを行う操作)によって、デバイスノード11が乗っ取られたり、アタックされたり、スキミングされる危険性がある。固有パスコードは、このような危険性を少なくするために個体識別情報に付加される。
【0074】
次に、レジストレーションという操作を行うことにより、レジスタード状態ST2に遷移する。レジスタード状態ST2は、デバイスノード11が特定のテナントに割り付けられた状態である。インテリジェンスノード13の中で、デバイスノード11の収納を行うテナントから、スパイナルノード12又はシングスクラウド15に個体識別情報を通知することにより、デバイスプール領域32,42に保持されているデバイスノード11の個体識別情報(第1情報)とテナント(第2情報)との関連付けが行われる。尚、この関連付けは、
図6に示すデバイス管理部55で行われる。関連付けが行われた個体識別情報がテナントのデバイス登録領域にコピーされ、デバイスプール領域32,42からは削除される。
【0075】
尚、このとき、インテリジェンスノード13により構成されるCo-innovationスペースのデバイス管理部55が、図示しない記憶部又は記憶領域に記憶されているデバイスノードの各状態を管理するための状態管理ファイルを用いて、登録が完了したデバイスノード11の状態(状態情報)をアクティベート状態ST1からレジスタード状態ST2に変更することで、状態遷移を管理するものであっても良い。
【0076】
前述した通り、テナント毎の空間は互いに安全に隔離されているため、この状態では、第三者テナントからは収納したデバイスノード11は認識できず、また、このデバイスノード11を第三者テナントに割り付けることもできない状態となる。尚、デバイスプール領域32,42に、個体識別情報及び固有パスコードが蓄積されている場合には、インテリジェンスノード13からデバイスの個体識別情報及び固有パスコードを同時に通知しなければ、テナントとデバイスプール領域32,42に保持されている個体識別情報との関連付けは行われない。
【0077】
次に、アロケーション(Allocation)という操作(レジスタード状態ST2にあるデバイスノード11を当該テナントの管理者がサイトやアカウントに割り当てる操作)を行うことにより、アロケーテド状態ST3に遷移する。アロケーテド状態ST3は、デバイスノード11が特定のテナントやアカウントに割り当てられた状態である。このアロケーテド状態ST3では、各ユーザがインテリジェンスノード13の各自のアカウントのCo-innovationスペースにログインすると、各自のアカウントのCo-innovationスペース上でデバイスノード11を認識し、デバイスノード11をアプリケーション開発画面(
図13参照)で利用可能な状態となる。
【0078】
尚、このとき、インテリジェンスノード13により構成されるCo-innovationスペースのデバイス管理部55が、図示しない記憶部又は記憶領域に記憶されているデバイスノードの各状態を管理するための状態管理ファイルを用いて、登録が完了したデバイスノード11の状態(状態情報)をレジスタード状態ST2からアロケーテド状態ST3に変更することで、状態遷移を管理するものであっても良い。
【0079】
次に、アサインメント(Assignment)という操作(テナントの管理者が、管理者権限でテナントにログインし、各テナント配下のサイトやアカウントに権限を設定する操作)を行うことにより、アサインド状態ST4となる。アサインド状態ST4は、サイトやアカウント毎のアクセス権が設定された状態である。ここで、デバイスノード11は、初期状態では、テナント配下のどのサイトのどのアカウントからも認識され、利用可能な状態となっている。テナントの管理者が管理者権限でログインすることにより、サイト、アカウント、或いは別途設定するグループ毎に、R/O(リードオンリー:読み込みのみ)、R/W(リードライト:読み書き可能)、X(エグゼキューション)等の権限設定をすることができる。
【0080】
尚、このとき、インテリジェンスノード13により構成されるCo-innovationスペースのデバイス管理部55が、図示しない記憶部又は記憶領域に記憶されているデバイスノードの各状態を管理するための状態管理ファイルを用いて、登録が完了したデバイスノード11の状態(状態情報)をアロケーテド状態ST3からアサインド状態ST4に変更することで、状態遷移を管理するものであっても良い。
【0081】
次に、ロック(Lock)という操作(デバイスノード11の設定変更、停止、再起動等の権限を特定のアプリケーションに限定する操作)を行うことにより、アプロックド状態ST5に遷移する。アプロックド状態ST5は、デバイスノード11の利用が特定のアプリケーションのみに制限或いは許可された状態である。この状態は、デバイスノード11の設定変更、停止、再起動等を制限或いは許可し、デバイスノード11を安定的に利用できるようにするために設けられる。
【0082】
ロックという操作は、どのアカウントでも実行することができ、テナントの管理者はそれを強制的に変更できる。アプロックド状態ST5になっているデバイスであっても、読み込みについては、R/O(リードオンリー)の権限さえあれば参照可能である。アプロックド状態ST5となっているデバイスについて、他のアプリケーションのプログラムから利用するために設定変更をしようとすると、エラーが返され、ロックという操作を行っているユーザIDとアプリケーションIDが提示される。
【0083】
尚、このとき、インテリジェンスノード13により構成されるCo-innovationスペースのデバイス管理部55が、図示しない記憶部又は記憶領域に記憶されているデバイスノードの各状態を管理するための状態管理ファイルを用いて、登録が完了したデバイスノード11の状態(状態情報)をアサインド状態ST4からアプロックド状態ST5に変更することで、状態遷移を管理するものであっても良い。
【0084】
図8は、デバイスノードの収容時の処理を示すフローチャートである。尚、
図8に示すフローチャートは、収容されたデバイスノード11がレジスタード状態ST2に遷移するまでの処理を示している。尚、ここでは、理解を容易にするために、スパイナルノード12に接続されたデバイスノード11が収容される場合を例に挙げて説明するが、シングスクラウド15に接続されたデバイスノード11が収容される場合にも同様の処理が行われる。
【0085】
まず、インテリジェンスノード13からスパイナルノード12に対し、収容しようとしているデバイスノードの個体識別情報が送信される(ステップS1)。この処理は、例えばユーザが端末装置16を操作して収容しようとしているデバイスノードの個体識別情報を入力することにより行われる。インテリジェンスノード13から送信されてきた個体識別情報は、スパイナルノード12で受信される(ステップS2)。すると、スパイナルノード12では、受信した個体識別情報と、デバイスプール領域32のデバイス固有情報リストとを比較し、個体識別情報が一致するものがあるか否かを判定する処理が行われる(ステップS3)。
【0086】
個体識別情報が一致するものがないと判定された場合(ステップS3の判定結果が「NO」の場合)には、スパイナルノード12からインテリジェンスノード13に対してリジェクトが送信される(ステップS4)。スパイナルノード12から送信されてきたリジェクトは、インテリジェンスノード13で受信される(ステップS5)。すると、インテリジェンスノード13では、デバイスノード11の登録失敗となる(ステップS6)。
【0087】
これに対し、個体識別情報が一致するものがあると判定された場合(ステップS3の判定結果が「YES」の場合)には、その個体識別情報に対応する固有パスコードがあるか否かを判定する処理がスパイナルノード12で行われる(ステップS7)。固有パスコードが無いと判定された場合(ステップS7の判定結果が「NO」の場合)には、デバイスノード11の情報をテナントのデバイス登録領域にコピーする処理(ステップS8)、及びデバイスプール領域32のデバイスの情報を削除する処理(ステップS9)が、スパイナルノード12で順に行われる。
【0088】
そして、スパイナルノード12からインテリジェンスノード13に対し、登録完了が送信される(ステップS10)。スパイナルノード12から送信されてきた登録完了は、インテリジェンスノード13で受信される(ステップS11)。すると、インテリジェンスノード13では、デバイスノード11の登録完了となる(ステップS12)。これにより、登録が完了したデバイスノード11は、レジスタード状態ST2になる。
【0089】
他方、ステップS7において、固有パスコードがあると判定された場合(ステップS7の判断結果が「YES」の場合)には、スパイナルノード12からインテリジェンスノード13に対し、パスコード要求が送信される(ステップS13)。スパイナルノード12から送信されてきたパスコード要求は、インテリジェンスノード13で受信される(ステップS14)。すると、インテリジェンスノード13では、固有パスコードを準備し(ステップS15)、スパイナルノード12に送信する処理が行われる(ステップS16)。
【0090】
インテリジェンスノード13から送信された固有パスコードは、スパイナルノード12で受信される(ステップS17)。すると、スパイナルノード12では、受信した固有パスコードと、デバイスプール領域32に蓄積されている固有パスコードと比較し、固有パスコードが一致するか否かを判定する処理が行われる(ステップS18)。
【0091】
固有パスコードが一致していないと判定された場合(ステップS18の判断結果が「NO」の場合)には、スパイナルノード12からインテリジェンスノード13に対してリジェクトが送信される(ステップS19)。スパイナルノード12から送信されてきたリジェクトは、インテリジェンスノード13で受信される(ステップS20)。すると、インテリジェンスノード13では、デバイスノード11の登録失敗となる(ステップS21)。他方、固有パスコードが一致していると判定された場合(ステップS18の判断結果が「YES」の場合)には、前述したステップS8〜12の処理がスパイナルノード12及びインテリジェンスノード13で行われ、デバイスノード11の登録完了となる。これにより、登録が完了したデバイスノード11は、レジスタード状態ST2になる。
【0092】
〈デバイスノードの収容作業手順〉
次に、デバイスノード11を収容するための具体的な作業手順について説明する。
図7を用いて説明した通り、本実施形態では、デバイスノード11を収容する場合には、アクティベーテド状態ST1、レジスタード状態ST2、アロケーテド状態ST3、アサインド状態ST4、及びアプロックド状態ST5の5つの状態に設定していく必要がある。初期状態からアクティベーテド状態ST1までは、プラグ・アンド・プレイにより行うことができる。
【0093】
しかしながら、レジスタード状態ST2からアプロックド状態ST5までの遷移は、テナントの管理者の操作が必要になる。例えば、テナントの管理者は、デバイスノード11の個体識別情報の入力や固有パスコードの入力作業を行う必要がある。このため、テナントの管理者の作業負担が大きい。そこで、本実施形態では、デバイス収容の作業を簡単化するために、
図9に示す通り、個体識別情報や固有パスコードとともに二次元コードCDが印字されたシールSLをデバイスノード11に貼付するようにしている。
【0094】
図9は、デバイスノードに貼着されるシールの一例を示す図である。
図9(a)に示すシールSLは、デバイスノードの個体識別情報を示す文字列STと、その個体識別情報が含まれる二次元コードCDとが印字されたものである。文字列STには、デバイスノードの個体識別情報である旨を示す「Device Identification」、及びデバイスノードの個体識別情報「3201 XF5J P3A2 S052」が含まれる。二次元コードCDには、デバイスノード11の個体識別情報がXML(Extensible Markup Language)形式で記述された情報が含まれる。尚、ここでは、デバイスノードの個体識別情報を示す文字列STと、その個体識別情報が含まれる二次元コードCDとが印字されたシールSLがデバイスノードに貼着されているとしているが、文字列ST及び二次元コードCDは、直接デバイスノードに印字或いは刻印されていても良い。
【0095】
図9(b)に示すシールSMは、デバイスノードの個体識別情報及び固有パスコードを示す文字列SUと、それら個体識別情報及び固有パスコードが含まれる二次元コードCEとが印字されたものである。文字列SUには、デバイスノードの個体識別情報である旨を示す「Device Identification」、デバイスノードの個体識別情報「3201 XF5J P3A2 S052」、固有パスコードである旨を示す「PASS CODE」、及び固有パスコード「X_5PxG32LZZQ」が含まれる。二次元コードCEには、デバイスノード11の個体識別情報及び固有パスコードがXML形式で記述された情報が含まれる。
【0096】
尚、
図9(b)に示すシールSMのように、文字列SUに固有パスコードが含まれる場合には、固有パスコードが他人に知られる危険性がある。このため、通常シールSLとシールSMは併用され、シールSMは、容易に剥がすことができるようになっている。
図9(a)に例示するシールSLに印字される二次元コードCD及び
図9(b)に例示するシールSMに印字される二次元コードCEは、QRコード(登録商標)等のマトリックス型の二次元コードであっても、スタック型の二次元コードであっても良い。また、必ずしも二次元コードである必要はなく一次元コード等の他のコードであっても良い。従って、設置時に二次元コードが読み取られ、デバイスノードの設定が完了したのちには、第三者がデバイスをネットワーク上で特定し利用するような状況を防ぐセキュリティの観点から、シールSMはデバイスノードから剥がされ、別途保管及び管理されるべきものである。
【0097】
《収容作業手順の第1例》
図10は、デバイスノードの収容作業手順の第1例を説明するための図であり、
図11は、同作業手順の第1例を示すシーケンス図である。
図10に示す通り、インテリジェンスノード13で実現されるCo-innovationスペースには、テナント毎のテナント領域R1〜R3が設けられている。これらテナント領域R1〜R3は、
図6に示すテナント管理部56で管理される情報を用いて作成される。尚、ここでは、説明を簡単にするために、3つのテナント領域R1〜R3のみを図示しているが、テナント領域は、Co-innovationスペースを利用するテナントの数に応じた分だけ設けられる。以下では、理解を容易にするために、テナント領域R1が設けられているテナント(以下、「テナントA」という)に着目して説明を進める。
【0098】
図10に示す通り、テナント領域R1の内部には、テナントAに属するサイト(組織)毎のサイト領域R11が設けられている。尚、
図10では、図示を簡略化するために、テナントAに属するある1つのサイト(以下、「サイトB」という)のサイト領域R11のみ図示している。また、サイト領域R11の内部には、サイトBに属するアカウント(ユーザ)毎のアカウント領域R12が設けられている。尚、
図10では、図示を簡略化するために、サイトBに属するある1つのアカウント(以下、「アカウントC」という)のアカウント領域R12のみ図示している。これらサイト領域R11及びアカウント領域R12は、
図6に示すサイト・アカウント管理部57で管理される情報を用いて作成される。
【0099】
また、テナント領域R1の内部には、テナントAに属するサイトやアカウントで共用することができるデバイスノードが登録されるデバイス登録領域R13が設けられている。このデバイス登録領域R13は、
図6に示すデバイス管理部55で管理される情報を用いて作成される。
図10に示す例では、テナント領域R1の内部に設けられたデバイス登録領域R13に登録されているデバイスノードは、テナントA、サイトB、及びアカウントCで共用することができる。尚、テナントAに属するサイトやアカウントでは、デバイス登録領域R13に登録されたデバイスノード以外に、データ、ロジック、アプリケーション等を共用することが可能である。
【0100】
図11に示す通り、テナントAの管理者は、まずデバイスノード11を設置し、デバイスノード11の電源をオンする(ステップS101)。デバイスノード11の電源オンにより、プラグ・アンド・プレイにより、デバイスノード11は、スパイナルノード12、インテリジェンスノード13、又はシングスクラウド15に接続される。ここでは、デバイスノード11がスパイナルノード12に接続されるものとする。デバイスノード11がスパイナルノード12に接続されると、デバイスノード11の個体識別情報(或いは、個体識別情報及び固有パスコード)がデバイスノード11からスパイナルノード12に送信され(ステップS102)、スパイナルノード12のデバイスプール領域32に蓄積される。これにより、デバイスノード11の状態は初期状態からアクティベーテド状態ST1に遷移する。
【0101】
次に、テナントAの管理者は、端末装置16を操作してインテリジェンスノード13にアクセスし、Co-innovationスペースにログインする(ステップS104)。これにより、テナントAの管理者は、インテリジェンスノード13で実現されるCo-innovationスペースに設けられたテナント領域R1の利用が可能になる。続いて、テナントAの管理者は、Co-innovationスペースにおいて予め用意されているデバイス登録メニューを選択する。
【0102】
そして、テナントAの管理者は、端末装置16に接続されたカメラ17により、デバイスノード11に貼着されているシールSMの二次元コードCEを撮影する(ステップS105:第1ステップ)。カメラ17で二次元コードCEが撮影されると、この二次元コードCEから、デバイスノード11の個体識別情報(或いは、個体識別情報及び固有パスコード)が読み取られる。読み取られた個体識別情報(或いは、個体識別情報及び固有パスコード)は、端末装置16からインテリジェンスノード13に送信される(ステップS106::第1ステップ)。
【0103】
尚、上述の端末装置16に接続されたカメラ17は、例えばカメラ機能が搭載されたスマートフォン等の携帯型端末装置であっても良い。このような携帯型端末装置を用いる場合には、例えばネットワークもPC(パーソナルコンピュータ)も無い屋外でデバイスノード11の設置が行われるようなときにも、無線の電話回線を介してインテリジェンスノード13に接続可能であるため、効率的に作業を行うことができる。
【0104】
次いで、スパイナルノード12のデバイスプール領域32にアクセスして、端末装置16から送信されてきた個体識別情報と同じ個体識別情報を検索する処理が、インテリジェンスノード13で行われる(ステップS107:第4ステップ)。尚、個体識別情報に対応する固有パスコードがある場合には、デバイスプール領域32に蓄積された固有パスコードと、端末装置16から送信されてきた固有パスコードとを比較して認証する処理が行われる(ステップS108:認証処理)。
【0105】
端末装置16から送信されてきた個体識別情報と同じ個体識別情報が検索された場合には、テナントAとデバイスノード11とを関連付ける処理がインテリジェンスノード13で行われる(ステップS109:第2ステップ)。尚、この処理は、
図6のデバイス管理部55で行われる。その後、デバイスプール領域32に蓄積されたデバイスノード11の情報がインテリジェンスノード13に転送され(ステップS110)、テナントAのデバイス登録領域R13に登録する処理が行われる(ステップS111)。これにより、デバイスノード11の状態は、アクティベーテド状態ST1からレジスタード状態ST2に遷移する。尚、インテリジェンスノード13に転送されたデバイスノード11の情報は、デバイスプール領域32から削除される。
【0106】
デバイスノード11がテナントAのデバイスノードとして登録されると、テナントAの管理者は、端末装置16を操作して、テナントAの配下のサイトBやアカウントCに対し、デバイスノード11を割り当てる(ステップS112:第3ステップ)。これにより、インテリジェンスノード13では、特定のサイト及びアカウント(例えば、サイトBやアカウントC)にデバイスノードを割り当てる処理(第1処理)が行われる。この処理が終了すると、デバイスノード11の状態は、レジスタード状態ST2からアロケーテド状態ST3に遷移する。
【0107】
また、管理者権限でログインしたテナントAの管理者は、端末装置16を操作して、テナントAの配下のサイトBやアカウントCに対し、R/O(リードオンリー)、R/W(リードライト)、X(エグゼキューション)等の権限設定を行う(ステップS113:第3ステップ)。これにより、インテリジェンスノード13では、サイト及びアカウント毎に、デバイスノード11に対するアクセス権を設定する処理(第2処理)が行われる。この処理が終了すると、デバイスノード11の状態は、アロケーテド状態ST3から、アサインド状態ST4に遷移する。
【0108】
また、テナントAの任意のサイト、アカウント、或いはテナントAの管理者が、端末装置16を操作して、デバイスノード11の設定変更、停止、再起動等の権限を特定のアプリケーションに限定する操作(ロック)を行う(ステップS114:第3ステップ)。これにより、インテリジェンスノード13では、デバイスノード11の利用を特定のアプリケーションプログラムのみに制限或いは許可する処理(第3処理)が行われる。この処理が終了すると、デバイスノード11の状態は、アサインド状態ST4から、アプロックド状態ST5に遷移する。
【0109】
《収容作業手順の第2例》
図12は、デバイスノードの収容作業手順の第2例を説明するための図である。本例では、携帯端末18のアプリケーションを利用することで、アクティベーテド状態ST1からアサインド状態ST4までの処理を容易に行えるようにしたものである。即ち、携帯端末18のアプリケーションによって、
図11に示すステップS104〜ステップS112の処理が行われるようにしたものである。
【0110】
尚、本例では、携帯端末18のアプリケーションを利用する場合を例に挙げて説明するが、これに限定されるものではない。例えば、携帯端末18からブラウザを介してCo-innovationスペース上のデバイス登録画面(アプリ)にアクセスし、そのデバイス登録画面(アプリ)を利用することで、
図11に示すステップS104〜ステップS112の処理が行われるようにしても良い。
【0111】
デバイスノード11の設置が完了した後に、テナントAの管理者が、携帯端末18のアプリケーションを起動して、端末装置16に表示された二次元コードCD1を携帯端末18で読み取ることで、アカウントID、パスワードが携帯端末18に入力される。携帯端末18に入力されたアカウントID、パスワードは、携帯端末18のアプリケーションによって自動的にインテリジェンスノード13に送信され、これによりテナントAの管理者は、Co-innovationスペースにログインする(ステップS104)。
【0112】
ここで、端末装置16に表示される二次元コードCD1には、テナントAの管理者がCo-innovationスペースにログインするために必要なアカウントID及びパスワードが含まれる。この二次元コードCD1は、テナントAの管理者が、端末装置16でCo-innovationスペースにログインしている状態で、例えば「契約情報」メニューを選択した際に、自身の所属するテナントの契約情報とともに表示されるものである。
【0113】
このように本例では、携帯端末18のアプリケーションで二次元コードCD1を読み取る操作を行うだけで、Co-innovationスペースにログインすることが可能である。このため、Co-innovationスペースにログインする際に、アカウントID、パスワードの入力が不要になり、極めて容易にログオンすることができる。尚、上記の二次元コードCD1を印刷し、印刷された二次元コードCD1を端末装置16で読み取るようにしても良い。
【0114】
尚、本例では、携帯端末18のアプリケーションによって端末装置16に表示される二次元コードCD1を読み取ることで、アカウントID、パスワードを携帯端末18に入力し、Co-innovationスペースにログインする例について説明したが、これに限定されるものではない。例えば、携帯端末18の画面上で、アカウントID及びパスワードを携帯端末18のキーボードを使って入力してCo-innovationスペースにログインするようにしても良い。
【0115】
Co-innovationスペースへのログインが完了した後に、テナントAの管理者が、携帯端末18を用いてデバイスノード11に貼着されているシールSMの二次元コードCEを撮影すると(ステップS105)、二次元コードCEから、デバイスノード11の個体識別情報(或いは、個体識別情報及び固有パスコード)が読み取られる。すると、携帯端末18のアプリケーションにより、ステップS106〜ステップS112の処理が自動的に行われ、アロケーテド状態ST3までの処理が完了する。尚、ステップS112の処理では、デバイスノード11を割り当てるサイトやアカウントを設定する必要があるが、この設定情報は予め携帯端末18のアプリケーションに設定しておく。
【0116】
尚、各サイトやアカウントの権限を携帯端末18のアプリケーションの入力画面で選択可能とし、携帯端末18で、管理者権限でインテリジェンスノード13のCo-innovationスペースにログインした場合には、携帯端末18のアプリケーションによりステップS113の処理まで行うことができ、アサインド状態ST4まで処理が完了する。これにより、作業の更なる簡略化を図ることができる。
【0117】
〈アプリケーション開発画面〉
図13は、本発明の一実施形態におけるアプリケーション開発画面の一例を示す図である。上述したデバイスノードの収容後(或いは、デバイスノードの収容を行いながら)、各ユーザ(アカウント)は、
図13に示すアプリケーション開発画面にて、ネットワークを介してアプリケーションプログラムを開発していくことができる。このアプリケーション開発画面では、テナント、サイト毎に設定された複数のユーザ(アカウント)が、予め管理者によって設定された実行権限により、データ、ロジック、アプリケーション、状態を共有しながらアプリケーションプログラムの作成、管理、監視、実行を行うことが可能である。尚、このアプリケーション開発画面は、例えば端末装置の表示装置(表示部)に表示される。
【0118】
図13に示すアプリケーション開発画面は、開発パーツ一覧表示領域E1と、アプリケーション設計領域E2とに大別される。開発パーツ一覧表示領域E1は、アプリケーションプログラムの開発に用いられる開発パーツの一覧が表示される領域である。この開発パーツ一覧表示領域E1には、例えば分析エレメント、入出力データ項目(例えば、センサー出力)、汎用の各種ロジック(演算子、関数)等が開発パーツとして一覧表示される。
【0119】
アプリケーション設計領域E2は、開発対象であるアプリケーションプログラムの構造を視覚的に表示する領域である。このアプリケーション設計領域E2では、開発対象であるアプリケーションプログラムの作成及び編集が可能である。ユーザは、例えば、開発パーツ一覧表示領域E1に表示された開発パーツ、例えば、分析エレメント、入出力データのデータ項目、処理内容であるロジック等の一覧の中から、必要な開発パーツを選択し、アプリケーション設計領域E2へマウス操作等によりドラッグ・アンド・ドロップすることにより、選択した開発パーツを示す画像をアプリケーション設計領域に表示させることができる。そして、アプリケーション設計領域E2に表示された開発パーツを線や矢印で接続することで、アプリケーションプログラムを作成することができる。
【0120】
デバイスノード11を収容する際に、デバイスノード11がアロケーテド状態ST3に遷移すると、そのデバイスノード11が割り当てられたテナント、サイト、アカウントのアプリケーション開発画面における開発パーツ一覧表示領域E1には、収容したデバイスノード11が開発パーツとして現れる。そして、各テナント、サイト、アカウントで、収容したデバイスノード11を共有して、プログラムの作成や編集を行うことができる。
【0121】
尚、収容されたデバイスノード11がアサインド状態ST4に遷移すると、サイトやアカウント毎にアクセス権が設定された状態になる。このため、
図13に示すアプリケーション開発画面で開発を行っているユーザは、デバイスノード11の使用が、設定された権限の範囲内での使用のみに制限される。また、収容されたデバイスノード11がアプロックド状態ST5に遷移すると、デバイスノード11の利用が特定のアプリケーションのみに制限された状態になる。このため、
図13に示すアプリケーション開発画面で開発を行っているユーザは、利用が許可されたアプリケーションを開発する場合のみ、デバイスノード11の利用が可能となる。
【0122】
以上説明した通り、本実施形態では、アプリケーション開発環境提供システム1を利用するテナントの管理者の指示によって、アプリケーションプログラムで利用されるデバイスノード11の個体識別情報が特定された場合に、特定された個体識別情報と、その個体識別情報の特定を行ったテナントとの関連付けを行い、デバイスノード11の使用を制限或いは許可する管理処理を行うようにしている。このため、高いセキュリティで、デバイスノード11をシステムに収容することができる。
【0123】
具体的に、アプリケーション開発環境提供システム1は、様々な企業(テナント)に利用されうる。例えば、プラントで実現されるエンジニアリングシステムの開発が行われる場合には、顧客(例えば、発注者)、エンジニアリング会社(例えば、受注者)、及びサードベンダ(第三者)によって利用されうる。このような、様々なテナントによって利用されるシステムにおいては、セキュリティの観点から、プラントで用いられるデバイスノード11の存在を他のテナントに知られてなはならない場合がある。また、同一のテナントであっても、他の部署(サイト)、或いは他の社員(ユーザ)からのアクセスを制限したい場合がある。
【0124】
上述した実施形態においては、デバイスノード11の使用を制限或いは許可する管理処理が行われることで、デバイスノード11の使用が、特定のテナントに属する特定のサイト及びアカウントに制限され、サイト及びアカウント毎にデバイスノード11に対するアクセス権が設定され、デバイスノード11の利用が特定のアプリケーションプログラムのみに制限される。これにより、例えば、プラントで用いられるデバイスノード11の存在が他のテナントに知られるといった事態が生ずることはなく、また、同一のテナントにおける、他の部署(サイト)、或いは他の社員(ユーザ)からのアクセスを制限することも可能である。このように、本実施形態では、高いセキュリティで、デバイスノード11をシステムに収容することができる。
【0125】
また、テナントで扱うデバイスノード11は、同一に管理されるため、アプリケーションから見ると、インテリジェンスノード13に直接接続されているセンサー、デバイス、及びシステム、スパイナルノード12を介して接続されているセンサー、デバイス、及びシステム、並びにシングスクラウド15を介して接続されているセンサー、デバイス、及びシステムを等しく認識することができる。これにより、各サイトや各アカウントでは、デバイスを同様に取り扱って、プログラムを開発、編集していくことができる。
【0126】
また、上述した実施形態では、個体識別情報や固有パスコードの情報が含まれる二次元コードCD,CEが印字されたシールSL,SMをデバイスノード11に貼付していたため、デバイスノード11の個体識別情報やパスコードを効率的に入力できる。また、携帯端末18を用いて二次元コードCD1を読み取ってCo-innovationスペースへのログインを行い、デバイスノード11の収納作業を携帯端末18のアプリケーションにより実現していたため、デバイスノード11の収容を効率的に行うことができる。
【0127】
尚、上述した実施形態では、スパイナルノード12に接続するデバイスノード11は、初期状態でスパイナルノード12に接続させて、個体識別情報や固有パスコードをスパイナルノード12のデバイスプール領域32に蓄積している。また、インテリジェンスノード13に接続するデバイスノード11は、初期状態でインテリジェンスノード13に接続させて、個体識別情報や固有パスコードをインテリジェンスノード13の不図示のデバイスプール領域に蓄積している。また、シングスクラウド15に接続するデバイスノード11は、初期状態でシングスクラウド15に接続させて、個体識別情報や固有パスコードをシングスクラウド15のデバイスプール領域42に蓄積させている。
【0128】
このように、上述した実施形態では、デバイスノード11が接続される場所(ネットワーク)やデバイスノード11の情報(個体識別情報や固有パスコード)が蓄積されるデバイスプール領域を分けるようにしているが、デバイスプール領域を共通化しても良い。例えば、セルラー網を使えばどの場所からもクラウドにアクセスすることができるから、全てのデバイスノード11を初期状態でシングスクラウド15に接続させ、デバイスノード11の情報を全てシングスクラウド15のデバイスプール領域42に蓄積させるようにしても良い。
【0129】
以上、本発明の一実施形態について詳細に説明したが、本発明は、上述した実施形態に制限されることなく、本発明の範囲内で自由に変更が可能である。例えば、上述した実施形態におけるアプリケーション開発環境提供システム1の一部又は全部をコンピュータで実現するようにしてもよい。アプリケーション開発環境提供システム1の一部又は全部がコンピュータで実現される場合には、アプリケーション開発環境提供システム1の一部又は全部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
【0130】
尚、ここでいう「コンピュータシステム」とは、アプリケーション開発環境提供システム1に内蔵されたコンピュータシステムであって、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【0131】
また、「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信回線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、更に前述した機能をコンピュータシステムに既に記録されているプログラムとの組み合わせで実現できるものであってもよい。
【0132】
また、上述した実施形態におけるアプリケーション開発環境提供システム1を、LSI(Large Scale Integration)等の集積回路として実現してもよい。アプリケーション開発環境提供システム1の各機能ブロックは個別にプロセッサ化してもよいし、一部、又は全部を集積してプロセッサ化してもよい。また、集積回路化の手法はLSIに限らず専用回路、又は汎用プロセッサで実現してもよい。また、半導体技術の進歩によりLSIに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。