JP2023024357A - システム、コンピュータ実装方法、コンピュータプログラム(サービストランザクションのためのコンセンサスに近づくための要求の促進) - Google Patents

システム、コンピュータ実装方法、コンピュータプログラム(サービストランザクションのためのコンセンサスに近づくための要求の促進) Download PDF

Info

Publication number
JP2023024357A
JP2023024357A JP2022123527A JP2022123527A JP2023024357A JP 2023024357 A JP2023024357 A JP 2023024357A JP 2022123527 A JP2022123527 A JP 2022123527A JP 2022123527 A JP2022123527 A JP 2022123527A JP 2023024357 A JP2023024357 A JP 2023024357A
Authority
JP
Japan
Prior art keywords
service
service component
components
computer
component
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.)
Pending
Application number
JP2022123527A
Other languages
English (en)
Inventor
アラー エス. ユーセフ
S Youssef Alaa
ジム アラン ラレド
Alain Laredo Jim
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2023024357A publication Critical patent/JP2023024357A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5048Automatic or semi-automatic definitions, e.g. definition templates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5058Service discovery by the service manager
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5003Managing SLA; Interaction between SLA and QoS
    • H04L41/5019Ensuring fulfilment of SLA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5041Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the time relationship between creation and deployment of a service
    • H04L41/5051Service on demand, e.g. definition and deployment of services in real time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/50Network service management, e.g. ensuring proper service fulfilment according to agreements
    • H04L41/5061Network service management, e.g. ensuring proper service fulfilment according to agreements characterised by the interaction between service providers and their network customers, e.g. customer relationship management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/40Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer And Data Communications (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Developing Agents For Electrophotography (AREA)

Abstract

【課題】トランザクションの要求の進行に関するコンセンサスのためのプロセスを促進するシステム、コンピュータ実装方法、およびコンピュータプログラム。【解決手段】システムは、メモリ、および、メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサを備え得る。コンピュータ実行可能コンポーネントは、トランザクションのサービスを操作するサービスコンポーネントを含み得、サービスコンポーネントは、トランザクションにおいてサービスのすぐ上流または下流にある他のサービスを操作する他のサービスコンポーネントと通信することによって、トランザクションの要求に関するコンセンサスに近づく。サービスコンポーネントは、他のサービスコンポーネントのみと通信することによってコンセンサスに近づき得る。コンセンサスに近づくために、サービスコンポーネントは、要求、投票、または最終決定を含むメッセージを通信し得る。【選択図】図1

Description

本明細書に記載される1または複数の実施形態は、トランザクションの要求のためのコンセンサスに到達することに関し、より具体的には、非集中型プロトコルを利用して、トランザクションの要求の進行に関するコンセンサスへの到達を促進することに関する。
現代では、クラウドネイティブコンピューティングアプリケーションなど多くのコンピューティングアプリケーションは、モノリシックアーキテクチャを示していない。むしろ、そのようなコンピューティングアプリケーションは、サービスコンポーネントが、個別のサービス、マイクロサービス、またはその組み合わせを実行し得る、コンテナ化などされた個別のアプリケーションであり得る1または複数のサービス、マイクロサービス、またはその組み合わせを操作するためなどの多数の疎結合されたサービスコンポーネントを含み得る分散型アーキテクチャを示し得る。疎結合されたサービスは、モノリシックアーキテクチャを利用することと比較して、拡張性、柔軟性、保全性の改善、および、開発者の生産性の加速を提供することに起因して魅力的であり得る。これら疎結合されたサービスの1または複数を含むトランザクションへの要求を促進するべく、要求に応答してトランザクションを持続または中止する順序に関するコンセンサスが、これら1または複数のサービス間で求められ得る。
疎結合されたサービスは、モノリシックアーキテクチャを利用することと比較して、拡張性、柔軟性、保全性の改善、および、開発者の生産性の加速を提供することに起因して魅力的であり得る。これら疎結合されたサービスの1または複数を含むトランザクションへの要求を促進するべく、要求に応答してトランザクションを持続または中止する順序に関するコンセンサスが、これら1または複数のサービス間で求められ得る。
以下では、本明細書に記載される1または複数の実施形態の基本的理解を提供するための概要を提示する。この概要は、特定の実施形態、または、任意の特許請求の範囲の主要または重要な要素を識別すること、その任意の範囲を画定すること、またはその組み合わせを意図するものではない。概要の唯一の目的は、後に提示されるより詳細な説明に対する前置きとして、簡略化された形式の概念を提示することである。本明細書に記載される1または複数の実施形態において、1または複数のサービスを含むトランザクションの要求の進行に関するコンセンサスへの到達を促進し得るデバイス、システム、コンピュータ実装方法、装置、コンピュータプログラム製品、またはその組み合わせが記載され得る。
一実施形態によれば、システムは、メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサを備え得、前記コンピュータ実行可能コンポーネントは、トランザクションのサービスを操作するサービスコンポーネントを含み、前記サービスコンポーネントは、前記トランザクションにおいて前記サービスのすぐ上流または下流にある1または複数の他のサービスを操作する1または複数の他のサービスコンポーネントと通信することによって、前記トランザクションの要求に関するコンセンサスに近づく。
別の実施形態によれば、コンピュータ実装方法は、トランザクションのサービスを操作するサービスコンポーネントであって、プロセッサに動作可能に結合されたシステムである前記サービスコンポーネントについて、前記トランザクションの要求に関して、前記サービスコンポーネントによってコンセンサスに近づく段階を備え得、前記コンセンサスに近づく段階は、前記サービスコンポーネントによって、前記トランザクションにおいて前記サービスのすぐ上流または下流にある1または複数の他のサービスを操作する1または複数の他のサービスコンポーネントと通信する段階を含む。
更に別の実施形態によれば、コンピュータプログラム製品は、トランザクションの要求の進行に関するコンセンサスのためのプロセスを促進し得、前記コンピュータプログラム製品は、プログラム命令が具現化されたコンピュータ可読記憶媒体を含み、前記プログラム命令は、プロセッサによって実行可能されることにより、前記プロセッサに、トランザクションのサービスを操作するサービスコンポーネントであって、前記プロセッサに動作可能に結合されたシステムのものである前記サービスコンポーネントについて、前記プロセッサによる前記サービスコンポーネントによって、前記トランザクションの要求に関するコンセンサスに近づくこと、および、前記プロセッサによる前記サービスコンポーネントによって、前記トランザクションにおいて前記サービスのすぐ上流または下流の1または複数の他のサービスを操作する1または複数の他のサービスコンポーネントと通信することを行わせる。
そのようなシステム、コンピュータ実装方法、コンピュータプログラム製品、またはその組み合わせの利点は、例えば、通信のための包括的な管理を利用することなく、非集中型環境におけるコンセンサス到達を高速かつ効率的に実行することであり得る。集中型トランザクションエンティティ、通信エンティティ、またはその組み合わせとの間の通信の長い遅延は除去され得る。このことは、例えばエンドツーエンドのトランザクションに参加する1または複数のサービスコンポーネントを含む1または複数のクラウドを含む非集中型環境において有益であり得る。
上のシステム、コンピュータプログラム製品、方法、またはその組み合わせの1または複数の実施形態において、サービスコンポーネントは、1または複数の他のサービスコンポーネントのみと通信することによってコンセンサスに近づき得る。そのようなシステム、コンピュータ実装方法、コンピュータプログラム製品、またはその組み合わせの利点は、任意のサービスコンポーネントにおいてサービスコンポーネントのセットの各サービスコンポーネントに関する包括的な知識を回避することであり得る。すなわち、任意のサービスコンポーネントが、トランザクションについての操作の実行において次/前でないサービスコンポーネントに関する知識の共有が回避され得る。したがって、懸念の1つのサービスコンポーネントにおける信頼、セキュリティ、またはその組み合わせの障害は、懸念のサービスの次の/前の1または複数のサービスコンポーネントのみに関する知識に限定され得る。
上のシステム、コンピュータプログラム製品、方法、またはその組み合わせ、サービスコンポーネントの1または複数の実施形態において、サービスコンポーネントは、サービスコンポーネントおよび1または複数の他のサービスコンポーネントの間の通信の包括的な管理無しで、要求に関するコンセンサスに近づき得る。そのようなシステム、コンピュータ実装方法、コンピュータプログラム製品、またはその組み合わせの利点は、通信についての包括的な管理を利用することなくコンセンサス到達を実行することであり得る。むしろ、通信は、トランザクションのサービスコンポーネントのセットの各個別のサービスコンポーネントによって管理され得る。追加的に、包括的通信マネージャのための処理能力およびメモリの利用も回避され得る。集中型トランザクションエンティティ、通信エンティティ、またはその組み合わせは利用されず、トランザクションに関する低減された操作を提供する、またはその組み合わせであるので、集中型トランザクションエンティティ、通信エンティティ、またはその組み合わせにおける高いストレージおよび永続コストは回避され得る。
本明細書に記載される1または複数の実施形態によるトランザクションの要求の進行に関するコンセンサスのためのプロセスを促進する非限定的システムの一例のブロック図を示す。 本明細書に記載される1または複数の実施形態による、トランザクションにおける図1のサービスコンポーネントの順序のブロック図を示す。
本明細書に記載される1または複数の実施形態による、トランザクションの要求の進行に関するコンセンサスのためのプロセスを促進する依存性トポロジーを含む非限定的システムの一例の別のブロック図を示す。
本明細書に記載される1または複数の実施形態による、トランザクションの要求の進行に関するコンセンサスのためのプロセスを促進する依存性トポロジーを含む非限定的システムの一例の更に別のブロック図を示す。
本明細書に記載される1または複数の実施形態による、図1の非限定的システムによって提供される図3のトランザクションの例示的なコンセンサス促進のフロー図を示す。
本明細書に記載される1または複数の実施形態による、メッセージの可能な伝播、単一サービスの状態、またはその組み合わせの例を図式的に示すフロー図である状態図を示す。
本明細書に記載される1または複数の実施形態による、並列に進行する経路を有するトランザクションの例示的なコンセンサス促進のフロー図を示す。
本明細書に記載される1または複数の実施形態による、図7の例示的なコンセンサス促進の別のブロック図を示す。
本明細書に記載される1または複数の実施形態による、図7の例示的なコンセンサス促進の更に別のブロック図を示す。
本明細書に記載される1または複数の実施形態による、図7の例示的なコンセンサス促進の更に別のブロック図を示す。
本明細書に記載される1または複数の実施形態による、トランザクションの要求の進行に関するコンセンサスのためのプロセスを促進するためのサイドカーの使用の例の3つの例示的ブロック図を示す。
本明細書に記載される1または複数の実施形態による、トランザクションの要求の進行に関するコンセンサスのためのプロセスを促進し得る非限定的コンピュータ実装方法の一例のフロー図を示す。
本明細書に記載される1または複数の実施形態による、トランザクションの要求の進行に関するコンセンサスのためのプロセスを促進し得る非限定的なコンピュータ実装方法の一例の図12のフロー図の続きを示す。
本明細書に記載される1または複数の実施形態が促進され得る非限定的な動作環境の一例のブロック図を示す。
本明細書に記載される1または複数の実施形態による非限定的なクラウドコンピューティング環境の一例のブロック図を示す。
本明細書に記載される1または複数の実施形態による非限定的な抽象化モデル層の複数の例のブロック図を示す。
以下の詳細な説明は単に例示であり、実施形態、実施形態の用途もしくは使用、またはその組み合わせを限定する意図はない。更に、前述の背景または概要の章、または、この詳細な説明の章に提示される任意の明示的または黙示的情報によって拘束される意図はない。
トランザクションのマイクロサービスまたはサービスの使用の増加を考慮すると、モノリシックアーキテクチャの既存の使用ではなく、トランザクションの要求に関するものなど、トランザクションのサービス間でコンセンサスに近づく、最終的に到達する、またはその組み合わせのための手法を提供することが望ましい。これは特に、例えば、トランザクションの1または複数のサービスを実行する、トランザクションに参加する1または複数のサービスコンポーネントが非集中型方式で分散されている場合に当てはまり得る。この分散は、局所的、包括的、またはその組み合わせであり得る。すなわち、分散は、互いに関して非集中型である複数の異なるシステム上に位置する、実行する、またはその組み合わせであるトランザクションに参加するサービスコンポーネントを含み得る。
分散されたプロトコルは、エンドツーエンドトランザクションなどのトランザクションに参加する1または複数のサービスコンポーネントの間でコンセンサスに到達するための非集中型通信に利用され得る。すなわち、トランザクションは、実行されることを要求され得る。各サービスコンポーネントは、要求されたトランザクションのサービスを実行し得る。実行されるサービスの様々な効果は、トランザクションに関与するすべての他のサービスコンポーネントもそれぞれのサービスの実行に成功しない限り、成功するまで、またはその組み合わせで、永続させることができない。
分散されたプロトコルは軽量であり得る。分散されたプロトコルは、トランザクションの初回要求に関するコンセンサスへの到達を管理するために包括的または中央マネージャを使用すること、それに依存すること、またはその組み合わせを不要にし得る。トランザクションに参加する複数の非集中型サービスコンポーネントでコンセンサスに近づくこと、最終的コンセンサス、またはその組み合わせを促進するために分散されたプロトコルを利用し得るシステム、装置、コンピュータ実装方法、またはコンピュータプログラム製品の1または複数の実施形態が本明細書において提供される。
すなわち、1または複数の実施形態は、トランザクションにおけるすべての参加者サービスの任意の参加者サービスによる包括的な知識を利用しない方式における、1または複数のサービスコンポーネントによる、1または複数のサービスコンポーネント間の通信の実行を含み得る。むしろ、プロトコルは、1または複数のサービスコンポーネントが、トランザクションにおいて、1または複数のサービスコンポーネントによって操作されるサービスのすぐ上流または下流にある1または複数の他のサービスを操作する1または複数の他のサービスコンポーネントのみと通信することを規定し得る。すなわち、個別のサービスコンポーネントについては、通信は、例えば、トランザクションに参加する他の個別のサービスコンポーネントに従う同一のプロトコルを用いて、トランザクションにおいて、個別のサービスコンポーネントによって操作されるサービスのすぐ上流または下流にある1または複数の他のサービスを操作する1または複数の他のサービスコンポーネントなどに対してのみ実行され得る。
1または複数の実施形態はまた、すべての参加者サービスコンポーネント間の通信の集中型ログを利用しない。その代わり、参加者サービスコンポーネントの個々は、ログを維持する個々が参加した通信のみの個々のログを維持し得る。すなわち、個別のサービスコンポーネントについては、個別のサービスコンポーネントは、例えば、トランザクションに参加する他の個別のサービスコンポーネントについて従う同一のプロトコルを用いて、個別のサービスコンポーネントが参加するメッセージ通信のみの個々の永続的ログを維持し得る。
1または複数の実施形態はまた、コンセンサスに近づく、到達する、またはその組み合わせのために、通信の集中型トランザクション、通信エンティティ、またはその組み合わせ、例えば、マネージャ、コーディネータ、コントローラ、またはその組み合わせを利用しない。むしろ、トランザクションに参加する1または複数の参加サービスコンポーネントの個々は、トランザクションにおいて、個々によって操作されるサービスのすぐ上流または下流にある1または複数の他のサービスを操作する1または複数の他のサービスコンポーネントに対してのみ、トランザクション内で上流または下流に通信を伝達する。このように、トランザクションは、互いから外向きに延びる(例えば、1または複数のサービスコンポーネントの)複数の経路を含み得るが、上記のすぐ上流または下流に限定された方式における局所的な通信制御を依然として可能にし得る。
また、このように、集中型トランザクションエンティティ、通信エンティティ、またはその組み合わせをセットアップするオーバヘッドが、非集中型であるが疎結合されたサービスコンポーネントの主に非集中型環境において除去され得る。また、このように、集中型トランザクションエンティティ、通信エンティティ、またはその組み合わせとの間の通信の長い遅延が除去され得る。これは、1または複数のクラウドを含む非集中型環境などにおいて有益であり得る。また、このように、集中型トランザクションエンティティ、通信エンティティ、またはその組み合わせにおける高いストレージおよび永続コストを回避できる。なぜなら、集中型トランザクションエンティティ、通信エンティティ、またはその組み合わせが利用されない、それらがトランザクションに関して低減された操作を提供する、またはその組み合わせであるからである。また、このように、参加者サービスコンポーネントの包括的な知識のセキュリティの損失、侵害、またはその組み合わせなどに関して、集中型トランザクションエンティティ、通信エンティティ、またはその組み合わせの信頼性の問題を回避できる。なぜなら、集中型トランザクションエンティティ、通信エンティティ、またはその組み合わせが利用されない、トランザクションに関して低減された操作を提供する、またはその組み合わせであるからである。
ここで、図面を参照して1または複数の実施形態を記載する。全体を通して、同様の参照番号は、同様の要素を指すために使用される。本明細書において使用される場合、上および下の両方において、「エンティティ」という用語は、機械、デバイス、スマートデバイス、コンポーネント、ハードウェア、ソフトウェア、人間、またはその組み合わせを指し得る。以下の説明において、1または複数の実施形態のより完全な理解を提供するべく、説明の目的のために、多くの特定の詳細が記載される。しかしながら、様々な場合において、これら特定の詳細なしで、1または複数の実施形態を実施できることは明白である。
更に、本明細書に記載される1または複数の図に図示される実施形態は単に例示であり、したがって、実施形態のアーキテクチャは、それらに図示されるシステム、デバイス、コンポーネントまたはその組み合わせに、または、それらに図示されるシステム、デバイス、コンポーネント、またはその組み合わせの任意の特定の順序、接続、結合、またはその組み合わせに限定されるものではないことを理解されたい。例えば、1または複数の実施形態において、図1、図3、図4またはその組み合わせに示される非限定的システム100、300、400またはその組み合わせ、それらのシステムまたはその組み合わせは更に、図14に示される動作環境1400などの動作環境に関連して本明細書に記載される1または複数のコンピュータ、コンピューティングベースの要素、またはその組み合わせを備え得る。1または複数の記載された実施形態において、コンピュータ、コンピューティングベースの要素、またはその組み合わせは、図1、図3、図4またはその組み合わせ、本明細書に記載される他の図、またはその組み合わせに関連して示される、記載される、またはその組み合わせであるシステム、デバイス、コンポーネント、コンピュータまたはその組み合わせで実装される動作の1または複数を実装することに関連して使用され得る。
最初に概して図1および図2を参照すると、本明細書に記載される1または複数の実施形態による、トランザクションの要求の進行に関するコンセンサスのためのプロセスを促進する非限定的システム100の一例のブロック図が示されている。
非限定的システム100は要求促進システム102を備え得る。示されるように、要求促進システム102は、プロセッサを含む任意の好適なタイプのコンポーネント、機械、デバイス、施設、装置、計装またはその組み合わせを備え得、有線、無線、またはその組み合わせのネットワークとの効果的、動作可能、またはその組み合わせの通信を可能にし得、またはその組み合わせである。すべてのそのような実施形態が構想される。例えば、要求促進システム102は、サーバデバイス、コンピューティングデバイス、汎用コンピュータ、特定用途向けコンピュータ、量子コンピューティングデバイス(例えば量子コンピュータ)、タブレットコンピューティングデバイス、ハンドヘルドデバイス、サーバクラスコンピューティングマシンデータベース、またはその組み合わせ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ、携帯電話、スマートフォン、コンシューマ用電化製品、計装、またはその組み合わせ、産業用、商用、またはその組み合わせのデバイス、デジタルアシスタント、マルチメディアインターネット対応電話、マルチメディアプレイヤ、別のタイプのデバイス、コンピューティングデバイスまたはその組み合わせ、またはその組み合わせを備え得る。同様に、要求促進システム102は、これらに限定されるものではないが、サーバデバイス、コンピューティングデバイス、汎用コンピュータ、特定用途向けコンピュータ、量子コンピューティングデバイス(例えば量子コンピュータ)、タブレットコンピューティングデバイス、ハンドヘルドデバイス、サーバクラスコンピューティングマシン、データベースまたはその組み合わせ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ、携帯電話、スマートフォン、コンシューマ用電化製品、計装またはその組み合わせ、産業用、商用またはその組み合わせのデバイス、デジタルアシスタント、マルチメディアインターネット対応電話、マルチメディアプレイヤ、別のタイプのデバイス、コンピューティングデバイスまたはその組み合わせ、またはその組み合わせなどの任意の好適なデバイスで配設され、実行され、またはその組み合わせであり得る。
要求促進システム102は、クラウドコンピューティング環境に関連し(例えば、それを介してアクセス可能であり)得る。例えば、要求促進システム102は、図15を参照して下に記載されたクラウドコンピューティング環境1550、図16を参照して下に記載された1または複数の機能抽象化層(例えば、ハードウェアおよびソフトウェア層1660、仮想化層1670、管理層1680、ワークロード層1690、またはその組み合わせ)、またはその組み合わせに関連し得る。
非限定的システム100、要求促進システム102、またはその組み合わせの動作は、単一のトランザクションの実行、1度に1つの要求の達成、またはその組み合わせに限定されるものではないことを理解されたい。むしろ、非限定的システム100、要求促進システム102、またはその組み合わせの動作はスケーリングされ得る。例えば、非限定的システム100、要求促進システム102またはその組み合わせは、1または複数のトランザクションを実行し得、1または複数の他のトランザクションの実行、1または複数の他の要求についてのコンセンサスの促進、またはその組み合わせと少なくとも部分的に並列に、1または複数の要求についてのコンセンサスに近づく、到達する、またはその組み合わせを促進し得る、またはその組み合わせであり得る。1または複数の実施形態において、非限定的システム100、要求促進システム102、またはその組み合わせの1または複数のサービスコンポーネントは、1または複数のサービスコンポーネントを含む2以上のトランザクションを同時に実行するために利用され得る。1または複数の実施形態において、非限定的システム100、要求促進システム102、またはその組み合わせの1または複数のサービスコンポーネントは、同時に2以上の要求に関するコンセンサスに近づくことを促進するために通信に利用され得る。
要求促進システム102は、メモリ104、プロセッサ106、バス105、サービスコンポーネント107、サービスコンポーネント108またはその組み合わせなど、1または複数のコンポーネントを備え得る。
概して、要求促進システム102は、トランザクションに参加するサービスコンポーネントのセットの初回サービスコンポーネントに対する初回要求103に関するコンセンサスに近づくこと、到達すること、またはその組み合わせを促進し得る。例えば、要求促進システム102のサービスコンポーネント107および108は、下(例えば図2)で詳細に説明される例示的なトランザクション200に参加し得る。
本明細書に記載される1または複数の実施形態は、任意の1または複数の特定のトランザクションタイプによっての、それについての、またはその組み合わせである、1または複数のサービスコンポーネント、通信またはその組み合わせを利用することに限定されるものではないことを理解されたい。むしろ、財務、購入、予約、医療、情報要求、またはその組み合わせのトランザクションを含むがそれらに限定されるものではない、すべての好適なトランザクションタイプが構想される。
本明細書で使用される場合、サービスコンポーネントによって操作されるサービスはマイクロサービスであり得る。追加的に、代替的に、またはその組み合わせで、サービスコンポーネントは、任意の好適な1または複数のアプリケーション、マイクロアプリケーション、アルゴリズム、プログラム、データ、データライブラリ、またはその組み合わせを含むがそれらに限定されるものではない1または複数の態様を含み得る。追加的に、代替的に、またはその組み合わせで、サービスコンポーネントはコンテナ化され得るか、または、コンテナ化フォーマットで提供され得る。
サービスコンポーネントの1または複数の態様は、別個に、組み合わせて、またはその組み合わせで利用され得る。例えば、サービスコンポーネントを含むシステムのメモリまたはプロセッサの1または複数を利用して、それによって、サービスを操作し得る。例えば、示されるように、サービスコンポーネント108はサービス108Aを実行し得、サービスコンポーネント107はサービス107Aを実行し得る。サービスコンポーネント108、サービスコンポーネント107、またはその組み合わせは、プロセッサ106、メモリ104、またはその組み合わせを利用し得る。追加的に、代替的に、またはその組み合わせで、プロセッサ106は、1または複数のプログラム命令を実行して、それぞれのサービスコンポーネント107またはサービスコンポーネント108によって、サービス107A、サービス108A、またはその組み合わせをプロセッサに実行させ得る。
サービスコンポーネント、コンテナ、サービス態様、プログラム命令、またはその組み合わせは、システムメモリ、別の内部メモリ、メモリ、またはその組み合わせ、サービスコンポーネントを含むシステムの外部の他の場所、またはその組み合わせなど、任意の好適な場所に格納され得ることを理解されたい。例えば、サービスコンポーネント108、サービスコンポーネント108の態様、サービスコンポーネント108のコンテナ、サービスコンポーネント108を操作する、実行する、またはその組み合わせを行うためのプログラム命令、またはその組み合わせが、メモリ104、別の内部メモリ、外部メモリ、別の外部の場所、またはその組み合わせなど、任意の好適な場所に格納され得る。任意のサービスコンポーネントのすべてのサービス態様は、同一または別個の場所に格納され得る。任意のサービスコンポーネントのすべてのサービス態様は、1または複数のシステムに格納され得る。サービスコンポーネント、コンテナ、サービス態様、プログラム命令またはその組み合わせが、要求促進システム102、プロセッサ106またはその組み合わせによる任意の適切な方法、例えば、1または複数の通信、電機、動作可能、光、有線または無線接続などの他の接続、またはその組み合わせによってアクセスされ得る。
トランザクションに関して、トランザクションのサービスコンポーネントのセットのサービスコンポーネントは各々、トランザクションの1または複数のサービスを操作して、トランザクションの実行を促進し得る。すなわち、1または複数のサービスは、予め設定された順序、判定された順序、選択的に判定された順序、エンティティによって判定された順序、同様のもの、またはその組み合わせなどの順序で実行され得る。そのような順序は、トランザクションの1または複数の他のサービスと少なくとも部分的に並列に操作され得る、1または複数の並列な経路、1または複数のサービス、またはその組み合わせを含み得る。
図2のトランザクション200など、既に確立されたトランザクションに関して、1または複数のサービスコンポーネントは、互いの間に確立された信頼を有し得る。例えば、互いのすぐ上流、下流、またはその組み合わせにあるサービスを操作する、トランザクション200に参加するサービスコンポーネントは、例えば、通信の提供、受信、またはその組み合わせのために、互いの間に確立される信頼を有し得る。
図1に示されるように、トランザクションに参加するサービスコンポーネントのセットの1または複数のサービスコンポーネントは、互いに関して非集中型であり得る。同様に、1または複数のシステム、例えば、1つのトランザクションの1または複数のサービスコンポーネントを含む要求促進システムはまた、別のトランザクションの1または複数のサービスコンポーネントを含み得る。代替的に、追加的に、またはその組み合わせで、1つのトランザクションに参加する1または複数のサービスコンポーネントは、1または複数の他のトランザクションに参加し得る。
例えば、具体的には簡潔に図2を参照すると、サービス208Aを実行するサービスコンポーネント208はトランザクション200に含まれ得る。示されるサービスコンポーネント208は、要求促進システム102とは異なる、それに関して非集中型であるシステムによって構成され得ることに留意されたい。示されるように、サービスコンポーネント208は要求促進システム202によって構成され得る。要求促進システム202は、要求促進システム102に関して非局所的に配設され得る。すなわち、トランザクション200の実行は、互いに関して非集中型であるサービスコンポーネントによって実行されるサービスを含み得る。図2に示されるように、トランザクション200は、複数のサービス(例えば、サービス108A、208Aおよび107A)を実行し得る複数のサービスコンポーネント(例えばサービスコンポーネント108、208および107)によって実行され得る。示されるように、トランザクション200は、矢印220によって表される下流の方向に進行する。すなわち、トランザクション200の実行は、初回、最上流、またはその組み合わせであるサービスコンポーネント108のサービス108Aから、サービスコンポーネント208のサービス208Aへ、サービスコンポーネント107の最下流のサービス107Aへ進行する。
ここで、具体的には図1の第2要求促進システム202を参照すると、プロセッサ206、メモリ204、バス205、サービスコンポーネント208、およびサービスコンポーネント207が含まれる。要求促進システム102と同様に、第2要求促進システム202は、図2のトランザクション200を実行するためのサービスを操作する1または複数のサービスコンポーネントを含む。したがって、上に示されるように、トランザクション200は、互いに関して非集中型であるサービスコンポーネント、サービス、またはその組み合わせを含む。
ここで、トランザクション200を利用する要求促進システム102、サービスコンポーネント107、108、またはその組み合わせ、サービス107A、108A、またはその組み合わせ、またはその組み合わせの1または複数の操作を参照すると、要求促進システム102は初回要求103を受信し得る。初回要求103は、特定のトランザクションに関連し得、例えば、特定のトランザクションを実行するための要求である、それを含む、またはその組み合わせであることを理解されたい。初回要求103は、任意の好適なフォーマット、例えば、テキストフォーマット、バイナリフォーマット、別の好適なフォーマット、またはその組み合わせで提供され得る。
1または複数の実施形態において、初回要求103は、要求促進システム102によって、例えば、メモリ104、メールコンポーネント、ダウンロードコンポーネント、またはその組み合わせなど、サービスコンポーネント107および108以外の要求促進システム102のコンポーネント、態様、またはその組み合わせによって受信され得る。1または複数の実施形態において、初回要求103は、サービスコンポーネント107、サービスコンポーネント108、またはその組み合わせによって受信され得る。1または複数の実施形態において、初回要求103を受信するサービスコンポーネントは、初回要求103が作られるトランザクションにおける最上流サービスを実行する最上流であり得る。
初回要求103を(例えば、最初に、間接的に、またはその組み合わせで)受信するコンポーネント、サービスコンポーネント、システム、他の態様、またはその組み合わせは、動作環境1400(図14)などの動作環境の任意の1または複数の態様を利用して、初回要求103を受信する、取得する、またはその組み合わせを行い得る。非限定的な例として、初回要求103は、HDD1414からアップロードされ、WAN1456を介してメモリストレージ1452から受信され、WAN1456を介して、クラウドコンピューティング環境1550(図15)のクラウドコンピューティングノード1510などのノードからダウンロードされ、またはその組み合わせを行われ得る。
ここでトランザクション200のサービスコンポーネント108、208および107を参照すると、それぞれのトランザクションに参加するサービスコンポーネントの間の通信が促進され得、初回要求に関してどのように進行するかについて、サービスコンポーネント間のコンセンサスに近づく、到達する、またはその組み合わせを行う。すなわち、これらのサービスコンポーネント間のコンセンサスに近づく、到達する、またはその組み合わせのために、初回要求103に応答して、トランザクション200の実行を持続させるか、または中止するかについて、サービスコンポーネント108、208および107間の通信が行われ得る。
1または複数の実施形態において、それぞれのトランザクションに参加するサービスコンポーネント間の通信は各々、トランザクションIDを含み得る。これにより、通信サービスコンポーネントが特定のトランザクションの参加者であること、したがって、1または複数の場合において、受信された1または複数のメッセージがその特定のトランザクションに関連することを確認すること、検証すること、またはその組み合わせを促進し得る。
1または複数の通信は1または複数のサービスコンポーネントによって促進され得る。例えば、通信は、セルラネットワーク、ワイドエリアネットワーク(WAN)(例えばインターネット)、ローカルエリアネットワーク(LAN)、またはその組み合わせを利用することを含むがそれに限定されるものではない、有線、無線手段またはその組み合わせによって促進され得る。通信を促進するための好適な有線または無線技術は、これらに限定されるものではないが、ワイヤレスフィデリティ(Wi-Fi(登録商標))、モバイル通信のためのグローバルシステム(GSM(登録商標))、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX(登録商標))、強化型汎用パケット無線サービス(強化型GPRS)、第3世代パートナシッププロジェクト(3GPP(登録商標))ロングタームエボリューション(LTE)、第3世代パートナシッププロジェクト2(3GPP(登録商標)2)ウルトラモバイルブロードキャスト(UMB)、高速パケットアクセス(HSPA)、Zigbee(登録商標)および他の802.XX無線技術もしくはレガシーテレコミュニケーション技術またはその組み合わせ、BLUETOOTH(登録商標)、セッション開始プロトコル(SIP)、ZIGBEE(登録商標)、RF4CEプロトコル、無線HARTプロトコル、6LoWPAN(低電力無線エリアネットワーク上のIPv6)、Z‐ウェーブ、ANT、超広帯域(UWB)規格プロトコル、他のプロプライエタリまたはその組み合わせ、非プロプライエタリの通信プロトコルまたはその組み合わせを含み得る。
これらの通信は、例えば、任意の集中型通信マネージャ、コントローラ、またはその組み合わせを利用することなく、非集中型プロトコルに従って実行される、そうでなければ促進される、またはその組み合わせを行われ得る。むしろ、ここでは要求促進システム102のみを参照すると、ただし、トランザクション200に参加するサービスコンポーネント(例えば第2要求促進システム202)を含む任意の他のシステムに関して、トランザクション200のサービスを実行するサービスコンポーネントのセットの1または複数のサービスコンポーネント108および107は、通信を個別に制御する、記録する、またはその組み合わせを行い得る。
1または複数のサービスコンポーネント108および107は、サービスコンポーネント108および107によって実行されるサービスに対してトランザクションにおいてすぐ上流または下流にある1または複数の他のサービスを操作する1または複数の他のサービスコンポーネントと通信することによって、例えば、トランザクション200の初回要求103に関するコンセンサスに近づく、到達する、またはその組み合わせのために、非集中型プロトコルに従って動作し得る。すなわち、サービスコンポーネント108は、サービスコンポーネント108によって実行されるサービスに対してトランザクションにおいてすぐ上流または下流にある1または複数の他のサービスを操作する1または複数の他のサービスコンポーネント、例えば、サービスコンポーネント107と通信し得る。同様に、サービスコンポーネント107は、サービスコンポーネント107によって実行されるサービスに対してトランザクションにおいてすぐ上流または下流にある1または複数の他のサービスを操作する1または複数の他のサービスコンポーネント、例えば、サービスコンポーネント108と通信し得る。すなわち、通信は、中央通信マネージャ、コントローラ、またはその組み合わせとの間で往復する以外で進行し得る。むしろ、通信は、トランザクションのサービスを実行するサービスコンポーネント間で進行し得る。
1または複数の実施形態において、そのような通信は、互いにすぐ下流、上流、またはその組み合わせにあるトランザクションのサービスを実行するサービスコンポーネント間のみで進行し得る。すなわち、互いのすぐ下流、上流、またはその組み合わせにあるサービスを実行しないサービスコンポーネント間で通信が進行しない。更に、コンセンサスに近づく、到達する、またはその組み合わせのための通信の包括的管理は、コンセンサスに近づくこと、到達すること、またはその組み合わせに存在しないことがあり得る。
更に、互いのすぐ下流、上流、またはその組み合わせにあるトランザクションのサービスを実行するサービスコンポーネント間のみの通信に関するこのプロトコルに鑑み、サービスコンポーネントにおけるサービスのセットの各サービスコンポーネントに関する包括的な知識が回避され得る。すなわち、サービスコンポーネントが、トランザクションについて実行されるそれぞれのサービスの順序においてすぐ次、すぐ前、またはその組み合わせにないサービスコンポーネントに関する知識の共有が回避され得る。したがって、懸念の1つのサービスコンポーネントにおける信頼、セキュリティ、またはその組み合わせの障害は、懸念のサービスコンポーネントと通信する、懸念のサービスコンポーネントによって操作されるサービスのすぐ上流、すぐ下流、またはその組み合わせにあるサービスを操作する、またはその組み合わせである1または複数のサービスコンポーネントのみに関する知識に限定され得る。
例えば、図2のトランザクション200に関して、サービス108Aは、サービス208Aからサービス107Aへ進行し、トランザクション200を実行する。したがって、トランザクション200のサービス順序において、サービスコンポーネント208のみがサービスコンポーネント108のすぐ次/前にあり、サービスコンポーネント208のみがサービスコンポーネント107のすぐ次/前にあり、サービスコンポーネント108および107の各々が、サービスコンポーネント208のすぐ次/前にある。したがって、初回要求103に関してどのように進行するかに関するコンセンサスに近づく、到達する、またはその組み合わせのために、サービスコンポーネント108は、サービスコンポーネント208のみと通信し、サービスコンポーネント208は、サービスコンポーネント108および107の両方と上流および下流方式で通信し、サービスコンポーネント107は、サービスコンポーネント208のみと通信する。サービスコンポーネント108は、初回要求103に関するコンセンサスに近づく、到達する、またはその組み合わせのために、サービスコンポーネント107と通信しない。
初回要求103に関するコンセンサスに近づく/到達するためでない1または複数の他の目的などのために、1または複数のサービスコンポーネントがトランザクションのサービスコンポーネントのセットの1または複数の次以外/前以外のサービスコンポーネントと通信し得ることが構想され得ると理解される。例えば、1または複数の実施形態において、トランザクションを持続する(例えば、実行する)ためのコンセンサスに到達した後などに、1または複数のサービスコンポーネントは、トランザクションの次以外/前以外のサービスコンポーネントのセットの1または複数の次以外/前以外のサービスコンポーネントと通信し、トランザクションを実行し得る。例えば、データは、そのようなトランザクション実行の目的で、次以外/前以外のサービスコンポーネントの間で共有され得る。
追加的に、代替的に、またはその組み合わせで、トランザクションの実行順序における1または複数のサービスコンポーネントが、特定のコンセンサス到達について、スキップされる、無視される、またはその組み合わせを行われ得る1または複数の実施形態が構想され得ることが理解される。ここで、例えば、スキップされる、無視される、またはその組み合わせが行われたサービスコンポーネントは、そのようなトランザクションの特定の実行から省略される。追加的に、代替的に、またはその組み合わせで、トランザクションの1または複数のサービスコンポーネントが、トランザクションにおいてすぐ上流または下流のサービスを実行しない1または複数のサービスコンポーネントと通信し得る1または複数の実施形態が構想され得ることが理解される。例えば、1または複数のそのような実施形態において、中央コントローラが、トランザクションのサービスコンポーネントのセットのサブセットのために利用され得る。それにもかかわらず、トランザクションにおけるコンセンサスに迅速に到達する、または、効率的に到達する、またはその組み合わせのために、1または複数の実施形態において、サービスコンポーネントのすべて、その少なくとも大部分、またはその組み合わせは、それぞれのトランザクションのサービスコンポーネントのセットの次の/前のサービスコンポーネントのみと通信し得ると理解される。
次に、図3を参照すると、この図は、本明細書に記載される1または複数の実施形態による、トランザクションの要求の進行に関するコンセンサスのためのプロセスを促進し得る非限定的システム300の一例のダイアグラムを示す。それぞれの実施形態において利用される同様の要素もしくはプロセスまたはその組み合わせの繰り返しの説明は、簡潔にするために省略される。
示されるように、非限定的システム300は、トランザクションAを実行するための1または複数のサービスコンポーネントを各々が含み得る複数(3など)のシステムを含む(不図示)。1または複数の実施形態において、3つのシステムが、示される別個のデバイス、例えば、デバイスW、デバイスX、およびデバイスYなどにおいて配設される、実行される、またはその組み合わせを行われ得る。デバイスW、X、Yの各々は、サーバデバイス、コンピューティングデバイス、汎用コンピュータ、特定用途向けコンピュータ、量子コンピューティングデバイス(例えば量子コンピュータ)、タブレットコンピューティングデバイス、ハンドヘルドデバイス、サーバクラスコンピューティングマシン、データベースまたはその組み合わせ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ、携帯電話、スマートフォン、コンシューマ用電化製品、計装またはその組み合わせ、産業用、商用またはその組み合わせのデバイス、デジタルアシスタント、マルチメディアインターネット対応電話、マルチメディアプレイヤ、別のタイプのデバイス、コンピューティングデバイスまたはその組み合わせ、またはその組み合わせであり得る、それらを含み得る、またはその組み合わせであり得る。1または複数の実施形態において、3つのデバイスW、X、およびYは、互いに関して非集中型であり得る。したがって、3つのデバイスW、XおよびYは、例えば、WAN、クラウド環境、またはその組み合わせを介して通信し得る。
第1要求促進システム302は、デバイスWで配設される、実行される、またはその組み合わせを行われ得る。第2要求促進システム312は、デバイスX上で配設される、実行される、またはその組み合わせを行われ得る。第3要求促進システム322は、デバイスY上で配設される、実行される、またはその組み合わせを行われ得る。3つのシステムの任意の1または複数は、トランザクションAの1または複数のサービスを実行し得る1または複数のサービスコンポーネントを含み得る。したがって、トランザクションAは、互いに関して非集中型であるサービスコンポーネント、サービス、またはその組み合わせを含み得る。
第1要求促進システム302は、示されるように、プロセッサ306、メモリ304、バス305、サービスコンポーネント308、および第2サービスコンポーネント358を含み得る。サービスコンポーネント308は、サービス308Aを実行するために、サービスコンポーネント308によって構成される1または複数のサービス態様を介するなどして構築され得る。サービスコンポーネント308はまた、ログコンポーネント309を含み得るが、ログコンポーネント309は、1または複数の他の実施形態におけるサービスコンポーネント308とは別個に配設され得る。サービスコンポーネント358は、サービスコンポーネント358によって構成される1または複数サービス態様を介するなどして構築され、サービス358Aを実行し得る。サービスコンポーネント358はまた、ログコンポーネント359を含み得るが、1または複数の他の実施形態において、ログコンポーネント359は、サービスコンポーネント358とは別個に配設され得る。
示されるように、第2要求促進システム312は、プロセッサ316、メモリ314、バス315、および、サービスコンポーネント318を含み得る。サービスコンポーネント318は、サービスコンポーネント318によって構成される1または複数のサービス態様を介するなどして構築され、サービス318Aを実行し得る。サービスコンポーネント318はまた、ログコンポーネント319を含み得るが、1または複数の他の実施形態において、ログコンポーネント319は、サービスコンポーネント318とは別個に配設され得る。
示されるように、第3要求促進システム322は、プロセッサ326、メモリ324、バス325、およびサービスコンポーネント328を含み得る。サービスコンポーネント328は、サービスコンポーネント328によって構成される1または複数のサービス態様を介するなどして構築され、サービス328Aを実行し得る。サービスコンポーネント328はまた、ログコンポーネント329を含み得るが、1または複数の他の実施形態において、ログコンポーネント329は、サービスコンポーネント328とは別個に配設され得る。
したがって、トランザクションAに関して、サービスコンポーネント308、358および318の各々は、トランザクションAに含まれ得る、それに参加し得る、またはその組み合わせであり得る。別のトランザクションBに関して、例えば、サービスコンポーネント308、358、318および328の各々は、トランザクションBによって構成される、それに参加する、またはその組み合わせであり得る。
ここで、非限定的システム300の3つの要求促進システムのプロセッサ、メモリ、およびバスを説明する。第1要求促進システム302のプロセッサ306、メモリ304、およびバス305のみに関して説明が提供されるが、説明は、第2要求促進システム312および第3要求促進システム322の同様のコンポーネントにも同様に適用される。説明は、要求促進システム102および要求促進システム202の同様のコンポーネントにも同様に適用されることも理解されたい。
例えば、1または複数の実施形態において、要求促進システム302は、プロセッサ306(例えば、コンピュータ処理ユニット、マイクロプロセッサ、古典的プロセッサ、量子プロセッサ、同様のプロセッサ、またはその組み合わせ)を含み得る。1または複数の実施形態において、1または複数の実施形態の1または複数の図を参照して、または、参照することなく本明細書に記載される要求促進システム302に関連するコンポーネントは、そのようなコンポーネント、命令、またはその組み合わせによって定義される1または複数のプロセスの実行を促進するためにプロセッサ306によって実行され得る1または複数のコンピュータ可読、機械可読、またはその組み合わせの、書き込み可能、実行可能、またはその組み合わせのコンポーネント、命令またはその組み合わせを含み得る。1または複数の実施形態において、プロセッサ306は、サービスコンポーネント307、サービスコンポーネント358、観察コンポーネント354、プロトコル管理コンポーネント356、またはその組み合わせを含み得る。
1または複数の実施形態において、要求促進システム302は、プロセッサ306によって動作可能に接続され得るコンピュータ可読メモリ304を含み得る。メモリ304は、プロセッサ306による実行時に、プロセッサ306、要求促進システム302の他のコンポーネント(例えば、サービスコンポーネント307、サービスコンポーネント358、観察コンポーネント354、プロトコル管理コンポーネント356、またはその組み合わせ)、またはその組み合わせに、1または複数のアクションを実行させ得るコンピュータ実行可能命令を格納し得る。1または複数の実施形態において、メモリ304は、コンピュータ実行可能コンポーネント(例えば、サービスコンポーネント307、サービスコンポーネント358、観察コンポーネント354、プロトコル管理コンポーネント356、またはその組み合わせ)を格納し得る。
本明細書に記載される、要求促進システム302、そのコンポーネント、またはその組み合わせは、通信可能に、電気的に、動作可能に、光学的に、または別の方式で、またはその組み合わせで、バス305を介して互いに結合され、非限定的システム300、要求促進システム302、その、それに結合された、またはその組み合わせである1または複数のコンポーネント、またはその組み合わせの機能を実行し得る。バス305は、1または複数のバスアーキテクチャを利用し得る、1または複数のメモリバス、メモリコントローラ、ペリフェラルバス、外部バス、ローカルバス、量子バス、もしくは、別のタイプのバスまたはその組み合わせを含み得る。バス305のこれらの例のうち1または複数は、本明細書に記載された1または複数の実施形態を実装するために利用され得る。
1または複数の実施形態において、要求促進システム302は、ネットワークを介するなどして、1または複数の外部システム(例えば、要求促進システム312、要求促進システム322、またはその組み合わせ)、ソース、デバイス(例えば、古典的デバイス、量子コンピューティングデバイス、またはその組み合わせ、通信デバイス、同様のデバイス、またはその組み合わせ)、またはその組み合わせに(例えば、通信可能に、電気的に、動作可能に、光学的に、同様の機能、またはその組み合わせで)結合され得る。1または複数の実施形態において、非限定的システム300のコンポーネントの1または複数は、クラウドに存在し得る、ローカルのコンピューティング環境に(例えば、所望の場所に)局所的に存在し得る、またはその組み合わせであり得る。
上に記載されたプロセッサ306、メモリ304、またはその組み合わせに加えて、要求促進システム302は、プロセッサ306によって実行されるとき、そのようなコンポーネント、命令、またはその組み合わせによって定義される1または複数の操作の実行を促進し得る、1または複数のコンピュータ可読、機械可読、またはその組み合わせの、書き込み可能、実行可能、またはその組み合わせのコンポーネント、命令、またはその組み合わせを含み得る。
ログコンポーネント309、359、319および329の各々は、ログコンポーネント309、359、319および329を含む、それぞれの個々のサービス(例えば、それぞれ、サービスコンポーネント308、358、318、および328)について、1または複数のログ生成機能を実行し得る。別個のログコンポーネントが図3に示されているが、1または複数の他の実施形態において、1または複数のログコンポーネントは、むしろ、同一のシステムまたはローカル環境などの2以上のサービスコンポーネントについて、1または複数のログ生成機能を実行し得ることが理解される。
ここで、ログコンポーネント309を参照すると、示されるログコンポーネントのいずれかに関連して、ログコンポーネント309は、1または複数のサービスコンポーネント(例えば、サービスコンポーネント308)の個々について、個々(例えば、サービスコンポーネント308)が参加するメッセージ通信のみの個々の永続的ログを維持し得る。例えば、ログコンポーネント309は、1または複数の通信、データまたはその組み合わせ、1または複数の通信に関するメタデータ、またはその組み合わせの1または複数のレコードを生成し得る。これらは、ログの形式などで共に格納され得る。ログはマトリクス、ライブラリ、他のデータベース、またはその組み合わせであり得る。1または複数のレコードは、テキスト、バイナリ、他の好適なフォーマット、またはその組み合わせなど、任意の好適なフォーマットに格納され得る。ログは、それぞれの要求促進システム(例えば、要求促進システム302)において、それぞれのメモリ(例えばメモリ304)など、それぞれの要求促進システムの内部または外部の任意の他の場所において、またはその組み合わせにおいて、それぞれのサービスコンポーネント(例えばサービスコンポーネント308)に格納され得る。ログへの1または複数のレコードの転送は、図1および図2に関するコンセンサス到達の促進のためのメッセージ/通信の転送を参照して上に記載された方法の1または複数などを含む、有線または無線のいずれかである、通信の任意の適切な方法によって行われ得る。
サービスコンポーネント308、サービス308A、またはその組み合わせを含むトランザクションのコンセンサス到達に関する通信エラー、タイムアウト、またはその組み合わせの発生時などに、個々のログが、要求促進システム302、サービスコンポーネント308、観察コンポーネント354(詳細は下に記載される)、非限定的システム300、またはその組み合わせによって観察され、検討され、そうでなければ利用され、またはその組み合わせが行われ得る。すなわち、それぞれのコンセンサス到達に関する、1または複数の要求、投票、最終決定、またはその組み合わせに関して、故障した、再起動された、またはその組み合わせのサービスサービスコンポーネントの履歴位置をロードする目的などのために、観察、検討、またはその組み合わせは、任意の好適なコンピュータコンポーネント、態様、またはその組み合わせを介して促進され得る。
ここで、非限定的システム300の1または複数の追加コンポーネントに関して、依然として図3を参照すると、要求促進システム302、312および322の1つは、観察コンポーネント354、プロトコル管理コンポーネント356、またはその組み合わせを含み得る。示されるように、要求促進システム302は、観察コンポーネント354およびプロトコル管理コンポーネント356を含み得る。1または複数の他の実施形態において、サービスコンポーネント308、サービスコンポーネント358、またはその組み合わせは、プロトコル管理コンポーネント356を含み得る。同様に、要求促進システム312および322に関して、サービスコンポーネント318、サービスコンポーネント328、またはその組み合わせは、追加的に、代替的に、またはその組み合わせで、プロトコル管理コンポーネント356を含み得る。
最初に観察コンポーネント354に関しては、観察コンポーネント354は、通信が生じるとき、通信が生じた後、またはその組み合わせにおいて、通信の管理エンティティによる観察を促進し得る。上に示されるように、観察コンポーネント354は、故障した、再起動された、またはその組み合わせであるサービス/サービスコンポーネントの履歴位置をロードする、判定する、またはその組み合わせを行うことを促進するために利用され得る。観察コンポーネント354は同様に、サービスコンポーネント間の通信をモニタリングし得る。モニタリングは、1または複数のサービスコンポーネントによる非集中型プロトコルの非集中型操作への干渉が存在しない、観察、記録、またはその組み合わせのみなど、受動的であり得る。すなわち、1または複数の実施形態において、観察コンポーネント354は、トランザクションに参加するサービスコンポーネントのセットのサービスコンポーネントのいずれかの間、中、またはその組み合わせの通信をモニタリングし得る。1または複数の実施形態において、観察コンポーネント354は、トランザクションについて、コンセンサスに到達したか、または、到達されないかを判定し得る。例えば、観察コンポーネント354は、それまでに通信された投票のサブセットを観察し得る。投票のサブセットは、1または複数のネガティブな投票を含み得、それによって、要求されたトランザクションにコミットするコンセンサスに到達されていないことを示す。追加的に、代替的に、またはその組み合わせで、観察コンポーネント354は、モニタリングを介して、サービスコンポーネントのセットのサービスコンポーネント間の通信が、サービスコンポーネントのセットの次の/前のもの(例えば、互いに対してすぐ上流、下流、またはその組み合わせのサービスを操作するもの)に制限されていることを判定する、検証する、またはその組み合わせを行い得る。
1または複数の実施形態において、ゼロまたはより多くの観察コンポーネントが含まれ得、1または複数のサービスコンポーネントに関する通信の観察が、任意の1または複数のそのような観察コンポーネントによって実行される観察プロセスに存在しないことがあり得、またはその組み合わせであることが理解される。
次に、プロトコル管理コンポーネント356に関しては、このコンポーネントは、最初などに、本明細書に記載される1または複数の実施形態に従ってコンセンサスに到達するための1または複数の通信限界、規則、またはその組み合わせを提供するプロトコル350を、トランザクションのサービスコンポーネントのセットの1または複数のサービスコンポーネントへ、転送、プッシュ、アップロード、そうでなければ送信する、またはその組み合わせを行い得る。1または複数の通信限界は、サービスコンポーネント間の通信メッセージを、互いに関して次の/前のサービスコンポーネントに制限することを含み得る。1または複数の実施形態において、プロトコル350は、何のサービスコンポーネントが互いに対して次/前として識別されるかの判定を定義する、促進する、またはその組み合わせを行い得る。1または複数の実施形態において、プロトコル350は、下で詳細に記載される、図5のコミュニケーション図500において示されるように、特定のタイプのメッセージの通信を促進するためのプログラム命令、決定、またはその組み合わせのセットを含み得、例えば、要求、投票、最終決定、またはその組み合わせを含む。1または複数の実施形態において、そのような規則は、下で詳細に記載される、図6の状態図600などのように、図式的に示され得る。
プロトコル350は、図1および図2に関してコンセンサス到達の促進のためのメッセージ通信の転送を参照して上に記載される方法の1または複数を含むなど、有線または無線である任意の適切な方法の通信を介して転送され得る。追加的に、代替的に、またはその組み合わせで、1または複数の実施形態において、要求促進システム302、312および322、サービスコンポーネント308、358、318および328のいずれか1または複数、またはその組み合わせは、本明細書に記載される1または複数の実施形態による、要求プロトコル350、別のプロトコル、またはその組み合わせに従って動作することを既に含み、そのために構築され、またはその組み合わせであり得る。例えば、1または複数のサービスコンポーネントは、サービスコンポーネントの初回構築中などにおいて、プロトコル350に従って動作するよう別個に構築され得、例えば、プロトコル350が1または複数のサービスコンポーネントへ転送されることは存在しない。
ここで、簡潔に図4を参照すると、この図は、本明細書に記載される1または複数の実施形態による、トランザクションの要求の進行に関するコンセンサスのためのプロセスを促進し得る非限定的システム400の一例のダイアグラムを示す。それぞれの実施形態において利用される同様の要素もしくはプロセスまたはその組み合わせの繰り返しの説明は、簡潔にするために省略される。
非限定的システム400は、非限定的システム300に実質的に類似している。非限定的システム300と異なり、プロトコル促進システム332などの別個のシステムが、それぞれのプロセッサ336、メモリ334、およびバス335と共に、観察コンポーネント354、プロトコル管理コンポーネント356、またはその組み合わせを含み得ることを理解されたい。すなわち、1または複数の実施形態において、観察コンポーネント354、プロトコル管理コンポーネント356、またはその組み合わせは、トランザクションに参加するサービスコンポーネントを含むシステム以外のシステム(例えば、要求促進システム302、312および322)によって構成され得ることを理解されたい。
プロトコル促進システム332は、デバイスZにおいて構成され得る。デバイスZは、1または複数のサーバデバイス、コンピューティングデバイス、汎用コンピュータ、特定用途向けコンピュータ、量子コンピューティングデバイス(例えば量子コンピュータ)、タブレットコンピューティングデバイス、ハンドヘルドデバイス、サーバクラスコンピューティングマシン、データベースまたはその組み合わせ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータ、携帯電話、スマートフォン、コンシューマ用電化製品、計装またはその組み合わせ、産業用、商用またはその組み合わせのデバイス、デジタルアシスタント、マルチメディアインターネット対応電話、マルチメディアプレイヤ、別のタイプのデバイス、コンピューティングデバイスまたはその組み合わせ、またはその組み合わせであり得る、それらを含み得る、またはその組み合わせであり得る。デバイスZは、デバイスW、X、Y、またはその組み合わせの任意の1または複数に関して、ローカルである、非集中型である、またはその組み合わせであり得る。デバイスZと、デバイスW、X、Yまたはその組み合わせのうち任意の1または複数との間の通信は、例えば、LAN、WAN、クラウド環境、またはその組み合わせなど、任意の好適な手段によって行われ得る。
ここで、具体的には図5、また図3を参照すると、フロー図であるコミュニケーション図500は、図3を参照して、トランザクションAのサービスコンポーネントのセットのサービスコンポーネントの次の/前のものの間の通信の例示的フローを示す。上で示されるように、トランザクションAは、サービスコンポーネント308、358および318の各々を含む。サービスコンポーネント308は、初回要求303を受信する初回サービスであり得ることを理解されたい。時間的ドット502は、好適な通信方法を表し、「xid」は、各通信に含まれるトランザクションIDを表すことを理解されたい。
上で示されるように、1または複数のサービスコンポーネント308、358および318は、1または複数の要求、投票、または最終決定を含み得るメッセージを通信し得る。また、上で示されるように、これらのメッセージタイプの各々は、テキスト、バイナリ、任意の他のフォーマット、またはその組み合わせであり得る。
要求(例えば、図3の初回要求303とは異なる第2の要求)は、関連するサービスコンポーネントのサービスの実行を要求し、それによって、トランザクションの実行の最終的な伝播を促進するメッセージであり得る。要求は概して、トランザクションにおいて下流(例えば、図5における左から右へのトランザクションの通常の実行の方向)に伝達され得る。1または複数のサービスコンポーネントは、トランザクションの1または複数の最下流(例えば、図5におけるサービスコンポーネント318の方向において)のサービスを実行するサービスコンポーネントのセットの1または複数のサービスコンポーネントに対する要求の通信を伝達し得る。
投票は、要求に対する応答であり得、概して、イエス/ノー、進行する/進行しない、持続する/中止する、またはその組み合わせの指示を含み得る。投票は概して、トランザクション内の上流(例えば、図5において右から左である、トランザクションの通常の実行の逆方向において)に伝達し得る。1または複数のサービスコンポーネントは、トランザクションの1または複数の最上流(例えば、サービスコンポーネント308の方向において)のサービスを実行するサービスコンポーネントのセットの1または複数のサービスコンポーネントに対する初回要求、または、1または複数の第2の要求を承認する、または中止するために、1または複数の投票の通信を伝達し得る。
サービスコンポーネント358などの中間サービスコンポーネントが、投票を送信すること、および、投票を受信することの両方を行う場合、中間サービスコンポーネントは、それぞれの個々のログを利用して、要求を下流に送信したことに基づいて、下流の参加者サービスコンポーネント(例えば、サービスコンポーネント318)からの投票を受信することを待機していると認識し得る。したがって、中間サービスコンポーネントは、下流の参加者からの投票を受信したときに、組み合わされた投票を上流へ送信し得る。中間サービスコンポーネントによって送信された、組み合わされた投票は、単一の投票を有する通信であり得、いずれかのノー、進行しない、投票の中止、またはその組み合わせは、組み合わされた投票も、ノー、進行しない、中止する、またはその組み合わせにさせ得る。中間サービスコンポーネントによって受信された投票は自体は組み合わされた投票であり得ることに留意されたい。
更に、投票通信サービスコンポーネントが中間サービスコンポーネントであり、そのため、下流投票を待機している場合、投票通信サービスコンポーネントは、プロトコル350を介するなどして構築され、下流から投票を受信する前に投票を上流へ送信し得、ここで、自己提供投票はネガティブ(例えば、ノー、進行しない、中止、またはその組み合わせ)である。このように、投票の伝播は、(例えば、単一のネガティブな投票は、組み合わされた投票となるものに既に含まれているので)組み合わされた投票の結果を変更できない下流の投票を待機することなく、より迅速に進められ得る。上流に通信された各投票は、組み合わされた投票であれ、または、組み合わされていないネガティブな投票であれ、単一の投票であり得ることにも留意されたい。すなわち、本明細書に記載される1または複数の実施形態によれば、投票の通信は概して、単一の通信より多くを含まない。早いネガティブな投票が上流に通信される場合、遅く受信された下流の投票は記録されるが無視され得る。
最終決定は概して、1または複数の最下流のサービスを実行する1または複数のサービスコンポーネント(例えば、図5のサービスコンポーネント318)に対して、1または複数の最上流のサービスを実行する1または複数のサービスコンポーネント(例えば、図5のサービスコンポーネント308)から下流方向に伝達する。最終決定は、下流の参加者から受信されたすべての投票の組み合わされた投票であり得る。すなわち、最上流サービスコンポーネントは、すべての下流の参加者の組み合わされた投票、または、下流参加者サービスコンポーネントからの少なくとも単一のネガティブな投票のいずれかを含む単一の投票通信を受信し得る。したがって、最上流サービスコンポーネントは、投票通信を受信すると、単一の最終決定(本明細書では「完了」とも称される)を各下流の次の/前のサービスコンポーネントへ通信し得る。同一の最終決定は、最下流のサービスコンポーネントへ伝達され得る。任意の個別のサービスコンポーネントは、ポジティブな最終決定通信を受信すると、トランザクションの1つの個別のサービスコンポーネントによって実行されるそれぞれのサービスを実行することを開始し得る。
1または複数の他の実施形態において、トランザクションへの初回要求に関するコンセンサスの到達のために、次の/前のサービスコンポーネント間のものに通信を制限するなど、本明細書における1または複数の限定、規則、またはその組み合わせに従うなどして、1または複数の追加メッセージタイプが、コンセンサスに近づく、到達する、またはその組み合わせのために利用され得る。
ここで、図6を参照すると、状態図600は、本明細書に記載される1または複数の実施形態による、単一サービスコンポーネントのメッセージ、状態、またはその組み合わせの可能な伝播の例を図式的に示す。すなわち、状態図600は、単一のサービスコンポーネント602に関するが、要求、投票、および最終決定メッセージの通信を示す異なるフォーマットを提供する。状態図600において、通信は、矢印によって表され、実行されたアクションは、円形のオブジェクトによって表される。
例として、トランザクションがサービスコンポーネント602に関して次の/前の下流サービスコンポーネントを含まない、または、サービスコンポーネント602の投票がネガティブである通信604が送信され得る。例として、タイムアウト606は、要求が下流に通信されるが、判定された時間ウィンドウ内に投票通信がサービスコンポーネント602によって受信されない場合に生じ得る。タイムアウトウィンドウは、プロトコル350を介して、デフォルトなどによって判定され得、エンティティによって選択的に判定され得、またはその組み合わせであることを理解されたい。タイムアウトウィンドウの時間長は、トランザクション、または、トランザクションのタイプに固有であり得ることを理解されたい。タイムアウトウィンドウ長は、通信のタイプに固有であり得ることを理解されたい。すなわち、要求、投票、および最終決定の異なる通信タイプは各々、異なるタイムアウトウィンドウ時間長を利用し得る。別の例として、タイムアウト608は、投票通信がサービスコンポーネント602によって送信されたが、最終決定が受信されなかった場合に生じ得る。タイムアウトの場合におけるコンセンサス到達の進行は更に、図9および図10に関して下に記載される。
次に、図7、また、図3を参照すると、別のフロー図である別のコミュニケーション図700は、また図3を参照して、トランザクションBのサービスコンポーネントのセットのサービスコンポーネントの次の/前のものの間の通信の例示的フローを示す。上で示されるように、トランザクションBは、サービスコンポーネント308、358、318および328の各々を含む。図7を参照すると、サービスコンポーネント308、358および318を含むコミュニケーション図600のより下位の部分は、コミュニケーション図500と同一である。加えて、コミュニケーション図600は、コンセンサスに近づく/到達するための通信の伝播を示し、したがって、また、トランザクションのためのサービスの実行の伝播は、2以上の並列の経路に沿って進行し得る。すなわち、トランザクションBのサービスの実行および通信の伝播は、サービスコンポーネント308から分岐し得る。例えば、イニシエータ(最上流)のサービスコンポーネント308は、要求通信をサービスコンポーネント358および328の各々へ送信し得る。要求通信は、特定のサービスコンポーネント358および328によって操作される特定のサービスに関して、最後に部分的に異なるデータ、要求、またはその組み合わせを含み得る。同様に、サービスコンポーネント308は、複数の投票通信を(例えば、サービスコンポーネント358およびサービスコンポーネント328から)受信し得、複数の要求通信は同様に送信される。
ここで、図8を参照すると、図7のコミュニケーション図700に示されるように、通信の同一の伝播の代替的な表現を提供する追加のブロック図が示される。
ここで、図9および図10を参照すると、トランザクションの要求の進行に関するコンセンサスについてのプロセスを促進するための本明細書に記載される1または複数の実施形態はまた、コンセンサスへの到達に関する通信における1または複数のエラー、タイムアウト、またはその組み合わせを説明し得る。図9のダイアグラム900の通信障害902において示されるように、通信が完了されない、または、トランザクションBの完了メッセージの進行に関するコンセンサスについてのプロセスによって、受信されていないものとして、ログなどに登録される場合、失われた、受信されていない、またはその組み合わせである通信906をプロンプトしたはずの前の通信904は、再送信通信908として再送信され得る。この再送信は、通信906を受信しなかったサービスコンポーネント318によって促進され得る。1または複数の実施形態において、この再送信/再通信は、サービスコンポーネント318の再起動またはタイムアウト、それによって操作されるサービス、またはその組み合わせの後に促進され、エラーを記録し得る。すなわち、サービスコンポーネント、それによって操作されるサービス、またはその組み合わせにおける故障、エラー、またはその組み合わせは、少なくとも部分的に、失われた、受信されていない、またはその組み合わせであるメッセージの受信の失敗を引き起こし得る。
追加的に、代替的に、またはその組み合わせで、通信の再送信が、前に失われた、受信されない、またはその組み合わせの通信の受信を促進しない場合、エラーメッセージまたはレコードはログ記録され得る。1または複数の実施形態において、本明細書において説明される第4のタイプのメッセージであるエラーメッセージは、エラーを記録するサービスコンポーネント(例えば、サービスコンポーネント318)から前のサービスコンポーネントへ(例えば、サービスコンポーネント358へ)送信され得、前のサービスコンポーネント(例えば、サービスコンポーネント358)の再起動、および、前のサービスコンポーネント(例えばサービスコンポーネント358)の個々のログにおいて送信されたと示される1または複数のもっとも最近の通信の再送信をプロンプトする。
図10のダイアグラム1000の通信障害1002において示されるように、エラーは、故障した、または、エラーが生じたサービスコンポーネント(例えば、サービスコンポーネント358)、それによって操作されるサービス、またはその組み合わせによって引き起こされ得る。エラーのあるサービスコンポーネント358、それによって操作されるサービス、またはその組み合わせのタイムアウト時に、サービスコンポーネント358を再起動する、または、そうでなければ、その1または複数のエラーを修理する、是正する、またはその組み合わせを行うために、エラーのあるサービスコンポーネント358の個々のログは、1または複数の失われた、受信されていない、またはその組み合わせである通信1004を判定し、1または複数のリピート通信1006に応答して送信するために利用され得る。
次に、図11を参照すると、サイドカー、または他のアシスタントアプリケーション、プログラム、またはその組み合わせが、1または複数の通信、実行される他の動作、またはその組み合わせをオフロードするために、任意の個別のサービスコンポーネントによって利用され得る。このように、サービスコンポーネント自体は、非集中型通信プロトコルのいくつかの実装ロジックをサイドカーにオフロードすることなどによって、利用されるサイズ、メモリ、またはその組み合わせを制限し得る。1または複数の実施形態において、サイドカーは、コンテナ化されたアプリケーションであり得る。1または複数の実施形態において、サイドカー、または関連するコンテナは、サイドカーを利用するそれぞれのサービスコンポーネントのコンテナ内に配設され得る。サイドカーアプリケーションは、サイドカーアプリケーションを利用するそれぞれのサービスコンポーネントのストレージに関する任意の好適な場所に格納され得ることを理解されたい。
図11において、3つのダイアグラム1100、1130、および1160は、サイドカーアプリケーションの異なる使用を示す。ダイアグラム1100において、サイドカーアプリケーションは、投票通信を受信して組み合わせるために、また、最終決定通信を判定および送信するために利用され得る。ダイアグラム1100において、サービスコンポーネントは、初回またはイニシエータのサービスコンポーネント(例えば、トランザクションの最上流サービスコンポーネント)である。ダイアグラム1100におけるサイドカーアプリケーションはまた、ダイアグラム1100において、それぞれのサービスコンポーネントについて、個々の通信ログ(例えばローカルログ)を生成する、格納する、またはその組み合わせのために利用され得る。ダイアグラム1130において、サイドカーアプリケーションは、ダイアグラム1130において、それぞれのサービスコンポーネントについて、個々の通信ログ(例えばローカルログ)を生成する、格納する、またはその組み合わせのためのみに利用され得る。ダイアグラム1160において、サイドカーアプリケーションは、ダイアグラム1160において、それぞれのサービスコンポーネントについて、個々の通信ログ(例えばローカルログ)を生成する、格納する、またはその組み合わせのために利用され得る。また、ダイアグラム1160において、サイドカーアプリケーションは、投票通信を受信する、組み合わせる、送信するために利用され得る。ダイアグラム1160におけるサイドカーアプリケーションはまた、最終決定通信を送信するために利用されないことに留意されたい。
ここで、図12および図13を参照すると、これらの図は共に、非限定的システム300に関して本明細書に記載される1または複数の実施形態による、トランザクションの要求の進行に関するコンセンサスについてのプロセスを促進し得る、非限定的なコンピュータ実装方法1200の一例のフロー図を示す。コンピュータ実装方法1200は、非限定的システム300に関して記載されるが、コンピュータ実装方法1200は、非限定的システム100、非限定的システム400、またはその組み合わせにも適用可能であり得ることを理解されたい。また、コンピュータ実装方法1200のフローブロックの多くは、単一のサービスコンポーネント308に関して実行されることを理解されたい。それにもかかわらず、コンピュータ実装方法1200は、特定のトランザクションの非限定的システム300の1または複数の他のサービスに関連し得る。追加的に、1または複数のフローブロックが単一のサービスコンポーネント308に関することは、それぞれのトランザクションが、1または複数の追加のサービスコンポーネント、サービス、またはその組み合わせを含み得ることを否定しない。それぞれの実施形態において利用される同様の要素もしくはプロセスまたはその組み合わせの繰り返しの説明は、簡潔にするために省略される。
最初に図12の1202を参照すると、コンピュータ実装方法1200は、プロセッサ(例えばプロセッサ306)に動作可能に結合されたシステムによって(例えば、サービスコンポーネント308、要求促進システム302、またはその組み合わせを介して)、初回の要求(例えば、初回の要求303)を初回サービスコンポーネント(例えば、トランザクションAのサービスコンポーネント308)において受信することを含み得る。
1204において、コンピュータ実装方法1200は、システムによって(例えばサービスコンポーネント308を介して)第2の要求(例えば、サービス308Aの通信要求操作)を次の/前のサービスコンポーネント(例えば、サービスコンポーネント308によって実行されるサービスのすぐ下流にあるトランザクションのサービスを実行するもの)へ伝達することを含み得る。
1206において、コンピュータ実装方法1200は、システムによって(例えば、サービスコンポーネント308を介して)、サービスコンポーネント(例えばサービスコンポーネント308)によって操作されるサービス(例えばサービス308A)を実行するための要求について、投票(例えば、イエス/ノー)を判定することを含み得る。
1208において、コンピュータ実装方法1200は、システム(例えばサービスコンポーネント308)によって、投票を次の/前のサービスコンポーネント(例えば、サービスコンポーネント308によって実行されるサービスのすぐ下流にあるトランザクションのサービスを操作するもの)へ送信するかどうか、または、投票(それぞれのログコンポーネント309を利用するなど、サービスコンポーネント308の個々のログなど)を記録するかどうかを判定することを含み得る。例えば、サービスコンポーネント308は最上流サービスである場合、投票は送信されず、むしろ、方法はブロック1212に進行する。例えば、サービスコンポーネント308の投票は投票ではない場合、方法はブロック1212に進行し得る。例えば、サービスコンポーネント308の投票がイエス投票である場合、または、サービスコンポーネント308が要求通信を送信した先の下流参加者サービスから投票がまだ受信されていない場合、方法はむしろ、ブロック1210に進行し得る。
1210において、コンピュータ実装方法1200は、システムによって(例えば、サービスコンポーネント308を介して)、下流参加者(例えば、トランザクションAのサービスコンポーネント358)からの投票(例えば、投票通信)を待機することを含み得る。
1212において、コンピュータ実装方法1200は、システムによって(例えば、サービスコンポーネント308、ログコンポーネント309、またはその組み合わせを介して)、投票(例えば、投票通信または投票決定)を送信または記録することを含み得る。
1214において、コンピュータ実装方法1200は、システムによって(例えばサービスコンポーネント308を介して)最終決定(例えば最終決定通信)を判定する、または、受信することを含み得る。すなわち、サービスコンポーネント308がイニシエータサービスコンポーネントである場合、サービスコンポーネント308は、最終決定通信を判定し得る。代替的に、サービスコンポーネント308が中間サービスコンポーネントである場合、サービスコンポーネント308は、トランザクション(例えば、トランザクションA)においてすぐ上流から最終決定を受信し得る。
次に、図13は、図12のフロー図において部分的に示される方法1200の代替的な続きを示す。図13において、図12の方法1200が継続し、図12および図13の各々において示される続きの三角形「B」1220によって表される。それぞれの実施形態において利用される同様の要素もしくはプロセスまたはその組み合わせの繰り返しの説明は、簡潔にするために省略される。
1302において、コンピュータ実装方法1200は、システムによって(例えば、サービスコンポーネント308を介して)、例えば、トランザクション(例えばトランザクションA)における下流で、最終決定(例えば、最終決定通信)を送信することを含み得る。
1304において、コンピュータ実装方法1200は、システムによって(例えば、サービスコンポーネント308、ログコンポーネント309、またはその組み合わせを介して)、サービスコンポーネント(例えばサービスコンポーネント308)が参加する(例えば、送信またはその組み合わせ受信する)1または複数の通信を記録することを含み得る。
1306において、コンピュータ実装方法1200は、システムによって(例えば、観察コンポーネント354を介して)通信を観察することを含み得る。
1308において、コンピュータ実装方法1200は、システムによって(例えば、サービスコンポーネント308を介して)、サービス(例えばサービス308A)を操作して、トランザクション(例えばトランザクションA)の少なくとも一部を実行することを含み得る。
1310において、コンピュータ実装方法1200は、システムによって(例えば、サービスコンポーネント308を介して)、実行されたサービス(例えばサービス308A)の出力を提供することを含み得る。
説明を簡潔にするために、本明細書において提供されるコンピュータ実装方法は、一連の行動として図示される、記載される、またはその組み合わせである。主題のイノベーションは、示される行動、もしくは、行動の順序またはその組み合わせによって限定されるものではないことが理解され、認識されるべきである。例えば、行動は、本明細書において提示および記載されない他の行動と共に、1または複数の順序で、同時に、またはその組み合わせで生じ得る。更に、示されるすべての行動が、記載される主題によるコンピュータ実装方法を実装するために利用され得るわけではない。加えて、当業者であれば、コンピュータ実装方法が代替的に、状態図またはイベントを介して、相互に関連のある一連の状態として表され得ることを理解し、認識するであろう。追加的に、以降で、および、本明細書全体を通して記載されるコンピュータ実装方法は、そのようなコンピュータ実装方法をコンピュータへ移送および転送することを促進するために製品に保存されることが可能であることが更に認識されるべきである。製品という用語は、本明細書において使用される場合、任意のコンピュータ可読デバイスまたは記憶媒体からアクセス可能なコンピュータプログラムを包含することが意図される。
まとめると、本明細書に記載された1または複数の実施形態は、既存の技法と比較して、トランザクションによって受信された要求に関するコンセンサス到達の実行の改善を可能にし得る。この改善された実行は、コンセンサスに近づく、到達する、またはその組み合わせのための通信を、トランザクションのサービスコンポーネントのセットのサービスコンポーネントの次の/前のものの間の実行に制限することを介して達成され得る。ここで、次の/前のものとは、(例えば、通信サービスによって実行されるサービスに関する)トランザクションのすぐ上流または下流のサービスを操作するものである。1または複数の実施形態において、そのような通信は、通信のための包括的な管理を利用することなく進行し得る。むしろ、通信は、トランザクションのサービスコンポーネントのセットの各個別のサービスコンポーネントによって管理される。
制限された通信のこの方式に鑑み、任意のサービスコンポーネント、他のコンポーネント、またはその組み合わせにおけるサービスコンポーネントのセットの各サービスコンポーネントに関する包括的な知識が回避され得る。すなわち、任意のサービスコンポーネントの次の/前のものでないサービスコンポーネントに関する知識の共有が回避され得る。したがって、懸念の1つのサービスコンポーネントにおける信頼、セキュリティ、またはその組み合わせの障害は、懸念のサービスの次の/前の1または複数のサービスコンポーネントのみに関する知識に限定され得る。追加的に、包括的通信マネージャのための処理能力およびメモリの利用も回避され得る。
1または複数の場合において、本明細書に記載される1または複数の実施形態は、既存の技法と比較して、本明細書に記載される1または複数の実施形態の実行時間、実行品質、またはその組み合わせの増加に鑑み、1または複数のトランザクションコンセンサス到達、要求促進、またはその組み合わせの実行のスケールの増加を可能にし得る。追加的に、代替的に、またはその組み合わせで、記載された主題の利用は、記載された主題による包括的通信マネージャを利用することを回避することに少なくとも鑑み、トランザクションコンセンサス到達、要求促進、またはその組み合わせを実行するために利用されるシステムのコスト、複雑性、またはその組み合わせを低減することを可能にし得る。
本明細書に記載される要求促進システムの実際の適用では、そのようなシステムは、1または複数のドメインにおいて実装され、コンセンサス実行など、スケーリングされたプログラム実行を可能にし得る。実際、本明細書に記載されるような要求促進システムの使用はスケーリング可能であり得、例えば、要求促進システムは、同一または異なるトランザクションに関する少なくとも1つのコンセンサスの近づき/到達を、別のコンセンサスの近づき/到達と同時に、少なくとも部分的に並列に実行し得る。本明細書に記載される1または複数の実施形態の別の実際の適用は、1または複数の個別に管理された通信を実行するための、例えば、トランザクションの1または複数のサービスコンポーネントにおける、1または複数の実行命令の個別に制御された実行であり得る。別の例において、本明細書に記載される1または複数の実施形態の別の実際の適用は、1または複数の現実世界のコンピュータ、コンピュータ支援、促進、またはその組み合わせのデバイス、またはその組み合わせによる、例えば、財務、金銭、予約、購入結果、またはその組み合わせなど、1または複数の現実世界の結果を有する1または複数のサービスを操作するための1または複数のサービスコンポーネントによる、1または複数の操作を実行するための1または複数の実行命令の制御された実行であり得る。
更に、本明細書に記載される要求促進システムは、そのような要求促進システムを操作する、含む、またはその組み合わせであるコンピュータ、コンピュータシステム、またはその組み合わせの1または複数の技術的改善を促進し得る。例えば、本明細書に記載される要求促進システムは、包括的通信マネージャを利用することなく、個々の通信管理を提供し得る。このようにして、既存の技法と比較して、低減されたメモリ、時間、計算能力、またはその組み合わせの採用、利用、またはその組み合わせが促進され得る。結果として、本明細書に記載される要求促進は、既存の技法と比較して、より速い、より効率的な、またはその組み合わせであるコンセンサス接近/到達を促進し得る。
システム、デバイス、またはその組み合わせは、1または複数のコンポーネント間のインタラクションに関して、本明細書に記載された(更に記載される、またはその組み合わせ)。そのようなシステム、コンポーネント、またはその組み合わせは、それに指定されたそれらのコンポーネントまたはサブコンポーネント、指定されたコンポーネント、サブコンポーネント、またはその組み合わせの1または複数、追加のコンポーネント、またはその組み合わせを含み得ることを理解されたい。サブコンポーネントは、親コンポーネントに含まれるのではなく、他のコンポーネントに通信可能に結合されたコンポーネントとして実装され得る。1または複数のコンポーネント、サブコンポーネント、またはその組み合わせは、集約的な機能性を提供する単一のコンポーネントに組み合わせられ得る。コンポーネントは、簡潔性のために、本明細書において具体的には記載されないが、当業者に知られている1または複数の他のコンポーネントとインタラクトし得る。
本明細書に記載される1または複数の実施形態は、本質的に、密接に、またはその組み合わせで、コンピュータ技術に関連し、コンピューティング環境の外部で実装できないことを理解されたい。例えば、本明細書に記載される1または複数の実施形態によって実行される1または複数のプロセスは、既存システム、技法、またはその組み合わせと比較して、より効率的に、更により実現可能に、プログラム、プログラム命令実行、またはその組み合わせを提供し得る。これらのプロセスの実行を促進するシステム、コンピュータ実装方法、コンピュータプログラム製品、またはその組み合わせは、サービス、マイクロサービス、またはその組み合わせのトランザクション、関連する演算、またはその組み合わせの分野において非常に有用であり、コンピューティング環境の外部において、合理的な手段で等しく実行可能に実装されることができない。
また、本明細書に記載される1または複数の実施形態は、ハードウェア、ソフトウェア、またはその組み合わせを利用して、抽象的でなく、人間による精神的な活動のセットとして実行されることができない、本質的に高度に技術的である問題(例えば、デジタル‐アナログ変換、複数のデータのバイナリ検索、またはその組み合わせに関する)を解決し得ることを理解されたい。例えば、人間、または更には数千の人間は、本明細書に記載の1または複数の実施形態がこのプロセスを促進し得る時間において、デジタル‐アナログ変換、複数データのバイナリ検索、またはその組み合わせを効率的に、正確に、効果的に、またはその組み合わせで計算できない。そして、人間の精神も、ペンと紙を持った人間も、本明細書に記載の1または複数の実施形態によって行われるようなデジタル‐アナログ変換、複数データのバイナリ検索、またはその組み合わせを電子的に計算しない。
1または複数の実施形態において、本明細書に記載されたプロセスの1または複数は、1または複数の特殊化されたコンピュータ(例えば、特殊化された処理ユニット、特殊化された古典的コンピュータ、特殊化された量子コンピュータ、特殊化されたハイブリッド古典的/量子システム、別のタイプの特殊化されたコンピュータ、またはその組み合わせ)によって実行され、上に記載された1または複数の技術に関する定義されたタスクを実行し得る。本明細書において記載される1または複数の実施形態、そのコンポーネント、またはその組み合わせが、上で言及された技術の発展、量子コンピューティングシステム、クラウドコンピューティングシステム、コンピュータアーキテクチャ、もしくは別の技術またはその組み合わせの利用を通じて生じる新しい問題を解決するために利用され得る。
本明細書に記載される1または複数の実施形態は、1または複数の他の機能を実行することについて、完全に動作可能であり得(例えば、完全に電源オンされる、完全に実行される、別の機能、またはその組み合わせ)、その間また、本明細書に記載される1または複数の動作を実行する。
次に図14~図16を参照すると、図1~図13において本明細書に記載される1または複数の実施形態についての追加コンテキストの詳細な説明が提供される。
図14および以下の説明は、図1~図13において本明細書に記載される1または複数の実施形態が実装され得る好適な動作環境1400の簡潔で一般的な説明を提供することが意図される。例えば、1または複数のコンポーネント、本明細書に記載される実施形態の他の態様、またはその組み合わせが、動作環境1400において、または、それに関連して、例えば、それを介してアクセス可能であるように、実装され得る。更に、1または複数の実施形態が、1または複数のコンピュータ上で実行し得るコンピュータ実行可能命令の一般的なコンテキストにおいて上に記載されたが、当業者であれば、1または複数の実施形態がまた、他のプログラムモジュールと組み合わせて、ハードウェアおよびソフトウェアの組み合わせとして、またはその組み合わせで実装され得ることを認識するであろう。
概して、プログラムモジュールは、特定のタスクを実行する、特定の抽象データタイプを実装する、またはその組み合わせであるルーチン、プログラム、コンポーネント、データ構造、または同様のもの、またはその組み合わせを含む。更に、当業者であれば、発明の方法は、シングルプロセッサまたはマルチプロセッサコンピュータシステム、ミニコンピュータ、メインフレームコンピュータ、インターネットオブシングス(IoT)デバイス、分散コンピューティングシステム、ならびにパーソナルコンピュータ、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベース、または、プログラム可能な消費者用電化製品、同様のもの、またはその組み合わせ(その各々は、1または複数の関連するデバイスに動作可能に結合され得る)を含む他のコンピュータシステム構成を用いて実施され得ることを理解するであろう。
コンピューティングデバイスは典型的には、コンピュータ可読記憶媒体、機械可読記憶媒体、通信媒体、またはその組み合わせを含み得る、様々な媒体を含む。この2つの用語は本明細書において、以下のように、互いと異なるように使用される。コンピュータ可読記憶媒体、または、機械可読記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な記憶媒体であり得、揮発性媒体および不揮発性媒体、取り外し可能または非取り外し可能媒体の両方を含む。例として、限定されないが、コンピュータ可読記憶媒体、機械可読記憶媒体、またはその組み合わせは、コンピュータ可読、機械可読、またはその組み合わせの命令、プログラムモジュール、構造化データ、非構造化データ、またはその組み合わせなど、情報のストレージのための任意の方法または技術に関連して実装され得る。
コンピュータ可読記憶媒体は、限定されるものではないが、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、電気消去可能プログラマブルリードオンリメモリ(EEPROM)、フラッシュメモリ、または他のメモリ技術、コンパクトディスクリードオンリメモリ(CD‐ROM)、デジタルバーサタイルディスク(DVD)、ブルーレイディスク(BD)、他の光ディスクストレージ、またはその組み合わせ、磁気カセット、磁気テープ、磁気ディスクストレージ、他の磁気ストレージデバイス、またはその組み合わせ、ソリッドステートドライブ、または他のソリッドステートストレージデバイス、所望の情報を格納するために使用され得る他の有形、非一時的、またはその組み合わせの媒体、またはその組み合わせを含み得る。これに関して、ストレージ、メモリ、またはコンピュータ可読媒体に適用される、本明細書における「有形」または「非一時的」という用語は、修飾語としての、伝達するだけの一時的信号自体を除外するものとして理解され、伝達するだけの一時的信号自体でない、すべての標準的なストレージ、メモリ、コンピュータ可読媒体、またはその組み合わせに対する権利を放棄しない。
コンピュータ可読記憶媒体は、1または複数のローカルまたはリモートコンピューティングデバイスによって、例えば、媒体によって格納される情報に関する様々な操作のための、アクセス要求、クエリ、他のデータ取得プロトコル、またはその組み合わせを介してアクセスされ得る。
通信媒体は典型的には、コンピュータ可読命令、データ構造、プログラムモジュール、または他の構造化もしくは非構造化データを、変調データ信号、例えば、搬送波または他の輸送機構などのデータ信号において具現化し、任意の情報送達、または輸送媒体を含む。「変調データ信号」という用語または信号は、その特徴的なセットの1または複数を有する、または、1または複数の信号において情報を符号化するような方式で変更された信号を指す。例として、限定ではないが、通信媒体は、有線媒体、例えば、有線ネットワーク、直接有線接続、無線媒体(音、無線周波数、赤外線、他の無線媒体、またはその組み合わせなど)、またはその組み合わせを含み得る。
再び図14を参照すると、本明細書に記載された態様の1または複数の実施形態を実装するための例示的な動作環境1400は、コンピュータ1402を含み得、コンピュータ1402は、処理ユニット1406、システムメモリ1404、システムバス1408、またはその組み合わせを含む。システムメモリ1404または処理ユニット1406の1または複数の態様は、それぞれ非限定的システム100、300、400、またはその組み合わせの104、304、404、またはその組み合わせなどのメモリ、106、306、406、またはその組み合わせなどのプロセッサ、またはその組み合わせに適用され得ることを理解されたい。システムメモリ1404は、104、304、404、またはその組み合わせなどのメモリと組み合わせて、それに代替的に、またはその組み合わせで実装され得ることも理解されたい。同様に、処理ユニット1406は、106、306、406、またはその組み合わせなどのプロセッサと組み合わせて、それに代替的に、またはその組み合わせで実装され得ることも理解されたい。
メモリ1404は、処理ユニット1406(例えば、古典的プロセッサ、量子プロセッサ、および同様のプロセッサ、またはその組み合わせ)によって実行されるとき、実行可能コンポーネント、命令、またはその組み合わせによって定義される操作の実行を促進し得る1または複数のコンピュータ可読、機械可読、またはその組み合わせの、書き込み可能、実行可能、またはその組み合わせのコンポーネント、命令、またはその組み合わせを格納し得る。例えば、メモリ1404は、処理ユニット1406によって実行されるとき、1または複数の実施形態の1または複数の図を参照して、または参照することなく本明細書において記載される非限定的システム100、300、400、またはその組み合わせ、要求促進システム(102、202、302、402、またはその組み合わせなど)、またはその組み合わせに関する、本明細書に記載される1または複数の機能の実行を促進し得るコンピュータ可読、機械可読、またはその組み合わせの、書き込み可能、実行可能、またはその組み合わせのコンポーネント、命令、またはその組み合わせを格納し得る。
メモリ1404は、1または複数のメモリアーキテクチャを利用し得る、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)、スタティックRAM(SRAM)、ダイナミックRAM(DRAM)、同様のもの、またはその組み合わせ)、不揮発性メモリ(例えば、リードオンリメモリ(ROM)、プログラマブルROM(PROM)、電気プログラマブルROM(EPROM)、電気消去可能プログラマブルROM(EEPROM)、同様のもの、またはその組み合わせ)、またはその組み合わせを含み得る。
処理ユニット1406は、メモリ1404に格納され得る、1または複数のコンピュータ可読、機械可読、またはその組み合わせの、書き込み可能、実行可能、またはその組み合わせのコンポーネント、命令、またはその組み合わせを実装し得る1または複数のタイプのプロセッサ、電子回路(例えば、古典的プロセッサ、量子プロセッサ、同様のプロセッサ、またはその組み合わせ)、またはその組み合わせを含み得る。例えば、処理ユニット1406は、ロジック、制御、入力/出力(I/O)、算術、同様のもの、またはその組み合わせを含むがそれに限定されるものではない、コンピュータ可読、機械可読、またはその組み合わせの、書き込み可能、実行可能、またはその組み合わせのコンポーネント、命令、またはその組み合わせによって指定され得る1または複数の操作を実行し得る。1または複数の実施形態において、処理ユニット1406は、1または複数の市販のプロセッサのいずれかであり得る。1または複数の実施形態において、処理ユニット1406は、1または複数の中央処理ユニット、マルチコアプロセッサ、マイクロプロセッサ、デュアルマイクロプロセッサ、マイクロコントローラ、システムオンチップ(SOC)、アレイプロセッサ、ベクタプロセッサ、量子プロセッサ、別のタイプのプロセッサ、またはその組み合わせを含み得る。処理ユニット1406の例は、本明細書に記載された1または複数の実施形態を実装するために利用され得る。
システムバス1408は、システムメモリ1404を含むがこれに限定されるものではないシステムコンポーネントを処理ユニット1406に結合し得る。システムバス1408は、様々な市販のバスアーキテクチャの1または複数を使用して、(メモリコントローラを用いて、または用いることなく)メモリバス、ペリフェラルバス、ローカルバス、またはその組み合わせに更に相互接続し得る1または複数のタイプのバス構造を含み得る。システムメモリ1404は、ROM1410、RAM1412、またはその組み合わせを含み得る。基本入出力システム(BIOS)は、ROM、消去可能プログラマブルリードオンリメモリ(EPROM)、EEPROM、またはその組み合わせなどの不揮発性メモリに格納され得る。BIOSは、起動中など、コンピュータ1402内の要素間で情報を転送することを助ける基本ルーチンを含む。RAM1412は、データをキャッシュするためのスタティックRAMなど、高速RAMを含み得る。
コンピュータ1402は、内部ハードディスクドライブ(HDD)1414(例えば、EIDE、SATA)、1または複数の外部ストレージデバイス1416(例えば、磁気フロッピディスクドライブ(FDD)、メモリスティック、またはフラッシュドライブリーダ、メモリカードリーダ、同様のもの、またはその組み合わせ)、CD-ROMディスク、DVD、BD、同様のもの、またはその組み合わせなどのディスク1422から読み込み得る、または書き込み得るドライブ1420(例えば、ソリッドステートドライブまたは光学ディスクドライブなど)、またはその組み合わせを含み得る。追加的に、代替的に、またはその組み合わせで、ソリッドステートドライブが関与する場合、別個でない限り、ディスク1422は含まれないことがあり得る。内部HDD1414がコンピュータ1402内に位置するものとして示されるが、内部HDD1414は、好適なシャーシ(不図示)における外部使用のためにも構成され得る。追加的に、動作環境1400において不図示であるが、ソリッドステートドライブ(SSD)は、HDD1414に加えて、または、その代わりに使用され得る。HDD1414、外部ストレージデバイス1416、ドライブ1420は、HDDインタフェース1424によって、システムバス1408、外部ストレージインタフェース1426、およびドライブインタフェース1428にそれぞれ接続され得る。外部ドライブ実装のためのHDDインタフェース1424は、ユニバーサルシリアルバス(USB)、および、米国電気電子学会(IEEE)1394インタフェース技術の少なくとも一方または両方を含み得る。他の外部ドライブ接続技術は、本明細書に記載される実施形態の構想内にある。
ドライブおよびその関連するコンピュータ可読記憶媒体は、データ、データ構造、コンピュータ実行可能命令などの不揮発性ストレージを提供する。コンピュータ1402については、ドライブおよび記憶媒体は、好適なデジタルフォーマットの任意のデータのストレージに対応する。上のコンピュータ可読記憶媒体の説明は、それぞれのタイプのストレージデバイスを指すが、当業者であれば、現在既存の、または、将来開発される、コンピュータ可読である他のタイプの記憶媒体も、例示的な動作環境において使用され得ること、任意のそのような記憶媒体は、本明細書に記載される方法を実行するためのコンピュータ実行可能命令を含み得ること、またはその組み合わせを理解するであろう。
多くのプログラムモジュールは、オペレーティングシステム1430、1または複数のアプリケーション1432、他のプログラムモジュール1434、プログラムデータ1436、またはその組み合わせを含むドライブおよびRAM1412に格納され得る。オペレーティングシステム、アプリケーション、モジュール、データ、またはその組み合わせのすべて、または一部はまた、RAM1412にキャッシュされ得る。本明細書に記載されるシステム、方法、またはその組み合わせは、1または複数の市販のオペレーティングシステム、オペレーティングシステムの組み合わせ、またはその組み合わせを利用して実装され得る。
コンピュータ1402は任意で、エミュレーション技術を含み得る。例えば、ハイパーバイザ(不図示)または他の中間物は、オペレーティングシステム1430のためのハードウェア環境をエミュレートし得、エミュレートされたハードウェアは任意で、図14に示されるハードウェアとは異なり得る。関連する実施形態において、オペレーティングシステム1430は、コンピュータ1402でホストされる複数のVMのうち1つの仮想マシン(VM)を含み得る。更に、オペレーティングシステム1430は、アプリケーション1432のためのJAVA(登録商標)ランタイム環境、または、.NETフレームワークなどのランタイム環境を提供し得る。ランタイム環境は、ランタイム環境を含む任意のオペレーティングシステム上でアプリケーション1432が実行することを可能にし得る一貫した実行環境である。同様に、オペレーティングシステム1430は、コンテナをサポートし得、アプリケーション1432は、コンテナの形式であり得る。コンテナは、例えばコード、ランタイム、システムツール、システムライブラリ、アプリケーションのための設定、またはその組み合わせを含むソフトウェアの軽量で、スタンドアロンで、実行可能なパッケージである。
更に、コンピュータ1402は、信頼される処理モジュール(TPM)などのセキュリティ・モジュールに対応し得る。例えば、TPMにより、ブートコンポーネントは、時間的に次のブートコンポーネントをハッシュし、次のブートコンポーネントをロードする前に、セキュアな値に対する結果のマッチを待機する。このプロセスは、コンピュータ1402のコード実行スタックの任意の層において生じ得、例えば、アプリケーション実行レベル、オペレーティングシステム(OS)カーネルレベル、またはその組み合わせに適用され、それによって、コード実行の任意のレベルでセキュリティを可能にする。
エンティティは、1または複数の有線/無線入力デバイス、例えば、キーボード1438、タッチ画面1440、マウス1442などのポインティングデバイス、またはその組み合わせを通じて、コマンド、情報、またはその組み合わせをコンピュータ1402に入れる、送信する、またはその組み合わせを行い得る。他の入力デバイス(不図示)は、マイク、赤外線(IR)リモート制御、無線周波数(RF)リモート制御、他のリモート制御、またはその組み合わせ、ジョイスティック、仮想現実コントローラ、仮想現実ヘッドセット、またはその組み合わせ、ゲームパッド、スタイラスペン、例えばカメラなどのイメージ入力デバイス、ジェスチャセンサ入力デバイス、視覚動作センサ入力デバイス、感情または表情検出デバイス、例えば指紋スキャナ、光彩スキャナ、またはその組み合わせであるバイオメトリクス入力デバイス、同様のもの、またはその組み合わせを含み得る。これら、および、他の入力デバイスは、システムバス1408に結合され得る入力デバイスインタフェース1444を通じて処理ユニット1406に接続され得るが、並列ポート、IEEE1394シリアルポート、ゲームポート、USBポート、IRインタフェース、BLUETOOTHインタフェース、および同様のもの、またはその組み合わせなど、他のインタフェースに接続され得る。
モニタ1446、または他のタイプのディスプレイデバイスは、代替的に、追加的に、またはその組み合わせで、ビデオアダプタ1448などのインタフェースを介してシステムバス1408に接続され得る。モニタ1446に加えて、コンピュータは典型的には、スピーカ、プリンタ、および同様のもの、またはその組み合わせなど他の周辺出力デバイス(不図示)を含む。
コンピュータ1402は、リモートコンピュータ1450など、1または複数のリモートコンピュータに対する有線通信、無線通信、またはその組み合わせを介した論理接続を使用して、ネットワーク環境において動作し得る。リモートコンピュータ1450は、ワークステーション、サーバコンピュータ、ルータ、パーソナルコンピュータ、ポータブルコンピュータ、マイクロプロセッサベースのエンタテイメント機器、ピアデバイス、他の一般的なネットワークノード、またはその組み合わせであり得、典型的には、コンピュータ1402に関して記載される要素の多くまたはすべてを含む。ただし、簡潔にする目的で、メモリストレージデバイス1452のみが示される。追加的に、代替的に、またはその組み合わせで、コンピュータ1402は、データケーブル(例えば、高精細度マルチメディアインタフェース(HDMI(登録商標))、推奨規格(RS)232、イーサネット(登録商標)ケーブル、および同様のもの、またはその組み合わせ)を介して、1または複数の外部システム、ソース、デバイス、またはその組み合わせ(例えば、古典的コンピューティングデバイス、量子コンピューティングデバイス、またはその組み合わせ、通信デバイス、および同様のデバイス、またはその組み合わせ)に(例えば、通信可能に、電気的に、動作可能に、光学的に、および同様のもの、またはその組み合わせで)結合され得る。
1または複数の実施形態において、ネットワークは、セルラネットワーク、ワイドエリアネットワーク(WAN)(例えば、インターネット)、またはローカルエリアネットワーク(LAN)を含むがこれらに限定されるものではない、1または複数の有線ネットワーク、無線ネットワーク、またはその組み合わせを含み得る。例えば、本明細書に記載された1または複数の実施形態は、限定されるものではないが、ワイヤレスフィデリティ(Wi-Fi)、モバイル通信のためのグローバルシステム(GSM)、ユニバーサルモバイルテレコミュニケーションシステム(UMTS)、ワールドワイドインターオペラビリティフォーマイクロウェーブアクセス(WiMAX)、強化型汎用パケット無線サービス(強化型GPRS)、第3世代パートナシッププロジェクト(3GPP)ロングタームエボリューション(LTE)、第3世代パートナシッププロジェクト2(3GPP2)ウルトラモバイルブロードキャスト(UMB)、高速パケットアクセス(HSPA)、Zigbeeおよび他の802.XX無線技術もしくはレガシーテレコミュニケーション技術またはその組み合わせ、BLUETOOTH(登録商標)、セッション開始プロトコル(SIP)、ZIGBEE(登録商標)、RF4CEプロトコル、無線HARTプロトコル、6LoWPAN(低電力無線エリアネットワーク上のIPv6)、Z‐ウェーブ、ANT、超広帯域(UWB)規格プロトコル、他のプロプライエタリまたはその組み合わせ、非プロプライエタリの通信プロトコルまたはその組み合わせを含む、事実上任意の所望される有線または無線技術を使用して、1または複数の外部システムソース、デバイス、またはその組み合わせ、例えば、コンピューティングデバイス(逆も同様)と通信し得る。関連する例において、本明細書に記載される1または複数の実施形態は、ハードウェア(例えば、中央処理ユニット(CPU)、トランシーバ、デコーダ、量子ハードウェア、量子プロセッサ、同様のもの、またはその組み合わせ)、ソフトウェア(例えば、スレッドのセット、プロセスのセット、実行中のソフトウェア、量子パルススケジュール、量子回路、量子ゲート、同様のもの、またはその組み合わせ)、本明細書に記載される1または複数の実施形態と、外部システム、ソース、デバイス、またはその組み合わせ(例えば、コンピューティングデバイス、通信デバイス、同様のもの、またはその組み合わせ)との間での情報の通信を促進するハードウェア、ソフトウェア、またはその組み合わせ、またはその組み合わせを含み得る。
図示される論理接続は、ローカルエリアネットワーク(LAN)1454、より大きいネットワーク、例えばワイドエリアネットワーク(WAN)1456、またはその組み合わせに対する有線/無線接続を含む。LANおよびWANネットワーキング環境は、オフィスおよび会社で一般的であり得、イントラネットなど企業全体のコンピュータネットワークを促進し得、それらはすべて、包括的通信ネットワーク、例えばインターネットに接続され得る。
LANネットワーキング環境において使用されるとき、コンピュータ1402は、有線、無線、またはその組み合わせの通信ネットワークインタフェースまたはアダプタ1458を通じてローカルネットワーク1454に接続され得る。アダプタ1458は、LAN1454への有線、無線、またはその組み合わせの通信を促進し得る。LAN1454はまた、無線モードにおいてアダプタ1458と通信するためにその上に配設される無線アクセスポイント(AP)を含み得る。
WANネットワーキング環境において使用されるとき、コンピュータ1402は、モデム1460を含み得、インターネットなどの手段によって、WAN1456を介して通信を確立するための他の手段を介して、WAN1456上の通信サーバに接続され得る、またはその組み合わせであり得る。内部、外部、またはその組み合わせであり得るモデム1460、および、有線、無線、またはその組み合わせのデバイスは、入力デバイスインタフェース1444を介してシステムバス1408に接続され得る。ネットワーク環境において、コンピュータ1402またはその一部に関して図示されるプログラムモジュールは、リモートメモリストレージデバイス1452に格納され得る。示されるネットワーク接続は、単に例示であり、コンピュータ間で通信リンクを確立するための1または複数の他の手段が使用され得ることを理解されたい。
LANまたはWANネットワーキング環境のいずれかにおいて使用されるとき、コンピュータ1402は、これらに限定されるものではないが、情報のストレージ、処理、またはその組み合わせの1または複数の態様を提供するネットワーク仮想マシンなど、上に記載された外部ストレージデバイス1416に加えて、その代わりに、またはその組み合わせで、クラウドストレージシステム、または、他のネットワークベースストレージシステムにアクセスし得る。概して、コンピュータ1402とクラウドストレージシステムとの間の接続が、例えばアダプタ1458またはモデム1460によって、それぞれLAN1454またはWAN1456を介して確立され得る。関連するクラウドストレージシステムにコンピュータ1402を接続すると、外部ストレージインタフェース1426は、アダプタ1458、モデム1460、またはその組み合わせの補助などにより、他のタイプの外部ストレージのように、クラウドストレージシステムによって提供されるストレージを管理し得る。例えば、外部ストレージインタフェース1426は、ソースがコンピュータ1402に物理的に接続されているかのように、クラウドストレージソースへのアクセスを提供するよう構成され得る。
コンピュータ1402は、無線通信において動作可能に配設された任意の無線デバイス、エンティティ、またはその組み合わせ、例えば、プリンタ、スキャナ、デスクトップ、ポータブルコンピュータ、またはその組み合わせ、ポータブルデータアシスタント、通信衛星、電話、無線検出可能タグに関連する任意の機器または場所(例えば、キオスク、ニューススタンド、店の棚、同様のもの、またはその組み合わせ)、またはその組み合わせと通信するように動作可能であり得る。これは、ワイヤレスフィデリティ(Wi-Fi)およびBLUETOOTH無線技術を含み得る。したがって、通信は、従来のネットワークと同様に予め定義された構造であってよく、または単に、少なくとも2つのデバイス間のアドホック通信であってよい。
本明細書に記載される、例示の実施形態は、図15に関して下に記載されるものなどの、通信ネットワークを通じてリンクされたリモート処理デバイスによって特定のタスクが実行される分散コンピューティング環境(例えば、クラウドコンピューティング環境)において実施され得る。分散コンピューティング環境において、プログラムモジュールは、ローカル、リモートの両方、またはその組み合わせのメモリストレージデバイスに位置し得る。
例えば、本明細書に記載される1または複数の実施形態、その1または複数のコンポーネント、またはその組み合わせは、図15を参照して下に、図16を参照して下に記載される1または複数の機能抽象化層(例えば、量子ソフトウェア、同様のもの、またはその組み合わせ)を参照して、またはその組み合わせで記載されるクラウドコンピューティング環境1550の1または複数のコンピューティングリソースを利用して、本明細書に記載の1または複数の実施形態による1または複数の操作を実行し得る。例えば、クラウドコンピューティング環境1550、機能抽象化層1660、1670、1680、1690、またはその組み合わせの1または複数、またはその組み合わせは、本明細書に記載される1または複数の実施形態による1または複数の操作を実行するために、本明細書に記載される1または複数の実施形態、そのコンポーネント、またはその組み合わせによって利用され得る、1または複数の古典的コンピューティングデバイス(例えば、古典的コンピュータ、古典的プロセッサ、仮想マシン、サーバ、同様のもの、またはその組み合わせ)、量子ハードウェア、量子ソフトウェア(例えば、量子コンピューティングデバイス、量子コンピュータ、量子プロセッサ、量子回路シミュレーションソフトウェア、超伝導回路、同様のもの、またはその組み合わせ)、またはその組み合わせを含み得る。例えば、本明細書に記載される1または複数の実施形態、そのコンポーネント、またはその組み合わせは、そのような1または複数の古典的コンピュータリソース、量子コンピューティングリソース、またはその組み合わせを利用して、1または複数の古典的数学機能、量子数学機能、またはその組み合わせ、計算、等式、またはその組み合わせ、コンピューティング、処理スクリプト、またはその組み合わせ、アルゴリズム、モデル(例えば、人工知能(AI)モデル、機械学習(ML)モデル、同様のモデル、またはその組み合わせ)、本明細書に記載される1または複数の実施形態による他の操作、またはその組み合わせを実行し得る。
本明細書に記載される1または複数の実施形態は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書において言及される教示の実装は、クラウドコンピューティング環境に限定されるものではないことを理解されたい。むしろ、本明細書に記載される1または複数の実施形態は、現在知られている、または将来開発される任意の他のタイプのコンピューティング環境と連携して実装されることが可能である。
クラウドコンピューティングは、管理の労力またはサービスのプロバイダとのインタラクションを最小限に抑えながら迅速にプロビジョニングおよびリリースできる構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域幅、サーバ、プロセス、メモリ、ストレージ、アプリケーション、仮想マシン、およびサービス)の共有プールに対する便利なオンデマンドのネットワークアクセスを可能するための、サービス提供のモデルである。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデルおよび少なくとも4つの展開モデルを含み得る。
特徴は以下の通りである。
オンデマンドセルフサービス:クラウドコンシューマは、人間とサービスのプロバイダとのインタラクションを要求することなく、必要に応じて自動的に、サーバ時間およびネットワークストレージなどのコンピューティング能力を一方的にプロビジョニングできる。
幅広いネットワークアクセス:機能はネットワーク経由で利用可能であり、異種のシンクライアントプラットフォームまたはシッククライアントプラットフォーム(例えば、携帯電話、ラップトップ、及びPDA)による使用を促進する標準メカニズムを通じてアクセスされる。
リソースプール:プロバイダのコンピューティングリソースはプールされ、マルチテナントモデルを使用して複数のコンシューマにサービスを提供し、異なる物理的および仮想的リソースが需要に応じて動的に割り当ておよび再割り当てされる。概してコンシューマは提供されるリソースの厳密な位置についての制御または知識を有しないが、より高い抽象化レベル(例えば、国、州、またはデータセンタまたはその組み合わせ)で位置を指定可能であり得るという点で、位置独立性の意味がある。
迅速な柔軟性:1または複数の場合においては自動的に、迅速なスケールアウトのために、能力を急速かつ柔軟にプロビジョニングでき、迅速なスケールインのために迅速にリリースできる。コンシューマにとって、プロビジョニングに利用可能な能力は無制限に見えることがあり得、任意の時間に任意の量で購入できる。
測定されたサービス:クラウドシステムは、サービスのタイプに適切な、1または複数の抽象化レベル(例えば、ストレージ、処理、帯域幅、またはアクティブユーザアカウントまたはその組み合わせ)で、測定能力を活用することによって、リソース使用を自動的に制御および最適化する。リソース使用量が監視、制御、レポートされ得、またはその組み合わせが行われ得、利用されるサービスのプロバイダおよびコンシューマの両方に透明性を提供する。
サービスモデルは以下の通りである。
ソフトウェア・アズ・ア・サービス(SaaS):コンシューマに提供される能力は、クラウドインフラストラクチャ上で実行するプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)等のシンクライアントインタフェースを通して様々なクライアントデバイスからアクセス可能である。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージ、または個々のアプリケーション能力またはその組み合わせを含む基礎のクラウドインフラストラクチャを管理または制御しないが、限定されたユーザ固有のアプリケーション構成設定は例外である可能性がある。
サービスとしてのプラットフォーム(PaaS:Platform as a Service):消費者に提供される能力は、クラウドインフラストラクチャ上に、プロバイダによってサポートされるプログラミング言語及びツールを使用して作成される、消費者が作成または取得したアプリケーションを展開することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステム、またはストレージまたはその組み合わせを含む基礎のクラウドインフラストラクチャを管理または制御しないが、展開されたアプリケーション、および、場合によっては、環境構成をホストするアプリケーションに対する制御を有する。
インフラストラクチャ・アズ・ア・サービス(IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワーク、および、コンシューマがオペレーティングシステムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行し得ることが可能な他の基本的なコンピューティングリソースまたはその組み合わせをプロビジョニングすることである。コンシューマは、基礎のクラウドインフラストラクチャを管理または制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーション、場合によっては、選択されたネットワークコンポーネント(例えばホストファイアウォール)の限定された制御またはその組み合わせに対する制御を有する。
展開モデルは以下の通りである。
プライベートクラウド:クラウドインフラストラクチャは、或る組織のためにのみ動作する。組織またはサードパーティによって管理され得、敷地内または敷地外に存在し得る。
コミュニティクラウド:クラウドインフラストラクチャは、複数の組織によって共有され、共有された関心(例えば、役割、セキュリティ要件、ポリシー、コンプライアンス上の考慮事項またはその組み合わせ)を有する特定のコミュニティをサポートする。それは、当該組織または第三者により管理され得、敷地内または敷地外に存在し得る。
パブリッククラウド:クラウドインフラストラクチャは、一般大衆または大規模な業界団体に利用可能とされ、クラウドサービスを販売する組織によって所有される。
ハイブリッドクラウド:クラウドインフラストラクチャは、固有のエンティティであり続けるが、データおよびアプリケーションのポータビリティを可能にする標準化またはプロプライエタリ技術(例えば、クラウド間のロードバランシングのためのクラウドバースティング)によって共に結合される2以上のクラウド(プライベート、コミュニティ、またはパブリック)の複合である。
クラウドコンピューティング環境は、ステートレス、低結合、モジュール性、セマンティック相互運用性またはその組み合わせに対する重点を指向したサービスである。クラウドコンピューティングの中核には、相互接続されたノードからなるネットワークを含むインフラストラクチャが存在する。
更に、非限定的システム100、300、400、またはその組み合わせ、例示的な動作環境1400、またはその組み合わせは、データ解析システム、データ処理システム、グラフ解析システム、グラフ処理システム、ビッグデータシステム、ソーシャルネットワークシステム、音声認識システム、画像認識システム、グラフィカルモデリングシステム、バイオインフォマティクスシステム、データ圧縮システム、人工知能システム、認証システム、構文パターン認識システム、医療システム、健康モニタリングシステム、ネットワークシステム、コンピュータネットワークシステム、通信システム、ルータシステム、サーバシステム、高可溶性サーバシステム(例えば、Telecomサーバシステム)、Webサーバシステム、ファイルサーバシステム、データサーバシステム、ディスクアレイシステム、電源挿入ボードシステム、クラウドベースシステム、同様のもの、またはその組み合わせと関連する、それに含まれる、またはその組み合わせであり得る。これに従って、非限定的システム100、300、400、またはその組み合わせ、例示的な動作環境1400、またはその組み合わせが、ハードウェア、ソフトウェア、またはその組み合わせを使用して、抽象的でない、人間の精神的な活動のセットとして実行できない、またはその組み合わせである、本質的に高度に技術的な問題を解決するために利用され得る。
ここで、図15に示される1または複数の態様の詳細を参照すると、例示的なクラウドコンピューティング環境1550が図示される。示されるように、クラウドコンピューティング環境1550は、例えば、パーソナルデジタルアシスタント(PDA)または携帯電話1554A、デスクトップコンピュータ1554B、ラップトップコンピュータ1554C、自動車コンピュータシステム1554N、またはその組み合わせなど、クラウドコンシューマによって使用されるローカルコンピューティングデバイスが通信し得る1または複数のクラウドコンピューティングノード1510を含む。図15には図示されないが、クラウドコンピューティングノード1510は更に、クラウドコンシューマによって使用されるローカルコンピューティングデバイスが通信し得る量子プラットフォーム(例えば、量子コンピュータ、量子ハードウェア、量子ソフトウェア、同様のもの、またはその組み合わせ)を含み得る。クラウドコンピューティングノード1510は互いと通信し得る。ノードは、上記したようなプライベートクラウド、コミュニティクラウド、パブリッククラウドもしくはハイブリッドクラウドまたはこれらの組み合わせ等の1または複数のネットワークにおいて、物理的または仮想的にグループ化(不図示)されてよい。これにより、クラウドコンピューティング環境1550は、クラウドコンシューマがローカルコンピューティングデバイス上のリソースを維持する必要のないサービスとしてのインフラストラクチャ、サービスとしてのプラットフォームもしくはサービスとしてのソフトウェアまたはその組み合わせを提供できるようにする。図15に示されるコンピューティングデバイス1554A-Nのタイプは、例示のみを意図するものであり、クラウドコンピューティングノード1510およびクラウドコンピューティング環境1550は、(例えばウェブブラウザを使用して)任意のタイプのネットワーク、ネットワークアドレス可能接続、またはその組み合わせを介して任意のタイプのコンピュータ化デバイスと通信し得ると理解されたい。
ここで、図16に示される1または複数の態様の詳細を参照すると、クラウドコンピューティング環境1550(図15)によって提供されるものなどの機能抽象化層のセット1600が示される。本明細書に記載される1または複数の実施形態は、図16を参照して下に記載される1または複数の機能抽象化層(例えば、ハードウェアおよびソフトウェア層1660、仮想化層1670、管理層1680、ワークロード層1690、またはその組み合わせ)に関連し得る(例えば、それを介してアクセス可能である)。図16に示されるコンポーネント、層、機能、またはその組み合わせは、例示のみを意図し、本明細書に記載される実施形態はそれに限定されるものではないことを予め理解されたい。図示されるように、以下の層、対応する機能、またはその組み合わせが提供される。
ハードウェアおよびソフトウェア層1660は、ハードウェアおよびソフトウェアコンポーネントを含み得る。ハードウェアコンポーネントの例は、メインフレーム1661、RISC(最小命令セットコンピュータ)アーキテクチャベースサーバ1662、サーバ1663、ブレードサーバ1664、ストレージデバイス1665、ネットワーク、ネットワークコンポーネント1666、またはその組み合わせ、またはその組み合わせを含む。1または複数の実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア1667、量子プラットフォームルーティングソフトウェア1668、量子ソフトウェア(図16において示されない)、またはその組み合わせを含み得る。
仮想化層1670は、抽象化層を提供し得る。抽象化層からは、仮想エンティティの以下の例、すなわち、仮想サーバ1671、仮想ストレージ1672、仮想プライベートネットワークを含む仮想ネットワーク1673、仮想アプリケーション、オペレーティングシステム1674、またはその組み合わせ、仮想クライアント1675、またはその組み合わせが提供され得る。
一例において、管理層1680は、以下に記載される機能を提供し得る。リソースプロビジョニング1681は、クラウドコンピューティング環境内のタスクを実行するために利用され得るコンピューティングリソースおよび他のリソースの動的な調達を提供し得る。測定および価格設定1682は、リソースがクラウドコンピューティング環境内で用いられる際のコスト追跡、これらのリソースの消費に対する課金、請求書送付、またはその組み合わせ、またはその組み合わせを提供し得るる。一例において、これらのリソースは、1または複数のアプリケーションソフトウェアライセンスを含み得る。セキュリティは、クラウドコンシューマ、タスク、またはその組み合わせのための身元確認、および、データ、他のリソース、またはその組み合わせのための保護を提供し得る。ユーザ(またはエンティティ)ポータル1683は、コンシューマおよびシステム管理者のために、クラウドコンピューティング環境へのアクセスを提供し得る。サービスレベル管理1684は、要求されるサービスレベルが満たされるように、クラウドコンピューティングリソース割り当て、管理、またはその組み合わせを提供し得る。サービスレベルアグリーメント(SLA)プランニングおよび遂行1685は、SLAに従い将来の要件が予期されるクラウドコンピューティングリソースに対する事前取り決めおよび調達を提供し得る。
ワークロード層1690は、クラウドコンピューティング環境が利用され得る機能性の例を提供し得る。この層から提供され得るワークロードおよび機能の非限定的な例は、マッピングおよびナビゲーション1691、ソフトウェア開発およびライフサイクル管理1692、仮想クラスルーム教育配信1693、データ解析処理1694、トランザクション処理1695、アプリケーション変換ソフトウェア1696、またはその組み合わせを含む。
本明細書に記載される実施形態は、統合の任意の可能な技術的詳細レベルにおけるシステム、方法、装置、コンピュータプログラム製品、またはその組み合わせのうち1または複数に関し得る。コンピュータプログラム製品は、本明細書に記載された1または複数の実施形態の態様をプロセッサに実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(または複数の媒体)を含み得る。コンピュータ可読記憶媒体は、命令実行デバイスによって使用されるための命令を保持及び格納できる有形デバイスであり得る。コンピュータ可読記憶媒体は例えば、電子ストレージデバイス、磁気ストレージデバイス、光学ストレージデバイス、電磁ストレージデバイス、半導体ストレージデバイス、または、上記の任意の好適な組み合わせに限定されるものではないことがあり得る。コンピュータ可読記憶媒体のより具体的な例の非包括的リストはまた、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD-ROM)、デジタルバーサタイルディスク(DVD)、メモリスティック、フロッピディスク、命令が記録されたパンチカードまたは溝における凸構造などの機械的符号化デバイス、または、上記の任意の好適な組み合わせを含み得る。本明細書で使用されるコンピュータ可読記憶媒体は、無線波または他の自由に伝達される電磁波またはその組み合わせなど、導波路または他の送信媒体(例えば、ファイバ光ケーブルを通して通過する光パルス)またはその組み合わせを通して伝達される電磁波または配線を通して送信される電気信号またはその組み合わせといった、一時的信号それ自体として解釈されないものとする。
本明細書において記載するコンピュータ可読プログラム命令は、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワークもしくは無線ネットワークまたはその組み合わせなどのネットワークを介して、コンピュータ可読記憶媒体から、それぞれのコンピューティング/処理デバイスへダウンロードされ得るか、または、外部コンピュータもしくは外部ストレージデバイスへダウンロードされ得るか、またはその組み合わせである。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイアウォール、スイッチ、ゲートウェイコンピュータ、もしくはエッジサーバまたはその組み合わせを含み得る。各コンピューティング/処理デバイスにおけるネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、かつ、コンピュータ可読プログラム命令を転送してそれぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に記憶する。本明細書に記載される1または複数の実施形態の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、オブジェクト指向プログラミング言語、例えば、Smalltalk(登録商標)、C++、または同様のもの、「C」プログラミング言語、同様のプログラミング言語、またはその組み合わせなどの手続き型プログラミング言語、またはその組み合わせを含む1または複数のプログラミング言語の任意の組み合わせで書かれたソースコード、オブジェクトコード、またはその組み合わせ、またはその組み合わせであり得る。コンピュータ可読プログラム命令は、コンピュータ上で全体的に、コンピュータ上で部分的に、スタンドアロンのソフトウェアパッケージとして、コンピュータ上で部分的に、リモートコンピュータ上で部分的に、またはその組み合わせで、または、リモートコンピュータ、サーバ、またはその組み合わせ上で全体的に実行され得る。後者のシナリオにおいて、リモートコンピュータは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、またはその組み合わせを含む任意のタイプのネットワークを通じてコンピュータに接続され得、(例えば、インターネットサービスプロバイダを使用してインターネットを通じて)外部コンピュータへの接続が行われ得、またはその組み合わせであり得る。1または複数の実施形態において、例えばプログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックアレイ(PLA)、またはその組み合わせを含む電子回路は、本明細書に記載される1または複数の実施形態の態様を実行するべく、コンピュータ可読プログラム命令の状態情報を利用して電子回路をパーソナライズすることによってコンピュータ可読プログラム命令を実行し得る。
本明細書に記載された1または複数の実施形態の態様は、本明細書に記載された1または複数の実施形態による方法、装置(システム)およびコンピュータプログラム製品のフローチャート図、ブロック図、またはその組み合わせを参照して記載される。フローチャート図、ブロック図またはその組み合わせの各ブロック、及び、フローチャート図、ブロック図、またはその組み合わせにおけるブロックの組み合わせが、コンピュータ可読プログラム命令によって実装され得ることが理解されるだろう。これらのコンピュータ可読プログラム命令は、機械を作成するために、汎用コンピュータ、特定用途向けコンピュータ、他のプログラマブルデータ処理装置のプロセッサまたはその組み合わせに提供され得る。それにより、コンピュータまたは他のプログラマブルデータ処理装置のプロセッサを介して実行する命令は、フローチャートもしくはブロック図またはその組み合わせのブロックまたは複数のブロックにおいて指定される機能/行動を実装するための手段を形成し得る。これらのコンピュータ可読プログラム命令はまた、コンピュータ、プログラマブルデータ処理装置、もしくは他のデバイスまたはその組み合わせに、特定の方式で機能するよう指示できるコンピュータ可読記憶媒体に格納され得る。それにより、命令を格納したコンピュータ可読記憶媒体は、フローチャートもしくはブロック図またはその組み合わせのブロックまたは複数のブロックにおいて指定された機能/行動の態様を実装し得る命令を含む、製品を含み得る。コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、他のデバイスまたはその組み合わせ上にロードされ得ることにより、一連の動作行動を、コンピュータ、他のプログラマブル装置、他のデバイスまたはその組み合わせ上で実行させ、コンピュータ実装プロセスを作成し、それにより、コンピュータ、他のプログラマブル装置、他のデバイスまたはその組み合わせ上で実行する命令が、フローチャートもしくはブロック図またはその組み合わせのブロックまたは複数のブロックにおいて指定される機能/行動を実装する。
図におけるフローチャートおよびブロック図は、システム、本明細書に記載の1または複数の実施形態によるコンピュータ実装可能方法、コンピュータプログラム製品、またはその組み合わせの可能な実装のアーキテクチャ、機能性、動作、またはその組み合わせを示す。これに関して、フローチャートまたはブロック図における各ブロックは、指定された論理機能を実装するための1または複数の実行可能命令を含む、モジュール、セグメント、命令の一部またはその組み合わせを表し得る。1または複数の実装において、ブロックにおいて記載される機能は、図に記載された順序とは別の順序で生じ得る。例えば、連続して示される2つのブロックは、関与する機能性に応じて、実質的に同時に実行され得るか、ブロックは場合によっては、逆の順序で実行されてよいか、またはその組み合わせであり得る。ブロック図、フローチャート図、またはその組み合わせの各ブロック、ブロック図、フローチャート図、またはその組み合わせにおけるブロックの組み合わせ、またはその組み合わせは、指定された機能、行動、またはその組み合わせを実行し得、特殊目的のハードウェア、コンピュータ、またはその組み合わせの命令の1または複数の組み合わせを実行し得、またはその組み合わせであり得る特定用途向けハードウェアベースシステムによって実装され得ることにも留意されたい。
主題は、コンピュータ、複数のコンピュータ、またはその組み合わせ上で実行するコンピュータプログラム製品のコンピュータ実行可能命令の一般的なコンテキストにおいて上で記載されたが、当業者であれば、本明細書における1または複数の実施形態はまた、1または複数の他のプログラムモジュールと組み合わせて実装され得ることを認識するであろう。概して、プログラムモジュールは、特定のタスクを実行する、特定の抽象データタイプを実装する、またはその組み合わせのルーチン、プログラム、コンポーネント、データ構造、同様のもの、またはその組み合わせを含む。更に、当業者であれば、本発明のコンピュータ実装方法は、シングルプロセッサ、マルチプロセッサ、またはその組み合わせのコンピュータシステム、ミニコンピューティングデバイス、メインフレームコンピュータ、コンピュータ、ハンドヘルドコンピューティングデバイス(例えばPDA、電話)、マイクロプロセッサベースまたはプログラマブルコンシューマ用または産業用、またはその組み合わせのエレクトロニクス、同様のもの、またはその組み合わせを含む他のコンピュータシステム構成で実施され得ることを認識するであろう。示される態様は、通信ネットワークを介して連結されるリモート処理デバイスによってタスクが実行される分散型コンピューティング環境においても実施され得る。しかしながら、本明細書に記載される1または複数の実施形態の態様は、すべてではないが、スタンドアロンのコンピュータ上で実施され得る。分散型コンピューティング環境において、プログラムモジュールは、ローカルおよびリモート両方のメモリストレージデバイスに位置し得る。
本願において使用される場合、「コンポーネント」、「システム」、「プラットフォーム」、「インタフェース」などの用語またはその組み合わせは、コンピュータ関連エンティティ、または、1または複数の固有の機能性を有する動作機械に関連するエンティティを指し得る、含み得る、またはその組み合わせであり得る。本明細書に記載されるエンティティは、ハードウェア、ハードウェアおよびソフトウェアの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかであり得る。例えば、コンポーネントは、プロセッサ上で実行するプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行のスレッド、プログラム、もしくはコンピュータまたはその組み合わせであり得るが、これらに限定されるものではない。例示として、サーバ上で実行するアプリケーションおよびサーバは両方ともコンポーネントであり得る。1または複数のコンポーネントは、実行のプロセス、スレッド、またはその組み合わせにおいて存在してよく、コンポーネントは、1つのコンピュータに局在してよく、2以上のコンピュータの間で分散されてよく、またはその組み合わせであり得る。別の例において、それぞれのコンポーネントは、様々なデータ構造が格納された様々なコンピュータ可読媒体から実行し得る。コンポーネントは、1または複数のデータパケット(例えば、ローカルシステム、分散システム、もしくは、信号を介する他のシステムまたはその組み合わせとのインターネットなどのネットワークにおける別のコンポーネントと相互作用する1つのコンポーネントからのデータ)を有する信号などに従って、ローカル、リモート、またはその組み合わせのプロセスを介して通信し得る。別の例として、コンポーネントは、プロセッサによって実行されるソフトウェア、ファームウェアアプリケーションまたはその組み合わせによって操作される電気または電子回路によって操作される機械部品によって提供される固有の機能性を有する機器であり得る。そのような場合において、プロセッサは、機器の内部、外部またはその組み合わせにあり得、ソフトウェア、ファームウェアアプリケーションまたはその組み合わせの少なくとも一部を実行し得る。更に別の例として、コンポーネントは、機械部品を用いず電子コンポーネントを通じて固有の機能性を提供する機器であり得、当該電子コンポーネントは、電子コンポーネントの機能性を少なくとも部分的に提供するソフトウェア、ファームウェアまたはその組み合わせを実行するためのプロセッサ、他の手段またはその組み合わせを含み得る。ある態様において、コンポーネントは、例えばクラウドコンピューティングシステム内の仮想マシンを介して電子コンポーネントをエミュレートし得る。
加えて、「または」という用語は、排他的な「または」ではなく、包括的な「または」を意味することが意図されている。すなわち、別段の定めが無い限り、または、文脈上明確でない限り、「XがAまたはBを利用する」は、自然の包括的な入れ替えのいずれかを意味することが意図される。すなわち、XはAを利用する、XはBを利用する、もしくは、XはAおよびBの両方を利用する場合、「XはAまたはBを利用する」が前述の例のいずれかのもとで満たされる。さらに、本明細書および添付の特許請求の範囲に使用される冠詞「a」および「an」は一般に、単数形を対象としていることが別段の定めが無い限り、または文脈からそれが明らかではない限り、「1または複数」を意味すると解釈されるべきである。本明細書において使用される場合、「例」、「例示的」という用語、またはその組み合わせは、例、インスタンス、または例示として機能することを意味するために利用される。誤解を回避するために、本明細書に記載される主題は、そのような例に限定されるものではない。加えて、「例」、「例示的」、またはその組み合わせとして本明細書において記載される任意の態様または設計は、他の態様または設計より好ましい、または優れていると必ずしも解釈されるわけではなく、当業者に知られている同等の例示的な構造および技法を除外する意図もない。
本明細書において利用される「プロセッサ」という用語は、これらに限定されるものではないが、シングルコアプロセッサ、ソフトウェアマルチスレッド実行能力を有するシングルプロセッサ、マルチコアプロセッサ、ソフトウェアマルチスレッド実行能力を有するマルチコアプロセッサ、ハードウェアマルチスレッド技術を有するマルチコアプロセッサ、並列プラットフォーム、分散共有メモリを有する並列プラットフォームまたはその組み合わせを含む実質的に任意のコンピューティング処理ユニット、デバイスまたはその組み合わせを指し得る。追加的に、プロセッサとは、集積回路、特定用途向け集積回路(ASIC)、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックコントローラ(PLC)、コンプレックスプログラマブルロジックデバイス(CPLD)、ディスクリートゲートもしくはトランジスタロジック、ディスクリートハードウェアコンポーネント、または、本明細書において記載される機能を実行するために設計されたそれらの任意の組み合わせを指し得る。更に、プロセッサは、空間利用を最適化する、または、関連機器のパフォーマンスを強化する、またはその組み合わせのために、これらに限定されるものではないが、分子および量子ドットベースのトランジスタ、スイッチ、ゲートまたはその組み合わせなどのナノスケールアーキテクチャを利用し得る。プロセッサは、コンピューティング処理ユニットの組み合わせとして実装され得る。
本明細書において、「格納」、「ストレージ」、「データ格納」、「データストレージ」、「データベース」およびコンポーネントの動作および機能性に関連する実質的に任意の他の情報ストレージコンポーネントなどの用語は、「メモリ」またはメモリを含むコンポーネントにおいて具現化される「メモリコンポーネント」エンティティを指すために利用される。本明細書において記載されるメモリもしくはメモリコンポーネントまたはその組み合わせは、揮発性メモリまたは不揮発性メモリのいずれかであり得るか、または、揮発性および不揮発性メモリの両方を含み得ることが認識されるべきである。限定ではなく例示として、不揮発性メモリは、リードオンリメモリ(ROM)、プログラマブルROM(PROM)、電気プログラマブルROM(EPROM)、電気消去可能ROM(EEPROM)、フラッシュメモリ、不揮発性ランダムアクセスメモリ(RAM)(例えば、強誘電体RAM(FeRAM))またはその組み合わせを含み得る。揮発性メモリは、例えば外部キャッシュメモリとして動作し得るRAMを含み得る。限定ではなく例示として、RAMは、同期RAM(SRAM)、ダイナミックRAM(DRAM)、同期DRAM(SDRAM)、ダブルデータレートSDRAM(DDR SDRAM)、拡張SDRAM(ESDRAM)、Synchlink DRAM(SLDRAM)、ダイレクトRambus RAM(DRRAM)、ダイレクトRambusダイナミックRAM(DRDRAM)、RambusダイナミックRAM(RDRAM)またはその組み合わせなど多くの形式で利用可能であり得る。追加的に、本明細書におけるシステム、コンピュータまたはその組み合わせで実装される方法の記載されるメモリコンポーネントは、これら、任意の他の好適なタイプのメモリまたはその組み合わせを含むことが意図されるが、これらに限定されない。
上で記載されたものは、システムおよびコンピュータ実装方法の例を含むに過ぎない。当然、1または複数の実施形態を記載する目的で、コンポーネント、コンピュータ実装方法、またはその組み合わせの考えられるあらゆる組み合わせを記載することは不可能であるが、当業者であれば、1または複数の実施形態の更なる多くの組み合わせ、入れ替え、またはその組み合わせが可能であると認識し得る。更に、「含む」、「有する」、「備える」などの用語が詳細な説明、特許請求の範囲、添付書類、および図面において使用される場合、そのような用語は、「備える」という用語が請求項において移行句として利用されるときに解釈されるのと同様の方式で包括的であることが意図される。
1または複数の実施形態の説明は、例示の目的で提示され、排他的である、または、本明細書に記載される実施形態に限定される意図はない。記載される実施形態の範囲及び趣旨から逸脱することなく、多くの修正及び変形が、当業者には明らかであろう。本明細書で使用される用語は、実施形態の原理、実際の適用、業界で見られる技術に対する技術的改善点またはその組み合わせをもっとも良く説明するように、または、当業者が本明細書に記載された実施形態を理解できるように、またはその組み合わせのために選択された。

