JP2008090459A - 構造化文書管理システム及びプログラム - Google Patents

構造化文書管理システム及びプログラム Download PDF

Info

Publication number
JP2008090459A
JP2008090459A JP2006268645A JP2006268645A JP2008090459A JP 2008090459 A JP2008090459 A JP 2008090459A JP 2006268645 A JP2006268645 A JP 2006268645A JP 2006268645 A JP2006268645 A JP 2006268645A JP 2008090459 A JP2008090459 A JP 2008090459A
Authority
JP
Japan
Prior art keywords
update
node
update notification
notification condition
structured document
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.)
Granted
Application number
JP2006268645A
Other languages
English (en)
Other versions
JP4393498B2 (ja
Inventor
Hitoshi Tanigawa
均 谷川
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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2006268645A priority Critical patent/JP4393498B2/ja
Publication of JP2008090459A publication Critical patent/JP2008090459A/ja
Application granted granted Critical
Publication of JP4393498B2 publication Critical patent/JP4393498B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Document Processing Apparatus (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】構造化文書内部に対する更新操作のうち、クライアントから予め通知することが要求されている更新操作をリアルタイムに検知して通知できるようにする。
【解決手段】テーブル記憶部109は、任意のクライアントから要求された通知対象とするノードを示すノード情報及び通知対象とする更新操作の種類を含む更新通知条件を記憶する。ドキュメント管理部102は、任意のクライアントからの更新要求に応じ、指定の構造化文書に対して要求された更新操作を行い、更新操作が行われたノードを示すノード情報及び更新操作の種類を更新通知管理部106に渡す。更新通知管理部106は、渡されたノード情報の示すノード及び更新操作の種類のテーブル記憶部109に記憶されている更新通知条件に対する一致性を世代関係を踏まえて検証し、一致性が認められた場合に、対応する更新通知条件の設定を要求したクライアント端末への更新通知を行う。
【選択図】 図2

Description

本発明は、構造化文書を構造化文書データベースに格納して管理する構造化文書管理システムに係り、特に構造化文書内部に対する更新操作を検知するのに好適な構造化文書管理システム及びプログラムに関する。
一般に、XML(Extensible Markup Language)文書に代表される構造化文書では、タグと呼ばれる文字列で階層的な構造が表現される。構造化文書管理システムは、構造化文書をデータベース(構造化文書データベース)に格納して管理する。構造化文書管理システムでは、構造化文書データベースへの新たな構造化文書の新規登録、登録済みの構造化文書の削除、更には構造化文書の更新などのイベントが発生する。
一方、表形式のデータをリレーショナルデータベース(RDB)に格納して管理するシステムとして、リレーショナルデータベース管理システム(RDB管理システム)が知られている。RDB管理システム(RDBMS)においても、RDBへの新たな表形式データ(テーブルのデータ)の新規登録、登録済みの表形式データの削除、更には表形式データの更新などのイベントが発生する。
RDB管理システムは、SQL(Structured Query Language)の規格で規定されたトリガ機能(第1の更新通知機能)とベンダ毎に提供される更新通知機能(第2の更新通知機能)とを組み合わせることによって、上述のイベントの発生を検知して、そのイベント発生をクライアント(クライアント端末)に通知する。トリガ機能は、テーブル単位、或いはテーブルの行単位に何らかの操作が行われたことを検知する機能である(例えば、非特許文献1参照)。ベンダ毎に提供される更新通知機能は、トリガ機能の拡張機能であり、例えばテーブルの列単位に何らかの操作が行われたことを検知してクライアントに通知する機能である(例えば、非特許文献2参照)。これらの機能は、データ構造が確定しているという表形式データの特徴を利用することによって実現されている。
<URL;http://www.microsoft.com/japan/sql/prodinfo/compare/prk/vsOracle4_7.mspx>(平成18年9月25日検索) <URL;http://otndnld.oracle.co.jp/document/products/oracle10g/102/doc_cd/nav/portal_5.htm>(平成18年9月25日検索)
上述したように、RDB管理システムは、RDBへの新たな表形式データの新規登録、登録済みの表形式データの削除、更には表形式データの更新などのイベントの発生を検知して、そのイベント発生をクライアント(クライアント端末)に通知することができる。
構造化文書管理システムにおいても、構造化文書データベースへの新たな構造化文書の新規登録、登録済みの構造化文書の削除、更には構造化文書の更新などのイベントが発生する。そこで、このようなイベントを検知してネットワーク経由でクライアントに通知する機能を、構造化文書管理システムに持たせることが要求されている。
しかし、構造化文書管理システムにおいて上述のイベントを検知する機能を実現することは容易ではない。その理由は次の通りである。まず、RDB管理システムにおいてイベント検知の対象となるデータは、データ構造が確定している表形式データである。このため、RDB管理システムでは、テーブルに対する操作から、テーブル単位だけでなく、テーブルの行単位、列単位に何らかの操作が行われたことを検知(トリガ)することができる。しかし、構造化文書管理システムにおいてイベント検知の対象とされるデータは、構造に重複や曖昧さなどを許可する高い記述性を有する構造化文書である。このような構造化文書をイベント検知の対象とした場合、RDB管理システムで適用されているようなイベント検知技術を応用しただけでは、構造化文書単位での新規追加や削除は検知できても、構造化文書内部の変更を検知することは難しい。
そこで、例えばクライアント側から構造化文書管理システムの構造化文書データベースをネットワークを介してポーリングし、構造化文書の前回との違いをチェックすることが考えられる。しかしポーリングでは、ネットワークや構造化文書管理システムにも負荷がかかるだけでなく、更新情報の検知がリアルタイムに行えない。
本発明は上記事情を考慮してなされたものでその目的は、構造化文書データベースに格納されている構造化文書内部に対する更新操作のうち、クライアントから予め通知することが要求されている更新操作をリアルタイムに検知して当該クライアントに通知できる構造化文書管理システム及びプログラムを提供することにある。
本発明の1つの観点によれば、構造化文書の集合を格納する構造化文書データベースを備えた構造化文書管理システムが提供される。このシステムは、任意のクライアント端末からの更新通知条件設定要求によって指定された、更新要求構造化文書に対する更新操作発生時の通知対象とするノードを示す第1のノード情報及び通知対象とする更新操作の種類を示す第1の更新操作種類情報を含む更新通知条件を記憶する記憶手段と、任意のクライアント端末からの更新要求に応じて、当該更新要求で指定された構造化文書に対して要求された更新操作を行う構造化文書管理手段であって、更新操作が行われたノードを示す第2のノード情報及び更新操作の種類を示す第2の更新操作種類情報を出力する構造化文書管理手段と、前記第2のノード情報の示すノード及び前記第2の更新操作種類情報の示す更新操作の種類の前記記憶手段に記憶されている更新通知条件に対する一致性を検証する一致性検証手段であって、ノード情報に関しては、当該更新通知条件に含まれている前記第1のノード情報の示すノードに対する前記第2のノード情報の示すノードの世代関係の有無に基づき一致性を検証する一致性検証手段と、前記一致性検証手段によって一致性が認められた場合に、対応する更新通知条件の設定を要求したクライアント端末に前記第2のノード情報及び前記第2の更新操作種類情報を通知する更新通知手段とを具備する。
本発明によれば、クライアント(クライアント端末)から予め通知することが要求されているノード情報で示されるノードと世代関係のある、構造化文書内の任意のノードに対して行われた更新操作、つまりクライアントが指定したノード情報で示されるノード以下の任意のノードに対して行われた更新操作をリアルタイムで検知して当該クライアントに通知できる。
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る構造化文書管理システムを含むクライアント−サーバシステムのハードウェア構成を示すブロック図である。図1のクライアント−サーバシステムは、構造化文書管理システム10と、クライアント端末20を含む複数のクライアント端末(クライアント)とから構成される。各クライアント端末上では、構造化文書管理システム10を利用するアプリケーション(アプリケーションプログラム)が動作する。クライアント端末20を含む複数のクライアント端末は、ローカルエリアネットワーク(LAN)のようなネットワーク30を介して、構造化文書管理システム10と接続されている。なお、図1では、クライアント端末20以外のクライアント端末は省略されている。
構造化文書管理システム10は、構造化文書を管理する構造化文書管理サーバ(サーバコンピュータ)11と、当該サーバ11が有する外部記憶装置12とから構成される。構造化文書管理サーバ11は主メモリのようなメモリ110を有する。外部記憶装置12は例えば磁気ディスク装置であり、構造化文書管理プログラム121、構造化文書データベース122及び更新通知条件管理テーブル123を格納する。
構造化文書管理プログラム121は、構造化文書を構造化文書データベース122に格納して管理する処理を構造化文書管理サーバ11に実行させるのに用いられる。構造化文書データベース122は、構造化文書の集合を保存する。構造化文書データベース122は更に、当該データベース122に格納される構造化文書に基づいて作成される索引データも保存する。この索引データは、構造化文書を検索するのに用いられる。更新通知条件管理テーブル123については後述する。
図2は構造化文書管理システム10の主として機能構成を示すブロック図である。構造化文書管理システム10は、構造化文書データベース122に加えて、コマンド管理部101、ドキュメント管理部102、検索エンジン部103、構造情報抽出部104、索引管理部105、更新通知管理部106及びデータベース操作部107の各処理部を含む。構造化文書管理システム10はまた、更新通知条件管理テーブル108を格納するテーブル記憶部109を含む。
処理部101乃至107は、図1の構造化文書管理サーバ11が外部記憶装置12に格納されている構造化文書管理プログラム121を読み込んで実行することにより実現されるものとする。このプログラム121は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム121が、ネットワーク30を介して構造化文書管理サーバ11にダウンロードされても構わない。テーブル記憶部109は、図1の構造化文書管理サーバ11のメモリ110内に確保される。このテーブル記憶部109には、例えば構造化文書管理サーバ11の立ち上げ時に、外部記憶装置12に格納されている更新通知条件管理テーブル123が更新通知条件管理テーブル108としてロードされる。
図3は、構造化文書データベース122に格納される構造化文書の一例を示す。図3の構造化文書はXML形式の文書(XML文書)であり、XML(構造化文書)の特徴を明示する例である。図3の構造化文書は、要素名がbibの1対のタグ(bibタグ)と当該1対のbibタグで囲まれた要素内容とから構成されるbib要素(bibノード)を含む。bibノードの下位(の階層)には、3つのbookノード(book要素)301,302及び303が存在する。bookノード301〜303は、それぞれ構造が異なる。即ちbookノード301はその下位にauthorノードを1つ含むが、bookノード302はその下位にauthorノードを2つ含む。また、bookノード303は、その下位にauthorノードを含まないものの、代わりにpublisherノードを含む。
図4は、更新通知条件管理テーブル108のデータ構造例を示す。更新通知条件管理テーブル108の各エントリは更新通知条件を保持する。更新通知条件は、クライアント端末から要求された構造化文書(内のノード)を対象とする更新操作が実行された場合に、その更新操作に関する情報をクライアント端末(当該情報の通知を予め要求していたクライアント端末)に通知するための条件を示す。
更新通知条件は、任意のクライアント端末からの更新通知条件設定要求によって指定された、更新要求構造化文書に対する更新操作発生時の通知対象とするノードを示すノード情報(第1のノード情報)と、通知対象ノードに対する通知対象とする更新操作の種類を示す更新操作種類情報(第2の更新操作種類情報)との組を含む。更新通知条件はまた、当該条件を識別する情報(条件ID)を含む。
構造化文書の各ノードは一般にXPathで表される。そこで本実施形態においても、各ノードをXPathで表現する。
図4の更新通知条件管理テーブル108の例では、次の3つの更新条件
条件ID=1:「/bib/book」+「更新」
条件ID=2:「/bib/book/author」+「追加」
条件ID=3:「/bib/book/price」+「削除」
が設定されている。上記「/bib…」中の「/bib」は、ルートノードの下位のノード(子ノード)がbibノードであることを示す。
条件ID=1の更新通知条件は、「/bib/book」以下のノードが「更新」されたら通知すること、
条件ID=2の更新通知条件は、「/bib/book/author」ノードそれ自体が「追加」されたら通知すること、
条件ID=3の更新通知条件は、「/bib/book/price」以下のノードが削除されたら通知すること
をそれぞれ示す。
よって、例えば、「author」の名前が変更された場合、或いはbookノードの下位に「publisher」ノードが追加された場合、或いはpriceの値が変更された場合には、条件ID=1の更新通知条件が成立する。また、「author」が1人追加され場合(authorノードの追加時)には、条件ID=2の更新通知条件が成立する。
再び図2を参照すると、コマンド管理部101は、クライアント端末からネットワーク30を介して与えられる各種のコマンド(要求)を受け付けて当該コマンドの種別を判別する。コマンド管理部101は、コマンドの種別の判別結果に応じてドキュメント管理部102、検索エンジン部103、索引管理部105及び更新通知管理部106のいずれかに当該コマンドの指定する処理を実行させる。
ドキュメント管理部102は、構造化文書データベース122を対象に構造化文書の管理を司る構造化文書管理手段として機能する。この構造化文書の管理は、任意のクライアント端末からの要求(更新要求)に応じて、構造化文書データベース122に構造化文書を登録し、或いは当該データベース122に既に登録されている構造化文書を更新・削除する操作を含む。この操作を、説明の簡略化のために一括りにして更新操作と呼ぶこともある。ドキュメント管理部102は、更新操作が行われたノードを示すノード情報(第2のノード情報)及び更新操作の種類を示す更新操作種類情報(第2の更新操作種類情報)を更新通知管理部106に渡す。なお、以下の説明では、「更新操作の種類を示す更新操作種類情報」を単に「更新操作の種類」と表現する。
検索エンジン部103は、クライアント端末からの検索要求に従い、当該検索要求で指定される検索条件に合致する構造化文書を構造化文書データベース122に格納されている索引データを利用して当該データベース122から検索する。構造情報抽出部104は、ドキュメント管理部102による更新操作(構造化文書管理)に必要な、当該更新操作の対象とする構造化文書の構造(ノード)を表す構造情報(ノード情報)を抽出する。
索引管理部105は、構造化文書データベース122に格納されている構造化文書を検索するのに用いられる索引データを管理する。この索引データの管理は、索引データの作成、作成された索引データの構造化文書データベース122への格納、当該データベース122からの索引データの検索を含む。
更新通知管理部106は、ドキュメント管理部102から渡されたノード情報(第2のノード情報)の示すノード及び更新操作の種類の更新通知条件管理テーブル108に保持されている更新通知条件に対する一致性を検証する一致性検証機能を有する。特にノード情報に関しては、更新通知管理部106は、更新通知条件に含まれているノード情報(第1のノード情報)の示すノードに対するドキュメント管理部102から渡されたノード情報の示すノードの世代関係の有無に基づき一致性を検証する。更新通知管理部106はまた、一致性が認められた場合に、対応する更新通知条件の設定を要求したクライアント端末に、ドキュメント管理部102から渡されたノード情報及び更新操作種類を通知する更新通知機能を有する。
データベース操作部107は、ドキュメント管理部102、検索エンジン部103、構造情報抽出部104、索引管理部105及び更新通知管理部106が構造化文書データベース122をアクセスするためのインタフェースとして機能する。
次に、本実施形態の動作について、(1)更新通知条件設定処理、(2)更新通知処理を伴う更新処理(更新通知付き更新処理)を例に、順に説明する。
(1)更新通知条件設定処理
まず、更新通知条件設定処理について図5のフローチャートを参照して説明する。
今、クライアント端末20が、構造化文書管理システム10から更新されたことの通知(更新通知)を受けたい「通知対象のノード及び通知対象の更新操作の種類」を決定したものとする。クライアント端末20は、この決定された「通知対象のノード及び通知対象の更新操作の種類」の情報(つまり更新通知条件)が付された更新通知条件設定要求を、ネットワーク30を介して構造化文書管理システム10に送信する。
構造化文書管理システム10のコマンド管理部101は、クライアント端末20からの更新通知条件設定要求(更新通知条件設定コマンド)を受け付けると、当該要求の種別を判別し、この例のように更新通知条件設定要求の場合には当該要求を更新通知管理部106に渡して、更新通知条件設定を要求する(ステップS1)。
更新通知管理部106は更新通知条件設定要求を受け取ると更新通知条件設定手段として機能する。更新通知管理部106はまず、テーブル記憶部109に格納されている更新通知条件管理テーブル108を参照して、更新通知条件設定要求で指定されている更新通知条件が当該テーブル108に既に登録されているかを判定する(ステップS2)。もし、指定された更新通知条件が更新通知条件管理テーブル108に登録されていない場合には、更新通知管理部106は当該更新通知条件を新たな条件として当該テーブル108に追加する(ステップS3)。また更新通知管理部106は、更新通知条件管理テーブル108に追加された更新通知条件の条件IDを、更新通知条件設定を要求したクライアント端末20と対応付けて、図示せぬ更新通知先管理テーブルに登録する。
更新通知条件管理テーブル108に更新通知条件が追加された場合など、当該テーブル108が更新された場合に、更新通知管理部106は、その更新を外部記憶装置12に格納されている更新通知条件管理テーブル123に反映する処理を、例えば構造化文書管理システム10での処理の空き時間に、或いは構造化文書管理システム10の電源がオフされる際に、或いは定期的に実行する。
(2)更新通知付き更新処理
次に、更新通知付き更新処理について図6のフローチャートを参照して説明する。
今、クライアント端末20から構造化文書管理システム10に対して、構造化文書に対する更新操作(更新、登録または削除)を指定する更新要求が送信されたものとする。
コマンド管理部101は、クライアント端末20からの更新要求(更新要求コマンド)を受け付けると、当該要求の種別を判別し、この例のように更新要求の場合には当該要求をドキュメント管理部102に渡して、更新操作を要求する(ステップS11)。
ドキュメント管理部102は更新要求を受け取ると、構造情報抽出部104を用いて当該要求で指定された構造化文書の構造を示す構造情報を抽出する(ステップS12)。ここでは、更新要求で指定された構造化文書を構造情報抽出部104が解析することにより、XPathで表現されるノード情報が構造情報として抽出される。
ドキュメント管理部102は、抽出された構造情報(ノード情報)に基づき、クライアント端末20からの更新要求で指定された構造化文書に対する更新操作を、データベース操作部107を用いて実行する(ステップS13)。この更新操作では、必要ならば索引管理部105を用いて索引データも更新される。
ドキュメント管理部102は、更新操作(ステップS13)を実行すると、上記抽出された構造情報(ノード情報)のうち、当該更新操作が行われた構造(ノード)を示す構造情報(ノード情報)と当該更新操作の種類との組を更新通知管理部106に渡す(ステップS14)。
更新通知管理部106は、ドキュメント管理部102からノード情報と更新操作の種類との組を受け取ると、その組に一致する更新通知条件が更新通知条件管理テーブル108にあるかを調べる一致性検証処理を次の手順で実行する。
まず更新通知管理部106は、更新通知条件管理テーブル108から未処理の1エントリの情報(更新通知条件)を取り出す(ステップS15,S16)。ここでは、1行目のエントリの情報、即ち条件ID=1の更新通知条件が取り出されたものとする。
更新通知管理部106は、ドキュメント管理部102から受け取った情報に含まれているノード情報(更新ノード情報)の、取り出された更新通知条件中のノード情報に対する一致性を判定する(ステップS17)。この判定は、例えば、更新通知条件中のノード情報、つまり通知対象とするノードのXPath(通知対象とするノードへのパスを表す文字列)をキーとした前方一致で行われる。
今、図3に示される構造化文書の先頭のbookノード301の要素内容に含まれる「price」(つまりbookノード301の子ノードであるpriceノードの要素内容)が1500から2000に変更されたものとする。この場合、ドキュメント管理部102から更新通知管理部106に渡される情報は、ノード情報「/bib/book/price」と更新操作の種類「更新」とである。
更新通知管理部106は、ドキュメント管理部102から渡されたノード情報「/bib/book/price」の、更新通知条件管理テーブル108から取り出された更新通知条件に含まれているノード情報に対する一致性を前方一致で確認する(ステップS17)。
図4に示す更新通知条件管理テーブル108の例では、1行目のエントリの更新通知条件(条件ID=1の更新通知条件)に含まれているノード情報は「/bib/book」である。この場合、一致(前方一致)が確認される(ステップS17)。この前方一致を確認(判定)することは、ノード情報「/bib/book/price」で示されるノード(priceノード)とノード情報「/bib/book」で示されるノード(bookノード)とが世代関係にあること(ここでは、priceノードがbookノードの子ノードである親子関係にあること)を検証することと等価である。
ステップS17で一致が判定されると、更新通知管理部106は、ドキュメント管理部102から渡されたノード情報(更新操作が行われたノードの情報)を通知の候補とする。次に更新通知管理部106は、ドキュメント管理部102から渡された更新操作の種類(ここでは「更新」)が、当該一致判定に用いられたノード情報を含む更新通知条件中の更新操作の種類(ここでは、条件ID=1の更新通知条件に含まれている更新操作の種類「更新」)に一致するかを判定する(ステップS18)。この例のように一致が判定されるならば、更新通知管理部106は、更新通知先管理テーブルによって条件ID=1に対応付けられているクライアント端末に対して、ステップS17及び18で一致が判定された情報、即ち更新操作が行われたノードの情報「/bib/book/price」と当該更新操作の種類「更新」との組を、コマンド管理部101を介して通知する(ステップS19)。
すると、更新通知管理部106はステップS15に戻る。そして更新通知管理部106は、更新通知条件管理テーブル108に未処理のエントリが残っているならば(ステップS15)、そのエントリの情報(更新通知条件)を取り出す(ステップS16)。ここでは、2行目のエントリの情報、即ち条件ID=2の更新通知条件が取り出されたものとする。
図4に示す更新通知条件管理テーブル108の例では、2行目のエントリの更新通知条件(条件ID=2の更新通知条件)に含まれているノードは「/bib/book/author」である。この場合、ステップS17において不一致が判定される。
すると更新通知管理部106は、更新通知条件管理テーブル108に未処理のエントリが残っているならば(ステップS15)、そのエントリの情報(更新通知条件)を取り出す(ステップS16)。ここでは、3行目のエントリの情報、即ち条件ID=3の更新通知条件が取り出されたものとする。
図4に示す更新通知条件管理テーブル108の例では、3行目のエントリの更新通知条件(条件ID=3の更新通知条件)に含まれているノードは「/bib/book/price」である。この場合、ステップS17において一致(完全一致)が判定される。
ステップS17で一致が判定されると、更新通知管理部106は、ドキュメント管理部102から渡された更新操作の種類「更新」が、当該一致判定に用いられた更新通知条件に含まれている更新操作の種類(ここでは、条件ID=3の更新通知条件に含まれている更新操作の種類「削除」)に一致するかを判定する(ステップS18)。この例のように不一致が判定されるならば、更新通知管理部106はステップS19をスキップしてステップS15に戻る。そして、本実施形態のように更新通知条件管理テーブル108の最後のエントリまで処理し終えたならば(ステップS15)、クライアント端末20からの更新要求に対する更新通知付き更新処理は終了する。
本実施形態では、bookノード301の要素内容に含まれる「price」が変更された場合を想定している。しかし、他のbookノード302または303の要素内容に含まれる「price」が変更された場合は勿論、bookノード301〜303の要素内容に含まれる「title」など、「book」ノード以下のノード(例えば、子ノード、孫ノードなど)のいかなる更新でも、条件ID=1の更新通知条件に(前方)一致して、更新操作が行われたノードの情報と「更新」との組がクライアント端末20に通知される。
また本実施形態においては、更新操作が行われたノードが通知対象とするノードであるかを判定するのに、通知対象とするノードへのパスを表す文字列(パス文字列)の前方一致検索が用いられる。しかし、親子関係のようなパス同士の世代関係を識別できるならば、前方一致検索以外の手段を用いても構わない。
[変形例]
次に上記実施形態の変形例について説明する。
上記実施形態では、更新通知条件に含まれるノード情報の示すノード(通知対象ノード)は明確なパスで指定される。この場合、パスで指定されるノード以下の任意の更新までは検知できる。しかし、このようなパスでは、例えば「どこかにあるpriceノード」を通知対象として指定できない。
ところがXPathには、このような曖昧性のあるパスの表記手法、つまり複数のパス(構造)をまとめて示す表記手法がある。上述の「どこかにあるpriceノード」は、「//price」によって表現される。また、例えば、「/*/price」の表記により、ルートノードより2階層下のpriceノードを定義することもできる。通知対象ノードを、このような曖昧性のあるパスで指定することにより、更新通知の柔軟度を高めることが可能になる。
そこで本変形例では、更新通知条件管理テーブル108(122)に、曖昧性のあるパスで表現されるノード情報を含む更新通知条件が登録されるのを許している。まず、曖昧性のあるパスについて、図7を参照して説明する。図7は、構造化文書データベース122に格納される構造化文書の一例を示す。図7の構造化文書は、ホームセンターノード(ホームセンター要素)を含む。ホームセンターノードの下位には、ホームセンターで扱う商品である「机」、「椅子」及び「ベッド」に関する、机ノード701、椅子ノード702及びベッドノード703の3つの子ノードが存在する。このように、ホームセンターノードの3つの子ノードの構造は全て異なる。その一方、机ノード701、椅子ノード702及びベッドノード703の子ノードは、いずれも価格ノードである。
ここで、図7に示す構造化文書において、上述の商品のいずれかの価格が変更になった場合に通知が欲しいという場合に、クライアント端末20は通知対象とするノード(つまり価格ノード)へのパスを曖昧性のあるパス「//価格」で指定する。このような曖昧性のあるパスを用いて通知対象ノードを指定した場合、本変形例では、構造化文書管理システム10における更新通知条件設定処理及び更新通知付き更新処理に、以下に述べる第1及び第2の手法のいずれかが適用される。
(1)第1の手法
第1の手法では、上記実施形態と同様の通知条件設定処理及び更新通知付き更新処理が行われる。
まず、第1の手法を適用した場合の更新通知条件設定処理について図5のフローチャートを援用して説明する。ここでは、「//価格」のような曖昧性のあるパスも、上記実施形態で適用されたような明確なパスと同様に扱わる。つまり、クライアント端末20が、「//価格」及び「更新」の組を更新通知条件として設定することを構造化文書管理システム10に要求した場合、更新通知管理部106は図5の判定ステップS2を実行する。
もし、要求された「//価格」及び「更新」の組が更新通知条件管理テーブル108に登録されていないならば(図5ステップS2)、更新通知管理部106は当該「//価格」及び「更新」の組をそのまま更新通知条件として更新通知条件管理テーブル108に追加する(図5ステップS3)。
次に、第1の手法を適用した場合の更新通知付き更新処理について図6のフローチャートを援用して説明する。ここでは更新通知管理部106は、更新通知条件管理テーブル108から曖昧性のあるパスを含む更新通知条件が取り出された場合に(図6ステップS16)、更新操作が行われたノード(構造)が当該曖昧性のあるパスに含まれるかを判定する(図6ステップS17)。
(2)第2の手法
第2の手法では、「//価格」のような「曖昧性のあるパス」及び「更新操作の種類」(例えば「更新」)の組は、テーブル記憶部109内の更新通知条件管理テーブル108とは別の領域に、曖昧更新通知条件として格納される。図8は、テーブル記憶部109内に、更新通知条件管理テーブル108に加えて、「曖昧性のあるパス」を含む更新通知条件(曖昧更新通知条件)を格納する曖昧更新通知条件管理テーブル118が配置されている状態を示す。この場合、外部記憶装置12には、曖昧更新通知条件管理テーブル118に対応する曖昧更新通知条件管理テーブルが格納される。構造化文書管理システム10の立ち上げ時には、この曖昧更新通知条件管理テーブルが、テーブル記憶部109内に曖昧更新通知条件管理テーブル118としてロードされる。
次に、第2の手法を適用した場合の更新通知条件設定処理について、上記実施形態と相違する点を中心に、図9のフローチャートを参照して説明する。更新通知管理部106はクライアント端末20が送信した更新通知条件設定要求をコマンド管理部101から受け取ると、当該要求で指定されている更新通知条件に「曖昧性のあるパス」が含まれているかを判定する(ステップS21)。もし、「曖昧性のあるパス」が含まれていないならば、更新通知管理部106は図5のステップS2以降に相当する処理を実行する。
これに対し、「曖昧性のあるパス」が含まれているならば(ステップS21)、更新通知管理部106は、当該「曖昧性のあるパス」を含む指定された更新通知条件が曖昧更新通知条件として曖昧更新通知条件管理テーブル118に既に登録されているかを判定する(ステップS22)。もし、指定された更新通知条件が曖昧更新通知条件管理テーブル118に登録されていない場合には、更新通知管理部106は当該更新通知条件を曖昧更新通知条件として当該テーブル118に追加する(ステップS23)。
次に更新通知管理部106は、指定された更新通知条件に含まれている「曖昧性のあるパス」を当該「曖昧性のあるパス」に一致する「明確なパス」に展開することで、指定された更新通知条件を、「明確なパス」を含む更新通知条件に展開する(ステップS24)。ここで、更新操作の種類は、指定された更新通知条件から「明確なパス」を含む更新通知条件にそのまま引き継がれる。
「曖昧性のあるパス」が「//価格」の場合、図7の構造化文書の例では、「//価格」は、次の3つの「明確なパス」
/ホームセンター/机/価格
/ホームセンター/椅子/価格
/ホームセンター/ベッド/価格
に展開される。図7の構造化文書の場合、「曖昧性のあるパス」として「/*/*/価格」を用いても、上述した3つの「明確なパス」に展開される。
更新通知管理部106は、展開された「明確なパス」を含む更新通知条件の各々について、更新通知条件管理テーブル108に既に登録されているかを判定する(ステップS25〜S27)。もし、登録されていない場合には、更新通知管理部106は該当する更新通知条件を更新通知条件管理テーブル108に追加する(ステップS28)。
次に、第2の手法を適用した場合の更新通知付き更新処理について、上記実施形態と相違する点を中心に、図10のフローチャートを参照して説明する。
今、クライアント端末20から構造化文書管理システム10に対して、構造化文書に対する更新操作(更新、登録または削除)を指定する更新要求が送信されたものとする。この場合、構造化文書管理システム10では、まず図6のステップS11〜14に相当する処理(ステップS30)が実行される。
すると更新通知管理部106は、更新操作が行われたノードへのパス(を示すノード情報)が、更新通知条件管理テーブル108に登録されているかを判定する(ステップS31)。もし、更新操作が行われたノードへのパスが、更新通知条件管理テーブル108に未登録の場合、更新通知管理部106はステップS32に進む。
ステップS32において更新通知管理部106は、更新操作が行われたノードへのパスが、曖昧更新通知条件管理テーブル118に登録されているいずれかの曖昧更新通知条件に合致するかを判定する。もし、更新操作が行われたノードへのパスが曖昧更新通知条件に合致するならば、更新通知管理部106は、当該パス(を示すノード情報)と更新操作の種類との組を含む更新通知条件を、更新通知条件管理テーブル108に追加する(ステップS33)。
ここでは、更新操作が行われたノードへのパスが、既登録の更新通知条件に存在しなかったパス「/ホームセンター/犬小屋/価格」であったものとする(ステップS31)。このパス「/ホームセンター/犬小屋/価格」は、曖昧更新通知条件「//価格」に合致する(ステップS32)。この場合、更新通知管理部106は、パス「/ホームセンター/犬小屋/価格」と更新操作の種類との組を含む更新通知条件を、更新通知条件管理テーブル108に追加する(ステップS33)。このようにして上記の例では、通知対象ノードとして曖昧性のあるパス「//価格」が更新通知条件設定要求で指定されたことに対応して、当該要求の受け付け時に3つのパス「/ホームセンター/机/価格」、「/ホームセンター/椅子/価格」及び「/ホームセンター/ベッド/価格」が更新通知条件管理テーブル108に登録されるだけでなく、実際の更新操作時に、パス「/ホームセンター/犬小屋/価格」が当該テーブル108に登録される。
ステップS33が実行された後の動作は上記実施形態と同様であり、図6のステップS15〜S19に相当する処理(ステップS34)が行われる。
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
本発明の一実施形態に係る構造化文書管理システムを含むクライアント−サーバシステムのハードウェア構成を示すブロック図。 図1に示される構造化文書管理システムの主として機能構成を示すブロック図。 図1に示される構造化文書データベースに格納される構造化文書の一例を示す図。 図2に示される更新通知条件管理テーブルのデータ構造例を示す図。 同実施形態における更新通知条件設定処理の手順を示すフローチャート。 同実施形態における更新通知付き更新処理の手順を示すフローチャート。 同実施形態の変形例で適用される曖昧性のあるパスを説明するのに用いられる構造化文書の一例を示す図。 上記更新通知条件管理テーブルに加えて、同実施形態の変形例で適用される曖昧更新通知条件管理テーブルがテーブル記憶部に配置されている状態を示す図。 上記変形例において第2の手法を適用した場合の更新通知条件設定処理の手順を示すフローチャート。 上記変形例において第2の手法を適用した場合の更新通知付き更新処理の手順を示すフローチャート。
符号の説明
10…構造化文書管理システム、11…構造化文書管理サーバ(構造化文書管理サーバコンピュータ)、12…外部記憶装置、20…クライアント端末、30…ネットワーク、101…コマンド管理部、102…ドキュメント管理部(構造化文書管理手段)、104…構造情報抽出部、106…更新通知管理部(一致性検証手段、更新通知手段、更新通知条件設定手段)、108,123…更新通知条件管理テーブル、109…テーブル記憶部、118…曖昧更新通知条件管理テーブル、121…構造化文書管理プログラム、122…構造化文書データベース。

Claims (5)

  1. 構造化文書の集合を格納する構造化文書データベースと、
    任意のクライアント端末からの更新通知条件設定要求によって指定された、更新要求構造化文書に対する更新操作発生時の通知対象とするノードを示す第1のノード情報及び通知対象とする更新操作の種類を示す第1の更新操作種類情報を含む更新通知条件を記憶する記憶手段と、
    任意のクライアント端末からの更新要求に応じて、当該更新要求で指定された構造化文書に対して要求された更新操作を行う構造化文書管理手段であって、更新操作が行われたノードを示す第2のノード情報及び更新操作の種類を示す第2の更新操作種類情報を出力する構造化文書管理手段と、
    前記第2のノード情報の示すノード及び前記第2の更新操作種類情報の示す更新操作の種類の前記記憶手段に記憶されている更新通知条件に対する一致性を検証する一致性検証手段であって、ノード情報に関しては、当該更新通知条件に含まれている前記第1のノード情報の示すノードに対する前記第2のノード情報の示すノードの世代関係の有無に基づき一致性を検証する一致性検証手段と、
    前記一致性検証手段によって一致性が認められた場合に、対応する更新通知条件の設定を要求したクライアント端末に前記第2のノード情報及び前記第2の更新操作種類情報を通知する更新通知手段と
    を具備することを特徴とする構造化文書管理システム。
  2. 前記第1及び第2のノード情報は、それぞれルートノードから該当するノードまでのパスを表す第1及び第2のパス文字列で構成されており、
    前記一致性検証手段は、世代関係の有無を、前記第2のパス文字列の前記第1のパス文字列に対する前方一致により検証する
    ことを特徴とする請求項1記載の構造化文書管理システム。
  3. 任意のクライアント端末からの更新通知条件設定要求を受けて、当該更新通知条件設定要求によって指定された、前記第1のノード情報及び前記第1の更新操作種類情報を含む更新通知条件を前記記憶手段に設定登録する更新通知条件設定手段であって、前記第1のノード情報が複数の構造をまとめて示す特定表記を持つ場合に、前記構造化文書データベースに格納されている構造化文書から、当該特定表記を持つノード情報で指定されるノードを抽出することにより、前記特定表記を持つ第1のノード情報を、当該抽出されたノードを一意に特定する第1のノード情報に展開して、当該展開された第1のノード情報を含む更新通知条件を前記記憶手段に設定登録する更新通知条件設定手段を更に具備することを特徴とする請求項1記載の構造化文書管理システム。
  4. 前記更新通知条件設定手段は、前記特定表記を持つ第1のノード情報を含む更新通知条件を曖昧更新通知条件として前記記憶手段に設定登録し、
    前記一致性検証手段は、前記第2のノード情報を前記第1のノード情報として含む更新通知条件が前記記憶手段に登録されていない場合、前記記憶手段に登録されている前記曖昧更新通知条件の中に、前記第2のノード情報の示すノードを通知対象ノードとする曖昧更新通知条件が存在するかを判定し、
    前記更新通知条件設定手段は、前記曖昧更新通知条件が存在する場合、前記第2のノード情報を前記第1のノード情報として含む更新通知条件を前記記憶手段に設定登録する
    ことを特徴とする請求項3記載の構造化文書管理システム。
  5. 記憶手段を有するコンピュータであって、構造化文書データベースに格納される構造化文書を管理するコンピュータに、
    任意のクライアント端末からの更新通知条件設定要求によって指定された、更新要求構造化文書に対する更新操作発生時の通知対象とするノードを示す第1のノード情報及び通知対象とする更新操作の種類を示す第1の更新操作種類情報を含む更新通知条件を前記記憶手段に設定登録するステップと、
    任意のクライアント端末からの更新要求に応じて、当該更新要求で指定された構造化文書に対して要求された更新操作を行うステップと、
    前記更新操作が行われたノードを示す第2のノード情報及び更新操作の種類を示す第2の更新操作種類情報を出力するステップと、
    前記第2のノード情報の示すノード及び前記第2の更新操作種類情報の示す更新操作の種類の前記記憶手段に記憶されている更新通知条件に対する一致性を検証するステップであって、ノード情報に関しては、当該更新通知条件に含まれている前記第1のノード情報の示すノードに対する前記第2のノード情報の示すノードの世代関係の有無に基づき一致性を検証するステップと、
    一致性が認められた場合に、対応する更新通知条件の設定を要求したクライアント端末に前記第2のノード情報及び前記第2の更新操作種類情報を通知するステップと
    を実行させるためのプログラム。
JP2006268645A 2006-09-29 2006-09-29 構造化文書管理システム及びプログラム Expired - Fee Related JP4393498B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006268645A JP4393498B2 (ja) 2006-09-29 2006-09-29 構造化文書管理システム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006268645A JP4393498B2 (ja) 2006-09-29 2006-09-29 構造化文書管理システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2008090459A true JP2008090459A (ja) 2008-04-17
JP4393498B2 JP4393498B2 (ja) 2010-01-06

Family

ID=39374562

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006268645A Expired - Fee Related JP4393498B2 (ja) 2006-09-29 2006-09-29 構造化文書管理システム及びプログラム

Country Status (1)

Country Link
JP (1) JP4393498B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012063453A1 (ja) * 2010-11-09 2012-05-18 日本電気株式会社 情報処理装置
JP2012141866A (ja) * 2011-01-05 2012-07-26 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012063453A1 (ja) * 2010-11-09 2012-05-18 日本電気株式会社 情報処理装置
JP2012141866A (ja) * 2011-01-05 2012-07-26 Fuji Xerox Co Ltd 情報処理装置及び情報処理プログラム

Also Published As

Publication number Publication date
JP4393498B2 (ja) 2010-01-06

Similar Documents

Publication Publication Date Title
US20240111812A1 (en) System and methods for metadata management in content addressable storage
US7421458B1 (en) Querying, versioning, and dynamic deployment of database objects
US7139973B1 (en) Dynamic information object cache approach useful in a vocabulary retrieval system
US8732127B1 (en) Method and system for managing versioned structured documents in a database
JP5265523B2 (ja) 有意な変更検索アラート
JP2008052662A (ja) 構造化文書管理システム及びプログラム
JP2009020901A (ja) データベースシステム、データベース検索方法及び記録媒体
JP2004287572A (ja) ファイルストレージサービスシステム、ファイル管理装置、ファイル管理方法、id指定型nasサーバ、および、ファイル読出方法
US8527480B1 (en) Method and system for managing versioned structured documents in a database
EP2646923A2 (en) File system backup using change journal
JP2008181350A (ja) 情報処理システム、情報処理装置及びプログラム
US11573961B2 (en) Delta graph traversing system
AU2007202450B2 (en) Information processing apparatus, information processing system, and program
JPH09204442A (ja) ドキュメントデータ検索システム
JP5063877B2 (ja) 情報処理装置およびコンピュータプログラム
US20110252313A1 (en) Document information selection method and computer program product
JP4393498B2 (ja) 構造化文書管理システム及びプログラム
CN108256019A (zh) 数据库主键生成方法、装置、设备及其存储介质
JP2006127229A (ja) 構造化文書検索システム、構造化文書検索方法及びプログラム
US7991741B2 (en) System and method for synchronizing data record with web document in a content management system
JP5224839B2 (ja) 文書管理システム、文書管理装置、文書管理方法及びプログラム
US8898122B1 (en) Method and system for managing versioned structured documents in a database
US9002810B1 (en) Method and system for managing versioned structured documents in a database
JPH117445A (ja) 統合化文書管理装置
JP4199916B2 (ja) 文書管理方法および装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090417

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090428

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090625

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090915

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20091013

R150 Certificate of patent or registration of utility model

Ref document number: 4393498

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121023

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121023

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131023

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees