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

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧

特許7606799ブロックチェーン有効化の予約および委任のためのコンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム(ブロックチェーンベースのサービス予約および委任)
<>
  • 特許-ブロックチェーン有効化の予約および委任のためのコンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム(ブロックチェーンベースのサービス予約および委任) 図1
  • 特許-ブロックチェーン有効化の予約および委任のためのコンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム(ブロックチェーンベースのサービス予約および委任) 図2
  • 特許-ブロックチェーン有効化の予約および委任のためのコンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム(ブロックチェーンベースのサービス予約および委任) 図3
  • 特許-ブロックチェーン有効化の予約および委任のためのコンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム(ブロックチェーンベースのサービス予約および委任) 図4
  • 特許-ブロックチェーン有効化の予約および委任のためのコンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム(ブロックチェーンベースのサービス予約および委任) 図5
  • 特許-ブロックチェーン有効化の予約および委任のためのコンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム(ブロックチェーンベースのサービス予約および委任) 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-12-18
(45)【発行日】2024-12-26
(54)【発明の名称】ブロックチェーン有効化の予約および委任のためのコンピュータ実装方法、コンピュータシステムおよびコンピュータプログラム(ブロックチェーンベースのサービス予約および委任)
(51)【国際特許分類】
   G06Q 50/10 20120101AFI20241219BHJP
