JP2023522785A - 調和総合プロキシサービス - Google Patents
調和総合プロキシサービス Download PDFInfo
- Publication number
- JP2023522785A JP2023522785A JP2022565583A JP2022565583A JP2023522785A JP 2023522785 A JP2023522785 A JP 2023522785A JP 2022565583 A JP2022565583 A JP 2022565583A JP 2022565583 A JP2022565583 A JP 2022565583A JP 2023522785 A JP2023522785 A JP 2023522785A
- Authority
- JP
- Japan
- Prior art keywords
- proxy
- services
- service
- message
- applicable
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
例示的プロキシサーバが開示される。プロキシサーバは、受け取ったネットワークメッセージを処理するための複数のサービスを含む。受け取ったネットワークメッセージに適用することができるプロキシサービスが決定される。これらの複数のプロキシサービスから適用可能プロキシサービスが選択される。ネットワークメッセージは、処理のために適用可能プロキシサービスにルーティングされる。
Description
[001]プロキシサービスまたはプロキシサーバは、リソースを提供するサーバにリソースを求めるユーザエージェントなどのクライアント間の仲介を提供するサーバアプリケーションまたはデバイスである。クライアントおよびサーバは、クライアントとサーバの間で直接的に導くのではなく、プロキシサーバを介してコンピュータネットワークトラフィックを導くことができる。例えばクライアントは、ウェブブラウザなどのユーザエージェントを介してリクエストを生成する。プロキシサーバが使用される場合、リクエストはプロキシサーバに提供され、プロキシサーバは、クライアントに代わってサーバにリクエストする。また、プロキシサーバは、サーバからの応答を収集し、その応答をクライアントに転送する。いくつかの例では、プロキシサーバは、クライアントとサーバの間で渡されるデータを変更し、トラフィックをフィルタリングすることも可能である。プロキシサーバは、フォワードプロキシまたはリバースプロキシとして類別され得る。フォワードプロキシは、ゲートウェイまたはトンネリングなどのサービスをクライアントまたはクライアントのグループに提供する。フォワードプロキシは、ネットワークトラフィックを低減し、制御するためにインタネットサービスを記憶し、転送することができ、また、フォワードプロキシは、Internet Protocol(IP)アドレスを変更する、または隠すために使用され得る。リバースプロキシは、サーバの識別情報を隠すことができ、また、負荷平衡化、認証、解読およびキャッシングのためのものである。
[002]この概要は、以下の発明を実施するための形態の中でさらに説明される単純化された形態で概念の選択を紹介するために提供されている。この概要には、特許請求される主題のキーとなる特徴または本質的な特徴を識別することも、あるいは特許請求される主題の範囲を限定するために使用されることも意図されていない。
[003]例示的プロキシサーバが開示される。プロキシサーバは、受け取ったネットワークメッセージを処理するための複数のサービスを含む。受け取ったネットワークメッセージに適用することができるプロキシサービスが決定される。これらの複数のプロキシサービスから適用可能プロキシサービスが選択される。ネットワークメッセージは、処理のために適用可能プロキシサービスにルーティングされる。一例では、プロキシサーバはオーケストレータおよび複数のサービスを含む。オーケストレータはネットワークメッセージを適用可能サービスにルーティングする。一例では、プロキシサーバは、クライアントデバイスとコンテンツサーバの間の通信をルーティングするためにネットワーク環境に含まれてもよく、また、通信はウェブトラフィックの形態であってもよい。例えばメッセージは、クライアントデバイスからコンテンツサーバへのHTTPリクエストメッセージであっても、あるいはコンテンツサーバからクライアントデバイスへのHTTP応答メッセージであってもよい。一例では、プロキシサーバは、クラウドアクセスセキュリティブローカなどの安全保護サービスの一部として含まれてもよく、また、フォワードプロキシまたはリバースプロキシとして構成され得る。
[004]プロキシサーバは複数のモジュールまたはサービスとして実現されてもよく、個々のサービスは、他のサービスに影響を及ぼすことなく展開され、維持され、かつ、拡張され得る。さらに、メッセージは、サービスのすべてをそのメッセージに適用することができるわけではない場合、サービスのすべてを介してではなく、そのメッセージに適用することができるサービスなどの関連するサービスにルーティングされる。例えばメッセージは、複数のサービスのセットのサービスを動的に抜かし、あるいは回避することができる。一例では、複数のプロキシサービスのプロキシサービスは互いに緩く結合されており、これらの複数のプロキシサービスの確固としたセットには含まれていない。例えば複数のプロキシサービスのプロキシサービスの各々は、コンテナなどの個別に拡張可能で、維持可能なモジュールに含まれている。複数のプロキシサービスのプロキシサービスは、互いに独立して拡張され、維持され、かつ、構築され得る。
[005]添付の図面は、実施形態についてのさらなる理解を提供するために含まれ、また、本開示に組み込まれ、かつ、本開示の一部を構成している。これらの図面は実施形態を例証したものであり、説明と相俟って、実施形態の原理を説明する働きをしている。他の実施形態および実施形態の多くの意図された利点は、以下の説明を参照することによってより良好に理解されるため、容易に認識されよう。図面の要素は必ずしも互いに対してスケール通りではない。同様の参照符号は対応する同様の部品を示している。
[010]以下の発明を実施するための形態では、本明細書の一部を形成し、また、本発明が実践され得る特定の実施形態が例証として示されている添付の図面が参照されている。本発明の範囲を逸脱することなく、他の実施形態が利用され、また、構造的または論理的変更が加えられ得ることを理解されたい。したがって以下の説明は、制限的な意味で解釈されるべきではない。本明細書において説明されている様々な例示的実施形態の特徴は、他に明確に言及されていない限り、部分的または全体的に互いに結合され得ることを理解されたい。
[011]図1は、動作環境で使用され得る、また、プロセスを実施するための計算デバイスなどのコンピュータシステムを制御するためのコンピュータ実行可能命令を記憶する1つまたは複数のコンピュータ可読記憶媒体上に含まれているコンピュータアプリケーションをホストし、あるいは走らせるために使用され得る例示的コンピュータシステムを示したものである。例示的コンピュータシステムは計算デバイス100などの計算デバイスを含む。計算デバイス100は、いくつかの形態のうちの1つまたは複数を取ることができる。このような形態は、タブレット、パーソナルコンピュータ、ワークステーション、サーバ、ハンドヘルドデバイス、消費者電子デバイス(ビデオゲームコンソールまたはデジタルビデオレコーダなど)、等々を含み、また、独立型デバイスであってもよく、あるいはコンピュータネットワークの一部として構成され得る。
[012]基本ハードウェア構成では、計算デバイス100は、典型的には、1つまたは複数の処理ユニットすなわちプロセッサ102を有するプロセッサシステム、およびメモリ104を含む。一例として処理ユニットは、チップ上の2つ以上の処理コア、または2つ以上のプロセッサチップを含むことができる。いくつかの例では、計算デバイスはまた、プロセッサ102からオフロードされた処理機能を実施するために、グラフィックスプロセッサユニット上での汎用計算のためのグラフィックスプロセッサなどの1つまたは複数の追加処理プロセッサまたは専用プロセッサ(図示せず)を有することができる。メモリ104は階層で配置されてもよく、また、1つまたは複数のレベルのキャッシュを含むことができる。メモリ104は、計算デバイスの構成およびタイプに応じて、揮発性(ランダムアクセスメモリ(RAM)など)、不揮発性(リードオンリメモリ(ROM)、フラッシュメモリ、等々など)、またはそれらの2つの何らかの組合せであってもよい。
[013]計算デバイス100はまた、追加特徴または機能性を有することができる。例えば計算デバイス100はまた、追加記憶装置を含むことができる。このような記憶装置は取外し可能であっても、あるいは非取外し可能であってもよく、また、取外し可能記憶装置108および非取外し可能記憶装置110などの磁気または光ディスク、ソリッド-ステートメモリあるいはフラッシュ記憶デバイスを含むことができる。コンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータなどの情報を記憶するための任意の適切な方法または技術で実現される揮発性および不揮発性媒体、取外し可能および非取外し可能媒体を含む。メモリ104、取外し可能記憶装置108および非取外し可能記憶装置110は、すべて、コンピュータ記憶媒体の例である。コンピュータ記憶媒体は、RAM、ROM、EEPROM、フラッシュメモリまたは他のメモリ技術、CD-ROM、デジタル汎用ディスク(DVD)または他の光記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶デバイス、ユニバーサルシリアルバス(USB)フラッシュドライブ、フラッシュメモリカードまたは他のフラッシュ記憶デバイス、または所望の情報を記憶するために使用され得る、あるいは計算デバイス100によってアクセスされ得る任意の他の記憶媒体を含む。したがってそれ自体が伝搬する信号は記憶媒体として適していない。このようなコンピュータ記憶媒体は、すべて、計算デバイス100の一部であってもよい。
[014]計算デバイス100は、しばしば、計算デバイスに入力および出力を提供するための様々なデバイスに接続するために、USB接続、表示ポート、所有権を主張できる接続、等々などの1つまたは複数の入力および/または出力接続を含む。入力デバイス112は、キーボード、位置決め装置(例えばマウス、トラックパッド)、スタイラス、音声入力デバイス、タッチ入力デバイス(例えばタッチスクリーン)、等々などのデバイスを含むことができる。出力デバイス111は、ディスプレイ、スピーカ、プリンタ、等々などのデバイスを含むことができる。
[015]計算デバイス100は、しばしば、計算デバイス100による他のコンピュータ/アプリケーション115との通信を可能にする1つまたは複数の通信接続114を含む。例示的通信接続は、イーサネットインタフェース、無線インタフェース、バスインタフェース、記憶領域ネットワークインタフェースおよび所有権を主張できるインタフェースを含むことができる。通信接続は計算デバイス100をコンピュータネットワークに結合するために使用されてもよく、コンピュータネットワークは、トポロジー、接続方法およびスケールなどの広範囲にわたる様々な特性に従って分類され得る。ネットワークは、計算デバイスおよび恐らくは、通信を容易にし、かつ、相互接続されたデバイス間のリソースおよび情報の共有を可能にする通信チャネルによって相互接続された他のデバイスの集合である。コンピュータネットワークの例には、ローカルエリアネットワーク、広域ネットワーク、インターネットまたは他のネットワークがある。
[016]一例では、計算デバイス100のうちの1つまたは複数は、ネットワークにおけるユーザのためのクライアントデバイスとして構成され得る。クライアントデバイスは、計算環境におけるネットワーク上のサーバとの遠隔接続を確立するように構成され得る。クライアントデバイスは、オペレーティングシステム、ウェブブラウザ、クラウドアクセスエージェント、ターミナルエミュレータまたはユーティリティなどのアプリケーションまたはソフトウェアを走らせるように構成され得る。一例では、クライアントデバイスはまた、サーバアプリケーションをさらに含むように構成され得る。
[017]一例では、計算デバイス100のうちの1つまたは複数は、サーバデバイスなどのネットワークにおけるサーバとして構成され得る。サーバは、計算ネットワークまたは計算環境におけるクライアントデバイスとの遠隔通信を確立するように構成され得る。サーバは、オペレーティングシステムなどのアプリケーションまたはソフトウェアを走らせるように構成され得る。
[018]一例では、計算デバイス100のうちの1つまたは複数は、クラウド計算サービスなどの分散計算サービスを提供するために、データセンターにおけるサーバとして構成され得る。データセンターはプールされたリソースを提供することができ、顧客またはテナントは、必要に応じて、サーバを追加する必要なく、あるいは追加ネットワーク化を必要とすることなく、これらのリソース上でアプリケーションを動的に準備し、拡張することができる。データセンターは、パーソナルコンピュータ、モバイルデバイス、埋設システムまたは他の計算デバイスを含むクラウド消費者によってこのように使用される局所計算デバイスと通信するように構成され得る。データセンター内では、計算デバイス100は、独立型デバイスまたは1つまたは複数の他のサーバデバイスのラックにおける個別のブレードのいずれかであるサーバとして構成され得る。個々のサーバ上の、プロセッサ102などの1つまたは複数のホストプロセッサ、ならびにメモリ104および記憶装置110を含む他の構成要素は、複数の仮想計算機をサポートすることができるホストオペレーティングシステムを走らせる。テナントは、最初にサーバ上の1つの仮想計算機を使用してアプリケーションを走らせることができる。データセンターは、需要が増加すると、サーバまたは他のサーバ上の追加仮想計算機を起動することができ、また、データセンターは、需要が減少すると仮想計算機を非活動にすることができる。
[019]データセンターは、単一の企業ユーザにサービスを提供するオン-プレミス専用システムであっても、または複数の、恐らくは無関係の顧客およびテナントにサービスを提供する公に(または半公に)アクセス可能な分散システムであっても、あるいはそれらの両方の組合せであってもよい。さらに、データセンターは単一の地理位置内に包含されても、あるいは地球全体にわたる複数の位置に分散されて、冗長性および災害復旧能力を提供することも可能である。例えばデータセンターは、テナントのアプリケーションのための一次位置として、サーバ上の1つの仮想計算機を指定することができ、また、第1の仮想計算機またはサーバが故障した場合の二次またはバックアップとして、同じサーバ上、または別のサーバ上の別の仮想計算機を起動することができる。
[020]クラウド計算環境は、通常、1つまたは複数のネットワーク接続データセンターで走らせるために、1つまたは複数の認識されたモデルの中で実現される。専用クラウド展開モデルは、専用クラウド展開モデルが内部的に管理されるか、あるいは第3者によって管理されるかどうかであろうと、また、専用クラウド展開モデルが組織のオン-プレミスでホストされるか、あるいは何らかの遠隔オフ-プレミス位置でホストされるかどうかであろうと組織のためにのみ操作されるインフラストラクチャーを含む。専用クラウドの例には自走データセンターがある。公衆クラウド展開モデルは、産業グループなどの公の一般公衆セクションすなわちラージセクションが利用できるようになされたインフラストラクチャーを含み、クラウドサービスを提供する組織によって走らされる。コミュニティークラウドはいくつかの組織によって共有され、支配権、コンプライアンスまたは安全保護などの共通の関心を有する組織の特定のコミュニティーをサポートする。展開モデルは、通常、同様のクラウドアーキテクチャーを含むが、共有クラウドモデルにおける安全保護などの特定の考慮事項に対処する特定の特徴を含むことも可能である。
[021]クラウド計算プロバイダーは、通常、サービスとしてのインフラストラクチャー、サービスとしてのプラットフォーム、およびサービスとしてのソフトウェアを含む他のサービスのうちの1つまたは複数として提供されるサービスモデルとして、クラウド計算環境のためのサービスを提供する。クラウド計算プロバイダーは、テナントまたは消費者に対するサブスクリプションを介してサービスを提供することができる。例えばサービスプロバイダーとしてのソフトウェアは、通常はウェブブラウザまたは他の薄いクライアントインタフェースからアクセスすることができるサブスクリプションサービスとしてソフトウェアアプリケーションを提供し、消費者はアプリケーションを局所計算デバイス上にロードしない。サービスプロバイダーとしてのインフラストラクチャーは、処理、記憶、ネットワークおよび他の基本的な計算リソースを準備する能力を消費者に提供し、消費者は、オペレーティングシステムおよびアプリケーションを含むことができるソフトウェアを展開し、走らせることができる。消費者は、通常、基礎をなしているクラウドインフラストラクチャーを管理しないが、通常、計算プラットフォームおよびプラットフォーム上で走るアプリケーションに対する制御を保持する。サービスプロバイダーとしてのプラットフォームは、消費者が作成し、あるいは消費者が獲得した、プロバイダーによってサポートされたプログラミング言語、ライブラリ、サービスおよびツールを使用して作成されたアプリケーションを消費者がクラウドインフラストラクチャーの上に展開する能力を提供する。いくつかの例では、消費者は、ネットワーク、サーバ、オペレーティングシステムまたは記憶装置を含む、基礎をなしているクラウドインフラストラクチャーを管理または制御しないが、展開されたアプリケーションおよび恐らくアプリケーション-ホスティング環境のための構成設定に対する制御を有している。他の例では、プロバイダーは、インフラストラクチャーとプラットフォームサービスの組合せを提供して、展開されたアプリケーションならびに基礎をなしているクラウドインフラストラクチャーの消費者による管理または制御を可能にすることができる。サービスプロバイダーとしてのプラットフォームは、サーバ、記憶装置およびネットワーク化などのインフラストラクチャーを含むことができ、また、ミドルウェア、開発ツール、ビジネスインテリジェンスサービス、データベース管理サービス、等々を含むことができ、また、構築、試験、展開、管理および更新のうちの1つまたは複数を含むアプリケーションライフサイクルの特徴をサポートするように構成され得る。
[022]図2は、調和総合プロキシサーバ202を含む例示的コンピュータネットワーク200を示したものであり、コンピュータネットワーク200は調和総合プロキシサーバ202のための例示的環境を示している。コンピュータネットワーク200は、プロキシサーバ202に結合された、クライアント-サーバアーキテクチャーにおけるクライアントデバイス204などのユーザデバイスを含む。コンピュータネットワーク200は、プロキシサーバ202に結合され、また、クライアントデバイス204との通信のためにクライアントデバイス204に動作可能に結合されたコンテンツサーバ206などのネットワークリソースをさらに含む。例えばクライアントデバイス204は、調和総合プロキシサーバ202を介してリクエストをコンテンツサーバ206に通信することができ、コンテンツサーバ206は、プロキシサーバを介して、そのリクエストに対する応答をクライアントデバイス204に通信することができる。コンテンツサーバ206は、ユーザデバイス202によって、コンピュータネットワーク200を介してアクセスされ得るメールサーバおよびウェブサーバなどの様々なネットワークリソースのうちの少なくとも1つを含むことができる。クライアントデバイス202は、コンテンツサーバ206上のリソースにアクセスするために、クライアントエージェントなどのアプリケーションを走らせることができる。クライアントエージェントの例には、ウェブブラウザ、専用通信アプリケーションおよびモバイルアプリケーションがある。一例では、サーバ206は、入ってくるリクエストを聞き、かつ、処理するように構成された起点サーバとして構成されている。いくつかの例では、コンテンツサーバ206は、静的リソースを起点サーバからキャッシュすることができるエッジサーバとして構成され得る。一例では、調和総合プロキシサーバ202はフォワードプロキシサーバとして構成され、このフォワードプロキシサーバは、一例では、複数のクライアントデバイス204などのクライアントデバイス204に代わって作用することができる。例えばフォワードプロキシはクライアントデバイス202の前方に配置されている。別の例では、調和総合プロキシサーバ202はリバースプロキシサーバとして構成され、このリバースプロキシサーバは、一例では、複数のコンテンツサーバ206などのコンテンツサーバ206に代わって作用することができる。
[023]一例では、プロキシサーバ202は、企業のための安全保護サービスなどの安全保護サービスに組み込まれてもよい。いくつかの例では、安全保護サービスはクラウド環境で展開され得る。安全保護サービスは、クライアントデバイスを悪意のあるサイトから保護するためのファイアウォールなどのフォワードプロキシとして構成され得る。また、あるいは追加として、安全保護サービスは、利用可能なサービスに対する条件付きアクセス制御を企業の政策に基づいて強化するためのリバースプロキシとして構成され得る。例えば企業のユーザは、第3者クラウドアプリケーションのサブスクリプションにアクセスする前に、安全保護サービスを介して導かれる。このような安全保護サービスの例は、Microsoft Cloud App Security Cloud Access App ControlまたはMicrosoft Accountの取引上の表示の下で利用可能であってもよく、これらはいずれもWashington州RedmondのMicrosoft社からのものである。
[024]クライアントデバイス204およびコンテンツサーバ206は、調和総合プロキシサーバ202を介して、通信またはネットワークセッションの中で構成され得る。例えばこのセッションは一時的なものであり、また、クライアントデバイス204とコンテンツサーバ206の間の対話式情報交換である。クライアントデバイス204およびサーバ206は、クライアントデバイス204がHTTPリクエストメッセージの実行をコンテンツサーバ206に依頼し、また、ハイパーテキストマークアップ言語すなわちHTMLファイル、および他のコンテンツなどのリソースを提供することができるサーバ206が応答メッセージをクライアントデバイス204に返す、ハイパーテキスト・トランスファ・プロトコルすなわちHTTPなどのリクエスト-応答プロトコルを使用することができる。HTTPセッションの間、クライアントデバイス204は、コンテンツサーバ206のポートへの伝送制御プロトコルすなわちTCP接続などの接続を確立することによってリクエストを開始する。そのポートをリッスンしているHTTPサーバは、クライアントデバイス204からのリクエストメッセージを待機する。コンテンツサーバ206は、リクエストを受け取ると、要求されたリソースを含むことができる応答メッセージをクライアントデバイス204に送り返すことができる。
[025]接続が確立されると、クライアントデバイス204は、クライアントエージェントなどを介してリクエストを送ることができる。リクエストはテキスト指示文を含むことができる。例えばリクエストの行は、文書の経路およびプロトコルバージョンなどのパラメータが後続する方法を含むことができる。リクエストは、ブロック中の1つまたは複数のヘッダーを提供することも可能であり、ヘッダーは、適切であるデータのタイプの情報を使用してサーバに情報を提供することができる。また、任意選択のデータブロックがリクエストメッセージボディーとしてリクエストに含まれてもよい。HTTPは、リクエストに含まれ得るリソースに対して実施される所望のアクションを示す一組のリクエスト方法を定義する。したがってHTTPリクエストメッセージは、リクエスト行、ヘッダーおよびリクエストメッセージボディーを含むことができる。コンテンツサーバ206はリクエストを処理して応答を返すことができる。リクエストと同様、応答も、3つのブロックを含むことができる一組のテキスト指示文である。状態行は、使用されたHTTPバージョンの肯定応答および状態リクエストを含むことができる。応答も、リクエストの中で送られたデータに関する情報を提供するヘッダーまたはヘッダーのブロックを含むことができる。さらに、応答は、応答メッセージボディーとしてクライアントデバイス204に送られたデータを含むデータブロックを含むことができる。HTTPは、応答に含まれ得る、応答の状態を示す一組の応答状態コードを定義する。したがってHTTP応答メッセージは、状態行、ヘッダーおよび応答メッセージボディーを含むことができる。
[026]HTTPプロキシサーバは、リクエストおよび応答の数およびタイプに応じて、比較的大量のトラフィックを処理する際に呼ばれ得る。プロキシサーバは、従来、効率のために多くのモードおよびステップを使用して実行することができる単一として開発され、実現されている。しかしながらプロキシサーバのこのような実施態様は、プロキシサーバの保全を困難にし、また、マイクロサービスとしてのプロキシサーバの展開を困難にしている。例えば変更サイクルは一体に結合されており、プロキシサーバの態様の些細な変更であっても、プロキシサーバ全体の再構築または再展開が必要になる。さらに、プロキシサーバの拡張は、より多くのリソースを必要とする態様ではなく、プロキシサーバ全体の拡張を含み得る。確固としたプロキシサーバの問題に対処する1つの手法は、プロキシサーバを鎖で一体につながれた一組のプロキシサービスに分割することを含む。サービスは個別に維持され、拡張されてもよい。残念ながら連鎖プロキシサービスはセッションにとって非効率的である。通信は、サービスが通信におけるアプリケーションであるかどうかに無関係に、サービスからサービスへ通過する。例えばサービスがセッションの部分に適用可能であるかどうかに無関係に、リクエストおよび応答ボディーなどのセッションの大きい部分がサービスからサービスへ引き渡される。
[027]図3は、調和総合プロキシサーバ202としてコンピュータネットワーク200の中で実現され得る例示的調和総合プロキシサーバ300を示したものである。調和総合プロキシサーバ300は複数のモジュールまたはサービスとして実現されてもよく、個々のサービスは、他のサービスに影響を及ぼすことなく展開され、維持され、かつ、拡張され得る。さらに、リクエストメッセージおよび応答メッセージの形態のトラフィック、すなわちメッセージは、サービスのすべてをそのメッセージに適用することができるわけではない場合、サービスのすべてを介してではなく、そのメッセージに適用することができるサービスなどの関連するサービスにルーティングされる。例えばメッセージは、複数のサービスのセットのサービスを動的に抜かし、あるいは回避することができる。
[028]例示的調和総合プロキシサーバ300は、オーケストレータ302および一組のサービスなどの複数のプロキシサービス304を含む。調和総合プロキシサーバ300は、クライアントデバイス204またはコンテンツサーバ206などのネットワークデバイスのためのHTTPリクエストメッセージまたはHTTP応答メッセージなどのメッセージを受け取るように構成されている。調和総合サーバ300はメッセージをオーケストレータ302に引き渡し、オーケストレータは、複数のサービス304のうちのそのメッセージに適用することができるサービスのサブセットを決定することができる。メッセージは、複数のサービス304のうちのサブセットのサービス、すなわち適用可能なサービスに引き渡され、また、メッセージは、複数のサービス304のうちのすべてのサービスよりも少ないその適用可能なサービスで処理される。メッセージは次にネットワークデバイスに引き渡される。一例では、複数のサービスは2つのサービスを含むことができる。例えば1つのサービスはリクエストメッセージを処理することができ、また、他のサービスは応答メッセージを処理することができる。調和総合プロキシサーバ300で受け取られたメッセージはオーケストレータ302に引き渡され、オーケストレータ302は、複数のサービス304のリクエストメッセージサービスまたは応答メッセージサービスがそのメッセージに適用することができるサービスであるかどうかを決定する。メッセージは適用可能なサービスに引き渡され、また、メッセージは、複数のサービス304のうちのすべてではないサービスに引き渡される。メッセージが適用可能なサービスによって処理されると、メッセージはネットワークデバイスに引き渡される。
[029]一例では、複数のプロキシサービス304のプロキシサービスは互いに緩く結合されており、複数のプロキシサービスのプロキシサービスはこれらの複数のプロキシサービスの確固としたセットには含まれていない。例えば複数のプロキシサービスのプロキシサービスの各々は、コンテナなどの個別に拡張可能で、維持可能なモジュールに含まれている。複数のプロキシサービス304のプロキシサービスは、互いに独立して拡張され、維持され、かつ、構築され得る。
[030]示されている例は、複数のサービス304の中にリクエストヘッダーサービス312、リクエストボディーサービス314、応答ヘッダーサービス316および応答ボディーサービス318を含む。リクエストヘッダーサービス312は、クライアントデバイス204から受け取ったHTTPリクエストメッセージのヘッダーを処理するために適用することができ、コンテンツサーバ206のためのものであることが意図されている。リクエストヘッダーボディー314は、クライアントデバイス204から受け取ったHTTPリクエストメッセージのボディー部分を処理するために適用することができ、コンテンツサーバ206のためのものであることが意図されている。応答ヘッダーサービス316は、コンテンツサーバ206から受け取ったHTTP応答メッセージのヘッダーを処理するために適用することができ、クライアントデバイス204のためのものであることが意図されている。応答ボディーサービス318は、コンテンツサーバ206から受け取ったHTTP応答メッセージのボディーを処理するために適用することができ、クライアントデバイス204のためのものであることが意図されている。一例では、リクエストメッセージのためのリクエストヘッダーサービス312およびリクエストボディーサービス314、または応答メッセージのための応答ヘッダーサービス316および応答ボディーサービス318などの、メッセージのための適用可能なサービスは、同時に、または逐次に適用され、あるいは他の組合せで適用され得る。オーケストレータ302は、複数のサービス304のサービス312、314、316、318のうちのメッセージに適用することができるサービスを決定し、また、適用可能なサービス312、314、316または318が複数のサービス304よりも少ない適用可能サービスを介してそのメッセージをルーティングする。
[031]図4は、調和総合プロキシサーバ300によって使用され得る例示的方法400を示したものである。複数のプロキシサービスを備えるプロキシサーバが402でネットワークメッセージを受け取る。ネットワークメッセージは、クライアントデバイス204とコンテンツサーバ206の間に導かれる。一例では、ネットワークメッセージは、HTTPリクエストメッセージおよびHTTP応答メッセージなどのHTTPメッセージである。受け取られたネットワークメッセージはオーケストレータ302に提供され、オーケストレータ302はそのメッセージを処理する。プロキシサーバのオーケストレータは、404で、複数のプロキシサービスのうちの受け取ったネットワークメッセージに適用することができるプロキシサービスを適用可能プロキシサービスとして決定する。一例では、受け取られたメッセージと対応する適用可能プロキシサービスは、複数のプロキシサービスよりも少ない。406で、受け取られたメッセージが処理のためにその適用可能プロキシサービスにルーティングされる。例では、受け取られたメッセージは、処理のために複数のプロキシサービス304よりも少ないプロキシサービスにルーティングされ、例えばオーケストレータ302によって動的にルーティングされる。一実例では、受け取られたメッセージは、複数のプロキシサービス304のうちの1つの適用可能プロキシサービスにルーティングされる。
[032]複数のサービス304は、メッセージの部分を処理するためのサービスを含むことができる。例えば複数のサービスは、受け取った個々のメッセージの開始行、ヘッダーおよびボディーの部分を相応じて処理するための個別のサービスを含むことができる。一例では、サービスは、リクエストメッセージおよび応答メッセージを個別に処理するように導かれてもよい。例えば複数のサービスは、複数のサービス304の中にリクエストヘッダーサービス312、リクエストボディーサービス314、応答ヘッダーサービス316および応答ボディーサービス318を含むことができる。さらに、サービスは2進フレームを処理するように導かれてもよい。サービスの他の例示的分割も企図されている。
[033]調和総合プロキシサーバ300の例では、調和総合プロキシサーバ300は入力モジュールでメッセージを受け取り、そのメッセージをモジュールとして構成され得るオーケストレータ302に提供する。調和総合プロキシサーバ300は、メッセージがHTTPメッセージ、リクエストメッセージ、応答メッセージであるかどうかなどのメッセージの態様を決定することができる。一例では、メッセージの態様はオーケストレータ302を使用して決定されてもよく、また、別の例では、メッセージの態様は、メッセージをオーケストレータ302に引き渡す前に、入力モジュールなどのサービスを使用して決定され得る。オーケストレータは、サービス312、314、316、318などの複数のサービス304のうちの受け取ったメッセージに適用することができるサービスを決定し、そのメッセージをその適用可能サービスにルーティングする。例えばボディーを有する応答メッセージは、応答ヘッダーサービス316および応答ボディーサービス318にルーティングされ得る。応答メッセージは、リクエストヘッダーサービス312およびリクエストボディーサービス314にはルーティングされない。別の例では、オーケストレータは、ボディーがないリクエストメッセージはリクエストヘッダーサービス312にルーティングされ、ただしリクエストボディーサービス314、応答ヘッダーサービス316および応答ボディーサービス318にはルーティングされないことを決定する。
[034]例示的調和総合プロキシサーバ300および方法400は、方法400を実施するためのプロセッサ102およびメモリ104を有する計算システムなどのシステムを制御するための1つまたは複数のハードウェアデバイスおよびコンピュータプログラムの組合せを含むように実現され得る。例えば調和総合プロキシサーバ300および方法400は、方法400を実施するためのプロセッサ102を制御するための実行可能命令のセットを有するコンピュータ可読媒体またはコンピュータ可読記憶デバイスとして実現され得る。調和総合プロキシサーバ300および方法400は、安全保護政策を強化するためにクラウドアクセスセキュリティブローカを実現する安全保護サービスなどのクラウド環境におけるサービスとして含まれてもよく、また、クライアントデバイス204とコンテンツサーバ206の間にウェブトラフィックを導くために、調和総合フォワードプロキシサーバまたは調和総合リバースプロキシサーバなどの調和総合プロキシサーバとして、データセンターの計算デバイス100上で実現されてもよい。
[035]以上、本明細書において、特定の実施形態を示し、かつ、説明したが、示され、かつ、説明された特定の実施形態に対して、本発明の範囲を逸脱することなく様々な代替実施態様および/または等価実施態様が置換され得ることは当業者には認識されよう。本出願には、本明細書において考察されている特定の実施形態のあらゆる適合または変更を包含することが意図されている。
Claims (10)
- プロキシサーバと共に使用するための方法であって、
受け取ったネットワークメッセージの適用可能プロキシサービスを決定するステップであって、前記適用可能プロキシサービスが複数のプロキシサービスから選択される、ステップと、
処理のために前記ネットワークメッセージを前記適用可能プロキシサービスにルーティングするステップと、
を含む方法。 - 前記ネットワークメッセージがHTTP(ハイパーテキスト・トランスファ・プロトコル)メッセージである、請求項1に記載の方法。
- 前記適用可能プロキシサービスが前記複数のプロキシサービスよりも少ない、請求項1に記載の方法。
- 前記複数のプロキシサービスがリクエストメッセージプロキシサービスおよび応答メッセージプロキシサービスを含む、請求項1に記載の方法。
- プロセッサを制御して、
受け取ったネットワークメッセージの適用可能プロキシサービスであって、複数のプロキシサービスから選択される適用可能プロキシサービスを決定し、
処理のために前記ネットワークメッセージを前記適用可能プロキシサービスにルーティングする、
コンピュータ実行可能命令を記憶するためのコンピュータ可読記憶デバイス。 - 前記複数のサービスのサービスが独立して拡張可能である、請求項5に記載のコンピュータ可読記憶デバイス。
- ネットワークメッセージがHTTPリクエストメッセージおよびHTTP応答メッセージのうちの1つである、請求項5に記載のコンピュータ可読記憶デバイス。
- 前記適用可能プロキシサービスが前記複数のプロキシサービスよりも少ない、請求項5に記載のコンピュータ可読記憶デバイス。
- プロキシサーバシステムであって、
一組の命令を記憶するためのメモリデバイスと、
前記一組の命令を実行して、
受け取ったネットワークメッセージの適用可能プロキシサービスであって、複数のプロキシサービスから選択される適用可能プロキシサービスを決定し、
処理のために前記ネットワークメッセージを前記適用可能プロキシサービスにルーティングする、
プロセッサと、
を備えるプロキシサーバシステム。 - 前記プロキシサーバシステムがクラウドアクセスセキュリティブローカに含まれている、請求項9に記載のプロキシサーバシステム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/859,548 | 2020-04-27 | ||
US16/859,548 US20210337041A1 (en) | 2020-04-27 | 2020-04-27 | Orchestrated proxy service |
PCT/US2021/023055 WO2021221815A1 (en) | 2020-04-27 | 2021-03-19 | Orchestrated proxy service |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023522785A true JP2023522785A (ja) | 2023-05-31 |
Family
ID=75498017
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022565583A Pending JP2023522785A (ja) | 2020-04-27 | 2021-03-19 | 調和総合プロキシサービス |
Country Status (7)
Country | Link |
---|---|
US (1) | US20210337041A1 (ja) |
EP (1) | EP4144070A1 (ja) |
JP (1) | JP2023522785A (ja) |
KR (1) | KR20230003490A (ja) |
CN (1) | CN115516842A (ja) |
CA (1) | CA3179534A1 (ja) |
WO (1) | WO2021221815A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9736259B2 (en) * | 2015-06-30 | 2017-08-15 | Iheartmedia Management Services, Inc. | Platform-as-a-service with proxy-controlled request routing |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9736259B2 (en) * | 2015-06-30 | 2017-08-15 | Iheartmedia Management Services, Inc. | Platform-as-a-service with proxy-controlled request routing |
US10326864B2 (en) * | 2017-02-15 | 2019-06-18 | Sap Se | Dynamic orchestration of microservices |
US11463330B2 (en) * | 2018-03-15 | 2022-10-04 | Grant Viklund | System and methods for scalable cloud-based platform and related applications |
WO2021050816A1 (en) * | 2019-09-12 | 2021-03-18 | Jabil Inc. | Method and system for managing secure iot device applications |
-
2020
- 2020-04-27 US US16/859,548 patent/US20210337041A1/en not_active Abandoned
-
2021
- 2021-03-19 WO PCT/US2021/023055 patent/WO2021221815A1/en active Application Filing
- 2021-03-19 JP JP2022565583A patent/JP2023522785A/ja active Pending
- 2021-03-19 EP EP21718700.4A patent/EP4144070A1/en not_active Withdrawn
- 2021-03-19 KR KR1020227037371A patent/KR20230003490A/ko unknown
- 2021-03-19 CN CN202180031217.7A patent/CN115516842A/zh not_active Withdrawn
- 2021-03-19 CA CA3179534A patent/CA3179534A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4144070A1 (en) | 2023-03-08 |
CA3179534A1 (en) | 2021-11-04 |
US20210337041A1 (en) | 2021-10-28 |
WO2021221815A1 (en) | 2021-11-04 |
CN115516842A (zh) | 2022-12-23 |
KR20230003490A (ko) | 2023-01-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9961143B2 (en) | Providing enhanced data retrieval from remote locations | |
US7353276B2 (en) | Bi-directional affinity | |
US9871850B1 (en) | Enhanced browsing using CDN routing capabilities | |
US20090327460A1 (en) | Application Request Routing and Load Balancing | |
US10182126B2 (en) | Multilevel redirection in a virtual desktop infrastructure environment | |
US10187458B2 (en) | Providing enhanced access to remote services | |
CN106657180B (zh) | 用于云服务的信息传输方法、装置、终端设备及系统 | |
US8341285B2 (en) | Method and system for transferring files | |
US12074918B2 (en) | Network-based Media Processing (NBMP) workflow management through 5G Framework for Live Uplink Streaming (FLUS) control | |
US20210160220A1 (en) | Security service | |
CN113315706A (zh) | 私有云流量控制方法、设备及系统 | |
EP3967023B1 (en) | Web application wrapper | |
JP2023522785A (ja) | 調和総合プロキシサービス | |
US10481963B1 (en) | Load-balancing for achieving transaction fault tolerance | |
CN116264538A (zh) | 数据处理方法、装置、设备及计算机存储介质 | |
US8499023B1 (en) | Servlet-based grid computing environment using grid engines and switches to manage resources | |
US10868758B1 (en) | Enabling bypass flows for network traffic between devices | |
US11546405B2 (en) | Methods for exposing mainframe data as a web service and devices thereof | |
JP2022535489A (ja) | アウトバウンド市場および参照データのための統合貢献データブリッジを実装するシステムおよび方法 | |
US11910412B2 (en) | Media sink capabilities description | |
CN114650271B (zh) | 全局负载dns邻居站点学习方法及装置 | |
CN116684497A (zh) | 通信方法、装置、设备、介质和程序产品 |