IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特許7370978デルタ処理を用いるノードのネットワーク
<>
  • 特許-デルタ処理を用いるノードのネットワーク 図1
  • 特許-デルタ処理を用いるノードのネットワーク 図2
  • 特許-デルタ処理を用いるノードのネットワーク 図3
  • 特許-デルタ処理を用いるノードのネットワーク 図4
  • 特許-デルタ処理を用いるノードのネットワーク 図5
  • 特許-デルタ処理を用いるノードのネットワーク 図6
  • 特許-デルタ処理を用いるノードのネットワーク 図7
  • 特許-デルタ処理を用いるノードのネットワーク 図8
  • 特許-デルタ処理を用いるノードのネットワーク 図9
  • 特許-デルタ処理を用いるノードのネットワーク 図10
  • 特許-デルタ処理を用いるノードのネットワーク 図11
  • 特許-デルタ処理を用いるノードのネットワーク 図12
  • 特許-デルタ処理を用いるノードのネットワーク 図13
  • 特許-デルタ処理を用いるノードのネットワーク 図14
  • 特許-デルタ処理を用いるノードのネットワーク 図15
  • 特許-デルタ処理を用いるノードのネットワーク 図16
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-10-20
(45)【発行日】2023-10-30
(54)【発明の名称】デルタ処理を用いるノードのネットワーク
(51)【国際特許分類】
   G06F 16/28 20190101AFI20231023BHJP
   G06F 16/23 20190101ALI20231023BHJP