【FI】
G06Q50/10
【請求項の数】 18
(21)【出願番号】P 2021175502
(22)【出願日】2021-10-27
(65)【公開番号】P2022080277
(43)【公開日】2022-05-27
【審査請求日】2024-03-19
(31)【優先権主張番号】17/099,860
(32)【優先日】2020-11-17
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
【住所又は居所原語表記】New Orchard Road, Armonk, New York 10504, United States of America
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】ジャン リ
(72)【発明者】
【氏名】ザン リ ニ
(72)【発明者】
【氏名】ザオ ウェン ルイ
(72)【発明者】
【氏名】ジャン ジン ボ
(72)【発明者】
【氏名】ザオ ユ
(72)【発明者】
【氏名】ルオ ラン
(72)【発明者】
【氏名】チェン リ ロン
【審査官】山崎 誠也
(56)【参考文献】
【文献】国際公開第2020/152213(WO,A1)
【文献】特表2020-502617(JP,A)
【文献】中国特許出願公開第111047327(CN,A)
【文献】特開2019-008791(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06Q 10/00-99/00
(57)【特許請求の範囲】
【請求項1】
ブロックチェーン有効化の予約および委任のためのコンピュータ実装方法であって、
コンピュータがユーザによって定義された1または複数の第1のトリガ条件または第2のトリガ条件を受信する段階と、
前記コンピュータが前記1または複数の第1のトリガ条件の発生を検出する段階と、
前記コンピュータが前記受信された1または複数の第1のトリガ条件に基づき、スマートコントラクトを展開する段階と、
前記コンピュータが前記1または複数の第2のトリガ条件の発生を検出する段階と、
前記コンピュータが前記受信された1または複数の第2のトリガ条件に基づき、前記スマートコントラクトを非アクティブ化する段階と、を備え、
前記スマートコントラクトを展開する前記段階は、委任を実行する段階であって、前記委任は、あるサービスプロバイダから別のサービスプロバイダへの切り替え、あるデバイスから別のデバイスへの切り替え、または、物理的なキーから仮想キーへの切り替えのうちの1または複数である、段階を含む、コンピュータ実装方法。
【請求項2】
前記コンピュータが登録対象を受信する段階であって、前記登録対象は、前記ユーザ、サービスまたはデバイスである、段階をさらに備える、請求項1に記載のコンピュータ実装方法。
【請求項3】
前記1または複数の第1のトリガ条件は、その発生時に、前記スマートコントラクトの前記展開を開始する条件である、請求項1または2に記載のコンピュータ実装方法。
【請求項4】
前記1または複数の第2のトリガ条件は、その発生時に、前記スマートコントラクトの前記非アクティブ化を開始する条件である、請求項1から3のいずれか一項に記載のコンピュータ実装方法。
【請求項5】
前記スマートコントラクトは、予約スマートコントラクトまたは展開スマートコントラクトである、請求項1から4のいずれか一項に記載のコンピュータ実装方法。
【請求項6】
前記スマートコントラクトを非アクティブ化する前記段階は、
委任を削除する段階と、
委任前の設定に戻る段階と、を含む、請求項1からのいずれか一項に記載のコンピュータ実装方法。
【請求項7】
ブロックチェーン有効化の予約および委任のためのコンピュータシステムであって、
1または複数のプロセッサと、
1または複数のコンピュータ可読メモリと、
1または複数のコンピュータ可読有体記憶媒体と、
前記1または複数のコンピュータ可読有体記憶媒体のうちの少なくとも1つに格納されたプログラム命令であって、前記プログラム命令は、前記1または複数のコンピュータ可読メモリのうちの少なくとも1つを介して、前記1または複数のプロセッサのうちの少なくとも1つにより、実行されるためのものである、プログラム命令と、を備え、前記コンピュータシステムは、
ユーザによって定義された1または複数の第1のトリガ条件または第2のトリガ条件を受信する段階と、
前記1または複数の第1のトリガ条件の発生を検出する段階と、
前記受信された1または複数の第1のトリガ条件に基づき、スマートコントラクトを展開する段階と、
前記1または複数の第2のトリガ条件の発生を検出する段階と、
前記受信された1または複数の第2のトリガ条件に基づき、前記スマートコントラクトを非アクティブ化する段階と、を含み、
前記スマートコントラクトを展開する前記段階は、委任を実行する段階であって、前記委任は、あるサービスプロバイダから別のサービスプロバイダへの切り替え、あるデバイスから別のデバイスへの切り替え、または、物理的なキーから仮想キーへの切り替えのうちの1または複数である、段階を含む方法を実行可能である、コンピュータシステム。
【請求項8】
前記方法は、登録対象を受信する段階であって、前記登録対象は、前記ユーザ、サービスまたはデバイスである、段階をさらに含む、請求項に記載のブロックチェーン有効化の予約および委任のためのコンピュータシステム。
【請求項9】
前記1または複数の第1のトリガ条件は、その発生時に、前記スマートコントラクトの前記展開を開始する条件である、請求項またはに記載のブロックチェーン有効化の予約および委任のためのコンピュータシステム。
【請求項10】
前記1または複数の第2のトリガ条件は、その発生時に、前記スマートコントラクトの前記非アクティブ化を開始する条件である、請求項からのいずれか一項に記載のブロックチェーン有効化の予約および委任のためのコンピュータシステム。
【請求項11】
前記スマートコントラクトは、予約スマートコントラクトまたは展開スマートコントラクトである、請求項から10のいずれか一項に記載のブロックチェーン有効化の予約および委任のためのコンピュータシステム。
【請求項12】
前記スマートコントラクトを非アクティブ化する前記段階は、
委任を削除する段階と、
委任前の設定に戻る段階と、を含む、請求項から11のいずれか一項に記載のブロックチェーン有効化の予約および委任のためのコンピュータシステム。
【請求項13】
ブロックチェーン有効化の予約および委任のためのコンピュータプログラムであって、前記ブロックチェーン有効化の予約および委任のためのコンピュータプログラムは、プロセッサに、
ユーザによって定義された1または複数の第1のトリガ条件または第2のトリガ条件を受信する段階と、
前記1または複数の第1のトリガ条件の発生を検出する段階と、
前記受信された1または複数の第1のトリガ条件に基づき、スマートコントラクトを展開する段階と、
前記1または複数の第2のトリガ条件の発生を検出する段階と、
前記受信された1または複数の第2のトリガ条件に基づき、前記スマートコントラクトを非アクティブ化する段階とを含み、
前記スマートコントラクトを展開する前記段階は、委任を実行する段階であって、前記委任は、あるサービスプロバイダから別のサービスプロバイダへの切り替え、あるデバイスから別のデバイスへの切り替え、または、物理的なキーから仮想キーへの切り替えのうちの1または複数である、段階を含む方法を実行させるための、ブロックチェーン有効化の予約および委任のためのコンピュータプログラム。
【請求項14】
前記方法は、登録対象を受信する段階であって、前記登録対象は、前記ユーザ、サービスまたはデバイスである、段階をさらに含む、請求項13に記載のブロックチェーン有効化の予約および委任のためのコンピュータプログラム。
【請求項15】
前記1または複数の第1のトリガ条件は、その発生時に、前記スマートコントラクトの前記展開を開始する条件である、請求項13または14に記載のブロックチェーン有効化の予約および委任のためのコンピュータプログラム。
【請求項16】
前記1または複数の第2のトリガ条件は、その発生時に、前記スマートコントラクトの前記非アクティブ化を開始する条件である、請求項13から15のいずれか一項に記載のブロックチェーン有効化の予約および委任のためのコンピュータプログラム。
【請求項17】
前記スマートコントラクトは、予約スマートコントラクトまたは展開スマートコントラクトである、請求項13から16のいずれか一項に記載のブロックチェーン有効化の予約および委任のためのコンピュータプログラム。
【請求項18】
前記スマートコントラクトを展開する前記段階は、委任を実行する段階であって、前記委任は、あるサービスプロバイダから別のサービスプロバイダへの切り替え、あるデバイスから別のデバイスへの切り替え、または、物理的なキーから仮想キーへの切り替えのうちの1または複数である、段階を含む、請求項13から17のいずれか一項に記載のブロックチェーン有効化の予約および委任のためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は概して、コンピューティングの分野に関し、より具体的には、予約および委任に関する。通常のサービスモデルは、ユーザ、デバイスおよびプロバイダを含む。ひとたび、ユーザがサービスをサブスクライブすると、当該ユーザは、プロバイダが指定および供給した可能性のあるデバイスを用いてサービスを用い得る。サービスライフサイクル全体を通して、ユーザ、デバイスおよびプロバイダをバインドすることが必要であり得る。
【背景技術】
【0002】
ブロックチェーン技術は、非中央型および分散型デジタル台帳であり、当該台帳は、2または2より多いパーティ間のトランザクションを効率的、且つ、検証可能な永続的なやり方で記録し得る。台帳自体もまた、自動的にトランザクションをトリガするようプログラム可能である。ブロックチェーンは、改ざんおよび改訂から保護されたブロックと呼ばれる絶え間なく成長するレコードのリストを維持する。各ブロックは、タイムスタンプおよび前のブロックへのリンクを含む。設計により、ブロックチェーン技術は本質的にデータの変更に耐性を有し、データはひとたび記録されると、ブロック内の当該データは遡及的に変更できなくなる。ピアツーピアネットワークおよび分散タイムスタンピングサーバの使用により、ブロックチェーンデータベースが自律的に管理される。ブロックチェーン技術の非中央型コンセンサスアルゴリズムは、複数のエンティティが共有レコードの情報を維持することを可能にし、コンセンサスは、ネットワークごとを基礎として形成されるので、各エンティティは互いのエンティティ間の信頼を必要としない。ネットワーク化されたモデルは、検閲耐性、改ざん耐性の利点を有するシステム、および単一障害点を持たないシステムをもたらす。
【0003】
ブロックチェーンは、様々なブロックチェーン参加者間で行われるトランザクションを定義するためにスマートコントラクトを使用してよい。スマートコントラクトとは、契約の合意内容の表示およびスマートコントラクトのユーザにより提供される、または、ブロックチェーン環境から抽出されるトリガに基づき、当該契約の実施の両方を行うコンピュータプログラムである。スマートコントラクトは、ユーザインタフェースを有してよく、しばしば契約条項をエミュレーションしてよい。スマートコントラクトは、従来の契約法より優れたセキュリティを提供すること、および、契約に関連する他のトランザクションコストを低減することを目的とする。
【0004】
ブロックチェーン技術の文脈内において、スマートコントラクトは、ブロックチェーンネットワークに格納され得るスプリプトを含んでよい。スマートコントラクトはブロックチェーン上に存在するので、スマートコントラクトは一意のアドレスを有する。スマートコントラクトは、そのアドレスに送信されたメッセージまたはトランザクションによりトリガされてよい。スマートコントラクトにアクセスし、およびスマートコントラクトを活用する条件は、ブロックチェーン資産への承認されていないアクセスの可能性を低減する能力において限定される。ひとたびスマートコントラクトがトリガされると、スマートコントラクトは、契約の条項または合意に従い、法律的に関係のあるイベントおよびアクションを自動的に実行、制御または文書化してよい。
【発明の概要】
【発明が解決しようとする課題】
【0005】
本発明の実施形態は、ブロックチェーン有効化の予約および委任のための方法、コンピュータシステム、およびコンピュータプログラム製品を含んでよい。
【課題を解決するための手段】
【0006】
本発明は、ユーザによって定義された1または複数の第1のトリガ条件または第2のトリガ条件を受信する段階と、1または複数の第1のトリガ条件の発生を検出する段階と、受信された1または複数の第1のトリガ条件に基づき、スマートコントラクトを展開する段階と、1または複数の第2のトリガ条件の発生を検出する段階と、受信された1または複数の第2のトリガ条件に基づき、スマートコントラクトを非アクティブ化する段階と、を含んでよい。本発明は、登録対象を受信する段階であって、対象は、ユーザ、サービスまたはデバイスである、段階を含んでよい。1または複数の第1のトリガ条件は、その発生時に、スマートコントラクトの展開を開始してよい条件であってよい。1または複数の第2のトリガ条件は、その発生時に、スマートコントラクトの非アクティブ化を開始してよい条件であってよい。スマートコントラクトは、予約スマートコントラクトまたは展開スマートコントラクトであってよい。スマートコントラクトを展開する段階は、委任を実行する段階を含んでよい。委任は、あるサービスプロバイダから別のサービスプロバイダへの切り替え、あるデバイスから別のデバイスへの切り替え、または、物理的なキーから仮想キーへの切り替えのうちの1または複数であってよい。スマートコントラクトを非アクティブ化する段階は、委任を削除する段階と、委任前の設定に戻す段階を含んでよい。
【図面の簡単な説明】
【0007】
本発明のこれらの目的、特徴および利点並びに他の目的、特徴および利点は、本発明の例示的な実施形態に係る以下の詳細な説明から明らかとなろう。例示的な実施形態は、添付図面と併せて読まれたい。例示は当業者が詳細な説明に関する本発明の理解を容易にする上でのわかりやすさのためのものであるので、図面の様々な特徴は正確な縮尺ではない。
【0008】
図1】少なくとも一実施形態によるネットワークコンピュータ環境を示す。
【0009】
図2】本発明の一実施形態による予約および委任システムの例示的なアーキテクチャ全体のブロック図である。
【0010】
図3】本発明の一実施形態による、ブロックチェーン有効化の予約および委任のためのプロセスを示す動作フローチャートである。
【0011】
図4】本発明の一実施形態による、図1に示されるコンピュータおよびサーバの内部コンポーネントおよび外部コンポーネントを示すブロック図である。
【0012】
図5】本発明の一実施形態による、図1に示されるコンピュータシステムを含むクラウドコンピューティング環境を示す機能ブロック図である。
【0013】
図6】本発明の一実施形態による、図5のクラウドコンピューティング環境によって提供される抽象モデルレイヤを示すダイアグラムである。
【発明を実施するための形態】
【0014】
ここで、添付図面を参照しながら本発明の実施形態について詳細に説明する。
【0015】
添付図面を参照した以下の説明は、特許請求の範囲およびその均等範囲によって定義される本発明の例示的な実施形態を包括的に理解することを支援すべく記載されている。当該説明には、その理解を支援するため様々な具体的な詳細が含まれるが、これらは単なる例示としてみなされるべきである。よって、当業者は、本発明の範囲および精神を逸脱することなく、本明細書に説明された実施形態の様々な変更例および修正例をなし得ることを理解するであろう。また、周知の機能および構造に関する説明は、わかりやすさ、および簡潔さのために省略されてよい。
【0016】
以下の説明および特許請求の範囲で用いられる用語および文言は書誌的意味に限定されることはなく、単に本発明の明確且つ一貫した理解を可能にするために用いられている。よって、当業者には、本発明の例示的な実施形態に関する以下の説明は、例示目的のみで記載されており、添付の特許請求の範囲およびその均等範囲により定義される本発明を限定する意図ではないことが明らかであるものとする。
【0017】
本発明の実施形態は概して、コンピューティングの分野に関し、より具体的には、ブロックチェーン有効化の予約および委任に関する。ブロックチェーン有効化の予約および委任とは、あるユーザから別のユーザへの特定のデバイスの予約および委任を指してよい。ブロックチェーン有効化の予約および委任はまた、サービスまたはデバイスの予約および委任を指してよい。
【0018】
通常のサービスモデルは、1または複数のユーザ、1または複数のデバイス、および1または複数のプロバイダを含んでよい。例えば、ユーザは、ユーザが電話をかけるために用いるスマートフォンを有する。スマートフォンはデバイスであり、プロバイダは、携帯電話サービスを提供する企業である。3つの部分のいずれかが利用不可である場合、サービスモデルは切断される。
【0019】
予約および委任に関する現在の問題は、ユーザまたはユーザデバイス、サービスまたはサービスデバイス、およびネットワーク間の切断された接続を含んでよい。例えば、通常のサービスモデルは、複数のユーザ、複数のデバイス、および複数のプロバイダを含む。電話をかけるためにスマートフォンを操作するユーザは、プロバイダまたは携帯電話サービスに関する問題に起因して、中断に遭遇する可能性がある。例えば、ユーザが電車内におり、電車がトンネルに入った場合、ユーザはネットワーク接続を失い、電話をかけることができない。電話をかけるためにスマートフォンを操作するユーザは、ユーザのスマートフォンがバッテリ切れになるとき、中断に遭遇する可能性がある。結果的に、ユーザは、電話をかけることができず、サービスモデルは切断される。
【0020】
サービスモデルにおける切断は、問題となり得る。これは、ひとたびユーザがサービスまたはデバイスをサブスクライブすると、ユーザはプロバイダが指定しおよび供給したサービスまたはデバイスの使用にロックされることに起因する。しばしば、ユーザ、デバイスおよびプロバイダは、サービスライフサイクル全体を通して共にバインドされ、多くの欠点が生じる。
【0021】
サービスライフサイクル全体を通してユーザ、デバイスおよびプロバイダをバインドするこのような欠点の1つは、同一のサービスについて特定の他のサービスプロバイダに切り替えることが不可能であるということであり得る。例えば、ある国から別の国へ移動するユーザは、当該別の国にいるとき、無線データサービスを変更するのに苦労し得る。結果的に、別の国にいるとき、ユーザは、無線データサービスを使用できない可能性がある。別の欠点は、コストに関することであり得る。特定のデバイスが利用不可である場合に、他のデバイスに変更することは、サービス認証のためにコスト高である可能性がある。例えば、ユーザが、ユーザのデバイスである例えばスマートフォンを用いて購入代金を支払おうとする。ユーザのスマートフォンがバッテリ切れであり、結果的に、ユーザはトランザクションを完了できない。ユーザがトランザクションを完了すべく、ユーザがバッテリ切れとなったユーザのスマートフォンからのネットワークサービスを、十分充電された別のデバイスへ変更することはコスト高であり得る。
【0022】
サービスライフサイクルの期間中にユーザ、デバイスおよびプロバイダをバインドするさらなる別の欠点は、サービスまたはデバイスが必要な場合に常に、サービスまたはデバイスを他のユーザと共有することに関することであり得る。例えば、ユーザは友人から車を借りたい可能性がある。友人は、車の物理的なキーを有し得る。しかしながら、物理的なキーへの近接性を理由に、当該ユーザが友人から物理的なキーを得ることは不可能であろう。結果的に、友人が当該ユーザが車を借りることを承認し得るとしても、ユーザは、車の物理的なキーを入手不可であるのでそのようにできない。
【0023】
本明細書に上記したように、サービスライフサイクル期間の間、ユーザ、デバイスおよびプロバイダを共にバインドすることに関し、多くの欠点が存在する。このため、サービスプロバイダおよび/またはデバイスの予約および/または委任を可能にするニーズが存在する。本発明の実施形態は、サービス、サービスプロバイダ、コンシューマデバイスおよびユーザを一時的に予約および委任するためのブロックチェーンスマートコントラクトの使用を提供する。結果的に、サービスは、任意のデバイスまたはユーザと密に連結される必要がなくなる。これにより、ユーザ自身のサービスまたはデバイスが利用不可の場合に、ユーザが異なるサービスおよびデバイスを一時的に使用するという一層の柔軟性を得ることを可能にする。例えば、ブロックチェーン有効化サービスの予約および委任を用いると、自動的なプロバイダ切り替え、または、動的なデバイスの登録および共有が可能にされてよい。これは、さらなるユーザの満足、異なるデバイスを選択するさらなる柔軟性、並びに、サービスおよび/またはデバイスを、同僚、友人または家族等の他のユーザと共有しやすいことに起因してのサービスおよび/またはデバイスの使用率の増大をもたらし得る。
【0024】
本発明の実施形態は、ユーザ、プロバイダまたはサービス供給者およびデバイス間の様々なタイプの関係を定義するために用いられるスマートコントラクトと共に動作するブロックチェーンネットワークを用いてよい。当該関係を用いて、複数の異なるトリガ条件が定義されてよい。例えば、第1のトリガ条件を用いて、スマートコントラクトをアクティブ化または展開してよく、第2のトリガ条件を用いて、スマートコントラクトを非アクティブ化してよい。このため、本発明の実施形態は、スマートコントラクトを用いて、1つのサービスプロバイダから別のサービスプロバイダへの切り替え、または、ユーザへの中断なく1つのデバイスからのサービスを別のデバイスへ切り替えることを可能にする一時的な委任を実行することにより、ブロックチェーンの技術分野を改善する可能性を有する。トリガ条件は、トリガ条件の発生に基づき、スマートコントラクトをアクティブ化または非アクティブ化してよい。
【0025】
図1を参照すると、一実施形態による例示的なネットワークコンピュータ環境100が示される。ネットワークコンピュータ環境100は、プロセッサ104、およびソフトウェアプログラム108を実行可能なデータストレージデバイス106、並びに、予約および委任プログラム110aを備えたコンピュータ102を含んでよい。ネットワークコンピュータ環境100はまた、予約および委任プログラム110bを実行可能なサーバ112も含んでよく、予約および委任プログラム110bは、データベース114および通信ネットワーク116とやり取りしてよい。サーバ112は、サーバコンピュータとも称されてよい。
【0026】
ネットワークコンピュータ環境100は、複数のコンピュータ102およびサーバ112を含んでよく、これらのうちの1つのみが示されている。サーバ112はまた、サーバコンピュータであってもよい。通信ネットワーク116は、様々なタイプの通信ネットワークを含んでよく、例えば、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、電気通信ネットワーク、無線ネットワーク、公衆交換電話網若しくはサテライトネットワークまたはこれらの組み合わせが挙げられる。図1は、一実装の例示に過ぎず、異なる実施形態が実装され得る環境に対する限定を示唆しないことを理解されたい。図示された環境に対する多くの修正が、設計要件および実装要件に基づきなされてよい。
【0027】
クライアントコンピュータ102は、通信ネットワーク116を介してサーバコンピュータ112と通信してよい。通信ネットワーク116は、有線通信リンク、無線通信リンクまたは光ファイバケーブル等の接続を含んでよい。図4を参照して説明するように、サーバコンピュータ112は、内部コンポーネント902aおよび外部コンポーネント904aをそれぞれ含んでよく、クライアントコンピュータ102は、内部コンポーネント902bおよび外部コンポーネント904bをそれぞれ含んでよい。サーバコンピュータ112はまた、サービスとしてのソフトウェア(Software as a Service:SaaS)、サービスとしての分析(Analytics as a Service:AaaS)、サービスとしてのプラットフォーム(Platform as a Service:PaaS)、サービスとしてのブロックチェーン(Blockchain as a Service:BaaS)またはサービスとしてのインフラストラクチャ(Infrastructure as a Service:IaaS)等のクラウドコンピューティングサービスモデルで動作してよい。サーバ112はまた、プライベートクラウド、コミュニティクラウド、パブリッククラウドまたはハイブリッドクラウド等のクラウドコンピューティング展開モデルに配置されてもよい。クライアントコンピュータ102は、例えば、モバイルデバイス、電話、携帯情報端末、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、またはプログラムの実行、ネットワークへのアクセスおよびデータベース114へのアクセスが可能な任意のタイプのコンピューティングデバイスであってよい。本実施形態の様々な実装により、予約および委任プログラム110a、110bは、限定ではないがコンピュータ102、ネットワークサーバ112またはクラウドストレージサービス等の様々なストレージデバイスに埋め込みされてよいデータベース114とやり取りしてよい。
【0028】
本実施形態によると、クライアントコンピュータ102またはサーバコンピュータ112を使用するユーザは、サービスまたはデバイスを予約または委任するために、予約および委任プログラム110a、110b(それぞれ)を用いてよい。サービス、デバイスまたはユーザを予約または委任する方法について、図2~3を参照して以下に詳細に説明する。
【0029】
図2を参照すると、本発明の一実施形態による予約および委任システムの例示的なアーキテクチャ200全体を示すブロック図が示される。アーキテクチャ200は、予約および委任プログラム110a、110bが、サービスまたはデバイスを予約および委任し得る3つの異なるシナリオを示す。異なるシナリオには、限定されるものではないが、サービス委任シナリオ、デバイス委任シナリオおよびユーザ委任シナリオが含まれてよい。
【0030】
サービス委任シナリオは、1または複数のユーザ、サービスプロバイダ1 220a、サービスプロバイダ2 220bおよびスマートコントラクト222を含んでよい。サービス委任シナリオは、サービスプロバイダ1 220aがそのサービスに関する問題に遭遇したとき、どのようにそのユーザを、サービスプロバイダ2 220bに移行させ得るかに関する例を提供する。サービスプロバイダ1 220aからのサービスは、サービスプロバイダ2 220bに予約および委任されてよい。サービスプロバイダ220a、220bは、ネットワーク、ストレージまたは処理サービス等の特定のサービスをユーザに提供する企業を指してよい。例えば、サービスプロバイダ220a、220bは、電話会社、インターネットサービスプロバイダ、アプリケーションサービスプロバイダ、ストレージサービスプロバイダまたはコンテンツプロバイダであってよい。2つのサービスプロバイダが図示されるが、本発明の実施形態は、1または複数のサービスプロバイダを想定することを理解されたい。
【0031】
特定のサービスは、複数のサービスプロバイダ220a、220bによって提供されてよい。例えば、ネットワークサービスは、サービスプロバイダ220a、220bおよび220n(不図示)によって提供されてよい。サービスプロバイダ220a、220bのすべておよび当該サービスプロバイダが提供する特定のサービスは、ブロックチェーン230上で追跡されてよい。
【0032】
スマートコントラクト222は、ブロックチェーン230上で予約および委任プログラム110a、110b内に格納されてよい。スマートコントラクト222は、予約スマートコントラクトまたは委任スマートコントラクトであってよい。予約スマートコントラクトは、例えば、サービスプロバイダ1 220aおよびサービスプロバイダ2 220bといった少なくとも2つのプロバイダを指定してよい。サービスプロバイダ220a、220bは、一方のサービスプロバイダがサービスを有しない場合に、他方のサービスプロバイダが一時的なサービスを提供できるようにし得る、プロバイダ間のそれら自身の合意を有してよい。例えば、合意は、ブロックチェーンにおいて、予約スマートコントラクトに変換されて、2つのサービスプロバイダをバインドしてよい。例えば、サービスプロバイダ1 220aは、そのユーザを、サービスプロバイダ2 220bによって提供されるサービスを用いるように一時的に移行させてよい。このタイプの合意はまた、プロバイダ間にわたる複数のユーザによって設定されてもよい。
【0033】
一実施形態において、予約スマートコントラクトは、自動的にトリガされてよい。代替的な実施形態において、予約スマートコントラクトは、ユーザによって手動でトリガされてよい。例えば、ひとたびサービスプロバイダ1 220aおよびサービスプロバイダ2 220b等の2つのプロバイダ間の予約スマートコントラクトが確立されると、トリガイベントの発生時に、当該サービスプロバイダに自動的に切り替えられてよい。予約スマートコントラクトのトリガイベントのいくつかの例としては、限定されるものではないが、サービスプロバイダ間の合意、2つのデバイスをバインドするための1または複数のユーザからのリクエスト、または、2または2より多いサービスをバインドするためのリクエストが含まれてよい。サービスプロバイダの自動切り替えが生じるべく、予約スマートコントラクトは、2または2より多いサービスの自動バインドに関する情報を含んでよい。2または2より多いサービスの自動バインドは、2または2より多いサービスプロバイダ間で署名された複数の契約を同期させることで生じてよい。署名された契約は、ブロックチェーン内に格納されてよい。代替的に、ユーザは2または2より多いサービスのバインドを手動でトリガしてよい。
【0034】
委任スマートコントラクトは、どのような種類のサービスが誰に対して転送されるかに関する情報を提供してよく、または含んでいてよい。委任スマートコントラクトは、トリガイベントの発生時に自動的にトリガされてよい。委任スマートコントラクトのトリガイベントのいくつかの例には、登録されたデバイスの低バッテリの指標、登録されたサービスプロバイダにより提供される限定的なサービス、または、個人用車両の物理的なキーの利用不可能性が含まれてよい。例えば、ユーザAがあるデバイス、スマートフォンを利用している。ユーザAは、携帯電話サービスを提供するサービスプロバイダ1 220aを利用している。ユーザAのスマートフォンは、非常に貧弱なサービスであるか、あるいは、サービスがないことを示している。貧弱なサービスを有するか、あるいは、サービスを有しないという指標は、トリガイベントの一例であってよい。結果的に、委任スマートコントラクトの下、サービスは、サービスプロバイダ1 220aからサービスプロバイダ2 220bに切り替えられてよい。例えば、ユーザデバイスが、サービスプロバイダ1 220aによって提供される貧弱なサービスを示すや否や、サービスの委任が生じてよい。例えば、ユーザデバイスが、貧弱なサービスがサービスプロバイダ1 220aによって提供されていることを示すや否や、サービスの委任が生じてよい。貧弱なサービスは、デバイスが、別のサービスプロバイダ2 220bからサービスを受信するように切り替え、ユーザAがサービスの中断に遭遇することがないようにできることを示す。
【0035】
アーキテクチャ200に図示された別のシナリオは、デバイス委任シナリオである。デバイス委任シナリオは、1または複数のデバイス224a、224b、224cおよびスマートコントラクト222を含んでよい。デバイス委任シナリオは、どのように特定のサービスが、1つのデバイスから別のデバイスに委任され得るかに関する例を提供する。デバイス224a~cは、限定されるものではないが、モバイルデバイス、電話、携帯情報端末、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータが含まれてよい。デバイス224a~cはまた、異なるタイプのクレジットカードも含んでよい。例えば、デバイス224a~cは、スマートフォン、スマートウォッチ、クレジットカードまたは使用のために委任されてよい任意の他のデバイスであってよい。
【0036】
デバイス委任シナリオで用いられるスマートコントラクト222は、予約スマートコントラクトまたは委任スマートコントラクトを含んでよい。一実施形態において、予約スマートコントラクトは、ユーザに所有されるどのデバイスが委任目的のために用いられ得るかに関する情報を提供してよい。例えば、ユーザは、ユーザのスマートフォン、タブレット、1または複数のクレジットカードをブロックチェーン230上に登録してよく、且つ、当該デバイスを予約スマートコントラクトとリンクさせてよい。さらに、ユーザは、ユーザのスマートフォンが使用できない場合、ユーザのスマートフォンからのサービスは一時的にユーザのタブレットに転送されてよいことを指定してよい。代替的な実施形態において、予約スマートコントラクトはまた、他のユーザによって所有される度のデバイスが委任目的で用いられてよいかに加え、当該他のユーザによって所有される、選択されたデバイス224a~cに関する情報を提供してよい。
【0037】
予約スマートコントラクトは、トリガイベントの発生時に、自動的にトリガされなくてよい。むしろ、予約スマートコントラクトは、ユーザによってトリガされてよい。これにより、ユーザが、転送されるサービスを受信するためにどのデバイスが信用可能かに関し制御できてよい。
【0038】
デバイス委任シナリオにおいて、委任スマートコントラクトは、いつあるデバイスからのサービスを、別のデバイスに切り替えるべきであるかを判定するために用いられ得るトリガイベントを定義してよい。また、デバイス委任シナリオにおいて、委任スマートコントラクトはまた、異なるデバイスのために指定される異なる認証方法も含んでよい。例えば、委任スマートコントラクトにおいて、ユーザは、例えばスマートフォンであるデバイス1 224aがバッテリ切れのときに、サービスが例えばタブレットであるデバイス2 224bに切り替えてよいことを定義してよい。さらに、サービスをデバイス1 224aからデバイス2 224bに切り替えるべく、ユーザは、デバイス2 224bにピンを入力して、デバイス2 224bがサービスプロバイダからサービスを受信するための認証を行ってよい。
【0039】
一実施形態において、委任スマートコントラクトは、ユーザによってトリガされてよい。例えば、ユーザが仕事のためにユーザのスマートフォンを使用している。スマートフォンは、バッテリが切れそうである。このため、スマートフォンがバッテリ切れになる前に、ユーザは、スマートフォンをタブレットとペアリングすることにより、委任スマートコントラクトをトリガしてよい。ひとたびペアリングさえると、当該2つのデバイスは、同一のまたは異なる認証方法のいずれかで、同一サービスにアクセスしてよい。ひとたびスマートフォンが利用不可になると、スマートフォンのインターネットサービスがタブレットに委任され得るように、サービスはタブレットに委任されてよい。結果的に、ユーザは、スマートフォンの代わりに、タブレット上でサービスの受信を継続してよい。
【0040】
別の例において、ユーザが仕事のためにユーザのスマートフォンを使用している。ユーザがスマートフォンのインターネットサービスをタブレット等の別のデバイスに委任すべく、委任スマートコントラクトをトリガする前に、スマートフォンはバッテリ切れになった。しかしながら、予約スマートコントラクトの下、ユーザは、ユーザのタブレットを、サービスを受信するために用いられてよいデバイスのうちの1つとして指定していた。このため、ユーザは、当該タブレットを用いて委任契約をトリガして、元々はスマートフォンに提供されていたインターネットサービスを受信してよい。結果的に、インターネットサービスは、あるデバイスであるスマートフォンから、別のデバイスであるタブレットに委任されてよい。
【0041】
代替的な実施形態において、委任スマートコントラクトは、自動的にトリガされてよい。例えば、サービスプロバイダは、ユーザが用いているデバイスのバッテリレベルを検出してよい。ひとたびデバイスのバッテリレベルが特定のレベルに到達したら、サービスプロバイダはスマートコントラクトをトリガして、サービスを別のデバイスに委任してよい。
【0042】
あるデバイスから別のデバイスへのサービスの委任は、一時的であってよい。上の例から継続して、委任スマートコントラクトは、サービスが特定の期間、例えば60分の間、デバイス2 224bに切り替えられてよいことを指定してよい。ひとたび60分が過ぎると、サービスはデバイス2 224bからデバイス1 224aに自動的に戻ってよい。特定の期間は、スマートコントラクト222で指定される限定された時間量を指してよい。それは、分、時間、あるいは日で定量化されてよい。
【0043】
アーキテクチャ200に図示された3番目のシナリオは、ユーザ委任シナリオである。ユーザ委任シナリオは、スマートコントラクト222、並びに、例えばユーザ1 228aおよびユーザ2 228b等の1または複数のユーザを含んでよい。ユーザ委任シナリオは、あるユーザ、例えばユーザ1 228aから別のユーザ、例えばユーザ2 228bへデバイスまたはサービスがどのように委任され得るかに関する一例を提供する。
【0044】
ユーザ委任シナリオにおけるスマートコントラクト222は、予約スマートコントラクトおよび委任スマートコントラクトを含む。このシナリオにおいては、予約スマートコントラクトは、ユーザは誰であるか、および各ユーザ間の関係等の情報を含んでよい。例えば、ユーザ228a、228bは、友人、同僚または家族であってよい。ユーザ228a、228bは、互いの間に信頼関係を有してよい。これらの信頼関係は、予約スマートコントラクトにおいて明確に定義されてよい。
【0045】
予約スマートコントラクトは、ユーザによりトリガされる。このため、ユーザは、委任に参加し得る他のユーザを指定してよい。ユーザは、複数のユーザを指定してよい。また、各ユーザの関係は等しい。このため、各ユーザは、予約スマートコントラクトが実施されるには、予約スマートコントラクトに合意する必要がある。例えば、2人のユーザ、ユーザ1 228aおよびユーザ2 228bが存在する。ユーザ1 228aは、ユーザ2 228bとの予約スマートコントラクトを締結することを所望する。予約スマートコントラクトは、ユーザ1 228aが当該ユーザの個人用車両の使用を、ユーザ2 228bに移転し得ることを規定する。ユーザ2 228bは、予約スマートコントラクトに合意し、予約スマートコントラクトが実施される。しかしながら、もしユーザ2 228bが予約スマートコントラクトに合意しない場合には、予約スマートコントラクトは存在しない。契約の一方側が契約に合意しないので、予約スマートコントラクトは実施されない。
【0046】
ユーザ委任シナリオの委任スマートコントラクトは、各ユーザが有してよい、若しくは、受信および委任可能であってよいサービス、または、各ユーザが有してよく、および受信または委任可能であってよいデバイス等の情報を含んでいてよい。各ユーザは、複数のサービスおよび委任に参加し得る複数のデバイスを指定してよい。このため、各ユーザは、何が誰に委任されているかを判定してよい。また、各ユーザは、トリガイベントを判定してよい。トリガイベントは、その発生時に、委任をトリガし得るイベントであってよい。トリガイベントのいくつかの例には、登録されたデバイスの低バッテリの指標、登録されたサービスプロバイダにより提供される限定的サービス、または、個人用車両の物理的なキーの利用不可能性が含まれてよいが、これらに限定されるものではない。
【0047】
予約および委任スマートコントラクトの実施は、以下のシナリオから明らかであろう。例えば、ユーザ2 228bが、ある都市から別の都市へ行くために車両を必要とする。予約スマートコントラクトおよび委任スマートコントラクトの両方の下、ユーザ2 228bは、ユーザ1 228aの個人用車両の使用を承認されている。しかしながら、ユーザ1 228aは出張先におり、当該個人用車両の物理的なキーをユーザ2 228に提供できない。にもかかわらず、委任スマートコントラクトを用いて、ユーザ2 228bは、ユーザ2 228bが当該個人用車両にアクセスして、運転することを許容する仮想識別情報またはトークンを受信してよい。このシナリオにおいて、物理的なキーは不要である。むしろ、委任スマートコントラクトは、デバイスが何であるか、つまり個人用車両であること、デバイスは誰のところ、つまりユーザ2 228bのところに行くかに関する情報を含む。物理的なキーを受け取る代わりに、ユーザ2 228bは、スマートフォン等のユーザの個人デバイス上のトークンまたは仮想識別情報を受信してよく、当該仮想識別情報は、ユーザ2 228bがユーザ1 228aの個人用車両を使用できるようにしてよい。結果的に、個人用車両のユーザは、ユーザ1 228aからユーザ2 228bに委任される。さらに、トークンが委任される場合、物理的なキーは、必要ではない。
【0048】
特定のサービスまたはデバイスの委任は、一時的であってよい。上の例から継続して、委任スマートコントラクトは、ユーザ2 228bが、特定の期間、例えば24時間の間、個人用車両を用いてよいことを指定してよい。ひとたび24時間が過ぎると、委任されたトークンは期限切れとなり、ユーザ2 228bは、個人用車両を使用する権限を失う。
【0049】
3つのすべてのシナリオはまた、ユーザデバイスサービス226a~cも含んでよい。ユーザデバイスサービス226~cは、1または複数のスマートコントラクトに関与し得るユーザ228、デバイス224およびサービスプロバイダ220に関する情報を格納し得るデータベースを指してよい。
【0050】
ここで図3を参照すると、少なくとも一実施形態による動作フローチャート300が示されている。動作フローチャート300は、予約および委任プログラム110a、110bによる、ユーザ、デバイスまたはサービスの予約および委任を示す。
【0051】
動作302において、登録対象が受信される。対象は、サービス、デバイスまたはユーザであってよい。例えば、サービスは、図2に関し本明細書で説明されたサービスプロバイダ220a、220bによりユーザに提供される任意のタイプのサービスを指してよい。デバイスは、使用のために委任されてよい任意のデバイスを指してよい。デバイスのいくつかの非限定的な例として、モバイルデバイス、電話、携帯情報端末、ネットブック、ラップトップコンピュータ、タブレットコンピュータ、デスクトップコンピュータ、異なるタイプのクレジットカードまたは車両が含まれてよい。ユーザは個人であってよく、そのデバイスが別のユーザに委任される。ユーザはまた、あるサービスプロバイダのサービスを、別のサービスプロバイダに、またはあるデバイスのサービスを別のデバイスに委任する個人であってもよい。
【0052】
予約および委任プログラム110a、110bは、異なるサービスプロバイダ220a、220bおよび異なるデバイス224a~cに関する情報を受信してよい。登録プロセスの間、ユーザは、ユーザが使用中であり得る様々なサービスプロバイダ220a、220bを登録してよい。例えば、ユーザは、1または複数のネットワークプロバイダまたは1または複数のセルサービスプロバイダを指定してよい。また、ユーザは、ユーザがサービスプロバイダ220a、220bによって提供されるサービスと共に使用し得るデバイス224a~cも登録してよい。ユーザは、登録プロセス後、任意の時点において、特定の対象を更新してよいことを理解されたい。例えば、対象登録の間、ユーザは、デバイスAおよびデバイスBを、特定のサービスと共に用いられ得る2つのデバイスとして識別する。ユーザは、デバイスAはスマートフォンであり、デバイスBはタブレットであることを指定してよい。
【0053】
登録プロセスの間、予約および委任プログラム110a、110bはまた、スマートコントラクト222に関する情報も受信してよい。例えば、一実施形態において、対象登録プロセス中にスマートコントラクト222は設定されてよい。例えば、2つのサービスプロバイダ間のスマートコントラクト222は、サービスプロバイダ登録の間に設定されてよい。代替的な実施形態においては、スマートコントラクト222は対象登録プロセスの後で、例えば、トリガ条件の発生中、または、スマートコントラクト222の展開中に設定されてよい。
【0054】
登録プロセスの間、予約および委任プログラム110a、110bはまた、ユーザに関する識別情報をユーザから受信してよい。いくつかの識別情報には、例えば名前、住所、電子メールアドレスまたは電話番号等のユーザの個人情報が含まれてよいが、これらに限定されるものではない。予約および委任プログラム110a、110bは、ユーザを識別し得る、デバイスを識別し得る、またはサービスおよびそれぞれのサービスプロバイダを識別し得る任意の他の情報を受信してよい。さらに、予約および委任プログラム110a、110bはまた、サービスまたはデバイスの予約および委任に参加し得る他のユーザに関する識別情報も受信してよい。
【0055】
動作304において、ユーザにより定義された1または複数のトリガ条件が受信される。1または複数のトリガ条件は、1または複数の第1のトリガ条件、または、1または複数の第2のトリガ条件であってよい。第1のトリガ条件は、その発生時に、スマートコントラクトの展開を開始してよい条件である。第1のトリガ条件のいくつかの例には、登録されたデバイスの低バッテリの指標、登録されたサービスプロバイダにより提供される限定的なサービス、個人用車両の物理的なキーの利用不可能性または指定期間が含まれてよいが、これらに限定されるものではない。例えば、指定期間は、例えば30分、1時間、24時間あるいは日等の特定の時間量を指してよい。
【0056】
第2のトリガ条件は、その発生時に、スマートコントラクトの非アクティブ化を開始してよい条件である。第2のトリガ条件のいくつかの例には、登録されたデバイスのフルバッテリの指標、登録されたサービスプロバイダにより提供される非限定的サービス、個人用車両の物理的なキーの利用可能性または指定期間の期限切れが含まれてよいが、これらに限定されるものではない。例えば、指定期間の期限が切れると、第2のトリガ条件の発生が満たされ、スマートコントラクトの非アクティブ化が開始されてよい。
【0057】
動作306において、1または複数の第1のトリガ条件の発生が検出される。一実施形態において、予約および委任プログラム110a、110bは、1または複数の第1のトリガ条件が生じたことを自動的に検出してよい。例えば、予約および委任プログラム110a、110bは、限定されたサービスが生じるとすぐに、ユーザが現在位置する領域においては、サービスプロバイダAは限定されたサービスを有することを検出してよい。代替的な実施形態においては、ユーザは、予約および委任プログラム110a、110bが、動作308に移動して、スマートコントラクトを展開することを予約および委任プログラム110a、110bに促す(プロンプト)ことにより、第1のトリガ条件の発生を手動でトリガさせてよい。例えば、ユーザは、仕事の目的でデバイスAを使用していてよい。ユーザは、デバイスAがバッテリ切れになりつつあることに気づいてよい。ユーザは、アプリケーションプログラミングインタフェースの使用を介して、予約および委任プログラム110a、110bに対し、第1のトリガ条件が生じたことをプロンプトしてよい。
【0058】
動作308において、スマートコントラクト222が展開される。ひとたび1または複数のトリガ条件が検出されると、予約および委任プログラム110a、110bは、スマートコントラクト222を自動的に展開してよい。スマートコントラクト222は、予約および委任の両方のスマートコントラクト222であってよい。例えば、ユーザは、サービスプロバイダAにより提供されるサービスを用いている。当該ユーザは、同一サービスがサービスプロバイダAおよびサービスプロバイダBによって提供され得る位置に存在している。予約および委任プログラム110a、110bは、サービスプロバイダAにより提供されるサービスは限定的であることを検出する。予約および委任プログラム110a、110bはまた、サービスプロバイダBにはその特定の位置において、サービスの中断がないことも検出してよい。このため、予約および委任プログラム110a、110bは、自動的にスマートコントラクトを展開して、サービスプロバイダAからのサービスをサービスプロバイダBへ切り替えてよい。結果的に、ユーザのサービスは中断されない。
【0059】
動作306に関し本明細書で説明した通り、ユーザは、第1のトリガ条件の発生を手動でトリガすることで、予約および委任プログラム110a、110bに対しスマートコントラクトを展開するようにをプロンプトしてよい。上の例から継続して、ユーザは、仕事の目的でデバイスAを使用していてよい。ユーザは、デバイスAがバッテリ切れになりつつあることに気づいてよい。デバイスAを用いて、ユーザは、スマートコントラクトを展開して、サービスをデバイスAから、例えばデバイスB等の別のデバイスに委任するよう予約および委任プログラム110a、110bに対しプロンプトしてよい。ユーザはまた、例えばデバイスAが完全にバッテリ電力がなくなったとき、実行デバイスBからスマートコントラクトを展開するよう予約および委任プログラム110a、110bに対しプロンプトしてもよい。
【0060】
動作310において、1または複数の第2のトリガ条件の発生が検出される。ひとたびスマートコントラクトがアクティブ化されると、予約および委任プログラム110a、110bは、予約および委任プログラム110a、110bが第2のトリガ条件の発生を検出するといったようなときまで、委任を一時的に実行してよい。動作304に関し本明細書で説明したように、第2のトリガ条件は、その発生時に、スマートコントラクトの非アクティブ化を開始し得る条件を指してよい。例えば、ユーザは、サービスプロバイダAにより提供されるサービスを用いている。しかしながら、サービスプロバイダAにより提供されるサービスが限定的であることに起因して、予約および委任プログラム110a、110bは、スマートコントラクトを展開して、サービスプロバイダAからのサービスをサービスプロバイダBへ切り替える。結果的に、ユーザは、限定された時間の間、サービスプロバイダBからサービスを受信する。予約および委任プログラム110a、110bは、サービスプロバイダAにより提供されるサービスが回復したことを検出する。
【0061】
ひとたび第2のトリガ条件の発生が検出されると、予約および委任プログラム110a、110bは、スマートコントラクトが非アクティブ化される動作312に移動する。スマートコントラクトの非アクティブ化の間、予約および委任プログラム110a、110bは、委任を削除することにより、委任の実行を停止してよい。結果的に、委任または切り替えられていたデバイスまたはサービスが何であれ、当該デバイスまたはサービスは、その委任前の設定に戻る。上記の例で継続して、予約および委任プログラム110a、110bは、サービスプロバイダAにより提供されるサービスが完全に回復されたことを検出する。結果的に、予約および委任プログラム110a、110bは、サービスプロバイダAからサービスプロバイダBへのサービスプロバイダの切り替えを許容したスマートコントラクトを非アクティブ化し、サービスプロバイダAへと切り替え戻す。このため、ひとたびスマートコントラクトが非アクティブ化されると、サービスプロバイダAは、ユーザへのサービス提供を再開する。
【0062】
別の例において、ユーザは、仕事の目的でデバイスAを使用していてよい。ユーザは、デバイスAがバッテリ切れになりつつあることに気づく。ユーザは、第1のトリガ条件が発生したことを、予約および委任プログラム110a、110bに対しプロンプトする。予約および委任プログラム110a、110bは、スマートコントラクトをアクティブ化させ、サービスをデバイスAからデバイスBに委任する。予約および委任プログラム110a、110bは、予約および委任プログラム110a、110bが第2のトリガ条件を検出するまで、委任を実行する。この場合、第2のトリガ条件は、デバイスAのバッテリのフル充電の検出であってよい。ひとたび第2のトリガ条件が検出されると、予約および委任プログラム110a、110bは、デバイスBへのサービスの委任を停止する。結果的に、サービスは、デバイスAに戻る。
【0063】
図2~3は、一実施形態の単なる例示を提供しており、異なる実施形態がどのように実装され得るかに関する限定を示唆するものではないことを理解されたい。図示された実施形態に対する多くの修正が、設計要件および実装要件に基づきなされてよい。
【0064】
図4は、本発明の例示的な実施形態による、図1に図示されたコンピュータの内部コンポーネントおよび外部コンポーネントのブロック図900である。図4は、一実装の単なる例示を提供しており、異なる実施形態が実装されてよい環境に関する限定を示唆するものではないことを理解されたい。図示された環境に対する多くの修正が、設計要件および実装要件に基づきなされてよい。
【0065】
図1に図示されたコンピュータは、マシン可読プログラム命令を実行可能な任意のデバイスを表わしていてよい。コンピュータは、スマートフォン、コンピュータシステム、PDAまたは他の電子デバイスを表わしていてよい。コンピューティングシステム、環境および/または構成の例としては、パーソナルコンピュータシステム、サーバコンピュータシステム、シンクライアント、シッククライアント、ハンドヘルドデバイス若しくはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサベースのシステム、ネットワークPC、ミニコンピュータシステム、および、上記のシステムまたはデバイスのうち任意のものを含む分散クラウドコンピューティング環境が含まれてよいが、これらに限定されるものではない。
【0066】
ユーザクライアントコンピュータ102およびネットワークサーバ112は、図4に示される内部コンポーネント902a、bおよび外部コンポーネント904a、bのそれぞれのセットを含んでよい。内部コンポーネント902a、bのセットの各々は、1または複数のバス912上の1または複数のプロセッサ906、1または複数のコンピュータ可読RAM908および1または複数のコンピュータ可読ROM910、並びに、1または複数のオペレーティングシステム914および1または複数のコンピュータ可読有体記憶デバイス916を含む。クライアントコンピュータ102内の1または複数のオペレーティングシステム914、ソフトウェアプログラム108、および、予約および委任プログラム110a、並びに、ネットワークサーバ112内の予約および委任プログラム110bは、1または複数のコンピュータ可読有体記憶デバイス916内に格納されてよく、1または複数のRAM908(通常キャッシュメモリを含む)を介して、1または複数のプロセッサ906により実行される。図4に図示さえる実施形態においては、コンピュータ可読有体記憶デバイス916の各々は、内部ハードドライブの磁気ディスクストレージデバイスである。代替的に、コンピュータ可読有体記憶デバイス916の各々は、ROM910、EPROM、フラッシュメモリまたはコンピュータプログラムおよびデジタル情報を格納可能な任意の他のコンピュータ可読有体記憶デバイス等の半導体記憶デバイスである。
【0067】
内部コンポーネント902a、bの各セットは、CD‐ROM、DVD、メモリスティック、磁気テープ、磁気ディスク、光ディスクまたは半導体記憶デバイス等の1または複数のポータブルコンピュータ可読有体記憶デバイス920との間で読み取りおよび書き込みするための、R/Wドライブまたはインタフェース918も含む。ソフトウェアプログラム108並びに予約および委任プログラム110a、110b等のソフトウェアプログラムは、それぞれのポータブルコンピュータ可読有体記憶デバイス920のうちの1または複数に格納されてよく、それぞれのR/Wドライブまたはインタフェース918を介して読み取られてよく、および、それぞれのハードドライブにロードされてよい。
【0068】
内部コンポーネント902a、bの各セットはまたネットワークアダプタ(またはスイッチポートカード)またはインタフェース922も含んでよく、このようなものとして例えば、TCP/IPアダプタカード、ワイヤレスwi‐fiインタフェースカード、または3G若しくは4Gワイヤレスインタフェースカードまたは他の有線若しくは無線の通信リンクが挙げられる。クライアントコンピュータ102内のソフトウェアプログラム108および予約および委任プログラム110a、並びに、ネットワークサーバコンピュータ112内の予約および委任プログラム110bは、ネットワーク(例えば、インターネット、ローカルエリアネットワークまたは他のワイドエリアネットワーク)およびそれぞれのネットワークアダプタまたはインタフェース922を介して、外部コンピュータ(例えば、サーバ)からダウンロードされてよい。ネットワークアダプタ(またはスイッチポートアダプタ)またはインタフェース922から、クライアントコンピュータ102内のソフトウェアプログラム108と、予約および委任プログラム110aと、ネットワークサーバコンピュータ112内の予約および委任プログラム110bとは、それぞれのハードドライブにロードされる。ネットワークは、銅の配線、光ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイコンピュータ若しくはエッジサーバまたはこれらの組み合わせを有してよい。
【0069】
外部コンポーネント904a、bのセットの各々は、コンピュータディスプレイモニタ924、キーボード926およびコンピュータマウス928を含んでよい。外部コンポーネント904a、bはまた、タッチスクリーン、仮想キーボード、タッチパッド、ポインティングデバイスおよび他のヒューマンインタフェースデバイスを含んでもよい。内部コンポーネント902a、bのセットの各々はまた、コンピュータディスプレイモニタ924、キーボード926およびコンピュータマウス928とのインタフェースを取るデバイスドライバ930も含む。デバイスドライバ930、R/Wドライブまたはインタフェース918およびネットワークアダプタまたはインタフェース922は、ハードウェアおよびソフトウェア(ストレージデバイス916若しくはROM910またはその両方に格納された)を備える。
【0070】
本開示は、クラウドコンピューティングに関する詳細な説明を含むが、本明細書に記載された教示の実装は、クラウドコンピューティング環境に限定されないことを予め理解されたい。むしろ、本発明の実施形態は、現在知られているまたは後に開発される任意の他のタイプのコンピューティング環境と連携して実装可能である。
【0071】
クラウドコンピューティングは、構成可能なコンピューティングリソース(例えば、ネットワーク、ネットワーク帯域、サーバ、プロセス、メモリ、ストレージ、アプリケーション、仮想マシンおよびサービス)の共有プールへの便利なオンデマンドネットワークアクセスを可能にするためのサービス供給のモデルであり、当該構成可能なコンピューティングリソースは、最小限の管理努力またはサービスプロバイダとのやり取りで、迅速にプロビジョニングおよびリリース可能である。このクラウドモデルは、少なくとも5つの特性、少なくとも3つのサービスモデルおよび少なくとも4つの展開モデルを含んでよい。
【0072】
特性は以下の通りである。
オンデマンドセルフサービス:クラウドコンシューマは必要に応じてサーバ時刻およびネットワークストレージ等のコンピューティング機能を自動で一方的にプロビジョニングでき、サービスプロバイダとの人間のやり取りは必要とされない。
広範なネットワークアクセス:諸機能は、ネットワーク経由で利用可能であり、異種のシン(thin)クライアントプラットフォームまたはシック(thick)クライアントプラットフォーム(例えば、モバイルフォン、ラップトップおよびPDA)による使用を促進する標準的なメカニズムを通してアクセスされる。
リソースプーリング:プロバイダのコンピューティングリソースはプールされて、要求により動的に割り当ておよび再割り当てされる異なる物理的および仮想的リソースを持つマルチテナントモデルを用いて、複数のコンシューマにサービス提供する。コンシューマは一般に、提供されるリソースの正確な場所を制御できず、またはそれを認識しない一方で、より高レベルの抽象度(例えば、国、州またはデータセンタ)において場所を指定できてよいという意味において場所の独立性という意味が存在する。
迅速な弾力性:諸機能は迅速且つ弾力的にプロビジョニング可能であり、いくつかの場合においては自動的に行われて、迅速なスケールアウト、迅速なリリースおよび迅速なスケールインまでされる。コンシューマに対しては、プロビジョニングのための利用可能な諸機能はしばしば無限に見え、任意の時点で任意の量購入可能できる。
測定されたサービス:クラウドシステムは、サービスのタイプ(例えば、ストレージ、処理、帯域幅およびアクティブユーザアカウント)に適切な特定レベルの抽象化における計測機能を利用することで、自動的にリソース利用を制御および最適化する。リソース利用率のモニタリング、制御および報告が可能であり、利用されるサービスのプロバイダおよびコンシューマの両方に対し透明性を提供する。
【0073】
サービスモデルについては、以下の通りである。
サービスとしてのソフトウェア(Software as a Service:SaaS):コンシューマに提供される能力は、クラウドインフラストラクチャ上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブブラウザ(例えば、ウェブベースの電子メール)等のシンクライアントインタフェースを通して様々なクライアントデバイスからアクセス可能である。考えられる例外として限定されたユーザ特有のアプリケーション構成設定を除き、コンシューマは、ネットワーク、サーバ、オペレーティングシステム、ストレージまたは個々のアプリケーション機能まで含めた基礎となるクラウドインフラストラクチャを管理または制御することはない。
サービスとしてのプラットフォーム(Platform as a Service(PaaS)):コンシューマに提供される能力は、クラウドインフラストラクチャ上に、プロバイダによりサポートされるプログラミング言語およびツールを用いてコンシューマが作成または取得したアプリケーションを展開することである。コンシューマは、ネットワーク、サーバ、オペレーティングシステムまたはストレージを含む基礎となるクラウドインフラストラクチャを管理または制御はしないが、展開したアプリケーションおよび可能性としてアプリケーションホスティング環境構成に対する制御は有する。サービスとしての分析(Analytics as a Service:AaaS):コンシューマに提供される能力は、ウェブベースまたはクラウドベースのネットワーク(すなわち、インフラストラクチャ)を用いて、分析プラットフォームにアクセスすることである。分析プラットフォームは、分析ソフトウェアリソースへのアクセスを含んでよく、または、関連するデータベース、コーパス、サーバ、オペレーティングシステムまたはストレージへのアクセスを含んでよい。コンシューマは、データベース、コーパス、サーバ、オペレーティングシステムまたはストレージを含む基礎となるウェブベースまたはクラウドベースのインフラストラクチャを管理または制御はしないが、展開したアプリケーションおよび可能性としてアプリケーションホスティング環境構成に対する制御は有する。
サービスとしてのインフラストラクチャ(Infrastructure as a Service:IaaS):コンシューマに提供される能力は、処理、ストレージ、ネットワークおよび他の基本的なコンピューティングリソースをプロビジョニングすることであり、ここでコンシューマは、オペレーティングシステムおよびアプリケーションを含み得る任意のソフトウェアを展開および実行可能である。コンシューマは、基礎となるクラウドインフラストラクチャを管理または制御しないが、オペレーティングシステム、ストレージ、展開されたアプリケーションに対する制御を有し、可能性としてネットワークコンポーネント(例えば、ホストファイヤウォール)の選択に対する限定的制御も有する。
【0074】
展開モデルは以下の通りである。
プライベートクラウド:クラウドインフラストラクチャは、1つの組織のためにのみ動作される。プライベートクラウドは、当該組織またはサードパーティによって管理されてよく、オンプレミスまたはオフプレミスに存在してよい。
コミュニティクラウド:クラウドインフラストラクチャは、複数の組織によって共有され、共有の関心事項(例えば、ミッション、セキュリティ要件、ポリシーおよびコンプライアンス考慮事項)を有する特定のコミュニティをサポートする。コミュニティクラウドは、当該組織またはサードパーティによって管理されてよく、オンプレミスまたはオフプレミスに存在してよい。
パブリッククラウド:クラウドインフラストラクチャは、パブリック全般または大規模業界グループに利用可能とされ、クラウドサービスを販売する1つの組織によって所有される。
ハイブリッドクラウド:クラウドインフラストラクチャは、2または2より多いクラウド(プライベート、コミュニティまたはパブリック)により組成され、2または2より多いクラウドは、独自のエンティティのままであるが、データポータビリティおよびアプリケーションポータビリティ(例えば、クラウド間の負荷分散のためのクラウドバースト)を可能にする標準技術または独自技術によって結合される。
【0075】
クラウドコンピューティング環境は、ステートレス性、低結合性、モジュール性およびセマンティック相互運用性に焦点を当てたサービス指向である。クラウドコンピューティングの中核には、相互接続されたノードで構成されるネットワークを含むインフラストラクチャが存在する。
【0076】
ここで図5を参照すると、例示のクラウドコンピューティング環境1000が示される。図示の通り、クラウドコンピューティング環境1000は、1または複数のクラウドコンピューティングノード10を含み、例えば、携帯情報端末(PDA)またはセルラフォン1000A、デスクトップコンピュータ1000B、ラップトップコンピュータ1000C若しくは車両コンピュータシステム1000Nまたはこれらの組み合わせ等のクラウドコンシューマによって用いられるローカルコンピューティングデバイスは、当該ノードと通信してよい。ノード10は、互いに通信してよい。ノードは、上記したようなプライベートクラウド、コミュニティクラウド、パブリッククラウド若しくはハイブリッドクラウドまたはこれらの組み合わせ等の1または複数のネットワークにおいて、物理的または仮想的にグループ化(不図示)されてよい。これにより、クラウドコンピューティング環境1000は、クラウドコンシューマがローカルコンピューティングデバイス上のリソースを維持する必要のないサービスとしてのインフラストラクチャ、サービスとしてのプラットフォームもしくはサービスとしてのソフトウェアまたはこれらの組み合わせを提供できるようにする。図5に図示されるコンピューティングデバイス1000A-Nのタイプは、専ら例示的なものを意図し、コンピューティングノード10およびクラウドコンピューティング環境1000は、任意のタイプのネットワークもしくはネットワークアドレス指定可能な接続(例えば、ウェブブラウザを用いて)またはその両方を通して、任意のタイプのコンピュータ化されたデバイスと通信可能であることを理解されたい。
【0077】
ここで図6を参照すると、クラウドコンピューティング環境1000によって提供される一組の機能的抽象化レイヤ1100が図示されている。図6に図示されるコンポーネント、レイヤおよび機能は、専ら例示であることを意図しており、本発明の実施形態は、これらに限定されないことを予め理解されたい。図示の通り、以下のレイヤおよび対応する機能が提供される。
【0078】
ハードウェアおよびソフトウェアレイヤ1102は、ハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。ハードウェアコンポーネントの例としては、メインフレーム1104、RISC(縮小命令セットコンピュータ)アーキテクチャベースのサーバ1106、サーバ1108、ブレードサーバ1110、ストレージデバイス1112並びにネットワークおよびネットワークコンポーネント1114が含まれる。いくつかの実施形態において、ソフトウェアコンポーネントは、ネットワークアプリケーションサーバソフトウェア1116およびデータベースソフトウェア1118を含む。
【0079】
仮想化レイヤ1120は、仮想エンティティの以下の例が提供されてよい抽象化レイヤを提供し、その例とは、仮想サーバ1122、仮想ストレージ1124、仮想プライベートネットワークを含む仮想ネットワーク1126、仮想アプリケーションおよびオペレーティングシステム1128並びに仮想クライアント1130である。
【0080】
一例において、管理レイヤ1132は、以下に説明する機能を提供してよい。リソースプロビジョニング1134は、クラウドコンピューティング環境内でタスクを実行するために利用されるコンピューティングリソースおよび他のリソースの動的な調達を提供する。測定および価格設定1136は、リソースがクラウドコンピューティング環境内で用いられる際のコスト追跡およびこれらのリソースの消費に対する課金または請求書送付を提供する。一例において、これらのリソースは、アプリケーションソフトウェアライセンスを含んでよい。セキュリティは、クラウドコンシューマの身元確認およびタスク並びにデータおよび他のリソースのための保護を提供する。ユーザポータル1138は、コンシューマおよびシステム管理者に対し、クラウドコンピューティング環境へのアクセスを提供する。サービスレベル管理1140は、必要なサービスレベルが満たされるように、クラウドコンピューティングリソース割り当ておよび管理を提供する。サービスレベルアグリーメント(SLA)プランニングおよび遂行1142は、SLAに従い将来の要件が予期されるクラウドコンピューティングリソースに対する事前取り決めおよび調達を提供する。
【0081】
ワークロードレイヤ1144は、クラウドコンピューティング環境が用いられ得るための機能の例を提供する。このレイヤから提供されてよいワークロードおよび機能の例として、マッピングおよびナビゲーション1146、ソフトウェア開発およびライフサイクル管理1148、仮想クラスルーム教育配信1150、データ分析処理1152、トランザクション処理1154およびディープモデルラーニング1156が含まれる。チャットボット生成プログラム110a、110bは、ディープラーニングモデル訓練フェーズ中に、来歴データを用いてインサイトを取得する仕組みを提供する。
【0082】
本発明は、あらゆる可能な技術詳細の統合レベルにおけるシステム、方法若しくはコンピュータプログラム製品またはこれらの組み合わせであってよい。コンピュータプログラム製品は、プロセッサに、本発明の態様を実行させるためのコンピュータ可読プログラム命令を有するコンピュータ可読記憶媒体(複数可)を含んでよい。
【0083】
コンピュータ可読記憶媒体は、命令実行デバイスにより用いられる命令を保持及び格納可能な有体のデバイスであってよい。コンピュータ可読記憶媒体は、例えば、電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイスまたは上記したものの任意の好適な組み合わせであってよいが、これらに限定されるものではない。コンピュータ可読記憶媒体のより具体的な例の非網羅的リストには、以下のものが含まれ、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、リードオンリメモリ(ROM)、消去可能プログラマブルリードオンリメモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスクリードオンリメモリ(CD‐ROM)、デジタル多目的ディスク(DVD)、メモリスティック、フロッピーディスク、パンチカードまたは記録された命令を有するグルーブ内の隆起構造等の機械的に符号化されたデバイスおよび前述したものの任意の好適な組み合わせである。本明細書で用いられるコンピュータ可読記憶媒体は、無線波または他の自由に伝搬される電磁波、導波路または他の送信媒体(例えば、ファイバ光ケーブルを通して通過する光パルス)を通して伝播される電磁波または配線を通して送信される電気信号といった、一時的信号それ自体として解釈されないものとする。
【0084】
本明細書に説明されるコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング/処理デバイスにダウンロードされてよく、または、例えばインターネット、ローカルエリアネットワーク、ワイドエリアネットワークもしくは無線ネットワークまたはこれらの組み合わせといったネットワーク経由で外部コンピュータ若しくは外部ストレージデバイスにダウンロードされてよい。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイヤウォール、スイッチ、ゲートウェイコンピュータもしくはエッジサーバまたはこれらの組み合わせを有してよい。各コンピューティング/処理デバイス内のネットワークアダプタカードまたはネットワークインタフェースは、ネットワークからコンピュータ可読プログラム命令を受信し、当該コンピュータ可読プログラム命令を、それぞれのコンピューティング/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【0085】
本発明の動作をオペレーションを実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、マシン命令、命令依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路のための構成データ、あるいは、Smalltalk(登録商標)、C++等のオブジェクト指向プログラミング言語、および"C"プログラミング言語若しくは類似のプログラミング言語等の手続型プログラミング言語を含む1または複数のプログラミング言語の任意の組み合わせで記述されたソースコードまたはオブジェクトコードであってよい。コンピュータ可読プログラム命令は、ユーザコンピュータ上で全体的に、ユーザコンピュータ上で部分的に、スタンドアロンソフトウェアパッケージとして、ユーザコンピュータ上で部分的におよびリモートコンピュータ上で部分的に、または、リモートコンピュータ若しくはサーバ上で全体的に実行されてよい。後者のシナリオにおいては、リモートコンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含む任意のタイプのネットワークを通してユーザのコンピュータに接続されてよく、あるいは、外部コンピュータへの接続がなされてもよい(例えば、インターネットサービスプロバイダを用いたインターネット経由で)。いくつかの実施形態において、例えば、プログラマブルロジック回路、フィールドプログラマブルゲートアレイ(FPGA)またはプログラマブルロジックアレイ(PLA)を含む電子回路は、本発明の態様を実行すべく、コンピュータ可読プログラム命令の状態情報を用いてコンピュータ可読プログラム命令を実行して、電子回路をパーソナライズしてよい。
【0086】
本発明の態様は、本発明の実施形態による方法、装置(システム)およびコンピュータプログラム製品のフローチャート図もしくはブロック図またはその両方を参照して本明細書で説明される。フローチャート図および/またはブロック図の各ブロックおよびフローチャート図および/またはブロック図内のブロックの組み合わせが、コンピュータ可読プログラム命令によって実装されてよいことを理解されたい。
【0087】
これらのコンピュータ可読プログラム命令は、コンピュータのプロセッサまたは他のプログラム可能データ処理装置に提供されて、マシンを生成してよく、当該命令は、当該コンピュータのプロセッサまたは他のプログラム可能データ処理装置により実行され、フローチャートもしくはブロック図またはその両方のブロック(複数可)に指定された機能/動作を実装するための手段を形成する。これらのコンピュータ可読プログラム命令はまたコンピュータ可読記憶媒体内に格納されてよく、当該命令は、コンピュータ、プログラム可能データ処理装置および/または他のデバイスに対し、特定の態様で機能するよう命令し得、その結果、格納された命令を有するコンピュータ可読記憶媒体は、フローチャートおよび/またはブロック図のブロック(複数可)に指定された機能/動作の態様を実装する命令を含む製品を備えるようになる。
【0088】
コンピュータ可読プログラム命令はまた、コンピュータ、他のプログラム可能データ処理装置、または他のデバイスにロードされて、当該コンピュータ、当該他のプログラム可能装置または他のデバイス上で一連の動作ステップが実行されて、コンピュータ実装プロセスを生成してよく、その結果、当該コンピュータ、他のプログラム可能装置または他のデバイス上で実行される当該命令が、フローチャートもしくはブロック図またはその両方のブロック(複数可)に指定された機能/動作を実装する。
【0089】
これら図面内のフローチャートおよびブロック図は、本開示の様々な実施形態によるシステム、方法およびコンピュータプログラム製品の考えられる実装のアーキテクチャ、機能および処理を示す。この点に関し、フローチャートまたはブロック図内の各ブロックは、指定された論理機能(複数可)を実装するための1または複数の実行可能命令を備える命令のモジュール、セグメントまたは一部を表わしてよい。いくつかの代替的な実装において、ブロックに特記される機能は、図面内に示されるものとは異なる順序で行われてよい。例えば、連続的に図示される2つのブロックは実際には、関連する機能に応じて、1ステップとして行われてよく、並行して実行されてよく、実質的に並行して実行されてよく、部分的若しくは全体的に時間的に重複して実行されてよく、あるいは、場合によっては、ブロックは逆順で実行されてよい。またブロック図および/またはフローチャート図の各ブロック並びにブロック図および/またはフローチャート図内の複数のブロックの組み合わせが、指定された機能若しくは動作を実行する、または、特定用途向けハードウェアとコンピュータ命令との組み合わせを実行する特定用途向けハードウェアベースのシステムによって実装されてよいことにも留意されたい。
【0090】
本発明の様々な実施形態の記載は、包括的、又は、開示された実施形態に限定することを意図するものではなく、例示を目的として示されている。説明された実施形態の範囲および趣旨から逸脱することなく、当業者には多くの修正例および変形例が自明であろう。本明細書で用いられる用語は、実施形態の原理、市場で見られる技術の実用的な適用またはそれに対する技術的改善を最もよく説明し、あるいは、本明細書に開示された実施形態を他の当業者が理解できるように選択されている。
図1
図2
図3
図4
図5
図6