Claims (20)

  1. システムであって、メモリに格納されたコンピュータ実行可能コンポーネントを実行するプロセッサを備え、前記コンピュータ実行可能コンポーネントは、
    トランザクションのサービスを操作するサービスコンポーネントを含み、
    前記サービスコンポーネントは、前記トランザクションにおいて前記サービスのすぐ上流または下流にある1または複数の他のサービスを操作する1または複数の他のサービスコンポーネントと通信することによって、前記トランザクションの要求に関するコンセンサスに近づく、
    システム。
  2. 前記サービスコンポーネントは、前記1または複数の他のサービスコンポーネントのみと通信することによって前記コンセンサスに近づく、請求項1に記載のシステム。
  3. 前記サービスコンポーネントは、前記サービスコンポーネント、および、前記1または複数の他のサービスコンポーネントの間の通信の包括的管理無しで、前記要求に関するコンセンサスに近づく、請求項1に記載のシステム。
  4. 前記サービスコンポーネントは、1または複数の要求、投票、または最終決定を含むメッセージを通信する、請求項1に記載のシステム。
  5. 前記トランザクションのサービスを実行するサービスコンポーネントのセットは、少なくとも前記サービスコンポーネントおよび前記1または複数の他のサービスコンポーネントを含み、
    前記サービスコンポーネントは、前記トランザクションの1または複数の最下流サービスを実行する、前記セットの1または複数のサービスコンポーネントへ、前記要求の、または、1または複数の第2の要求の通信を伝達し、
    前記サービスコンポーネントは、前記トランザクションの1または複数の最上流機能を実行する、前記セットの1または複数のサービスコンポーネントへ、前記要求、または、前記1または複数の第2の要求を承認する、または、中止するための1または複数の投票の通信を伝達し、
    前記サービスコンポーネントは、前記1または複数の最上流機能を実行する、前記セットの前記1または複数のサービスコンポーネントからの最終決定の通信を、前記1または複数の最下流機能を実行する、前記セットの前記1または複数のサービスコンポーネントへ伝達する、
    請求項4に記載のシステム。
  6. 前記サービスコンポーネントは、前記サービスコンポーネントである個別のサービスコンポーネントについて、前記個別のサービスコンポーネントが参加するメッセージ通信のみの個々の永続的ログを維持するログコンポーネントを含む、請求項1に記載のシステム。
  7. 前記コンピュータ実行可能コンポーネントは更に、前記通信が生じるときに、前記サービスコンポーネント、および、前記1または複数の他のサービスコンポーネントの間の通信の管理エンティティによる観察を促進する観察コンポーネントを含む、請求項1から6のいずれか一項に記載のシステム。
  8. コンピュータ実装方法であって、
    トランザクションのサービスを操作するサービスコンポーネントであって、プロセッサに動作可能に結合されたシステムのものであるサービスコンポーネントについて、
    前記トランザクションの要求に関して、前記サービスコンポーネントによってコンセンサスに近づく段階を備え、前記コンセンサスに近づく段階は、
    前記サービスコンポーネントによって、前記トランザクションにおいて前記サービスのすぐ上流または下流にある1または複数の他のサービスを操作する1または複数の他のサービスコンポーネントと通信する段階を含む、コンピュータ実装方法。
  9. 前記サービスコンポーネントによって、前記1または複数の他のサービスコンポーネントのみと通信することによって、前記コンセンサスに近づく段階を更に備える、請求項8に記載のコンピュータ実装方法。
  10. 前記サービスコンポーネントによって、前記サービスコンポーネントおよび前記1または複数の他のサービスコンポーネントの間の通信の包括的管理無しで、前記要求に関するコンセンサスに近づく段階を更に備える、請求項8に記載のコンピュータ実装方法。
  11. 前記サービスコンポーネントによって、1または複数の要求、投票、または最終決定を含む1または複数のメッセージを通信する段階を更に備える、請求項8に記載のコンピュータ実装方法。
  12. 前記トランザクションのサービスを実行するサービスコンポーネントのセットは、少なくとも前記サービスコンポーネントおよび前記1または複数の他のサービスコンポーネントを含み、前記コンピュータ実装方法は、
    前記サービスコンポーネントによって、前記トランザクションの1または複数の最下流のサービスを実行する、前記セットの1または複数のサービスコンポーネントへ、前記要求、または、1または複数の第2の要求の通信を伝達する段階と、
    前記サービスコンポーネントによって、前記トランザクションの1または複数の最上流の機能を実行する、前記セットの1または複数のサービスコンポーネントへ、前記要求、または、前記1または複数の第2の要求を承認する、または、中止するための1または複数の投票の通信を伝達する段階と、
    前記サービスコンポーネントによって、前記1または複数の最下流の機能を実行する、前記セットの前記1または複数のサービスコンポーネントへ、前記1または複数の最上流の機能を実行する、前記セットの前記1または複数のサービスコンポーネントからの最終決定の通信を伝達する段階と
    を更に備える、請求項11に記載のコンピュータ実装方法。
  13. 前記サービスコンポーネントによって、前記サービスコンポーネントである個別のサービスコンポーネントについて、前記個別のサービスコンポーネントが参加したメッセージ通信のみの個々の永続的ログを維持する段階を更に備える、請求項8に記載のコンピュータ実装方法。
  14. 前記通信が生じるとき、前記サービスコンポーネントおよび前記1または複数の他のサービスコンポーネントの間の通信の管理エンティティによる観察を促進する段階を更に備える、請求項8から13のいずれか一項に記載のコンピュータ実装方法。
  15. トランザクションの要求の進行に関するコンセンサスのためのプロセスを促進するコンピュータプログラムであって、前記コンピュータプログラムは、具現化されたプログラム命令を含み、前記プログラム命令は、プロセッサによって実行可能であり、前記プロセッサに、
    トランザクションのサービスを操作するサービスコンポーネントであって、前記プロセッサに動作可能に結合されたシステムのものであるサービスコンポーネントについて、
    前記プロセッサによる前記サービスコンポーネントによって、前記トランザクションの要求に関するコンセンサスに近づくこと、および、
    前記プロセッサによる前記サービスコンポーネントによって、前記トランザクションにおいて前記サービスのすぐ上流または下流の1または複数の他のサービスを操作する1または複数の他のサービスコンポーネントと通信すること
    を行わせる、コンピュータプログラム。
  16. 前記プログラム命令は更に、プロセッサによって実行可能であり、前記プロセッサに、
    前記プロセッサによる前記サービスコンポーネントによって、前記1または複数の他のサービスコンポーネントのみと通信することによって、前記コンセンサスに近づくことを行わせる、請求項15に記載のコンピュータプログラム。
  17. 前記プログラム命令は更に、プロセッサによって実行可能であり、前記プロセッサに、
    前記プロセッサによる前記サービスコンポーネントによって、前記サービスコンポーネントおよび前記1または複数の他のサービスコンポーネントの間の通信の包括的管理無しで、前記要求に関するコンセンサスに近づくことを行わせる、請求項15に記載のコンピュータプログラム。
  18. 前記プログラム命令は更に、プロセッサによって実行可能であり、前記プロセッサに、
    前記プロセッサによる前記サービスコンポーネントによって、1または複数の要求、投票、または最終決定を含む1または複数のメッセージを通信することを行わせる、請求項15に記載のコンピュータプログラム。
  19. 前記トランザクションのサービスを実行するサービスコンポーネントのセットは、少なくとも前記サービスコンポーネントおよび前記1または複数の他のサービスコンポーネントを含み、
    前記プログラム命令は更に、プロセッサによって実行可能であり、前記プロセッサに、
    前記プロセッサによる前記サービスコンポーネントによって、前記トランザクションの1または複数の最下流のサービスを実行する、前記セットの1または複数のサービスコンポーネントへ、前記要求、または、1または複数の第2の要求の通信を伝達すること、
    前記プロセッサによる前記サービスコンポーネントによって、前記トランザクションの1または複数の最上流の機能を実行する、前記セットの1または複数のサービスコンポーネントへ、前記要求、または、前記1または複数の第2の要求を承認する、または、中止するための1または複数の投票の通信を伝達すること、および、
    前記プロセッサによる前記サービスコンポーネントによって、前記1または複数の最下流の機能を実行する、前記セットの前記1または複数のサービスコンポーネントへ、前記1または複数の最上流の機能を実行する、前記セットの前記1または複数のサービスコンポーネントからの最終決定の通信を伝達すること
    を行わせる、請求項18に記載のコンピュータプログラム。
  20. 前記プログラム命令は更に、プロセッサによって実行可能であり、前記プロセッサに、
    前記プロセッサによる前記サービスコンポーネントによって、前記サービスコンポーネントである個別のサービスコンポーネントについて、前記個別のサービスコンポーネントが参加したメッセージ通信のみの個々の永続的ログを維持すること
    を行わせる、請求項15から19のいずれか一項に記載のコンピュータプログラム。
