(*1) Object
5.1 グループスケジューラ
この章では、ディスコネクティッドオペレーションをサポートするツールキットを利用 したアプリケーションの一例として、グループスケジューラについて説明する。
5.1.1
グループスケジューラの概要
図5.1は、ある会社の営業部で部員及び部全体の予定を管理するスケジューラの構成を 示している。この図では部員Aが自分の移動計算機上にサーバアプリケーションの複製を 保持し、社外でディスコネクティッドオペレーションを実行している。部長及び他の部員 は、社内でオリジナルのサーバアプリケーションをアクセスしている。
図 5.2は、CUIのクライアントアプリケーションを用いて営業部、及び部員のスケ ジュールを実際に表示したものである。
このグループスケジューラは、サーバの部分はC++、クライアントの部分やIPCな どはC言語により実装されている。1つのスケジュールイベントがC++の1つのオブ ジェクトに対応し、オブジェクトを識別するためのオブジェクトID(例:[oid =16])が 各スケジュールイベントごとに割り当てられている。また、図5.2の表示例では、各個人 のスケジュールにグループ全体のスケジュールが含まれていないが、これは各スケジュー ルイベントのオブジェクトを簡単に出力しているためである。グループのスケジュールと
Mobile Client for StaffA Server of Sales Dept.
StaffA Chief
StaffB StaffC object for schedule dept.
chief staffA staffB staffC (original)
chief staffA staffB staffC dept.
object for schedule
(duplicated)
図5.1: グループスケジューラの構成
command : sas
=== ShowAllSchedule ===
Input group name =>SalesDept
=== schedule : "SalesDept" group ===
MeetingA < 1> [oid = 16] at 1998/02/09/13:00 for 1hour(s) MeetingB < 2> [oid = 15] at 1998/02/12/10:00 for 2hour(s) === schedule : "Chief" of "SalesDept" group ===
CustomerA < 7> [oid = 17] at 1998/02/09/15:00 for 2hour(s) HeadQuater<15> [oid = 18] at 1998/02/10/13:00 for 5hour(s) MeetingC < 3> [oid = 19] at 1998/02/13/09:00 for 1hour(s) === schedule : "StaffA" of "SalesDept" group ===
CustomerB < 8> [oid = 20] at 1998/02/12/13:00 for 3hour(s) == schedule : "StaffB" of "SalesDept" group ===
CustomerC < 9> [oid = 22] at 1998/02/09/14:00 for 2hour(s) CompanyC < 6> [oid = 21] at 1998/02/13/09:00 for 3hour(s) == schedule : "StaffC" of "SalesDept" group ===
BankA <10> [oid = 23] at 1998/02/10/10:00 for 2hour(s) command :
図5.2: グループスケジューラの表示例
5.1.2
トレード オフの考慮例
ここでは前記のグループスケジューラを用いて、通信コストと一貫性のトレードオフを ユーザが考慮することの有効例を示す。
部員Aは出張の際、サーバにあるスケジューラを自分の移動計算機に複製としてダウ ンロードし、営業部のネットワークとの接続を切る。出張先で自分のスケジュールを変更 する際、その更新が他の部員に影響を与えないならば、営業部のネットワークにすぐに接 続する必要はない。帰社してからその更新をオリジナルのサーバに反映させればよい。こ のような場合、自分のスケジュールに対しては一貫性よりも通信コストを優先する設定を 行なうことができる。これにより一貫性は帰社するまで回復されないが、ユーザの要求に 従った通信コストの削減が実現される。
また、彼が出張先で営業部全体の会議を開きたいと考えた場合、スケジュールの変更が 即座にオリジナルのサーバ側に反映されないと、その間に他の部員がその日時に別の予定 を入れてしまう可能性がある。そのため、高い通信料を払ってでもすぐに営業部のネット ワークに接続する必要がある。このような場合、部全体のスケジュールに対しては、通信 コストよりも一貫性を優先する設定を行なうことができる。これにより通信コストは高く なるが、ユーザの要求に従った一貫性の維持が保証される。