JP3623979B2 - オブジェクト走査装置及び方法 - Google Patents
オブジェクト走査装置及び方法 Download PDFInfo
- Publication number
- JP3623979B2 JP3623979B2 JP03868194A JP3868194A JP3623979B2 JP 3623979 B2 JP3623979 B2 JP 3623979B2 JP 03868194 A JP03868194 A JP 03868194A JP 3868194 A JP3868194 A JP 3868194A JP 3623979 B2 JP3623979 B2 JP 3623979B2
- Authority
- JP
- Japan
- Prior art keywords
- scanning
- sub
- scan
- list
- access
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Storage Device Security (AREA)
Description
【産業上の利用分野】
本発明は、計算機のファイル・システム、仮想記憶空間、データ・ベースなどの構造化された記憶手段のオブジェクト走査装置に関するものである。
【0002】
【従来の技術】
従来、リンクで関連突けられた複数のオブジェクトを走査する方法には、ハイパー・テキストのように順次リンクをたどる方法や、計算機のファイル・システムのように与えられた名前から該当するオブジェクト群を検索して呈示する方法がある。また、ユーザによってアクセス可能なオブジェクトを限定する方法や、一時的にアクセス権を変更する方法なども知られている。
【0003】
また、これらの方法を組み合わせることによってアクセス可能なオブジェクトを一般的に表現することやリンクで関連付けられた複数のオブジェクトを連続した一つのデータとして読み出すことも従来から知られている。
【0004】
一方、最近では、これらの従来技術を組み合わせ、複数のオブジェクトを組み合わせて階層的に大きなオブジェクトを構成する際に、アクセス権の情報を各サブ・オブジェクトに持たせることによって、パラメータを変えて走査の手順を変え、一つの組み合わせオブジェクトを見かけ上何種類もの組み合わせオブジェクトのように表現することが試みられている。
【0005】
以下に、このような考えのものについて説明する。
【0006】
今、高橋さんがグループAに属する名簿ファイルを作成しているとする。
【0007】
図20は名簿本体を一つのオブジェクトとして作成した状態を示し、121は名簿本体を示すオブジェクトである。この例ではファイル名が無いものが示されているが名前が付いていてもかまわない。
【0008】
1211は、オブジェクト121のオーナーのIDを示している。ここに示された番号が高橋さんであることは、図21のID表131の対応する欄1311を参照することにより知ることができる。1212はオブジェクト121のグループであり、これがグループAであることは同様にID表131の対応する欄1312から知ることができる。1213はオブジェクト121オーナーに対するアクセス権である。RD、WR、EXの各フィールドはそれぞれ、読み出し、書き込み、実行の権限を示している。このオブジェクト121は単なるデータで、プログラムではないから実行はできない。ファイルのオーナーは当然読み出しも書き込みも出来るからRDとWRは1であり、EXは0になっている。1214はオブジェクト121のグループに対するアクセス権である。グループのデータであるから、読み出しは可能でRDが1となっているが、データの改ざんを防ぐために書き込みは不可能でWRが0となっている。1215はオブジェクト121のその他の人に対するアクセス権である。グループの名簿は機密性があり、読み出しも許可しないので、RDが0になっている。そして、1216はオブジェクト121のデータ本体であり、名簿のデータが記入されている。現実にはここにデータ本体を記入するのではなく、データ本体へのポインタやデータ本体の記入されたブロックのIDなどを記入する場合もあるがその例はここでは特に示さない。
【0009】
次に、このような名簿ファイルを管理するために図22に示すようなコメントを記入したオブジェクト141を作成する。ここで、1411はオーナーのID、1412はグループのIDである。このファイルのグループはグループID1412に登録された“320”からグループAとなる。このことはID表131の対応するフィールド1312からわかる。また、1413はオブジェクト141のオーナーに対するアクセス権であり、上述の1214と同様である。1414、1415はそれぞれこのオブジェクトのグループおよびその他の人に対するアクセス権である。このオブジェクトの内容は、他人にはもちろんのこと、グループAのメンバーにもみられてはならないから、RDが共に0になっていることが図20のオブジェクト121の場合とは異なる。
【0010】
このようにして各オブジェクトごとに異なるアクセス許可を与えることは、従来から広く行われてきた。近年では、この例のような複数のオブジェクトを一つのファイルのように扱うことが試みられている。それを例示したのが図23である。ここで、オブジェクト151はオブジェクト121とオブジェクト141とを関連付け、1つの組み合わせオブジェクトを表現するためのオブジェクトである。
【0011】
このオブジェクト151にはオブシェクト名1511が付いている。これは一般の計算機のファイル・システムにおけるファイル名に相当するものである。また、1512はオーナーのID、1513はグループのID、1514はこのオブジェクトのオーナーに対するアクセス権をそれぞれ示している。このアクセス権については、今後名簿に書かれたデータやコメントを変更することはあるが、この「グループA名簿」という名簿自体の構造を変更する必要はないから、オーナーに対しても書き込みを不可としてあるためWRは0である。1515はオブジェクト151のグループに対するアクセス権である。1516はオブジェクト151のその他の人に対するアクセス権である。その他の人に名簿を見られてはならないが、この「グループA名簿」というファイルがグループAの名簿本体とそれに対するコメントから成っているということを隠す理由は特にないから、読み出しを許可している。1517はオブジェクト151がサブ・オブジェクトを持つことを示すビットであり、1になっている。サブ・オブジェクトをいくつ持つかは、サブ・オブジェクト数フィールド1518の内容を読むと2個であることがわかる。2個のサブ・オブジェクトが何であるかは、1番目のサブ・オブジェクトのID1519および2番目のサブ・オブジェクトのID1520を見ればわかる。これらのIDはそれぞれサブ・オブジェクト121及び141を示している。
【0012】
このようにして複数のオブジェクトを構成することにより、高橋さん(ID128 番)が「グループA名簿」を表現しているオブジェクト151を読むと、グループA名簿本体のデータの格納されたサブ・オブジェクト121および、コメントの記入されたサブ・オブジェクト141があることがわかり、また、それらサブ・オブジェクトはいずれも高橋さん(ID128 番)にアクセス権があるから、アクセスすることができる。
【0013】
一方、グループA(ID320 番)に属する他の人が「グループA名簿」というファイルを読むと、グループAの名簿本体のデータの格納されたサブ・オブジェト121の内容は読むことができるが、コメントの記入されたサブ・オブジェクトを読もうとしても、アクセス権がないから、読むことはできない。
【0014】
なお、オブジェクト151の他の人に対するアクセス権1516のRDは1であるから、このオブジェクト151をたどってオブジェクト121およびオブジェクト141を走査することはグループ以外の人にもできることになるが、実際にはオブジェクト121およびオブジェクト141において、その他の人に対する読み出し権を出していないから、名簿のデータが読まれてしまうということは起こらない。
【0015】
このような方法を用いることにより、ユーザごとにオブジェクトの全部または一部分だけをアクセス可能とすることが実現できる。
【0016】
しかし、高橋さん(ID128 番)が読むとグループA名簿はコメント付きのひとつのファイルであるように見え、その他のグループAの人(ID320 番)が読むと、コメント無しのファイルであるように見える、といった柔軟な表現をすることはできない。
【0017】
また、仮にそういった表現が可能になる機構を用意しても、次のような問題点が生じる。
【0018】
いま、名簿のデータを用い、それを整形して表形式で印刷するようなプログラムがある場合、プログラムは、名簿にはコメントがないものと考えて作成されているものとする。そして、このプログラムをグループAの人が使えるように考えて作成した場合、高橋さん(ID128 番)がこのプログラムを実行すると、プログラムが必要としていないコメントに対してもアクセス権があるため、読み出すことができ、このプログラムが正常に動作しないことがある。すなわち、プログラムは「グループA」という権限で名簿ファイルを読み出そうとしているにもかかわらず、それよりも権利の強い「高橋さん」という権限で名簿ファイルを読み出してしまうことがある。
【0019】
そこで、こういった状況を回避するのに最もよく使われる方法の一つとして、プログラムの実行と同時にアクセス権を変更するSUID(USP 4,135,240 )がある。このSUIDはOWNER IDとしての権限を変更するためのものであるので、そのままではこの問題の解決にはならないが、SUIDに多少の応用を加えることによって実現することができる。以下その解決例を示す。
【0020】
図24に示すオブジェクト161は名簿整形用の一般プログラムを格納したオブジェクトであり、図25に示すオブジェクト171は、同様に名簿整形用のプログラムである。これら図24と図25では、それぞれ同一部分には同一符号を付している。
【0021】
この場合、オブジェクト161において、SAID(set access id )1611は何も定義されていないので、オブジェクト161に記述されたプログラムは通常動作することを意味している。ここで1613はオーナーID、1614はグループのIDである。また、1615と1616はそれぞれこのオブジェクトのオーナーおよびグループに対するアクセス権である。さらに1617はその他の人のアクセス権で、グループA以外の人は実行することができない。そして、1618は実行プログラムの本体である。この実行プログラム1618は名簿データとしてオブジェクト151を用いている。
【0022】
このようにしても、実行プログラム1618を実行した場合、高橋さん(ID128 )以外の人が実行すると期待した結果が得られるが、高橋さんが実行すると、このプログラムが読むはずでなかったオブジェクト141のコメントも読んでしまい、正しく動作しない場合がある。
【0023】
これに対し、図25のオブジェクト171はオブジェクト161とよく似ているが、SAID1612の設定が異なる。SAID1612には320番というIDがセットされている。これにより、このオブジェクト171を高橋さんが実行すると、高橋さんの本来のアクセス権である実行者としての権利を放棄し、320番という権利のみが使えるようになる(この動作はSUIDの仕組みを応用したものである)。
【0024】
このようなオブジェクト171の実行プログラム1619では、データとして名簿のオブジェクト151およびそのサブ・オブジェクトとしてオブジェクト121、オブジェクト141をアクセスする場合のアクセス権としては320番が使われるので、プログラム1619を誰が実行してもアクセス可能なデータは同一になり、プログラム1619は期待通りの動作をする。
【0025】
このような従来の方法では、プログラムと、それが使うデータとを関連付けることにより、特殊なアクセス権によるオブジェクト走査を可能としているが、この方法によると、プログラムにSAIDを付ける権利が不明確であることに問題がある。すなわち、容易にSAIDを付けることが出来ると、そのプログラムを使うことにより任意のアクセス権を得ることができ、オブジェクトの持っているアクセス権が意味を為さなくなってしまうことである。
【0026】
したがって、SAIDを付ける権限を別の方法で管理しなければならないのであるが、従来それを解決する優れた方法は行われていなかった。例えば、ルートという特権ユーザにのみSAIDを付ける権限を与えるといった方法でこの問題を回避していた。
【0027】
本来、オブジェクトのアクセス権を設定する権利は原則としてそのオブジェクトのオーナーにあるのであるから、その機構を特定のユーザによってしか実現できないというのは大きな制約となる。また、オブジェクト(データ)自体に持たせるはずのアクセス権が、他のプログラムの設定によってのみ制御できるという制約は非常に不便である。オブジェクトに対して当初期待したはずの保護機構が実現されない。
【0028】
【発明が解決しようとする課題】
このように、従来のオブジェクト走査装置にあっては、オブジェクトに対する走査の条件としてアクセス権そのものを使わざるを得なかったために、オブジェクトの走査方法をその利用方法に応じて変化させることが困難であった。
【0029】
そこで、この問題を解決するために、プログラムごとに特別のアクセス権を与える方法によりアクセス権を持つ部分を変更することが試みられているが、この方法においても実際にオブジェクトのどの部分をアクセスするかということについては、アプリケーション・プログラムのみに依存するため、作成したオブジェクトに対して、走査方法を規定することが非常に困難であった。また、オブジェクト全体を1つのファイルとみなしてアクセスする場合においても、アクセス権のみを用いたオブジェクトでは、実際にどのようなアクセスが行われるかということをオブジェクト自体に持たせることができなかった。
【0030】
本発明は、上記事情に鑑みてなされたもので、アプリケーションの動作とは独立に一般ユーザが作成した各々のオブジェクトに対して柔軟なオブジェクト走査手順および走査権を与えることができるオブジェクト走査装置を提供することを目的とする。
【0031】
【課題を解決するための手段】
本発明は、複数のサブオブジェクトによって形成されるオブジェクトを走査するオブジェクト走査装置にあって、誰が各サブオブジェクトを走査出来るかを示す各サブオブジェクトの走査権と共にオブジェクトを記憶するメモリ手段と、該オブジェクトに対するアクセスを要求しているユーザを同定する少なくとも1つの走査IDを記憶する走査IDリスト手段と、該オブジェクトの走査時に、該走査IDリスト手段に記憶された走査IDと、当該オブジェクトに対して前記記憶手段が記憶する走査権に基づいて、走査すべきサブオブジェクトを選択する走査オブジェクト選択手段と、上記走査オブジェクト選択手段の選択したサブオブジェクトを当該オブジェクトに対するアクセスの結果として出力する出力手段とにより構成されている。
【0032】
又、本発明は、複数のサブオブジェクトによって形成されるオブジェクトを走査するオブジェクト走査方法であって、誰が各サブオブジェクトを走査出来るかを示す各サブオブジェクトの走査権の付与と共にオブジェクトを記憶するステップと、該オブジェクトに対するアクセスを要求しているユーザを同定する少なくとも1つの走査IDを記憶するステップと、該オブジェクトの走査時に、当該オブジェクトにおいて該走査IDで同定されたユーザに対して付与された走査権に基づいて、走査すべきサブオブジェクトを選択するステップと、前記選択ステップにおいて選択されたサブオブジェクトを当該オブジェクトに対するアクセスの結果として出力するステップとにより構成されている。
【0033】
【作用】
この結果、本発明によれば、リンクで関連付けられた複数のオブジェクトの走査に際し、オブジェクトを走査する際の条件となる走査IDリストをオブジェクトに定義された走査権データ・リストと照合して実行する。さらには、走査すべきオブジェクトを選択する際に、この選択方法に応じて走査IDリストを書き替えるようになる。
【0034】
これにより、それらオブジェクトの走査時の走査手順を定義して、走査すべきオブジェクトの選択方法に応じて走査IDリストを定義し、またそれを走査時に動的に書き換えることもできるようになり、走査方法を柔軟に定義しつつ、オブジェクトの保護も容易に行なうことができる。又、複数のオブジェクトにより構成されたデータに対し、オブジェクト単位でのアクセス権利が定義できる。
【0035】
【実施例】
以下、本発明の実施例を図面に従い説明する。
【0036】
図1は第一の実施例の概略構成を示している。図において、1は仮想記憶管理部で、物理的な記憶装置への入出力を管理を容易にするための管理部である。
【0037】
仮想記憶管理部1は、この装置の仮想記憶スペースに仮想的に格納されたオブジェクト11を管理する。但し、仮想的に格納されるオブジェクトを持つことは本発明に必須のことではなく、公知の記憶管理手段で代用しても良い。又、オブジェクト11は、リンク103で互いに関連づけたものであってもよい。
【0038】
仮想記憶管理部1の管理するデータは、実際には物理メモリ2や二次記憶装置3に配置される。二次記憶装置3はハードディスク・ドライブやCD−ROM、ICカードなどである。
【0039】
ここで、二次記憶装置3に配置される理由は、パーシステント・オブジェクトとして半永久的に記憶するのが目的である場合と物理メモリ2のスワップ領域として利用される場合などがある。また、オブジェクト情報を提携して持ち歩くために配置する場合もある。
【0040】
物理メモリ2はさらにキャッシュ・メモリなどを用いて階層化することもできるが、それについては一般的な手法を用いることとし、本実施例では説明を省略する。
【0041】
また、仮想記憶管理部1は、入出力デバイス4にも接続されている。入出力デバイス4は、例えば、利用するオブジェクトのデータを実際に計算機に記憶することなく、必要に応じて電話回線や無線、ネットワークなどを介してあたかも仮想記憶空間内に常駐するかのように扱うためのものである。これについては単一仮想記憶の管理に関する一般的な手法を用いることとし、本実施例では説明を省略する。
【0042】
さらに、プログラム記憶部6に蓄えられているプログラムを解釈実行し、仮想記憶管理部1に管理されるオブジェクトデータを処理する実行主体であるプロセッサ5がある。プロセッサ5内には、命令の実行途中に一時的に利用するレジスタ類、現在実行している命令のプログラム記憶部6での位置を示すためのプログラムカウンタ、スタックデータの先頭位置を示すスタックポインタなどが存在し、これら一連のデータを入れ替えることによってプログラムを実行し、必要に応じて仮想記憶管理部1に対し、必要なデータの読み出しおよび書き込みを要求する。
【0043】
アクセス要求受付部7はプロセッサ5からのアクセス要求を受け付ける。これはデータの読み出し、書き込み、消去などあらゆるデータ処理要求を含む。引数検出部8およびアクセス要求の種類判定部9は、アクセス要求受付部7の受け付けた要求のそれぞれ引数および種類を判定する。受け付けたアクセス要求がオブジェクト読みだしの要求である場合には、その要求をオブジェクト読み出し実行部10へ送る。その際、実行の引数は引数検出部8から送られる。
【0044】
オブジェクト11は一般に仮想記憶空間に存在するものであり、仮想記憶管理部1によって仮想的に記憶されている。なお、このオブジェクト11は仮想記憶以外のいかなる記憶管理方法によって蓄えられていても、本特許の主旨は変わらない。
【0045】
ここで言うオブジェクト11とはあらゆるデータの集まりのことであり、データ・ファイルやプログラムはもちろん、プログラムが一時的に利用する作業用の構造体なども含まれる。また、各オブジェクト11同士の中には、リンク103で関連付けられているものがある。
【0046】
これにより複数のオブジェクト11をまとめて一つのオブジェクトとして扱うこともでき、これもオブジェクトと呼ぶ。特に、複数のオブジェクトを一つのオブジェクトとして考えるとき、それを構成するオブジェクトをサブ・オブジェクトと呼ぶこともできる。
【0047】
走査IDリスト記憶部12は走査IDリストを管理している。走査IDリストは実行主体(スレッド)ごとにあってもよいし、複数の実行主体で同一の走査IDリストを共有していてもよい。同様にアクセス権記憶部13はユーザのアクセス権を管理している。
【0048】
ここに記述した各構成要素は、それを管理する特定のサーバーを持たせるなどの方法を使えば、必ずしも仮想記憶空間1に置く必要はない。
【0049】
オブジェクト読み出し実行部10においては、対象オブジェクト取出部14が、指定されたオブジェクトを仮想記憶管理部1から読み出すことを指定し、得られた走査権データ・リストを記憶部15に記憶し、また読み出したデータをオブジェクトとデータ読出部20に送る。
【0050】
走査権データ・リスト検出部16は、走査権データ・リスト記憶部15のデータをもとに走査権データ・リストを取り出し、走査オブジェクト選択部19へ送る。
【0051】
走査権IDリスト検出部17は、現在アクセスしているプロセスに関する走査IDリストを走査IDリスト記憶部12より取り出し、アクセス権検証部18は、現在アクセスしているプロセスにオブジェクトのアクセス権があるか否かをアクセス権記憶部13のデータを基に検証する。
【0052】
走査オブジェクト選択部19は、アクセス権検証部18、走査IDリスト検出部17、走査権データ・リスト検出部16からの情報を基に、後に詳述する手順により、走査対象とするオブジェクトを適切に判断し、さらに必要となるオブジェクトの取り出しを対象オブジェクト取出部14に要求する。
【0053】
オブジェクト・データ読出部20は、これら一連の流れの繰り返しによって得られたオブジェクト・データの必要部分を得、プロセッサ5に対し結果としてその内容を返す。
【0054】
次に、図2は、複数のオブジェクトをリンクで関連付け、一つの意味のあるファイルとして扱った場合のオブジェクトの構成例を示している。
【0055】
この場合、グループAの名簿本体のオブジェクト201には、名簿作成者のために用意されたコメントのオブジェクト202が付随している。そして、両者はリンク203で結合され、グループAの名簿を表現するオブジェクト204によって結ばれている。
【0056】
したがって、これらのオブジェクト201、202、204およびリンク203の全部をあわせてグループA名簿205として捉えることができる。
【0057】
一方、グループBの名簿にはコメントが付いていないので、グループBの名簿本体206がグループBの名簿そのものになっている。
【0058】
さらに、グループCの名簿には、やはりコメントが付いていないので、グループBと同様の構造でも構わないが、図2の例では、グループCの名簿本体のオブジェクト207がリンク203でグループCの名簿を表現するノードであるオブジェクト208に結ばれている。そして、これらは、グループC名簿209として捉らえることができる。
【0059】
グループCの名簿209は、二つのオブジェクトを組み合わせて表現する必要はなく、一つのオブジェクトとして表現してもよい。ここではコメントの追加などを行う可能性を考えて二つのオブジェクトで表現している。
【0060】
そして、これらグループA名簿のオブジェクト204、グループB名簿のオブジェクト206およびグループC名簿のオブジェクト208は、それぞれリンク203によりグループ名簿オブジェクト210に結ばれ、これら全てのオブジェクトおよびリンクの集合をグループ名簿200として捉らえている。
【0061】
この場合、以下の説明を簡単にするために、各オブジェクトにはユニークなID番号が付いているものとする。例えば、ID番号として、グループ名簿オブジェクト210をIDM、グループA、B、Cの名簿オブジェクト204,206,208のそれぞれをIDGA、IDGB、IDGC、グループA、Cの名簿本体オブジェクト201,207のそれぞれをIDGAO 、IDGCO 、グループAの名簿コメントオブジェクト202をIDGAC としている。
【0062】
図3は、グループ名簿オブジェクト210の構造を示したものである。
【0063】
ここで、301はオブジェクト210のID、302はこのオブジェクト210を作成した人のID番号である。このID番号は従来のファイル・システムのオーナーのIDに相当するが、このIDはユーザのIDには限られず、グループのIDでも構わない。また、プログラムまたはスレッドに番号を振り、その番号を用いても良い。
【0064】
また、303はオブジェクトのアクセス権を持っているものを定義するアクセス権データ・リストである。これはデータ一つでもよいが一般にはリストとなっている。この例でのアクセス権データ・リスト303は、図4に示すように3つのアクセス権データ304、305、306のリストからなっている。
【0065】
ここで、オブジェクトを作成した人のユーザIDを128 番とし、その人には書き込みおよび読み出しの権利があるものとする。アクセス権データ304のフラグ“R”及び“W”は、ユーザIDが128 番の人は読み出しと書き込みはできることを意味している。但し、実行のためのアクセス権はまだないので他のアクセス権データで許可しない限りできない。同様にアクセス権データ305は、グループID320 番から322 番の人は読み出しの権利を持つことを示すフラグ“R”を有し、アクセス権データ306は、アクセス権の設定をユーザIDやグループIDではなく任意のプログラムで指定できることを示している。ここで指定したプログラムIDのプログラムを実行した結果が真(true)であれば、このプログラムが読み出しの権利を持つことを示す。
【0066】
なお、プログラムあるいはその実行主体(スレッド)にもユーザIDと等価な番号を振ることにすれば、この例で左端に書いたIDまたはprogram という区別のフィールドは不要である。
【0067】
一方、このオブジェクト210へのアクセスは、アクセス権データ・リスト303を構成する3つのアクセス権データ304、305、306のいずれかによって指定されている場合に認められる。この場合、アクセス権データの論理的な組み合わせにより、さらに複雑なアクセス権を指定することもできるが、ここでは最も単純な例のひとつを示している。
【0068】
図3の307は走査制御データで、この走査制御データ307は、オブジェクト210を走査する際に、サブ・オブジェクトをどのように走査するかを規定するものである。ここに走査制御プログラムのプログラムIDを記入すれば一般にどのような走査制御も実現することができるが、ここでは説明を理解しやすくするために最も典型的な例を示す。ここで、EVERYTHINGというフラグは走査可能なサブ・オブジェクト全てをたどることを意味している。すなわち、走査の権利のある全てのサブ・オブジェクトを順次たどって読み出す。複数のグループに属している人がグループ名簿を読んだときには複数のグループ名簿が読めるようにするため、このフラグを設定している。そして、ひとつも走査可能なサブ・オブジェクトがなければ permission denied というエラーになる。これに対し、EVERYTHING−SILENT というフラグにしておけば、走査可能なサブ・オブジェクトが一つもなければあたかもグループ名簿は中身の空のファイルであるように見え、エラーにはならない。EVERYTHINGとEVERYTHING−SILENT の意味はエラー処理を除いて同一であるため、以下の実施例においては、これらを特に区別せずに用いる。又、EVERYTHINGを用いた場合に本来行わなければならないエラー処理部分についても説明を省略する。
【0069】
他の走査制御プログラムの例としては、ONLYONE フラグにしておくと、走査可能なサブ・オブジェクトが一つでも見つかればそのオブジェクトを走査し、他のサブ・オブジェクトは無視する。ただし、走査可能なサブ・オブジェクトが一つもなければエラーになる。ONLYONE−SILENTフラグにするとエラーにはならない。
【0070】
308はサブ・オブジェクトの数を示し、ここではサブ・オブジェクト数308は3個になっているので、オブジェクト210にはサブ・オブジェクトが3個あることがわかり、No1〜No3のサブ・オブジェクトのIDがそれぞれサブ・オブジェクトID309に定義される。
No1〜No3のサブ・オブジェクトには、それぞれ走査権データ・リスト310が付けられている。ここでの走査権データ・リスト310は、いずれも要素は一つだけで、図5に示すように走査権データ311として、それぞれグループIDが320 番、321 番、322 番の者に走査権を認めている。また、各走査権データ311に記述したR、W、Xの各フラグはそれぞれ読み出し、書き込み、実行に伴う走査が起こった場合の走査権を表示している。この例では全ての場合に走査権を認めている。
【0071】
このような走査権データ・リスト310は、前に説明したアクセス権データ・リスト303と同様の手順で走査権の有無を調べるものであるが、機能は全く別個のものである。すなわち、アクセス権データ・リスト303は、そのオブジェクトのアクセスができるか否かを示すものであるのに対して、走査権データ・リスト310は、サブ・オブジェクトを自動的に走査すべきか否かを示すものである。例えば、あるサブ・オブジェクトにアクセス権はあるが走査権がない場合、サブ・オブジェクトの組み合わさって出来たオブジェクトを単純に走査すると、該当のサブ・オブジェクトは走査されない(見えない)が、サブ・オブジェクトを明示的に指定して読み出そうとした場合にはアクセス権があるので読み出すことができる。
【0072】
なお、各走査権データ311は、グループのメンバに対してWの権利を出しており通常のアクセス権機構の感覚では違和感があるかもしれない。このWのフラグは単に、走査する際の手順を示したものであるから、オブジェクトの保護とは必ずしも関係がない。オブジェクトの保護は各オブジェクトのアクセス権リストで行うものである。仮に、このWフラグを悪用して、名簿のデータを書き込もうとしても実際にはサブ・オブジェクトに書き込みの権限が無いので、書き込むことはできない。この場合Wフラグがどちらになっていても意味は無いと勘違いしやすいが、それは誤りである。Wフラグがもし無ければ、書き込みのために走査した際にサブ・オブジェクトに到達できないから、単に書き込みができないだけのことであるが、きちんとWフラグを立てておけば、書き込みのために走査した際にサブ・オブジェクトまで走査に行き、サブ・オブジェクトのアクセス権がチェックされ、適当なエラー処理が行われるのである。
【0073】
次に、図6はグループAの名簿を表現するオブジェクト204の構造を示したものである。ここでは、グループ名簿オブジェクト210と同一部分には同符号を付して説明を省略する。グループB、Cの名簿のオブジェクト206、208も同様の構造であるので説明は省略する。
【0074】
この場合、アクセス権データ・リスト303は、2つのアクセス権データ312を有している。これらは、それぞれ、ユーザIDが128 番の人は読み出しと書き込みの権限があること、グループIDが320 番の人は読み出しの権限があることを示している。
【0075】
そして、2つあるNo1とNo2のサブ・オブジェクトのうち1番目のものはグループAの名簿コメント・オブジェクト202を示し、2番目のものはグループAの名簿本体オブジェクト201を示している。そして、それぞれのサブ・オブジェクト202、201は共に1つの走査権データを持つ走査権データ・リスト.310を持っている。これら走査権データ・リスト310の走査権データ313は、それぞれユーザIDが128 番の人およびグループIDが320 番の人にかかるサブ・オブジェクトの走査権があることを示している。
【0076】
次に、このようなオブジェクトを例として、オブジェクト走査が実施される手順を、いろいろな人がいろいろなオブジェクトを走査しながら読み出すことを例にして説明する。
【0077】
まず、オブジェクト走査に先立ち、走査IDリスト記憶部12に走査IDリストを設定する。これはアクセス権が複数あるのと同様に、複数の走査IDを設定することができる。しかし、もともと自分に権利の無いIDについて走査権を持っていても意味の無いことが多いので、一般にはデフォルトとして現在自分の持っている全ての権利IDを用いることが多い。
【0078】
例えば、ユーザID128 番の人がグループID320 番のグループとグループID340 番のグループに属していたとすると図7のように3つの走査ID611をつないだ走査IDリストの初期値61を設定する。もちろん、明示的にこれ以外のデータを走査IDリストの初期値としても構わない。
【0079】
この状態で、グループAの名簿オブジェクト204の走査を開始すると、図6において、まず、アクセス権データ・リスト303にユーザのID128 が登録されているから、このオブジェクト204をアクセスすることができる。グループAの名簿オブジェクト204は2つのサブ・オブジェクトを持っているので、最初のサブ・オブジェクトを走査できるかどうか調べる。ここで、走査権データ・リスト310の走査権データ313を見ると、読み出しについてユーザID128 に対し走査権があるから、走査IDリスト中の走査ID611 とマッチし、走査権が認められ、走査する。
【0080】
ここで、走査制御データ307はEVERYTHINGであるから、さらに次のサブ・オブジェクトも走査しようと試る。すると走査権データによるとグループID320 に走査権があるから、同様に走査する。すなわち、この人にとっては、グループAの名簿オブジェクト204はコメントと本文のつながったものとして走査されることになる。
【0081】
同じ操作を今度は同じグループに属するユーザID129 の人が行ったとすると、走査IDリストの初期値61は、例えば図8のようになるから、グループAの名簿オブジェクト204を走査する際に、1番目のサブ・オブジェクトについては走査権データ・リスト310と走査IDリストがマッチせず、走査の対象にならない。すなわち、この人にとっては、グループAの名簿オブジェクト204は名簿の本文だけのものとして走査されることになる。
【0082】
次に、同じ走査を今度はグループAに属さない人が行ったとすると、走査IDリストの初期値61で走査ID612 は、例えば図9のようになるから、グループAの名簿オブジェクト204を走査する際に、1番目のサブ・オブジェクトは前回同様走査対象とならず、2番目のサブ・オブジェクトも走査の対象にならない。すなわち、この人にとっては、グループAの名簿オブジェクト204はまったく中身の無いファイルと同じものになる。
【0083】
ここで、仮に、この人にも走査権を出すようにデータを定義しておけば、今度は走査をし、サブ・オブジェクトのアクセス権が出ていないとすると、そこでエラーとなる。このようにアクセス権と走査権の微妙な性質の違いを本発明のオブジェクト走査方法においては容易に実現することができる。
【0084】
なお、以上説明した走査の手順は、各オブジェクトに対して再帰的に行うことが可能である。
【0085】
すなわち、前の説明と同じユーザID128 番の人がグループ名簿オブジェクト210をアクセスすると、まず図3のオブジェクト210のアクセス権データ・リスト303にはID128 が書かれているからアクセス可能であり、3つのサブ・オブジェクトがあることがわかる。
【0086】
次に、それぞれのサブ・オブジェクトが走査可能かどうか調べるが、それぞれの走査権データ・リスト310のうち、ユーザID128 番の人が属しているグループID320 番の書かれているサブ・オブジェクトNo1だけが走査可能であることがわかるので、そのID #IDGA を持つサブ・オブジェクト204を次に走査する。以下前に説明した通りである。
【0087】
このような手順により、ユーザID128 番の人がグループ名簿オブジェクト210をアクセスすると、グループAの名簿のコメントと本文のつながったものとして走査される。
【0088】
また、前と同じユーザID129 番の人がグループ名簿オブジェクト210をアクセスすると、やはりその3つのサブ・オブジェクトのうちNo1だけが走査可能であることがわかり、以下前に説明した通りの手順により、グループAの名簿本文として走査される。
【0089】
ここで、上述のオブジェクト走査において、サブ・オブジェクトを選択する手順について図10により説明する。
【0090】
即ち、あるユーザによってあるオブジェクトの走査が開始されたとすると、まず、ステップ1101において、このオブジェクトに対するアクセス権がこのユーザにあるかどうかが決定される。もしなければ、エラー処理がなされ、ある場合には、ステップ1102に進み、以下に説明するように操作IDリストの初期値61が設定される。
【0091】
次に、このオブジェクトのサブ・オブジェクト数をステップ1103において可変数Nに読み込み、ステップ1104で数Nがゼロであるかどうか判断する。数Nがゼロであれば、走査するサブ・オブジェクトはなく、操作は終了する。そうでなければ、次のステップ1105において、N番目のサブ・オブジェクトがこのユーザにとって走査可能かどうかをN番目のサブ・オブジェクトの走査権データリストを検索して判断する。もしこのN番目のサブ・オブジェクトが走査可能でなければ、変数NをN−1に更新し、上記ステップ1104に戻る。
【0092】
そうでない場合は、次にステップ1109において、このN番目のサブ・オブジェクトの走査を開始する。この時、このN番目のサブ・オブジェクトが更にサブ・オブジェクトを含んでいる場合は、このN番目のサブ・オブジェクトについて再帰的に呼び出しを行い、操作はスタートに戻って図10の操作をN番目のサブ・オブジェクトについて再帰的に繰り返される。
【0093】
このN番目のサブ・オブジェクトの走査が終了した後、このオブジェクトデータの走査管理データ307がEVERYTHINGであるかどうかをステップ1111において決定する。もしそうでなければ、操作は終了し、EVERYTHINGであれば、操作は上記ステップ1106に戻る。
【0094】
以上詳述したとおり、オブジェクトの持つ走査権データ・リストの情報を利用し、アクセスする際にどのオブジェクトを走査すれば良いかを判断し、適切に必要なオブジェクトだけを取り出す機構を用意したことにより、従来のアクセス権管理の方式では実現不可能であった柔軟なオブジェクト表現が可能となる。
【0095】
また、個々のプログラムに特別な定義を行うことなく、オブジェクト自体に走査の手順を記述することができるので、オブジェクトの柔軟な表現を自然な形でプログラムから利用することができる。従って、近年盛んになった共同作業支援のシステムのように、アクセス権やユーザからの見え方などを複雑に記述しなければならない新しいタイプのプログラムの開発も非常に容易に行うことが可能となる。
【0096】
又、第1の実施例においては、単一のオブジェクトを形成する異なったオブジェクトに異なったアクセス権を設定する際に、プログラムの操作が1つのスレッドから他のスレッドに変更され、プログラム操作がこのように不規則になることによってデバッグを行うのが難しくなるということから生じていた従来の問題を解決することができる。
【0097】
故に、この実施例によれば、機能的に異なったアクセス権及び走査権を利用することによって、アプリケーションプログラムの操作とは関係なく、一般ユーザが作成した各オブジェクトについてオブジェクト走査手順及び走査権を柔軟に指定することが可能なオブジェクト走査装置を提供することができる。
【0098】
以下、本発明の第2の実施例について説明する。
【0099】
図11は第二の実施例の概略構成を図1と同一部分には同一符号を用いて示している。第一の実施例との違いは、オブジェクト読出し実行部10に、走査IDリストを動的に変更する走査IDリスト変更部21を持つことにある。
【0100】
走査IDリスト変更部21は、走査オブジェクト選択部19と走査IDリスト記憶部12との間に接続されている。
【0101】
走査IDリスト21は、走査するオブジェクトの選択に従い走査オブジェクト選択部19によって走査IDリスト記憶部12に格納されている走査IDリストに走査IDの追加および削除を行うものである。
【0102】
走査オブジェクト選択部19は実施例1において説明した動作に加え、オブジェクトを走査する動作と同時に、走査したオブジェクトをいかなる権限でアクセスしたかを判断し、適切な権限によりアクセスすべく、走査IDリストの変更を行う。
【0103】
以下、オブジェクトの走査の手順を図面を参照しながら、詳しく説明する。なお、特に断りの無い限り、第1実施例と同一の名称、符号は、同一の意味であるものとする。
【0104】
グループ名簿オブジェクト210を走査する場合を考える。この場合、例えばユーザID128 番の人がグループID320 番のグループとグループID340 番のグループに属していたとすると、第1実施例の場合と同様、図7のように3つの走査ID611 をつないだ走査IDリストの初期値61が設定される。
【0105】
この場合、図3に示すように、グループ名簿オブジェクト210は3つのサブ・オブジェクトを持っている。そして、これら3つのサブ・オブジェクトの走査権データリスト310を見ると、1番目のサブ・オブジェクトだけが走査可能であることがわかる。したがって、サブ・オブジェクトであるグループAの名簿オブジェクト204だけを走査する。その際、1番目のサブ・オブジェクトに関しては走査権データリストにはIDが320 であるユーザの権利しか定義されておらず、それ以外の走査IDは不要となるので、サブ・オブジェクトを走査する際にこれらの不要な走査IDは削除する。
【0106】
したがって、図7のような初期値61を持っていた走査IDリストはこの時点で図12に示すように変更される。走査ID128 、340 は切り離されてID320 のみが有効となる。
【0107】
つまり、この走査は、1番目のサブ・オブジェクトはグループAの権限でアクセスされるべきであるという走査権データリスト310からの情報を利用して、本来持っていたユーザID128 のアクセス権を行使せず、より弱いID320 の権利を走査権として用いることを意味している。
【0108】
次に、サブ・オブジェクトであるグループAの名簿オブジェクト204を走査する。
【0109】
まず、1番目のサブ・オブジェクトの走査権データ・リスト310を見るとID128 番の走査権313が定義されている。今走査を行っているユーザのIDは128 番であるが、前述の変動によって現在の走査IDリストは図12の様にユーザID128 番という走査IDを持っていないから、このサブ・オブジェクト201の走査は行われない。また、2番目のサブ・オブジェクトの走査権データ・リスト310はグループID320 番に対して走査権を出しているから、走査が行われる。
【0110】
このような手順により、ユーザID128 番の人がグループ名簿オブジェクト210をアクセスすると、グループA名簿の本体のオブジェクト201の内容と同一のデータが読み出され、ユーザに元来与えられている強い走査権に基づくオブジェクト202のコメントの内容の読み出しは行わない。
【0111】
ユーザIDが128 番のユーザにとってはグループA名簿の本体オブジェクト201もコメントオブジェクト202も共にアクセス権があるのであるから、従来技術においてはそのオブジェクトをアクセスするプログラムに特別の権限を与えない限り、常に両方のオブジェクトが参照されることになっていた。
【0112】
他のユーザがグループ名簿オブジェクト210を走査した場合の動作は、容易に理解できるので説明を省略する。
【0113】
ここで、上述のオブジェクト走査において、サブ・オブジェクトを選択し、また走査IDリストを変更する手順について図13のフローチャートを用いて説明する。
【0114】
この場合、オブジェクト走査開始によりアクセス権があるかどうかを判断し(ステップ1001)、アクセス権がなければエラーとし、アクセス権があれば走査IDリストの初期値61を設定し(ステップ1002)、走査IDリストの先頭要素をポインタPに、サブ・オブジェクトの個数をNに設定する(ステップ1003、1004)。そして、N=Oかどうかを判断し(ステップ1005)、N=Oならば、走査IDリストからPの走査IDを削除して(ステップ1009)、ステップ1010に進む。N≠Oならば、N番目のサブ・オブジェクトの走査権データリストをチェックしてN番目のサブ・オブジェクトはポインタPで示される走査IDで走査可能かどうかを調べる(ステップ1006)。ここで、走査不可ならばNをN−1にして(ステップ1007)、ステップ1005に戻り、走査可能ならば次の走査IDがあるか調べ(ステップ1010)、ある場合は次の要素をPに設定し(ステップ1008)、ステップ1004に戻り、なければステップ1011に進む。
【0115】
サブオブジェクトの個数を再度Nに設定する(ステップ1011)。そして、N=Oかどうかを判断し(ステップ1012)、YESならば処理を終了する。また、NOならばN番目のサブオブジェクトは走査可能かどうかを判断し(ステップ1013)、ここでNOならばNをN−1にして(ステップ1014)、ステップ1012に戻り、YESならば現在の走査IDリストをスタックにセーブし(ステップ1015)、N番目のサブオブジェクトのオブジェクト走査を開始する(ステップ1016)。この時N番目のサブ・オブジェクトはさらにサブ・オブジェクトがあれば、再帰的に呼び出しが行われる。)サブ・オブジェクトの走査が全て終了したらスタックから走査IDを取り出す(ステップ1017)。そして、走査制御データ307が EVERYTHING かどうかを判断し(ステップ1018)。ここでYESならばステップ1014に戻り、NOならば処理を終了する。
【0116】
従って、図13により説明したオブジェクト走査においては、走査すべきオブジェクトを選択した際に、走査権のあるサブオブジェクトが1つも存在しない走査IDがあれば、それを削除するようになっている。
【0117】
次に、走査すべきオブジェクトを選択した際に、選択したオブジェクトを走査することの不可能な走査IDがあれば、それを削除するようにする手順について図14により説明する。
【0118】
この場合、オブジェクト走査開始によりアクセス権がユーザにあるかどうかを判断し(ステップ1101)、アクセス権がなければエラーとし、アクセス権があれば走査IDリストの初期値61を設定する(ステップ1102)。そして、サブ・オブジェクトの個数をNに設定し(ステップ1103)、N=Oかどうかを判断し(ステップ1104)、YESならば処理を終了する。また、NOならばN番目のサブ・オブジェクトは走査可能かどうか判断し、NOならば、NをN−1にして(ステップ1106)、ステップ1104に戻り、YESならば、現在の走査IDリストをスタックにセーブし(ステップ1107)、N番目のサブオブジェクトの走査権データリストに含まれない走査IDを走査IDリストから削除し(ステップ1108)、N番目のサブオブジェクトのオブジェクト走査を開始し(ステップ1109)、この時、N番目のサブ・オブジェクトが更にサブ・オブジェクトを含んでいたらN番目のサブ・オブジェクトを再帰的に呼び出し、操作はスタートに戻り、図14のこの操作をN番目のサブ・オブジェクトについて再帰的に繰り返す。N番目のサブ・オブジェクトの走査が全て終了したらスタックから走査IDを取り出す(ステップ1110)。そして、このオブジェクトの走査制御データ307が EVERYTHING フラグかどうかを判断し(ステップ1111)、ここでYESならばステップ1106に戻り、NOならば処理を終了する。
【0119】
従って、このようにすれば、例えば、ユーザIDが128 番のユーザが明示的にグループA名簿204を参照した場合には、ユーザID128 番の権限を使って両方走査が行われ、単純にグループ名簿210を参照すると、サブ・オブジェクト204を走査した時点で走査権が変更され、グループ320 の権限で名簿ファイルをアクセスすることができるようになる。
【0120】
これにより、例えば、自分の編集した名簿ファイルを名簿整形プログラムに与えて実行した時に、他のメンバは正しく動作するのに、自分だけはコメントの入った誤ったデータを使って実行するために正しく動作しないというようなことを防止できる。
【0121】
つまり、このような構成によれば、複数のオブジェクトにより構成されたデータに対し、オブジェクト単位でアクセス権を定義できるのみならず、それらオブジェクトの走査時の走査手順を定義し、また走査すべきオブジェクトを選択するとともに、この選択に従って走査IDリストを書き換えることができるので、走査方法を柔軟に定義しつつ、オブジェクトの保護も容易に行うことができる。
【0122】
すなわち、複数のオブジェクトを一つのファイルとみなして走査する際に、各単位オブジェクトごとに記述された走査権を別個に組み合わせるのではなく、全オブジェクトを統一した権利の基で走査するので、オブジェクトの作成者が意図しなかった走査方法が採用されることを未然に防ぐことができる。
【0123】
また、走査すべきオブジェクトを選択した際に、特定の走査IDリストに変更し、または特定の一つまたは複数の走査IDを走査IDリストに追加し、また、特定の一つまたは複数の走査IDを走査IDリストから削除する走査IDリスト変更部を備えることにより、特定のオブジェクト走査時に限り特別の方法を与えることができる。又、ここで説明する電子メールとは、従来から用いられている方式のものに限らず、ある人からある人へ伝達されるあらゆるデータ一般、例えば電子会議において相手に示す提示資料、会議風景のビデオ・データ等も指す。
【0124】
また、走査IDリストの変更時においてはオブジェクトの作成者が持っていない走査IDを追加することのできないという制約を設けることにより、従来一般に用いられていたアクセス権管理を廃止し、走査権で代用することとしても、前記特別の走査IDを与える機構を悪用してオブジェクトを不正にアクセスすることを防ぐことができる。
【0125】
また、走査IDリストの変更時に、特定の実行プログラムによって指定された走査IDを追加することを認めるように前記制約を緩和すると、より柔軟なオブジェクトの走査を可能にすることができる。
【0126】
以下に、図15を参照して本発明の第3の実施例を説明する。この実施例はオブジェクト走査方法及び装置を電子メール作成ツールに応用したものである。
【0127】
図15は、電子メール作成ツールを組み込んだオブジェクト走査装置の構成図である。図11と重複する部分は同一とし、説明を省略する。
【0128】
まず、電子メール作成部30について説明する。これは、電子メールを作成、送信しようとするものが利用する部分である。まず、文書入力部31によって入力された文章はオブジェクト作成部32に送られ、文章オブジェクトの形で格納するよう仮想記憶管理部1に要求する。ここでいう文章とは、文字で書かれた通常文章はもちろん、画像、音声、データベース等の一般データであって良い。
【0129】
文章作成者は必要に応じて作成した文章の一部または全部に走査権を設定することができる。この指示は文章入力部31から走査権データ・リスト作成部33に対して送られ、走査権データ・リスト作成部33は指示に応じて作成文書に対し走査権データ・リストを設定する。この処理にはオブジェクトのサブ・オブジェクトへの分割が伴う場合が一般的である。設定すべき内容はオブジェクト作成部22に対し適宜要求される。
【0130】
以上は電子メールの作成までの説明であり、このようにして作成された文章は適当な走査権およびアクセス権を設定することによりそのまま他の人から参照することができるが、ここでは、従来からある電子メールのように送信相手に対し送り付けるという概念の元に説明する。ただし、本発明はこの概念に限定されたものではない。
【0131】
オブジェクト送信部34は作成された文章オブジェクトを送信する。具体的には、送信相手のメール・アドレス50(宛名)に従って、受信者が読めるようにメールの送信の連絡をしたり、必要であれば他の計算機に対しネットワークを介してデータ転送を行う。これら処理は従来から Sendmail と呼ばれるプログラムで行われており、詳しい説明は省略する。
【0132】
次に、電子メール受信部40について説明する。これは電子メールを受信し読む者が利用する部分である。まず、オブジェクト受信部41が電子メールの到着を検出する。これは電子メール読出部42に伝えられ、読出部42はプロセッサ5に対し文章オブジェクトの読み出しを命ずる。読み出しを命じてから結果として文章オブジェクトを読み出すまでの手順は実施例2で説明したものと同一である。
【0133】
電子メールを受信する者は、受け取った電子メールを読み出す際の走査IDリストを走査IDリスト指示部43に指令し、指令された内容を走査IDリスト設定部44に伝え、走査IDリスト設定部44は走査IDリスト記憶部12に情報を書き込む。ここで言う走査IDリストとは「誰の権限でこのメールを読むべきか」というものを指定するものであり、もちろん、アクセス権の無いメール(例えば他人宛てのメール)が読めるという意味ではない。
【0134】
しかし、一般に電子メールを読む度にユーザに対してこの指令を走査IDリスト指示部43に送る操作は煩雑であるため、デフォルト走査IDリスト指示部45は、状況に応じてデフォルトの走査IDリストを決め、走査IDリスト設定部44にその内容を伝える。デフォルトの走査IDリストを決める方法は一般にユーザがカスタマイズできるように環境設定ファイル等で指示するが、ここでは、オブジェクト送信部34からオブジェクト受信部41に指示されたメール・アドレス50を元に決定するものとする。例えば、その電子メールがグループA全員に宛てられたものであれば、デフォルトの走査IDリストはグループAのみの走査権とする。受信者は、必要や好みに応じてこのデフォルトの変更を走査IDリスト指示部43に対して行うことができる。
【0135】
電子メール読出部42がプロセッサ5から受け取った結果は電子メール表示部46に送られ、実際にその電子メールを読むことができる。また、電子メールを読んだ後に、走査IDリスト指示部43に走査IDリストの変更を要求し、異なる走査権の元で再度電子メールを読むことも可能である。
【0136】
以上のような構成による電子メールの送受信に関して、実際に使われる文書を例として具体的にデータ構造がどのように表現されるのかを以下に例示する。
【0137】
図16は、リーダがプロジェクトAおよびプロジェクトBの今期の計画を記した文書を作成したものである。この文書作成ツールは文書の一部に走査権設定の属性を付ける機能を持っている。
【0138】
通常、文書には特に走査権を指定する必要は無いが、リーダはこの文書が機密性が高いと判断し、各プロジェクトの計画はそれぞれのメンバ以外からは解らないようにしようとした。
【0139】
範囲を指定し、前半はプロジェクトA、後半はプロジェクトBに対し走査権を与える指示を行った。また、プロジェクトAに関する文章の一部は、個人のプライバシーに触れるため、自分だけが走査するように指示した。
【0140】
文書作成ツールはこの指示を受け、適切な走査権データ・リストの設定を行い、図17に示すようなデータ構造を作成した。なお、図17において、本実施例の説明に直接必要とならないフィールドは記述を省略した。
【0141】
リーダはプロジェクトAとプロジェクトBの両方の権限を持っているので、作成した文書全体を読むことができる。
【0142】
リーダは、プロジェクトAおよびプロジェクトBのメンバ全員にこの文書を電子メールで送信した。この文書オブジェクトの走査は、電子メール作成ツールが送信する際に行われても良いし、電子メール作成ツールは文書全体を送信し、受信者が読み出す際にオブジェクトの走査が行われても良いし、その両方でも良いが、ここでは、受信者が読み出す際に行われるものとして記述する。
【0143】
プロジェクトAのみに属しているメンバ1がこの電子メールを受信すると、まず、アクセスに先立ち、図18のように走査IDリストにプロジェクトAと自分のIDである MEMBER1を設定する(実際には他のIDも設定されるかもしれないが、この部分の説明には関係ないので省略する)。そしてこの文書オブジェクトを走査すると、プロジェクトAの権限に基づいて走査するため、実施例1の場合と同様の手順にて、文書1の部分だけがアクセスされる。従って、その人には文書1の内容だけが読める。
【0144】
一方、プロジェクトBのみに属しているメンバは同様に文書3の内容だけが読める。
【0145】
また、プロジェクトAとプロジェクトBの両方に属しているメンバ2がこの電子メールを受信すると、まず図19のように走査IDリストにプロジェクトAとプロジェクトBと自分のIDである MEMBER 2 を設定する。そしてこの文書オブジェクトを走査すると、プロジェクトAとプロジェクトBの両方の権限で走査し、また、TRAVARSE INFO が EVERYTHING であるため、文書1の内容と文書3の内容の連結したひとつの文書として読める。
【0146】
このような手順によって電子メールの送信を行うことによるメリットは次に示すとおり、いくつもある。
【0147】
まず、本来ひとつの文書として管理していたものを、メールの送信を行うために必要部分だけを切り貼りして相手に応じて送る必要がなくなる。一旦走査権データ・リストの設定された文書は、誰に送信しても読ませる必要のある部分だけが読めるように自動的に送られる。
【0148】
また、誤って読まれてはいけない部分を送ってしまう心配もなくなる。例えば送信する文書の中に文書2のような個人のプライバシに関するコメントの記述された部分が含まれていても、受信者がそれを読んでしまうということは起こらない。あるいは、プロジェクトAにもプロジェクトBにも属さない人に送ってしまえば、中身の何もないメールとなるだけである。
【0149】
さらには、プロジェクトAとプロジェクトBの両方に属した人が受信した場合、従来の方法においては、プロジェクトAに関する部分はプロジェクトAのメンバに、プロジェクトBに関する部分はプロシジェクトBのメンバにそれぞれ送信する必要があるため、元々ひとつの文章であった文書1と文書3とが別々の電子メールとなってしまい、整理に不便である。
【0150】
さらに、近年実用化が試みられている、単一仮想記憶というオペレーティング・システムにおいては、分散計算機環境において同一のオブジェクトを単一(同一の)アドレスでアクセスすることができるが、そういったシステムでは電子メールの送信は単にそのオブジェクトへのポインタを渡すだけで済む。そのような環境において、従来の電子メールの送信方法では送り先の相手ごとにデータを加工し直すことになるので、余分な記憶領域を必要とすることになるが、本発明ではそのような場合にもやはりそのオブジェクトへのポインタを渡すだけで済むので、性能が飛躍的に向上する。
【0151】
このように、本発明のオブジェクト走査装置を用いれば、ここで説明したような非常に単純な例でさえ、その有益性は明らかである。こういったオブジェクトをさらに組み合わせた複雑なオブジェクトの走査をも自動的に行うことができるのであるから、その効果は計り知れない。
【0152】
なお、本発明は上記実施例のみには限定されず、要旨を変更しない範囲で適宜変形して実施できる。
【0153】
【発明の効果】
本発明によれば、複数のオブジェクトにより構成されたデータに対し、オブジェクト単位でアクセス権が定義できるのみならず、それらオブジェクトの走査時の走査手順を定義することにより、柔軟に走査を行い、オブジェクトの保護を容易に行うことができる。さらには、サブオブジェクトの選択に応じて走査IDリストを書き換えることにより、走査権を動的に変更し、一層柔軟なアクセスを行うことができる。
【0154】
このことから、複数のオブジェクトを組み合わせてオブジェクトを構成する場合、個々のオブジェクト毎に異なるアクセス権を設定できるようにする試みが近年行われているが、この試みの副作用として、プログラムを実行する主体によってプログラムの動作が変化してしまい、動作が一貫しないためにデバッグが非常に困難になるといった問題が生じて来ているが、アクセス権とは別に走査権を定義することができるので、このような問題点も解決できる。
【図面の簡単な説明】
【図1】本発明に係るオブジェクト走査装置の第1の実施例の概略構成を示す図。
【図2】図1の装置で取り扱うオブジェクトの構成例を示す図。
【図3】図2のオブジェクトのデータの構成例を示す図。
【図4】図3の構成におけるアクセス権データの構成例を示す図。
【図5】図3のデータの構成における走査権データの構成例を示す図。
【図6】図3に示されるオブジェクトのサブ・オブジェクトの構成例を示す図。
【図7】図1の装置における128 番のユーザの走査IDリストの初期値を示す図。
【図8】図1の装置における129 番のユーザの走査IDリストの初期値を示す図。
【図9】図1の装置における130 番のユーザの走査IDリストの初期値を示す図。
【図10】図1の装置におけるサブ・オブジェクト選択の手順の一例を説明するためのフローチャート。
【図11】本発明に係るオブジェクト走査装置の第2の実施例の概略構成を示す図。
【図12】図11の装置におけるユーザの走査IDリストの変更後を示す図。
【図13】図11の装置で走査サブ・オブジェクトの選択及び走査IDリスト変更を行う操作のフロートャート。
【図14】図11の装置で走査サブ・オブジェクトの選択及び走査IDリスト変更を行う操作の他の場合におけるフロートャート。
【図15】電子メールツールを組み込んだ本発明に係るオブジェクト走査装置の第3の実施例を示す概略構成図。
【図16】図15の装置で扱うメイル文書の一例を示す図。
【図17】図15の装置において図16の文書を表示するオブジェクトのデータ構成を示す図。
【図18】図15の装置におけるユーザの走査IDリストの初期値を示す図。
【図19】図15の装置における他のユーザの走査IDリストの初期値を示す図。
【図20】従来の名簿本体のオブジェクトを説明する図。
【図21】従来の名簿本体のIDリストを説明する図。
【図22】図20の名簿のコメントのオブジェクトを説明する図。
【図23】図20及び22のオブジェクトに関連した複数のオブジェクトを連結したオブジェクトを説明する図。
【図24】従来の名簿整形用のプログラムを登録するオブジェクトの一般的な図。
【図25】従来のプログラム登録用のオブジェクトの変形例を示す図。
【符号の説明】
1 仮想記憶管理部
2 物理メモリ
3 二次記憶装置
4 入出力デバイス
5 プロセッサ
6 プログラム記憶部
7 アクセス要求受付部
8 引数検出部
9 アクセス要求種類判定部
10 オブジェクト読出し実行部
11 オブジェクト
12 走査IDリスト記憶部
13 アクセス権記憶部
14 対象オブジェクト取出部
15 走査権データ・リスト記憶部
16 走査権データ・リスト検出部
17 走査IDリスト検出部
18 アクセス権検証部
19 走査オブジェクト選択部
20 オブジェクトデータ読出部
103 リンク
Claims (13)
- 複数のサブオブジェクトによって形成されるオブジェクトを走査するオブジェクト走査装置であって、
各サブオブジェクトを走査する権限を持つ対象を識別する情報をそれぞれ含む各サブオブジェクトの走査権と共にオブジェクトを記憶する記憶手段と、
該オブジェクトに対するアクセスを要求している対象を同定する少なくとも1つの走査IDを記憶する走査IDリスト手段と、
該オブジェクトの走査時に、該走査IDリスト手段に記憶された走査IDと、当該オブジェクトに対して前記記憶手段が記憶する走査権に基づいて、走査すべきサブオブジェクトを選択する走査オブジェクト選択手段と、
前記走査オブジェクト選択手段の選択したサブオブジェクトを当該オブジェクトに対するアクセスの結果として出力する出力手段とからなることを特徴とするオブジェクト走査装置。 - 前記記憶手段は、各オブジェクトをアクセスする権限を持つ対象を識別する情報をそれぞれ含む各オブジェクトのアクセス権と共に前記オブジェクトを記憶し、前記走査オブジェクト選択手段は前記走査IDで同定された対象に対するアクセス権が前記記憶手段に記憶されている時にサブオブジェクトを選択することを特徴とする請求項1記載のオブジェクト走査装置。
- 前記走査IDで同定された対象のアクセス権により前記オブジェクトにアクセスし、前記出力手段が該オブジェクトに対するアクセスの結果として出力したサブオブジェクトを使って該オブジェクトを操作するプログラムを実行するプロセッサ手段を有することを特徴とする請求項2記載のオブジェクト走査装置。
- 前記記憶手段は、各オブジェクトをアクセスする権限を持つ対象を識別する情報をそれぞれ含む各オブジェクトのアクセス権と共に前記オブジェクトを記憶し、更に前記走査オブジェクト選択手段が選択したサブオブジェクトについて前記走査IDで同定された対象に対するアクセス権の有無を検証するアクセス権検証手段を有することを特徴とする請求項1記載のオブジェクト走査装置。
- 前記走査IDで同定された対象のアクセス権により前記オブジェクトにアクセスし、前記出力手段が該オブジェクトに対するアクセスの結果として出力したサブオブジェクトを使って該オブジェクトを操作するプログラムを実行するプロセッサ手段を有することを特徴とする請求項4記載のオブジェクト走査装置。
- 前記記憶手段は前記オブジェクトを、リンクで関連付けられた複数のサブオブジェクトから形成されるオブジェクトとして記憶することを特徴とする請求項1記載のオブジェクト走査装置。
- 前記記憶手段は前記オブジェクトを、該オブジェクトのサブオブジェクトを走査する手順を示す走査制御データと共に記憶することを特徴とする請求項1記載のオブジェクト走査装置。
- 前記走査IDリスト手段が記憶する走査IDを変更する走査IDリスト変更手段を有することを特徴とする請求項1記載のオブジェクト走査装置。
- 前記走査IDリスト変更手段は前記走査IDリスト手段が記憶する走査IDの内で、どのサブオブジェクトの走査権も無いものを削除することを特徴とする請求項8記載のオブジェクト走査装置。
- 前記走査オブジェクト選択手段が選択したサブオブジェクトの一つは更なるサブオブジェクトを含むもので、前記記憶手段は各更なるオブジェクトを走査する権限を持つ対象を識別する情報をそれぞれ含む該更なるサブオブジェクトの走査権と共に該更なるサブオブジェクトを記憶し、前記走査IDリスト変更手段は前記走査IDリスト手段が記憶する走査IDの内で、どの該更なるサブオブジェクトの走査権も無いものを。該サブオブジェクトの一つを走査する時に削除することを特徴とする請求項8記載のオブジェクト走査装置。
- 前記各サブオブジェクトの走査権は該各サブオブジェクトを走査出来るとされる者に該各サブオブジェクトの走査が許可されるようになるところの該各サブオブジェクトへのアクセスの種類も示すことを特徴とする請求項1記載のオブジェクト走査装置。
- 前記オブジェクトを各サブオブジェクトの走査権を指定してメールとして作成し、作成したメールをメールトアドレスを指定して転送するメール作成手段と、
指定されたメールアドレスに応じて該メール作成手段から転送されたメールを受信し、前記出力手段が出力するサブオブジェクトを受信したメールの内容として取り出すメール受信手段と、
からなるメールツールを有することを特徴とする請求項1記載のオブジェクト走査装置。 - 複数のサブオブジェクトによって形成されるオブジェクトを走査するオブジェクト走査方法であって、
各サブオブジェクトを走査する権限を持つ対象を識別する情報をそれぞれ含む各サブオブジェクトの走査権と共にオブジェクトを記憶するステップと、
該オブジェクトに対するアクセスを要求している対象を同定する少なくとも1つの走査IDを記憶するステップと、
該オブジェクトの走査時に、当該オブジェクトにおいて該走査IDで同定された対象に対して付与された走査権に基づいて、走査すべきサブオブジェクトを選択するステップと、
前記選択するステップにおいて選択されたサブオブジェクトを当該オブジェクトに対するアクセスの結果として出力するステップとからなることを特徴とするオブジェクト走査方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP03868194A JP3623979B2 (ja) | 1993-03-09 | 1994-03-09 | オブジェクト走査装置及び方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP5-48159 | 1993-03-09 | ||
JP4815993 | 1993-03-09 | ||
JP03868194A JP3623979B2 (ja) | 1993-03-09 | 1994-03-09 | オブジェクト走査装置及び方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06318167A JPH06318167A (ja) | 1994-11-15 |
JP3623979B2 true JP3623979B2 (ja) | 2005-02-23 |
Family
ID=26377958
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP03868194A Expired - Fee Related JP3623979B2 (ja) | 1993-03-09 | 1994-03-09 | オブジェクト走査装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3623979B2 (ja) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08263438A (ja) | 1994-11-23 | 1996-10-11 | Xerox Corp | ディジタルワークの配給及び使用制御システム並びにディジタルワークへのアクセス制御方法 |
US5638443A (en) * | 1994-11-23 | 1997-06-10 | Xerox Corporation | System for controlling the distribution and use of composite digital works |
JP2912840B2 (ja) * | 1994-12-07 | 1999-06-28 | 富士通株式会社 | ファイル管理システム |
KR100384213B1 (ko) * | 1995-10-06 | 2003-08-19 | 어드밴스트 마이크로 디바이시즈 인코퍼레이티드 | 순차리스트내의선택된타입의제1또는제2대상을인식하는처리시스템,선택회로및방법 |
JP3788113B2 (ja) * | 1999-07-16 | 2006-06-21 | 日本電信電話株式会社 | データベース管理方法及びシステム及びコンピュータ読み取り可能な記録媒体 |
US7890771B2 (en) | 2002-04-17 | 2011-02-15 | Microsoft Corporation | Saving and retrieving data based on public key encryption |
US7487365B2 (en) * | 2002-04-17 | 2009-02-03 | Microsoft Corporation | Saving and retrieving data based on symmetric key encryption |
JP4254137B2 (ja) * | 2002-06-14 | 2009-04-15 | 富士ゼロックス株式会社 | 情報管理システム及び情報管理プログラム |
JP2006091968A (ja) * | 2004-09-21 | 2006-04-06 | Pioneer Electronic Corp | 記録装置及び方法、記録再生装置及び方法、並びにコンピュータプログラム |
US7933924B2 (en) * | 2006-07-14 | 2011-04-26 | Xerox Corporation | Document objects |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69031191T2 (de) * | 1989-05-15 | 1998-02-12 | Ibm | System zur Steuerung von Zugriffsprivilegien |
US5263165A (en) * | 1990-02-15 | 1993-11-16 | International Business Machines Corporation | System for providing user access control within a distributed data processing system having multiple resource managers |
-
1994
- 1994-03-09 JP JP03868194A patent/JP3623979B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06318167A (ja) | 1994-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2996937B2 (ja) | サーバ | |
KR101120755B1 (ko) | 정적 및 동적 리스트의 사용을 포함하는 가상 폴더 및 항목 공유 시스템 및 방법 | |
Parnas | Information distribution aspects of design methodology | |
KR100781730B1 (ko) | 복합 문서를 전자적으로 관리하는 시스템 및 방법 | |
US6606633B1 (en) | Compound document management system and compound document structure managing method | |
JP4876734B2 (ja) | 文書利用管理システム及び方法、文書管理サーバ及びそのプログラム | |
JP2912840B2 (ja) | ファイル管理システム | |
JP4275772B2 (ja) | データベースシステム、データ管理方法及びデータ管理用ソフトウェアを記録した記録媒体 | |
WO2001001285A2 (en) | System and method for providing help contents for components of a computer system | |
JP2000004225A (ja) | ネットワークシステム、送受信方法、送信装置、受信装置、および、記録媒体 | |
US7958146B2 (en) | Using a calculation expression to define and control access rights for records in a database | |
JPH10143414A (ja) | 媒体文書管理システムおよび媒体文書管理方法 | |
JP3623979B2 (ja) | オブジェクト走査装置及び方法 | |
JP2003030026A (ja) | データ管理装置 | |
JPH05197734A (ja) | データ処理システム | |
US5574901A (en) | Method and apparatus for object traversing suitable for structured memory formed by linked objects | |
JP2007310481A (ja) | 文書管理方法、そのプログラム及び記録媒体、並びに文書共有サーバ及び文書共有システム | |
JPWO2004109517A1 (ja) | ストレージ管理プログラムおよびファイル処理プログラム | |
JPH06175904A (ja) | ファイルのアクセス権設定装置 | |
JP4276717B2 (ja) | データベースシステム | |
JP2898305B2 (ja) | ファイル管理装置およびファイル管理方法 | |
US9519399B1 (en) | Providing a visual indication that stored content is associated with a collaboration environment | |
US7752232B2 (en) | Data processing apparatus, data processing system, data processing method, and recording medium | |
JPH09160822A (ja) | アクセス権機能つきハイパーテキスト | |
JP2006252448A (ja) | 文書管理装置、文章管理プログラム、及び、文書管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040302 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040428 |
|
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: 20041116 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041129 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071203 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081203 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091203 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091203 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101203 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |