特許第6491243号(P6491243)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

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

▶ オラクル・インターナショナル・コーポレイションの特許一覧

特許6491243マルチテナントアプリケーションサーバ環境における複数のパーティション編集セッションをサポートするためのシステムおよび方法
<>
  • 特許6491243-マルチテナントアプリケーションサーバ環境における複数のパーティション編集セッションをサポートするためのシステムおよび方法 図000002
  • 特許6491243-マルチテナントアプリケーションサーバ環境における複数のパーティション編集セッションをサポートするためのシステムおよび方法 図000003
  • 特許6491243-マルチテナントアプリケーションサーバ環境における複数のパーティション編集セッションをサポートするためのシステムおよび方法 図000004
  • 特許6491243-マルチテナントアプリケーションサーバ環境における複数のパーティション編集セッションをサポートするためのシステムおよび方法 図000005
  • 特許6491243-マルチテナントアプリケーションサーバ環境における複数のパーティション編集セッションをサポートするためのシステムおよび方法 図000006
  • 特許6491243-マルチテナントアプリケーションサーバ環境における複数のパーティション編集セッションをサポートするためのシステムおよび方法 図000007
  • 特許6491243-マルチテナントアプリケーションサーバ環境における複数のパーティション編集セッションをサポートするためのシステムおよび方法 図000008
  • 特許6491243-マルチテナントアプリケーションサーバ環境における複数のパーティション編集セッションをサポートするためのシステムおよび方法 図000009
  • 特許6491243-マルチテナントアプリケーションサーバ環境における複数のパーティション編集セッションをサポートするためのシステムおよび方法 図000010
  • 特許6491243-マルチテナントアプリケーションサーバ環境における複数のパーティション編集セッションをサポートするためのシステムおよび方法 図000011
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6491243
(24)【登録日】2019年3月8日
(45)【発行日】2019年3月27日
(54)【発明の名称】マルチテナントアプリケーションサーバ環境における複数のパーティション編集セッションをサポートするためのシステムおよび方法
(51)【国際特許分類】
   G06F 12/00 20060101AFI20190318BHJP
【FI】
   G06F12/00 533F
