JPH08272744A - 情報処理方法及び装置 - Google Patents

情報処理方法及び装置

Info

Publication number
JPH08272744A
JPH08272744A JP7073186A JP7318695A JPH08272744A JP H08272744 A JPH08272744 A JP H08272744A JP 7073186 A JP7073186 A JP 7073186A JP 7318695 A JP7318695 A JP 7318695A JP H08272744 A JPH08272744 A JP H08272744A
Authority
JP
Japan
Prior art keywords
floor
application
data
unit
information processing
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.)
Withdrawn
Application number
JP7073186A
Other languages
English (en)
Inventor
Toshihiko Fukazawa
寿彦 深澤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP7073186A priority Critical patent/JPH08272744A/ja
Priority to US08/623,303 priority patent/US5937166A/en
Publication of JPH08272744A publication Critical patent/JPH08272744A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Operations Research (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Data Mining & Analysis (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

(57)【要約】 【目的】異なるアプリケーション間で共有可能で、かつ
個々のアプリケーションのフロア・モデルに対応可能な
柔軟性を有するフロア管理を可能とする。 【構成】1台以上のコンピュータによって構成される作
業環境において動作するアプリケーション群の発言権を
管理する情報処理装置が提供される。発言権制御の対象
であるアプリケーションを表現するFloorUnit206、
207が各アプリケーション204、205に対応づけ
て管理される。更に、FloorUnit206、207が属す
る集合を表現するFloorSpace208が管理される。そし
て、アプリケーションより発言権獲得の要求があると、
対応するFloorUnitが属するFloorSpaceにおける当該ア
プリケーションの発言権を該フロアデータに規定された
FloorPolicy209によって、所定の手順に従って獲得
される。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、1台ないしそれ以上
のコンピュータ上における共同作業を支援する情報処理
方法及び装置に関するものである。
【0002】
【従来の技術】近年、高速なLANやWANが一般に浸
透してくるに従い、ネットワークで結合された複数のコ
ンピュータ上で多様なアプリケーション・プログラムを
連係・動作させることにより、複数のユーザによる共同
作業の場をコンピュータ上に実現するシステム(狭義の
グループウェア)が提案され実際に利用される様になっ
てきた。このようなシステムでは、画像・文書などのデ
ータやアプリケーション・プログラムなどの資源(リソ
ースと呼ぶ)が複数のユーザによって共有されて利用さ
れる。リソースの操作が複数のユーザによって同時にお
こなわれると、データの内容やアプリケーションの内部
状態の一貫性を保ち、システムに正しい動作をおこなわ
せることが困難となる。このため、共有されるリソース
のユーザによる参照・操作の衝突を回避するための機構
が必要となる。
【0003】このような機構の実現法として、1) アク
セス権管理方式、2) フロア管理方式の2つの方法が提
案されている。
【0004】1)のアクセス権管理方式は、リソースを画
像・文書などのデータであるとみなし、データの参照・
変更権(アクセス権とよぶ)を各ユーザに対して規定する
ものである。各ユーザはアクセス権を持っているデータ
に対してのみ操作をおこなう事ができる。アクセス・コ
ントロール・リストやケイパビリティ・リストなどに基
づく実現法が一般に使用される(アクセス・コントロー
ル・リスト、ケイパビリティ・リスト等については、"O
perating Systems: Design and Implementation, ANDRA
EW S. TANENBAUM, Prentice-Hall, 1987.等を参照のこ
と)。
【0005】これに対し、2)のフロア管理方式ではアプ
リケーションをリソースであるとみなし、アプリケーシ
ョンの操作権(発言権あるいはフロアともよぶ)をその時
々の状況にあわせてユーザに付与する。フロアを所有す
るユーザ(或はその代行者としてのアプリケーション)の
みがシステム上で操作をおこなうことができる。
【0006】アクセス権管理方式は比較的簡単な構造と
ごく限られた操作(あるいは演算)体系を提供するシステ
ムで利用される。UNIXオペレーティング・システム
(商標)におけるファイルシステムが代表的な適用例であ
る。
【0007】これに対し、フロア管理方式は、状況によ
って動的に変化し得る複雑なリソース操作を要求される
システムで利用される。このため、グループウェア・シ
ステムでは主にフロア管理方式に基づくリソース管理方
式が使用される。
【0008】ただし、上記2つの方式はまったく排他的
な方式というわけではなく、アクセス権管理方式をリソ
ース管理方式におけるフロア決定のメカニズムの1部と
して利用しているシステムも存在する。多くのオペレー
ティング・システムはアクセス権管理方式によるファイ
ル・システムを提供しているので、その上で構築された
フロア管理方式はアクセス権管理システムを利用するこ
とが可能である。
【0009】従来、グループウェア・システム向きの上
記フロア管理方式の実現は、グループウェア・システム
上で動作する個々のアプリケーションが個別にフロア管
理のメカニズムを実装することにより実現されていた。
多くの場合、フロアを集中管理するプロセスを1つ設置
し、各アプリケーションはこのフロア管理サーバとの通
信によりフロアの獲得・放棄をおこなうという実装が採
用されている。
【0010】
【発明が解決しようとする課題】しかしながら、従来の
フロア管理方式では、以下のような問題が発生する。即
ち、 1)アプリケーションごとにフロア管理メカニズムを実
装する必要があるので、アプリケーション・プログラム
が複雑化してしまい、アプリケーション開発が難しくな
る. 2)異なるアプリケーション間でのフロア管理の実現が
困難である. 3)フロアを取りあう実体がアプリケーション・プログ
ラムに限定されため、特定の操作や動的に組み込まれる
モジュールなどを制御の対象にすることが困難である. という問題が発生する。
【0011】本発明は上記の問題に鑑みてなされたもの
であり、異なるアプリケーション間で共有可能で、かつ
個々のアプリケーションのフロア・モデルに対応可能な
柔軟性を有するフロア管理が可能な情報処理方法及び装
置を提供すること目的とする。
【0012】また、本発明の他の目的は、フロア空間が
複雑な階層構造を構成するようなアプリケーション環境
に対応可能なフロア管理を提供することにある。
【0013】また、本発明の他の目的は、アプリケーシ
ョンの起動・終了などによる動的なフロア空間の構成の
変化に対応可能な、柔軟なフロア管理を提供することに
ある。
【0014】更に、本発明の他の目的は、上述した機能
を提供しつつ、アプリケーション開発者に負担を与える
ことなく実現することを可能とすることにある。
【0015】
【課題を解決するための手段】上記の目的を達成するた
めの本発明の情報処理装置は以下の構成を備えている。
即ち、1台以上のコンピュータによって構成される作業
環境において動作するアプリケーション群の発言権を管
理する情報処理装置であって、発言権制御の対象である
アプリケーションを表現するユニットデータを管理する
第1管理手段と、前記ユニットデータが属する集合を表
現するフロアデータを管理する第2管理手段と、前記ア
プリケーションよりの要求に応じて、対応するユニット
データが属するフロアデータにおける当該アプリケーシ
ョンの発言権を該フロアデータに規定された手順で獲得
する獲得手段とを備える。
【0016】また、好ましくは、前記ユニットデータの
構成及び前記フロアデータの構造を任意に変更する変更
手段を更に備える。ユニットデータの構成、フロアデー
タの構造を変更可能とすることで、種々の作業環境に柔
軟に対応できるようになる。
【0017】また、好ましくは、前記第1及び第2管理
手段は、前記ユニットデータの構成及びフロアデータの
構造をデータの階層構造として管理する。フロア空間が
階層構造を有するようなアプリケーション環境に対応す
ることが可能となるからである。
【0018】また、好ましくは、前記第1及び第2管理
手段は、前記ユニットデータの構成及びフロアデータの
構造を、データの関連をあらわす表を用いて表現する。
リレーショナル・データベースや単なる2次記憶システ
ムを用いてフロアデータ等を管理できるようになるから
である。
【0019】また、好ましくは、前記獲得手段における
規定された手順は、複数のアプリケーション間で共有可
能である。
【0020】また、好ましくは、前記獲得手段における
規定された手順は、独立したサーバ・プログラムとして
管理される。
【0021】また、好ましくは、前記獲得手段における
規定された手順を任意に変更する変更手段を更に備え
る。
【0022】また、好ましくは、前記アプリケーション
と前記ユニットデータの対応関係を管理する第3管理手
段(実施例ではフロア・トリガ表1004が相当する)
を更に備える。アプリケーションとユニットデータの対
応をアプリケーション自身で管理する必要がなくなり、
アプリケーションプログラムの負担が軽減される。
【0023】また、好ましくは、前記対応関係に基づい
て、前記アプリケーションにおける発言権制御処理を自
動的に起動する起動手段を更に備える。
【0024】
【作用】上記の構成によれば、1台以上のコンピュータ
によって構成される作業環境において動作するアプリケ
ーション群の発言権を管理する情報処理装置が提供され
る。本発明の構成において、第1管理手段は発言権制御
の対象であるアプリケーションを表現するユニットデー
タを管理する。第2管理手段は、前記ユニットデータが
属する集合を表現するフロアデータを管理する。そし
て、獲得手段は、前記アプリケーションよりの要求に応
じて、対応するユニットデータが属するフロアデータに
おける当該アプリケーションの発言権を該フロアデータ
に規定された手順で獲得する。
【0025】以上のようにして、本発明ではフロア取得
の対象となるユニットデータと、ユニットデータの集ま
りで表現されるフロアデータの構成および構造をモデル
化することが可能となる。さらにフロアデータ内におけ
る規定された手順に従って、モデル化されたフロア構造
(フロア・モデル)をアプリケーションやソフトウェア・
モジュール等の間で共有することを可能ならしめる。
【0026】以上のような構成により、異なるアプリケ
ーション間で共有可能で、かつ個々のアプリケーション
のフロア・モデルに対応可能な柔軟性を持つフロア管理
方式が提供可能となる。
【0027】
【実施例】以下に添付の図面を参照して本発明の好適な
一実施例を説明する。
【0028】<実施例1>図1は実施例1の協調型グル
ープウェアシステムにおけるフロア管理機構の構成を表
す図である。
【0029】本実施例である協調型グループウェアシス
テムは、複数のユーザが各ユーザ環境で複数のアプリケ
ーションを駆使しつつ、そのユーザおよびアプリケーシ
ョン間でさなざまなデータのやり取りをおこなわせるこ
とにより、グループ共同作業環境を提供するものであ
る。本システムではアプリケーション間の動作の一貫性
を保つために図1に示すフロア管理機構を提供する。
【0030】図1において、ワークステーション101
は本実施例の処理を実行するCPU102と、本協調型
グループウェアシステムを構成するアプリケーション群
を保持する主記憶103を計算機バス105で結合して
構成されている。
【0031】ワークステーション101にはディスプレ
イ104も計算機バス105によって結合されている。
【0032】本実施例ではフロア管理のために利用され
るデータとオブジェクト指向データベース106を利用
して管理する。オブジェクト指向データベース106は
イーサネット等のネットワーク107を介してワークス
テーション101と結合されている。尚、図1に示され
るようなワークステーション101と同様の構成の複数
のワークステーションがネットワーク107を介して結
合され得る。
【0033】データベース106で管理されるフロア管
理情報はフロア情報108とフロア・ポリシー情報10
9に大別される。これらの情報の詳細については後述す
る。
【0034】アプリケーション110は本協調型グルー
プウェアシステムを構成するアプリケーションの典型的
な例をあらわすものである。実際には複数のアプリケー
ションが1つないしそれ以上のワークステーション上で
動作する。アプリケーション110の内部には、フロア
管理に関する以下の4つのソフトウェア・モジュールお
よびデータ構造が存在する。以下に、これらについて説
明する。
【0035】[フロア単位表現(FloorUnit)111]フ
ロア管理の対象となるアプリケーションやソフトウェア
・モジュールを表現するデータ構造である。フロア管理
機構は、このFloorUnit111に対してフロアの付与な
いし剥奪などの制御をおこなう。FloorUnit111は1つ
のアプリケーション内にすくなくとも1つ存在し、アプ
リケーションにおけるさまざまなフロアに1つずつ対応
する。
【0036】[フロア空間表現(FloorSpace)112]フ
ロア空間表現(FloorSpace)112は、FloorUnit111
の集まりであるフロア空間を表現するデータ構造であ
る。FloorUnit112は多くの場合1つ以上のFloorSpac
e112に属し、そのFloorSpace112内において他のF
loorUnitとフロアをとりあう。
【0037】FloorSpace112の実体はフロア情報10
8としてデータベース106上で管理されており、本シ
ステムで動作する他のアプリケーションから参照するこ
とが可能である。フロア情報108とFloorSpace112
の対応関係はオブジェクト指向データベース106の提
供する機構により管理されている。この管理手段をアプ
リケーション110側で提供することにより、オブジェ
クト指向データベース106をリレーショナル・データ
ベースや単なる2次記憶システムで置き換える事も可能
である。尚、この点については、実施例2において詳述
する。
【0038】[フロア・ポリシー表現(FloorPolicy)1
13]FloorPolicy113はあるFloorSpaceと必ず関連
づけられ、そのFloorSpaceにおけるフロア制御の方式を
規定する。FloorPolicyの実体はフロア・ポリシー情報
109としてデータベース上106で管理され、他のア
プリケーションと共有される。
【0039】[フロア・ポリシー実行モジュール11
4]FloorUnit111、FloorSpace112、FloorPolicy
113の保持する情報を基に、アプリケーション110
におけるフロア制御を実施するソフトウェア・モジュー
ルである。本実施例におけるフロア・ポリシー実行モジ
ュール114はFloorPolicy113で定義されている関
数(メソッド)を呼びだすものである。
【0040】また、FloorPolicy113上でのポリシー
の記述をTCL (TCLプログラム言語については、"Tcl and
the Tk Toolkit",John K. Ousterhout, Addison-Wesle
y, 1994. 参照のこと)などのスクリプト言語で記述する
ような実装も可能である。この場合、フロア・ポリシー
実行モジュール114は、FloorPolicy113が提供す
るスクリプトを解釈・実行するインタプリタとして実現
される。
【0041】FloorUnit, FloorSpaceおよびFloorPolicy
はフロア制御のモデルを構築するために使用される。本
実施例におけるフロア管理は、このフロア制御モデルに
基づき実行される。
【0042】図2は本実施例におけるフロア制御モデル
の概要を説明するための概念図である。図2において、
2つのワークステーション201,202がイーサネッ
ト・ケーブル203で結合されており、それぞれの上で
アプリケーション204,205が動作している。
【0043】アプリケーション204上にはFloorUnit2
06が、またアプリケーション205上にはFloorUnit
207が存在し、それぞれ各アプリケーションがフロア
取得の候補であることをあらわしている。FloorUnit2
06,207はFloorSpace208に属しフロアを奪い合
う関係にある。FloorSpace208におけるフロア制御は
FloorPolicy209によって規定される。
【0044】図3は、図2で示したフロア制御モデル
の、本実施例における実現方法を説明する図である。
【0045】図3において、参照番号301から307
までの各構成は、図2における参照番号201から20
7までの各構成に対応している。この図ではさらにオブ
ジェクト指向データベース315が追加され、図2にお
けるFloorSpace208とFloorPolicy209を表現する
データであるフロア情報311とフロア・ポリシー情報
314を管理する。
【0046】オブジェクト指向データベース315によ
って、フロア情報311およびフロア・ポリシー情報3
14は、アプリケーション304,305のデータ空間
にマップされる。これらは、アプリケーション304の
データ空間内ではFloorSpace309, FloorPolicy31
2として参照・操作が可能である。また、同様にアプリ
ケーション305においてはFloorSpace310とFloorP
olicy313として参照・操作が可能である。
【0047】一方のアプリケーション上のFloorSpace,
FloorPolicy上でおこなった操作の結果は、データベー
ス315上のフロア情報311,フロア・ポリシー情報
314に反映される。さらにその結果はデータベース3
15によって他方のアプリケーション上のFloorSpace,
FloorPolicyに反映される。
【0048】次に、FloorUnit, FloorSpaceおよびFloor
Policyのデータ構造について説明する。尚、オブジェク
ト指向データベース315内におけるフロア情報31
1,フロア・ポリシー情報314のデータ構造は、オブ
ジェクト指向データベース315の実装に依存するた
め、ここでは取りあげない。多くのオブジェクト指向デ
ータベースではアプリケーションのデータ空間内のデー
タ構造をそのまま、データベース内でのデータ構造とし
て使用する。
【0049】[FloorUnit]FloorUnitはC++プログラ
ム言語のデータ構造として、 class FloorUnit { protected: int type; char* floorName; BOOL isFloorHolder; FloorSpace* space; int (*floorCallback)(int callback_type); int (*errorCallback)(int callback_type); public: int requestFloor(); int releaseFloor(); }; の様に定義されている(C++プログラム言語について
は、"The Annotated C++ Reference Manual, Margar
et A. Ellis etc., Addison-Wesley, 1990.を参照のこ
と)。
【0050】上記の定義において、typeはFloorUnitとF
loorSpaceを区別するためのデータ型情報である。この
情報はFloorUnitデータの生成時に自動的に指定され
る。また、isFloorHolderはこのFloorUnitがフロアを確
保しているならTRUEを、そうでないならFALSEを値とし
て取る変数である。また、spaceには、このFloorUnitが
所属しているFloorSpaceへのポインタが登録される。
【0051】また、floorCallbackはアプリケーション
・プログラム側で指定した関数のポインタが代入され
る。この関数はFloorUnitがフロアを取得したとき、お
よびフロアを失った時に自動的に呼び出される。floorC
allbackの仮引数として指定されているcallback_typeの
値が0ならばフロアの取得をあらわし、1ならばフロア
の喪失を表している。
【0052】また、errorCallbackにはアプリケーショ
ン・プログラム側で指定した関数のポインタが代入され
る。この関数はFloorUnitにおけるフロア取得等の処理
がエラーになったとき自動的に呼び出される。errorCal
lbackの仮引数として指定されているcallback_typeの値
はfloorCallbackと同様に、0ならばフロアの取得を表
し、1ならばフロアの喪失を表している。
【0053】また、FloorUnitには2つのメソッドreque
stFloor()とreleaseFloor()が定義されている。request
Floor()はアプリケーション・プログラム本体がフロア
を取得するためのインタフェースとなるメソッドであ
る。releaseFloor()は逆にアプリケーション・プログラ
ム本体がフロアを放棄するためのインタフェースを提供
するメソッドである。いずれも要求が満たされればTRUE
を返し、エラー等により要求が満たされなかった場合は
FALSEを返す。
【0054】これらのメソッドにより、FloorUnitはア
プリケーション・プログラムとフロア管理機構のインタ
フェースを提供する。アプリケーション・プログラムは
以下の様にして、フロア管理機構を利用する。即ち、 1 FloorUnit* a_floor_unit = new FloorUnit(); 2 FloorSpace* a_floor_space = new FloorSpace("doSomething"); 3 a_floor_space->addFloorUnit(a_floor_unit); 4 ... 5 if (a_floor_unit->requestFloor() != TRUE) { 6 // エラー 7 ... 8 } else { 9 // フロア取得。適当な処理をおこなう. 10 ... 11 } となる。まず1行目で、FloorUnitのインスタンスを生
成する。次にFloorSpaceのインスタンスを生成して、3
行目でFloorUnitを登録している。ここでFloorSpaceイ
ンスタンス生成時に引き数としてあたえられる"doSomet
hing"は、このFloorSpaceを介して操作されるフロアに
付けられた名前(フロア名と呼ぶ)である。
【0055】このアプリケーションがフロアを必要とす
る操作をおこなう場合、5行目に示す様にrequestFloor
()によってフロア取得を要求し、フロア取得に成功した
時のみ操作をおこなう(9,10行目)。
【0056】[FloorSpace]FloorSpaceは以下の様にし
て定義される。FloorSpaceの持つ属性はFloorUnitに若
干の属性を追加したものとなるので、C++のサブクラ
スの機構を利用し追加される属性のみが記述される。即
ち、 となる。
【0057】上記の定義において、floorUnitListはFlo
orUnitおよびFloorSpaceのリストであり、このFloorSpa
ceに含まれるフロア制御の対象をあらわしている。この
floorUnitListでは、FloorUnitだけでなくFloorSpaceも
フロア制御の対象として扱う事ができるので、後述する
様にフロア空間による階層構造を形成して複雑なフロア
制御形態をモデル化する事が可能となる。
【0058】また、policyは、このFloorSpaceにおける
フロア制御を規定するFloorPolicyへのポインタであ
る。floorHolderは、フロアを保持しているFloorUnitな
いしFloorSpaceへのポインタである。このフロア所持者
は必ずfloorUnitListにも属している。また、発言権制
御規定の変更は、上記のFloorPolicy* Policy;の値の
変更によって行われる。この変更の手段は、C++プロ
グラム言語の提供する、値の変更機構で実現される。
【0059】さて、FloorSpaceには4つのメソッドFloor
Space(),addFloorUnit(),requestFloor()とreleaseFloo
r()が定義されている。requestFloor()はFloorUnitがフ
ロアを取得するためのインタフェースとなるメソッドで
ある。releaseFloor()は逆にFloorUnitがフロアを放棄
するためのインタフェースを提供するメソッドである。
FloorUnitで定義されているrequestFloor()およびrelea
seFloor()の処理は、FloorSpaceのrequestFloor(),rele
aseFloor()によって実現されている。いずれも要求が満
たされればTRUEを返し、エラー等により要求が満たされ
なかった場合はFALSEを返す。また、addFloorUnit()は
前述した様に引き数で指定されたFloorSpaceおよびFloo
rUnitをfloorUnitListに追加する。FloorSpace()はFloo
rSpaceの生成時に呼び出されるコンストラクタであり、
引き数としてフロア名をとる。
【0060】[FloorPolicy]最後のFloorPolicyは以下
の様に定義されている。即ち、 class FloorPolicy { protected: char* policyName; public: virtual int requestFloor(FloorUnit* unit, FloorSpace* space); virtual int releaseFloor(FloorUnit* unit, FloorSpace* space); }; と定義されている。
【0061】上記の定義において、policyNameは、この
FloorPolicyが表現するフロア制御方式につけられた名
前である。FloorPolicyはフロア制御のためのメソッド
を持っている。すなわち、requestFloor()はフロア取得
の要求に対する動作を規定するメソッドであり、releas
eFloor()はフロア放棄の要求に対する動作を規定するメ
ソッドである。FloorUnitおよびFloorSpaceで定義され
ている同名のメソッドは、最終的にFloorPolicyで定義
されているrequestFloor(),releaseFloor()を呼び出
す。
【0062】フロア制御方式(フロア・ポリシー)には何
種類ものバリエーションが考えられ、それらが必要とす
る情報も多様である。これらのポリシーはFloorPolicy
データ構造に適当な属性を追加し、requestFloor()とre
leaseFloor()をオーバライド(override)することによ
り、本システムに組み込まれる。
【0063】以上のように定義された、FloorUnit,Floo
rSpace,FloorPolicyは図4に示す様な階層構造を形成す
る。図4では4つのFloorUnit(401, 402, 403, 404)が
存在する。図4は本実施例におけるFloorUnitとFloorSp
aceの階層構造を表す図である。
【0064】これらのうちFloorUnit401,FloorUnit
402,FloorUnit403はFloorSpace405に属して
いる。FloorSpace405のフロア制御はFloorPolicy4
06によってコントロールされている。また、FloorSpa
ce405とFloorUnit404は、FloorSpace407を形
成し、FloorPolicy408によって制御されている。
【0065】図4のような複数のFloorSpaceによって形
成されるフロアの階層構造全体におけるフロア制御は、
フロアの階層構造のルートからFloorUnitにむかって順
にフロア制御をおこなうことにより実行される。これは
下位のFloorSpace(よりFloorUnitに近いFloorSpace)
が上位のFloorSpace(より階層構造のルートに近いFloo
rSpace)で、フロア制御の"フロア"を順に獲得してい
き、最後にFloorUnitでのフロア制御がおこなわれると
いう処理になるためである。
【0066】次に図5を用いて上記のようなデータ構造
のもとに、どのようにしてフロア制御が実行されるかに
ついて説明する。図5は本実施例によるフロア制御を説
明する図である。ここで述べる処理は図6と図7におい
てフローチャートで表現されている。即ち、図6はFloo
rUnitにおけるフロア制御を表すフローチャートであ
る。また、図7はFloorSpaceにおけるフロア制御を表す
フローチャートである。
【0067】図5においてアプリケーション501は、
FloorUnit503,FloorSpace504,FloorPolicy50
5のオブジェクト群からなるフロア管理モジュールと、
フロア管理モジュールのサービスを利用するアプリケー
ション・プログラムの本体502の2つのモジュールに
分割することができる。アプリケーション本体502に
は必ず1つ以上のFloorUnit503が対応づけられてい
る。アプリケーション本体502がフロアの取得あるい
は放棄をおこなう時は、まずFloorUnit503のメソッ
ド(requestFloor()およびreleaseFloor())を呼び出し
て要求をおこなう。
【0068】要求をうけとったFloorUnitは、自分があ
るFloorSpaceに属しているかをチェックする(ステップ
S601)。これはFloorUnitのspace属性の値がNULLか
否かで判断する。値がNULLのときは、どのFloorSpaceに
も属しておらず、他のFloorUnitとフロアを奪い合う必
要がない。このため、フロア取得・放棄ともにステップ
S605以下のFloorUnitにおけるフロア制御処理を直
ちに実行する。
【0069】また、ステップS601におけるチェック
でFloorUnit503のspace属性の値がNULL以外であった
場合は、FloorSapceにおける同名のメソッドを呼び出す
事により、要求をそのFloorSpace504に転送する(ス
テップS602)。
【0070】上記要求に基づいてFloorSpace504で行
われたフロア制御が終了すると、その結果はFloorUnit
503に返される。その結果、要求がエラーとなり許可
されなかった場合、isFloorHolderの値は変更されずerr
orCallbackに登録されている関数が呼び出される(ステ
ップS603、ステップS604)。
【0071】要求が許可された場合、即ち、ステップS
603においてステップS602の要求に基づくFloorS
paceの処理がエラーとならなかったか、あるいはステッ
プS601でFloorSpaceに属していないFloorUnitであ
った場合はステップS605へ進む。ステップS605
にてフロアの取得要求が許可されたのであるなら、Floo
rUnitのisFloorHolderの値をTRUEにセットし(ステップ
S606)、そうで無いならばisFloorHolderをFALSEに
セットする(ステップS607)。それからfloorCallb
ackに登録されている関数を呼び出し(ステップS60
8)、本処理を終了する。
【0072】次に、上述のステップS602で呼び出さ
れるFloorSpace504におけるフロア制御について図7
を参照して説明する。
【0073】FloorSpace504は要求を受け取ると、自
分が他のFloorSpaceに属しているかをチェックする(ス
テップS701)。これはFloorUnitと同様にspace属性
の値がNULLか否かで判断する。値がNULLのときは他のFl
oorSpaceには属しておらず、他のFloorUnitやFloorSpac
eとフロアを奪い合う必要がないため、フロア取得・放
棄ともに(ステップS704)以下のFloorSpaceにおけ
るフロア制御処理を直ちに実行する。
【0074】また、ステップS701におけるチェック
でFloorSpace504のspace属性の値がNULL以外であっ
た場合は、space属性値である上位のFloorSpaceにおけ
る同名のメソッドを呼び出す事により、上位のFloorSpa
ceにおけるフロア操作権を要求する(ステップS70
2)。尚、この要求に基づいて上位のFloorSpaceが行う
フロア制御処理は、図7のフローチャートで示される処
理とまったく同様に実行される。FloorSpace504にお
ける処理との相違点は、関連づけられているFloorPolic
yによって吸収される。
【0075】FloorSpace504は上位のFloorSpaceへの
フロア操作権の要求の結果、上位のFloorSpaceにおける
フロア操作権の取得に失敗した場合、要求の発行元であ
るFloorUnit503にエラーを送り返す(ステップS7
03、S706)。前述したように、FloorUnit503
はエラー通知を受け取ると、ステップS603、S60
4によるエラー処理をおこなう。
【0076】一方、ステップS703において上位のFl
oorSpaceからのフロア操作権の取得に成功した場合、Fl
oorSpace504はpolicy属性に登録されているFloorPol
icyにFloorUnitからの要求の実行を依頼する。この処理
は、FloorPolicyのrequestFloor()メソッドあるいはrel
easeFloor()メソッドをよびだすことによって実行され
る(ステップS704)。
【0077】ここで、FloorPolicy505は、引数でわ
たされたFloorUnit503およびFloorSpace504、あ
るいはFloorPolicy505自身の属性の値を基に要求の
可否を判断して、結果をFloorSpace504に返す。
【0078】FloorSpace504がおこなった要求がエラ
ーとなり許可されなかった場合は、FloorSpace504は
要求の発行元であるFloorUnit503にエラーを送り返
す(ステップS705、S706)。例えば、すでにフ
ロアを獲得しているFloorUnitがフロア獲得を要求した
り、フロアを獲得していないFloorUnitがフロア放棄を
要求した時などはエラーとなるかもしれない。但し、Fl
oorPolicyが実現しているフロア制御方式によりその動
作は異なる。
【0079】一方、ステップS705において要求が許
可された場合、FloorSpace504はその結果を受け取る
とそれに基づいてfloorHolder属性の値を変更する。こ
こで、当該要求がフロア取得要求であるならば、floorH
olderに要求を発行したFloorUnit503のポインタを代
入する(ステップS707、S708)。また、要求が
フロア放棄要求ならば、floorHolderの値をNULLにする
(ステップS707、S709)。
【0080】以上の様にしてFloorSpace504における
フロア制御が終了すると、さらにその結果はFloorUnit
503に返される(ステップS710)。
【0081】以上説明したように、本実施例1はグルー
プウェア・システムにおけるフロア管理機構を用いて本
発明の一実施例を構成している。即ち、本実施例1で
は、「フロア単位」「フロア空間」および「フロア・ポ
リシー」をオブジェクト指向データベースを利用して、
FloorUnit,FloorSpace,FloorPolicyというC++クラ
スを定義する事により導入し、かつFloorUnit,FloorSp
ace,FloorPolicyによって「フロア空間」の構成および
構造をモデル化することを可能にした。
【0082】本実施例1によれば、グループウェア・シ
ステム上で動作するアプリケーションに組み込み可能な
C++クラスとしてフロア管理機構を実現し提供するこ
とにより、既存のアプリケーションに一貫したフロア管
理機構を導入することが可能となった。
【0083】また、「フロア空間」の構成および構造を
C++オブジェクトのポインタ操作によって変更するこ
とが可能であるため、グループウェア・システムにおけ
る頻繁なユーザの参加・退席、およびそれに伴うアプリ
ケーションの起動・終了などによる動的な作業環境の変
化にも対応することも可能となっている。
【0084】<実施例2>上記の実施例1において、協
調型グループウェアシステムにおける本発明の一実施例
を述べたが、本実施例2では以下に示すような他の構成
による一実施例を説明する。
【0085】図8は実施例2のグループウェアシステム
におけるフロア管理機構の構成を表す図である。同図に
おいてワークステーション801は本実施例の処理を実
行するCPU802と、本協調型グループウェアシステ
ムを構成するアプリケーション群を保持する主記憶80
3を計算機バス805で結合して構成されている。ワー
クステーション801にはディスプレイ804も計算機
バス805によって結合されている。
【0086】本実施例では、フロア制御のメカニズムを
フロア・サーバ808およびフロア・ポリシー・サーバ
群810としてアプリケーション806から独立させて
実現する。
【0087】フロア・サーバ808は図1におけるフロ
ア単位表現111とフロア空間表現112に相当し、フ
ロア情報の管理と、後述するフロア・ポリシー・サーバ
群の制御をおこなう。フロア・サーバ808は内部に、
実施例1におけるFloorUnitおよびFloorSpaceに相当す
るフロア実体対応表809を保持している。フロア実体
対応表809についても後述する。
【0088】また、フロア・ポリシー・サーバ群810
は、図1におけるフロア・ポリシー表現113とフロア
・ポリシー実行モジュール114に相当し、1つのサー
バが1つないし数種類のフロア制御方式を実現してお
り、フロア・サーバ808の要求に基づきフロア制御を
実行する。
【0089】各フロア・ポリシー・サーバ810は最低
限以下のリモート・メッセージ(フロア・サーバから送
られて来る)を処理する。リモートメッセージは、 ・requestFloor <フロア実体名1> <フロア実体名2> ・releaseFloor <フロア実体名1> <フロア実体名2> である。これらのリモート・メッセージは、実施例1に
おけるFloorPolicyに定義されていた同名のメソッドと
ほぼ同じ意味をもつ。
【0090】即ち、requestFloorは指定されたフロア実
体1のフロア実体2におけるフロアの獲得を要求するリ
モート・メッセージである。また、releaseFloorは指定
されたフロア実体1のフロア実体2におけるフロアの放
棄獲得を要求するリモート・メッセージである。
【0091】フロア・サーバ808とフロア・ポリシー
・サーバ群810は、ワークステーション801上で動
作させることが可能であるが、通常ワークステーション
801と同じ構成をもつ他のワークステーション上で動
作させることも可能である。
【0092】さて、アプリケーション806はフロア・
インタフェース・モジュール807を介してフロア・サ
ーバ808のサービスを利用することによりフロア制御
をおこなう。
【0093】次に、フロア・サーバ808について説明
する。図9はフロア・サーバの内部構造を表す図であ
る。同図において、フロア・サーバ901は処理プログ
ラム902とフロア実体対応表903および、フロア・
ポリシー・サーバ表904から構成される。実施例1
で、データの参照関係で表現していた図4のようなフロ
ア単位およびフロア空間の階層を、本実施例ではフロア
実体対応表903によって管理する。フロア実体対応表
903は以下の5つの属性(アトリビュート)を有する。
【0094】即ち、フロア実態対応表903の有する属
性は、 ・フロア実体名905 ・ユニット・リスト906 ・フロア所持者名907 ・フロア・ポリシー名908 ・上位実体名909 の5つの属性である。各属性は実施例1におけるFloorU
nitおよびFloorSpaceデータ構造の属性に対応させるこ
とができる。以下各属性について説明する。
【0095】[フロア実体名905]フロア実体とはフ
ロア単位とフロア空間を総称したものである。フロア実
体対応表903の各横の列(タプルとよぶ)は1つのフロ
ア実体を表現している。フロア実体名905は、各タプ
ルが表現するフロア実体につけられる一意な名前であ
り、タプル生成時に指定される。フロア実体名905は
タプル検索における主キーとして使用される。
【0096】[ユニット・リスト 906]ユニット・
リスト906はフロア実体に含まれている下位のフロア
実体の名前のリストである。ユニット・リスト906が
空値であるフロア実体は実施例1におけるフロア単位に
相当し、その他のフロア実体はフロア空間に相当する。
【0097】[フロア所持者名907]フロア所持者名
907はユニット・リスト906に含まれるフロア実体
の中で、現在フロアを確保しているフロア実体の名前を
管理する。このフロア所持者名907には複数のフロア
実体名を登録できるため、実施例1においてFloorUnit
が提供するフロア・モデルと異なり、1つのフロア空間
内で複数の発言者が存在し得るモデルにも対応する事が
できる。
【0098】[フロア・ポリシー名908]フロア・ポ
リシー名908はフロア実体におけるフロア制御を実行
するフロア・ポリシー・サーバの名前である。この名前
はフロア・ポリシー・サーバ表904の主キーとして使
用され、フロア・ポリシー・サーバとの通信に必要な情
報の取得に利用される。本実施例ではFloorUnit相当の
フロア実体にもフロア・ポリシー名を指定することによ
り、FloorUnitとFloorSpaceを区別せずに扱うことが可
能になっている。
【0099】[上位実体名909]最後の上位実体名9
09は、このフロア実体自身をユニット・リストに含む
上位のフロア実体の名前である。この属性により、図4
に示したものと同様なフロア・モデルを形成することが
できる。また、本実施例2では実施例11におけるフロ
ア・モデルと異なり、複数の上位実体の名前を上位実体
名909に登録する事ができるため、複数のフロア空間
に属するフロア実体を表現する事が可能である。
【0100】さて、フロア・サーバ901は以上のフロ
ア実体対応表903を参照および変更するためのリモー
トメッセージ・インタフェースを提供している。リモー
トメッセージインターフェースとしては、 ・addFloorEntity <フロア実体名> <ユニット・リスト>
<フロア・ポリシー名> <上位実体名> ・removeFloorEntity <フロア実体名> ・findFloorEntity <フロア実体名> が提供されている。
【0101】addFloorEntityはフロア実体を生成し、フ
ロア実体対応表903に追加するためのメッセージであ
る。引き数としてフロア所持者名以外の値が指定され
る。フロア実体生成時におけるフロア所持者名は必ず空
値である。また、removeFloorEntityは逆にフロア実体
名を指定し、フロア実体対応表903から実体を削除す
る。最後のfindFloorEntityは指定したフロア実体の全
ての値の取得を要求するメッセージである。また、実施
例2において、発言権制御規定の変更は、フロア実体対
応表内のフロアポリシー名の変更によって行われる。こ
の手段は、addFloorEntityとremoveFloorEntityによっ
て提供される。
【0102】任意のアプリケーション・プログラムは、
このインタフェースを利用する事により図4に示した様
なフロア階層を動的に変更する事が可能である。さら
に、このフロア階層変更処理に適当なフロア制御を適用
することも可能である。
【0103】フロア・ポリシー・サーバ表904は前述
したようにフロア・ポリシー名908を主キーとして通
信に必要なポートなどの情報を管理するための表であ
る。主にフロア制御処理においてフロア・ポリシー・サ
ーバとのデータ通信が必要となったときに参照される。
【0104】フロア・ポリシー・サーバ表904におい
ても、フロア実体対応表903と同様な参照・変更イン
タフェースをフロア・サーバ901は提供している。新
たなフロア制御方式を組み込むためには、そのフロア制
御方式を実装したフロア・ポリシー・サーバを作成し、
フロア・ポリシー・サーバ表904に登録してやれば良
い。
【0105】次に示す図10は、アプリケーション内に
おけるフロア・インタフェース・モジュールの概要をあ
らわす図である。図に示す様に、一般的なアプリケーシ
ョン1001は、フロア制御のインタフェースを提供す
るフロア・インタフェース・モジュール1002とそれ
以外のアプリケーション・プログラム本体1003に分
割できる。
【0106】本実施例におけるフロア・インタフェース
・モジュール1002は、Cプログラム言語で作成され
た後述する数個の関数とフロア・トリガ表1004が主
な構成要素である。フロア・インタフェース・モジュー
ル1002のサービスの利用において、実施例1ではア
プリケーション・プログラムの本体がFloorUnitに明示
的に要求をだすことによりフロアの制御をおこなってい
たが、本実施例では、これとは異なるフロア制御の利用
機構を提供する。
【0107】即ち、プログラマはフロア制御が必要な処
理を以下の型をもつ関数として、 typedef int (*operator_t)(); のように定義し、その関数を、フロア・インタフェース
・モジュール1002が提供する以下の関数でフロア・
インタフェース・モジュール1002に登録する。その
関数は、 int RegisterOperation(char* floorName, operator_t anOperation); で表される。ここでfloorNameは、登録されるanOperati
onが対象となるフロア制御におけるフロアにつけられた
名前である。RegisterOperation()で登録された、フロ
ア名floorNameと関数ポインタanOperationは、フロア・
トリガ表1004に追加される。この表の主キーは関数
ポインタanOperationの値(すなわちアドレス)である。
【0108】本実施例2では、RegisterOperation()で
登録された関数の呼び出し時に自動的にフロア制御をお
こない、呼び出された関数を実行する事が可能か否かを
決定する。ここでのべるインタフェースはもちろん実施
例1においても同様にして実現することが可能である。
【0109】登録された関数の呼び出し時に、フロア制
御を自動的に実行する機構の実現には以下の2通りの実
装方法が可能である。
【0110】1)フロア・インタフェース・モジュール
1002で以下の様な関数呼び出し専用の関数invoke()
を用意し、フロア制御を実行する関数は必ずinvoke()を
介して呼び出すことを義務づける。invoke()は、 void* invoke(operator_t anOperation, char* argDescription, ...); で表される。上記の定義においてanOperationは呼び出
される関数のアドレス、argDescriptionはanOperation
に渡される引数の型情報である。invoke()がanOperatio
nで指定された関数の実行前にフロア制御をおこない、
フロアが獲得できた時のみanOperationを実行する。
【0111】さらに、このinvoke()による関数呼び出し
を前処理系(プリプロセッサ)やマクロなどの従来技術を
もちいてプログラマが明示することなく自動生成させる
ことも可能である。
【0112】2)オペレーティングシステムあるいは、
オブジェクト指向データベースのクライアントライブラ
リなどが提供する関数呼び出しのトラップ機構を利用す
る。このトラップ機構はswizzlingやexception handlin
gなどの従来技術によって実現され、いくつかの商用シ
ステムでも利用可能である(swizzling, exception han
dlingについては、"Object data management: object-o
riented and extendedrelational database systems",
R.G.G. Cattell, Addison-Wesley, 1991.を参照の
事)。
【0113】本実施例2では以下、方式1)に基づいて
説明をおこなうが、この説明は方式2)においてもその
まま適用することができる。
【0114】次に図11をもちいてinvoke()によって開
始されるフロア制御の流れを説明する。図11は実施例
2のフロア制御を説明する図である。また図12は図1
1におけるアプリケーション1102の動作を表すフロ
ーチャートである。また、図13は図11におけるフロ
ア・サーバ1101の動作を表すフローチャートであ
る。また、図14は図11におけるフロア・ポリシー・
サーバ1103の動作を表すフローチャトである。
【0115】図11において、フロア・サーバ1101
とアプリケーション1102およびフロア・ポリシー・
サーバ1103が連係して動作している。アプリケーシ
ョン1102内のアプリケーション本体1104により
フロア・インタフェース・モジュール1105のinvoke
()関数が呼び出されると、フロア・インタフェース・モ
ジュール1105はinvoke()の引き数として指定された
関数のアドレスをキーとしてフロア・トリガ表1106
から関連づけられてるフロア実体名を取り出す(ステッ
プS1201)。そして、取り出されたフロア実体名が
示すフロアの取得要求1107をフロア・サーバ110
1に対して発行する(ステップS1202)。この後ア
プリケーション1102は結果が返されるまで待機する
(ステップS1203)。
【0116】フロア・サーバ1101がフロア取得要求
処理を実行した結果が返されると、ステップS1204
へ進む。フロア・インタフェース・モジュール1105
は、フロア獲得要求が許可されたならば、invoke()で指
定された関数anOperationを呼び出し、アプリケーショ
ン本体1104が指定した処理を実行する(ステップS
1205)。また、フロア獲得要求が拒否された場合
は、anOperationを呼び出すことなくinvoke()は処理を
終了する。
【0117】anOperation実行の終了後にさらにフロア
放棄要求に関する処理がおこなわれる。即ち、anOperat
ionの返り値がFALSEならばステップS1206からステ
ップS1207へ進み、フロア・インタフェース・モジ
ュール1105はフロア放棄要求をフロア・サーバ11
01に発行する。フロア放棄要求の処理の流れはフロア
獲得要求における処理とほぼ同じである。相違点につい
ては後述する。フロア放棄要求処理がすべて終了する
と、要求の可否にかかわらずinvoke()は処理を終了す
る。また、ステップS1206においてanOperationの
返り値がTRUEならば、invoke()はフロア放棄要求処理を
おこなわずに即座に処理を終了する。
【0118】次にフロア・サーバ1101が、アプリケ
ーション1102からステップS1202の処理によっ
て送られてきたフロア取得要求1107をどの様にして
処理するかについて図13のフローチャートに沿って説
明する。
【0119】フロア・サーバ1101はフロア取得要求
1107を受け取ると、フロア実体対応表1108から
指定されたフロア実体名をキーとしてタプルを取り出し
(ステップS1301)、そこからまず上位実体を抜き
出す(ステップS1302)。上位実体名に適当なフロ
ア実体名が指定されていた場合は、実施例1と同様に、
上位実体上でフロア操作権を獲得するために上位実体に
対してフロア操作権の獲得を要求する(ステップS13
03、S1304)。尚、フロア操作権の獲得のための
手続きはここで述べる処理(ステップS1301からS
1313)を、上位実体名が空値になっているフロア実
体が見つかるまで繰り返す。一方ステップS1303に
おいて、上位実体名に適当なフロア実体名が指定されて
おらず空値になっている場合はそのままステップ130
7へ進み、無条件にフロア操作権を獲得し処理を続行す
ることができる。
【0120】しかし上位実体でのフロア操作権の獲得に
失敗した場合はステップS1305からステップ130
6へ進み、結果をアプリケーション1102に通知し、
フロア・サーバ1101は処理を終了する。
【0121】さて、ステップS1303において上位実
体が指定されていなかったか、ステップS1305にお
いて上位実体名におけるフロア操作権が得られた場合
は、ステップS1307へ進み、タプルからフロア・ポ
リシー名を抜きだす。フロア・ポリシー名はさらにフロ
ア・ポリシー・サーバ表1109のキーとして使用さ
れ、フロア・ポリシー・サーバ1103との通信に必要
なポート番号やソケット等の情報を取り出す(ステップ
S1308)。この情報によりフロア・ポリシー・サー
バ1103との通信が可能になると、フロア・サーバ1
101はフロア実体名と上位実体名を付加してrequestF
loor要求1110をフロア・ポリシー・サーバ1103
に対して発行する(ステップS1309)。この後フロ
ア・サーバ1101は結果が返されるまで待機する(ス
テップS1310)。
【0122】フロア・ポリシー・サーバ1103がフロ
ア取得要求処理をおこなった結果が返されると処理はス
テップS1310からステップS1311へ進む。ステ
ップS1311において、フロア獲得要求がフロア・ポ
リシー・サーバ1103により許可された時は、フロア
実体対応表1108における上位実体中のフロア獲得者
名を、要求を発行したフロア実体名に変更する(ステッ
プS1312)。一方ステップS1311においてフロ
ア・ポリシー・サーバ1103による許可を得られなか
った場合は、フロア実体対応表1108の変更は発生し
ない。
【0123】以上のフロア・サーバ1101内での処理
が終了すると、結果1112はさらにアプリケーション
1102に転送される(ステップS1313)。転送さ
れた結果1112はフロア・インタフェース・モジュー
ル1105によって受け取られ、アプリケーション11
02においてステップS1204以下の処理が行われ
る。
【0124】最後にフロア・ポリシー・サーバ1103
におけるフロア取得要求処理について図14に従い説明
する。
【0125】フロア・ポリシー・サーバ1103は、ス
テップS1309でフロア・サーバ1101が発行した
requestFloor要求1110を適当なフロア制御ポリシー
に従い、その要求の可否を判断する(ステップS140
1)。フロア獲得要求の可否の判断の結果1111は、
フロア・サーバ1101に返される(ステップS140
2)。そして、結果1111はフロア・サーバ1101
に通知され、フロア・サーバ1101においてステップ
S1311以下の処理が続行される。
【0126】以上述べた様な、フロア・サーバ110
1、アプリケーション1102、及びフロア・ポリシー
・サーバ1103の連係により、フロア獲得要求が処理
される。前述した様にフロア放棄要求処理は、フロア・
サーバ1101とフロア・ポリシー・サーバ1103に
ついてはフロア獲得要求におけるrequestFloorメッセー
ジのかわりにreleaseFloorメッセージが使用される事を
のぞき、フロア獲得要求における処理とまったく同じで
ある。アプリケーション1102においては、図12に
おけるステップS1201からS1204までの処理を
実行することによりフロア放棄要求処理が行われる。
【0127】以上説明したように、実施例2はグループ
ウェア・システムにおけるフロア管理機構を実施例1と
は異なる構成で実現したものである。即ち、実施例2に
よれば、フロア実体対応表を管理するフロア・サーバ
と、フロア制御方式を規定するフロア・ポリシー・サー
バを導入し、フロア管理および制御に必要なリモート・
メッセージ・インタフェースを提供し、それをアプリケ
ーション・プログラムから利用可能にするフロア・イン
タフェース・モジュールを提供する。
【0128】そして、実施例2によれば、フロア関連情
報を表(テーブル)の形で管理する事により、フロア制御
に必要な情報の操作にリレーショナル代数などの体系を
利用することが可能となり、データの正当性および一貫
性などの管理が容易になるという効果がある。
【0129】また、本実施例ではアプリケーション・プ
ログラムからフロア制御機構をinvoke()関数により隠蔽
することができるため、アプリケーション開発者の負担
を軽減し既存のプログラムへのフロア管理機構の組み込
みが容易になるという効果をもつ。
【0130】尚、本発明は、複数の機器から構成される
システムに適用しても1つの機器からなる装置に適用し
ても良い。また、本発明はシステム或いは装置に本発明
により規定される処理を実行させるプログラムを供給す
ることによって達成される場合にも適用できることはい
うまでもない。
【0131】
【発明の効果】以上説明したように本発明によれば、 (1)異なるアプリケーション間で共有可能で、かつ個
々のアプリケーションのフロア・モデルに対応可能な柔
軟性を持つフロア管理方式を提供することができる. (2)フロア空間が複雑な階層構造を構成するようなア
プリケーション環境に対応可能なフロア管理方式を提供
することができる. (3)アプリケーションの起動・終了などによる動的な
フロア空間の構成の変化にも対応可能な、柔軟なフロア
管理方式を提供することができる. (4)以上の効果をアプリケーション開発者に負担を与
えることなく実現することができる. という効果を得ることができる。
【0132】
【図面の簡単な説明】
【図1】実施例1の協調型グループウェアシステムにお
けるフロア管理機構の構成を表す図である。
【図2】本実施例におけるフロア制御モデルの概要を説
明するための概念図である。
【図3】図2で示したフロア制御モデルの、本実施例に
おける実現方法を説明する図である。
【図4】本実施例におけるFloorUnitとFloorSpaceの階
層構造を表す図である。
【図5】本実施例によるフロア制御を説明する図であ
る。
【図6】FloorUnitにおけるフロア制御を表すフローチ
ャートである。
【図7】FloorSpaceにおけるフロア制御を表すフローチ
ャートである。
【図8】実施例2のグループウェアシステムにおけるフ
ロア管理機構の構成を表す図である。
【図9】フロア・サーバの内部構造を表す図である。
【図10】アプリケーション内におけるフロア・インタ
フェース・モジュールの概要をあらわす図である。
【図11】実施例2のフロア制御を説明する図である。
【図12】図11におけるアプリケーション1102の
動作を表すフローチャートである。
【図13】図11におけるフロア・サーバ1101の動
作を表すフローチャートである。
【図14】図11におけるフロア・ポリシー・サーバ1
103の動作を表すフローチャトである。
【符号の説明】
101、201、202 ワークステーション 102 CPU 103 主記憶 104 ディスプレイ 105 計算機バス 106 オブジェクト指向データベース 107、203 イーサネットケーブル 108 フロア情報 109 フロア・ポリシー情報 110、204、205 アプリケーション 111、206、207 フロア単位表現(FloorUni
t) 112、208 フロア空間表現(FloorSpace) 113、209 フロア・ポリシー表現(FloorPolic
y) 114 フロア・ポリシー実行モジュール

