JP4021518B2 - データベース・システム - Google Patents
データベース・システム Download PDFInfo
- Publication number
- JP4021518B2 JP4021518B2 JP13622297A JP13622297A JP4021518B2 JP 4021518 B2 JP4021518 B2 JP 4021518B2 JP 13622297 A JP13622297 A JP 13622297A JP 13622297 A JP13622297 A JP 13622297A JP 4021518 B2 JP4021518 B2 JP 4021518B2
- Authority
- JP
- Japan
- Prior art keywords
- agent
- request
- database
- user
- mediation
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multi Processors (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Computer And Data Communications (AREA)
Description
【発明の属する技術分野】
本発明は,複数のユーザと複数のデータベースが存在する場合に,ユーザとデータベースとの間を仲介する機能を,エージェントと呼ぶプロセスを分散して複数動作させることによって実現したデータベース・システムに関する。
【0002】
【従来の技術】
近年のコンピュータおよびコンピュータ・ネットワークの発達により,多数のコンピュータが高速なネットワークで結合された環境が整いつつある。このようなネットワークを通して,コンピュータ上で動作する多数のデータベースが利用可能になりつつある。
【0003】
しかし,これら多数のデータベースは,それぞれ異なる内容を異なる利用手順で提供している。したがって,ユーザにとっては,まず自分の要求にもっとも合致したデータベースを探索すること自体が,困難になってきている。また,データベース毎に異なる利用手順を習得するのも,ユーザにとって大きな負担になってきている。
【0004】
例えば,今日インターネット上には多数の文献データベースが存在するが,これらを利用するためには,ユーザは,まずどこにデータベースがあるのかを知る必要がある。また,データベースには,網羅的に文献を登録してあるデータベースもあるし,特定の分野に偏って情報を保持しているものもある。したがって,多数存在するデータベースから,自分の要求を満たした適切なものを選択しなくてはならない。さらに,個々のデータベースの利用手順は一般に異なる。したがって,利用者は各データベースの利用の手引等を参照しつつ,個別に検索を行うことになる。
【0005】
また最近では,CALSやECと呼ばれる動きが活発である。これらでは,電子的に物品の調達,管理や広告,売買などを行う仕組みが盛んに開発され,運用され始めている。しかし,これらの電子的な商取引の場合にも,データベースの選択や,利用手順に関する問題が発生している。
【0006】
例えば,商取引の発注者側は,複数の生産者のデータベースから最新の製品情報を入手したり,自分の期待に最も満足する生産者を選択して,その生産者から製品を購入したいという要求がある。また生産者側は,自分の持つ製品に興味を持つような適切な顧客を見つけ出したり,発注者に自社製品を納入した後で,保守のために納入先のデータベースにアクセスして,製品の稼動情報を取得したいといった要求がある。このように,会社間にまたがって,データベースを相互に参照・利用しようという要求は,現実のものとして強く存在する。
【0007】
しかしながら,データベースの形式や利用手順の差が,会社間はもとより,社内にも存在する場合があり,相互利用の大きな障害になっている。また,実際の業務に用いる場合には,情報の機密の確保や,利用権限の管理を厳しく行う必要があり,これらの点も問題となっている。
【0008】
このような問題を解決する方法として,ネットワーク上にエージェント(代理人)と呼ばれるプログラムを用いて,エージェントにユーザとデータベースとの間を仲介させる方法が提案されている。エージェントは多数のデータベースの内容や利用手順を知っており,データベースの選択や,利用手順の差異の吸収や,利用権限のチェックは,エージェントが行う。ユーザから見た場合,エージェントは多数のデータベースを統合したような,仮想統合データベースとして見える。
【0009】
【発明が解決しようとする課題】
以上のような技術的背景のもとで,本発明は,複数のユーザと複数のデータベースが存在する場合に,ユーザとデータベースの間を仲介する機構を対象としている。本仲介機構は,以下のようなユーザやデータベースを仮定している。機種の異なる計算機上で複数のデータベースが動作するような,いわゆる異機種分散データベース環境では,ごく自然にこのような状況が発生する。
【0010】
・ユーザは一般に複数存在し,ユーザの発行する要求や受け取る回答の形式が複数存在する。
・データベースは一般に複数存在し,データベースの発行する要求や受け取る回答の形式が複数存在する。
【0011】
本仲介機構は,このような仮定の下で以下の機能の実現を図る。これらの機能を図27に示す。図中,80はユーザ,81は仲介機構,82〜85はデータベースを表す。なお,本明細書では要求側をユーザ,回答側をデータベースと呼んでおり,本発明は狭義のユーザ,狭義のデータベースに限定されるわけではない。一般には適切な要求や回答が行える人間,情報機器,プログラム等が,要求側(本発明でのユーザ)や回答側(本発明でのデータベース)になり得る。
【0012】
(1)ユーザ80の指定する出力手順に沿って要求を受け取る。
(2)ユーザ80の要求に基づいて,データベース82〜85の中から,その要求を処理する適切なデータベースを選択する。なお,選択されたデータベースは複数の場合もあり得る。
【0013】
(3)データベースの指定する入力手順に合わせて,要求を送る。
(4)データベースの指定する出力手順に合わせて,回答を受け取る。選択されたデータベースが複数の場合には,複数の回答を取りまとめる。
【0014】
(5)ユーザ80の指定する入力手順に沿って回答を送付する。
このような仲介機構を単純に実現する方法として,集中構成による実装を行う方法が考えられる。図28は,集中構成による仲介機構の説明図である。
【0015】
仲介機能の集中構成とは,図28のように,一つのプログラムで実現される仲介機構93がすべてのユーザ90〜92からの出力を受信し,すべてのデータベース94〜97に入力する構成を指す。データベース94〜97からの回答は,この逆の道筋を通り,一度,仲介機構93に集められたあとで,質問をしたユーザ90〜92に送られる。しかし,このような集中構成では,以下のような問題が発生する。
【0016】
・「動作時の負荷の集中」
すべての仲介作業を一つのプログラムで行うため,負荷が大きくなりやすい。また,ユーザ,データベースの増加が直接負荷の増加になり,負荷を分散させることができない。
【0017】
・「運用管理コストの集中」
ユーザやデータベースを登録するような運用形態の場合,それぞれが増加するたびにプログラムの設定変更が必要になり,システム全体に対して影響が発生する。また,入出力形式が変更,削除されたり新規に追加される場合にも,プログラムの変更が必要となるため,システム全体に対して影響が発生する。
【0018】
・「情報の機密を保持できない」
例えば,どのデータベースがどのような要求を受け付けられるかは,場合によっては機密情報となりえるが,集中構成ではそのような情報が一箇所に集められるため,情報の機密が保持できない。例えば,図28に示す仲介機構93は,すべてのデータベース94〜97に対してアクセスすることができ,仲介機構93の管理者は,データベース94〜97の情報を何らの制限なしに得ることができる。
【0019】
本発明は,仲介機構を分散構成にすることによって,動作時の負荷の集中,運用管理コストの集中,情報の機密を保持できないという集中構成の問題点を解決することを目的とする。
【0020】
【課題を解決するための手段】
図1は本発明の原理説明図である。
本発明では,一つの仲介機構を,エージェントと呼ばれる通信機能を持ったプロセスを複数用いることにより実現する。エージェントは,一般に複数の計算機上で動作するが,1台の計算機上で一つのエージェントのみが動作する場合もあるし,複数のエージェントが動作する場合もあり得る。
【0021】
図1に示すように,分散構成による仲介機構を,3種類のエージェントを用いて構成する。エージェントの分類と役割は,以下の通りである。
・ユーザ・エージェント
ユーザ・エージェント21〜24は,ユーザ11〜13とエージェント群(仲介機構全体)とのインターフェイスを取り持つエージェントである。ユーザ毎にアクセスの方法や必要とする回答の書式が異なる場合には,その差異はユーザ・エージェント21〜24が吸収する。ユーザ数が増加した場合にも,ユーザ・エージェントを局所的に増加させることで,エージェント群全体を変更せずに対応できる。
【0022】
・仲介エージェント
仲介エージェント31〜38は,ユーザ・エージェント21〜24とデータベース・エージェント(以下,DBエージェントと記す)41〜44との間を仲介するエージェントである。ユーザ・エージェント21〜24は,仲介エージェント31〜38に要求を送付することで,DBエージェント41〜44を選択する。
【0023】
・DBエージェント
DBエージェント41〜44は,データベース51〜54とエージェント群との間のインターフェイスを取り持つエージェントである。データベース51〜54毎の利用手順の差異や,回答形式の差異は,DBエージェント41〜44が吸収する。データベースが追加された場合でも,対応するDBエージェントを追加することで,エージェント群全体を変更せずに対応できる。
【0024】
詳しくは,本発明のデータベース・システムは,ユーザからの検索要求を受信する複数のユーザ・エージェントと,複数のデータベースの各々に対応した複数のデータベース・エージェントと,ユーザ・エージェントとデータベース・エージェントとの仲介を行う複数の仲介エージェントとを有し,前記ユーザ・エージェントの各々,前記データベース・エージェントの各々,前記仲介エージェントの各々は,それぞれ,条件に対応した出力先のエージェントを記憶した記憶手段を有し,該記憶手段の記憶内容に基づく転送処理を行い,ユーザより前記ユーザ・エージェントに対する検索要求があると,該ユーザ・エージェントは対応する記憶手段の記憶内容に基づき,前記仲介エージェントのいずれかへデータベース選択要求の転送を行い,前記仲介エージェントは,各々,前記ユーザ・エージェントまたは前記仲介エージェントのいずれかからデータベース選択要求を受信した場合,該仲介エージェントが有する記憶手段の記憶内容に基づき,前記仲介エージェントまたは前記データベース・エージェントのいずれかへデータベース選択要求を転送し,前記データベース・エージェントは,データベース選択要求を受信すると,該データベース・エージェントが有する記憶手段の記憶内容に基づき,前記仲介エージェントのいずれかへ選択結果の転送を行い,さらに前記各仲介エージェントは,前記データベース・エージェントまたは前記仲介エージェントのいずれかから選択結果を受信すると,該仲介エージェントが有する記憶手段の記憶内容に基づき,前記仲介エージェントまたは前記ユーザ・エージェントへの転送処理を行い,前記ユーザ・エージェントは,さらに,選択結果を受信すると,該選択結果に基づき選択された前記データベース・エージェントへ,直接ユーザより受信した検索要求を送信することを特徴とする。
以上のユーザ・エージェント,仲介エージェントおよびDBエージェントを実現するプログラムは,計算機が読み取り可能な適当な記憶媒体に格納することができる。そのプログラムを記憶媒体から計算機のメモリにローディングし,実行することにより,ユーザ・エージェント,仲介エージェントおよびDBエージェントを動作させることができる。
【0025】
【発明の実施の形態】
以下,本発明の実施の形態を図面を参照して説明する。
1.システム構成
図2は,本発明の実施の形態におけるシステム構成の例を示す。
【0026】
図2において,61〜68はCPUおよびメモリ等からなる計算機,UAはユーザ・エージェント(User Agent) ,FAは仲介エージェント(Facilitate Agent) ,DAはDBエージェント(Database Agent),71,72はWANやLANなどのネットワーク,73はネットワーク間の接続を行うルータを表す。
【0027】
各エージェントUA,FA,DAは,他のエージェントと通信する機能を持つ。これらのエージェント群は,一般に複数の計算機上で動作する。1台の計算機上で一つのエージェントのみが動作する場合もあるし,複数のエージェントが動作する場合もあり得る。複数の計算機に分散された各データベース51〜54に対応して,これらのデータベース51〜54にそれぞれアクセスするためのDBエージェントDAが配置される。
【0028】
例えば,計算機62のユーザが,ユーザ・エージェントUAを介してデータベース選択要求を行うと,その要求に関する条件に応じて要求の送付先が順次決定され,データベース51が該当する場合には,仲介エージェントFA,ネットワーク71,ネットワーク72および計算機64の仲介エージェントFAとデータベースエージェントDAを介してデータベース51の選択が行われるようになっている。一つの要求に対して,複数のデータベースが該当する場合には,複数のデータベースの選択が行われる。
【0029】
2.分散構成による仲介機構の動作
2.1 ユーザからの要求手順
仲介機構の動作の説明の前に,まず仲介機構に対して与えられるユーザからの要求について説明する。
【0030】
図3は,本実施の形態で対象とするユーザからの要求形式の例を示す図である。本実施の形態で対象とするユーザからの要求形式は,インターフェイスの統一のため,例えば図3のような形式に限定する。すなわち,ユーザからの要求は,まずデータベースを選択するための要求が発行され,続いて選択されたデータベースに対する要求が必要な回数だけ発行され,最後に選択したデータベースへの要求を終了する通知がなされるものとする。
【0031】
ユーザがデータベースの概要を把握している場合には,ユーザはデータベースを選択するための要求と,そのデータベースへの要求を区別して意識していると思われる。そのため,このような限定を加えても実際の利用には大きな不都合は生じない。また,このような限定を加えた事により,仲介機構の動作を,この要求のパターンに対応した,簡潔な理解しやすいものとすることが可能となる。この点は大きな利点である。
【0032】
以下では,データベースを選択する要求を「DB選択要求」,選択されたデータベースに対しての要求を「DB操作要求」,要求終了の通知を「DB完了要求」,これらが複数個つながったものを「DB複合要求」,以上すべてをまとめて「DB関連要求」と呼ぶことにする。
【0033】
また,DB選択要求からDB完了要求までを,ひとつの「セッション」と呼び,ユーザはセッション毎に一意な識別番号(セッションID)を割り当てるものとする。上記のDB関連要求は,セッションIDとともに仲介機構に送られるものとする。これは,DB操作要求などが単独でなされた場合,どのDB選択要求に対応するかを識別する必要があるためである。
【0034】
2.2 個々のエージェント動作
3種類のエージェントは,それぞれ基本動作と拡張動作を行う。エージェントの基本動作とは,自分の持つ条件に応じて,要求を配送し,回答をまとめる動作を指す。各エージェントは,他のエージェントの宛先と,そのエージェントに要求を送る場合に満たさなくてはならない条件の組を持つ。この条件と宛先の記述されている表を「条件表」と呼ぶ。
【0035】
図4は,このエージェントの持つ条件表の構成例を示している。エージェントに要求が与えられた場合,そのエージェントは条件表を参照してこの要求が条件を満たす宛先すべてに対して,その要求を配送する。エージェントは,要求の回答をすべてまとめて,もともとの要求元に回答する。
【0036】
この基本動作では,同時にタイムアウト処理や,要求の二重処理の回避も行われるが,これらに関しては,それぞれ第2.4節,第2.5節において詳しく説明する。
【0037】
以上の基本動作に加えて,ユーザ・エージェントはユーザとのインターフェイス機能が,DBエージェントにはデータベースとのインターフェイス機能が,拡張機能として定義されている。
【0038】
2.3 全体的な仲介機構の動作
仲介機構のエージェント群の動作は,大きく2段階に別れる。なお,以下のように2段階に分割したのは,一旦選択した個別DBに対して,異なる要求を何度も繰り返す可能性が大きいためである。
【0039】
(1)個別DB群の選択
第1段階では,まず個別のデータベースの選択を行う。選択されたデータベースを,DB群と呼ぶ。データベースには,まだ実際の要求は転送しない。
【0040】
(2)要求回答処理
第2段階では,第1段階で得られたDB群に対して,実際の要求を発行し,得られた回答をまとめてユーザに返答する。
【0041】
このような仲介機構の動作を図5および図6に従って説明する。
図5は,仲介機構の第1段階の動作例を示している。
第1段階ではユーザの要求を満たすような,個別のデータベースを選択する。まず,ユーザからの要求をもとにして,DB選択要求をユーザ・エージェントが発行する。DB選択要求は,その要求を受け取った仲介エージェントの持つ条件表に基づいて分岐していき,最後にはDBエージェントにまで到達する。
【0042】
図5(A)の例では,ユーザ12のDB選択要求をユーザ・エージェント22が受け取り,各エージェントが持つ条件表に従って,順次,仲介エージェント32,31,36へ送られている。仲介エージェント36では,条件を満たす仲介エージェント37とDBエージェント41へ要求を送り,さらに仲介エージェント37では,DBエージェント42,44へ要求を送っている。
【0043】
要求を受け取ったDBエージェント41,42,44は,その要求が自分の持つ条件を満たしている場合には,自分の管理するデータベース51,52,54の名前をそれぞれ返し,そうでなければエラーを返す。
【0044】
なお,一度処理した要求が同じエージェントに二度来た場合には,そのエージェントがエラーを返答し,条件表による配送処理は行わない。図5(A)中の点線の矢印は,同じ要求が二重に到着したためエラーになった経路である。例えば,仲介エージェント31には,同じ要求が仲介エージェント32,34から送付されている。この場合,後からの要求はエラーとして棄却される。
【0045】
図5(B)は,DB選択結果の集約の過程を示している。各エージェントは,自分が発行したすべてのメッセージの回答もしくはエラーがそろった時点で,それらをまとめて要求元に返答する。この動作が繰り返され,最終的には,送られてきた経路の逆を通って,すべての回答が最初のユーザ・エージェント22に集められる。そのため,最初のユーザ・エージェント22は,エージェント群によって選択された個別データベース51,52,54の集合(DB群)を持つことになる。
【0046】
図6は,仲介機構の第2段階の動作例を示している。
第2段階では,図6(A)のように,選択されたDB群に対応するDBエージェント41,42,44に対して,最初のユーザ・エージェント22から直接DB操作要求を送る。各DBエージェント41,42,44は,送られた要求をデータベース51,52,54に与え,図6(B)のように,得られた回答をユーザ・エージェント22に返答する。ユーザ・エージェント22は,各DBエージェント41,42,44から得られた回答をまとめて,ユーザ12に返答する。以上により,ユーザ12の発行した質問に対して,仲介機構からの回答がなされたことになる。
【0047】
2.4 タイムアウト処理
分散構成でシステムを構成した場合には,エージェントの予期せぬ動作や通信回線のトラブルなどにより,要求への回答が戻ってこない場合が考えられる。そのような場合には返答を永久に待ち続けるのではなく,一定時間待った後に返答がなければあきらめて,エラー処理を行う必要がある。このような処理を「タイムアウト処理」と呼ぶ。
【0048】
従来のタイムアウト処理は,一回の通信に対してあらかじめ決められた時間だけ待つようにする方式であった。しかし,分散構成で仲介機構を実現する場合には,通信が何段にも連続して行われる。このような場合に,途中の通信すべてに同一のタイムアウト時間を設定すると,それぞれの通信や計算処理に要する時間が考慮されていないため,ユーザとの間のインターフェイスはタイムアウトで終了しているにもかかわらず,内部では回答を計算し続けるような,無駄な処理を行ってしまう可能性がある。
【0049】
そのため,通信が何段も中継されるような場合に,途中の通信時間,計算時間などの処理時間を考慮して,タイムアウトまでの時間を決める方式を考える必要がある。ここでは,以下の二つの方式を考案した。
【0050】
[方式1]タイムアウトする時刻を指定する方式
この方式は特定の時刻になったときにタイムアウト処理を行うように指定する方式である。次のエージェントに渡すタイムアウトの時刻は,自分の回答処理に必要な時間を差し引いた時刻とする。
【0051】
[方式2]タイムアウトまでの猶予時間を引き継ぐ方式
この方式では,要求を受け取る際に,この要求に対する返答を行うまでの猶予時間を同時に受け取る。要求を受け取ったエージェントは,この猶予時間から自分の要求処理および回答処理に必要な時間を差し引いて,新しい猶予時間を計算する。次のエージェントに要求を配送する際には,要求と同時に新しい猶予時間を与え,自分も新しい猶予時間だけ返答を待ち,返答が時間内に到着しなければ,エラーを要求元に返答する。
【0052】
方式1は,タイムアウトを時刻で管理するために,エージェントが自分の処理に必要な時間を不正確に見積もった場合にも,ユーザの指定した時刻を越えて不必要な処理が行われない点が利点である。逆に欠点としては,エージェントの参照する時計の時刻を,すべてのエージェントにおいて正しく設定しておく必要がある点が挙げられる。
【0053】
方式2は,時刻ではなく時間間隔でタイムアウトを管理するために,各エージェントの参照する時計の時刻を正しく設定しておく必要が必ずしもない点が利点である。分散構成でエージェントを動作させる場合には,すべての時計が正しく設定されていることが期待できない場合が多い。このような場合には,時刻を用いる方式1は採用不可能である。逆に欠点としては,エージェントが自分の処理に必要な時間を短く見積もった場合には,ユーザの指定した時刻を過ぎても,回答を生成するための処理が,引き続き行われてしまう可能性がある。
【0054】
ここでは,以上の点を総合的に考慮した結果,タイムアウトまでの猶予時間を引き継ぐ方式を採用した。
2.5 要求の二重処理の回避方式
各エージェントは,図4に示すような条件表に基づいて,DB選択要求の次の配送先を決定するが,条件表の複数の項目が満たされた場合には,それぞれの配送先に同じ要求を配送する。このような同じ要求は,要求配送の経路がループ状につながってしまった場合には,そのままでは同じ要求がタイムアウトになるまで繰り返し処理され続けることになり,非効率的である。また,もとは同じ要求から複製されたいくつもの要求が,同じエージェントに配送される可能性もある。この場合も同じ要求が何度も処理されるため,同様に非効率的である。
【0055】
このような事態を避けるため,ここでは要求を最初に発行するユーザ・エージェントが,要求に識別番号(要求ID)を付加する方式を採用する。識別番号はすべてのエージェント群を通して,重複することのないような番号にする。このような番号は,ユーザ・エージェントの動作する計算機のネットワーク上での名前(ホスト名など)と,シーケンス番号または要求を発行する時刻などを組み合わせることにより,容易に生成可能である。
【0056】
各エージェントは,自分が過去に処理した要求の要求IDを記録している。新たに要求が与えられた場合には,その要求IDと記録中の番号とを比較する。一致した要求IDが発見された場合には,二重に要求が届いた場合であるので,エラーを返答する。
【0057】
古い要求の要求IDを記憶から除去する方法には何通りか考えられる。例えば,記憶している要求IDの個数が,あらかじめ定めておいた上限に達した場合に,古い要求IDを除去する方式や,要求処理後一定時間を経過した場合にその要求IDを除去する方法などが挙げられる。前者は,古い要求IDが必ず一定数存在することになるので,新しい要求IDとの比較に時間を要する。また後者は,消去するまでの待ち時間を適切に定める必要がある。
【0058】
本実施の形態では,主に後者を用いる。すなわち,ある要求の要求IDは,その要求に付属しているタイムアウト猶予時間が経過した後に消去するものとする。この方法で要求の二重処理が発生しないことは,以下のように説明できる。
【0059】
まず,一つの要求が二つに分岐したのち,あるエージェントに別々に到着した場合を想定しよう。そのエージェントは,先に到着した方の要求の要求IDを,その要求のタイムアウト猶予時間以上の間,保持しておく。このタイムアウト猶予時間は,「この時間が経過した時にメッセージを送ると,最初に要求を生成したユーザ・エージェントがタイムアウトする直前にメッセージが到着するような時間」を意味している。
【0060】
さて,このタイムアウト猶予時間が経過したのちに,同じ要求IDを持つ要求が,そのエージェントに到達する場合があるかどうかを考えよう。この要求は,はじめの要求と比べて遠回りをしてこのエージェントに到着している。そのため,このエージェントから回答がなされる場合にも,同じ経路を通って,遠回りで回答が伝達される。したがって,あとからの要求に付属するタイムアウト猶予時間は,はじめの要求のものと比べて,短くなっているはずである。つまり,あとの要求の回答は,はじめの回答の要求よりも,早い時刻に回答しなければ間に合わないはずである。したがって,はじめに到着した要求のタイムアウト猶予時間が経過した後で,同じ要求IDを持つ別の要求が到着することは,原理的には有り得ない。そのため,要求IDを保持しておく時間は,先に到着した要求のタイムアウト猶予時間で十分であるといえる。
【0061】
ただし,実際にはタイムアウト猶予時間を次のエージェントに伝える際に,自分のエージェントの処理に必要な時間を正確に予測できない場合が発生すると予想される。そのため,現実的には,与えられたタイムアウト猶予時間よりも多少長めに要求IDを記録しておくのが望ましい。
【0062】
なお,要求IDの記憶数には限界があるため,記憶している一定数を越えた場合には古い要求IDから消去していく方法も,併せて採用する。これは十分な記憶容量が確保できない場合に用いられるものであり,補助的なものである。
【0063】
3.各エージェントのモジュール構成およびフローチャート
3.1 ユーザ・エージェントの場合
ユーザ・エージェントのモジュール構成は,図7に示すようになっている。ユーザ・エージェントは,内部的には複数のプロセスで構成されている。図7において,入力受付部201,条件部203,要求ID記録部204,DB群記録部205は,常駐型のプロセスであり,ユーザ・エージェントが起動されてから終了要求が来るまでの間,外部からの入力を待ちながら動作し続けている。入力処理部202は,外部からの入力が入力受付部201に来るたびに生成されるプロセスである。
【0064】
実際の処理は,主に入力処理部202が,他の内部プロセスや他のエージェントと通信を行いながら実行する。このように入力処理部202が外部入力のたびに生成されるのは,一つのプロセスで入力を処理しようとすると,一つの入力の処理が終らない限り,次の処理に進めなくなり,ユーザから見た時の仲介機構の反応が,鈍くなるのを避けるためである。なお,以下の説明において「〜部」と称する場合には独立して動作する内部プロセスを指し,「〜ルーチン」と称する場合には,ある内部プロセスの一部を構成するサブルーチンを表す。
【0065】
入力受付部201は,図8に示すDBエージェントの入力受付部301と同じ仕様である。要求をチェックし,入力処理部202を起動して,要求の処理を依頼する。終了要求が管理者によって与えられた場合には,処理を終了する。またデバッグのための情報や,アクセス記録などの内部情報が要求された場合には,それらの情報を返答する。内部情報とは,具体的にはデバッグのための経路トレース情報や管理運用のための時間帯別の処理件数などの情報である。
【0066】
入力処理部202は,DB複合要求が来た場合には個々のDB関連要求に分解し,それぞれを個別要求処理ルーチンに渡して,要求に対する処理を行う。
DB群記録部205は,DB選択要求によって選択されたDB群をセッションIDをキーにして記録し,DB群の検索,削除などに対応する。記録情報は,例えば次のようなものである。
【0067】
(セッションID1,{DB11,DB12,…})
(セッションID2,{DB21,DB22,…})
……
条件部203,要求ID記録部204の仕様は,仲介エージェント(図8)の条件部303,要求ID記録部304,およびDBエージェント(図9)の条件部403,要求ID記録部404と共通である。
【0068】
条件部203は,図4で説明したような要求の配送先を決定する条件表を保持し,入力処理部202からの要求に応じて条件表を回答する。また,エージェントの管理者からの条件の登録,削除要求なども処理する。
要求ID記録部204は,過去に処理を行ったことのある要求の識別番号(要求ID)と,その要求に対するタイムアウト猶予時間を記録しておく内部プロセスである。主に登録要求,検索要求を受け付ける。要求ID記録部204には,記録できる要求IDの個数に上限が設定されており,その上限を越えて記録しようとした場合には,古い要求IDを上書きする。また,検索要求がなされた場合には,記憶している過去の要求IDと順に照合して行くが,一致する要求IDが見つかればそのIDを,そうでなければ見つからなかった旨を返答する。
【0069】
なお,第2.5節で述べたように,要求IDは,そのエージェントのタイムアウト猶予時間を経過したものは削除してよい。本実施の形態では,削除処理を別個に設けることはせず,検索中に,十分古い要求IDが見つかった場合には,その要求IDを削除することにする。
【0070】
他に,内部プロセスではないが,大きな処理単位として,個別要求処理ルーチン,DB操作要求処理ルーチンがある。これについては,処理フローチャートの説明で後述する。
【0071】
3.2 仲介エージェントの場合
仲介エージェントは,図8に示すように,入力受付部301,入力処理部302,条件部303および要求ID記録部304の4種類の内部プロセスから構成されている。ユーザ・エージェントの場合と同様に,入力処理部302は,外部からの入力が入力受付部に来るたびに生成されるプロセスであり,他は常駐プロセスである。
【0072】
入力受付部301は,要求IDをもとに二重要求(以前処理したことのある要求)かどうかをチェックし,そうならばエラーを返す。要求がDB選択要求であれば,入力処理部302を起動し,処理を依頼する。
【0073】
入力処理部302は,自分に与えられる要求はDB選択要求のみであるので,そのままDB選択要求処理ルーチン(後述する)を呼ぶ。
条件部303,要求ID記録部304は,全エージェントに共通であり,図7のユーザ・エージェントで説明した処理と同様な処理を行う。
【0074】
3.3 DBエージェントの場合
DBエージェントは,図9に示すように,入力受付部401,入力処理部402,条件部403,要求ID記録部404およびDBインターフェイス部405の5種類の内部プロセスから構成されている。ユーザ・エージェントの場合と同様に,入力処理部402は,外部からの入力が入力受付部401に来るたびに生成されるプロセスである。
【0075】
入力受付部401は,図7に示すユーザ・エージェントの入力受付部201と同じ仕様である。
入力処理部402は,DB選択要求が来ればDB選択要求処理ルーチン(後述)を呼ぶ。DB操作要求であれば,DBインターフェイス部405に要求を転送する。
【0076】
DBインターフェイス部405は,実際のデータベース51と通信を行って,要求を依頼し,回答を受け取る。DBインターフェイス部405は,同時に一度の要求しか処理しないようになっているので,複数の要求を同時に受け取れないようなデータベースにも対応している。
【0077】
条件部403,要求ID記録部404は,全エージェントに共通であり,上述した処理を行う。
3.4 各部の処理フロー
図10は,ユーザ・エージェントの入力受付部201およびDBエージェントの入力受付部301の処理フローチャートである。
【0078】
入力受付部201,301への入力情報は,(a) セッションIDとDB関連要求,(b) 終了要求,(c) 内部情報要求のいずれかの情報である。入力受付部201,301は,入力待ちの状態(図10のステップS10)において,外部からの入力があると,まずステップS11により二重要求チェックを行う。二重要求であれば,その要求を廃棄するエラー(ERROR)処理を行い(S12,S13),ステップS20へ進む。
【0079】
二重要求でない場合,DB関連要求であるかどうかを判定し(S14),DB関連要求であれば入力処理部201,301を生成して,その要求を引数として入力処理部201,301に渡す。その後,ステップS20へ進む。
【0080】
終了要求であれば,処理を終了する(S16)。
デバッグや管理運用のための内部情報要求であれば(S17),要求された内部情報を要求元へ送り(S18),ステップS20へ進む。内部情報要求でもなければ,その要求をエラーとしてERROR処理を行い(S19),ステップS20へ進む。ステップS20では,内部情報として提供するための処理件数やエラー情報などのアクセス記録の更新を行い,その後,ステップS10の入力待ち状態に戻る。
【0081】
図11は,ユーザ・エージェントの入力処理部202の処理フローチャートである。
入力処理部202への入力情報は,セッションIDとDB関連要求である。ステップS30では,DB関連要求を内部形式に変換する。ステップS31では,要求がDB複合要求かどうかを判定し,DB複合要求でなければ,ステップS32によって,個別要求処理ルーチン(図12)を呼び出し,個別のDB関連要求を処理する。その後,ステップS37へ進む。
【0082】
DB複合要求であれば,ステップS33へ進み,一連の要求を個別要求に分解する。そして,分解した個別要求について,先頭から順番にすべての個別要求についての処理を行う(S34〜S36)。すべての個別要求について処理をしたならばステップS37へ進む。
【0083】
ステップS37では,結果をユーザの要求する形式に変換して回答し,その後,処理を終了する。
図12は,ユーザ・エージェントの個別要求処理ルーチンの処理フローチャートである。
【0084】
個別要求処理ルーチンへの入力情報は,(a) セッションIDとDB選択要求,(b) セッションIDとDB操作要求,(c) セッションIDとDB完了要求のいずれかの情報である。
【0085】
最初に,DB選択要求であるかどうかを判定し(S40),DB選択要求であれば,新規に要求ID,タイムアウト猶予時間を設定した後に,DB選択要求処理ルーチン(図13)を呼び,条件表に基づいてDB選択要求を仲介エージェント,DBエージェントに配送し,条件を満たすDB群を選択し,DB群記録部205にセッションIDとともに記録する(S41〜S44)。
【0086】
要求がDB操作要求であれば(S45),DB操作要求処理ルーチン(図15)を呼ぶ(S46)。
要求がDB完了要求であれば(S47),付属するセッションIDを使って,対応するDB群を,DB群記録部205に要求して削除する(S48)。
【0087】
図13は,DB選択要求処理ルーチンの処理フローチャートである。なお,DB選択要求処理ルーチンは,全エージェントに共通のサブルーチンである。
DB選択要求処理ルーチンへの入力情報は,DB選択要求と要求IDとタイムアウト猶予時間の情報である。まず,ステップS50では,入力したタイムアウト猶予時間を自分の処理に必要な時間だけ減少させる。次に,ステップS51では,タイムアウト猶予時間が0以下であるかどうかをチェックし(S51),0以下になっていれば,エラー(ERROR)処理を行い(S52),処理を終了する。
【0088】
タイムアウト猶予時間が0以下になっていなければ,条件部から条件表を取得し(S53),条件に合う出力先のリストを作成する(S54)。そして,すべての出力先に対してステップS551〜S553を実行する(S55)。すなわち,出力先が自分でなければ(S551),出力先に要求を送付する(S552)。出力先が自分となっている場合,ここでは特別な意味を持たせており,自分の宛先を回答する(S553)。すなわち,DBエージェントの場合,自分が管理するデータベースの名前を回答する処理を行う。
【0089】
次に,ステップS56では,回答待ちルーチン(図14)を呼び出し,その後,ステップS57によって回答をまとめて,その回答を要求元へ返送する。
図14は,回答待ちルーチンの処理フローチャートである。回答待ちルーチンは,全エージェントに共通のサブルーチンである。
【0090】
回答待ちルーチンの入力情報は,タイムアウト猶予時間と回答を行うエージェント群の情報である。回答待ちルーチンは,タイムアウト処理を行う部分であり,返答がくるか,またはタイムアウト猶予時間が経過するのを待つ(S60)。すべての返答が揃うか,タイムアウト猶予時間が経過するかのいずれかが満たされると,その時点までに得られている回答を返答し(S61〜S63),処理を終了する。
【0091】
図15は,ユーザ・エージェントのDB操作要求処理ルーチンの処理フローチャートである。
DB操作要求処理ルーチンへの入力情報は,セッションIDとDB操作要求である。DB操作要求処理ルーチンは,実際にDB操作要求を処理する部分である。ステップS70では,DB群記録部205から与えられたセッションIDに対応するDB群を取得する。次に,ステップS71では,要求IDを新規に登録し,続いてステップS72では,タイムアウト猶予時間を決定する。
【0092】
ステップS73では,DB群記録部205から得たDB群内のすべてのDBエージェントに(DB操作要求,要求ID,タイムアウト猶予時間)の要求メッセージを発行する。その後,ステップS74では,図14の回答待ちルーチンを呼び出し,ステップS75では,結果を集計してユーザへ回答する。
【0093】
図16は,ユーザ・エージェントのDB群記録部205の処理フローチャートである。
DB群記録部205への入力情報は,検索または削除時の場合にはセッションID,登録時の場合にはセッションIDとDB群の情報である。または内部情報要求であることを示す要求種別情報である。DB群記録部205は,入力待ち状態(S80)において要求があると,登録要求に対しては,セッションIDとDB群の登録処理(S81,S82),削除要求に対しては,該当するセッションIDのエントリの削除処理(S83,S84),検索要求に対しては,該当するセッションIDのエントリを回答し(S85,S86),終了要求に対しては,処理を終了する(S87)。また,デバッグや管理運用のための内部情報要求に対しては,要求された内部情報を提供する(S88,S89)。以上の要求に該当しない場合については,所定のエラー処理を行う(S90)。
【0094】
その後,終了要求以外についてはアクセス記録を更新し(S91),ステップS80の入力待ち状態に戻る。
図17は,条件部の処理フローチャートである。条件部の処理手続きは,全エージェントに共通である。
【0095】
条件部への入力情報は,(a) 条件登録要求,(b) 条件削除要求,(c) 条件表取得要求,(d) 終了要求,(e) 内部情報要求のいずれかの情報である。
まず,ステップS100では,初期条件として与えられた条件表を所定のファイルから読み込み,ステップS101で入力待ち状態に入る。何らかの要求があると,ステップS102へ移り,要求が条件登録要求または条件削除要求であるかどうかを判定する。条件登録要求または条件削除要求の場合,要求元がアクセス権限を持つかどうかをチェックし(S103),アクセス権限がなければエラー処理を行う(S104)。アクセス権限があれば,要求された条件表への条件の登録または条件の削除を行い,書き換えた結果をファイルに書き込み,処理した旨を回答する(S105,S106)。
【0096】
要求が条件表取得要求の場合,条件表を要求者に回答する(S107,S108)。
終了要求に対しては,処理を終了する(S109)。
【0097】
また,デバッグや管理運用のための内部情報要求に対しては,要求された内部情報を提供する(S110,S111)。以上の要求に該当しない場合については,所定のエラー処理を行う(S112)。
【0098】
その後,終了要求以外についてはアクセス記録を更新し(S113),ステップS101の入力待ち状態に戻る。
図18は,要求ID記録部の処理フローチャートである。要求ID記録部の処理手続きは,全エージェントに共通である。
【0099】
要求ID記録部への入力情報は,(a) 登録要求と要求ID,(b) 検索要求と要求IDのいずれかの情報である。ステップS120の入力待ち状態において,何らかの要求があると,その要求種別に応じて以下の処理を行う。
【0100】
登録要求の場合(S121),要求IDの記憶個数が上限に達したかどうかによって(S122),最も古いIDへの新しい要求IDの上書き(S123),または空き領域への新しい要求IDの追加登録(S124)を行う。
【0101】
検索要求の場合(S125),記録している要求IDと順に照合し(S126),同一IDを発見したときには該当エントリを回答する(S127)。全IDと照合しても要求IDが見つからないときは,該当無しを回答する(S128)。この照合の途中で,タイムアウト猶予時間よりも十分に古い要求IDを発見したときには,その要求IDを削除する(S129)。
【0102】
終了要求の場合,処理を終了する(S130)。
また,デバッグや管理運用のための内部情報要求に対しては,要求された内部情報を提供する(S131,S132)。以上の要求に該当しない場合については,所定のエラー処理を行う(S133)。
【0103】
その後,終了要求以外についてはアクセス記録を更新し(S134),ステップS120の入力待ち状態に戻る。
図19は,仲介エージェントの入力受付部301の処理フローチャートである。
【0104】
入力受付部301は,外部から入力情報として,(a) DB選択要求と要求IDとタイムアウト猶予時間,(b) 終了要求,(c) 内部情報要求のいずれかの情報を受け取る。入力待ち状態(S150)において,要求を受け取ると,要求IDをもとに二重要求かどうかをチェックし(S151),二重要求であればエラー処理を行う(S152,S153)。
【0105】
二重要求でない場合,DB選択要求に対しては,入力処理部302を生成し,要求を引数として入力処理部302に渡す(S154,S155)。
終了要求に対しては,処理を終了する(S156)。
【0106】
また,デバッグや管理運用のための内部情報要求に対しては,要求された内部情報を提供する(S157,S158)。以上の要求に該当しない場合については,所定のエラー処理を行う(S159)。
【0107】
その後,終了要求以外についてはアクセス記録を更新し(S160),ステップS150の入力待ち状態に戻る。
図20は,仲介エージェントの入力処理部302の処理フローチャートである。
【0108】
入力処理部302は,入力情報としてDB選択要求,その要求IDおよびタイムアウト猶予時間の情報を受け取ると,ステップS140において,DB選択要求処理ルーチンを呼び出す。DB選択要求処理ルーチンでは,図13で説明した処理を行う。
【0109】
図21は,DBエージェントの入力処理部402の処理フローチャートである。
入力処理部402は,入力情報として,(a) DB選択要求,その要求IDおよびタイムアウト猶予時間,(b) DB操作要求,その要求IDおよびタイムアウト猶予時間のいずれかの情報を受け取る。
【0110】
DBエージェントの入力処理部402は,DB選択要求に対しては,DB選択要求処理ルーチン(図13)を呼び出す(S161,S162)。
DB操作要求に対しては,DBインターフェイス部405に要求を転送し,DBインターフェイス部405からの回答を要求元に転送する(S163〜S165)。それ以外の要求に対しては,所定のエラー処理を行い(S166),処理を終了する。
【0111】
図22は,DBエージェントのDBインターフェイス部405の処理フローチャートである。
DBインターフェイス部405の入力情報は,(a) DB操作要求,その要求IDおよびタイムアウト猶予時間,(b) 終了要求,(c) 内部情報要求のいずれかの情報である。
【0112】
DBインターフェイス部405は,ステップS170の入力待ちの状態において,DB操作要求を受け取ると,データベース(DB)毎に指定された形式でデータベース(DB)に要求する(S171,S172)。ここで,指定された形式とは,例えばDBの種類によって定まるアクセス言語等を用いることを意味する。DBからの回答があれば,本システムにおいてあらかじめ定められている内部形式に変換し,要求元に返答する(S173,S174)。
【0113】
終了要求に対しては,処理を終了する(S175)。
また,デバッグや管理運用のための内部情報要求に対しては,要求された内部情報を提供する(S176,S177)。以上の要求に該当しない場合については,所定のエラー処理を行う(S178)。
【0114】
その後,終了要求以外についてはアクセス記録を更新し(S179),ステップS170の入力待ち状態に戻る。
4.分散構成による仲介機構の特長および効果
以上の分散構成による仲介機構の要点を列挙すると,以下のとおりである。
【0115】
(1) 仲介機構を,ユーザ・エージェント,仲介エージェント,DBエージェントの3種類のエージェントによって分散的に構成する。
(2) 3種類のエージェントの基本動作は同一とし,ユーザ・エージェント,DBエージェントは,それらに拡張機能を付与した構成とする。
【0116】
(3) 複数のエージェントを別個の計算機上で動作させることにより,負荷を分散させる。
(4) 各エージェントの内部を処理毎にプロセスに分割し,並列動作を可能にする。
【0117】
(5) ユーザからの要求を,DB選択のための要求と,選択したDBに対する要求に分割する。
(6) 仲介機構の動作を,個別DBの選択と,選択したDBへの要求の2段階とする。
【0118】
(7) 複数の仲介エージェントを経由した通信により,複数の仲介エージェントの保持する条件を合わせて用いて,データベースを選択する。
(8) エージェントが,自分に与えられたタイムアウトまでの猶予時間から,自分の処理に要する時間を差し引いて,要求を転送したエージェントからの回答のタイムアウト猶予時間とすることにより,分散構成において,最初に指定された時間内に間に合わないような無駄な処理を回避する。
【0119】
(9) 要求に識別番号を付与することで,要求の二重処理を回避する。
(10)要求の識別番号を記録しておく時間を,そのエージェントに与えられたタイムアウト猶予時間以上とすることにより,不要な要求IDを消去する。
【0120】
(11)ユーザ・エージェントにより,ユーザとの間の様々な入出力手順の差異を一括して吸収する。
(12)DBエージェントにより,データベースとの間の様々な入出力手順の差異を一括して吸収する。
【0121】
(13)ユーザの設定情報の変更を,対応するユーザ・エージェントにより処理し,エージェント群全体の設定変更は不要とする。
(14)データベースの設定情報の変更を,対応するDBエージェントにより処理し,エージェント群全体の設定変更は不要とする。
【0122】
(15)全エージェントに新規エージェントやエージェントの変更を登録することなしに,個別にエージェントの追加,拡張を許す。
(16)エージェント全体をエージェント群に分割し,エージェント群毎に機密保持を可能にする。
【0123】
(17)特定のユーザの情報を,対応するユーザ・エージェントや,エージェント群の一部に限定して保持することにより,ユーザの機密保持を可能にする。
(18)特定のデータベースの情報を,対応するDBエージェントや,エージェント群の一部に限定して保持することにより,ユーザの機密保持を可能にする。
【0124】
以上のように構成される仲介機構の特長としては,次のような点が挙げられる。
(a) 適用分野に依存しない構成
適用分野に依存するデータは,エージェントの持つ条件表にすべて押し込められており,他の部分は適用分野に依存しない。
【0125】
(b) エージェントの追加,拡張が容易
全エージェントに登録する必要があるような,グローバルなデータが存在しない。そのためエージェントの追加などの拡張が容易である。
【0126】
(c) 一定時間内での動作が期待可能
各エージェントの動作は,条件表を引いて出力先を決定し,その出力先に入力を転送するだけなので,エージェントの動作時間が見積もりやすい。また,ループなどの要求の二重処理を禁止しているため,一定時間内での動作が期待できる。
【0127】
(d) 異なる機種の混在した機器構成によって対応可能
各エージェントは,通信によって情報をやりとりし,共有のデータを持たない。そのため,エージェントが動作する計算機の機種などが異なるような,ヘテロな環境でも動作させることが可能である。大規模なシステムを構成する際には,単一の機種のみで構成するのは困難である場合が多いため,異なる機種の混在を許す点は,大きな利点である。
【0128】
【実施例】
次に本発明の具体的な実施例について,図23〜図26に従って説明する。
図23は,C1,C2,C3の3社によるエージェント構成例を示す。
【0129】
図23において,Companyは会社であり,C1,C2,C3は会社名である。groupは,会社の系列を表し,ここではGa企業グループとGb企業グループのどちらかである。regionは,会社の所在地,例えば関東地域,xx県またはyy市というような地域であり,ここではRa地域とRb地域のどちらかである。contentは,その会社の扱っている商品分類(X,Y,Zのどれか)であり,例えば乗用車,食料品というようなものである。
【0130】
会社C1は,Ga企業グループに所属していて,場所はRa地域にある。
会社C2は,Gb企業グループに所属していて,場所はRa地域にある。
会社C3は,Gb企業グループに所属していて,場所はRb地域にある。
【0131】
すなわち,会社C2と会社C3とは,同じ企業グループの仲間同士であり,会社C1と会社C2とは,同じ地域にある。
会社C1が管理するエージェントは,ユーザ・エージェントUA1a,UA1b,仲介エージェントFA1c,DBエージェントDA1d,DA1eである。会社C1のデータベース1f,1gは,それぞれXのcontent,YとZのcontentを持つ。
【0132】
会社C2が管理するエージェントは,ユーザ・エージェントUA2a,UA2b,仲介エージェントFA2c,DBエージェントDA2dである。会社C2のデータベース2eは,XとYとZのcontentを持つ。
【0133】
会社C3が管理するエージェントは,ユーザ・エージェントUA3a,仲介エージェントFA3b,FA3c,DBエージェントDA3d,DA3e,DA3fである。会社C1のデータベース3g,3h,3iは,それぞれXのcontent,Yのcontent,Zのcontentを持つ。
【0134】
これらのエージェントおよびデータベースは,技術的には1台の計算機で実現することも可能であるが,現実には,次のような要素が考慮される。
(1) 異なる会社で同じ計算機上にサービスを実現するのは,機密上,好ましくない。
【0135】
(2) ユーザ・エージェントは,負荷分散の観点からは複数用いるのが望ましい。
(3) 仲介エージェントの負荷は,あまり大きくないと予想される。
【0136】
(4) データベースは,通常大きなアプリケーションであるので,1台の計算機に一つのみを動作させるのが望ましい。
(5) DBエージェントは,対応するデータベースの近くで動作するほうがよい。
【0137】
以上の点を考慮すると,図23に示すエージェントを実装するための好ましい計算機構成は,次のようになる。
(a) ユーザ・エージェント毎に1台の計算機を割り当てる。
【0138】
(b) データベースごとに1台の計算機を割り当て,対応するDBエージェントも同じ計算機上で動作させる。
(c) 仲介エージェントは,独立に計算機を割り当てるか,ユーザ・エージェントの動作する計算機上,またはDBエージェントの動作する計算機上で動作させる。
【0139】
図24〜図26は,各会社C1,C2,C3の各エージェントが持つ条件表の例を示している。条件で“*”とあるのは,どのような条件(あるいは値)の場合にも,対応する出力先に要求を回送することを表す。また,DBエージェントの条件表で,出力先が自分自身になっているのは,自分の管理下にあるデータベースにアクセスすることを示す。
【0140】
会社C1のユーザ・エージェントUA1aは,図24(A)に示すような条件表を持つ。ユーザ・エージェントUA1aは,どのような条件の要求に対しても,仲介エージェントFA1cに要求を転送する。会社C1のユーザ・エージェントUA1bの条件表も同様である(図24(B))。
【0141】
会社C1の仲介エージェントFA1cは,図24(C)に示すような条件表を持つ。要求での指定が会社C1,グループGaまたは地域Raのいずれかであり,かつ商品分類がXであれば,要求の出力先をDBエージェントDA1dとする。要求での指定が会社C1,グループGaまたは地域Raのいずれかであり,かつ商品分類がYまたはZであれば,要求の出力先をDBエージェントDA1eとする。
【0142】
また,要求での指定が会社C2,グループGbまたは地域Raのいずれかであれば,要求の出力先を会社C2の仲介エージェントFA2cとする。要求での指定が会社C3,グループGbまたは地域Rbのいずれかであれば,要求の出力先を会社C3の仲介エージェントFA3bとする。
【0143】
会社C1のDBエージェントDA1dは,図24(D)に示すような条件表を持つ。DBエージェントDA1dは,どのような条件の要求に対しても,出力先が自分自身であるので,データベース1fを対象とする処理を行い,結果を要求元へ返送する。会社C1のDBエージェントDA1eの条件表も同様である(図24(E))。
【0144】
会社C2のユーザ・エージェントUA2aは,図25(A)に示すような条件表を持つ。ユーザ・エージェントUA2aは,どのような条件の要求に対しても,仲介エージェントFA2cに要求を転送する。会社C2のユーザ・エージェントUA2bの条件表も同様である(図25(B))。
【0145】
会社C2の仲介エージェントFA2cは,図25(C)に示すような条件表を持つ。要求での指定が会社C1,グループGaまたは地域Raのいずれかの場合,要求の出力先を仲介エージェントFA1cとする。要求での指定が会社C2,グループGbまたは地域Raのいずれかであれば,要求の出力先を自会社C2のDBエージェントDA2dとする。要求での指定が会社C3,グループGbまたは地域Rbのいずれかであれば,要求の出力先を会社C3の仲介エージェントFA3bとする。
【0146】
会社C2のDBエージェントDA2dは,図25(D)に示すような条件表を持つ。DBエージェントDA2dは,どのような条件の要求に対しても,出力先が自分自身であるので,データベース2eを対象とする処理を行い,結果を要求元へ返送する。
【0147】
会社C3のユーザ・エージェントUA3aは,図26(A)に示すような条件表を持つ。ユーザ・エージェントUA3aは,要求での指定が会社C3でないか,地域Raの場合に,仲介エージェントFA3bに要求を転送する。また,要求での指定が会社C3であるか,グループGbであるか,または地域Rbである場合に,仲介エージェントFA3cに要求を転送する。
【0148】
会社C3の仲介エージェントFA3bは,図26(B)に示すような条件表を持つ。要求での指定が会社C1,グループGaまたは地域Raのいずれかであれば,要求の出力先を仲介エージェントFA1cとする。要求での指定が会社C2,グループGbまたは地域Raのいずれかであれば,要求の出力先を会社C2の仲介エージェントFA2cとする。また,要求での指定が会社C3,グループGbまたは地域Rbのいずれかであれば,要求の出力先を会社C3の仲介エージェントFA3cとする。
【0149】
会社C3の仲介エージェントFA3cは,図26(C)に示すような条件表を持つ。仲介エージェントFA3cは,要求された商品分類X,Y,Zに応じて,それぞれ要求の出力先を,DBエージェントDA3d,DA3e,DA3fとする。
【0150】
会社C3のDBエージェントDA3d,DA3e,DA3fは,それぞれ図26(D),(E),(F)に示すような条件表を持つ。これらは,どのような条件の要求に対しても,出力先が自分自身であるので,それぞれデータベース3g,3h,3iを対象とする処理を行い,結果を要求元へ返送する。
【0151】
次に,(1) 会社名を直接指定する場合,(2) 会社のブランドを優先する場合など,企業グループのみを対象とする場合,(3) 近くにある会社から購入したい場合など,特定の地域にある会社を対象とする場合を想定し,それぞれについて,順に上記の条件を使った要求の回送例を説明する。
【0152】
(1) 会社名を直接指定する場合の要求の回送例
例えばユーザ・エージェントUA1aに接続しているユーザが,「company = C1 and content = X」というDB選択要求を発行したとする。
【0153】
この要求は,まず図24(A)に示す条件表によって,仲介エージェントFA1cへ回送され,次に図24(C)に示す条件表によって,DBエージェントDA1dへ回送される。結果として,データベース1fが選択される。
【0154】
(2) 企業グループのみを対象とする場合の回送例
例えばユーザ・エージェントUA2aに接続しているユーザが,「group = Gb and content = Y」というDB選択要求を発行したとする。
【0155】
この要求は,まず図25(A)に示す条件表によって,仲介エージェントFA2cへ回送され,次に図25(C)に示す条件表によって,DBエージェントDA2dと会社C3の仲介エージェントFA3bへ回送される。仲介エージェントFA3bからは,図26(B)に示す条件表によって,仲介エージェントFA2cと仲介エージェントFA3cへ回送される。このうち仲介エージェントFA2cへ回送された要求は,二重要求チェックにより廃棄される。
【0156】
さらに,仲介エージェントFA3cから図26(C)に示す条件表によって,DBエージェントDA3eへ回送され,結果として,会社C2のデータベース2eと会社C3のデータベース3hが選択される。
【0157】
(3) 特定の地域にある会社を対象とする場合の回送例
例えばユーザ・エージェントUA3aに接続しているユーザが,「region = Ra and content = Z 」というDB選択要求を発行したとする。
【0158】
この要求は,まず図26(A)に示す条件表によって,仲介エージェントFA3bへ回送され,次に図26(B)に示す条件表によって,仲介エージェントFA1cと仲介エージェントFA2cへ回送される。仲介エージェントFA1cからは,図24(C)に示す条件表によって,DBエージェントDA1eへ回送され,仲介エージェントFA2cからは,図25(C)に示す条件表によって,DBエージェントDA2dへ回送される。結果として,会社C1のデータベース1gと会社C2のデータベース2eが選択される。
【0159】
以上のように,要求で指定された条件によって,該当するデータベースが自動的に選択される。なお,条件表への条件として,例えばユーザの識別情報やパスワードや回送元の情報などの条件を登録することも可能であり,会社間での各種条件による機密保護を条件表によって実現することも可能である。
【0160】
【発明の効果】
以上説明したように,本発明によれば,従来の集中構成の仲介機構と比較して,以下のような効果が得られる。
【0161】
(1) 動作時の負荷の分散が可能である。
個々のエージェントを別々の計算機上で動作させることにより,仲介作業の負荷を分散できるため,ユーザから見た場合に,待ち時間の少ない迅速な回答が期待できる。
【0162】
(2) 運用管理コストの分散が可能なスケーラブルな構成を実現できる。
ユーザ,データベースを登録するような運用形態でも,登録が必要なのは,特定のユーザ・エージェントやDBエージェントであるため,システム全体に対して設定変更などの作業をする必要はない。また,入出力形式が変更,削除,追加される場合にも,特定のユーザ・エージェント,DBエージェントの変更や,削除,追加で対応可能であり,これもシステム全体に対して設定変更などの作業をする必要はない。したがって,ユーザ数やデータベース数の増加にも容易に対応できるような,スケーラブルな構成を実現できる。
【0163】
(3) 情報の機密を保持可能である。
本機構では情報をどこかに集めて管理するようなことは行わないため,機密が必要な単位でエージェント群を分割すれば,その情報が外部に漏れることはなく,機密を保持できる。
【図面の簡単な説明】
【図1】本発明の原理説明図である。
【図2】本発明の実施の形態におけるシステム構成の例を示す図である。
【図3】本実施の形態で対象とするユーザからの要求形式の例を示す図である。
【図4】エージェントの持つ条件表の構成例を示す図である。
【図5】仲介機構の動作例を説明するための図である。
【図6】仲介機構の動作例を説明するための図である。
【図7】ユーザ・エージェントのモジュール構成図である。
【図8】仲介エージェントのモジュール構成図である。
【図9】DBエージェントのモジュール構成図である。
【図10】ユーザ・エージェントの入力受付部およびDBエージェントの入力受付部の処理フローチャートである。
【図11】ユーザ・エージェントの入力処理部の処理フローチャートである。
【図12】ユーザ・エージェントの個別要求処理ルーチンの処理フローチャートである。
【図13】DB選択要求処理ルーチンの処理フローチャートである。
【図14】回答待ちルーチンの処理フローチャートである。
【図15】ユーザ・エージェントのDB操作要求処理ルーチンの処理フローチャートである。
【図16】ユーザ・エージェントのDB群記録部の処理フローチャートである。
【図17】条件部の処理フローチャートである。
【図18】要求ID記録部の処理フローチャートである。
【図19】仲介エージェントの入力受付部の処理フローチャートである。
【図20】仲介エージェントの入力処理部の処理フローチャートである。
【図21】DBエージェントの入力処理部の処理フローチャートである。
【図22】DBエージェントのDBインターフェイス部の処理フローチャートである。
【図23】本発明の実施例におけるエージェント構成例を示す図である。
【図24】会社C1の各エージェントが持つ条件表の例を示す図である。
【図25】会社C2の各エージェントが持つ条件表の例を示す図である。
【図26】会社C3の各エージェントが持つ条件表の例を示す図である。
【図27】本発明が対象とする仲介機構に求められる機能の説明図である。
【図28】集中構成による仲介機構の説明図である。
【符号の説明】
11〜13 ユーザ
21〜24 ユーザ・エージェント
31〜38 仲介エージェント
41〜44 データベース・エージェント
51〜54 データベース
Claims (10)
- ユーザからの検索要求を受信する複数のユーザ・エージェントと,
複数のデータベースの各々に対応した複数のデータベース・エージェントと,
ユーザ・エージェントとデータベース・エージェントとの仲介を行う複数の仲介エージェントとを有し,
前記ユーザ・エージェントの各々,前記データベース・エージェントの各々,前記仲介エージェントの各々は,それぞれ,条件に対応した出力先のエージェントを記憶した記憶手段を有し,該記憶手段の記憶内容に基づく転送処理を行い,
ユーザより前記ユーザ・エージェントに対する検索要求があると,該ユーザ・エージェントは対応する記憶手段の記憶内容に基づき,前記仲介エージェントのいずれかへデータベース選択要求の転送を行い,
前記仲介エージェントは,各々,前記ユーザ・エージェントまたは前記仲介エージェントのいずれかからデータベース選択要求を受信した場合,該仲介エージェントが有する記憶手段の記憶内容に基づき,前記仲介エージェントまたは前記データベース・エージェントのいずれかへデータベース選択要求を転送し,
前記データベース・エージェントは,データベース選択要求を受信すると,該データベース・エージェントが有する記憶手段の記憶内容に基づき,前記仲介エージェントのいずれかへ選択結果の転送を行い,
さらに前記各仲介エージェントは,前記データベース・エージェントまたは前記仲介エージェントのいずれかから選択結果を受信すると,該仲介エージェントが有する記憶手段の記憶内容に基づき,前記仲介エージェントまたは前記ユーザ・エージェントへの転送処理を行い,
前記ユーザ・エージェントは,さらに,選択結果を受信すると,該選択結果に基づき選択された前記データベース・エージェントへ,直接ユーザより受信した検索要求を送信する
ことを特徴とするデータベース・システム。 - 請求項1記載のデータベース・システムにおいて,
前記ユーザ・エージェント,前記仲介エージェントおよび前記データベース・エージェントを含む複数のエージェントを,エージェントの数と同じまたはエージェントの数より少ない複数の計算機上に配置し,
複数のエージェントを別個の計算機上で動作させることにより,負荷を分散させるようにした
ことを特徴とするデータベース・システム。 - 請求項1記載のデータベース・システムにおいて,
前記ユーザ・エージェント,前記仲介エージェントおよび前記データベース・エージェントの各エージェントの内部を処理毎にプロセスに分割し,
各エージェントにおける処理の並列動作を可能にした
ことを特徴とするデータベース・システム。 - 請求項1記載のデータベース・システムにおいて,
前記各エージェントは,自分に与えられたタイムアウトまでの猶予時間から,自分の処理に要する時間を差し引いて,要求を転送したエージェントからの回答のタイムアウト猶予時間とし,タイムアウトを処理する手段を持つ
ことを特徴とするデータベース・システム。 - 請求項1記載のデータベース・システムにおいて,
前記ユーザ・エージェントは,要求に識別番号を付与する手段を持ち,
前記仲介エージェントおよび前記データベース・エージェントは,要求の識別番号を検査することにより異なる経路で伝達された同じ要求の二重処理を回避する手段を持つ
ことを特徴とするデータベース・システム。 - 請求項5記載のデータベース・システムにおいて,
前記各エージェントは,自エージェントにおいて前記要求の識別番号を記録しておく時間を,そのエージェントに与えられたタイムアウト猶予時間以上とし,かつタイムアウト猶予時間が過ぎた要求の識別番号を消去する手段を持つ
ことを特徴とするデータベース・システム。 - 請求項1記載のデータベース・システムにおいて,
前記ユーザ・エージェントは,ユーザからの要求を所定の内部形式のデータに変換する手段を持ち,
ユーザとの間の様々な入出力手順の差異を一括して吸収するようにした
ことを特徴とするデータベース・システム。 - 請求項1記載のデータベース・システムにおいて,
前記データベース・エージェントは,内部形式で表されたデータベースに対する要求を,データベースに対応して定められる要求形式に変換する手段と,データベースからのアクセス結果を所定の内部形式のデータに変換する手段とを持ち,
各データベースとの間の様々な入出力手順の差異を一括して吸収するようにした
ことを特徴とするデータベース・システム。 - 請求項1記載のデータベース・システムにおいて,
特定のユーザの情報を,対応するユーザ・エージェントまたはエージェント群の一部に限定して保持することにより,
ユーザの機密保持を可能にした
ことを特徴とするデータベース・システム。 - 請求項1記載のデータベース・システムにおいて,
特定のデータベースの情報を,対応するデータベース・エージェントまたはエージェント群の一部に限定して保持することにより,ユーザの機密保持を可能にした
ことを特徴とするデータベース・システム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13622297A JP4021518B2 (ja) | 1997-05-27 | 1997-05-27 | データベース・システム |
US08/990,750 US6108646A (en) | 1997-05-27 | 1997-12-15 | Database mechanism, mediating method in database system and program storing medium for implementing database system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP13622297A JP4021518B2 (ja) | 1997-05-27 | 1997-05-27 | データベース・システム |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH10326284A JPH10326284A (ja) | 1998-12-08 |
JP4021518B2 true JP4021518B2 (ja) | 2007-12-12 |
Family
ID=15170158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP13622297A Expired - Fee Related JP4021518B2 (ja) | 1997-05-27 | 1997-05-27 | データベース・システム |
Country Status (2)
Country | Link |
---|---|
US (1) | US6108646A (ja) |
JP (1) | JP4021518B2 (ja) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3892558B2 (ja) * | 1997-12-16 | 2007-03-14 | 富士通株式会社 | エージェント装置及びプログラム記録媒体 |
US6237035B1 (en) * | 1997-12-18 | 2001-05-22 | International Business Machines Corporation | System and method for preventing duplicate transactions in an internet browser/internet server environment |
JP3565720B2 (ja) | 1998-08-20 | 2004-09-15 | 富士通株式会社 | 分散構成による仲介装置および仲介装置に用いるデュアルセル装置および仲介装置に用いる統合セル装置 |
JP3278406B2 (ja) * | 1998-12-10 | 2002-04-30 | 富士通株式会社 | ドキュメント検索仲介装置、ドキュメント検索システム、および、ドキュメント検索仲介プログラムを記録した記録媒体 |
US6725252B1 (en) * | 1999-06-03 | 2004-04-20 | International Business Machines Corporation | Method and apparatus for detecting and processing multiple additional requests from a single user at a server in a distributed data processing system |
US6760719B1 (en) * | 1999-09-24 | 2004-07-06 | Unisys Corp. | Method and apparatus for high speed parallel accessing and execution of methods across multiple heterogeneous data sources |
US7007275B1 (en) * | 1999-10-21 | 2006-02-28 | Unisys Corporation | Method and apparatus for automatic execution of concatenated methods across multiple heterogeneous data sources |
US6490585B1 (en) * | 1999-11-12 | 2002-12-03 | Unisys Corp | Cellular multiprocessor data warehouse |
ATE504157T1 (de) * | 2000-01-31 | 2011-04-15 | Grape Technology Group Inc | Kommunikationsunterstützungssystem und -verfahren |
JP4509302B2 (ja) * | 2000-05-16 | 2010-07-21 | シャープ株式会社 | アプリケーションサーバの処理方法 |
BR0113895A (pt) * | 2000-09-15 | 2004-04-20 | Grape Technology Inc | Sistema de auxìlio aprimorado para catálogo |
EP2261953A3 (en) | 2001-05-17 | 2011-05-25 | Optronx, Inc. | Optical waveguide devices with additional polysilicon layers |
JP4739673B2 (ja) * | 2002-01-02 | 2011-08-03 | グレープ テクノロジー グループ インコーポレイテッド | 通信補助システムおよび方法 |
AU2003286448A1 (en) * | 2002-10-16 | 2004-05-04 | Grape Technology Group, Inc. | A system and method for efficient call management for directory assistance services |
US7925246B2 (en) | 2002-12-11 | 2011-04-12 | Leader Technologies, Inc. | Radio/telephony interoperability system |
US8195714B2 (en) | 2002-12-11 | 2012-06-05 | Leaper Technologies, Inc. | Context instantiated application protocol |
CA2552706A1 (en) * | 2003-12-29 | 2005-07-28 | Grape Technology Group, Inc | System and method for processing and routing incoming calls to a communication assistance system |
JP2006085527A (ja) * | 2004-09-17 | 2006-03-30 | Toppan Printing Co Ltd | Xmlによるデータベース操作記述の仕様と実行システムの提供 |
CA2538503C (en) * | 2005-03-14 | 2014-05-13 | Attilla Danko | Process scheduler employing adaptive partitioning of process threads |
US9361156B2 (en) | 2005-03-14 | 2016-06-07 | 2236008 Ontario Inc. | Adaptive partitioning for operating system |
US8387052B2 (en) * | 2005-03-14 | 2013-02-26 | Qnx Software Systems Limited | Adaptive partitioning for operating system |
US8245230B2 (en) * | 2005-03-14 | 2012-08-14 | Qnx Software Systems Limited | Adaptive partitioning scheduler for multiprocessing system |
JP2007317028A (ja) * | 2006-05-26 | 2007-12-06 | Ns Solutions Corp | 情報処理装置、データベース管理システム、情報処理装置の制御方法及びプログラム |
US20100130186A1 (en) * | 2008-10-14 | 2010-05-27 | Mcgary Faith L | System and method for directory assistance including sms supported privacy features |
JP5521675B2 (ja) * | 2010-03-19 | 2014-06-18 | 富士通株式会社 | 処理割当装置、処理割当方法及びコンピュータプログラム |
US8793691B2 (en) * | 2010-04-15 | 2014-07-29 | Salesforce.Com, Inc. | Managing and forwarding tasks to handler for processing using a message queue |
US20140330399A1 (en) * | 2011-11-28 | 2014-11-06 | Kyocera Corporation | Power control apparatus, power control system, and power control method |
US9141685B2 (en) * | 2012-06-22 | 2015-09-22 | Microsoft Technology Licensing, Llc | Front end and backend replicated storage |
US11032361B1 (en) | 2020-07-14 | 2021-06-08 | Coupang Corp. | Systems and methods of balancing network load for ultra high server availability |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5706516A (en) * | 1995-01-23 | 1998-01-06 | International Business Machines Corporation | System for communicating messages among agent processes |
US5710918A (en) * | 1995-06-07 | 1998-01-20 | International Business Machines Corporation | Method for distributed task fulfillment of web browser requests |
US5752246A (en) * | 1995-06-07 | 1998-05-12 | International Business Machines Corporation | Service agent for fulfilling requests of a web browser |
-
1997
- 1997-05-27 JP JP13622297A patent/JP4021518B2/ja not_active Expired - Fee Related
- 1997-12-15 US US08/990,750 patent/US6108646A/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH10326284A (ja) | 1998-12-08 |
US6108646A (en) | 2000-08-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4021518B2 (ja) | データベース・システム | |
US6510429B1 (en) | Message broker apparatus, method and computer program product | |
US7315872B2 (en) | Dynamic and selective data source binding through a metawrapper | |
US5608900A (en) | Generation and storage of connections between objects in a computer network | |
US7065526B2 (en) | Scalable database management system | |
EP1125222A1 (en) | Apparatus and system for an adaptive data management architecture | |
CA2348887A1 (en) | Method and apparatus for data management using an event transition network | |
JPH0895877A (ja) | ワークフロー管理システム | |
US8478803B2 (en) | Management of logical statements in a distributed database environment | |
EP0213276A2 (en) | Dynamic updating of data base directories | |
US20060095432A1 (en) | Disclosure control system and method | |
JP5984355B2 (ja) | 分散型データベースシステムおよび分散型データ処理システム | |
US8019888B2 (en) | Request routing system for and method of request routing | |
US20130226969A1 (en) | Data access control apparatus and data access control method | |
US20080109254A1 (en) | Interoperability across heterogeneous taxonomies | |
WO2020153053A1 (ja) | データベース管理サービス提供システム | |
JP3802977B2 (ja) | 蓄積交換型電子会議システムにおける情報矛盾判定、修正装置及び方法並びに情報矛盾判定、修正プログラムを記録したコンピュータ読取可能な記憶媒体 | |
CN109800285A (zh) | 一种灵活的病历数据抽取方法、系统及数据库服务器 | |
EP0213277A2 (en) | Propagation system for user queries through a distributed data base | |
US8015207B2 (en) | Method and apparatus for unstructured data mining and distributed processing | |
JP3933770B2 (ja) | 蓄積交換型電子会議システムにおける宛先矛盾判定、修正装置及び宛先矛盾判定、修正プログラムを記録したコンピュータ読取可能な記録媒体 | |
JP7527404B2 (ja) | データ移行装置、データ移行方法、及び、データ移行プログラム | |
JP4247584B2 (ja) | ワークプロセス管理装置及びワークプロセス管理方法 | |
JP6134850B1 (ja) | 契約支援装置およびプログラム | |
GB2336920A (en) | Relational message broker adds value to published information |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040419 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20070605 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20070619 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20070820 |
|
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: 20070925 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20070927 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101005 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101005 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111005 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |