説明

アプリケーション特有のアクセス制御を別個のサーバを用いてサポートするための手法

アプリケーションによって実行されるアプリケーション特有の動作に対するアクセス制御をサポートするための手法は、アプリケーションとは別個のサーバで第1のデータを受信するステップを含む。第1のデータは、第1の1組のアプリケーション特有の動作を実行するための第1の1組の特権を記述している。第2のデータもサーバで受信される。第2のデータは、アプリケーションの第1のユーザを、第1の1組の特権におけるある特権と関連付ける。アプリケーションからの要求をサーバで受信するのに応答して、ある特定のユーザがアプリケーションにある特定のアプリケーション特有の動作を実行させてもよいかどうかが、第1のデータおよび第2のデータに基づいて判断される。要求は、特定のユーザおよび特定のアプリケーション特有の動作を示す。応答がアプリケーションに送信される。応答は、特定のユーザがアプリケーションに特定のアプリケーション特有の動作を実行させてもよいかどうかを示す。

【発明の詳細な説明】
【技術分野】
【0001】
発明の分野
この発明は、アプリケーションの動作へのユーザアクセスを制御することに関し、特に、アプリケーションの動作へのユーザアクセスを、アプリケーションとは別個のサーバを用いて制御することに関する。
【背景技術】
【0002】
発明の背景
コンピュータ処理相互作用のクライアント−サーバモデルは、幅広く用いられている。クライアント−サーバモデルによれば、クライアントプロセスは、要求を含むメッセージをサーバプロセスに送信し、サーバプロセスは、サービスを提供することによって応答する。サーバプロセスはまた、クライアントプロセスへの応答とともにメッセージを返してもよい。クライアントプロセスおよびサーバプロセスは往々にして、ホストと呼ばれる異なるコンピュータ装置上で実行され、ネットワーク通信用の1つ以上のプロトコルを用いて、ネットワークを介して通信する。
【0003】
「サーバ」という用語は従来、サービスを提供するプロセス、またはプロセスが動作するホストコンピュータを指すために使用されている。同様に、「クライアント」という用語は従来、要求を行なうプロセス、またはプロセスが動作するホストコンピュータを指すために使用される。ここで使用されているように、「クライアント」および「サーバ」という用語は、文脈から特に明らかとなっていない限り、ホストコンピュータというよりもむしろプロセスを指している。
【0004】
データベースサーバは、データベースクライアントからの要求に応答して、データベースサービスを提供する。たとえば、データベースサーバは、要求において受信されたデータを、データベースサーバによって管理されるある特定のデータベース内の1つ以上のデータコンテナに書込む。または、データベースサーバは、要求において特定された条件を満たすそれらのコンテナのうちの1つ以上から、データを検索する。もしくは、それは両方とも行なう。多くの状況において、データベースクライアントは、データベースサーバとは異なる中層のアプリケーションであり、それは1人以上のアプリケーションユーザのために会計サービスといった他のサービスを実行する。アプリケーション自体はクライアント−サーバ動作用に構成されていてもよく、そのため、アプリケーションユーザは、アプリケーションサーバにアプリケーション要求を行なうアプリケーションクライアントを動作させる。
【0005】
データベースサーバのすべてのユーザに、データベースサーバによって管理される全データベースオブジェクト内の全データへのアクセスが付与されるわけではない。したがって、データベース内のデータへのデータベースユーザのアクセスを制御するアクセス制御を実現することは、データベースサーバにとってよくあることである。多くのアクセス制御メカニズムが公知である。たとえば、マーシー(Murthy)に記載されている均一なアクセス制御メカニズムは、データベースユーザには記憶コンテナの階層、または定義された列を有するテーブルのリレーショナルデータベース、もしくはその双方に編成されているように見えるデータ内容についてのアクセス制御を提供する。
【0006】
アクセス制御はしばしば、データベース動作を実行する特権として実現されており、データベース内のある特定のデータ項目またはデータ項目の群について、1組の1つ以上の
特権がデータベースの各ユーザに関連付けられている。たとえば、基本データベース動作、たとえばテーブルなどのデータベースオブジェクト内に存在し得るデータ項目のデータを読出す、挿入する、削除する動作、またはデータベースオブジェクト自体を作成する、修正する、または削除する動作を実行するために、基本的な特権が定義されている。
【0007】
基本データベース動作を実行する特権は、データベースのいくつかのレベルのうちのある特定のレベルに関連付けられてもよい。データベースのレベルは、たとえば、データ項目のレベル、いくつかのデータ項目のデータベースオブジェクトのレベル、いくつかのデータベースオブジェクトの階層のノードのレベル、および、データベースオブジェクトのいくつかの子孫ノードの親ノードのレベルを含む。ある特権がある特定のレベルに関連付けられると、その特権はそのレベルでの全項目に当てはまるかもしれない。
【0008】
いくつかのデータベース管理システムでは、特権の階層が定義されていてもよく、階層における各ノードは、データベースの1つ以上のレベルに対して基本動作のある組合せを実行する特権を表わしている。特権のこの階層をサポートするため、いくつかのデータベース管理システムにおけるデータベースサーバは、特権を記述し、ユーザおよびデータ項目を特権と関連付け、特権についての情報を高速メモリキャッシュに効率よく記憶および検索して、データベースユーザが、要求されたデータ項目またはデータベースオブジェクトに対して、要求されたデータベース動作を実行してもよいかどうかを迅速に判断するインフラストラクチャを提供する。
【発明の開示】
【発明が解決しようとする課題】
【0009】
データベース動作を実行する特権に基づいてデータベースへのアクセス制御をサポートするインフラストラクチャは、データベース動作の細分性でアクセス制御を提供する。しかしながら、データベース動作レベルの細分性でアクセス制御を提供する能力は、データベースを使用するアプリケーションにおいて定義されている動作に基づいてアクセスを制御したい場合には、特に有用ではない。そのような動作をここに「アプリケーション特有の」動作と呼ぶ。
【0010】
たとえば、ある企業のために発注書を管理するアプリケーションでは、アプリケーション特有の動作は、新しい発注書の作成、発注書の承認、購入を行なうための発注書の発行、ある特定の発注書への請求書の関連付け、配送された注文の受領確認、および関連付けられた請求書の支払による発注書の清算を含む。あるアプリケーションユーザにこれらのアプリケーション特有の動作の一部のみを実行する特権が与えられる場合、アクセス制御は、アプリケーション特有の動作のレベルの細分性で提供されなければならない。アクセス制御のこのレベルの細分性はデータベースサーバによって提供されないため、アプリケーション特有の動作の特権を使用する各アプリケーションの開発者は、異なるユーザのための異なる特権を管理するアクセス制御ソフトウェアを設計し、実現しなければならない。
【0011】
各アプリケーションについてアクセス制御ソフトウェアを開発することにはいくつかの欠点がある。一欠点は、アクセス制御を実現するソフトウェアを生成するために開発資源が消費されるため、アプリケーションの開発費が増加することである。アクセス制御がより高度化するにつれ、開発費もより高くなる。逆に、アクセス制御の開発にかける金額が少なくなるほど、実現されるアクセス制御は高度ではなくなる。別の欠点は、新しいアプリケーション用に開発されるアクセス制御が往々にして、長年にわたっていくつかのシステムおよびサーバ用に既に開発されているアクセス制御ほど効率的ではないことである。たとえば、データベースサーバの中には、ユーザ特権を示すデータの効率的なキャッシングの使用を含め、計算用資源を最小限しか使用しないアクセス制御を備えて進化してきた
ものもある。
【0012】
さらに、個別に開発されたアクセス制御メカニズムを有する多数のアプリケーションのアドミニストレータは、特権の階層を表現し、それらの特権へのアプリケーションユーザおよびデータ項目の関連付けを表現するために、異質のインターフェイスに取組まなければならない場合がある。多数のアプリケーションにわたって同じアクセス制御インフラストラクチャが利用可能である場合、それら多数のアプリケーションについてのアドミニストレータは、特権および関連するユーザならびにデータ項目についての情報を、より少ない集中力およびエラーでより容易に入力することができる。
【0013】
前述の記載に基づき、データベースアプリケーションが、データベースサーバの効率的なアクセス制御メカニズムを利用できるようにするための明らかな要望が存在している。どのアプリケーションも、別個のサーバにおいて既に実現されている高度化した、かつ効率的なアクセス制御メカニズムを利用できるようにするための要望が、一般に存在している。
【0014】
この項に記載されたアプローチは追求可能であるが、それらは必ずしも、以前に考えられまたは追求されてきたアプローチであるとは限らない。したがって、ここに特に示されていない限り、この項に記載されたアプローチは、この背景の項に存在するというだけの理由で、本出願の請求項に対する先行技術として考えられるべきではない。
【0015】
この発明を、添付図面の図において、限定のためではなく例示のために説明する。図中、同じ参照番号は同様の要素を示す。
【発明を実施するための最良の形態】
【0016】
発明の詳細な説明
アプリケーション特有の動作に対するアクセス制御を別個のサーバを用いてサポートするための方法および装置が記載される。以下の記載では、説明のため、数多くの特定の詳細がこの発明の完全な理解を提供するために述べられる。しかしながら、この発明がこれらの特定の詳細なしで実践され得ることは明らかである。他の点では、この発明を不必要に不明瞭にしないよう、周知の構造および装置はブロック図の形で示される。
【0017】
以下に、ある実施例が、データベースサーバ、およびデータベースクライアントであるアプリケーションの状況で説明される。この状況では、アプリケーションはデータベースサーバを、アプリケーション用のデータを記憶するためだけでなく、データベース動作ではない代わり、アプリケーションに特有の動作である動作についてアクセス制御をサポートするためにも使用する。この発明の実施例はこの状況に限定されないが、アプリケーション特有の動作に対するアクセス制御をサポートするために任意の別個のサーバに頼る任意のアプリケーションを含んでいてもよい。アプリケーションとサーバとは別個のプロセスであるが、実施例によっては、双方が同じコンピュータホスト上で実行されてもよい。
【0018】
一実施例によれば、アプリケーション特有の動作のためのアクセス制御は、アプリケーションが、第1の組のアプリケーション特有の動作を実行するための特権の第1の階層を記述するデータをサーバに送信することによって、達成される。アプリケーションはまた、サーバに、アプリケーションの第1のユーザを特権の第1の階級におけるある特権に関連付けるデータを送信する。ある特定のユーザがある特定のアプリケーション特有の動作を実行するよう許可されているかどうかを判断するために、アプリケーションはサーバに要求を送信する。要求は、特定のユーザおよび特定のアプリケーション特有の動作を示す。要求の受信に応答して、サーバは、アプリケーションから以前に受信したデータに基づき、ある特定のユーザがアプリケーションにある特定のアプリケーション特有の動作を実
行させてもよいかどうかを判断する。応答がアプリケーションに送信される。応答は、その特定のユーザがアプリケーションにその特定のアプリケーション特有の動作を実行させてもよいかどうかを示す。
【0019】
これらの手法のいくつかの実施例では、アプリケーションによってサーバに送信されたデータは、アプリケーションの第1のユーザを、サーバに記憶された特定の型のデータ項目についての第1の階層におけるある特権と関連付ける。実施例によっては、アプリケーションはサーバに、いくつかの異なるユーザ、またはいくつかの異なるデータ項目、もしくはその双方についての特権情報を提供してもよい。
【0020】
アクセス制御は一般に、動作を実行する特権の階層として表現可能である。階層は周知の数学的構成体である。一般に、階層は多数レベルのノードから構成されている。各レベルのノードは各々、異なるレベルの1つ以上のノードにリンクされている。トップレベルの下のレベルの各ノードは、上のレベルの1つ以上の親ノードの子ノードである。ツリー階層では、各子ノードは親ノードを1つしか持たないが、親ノードは多数の子ノードを有していてもよい。ツリー階層では、親ノードがリンクされていないノードはルートノードであり、子ノードがリンクされていないノードはリーフノードである。ツリー階層は通常、単一のルートノードを有する。ツリー階層は、1つ以上の子特権を含む親特権を記述するために使用可能である。
【0021】
特権の階層において、各リーフリードは、アクセスが制御されるべき1つのアプリケーション特有の動作を実行する特権に対応している。2つ以上のアプリケーション特有の動作を実行する特権は、2つ以上のアプリケーション特有の動作に対応するリーフノードについての階層における先祖ノードに対応している。
【0022】
図1は、ある企業の発注書(PO)を管理するアプリケーションのためにアプリケーション特有の動作を実行する特権の例示的な階層100を示すブロック図である。例示的な階層100では、各ノード110は、発注書(PO)に関連する1つ以上のアプリケーション特有の動作を実行する特権に対応している。省略記号111は、追加の特権をもしあれば表わす追加のノードを表わしている。他の実施例では、特権の階層は、より多いまたはより少ないレベルの、より多いまたはより少ないノードを有していてもよい。
【0023】
階層100における各リーフノードは、アクセスが制御されるべきアプリケーション特有の動作のうちの1つを実行する各特権に対応している。例示された実施例では、単独のアプリケーション特有の動作についての特権、および対応するリーフノードを表1に列挙する。これらの特権のいずれも、アプリケーションについてのアドミニストレータの判断で、アプリケーションのどのユーザに付与されてもよい。
【0024】
【表1】