【請求項の数】12
【全頁数】20
(21)【出願番号】特願2016-575005(P2016-575005)
(86)(22)【出願日】2015年6月23日
(65)【公表番号】特表2017-519307(P2017-519307A)
(43)【公表日】2017年7月13日
(86)【国際出願番号】US2015037265
(87)【国際公開番号】WO2015200375
(87)【国際公開日】20151230
【審査請求日】2018年1月25日
(31)【優先権主張番号】62/016,040
(32)【優先日】2014年6月23日
(33)【優先権主張国】US
(31)【優先権主張番号】62/054,908
(32)【優先日】2014年9月24日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】502303739
【氏名又は名称】オラクル・インターナショナル・コーポレイション
(74)【代理人】
【識別番号】110001195
【氏名又は名称】特許業務法人深見特許事務所
(72)【発明者】
【氏名】マレス,マルティン
(72)【発明者】
【氏名】バウアー,ピーター
(72)【発明者】
【氏名】ヤノウフ,ペトル
(72)【発明者】
【氏名】ポトチアル,マレク
(72)【発明者】
【氏名】ブチェク,パベル
(72)【発明者】
【氏名】ガイドシュ,ミハル
【審査官】 小林 哲雄
(56)【参考文献】
【文献】 特開2006−244488(JP,A)
【文献】 特表2006−512695(JP,A)
【文献】 米国特許出願公開第2005/0044165(US,A1)
【文献】 特表2012−524502(JP,A)
【文献】 米国特許出願公開第2007/0088741(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
(57)【特許請求の範囲】
【請求項1】
マルチテナントアプリケーションサーバ環境における複数の編集セッションをサポートするためのシステムであって、
各々が1つ以上のマイクロプロセッサを含む1つ以上のコンピュータと、
前記コンピュータ上のアプリケーションサーバ環境とを備え、前記アプリケーションサーバ環境は、1つ以上のパーティションを有するドメインと、前記ドメインおよび前記1つ以上のパーティションを構成するドメイン構成とを含み、前記システムはさらに、
前記ドメイン構成を変更する際に使用するための複数の方法を含む管理APIと、
複数の並行編集セッションとを備え、各並行編集セッションは、前記ドメイン構成のスナップショットを編集するように構築され、前記システムはさらに、
前記ドメイン内の並行セッションマネージャを備え、前記並行セッションマネージャは、前記複数の並行編集セッションによってなされた変更におけるコンフリクトを検出しアドミニストレータに通知するように動作する、システム。
【請求項2】
前記並行セッションマネージャは、
前記ドメイン構成と、前記ドメイン構成のスナップショットに対してアドミニストレータが行なった変更との間の第1の相違を求めるステップと、
前記ドメイン構成のスナップショットと、前記ドメイン構成との間の第2の相違を求めるステップと、
前記第1の相違および前記第2の相違を比較するステップとを実行することにより、前記コンフリクトを検出する、請求項1に記載のシステム。
【請求項3】
前記アドミニストレータはシステムアドミニストレータであり、前記複数の編集セッションは、それぞれ異なるシステムアドミニストレータによって開始される、請求項1または2に記載のシステム。
【請求項4】
前記複数の並行編集セッションは、それぞれ異なるパーティションアドミニストレータによって開始される、請求項1または2に記載のシステム。
【請求項5】
前記複数の並行編集セッションは各々、システムアドミニストレータおよびパーティションアドミニストレータによって開始される、請求項1〜4のいずれかに記載のシステム。
【請求項6】
前記並行セッションマネージャは、前記アドミニストレータが前記管理APIを用いて有効化アクションを実行することにより、前記アドミニストレータによってなされた変更を前記ドメイン構成にマージするときに、呼出される、請求項1〜5のいずれかに記載のシステム。
【請求項7】
前記アドミニストレータは、表示された前記コンフリクトを見て確認した後に前記管理APIを用いて解決アクションを実行するとともに、前記管理APIを用いて有効化アクションを実行する、請求項1〜6のいずれかに記載のシステム。
【請求項8】
前記アドミニストレータによってなされた変更は、コンフリクトが検出されない場合に前記ドメイン構成にマージされる、請求項6に記載のシステム。
【請求項9】
前記スナップショットは、前記並行セッションマネージャがコンフリクトを検出する際に使用するために記憶域に残される、請求項1〜6のいずれかに記載のシステム。
【請求項10】
前記スナップショットを残すことは、前記スナップショットに関連付けられたアドミニストレータが有効化アクションを実行するときに行なわれる、請求項9に記載のシステム。
【請求項11】
マルチテナントアプリケーションサーバ環境における複数のパーティションおよび編集セッションをサポートするための方法であって、
アプリケーションサーバ環境を1つ以上のコンピュータ上に与えるステップを含み、前記アプリケーションサーバ環境は、1つ以上のパーティションを有するドメインと、前記ドメインおよび前記パーティションを構成するドメイン構成と、前記ドメイン構成を変更する際に使用するための管理APIとを含み、
前記管理APIを介して複数の並行編集セッションから変更を受けるステップを含み、各並行編集セッションは、前記ドメイン構成のスナップショットを編集するように構築され、
前記受けた変更におけるコンフリクトを検出するステップと、
前記コンフリクトの解決についてアドミニストレータに通知するステップとを含む、方法。
【請求項12】
コンピュータシステムによって実行されると前記コンピュータシステムに請求項11に記載の方法を実行させる機械読取可能なフォーマットのプログラム命令を含むコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
著作権に関する注意
本特許文献の開示の一部には、著作権保護の対象となるものが含まれている。著作権者は、この特許文献または特許開示の何者かによる複製が、特許商標庁の特許ファイルまたは記録にある限り、それに対して異議を唱えないが、そうでなければ、いかなる場合もすべての著作権を留保する。
【0002】
発明の分野:
本発明の実施形態は、概して、アプリケーションサーバおよびクラウド環境に関し、特に、マルチテナントアプリケーションサーバ環境における複数のパーティションおよび編集セッションをサポートするためのシステムおよび方法に関する。
【背景技術】
【0003】
背景:
ソフトウェアアプリケーションサーバは、その例として、Oracle WebLogic Server(WLS)およびGlassfishを含んでおり、概して、エンタープライズソフトウェアアプリケーションを実行するための管理された環境を提供する。近年、クラウド環境において使用するための技術も開発されており、ユーザまたはテナントが、クラウド環境内でそれらのアプリケーションを開発して実行することが可能になり、かつ、環境によって提供される分散型リソースを活用することが可能になっている。
【発明の概要】
【課題を解決するための手段】
【0004】
概要:
一実施形態に従い、本明細書において、マルチテナントアプリケーションサーバ環境における編集セッションをサポートするためのシステムおよび方法が説明される。一実施形態に従うと、第1のアドミニストレータまたはユーザは、あるパーティションに対して使用するための名前付き編集セッションを取得し、変更を実施し、これらの変更を有効化することができる。別のアドミニストレータまたはユーザは、並行して名前付き編集セッションを作成することができる。同時に発生する、ある変更と別のユーザによる変更との間にコンフリクトがある場合、アドミニストレータは、変更を有効化するときにエラーを受信することができる。その時点で、アドミニストレータは、このコンフリクトを解決し変更を有効化することができる。有効化されると、編集セッションにおける変更は、グローバル編集構成(configuration)に適用される。
【図面の簡単な説明】
【0005】
図1】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す図である。
図2】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。
図3】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す図である。
図4】一実施形態に従った、例示的なマルチテナント環境で使用されるドメイン構成を示す図である。
図5】一実施形態に従った例示的なマルチテナント環境をさらに示す図である。
図6】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境における複数の編集セッションをサポートするためのシステムを示す図である。
図7】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境における複数の編集セッションをサポートするためのシステムをさらに示す図である。
図8】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境における複数の編集セッションをサポートするためのシステムをさらに示す図である。
図9】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境における複数の編集セッションをサポートするためのシステムをさらに示す図である。
図10】一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境における複数の編集セッションをサポートするための方法を示す図である。
【発明を実施するための形態】
【0006】
詳細な説明:
一実施形態に従い、本明細書において、マルチテナントアプリケーションサーバ環境における編集セッションをサポートするためのシステムおよび方法が説明される。一実施形態に従うと、第1のアドミニストレータまたはユーザは、あるパーティションに対して使用するための名前付き編集セッションを取得し、変更を実施し、これらの変更を有効化することができる。別のアドミニストレータまたはユーザは、並行して名前付き編集セッションを作成することができる。同時に発生する、ある変更と別のユーザによる変更との間にコンフリクトがある場合、アドミニストレータは、変更を有効化するときにエラーを受信することができる。その時点で、アドミニストレータは、このコンフリクトを解決し変更を有効化することができる。有効化されると、編集セッションにおける変更は、グローバル編集構成(configuration)に適用される。
【0007】
アプリケーションサーバ(たとえば、マルチテナント(Multi-Tenant:MT)環境
図1は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムを示す。
【0008】
図1に示されるように、一実施形態に従うと、アプリケーションサーバ(たとえばマルチテナント(MT))環境100または他のコンピューティング環境は、ソフトウェアアプリケーションのデプロイメントおよび実行を可能にするものであって、アプリケーションサーバドメインを定義するために実行時に用いられるドメイン102構成を含み、当該ドメイン102構成に従って動作するように構成することができる。
【0009】
一実施形態に従うと、アプリケーションサーバは、実行時に使用されるよう定義される1つ以上のパーティション104を含み得る。各々のパーティションは、グローバルユニークパーティション識別子(identifier:ID)およびパーティション構成に関連付けることができ、さらに、リソースグループテンプレートの参照126および/またはパーティション特有のアプリケーションもしくはリソース128とともに、1つ以上のリソースグループ124を含み得る。ドメインレベルのリソースグループ、アプリケーションおよび/またはリソース140も、任意にはリソースグループテンプレートの参照とともに、ドメインレベルで定義することができる。
【0010】
各々のリソースグループテンプレート160は、1つ以上のアプリケーションA162、B164、リソースA166、B168および/または他のデプロイ可能なアプリケーションもしくはリソース170を定義することができ、リソースグループによって参照することができる。たとえば、図1に例示されるように、パーティション104におけるリソースグループ124は、リソースグループテンプレート160を参照する(190)ことができる。
【0011】
概して、システムアドミニストレータは、パーティション、ドメインレベルのリソースグループおよびリソースグループテンプレート、ならびにセキュリティ領域を定義することができるとともに、パーティションアドミニストレータは、たとえば、パーティションレベルのリソースグループを作成するか、アプリケーションをパーティションにデプロイするかまたはパーティションについての特定の領域を参照することによって、それら自体のパーティションのアスペクトを定義することができる。
【0012】
図2は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す。
【0013】
図2に示されるように、一実施形態に従うと、パーティション202は、たとえば、リソースグループテンプレート210の参照206を含むリソースグループ205と、仮想ターゲット(たとえば仮想ホスト)情報207と、プラグ接続可能なデータベース(pluggable database:PDB)情報208とを含み得る。リソースグループテンプレート(たとえば210)は、たとえば、Java(登録商標)メッセージサーバ(Java Message Server:JMS)サーバ213、ストア・アンド・フォワード(store-and-forward:SAF)エージェント215、メールセッションコンポーネント216またはJavaデータベースコネクティビティ(Java Database Connectivity:JDBC)リソース217などのリソースとともに、複数のアプリケーションA211およびB212を定義することができる。
【0014】
図2に例示されるリソースグループテンプレートが一例として提供される。他の実施形態に従うと、さまざまなタイプのリソースグループテンプレートおよび要素を提供することができる。
【0015】
一実施形態に従うと、パーティション(たとえば202)内のリソースグループが、特定のリソースグループテンプレート(たとえば210)を参照する(220)と、パーティション特有の情報230(たとえば、パーティション特有のPDB情報)を示すために、特定のパーティションに関連付けられた情報を、参照されたリソースグループテンプレートと組合わせて用いることができる。次いで、パーティション特有の情報は、パーティションによって使用されるリソース(たとえば、PDBリソース)を構成するようにアプリケーションサーバによって使用可能である。たとえば、パーティション202に関連付けられたパーティション特有のPDB情報は、そのパーティションによって使用されるべき適切なPDB238を備えたコンテナデータベース(container database:CDB)236を構成する(232)ようにアプリケーションサーバによって使用可能である。
【0016】
同様に、一実施形態に従うと、特定のパーティションに関連付けられた仮想ターゲット情報を用いて、そのパーティションによって使用されるべきパーティション特有の仮想ターゲット240(たとえば、ユニフォーム・リソース・ロケータ(uniform resource locator:URL)(たとえば、http://baylandurgentcare.com)によってアクセス可能にすることができるbaylandurgentcare.com)を定義する(239)ことができる。
【0017】
図3は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境においてマルチテナンシをサポートするためのシステムをさらに示す。
【0018】
一実施形態に従うと、config.xml構成ファイルなどのシステム構成を用いて、パーティションを定義することができる。当該パーティションは、そのパーティションに関連付けられたリソースグループについての構成エレメントおよび/または他のパーティションプロパティを含む。値は、プロパティ名/値の対を用いてパーティションごとに指定することができる。
【0019】
一実施形態に従うと、複数のパーティションは、管理されたサーバ/クラスタ242内で、または、CDB243にアクセス可能でありかつウェブ層244を介してアクセス可能である同様の環境内で、実行することができる。これにより、たとえば、ドメインまたはパーティションを(CDBの)PDBのうち1つ以上のPDBに関連付けることが可能となる。
【0020】
一実施形態に従うと、複数のパーティションの各々、この例においてはパーティションA250およびパーティションB260は、そのパーティションに関連付けられた複数のリソースを含むように構成することができる。たとえば、パーティションAは、アプリケーションA1 252と、アプリケーションA2 254と、JMS A 256と、さらには、PDB A 259に関連付けられたデータソースA257とをともに含むリソースグループ251を含むように構成することができる。この場合、パーティションは仮想ターゲットA258を介してアクセス可能である。同様に、パーティションB260は、アプリケーションB1 262と、アプリケーションB2 264と、JMS B 266と、さらには、PDB B 269に関連付けられたデータソースB267とをともに含むリソースグループ261を含むように構成することができる。この場合、パーティションは仮想ターゲットB268を介してアクセス可能である。
【0021】
上述の例のうちいくつかはCDBおよびPDBの使用を例示しているが、他の実施形態に従うと、他のタイプのマルチテナントのデータベースまたは非マルチテナントのデータベースをサポートすることができる。この場合、特定の構成は、たとえば、スキーマを使用するかまたはさまざまなデータベースを使用することによって、各々のパーティションのために提供することができる。
【0022】
リソース
一実施形態に従うと、リソースは、環境のドメインにデプロイすることができるシステムリソース、アプリケーションまたは他のリソースもしくはオブジェクトである。たとえば、一実施形態に従うと、リソースは、アプリケーション、JMS、JDBC、JavaMail、WLDFもしくはデータソースであり得るか、または、サーバ、クラスタもしくは他のアプリケーションサーバターゲットにデプロイすることができる他のシステムリソースもしくは他のタイプのオブジェクトであり得る。
【0023】
パーティション
一実施形態に従うと、パーティションは、パーティション識別子(partition identifier:ID)および構成に関連付けられ得るドメインのうちランタイムおよび管理の区分またはスライスであるとともに、アプリケーションを含み得て、ならびに/または、リソースグループおよびリソースグループテンプレートを使用することによってドメイン全体に渡るリソースを参照し得る。
【0024】
概して、パーティションは、それ自体のアプリケーションを含み、リソースグループテンプレートを介してドメイン全体に渡るアプリケーションを参照し、それ自体の構成を有し得る。パーティション可能なエンティティは、リソース、たとえば、JMS、JDBC、JavaMail、およびWLDFリソースや、他のコンポーネント、たとえばJNDIネームスペース、ネットワークトラフィック、ワークマネージャ、セキュリティポリシーおよび領域などを含み得る。マルチテナント環境のコンテキストにおいては、システムは、テナントに関連付けられたパーティションの管理およびランタイムのアスペクトへのアクセスをテナントに提供するように構成することができる。
【0025】
一実施形態に従うと、パーティション内の各々のリソースグループは、任意には、リソースグループテンプレートを参照することができる。パーティションは、複数のリソースグループを有し得るとともに、それらの各々はリソースグループテンプレートを参照し得る。各々のパーティションは、パーティションのリソースグループが参照するリソースグループテンプレートにおいて指定されていない構成データについてのプロパティを定義することができる。これにより、パーティションが、リソースグループテンプレートで定義されたデプロイ可能なリソースをそのパーティションで使用されるべき特定の値にバインドするものとして機能することが可能となる。場合によっては、パーティションは、リソースグループテンプレートによって指定される構成情報を無効にすることができる。
【0026】
一実施形態に従うと、パーティション構成は、たとえば、config.xml構成ファイルによって定義されるように、複数の構成エレメントを含み得る。複数の構成エレメントは、たとえば、「パーティション(partition)」(そのパーティションを定義する属性および子エレメントを含む);「リソース・グループ(resource-group)」(パーティションにデプロイされるアプリケーションおよびリソースを含む);「リソース・グループ・テンプレート(resource-group-template)」;(そのテンプレートによって定義されるアプリケーションおよびリソースを含む);「jdbc・システム・リソース・無効化(jdbc-system-resource-override)」(データベース特有のサービス名、ユーザ名およびパスワードを含む);ならびに、「パーティション・プロパティ(partition-properties)」(リソースグループテンプレートにおいてマクロ置換のために使用可能なプロパティキー値を含む)を含む。
【0027】
始動後、システムは、構成ファイルによって提供される情報を用いて、リソースグループテンプレートから各々のリソースについてのパーティション特有の構成エレメントを生成することができる。
【0028】
リソースグループ
一実施形態に従うと、リソースグループは、名前付けされ完全に修飾されたデプロイ可能なリソースの集合であって、ドメインまたはパーティションのレベルで定義することができ、かつ、リソースグループテンプレートを参照することができる。リソースグループにおけるリソースは、完全に修飾されているものと見なされる。というのも、アドミニストレータが、それらのリソースを開始させるのに必要とされるかまたはそれらのリソースに接続するのに必要とされるすべての情報、たとえば、データソースに接続するためのクレデンシャル、またはアプリケーションについての目標情報、を提供しているからである。
【0029】
システムアドミニストレータは、ドメインレベルで、またはパーティションレベルでリソースグループを公開することができる。ドメインレベルでは、リソースグループは、関連するリソースをグループ化するのに好都合な方法を提供する。システムは、グループ化されていないリソースと同じドメインレベルのリソースグループにおいて公開されたリソースを管理することができる。このため、リソースは、システム起動中に開始させたり、システムのシャットダウン中に停止させたりすることができる。アドミニストレータはまた、グループ内のリソースを個々に停止させるか、開始させるかまたは削除することができ、グループ上で動作させることによって暗黙的にグループ内のすべてのリソースに対して機能することができる。たとえば、あるリソースグループを停止させることにより、まだ停止されていないグループにおけるすべてのリソースを停止させ;リソースグループを始動させることにより、まだ始動させていないグループにおけるいずれのリソースも始動させ、リソースグループを削除することにより、グループに含まれるすべてのリソースを削除する。
【0030】
パーティションレベルでは、システムまたはパーティションアドミニストレータは、任意のセキュリティ制限下で、或るパーティションにおいて0個以上のリソースグループを構成することができる。たとえば、SaaS使用事例においては、さまざまなパーティションレベルのリソースグループは、ドメインレベルのリソースグループテンプレートを参照することができる。PaaS使用事例においては、リソースグループテンプレートを参照しないが代わりにそのパーティション内でのみ利用可能にされるべきアプリケーションおよびそれらの関連するリソースを表わすパーティションレベルのリソースグループを作成することができる。
【0031】
一実施形態に従うと、リソースグループ化を用いることで、アプリケーションと、それらアプリケーションがドメイン内で別個の管理ユニットとして使用するリソースとをともにグループ化することができる。たとえば、以下に記載される医療記録(MedRec)アプリケーションにおいては、リソースグループ化によりMedRecアプリケーションおよびそのリソースが定義される。複数のパーティションは、各々がパーティション特有の構成情報を用いて、同じMedRecリソースグループを実行することができ、このため、各々のMedRecインスタンスの一部であるアプリケーションが各々のパーティションにとって特有のものにされる。
【0032】
リソースグループテンプレート
一実施形態に従うと、リソースグループテンプレートは、リソースグループから参照することができドメインレベルで定義されるデプロイ可能なリソースの集合であり、そのリソースを起動するのに必要な情報のうちいくらかは、パーティションレベル構成の仕様をサポートするように、テンプレート自体の一部として記憶されない可能性がある。ドメインは、リソースグループテンプレートをいくつ含んでもよく、それらの各々は、たとえば、1つ以上の関連するJavaアプリケーションと、それらのアプリケーションが依存するリソースとを含み得る。このようなリソースについての情報のうちのいくらかは、すべてのパーティションにわたって同じであってもよく、他の情報はパーティションごとに異なっていてもよい。すべての構成がドメインレベルで指定される必要はなく、代わりに、パーティションレベル構成が、マクロまたはプロパティ名/値の対を使用することによってリソースグループテンプレートで指定することができる。
【0033】
一実施形態に従うと、特定のリソースグループテンプレートは、1つ以上のリソースグループによって参照可能である。概して、任意の所与のパーティション内では、リソースグループテンプレートは一度に1つのリソースグループによってのみ参照することができる。すなわち、同じパーティション内で同時に複数のリソースグループによって参照することはできない。しかしながら、異なるパーティションにおける別のリソースグループによって同時に参照することができる。リソースグループを含むオブジェクト、たとえばドメインまたはパーティションは、プロパティ名/値の割当てを用いて、任意のトークンの値をリソースグループテンプレートで設定することができる。システムは、参照するリソースグループを用いてリソースグループテンプレートを起動させると、それらのトークンを、リソースグループが含むオブジェクトにおいて設定された値と置換えることができる。場合によっては、システムはまた、静的に構成されたリソースグループテンプレートおよびパーティションを用いて、パーティション/テンプレートの組合せごとにランタイム構成を生成することができる。
【0034】
たとえば、SaaS使用事例においては、システムは、同じアプリケーションおよびリソースを複数回起動することができるが、そのうちの1回は、それらを用いるであろう各パーティションごとに起動され得る。アドミニストレータがリソースグループテンプレートを定義すると、これらは、どこか他のところで提供されるであろう情報を表わすためにトークンを用いることができる。たとえば、CRM関連のデータリソースに接続する際に使用されるユーザ名は、リソースグループテンプレートにおいて\${CRMDataUsername}として示すことができる。
【0035】
テナント
一実施形態に従うと、マルチテナント(MT)アプリケーションサーバ環境などのマルチテナント環境においては、テナントは、1つ以上のパーティションおよび/もしくは1つ以上のテナント認識型アプリケーションによって表現可能であるエンティティ、または1つ以上のパーティションおよび/もしくは1つ以上のテナント認識型アプリケーションに関連付けることができるエンティティである。
【0036】
たとえば、テナントは、別個のユーザ組織、たとえばさまざまな外部会社、特定の企業内のさまざまな部門(たとえばHRおよび財務部)などを表わすことができ、それら各々は、異なるパーティションに関連付けることができる。テナントのグローバルユニークアイデンティティ(テナントID)は、特定の時点において特定のユーザを特定のテナントに関連付けるものである。システムは、たとえば、ユーザアイデンティティの記録を参照することによって、ユーザアイデンティティから、特定のユーザがどのテナントに属しているかを導き出すことができる。ユーザアイデンティティにより、ユーザが実行することを認可されているアクションをシステムが実施することが可能となる。ユーザアイデンティティは、ユーザがどのテナントに属し得るかを含むが、これに限定されない。
【0037】
一実施形態に従うと、システムは、互いに異なるテナントの管理およびランタイムを分離することを可能にする。たとえば、テナントは、それらのアプリケーションのいくつかの挙動、およびそれらがアクセスできるリソースを構成することができる。システムは、特定のテナントが別のテナントに属するアーティファクトを確実に管理することができないようにし、かつ、実行時に、特定のテナントの代わりに機能するアプリケーションがそのテナントに関連付けられたリソースのみを参照するが他のテナントに関連付けられたリソースは参照しないことを確実にすることができる。
【0038】
一実施形態に従うと、テナント非認識型アプリケーションは、アプリケーションが応答している要求をどんなユーザが提示したかにかかわらず、アプリケーションが用いる如何なるリソースにもアクセス可能となるように明示的にテナントに対処する論理を含まないものである。対照的に、テナント認識型アプリケーションは、テナントに明示的に対処する論理を含む。たとえば、ユーザのアイデンティティに基づいて、アプリケーションは、ユーザが属するテナントを導き出すことができ、テナント特有のリソースにアクセスするためにその情報を用いることができる。
【0039】
一実施形態に従うと、システムは、テナント認識型となるように明示的に書き込まれたアプリケーションをユーザがデプロイすることを可能にし、これにより、アプリケーション開発者は、現在のテナントのテナントIDを取得することができる。次いで、テナント認識型アプリケーションは、このテナントIDを用いて、アプリケーションの単一のインスタンスを用いている複数のテナントを処理することができる。
【0040】
たとえば、単一の診療室または病院をサポートするMedRecアプリケーションは、2つの異なるパーティションまたはテナント(たとえばBayland Urgent CareテナントおよびValley Healthテナント)に対して公開することができ、その各々は、基礎をなすアプリケーションコードを変更することなく、別個のPDBなどの別個のテナント特有のリソースにアクセスすることができる。
【0041】
例示的なドメイン構成およびマルチテナント環境
一実施形態に従うと、アプリケーションは、ドメインレベルでリソースグループテンプレートにデプロイすることができるか、または、パーティションに範囲指定されているかもしくはドメインに範囲指定されているリソースグループにデプロイすることができる。アプリケーション構成は、アプリケーション毎またはパーティション毎に指定されたデプロイメントプランを用いて無効化することができる。
【0042】
図4は、一実施形態に従った、例示的なマルチテナント環境で使用されるドメイン構成を示す。
【0043】
一実施形態に従うと、システムがパーティションを始動させると、当該システムは、提供された構成に従って、それぞれのデータベースインスタンスに対して、各パーティションごとに1つずつ、仮想ターゲット(たとえば仮想ホスト)および接続プールを作成する。
【0044】
典型的には、各々のリソースグループテンプレートは、1つ以上の関連するアプリケーションと、それらアプリケーションが依存するリソースとを含み得る。各々のパーティションは、それが参照するリソースグループテンプレートにおいて指定されていない構成データを提供することができるが、これは、場合によっては、リソースグループテンプレートによって指定されるいくつかの構成情報を無効にすることを含めて、パーティションに関連付けられた特定値に対するリソースグループテンプレートにおけるデプロイ可能なリソースのバインディングを行なうことによって、実行可能である。これにより、システムは、各々のパーティションが定義したプロパティ値を用いて、パーティション毎にリソースグループテンプレートによってさまざまに表わされるアプリケーションを始動させることができる。
【0045】
いくつかのインスタンスにおいては、パーティションが含み得るリソースグループは、リソースグループテンプレートを参照しないか、または、それら自体のパーティション範囲指定されたデプロイ可能なリソースを直接定義する。パーティション内で定義されるアプリケーションおよびデータソースは、概して、そのパーティションにとってのみ利用可能である。リソースは、パーティション:<partitionName>/<resource JNDI name>、またはドメイン:<resource JNDI name>を用いて、パーティションの中からアクセスすることができるようにデプロイ可能である。
【0046】
たとえば、MedRecアプリケーションは、複数のJavaアプリケーション、データソース、JMSサーバおよびメールセッションを含み得る。複数のテナントのためにMedRecアプリケーションを実行させるために、システムアドミニストレータは、テンプレートにおけるそれらのデプロイ可能なリソースを公開している単一のMedRecリソースグループテンプレート286を定義することができる。
【0047】
ドメインレベルのデプロイ可能なリソースとは対照的に、リソースグループテンプレートにおいて公開されたデプロイ可能なリソースは、テンプレートにおいて完全には構成されない可能性があるか、または、いくつかの構成情報が不足しているので、そのままでは起動させることができない。
【0048】
たとえば、MedRecリソースグループテンプレートは、アプリケーションによって用いられるデータソースを公開し得るが、データベースに接続するためのURLを指定しない可能性がある。さまざまなテナントに関連付けられたパーティション、たとえば、パーティションBUC−A290(Bayland Urgent Care:BUC)およびパーティションVH−A292(Valley Health:VH)は、各々がMedRecリソースグループテンプレートを参照する(296,297)MedRecリソースグループ293,294を含むことによって、1つ以上のリソースグループテンプレートを参照することができる。次いで、当該参照を用いて、Bayland Urgent Careテナントによって使用されるBUC−Aパーティションに関連付けられた仮想ホストbaylandurgentcare.com304と、Valley Healthテナントによって使用されるVH−Aパーティションに関連付けられた仮想ホストvalleyhealth.com308とを含む各々のテナントのための仮想ターゲット/仮想ホストを作成する(302,306)ことができる。
【0049】
図5は、一実施形態に従った例示的なマルチテナント環境をさらに示す。図5に示されるように、2つのパーティションがMedRecリソースグループテンプレートを参照している上述の例から引続いて、一実施形態に従うと、サーブレットエンジン310は、この例においてはBayland Urgent Careの医師テナント環境320およびValley Healthの医師テナント環境330といった複数のテナント環境をサポートするために用いることができる。
【0050】
一実施形態に従うと、各々のパーティション321および331は、そのテナント環境についての入来トラフィックを受入れるための異なる仮想ターゲットと、異なるURL322,332とを定義することができる。異なるURL322,332は、パーティションと、この例ではbayland urgent careデータベースまたはvalley healthデータベースを含むそれぞれのリソース324、334とに接続するためのものである。同じアプリケーションコードが両方のデータベースに対して実行され得るので、データベースインスタンスは互換性のあるスキーマを用いることができる。システムがパーティションを始動させると、当該システムは、それぞれのデータベースインスタンスに対する接続プールおよび仮想ターゲットを作成することができる。
【0051】
複数のエディットセッションのサポート
アプリケーションサーバ環境、たとえばマルチテナントアプリケーションサーバ環境において、アプリケーションサーバドメインは、複数のパーティションと複数の構成ファイルを有することができ、これらは異なる種類のアドミニストレータによって管理される。構成ファイルの単一の編集セッションは、このようなドメインには不十分である。
【0052】
一実施形態に従い、本明細書において、マルチテナントアプリケーションサーバ環境における編集セッションをサポートするためのシステムおよび方法が説明される。一実施形態に従うと、第1のアドミニストレータまたはユーザは、あるパーティションに対して使用するための名前付き編集セッションを取得し、変更を実施し、その後これらの変更を有効化することができる。別のアドミニストレータまたはユーザは、並行して名前付き編集セッションを作成することができる。同時に発生する、ある変更と別のユーザによる変更との間にコンフリクトがある場合、アドミニストレータは、変更を有効化するときにエラー警告を受信することができる。その時点で、アドミニストレータは、このコンフリクトを解決し変更を有効化することができる。有効化されると、編集セッションにおける変更は、グローバル編集構成(configuration)に適用される。
【0053】
一実施形態に従うと、この特徴は、マルチテナント環境または非マルチテナント環境において使用することができる。マルチテナント環境ではこの特徴を自動的に開始することができる。一方、非マルチテナント環境ではこの特徴を手作業で開始することができる。
【0054】
一実施形態に従うと、アドミニストレータ、たとえばシステムアドミニストレータまたはパーティションアドミニストレータは、名前付き編集セッションを開始し、ドメインの構成のスナップショットを取得することができる。ドメイン構成は、1つ以上のパーティション構成を含む。アドミニストレータは、このアドミニストレータが変更することを許可されたドメイン構成の一部を変更し、この変更を有効化することができる。その後、システムは、この変更と、既に有効化されている1つ以上の変更との間にコンフリクトがあるか否かを検査することができる。
【0055】
ある実施形態に従うと、コンフリクトは、同時発生するすなわち並列する名前付き編集セッション間で、ある名前付き編集セッションによってなされた変更が有効化されるときに、発生し得る。たとえば、第1の名前付き編集セッションの開始後において、現在のドメイン構成は、第2の名前付き編集セッションによって変更されている可能性がある。第1の名前付き編集セッションにおいてドメイン構成のスナップショットに対して変更がなされ有効化されてドメイン構成に適用されたときに、潜在的なコンフリクトが発生する場合がある。潜在的なコンフリクトの一例として、第1の名前付き編集セッションが、第2の編集セッションによってドメイン構成から削除された構成beanを更新した場合が挙げられる。
【0056】
一実施形態に従うと、コンフリクトは、2以上のパーティションアドミニストレータによって同一のパーティションに対してなされた変更間、ドメイン構成のグローバルなプロパティを修正した2以上のシステムアドミニストレータによってなされた変更間、または、システムアドミニストレータによってなされた変更とパーティションアドミニストレータによってなされた変更との間に、発生し得る。
【0057】
1つの名前付き編集セッションからの変更が有効化されるときに、システムがコンフリクトを検出する場合がある。このコンフリクトを一組の構成ルールに従って解決することが可能であれば、上記変更が有効化されて現在のドメイン構成に適用される。このコンフリクトを上記ルールに基づいて解決することが不可能であれば、有効化作業は失敗し、アドミニストレータが手作業で解決できるよう、上記コンフリクトがユーザインターフェイスに表示される。
【0058】
これに代えて、アドミニストレータは、解決方法を、管理アプリケーションプログラミングインターフェイスを介して呼出すことができる。この解決方法を用いて、並行して適用された構成の変更を、現在の名前付き編集セッションに適用することができる。
【0059】
手作業による解決または解決方法による解決がなされた後に、現在の名前付き編集セッションにおける変更を再び有効化することができる。
【0060】
図6は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境における複数の編集セッションをサポートするためのシステムを示す図である。
【0061】
図6に示されるように、このシステムは、アプリケーションサーバ環境100におけるドメイン602を含む。ドメイン構成606は、パーティションに対する複数の構成(たとえばパーティション構成A 607およびパーティション構成B 609)を含み得る。各パーティション構成はパーティションを定義することができ、このパーティションについてアドミニストレータはパーティション構成を編集することができる。
【0062】
一実施形態に従うと、システムアドミニストレータまたはパーティションアドミニストレータは、ドメイン構成を、この構成のスナップショット(たとえば構成スナップショットA 626aまたは構成スナップショットB 628a)に対して作業を実施することにより、編集することができる。構成スナップショットは、管理サーバに存在する構成MBeansの別の階層によって表わすことができる。
【0063】
一実施形態に従うと、ドメイン構成は、複数のアドミニストレータ(たとえばアドミニストレータA 619およびアドミニストレータB 621)が、複数の並行セッション(たとえば編集セッションA 623および編集セッションB 625)を利用して編集することができる。各編集セッションは、セッション開始時に指定された名前によって一意に特定されることができ、自身の構成ファイルと自身の構成管理beanインスタンスを有することができる。
【0064】
図6に示されるように、アドミニストレータAは編集セッションAにおける構成スナップショットA 627を編集することができ、アドミニストレータBは編集セッションBにおける構成スナップショットB 631を編集することができる。
【0065】
一実施形態に従うと、アドミニストレータは、管理API611(たとえばランタイムMBean API)を用いて名前付き並行編集セッションを作成または破壊することができる。管理APIは複数のインターフェイス(たとえば保存613、解決615、および有効化617)を含み得る。これらのインターフェイスは、アドミニストレータが複数の動作を実行できるように、たとえば編集セッションを開始し、変更を残し、変更を表示し、変更を取消すことができるようにする。
【0066】
一実施形態に従うと、編集セッションでなされた変更は、ドメイン内の記憶域605に保存する637ことができる。保存された変更は、有効化されるまで無効である。変更を有効化することは、変更をドメイン構成にマージしドメイン内のすべてのサーバインスタンスに分配することを含み得る。
【0067】
先に述べたように、各編集セッションは、ドメイン構成のスナップショットに対して作業を行なっている。各編集セッションの中でなされた変更間でコンフリクトが生じる可能性がある。たとえば、ある編集セッションは、別の編集セッションによってドメイン構成から削除された構成beanを更新する、または、ある編集セッションは、これもまた別の編集セッションによって変更された属性を変更する。コンフリクトは、同一のパーティションに対して複数のパーティションアドミニストレータによってなされた変更間、複数のシステムアドミニストレータによってなされた変更間、またはシステムアドミニストレータによってなされた変更とパーティションアドミニストレータによってなされた変更との間で、生じ得る。
【0068】
一実施形態に従うと、アドミニストレータが編集セッションにおける構成変更を有効化するときに、並行編集セッションマネージャ639を呼出す641ことによって、これから有効化しようとしている変更と、編集セッション開始後に有効化された変更との間のコンフリクトを検出することができる。並行セッションマネージャは、編集セッションによってなされた変更(たとえば編集された構成スナップショットA 647または編集された構成スナップショットB 649)と、元のスナップショット(たとえば元の構成スナップショットA 626bまたは元の構成スナップショットB 628b)を受信する653ことができる。同様に、並行編集セッションマネージャは、現在のドメイン構成(すなわちドメイン構成605)またはその一部を受信する651ことができる。受信した情報を用いて、並行編集セッションマネージャは、一組のルールに従いコンフリクトを判断することができ、一組のルールに基づいてこのコンフリクトの一部またはすべてを解決することができる。
【0069】
図6に示されるように、コンフリクトが検出されない場合または検出されたコンフリクトの解決に成功した場合は、アドミニストレータによってなされた変更を、ドメイン構成に適用する649ことができる。検出されたコンフリクトを解決できない場合は、コンフリクト645を、手作業で解決するためにアドミニストレータに対して表示する629または635ことができる。
【0070】
図7は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境における複数の編集セッションをサポートするためのシステムをさらに示す図である。
【0071】
一実施形態に従うと、構成スナップショットは、構成ファイルの元のバージョンを、または、編集セッションあるいは編集ツリーを開始した構成を表わすことができる。
【0072】
上述のように、構成スナップショットは、並行する編集セッションによってなされた変更間のコンフリクトを判断する際に使用するために、構成記憶域に残すまたはコピーする655または657必要がある。
【0073】
一実施形態に従うと、並行する編集セッションに関連付けられた構成スナップショットは、上記並行する編集セッションまたは別の並行する編集セッションによって有効化動作が実行されるときに、構成記憶域に残すことができる。有効化動作が検出されない場合は、構成スナップショットを構成記憶域にコピーしない。そうすることによって、コピーする必要がある構成ファイルの数を低減する。
【0074】
一実施形態に従うと、管理APIは、すべての構成スナップショットをコピーするように、または、コンフリクトの判断に必要な構成スナップショットのみをコピーするように構成することができる。これに代えて、管理APIを、コンフリクトの判断に必要な構成スナップショット内のファイルのみをコピーするように構成してもよい。
【0075】
説明のための例を挙げると、アドミニストレータBが有効化アクションを要求する711一方で、アドミニストレータAは並行編集セッションで作業している。上記要求の結果として、管理APIは、構成スナップショットAおよびBを、またはこれらのうちの一方を、またはいずれかの構成スナップショットにおける1つ以上のファイルを、構成記憶域にコピーすることができる。
【0076】
コンフリクトの判断
図8は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境における複数の編集セッションをサポートするためのシステムをさらに示す図である。
【0077】
一実施形態に従うと、編集セッションが有効化アクションを実行するときに、並行する編集セッションによってなされたそれぞれの変更間のコンフリクトが判断される。
【0078】
たとえば、編集セッションで作業しているアドミニストレータBは、有効化アクションを要求する811ことができ、並行セッションマネージャを呼出して一組のルールに従い潜在的なコンフリクトを判断することができる。
【0079】
一実施形態に従うと、コンフリクトは、ルールに基づいた手法を用いて発見することができ任意で解決することができる。たとえば、編集セッションの開始以来ドメイン構成(たとえばWebLogicランタイムドメイン構成)に対して変更がなされていない場合は、編集セッションの変更を有効化することができる。ドメイン構成に対して変更がなされている場合、並行編集セッションマネージャは、編集セッションによる作業の対象である元の構成スナップショットと、上記ドメイン構成との相違853を求めることができる。並行編集セッションマネージャはまた、編集セッションでなされた変更を含む編集された構成スナップショットと、編集セッションによる作業の対象である元の構成スナップショットとの相違855を求めることができる。このようにして求めた2組の相違を比較することにより、潜在的なコンフリクト861を特定する857または859ことができる。
【0080】
図9は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境における複数の編集セッションをサポートするためのシステムをさらに示す図である。
【0081】
一実施形態に従うと、並行セッションマネージャによってコンフリクトが特定されると、管理APIにおける解決方法を、アドミニストレータBの要求911によって呼出して、これらのコンフリクトを解決することができる。
【0082】
一実施形態に従うと、上記解決方法を、パラメータ(たとえばstopOnConflict=false)を用いて実行することにより、ドメイン構成に対して並行して適用された変更を、これらの変更が編集セッションBでなされた変更とコンフリクトしない場合、編集セッションBに適用する947ことができる。
【0083】
たとえば、変更945は、元の構成スナップショットBとドメイン構成との相違である場合がある。
【0084】
一実施形態に従うと、以下のルールを使用することによって変更を編集セッションに適用することができる。EDITは編集セッションを表わし、CURRENTはドメイン構成を表わす。beanはドメイン内の構成beanであってもよい。
【0085】
リスティング2
1)EDITは、CURRENTにおいて削除されたbeanを更新した。beanの更新は、属性の変更または子beanの追加を含む。
【0086】
解決方法:EDITにおいてbeanを削除すればよい。
2)EDITは、CURRENTにおいて変更されたbeanを削除した。
【0087】
解決方法:beanはEDITにおいて削除されたままになる。
3)EDITは、CURRENTにおいても変更された属性を変更した。これは、単純なデータタイプ属性と単純なデータタイプ属性のアレイとを含む。加えて、順序を保護する必要があるMBeansのアレイがある。
【0088】
解決方法:EDITからの値は変更せずに元のままにしておけばよい。
4)EDITは、CURRENTにおいて追加されたbeanと同一の修飾キーを有する新たなbeanを追加。これは属性変更コンフリクトと異なるコンフリクトとして検出される。なぜなら、できる限りWLSにおける既存の差分マージツールを使用する今までのコンフリクト検出および解決方法により適しているからである。
【0089】
解決方法:beanはEDITにおいて変更されず元のままになる。
5)EDITはCURRENTにおいて削除されたbeanを指すリファレンスを(何等かのプロパティの値として)設定する。
【0090】
解決方法:リファレンスを未設定にする。
6)CURRENTはEDITにおいて削除されたbeanを指すリファレンスを(何等かのプロパティの値として)設定する。
【0091】
解決方法:EDITを変更しない、すなわちbeanを削除されたままにしておく。
7)EDITはCURRENTにおいて削除されたbeanを指すリファレンスを(何等かのプロパティの値として)含むbeanを追加する。
【0092】
解決方法:追加されたbeanにおけるリファレンスを未設定にする。
8)CURRENTはEDITにおいて削除されたbeanを指すリファレンスを(何等かのプロパティの値として)含むbeanを追加する。
【0093】
解決方法:新たなbeanをEDITにも追加しリファレンスを未設定にする。
リスティング2に示されるように、認識されている構成コンフリクトと各コンフリクトの解決方法のリストが確認される。
【0094】
一実施形態に従うと、解決方法がコールされた後に、アドミニストレータは再び編集セッションにおける保留中の変更の有効化を始めることができる。この解決作業により、当面は別の編集セッションが新たな変更を有効化しない限り、コンフリクトがこれ以上発生しないことを保証できる。
【0095】
一実施形態に従うと、この解決処理の結果、構成検証フェイズにおいて承認されない矛盾した構成になる可能性がある。アドミニストレータは、ユーザインターフェイスに表示された情報を用いて、解決されたセッションを、矛盾がなく有効で意味のある状態に修正することができる。表示された情報はコンフリクトを含み得る。各コンフリクトは、コンフリクトの説明として、たとえば、コンフリクトにおけるbean/プロパティの特定、および、当該コンフリクトについて何が解決されたかを説明する1つ以上のメッセージを含み得る。
【0096】
アドミニストレータが使用できる他の情報は、各解決およびマージステップの短い説明を含み得るログメッセージを含む。ログメッセージを用いることにより、どの変更がなされたのか、および、特定の編集セッションにおいて変更がどのようにしてなされたのかを確認することができる。
【0097】
一実施形態に従うと、上記情報は、解決方法がコールされたときに、ユーザインターフェイス上の解決タスクからアクセスすることができる、または、スクリプトツール(たとえばWebLogic Scripting Tool)にプリントすることができる。
【0098】
図10は、一実施形態に従った、アプリケーションサーバ、クラウドまたは他の環境における複数の編集セッションをサポートするためのシステムをさらに示す図である。
【0099】
図10に示されるように、ステップ1011において、アプリケーションサーバ(たとえばマルチテナント)環境を1以上のコンピュータ上に提供することができる。このアプリケーションサーバ環境は、1以上のパーティションを有するドメインと、これらのドメインおよびパーティションを構成するドメイン構成と、ドメイン構成を変更する際にアドミニストレータが使用する管理APIとを含む。
【0100】
ステップ1013において、管理APIを介して複数の並行編集セッションから変更を受ける。各並行編集セッションを構築してドメイン構成のスナップショットを編集する。
【0101】
ステップ1015において、受けた変更におけるコンフリクトをドメイン内の並行セッションマネージャによって検出することができる。
【0102】
ステップ1017において、上記コンフリクトを解決のためにアドミニストレータに対して表示することができる。
【0103】
この発明は、この開示の教示に従ってプログラミングされた1つ以上のプロセッサ、メモリおよび/またはコンピュータ読取可能記憶媒体を含む、1つ以上の従来の汎用または特化型デジタルコンピュータ、コンピューティング装置、マシン、またはマイクロプロセッサを使用して都合よく実現されてもよい。ソフトウェア技術の当業者には明らかであるように、この開示の教示に基づいて、適切なソフトウェアコーディングが、熟練したプログラマによって容易に準備され得る。
【0104】
実施形態によっては、本発明は、本発明のプロセスのうちいずれかを実行するためにコンピュータをプログラムするのに使用できる命令が格納された非一時的な記録媒体または(1つまたは複数の)コンピュータ読取可能な媒体であるコンピュータプログラムプロダクトを含む。この記録媒体は、フロッピー(登録商標)ディスク、光ディスク、DVD、CD−ROM、マイクロドライブ、および光磁気ディスクを含む、任意の種類のディスク、ROM、RAM、EPROM、EEPROM、DRAM、VRAM、フラッシュメモリデバイス、磁気もしくは光カード、ナノシステム(分子メモリICを含む)、または、命令および/もしくはデータを格納するのに適した任意の種類の媒体もしくはデバイスを含み得るものの、これらに限定されない。
【0105】
本発明のこれまでの記載は例示および説明を目的として提供されている。すべてを網羅するまたは本発明を開示された形態そのものに限定することは意図されていない。当業者には数多くの変更および変形が明らかであろう。実施の形態は、本発明の原理およびその実際の応用を最もうまく説明することによって他の当業者がさまざまな実施の形態および意図している特定の用途に適したさまざまな変形を理解できるようにするために、選択され説明されている。本発明の範囲は添付の特許請求の範囲およびそれらの同等例によって規定されるものと意図されている。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10