JP2022123527A 2021-08-04 2022-08-02 システム、コンピュータ実装方法、コンピュータプログラム(サービストランザクションのためのコンセンサスに近づくための要求の促進) Pending JP2023024357A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/394,119 2021-08-04
US17/394,119 US11528197B1 (en) 2021-08-04 2021-08-04 Request facilitation for approaching consensus for a service transaction

Publications (1)

Publication Number Publication Date
JP2023024357A true JP2023024357A (ja) 2023-02-16

Family

ID=84426707

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022123527A Pending JP2023024357A (ja) 2021-08-04 2022-08-02 システム、コンピュータ実装方法、コンピュータプログラム(サービストランザクションのためのコンセンサスに近づくための要求の促進)

Country Status (4)

Country Link
US (1) US11528197B1 (ja)
JP (1) JP2023024357A (ja)
CN (1) CN115705256A (ja)
TW (1) TWI802310B (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11777815B1 (en) * 2022-03-02 2023-10-03 Servicenow, Inc. Techniques for dynamically configuring service availability

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7478400B1 (en) 2003-12-31 2009-01-13 Symantec Operating Corporation Efficient distributed transaction protocol for a distributed file sharing system
US7257605B2 (en) 2004-02-09 2007-08-14 International Busniess Machines Corporation System for heterogeneous distributed transaction management in database systems
US8380679B2 (en) 2008-02-11 2013-02-19 Infosys Technologies Limited Method of handling transaction in a service oriented architecture environment
GB2472620B (en) 2009-08-12 2016-05-18 Cloudtran Inc Distributed transaction processing
US8356007B2 (en) 2010-10-20 2013-01-15 Microsoft Corporation Distributed transaction management for database systems with multiversioning
US8442962B2 (en) 2010-12-28 2013-05-14 Sap Ag Distributed transaction management using two-phase commit optimization
US10296371B2 (en) 2014-03-17 2019-05-21 International Business Machines Corporation Passive two-phase commit system for high-performance distributed transaction execution
US20180219946A1 (en) 2015-07-23 2018-08-02 Telefonaktiebolaget Lm Ericsson (Publ) Leaderless consistency protocol
US10083201B2 (en) 2015-09-22 2018-09-25 Walmart Apollo, Llc System for maintaining consistency across a decentralized database cluster and method therefor
US10025346B2 (en) 2015-12-09 2018-07-17 Red Hat, Inc. Timestamp alignment across a plurality of computing devices
US10572510B2 (en) 2015-12-21 2020-02-25 Sap Se Distributed database transaction protocol
US10235440B2 (en) 2015-12-21 2019-03-19 Sap Se Decentralized transaction commit protocol
US9792163B1 (en) 2016-06-28 2017-10-17 Vmware, Inc. Decentralized control plane for a computing system
US11290324B2 (en) * 2016-12-30 2022-03-29 Intel Corporation Blockchains for securing IoT devices
US10666495B2 (en) 2017-08-22 2020-05-26 International Business Machines Corporation Transaction processing
WO2019113216A1 (en) * 2017-12-05 2019-06-13 Agile Stacks Inc. Machine generated automation code for software development and infrastructure operations
US20210319436A1 (en) * 2018-04-24 2021-10-14 Duvon Corporation Autonomous exchange via entrusted ledger wallet administration tool
US11315024B2 (en) * 2018-06-25 2022-04-26 Kyndryl, Inc. Cognitive computing systems and services utilizing internet of things environment
US11899817B2 (en) * 2019-01-31 2024-02-13 Salesforce, Inc. Systems, methods, and apparatuses for storing PII information via a metadata driven blockchain using distributed and decentralized storage for sensitive user information
US11469886B2 (en) * 2019-05-22 2022-10-11 Salesforce.Com, Inc. System or method to implement record level access on metadata driven blockchain using shared secrets and consensus on read
US11126593B2 (en) * 2019-06-15 2021-09-21 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US20200394648A1 (en) * 2019-06-15 2020-12-17 Facebook, Inc. Scalable, secure, efficient, and adaptable distributed digital ledger transaction network
US20210099313A1 (en) * 2019-09-26 2021-04-01 Here Global B.V. Method, apparatus, and system for providing a consent management system on a crytographic ledger
EP4066129A1 (en) * 2019-11-26 2022-10-05 ZeU Technologies, Inc. Method and system for converting database applications into blockchain applications
US11095431B2 (en) * 2019-12-13 2021-08-17 DLT Global, Inc. Blockchain transaction manager
US11824970B2 (en) * 2020-01-20 2023-11-21 Salesforce, Inc. Systems, methods, and apparatuses for implementing user access controls in a metadata driven blockchain operating via distributed ledger technology (DLT) using granular access objects and ALFA/XACML visibility rules
US11611560B2 (en) * 2020-01-31 2023-03-21 Salesforce.Com, Inc. Systems, methods, and apparatuses for implementing consensus on read via a consensus on write smart contract trigger for a distributed ledger technology (DLT) platform

Also Published As

Publication number Publication date
TW202307688A (zh) 2023-02-16
US11528197B1 (en) 2022-12-13
TWI802310B (zh) 2023-05-11
CN115705256A (zh) 2023-02-17

Similar Documents

Publication Publication Date Title
US10346391B2 (en) Vertical tuning of distributed analytics clusters
US11030049B2 (en) Data backup management during workload migration
JP2020515939A (ja) イベント駆動型ブロックチェーンワークフロー処理
US20180246707A1 (en) Accelerating software builds
US9912759B2 (en) Dynamically generating solution stacks
US10929567B2 (en) Parallel access to running electronic design automation (EDA) application
US20180196647A1 (en) Application Programming Interface Discovery Using Pattern Recognition
US10282208B2 (en) Cognitive thread management in a multi-threading application server environment
US10891569B1 (en) Dynamic task discovery for workflow tasks
US20180131678A1 (en) Managing Idempotent Operations while Interacting with a System of Record
US20200278975A1 (en) Searching data on a synchronization data stream
US20210064573A1 (en) Database deployment objects and deterministic locking models
JP2023024357A (ja) システム、コンピュータ実装方法、コンピュータプログラム(サービストランザクションのためのコンセンサスに近づくための要求の促進)
CN117242461A (zh) 后端量子运行时
US11163603B1 (en) Managing asynchronous operations in cloud computing environments
Stukalov et al. Method for Organizing Network Requests in iOS Applications
US20230208761A1 (en) Ai-based compensation of resource constrained communication
US20230216928A1 (en) Hybrid edge computing
US12020117B2 (en) Enhanced quantum circuit operation via a universally implementable 4X4 unitary matrix decomposition
US11586626B1 (en) Optimizing cloud query execution
US12015397B2 (en) High connectivity parametric gate
US20230119440A1 (en) Process optimization with joint-level inflow model
US20230034196A1 (en) Techniques for providing synchronous and asynchronous data processing
US20230168923A1 (en) Annotation of a Machine Learning Pipeline with Operational Semantics
US20230169354A1 (en) Annotation of a Machine Learning Pipeline with Operational Semantics to Support Distributed Lineage Tracking