【0025】
階層100はまた、2つ以上のアプリケーション特有の動作についての特権を表わす親ノードを含んでいる。親ノード110cでのApprove_POと名付けられた特権は、ノード110gでのサービスを承認する特権、ノード110hでの設備を承認する特権、ノード110iでの供給品を承認する特権を含んでいる。親ノード110eでのAccept_Deliveryと名付けられた特権は、ノード110jでの配送されたサービスを受入れる特権、ノード110kでの配送された設備を受入れる特権、ノード110lでの配送された供給品を受入れる特権を含んでいる。そのような親ノードでの特権は、部長といったアプリケーションのある監督ユーザに付与されてもよい。ノード110aでのPO_ALLについての特権は、ノード110bでのPOを作成する特権、ノード110cでのPOを承認する特権、ノード110dでの承認されたPOの購入を行なう特権、ノード110eでのPOの下で購入品の配送を受入れる特権、およびノード110fでのPOの下で配送された購入品についての支払を行なう特権を含んでいる。PO_ALLについての特権は、発注書に関するアプリケーション特有の動作をすべて実行する特権を含む。
【0026】
構造的概要
図2は、一実施例に従った、アプリケーション特有の動作に対するアクセス制御を、別個のデータベースサーバを用いてサポートするためのシステム200を例示するブロック図である。システム200は、アプリケーション220と、アプリケーションクライアント210と、データベースサーバ230とを含む。アプリケーション220は、1つ以上のアプリケーションクライアント210からの1つ以上のコマンドに応答して、1つ以上のアプリケーション特有の動作を実行する。
【0027】
データベースサーバ230は、アプリケーション220のために1つ以上のデータベースオブジェクトのデータベースを管理する。データベースサーバ230は、永続的ストレージ240およびキャッシュ232を、データベースサーバ230の高速だが揮発性のメモリに含む。なお、データベースサーバ230はプロセスである。永続的ストレージ240およびキャッシュ232は、データベースサーバプロセス230に割当てられたホスト
の永続的ストレージおよびホストのメモリの一部である。その結果、アプリケーション220およびデータベースサーバ230は、ホストの永続的ストレージの異なる部分およびホストのメモリの異なる部分を用いて、またはホストのメモリの同じ部分を異なる時間に用いて、同じホスト上で実行されてもよい。データベースサーバの永続的ストレージ240内に、データベースサーバ230は、1つ以上のデータ構造242、244、および、1つ以上のデータベースオブジェクト(図示せず)内の1つ以上のデータ項目を記憶させる。データ構造242は、アプリケーション220のための1つ以上の特権階層を表わすデータを保持する。データ構造244は、アプリケーション220の1人以上のユーザおよび1つ以上のデータ項目を、アプリケーション220のためにデータ構造242に表わされた1つ以上の特権階層における1つ以上の特権と関連付けるデータを保持する。図2では2つのデータ構造として図示されているものの、他の実施例では、データ構造242、244のデータは、より多いまたはより少ないデータ構造に記憶されてもよい。
【0028】
機能的概要
例示された実施例によれば、アプリケーション220がクライアントのために、アクセスが制御されるアプリケーション特有の動作を実行する前に、アプリケーション220は、そのクライアントに関連するユーザが、アプリケーション220がある特定のデータ項目に対してアプリケーション特有の動作を実行することを許可する特権を有するかどうかを判断するために、データベースサーバ230に要求を送信する。この要求、およびデータ構造242、244に記憶された情報に基づいて、データベースサーバ230はアプリケーション220に応答を返す。この応答は、アプリケーション220がその特定のデータ項目に対してアプリケーション特有の動作を実行することを許可する特権を、ユーザが有するかどうかを示すデータを含んでいる。
【0029】
アプリケーション220についてのアドミニストレータは、データ構造242、244内の情報を提供する。例示された実施例では、アプリケーションアドミニストレータは、階層を記述するデータを記憶するために、拡張可能マークアップ言語(XML)文書を使用している。XMLは、構造化されたデータを記述するために、ワールドワイドウェブ・コンソーシアム(W3C)により公布されている基準によって定義されている、周知のかつ広範に使用されているマークアップ言語であり、データ要素の任意のツリー階層を可能にする。アプリケーションアドミニストレータは次に、データベースサーバ230によって提供されたインターフェイスと対話する。インターフェイスにより、アプリケーションアドミニストレータは、各データ項目またはデータ項目の群に当てはまる階層を記述するXML文書を示し、アプリケーション220の各ユーザに当てはまる、各階層における1つ以上の特権を示すようになる。
【0030】
実施例によっては、1つのアプリケーションについてのいくつかの特権階層の各々は、アプリケーション特有の動作が動作する、対応する型のデータ項目と関連付けられる。たとえば、特権階層100は、ある企業の発注書を表わすデータ項目と関連付けられているが、同じ企業についての人事記録を表わすデータ項目とは関連付けられていない。人事記録に対して動作する特権は、特権階層100とは異なる第2の特権階層(図示せず)において示される。そのような実施例では、データ構造242のデータは、各特権階層を、それらの特権によって許可された動作が動作する1つ以上の型のデータ項目と関連付ける。
【0031】
アプリケーション特有の動作に対するアクセス制御をサポートするための方法
この方法を説明するため、例示的な一実施例を説明する。例示的な実施例では、アプリケーションアドミニストレータは、発注書オブジェクトに対するアプリケーション特有の動作についての特権の階層を記述する拡張可能マークアップ言語(XML)文書を生成する。他の実施例では、特権の階層を表わすために、他の構造化されたデータフォーマットが使用されてもよい。
【0032】
例示的な実施例では、各XML要素は、特権の階層におけるある特権を表わすノードに対応している。表2は、表1に示す例示的な階層100を記述するXML文書の一例の一部を示している。
【0033】
【表2】

