説明

オブジェクト・モデルに対するアクセスを制御するシステム、方法、およびプログラム

【課題】モデル駆動型開発プロセスにおいて、複数のモデル要素を備えるオブジェクト・モデルに対するアクセスをモデル要素ごとに行うことができるシステムを提供する。
【解決手段】複数のモデル要素のそれぞれについて、モデル要素に対するアクセス権限の種類を規定する第1拡張メタデータ、および、第1拡張メタデータおよび自身を修正する権限を示す第2拡張メタデータを初期設定する初期設定部と、ユーザ要求に応じて、第2拡張メタデータが、第1拡張メタデータの編集権限があることを示す場合に、前記第1拡張メタデータを編集する第1拡張メタデータ編集部と、第2拡張メタデータを編集する第2拡張メタデータ編集部と、ユーザのチェックアウト要求に応じて読出し可または編集可のモデル要素はそのままチェックアウトし、読出し不可かつ編集不可のモデル要素は中身を削除した代替モデル要素に置き換えてチェックアウトする、アクセス管理部とを備える。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般的にはコンピュータ上のオブジェクトのアクセス制御に関する。 本発明は特に、複数のモデル要素を備える、サーバ・コンピュータに記憶されたオブジェクト・モデルに対して、複数のユーザからのアクセスを各モデル要素ごとに制御することができるシステム、そのための方法、およびコンピュータ・プログラムに関する。
【背景技術】
【0002】
近年、モデル駆動型の開発プロセスに注目が集まっている。 モデル駆動型の開発プロセスでは、設計フェーズにおいて、モデル編集ツール(例えば、RSA(Rational Software Architect)など)を用いて、これから作成しようとするソフトウェアやシステムを、UML(Unified Modeling Language)やSysML(Systems Modeling Language)等の、オブジェクト・モデリングのために標準化された仕様記述言語を用いてモデルの記述を行う。 その後、そのソフトウェアやシステムを、記述されたそのモデルに基づいて実装(Implement)したり、そのモデル上で検証したりする工程が行われていく。
【0003】
ここで、モデルをベースとした開発を行う場合、設計に必要な情報だけでなく、設計事由や検証のための制約式なども含めて、多くの情報がモデル内に記述されることになる。 このようなモデルの記述は、複数のモデル要素としてそのモデルを構成する。 通常、これらモデルの記述は、同一組織・企業内だけで共有されるだけではなく、例えば、後工程のエンジニア、あるいは、発注元のクライアントなどとも共有しなければならない。 しかしながら、モデルを構成する複数のモデル要素の内の1つにでも、機密情報となる情報が含まれていると、そのモデルをそのまま、納品したり共有したりすることができなくなる。
【0004】
このようなケースは、発注元のクライアントからOEMの供給要求を受け取ったサプライヤが、納品物としてのモデルを記述し、最終的にクライアントに対して納品物を提供するという実際のビジネス上のシナリオにおいてよく発生する問題である。 即ち、サプライヤはモデルを記述するだけでなく、記述したモデルを用いて検証などを行い、モデルの正しさを確認したり、パラメータを決めるための計算をモデルの記述を用いて行ったりしている。 しかしながら、これらの情報(制約条件などサプライヤにとって機密情報となるような情報)は、本来は、サプライヤ内に留めておきたい情報であり、発注元のクライアントには提供したくない情報であるため、これらの情報を隠して提供することが必要となる。
【0005】
通常、モデル編集ツールでは、モデルの管理単位として、1つのファイルに1つのモデルを記述するように実装されている。 即ち、モデルの管理は、ファイル単位でなされている。 そして、ファイルのバージョン管理ツール(例えば、CVS(Concurrent Version System)、CC(Rational ClearCase(商標))など)を用いて、ファイル単位で、複数のユーザ間での共有やバージョン管理がなされている。 したがって、ファイル単位でアクセス権を設定する通常のファイル・システムのアクセス制御を用いたのでは、モデル全体の単位でしかアクセスを制御できないことになる。
【0006】
ここで、あるバージョンのモデルを発注元に納品または閲覧させるような場合に、そのモデルに含まれる機密情報の部分だけを削除して渡すことも可能である。 しかし、この場合には、納品を受けた発注元が、納品されたモデルを後で編集することは全く考慮されていない。 そのため、以後のモデル上で編集や修正を行わなければならない場合、本来必要な情報を削除してしまっていると、問題を引き起こす。
【0007】
モデル全体の単位ではなく、モデルを構成するモデル要素等の単位でアクセスを制御する方法も試みられて来ている。
SPARX SYSTEMS社の製品、Enterprise Architectのマニュアル「アクセス権の活用」では、UMLのパッケージ単位、要素単位、およびダイアログ単位でアクセス権の設定やロックの設定ができる旨が開示されている。
また、ヨーロッパ特許EP1536309では、任意のビジネス・データ・オブジェクトに対してPermission Data Objectを適用してアクセスを管理する手法が提案されている。
更に、例えばRSAなどのモデル編集ツールでは、モデル本体を拡張子が .emx であるファイル名で管理し、モデルの一部を分割して、フラグメント・ファイルとして .efx という拡張子のファイル名で管理することが可能である。 即ち、モデルファイル内に、フラグメント・ファイルへの参照情報が記述されるため、モデル編集ツール上では、一つのモデルとして閲覧、編集することが可能となっている。 このように、モデルを分割しフラグメント・ファイルを作成することで、ファイルのバージョン管理ツールの機能を用いて、各フラグメント・ファイルに対してアクセス権を付与し、より小さい単位でアクセス制御をすることも可能ではある。
【0008】
しかしながら、これらの方法をもってしても、例えば、モデルの構成要素である特定のモデル要素を1つのフラグメント・ファイルに割り当ててユーザ毎のアクセス制御をした場合、このフラグメント・ファイルへのアクセスが許可されないユーザは、この特定のモデル要素についての中身を見ることができないのは勿論のこと、この特定のモデル要素の存在を共有することもできない。 即ち、あるモデル要素について、複数のユーザ間でその存在は共有するが、そのうちの一部のユーザにはその中身は見せないようにすると言った、より有効的なアクセス管理をすることはできない。
更にまた、これらの方法では、あるモデル要素の一部の情報(例えば、検証に必要な寸法情報など)だけを複数のユーザ間で共有するといった、より詳細な情報へのアクセス管理を行うこともできない。
これらの結果、アクセスが許可されないモデル要素の存在を知り得ないあるユーザが、同じモデル要素を重複して設計をするといった好ましくない状況を誘発する。
【0009】
また、近年、モデルを用いて、プロトタイプを実装する前に、モデル上で検証やシミュレーションを実施する技術が、研究、開発されている。 例えば、あるモデル要素については、あるユーザからは、閲覧は禁止したいが、そのモデル要素に含まれる外部と関連を持つ要素、例えばそのモデル要素の中で定義された特定の数値のみ、を他のモデル要素から参照させて、検証に用いたいような場合がある。 このような場合も、そのモデル要素を1つのフラグメント・ファイルに割り当ててユーザ毎のアクセス制御を行うと、そのフラグメント・ファイルに対するアクセス権がないユーザは、そのモデル要素上で設定された数値に対してもアクセス権がないため、上記のような検証を実施することができない。
【0010】
よって、従来からある方法によっては、昨今のモデル駆動型の開発プロセスにとって重要な、よりきめ細かで有効的な、モデル要素ごとのアクセス管理をすることはできない。
【0011】
【非特許文献1】SPARX SYSTEMS社、Enterprise Architect日本語版、「アクセス権の活用」URL: http://www.sparxsystems.jp/bin/UseAccessRight.pdf
【特許文献1】ヨーロッパ特許EP1536309
【発明の開示】
【発明が解決しようとする課題】
【0012】
本発明の目的は、モデル駆動型の開発プロセスにおいて、複数のモデル要素を備えるオブジェクト・モデルに対して、複数のユーザからのアクセスを各モデル要素ごとに制御でき、かつその制御は、あるモデル要素について、複数のユーザ間でその存在は共有するが、そのうちの一部のユーザにはその中身は見せないようにすると言ったより細かい有効的なアクセス管理を行うことができるものであるシステム等を提供することである。
【課題を解決するための手段】
【0013】
上記課題を解決するために、本発明では、それぞれが固有のIDを有する複数のモデル要素を備える、サーバ・コンピュータに記憶されたオブジェクト・モデルに対して、複数のユーザからのアクセスを制御するシステムを提供する。
本発明の第1の側面においては、このシステムは、(A)前記複数のモデル要素のそれぞれについて、前記複数のユーザの各々からの当該モデル要素に対するアクセス権限の種類を規定する第1拡張メタデータを当該モデル要素に関連付けて設定し、および、前記第1拡張メタデータおよび自身を修正する権限があるかどうかを示す第2拡張メタデータを当該モデル要素に関連付けて設定し、前記第2拡張メタデータには、各ユーザについて前記第1拡張メタデータを修正する権限があることが初期的に示される、初期設定部と、(B)第1ユーザからの第1拡張メタデータの編集要求に応じて、1以上のモデル要素のそれぞれについて、1以上のユーザの各々について、前記第2拡張メタデータが、前記第1拡張メタデータを編集する権限があることを示す場合に、前記第1拡張メタデータを編集する、第1拡張メタデータ編集部と、(C)第2ユーザからの第2拡張メタデータの編集要求に応じて、1以上のモデル要素のそれぞれについて、1以上のユーザの各々について、前記第1拡張メタデータを編集する権限がないことを示すように前記第2拡張メタデータを編集する、第2拡張メタデータ編集部と、(D)第3ユーザから、前記オブジェクト・モデルを前記第3ユーザのクライアント・コンピュータにローカルなオブジェクト・モデルとして取り込むためのチェックアウト要求があった場合に、前記複数のモデル要素の各々について、前記第3ユーザに関して、(D−1)読出し可能のアクセス権限または編集可能のアクセス権限があることを当該モデル要素の前記第1拡張メタデータが示す場合は、当該モデル要素をそのまま前記クライアント・コンピュータに提供し、(D−2)読出し可能のアクセス権限および編集可能権のアクセス権限のいずれも無いことを当該モデル要素の前記第1拡張メタデータが示す場合は、当該モデル要素の代わりに、その内容を取り除いて少なくとも同一のIDと第1拡張メタデータのみを付与した、代替モデル要素を前記クライアント・コンピュータに提供する、アクセス管理部と、を備える。
【0014】
また、本発明の第2の側面においては、本発明の第1の側面におけるシステムにおいて、前記アクセス管理部が、さらに、(E)第4ユーザから、前記第4ユーザのクライアント・コンピュータにおけるローカルなオブジェクト・モデルを前記オブジェクト・モデルに書き戻すためのチェックイン要求があった場合に、前記ローカルなオブジェクト・モデルが備える複数のローカルなモデル要素の各々について、前記第4ユーザに関して、(E−1)編集可能のアクセス権限があることを当該ローカルなモデル要素の前記第1拡張メタデータが示す場合は、当該ローカルなモデル要素を前記オブジェクト・モデルに書き戻し、(E−2)読出し可能のアクセス権限があるが編集可能のアクセス権限が無いことを当該ローカルなモデル要素の前記第1拡張メタデータが示す場合は、当該ローカルなモデル要素の代わりに、当該ローカルなモデル要素のIDと同一のIDを有する、前記オブジェクト・モデル内の当該ローカルなモデル要素に対応するモデル要素を用い、(E−3)当該ローカルなモデル要素が代替モデル要素である場合、前記代替モデル要素の代わりに、前記代替モデル要素のIDと同一のIDを有する、前記オブジェクト・モデル内の前記代替モデル要素に対応するモデル要素を用いる、ことで前記チェックインを完遂する、システムを提供する。
【0015】
さらに、本発明の第3の側面においては、本発明の第2の側面におけるシステムにおいて、(E−2)当該ローカルなモデル要素の代わりに、当該ローカルなモデル要素のIDと同一のIDを有する、前記オブジェクト・モデル内の当該ローカルなモデル要素に対応するモデル要素を用いることは、(e−2)当該ローカルなモデル要素が前記第4ユーザによって編集されていた場合には、チェックインを拒否し、前記第4ユーザに対して、当該ローカルなモデル要素の編集を許容できない旨の通知をすることを含む、システムを提供する。
【0016】
さらにまた、本発明の第4の側面においては、本発明の第2の側面におけるシステムにおいて、(E−3)前記代替モデル要素の代わりに、前記代替モデル要素のIDと同一のIDを有する、前記オブジェクト・モデル内の前記代替モデル要素に対応するモデル要素を用いることは、(e−3)前記代替モデル要素が前記第4ユーザによって編集されていた場合であって、その編集が、他のモデル要素との関係性を追加する変更であった場合に、前記代替モデル要素に対応するモデル要素に、前記他のモデル要素との関係性を追加する前記変更を反映させることを含む、システムを提供する。
【0017】
以上、本発明の概要を、複数のユーザからのアクセスを制御するシステムとして説明したが、本発明はまた、当該システムによってその機能を実施する方法としても捉えることができる。 また、当該システムにこれら方法を実行させるためのコンピュータ・プログラムとしても捉えることができる。
【0018】
尚、上記発明の概要は、本発明の必要な特徴の全てを列挙したものではなく、これらの構成要素のコンビネーションまたはサブコンビネーションもまた発明となり得ることに留意されたい。
【発明を実施するための最良の形態】
【0019】
以下、添付図面を参照して、本発明を実施するための最良の形態(以下、実施形態)について詳細に説明する。 なお、実施形態の説明の全体を通じて同じ要素には同じ番号を付している。
【0020】
1.システム環境
はじめに、本発明の実施に係るモデル駆動型の開発におけるシステム環境について説明する。
図1は、モデル駆動型の開発におけるシステム環境の例100を表す。 モデル駆動型の開発においては、その開発対象に関する基準となるオブジェクト・モデルを先に構築し、そのオブジェクト・モデルを参照して開発対象のシステム等の実装(例えば、Java(商標)やC言語等によるソフトウェア構築による実装等)を行う。 また、必要に応じて、そのオブジェクト・モデルに対して随時修正をかけ、基準となるオブジェクト・モデルを常により適正なものに更新していくことも必要となる。
【0021】
この基準となるオブジェクト・モデルは、サーバ・コンピュータ102の記憶装置内にモデル・リポジトリ106として記憶される。 サーバ・コンピュータ102には、ネットワーク108を介して、複数のクライアント・コンピュータ110、112が通信可能に接続され、各クライアント・コンピュータは、それぞれ、基準となるオブジェクト・モデルにアクセスしてこれを編集するためのモデル編集ツール114、116とローカルな作業領域130、132とを備える。 各クライアント・コンピュータはまた、そのそれぞれを複数のユーザ120、122、ユーザ124、126が利用することができる。
【0022】
各ユーザは、自己が利用することができるクライアント・コンピュータ、およびそのクライアント・コンピュータに備わったモデル編集ツールを介して、サーバ・コンピュータ102のモデル・リポジトリ106に記憶された基準となるオブジェクト・モデルに対して、様々な種類のアクセスを試みる。 これらユーザからの様々なアクセス要求を受けて、実際にサーバ・コンピュータ102において、モデル・リポジトリ106へのアクセスを制御するのが、本発明に係るモデル要素アクセス制御システム104である。
【0023】
2.オブジェクト・モデルおよびモデル要素の構成
図2は、モデル・リポジトリとしてサーバ・コンピュータ内に記憶される基準となるオブジェクト・モデルの例200を示す。 図2は、開発対象であるレーダ送受信システムをSysML(Systems Modeling Language)でモデリングしたものである。 SysMLとは、システム工学のためのモデリング言語であり、UML(Unified Modeling Language)にシステム工学向けの拡張を施したものである。 SysMLは、各種システムやサブシステムの仕様記述、分析、設計、検証、評価等に使用することができる。
【0024】
オブジェクト・モデルは、複数のモデル要素から構成される。 モデル要素には、先ずは、開発対象システムの有する有形、無形の構成ブロックで表される情報がこれに該当する。 図2では、ブロック202、204、206、208で表されるハードウェア構成部品情報、ブロック212、214で表されるパワー(電源供給)情報、および、ブロック222、224で表される要件(Requirement)情報がこれに相当する。
【0025】
また、各ブロック間の関係を表す情報についても、モデル要素として扱うことが可能である。 図2では、ライン232〜252で表される、条件満足(Satisfy)を示す情報等がこれに該当する。 さらには、上記ブロック内で定義される属性や操作などの要素についても、モデル要素(即ち、これらブロックのモデル要素のサブ・モデル要素)として取り扱うことができる。
【0026】
図3は、本発明の実施に関して、オブジェクト・モデルの各モデル要素の内部構成の例を示す。
まず、各モデル要素には、その内部に、ID302が付与されていることが前提となる。 即ち、ユーザのクライアント・コンピュータに導入されたモデル編集ツールを用いて、基準となるオブジェクト・モデルのモデリングを行う場合、各モデル要素にはIDが付与される。 これにより、バージョンの異なるモデル間で、モデル要素名やプロパティ(属性)等が変更されたとしても、どのモデル要素が互いに対応するモデル要素であるかが特定可能となる。
IDの他にモデル要素を構成するものとしては、一般に、モデル要素名304、プロパティ306、およびそのモデル要素の主要部である動作記述(または、機能記述)308等がある。
なお、これらプロパティや動作記述等といったそれぞれの要素もまた、モデル要素(即ち、あるモデル要素の下位階層のモデル要素)として取り扱うことができる。
【0027】
オブジェクト・モデルを表すUMLやSysML等のモデリング言語は、そのモデル要素の役割や用法上の違い等をそのモデル要素に修飾するための拡張機能を有する。 この拡張機能は、そのモデル要素を修飾する各種の拡張メタデータをそのモデル要素に付随して備えることによって可能となる。 これらの拡張機能としては、例えば、UMLやSysMLの場合には、「ステレオタイプ」と呼ばれるものがある。 ステレオタイプ自身については、既存技術であるので、その詳細の説明は省略する。
本発明の実施のためには、各モデル要素を構成するID302、モデル要素名304、プロパティ306、動作記述308等の他に、モデル要素の拡張機能として、所定のフォーマットを有する第1拡張メタデータ310および第2拡張メタデータ312を備えることが必要である。
【0028】
第1拡張メタデータ310は、このオブジェクト・モデルにアクセスする複数のユーザの各々を示すユーザ識別子と、各ユーザからのこのモデル要素に対するアクセス権限の種類との対応付けを示したテーブル322を規定したものである。 アクセス権限の種類としては、最低限、編集(Edit)可能かどうか、読出し(Read)可能かどうか、実行(Exec)可能かどうか、の3種類を規定する。 テーブル322に現れていないユーザ識別子に係るユーザについては、省略時解釈(デフォルト)で、全ての種類のアクセスが可能であるものと規定することができる。
図3の例では、例えばユーザ1はこのモデル要素に対して実行、読出し、編集の全ての種類のアクセスが可能であることを示す。 また、ユーザ2は、このモデル要素に対する編集は不可だが、実行および読出しは可能であることを示す。 更に、ユーザ3は、このモデル要素に対する編集も読出しも不可だが、実行および読出しのアクセスは可能であることを示す。 原則は、最も強いアクセスである編集が可能であれば、他のアクセス(読出し、実行)も当然に可能となる。
【0029】
第2拡張メタデータ312は、このオブジェクト・モデルにアクセスする複数のユーザの各々を示すユーザ識別子と、各ユーザが第1拡張メタデータ310および第2拡張メタデータ312自身を修正する権限があるかどうかの情報との対応付けを示したテーブル324を規定したものである。 図3の例では、ユーザ1およびユーザ2は、それぞれ、このモデル要素についての第1拡張メタデータ310および第2拡張メタデータ312自身を修正する権限があることを示している。 また、ユーザ3は、このモデル要素についての第1拡張メタデータ310および第2拡張メタデータ312自身を修正する権限がないことを示している。 ユーザ1は、このモデル要素についての第1拡張メタデータ310にアクセスして、ユーザ2やユーザ3のアクセス権限はもちろんのこと、ユーザ1自身のアクセス権限も書き換えることができる。 ユーザ1はまた、このモデル要素についての第2拡張メタデータ312にアクセスして、ユーザ2が第1拡張メタデータ310および第2拡張メタデータ312を修正できないように書き換えることができる。 ユーザ1はまた、第2拡張メタデータ312にアクセスして、自分自身がこれ以降、第1拡張メタデータ310および第2拡張メタデータ312を修正できないように書き換えることも可能である。
【0030】
3.本発明の実施に係るシステムの構成と機能
図4は、本発明の実施に係る、サーバ・コンピュータ102等に備わるモデル要素アクセス制御システム104の構成とその機能を模式的に示す。
モデル要素アクセス制御システム104は、モデル・リポジトリ106に記憶されたオブジェクト・モデル420を構成する各モデル要素に対するユーザからのアクセス要求を受けて、当該モデル要素に対するアクセスを制御する。 モデル要素アクセス制御システム104は、初期設定部402、第1拡張メタデータ編集部404、第2拡張メタデータ編集部406、およびアクセス管理部408の4つの機能ブロックを備える。
【0031】
初期設定部402は、各モデル要素について、その第1拡張メタデータおよび第2拡張メタデータの値の初期設定を行う。 即ち、各モデル要素ごとに、図3のテーブル322のように、このオブジェクト・モデル420にアクセスする複数のユーザのそれぞれが、このモデル要素に対して行うことのできるアクセス権限の種類について、その初期値を設定する。
初期値としては、全てのユーザについて、全てのアクセス権限を付与するように定めることができる。
【0032】
第1拡張メタデータ編集部404は、このオブジェクト・モデル420にアクセスする複数のユーザのうちの1のユーザから、あるモデル要素について、その第1拡張メタデータを編集したいとの要求があった場合に、この編集要求に応答して、この第1拡張メタデータの編集をしたり、あるいは場合によっては編集を拒否したりする。
第1拡張メタデータ編集部404は、この1のユーザからのあるモデル要素の第1拡張メタデータに対する編集要求があった場合に、先ず、このモデル要素の第2拡張メタデータを参照する(図4の線422)。 この参照の結果、このユーザがこのモデル要素の第1拡張メタデータを編集できる旨を、第2拡張メタデータが示す場合は、この第1拡張メタデータの編集要求を許可し、この1のユーザの要求通りにこの第1拡張メタデータを編集する。
【0033】
第2拡張メタデータ編集部406は、このオブジェクト・モデル420にアクセスする複数のユーザのうちの1のユーザから、あるモデル要素について、その第2拡張メタデータを編集したいとの要求があった場合に、この編集要求に応答して、この第2拡張メタデータの編集をしたり、あるいは場合によっては編集を拒否したりする。
第2拡張メタデータ編集部406は、この1のユーザからのあるモデル要素の第2拡張メタデータに対する編集要求があった場合に、先ず、その第2拡張メタデータ自身を参照する(図4の線424)。 この参照の結果、このユーザがこのモデル要素の第2拡張メタデータ自身を編集できる旨を、第2拡張メタデータが示す場合は、この第2拡張メタデータの編集要求を許可し、この1のユーザの要求通りにこの第2拡張メタデータを編集する。
【0034】
アクセス管理部408は、このオブジェクト・モデル420にアクセスする複数のユーザのうちの1のユーザから、オブジェクト・モデル420についてのチェックアウト要求、チェックイン要求、モデル検証要求等の、オブジェクト・モデル420全体に対するアクセス要求があった場合に、このアクセス要求に応答して、オブジェクト・モデル420に含まれる個々のモデル要素に対するアクセスを制御する。
【0035】
4.チェックアウト要求
あるユーザから、オブジェクト・モデル420についてのチェックアウト要求があった場合の、アクセス管理部408の動作について説明する。
一般にチェックアウトとは、ユーザが、サーバ・コンピュータにおける基準となるオブジェクト・モデルに基づいて開発等の作業を行っている状態から離れて、自身のローカルな環境において作業を行うために、基準となるオブジェクト・モデルを自身のローカルな作業領域に取り込むことである。
【0036】
例えば、図1の環境において、ユーザ120がクライアント・コンピュータ110のモデル編集ツール114を介して、サーバ・コンピュータ102のモデル・リポジトリ106に保管されたオブジェクト・モデルに対してチェックアウト要求を発した場合を考える。
この場合、このチェックアウト要求をサーバ・コンピュータ102のモデル要素アクセス制御システム104が、即ち、モデル要素アクセス制御システム104内のアクセス管理部408が受ける。 アクセス管理部408は、モデル・リポジトリ106内に保管されたオブジェクト・モデルの各モデル要素ごとに、クライアント・コンピュータ110にそのモデル要素を提供するかどうか、提供する場合はどのような形態で提供するかを判断し、それを実行する。
チェックアウトが完了すると、クライアント・コンピュータ110に提供されたオブジェクト・モデルの各モデル要素は、ローカルな作業領域130に保管され、ユーザ120はローカルな作業環境において提供されたオブジェクト・モデルに基づいて自己の開発等の作業を遂行することができる。
【0037】
図5は、あるユーザからのチェックアウト要求があった場合の、本発明の実施に係る処理の流れを模式的に示したものである。
ユーザがチェックアウト要求(処理502)を行うと、サーバ・コンピュータのモデル要素アクセス制御システムは、モデル・リポジトリからオブジェクト・モデルのファイル520を参照する。 オブジェクト・モデルのファイル520には実際に複数のモデル要素についての情報が含まれている。 よって、各モデル要素ごとにその情報が取得(処理504)される。
取得された各モデル要素ごとに、その第1拡張メタデータの情報を参照して、そのユーザについてのアクセス権の確認(処理506)がされる。
アクセス権を確認した結果、そのユーザからそのモデル要素に対するアクセス権限が、「読出し付加」かつ「編集不可」であった場合は、そのモデル要素はスタブに変換(処理508)される。
【0038】
スタブとは、そのモデル要素が有するIDのみを残し、それ以外の情報をそのモデル要素から全て取り除いて作成した代替モデル要素である。
図6は、モデル要素と、対応する代替モデル要素(スタブ)との間の構成例の比較を示したものである。 この図に示すように、代替モデル要素602では、原則は、オリジナルのモデル要素604のID606のみがその構成に反映され、その他の構成内容は、第1拡張メタデータ608、第2拡張メタデータ610も含め、一切代替モデル要素に反映されない。 モデル要素のモデル要素名612についても、代替名614に変換される。 しかし、後述するように、オリジナルのモデル要素の内容の一部を、代替モデル要素に残すことができる場合もある。
【0039】
確認されたアクセス権限が上記以外の場合は、そのモデル要素は代替モデル要素に変換されない。 即ち、図4のアクセス管理部408を通過する各モデル要素のデータは、代替モデル要素への変換410を経るものと経ないものがある。
【0040】
最後に、各モデル要素の情報がそのユーザのクライアント・コンピュータに提供(処理)される。 この際、上記の判断によって、モデル要素が代替モデル要素(スタブ)に変換されたものは、そのスタブがオリジナルのモデル要素に代わってクライアント・コンピュータに送られる。
クライアント・コンピュータに送られた各モデル要素のデータからなるオブジェクト・モデルは、ローカルなオブジェクト・モデルのファイル512としてクライアント・コンピュータでローカルに利用される。
【0041】
5.チェックイン要求
次に、あるユーザから、オブジェクト・モデル420についてのチェックイン要求があった場合の、アクセス管理部408の動作について説明する。
一般にチェックインとは、ユーザが、チェックアウトによって自身のローカルな作業環境に取り込んだローカルなオブジェクト・モデルに基づいて作業を行い、修正や更新が行われたそのローカルなオブジェクト・モデルを、もう一度、サーバ・コンピュータにおける基準となるオブジェクト・モデルに書き戻すことである。
【0042】
例えば、図1の環境において、ユーザ120がクライアント・コンピュータ110のモデル編集ツール114を介して、サーバ・コンピュータ102のモデル・リポジトリ106に保管されたオブジェクト・モデルに対して、自己のローカルな環境におけるオブジェクト・モデルのチェックイン要求を発した場合を考える。
この場合、このチェックイン要求を、サーバ・コンピュータ102のモデル要素アクセス制御システム104が、より詳しくは、モデル要素アクセス制御システム104内のアクセス管理部408が受ける。 アクセス管理部408は、モデル・リポジトリ106内に保管されたオブジェクト・モデルの各モデル要素ごとに、そのモデル要素に対してクライアント・コンピュータ110からのローカルなモデル要素を書き戻す(上書きする)かどうか等を判断し、それを実行する。
【0043】
図7は、あるユーザからのチェックイン要求があった場合の、本発明の実施に係る処理の流れを模式的に示したものである。
ユーザがチェックイン要求(処理502)を行うと、そのユーザのクライアント・コンピュータに記憶されたローカルなオブジェクト・モデルのファイル716がサーバ・コンピュータに送られ、サーバ・コンピュータのモデル要素アクセス制御システムは、このローカルなオブジェクト・モデルのファイル716を参照する。 このローカルなオブジェクト・モデルのファイル716には実際に複数のモデル要素および代替モデル要素(スタブ)についての情報が含まれている。 よって、各モデル要素および代替モデル要素ごとにその情報が取得(処理704)される。
【0044】
ローカルなオブジェクト・モデルのファイル716から取得された代替モデル要素(スタブ)がある場合は、この代替モデル要素は、チェックアウトの際、オリジナルのモデル要素に対するこのユーザからのアクセス権限が「読出し不可」かつ「編集不可」であったために、代替モデル要素に置換されてチェックアウトされたものであることを意味する。 よって、この場合は、この代替モデル要素に含まれるIDと同一のIDを有する、即ち対応するモデル要素を、モデル・リポジトリ内の基準となるオブジェクト・モデルのファイル720の中から検索する。
この代替モデル要素は、この検索された対応するモデル要素で置換、即ち適正な内容に復元(処理706)される。
【0045】
ローカルなオブジェクト・モデルのファイル716から取得されたモデル要素の場合は、各モデル要素ごとに、その第1拡張メタデータの情報を参照して、そのユーザについてのアクセス権限の確認がされる。
確認されたアクセス権限が「編集可」である場合は、そのモデル要素はローカルな環境で編集が許可されていたものであるから、そのままモデル・リポジトリのオブジェクト・モデルに書き戻されることになる。
【0046】
そのユーザからそのモデル要素に対するアクセス権限が、「読出し可」かつ「編集不可」である場合は、ローカルな環境で編集が許可されていないので、通常はこのモデル要素に対する編集は行われていない。しかし、このユーザが故意に、あるいは、誤って、ローカルな環境でこのモデル要素に対する編集を行ってしまう場合が発生し得る。 この可能性は、クライアント・コンピュータに導入された現行のRSA等のモデル編集ツールを使用する限り、避けることができない。 よって、このような場合、このローカルなモデル要素をそのままモデル・リポジトリのオブジェクト・モデルに書き戻すことは行わない。 即ち、このローカルなモデル要素に含まれるIDと同一のIDを有する、即ち対応するモデル要素を、モデル・リポジトリ内の基準となるオブジェクト・モデルの中から検索し、このローカルなモデル要素をこの検索された対応するモデル要素で置換(処理708)する。
【0047】
このようにして、チェックイン要求に伴うローカルなオブジェクト・モデルに含まれるモデル要素の内容が、内容の置換等によって適宜修正された後、このローカルなオブジェクト・モデルのファイルは、モデル・リポジトリに書き戻されて、チェックインが完了(処理710)する。 即ち、モデル・リポジトリに記憶されていたオブジェクト・モデルのファイルは、修正後のローカルなオブジェクト・モデルのファイルで置き換えられる。
チェックインの完了は、モデル要素アクセス制御システムから、このユーザのクライアント・コンピュータ側に通知(処理712)される。
【0048】
なお、上記では、ユーザからローカルなモデル要素に対するアクセス権限が、「読出し可」かつ「編集不可」である場合に、モデル・リポジトリ内の基準となるオブジェクト・モデルの中から対応するモデル要素を検索し、このローカルなモデル要素を、検索された対応するモデル要素で置換(処理708)する態様を示した。 しかし、このように、対応するモデル要素で無条件に置換してしまうのではなく、各モデル要素について先ずその整合性をチェック(処理714)して、不整合であった場合に、その旨をユーザのクライアント・コンピュータ側に通知し、チェックインを拒否(処理718)するという態様をとることも可能である。
【0049】
ここで、整合性のチェックとは、各々のローカルなモデル要素について、その第1拡張メタデータの内容をチェックして、そのユーザからのアクセス権限が、「読出し可」かつ「編集不可」であった場合に、そのローカルなモデル要素の内容が、チェックアウト直後の内容と異なっているか、即ち、チェックアウト後に、ローカルな環境下で、そのユーザによって実際に編集されたかどうかを確認することである。 このためには、このユーザが以前チェックアウトしたときのオブジェクト・モデルのファイルのバックアップをサーバ・コンピュータ等が持っている必要があるのは言うまでもない。
確認の結果、実際にそのローカルなモデル要素が編集されていた場合は、そのモデル要素に関して、編集するべきではなかったのに編集がされたため不整合である旨の通知と、不整合を解消するためにそのローカルなモデル要素の中の修正が必要な箇所とをクライアントに提示し、チェックインを拒否する。
【0050】
6.代替モデル要素のチェックアウト、チェックイン時の更なる実施態様
図6に示したように、チェックアウト時のあるモデル要素についての代替モデル要素への変換では、オリジナルのモデル要素のIDのみがその構成に反映され、その他の構成内容は、一切反映されないのが原則である。
しかし、代替モデル要素へ変換されるべきそのモデル要素が、他のモデル要素に対する関係性を示す情報を有している場合には、その関係性の情報は、代替モデル要素にも残しておかなければならない。
図8は、代替モデル要素へ変換しなければならないオリジナルのモデル要素に、他のモデル要素との関係性を示す情報を、拡張メタデータとして有している場合の、このオリジナルのモデル要素と、対応する代替モデル要素(スタブ)との間の構成例の比較を示したものである。 この図に示すように、代替モデル要素802においても、オリジナルのモデル要素804が有する他のモデル要素との関係性を示す拡張メタデータ806は、消去されずにそのまま反映される。
【0051】
図9は、図2に示したオブジェクト・モデルに対してチェックアウトがされた後の、ローカルな環境下でのSysMLによるオブジェクト・モデルの例900を示したものである。 この例では、図2のブロック206で表されるモデル要素についてこのユーザからのアクセス権限が、「読出し不可」かつ「編集不可」であったため、このモデル要素が代替モデル要素(スタブ)902に変換されている。 しかし、図2のブロック206とブロック222との間には、ブロック222で表される要求条件を、ブロック206で表されるコンポーネント(Radar Receiver)が満足する(Satisfy)という関係性を有している。
よって、図9に示される、図2のブロック222から置き換えられた代替モデル要素(スタブ)であるブロック902においては、ブロック222とのこの関係性を示す拡張メタデータ904が残される。
【0052】
なお、チェックアウト時には、他のモデル要素との関係性の記述が存在しなかったモデル要素が、代替モデル要素に変換されてチェックアウトされ、チェックアウト後のローカルな環境下における作業で、この代替モデル要素について、他のモデル要素との関係性が新たに追加される場合がある。
例えば、図2のサーバ・コンピュータにおけるオブジェクト・モデルにおいては、ブロック222をブロック206が満足する(Satisfy)という関係は無かったが、このオブジェクト・モデルをチェックアウトして、ローカルな環境下でモデルの更新等を行った結果、図9のローカルなオブジェクト・モデル環境下で、ブロック206に対応する代替モデル要素であるブロック902において、ブロック222との関係性を示す拡張メタデータ904が追加される場合がある。
【0053】
このようなローカルなオブジェクト・モデルをチェックインする際は、この代替モデル要素を、サーバ・コンピュータのモデル・リポジトリ内に記憶された、対応する(即ち、同じIDを持つ)モデル要素に置換した後、置換された代替モデル要素に対してローカルな環境下で追加していた拡張メタデータを、置換したそのモデル要素に対しても同様に追加する編集を行う。
これにより、ローカルな環境下で追加された他のモデル要素との関係性を、チェックイン後の、基準となるオブジェクト・モデルにおいても反映させることができる。
【0054】
7.モデル検証要求
チェックアウトにより、ローカルな環境下に取り込まれたオブジェクト・モデルにおいて、全てのモデル要素の第1拡張メタデータが示すアクセス権限が(「読出し不可」かつ「編集不可」であったとしても)少なくとも「実行可」である場合がある。 この場合、そのローカルなオブジェクト・モデルのうちのいくつかのモデル要素が代替モデル要素(スタブ)に置換されたものであったとしても、そのオブジェクト・モデル全体のモデル検証を、本発明の実施態様として行うことができる。
【0055】
図10は、あるユーザからのモデル検証要求があった場合の、本発明の実施に係る処理の流れを模式的に示したものである。
ユーザが、チェックアウトによって自己のローカルな環境に取り込んだローカルなオブジェクト・モデルについて、モデル検証要求(処理502)を行うと、そのユーザのクライアント・コンピュータに記憶されたローカルなオブジェクト・モデルのファイル1016がサーバ・コンピュータに送られ、サーバ・コンピュータのモデル要素アクセス制御システムは、このローカルなオブジェクト・モデルのファイル1016を参照する。 このローカルなオブジェクト・モデルのファイル1016には実際に複数のモデル要素および代替モデル要素(スタブ)についての情報が含まれている。 よって、各モデル要素および代替モデル要素ごとにその情報が取得(処理1004)される。
【0056】
ローカルなオブジェクト・モデルのファイル1016から取得された代替モデル要素(スタブ)がある場合は、この代替モデル要素は、チェックアウトの際、オリジナルのモデル要素に対するこのユーザからのアクセス権限が「読出し不可」かつ「編集不可」であったために、代替モデル要素に置換されてチェックアウトされたものであることを意味する。
この代替モデル要素に含まれるIDと同一のIDを有する、対応するモデル要素を、モデル・リポジトリ内の基準となるオブジェクト・モデルのファイル1020の中から検索する。
検索されたその対応するモデル要素について、第1拡張メタデータを参照して、このユーザについて「実行可」の権限が付与されている場合は、この代替モデル要素を、この検索された対応するモデル要素で置換(処理1006)する。
【0057】
検索されたその対応するモデル要素について、第1拡張メタデータを参照して、このユーザについて「実行不可」の権限が付与されている場合は、このローカルなオブジェクト・モデルは検証できない旨をこのユーザのクライアント・コンピュータに通知する。
【0058】
このようにして、モデル検証要求に応答して、ローカルなオブジェクト・モデルに含まれる代替モデル要素が、モデル・リポジトリに記憶されたオリジナルのオブジェクト・モデルに含まれる対応するモデル要素で適宜置換された後、このローカルなオブジェクト・モデルのファイルは、サーバ・コンピュータの環境下でモデル要素アクセス制御システムによってモデル検証が実施(処理1008)される。 モデル検証の結果は、モデル要素アクセス制御システムから、このユーザのクライアント・コンピュータ側に通知(処理1010)される。
【0059】
このように、ユーザが「読出し可」の権限を持たないため、代替モデル要素に置換されてチェックアウトされている場合でも、そのユーザにその代替モデル要素に対応するオリジナルのモデル要素の内容を見せることなく、チェックアウトしたローカルなオブジェクト・モデルのモデル検証をそのユーザからの要求に応じて実施することができる。
【0060】
9.ハードウェア資源との関連性
以上、本発明の実施形態について、サーバ・コンピュータが備えるモデル要素アクセス制御システムとして説明し、そのモデル要素アクセス制御システムには構成要件としての複数の機能ブロックが備わることを説明した。
これらの機能ブロックは、このサーバ・コンピュータ(および、場合によっては他のコンピュータ)に記憶されたコンピュータ・プログラムによる情報処理が、このサーバ・コンピュータのCPU等のハードウェア資源(ハードウェア・コンポーネント)と協働した具体的手段によって実現される。
【0061】
図11は、本発明の実施に係るサーバ・コンピュータ1100の詳細なハードウェア構成の典型的な例を示した図である。 この構成では、コンピュータ・システム1100の全体の制御をつかさどるプロセッサ1102(中央処理装置、CPU、メイン・プロセッサ等と称することもある。)の直近にメモリ・コントローラ・ブリッジ1104(メモリ・コントローラ、ホスト・コントローラ、メモリ・ブリッジ、第1のブリッジ、ノース・ブリッジ等と称することもある。)が接続される。
【0062】
メモリ・コントローラ・ブリッジ1104にはメイン・メモリ1106(メモリ、主記憶等と称することもある。)およびグラフィックス・コントローラ1108が直接接続され、プロセッサ1002から主に高い転送レートでメイン・メモリ1106やグラフィックス・コントローラ1108をアクセスすることができる。
【0063】
グラフィック・コントローラ1108は、プロセッサ1102等がメイン・メモリ1106内に設けたフレーム・バッファ上に生成する画像データを取得し、ディスプレイ1114(表示装置、ディスプレイ装置、モニタ装置等と称することもある。)上に表示させる。 これに代えて、グラフィック・コントローラ1108、プロセッサ1102等が生成する画像データを格納するフレーム・バッファ・メモリ1110を独自に備えることもできる。
【0064】
メモリ・コントローラ・ブリッジ1004からはまた、PCIローカル・バス1180などのバスを介して、I/Oコントローラ・ブリッジ1118(I/Oコントローラ、I/Oブリッジ、第2のブリッジ、サウス・ブリッジ等と称することもある。)が接続される。
【0065】
I/Oコントローラ・ブリッジ1118には、ストレージ・コントローラ1120(IDEコントローラ、SCSIコントローラ、等)を介してハードディスク・ドライブ1122(HDD、ハードディスク、ハードディスク・ストレージ、固定記憶装置等と称することもある。)等の大容量記憶装置が接続される。
I/Oコントローラ・ブリッジ1118にはまた、DVDドライブ1124、CDROMドライブ1126、MOドライブ1128、フレキシブル・ディスク・ドライブ等の外部記憶媒体用装置が接続される。
【0066】
大容量記憶装置または外部記憶媒体用装置には、本発明を実施させるのに必要なオペレーティング・システム1132や、オペレーティング・システム1132と協働してプロセッサ1102等に命令を与えて本発明を実施させるためのアプリケーション・ソフトウェア1130等のコンピュータ・プログラムを記憶する事ができる。 これらコンピュータ・プログラムはメイン・メモリ1106にロードされ、プロセッサ1102は、メイン・メモリ1006に格納されたコンピュータ・プログラムに基づいて動作し、各部の制御を行う。
コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
ハードディスク・ドライブ1122にはさらに、本発明の実施に係るオブジェクト・モデルのファイル1134を含めることができる。
【0067】
I/Oコントローラ・ブリッジ1118にはまた、キーボード/マウス・コントローラ1136が接続され、キーボード1138やマウス1140のような入力デバイスからの入力を受けつける。
I/Oコントローラ・ブリッジ1118にはこの他に、各種の外部バス・インターフェース1142、1144、1146が接続される。
外部バス・インターフェース1142は、USB等のシリアル・ポートまたはパラレル・ポートであり、ここを介して各種周辺装置を接続することができる。
【0068】
外部バス・インターフェース1146には、別のコンピュータ・システム1150を通信可能に接続することができ、コンピュータ・システム1150を構成するハードディスク・ドライブ1148に上記コンピュータ・プログラムの全部もしくは一部、または上記オブジェクト・モデルのファイル1134を保管させることも可能である。
【0069】
さらに、外部バス・インターフェース1144を介して外部のコンピュータ・ネットワーク1152に接続することができる。 このコンピュータ・ネットワーク1152を介して接続された別のコンピュータ・システムのハードディスク・ドライブにも、上記コンピュータ・プログラムの全部もしくは一部、または上記オブジェクト・モデルのファイル1134を保管させることも可能である。 これは即ち、本発明の実施は、スタンドアロンのサーバ・コンピュータ環境で行うこともでき、あるいは複数のサーバ・コンピュータの環境で行うこともできることを意味する。
なお、このコンピュータ・ネットワーク1152を介して、このサーバ・コンピュータにチェックアウトまたはチェックインをするユーザのクライアント・コンピュータを接続することができる。
【0070】
コンピュータ・システム1100の大容量記憶装置に記憶され、その全体的な動作を司るオペレーティング・システム1132としては、マイクロソフト・コーポレーションが提供するWindows(R)オペレーティング・システム、アップル・コンピュータ・インコーポレイテッドが提供するMacOS(R)、X Window Systemを備えるUNIX(R)系システムといった、GUI(Graphical User Interface)をサポートするオペレーティング・システムを採用することができる。
UNIX(R)系システムには、例えば、インターナショナル・ビジネス・マシーンズ・コーポレーションが提供するAIX(R)あるいはLinux(R)等がある。
【0071】
以上の説明により、本発明の実施に好適なコンピュータ・システム1100は、通常のパーソナル・コンピュータ、ワークステーション、メインフレーム等の情報処理装置、または、これらの組み合わせによって実現されることが容易に理解されるであろう。
【0072】
10.本発明の実施に係る方法
以上、本発明の実施形態を、複数のユーザからのアクセスを制御する、サーバ・コンピュータが備えるモデル要素アクセス制御システムとして説明したが、本発明はまた、当該システムによってその機能を実施するアクセス制御方法としての側面からも捉えることができる。
また、モデル要素アクセス制御システムがその機能を発揮するためには、サーバ・コンピュータ等に記憶されたコンピュータ・プログラムがサーバ・コンピュータのモデル要素アクセス制御システムに上記アクセス制御方法に係る各ステップを実行させることで行うので、本発明はまた、コンピュータ・プログラムとしての側面からも捉えることができる。
【0073】
図12は、本発明をアクセス制御方法としての側面から捉えた場合の、実施形態に係る処理手順の流れを示す図である。
モデル要素アクセス制御システムは、まず、ステップ1202で、サーバ・コンピュータに記憶されたオブジェクト・モデルの各モデル要素について、そのモデル要素の第1拡張メタデータおよび第2拡張メタデータの初期設定を行う
【0074】
これ以降、モデル要素アクセス制御システムは、イベント・ドリブンで処理を行う。
ステップ1204において、あるユーザから、いくつかのモデル要素についての第1拡張メタデータの内容の変更要求があった場合は、そのいくつかのモデル要素の各々について以下の処理を行う。
先ず、ステップ1206において、そのモデル要素の第2拡張メタデータを参照して、そのユーザが第1拡張メタデータを変更可能であるかどうかを調べる。 変更可能であれば、ステップ1208で、第1拡張メタデータの内容を、そのユーザの指示に基づいて変更する。
この処理を、このいくつかのモデル要素ごとに繰り返す。
【0075】
ステップ1210において、あるユーザから、いくつかのモデル要素についての第2拡張メタデータの内容の変更要求があった場合は、そのいくつかのモデル要素の各々について以下の処理を行う。
先ず、ステップ1402において、そのモデル要素の第2拡張メタデータを参照して、そのユーザが第2拡張メタデータ自身を変更可能であるかどうかを調べる。 変更可能であれば、ステップ1202で、第2拡張メタデータの内容を、そのユーザの指示に基づいて変更する。
この処理を、このいくつかのモデル要素ごとに繰り返す。
【0076】
ステップ1214において、あるユーザから、オブジェクト・モデルについてのチェックアウト要求があった場合は、全モデル要素の各々について以下の処理を行う。
先ず、ステップ1216において、対象のモデル要素についての第1拡張メタデータを参照して、そのユーザのそのモデル要素に対するアクセス権限が、「読出し可」または「編集可」であるかどうかを調べる。
アクセス権限が、「読出し可」または「編集可」である場合は、ステップ1218で、このモデル要素をそのままそのユーザのクライアント・コンピュータに提供する。
アクセス権限が、「読出し可」または「編集可」ではない場合、即ち「読出し不可」かつ「編集不可」ある場合は、ステップ1220で、このモデル要素を代替モデル要素(スタブ)で置き換えて、そのユーザのクライアント・コンピュータに提供する。
この処理を、このオブジェクト・モデルの全モデル要素ごとに繰り返す。
【0077】
ステップ1222において、あるユーザから、オブジェクト・モデルについてのチェックイン要求があった場合は、チェックインさせようとしているローカルなオブジェクト・モデルの全モデル要素および代替モデル要素の各々について以下の処理を行う。
先ず、ステップ1224において、対象のローカルなモデル要素等についての第1拡張メタデータを参照して、そのユーザのそのモデル要素に対するアクセス権限が、「編集可」であるかどうかを調べる。
アクセス権限が、「編集可」である場合は、ステップ1226で、このローカルなモデル要素をそのままサーバ・コンピュータのモデル・リポジトリに書き戻す。
アクセス権限が「編集可」ではない場合は、更にステップ1228において、アクセス権限が「読出し可」であるかどうか調べる。 「読出し可」である場合は、ステップ1230で、このローカルなモデル要素をサーバ・コンピュータのモデル・リポジトリに書き戻さず、モデル・リポジトリにある対応するモデル要素を利用する。 「読出し可」ではない場合とは、即ち、代替モデル要素である場合を意味する。 この場合は、ステップ1232で、この代替モデル要素をサーバ・コンピュータのモデル・リポジトリに書き戻さず、この代替モデル要素と同一のIDを持つ、モデル・リポジトリにある対応するモデル要素を利用する。
この処理を、このオブジェクト・モデルの全モデル要素ごとに繰り返す。
【0078】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態の記載の範囲には限定されない。
上記実施の形態に、多様な変更または改良を加えることが可能であることが当業者に明らかである。 またその様な変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。 さらに、上記実施の形態の中で説明されている特徴の組み合わせの全てが、発明の解決手段に必須とは限らないことにも留意されたい。

