(57)【要約】      （修正有）【課題】拡張可能なマルチテナント・サース（SaaS：Software as a Service）・ビジネスアプリケーションが、複数の機関をホスティング処理するために提供される。【解決手段】機関サービス部は、拡縮可能なグループにまとめられた専用のデータ記憶装置を備える仮想的又物理的なサーバによって提供される。拡縮可能なグループのコンポーネント間の分散配置された相互作用が拡張性及び信頼性を有効にする一方、当該サービスへの当該クライアントによるアクセスがシームレスに継続できるように、機関サービス部のロケーション変化が当該クライアントに提供される。カスタマイズ可能且つ動的なＡＰＩが、当該プラットフォームに組み込まれてもよく、当該ＡＰＩは、各機関のデータ及びアプリケーションにアクセスし、他から隔離され且つ第三者認証サービスが接続自在である。【選択図】図１
2014132462.tif 000002
【特許請求の範囲】
【請求項１】
拡張可能なマルチテナントサービスプラットフォームを提供する、コンピュータ装置において少なくとも部分的に実行される方法であって、
各々が前記プラットフォームによってホスティングされる少なくとも１つの機関サービス部に関連付けられているクライアントからのアクセスのためのリクエストを受信するステップと、
機関サービス部のロケーションを判別するステップであって、複数の機関サービス部が前記プラットフォーム内の拡縮可能なグループに組織化されているものと、
前記機関サービス部へのアクセスを可能にするために、前記クライアントに前記機関サービス部のロケーションを提供するステップと、
前記機関サービス部のロケーションが前記アクセス期間中に変化した場合に、前記クライアントの前記機関サービス部への継続したアクセスのために、当該変化したロケーションを前記クライアントに提供するステップと、
前記機関サービス部に関連するデータおよびアプリケーションが、前記複数の機関サービス部の他の機関サービス部から隔離されるように、前記複数の前記機関サービス部に対するアクセスを提供するように構成された、複数の動的かつ専用のアプリケーションプログラミングインターフェース（ＡＰＩ）を自動的に生成するステップであって、前記複数のＡＰＩが機関サービス部の追加および削除に適応するものと、
を含むことを特徴とする方法。
【請求項２】
請求項１に記載の方法であって、前記機関サービス部のロケーションを提供するステップに先立って、組み込まれた認証サービス及び第三者認証サービスのうちの１つを用いて、前記クライアントを認証するステップをさらに含むことを特徴とする方法。
【請求項３】
請求項２に記載の方法であって、リクエストされた機関サービス部への前記クライアントのアクセスは、クライアント接続のセキュリティ・ステータスとクライアントの証明書及び機関員資格のうちの一つに基づいて制限されることを特徴とする方法。
【請求項４】
請求項２に記載の方法であって、複数の認証モードを提供するステップをさらに含み、前記認証モードの各々は専用のエンドポイントを含み、前記クライアントが所望の認証モードを指定するのを可能にすることを特徴とする方法。
【請求項５】
請求項１に記載の方法であって、前記クライアントに、リクエストされた機関サービス部への前記クライアントのアクセスに関連付けられているコンフィギュレーション情報を提供するステップをさらに含むことを特徴とする方法。
【請求項６】
請求項１に記載の方法であって、前記拡縮可能なグループは、前記プラットフォームによってホスティングされる機関サービス部に関連付けられているアプリケーションの垂直的及び水平的な拡張性を可能にするように構成されていることを特徴とする方法。
【請求項７】
請求項１に記載の方法であって、前記プラットフォームは、前記プラットフォームによってホスティングされる機関サービス部のためのメタデータアクセスを提供することを特徴とする方法。
【請求項８】
拡張可能なマルチテナントサービスをホスティングするシステムであって、
システムによってホスティングされる少なくとも１つの機関サービス部に関連付けられているクライアントからのアクセスのためのリクエストを受信し、当該リクエストされた少なくとも１つの機関サービス部のロケーションを判別し、前記少なくとも１つの機関サービス部へのアクセスを可能にするために、前記クライアントに前記少なくとも１つの機関サービス部のロケーションを提供するように構成されたディスカバリサービス部と、
前記少なくとも１つの機関サービス部を提供するように構成された複数の拡縮可能なサービスクラスタと、
前記ディスカバリサービス部に関連付けられたコンフィギュレーション記憶部であって、前記複数のサービスクラスタに関連付けられているコンフィギュレーション情報及びロケーション情報を格納し、前記少なくとも１つの機関サービス部への前記クライアントのアクセス期間中における前記少なくとも１つの機関サービス部のロケーションの変化が前記クライアントに、前記少なくとも１つの機関サービス部への前記クライアントの継続したアクセスのために提供されるように構成されたコンフィギュレーション記憶部と、
前記少なくとも１つの機関サービス部に関連するデータおよびアプリケーションが、他の機関サービス部から隔離されるように、前記少なくとも１つの機関サービス部に対するアクセスを提供するように構成された、複数の専用のアプリケーションプログラミングインターフェース（ＡＰＩ）であって、前記複数の専用のＡＰＩが機関サービス部の追加および削除に適応するように自動的に生成されかつ動的であるものと、
を含むことを特徴とするシステム。
【請求項９】
請求項８に記載のシステムであって、前記ディスカバリサービス部及び前記サービスクラスタは、ウェブサービスとして提供されることを特徴とするシステム。
【請求項１０】
請求項８に記載のシステムであって、前記ディスカバリサービス部は、さらに、接続可能な認証サービスを介した複数の認証モードを用いて前記クライアントを認証するように構成されたことを特徴とするシステム。
【請求項１１】
請求項８に記載のシステムであって、前記ＡＰＩはカスタマイズ可能であり、許可を有するユーザが、カスタムオブジェクト及びカスタムプロセスのうちの少なくとも１つを、選択された機関サービス部に追加可能であることを特徴とするシステム。
【請求項１２】
請求項８に記載のシステムであって、前記ＡＰＩは、許可を有するユーザが
前記機関サービス部に関連付けられているデータを変更する動作と、
前記機関サービス部に関連付けられているプロセス及びロジックのうちの１つを定義する動作と、
前記機関サービス部に関連付けられているプロセス及びロジックのうちの１つを呼び出す動作と、
前記機関サービス部に関連付けられているプロセス及びロジックのうちの１つを変更する動作と、
を含む動作を実行できるように構成されたことを特徴とするシステム。
【請求項１３】
請求項８に記載のシステムであって、前記サービスクラスタは、分散配置された形で相互作用するように構成された複数のウェブサーバ、複数の機関データベース及び複数の非同期プロセッシングサーバを含むことを特徴とするシステム。
【請求項１４】
請求項１３に記載のシステムであって、前記複数のウェブサーバ、前記複数の機関データベース及び前記複数の非同期プロセッシングサーバのうちの少なくとも一部が仮想であることを特徴とするシステム。
【請求項１５】
請求項１３に記載のシステムであって、前記複数のウェブサーバ、前記複数の機関データベース及び前記複数の非同期プロセッシングサーバの複数のインスタンスが、拡縮性、負荷均衡化及び障害リカバリを可能にするように提供されることを特徴とするシステム。
【請求項１６】
コンピュータ上で実行されたとき、拡張可能なマルチテナントサービスプラットフォームを提供するための方法を遂行する、コンピュータ実行可能命令が記憶されたコンピュータ読取可能記憶装置であって、前記方法が、
前記プラットフォームによってホスティングされる少なくとも１つの機関サービス部に関連付けられているクライアントからのアクセスのためのリクエストであり、前記クライアントの証明書を含むリクエストを受信するステップと、
前記クライアントの証明書に基づいて、前記クライアントが利用可能な機関サービスのリストを判別するステップと、
前記機関サービスのリストを前記クライアントに提供するステップと、
前記リストのうちの少なくとも１つの前記機関サービス部にアクセスするリクエストを受信するステップと、
当該リクエストされた少なくとも１つの機関サービス部のロケーションを判別するステップであって、前記機関サービス部のリスト内の機関サービス部が前記プラットフォームによってホスティングされる拡縮可能なサービスクラスタによって提供されるものと、
前記機関サービス部へのアクセスを可能にするために、前記少なくとも１つの機関サービス部のロケーションを前記クライアントに提供するステップと、
前記機関サービス部のロケーションが前記アクセス期間中に変化した場合に、前記クライアントの前記機関サービス部への継続したアクセスのために、当該変化したロケーションを前記クライアントに提供するステップと、
少なくとも１つの前記機関サービス部に対するアクセスを提供するように構成された、複数の動的かつ専用のアプリケーションプログラミングインターフェース（ＡＰＩ）を自動的に生成するステップであって、前記複数のＡＰＩが機関サービス部の追加および削除に適応するものと、
を実行するため命令が記録されていることを特徴とするコンピュータ読取可能記憶装置。
【請求項１７】
請求項１６に記載のコンピュータ読取可能記憶装置であって、前記方法がさらに、前記クライアントによってリクエストされた各機関サービス部について少なくとも１つの認証モードを用いて前記クライアントを認証するステップを有することを特徴とするコンピュータ読取可能記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、拡張可能且つプログラム可能なマルチテナントサービスアーキテクチャーに関する。
【背景技術】
【０００２】
ビジネス努力とは、顧客要求に迅速呼応し、より速く市場に製品を出し、全体的な収益性を増やし、絶えず競争で好成績を得ようと励むものである。これら共通の市場への冒険に挑もうとする機敏さや能力は、堅固な（solid）ビジネスアプリケーション技術プラットフォームに依拠している。ビジネス上の機敏さを成し遂げるには、アプリケーション統合のために設計された多面的且つ知的なソフトウェア基盤が必要である。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ビジネスアプリケーションプラットフォームは、典型的にはシングルテナントであり、当該プラットフォームが単一の機関（organization）だけのためのアプリケーションをホスティングし、当該プラットフォームの全ての資源は当該機関のためだけに用いられることを意味する。かかるプラットフォームは、典型的には顧客によってホスティングされ、彼らの企業建物内に実装及び配置される。かかるプラットフォームを配置及び維持するためのコストは高額であるし、その費用対効果は最適化されていない場合がある。
【０００４】
他方、マルチテナントシステムを設計及び管理することそれ自身が挑戦である。実際のマルチテナントシステムにおいて、各クライアントは彼らの機関に接続するのに異なるスキーマを有する場合がある。さらに、各クライアントは、かかるシステムのセキュリティ、通信量管理、信頼性及び拡張性等からなる非常に複合的な作業の管理を提供する複数の機関に接続する場合がある。
【課題を解決するための手段】
【０００５】
本概要は、以下の発明の詳細な説明においてさらに説明される概念の抜粋を単純化された形式で紹介するために提供される。本概要は、請求される発明の鍵となる特徴又は本質的な特徴を特定することは意図されていないのみならず、請求された発明の範囲を画定することも意図されていない。
【０００６】
実施形態は、単一のプラットフォームで複数の機関にサービス提供するための、拡張可能なマルチテナント・サース（SaaS: software-as-a- service）モデルを提供することを目指している。実施形態に従ったプラットフォームは、当該プラットフォームによってホスティングされる機関サービス部のロケーション及びコンフィギュレーションに関連付けられている情報をクライアントに提供するディスカバリ（discovery）サービスを含むことができる。そして、当該クライアントは、拡縮可能なクラスタ内にホスティング（hosting）される機関サービス部にアクセスすることが可能となる。当該リクエストされたサービスの中断されないアクセスのために、ロケーションの変更を、当該クライアントに提供することができる。
【発明の効果】
【０００７】
これら及び他の特徴及び優位点は、引き続く詳細な説明を読むことによって明らかとなるであろう。前述の概要及び引き続く詳細な説明の双方は、説明のためだけのものであって、請求される特徴を制限するものではないことが理解されるべきである。
【図面の簡単な説明】
【０００８】
【図１】シングルテナントサービスモデル例を示す図である。
【図２】マルチテナントサービスモデル例を示す図である。
【図３】実施形態に従った拡張可能マルチテナントサービスアーキテクチャーを示す図である。
【図４】マルチテナントサービスの機関サービス部の要素例を示す図である。
【図５】処理動作においてクライアントとマルチテナントサービスの要素との間の相互作用を示す動作ダイヤグラムである。
【図６】実施形態が実行されるネットワーク化された環境例を示す図である。
【図７】実施形態が実施されるコンピュータ処理の環境例を示すブロック図である。
【図８】クライアントに拡張可能なマルチテナントサービスを提供するブロセスについての論理フローチャートである。
【発明を実施するための形態】
【０００９】
上記に簡潔に説明されたように、拡張可能なマルチテナントビジネスアプリケーションプラットフォームは、ディスカバリサービス部及び拡縮可能なサーバクラスタを用いて提供することができる。引き続く詳細な説明において、本願の一部をなすと共に特定の実施形態すなわち実施例が示されている添付の図面が参照される。これら態様は組み合わせられてもよく、他の態様が用いられてもよく、構造上の変更が本開示の思想及び範囲から逸脱することなくなされてもよい。引き続く詳細な説明は、従って、限定する意図で考慮されるべきでなく、本発明の範囲は添付の特許請求の範囲及びそれらの均等物によって画定される。
【００１０】
実施形態は、パーソナルコンピュータ上のオペレーティングシステムの基で動作するアプリケーションプログラムと組み合わさって実行されるプログラムモジュールとして説明されるが、その一方で他のプログラムモジュールと組み合わせて、他の特徴を実装することができることを当業者は認識するであろう。
【００１１】
概して、プログラムモジュールは、特定のタスクを実行又は特定の抽象データ型を実装するルーチン、プログラム、コンポーネント、データ構造、並びに他のタイプの構造を含む。さらに、当業者は、当該実施形態が他のコンピュータシステム構成によっても実施することができることを認めるであろうし、かかる構成は、ハンドヘルド装置、複数プロセッサシステム、マイクロプロセッサベース又はプログラム可能な家庭用エレクトロニクス、ミニコンピュータ、メインフレームコンピュータ等を含む。実施形態は、また、通信ネットワークを通してリンクしたリモートプロセッシングユニット装置によってタスクが実行される分散コンピュータ環境において実施されてもよい。分散コンピュータ環境において、プログラムモジュールはローカル又はリモートメモリ記憶装置に置くことができる。
【００１２】
実施形態は、コンピュータプロセス（方法）、コンピュータシステム、又は製造物品、例えば、コンピュータプログラム製品若しくはコンピュータ読取可能媒体の如き物品として実現されてもよい。当該コンピュータプログラム製品は、コンピュータシステムによって読み取り可能であって、コンピュータプロセスを実行するための命令からなるコンピュータプログラムを符号化しているコンピュータ記憶媒体であってもよい。当該コンピュータプログラム製品は、また、コンピュータシステムによって読み取り可能な搬送波で伝達される信号であって、コンピュータプロセスを実行するための命令からなるコンピュータプログラムを符号化している信号であってもよい。
【００１３】
図１を参照すると、シングルテナントサービスモデル例のダイヤグラム１００が例示されている。上述したように、典型的ビジネスアプリケーションプラットフォームのためのプログラム可能なアーキテクチャは、シングルテナントされ、構内機器でホスティングされるアプリケーションに対して適合化されている。
【００１４】
かかる典型的なシングルテナント化されたプラットフォームにおいて、クライアント１０２は、ネットワーク１０４を介して、ウェブサービス部１０６によってホスティングされるシングルテナントに関連付けられているデータ及びビジネスアプリケーションにアクセスする。ネットワーク１０４はインターネットであってもよい一方、一般的なイントラネットタイプのネットワークの組み合せであってもよい。シングルテナントが当該サービスによってホスティングされることから、認証、セキュリティ及び他の事前処理が、第三者のサービスを利用するよりはむしろ、当該サービス自身によって実行されるであろう。処理の冗長化及び何らかの処理の負荷分散が複数のサーバ及び／又はサーバクラスタの使用を伴うとしても、当該サービスのロケーションは典型的には変化しない。
【００１５】
このように、シングルテナント化されたシステムの処理は比較的単純で複雑でない。しかし、今日の経済界において、多くの機関は、それらのビジネスアプリケーションプラットフォームを、効果的な、経済的な且つ信頼できるサービスを提供できる事業体（entity）にアウトソースすることを好む。それら機関のビジネスモデルを合理化し且つそれらの資源を効率的に利用するためには、かかる事業体は複数の機関のホストサービスを行うのを好む場合がある。さらに、あるクライアントは複数の機関と関連付けられた場合があり、かかる場合は、当該クライアントが単一のコンタクトポイントを通して全ての機関にアクセスすることになる。
【００１６】
図２は、複数テナントサービスモデル例２００である。マルチテナントサービスにおいて、ビジネスアプリケーションプラットフォームは、複数の機関のためのサービスをホスティングする。何らかの数のクライアント２０２は、インターネット又は多様なネットワークの組合せであり得るネットワーク２０４を通してウェブサービス部２０６を呼び出して１つ以上の機関に関連付けられているデータ及びアプリケーションへのアクセスすることができる。
【００１７】
ウェブサービス部２０６は、管理サービスを実行し、クライアントを機関に特定されたウェブサービス部２０８に向かわせるようにすることができる。その上、ウェブサービス部２０６は、任意で第三者サービスを利用して、認証、セキュリティチェック、及び類似の事前サービスを実行してもよい。機関に特定のウェブサービス部２０８は拡縮可能なクラスタを含むことができ、個々の機関の処理を負荷分散及び他の理由により移動させることができる。ウェブサービス部２０６は、かかる変化をモニタして呼び出し元のクライアントをリダイレクトすることができ、これによりクライアントにとって当該変化がわかりやすいもの（transparent）になる。
【００１８】
クライアントは、シン（thin）クラアントであってもシック(thick)クライアントであってもよいが、シンクラアントの場合には第三者アプリケーションによって任意に提供される追加的なサービスを伴う。異なるクライアントは、別々のスキーマを用いて異なるサービスにアクセスすることができる。あるサービスは当該スキーマを共有してもよい。
【００１９】
図２におけるアーキテクチャは、図１に示したものに代わる、サース（software as a Service）プラットフォームの概観を例示している。本質的な構成要素だけが単純化の目的で示される。実際には、かかるシステムは特定のタスク及び通信方法を伴うより多くのコンポーネントを含む。実施形態に従ったかかるプラットフォームのより詳細な説明が以降に提供される。
【００２０】
図３は、実施形態に従った拡張可能なマルチテナントサービスアーキテクチャー３００を示している。実施形態に従ったサース・ビジネスアプリケーションプラットフォーム３２０は、異なるサイトに実装されてもよく、各サイトにおいて複数の機関のデータ及びアプリケーションをホスティングすることができる。各サイトへのプラットフォーム３２０の実装は、サービスを高性能化すること及び高可用性化することに関し高い柔軟性を有する。当該サイトは、インターネット上又はイントラネット上でホスティングされることができる。
【００２１】
一部の実施形態によれば、当該サービスは、各機関のユーザ（クライアント３０２）を認証するために、任意の信頼できる第３者機関認証サービス（例えば、チケットサービス部３１２）を利用することができる。独立の接続認証サービスが、インターネット又はイントラネットモードのために利用されてもよい。他の実施形態によれば、各機関のデータ及び動作へのアクセスは、セキュリティロール（security role）及び特権（privilege）及び機関員資格（organization membership）に基づいて制限されてもよい。
【００２２】
一部の実施形態によれば、各機関のデータ及びアプリケーションは、他から隔離され、ＡＰＩの専用セットを通してアクセスされる。当該ＡＰＩは、開発者がビジネスデータにアクセスすること及び変更することを可能にするのみならず、インターネット上で遠隔でビジネスプロセス及びロジックを定義／呼出／変更することを可能にすることができる。当該ＡＰＩは、自動的に生成されそして動的であり、これにより、新しい機関が当該プラットフォームに追加またはそこから除去される場合にも、当該ＡＰＩが自動的に調整できるようにしている。また、当該ＡＰＩをカスタマイズ可能にして、他の機関とは別に各機関にカスタムオブジェクト及び処理が追加されることを可能にするようにする。
【００２３】
ディスカバリサービス部３２２は、認証及び機関ディスカバリサービスを提供し、クライアント３０２がプラットフォーム３２０にサインインして、彼／彼女がメンバーである全ての機関を見つけられるようにすることができる。ディスカバリサービス部３２２は、直接アクセスのための当該プラットフォーム内の各機関のロケーションと他のコンフィギュレーション情報とを含む詳細なコンフィギュレーションデータを提供することができる。当該コンフィギュレーション情報は、コンフィギュレーション記憶部３２４内に格納され且つそこから取り出される。ユーザ（クライアント）は、サイトにホスティングされる１つ以上の機関のメンバーとすることができる。ディスカバリサービス部３２２は、複数の認証モードで処理を行うことができる。各認証モードは、それ自身の専用のエンドポイントを有することで、どの認証が用いられるべきかを当該クライアントが指定できるようにしてもよい。
【００２４】
更なる実施形態によれば、各ＡＰＩエンドポイントは、複数の機関にサービスを提供ししてもよい。当該ＡＰＩに対する各呼び出しは、到達が意図される目的の機関を識別することができる。ディスカバリサービス部３２２は、コンフィギュレーション記憶部３２４を用いて、機関のコンフィギュレーションデータを取り出すことができる。管理者がコンフィギュレーション記憶部３２４にアクセスして、これを維持管理できるようにしてもよい。
【００２５】
機関データ及び処理は、プラットフォーム３２０のサービスクラスタ３３０内で利用可能な複数の拡縮可能なグループ（サービスロケーション１、２、等）に置かれてもよい。機関のロケーションは変更することができ、負荷均衡化目的のために当該拡縮可能な複数グループ間で移動することができる。当該拡張可能なマルチテナントサービスモデルは、移動後においてさえ目的の機関のロケーションを判別できるという意味おいて、動的である。各サービスロケーション（３３２、３３４・・・）は、サービスを提供する１つ以上の仮想的又は物理的なサーバを含んでもよい。
【００２６】
図４は、マルチテナントサービスの機関サービス部のコンポーネント例を示している。上述したように、拡縮可能なサーバクラスタ４３０は、拡張可能なマルチテナント・サース・プラットフォームの核心部分である。一部の実施形態によれば、サーバクラスタ４３０は、クライアントリクエストを受け取り、同期リクエストをハンドルし、機関データベース４３３へのアクセスを管理する１群の仮想的又は物理的ウェブサーバ４３１を含むことができる。ウェブサーバ４３１のうちの特定のサーバが所定のアルゴリズム（例えば、負荷均衡化アルゴリズム）等に従って、ランダムな選択によって当該クライアントに割り当てられてもよい。機関データベース４３３は、当該プラットフォームによってサービスされる機関（すなわち、テナント）毎の物理的又は仮想的なデータ記憶装置を含んでもよい。例えば、金融サービスシステムは、参加する金融機関（銀行等）毎に、アカウント情報、アカウントアクセス情報等を格納する別々のデータベースを含んでもよい。個別のデータベース、それらの構成、何らかの冗長性等に関する情報は、図３のコンフィギュレーション記憶部３２４に格納されてもよい。
【００２７】
他の実施形態によれば、ロケーターサービス（図示せず）は、どのデータベースがウェブサーバによって使われてもよいかに関わる情報を提供してもよい。ウェブサーバ４３３は、また、非同期サービスリクエストを、機関データベース４３３と共に非同期サーバ４３５によって操作されるべき待ち行列に置くことができる。クライアントリクエストが当該待ち行列に到来するにつれて、当該非同期サーバ４３５のうちの１台が当該リクエストを処理するために接続されてもよい。非同期サーバと個々の機関データベースとの関係は、分散配置された関係であってもよく、各サーバは、当該データベースの何れか１台と一緒に働いてもよい。当該非同期サーバと当該機関データベースとの間のこの分散配置された相互作用は、１つのサーバの障害時に他の利用可能なサーバに当該データベースを接続可能にすることによって、非同期プロセッシング機器における障害からの自動的なリカバリ能力を提供することができる。
【００２８】
当該サーバと当該データベースとの間における同期的及び非同期的な働き及び相互作用の独立した分散化に依拠して、サーバクラスタ４３０の何らかの部分は拡縮可能である。このように、当該サーバ（及び／又はデータベース）の複数インスタンスが、増加する作業負荷、追加的な機関、データ容量等を解決するように提供されてもよい。
【００２９】
図５は、処理時における、クライアントとマルチテナントサービスのコンポーネントとの間の相互作用を示している動作ダイヤグラムを示している。動作ダイヤグラム５００における相互作用は、処理例を特定のステップと共に例示している。実施形態に従ったマルチテナントプラットフォームの相互作用は、異なる順番の相互作用のみならず、より少ないステップ又は付加的なステップを伴う異なるやり取りを行うようにできる。
【００３０】
処理例によれば、クライアント５０４は、ディスカバリサービス部５０６からのサイトポリシーをリクエストすることによって呼び出しを始動する。ディスカバリサービス部５０６は、任意のチケットサービス部５０２を識別することができる（例えば、認証のため）サイトポリシーで応答する。任意の第三者チケットサービス部５０２が用いられる場合、クライアント５０４はチケットサービス部５０２にチケットリクエストを送信し、さらに、当該クライアントの証明書が当該リクエストされた機関（テナント）へのアクセスについて認証された場合に、クライアント５０４は当該サービスチケットを受信する。
【００３１】
クライアント５０４は、次いで、チケットサービス部５０２からのサービスチケットと共にサイトチケットリクエストを、ディスカバリサービス部５０６に発信する。ディスカバリサービス部５０６は、当該サイトチケットで応答する。クライアント５０４は、次いで、リクエストされている機関のリストを提示することができ、ディスカバリサービス部５０６は、当該リクエストされている機関のロケーションのリスト及び他のコンフィギュレーション情報（スキーマ、その他）で応答する。次に、クライアント５０４は、ディスカバリサービス部５０６によって提供されたロケーション及びコンフィギュレーション情報を用いて、機関サービス部５０８を通して目的の機関にアクセスすることができる。上記のように、機関サービス部のロケーションは、拡縮の程度、負荷均衡化等に起因して変化する場合がある。ディスカバリサービス部５０６は、機関サービス部へのクライアントのアクセスがシームレスに継続できるように、当該変更されたロケーション情報を用いてクライアントに最新情報を提供することができる。
【００３２】
図３〜図５に示された拡縮可能なマルチテナントシステム及び処理は説明目的の例示である。拡張可能なマルチテナントサービスのシステムは、本明細書において記載されている原理を用いて、追加的な又はより少ない構成要素及び処理で実施されてもよい。
【００３３】
図６は、実施形態が実施されるネットワーク環境例であり、拡張可能なマルチテナントサービスシステムは、多数の物理的及び仮想的なクライアント及びサーバに渡り分散配置された形態で実施されることができる。拡張可能なマルチテナントサービスシステムは、また、非クラスタ化されたシステム、又は１つ以上のネットワーク（例えば、ネットワーク６１０）上で通信する多数のノードを用いるクラスタ化システムで実施されてもよい。
【００３４】
かかるシステムは、サーバ、クライアント、インターネットサービスプロバイダ、及び通信媒体の何らかのトポロジを有してもよい。また、当該システムは、静的なトポロジ又は動的なトポロジを有してもよい。用語「クライアント」は、クライアントアプリケーション又はクライアント装置を意味してもよい。拡張可能なマルチテナントサービスを実施するネットワーク化されたシステムがより多くの構成要素を含んでもよい一方で、関連する構成要素を図と共に説明されている。
【００３５】
アクセスのためのリクエストは、ネットワーク化されたマルチテナントシステムにおいて、個々のクライアント装置６０２〜６０６又はアプリケーションサーバ６０８を用いたテナントから到来してもよい。かかるシステムは、また、１つ以上のサーバ（例えば、サーバ６１２、６１４）に実装されることができ、当該クライアント装置（又は、アプリケーション）によってアクセスされる。ウェブサーバ６１２の如き１つ以上のウェブサーバ（物理的又は仮想的）は、当該リクエストを受信し、それらを適切な資源に向けることができる。当該資源は、同期及び非同期サーバ、機関データベース及び他の構成要素を備える拡縮可能なサーバクラスタを含むことができる。
【００３６】
機関データベースは、データ記憶装置６１８の如き単一のデータ記憶装置、又は分散配置された幾つかデータ記憶装置で実現されてもよい。専用のデータベースサーバ（例えば、データベースサーバ６１６）が、かかるデータ記憶装置のうちの１つ以上におけるデータ検索及び格納を統合するのに用いられてもよい。
【００３７】
ネットワーク６１０は、企業ネットワークの如きセキュリティネットワーク、無線オープンネットワークの如き非セキュリティネットワーク、又はインターネットであってもよい。ネットワーク６１０は、本明細書に記載されているノード間の通信を提供する。例として、限定するものではないが、ネットワーク６１０は、有線ネットワーク又は直接有線接続の如き有線媒体、並びに、音響、ＲＦ、赤外線等の無線媒体であってもよい。
【００３８】
コンピュータ装置、アプリケーション、データソース、データ配布システム等からなる多くの他の構成が拡張可能なマルチテナントサービスプラットフォームを実施するのに用いられてもよい。さらに、図６において説明されるネットワーク化された環境は、例示の目的だけのためにある。実施形態は、当該アプリケーション、モジュール又はプロセスの例に限定されない。
【００３９】
図７及び関連する説明は、実施形態が実施され得る適切なコンピュータ環境の簡潔且つ概括的な説明を提供することが意図される。図７を参照すると、コンピュータ処理環境例、例えば、装置７００のブロック図が例示されている。基本的な構成において、コンピュータ７００は、拡張可能な複数テナントサービスに関連付けられている管理サービスを提供するサーバとすることができ、典型的には、少なくとも１つのプロセッシングユニット７０２と、システムメモリ７０４とを含んでもよい。コンピュータ７００は、また、プログラムを実行する際に協働する複数のプロセッシングユニットを含んでもよい。実際の構成及びコンピュータ装置のタイプに依存して、システムメモリ７０４は、揮発性（ＲＡＭの如き）、非揮発性（例えば、ＲＯＭ、フラッシュメモリ等）又はこれら２つの何らかの組み合せであってもよい。システムメモリ７０４は、典型的には、ワシントン州レドモンドにあるマイクロソフト社が提供するウインドウズ（登録商標）オペレーティングシステムの如きネットワーク化されパーソナルコンピュータの処理を制御するのに適切なオペレーティングシステム７０５を含む。システムメモリ７０４は、また、例えば、プログラムモジュール７０６、ウェブサービス部７２２、ウェブサービス部７２２内のディスカバリサービス部７２４、及び任意のロケーターサービス(locator service)部７２６の如き、１つ以上のソフトウェアアプリケーションを含んでもよい。
【００４０】
ウェブサービス部７２２は、コンピュータ７００と関連付けられているクラアントアプリケーションにデータ及びプロセッシングサービスを提供する、個別のアプリケーションとするか、又はホスティングされたマルチテナントサービスプラットフォームの統合されたモジュールとすることができる。ディスカバリサービス部７２４は、個々の機関（テナント）と関連付けられているロケーション及びコンフィギュレーション情報を、当該機関へのアクセスをリクエストするクライアントに提供することができる。任意のロケーターサービス部７２６は、サービス目的の判別やどのデータベースがウェブサーバのみならず非同期プロセッシングサーバに使用されるべきかの判定に関連付けられているサービスを提供することができる。この基本的な構成は、図７において破線７０８内の構成要素として示されている。
【００４１】
コンピュータ７００は、追加的な特徴又は機能性を有してもよい。例えば、コンピュータ７００は、また、付加的なデータ記憶装置（着脱可能及び／又は着脱不能な）、例えば、磁気ディスク、光ディスク又はテープを含んでもよい。かかる付加的な記憶装置は、図７において、着脱可能な記憶装置７０９及び着脱不能な記憶装置７１０によって例示されている。コンピュータ記憶媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュール又は他のデータの如き情報の記憶のための何らかの方法又は技術で実現される揮発性及び不揮発性媒体、又は着脱可能及び着脱不能な媒体であってもよい。システムメモリ７０４、着脱可能な記憶装置７０９、及び着脱不能な記憶装置７１０は、コンピュータ記憶媒体の全ての例である。コンピュータ記憶媒体は、限定されるものではないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ、若しくは他のメモリ技術、ＣＤ−ＲＯＭ、多用途デジタルディスク（ＤＶＤ）、若しくは他の光学記憶装置、又は、磁気カセット、磁気テープ、磁気ディスク記憶装置若しくは他の磁気記憶装置、又は、所望の情報を格納し得ると共にコンピュータ７００によってアクセスされ得る他の如何なる媒体でもよい。かかる種類のコンピュータ記憶媒体は、装置７００の一部であってもよい。コンピュータ７００は、また、キーボード、マウス、ペン、音声入力装置、タッチ入力装置の如き入力装置７１２が含まれてもよい。ディスプレイ、スピーカ、プリンタ等の出力装置７１４がまた含まれてもよい。これらの装置は公知技術であってここで詳細に説明される必要はない。
【００４２】
コンピュータ装置７００は、また、通信接続部７１６を含んでもよく、これは分散配置されたコンピュータ環境、例えばイントラネット又はインターネットである環境における無線ネットワークの如く他のコンピュータ装置７１８との通信を可能にする。他のコンピュータ７１８は、ロケーターサービス又は他のサービスに関連付けられているアプリケーションを実行するサーバを含んでもよい。通信接続部７１６は通信媒体の１つの例である。通信媒体は、コンピュータ読取可能な命令、データ構造、プログラムモジュール、又は搬送波又は他の伝送機構の如き変調されたデータ信号内の他のデータによって、典型的には実現されてもよく、何らかの情報配布媒体でもよい。用語「変調されたデータ信号」とは、その特性集合のうちの１つ以上を有する信号を意味するか、又は当該信号中に情報を符号化する形で変化する信号を意味する。例えば、限定するものではないが、通信媒体は、有線ネットワーク又は直接結線化接続の如き有線媒体、並びに音響、ＲＦ、赤外線等の如き無線媒体を含む。本明細書において使用される用語「コンピュータ読取可能記憶媒体」とは、記憶媒体及び通信媒体を含む。
【００４３】
本願で請求する発明は方法発明も含む。これらの方法は、本明細書に記載されている構造を含む幾つかの形態で実施され得る。かかる１つの方法は、本明細書において説明されたタイプの装置の機械処理による方法である。
【００４４】
他の任意の方法は、実行されるべき方法のうちの個々の処理のうちの１つ以上が、１人以上の何らかの運用を行う人間オペレータと共に実行される場合である。これら人間オペレータは、互いに並置される必要はないが、各々は当該プログラムの一部を実行する機器にのみ対応し得る。
【００４５】
図８は、クライアントに拡張可能なマルチテナントサービスを提供する動作手順８００の論理フローチャートである。動作手順８００は、ビジネスアプリケーションプラットフォーム・サースの一部として実行されてもよい。
【００４６】
動作手順８００は処理８０２から開始し、１つ以上の機関にアクセスするためのリクエストが、クライアントの証明書（credential）と共にクライアントから受信される。上記したように、マルチテナントホスティングされたサービスのクライアントは、典型的には機関又はテナントと関連していて、当該機関又はテナントの各々は当該システム内に専用データベースを含んでいるサービスを有する。リクエストを受信するのに先立って、当該クライアントは第三者の認証サービスを任意に利用することができる。動作手順は処理８０２から判別処理８０４へと進む。
【００４７】
判別処理８０４において、クライアントが認証されるか否かについて判定がなされる。当該判定は、また、当該リクエストされた機関がマルチテナントサービスプラットフォームによってホスティングされているか否かについてのチェックを含む。もしクライアントが認証された場合、動作手順は処理８０６へ進む。クライアントが認証されなかった場合、動作手順は更なる処理のための呼出動作手順に進む。
【００４８】
処理８０６において、当該リクエストされた機関サービス部のロケーションが判別される。動作手順は処理８０６から処理８０８へ進み、当該機関サービス部のロケーションがアクセスのために当該クライアントに提供される。追加的なコンフィギュレーション情報がロケーション情報と共に提供されてもよい。処理８０８の後、動作手順は判別処理８１０へ進む。
【００４９】
判別処理８１０において、当該機関サービス部のロケーションが、拡縮化、負荷均衡化等のために変化したか否かの判定がなされる。ロケーションの変更があるとされた場合、動作手順は処理８１２へ進む。ロケーションの変更がないとされた場合、動作手順は更なる処理のための呼出動作手順へ進む。
【００５０】
処理８１２において、当該機関サービス部のロケーションの変更が当該クライアントに提供され、当該サービスへの当該クラアントのアクセスがシームレスに継続できるようにする。処理８１２の後、動作手順は更なる処理のための呼出動作手順へ進む。
【００５１】
動作手順８００に含まれる処理は例示目的のためである。拡張可能なマルチテナントサービスのクライアントへの提供は、より少ないステップ又は追加のステップを備える類似した動作手順で実施されてもよいのみならず、本発明の原則を用いて、異な処理順序で実施されてもよい。
【００５２】
以上の明細、実施形態及びデータは、実施形態の組成物の製造及び使用の完全な説明を提供するものである。本発明の内容が構造上の特徴及び／又は方法上の動作に特有の言葉で説明されたが、添付の特許請求の範囲に画定される発明の内容は、上記した特定の形態に限定されるのではないことが理解されるべきである。むしろ、上記した特定の特徴及び動作は、特許請求の範囲及び実施形態を実施する例として開示されている。
【図７】
2014132462.tif 000003
【図８】
2014132462.tif 000004
【図１】
2014132462.tif 000005
【図２】
2014132462.tif 000006
【図３】
2014132462.tif 000007
【図４】
2014132462.tif 000008
【図５】
2014132462.tif 000009
【図６】
2014132462.tif 000010