【0034】
例示のため、表2に列挙されたラインを有するXML文書は、アプリケーション220用のホストコンピュータ上のPOprivileges.xmlと名付けられたファイルに記憶されていると仮定される。各XML要素は名前を有する。XML要素の最初は、XML要素の名前を囲む記号“<”“>”によって表わされる。XML要素の最後は、XML要素の名前を囲む記号“</”“>”によって表わされる。ある親要素の子要素はすべて、親要素の最初および最後を表わす記号の間に含まれる。ある要素に子がない場合、それはオプションで、記号“<”“/>”によって囲まれる要素の名前によって表わされ得る。
【0035】
表2のライン1および17に示された省略記号は、ライン2〜16に先行する、または続く、XML文書内のXMLラインを表わしている。XMLライン2〜16は、PO_ALL特権に対応する“PO_ALL”と名付けられたXML要素を示している。PO_ALL要素は5つの子要素、つまり、ライン3のGenerate_PO、ライン4〜8のApprove_PO、ライン9のPurchase、ライン10〜14のAccept_Delivery、およびライン15のPay_under_POを含む。ライン4〜8のApprove_PO要素は、3つの子要素、つまり、ライン5のApprove_Services、ライン6のApprove_Equipment、およびライン7のApprove_Suppliesを含む。ライン10〜14のAccept_Delivery要素は、3つの子要素、つまり、ライン11のAccept_Services、ライン12のAccept_Equipment、およびライン13のAccept_Suppliesを含む。こうして、図2に一部が示されたXML文書は、図1に示された発注書動作についての特権の階層110を記述している。
【0036】
図3は、一実施例に従った、アプリケーション特有の動作に対するアクセス制御を別個のサーバを用いてサポートするための方法300の一実施例を示すフローチャートである。図3ではステップがある特定の順序で示されているが、他の実施例では、ステップは異
なる順序で、または時間が重複して実行されてもよい。たとえば、ステップ310および320は、時間が重複していてもよい。
【0037】
ステップ310で、サーバは、データ項目の型に対してアプリケーション特有の動作を実行するための特権の階層を示すデータを受信する。特権の階層を受信するための任意の方法が使用されてもよい。たとえば、ステップ310の最中、アプリケーションアドミニストレータは、表2に示すラインを有するXML文書を形成し、その文書をファイルPOprivileges.xmlに記憶し、データベースサーバアクセス制御インターフェイスを採用して、アプリケーション特有のアクセス制御がデータベースサーバによって、ファイルPOprivileges.xml内の特権の階層を用いてサポートされるべきであることを示す。いくつかの実施例では、データベースサーバアクセス制御インターフェイスは、当該技術分野において周知のハイパーテキストマークアップ言語(HTML)ページなどのグラフィカルユーザインターフェイスであり、それは、アプリケーション特有のアクセス制御を特定する入力をユーザに促す。いくつかの実施例では、データベースサーバアクセス制御インターフェイスは、当該技術分野において周知のアプリケーションプログラムインターフェイス(API)であり、それは、データベースサーバアクセス制御機能を実行するために呼出されるルーチンおよびパラメータの名前および型を含んでいる。他の実施例では、サーバへの他のインターフェイスが採用される。
【0038】
いくつかの実施例では、同じアプリケーションのために2つ以上の特権階層が受信される。たとえば、アプリケーションが企業システムである場合、アプリケーションは、発注書システムについての特権の階層だけでなく、他のシステム、たとえば人材システム、設備管理システム、製品製作追跡システム、および卸売販売システムなどについての特権の階層も含んでいてもよい。さまざまなシステムに当てはまる階層は往々にして、アプリケーションによってデータベースに記憶される異なる型のデータ項目に対するアプリケーション特有の動作を指す。たとえば、図1に示す特権の階層は、データベース内の発注書データベースオブジェクトに対して動作する表1に列挙された動作を指しており、一方、人材についての特権の階層は、データベース内の人事データベースオブジェクトに対する動作を指している。
【0039】
2つ以上の特権階層を有するいくつかの実施例では、ステップ310の最中、各特権階層はデータ項目の型に関連付けられ、そのデータ項目の型も、特権の階層を示すデータとともに受信される。たとえば、表2のXMLラインによって示される階層は、アプリケーションのためにデータベースサーバ230によって管理されるデータベース内の発注書データベースオブジェクトと関連付けられる。実施例によっては、関連付けはXML文書内で行なわれ、実施例によっては、関連付けはデータベースサーバアクセス制御システムへのインターフェイスで行なわれる。実施例によっては、同じアプリケーションについての異なる階層が、階層名などの他の手段によって区別される。
【0040】
ステップ320で、サーバは、各ユーザおよびデータ項目またはデータ項目の群についての特権を示すデータを受信する。そのようなデータを受信するための任意の方法が使用されてもよい。たとえば、ステップ320の最中、アプリケーションアドミニストレータは、ユーザ識別情報(ユーザID)を特権の階層100における1つ以上の特権と関連付ける第2のXML文書を形成し、データベースサーバアクセス制御インターフェイスを採用して、第2のXML文書がユーザを特権と関連付けることを示す。インターフェイスは、HTMLページ、API、またはデータをサーバに供給するための何か他のインターフェイス、といったグラフィカルユーザインターフェイスであってもよい。実施例によっては、XML文書は、マーシーの均一なアクセス制御システムのためのアクセス制御リスト(ACL)を、以下の表3に示すようなXMLラインを用いて特定する。表3では、制御されたアプリケーション特有の動作が要求されるようにする何かを行なうアプリケーショ
ンをクライアントに命令させるユーザは、「プリンシパル」と呼ばれる。あるプリンシパルはユーザID“SCOTT”を有し、別のプリンシパルはユーザID“PETER”を有している。表3では、各ACLは、1つ以上のアクセス制御要素(ACE)を含む。各ACEは、プリンシパルを名付ける1つのプリンシパル要素と、1つの特権要素とを含む。特権要素は、特権の階層における名前によって識別される1つ以上の特権のリストを含む。ライン1および19の省略記号は、ACLの前および後の他のXMLラインを示している。ライン17の省略記号は、他のACEを特定する他のXMLラインを示している。
【0041】
【表3】