【図面の簡単な説明】
【0079】
【図1】モデル駆動型の開発におけるシステム環境の例を表す。
【図2】モデル・リポジトリとしてサーバ・コンピュータ内に記憶される、基準となるオブジェクト・モデルの例を示す。
【図3】本発明の実施に係る、オブジェクト・モデルの各モデル要素の内部構成の例を示す。
【図4】本発明の実施に係る、モデル要素アクセス制御システムの構成とその機能を模式的に示す。
【図5】ユーザからのチェックアウト要求があった場合の、本発明の実施に係る処理の流れを模式的に示す。
【図6】モデル要素と、対応する代替モデル要素(スタブ)との間の構成例の比較を示す。
【図7】ユーザからのチェックイン要求があった場合の、本発明の実施に係る処理の流れを模式的に示す。
【図8】他のモデル要素との関係性を示す情報を拡張メタデータとして有しているモデル要素と、対応する代替モデル要素(スタブ)との間の構成例の比較を示す。
【図9】チェックアウトがされた後の、ローカルな環境下でのオブジェクト・モデルの例を示す。
【図10】ユーザからのモデル検証要求があった場合の、本発明の実施に係る処理の流れを模式的に示す。
【図11】本発明の実施に係るサーバ・コンピュータの詳細なハードウェア構成の典型的な例を示す。
【図12】アクセス制御方法としての側面から捉えた場合の、実施形態に係る処理手順の流れを示す。

