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

JP7291854B2 - サービス統合としてのソフトウェアのコードレス仕様 - Google Patents

サービス統合としてのソフトウェアのコードレス仕様 Download PDF

Info

Publication number
JP7291854B2
JP7291854B2 JP2022517713A JP2022517713A JP7291854B2 JP 7291854 B2 JP7291854 B2 JP 7291854B2 JP 2022517713 A JP2022517713 A JP 2022517713A JP 2022517713 A JP2022517713 A JP 2022517713A JP 7291854 B2 JP7291854 B2 JP 7291854B2
Authority
JP
Japan
Prior art keywords
remote network
description
integration point
integration
computing
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
JP2022517713A
Other languages
English (en)
Other versions
JP2022548721A (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 JP2022548721A publication Critical patent/JP2022548721A/ja
Application granted granted Critical
Publication of JP7291854B2 publication Critical patent/JP7291854B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/77Software metrics
    • 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/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • 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/54Interprogram communication
    • 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/54Interprogram communication
    • G06F9/547Remote procedure calls [RPC]; Web services
    • 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

Landscapes

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

Description

クラウドコンピューティングプロバイダは、コンピューティングサービス(例えば、データベース、仮想マシン、ソフトウェアアプリケーション、及び/又はその他のサービス)を、静的に又はオンデマンドでユーザがリモートで利用することを可能にし得る。典型的には、これらのコンピューティングサービスは、クラウドコンピューティングプロバイダが提供する統合ポイントを介してアクセスされ得る。ユーザと統合ポイントとの間の相互作用は、インターネットを介して発生し得る。
例示的なユーザは企業であり得る。企業は、ファイル共有、ワークフロー管理、及びデータベース計画等の動作をサポートするために、コンピューティングサービスを使用し得る。クラウドコンピューティングプロバイダのコンピューティングサービスを使用することによって、企業はコンピューティングサービスの開発及び/又は保守に関連するコストを回避又は削減し得る。更に、企業のニーズの変化に応じて、企業は、追加の動作をサポートするために、クラウドコンピューティングプロバイダが提供する新たなコンピューティングサービス又は様々なコンピューティングサービスを利用し得る。
管理されたネットワークは、その動作をサポートするために様々なコンピューティングサービスを使用し得る。時折、これらのコンピューティングサービスは、クラウドコンピューティングプロバイダによって“サービスとしてのソフトウェア”(“SaaS”としても知られ得る)の形式で提供される。SaaSパラダイムの下では、クラウドコンピューティングプロバイダは、コンピューティングサービスを実行し、管理されたネットワークがコンピューティングサービスにリモートでアクセスし得るアプリケーションプログラミングインターフェース(API)エンドポイント等の統合ポイントをその後公開するために必要なハードウェア/ソフトウェアを提供する。
管理されたネットワークは、クラウドコンピューティングプロバイダによって提供される数千とは言わないまでも数百のコンピューティングサービスを使用し得る。したがって、管理されたネットワークがこれらのコンピューティングサービスの消費を監視することは興味深いことであり得る。リモートネットワーク管理プラットフォームは、管理されたネットワーク内で動作するコンピューティングサービスについての情報を収集するように既に構成され得るので、このタスクに特に適し得る。クラウドコンピューティングサービスの消費情報を取得するために、リモートネットワーク管理プラットフォームは、クラウドコンピューティングプロバイダにより提供される統合ポイントを介して、特定のコンピューティングサービスに対応する消費情報をリクエストし得る。応答を受信すると、リモートネットワーク管理プラットフォームは消費情報をデータベース内に格納し得る。この情報は、情報技術サービス及び運用管理、ソフトウェア資産管理、並びに/又はその他の様々なネットワークサービス及び運用の基礎としてその後使用され得る。
それでも、新たなコンピューティングサービスと相互作用するようにリモートネットワーク管理プラットフォームを構成することは困難であり得る。コンピューティングサービスは個別の構成の詳細をしばしば有するので、新たなコンピューティングサービスに対するサポートを追加するには、アプリケーション開発者のチームが、これらの個別の構成の詳細をリモートネットワーク管理プラットフォームに組み込むカスタムソフトウェアを創出することを伴い得る。開発プロセスは厳密な統合テストを伴い得るため、これには数週間又は数か月かかり得る。また、リモートネットワーク管理プラットフォームが幾つかの新たなコンピューティングサービスと相互作用する場合、プロセスは甚だしい時間を消費し得る。
本開示は、これら及びその他の問題に対処し得るリモートネットワーク管理プラットフォームへの改善を提供する。具体的には、リモートネットワーク管理プラットフォームは、リモートネットワーク管理プラットフォームがクラウドコンピューティングプロバイダにより提供されるコンピューティングサービスと容易に統合することを可能にするコンピューティングサービスニュートラル(CSN)クラウド統合アプリケーションを含み得る。実行中、CSNクラウド統合アプリケーションには、管理されたネットワーク又は別のサービスにより提供される仕様からのデータがポピュレートされる。こうしたデータは、1つ以上のコンピューティングサービスに対する個別の構成の詳細を含み得る。有利なことに、管理されたネットワークが新たなコンピューティングサービスを統合した場合、リモートネットワーク管理プラットフォームへの追加のソフトウェアの更新は必要なくてもよい。むしろ、管理されたネットワークは、例えば、グラフィカルユーザインターフェース(GUI)を介して仕様を単に更新し得、CSNクラウド統合アプリケーションはそれに応じて再構築され得る。このフレームワークを使用すると、新たなコンピューティングサービスを統合するためのサポートは、リモートネットワーク管理プラットフォームに迅速に追加され得、これらの新たなコンピューティングサービスにより提供される動作を企業が迅速に監視することが可能である。その他の利点も可能である。
したがって、第1の例示的実施形態は、管理されたネットワークに専用の計算インスタンスを含み得る。計算インスタンスは永続ストレージを含み得、永続ストレージは、リモートネットワークにより提供されるコンピューティングサービスの表現をデータベーステーブル内に含む。計算インスタンスは、コンピューティングサービスニュートラルクラウド統合アプリケーションに動作を実施させるように構成された1つ以上のプロセッサを更に含み得る。該動作は、リモートネットワークに関連する仕様を取得することを含み得、該仕様は、(i)リモートネットワークに対する統合ポイント、(ii)統合ポイントにより提供される応答と関連付けられたページネーションタイプ、及び(iii)応答に現れるリモートネットワークにより提供されるコンピューティングサービスの記述とデータベーステーブルのフィールドとの間のマッピングを定義する。動作は、リモートネットワークにより提供されるコンピューティングサービスの第1の記述を、統合ポイントを介してリクエスト及び受信することを更に含み得る。動作は、リモートネットワークに対する第2の統合ポイントを、ページネーションタイプ及び統合ポイントから判定することを更に含み得る。動作は、リモートネットワークにより提供されるコンピューティングサービスの第2の記述を、第2の統合ポイントを介してリクエスト及び受信することを更に含み得る。動作は、マッピングに従って第1の記述及び第2の記述をデータベーステーブルのフィールド内に格納することを更に含み得る。
第2の例示的実施形態では、製品は、コンピューティングシステムにより実行されると、コンピューティングシステムに第1の例示的実施形態に従った動作を実施させるプログラム命令をその上に格納した、非一時的コンピュータ可読媒体を含み得る。
第3の例示的実施形態では、コンピューティングシステムは、少なくとも1つのプロセッサ、並びにメモリ及びプログラム命令を含み得る。プログラム命令は、メモリ内に格納され得、少なくとも1つのプロセッサにより実行されると、第1の例示的実施形態に従った動作をコンピューティングシステムに実施させ得る。
第4の例示的実施形態では、システムは、第1の例示的実施形態の動作の各々を実行するための様々な手段を含み得る。
これらの並びにその他の実施形態、態様、利点、及び代替物は、添付の図面を適切に参照して、以下の詳細な説明を読むことによって当業者に明らかになるであろう。更に、この発明の概要並びに本明細書で提供されるその他の説明及び図は、例としてのみ実施形態を説明することを意図しており、したがって、多くの変形が可能である。実例として、構造要素及びプロセスステップは、請求されるような実施形態の範囲内にとどまりながら、再配置され得、組み合わされ得、分散され得、省略され得、さもなければ変更され得る。
例示的実施形態に従ったコンピューティングデバイスの概略図を説明する。 例示的実施形態に従ったサーバデバイスクラスタの概略図を説明する。 例示的実施形態に従ったリモートネットワーク管理アーキテクチャを描写する。 例示的実施形態に従ったリモートネットワーク管理アーキテクチャを含む通信環境を描写する。 例示的実施形態に従ったリモートネットワーク管理アーキテクチャを含む別の通信環境を描写する。 例示的実施形態に従ったフローチャートである。 例示的実施形態に従ったネットワークアーキテクチャを説明する。 例示的実施形態に従ったユニフォームリソースロケータ(URL)を描写する。 例示的実施形態に従ったグラフを描写する。 例示的実施形態に従ったメッセージフローを描写する。 例示的実施形態に従ったウェブページを描写する。 例示的実施形態に従ったウェブページを描写する。 例示的実施形態に従ったウェブページを描写する。 例示的実施形態に従ったウェブページを描写する。 例示的実施形態に従ったフローチャートである。
例示的な方法、デバイス、及びシステムが本明細書に説明される。本明細書では、単語“例”及び“例示的”は、“例、実例、又は例証として役立つ”ことを意味するために使用されることを理解すべきである。“例”又は“例示的”であるとして本明細書に説明する任意の実施形態又は機構は、そのように述べられない限り、必ずしも他の実施形態又は機構よりも好ましい又は有利であると解釈すべきではない。したがって、本明細書に提示される主題の範囲から逸脱することなく、他の実施形態が利用され得、他の変更がなされ得る。
したがって、本明細書に説明する例示的実施形態は、限定することを意図しない。本明細書に一般的に説明され、図に説明するような本開示の態様が、多種多様な異なる構成で配置され得、置換され得、組み合わされ得、分離され得、及び設計され得ることは容易に理解されるであろう。例えば、“クライアント”コンポーネントと“サーバ”コンポーネントとへの機構の分離は、様々な方法で生じ得る。
更に、文脈が他のことを示唆しない限り、図の各々に説明する機構は、相互に組み合わせて使用され得る。したがって、図は、一般的に、全ての説明する機構が実施形態毎に必要であるとは限らないことを理解すると共に、1つ以上の全体的な実施形態のコンポーネントの態様としてみなされるべきである。
また、この明細書又は特許請求の範囲における要素、ブロック、又はステップの任意の列挙は、明確にする目的のためのものである。したがって、そうした列挙は、これらの要素、ブロック、又はステップが特定の配置に準拠すること、又は特定の順序で実行されることを必要とする又は暗示するものとして解釈されるべきではない。
I. はじめに
大企業は、多くの相互に関連する動作を伴う複合的なエンティティである。これらの内の幾つかは、人材(HR)、サプライチェーン、情報技術(IT)、及び財務等、企業全体で見られる。しかしながら、各企業はまた、本質的な能力を提供し、及び/又は競争上の優位性を創出する独自の動作を有する。
広く実装された動作をサポートするために、企業は、典型的には、顧客関係管理(CRM)及び人的資本管理(HCM)パッケージ等の既製のソフトウェアアプリケーションを使用する。しかしながら、それらの独自のユニークな要件を満たすためにカスタムソフトウェアアプリケーションを必要とすることもあり得る。大企業は、数十又は数百のこれらのカスタムソフトウェアアプリケーションをしばしば有する。それにもかかわらず、本明細書の実施形態により提供される利点は、大企業に限定されず、任意の規模の企業又は任意の他のタイプの組織に適用可能であり得る。
多くのそうしたソフトウェアアプリケーションは、企業内の個々の部門によって開発される。これらは、単純なスプレッドシートからカスタムビルドのソフトウェアツール及びデータベースにまで及ぶ。しかしながら、サイロ化されたカスタムソフトウェアアプリケーションの急増は、多くの欠点を有する。そのことは、その動作を運営及び拡大し、革新し、規制要件を満たす企業の能力に悪影響を及ぼす。企業は、そのサブシステムとデータとを統合する単一のシステムを欠くことに起因して、その動作を統合、合理化、及び強化することが難しいと感じることがある。
カスタムアプリケーションを効率的に創出するために、企業は、不必要な開発の複雑さを排除する、リモートでホストされたアプリケーションプラットフォームからの利益を得るであろう。そうしたプラットフォームの目標は、ソフトウェアエンジニア及びその他の役割の個人がユニークな高価値の機構の開発に集中し得るように、時間のかかる反復的なアプリケーション開発タスクを削減することであろう。
この目標を達成するために、企業全体のワークフローをインテリジェントに自動化するように、サービスとしてのアプリケーションプラットフォーム(aPaaS)の概念が導入される。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システムは、様々な方法でGUIを表し得る。例えば、aPaaSシステムのサーバデバイスは、HTMLとJAVASCRIPT(登録商標)との組み合わせを使用してGUIの表現を生成し得る。JAVASCRIPT(登録商標)は、クライアント側実行可能コード、サーバ側実行可能コード、又はそれらの両方を含み得る。サーバデバイスは、クライアントデバイスがローカルに定義されたルックアンドフィールに従って画面に表示するように、この表現をクライアントデバイスに送信又は提供し得る。或いは、GUIの表現は、クライアントデバイスがそこからグラフィカル出力を直接生成するために使用し得る中間形式(例えば、JAVA(登録商標)バイトコード)等の他の形式をとり得る。その他の可能性が存在する。
更に、ボタン、メニュー、タブ、スライダー、チェックボックス、トグル等のGUI要素とのユーザの相互作用は、それらの“選択”、“アクティブ化”、又は“作動”と称され得る。これらの用語は、GUI要素がキーボード、ポインティングデバイス、タッチスクリーン、又は別のメカニズムを介して相互作用されているかどうかに関係なく使用され得る。
aPaaSアーキテクチャは、企業のネットワークと統合され、そうしたネットワークを管理するために使用される場合に、特に強力である。以下の実施形態は、例示的な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(登録商標)等であるがこれらに限定されない、様々なタイプのコンピュータ化されたスクリプト言語を実行する能力を有し得る。これらの言語で書き込まれたコンピュータプログラムコードは、クライアントデバイスへのウェブページの提供、及びウェブページとのクライアントデバイスの相互作用を容易にし得る。代替的又は追加的に、JAVA(登録商標)は、ウェブページの生成を容易にするため、及び/又はウェブアプリケーション機能を提供するために使用され得る。
III. リモートネットワーク管理アーキテクチャの例
図3は、例示的実施形態に従ったリモートネットワーク管理アーキテクチャを描写する。このアーキテクチャは、3つの主要なコンポーネント、管理されたネットワーク300と、リモートネットワーク管理プラットフォーム320と、パブリッククラウドネットワーク340とを含み、全てはインターネット350を介して接続される。
A. 管理されたネットワーク
管理されたネットワーク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のそうした部分に割り当てられ得る。
B. リモートネットワーク管理プラットフォーム
リモートネットワーク管理プラットフォーム320は、ユーザ、特に管理されたネットワーク300のオペレータにaPaaSサービスを提供するホストされた環境である。これらのサービスは、例えば、前述のウェブベースのテクノロジーを使用してウェブベースのポータルの形式を取り得る。したがって、ユーザは、例えば、クライアントデバイス302から、又は潜在的に、管理されたネットワーク300の外部のクライアントデバイスから、リモートネットワーク管理プラットフォーム320に安全にアクセスし得る。ウェブベースのポータルを介して、ユーザは、アプリケーションを設計、テスト、及び展開し得、レポートを生成し得、分析を表示し得、その他のタスクを実施し得る。
図3に示すように、リモートネットワーク管理プラットフォーム320は、4つの計算インスタンス322、324、326、及び328を含む。これらの計算インスタンスの各々は、aPaaSソフトウェアの専用コピーを動作する1つ以上のサーバノード及び/又は1つ以上のデータベースノードを表し得る。物理サーバデバイス及び/又は仮想マシン上のサーバノード及びデータベースノードの配置は柔軟であり得、企業のニーズに応じて変化し得る。組み合わせて、これらのノードは、特定の企業が利用可能であるウェブポータル、サービス、及びアプリケーション(例えば、完全に機能するaPaaSシステム)のセットを提供し得る。幾つかの場合、単一の企業は、複数の計算インスタンスを使用し得る。
例えば、管理されたネットワーク300は、リモートネットワーク管理プラットフォーム320の企業顧客であり得、計算インスタンス322、324、及び326を使用し得る。1人の顧客に複数の計算インスタンスを提供する理由は、顧客がそのアプリケーションとサービスを独自に開発、テスト、及び展開したいことである。したがって、計算インスタンス322は、管理されたネットワーク300に関連するアプリケーション開発に専用であり得、計算インスタンス324は、これらのアプリケーションのテストに専用であり得、計算インスタンス326は、テストされるアプリケーション及びサービスのライブ動作に専用であり得る。計算インスタンスは、ホストインスタンス、リモートインスタンス、顧客インスタンスと称され得、又はその他の指定により称され得る。計算インスタンスに展開されるアプリケーションは、計算インスタンス内のデータベースへのアクセスをその中の幾つかの要素(例えば、1つ以上の特定のデータベーステーブル又は1つ以上のデータベーステーブル内の特定の行)に制限し得るいう点で、スコープ付きアプリケーションであり得る。
明確にするために、本明細書の開示は、アプリケーションノード、データベースノード、それら上で実行されるaPaaSソフトウェア、及び“計算インスタンス”としての基礎となるハードウェアの配置を指す。ユーザは、それによって提供されるグラフィカルユーザインターフェースを口語的に“インスタンス”と称し得ることに留意されたい。しかしながら、本明細書で別段の定義がない限り、“計算インスタンス”は、リモートネットワーク管理プラットフォーム320内に配備されたコンピューティングシステムである。
リモートネットワーク管理プラットフォーム320のマルチインスタンスアーキテクチャは、マルチインスタンスアーキテクチャが幾つかの利点を示す従来のマルチテナントアーキテクチャとは対照的である。マルチテナントアーキテクチャでは、異なる顧客(例えば、企業)からのデータが単一のデータベースに混合される。これらの顧客のデータは相互に分離されるが、該分離は単一のデータベースを動作するソフトウェアによって実施される。結果として、このシステムにおけるセキュリティ違反は、全ての顧客のデータに影響を与え得、特に政府、医療、及び/又は金融規制の対象となるエンティティに追加のリスクを創出する。更に、1人の顧客に影響を与える任意のデータベース動作は、そのデータベースを共有する全ての顧客におそらく影響を与えるであろう。したがって、ハードウェア又はソフトウェアのエラーに起因する停止がある場合、この停止はそうした全ての顧客に影響を与える。同様に、1人の顧客のニーズを満たすためにデータベースがアップグレードされる場合、それは、アップグレードプロセス中、全ての顧客にとって利用不可能であろう。多くの場合、共有されるデータベースのサイズに起因して、こうしたメンテナンスウィンドウは長いであろう。
対照的に、マルチインスタンスアーキテクチャは、各顧客に、専用のコンピューティングインスタンス内の独自のデータベースを提供する。このことは、顧客データの混合を防止し、各インスタンスが独立して管理されることを可能にする。例えば、ある顧客のインスタンスがエラー又はアップグレードに起因する停止を経験した場合、他の計算インスタンスは影響を受けない。データベースは1人の顧客のデータのみを含むので、メンテナンスのダウン時間は限定される。更に、マルチインスタンスアーキテクチャのよりシンプルな設計は、各顧客データベース及びインスタンスの冗長コピーが地理的に多様な方法で展開されることを可能にする。このことは、高可用性を容易にし、障害が検出された場合、又はメンテナンスが実施されている場合に、顧客のインスタンスのライブバージョンは移動され得る。
幾つかの実施形態では、リモートネットワーク管理プラットフォーム320は、このプラットフォームを動作するエンティティによって制御される1つ以上の中央インスタンスを含み得る。計算インスタンスと同様に、中央インスタンスは、幾つかの物理サーバデバイス又は仮想マシン上に配備された幾つかのアプリケーション及びデータベースノードを含み得る。こうした中央インスタンスは、計算インスタンスの特定の構成、及び計算インスタンスの少なくとも幾つかの間で共有され得るデータのリポジトリとして機能し得る。実例として、計算インスタンス上で発生し得る一般的なセキュリティ脅威の定義、計算インスタンス上で一般的に発見されるソフトウェアパッケージ、及び/又は計算インスタンスに展開され得るアプリケーションに対するアプリケーションストアは、中央インスタンス内に存在し得る。計算インスタンスは、このデータを取得するために、明確に定義されたインターフェースを介して中央インスタンスと通信し得る。
効率的な方法で複数の計算インスタンスをサポートするために、リモートネットワーク管理プラットフォーム320は、単一のハードウェアプラットフォーム上に複数のこれらのインスタンスを実装し得る。例えば、aPaaSシステムがサーバクラスタ200等のサーバクラスタ上に実装される場合、それは、様々な量の計算、ストレージ、及び通信リソースをインスタンス専用にする仮想マシンを動作し得る。しかしながら、サーバクラスタ200の完全な仮想化は必要なくてもよく、インスタンスを分離するためにその他のメカニズムが使用され得る。幾つかの例では、各インスタンスは、サーバクラスタ200上に専用のアカウント及び1つ以上の専用のデータベースを有し得る。或いは、計算インスタンス322等の計算インスタンスは、複数の物理デバイスに及び得る。
幾つかの場合、リモートネットワーク管理プラットフォーム320の単一のサーバクラスタは、複数の独立した企業をサポートし得る。更に、以下で説明するように、リモートネットワーク管理プラットフォーム320は、負荷分散、冗長性、及び/又は高可用性を容易にするために、地理的に多様なデータセンタ内に配備された複数のサーバクラスタを含み得る。
C. パブリッククラウドネットワーク
パブリッククラウドネットワーク340は、外部委託された計算、データストレージ、通信、及びサービスホスト動作に使用され得るリモートサーバデバイス(例えば、サーバクラスタ200等の複数のサーバクラスタ)であり得る。これらのサーバは仮想化され得る(すなわち、サーバは仮想マシンであり得る)。パブリッククラウドネットワーク340の例は、AMAZON WEB SERVICES(登録商標)及びMICROSOFT(登録商標)AZURE(登録商標)を含み得る。リモートネットワーク管理プラットフォーム320と同様に、パブリッククラウドネットワーク340をサポートする複数のサーバクラスタは、負荷分散、冗長性、及び/又は高可用性の目的で、地理的に異なる位置に配備され得る。
管理されたネットワーク300は、そのクライアント及び顧客にアプリケーション及びサービスを展開するために、パブリッククラウドネットワーク340の内の1つ以上を使用し得る。実例として、管理されたネットワーク300がオンライン音楽ストリーミングサービスを提供する場合、パブリッククラウドネットワーク340は、音楽ファイルを格納し得、ウェブインターフェース及びストリーミング能力を提供し得る。このようにして、管理されたネットワーク300の企業は、これらの動作のために独自のサーバを構築及び維持する必要がない。
リモートネットワーク管理プラットフォーム320は、仮想マシンとそれらの中の管理されるサービスとを管理されたネットワーク300に公開するために、パブリッククラウドネットワーク340と統合するモジュールを含み得る。モジュールは、ユーザが仮想リソースをリクエストし、割り当てられたリソースを発見し、パブリッククラウドネットワーク340に柔軟なレポートを提供することを可能にし得る。この機能を確立するために、管理されたネットワーク300のユーザは、パブリッククラウドネットワーク340を用いてアカウントを最初に確立し、関連付けられたリソースのセットをリクエストし得る。その後、ユーザは、リモートネットワーク管理プラットフォーム320の適切なモジュールにアカウント情報を入力し得る。これらのモジュールは、アカウント内の管理可能なリソースを自動的にその後発見し得、使用、性能、及び支払い請求に関連するレポートをも提供し得る。
D. 通信サポート及びその他の動作
インターネット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は、特定のデバイスへのセキュアシェル(SSH)接続を開始して、ファイルシステム内の特定の位置からその上のオペレーティングシステムについての情報を取得するように命令され得る。この情報に基づいて、オペレーティングシステムが判定され得る。例として、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つ以上のフェーズがカスタマイズされ得、さもなければ上記の例示的な説明から逸脱し得る。
このようにして、リモートネットワーク管理プラットフォームは、管理されたネットワーク上に展開され、管理されたネットワークによって提供されるハードウェア、ソフトウェア、及びサービスを発見し得、インベントリし得る。上記のように、このデータは、構成アイテムとして、関連する計算インスタンスのCMDB内に格納され得る。例えば、個々のハードウェアコンポーネント(例えば、コンピューティングデバイス、仮想サーバ、データベース、ルータ等)はハードウェア構成アイテムとして表され得る一方、その上にインストール及び/又は実行されるアプリケーションはソフトウェア構成アイテムとして表され得る。
ハードウェア構成アイテムにインストール又は実行されるソフトウェア構成アイテム間の関係は、“ホストされる”、“実行される”、又は“依存する”等の様々な形式を取り得る。したがって、サーバデバイス上にインストールされたデータベースアプリケーションは、データベースアプリケーションがサーバデバイス上にホストされることを指し示すために、サーバデバイスと“ホストされる”関係を有し得る。幾つかの実施形態では、サーバデバイスがデータベースアプリケーションにより使用されることを指し示すために、サーバデバイスは、データベースアプリケーションにより“使用される”相互関係を有し得る。これらの関係は、上に説明した発見手順を使用して自動的に見つけられ得るが、手動で関係をセットすることも可能であり得る。
サービスと1つ以上のソフトウェア構成アイテムとの関係も様々な形式を取り得る。一例として、ウェブサービスは、ウェブサーバソフトウェア構成アイテム及びデータベースアプリケーションソフトウェア構成アイテムを含み得、異なるハードウェア構成アイテムに各々インストールされる。ウェブサービスは、これらのソフトウェア構成アイテムの両方と“依存する”関係を有し得る一方、ソフトウェア構成アイテムは、ウェブサービスと“使用される”相互関係を有する。サービスは、発見手順により完全には判定可能ではないことがあり、代わりに、サービスマッピング(例えば、構成アイテム間のサービスレベルの関係を判定するために、構成ファイルを精査すること及び/又はネットワークトラフィック分析を実行すること)及び可能性としてある程度の手動構成に依存し得る。
関係情報がどのように取得されるかに関係なく、それは、管理されたネットワークの動作にとって価値がある。特に、IT担当者は、幾つかのソフトウェアアプリケーションが展開されている場所、及びどの構成アイテムがサービスを構成しているかを迅速に判定し得る。このことは、サービスの停止又は低下の根本原因を迅速に特定可能である。例えば、2つの異なるサービスが遅い応答時間に悩まされる場合、両サービスが高いプロセッサの利用を有することにより使用されるデータベースアプリケーションが根本的な原因であると判定するために、(おそらく他のアクティビティの中でも)CMDBが照会され得る。したがって、IT担当者は、サービスを構成する他の構成アイテムの正常性及び性能を考慮する時間を無駄にすることなく、データベースアプリケーションに対処し得る。
V. クラウドベースのコンピューティングサービスの例
前述したように、クラウドコンピューティングプロバイダは、コンピューティングサービス(データベース、仮想マシン、ソフトウェアアプリケーション、及び/又はその他のサービス)を静的に又はオンデマンドでユーザがリモートで利用可能し得る。これらのコンピューティングサービスは、オンラインデータストレージサービス、ドキュメントコラボレーションサービス、仮想マシンサービス、及びウェブホスティングサービス等を含み得る。クラウドコンピューティングプロバイダはコンピューティングサービスに必要なハードウェア及びソフトウェアを提供するため、管理されたネットワークは、コンピューティングサービスを管理するために独自のインフラストラクチャをプロビジョニング又は展開するために時間を費やす必要がなくてもよい。
クラウドコンピューティングプロバイダは、パブリッククラウドネットワーク340の文脈で上で論じられた。したがって、クラウドコンピューティングプロバイダ(ここでは“リモートネットワーク”と称され得る)の例には、AMAZON WEB SERVICES(登録商標)、MICROSOFT(登録商標)AZURE(登録商標)、IBM CLOUD(登録商標)、DROPBOX(登録商標)、及びSLACK TECHNOLOGIES(登録商標)を含み得る。これらのクラウドコンピューティングプロバイダにより利用可能にされるコンピューティングサービスの例は、AMAZON AURORA(登録商標)(リレーショナルデータベース管理サービス)、AZURE(登録商標)Blob Storage(非構造化データストレージサービス)、及びSLACK(登録商標)(コラボレーティブメッセージングサービス)等を含み得る。その他のクラウドコンピューティングプロバイダ及びコンピューティングサービスが存在し得る。
追加の動作に対する需要の増加に対応するために、クラウドコンピューティングプロバイダは、コンピューティングサービスの提供を定期的に更新し得る。すなわち、クラウドコンピューティングプロバイダは、新たなコンピューティングサービスを開発し得、古いコンピューティングサービスを調整し得、古いコンピューティングサービスを削除し得る。こうした更新は、毎週、数ヶ月毎、又は毎年発生し得る。また、新たなコンピューティングサービスの異なるセットを各々提供する新たなクラウドコンピューティングプロバイダが設立され得る。
管理されたネットワーク300は、新たなコンピューティングサービス及び/又は新たなクラウドコンピューティングプロバイダにより提供される機能を利用可能であることが有利であり得る。更に、情報技術サービス及び運用管理、ソフトウェア資産管理、並びに/又はその他の様々なネットワークサービス及び運用へのより大きなコンテンツを獲得するように、管理されたネットワーク300がこれらの新たなコンピューティングサービスの消費を監視することが有利であり得る。更に、リモートネットワーク管理プラットフォーム320を操作するエンティティは、管理されたネットワーク300に代わって、これらの新たなコンピューティングサービス及び/又は新たなクラウドコンピューティングプロバイダと相互作用することが望ましいことがある。
それでも、新たなコンピューティングサービスと相互作用するようにリモートネットワーク管理プラットフォーム320を構成することは難しいことがある。コンピューティングサービスは明確な構成の詳細をしばしば有するので、新たなコンピューティングサービスのためのサポートを追加するには、アプリケーション開発者のチームが、これらの明確な構成の詳細をリモートネットワーク管理プラットフォーム320に組み込むカスタムソフトウェアを創出することを伴い得る。開発プロセスは厳密な統合テストを含み得るので、これには数週間又は数ヶ月かかり得る。また、リモートネットワーク管理プラットフォーム320が複数の新たなコンピューティングサービスと相互作用する場合、プロセスは過度に時間がかかり得る。
この問題又はその他の問題に対処するために、リモートネットワーク管理プラットフォーム320を操作するエンティティは、新たなコンピューティングサービス及び/又は新たなクラウドコンピューティングプロバイダと迅速に統合するためのクラウド統合アプリケーションを提供し得る。有利には、そうしたクラウド統合アプリケーションは、管理されたネットワーク300により提供される仕様を介して構成可能であり得、カスタムソフトウェアを開発する必要をなくす。一旦構成されると、クラウド統合アプリケーションは、リモートネットワーク管理プラットフォーム320が、新たなコンピューティングサービス及び/又はクラウドコンピューティングプロバイダと相互作用すること/それらの消費情報を取得することを可能にし得る。取得された消費情報は、後で分析するために、CMDB500又はリモートネットワーク管理プラットフォーム320上の別のデータベース内にその後ポピュレートされ得る。
コンピューティングサービスと相互作用するための本明細書の実施形態を使用することによって、クラウド統合アプリケーションは、“コンピューティングサービスニュートラル”(本明細書ではCSNと短縮される)とみなされ得る。これは、クラウド統合アプリケーションが、コンピューティングサービス及び/又はクラウドコンピューティングプロバイダ上に特定の構成の詳細を含まず、むしろ、クラウド統合アプリケーションが実行される場合に管理されたネットワーク300又は別のエンティティからこれらの詳細を取得するためでる。この特徴のため、クラウド統合アプリケーションは“コンピューティングサービスニュートラル(CSN)クラウド統合アプリケーション”と称され得る。
図6は、例示的実施形態に従ったネットワークアーキテクチャ600を描写する。ネットワークアーキテクチャ600は、3つの主要な構成要素、管理されたネットワーク300、計算インスタンス322、及びクラウドコンピューティングプロバイダ610を含み、全ては、インターネット350等のネットワークを介して通信可能に接続される。上記のように、クラウドコンピューティングプロバイダ610は、パブリッククラウドネットワーク340について論じたプロパティの内の幾つか又は全部を請け得る。
計算インスタンス322は、リモートネットワーク管理プラットフォーム320内に配備され得、管理されたネットワーク300に専用であり得る。計算インスタンス322は、管理されたネットワーク300の環境を表す発見された構成アイテムをCMDB500内に格納し得る。また、計算インスタンス322は、計算インスタンス322をクラウドコンピューティングプロバイダ610により提供されるコンピューティングサービスと統合するために使用されるコンピューティングサービスニュートラル(CSN)クラウド統合アプリケーション620を含み得る。統合時に、計算インスタンス322は、クラウドコンピューティングプロバイダ610により提供されるコンピューティングサービスの使用量、性能、及び課金統計を含む消費情報を取得し得る。
管理されたネットワーク300は、データの記憶だけではなく、コンピューティング及び通信タスクのためにエンティティにより使用される企業ネットワークであり得る。例では、管理されたネットワーク300は、クラウドコンピューティングプロバイダ610により提供されるコンピューティングサービスの内の1つ以上の加入者であり得る。これらは、計算、データストレージ、通信、及び/又はホスティングサービスを含み得る。実例として、管理されたネットワーク300がオンライン音楽ストリーミングサービスを提供する場合、音楽ファイルを格納するコンピューティングサービスが使用され得る。管理されたネットワーク300は、1つ以上のプロキシサーバ312を含み得る。おそらくプロキシサーバ312の助けを借りて、計算インスタンス322は、管理されたネットワーク300によって使用される、クラウドコンピューティングプロバイダ610により提供されるコンピューティングサービスと統合し得る。
クラウドコンピューティングプロバイダ610により提供されるコンピューティングサービスを使用するために、管理されたネットワーク300は、最初に、コンピューティングサービスの内の1つ以上がリクエストされるクラウドコンピューティングプロバイダ610の各々とのアカウントを確立し得る。アカウントを確立した後、管理されたネットワーク300は、CSNクラウド統合アプリケーション620が統合することを望むであろうコンピューティングサービスのサブセットを指定し得る。実例として、管理されたネットワーク300は、これらのアカウントと関連付けられたデータベースサービスのみと統合することに関心があり得る。このことを行うために、管理されたネットワーク300は、CSNクラウド統合アプリケーション620に仕様630を提供し得る。
仕様630は、クラウドコンピューティングプロバイダ610により提供されるコンピューティングサービスのためのアカウント情報の詳細(例えば、パスワード、ユーザ名)及びアクセスの詳細を含むファイル、データベーステーブル、又は関連のセットであり得る。実例として、コンピューティングサービスがAPIエンドポイント等の統合ポイントを通じてアクセスされ得ると仮定すると、仕様630は、コンピューティングサービスのためのAPIエンドポイントのリストを含み得る。例では、これらのAPIエンドポイントは、Representational State Transfer(REST)API、Simple Object Access Protocol(SOAP)API、GraphQL API、又はその他のタイプのAPIアーキテクチャを含み得る。CSNクラウド統合アプリケーション620は、Hyptertext Transfer Protocol Secure(HTTPS)、Hyptertext Transfer Protocol(HTTP)、又はその他のアプリケーション層プロトコルを介してこれらのAPIエンドポイントを照会し得る。また、仕様630は、クラウドコンピューティングプロバイダ610から受信したコンピューティングサービスの記述とCMDB500内の構成アイテムとの間の1つ以上のマッピングを含み得る。これらのマッピングは、クラウドコンピューティングプロバイダ610から受信した記述(例えば、消費情報)がCMDB500又は別のデータベースの特定のフィールド及びテーブルに正しく格納されることを確実にするために使用され得る。例示的実施形態では、コンピューティングサービスの記述は、XML、JavaScript Object Notation(JSON)、又はYAML Ain´t Markup Language(YAML)形式であり得る。
仕様630が一旦提供されると、CSNクラウド統合アプリケーション620は、クラウドコンピューティングプロバイダ610により提供されるコンピューティングサービスと相互作用し始め得る。有利には、管理されたネットワーク300がクラウドコンピューティングプロバイダ610により提供される新たなコンピューティングサービスの使用を開始した場合、計算インスタンス322又はCSNクラウド統合アプリケーション620への追加のソフトウェアの更新は必要でなくてもよい。むしろ、管理されたネットワーク300は、(例えば、GUIを介して)仕様630を単に更新し得、CSNクラウド統合アプリケーション620は、それに応じて構成され得る。
時折、クラウドコンピューティングプロバイダ610は、コンピューティングサービスの記述を複数の統合ポイントに分割する。すなわち、単一の統合ポイント(例えば、単一のAPIエンドポイント)を介して記述を提供する代わりに、クラウドコンピューティングプロバイダは、記述を複数の統合ポイント(例えば、複数のAPIエンドポイント)に分割し得、それらの各々は、“ページ”として知られている。この技法は、コンピューティングサービスの記述が過度に大きい場合に一般的である。したがって、コンピューティングサービスの完全な記述を取得するために、複数の統合ポイントの各々(例えば、ページの各々)に対するリクエストがなされるべきである。
記述が複数の統合ポイントに分割されているコンピューティングサービスと統合するために、仕様630は“ページネーションタイプ”を含み得る。特に、ユーザは、仕様630に第1の統合ポイント及びページネーションタイプを提供し得る。仕様630を受信すると、CSNクラウド統合アプリケーション620は、第1の統合ポイントを後続の統合ポイントに変更するために、ページネーションタイプを使用し得る。その後、CSNクラウド統合アプリケーション620は、コンピューティングサービスの完全な記述を取得するために、これらの後続の統合ポイントの各々にリクエストをなし得る。
ページネーションタイプの理念を概念的に説明するために、図7はURL700を描写する。図示するように、URL700は、スキーム702、ホスト704、パス706、及びクエリ文字列708で構成される。
スキーム702は、コンピューティングサービスにアクセスするために使用されるプロトコルを識別する。URL700では、スキーム702はHTTPSプロトコルが使用されることを示すが、HTTP等のその他のプロトコルも可能である。
ホスト704は、コンピューティングサービスを提供するサーバデバイスの名前を識別する。URL700では、ホスト704は“foobar.com”がホストであることを示すが、その他のホストも可能である。
パス706は、コンピューティングサービスが配置されているサーバデバイス上のパスを識別する。URL700では、パス706は“/api/v2”がパスであることを示すが、その他のパスも可能である。
クエリ文字列708は、パス706に続くオプションの文字列である。クエリ文字列708は、コンピューティングリソースが何らかの目的で使用し得る情報の文字列を提供する。例えば、クエリ文字列708は、コンピューティングリソースが検索に使用するパラメータを含み得る。クエリ文字列708は、アンパサンドにより各々区切られた名前/値のペアの文字列として構成される。URL700では、クエリ文字列708は、“id=123&token=3223”がクエリ文字列であることを示すが、その他のクエリ文字列も可能である。
ここで、ページネーションタイプに戻り、統合ポイントがURLの形式を取り得ると仮定すると、ページネーションタイプは、一般的に、後続のURLを取得するために、最初のURLのパス又はクエリ文字列の何れかを修正する。
特定のクラウドコンピューティングプロバイダがコンピューティングサービスの記述をどのように配置するかに依存して、様々なページネーションタイプが使用され得る。例えば、クラウドコンピューティングプロバイダA_1は、記述を500個のアイテムページに分割し得る一方、クラウドコンピューティングプロバイダB_1は、記述を1000個のアイテムページに分割し得る。多種多様な配置をサポートするために、CSNクラウド統合アプリケーション620は、可能性の中でもとりわけ、次のエンドポイントページネーション、次のリンクページネーション、オフセットページネーション、及びページベースのページネーションをサポートし得る。
次のエンドポイントページネーションタイプを使用する場合、管理されたネットワーク300のユーザは、仕様630に新たなパスを提供する。後続の統合ポイントを取得するために、CSNクラウド統合アプリケーション620は、最初の統合ポイントのパスを新たなパスで修正するであろう。例えば、最初の統合ポイントが“https://foobar.com/api/v2”の場合、2番目の統合ポイントは“https://foobar.com/api/v3”の形式を取り得る。
次のリンクページネーションタイプを使用する場合、管理されたネットワーク300のユーザは、仕様630に新たなクエリ文字列を提供し得る。後続の統合ポイントを取得するために、CSNクラウド統合アプリケーション620は、最初の統合ポイントのクエリ文字列を新たなクエリ文字列で修正し得る。例えば、最初の統合ポイントが“https://foobar.com/api/v2?link=1”である場合、2番目の統合ポイントは“https://foobar.com/api/v2?link=2”の形式を取り得る。
幾つかの実施形態では、次のリンクページネーションタイプに対する新たなクエリ文字列は、最初の統合ポイントを介して提供される記述に基づいて判定され得る。例えば、CSNクラウド統合アプリケーション620が“https://foobar.com/api/v2?link=A24”からの記述をリクエストすると、対応する応答は、以下のJavascript Object Notation(JSON)オブジェクトとして表示され得る。
Figure 0007291854000001
このシナリオでは、CSNクラウド統合アプリケーション620は、nextLinkキー(この例では“B53”)の値を取得するために応答を解析し得、2番目の統合ポイント(“https://foobar.com/api/v2?link=B53”)を取得するためにこの値を使用し得る。続いて、2番目の統合ポイントにより提供される応答は、3番目の統合ポイントを取得するために使用され得る値を提供し得る等々。
オフセットページネーションタイプを使用する場合、管理されたネットワーク300のユーザは、仕様630にサイズパラメータ及びオフセットパラメータを提供し得る。一般的に、サイズパラメータはページ上に返されるアイテムの数を指し示す一方、オフセットパラメータは特定のアイテムのインデックスを指し示す。例えば、“https://foobar.com/api/v2”が100個のアイテムを含むと仮定すると、クエリ“https://foobar.com/api/v2?offset=0&size=25”はアイテム1~25を返すであろうし、クエリ“https://foobar.com/api/v2?offset=25&size=25”はアイテム25~50を返すであろう、等々。
その結果、CSNクラウド統合アプリケーション620は、仕様630で提供されるオフセット/サイズパラメータパスを用いて最初の統合ポイントのクエリ文字列を修正するように構成され得る。例えば、最初の統合ポイントが“https://foobar.com/api/v2?offset={X}&size={Y}”である場合、2番目の統合ポイントは“https://foobar.com/api/v2?offset={X+Y}&size={Y}”と表示され得、X及びYは整数である(括弧{}はプレースホルダーとして使用され、URLの一部として意図されていることに留意されたい)。
ページベースのページネーションタイプを使用する場合、管理されたネットワーク300のユーザは、仕様630にページパラメータを提供し得る。一般的に、ページパラメータはページのインデックス番号を指し示す。これは、クラウドコンピューティングプロバイダがコンピューティングサービスの記述を段階的に増加するページに分割する場合に有用であり得る。例えば、クラウドコンピューティングプロバイダは、コンピューティングサービスの記述を10個の段階的に増加するページに分割し得、最初のページは“https://foobar.com/api/v2?page=1”であり、2番目のページは“https://foobar.com/api/v2?page=2”である等々。
その結果、CSNクラウド統合アプリケーション620は、ページパラメータパスを用いて最初の統合ポイントのクエリ文字列を修正するように構成され得る。例えば、最初の統合ポイントが“https://foobar.com/api/v2?page={Y}”である場合、2番目の統合ポイントは“https://foobar.com/api/v2?page={Y+1}”と表示され得、Yは整数である(括弧{}はプレースホルダーとして使用され、URL文字列の一部ではないことに留意されたい)。
特に、上記の例示的なページネーションのタイプは、限定することを意図しない。その他のページネーションタイプが存在し得、CSNクラウド統合アプリケーション620によりサポートされ得る。
時折、管理されたネットワーク300は、第1の統合ポイントから受信した記述を、1つ以上の後続の統合ポイントへの入力として使用し得る。この例として、クラウドコンピューティングプロバイダ610により提供される特定のコンピューティングサービスが、管理されたネットワーク300の複数のユーザによって使用されると仮定する。特定のコンピューティングサービスの使用についてのより大きなコンテキストを得るために(例えば、特定のコンピューティングサービスが管理されたネットワーク300のユーザによって十分に利用されているか否かを確認するために、特定のコンピューティングサービスが管理されたネットワーク300等のユーザによって過度に利用されているか否かを確認するために)CSNクラウド統合アプリケーション620がこれらのユーザの各々に関連するライセンスサブスクリプション情報を取得することは興味深いかもしれない。したがって、CSNクラウド統合アプリケーション620は、最初に全てのユーザのリストを取得し得、次に、各ユーザに関連するライセンスサブスクリプション情報を取得するためにこのリストを入力として使用し得る。
グラフ800は、この概念を説明するために提供される。ユーザの統合ポイントの取得810はグラフ800の上部にある。この統合ポイントは、CSNクラウド統合アプリケーション620が全てのユーザのリストを取得することを可能にする。上で論じたように、全てのユーザのリストは、1つ以上のページに分割され得、それらは、ユーザリスト812、ユーザリスト814、及びユーザリスト816としてグラフ800上に表されている。言い換えると、ユーザリスト812、814、及び816は、全てのユーザのリストからの個々のユーザのサブリストを各々含み得る。
スペースの複雑さを節約するために、CSNクラウド統合アプリケーション620は、深さ優先サーチ(DFS)に従ってグラフ800上で動作し得る。すなわち、CSNクラウド統合アプリケーション620は、ユーザリスト814又はユーザリスト816を同時に検索することなく、ユーザリスト812を検索し得る。その後、CSNクラウド統合アプリケーション620は、ユーザリスト812内のユーザ毎のライセンスサブスクリプション情報を検索するためにユーザリスト812をループし得る。このことは、全てのライセンスの取得818と全てのライセンスの取得820とによってグラフ800上に表されている。
ユーザリスト812のユーザ毎のライセンスサブスクリプション情報を受信した後、CSNクラウド統合アプリケーション620はユーザリスト814を検索し得、ユーザリスト814のユーザ毎のライセンスサブスクリプション情報を検索するためにユーザリスト814をループし得る。このことは、全てのライセンスの取得822と全てのライセンスの取得824とによりグラフ800上に表されている。
ユーザリスト814のユーザ毎のライセンスサブスクリプション情報が検索された後、CSNクラウド統合アプリケーション620は、ユーザリスト816を検索し、ユーザリスト816のユーザ毎のライセンスサブスクリプション情報を検索するためにユーザリスト816をループし得る。CSNクラウド統合アプリケーション620は、全てのユーザに対するライセンスサブスクリプション情報が検索されるまで、このプロセスを繰り返し続け得る。
図9は、例示的実施形態に従ったメッセージフロー900を描写する。メッセージフロー900において、計算インスタンス322は、管理されたネットワーク300から仕様を受信し、1つ以上の統合ポイントを判定するために該仕様をその後使用する。例として、メッセージフロー900は、動作中に、計算インスタンス322、管理されたネットワーク300、及びクラウドコンピューティングプロバイダ610を利用し得る。しかしながら、追加のコンポーネント、ステップ、又はブロックがメッセージフロー900に追加され得る。
ステップ902において、管理されたネットワーク300のユーザは、仕様630を計算インスタンス322に提供し得る。仕様630は、(i)クラウドコンピューティングプロバイダ610により提供される1つ以上の統合ポイント、(ii)1つ以上の統合ポイントにより提供される応答と関連付けられたページネーションタイプ、及び(iii)応答に現れるクラウドコンピューティングプロバイダ610により提供されるコンピューティングサービスの記述とCMDB500内のデータベーステーブルのフィールドとの間のマッピングを定義し得る。仕様630は、グラフィカルインターフェースを介して、管理されたネットワーク300から計算インスタンス322へ送信され得る。
ステップ904において、計算インスタンス322は、CSNクラウド統合アプリケーション620を呼び出す。呼び出されると、CSNクラウド統合アプリケーション620は、(i)クラウドコンピューティングプロバイダ610で認証するため、及び(ii)クラウドコンピューティングプロバイダ610により提供される第1の統合ポイントを判定するために、仕様630からデータを収集し得る。例として、クラウドコンピューティングプロバイダ“FOOBAR”により提供されるコンピューティングサービスに対する第1の統合ポイントは、“https://foobar.com/api/v2?link=1”の形式を取り得る。
ステップ906において、CSNクラウド統合アプリケーション620は、ステップ904で判定された第1の統合ポイントを使用して、クラウドコンピューティングプロバイダ610により提供されるコンピューティングサービスの第1の記述をリクエストし得る。幾つかの場合、計算インスタンス322からクラウドへのリクエストは、管理されたネットワーク300上のプロキシサーバ312を介して促進される。クラウドコンピューティングプロバイダ610からCSNクラウド統合アプリケーション620により受信される応答は、管理されたネットワーク300に利用可能な又は使用されるコンピューティングリソースの第1の記述を含み得る。幾つかの例では、第1の記述は、XML、JSON、又はYAMLの形式にあり得る。
図9に示すように、ステップ904及び906は、任意の数の統合ポイントに対して繰り返され得る。図7で上に説明したように、後続の統合ポイントは、仕様630で提供されるページネーションタイプによって判定され得る。例えば、ステップ908において、CSNクラウド統合アプリケーション620は、統合ポイントNを判定する。この統合ポイントは、“http://foobar.com/api/v2?link=n”の形式を取り得る。ステップ910において、CSNクラウド統合アプリケーション620は、統合ポイントNを介してクラウドコンピューティングプロバイダ610からコンピューティングリソースのN番目の記述をリクエスト及び受信し得る。
ステップ912において、CSNクラウド統合アプリケーション620は、N個の統合ポイントの各々から受信した記述を整理し得、該記述を構成アイテムとしてCMDB500又は別のデータベース内に格納し得る。
VI. 構成インターフェースの例
メッセージフロー900を有効にするために、リモートネットワーク管理プラットフォーム320は、管理されたネットワーク300のユーザに、仕様630に適切なデータを入力するように促し得る。このことは、計算インスタンス322によりホストされるウェブページ又は一連のウェブページを介して達成され得、リクエストに応じて管理されたネットワーク300からユーザに提供される。特に、ウェブページの以下の例は、単に説明を目的とし、限定することを意図しない。情報の代替的配置を含むその他のウェブページが存在し得る。
図10Aは、例示的実施形態に従ったウェブページ1000を説明する。ウェブページ1000は、特定のコンピューティングサービスに関連する構成の詳細をユーザが指定することを可能にすることによって、特定のコンピューティングサービスの識別、構成、及び管理を容易にする。ウェブページ1000を介して構成された詳細は、仕様630に含まれ得る。
名前フィールド1002は、ユーザが特定のコンピューティングサービスにユニークな名前を割り当てることを可能にし得る。このユニークな名前は、特定のコンピューティングサービスを他のコンピューティングサービスから区別するためにその後使用され得る。
ベースURLフィールド1004は、ユーザが特定のコンピューティングサービスのベースURLを指定することを可能にする。ベースURLは、特定のコンピューティングサービスに対するスキーム及びホスト(又はホストのみ)を含み得る。図7で上に説明したように、CSNクラウド統合アプリケーション620は、このベースURLを変更し、異なる統合ポイントを取得するために、異なるページネーションタイプを使用し得る。
認証URL1006は、特定のコンピューティングサービスを提供するクラウドコンピューティングプロバイダに対する認証URLをユーザが指定することを可能にし得る。実行中、CSNクラウド統合アプリケーション620は、特定のクラウドプロバイダで認証するために、認証情報を検索し得、認証情報をAPIリクエストにパッケージ化し得、APIリクエストを認証URLへ送信し得る。
統合アクションリスト1008は、CSNクラウド統合アプリケーション620が特定のコンピューティングサービスに関連する記述を受信するために実施し得る統合アクションのリストを含み得る。図10Aに説明するように、統合アクションリスト1008は、“最後のアクティビティの取得”アクションを含み、これは、特定のコンピューティングサービスの最新のアクティビティを取得するように動作し得る。例では、最新のアクティビティは、特定のコンピューティングサービスに最近アクセスしたユーザに関連する詳細を含み得る。
統合アクションリスト1008はまた、特定のコンピューティングサービスからサブスクリプション情報を取得するように動作し得るプルサブスクリプションアクション1010を含む。例では、サブスクリプション情報は、管理されたネットワーク300が特定のコンピューティングサービスに関して有するアカウントの数、及び管理されたネットワーク300が特定のコンピューティングサービスに関して有するライセンスの数等に関連する詳細を含み得る。
ユーザは、統合アクションリスト1008から各統合アクションを更に構成し得る。例えば、ユーザがプルサブスクリプションアクション1010をクリックし、さもなければ選択する場合、ユーザは、プルサブスクリプションアクション1010に対する構成の詳細をユーザが編集することを可能にする構成ページに導かれ得る。
図10Bは、例示的実施形態に従ったウェブページ1020を説明する。ウェブページ1020は、ユーザが特定の統合アクションに関連する詳細を指定することを可能にすることによって、特定の統合アクションの構成を容易する。例示的実施形態では、ウェブページ1020は、統合アクションリスト1008から統合アクションをクリックし、さもなければ選択する時に、管理ネットワーク300からユーザに提供され得る。ウェブページ1020を介して構成された詳細は、仕様630内に含まれ得る。
統合名フィールド1022は、ウェブページ1020を介して構成されている特定の統合アクションにユニークな名前をユーザが割り当てることを可能にし得る。このユニークな名前は、特定の統合アクションを他の統合アクションから区別するために使用され得る。
統合ポイントリスト1024は、CSNクラウド統合アプリケーション620が特定の統合アクションを実行する場合に照会すべき全ての統合ポイントのリストを含む。統合ポイントリスト1024は、各統合ポイントがいつ照会されるかについての論理的な順序をユーザが構成することを可能にし得る。図8に説明したように、このことは、第1の統合ポイントから受信した記述を1つ以上の後続の統合ポイントに入力することを可能にし得る。例えば、ユーザ統合ポイント1026は順序の1番目として示され、ライセンス統合ポイント1028は順序の2番目として表示される。
ユーザは、統合ポイントリスト1024から各統合ポイントを更に構成し得る。例えば、ユーザがユーザ統合ポイント1026をクリックし、さもなければ選択する場合、ユーザは、ユーザ統合ポイント1026に対する構成をユーザが編集可能にする構成ページに誘導され得る。
図10Cは、例示的実施形態に従ったウェブページ1030を説明する。ウェブページ1030は、特定の統合ポイントに関連する詳細をユーザが指定することを可能にすることによって、特定の統合ポイントの構成を容易にする。例示的実施形態では、ウェブページ1030は、統合ポイントリスト1024から統合ポイントをクリックし、さもなければ選択する時に、管理されたネットワーク300からユーザに提供され得る。ウェブページ1030を介して構成された詳細は、仕様630内に含まれ得る。
名前フィールド1032は、ユーザがウェブページ1030を介して構成されている統合ポイントにユニークな名前を割り当てることを可能にし得る。このユニークな名前は、特定の統合ポイントを他の統合ポイントから区別するために使用され得る。
幾つかの場合、クラウドコンピューティングプロバイダ610から受信したコンピューティングサービスの記述は、管理されたネットワーク300が格納したくない無関係な情報を含み得る。関連するデータのみを取得するために、応答パス1034が使用され得る。応答パス1034は、受信した記述内の特定の要素を配置し得るネストされたオブジェクト及び/又はアレイの連結を含み得る。全ての要素が対象とならなくてもよく、パスが対象の要素を定義するために使用され得るため、こうしたパスを使用することは、記述を解析する場合に有利であり得る。例えば、コンピューティングサービスの記述は、以下のJSON形式で表され得る。
Figure 0007291854000002
“名前(name)”オブジェクトが、関連する管理されたネットワーク300である場合、応答パス1034は、名前“オブジェクト(objects)”への構造化されたパスを含み得る。このパスは、“response.members[].names”のように表示され得る。動作中、CSNクラウド統合アプリケーション620は、記述から値を抽出し、それらをファイル及び/又はデータベーステーブルに書き込むために、応答パス1034を利用し得る。
テストモードフラグ1036は、ウェブページ1030を介して定義された特定の統合ポイントがテストに使用されているか否かを指し示すチェックボックスであり得る。テストに使用される(例えば、テストモードフラグ1036がチェックされる)ことは、CSNクラウド統合アプリケーション630が、ユーザが見るためにクラウドコンピューティングプロバイダ610から受信した記述を表示することを意味する。幾つかの場合、テストに使用されることは、CSNクラウド統合アプリケーション620がクラウドコンピューティングプロバイダ610から受信した記述をCMDB500中に格納しないことを意味する。テストモードについての詳細は、以下の図10Dの論考で説明される。
エンドポイント1038は、ウェブページ1030を介して定義された特定の統合ポイントに対するAPIエンドポイント/URLをユーザが指定することを可能にし得る。エンドポイント1038は、最初/第1の統合ポイントに対応し得る。
ページネーションボックス1040は、エンドポイント1038に使用するページネーションタイプをユーザが構成することを可能にする。図10Cに示すように、ページネーションボックス1040は、ユーザが複数のページネーションタイプから1つを選択することを可能にするページネーションタイプドロップダウン1042を含む。ウェブページ1030は、“オフセット”ページネーションタイプが現在選択されていることを示す。このことは、“オフセットパラメータ名”、“オフセットパラメータ値”、“サイズパラメータ名”、及び“サイズパラメータ値”フィールドがページネーションボックス1040に示されることをもたらす。ユーザは“オフセット”ページネーションタイプを構成するために、これらのフィールドにポピュレートし得る。
応答スキーママップ1044は、ユーザがクラウドコンピューティングプロバイダ610から受信したコンピューティングサービスの記述をCMDB500内のテーブル/フィールドにマッピングすることを可能にする。例えば、応答スキーママップ1044は、“ユーザ名(user_name)”フィールドがCMDB500の“プロファイル(profile)”内の“name”フィールドにマッピングされることを示す。更に、応答スキーママップ1044は、“ユーザID(user_ID)”フィールドがCMDB500の“プロファイル”テーブル内の“ID”フィールドにマッピングされることを示す。特に、その他のマッピングも可能である。
図10Dは、例示的実施形態に従ったウェブページ1050を説明する。ウェブページ1050は、(おそらく、ユーザが“テストモード”ボタンをクリックし、さもなければ選択することを介して)アクティブ化されるように図10Dに示されたテストボックス1052を除いて、一般的にウェブページ1030と同じコンテンツを含む。したがって、簡潔にするために、ウェブページ1030と重複する項目の記述は、ウェブページ1050から省略されている。
図10Dにおいて、応答フィールド1054は、エンドポイント1038を照会する時にクラウドコンピューティングプロバイダ610から受信され得るコンピューティングリソースのサンプル応答/記述を示す。次に、マッピングされたデータフィールド1056は、サンプル応答のマッピングを示し得る。特に、マッピングされたデータフィールド1056に示されるマッピングは、応答パス1034で提供されたパスに対応し得る。
有利なことに、応答フィールド1054/マッピングされたデータフィールド1056を示すことは、クラウドコンピューティングプロバイダ610から受信した応答をCMDB500内のフィールド/テーブルに適切にマッピングすることでユーザを支援し得る(例えば、ユーザが応答パス1034/応答スキーママップ1044を適切に構成することを助力する)。
VII. 動作例
図11は、例示的実施形態を説明するフローチャートである。図11により説明するプロセスは、コンピューティングデバイス100等のコンピューティングデバイス、及び/又はサーバクラスタ200等のコンピューティングデバイスのクラスタによって実行され得る。しかしながら、プロセスは、その他のタイプのデバイス又はデバイスサブシステムによって実行され得る。例えば、このプロセスは、ラップトップ又はタブレットデバイス等のポータブルコンピュータによって実行され得る。
図11の実施形態は、そこに示された機構の内の何れか1つ以上を削除することによって簡略化され得る。更に、これらの実施形態は、以前の図又は本明細書で説明した何れかの機構、態様、及び/又は実装と組み合わされ得る。
ブロック1100は、コンピューティングサービスニュートラルクラウド統合アプリケーションによって、リモートネットワークに関連する仕様を取得することを含む。コンピューティングサービスニュートラルクラウド統合アプリケーションは、計算インスタンス内に配備された1つ以上のプロセッサ上で実行可能であり得る。計算インスタンスは、管理されたネットワークに専用であり得、計算インスタンス内に配備された永続ストレージは、データベーステーブル内に、リモートネットワークにより提供されるコンピューティングサービスの表現を含む。仕様は、(i)リモートネットワークに対する統合ポイント、(ii)統合ポイントにより提供される応答と関連付けられたページネーションタイプ、及び(iii)応答に現れるリモートネットワークにより提供されるコンピューティングサービスの記述とデータベーステーブルのフィールドとの間のマッピングを定義し得る。
ブロック1110は、コンピューティングサービスニュートラルクラウド統合アプリケーションによって統合ポイントを介して、リモートネットワークにより提供されるコンピューティングサービスの第1の記述をリクエスト及び受信することを含む。
ブロック1120は、コンピューティングサービスニュートラルクラウド統合アプリケーションによってページネーションタイプ及び統合ポイントから、リモートネットワークに対する第2の統合ポイントを判定することを含む。
ブロック1130は、コンピューティングサービスニュートラルクラウド統合アプリケーションによって第2の統合ポイントを介して、リモートネットワークにより提供されるコンピューティングサービスの第2の記述をリクエスト及び受信することを含む。
ブロック1140は、コンピューティングサービスニュートラルクラウド統合アプリケーションによってデータベーステーブルのフィールド内に、マッピングに従って第1の記述及び第2の記述を格納することを含む。
幾つかの実施形態は、コンピューティングサービスニュートラルクラウド統合アプリケーションによってページネーションタイプ及び第2の統合ポイントから、リモートネットワークに対する第3の統合ポイントを判定することを含む。実施形態は、コンピューティングサービスニュートラルクラウド統合アプリケーションによって第3の統合ポイントを介して、リモートネットワークにより提供されるコンピューティングサービスの第3の記述をリクエスト及び受信することを更に含み得る。実施形態は、コンピューティングサービスニュートラルクラウド統合アプリケーションによってデータベーステーブルのフィールド内に、マッピングに従って第3の記述を格納することを更に含み得る。
幾つかの実施形態は、第2のリモートネットワークに関連する第2の仕様を取得することを含み、第2の仕様は、(i)第2のリモートネットワークに対する第3の統合ポイント、(ii)第3の統合ポイントにより提供される第2の応答と関連付けられた第2のページネーションタイプ、及び(iii)第2の応答に現れる第2のリモートネットワークにより提供される第2のコンピューティングサービスの記述とデータベーステーブルのフィールドとの間の第2のマッピングを定義する。実施形態は、第3の統合ポイントを介して、第2のリモートネットワークにより提供されるコンピューティングサービスの第3の記述をリクエスト及び受信することを更に含み得る。実施形態は、ページネーションタイプ及び第3の統合ポイントから、第2のリモートネットワークに対する第4の統合ポイントを判定することを更に含み得る。実施形態は、第4の統合ポイントを介して、第2のリモートネットワークにより提供されるコンピューティングサービスの第4の記述をリクエスト及び受信することを更に含み得る。実施形態は、データベーステーブルのフィールド内に、第2のマッピングに従って第3の記述及び第4の記述を格納することを更に含み得る。
幾つかの実施形態では、リモートネットワークは、コンピューティングシステム及び管理されたネットワークとは物理的に異なり、コンピューティングシステム及び管理されたネットワークは、広域ネットワークを介してリモートネットワークにアクセスする。
幾つかの実施形態では、仕様はまた、リモートネットワークに対する認証メカニズムを定義し、リモートネットワークにより提供されるコンピューティングサービスの第1の記述をリクエスト及び受信することは、認証メカニズムを介して第1の記述をリクエスト及び受信することを含む。
幾つかの実施形態では、統合ポイントはURLを含み、URLは、リモートネットワークと関連付けられたホスト及びパスを含む。これらの実施形態では、ページネーションタイプは、新たなパスを指定する次のエンドポイントページネーションを含み、第2の統合ポイントは第2のURLを含み、第2のURLは、リモートネットワークと関連付けられたホスト及び新たなパスを含む。
幾つかの実施形態では、統合ポイントはURLを含み、URLは、リモートネットワークと関連付けられたホスト、パス、及びクエリ文字列を含む。これらの実施形態では、ページネーションタイプは、新たなクエリ文字列を指定する次のリンクページネーションを含み、第2の統合ポイントは第2のURLを含み、第2のURLは、リモートネットワークと関連付けられたホスト、パス、及び新たなクエリ文字列を含む。
幾つかの実施形態では、新たなクエリ文字列は、リモートネットワークにより提供されるコンピューティングサービスの第1の記述内の情報に基づいて判定されるキーと値のペアを含む。
幾つかの実施形態では、統合ポイントはURLを含み、URLは、リモートネットワークと関連付けられたホスト、パス、並びにオフセットパラメータ及びサイズパラメータを含むクエリ文字列を含む。これらの実施形態では、ページネーションタイプは、新たなクエリ文字列を指定するオフセットページネーションを含み、新たなクエリ文字列は、第2のオフセットパラメータ及びサイズパラメータを含み、第2の統合ポイントは第2のURLを含み、第2のURLは、リモートネットワークと関連付けられたホスト、パス、及び新たなクエリ文字列を含む。
幾つかの実施形態では、統合ポイントはURLを含み、URLは、リモートネットワークと関連付けられたホスト、パス、並びにページパラメータを含むクエリ文字列を含む。これらの実施形態では、ページネーションタイプは、新たなクエリ文字列を指定するページベースのページネーションを含み、新たなクエリ文字列は第2のページパラメータを含み、新たなクエリ文字列は第2のページパラメータを含み、第2の統合ポイントは、第2のURLを含み、第2のURLは、リモートネットワークと関連付けられたホスト、パス、及び新たなクエリ文字列を含む。
幾つかの実施形態では、リモートネットワークにより提供されるコンピューティングサービスの記述は、コンピューティングサービスニュートラルクラウド統合アプリケーションによって、複合的なデータオブジェクトとして受信される。これらの実施形態では、仕様は、リモートネットワークにより提供されるコンピューティングサービスの特定の記述が配置される複合的なデータオブジェクト内のパスを更に定義し、コンピューティングサービスの記述を格納することは、パスを参照してコンピューティングサービスの記述を格納することを含む。
幾つかの実施形態では、複合的なデータオブジェクトは、JSON又はXMLに従ってフォーマット化される。
幾つかの実施形態では、仕様は、テストオプションを更に定義し、コンピューティングサービスニュートラルクラウド統合アプリケーションは、格納する前に、テストオプションがアクティブ化されると判定することと、テストオプションがアクティブ化されることに基づいて、(i)第1の記述及び第2の記述に対応する要素を有する1つ以上のグラフィカルユーザインターフェースを生成すること、及び(ii)管理されたネットワークと関連付けられたクライアントデバイスに1つ以上のグラフィカルユーザインターフェースを提供することを含む動作を更に実施する。
幾つかの実施形態では、コンピューティングサービスの第1の記述は、記述のアレイを含み、コンピューティングサービスの第2の記述をリクエスト及び受信することは、記述のアレイ内の個別の記述毎に、個別の記述内で提供されるパラメータを用いて第2の統合ポイントを修正することと、修正された第2の統合ポイントを介して、第2の記述のサブセットをリクエスト及び受信することを含む。
幾つかの実施形態では、第2の記述のサブセットは記述の第2のアレイを含み、コンピューティングサービスニュートラルクラウド統合アプリケーションは、ページネーションタイプ及び第2の統合ポイントから、リモートネットワークに対する第3の統合ポイントを判定することと、第3の統合ポイントを介して、リモートネットワークにより提供されるコンピューティングサービスの第3の記述をリクエスト及び受信することを含む動作を更に実施する。これらの実施形態では、第3の記述をリクエスト及び受信することは、記述の第2のアレイ内の個別の記述毎に、個別の記述で提供されるパラメータを用いて第3の統合ポイントを修正することと、修正された第3の統合ポイントを介して、第3の記述のサブセットをリクエスト及び受信することを含む。
VIII. 結論
本開示は、様々な態様の例証として意図されている、この出願で説明する特定の実施形態に関して限定されるべきではない。当業者には明らかであるように、その範囲から逸脱することなく、多くの修正及び変形がなされ得る。本明細書に説明したものに加えて、開示の範囲内の機能的に同等の方法及び装置は、前述の説明から当業者には明らかであろう。そうした修正及び変形は、添付の特許請求の範囲内にあることが意図されている。
上記の詳細な説明は、添付の図を参照して、開示されたシステム、デバイス、及び方法の様々な機構及び動作を説明している。本明細書及び図で説明した例示的実施形態は、限定することを意味しない。本明細書に提示される主題の範囲から逸脱することなく、他の実施形態が利用され得、他の変更がなされ得る。本明細書に一般的に説明され、図に説明されるような本開示の態様が、多種多様な異なる構成で配置され得、置換され得、組み合され得、分離され得、設計され得ることは容易に理解されるであろう。
図中のメッセージフロー図、シナリオ、及びフローチャートの内の何れか又は全てに関して、本明細書で論じたように、各ステップ、ブロック、及び/又は通信は、例示的実施形態に従った情報の処理及び/又は情報の送信を表し得る。代替的実施形態は、これらの例示的実施形態の範囲内に含まれる。これらの代替的実施形態では、例えば、ステップ、ブロック、送信、通信、リクエスト、応答、及び/又はメッセージとして説明される動作は、関係する機能に依存して、実質的に同時又は逆の順序を含め、示された又は論じられた順序とは異なる順序で実行され得る。更に、より多くの又はより少ないブロック及び/又は動作は、本明細書で論じられるメッセージフロー図、シナリオ、及びフローチャートの内の何れかと共に使用され得、これらのメッセージフロー図、シナリオ、及びフローチャートは、部分的に又は全体的に相互に組み合され得る。
情報の処理を表すステップ又はブロックは、本明細書で説明する方法又は技術の具体的な論理機能を実施するように構成され得る回路に対応し得る。代替的又は追加的に、情報の処理を表すステップ又はブロックは、モジュール、セグメント、又はプログラムコードの一部(関連データを含む)に対応し得る。プログラムコードは、方法又は技術において具体的な論理演算又は活動を実装するためにプロセッサにより実行可能な1つ以上の命令を含み得る。プログラムコード及び/又は関連データは、RAM、ディスクドライブ、ソリッドステートドライブ、又は別のストレージ媒体を含むストレージデバイス等の任意のタイプのコンピュータ可読媒体上に格納され得る。
コンピュータ可読媒体はまた、レジスタメモリ及びプロセッサキャッシュのようなデータを短期間格納するコンピュータ可読媒体等の非一時的コンピュータ可読媒体を含み得る。コンピュータ可読媒体は、プログラムコード及び/又はデータをより長期間格納する非一時的コンピュータ可読媒体を更に含み得る。したがって、コンピュータ可読媒体は、例えば、ROM、光又は磁気ディスク、ソリッドステートドライブ、コンパクトディスクリードオンリーメモリ(CD-ROM)のような二次的又は永続的な長期ストレージを含み得る。コンピュータ可読媒体はまた、その他の任意の揮発性又は不揮発性のストレージシステムであり得る。コンピュータ可読媒体は、例えば、コンピュータ可読ストレージ媒体、又は有形ストレージデバイスとみなされ得る。
更に、1つ以上の情報送信を表すステップ又はブロックは、同じ物理デバイス内のソフトウェア及び/又はハードウェアモジュール間の情報送信に対応し得る。しかしながら、その他の情報送信は、異なる物理デバイス内のソフトウェアモジュール及び/又はハードウェアモジュール間であり得る。
図に示される特定の配置は、限定的とみなされるべきではない。他の実施形態は、所与の図に示される各要素の内の多少を含み得ることを理解すべきである。更に、説明された要素の内の幾つかは、組み合わされ得、又は省略され得る。更に、例示的実施形態は、図に説明されない要素を含み得る。
様々な態様及び実施形態が本明細書に開示されているが、他の態様及び実施形態は当業者には明らかであろう。本明細書に開示される様々な態様及び実施形態は、例証を目的とし、限定することを意図せず、真の範囲は、以下の特許請求の範囲によって示される。

Claims (40)

  1. 永続ストレージを含む計算インスタンスであって、前記永続ストレージは、データベーステーブル内に、リモートネットワークにより提供されるコンピューティングサービスの表現を含み、前記計算インスタンスは、管理されたネットワークに専用である、前記計算インスタンスと、
    前記計算インスタンス内に配備され、
    リモートネットワークに関連する仕様を取得することであって、前記仕様は、(i)前記リモートネットワークに対する統合ポイント、(ii)前記統合ポイントにより提供される応答と関連付けられたページネーションタイプ、及び(iii)前記応答に現れる前記リモートネットワークにより提供される前記コンピューティングサービスの記述と前記データベーステーブルのフィールドとの間のマッピングを定義することと、
    前記統合ポイントを介して、前記リモートネットワークにより提供される前記コンピューティングサービスの第1の記述をリクエスト及び受信することと、
    前記ページネーションタイプ及び前記統合ポイントから、前記リモートネットワークに対する第2の統合ポイントを判定することと、
    前記第2の統合ポイントを介して、前記リモートネットワークにより提供される前記コンピューティングサービスの第2の記述をリクエスト及び受信することと、
    前記データベーステーブルの前記フィールド内に、前記マッピングに従って前記第1の記述及び前記第2の記述を格納すること
    を含む動作をコンピューティングサービスニュートラルクラウド統合アプリケーションに実施させるように構成された1つ以上のプロセッサと
    を含むコンピューティングシステム。
  2. 前記コンピューティングサービスニュートラルクラウド統合アプリケーションは、
    前記ページネーションタイプ及び前記第2の統合ポイントから、前記リモートネットワークに対する第3の統合ポイントを判定することと、
    前記第3の統合ポイントを介して、前記リモートネットワークにより提供される前記コンピューティングサービスの第3の記述をリクエスト及び受信することと、
    前記データベーステーブルの前記フィールド内に、前記マッピングに従って前記第3の記述を格納すること
    を含む動作を更に実施する、請求項1に記載のコンピューティングシステム。
  3. 前記コンピューティングサービスニュートラルクラウド統合アプリケーションは、
    第2のリモートネットワークに関連する第2の仕様を取得することであって、前記第2の仕様は、(i)前記第2のリモートネットワークに対する第3の統合ポイント、(ii)前記第3の統合ポイントにより提供される第2の応答と関連付けられた第2のページネーションタイプ、及び(iii)前記第2の応答に現れる前記第2のリモートネットワークにより提供される第2のコンピューティングサービスの記述と前記データベーステーブルのフィールドとの間の第2のマッピングを定義することと、
    前記第3の統合ポイントを介して、前記第2のリモートネットワークにより提供される前記コンピューティングサービスの第3の記述をリクエスト及び受信することと、
    前記ページネーションタイプ及び前記第3の統合ポイントから、前記第2のリモートネットワークに対する第4の統合ポイントを判定することと、
    前記第4の統合ポイントを介して、前記第2のリモートネットワークにより提供される前記コンピューティングサービスの第4の記述をリクエスト及び受信することと、
    前記データベーステーブルの前記フィールド内に、前記第2のマッピングに従って前記第3の記述及び前記第4の記述を格納すること
    を含む動作を更に実施する、請求項1に記載のコンピューティングシステム。
  4. 前記リモートネットワークは、前記コンピューティングシステム及び前記管理されたネットワークとは物理的に異なり、前記コンピューティングシステム及び前記管理されたネットワークは、広域ネットワークを介して前記リモートネットワークにアクセスする、請求項1に記載のコンピューティングシステム。
  5. 前記仕様はまた、前記リモートネットワークに対する認証メカニズムを定義し、前記リモートネットワークにより提供される前記コンピューティングサービスの前記第1の記述をリクエスト及び受信することは、
    前記認証メカニズムを介して前記第1の記述をリクエスト及び受信すること
    を含む、請求項1に記載のコンピューティングシステム。
  6. 前記統合ポイントはユニフォームリソースロケータ(URL)を含み、前記URLは、前記リモートネットワークと関連付けられたホスト及びパスを含み、前記ページネーションタイプは、新たなパスを指定する次のエンドポイントページネーションを含み、前記第2の統合ポイントは第2のURLを含み、前記第2のURLは、前記リモートネットワークと関連付けられた前記ホスト及び前記新たなパスを含む、請求項1に記載のコンピューティングシステム。
  7. 前記統合ポイントはユニフォームリソースロケータ(URL)を含み、前記URLは、前記リモートネットワークと関連付けられたホスト、パス、及びクエリ文字列を含み、前記ページネーションタイプは、新たなクエリ文字列を指定する次のリンクページネーションを含み、前記第2の統合ポイントは第2のURLを含み、前記第2のURLは、前記リモートネットワークと関連付けられた前記ホスト、前記パス、及び前記新たなクエリ文字列を含む、請求項1に記載のコンピューティングシステム。
  8. 前記新たなクエリ文字列は、前記リモートネットワークにより提供される前記コンピューティングサービスの前記第1の記述内の情報に基づいて判定されるキーと値のペアを含む、請求項7に記載のコンピューティングシステム。
  9. 前記統合ポイントはユニフォームリソースロケータ(URL)含み、前記URLは、前記リモートネットワークと関連付けられたホスト、パス、並びにオフセットパラメータ及びサイズパラメータを含むクエリ文字列を含み、前記ページネーションタイプは、新たなクエリ文字列を指定するオフセットページネーションを含み、前記新たなクエリ文字列は、第2のオフセットパラメータ及び前記サイズパラメータを含み、前記第2の統合ポイントは第2のURLを含み、前記第2のURLは、前記リモートネットワークと関連付けられた前記ホスト、前記パス、及び前記新たなクエリ文字列を含む、請求項1に記載のコンピューティングシステム。
  10. 前記統合ポイントはユニフォームリソースロケータ(URL)を含み、前記URLは、前記リモートネットワークと関連付けられたホスト、パス、及びページパラメータを含むクエリ文字列を含み、前記ページネーションタイプは、新たなクエリ文字列を指定するページベースのページネーションを含み、前記新たなクエリ文字列は第2のページパラメータを含み、前記第2の統合ポイントは第2のURLを含み、前記第2のURLは、前記リモートネットワークと関連付けられた前記ホスト、前記パス、及び前記新たなクエリ文字列を含む、請求項1に記載のコンピューティングシステム。
  11. 前記リモートネットワークにより提供される前記コンピューティングサービスの前記記述は、前記コンピューティングサービスニュートラルクラウド統合アプリケーションによって、複合的なデータオブジェクトとして受信され、前記仕様は、前記リモートネットワークにより提供される前記コンピューティングサービスの特定の記述が配置される前記複合的なデータオブジェクト内のパスを更に定義し、前記コンピューティングサービスの記述を格納することは、前記パスを参照して前記コンピューティングサービスの記述を格納することを含む、請求項1に記載のコンピューティングシステム。
  12. 前記複合的なデータオブジェクトは、JavaScript Object Notation(JSON)又はeXtensible Markup Language(XML)に従ってフォーマット化される、請求項11に記載のコンピューティングシステム。
  13. 前記仕様はテストオプションを更に定義し、前記格納する前に、前記コンピューティングサービスニュートラルクラウド統合アプリケーションは、
    前記テストオプションがアクティブ化されると判定することと、
    前記テストオプションがアクティブ化されることに基づいて、(i)前記第1の記述及び前記第2の記述に対応する要素を用いて1つ以上のグラフィカルユーザインターフェースを生成し、(ii)前記管理されたネットワークと関連付けられたクライアントデバイスに前記1つ以上のグラフィカルユーザインターフェースを提供すること
    を含む動作を更に実施する、請求項1に記載のコンピューティングシステム。
  14. 前記コンピューティングサービスの前記第1の記述は記述のアレイを含み、前記コンピューティングサービスの前記第2の記述をリクエスト及び受信することは、
    記述の前記アレイ内の個別の記述毎に、
    前記個別の記述で提供されるパラメータを用いて前記第2の統合ポイントを修正することと、
    修正された前記第2の統合ポイントを介して、前記第2の記述のサブセットをリクエスト及び受信すること
    を含む、請求項1に記載のコンピューティングシステム。
  15. 前記第2の記述の前記サブセットは、記述の第2のアレイを含み、前記コンピューティングサービスニュートラルクラウド統合アプリケーションは、
    前記ページネーションタイプ及び前記第2の統合ポイントから、前記リモートネットワークに対する第3の統合ポイントを判定することと、
    前記第3の統合ポイントを介して、前記リモートネットワークにより提供される前記コンピューティングサービスの第3の記述をリクエスト及び受信することであって、前記第3の記述をリクエスト及び受信することは、
    記述の前記第2のアレイ内の個別の記述毎に、
    前記個別の記述で提供されるパラメータを用いて前記第3の統合ポイントを修正することと、
    修正された前記第3の統合ポイントを介して、前記第3の記述のサブセットをリクエスト及び受信すること
    を含むこと
    を含む更なる動作を実施する、請求項14に記載のコンピューティングシステム。
  16. コンピューティングサービスニュートラルクラウド統合アプリケーションによって、リモートネットワークに関連する仕様を取得することであって、前記コンピューティングサービスニュートラルクラウド統合アプリケーションは、計算インスタンス内に配備された1つ以上のプロセッサ上で実行可能であり、前記計算インスタンスは管理されたネットワークに専用であり、前記計算インスタンス内に配備された永続ストレージは、データベーステーブル内に、リモートネットワークにより提供されるコンピューティングサービスの表現を含み、前記仕様は、(i)前記リモートネットワークに対する統合ポイント、(ii)前記統合ポイントにより提供される応答と関連付けられたページネーションタイプ、及び(iii)前記応答に現れる前記リモートネットワークにより提供される前記コンピューティングサービスの記述と前記データベーステーブルのフィールドとの間のマッピングを定義することと、
    前記コンピューティングサービスニュートラルクラウド統合アプリケーションによって、前記統合ポイントを介して、前記リモートネットワークにより提供される前記コンピューティングサービスの第1の記述をリクエスト及び受信することと、
    前記コンピューティングサービスニュートラルクラウド統合アプリケーションによって、前記ページネーションタイプ及び前記統合ポイントから、前記リモートネットワークに対する第2の統合ポイントを判定することと、
    前記コンピューティングサービスニュートラルクラウド統合アプリケーションによって、前記第2の統合ポイントを介して、前記リモートネットワークにより提供される前記コンピューティングサービスの第2の記述をリクエスト及び受信することと、
    前記コンピューティングサービスニュートラルクラウド統合アプリケーションによって、前記データベーステーブルの前記フィールド内に、前記マッピングに従って前記第1の記述及び前記第2の記述を格納すること
    を含む、コンピュータ実装方法。
  17. 前記統合ポイントはユニフォームリソースロケータ(URL)を含み、前記URLは、前記リモートネットワークと関連付けられたホスト、パス、及びクエリ文字列を含み、前記ページネーションタイプは、新たなクエリ文字列を指定する次のリンクページネーションを含み、前記第2の統合ポイントは第2のURLを含み、前記第2のURLは、前記リモートネットワークと関連付けられた前記ホスト、前記パス、及び前記新たなクエリ文字列を含む、請求項16に記載のコンピュータ実装方法
  18. 前記コンピューティングサービスの前記第1の記述は記述のアレイを含み、前記コンピューティングサービスの前記第2の記述をリクエスト及び受信することは、
    記述の前記アレイ内の個別の記述毎に、
    前記個別の記述で提供されるパラメータを用いて前記第2の統合ポイントを修正することと、
    修正された前記第2の統合ポイントを介して、前記第2の記述のサブセットをリクエスト及び受信すること
    を含む、請求項16に記載のコンピュータ実装方法
  19. 前記コンピューティングサービスニュートラルクラウド統合アプリケーションによって、前記ページネーションタイプ及び前記第2の統合ポイントから、前記リモートネットワークに対する第3の統合ポイントを判定することと、
    前記コンピューティングサービスニュートラルクラウド統合アプリケーションによって、前記第3の統合ポイントを介して、前記リモートネットワークにより提供される前記コンピューティングサービスの第3の記述をリクエスト及び受信することと、
    前記コンピューティングサービスニュートラルクラウド統合アプリケーションによって、前記データベーステーブルの前記フィールド内に、前記マッピングに従って前記第3の記述を格納すること
    を更に含む、請求項16に記載のコンピュータ実装方法
  20. 計算インスタンス内に配備された1つ以上のプロセッサによる実行時に、
    コンピューティングサービスニュートラルクラウド統合アプリケーションによって、リモートネットワークに関連する仕様を取得することであって、前記コンピューティングサービスニュートラルクラウド統合アプリケーションは、前記1つ以上のプロセッサ上で実行可能であり、前記計算インスタンスは管理されたネットワークに専用であり、前記計算インスタンス内に配備された永続ストレージは、データベーステーブル内に、リモートネットワークにより提供されるコンピューティングサービスの表現を含み、前記仕様は、(i)前記リモートネットワークに対する統合ポイント、(ii)前記統合ポイントにより提供される応答と関連付けられたページネーションタイプ、及び(iii)前記応答に現れる前記リモートネットワークにより提供される前記コンピューティングサービスの記述と前記データベーステーブルのフィールドとの間のマッピングを定義することと、
    前記コンピューティングサービスニュートラルクラウド統合アプリケーションによって、前記統合ポイントを介して、前記リモートネットワークにより提供される前記コンピューティングサービスの第1の記述をリクエスト及び受信することと、
    前記コンピューティングサービスニュートラルクラウド統合アプリケーションによって、前記ページネーションタイプ及び前記統合ポイントから、前記リモートネットワークに対する第2の統合ポイントを判定することと、
    前記コンピューティングサービスニュートラルクラウド統合アプリケーションによって、前記第2の統合ポイントを介して、前記リモートネットワークにより提供される前記コンピューティングサービスの第2の記述をリクエスト及び受信することと、
    前記コンピューティングサービスニュートラルクラウド統合アプリケーションによって、前記データベーステーブルの前記フィールド内に、前記マッピングに従って前記第1の記述及び前記第2の記述を格納すること
    を含む動作を前記1つ以上のプロセッサに実施させるプログラム命令をその上に格納した、非一時的なコンピュータ可読媒体を含む製品。
  21. リモートネットワークにより提供されるコンピューティングサービスの表現をデータベーステーブル内に格納するように構成された永続ストレージを含む計算インスタンスと、
    前記計算インスタンス内に配備され、
    リモートネットワークの仕様のパラメータに対応するユーザインターフェース要素を有するグラフィカルユーザインターフェース(GUI)を生成することと、
    前記GUIをクライアントデバイスに提供することと、
    前記GUIを介して前記クライアントデバイスから前記仕様の前記パラメータを受信することであって、前記仕様の前記パラメータは、(i)前記リモートネットワークの統合ポイント、(ii)前記統合ポイントから受信した応答と関連付けられたページネーションタイプ、及び(iii)前記応答に現れる前記リモートネットワークにより提供される前記コンピューティングサービスの記述と前記データベーステーブルのフィールドとの間のマッピングのセットを含むことと、
    前記仕様を前記永続ストレージ内に格納すること
    を含む動作をクラウド統合アプリケーションに実施させるように構成された1つ以上のプロセッサと
    を含むコンピューティングシステム。
  22. 前記1つ以上のプロセッサは、
    前記永続ストレージから前記統合ポイント、前記ページネーションタイプ、及び前記仕様のマッピングの前記セットを検索することと、
    前記統合ポイントから、前記リモートネットワークにより提供される前記コンピューティングサービスの第1の記述をリクエスト及び受信することと、
    前記データベーステーブルの前記フィールド内に、マッピングの前記セットに従って前記第1の記述を格納すること
    を含む動作を前記クラウド統合アプリケーションに実施させるように構成される、請求項21に記載のコンピューティングシステム。
  23. 前記仕様の前記パラメータは、前記リモートネットワークにアクセスするための認証クレデンシャルを含み、前記リモートネットワークにより提供される前記コンピューティングサービスの前記第1の記述をリクエスト及び受信するために、前記1つ以上のプロセッサは、
    前記認証クレデンシャルを使用して前記リモートネットワークで認証すること
    を含む動作を前記クラウド統合アプリケーションに実施させるように構成される、請求項22に記載のコンピューティングシステム。
  24. 前記1つ以上のプロセッサは、
    前記ページネーションタイプ及び前記統合ポイントから、前記リモートネットワークの第2の統合ポイントを判定すること
    を含む動作を前記クラウド統合アプリケーションに実施させるように構成される、請求項22に記載のコンピューティングシステム。
  25. 前記統合ポイントは、前記リモートネットワークと関連付けられたホスト及びパスを含むユニフォームリソースロケータ(URL)を含み、前記ページネーションタイプは、新たなパスを指定する次のエンドポイントページネーションを含み、前記第2の統合ポイントは、前記リモートネットワークと関連付けられた前記ホスト及び前記新たなパスを含む第2のURLを含む、請求項24に記載のコンピューティングシステム。
  26. 前記統合ポイントは、前記リモートネットワークと関連付けられたホスト、パス、及びクエリ文字列を含むURLを含み、前記ページネーションタイプは、新たなクエリ文字列を指定する次のリンクページネーションを含み、前記第2の統合ポイントは、前記リモートネットワークと関連付けられた前記ホスト、前記パス、及び前記新たなクエリ文字列を含む第2のURLを含み、前記新たなクエリ文字列は、前記リモートネットワークにより提供される前記コンピューティングサービスの前記第1の記述内の情報に基づいて判定されるキーと値のペアを含む、請求項24に記載のコンピューティングシステム。
  27. 前記統合ポイントは、前記リモートネットワークと関連付けられたホスト、パス、並びにオフセットパラメータ及びサイズパラメータを含むクエリ文字列を含むURLを含み、前記ページネーションタイプは、第2のオフセットパラメータ及び前記サイズパラメータを含む新たなクエリ文字列を指定するオフセットページネーションを含み、前記第2の統合ポイントは、前記リモートネットワークと関連付けられた前記ホスト、前記パス、及び前記新たなクエリ文字列を含む第2のURLを含む、請求項24に記載のコンピューティングシステム。
  28. 前記統合ポイントは、前記リモートネットワークと関連付けられたホスト、パス、及びページパラメータを含むクエリ文字列を含むURLを含み、前記ページネーションタイプは、第2のページパラメータを含む新たなクエリ文字列を指定するページベースのページネーションを含み、前記第2の統合ポイントは、前記リモートネットワークと関連付けられた前記ホスト、前記パス、及び前記新たなクエリ文字列を含む第2のURLを含む、請求項24に記載のコンピューティングシステム。
  29. 前記1つ以上のプロセッサは、
    前記第2の統合ポイントから、前記リモートネットワークにより提供される前記コンピューティングサービスの第2の記述をリクエスト及び受信することと、
    前記データベーステーブルの前記フィールド内に、マッピングの前記セットに従って前記第2の記述を格納すること
    を含む動作を前記クラウド統合アプリケーションに実施させるように構成される、請求項24に記載のコンピューティングシステム。
  30. 前記コンピューティングサービスの前記第1の記述は、記述のアレイを含み、前記コンピューティングサービスの前記第2の記述をリクエスト及び受信するために、前記1つ以上のプロセッサは、
    記述の前記アレイ内の個別の記述毎に、
    前記個別の記述で提供されるパラメータを用いて前記第2の統合ポイントを修正することと、
    修正された前記第2の統合ポイントから、前記第2の記述のサブセットをリクエスト及び受信すること
    を含む動作を前記クラウド統合アプリケーションに実施させるように構成される、請求項29に記載のコンピューティングシステム。
  31. 前記第2の記述の前記サブセットは、記述の第2のアレイを含み、前記1つ以上のプロセッサは、
    前記ページネーションタイプ及び前記第2の統合ポイントから、前記リモートネットワークの第3の統合ポイントを判定することと、
    前記第3の統合ポイントから、前記リモートネットワークにより提供される前記コンピューティングサービスの第3の記述をリクエスト及び受信することであって、前記第3の記述をリクエスト及び受信することは、
    記述の前記第2のアレイ内の個別の記述毎に、
    前記個別の記述で提供されるパラメータを用いて前記第3の統合ポイントを修正することと、
    修正された前記第3の統合ポイントから、前記第3の記述のサブセットをリクエスト及び受信すること
    を含むこと
    を含む動作を前記クラウド統合アプリケーションに実施させるように構成される、請求項30に記載のコンピューティングシステム。
  32. 前記GUIのユーザインターフェース要素はテストオプションを含み、前記テストオプションの選択を受信することに応答して、前記1つ以上のプロセッサは、
    前記統合ポイントを介して、前記リモートネットワークにより提供される前記コンピューティングサービスの第1の記述をリクエスト及び受信することと、
    前記ページネーションタイプ及び前記統合ポイントから、前記リモートネットワークの第2の統合ポイントを判定することと、
    前記第2の統合ポイントを介して、前記リモートネットワークにより提供される前記コンピューティングサービスの第2の記述をリクエスト及び受信することと、
    前記クライアントデバイス上に前記第1の記述及び前記第2の記述を提示するために前記GUIを更新すること
    を含む動作を前記クラウド統合アプリケーションに実施させるように構成される、請求項21に記載のコンピューティングシステム。
  33. 前記1つ以上のプロセッサは、
    前記GUIを介して前記クライアントデバイスから第2の仕様の第2のパラメータを受信することであって、前記第2の仕様の前記第2のパラメータは、(i)第2のリモートネットワークの第3の統合ポイント、(ii)前記第3の統合ポイントから受信した応答と関連付けられた第2のページネーションタイプ、及び(iii)前記応答に現れる前記第2のリモートネットワークにより提供される前記コンピューティングサービスの記述と前記データベーステーブルの前記フィールドとの間のマッピングの第2のセットを含むことと、
    前記第2の仕様を前記永続ストレージ内に格納すること
    を含む動作を前記クラウド統合アプリケーションに実施させるように構成される、請求項21に記載のコンピューティングシステム。
  34. リモートネットワークの仕様のパラメータに対応するユーザインターフェース要素を有するグラフィカルユーザインターフェース(GUI)を生成することと、
    前記GUIをクライアントデバイスに提供することと、
    前記GUIを介して前記クライアントデバイスから前記仕様の前記パラメータを受信することであって、前記仕様の前記パラメータは、(i)前記リモートネットワークの統合ポイント、(ii)前記統合ポイントから受信した応答と関連付けられたページネーションタイプ、及び(iii)前記応答に現れる前記リモートネットワークにより提供されるコンピューティングサービスの記述と永続ストレージ内のデータベーステーブルのフィールドとの間のマッピングのセットを含み、前記データベーステーブルは、前記リモートネットワークにより提供される前記コンピューティングサービスの表現を格納するように構成されることと、
    前記仕様を前記永続ストレージ内に格納すること
    を含む、コンピュータ実装方法。
  35. 前記永続ストレージから前記統合ポイント、前記ページネーションタイプ、及び前記仕様のマッピングの前記セットを検索することと、
    前記ページネーションタイプ及び前記統合ポイントから、前記リモートネットワークの第2の統合ポイントを判定することであって、前記統合ポイントは、第1のパス、若しくは第1のクエリ文字列、又はそれらの組み合わせを含むユニフォームリソースロケータ(URL)を含み、前記ページネーションタイプは、第2のパス又は第2のクエリ文字列を指定し、前記第2の統合ポイントは、前記第2のパス、若しくは前記第2のクエリ文字列、又はそれらの組み合わせを含む第2のURLを含むこと
    を含む、請求項34に記載の方法。
  36. 前記統合ポイントを介して、前記リモートネットワークにより提供される前記コンピューティングサービスの第1の記述をリクエスト及び受信することと、
    前記第2の統合ポイントを介して、前記リモートネットワークにより提供される前記コンピューティングサービスの第2の記述をリクエスト及び受信することと、
    前記データベーステーブルの前記フィールド内に、マッピングの前記セットに従って前記第1の記述及び前記第2の記述を格納すること
    を含む、請求項35に記載の方法。
  37. コンピューティングシステムの1つ以上のプロセッサにより実行可能な命令を格納する非一時的コンピュータ可読媒体であって、前記コンピューティングシステムは、リモートネットワークにより提供されるコンピューティングサービスの表現を格納するように構成されたデータベーステーブルを有する永続ストレージを含み、前記命令は、
    リモートネットワークの仕様のパラメータに対応するユーザインターフェース要素を有するグラフィカルユーザインターフェース(GUI)を生成することと、
    前記GUIをクライアントデバイスに提供することと、
    前記GUIを介して前記クライアントデバイスから前記仕様の前記パラメータを受信することであって、前記仕様の前記パラメータには、(i)第1のパス、第1のクエリ文字列、又はそれらの組み合わせを含む前記リモートネットワークの統合ポイントの第1のユニフォームリソースロケータ(URL)、(ii)前記統合ポイントから受信した応答と関連付けられたページネーションタイプ、及び(iii)前記応答に現れる前記リモートネットワークにより提供される前記コンピューティングサービスの記述と前記データベーステーブルのフィールドとの間のマッピングのセットを含み、前記ページネーションタイプは、第2のパス、若しくは第2のクエリ文字列、又はそれらの組み合わせを指定することと、
    前記統合ポイント及び前記ページネーションタイプに基づいて、前記リモートネットワークの第2の統合ポイントの第2のURLを判定することであって、前記第2のURLは、前記第2のパス、若しくは前記第2のクエリ文字列、又はそれらの組み合わせを含むことと、
    前記仕様を前記永続ストレージ内に格納すること
    のための命令を含む、非一時的コンピュータ可読媒体。
  38. 前記命令は、
    前記第1のURLから、前記リモートネットワークにより提供される前記コンピューティングサービスの第1の記述をリクエスト及び受信することと、
    前記第1の記述に基づいて、前記第2のクエリ文字列のキーと値のペアを判定することと、
    前記第2のクエリ文字列を含む前記第2のURLから、前記リモートネットワークにより提供される前記コンピューティングサービスの第2の記述をリクエスト及び受信することと、
    前記データベーステーブルの前記フィールド内に、マッピングの前記セットに従って前記第1の記述及び前記第2の記述を格納すること
    のための命令を含む、請求項37に記載の非一時的コンピュータ可読媒体。
  39. 前記第1のURLの前記第1のクエリ文字列は、第1のオフセットパラメータ値及びサイズパラメータ値を含み、前記第2のURLの前記第2のクエリ文字列は、第2のオフセットパラメータ値及び前記サイズパラメータ値を含む、請求項37に記載の非一時的コンピュータ可読媒体。
  40. 前記第1のURLの前記第1のクエリ文字列は第1のページパラメータ値を含み、前記第2のURLの前記第2のクエリ文字列は第2のページパラメータ値を含む、請求項37に記載の非一時的コンピュータ可読媒体。
JP2022517713A 2019-09-18 2020-09-15 サービス統合としてのソフトウェアのコードレス仕様 Active JP7291854B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/575,052 US11157241B2 (en) 2019-09-18 2019-09-18 Codeless specification of software as a service integrations
US16/575,052 2019-09-18
PCT/US2020/050861 WO2021055347A1 (en) 2019-09-18 2020-09-15 Codeless specification of software as a service integrations

Publications (2)

Publication Number Publication Date
JP2022548721A JP2022548721A (ja) 2022-11-21
JP7291854B2 true JP7291854B2 (ja) 2023-06-15

Family

ID=72744843

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022517713A Active JP7291854B2 (ja) 2019-09-18 2020-09-15 サービス統合としてのソフトウェアのコードレス仕様

Country Status (6)

Country Link
US (2) US11157241B2 (ja)
EP (1) EP4031968A1 (ja)
JP (1) JP7291854B2 (ja)
KR (1) KR20220057631A (ja)
AU (2) AU2020350525B2 (ja)
WO (1) WO2021055347A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12124446B2 (en) * 2019-12-06 2024-10-22 Sap Se Intelligent sharing pagination mechanism adaptive to huge data
US11423124B2 (en) 2019-12-20 2022-08-23 Servicenow, Inc. Systems and methods for asset management
US11853315B2 (en) * 2020-02-12 2023-12-26 Servicenow, Inc. Synchronization between computational instances of a remote network management platform
US11249715B2 (en) 2020-06-23 2022-02-15 Switchboard Visual Technologies, Inc. Collaborative remote interactive platform
US12093747B2 (en) * 2020-09-18 2024-09-17 International Business Machines Corporation Workload orchestration in a multi-cloud environment
US11989558B2 (en) * 2022-02-24 2024-05-21 Sap Se Automatic generation of a cloud integration adapter from a standard, programming language-agnostic interface specification
US11461480B1 (en) 2022-05-24 2022-10-04 Switchboard Visual Technologies, Inc. Synchronizing private data with reduced trust
US20240248943A1 (en) * 2023-01-19 2024-07-25 Boomi, LP Automated and scalable monitoring of changes to software services

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009540430A (ja) 2006-06-05 2009-11-19 マイクロソフト コーポレーション データベーススキーマからのウェブフォームの自動生成方法
JP2019149160A (ja) 2018-02-26 2019-09-05 サービスナウ, インコーポレイテッドServiceNow, Inc. ウェブページを構築しモデル化するためのシステム

Family Cites Families (65)

* 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
US8266266B2 (en) * 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
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
CN1300677C (zh) * 2000-06-22 2007-02-14 微软公司 分布式计算服务平台
US6983321B2 (en) 2000-07-10 2006-01-03 Bmc Software, Inc. System and method of enterprise systems and business impact management
US6678887B1 (en) 2000-07-11 2004-01-13 Networks Associates Technology, Inc. Customizing business logic and data sources by modifying methods defined within an API
US6609122B1 (en) 2000-08-01 2003-08-19 Bmc Software, Inc. Navigation of view relationships in database system
US7028301B2 (en) 2000-12-08 2006-04-11 Bmc Software, Inc. System and method for automatic workload characterization
US7170864B2 (en) 2001-03-08 2007-01-30 Bmc Software, Inc. System and method for WAP server management using a single console
US7506047B2 (en) 2001-03-30 2009-03-17 Bmc Software, Inc. Synthetic transaction monitor with replay capability
US7089245B1 (en) 2001-08-31 2006-08-08 Bmc Software, Inc. Service desk data transfer interface
AU2003212608A1 (en) 2002-03-01 2003-09-16 Bmc Software, Inc. System and method for assessing and indicating the health of components
US7131037B1 (en) 2002-06-05 2006-10-31 Proactivenet, Inc. Method and system to correlate a specific alarm to one or more events to identify a possible cause of the alarm
US7020706B2 (en) 2002-06-17 2006-03-28 Bmc Software, Inc. Method and system for automatically updating multiple servers
US7254778B2 (en) * 2002-08-27 2007-08-07 Sun Microsystems, Inc. System and method browsing a network topology using a character driven interface
US7194728B1 (en) 2002-11-18 2007-03-20 Bmc Software, Inc. System and method for packaging updates
US7062683B2 (en) 2003-04-22 2006-06-13 Bmc Software, Inc. Two-phase root cause analysis
US7945860B2 (en) 2003-05-14 2011-05-17 Hewlett-Packard Development Company, L.P. Systems and methods for managing conversations between information technology resources
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
US7689628B2 (en) 2005-05-19 2010-03-30 Atul Garg Monitoring several distributed resource elements as a resource pool
US7882213B2 (en) 2003-06-03 2011-02-01 Bmc Software, Inc. Network management system to monitor managed elements
US8224683B2 (en) 2003-07-08 2012-07-17 Hewlett-Packard Development Company, L.P. Information technology service request level of service monitor
US7133884B1 (en) 2003-11-26 2006-11-07 Bmc Software, Inc. Unobtrusive point-in-time consistent copies
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
US7610512B2 (en) 2006-01-06 2009-10-27 Hewlett-Packard Development Company, L.P. System and method for automated and assisted resolution of it incidents
US8887133B2 (en) 2006-04-28 2014-11-11 Bmc Software, Inc. Bi-directional communication between change management tool and implementation tools
US7818324B1 (en) * 2007-11-14 2010-10-19 Google Inc. Searching indexed and non-indexed resources for content
US8051164B2 (en) 2007-12-14 2011-11-01 Bmc Software, Inc. Impact propagation in a directed acyclic graph having restricted views
US8924845B2 (en) * 2008-02-20 2014-12-30 Lsi Corporation Web application code decoupling and user interaction performance
US8266096B2 (en) 2008-10-24 2012-09-11 Bmc Software, Inc. Vendor portfolio management in support of vendor relationship management analysis, planning and evaluation
US8646093B2 (en) * 2009-03-31 2014-02-04 Bmc Software, Inc. Method and system for configuration management database software license compliance
US9454526B1 (en) * 2009-10-16 2016-09-27 Iqor Holdings Inc., Iqor US Inc. Apparatuses, methods and systems for a chart of accounts simplifier
US8743121B2 (en) 2009-12-23 2014-06-03 Bmc Software, Inc. Smart impact views
US9805322B2 (en) 2010-06-24 2017-10-31 Bmc Software, Inc. Application blueprint and deployment model for dynamic business service management (BSM)
US9122536B2 (en) 2009-12-30 2015-09-01 Bmc Software, Inc. Automating application provisioning for heterogeneous datacenter environments
US8457928B2 (en) 2010-03-26 2013-06-04 Bmc Software, Inc. Automatic determination of dynamic threshold for accurate detection of abnormalities
US8832652B2 (en) 2010-03-26 2014-09-09 Bmc Software, Inc. Method for customizing software applications
US8478569B2 (en) 2010-03-26 2013-07-02 Bmc Software, Inc. Auto adjustment of baseline on configuration change
US8674992B2 (en) 2010-06-24 2014-03-18 Bmc Software, Inc. Spotlight graphs
US8402127B2 (en) 2010-06-28 2013-03-19 Bmc Software, Inc. System and method for offering virtual private clouds within a public cloud environment
US8631067B2 (en) 2010-07-01 2014-01-14 Red Hat, Inc. Architecture, system and method for providing a neutral application programming interface for accessing different cloud computing systems
US8806348B2 (en) * 2011-05-12 2014-08-12 Google Inc. Data model generation based on user interface specification
US8924561B2 (en) 2011-05-13 2014-12-30 International Business Machines Corporation Dynamically resizing a networked computing environment to process a workload
US8689241B2 (en) 2011-09-30 2014-04-01 Bmc Software, Inc. Dynamic evocations for computer event management
US8914768B2 (en) 2012-03-28 2014-12-16 Bmc Software, Inc. Automated blueprint assembly for assembling an application
EP2662782A1 (en) * 2012-05-10 2013-11-13 Siemens Aktiengesellschaft Method and system for storing data in a database
US9122552B2 (en) * 2012-06-29 2015-09-01 Bmc Software, Inc. Hybrid cloud infrastructures
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
US9098322B2 (en) 2013-03-15 2015-08-04 Bmc Software, Inc. Managing a server template
US9654473B2 (en) 2013-06-28 2017-05-16 Bmc Software, Inc. Authentication proxy agent
US10084650B2 (en) * 2013-07-09 2018-09-25 Tail-f Systems AB Graphical user interface for customizing graphical representations based on registry data
KR102247410B1 (ko) * 2014-02-07 2021-05-04 오라클 인터내셔날 코포레이션 모바일 클라우드 서비스 아키텍처
US20160103799A1 (en) * 2014-10-08 2016-04-14 Connotate, Inc. Methods and systems for automated detection of pagination
US9535737B2 (en) 2015-01-30 2017-01-03 Bladelogic, Inc. Dynamic virtual port provisioning
US10304222B2 (en) 2015-06-05 2019-05-28 Oracle International Corporation System and method for graphically displaying recommended mappings in an integration cloud service design time
US10209690B2 (en) * 2016-01-15 2019-02-19 Google Llc Systems and methods for provisioning devices using acoustic signals
US10466867B2 (en) * 2016-04-27 2019-11-05 Coda Project, Inc. Formulas
US10389589B2 (en) * 2017-05-05 2019-08-20 Servicenow, Inc. Unified device and service discovery across multiple network types
US20190102841A1 (en) * 2017-10-04 2019-04-04 Servicenow, Inc. Mapping engine configurations with task managed workflows and grid user interfaces
US10819586B2 (en) * 2018-10-17 2020-10-27 Servicenow, Inc. Functional discovery and mapping of serverless resources
US11258865B2 (en) * 2019-03-28 2022-02-22 Servicenow, Inc. Automated integration with cloud-based services
US10719503B1 (en) * 2019-05-02 2020-07-21 Servicenow, Inc. Interface for supporting integration with cloud-based service providers
US11252025B2 (en) * 2020-04-16 2022-02-15 Juniper Networks, Inc. Model driven configuration management for microservices

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009540430A (ja) 2006-06-05 2009-11-19 マイクロソフト コーポレーション データベーススキーマからのウェブフォームの自動生成方法
JP2019149160A (ja) 2018-02-26 2019-09-05 サービスナウ, インコーポレイテッドServiceNow, Inc. ウェブページを構築しモデル化するためのシステム

Also Published As

Publication number Publication date
US20210081179A1 (en) 2021-03-18
JP2022548721A (ja) 2022-11-21
US20210373856A1 (en) 2021-12-02
KR20220057631A (ko) 2022-05-09
WO2021055347A1 (en) 2021-03-25
EP4031968A1 (en) 2022-07-27
AU2020350525A1 (en) 2022-04-07
US11740873B2 (en) 2023-08-29
US11157241B2 (en) 2021-10-26
AU2020350525B2 (en) 2023-12-14
AU2024201569A1 (en) 2024-03-28

Similar Documents

Publication Publication Date Title
JP7217816B2 (ja) クラウドベースサービスのプログラムオーケストレーション
US11329887B2 (en) Device and service discovery across multiple network types
JP7304442B2 (ja) クラウドベースの認証、承認、及びユーザ管理サービスの発見及びマッピング
JP7291854B2 (ja) サービス統合としてのソフトウェアのコードレス仕様
US11356343B2 (en) Splitting network discovery payloads based on degree of relationships between nodes
US11240304B2 (en) Selective server-side execution of client-side scripts
CA2999698C (en) Automatic grouping of similar applications and devices on a network map
US20200019637A1 (en) External data management in a remote network management platform
US11108647B2 (en) Service mapping based on discovered keywords
US10983770B2 (en) Efficient bundling and delivery of client-side scripts
US20200351147A1 (en) Descriptor architecture for a remote network management platform
JP2024531889A (ja) シングルタイプコンピューティングシステムにおけるマルチタイプユーザのサポート
US11734381B2 (en) Efficient downloading of related documents
JP2024106320A (ja) プラットフォームインテリジェンスの設定および展開のための統合フレームワーク

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220518

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220518

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230428

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: 20230516

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230605

R150 Certificate of patent or registration of utility model

Ref document number: 7291854

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150