【0042】
表3の例のACLに示すように、ユーザSCOTTは、POを作成して供給品の配送を受入れてもよく、一方、ユーザPETERは、任意の種類のPOを承認してベンダーへの支払を認可してもよい。
【0043】
多数の階層を有する実施例では、階層の各々でのユーザの特権は、ステップ320の最中に特定される。たとえば、ACLが使用される場合、発注書データ項目に当てはまる発注書階層での特権を特定する1組のACLと、人材データ項目に当てはまる人材階層での特権を特定する別の1組のACLがある。
【0044】
ステップ340で、サーバは、アプリケーションからアクセス制御要求を受信する。この要求は、ある特定のユーザ、ある特定のアプリケーション特有の動作、およびその動作が実行されるべきデータ項目を示すデータを含む。すべてのデータ項目に当てはまる階層がたった1つである実施例では、データ項目は省略されてもよい。1つのアプリケーションについて多数の階層を有する実施例では、使用されるべき特権階層は、データ項目の型に基づいて、データ項目から推論される。データ項目の型は、1つ以上のデータ項目またはデータベースオブジェクトを示す。実施例によっては、特定のアプリケーション特有の動作を示すデータは、アプリケーション特有の動作の1つ以上についてのある特定の特権を示すデータである。
【0045】
例示のため、ユーザSCOTTがクライアント210aを介してアプリケーション220を動作させ、ユーザPETERがクライアント210bを介してアプリケーション220を動作させると仮定する。さらに、ユーザSCOTTが事務用品について作成したばかりの、以下「PO12345」と呼ばれるある特定の発注書を、ユーザSCOTTが承認しようとしたと仮定する。これは、ユーザSCOTTが発注書データ項目PO12345に対してApprove_Services特権を必要とするアプリケーション特有の動作を実行しようとしていることを示すデータを含むアクセス制御要求を、アプリケーション220に生成させる。データベースサーバは、ステップ340の最中に要求を受信する。
【0046】
ステップ350で、サーバは、アプリケーションが特定のユーザのために特定の動作を実行してもよいかどうかを、特定のデータ項目について特定のユーザに関連付けられた特権に基づいて判断する。たとえば、データベースサーバ230は、アプリケーション220がSCOTTのためにApprove_Services特権を必要とする動作を実行してもよいかどうかを、発注書データ項目に関連する階層における発注書データ項目についてSCOTTに関連付けられた特権に基づいて判断する。
【0047】
ステップ350の最中、サーバは適切な階層を判断する。たとえば、データベースサーバ230は、データベースサーバ230によって保持されたデータベースメタデータに基づいて、PO12345が発注書型のデータベースオブジェクトであることを判断する。データベースサーバ230は次に、表2に部分的に列挙されたXML文書のうち、ステップ310の最中に受信された特権の階層が適切な階層であると判断する。
【0048】
ステップ350の最中、サーバは、ユーザが要求に示された特権を有するかどうかを判断する。たとえば、データベースサーバ230は、ユーザSCOTTが、発注書データ項目について表3に列挙されたACLの、ライン3〜9のACEに現われているものの、特権Approve_Servicesがライン5〜8に列挙された特権の中には列挙されていないと判断する。したがって、ユーザSCOTTは、このアプリケーション特有の動作を実行する特権を持っていない。
【0049】
ステップ390で、サーバはアプリケーションに応答を返す。この応答は、アプリケーションが特定のユーザのために特定の動作を実行してもよいかどうかを示すデータを含んでいる。たとえば、データベースサーバ230はアプリケーション220に、アプリケーション220がクライアント210aに関連するユーザSCOTTのためにサービス承認動作を実行すべきではないことを示す応答を返す。この応答に基づき、アプリケーションは動作を実行しない。実施例によっては、アプリケーションは、この応答に基づいて、ユーザがアプリケーション特有の動作を実行するよう許可されてはいないというメッセージを、ユーザのクライアントに送信する。たとえば、この応答に基づいて、アプリケーション220は、ユーザSCOTTがサービスについての発注書を承認するよう許可されてはいないというメッセージを、クライアント210aに送信する。
【0050】
ビットマップを用いたユーザ特権の表現
ステップ350の最中、上述のように、サーバは、ユーザが要求に示された特権を有しているかどうかを判断する。アプリケーションのアクティブなクライアントを動作させているユーザの特権を高速メモリのキャッシュに保持することは有利である。より多くのユーザ特権がキャッシュに記憶されるにつれ、サーバはより迅速に要求に応答して、アプリケーション特有の動作のアクセス制御をサポートすることができる。ユーザ特権がよりコンパクトに表現可能になるにつれ、よれ多くのユーザがキャッシュに記憶され得る。一実施例によれば、サーバは、各ユーザに関連する特権を、キャッシュにおいてビットマップを用いて表わす。たとえば、データベースサーバ230は、ユーザ特権をキャッシュ23
2にビットマップを用いて記憶する。
【0051】
この実施例では、サーバは、階層における各リーフノードをビット位置に関連付ける。たとえば、階層100について表1に列挙された9つのリーフノードは、ビット位置1〜9に関連付けられる。ある特定のユーザに付与された特権を示すデータをサーバが受信すると(永続的ストレージからそのようなデータを読出すことも含む)、サーバは、付与された特権に対応しているビットを、「オン」値、たとえば「1」に設定し、付与されていない特権に対応しているビットを、「オフ」値、たとえば「0」に設定する。親ノードに対応している特権が付与される場合、その親ノードの子孫であるすべてのリーフノードに対応しているビットは、オン値にセットされる。たとえば、表3に列挙されたXMLラインにおいてユーザSCOTTおよびPETERに付与された特権は、表4に列挙されたビットマップによって表わされ、ここでは、ビット位置は右(最下位ビット)から左(最上位)へ数える。
【0052】
【表4】