【特許請求の範囲】
【請求項1】
それぞれが固有のIDを有する複数のモデル要素を備える、サーバ・コンピュータに記憶されたオブジェクト・モデルに対して、複数のユーザからのアクセスを制御するシステムであって、
前記複数のモデル要素のそれぞれについて、前記複数のユーザの各々からの当該モデル要素に対するアクセス権限の種類を規定する第1拡張メタデータを当該モデル要素に関連付けて設定し、および、前記第1拡張メタデータおよび自身を修正する権限があるかどうかを示す第2拡張メタデータを当該モデル要素に関連付けて設定し、前記第2拡張メタデータには、各ユーザについて前記第1拡張メタデータを修正する権限があることが初期的に示される、初期設定部と、
第1ユーザからの第1拡張メタデータの編集要求に応じて、1以上のモデル要素のそれぞれについて、1以上のユーザの各々について、前記第2拡張メタデータが、前記第1拡張メタデータを編集する権限があることを示す場合に、前記第1拡張メタデータを編集する、第1拡張メタデータ編集部と、
第2ユーザからの第2拡張メタデータの編集要求に応じて、1以上のモデル要素のそれぞれについて、1以上のユーザの各々について、前記第1拡張メタデータを編集する権限がないことを示すように前記第2拡張メタデータを編集する、第2拡張メタデータ編集部と、
第3ユーザからの、前記オブジェクト・モデルを前記第3ユーザのクライアント・コンピュータにローカルなオブジェクト・モデルとして取り込むためのチェックアウト要求に応答してチェックアウトを行う、アクセス管理部であって、前記チェックアウトは、前記複数のモデル要素の各々について、前記第3ユーザに関して、
(1)読出し可能のアクセス権限または編集可能のアクセス権限があることを当該モデル要素の前記第1拡張メタデータが示す場合は、当該モデル要素をそのまま前記クライアント・コンピュータに提供し、
(2)読出し可能のアクセス権限および編集可能権のアクセス権限のいずれも無いことを当該モデル要素の前記第1拡張メタデータが示す場合は、当該モデル要素の代わりに、その内容を取り除いて少なくとも同一のIDと第1拡張メタデータのみを付与した、代替モデル要素を前記クライアント・コンピュータに提供する、
アクセス管理部と、
を備えるシステム。
【請求項2】
前記アクセス管理部は、さらに、第4ユーザからの、前記第4ユーザのクライアント・コンピュータにおけるローカルなオブジェクト・モデルを前記オブジェクト・モデルに書き戻すためのチェックイン要求に応答してチェックインを行い、前記チェックインは、前記ローカルなオブジェクト・モデルが備える複数のローカルなモデル要素の各々について、前記第4ユーザに関して、
(1)編集可能のアクセス権限があることを当該ローカルなモデル要素の前記第1拡張メタデータが示す場合は、当該ローカルなモデル要素を前記オブジェクト・モデルに書き戻し、
(2)読出し可能のアクセス権限があるが編集可能のアクセス権限が無いことを当該ローカルなモデル要素の前記第1拡張メタデータが示す場合は、当該ローカルなモデル要素の代わりに、当該ローカルなモデル要素のIDと同一のIDを有する、前記オブジェクト・モデル内の当該ローカルなモデル要素に対応するモデル要素を用い、
(3)当該ローカルなモデル要素が代替モデル要素である場合、前記代替モデル要素の代わりに、前記代替モデル要素のIDと同一のIDを有する、前記オブジェクト・モデル内の前記代替モデル要素に対応するモデル要素を用いる、
請求項1に記載のシステム。
【請求項3】
当該ローカルなモデル要素の代わりに、当該ローカルなモデル要素のIDと同一のIDを有する、前記オブジェクト・モデル内の当該ローカルなモデル要素に対応するモデル要素を用いることは、
当該ローカルなモデル要素が前記第4ユーザによって編集されていた場合には、チェックインを拒否し、前記第4ユーザに対して、当該ローカルなモデル要素の編集を許容できない旨の通知をすることを含む、
請求項2に記載のシステム。
【請求項4】
前記代替モデル要素の代わりに、前記代替モデル要素のIDと同一のIDを有する、前記オブジェクト・モデル内の前記代替モデル要素に対応するモデル要素を用いることは、
前記代替モデル要素が前記第4ユーザによって編集されていた場合であって、その編集が、他のモデル要素との関係性を追加する変更であった場合に、前記代替モデル要素に対応するモデル要素に、前記他のモデル要素との関係性を追加する前記変更を反映させることを含む、
請求項3に記載のシステム。
【請求項5】
前記アクセス管理部は、さらに、第5ユーザから、前記第5ユーザのクライアント・コンピュータにおける前記ローカルなオブジェクト・モデルについて、モデル検証の要求があった場合に、前記ローカルなオブジェクト・モデルが備える複数のローカルなモデル要素の各々について、
当該ローカルなモデル要素が代替モデル要素であり、かつ、前記第5ユーザに関して、実行可能のアクセス権限があることを当該代替モデル要素の前記第1拡張メタデータが示す場合は、前記代替モデル要素の代わりに、前記代替モデル要素のIDと同一のIDを有する、前記オブジェクト・モデル内の前記代替モデル要素に対応するモデル要素を用いて、
前記ローカルなオブジェクト・モデルの前記モデル検証を完遂する、請求項3に記載のシステム。
【請求項6】
前記オブジェクト・モデルはUMLにより記述されたモデルであり、前記第1の拡張メタデータおよび前記第2の拡張メタデータは、前記UMLの拡張機能であるステレオタイプであり、前記代替モデル要素は、前記UMLにおけるスタブである、請求項1に記載のシステム。
【請求項7】
前記オブジェクト・モデルはSysMLにより記述されたモデルであり、前記第1の拡張メタデータおよび前記第2の拡張メタデータは、前記UMLの拡張機能であるステレオタイプであり、前記代替モデル要素は、前記UMLにおけるスタブである、請求項1に記載のシステム。
【請求項8】
それぞれが固有のIDを有する複数のモデル要素を備える、サーバ・コンピュータに記憶されたオブジェクト・モデルに対しての、複数のユーザからのアクセスを、当該サーバ・コンピュータによって制御する方法であって、
前記複数のモデル要素のそれぞれについて、前記複数のユーザの各々からの当該モデル要素に対するアクセス権限の種類を規定する第1拡張メタデータを当該モデル要素に関連付けて設定し、および、前記第1拡張メタデータおよび自身を修正する権限があるかどうかを示す第2拡張メタデータを当該モデル要素に関連付けて設定し、前記第2拡張メタデータには、各ユーザについて前記第1拡張メタデータを修正する権限があることを示すように初期設定するステップと、
第1ユーザからの第1拡張メタデータの編集要求に応じて、1以上のモデル要素のそれぞれについて、1以上のユーザの各々について、前記第2拡張メタデータが、前記第1拡張メタデータを編集する権限があることを示す場合に、前記第1拡張メタデータを編集するステップと、
第2ユーザからの第2拡張メタデータの編集要求に応じて、1以上のモデル要素のそれぞれについて、1以上のユーザの各々について、前記第1拡張メタデータを編集する権限がないことを示すように前記第2拡張メタデータを編集するステップと、
第3ユーザからの、前記オブジェクト・モデルを前記第3ユーザのクライアント・コンピュータにローカルなオブジェクト・モデルとして取り込むためのチェックアウト要求に応答してチェックアウトを行うステップであって、前記チェックアウトは、前記複数のモデル要素の各々について、前記第3ユーザに関して、
(1)読出し可能のアクセス権限または編集可能のアクセス権限があることを当該モデル要素の前記第1拡張メタデータが示す場合は、当該モデル要素をそのまま前記クライアント・コンピュータに提供し、
(2)読出し可能のアクセス権限および編集可能権のアクセス権限のいずれも無いことを当該モデル要素の前記第1拡張メタデータが示す場合は、当該モデル要素の代わりに、その内容を取り除いて少なくとも同一のIDと第1拡張メタデータのみを付与した、代替モデル要素を前記クライアント・コンピュータに提供する、
ステップと、
を備える方法。
【請求項9】
第4ユーザからの、前記第4ユーザのクライアント・コンピュータにおけるローカルなオブジェクト・モデルを前記オブジェクト・モデルに書き戻すためのチェックイン要求に応答してチェックインを行うステップであって、前記チェックインは、前記ローカルなオブジェクト・モデルが備える複数のローカルなモデル要素の各々について、前記第4ユーザに関して、
(1)編集可能のアクセス権限があることを当該ローカルなモデル要素の前記第1拡張メタデータが示す場合は、当該ローカルなモデル要素を前記オブジェクト・モデルに書き戻し、
(2)読出し可能のアクセス権限があるが編集可能のアクセス権限が無いことを当該ローカルなモデル要素の前記第1拡張メタデータが示す場合は、当該ローカルなモデル要素の代わりに、当該ローカルなモデル要素のIDと同一のIDを有する、前記オブジェクト・モデル内の当該ローカルなモデル要素に対応するモデル要素を用い、
(3)当該ローカルなモデル要素が代替モデル要素である場合、前記代替モデル要素の代わりに、前記代替モデル要素のIDと同一のIDを有する、前記オブジェクト・モデル内の前記代替モデル要素に対応するモデル要素を用いる、
ステップを更に備える、請求項8に記載の方法。
【請求項10】
それぞれが固有のIDを有する複数のモデル要素を備える、サーバ・コンピュータに記憶されたオブジェクト・モデルに対しての、複数のユーザからのアクセスを制御するための、コンピュータ・プログラムであって、当該サーバ・コンピュータに、
前記複数のモデル要素のそれぞれについて、前記複数のユーザの各々からの当該モデル要素に対するアクセス権限の種類を規定する第1拡張メタデータを当該モデル要素に関連付けて設定し、および、前記第1拡張メタデータおよび自身を修正する権限があるかどうかを示す第2拡張メタデータを当該モデル要素に関連付けて設定し、前記第2拡張メタデータには、各ユーザについて前記第1拡張メタデータを修正する権限があるこを示すように初期設定するステップと、
第1ユーザからの第1拡張メタデータの編集要求に応じて、1以上のモデル要素のそれぞれについて、1以上のユーザの各々について、前記第2拡張メタデータが、前記第1拡張メタデータを編集する権限があることを示す場合に、前記第1拡張メタデータを編集するステップと、
第2ユーザからの第2拡張メタデータの編集要求に応じて、1以上のモデル要素のそれぞれについて、1以上のユーザの各々について、前記第1拡張メタデータを編集する権限がないことを示すように前記第2拡張メタデータを編集するステップと、
第3ユーザからの、前記オブジェクト・モデルを前記第3ユーザのクライアント・コンピュータにローカルなオブジェクト・モデルとして取り込むためのチェックアウト要求に応答してチェックアウトを行うステップであって、前記チェックアウトは、前記複数のモデル要素の各々について、前記第3ユーザに関して、
(1)読出し可能のアクセス権限または編集可能のアクセス権限があることを当該モデル要素の前記第1拡張メタデータが示す場合は、当該モデル要素をそのまま前記クライアント・コンピュータに提供し、
(2)読出し可能のアクセス権限および編集可能権のアクセス権限のいずれも無いことを当該モデル要素の前記第1拡張メタデータが示す場合は、当該モデル要素の代わりに、その内容を取り除いて少なくとも同一のIDと第1拡張メタデータのみを付与した、代替モデル要素を前記クライアント・コンピュータに提供する、
ステップと、
を実行させるための、コンピュータ・プログラム。
【請求項11】
第4ユーザからの、前記第4ユーザのクライアント・コンピュータにおけるローカルなオブジェクト・モデルを前記オブジェクト・モデルに書き戻すためのチェックイン要求に応答してチェックインを行うステップであって、前記チェックインは、前記ローカルなオブジェクト・モデルが備える複数のローカルなモデル要素の各々について、前記第4ユーザに関して、
(1)編集可能のアクセス権限があることを当該ローカルなモデル要素の前記第1拡張メタデータが示す場合は、当該ローカルなモデル要素を前記オブジェクト・モデルに書き戻し、
(2)読出し可能のアクセス権限があるが編集可能のアクセス権限が無いことを当該ローカルなモデル要素の前記第1拡張メタデータが示す場合は、当該ローカルなモデル要素の代わりに、当該ローカルなモデル要素のIDと同一のIDを有する、前記オブジェクト・モデル内の当該ローカルなモデル要素に対応するモデル要素を用い、
(3)当該ローカルなモデル要素が代替モデル要素である場合、前記代替モデル要素の代わりに、前記代替モデル要素のIDと同一のIDを有する、前記オブジェクト・モデル内の前記代替モデル要素に対応するモデル要素を用いる、
ステップを更に前記サーバ・コンピュータに実行させるための、請求項10に記載のコンピュータ・プログラム。


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate


【公開番号】特開2010−92228(P2010−92228A)
【公開日】平成22年4月22日(2010.4.22)
【国際特許分類】
【出願番号】特願2008−260923(P2008−260923)
【出願日】平成20年10月7日(2008.10.7)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【Fターム(参考)】