(57)【要約】【課題】モノのインターネット（IoT）アプリケーションの開発のためのアプリケーション開発システムを提供する。【解決手段】IoTアプリケーションの開発のためのアプリケーション開発システム（102）は、入力を取得するためのカタログモジュール（120）を含む。入力は開発されるIoTアプリケーションに関連するデータを含む。カタログモジュールはさらに、入力に基づいて知識データベース（108）から複数の再利用可能なアーティファクトを取得する。推奨モジュール（122）は、複数の再利用可能なアーティファクトそれぞれに関連付けられているフィードバック、エキスパート解析及びエキスパート解析とフィードバックとの組み合わせのうちの少なくともいずれかに基づいて、複数の再利用可能なアーティファクトの中からアーティファクトを推奨する。関連モジュール（124）は、IoTアプリケーションの開発のために、選択されたアーティファクトを互いに関連付ける。【選択図】図１
2014229321.tif 000002
【特許請求の範囲】
【請求項１】
モノのインターネット（IoT）アプリケーションを開発するための方法であって、前記方法が、
アプリケーション開発システム（102）が、アプリケーション開発者からの入力を取得するステップであって、前記入力が、開発される前記IoTアプリケーションに関連するデータを含むステップと、
前記アプリケーション開発システム（102）が、前記入力に基づいて知識データベース（108）から、複数の再利用可能なアーティファクトを検索するステップと、
前記アプリケーション開発システム（102）が、前記複数の再利用可能なアーティファクトのそれぞれに関連付けられたフィードバックに基づいて、前記複数の再利用可能なアーティファクトの中からのアーティファクトを、前記アプリケーション開発者に推奨するステップと、
前記アプリケーション開発システム（102）が、前記推奨されたアーティファクトの中から選択されたアーティファクトを、前記アプリケーション開発者から受信するステップと、
前記アプリケーション開発システム（102）が、前記IoTアプリケーションのフェーズに従って、前記選択されたアーティファクトを互いに関連付けることに基づいて、前記IoTアプリケーションを開発するステップと、
を有する方法。
【請求項２】
請求項１に記載の方法が、さらに、
複数の再利用可能なアーティファクトと、前記複数の再利用可能なアーティファクトのそれぞれに関連付けられているメタデータとを、アプリケーション開発者から受信するステップであって、前記複数の再利用可能なアーティファクトそれぞれの前記メタデータは、センサーのタイプと、前記再利用可能なアーティファクトが開発されたユースケースと、前記再利用可能なアーティファクトのドメインとを含む、ステップと、
前記複数の再利用可能なアーティファクトと、前記複数の再利用可能なアーティファクトのそれぞれに関連付けられている前記メタデータとを前記知識データベース（108）に格納するステップと、
前記知識データベース（108）中の前記複数の再利用可能なアーティファクトを索引付けするステップであって、前記索引付けが前記メタデータに基づいて実行されるステップと、
を有する方法。
【請求項３】
請求項１に記載の方法であって、前記フィードバックが格付けの形態である方法。
【請求項４】
請求項１に記載の方法であって、前記入力が、開発される前記IoTアプリケーションによって実行される1つ以上のタスクと、前記IoTアプリケーションのフェーズ、１又は２以上の前記タスクに適したセンサーの種類、１又は２以上の前記タスクが実行されるサブジェクト、および、１又は２以上の前記タスクが実行されるシナリオのうちの１又は２以上を含むデータセットとを含む方法。
【請求項５】
請求項１に記載の方法であって、前記IoTアプリケーションの前記フェーズが、センシングフェーズ、抽出フェーズ、解析フェーズおよび応答フェーズのうちの１又は２以上を含む方法。
【請求項６】
モノのインターネット（IoT）アプリケーションを開発するためのアプリケーション開発システム（102）であって、
プロセッサ（112）と、
前記プロセッサ（112）に置換されたカタログモジュール（120）であって、
アプリケーション開発者からの入力であって、前記入力が、開発される前記IoTアプリケーションに関連するデータを含む入力を取得し、
前記入力に基づいて知識データベース（108）から、複数の再利用可能なアーティファクトを検索する
前記カタログモジュール（120）と、
前記プロセッサ（112）に置換された推奨モジュール（122）であって、
前記複数の再利用可能なアーティファクトのそれぞれに関連付けられたフィードバック、エキスパート解析、および、前記エキスパート解析と前記フィードバックとの組み合わせの少なくとも１つに基づいて、前記複数の再利用可能なアーティファクトの中からアーティファクトを、前記アプリケーション開発者に推奨する、
前記推奨モジュール（122）と、
前記プロセッサ（112）に置換された関連付けモジュール（124）であって、
前記IoTアプリケーションを開発するために、前記アプリケーション開発者によって選択されたアーティファクトを互いに関連付ける、
前記関連付けモジュール（124）と、
を有するアプリケーション開発システム（102）。
【請求項７】
請求項６に記載のアプリケーション開発システム（102）であって、前記入力が、開発される前記IoTアプリケーションによって実行される1つ以上のタスクと、１つ以上の、前記IoTアプリケーションのフェーズ、１又は２以上の前記タスクに適したセンサーの種類、１又は２以上の前記タスクが実行されるサブジェクト、および、１又は２以上の前記タスクが実行されるシナリオを含むデータセットとを含むアプリケーション開発システム（102）。
【請求項８】
請求項６に記載のアプリケーション開発システム（102）であって、前記再利用可能なアーティファクトが、アルゴリズム、機能、構成スクリプトおよびソースコードのうちの１又は２以上を含むアプリケーション開発システム（102）。
【請求項９】
請求項６に記載のアプリケーション開発システム（102）であって、前記カタログモジュール（120）はさらに、
複数の再利用可能なアーティファクトと、前記複数の再利用可能なアーティファクトのそれぞれに関連付けられているメタデータであって、センサーのタイプと、前記再利用可能なアーティファクトが開発されたユースケースと、前記再利用可能なアーティファクトのドメインとを含むメタデータとを、アプリケーション開発者から受信し、
前記複数の再利用可能なアーティファクトと、前記複数の再利用可能なアーティファクトのそれぞれに関連付けられている前記メタデータとを、前記知識データベース（108）に格納し、
前記知識データベース（108）内の前記複数の再利用可能なアーティファクトを、前記メタデータに基づいて索引付けする、
アプリケーション開発システム（102）。
【請求項１０】
非一時的コンピュータ可読記録媒体であって、
アプリケーション開発システム（102）が、アプリケーション開発者からの入力を取得するステップであって、前記入力が、開発される前記IoTアプリケーションに関連するデータを含む、ステップと、
前記アプリケーション開発システム（102）が、前記入力に基づいて知識データベース（108）から、複数の再利用可能なアーティファクトを検索するステップと、
前記アプリケーション開発システム（102）が、前記複数の再利用可能なアーティファクトのそれぞれに関連付けられたフィードバックに基づいて、前記複数の再利用可能なアーティファクトの中からのアーティファクトを、前記アプリケーション開発者に推奨するステップと、
前記アプリケーション開発システム（102）が、前記推奨されたアーティファクトの中から選択されたアーティファクトを、前記アプリケーション開発者から受信するステップと、
前記アプリケーション開発システム（102）が、前記IoTアプリケーションのフェーズに従って、前記選択されたアーティファクトを互いに関連付けることに基づいて、前記IoTアプリケーションを開発するステップと、
を含む方法が実行されるためのコンピュータプログラムが記録される非一時的コンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の主題は、一般に、モノのインターネット（IoT）に係り、特に、IoTアプリケーションの開発に関する。
【背景技術】
【０００２】
通信技術の急速な発展および通信技術とインターネット技術とのさらなる融合に伴い、モノのインターネット（IoT）の流行が日々増加している。IoTは、無線周波数識別（RFID）、センサー、全地球測位システム（GPS）およびレーザスキャナなどの異なる情報センシング装置と、巨大なネットワークを形成するために、インターネットと組み合わせるエマージングテクノロジー（emerging technology）である。
【０００３】
IoTは、人々の日常生活に劇的な影響を与える可能性がある、なんにでも、いつでも、どこからでも、という接続性の視点を有する。これは、今日のインターネットの、しばしば「周囲インテリジェンス」、「ユビキタスネットワーク」及び「サイバーフィジカルシステム」などの用語に関連付けられている物理的オブジェクトの実世界への延長として認識される。IoTアプリケーションの開発、展開および管理を迅速かつ簡単にする様々なIoTプラットフォームが、過去に開発されている。環境と個人の健康の監視、および、農業とスマートスペースとスマートシティとを含む工業プロセスの監視および制御は、IoTアプリケーションのいくつかの例である。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来、IoTアプリケーションの開発、展開、および管理を迅速かつ簡単にすることができる様々なプラットフォームが利用可能である。このようなプラットフォームの一つは、RIPSAC（Real-Time Integrated Platform for Services & Analytics）である。RIPSACは、センサーのデータ取得、保存、解析、および、センサー駆動型アプリケーションとサービスの開発のための可視化のためのプラットフォームである。RIPSACサービスは、アプリケーションプログラミングインターフェース（API）とソフトウェア開発キット（SDK）の形式で利用可能にされる。しかしながら、RIPSACは、IoTドメインのためのサービスとしてのセンサーのデータ解析を提供していない。
【課題を解決するための手段】
【０００５】
この発明の一実施態様は、モノのインターネット（IoT）アプリケーションを開発するための方法であって、前記方法が、アプリケーション開発システム（102）が、アプリケーション開発者からの入力を取得するステップであって、前記入力が、開発される前記IoTアプリケーションに関連するデータを含むステップと、前記アプリケーション開発システム（102）が、前記入力に基づいて知識データベース（108）から、複数の再利用可能なアーティファクトを検索するステップと、前記アプリケーション開発システム（102）が、前記複数の再利用可能なアーティファクトのそれぞれに関連付けられたフィードバックに基づいて、前記複数の再利用可能なアーティファクトの中からのアーティファクトを、前記アプリケーション開発者に推奨するステップと、前記アプリケーション開発システム（102）が、前記推奨されたアーティファクトの中から選択されたアーティファクトを、前記アプリケーション開発者から受信するステップと、前記アプリケーション開発システム（102）が、前記IoTアプリケーションのフェーズに従って、前記選択されたアーティファクトを互いに関連付けることに基づいて、前記IoTアプリケーションを開発するステップと、を有する方法である。
【図面の簡単な説明】
【０００６】
詳細な説明は、添付の図面を参照して説明される。図において、参照番号の最も左の桁は、その参照番号が最初に現れる図を特定する。同じ番号が機能およびコンポーネントを参照するために図面全体にわたって使用される。
【図１】本主題の一実施形態による、アプリケーション開発システムを実施するネットワーク環境を示す図である。
【図２ａ】本主題の一実施形態による、モノのインターネット（IoT）アプリケーションの開発の一例を示す図である。
【図２ｂ】本主題の一実施形態による、モノのインターネット（IoT）アプリケーションの開発の一例を示す図である。
【図３】本主題の一実施形態による、IoTアプリケーションの開発のための方法を示す図である。
【発明を実施するための形態】
【０００７】
さらに、IoTアプリケーションを開発することは、新しい言語、開発プロセスとツール、プラットフォーム、および、規格などがアプリケーション開発においてアプリケーション開発者をサポートするために開発されているにもかかわらず、従来のプラットフォームではますます困難になってきている。アプリケーション開発者の知識と経験との不足は、IoTアプリケーションの開発の失敗の主な理由の一つである。ある場合において、アプリケーション開発者が関連する理論的な知識を有していても、IoTアプリケーションの特有の性質のために、特定のシナリオにおける理論的な知識を適用することは困難である。さらに、従来のプラットフォームは、他のアプリケーション開発者による将来の使用のために、様々なアプリケーション開発者によって開発されたアーティファクトを格納するための任意のメカニズムを提供しない。既に開発されたアーティファクトの再利用性の欠如のため、多くの時間とリソースとがアプリケーションの開発時に浪費されている。
【０００８】
本主題として、モノのインターネット（IoT）アプリケーションの開発のためのシステムおよび方法について説明する。アプリケーション開発システムと称してここに記載されるシステムは、アプリケーション開発者のためにIoTアプリケーションを開発することが可能である。
【０００９】
典型的には、すべてのIoTアプリケーションは、いくつかの共通の特性やフェーズを有している。一例として、IoTアプリケーションのフェーズは、センシングフェーズ、抽出フェーズ、解析フェーズ、および、応答フェーズを含んでもよい。センシングフェーズにおいて、アプリケーションは、センサーを使用して感知またはデータを収集してもよい。抽出フェーズにおいて、アプリケーションは、関連情報を抽出するためにデータを処理する。次に、アプリケーションは、抽出されたデータを解析フェーズにおいて解析し、最終的に応答フェーズにおいてユーザ（複数のユーザ）に解析したデータを通知する。
【００１０】
IoTアプリケーションの開発のために、アルゴリズム開発者またはアプリケーション開発者によって、複数のアーティファクトが、それぞれのフェーズのために作成される。アーティファクトは、アルゴリズム、関数、ソースコード、構成スクリプト等を含んでもよい。例えば、アルゴリズム開発者が、センシング、抽出、解析および応答アルゴリズムを作成することができる。各フェーズに対応するアーティファクトは、IoTアプリケーションを開発するために、その後、互いに関連付けられてもよい。
【００１１】
本発明の主題によれば、まず、様々なアルゴリズム開発者またはアプリケーション開発者によって作成された複数のアーティファクトであって、IoTアプリケーションの各フェーズに関連する複数のアーティファクトと、アーティファクトのそれぞれに関連付けられたメタデータとを格納するためのデータベースが、一実装に従って維持される。アーティファクトのためのメタデータは、限定されるものではないが、センサーの型とアーティファクトが開発されたユースケース、および、例えば、銀行、工業又は保険ドメインなどのアーティファクトのドメインを含んでもよい。ここでいうデータベースは、アプリケーション開発システムに関連付けられた外部リポジトリ、または、アプリケーション開発システム内の内部リポジトリとすることができる。以下の説明では、データベースは、知識データベースと呼ばれる。一例において、知識データベースに格納されたアーティファクトは、再利用のためにアプリケーション開発者が利用できる。実装では、必要なときはいつでも、知識データベースに含まれるアーティファクトは更新されてもよい。例えば、新たなアーティファクトが知識データベースに追加されてもよいし、既存のアーティファクトが修正されてもよいし、有用ではないアーティファクトが知識データベースから削除されてもよい。
【００１２】
実施形態によれば、アーティファクトの各々についてのフィードバックは、アルゴリズム開発者から受信され、知識データベースに格納されてもよい。フィードバックは、アーティファクトのユーザから受信されてもよい。一例において、フィードバックは、格付けの形態で受信されてもよい。アルゴリズム開発またはアーティファクトのユーザは、アーティファクトの成功率、ユースケース、および、アーティファクトが使用される頻度などの特定のパラメータに基づいて、フィードバックを提供してもよい。前述の実施形態において、新たなフィードバックが受信されたときにはいつでも、知識データベース内のフィードバックを更新してもよい。
【００１３】
一実施形態において、知識データベースに格納されるアーティファクトは、メタデータに基づいて、知識データベースにおいて索引付けられてもよい。索引付けは、知識データベースからアーティファクトの容易な検索を可能にする。一例において、同じ種類のドメインと同じフェーズとに属するアーティファクトが、一緒にグループ化される。別の例においては、同じセンサーのタイプ、ドメイン、および、フェーズに関連するアーティファクトが、一緒にグループ化される。
【００１４】
知識データベースは、このように、索引付きのアーティファクトと、様々なユーザとアルゴリズム開発とからのフィードバックとを含む。予め格納されたアーティファクトは、各フェーズ毎に、IoTアプリケーションを開発するためにアプリケーション開発システムによって検索されることができる。予め格納されたアーティファクトは、互換的に、再利用可能なアーティファクトと呼ばれることもある。一実施態様において、アーティファクトは、IoTアプリケーションの開発中に、リアルタイムで索引付けされ分類されていてもよい。IoTアプリケーションの開発が行われる方法について、以降説明する。
【００１５】
アプリケーション開発者は、アプリケーション開発システムへの入力として、データセットおよびデータセット内のデータに対して実行される機能性を提供してもよい。データに対して実行される必要がある機能性は、開発されるIoTアプリケーションによって実行される１又は２以上のタスクがあってもよい。データセットは、開発されるアプリケーションの異なるフェーズ、１又は２以上のタスクに適したセンサーの種類、タスクが実行されるサブジェクト、および、タスクが実行されるシナリオを含んでもよい。アプリケーション開発者の入力に基づいて、アプリケーション開発システムは、知識データベースから予め格納されたアーティファクトの対応するグループを検索する。実施形態において、アプリケーション開発者によって提供される入力は、すなわち、データセット、１又は２以上のタスク、および、メタデータは、アーティファクトのグループを検索するために、互いに比較されてもよい。アプリケーション開発システムはまた、グループに含まれるアーティファクトに関連付けられたフィードバックを検索してもよい。一例において、アプリケーション開発者が、タスクは車のナンバープレートを認識するものである、と指定したとする。さらに、アプリケーション開発者が、例えば、センサーはカメラであり、フェーズはセンシングと抽出と解析とを含み、サブジェクトは小さいエリアであり、かつ、シナリオは夜間であるというデータをともなったデータセットを提供する。１又は２以上のタスクとデータセットとに基づいて、アプリケーション開発システムは、データセットと１又は２以上のタスクとに関連付けられているすべてのアルゴリズムを検索してもよい。例えば、アプリケーション開発システムは、抽出フェーズ、解析フェーズ、カメラ、夜間、および、小さいエリアに関連する複数のアーティファクトを検索してもよい。
【００１６】
実施形態によれば、アーティファクトに関連付けられたフィードバックに基づいて、アプリケーション開発者に推奨が提供される。一実施形態において、５トップにレートされたアーティファクトと言う、アーティファクトの高くレートされたセットは、特定のデータセットのために、アプリケーション開発者に推奨されてもよい。前述の実施形態において、アーティファクトの高くレートされたセットは、各フェーズのために、推奨されてもよい。アプリケーション開発者は、次いで、各フェーズのアーティファクトの推奨されたセットから、１又は２以上のアーティファクトを選択することができる。アプリケーション開発システムはまた、IoTアプリケーションを開発するための可能な最良のアーティファクトを、各フェーズ毎に、アプリケーション開発者に推奨してもよい。可能な最良のアーティファクトは、エキスパート解析、又は、エキスパート解析とフィードバックとの組み合わせに基づいて提供されてもよい。例えば、最大にレートされたアーティファクトが、各フェーズ毎に、アプリケーション開発者に推奨されてもよい。
【００１７】
アプリケーション開発者によるアーティファクトの選択に基づいて、アーティファクトは、IoTアプリケーションのフェーズに関連付けられてもよいし、または、リンクされてもよい。例えば、センシングフェーズに属するアーティファクトが、抽出フェーズに属するアーティファクトに関連付けられてもよい。同様に、抽出フェーズに属するアーティファクトが、解析フェーズに属するアーティファクトに関連付けられてもよい。
【００１８】
アルゴリズムまたはアプリケーション開発者によって開発されたアーティファクトは、知識データベースに格納されるため、アプリケーション開発システムは、アプリケーション開発者が知識データベースを使用したIoTアプリケーションを開発することを容易にし、それによって、アーティファクトの再利用を最大化し、多くの時間とリソースとを節約する。さらに、IoTアプリケーションがアプリケーション開発システムによって提供される推奨とエキスパート解析とに基づいて開発されているので、アプリケーション開発者は容易かつ正確にIoTアプリケーションを開発することができる。図1は、本主題の一実施形態によるアプリケーション開発システム102を実施するネットワーク環境100を示す。上述の実施形態において、ネットワーク環境100は、アプリケーション開発者のためのモノのインターネット（IoT）アプリケーションを開発するように構成されたアプリケーション開発システム102を含む。
【００１９】
一実施形態において、ネットワーク環境100は、幾千のパーソナルコンピュータ、ラップトップ、ブレードサーバーなどの様々なサーバ、および他のコンピューティングデバイスを含む公共ネットワーク環境とすることができる。別の実施形態では、ネットワーク環境100は、パーソナルコンピュータ、サーバ、ラップトップ、および/または、携帯電話やスマートフォンなどの通信デバイスなどの限られた数のコンピューティングデバイスをともなった、プライベートネットワーク環境であってもよい。
【００２０】
アプリケーション開発システム102は、ラップトップコンピュータ、デスクトップコンピュータ、ノートブックコンピュータ、ワークステーション、メインフレームコンピュータ、サーバ、ネットワークサーバなどの様々なコンピューティングシステムによりで実施されてもよい。一実施形態では、アプリケーション開発システム102は、既存の情報技術インフラストラクチャ内に含められてもよい。さらに、アプリケーション開発システム102は、複数のユーザ装置104-1、104-2、104-3、… 、104-Nに接続されてもよいことが理解されるであろう。ユーザ装置104-1、104-2、104-3、... 、104-Nは、総称してユーザデバイス104と称され、個別にはユーザデバイス104と称される。ユーザデバイス104は、限定されないが、デスクトップコンピュータ、ポータブルコンピュータ、携帯電話、ハンドヘルドデバイス、およびワークステーションを含んでもよい。ユーザデバイス104は、プログラマ、アルゴリズム開発者、内容領域専門家、アプリケーション開発者、ソフトウェアアーキテクト、クライアントや顧客などのユーザによって使用されてもよい。
【００２１】
図1に示すように、ユーザデバイス104は、１又は２以上のエンドユーザがアプリケーション開発システム102にアクセスして操作することを容易にするために、１又は２以上の通信リンクを介して、ネットワーク106上のアプリケーション開発システム102に通信可能に接続されている。一実施態様では、ネットワーク106は、無線ネットワーク、有線ネットワーク、またはそれらの組み合わせであってもよい。ネットワーク106はまた、例えば、インターネットやイントラネットなどの単一の大規模なネットワークのように相互に接続して機能する、個別ネットワークまたは多くのこのような個別ネットワークの集合であってもよい。ネットワーク106は、例えばイントラネット、ローカルエリアネットワーク（LAN）、ワイドエリアネットワーク（WAN）、インターネット、等の異なるタイプのネットワークの一つとして実装されてもよい。ネットワーク106は、専用ネットワーク又は共有ネットワークであってもよい。専用ネットワーク又は共有ネットワークは、相互に通信するための、たとえばハイパーテキスト転送プロトコル（HTTP）、伝送制御プロトコル/インターネットプロトコル（TCP/IP）などの様々なプロトコルを使用する異なるタイプのネットワーク関連付けの代表である。さらに、ネットワーク106は、ルータ、ブリッジ、サーバ、コンピューティングデバイス、記録装置などを含む様々なネットワークデバイスを含んでもよい。
【００２２】
ネットワーク環境100は、アプリケーション開発システム102に通信可能に接続された知識データベース108を備える。知識データベース108は、複数のアーティファクトとアーティファクトのそれぞれに関連付けられたメタデータとを格納してもよい。アーティファクトは、アルゴリズム、関数、ソースコード、構成スクリプト等を含んでもよい。アーティファクトのメタデータは、これに限定されるものではないが、センサーのタイプとアーティファクトが開発されたユースケース、および、銀行、製造業または保険ドメインなどのアルゴリズムのドメインを含んでもよい。一実施態様では、アーティファクトに関連付けられたフィードバックが、知識データベース108に記憶されてもよい。
【００２３】
知識データベース108はアプリケーション開発システム102の外部に示されているが、知識データベース108はまた、アプリケーション開発システム102の内部に実装できることが、当業者によって理解されるであろう。
【００２４】
アプリケーション開発システム102はさらに、インターフェース（複数可）110を含む。さらにインターフェース（複数可）110は、たとえば製品基板、マウス、外部メモリ及びプリンタなどの周辺装置（複数可）とインターフェースする、ソフトウェアやハードウェアの様々なインターフェースを含んでもよい。追加的に、インターフェース（複数可）110は、アプリケーション開発システム102を、Webサーバ及び外部リポジトリなどの他のデバイスと通信可能にすることができる。インターフェース（複数可）110はまた、例えば、LAN、ケーブルなどの有線ネットワーク、および、WLAN、セルラまたは衛星などの無線ネットワークを含む、広範囲のネットワークとプロトコルタイプとによる複数の通信を容易にする。この目的のために、インターフェース（複数可）110は、１又は２以上のポートを含んでもよい。
【００２５】
実施形態において、アプリケーション開発システム102は、メモリ114に接続されているプロセッサ（複数可）112を含む。プロセッサ112（複数可）は、１又は２以上のマイクロプロセッサ、マイクロコンピュータ、マイクロコントローラ、デジタル信号プロセッサ、中央処理装置、ステートマシン、論理回路、及び/又は、動作命令に基づいて信号を処理する任意のデバイスとして実現することができる。とりわけ、プロセッサ（複数可）112は、メモリ114に記憶されたコンピュータ可読命令をフェッチして実行するように構成されてもよい。
【００２６】
メモリ114は、例えば、スタティック・ランダム・アクセス・メモリ（SRAM）およびダイナミック・ランダム・アクセス・メモリ（DRAM）などの揮発性メモリ、および/または、リード・オンリー・メモリ（ROM）、消去可能プログラマブルROM、フラッシュメモリ、ハードディスク、光ディスクおよび磁気テープなどの不揮発性メモリを含む、当業界に知られている任意のコンピュータ可読記録媒体を含んでもよい。
【００２７】
さらに、アプリケーション開発システム102は、モジュール（複数可）116およびデータ118を含む。モジュール（複数可）116は、例えば、カタログモジュール120、推奨モジュール122、関連付けモジュール124および他のモジュール（複数可）126を含む。他のモジュール126は、アプリケーション開発システム102によって実行されるアプリケーションまたは関数を補足するプログラムまたは符号化された命令を含んでもよい。データ118は、カタログ128および他のデータ130を含んでもよい。他のデータ130は、とりわけ、処理された、受信された、または、１又は２以上のモジュール（複数可）の実行の結果として生成されたデータを格納するためのリポジトリとして機能してもよい。
【００２８】
実施形態によれば、アプリケーション開発システム102のカタログモジュール120は、様々なアルゴリズム又はアプリケーション開発者からの複数のアーティファクトとそれぞれのアーティファクトに関連付けられたメタデータとを受信し、これらを知識データベース108に格納するように構成されてもよい。アーティファクトは、再利用可能なアーティファクトと互換的に呼ばれてもよい。アーティファクトは、アルゴリズム、関数、ソースコード、構成スクリプト等を含んでもよい。アーティファクトのメタデータは、これらに限定されるものではないが、センサーのタイプとアーティファクトが開発されたユースケース、および、銀行、製造業や保険ドメインなどのアルゴリズムのドメインを含んでもよい。
【００２９】
さらに、複数のアーティファクトは、IoTアプリケーションの異なるフェーズに関係してもよい。先に示したように、交換的にアプリケーションと呼ぶすべてのIoTアプリケーションは、例えば、センシングフェーズ、抽出フェーズ、解析フェーズおよび応答フェーズのうちの１又は２以上などの、いくつかのフェーズを包含する。センシングフェーズでは、アプリケーションは、センサーを使用してデータを感知または収集してもよい。抽出フェーズでは、アプリケーションは、関連情報を抽出するためにデータを処理する。次に、アプリケーションは、解析フェーズにおいて抽出されたデータを解析し、最終的に応答フェーズにおいてユーザ（複数可）に解析したデータを通知する。したがって、任意のIoTアプリケーションの開発のために、アーティファクトは、各フェーズごとに作成される。例えば、火災管理アプリケーションは、煙センサーおよび温度センサーを使用してデータを収集する。アプリケーションは、次に煙のレベルなどのデータを抽出し、次に例えば、上限を超えた煙のレベルの増加があるか否かというチェックするために、抽出されたデータを解析する。最後に、アプリケーションは、最終結果をユーザに通知する。たとえば、煙のレベルの増加があった場合、火災管理アプリケーションは、アラームと警告灯のセットを介して、建物の住民と近隣の人々すべてに通知する。
【００３０】
一実施形態では、カタログモジュール120は、さらに、アルゴリズムやアプリケーション開発者から、アーティファクトに関連付けられたフィードバックを受信するように構成されてもよい。カタログモジュール120は、知識データベース108にフィードバックを格納してもよい。フィードバックは、また、アーティファクトのユーザから受信されてもよい。一例において、フィードバックは、悪い、平均、良い、非常に良い、および、優れているなどの格付けの形態で受信されてもよい。別の例では、フィードバックは、５段階のスコアなどのようにスコアの形態で受信されてもよい。アルゴリズム開発またはアーティファクトのユーザは、アーティファクトの成功率、ユースケース、および、使用される頻度のような特定のパラメータに基づいてフィードバックを提供してもよい。従って、異なるシナリオのために、異なるフィードバックがアーティファクトのために受信される。たとえば、アプリケーションが夜間のために構築される場合、このパラメータを考慮したフィードバックが受信されてもよい。前述の例において、このパラメータに基づいて、アーティファクトは非常に良いというフィードバックを受信してもよいし、他のアーティファクトが平均というフィードバックを受信してもよい。
【００３１】
さらに、カタログモジュール120は、メタデータに基づいて、知識データベース108のアーティファクトに索引付けするように構成されてもよい。結果として、１又は２以上のグループが決定される。例えば、センサー、ドメイン、およびフェーズの同じ型に属するアーティファクトが一緒にグループ化される。１又は２以上のグループは、グループA、グループB、グループC、グループDなどのように命名されてもよい。一例において、グループAは、夜間においてカメラによってキャプチャされたデータから情報を抽出することが可能な抽出フェーズに属するアーティファクトを含む。別の例において、グループBは、夜間において煙センサーによってキャプチャされたデータから情報を抽出することが可能な抽出フェーズに属するアーティファクトを含む。さらに別の例では、グループCは、日中にカメラによってキャプチャされたデータから情報を抽出することが可能な解析フェーズに属するアーティファクトを含む。索引付けは、アプリケーション開発者がIoTアプリケーションを開発するときに、アーティファクトの検索を容易にすることができる。索引付けられたアーティファクトは、カタログ128として格納され、IoTアプリケーションを開発するために、アプリケーション開発システム102によって検索されることができる。アプリケーション開発システム102がIoTアプリケーションを開発する方法は、以降説明する。
【００３２】
IoTアプリケーションが開発される場合、カタログモジュール120は、アプリケーション開発者からの入力を受信する。この入力は、データセットと、開発されるIoTアプリケーションによって実行される１又は２以上のタスクであってもよい。データセットは、１又は２以上のタスクに適するセンサーの種類、１又は２以上のタスクが実行されるサブジェクト、および、タスクが実行されるシナリオに関連する異なるフェーズを含んでもよい。たとえば、アプリケーション開発者が、夜間における自動車のナンバープレートの認識のためのIoTアプリケーションを開発したい場合、入力は、二値化というタスクと、認識されるべきナンバープレートの画像、センサーとしてのカメラ、小さいエリアというサブジェクト、静止画という画像の種類、および、夜間というシナリオを含むデータセットとを含む。
【００３３】
入力に基づいて、カタログモジュール120は、カタログ128から、データセットと１又は２以上のタスクに関連する再利用可能なアーティファクトのグループを検索する。上記の例で示したように、入力は、二値化というタスクと、認識されるべきナンバープレートの画像、センサーとしてのカメラ、小さいエリアというサブジェクト、静止画という画像の種類、および、夜間というシナリオを含むデータセットとを含む。したがって、入力に基づいて、カタログモジュール120は、グループAを検索することができる。前述したように、グループAは、夜間においてカメラによってキャプチャされたデータから情報を抽出することが可能な抽出フェーズに属するアーティファクトを含む。さらに、カタログモジュール120は、アーティファクトに関連付けられたフィードバックを、知識データベース108から検索するように構成されてもよい。
【００３４】
検索されたアーティファクトとアーティファクトのそれぞれに関連付けられたフィードバックとに基づいて、推奨モジュール122は、フィードバックに基づいて、検索されたアーティファクトの中からのアーティファクトを、アプリケーション開発者に推奨する。先に示したように、フィードバックは、悪い、平均、良い、非常に良い、優れているというような格付けの形態、または、５段階のスコアの形態のような格付けの形態により、受信されてもよい。この場合、フィードバックが格付けの形態で受信されたとき、高レートのアーティファクトが、アプリケーション開発者に推奨されてもよい。高レートのアーティファクトは、非常に良いまたは優れているといういずれかの評価を受けているアーティファクトとして理解することができる。別の場合において、フィードバックがスコアの形態で受信されたとき、高いスコアのアーティファクトが、アプリケーション開発者に推奨されてもよい。高いスコアのアーティファクトは、５段階のうち３又はそれ以上のスコアを受信したアーティファクトとして理解することができる。推奨モジュール122がグループAを検索したとき、フィードバックが格付けの形態で受信され、グループAが10アルゴリズムを含み、そのうち6アルゴリズムが評価として非常に良いまたは優れているといういずれかの評価を受けている場合を例にすると、推奨モジュール122は、アプリケーション開発者にこれらの6のアルゴリズムを推奨することができる。同様に、推奨モジュール122がグループBとグループCとを検索した場合も、推奨モジュール122は、グループBとCとに存在するアルゴリズムの中から高くレートされているアルゴリズムを推奨することができる。
【００３５】
続いて、推奨モジュール122は、アプリケーション開発者から、推奨されたアーティファクトの中から選択されたアーティファクトを受信する。アプリケーション開発者は、複雑さ、処理時間等に基づいて、アーティファクトを選択してもよい。さらにまた、推奨モジュール122は、アプリケーション開発者に、検索されたアーティファクトの中から、各フェーズ毎のアーティファクトを推奨してもよい。アーティファクトは、IoTアプリケーションの開発のための可能な最良のアーティファクトであってもよい。例えば、最大にレートされたアーティファクトが、各フェーズ毎に、アプリケーション開発者に推奨されてもよい。可能な最良のアーティファクトは、エキスパート解析、又はエキスパート解析とフィードバックとの組み合わせに基づいて提供されてもよい。
【００３６】
アプリケーション開発者によって選択されたアーティファクトまたは可能な最良のアーティファクトに基づいて、関連付けモジュール124は、IoTアプリケーションのフェーズにアーティファクトを関連付けるまたはリンクするように構成されてもよい。例えば、センシングフェーズに属するアーティファクトは、抽出フェーズに属するアーティファクトに関連付けられてもよい。同様に、抽出フェーズに属するアーティファクトは、解析フェーズに属するアーティファクトに関連付けられてもよい。
【００３７】
アルゴリズム開発者によって開発されたアーティファクトは、知識データベース108に格納されている。そのため、アプリケーション開発システム102は、多数のアプリケーション開発者が知識データベース108を使用したIoTアプリケーションを開発することを容易にし、それによって、アーティファクトの再利用を最大化し、多くの時間とリソースとを節約する。さらに、アプリケーション開発システム102によって提供される推奨とエキスパート解析とに基づいてIoTアプリケーションが開発されるため、アプリケーション開発者は容易かつ正確にIoTアプリケーションを開発することができる。
【００３８】
図2a及び図2bは、本主題の実施形態によるモノのインターネット（IoT）アプリケーションの開発の一例を示す。
【００３９】
開発されるIoTアプリケーションは、すなわち、駐車場の車のナンバープレートの中から、車のナンバープレートに対応するもの、関連するナンバープレートを識別するスマートビルの夜間の車の自動化プロジェクトに関連している。図2aに示すように、図的表現200は、IoTアプリケーションの開発のためのアルゴリズムツリーを示している。アプリケーション開発システム102は、アプリケーション開発者から、データセットと開発されるIoTアプリケーションによって実行される１又は２以上のタスクを受信する。ナンバープレートは小さな関心領域（ROI）であり、画像タイプが静止画であり、シナリオが夜間である、すなわち、アプリケーションが低光の中でうまく動作する必要があるため、データセットは、認識されるナンバープレートの画像、センサーとしてのカメラ、小さいエリアとしてのサブジェクトを含む。タスクは、局在化、二値化、及び光学文字認識（OCR）を含む。入力に基づいて、アプリケーション開発システム102は、知識データベース108から、入力に関連するすべてのアルゴリズムを検索する。
【００４０】
図2Aに示すように、局在化タスクのために、二つのアルゴリズムが検索された。すなわち、コントラストベースアルゴリズムとエッジベースアルゴリズムとが検索された。さらに、二値化タスクのために、４つのアルゴリズムが検索された。４つのアルゴリズムは、OTSUアルゴリズム、Sauvolaアルゴリズム、Niblackアルゴリズム、およびwolfアルゴリズムを含む。OCRタスクは、3つのアルゴリズムを含む。すなわち、Tesseractアルゴリズム、GOCRアルゴリズム、およびfine readerアルゴリズムを含む。アプリケーション開発システム102は、各アルゴリズムに対して受信したフィードバックに基づいてアルゴリズムの24種類の組み合わせ（2 × 4 × 3 = 24）を解析し、アプリケーション開発者に高いレートのアルゴリズムを推奨することができる。アプリケーション開発者は、IoTアプリケーションを開発するために、高くレートされたアルゴリズムの中からアルゴリズムを選択することができる。アプリケーション開発システム102はまた、エキスパート解析又はエキスパート解析とフィードバックとの組み合わせに基づいて、アプリケーション開発者に、可能な最良のアルゴリズムを提供することができる。アプリケーション開発システム102は、IoTアプリケーションを開発するために、選択されたまたは可能な最良のアルゴリズムを関連付けてもよい。
【００４１】
図2bにおいて、図的表現250は、IoTアプリケーションを開発するための可能な最良のアルゴリズムの関連付けを示している。図2bに示すように、局在化タスクについて、コントラストベースアルゴリズムが、コントラストベースアルゴリズムとエッジベースアルゴリズムとの中からの可能な最良のアルゴリズムである。二値化タスクについて、wolfアルゴリズムが、OTSUアルゴリズム、Sauvolaアルゴリズム、Niblackアルゴリズム、およびwolfアルゴリズムの中からの可能な最良のアルゴリズムである。OCRのタスクについて、Tesseractアルゴリズムが、Tesseractアルゴリズム、GOCRアルゴリズム、およびfine readerアルゴリズムの中からの可能な最良のアルゴリズムである。これらのアルゴリズムは、次いで、駐車場の車のナンバープレートの中から、車のナンバープレートに対応するもの、関連するナンバープレートを識別するためのIoTアプリケーションを開発するために互いに関連付けられる。
【００４２】
図3は、本主題の一実施形態による、IoTアプリケーションの開発のための方法300を示す。方法300は、アプリケーション開発システム102などのコンピューティングデバイスにおいて実装される。方法300は、コンピュータ実行可能命令の一般的なコンテキストにより説明することができる。一般に、コンピュータ実行可能命令は、特定の機能を実行するかまたは特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造、プロシージャ、モジュール、関数などを含むことができる。方法300はまた、通信ネットワークを介してリンクされるリモート処理デバイスによって機能が実行される分散コンピューティング環境で実施することもできる。
【００４３】
方法300が説明される順序は、限定として解釈されるものではなく、この方法または代替方法を実装するために、任意の数の記載された方法のブロックを、任意の順序で組み合わせることができる。さらに、この方法は、任意の適切なハードウェア、ソフトウェア、ファームウェア、またはこれらの組合せで実行することができる。
【００４４】
ブロック302において、方法300は、アプリケーション開発者からの入力を取得することを含む。この入力に基づいて、モノのインターネット（IoT）アプリケーションが開発される。ここで入力は、データセットとIoTアプリケーションによって実行される１又は２以上のタスクを含む。データセットは、１又は２以上のタスクに適するセンサーの種類、１又は２以上のタスクが実行されるサブジェクト、１又は２以上のタスクが実行されるシナリオと関連する異なるフェーズを含んでもよい。例えば、アプリケーション開発者が夜間において車のナンバープレートの認識するためのIoTアプリケーションを開発したい場合、入力は、認識するためのナンバープレートの画像、センサーとしてのカメラ、小さいエリアとしてのサブジェクト、静止画としての画像の種類、および、夜間というシナリオを含むデータセットを含んでもよい。入力は、さらに、二値化および局在化のような１又は２以上のタスクを含んでもよい。一実施態様において、カタログモジュール120は、アプリケーション開発者からデータセットを取得する。
【００４５】
ブロック304において、方法300は、入力に基づいて、知識データベース108から、複数のアーティファクトを検索する。上記のブロック302に示されるように、アプリケーション開発者は夜間において自動車のナンバープレートを認識するためのIoTアプリケーションを開発したい場合、入力は、認識するためのナンバープレートの画像、センサーとしてのカメラ、小さいエリアとしてのサブジェクト、静止画としての画像の種類、および、夜間というシナリオを含むデータセットを含む。入力は、さらに、二値化などのタスクを含むことができる。したがって、入力に基づいて、複数のアーティファクトが、知識データベース108から検索される。実施形態では、入力とメタデータとの比較に基づいて、アーティファクトが検索されてもよい。実施形態によれば、カタログモジュール120は、入力に基づいて、知識データベース108から複数のアーティファクトを検索するように構成されている。
【００４６】
ブロック306において、方法300は、アーティファクトに関連付けられたフィードバックに基づいて、複数のアーティファクトの中からのアーティファクトを、アプリケーション開発者に推奨することを含む。アーティファクトのそれぞれについてのフィードバックは、悪い、平均、良い、非常に良い、および、優れているなどの格付けの形態であってもよい。高くレートされたアーティファクトが、アプリケーション開発者に推奨されてもよい。高くレートされたアーティファクトは、非常に良いまたは優れているいずれかのレートを受けているアーティファクトとして理解することができる。一実施形態では、推奨モジュール122は、アプリケーション開発者に高くレートされたアーティファクトを推奨する。
【００４７】
ブロック308において、方法300は、アプリケーション開発者から、推奨されたアーティファクトの中から選択されたアーティファクトを受信することを含む。アプリケーション開発者は、複雑さ、処理時間等に基づいて、アーティファクトを選択してもよい。たとえば、10個のアーティファクトがアプリケーション開発者に推奨されている場合、アプリケーション開発者は、10個のアーティファクトの中から5個のアーティファクトを選択することもできる。一実施態様では、推奨モジュール122は、アプリケーション開発者から、推奨されたアーティファクトの中から選択されたアーティファクトを受信する。
【００４８】
ブロック310において、方法300は、選択されたアーティファクトを互いに関連付けることに基づいて、IoTアプリケーションを開発することを含む。アーティファクトは、IoTアプリケーションのフェーズに基づいて、互いに関連付けられてもよい。例えば、センシングフェーズに属するアーティファクトが、抽出フェーズに属するアーティファクトに関連付けられてもよい。同様に、抽出フェーズに属するアーティファクトが、解析フェーズに属するアーティファクトに関連付けられてもよい。一実施態様では、関連付けモジュール124は、IoTアプリケーションを開発するためにアーティファクトを互いに関連付けるように構成されてもよい。
【００４９】
アルゴリズムまたはアプリケーション開発者によって開発されたアーティファクトは、知識データベース108に格納される。そのため、アプリケーション開発システム102は、多数のアプリケーション開発者が知識データベース108を使用してIoTアプリケーションを開発することを容易にし、それによって、アーティファクトの再利用を最大化し、多くの時間とリソースとを削減する。さらに、アプリケーション開発システム102によって提供される推奨とエキスパート解析に基づいて、IoTアプリケーションが開発されるため、アプリケーション開発者は容易かつ正確にIoTアプリケーションを開発することができる。
【００５０】
IoTアプリケーションを開発するための方法及びシステムの実施形態は、構造的特徴および/または方法に特有の言語で説明してきたが、本発明は必ずしも説明した特定の特徴または方法に限定されないことを理解すべきである。むしろ、特定の特徴および方法は、IoTアプリケーションを開発するための例示的な実施形態として開示されている。
【符号の説明】
【００５１】
１０２  アプリケーション開発システム
１０４−１、１０４−２、１０４−３、１０４−Ｎ  ユーザ装置
１０６  ネットワーク
１０８  知識データベース
１１０  インターフェース
１１２  プロセッサ
１１４  メモリ
１１６  モジュール
１１８  データ
１２０  カタログモジュール
１２２  推奨モジュール
１２４  関連付けモジュール
１２６  他のモジュール
１２８  カタログ
１３０  他のデータ
【図１】
2014229321.tif 000003
【図２ａ】
2014229321.tif 000004
【図２ｂ】
2014229321.tif 000005
【図３】
2014229321.tif 000006
【外国語明細書】
2014229321000001.pdf