(57)【要約】      （修正有）【課題】選択的な方法でソフトウェアサービスを自動編成するソフトウェアサービス実行装置を提供する。【解決手段】ソフトウェアサービス実行装置１０は、データ処理要求を受信し、受信したデータ処理要求は１又は複数の要求データ処理機能を定め、１又は複数のソフトウェアサービスの実行スケジュールを構成する。ソフトウェアサービス実行装置は、実行スケジュールの構成及び実行の記録を維持するよう構成される機械学習メカニズム１６を更に有する。機械学習メカニズムは、実行スケジュールの構成及び実行の記録の分析にソフトウェアサービスの選択の基礎を置く。【選択図】図１
2018067302.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアサービス実行装置であって、プロセッサハードウェアと、前記プロセッサハードウェアに結合されるメモリハードウェアと、を有し、前記メモリハードウェアは複数のソフトウェアサービスの各々を識別するレジストリを格納するよう構成され、各々の識別されたソフトウェアサービスは、前記レジストリの中で指定される個々のデータ処理機能を実行するよう構成され、
前記プロセッサハードウェアは、前記メモリに格納された処理命令を実行して、
ソフトウェア実行制御プロセスであって、複数のデータ処理要求の各々について、
前記データ処理要求を受信するステップであって、前記受信したデータ処理要求は、１又は複数の要求データ処理機能を定める、ステップと、
前記レジストリの中で識別される前記複数のソフトウェアサービスの中から１又は複数のソフトウェアサービスの実行スケジュールを構成するステップであって、前記１又は複数の要求データ処理機能の各々について、前記レジストリの中で指定される前記処理機能が前記要求データ処理機能と一致するソフトウェアサービスを識別すること、及び前記識別したソフトウェアサービスを前記実行スケジュールに含めることにより、前記受信したデータ処理要求を満たす、ステップと、
前記実行スケジュールの実行を制御するステップと、
を含むソフトウェア実行制御プロセスと、
機械学習メカニズムプロセスであって、前記受信したデータ処理要求の各々について、前記実行スケジュールの前記構成及び前記実行スケジュールの前記実行の記録を維持する、機械学習メカニズムプロセスと、
を実行するよう構成され、
前記構成するステップは、自動構成モードで、前記レジストリの中で指定される単一の処理機能が前記要求データ処理機能のうちの１つに一致する１より多くのソフトウェアサービスが識別される場合、前記機械学習メカニズムプロセスによる自動選択候補として、前記１より多くのソフトウェアサービスの中から１つのソフトウェアサービスの選択を要求するステップを有し、
前記機械学習メカニズムプロセスは、前記選択の要求に対して、前記自動選択候補の中からの１つのソフトウェアサービスの選択により応答するステップであって、前記自動選択候補のうちのいずれかが識別され又は実行される実行スケジュールの前記構成及び実行の記録の分析に前記選択の基礎を置く、ステップを有する、
ソフトウェアサービス実行装置。
【請求項２】
前記レジストリの中で識別される前記複数のソフトウェアサービスの中の各々のソフトウェアサービスは、前記ソフトウェア実行制御部からの呼び出しに応じて前記プロセッサハードウェアにより実行されると、前記呼び出しの中で識別される入力データに対して前記個々のデータ処理機能を実行する処理を実行するよう構成され、前記実行された処理の結果は、処理結果又はタイムアウトの出力であり、
前記実行スケジュールの実行を制御するステップは、前記レジストリの中で指定される前記個々のデータ処理機能を前記受信したデータ処理要求により決定される入力データに対して実行するために前記実行スケジュールに含まれる前記の又は各ソフトウェアサービス、及び／又は前記実行スケジュールに含まれる先行するソフトウェアサービス、を呼び出すステップを有する、
請求項１に記載のソフトウェアサービス実行装置。
【請求項３】
前記機械学習メカニズムプロセスにより維持される前記実行スケジュールの前記実行の前記記録は、前記個々のデータ処理要求の前記実行スケジュールの前記の制御される実行の中で前記ソフトウェア実行制御プロセスにより呼び出される前記ソフトウェアサービスの各々について、前記ソフトウェアサービスの前記実行された処理の前記結果の指示を、タイムアウト又は処理結果の出力として有し、
前記機械学習メカニズムプロセスは、少なくとも部分的に、前記自動選択候補の実行した処理結果の前記記録された指示に、前記自動選択候補の中からの１つのソフトウェアサービスの前記選択の基礎を置く、
請求項２に記載のソフトウェアサービス実行装置。
【請求項４】
前記機械学習メカニズムプロセスにより維持される前記実行スケジュールの前記実行の前記記録は、前記呼び出されたソフトウェアサービスの各々について、前記呼び出しの中で識別される前記入力データの１又は複数の特性の値を更に有し、
前記機械学習メカニズムプロセスは、少なくとも部分的に、前記要求データ処理機能の前記入力データの特性の値と前記実行した処理の結果が処理結果の出力である呼び出しの中で識別された前記入力データの前記１又は複数の特性の前記記録された値との間の類似性の定量化に、前記自動選択候補の中からの１つのソフトウェアサービスの前記選択の基礎を置く、
請求項３に記載のソフトウェアサービス実行装置。
【請求項５】
前記入力データの前記１又は複数の特性は、入力データの量の測定値を含む、
請求項４に記載のソフトウェアサービス実行装置。
【請求項６】
前記構成するステップは、手動構成モードで、前記レジストリの中で指定される前記処理機能が前記要求データ処理機能のうちの１つと一致する１より多くのソフトウェアサービスが識別される場合、前記装置のユーザによる手動選択候補として、前記１より多くのソフトウェアサービスの中からの１つのソフトウェアサービスの選択を要求するステップと、前記ユーザから要求選択を受信するステップと、を含み、
前記機械学習メカニズムプロセスは、前記個々のデータ処理要求の前記実行スケジュールの前記構成の前記記録の中に、前記手動選択候補のアイデンティティ及び前記受信したユーザ選択の指示を含め、
前記機械学習メカニズムプロセスは、少なくとも部分的に、前記自動選択候補に一致する手動選択候補の中からの前記受信したユーザ選択の前記記録された指示に、前記自動選択候補の中からの１つのソフトウェアサービスの前記選択の基礎を置く、
請求項１に記載のソフトウェアサービス実行装置。
【請求項７】
前記機械学習メカニズムプロセスは、前記自動選択候補のうちのいずれかが識別され又は実行される実行スケジュールの前記構成及び実行の記録の前記分析の結果として、前記自動選択候補の中からの１つのソフトウェアサービスの前記選択における信頼度を生成するステップを有し、
前記構成するステップは、前記生成された信頼度が閾最小値より高い場合、１つのソフトウェアサービスの前記選択を前記実行スケジュールに追加するステップと、前記生成された信頼度が閾最小値以下である場合、前記要求データ処理機能を実行するために、１つのソフトウェアサービスの選択のために前記手動構成モードに戻るステップと、を有する、
請求項６に記載のソフトウェアサービス実行装置。
【請求項８】
前記機械学習メカニズムプロセスにより維持される前記実行スケジュールの前記構成の前記記録は、前記受信したデータ処理要求により定められる前記１又は複数の要求データ処理機能の各々について、前記呼び出しの中で識別される前記入力データの１又は複数の特性の値を有し、
前記機械学習メカニズムプロセスは、少なくとも部分的に、前記要求データ処理機能の前記入力データの特性の値と前記手動選択候補のうちの１又は複数が前記自動選択候補の中にある構成の記録の中の前記入力データの前記１又は複数の特性の値との間の類似性の定量化に、前記自動選択候補の中からの１つのソフトウェアサービスの前記選択の基礎を置く、
請求項６に記載のソフトウェアサービス実行装置。
【請求項９】
前記受信したデータ処理要求により定められる前記１又は複数の要求データ処理機能は、要求データ処理機能シリーズとして定められ、前記実行スケジュールの前記構成は、各々の要求データ処理機能について、前記データ処理要求により定められる先行する要求データ処理機能についての前記実行スケジュールの前記構成及び実行に続いて実行される、
請求項１に記載のソフトウェアサービス実行装置。
【請求項１０】
前記プロセッサハードウェアは、
ソフトウェア実行プロセスであって、前記複数のソフトウェア機能の中からソフトウェア機能を識別し及び入力データを識別する前記ソフトウェア実行制御プロセスからの呼び出しに応答して、前記実行における入力データとして、前記識別された入力データにより前記識別されたソフトウェアサービスをロードし実行するステップを含む、
請求項２に記載のソフトウェアサービス実行装置。
【請求項１１】
請求項１乃至１０のいずれか一項に記載のソフトウェアサービス実行装置を有するソフトウェア実行システムであって、前記メモリハードウェアは、
前記複数のソフトウェアサービスを格納するソフトウェアライブラリ、
を格納するよう更に構成される、ソフトウェア実行システム。
【請求項１２】
ソフトウェアサービス実行方法であって、
複数のソフトウェアサービスの各々を識別するレジストリを格納するステップであって、各々の識別されたソフトウェアサービスは、前記レジストリの中で指定される個々のデータ処理機能を実行するよう構成される、ステップと、
複数のデータ処理要求の各々について、
前記データ処理要求を受信するステップであって、前記受信したデータ処理要求は、１又は複数の要求データ処理機能を定める、ステップと、
前記レジストリの中で識別される前記複数のソフトウェアサービスの中から１又は複数のソフトウェアサービスの実行スケジュールを構成するステップであって、前記１又は複数の要求データ処理機能の各々について、前記レジストリの中で指定される単一の処理機能が前記要求データ処理機能と一致するソフトウェアサービスを識別すること、及び前記識別したソフトウェアサービスを前記実行スケジュールに含めることにより、前記受信したデータ処理要求を満たす、ステップと、
前記実行スケジュールの実行を制御するステップと、
前記受信したデータ処理要求の各々について、前記実行スケジュールの前記構成及び前記実行スケジュールの前記実行の記録を維持するステップと、
を有し、
前記構成するステップは、自動構成モードで、前記レジストリの中で指定される単一の処理機能が前記要求されたデータ処理機能のうちの１つに一致する１より多くのソフトウェアサービスが識別される場合、機械学習メカニズムプロセスによる自動選択候補として、前記１より多くのソフトウェアサービスの中から１つのソフトウェアサービスの選択を要求するステップを有し、
前記方法は、前記選択の要求に対して、前記自動選択候補の中からの１つのソフトウェアサービスの選択により応答するステップであって、前記自動選択候補のうちのいずれかが識別され又は実行される実行スケジュールの前記構成及び実行の記録の分析に前記選択の基礎を置く、ステップを更に有する、
ソフトウェアサービス実行方法。
【請求項１３】
処理命令を格納する非一時的コンピュータ可読媒体であって、前記処理命令は、プロセッサハードウェアにより実行されると、前記プロセッサハードウェアに、
複数のソフトウェアサービスの各々を識別するレジストリを格納させ、各々の識別されたソフトウェアサービスは、前記レジストリの中で指定される個々のデータ処理機能を実行するよう構成され、
複数のデータ処理要求の各々について、
前記データ処理要求を受信させ、前記受信したデータ処理要求は、１又は複数の要求データ処理機能を定め、
前記レジストリの中で識別される前記複数のソフトウェアサービスの中から１又は複数のソフトウェアサービスの実行スケジュールを構成させ、前記１又は複数の要求データ処理機能の各々について、前記レジストリの中で指定される単一の処理機能が前記要求データ処理機能と一致するソフトウェアサービスを識別すること、及び前記識別したソフトウェアサービスを前記実行スケジュールに含めることにより、前記受信したデータ処理要求を満たし、
前記実行スケジュールの実行を制御させ、
前記受信したデータ処理要求の各々について、前記実行スケジュールの前記構成及び前記実行スケジュールの前記実行の記録を維持させ、
前記構成は、自動構成モードで、前記レジストリの中で指定される単一の処理機能が前記要求データ処理機能のうちの１つに一致する１より多くのソフトウェアサービスが識別される場合、機械学習メカニズムプロセスによる自動選択候補として、前記１より多くのソフトウェアサービスの中から１つのソフトウェアサービスの選択を要求することを含み、
前記処理命令は、前記プロセッサハードウェアに、さらに、前記選択の要求に対して、前記自動選択候補の中からの１つのソフトウェアサービスの選択により応答させ、前記自動選択候補のうちのいずれかが識別され又は実行される実行スケジュールの前記構成及び実行の記録の分析に前記選択の基礎を置く、
非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
実施形態は、データ処理アーキテクチャの分野に係り、特に、ウェブソフトウェアサービスのようなソフトウェアサービスの自動編成に関する。
【背景技術】
【０００２】
既にマイクロサービスであるウェブサービスのようなソフトウェアサービスの自動編成及び構成は、希であり、従来技術のアプローチはウェブサービスの注釈に大きく依存している。
【０００３】
ウェブサービスの編成及び構成を自動化しようとしている既存の技術は、２つの大きなグループに分けられる：
−いかなる決定も行わないもの。実行される可能性のあるもの全てが実行され、設定されたセマンティクスにより結果は等価である。
−形式論理学に基づく決定を行うもの。これは、殆どの高度な場合に２つの要素を有する：
ａ．サービスにより提供されるサービス品質に関する何らかのメタデータ、
ｂ．ユーザ又はルールセットにより要求される品質に調整する計画を見付けるために、上述のメタデータを使用する編成アルゴリズム。
【０００４】
問題は、編成が自動的ではなく、注釈が非常に重いことである。新しいサービスに注釈を付けることが困難であり、実行計画は煩わしい。設定されたセマンティクスが適用できない幾つかのシナリオがあり、幾つかの他のシナリオでは、設定されたセマンティクスは膨大な計算コストを意味する場合がある。したがって、より選択的な方法でソフトウェアサービスを編成するシステムを見出すことが望ましい。
【発明の概要】
【０００５】
本発明の実施形態は、ソフトウェアサービス実行装置であって、複数のソフトウェアサービスの各々を識別するレジストリであって、各識別されたソフトウェアサービスは前記レジストリ内で指定される個々のデータ処理機能を実行するよう構成される、レジストリと、ソフトウェア実行制御部であって、複数のデータ処理要求の各々について、前記データ処理要求を受信し、受信したデータ処理要求は１又は複数の要求データ処理機能を定め、前記レジストリ内の前記複数のソフトウェアサービスの中からの１又は複数のソフトウェアサービスの実行スケジュールを構成して、前記１又は複数の要求データ処理機能の各々について、前記レジストリ内で指定された前記処理機能が前記要求データ処理機能に一致するソフトウェアサービスを識別すること、及び前記識別したソフトウェアサービスを前記実行スケジュールに含めること、により前記受信したデータ処理要求を満たし、前記実行スケジュールの実行を制御する、よう構成されるソフトウェア実行制御部と、を有する、ソフトウェアサービス実行装置を含む。装置は、機械学習メカニズムであって、受信したデータ処理要求の各々について、前記実行スケジュールの前記構成及び前記実行スケジュールの前記実行の記録を維持するよう構成される機械学習メカニズムを更に有し、前記構成は、自動構成モードで、前記レジストリ内で指定された単一の処理機能が要求データ処理機能のうちの１つに一致する１より多くのソフトウェアサービスが識別される場合、前記機械学習メカニズムによる自動選択候補として、前記１より多くのソフトウェアサービスの中からの１つのソフトウェアサービスの選択を要求し、前記機械学習メカニズムは、前記選択の要求に対して、前記自動選択候補の中からの１つのソフトウェアサービスの選択により応答するよう構成され、前記自動選択候補のうちのいずれかが識別され又は実行される実行スケジュールの前記構成及び実効の記録の分析に前記選択の基礎を置く。
【０００６】
有利なことに、実施形態は、機械学習メカニズムを活用して、実行スケジュールの前の構成及びソフトウェアサービスの実行に関する知識を利用し、現在の実行スケジュールの構成について決定する。実行スケジュールの構成及びその実行に関する情報を記録することにより、機械学習メカニズムは、複数のソフトウェアサービスが要求データ処理機能を満たすために処理を実行するのに適する場合に「タイブレイク（break  ties）」（つまりそれらの中で選択する）を求めることができる知識ベースを構築する。
【０００７】
有利なことに、このような機械学習メカニズムは、手動入力が無い場合に受信データ処理要求を満たすために、ソフトウェアサービスの知的スケジューリングを可能にする。前のデータ処理要求を満たす際の手動入力は、機械学習メカニズムにより利用できることに留意する。
【０００８】
任意的に、前記レジストリの中で識別される前記複数のソフトウェアサービスの中の各々のソフトウェアサービスは、前記ソフトウェア実行制御部からの呼び出しに応じて、前記呼び出しの中で識別される入力データに対して前記個々のデータ処理機能を実行する処理を実行するよう構成され、前記実行される処理の結果は、処理結果の出力又はタイムアウトであり、前記実行スケジュールの実行を制御するステップは、前記レジストリの中で指定される前記個々のデータ処理機能を前記受信データ処理要求により決定される入力データに対して実行するために前記実行スケジュールに含まれる前記の又は各ソフトウェアサービス、及び／又は前記実行スケジュールに含まれる先行するソフトウェアサービス、を呼び出すステップを有する。
【０００９】
有利なことに、このようなソフトウェアサービス及び実行制御部の構成により、ソフトウェアサービスは、実行スケジュールの中の先行するソフトウェアサービスの処理結果が実行スケジュールの中の後続のソフトウェアサービスの入力データである処理シリーズ又はチェーンで実行可能である。具体的には、実行スケジュールの中の後続のソフトウェアサービスは、実行スケジュールの中の直接の後続のソフトウェアサービスであって良い。
【００１０】
呼び出しは、実行のための命令である。レジストリは、ソフトウェアサービスの各々について、実行すべきソフトウェアサービスをどのように呼び出すかの定義を格納して良い。定義は、ソフトウェアサービス個々のデータ処理機能を実行するためにソフトウェアサービスへの呼び出しを生成し発行するためにソフトウェア実行制御部にとって必要なシンタックス的及び意味論的情報を含む。
【００１１】
さらに、前記機械学習メカニズムプロセスにより維持される前記実行スケジュールの前記実行の前記記録は、前記個々のデータ処理要求の前記実行スケジュールの前記の制御される実行の中で前記ソフトウェア実行制御部により呼び出される前記ソフトウェアサービスの各々について、前記ソフトウェアサービスの前記実行された処理の前記結果の指示を、タイムアウト又は処理結果の出力として有し、前記機械学習メカニズムは、少なくとも部分的に、前記自動選択候補の実行した処理結果の前記記録された指示に、前記自動選択候補の中からの１つのソフトウェアサービスの前記選択の基礎を置いて良い。
【００１２】
ソフトウェア実行制御部により実行するために呼び出されると、ソフトウェアサービスは実行され、処理結果の生成に成功し、又は処理結果を生成するために必要な処理を完了することなくタイムアウトに達する。タイムアウトは、ソフトウェアサービスにより定義される結果を出すまでの最大時間（maximum  time−to−result）（実行開始から始まる）であって、それに達すると、実行を終了しソフトウェア実行制御部にタイムアウトメッセージを発行する、結果を出すまでの最大時間、又は、ソフトウェア実行制御部により設定される結果を出すまでの最大時間（maximum  time−to−result）（実行のための呼び出しから始まる）であって、それに達すると、いかなる処理結果も出力されず、したがって代替ソフトウェアサービスが識別され実行されることがソフトウェア実行制御部により想定されることに対応する、結果を出すまでの最大時間、である。
【００１３】
機械学習メカニズムは、ソフトウェアサービスの実行を監視し、呼び出されたソフトウェアサービスがタイムアウトしたとき及び呼び出されたソフトウェアサービスが処理結果の出力に成功したときを記録する。
【００１４】
更なる選択肢として、前記機械学習メカニズムプロセスにより維持される前記実行スケジュールの前記実行の前記記録は、前記呼び出されたソフトウェアサービスの各々について、前記呼び出しの中で識別される前記入力データの１又は複数の特性の値を更に有し、前記機械学習メカニズムプロセスは、少なくとも部分的に、前記要求データ処理機能の前記入力データの特性値と前記実行した処理の結果が処理結果の出力である呼び出しの中で識別された前記入力データの前記１又は複数の特性の前記記録された値との間の類似性の定量化に、前記自動選択候補の中からの１つのソフトウェアサービスの前記選択の基礎を置いて良い。
【００１５】
有利なことに、機械学習メカニズムは、実行スケジュールの構成及び実行に、入力データの特性がどのように影響するかを学習できる。このような学習は、要求データ処理機能を満たすために、ソフトウェアサービスの選択の基礎を置く因子として使用される。
【００１６】
少なくとも部分的に該情報片に選択の基礎を置くことは、情報片が、どのソフトウェアサービスを選択するかの決定に貢献する因子であることを意味する。例えば、前記因子の各々は、選択の決定として自動選択候補の適正を定量化するための、（機械学習メカニズムによる）分析工程の中の重みに帰属されて良い（つまり、前記定量化による最高ランクのものが選択される）。実装の観点で、機械学習メカニズムは、知識ベース（記録）に加えて、ニューラルネットワークを有して良い。選択が部分的に基づく上記の情報片は、入力ノードであり、複数の自動選択候補からのソフトウェアサービスの選択は出力ノードである。
【００１７】
さらに、入力データの１又は複数の特性は、入力データの量の測定値を含んで良い。
【００１８】
例えば、このような測定値は、入力データにアクセス可能である、管理サービス、制御機能、又はデータ記憶機能を参照することにより得られて良い。測定は、ソフトウェア実行制御部自体により実行されて良く、又は別個のエンティティにより実行されて良い。
【００１９】
有利なことに、ソフトウェアサービスの幾らかは、特定範囲の入力データサイズを有し、処理結果の生成を成功させる又はタイムアウトさせる傾向のある実行特性を有して良い。機械学習メカニズムは、観察によりこれらの傾向を学習でき、実行スケジュールに含めるためにソフトウェアサービスを選択する際にこのような学習を利用できる。
【００２０】
構成手順の特定の実装では、前記構成は、手動構成モードで、前記レジストリの中で指定される前記処理機能が前記要求データ処理機能のうちの１つと一致する１より多くのソフトウェアサービスが識別される場合、前記装置のユーザによる手動選択候補として、前記１より多くのソフトウェアサービスの中からの１つのソフトウェアサービスの選択を要求するステップと、前記ユーザから要求選択を受信するステップと、を含み、前記機械学習メカニズムは、前記個々のデータ処理要求の前記実行スケジュールの前記構成の前記記録の中に、前記手動選択候補のアイデンティティ及び前記受信したユーザ選択の指示を含めるよう構成され、前記機械学習メカニズムプロセスは、少なくとも部分的に、前記自動選択候補のうちの１又は複数を含む手動選択候補の中からの前記受信したユーザ選択の前記記録された指示に、前記自動選択候補の中からの１つのソフトウェアサービスの前記選択の基礎を置くよう構成される。
【００２１】
機械学習メカニズムは、自動選択候補の中から選択を行うために用いられる（自動は、機械学習メカニズムの責任を意味する）。記録は、手動選択候補の中からのユーザにより行われる選択の維持である。
【００２２】
有利なことに、機械学習メカニズムは、要求データ処理機能を満たすために複数の適切なものが存在するときどのソフトウェアサービスが好まれるかを、ユーザ選好から学習する。このような学習は、機械学習メカニズムの分析において、複数の自動選択候補から選択されたソフトウェアサービスを決定するために、有力な要因である。
【００２３】
関連すると考えられるユーザ選択の記録された指示のみが、自動選択候補（これから、機械学習メカニズムが選択を行う）のメンバ及び記録されたユーザ選択が行われた手動選択候補のメンバの中で正確な一致が存在するものであって良い。代替で、ユーザ選択の記録された指示は、自動選択候補（これから機械学習メカニズムが選択を行う）のうちの１つが手動選択候補の中にある限り、関連すると考えられて良い。例えば、（個々の自動選択候補が手動選択候補の中にあった手動選択からの）選択の非選択に対する比に基づき、自動選択候補の各々について商（quotient）が計算され得る。
【００２４】
任意的に、全ての記録は、等しい重みを与えられる。代替として、より最近の記録は、あまり最近でない記録より高く重み付けされて良い。更なる代替として、記録の中の入力データの、ソフトウェアサービスが選択されている要求データ処理機能の中の入力データに対する類似性が考慮されて良い。
【００２５】
ソフトウェア実行制御部は、全体の実行スケジュールについて特定の構成モードに肯定される必要はない。実際に、自動化は、規定モードであって良く、ソフトウェア実行制御部は、構成の特定要素について、手動構成モードに適応的に戻るよう構成される。
【００２６】
任意的に、前記機械学習メカニズムは、前記自動選択候補のうちのいずれかが識別され又は実行される実行スケジュールの前記構成及び実行の記録の前記分析の結果として、前記自動選択候補の中からの１つのソフトウェアサービスの前記選択における信頼度を生成するよう構成され、前記構成は、前記生成された信頼度が閾最小値より高い場合、１つのソフトウェアサービスの前記選択を前記実行スケジュールに追加するステップと、前記生成された信頼度が閾最小値以下である場合、前記要求データ処理機能を実行するために、１つのソフトウェアサービスの選択の前記手動構成モードに戻るステップと、を有する。
【００２７】
例えば、信頼度は、（個々の自動選択候補が手動選択候補の中にあった手動選択からの）選択の非選択に対する比に基づき、自動選択候補の各々について商（quotient）が計算される上述の商であって良い。信頼度は、統計的有意性の２項検定により計算されて良く、２つの結果は、構成記録の中の選択又は構成記録の中の非選択である。
【００２８】
前記機械学習メカニズムプロセスにより維持される前記実行スケジュールの前記構成の前記記録により維持される構成の記録の特定の実装として、前記受信データ処理要求により定められる前記１又は複数の要求データ処理機能の各々について、前記呼び出しの中で識別される前記入力データの１又は複数の特性の値を有し、前記機械学習メカニズムは、少なくとも部分的に、前記要求データ処理機能の前記入力データの特性の値と前記手動選択候補が前記自動選択候補のうちの１又は複数を含む構成の記録の中の前記入力データの前記１又は複数の特性の値との間の類似性の定量化に、前記自動選択候補の中からの１つのソフトウェアサービスの前記選択の基礎を置くよう構成される。
【００２９】
任意的に、入力データの１又は複数の特性は、入力データの量の測定値を含む。
【００３０】
任意的に、商は、自動選択候補（これから、機械学習メカニズムにより選択が行われる）の各々について構築されて良い。このような商は、例えば、個々の自動選択候補が手動選択候補の中にあり及び選択された各記録について合計をインクリメントすることにより、及び個々の自動選択候補が手動選択候補の中にあり及び選択されなかった各記録について合計をデクリメントすることにより、構築されて良い。各々の場合のインクリメント又はデクリメントの値は、記録の場合の入力データと現在の選択の場合の入力データとの間の類似性に比例して良い。
【００３１】
任意的に、前記受信データ処理要求により定められる前記１又は複数の要求データ処理機能は、要求データ処理機能シリーズとして定められ、前記実行スケジュールの前記構成は、前記データ処理要求により定められる先行する要求データ処理機能についての前記実行スケジュールの実行及び前記構成するステップに続いて実行される。
【００３２】
有利なことに、規定された方法ではなく実行スケジュールの適応的な構成は、実行スケジュールの中の先行するソフトウェアサービスの処理結果、及び特にその処理結果を考慮することを可能にする。
【００３３】
この文脈で、シリーズは、処理順序を定めることを意味すると考えられ、シリーズの中の先行するデータ処理機能の出力は、シリーズの中の隣接する後続のデータ処理機能の入力を形成する。
【００３４】
実施形態は、ソフトウェア実行プロセッサであって、前記複数のソフトウェア機能の中からソフトウェア機能を識別し及び入力データを識別する前記ソフトウェア実行制御からの呼び出しに応答して、前記実行における入力データとして、前記識別された入力データにより前記識別されたソフトウェアサービスをロードし実行するよう構成されるソフトウェア実行プロセッサを更に有して良い。
【００３５】
さらに、前記装置は、複数のソフトウェアサービスをメモリに格納するソフトウェアライブラリを有して良い。
【００３６】
別の態様の実施形態は、ソフトウェアサービス実行方法であって、複数のソフトウェアサービスの各々を識別するレジストリを格納するステップであって、各識別されたソフトウェアサービスは前記レジストリ内で指定される個々のデータ処理機能を実行するよう構成される、ステップと、複数のデータ処理要求の各々について、前記データ処理要求を受信するステップであって、受信したデータ処理要求は１又は複数の要求データ処理機能を定める、ステップと、前記レジストリ内で識別される前記複数のソフトウェアサービスの中からの１又は複数のソフトウェアサービスの実行スケジュールを構成するステップであって、前記１又は複数の要求データ処理機能の各々について、前記レジストリ内で指定された単一の処理機能が前記要求データ処理機能に一致するソフトウェアサービスを識別すること、及び前記識別したソフトウェアサービスを前記実行スケジュールに含めること、により前記受信データ処理要求を満たす、ステップと、前記実行スケジュールの実行を制御するステップと、を有するソフトウェアサービス実行方法を含む。前記方法は、受信データ処理要求の各々について、実行スケジュールの構成及び実行スケジュールの実行の記録を維持するステップを更に有し、前記構成は、自動構成モードで、前記レジストリ内で指定される単一の処理機能が前記要求データ処理機能のうちの１つに一致する１より多くのソフトウェアサービスが識別される場合、前記機械学習メカニズムによる自動選択候補として、前記１より多くのソフトウェアサービスの中からの１つのソフトウェアサービスの選択を要求するステップを含む。前記方法は、前記自動選択候補の中からの１つのソフトウェアサービスの選択により、前記選択の要求に応答するステップを更に有し、前記自動選択候補のうちのいずれかが識別され又は実行される実行スケジュールの前記構成及び実効の記録の分析に前記選択の基礎を置く。
【００３７】
別の態様の実施形態は、コンピューティング装置により実行されると、該コンピューティング装置に本発明の実施形態として請求の範囲に定められるシステムとして機能させるコンピュータプログラムを有する。
【００３８】
別の態様の実施形態は、コンピューティング装置により実行されると、該コンピューティング装置に本発明の実施形態として本願明細書に上述した又は他の箇所に定めた方法を実行させるコンピュータプログラムを有する。
【００３９】
さらに、本発明の実施形態は、複数の相互接続されたコンピューティング装置により実行されると、前記複数の相互接続されたコンピューティング装置に、本発明を具現化するシステムとして動作させるコンピュータプログラム又はコンピュータプログラムスーツを有する。
【００４０】
上述の態様の何れにおいても、種々の特徴は、ハードウェアで、又は１若しくは複数のプロセッサで動作するソフトウェアモジュールとして実施されて良い。ある態様の特徴は、他の態様の特徴に適用されて良い。
【００４１】
本発明は、上述の任意の方法を実行するコンピュータプログラム又はコンピュータプログラムプロダクト、及び上述の任意の方法を実行するプログラムを格納しているコンピュータ可読媒体も提供する。
【００４２】
本発明を実施するコンピュータプログラムは、コンピュータ可読媒体に格納されてもよい。或いは、例えば、インターネットウェブサイトから提供されるダウンロード可能なデータ信号のような信号形式又は任意の他の形式であって良い。
【図面の簡単な説明】
【００４３】
実施形態は、純粋に例として添付の図面を参照して以下に記載される。
【図１】ソフトウェアサービス実行装置を示す。
【図２】ソフトウェアサービス実行システムを示す。
【図３】システムに新しいソフトウェアサービスを追加し及び新しいソフトウェアサービスを含む実行スケジュールを構成する手順を示す。
【図４】例示的なマイクロサービスセットの例示的なレジストリエントリを示す。
【図５】一実施形態の概略手順を示す。
【図６】第１作業例における処理フローを示す。
【図７】第２作業例における処理フローを示す。
【図８】第３作業例における処理フローを示す。
【図９】一実施形態のハードウェア構成を示す。
【発明を実施するための形態】
【００４４】
図１は、ソフトウェアサービス実行装置１０を示す。装置１０は、レジストリ１２、ソフトウェア実行制御部１４、及び機械学習メカニズム１４を有する。装置１０の動作を説明するのに有用なデータ交換の選択は、図１に提示される。図示のデータ交換の選択は、包括的ではない。
【００４５】
ソフトウェアサービス実行装置１０は、例えば、ユーザからデータ処理要求を受信するよう構成されるウェブサーバ又は他のサーバ側コンピューティング装置であって良い。このようなユーザは、装置１０を直接に作動させて良く、又はソフトウェア実行装置にネットワークを介して接続可能なウェブクライアント又は他のクライアント側コンピューティング装置を介してソフトウェア実行装置にアクセスして良い（つまり、データ処理要求を該装置へ送信する）。特に、ユーザは、装置１０へデータ処理要求を発行して良い。データ処理要求は、図１の「データ処理要求」と付された矢印により示すように、ソフトウェア実行制御部１４により受信される。
【００４６】
レジストリ１２は、ソフトウェアサービス実行装置１０により永久記憶に格納される文書又は他のデータ形式であって良い。レジストリ１２は、レジストリ１２のデータを格納するよう構成される物理データ記憶を有するデータ記憶ユニットであって良い。レジストリ１２は、各ソフトウェアサービスに関する情報を、例えばソフトウェアサービスのアイデンティティがプライマリキーであるレジストリエントリとして格納して良い。レジストリ１２は、データを、ソフトウェアサービス当たり１行を有する関係型データとして、又は入力とグラフ内の頂点としてのソフトウェアサービスの処理結果とをリンクする各ソフトウェアサービスが述部により識別可能なグラフデータとして、格納して良い。
【００４７】
レジストリ１２により識別される複数のソフトウェアサービスの各々は、例えばソフトウェアサービスがアクセス可能なＵＲＬ（uniform  resource  locator）又はＵＲＩ（uniform  resource  identifier）により識別されて良い。この文脈でアクセス可能であることは、ソフトウェアサービスのメソッドへの呼び出しが発行され得る（仮想的又は物理的）場所を意味すると考えられる。ソフトウェアサービスの識別は、例えば、ソフトウェアサービスがどのように使用可能かを定めるＡＰＩを含んで良い。
【００４８】
レジストリ１２の中の各ソフトウェアサービスのデータ処理機能は、意味論的に定められて良く（例えば、「トークン化（tokenize）」、「ロード（load）」、「要約（summarize）」、「比較（compare）」）、意味論的定義は、個々のソフトウェアサービスにより実行されるデータ処理の意味論的記述子である。このような意味論的定義も（全体的に又は部分的に）、ソフトウェアサービスがアクセス可能なＵＲＬ又はＵＲＩであって良い。意味論的定義に加えて、又は代替として、データ処理機能は、データ処理の入力データ及び出力データの観点で指定されて良い。例えば、ファイル名、ファイル種類、又はデータ型の意味論的記述子により示すことのできるデータ型は、入力データ及び／又はデータ処理結果（出力データ）について指定されて良い。
【００４９】
装置は、型レジストリを更に有して良く、データ型の意味論的記述子は、型レジストリからの１又は複数の型に制約される。型レジストリは、ドメイン固有であって良い。
【００５０】
ソフトウェア実行制御部１４は、機能モジュールであり、（メモリに）格納された処理命令によりプログラムされたプログラムプロセッサ（ＣＰＵ又はＧＰＵ）であって良い。さらに、ソフトウェア実行制御部１４は、複数のソフトウェアサービスと（個々のレジストリエントリを介して）、及び例えば機械学習メカニズム１６と、及び／又は装置ユーザと、通信するよう構成される。ソフトウェア実行制御部１４は、レジストリ１２に格納された情報を用いて、ソフトウェアサービスとローカルに又はネットワークを介して通信するＩ／Ｏインタフェースを有して良い。ソフトウェア実行制御部１４は、ユーザからの入力を受信するインタフェースを有して良い。インタフェースは、ローカルであって良く、又は例えば入力がソフトウェア実行制御部１４によりアクセス可能なクライアント側装置に実装されるＧＵＩであって良い。
【００５１】
図１は、ソフトウェア実行制御部１４により受信されたデータ処理要求が３つの成分データ処理機能に分けられることを示す。３は、動作原理を説明するための単なる一例である。受信データ処理要求は、１又は複数の要求データ処理機能を定める。受信データ処理要求の何らかの処理は、成分要求データ処理機能を決定するために、ソフトウェア実行制御部により実行されて良い。つまり、成分データ処理機能は、受信データ処理要求により黙示的に示され、例えば、レジストリ１２内で指定されるデータ処理機能を参照することにより、ソフトウェア実行制御部１４により抽出されて（つまり明示的にされて）良い。データ処理要求を満たすために成分データ処理機能が実行されるべき順序も、データ処理要求により定められて良い。
【００５２】
実行スケジュールは、どのソフトウェアサービスがどの順序で（順序は、複数のソフトウェアサービスの並列実行を含み得ることに留意する）、及びどの入力データにより、実行されるべきかを識別する計画である。実行の構成及び制御は、必ずしも連続的に実行されるステップではない。構成は、規定され又は予め決定されるのではなく、適応的であって良い。実行スケジュールの要素の構成は、実行スケジュールの中の先行するソフトウェアサービスの実行結果に依存して良い。
【００５３】
図１のレジストリ１２とソフトウェア実行制御部１４との間の「構成（composing）」と付された線は、実行スケジュールを構成するための、レジストリ内の情報の使用を示す。実行スケジュールは、ソフトウェアサービスに関するレジストリ１２に格納された情報を用いることにより、受信データ処理要求を満たすために、ソフトウェア実行制御部１４により構成される。例えば、受信データ処理要求は、入力データと、例えば意味論的に特定データ型を指定する引き換えに捜し出される特定データ型と、を指定して良い。実行スケジュールは、ソフトウェアサービス又はレジストリ１２内にリストされるソフトウェアサービスシリーズを定めることにより、ソフトウェア実行制御部１４により構成され、実行されると（シリーズの場合に、シリーズの中の先行するソフトウェアサービスにより、シリーズの中の１又は複数の先行するソフトウェアサービスの処理結果を入力として取り入れ）データ処理要求の中で指定された入力データを引き換えに捜し出された特定データ型を満たす出力データに変換する。
【００５４】
ソフトウェアサービスの各々は、個々のデータ処理機能を実行するよう構成される。ソフトウェアサービスの各々により実行されるデータ処理は、特定型の入力データを特定型の出力データに変換する。この単一の入力型から出力型への関係に対する例外は、タイムアウトのような、出力型の出力データを生成しないソフトウェアサービスの障害のイベントである。型はデータ型を意味し、例えば単一のファイル名拡張子又はファイル名拡張子のグループ又はファイル種類により、及び／又は１又は複数の意味論的データ記述子により、指定されて良い。
【００５５】
ソフトウェア実行制御部１４による実行スケジュールの実行の制御は、実行スケジュールにより決定される順序／タイミングで、及び実行スケジュールにより指定される入力データにより、実行するために個々のソフトウェアサービスへの呼び出しを発行する処理である。図１のソフトウェア実行制御部１４とレジストリ１２との間の「実行呼び出し（及び応答）（execution  calls(and  response)）」と付されたリンクは、実行の制御、及び実行の出力及び処理結果を詳述する任意的応答を示す。例えば、実行の制御は、呼び出しの中で指定される入力データに対してレジストリ内で指定される個々のデータ処理機能を実行するために、実行スケジュールに含まれるソフトウェアサービス又はその各々の呼び出しを含む。入力データは、受信データ処理要求、及び／又は実行スケジュールに含まれる先行するソフトウェアサービスの処理結果により指定されて良い。入力データは、アクセス可能なＵＲＩ又はＵＲＬへの参照により指定されて良い。
【００５６】
実行結果は、実行呼び出しに応答して、個々のデータ処理要求について実行スケジュールの残りの部分を構成するのに使用するために、ソフトウェア実行制御部１４に返されて良い。結果は、例えば、処理結果が生成されたか否か、又は実行タイムアウトか否か、の指示であって良い。任意的に、応答は、処理結果として実行されたソフトウェアサービスにより出力されたデータのサイズの測定値のような情報を有して良い。
【００５７】
実行呼び出し及びそれに対する応答は、ソフトウェア実行制御部１４とレジストリ１２との間にあるように示される。これは、ソフトウェアサービス自体がレジストリ１２に格納された情報を介してアクセス可能であることを示す。
【００５８】
構成する処理は、手動モードで（装置の人間のユーザからの入力を要求する）又は自動／自動化モードで、ソフトウェア実行制御部１４により実行されて良い。自動化モードでは、機械学習メカニズム１６は、図１の「選択要求及び応答（selection  request  &  response）」と付されたリンクにより示すように、特定の要求データ処理機能を実行するために適する複数のソフトウェアサービスの間で選択することを要求される。手動モードでは、ユーザの入力は、特定の要求データ処理機能を実行するために適する複数のソフトウェアサービスの間で選択するために、要求される。
【００５９】
レジストリ１２内のソフトウェアサービスについて指定されるデータ処理機能と要求データ処理機能との間の一致は、単一の処理機能が指定されるソフトウェアサービスが要求データ処理機能を実行するのに適することの指示である。一致は、要求データ処理機能の定義、及びレジストリ１２内のソフトウェアサービスについて指定されるデータ処理機能に基づく。一致は、意味論に基づいて良い。例えば、データ処理機能は、レジストリ１２内で意味論的に定められ（例えば、「トークン化（tokenize）」、「ロード（load）」、「要約（summarize）」、「比較（compare）」）、要求データ処理機能は、同じ又は類似する項目を用いて意味論的に定められる。したがって、要求データ処理機能の意味論的定義とデータ処理機能の意味論的定義との間で意味論的比較ができ、「一致」であると考えられる閾よりＵＥの類似性スコアを生じる。代替又は追加で、要求データ処理機能の定義は、例えばそれぞれデータ型の意味論的記述子（「表データ（tabular  data）」、「行列（matrix）」、「文書（document）」、「ベクトル（vector）」）により又はファイル名拡張子により定める、入力データ及び要求処理結果の観点で定められて良い。レジストリ１２内で指定されるデータ処理機能は、同様に定められて良い。したがって、一致は、一致する入力及び出力拡張子、又は一致する（つまり、閾より高い意味論的類似性）入力及び出力意味論的データ型記述子である。データ型記述子は、データの構造の及びデータ項目の構成の意味論的表現である。
【００６０】
機械学習メカニズムにより維持される記録は、知識ベースと呼ばれて良い。
【００６１】
ソフトウェア実行制御部１４が自動化モード又は手動モードで構成を実行するかは、例えばソフトウェア実行制御部１４に制御を提供するインタフェースを介してユーザにより、又はデータ処理要求の中で特定引数を指定することにより、制御可能である。
【００６２】
図１の「記録（record）」と付された線により示すように、機械学習メカニズムは、ソフトウェア実行制御部１４の動作を監視し、記録を維持する。特に、機械学習メカニズムにより維持される記録は、データ処理要求、実行スケジュールの構成（識別された手動／自動実行候補及び選択の観点で）、実行（実行結果、及び実効及び入力／出力データの特性の観点で）を詳述して良い。
【００６３】
構成の記録は、レジストリ内で指定される単一の処理機能が要求データ処理機能のうちの１つに一致する１より多くのソフトウェアサービスが識別されるとき（つまり、選択が行われる複数の自動／手動実行候補が存在するとき）、及びその中で１より多くが実行スケジュールに含まれるために選択されたことを識別する。さらに、構成が手動又は自動構成モードで実行されたかの指示が、記録されて良い。
【００６４】
実行の記録は、どのソフトウェアサービスがどの順序で実行されたかを識別する。任意的に、実行の記録は、実行すべき時間、（１日のうちの時間のような）実行の時間、実行結果（タイムアウト又はデータ処理結果の出力）、のような実行特性の値も格納して良い。
【００６５】
実行の記録又は構成の記録は、（実行の記録の場合には）実行されたソフトウェアサービスへの入力データ又は（構成の記録の場合には）ソフトウェアサービスが選択される入力データの特性値も格納して良い。特性は、例えば、データサイズ（記憶空間の観点で）、データ型、ファイル名又はファイル種類、ローカル又はリモートに格納されるか、ローカルキャッシュで利用可能か否かを含んで良い。特性は、データ項目の値自体の統計的特性も含んで良い。
【００６６】
実行の記録は、実行されたソフトウェアサービスにより出力される処理結果（出力データ）の特性値も格納して良い。特性は、例えば、データサイズ（記憶空間の観点で）、データ型、ファイル名又はファイル種類、ローカル又はリモートに格納されるか、ローカルキャッシュで利用可能か否かを含んで良い。特性は、データ項目の値自体の統計的特性も含んで良い。
【００６７】
機械学習メカニズム１６により維持される記録は、複数の選択候補の間の将来の選択を知らせるための知識を提供する（つまり、選択候補は、レジストリ内で指定された単一の処理機能が要求データ処理機能のうちの１つに一致する、ソフトウェア実行制御部により識別される１より多くのソフトウェアサービスである）。ソフトウェア実行制御部１４による候補の識別は、データ処理要求の所定要素と比較される（照合される）ソフトウェアサービスに関する所定の（つまり、レジストリに加えて、ソフトウェア開発者又は装置管理者により定められる）情報に基づく。機械学習メカニズム１６により実行される複数の候補の間の選択は、実行スケジュールの予め実行された構成及び実効に関する情報（つまり記録）に基づく。
【００６８】
図２は、ソフトウェアサービス実行システムを示す。ソフトウェアサービス実行装置１０に加えて、システムは、ソフトウェアライブラリ２０を有する。ソフトウェアライブラリは、複数の実行可能ソフトウェアサービスを格納する。図２に示す例では、ソフトウェアサービスはマイクロサービス（microservices）である。図２は、ソフトウェアライブラリ２０の中のマイクロサービスの各々がレジストリ１２内の個々のエントリに格納された情報を介してアクセス可能であることを示す。
【００６９】
マイクロサービスは、データ処理装置の中の不可分（atomic）サービスである。この文脈における不可分は、単一任務又は単一機能を意味する。マイクロサービスは、サービス次元により一般的ウェブサービスから区別される。例えば、一般的ウェブサービスは、より広範な機能の部分として何らかの認証の形式を含み得る。マイクロサービスに基づく装置では、認証は専用マイクロサービスである。
【００７０】
ソフトウェアサービスは、マイクロサービスか否かに拘わらず、各々がＧＥＴ、及びＰＯＳＴ、及び／又はＰＵＴ要求のためのメソッドを定義するＲＥＳＴｆｕｌソフトウェアサービスであって良く。
【００７１】
ＲＥＳＴ（Representational  State  Transfer）は、機械のためにウェブに参加する適正な動作を支配するアーキテクチャ型である。ＲＥＳＴは、確認が「ＲＥＳＴｆｕｌ」であると記述されるシステムアーキテクチャに対する制約を設定する。このうち、第１のものは、アーキテクチャがクライアント−サーバ構成を有し、クライアントは均一インタフェースによりサーバから分離される。クライアントとサーバとの間のインタフェースの４つの指導方針があり、これらの方針に従い開発されたインタフェースは「ＲＥＳＴｆｕｌ」として記載できる。例えば、ＡＰＩは、ソフトウェアサービスへのインタフェースについてのＲＥＳＴ指導方針に従い記述でき、したがって「ＲＥＳＴｆｕｌ  ＡＰＩ」として記載され得る。ソフトウェアサービスのこのようなＲＥＳＴｆｕｌ  ＡＰＩは、ソフトウェアサービスのレジストリエントリに格納され、又はレジストリ１２内の（例えば参照により）アクセス可能にされた一に格納されて良い。プロトコルとしてのＨＴＴＰは、ＲＥＳＴｆｕｌな方法で使用でき、ＲＥＳＴｆｕｌ  ＨＴＴＰは機械のためのウェブに適する。ＲＥＳＴｆｕｌインタフェース（ＡＰＩ）は、多くの鍵となる理由により評判が高い。確固たるアーキテクチャ原理により証明された基礎の上に構築される基本プロトコルは簡略であり、結果はウェブ開発者により親しみ易く且つ使用可能である。
【００７２】
まとめると、ＲＥＳＴアーキテクチャ様式は、以下の通り、システムアーキテクチャに対する６個の制約を記述する（６個のうちの１つは任意である）：
−アーキテクチャはクライアント−サーバであるべきである、
−クライアント及びサーバは均一インタフェースにより分離される、
−アーキテクチャは状態を有さず、クライアントからの要求の間でクライアントコンテキストがサーバに格納されないことを意味する、−各要求は要求にサービスするために必要な情報の全てを含み、状態情報はクライアント自体に保持される、
−クライアントは応答をキャッシュできる、
−（任意）機能は、サーバが、クライアントの実行可能なロジックをクライアントへ転送することにより格納できる。
【００７３】
ソフトウェアサービス実行システムの文脈で、クライアントは、データ処理要求を行うエンティティであり、サーバはソフトウェアサービスを実行するウェブサーバ又は他のコンピューティング装置である。
【００７４】
均一インタフェースの指導方針は、以下のように簡単に要約される：
−ドメイン内の個々のリソースは、クライアントからの要求の中で識別できる（これは、ウェブに基づくシステムにおいてＵＲＩ（Universal  Resource  Identifier）を介してであって良い）、リソース自体は、クライアントに返される表現と別個のエントリである；
−クライアントにより保持されるリソースの表現は、サーバ上のリソースを変更する又は削除するために十分な情報をクライアントに与えるために十分である（許可を与える（permissions  allowing））；
−クライアントとサーバとの間の各メッセージは、メッセージを処理するための受信側にとって十分な情報を含む；
−サーバからクライアントへ提供されるリソースの表現は、関連リソースへのハイパーリンクを含むべきである。
【００７５】
ＲＥＳＴアーキテクチャ様式の建設的側面は、情報モデルとの良好なリンク付けである。情報モデルは、ドメイン内の項目及びこれらの項目間の関係の形式化された記述である。ＲＥＳＴｆｕｌ  ＡＰＩの中で許可される動作は、制約され（固定され）、これは、インタフェースを情報モデルにリンクする際に通常は問題を生じ得る粗悪なプログラミング動作の望ましくない副作用を回避する。
【００７６】
実際に、特定ドメインのためのＲＥＳＴｆｕｌ  ＡＰＩは、純粋にドメインのための情報モデルの観点で定められて良い。次に、このモデルが異なるデータフォーマットの内部でどのように現れるかにより、データフォーマットは情報モデルの結線レベル（低レベル又は実装レベル）の表明である。残念ながら、現在使用中のＡＰＩは、情報モデル化へのそれらのアプローチに関する格差を示す。これがデータフォーマットの内部でどのように現れるか、及びＨＴＴＰのセマンティクスがＡＰＩの特定ドメインでどのように使用されるか、が問題である。この一貫性の欠如は、ＲＥＳＴｆｕｌプロトコルの潜在的利益、例えば再利用可能なツールキット（例えば標準コード）の可能性、及び一般的クライアントエージェント（ブラウザと等価である）が失われるので、問題である。
【００７７】
図３は、システムに新しいソフトウェアサービスを追加し及び新しいソフトウェアサービスを含む実行スケジュールを構成する手順を示す。
【００７８】
システムの特性により、マイクロサービスは多数の状態をトラバースする。
【００７９】
ステップＳ３０１で、実装される何からの使用により、マイクロサービスが生成される。生成されたマイクロサービスは、必要な場合に（自明な方法で）再起動により実行し続けられるソフトウェアライブラリ２０にアップロードされる。
【００８０】
ステップＳ３０２で、マイクロサービスはレジストリ１２に登録され、マイクロサービスのメタデータはレジストリエントリに格納される。例えば、個々のマイクロサービスがＲＥＳＴｆｕｌである場合、ＨＴＴＰ、ＧＥＴ、ＰＵＴ、ＰＯＳＴ、及びＤＥＬＥＴＥメソッドに対する呼び出しを生成できる情報が、レジストリエントリに格納されて良い。さらに、レジストリエントリは、例えばデータを意味論的に記述することにより、及び／又はファイル種類、データ型、及び／又はファイル名拡張子を指定することにより、データ処理機能の入力データ及び出力データ（処理結果）を定める。任意的に、レジストリエントリは、テストモードの中のマイクロサービスへの呼び出しをどのように発行するかも詳述して良い。任意的に、レジストリエントリは、マイクロサービスに関する文書、例えばソースコードを出力するために、マイクロサービスへの呼び出しをどのように発行するかも詳述して良い。
【００８１】
ステップＳ３０３で、マイクロサービスは「発見可能（discoverable）」である。言い換えると、それらがレジストリ１２に登録されると、マイクロサービスは、それらが要求データ処理機能のために有用であるときはいつでも、ソフトウェア実行制御部１４により発見できる。ソフトウェア実行制御部１４は、要求データ処理機能の中の処理のための入力データと互換性があるとレジストリエントリが示すソフトウェアサービスについて、レジストリ１２に問い合わせる。
【００８２】
ステップＳ３０４で、ソフトウェア実行制御部１４により実行スケジュールに含まれているマイクロサービスは、入力により呼び出され（つまり、マイクロサービスは、実行するよう命じられる、又は実行するよう及びどこで入力データにアクセスするかを命じられる）、出力される処理結果を読み出し、又はタイムアウトし、ソフトウェア実行制御部１４に、要求データ処理機能を実行するために異なるマイクロサービスを読み出させる。
【００８３】
ステップＳ３０５で、マイクロサービスの実行は、機械学習メカニズム１６により監視される。勿論、関しは、実際には、オペレーティングシステムコンポーネントのような、マイクロサービスが実行される実行プラットフォームのコンポーネントにより実行されて良く、機械学習メカニズム１６による監視は関連情報へのリードアクセスである。機械学習メカニズム１６は、例えばデータ処理要求に応答してマイクロサービスが実行される（及び任意的に特定要求データ処理機能も満たされる）該データ処理要求、データ特性（例えば、サイズ、フォーマット、型）、マイクロサービスの性能（解決までの時間、実行開始のタイムスタンプ）、及び実行スケジュールの構成及び実効の他の等価な特長を含む、実行を監視する。監視結果は、機械学習メカニズム１６の知識ベースコンポーネントに記録される。
【００８４】
ステップＳ３０６で、学習又は訓練段階で、機械学習メカニズム１６を形成するアルゴリズム（セグメント化、回帰、予測、等）は、マイクロサービスの実行に関する記録された情報を提供され、結果を向上するためにマイクロサービスを選択するためのモデルが訓練される。結果は、例えば、手動及び自動構成モードにおける選択の間で照合されて良い。例えば、手動構成モードにおけるマイクロサービス間の選択のための入力データに関する情報、及び選択結果は、どれだけ多くの重みが入力データの種々の特性の間の類似性／相違に対して与えられるかを構成することにより、同じマイクロサービスの間で自動選択を行うモデルを訓練するために使用される。
【００８５】
図４は、例示的なマイクロサービスセットの例示的なレジストリエントリを示す。このマイクロサービスは、以下の作業例で使用される。図４に示すレジストリエントリ毎の情報は、必ずしも、完全なレジストリエントリではないが、各ソフトウェアサービスを識別する情報、及び入力データ及び処理結果の意味論的記述子を示す。例えば、識別情報がキーであるキー値ストアとしてソフトウェアライブラリが実装される場合、識別情報は、ソフトウェアライブラリ２０内のソフトウェアサービスの位置を特定するために十分であって良い。
【００８６】
レジストリ１２は、個々のＩＤ番号１〜４により識別される４個のマイクロサービスの追加前には空である。
【００８７】
図５は、一実施形態の概略手順を示す。概略手順は、レジストリを移植し受信データ処理要求を処理するためのものである。手順の特定要素の特定インスタンスは、図６〜８により示す３つの作業例を参照して説明される。
【００８８】
ステップＳ５０１で、サービスはレジストリに追加される。作業例の観点で、２個のマイクロサービスがレジストリに追加され、ＩＤ番号１及び２を割り当てられる。両方のマイクロサービスは、表データの生成のためのものである。ＩＤ番号１を割り当てられたマイクロサービスは、平文テキストファイル（ＣＳＶ、ＴＳＶ、等）から表データを生成する処理機能を有する。任意的に、レジストリエントリの「入力」要素は、例えば許容可能なファイル名拡張子をリストすることにより、許容可能ファイル種類を詳述する。
【００８９】
ＩＤ番号２を割り当てられたマイクロサービスは、それらの表の自然結合を行うことにより、データベースから表データを生成する処理機能を有する。
【００９０】
２個の更なるマイクロサービスがレジストリ１２に追加され、両者は同じ機能を実行する、つまり表データをまとめる。この場合、ＩＤ番号３を割り当てられる一方のマイクロサービスはビッグデータに適しており、ＩＤ番号４を割り当てられる他方の実装は、入力データがローカルメモリに快適に適する場合、ミリ秒で概要を提供する。
【００９１】
レジストリは、シンタックス的及び意味論的観点の両方から、サービスの入力及び出力に関する情報を（例えば、システム管理者から）得る。
【００９２】
今、４個のマイクロサービスが登録されている。ステップＳ５０２で、ソフトウェア実行制御部１４においてデータ処理要求を受信することに対する応答として、実行スケジュールが要求される。レジストリ１２に格納された情報は、ソフトウェア実行制御部１４が、マイクロサービスの間の調整の可能性を検出すること、したがって、ステップＳ５０３で、データ処理要求を満たすために実行すべきマイクロサービスを選択することを可能にする。
【００９３】
作業例では、幾つかの実行スケジュールが要求される。ステップＳ５０１は、新しいマイクロサービスをシステムに追加するために実行されるべき初期化手順の部分であり、ステップＳ５０２〜Ｓ５０６により提示される特定の受信データ処理要求に応答するための手順の部分を形成しない。
【００９４】
ステップＳ５０４で、ソフトウェア実行制御部１４は、実行スケジュールに従い実行すべきマイクロサービスを制御する。ステップＳ５０５で、データ処理要求の中で要求された処理結果が出力される。全ての場合において、ステップＳ５０６で、システム（具体的には、機械学習メカニズム１６）は、実行されたマイクロサービスに関する及び実行スケジュールの構成に関する性能統計を記録する。
【００９５】
図６は、第１作業例における処理フローを示す。データ処理要求が受信され、ＣＳＶファイルのサマリを要求する。ソフトウェア実行制御部は、レジストリ１２内の情報を参照することにより、（ＣＳＶ入力データからのサマリを生成する単一の機能がないので）要求により定められた２つの要求データ処理機能を識別する。要求データ処理機能は、ＰＦ１、「ＧＥＴ  ＴＡＢＵＬＡＲ  ＤＡＴＡ」、及びＰＦ２、「ＧＥＴ  ＳＵＭＭＡＲＹ」である。本例では、機械学習メカニズム１６は、未だ、自動構成モードにおける選択の基礎を置く知識ベースを構築していない。したがって、ソフトウェア実行制御部１４は、手動構成モードで実行スケジュールを構成する。
【００９６】
ステップＳ６０１で、レジストリエントリの中で提供される情報及びデータ処理要求の中で指定される入力データのデータ型の知識に基づき、構成し、ソフトウェア実行制御部１４は、ＩＤ「１」を割り当てられたマイクロサービスのみが、要求データ処理機能ＰＦ１を実行するために使用できることを検出し、ステップＳ６０２で該マイクロサービスを使用して、レジストリ１２を介してマイクロサービスへの呼び出しを発行することにより実行する。処理結果は表データである。
【００９７】
ステップＳ６０３で、ソフトウェア実行制御部１４は、ＰＦ２を実行するために、更なる構成を実行する。ソフトウェア実行制御部１４は、レジストリ内の情報に基づき、表データを纏めるために複数のマイクロサービスが利用可能であることを検出する。ソフトウェア実行制御部１４は手動構成モードであるので、ステップＳ６０４で、ユーザは、ＩＤ「３」及び「４」を割り当てられたマイクロサービスの中からの選択を促される。例えば、ユーザは、それらのうちの１つを選択するオプション、ランダム選択、又はそれらの全部を提示されて良い。
【００９８】
ユーザが選択を行う場合、ユーザ決定に関する知識は、機械学習メカニズム１６の知識ベースに記録される。例えば、このような記録は、要求データ処理機能、入力データの特性値（ファイル名、ファイルサイズ）、及びユーザ選択の指示を識別して良い。ランダム選択又はそれらの全部の場合には、ユーザからの選好は記録されない。
【００９９】
本例では、ユーザは、ＩＤ「４」を割り当てられたマイクロサービスを選択し、選好が記録され、Ｓ６０５で、サービスは、ソフトウェア実行制御部１４により呼び出され、実行される。結果は、マイクロサービスにより出力される。結果がユーザに提示される追加ステップが存在して良い。しかしながら、ユーザは、結果が出力されるＵＲＬ又はＵＲＩに単にアクセスして良い。
【０１００】
図７は、第２作業例における処理フローを示す。データ処理要求は、大規模データベースのサマリに対する要求である。機械学習メカニズム１６は、例えば第１作業例において取得された知識ベースのお陰で、僅かな訓練しか有さない。
【０１０１】
ソフトウェア実行制御部は、レジストリ１２内の情報を参照することにより、（ＣＳＶ入力データからのサマリを生成する単一の機能がないので）要求により定められた２つの要求データ処理機能を識別する。要求データ処理機能は、ＰＦ１、「ＧＥＴ  ＴＡＢＵＬＡＲ  ＤＡＴＡ」、及びＰＦ２、「ＧＥＴ  ＳＵＭＭＡＲＹ」である。
【０１０２】
構成ステップＳ７０１で、レジストリ１２に格納された情報及びデータ処理要求の中で指定された入力データのデータ型の知識を用いて、ソフトウェア実行制御部１４は、ＩＤ「２」を割り当てられたマイクロサービスのみが使用できることを検出し、ステップＳ７０２で、ＰＦ１「ＧＥＴ  ＴＡＢＵＬＡＲ  ＤＡＴＡ」を実行するために該マイクロサービスを使用する。
【０１０３】
ソフトウェア実行制御部１４は、要求処理機能ＰＦ２「ＧＥＴ  ＳＵＭＭＡＲＹ」のための構成を実行するために進む。ソフトウェア実行制御部１４は、自動構成モードで実行する。したがって、（レジストリ１２内の情報に基づき）２つのマイクロサービスが表データを纏めるために識別されるとき、ユーザは選択を促されない。代わりに、選択のために機械学習メカニズム１６に要求が発行される。
【０１０４】
ソフトウェア実行制御部は、マイクロサービスＩＤ３及びマイクロサービスＩＤ４の間の選択のために１つのみの関連構成記録を有する。これは、ＩＤ４のユーザ選択である。したがって、マイクロサービスを選択するモデルは、このような状況でマイクロサービスＩＤ３よりマイクロサービスＩＤ４を支持するよう訓練される。ステップＳ７０３で、マイクロサービスＩＤ４は、機械学習メカニズム１６により選択され、ソフトウェア実行制御部１４の制御の下で実行される。しかしながら、マイクロサービスＩＤ４は、ローカルメモリに格納されたデータに作用するよう意図されたマイクロサービスであり、本作業例では大規模な外部に格納された表データからの処理結果を生成できない。実行結果は、「メモリ不足」エラーである。
【０１０５】
ステップＳ７０４で、ソフトウェア実行制御部は、新しいマイクロサービスを実行スケジュールに追加すること、マイクロサービスＩＤ３を選択することにより、エラーから復旧し、ステップＳ７０５で実行するためにマイクロサービスＩＤ３を呼び出し、そして処理結果を返す。
【０１０６】
図８に示す第３の作業例では、機械学習メカニズム１６が広範囲にわたり訓練されている状況で、データ処理要求は、小さいデータベースのサマリのためである。
【０１０７】
ソフトウェア実行制御部は、レジストリ１２内の情報を参照することにより、（ＣＳＶ入力データからのサマリを生成する単一の機能がないので）要求により定められた２つの要求データ処理機能を識別する。要求データ処理機能は、ＰＦ１、「ＧＥＴ  ＴＡＢＵＬＡＲ  ＤＡＴＡ」、及びＰＦ２、「ＧＥＴ  ＳＵＭＭＡＲＹ」である。
【０１０８】
情報の使用は、データ処理要求及びレジストリ１２にｄｉｎを提供し、ステップＳ８０１で、ソフトウェア実行制御部は、ＩＤ「２」を割り当てられたマイクロサービスのみがＰＦ１を実行するために使用できることを検出し、ステップＳ８０２で、該マイクロサービスを使用して、ＰＦ１「ＧＥＴ  例ＴＡＢＵＬＡＲ  ＤＡＴＡ」を実行する。
【０１０９】
ソフトウェア実行制御部１４は、自動モードで構成するよう設定されるので、マイクロサービスを選択するためにユーザへの参照は要求されない。完全性のために、手動及び自動構成モードに加えて、ソフトウェア実行制御部１４は、半自動構成モードに設定されて良いことに留意する。半自動構成モードでは、機械学習メカニズムが選択において所定の信頼度を達成できない場合に、ユーザは選択を促される。
【０１１０】
ステップＳ８０２からの処理結果の中のデータ型、及びレジストリ１２内の情報に基づき、ＩＤ「３」及び「４」を割り当てられたマイクロサービスは、ＰＦ２を実行するのに適すると考えられる。ステップＳ８０３で、入力データの特性値、特にデータ量の測定値が取得される。ソフトウェア実行制御部１４は、２つの適切なマイクロサービスの間で選択するために、機械学習メカニズム１６を参照する。広範囲に訓練された機械学習メカニズム１６により使用されるモデルは、マイクロサービスＩＤ４が、入力データのデータサイズが閾より低いとき出力データの生成に成功し、及び入力データのデータサイズが該閾より高いときタイムアウトすることを認識している。したがって、ステップＳ８０４でマイクロサービスＩＤ４が選択され、ステップＳ８０５で実行するために呼び出される。ここでも、結果が返され、性能統計の有用な記録が実行される。
【０１１１】
例えばＨＴＭＬの表から表データを生成するために新しいマイクロサービスが追加されるとき、それは、システムの能力に追加され、その使用に関する記録は機械学習メカニズム１６により収集される。これは、宛先に関する検討は機械学習メカニズム１６により行われるので、これらの検討を行わずに、データを転送するシステムのユーザ、マイクロサービスの開発者及びマイクロサービス自体に透過な方法で生じる。
【０１１２】
図９は、本発明を実現しソフトウェアサービス実行方法の一実施形態の方法を実施するために使用できる、ウェブサーバのようなコンピューティング装置のブロック図である。コンピューティング装置は、プロセッサ９９３、及びメモリ９９４を有する。任意で、コンピューティング装置は、他のコンピューティング装置、例えば本発明の実施形態の他のコンピューティング装置と通信するためのネットワークインタフェース９９７も有する。
【０１１３】
例えば、一実施形態は、このようなコンピューティング装置のネットワークで構成されて良い。任意で、コンピューティング装置は、キーボード及びマウスのような１又は複数の入力メカニズム９９６、及び１又は複数のモニタのようなディスプレイユニット９９５も有する。コンポーネントは、バス９９２を介して互いに接続可能である。
【０１１４】
メモリ９９４は、コンピュータ実行可能命令を実行する又は格納されたデータ構造を有するよう構成される単一の媒体又は複数の媒体（例えば、集中型又は分散型データベース及び／又は関連するキャッシュ及びサーバ）を表し得るコンピュータ可読媒体を有して良い。コンピュータ実行可能命令は、例えば、汎用コンピュータ、特定目的コンピュータ又は特定目的処理装置（例えば、１又は複数のプロセッサ）によりアクセス可能であり及び１又は複数の機能又は工程を実行させる命令及びデータを有して良い。したがって、用語「コンピュータ可読記憶媒体」は、機械による実行のために命令セットを格納しエンコードし又は持ち運ぶことが可能であり、機械に本開示の方法のうち任意の１又は複数を実行させる任意の媒体も含み得る。用語「コンピュータ可読記憶媒体」は、固体メモリ、光学媒体及び磁気媒体を含むと考えられるが、これらに限定されない。例として且つ限定ではなく、このようなコンピュータ可読媒体は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read−Only  Memory）、ＥＥＰＲＯＭ（Electrically  Erasable  Programmable  Read−Only  Memory）、ＣＤ−ＲＯＭ（Compact  Disc  Read−Only  Memory）又は他の光ディスク記憶装置、磁気ディスク記憶装置又は他の磁気記憶装置を含む非一時的若しくは有形コンピュータ可読記憶媒体、又は他の媒体、フラッシュメモリ装置（例えば、固体メモリ装置）を有し得る。
【０１１５】
プロセッサ９９３は、コンピューティング装置を制御し、処理工程を実行し、例えば本願明細書及び請求の範囲に記載されるソフトウェアサービス実行装置、方法、プログラム、及びシステムの様々な異なる機能を実施するためにメモリに格納されたコードを実行するよう構成される。メモリ９９４は、プロセッサ９９３によりリード及びライトされるデータを格納する。本願明細書で参照されるとき、プロセッサは、マイクロプロセッサ、中央処理ユニット、等のような１又は複数の汎用処理装置を含み得る。プロセッサは、ＣＩＳＣ（complex  instruction  set  computing）マイクロプロセッサ、ＲＩＳＣ（reduced  instruction  set  computing）マイクロプロセッサ、ＶＬＩＷ（very  long  instruction  word）マイクロプロセッサ、又は他の命令セットを実施するプロセッサ、若しくは命令セットの組合せを実施するプロセッサを含み得る。プロセッサは、ＡＳＩＣ（application  specific  integrated  circuit）、ＦＰＧＡ（field  programmable  gate  array）、ＤＳＰ（digital  signal  processor）、ネットワークプロセッサ、等のような１又は複数の特定目的処理装置も含み得る。１又は複数の実施形態では、プロセッサは、本願明細書で議論する工程又はステップを実行する命令を実行するよう構成される。
【０１１６】
ディスプレイユニット９９７は、コンピューティング装置により格納されたデータの提示を表示して良く、ユーザとプログラムとコンピューティング装置に格納されたデータとの間の相互作用を可能にするカーソル及びダイアログボックス及びスクリーンも表示して良い。入力メカニズム９９６は、ユーザがデータ及び命令をコンピューティング装置に入力することを可能にし得る。
【０１１７】
ネットワークインタフェース（ネットワークＩ／Ｆ）９９７は、インターネットのようなネットワークに接続され、ネットワークを介して他のコンピューティング装置に接続可能であって良い。ネットワークＩ／Ｆ９９７は、ネットワークを介して他の装置からのデータ入力／へのデータ出力を制御して良い。マイクロフォン、スピーカ、プリンタ、電源ユニット、ファン、筐体、スキャナ、トラックボール等のような他の周辺装置は、コンピューティング装置に含まれても良い。
【０１１８】
図１、２、及び４のレジストリ１２は、メモリ９９４に格納された処理命令（プログラム）を実行し及びネットワークＩ／Ｆ９９７を介してデータを交換するプロセッサ９９３（又はそれらの複数）であって良い。特に、プロセッサ９９３は、図３のステップＳ３０２及び図５のステップＳ５０１におけるように、ネットワークＩ／Ｆを介してソフトウェアサービス及び特にその機能に関する情報を、ソフトウェア開発者及び／又はシステム管理者から受信するために、並びにソフトウェアサービス毎のレジストリエントリを格納するために、処理命令を実行する。さらに、プロセッサ９９３は、実行スケジュールの構成及び実行のために、ネットワークＩ／Ｆ９９７又はその他を介して、レジストリエントリからソフトウェア実行制御部１４へ情報を送信するために、処理命令を実行して良い。
【０１１９】
図１及び２のソフトウェア実行制御部１４は、メモリ９９４に格納された処理命令（プログラム）を実行し及びネットワークＩ／Ｆ９９７を介してデータを交換するプロセッサ９９３（又はそれらの複数）であって良い。特に、プロセッサ９９３は、図５のステップＳ５０２〜Ｓ５０５におけるように、ネットワークＩ／Ｆを介して、ユーザ（クライアントマシンを介する人間のユーザ、又は高級ソフトウェアプログラムであって良い）からデータ処理要求を受信し、要求を満たすために実行スケジュールを構成し実行することにより応答するために、処理命令を実行する。さらに、プロセッサ９９３は、接続された記憶ユニットに（つまり、機械学習メカニズム１６の知識ベースに）構成及び実効の記録を格納し、及び／又はネットワークＩ／Ｆ９９７を介して実行スケジュールの実行結果を要求側クライアントに送信するために、処理命令を実行して良い。
【０１２０】
図１及び２の機械学習メカニズム１６は、メモリ９９４に格納された処理命令（プログラム）を実行し及びネットワークＩ／Ｆ９９７を介してデータを交換するプロセッサ９９３（又はそれらの複数）であって良い。特に、プロセッサ９９３は、知識ベースに記憶するために、ネットワークＩ／Ｆ又はその他を介して、ソフトウェア実行制御部１４から実行スケジュールの構成及び実効の記録を受信するために、処理命令を実行する。さらに、プロセッサ９９３は、図５のステップＳ５０３におけるように、ネットワークＩ／Ｆ又はその他を介して、複数のソフトウェアサービスの中からのソフトウェアサービスの選択の要求を受信し、知識ベースの中の関連記録からの選択を生成し、及び選択により応答するために、処理命令を実行する。さらに、プロセッサ９９３は、接続された記憶ユニットに知識ベースの記録を格納するために、処理命令を実行して良い。
【０１２１】
本発明を実現する方法は、図９に示されたようなコンピューティング装置で実行されて良い。このようなコンピューティング装置は、図９に示した全てのコンポーネントを有する必要はなく、これらのコンポーネントのうちの部分集合で構成されて良い。本発明を具現化する方法は、ネットワークを介して１又は複数のデータ記憶サーバと通信する単一のコンピューティング装置により実行されて良い。コンピューティング装置は、構成された実行スケジュールの実行による処理結果を格納するデータ記憶自体であって良い。
【０１２２】
本発明を実現する方法は、互いに協働して動作する複数のコンピューティング装置により実行されて良い。複数のコンピューティング装置のうちの１又は複数は、レジストリ１２、ソフトウェアライブラリ２０、機械学習メカニズム１６の知識ベース、及び／又は構成した実行スケジュールの実行による処理結果、の少なくとも一部を格納するデータ記憶サーバであって良い。
【０１２３】
以上の実施形態に加えて、更に以下の付記を開示する。
（付記１）  ソフトウェアサービス実行装置であって、プロセッサハードウェアと、前記プロセッサハードウェアに結合されるメモリハードウェアと、を有し、前記メモリハードウェアは複数のソフトウェアサービスの各々を識別するレジストリを格納するよう構成され、各々の識別されたソフトウェアサービスは、前記レジストリの中で指定される個々のデータ処理機能を実行するよう構成され、
前記プロセッサハードウェアは、前記メモリに格納された処理命令を実行して、
ソフトウェア実行制御プロセスであって、複数のデータ処理要求の各々について、
前記データ処理要求を受信するステップであって、前記受信したデータ処理要求は、１又は複数の要求データ処理機能を定める、ステップと、
前記レジストリの中で識別される前記複数のソフトウェアサービスの中から１又は複数のソフトウェアサービスの実行スケジュールを構成するステップであって、前記１又は複数の要求データ処理機能の各々について、前記レジストリの中で指定される前記処理機能が前記要求データ処理機能と一致するソフトウェアサービスを識別すること、及び前記識別したソフトウェアサービスを前記実行スケジュールに含めることにより、前記受信したデータ処理要求を満たす、ステップと、
前記実行スケジュールの実行を制御するステップと、
を含むソフトウェア実行制御プロセスと、
機械学習メカニズムプロセスであって、前記受信したデータ処理要求の各々について、前記実行スケジュールの前記構成及び前記実行スケジュールの前記実行の記録を維持する、機械学習メカニズムプロセスと、
を実行するよう構成され、
前記構成するステップは、自動構成モードで、前記レジストリの中で指定される単一の処理機能が前記要求データ処理機能のうちの１つに一致する１より多くのソフトウェアサービスが識別される場合、前記機械学習メカニズムプロセスによる自動選択候補として、前記１より多くのソフトウェアサービスの中から１つのソフトウェアサービスの選択を要求するステップを有し、
前記機械学習メカニズムプロセスは、前記選択の要求に対して、前記自動選択候補の中からの１つのソフトウェアサービスの選択により応答するステップであって、前記自動選択候補のうちのいずれかが識別され又は実行される実行スケジュールの前記構成及び実行の記録の分析に前記選択の基礎を置く、ステップを有する、
ソフトウェアサービス実行装置。
（付記２）  前記レジストリの中で識別される前記複数のソフトウェアサービスの中の各々のソフトウェアサービスは、前記ソフトウェア実行制御部からの呼び出しに応じて前記プロセッサハードウェアにより実行されると、前記呼び出しの中で識別される入力データに対して前記個々のデータ処理機能を実行する処理を実行するよう構成され、前記実行された処理の結果は、処理結果又はタイムアウトの出力であり、
前記実行スケジュールの実行を制御するステップは、前記レジストリの中で指定される前記個々のデータ処理機能を前記受信したデータ処理要求により決定される入力データに対して実行するために前記実行スケジュールに含まれる前記の又は各ソフトウェアサービス、及び／又は前記実行スケジュールに含まれる先行するソフトウェアサービス、を呼び出すステップを有する、
付記１に記載のソフトウェアサービス実行装置。
（付記３）  前記機械学習メカニズムプロセスにより維持される前記実行スケジュールの前記実行の前記記録は、前記個々のデータ処理要求の前記実行スケジュールの前記の制御される実行の中で前記ソフトウェア実行制御プロセスにより呼び出される前記ソフトウェアサービスの各々について、前記ソフトウェアサービスの前記実行された処理の前記結果の指示を、タイムアウト又は処理結果の出力として有し、
前記機械学習メカニズムプロセスは、少なくとも部分的に、前記自動選択候補の実行した処理結果の前記記録された指示に、前記自動選択候補の中からの１つのソフトウェアサービスの前記選択の基礎を置く、
付記２に記載のソフトウェアサービス実行装置。
（付記４）  前記機械学習メカニズムプロセスにより維持される前記実行スケジュールの前記実行の前記記録は、前記呼び出されたソフトウェアサービスの各々について、前記呼び出しの中で識別される前記入力データの１又は複数の特性の値を更に有し、
前記機械学習メカニズムプロセスは、少なくとも部分的に、前記要求データ処理機能の前記入力データの特性の値と前記実行した処理の結果が処理結果の出力である呼び出しの中で識別された前記入力データの前記１又は複数の特性の前記記録された値との間の類似性の定量化に、前記自動選択候補の中からの１つのソフトウェアサービスの前記選択の基礎を置く、
付記３に記載のソフトウェアサービス実行装置。
（付記５）  前記入力データの前記１又は複数の特性は、入力データの量の測定値を含む、
付記４に記載のソフトウェアサービス実行装置。
（付記６）  前記構成するステップは、手動構成モードで、前記レジストリの中で指定される前記処理機能が前記要求データ処理機能のうちの１つと一致する１より多くのソフトウェアサービスが識別される場合、前記装置のユーザによる手動選択候補として、前記１より多くのソフトウェアサービスの中からの１つのソフトウェアサービスの選択を要求するステップと、前記ユーザから要求選択を受信するステップと、を含み、
前記機械学習メカニズムプロセスは、前記個々のデータ処理要求の前記実行スケジュールの前記構成の前記記録の中に、前記手動選択候補のアイデンティティ及び前記受信したユーザ選択の指示を含め、
前記機械学習メカニズムプロセスは、少なくとも部分的に、前記自動選択候補に一致する手動選択候補の中からの前記受信したユーザ選択の前記記録された指示に、前記自動選択候補の中からの１つのソフトウェアサービスの前記選択の基礎を置く、
付記１に記載のソフトウェアサービス実行装置。
（付記７）  前記機械学習メカニズムプロセスは、前記自動選択候補のうちのいずれかが識別され又は実行される実行スケジュールの前記構成及び実行の記録の前記分析の結果として、前記自動選択候補の中からの１つのソフトウェアサービスの前記選択における信頼度を生成するステップを有し、
前記構成するステップは、前記生成された信頼度が閾最小値より高い場合、１つのソフトウェアサービスの前記選択を前記実行スケジュールに追加するステップと、前記生成された信頼度が閾最小値以下である場合、前記要求データ処理機能を実行するために、１つのソフトウェアサービスの選択のために前記手動構成モードに戻るステップと、を有する、
付記６に記載のソフトウェアサービス実行装置。
（付記８）  前記機械学習メカニズムプロセスにより維持される前記実行スケジュールの前記構成の前記記録は、前記受信したデータ処理要求により定められる前記１又は複数の要求データ処理機能の各々について、前記呼び出しの中で識別される前記入力データの１又は複数の特性の値を有し、
前記機械学習メカニズムプロセスは、少なくとも部分的に、前記要求データ処理機能の前記入力データの特性の値と前記手動選択候補のうちの１又は複数が前記自動選択候補の中にある構成の記録の中の前記入力データの前記１又は複数の特性の値との間の類似性の定量化に、前記自動選択候補の中からの１つのソフトウェアサービスの前記選択の基礎を置く、
付記６に記載のソフトウェアサービス実行装置。
（付記９）  前記受信したデータ処理要求により定められる前記１又は複数の要求データ処理機能は、要求データ処理機能シリーズとして定められ、前記実行スケジュールの前記構成は、各々の要求データ処理機能について、前記データ処理要求により定められる先行する要求データ処理機能についての前記実行スケジュールの前記構成及び実行に続いて実行される、
付記１に記載のソフトウェアサービス実行装置。
（付記１０）  前記プロセッサハードウェアは、
ソフトウェア実行プロセスであって、前記複数のソフトウェア機能の中からソフトウェア機能を識別し及び入力データを識別する前記ソフトウェア実行制御プロセスからの呼び出しに応答して、前記実行における入力データとして、前記識別された入力データにより前記識別されたソフトウェアサービスをロードし実行するステップを含む、
付記２に記載のソフトウェアサービス実行装置。
（付記１１）  付記１乃至１０のいずれか一項に記載のソフトウェアサービス実行装置を有するソフトウェア実行システムであって、前記メモリハードウェアは、
前記複数のソフトウェアサービスを格納するソフトウェアライブラリ、
を格納するよう更に構成される、ソフトウェア実行システム。
（付記１２）  ソフトウェアサービス実行方法であって、
複数のソフトウェアサービスの各々を識別するレジストリを格納するステップであって、各々の識別されたソフトウェアサービスは、前記レジストリの中で指定される個々のデータ処理機能を実行するよう構成される、ステップと、
複数のデータ処理要求の各々について、
前記データ処理要求を受信するステップであって、前記受信したデータ処理要求は、１又は複数の要求データ処理機能を定める、ステップと、
前記レジストリの中で識別される前記複数のソフトウェアサービスの中から１又は複数のソフトウェアサービスの実行スケジュールを構成するステップであって、前記１又は複数の要求データ処理機能の各々について、前記レジストリの中で指定される単一の処理機能が前記要求データ処理機能と一致するソフトウェアサービスを識別すること、及び前記識別したソフトウェアサービスを前記実行スケジュールに含めることにより、前記受信したデータ処理要求を満たす、ステップと、
前記実行スケジュールの実行を制御するステップと、
前記受信したデータ処理要求の各々について、前記実行スケジュールの前記構成及び前記実行スケジュールの前記実行の記録を維持するステップと、
を有し、
前記構成するステップは、自動構成モードで、前記レジストリの中で指定される単一の処理機能が前記要求されたデータ処理機能のうちの１つに一致する１より多くのソフトウェアサービスが識別される場合、機械学習メカニズムプロセスによる自動選択候補として、前記１より多くのソフトウェアサービスの中から１つのソフトウェアサービスの選択を要求するステップを有し、
前記方法は、前記選択の要求に対して、前記自動選択候補の中からの１つのソフトウェアサービスの選択により応答するステップであって、前記自動選択候補のうちのいずれかが識別され又は実行される実行スケジュールの前記構成及び実行の記録の分析に前記選択の基礎を置く、ステップを更に有する、
ソフトウェアサービス実行方法。
（付記１３）  処理命令を格納する非一時的コンピュータ可読媒体であって、前記処理命令は、プロセッサハードウェアにより実行されると、前記プロセッサハードウェアに、
複数のソフトウェアサービスの各々を識別するレジストリを格納させ、各々の識別されたソフトウェアサービスは、前記レジストリの中で指定される個々のデータ処理機能を実行するよう構成され、
複数のデータ処理要求の各々について、
前記データ処理要求を受信させ、前記受信したデータ処理要求は、１又は複数の要求データ処理機能を定め、
前記レジストリの中で識別される前記複数のソフトウェアサービスの中から１又は複数のソフトウェアサービスの実行スケジュールを構成させ、前記１又は複数の要求データ処理機能の各々について、前記レジストリの中で指定される単一の処理機能が前記要求データ処理機能と一致するソフトウェアサービスを識別すること、及び前記識別したソフトウェアサービスを前記実行スケジュールに含めることにより、前記受信したデータ処理要求を満たし、
前記実行スケジュールの実行を制御させ、
前記受信したデータ処理要求の各々について、前記実行スケジュールの前記構成及び前記実行スケジュールの前記実行の記録を維持させ、
前記構成は、自動構成モードで、前記レジストリの中で指定される単一の処理機能が前記要求データ処理機能のうちの１つに一致する１より多くのソフトウェアサービスが識別される場合、機械学習メカニズムプロセスによる自動選択候補として、前記１より多くのソフトウェアサービスの中から１つのソフトウェアサービスの選択を要求することを含み、
前記処理命令は、前記プロセッサハードウェアに、さらに、前記選択の要求に対して、前記自動選択候補の中からの１つのソフトウェアサービスの選択により応答させ、前記自動選択候補のうちのいずれかが識別され又は実行される実行スケジュールの前記構成及び実行の記録の分析に前記選択の基礎を置く、
非一時的コンピュータ可読媒体。
【符号の説明】
【０１２４】
１０  ソフトウェアサービス実行装置
１２  レジストリ
１４  ソフトウェア実行制御部
１６  機械学習メカニズム
【図１】
2018067302.tif 000003
【図２】
2018067302.tif 000004
【図３】
2018067302.tif 000005
【図４】
2018067302.tif 000006
【図５】
2018067302.tif 000007
【図６】
2018067302.tif 000008
【図７】
2018067302.tif 000009
【図８】
2018067302.tif 000010
【図９】
2018067302.tif 000011