JP6805765B2 - ソフトウェアサービスの実行のためのシステム、方法、及びプログラム - Google Patents

ソフトウェアサービスの実行のためのシステム、方法、及びプログラム Download PDF

Info

Publication number
JP6805765B2
JP6805765B2 JP2016233528A JP2016233528A JP6805765B2 JP 6805765 B2 JP6805765 B2 JP 6805765B2 JP 2016233528 A JP2016233528 A JP 2016233528A JP 2016233528 A JP2016233528 A JP 2016233528A JP 6805765 B2 JP6805765 B2 JP 6805765B2
Authority
JP
Japan
Prior art keywords
vertex
query
software service
software
search path
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2016233528A
Other languages
English (en)
Other versions
JP2018067280A (ja
Inventor
ロペス・ホセ モーラ
ロペス・ホセ モーラ
ラ トーレ・ビクトール デ
ラ トーレ・ビクトール デ
正智 後藤
正智 後藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2018067280A publication Critical patent/JP2018067280A/ja
Application granted granted Critical
Publication of JP6805765B2 publication Critical patent/JP6805765B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists

Description

実施形態は、データ処理アーキテクチャの分野に属し、詳細には、ウェブソフトウェアサービス等のソフトウェアサービスの自動編成に関する。
既存のマイクロサービスであるウェブサービス等のソフトウェアサービスの自動的な編成及び複合は、一般的ではなく、最新の技術アプローチは、ウェブサービスの重い注釈に依拠している。
ウェブサービスの編成及び複合を自動化しようとする既存の技術は、以下の2つの広義のグループに分類される:
1.いかなる決定も行わない技術:実行されるべき全ての可能性が実行され、結果が、集合意味論に起因して等価である。
2.形式論理に基づいて決定を行う技術であって、最先端のケースでは以下の2つの要素を有する技術:
a.サービスにより提供される、サービス品質に関する何らかのメタデータ。
b.上記メタデータを使用して、ユーザ又は規則の集合により要求された品質に適応するプランを見つけ出す編成アルゴリズム。
課題は、上記の編成が自律的ではなく、注釈が重すぎることである。新たなサービスに注釈付けすることは難しく、実行プラン化は厄介です。
実施形態は、複数のソフトウェアサービスを記憶しているソフトウェアライブラリであって、複数のソフトウェアサービスの各々は、実行されると、指定された入力URI(ユニフォームリソース識別子)から入力データを得て、得られた入力データに対して処理を実行し、処理の結果を指定された出力URIに出力するよう構成されている、ソフトウェアライブラリと、複数のソフトウェアサービスを表現しているメタデータグラフであって、複数のソフトウェアサービスの各々は、主頂点(subject vertex)と目的頂点(object vertex)との間の関係を規定している述部(predicate)により、メタデータグラフにおいて識別可能であり、主頂点は、指定された入力URIを記憶しており、述部を用いてラベル付けされた有向エッジにより、指定された出力URIを記憶している目的頂点に結び付けられている、メタデータグラフと、グラフクエリ言語を用いたクエリを受信するよう構成されているメタデータグラフクエリインタフェースであって、受信されたクエリは、各エッジが、メタデータグラフにおける述部のうちのそれぞれの指定された述部を用いてラベル付けされた1以上のエッジに沿った規定されている探索パスにより元頂点(source vertex)に結び付けられているクエリ頂点を、変数として要求し、変数の値が、受信されたクエリにより指定されている、メタデータグラフクエリインタフェースと、規定されている探索パスにおけるエッジをラベル付けしている1以上の指定された述部により識別された1以上のソフトウェアサービスの実行を、規定されている探索パスにより判別された順番で制御するよう構成されているソフトウェアサービス実行コントローラと、を有するソフトウェアサービス実行システムを含む。メタデータグラフクエリインタフェースは、クエリ頂点の値をもって、受信されたクエリに応答するよう構成されており、クエリ頂点の値は、元頂点から規定されている探索パスに沿ってクエリ頂点に結び付けているラベル付けされたエッジのラベルにより識別されたソフトウェアサービスを実行することにより生成される。
有利なことに、実施形態は、グラフクエリ言語を用いたクエリを、ソフトウェアサービスの実行プランに変換する。クエリ言語は、クライアント/ユーザからソフトウェアサービスアーキテクチャの複雑さをマスクしたメタデータグラフへのアクセスを提供する。データ処理タスクを実行する際にソフトウェアサービスを得ることが容易にされる。
ソフトウェアサービスの編成のための既存のプラン化アルゴリズムは、自律的ではなく、(シンタックス及びロジックの点で)重い注釈に依拠している。例えば、述部として動作の意味を規定する、本明細書で定められ説明されるソフトウェアサービス実行システムの実施形態は、以下のようないくつかの利点を有する:
−高水準グラフクエリ言語は、要求された型の結び付けられたマイクロサービス処理の終端の結果だけでなく、いくつかの中間結果も、クエリが要求することを可能にする。
−グラフクエリ言語は、結果が、どのように得られるか、及び、結果が、元々の入力とどのように関連するかと(中間結果の場合には)結果の間でどのように関連するかと、についてのさらなる制御を、クライアント/ユーザに提供する。
−クエリ言語の統合が、型システムよりも自然であるのと同じやり方で、他のシステムとの統合がより自然である。
−より良い統合機能に起因して、例えば、クエリ再記述を介して、システムのより良い拡張性が可能にされる。
ソフトウェアサービス実行システムは、受信されたグラフクエリを、受信されたクエリにおいて規定されているグラフ探索パスにおいて識別されたソフトウェアサービスの実行に変換するためのメカニズムを提供する。受信されたグラフクエリに応じたグラフ探索パスの進行は、グラフ探索パスに対応するソフトウェアサービスの実行に変換される。
受信されたクエリは、グラフクエリである。グラフクエリとは、グラフデータストアに適用可能なデータクエリを指す。グラフクエリのための言語の例は、(RDFでのトリプルストアのための)SPARQL、及び、(Neo4jのための)Cypherである。グラフクエリ言語は、それらの表現性及び簡潔性のため有利である。なぜならば、スキーマは、(標準的なデータベースにおけるように)予め指定される必要はなく、新たなデータがシステムに追加されるたびに指定することができるからである。これは、ソフトウェアサービスの追加/除去の容易さが望まれるソフトウェアサービスアーキテクチャにおいて、特に有利である。
受信されたクエリにより規定されている探索パスは、クエリに対する応答を生成する際に進行されるべき探索パスである。メタデータグラフクエリインタフェースは、受信されたクエリを、1以上の探索パスに変換するよう構成されている。各探索パスは、互いにオーバーラップする探索パスが出力結果を共有し得ることに留意しながら、メタデータグラフクエリインタフェース及びソフトウェアサービス実行コントローラにより独立して処理され得るので、同じ入力データを伴って2つの規定されている探索パスにおいて生じるソフトウェアサービスは、2回以上実行される必要がない。
複数のソフトウェアサービスの各々は、主頂点と目的頂点との間の関係を規定している述部により、メタデータグラフにおいて識別可能である。識別可能であることは、複数のソフトウェアサービスの中から区別できることを意味する。例えば、述部は、ソフトウェアサービスにリンクしているURI又はURL(ユニフォームリソースロケータ)であり得る。述部(及びソフトウェアサービスのURI又はURL)は、ソフトウェアサービスが実行されたときにソフトウェアサービスにより実行されるデータ処理の意味記述子であってもよいし、そのような意味記述子を含んでもよい。
任意的に、元頂点の値は、明示的に規定された値、又は、クエリ頂点への規定されている探索パスに沿って元頂点に結び付けているラベル付けされたエッジにより識別されたソフトウェアサービスにより処理されるデータの元の位置のURI又はURL、により指定される。
元頂点は、受信されたクエリについて、既知の開始点を、それが1つの値であるか又は規定されたファイル若しくはデータベースに記憶されているデータであるかにかかわらず、効果的に規定する。クエリにより規定されている探索パスは、元頂点から1以上のクエリ頂点への、メタデータグラフの一連のラベル付けされたエッジに沿った経路である。ソフトウェアサービス実行コントローラは、元頂点により規定されている値又はデータにアクセスし、当該値又はデータを、クエリ頂点への規定されている探索パスに沿って元頂点に結び付けているラベル付けされたエッジにより識別されたソフトウェアサービスに提供するよう構成されている。
受信されたクエリに応じて出力されるクエリ頂点の値は、元頂点から規定されている探索パスに沿ってクエリ頂点に結び付けているラベル付けされたエッジのラベルにより識別されたソフトウェアサービスの指定された出力URI、又は、このソフトウェアサービスの処理の結果であり得る。
指定された出力URIは、例えば、URLであり得る。クエリの目的は、未知なものの値を得ることである。ソフトウェアサービス実行システムのコンテキストにおいて、未知なものは、受信されたグラフクエリにおいて識別され、メタデータグラフクエリインタフェースにより抽出されるクエリ頂点である。ソフトウェアサービス実行コントローラにより進行される探索パスは、特定の境界条件(すなわち、元頂点及び1以上の指定された述部)を所与としてクエリ頂点の値を得るための一連の処理タスク(ソフトウェアサービスの実行)である。クエリ頂点の値は、ソフトウェアサービス実行コントローラが、探索パスに従ってソフトウェアサービスの実行を制御することにより得られる。規定されている探索パスに沿ってクエリ頂点に結び付けているラベル付けされたエッジのラベルにより識別されたソフトウェアサービスのアイデンティティ(identity)が、処理結果の性質を決定する。型は、URI又はURLであることに制約され得るが、ソフトウェアサービスにより指定されたURI又はURLに記憶されているデータは、制約されず、例えば、1つのデータ値であってもよいし、データ値のベクトルであってもよいし、画像であってもよいし、データベースであってもよいし、ソフトウェアサービスの処理を実行することにより得られる何らかの他の形態のデータであってもよい。
任意的に、ソフトウェアサービス実行コントローラは、元頂点と規定されている探索パスにおけるクエリ頂点との間の頂点又は各頂点について、入力データとして、それぞれの頂点の元頂点側のラベル付けされたエッジにより識別されたソフトウェアサービスの処理の結果を、それぞれの頂点のクエリ頂点側のソフトウェアサービスに提供することにより、規定されている探索パスにおけるエッジをラベル付けしている1以上の指定された述部により識別された1以上のソフトウェアサービスの実行を制御するよう構成される。
換言すると、探索パスが、1以上の「中間頂点」、すなわち、元頂点でもクエリ頂点でもない頂点を含む場合には、この頂点は、探索パスにおける中間頂点の両側のラベル付けされたエッジにより識別された2つのソフトウェアサービスの間のデータの共有を示す。データの共有は、先行するソフトウェアサービス(すなわち、元頂点側のエッジの述部により識別されたソフトウェアサービス)の処理結果が、入力データとして、次のソフトウェアサービス(すなわち、クエリ頂点側のエッジの述部により識別されたソフトウェアサービス)に提供されることを意味する。
ソフトウェアサービスは、ウェブサービスであり得る。ウェブサービスであるか又は他のサービスであるかにかかわらず、ソフトウェアサービスは、マイクロサービスであり得る。
マイクロサービスは、データ処理装置におけるアトミックサービス(atomic service)である。このコンテキストにおける「アトミック」とは、1つの役割又は1つの機能を意味する。マイクロサービスは、サービスのディメンジョンにより、一般ウェブサービスとは区別される。例えば、一般ウェブサービスは、より広範な機能の一部として、何らかの形態の認証を含むであろう。マイクロサービスベースの装置において、認証は、専用マイクロサービスである。
特定の例のソフトウェアサービスとして、ソフトウェアサービスは、RESTful(RESTフル)なソフトウェアサービスであり、各RESTfulなソフトウェアサービスは、GET要求、並びにPOST要求及び/又はPUT要求についてのメソッドを規定している。REST(representational state transfer)は、マシンについてウェブにおける参加者の適切な挙動を支配するアーキテクチャスタイルである。RESTは、「RESTful」であるとして適合(conforming)が表されるシステムアーキテクチャについての制約を提示しており、その制約の第1は、アーキテクチャが、クライアントが一様インタフェース(uniform interface)によりサーバから分離されるクライアント−サーバ構成を有することである。クライアントとサーバとの間にはインタフェースの4つの指導原則が(guiding principle)が存在し、これらの原則に従って開発されるインタフェースは、「RESTful」であるとして表され得る。例えば、APIは、ソフトウェアサービスへのインタフェースのためのREST指導原則に従って記述され得、したがって、「RESTfulなAPI」として表されるであろう。プロトコルとしてのHTTPが、RESTfulな方式において使用され得、RESTfulなHTTPが、マシンについてウェブに適している。RESTfulなインタフェース(API)は、次のようないくつかの主な理由により普及している:信頼できるアーキテクチャ原則を用いて実績のある基盤の上に構築された基本プロトコルの簡潔さが存在し、結果が、ウェブ開発者により分かりやすく使用可能である。
簡潔に言えば、RESTアーキテクチャスタイルは、以下のような、システムアーキテクチャについての6つの制約(6つの制約のうちの1つの制約は任意的である)を記述している:
−アーキテクチャは、クライアント−サーバ型であるべきである;
−クライアント及びサーバは、一様インタフェースにより分離される;
−アーキテクチャは、クライアントコンテキストが、クライアントからの要求の間でサーバに記憶されない−各要求は、要求をサービスするのに必要な情報の全てを含み、状態情報は、クライアント自体に保持される−ことを意味するステートレスである;
−クライアントは、応答をキャッシュすることができる;
−(任意的)機能は、サーバ転送ロジックによりクライアントに拡張されてもよく、クライアントが、機能を実行してもよい。
ソフトウェアサービス実行システムのコンテキストにおいて、クライアントは、メタデータグラフクエリインタフェースであり、サーバは、ウェブサーバ、又はソフトウェアサービスを実行する他のコンピューティングデバイスである。
一様インタフェースのための指導原則は、以下のように簡潔にまとめられる:
−ドメイン内の個々のリソースは、クライアントからの要求において識別され得る(これは、ウェブベースのシステムにおいてURIを介するであろう)。これらのリソース自体は、クライアントに返される表現とは別個のエンティティである;
−クライアントにより保持されるリソースの表現は、サーバ上のリソースを変更又は削除する(パーミッションにより許容される)のに十分な情報をクライアントに与えるのに十分である;
−クライアントとサーバとの間の各メッセージは、受信側が当該メッセージを処理するのに十分な情報を含む;
−サーバからクライアントに提供されるリソースの表現は、関連リソースへのハイパーテキストリンクを含むべきである。
RESTアーキテクチャスタイルの肯定的な側面は、情報モデルとよくリンクすることである。情報モデルは、ドメイン内のアイテム及びアイテム間の関係の形式化された記述である。RESTfulなAPIにおいて許容される動作は、制約され(固定され)、これは、そうでなければインタフェースを情報モデルとリンクする際に通常問題につながるであろう貧弱なプログラミング挙動の望まれない副次的作用を回避する。
実際、特定のドメインについてのRESTfulなAPIは、当該ドメインについての情報モデルの観点で純粋に、次いで、異なるデータフォーマット内部でこのモデルがどのように見えるかにより定義され得る。ここで、データフォーマットは、情報モデルのワイヤレベル(低レベル又は実装レベル)の明示(manifestation)である。残念なことに、現在使用されているAPIは、情報モデリングに対するアプローチ、これがデータフォーマット内部でどのように見えるか、及び、HTTPのセマンティクスが、当該の1以上のAPIの固有のドメイン内で使用するために、どのように引き起こされるかに関して相違を示している。このような一貫性の欠如は、例えば、再利用可能なツールキット(例えば、標準コード)及び(ブラウザと等価な)汎用クライアントエージェントの潜在的可能性といった、RESTfulなプロトコルの潜在的な恩恵が失われるので、問題である。
4つのリストされる規定されたメソッドが、ソフトウェアサービスのためのRESTfulなインタフェースのコンテンツの例示である。
ソフトウェアサービスがRESTfulである実施形態において、ソフトウェアサービス実行コントローラは、元頂点からクエリ頂点へと規定されている探索パスを進行し、それぞれのソフトウェアサービスを識別する指定された述部を用いてラベル付けされたエッジが、指定された述部の主頂点から、指定された述部の目的頂点へと探索される場合に、ソフトウェアサービスにGET要求を発行することにより、規定されている探索パスにおけるエッジをラベル付けしている1以上の指定された述部により識別された1以上のソフトウェアサービスの実行を制御するよう構成され得る。
例えば、それぞれのソフトウェアサービスのAPIにより指定され得るGET要求は、ソフトウェアサービスのためのRESTfulな実行メソッドである。ソフトウェアサービス実行コントローラは、元頂点により、又は探索パスにおける先行するソフトウェアサービスの処理結果により規定された入力データに関して、ラベル付けされたエッジにより識別されたソフトウェアサービスにGET要求を発行して、メタデータグラフクエリインタフェースにより抽出された探索パスを進行する。
任意的に、ソフトウェアサービスは、メタデータグラフにおいて述部により識別可能であり、述部は、ソフトウェアサービスのURI又はURLである。
有向エッジがメタデータグラフにおいて入力と出力とを結びつける述部は、それぞれのソフトウェアサービスにより実行される処理の意味記述子である。有利なことに、そのような実施形態におけるセマンティクスは、軽量であり、さらなる注釈を要することなく、サービスのURLにおいて指定され得る。
既存のソフトウェアサービス実行システムにおいては、利用可能なソフトウェアサービスについての情報を保持するために、レジストリが必要である。ソフトウェアサービスURLに対する述部のマッチングは、そのようなレジストリの必要性をなくす。クエリにおいて使用される述部は、ソフトウェアサービスのURLに直接マッピングされる。したがって、関連情報が、クエリにおいて提供され、別途登録される必要はない。
ソフトウェアサービス実行コントローラの特定の実装において、ソフトウェアサービス実行コントローラは、ナレッジベースを含み、ソフトウェアサービス実行コントローラは、各探索パスについて、当該探索パスと、1以上のクエリ頂点と、元頂点と、を記録したレコードをナレッジベースに追加するよう構成され、ソフトウェアサービスは、1以上のクエリ頂点の結果を得る際にソフトウェアサービス実行コントローラにより実行され;ソフトウェアサービス実行コントローラは、規定されている探索パスに対する応答を生成する際にソフトウェアサービスを実行する制御を最適化するために、規定されている探索パスを、ナレッジベースに記録された探索パスと比較するよう構成される。
有利なことに、そのようなナレッジベースは、ソフトウェア実行制御が、ソフトウェアサービスの選択及び実行を最適化するために、以前の実行プランから学習することを可能にする。
別の態様の実施形態は、複数のソフトウェアサービスを記憶するステップであって、各ソフトウェアサービスは、実行されると、指定された入力URIから入力データを得て、得られた入力データに対して処理を実行し、処理の結果を指定された出力URIに出力するよう構成されている、ステップと、複数のソフトウェアサービスを表現しているメタデータグラフを記憶するステップであって、各ソフトウェアサービスは、主頂点と目的頂点との間の関係を規定している述部により、メタデータグラフにおいて識別可能であり、主頂点は、指定された入力URIを記憶しており、述部を用いてラベル付けされた有向エッジにより、指定された出力URIを記憶している目的頂点に結び付けられている、ステップと、グラフクエリ言語を用いたクエリを受信するステップであって、受信されたクエリは、各エッジが、メタデータグラフにおける述部のうちのそれぞれの指定された述部を用いてラベル付けされた1以上のエッジに沿った規定されている探索パスにより元頂点に結び付けられているクエリ頂点を、変数として要求し、変数の値が、受信されたクエリにより指定されている、ステップと、規定されている探索パスにおけるエッジをラベル付けしている1以上の指定された述部により識別された1以上の記憶されたソフトウェアサービスの実行を、規定されている探索パスにより判別された順番で制御するステップと、クエリ頂点の値をもって、受信されたクエリに応答するステップであって、クエリ頂点の値は、元頂点から規定されている探索パスに沿ってクエリ頂点に結び付けているラベル付けされたエッジのラベルにより識別されたソフトウェアサービスを実行することにより生成される、ステップと、を含むソフトウェアサービス実行方法を含む。
別の態様の実施形態は、コンピューティング装置により実行されたときに、コンピューティング装置を、本発明の実施形態として請求項に記載されたシステムとして機能させるコンピュータプログラムを含む。
別の態様の実施形態は、コンピューティング装置により実行されたときに、コンピューティング装置に、本発明の実施形態として上記に記載された方法又は本文書において別の場所に記載された方法を実行させるコンピュータプログラムを含む。
さらに、本発明の実施形態は、複数の相互接続されたコンピューティングデバイスにより実行されたときに、複数の相互接続されたコンピューティングデバイスを、本発明を具現化するシステムとして動作させる1つのコンピュータプログラム又は一式のコンピュータプログラムを含む。
上記の態様のいずれにおいても、様々な特徴は、ハードウェアにより実装されてもよいし、1以上のプロセッサ上で実行されるソフトウェアモジュールとして実装されてもよい。1つの態様の特徴は、他の態様のいずれにも適用することができる。
本発明の実施形態はまた、本明細書に記載の方法のいずれかを実行するためのコンピュータプログラム又はコンピュータプログラム製品と、本明細書に記載の方法のいずれかを実行するためのプログラムを記憶したコンピュータ読み取り可能な媒体と、を提供する。本発明を具現化するコンピュータプログラムは、コンピュータ読み取り可能な媒体に記憶されてもよいし、例えば、インターネットウェブサイトから提供されるダウンロード可能なデータ信号等の信号の形態であってもよいし、任意の他の形態であってもよい。
本発明の実施形態の好ましい特徴が、添付の図面を参照しながら、単に例として説明される。
ソフトウェアサービス実行システムを示す図。 ソフトウェアサービス実行方法を示す図。 例示的なソフトウェアサービスの表現を示す図。 実施形態のハードウェア構成を示す図。
図1は、ソフトウェアサービス実行システム10を示している。ソフトウェアサービス実行システム10は、ソフトウェアライブラリ12、複数のソフトウェアサービス121、メタデータグラフ14、メタデータグラフクエリインタフェース16、及びソフトウェアサービス実行コントローラ18を有する。ソフトウェアサービス実行システム10は、例えば、1つのウェブサーバ又は複数の相互接続されたウェブサーバであり得る。
図2は、ソフトウェアサービス実行方法を示している。
ソフトウェアライブラリ12は、複数のソフトウェアサービス121を記憶するよう構成され、各ソフトウェアサービス121は、実行されると、指定された入力URIから入力データを得て、得られた入力データに対して処理を実行し、処理の結果を指定された出力URIに出力するよう構成される。
各ソフトウェアサービスが、実行されると、指定された入力URIから入力データを得て、得られた入力データに対して処理を実行し、処理の結果を指定された出力URIに出力するよう構成される複数のソフトウェアサービスの記憶は、図2におけるステップS201により示されている。記憶を示すステップS201に交差している線は、ステップS203〜S205の実行の間持続する。ステップS201におけるソフトウェアサービスの記憶は、図1のソフトウェアライブラリ12により実行され得る。
ソフトウェアライブラリ12は、実行可能なソフトウェアとして、ソフトウェアサービス121を記憶する。ソフトウェアサービス121は、ウェブサービスであり得る。ウェブサービスは、マイクロサービスであり得る。複数のソフトウェアサービス121は、ウェブサーバ等の1つのサーバに記憶されてもよいし、相互接続されたウェブサーバのネットワークを介して分散されてもよい。指定された入力URIは、例えば、URLであり得る。指定された出力URIは、例えば、URLであり得る。
ソフトウェアサービス121は、処理ロジックを実行するためのプロセッサ(CPU)及び処理ロジックを記憶するとともに処理されているデータを記憶するためのメモリであり得る。
ソフトウェアライブラリ12はまた、例えば、それぞれのソフトウェアサービスの処理機能がどのようにトリガされ得るかと、入力をどのように指定するかと、どこで処理結果にアクセスするかと、を規定する、API等のインタフェースを記憶することができる。ソフトウェアライブラリ12はまた、ソフトウェアサービス121を実行するのに必要とされるプロセッサ及び他のハードウェアを含み得る。例えば、ソフトウェアサービス121は、ウェブサービスであり得、ソフトウェアライブラリ12は、ウェブサーバであり得る。
APIとは、アプリケーションプログラミングインタフェースの略である。インタフェースは、何らかのソフトウェア要素(プログラム、ライブラリ等)が、異なるソフトウェア要素(プログラム、ライブラリ等)から使用されることを可能にする。
メタデータグラフ14は、ソフトウェアライブラリ12により記憶された複数のソフトウェアサービスのモデル(表現)である。ソフトウェアサービスの各々は、述部により識別可能であり、この述部は、それぞれのソフトウェアサービスにより実行される処理の意味記述子であり得る。メタデータグラフ14におけるエッジは、有向であり、これは、入力データを出力結果に変換する、各ソフトウェアサービスにより実行されるデフォルトプロセスが存在することを反映している。2つの頂点を連結する有向エッジの方向が、2つの頂点のうちどちらが主頂点でありどちらが目的頂点であるかを決定する。
複数のソフトウェアサービスを表現しているメタデータグラフを記憶するステップであって、各ソフトウェアサービスが、主頂点と目的頂点との間の関係を規定している述部により、メタデータグラフにおいて識別可能であり、主頂点が、指定された入力URIを記憶しており、述部を用いてラベル付けされた有向エッジにより、指定された出力URIを記憶している目的頂点に結び付けられている、記憶するステップが、図2においてステップS202により示されている。記憶を示すステップS202に交差している線は、ステップS203〜S205の実行の間持続する。ステップS202において記憶されるメタデータグラフは、図1のメタデータグラフ14であり得る。
メタデータグラフ14は、例えば、RDFトリプル等のトリプルとして符号化され得る。各トリプルは、3つのデータ要素、すなわち、主部、述部、及び目的部の各々の値を有する。それぞれのデータ要素の値は、全頂点(又は、述部の場合はラベル)を記憶してもよいし、上記の全頂点(又は、述部の場合は上記のラベル)にアクセスすることができる元である記憶位置に対する識別子を記憶してもよい。
メタデータグラフ14は、サーバ等の1つのコンピューティングデバイスにより記憶されてもよいし、互いと協働する複数のコンピューティングデバイスにより記憶されてもよい。メタデータグラフ14は、ソフトウェアライブラリ12が記憶されて実行可能である同一のサーバにより記憶されてもよい。
メタデータグラフ14の表現は、パブリックにされ得る、又は、ソフトウェアサービス実行システム10のクライアント/ユーザに利用可能にされ得る。
メタデータグラフ14は、メタデータグラフクエリインタフェース16を介して、クライアント/ユーザによりアクセス可能である。図1に示されるように、クエリは、インタフェース16により受信される。
グラフクエリ言語を用いたクエリを受信するステップであって、受信されたクエリは、各エッジが、メタデータグラフにおける述部のうちのそれぞれの指定された述部を用いてラベル付けされた1以上のエッジに沿った規定されている探索パスにより元頂点に結び付けられているクエリ頂点を、変数として要求し、その変数の値が、受信されたクエリにより指定されている、受信するステップが、図2においてステップS203により示されている。ステップS203におけるクエリの受信は、例えば、図1のメタデータグラフクエリインタフェース16により実行され得る。
メタデータグラフクエリインタフェース16は、クライアント/ユーザが、本明細書でより詳細に説明される、図1におけるラベル付けされた矢印によりハイライトされている処理のフローを介して、複数のソフトウェアサービスのデータ処理機能にアクセスするためのメカニズムを提供する。メタデータグラフクエリインタフェース16は、クライアント/ユーザから、図1における「クエリ」矢印により示されるクエリを受信する。受信されたクエリは、例えば、SPARQL又はCypherといったグラフクエリ言語である。メタデータグラフクエリインタフェース16は、受信されたクエリをパースし、受信されたクエリにより規定されている探索パスと、受信されたクエリにおいて宣言変数として識別され、クエリに応じて(例えば、SELECT節により)要求された1以上のクエリ頂点と、元頂点と、を抽出する(これらの抽出された要素は、「探索パス」としてまとめられ得る。なぜならば、元頂点及び1以上のクエリ頂点は、探索パスの構成要素であるからである。)。元頂点は、受信されたクエリについて、既知の開始点を、それが1つの値であるか又は規定されたファイル若しくはデータベースに記憶されているデータであるかにかかわらず、効果的に規定する。規定されている探索パスは、メタデータグラフにおける複数の相互連結されている頂点であり、ここで、「相互連結されている」とは、メタデータグラフにおけるエッジを介して「結び付けられている」ことを表す。探索パスは、グラフクエリにより規定される。なぜならば、探索パスは、クエリに回答するために進行さければならない、グラフにわたるパスを設定するからである。複合クエリは、複数の探索パスを規定することができる。ソフトウェアサービス実行システム10は、複合クエリを一連の探索パスにコンパイルし、各探索パスについて規定されているように、ソフトウェアサービス実行コントローラ及びメタデータグラフクエリインタフェースにおいて一連の探索パスの各々を処理するよう構成される。
任意的に、メタデータグラフクエリインタフェース16は、ドメイン固有言語を用いたメタデータグラフクエリを受信し、ドメイン固有言語をグラフクエリ言語に変換するよう構成される。
メタデータグラフクエリインタフェース16は、図1における「探索パス」矢印により示されるように、受信されたクエリにより規定されている抽出された探索パスを、ソフトウェアサービス実行コントローラに出力する。
規定されている探索パスにおけるエッジをラベル付けしている1以上の指定された述部により識別された1以上の記憶されているソフトウェアサービスの実行を、規定されている探索パスにより判別された順番で制御するステップが、図2におけるステップS204により示されている。ステップS204におけるソフトウェアサービスの実行の制御は、例えば、図1のソフトウェアサービス実行コントローラ18により実行され得る。
ソフトウェアサービス実行コントローラ18は、ソフトウェアライブラリとインタラクトして、ソフトウェアサービス121の実行を制御し、必要とされるランタイムパラメータ(例えば、入力データを識別するパラメータ)を設定する。ソフトウェアサービス実行コントローラ18は、規定されている探索パスにおけるエッジをラベル付けしている1以上の指定された述部により識別された1以上のソフトウェアサービス121の実行を、規定されている探索パスにより判別された順番で制御するよう構成される。ソフトウェアサービス実行コントローラ18は、ソフトウェアサービス121の相対的タイミングを制御し、進行されている探索パスに従って、1つのソフトウェアサービス121の出力結果を、別のソフトウェアサービス121の入力に結び付ける。ソフトウェアサービス実行コントローラ18によるソフトウェアサービス121の実行の制御が、図1における「実行制御」矢印により示されている。
クエリ頂点の値をもって、受信されたクエリに応答するステップであって、元頂点から規定されている探索パスに沿ってクエリ頂点に結び付けているラベル付けされたエッジのラベルにより識別されたソフトウェアサービスを実行することにより、この値が生成される、応答するステップが、図2においてステップS205により示されている。S205における受信されたクエリへの応答は、例えば、図1のメタデータグラフクエリインタフェース16により実行され得る。
探索パスにおける頂点のうちの1以上の頂点が、受信されたグラフクエリにより要求されている。参照を容易にするために、上記1以上の頂点は、クエリ頂点と呼ばれる。メタデータグラフクエリインタフェース16は、探索パスにおけるそれぞれのクエリ頂点に先行する述部により識別されたソフトウェアサービス121の処理の結果を(明示的に、又は、結果にアクセスすることができる元の位置への参照を出力することによって)出力することにより、受信されたクエリに応答するよう構成される。ソフトウェアサービス実行コントローラ18は、ソフトウェアサービス121による頂点値の出力(すなわち、処理結果)を制御する。ソフトウェアサービス121からのクエリ頂点の値の、クエリインタフェース16への、次いで、クライアント/ユーザへの、出力が、図1における「クエリ頂点値」矢印により示されている。
図3は、例示的なAPIであって、ソフトウェアライブラリ12におけるソフトウェアサービス121が当該例示的なAPIを介して実行可能である、例示的なAPIを示している。図3の例において、ソフトウェアサービス121は、マイクロサービスである。
マイクロサービスの各々は、マイクロサービスのURLにより、グラフクエリ言語を用いた述部にマッピングされる(このマッピングは、暗示的であり得る)。
マイクロサービスの各々は、例えば、JSON、RDF、JSON−LD等といった文書にマッピングされ、別のどこか(ファイルシステム、Redis、MongoDB、又は任意の文書/ファイル記憶部)に記憶されるURI又はURLといった一意な1つの値を許容及び生成する。
各マイクロサービスは、メタデータグラフ14のエッジに対応し、それらのそれぞれの出力及び入力が、メタデータグラフ14の頂点である。それぞれのAPIの上にある注釈「load(ロードする)」、「summarize(要約する)」、「transform(変換する)」は、マイクロサービスが実行されたときにマイクロサービスにより実行される処理の意味記述子であり、それぞれのエッジがメタデータグラフ14においてラベル付けされる述部である。
グラフクエリ言語(例えば、SPARQL、Cypher等)を用いた受信されたクエリは、例えば、宣言変数を使用することによってグラフクエリにおける変数として要求された処理結果に対応する頂点を指定することにより、マイクロサービスの入力及び/又は出力(処理結果)の取得を可能にする。
ソフトウェアサービス実行システム10は、メタデータグラフクエリインタフェース16を介して、グラフクエリ言語を用いたクエリを受け入れ、ソフトウェアサービス実行コントローラ18は、グラフクエリ言語を用いて指定され、他のマイクロサービスから得られた値(すなわち、入力データ)を用いて、グラフクエリ言語を用いた述部により識別されたマイクロサービスを呼び出し、メタデータグラフクエリインタフェース16を介して、クエリにおける変数に対応する値を返す。
図3のマイクロサービスの実施形態において、マイクロサービスについてのURLは、クエリにおける述部から直接得ることが可能である。すなわち、メタデータグラフにおける述部は、マイクロサービスURLである。
図3により例示されるマイクロサービスアーキテクチャにおいて、各マイクロサービスは、以下の特徴を有する:
−各マイクロサービスは、1つの入力変数及び1つの出力変数のみを指定する。
−指定される入力変数及び指定される出力変数は、URLのタイプである。
−任意的に、マイクロサービスのURLは、入力と出力との間の意味関係を規定する。
−各マイクロサービスは、対応する入力値と出力値との間の関係について、RESTメソッドのGET、PUT、POST、及びDELETEを規定する。
−GETは、入力から出力を得る。実施形態において、処理結果は、持続され、キャッシュされ、記憶され、又は、これらの組合せの処理が実行され、他のマイクロサービスに利用可能にされ得る。
−PUT及びPOSTは、特定の入力について返されなければならない処理結果を設定することを可能にする。いくつかの実施形態において、機械学習アルゴリズムが、マイクロサービスを再構成するために、PUT及びPOSTに応じてトリガされる。
−DELETEは、特定の実装において使用されている場合(すなわち、いくつかの実装においては、マイクロサービスの処理結果が、記憶されるかどうか/どこに記憶されるか/どのように記憶されるかに応じて、マイクロサービスDELETEオプションが存在しないことがある)、持続性レイヤ又はキャッシュから処理結果を削除することを可能にする。
図3のマイクロサービスは、一実施形態におけるソフトウェアライブラリ12を例示している。図1の残りの特徴は、図1の記載におけるソフトウェアライブラリ12及びソフトウェアサービス121に関連して説明したのと同じやり方で、図3のマイクロサービスとインタラクトする。
マイクロサービスは、グラフクエリ言語を用いてメタデータグラフクエリインタフェース16を考慮することしか必要としないより高いソフトウェアレイヤ(ソフトウェアサービス実行システム10のクライアント/ユーザ)に対して抽象化される。このようなレイヤにトランスペアレントに、マイクロサービスが、ソフトウェアサービス実行コントローラ18により呼び出されて実行され、これは、いくつかの場合において、又は、他の場合における複雑な計算において、副次的作用を示す。マイクロサービスにおけるパラメータとして(及びグラフにおける頂点として)使用されるURLに対応する値は、それらの対応するURLを介してアクセス可能であり、これは、以下のことを意味する:
・マイクロサービスが実行されるときに、マイクロサービスがそれらの動作において使用されるために、それらの値はアクセス可能である。
・システムの最終応答の表現のために、それらの値はアクセス可能である。
頂点におけるURLとエッジにおける(マイクロサービスに対応する)述部とを伴う、システムにより使用されるグラフは、メタデータグラフであり、データは、エッジにおけるURLを介してアクセス可能であり、頂点におけるデータを計算するためのプロセスは、エッジのURLに対応するマイクロサービスとしてアクセス可能である。
図3は、ソフトウェアライブラリ12におけるアルゴリズム(マイクロサービス)の高水準な記述を示している。図示されるマイクロサービスは、エッジとしてメタデータグラフにマッピングされ、それぞれのエッジのラベルは、図3におけるマイクロサービスのタイトル、すなわち、「load」、「summarize」、「transform」に対応する。任意的に、ナレッジベースのロギング及び使用が、クエリから生成される、クエリ実行プランの最適化のために利用される。この最適化は、冗長な回答を回避すること、及び、回答が等しく適切である(健全且つ完全である)ときには、いくつかの動作を異なる順番で実行することを可能にし、その実行は、例えば、同じ動作を実行する複数のオプションの間で1つのマイクロサービスを選択することにより、より効率的である。
図3の例において、文書の解析のための動作、詳細には、「load」、「transform」、及び「summarize」という動作を実装しているマイクロサービスについてのドキュメンテーションが示されている。図3は、OpenAPIにより生成された、これらのサービスのドキュメンテーションを示している。
クエリは、以下のように、SPARQLクエリ言語を用いて、メタデータグラフクエリインタフェース16により受信される:
SELECT ?summary WHERE {

<http://fle.fujitsu.com/resources/example.csv> :load ?loadedResource .
?loadedResource :transform ?processedResource .
?processedResource :summarize ?summary .
}
このようなクエリにより規定される探索パスは:
元頂点(URL: http://example.com/resources/example.csv) − 述部(load) − 中間頂点(変数: ?loadedResource) − 述部(transform) − 中間頂点(変数: ?processedResource) − 述部(summarize) − クエリ頂点(変数: ?summary)
である。
ソフトウェアサービス実行コントローラ18は、規定されている探索パスに応じて、以下のようにマイクロサービスの実行を制御する:
1.リモートURLにおけるファイル、この場合は、
<http://fle.fujitsu.com/resources/example.csv>が、ロードされ、ロードされた(ローカル)リソースになる。
2.ローカルリソースとして、これが、変換され得、例えば、CSVファイルが、(一般的には)マトリクスに、又は、(この対象としている例では)データフレームに、パースされ得る。したがって、processedResourceは、そのようなデータフレームの位置を現在示しているURLである。
3.述部:summarizeは、前のステップのデータフレームを使用して要約を生成することができるマイクロサービスに対応する。(URLとしての)要約結果は、変数?summaryの値であり、この値が、受信されたクエリに応じて返される。なぜならば、これが、クエリの識別された変数である(すなわち、SELECT節にある)からである。
このようにして、ユーザは、要求された要約を示すURLを得る。ユーザが、何らかのソフトウェアである場合、このソフトウェアは、URLのコンテンツにアクセスし、例えば、人間のユーザに対して何らかのGUIにおいてコンテンツを表示するといった任意の目的のために、コンテンツを使用することができる。これらの動作は、宣言的に高水準でクエリ言語の一部として規定される。結果として、システムにより自動的に実行され可能にされ得るいくつかの最適化及び利点が存在する。例えば、URL<http://fle.fujitsu.com/resources/example.csv>におけるリソースが、直近に既にロードされていた場合(又は、直近ではないが、何らかの理由により持続されている場合)。そのようなリモートアクセスは、再度実行されることはなく、?loadedResourceのURLが、以前の動作で得られており、リモートリソースに再度アクセスすることなく、且つ、そのような動作が示す時間(及び潜在的な経済的コスト)を招くことなく、再度返されることになるであろう。
図4は、本発明を具現化し、ソフトウェアサービス実行方法の実施形態の方法を実施するために使用され得る、ウェブサーバ等のコンピューティングデバイスのブロック図である。コンピューティングデバイスは、プロセッサ993及びメモリ994を有する。任意的に、コンピューティングデバイスは、例えば、本発明の実施形態の他のコンピューティングデバイスといった他のコンピューティングデバイスと通信するためのネットワークインタフェース997も含む。
例えば、一実施形態は、そのようなコンピューティングデバイス群のネットワークを含み得る。任意的に、コンピューティングデバイスは、キーボード及びマウス等の1以上の入力機構996及び1以上のモニタ等のディスプレイユニット995も含む。これらのコンポーネントは、バス992を介して互いに接続可能である。
メモリ994は、コンピュータ読み取り可能な媒体を含み得る。コンピュータ読み取り可能な媒体という用語は、コンピュータ実行可能な命令を運ぶ又はデータ構造を記憶するよう構成された1つの媒体又は複数の媒体(例えば、集中データベース若しくは分散データベース並びに/又は関連するキャッシュ及びサーバ)を指し得る。コンピュータ実行可能な命令は、例えば、汎用コンピュータ、特殊目的コンピュータ、又は特殊目的処理デバイス(例えば、1以上のプロセッサ)によりアクセス可能であり、これらに1以上の機能又は動作を実行させる命令及びデータを含み得る。したがって、「コンピュータ読み取り可能な記憶媒体」という用語も、機械により実行され、機械に本開示の方法のうちの1以上を実行させる命令のセットを記憶する、符号化する、又は運ぶことができる任意の媒体を含み得る。したがって、「コンピュータ読み取り可能な記憶媒体」という用語は、ソリッドステートメモリ、光媒体、及び磁気媒体を含むが、これらに限定されるものではないと解釈され得る。限定ではなく例として、そのようなコンピュータ読み取り可能な媒体は、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM)、電気的に消去可能なプログラム可能な読み取り専用メモリ(EEPROM)、コンパクトディスク読み取り専用メモリ(CD−ROM)又は他の光ディスクストレージ、磁気ディスクストレージ又は他の磁気記憶デバイス、フラッシュメモリデバイス(例えば、ソリッドステートメモリデバイス)を含む非一時的なコンピュータ読み取り可能な記憶媒体を含み得る。
プロセッサ993は、コンピューティングデバイスを制御し、例えば、本明細書及び特許請求の範囲に記載の、ソフトウェアサービス実行システムのコンポーネントの様々な異なる機能を実装するようにメモリに記憶されたコードを実行する等の処理動作を実行するよう構成される。メモリ994は、プロセッサ993により読み書きされているデータを記憶する。本明細書で言及されているように、プロセッサは、マイクロプロセッサ、中央処理装置等といった1以上の汎用処理デバイスを含み得る。プロセッサは、複合命令セットコンピューティング(CISC)マイクロプロセッサ、縮小命令セットコンピューティング(RISC)マイクロプロセッサ、超長命令語(VLIW)マイクロプロセッサ、又は、他の命令セットを実装しているプロセッサ若しくは命令セットの組合せを実装しているプロセッサを含み得る。プロセッサはまた、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ等といった1以上の特殊目的処理デバイスを含み得る。1以上の実施形態において、プロセッサは、本明細書に記載の動作及びステップを実行するための命令を実行するよう構成される。
ディスプレイユニット997は、コンピューティングデバイスにより記憶されているデータの表現を表示することができ、ユーザとコンピューティングデバイスに記憶されているプログラム及びデータとの間のインタラクションを可能にするカーソル及びダイアログボックス並びにスクリーンも表示することができる。
入力機構996は、ユーザが、コンピューティングデバイスにデータ及び命令を入力することを可能にし得る。
ネットワークインタフェース(ネットワークI/F)997は、インターネット等のネットワークに接続され得るものであり、ネットワークを介して他のそのようなコンピューティングデバイスに接続可能である。ネットワークI/F997は、ネットワークを介した他の装置から/へのデータ入力/出力を制御することができる。マイクロフォン、スピーカ、プリンタ、電力供給ユニット、ファン、ケース、スキャナ、トラッカボール等といった他の周辺デバイスも、コンピューティングデバイスに含められ得る。
図1のソフトウェアライブラリ12及び図2の複数のソフトウェアサービスを記憶するステップS201は、ソフトウェアサービス121を記憶するメモリ994であり得、任意的に、ソフトウェアサービス121の処理命令(プログラム)を実行し、入力データにアクセスし処理結果をポストするようにネットワークI/F997を介してデータを交換する1つのプロセッサ993(又は複数のプロセッサ)でもある。詳細には、プロセッサ993は、特定のソフトウェアサービスによる入力データについて指定されたURLから、ネットワークI/Fを介して入力データを受信し、処理結果を生成するためにソフトウェアサービス121の処理を実行するための処理命令を実行する。さらに、プロセッサ993は、接続されている記憶ユニットに、例えば、JSON文書、RDF文書、JSON−LD文書等において処理結果を記憶し、且つ/又は、クライアント/ユーザへの出力のために、ネットワークI/F997を介して、処理結果をメタデータグラフクエリインタフェースに送信するための処理命令を実行することができる。ソフトウェアライブラリ12によるソフトウェアサービスの実行は、ソフトウェアサービス実行コントローラ18の制御下で行われる。
図1のメタデータグラフ14及び図2のメタデータグラフを記憶するステップS202、並びに、図1の関連するメタデータグラフクエリインタフェース16、図2の受信するステップS203、及び図2のクエリに応答するステップS205は、メタデータグラフ14を記憶するメモリ994、及び、メモリ994に記憶されている処理命令(プログラム)を実行し、受信されたクエリを処理し規定されている探索パスを抽出するようにネットワークI/F997を介してデータを交換する1つのプロセッサ993(又は複数のプロセッサ)であり得る。詳細には、プロセッサ993は、クライアント/ユーザ(例えば、より高レベルのソフトウェアエンティティ)から、ネットワークI/Fを介してメタデータグラフ14に対するクエリを受信し、受信されたクエリから規定されている探索パスを抽出するための処理命令を実行する。さらに、プロセッサ993は、接続されている記憶ユニットに、抽出された探索パスを記憶し、且つ/又は、処理のために、ネットワークI/F997を介して、抽出された探索パスをソフトウェアサービス実行コントローラに送信するための処理命令を実行することができる。
図1のソフトウェアサービス実行コントローラ18及び図2のソフトウェアサービスの実行を制御するステップS204は、メモリ994に記憶されている処理命令(プログラム)を実行し、ネットワークI/F997を介してデータを交換する1つのプロセッサ993(又は複数のプロセッサ)であり得る。詳細には、プロセッサ993は、メタデータグラフクエリインタフェース16から、ネットワークI/Fを介して、受信されたクエリにおいて規定されていて、メタデータグラフクエリインタフェース16により抽出された探索パスを受信し、受信された探索パスを呼び出しの集合(例えば、RESTメソッドへの呼び出し)に変換するための処理命令、又は、探索パスにおける述部により識別されたソフトウェアサービス121を実行するためのソフトウェアライブラリ12に対する他の実行命令を実行する。さらに、プロセッサ993は、接続されている記憶ユニット(ナレッジベース)に、探索パス及び実行制御のレコードを記憶するための処理命令を実行することができる。
本発明を具現化する方法は、図4に示されるコンピューティングデバイス等のコンピューティングデバイス上で実行され得る。そのようなコンピューティングデバイスは、図4に示される全てのコンポーネントを有する必要はなく、これらのコンポーネントのサブセットを含んでもよい。本発明を具現化する方法は、ネットワークを介して1以上のデータ記憶サーバと通信する1つのコンピューティングデバイスにより実行され得る。コンピューティングデバイスは、受信されたクエリにおけるクエリ頂点に対応する処理結果を記憶するデータ記憶デバイス自身であってもよい。
本発明を具現化する方法は、互いと協働して動作する複数のコンピューティングデバイスにより実行されてもよい。複数のコンピューティングデバイスのうちの1以上のコンピューティングデバイスは、メタデータグラフ及び/又はソフトウェアライブラリ12におけるソフトウェアサービス121の処理結果の少なくとも一部を記憶するデータ記憶サーバであってもよい。
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
複数のソフトウェアサービスを記憶しているソフトウェアライブラリであって、各ソフトウェアサービスは、実行されると、指定された入力URIから入力データを得て、得られた前記入力データに対して処理を実行し、前記処理の結果を指定された出力URIに出力する、ソフトウェアライブラリと、
前記複数のソフトウェアサービスを表現しているメタデータグラフであって、各ソフトウェアサービスは、主頂点と目的頂点との間の関係を規定している述部により、前記メタデータグラフにおいて識別可能であり、前記主頂点は、前記指定された入力URIを記憶しており、前記述部を用いてラベル付けされた有向エッジにより、前記指定された出力URIを記憶している前記目的頂点に結び付けられている、メタデータグラフと、
グラフクエリ言語を用いたクエリを受信するよう構成されているメタデータグラフクエリインタフェースであって、受信された前記クエリは、各エッジが、前記メタデータグラフにおける前記述部のうちのそれぞれの指定された述部を用いてラベル付けされた1以上のエッジに沿った規定されている探索パスにより元頂点に結び付けられているクエリ頂点を、変数として要求し、前記変数の値が、受信された前記クエリにより指定されている、メタデータグラフクエリインタフェースと、
前記規定されている探索パスにおけるエッジをラベル付けしている1以上の前記指定された述部により識別された1以上の前記ソフトウェアサービスの実行を、前記規定されている探索パスにより判別された順番で制御するよう構成されているソフトウェアサービス実行コントローラと、
を有し、
前記メタデータグラフクエリインタフェースは、前記クエリ頂点の値をもって、受信された前記クエリに応答するよう構成されており、前記クエリ頂点の前記値は、前記元頂点から前記規定されている探索パスに沿って前記クエリ頂点に結び付けているラベル付けされた前記エッジのラベルにより識別された前記ソフトウェアサービスを実行することにより生成される、ソフトウェアサービス実行システム。
(付記2)
前記元頂点の値は、明示的に規定された値、又は、前記クエリ頂点への前記規定されている探索パスに沿って前記元頂点に結び付けているラベル付けされた前記エッジにより識別された前記ソフトウェアサービスにより処理されるデータの元の位置のURI、により指定される、付記1に記載のソフトウェアサービス実行システム。
(付記3)
受信された前記クエリに応じて出力される前記クエリ頂点の値は、前記元頂点から前記規定されている探索パスに沿って前記クエリ頂点に結び付けているラベル付けされた前記エッジのラベルにより識別された前記ソフトウェアサービスの前記指定された出力URI、又は、該ソフトウェアサービスの処理の結果である、付記1に記載のソフトウェアサービス実行システム。
(付記4)
前記ソフトウェアサービス実行コントローラは、前記元頂点と前記規定されている探索パスにおける前記クエリ頂点との間の頂点又は各頂点について、入力データとして、それぞれの頂点の元頂点側のラベル付けされたエッジにより識別されたソフトウェアサービスの処理の結果を、それぞれの頂点のクエリ頂点側のソフトウェアサービスに提供することにより、前記規定されている探索パスにおけるエッジをラベル付けしている1以上の前記指定された述部により識別された1以上の前記ソフトウェアサービスの実行を制御するよう構成されている、付記1に記載のソフトウェアサービス実行システム。
(付記5)
前記ソフトウェアサービスは、マイクロサービスである、付記1に記載のソフトウェアサービス実行システム。
(付記6)
前記ソフトウェアサービスは、RESTfulなソフトウェアサービスであり、各RESTfulなソフトウェアサービスは、GET要求、並びにPOST要求及び/又はPUT要求についてのメソッドを規定している、付記1に記載のソフトウェアサービス実行システム。
(付記7)
前記ソフトウェアサービス実行コントローラは、元頂点からクエリ頂点へと前記規定されている探索パスを進行し、それぞれのソフトウェアサービスを識別する前記指定された述部を用いてラベル付けされたエッジが、前記指定された述部の主頂点から、前記指定された述部の目的頂点へと探索される場合に、前記ソフトウェアサービスにGET要求を発行することにより、前記規定されている探索パスにおけるエッジをラベル付けしている1以上の前記指定された述部により識別された1以上の前記ソフトウェアサービスの実行を制御するよう構成されている、付記6に記載のソフトウェアサービス実行システム。
(付記8)
ソフトウェアサービスは、前記メタデータグラフにおいて前記述部により識別可能であり、前記述部は、該ソフトウェアサービスのURI又はURLである、付記1に記載のソフトウェアサービス実行システム。
(付記9)
前記述部は、それぞれのソフトウェアサービスにより実行される処理の意味記述子である、付記8に記載のソフトウェアサービス実行システム。
(付記10)
前記ソフトウェアサービス実行コントローラは、ナレッジベースを含み、前記ソフトウェアサービス実行コントローラは、各探索パスについて、当該探索パスと、1以上の前記クエリ頂点と、前記元頂点と、を記録したレコードを前記ナレッジベースに追加するよう構成されており、前記ソフトウェアサービスは、1以上の前記クエリ頂点の結果を得る際に前記ソフトウェアサービス実行コントローラにより実行され、
前記ソフトウェアサービス実行コントローラは、規定されている探索パスに対する応答を生成する際にソフトウェアサービスを実行する制御を最適化するために、該規定されている探索パスを、前記ナレッジベースに記録された探索パスと比較するよう構成されている、付記1乃至9いずれかに記載のソフトウェアサービス実行システム。
(付記11)
複数のソフトウェアサービスを記憶するステップであって、各ソフトウェアサービスは、実行されると、指定された入力URIから入力データを得て、得られた前記入力データに対して処理を実行し、前記処理の結果を指定された出力URIに出力するよう構成されている、ステップと、
前記複数のソフトウェアサービスを表現しているメタデータグラフを記憶するステップであって、各ソフトウェアサービスは、主頂点と目的頂点との間の関係を規定している述部により、前記メタデータグラフにおいて識別可能であり、前記主頂点は、前記指定された入力URIを記憶しており、前記述部を用いてラベル付けされた有向エッジにより、前記指定された出力URIを記憶している前記目的頂点に結び付けられている、ステップと、
グラフクエリ言語を用いたクエリを受信するステップであって、受信された前記クエリは、各エッジが、前記メタデータグラフにおける前記述部のうちのそれぞれの指定された述部を用いてラベル付けされた1以上のエッジに沿った規定されている探索パスにより元頂点に結び付けられているクエリ頂点を、変数として要求し、前記変数の値が、受信された前記クエリにより指定されている、ステップと、
前記規定されている探索パスにおけるエッジをラベル付けしている1以上の前記指定された述部により識別された1以上の記憶された前記ソフトウェアサービスの実行を、前記規定されている探索パスにより判別された順番で制御するステップと、
前記クエリ頂点の値をもって、受信された前記クエリに応答するステップであって、前記クエリ頂点の前記値は、前記元頂点から前記規定されている探索パスに沿って前記クエリ頂点に結び付けているラベル付けされた前記エッジのラベルにより識別された前記ソフトウェアサービスを実行することにより生成される、ステップと、
を含むソフトウェアサービス実行方法。
(付記12)
コンピューティングデバイスにより実行されたときに、前記コンピューティングデバイスに、
複数のソフトウェアサービスを記憶するステップであって、各ソフトウェアサービスは、実行されると、指定された入力URIから入力データを得て、得られた前記入力データに対して処理を実行し、前記処理の結果を指定された出力URIに出力するよう構成されている、ステップと、
前記複数のソフトウェアサービスを表現しているメタデータグラフを記憶するステップであって、各ソフトウェアサービスは、主頂点と目的頂点との間の関係を規定している述部により、前記メタデータグラフにおいて識別可能であり、前記主頂点は、前記指定された入力URIを記憶しており、前記述部を用いてラベル付けされた有向エッジにより、前記指定された出力URIを記憶している前記目的頂点に結び付けられている、ステップと、
グラフクエリ言語を用いたクエリを受信するステップであって、受信された前記クエリは、各エッジが、前記メタデータグラフにおける前記述部のうちのそれぞれの指定された述部を用いてラベル付けされた1以上のエッジに沿った規定されている探索パスにより元頂点に結び付けられているクエリ頂点を、変数として要求し、前記変数の値が、受信された前記クエリにより指定されている、ステップと、
前記規定されている探索パスにおけるエッジをラベル付けしている1以上の前記指定された述部により識別された1以上の記憶された前記ソフトウェアサービスの実行を、前記規定されている探索パスにより判別された順番で制御するステップと、
前記クエリ頂点の値をもって、受信された前記クエリに応答するステップであって、前記クエリ頂点の前記値は、前記元頂点から前記規定されている探索パスに沿って前記クエリ頂点に結び付けているラベル付けされた前記エッジのラベルにより識別された前記ソフトウェアサービスを実行することにより生成される、ステップと、
を含む方法を実行させるコンピュータプログラム。
10 ソフトウェアサービス実行システム
12 ソフトウェアライブラリ
121 サービス
14 メタデータグラフ
16 メタデータグラフクエリインタフェース
18 ソフトウェアサービス実行コントローラ
992 バス
993 プロセッサ
994 メモリ
995 ディスプレイユニット
996 入力機構
997 ネットワークインタフェース

Claims (12)

  1. 複数のソフトウェアサービスを記憶しているソフトウェアライブラリであって、各ソフトウェアサービスは、実行されると、指定された入力URIから入力データを得て、得られた前記入力データに対して処理を実行し、前記処理の結果を指定された出力URIに出力するよう構成されている、ソフトウェアライブラリと、
    前記複数のソフトウェアサービスを表現しているメタデータグラフであって、各ソフトウェアサービスは、主頂点と目的頂点との間の関係を規定している述部により、前記メタデータグラフにおいて識別可能であり、前記主頂点は、前記指定された入力URIを記憶しており、前記述部を用いてラベル付けされた有向エッジにより、前記指定された出力URIを記憶している前記目的頂点に結び付けられている、メタデータグラフと、
    グラフクエリ言語を用いたクエリを受信するよう構成されているメタデータグラフクエリインタフェースであって、受信された前記クエリは、各エッジが、前記メタデータグラフにおける前記述部のうちのそれぞれの指定された述部を用いてラベル付けされた1以上のエッジに沿った規定されている探索パスにより元頂点に結び付けられているクエリ頂点を、変数として要求し、前記変数の値が、受信された前記クエリにより指定されている、メタデータグラフクエリインタフェースと、
    前記規定されている探索パスにおけるエッジをラベル付けしている1以上の前記指定された述部により識別された1以上の前記ソフトウェアサービスの実行を、前記規定されている探索パスにより判別された順番で制御するよう構成されているソフトウェアサービス実行コントローラと、
    を有し、
    前記メタデータグラフクエリインタフェースは、前記クエリ頂点の値をもって、受信された前記クエリに応答するよう構成されており、前記クエリ頂点の前記値は、前記元頂点から前記規定されている探索パスに沿って前記クエリ頂点に結び付けているラベル付けされた前記エッジのラベルにより識別された前記ソフトウェアサービスを実行することにより生成される、ソフトウェアサービス実行システム。
  2. 前記元頂点の値は、明示的に規定された値、又は、前記クエリ頂点への前記規定されている探索パスに沿って前記元頂点に結び付けているラベル付けされた前記エッジにより識別された前記ソフトウェアサービスにより処理されるデータの元の位置のURI、により指定される、請求項1に記載のソフトウェアサービス実行システム。
  3. 受信された前記クエリに応じて出力される前記クエリ頂点の値は、前記元頂点から前記規定されている探索パスに沿って前記クエリ頂点に結び付けているラベル付けされた前記エッジのラベルにより識別された前記ソフトウェアサービスの前記指定された出力URI、又は、該ソフトウェアサービスの処理の結果である、請求項1に記載のソフトウェアサービス実行システム。
  4. 前記ソフトウェアサービス実行コントローラは、前記元頂点と前記規定されている探索パスにおける前記クエリ頂点との間の頂点又は各頂点について、入力データとして、それぞれの頂点の元頂点側のラベル付けされたエッジにより識別されたソフトウェアサービスの処理の結果を、それぞれの頂点のクエリ頂点側のソフトウェアサービスに提供することにより、前記規定されている探索パスにおけるエッジをラベル付けしている1以上の前記指定された述部により識別された1以上の前記ソフトウェアサービスの実行を制御するよう構成されている、請求項1に記載のソフトウェアサービス実行システム。
  5. 前記ソフトウェアサービスは、マイクロサービスである、請求項1に記載のソフトウェアサービス実行システム。
  6. 前記ソフトウェアサービスは、RESTfulなソフトウェアサービスであり、各RESTfulなソフトウェアサービスは、GET要求、並びにPOST要求及び/又はPUT要求についてのメソッドを規定している、請求項1に記載のソフトウェアサービス実行システム。
  7. 前記ソフトウェアサービス実行コントローラは、元頂点からクエリ頂点へと前記規定されている探索パスを進行し、それぞれのソフトウェアサービスを識別する前記指定された述部を用いてラベル付けされたエッジが、前記指定された述部の主頂点から、前記指定された述部の目的頂点へと探索される場合に、前記ソフトウェアサービスにGET要求を発行することにより、前記規定されている探索パスにおけるエッジをラベル付けしている1以上の前記指定された述部により識別された1以上の前記ソフトウェアサービスの実行を制御するよう構成されている、請求項6に記載のソフトウェアサービス実行システム。
  8. ソフトウェアサービスは、前記メタデータグラフにおいて前記述部により識別可能であり、前記述部は、該ソフトウェアサービスのURI又はURLである、請求項1に記載のソフトウェアサービス実行システム。
  9. 前記述部は、それぞれのソフトウェアサービスにより実行される処理の意味記述子である、請求項8に記載のソフトウェアサービス実行システム。
  10. 前記ソフトウェアサービス実行コントローラは、ナレッジベースを含み、前記ソフトウェアサービス実行コントローラは、各探索パスについて、当該探索パスと、1以上の前記クエリ頂点と、前記元頂点と、を記録したレコードを前記ナレッジベースに追加するよう構成されており、前記ソフトウェアサービスは、1以上の前記クエリ頂点の結果を得る際に前記ソフトウェアサービス実行コントローラにより実行され、
    前記ソフトウェアサービス実行コントローラは、規定されている探索パスに対する応答を生成する際にソフトウェアサービスを実行する制御を最適化するために、該規定されている探索パスを、前記ナレッジベースに記録された探索パスと比較するよう構成されている、請求項1乃至9いずれか一項に記載のソフトウェアサービス実行システム。
  11. 複数のソフトウェアサービスを記憶するステップであって、各ソフトウェアサービスは、実行されると、指定された入力URIから入力データを得て、得られた前記入力データに対して処理を実行し、前記処理の結果を指定された出力URIに出力するよう構成されている、ステップと、
    前記複数のソフトウェアサービスを表現しているメタデータグラフを記憶するステップであって、各ソフトウェアサービスは、主頂点と目的頂点との間の関係を規定している述部により、前記メタデータグラフにおいて識別可能であり、前記主頂点は、前記指定された入力URIを記憶しており、前記述部を用いてラベル付けされた有向エッジにより、前記指定された出力URIを記憶している前記目的頂点に結び付けられている、ステップと、
    グラフクエリ言語を用いたクエリを受信するステップであって、受信された前記クエリは、各エッジが、前記メタデータグラフにおける前記述部のうちのそれぞれの指定された述部を用いてラベル付けされた1以上のエッジに沿った規定されている探索パスにより元頂点に結び付けられているクエリ頂点を、変数として要求し、前記変数の値が、受信された前記クエリにより指定されている、ステップと、
    前記規定されている探索パスにおけるエッジをラベル付けしている1以上の前記指定された述部により識別された1以上の記憶された前記ソフトウェアサービスの実行を、前記規定されている探索パスにより判別された順番で制御するステップと、
    前記クエリ頂点の値をもって、受信された前記クエリに応答するステップであって、前記クエリ頂点の前記値は、前記元頂点から前記規定されている探索パスに沿って前記クエリ頂点に結び付けているラベル付けされた前記エッジのラベルにより識別された前記ソフトウェアサービスを実行することにより生成される、ステップと、
    を含むソフトウェアサービス実行方法。
  12. コンピューティングデバイスにより実行されたときに、前記コンピューティングデバイスに、
    複数のソフトウェアサービスを記憶するステップであって、各ソフトウェアサービスは、実行されると、指定された入力URIから入力データを得て、得られた前記入力データに対して処理を実行し、前記処理の結果を指定された出力URIに出力するよう構成されている、ステップと、
    前記複数のソフトウェアサービスを表現しているメタデータグラフを記憶するステップであって、各ソフトウェアサービスは、主頂点と目的頂点との間の関係を規定している述部により、前記メタデータグラフにおいて識別可能であり、前記主頂点は、前記指定された入力URIを記憶しており、前記述部を用いてラベル付けされた有向エッジにより、前記指定された出力URIを記憶している前記目的頂点に結び付けられている、ステップと、
    グラフクエリ言語を用いたクエリを受信するステップであって、受信された前記クエリは、各エッジが、前記メタデータグラフにおける前記述部のうちのそれぞれの指定された述部を用いてラベル付けされた1以上のエッジに沿った規定されている探索パスにより元頂点に結び付けられているクエリ頂点を、変数として要求し、前記変数の値が、受信された前記クエリにより指定されている、ステップと、
    前記規定されている探索パスにおけるエッジをラベル付けしている1以上の前記指定された述部により識別された1以上の記憶された前記ソフトウェアサービスの実行を、前記規定されている探索パスにより判別された順番で制御するステップと、
    前記クエリ頂点の値をもって、受信された前記クエリに応答するステップであって、前記クエリ頂点の前記値は、前記元頂点から前記規定されている探索パスに沿って前記クエリ頂点に結び付けているラベル付けされた前記エッジのラベルにより識別された前記ソフトウェアサービスを実行することにより生成される、ステップと、
    を含む方法を実行させるコンピュータプログラム。
JP2016233528A 2016-10-21 2016-11-30 ソフトウェアサービスの実行のためのシステム、方法、及びプログラム Active JP6805765B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102016220779.2 2016-10-21
DE102016220779 2016-10-21

Publications (2)

Publication Number Publication Date
JP2018067280A JP2018067280A (ja) 2018-04-26
JP6805765B2 true JP6805765B2 (ja) 2020-12-23

Family

ID=57570378

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016233528A Active JP6805765B2 (ja) 2016-10-21 2016-11-30 ソフトウェアサービスの実行のためのシステム、方法、及びプログラム

Country Status (3)

Country Link
US (1) US10783193B2 (ja)
EP (1) EP3312735B1 (ja)
JP (1) JP6805765B2 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10963625B1 (en) * 2016-10-07 2021-03-30 Wells Fargo Bank, N.A. Multilayered electronic content management system
US11243949B2 (en) * 2017-04-21 2022-02-08 Microsoft Technology Licensing, Llc Query execution across multiple graphs
US11716264B2 (en) * 2018-08-13 2023-08-01 Cisco Technology, Inc. In situ triggered function as a service within a service mesh
US10963324B2 (en) 2018-12-12 2021-03-30 Citrix Systems, Inc. Predictive microservice systems and methods
KR102238316B1 (ko) * 2018-12-18 2021-04-08 효성중공업 주식회사 전력 그리드 제어 장치 및 시스템
US11032396B2 (en) * 2019-05-17 2021-06-08 Citrix Systems, Inc. Systems and methods for managing client requests to access services provided by a data center
CN111160536B (zh) * 2020-01-02 2022-06-21 福州大学 基于碎片化知识下的卷积嵌入表示推理方法

Family Cites Families (81)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR111574A (ja) 1973-12-13 1900-01-01
US6990453B2 (en) 2000-07-31 2006-01-24 Landmark Digital Services Llc System and methods for recognizing sound and music signals in high noise and distortion
PT1504445E (pt) 2002-04-25 2008-11-24 Landmark Digital Services Llc Emparelhamento de padrões áudio robusto e invariante
US20040006559A1 (en) 2002-05-29 2004-01-08 Gange David M. System, apparatus, and method for user tunable and selectable searching of a database using a weigthted quantized feature vector
US6961736B1 (en) 2002-05-31 2005-11-01 Adobe Systems Incorporated Compact color feature vector representation
US7081579B2 (en) 2002-10-03 2006-07-25 Polyphonic Human Media Interface, S.L. Method and system for music recommendation
CN1708758A (zh) 2002-11-01 2005-12-14 皇家飞利浦电子股份有限公司 改进的音频数据指纹搜索
US8005919B2 (en) 2002-11-18 2011-08-23 Aol Inc. Host-based intelligent results related to a character stream
US20050060350A1 (en) 2003-09-15 2005-03-17 Baum Zachariah Journey System and method for recommendation of media segments
TW594510B (en) 2003-11-05 2004-06-21 Ind Tech Res Inst Method and system of automatic service composition
US7797198B1 (en) 2004-01-27 2010-09-14 Amazon Technologies, Inc. Providing an invocable composite network service based on multiple other invocable constituent network services
US7433835B2 (en) 2004-01-27 2008-10-07 Amazon Technologies, Inc. Providing a marketplace for web services
US7558822B2 (en) 2004-06-30 2009-07-07 Google Inc. Accelerating user interfaces by predicting user actions
US7823123B2 (en) * 2004-07-13 2010-10-26 The Mitre Corporation Semantic system for integrating software components
US7324976B2 (en) 2004-07-19 2008-01-29 Amazon Technologies, Inc. Automatic authorization of programmatic transactions
JP4476786B2 (ja) 2004-11-10 2010-06-09 株式会社東芝 検索装置
US8195693B2 (en) 2004-12-16 2012-06-05 International Business Machines Corporation Automatic composition of services through semantic attribute matching
US7734515B1 (en) 2005-08-17 2010-06-08 Amazon Technologies, Inc. Generating new invocable composite network services based on multiple other invocable constituent network services
US7949529B2 (en) 2005-08-29 2011-05-24 Voicebox Technologies, Inc. Mobile systems and methods of supporting natural language human-machine interactions
WO2008015417A1 (en) 2006-07-31 2008-02-07 British Telecommunications Public Limited Company Automatic composition of web services based on syntactiv and semantic rules
US9318108B2 (en) 2010-01-18 2016-04-19 Apple Inc. Intelligent automated assistant
US8122045B2 (en) 2007-02-27 2012-02-21 International Business Machines Corporation Method for mapping a data source to a data target
US8312426B2 (en) * 2008-01-07 2012-11-13 International Business Machines Corporation Method and system for simplified service composition in web environment
CN101262374A (zh) 2008-04-22 2008-09-10 北京邮电大学 一种服务注册的方法和装置
US8344233B2 (en) 2008-05-07 2013-01-01 Microsoft Corporation Scalable music recommendation by search
US8660924B2 (en) 2009-04-30 2014-02-25 Navera, Inc. Configurable interactive assistant
US10276170B2 (en) 2010-01-18 2019-04-30 Apple Inc. Intelligent automated assistant
EP2781595B1 (en) 2010-02-03 2018-04-11 Samsung Life Public Welfare Foundation Method for proliferating stem cells by activating c-MET/HGF signalling
US8391590B2 (en) 2010-03-04 2013-03-05 Flashscan3D, Llc System and method for three-dimensional biometric data feature detection and recognition
EP2383684A1 (en) * 2010-04-30 2011-11-02 Fujitsu Limited Method and device for generating an ontology document
US8386929B2 (en) 2010-06-22 2013-02-26 Microsoft Corporation Personal assistant for task utilization
CN102385858B (zh) 2010-08-31 2013-06-05 国际商业机器公司 情感语音合成方法和系统
KR20120052610A (ko) 2010-11-16 2012-05-24 삼성전자주식회사 신경망 학습을 통한 동작 인식 방법 및 장치
US9064006B2 (en) 2012-08-23 2015-06-23 Microsoft Technology Licensing, Llc Translating natural language utterances to keyword search queries
US9146917B2 (en) 2011-07-15 2015-09-29 International Business Machines Corporation Validating that a user is human
EP2575128A3 (en) 2011-09-30 2013-08-14 Apple Inc. Using context information to facilitate processing of commands in a virtual assistant
US8655989B2 (en) * 2011-10-14 2014-02-18 Sap Ag Business network access protocol for the business network
KR101910576B1 (ko) 2011-11-08 2018-12-31 삼성전자주식회사 인공신경망을 이용하여 신속하게 입력 패턴을 분류하는 방법 및 장치
KR101912165B1 (ko) 2011-12-09 2018-10-29 삼성전자주식회사 스파이킹 뉴런 기반 작업 기억 장치
US8788269B2 (en) 2011-12-15 2014-07-22 Microsoft Corporation Satisfying specified intent(s) based on multimodal request(s)
US9177168B2 (en) 2012-03-19 2015-11-03 Alcatel Lucent Method of modifying access control for web services using query languages
US10417037B2 (en) 2012-05-15 2019-09-17 Apple Inc. Systems and methods for integrating third party services with a digital assistant
EP2704029A1 (en) * 2012-09-03 2014-03-05 Agfa Healthcare Semantic data warehouse
EP2736042A1 (en) 2012-11-23 2014-05-28 Samsung Electronics Co., Ltd Apparatus and method for constructing multilingual acoustic model and computer readable recording medium for storing program for performing the method
KR20140066640A (ko) 2012-11-23 2014-06-02 삼성전자주식회사 다국어 음향 모델 구축 장치 및 이의 다국어 음향 모델 구축 방법, 그리고 그 방법을 수행하는 프로그램이 기록된 컴퓨터 판독 가능 매체
EP2755148A1 (en) * 2013-01-15 2014-07-16 Fujitsu Limited Data storage system, and program and method for execution in a data storage system
US20140201629A1 (en) 2013-01-17 2014-07-17 Microsoft Corporation Collaborative learning through user generated knowledge
IN2013CH00359A (ja) 2013-01-28 2015-08-07 Samsung R & D Inst India Bangalore Private Ltd
US9268617B1 (en) 2013-03-11 2016-02-23 Ca, Inc. Bus-based dynamic evaluation with dynamic data lookups
US11470036B2 (en) 2013-03-14 2022-10-11 Microsoft Technology Licensing, Llc Email assistant for efficiently managing emails
US9031933B2 (en) 2013-04-03 2015-05-12 International Business Machines Corporation Method and apparatus for optimizing the evaluation of semantic web queries
US9501503B2 (en) 2013-05-09 2016-11-22 Microsoft Technology Licensing, Llc Inferring entity attribute values
US9081411B2 (en) 2013-05-10 2015-07-14 Sri International Rapid development of virtual personal assistant applications
US9491063B2 (en) 2013-05-15 2016-11-08 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for providing network services orchestration
WO2014189486A1 (en) 2013-05-20 2014-11-27 Intel Corporation Natural human-computer interaction for virtual personal assistant systems
CN110442699A (zh) 2013-06-09 2019-11-12 苹果公司 操作数字助理的方法、计算机可读介质、电子设备和系统
US9299331B1 (en) 2013-12-11 2016-03-29 Amazon Technologies, Inc. Techniques for selecting musical content for playback
EP2894587B1 (en) * 2014-01-09 2019-01-09 Fujitsu Limited Stored data access controller
EP3108619A4 (en) 2014-02-23 2017-09-06 Intel Corporation Orchestration and management of services to deployed devices
US9473944B2 (en) 2014-02-24 2016-10-18 Microsoft Technology Licensing, Llc Local personal daemon
US9705995B2 (en) 2014-03-18 2017-07-11 Axis Ab Capability monitoring in a service oriented architecture
US9984158B2 (en) 2014-03-18 2018-05-29 Axis Ab Finding services in a service-oriented architecture (SOA) network
US10170123B2 (en) 2014-05-30 2019-01-01 Apple Inc. Intelligent assistant for home automation
US20160044380A1 (en) 2014-06-12 2016-02-11 Bertrand Barrett Personal helper bot system
CN106537843B (zh) 2014-06-13 2019-11-05 康维达无线有限责任公司 自动化服务简档描述和编排
US10659851B2 (en) 2014-06-30 2020-05-19 Apple Inc. Real-time digital assistant knowledge updates
EP2977918A1 (en) 2014-07-24 2016-01-27 Tata Consultancy Services Limited A system and method for executing a sparql query
KR102239714B1 (ko) 2014-07-24 2021-04-13 삼성전자주식회사 신경망 학습 방법 및 장치, 데이터 처리 장치
US9836701B2 (en) 2014-08-13 2017-12-05 Microsoft Technology Licensing, Llc Distributed stage-wise parallel machine learning
US20160063874A1 (en) 2014-08-28 2016-03-03 Microsoft Corporation Emotionally intelligent systems
US10446141B2 (en) 2014-08-28 2019-10-15 Apple Inc. Automatic speech recognition based on user feedback
US10698585B2 (en) 2014-08-29 2020-06-30 Nuance Communications, Inc. Virtual assistant development system
US20160070580A1 (en) 2014-09-09 2016-03-10 Microsoft Technology Licensing, Llc Digital personal assistant remote invocation
CN104202416A (zh) 2014-09-16 2014-12-10 浪潮(北京)电子信息产业有限公司 一种云操作系统下的服务编排系统及方法
US10210246B2 (en) 2014-09-26 2019-02-19 Oracle International Corporation Techniques for similarity analysis and data enrichment using knowledge sources
US10152558B2 (en) 2014-12-23 2018-12-11 Intel Corporation Graph operations
US9547823B2 (en) * 2014-12-31 2017-01-17 Verizon Patent And Licensing Inc. Systems and methods of using a knowledge graph to provide a media content recommendation
CN105357143B (zh) 2015-11-27 2019-10-01 华为技术有限公司 一种转发方法及服务路由中继节点
US9753744B1 (en) * 2016-05-27 2017-09-05 Intuit Inc. Defining application programming interfaces (APIS) using object schemas
US10102111B2 (en) * 2016-08-05 2018-10-16 International Business Machines Corporation Prioritizing resiliency tests of microservices
US10565222B2 (en) 2016-09-15 2020-02-18 Oracle International Corporation Techniques for facilitating the joining of datasets

Also Published As

Publication number Publication date
JP2018067280A (ja) 2018-04-26
US20180113940A1 (en) 2018-04-26
EP3312735A1 (en) 2018-04-25
US10783193B2 (en) 2020-09-22
EP3312735B1 (en) 2023-05-03

Similar Documents

Publication Publication Date Title
JP6805765B2 (ja) ソフトウェアサービスの実行のためのシステム、方法、及びプログラム
US11797558B2 (en) Generating data transformation workflows
JP7322119B2 (ja) ネットワーク上のデータソースへの照会
US10585683B2 (en) Defining application programming interfaces (APIs) using object schemas
US10116725B2 (en) Processing data retrieval requests in a graph projection of an application programming interfaces (API)
US10223417B1 (en) System and method for reducing query-related resource usage in a data retrieval process
US20190384863A1 (en) System and method for providing prediction-model-based generation of a graph data model
US10776170B2 (en) Software service execution apparatus, system, and method
US11727000B2 (en) System and method for reducing resource usage in a data retrieval process
US8140680B2 (en) Machine-processable semantic description for resource management
JP6939384B2 (ja) データ処理装置、方法およびプログラム
US9231974B2 (en) Dynamic policy-based entitlements from external data repositories
CA3025479C (en) Extending object-schema-based application programming interfaces (apis)
Lager et al. Pengines: Web logic programming made easy
US11526505B2 (en) Enabling cross-platform query optimization via expressive markup language
US20200278969A1 (en) Unified metrics computation platform
US11636124B1 (en) Integrating query optimization with machine learning model prediction
KR20210034547A (ko) 다중 소스 타입 상호운용성 및/또는 정보 검색 최적화
US11657069B1 (en) Dynamic compilation of machine learning models based on hardware configurations
Nikolov et al. Ephedra: Efficiently combining RDF data and services using SPARQL federation
Zhang et al. Current and future challenges of geospatial semantic web
US20180322150A1 (en) Dynamic schema typing
Ramulu et al. A Read and Write Enhanced Platform-R2R Ingression for RDF-to-RDB
Fletcher On reflection in linked data management

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170804

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190807

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200630

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20201104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201117

R150 Certificate of patent or registration of utility model

Ref document number: 6805765

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150