(57)【要約】【課題】  文書管理システムから、第三者が作成するユーザアプリケーションへイベント通知処理を実行することを可能とする。その際、電子文書管理システムにて管理しているユーザやアクセス権に応じたイベントを通知することでセキュリティを高める。【解決手段】  イベント生成部とイベント受信アプリを介す。どのタイミングで、どのイベント受信アプリへイベントを通知するか、といったイベント設定ファイルを元にイベントを通知する。【選択図】  図１
2008083960.tif 000002
【特許請求の範囲】
【請求項１】
複数の電子文書とユーザならびにアクセス権を管理する電子文書管理システムにおいて、
電子文書管理システムが管理する文書ならびに管理情報へのアクセスを可能とするプログラムインターフェース手段と、
電子文書管理システム内で発生した事象を外部へ通知する事象通知手段と、
前記事象通知手段による外部通知の有効、無効を設定することが出来る事象通知設定手段と、
前記事象通知手段による事象通知を受け取ると同時に、その通知を更に外部へ通知するイベント通知手段と、
第三者が、前記イベント通知手段からの通知を容易に受け取ることが可能なイベント通知プログラムインターフェース手段と、
前記イベント通知プログラムインターフェース手段を利用する際に、前記電子文書管理システムにおけるユーザの認証を必要とするプログラムインターフェースユーザ認証手段と、
前記プログラムインターフェースユーザ認証手段によって認証されたユーザに関するアクセス権情報を参照し、ユーザが知り得る情報に関するイベントのみをフィルタリングした上で前記イベント通知手段により外部へ通知するイベント通知フィルタリング手段と、
前記イベント通知手段から受け取りたいイベントの条件を予め設定しておくイベント通知条件設定手段とを備え、
前記イベント通知プログラムインターフェース手段を利用し、前記イベント通知手段からの通知を受け取るプログラムを第三者が自由に開発することが可能な電子文書管理システムにおけるイベント通知方法。
【請求項２】
請求項１に記載のイベント通知方法をコンピュータによって実現させるためのコンピュータ実行可能プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、第三者によるユーザアプリケーション開発を可能とするためにプログラムインターフェース（IF）を提供する電子文書管理システムに関するものであり、電子文書管理システムにて発生した事象を、プログラムIFを用いて第三者が作成したユーザアプリケーションへイベント通知処理を実行する電子文書管理システムならびにイベント通知処理を実行する電子文書管理システムのプログラムに関するものである。
【背景技術】
【０００２】
従来、実行プログラム間で特定の事象の発生を他の実行プログラムへ通知する処理（以後、イベント通知という）は一般的なものとして良く知られている。例えば障害発生時や警告が必要な場合から、単なる通知としてのやり取りまで含まれる。イベント処理の実体としては、通常はOSがその通信手段を提供し、例えばWindows（登録商標）OSではWindows（登録商標）メッセージやCOM+でのイベント通知が知られている。イベントを受信した実行プログラムは、通知されたイベント内容を判断し、例えば表示画面上にダイアログ表示を行ってユーザ（あるいはクライアント）に知らせたり、あるいは特定のメールアドレスへメール送信をしてユーザに発生した事象を知らせるといった処理を行うことが可能となる。具体的には、通知されたイベントによって、どのような手段でユーザ（あるいはクライアント）へ知らせるかを予めコンフィグレーションファイルとして記憶しておき、イベントが通知され次第、コンフィグレーションファイル内の情報に基づいてダイアログ表示やメール送信等によりユーザへ通知するものであった。（例えば、特許文献１参照）。
【特許文献１】特開平０７−１６０６１６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した従来の技術では、発生したイベントをどのようにユーザへ知らせるかについて記述されたコンフォグレーションファイルと、通知する方法を記述したフォーマットを予め作成し記憶させておく必要がある。そのため、その時々の状況に応じた自由な処理を行えないという問題があった。特にプログラムIFを提供し、第三者によって自由なアプリケーション開発を可能とするシステムの場合には、そのイベント処理についても自由に設計して独自のユーザプリケーションを開発したいという要望があった。
【０００４】
また、上述した従来の技術では更に、ユーザへの通知のためにフォーマットごとにプロセスを生成し処理を行わせるためプロセスの起動に時間が掛かってしまう上に、場合によっては複数のプロセスが同時に生成されるためリソースの消費量が増大する懸念があった。
【０００５】
また、イベントはシステムの動作履歴（ログ）を知ることができる重要な情報であるが、イベントを通知する相手ユーザを考慮し、電子文書管理システムにて設定されているアクセス権等に基づいて、適格なイベントをユーザへ通知するセキュアなイベント処理が求められていた。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明では、
複数の電子文書とユーザならびにアクセス権を管理する電子文書管理システムにおいて、
電子文書管理システムが管理する文書ならびに管理情報へのアクセスを可能とするプログラムインターフェース手段と、
電子文書管理システム内で発生した事象を外部へ通知する事象通知手段と、
前記事象通知手段による外部通知の有効、無効を設定することが出来る事象通知設定手段と、
前記事象通知手段による事象通知を受け取ると同時に、その通知を更に外部へ通知するイベント通知手段と、
第三者が、前記イベント通知手段からの通知を容易に受け取ることが可能なイベント通知プログラムインターフェース手段と、
前記イベント通知プログラムインターフェース手段を利用する際に、前記電子文書管理システムにおけるユーザの認証を必要とするプログラムインターフェースユーザ認証手段と、
前記プログラムインターフェースユーザ認証手段によって認証されたユーザに関するアクセス権情報を参照し、ユーザが知り得る情報に関するイベントのみをフィルタリングした上で前記イベント通知手段により外部へ通知するイベント通知フィルタリング手段と、
前記イベント通知手段から受け取りたい所望のイベントの条件を予め設定しておくイベント通知条件設定手段とを備え、
前記イベント通知プログラムインターフェース手段を利用し、前記イベント通知手段からの通知を受け取るプログラムを第三者が自由に開発することを可能とする。
【発明の効果】
【０００７】
本発明により、第三者が作成するユーザアプリケーションへイベント通知処理を実行することが可能となり、その時々の状況に応じた自由な処理を実現可能となる。ユーザからの新しい要望に応じてイベント通知処理を開発することが可能であるため、ユーザの要望に柔軟に応じることが可能となり、文書管理業務生産性が向上する。
【０００８】
また、電子文書管理システムにて管理しているユーザやアクセス権に応じたイベントを通知することが可能であり、セキュアなシステムを実現できる。
【０００９】
更には不適格なアプリがイベントを盗むことを防止し、SDKを利用するユーザアプリにイベント通知することが可能となる。
【発明を実施するための最良の形態】
【００１０】
（実施例１）
以下に、本発明の実施例を図面に基づき説明する。
【００１１】
図1は、本発明を説明するプログラムモジュール構成ならびに処理順を表すものである。
【００１２】
電子文書管理システム101は、データベースあるいはそれに相当する情報管理テーブルを用いて、文書を保管し共有活用するためのものである。通常、電子文書管理システムは複数のフォルダ階層を持ち、そのフォルダ内にそれぞれ文書が配置される形態となっている。電子文書管理システムにはその他、システム内のフォルダ階層や文書を閲覧するためのクライアントアプリケーションが装備されたり、あるいは電子文書管理システムの管理を行うための管理アプリケーションが装備される。
【００１３】
更には電子文書管理システムでは、フォルダや文書ならびにそれぞれの属性情報を管理するだけではなく、システムのユーザ管理を行ったり、ユーザが所属するグループとして管理し、文書や情報毎にきめ細かなアクセス権を設定することによりセキュリティを高めている。また、例えば良く知られているものとしてLDAP（Lightweight Directory Access Protocol）を用いた統合ユーザ管理方法があるが、電子文書管理システムでのユーザの認証を、LDAPのような電子文書管理システム外の仕組みを利用する場合もある。しかしその場合、ユーザ認証自体は外部の仕組みを利用するものではあるが、そこで認証されたユーザが実際に電子文書管理システム内の文書のそれぞれに対してどのレベルのアクセス権を持つかについては、やはり電子文書管理システム内にて管理されるものである。
【００１４】
また、電子文書管理システム101はプログラムインターフェース（IF）113を備え、第三者が作成するユーザアプリケーションから文書管理システムとのやりとりを可能としている。プログラムIF113は、電子文書管理システムへのインターフェースとして公開されるものであり、一般的には、ソフトウェア開発キット（Software Development Kit、以後SDK）として、プログラムインターフェースの仕様書やサンプルプログラム、解説書など一式が第三者である開発者に提供される場合が多い。このプログラムIFを通して、第三者が作成したアプリケーションプログラムから電子文書管理システムへアクセスし、そこに保存されている文書を参照したり、あるいは文書情報、各種管理情報を取得・編集することが可能となる。
【００１５】
ところが、例えばプログラムIFを利用することで、第三者が作成した素性の知れないユーザアプリケーションから電子文書管理システム内の文書やデータに対し自由に操作可能となると、セキュリティ上非常に危険と言わざるを得ないことになる。そこで、電子文書管理システムでは、システム内でのユーザ管理やきめ細かなアクセス権設定状況に応じ、プログラムIFからのアクセス時にもユーザ認証を行い、認証されたユーザに応じてシステム内の文書や各種情報へのアクセスを制限することでセキュリティを保つものである。
【００１６】
ユーザアプリA107、ユーザアプリB108、ユーザアプリC109は、第三者が作成したアプリケーションプログラムでありクライアントプログラムの1つである。第三者が自由に機能を実装することが出来るものである。
【００１７】
管理アプリS106は、電子文書管理システム101の管理者機能を実装したものであり、システム全体に関わるような操作を行うことが可能なクライアントプログラムである。図中では管理アプリS106はプログラムIFを通して電子文書管理システムへアクセスを行っている場合の例を示しているが、管理アプリケーション機能を電子文書管理システムのプログラムそのものとして実装する形態でもよい。
【００１８】
イベント生成部102は、電子文書管理システム101と共に提供される実行プログラムである。高速な処理を求められる電子文書管理システム101と切り離し、イベント通知に関する処理を担当する。第三者による自由な開発は行えない。イベント生成部102は、後述するイベント受信アプリA103やイベント受信アプリB104といった実行プログラムと通信を行うための限られたプログラムインターフェースを提供する。また、イベント生成部102は例えばWindows（登録商標）のサービスとして実装することが可能であり、必要に応じてその実行を開始したり停止させることも可能である。
【００１９】
イベント受信アプリA103、イベント受信アプリB104は、第三者により自由に開発する実行プログラムであり、電子文書管理システム内で発生した事象をイベントとして受け取り、それを所望の手段にて処理するよう作成することが可能である。図中ではイベント受信アプリが2つ存在しているが、もちろん1つのイベント受信アプリで複数のイベント処理を行うことが可能であり、いくつのイベント受信アプリを用意するかはイベント受信アプリを開発する第三者が自由に設計することが可能である。
【００２０】
Dialog110は、GUI画面上に表示されるダイアログであり、文字列やアイコンを表示して操作者へメッセージを伝えるためのものである。
【００２１】
Mail111は、電子メールシステムであり、電子メールの送受信を行うものである。
【００２２】
Log112は、履歴として記録／参照するものであり、ログファイルやログビューアなどに該当する。
【００２３】
イベント設定情報105は、イベント受信アプリが受け取りたいイベントを定義した情報である。情報には、まず、イベントを受け取る自身のイベント受信アプリの識別子が含まれる。識別子はイベント受信アプリのプロセスIDやスレッドID、タスクIDのようなOSが管理するID情報を含む場合が一般的であるが、有線あるいは無線ネットワーク上の他のマシン上で動作していても構わないため、ネットワークIDやマシン名、IPアドレスなどが含まれる場合もある。その他の情報としては、どのフォルダにて発生したイベントを受け取りたいか、あるいはイベントを受け取りたくないフォルダに関する条件（複数可）と、例えば文書新規登録時にはイベントを受け取りたいが、文書の削除時にはイベントを受け取りたくないといいたような、受け取るイベントの条件（複数可）と、更には、どのユーザが行った操作に基づくイベントを受け取りたいか、あるいは逆に、イベントを受け取りたくないユーザの条件（複数可）などといったものが含まれる。このイベント設定情報に基づき、条件に合ったイベントを、それを欲するイベント受信アプリへ通知することが可能となる。
【００２４】
続いて、同じく図１を用いて、本発明における実際の処理の流れの例を説明する。
【００２５】
まず、管理アプリS106は電子文書管理システム101の管理者が用いる管理者用のアプリケーションであり、イベント通知機能を有効にするか無効にするかの設定をすることが可能である。電子文書管理システム内の事象を第三者が作成するユーザアプリケーションへイベント通知するためには、管理アプリS106によってその機能が有効と設定されている必要がある。無効とした場合にはイベント通知に関連する処理を実行する必要が無いため、より高速な電子文書管理システムの処理が実現可能となると共に、システム内の事象発生に関する情報を外部に出すことを行わないため、万が一でも盗み見られたり横取りされる可能性を抑えることができ、より高いセキュリティを保つことが可能となる。
【００２６】
続いて、電子文書管理システム内で発生した事象をイベントとして受け取ることを望むイベント受信アプリA103やイベント受信アプリB104は、それぞれ受け取りたいイベントの条件をイベント設定情報105として作成する。イベント設定情報105は、それぞれのイベント受信アプリ毎に設定ファイルとして保存される場合もあれば、Windows（登録商標）のレジストリのようなシステム設定テーブルに記録したり、あるいはイベント生成部102がプログラムIFを公開している場合には、そのプログラムIFを用いて前記イベント生成部102に対して設定を行うことも可能である。
【００２７】
その後イベント受信アプリA103ならびにイベント受信アプリB104は、それぞれイベント生成部102が公開するプログラムIFを呼び出し、イベント生成部へ接続を行う。その際、文書管理システムに登録管理されているユーザIDならびにそのパスワードをイベント生成部へ渡す必要がある。これによりイベント生成部102は渡されたユーザIDとパスワードを電子文書管理システム101へ問い合わせ、電子文書管理システム101で厳しく管理されたユーザ管理情報と照合を行う。そのため、不正なユーザアプリケーションが電子文書管理システム内の事象を盗み見ることようなことはない。
【００２８】
また、1つのイベント受信アプリから同時に複数のユーザでイベント通知アプリへ接続することも可能である。
【００２９】
ここまでで、イベント通知処理を実行するための準備が整ったことになる。
【００３０】
電子文書管理システム101内で何らかの事象が発生し、それをイベント通知する場合の説明を以下に続ける。
【００３１】
例えば、ユーザアプリA107から新しい文書を電子文書管理システム101へ登録した場合、電子文書管理システム101は各種設定情報やアクセス権を考慮した上でその文書の登録を実行するか否かを判断する。要求通りに新しい文書を登録する場合、その登録作業の途上で電子文書管理システム101はイベント生成部102へ新規文書の登録が行われた旨、能動的に通知する。この場合、電子文書管理システム101は、管理アプリS106によってイベント機能設定が有効と設定されているならば、自システム内で発生した事象をイベント生成部へ全て通知し、逆にイベント機能設定が無効と設定されている場合には、電子文書管理システムはイベント生成部へ一切通知しない。これにより、不必要な処理による処理速度の低下を防ぎ、悪意あるプログラムに盗聴される危険性を抑えることになる。
【００３２】
イベント生成部は、文書管理システム101から通知された事象を受け取り次第、イベント設定情報と照らし合わせ、その事象に相当するイベントを欲しているイベント受信アプリが存在するか否かの判断を行う。存在する場合、イベント生成部102はイベントを欲するイベント受信アプリA103もしくはイベント受信アプリB104へイベントを通知する。この際、イベント生成部では、イベント受信アプリがログインしているユーザとアクセス権情報を照合し、そのユーザがアクセス可能な文書、あるいは情報に関係するものか否かの判断をし、そのユーザが知り得る事象に関係するイベントのみをイベント受信アプリへ通知するフィルタリング処理を行う。例えば、ある文書Aに対して参照権を持たないユーザaの場合、そのユーザaは文書Aの存在自体知り得ない。そのため、その文書Aが更新されたり削除された場合でも、イベント生成部はユーザaに対して文書Aに関する更新イベントや削除イベントを通知しない処理を行う。また、1つのイベント受信アプリから複数のユーザでイベント生成部に接続している場合、プログラミング上、各接続毎にプログラミングIFのIDまたは接続オブジェクトのインスタンスなどで区別することが可能であるため、接続しているユーザ毎にイベントをフィルタリングし、適格なユーザで接続しているそれぞれのプログラミングIFのIDまたは接続オブジェクト毎にイベント通知をそれぞれ行う。
【００３３】
また、前述した通りイベント生成部102へはイベント機能設定が有効と設定されているならば、電子文書管理システム101からその通知を全て受け取ることになる。そのため例えば、本来電子文書管理システムとして備えるログ記録機能を、電子文書管理システムそのもので行うのではなく、別な実行モジュールであるイベント生成部にて行わせることで、構造的にシンプルとなり更にはログ記録方法の変更要求があったとしてもイベント生成部102の変更として電子文書管理システムの機能とは切り離して拡張対応することができる。
【００３４】
イベント生成部102からイベントを受け取ったイベント受信アプリA103もしくはイベント受信アプリB104は、それぞれ状況に応じて必要な処理を行う。例えばイベント受信アプリA103は、ユーザアプリB108やユーザアプリC109といったような複数のクライアントアプリケーションに対して、イベント通知を一斉に行うことが可能である。
【００３５】
イベント受信アプリB104の例では、イベント生成部102からイベントを受け取り次第、そのイベントの種類もしくはシステムの状態に応じて動的にその後の処理を判断するようプログラミングすることが可能である。例えば操作画面上にダイアログ110を表示することで操作者であるユーザに何らかのメッセージあるいは警告文を示すことが可能である。またはメールシステム111へ通知することで、電子文書管理システム内で発生した事象をネットワークに接続される一般のユーザに対して電子メールで通知することも可能である。あるいは、Log112に記録し保存することで、所望の情報のみをログとして記録し、後で再利用することが可能である。
【００３６】
イベント受信アプリB104やイベント受信アプリC105は第三者による開発が可能なプログラムモジュールであり、電子文書管理システムの拡張機能として、あるいは電子文書管理システムと連携した拡張システムとして新たな電子文書管理システムに関するソリューションを提供することが可能な構成である。
【図面の簡単な説明】
【００３７】
【図１】本発明のプログラムモジュール構成ならびに処理手順を表す図である。
【図１】
2008083960.tif 000003