Claims (10)

    【特許請求の範囲】
  1. 【請求項1】 1台以上のコンピュータによって構成さ
    れる作業環境において動作するアプリケーション群の発
    言権を管理する情報処理装置であって、 発言権制御の対象であるアプリケーションを表現するユ
    ニットデータを管理する第1管理手段と、 前記ユニットデータが属する集合を表現するフロアデー
    タを管理する第2管理手段と、 前記アプリケーションよりの要求に応じて、対応するユ
    ニットデータが属するフロアデータにおける当該アプリ
    ケーションの発言権を該フロアデータに規定された手順
    で獲得する獲得手段とを備えることを特徴とする情報処
    理装置。
  2. 【請求項2】 前記ユニットデータの構成及び前記フロ
    アデータの構造を任意に変更する変更手段を更に備える
    ことを特徴とする請求項1に記載の情報処理装置。
  3. 【請求項3】 前記第1及び第2管理手段は、前記ユニ
    ットデータの構成及びフロアデータの構造をデータの階
    層構造として管理することを特徴とする請求項1に記載
    の情報処理装置。
  4. 【請求項4】 前記第1及び第2管理手段は、前記ユニ
    ットデータの構成及びフロアデータの構造を、データの
    関連をあらわす表を用いて表現することを特徴とする請
    求項1に記載の情報処理装置。
  5. 【請求項5】 前記獲得手段における規定された手順
    は、複数のアプリケーション間で共有可能であることを
    特徴とする請求項1に記載の情報処理装置。
  6. 【請求項6】 前記獲得手段における規定された手順
    は、独立したサーバ・プログラムとして管理されること
    を特徴とする請求項1に記載の情報処理装置。
  7. 【請求項7】 前記獲得手段における規定された手順を
    任意に変更する変更手段を更に備えることを特徴とする
    請求項1に記載の情報処理装置。
  8. 【請求項8】 前記アプリケーションと前記ユニットデ
    ータの対応関係を管理する第3管理手段を更に備えるこ
    とを特徴とする請求項1に記載の情報処理装置。
  9. 【請求項9】 前記対応関係に基づいて、前記アプリケ
    ーションにおける発言権制御処理を自動的に起動する起
    動手段を更に備えることを特徴とする請求項8に記載の
    情報処理装置。
  10. 【請求項10】 1台以上のコンピュータによって構成
    される作業環境において動作するアプリケーション群の
    発言権を管理する情報処理装置であって、 発言権制御の対象であるアプリケーションを表現するユ
    ニットデータを管理する第1管理工程と、 前記ユニットデータが属する集合を表現するフロアデー
    タを管理する第2管理工程と、 前記アプリケーションよりの要求に応じて、対応するユ
    ニットデータが属するフロアデータにおける当該アプリ
    ケーションの発言権を該フロアデータに規定された手順
    で獲得する獲得工程とを備えることを特徴とする情報処
    理方法。
