[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP7304442B2 - クラウドベースの認証、承認、及びユーザ管理サービスの発見及びマッピング - Google Patents

クラウドベースの認証、承認、及びユーザ管理サービスの発見及びマッピング Download PDF

Info

Publication number
JP7304442B2
JP7304442B2 JP2021575213A JP2021575213A JP7304442B2 JP 7304442 B2 JP7304442 B2 JP 7304442B2 JP 2021575213 A JP2021575213 A JP 2021575213A JP 2021575213 A JP2021575213 A JP 2021575213A JP 7304442 B2 JP7304442 B2 JP 7304442B2
Authority
JP
Japan
Prior art keywords
attribute
computing
authentication system
unique resource
resource
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021575213A
Other languages
English (en)
Other versions
JP2022536944A (ja
Inventor
ロバート ビターフェルト
アサフ ガーティ
バリィ ソロモン
ダニエル バディヤン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ServiceNow Inc
Original Assignee
ServiceNow Inc
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 ServiceNow Inc filed Critical ServiceNow Inc
Publication of JP2022536944A publication Critical patent/JP2022536944A/ja
Application granted granted Critical
Publication of JP7304442B2 publication Critical patent/JP7304442B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0884Network architectures or network communication protocols for network security for authentication of entities by delegation of authentication, e.g. a proxy authenticates an entity to be authenticated on behalf of this entity vis-à-vis an authentication entity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/305Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • 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/08Configuration management of networks or network elements
    • H04L41/085Retrieval of network configuration; Tracking network configuration history
    • H04L41/0853Retrieval of network configuration; Tracking network configuration history by actively collecting configuration information or by backing up configuration information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0281Proxies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • H04L67/025Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/53Network services using third party service providers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer And Data Communications (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Between Computers (AREA)

Description

コンピュータネットワークを構成するコンピューティングデバイス、ソフトウェアアプリケーション、ストレージ構造、及びその他のコンピューティングリソースが発見され得、それらの間の関係がマッピングされ得る。コンピュータネットワークのこれらの要素、及びそれらの間の関係は、構成アイテムとしてデータベース内に格納され得る。格納された構成アイテムは、コンピュータネットワーク内のこれらの要素の状態又は配置の視覚化を生成するために、後で検索及び使用され得る。コンピューティングリソースを発見することは、これらのコンピューティングリソースの検出、分類、及び/又は識別に必要な情報を収集可能なソフトウェアプロセスを開発することを含む。
クラウドベースのコンピューティングプラットフォーム等のリモートコンピューティングシステムは、ユーザ管理、認証、承認、及びリソースアクセス制御のその他の態様を容易にする認証システムを提供し得る。認証システムは、リモートコンピューティングシステム内に配備されたコンピューティングリソース(例えば、ソフトウェアアプリケーション)、並びにリモートコンピューティングシステムの外部にホストされたコンピューティングリソースによって使用され得る。リモートコンピューティングシステムは、発見アプリケーションが認証システムの様々な属性をそれを介して取得し得るアプリケーションプログラミングインターフェース(API)を提供し得る。発見アプリケーションは、そうした属性を取得し得、処理し得、リモートコンピューティングシステムの他のコンピューティングリソースのコンテキストで認証システムを表すマップに組み込み得る。属性は、例えば、認証システムによって維持される異なるユーザプール又はディレクトリを指し示し得る。
しかしながら、特に、これらの属性だけでは、リモートコンピューティングシステムの内外の両方で、認証システムと他のコンピューティングリソースとの間の関係を指し示さないことがある。すなわち、属性は、何れのコンピューティングリソースがアクセス制御のために認証システムを利用するかを指し示さないことがある。そうした関係を判定及びマッピングするために、発見アプリケーションは、認証システムのユニークリソース識別子を判定し、このユニークリソース識別子に対する他のコンピューティングリソースの属性を検索するように構成され得る。他のコンピューティングリソースの属性内でユニークリソース識別子を識別することは、他のコンピューティングリソースによる認証システムの使用を示すことがある。
ユニークリソース識別子は、認証システムが配備されている特定のリモートコンピューティングシステムに依存して、異なるフォーマットを取り得る。したがって、発見アプリケーションは、1つ以上の異なる可能なフォーマットを有するユニークリソース識別子に対するコンピューティングリソースの属性を解析するように構成され得る。コンピューティングリソースのコンテキストで新たなユニークリソース識別子が見つかった場合、それは、認証システムと関連付けられたユニークリソース識別子と比較され得る。2つのユニークリソース識別子が一致する場合、発見アプリケーションは、認証システムと対応するコンピューティングリソースとの間のマッピングを生成し、それによって、コンピューティングリソースが認証システムを使用することを指し示す。
このようにして、認証システムを利用する複数のコンピューティングリソースはそれにマッピングされ得、したがって、認証システムの利用及び相互接続が、発見アプリケーションによって視覚的にレンダリングされることを可能にする。幾つかの実装では、この視覚的レンダリングは、ユーザが視覚的レンダリングと相互作用することによってリモートコンピューティングシステムの態様を修正することを可能にするという点でインタラクティブであり得る。
認証システムのユニークリソース識別子は、APIを介してリモートコンピューティングシステムから認証システムの1つ以上の属性を取得することによって判定又は取得され得る。幾つかの実装では、ユニークリソース識別子は、認証システムの属性に明示的に表明され得、明言され得、さもなければ含まれ得る。他の実装では、発見アプリケーションは、ユニークリソース識別子を判定又は生成するために、属性の内の1つ以上を組み合わせるように構成され得る。例えば、属性は、可能な属性の中でもとりわけ、認証システムのサービス名、認証システムが存在する地理的領域、認証システムと関連付けられたアカウント、及び/又は認証システムと関連付けられた英数字の識別子を定義し得る。ユニークリソース識別子は、特定のフォーマット又は方式に従ってこれらの属性の内の1つ以上を組み合わせる(例えば、連結する)ことによって判定され得る。更に、幾つかの実装では、ユニークリソース識別子は、発見アプリケーションによって取得された追加の属性に基づいて判定され得る。これらの追加の属性は、可能性の中でもとりわけ、リモートコンピューティングシステムの属性、又はAPIと通信するために発見アプリケーションにより使用されるサービス識別子(例えば、ユーザカウント)の属性であり得る。
幾つかの場合、認証システムのユニークリソース識別子は、認証システム自体が発見される前にコンピューティングリソースの発見の一部として識別され得る。発見アプリケーションは、ユニークリソース識別子のコンテンツに基づいて、ユニークリソース識別子が認証システムに対応すると判定するように構成され得る。ユニークリソース識別子が認証システムに対応することに基づいて、発見アプリケーションは、認証システムの属性を取得するように構成された対応する発見パターンを選択及び実行し得る。発見アプリケーションは、対応する発見パターンと関連付けられた他のタイプのコンピューティングリソースに対して同様の動作を実施するように構成され得る。
そうしたアプローチは、発見が最初に開始され、リモートコンピューティングシステム内の異なるコンポーネントが未知であり得る場合に有用であり得る。すなわち、コンピューティングリソースの属性内のあるユニークリソース識別子の発見は、幾つか又は全ての特定のコンピューティングリソースの手動識別を必要とせずに、相互接続された任意のコンピューティングリソースを通じて発見及びマッピングを自動的に進めることを可能にし得る。
したがって、第1の例示的実施形態は、発見アプリケーションによって、及びリモートコンピューティングシステムから、管理されるネットワークに代わってリモートコンピューティングシステムによって提供される複数のコンピューティングリソースの内の第1のコンピューティングリソースの第1の属性を取得することを含み得る。第1の属性は、リモートコンピューティングシステムによって提供され第1のコンピューティングリソースによって利用される認証システムと関連付けられた第1のユニークリソース識別子を指し示す。第1の例示的実施形態はまた、発見アプリケーションによって、及びリモートコンピューティングシステムから、認証システムの第2の属性を取得することを含み得る。第2の属性は、認証システムによって使用される第2のユニークリソース識別子を指し示す。第1の例示的実施形態は、発見アプリケーションによって、第1のユニークリソース識別子が第2のユニークリソース識別子と一致すると判定することを更に含み得る。第1の例示的実施形態は、第1のユニークリソース識別子が第2のユニークリソース識別子と一致することに基づいて、第1のコンピューティングリソースへのアクセスが認証システムによって制御されることを指し示すように、第1のコンピューティングリソースと認証システムとの間のマッピングを発見アプリケーションによって生成することを更に含み得る。第1の例示的実施形態は、管理されるネットワークに代わってデータを格納するように構成された永続ストレージ内にマッピングを1つ以上の構成アイテムとして格納することを更に含み得る。
第2の例示的実施形態では、コンピューティングシステムは、管理されるネットワークに代わってデータを格納するように構成された永続ストレージと、動作を実施するように構成された発見アプリケーションとを含み得る。リモートコンピューティングシステムは、管理されるネットワークに代わって複数のコンピューティングリソースを提供し得る。動作は、リモートコンピューティングシステムから、複数のコンピューティングリソースの内の第1のコンピューティングリソースの第1の属性を取得することを含み得る。第1の属性は、リモートコンピューティングシステムによって提供され第1のコンピューティングリソースによって利用される認証システムと関連付けられた第1のユニークリソース識別子を指し示す。動作はまた、リモートコンピューティングシステムから、認証システムの第2の属性を取得することを含み得る。第2の属性は、認証システムによって使用される第2のユニークリソース識別子を指し示し得る。動作は、第1のユニークリソース識別子が第2のユニークリソース識別子と一致すると判定することを更に含み得る。動作は、第1のユニークリソース識別子が第2のユニークリソース識別子と一致することに基づいて、第1のコンピューティングリソースへのアクセスが認証システムによって制御されることを指し示すように、第1のコンピューティングリソースと認証システムとの間のマッピングを生成することを更に含み得る。動作は、永続ストレージ内に、マッピングを1つ以上の構成アイテムとして格納することを更に含み得る。
第3の例示的実施形態では、製品は、コンピューティングシステムにより実行されると、コンピューティングシステムに第1の例示的実施形態及び/又は第2の例示的実施形態に従った動作を実施させるプログラム命令をその上に格納した、非一時的コンピュータ可読媒体を含み得る。
第4の例示的実施形態では、コンピューティングシステムは、少なくとも1つのプロセッサ、並びにメモリ及びプログラム命令を含み得る。プログラム命令は、メモリ内に格納され得、少なくとも1つのプロセッサにより実行されると、コンピューティングシステムに、第1の例示的実施形態及び/又は第2の例示的実施形態に従った動作を実施させ得る。
第5の例示的実施形態では、システムは、第1の例示的実施形態及び/又は第2の例示的実施形態の動作の各々を実行するための様々な手段を含み得る。
これらの並びにその他の実施形態、態様、利点、及び代替物は、添付の図面を適切に参照して、以下の詳細な説明を読むことによって当業者に明らかになるであろう。更に、この発明の概要並びに本明細書で提供される他の説明及び図は、例としてのみ実施形態を説明することを意図しており、したがって、多くの変形が可能である。実例として、構造要素及びプロセスステップは、請求されるような実施形態の範囲内にとどまりながら、再配置され得、組み合わされ得、分散され得、省略され得、さもなければ変更され得る。
例示的実施形態に従ったコンピューティングデバイスの概略図を説明する。 例示的実施形態に従ったサーバデバイスクラスタの概略図を説明する。 例示的実施形態に従ったリモートネットワーク管理アーキテクチャを描写する。 例示的実施形態に従ったリモートネットワーク管理アーキテクチャを含む通信環境を描写する。 例示的実施形態に従ったリモートネットワーク管理アーキテクチャを含む別の通信環境を描写する。 例示的実施形態に従ったフローチャートである。 例示的実施形態に従ったリモートコンピューティングシステムを説明する。 例示的実施形態に従ったユーザプール認証を説明する。 例示的実施形態に従ったID(identity)プール認証を示している。 例示的実施形態に従ったメッセージフロー図を説明する。 例示的実施形態に従ったメッセージフロー図を説明する。 例示的実施形態に従ったフローチャートである。
例示的な方法、デバイス、及びシステムが本明細書に説明される。本明細書では、単語“例”及び“例示的”は、“例、実例、又は例証として役立つ”ことを意味するために使用されることを理解すべきである。“例”又は“例示的”であるとして本明細書に説明される任意の実施形態又は機構は、そのように述べられない限り、必ずしも他の実施形態又は機構よりも好ましい又は有利であると解釈されるべきではない。したがって、本明細書に提示される主題の範囲から逸脱することなく、他の実施形態が利用され得、他の変更がなされ得る。
したがって、本明細書に説明する例示的実施形態は、限定することを意図しない。本明細書に一般的に説明され、図に説明されるような本開示の態様が、多種多様な異なる構成で配置され得、置換され得、組み合わされ得、分離され得、及び設計され得ることは容易に理解されるであろう。例えば、“クライアント”コンポーネントと“サーバ”コンポーネントとへの機構の分離は、様々な方法で生じ得る。
更に、文脈が他のことを示唆しない限り、図の各々に示される機構は、相互に組み合わせて使用され得る。したがって、図は、一般的に、各実施形態に対して全ての説明された機構が必要であるとは限らないことを理解すると共に、1つ以上の全体的な実施形態のコンポーネントの態様としてみなされるべきである。
また、この明細書又は特許請求の範囲における要素、ブロック、又はステップの任意の列挙は、明確にする目的のためのものである。したがって、そうした列挙は、これらの要素、ブロック、又はステップが特定の配置に準拠すること、又は特定の順序で実行されることを必要とする又は暗示するものとして解釈されるべきではない。
I. はじめに
大企業は、多くの相互に関連する動作を伴う複雑なエンティティである。これらの幾つかは、人材(HR)、サプライチェーン、情報技術(IT)、財務等、企業全体で見られる。しかしながら、各企業はまた、本質的な能力を提供し、及び/又は競争上の優位性を創出する独自の動作を有する。
広く実装された動作をサポートするために、企業は通常、顧客関係管理(CRM)及び人的資本管理(HCM)パッケージ等の既製のソフトウェアアプリケーションを使用する。しかしながら、それらの独自の要件を満たすためにカスタムソフトウェアアプリケーションを必要とすることもあり得る。大企業は、数十又は数百のこれらのカスタムソフトウェアアプリケーションをしばしば有する。それにもかかわらず、本明細書の実施形態によって提供される利点は、大企業に限定されず、任意の規模の企業又は任意の他のタイプの組織に適用可能であり得る。
多くのそうしたソフトウェアアプリケーションは、企業内の個々の部門によって開発される。これらは、単純なスプレッドシートからカスタムビルドのソフトウェアツール及びデータベースにまで及ぶ。しかしながら、サイロ化されたカスタムソフトウェアアプリケーションの急増は、多くの欠点を有する。そのことは、その動作を運営及び拡大し、革新し、規制要件を満たす企業の能力に悪影響を及ぼす。企業は、そのサブシステムとデータとを統合する単一のシステムを欠くことに起因して、その動作を統合、合理化、及び強化することが難しいと感じることがある。
カスタムアプリケーションを効率的に作成するために、企業は、不必要な開発の複雑さを排除する、リモートでホストされたアプリケーションプラットフォームからの利益を得るであろう。そうしたプラットフォームの目標は、ソフトウェアエンジニア及び他の役割の個人が独自の高価値の機構の開発に集中できるように、時間のかかる反復的なアプリケーション開発タスクを削減することであろう。
この目標を達成するために、企業全体のワークフローをインテリジェントに自動化するように、サービスとしてのアプリケーションプラットフォーム(aSaaS)の概念が導入される。aPaaSシステムは企業からリモートでホストされるが、安全な接続を介して企業内のデータ、アプリケーション、及びサービスにアクセスし得る。そうしたaPaaSシステムは、幾つかの有利な能力及び特徴を有し得る。これらの利点及び特徴は、IT、HR、CRM、顧客サービス、アプリケーション開発、及びセキュリティに対する企業の動作とワークフローとを改善することが可能であり得る。
aPaaSシステムは、モデルビューコントローラ(MVC)アプリケーションの開発及び実行をサポートし得る。MVCアプリケーションは、情報の表現をユーザに情報が提示される方法から分離するために、それらの機能を3つの相互接続された部分(モデル、ビュー、及びコントローラ)に分割し、それによって、効率的なコードの再利用と並列開発とを可能にする。これらのアプリケーションはウェブベースであり得、作成、読み出し、更新、削除(CRUD)機能を提供し得る。このことは、新たなアプリケーションが共通のアプリケーションインフラストラクチャ上に構築されることを可能にする。
aPaaSシステムは、グラフィカルユーザインターフェース(GUI)開発のためのウィジェットの標準化されたセット等の標準化されたアプリケーションコンポーネントをサポートし得る。このように、aPaaSシステムを使用して構築されたアプリケーションは、共通のルックアンドフィールを有する。他のソフトウェアコンポーネント及びモジュールも標準化され得る。幾つかの場合、このルックアンドフィールは、企業のカスタムロゴ及び/又は配色でブランド化又はスキン化され得る。
aPaaSシステムは、メタデータを使用してアプリケーションの挙動を構成する能力をサポートし得る。このことは、アプリケーションの挙動が特定のニーズに合わせて迅速に適応されることを可能にする。こうしたアプローチは、開発時間を削減し、柔軟性を増加させる。更に、aPaaSシステムは、メタデータの作成と管理とを容易にするGUIツールをサポートし得、したがって、メタデータのエラーを削減する。
aPaaSシステムは、ソフトウェア開発者が望ましくないアプリケーション間の依存性を回避し得るように、アプリケーション間の明確に定義されたインターフェースをサポートし得る。したがって、aPaaSシステムは、永続的な状態情報及びその他のデータが格納されるサービス層を実装し得る。
aPaaSシステムは、その上のアプリケーションが従来のアプリケーション及びサードパーティアプリケーションと相互作用し得るように、統合機構の豊富なセットをサポートし得る。実例として、aPaaSシステムは、従来のHR、IT、及び会計システムと統合するカスタム社員オンボーディングシステムをサポートし得る。
aPaaSシステムは、企業グレードのセキュリティをサポートし得る。更に、aPaaSシステムはリモートでホストされ得るので、それは、企業内のシステムと、又は企業外でホストされたサードパーティのネットワーク及びサービスと相互作用する場合にも、セキュリティ手順を利用すべきである。例えば、aPaaSシステムは、一般的なセキュリティの脅威を検出及び識別するために、企業及び他の関係者の間でデータを共有するように構成され得る。
aPaaSシステムの他の機構、機能、及び利点が存在し得る。この説明は例を目的としており、限定することを意図しない。
aPaaS開発プロセスの例として、ソフトウェア開発者は、aPaaSシステムを使用して新たなアプリケーションを作成するようにタスクを課され得る。まず、開発者は、アプリケーションが使用するデータのタイプとそれらの間の関係とを特定するデータモデルを定義し得る。その後、aPaaSシステムのGUIを介して、開発者はデータモデルを入力(例えば、アップロード)する。aPaaSシステムは、対応するデータベーステーブル、フィールド、及び関係の全てを自動的に作成し、それらは、オブジェクト指向サービス層を介してその後アクセスされ得る。
また、aPaaSシステムは、クライアント側インターフェース及びサーバ側CRUDロジックを備えた完全に機能するMVCアプリケーションをも構築し得る。この生成されたアプリケーションは、ユーザに対して更なる開発の基礎として役立ち得る。有利なことに、開発者は基本的なアプリケーション機能に多くの時間を費やす必要がない。更に、アプリケーションはウェブベースであり得るので、それは、インターネット対応の任意のクライアントデバイスからアクセスされ得る。代替的又は追加的に、実例としてインターネットサービスが利用可能ではない場合、アプリケーションのローカルコピーにアクセスすることが可能であり得る。
aPaaSシステムは、アプリケーションに追加され得る事前定義された機能の豊富なセットをもサポートし得る。これらの機構は、検索、電子メール、テンプレート、ワークフロー設計、レポート、分析、ソーシャルメディア、スクリプト、モバイルフレンドリーな出力、及びカスタマイズされたGUIに対するサポートを含む。
以下の実施形態は、例示的なaPaaSシステムのアーキテクチャ及び機能の態様、並びにその機構及び利点を説明する。
II. コンピューティングデバイス及びクラウドベースのコンピューティング環境の例
図1は、コンピューティングデバイス100を例示する簡略化されたブロック図であり、本明細書の実施形態に従って動作するように配置されたコンピューティングデバイス内に含まれ得るコンポーネントの内の幾つかを説明する。コンピューティングデバイス100は、クライアントデバイス(例えば、ユーザによってアクティブに動作されるデバイス)、サーバデバイス(例えば、クライアントデバイスに計算サービスを提供するデバイス)、又は他の何らかのタイプの計算プラットフォームであり得る。幾つかのサーバデバイスは、特定の動作を実施するためにクライアントデバイスとして時折動作し得、幾つかのクライアントデバイスはサーバの機構を組み込み得る。
この例では、コンピューティングデバイス100は、プロセッサ102、メモリ104、ネットワークインターフェース106、及び入力/出力ユニット108を含み、それらの全ては、システムバス110又は同様のメカニズムによって結合され得る。幾つかの実施形態では、コンピューティングデバイス100は、他のコンポーネント及び/又は周辺デバイス(例えば、取り外し可能なストレージ及びプリンタ等)を含み得る。
プロセッサ102は、中央処理装置(CPU)、コプロセッサ(例えば、数学、グラフィックス、又は暗号化コプロセッサ)、デジタル信号プロセッサ(DSP)、ネットワークプロセッサ、及び/又はプロセッサの動作を実施する集積回路若しくはコントローラの形式等の任意のタイプのコンピュータ処理要素の内の1つ以上であり得る。幾つかの場合、プロセッサ102は、1つ以上のシングルコアプロセッサであり得る。他の場合、プロセッサ102は、複数の独立した処理ユニットを備えた1つ以上のマルチコアプロセッサであり得る。プロセッサ102はまた、実行されている命令及び関連データを一時的に格納するためのレジスタメモリ、並びに最近使用された命令及びデータを一時的に格納するためのキャッシュメモリを含み得る。
メモリ104は、ランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、及び不揮発性メモリ(例えば、フラッシュメモリ、ハードディスクドライブ、ソリッドステートドライブ、コンパクトディスク(CD)、デジタルビデオディスク(DVD)、及び/又はテープストレージ)を含むがそれらに限定されない任意の形式のコンピュータ使用可能メモリであり得る。したがって、メモリ104は、メインメモリユニットと長期ストレージとの両方を表す。その他のタイプのメモリは、生体メモリを含み得る。
メモリ104は、プログラム命令及び/又はプログラム命令が動作し得るデータを格納し得る。例として、メモリ104は、この明細書又は添付の図面に開示される方法、プロセス、又は動作の内の何れかを実行するためにプロセッサ102によって命令が実行可能であるように、これらのプログラム命令を非一時的コンピュータ可読媒体上に格納し得る。
図1に示されるように、メモリ104は、ファームウェア104A、カーネル104B、及び/又はアプリケーション104Cを含み得る。ファームウェア104Aは、コンピューティングデバイス100の内の幾つか又は全てをブート、さもなければ開始するために使用されるプログラムコードであり得る。カーネル104Bは、メモリ管理、プロセスのスケジューリング及び管理、入力/出力、並びに通信のためのモジュールを含むオペレーティングシステムであり得る。カーネル104Bはまた、オペレーティングシステムがコンピューティングデバイス100のハードウェアモジュール(例えば、メモリユニット、ネットワークインターフェース、ポート、及びバス)と通信することを可能にするデバイスドライバを含み得る。アプリケーション104Cは、ウェブブラウザ又は電子メールクライアント等の1つ以上のユーザ空間ソフトウェアプログラム、並びにこれらのプログラムにより使用される任意のソフトウェアライブラリであり得る。メモリ104はまた、これらの及びその他のプログラム及びアプリケーションにより使用されるデータを格納し得る。
ネットワークインターフェース106は、イーサネット(例えば、ファストイーサネット及びギガビットイーサネット等)等の1つ以上の有線インターフェースの形式を取り得る。ネットワークインターフェース106はまた、同軸ケーブル若しくは電力線等の1つ以上の非イーサネット媒体を介して、又は同期光ネットワーク(SONET)若しくはデジタル加入者線(DSL)技術等の広域媒体を介して通信をサポートし得る。ネットワークインターフェース106は更に、IEEE 802.11(Wifi)、BLUETOOTH(登録商標)、全地球測位システム(GPS)、又は広域無線インターフェース等の1つ以上の無線インターフェースの形式を取り得る。しかしながら、他の形式の物理層インターフェース及び他のタイプの標準又は独自の通信プロトコルがネットワークインターフェース106を介して使用され得る。更に、ネットワークインターフェース106は、複数の物理インターフェースを含み得る。実例として、コンピューティングデバイス100の幾つかの実施形態は、イーサネット、BLUETOOTH(登録商標)、及びWifiインターフェースを含み得る。
入力/出力ユニット108は、コンピューティングデバイス100とのユーザ及び周辺デバイスの相互作用を容易にし得る。入力/出力ユニット108は、キーボード、マウス、及びタッチスクリーン等の1つ以上のタイプの入力デバイスを含み得る。同様に、入力/出力ユニット108は、スクリーン、モニタ、プリンタ、及び/又は1つ以上の発光ダイオード(LED)等の1つ以上のタイプの出力デバイスを含み得る。追加的又は代替的に、コンピューティングデバイス100は、例えば、ユニバーサルシリアルバス(USB)又は高品位マルチメディアインターフェース(HDMI)ポートインターフェースを使用して他のデバイスと通信し得る。
幾つかの実施形態では、コンピューティングデバイス100のような1つ以上のコンピューティングデバイスは、aPaaSアーキテクチャをサポートするように配備され得る。これらのコンピューティングデバイスの正確な物理的な位置、接続、及び構成は、クライアントデバイスにとって不明であり得、及び/又は重要ではないことがある。したがって、コンピューティングデバイスは、様々なリモートデータセンタの位置にホストされ得る“クラウドベースの”デバイスと称され得る。
図2は、例示的実施形態に従ったクラウドベースのサーバクラスタ200を描写する。図2では、コンピューティングデバイス(例えば、コンピューティングデバイス100)の動作は、サーバデバイス202、データストレージ204、及びルータ206の間で分散され得、これらの全ては、ローカルクラスタネットワーク208によって接続され得る。サーバクラスタ200内のサーバデバイス202、データストレージ204、及びルータ206の数は、サーバクラスタ200に割り当てられたコンピューティングタスク及び/又はアプリケーションに依存し得る。
例えば、サーバデバイス202は、コンピューティングデバイス100の様々なコンピューティングタスクを実施するように構成され得る。したがって、コンピューティングタスクは、サーバデバイス202の内の1つ以上の間で分散され得る。これらのコンピューティングタスクが並行して実施され得る範囲で、タスクのこうした分散は、これらのタスクを完了して結果を返すための合計時間を削減し得る。簡単にする目的のために、サーバクラスタ200及び個々のサーバデバイス202の両方は、“サーバデバイス”と称され得る。この命名法は、1つ以上の別個のサーバデバイス、データストレージデバイス、及びクラスタルータがサーバデバイスの動作に関与し得ることを意味すると理解すべきである。
データストレージ204は、ハードディスクドライブ及び/又はソリッドステートドライブのグループへの読み出し及び書き込みアクセスを管理するように構成されたドライブアレイコントローラを含むデータストレージアレイであり得る。ドライブアレイコントローラはまた、単独で、又はサーバデバイス202と組み合わせて、サーバデバイス202の内の1つ以上がデータストレージ204のユニットにアクセスすることを妨げるドライブの障害又は他のタイプの障害から保護するように、データストレージ204内に格納されたデータのバックアップ又は冗長コピーを管理するように構成され得る。ドライブ以外の他のタイプのメモリが使用されてもよい。
ルータ206は、サーバクラスタ200に内部及び外部の通信を提供するように構成されたネットワーク機器を含み得る。例えば、ルータ206は、(i)ローカルクラスタネットワーク208を介したサーバデバイス202とデータストレージ204との間のネットワーク通信、及び/又は(ii)ネットワーク212への通信リンク210を介したサーバクラスタ200と他のデバイスとの間のネットワーク通信を提供するように構成された1つ以上のパケットスイッチング及び/又はルーティングデバイス(スイッチ及び/又はゲートウェイを含む)を含み得る。
また、ルータ206の構成は、サーバデバイス202及びデータストレージ204のデータ通信要件、ローカルクラスタネットワーク208のレイテンシ及びスループット、通信リンク210のレイテンシ、スループット、及びコスト、並びに/又はシステムアーキテクチャのコスト、速度、フォールトトレランス、復元性、効率、及び/若しくはその他の設計目標に寄与し得るその他の要因に少なくとも部分的に基づき得る。
可能な例として、データストレージ204は、ストラクチャードクエリ言語(SQL)データベース等の任意の形式のデータベースを含み得る。テーブル、アレイ、リスト、ツリー、及びタプル等を含むがこれらに限定されない様々なタイプのデータ構造がこうしたデータベース内に情報を格納し得る。更に、データストレージ204内の任意のデータベースは、モノリシックであり得、又は複数の物理デバイスに分散され得る。
サーバデバイス202は、データストレージ204へデータを送信し、データストレージ204からデータを受信するように構成され得る。この送信及び検索は、SQLクエリ又は他のタイプのデータベースクエリ、及びそうしたクエリの出力の形式を夫々取り得る。追加のテキスト、画像、ビデオ、及び/又は音声も含まれ得る。更に、サーバデバイス202は、受信したデータをウェブページ表現に編成し得る。こうした表現は、ハイパーテキストマークアップ言語(HTML)、拡張可能マークアップ言語(XML)、又はその他の何らかの標準化された又は独自のフォーマット等のマークアップ言語の形式を取り得る。更に、サーバデバイス202は、Perl、Python、PHPハイパーテキストプリプロセッサ(PHP)、アクティブサーバページ(ASP)、及びJAVASCRIPT(登録商標)等であるがこれらに限定されない、様々なタイプのコンピュータ化されたスクリプト言語を実行する能力を有し得る。これらの言語で書き込まれたコンピュータプログラムコードは、クライアントデバイスへのウェブページの提供、及びウェブページとのクライアントデバイスの相互作用を容易にし得る。
III. リモートネットワーク管理アーキテクチャの例
図3は、例示的実施形態に従ったリモートネットワーク管理アーキテクチャを描写する。このアーキテクチャは、3つの主要なコンポーネント、管理されるネットワーク300と、リモートネットワーク管理プラットフォーム320と、サードパーティネットワーク340とを含み、全てはインターネット350を介して接続される。
管理されるネットワーク300は、例えば、データの格納と共に、コンピューティング及び通信タスクのためにエンティティによって使用される企業ネットワークであり得る。したがって、管理されるネットワーク300は、クライアントデバイス302、サーバデバイス304、ルータ306、仮想マシン308、ファイアウォール310、及び/又はプロキシサーバ312を含み得る。クライアントデバイス302は、コンピューティングデバイス100によって具現化され得、サーバデバイス304は、コンピューティングデバイス100又はサーバクラスタ200によって具現化され得、ルータ306は、任意のタイプのルータ、スイッチ、又はゲートウェイであり得る。
仮想マシン308は、コンピューティングデバイス100又はサーバクラスタ200の内の1つ以上によって具現化され得る。一般的に、仮想マシンは、コンピューティングシステムのエミュレーションであり、物理的コンピュータの機能(例えば、プロセッサ、メモリ、及び通信リソース)を模倣する。サーバクラスタ200等の1つの物理的コンピューティングシステムは、最大数千の個々の仮想マシンをサポートし得る。幾つかの実施形態では、仮想マシン308は、個々の仮想マシンへの物理的コンピューティングリソースの割り当て、並びに性能及びエラーレポートを容易にする集中型サーバデバイス又はアプリケーションによって管理され得る。企業は、必要に応じて効率的にコンピューティングリソースを割り当てるために、仮想マシンをしばしば用いる。仮想化コンピューティングシステムのプロバイダは、VMWARE(登録商標)及びMICROSOFT(登録商標)を含む。
ファイアウォール310は、管理されるネットワーク300から開始される許可された通信を可能にしつつ、管理されるネットワーク300をその中のデバイス、アプリケーション、及びサービスへの不正なアクセスの試みから保護する1つ以上の特殊なルータ又はサーバデバイスであり得る。ファイアウォール310は、侵入検出、ウェブフィルタリング、ウイルススキャン、アプリケーション層ゲートウェイ、及びその他のアプリケーション又はサービスを提供する。図3に示されていない幾つかの実施形態では、管理されるネットワーク300は、リモートネットワーク管理プラットフォーム320と通信する1つ以上の仮想プライベートネットワーク(VPN)ゲートウェイを含み得る(以下を参照)。
管理されるネットワーク300はまた、1つ以上のプロキシサーバ312を含み得る。プロキシサーバ312の実施形態は、管理されるネットワーク300、リモートネットワーク管理プラットフォーム320、及びサードパーティネットワーク340の間の通信及びデータの移動を容易にするサーバデバイスであり得る。特に、プロキシサーバ312は、リモートネットワーク管理プラットフォーム320の1つ以上の計算インスタンスとの安全な通信セッションを確立及び維持することが可能であり得る。そうしたセッションを介して、リモートネットワーク管理プラットフォーム320は、管理されるネットワーク300及びそのコンポーネントのアーキテクチャ及び構成の態様を発見及び管理することが可能であり得る。可能性としてプロキシサーバ312の助けを借りて、リモートネットワーク管理プラットフォーム320はまた、管理されるネットワーク300により使用されるサードパーティネットワーク340の態様を発見及び管理することが可能であり得る。
ファイアウォール310等のファイアウォールは、そうしたセッションがファイアウォールの背後から(すなわち、管理されるネットワーク300上のデバイスから)最終的に開始されない限り、又はファイアウォールがセッションをサポートするように明示的に構成されていない限り、通常、インターネット350を介して着信する全ての通信セッションを拒否する。プロキシサーバ312を(例えば、管理されるネットワーク300内に、ファイアウォール310によって保護される)ファイアウォール310の背後に配置することによって、プロキシサーバ312は、ファイアウォール310を通じてこれらの通信セッションを開始することが可能であり得る。したがって、ファイアウォール310は、リモートネットワーク管理プラットフォーム320からの着信セッションをサポートするように特別に構成される必要がなくてもよく、それによって、管理されるネットワーク300に対する潜在的なセキュリティリスクを回避する。
幾つかの場合、管理されるネットワーク300は、僅かなデバイスと少数のネットワークとからなり得る。他の配備では、管理されるネットワーク300は、複数の物理的な位置に及び得、数百のネットワークと数十万のデバイスとを含み得る。したがって、図3に描写されたアーキテクチャは、桁違いにスケールアップ又はスケールダウンすることが可能である。
更に、管理されるネットワーク300のサイズ、アーキテクチャ、及び接続に依存して、様々な数のプロキシサーバ312がその中に配備され得る。例えば、プロキシサーバ312の各々1つは、管理されるネットワーク300の一部に関してリモートネットワーク管理プラットフォーム320と通信することに責任に負い得る。代替的に又は追加的に、2つ以上のプロキシサーバのセットは、負荷分散、冗長性、及び/又は高可用性の目的で、管理されるネットワーク300のそうした部分に割り当てられ得る。
リモートネットワーク管理プラットフォーム320は、ユーザ、特に管理されるネットワーク300のオペレータにaPaaSサービスを提供するホストされた環境である。これらのサービスは、実例として、ウェブベースのポータルの形式を取り得る。したがって、ユーザは、実例として、クライアントデバイス302から、又は潜在的に、管理されるネットワーク300の外部のクライアントデバイスから、リモートネットワーク管理プラットフォーム320に安全にアクセスし得る。ウェブベースのポータルを介して、ユーザは、アプリケーションを設計、テスト、及び展開し得、レポートを生成し得、分析を表示し得、その他のタスクを実施し得る。
図3に示されるように、リモートネットワーク管理プラットフォーム320は、4つの計算インスタンス322、324、326、及び328を含む。これらのインスタンスの各々は、特定の顧客が利用可能なウェブポータル、サービス、及びアプリケーションのセット(例えば、完全に機能するaPaaSシステム)を提供する1つ以上のサーバデバイス及び/又は1つ以上のデータベースを表し得る。幾つかの場合、1人の顧客が複数の計算インスタンスを使用し得る。例えば、管理されるネットワーク300は、リモートネットワーク管理プラットフォーム320の企業顧客であり得、計算インスタンス322、324、及び326を使用し得る。1人の顧客に複数のインスタンスを提供する理由は、顧客がそのアプリケーション及びサービスを独立して開発、テスト、及び展開することを望み得ることである。したがって、計算インスタンス322は、管理されるネットワーク300に関連するアプリケーション開発に専用であり得、計算インスタンス324は、これらのアプリケーションのテストに専用であり得、計算インスタンス326は、テストされたアプリケーション及びサービスのライブ動作に専用であり得る。計算インスタンスは、ホストされたインスタンス、リモートインスタンス、顧客インスタンス、又はその他の何らかの呼称でも称され得る。計算インスタンス上に展開された任意のアプリケーションは、計算インスタンス内のデータベースへのそのアクセスがその中のある一定の要素(例えば、1つ以上の特定のデータベーステーブル又は1つ以上のデータベーステーブルを備えた特定の行)に制限され得るという点で、スコープ付きアプリケーションであり得る。
明確の目的のために、本明細書の開示は、物理的ハードウェア、ソフトウェア、及びそれらの配置を“計算インスタンス”と称する。ユーザは、それによって提供されるグラフィカルユーザインターフェースを口語的に“インスタンス”と称し得ることに留意されたい。しかしながら、本明細書で別段の定義がない限り、“計算インスタンス”は、リモートネットワーク管理プラットフォーム320内に配備されたコンピューティングシステムである。
リモートネットワーク管理プラットフォーム320のマルチインスタンスアーキテクチャは、マルチインスタンスアーキテクチャが幾つかの利点を示す従来のマルチテナントアーキテクチャとは対照的である。マルチテナントアーキテクチャでは、異なる顧客(例えば、企業)からのデータが単一のデータベースに混合される。これらの顧客のデータは相互に分離されるが、該分離は単一のデータベースを動作するソフトウェアによって実施される。結果として、このシステムにおけるセキュリティ違反は、全ての顧客のデータに影響を与え得、特に政府、医療、及び/又は金融規制の対象となるエンティティに追加のリスクを創出する。更に、1人の顧客に影響を与える任意のデータベース動作は、そのデータベースを共有する全ての顧客におそらく影響を与えるであろう。したがって、ハードウェア又はソフトウェアのエラーに起因する停止がある場合、この停止はそうした全ての顧客に影響を与える。同様に、1人の顧客のニーズを満たすためにデータベースがアップグレードされる場合、それは、アップグレードプロセスの間、全ての顧客にとって利用不可能であろう。多くの場合、共有されるデータベースのサイズに起因して、こうしたメンテナンスウィンドウは長いであろう。
対照的に、マルチインスタンスアーキテクチャは、各顧客に、専用のコンピューティングインスタンス内の独自のデータベースを提供する。このことは、顧客データの混合を防止し、各インスタンスが独立して管理されることを可能にする。例えば、ある顧客のインスタンスがエラー又はアップグレードに起因する停止を経験した場合、他の計算インスタンスは影響を受けない。データベースは1人の顧客のデータのみを含むので、メンテナンスのダウン時間は限定される。更に、マルチインスタンスアーキテクチャのよりシンプルな設計は、各顧客データベース及びインスタンスの冗長コピーが地理的に多様な方法で展開されることを可能にする。このことは、高可用性を容易にし、障害が検出された場合、又はメンテナンスが実施されている場合に、顧客のインスタンスのライブバージョンは動かされ得る。
幾つかの実施形態では、リモートネットワーク管理プラットフォーム320は、このプラットフォームを動作するエンティティによって制御される1つ以上の中央インスタンスを含み得る。計算インスタンスと同様に、中央インスタンスは、幾つかの数の物理サーバ又は仮想サーバとデータベースデバイスとを含み得る。こうした中央インスタンスは、計算インスタンスの内の少なくとも幾つかの間で共有され得るデータに対するリポジトリとして機能し得る。実例として、計算インスタンス上で発生し得る一般的なセキュリティ脅威の定義、計算インスタンス上で一般的に発見されるソフトウェアパッケージ、及び/又は計算インスタンスに展開され得るアプリケーションに対するアプリケーションストアは、中央インスタンス内に存在し得る。計算インスタンスは、このデータを取得するために、明確に定義されたインターフェースを介して中央インスタンスと通信し得る。
効率的な方法で複数の計算インスタンスをサポートするために、リモートネットワーク管理プラットフォーム320は、単一のハードウェアプラットフォーム上にこれらの複数のインスタンスを実装し得る。例えば、aPaaSシステムがサーバクラスタ200等のサーバクラスタ上に実装される場合、それは、様々な量の計算、ストレージ、及び通信リソースをインスタンス専用にする仮想マシンを動作し得る。しかしながら、サーバクラスタ200の完全な仮想化は必要なくてもよく、インスタンスを分離するために他のメカニズムが使用され得る。幾つかの例では、各インスタンスは、サーバクラスタ200上に専用のアカウント及び1つ以上の専用のデータベースを有し得る。或いは、計算インスタンス322は、複数の物理デバイスに及び得る。
幾つかの場合、リモートネットワーク管理プラットフォーム320の単一のサーバクラスタは、複数の独立した企業をサポートし得る。更に、以下で説明するように、リモートネットワーク管理プラットフォーム320は、負荷分散、冗長性、及び/又は高可用性を容易にするために、地理的に多様なデータセンタ内に配備された複数のサーバクラスタを含み得る。
サードパーティネットワーク340は、外部委託された計算、データストレージ、通信、及びサービスホスト動作に使用され得るリモートサーバデバイス(例えば、サーバクラスタ200等の複数のサーバクラスタ)であり得る。これらのサーバは仮想化され得る(すなわち、サーバは仮想マシンであり得る)。サードパーティネットワーク340の例は、AMAZON WEB SERVICES(登録商標)及びMICROSOFT(登録商標)AZURE(登録商標)を含み得る。リモートネットワーク管理プラットフォーム320と同様に、サードパーティネットワーク340をサポートする複数のサーバクラスタは、負荷分散、冗長性、及び/又は高可用性の目的で、地理的に異なる位置に配備され得る。
管理されるネットワーク300は、そのクライアント及び顧客にアプリケーション及びサービスを展開するために、サードパーティネットワーク340の内の1つ以上を使用し得る。実例として、管理されるネットワーク300がオンライン音楽ストリーミングサービスを提供する場合、サードパーティネットワーク340は、音楽ファイルを格納し得、ウェブインターフェース及びストリーミング能力を提供し得る。このようにして、管理されるネットワーク300の企業は、これらの動作のために独自のサーバを構築及び維持する必要がない。
リモートネットワーク管理プラットフォーム320は、仮想マシンとその中の管理されるサービスとを管理されるネットワーク300に公開するために、サードパーティネットワーク340と統合するモジュールを含み得る。モジュールは、ユーザが仮想リソースをリクエストし、サードパーティネットワークに柔軟なレポートを提供することを可能にし得る。この機能を確立するために、管理されるネットワーク300からのユーザは、サードパーティネットワーク340でアカウントを最初に確立し、関連付けられたリソースのセットをリクエストし得る。その後、ユーザは、リモートネットワーク管理プラットフォーム320の適切なモジュールにアカウント情報を入力し得る。これらのモジュールは、アカウント内の管理可能なリソースを自動的にその後発見し得、使用、性能、及び支払い請求に関連するレポートをも提供し得る。
インターネット350は、グローバルインターネットの一部分を表し得る。しかしながら、インターネット350は、代わりに、プライベートワイドエリア又はローカルエリアパケット交換ネットワーク等の異なるタイプのネットワークを表し得る。
図4は、管理されるネットワーク300と計算インスタンス322との間の通信環境を更に説明し、追加の機構及び代替の実施形態を紹介する。図4では、計算インスタンス322は、データセンタ400A及び400Bに渡って複製されている。これらのデータセンタは、おそらく異なる都市又は異なる国に、相互に地理的に離れていてもよい。各データセンタは、管理されるネットワーク300及びリモートユーザとの通信を容易にするサポート機器を含む。
データセンタ400Aでは、外部デバイスとの間のネットワークトラフィックは、VPNゲートウェイ402A又はファイアウォール404Aの何れかを通じて流れる。VPNゲートウェイ402Aは、インターネットプロトコルセキュリティ(IPSEC)又はトランスポートレイヤセキュリティ(TLS)等のセキュリティプロトコルを介して、管理されるネットワーク300のVPNゲートウェイ412とピアリングされ得る。ファイアウォール404Aは、ユーザ414及びリモートユーザ416等の許可されたユーザからのアクセスを可能にし、許可されていないユーザへのアクセスを拒否するように構成され得る。ファイアウォール404Aを介して、これらのユーザは、計算インスタンス322、及び可能性として他の計算インスタンスにアクセスし得る。ロードバランサ406Aは、計算インスタンス322をホストする1つ以上の物理又は仮想サーバデバイス間でトラフィックを分散するために使用され得る。ロードバランサ406Aは、データセンタ400A(例えば、計算インスタンス322)の内部構成をクライアントデバイスから隠すことによってユーザクセスを単純化し得る。実例として、計算インスタンス322が、複数のデータベースへのアクセスを共有する複数の物理的又は仮想コンピューティングデバイスを含む場合、ロードバランサ406Aは、あるコンピューティングデバイス又はデータベースがその他よりも著しく多忙にならないように、ネットワークトラフィック及び処理タスクをこれらのコンピューティングデバイス及びデータベースに渡って分散し得る。幾つかの実施形態では、計算インスタンス322は、VPNゲートウェイ402A、ファイアウォール404A、及びロードバランサ406Aを含み得る。
データセンタ400Bは、データセンタ400A内のコンポーネントの独自のバージョンを含み得る。したがって、VPNゲートウェイ402B、ファイアウォール404B、及びロードバランサ406Bは、VPNゲートウェイ402A、ファイアウォール404A、及びロードバランサ406Aと同じ又は同様の動作を夫々実施し得る。更に、リアルタイム又は凡そリアルタイムのデータベースの複製及び/又はその他の動作を介して、計算インスタンス322は、データセンタ400A及び400B内に同時に存在し得る。
図4に示すようなデータセンタ400A及び400Bは、冗長性及び高可用性を容易にし得る。図4の構成では、データセンタ400Aはアクティブであり、データセンタ400Bはパッシブである。したがって、データセンタ400Aは、管理されるネットワーク300との間の全てのトラフィックに仕えているが、データセンタ400B内の計算インスタンス322のバージョンは、凡そリアルタイムで更新されている。両方のデータセンタがアクティブな構成等、他の構成がサポートされ得る。
データセンタ400Aが何らかの方法で故障するか、さもなければユーザにとって利用不可能になった場合、データセンタ400Bがアクティブなデータセンタとして引き継ぎ得る。例えば、計算インスタンス322のドメイン名をデータセンタ400Aの1つ以上のインターネットプロトコル(IP)アドレスと関連付けるドメイン名システム(DNS)サーバは、ドメイン名をデータセンタ400Bの1つ以上のIPアドレスと関連付け直し得る。この関連付け直しが完了した後(これには1秒又は数秒未満かかり得る)、ユーザは、データセンタ400Bを介して計算インスタンス322にアクセスし得る。
図4はまた、管理されるネットワーク300の可能な構成を説明する。上記のように、プロキシサーバ312及びユーザ414は、ファイアウォール310を通じて計算インスタンス322にアクセスし得る。プロキシサーバ312はまた、構成アイテム410にアクセスし得る。図4では、構成アイテム410は、クライアントデバイス302、サーバデバイス304、ルータ306、及び仮想マシン308の内の何れか又は全て、それらの上で実行する任意のアプリケーション又はサービス、並びにデバイス、アプリケーション、及びサービス間の関係の内の何れか又は全てを指し得る。したがって、用語“構成アイテム”は、任意の物理デバイス若しくは仮想デバイス、又は計算インスタンス322によりリモートで発見可能な又は管理される任意のアプリケーション若しくはサービス、又は発見されたデバイス、アプリケーション、及びサービス間の関係の省略表現であり得る。構成アイテムは、計算インスタンス322の構成管理データベース(CMDB)内で表され得る。
上記のように、VPNゲートウェイ412は、VPNゲートウェイ402Aに、専用のVPNを提供し得る。こうしたVPNは、管理されるネットワーク300と計算インスタンス322との間に大量のトラフィックがある場合、又はセキュリティポリシーがこれらのサイト間のVPNの使用を提案する又は必要とする場合に役立ち得る。幾つかの実施形態では、VPNを介して直接通信する、管理されるネットワーク300及び/又は計算インスタンス322内の任意のデバイスには、パブリックIPアドレスが割り当てられる。管理されるネットワーク300及び/又は計算インスタンス322内の他のデバイスには、プライベートIPアドレス(例えば、サブネット10.0.0.0/8及び192.168.0.0/16として夫々省略表現で表される、10.0.0.0~10.255.255.255又は192.168.0.0~192.168.255.255の範囲から選択されるIPアドレス)が割り当てられ得る。
IV. デバイス、アプリケーション、及びサービス発見の例
リモートネットワーク管理プラットフォーム320が、管理されるネットワーク300のデバイス、アプリケーション、及びサービスを管理するために、リモートネットワーク管理プラットフォーム320は、如何なるデバイスが管理されるネットワーク300内に存在するか、これらのデバイスの構成及び動作ステータス、並びにデバイスにより提供されるアプリケーション及びサービス、並びに発見されたデバイス、アプリケーション、及びサービス間の関係をまず判定し得る。上記のように、各デバイス、アプリケーション、サービス、及び関係は、構成アイテムと称され得る。管理されるネットワーク300内で構成アイテムを定義するプロセスは、発見と称され、プロキシサーバ312によって少なくとも部分的に容易にされ得る。
本明細書の実施形態の目的のために、“アプリケーション”は、1つ以上のプロセス、スレッド、プログラム、クライアントモジュール、サーバモジュール、又はデバイス若しくはデバイスのグループ上で実行する任意のその他のソフトウェアを指し得る。“サービス”は、相互に連携して働く1つ以上のデバイス上で実行する複数のアプリケーションによって提供される高レベルの能力を指し得る。例えば、高レベルのウェブサービスは、あるデバイス上で実行する複数のウェブアプリケーションサーバスレッドと、別のデバイスで実行するデータベースアプリケーションからのアクセス情報とを含み得る。
図5Aは、構成アイテムがどのように発見され得るか、並びに発見された構成アイテムに関連する情報がどのように格納され得るかについての論理的描写を提供する。簡単にするために、リモートネットワーク管理プラットフォーム320、サードパーティネットワーク340、及びインターネット350は示されていない。
図5Aでは、CMDB500及びタスクリスト502は、計算インスタンス322内に格納される。計算インスタンス322は、発見コマンドをプロキシサーバ312へ送信し得る。応答において、プロキシサーバ312は、管理されるネットワーク300内の様々なデバイス、アプリケーション、及びサービスへプローブを送信し得る。これらのデバイス、アプリケーション、及びサービスは、プロキシサーバ312へ応答を送信し得、プロキシサーバ312は、発見された構成アイテムに関する情報を、その中への格納のためにCMDB500にその後提供し得る。CMDB500内に格納された構成アイテムは、管理されるネットワーク300の環境を表す。
タスクリスト502は、プロキシサーバ312が計算インスタンス322に代わって実施する活動のリストを表す。発見が行われると、タスクリスト502はポピュレートされる。プロキシサーバ312は、タスクリスト502を繰り返し照会し、その中の次のタスクを取得し、タスクリスト502が空になる、又は別の停止条件に達するまで、このタスクを実施する。
発見を容易にするために、プロキシサーバ312は、プロキシサーバ312を介して到達可能な管理されるネットワーク300内の1つ以上のサブネットに関する情報で構成され得る。実例として、プロキシサーバ312には、サブネットとしてIPアドレス範囲192.168.0/24が与えられ得る。その後、計算インスタンス322は、この情報をCMDB500内に格納し得、これらのアドレスの各々でのデバイスの発見のためにタスクリスト502内にタスクを配置し得る。
図5Aはまた、構成アイテム504、506、508、510、及び512として、管理されるネットワーク300内のデバイス、アプリケーション、及びサービスを描写する。上記のように、これらの構成アイテムは、物理及び/又は仮想デバイス(例えば、クライアントデバイス、サーバデバイス、ルータ、又は仮想マシン)、それらの上で実行するアプリケーション(例えば、ウェブサーバ、電子メールサーバ、データベース、又はストレージアレイ)、それらの間の関係、並びに複数の個々の構成アイテムを含むサービスのセットを表す。
タスクをタスクリスト502内に配置することは、発見を発動し得、さもなければプロキシサーバ312に発見を開始させ得る。代替的又は追加的に、発見は、手動で発動され得、又は発動イベントに基づいて自動的に発動され得る(例えば、発見は、特定の時間に1日1回自動的に開始し得る)。
一般的に、発見は、スキャン、分類、識別、及び探索の4つの論理フェーズで進行し得る。発見の各フェーズは、プロキシサーバ312によって、管理されるネットワーク300内の1つ以上のデバイスへ送信される様々なタイプのプローブメッセージを含む。これらのプローブへの応答は、プロキシサーバ312によって受信及び処理され得、その表現はCMDB500へ送信され得る。したがって、各フェーズは、より多くの構成アイテムが発見され、CMDB500内に格納されることをもたらし得る。
スキャンフェーズにおいて、プロキシサーバ312は、デバイスの一般的なタイプを判定するために、オープンな伝送制御プロトコル(TCP)及び/又はユーザデータグラムプロトコル(UDP)ポートに対して、指定された範囲のIPアドレス内の各IPアドレスを精査し得る。IPアドレスにおけるこうしたオープンなポートの存在は、IPアドレスが割り当てられるデバイス上で特定のアプリケーションが動作していることを指し示し得、このことは、順に、デバイスにより使用されるオペレーティングシステムを識別し得る。例えば、TCPポート135がオープンである場合、デバイスはWINDOWS(登録商標)オペレーティングシステムを実行している可能性がある。同様に、TCPポート22がオープンである場合、デバイスはLINUX(登録商標)等のUNIX(登録商標)オペレーティングシステムを実行している可能性がある。UDPポート161がオープンである場合、デバイスは簡易ネットワーク管理プロトコル(SNMP)を通じて更に識別可能であり得る。他の可能性が存在する。特定のIPアドレスとそのオープンなポートとにおいてデバイスの存在が一旦発見されると、これらの構成アイテムはCMDB500内に保存される。
分類フェーズにおいて、プロキシサーバ312は、そのオペレーティングシステムのバージョンを判定するために、発見された各デバイスを更に精査し得る。特定のデバイスに対して使用されるプローブは、スキャンフェーズの間にデバイスについて収集された情報に基づく。例えば、TCPポート22がオープンであるデバイスが見つかった場合、UNIX(登録商標)固有のプローブのセットが使用され得る。同様に、TCPポート135がオープンであるデバイスが見つかった場合、WINDOWS(登録商標)固有のプローブのセットが使用され得る。何れの場合にも、プロキシサーバ312が実行するために、タスクの適切なセットがタスクリスト502内に配置され得る。これらのタスクは、プロキシサーバ312がログオンすること、さもなければ特定のデバイスからの情報にアクセスすることをもたらし得る。実例として、TCPポート22がオープンである場合、プロキシサーバ312は、特定のデバイスへのセキュアシェル(SHS)接続を開始して、ファイルシステム内の特定の位置からその上のオペレーティングシステムについての情報を取得するように命令され得る。この情報に基づいて、オペレーティングシステムが判定され得る。例として、TCPポート22がオープンであるUNIX(登録商標)デバイスは、AIX(登録商標)、HPUX、LINUX(登録商標)、MACOS(登録商標)、又はSOLARIS(登録商標)として分類され得る。この分類情報は、1つ以上の構成アイテムとしてCMDB500内に格納され得る。
識別フェーズにおいて、プロキシサーバ312は、分類されたデバイスについての具体的詳細を判定し得る。このフェーズの間に使用されるプローブは、分類フェーズの間に特定のデバイスについて収集された情報に基づき得る。例えば、デバイスがLINUX(登録商標)として分類された場合、LINUX(登録商標)固有のプローブのセットが使用され得る。同様に、デバイスがWINDOWS(登録商標)2012として分類された場合、WINDOWS(登録商標)2012固有のプローブのセットとして使用され得る。分類フェーズの場合と同様に、プロキシサーバ312が実行するために、タスクの適切なセットがタスクリスト502内に配置され得る。これらのタスクは、ベーシック入力/出力システム(BIOS)情報、シリアル番号、ネットワークインターフェース情報、これらのネットワークインターフェースに割り当てられたメディアアクセス制御アドレス、及び特定のデバイスにより使用されるIPアドレス等の情報を特定のデバイスからプロキシサーバ312が読み出すことをもたらし得る。この識別情報は、1つ以上の構成アイテムとしてCMDB500内に格納され得る。
探索フェーズにおいて、プロキシサーバ312は、分類されたデバイスの動作状態についての更なる詳細を判定し得る。このフェーズの間に使用されるプローブは、分類フェーズ及び/又は識別フェーズの間に特定のデバイスについて収集された情報に基づき得る。この場合も、プロキシサーバ312が実行するために、タスクの適切なセットがタスクリスト502内に配置され得る。これらのタスクは、プロセッサ情報、メモリ情報、及び実行中のプロセス(アプリケーション)のリスト等の追加情報を特定のデバイスからプロキシサーバ312が読み出すことをもたらし得る。再度、発見された情報は、1つ以上の構成アイテムとしてCMDB500内に格納され得る。
ルータ等のネットワークデバイス上で発見を実行することは、SNMPを利用し得る。実行中のプロセス又はその他のアプリケーション関連情報のリストを判定することの代わりに、又はそのことに加えて、発見は、ルータに認識されている追加のサブネットと、ルータのネットワークインターフェースの動作状態(例えば、アクティブ、非アクティブ、キューの長さ、ドロップしたパケット数等)とを判定し得る。追加のサブネットのIPアドレスは、更なる発見手順に対する候補であり得る。したがって、発見は、反復的又は再帰的に進行し得る。
発見が一旦完了すると、発見された各デバイス、アプリケーション、及びサービスのスナップショット表現がCMDB500内で利用可能である。例えば、発見後、管理されるネットワーク300内のクライアントデバイス、サーバデバイス、及びルータに対するオペレーティングシステムのバージョン、ハードウェア構成、及びネットワーク構成の詳細、並びにそれらの上で実行するアプリケーションが格納され得る。この収集された情報は、デバイスのハードウェア構成及び動作ステータス、並びに複数のデバイスとアプリケーションとに及ぶサービスの特徴をユーザが見ることを可能にするように、様々な方法でユーザに提示され得る。
更に、CMDB500は、構成アイテム間の依存性及び関係に関するエントリを含み得る。より具体的には、特定のサーバデバイス上で実行しているアプリケーション、及びこのアプリケーションに依存するサービスは、CMDB500内でそのように表され得る。実例として、データベースアプリケーションがサーバデバイス上で実行していると仮定し、並びにこのデータベースアプリケーションが新入社員オンボーディングサービス及び給与サービスにより使用されると仮定する。したがって、サーバデバイスがメンテナンスのために動作を停止した場合、社員オンボーディングサービス及び給与サービスが影響を受けるであろうことは明らかである。同様に、構成アイテム間の依存性及び関係は、特定のルータが故障した場合に影響を受けるサービスを表すことが可能であり得る。
一般的に、構成アイテム間の依存性及び関係は、ウェブベースのインターフェース上に表示され得、階層的方法で表され得る。したがって、こうした依存性及び関係の追加、変更、又は削除は、このインターフェースを介して達成され得る。
更に、管理されるネットワーク300からのユーザは、ある一定の調整された活動が複数の発見されたデバイスに渡って行われることを可能にするワークフローを開発し得る。実例として、ITワークフローは、単一の動作で、全ての発見されたLINUX(登録商標)デバイスに共通の管理者パスワードをユーザが変更することを可能にし得る。
上で説明した方法で発見が行われるために、プロキシサーバ312、CMDB500、及び/又は1つ以上のクレデンシャルストアは、発見されるデバイスの内の1つ以上に対するクレデンシャルで構成され得る。クレデンシャルは、デバイスにアクセスするために必要な任意のタイプの情報を含み得る。これらは、ユーザID/パスワードの対及び資格証明書等を含み得る。幾つかの実施形態では、これらのクレデンシャルは、CMDB500の暗号化されたフィールド内に格納され得る。プロキシサーバ312は、発見されているデバイスにログオンするため、さもなければアクセスするためにこれらのクレデンシャルをプロキシサーバ312が使用し得るように、クレデンシャルに対する復号化キーを含み得る。
発見プロセスは、図5Bにフローチャートとして描写されている。ブロック520において、計算インスタンス内のタスクリストは、実例として、IPアドレスの範囲でポピュレートされる。ブロック522において、スキャンフェーズが行われる。したがって、プロキシサーバは、これらのIPアドレスを使用してデバイスに対するIPアドレスを精査し、これらのデバイス上で実行しているオペレーティングシステムの判定を試みる。ブロック524において、分類フェーズが行われる。プロキシサーバは、発見されたデバイスのオペレーティングシステムのバージョンの判定を試みる。ブロック526において、識別フェーズが行われる。プロキシサーバは、発見されたデバイスのハードウェア及び/又はソフトウェア構成の判定を試みる。ブロック528において、探索フェーズが行われる。プロキシサーバは、発見されたデバイス上で実行している動作状態及びアプリケーションの判定を試みる。ブロック530において、発見されたデバイス及びアプリケーションを表す構成アイテムの更なる編集が行われ得る。この編集は、本質的に自動化され得、及び/又は手動で行われ得る。
図5Bに表したブロックは、例示を目的とする。発見は、より多くの又はより少ないフェーズを有し得る高度に構成可能な手順であり得、各フェーズの動作は変更し得る。幾つかの場合、1つ以上のフェーズがカスタマイズされ得、さもなければ上記の例示的な説明から逸脱し得る。
V. CMDB識別ルールと調整
CMDB500等のCMDBは、構成アイテムのリポジトリを提供し、適切にプロビジョニングされた場合、計算インスタンス内に配備された又は計算インスタンスを含む上位層アプリケーションで重要な役割を果たし得る。これらのアプリケーションは、エンタープライズITサービス管理、動作管理、資産管理、構成管理、及びコンプライアンス等に関連し得る。
例えば、ITサービス管理アプリケーションは、誤動作、クラッシュ、又は高負荷になったコンポーネント(例えば、サーバデバイス)の影響を受け得るアプリケーション及びサービスを判定するために、CMDB内の情報を使用し得る。同様に、資産管理アプリケーションは、特定のエンタープライズアプリケーションをサポートするために、どのハードウェア及び/又はソフトウェアコンポーネントが使用されているかを判定するために、CMDB内の情報を使用し得る。CMDBの重要性の結果として、そこに格納されている情報は正確で、一貫性があり、最新であることが望ましい。
CMDBは様々な方法でポピュレートされ得る。上で論じたように、発見手順は、構成アイテムに関連する情報をCMDB内に自動的に格納し得る。しかしながら、CMDBはまた、手動入力、構成ファイル、及びサードパーティのデータソースによって、全体として又は部分的にポピュレートされ得る。複数のデータソースが何時でもCMDBを更新可能であり得ることを考えると、あるデータソースが別のデータソースのエントリを上書きし得ることが可能である。また、2つのデータソースは、同じ構成アイテムに対して僅かに異なるエントリを各々作成し得、重複データを含むCMDBをもたらす。これらの何れかが発生した場合、CMDBの正常性と有用性とを低下させ得る。
この状況を緩和するために、これらのデータソースは、構成アイテムをCMDBに直接書き込まないことがある。代わりに、それらは、識別及び調整APIに書き込み得る。このAPIは、構成アイテムをユニークに識別し、それらがCMDBに書き込まれる否か、及びどのように書き込まれるかを判定するために使用され得る構成可能な識別ルールのセットを使用し得る。
一般的に、識別ルールは、このユニークな識別に使用され得る構成アイテムの属性のセットを指定する。識別ルールにはまた、優先度の高いルールが優先度の低いルールよりも先に考慮されるように、優先度を有し得る。また、ルールは、他の構成アイテムから独立して構成アイテムを識別するという点で、独立的であり得る。或いは、ルールは、依存する構成アイテムを識別するためにメタデータルールを最初に使用するという点で、依存的であり得る。
メタデータルールは、特定の構成アイテム内に如何なる他の構成アイテムが含まれるか、又は特定の構成アイテムが配備されるホストを説明する。例えば、ネットワークディレクトリサービスの構成アイテムはドメインコントローラの構成アイテムを含み得る一方で、ウェブサーバーアプリケーションの構成アイテムはサーバデバイスの構成アイテム上にホストされ得る。
各識別ルールの目標は、構成アイテムを他の全ての構成アイテムから明確に区別し得る属性の組み合わせを使用することであり、構成アイテムの存続期間中に変更されないことが期待される。例示的なサーバデバイスに対して幾つかの考えられる属性は、シリアル番号、位置、オペレーティングシステム、オペレーティングシステムのバージョン、及びメモリ容量等を含み得る。ルールが構成アイテムをユニークに識別しない属性を指定する場合、複数のコンポーネントがCMDB内で同じ構成アイテムとして表され得る。また、ルールが特定の構成アイテムに対して変更される属性を指定する場合、重複する構成アイテムが作成され得る。
したがって、データソースが構成アイテムに関する情報を識別及び調整APIに提供する場合、APIはその情報を1つ以上のルールと一致させることを試み得る。一致が見つかった場合、構成アイテムはCMDB内に書き込まれる。一致が見つからない場合、構成アイテムは、更に分析するために保持され得る。
構成アイテムの調整手順は、権限のあるデータソースのみがCMDB内の構成アイテムデータを上書きすることを可能にすることを確実にするために使用され得る。この調整はまた、ルールベースであり得る。実例として、調整ルールは、特定のデータソースが特定の構成アイテムタイプ及び属性のセットに対して権限があることを指定し得る。その後、識別及び調整APIは、この権限のあるデータソースが特定の構成アイテムに書き込むことのみを許可し、未承認のデータソースからの書き込みが防止され得る。したがって、承認されたデータソースは、特定の構成アイテムに関する唯一の真実のソースになる。幾つかの場合、未承認のデータソースが構成アイテムを作成している場合、又は書き込んでいる属性が空である場合、未承認のデータソースは、構成アイテムに書き込むことが可能であり得る。
また、複数のデータソースが同じ構成アイテム又はその属性に対して権限を有し得る。曖昧さを避けるために、これらのデータソースには、構成アイテムの書き込み中に考慮される優先順位が割り当てられ得る。例えば、二次的に承認されたデータソースは、一次的に承認されたデータソースがこの属性に書き込むまで、構成アイテムの属性に書き込むことが可能であり得る。その後、二次的に承認されたデータソースによる属性への更なる書き込みは防止され得る。
幾つかの場合、重複する構成アイテムは、調整手順によって又は別の方法で自動的に検出され得る。これらの構成アイテムには、手動での重複排除のためのフラグが立てられ得る。
VI. 認証システムの例
図6Aは、認証システムを提供する例示的なリモートコンピューティングシステムを説明する。すなわち、リモートコンピューティングシステム600は、認証、承認、ユーザ管理、及び/又はその他のアクセス制御(本明細書では総称して認証と称される)を制御するために使用され得る認証システム610を含む。認証システム610は、リモートコンピューティングシステム600内のコンピューティングリソース、並びにリモートコンピューティングシステム600外のコンピューティングリソースに、それらのために、及び/又はそれらの代わりに認証を提供するために使用され得る。図6Aは、認証プロセス、及び認証プロセスを支援し得るサードパーティID(identity)プロバイダ630からの利益を受け得るソフトウェアアプリケーション622を実行するコンピューティングデバイス620を更に説明する。
リモートコンピューティングシステム600は、可能性の中でもとりわけ、ソフトウェアアプリケーション、仮想コンピューティングデバイス、データストレージシステム、API、及びソフトウェア関数を含む、複数の異なるコンピューティングリソースを含み得る。例えば、認証システム610に加えて、リモートコンピューティングシステム600はまた、コンポーネントの中でもとりわけ、仮想コンピューティングデバイス604、ファイルストレージシステム606、データベースシステム608、動的トリガー可能ソフトウェア関数616、及びAPIゲートウェイリソース618を含み得る。リモートコンピューティングシステム600は、可能性の中でもとりわけ、AMAZON WEB SERVICES(登録商標)、MICROSOFT(登録商標)AZURE、GOOGLE CLOUD PLATFORM(登録商標)、ALIBABA CLOUD(登録商標)、IBM(登録商標)Cloud等のクラウドベースのコンピューティング環境を表し得る。
リモートコンピューティングシステム600内のコンピューティングリソースの各々には、対応するユニークリソース識別子が割り当てられ得る。これらのユニークリソース識別子は、例えば、その中のコンピューティングリソース間の直接通信のために、リモートコンピューティングシステム600によって使用され得る。例えば、ユニークリソース識別子は、相互接続ネットワーク638に沿ってトラフィックを仕向け得る。ユニークリソース識別子はまた、利点の中でもとりわけ、コンピューティングリソースの明確なプロビジョニング、修正、及び削除を可能にし得る。異なるタイプのコンピューティングリソースの各々は、異なるユニークリソース識別子のコンテンツと関連付けられ得、したがって、所与のコンピューティングリソースのタイプ又はクラスを、そのユニークリソース識別子に基づいて判定又は少なくとも概算することを可能にする。ユニークリソース識別子のコンテンツにおけるこれらの相違は、リモートコンピューティングシステム600のコンポーネントの発見及びマッピングを容易にするために、発見プロセス中に使用され得る。
仮想コンピューティングデバイス604は、様々なソフトウェアアプリケーション、プログラム、及び/又はプロセスを実行するためのコンピューティング環境を提供するように構成され得る。AMAZON WEB SERVICES(登録商標)の場合、仮想コンピューティングデバイス604はAMAZON EC2(登録商標)製品のコンポーネントを表し得る。
ファイルストレージシステム606(例えば、AMAZON SIMPLE STORAGE SERVICE(登録商標))は、ファイル及び/又は他のオブジェクトをコンテナ、バケット、又はその他のストレージ構造内に格納するように構成され得る。ストレージシステム606は、複数の異なるファイルタイプをその中に格納するように構成され得る。ストレージシステム606内に格納された各ファイルは、ファイルストレージシステム606によりファイルに割り当てられたランダムな英数字の文字列、又はそのストレージをリクエストするクライアントデバイスによりファイルに割り当てられたファイル名等、対応するユニーク識別子を使用してアドレッシング可能であり得る。
データベースシステム608(例えば、AMAZON DYNAMODB(登録商標)、AMAZON RDS(登録商標)、又はAMAZON REDSHIFT(登録商標))は、行と列に配列されたテーブル内にデータを格納するように構成されたリレーショナルデータベースを含み得、ユニークなキーが各行を識別する。データベースシステム608は、したがって、そのクエリ及び保守のために構造化クエリ言語(SQL)を使用し得る。データベースシステム608は、追加的又は代替的に、複数の追加のフォーマット又は配列でデータを格納するように構成された“not only SQL”(NoGT)データベースを表し得る。例えば、データベースシステム608は、(行ではなく)列によって編成されたテーブルとして、(例えば、データベースに内に格納された各値に対応するキーが割り当てられる場合に)キー及び値のペアとして、ドキュメントとして(例えば、JavaScript Object Notation(JSON)又はXMLファイル)、又は(例えば、データがエッジによって相互接続されたノードとして格納される場合に)グラフ構造としてデータを格納し得る。
動的トリガー可能ソフトウェア関数616(例えば、AMAZON LAMBDA(登録商標)関数)は、これらのソフトウェア関数の機構、動作、及び/又はコンポーネントの少なくとも一部を定義する個別のコード(例えば、ソースコード、オブジェクトコード、構成ファイル、ログファイル、及び/又は環境変数)を含み得る。そうしたコードは、管理されるネットワーク300に代わってリモートコンピューティングシステム600によってコードがリモートでホストされ、実行可能であるように、管理されるネットワーク300と関連付けられたコンピューティングデバイスを介してリモートコンピューティングシステム600にアップロードされ得る。したがって、動的トリガー可能ソフトウェア関数616は、管理されるネットワーク300が、コードを実行するための管理及びリソース割り当てをリモートコンピューティングシステム600にオフロードすることを可能にし得る。
動的トリガー可能ソフトウェア関数616は、オンデマンドで実行可能であり得、それは、管理されるネットワーク300が、動的トリガー可能ソフトウェア関数616を実行するために必要に応じてリモートコンピューティングシステム600のコンピューティングリソースを使用することを効果的に可能にする。例えば、動的トリガー可能ソフトウェア関数616は、1つ以上のトリガーイベントに応答して実行され得、それは、これらのソフトウェア関数の内の1つ以上にコンピューティングリソースを割り当てる必要性又は要求を指し示し得る。例示的なトリガーイベントは、動的トリガー可能ソフトウェア関数616の内の1つへサービス又はソフトウェアプログラムの実行に対するリクエストを送信するクライアントデバイスを含み得、そのため、クライアントデバイスは、ある一定の情報を受信し、及び/又はそうした実行の結果として動作を実行する。したがって、トリガーイベントは、例えば、可能性の中でもとりわけ、管理されるネットワーク300と関連付けられたソフトウェアアプリケーション、又はリモートネットワーク管理プラットフォーム320と関連付けられたソフトウェアアプリケーションを含む、リモートコンピューティングシステム600の外部のエンティティによって開始され得る。
トリガーイベントはまた、リモートコンピューティングシステム600の内部のエンティティによって開始され得る。例えば、トリガーイベントは、可能性の中でもとりわけ、リモートコンピューティングシステム600又はそれによりホストされるサービスの内の別の1つと関連付けられたソフトウェアアプリケーションによって開始され得る。例えば、トリガーイベントは、ファイルストレージシステム606及び/又はデータベースシステム608の1つ以上のコンポーネントの修正を含み得る。
APIゲートウェイリソース618(例えば、AMAZON(登録商標)API Gateway)は、APIの様々な態様の作成、公開、及び保守を容易にするように構成され得る。そうしたAPIは、リモートコンピューティングシステム600上で実行する1つ以上のサービス又はソフトウェアアプリケーションの一部を公開するために使用され得る。例えば、APIゲートウェイリソースは、ソフトウェアアプリケーション622がリモートコンピューティングシステム600の他のコンポーネントと相互作用することを可能にするAPIリクエスト及び応答を処理し得る。APIゲートウェイリソース618は、例えば、動的トリガー可能ソフトウェア関数616の内の1つ以上がソフトウェアアプリケーション622にそれを介してアクセス可能であるAPIを提供し得る。
認証システム610(例えば、AMAZON COGNITO(登録商標))は、ユーザプール612及び/又はIDプール614を含み得る。ユーザプール612は、リモートコンピューティングシステム600の内外の両方で、1つ以上のコンピューティングリソースにアクセスするために使用可能な複数のサービス識別子(例えば、ユーザカウント)を定義し得る。ユーザプール612は、したがって、複数のユーザの認証クレデンシャルを格納する1つ以上のユーザディレクトリを提供し得、それ故、認証システム610がユーザを認証することを可能にする。すなわち、認証システム610は、ユーザプール612内で見つかったレコードと一致する認証クレデンシャルの受信に応答してアクセストークンを発行するように構成され得る。ユーザプール612は、例えば、リモートコンピューティングシステム600の外部でホストされるソフトウェアアプリケーションに、又はリモートコンピューティングシステム600のコンピューティングリソースによってホストされるソフトウェアアプリケーションに認証サービスを提供するために使用され得る。
一実装では、認証クレデンシャルは、検証のために認証システム610に提供されるユーザ名及びパスワードの形式を取り得る。認証システム610は、ユーザプール612に対して認証クレデンシャルを検証し得、検証の成功に応答してアクセストークンを発行し得る。別の実装では、認証システム610は、認証クレデンシャルがサードパーティIDプロバイダ630の内の1つ以上を介して提供されることを可能にし得る。サードパーティIDプロバイダ630は、ソーシャルサインインプロバイダ632(例えば、GOOGLE(登録商標)、FACEBOOK(登録商標))、OPENID Connectプロバイダ634、及びSecurity Assertion Markup Language(SAML)IDプロバイダ636を含み得る。認証クレデンシャルは、サードパーティの認証トークンを応答的に提供し得るサードパーティIDプロバイダ630の内の1つに提供され得る。このサードパーティ認証トークンは、第2の認証トークンを取得するために認証システム610に提供され得る。第2の認証トークンは、アクセスが最初に求められたコンテンツ(例えば、コンピューティングリソース602上に展開されたソフトウェアアプリケーション)へのアクセスを可能にし得る。
一方、IDプール614は、リモートコンピューティングシステム600によって提供されるコンピューティングリソースの内の1つ以上への直接アクセスを提供するために使用され得る。IDプール614は、コンピューティングリソースへのそうした直接アクセスを可能にする一時的なリソースクレデンシャルを発行するために、ユーザプール612を介して取得されたアクセストークンに依存し得る。幾つかの場合、ユーザプール612は、ソフトウェアアプリケーションのフロントエンド(すなわち、ユーザ向けの態様)へのアクセスを承認すると考えられ得る一方、IDプール614は、ソフトウェアアプリケーションが利用するバックエンド(例えば、サーバー側)のサービスへのアクセスを承認すると考えられ得る。したがって、例えば、ユーザプール612は、アプリケーションのユーザを認証するために使用され得る一方、IDプール614は、アプリケーションの管理者を認証するために使用され得る。特に、ユーザプール612及びIDプール614は、幾つかの実装では、単一のプールに結合され得、又は異なるユースケースを各々有する3つ以上のプールに拡張され得る。とにかく、認証システム610は、リモートコンピューティングシステム600の内外の両方でユーザ、アプリケーション、及びデバイスを認証するために使用され得る。
図6Bは、ユーザプール612を利用する例示的な認証プロセスのメッセージフロー図を説明する。すなわち、コンピューティングリソース602は、例えば、コンピューティングデバイス620上で実行するソフトウェアアプリケーション622(例えば、ウェブブラウザ)を介してアクセス可能であり得るウェブベースのソフトウェアアプリケーションを表し得る。ソフトウェアアプリケーション622は、矢印640によって指し示されるように、コンテンツに対するリクエストをコンピューティングリソース602へ送信するように構成され得る。矢印640でのリクエストに基づいて、又はそれに応答して、コンピューティングリソースは、矢印642によって指し示されるように、ログインクレデンシャルに対するリクエストをソフトウェアアプリケーション622へ送信するように構成され得る。矢印642でのリクエストに基づいて、又はそれに応答して、ソフトウェアアプリケーション622は、ログインクレデンシャル(例えば、ユーザ名及びパスワード)を提供するように構成され得る。
コンピューティングリソース602は、それ自体の独立したユーザ管理システムを実装するのではなく、ユーザ認証を処理するために認証システム610を利用し得る。したがって、矢印644でのクレデンシャルの受信に基づいて、又はそれに応答して、コンピューティングリソース602は、ログインクレデンシャルを認証システム610へ送信するように構成され得る。矢印646でのログインクレデンシャルの受信に基づいて、又はそれに応答して、認証システム610は、ブロック648によって指し示されるように、ユーザプール612に対してログインクレデンシャルを検証するように構成され得る。ログインクレデンシャルがユーザプール612内で見つかったレコードと一致する場合、認証システム610は、矢印650によって指し示されるように、トークンを生成し、コンピューティングリソース602に提供するように構成され得る。トークンは、例えば、JSON Web Token(JWT)であり得る。
矢印650でのトークンの受信に基づいて、又はそれに応答して、コンピューティングリソース602は、それらの間の相互作用を認証するために使用されるように、トークンをソフトウェアアプリケーション622へ送信するように構成され得る。したがって、矢印652でのトークンの受信に基づいて、又はそれに応答して、ソフトウェアアプリケーション622は、取得されたトークンと共にコンテンツに対するリクエストをコンピューティングリソース602へ送信するように構成され得る。矢印654でのコンテンツに対するリクエスト及びトークンの受信に基づいて、又はそれに応答して、コンピューティングリソースは、ブロック656で指し示されるようにコンテンツへのアクセスを可能にし、矢印658によって指し示されるようにソフトウェアアプリケーション622へコンテンツを送信するように構成され得る。特に、コンピューティングリソース602は、ブロック656及び矢印658でコンテンツにアクセスして提供するプロセスにおいて、リモートコンピューティングシステム600の1つ以上の他のコンピューティングリソースを利用し得る。しかしながら、これらの他のコンピューティングリソースは、ソフトウェアアプリケーション622に直接アクセス可能ではないことがある。
コンピューティングリソース602を介するのではなく、リモートコンピューティングシステム600内のこれらの他のコンピューティングリソースと直接相互作用するために、ソフトウェアアプリケーション622は、図6Cに説明されるように、一時的なリソースクレデンシャルと引き換えに、認証システム610にアクセストークンを提供し得る。一時的なリソースクレデンシャルは、リモートコンピューティングシステム600内の1つ以上のコンピューティングリソースへの直接アクセスを可能にするように構成され得る。例えば、一時的なリソースクレデンシャルは、ソフトウェアアプリケーション622が、コンピューティングリソース602上で実行するソフトウェアアプリケーションによって使用されるデータベースのコンテンツを閲覧することを可能にし得る、この閲覧は、コンピューティングリソース602との何れの相互作用とも独立して達成され得る。
したがって、ソフトウェアアプリケーション622は、矢印660によって指し示されるように、コンピューティングリソース680にコンテンツをリクエストするように構成され得る。コンピューティングリソース680は、リモートコンピューティングシステム600の仮想コンピューティングデバイス、ファイルストレージシステム、データベースシステム、ソフトウェア関数、及び/又はAPIゲートウェイの内の1つ以上を表し得る。矢印660でのリクエストの受信に基づいて、又はそれに応答して、コンピューティングリソース680は、矢印662によって指し示されるように、ソフトウェアアプリケーション622に、コンピューティングリソース680のコンテンツにアクセスするための一時的なリソースクレデンシャルをリクエストするように構成され得る。矢印662でのリクエストに基づいて、又はそれに応答して、ソフトウェアアプリケーション622は、矢印664によって指し示されるように、認証システム610に一時的なリソースクレデンシャルをリクエストするように構成され得る。矢印664でのリクエストは、図6Bの矢印652でソフトウェアアプリケーションによって取得されたトークンをその中に含み得る。
矢印664でのリクエストに基づいて、又はそれに応答して、認証システム610は、トークンを検証し、成功裡に検証された場合、ブロック666によって指し示されるように、一時的なリソースクレデンシャルを生成するように構成され得る。特に、認証システム610は、一時的なリソースクレデンシャルを生成するためにIDプール614に依存し得る。例えば、IDプール614は、トークンを特定のスコープの一時的なリソースクレデンシャルと関連付け得る。スコープは、可能性の中でもとりわけ、アクセス可能なリモートコンピューティングシステム600内のコンピューティングリソースのサブセット、及びこれらのコンピューティングリソースが相互作用され得る方法(例えば、読み出し、書き込み、作成、削除等)を定義し得る。したがって、IDプール614は、異なるトークンが、リモートコンピューティングシステム600のコンピューティングリソースの異なるサブセットへのアクセスを許可することを可能にし得る。幾つかの実装では、各トークンと関連付けられたスコープは、ユーザプール毎に及び/又は個々のユーザ毎に調整可能であり得る。
ブロック666で一時的なリソースクレデンシャルを生成することに基づいて、又はそれに応答して、認証システム610は、矢印668によって指し示されるように、ソフトウェアアプリケーション622へ一時的なリソースクレデンシャルを送信するように構成され得る。矢印668での一時的なリソースクレデンシャルの受信に基づいて、又はそれに応答して、ソフトウェアアプリケーション622は、矢印670によって指し示されるように、コンピューティングリソース680にコンテンツをリクエストし、一時的なリソースクレデンシャルをそれに提供するように構成され得る。矢印670でのリクエストの受信に基づいて、又はそれに応答して、コンピューティングリソース680は、ブロック672によって指し示されるようにコンテンツへのアクセスを提供し、矢印674によって示されるようにソフトウェアアプリケーション622へコンテンツを送信するように構成され得る。一時的なリソースクレデンシャルは、所定の期間が経過すると期限切れになり得、したがって、将来の相互作用が、所与のユーザと関連付けられたトークンのスコープの任意の変更を考慮に入れることを可能にする。
VII. 発見及びマッピング動作の例
図7A及び図7Bは、リモートコンピューティングシステムの要素の発見及びマッピングに関連する動作のメッセージフロー図を説明する。具体的には、図7A及び図7Bは、発見アプリケーション700、永続ストレージ702、及びリモートコンピューティングシステム600を説明する。永続ストレージ702は、幾つかの実装では、データベースを含み、及び/又はデータベースの形式を取り得る。一例では、発見アプリケーション700及び永続ストレージ702は、リモートネットワーク管理プラットフォーム320の計算インスタンス(例えば、計算インスタンス322)内に配備され得、又はその一部を形成し得る。この計算インスタンスは、管理されるネットワーク300に割り当てられ得、したがって、それと関連付けられた様々なシステムを発見、マッピング、及び/又は調整するために使用され得る。そのために、発見アプリケーション700は、インターネット等のネットワークを介してリモートコンピューティングシステム600と通信するように構成され得る。別の例では、発見アプリケーションの一部は、プロキシサーバ312内に配備され得、その一部を形成し得、又はその助けを借りて実行され得る。例えば、発見アプリケーション700によって展開される発見パターンの幾つか又は全ての部分は、プロキシサーバ312によって実行され得る。
発見アプリケーション700は、リモートコンピューティングシステム600に対するサービス識別子を取得することによって発見及びマッピングプロセスを開始し得る。サービス識別子は、ユーザ名及びパスワードの組み合わせ、ウェブトークン(例えば、JSON Web Token)、又は発見アプリケーション700がリモートコンピューティングシステム600に接続し、それに関する情報を取得することを可能にするクレデンシャルの別の形式を含み得る。サービス識別子はまた、リモートコンピューティングシステム600をアドレッシングするURL又は別の識別子を含み得、又はそれと関連付けられ得る。したがって、サービス識別子はまた、発見アプリケーション700が他の利用可能なリモートコンピューティングシステムからリモートコンピューティングシステム600を明確にすることを可能にし得る。幾つかの実装では、発見アプリケーション700は、ユーザインターフェースを介してサービス識別子を取得し得る。
サービス識別子を取得することに基づいて、又はそれに応答して、発見アプリケーション700は、矢印704によって指し示されるように、第1のコンピューティングリソース(例えば、コンピューティングリソース602)の第1の属性をリクエストするように構成され得る。このリクエスト、並びにリモートコンピューティングシステム600へのその後の幾つかのリクエストは、複数の異なる形式又はフォーマットを取り得る。一例では、リモートコンピューティングシステム600は、発見アプリケーション700によってリクエストされた情報を生成及び提供するように構成されたAPIを提供し得る。APIは、例えば、ハイパーテキスト転送プロトコル(HTTP)リクエストを介してアクセス可能で、リクエストされた情報をHTTP応答で提供するように構成されたrepresentational state transfer(REST)APIであり得る。
矢印704でのリクエストは、したがって、(i)APIのベースアドレス、(ii)リクエストされた情報を提供するように構成されたAPIの特定の関数、(iii)APIの特定の関数に対する入力値、及び/又は(iv)発見アプリケーション700を認証するサービス識別子の部分の内の1つ以上を指定し得る。
例えば、矢印704でのリクエストは、“COMP_SYS.COM/GET_ATTRIBUTES/FIRST_COMPUTING_RESOURCE”へ送信され得、“COMP_SYS.COM”はAPIのベースアドレスを表し、“GET_ATTRIBUTES”は様々なコンピューティングリソースの属性を生成するように構成されたAPIの関数を指定し、“FIRST_COMPUTING_RESOURCE”は、属性がリクエストされるコンピューティングリソースを指定する関数への入力である。リクエストは、そのHTTPヘッダー内に、リモートコンピューティングシステム600にアクセスするために使用されるサービス識別子からの認証クレデンシャルを含み得る。
矢印704でのリクエストの受信に基づいて、又はそれに応答して、リモートコンピューティングシステム600は、ブロック706によって指し示されるように、第1の属性を判定するように構成され得る。第1の属性を判定することは、矢印704でのリクエストによって指定されたAPI関数の実行を含み得る。ブロック706で第1の属性を判定することに基づいて、又はそれに応答して、リモートコンピューティングシステム600は、矢印708によって指し示されるように、第1の属性を発見アプリケーション700へ送信するように構成され得る。矢印708での第1の属性の受信に基づいて、又はそれに応答して、発見アプリケーション700は、矢印710によって指し示されるように、永続ストレージ702内への第1の属性の格納をリクエストするように構成され得る。矢印710でのリクエストの受信に基づいて、又はそれに応答して、永続ストレージは、ブロック712によって指し示されるように、第1の属性を格納するように構成され得る。ブロック712での第1の属性の格納に基づいて、又はそれに応答して、永続ストレージは、矢印714によって指し示されるように、第1の属性の格納の確認を発見アプリケーション700へ送信するように構成され得る。
発見アプリケーション700は、ブロック716によって指し示されるように、第1の属性に基づいて認証システム(例えば、認証システム610)の第1のユニークリソース識別子を識別するように構成され得る。ブロック716の動作は、矢印708での第1の属性の受信又は矢印714での確認に基づいて、又はそれに応答して実行され得る。第1のユニークリソース識別子は、第1のコンピューティングリソースのタイプに依存して異なる方法で識別され得る。すなわち、第1のコンピューティングリソースのタイプは、第1の属性のフォーマット及びコンテンツを決定し得る。
第1の例では、第1のコンピューティングリソースが動的トリガー可能ソフトウェア関数616の内の1つである場合、第1の属性は、動的トリガー可能ソフトウェア関数を定義するプログラムコードを含み得る。このプログラムコードは、その中で第1のユニークリソース識別子を参照し得る。例えば、プログラムコードは、動的トリガー可能ソフトウェア関数を実行するためのリクエストと共にトークンが存在しない場合に、第1のユニークリソース識別子により識別されるコンピューティングリソースが認証に使用されることを指し示し得る。同様に、第1のコンピューティングリソースがAPIゲートウェイリソース618を表す場合、第1のユニークリソース識別子は、そのAPIの関数を定義するソースコードを解析することによって識別され得る。
別の例では、第1のコンピューティングリソースは、ファイルストレージシステム606のコンテナ又はデータベースシステム608のデータベース等のデータストレージ構造であり得る。したがって、第1の属性は、データストレージ構造のコンテンツ及び/又はデータストレージ構造と関連付けられたメタデータを含み得る。第1のユニーク識別子は、これらのコンテンツ又はメタデータ内に含まれ得、したがって、コンテンツ及び/又はメタデータを解析することによって識別され得る。例えば、データベースは、アプリケーションのユーザが利用可能な複数の認証方法をソフトウェアアプリケーションが追跡することを可能にするために、ソフトウェアアプリケーションに代わって第1のユニークリソース識別子を格納し得る。別の例では、データベースのメタデータは、データベースのコンテンツにアクセスするためのログインに認証システム610が使用されることを指し示すために、第1のユニークリソース識別子を格納し得る。
更なる例では、第1の属性は、1つ以上のトリガーイベントの定義を含み得る。特に、リモートコンピューティングシステム600の多くのタイプのコンピューティングリソースは、トリガーイベントに応答するように、又はトリガーイベントの発生に応答して他のコンピューティングリソースの実行を呼び出すように構成され得る。例えば、動的トリガー可能ソフトウェア関数616は、別のコンピューティングリソースからのリクエストの受信に応答して実行され得る。別の例では、データベースシステム608のデータベースのあるレプリカが修正される場合、そうした修正は、データベースの任意の他の地理的に分散されたレプリカの間で伝播され得る。したがって、トリガーイベントは、データベースがそのレプリカの各々をほぼリアルタイムで同期させることを可能にする。更なる例では、トリガーイベントはまた、第1のコンピューティングリソースに、ファイルストレージシステム606のコンテナ等の他のコンピューティングリソースへのアクセスを提供させ得る。所与のトリガーイベントは、リソースの個別のユニークリソース識別子を使用して、所与のトリガーイベントと関連付けられた任意のコンピューティングリソースを識別し得る。したがって、第1の属性におけるトリガーイベントの定義を解析することは、発見アプリケーション700が、リモートコンピューティングシステム600内の他の関連するコンピューティングリソースを識別することを可能にし得る。
特に、第1の属性は、認証システム610以外のコンピューティングリソースの1つ以上の追加のユニークリソース識別子をその中に更に含み得る。例えば、第1のコンピューティングリソースは、可能なコンピューティングリソースの中でもとりわけ、仮想コンピューティングデバイス604、ファイルストレージシステム606、データベースシステム608、動的トリガー可能ソフトウェア関数616、及び/又はAPIゲートウェイリソース618と相互作用し得る。そうした相互作用は、第1のコンピューティングリソースの属性における対応するユニークリソース識別子の存在によって指し示され得る。
リモートコンピューティングシステム600の異なるタイプのコンピューティングリソースのユニークリソース識別子は、ユニークリソース識別子のコンテンツに基づいて相互に明確にされ得る。AMAZON WEB SERVICES(登録商標)の例では、特定のコンピューティングリソースのユニークリソース識別子は、(i)特定のコンピューティングリソースが配備されるリモートコンピューティングシステム600のパーティション、(ii)特定のコンピューティングリソースのサービス名、(iii)特定のコンピューティングリソースが存在する地理的領域、(iv)特定のコンピューティングリソースと関連付けられたアカウント、及び/又は(v)特定のコンピューティングリソースと関連付けられた英数字の識別子の組み合わせであり得る。したがって、ユニークリソース識別子(例えば、AMAZON(登録商標)Resource Name(ARN))のフォーマットは、“arn:partition:service_name:region:account:alphanumeric_id”であり得る。
特に、これらのフィールドの内の1つ以上は、コンピューティングリソースのタイプを指し示し得、同じタイプのコンピューティングリソースの異なるインスタンス化に渡って同じであり得る。例えば、AMAZON WEB SERVICES(登録商標)の場合、サービス名はコンピューティングリソースのタイプを指し示し得る。例えば、AMAZON SIMPLE STORAGE SERVICE(登録商標)は、サービス名“s3”(例えば、“arn:partition:s3:::alphanumeric_id”)によって識別され得る。同様に、AMAZON COGNITO(登録商標)認証システムは、サービス名“cognito-idp”(例えば、“arn:partition:cognito-idp:region:account:userpool:alphanumeric_id”)により識別され得る。特に、他のリモートコンピューティングシステムは、ユニークリソース識別子に対して異なるフォーマットを使用し得る。それにもかかわらず、ユニークリソース識別子の幾つかの部分は、同じタイプのコンピューティングリソースに渡って一定のままであり得、又は少なくとも類似し得る。
属性から判定された所与のユニークリソース識別子と関連付けられたコンピューティングリソースのタイプを識別することに基づいて、発見アプリケーション700は、更なる発見及びマッピング動作で用いられる1つ以上の発見パターンを選択し得る。すなわち、発見アプリケーション700は、異なる発見パターンを使用して、リモートコンピューティングシステム600内の異なるタイプのコンピューティングリソースを発見及びマッピングするように構成され得る。一般的に言えば、発見パターンは、クラウドベースのシステムにアクセスするためにどのようなクレデンシャルを使用するのか、その中のどのようなコンピューティングリソースを発見するのか、及びこれらのコンピューティングリソースの表現を用いてどのようなCMDBテーブルをポピュレートするのかを、発見を実行するソフトウェアアプリケーション(例えば、発見アプリケーション700)に命令する一連の動作である。各発見パターンは、その対応するタイプのコンピューティングリソースの態様を発見及びマッピングするように構成された一連の動作を定義し得る。したがって、ユニークリソース識別子と、これらの識別子が対応するコンピューティングリソースのタイプとを識別することによって、発見アプリケーション700は、これらのタイプのコンピューティングリソースに焦点をあてた発見パターンを選択及び実行し得る。
具体的には、発見アプリケーション700によって第1の属性から判定されたユニークリソース識別子は、(i)実行される正確な発見パターンの選択、及び(ii)対応するコンピューティングリソースタイプの特定のインスタンス化に対する選択された発見パターンの展開を可能にし得る。すなわち、発見アプリケーション700によって判定された各ユニークリソース識別子は、発見及びマッピングを行うために発見アプリケーション700によって使用可能なエントリポイントを指し示し得る。すなわち、各ユニークリソース識別子は、発見可能な属性とマッピング可能な関係とに関連付けられているコンピューティングリソースの特定のインスタンス化を指し示し得る。したがって、特定のユニークリソース識別子を取得することに応答して、発見アプリケーション700は、追加の発見パターンが実行され得るエントリポイントを判定するように構成され得る。言い換えれば、ユニークリソース識別子を識別することは、発見アプリケーション700が、第1のコンピューティングリソースに関連するリモートコンピューティングシステム600内の他のコンピューティングリソースの発見及びマッピングを継続することを可能にし得る。
したがって、ブロック716で(認証システム610に対応する)第1のユニークリソース識別子を識別することに基づいて、又はそれに応答して、発見アプリケーション700は、ブロック718によって指し示されるように、認証システムの第2の属性を取得すると判定するように構成され得る。第2の属性を取得することは、認証システムに固有の発見パターンを選択することと、認証システムの第2の属性を取得するために発見アプリケーション700によって発見パターンを実行することを含み得る。
したがって、発見アプリケーション700は、矢印720によって指し示されるように、認証システムの第2の属性に対するリクエストをリモートコンピューティングシステム600へ送信するように構成され得る。AMAZON COGNITO(登録商標)認証システムの例では、リクエストは、HTTP“POST”メソッドを介して“cognito-idp.region.amazonaws.com”へ送信され得る。リクエストのHTTPヘッダーは、API関数が認証システムによって提供されるユーザプールのリストを返すことをリクエストする第1のフィールド“X-Amz-Target:AWSCognitoIdentityProviderService.ListUserPools”と、応答が提供されるフォーマット(すなわち、JSON)を指定する第2のフィールド“Content-Type:application/x-amz-json-1.0”とを含み得る。特に、他のリモートアプリケーションシステムへ送信されるリクエストは異なり得る。
矢印720でのリクエストの受信に基づいて、又はそれに応答して、リモートコンピューティングシステム600は、ブロック722によって指し示されるように、認証システムの第2の属性を判定するように構成され得る。属性は、API関数によって判定され得、矢印720でのリクエストによって指定されるフォーマットに従って配置され得る。特に、幾つかの実装では、第2の属性の詳細の量及び/又はレベルは、矢印720でのリクエストによって指定され得る。第2の属性は、例えば、属性の中でもとりわけ、認証システムのユーザプール、認証システムのIDプール、認証システムのユニークリソース識別子、認証システムが配備されるリモートコンピューティングシステムのパーティション、認証システムが配備される地理的領域及び/若しくはデータセンタ、認証システムが関連付けられたアカウント、並びに/又は認証システムと関連付けられた英数字の識別子を識別し得る。
ブロック722での属性の判定に基づいて、又はそれに応答して、リモートコンピューティングシステム600は、矢印724によって指し示されるように、第2の属性を発見アプリケーション700へ送信するように構成され得る。矢印724の属性での第2の属性の受信に基づいて、又はそれに応答して、発見アプリケーション700は、図7Bに示される矢印726、ブロック728、及び矢印730によって指し示されるように、第2の属性を格納するように構成され得る。
ブロック722での属性の判定及び/又は矢印730での確認の受信に基づいて、又はそれに応答して、発見アプリケーション700は、第2の属性に基づいて、認証システムにより使用される第2のユニーク識別子を識別するように構成され得る。幾つかの実装では、第2のユニーク識別子は、第2の属性によって明示的に述べられ得る。例えば、第2の属性の内の1つは、第2のユニーク識別子を構成する英数字の文字列を表明し得る。他の実装では、第2のユニーク識別子は、事前定義されたフォーマットに従って第2の属性の内の2つ以上を組み合わせることによって生成又は組み立てられ得る。例えば、AMAZON WEB SERVICES(登録商標)の場合、事前定義されたフォーマットは、上で定義されたように、“arn:partition:service_name:region:account:alphanumeric_id”であり得る。したがって、発見アプリケーション700は、ユニークリソース識別子を構成するフィールドの各々をその中で識別するために、第2の属性を解析するように構成され得る。
ブロック732で第2のユニーク識別子を識別することに基づいて、又はそれに応答して、発見アプリケーション700は、ブロック734によって指し示されるように、第1のユニーク識別子が第2のユニーク識別子と一致すると判定するように構成され得る。そのために、発見アプリケーション700は、永続ストレージ702から、少なくとも第1のユニーク識別子を定義する構成アイテムを検索するように構成され得る。発見アプリケーション700は、第1のユニーク識別子を第2のユニーク識別子とその後比較し得、比較に基づいて、2つが同じであるか、それとも異なるかを判定し得る。言い換えれば、発見アプリケーション700は、第1のコンピューティングリソースによって使用される認証システムが、矢印720~ブロック732の動作によって発見された認証システムと同じであるか否かを判定し得る。
ブロック736で第1及び第2のユニーク識別子が一致すると判定することに基づいて、又はそれに応答して、発見アプリケーション700は、ブロック736によって指し示されるように、第1のコンピューティングリソースと認証システムとの間のマッピングを生成するように構成され得る。マッピングは、第1のコンピューティングリソースが第1のコンピューティングリソースへのアクセスを制御するために認証システムを利用することを指し示し得る。マッピングは、第1のコンピューティングリソース及び認証システムの各々をノードとして説明するために、発見アプリケーション700によって(又は後の時点で別のアプリケーションによって)視覚的に表示され得る。これらのノードは、第1のコンピューティングリソースへのアクセスが認証システムによって制御されることを示すために、エッジによって相互に接続され得る。ブロック736でマッピングを生成することに基づいて、又はそれに応答して、発見アプリケーション700及び永続ストレージ702は、矢印738、ブロック740、及び矢印742によって指し示されるように、マッピングを格納するように構成され得る。
図7A及び7B、又はそれらの一部の動作は、追加の他のコンピューティングリソース間の関係を識別するために繰り返され得る。すなわち、1つ以上の追加のコンピューティングリソースは、これらの追加のコンピューティングリソースもアクセス制御のために認証システムを使用することを指し示すために、認証システムにマッピングされ得る。同様に、更なるコンピューティングリソースは、第1のコンピューティングリソースにマッピングされ得、したがって、リモートコンピューティングシステム600内のコンピューティングリソースの各々が相互にどのように関連し、調整するかを指し示す大きなマップを生成する。
一例では、第3のコンピューティングリソースは、その属性に基づいて、第1のコンピューティングリソースにマッピングされ得る。第1のコンピューティングリソースは、順に、認証システムにマップされる。したがって、発見アプリケーション700は、第3のコンピューティングリソースが第1のコンピューティングリソースを介して認証システムを使用すると判定し得る。例えば、第3のコンピューティングリソースの属性の内の1つは、第3のコンピューティングリソースへのアクセスが制御又は制限されていること(例えば、第3のコンピューティングリソースにアクセスするためにトークンが必要であること)を指し示し得る。また、第3のコンピューティングリソースは、第1のコンピューティングリソースにマッピングされ得るが、他のコンピューティングリソースにはマッピングされなくてもよい。したがって、発見アプリケーション700は、第1のコンピューティングリソースが第3のコンピューティングリソースへのゲートウェイとして機能すると判定し得、したがって、認証システムはまた、第3のコンピューティングリソースへのアクセスを間接的に制御する。特に、このことは、リモートコンピューティングシステム600内の他のコンピューティングリソースへのインターフェースを提供するAPIゲートウェイリソース618の場合に当てはまり得る。
幾つかの実施形態では、認証システムは、第1のコンピューティングリソースとは独立して発見され得る。すなわち、第1の属性内で第1のユニークリソース識別子を見つけること以外のイベントが、認証システムの発見を発動し得る。例えば、ユーザは、認証システムの第2のユニークリソース識別子を手動で提供し得、したがって、認証システムの発見及びマッピングを開始する。こうした幾つかの場合、認証システムは、第1のコンピューティングリソースの前に発見され得る。したがって、第1及び第2のユニーク識別子が一致するか否かを判定するために、第2の属性を表す構成アイテムは、第1のユニークリソース識別子がそれによって表されるか否かを判定するために検索及び解析され得る。言い換えれば、コンピューティングリソースの属性は、多くの異なる順序で発見され得る。しかしながら、これらの属性は永続ストレージ内に構成アイテムとして格納されるため、それらは、追加のコンピューティングリソースが発見されると、接続のために検索及び解析され得る。
更に、幾つかの場合、認証システムにマッピングされる第1のコンピューティングリソースは、代替的に、リモートコンピューティングシステム600の外部に配備され得る。すなわち、発見アプリケーション700は、複数の異なるコンピューティングシステムを発見及びマッピングするように構成され得る。したがって、第1のコンピューティングリソースがリモートコンピューティングシステム600内に配備されていない場合でも、その属性は、それにもかかわらず、第1のコンピューティングリソースによって使用される認証システムのユニークリソース識別子を含み得、又は指し示し得る。例えば、第1のコンピューティングリソースは、AMAZON COGNITO(登録商標)認証システムを利用しながら、MICROSOFT(登録商標)AZURE(登録商標)によってホストされ得る。判定されるマッピングは、したがって、これらの2つの異なるリモートコンピューティングシステムとそれらの中の特定の個々のコンポーネントとの間の関係を指し示し得る。
VIII. 追加の動作例
図8は、例示的実施形態を説明するフローチャートである。図8により説明されるプロセスは、コンピューティングデバイス100等のコンピューティングデバイス、及び/又はサーバクラスタ200等のコンピューティングデバイスのクラスタによって実行され得る。しかしながら、プロセスは、他のタイプのデバイス又はデバイスサブシステムによって実行され得る。例えば、プロセスは、ラップトップ又はタブレットデバイス等のポータブルコンピュータによって実行され得る。
図8の実施形態は、それに示されている機構の内の何れか1つ以上を削除することによって簡略化され得る。更に、これらの実施形態は、以前の図の何れかの機構、態様、及び/又は実装と組み合わされ得、又は本明細書で他の方法で説明され得る。
ブロック800は、発見アプリケーションによって、及びリモートコンピューティングシステムから、管理されるネットワークに代わってリモートコンピューティングシステムによって提供される複数のコンピューティングリソースの内の第1のコンピューティングリソースの第1の属性を取得することを含み得る。第1の属性は、リモートコンピューティングシステムによって提供され第1のコンピューティングリソースによって利用される認証システムと関連付けられた第1のユニークリソース識別子を指し示し得る。
ブロック802は、発見アプリケーションによって、及びリモートコンピューティングシステムから、認証システムの第2の属性を取得することを含み得る。第2の属性は、認証システムによって使用される第2のユニークリソース識別子を指し示し得る。
ブロック804は、発見アプリケーションによって、第1のユニークリソース識別子が第2のユニークリソース識別子と一致すると判定することを含み得る。
ブロック806は、第1のユニークリソース識別子が第2のユニークリソース識別子と一致することに基づいて、発見アプリケーションによって、第1のコンピューティングリソースへのアクセスが認証システムによって制御されることを指し示すように第1のコンピューティングリソースと認証システムとの間のマッピングを生成することを含み得る。
ブロック808は、管理されるネットワークに代わってデータを格納するように構成された永続ストレージ内に、マッピングを1つ以上の構成アイテムとして格納することを含み得る。
幾つかの実施形態では、認証システムの第2の属性は、(i)認証システムが配備されるリモートコンピューティングシステムのパーティション、(ii)認証システムのサービス名、(iii)認証システムが存在する地理的領域、(iv)認証システムと関連付けられたアカウント、又は(v)認証システムと関連付けられた英数字の識別子の内の1つ以上を含み得る。発見アプリケーションは、所定のフォーマットに従って第2の属性の内の2つ以上を組み合わせることによって、第2のユニークリソース識別子を取得し得る。
幾つかの実施形態では、第2の属性は、認証システムのユーザプールを識別し得る。ユーザプールは、複数のコンピューティングリソースの内の1つ以上のコンピューティングリソースにアクセスするために使用可能な複数のサービス識別子を定義し得る。第1のコンピューティングリソースは、第1のコンピューティングリソースへのアクセスを制御するためにユーザプールを利用し得る。マッピングは、認証システムのユーザプールを更に指し示し得る。
幾つかの実施形態では、第2の属性は、認証システムのIDプールを識別し得る。IDプールは、複数のコンピューティングリソースの内の1つ以上の他のコンピューティングリソースへのアクセスを提供するために使用可能な1つ以上の一時的なリソースクレデンシャルを定義し得る。マッピングは、認証システムのIDプールを更に指し示し得る。
幾つかの実施形態では、第1の属性は、第2の属性を取得する前に取得され得る。認証システムの第2の属性を取得することは、第1のユニークリソース識別子を指し示す第1の属性を取得することに応答して、認証システムに対応するエントリポイントを識別することを含み得る。エントリポイントに基づいて、認証システムの第2の属性に対するリクエストはリモートコンピューティングシステムへ送信され得る。第2の属性は、リモートコンピューティングシステムから受信され得る。
幾つかの実施形態では、第1の属性は、第2の属性を取得する前に取得され得る。発見アプリケーションは、第1のユニークリソース識別子のコンテンツを判定し得る。複数のコンピューティングリソースは、複数のタイプのコンピューティングリソースを含み得る。複数のタイプのコンピューティングリソースの各個別のタイプのコンピューティングリソースは、対応するユニークリソース識別子のコンテンツと関連付けられ得る。コンテンツに基づいて、発見アプリケーションは、複数のタイプのコンピューティングリソースを発見するために利用可能な複数の発見パターンから発見パターンを選択し得る。選択された発見パターンは、発見アプリケーションに認証システムの第2の属性を取得させるために実行され得る。
幾つかの実施形態では、第1の属性は、第2の属性を取得する前に取得され得る。第1の属性は、1つ以上の追加の構成アイテムとして永続ストレージ内に格納され得る。第1のユニークリソース識別子が第2のユニークリソース識別子と一致すると判定することは、第2の属性を取得することに応答して、1つ以上のユニークリソース識別子をその中で識別するために1つ以上の追加の構成アイテムを解析することを含み得る。第1のユニークリソース識別子は、1つ以上のユニークリソース識別子内で識別され得る。
幾つかの実施形態では、第2の属性は、第1の属性を取得する前に取得され得る。第1の属性は、1つ以上の追加の構成アイテムとして永続ストレージ内に格納され得る。第1のユニークリソース識別子が第2のユニークリソース識別子と一致すると判定することは、永続ストレージ内に第1の属性を格納することに応答して、1つ以上のユニークリソース識別子をその中で識別するために1つ以上の追加の構成アイテムを解析することを含み得る。第1のユニークリソース識別子は、1つ以上のユニークリソース識別子内で識別され得る。
幾つかの実施形態では、第1の属性は、複数のコンピューティングリソースの内の追加のコンピューティングリソースと関連付けられた第3のユニークリソース識別子を更に指し示し得る。発見アプリケーションは、リモートコンピューティングシステムから、第3のユニークリソース識別子と関連付けられた追加のコンピューティングリソースの第3の属性を取得するように構成され得る。発見アプリケーションはまた、第3の属性に基づいて、追加のコンピューティングリソースが第1のコンピューティングリソースを介して認証システムを利用すると判定するように構成され得る。発見アプリケーションは、追加のコンピューティングリソースへのアクセスを制御するために追加のコンピューティングリソースが第1のコンピューティングリソースを介して認証システムを利用することを指し示すためにマッピングを更新するように更に構成され得る。更新されたマッピングは、永続ストレージ内に格納され得る。
幾つかの実施形態では、第1のコンピューティングリソースは、動的トリガー可能ソフトウェア関数を含み得る。第1の属性は、第1のユニークリソース識別子をその中に含むプログラムコードを含み得る。
幾つかの実施形態では、第1のコンピューティングリソースは、データストレージ構造を含み得る。第1の属性は、(i)第1のユニークリソース識別子を指し示すデータストレージ構造のコンテンツ、又は(ii)第1のユニークリソース識別子を指し示すデータストレージ構造と関連付けられたメタデータを含み得る。
幾つかの実施形態では、第1の属性は、第1のコンピューティングリソースに、複数のコンピューティングリソースの内の別のコンピューティングリソースへのアクセスの実行を呼び出させ、又は該アクセスを提供させるトリガーイベントを含み得る。トリガーイベントの内の少なくとも1つのトリガーイベントは、第1のユニークリソース識別子を指し示し得る。
幾つかの実施形態では、(i)第1の属性又は(ii)第2の属性の内の少なくとも1つを取得することは、(i)1つ以上のHTTPパラメーターを介して、リモートコンピューティングシステムによって提供されるAPIの関数を指定し、(ii)APIと相互作用するための認証クレデンシャルを含むHTTPリクエストを生成することを含み得る。HTTPリクエストは、リモートコンピューティングシステムへ送信され得る。HTTP応答は、リモートコンピューティングシステムから受信され得る。HTTP応答は、関数の出力を含み得る。該出力は、(i)第1の属性又は(ii)第2の属性の内の少なくとも1つを識別し得る。
IX. 結論
本開示は、様々な態様の例証として意図されている、この出願で説明する特定の実施形態に関して限定されるべきではない。当業者には明らかであるように、その範囲から逸脱することなく、多くの修正及び変形がなされ得る。本明細書に説明したものに加えて、開示の範囲内の機能的に同等の方法及び装置は、前述の説明から当業者には明らかであろう。そうした修正及び変形は、添付の特許請求の範囲内にあることが意図されている。
上記の詳細な説明は、添付の図を参照して、開示されたシステム、デバイス、及び方法の様々な機構及び動作を説明している。本明細書及び図で説明した例示的実施形態は、限定することを意味しない。本明細書に提示される主題の範囲から逸脱することなく、他の実施形態が利用され得、他の変更がなされ得る。本明細書に一般的に説明され、図に説明されるような本開示の態様が、多種多様な異なる構成で配置され得、置換され得、組み合され得、分離され得、設計され得ることは容易に理解されるであろう。
図中のメッセージフロー図、シナリオ、及びフローチャートの内の何れか又は全てに関して、本明細書で論じたように、各ステップ、ブロック、及び/又は通信は、例示的実施形態に従った情報の処理及び/又は情報の送信を表し得る。代替的実施形態は、これらの例示的実施形態の範囲内に含まれる。これらの代替的実施形態では、例えば、ステップ、ブロック、送信、通信、リクエスト、応答、及び/又はメッセージとして説明される動作は、関係する機能に依存して、実質的に同時又は逆の順序を含め、示された又は論じられた順序とは異なる順序で実行され得る。更に、より多くの又はより少ないブロック及び/又は動作は、本明細書で論じられるメッセージフロー図、シナリオ、及びフローチャートの内の何れかと共に使用され得、これらのメッセージフロー図、シナリオ、及びフローチャートは、部分的に又は全体的に相互に組み合され得る。
情報の処理を表すステップ又はブロックは、本明細書で説明する方法又は技術の具体的な論理機能を実施するように構成され得る回路に対応し得る。代替的又は追加的に、情報の処理を表すステップ又はブロックは、モジュール、セグメント、又はプログラムコードの一部(関連データを含む)に対応し得る。プログラムコードは、方法又は技術において具体的な論理演算又は活動を実装するためにプロセッサにより実行可能な1つ以上の命令を含み得る。プログラムコード及び/又は関連データは、RAM、ディスクドライブ、ソリッドステートドライブ、又は別のストレージ媒体を含むストレージデバイス等の任意のタイプのコンピュータ可読媒体上に格納され得る。
コンピュータ可読媒体はまた、レジスタメモリ及びプロセッサキャッシュのような短期間にデータを格納するコンピュータ可読媒体等の非一時的コンピュータ可読媒体を含み得る。コンピュータ可読媒体は、プログラムコード及び/又はデータをより長期間格納する非一時的コンピュータ可読媒体を更に含み得る。したがって、コンピュータ可読媒体は、例えば、ROM、光又は磁気ディスク、ソリッドステートドライブ、コンパクトディスクリードオンリーメモリ(CD-ROM)のような二次的又は永続的な長期ストレージを含み得る。コンピュータ可読媒体はまた、その他の任意の揮発性又は不揮発性のストレージシステムであり得る。コンピュータ可読媒体は、例えば、コンピュータ可読ストレージ媒体、又は有形ストレージデバイスとみなされ得る。
更に、1つ以上の情報送信を表すステップ又はブロックは、同じ物理デバイス内のソフトウェア及び/又はハードウェアモジュール間の情報送信に対応し得る。しかしながら、その他の情報送信は、異なる物理デバイス内のソフトウェアモジュール及び/又はハードウェアモジュール間であり得る。
図に示される特定の配置は、限定的とみなされるべきではない。他の実施形態は、所与の図に示される各要素の内の多少を含み得ることを理解すべきである。更に、説明された要素の内の幾つかは、組み合わされ得、又は省略され得る。更に、例示的実施形態は、図に説明されない要素を含み得る。
様々な態様及び実施形態が本明細書に開示されているが、他の態様及び実施形態は当業者には明らかであろう。本明細書に開示される様々な態様及び実施形態は、例証を目的とし、限定することを意図せず、真の範囲は、以下の特許請求の範囲によって示される。

Claims (20)

  1. 管理されるネットワークのためにデータを格納するように構成された永続ストレージであって、リモートコンピューティングシステムは、前記管理されるネットワークのために複数のコンピューティングリソースを提供する、前記永続ストレージと、
    発見アプリケーションであって、
    前記リモートコンピューティングシステムから、前記複数のコンピューティングリソースの内の第1のコンピューティングリソースの第1の属性を取得することであって、前記第1の属性は、前記リモートコンピューティングシステムによって提供され前記第1のコンピューティングリソースによって利用される認証システムと関連付けられた第1のユニークリソース識別子を指し示すことと、
    前記リモートコンピューティングシステムから前記認証システムの第2の属性を取得することであって、前記第2の属性は、前記認証システムによって使用される第2のユニークリソース識別子を指し示すことと、
    前記第1のユニークリソース識別子が前記第2のユニークリソース識別子と一致すると判定することと、
    前記第1のユニークリソース識別子が前記第2のユニークリソース識別子と一致することに基づいて、前記第1のコンピューティングリソースへのアクセスが前記認証システムによって制御されることを指し示すように前記第1のコンピューティングリソースと前記認証システムとの間のマッピングを生成することと、
    前記永続ストレージ内に、前記マッピングを1つ以上の構成アイテムとして格納すること
    を含む動作を実施するように構成された前記発見アプリケーションと
    を含む、コンピューティングシステム。
  2. 前記認証システムの前記第2の属性は、(i)前記認証システムが配備される前記リモートコンピューティングシステムのパーティション、(ii)前記認証システムのサービス名、(iii)前記認証システムが存在する地理的領域、(iv)前記認証システムと関連付けられたアカウント、又は(v)前記認証システムと関連付けられた英数字の識別子の内の1つ以上を含み、前記動作は、
    所定のフォーマットに従って前記第2の属性の内の2つ以上を組み合わせることによって前記第2のユニークリソース識別子を取得すること
    を更に含む、請求項1に記載のコンピューティングシステム。
  3. 前記第2の属性は、前記認証システムのユーザプールを識別し、前記ユーザプールは、前記複数のコンピューティングリソースの内の1つ以上のコンピューティングリソースにアクセスするために使用可能な複数のサービス識別子を定義し、前記第1のコンピューティングリソースは、前記第1のコンピューティングリソースへのアクセスを制御するために前記ユーザプールを利用し、前記マッピングは、前記認証システムの前記ユーザプールを更に指し示す、請求項1に記載のコンピューティングシステム。
  4. 前記第2の属性は、前記認証システムのID(identity)プールを識別し、前記IDプールは、前記複数のコンピューティングリソースの内の1つ以上の他のコンピューティングリソースへのアクセスを提供するために使用可能な1つ以上の一時的なリソースクレデンシャルを定義し、前記マッピングは、前記認証システムの前記IDプールを更に指し示す、請求項1に記載のコンピューティングシステム。
  5. 前記第1の属性は、前記第2の属性を取得する前に取得され、前記認証システムの前記第2の属性を取得することは、
    前記第1のユニークリソース識別子を指し示す前記第1の属性を取得することに応答して、前記認証システムに対応するエントリポイントを識別することと、
    前記リモートコンピューティングシステムへ、及び前記エントリポイントに基づいて、前記認証システムの前記第2の属性に対するリクエストを送信することと、
    記リモートコンピューティングシステムから前記第2の属性を受信すること
    を含む、請求項1に記載のコンピューティングシステム。
  6. 前記第1の属性は、前記第2の属性を取得する前に取得され、前記動作は、
    前記第1のユニークリソース識別子のコンテンツを判定することであって、前記複数のコンピューティングリソースは複数のタイプのコンピューティングリソースを含み、前記複数のタイプのコンピューティングリソースの各個別のタイプのコンピューティングリソースは、対応するユニークリソース識別子のコンテンツと関連付けられることと、
    前記コンテンツに基づいて、前記複数のタイプのコンピューティングリソースを発見するために利用可能な複数の発見パターンから発見パターンを選択することと、
    前記発見アプリケーションに前記認証システムの前記第2の属性を取得させるために、選択された前記発見パターンを実行すること
    を更に含む、請求項1に記載のコンピューティングシステム。
  7. 前記第1の属性は、前記第2の属性を取得する前に取得され、前記第1の属性は、1つ以上の追加の構成アイテムとして前記永続ストレージ内に格納され、前記第1のユニークリソース識別子が前記第2の属性と一致すると判定することは、
    前記第2の属性を取得することに応答して、1つ以上のユニークリソース識別子をその中で識別するために前記1つ以上の追加の構成アイテムを解析することと、
    前記1つ以上のユニークリソース識別子内の前記第1のユニークリソース識別子を識別すること
    を含む、請求項1に記載のコンピューティングシステム。
  8. 前記第2の属性は、前記第1の属性を取得する前に取得され、前記第1の属性は、1つ以上の追加の構成アイテムとして前記永続ストレージ内に格納され、前記第1のユニークリソース識別子が前記第2のユニークリソース識別子と一致すると判定することは、
    前記第1の属性を前記永続ストレージ内に格納することに応答して、1つ以上のユニークリソース識別子をその中で識別するために前記1つ以上の追加の構成アイテムを解析することと、
    前記1つ以上のユニークリソース識別子内の前記第1のユニークリソース識別子を識別すること
    を含む、請求項1に記載のコンピューティングシステム。
  9. 前記第1の属性は、前記複数のコンピューティングリソースの内の追加のコンピューティングリソースと関連付けられた第3のユニークリソース識別子を更に指し示し、前記動作は、
    前記リモートコンピューティングシステムから、前記第3のユニークリソース識別子と関連付けられた前記追加のコンピューティングリソースの第3の属性を取得することと、
    前記第3の属性に基づいて、前記追加のコンピューティングリソースが前記第1のコンピューティングリソースを介して前記認証システムを利用すると判定することと、
    前記追加のコンピューティングリソースへのアクセスを制御するために前記追加のコンピューティングリソースが前記第1のコンピューティングリソースを介して前記認証システムを利用することを指し示すために前記マッピングを更新することと、
    更新された前記マッピングを前記永続ストレージ内に格納すること
    を更に含む、請求項1に記載のコンピューティングシステム。
  10. 前記第1のコンピューティングリソースは、動的トリガー可能ソフトウェア関数を含み、前記第1の属性は、前記第1のユニークリソース識別子をその中に含むプログラムコードを含む、請求項1に記載のコンピューティングシステム。
  11. 前記第1のコンピューティングリソースはデータストレージ構造を含み、前記第1の属性は、(i)前記第1のユニークリソース識別子を指し示す前記データストレージ構造のコンテンツ、又は(ii)前記第1のユニークリソース識別子を指し示す前記データストレージ構造と関連付けられたメタデータを含む、請求項1に記載のコンピューティングシステム。
  12. 前記第1の属性は、前記第1のコンピューティングリソースに、前記複数のコンピューティングリソースの内の別のコンピューティングリソースへのアクセスの実行を呼び出させ、又は前記アクセスを提供させるトリガーイベントを含み、前記トリガーイベントの内の少なくとも1つのトリガーイベントは、前記第1のユニークリソース識別子を指し示す、請求項1に記載のコンピューティングシステム。
  13. (i)前記第1の属性又は(ii)前記第2の属性の内の少なくとも1つを取得することは、
    (i)1つ以上のハイパーテキスト転送プロトコル(HTTP)パラメーターを介して、前記リモートコンピューティングシステムによって提供されるアプリケーションプログラミングインターフェース(API)の関数を指定し、(ii)前記APIと相互作用するための認証クレデンシャルを含むHTTPリクエストを生成することと、
    前記HTTPリクエストを前記リモートコンピューティングシステムへ送信することと、
    前記リモートコンピューティングシステムから、前記関数の出力を含むHTTP応答を受信することであって、前記出力は、(i)前記第1の属性又は(ii)前記第2の属性の内の少なくとも1つを識別すること
    を含む、請求項1に記載のコンピューティングシステム。
  14. 発見アプリケーションによって、及びリモートコンピューティングシステムから、管理されるネットワークのために前記リモートコンピューティングシステムによって提供される複数のコンピューティングリソースの内の第1のコンピューティングリソースの第1の属性を取得することであって、前記第1の属性は、前記リモートコンピューティングシステムによって提供され前記第1のコンピューティングリソースによって利用される認証システムと関連付けられた第1のユニークリソース識別子を指し示すことと、
    前記発見アプリケーションによって、及び前記リモートコンピューティングシステムから、前記認証システムの第2の属性を取得することであって、前記第2の属性は、前記認証システムによって使用される第2のユニークリソース識別子を指し示すことと、
    前記発見アプリケーションによって、前記第1のユニークリソース識別子が前記第2のユニークリソース識別子と一致すると判定することと、
    前記第1のユニークリソース識別子が前記第2のユニークリソース識別子と一致することに基づいて、前記発見アプリケーションによって、前記第1のコンピューティングリソースへのアクセスが前記認証システムによって制御されることを指し示すように前記第1のコンピューティングリソースと前記認証システムとの間のマッピングを生成することと、
    前記管理されるネットワークのためにデータを格納するように構成された永続ストレージ内に、前記マッピングを1つ以上の構成アイテムとして格納すること
    を含む、コンピュータ実装方法。
  15. 前記認証システムの前記第2の属性は、(i)前記認証システムが配備される前記リモートコンピューティングシステムのパーティション、(ii)前記認証システムのサービス名、(iii)前記認証システムが存在する地理的領域、(iv)前記認証システムと関連付けられたアカウント、又は(v)前記認証システムと関連付けられた英数字の識別子の内の1つ以上を含み、前記方法は、
    所定のフォーマットに従って前記第2の属性の内の2つ以上を組み合わせることによって、前記第2のユニークリソース識別子を取得すること
    を更に含む、請求項14に記載のコンピュータ実装方法。
  16. 前記第1の属性は、前記第2の属性を取得する前に取得され、前記認証システムの前記第2の属性を取得することは、
    前記第1のユニークリソース識別子を指し示す前記第1の属性を取得することに応答して、前記認証システムに対応するエントリポイントを識別することと、
    前記リモートコンピューティングシステムへ、及び前記エントリポイントに基づいて、前記認証システムの前記第2の属性に対するリクエストを送信することと、
    前記リモートコンピューティングシステムから前記第2の属性を受信すること
    を含む、請求項14に記載のコンピュータ実装方法。
  17. 前記第1の属性は、前記第2の属性を取得する前に取得され、前記動作は、
    前記第1のユニークリソース識別子のコンテンツを判定することであって、前記複数のコンピューティングリソースは複数のタイプのコンピューティングリソースを含み、前記複数のタイプのコンピューティングリソースの各個別のタイプのコンピューティングリソースは、対応するユニークリソース識別子のコンテンツと関連付けられることと、
    前記コンテンツに基づいて、前記複数のタイプのコンピューティングリソースを発見するために利用可能な複数の発見パターンから発見パターンを選択することと、
    前記発見アプリケーションに前記認証システムの前記第2の属性を取得させるために、選択された前記パターンを実行すること
    を更に含む、請求項14に記載のコンピュータ実装方法。
  18. 前記第1の属性は、前記第2の属性を取得する前に取得され、前記第1の属性は、1つ以上の追加の構成アイテムとして前記永続ストレージ内に格納され、前記第1のユニークリソース識別子が前記第2のユニークリソース識別子と一致すると判定することは、
    前記第2の属性を取得することに応答して、1つ以上のユニークリソース識別子をその中で識別するために前記1つ以上の追加の構成アイテムを解析することと、
    前記1つ以上のユニークリソース識別子内の前記第1のユニークリソース識別子を識別すること
    を含む、請求項14に記載のコンピュータ実装方法。
  19. 前記第2の属性は、前記第1の属性を取得する前に取得され、前記第1の属性は、1つ以上の追加の構成アイテムとして前記永続ストレージ内に格納され、前記第1のユニークリソース識別子が前記第2のユニークリソース識別子と一致すると判定することは、
    前記第1の属性を前記永続ストレージ内に格納することに応答して、1つ以上のユニークリソース識別子をその中で識別するために前記1つ以上の追加の構成アイテムを解析することと、
    前記1つ以上のユニークリソース識別子内の前記第1のユニークリソース識別子を識別すること
    を含む、請求項14に記載のコンピュータ実装方法。
  20. リモートコンピューティングシステムから、管理されるネットワークのために前記リモートコンピューティングシステムによって提供される複数のコンピューティングリソースの内の第1のコンピューティングリソースの第1の属性を取得することであって、前記第1の属性は、前記リモートコンピューティングシステムによって提供され前記第1のコンピューティングリソースによって利用される認証システムと関連付けられた第1のユニークリソース識別子を指し示すことと、
    前記リモートコンピューティングシステムから前記認証システムの第2の属性を取得することであって、前記第2の属性は、前記認証システムによって使用される第2のユニークリソース識別子を指し示すことと、
    前記第1のユニークリソース識別子が前記第2のユニークリソース識別子と一致すると判定することと、
    前記第1のユニークリソース識別子が前記第2のユニークリソース識別子と一致することに基づいて、前記第1のコンピューティングリソースへのアクセスが前記認証システムによって制御されることを指し示すように、前記第1のコンピューティングリソースと前記認証システムとの間のマッピングを生成することと、
    前記管理されるネットワークのためにデータを格納するように構成された永続ストレージ内に、前記マッピングを1つ以上の構成アイテムとして格納すること
    を含む動作をコンピューティングシステムによって実行されると、前記コンピューティングシステムに実施させるプログラム命令をその上に格納した、非一時的コンピュータ可読媒体。
JP2021575213A 2019-06-19 2020-06-17 クラウドベースの認証、承認、及びユーザ管理サービスの発見及びマッピング Active JP7304442B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/445,984 US11240241B2 (en) 2019-06-19 2019-06-19 Discovery and mapping of a cloud-based authentication, authorization, and user management service
US16/445,984 2019-06-19
PCT/US2020/038140 WO2020257286A1 (en) 2019-06-19 2020-06-17 Discovery and mapping of a cloud-based authentication, authorization, and user management service

Publications (2)

Publication Number Publication Date
JP2022536944A JP2022536944A (ja) 2022-08-22
JP7304442B2 true JP7304442B2 (ja) 2023-07-06

Family

ID=71575780

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021575213A Active JP7304442B2 (ja) 2019-06-19 2020-06-17 クラウドベースの認証、承認、及びユーザ管理サービスの発見及びマッピング

Country Status (6)

Country Link
US (1) US11240241B2 (ja)
EP (1) EP3987749B1 (ja)
JP (1) JP7304442B2 (ja)
KR (1) KR102641847B1 (ja)
AU (1) AU2020296002B2 (ja)
WO (1) WO2020257286A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11936638B2 (en) * 2019-06-28 2024-03-19 Salesforce Inc. Link protocol agents for inter-application communications
US11522864B1 (en) 2019-09-27 2022-12-06 Amazon Technologies, Inc. Secure identity transfer
US11537707B1 (en) * 2019-09-27 2022-12-27 Amazon Technologies, Inc. Secure identity binding
US11442960B2 (en) * 2019-12-17 2022-09-13 Verizon Patent And Licensing Inc. Edge key value store for a distributed platform
US11947659B2 (en) 2020-05-28 2024-04-02 Red Hat, Inc. Data distribution across multiple devices using a trusted execution environment in a mobile device
US11971980B2 (en) 2020-05-28 2024-04-30 Red Hat, Inc. Using trusted execution environments to perform a communal operation for mutually-untrusted devices
US12093371B2 (en) 2020-05-28 2024-09-17 Red Hat, Inc. Data distribution using a trusted execution environment in an untrusted device
US11816461B2 (en) * 2020-06-30 2023-11-14 Paypal, Inc. Computer model management system
US11848924B2 (en) * 2020-10-12 2023-12-19 Red Hat, Inc. Multi-factor system-to-system authentication using secure execution environments
TWI745227B (zh) * 2021-02-01 2021-11-01 國立陽明交通大學 用於進行原始服務端與外地服務端之間的第三方認證的通訊系統及方法
US12088458B1 (en) * 2021-03-10 2024-09-10 Amazon Technologies, Inc. Controller device management of peripheral devices
US11934893B2 (en) 2021-07-06 2024-03-19 Pure Storage, Inc. Storage system that drives an orchestrator based on events in the storage system
US11816356B2 (en) 2021-07-06 2023-11-14 Pure Storage, Inc. Container orchestrator-aware storage system
US11941266B2 (en) 2021-10-20 2024-03-26 Samsung Electronics Co., Ltd. Resource isolation in computational storage devices
US20230141418A1 (en) * 2021-11-10 2023-05-11 Sap Se Application Configuration Based On Resource Identifier
US12113796B2 (en) * 2022-03-30 2024-10-08 Hewlett Packard Enterprise Development Lp Secured data access in virtual data processing
US20240256252A1 (en) * 2023-01-30 2024-08-01 Hewlett Packard Enterprise Development Lp Mapping configuration data of microservices, applications, and services
US12034726B1 (en) * 2023-05-31 2024-07-09 Cloudflare, Inc. Logging access types based on inserting tenant control headers into requests
KR102675756B1 (ko) * 2023-11-15 2024-06-18 (주)뉴젠솔루션 데이터의 외부 유출을 방지하는 시스템, 방법, 및 컴퓨터 프로그램

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009122953A (ja) 2007-11-14 2009-06-04 Nippon Telegr & Teleph Corp <Ntt> 属性情報開示システム、属性情報開示方法および属性情報開示プログラム
JP2017538209A (ja) 2014-11-14 2017-12-21 コンヴィーダ ワイヤレス, エルエルシー 許可ベースのリソースおよびサービス発見
US20180123940A1 (en) 2016-10-31 2018-05-03 Servicenow, Inc. System and Method for Identifying Components of a Computer Network Based on Component Connections
JP2018529245A (ja) 2015-08-10 2018-10-04 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 認可処理方法およびデバイス

Family Cites Families (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5978594A (en) 1994-09-30 1999-11-02 Bmc Software, Inc. System for managing computer resources across a distributed computing environment by first reading discovery information about how to determine system resources presence
US6321229B1 (en) 1999-02-26 2001-11-20 Hewlett-Packard Company Method and apparatus for using an information model to organize an information repository into a hierarchy of information
US6816898B1 (en) 2000-08-16 2004-11-09 Proactivenet, Inc. Interfacing external metrics into a performance management system
US6895586B1 (en) 2000-08-30 2005-05-17 Bmc Software Enterprise management system and method which includes a common enterprise-wide namespace and prototype-based hierarchical inheritance
US7027411B1 (en) 2000-10-31 2006-04-11 Hewlett-Packard Development Company, L.P. Method and system for identifying and processing changes to a network topology
US6944630B2 (en) 2000-11-22 2005-09-13 Bmc Software Database management system and method which monitors activity levels and determines appropriate schedule times
US7089245B1 (en) 2001-08-31 2006-08-08 Bmc Software, Inc. Service desk data transfer interface
US6799189B2 (en) 2001-11-15 2004-09-28 Bmc Software, Inc. System and method for creating a series of online snapshots for recovery purposes
US7877783B1 (en) 2001-11-15 2011-01-25 Bmc Software, Inc. System and method for secure communications with a remote software program
AU2003212608A1 (en) 2002-03-01 2003-09-16 Bmc Software, Inc. System and method for assessing and indicating the health of components
US7020706B2 (en) 2002-06-17 2006-03-28 Bmc Software, Inc. Method and system for automatically updating multiple servers
US7865931B1 (en) * 2002-11-25 2011-01-04 Accenture Global Services Limited Universal authorization and access control security measure for applications
US7925981B2 (en) 2003-05-14 2011-04-12 Hewlett-Packard Development Company, L.P. Systems and methods for managing web services via a framework of interfaces
US7945860B2 (en) 2003-05-14 2011-05-17 Hewlett-Packard Development Company, L.P. Systems and methods for managing conversations between information technology resources
US7133884B1 (en) 2003-11-26 2006-11-07 Bmc Software, Inc. Unobtrusive point-in-time consistent copies
US7392300B2 (en) 2004-01-08 2008-06-24 Hewlett-Packard Development Company, L.P. Method and system for modelling a communications network
US7933927B2 (en) 2004-11-17 2011-04-26 Bmc Software, Inc. Method and apparatus for building index of source data
EP1667360A1 (en) 2004-12-06 2006-06-07 BMC Software, Inc. Generic discovery for computer networks
US7941506B2 (en) 2004-12-06 2011-05-10 Bmc Software, Inc. User interface for network discovery operations
US9137115B2 (en) 2004-12-06 2015-09-15 Bmc Software, Inc. System and method for resource reconciliation in an enterprise management system
AU2005318955A1 (en) 2004-12-21 2006-06-29 Bmc Software, Inc. System and method for business service management and building business service model
US7716353B2 (en) 2005-12-21 2010-05-11 Bmc Software, Inc. Web services availability cache
US8555287B2 (en) 2006-08-31 2013-10-08 Bmc Software, Inc. Automated capacity provisioning method using historical performance data
US8135685B2 (en) 2006-09-18 2012-03-13 Emc Corporation Information classification
US7685167B2 (en) 2007-01-30 2010-03-23 Bmc Software, Inc. Configuration management database reference instance
US8380749B2 (en) 2009-01-14 2013-02-19 Bmc Software, Inc. MDR federation facility for CMDBf
US8554750B2 (en) 2009-01-15 2013-10-08 Bmc Software, Inc. Normalization engine to manage configuration management database integrity
US8346752B2 (en) 2009-02-03 2013-01-01 Bmc Software, Inc. Software title discovery
US8646093B2 (en) 2009-03-31 2014-02-04 Bmc Software, Inc. Method and system for configuration management database software license compliance
US9122536B2 (en) 2009-12-30 2015-09-01 Bmc Software, Inc. Automating application provisioning for heterogeneous datacenter environments
US9805322B2 (en) 2010-06-24 2017-10-31 Bmc Software, Inc. Application blueprint and deployment model for dynamic business service management (BSM)
US8712979B2 (en) 2010-03-26 2014-04-29 Bmc Software, Inc. Statistical identification of instances during reconciliation process
US9467344B2 (en) 2010-03-26 2016-10-11 Bmc Software, Inc. Mechanism to display graphical IT infrastructure using configurable smart navigation
US8832652B2 (en) 2010-03-26 2014-09-09 Bmc Software, Inc. Method for customizing software applications
US8380645B2 (en) 2010-05-27 2013-02-19 Bmc Software, Inc. Method and system to enable inferencing for natural language queries of configuration management databases
US8402127B2 (en) 2010-06-28 2013-03-19 Bmc Software, Inc. System and method for offering virtual private clouds within a public cloud environment
US8818994B2 (en) 2011-06-27 2014-08-26 Bmc Software, Inc. Mobile service context
US8745040B2 (en) 2011-06-27 2014-06-03 Bmc Software, Inc. Service context
US8907988B2 (en) 2011-06-30 2014-12-09 Bmc Software, Inc. Systems and methods for displaying and viewing data models
US9015188B2 (en) 2011-09-28 2015-04-21 Bmc Software, Inc. Methods and apparatus for monitoring execution of a database query program
US8812539B2 (en) 2012-03-31 2014-08-19 Bmc Software, Inc. Unique attribute constraints for versioned database objects
US9122552B2 (en) 2012-06-29 2015-09-01 Bmc Software, Inc. Hybrid cloud infrastructures
US9631934B2 (en) 2012-10-23 2017-04-25 Bmc Software, Inc. Management of annotated location aware assets
US9645833B2 (en) 2012-12-31 2017-05-09 Bmc Software, Inc. Additive independent object modification
US9317327B2 (en) 2013-02-28 2016-04-19 Bmc Software, Inc. Computing infrastructure planning
US9158799B2 (en) 2013-03-14 2015-10-13 Bmc Software, Inc. Storing and retrieving context sensitive data in a management system
US9613070B2 (en) 2013-03-15 2017-04-04 Bmc Software, Inc. Multi-entity normalization
US9098322B2 (en) 2013-03-15 2015-08-04 Bmc Software, Inc. Managing a server template
US9608931B2 (en) 2013-05-28 2017-03-28 Accenture Global Services Limited Migration assessment for cloud computing platforms
US9654473B2 (en) 2013-06-28 2017-05-16 Bmc Software, Inc. Authentication proxy agent
US9659051B2 (en) 2014-12-22 2017-05-23 Bladelogic Inc. Enforcing referential integrity for object data documents
US9535737B2 (en) 2015-01-30 2017-01-03 Bladelogic, Inc. Dynamic virtual port provisioning
GB2537601B (en) * 2015-04-14 2017-12-27 Avecto Ltd Computer device and method for isolating untrusted content on a clipboard
US10802835B2 (en) * 2016-12-15 2020-10-13 Nutanix, Inc. Rule-based data protection
US10972444B1 (en) * 2017-04-18 2021-04-06 Amazon Technologies, Inc. Mapping account information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009122953A (ja) 2007-11-14 2009-06-04 Nippon Telegr & Teleph Corp <Ntt> 属性情報開示システム、属性情報開示方法および属性情報開示プログラム
JP2017538209A (ja) 2014-11-14 2017-12-21 コンヴィーダ ワイヤレス, エルエルシー 許可ベースのリソースおよびサービス発見
JP2018529245A (ja) 2015-08-10 2018-10-04 ホアウェイ・テクノロジーズ・カンパニー・リミテッド 認可処理方法およびデバイス
US20180123940A1 (en) 2016-10-31 2018-05-03 Servicenow, Inc. System and Method for Identifying Components of a Computer Network Based on Component Connections

Also Published As

Publication number Publication date
US20200403994A1 (en) 2020-12-24
WO2020257286A1 (en) 2020-12-24
EP3987749A1 (en) 2022-04-27
AU2020296002B2 (en) 2023-02-23
US11240241B2 (en) 2022-02-01
KR102641847B1 (ko) 2024-02-27
KR20220024758A (ko) 2022-03-03
AU2020296002A1 (en) 2022-01-27
JP2022536944A (ja) 2022-08-22
EP3987749B1 (en) 2023-01-25

Similar Documents

Publication Publication Date Title
JP7304442B2 (ja) クラウドベースの認証、承認、及びユーザ管理サービスの発見及びマッピング
US11329887B2 (en) Device and service discovery across multiple network types
US10931774B2 (en) Discovery and service mapping of application programming interface proxies
US11611489B2 (en) Functional discovery and mapping of serverless resources
JP7291854B2 (ja) サービス統合としてのソフトウェアのコードレス仕様
US10749889B2 (en) Rule-based remediation of vulnerabilities in a managed network
US10972435B2 (en) Dynamic discovery of executing applications
US20200287808A1 (en) Splitting network discovery payloads based on degree of relationships between nodes
US10708755B2 (en) Discovery and service mapping of serverless resources
US11108647B2 (en) Service mapping based on discovered keywords
US20200351147A1 (en) Descriptor architecture for a remote network management platform
KR20240028499A (ko) 단일 유형 컴퓨팅 시스템에서의 다중 유형 사용자들에 대한 지원
US10708753B2 (en) Discovery and service mapping of serverless resources
JP2024106320A (ja) プラットフォームインテリジェンスの設定および展開のための統合フレームワーク

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230125

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230131

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230330

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230606

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230626

R150 Certificate of patent or registration of utility model

Ref document number: 7304442

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150