【0053】
SCOTTには、第1のリーフノード110bである、POを作成する特権が付与されており、そのため、第1の(右端の)ビットにオン値「1」が設定される。SCOTTには、第8のリーフノード110lである、配送された供給品を受入れる特権も付与されており、そのため、右から8番目のビットにオン値「1」が設定される。PETERにはPOを承認する特権が付与されており、それは、サービスを承認するリーフノード110g、設備を承認するリーフノード110h、および供給品を承認するリーフノード110iにとっての親ノードである。したがって、これら3つのリーフノード110g、110h、110iに対応するビットは、オン値「1」に設定される。これらのビットは、ビットマップの右から2番目〜4番目の位置にある。PETERには、第9のリーフノード110fである、配送に対して支払う特権も付与されており、そのため、右から9番目のビット、つまり左端のビットにオン値「1」が設定される。
【0054】
多数の階層を有するいくつかの実施例では、すべての階層のリーフノードは単一のビットマップにアセンブルされる。他の実施例では、異なる階層のリーフノードは異なるビットマップにアセンブルされる。いくつかの実施例では、ビット位置は、階層名および特権名に基づいてハッシュ関数を使用して判断されてもよい。
【0055】
ビットマップを用いた例示的な一実施例では、ステップ350の最中、データベースサーバ230は、ある特定のデータ項目についてのある特定のユーザのビットマップが既にキャッシュ232内にあるかどうかを判断する。そうである場合、永続的ストレージ240に記憶されたデータからビットマップを検索する動作が回避可能である。そうではない場合、ユーザについてのビットマップが永続的ストレージ240から検索され、キャッシュ232に追加される。キャッシュ232に検索されたビットマップを置く十分なスペースがない場合、キャッシュ内のスペースは、当該技術分野において公知の任意の手法を用いて解放される。たとえば、最も以前に使用されたビットマップに割当てられたメモリが、特定のユーザのビットマップのために利用可能になる。
【0056】
データベースサーバ230は次に、アプリケーション特有の動作についての特権、またはステップ340で受信されたアクセス制御要求に示された特権に関連するビット位置を判断する。たとえば、表2に表わされた階層を用いて、データベースサーバは、Approve_Services特権に関連するサービス承認動作が第2のリーフノードに、したがってビットマップの2番目のビットに関連付けられていると判断する。
【0057】
ステップ350の最中、データベースサーバ230は次に、そのビット位置におけるビットがオン値に設定されているかどうかを判断する。たとえば、データベースサーバは、表4に列挙されたSCOTTについてのビットマップにおいて、2番目のビットがオン値に設定されていないと判断する。したがって、データベースサーバは、SCOTTがサービスを承認する特権を持っていないと判断する。
【0058】
データベースサーバ230がPETERからPO12345を承認するよう求める要求を受信すると、ステップ350の最中、データベースサーバ230は、表4に列挙されたPETERについてのビットマップにおいて、2番目の値がオン値に設定されていると判断する。したがって、データベースサーバは、PETERがサービスを承認する特権を有すると判断する。
【0059】
ここに記載されたような、ユーザの特権を判断するためにキャッシュ232およびビットマップを使用することは、非常に効率的である。アプリケーションの開発者は、広範なソフトウェア開発なしで、データベースまたは内容管理サーバといった別個のサーバによる特権のそのような効率的な判断を利用してもよい。アプリケーションアドミニストレータは、別個のサーバ用に既に構築されているインターフェイスをしばしば使用して、特権およびユーザ特権の階層を別個のサーバに1回供給するだけである。単にアクセス制御要求を別個のサーバに送るために、新しいアプリケーションが開発され、または既存のアプリケーションが修正される。特権がアプリケーション特有の動作にとって利用可能かどうかを効率よく判断するためにアプリケーションを開発する必要はない。たとえば、アプリケーションは、キャッシュ232を管理し、またはユーザ特権のビットマップを形成するために開発される必要はない。
【0060】
ハードウェア概要
図4は、この発明の一実施例が実現され得るコンピュータシステム400を示すブロック図である。コンピュータシステム400は、情報を通信するためのバス402または他の通信メカニズムと、情報を処理するためにバス402と結合されたプロセッサ404とを含む。コンピュータシステム400はまた、プロセッサ404により実行されるべき命令および情報を記憶するためにバス402に結合された、ランダムアクセスメモリ(RAM)または他のダイナミック記憶装置といったメインメモリ406も含む。メインメモリ406は、プロセッサ404により実行されるべき命令の実行中に一時的な変数または他の中間情報を記憶するためにも使用されてもよい。コンピュータシステム400はさらに、プロセッサ404用の命令およびスタティック情報を記憶するためにバス402に結合された読出専用メモリ(ROM)408または他のスタティック記憶装置を含む。磁気ディスクまたは光ディスクといった記憶装置410が、情報および命令を記憶するために提供され、バス402に結合されている。
【0061】
コンピュータシステム400は、情報をコンピュータユーザに表示するためのブラウン管(CRT)などのディスプレイ412に、バス402を介して結合されていてもよい。英数字キーおよび他のキーを含む入力装置414が、情報およびコマンド選択をプロセッサ404に通信するためにバス402に結合されている。ユーザ入力装置の別の種類は、方向情報およびコマンド選択をプロセッサ404に通信し、ディスプレイ412上のカー
ソルの動きを制御するための、マウス、トラックボール、またはカーソル方向キーといったカーソル制御416である。この入力装置は通常、2つの軸、つまり第1の軸(たとえばx)および第2の軸(たとえばy)において2つの自由度を有しており、それによりこの装置は平面における場所を特定することができる。
【0062】
この発明は、ここに説明された手法を実現するためのコンピュータシステム400の使用に関する。この発明の一実施例によれば、それらの手法は、プロセッサ404がメインメモリ406に含まれる1つ以上の命令の1つ以上のシーケンスを実行するのに応じて、コンピュータシステム400によって実行される。そのような命令は、記憶装置410などの別のコンピュータ読み取り可能な媒体からメインメモリ406に読込まれてもよい。メインメモリ406に含まれる命令のシーケンスの実行により、プロセッサ404は、ここに説明されたプロセスステップを実行するようになる。代替的な実施例では、この発明を実現するために、ソフトウェア命令の代わりに、またはソフトウェア命令と組合わせて、ハードワイヤード回路が使用されてもよい。このため、この発明の実施例は、ハードウェア回路とソフトウェアとのどの特定の組合せにも限定されない。
【0063】
ここで用いられるような用語「コンピュータ読み取り可能な媒体」とは、プロセッサ404に命令を実行用に提供することに関与するあらゆる媒体を指す。そのような媒体は、不揮発性媒体、揮発性媒体、および通信媒体を含むもののそれらに限定されない多くの形態を取り得る。不揮発性媒体はたとえば、記憶装置410などの光ディスクまたは磁気ディスクを含む。揮発性媒体は、メインメモリ406などのダイナミックメモリを含む。通信媒体は、バス402を構成する配線を含む、同軸ケーブル、銅線および光ファイバを含む。通信媒体はまた、無線周波数および赤外線データ通信中に発生するものといった音波または光波の形も取り得る。
【0064】
コンピュータ読み取り可能な媒体の一般的な形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、または任意の他の磁気媒体、CD−ROM、任意の他の光媒体、パンチカード、紙テープ、孔のパターンを有する任意の他の物理的媒体、RAM、PROM、EPROM、FLASH−EPROM、任意の他のメモリチップまたはカートリッジ、以下に説明するような搬送波、または、コンピュータがそこから読み取り可能な任意の他の媒体を含む。
【0065】
コンピュータ読み取り可能な媒体のさまざまな形態は、プロセッサ404への1つ以上の命令の1つ以上のシーケンスを実行用に保持することに関与していてもよい。たとえば、命令はまず、遠隔コンピュータの磁気ディスク上に保持されてもよい。遠隔コンピュータは命令をそのダイナミックメモリにロードし、電話回線を通してモデムを用いて命令を送信することができる。コンピュータシステム400にとってローカルなモデムは、電話回線上のデータを受信し、赤外線送信機を用いてデータを赤外線信号に変換することができる。赤外線検出器は赤外線信号で搬送されたデータを受信でき、適切な回路がデータをバス402上に配置することができる。バス402はデータをメインメモリ406に搬送し、そこからプロセッサ404が命令を検索して実行する。メインメモリ406によって受信された命令は、プロセッサ404による実行の前または後のいずれかで、記憶装置410上に随意に記憶されてもよい。
【0066】
コンピュータシステム400はまた、バス402に結合された通信インターフェイス418も含む。通信インターフェイス418は、ローカルネットワーク422に接続されたネットワークリンク420に双方向データ通信結合を提供する。たとえば、通信インターフェイス418は、データ通信接続を対応する種類の電話回線に提供するデジタル相互サービス網(ISDN)カード、またはモデムであってもよい。別の例として、通信インターフェイス418は、データ通信接続を互換性があるLANに提供するローカルエリアネ
ットワーク(LAN)カードであってもよい。無線リンクも実現され得る。任意のそのような実現化例では、通信インターフェイス418は、さまざまな種類の情報を表わすデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送信および受信する。
【0067】
ネットワークリンク420は通常、1つ以上のネットワークを介して、他のデータ装置にデータ通信を提供する。たとえば、ネットワークリンク420は、ローカルネットワーク422を介して、ホストコンピュータ424に、またはインターネットサービスプロバイダ(ISP)426により運営されるデータ装置に、接続を提供してもよい。ISP426は次に、現在一般に「インターネット」428と呼ばれている全世界的パケットデータ通信ネットワークを介して、データ通信サービスを提供する。ローカルネットワーク422およびインターネット428は双方とも、デジタルデータストリームを搬送する電気信号、電磁信号または光信号を使用する。コンピュータシステム400へ、またはコンピュータシステム400からデジタルデータを搬送する、さまざまなネットワークを通る信号、ネットワークリンク420上の信号、および通信インターフェイス418を通る信号は、情報を運ぶ搬送波の例示的な形態である。
【0068】
コンピュータシステム400は、ネットワーク、ネットワークリンク420および通信インターフェイス418を介して、メッセージを送信し、プログラムコードを含むデータを受信する。インターネットの例では、サーバ430は、アプリケーションプログラム用の要求されたコードを、インターネット428、ISP426、ローカルネットワーク422、および通信インターフェイス418を介して送信してもよい。
【0069】
受信されたコードは、受信された際にプロセッサ404によって実行されてもよく、および/または、後での実行用に記憶装置410または他の不揮発性ストレージに記憶されてもよい。このように、コンピュータシステム400は、搬送波の形をしたアプリケーションコードを取得し得る。
【0070】
前述の明細書において、この発明を、その特定の実施例を参照して説明してきた。しかしながら、この発明のより幅広い精神および範囲を逸脱することなく、様々な修正および変更がそれになされてもよいことは、明らかである。したがって、明細書および図面は、限定的な意味というよりもむしろ例示的な意味で考慮されるべきである。
【図面の簡単な説明】
【0071】
【図1】アプリケーション特有の動作を実行する特権の例示的な階層を示すブロック図である。
【図2】一実施例に従った、アプリケーション特有の動作に対するアクセス制御を別個のデータベースサーバを用いてサポートするためのシステムを示すブロック図である。
【図3】一実施例に従った、アプリケーション特有の動作に対するアクセス制御を別個のサーバを用いてサポートするための方法の一実施例を示すフローチャートである。
【図4】この発明の一実施例が実現され得るコンピュータシステムを示すブロック図である。