JP7073186A 1995-03-30 1995-03-30 情報処理方法及び装置 Withdrawn JPH08272744A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP7073186A JPH08272744A (ja) 1995-03-30 1995-03-30 情報処理方法及び装置
US08/623,303 US5937166A (en) 1995-03-30 1996-03-28 Method and apparatus for information processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7073186A JPH08272744A (ja) 1995-03-30 1995-03-30 情報処理方法及び装置

Publications (1)

Publication Number Publication Date
JPH08272744A true JPH08272744A (ja) 1996-10-18

Family

ID=13510867

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7073186A Withdrawn JPH08272744A (ja) 1995-03-30 1995-03-30 情報処理方法及び装置

Country Status (2)

Country Link
US (1) US5937166A (ja)
JP (1) JPH08272744A (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0934843A (ja) 1995-07-18 1997-02-07 Canon Inc 処理システム及び処理装置
JPH09269931A (ja) * 1996-01-30 1997-10-14 Canon Inc 協調作業環境構築システム、その方法及び媒体
US20020053000A1 (en) * 2000-11-02 2002-05-02 Masanori Wakai Information processing apparatus and method, and computer readable memory
JP2002140221A (ja) * 2000-11-02 2002-05-17 Canon Inc 情報処理装置、情報処理方法、及び、記憶媒体
JP2002140193A (ja) * 2000-11-02 2002-05-17 Canon Inc 情報処理装置及びその方法、コンピュータ可読メモリ
US7691475B2 (en) * 2006-07-21 2010-04-06 3M Innovative Properties Company Anisotropic conductive adhesives
JP2010539293A (ja) * 2007-09-13 2010-12-16 スリーエム イノベイティブ プロパティズ カンパニー 低温結合電子接着剤

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69132012T2 (de) * 1990-10-16 2000-11-16 Consilium Inc Objektorientierte architektur für fabrikverwaltung
US5392400A (en) * 1992-07-02 1995-02-21 International Business Machines Corporation Collaborative computing system using pseudo server process to allow input from different server processes individually and sequence number map for maintaining received data sequence
US5689641A (en) * 1993-10-01 1997-11-18 Vicor, Inc. Multimedia collaboration system arrangement for routing compressed AV signal through a participant site without decompressing the AV signal
US5557725A (en) * 1995-02-13 1996-09-17 International Business Machines Corporation Method and system for switching between users in a conference enabled application

Also Published As

Publication number Publication date
US5937166A (en) 1999-08-10

Similar Documents

Publication Publication Date Title
US5915113A (en) Visual application partitioning for creating distributed object oriented applications
JP3605416B2 (ja) クライアント−サーバ環境用ブリッジ
US6263498B1 (en) Method and apparatus for enabling server side distributed object modification
US5586312A (en) Method and apparatus for using an independent transaction processing application as a service routine
US6463446B1 (en) Method and apparatus for transporting behavior in an event-based distributed system
US6148323A (en) System and method for managing the execution of system management
US5949998A (en) Filtering an object interface definition to determine services needed and provided
US6434594B1 (en) Virtual processing network enabler
EP1437656A2 (en) System and method for distributed multimodal collaboration using a tuple-space
US20060184535A1 (en) Suspension and resuming of sessions
EP0707265A2 (en) A system and method for creating an object oriented transaction service that interoperates with procedural transaction coordinators
JP2001522086A (ja) 宣言型パラダイムをサポートするステートレスなウェブ環境におけるトランザクションを実行するための方法および装置
US6353859B1 (en) Object-oriented apparatus and method for controlling accesses to objects in a distributed object environment
JPH11242605A (ja) マルチスレッドのクライアント・ベースapiをシングルスレッドのサーバ・ベースapiにインタフェースさせる方法、装置、およびプログラム製品
JP2002505466A (ja) 遠隔メソッド呼出し方法及び装置
JPH06332870A (ja) オブジェクト指向コンピュータ環境における協調処理のためのオブジェクト・マネージャをリンクする方法及び装置
US6330711B1 (en) Method and apparatus for dynamic application and maintenance of programs
US6138169A (en) System and method for creating an object oriented transaction service that achieves interoperability with encina procedural transactions
US20020042814A1 (en) Processing common work using flexible command strings
JP2002505553A (ja) 多様性トークン・ベース・コントロール
JPH08272744A (ja) 情報処理方法及び装置
US7765561B1 (en) Dynamically sizing a collaboration of concurrent computing workers based on user inputs
US7010793B1 (en) Providing an exclusive view of a shared resource
US8676842B2 (en) Creating multiple Mbeans from a factory Mbean
US6308226B1 (en) Communication method and system for objects movable in network

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20020604