(57)【要約】【課題】アプリケーションプログラムの効率的な開発および共有を実現すること。【解決手段】ネットワークを介してアプリケーションプログラムの開発環境を提供するアプリケーション開発環境提供システムは、前記開発環境に接続された端末からの入力に基づいてアプリケーションプログラムを生成し、生成された前記アプリケーションプログラムを視覚的に表示するプログラム開発部と、前記開発環境を利用する複数のユーザ間におけるコミュニケーション機能を提供するコミュニケーション部であって、第１のユーザが利用する前記開発環境の前記プログラム開発部によって生成された前記アプリケーションプログラムの一部または全部を、第２のユーザが利用する前記開発環境において利用可能に複製させ、視覚的に表示させるコミュニケーション部と、を有する。【選択図】図９
2018055588.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してアプリケーションプログラムの開発環境を提供するアプリケーション開発環境提供システムにおいて、
前記開発環境に接続された端末からの入力に基づいてアプリケーションプログラムを生成し、生成された前記アプリケーションプログラムを視覚的に表示するプログラム開発部と、
前記開発環境を利用する複数のユーザ間におけるコミュニケーション機能を提供するコミュニケーション部であって、第１のユーザが利用する前記開発環境の前記プログラム開発部によって生成された前記アプリケーションプログラムの一部または全部を、第２のユーザが利用する前記開発環境において利用可能に複製させ、視覚的に表示させるコミュニケーション部と、
を有することを特徴とするアプリケーション開発環境提供システム。
【請求項２】
前記コミュニケーション部は、前記プログラム開発部によってユーザの操作に基づいて選択された前記アプリケーションプログラムの選択領域を示す選択領域情報に基づいて前記アプリケーションプログラムの一部を利用可能に複製させ、視覚的に表示させる
ことを特徴とする請求項１に記載のアプリケーション開発環境提供システム。
【請求項３】
前記コミュニケーション部は、前記プログラム開発部によって設定されたパラメータ情報を含んで、前記アプリケーションプログラムの一部または全部を利用可能に複製させる
ことを特徴とする請求項１または請求項２に記載のアプリケーション開発環境提供システム。
【請求項４】
前記プログラム開発部は、前記コミュニケーション部によって表示された前記アプリケーションプログラムの一部または全部を利用可能に複製し、視覚的に表示する
ことを特徴とする請求項１から請求項３のうちいずれか一項に記載のアプリケーション開発環境提供システム。
【請求項５】
前記プログラム開発部は、表示した前記アプリケーションプログラムを前記端末からの入力に基づいて更新する
ことを特徴とする請求項４に記載のアプリケーション開発環境提供システム。
【請求項６】
前記プログラム開発部は、入力、演算、または出力を含む開発パーツを示す情報である開発パーツ情報と、前記開発パーツの配置を示す情報であるレイアウト情報と、前記開発パーツ間の論理的な接続を示す情報である結線情報と、前記開発パーツに対して設定されたパラメータ値を示すパラメータ情報のうち少なくとも１つの情報に基づいて、前記アプリケーションプログラムを利用可能に複製し、視覚的に表示する
ことを特徴とする請求項１から請求項５のうちいずれか一項に記載のアプリケーション開発環境提供システム。
【請求項７】
前記コミュニケーション部は、前記プログラム開発部によって生成された前記アプリケーションプログラムの一部または全部を、ユーザによるドラッグアンドドロップの操作によって前記プログラム開発部から前記コミュニケーション部へ視覚的に移動させることにより、指定された前記端末において前記アプリケーションプログラムの一部または全部を利用可能に複製し、視覚的に表示させる
ことを特徴とする請求項１から請求項６のうちいずれか一項に記載のアプリケーション開発環境提供システム。
【請求項８】
前記コミュニケーション部は、チャット形式の表示形態によって、前記複数のユーザ間のコミュニケーション機能を提供する
ことを特徴とする請求項１から請求項７のうちいずれか一項に記載のアプリケーション開発環境提供システム。
【請求項９】
ネットワークを介してアプリケーションプログラムの開発環境を提供するアプリケーション開発環境提供方法であって、
プログラム開発部が、前記開発環境に接続された端末からの入力に基づいてアプリケーションプログラムを生成し、生成された前記アプリケーションプログラムを視覚的に表示するプログラム開発ステップと、
コミュニケーション部が、前記開発環境を利用する複数のユーザ間のコミュニケーション機能を提供するコミュニケーションステップであって、前記プログラム開発ステップにおいて生成された前記アプリケーションプログラムの一部または全部を、指定された端末において利用可能に複製させ、視覚的に表示させるコミュニケーションステップと、
を有することを特徴とするアプリケーション開発環境提供方法。
【請求項１０】
ネットワークを介してアプリケーションプログラムの開発環境を提供するコンピュータに、
前記開発環境に接続された端末からの入力に基づいてアプリケーションプログラムを生成し、生成された前記アプリケーションプログラムを視覚的に表示するプログラム開発ステップと、
前記開発環境を利用する複数のユーザ間のコミュニケーションを行うコミュニケーションステップであって、前記プログラム開発ステップにおいて生成された前記アプリケーションプログラムの一部または全部を、指定された端末において利用可能に複製させ、視覚的に表示させるコミュニケーションステップと、
を実行させるためのアプリケーション開発環境提供プログラム。
【請求項１１】
ネットワークを介して提供されるアプリケーションプログラムの開発環境に通信接続された端末装置において、
前記端末装置からの入力に基づいて前記開発環境を介して生成された前記アプリケーションプログラムを視覚的に表示するプログラム開発表示部と、
前記開発環境を利用する複数のユーザ間におけるコミュニケーション機能を提供するコミュニケーション表示部であって、第１のユーザが利用する前記開発環境で生成された前記アプリケーションプログラムの一部または全部を、第２のユーザが利用する前記開発環境において視覚的に表示させるコミュニケーション表示部と、
を有することを特徴とする端末装置。
【請求項１２】
前記コミュニケーション表示部は、前記プログラム開発表示部を介したユーザの操作に基づいて選択された前記アプリケーションプログラムの選択領域を示す選択領域情報に基づいて前記アプリケーションプログラムの一部を視覚的に表示させる
ことを特徴とする請求項１１に記載の端末装置。
【請求項１３】
前記コミュニケーション表示部は、前記プログラム開発表示部を介して設定されたパラメータ情報を含んで、前記アプリケーションプログラムの一部または全部を視覚的に表示させることを特徴とする請求項１１または請求項１２に記載の端末装置。
【請求項１４】
前記プログラム開発表示部は、前記コミュニケーション表示部によって表示された前記アプリケーションプログラムの一部または全部を視覚的に表示する
ことを特徴とする請求項１１から請求項１３のうちいずれか一項に記載の端末装置。
【請求項１５】
前記プログラム開発表示部は、表示された前記アプリケーションプログラムが前記端末装置からの入力に基づいて更新されると、更新後のアプリケーションプログラムを表示する
ことを特徴とする請求項１４に記載の端末装置。
【請求項１６】
前記プログラム開発表示部は、入力、演算、または出力を含む開発パーツを示す情報である開発パーツ情報と、前記開発パーツの配置を示す情報であるレイアウト情報と、前記開発パーツ間の論理的な接続を示す情報である結線情報と、前記開発パーツに対して設定されたパラメータ値を示すパラメータ情報のうち少なくとも１つの情報に基づいて、前記アプリケーションプログラムを視覚的に表示する
ことを特徴とする請求項１１から請求項１５のうちいずれか一項に記載の端末装置。
【請求項１７】
前記コミュニケーション表示部は、前記プログラム開発表示部によって表示された前記アプリケーションプログラムの一部または全部を、ユーザによるドラッグアンドドロップの操作によって前記プログラム開発表示部から前記コミュニケーション表示部へ視覚的に移動させることにより、指定された前記端末装置において前記アプリケーションプログラムの一部または全部を視覚的に表示させる
ことを特徴とする請求項１１から請求項１６のうちいずれか一項に記載の端末装置。
【請求項１８】
前記コミュニケーション表示部は、チャット形式の表示形態によって、前記複数のユーザ間のコミュニケーション内容を表示する
ことを特徴とする請求項１１から請求項１７のうちいずれか一項に記載の端末装置。
【請求項１９】
ネットワークを介して提供されるアプリケーションプログラムの開発環境に通信接続された端末装置におけるアプリケーション表示方法において、
プログラム開発表示部が、前記端末装置からの入力に基づいて前記開発環境を介して生成された前記アプリケーションプログラムを視覚的に表示するプログラム開発表示ステップと、
コミュニケーション表示部が、前記開発環境を利用する複数のユーザ間におけるコミュニケーション機能を提供するコミュニケーション表示ステップであって、第１のユーザが利用する前記開発環境で生成された前記アプリケーションプログラムの一部または全部を、第２のユーザが利用する前記開発環境において視覚的に表示させるコミュニケーション表示ステップと、
を有することを特徴とするアプリケーション表示方法。
【請求項２０】
ネットワークを介して提供されるアプリケーションプログラムの開発環境に通信接続された端末装置のコンピュータに、
前記端末装置からの入力に基づいて前記開発環境を介して生成された前記アプリケーションプログラムを視覚的に表示するプログラム開発表示ステップと、
前記開発環境を利用する複数のユーザ間におけるコミュニケーション機能を提供するコミュニケーション表示ステップであって、第１のユーザが利用する前記開発環境で生成された前記アプリケーションプログラムの一部または全部を、第２のユーザが利用する前記開発環境において視覚的に表示させるコミュニケーション表示ステップと、
を実行させるためのアプリケーション表示プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーション開発環境提供システム、アプリケーション開発環境提供方法、アプリケーション開発環境提供プログラム、端末装置、アプリケーション表示方法、およびアプリケーション表示プログラムに関する。
【背景技術】
【０００２】
従来から、プラントや工場等においては、フィールド機器と呼ばれる現場機器（測定器、操作器）と、これらを制御する制御装置とが通信手段を介して接続された分散制御システム（ＤＣＳ：Distributed Control System）が構築されており、高度な自動操業が実現されている。このような高度な自動操業が実現されるプラントでは、分散制御システム以外に、製造実行システム（ＭＥＳ：Manufacturing Execution System）、プラント情報管理システム（ＰＩＭＳ：Plant Information Management System）、基幹業務システム（ＥＲＰ：Enterprise Resource Planning）等の種々のシステム（エンジニアリングシステム）が構築されることが多い。
従来、これらのエンジニアリングシステムは、例えばＰＬＣ（Programmable Logic Controller）、ＦＡ（Factory Automation）コンピュータ、汎用デスクトップコンピュータ、サーバ装置等のプラントに設置された装置を用いて実現されるのが殆どであった。近年においては、通信技術の進展によって、これらエンジニアリングシステムの一部が、ネットワークを介したクラウドコンピューティングによって実現されている。なお、ここでクラウドコンピューティングとは、例えば、米国国立標準技術研究所が推奨する定義（http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-145.pdf、およびhttps://www.ipa.go.jp/files/000025366.pdf）を含むものでもよい。
以下の特許文献１には、工業自動化及び生産システム用のクラウドコンピューティングが開示されている。また、以下の特許文献２には、クラウドコンピューティング環境において用いられるアプリケーションプログラムを開発するための開発環境を、クラウドコンピューティングによって提供する技術の一例が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１２−５２３０３８号公報
【特許文献２】特許第５７９２８９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上述した特許文献２等に開示された開発環境を提供するシステムは、さまざまな企業（テナント）に利用される。例えば、プラントで実現されるエンジニアリングシステムの開発が行われる場合には、顧客（例えば、発注者）、エンジニアリング会社（例えば、受注者）、及びサードベンダ（第三者）によって利用される。
このような、様々な関係企業によって利用される、開発環境を提供するシステムにおいては、当該システムのユーザであるアプリケーション開発者が、アプリケーションの共同開発をするために開発中のアプリケーションプログラムを他の企業の開発者と共有したり、顧客企業に提供したアプリケーションの保守を行うために顧客企業によって設定されたパラメータ値等の設定情報も含めてアプリケーションプログラムを顧客から取得したりするようなことをしたい場合がある。
【０００５】
従来の開発環境を提供するシステムにおいては、当該システムによって開発されたアプリケーションプログラムを他のユーザと共有する場合には、アプリケーションプログラムの開発環境を提供するシステムとは異なる他のシステムを別途使用して、アプリケーションプログラムを送受信し、アプリケーションプログラムを共有する必要がある。
また、この場合、例えば、アプリケーションプログラムの特定の範囲のみを指定して、アプリケーションプログラムの一部を部分的に提供するような、柔軟なアプリケーションプログラムの共有を行うことは難しいという課題がある。また、アプリケーションプログラムを開発するためのシステムと、当該アプリケーションプログラムを他のユーザと共有するためのシステムとが異なることにより、ユーザ間のコミュニケーション効率が低下することがあるという課題がある。
【０００６】
本発明は上記事情に鑑みてなされたものであり、クラウドコンピューティング環境において用いられるアプリケーションプログラムの効率的な開発および共有を実現することが可能なアプリケーション開発環境提供システム、アプリケーション開発環境提供方法、アプリケーション開発環境提供プログラム、端末装置、アプリケーション表示方法、およびアプリケーション表示プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
（１）本発明は上記の課題を解決するためになされたものであり、本発明の一態様としては、ネットワークを介してアプリケーションプログラムの開発環境を提供するアプリケーション開発環境提供システムにおいて、前記開発環境に接続された端末からの入力に基づいてアプリケーションプログラムを生成し、生成された前記アプリケーションプログラムを視覚的に表示するプログラム開発部と、前記開発環境を利用する複数のユーザ間におけるコミュニケーション機能を提供するコミュニケーション部であって、第１のユーザが利用する前記開発環境の前記プログラム開発部によって生成された前記アプリケーションプログラムの一部または全部を、第２のユーザが利用する前記開発環境において利用可能に複製させ、視覚的に表示させるコミュニケーション部と、を有することを特徴とするアプリケーション開発環境提供システムである。
【０００８】
（２）また、本発明の一態様としては、前記コミュニケーション部は、前記プログラム開発部によってユーザの操作に基づいて選択された前記アプリケーションプログラムの選択領域を示す選択領域情報に基づいて前記アプリケーションプログラムの一部を利用可能に複製させ、視覚的に表示させることを特徴とする（１）に記載のアプリケーション開発環境提供システムである。
【０００９】
（３）また、本発明の一態様としては、前記コミュニケーション部は、前記プログラム開発部によって設定されたパラメータ情報を含んで、前記アプリケーションプログラムの一部または全部を利用可能に複製させることを特徴とする（１）または（２）に記載のアプリケーション開発環境提供システムである。
【００１０】
（４）また、本発明の一態様としては、前記プログラム開発部は、前記コミュニケーション部によって表示された前記アプリケーションプログラムの一部または全部を利用可能に複製し、視覚的に表示することを特徴とする（１）から（３）のうちいずれか一項に記載のアプリケーション開発環境提供システムである。
【００１１】
（５）また、本発明の一態様としては、前記プログラム開発部は、表示した前記アプリケーションプログラムを前記端末からの入力に基づいて更新することを特徴とする（４）に記載のアプリケーション開発環境提供システムである。
【００１２】
（６）また、本発明の一態様としては、前記プログラム開発部は、入力、演算、または出力を含む開発パーツを示す情報である開発パーツ情報と、前記開発パーツの配置を示す情報であるレイアウト情報と、前記開発パーツ間の論理的な接続を示す情報である結線情報と、前記開発パーツに対して設定されたパラメータ値を示すパラメータ情報のうち少なくとも１つの情報に基づいて、前記アプリケーションプログラムを利用可能に複製し、視覚的に表示することを特徴とする（１）から（５）のうちいずれか一項に記載のアプリケーション開発環境提供システムである。
【００１３】
（７）また、本発明の一態様としては、前記コミュニケーション部は、前記プログラム開発部によって生成された前記アプリケーションプログラムの一部または全部を、ユーザによるドラッグアンドドロップの操作によって前記プログラム開発部から前記コミュニケーション部へ視覚的に移動させることにより、指定された前記端末において前記アプリケーションプログラムの一部または全部を利用可能に複製し、視覚的に表示させることを特徴とする（１）から（６）のうちいずれか一項に記載のアプリケーション開発環境提供システムである。
【００１４】
（８）また、本発明の一態様としては、前記コミュニケーション部は、チャット形式の表示形態によって、前記複数のユーザ間のコミュニケーション機能を提供することを特徴とする（１）から（７）のうちいずれか一項に記載のアプリケーション開発環境提供システムである。
【００１５】
（９）また、本発明の一態様としては、ネットワークを介してアプリケーションプログラムの開発環境を提供するアプリケーション開発環境提供方法であって、プログラム開発部が、前記開発環境に接続された端末からの入力に基づいてアプリケーションプログラムを生成し、生成された前記アプリケーションプログラムを視覚的に表示するプログラム開発ステップと、コミュニケーション部が、前記開発環境を利用する複数のユーザ間のコミュニケーション機能を提供するコミュニケーションステップであって、前記プログラム開発ステップにおいて生成された前記アプリケーションプログラムの一部または全部を、指定された端末において利用可能に複製させ、視覚的に表示させるコミュニケーションステップと、を有することを特徴とするアプリケーション開発環境提供方法である。
【００１６】
（１０）また、本発明の一態様としては、ネットワークを介してアプリケーションプログラムの開発環境を提供するコンピュータに、前記開発環境に接続された端末からの入力に基づいてアプリケーションプログラムを生成し、生成された前記アプリケーションプログラムを視覚的に表示するプログラム開発ステップと、前記開発環境を利用する複数のユーザ間のコミュニケーションを行うコミュニケーションステップであって、前記プログラム開発ステップにおいて生成された前記アプリケーションプログラムの一部または全部を、指定された端末において利用可能に複製させ、視覚的に表示させるコミュニケーションステップと、を実行させるためのアプリケーション開発環境提供プログラムである。
【００１７】
（１１）また、本発明の一態様としては、ネットワークを介して提供されるアプリケーションプログラムの開発環境に通信接続された端末装置において、前記端末装置からの入力に基づいて前期開発環境を介して生成された前記アプリケーションプログラムを視覚的に表示するプログラム開発表示部と、前記開発環境を利用する複数のユーザ間におけるコミュニケーション機能を提供するコミュニケーション表示部であって、第１のユーザが利用する前記開発環境で生成された前記アプリケーションプログラムの一部または全部を、第２のユーザが利用する前記開発環境において視覚的に表示させるコミュニケーション表示部と、を有することを特徴とする端末装置である。
【００１８】
（１２）また、本発明の一態様としては、前記コミュニケーション表示部は、前記プログラム開発表示部を介したユーザの操作に基づいて選択された前記アプリケーションプログラムの選択領域を示す選択領域情報に基づいて前記アプリケーションプログラムの一部を視覚的に表示させることを特徴とする（１１）に記載の端末装置である。
【００１９】
（１３）また、本発明の一態様としては、前記コミュニケーション表示部は、前記プログラム開発表示部を介して設定されたパラメータ情報を含んで、前記アプリケーションプログラムの一部または全部を視覚的に表示させることを特徴とする（１１）または（１２）に記載の端末装置である。
【００２０】
（１４）また、本発明の一態様としては、前記プログラム開発表示部は、前記コミュニケーション表示部によって表示された前記アプリケーションプログラムの一部または全部を視覚的に表示することを特徴とする（１１）から（１３）のうちいずれか一項に記載の端末装置である。
【００２１】
（１５）また、本発明の一態様としては、前記プログラム開発表示部は、表示された前記アプリケーションプログラムが前記端末からの入力に基づいて更新されると、更新後のアプリケーションプログラムを表示することを特徴とする（１４）に記載の端末装置である。
【００２２】
（１６）また、本発明の一態様としては、前記プログラム開発表示部は、入力、演算、または出力を含む開発パーツを示す情報である開発パーツ情報と、前記開発パーツの配置を示す情報であるレイアウト情報と、前記開発パーツ間の論理的な接続を示す情報である結線情報と、前記開発パーツに対して設定されたパラメータ値を示すパラメータ情報のうち少なくとも１つの情報に基づいて、前記アプリケーションプログラムを視覚的に表示することを特徴とする（１１）から（１５）のうちいずれか一項に記載の端末装置である。
【００２３】
（１７）また、本発明の一態様としては、前記コミュニケーション表示部は、前記プログラム開発表示部によって表示された前記アプリケーションプログラムの一部または全部を、ユーザによるドラッグアンドドロップの操作によって前記プログラム開発表示部から前記コミュニケーション表示部へ視覚的に移動させることにより、指定された前記端末装置において前記アプリケーションプログラムの一部または全部を視覚的に表示させることを特徴とする（１１）から（１６）のうちいずれか一項に記載の端末装置である。
【００２４】
（１８）また、本発明の一態様としては、前記コミュニケーション表示部は、チャット形式の表示形態によって、前記複数のユーザ間のコミュニケーション内容を表示することを特徴とする（１１）から（１７）のうちいずれか一項に記載の端末装置である。
【００２５】
（１９）また、本発明の一態様としては、ネットワークを介して提供されるアプリケーションプログラムの開発環境に通信接続された端末装置におけるアプリケーション表示方法において、プログラム開発表示部が、前記端末装置からの入力に基づいて前記開発環境を介して生成された前記アプリケーションプログラムを視覚的に表示するプログラム開発表示ステップと、コミュニケーション表示部が、前記開発環境を利用する複数のユーザ間におけるコミュニケーション機能を提供するコミュニケーション表示ステップであって、第１のユーザが利用する前記開発環境で生成された前記アプリケーションプログラムの一部または全部を、第２のユーザが利用する前記開発環境において視覚的に表示させるコミュニケーション表示ステップと、を有することを特徴とするアプリケーション表示方法である。
【００２６】
（２０）また、本発明の一態様としては、ネットワークを介して提供されるアプリケーションプログラムの開発環境に通信接続された端末装置のコンピュータに、前記端末装置からの入力に基づいて前記開発環境を介して生成された前記アプリケーションプログラムを視覚的に表示するプログラム開発表示ステップと、前記開発環境を利用する複数のユーザ間におけるコミュニケーション機能を提供するコミュニケーション表示ステップであって、第１のユーザが利用する前記開発環境で生成された前記アプリケーションプログラムの一部または全部を、第２のユーザが利用する前記開発環境において視覚的に表示させるコミュニケーション表示ステップと、を実行させるためのアプリケーション表示プログラムである。
【発明の効果】
【００２７】
本発明によれば、アプリケーションプログラムの効率的な開発および共有を実現することができる。
【図面の簡単な説明】
【００２８】
【図１】本実施形態に係るアプリケーション開発環境提供システムによるアプリケーション開発の一例を示す概要図である。
【図２】本実施形態に係るアプリケーション開発環境提供システムによるアプリケーション開発の一例を示す概要図である。
【図３】本実施形態に係るアプリケーション開発環境提供システムによるアプリケーション開発の一例を示す概要図である。
【図４】本実施形態に係るアプリケーション開発環境提供システムによるアプリケーション開発の一例を示す概要図である。
【図５】本実施形態に係るアプリケーション開発環境提供システムによるアプリケーション開発の一例を示す概要図である。
【図６】本実施形態に係るアプリケーション開発環境提供システムによるアプリケーション開発の一例を示す概要図である。
【図７】本実施形態に係るアプリケーション開発環境提供システムによるアプリケーション開発の一例を示す概要図である。
【図８】本発明の実施形態に係るアプリケーション開発環境提供システムのシステム概要を示す概略図である。
【図９】本発明の実施形態に係るアプリケーション開発環境提供システムに実装されるCo-innovationスペースの機能構成図である。
【図１０】本発明の実施形態に係るアプリケーション開発環境提供システムのアプリケーションボードによる表示の一例を示す図である。
【図１１】本発明の実施形態に係るアプリケーション開発環境提供システムのアプリケーションボードによる表示の一例を示す図である。
【図１２】本発明の実施形態に係るアプリケーション開発環境提供システムのアプリケーションボードによる表示の一例を示す図である。
【図１３】本発明の実施形態に係るアプリケーション開発環境提供システムのアプリケーションボードによる表示の一例を示す図である。
【図１４】本発明の実施形態に係るアプリケーション開発環境提供システムに実装されるCo-innovationスペースの動作の一例を示すフローチャートである。
【図１５】本発明の実施形態に係るアプリケーション開発環境提供システムに実装されるCo-innovationスペースの動作の一例を示すフローチャートである。
【発明を実施するための形態】
【００２９】
［実施形態］
本発明は、クラウドコンピューティング環境において、通信ネットワークに接続されるセンサー、デバイス、およびシステム等から送信されるデータを入力値として演算処理等を行う、ＩｏＴ（Internet Of Things：モノのインターネット）またはＩＩｏＴ（Industrial Internet Of Things：産業用ＩｏＴ）の基本ソフトウェア、アプリケーション、およびソリューション等のプログラム開発をするための開発環境を提供するためのアーキテクチャ、および当該アーキテクチャを実現するためのシステム（以下、アプリケーション開発環境提供システムと称する）に関するものである。
【００３０】
なお、以下、基本ソフトウェア、アプリケーション、およびソリューション等を総称してアプリケーションと称し、基本ソフトウェア、アプリケーション、およびソリューション等のプログラムを総称して、アプリケーションプログラムと称する。
【００３１】
なお、以下の説明において、アプリケーション開発環境とは、クラウドコンピューティング環境において、通信ネットワークに接続されるセンサー、デバイス、およびシステム等から送信されるデータを入力値として演算処理等を行う、ＩｏＴまたはＩＩｏＴの基本ソフトウェア、アプリケーション、およびソリューション等のプログラム開発をするための開発環境のことをいう。
また、以下の説明において、アプリケーション実行環境とは、クラウドコンピューティング環境において、通信ネットワークに接続されるセンサー、デバイス、およびシステム等から送信されるデータを入力値として演算処理等を行う、ＩｏＴまたはＩＩｏＴの基本ソフトウェア、アプリケーション、およびソリューション等のプログラムを実行するための環境のことをいう。
【００３２】
（アプリケーション開発の全体の流れ）
後述する本実施形態に係るアプリケーション開発環境提供システムについての機能構成および動作等の説明を分かり易くするため、まず初めに、当該アプリケーション開発環境提供システムを利用したアプリケーション開発の全体の流れを、具体的な実施例を示しながら説明する。
図1乃至図７は、本実施形態に係るアプリケーション開発環境提供システムによるアプリケーション開発の一例を示す概要図である。
【００３３】
以下に説明する実施例では、図１に示すように、配管から排気されるガスの温度を調整するため、能力の異なる６台の冷凍機の運転を制御する場合について説明する。配管における排気ガス温度（出力１）を一定以下に保つため、吸気ガス温度（入力１）の変動に応じて、６台の冷凍機のそれぞれのスイッチのオン／オフ（入力７〜８）を適宜切り替えることにより、消費電力（出力２）を最小化することが目的である。
従来、オペレータの勘や経験によって各冷凍機のスイッチのオン（ＯＮ）／オフ（ＯＦＦ）を切り替えていたが、本実施形態に係るアプリケーション開発環境提供システムによって、効率の良い冷凍機の運転制御パターンを見つけ出し、当該運転制御パターンの自動化アルゴリズムが組み込まれたアプリケーションを開発する。
【００３４】
アプリケーション開発環境提供システムを利用してアプリケーションを開発する開発者は、当該アプリケーション開発環境提供システム提供するアプリケーションの設計画面において、まず、多入力２出力の制御を行うための分析エレメントを示す開発パーツを配置する。当該分析エレメントは、図２において「Ｎｘ２」と記載された開発パーツである。
【００３５】
次に、開発者は、ヒストリアン（履歴情報や実績情報が格納されたデータベース）を開き、「吸気ガス温度」、「冷凍機１  ＯＮ／ＯＦＦ」、「冷凍機２  ＯＮ／ＯＦＦ」、「冷凍機３  ＯＮ／ＯＦＦ」、「冷凍機４  ＯＮ／ＯＦＦ」、「冷凍機５  ＯＮ／ＯＦＦ」、および「冷凍機６  ＯＮ／ＯＦＦ」の７つの入力データ項目を示す開発パーツを設計画面に配置し、図２に示すように、上記において接続した「Ｎｘ２」の分析エレメントとそれぞれ接続する。
【００３６】
次に、開発者は、ヒストリアンから、「排気ガス温度」、および「消費電力」の２つの出力データ項目を示す開発パーツを設計画面に配置し、図２に示すように、上記において接続した「Ｎｘ２」の分析エレメントとそれぞれ接続する。そして、開発者は、分析に用いる「排気ガス温度」、および「消費電力」の過去データとして、過去２年間分の過去データを指定する。
【００３７】
開発者が、設計画面において、「Ｎｘ２」の分析エレメントの詳細画面を表示させると、例えば、図３（Ａ）および図３（Ｂ）に示すような線グラフが表示される。図３（Ａ）に示す線グラフは、縦軸が排気ガス温度を表し、横軸が過去の時間軸を表すグラフである。また、図３（Ｂ）に示す線グラフは、縦軸が消費電力を表し、横軸が過去の時間軸を表すグラフである。
【００３８】
図３（Ａ）に示すグラフにおいて、一時的に排気ガス温度が高くなった（異常値となっている）時間帯が存在したことが示されており、当該時間帯に相当する箇所が帯状に表示されている。開発者は、顧客（例えば、配管における排気ガス温度を制御する企業であって、開発者に対しアプリケーションの開発を依頼した企業）に対して問い合わせを行う。アプリケーション開発環境提供システムには、顧客とのコミュニケーション手段として、チャット機能（チャット形式の表示形態によるコミュニケーション機能）、電子メール送受信機能、および通話機能等を備えており、開発者はまず、通話機能によって顧客対して問い合わせを行う。
【００３９】
顧客との通話により、開発者は、一時的に排気ガス温度が高くなった（異常値となっている）時間帯には設備更新工事が行われていたことを知り、顧客より当該時間帯のデータは分析対象外にするよう指示を受ける。開発者は、アプリケーション開発環境提供システムのチャット機能を使って、分析対象外にする正確な時間帯を示すデータを顧客から取得する。そして、開発者は、分析除外範囲設定を行う画面を設計画面に表示させ、上記の分析対象外にする正確な時間帯を示すデータを入力し、分析除外範囲として設定する。そして、開発者は、チャット機能によって顧客から取得したコメントを入力して、分析除外範囲設定を行う画面における上記設定を行った箇所（画面領域）に、当該コメントを添付する。
【００４０】
次に、開発者は、設計画面において、「冷凍機１  ＯＮ／ＯＦＦ」、「冷凍機２  ＯＮ／ＯＦＦ」、「冷凍機３  ＯＮ／ＯＦＦ」、「冷凍機４  ＯＮ／ＯＦＦ」、「冷凍機５  ＯＮ／ＯＦＦ」、および「冷凍機６  ＯＮ／ＯＦＦ」の６つの入力データ項目を１つにまとめて、図４に示すような「冷凍機１−６  ＯＮ／ＯＦＦ」というデータ入力項目に切り替える。
【００４１】
そして、開発者は、アプリケーション開発環境提供システムの分析画面において、ヒストリアンから提供された過去２年分のデータを用いて、６つの冷凍機による冷却性能を分析する。冷却性能Ｌｎは、例えば、Ｌｎ＝排気温度／吸気温度という計算式によって求められる。開発者は、既知の値である６つの冷凍機全体の性能を表す「冷凍機性能」と上記において求めた冷却性能Ｌｎとによって重回帰分析を行う。すると、分析画面には、例えば、図５（Ａ）のような分布図が表示される。これにより、開発者は、測定点はほぼ直線状に並んでいることから、本来の冷凍機の冷凍機性能と実際の冷却性能とが大きくは乖離していないことを確認する。
【００４２】
次に、開発者は、６つの冷凍機それぞれの実際の性能を示す性能係数（例えば、Ｌｎなど）を算出する。例えば、図５（Ｂ）に示すような冷凍機ごとの性能係数の値が算出される。当該性能係数により、例えば、開発者は、特定の冷凍機の実際の性能が本来の性能よりも低下していることを認識する。開発者は、アプリケーション開発環境提供システムの電子メール送受信機能によって、顧客に対し性能が低下している冷凍機についての報告を行う。
【００４３】
次に、開発者は、上記の分析結果を踏まえて、運転制御パターンの自動化アルゴリズムが組み込まれたアプリケーションを開発する。まず、開発者は、アプリケーション開発環境提供システムの設計画面において、図４に示すようにロジックモデルを示す開発パーツを配置し、各入出力データ項目を示す開発パーツと接続する。そして、開発者は、ロジックモデル作成画面を表示させる。
【００４４】
当該ロジックモデル作成画面には、例えば、図６に示すようなロジックモデル（アルゴリズム）が表示される。当該ロジックモデルには、入出力データ項目のほか、上記において算出された各種係数等も表示される。開発者は、ロジックモデル作成画面において、アプリケーションが行う処理のロジックを示すロジックモデルを完成させる。そして、開発者は、作成したロジックモデルに対し、ヒストリアンから取得する過去データを用いてシミュレーションを行う。当該シミュレーションの結果により、例えば、開発者は、作成したロジックモデルを用いて冷凍機の運転を制御することによって削減される消費電力等を認識することができる。
【００４５】
次に、開発者は、上記の手順によって開発した、排気ガス温度を調整する６台の冷凍機の運転を制御するアプリケーションの稼働状況を監視するための画面であるＫＰＩダッシュボード画面を、アプリケーション開発環境提供システムにおいて作成する。ＫＰＩダッシュボード画面は、例えば、図７に示すような画面である。図示するように、ＫＰＩダッシュボード画面は、排気ガス温度の状況を、目標値からの許容振れ幅がプラスマイナス３％である範囲を示す帯状の表示と、実績値の線グラフによってリアルタイムに表示する。また、図示するように、ＫＰＩダッシュボード画面は、吸気温度、および６台の冷凍機のスイッチのオン／オフの状態等を参考値としてリアルタイムに表示する。そして、例えば、ＫＰＩダッシュボードは、冷凍機の冷却性能が低下したことを検知した場合には、アラームを表示する。なお、ＫＰＩダッシュボードは、上記において開発者が開発したアプリケーションの１機能として実装される。
【００４６】
以上、説明した実施例のような流れによって、開発者は、アプリケーション開発環境提供システムを利用してアプリケーション開発を行い、開発したアプリケーションを顧客に対して提供する。
【００４７】
なお、本発明のアプリケーション開発環境提供システムは、アプリケーションプログラムを構築する構築機能部（図示せず）を有するものでもよい。この構築機能部は、開発パーツとして、例えば、プラント運転で行う各作業を工程部品アイコン（図示せず）として用意しておき、この工程部品アイコンを所望のロジック構成、プログラム構成、または、運転条件や手順等に従って画面上に並べ、各アイコンの接続条件を定義することによりロジック構成図や作業手順図を構築するとともに、作業手順図のアプリケーションプログラムを作成するものであってもよい。この構築機能部は、ユーザ（運転員）が簡単かつ直感的にアプリケーションプログラムを構築できるように構成されている。以下、構成および動作を説明する。
【００４８】
構築機能部は、ユーザによるアイコンの新規作成も可能である。工程部品アイコン（図示せず）は、ロジック構成、デバイス属性、または作業内容を絵で表わしている。工程部品アイコンには、アイコンの処理を行うための既製のプログラムが用意されている。工程部品アイコンと既製のプログラムは関連付けられている。
【００４９】
構築機能部は、画面上で工程部品アイコンを配列し、アイコン同士を接続して、接続時にアイコン間における入出力の条件定義を行い、ロジックに相当するアイコンには所望の動作を行うようにパラメータ設定を行うことによってロジック構成図や作業手順図を構築したときに、これに伴ってアイコンに付けた順番の情報、アイコンの接続情報等を生成する。
構築機能部は、生成した情報と、アイコンと関連付けた既製のプログラムにより、作業手順図に対応したアプリケーションプログラムを構成する。
【００５０】
なお、本発明のアプリケーション開発環境提供システムは、構築機能部で作成したアプリケーションプログラムを実行する（例えば、プラント運転を行う）運転機能部（図示せず）を有するものであっても良い。
本発明のアプリケーション開発環境提供システムによれば、運転のスタート及びストップは、工程部品アイコン単位、工程ユニット単位、業務フロー単位でマウス操作によって簡単な操作で行うことができる。また、本発明のアプリケーション開発環境提供システムによれば、運転中は、必要に応じてアラーム、ガイダンス等の各種メッセージを表示させることができ、安全かつ確実に運転を進めることができる。
【００５１】
なお、構築機能部は、以下に記載する、アイコン用記憶手段、アイコン接続手段、情報生成手段、運転実行手段から構成されるものでもよい。
【００５２】
アイコン用記憶手段は、プラント運転で行う各作業を絵で表わしたアイコンとこのアイコンの作業を実行する既製のプログラムとを関連付けて用意している。アイコン接続手段は、アイコン用記憶手段からアイコンを選択し、選択したアイコンを表示手段の画面上で接続し、プラント運転のロジック構成や作業手順を示したロジック構成図や作業手順図を画面上に作成する。
【００５３】
情報生成手段は、アイコン接続手段で作成したロジック構成または作業手順に基づくアプリケーションプログラムを実行するための情報を生成する。生成する情報としては、例えば、アイコンに付けた順番の情報、アイコンの接続情報等がある。情報生成手段によって生成された情報（実行情報）は記憶手段に落とし込まれる。
運転実行手段は、情報生成手段によって生成された情報及び作業手順図の中にあるアイコンと関連付けたプログラムをもとに、画面表示したプログラム構成、または作業手順に従って実行する（たとえば、プラント運転を実行しプラントは運転実行手段により稼動される）。
【００５４】
入力手段は、例えばマウス、キーボード等で、プラント運転に必要な入力操作を行うために設けられている。画面上の画面表示したプログラム構成、または、作業手順図にあるアイコンが入力手段によって指定されると、運転実行手段が指定されたアイコンに対応する作業を実行するような構成であってもよい。これにより、画面操作で直接にプログラムを実行することが可能になる。
【００５５】
なお、アイコン用記憶手段には、例外処理を示すアイコンとこのアイコンの処理を実行する既製のプログラムとを関連付けて用意しているものでもよい。なお、アイコン用記憶手段には、通常処理を示すアイコンとそのプログラムも用意されている。この場合、アイコン接続手段は、例外処理が発生したときに、アイコン用記憶手段に用意したアイコンを画面上で接続し、例外処理の作業手順図を画面上に作成する。
【００５６】
情報生成手段は、アイコン接続手段によって作成された例外処理の作業手順を実行するための情報を生成するものでもよい。情報生成手段で生成した情報（例外処理実行情報）は記憶手段に記憶される。
例外処理実行手段は、情報生成手段によって生成された例外処理実行情報及び作業手順図の中にあるアイコンと関連付けたプログラムをもとに、例外処理の作業手順図に従って例外処理を実行する（たとえばラント運転を実行する）。また、例外処理判断手段は、例外処理の発生の有無を判断するものでもよい。
【００５７】
（実施形態の詳細）
以下に、本発明の実施形態の詳細について図面を参照しながら説明する。
図８は、本発明の実施形態に係るアプリケーション開発環境提供システム１のシステム概要を示す概略図である。図示するように、アプリケーション開発環境提供システム１は、クラウドコンピューティング環境において、デバイスノード、スパイナルノード、インテリジェンスノード、およびソーシャリゼーションノードの４階層の階層構造によって構成されるシステムである。
【００５８】
デバイスノードは、各種センサー、各種デバイス、および各種システムによって構成される。各種センサーとは、例えば、温湿度センサー、圧力センサー、および流量センサー等である。また、各種デバイスとは、例えば、制御装置であるＰＬＣ（プログラマブルロジックコントローラ）、車両内のＣＡＮ−ＢＵＳ（Controller Area Network - BUS：バス型の制御ネットワーク）に接続されたＯＢＤ（On-Board Diagnostics：自己故障診断）デバイス、ＫＰＩ（Key Performance Indicator：重要業績評価指標）モニター、特定のセンサーの現在値を表示する表示器、ランプ、ブザー、バルブ、およびロボットアーム等である。また、各種システムとは、例えば、ＤＣＳ、ドローン管制システム、侵入検知システム、入室バッジリーダーが接続されたセキュリティシステム、および照明やドアロックやエレベーターやスプリンクラーなどが接続されたビルディング・オートメーション・システム等である。
【００５９】
図８に例示するアプリケーション開発環境提供システム１においては、デバイスノードの階層には、センサーによって構成されるデバイスノード１３−１およびデバイスノード１３−２と、アクチュエータによって構成されるデバイスノード１４とが含まれる。以下、デバイスノード１３−１とデバイスノード１３−２とデバイスノード１４とを特に区別して説明する必要がない場合には、総称してデバイスノード１３−１４と称する。
【００６０】
なお、本実施形態に係るアプリケーション開発環境提供システム１のデバイスノード１３−１４は、説明を簡略化するため、２つのセンサーと１つのデバイスとによって構成されるものとしたが、これに限られない。デバイスノード１３−１４は、１つ以上のセンサー、デバイス、およびシステム等によって任意に構成可能であり、一般的には、１つのスパイナルノードに対して多数のセンサー、デバイス、およびシステム等が収容されている場合が多い。
【００６１】
デバイスノード１３−１４を構成するセンサー、デバイス、およびシステム等には、データを送信するもの、データを受信して表示するもの、およびデータ受信してアクションを起こすもの等がある。また、当該センサー、デバイス、およびシステム等は、例えば、プラグ・アンド・プレイに対応した装置である。また、当該センサー、デバイス、およびシステム等は、例えば、複数のアプリケーションと同時に通信を行う機能を有する装置である。
【００６２】
デバイスノード１３−１４には、大きく分けて、スパイナルノードを構成する装置に通信接続する装置と、インテリジェンスノードを構成する装置に通信接続する装置とがある。
スパイナルノードを構成する装置に通信接続するデバイスノード１３−１４は、例えば、リアルタイム性を必要とする装置、データの遅延（データ通信の遅れ）や揺らぎ（データ通信速度のばらつき）等が許されないアプリケーションに使用される装置、および大量のデータを生成するため直接インテリジェンスノードに接続すると通信帯域を逼迫させてしまう恐れがある装置等である。
一方、インテリジェンスノードを構成する装置に通信接続するデバイスノード１３−１４は、例えば、遅延や揺らぎ等に影響されないような用途で使用される装置、および携帯電話網や衛星回線等の無線通信網を経由させなければ収容することが難しい遠隔地に設置される装置および移動される装置等がある。
【００６３】
デバイスノード１３−１およびデバイスノード１４はスパイナルノードを構成する装置と、また、デバイスノード１３−２はインテリジェンスノードを構成する装置と、イーサネット（登録商標）などのネットワークインターフェース、および複数のルーターやスイッチを介してインターネット経由で接続されている。
デバイスノード１３−１４は、インターネットプロトコル（ＩＰ）によって、スパイナルノードを構成する装置またはインテリジェンスノードを構成する装置と通信接続する。
【００６４】
スパイナルノードは、サーバ装置によって構成され、ゲートウェイとして機能する。図８に例示するアプリケーション開発環境提供システム１においては、スパイナルノードの階層は、スパイナルノード１２−１と、スパイナルノード１２−２とを含んで構成される。以下、スパイナルノード１２−１とスパイナルノード１２−２とを特に区別して説明する必要がない場合には、総称してスパイナルノード１２と称する。
【００６５】
スパイナルノード１２を構成するサーバ装置（以下、単にスパイナルノード１２とも称する）は、クラウドコンピューティング環境において、少なくとも１つのデバイスノード１３−１４を収容する（すなわち、論理的に接続、管理、またはデータの入出力を行う）サーバ装置である。なお、スパイナルノード１２−２も、本来、スパイナルノード１２−１と同様に少なくとも１つのデバイスノード１３−１４を収容するものであるが、説明の簡略化のため、図８においては記載を省略する。
【００６６】
スパイナルノード１２は、一般的には、例えば、ゲートウェイサーバ、フォグコンピュータ、またはエッジコンピュータ等と呼ばれる装置である。スパイナルノード１２は、クラウドコンピューティング環境におけるサーバ装置（本実施形態においては、ソーシャリゼーションノード１０およびインテリジェンスノード１１）と、デバイスノード１３−１４を構成するセンサー、デバイス、およびシステムとの間に設置される。
【００６７】
スパイナルノード１２は、例えば、インテリジェンスノード１１が通信することができない通信プロトコルによって通信を行うようなデバイスノード１３−１４からデータを受信して、受信したデータをインテリジェンスノード１１が通信可能な通信プロトコルによってインテリジェンスノード１１へデータ送信することにより、データの転送を行う。例えば、スパイナルノード１２は、インターネットプロトコルによる通信を行うことができないアナログセンサー等から送信された信号を、インターネットプロトコル以外の通信プロトコルによって受信し、受信した信号をデジタル変換して正規化した後、インターネットプロトコルによる通信によってインテリジェンスノード１１を構成するサーバ装置（以下、単にインテリジェンスノード１１とも称する）へデータ送信することにより、データ転送を行う。
【００６８】
また、スパイナルノード１２は、例えば、デバイスノード１３−１４から送信されたデータを受信し、受信したデータに対して、演算、解釈、および判定等の処理を行い、処理結果をインテリジェンスノード１１へ送信する。
【００６９】
スパイナルノード１２は、例えば、デバイスノード１３−１４からデータを取得し、当該データに対して前処理を行った後、タイムスタンプ（発生時刻を表す記号）を付加してタイムシリーズデータとし、当該データを処理するロジックやアルゴリズム等をインテリジェンスノード１１から取得して、当該ロジックや当該アルゴリズム等に基づいて当該タイムシリーズデータに対する処理（加工や判断等の処理）を実行する。
また、スパイナルノード１２は、例えば、必要に応じて、またはインテリジェンスノード１１からの指示に基づいて、インテリジェンスノード１１に当該タイムシリーズデータを送信する。また、スパイナルノード１２は、当該タイムシリーズデータと当該ロジックや当該アルゴリズム等に基づいて生成されたアクションを示す制御信号を、適切なデバイスノード１３−１４に対して送信する。
【００７０】
また、スパイナルノード１２は、当該タイムシリーズデータをスパイナルノード１２に設けられたタイムシリーズデータベース（図示せず）に一時保存し、同時にスパイナルノード１２は、インテリジェンスノード１１からの要求に応じて、インテリジェンスノード１１に対して当該タイムシリーズデータを送信する。さらにスパイナルノード１２は、前記タイムシリーズデータベースに一時保存した古いデータから順に非同期的に、ヒストリアン（図示せず）に対してセキュリティを確保された通信経路を経由して送信する。なお、ヒストリアンはインテリジェンスノード１１に直接接続されているため、インテリジェンスノード１１は、ローカル環境にヒストリアンが存在するかのようにヒストリアンを参照・利用することができる。
【００７１】
なお、スパイナルノード１２が単一のハードウェアによって構成されるような場合には、スパイナルノード１２において故障や異常な動作が発生した場合に備えて、スパイナルノード１２に通信接続するデバイスノード１３−１４は、２つ以上のスパイナルノード１２に対して並行してデータを送信するようにしてもよい。デバイスノード１３−１４がインターネットプロトコルによって通信する装置である場合には、デバイスノード１３−１４が、マルチキャストやブロードキャストなどの技術を利用してデータおよび制御信号等を通信ネットワークへ送出し、複数のスパイナルノード１２が当該データおよび当該制御信号等を並行して受信するような構成により冗長化を行ってもよい。
【００７２】
ソーシャリゼーションノード１０、およびインテリジェンスノード１１は、クラウドコンピューティング環境を提供するサーバ装置およびネットワーク機器等を含んで構成される。なお、ソーシャリゼーションノード１０とインテリジェンスノード１１とは、別々の装置によって物理的に分けられているような構成であってもよいし、単一の装置の中で論理的に分けてられているような構成であってもよい。
【００７３】
ソーシャリゼーションノード１０を構成する装置（以下、単にソーシャリゼーションノード１０とも称する）は、アプリケーションを共同開発する複数の企業（以下、テナントとも称する）間、アプリケーションを提供する企業とアプリケーションを利用する企業顧客との間、および企業と個人との間において、アプリケーション開発環境やアプリケーション実行環境を共同利用できるようにするための機能を提供する。
【００７４】
インテリジェンスノード１１を構成する装置は、企業内のアプリケーションを共同開発する複数の部門やグループ等の組織（以下、サイトとも称する）の間、および複数の従業員（以下、アカウントとも称する）の間において、アプリケーション開発環境やアプリケーション実行環境を共同利用できるようにするための機能を提供する。
【００７５】
以下、ソーシャリゼーションノード１０、およびインテリジェンスノード１１によって構成される、企業間、企業と個人、および企業内のユーザ間において共同で利用可能な、本発明におけるアプリケーション開発環境およびアプリケーション実行環境等を総称して、Co-innovationスペース（共創空間）と称する。
【００７６】
ソーシャリゼーションノード１０およびインテリジェンスノード１１は、上述したようにサーバ装置において動作し、Co-innovationスペースがソーシャリゼーションノード１０およびインテリジェンスノード１１に実装される。インテリジェンスノード１１は、Co-innovationスペースの主要な機能を有する。一方、ソーシャリゼーションノード１０は、Co-innovationスペースが有する機能の中で、企業間、または企業と個人との間でアプリケーションプログラムの共有や売買、およびコミュニケーション等が行われる場合に必要となる機能を有する。
【００７７】
インテリジェンスノード１１は、インテリジェンスノード１１と通信接続する、スパイナルノード１２の管理、デバイスノード１３−１４の管理を行う。また、ユーザは、ヒューマンマシンインターフェース（ＨＭＩ）（図示せず）を通じてインテリジェンスノード１１にアクセスし、Co-innovationスペースを利用する。
【００７８】
また、インテリジェンスノード１１は、様々な外部のシステムと連携するための多様な外部インターフェースを有しており、外部のＩｏＴおよびＩＩｏＴクラウドコンピューティング環境、外部の課金システム、および外部のデータベースシステム等との連携することができる。このように、インテリジェンスノード１１が外部の様々なシステムと幅広く連携することができることによって、インテリジェンスノード１１は、様々なＩｏＴクラウドコンピューティング環境において、外部の様々なシステムと幅広く連携したCo-innovationスペースおよびCo-innovationスペース上のアプリケーションを構築することができる。
【００７９】
また、インテリジェンスノード１１が様々な外部のシステムと連携するための多様な外部インターフェースを有していることによって、インテリジェンスノード１１は、ＩｏＴおよびＩＩｏＴクラウドコンピューティング環境が提供するインターフェース群を活用することができるため、顧客企業における業務プロセスのサプライチェーン全体、およびライフサイクル全体を対象としたソリューションを開発することができる。
【００８０】
Co-innovationスペースは、クラウドコンピューティング環境における仮想の空間であり、企業（テナント）単位、または組織（サイト）単位等で区切られた、互いに安全に隔離されたアプリケーション共創のための空間である。
【００８１】
Co-innovationスペースのアーキテクチャを用いることにより、例えば、ビッグデータを用いたコンサルテーション、各種制御、アセット・マネジメント、リモートセンシング、リモートモニタリング、ＫＡＩＺＥＮ（改善）活動支援等を行うためのアプリケーションの開発、およびＭＥＳやＤＣＳ等のシステムの開発を行うことができる。
なお、Co-innovationスペースは、クラウドコンピューティング環境において実装される代わりに、ローカル環境のデータセンターのサーバ装置において実装するような構成にすることも可能である。
【００８２】
なお、上述のCo-innovationスペースのアーキテクチャは、インテリジェンスノード１１及びソーシャリゼーションノード１０を構成する１または複数の装置により提供されるものでもよい。また、このCo-innovationスペースのアーキテクチャにおける記憶領域は、インテリジェンスノード１１及びソーシャリゼーションノード１０を構成する１または複数の装置の記憶部、あるいは、複数の装置が有する記憶部の記憶領域のうちの一部を複数組み合わせて構成されるものでもよい。
【００８３】
（Co-innovationスペースの機能構成）
以下に、Co-innovationスペースの機能構成について説明する。
図９は、本発明の実施形態に係るアプリケーション開発環境提供システム１に実装されるCo-innovationスペースの機能構成図である。図示するように、インテリジェンスノード１１は、アプリケーションボード１１１と、コミュニケーションツール１１２と、ライブラリ１１３と、ストレージ１１４と、デバイス管理部１１５と、テナント管理部１１６と、サイト・アカウント管理部１１７と、アプリケーションストア１１８と、課金部１１９と、データベース部１２０を含んで構成される。
【００８４】
アプリケーションボード１１１（プログラム開発部、プログラム開発表示部）は、マルチテナント、マルチサイト、およびマルチアカウントのアプリケーション開発環境およびアプリケーション実行環境をユーザへ提供する。アプリケーションボード１１１は、コンパイラや、ユーザに対して視覚的にアプリケーションプログラムを表示させることができる表示部等の機能を有する。表示部は、Co-innovationスペースを示す画像を表示し、当該Co-innovationスペースにおいて、レイアウト情報、結線情報、パラメータ情報、および選択領域情報等に基づいて、視覚的にアプリケーションプログラムを表示する。
【００８５】
レイアウト情報とは、開発対象であるアプリケーションプログラムの処理の形態を示す情報である。例えば、レイアウト情報には、開発対象であるアプリケーションプログラムが、多入力２出力の処理を行うアプリケーションであること、あるいは多入力多出力の処理を行うアプリケーションであること、あるいは１入力多出力の処理を行うアプリケーションであること等を示す情報が含まれる。
【００８６】
結線情報とは、開発対象であるアプリケーションプログラムにおける、入力データ項目と、処理内容であるロジックと、処理結果である出力データ項目とをそれぞれ導線で結ぶことによってデータ項目やロジック間の関係性を視覚的に示す図を生成する際に定義される、当該導線に関する情報である。
【００８７】
パラメータ情報とは、開発対象であるアプリケーションにおいて設定される各種パラメータの設定値を示す情報である。
【００８８】
選択領域情報とは、開発対象であるアプリケーションプログラムの一連の処理の中で、ユーザによる操作等によって選択（指定）された一部の処理の部分を示す情報である。例えば、アプリケーションボード１１１によって視覚的に表示されたアプリケーションプログラムに対して、ユーザは当該アプリケーションプログラムの一部の領域を、マウス等を操作して囲むことにより、囲まれた領域を示す選択領域情報が生成される。
【００８９】
テナントやサイトに紐づけられたアカウントを有するユーザは、予め設定された、または管理者によって設定されたアクセス権限および実行権限に基づいて、データ、ロジック、およびアプリケーション等を他のユーザと共有しながら、アプリケーションボード１１１の表示部が表示する画面（以下、Co-innovationスペース画面とも言う）を用いて、アプリケーションプログラムの作成、管理、および実行等を行うことができる。
【００９０】
ユーザは、アプリケーションプログラムを開発するにあたり、アプリケーションボード１１１において、例えば、各種開発パーツ（例えば上述した、入力データのデータ項目、処理内容であるロジック、および処理結果データのデータ項目等が含まれる）の一覧から必要な開発パーツを選択し、アプリケーション設計領域へマウス操作等によりドラッグアンドドロップする。これにより、アプリケーション設計領域には、選択された開発パーツが表示される。そして、ユーザは、アプリケーション設計領域において、例えば、選択された開発パーツ間を導線で結ぶようにドラッグするマウス操作等を行う。これにより、開発対象であるアプリケーションプログラムの処理のフロー（流れ）が定義され、アプリケーションプログラムが生成される。
【００９１】
また、ユーザは、アプリケーションプログラムを開発するにあたり、アプリケーションボード１１１において、汎用の各種アプリケーション、汎用の各種テンプレート、および汎用の各種ロジック等の一覧の中から、必要なアプリケーション、テンプレート、およびロジック等を選択し、アプリケーション設計領域へマウス操作等によりドラッグアンドドロップする。これにより、ユーザは、選択したアプリケーション、テンプレート、およびロジック等を利用してアプリケーションプログラムを開発することができる。
【００９２】
なお、当該一覧に登録されているアプリケーション、テンプレートおよびロジック等には、有料のものと、無料のものとがあってもよい。この場合、ユーザが有料のアプリケーション、テンプレートまたはロジック等を利用した場合には、後述する課金部１１９によって課金処理が行われる。
【００９３】
アプリケーションボード１１１において用いられた各種情報、例えば、入出力データ、表示部に表示されている内容を示す情報、開発対象であるアプリケーションプログラム、共同開発において複数の開発者間で交わされたコメントの内容を示す情報、および開発のステータスを示す情報等は、予め指定された特定のテナント、あるいは予め指定された特定のサイトに所属するアカウントからのみアクセスができるようにアクセス権限の設定がなされる。
このように、Co-innovationスペースは、アクセス権限の管理をしつつ各種情報をユーザ間で共有することができる仕組みであるため、情報漏洩等を防ぎつつ安全にアプリケーションプログラムを共創することができる環境を提供する。
【００９４】
コミュニケーションツール１１２は、ユーザ間で利用されるチャット機能、ビデオコミュニケーション機能、音声通話機能、画面共有機能、および掲示板やソーシャルネットワークサービス（ＳＮＳ）等のコミュニティ機能等を提供する。例えば、チャット機能は、テキストデータ（例えば、ソースコード等）、画像データ、およびプログラムの実行ファイル等だけでなく、開発対象であるアプリケーションプログラムの一部または全部を、パラメータ値等の設定情報も含めてユーザ間で送受信して共有することができる。
【００９５】
例えば、ユーザは、マウス等を操作して囲むことによって選択したアプリケーションプログラムの一部を示す領域を、マウス操作等によりドラッグアンドドロップしてチャット画面に貼り付けることによって、他のユーザと共有することができる。また、例えば、リアルタイムに更新されるデータによって作成されるグラフがチャット画面に貼り付けられた場合には、チャット画面に表示されたグラフもリアルタイムに更新され、更に、他のユーザが参照しているCo-innovationスペースのチャット画面に表示されたグラフも同様に、リアルタイムに更新される。
【００９６】
このように、Co-innovationスペースによれば、アプリケーション開発環境とコミュニケーションツールとがシームレスに連携するため、容易に、かつ、柔軟にユーザ間でのアプリケーション共創のためのコミュニケーションを図ることができる。
【００９７】
また、コミュニティは、リアルタイムまたは非リアルタイムに、複数のユーザ間でコミュニケーションを図ることができる機能であり、例えば、掲示板、コメント一覧、およびＳＮＳ等の機能である。なお、各ユーザからのコミュニティへのアクセスは、テナントごとに設定される管理ポリシーによって設定されたアクセス権限に基づく範囲で制限される。また、コミュニティ機能によりユーザによって書き込まれたトピック（話題）に対して、様々な絞り込み条件（例えば、課題、領域、業界、およびキーワード等）での絞り込み検索ができるようにしてもよい。
【００９８】
このように、ユーザは、コミュニケーションツール１１２によって、同一のテナントやサイト属するアカウントを有するユーザ、または異なるテナントやサイトに属するアカウントを有するユーザとの意見交換等を行うことができる。これにより、複数のユーザによるアプリケーションプログラムの共創が可能になる。
【００９９】
ライブラリ１１３は、アプリケーションボード１１１においてアプリケーションプログラムを開発または実行する際に用いられる、汎用的な、処理ロジック、テンプレート、分析ツール、およびヒストリアン（履歴情報や実績情報が格納されたデータベース）等を提供する。
【０１００】
例えば、ライブラリ１１３は、類似波形検索ツール、回帰分析ツール、重回帰分析ツール、ＭＴ法分析ツール、誤差分散分析ツール、データドリブンモデリングツール、ディープラーニングツール、および相関分析ツール等の様々な分析ツールを記憶している。ユーザは、任意の分析ツールをアプリケーション設計領域にドラッグアンドドロップし、データ入力をすることにより、各種分析をすることができる。
【０１０１】
ストレージ１１４は、各種情報（例えば、開発したアプリケーションプログラムや分析結果データ等）を、一般公開される情報と、テナント共用の情報と、サイト共用の情報と、アカウント個人用の情報とに区別して、それぞれ一般公開用の記憶領域、テナント共用の記憶領域、サイト共用の記憶領域、またはアカウント個人用の記憶領域に記憶する。なお、各ユーザが、各種情報をどの記憶領域に保存可能であるかについては、予めテナントの管理者によってユーザごとに設定された権限に基づいて制御されるようにしてもよい。
なお、ストレージ１１４は、記憶媒体、例えば、ハードディスクドライブ（ＨＤＤ）、フラッシュメモリ、イーイーピーロム（ＥＥＰＲＯＭ）、ＲＡＭ（読み書き可能なメモリ）、ＲＯＭ（読み出し専用メモリ）、又はそれらの任意の組み合わせによって構成される。
【０１０２】
デバイス管理部１１５は、インテリジェンスノード１１が収容するデバイスノード１３−１４を構成するセンサー、デバイス、およびシステム等の情報を管理する。例えば、デバイス管理部１１５は、デバイスノード１３−１４の収容のために用いられる、デバイスノード１３−１４に付与された識別情報と、アカウント、サイト、およびテナントの識別情報とを紐づけた情報等を管理する。
【０１０３】
なお、スパイナルノード１２が収容するデバイスノード１３−１４を構成するセンサー、デバイス、およびシステム等の情報については、インテリジェンスノード１１のデバイス管理部１１５がスパイナルノード１２を介し当該情報を取得して管理するようにしてもよいし、または、スパイナルノード１２が当該情報管理して、インテリジェンスノード１１のデバイス管理部１１５が当該情報をスパイナルノード１２から取得するようにしてもよい。
【０１０４】
テナント管理部１１６は、テナント（企業）に関する各種情報を管理する。例えば、テナント管理部１１６は、テナントの基礎情報、課金情報、操作権限、および承認権限等の情報に対して、設定、変更、削除等を行う。また、例えば、テナント管理部１１６は、Co-innovationスペースの利用、および有料または無料の、アプリケーション、ツール、テンプレート、およびデータ等の利用に伴う契約に関する契約情報をテナントごとに管理する。
【０１０５】
サイト・アカウント管理部１１７は、サイト（組織）およびアカウント（ユーザ）に関する各種情報を管理する。例えば、サイト・アカウント管理部１１７は、サイトおよびアカウントの基礎情報、課金情報、操作権限、および承認権限等の情報に対して、設定、変更、削除等を行う。
【０１０６】
アプリケーションストア１１８は、ユーザが、アプリケーションプログラムの一部または全部、ロジック、テンプレート、およびデータ等（以下、単にアプリケーション等と言う）の売買を行うための機能である。例えば、ユーザは、アプリケーションプログラムを開発するにあたり、Co-innovationスペース画面において、アプリケーションストア１１８によって販売されているアプリケーション等の一覧の中から、購入したいアプリケーション等を選択する。そして、ユーザは、選択したアプリケーション等をアプリケーション設計領域にマウス操作等によってドラッグアンドドロップする。これにより、ユーザは、選択したアプリケーション等を購入して、アプリケーションプログラムの開発等に利用することができる。
【０１０７】
なお、アプリケーションストア１１８によって販売されるアプリケーション等は、月額課金、年額課金、利用度に応じた課金、またはワンタイムの課金等の、任意の課金方法で課金できるようにしてもよい。また、アプリケーションストア１１８によって販売されているアプリケーション等のうち特定のアプリケーション等については、ユーザが使用開始した日から一定期間（例えば、一か月間）は無料のお試し期間として、課金が発生しないようにしてもよい。
【０１０８】
課金部１１９は、アプリケーションストア１１８によって販売されているアプリケーション等を購入したユーザに対する課金処理を行う。なお、Co-innovationスペースの利用に対して課金処理を行うようにしてもよい。なお、課金先は、テナント、サイト、またはアカウントごとに予め登録することができるようにしてもよい。
また、購入されたアプリケーション等が、ユーザによってアプリケーションストア１１８に登録されたアプリケーション等である場合には、当該アプリケーション等を購入したユーザに対して課金を行って徴収した金額の一部を、アプリケーション等を登録したユーザへ還元する（支払う）ことができるようにしてもよい。
【０１０９】
データベース部１２０は、アプリケーションの動作に必要な生産管理情報、プラント運転管理情報、品質情報、などのデータをデータベースとして保持し、アプリケーションの要求に応じて必要なデータを提供する。なお、このデータベースは、ＳＱＬなどの一般的なデータベースでもよいし、非ＳＱＬの特定用途のデータベースでもよい。また、このデータベースは、テナント、サイト、またはアカウントごとに設定可能に構成されてもよく、データの内容に応じて、管理者が個別にアクセス権限を設定可能に構成されてもよい。
また、これらのデータベースは、Co-innovationスペースの外側にある外部のデータベースを参照するように構成されてもよい。
【０１１０】
（アプリケーションボードによる表示例）
以下、アプリケーションボード１１１の表示部に表示される画面（Co-innovationスペース画面）の一例について説明する。
図１０乃至図１３は、本発明の実施形態に係るアプリケーション開発環境提供システムのアプリケーションボードによる表示の一例を示す図である。
【０１１１】
図１０は、Co-innovationスペース画面を構成する各画面領域のレイアウトの一例を示したものである。図示するように、Co-innovationスペース画面は、アプリケーション設計領域（編集エリア）と、グローバルナビ表示領域と、ローカルナビ表示領域と、開発パーツ一覧表示領域との４つの画面領域を含んで構成される。
【０１１２】
ユーザによる操作等に基づいて、開発パーツ表示領域は、表示されている状態から、画面の左方向にスライドして画面外へ移動するようにして非表示の状態へ切り替わる。これにより、アプリケーション設計領域が広がるため、ユーザは、アプリケーションプログラムの編集作業を行いやすくなる。
【０１１３】
また、ユーザによる操作等に基づいて、Co-innovationスペース画面の起動時には非表示とされているシミュレーション領域、およびチャット／コメント表示領域が、表示されている状態に切り替わる。図示するように、シミュレーション領域は、非表示の状態から、画面の右方向からスライドして画面内へ移動するようにして、表示されている状態に切り替わる。また、チャット／コメント領域は、非表示の状態から、画面の下方向からスライドして画面内へ移動するようにして、表示されている状態に切り替わる。
これにより、ユーザは、必要な時だけシミュレーション領域およびチャット／コメント表示領域を表示させることができ、これらの画面領域が必要でない時には非表示にさせることによってアプリケーション設計領域を広く確保できるため、ユーザは、アプリケーションプログラムの編集作業を行いやすくなる。
【０１１４】
アプリケーション設計領域は、開発対象であるアプリケーションプログラムの構造を視覚的に表示する画面領域である。
ユーザは、例えば、開発パーツ一覧表示領域に表示された開発パーツ、例えば、各種分析エレメント、各種入出力データのデータ項目、処理内容であるロジック、各種アプリケーション、各種テンプレート、各種ロジック、各種グラフ、および各種分析ツール等の一覧の中から、必要な開発パーツを選択し、アプリケーション設計領域へマウス操作等によりドラッグアンドドロップすることにより、選択した開発パーツを示す画像をアプリケーション設計領域に表示させることができる。
【０１１５】
また、ユーザは、例えば、アプリケーション設計領域に表示させた２つの開発パーツの間をマウス操作等によりドラッグすることにより、２つの開発パーツを紐づける導線を表示させることができる。このような操作に基づいて、ユーザは、開発対象であるアプリケーションプログラムを視覚的に設計・編集することができる。
【０１１６】
また、ユーザは、例えば、アプリケーション設計領域に視覚的に表示された開発対象であるアプリケーションプログラムに対して、マウス操作等によって一部の領域を囲むことにより、開発対象であるアプリケーションプログラムの一部の領域を選択することができる。そして、ユーザは、例えば、選択したアプリケーションプログラムの一部の領域を、マウス操作等によりドラッグアンドドロップしてチャット画面に貼り付けて、他のユーザと共有することができる。
【０１１７】
また、ユーザは、例えば、グローバルナビ表示領域に表示されるアプリケーションストアに表示されたアプリケーションプログラムの一部または全部、ロジック、テンプレート、およびデータ等の一覧の中から、必要な開発パーツを選択しアプリケーション設計領域へマウス操作によりドラッグアンドドロップし、当該開発パーツをアプリケーション設計領域に表示させることができる。これにより、ユーザは、必要な開発パーツをアプリケーションストアから購入して即座に利用することができる。
【０１１８】
また、ユーザは、例えば、アプリケーション設計領域に視覚的に表示された開発対象であるアプリケーションプログラムの一部または全部の領域を、マウス操作等によって選択し、選択した領域をマウス操作等によりグローバルナビ表示領域に表示されるアプリケーションストアにドラッグアンドドロップすることができる。これにより、選択されたアプリケーションプログラムの一部または全部がアプリケーションストアに登録され、当該アプリケーションプログラムの一部または全部を示す情報（例えば、アイコン画像等を含む）がアプリケーションストアに表示される。このようにして、ユーザは、例えば、開発したアプリケーションプログラムの一部または全部を、アプリケーションストアにおいて、他のユーザに対して販売することができる。
【０１１９】
グローバルナビ表示領域は、テナント（企業）またはサイト（組織）において共通のメニュー画面が表示される画面領域である。グローバルナビ表示領域には、例えば、ログイン／ログアウト、アカウント設定、プロジェクトの切り替え、検索、およびアプリケーションストア等の機能を利用するためのメニューが表示される。
【０１２０】
ローカルナビ表示領域は、アカウント（ユーザ）に応じたメニュー画面が表示される画面領域である。ローカルナビ表示領域には、例えば、開発対象であるアプリケーションプログラムにおける、課題管理およびタスク管理、バージョン管理、およびプロジェクト設定等の機能を利用するためのメニューが表示される。
【０１２１】
開発パーツ一覧表示領域は、アプリケーションプログラムに開発に用いられる開発パーツの一覧画面が表示される画面領域である。開発パーツ一覧表示領域には、例えば、上述した、各種分析エレメント、各種入出力データ項目、汎用の各種アプリケーション、汎用の各種テンプレート、汎用の各種ロジック、および各種分析ツール（例えば、類似波形検索ツール、回帰分析ツール、重回帰分析ツール、ＭＴ法分析ツール、誤差分散分析ツール、データドリブンモデリングツール、ディープラーニングツール、および相関分析ツール等）がカテゴリ別に分類され、一覧表示される。
【０１２２】
シミュレーション領域は、アプリケーション設計領域に表示されたアプリケーションプログラムを模擬的に実行（シミュレーション）するための設定情報や、シミュレーション結果を示す情報等を表示する画面領域である。
【０１２３】
チャット／コメント領域は、ユーザが他のユーザと開発対象であるアプリケーションプログラム等に関して、リアルタイムまたは非リアルタイムにメッセージのやり取りを行うため機能であるチャット画面や、ユーザまたは他のユーザによって過去に記録されたコメントの一覧等を表示する画面領域である。チャット／コメント領域に表示されるメッセージやコメントは、ユーザによるマウス操作等によって選択され、アプリケーション設計領域へドラッグアンドドロップ等の操作がなされることにより、アプリケーション設計領域の任意の位置へ転記される。
【０１２４】
図１１は、ユーザが、Co-innovationスペース画面において、開発パーツ一覧表示領域に表示された任意の開発パーツを選択し、選択した開発パーツをアプリケーション設計領域において利用する際の画面例を示したものである。
【０１２５】
図示するように、アプリケーション設計領域には、「吸気ガス温度」、「冷凍機１  ＯＮ／ＯＦＦ」、「冷凍機２  ＯＮ／ＯＦＦ」、「冷凍機３  ＯＮ／ＯＦＦ」、「冷凍機４  ＯＮ／ＯＦＦ」、「冷凍機５  ＯＮ／ＯＦＦ」、および「冷凍機６  ＯＮ／ＯＦＦ」という７つの入力データ項目と、「Ｎｘ２」という分析エレメントと、「排気ガス温度」、および「消費電力」という２つの出力データ項目とが矢印（導線）で結ばれた、開発対象であるアプリケーションプログラムを視覚的に表した画像が表示されている。
【０１２６】
また、図示するように、開発パーツ一覧表示領域には、「分析エレメント」、「入出力データ」、「ロジック」、および「シミュレーション」というカテゴリに分類された開発パーツの一覧が表示されている。
【０１２７】
ユーザは、図１１のアプリケーション設計領域にアプリケーションプログラムを作成するにあたって、まず、開発パーツ一覧表示領域に表示されている「分析エレメント」欄にある開発パーツの中から、「多入力２出力」という開発パーツを選択して、選択した開発パーツをアプリケーション設計領域へ、マウス操作等によりドラッグアンドドロップする。すると、アプリケーション設計領域には、多入力２出力を表す「Ｎｘ２」という文字が書かれた分析エレメントの画像が表示される。
【０１２８】
次に、ユーザは、開発パーツ一覧表示領域に表示されている「入出力データ」欄にある開発パーツの中から、「データ／ヒストリアン」という開発パーツを選択して、選択した当該開発パーツをアプリケーション設計領域へマウス操作等によりドラッグアンドドロップする。すると、アプリケーション設計領域には、データ／ヒストリアンを示す画像が表示される。
【０１２９】
そして、ユーザは、表示されたデータ／ヒストリアンを示す画像に対してデータ項目を選択する画面（図示せず）を開き、データ／ヒストリアンに含まれるデータ項目一覧を表示させる。ユーザが、表示されたデータ項目一覧の中から、「吸気ガス温度」という入力データ項目を選択すると、データおよびヒストリアンを示す画像には「吸気ガス温度」という文字が表示される。このようにして、ユーザは、入力データ項目をアプリケーション設計領域へ追加することができる。
【０１３０】
上記と同様にして、ユーザは更に、「冷凍機１  ＯＮ／ＯＦＦ」、「冷凍機２  ＯＮ／ＯＦＦ」、「冷凍機３  ＯＮ／ＯＦＦ」、「冷凍機４  ＯＮ／ＯＦＦ」、「冷凍機５  ＯＮ／ＯＦＦ」、および「冷凍機６  ＯＮ／ＯＦＦ」という入力データ項目を、アプリケーション設計領域へ追加する。
【０１３１】
次に、ユーザは、入力データ項目「吸気ガス温度」を示す画像から、分析エレメント「Ｎｘ２」を示す画像までの間を、マウス操作等によってドラッグする。すると、入力データ項目「吸気ガス温度」を示す画像から分析エレメント「Ｎｘ２」を示す画像への矢印（導線）を示す画像が表示される。このようにして、ユーザは、入力データ項目を、アプリケーションプログラムの処理内容が定義される分析エレメントに紐づけることができる。
【０１３２】
上記と同様に、ユーザは更に、「冷凍機１  ＯＮ／ＯＦＦ」、「冷凍機２  ＯＮ／ＯＦＦ」、「冷凍機３  ＯＮ／ＯＦＦ」、「冷凍機４  ＯＮ／ＯＦＦ」、「冷凍機５  ＯＮ／ＯＦＦ」、および「冷凍機６  ＯＮ／ＯＦＦ」という入力データ項目を示す画像と、分析エレメント「Ｎｘ２」を示す画像とを矢印（導線）によって紐づける。
なお、どの開発パーツからどの開発パーツへ結びついているかを示す情報を、結線情報と言う。
【０１３３】
次に、ユーザは、上記においてアプリケーション設計領域へ入力データ項目を追加した場合の操作と同様に、アプリケーション設計領域へ出力データ項目を追加する。ユーザは、データ項目を選択する画面（図示せず）に表示されたデータ項目一覧の中から、「排気ガス温度」という出力データ項目を選択すると、データ／ヒストリアンを示す画像には「排気ガス温度」という文字が表示される。このようにして、ユーザは、出力データ項目をアプリケーション設計領域へ追加することができる。
上記と同様に、ユーザは更に、「消費電力」という出力データ項目を、アプリケーション設計領域へ追加する。
【０１３４】
次に、ユーザは、上記において入力データ項目を示す画像と分析エレメントを示す画像とを紐づけた場合の操作と同様に、分析エレメント「Ｎｘ２」を示す画像から出力データ項目「排気ガス温度」を示す画像までの間、および分析エレメント「Ｎｘ２」を示す画像から出力データ項目「排気ガス温度」を示す画像までの間を、マウス操作等によってドラッグする。このようにして、ユーザは、出力データ項目を、アプリケーションプログラムの処理内容が定義される分析エレメントに紐づけることができる。
【０１３５】
そして、ユーザは、分析エレメントにおいて行われる処理内容を定義する画面（図示せず）を表示させて分析エレメント「Ｎｘ２」において行われる演算処理の内容を定義する。これにより、ユーザは、７つの入力データ項目のデータを入力値として演算処理を行い、処理結果として２つの出力データ項目のデータを出力するようなアプリケーションプログラムを開発することができる。
このように、Co-innovationスペースによって、開発対象であるアプリケーションプログラムが視覚的に表示されるため、ユーザはより直感的にアプリケーション等の開発を行うことができる。
【０１３６】
図１２は、ユーザが、Co-innovationスペース画面において、アプリケーション設計領域に表示されたアプリケーションプログラムの一部を領域選択し、領域選択したアプリケーションプログラムの一部をチャット機能によって他のユーザと共有する際の画面例を示したものである。
【０１３７】
図１２に示すCo-innovationスペース画面のチャット／コメント表示領域には、「グループ１」というグループに属するユーザによってメッセージ交換が行われるグループチャット画面が表示されている。
以下、ユーザが、当該グループチャット画面によって、アプリケーション設計領域に表示されたアプリケーションプログラムの一部を他のユーザと共有する場合の例について説明する。また、図１２に示す例における、アプリケーションプログラムの一部とは、７つの入力データ項目のデータが入力されて演算処理が行われるまで処理の範囲に該当する部分であるものとする。
【０１３８】
ユーザは、アプリケーション設計領域において、視覚的に表示されているアプリケーションプログラムの画像のうち、「吸気ガス温度」、「冷凍機１  ＯＮ／ＯＦＦ」、「冷凍機２  ＯＮ／ＯＦＦ」、「冷凍機３  ＯＮ／ＯＦＦ」、「冷凍機４  ＯＮ／ＯＦＦ」、「冷凍機５  ＯＮ／ＯＦＦ」、および「冷凍機６  ＯＮ／ＯＦＦ」の７つの入力データ項目を示す画像と、「Ｎｘ２」の分析エレメントを示す画像と、当該７つの入力データ項目と当該分析エレメントとそれぞれを結ぶ矢印（導線）の画像とを囲むようにマウス操作等によってドラッグして、領域選択を行う。すると、図１２に示すように、アプリケーション設計領域において、選択された領域（すなわち、ドラッグによるポインタ等の移動軌跡）が点線によって表示される。
なお、開発対象であるアプリケーションプログラムにおいて、選択された領域を示す情報を選択領域情報と言う。
【０１３９】
次に、ユーザは、アプリケーション設計領域において、点線によって囲まれた領域を選択し、選択した領域を「グループ１」のグループチャット画面まで、マウス操作等によりドラッグする。すると、グループチャット画面のメッセージ表示領域に、選択したアプリケーションプログラムの一部を示す情報が表示される。図１２に示す例においては、「グループ１」のグループチャット画面のメッセージ領域に、「Ｎｘ２」という表記とアイコンとが表示されている。
【０１４０】
グループチャットによってメッセージを受信した他のユーザは、当該他のユーザが参照しているCo-innovationスペース画面において、グループチャット画面のメッセージ領域に表示された「Ｎｘ２」という表記の部分またはアイコンの部分を、マウス操作等によってメッセージ領域からアプリケーション設計領域にドラッグアンドドロップする。すると、チャットの送信元のユーザが利用しているアプリケーション設計領域において表示された画像のうち点線で囲まれた範囲の画像と同一の画像が、他のユーザが参照しているアプリケーション設計領域に表示される。
【０１４１】
グループチャットによって共有される情報は、当該画像を示す情報や、アプリケーションプログラムの構造を示す、レイアウト情報、結線情報、および選択領域情報だけでなく、設定されたパラメータ値等も含まれる。すなわち、Co-innovationスペースによれば、アプリケーションプログラムのソースコードだけでなく、設定されたパラメータ値等も含めて、ユーザ間で共有をすることができる。
このように、Co-innovationスペースは、アプリケーション開発環境とコミュニケーションツールとを有し、当該アプリケーション開発環境と当該コミュニケーションツールとが連携して機能するため、ユーザは開発したアプリケーション等を容易に他のユーザと共有することができる。
【０１４２】
図１３は、アプリケーションストアの画面例を示したものである。
アプリケーションストア画面は、グローバルナビ領域に表示されたメニュー内に表示された「アプリケーションストア」の表示領域が、マウス操作等によりクリックされることによって表示される。
【０１４３】
アプリケーションストアでは、アプリケーションプログラムの一部または全部、ロジック、テンプレート、およびデータ等の売買が行われる。
図１３に示す例においては、アプリケーションストアには、購入された本数が多い順にそれぞれ上位２０個（トップ２０）のアプリケーションおよびテンプレートをそれぞれ表示されている。また、図１３に示す例においては、アプリケーションストアの左側の領域には、ユーザが、アプリケーションストアに登録されているアプリケーションプログラムの一部または全部、ロジック、テンプレート、およびデータ等を検索するための画面領域が表示されている。当該画面領域おいて、ユーザは、キーワード検索、登録されているアプリケーション等が対象としている業種によって絞り込みを行う業種別カテゴリ検索、登録されているアプリケーション等によって行われる処理の目的によって絞り込みを行う目的別カテゴリ検索、有料または無料のアプリケーション等に絞り込みを行う絞り込み検索を行うことができる。
【０１４４】
また、ユーザは、上述したように、Co-innovationスペースにおいて開発したアプリケーションプログラム、ロジック、およびテンプレート等を、アプリケーションストアに登録し、他のユーザに対して販売をすることができる。
このように、Co-innovationスペースは、アプリケーション開発環境とともにアプリケーションストアを有し、当該アプリケーション開発環境と当該アプリケーションストアとが連携して機能するため、ユーザは開発したアプリケーション等を容易に他のユーザに対し販売したり、他のユーザや外部のベンダー等が開発したアプリケーション等を容易に購入したりすることができる。
【０１４５】
（Co-innovationスペースの動作）
以下に、Co-innovationスペースの動作について説明する。
図１４および図１５は、本発明の実施形態に係るアプリケーション開発環境提供システム１に実装されるCo-innovationスペースの動作の一例を示すフローチャートである。
【０１４６】
図１４は、Co-innovationスペースにおいてアプリケーションプログラムが生成され、生成されたアプリケーションプログラムの一部がコミュニケーションツールによってアカウント（ユーザ）間で共有される際におけるCo-innovationスペースの動作を示したものである。
【０１４７】
（ステップＳ００１）アプリケーションボード１１１は、表示部にCo-innovationスペース画面を表示する。アプリケーションボード１１１は、ユーザによる操作に基づいて、アプリケーションプログラムを生成する。アプリケーションボード１１１は、生成されたアプリケーションプログラムの構造に関するレイアウト情報や結線情報等を生成する。その後、ステップＳ００２へ進む。
【０１４８】
（ステップＳ００２）アプリケーションボード１１１は、Co-innovationスペース画面のアプリケーション設計領域に、ステップＳ００１において生成されたアプリケーションプログラムを視覚的に表示する。その後、ステップＳ００３へ進む。
【０１４９】
（ステップＳ００３）アプリケーションボード１１１は、ユーザによる操作に基づいて、ステップＳ００２において視覚的に表示されたアプリケーションプログラムの一部の領域を選択し、当該選択された領域を示す情報である選択領域情報を生成する。その後、ステップＳ００４へ進む。
【０１５０】
（ステップＳ００４）アプリケーションボード１１１は、ステップＳ００３において生成された選択領域情報に基づいて、選択された領域に該当するアプリケーションプログラムおよびパラメータ情報を取得する。その後、ステップＳ００５へ進む。
【０１５１】
（ステップＳ００５）コミュニケーションツール１１２は、ユーザによる操作（例えば、ユーザが、選択したアプリケーションプログラムの一部を示す領域を、チャット画面のメッセージ表示領域にドラッグアンドドロップする操作）に基づき、ステップＳ００１乃至ステップＳ００４においてアプリケーションボード１１１が取得したアプリケーションプログラム、パラメータ情報、レイアウト情報、結線情報、および選択領域情報等に基づいて、コミュニケーションツール１１２のメッセージ領域にアプリケーションプログラムの一部を示す情報を視覚的に表示する。その後、ステップＳ００６へ進む。
【０１５２】
（ステップＳ００６）コミュニケーションツール１１２は、ユーザによる操作（例えば、ユーザが、チャット画面において送信ボタンをクリックする操作）に基づき、アプリケーションプログラムの一部を示す情報を、他のユーザのコミュニケーションツールに送信し、当該情報を視覚的に表示させる。
【０１５３】
（ステップＳ００７）アプリケーションプログラムの一部を示す情報を受け取った当該ユーザは、前記視覚的に表示された情報をユーザによる操作（例えば、ユーザが、チャット画面のメッセージ表示領域に前記視覚的に表示された情報を、前記アプリケーション設計領域にドラッグアンドドロップする操作）に基づき、ステップＳ００１乃至ステップＳ００４においてアプリケーションボード１１１が取得したアプリケーションプログラム、パラメータ情報、レイアウト情報、結線情報、および選択領域情報等を前記アプリケーション設計領域に複製する。
以上で、本フローチャートの処理が終了する。
【０１５４】
図１５は、Co-innovationスペースにおいてアプリケーションプログラムが生成され、生成されたアプリケーションプログラムの一部が販売用としてアプリケーションストアに登録される際におけるCo-innovationスペースの動作を示したものである。
【０１５５】
（ステップＳ１０１）アプリケーションボード１１１は、表示部にCo-innovationスペース画面を表示する。アプリケーションボード１１１は、ユーザによる操作に基づいて、アプリケーションプログラムを生成する。アプリケーションボード１１１は、生成されたアプリケーションプログラムの構造に関するレイアウト情報や結線情報等を生成する。その後、ステップ１００２へ進む。
【０１５６】
（ステップＳ１０２）アプリケーションボード１１１は、Co-innovationスペース画面のアプリケーション設計領域に、ステップＳ００１において生成されたアプリケーションプログラムを視覚的に表示する。その後、ステップＳ１０３へ進む。
【０１５７】
（ステップＳ１０３）アプリケーションボード１１１は、ユーザによる操作に基づいて、ステップＳ００２において視覚的に表示されたアプリケーションプログラムの一部の領域を選択し、当該選択された領域を示す情報である選択領域情報を生成する。その後、ステップＳ１０４へ進む。
【０１５８】
（ステップＳ１０４）アプリケーションボード１１１は、ステップＳ００３において生成された選択領域情報に基づいて、選択された領域に該当するアプリケーションプログラムを、販売可能なアプリケーションプログラムに編集する。その後、ステップＳ１０５へ進む。
【０１５９】
（ステップＳ１０５）アプリケーションストア１１８は、ユーザによる操作（例えば、ユーザが、選択したアプリケーションプログラムの一部を示す領域を、グローバルナビ表示領域に表示されたメニュー画面の中のアプリケーションストアの表示領域にドラッグする操作）に基づいて、ステップＳ１０４において編集されたアプリケーションプログラムを登録する。その後、ステップＳ１０６へ進む。
【０１６０】
（ステップＳ１０６）アプリケーションストア１１８は、ステップＳ１０５において登録されたアプリケーションプログラムを表示する。
以上で、本フローチャートの処理が終了する。
【０１６１】
以上、説明したように、本実施形態に係るアプリケーション開発環境提供システム１は、通信ネットワークを介してアプリケーションプログラムの開発環境を提供する。また、アプリケーション開発環境提供システム１は、アプリケーションボード１１１（プログラム開発部プログラム開発表示部）によって、開発環境に接続された端末からの入力に基づいてアプリケーションプログラムを生成することができ、生成されたアプリケーションプログラムを視覚的に表示することができる。また、アプリケーション開発環境提供システム１は、コミュニケーション部（コミュニケーション表示部）によって、開発環境を利用する複数のユーザ間のコミュニケーションを行うことができ、アプリケーションボード１１１（プログラム開発部、プログラム開発表示部）によって生成されたアプリケーションプログラムの一部または全部を、指定された端末において視覚的に表示することができる。
【０１６２】
これにより、本実施形態に係るアプリケーション開発環境提供システム１は、クラウドコンピューティング環境において用いられるアプリケーションプログラムの効率的な開発および共有を実現することができる。
【０１６３】
以上、この発明の実施形態について詳しく説明してきたが、具体的な構成は上述のものに限られることはなく、この発明の要旨を逸脱しない範囲内において様々な設計変更等をすることが可能である。
【０１６４】
なお、上述した実施形態におけるアプリケーション開発環境提供システム１の一部又は全部をコンピュータで実現するようにしてもよい。その場合、この制御機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。
【０１６５】
なお、ここでいう「コンピュータシステム」とは、アプリケーション開発環境提供システム１に内蔵されたコンピュータシステムであって、ＯＳや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。
【０１６６】
さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信回線のように、短時間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよい。
【０１６７】
また、上述した実施形態におけるアプリケーション開発環境提供システム１を、ＬＳＩ（Ｌａｒｇｅ  Ｓｃａｌｅ  Ｉｎｔｅｇｒａｔｉｏｎ）等の集積回路として実現してもよい。アプリケーション開発環境提供システム１の各機能ブロックは個別にプロセッサ化してもよいし、一部、または全部を集積してプロセッサ化してもよい。また、集積回路化の手法はＬＳＩに限らず専用回路、または汎用プロセッサで実現してもよい。また、半導体技術の進歩によりＬＳＩに代替する集積回路化の技術が出現した場合、当該技術による集積回路を用いてもよい。
【符号の説明】
【０１６８】
１・・・アプリケーション開発環境提供システム、１０・・・ソーシャリゼーションノード、１１・・・インテリジェンスノード、１２・・・スパイナルノード、１３・・・デバイスノード（センサー）、１４・・・デバイスノード（デバイス）、１１１・・・アプリケーションボード（プログラム開発部、プログラム開発表示部）、１１２・・・コミュニケーションツール（コミュニケーション部、コミュニケーション表示部）、１１３・・・ライブラリ、１１４・・・ストレージ、１１５・・・デバイス管理部、１１６・・・テナント管理部、１１７・・・サイト・アカウント管理部、１１８・・・アプリケーションストア、１１９・・・課金部、１２０・・・データベース部
【図１】
2018055588.tif 000003
【図２】
2018055588.tif 000004
【図３】
2018055588.tif 000005
【図４】
2018055588.tif 000006
【図５】
2018055588.tif 000007
【図６】
2018055588.tif 000008
【図７】
2018055588.tif 000009
【図８】
2018055588.tif 000010
【図９】
2018055588.tif 000011
【図１０】
2018055588.tif 000012
【図１１】
2018055588.tif 000013
【図１２】
2018055588.tif 000014
【図１３】
2018055588.tif 000015
【図１４】
2018055588.tif 000016
【図１５】
2018055588.tif 000017