以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態のコミュニケーション制御システムを示す図である。
第1の実施の形態のコミュニケーション制御システム10は、ユーザ2a,2bを含む複数のユーザの間のコミュニケーションを制御する。コミュニケーションの方法としては、面談・内線電話・テレビ会議・チャットなどのリアルタイム性の高いコミュニケーション方法と、電子メール・組織内サイトへの記事投稿などのリアルタイム性の低いコミュニケーション方法とが挙げられる。コミュニケーション制御システム10は、例えば、ユーザ2aがユーザ2bに、ユーザ2aの業務に関して問い合わせを行いたいとき、複数のコミュニケーション方法の中から適切なコミュニケーション方法を選択する。
コミュニケーション制御システム10は、1または2以上のコンピュータを用いて実現できる。コミュニケーション制御システム10は、取得部11、記憶部12および制御部13を有する。取得部11と記憶部12と制御部13は、同じコンピュータが有してもよいし、異なるコンピュータが有してもよい。後者の場合、複数のコンピュータがネットワークを介して通信する。取得部11は、例えば、通信インタフェースまたはユーザ2aからの入力を受け付ける入力インタフェースとして実現できる。記憶部12は、例えば、RAM(Random Access Memory)などの揮発性記憶装置、または、HDD(Hard Disk Drive)やフラッシュメモリなどの不揮発性の記憶装置として実現できる。
制御部13は、例えば、プロセッサを用いて実現できる。プロセッサは、CPU(Central Processing Unit)やDSP(Digital Signal Processor)であってもよい。また、プロセッサは、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの特定用途の電子回路を含んでもよい。プロセッサは、例えば、RAMなどのメモリに記憶されたプログラムを実行する。複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼ぶこともある。
ここで、取得部11は、ユーザ2aが作成している作成中データ11aを取得する。作成中データ11aは、未完成のものであってもよい。作成中データ11aは、例えば、次回の会議で使用する資料であって、ワープロソフトなどを用いて作成されるものである。取得部11は、ユーザ2aが使用する端末装置から、ネットワークを介して作成中データ11aを受信してもよい。記憶部12は、ユーザ2aのデータ作成業務(例えば、会議資料の準備)の期限を示すスケジュール情報12aを記憶する。
制御部13は、作成中データ11aに基づいて、ユーザ2aのデータ作成業務の進行状況を算出する。進行状況は、作成中データ11aの現在の完成度を含んでもよい。完成度は、例えば、作成中データ11aの現在のデータ量と完成時のデータ量の予測値とから算出される。データ量は、文字数・行数・ページ数などの任意の単位で測定できる。完成時のデータ量の予測値は、例えば、過去に作成されたデータを参考にして算出される。また、進行状況は、ユーザ2aの現在のデータ作成速度を含んでもよい。データ作成速度は、例えば、作成中データ11aのデータ量の時間変化から算出される。データ作成速度は、単位時間当たりの文字数、行数またはページ数の増加量であってもよい。
また、制御部13は、記憶部12に記憶されたスケジュール情報12aに基づいて、現在からユーザ2aのデータ作成業務の期限までの近さに応じた期限状況を算出する。期限状況は、データ作成業務の開始から期限までの総時間に対する、残り時間(現在から期限までの時間)の割合を示していてもよい。そして、制御部13は、算出した進行状況と期限状況とから、ユーザ2aのデータ作成業務の現在の優先度を算出する。
現在の優先度は、データ作成業務の進行や時間の経過に伴って変化し得る。例えば、作成中データ11aの完成度が低いほど優先度が高くなり、完成度が高いほど優先度が低くなる。また、例えば、ユーザ2aのデータ作成速度が遅いほど優先度が高くなり、データ作成速度が速いほど優先度が低くなる。また、例えば、期限までの残り時間が少ないほど優先度が高くなり、残り時間が多いほど優先度が低くなる。
ユーザ2aがユーザ2a自身のデータ作成業務についてユーザ2bに対して問い合わせを行いたいとき、制御部13は、そのデータ作成業務の現在の優先度に応じて、ユーザ2aとユーザ2bとの間で行われるコミュニケーションを制御する。
例えば、制御部13は、現在の優先度が閾値以上であるとき、内線電話などリアルタイム性の高いコミュニケーション方法を用いるよう、ユーザ2a,2bの少なくとも一方に対応する端末装置に対して通知する。これは、リアルタイム性の高いコミュニケーション方法はユーザ2bの負担が大きい一方、ユーザ2aのデータ作成業務を迅速に支援することが全体の業務効率の向上に寄与すると考えられるためである。
一方、例えば、制御部13は、現在の優先度が閾値未満であるとき、電子メールなどリアルタイム性の低いコミュニケーション方法を用いるよう、ユーザ2a,2bの少なくとも一方に対応する端末装置に対して通知する。これは、ユーザ2aのデータ作成業務の支援が遅れても、ユーザ2bの業務の中断を抑制してユーザ2bの負担を軽減した方が全体の業務効率の向上に寄与すると考えられるためである。このように、データ作成業務の進行状況や期限状況に応じて、適切なコミュニケーション方法を選択することができる。
第1の実施の形態のコミュニケーション制御システム10によれば、作成中データ11aに基づいて、ユーザ2aのデータ作成業務の進行状況が算出され、スケジュール情報12aに基づいて、データ作成業務の期限状況が算出される。そして、進行状況と期限状況からデータ作成業務の現在の優先度が算出され、現在の優先度に応じてユーザ2aとユーザ2bとの間のコミュニケーションが制御される。これにより、時間の経過に応じて変化する進行状況や期限状況が考慮され、データ作成業務の優先度の判定精度が向上する。その結果、ユーザ2aの業務とユーザ2bの業務とを含む全体の業務効率が一層向上するように、ユーザ2aとユーザ2bの間のコミュニケーションを制御することができる。
[第2の実施の形態]
図2は、第2の実施の形態の情報処理システムを示す図である。
第2の実施の形態の情報処理システムは、管理サーバ100、クライアント210,220,230、データベース(DB:Database)サーバ240およびメールサーバ250を含む。管理サーバ100、クライアント210,220,230、DBサーバ240およびメールサーバ250は、ネットワーク20に接続されている。また、第2の実施の形態の情報処理システムは、電話機31,32,33を含む。
ユーザ41,42,43を含む複数のユーザは、この情報処理システムを使用する組織に属する。例えば、複数のユーザは、同じ企業の従業員である。ユーザ41は、クライアント210および電話機31を使用する。ユーザ42は、クライアント220および電話機32を使用する。ユーザ43は、クライアント230および電話機33を使用する。
管理サーバ100は、ユーザ41,42,43を含む複数のユーザの間のコミュニケーションを支援するサーバコンピュータである。管理サーバ100は、あるユーザが自身の業務について他のユーザと相談したいとき、相談相手のユーザの負担が軽減されるよう、コールバック方式のコミュニケーション方法を提供する。
コールバック方式では、管理サーバ100は、あるユーザから支援要請があると、当該ユーザの業務に詳しい相談相手を決定し、決定した相談相手に対してコールバックを依頼する。あるユーザがコールバック依頼を受け付けると、管理サーバ100は、支援要請を出したユーザの業務の現在の優先度を算出し、優先度に応じてコミュニケーション方法として電話または電子メールを選択する。管理サーバ100は、選択したコミュニケーション方法でコールバックを行うようコールバック依頼を受け付けたユーザに指示する。
第2の実施の形態では、主にユーザ41が会議資料の作成について支援要請を行い、ユーザ42が相談相手となる場合を考える。よって、ユーザ42は、コールバックを行う時点のユーザ41の業務の優先度に応じて、ユーザ41の使用する電話機31に対して電話をかけるか、または、ユーザ41宛ての電子メールを作成する。なお、第2の実施の形態では、管理サーバ100からの指示に応じて、支援要請を出したユーザに電話をかけることや支援要請を出したユーザ宛てに電子メールを送信することを、コールバックと呼ぶ。ただし、ユーザ41の業務の優先度に応じて、面談・テレビ会議・チャット・組織内サイトへの記事投稿など、他のコミュニケーション方法が選択されるようにしてもよい。
クライアント210,220,230は、端末装置としてのクライアントコンピュータである。クライアント210,220,230は、会議資料の作成などの業務に使用され得る。例えば、クライアント210,220,230には、ワープロソフトやプレゼンテーションソフトなどのアプリケーションソフトウェアが搭載されている。また、クライアント210,220,230には、管理サーバ100と連携して他のユーザとのコミュニケーションを支援する業務支援ソフトウェアが搭載されている。
ユーザ41が他のユーザと相談したい場合、ユーザ41の操作に応じて、クライアント210は、業務支援ソフトウェアの中の支援要請モジュールを起動する。すると、クライアント210は、管理サーバ100に対して支援要請を送信する。これにより、適切な相談相手が選択され、管理サーバ100からその相談相手が使用するクライアント(例えば、ユーザ42のクライアント220)に対してコールバック依頼が送信される。クライアント220,230でも、支援要請モジュールが起動され得る。
クライアント220は、業務支援ソフトウェアの中の依頼受付モジュールを実行している。クライアント220は、管理サーバ100からコールバック依頼を受信すると依頼内容を表示する。ユーザ42がコールバック依頼を受け付ける操作を行うと、クライアント220は、管理サーバ100に受付通知を送信する。クライアント220は、受付通知の後に管理サーバ100からコールバック指示を受信すると、コールバック方法の表示などを行う。クライアント210,230でも、依頼受付モジュールが実行されている。
DBサーバ240は、データベースを管理するサーバコンピュータである。データベースには、ユーザ41,42,43のプロファイル、ユーザ41,42,43のスケジュール、過去に会議で使用された文書や作成中の文書などが登録されている。DBサーバ240は、管理サーバ100からの読み取り要求に応じて、指定されたデータを管理サーバ100に送信する。また、DBサーバ240は、管理サーバ100からの書き込み要求に応じて、管理サーバ100から受信したデータを保存する。
メールサーバ250は、電子メールを転送するサーバコンピュータである。メールサーバ250は、クライアント210,220,230が送信した電子メールを受信すると、電子メールの宛先に応じて、受信した電子メールをメールサーバ250のメールボックスに格納するか、または、他のメールサーバに転送する。また、メールサーバ250は、クライアント210,220,230からメール取得要求を受信すると、要求者であるユーザに対応するメールボックスから電子メールを読み出して送信する。
図3は、管理サーバのハードウェア例を示すブロック図である。
管理サーバ100は、CPU101、RAM102、HDD103、画像信号処理部104、入力信号処理部105、媒体リーダ106および通信インタフェース107を有する。上記のユニットは、それぞれバス108に接続されている。
CPU101は、プログラムの命令を実行する演算回路を含むプロセッサである。CPU101は、HDD103に記憶されたプログラムやデータの少なくとも一部をRAM102にロードし、プログラムを実行する。なお、CPU101は複数のプロセッサコアを備えてもよく、管理サーバ100は複数のプロセッサを備えてもよく、以下で説明する処理を複数のプロセッサまたはプロセッサコアを用いて並列に実行してもよい。また、複数のプロセッサの集合(マルチプロセッサ)を「プロセッサ」と呼んでもよい。
RAM102は、CPU101が実行するプログラムやCPU101が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、管理サーバ100は、RAM以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
HDD103は、OS(Operating System)やミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。プログラムには、コミュニケーションを制御するプログラムが含まれる。なお、管理サーバ100は、フラッシュメモリやSSD(Solid State Drive)などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
画像信号処理部104は、CPU101からの命令に従って、管理サーバ100に接続されたディスプレイ111に画像を出力する。ディスプレイ111としては、CRT(Cathode Ray Tube)ディスプレイ、液晶ディスプレイ(LCD:Liquid Crystal Display)、プラズマディスプレイ(PDP:Plasma Display Panel)、有機EL(OEL:Organic Electro-Luminescence)ディスプレイなどを用いることができる。
入力信号処理部105は、管理サーバ100に接続された入力デバイス112から入力信号を取得し、CPU101に出力する。入力デバイス112としては、マウスやタッチパネルやタッチパッドやトラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、管理サーバ100に、複数の種類の入力デバイスが接続されていてもよい。
媒体リーダ106は、記録媒体113に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体113として、例えば、フレキシブルディスク(FD:Flexible Disk)やHDDなどの磁気ディスク、CD(Compact Disc)やDVD(Digital Versatile Disc)などの光ディスク、光磁気ディスク(MO:Magneto-Optical disk)、半導体メモリなどを使用できる。媒体リーダ106は、例えば、記録媒体113から読み取ったプログラムやデータをRAM102またはHDD103に格納する。
通信インタフェース107は、ネットワーク20に接続され、クライアント210,220,230やDBサーバ240と通信を行う。通信インタフェース107は、スイッチなどの通信装置とケーブルで接続される有線通信インタフェースでもよいし、基地局またはアクセスポイントと無線リンクで接続される無線通信インタフェースでもよい。
なお、管理サーバ100は、媒体リーダ106を備えていなくてもよく、ユーザが操作する端末装置から制御可能である場合には画像信号処理部104や入力信号処理部105を備えていなくてもよい。また、ディスプレイ111や入力デバイス112が、管理サーバ100の筐体と一体に形成されていてもよい。クライアント210,220,230、DBサーバ240およびメールサーバ250も、管理サーバ100と同様のハードウェア構成によって実現することができる。
次に、ユーザ41が会議資料の作成について支援要請を行い、支援要請を受けてユーザ42がユーザ41に対してコールバックを行う流れについて説明する。
図4は、文書作成支援の流れの例を示すシーケンス図である。
クライアント210は、ユーザ41の操作に応じて、業務支援ソフトウェアの中の支援要請モジュールを起動する。すると、クライアント210は、管理サーバ100に対して支援要請を送信する。このとき、クライアント210は、ユーザ41がクライアント210を用いて作成している会議資料である作成中文書を、管理サーバ100に送信する(S10)。作成中文書は、例えば、テキストエディタで作成したテキスト、ワープロソフトで作成した文書、プレゼンテーションソフトで作成した発表スライドなどである。また、クライアント210は、作成中文書と併せて、作成中文書を使用する会議を特定する情報(例えば、会議の名称や予定日時など)を管理サーバ100に送信してもよい。
管理サーバ100は、クライアント210から支援要請を受信すると、クライアント210から受信した作成中文書に基づいて、ユーザ41の会議資料作成業務の初期優先度を算出する(S11)。初期優先度は、例えば、作成中文書の内容、会議テーマ、会議参加者などに基づいて算出される。会議テーマや会議参加者など会議についての情報は、DBサーバ240に登録されたスケジュール情報から検索できる。また、管理サーバ100は、受信した作成中文書に基づいて、ユーザ41の相談相手を選択する(S12)。相談相手としては、作成中文書の技術分野について詳しいユーザを選択することが考えられる。各ユーザのスキルは、DBサーバ240に登録されたスキル情報から検索できる。
ここでは、ユーザ41の相談相手としてユーザ42が選択されたとする。すると、管理サーバ100は、クライアント220にコールバック依頼を送信する(S13)。コールバック依頼には、ユーザ41の名前、作成中文書のファイル名や完成度など、ユーザ41を支援するか否か判断するのに参考となる情報が含まれる。クライアント220のアドレスは、例えば、業務支援ソフトウェアの中の依頼受付モジュールがクライアント220で起動したときに、クライアント220から通知されて管理サーバ100に登録される。
ユーザ42からコールバックがない場合、クライアント210は、所定の周期(例えば、1時間周期)で現在の作成中文書を管理サーバ100に送信する(S14)。このとき送信する作成中文書の完成度は、時間の経過に伴い、上記のステップS10で送信した作成中文書の完成度よりも高くなっていると期待される。管理サーバ100は、クライアント210から最新の作成中文書を受信すると、受信した作成中文書に基づいて、ユーザ41の会議資料作成業務の現在の優先度を算出する(S15)。優先度は、(1)作成中文書の完成度、(2)作成中文書についてのユーザ41の入力速度、(3)会議資料作成業務の残り時間度、の3つのパラメータを用いて算出できる。
完成度は、完成時のページ数(または、行数や文字数など)の見積もりに対する作成中文書の現在のページ数(または、行数や文字数など)として算出できる。完成時のページ数は、DBサーバ240に蓄積された過去の類似する会議の文書を参照して推定できる。入力速度は、今回受信した作成中文書の文字数と前回(例えば、1時間前)受信した作成中文書の文字数との差として算出できる。残り時間度は、クライアント210が最初に作成中文書を送信した時刻から会議開始時刻までの時間(総業務時間)に対する、現在から会議開始時刻までの時間(残り時間)の割合として算出できる。会議開始時刻は、DBサーバ240に登録されたスケジュール情報から検索できる。
優先度は、時間の経過に応じて変化する。作成中文書の完成度が小さいほど優先度は高くなり、完成度が大きいほど優先度は低くなる。また、ユーザ41の入力速度が小さい(ユーザ41の作業が停滞している)ほど優先度は高くなり、入力速度が大きい(ユーザ41の作業が順調に進行している)ほど優先度は低くなる。また、会議資料作成業務の残り時間度が小さい(期限までの残り時間が少ない)ほど優先度は高くなり、残り時間度が大きい(期限までの残り時間が多い)ほど優先度は低くなる。
また、管理サーバ100は、上記のステップS12と同様にしてユーザ41の相談相手を選択する(S16)。選択される相談相手は、ステップS12と同じでもよいし異なってもよい。ここでは、ユーザ42が再び選択されたとする。すると、管理サーバ100は、クライアント220にコールバック依頼を送信する(S17)。
コールバック依頼を受信すると、クライアント220は、コールバック依頼に含まれる内容(ユーザ41の名前、作成中文書のファイル名や完成度など)を表示する。その表示を見てユーザ42がコールバック依頼を受け付ける操作を行うと、クライアント220は、受付通知を管理サーバ100に送信する(S18)。管理サーバ100は、上記のステップS15と同様の方法で、ユーザ41の会議資料作成業務の現在の優先度を再算出する(S19)。これは、コールバック依頼を送信した時点から受付通知を受信した時点までの間に、優先度が変化している可能性があるためである。現在の優先度は、クライアント210から最後に受信した作成中文書に関する情報に基づいて算出される。
管理サーバ100は、現在の優先度に応じて、ユーザ42のコールバックの方法を選択する(S20)。例えば、管理サーバ100は、優先度が閾値以上である(優先度が高い)ときは、リアルタイム性の高い電話を選択し、優先度が閾値未満である(優先度が低い)ときは、リアルタイム性の低い電子メールを選択する。そして、管理サーバ100は、コールバック指示をクライアント220に送信する(S21)。コールバック指示には、ステップS19で選択したコールバック方法を示す情報が含まれる。例えば、コールバック方法が電話である場合は、電話機31の電話番号が提供される。コールバック方法が電子メールである場合は、ユーザ41の電子メールアドレスが提供される。電話番号や電子メールアドレスは、DBサーバ240に登録されたユーザプロファイルから検索できる。
クライアント220は、電話によるコールバックを示すコールバック指示を受信すると、ユーザ41の電話番号を表示する(S22a)。これにより、ユーザ42はユーザ41に電話をかけて、ユーザ41の会議資料作成業務を支援することができる。また、クライアント220は、電子メールによるコールバックを示すコールバック指示を受信すると、ユーザ41の電子メールアドレスを宛先とする電子メールの作成ウィンドウを表示する(S22b)。この作成ウィンドウは、例えば、クライアント220に搭載された電子メールソフトウェアを起動することで実現できる。ユーザ42は、電子メール本文を作成して送信操作を行うことで、ユーザ41の会議資料作成業務を支援することができる。
なお、上記では、クライアント210が業務支援ソフトウェアの中の支援要請モジュールを起動したときに、支援要請が送信されることとした。これに対し、ユーザ41が業務支援ソフトウェア上で明示的に支援要請の操作を行ったときに、支援要請が送信されるようにしてもよい。また、上記では、一定周期(例えば、1時間周期)で作成中文書が管理サーバ100に到着する毎に、1以上のユーザに対してコールバック依頼が送信されることとした。これに対し、ステップS13で1以上のユーザに対してコールバック依頼を送信済みであれば、以降はステップS13のコールバック依頼に対する応答を待つこととし、ステップS17でコールバック依頼を送信しないようにしてもよい。
次に、第2の実施の形態の情報処理システムの機能について説明する。
図5は、情報処理システムの機能例を示すブロック図である。
管理サーバ100は、通信部110、優先度算出部120、コールバック依頼部130および制御情報記憶部140を有する。通信部110、優先度算出部120およびコールバック依頼部130は、例えば、CPU101が実行するコミュニケーション制御プログラムのモジュールとして実装できる。制御情報記憶部140は、例えば、RAM102またはHDD103に確保した記憶領域として実装できる。
通信部110は、通信インタフェース107を介してクライアント210,220,230にメッセージを送信する。例えば、通信部110は、コールバック依頼部130からの指示に応じて、コールバック依頼やコールバック指示を送信する。また、通信部110は、通信インタフェース107を介してクライアント210,220,230からメッセージを受信する。例えば、通信部110は、支援要請や作成中文書を受信し、受信した支援要請や作成中文書を優先度算出部120に渡す。また、例えば、通信部110は、コールバック依頼に対する受付通知を受信し、受付通知をコールバック依頼部130に渡す。
優先度算出部120は、最初にクライアント210からの作成中文書を取得したとき、ユーザ41の会議資料作成業務の初期優先度を算出する。また、優先度算出部120は、クライアント210からの作成中文書を2回目以降に取得したときや、コールバック依頼部130から要求があったとき、ユーザ41の会議資料作成業務の現在の優先度を算出する。支援要請を出した他のユーザについても、初期優先度や現在の優先度が算出される。
初期優先度は、会議テーマや会議参加者など、会議資料作成業務の間に変化しない静的情報から算出することができる。算出方法の1つの例として、特定の会議テーマや特定の役職に対して正のポイントを付与しておく。優先度算出部120は、ユーザ41から支援要請を取得すると、ユーザ41が準備している会議のテーマや参加者をDBサーバ240から検索する。例えば、支援要請に会議を特定する情報(例えば、スケジュールID、会議名、会議日時、それらの組み合わせなど)が含まれる場合、優先度算出部120は、その情報を用いて会議を特定して会議テーマや会議参加者を検索する。また、優先度算出部120は、支援要請に含まれるユーザ41のユーザ名から、ユーザ41が参加予定の次の会議を検索してユーザ41が準備している会議であると推定してもよい。
そして、優先度算出部120は、ユーザ41が準備している会議について、会議テーマや会議参加者の役職のポイントを合計して初期優先度とする。例えば、事業部全体の打合せに対してポイント2、役員1人の参加に対してポイント1が付与されているとする。ユーザ41が準備している会議が、事業部全体の打合せであり役員が3人参加予定であるとすると、優先度算出部120は、初期優先度=5と算出する。
または、算出方法の他の例として、会議テーマや役職などに対して正または負のポイントを付与しておく。そして、優先度算出部120は、所定の基準値に対して会議テーマや会議参加者の役職に応じてポイントを加減して、初期優先度とする。例えば、初期優先度の基準値=5であり、事業部全体の打合せでも国家プロジェクトの打合せでもない非重要テーマに対してポイント−1、役員不参加に対してポイント−1が付与されているとする。ユーザ41が準備している会議が、研究チームの打合せであり役員が不参加であるとすると、優先度算出部120は、初期優先度=3と算出する。
一方、現在の優先度は、最新の進捗値と停滞値と期限値から算出される。具体的には、優先度算出部120は、優先度=進捗値×期限値+停滞値と算出する。進捗値は、最新の作成中文書の完成度に対応する指標値であり、完成度が小さいほど大きい値を取る。停滞値は、ユーザ41の現在の入力速度に対応する指標値であり、入力速度が小さいほど大きい値を取る。期限値は、会議資料作成業務の現時点の残り時間度に対応する指標値であり、残り時間度が小さいほど大きい値を取る。なお、優先度算出部120は、初期優先度の算出に、進捗値および期限値の少なくとも一方を用いるようにしてもよい。
優先度算出部120は、現在の優先度を算出するにあたり、完成量推定部121、進捗値算出部122、停滞値算出部123および期限値算出部124を有する。
完成量推定部121は、クライアント210から最初に作成中文書を取得すると、その作成中文書の完成時のページ数を推定する。ただし、データ量の指標として、ページ数ではなく行数・文字数・バイト数などを用いることも考えられる。
完成時のページ数を推定するにあたり、完成量推定部121は、DBサーバ240から、作成中文書と同じユーザ(ユーザ41)が過去に作成した文書であって、作成中文書と同じ種類の会議に使用された文書を検索する。会議の種類として、例えば、事業部打合せ、国家プロジェクト打合せ、研究チーム打合せ、特許打合せなどが挙げられる。会議の種類は、会議テーマに基づいて特定できる。完成量推定部121は、検索された過去の文書のページ数の分布から、統計的手法を用いて今回のページ数を推定する。例えば、検索された過去の文書からページ数の最頻値を算出し、最頻値を今回のページ数と推定する。ただし、最頻値に代えて、平均値や中央値などを用いてもよい。
進捗値算出部122は、クライアント210から2回目以降に作成中文書を取得すると、その作成中文書の完成度を算出する。完成度は、完成量推定部121が推定した完成時のページ数に対する作成中文書の現在のページ数と算出できる。そして、進捗値算出部122は、制御情報記憶部140に記憶された制御情報を参照して、算出した完成度を進捗値に変換する。完成度が小さいほど進捗値は大きくなり、完成度が大きいほど進捗値は小さくなる。進捗値が小さいことは、文書作成がまだ初期段階であることを示している。
停滞値算出部123は、クライアント210から2回目以降に作成中文書を取得すると、その作成中文書についてユーザ41の入力速度を算出する。入力速度は、作成中文書の現在の文字数と前回(例えば、1時間前)の文字数との差として算出できる。ただし、作成中文書のデータ量の指標として、文字数に代えてページ数や行数を用いることも考えられる。そして、停滞値算出部123は、制御情報記憶部140に記憶された制御情報を参照して、算出した入力速度を停滞値に変換する。入力速度が小さいほど停滞値は大きくなり、入力速度が大きいほど停滞値は小さくなる。停滞値が大きいことは、ユーザ41の会議資料作成業務が停滞している(順調に進んでいない)ことを示している。
期限値算出部124は、クライアント210から2回目以降に作成中文書を取得すると、ユーザ41の会議資料作成業務の残り時間度を算出する。また、期限値算出部124は、クライアント220から受付通知を取得すると、最新の残り時間度を算出する。残り時間度は、最初に作成中文書を取得した時刻から期限(会議開始時刻)までの総業務時間に対する、現在から期限までの残り時間の割合として算出できる。そして、期限値算出部124は、制御情報記憶部140に記憶された制御情報を参照して、算出した残り時間度を期限値に変換する。残り時間度が小さいほど期限値は大きくなり、残り時間度が大きいほど期限値は小さくなる。期限値が大きいことは、期限(会議開始時刻)までの残り時間が少なく、ユーザ41の会議資料作成業務の緊急性が高いことを示している。
コールバック依頼部130は、クライアント210からの支援要請に応じて、1または2以上の他のクライアント宛てのコールバック依頼を生成する。また、コールバック依頼部130は、コールバック依頼に対する応答である受付通知に応じて、受付通知を送信したクライアント宛てのコールバック指示を生成する。コールバック依頼部130は、ユーザ指定部131および方法判定部132を有する。
ユーザ指定部131は、クライアント210から最初の作成中文書が取得されて初期優先度が算出されると、ユーザ41の相談相手を決定する。具体的には、ユーザ指定部131は、自然言語処理技術を用いて作成中文書からキーワードを抽出する。ユーザ指定部131は、抽出されたキーワードとDBサーバ240に格納されたスキル情報とを照合して、キーワードが示す技術分野に詳しい1または2以上のユーザを検索する。
スキル情報に各ユーザの技術分野毎のスキルレベルが登録されている場合、ユーザ指定部131は、キーワードが示す技術分野のスキルレベルに応じて相談相手を絞り込むようにしてもよい。例えば、ユーザ指定部131は、スキルレベルの高い順に最大所定数までユーザを選択してもよい。また、ユーザ指定部131は、優先度算出部120で算出された優先度が高いほど、高いスキルレベルのユーザを選択できるようにしてもよい。
そして、ユーザ指定部131は、選択したユーザ(相談相手)宛てのコールバック依頼を生成する。コールバック依頼には、例えば、支援要請を出したユーザ41の名前、作成中文書のファイル名、完成度、入力速度、残り時間などが含まれる。クライアント210から2回目以降の作成中文書が取得されて現在の優先度が算出された場合、ユーザ指定部131は、上記と同様にしてコールバック依頼を生成してもよいし、コールバック依頼を生成しなくてもよい。コールバック依頼を生成する場合、相談相手は前回と同じでもよいし異なってもよい。例えば、ユーザ指定部131は、これまでにコールバック依頼を送信して応答がないユーザを除外してもよい。また、ユーザ指定部131は、前回の相談相手よりもスキルレベルの高いユーザを選択できるようにしてもよい。
なお、コールバック依頼は、例えば、クライアント210,220,230のアドレス(例えば、IP(Internet Protocol)アドレス)を用いて送信される。クライアント210,220,230のアドレスは、管理サーバ100に予め登録しておいてもよい。また、クライアント210,220,230のアドレスは、後述するコールバック処理部が各クライアントで起動したときに、管理サーバ100に通知されるようにしてもよい。
方法判定部132は、コールバック依頼に対して受付通知を取得すると、優先度算出部120に現在の優先度を問い合わせる。方法判定部132は、コールバック方法として、現在の優先度が閾値以上である場合は電話を選択し、現在の優先度が閾値未満である場合は電子メールを選択する。ただし、他のコミュニケーション方法を用意してもよい。方法判定部132は、選択したコールバック方法に応じて、DBサーバ240からユーザ41の電話番号または電子メールアドレスを検索する。そして、方法判定部132は、受付通知に対する応答としてコールバック指示を生成する。コールバック指示には、コールバック方法を示す情報と、ユーザ41の電話番号または電子メールアドレスが含まれる。
制御情報記憶部140は、優先度算出部120およびコールバック依頼部130が参照する制御情報を記憶する。制御情報には、作成中文書の完成度と進捗値との対応関係、入力速度と停滞値との対応関係、残り時間度と期限値との対応関係が含まれる。また、制御情報には、優先度とコールバック方法との対応関係が含まれる。ただし、制御情報を、制御情報記憶部140に代えてDBサーバ240に格納するようにしてもよい。
クライアント210は、文書記憶部211、入力監視部212およびコールバック処理部213を有する。文書記憶部211は、例えば、クライアント210が備えるRAMまたはHDDに確保した記憶領域として実装できる。入力監視部212およびコールバック処理部213は、例えば、クライアント210が備えるCPUが実行する業務支援プログラムのモジュールとして実装できる。クライアント220,230も、クライアント210と同様のモジュール構成によって実現することができる。
文書記憶部211は、ユーザ41が作成中の文書を記憶する。作成中文書としては、テキストエディタで作成したテキスト、ワープロソフトで作成した文書、プレゼンテーションソフトで作成した発表スライドなどが挙げられる。
入力監視部212は、ユーザ41が会議資料作成業務について他のユーザと相談したいときに、ユーザ41の操作に応じて起動する。入力監視部212は、起動すると、支援要請と文書記憶部211に記憶された作成中文書を管理サーバ100に送信する。また、入力監視部212は、所定時間毎に管理サーバ100に現在の作成中文書を送信する。
支援要請には、ユーザ名が含まれる。ユーザ名は、入力監視部212の起動時にユーザ41が入力してもよいし、クライアント210に予め記憶されていてもよい。また、支援要請には、作成中文書が使用される会議を特定する情報(例えば、スケジュールID、会議名、会議日時など)が含まれてもよい。会議を特定する情報は、入力監視部212の起動時にユーザ41が入力してもよいし、クライアント210に予め記憶されていてもよい。また、作成中文書の定期送信では、ユーザ名が作成中文書に付加される。
コールバック処理部213は、クライアント210が稼働を開始すると自動的に起動して、管理サーバ100からのコールバック依頼の受信を待つ。コールバック依頼を受信すると、コールバック処理部213は、クライアント210に接続されたディスプレイにコールバック依頼の内容を表示する。表示内容には、ユーザ名、作成中文書のファイル名、コールバック依頼が送信された時点の完成度・入力速度・残り時間などが含まれる。
ユーザ41がコールバック依頼を受け付ける操作を行うと、コールバック処理部213は、管理サーバ100に受付通知を送信する。受付通知には、例えば、送信元のユーザ名やコールバック依頼を特定する情報(例えば、支援要請を出したユーザの名前など)が含まれる。その後、管理サーバ100からコールバック指示を受信すると、コールバック処理部213は、管理サーバ100が判定したコールバック方法に応じた表示を行う。
コールバック指示に電話を示す情報が含まれている場合、コールバック処理部213は、ディスプレイに電話番号を表示して、電話をかけるようユーザ41に促す。ただし、コールバック処理部213がその電話番号宛てに自動的に発呼するようにしてもよい。コールバック指示に電子メールを示す情報が含まれている場合、コールバック処理部213は、電子メールソフトウェアを起動して作成ウィンドウを表示させる。このとき、宛先アドレスの欄には、コールバック指示に含まれる電子メールアドレスを記載しておく。
DBサーバ240は、プロファイル記憶部241、スケジュール記憶部242、文書記憶部243およびスキル情報記憶部244を有する。プロファイル記憶部241、スケジュール記憶部242、文書記憶部243およびスキル情報記憶部244は、例えば、DBサーバ240が備えるRAMまたはHDDに確保した記憶領域として実装できる。
プロファイル記憶部241は、ユーザ41,42,43のプロファイルを記憶する。プロファイルには、電話番号や電子メールアドレスなどが含まれる。スケジュール記憶部242は、ユーザ41,42,43のスケジュール情報を記憶する。スケジュール情報には、各ユーザが参加する会議の情報が含まれる。文書記憶部243は、ユーザ41,42,43が過去に作成した文書および現在作成中の文書を記憶する。また、文書記憶部243は、文書の属性として、作成者の名前や会議を特定する情報などを記憶する。スキル情報記憶部244は、ユーザ41,42,43の技術スキルを示すスキル情報を記憶する。
なお、DBサーバ240に格納されている情報の一部または全部を、管理サーバ100に格納するようにしてもよい。例えば、プロファイル、スケジュール情報、文書およびスキル情報を、制御情報記憶部140に格納するようにしてもよい。
図6は、プロファイルテーブルの例を示す図である。
プロファイルテーブル245は、プロファイル記憶部241に記憶されている。プロファイルテーブル245は、ユーザ名、所属、役職、電話番号およびメールアドレスの項目を含む。ユーザ名の項目には、ユーザを識別する名称が登録される。ユーザ名は、ユーザの氏名でもよいし氏名以外のIDでもよい。図6において「ユーザA」はユーザ41に相当し、「ユーザB」はユーザ42に相当し、「ユーザC」はユーザ43に相当する。
所属の項目には、ユーザの所属する組織の名称が登録される。役職の項目には、リーダや役員など役職の名称が登録される。電話番号の項目には、ユーザが使用する電話機の電話番号が登録される。ユーザAに対しては電話機31の電話番号が登録され、ユーザBに対しては電話機32の電話番号が登録され、ユーザCに対しては電話機33の電話番号が登録される。メールアドレスの項目には、ユーザが使用する電子メールアドレスが登録される。この電子メールアドレス宛ての電子メールは、メールサーバ250のメールボックスに蓄積される。クライアント210は、メールサーバ250から「aa@f.co.jp」宛ての電子メールを受信できる。クライアント220は、メールサーバ250から「bb@f.co.jp」宛ての電子メールを受信できる。クライアント230は、メールサーバ250から「cc@f.co.jp」宛ての電子メールを受信できる。
図7は、スケジュールテーブルの例を示す図である。
スケジュールテーブル246は、スケジュール記憶部242に記憶されている。スケジュールテーブル246は、ユーザ名、日時および会議テーマの項目を含む。ユーザ名の項目には、ユーザを識別する名称が登録される。日時の項目には、ユーザが参加する会議の開催日と開始予定時刻と終了予定時刻とが登録される。会議テーマの項目には、会議の種類を示す名称が登録される。例えば、「クラウド研究チーム」、「国家プロジェクト打合せ」、「特許打合せ」、「事業部打合せ」などの会議テーマが挙げられる。
スケジュールテーブル246では、1人のユーザに対して複数の会議を対応付けることができる。また、1つの会議に対して複数のユーザを対応付けることができる。図7の例では、日時と会議テーマの組み合わせによって、会議を識別することができる。同じ会議が対応付けられている複数のユーザを検索することで、その会議の参加者を列挙することができる。図7の例では、ユーザ41とユーザ42が同じ会議に参加する予定である。
図8は、文書テーブルの例を示す図である。
文書テーブル247は、文書記憶部243に記憶されている。文書テーブル247は、作成者、会議およびファイル名の項目を含む。作成者の項目には、文書を作成したユーザを識別する名称が登録される。会議の項目には、文書が使用される会議を特定する情報が登録される。会議を特定する情報には、例えば、会議の日時が含まれる。ファイル名の項目には、文書ファイルに付与された名称が登録される。文書記憶部243には、ファイル名の項目に記載された名称のファイルが格納されている。ただし、文書テーブル247を設けずに、個々の文書ファイルに作成者や会議情報などの属性情報を付与してもよい。
図9は、スキルテーブルの例を示す図である。
スキルテーブル248は、スキル情報記憶部244に記憶されている。スキルテーブル248は、ユーザ名、技術分野およびレベルの項目を含む。ユーザ名の項目には、ユーザを識別する名称が登録される。技術分野の項目には、ユーザがスキルを有する技術分野を表すキーワードが登録される。キーワードの例として、「データベース」、「コミュニケーション」、「クラウド」などが挙げられる。レベルの項目には、スキルの程度を示す数値が登録される。この数値が大きいほどスキルレベルが高いことを示す。
1人のユーザに対して、1または2以上のスキルを登録することができる。図9の例では、ユーザ41はデータベースのスキルを有しており、ユーザ42はデータベースとコミュニケーションとクラウドのスキルを有しており、ユーザ43はコミュニケーションとクラウドのスキルを有している。図9の例によれば、ユーザ42のクラウドのスキルレベルは、ユーザ43のクラウドのスキルレベルよりも高い。
図10は、進捗値と停滞値と期限値と閾値のテーブルの例を示す図である。
進捗値テーブル141、停滞値テーブル142、期限値テーブル143および閾値テーブル144は、制御情報記憶部140に記憶されている。
進捗値テーブル141では、完成度に対して進捗値が対応付けられている。完成度30%未満は、進捗値「5」で表される。完成度30%以上50%未満は、進捗値「4」で表される。完成度50%以上70%未満は、進捗値「3」で表される。完成度70%以上90%未満は、進捗値「2」で表される。完成度90%以上は、進捗値「1」で表される。
停滞値テーブル142では、入力速度に対して停滞値が対応付けられている。1時間当たり50字未満は、停滞値「5」で表される。1時間当たり50字以上100字未満は、停滞値「4」で表される。1時間当たり100字以上150字未満は、停滞値「3」で表される。1時間当たり150以上200字未満は、停滞値「2」で表される。1時間当たり200字以上は、停滞値「1」で表される。
期限値テーブル143では、残り時間度に対して期限値が対応付けられている。残り時間度20%未満は、期限値「3」で表される。残り時間度20%以上80%未満は、期限値「2」で表される。残り時間度80%以上は、期限値「1」で表される。
閾値テーブル144では、優先度に対してコールバック方法が対応付けられている。優先度11未満に対しては、電子メールが対応付けられている。優先度11以上に対しては、電話が対応付けられている。なお、前述の通り、優先度=進捗値×期限値+停滞値である。作成中文書の完成度が優先度に与える影響は、期限までの残り時間に依存するため、上記の式では進捗値に対して期限値をかけている。優先度が大きいほど、その会議資料作成業務を他のユーザが迅速に支援した方が好ましいことを示している。
図11は、作業管理テーブルの例を示す図である。
作業管理テーブル145は、支援要請を行ったユーザの会議資料作成業務や作成中文書に関する情報を一時的に記憶する。作業管理テーブル145は、優先度算出部120によって生成されて制御情報記憶部140に格納される。作業管理テーブル145には、ユーザ名、見積もり、進捗、入力速度、開始時刻および期限の項目を含む。
ユーザ名の項目には、ユーザを識別する名称が登録される。見積もりの項目には、作成中文書の完成時のページ数であって、完成量推定部121によって推定されたページ数が登録される。進捗の項目には、最新の作成中文書のページ数が登録される。入力速度の項目には、停滞値算出部123によって算出された最新の入力速度が登録される。開始時刻の項目には、会議資料作成業務の開始日時が登録される。第2の実施の形態では、最初に作成中文書が受信された日時が、会議資料作成業務の開始日時と推定される。期限の項目には、会議資料作成業務の期限の日時が登録される。第2の実施の形態では、作成中文書が使用される会議の開始予定日時が、会議資料作成業務の期限と推定される。
次に、管理サーバ100およびクライアント210の処理手順について説明する。
図12は、コールバック依頼の手順例を示すフローチャートである。
(S30)通信部110は、クライアント210から作成中文書を受信する。
(S31)優先度算出部120は、DBサーバ240の文書記憶部243に、今回受信した作成中文書の前段階のものが格納されているか、すなわち、今回の作成中文書の受信が2回目以降であるか判断する。前段階の作成中文書が存在するか否かは、例えば、ファイル名、作成者、会議情報などの同一性によって判断できる。前段階の作成中文書がある場合はステップS36に処理が進み、ない場合はステップS32に処理が進む。
(S32)優先度算出部120は、ユーザ41のユーザ名および作成中文書が使用される会議と対応付けて、受信した作成中文書を文書記憶部243に格納する。ユーザ41のユーザ名は、例えば、クライアント210から通知される。作成中文書が使用される会議の情報は、クライアント210から通知されてもよいし、DBサーバ240に記憶されたスケジュールテーブル246から検索してもよい。また、優先度算出部120は、制御情報記憶部140に記憶された作業管理テーブル145にユーザ名、開始時刻および期限を登録する。開始時刻は、クライアント210から作成中文書を受信した時刻である。期限は、会議の開始日時であり、スケジュールテーブル246から特定される。
(S33)完成量推定部121は、文書記憶部243から、受信した作成中文書と同じ作成者・同じ種類の過去の文書を検索する。例えば、完成量推定部121は、スケジュールテーブル246を参照して会議テーマが同じ過去の会議を抽出し、抽出した会議で使用された過去の文書に絞り込む。また、例えば、完成量推定部121は、DBサーバ240に記憶された文書テーブル247を参照して、作成者が同じ過去の文書に絞り込む。
(S34)完成量推定部121は、ステップS33で検索された過去の文書のページ数から、受信した作成中文書の完成時のページ数を推定する。具体的には、完成量推定部121、検索された複数の文書のページ数を列挙し、それらページ数の最頻値を完成時のページ数と推定する。ただし、最頻値に代えて、平均値・中央値・最大値・最小値などを用いてもよい。また、完成量推定部121は、各種の統計的手法を用いてもよい。また、データ量の指標として、ページ数に代えて行数や文字数やバイト数を用いてもよい。例えば、ステップS33で10個の文書が検索され、そのページ数が{10,11,10,1,3,10,10,14,5,10}であるとする。この場合、過去の文書のページ数の最頻値は「10」であるため、完成時のページ数が10ページと推定される。完成量推定部121は、推定した完成時のページ数を、作業管理テーブル145に登録する。
(S35)優先度算出部120は、作成中文書が使用される会議の情報に基づいて、ユーザ41の会議資料作成業務の初期優先度を算出する。例えば、優先度算出部120は、スケジュールテーブル246から、受信した作成中文書が使用される会議のテーマおよび参加者を検索する。優先度算出部120は、DBサーバ240に記憶されたプロファイルテーブル245から、会議参加者それぞれの役職を検索する。そして、優先度算出部120は、前述のように、会議テーマや会議参加者の役職などに対してポイントを付与することで、初期優先度を算出する。その後、ステップS42に処理が進む。
(S36)停滞値算出部123は、文書記憶部243から、今回受信した作成中文書に対応する前段階の作成中文書を取得する。停滞値算出部123は、今回受信した作成中文書の文字数と前段階の作成中文書の文字数とを算出し、両者の差を入力速度として算出する。ただし、データ量の指標として、文字数に代えてページ数や行数やバイト数を用いてもよい。停滞値算出部123は、入力速度を作業管理テーブル145に登録する。
(S37)優先度算出部120は、ステップS30で受信した最新の作成中文書を、ユーザ名および会議と対応付けて文書記憶部243に格納する。
(S38)進捗値算出部122は、受信した作成中文書のページ数を算出する。ただし、データ量の指標として、ページ数に代えて行数や文字数やバイト数を用いてもよい。進捗値算出部122は、現在のページ数を作業管理テーブル145に登録する。また、進捗値算出部122は、作業管理テーブル145を参照して完成時のページ数の見積もりを確認し、現在の完成度=現在のページ数÷完成時のページ数の見積もりを算出する。そして、進捗値算出部122は、制御情報記憶部140に記憶された進捗値テーブル141を参照して、算出した完成度に対応する進捗値を決定する。
(S39)停滞値算出部123は、制御情報記憶部140に記憶された停滞値テーブル142を参照して、ステップS36で算出した入力速度に対応する停滞値を決定する。
(S40)期限値算出部124は、作業管理テーブル145を参照して、会議資料作成業務の開始日時から期限までの総業務時間と、現在時刻から期限までの残り時間とを算出する。期限値算出部124は、残り時間度=残り時間÷総業務時間を算出する。そして、期限値算出部124は、制御情報記憶部140に記憶された期限値テーブル143を参照して、算出した残り時間度に対応する期限値を決定する。
(S41)優先度算出部120は、ステップS38〜S40で決定した進捗値、停滞値および期限値を用いて、ユーザ41の会議資料作成業務の現在の優先度を算出する。具体的には、優先度算出部120は、優先度=進捗値×期限値+停滞値と算出する。例えば、完成時のページ数の見積もりが10、現在のページ数が6、入力速度が150字/h、総業務時間が120時間、残り時間が21時間であるとする。この場合、完成度=60%であるため進捗値=3であり、停滞値=2であり、残り時間度=17.5%であるため期限値=3である。よって、優先度=3×3+2=11となる。
(S42)ユーザ指定部131は、ステップS30で受信した作成中文書のテキストを解析してキーワードを抽出する。抽出されるキーワードの例として、データベース、コミュニケーション、クラウドなどの技術用語が挙げられる。抽出するキーワードを、DBサーバ240に記憶されたスキルテーブル248に登録されたものに限定してもよい。
(S43)ユーザ指定部131は、ステップS42で抽出されたキーワードおよびスキルテーブル248に基づいて、ユーザ41の相談相手を決定する。例えば、ユーザ指定部131は、出現頻度の高い方から所定数以下のキーワードを選択する。ユーザ指定部131は、スキルテーブル248から、選択したキーワードが示す技術分野のスキルをもっているユーザを検索し、スキルレベルが高い方から所定数以下のユーザを選択する。ただし、ユーザ指定部131は、ユーザを選択するにあたり、ステップS35で算出した初期優先度またはステップS41で算出した優先度を用いてもよい。例えば、初期優先度または優先度が高いほど、スキルレベルの高いユーザを選択できるようにする。
(S44)ユーザ指定部131は、ステップS43で決定したユーザ宛てのコールバック依頼を生成する。通信部110は、コールバック依頼を送信する。コールバック依頼には、支援要請を出したユーザの名称、作成中文書のファイル名、完成度、入力速度、残り時間などが含まれる。通信部110は、例えば、事前にクライアント210,220,230からアドレスの通知を受けておくことで、決定したユーザに対応するクライアント宛てにコールバック依頼を送信することができる。例えば、作成中文書からキーワード「クラウド」が抽出されたとする。図9に示したスキルテーブル248によれば、ユーザB(ユーザ42)がクラウドについて高いスキルをもっている。よって、この場合にはクライアント220に対してコールバック依頼が送信されることになる。
図13は、コールバック指示の手順例を示すフローチャートである。
(S50)通信部110は、クライアント220から受付通知を受信する。
(S51)方法判定部132は、優先度算出部120に現在の優先度を問い合わせる。優先度算出部120は、制御情報記憶部140に記憶された作業管理テーブル145を参照して、最新の作業中文書のページ数や入力速度を確認する。ただし、優先度算出部120は、最新の作業中文書に加えて前段階の作業中文書をDBサーバ240に保存しておき、方法判定部132からの問い合わせ毎にそれら作業中文書を参照してページ数や入力速度を算出してもよい。進捗値算出部122は、前述のステップS38と同様にして進捗値を決定する。停滞値算出部123は、前述のステップS39と同様にして停滞値を決定する。ただし、最新の進捗値や停滞値を作業管理テーブル145に登録しておいてもよい。コールバック依頼から受付通知までの間に新たな作成中文書が受信されていない場合、ここで決定する進捗値や停滞値はステップS38,S39と同じである。
(S52)期限値算出部124は、前述のステップS40と同様にして期限値を決定する。コールバック依頼から受付通知までの間に新たな作成中文書が受信されていない場合であっても、ここで決定する期限値はステップS40と異なる可能性がある。
(S53)優先度算出部120は、ステップS51,S52で決定した進捗値、停滞値および期限値を用いて、ユーザ41の会議資料作成業務の現在の優先度を算出する。具体的には、優先度算出部120は、優先度=進捗値×期限値+停滞値と算出する。
(S54)方法判定部132は、制御情報記憶部140に記憶された閾値テーブル144を参照して、優先度の閾値を確認する。方法判定部132は、ステップS53で算出された現在の優先度が閾値以上(例えば、11以上)であるか判断する。優先度が閾値以上の場合はステップS55に処理が進み、閾値未満の場合はステップS56に処理が進む。
(S55)方法判定部132は、閾値テーブル144に従い、コールバック方法として電話と電子メールのうち電話を選択する。方法判定部132は、電話によるコールバックを示すコールバック指示を生成する。このとき、方法判定部132は、DBサーバ240に記憶されたプロファイルテーブル245から、支援要請を出したユーザ41の電話番号を検索する。コールバック指示には、検索された電話番号が含まれる。通信部110は、受付通知に対する応答として、コールバック指示をクライアント220に送信する。
(S56)方法判定部132は、閾値テーブル144に従い、コールバック方法として電話と電子メールのうち電子メールを選択する。方法判定部132は、電子メールによるコールバックを示すコールバック指示を生成する。このとき、方法判定部132は、プロファイルテーブル245から、支援要請を出したユーザ41の電子メールアドレスを検索する。コールバック指示には、検索された電子メールアドレスが含まれる。通信部110は、受付通知に対する応答として、コールバック指示をクライアント220に送信する。
例えば、前述のように、コールバック依頼を最初に送信した時点では、進捗値=3、停滞値=2、期限値=3、優先度=3×3+2=11であったとする。これに対し、受付通知を受信した時点では、ユーザ41の入力速度が上がって作成中文書が完成に近付き、進捗値=2、停滞値=1、期限値=3、優先度=2×3+1=7になったとする。この場合、コールバック方法として電子メールが選択されることになる。一方、受付通知を受信した時点では、文書作成が更に停滞してユーザ41の入力速度が下がり、進捗値=3、停滞値=4、期限値=3、優先度=3×3+4=13になったとする。この場合、コールバック方法として電話が選択されることになる。このように、ユーザ42がコールバックを行う時点における最新の優先度がコールバック方法に反映される。
図14は、コールバック処理の手順例を示すフローチャートである。
ここでは、クライアント210がコールバック依頼を受信する場合を考える。クライアント220,230も、クライアント210と同様の処理を実行し得る。
(S60)コールバック処理部213は、管理サーバ100からコールバック依頼を受信する。コールバック依頼には、支援要請を出した依頼元ユーザのユーザ名、作成中文書のファイル名、完成度、入力速度、残り時間などが含まれる。
(S61)コールバック処理部213は、依頼元ユーザの作業状況を示す情報(コールバック依頼に含まれるユーザ名、ファイル名、完成度、入力速度、残り時間など)と依頼受付ボタンを、クライアント210のディスプレイに表示する。
(S62)コールバック処理部213は、ユーザ41によって依頼受付ボタンが押下されたか判断する。依頼受付ボタンが押下された場合はステップS63に処理が進み、押下されていない場合はステップS62を繰り返してユーザ41の操作を待つ。
(S63)コールバック処理部213は、管理サーバ100へ受付通知を送信する。受付通知には、ユーザ41のユーザ名が含まれてもよい。また、受付通知には、コールバック依頼を特定する情報(例えば、依頼元ユーザのユーザ名など)が含まれてもよい。
(S64)コールバック処理部213は、管理サーバ100からコールバック指示を受信する。コールバック指示には、電話または電子メールによるコールバックを示す情報が含まれる。コールバック処理部213は、電話によるコールバックが指示されたか判断する。電話によるコールバックが指示された場合はステップS65に処理が進み、電子メールによるコールバックが指示された場合はステップS66に処理が進む。
(S65)コールバック処理部213は、コールバック指示に含まれる電話番号を表示する。この電話番号は、依頼元ユーザの電話機を示す。これにより、ユーザ41は、電話機31を用いて依頼元ユーザの電話機に電話をかけ、依頼元ユーザにアクセスできる。ただし、クライアント210が電話機31を制御して自動的に発呼するようにしてもよい。
(S66)コールバック処理部213は、クライアント210に搭載された電子メールソフトウェアを起動し、電子メール作成ウィンドウを表示させる。このとき、コールバック処理部213は、電子メール作成ウィンドウの宛先の欄に、コールバック指示に含まれる電子メールアドレスを挿入する。これにより、ユーザ41が本文を入力して送信ボタンを押下すると、依頼元ユーザ宛てに電子メールが送信される。
図15は、クライアントに表示される画面例を示す図である。
ここでは、ユーザ41がユーザ42に、「第2回クラウド研究報告」の作成について相談する場合を考える。ユーザ41が業務支援ソフトウェアを起動する操作を行うと、クライアント210のディスプレイにウィンドウ51が表示される。ウィンドウ51には、会議資料作成業務について他のユーザに相談することを示す支援要請ボタンが含まれる。ユーザ41が支援要請ボタンを押下すると、クライアント210から管理サーバ100に、支援要請と作成中文書「第2回クラウド研究報告」が送信される。
ユーザ41の相談相手としてユーザ42が選択されると、管理サーバ100からクライアント220にコールバック依頼が送信される。すると、クライアント220のディスプレイにウィンドウ52が表示される。ウィンドウ52には、ユーザ41の会議作成業務を示すテキストと依頼受付ボタンとが含まれる。ユーザ42が依頼受付ボタンを押下すると、クライアント220から管理サーバ100に受付通知が送信される。
コールバック方法として電話が選択されると、管理サーバ100からクライアント220に、電話番号を含むコールバック指示が送信される。すると、クライアント220のディスプレイにウィンドウ53が表示される。ウィンドウ53には、ユーザ41が使用する電話機31の電話番号を示すテキストが含まれる。
また、コールバック方法として電子メールが選択されると、管理サーバ100からクライアント220に、電子メールアドレスを含むコールバック指示が送信される。すると、クライアント220のディスプレイにウィンドウ54が表示される。ウィンドウ54には、宛先アドレスを示すテキストとタイトルを示すテキストと本文の入力欄とが含まれる。宛先アドレスは、ユーザ41の電子メールアドレスである。本文の入力欄には、ユーザ42が文章を入力することができる。この電子メールは、クライアント220からメールサーバ250を経由してクライアント210に届けられることになる。
次に、第2の実施の形態の変形例について説明する。
(a)上記では、一定周期でクライアント210から管理サーバ100にアップロードされる作成中文書に基づいて、ユーザ41の入力速度を算出することとした。これに対し、クライアント210において、作成中文書を開いたアプリケーションソフトウェアがアクティブになっている間に入力装置から入力された文字をカウントし、単位時間当たり(例えば、1時間当たり)のカウントした文字数を入力速度としてもよい。この場合、クライアント210から管理サーバ100に入力速度が通知される。
(b)上記では、単位時間当たりに増加した文字数を入力速度として算出した。これに対し、作成中文書に含まれる図形を検出し、単位時間当たりに増加した図形の数を算出して入力速度に反映させてもよい。例えば、図形1つと入力作業量が同等となる文字数を予め設定しておき、図形数を文字数に変換して入力速度を算出してもよい。また、文字と図形を含めて作成中文書のバイト数を算出し、バイト数を用いて入力速度を表してもよい。
(c)上記では、停滞値を入力速度のみから決定することとした。これに対し、クライアント210においてWebブラウザの実行時間を計測し、Webブラウザの実行時間の大きさを停滞値に反映させてもよい。例えば、単位時間当たりのWebブラウザの実行時間が閾値を超えた場合、ユーザ41の会議資料作成業務が停滞していると判断し、停滞値を1つ大きくするようにしてもよい。この場合、クライアント210から管理サーバ100にWebブラウザの実行時間を示す情報が通知される。
(d)上記では、作成中文書の種類に関係なく、共通の入力速度と停滞値との対応関係を適用することとした。これに対し、作成中文書の種類に応じて、異なる対応関係を適用するようにしてもよい。例えば、ワープロソフトを用いて作成したテキスト文書とプレゼンテーションソフトを用いて作成した発表スライド(テキストに加えて図形を含む)とでは、入力速度と停滞値との対応関係を変えることが考えられる。
(e)上記では、入力速度を文字数で表現することとした。これに対し、入力速度をページ数で表現してもよい。このとき、1ページ未満の入力量は小数で表現できる。例えば、1時間で半ページに相当する行を埋めた場合、入力速度は0.5ページと表される。
(f)上記では、入力速度を算出するにあたり、テキスト処理によって作成中文書の文字数をカウントし、その増加量を算出することとした。これに対し、作成中文書の各ページのスナップショットを画像として取得し、画像処理によって入力速度を推定するようにしてもよい。例えば、前段階の作成中文書のスナップショットと現在の作成中文書のスナップショットとを比較し、両画像の差分から修正量を推定するようにしてもよい。
(g)上記では、全てのユーザに対して、共通の入力速度と停滞値との対応関係を適用することとした。これに対し、ユーザによって異なる対応関係を適用するようにしてもよい。例えば、各ユーザが入力速度と停滞値との対応関係を編集できるようにしてもよい。また、クライアント210または管理サーバ100が、各ユーザの入力速度の分布を学習し、分布範囲を分割して停滞値を付与するようにしてもよい。
(h)上記では、同一作成者・同一種類の過去の文書を抽出し、抽出した文書のページ数の分布から今回の完成時のページ数を推定することとした。これに対し、過去の文書から、会議の1人当たり持ち時間とその会議で使用された文書のページ数との関係を算出しておき、今回の会議の1人当たり持ち時間に対応するページ数を用いてもよい。例えば、管理サーバ100は、スケジュールテーブル246を参照して、過去に行われた各会議の所要時間と参加人数を算出し、1人当たり持ち時間=所要時間÷参加人数を算出する。そして、管理サーバ100は、文書記憶部243から各会議で使用された文書を抽出してページ数を確認し、算出した1人当たり持ち時間とページ数とを対応付ける。
(i)上記では、同一作成者・同一種類の過去の文書を抽出し、抽出した文書のページ数の分布から今回の完成時のページ数を推定することとした。これに対し、過去の文書から、会議参加者とその会議で使用された文書のページ数との関係を算出しておき、今回の会議の参加者に対応するページ数を用いてもよい。例えば、管理サーバ100は、スケジュールテーブル246を参照して、過去に行われた各会議の参加者の集合を求める。そして、管理サーバ100は、文書記憶部243から各会議で使用された文書を抽出してページ数を確認し、会議参加者の集合とページ数とを対応付ける。なお、会議テーマおよび会議参加者の集合に対して、ページ数を対応付けるようにしてもよい。
(j)管理サーバ100は、1回目のコールバック依頼に対して、一定時間以内に何れのユーザからも受付通知を受信しなかった場合、2回目以降のコールバック依頼において相談相手のユーザの範囲を拡大するようにしてもよい。例えば、管理サーバ100は、作成中文書から抽出されたキーワードのうち出現頻度の高くないキーワードも選択して、スキルテーブル248と照合するようにしてもよい。これにより、相談相手として選択されるユーザが増えると期待される。また、管理サーバ100は、相談相手として選択するユーザのスキルレベルの範囲を拡大するようにしてもよい。
(k)上記では、ユーザ41が会議資料作成業務について他のユーザと相談したいと判断したとき、ユーザ41が業務支援ソフトウェアの支援要請モジュールを起動する操作を行うこととした。これに対し、会議資料作成業務が停滞しているとき、クライアント210がユーザ41に対して、業務支援ソフトウェアの利用を提案するようにしてもよい。例えば、クライアント210は、ユーザ41の入力速度を監視し、入力速度が閾値未満であるとき、業務支援ソフトウェアの利用を提案するウィンドウをディスプレイに表示する。
第2の実施の形態の情報処理システムによれば、ユーザ41の会議資料作成業務について、作成中データの完成度に応じた進捗値と、ユーザ41の入力速度に応じた停滞値と、残り時間に応じた期限値とが算出される。そして、進捗値と停滞値と期限値とを用いて、ユーザ41の会議資料作成業務の現在の優先度が算出され、現在の優先度に応じて、相談相手からユーザ41へのコールバックの方法が選択される。
これにより、時間の経過に応じて変化する業務状況が優先度に反映されることになり、ユーザ41および相談相手のスケジュールや役職などの静的情報のみから優先度を算出する場合よりも優先度の判定精度が向上する。その結果、組織全体の業務効率が向上する。例えば、期限が近いにもかかわらずユーザ41の作業が停滞している場合、相談相手の負担が大きくてもユーザ41を迅速に支援することが、組織全体の業務効率を向上させる。この場合、電話などリアルタイム性の高いコールバック方法が選択される。一方、ユーザ41の作業が終盤に進んでおり小さな疑問点を解消するだけで済む場合、ユーザ41の支援が少し遅れてもよく、相談相手の負担を小さくすることが組織全体の業務効率を向上させる。この場合、電子メールなどリアルタイム性の低いコールバック方法が選択される。
また、支援要請を出したユーザ41から相談相手にアクセスする代わりに、相談相手からユーザ41にコールバックすることになる。このため、相談相手は自己の業務が強制的に中断されるのを避け、都合のよいタイミングでコールバックを行うことができ、相談相手の負担を軽減することができる。また、相談相手がコールバックを行う時点の最新の優先度が算出されるため、適切なコールバック方法を選択できる。
なお、前述のように、第1の実施の形態の情報処理は、コンピュータにプログラムを実行させることで実現することができる。また、第2の実施の形態の情報処理は、管理サーバ100、クライアント210,220,230、DBサーバ240、メールサーバ250などにプログラムを実行させることで実現することができる。
プログラムは、コンピュータ読み取り可能な記録媒体(例えば、記録媒体113)に記録しておくことができる。記録媒体としては、例えば、磁気ディスク、光ディスク、光磁気ディスク、半導体メモリなどを使用できる。磁気ディスクには、FDおよびHDDが含まれる。光ディスクには、CD、CD−R(Recordable)/RW(Rewritable)、DVDおよびDVD−R/RWが含まれる。プログラムは、可搬型の記録媒体に記録されて配布されることがある。その場合、可搬型の記録媒体からHDDなどの他の記録媒体(例えば、HDD103)にプログラムをコピーして実行してもよい。