【FI】
G06F16/28
G06F16/23
【請求項の数】 11
(21)【出願番号】P 2020528155
(86)(22)【出願日】2019-04-25
(65)【公表番号】
(43)【公表日】2021-08-12
(86)【国際出願番号】 US2019029092
(87)【国際公開番号】W WO2019212851
(87)【国際公開日】2019-11-07
【審査請求日】2021-11-02
(31)【優先権主張番号】15/966,439
(32)【優先日】2018-04-30
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】ウッドワード,ポール
(72)【発明者】
【氏名】タッカー,サイモン・アレクサンダー
(72)【発明者】
【氏名】ジンズ,スティーブン・マイケル
【審査官】松尾 真人
(56)【参考文献】
【文献】特開2009-134520(JP,A)
【文献】米国特許出願公開第2012/0254254(US,A1)
【文献】米国特許出願公開第2012/0109789(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 16/00-16/958
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
デルタ処理を用いてノードのネットワークを管理するための方法であって、前記方法は、
プロセッサが、複数の接続されたノードを含むネットワークを格納することを含み、前記ノードは、前記ネットワークのエンティティを表しており、前記ネットワークは、複数の関係データテーブル上にマッピングされ、前記方法は、さらに、
前記プロセッサが、前記ノード間の前記接続に対する更新を示す、前記ネットワークに対する1つまたは複数のデルタを受信することと、
前記プロセッサが、前記デルタをキューに追加することと、
前記プロセッサが、前記キューからのデルタを用いて前記ネットワークの前記ノード間の前記接続を更新することと、
前記プロセッサが、前記ノード間の前記接続を更新した後に前記ネットワークを処理して、所与のノードに対してベクトルを生成することを含み、
前記ネットワークを処理することは、前記ノード間の前記接続を更新した後、前記ネットワークに対する推移閉包を決定することを含み、前記ベクトルは、前記ネットワークに対する前記決定された推移閉包に基づく、前記所与のノードに対する直接アクセスベクトルを含み、前記方法は、さらに、
前記プロセッサが、前記キューからのデルタを処理して前記ネットワークの事前計算されたバージョンを維持することを含み、前記ネットワークの事前計算されたバージョンは、前記所与のノードに対する前記直接アクセスベクトルを用いて前記所与のノードに対する1つまたは複数の経路を返すように構成され、前記方法は、さらに、
前記プロセッサが、前記生成された直接アクセスベクトルに基づいて、前記所与のノードに対する1つまたは複数の経路を識別することを含み
前記所与のノードに対する前記1つまたは複数の経路は、前記所与のノードに対する前記直接アクセスベクトルを用いて前記複数の関係データテーブルに問い合わせることによって識別される、方法。
【請求項2】
前記ネットワークは、有向グラフによって表されるソーシャルネットワークを含む、請求項1に記載の方法。
【請求項3】
1つまたは複数の部分と、複数の部分を含む1つまたは複数の手順とは、前記ネットワークの前記ノードに対して定義され、前記ネットワークの2つのノード間の接続は、前記2つのノードのうちの第2のノードに対して定義される部分と、当該部分にマッチする、前記2つのノードのうちの第1のノードに対して定義される手順の間の対応に基づいており
前記手順はレシピを含み、前記部分は前記レシピに対する原料を含む、請求項1または2に記載の方法。
【請求項4】
前記推移閉包は、接続されたノードに対する手順と部分との間の対応に基づく、前記ネットワークの接続を用いて決定される、請求項に記載の方法。
【請求項5】
前記プロセッサが、前記ネットワークを処理した後に、前記所与のノードを含む、前記ネットワークの1つまたは複数の経路を識別するための要求を受信することをさらに含む、請求項に記載の方法。
【請求項6】
前記所与のノードを含む、識別される経路は、前記ネットワークの前記ノード間のリンクを更新すると生成される、請求項に記載の方法。
【請求項7】
前記エンティティは、供給者および顧客を含み、前記接続は、前記エンティティ間のトランザクションを表す、請求項のいずれか1項に記載の方法。
【請求項8】
前記識別される経路は、少なくとも1つの商品または製品に対するサプライチェーンを表す、請求項1~7のいずれか1項に記載の方法。
【請求項9】
前記直接アクセスベクトルは、前記所与のノードとの接続を含む、接続されたノードと、前記所与のノードおよび少なくとも1つの接続されたノードを含む経路の一部である間接ノードとを示す、請求項1~8のいずれか1項に記載の方法。
【請求項10】
請求項1~のいずれか1項に記載の方法をプロセッサに実行させるためのコンピュータ読み取り可能なプログラム。
【請求項11】
システムであって、前記システムは、
メモリ装置と通信する処理装置を備え、前記処理装置は、デルタ処理を用いてノードのネットワークを管理するように構成され、前記管理することは、
複数の接続されたノードを含むネットワークを格納することを含み、前記ノードは、前記ネットワークのエンティティを表しており、前記ネットワークは、複数の関係データテーブル上にマッピングされ、前記管理することは、さらに、
前記ノード間の前記接続に対する更新を示す、前記ネットワークに対する1つまたは複数のデルタを受信することと、
前記デルタをキューに追加することと、
前記キューからのデルタを用いて前記ネットワークの前記ノード間の前記接続を更新することと、
前記ノード間の前記接続を更新した後に前記ネットワークを処理して、所与のノードに対してベクトルを生成することとを含み
前記ネットワークを処理することは、前記ノード間の前記接続を更新した後、前記ネットワークに対する推移閉包を決定することを含み、前記ベクトルは、前記ネットワークに対する前記決定された推移閉包に基づく、前記所与のノードに対する直接アクセスベクトルを含み、前記管理することは、さらに、
前記キューからのデルタを処理して前記ネットワークの事前計算されたバージョンを維持することを含み、前記ネットワークの事前計算されたバージョンは、前記所与のノードに対する前記直接アクセスベクトルを用いて前記所与のノードに対する1以上の経路を返すように構成され、前記管理することは、さらに、
前記生成された直接アクセスベクトルに基づいて、前記所与のノードに対する1つまたは複数の経路を識別することとを含
前記所与のノードに対する前記1つまたは複数の経路は、前記所与のノードに対する前記直接アクセスベクトルを用いて前記複数の関係データテーブルに問い合わせることによって識別される、システム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願への相互参照
この出願は、2018年4月30日に出願された米国特許出願15/966,439号への優先権を主張し、その開示は参照により本明細書に組み込まれる。
【0002】
分野
本開示の実施形態は、効率的なグラフ分析を提供するデルタ処理を用いてノードのネットワークを管理することに関する。
【背景技術】
【0003】
背景
近年、ソーシャルネットワークは、接続性の有用性を実証してきた。接続されるノードの大規模なネットワークは、参加するエンティティが、新しい機会を、それらの機会が新しい友好、ビジネスのコンタクト、またはその他の有用な繋がりであるか否かにかかわらず、識別することを可能にできる。これらのネットワークは、接続されるノードのグループ間の隠れている相乗効果を発掘する潜在性も有する。しかしながら、接続されるノードの利点にはリスクがないわけではない。ソーシャルネットワークなどの大規模ネットワークは、データプライバシーと、アイデンティティ管理と、その他のデータ共有の懸念とに関連する問題に悩まされている。加えて、接続性の動的な性質のため、接続されるノード上でデータ分析を行うと、固有の計算の課題が生じ得る。
【発明の概要】
【課題を解決するための手段】
【0004】
概要
本開示の実施形態は、関連技術を実質的に改善する、デルタ処理を用いてノードのネットワークを管理するためのシステムおよび方法に向けられる。
【0005】
複数の接続されたノードを備えるネットワークは、格納されることができ、当該複数のノードは、ネットワークのエンティティを表す。複数のノード間の接続に対する更新を示す、ネットワークに対する1つ以上のデルタは、受信され得る。デルタは、キューに追加され得る。ネットワークのノード間の接続は、キューからのデルタを使用して更新され得る。ネットワークは、ノード間の接続を更新した後に処理され、所与のノードに対するベクトルを生成し得る。所与のノードに対する1つまたは複数の経路は、生成されたベクトルに基づいて識別され得る。
【0006】
実施形態の特徴および利点は、以下の説明において記載されているか、または説明から明らかになるか、または本開示の実施により理解され得る。
【0007】
さらに他の実施形態、詳細、利点および修正は、好ましい実施形態の以下の詳細な説明から明らかになり、添付の図面と併せて解されるであろう。
【図面の簡単な説明】
【0008】
図1】例示的な実施形態に従う、ノードのネットワークに対するデータ処理を管理するためのシステムを示す図である。
【0009】
図2】例示的な実施形態に従う、ネットワークデータ管理システムに動作可能に結合されるコンピューティング装置のブロックダイアグラムを示す図である。
【0010】
図3】例示的な実施形態に従う、ノードのネットワークに対するデータ処理を管理するための機能ダイアグラムを示す図である。
【0011】
図4】例示的な実施形態に従う、ノードのネットワークを表すグラフを示す図である。
【0012】
図5】例示的な実施形態に従う、ネットワークデータ処理に対する関係データテーブルを示す図である。
【0013】
図6】例示的な実施形態に従う、ノードのネットワークに対するデルタ処理のためのフローダイアグラムを示す図である。
【0014】
図7】例示的な実施形態に従う、ノードのネットワークに対するデータ処理の安全な管理のための機能ダイアグラムを示す図である。
【0015】
図8】例示的な実施形態に従う、ノードのネットワークのビューを構成するための例示的なグラフィカルユーザーインターフェースを示す図である。
【0016】
図9】例示的な実施形態に従う、ネットワークデータの円グラフビューを示す図である。
【0017】
図10】例示的な実施形態に従う、ネットワークデータのテーブルビューを示す図である。
【0018】
図11】例示的な実施形態に従う、ネットワークデータのネットワークグラフビューを示す図である。
【0019】
図12】例示的な実施形態に従う、サプライチェーンの世界ビューを示す図である。
【0020】
図13】例示的な実施形態に従う、サプライチェーンデータの他の世界ビューを示す図である。
【0021】
図14】例示的な実施形態に従う、サプライチェーンの他の世界ビューを示す図である。
【0022】
図15】例示的な実施形態に従う、デルタ処理を用いる、ノードのネットワークを管理するための例示的な方法を示す図である。
【0023】
図16】例示的な実施形態に従う、ノードのネットワークに対する安全なデータ管理を提供するための例示的な方法を示す図である。
【発明を実施するための形態】
【0024】
詳細な説明
実施形態は、ノードのネットワークに対するデータ処理を管理する。例示的なネットワークは、ノード間の複数の接続を備える複数のノードを含み得る。いくつかの実施形態において、ネットワークは、種々の程度の情報共有を伴うソーシャルネットワークであり得る。時々、新しい接続は、以前には接続されていなかった2つのノード間で生成され得るか、または、接続は、以前には接続されていたノード間で切断され得る。ネットワークの現在の構成(例えば、ノード間の現在の接続など)に基づいて、1つまたは複数の経路が識別され得る。例えば、経路は、第1のノードにおいて開始でき、5番目のノードにおいて終了する前に、第2、第3および第4のノードを進行できる。そのような識別される経路は、パターン、トレンドもしくはリスクを識別すること、または予測を行うことに対して、または他の分析の目的に対して(つまり、ネットワーク内のノードと特定の実施形態とに応じて)有用であり得る。
【0025】
しかしながら、これらのネットワークの動的な性質は、リスクと計算上の課題とをもたらす。例えば、ソーシャルネットワークは、しばしば変化しており、新しいノード接続を構築し、古いノード接続を切り離している。それゆえ、ノード間の経路の識別は、計算的に煩雑であり得る。本明細書においてさらに詳述されるように、実施形態は、ドリップフィードデルタ処理を活用して、動的な更新機能を維持しながら計算効率を達成するネットワークを管理する。
【0026】
加えて、情報共有は、機密情報またはその他の取り扱いに慎重を要する情報を含むネットワークにおいて、困難であり得る。いくつかの実施形態において、ノード間の関係を特徴付けるために、ノード接続がさらに定義され得る(例えば、供給者、顧客、潜在的な供給者、潜在的な顧客、社会的な接続など)。これらの例において、ネットワークにおける所与のノードによって共有される情報は、接続タイプ、ネットワークにおける所与のノードからの距離、および所与のノードに対する顧客の好みに基づいて適合され得る。実施形態は、これらの情報共有ポリシーに従ってユーザー特有のデータ取り出しを保証するためのセキュリティプロトコルを含む。
【0027】
いくつかの実施形態において、ネットワークにおけるノードは、サプライチェーンにおける供給者、仲介者、および/または顧客を表し得る。例えば、ノード間の接続は、これらのエンティティ間の種々の関係を表すことができる。経路は、複数のエンティティ間の拡張される関係を表すことができる。例えば、供給者/顧客の関係によって接続される複数のノードの経路は、商品または製品に対するサプライチェーンを表すことができる。
【0028】
そのようなネットワークは、ノード間の接続に基づくグラフとも呼ばれ得る。このグラフを横断することは、例えば、サプライチェーンにおけるリンク、サプライチェーンを調節するために用いられ得る潜在的なリンク、サプライチェーンへのリスク(地理的リスク、政治的リスク、天候リスクなど)を識別するためと、その他の役に立つ目的のためとに有用であり得る。しかしながら、ノードのネットワークを表すグラフを横断することは、これらのネットワーク(例えばソーシャルネットワークなど)のいくつかの動的な性質、例えば、ノード間の接続の間の頻繁な変更などにより、特定の計算上の課題を提起し得る。
【0029】
実施形態は、事前計算ソリューションと、キューにおける変更レコードを集約するドリップフィードデルタとを実現する。キューに入れられた変更レコード(例えば、ドリップ)に基づいてネットワークにおけるデータを更新すると、グラフは、グラフのノードに対して複数の直接アクセスベクトルを生成するために処理され得る。実施形態は、グラフ横断に関連するデータを効率的に取り出すことができ事前計算されたネットワークデータのバージョンを維持することを含む。例えば、所与のノードの直接アクセスベクトルは、所与のノードを含む1つまたは複数の潜在的な経路を示す。いくつかの実施形態において、グラフ処理/事前計算ソリューションは、推移閉包を決定することを含み得る。
【0030】
事前計算ソリューションおよび/または生成される直接アクセスベクトルは、そのとき、グラフを効率的に横断するために用いられ得る。例えば、説明されるサプライチェーンの実施形態において、経路は、サプライチェーン、潜在的なサプライチェーン、または顧客と供給者との間のその他の関係であり得、ノードの直接アクセスベクトルに基づいて、所与のノードに対して1つまたは複数の経路が識別され得る。種々の実施形態において、ドリップフィードデルタおよび事前計算ソリューションは、効率的な横断に対して容易に利用可能なグラフ(例えばソーシャルネットワーク)を維持する。
【0031】
いくつかの実施形態において、ネットワークのエンティティ(例えば、ノード)は、システムと対話する、承認されるユーザーを有し得る。例えば、承認されるユーザーは、エンティティに対するプロファイルを編集し、ネットワークの他のエンティティへメッセージを送信し、他のエンティティとの関係を変更し、ネットワークのエンティティに関連するデータを取り出し、ネットワーク分析および他の好適な機能を行うことができる。しかしながら、いくつかの実施形態において、1つまたは複数のエンティティに対する機密情報または取り扱いに慎重を要する情報は、ネットワークに関連付けて(例えば、データストアにおいて)格納され得る。例えば、ソーシャルネットワークにおいて、システムは、他のエンティティのサブセットと共有され得るが残りのエンティティと共有され得ない、第1のエンティティに対する取り扱いに慎重を要する情報を格納し得る。他の例において、取り扱いに慎重を要する情報は、プライベートとしてマークされ得るので、ソーシャルネットワークの他のいかなるエンティティと共有され得ない。
【0032】
いくつかの実施形態において、システムは、ネットワークのエンティティに対して安全なデータ取り出しを提供できる。例えば、セキュリティサブシステムは、承認されるユーザーに対する1つまたは複数の許可を維持することができ、当該ユーザーが何の情報を取得できるかを決定する。セキュリティサブシステムに基づいて、データ取り出し要求は、承認されるユーザーが、確立される許可に従う情報のみを提供されることを保証するためにフィルタリングされ得る。例えば、関係フィルタリングは、データストアで検索を行う前に、生成されるクエリを許可に従ってフィルタリングするために用いられ得る。別の例において、データ編集は、承認されるユーザーにデータを提供する前にデータを編集するために許可に従って、クエリによって取り出されるデータに関して行われ得る。セキュリティサブシステム、関係フィルタリングおよびデータ編集は、ネットワークのエンティティに対する、取り扱いに慎重を要するデータまたは機密データの安全なデータ管理を保証するために用いられ得る。
【0033】
ネットワークにおけるノードがサプライチェーン内の供給者、仲介業者、および/または顧客を表す実施形態において、安全なデータ管理は、ネットワークのエンティティへサプライチェーン情報を提供するために用いられ得る。例えば、セキュリティサブシステムにおける許可は、ネットワークを表すグラフにおけるノードの経路に基づいて設定され得る。経路がサプライチェーンを表すため、所与の経路上のエンティティには、サプライチェーンに対する関連データを取り出して結果を分析するための許可が与えられ得る。実施形態において、横断されるグラフと取り出され保護されるデータとに基づいて、サプライチェーン情報を含むグラフィカルユーザーインターフェースが表示される。これらのグラフィカルユーザーインターフェースは、サプライチェーンへのリスクを識別することと、サプライチェーンの効率を分析することと、その他の目的とに対して有用であり得る。
【0034】
現在、小売サプライチェーン市場は、畑から食卓までの数百万の企業で構成されている。しばしば、これらの異なる企業は、製品開発、調達、コンプライアンス、注文、出荷、品質管理、在庫、予測、補充などを管理するための異なるシステムおよび実務を行う。当該業界は、しばしば、サプライチェーン全体の複雑さ、選定および性能と、(特に、食品などの特定の腐敗しやすい商品、または健康に影響を与えるその他の商品に対する)この膨大な数の絶望的なシステムとのために、トレーサビリティを達成できない。インテグレーションおよびAPIは、範囲が限られており、何百ものサイロが作成されてきた。透明性のソリューションおよび取引ネットワークの新しい波は、それらが自身のサプライチェーンコミュニティと競争するときに、さらに他のサイロを追加するだけである。
【0035】
実施形態は、様々なシステム、マイクロアプリケーション、モノのインターネット(「IoT:Internet of Things」)および(アプリストアの原則を介した登録によって制御される)スマート装置が、共通のデータのセットと、トランザクションのキーパフォーマンスインジケーター(KPI:key performance indicator)と、データリンクとを相互に交換することを可能にするプラットフォームを提供する。中央環境は、システムに関係なくプロセスのホストを渡ってトランザクションを監視するための機能を小売業者に提供し、共通のデータのセットを再利用するための機能をサプライチェーンに提供し、効率を高め、エンドツーエンドのプロセスに渡るデータのフローを可能にするデータリンクを提供する。実施形態は、例えばソーシャルネットワーキングの性能を介して、コミュニティを結び付けることができる。例えば1つのダッシュボードから複数のシステムとデータフィードとを管理するための効率的なプラットフォームおよびサービスを提供することにより、選定が促進される。
【0036】
そのような選定は、多くの利点につながり得る。重複の削減により、サプライチェーン全体に渡って、効率が著しく向上し、データ品質が著しく改善する。サプライチェーンに渡るトランザクションの中央レポート、可視化、および監視は、効率を向上させ、レスポンスの速度を向上させ、リスクの予測を可能にし、例えばリスクを増加させるかまたは混乱を引き起こす出来事への、肝要なトレーサビリティを提供する。データリンクは、ビジネスの過程で通信するための種々のソリューションを可能にし、満足感と、ユーザーエクスペリエンスと、品質とを向上させる。開かれた接続性は、アプリケーションまたは装置の選択を促進し、革新を触発し、選定の動機を与え、世界中の膨大な性能に適合され得る。
【0037】
次に、本開示の実施形態を詳細に参照し、その例は、添付の図面に示される。以下の詳細な説明において、本開示の徹底的な理解を提供するために、多くの特定の詳細が示されている。しかしながら、これらの特定の詳細なしで本開示が実施され得ることは、当業者には明らかであろう。他の例において、よく知られている方法、手順、構成要素、および回路は、実施形態の態様を不必要に曖昧にしないように、詳細には説明されていない。可能な限り、同様の参照番号は、同様の要素に対して用いられる。
【0038】
図1は、例示的な実施形態に従う、ノードのネットワークに対するデータ処理を管理するためのシステムを示す。システム100は、クライアント装置102と、クラウドサーバ104と、認証サーバ106と、ロードバランサ108と、ユーザーインターフェースロジック110と、ステートレスビジネスサービス層112と、データアクセス層114と、セキュリティポリシー116と、データベース118とを含む。クライアント装置102は、デスクトップ、ラップトップ、タブレット装置、携帯電話などのコンピューティング装置であり得る。例えば、クライアント装置102は、システム210と同様の任意のコンピューティング装置であり得る。いくつかの実施形態において、クライアント装置102は、ノードのネットワークに対するソフトウェアサービスにアクセスするためにクラウドサーバ104と通信するアプリケーション(例えば、ローカルに格納されるアプリケーション、ウェブベースのアプリケーションなど)を実行できる。
【0039】
例えば、クライアントアプリケーションは、1つまたは複数のウェブ技術(例えば、ハイパーテキストマークアップ言語(「HTML」:HyperText Markup Language)5.0、JavaScript(登録商標)、カスケーディングスタイルシート(CSS:cascading style sheets)、スケーラブルベクタグラフィックス(「SVG」:scalable vector graphics)など)を用いて実現され得る。そのようなアプリケーションは、デスクトップもしくはモバイル装置を用いて、標準的なブラウザまたはモバイルブラウザの両方から閲覧され得る。いくつかの実施形態において、ダウンロード可能なモバイルアプリケーション(例えば、iOS,Androidなど)が開発され得る。例えば、ダウンロード可能なアプリケーションは、ウェブサイトを表示するために内部で「コントロールレス」ブラウザを用いる(例えば、Cordova技術を用いる)コンテナアプリケーションであり得る。種々の実施形態において、標準ブラウザ(例えば、デスクトップ)、モバイルブラウザ、ダウンロード可能なアプリケーションを用いるとき、または任意の他の好適な構成において、アプリケーションを含むユーザーエクスペリエンスは一貫している。クライアント装置102へ送信される例示的な通信、およびクライアント装置102から受信される例示的な通信は、招待と、ネットワークメッセージと、ネットワークに関連するデータと、ネットワークに関係がある他の資料とを含み得る。
【0040】
クラウドサーバ104は、ノードのネットワークに対するクラウドベースのソフトウェアサービスプラットフォームをホストするのに好適なサーバであり得る。例えば、クラウドサーバ104は、システム210と同様の任意のコンピューティング装置であり得、ならびに/またはオラクル(登録商標)クラウド、オラクル(登録商標)ベアメタル、オラクル(登録商標)ウェブロジックサーバ、および/もしくは、(Linux(登録商標)などのオペレーティングシステム、オラクル(登録商標)Java(登録商標)エンタープライズエディション(「EE:Enterprise Edition」などのウェブテクノロジーなどの)その他の好適な構成要素に組み込まれるエンゲージメントエンジン(「EE:engagement engine」)の種々のモジュールを含み得る。
【0041】
いくつかの実施形態において、クラウドサーバ104は、認証サーバ106、ロードバランサ108、およびUIロジック110と通信している。例えば、クライアント装置102のうちの1つのユーザーは、認証サーバ106によって認証され得る。認証されるユーザーは、そのとき、アイデンティティ管理サービス内のIDに関連付けられ得る。認証サーバ106の例は、オラクル(登録商標)アイデンティティクラウドサービス(「IDCS」:Identity Cloud Service)である。ユーザーは、そのとき、ユーザーの認証されるIDに基づくネットワークアプリケーションサービスにアクセスできる。
【0042】
ロードバランサ108は、システムの計算リソースを効果的に管理するための、1つまたは複数のプロセッサ(もしくは1つまたは複数のコンピューティング装置)に負荷を分散するサーバまたはモジュールであり得る。ロードバランサ108は、システム210と同様の任意のコンピューティング装置であり得る。
【0043】
UIロジック110は、1つまたは複数のクライアント装置102にユーザーインターフェースを提示するためのソフトウェアを含むサーバまたはモジュールであり得る。例えば、UIロジック110は、クライアント装置102のうち1つで実行されるアプリケーションと通信して、ノードのネットワークに対するソフトウェアサービスと対話するためのインターフェースを提示できる。UIロジック110は、クライアント装置102のうちの1つを構成して、本明細書において開示される種々のグラフィカルユーザーインターフェースを表示できる。
【0044】
ステートレスビジネスサービス層112は、ノードのネットワークに対するステートレスソフトウェアサービスを提供できる。例えば、ネットワークデータを安全に、取り出し、更新し、または書き込み、ネットワークを横断し、ネットワークにおける参加者へメッセージを送信するなどを行う1つまたは複数のマイクロサービスが定義され得る。これらのステートレスマイクロサービスは、本明細書でさらに説明される。
【0045】
データアクセス層114は、クエリ生成などのデータ処理機能を行うソフトウェア層であり得る。例えば、ステートレスビジネスサービス層112からの要求に基づいて、格納されるネットワークデータに関連する1つまたは複数の要求、命令、または更新は、データアクセス層114で受信され得る。クエリまたは命令は、受信される要求(構造化クエリ言語(「SQL:structured query language」)クエリなど)に基づいて、データベース118に対して生成され得る。
【0046】
セキュリティポリシー層116は、格納されるセキュリティポリシーに従って、データベース118に対してデータ取り出し、更新、または命令を保護するソフトウェア層であり得る。例えば、データベース118は、ネットワークデータを格納するための任意の好適なデータベース(例えば、オラクル(登録商標)関係データベース)であり得る。ネットワークデータは、ネットワークの参加者に対する機密情報または取り扱いに慎重を要する情報を含み得る。更新、命令(例えば、データベースへの書き込み)、またはデータアクセス層114から取り出す試み(例えば、クエリ)は、セキュリティポリシー層116により処理され、格納されるセキュリティポリシーに従ってネットワークデータをフィルタリングできる。
【0047】
いくつかの実施形態において、クラウドサーバ104、認証サーバ106、ロードバランサ108、ユーザーインターフェースロジック110、ステートレスビジネスサービス層112、データアクセス層114、セキュリティポリシー116およびデータベース118は、単一のシステムまたはコンピューティング装置に組み込まれることができ、種々のコンピューティング装置にわたって分散されることができ、いくつかの実施形態においては、種々の場所にわたって分散されることができ、これらの組み合わせは、他の任意の好適な手法で構成され得る。例示的な実施形態において、クラウドサーバ104、認証サーバ106、ロードバランサ108、ユーザーインターフェースロジック110、ステートレスビジネスサービス層112、データアクセス層114、セキュリティポリシー116およびデータベース118は、ソフトウェア、ハードウェアまたはこれらの組み合わせであり得る。
【0048】
図2は、実施形態に従う、コンピュータサーバ/システム210のブロックダイアグラムである。図2に示されるように、システム210は、プロセッサ222およびメモリ214などの、システム210の種々の構成要素の間で情報を通信するように構成されている、バス装置212および/または他の通信機構(複数可)を含み得る。加えて、通信装置220は、プロセッサ222からネットワーク(図示しない)を超えて別の装置へ送信されるデータをエンコードし、プロセッサ222に対してネットワークを超えて他のシステムから受信されるデータをデコードすることにより、プロセッサ222と他の装置との間の接続を可能にし得る。
【0049】
例えば、通信装置220は、無線ネットワーク通信を提供するように構成されているネットワークインターフェースカードを含み得る。赤外線、無線、Bluetooth(登録商標)、Wi-Fiおよび/またはセルラ通信を含む様々な無線通信技術が用いられ得る。あるいは、通信装置220は、イーサネット(登録商標)接続などの有線ネットワーク接続(複数可)を提供するように構成され得る。
【0050】
プロセッサ222は、システム210の計算機能および制御機能を行うための1つまたは複数の汎用または専用の目的のプロセッサを含み得る。プロセッサ222は、マイクロプロセッシング装置などの単一の集積回路を含んでもよく、またはプロセッサ222の機能を達成するために協働して動作する、複数の集積回路装置および/もしくは回路基板を含んでもよい。加えて、プロセッサ222は、メモリ214内に格納される、オペレーティングシステム215、ネットワークマネージャ216、および他のアプリケーション218などのコンピュータプログラムを実行し得る。
【0051】
システム210は、プロセッサ222による実行のための情報および指令を格納するためのメモリ214を含み得る。メモリ214は、データを取り出し、提示し、修正し、格納するための種々の構成要素を含み得る。例えば、メモリ214は、プロセッサ222によって実行されるときに機能を提供するソフトウェアモジュールを格納し得る。モジュールは、システム210に対してオペレーティングシステム機能を提供するオペレーティングシステム215を含み得る。モジュールは、オペレーティングシステム215と、ネットワークに対するデータ処理を管理するように構成されているネットワークマネージャ216と、他のアプリケーションモジュール218とを含み得る。オペレーティングシステム215は、システム210に対してオペレーティングシステム機能を提供する。ネットワークマネージャ216は、ネットワークに関連するデータ処理に対するシステムコールを可能にする1つまたは複数のAPIを含んでもよく、または本開示の任意の他の機能をさらに提供し得る。いくつかの例において、ネットワークマネージャ216は、インメモリ構成として実施され得る。
【0052】
非一時的メモリ214は、プロセッサ222によってアクセスされ得る種々のコンピュータ読み取り可能な媒体を含み得る。例えば、メモリ214は、ランダムアクセスメモリ(「RAM」:random access memory)、ダイナミックRAM(「DRAM」:dynamic RAM)、スタティックRAM(「SRAM」:static RAM)、読み出し専用メモリ(「ROM」:read only memory)、フラッシュメモリ、キャッシュメモリ、および/またはその他の任意のタイプの非一時的なコンピュータ読み取り可能な媒体の任意の組み合わせを含み得る。
【0053】
プロセッサ222は、バス212を介して、液晶ディスプレイ(「LCD:Liquid Crystal Display」)などのディスプレイ224にさらに結合される。キーボード226およびコンピュータマウスなどのカーソル制御装置228は、通信装置212にさらに結合され、ユーザーがシステム210とインターフェースすることを可能にする。
【0054】
いくつかの実施形態において、システム210は、より大きなシステムの一部であり得る。それゆえ、システム210は、付加的な機能を含む1つまたは複数の付加的な機能的モジュール218を含み得る。他のアプリケーションモジュール218は、例えばオラクル(登録商標)クラウドに組み込まれたエンゲージメントエンジン(「EE」)の種々のモジュールを含み得る。データベース217は、バス212に結合され、モジュール216および218に対して集約されたストレージを提供し、例えば、無線装置の使用率を格納し、いくつかの実施形態においては、ユーザプロファイル、トランザクション履歴などを格納する。データベース217は、論理的に関連したレコードまたはファイルの統合されるコレクションにデータを格納できる。データベース217は、運用的データベース、分析的データベース、データウェアハウス、分散データベース、エンドユーザデータベース、外部データベース、ナビゲーショナルデータベース、メモリ内データベース、ドキュメント指向データベース、リアルタイムデータベース、関係データベース、オブジェクト指向データベース、HFDS、または当該技術分野において知られている任意の他のデータベースであり得る。
【0055】
単一のシステムとして示されているが、システム210の機能は、分散システムとして実現され得る。例えば、メモリ214およびプロセッサ222は、集合的にシステム210を表す複数の異なるコンピュータにわたって分散され得る。ある実施形態において、システム210は、装置(例えば、スマートフォン、タブレット、コンピュータなど)の一部であり得る。
【0056】
ある実施形態において、システム210は、装置と切り離されてもよく、当該装置に対して、説明される機能を遠隔で提供し得る。さらに、システム210の1つまたは複数の構成要素は含まれなくてもよい。例えば、ユーザーまたは消費者の装置としての機能に対して、システム210は、スマートフォンであり得るか、または、プロセッサと、メモリと、ディスプレイとを含み、図2に示される他の構成要素のうちの1つまたは複数を含まず、図2に示されない追加の構成要素を含む他の無線装置であり得る。
【0057】
図3は、例示的な実施形態に従う、ノードのネットワークに対するデータ処理を管理するための機能ダイアグラムを示す。ダイアグラム300は、ネットワークのユーザーに対してサービスを提供できる例示的なソフトウェアフレームワークの一例を示す。図3は、アプリケーション開発フレームワーク(「ADF: Application Development Framework」)フェース302と、ADFタスクフロー304と、ビーンズ306と、データモデル308と、サービス310と、データプラットフォーム312と、セキュリティプラットフォーム314と、データストレージ316と、拡張可能なマーク付け言語(「XML:Extensible Markup Language」)定義318を含む。
【0058】
ADFフェース302は、HTMLと、CSSと、ユーザーインターフェースを提供するための任意の他の好適なコードとを含むソフトウェアフレームワークのビュー部分であり得る。本明細書において開示される1つまたは複数のグラフィカルユーザーインターフェースは、ADFフェース302によって提供され得る。ADFタスクフロー304は、ソフトウェア機能を行うための1つまたは複数のユーザーインターフェース要素を構成するために用いられ得る。ビーンズ306は、ユーザーインターフェースロジックとインテグレーションとにモデル層のビジネスロジック規則を提供できる。ADFタスクフロー304およびビーンズ306は、ソフトウェアフレームワークのコントローラ部分であり得る。例えば、ADFタスクフロー304は、ビーンズ306の上にあり得、クライアントページに対してフレームワークを実現する。いくつかの実施形態において、ADFタスクフロー304は、アプリケーション画面のコレクションを通じたユーザーの過程を管理するために用いられ得るタスクフロー構成体のセットを提供できる。本明細書で開示されるグラフィカルユーザーインターフェースの要素の1つまたは複数の機能は、ADFタスクフロー304および/またはビーンズ306によって提供され得る。
【0059】
データモデル308は、ソフトウェアフレームワークのモデル部分であり得る。データモデル308は、ユーザーインターフェース(例えば、ビューおよびコントローラ)とソフトウェアサービス(例えば、ソフトウェアフレームワークのビジネスサービス部分)との間とインターフェースするためのビジネスロジック規則および構造を提供できる。サービス310は、ソフトウェアフレームワークのビジネスサービス部分であり得る。サービス310は、ビジネス規則と、ロジックと、有効化と、例えば、格納されるネットワークデータ上でソフトウェアサービスが行われることを可能にする構造とを提供できる。サービス310は、本明細書で開示されるマイクロサービスのうちの1つまたは複数を含み得る。
【0060】
データプラットフォーム310、セキュリティプラットフォーム314およびデータストレージ316は、ソフトウェアフレームワークのデータサービス部分であり得る。データプラットフォーム312は、物理ストレージに論理データをマッピングできる。例えば、サービス層310からの要求に基づいて、データプラットフォーム層312は、データストレージ316に格納されるデータを取り出し、格納し、または変更するために、データ命令(例えば、クエリ、変更要求など)を生成できる。これらのデータ命令は、セキュリティプラットフォーム312によって保護される。セキュリティプラットフォーム312は、データプラットフォーム層312からのデータ命令をフィルタリングするために用いられるセキュリティポリシーを格納できる。このように、データストレージ316に格納されるデータは、セキュリティプラットフォーム312によるセキュリティである。データプラットフォーム312およびセキュリティプラットフォーム314は、XML定義318によって定義され得る。それゆえ、これらのソフトウェア構成要素は、XML定義318を更新することによって直ちに更新および/または再構築され得るため、アジャイルである。サービス310、データプラットフォーム310、セキュリティプラットフォーム314およびデータストレージ316は、図7を参照してさらに説明される。
【0061】
再び図1を参照すると、いくつかの実施形態において、システム100は、グラフによって表されるノードのネットワークに対するソフトウェアサービスを提供できる。図4は、例示的な実施形態に従う、ノードのネットワークを表すグラフを示す。グラフ400は、複数のノード402および複数の接続404のネットワークを表すことができる。各ノード402は、グラフ/ネットワークに参加するエンティティを表すことができ、各接続404は、エンティティ間の関係を表すことができる。いくつかの実施形態において、グラフ400は、有向非巡回グラフ(「DAG: Directed acyclic graph」)、またはネットワーク(例えば、ソーシャルネットワーク)を表すのに好適な任意の他のグラフである。
【0062】
いくつかの実施形態において、図1のシステム100は、グラフ400によって表されるネットワークに対してソフトウェアサービスを提供できる。例えば、複数のノード402は、各々、組織を表すことができ、これらの組織に所属しているユーザーは、クライアント装置102のうちの1つを用いてネットワークにアクセスできる。これらのユーザーは、ノードのネットワークにアクセスし、当該ネットワークを操作し、または当該ネットワークと対話するために、クラウドホスティングサーバ104およびシステム100の残りの要素と通信できる。例えば、ユーザーのアイデンティティは、認証サーバ106によって認証され(例えば、IDCSサービス、または任意の他の好適なアイデンティティ管理サービス)、ユーザーは、そのとき、彼または彼女の認証されたアイデンティティに関連付けられた許可に従ってネットワークと対話できる。
【0063】
いくつかの実施形態において、ノード402によって表される各組織は、ネットワークに登録できる。例えば、名称と、住所または場所(例えば、緯度、経度、母国および任意の他の好適な場所情報)と、組織に関連付けられたブランドと、ホームページユニフォームリソースロケータ(「URL:Uniform Resource Locator」)、組織のためのソーシャルメディアアカウントと、これらの組み合わせと、他の好適な情報との1つまたは複数を含み得る、登録された組織に対するプロファイルが格納され得る。
【0064】
ある実施形態において、ノードのネットワークは、供給者、顧客および/または仲介者のネットワークを表すことができる。そのような例において、組織プロファイルは、販売される製品と、購入される製品と、第三者団体からの証明書と、第三者団体からの満了した証明書と、(例えば、ネットワークにおける他のエンティティの中からの)直接的な供給者と、(例えば、ネットワークにおける他のエンティティの中からの)直接的な顧客と、商品または製品に対する手順(例えばレシピ)と、商品または製品に対する部分(例えば原料)と、これらの組み合わせと、製品もしくは商品の購入者または販売者に対する任意の他の好適な情報とのうちの1つまたは複数も含み得る。
【0065】
いくつかの実施形態において、第三者団体からの証明書は、食品または薬物の安全証明(例えば、ハラル証明、コーシャ証明)、公正取引証明、1つまたは複数の知られた証明エンティティからの証明(例えば、世界食品安全イニシアチブ(「GFSI」:Global Food Safety Initiative)、英国小売協会(「BRC」:British Retail Consortium)、米国食品医薬品局(「FDA」:Food and Drug administration)、米国農務省(「USDA」:United States Department of Agriculture)、海洋管理協議会(「MSC」:Marine Stewardship Council)、安全品質食品研究所(「SQF」:Safe Quality Food Institute)など)、危害分析および重要管理点(「HACCP」:Hazard Analysis and Critical Control Points」)証明などを含む。これらの証明は、しばしば更新を必要とし、それゆえに、証明は時々満了し得る。満了した証明書は、商品または製品に対する最終的な届け先(例えば、届け先国および地方条例)次第では、サプライチェーンにおいて潜在的な問題を生み出し得る。
【0066】
いくつかの実施形態において、商品または製品の手順は、レシピ、または商品もしくは製品を作るために用いられる原料のリストを含む。例えば、製品Aは、原料C,D,EおよびFを列挙するレシピBなどの1つまたは複数のレシピを含み得る。例示的な商品または製品は、果実ジュースであり得る。所与の組織は、当該組織が果実ジュースのような製品に対するレシピを有する場合、別の顧客と考えられ得る。果実ジュースにおける原料は、果実濃縮物(例えば、クランベリー、リンゴなど)、異なるタイプの果実、および他の好適な原料であり得る。所与の組織は、当該組織が別の組織のレシピに対する原料を有する場合、供給者と考えられ得る。
【0067】
一度登録されると、組織は、ネットワークにおいて互いに対話できる。例えば、複数のノード402によって表される組織は、互いにメッセージを送信し、共有され得る投稿を生成し、他の組織からの投稿に「いいね」し、他の組織がネットワークに参加するように当該他の組織へ招待を送信し、ソーシャルネットワークに対して好適な他の機能を行うことができる。
【0068】
いくつかの実施形態において、グラフ400において、複数のノード402の間の1つまたは複数の経路は、接続404に基づいて識別され得る。例えば、経路406は、図4に示されるように、複数のノード402のうち4つを含み得る。商品または製品を巻き込むトランザクションに対して、顧客、供給者および仲介者であり得るエンティティを複数のノード402が表す実施形態において、経路406は、サプライチェーンを表し得る。例えば、経路406は、終点(例えば、顧客)で終わる、複数のノード402間の商品または製品のフローを表すことができる。いくつかの実施形態において、終点は、情報を要求するサプライチェーン内のエンティティを表す、複数のノード402のうちの1つであり得る。例えば、経路406の終点を表すノード402は、商品または製品のフローに関する情報を、ノードを表すエンティティに要求できる。いくつかの例において、エンティティが下流の顧客に商品または製品を販売し得るため、この終点が仲介者であり得るが、経路406は、そのエンティティに対するサプライチェーンを表すことができる。エンティティの承認されるユーザ(例えば、認証されるアイデンティティ)は、ネットワークに対するソフトウェアサービスと対話でき、以下でさらに詳述されるように、このサプライチェーン情報を取り出すことができる。
【0069】
いくつかの実施形態において、接続404は、組織(例えば、顧客および供給者)間の取引関係を表すことができる。例えば、組織Aは、その供給者のうちの1つになるように組織Bを招待することができ、および/または、組織Bは、その顧客のうちの1つになるように組織Aを招待できる。これは、組織Bが組織Aのレシピの1つに対して原料を有する場合に起こり得る。ネットワーク内において、組織Aと組織Bとの間の接続404は、取引関係の招待が組織の一方から送信され、他方によって受け入れられるときに作られ得る。
【0070】
ある実施形態において、2つの組織が取引関係になるために招待を一度送信し受け取った時点で、それらは、どのレシピおよび原料がこの関係に依存するかを識別できる。顧客組織は、そのレシピにおいて用いられる原料のいくつかを新しい供給者組織に属性付けることができる。同様に、供給者組織は、当該組織が供給している製品に対するレシピを顧客組織の名前に属性付けることができる。図4に関して、接続404が取引関係を表すとき、グラフ400は、取引組織(例えば、サプライチェーン)間の商品の潜在的なフローを示す。例えば、顧客組織に関連付けられた少なくとも1つの製品レシピを供給者組織が有し、供給者組織に関連付けられた少なくとも1つの原料を含むレシピを顧客組織が有する場合、供給者組織は、顧客組織のサプライチェーン内に示される(当該サプライチェーンの一部と考えられる)。
【0071】
いくつかの実施形態において、接続404は、(取引しない)社会的関係を表すことができる。例えば、組織Aは、ソーシャル接続要求を組織Bに提出することができ、ソーシャル接続を表す接続404が形成され得る。
【0072】
いくつかの実施形態において、ネットワークデータは、関係データベースにおける複数の関係データテーブル上にマッピングされ得る。図5は、例示的な実施形態に従う、ネットワークデータの処理に対する関係データテーブルを示す。図5に示される例示的なデータテーブルは、組織502と、接続504と、レシピ506と、原料508と、レシピ_原料510と、レシピ_消費者512と、原料_供給者514とを含む。データテーブルは、属性(例えば、ID、名前など)、および、いくつかの例において、キー情報(例えば、主キーおよび外部キー)を含み得る。図示されるデータスキーマは、本開示の目的のために単純化されており、ネットワークデータに対するデータスキーマは、図示される例よりも実質的に大きくなるように実現できる。他の好適なスキーマも実現され得る。
【0073】
いくつかの実施形態において、組織502は、組織ID、名称、本明細書で詳述される他のプロファイル情報、および任意の他の好適な組織プロファイル情報などの、組織プロファイル情報を格納できる。接続504は、接続ID、消費ID(例えば、顧客ID)、生産ID(例えば、供給者ID)、および任意の他の好適な接続情報などの、ノード間の接続についての情報を格納できる。いくつかの実施形態において、ノード間の接続は、商品または製品の具体化されるフロー(例えば、具体化される供給者/顧客関係)に基づき得る。
【0074】
いくつかの実施形態において、レシピ506は、レシピID、レシピの説明、所有者組織ID、および任意の他の好適なレシピ情報などのレシピ情報を格納できる。同様に、原料508は、原料ID、原料の見出し、所有者組織ID、および任意の他の好適な原料情報などの原料情報を格納できる。レシピ_原料510は、所有されるレシピと所有される原料との間の関連を格納できる。
【0075】
いくつかの実施形態において、レシピ_消費者512は、接続504に格納される接続IDによって表される組織間の接続など、レシピを消費する接続とレシピを関連付ける情報を格納できる。同様に、原料_供給者514は、原料と原料を供給する接続とに関する情報を格納できる。例えば、レシピ_消費者512および原料_供給者514は、所与の接続から組織がどのように接続されるか(例えば、それらの間に存在するレシピ/原料の取引関係)を決定するために用いられ得る。
【0076】
例えば、第1の組織により所有されるレシピAは、原料B,CおよびDを含み得る。第2の組織により所有される原料は、原料D,EおよびFを含み得る。第2の組織により所有される原料、すなわち原料Dを含むレシピを第1の組織が所有しているため、商品または製品の潜在的なフローは、第1の組織と第2の組織との間に存在する。いくつかの例において、取引関係は、第1の組織と第2の組織とによって確認され、それによって(接続IDを有する)接続が形成され得る。一度接続されると、第1の組織は、当該接続にレシピAを関連付けることができ、第2の組織は、当該接続に原料Dを関連付けることができる。図5に示されるテーブルには、関連する接続と、原料と、レシピ情報とが投入され得る。
【0077】
再び図4を参照すると、データテーブル上にノードのネットワークをマッピングすることは、複数のノード402に対してエンティティ特有の(例えば、組織プロファイル)情報を組織502に格納することと、接続404に対してノード接続情報を接続504に格納することとを含み得る。以下で詳述されるように、複数のノード402に対してベクトルを生成するためにネットワークを処理することは、レシピ506、原料508、レシピ_原料510、レシピ_消費者512および/または原料_供給者514によって示される、所有されるレシピと所有される原料との間の関連に基づいて管理され得る。
【0078】
いくつかの実施形態において、更新または変更は、ユーザーによって要求され得る(例えば、ネットワークのノード/エンティティのうちの1つに関連付けられる)。例えば、認証されるユーザーは、商品もしくは製品のフロー(例えば、新しいもしくは更新される供給者/顧客関係)への変更、商品もしくは製品の新しいフロー、所有されるレシピもしくは原料の変更、新しいレシピもしくは原料、または任意の他の好適な変更などの変更をネットワークに要求し得る。ネットワークに対する変更は、新たに登録される組織に基づく新しいノード/エンティティの作成を含み得る。新しいノード/エンティティは、商品もしくは製品の既存のまたは新しいフローに基づいて既存のエンティティ/ノードとの接続を生成し得る。
【0079】
図4に示される新しい接続408は、グラフ400に対する変更の結果であり得る。例えば、新しい接続408によって接続される複数のノード402は、商品またはサービスを取引するための約束をすることができる。グラフ400に対する更新に基づいて、新しい経路および新しい潜在的な経路が生成される。本明細書に詳述されるように、高い変更の頻度でソーシャルグラフなどのグラフを横断するための処理要求は、計算的に困難であり得る。実施形態は、頻繁な変化が存在するとしてもグラフ400を横断するための効率的な技法を提供するためにドリップフィードデルタ処理を実現する。
【0080】
図6は、例示的な実施形態に従う、ノードのネットワークに対するデルタ処理のためのフローダイアグラムを示す。デルタ602は、(例えば関係データテーブルに格納される)ネットワークデータ606に対する更新または変更を要求され得る。デルタ602は、先入れ先出し(FIFO:First in First Out)キューまたは任意の他の好適なキューなどのキュー604に格納され得る。処理される各変更または各更新は、ドリップフィードデルタ処理フローにおいてドリップと考えられ得る。更新または変更がネットワークデータ606上で行われるとき、ネットワークのエンティティ間の1つまたは複数の経路または潜在的な経路が変更され得る。例えば、デルタ602のうちの1つは、新しい接続408と同様の接続を生成する、および/または製品もしくは商品の(例えば、所有される原料、レシピ、もしくは製品への変更に基づく)新しい(もしくは新しい潜在的な)フローを生成する変化という結果を生じ得る。ネットワークデータ606に対する更新を完了すると、次のドリップが実行され得る(例えば、ネットワークデータ606は、キュー604の先頭のデルタ602に従って更新または変更され得る)。
【0081】
いくつかの実施形態において、ネットワークデータ606は、(例えば、図5に示される関係テーブルに格納される)基礎をなすネットワークデータの事前計算されたバージョンを表すことができる。例えば、ネットワークデータ606は、ノード/エンティティ間の経路などのネットワーク情報(例えば、サプライチェーン情報)の効率的な取り出しに対して有用で事前計算されたデータであり得る。ユーザー(例えば、適切なセキュリティを伴う認証されるユーザー)は、例えば、クライアントアプリケーションにログインして当該アプリケーションと対話することによって、基礎をなすネットワークデータを直ちに更新/変更でき、これらの更新/変更は、基礎をなすネットワークデータにおいてキューの使用無しで反映され得る。しかしながら、デルタ602は、ネットワークデータ606(例えば、基礎をなすネットワークデータの事前計算バージョン)に影響を及ぼす更新/変化を表すことができる。実施形態は、ネットワーク情報の効率的な取り出しに対して有用で基礎をなすネットワークデータの、この事前計算されたバージョンを維持するためにネットワークデータ606を更新するときに、ドリップフィードデルタ技法を実現する。
【0082】
いくつかの実施形態において、ネットワークデータ606は、基礎をなすネットワークデータとは切り離された関係データテーブルのセットに格納される。ネットワークデータ606は、事前計算された形態における、基礎をなすネットワークデータのコピーと考えられ得る。この事前計算された形態(および効率的なネットワークデータ取り出しの利点)を維持するために、更新は、開示されるドリップフィードデルタ技法によって管理される。言い換えれば、それは、(例えば、キュー604において)キューイングされドリップデルタとして実行される関係データテーブル(例えば、デルタ602)の切り離されたセットへの更新/変更である。ネットワークデータ606は、(ドリップデルタの実行後に)基礎をなすネットワークデータと最終的に一致し、ネットワークの高性能クエリを可能にする構造を提供する。
【0083】
いくつかの実施形態において、デルタ602の処理は、利用可能な計算リソースに基づくベストエフォート条件下で行われる。処理遅延は、サーバが(ユーザーのアクティビティから)デルタ602を生成できるレートと、事前計算エンジンがキュー604からそれらを処理/除去できるレートとの間の相違に起因し得る。いくつかの実施形態において、デルタ処理は、遅延されてもよく、および/または予め定められた間隔で行われ得る(例えば、遅延が処理に組み込まれ得る)。
【0084】
いくつかの実施形態において、基礎をなすネットワークデータに対する更新/変更(例えば、図5の関係データテーブルに対する変更)は、ネットワークデータ606を格納する別個のデータテーブルに影響を及ぼす変更を決定するために追跡され得る。例えば、以下のシナリオは、ネットワークデータ606に影響を及ぼす変更(例えば、キューに入れられる変更)を表す:
1)2つの組織が新しい取引関係を作成するか、または既存の取引関係を終わらせる;
2)2つの組織が既存の取引関係を終わらせる;
3)顧客もしくは供給者によって維持されるレシピまたは原料は、新しい組織を(製品/レシピの)顧客または(原料の)供給者として関連付けるように更新される;
4)顧客もしくは供給者により維持されるレシピまたは原料は、彼らが組織を原料の供給者または製品/レシピの顧客として除去するように更新される。
【0085】
いくつかの実施形態において、基礎をなすネットワークデータに対する更新/変更は、これらの上述のシナリオのうちの1つまたは複数を識別するために追跡され得る。例えば、図5の関係テーブル構造を参照すると、以下の更新/変更は、ネットワークデータ606に影響を及ぼすと識別され得る。
レシピに追加される消費者/レシピから削除される消費者(レシピ_消費者512上での挿入、削除)
レシピに追加される原料/レシピから削除される原料(テーブルレシピ_原料 510上での挿入、削除)
原料に追加される供給者/原料から削除される供給者(テーブル原料_供給者514での挿入、削除)
【0086】
これらの場合の各々において、変更は、クライアントアプリケーションを用いるユーザ(例えば、許可を有する認証されるユーザ)によって実現され得ることに留意されたい。開示される技法の実施形態は、基礎をなすネットワークデータの事前計算されたバージョンを維持するためにネットワークデータ606を更新するために用いられる、これらの変化に対応するデルタ602を生み出す。
【0087】
いくつかの実施形態において、データベース機能(例えば、オラクル(登録商標)RDBMSトリガ)は、デルタ602を処理するために用いられ得る。キューイングのための例示的な技法は、オラクル(登録商標)AQ(「AQ」:Advanced Queuing」)を含む。キュー604からのデルタ602は、処理されることができ、ネットワークデータ606を格納する(例えば、グラフに対する推移閉包を含む)データテーブルは、徐々に更新され得る。いくつかの実施形態では、種々の組織において複数のキュー消費者が実現されることができ、これらは、種々の組織によって共有され得る。ネットワークデータ606を格納するデータテーブルに対する例示的なスキーマは、以下の通りである:
事前計算_レシピ_消費者_供給者-消費組織の関係(レシピID、消費組織IDおよび供給(所有)組織のID)に対するレシピの事前計算コピーを格納する。
事前計算_レシピ_原料-レシピ関係(レシピIDおよび原料ID)に対する原料の事前計算コピーを格納する。
事前計算_原料_消費者_供給者-供給組織の関係(原料ID、消費(所有)組織IDおよび供給組織ID)に対する原料の事前計算コピーを格納する。
事前計算_原料_接続-可能であって、それゆえ、ネットワークを通じた横断のために用いられ得る原料接続に対する事前計算バージョンの原料を格納する。これは、推移閉包の増分評価を補助するために用いられる。
事前計算_組織_推移閉包_再帰的-組織の推移閉包に対する組織の事前計算バージョンを格納し、ネットワークに問い合わせるためにアプリケーションによって用いられるテーブルの1つである。いくつかの実施形態において、テーブルの設計は、単純であり、(その再帰的推移閉包エントリの)IDと、消費組織IDと、供給組織IDとからなる。
事前計算_組織_推移閉包_経路-事前計算_組織_推移閉包_再帰的において消費組織IDから供給組織IDまでに得ることができる道(経路)の全ての事前計算バージョンを格納する。
事前計算_組織_推移閉包_原料_接続_経路_ヘッダ-このテーブルは、原料経路に対するヘッダレコードを保持する。このレコードは、この原料経路が可能にしている事前計算_組織_推移閉包_経路 からの、組織の推移閉包経路IDを含む。これは、推移閉包の増分評価を補助するために用いられる。
事前計算_組織_推移閉包_原料_接続_経路_詳細-このテーブルは、事前計算_組織_推移閉包_原料_接続_経路_ヘッダからの、原料経路に対する詳細なレコードを保持する。これは、推移閉包の増分評価を補助するために用いられる。
【0088】
実施形態は、ネットワークデータ606に影響を及ぼすとして識別され追跡される変化に対応するネットワークデータ606(例えば、上記のスキーマ)を格納するデータテーブルに対する更新/変化(例えば、デルタ602)を生成することを含む。例えば、追跡される変化は、2つのエンティティ/ノード間の取引関係に対する更新として識別され得る。1つまたは複数のデルタ602は、ネットワークデータ606を格納するデータテーブルを更新するために生成され得る。例えば、追跡される変更は、実現されるスキーマに基づいて、ネットワークデータ606を格納する複数のテーブルを更新/変更する複数のデルタ602に対応し得る。
【0089】
いくつかの実施形態において、ドリップ(例えば、デルタ)を実行することは、ネットワークの推移閉包を決定することを含む。図4を参照して、グラフ400の推移閉包は、所与のノードとの経路または潜在的な経路の一部である複数のノード402のサブセットに基づいて、所与のノードに対して維持され得る。商品もしくは製品の潜在的な接続またはフローは、原料と、レシピと、関連するエンティティ/ノードと、ネットワークデータ606に対して維持されるデータスキーマ(例えば、上記の開示されるデータスキーマ)において格納され更新される関連情報とに基づいて識別され得る。一般に、所与のノードに対して、グラフ400の推移閉包は、所与のノードとの(例えば、既存のまたは潜在的な)経路上で含まれ得る、複数のノード402のサブセットを表す。グラフ400に対する推移閉包は、任意の好適な手法で決定され得る(例えば、グラフの幅優先探索または深さ優先探索、フロイド-ワーシャルアルゴリズムなど)。
【0090】
推移閉包を決定するとき、ノードから他のノードへの経路を数え上げる、規則またはデータのセットが用いられ得る。種々の実施形態において、ノード/エンティティ間の確立される取引関係は、経路を数え上げるための技法として用いられ得る。以下は、グラフ400の推移閉包を決定するための例示的なアルゴリズムである:
ノードXに対して;
Xの各レシピに対して、
レシピの各原料に対して、
原料の各供給者に対して、
潜在的な供給者ノードのリストに供給者を追加する。
「潜在的な供給者ノード」リストにおける各ノードに対して、
当該ノードが、顧客としてのノードXがマークされた少なくとも1つのレシピを有するか否かをチェックする。
ノードが当該少なくとも1つのレシピを有さない場合、「潜在的な供給者ノード」リストからのノードを除去する。
//「潜在的な供給者ノード」は、ノードXに対するサプライチェーンにおける次のレベルのノードである。
当該アルゴリズムは、リストにおける各ノードにわたって再帰的に行われ、ノードの次のレベルの供給者を生み出す。新しい再帰の各々に対して、現在の繰り返しの対象であるノードが新しい「X」となる。
【0091】
決定される推移閉包の結果は、(例えば、例示的なスキーマと同様のデータテーブルにおいて)ネットワークデータ606として格納され得る。図6を参照して、デルタ602は、基礎をなすネットワークデータに対する変化によって影響が及ぼされるネットワークデータ606を格納する各データテーブルが更新されるように、ユーザーによって実行され基礎をなす(例えば、図5のデータテーブルに格納される)ネットワークデータに対する1つまたは複数の変化に基づいて生成され得る。言い換えれば、1つの情報Aに対するネットワークデータの変更が与えられれば、デルタ602は、情報Aを格納するか、または情報Aに依存している情報を格納するネットワークデータ606に対する任意のデータテーブルを更新するために生成され得る。
【0092】
いくつかの実施形態において、グラフ400の推移閉包を維持することは、全体の推移閉包を再計算することよりはむしろ、ネットワークデータ(例えば、ネットワークデータ606)の事前計算されたバージョンを修正することを含む。完全な再構築が、例えば、データベース障害またはいくつかの他の必要に基づいて要求される場合、推移閉包の再構築は、接続、レシピおよび原料のレコードに基づいて行われ得る。
【0093】
いくつかの実施形態において、グラフ400に対する推移閉包の決定は、複数のノード402の各々に対する直接アクセスベクトルを提供する。例えば、グラフ400に対する推移閉包は、所与のノードから到達され得る全てのノードのリストを提供できる:
ノード「X」が与えられると、「X」に対する閉包は、各オブジェクトが以下のように表されるオブジェクトのリストである:
1)「X」から到達され得るノード(「Y」)のID。
2)グラフ内の「X」から「Y」に達する全ての可能な道を記述する代替経路のセット。各代替経路は、「X」から「Y」に到達するまで横断されるであろうノードIDのリストを含み得る。
【0094】
所与のノードに対する直接アクセスベクトルは、関係データクエリにおいて、所与のノードとの経路の一部であるノードのサブセットを返すために選択され得る。言い換えれば、グラフ400を横断して所与のノードに対する経路を返すための要求は、所与のノードに対する直接アクセスベクトルと関係クエリとを用いて、関係データテーブル(例えば、ネットワークデータ606に対するデータスキーマ)から要求されるネットワークデータを効率的に取り出すことができる。実施形態は、経路識別および対応するデータ取り出しなどのネットワークソフトウェアサービスを提供するために、グラフ400を横断するための計算的に効率的な技法を提供する。
【0095】
いくつかの実施形態において、ステートレスマイクロサービスなどのソフトウェアサービスは、ノードのネットワークに対するデータにアクセスするか、当該データを更新するか、変更するか、削除するか、または取り出すために活用できる。ネットワークデータに対する更新または変更のためのデルタ処理は、このデータの効率的なアクセスを可能にするが、いくつかの組織は、システムにおける、取り扱いに慎重を要する情報または機密情報を格納し得る。それゆえ、セキュリティポリシーおよびネットワークデータの安全なフィルタリングは、ネットワークデータの管理をさらに改善するために提供され得る。
【0096】
図7は、例示的な実施形態に従う、ノードのネットワークに対するデータ処理の安全な管理のための機能ダイアグラムである。例えば、ダイアグラム700は、本明細書で開示されるノードのネットワークに対する安全なデータ処理を達成するためのソフトウェア機能を表すことができる。
【0097】
ダイアグラム700は、サービス702と、データプラットフォーム704と、セキュリティプラットフォーム706と、データストレージ708とを含む。データプラットフォーム704は、アプリケーションプログラミングインターフェース(「API:application programming interface」)710と、XML定義712と、論理対物理マッピング714とを含み得る。セキュリティプラットフォームは、データ編集716と、関係フィルタリング718と、信頼されるストア720と、XML構成722とを含み得る。いくつかの実施形態において、サービス702、データプラットフォーム704、セキュリティプラットフォーム706、およびデータストレージ708は、図3のサービス310、データプラットフォーム312、セキュリティプラットフォーム314、およびデータストレージ316と同様であり得る。
【0098】
いくつかの実施形態において、サービス702は、ノードのネットワークとユーザーが対話するために提供される複数のマイクロサービスを含み得る。例えば、登録された組織(例えば、ネットワークのエンティティ)に加入している(クライアント装置を操作する)ユーザーは、複数の公開されるAPIを用いて種々のマイクロサービスを呼び出し、ネットワークシステムとインターフェースし、ネットワークデータにアクセスできる。
【0099】
いくつかの実施形態において、サービス702は、データストレージ708に格納されるネットワークデータにアクセスするか、当該データを更新するか、変更するか、または削除するためにAPI710を用いてデータプラットフォーム704と通信する。XML定義は、データストレージ708から取り出し可能なデータを定義できる。さらに、論理対物理マッピング714は、物理レベル要求または命令(例えば、関係データクエリ)に論理データ要求または命令をマッピングするために用いられ得る。
【0100】
いくつかの実施形態において、物理レベル要求または命令(例えば、構造化クエリ言語(「SQL:structured query language」)命令またはクエリ)は、データストレージ708上でこれらの要求もしくは命令を実行する前に、格納されるセキュリティプロトコルに従うフィルタリングまたは増大のためにセキュリティプラットフォーム706に通信される。信頼されるストア720は、登録されたユーザーおよび組織に対するアクセス許可を格納するネットワークに対するセキュリティポリシーの不変のソースである。
【0101】
例えば、データストア708へのアクセスは、信頼されるストア720に格納されるアクセス許可に従って保護され得る。いくつかの実施形態において、信頼されるストア720は、第1の組織プロファイルデータを書き込むために用いられる組織キーを格納できる。この例において、第1の組織のユーザーは、プロフィールデータを彼ら自体の組織に書き込むことができるが、そのような書き込みがサービス702の1つまたは複数によって、またはネットワークシステムの他のコードによって要求される場合であっても、プロフィールデータを任意の他の組織に書き込むことを妨げられる。
【0102】
いくつかの実施形態において、データプラットフォーム704から伝達されるクエリまたは命令(例えば、SQL)は、信頼されるストア720に格納されるセキュリティポリシーに従って、関係フィルタ718によってフィルタリングまたは増大され得る。さらに、フィルタリングされるクエリまたは増大されるクエリによって取り出される任意のデータは、信頼されるストア720に格納されるセキュリティポリシーに従って、データ編集716によって編集され得る。いくつかの実施形態において、セキュリティプラットフォーム706は、XML構成722を用いて構成されることができ、XML構成722は、セキュリティプロトコル(例えば、アクセス許可、クエリフィルタリング、およびデータ編集)を定義する複数のXMLファイルを含み得る。
【0103】
実施形態は、ネットワークシステムとインターフェースするための利用可能な複数のステートレスマイクロサービスを含む。ある実施形態において、マイクロサービスは、独立して配備可能なサービスである。ある実施形態において、マイクロサービスという用語は、言語に依存しないAPIを用いて互いに通信する小さな独立したプロセスから複雑なアプリケーションが成るソフトウェアアーキテクチャ設計パターンを意図する。ある実施形態において、マイクロサービスは、高度に切り離されている小さなサービスであり、各々は、小さなタスクを行うことに集中し得る。ある実施形態において、マイクロサービスアーキテクチャスタイルは、単一のアプリケーションを一式の小さなサービスとして開発することへのアプローチであり、各々がそれ自体のプロセスで動作し、軽量のメカニズム(例えば、HTTPリソースAPI)と通信する。ある実施形態において、マイクロサービスは、同じ機能の全てまたは多くを行うモノリシックサービスと比較して置き換えやすい。その上、マイクロサービスの各々は、他のマイクロサービスに不都合に影響を及ぼすことなく更新され得る。対照的に、モノリシックサービスの一部分への更新は、モノリシックサービスの他の部分に不所望にまたは意図せず否定的に影響を与え得る。ある実施形態において、マイクロサービスは、それらの性能の周辺で有益に編成され得る。ある実施形態において、マイクロサービスのコレクションの各々に対する起動時間は、それらのマイクロサービスの全てのサービスを集合的に行う単一のアプリケーションに対する起動時間よりもはるかに短い。
【0104】
ある実施形態において、マイクロサービスアーキテクチャは、柔軟で独立して配備可能なソフトウェアシステムを構築するためのサービス指向アーキテクチャ(「SOA:service oriented architecture」)に対する専門化(すなわち、システム内のタスクの分離)および実現のアプローチを指す。マイクロサービスアーキテクチャにおけるサービスは、目標を満たすためにネットワークを超えて互いに通信するプロセスである。ある実施形態において、これらのサービスは、技術に依存しないプロトコルを使用する。ある実施形態において、サービスは、小さい粒度を有し、軽量のプロトコルを使用する。ある実施形態において、サービスは、独立して配備可能である。異なる小さなサービスにシステムの機能を分散させることによって、システムの一貫性が高められ、システムの結合が低下される。これは、システムを変更することと、いつでもシステムに機能および品質を追加することとを容易にする。それは、個々のサービスのアーキテクチャが絶え間ないリファクタリングを通じて現れることも可能にし、それゆえ、大規模なアップフロント設計に対する必要性を低減し、ソフトウェアを早くかつ絶え間なくリリースすることを可能にする。
【0105】
ある実施形態において、マイクロサービスアーキテクチャにおいて、アプリケーションは、サービスのコレクションとして開発され、各サービスは、それぞれのプロセスを実行し、通信するために軽量のプロトコル(例えば、各マイクロサービスに対して固有のAPI)を用いる。マイクロサービスアーキテクチャにおいて、ソフトウェアの個々のサービス/機能への分解は、提供されるサービスに応じて異なるレベルの粒度で行われ得る。サービスは、ランタイム構成要素/プロセスであり得る。各マイクロサービスは、他のモジュール/マイクロサービスと対話できる自己完結のモジュールであり得る。各マイクロサービスは、他のマイクロサービスにより連絡され得る不特定のユニバーサルポートを有し得る。ある実施形態において、マイクロサービスの不特定のユニバーサルポートは、マイクロサービスが(例えば、従来のハイパーテキスト転送プロトコル(「HTTP:Hypertext Transfer Protocol」)ポートとして)慣例によってエクスポーズし、同じサービス内の任意の他のモジュール/マイクロサービスがそれと対話することを可能にする標準的な通信チャネルである。ある実施形態において、マイクロサービスは、互いに独立しており、原子的であり、ステートレスである。マイクロサービスまたは任意の他の自己完結の機能モジュールは、一般的に「サービス」と称され得る。
【0106】
例えば、ステートレスマイクロサービスの1つは、IDCSマイクロサービスなど、ユーザーのアイデンティティを認証するために用いられるアイデンティティ管理サービスであり得る。例えば、組織に関連付けられたユーザーは、彼らの組織証明を提供することができ、IDCSマイクロサービスは、ユーザーのアイデンティティが、関連するシステムによって適切に認証されることを保証するために、ユーザーの組織のアイデンティティ管理システムを用いて認証を行うように構成され得る。以下の例は、IDCSマイクロサービスに対するAPIのサブセットを表す:
User GetCurrentUser
現在ログインしているユーザーによって識別される現在のユーザーを得る。
User GetUser(String emailAddress)
電子メールアドレスによって識別されるユーザーを取得する。それは、Username属性に対してIDCSを問い合わせる。
String CreateUser(User toCreate)
新たなユーザーを作成し、彼らをグループに追加する。グループ表示名は、アプリケーションのコンテキストパラメータ(web.xml)において設定可能である。ユーザーが追加されたIDCSグループは、ユーザーが作成される前に検索され得る。当該検索は、APIを呼び出し、設定されるパラメータに一致する表示名を有するグループを検索できる。一度発見されると、それは、(UIを通して見えない)グループIdを抽出し、そのグループIdを用いて、IDCSサーバに更新(PATCH)要求を作成し、新たに作成されるユーザーを追加できる。新たに生成されるユーザーID(GUID)は、オペレーションが成功した後に返される。
【0107】
いくつかの実施形態において、種々のマイクロサービスは、機能を実行するために互いにAPIに依存し得る。例えば、IDCSマイクロサービスは、例示的なAPIに対して上記の機能を達成するために、1つまたは複数の他のマイクロサービスによって提供される機能に依存し得る。さらに、IDCSマイクロサービスは、十分にユーザー認証を実現するために、組織のアイデンティティ管理システムから機能を要求できる。例えば、組織は、米国特許番号9,838,376に記載されているもののようなクラウドベースのユーザー認証システムを実現できる。
【0108】
別の例において、1つまたは複数のマイクロサービスは、データストレージ708からネットワークデータを作成するか(create)、読み取るか(read)、更新するか(update)、または削除する(delete)(「CRUD」)ために用いられる。例えば、種々のマイクロサービスは、マイクロサービスが表す「ビジネス機能」へのアクセスを提供するカスタムインターフェースまたはCRUDインターフェースをエクスポーズできる。いくつかの例において、マイクロサービスは、ビジネスエンティティ(例えば、会社プロファイル、招待のリスト、レシピなど)を表すことができる。CRUD動詞は、エンティティの対応するストリームが読み取られること、または操作されることを可能にできる。以下でさらに詳述されるように、そのようなサービスは、システムのセキュリティポリシーを伴うコンプライアンスを保証するために、セキュリティプラットフォーム706の機能にさらに依存し得る。以下の例は、1つまたは複数のCRUDマイクロサービスに対するAPIのサブセットを表す:
【数1】
CRUDベース
-基礎をなすデータレポジトリ上で標準CRUDを用いることを望むサービスの実現によって用いられるICRUDインターフェースの実現。
-CRUDベースは、データリポジトリidがCRUDオペレーションを指示することを期待する。
汎用CRUD
-データレポジトリ上でタイプ付けされていないCRUD動作のためのICRUDインターフェースの汎用的なデータの実現。サービスは、データリポジトリidがCRUDオペレーションを指示することを期待する。
CRUDファクトリ
-ICRUDインターフェースの汎用データの実現を構築するファクトリ。
【0109】
別の例において、組織マイクロサービスは、ノードのネットワークとともに登録された組織に対する情報を管理するために用いられ得る。例えば、各組織は、前述の通り、複数の属性を含むプロファイルを有し得る。組織マイクロサービスは、データストレージ708に格納される組織情報にアクセスするか、当該情報を作成するかまたは更新するためにCRUDマイクロサービスの1つまたは複数の機能を呼び出すことができる。例えば、組織マイクロサービスによって、以下の機能が提供され得る:
作成(Create)
-CRUDマイクロサービスに基づく標準的な作成
-データソースにおけるデータの制約に依存し、必須フィールドを強制する
読み取り(Read)
-CRUDマイクロサービスに基づく標準的な読み取り
更新(Update)
-CRUDマイクロサービスに基づく標準的な更新
-データソースにおけるデータの制約に依存し、必須フィールドを強制する
更新して作成(Update Create)
-CRUDマイクロサービスに基づく標準的な更新して作成
-データソースにおけるデータの制約に依存し、必須フィールドを強制する
【0110】
組織マイクロサービスは、組織特有の情報を見つけ出し、組織の製品を取り出すために、ユーザーによっても用いられ得る。以下の例は、組織マイクロサービスに対するAPIのサブセットを表す:
【数2】
【0111】
いくつかの実施形態において、IDynamicDataRecordSet(IDRS)は、データの可変ストリームが表現されることを可能にする汎用のデータ構造である。IDRSは、いくつかの部分を含み得る:
1)データストリームが表すレコードのリスト、例えば、エンティティごとに1つである。
2)各エンティティレコードは、属性ペアのセット、すなわち属性IDと属性値とを有し得る。
3)各エンティティレコード自体は、エンティティレコードのリストを含み得る。そのような特徴を含む例は、階層的な表現を可能にできる。
4)上記のデータと並行して、IDRSは、メタデータを含み得る。メタデータは、エンティティレコードにおいて利用可能な各属性に対するエントリを有し得る。このメタデータは、データの特性を記述する。例は、以下の通りである:
a.データベース上の物理データタイプ、例えばテキスト
b.ビジネスタイプ-例えばパスワード
c.可能な値の範囲
d.必須フラグ
e.有効化規則
f.デフォルト値
g.その他同種のもの
【0112】
IDRSを利用する実施形態は、少なくとも、データ構造が標準的な方法で、値と、レコードと、リストと、階層と、他の概念とを表すことができるので、データ構造の利益を活用できる。これらの表現は、例えば、含まれるメタデータのために、自己記述的であり得る。ネットワークデータの実施形態は、IDRS構造として表され得る。そのような実施形態は、少なくとも、IDRS構造がそれを導き理解する方法に関する指標を提供するため、一般的な処理ユニットまたはUI構成要素が異常なほど多くのデータを受け入れることを可能にする。
【0113】
別の例において、ユーザプロファイルマイクロサービスは、ノードのネットワークのユーザーに対するユーザプロファイルを管理するために用いられ得る。例えば、各ユーザーは、組織への所属などのユーザー特有の情報を含むプロファイルを有し得る。ユーザプロファイルマイクロサービスは、CRUDマイクロサービスの1つまたは複数の機能を呼び出して、データストレージ708において格納されるユーザプロファイル情報にアクセスするか、当該情報を作成するか、または更新できる。例えば、以下は、ユーザプロファイルマイクロサービスによって提供され得る機能のサブセットを表す:
作成(Create)
-CRUDマイクロサービスに基づく標準的な作成
読み取り(Read)
-CRUDマイクロサービスに基づく標準的な読み取り
更新(Update)
-CRUDマイクロサービスに基づく標準的な更新
更新して作成(Create Update)
-CRUDマイクロサービスに基づく標準的な更新して作成
【0114】
別の例において、原料マイクロサービスは、データストレージ708に格納される原料情報とインターフェースするために用いられ得る。原料マイクロサービスに対する機能のサブセットは、以下の通りである:
定義:
メタデータ定義
・原料
RdbmsStandardAttributesによって提供される
・原料 _CRUD
RdbmsStandardAttributesによって提供される
動的データ定義
・原料
Captionと、ParentProductIdと、OwnerOrgIdとを読み取り
・原料_CRUD
RdbmsStandardAttributesによって提供される
機能:
標準的なCRUDオペレーションは、以下のように実現される:
読み取り(Read)
原料データストリームを用いてCrudBaseの一部として実現される。
削除(Delete)
原料_CRUDデータストリームを用いて上書きされる。
CreateItemsEx(Long denerOrgId、Long parentProductId、IDynamicDataRecordSet items)は、ORSCN_ServiceExceptionを投げ、
itemsリストを通じて繰り返し処理を行い、OwnerOrgIdおよびparentProductIdを設定し、
原料_CRUDデータストリームを用いてリポジトリ作成(create)を呼び出す。
UpdateCreateEx(Long ownerOrgId、Long parentProductId、IDynamicDataRecord item)は、ORSCN_ServiceExceptionを投げ、
OwnerOrgIdおよびparentProductIdを設定し、
原料_CRUDデータストリームを用いてリポジトリ更新して作成(updateCreate)を呼び出す。
ReadIngredient(Long ingredientId)は、ORSCN_ServiceExceptionを投げ、
・原料エンティティ上で静的なreadIngredientを呼び出し、
○ingredientIdがヌルである場合、ヌルが返される。
○原料_CRUDデータストリームを用いてリポジトリ読み取り(read)を呼び出し、ingredientId上でフィルタリングする。
○原料が返される場合、IngredientSuppliersCaptionsデータストリームを用いてリポジトリ上で読み取り(read)を呼び出すことによって供給者情報を拡張し、supplierIds属性を置換する。
更新(Update)
実現されない場合、例外が投げられる。
作成(Create)
実現されない場合、例外が投げられる。
作成/更新(Create/Update)
実現されない場合、例外が投げられる。
【0115】
別の例において、同様のレシピマイクロサービスは、データストレージ708に格納されるレシピ情報とインターフェースするために用いられる。レシピマイクロサービスに対する機能のサブセットは、以下の通りである:
定義:
メタデータ定義
・レシピ
RdbmsStandardAttributesによって提供される
・レシピ_CRUD
RdbmsStandardAttributesによって提供される
動的データ定義
・レシピ
Captionと、ParentProductIdと、OwnerOrgIdとを読み取り
・レシピ_CRUD
RdbmsStandardAttributesによって提供される
機能:
標準的なCRUDオペレーションは、以下のように実現される:
読み取り(Read)
レシピデータストリームを用いてCrudBaseの一部として実現される。
削除(Delete)
レシピ_CRUDデータストリームを用いて上書きされる。
CreateItemsEx(Long ownerOrgId、Long parentProductId、IDynamicDataRecordSet items)は、ORSCN_ServiceExceptionを投げ、
itemsリストを通して繰り返し処理を実行し、OwnerOrgIdおよびparentProductIdを設定し、
レシピ_CRUDデータストリームを用いてリポジトリ作成(create)を呼び出す。
UpdateCreateEx(Long ownerOrgId、Long parentProductId、ID ynamicDataRecord item)は、ORSCN_ServiceExceptionを投げ、
OwnerOrgIdおよびparentProductIdを設定し、
レシピ_CRUDデータストリームを用いてリポジトリ作成して更新(updateCreate)を呼び出す。
ReadRecipe(Long recipeId)は、ORSCN_ServiceExceptionを投げる。
・レシピエンティティ上で静的なreadRecipeを呼び出し、
〇recipeIdがヌルである場合、ヌルが返される。
〇レシピ_CRUDデータストリームを用いてリポジトリ読み取り(read)を呼び出し、recipeId上でフィルタリングする。
〇レシピが返される場合、RecipeConsumersCaptionsデータストリームを用いてリポジトリ上で読み取り(read)を呼び出すことによって顧客情報を拡張し、consumerIds属性を置き換える。
〇レシピが返される場合、RecipeIngredientsCaptionsデータストリームを用いてリポジトリ上で読み取り(read)を呼び出すことによって原料情報を拡張し、ingredientIds属性を置換する。
更新(Update)
実現されない場合、例外が投げられる。
作成(Create)
実現されない場合、例外が投げられる。
作成/更新(Create/Update)
実現されない場合、例外が投げられる。
【0116】
前述されたように、例示的なマイクロサービスは、実施形態においてステートレスであり得、それゆえ、互いにそれらの対話を大いに単純化する。いくつかの実施形態において、セッション状態マイクロサービスは、アプリケーションセッション上で保持される分散オブジェクトモデル(「DOM:Distributed Object Model」)オブジェクトへのアクセスを可能にするために提供される。一例において、セッション状態マイクロサービスに対して単純化されるAPIは、以下のインターフェースである:それは、sessionDOM GetSessionDOM()であって、セッションDOMを提供するオブジェクトを返すことができる。
【0117】
ある実施形態において、DOMオブジェクトは、ネットワークにログインしたユーザーのセッションの状態を表すデータの多種多様なセットを収集するデータ構造であり得る。当該データは、頻繁にアクセスされるデータ(例えば、セキュリティ規則)であり得、そのデータは、要求に応じて蓄積されるか、またはログインしたユーザーに関する離散項目のセット(例えば、現在のユーザー、言語の選択、ユーザーの発信元、現在のネットワーク可視化レポートなど)である。マイクロサービスアーキテクチャに従って、実施形態は、DOMにおいてデータを読み取って更新するための単一のサービスを含む。このサービスは、データがDOMから要求されるとき、ネットワークアプリケーションロジックによって用いられ得る。いくつかの実施形態において、DOMにおけるデータは、セッション状態に物理的にアンカーされ得る(例えば、アプリケーションサーバによって維持される)。
【0118】
本明細書で説明されるように、ネットワークに対するドリップフィードデルタ処理は、所与の組織/エンティティ/ノード(例えば、所与のノードに対する直接アクセスベクトル)に対するネットワーク構成を維持し、当該構成は、ノードのネットワークを表すグラフを横断する(例えば、所与のノードを含む既存の又は潜在的な経路/供給チェーンを識別する)ためにデータストレージ708に問い合わせるために容易に用いられ得る。ネットワークを横断するために用いられる例示的なネットワーク横断マイクロサービスは、組織(例えば、ネットワークにおけるエンティティまたはノード)に対する経路を返すために提供され得る。例示的なネットワーク横断マイクロサービスに対する機能のサブセットは、以下の通りである:
データレイアウト
接続当たり1行の単純な4列テーブル(接続ID(connectionId)、接続先、接続元、タイプ)。逆の接続は格納されない。
タイプc=消費者、s=供給者であって、XおよびYが与えられると、
X c Y(XはYを消費する)、
および
Y s X(YはXに供給する)
は、同等である。
オブジェクト
ネットワーク
IDDRS<Organisations> organisations
List<Connection> connections
接続
Long formNodeId
Long toNodeId
Enum connectionType
API
public Network readNetwork(Int startOrganisationId, int depth)
【0119】
いくつかの実施形態において、ネットワーク横断マイクロサービスは、要求するユーザーの組織に対してネットワーク経路(例えば、サプライチェーン)を返すことができる。例えば、返されるデータは、これらの組織を接続する関係の性質(例えば、取引相手、供給者、顧客など)に加えて、(例えば、IDにより識別される)組織のペアのような経路を表すことができる。いくつかの実施形態において、このサービスは、組織のサプラインチェーンを表示し検索するために用いられ得る。
【0120】
(このサービスによって返される)サプライチェーンを表す組織は、接続と、それらの間で取引される、商品または製品とによって定義され得る。いくつかの実施形態において、接続されるノードのリストを届けるために、マイクロサービスは、受け入れられる接続と、取引される製品とに関する情報を利用するが、いくつかの実施形態において、この情報は用いられるが返されない。例えば、いくつかの実施形態において、サプライチェーンを表す組織のセットが結果として返されるが、結果のセットを決定するために用いられる上記の追加の情報は返されない。
【0121】
図8~14を参照してさらに詳述されるように、可視化は、ネットワークシステムのユーザーに表示されることができ、その可視化は、いくつかの例において、サプライチェーンを表すノード/エンティティの経路の可視化など、ネットワークシステムのセキュリティポリシーを用いて保護されるデータの可視化を含み得る。例示的な可視化マイクロサービスは、提供されることができ、ネットワークシステムに対する可視化を作成、編集、または更新するために用いられ得る。可視化マイクロサービスに対する機能のサブセットは、以下の通りである:
機能:
・作成(Create)
○全ての要求される特性が提供されることを保証する。
○新しい可視化を作成する。
・読み取り(Read)
○現在の組織に対する現在の可視化を読み取る。このようにして可視化を取り出すことは、可視化を作成するのに必要とされる全てから実際のデータを引いたものを返す。これは、全てのネットワークデータを読み取ることを必要とすることなく、可視化の仕様を取り出し編集するために用いられ得る。
・可視化データ読み取り(Read Visualisation Data)
○このオペレーションは、表示するUIに対して必要とされる実際のネットワークデータを含む可視化を読み取る。
・更新(Update)
○提供されるデータを用いて可視化を更新する。
・削除(Delete)
○DOMから可視化を除去する。
可視化は、以下のように定義され得る:
作成(Creation)
可視化を作成することは、必須の属性が提供されることを要求し、そうでなければ例外が投げられる。一旦作成されると、可視化は編集され得る。可視化データは、それが表示される前に接続サービスを介して調べられる。このとき、オプションおよびフィルタが考慮される。
編集(Editing)
IDを除いて、任意の属性は編集され得る。可視化属性を変更することは、変更(例えば、オプションまたはフィルタの変更)が効果を生ずるために、データが再び読み取られることを要求し得る。
【0122】
再び図7を参照すると、サービス702、データプラットフォーム704、セキュリティプラットフォーム706、およびデータストレージ708は、ネットワークにおけるエンティティ/ノード/組織間での情報共有を可能にするように構成され得る。ネットワークシステムは、このデータのいくつかが機密であるか又は取り扱いに慎重を要する場合でさえ、プライベートデータのサイロよりもむしろデータの流動的な共有に基づいている。したがって、ネットワークデータは、データへのアクセスを要求するノード/エンティティ/組織と、要求されるデータレコードを所有するノード/エンティティ/組織との間の関係に基づく共有規則に従って、ノード/エンティティ/組織の間で共有され得る。
【0123】
所与のノード/エンティティ/組織に対する例示的な共有規則は、以下の通りである:所与のエンティティによって所有されるデータレコード(例えば、テーブルの行)は、商品または製品の既存のフローが、所与のエンティティ(例えば、当該エンティティが取引相手であるか、またはサプライチェーン経路上にある)と共に存在する任意のエンティティへのアクセスを可能にし、そのような商品または製品の既存のフローを有さないエンティティへのアクセスを可能にしない。言い換えれば、所与のエンティティは、非取引相手がアクセスできない特定のデータに取引相手がアクセスすることを可能にし得る。同じレコード(例えば、行)内のフィールドデータ(例えば、列)の異なるグループに対して、異なるネットワーク共有規則が定義され得る。いくつかの実施形態において、共有規則は、ネットワークシステムの別個の各機能エリアに対して個々のユーザーに関して定義され得る。
【0124】
本明細書において詳述されるように、ノードネットワークのエンティティは、組織であり得、データストレージ708は、組織に対するプロファイル情報を格納できる。例えば、プロファイルは、登録された組織に対して格納されることができ、名称と、住所または場所(例えば、緯度、経度、母国、および任意の他の好適な場所情報)と、当該組織に関連付けられたブランドと、ホームページユニフォームリソースロケータ(「URL」)と、当該組織に対するソーシャルメディアアカウントと、これらの組み合わせと、他の好適な情報との1つまたは複数を含み得る。
【0125】
ある実施形態において、ノードのネットワークは、供給者、顧客および/または仲介者のネットワークを表すことができる。そのような例において、組織プロファイルは、販売される製品と、購入される製品と、第三者団体からの証明書と、第三者団体からの満了した証明書と、(例えば、ネットワークにおける他のエンティティの中からの)直接的な供給者と、(例えば、ネットワークにおける他のエンティティの中からの)直接的な顧客と、商品または製品に対する手順(例えばレシピ)と、商品または製品の部分(例えば原料)と、これらの組み合わせと、商品もしくは商品の購入者または販売者に対する任意の他の好適な情報との1つまたは複数も含み得る。
【0126】
ネットワークノードに対するソーシャル態様(例えば、投稿、メッセージなど)を含む実施形態において、システムは、メッセージ、投稿、議論グループ、および他のソーシャル対話のためのデータなどの、エンティティに対するソーシャルデータを管理できる。加えて、エンティティは、エンティティ/ノード間の接続、エンティティ/ノードとの経路(例えば、直接アクセスベクトル)、およびネットワークにおけるエンティティ/ノードの指向に関連する他の好適な情報など、ネットワークにおけるそれらの指向に関連するネットワークデータをさらに含む。
【0127】
いくつかの実施形態において、エンティティは、エンティティによって所有される個々のデータ(例えば、組織プロファイル、ソーシャルネットワークデータ、ネットワーク指向データなどに関連する異なるデータ項目)に対して特有の共有規則を定義できる。例えば、組織のプロフィールの一部は、(例えば、任意の人に利用可能な)パブリック共有規則を有することができ、一方、証明書または満了した証明書は、直接的な取引関係の(例えば、取引相手にのみ利用可能な)共有規則を有し得る。例示的な共有規則は、以下の通りである:
・パブリック-データは、インターネット上の任意の人に利用可能である。
・ネットワーク-データは、登録されたユーザー/組織の任意の人に利用可能である。システムにログインできるユーザアカウントを有する任意の者。
・直接的な取引接続-ソース組織が直接的な取引関係を有する組織内のユーザーにデータは利用可能である。彼らは、供給、消費、または供給および消費の両方のいずれかを行い、ソース組織とともに直接に消費を行う。
・顧客接続-データは、ソース組織の顧客である組織内のユーザーに利用可能である。
・供給者接続-データは、ソース組織の供給者である組織内のユーザーに利用可能である。
・潜在的な接続-(本明細書に詳述されるように)組織により所有される、原料とレシピとの間のマッチに基づいてソース組織が潜在的な接続(例えば、商品または製品の潜在的なフロー)を有する組織内のユーザーに、データは利用可能である。
・特定の組織-データは、組織の特定のリスト内から任意の人に利用可能である。組織は、ネットワーク上の全ての組織から選択され得る。
・プライベート-データは、データを所有する組織内のユーザーにのみ利用可能である。
【0128】
いくつかの実施形態において、セキュリティプラットフォーム706は、各ソースエンティティに対する(例えば、アクセス許可として格納される)これらの共有規則と、ソースエンティティとソースエンティティのデータを要求するユーザーとの間の関係とに基づいてアクセス許可決定を行う。エンティティ/組織間の関係は、ネットワークデータとして格納され得る。いくつかの例において、この関係は、どの招待が送信され受け入れられて取引関係を示したかによって定義され得る。例えば、顧客「X」は、それらに供給者として組織「Y」が接続することを要求し得る。この招待が受け入れられる場合、供給者「Y」は、「供給者にのみ見ることができる」と所有者「X」がマークしたデータに対する可視性を有する。
【0129】
いくつかの実施形態において、データ共有規則を解決し、ソースエンティティによって所有されるデータを取り出すためのユーザーの許可があるかどうかを決定すると、関係フィルタリング718は、データストレージ708からデータを取り出すために、「キー」を用いて、認証されるユーザーの代わりに(サービス702およびデータプラットフォーム704を介して)提出されるデータクエリ(例えば、SQLクエリ)を増大させる。次いで、増大されるクエリは、要求されるデータを取り出すためにデータストレージ708において実行され得る。ユーザーが、要求されるデータにアクセスすることを許可されないとデータストア718が決定するいくつかの実施形態において、当該データに対して関連する「キー」はクエリに追加されず、それゆえ、クエリがデータストア718において行われるとき、データは返されないであろう。
【0130】
いくつかの実施形態において、セキュリティプラットフォーム706は、「現在のログイン組織ID」にアクセスする。これは、認証されるユーザーに関連付けられた組織に基づいて、ログインプロセスによって、信頼されるストア720内に不変に格納され得る。取り扱いに慎重を要する情報(例えば、上記のセキュリティポリシー/共有規則のうちの1つによって保護される情報)を含むデータストレージ708内のテーブルは、レコードを「所有する」と考えられるエンティティ/組織の組織IDによってそれらのレコードにキーをかけることができる。上記で開示したように、各エンティティ/組織化は、個々の組織へのアクセス、またはそれらに関連する「組織のクラス」へのアクセスを、特定の共有規則/アクセス許可(例えば、顧客、供給者など)に基づいて特定の方法で認めることができる。
【0131】
いくつかの実施形態において、データストレージ708においてネットワークデータを格納するテーブルは、関連した「セキュリティ記述子」を有するか、または(行がアクセス可能である場合)データへのアクセスを要求する組織がデータの行の所有者にどのように関連しなければならないかを示す規則のXML表現を有する。例えば、XMLは、関連したデータテーブルのレコードに対する共有規則/アクセス許可を定義できる。セキュリティプラットフォーム706は、XML関係規則と「現在のログイン組織ID」とを用いて、組織のデータがアクセスされ得る可能性のある他の組織のセットを決定する。
【0132】
いくつかの実施形態において、関係フィルタリング718は、SQLにおいて(例えば、データプラットフォーム704によって)既に特定される任意のフィルタリングに追加的なWHERE節の修飾子が追加されるように、SQLアクセス文を修正する。この追加的な制限子は、(例えば、現在のログイン組織IDとXMLセキュリティ記述子とに従う)有効な組織IDのセットを列挙でき、IDの1つは、レコードがマッチされクエリの範囲内に含まれるように、データの行の組織キーにおいて存在しなければならない。
【0133】
いくつかの実施形態において、SQL結果が受け取られた後であるが、それが呼び出しアプリケーションに返される前に、データ編集は、データ編集716によって行われる。例えば、WHEREキー修正プロセスは、SQLによってアクセスされる行を制限しているだろうが、これらの行の種々のフィールドは、セキュリティプロトコルを考慮することなく読み取られるだろう。いくつかの例において、データ所有者は、レコードへのアクセスを許可するが、レコード内の全てのフィールドへのアクセスを許可しないだろう。データ編集716は、そのようなシナリオに対処して列レベルデータを編集するために用いられ得る。
【0134】
いくつかの実施形態において、返される各レコードは、データ所有者によって現在の組織にアクセス可能であると承認されない任意のフィールドデータを除去するために、データ編集716によって後処理される。いくつかの実施形態において、行セット(例えば、返されるデータセット)は、キーフィルタリングおよび編集の後にのみ返されるだろう。
【0135】
一例として、要求する組織/アプリケーション/マイクロサービスは、制限されない「*」SQL where節を用いてテーブルを読み取ることを試みることができる。次いで、セキュリティプラットフォーム706は、信頼されるストア720からの「現在のログイン中の組織ID」を用いて要求者を識別できる。次いで、セキュリティプラットフォーム706は、この組織へのアクセスを許可した他の組織のセットを計算できる。関係フィルタリング718は、追加的なWHERE修飾子をSQLに追加して、このアクセスを許可しない組織によって所有されるデータをフィルタリングして除くことができる。それゆえ、そのような非制限SQL文からの取り出しは、追加されるWHERE修飾子のために、はるかに安全なレコードセットを返すことになるだろう。
【0136】
いくつかの実施形態において、次いで、データ編集716は、取り出されるデータを分析して、要求者が閲覧することをレコードの所有する組織が許可していなかった任意のフィールドを除去できる。例えば、各レコードに対して、セキュリティプロトコル(例えば、アクセス許可/データ共有規則/セキュリティ記述子ファイル)は、要求する組織がレコードの所有者に関連して有する列レベルアクセスを決定するためにアクセスされ得る。要求する組織がデータへの列レベルアクセスを有さないと決定される場合、当該データは、結果セットから除去され得る。次いで、関係フィルタリングされ編集されるデータは、要求する組織に返され得る。いくつかの実施形態において、これは、レコードの空のセットであり得る。
【0137】
以下は、上述されたセキュリティ機能を行うためにセキュリティプラットフォーム706によって用いられるアクセス許可を定義する例示的なXMLを表す:
【数3】
【0138】
いくつかの実施形態において、ユーザベースの機能的セキュリティルールは、ソース組織内で「誰」が「何」をできるかを制御する。彼らは、基礎をなすソース組織データに対して誰が何にアクセスできるかも制御できる。セキュリティテンプレートは、テンプレートが作成される時点で何の機能的セキュリティをユーザーが有するかを定義するために用いられる。管理者(十分な特権を有するユーザ)は、それがその組織内の所与のユーザーに対して許可されるか否か、またはそのユーザーから無効化されるか否かを、機能的セキュリティ設定によって制御できる。利用可能なセキュリティテンプレート、およびそれらの関連する特権は、以下の表1および表2において示される。例えば、3つのテンプレートが考慮され得る:管理者(Admin)-ユーザーと接続とそれらの組織に属する全てのデータとを管理することを含めて、組織を十分に管理することが可能であるユーザー;ユーザー編集者(User Editor)-ソーシャル投稿を行うこと、企業プロファイルを管理することなどによって寄与できるが、ユーザーおよび接続などを管理することなどの、セキュリティに関連する操作を行うことが可能でないユーザー;ユーザー読者(User Reader)-情報を閲覧し分析することのみが可能なユーザー。彼らは、いかなる変更も行うことができない。一般に、このユーザーは読み取り専用のユーザーである。
【表1】
【表2】
【0139】
いくつかの実施形態において、ソーシャルネットワークから取り出されるデータは、種々の機能的な目的に用いられ得る。例えば、経路(例えば、サプライチェーン)における組織の指向を示す1つまたは複数の可視化が生成され得る。図8は、例示的な実施形態に従う、ノードのネットワークのビューを構成するための例示的なグラフィカルユーザーインターフェースを示す。例えば、組織内のユーザーは、サプライチェーンの可視化を表示するためのダッシュボード800を表示するように構成されるクライアント装置を操作し得る。可視化を生成するために取り出されるネットワークデータは、開示される1つまたは複数の機能を活用できる。例えば、可視化は、格納されるネットワークデータの事前計算バージョンから所与のノードに対して取り出されるベクトル(例えば、直接アクセスベクトル)に基づいて生成され得る。取り出されるネットワークデータは、所与のノードに関連してストレージセキュリティポリシーを管理する、関係フィルタリングとデータ編集機能とを用いて保護され得る。
【0140】
いくつかの実施形態において、ダッシュボード800は、フィルタオプション802と、構成オプション804と、有効化806と、深さ808と、可視化オプション810と、属性812とを含むユーザーインターフェース要素(例えば、ウィジェット)を含み得る。例えば、フィルタオプション802は、組織データが可視化によって表示されるためのフィルタのタイプを決定するために用いられ得る。図示されるオプションは、国フィルタと、組織名フィルタと、購入される製品フィルタと、販売される製品フィルタと、満了した証明書フィルタと、原材料フィルタ(例えば、原料)と、製品ラインナップフィルタとを含む。
【0141】
図8は、「満了した証明書」が、選択されるフィルタである例を示す。構成オプション804は、選択されるフィルタの構成を可能にできる。示される実施形態において、フィルタは、「0」より多い満了した証明書を有するサプライチェーンにおけるエンティティを表示するように構成される。有効化806は、ユーザーがフィルタを有効または無効にすることを可能にする。
【0142】
深さ808は、ユーザーがサプライチェーンの深さを選択できるようにする(例えば、選択される深さ以下の距離を有するノード/エンティティ/組織を表示できるようする。ここで、距離は、ネットワークにおけるソースのノード/エンティティ/組織から離れるためのジャンプまたはホップの数である)。可視化オプション810は、ユーザーが、円グラフ、棒グラフ、ネットワークグラフ、テーブル、または世界地図などの可視化タイプを選択することを可能にする。図9は、例示的な実施形態に従う、ネットワークデータの円グラフの可視化を示す。図10は、例示的な実施形態に従う、ネットワークデータのテーブルの可視化を示す。図11は、例示的な実施形態に従う、ネットワークデータのネットワークグラフの可視化を示す。図12~14は、例示的な実施形態に従う、サプライチェーンデータの世界ビューの可視化を示す。
【0143】
データ属性812は、いくつかの可視化によって用いられるデータ属性をユーザーが選択することを可能にする。例えば、図9の円グラフ900は、国ごとに区分される円グラフを示す。ユーザーがサプライチェーンの可視化に対してデータをより広く眺めることを望む場合、図10のデータテーブル1000は、ネットワークデータのより大きな断面を提供する。図11のネットワークグラフ1100は、サプライチェーンに含まれる種々のリンクを表示する、ネットワークノードと、これらのネットワークノード間の接続との可視化を表す。
【0144】
図12の世界ビューの可視化1200は、ワールドマップ上に重ねられるサプライチェーンの接続を表す。この例において、ユーザーは、サプライチェーンにおける種々の地域リスクを示される。ユーザーは、サプライチェーンにおける点の1つを選択する(例えば、クリックまたはタッピングする)ことによって、サプライチェーン内のリンクに関するより粒度の高い情報をさらに要求できる。図13の世界ビューの可視化1300は、サプライチェーンにおけるリンクの選択時に表示される、ウィジェット1302と、概要1304と、指標1306とを含む。
【0145】
ウィジェット1302は、表示のための組織情報を選択するために用いられ得る。概要1304は、満了した証明書の数を含む、選択される組織の概要(例えば、表される可視化を生成するために用いられるフィルタ)を提供する。指標1306は、可視化を生成するために用いられる特定のフィルタに対する条件を示すことができる。示される実施形態において、選択される組織が満了した証明書を有しているため、指標1306は、赤いエクスクラメーションポイントを示す。いくつかの例において、組織が満了した証明書を有さない場合、緑のチェックが表示され得る。図4の可視化1400は、同様に、サプライチェーンにおける異なる組織の概要を表示する、ウィジェット1402と概要1404とを含む。
【0146】
開示される種々の実施形態は、従来のデータ管理とセキュリティアプリケーションとに勝る多くの利点を有する。例えば、ドリップフィードデルタ処理とネットワークデータの事前計算されたバージョンとを含む実施形態は、ノードの大きなグラフを横断することに関連付けられた計算の複雑さを実質的に減少させることができる。少なくとも、生成される直接アクセスベクトルは、関係データベースに問い合わせることに対する効率的なソリューションを提供し、ネットワークデータを迅速かつ正確に取り出す。そのような効率性および高いアクセス可能性は、本明細書に開示される可視化などの、ネットワークシステムからのロバストなソフトウェアサービスの提供を可能にする。従来のデータ管理システムによって採られる、より煩雑で、より非効率的で、計算的に困難なアプローチは、これらの利益を達成し損なう。
【0147】
例えば、いくつかのデータスキーマの実施形態は、接続グラフネットワーク上で質問を表し回答するように設計される。しかしながら、これらの多くは、頻繁な読み取りおよび時おりの更新に対して最適化される。種々の実施形態において、ネットワークは、時々、新しい関係接続として頻繁な更新を受けることができ、取引される商品または製品は、参加している組織にわたって追加/更新される。開示されるドリップフィードデルタ処理は、そのような環境において技術的な利点を提供する。
【0148】
別の代替案は、関係ネットワーク接続テーブルの単純なオンデマンドの再帰であり得る。そのような単純なシステムを活用する従来のアプローチは、頻繁な更新を処理できるが、格納されるデータによって表されるグラフを横断することは、計算上困難であり得る。ドリップフィードデルタ処理ソリューション、およびネットワークデータの事前計算されたバージョンは、頻繁な更新が存在しても効率的な横断を提供でき、この効率的な横断は、これらの従来の技法に勝って性能の利点を生み出す。
【0149】
加えて、信頼されるストアとデータセキュリティポリシーとを含む実施形態は、サプライチェーンにおける異なる組織間で、またはいくつかの例において、サプライチェーンに追加され得る潜在的な組織間で、プライベートデータ、取り扱いに慎重を要するデータ、または機密データをノードのネットワークが格納し共有できることを保証する。特に、セキュリティサブシステムを介してデータ要求を流すこと、ならびにセキュリティサブシステムと信頼されるストアとによって達成される、関係フィルタリングおよびデータ編集は、いかなるユーザーまたは組織も、彼らが閲覧、更新または削除する許可を有さないデータへアクセスできないことを保証する。
【0150】
例えば、従来のロールベースのセキュリティメカニズムは、しばしば、アクセスを受信するユーザーまたはユーザグループの固定リストを用いてデータアクセスが認められることを前提とする。実施形態は、「データ所有者とデータ消費者との関係」に基づいてアクセスを提供する。例えば、ある1つのデータへのアクセスが組織の「顧客」に対して認められるとき、取引関係が更新されるにつれて、「顧客」カテゴリに分類される組織は、流動的に変化し得るので、その1つのデータへのアクセスが認められる組織は、流動的に変化し得る。実施形態は、そのような変化が存在する場合におけるデータ取り出しを効率的かつ効果的に保護できる許可ポリシーを提供する。加えて、旧来のセキュリティも、しばしばレコードキーベースである。実施形態は、レコードの各フィールド上で独立してセキュリティが設定される、より細かい粒度を含む。
【0151】
図15は、例示的な実施形態に従う、デルタ処理を用いてノードのネットワークを管理するための例示的な方法を示す。ある実施形態において、図15および図16の以下の機能は、メモリまたは他のコンピュータ読み取り可能な媒体または有形の媒体に格納されるソフトウェアによって実現され、プロセッサによって実行される。他の実施形態において、各機能は、(例えば、特定用途向け集積回路(「ASIC:application specific integrated circuit」)、プログラマブルゲートアレイ(「PGA:programmable gate array」)、フィールドプログラマブルゲートアレイ(「FPGA:field programmable gate array」)などの使用を通じて)ハードウェアにより、またはハードウェアとソフトウェアとの任意の組み合わせによって行われ得る。
【0152】
1502において、複数の接続されるノードを有するネットワークは格納され、ノードがネットワークのエンティティを表す。例えば、接続されるノードのネットワークは、関係データテーブル上にマッピングされ得る。実施形態において、ネットワークは、有向グラフによって表されるソーシャルネットワークであり得る。
【0153】
1504において、複数のノード間の接続に対する更新を示す、ネットワークに対する1つまたは複数のデルタが受信され得る。例えば、ネットワーク情報に対する更新は、ネットワークのエンティティに関連付けられ認証されるユーザーから受信されることができ、1つまたは複数のデルタは、更新に基づいて生成され得る。1506において、デルタは、キューに追加され得る。1508において、ネットワークのノード間の接続は、キューからのデルタを用いて更新され得る。例えば、キューは、FIFOキューであり得、キューの先頭のデルタは、ネットワークを更新するために処理され得る。
【0154】
1510において、ネットワークは、所与のノードに対してベクトルを生成するためにノード間の接続を更新した後に処理され得る。例えば、ネットワークに対する推移閉包は、ネットワークを更新した後に決定されることができ、推移閉包は、ネットワークにおける各ノードに対して直接アクセスベクトルを生成するために用いられ得る。
【0155】
いくつかの実施形態において、ドリップフィードデルタ処理は、ネットワークデータの事前計算されたバージョンを1セットの関係データテーブルに格納することを含み得る。この事前計算されたバージョンは、例えばデータテーブルに格納される事前計算されたネットワークデータに基づいて、ネットワークの効率的な横断を提供できる。いくつかの実施形態において、ネットワークを処理することは、ネットワークデータの事前計算されたバージョンを格納するデータテーブルのうちの1つまたは複数におけるデータを更新することを含み得る。いくつかの実施形態において、ネットワークデータの事前計算されたバージョンは、データテーブルに問い合わせることによって取り出され得るネットワークのノードに対する直接アクセスベクトルを提供する。直接アクセスベクトルは、所与のノードとの接続を含む接続されるノードと、所与のノードおよび少なくとも1つの接続されるノードを含む経路の一部である間接的なノードとを示すことができる。
【0156】
1512において、所与のノードに対する1つまたは複数の経路は、生成されるベクトルに基づいて識別され得る。例えば、関係データテーブルは、所与のノードに対する経路情報を返すために直接アクセスベクトルを用いて問い合わされ得る。実施形態において、ネットワークのノード間のリンクを更新すると、所与のノードを含む識別される経路が作成され得る。
【0157】
実施形態において、1つまたは複数の部分と、複数の部分を含む1つまたは複数の手順とがネットワークのノードに対して定義されることができ、ネットワークの2つのノード間の接続は、2つのノードのうちの第2のノードに対して定義される部分にマッチする、2つのノードのうちの第1のノードに対して定義される手順の間の対応に基づき得る。例えば、手順はレシピであり得、部分は、レシピに対する原料であり得る。実施形態において、エンティティは、供給者および顧客を含むことができ、接続は、エンティティ間のトランザクションを表すことができる。例えば、識別される経路は、少なくとも1つの商品または製品に対してサプライチェーンを表すことができる。実施形態において、推移閉包は、接続されるノードに対する手順と部分との間の対応に基づく、ネットワークの接続を用いて決定され得る。
【0158】
図16は、例示的な実施形態に従う、ノードのネットワークに対する安全なデータ管理を提供するための例示的な方法を示す。1602において、複数の接続されるノードを含むネットワークが格納され、ノードは、ネットワークのエンティティを表す。例えば、接続されるノードのネットワークは、関係データテーブル上にマッピングされ得る。実施形態において、ネットワークは、有向グラフによって表されるソーシャルネットワークであり得る。
【0159】
1604において、要求は、ネットワークの第2のノードに関するデータを取り出すために第1のノードから受信され得る。例えば、要求は、第1のノードによって表されるエンティティの承認されるユーザーから受信され得る。1606において、クエリは、要求されるデータを取り出すために生成され得る。
【0160】
1608において、クエリは、信頼されるストアに格納される第1のノードに対する許可に基づいてフィルタリングされ得る。例えば、クエリは、信頼されるストアに格納される第2のノードに関連している第1のノードに対する許可に基づいて、要求されるデータを取り出すために用いられるキーで増大され得る。
【0161】
いくつかの実施形態において、関係データテーブルの1つまたは複数へのアクセスを定義する許可ファイルが格納され、アクセス許可は、レコードを所有する所有者ノードと、所有者ノードおよびアクセスを要求するノードの間の関係とに基づいて、関係データテーブルにおけるレコードごとに定義される。信頼されるストアは、ネットワークのノードに対して複数のキーを不変に格納できる。いくつかの実施形態において、信頼されるストアに格納される第1のノードに対する許可に基づいてクエリをフィルタリングすることは、信頼されるストアからキーのリストを取り出すために許可ファイルにアクセスすることを含み、キーのリストは、第1のノードとノードのサブセットとの間の関係に従う第1のノードによるアクセスに対して許可されるノードのサブセットに対するものである。クエリを増大させることは、キーのリストをクエリに追加することを含むことができ、キーのリストが、保護されるレコードに対応するキーを含むとき、クエリによって要求される関係データテーブル内の保護されるレコードは取り出される。
【0162】
実施形態において、認証されるユーザーは、第1のノードに接続されるノードに対して少なくともいくつかのデータを閲覧するための許可を有し、第1のノードは、第2のノードに接続される。実施形態において、認証されるユーザーは、第1のノードとの経路を備えるノードに対して少なくともいくつかのデータを閲覧するための許可を有し、第1のノードは、第2のノードとの経路上にある。
【0163】
1610において、フィールドは、フィルタリングされるクエリの結果から、第1のノードに対する許可に基づいて編集され得る。例えば、許可ファイルは、返されるレコードの所有者に関連して第1のノードが何のアクセス許可を有するかを決定するためにアクセスされ得る。第1のノードがアクセスできないと決定された任意の列レベルデータは、クエリ結果を返す前に削除され得る。1612において、編集された結果は、第1のノードに提供され得る。
【0164】
実施形態において、ノードによって表されるエンティティは、供給者および顧客であり得、ノード間の経路は、1つまたは複数の製品に対してサプライチェーンネットワークを表し得る。例えば、認証されるユーザーは、第1のノードを含むか、第1のノードへの供給者を含むか、または第1のノードの顧客を含むサプライチェーンネットワークにアクセスするための許可を有し得る。
【0165】
実施形態は、ノードのネットワークに対するデータ処理を管理する。例示的なネットワークは、ノード間に複数の接続を有する複数のノードを含み得る。いくつかの実施形態において、ネットワークは、種々の程度の情報共有を有するソーシャルネットワークであり得る。時々、以前には接続されていなかった2つのノード間で新しい接続が生成され得るか、または以前には接続されていたノード間で接続が切断され得る。1つまたは複数の経路は、ネットワークの現在の構成(例えば、ノード間の現在の接続)に基づいて識別され得る。例えば、経路は、第1のノードにおいて開始し、第5のノードで終了する前に、第2、第3、および第4のノードを通って進行し得る。そのような識別される経路は、パターン、傾向もしくはリスクを識別すること、予測を行うこと、または他の分析目的(すなわち、ネットワーク内のノードと特定の実施形態とに依存する)のために有用であり得る。
【0166】
しかしながら、これらのネットワークの動的な性質は、リスクと計算の課題とをもたらす。例えば、ソーシャルネットワークは、しばしば変化し、新しいノード接続を構築し、古いノードを切り離している。それゆえ、ノード間の経路の識別は、計算上煩雑であり得る。本明細書においてさらに詳述されるように、実施形態は、ドリップフィードデルタ処理を活用して、ノード接続に対して動的な更新機能を維持しながら計算効率を達成するネットワークを管理する。
【0167】
いくつかの実施形態において、ネットワークのエンティティ(例えば、ノード)は、システムと対話する承認されるユーザーを有し得る。例えば、承認されるユーザーは、エンティティに対するプロファイルを編集し、ネットワークの他のエンティティへメッセージを送信し、他のエンティティとの関係を変更し、ネットワークのエンティティに関連するデータを取り出し、ネットワーク分析と他の好適な機能とを行うことができる。しかしながら、いくつかの実施形態において、1つまたは複数のエンティティに対する機密情報または取り扱いに慎重を要する情報は、ネットワークに関連して(例えば、データストアにおいて)格納され得る。例えば、ソーシャルネットワークにおいて、システムは、他のエンティティのサブセットと共有され得るが、残りのエンティティと共有され得ない、第1のエンティティに対して取り扱いに慎重を要する情報を格納し得る。他の例において、取り扱いに慎重を要する情報は、プライベートにマークされてもよく、それゆえ、ソーシャルネットワークの任意の他のエンティティと共有されなくてもよい。
【0168】
いくつかの実施形態において、システムは、ネットワークのエンティティに対する安全なデータ取り出しを提供できる。例えば、セキュリティサブシステムは、何の情報をユーザーが取り出すことができるかを決定する承認されるユーザーに対する1つまたは複数の許可を維持できる。セキュリティサブシステムに基づいて、データ取り出し要求は、承認されるユーザーが確立される許可に従った情報のみを提供されることを保証するためにフィルタリングされ得る。例えば、関係フィルタリングは、データストア上で検索を行う前に許可に従って、生成されるクエリをフィルタリングために用いられ得る。別の例において、データ編集は、承認されるユーザーにデータを提供する前に、データを編集するための許可に従って、クエリによって取り出されるデータ上で行われ得る。セキュリティサブシステム、関係フィルタリング、およびデータ編集は、ネットワークのエンティティに対して、取り扱いに慎重を要するデータまたは機密データの安全なデータ管理を保証するために用いられ得る。
【0169】
本明細書にわたって説明される本開示の特徴、構造または特性は、1つまたは複数の実施形態において任意の好適な手法で組み合わされ得る。例えば、本明細書全体を通して、「ある実施形態」、「いくつかの実施形態」、「特定の実施形態(certain embodiment)」、「特定の実施形態(certain embodiments)」、または他の同様の言葉の使用は、実施形態に関係して説明される特定の特徴、構造または特性が、本開示の少なくとも1つの実施形態に含まれ得るという事実を指す。それゆえ、本明細書全体を通して、「ある実施形態」、「いくつかの実施形態」、「特定の実施形態(certain embodiment)」、「特定の実施形態(certain embodiments)」という言い回し、または他の同様の言葉が現れることは、必ずしも全て実施形態の同じグループを指すとは限らず、説明される特徴、構造または特性は、1つまたは複数の実施形態において任意の好適な方法で組み合わされ得る。
【0170】
当業者は、上述される実施形態が、異なる順番のステップで、および/または開示される構成とは異なる構成における要素を伴って実施され得ることを容易に理解するであろう。そのため、本開示は、概説された実施形態を考慮するが、本開示の主旨および範囲にとどまりながら、特定の修正、変形および代替的な構成が明らかであることが当業者には明白であろう。それゆえ、本開示の境界および範囲を決定するために、添付される請求の範囲を参照するべきである。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16