【特許請求の範囲】
【請求項1】
アプリケーションによって実行されるアプリケーション特有の動作へのアクセスを制御するための方法であって、
アプリケーションとは別個のサーバで特権情報を受信するステップと、
ある特定のアプリケーション特有の動作がある特定の1組の条件の下で許可されているかどうかを、特権情報に基づいてサーバに判断させるステップと、
特定のアプリケーション特有の動作が前記特定の1組の条件の下で許可されているかどうかの表示を、サーバにアプリケーションへ通信させるステップとを含む、方法。
【請求項2】
特権情報を受信するステップは、第1の複数のアプリケーション特有の動作を実行するための第1の1組の特権を記述する第1のデータを、前記サーバで受信するステップを含む、請求項1に記載の方法。
【請求項3】
特権情報を受信するステップは、アプリケーションのユーザを、第1の1組の特権における1つ以上の特権と関連付ける第2のデータを、前記サーバで受信するステップをさらに含む、請求項2に記載の方法。
【請求項4】
ある特定のユーザおよびある特定のアプリケーション特有の動作を示す要求を、アプリケーションからサーバで受信するステップに応答して、特定のユーザがアプリケーションに特定のアプリケーション特有の動作を実行させてもよいかどうかを、特権情報に基づいて判断するステップをさらに含み、
サーバに表示をアプリケーションへ通信させるステップは、特定のユーザがアプリケーションに特定のアプリケーション特有の動作を実行させてもよいかどうかを示す応答を、アプリケーションへ送信するステップを含む、請求項1に記載の方法。
【請求項5】
特権情報を受信する前記ステップは、第1の1組の特権を、複数のアプリケーション特有の動作が動作する第1の型のデータ項目と関連付ける第1のデータを受信するステップをさらに含み、
要求を受信する前記ステップは、ある特定のデータ項目も示す要求を受信するステップをさらに含み、
特定のユーザがアプリケーションに特定のアプリケーション特有の動作を実行させてもよいかどうかを判断する前記ステップは、特定のデータ項目が第1の型のデータ項目の構成要素であるかどうかを判断するステップをさらに含む、請求項4に記載の方法。
【請求項6】
前記第1の型のデータ項目とは異なる第2の型のデータ項目に対して第2の複数のアプリケーション特有の動作を実行するための第2の1組の特権を記述する第2のデータを、サーバで受信するステップをさらに含み、
特定のユーザがアプリケーションに特定のアプリケーション特有の動作を実行させてもよいかどうかを判断する前記ステップは、特定の型の特定のデータ項目に部分的に基づく、請求項5に記載の方法。
【請求項7】
特権情報を受信する前記ステップは、拡張可能マークアップ言語(XML)の文書を受信するステップを含む、請求項1に記載の方法。
【請求項8】
特定のユーザがアプリケーションに特定のアプリケーション特有の動作を実行させてもよいかどうかを判断する前記ステップは、1人以上のユーザの各々を特権の1つ以上の組の各々における1つ以上の特権と関連付ける情報を記憶するための高速メモリ内のキャッシュを管理するステップをさらに含む、請求項4に記載の方法。
【請求項9】
キャッシュを管理する前記ステップは、各ユーザに関連するデータ項目の型を示すデータをキャッシュに記憶するステップをさらに含む、請求項2に記載の方法。
【請求項10】
第1の組の特権は、2つ以上のレベルの特権の第1の階層を形成する、請求項2に記載の方法。
【請求項11】
キャッシュを管理する前記ステップは、各ユーザについてのビットマップをキャッシュに記憶するステップをさらに含み、
特権の各組は、1つ以上のレベルの特権の階層を形成し、
ビットマップにおける異なる各位置は、特権の1つ以上の組の各階層における1つの異なるリーフノードに対応しており、
リーフノードは、子ノードを持たない階層のノードである、請求項8に記載の方法。
【請求項12】
アプリケーションによって実行されるアプリケーション特有の動作へのアクセスを制御するための方法であって、
アプリケーションとは別個のサーバへ特権情報を通信するステップと、
ある特定のアプリケーション特有の動作がある特定の1組の条件の下で許可されているかどうかを特権情報に基づいて判断するようサーバに求める要求を、アプリケーションからサーバへ送信するステップと、
特定のアプリケーション特有の動作が前記特定の1組の条件の下で許可されているかどうかの表示をサーバから受信するステップと、
アプリケーション特有の動作が前記特定の1組の条件の下で許可されていたとサーバが示した場合、アプリケーションのみが特定のアプリケーション特有の動作を許可するステップとを含む、方法。
【請求項13】
サーバへ特権情報を通信するステップは、
第1の複数のアプリケーション特有の動作を実行するための第1の1組の特権を記述する第1のデータを、アプリケーションとは別個のサーバに送信するステップと、
アプリケーションの第1のユーザを第1の1組の特権におけるある特権と関連付ける第2のデータを、サーバに送信するステップとを含む、請求項12に記載の方法。
【請求項14】
ある特定のユーザからのコマンドをアプリケーションで受信するステップをさらに含み、コマンドは、ある特定のアプリケーション特有の動作を実行するアプリケーションに関与しており、前記方法はさらに、
特定のユーザおよび特定のアプリケーション特有の動作を示す要求をサーバに送信するステップを含み、
特定のアプリケーション特有の動作が前記特定の1組の条件の下で許可されているかどうかの表示をサーバから受信するステップは、第1のデータおよび第2のデータに基づいて、特定のユーザがアプリケーションに特定のアプリケーション特有の動作を実行させてもよいかどうかを示す応答をサーバから受信するステップを含み、前記方法はさらに、
特定のユーザがアプリケーションに特定のアプリケーション特有の動作を実行させてもよいと応答が示す場合にのみ、特定のアプリケーション特有の動作を実行するステップを含む、請求項12に記載の方法。
【請求項15】
第1のデータを送信する前記ステップは、第1の1組の特権を、複数のアプリケーション特有の動作が動作する第1の型のデータ項目とも関連付ける第1のデータを送信するステップをさらに含み、
要求を送信する前記ステップは、ある特定のデータ項目も示す要求を送信するステップをさらに含み、
第1のデータおよび第2のデータに基づいて応答を受信する前記ステップは、特定のデ
ータ項目が第1の型のデータ項目の構成要素であるかどうかにも基づいて応答を受信するステップをさらに含む、請求項13に記載の方法。
【請求項16】
前記方法はさらに、異なる第2の型のデータ項目に対して第2の複数のアプリケーション特有の動作を実行するための異なる第2の1組の特権を記述する第3のデータをサーバに送信するステップを含み、
第2のデータを送信する前記ステップは、アプリケーションの第2のユーザを特権の第2の階層におけるある特権とも関連付ける第2のデータを送信するステップをさらに含み、
第1のデータおよび第2のデータに基づいて応答を受信する前記ステップは、ある特定の型の特定のデータ項目が、特定のアプリケーション特有の動作を含むある特定の複数のアプリケーション特有の動作についてのある特定の1組の特権と関連しているかどうかにも基づいて、応答を受信するステップをさらに含む、請求項15に記載の方法。
【請求項17】
特権情報を通信する前記ステップは、拡張可能マークアップ言語(XML)の文書を送信するステップをさらに含む、請求項12に記載の方法。
【請求項18】
アプリケーションは、1人以上のユーザの各々を、第1の組の特権を含む特権の1つ以上の組の各々における1つ以上の特権と関連付ける情報を記憶するための高速メモリ内のキャッシュを管理していない、請求項13に記載の方法。
【請求項19】
第1の1組の特権は、2つ以上のレベルの特権の第1の階層を形成する、請求項13に記載の方法。
【請求項20】
1つ以上のプロセッサにより実行される場合、1つ以上のプロセッサに請求項1〜19のいずれかに記載された方法を実行させる命令の1つ以上のシーケンスを搬送する、コンピュータ読み取り可能な媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公表番号】特表2006−505877(P2006−505877A)
【公表日】平成18年2月16日(2006.2.16)
【国際特許分類】
【出願番号】特願2005−507103(P2005−507103)
【出願日】平成15年11月6日(2003.11.6)
【国際出願番号】PCT/US2003/035494
【国際公開番号】WO2004/044738
【国際公開日】平成16年5月27日(2004.5.27)
【出願人】(502303739)オラクル・インターナショナル・コーポレイション (97)
【Fターム(参考)】