JP2014026392A - データベースドライバおよびプログラム - Google Patents

データベースドライバおよびプログラム Download PDF

Info

Publication number
JP2014026392A
JP2014026392A JP2012165080A JP2012165080A JP2014026392A JP 2014026392 A JP2014026392 A JP 2014026392A JP 2012165080 A JP2012165080 A JP 2012165080A JP 2012165080 A JP2012165080 A JP 2012165080A JP 2014026392 A JP2014026392 A JP 2014026392A
Authority
JP
Japan
Prior art keywords
database
data
server process
database server
command
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
JP2012165080A
Other languages
English (en)
Other versions
JP5748711B2 (ja
Inventor
Toru Hashimoto
亨 橋本
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.)
MUFG Bank Ltd
Original Assignee
Bank of Tokyo Mitsubishi UFJ Trust Co
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 Bank of Tokyo Mitsubishi UFJ Trust Co filed Critical Bank of Tokyo Mitsubishi UFJ Trust Co
Priority to JP2012165080A priority Critical patent/JP5748711B2/ja
Publication of JP2014026392A publication Critical patent/JP2014026392A/ja
Application granted granted Critical
Publication of JP5748711B2 publication Critical patent/JP5748711B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

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

Abstract

【課題】データベースを用いて情報の蓄積を行いつつ、データの配信のタイムラグを低減すること。
【解決手段】本発明のデータベースドライバは、データベースへの操作を表すデータベースコマンドを、前記データベースの管理を行うデータベースサーバプロセスに送信するデータベースドライバであって、前記データベースサーバプロセスに送信する前記データベースコマンドを解析して、前記データベースコマンドが前記データベースサーバプロセスに送信された場合に、前記データベースサーバプロセスにより前記データベースの特定エリアに格納されるデータの変更操作が実行されるかどうかを判定する手段と、前記変更操作が実行されると判定した場合には、前記変更操作に基づくデータを前記データベースサーバプロセスとは異なるプロセスに転送する手段とを備える。
【選択図】図2

Description

本発明は、データベース管理システムと他のシステムとを連携させる技術に関する。
様々なデータがコンピュータシステムにより扱われるようになってきた。多くの場合、コンピュータシステムに入力されるデータは、データベース管理システムが管理するデータベースに一旦格納され、その後に、データを必要とする機器や他のシステムに送信される。データがこのようにデータベースに一旦格納される理由の一つとしては、データベースには強力なリカバリ機能が備わっていることである。これにより、障害が発生してもデータが喪失などしないようにできる。リカバリ機能が備わっているために、データベースを介してデータの配信などを確実に行うことができる。
また、リカバリ機能に加えて、データベースには、アクセスコントロール機能も備わっており、権限の無い者に対するデータアクセスの制限の設定を柔軟に行うことが可能である。これにより、データベースを介することにより、特定の種類のデータを特定の者にだけ提供することが可能となる。また、不正なアクセスがあったかどうかの監査業務も比較的容易に遂行できる(例えば、特許文献1参照)。
米国特許第7,426,512号明細書
一方、証券取引業務や外国為替業務において、株価や外国為替レートなどの情報の蓄積が行われる一方、アルゴリズム取引に代表されるように、株価や外国為替レートなどの変化に応じて速やかに売買注文を行う必要も生じてきている。この場合、データベースを介して株価や外国為替レートなどの情報を配信すると、情報の配信にタイムラグが発生することがある。
そこで、本発明の一実施形態においては、データベースを用いて情報の蓄積を行いつつ、データの配信のタイムラグをより低減することを目的とする。
本発明の一実施形態によると、データベースへの操作を表すデータベースコマンドを、前記データベースの管理を行うデータベースサーバプロセスに送信するデータベースドライバであって、前記データベースサーバプロセスに送信する前記データベースコマンドを解析して、前記データベースコマンドが前記データベースサーバプロセスに送信された場合に、前記データベースサーバプロセスにより前記データベースの特定エリアに格納されるデータの変更操作が実行されるかどうかを判定する手段と、前記変更操作が実行されると判定した場合には、前記変更操作に基づくデータを前記データベースサーバプロセスとは異なるプロセスに転送する手段とを備えるデータベースドライバが提供される。
本発明の一実施形態によると、データベースへの操作を表すデータベースコマンドを、前記データベースの管理を行うデータベースサーバプロセスに送信するコンピュータを、前記データベースサーバプロセスに送信する前記データベースコマンドを解析して、前記データベースコマンドが前記データベースサーバプロセスに送信された場合に、前記データベースサーバプロセスにより前記データベースの特定エリアに格納されるデータの変更操作が実行されるかどうかを判定する手段と、前記変更操作が実行されると判定した場合には、前記変更操作に基づくデータを前記データベースサーバプロセスとは異なるプロセスに転送する手段として機能させるためのプログラムが提供される。
本発明によれば、データベースを用いて情報の蓄積を行いつつ、データの配信のタイムラグを低減することが可能となる。また、特定の形式またはモデルを有するデータベースから他の形式またはモデルのデータベースなどとのデータ更新の同期を確保することができる。
本発明の一実施形態に係るデータベースサーバ100の機能ブロック図である。 本発明の一実施形態に係るデータベースコマンドを送信するときのデータベースドライバ107の処理のフローチャートである。 本発明の一実施形態に係るデータベースサーバプロセス104から実行の結果を受信するときのデータベースドライバ107の処理のフローチャートである。 本発明の変形例1に係るシステムの機能ブロック図である。
以下、本発明の一実施形態に係るデータベースサーバについて、図面を参照しながら詳細に説明する。なお、以下に示す実施形態は本発明の実施形態の一例であって、本発明はこれらの実施形態に限定されるものではない。
<実施形態>
[全体構成]
図1は、本発明の一実施形態に係るデータベースサーバ100の機能ブロック図を示す。本実施形態に係るデータベースサーバ100は、コンピュータを動作させて提供することができる。コンピュータは、ハードウェア101とカーネル空間102とユーザ空間103とを有する。
ハードウェア101は、コンピュータの物理的実体である。ハードウェア101は、例えば、CPU、ROM、RAM、二次記憶装置、入出力インターフェースなどを備える。CPUは、プログラムを構成する命令を実行する。ROMは、読出し専用のメモリであり、コンピュータの起動時に最初に実行されるプログラムなどを格納する。コンピュータが起動すると、最初に実行されるプログラムがROMより読み出され、そのプログラムを構成する命令がCPUにより実行されることにより、コンピュータがブートする作業が開始する。RAMは、読み書きが可能なメモリであり、CPUにより実行される命令により構成されるプログラムを一時的に格納したり、プログラムの実行に必要な一時的なデータを格納したりする。二次記憶装置は、プログラムやデータを永続的に記憶するための装置である。入出力インターフェースは、プログラムなどの入出力を行ったり、プログラムの実行に伴う表示やデータの入力を行ったりするための、コンピュータ外部とのインターフェースである。
カーネル空間102は、オペレーティングシステムが動作する記憶空間である。オペレーティングシステムは、プログラムの一種であり、ユーザ空間103に存在するプロセスにハードウェア101を抽象化して提供する機能を有する。また、オペレーティングシステムは、プロセスの管理やコンピュータの有する資源の管理も行う。
カーネル空間102にて動作するオペレーティングシステムの提供する機能の一つとして、プロセス間通信の機能がある。プロセス間通信は、複数のプロセスが通信を行い、情報の送受信を行うための機能である。例えば、パイプ、ソケット、共有メモリ、メッセージキューなどがプロセス間通信を実装するために用いられる。
ユーザ空間103は、カーネル空間102にて動作するオペレーティングシステムのプロセス管理の機能を用いて生成されるプロセスが存在するアドレス空間である。プロセスは、CPUモードをユーザモードにしてプログラムを実行するための単位である。これに対して、カーネル空間102は、CPUのモードをカーネルモードなどにしてプログラムを実行するためのアドレス空間である。
プロセスは、ハードウェア101を使用する処理が生じたり、カーネル空間102の機能を使用する処理の必要が生じたりした場合には、システムコールを発行し、カーネル空間102にて動作するオペレーティングシステムに処理を依頼する。
図1においては、ユーザ空間103に、データベースサーバプロセス104、クライアントプロセス105および受信プロセス109が示されている。クライアントプロセス105には、データベースドライバ107が組み込まれている。なお、ユーザ空間103には、これ以外のプロセスが存在していてもよい。受信プロセス109は複数存在していてもよい。
[データベースサーバプロセス104]
データベースサーバプロセス104は、データベース管理システムを実現するためのプログラムを実行するプロセスである。すなわち、データベースに対する操作を行うプログラムを実行し、具体的には、データを所定のスキーマに従ってRAMや二次記憶装置に格納し、読出し、変更または削除を行うプログラムを実行するプロセスである。スキーマとはデータベースの構造である。例えば、リレーショナルデータベース管理システムにおいては、スキーマは、テーブルの構造を表わす情報を含む。例えば、このような情報にはテーブルの名前、テーブルを構成するフィールドの名前、データ型、索引の有無などの情報がある。また、このような情報には、テーブルなどに対するアクセス権限の状態などを表わす情報が含まれていてもよい。
なお、本発明の実施形態においては、データベースとしては、リレーショナルデータベースに限らず、XMLデータベース、オブジェクト指向データベース、ネットワーク型データモデルを用いるデータベース、階層型データモデルを用いるデータベースなど種々のデータベースを使用することができる。
データベースサーバプロセス104は、クライアントプロセス105から、カーネル空間102にて動作するオペレーティングシステムの提供するプロセス間通信の機能を用いて、データベースに対する操作の要求を受信し、その操作を実行した結果を返信する。例えば、クライアントプロセス105からテーブルの作成の要求を受信すると、データベースサーバプロセス104は、テーブルの作成の処理を実行しその実行の結果を返信する。その他にも、データベースサーバプロセス104は、データの追加の要求を受信するとデータをテーブルに格納する処理を実行し、検索の要求を受信するとテーブルに格納されたデータから検索の条件を満たすデータを検索する処理を実行し、データの変更の要求を受信するとテーブルに格納されたデータの変更の処理を実行し、データの削除の要求を受信するとデータの削除の処理を実行する。そして、データベースサーバプロセス104は、それぞれの処理の実行の結果を返信する。
「実行の結果」とは、処理の実行が成功したかどうかを示す情報を含む。例えば、データの削除の要求が受信された場合、「データの削除の処理の実行の結果」は、データの削除の処理の実行が成功したかどうか、また、成功した場合には何個のデータが削除されたかを示す情報が含まれる。
データベースサーバプロセス104は、上述したようにデータベース管理システムを実現するためのプログラムを実行するプロセスであるため、データベースに対する操作に先だって起動される。データベースサーバプロセス104は、起動の後、必要な初期化を行う。必要な初期化には、カーネル空間102にて動作するオペレーティングシステムに対して、必要なプロセス間通信を実現する要求が含まれる。また、初期化の後、データベースサーバプロセス104は、プロセス間通信によって他のプロセスからのデータベースに対する操作の要求を受信するシステムコールを発行し、待ち状態に入る。
データベースサーバプロセス104が、クライアントプロセス105からデータベースコマンドを受信し、受信したデータベースコマンドを実行するときには、データベースコマンドの内容を二次記憶装置などのハードウェアに記録するためにシステムコールを発行する。この目的の一つは、ログを取るためである。例えば、トランザクション中においてデータベースサーバプロセス104がデータベースに対する操作を行うときに、トランザクションをロールバック可能とするためである。また、別の目的としては、障害が発生した時点以降に行われたデータベースに対する操作をデータベースに反映するために用いられる。
[受信プロセス109]
受信プロセス109は、システムコールを発行することによりクライアントプロセス105が送信するデータを受信する。このデータは、クライアントプロセス105の一部であり、後述する転送モジュール108から送信される。受信プロセス109の一般的な例としては、データベースサーバプロセス104が管理するデータベースとはデータの格納の形式やデータモデルが異なるシステムに受信したデータを送信するプロセスを挙げることができる。
このようなデータの格納の形式やデータモデルが異なるシステムとしては、例えば、Hadoop、Key Value Storeなどを挙げることができる。また、このようなデータの格納の形式やデータモデルが異なるシステムは、データベースサーバ100にて動作していてもよいし、データベースサーバ100と異なるサーバにて動作していてもよい。このとき、受信プロセス109は、クライアントプロセス105より送信されたデータを、Hadoop、Key Value Storeなどの送信先のシステムのデータの形式に適合するように変換を行ってから、送信先に送信してもよい。変換のルールが、データベースサーバ100の記憶装置などに記憶されている場合には、受信プロセス109は、そのルールを読み取り、読み取られたルールに従って変換を行ってデータを送信してもよい。
なお、具体的な一例としては、クライアントプロセス105が外国為替のレート情報を受信したり、株価の情報を受信したりし、この受信した情報をデータベースサーバプロセス104へ送信する場合において、受信プロセス109がレート情報や株価の情報を用いて取引を行うプロセスにレート情報や株価の情報を配信する。また、受信プロセス109が、レート情報や株価の情報を用いて取引を行うプロセスそのものであってもよい。
[クライアントプロセス105]
クライアントプロセス105は、クライアントモジュール106とデータベースドライバ107とを有する。クライアントモジュール106は、クライアントプロセス105のうち、データベースに対する操作を実行するためのモジュールである。クライアントモジュール106に、データベースに対する操作を行う必要が生じると、クライアントモジュール106からデータベースドライバ107の関数が呼び出されたり、メソッドが呼び出されたりする。クライアントプロセス105はデータベース操作の要求を送信する。このデータベース操作の要求は、プロセス間通信を介して、データベースドライバ107からデータベースサーバプロセス104に送信される。また、データベース操作の要求に対する処理の実行の結果がデータベースサーバプロセス104からプロセス間通信を介して送信されると、クライアントプロセス105はデータベースドライバ107を用いて受信する。
なお、データベースドライバ107は、通常、ライブラリとして提供される。すなわち、クライアントプロセス105のプログラムがコンパイルやビルドがされるときに、組み込まれる。また、データベースドライバ107は、動的ライブラリとして提供されてもよい。この場合、クライアントプロセス105のプログラムがコンパイルやビルドがされるときに、データベースドライバ107の関数やメソッドなどの情報が組み込まれ、関数やメソッドの実体はクライアントプロセス105の実行時にユーザ空間などに展開されるようになっていてもよい。
また、データベースドライバ107には転送モジュール108が含まれる。転送モジュール108は、データベース操作の要求に基づくデータを受信プロセス109に送信する。
データベースサーバプロセス104がリレーショナルデータベースを管理する構成であれば、クライアントプロセス105は、SQLなどのデータベース言語を用いたデータベース操作の要求、または、データベース言語に対応する関数呼び出しなどを行うためのシステムコールを発行する。これにより、クライアントプロセス105は、プロセス間通信を介して、データベースサーバプロセス104との間で定められた通信プロトコルに基づきデータベース操作の要求を送信し、その要求に対する処理の実行の結果を受信する。
より具体的には、クライアントプロセス105が、データベースドライバ107において、データベースに対する操作の要求を表すデータベースコマンドをデータベースサーバプロセス104に送信するためのシステムコールを発行する。これにより、カーネル空間102のプロセス間通信のモジュールが処理を開始し、データベースサーバプロセス104がデータベースコマンドを受信可能な状態となって待ち状態から走行可能な状態となる。また、クライアントプロセス105は、データベースサーバプロセス104からの返信を受信するために待ち状態に入る。
データベースサーバプロセス104が、データベースコマンドが表わす要求を実行する処理を行うと、その処理の実行の結果を送信するためのシステムコールを発行する。これにより、カーネル空間102のプロセス間通信のモジュールが処理を開始し、クライアントプロセス105が処理の実行の結果を受信可能な状態となって待ち状態から走行可能な状態となる。
本実施形態においては、データベースドライバ107は、上述の動作に加え、データベース操作の要求であるデータベースコマンドを解析する。この解析は、データベースサーバプロセス104によるデータベースコマンドの実行により、データベースの特定のエリアに格納されるデータの変更操作が行われるかどうかをデータベースドライバ107が予測して判定する処理である。なお、データベースドライバ107が、データベースコマンドの実行により、データベースの特定のエリアに格納されるデータの変更操作が行われるかどうかをデータベースサーバプロセス104に問い合わせ、その結果に基づいて、この判定を行ってもよい。例えば、動的SQLのPREPARE文のように、データベースサーバプロセス104によってデータ操作が行われないようなSQL文などを実行して、このような問い合わせが行われてもよい。
データベースドライバ107は、データベースの特定のエリアに格納されるデータの変更操作が行われたと判定した場合には、データベースコマンドに基づいて変更後のデータを求め、変更後のデータを転送モジュール108に渡す。転送モジュール108は、データベースドライバ107から渡された変更後のデータを受信プロセス109に転送する。
なお、データベースドライバ107によってデータベースの特定のエリアに格納されるデータの変更操作が行われたと判定される場合として、予め定められた条件を満たす場合としてもよい。例えば、データベースがリレーショナルデータベースであれば、この「予め定められた条件」を満たす場合として、特定のテーブルに対して変更の操作が行われること、また、特定の行データの特定のカラムに対して変更の操作が行われることなどとすればよい。具体的には、前者としては特定のテーブルに行データが追加されることや特定のテーブルの行データが削除されることなどが挙げられ、後者としては特定のテーブルに格納されている行データの一部が変更されることなどが挙げられる。
また、この「予め定められた条件」は、受信プロセス109またはデータベースサーバプロセス104により設定されてもよい。
[データの送信例]
以下では、INSERT文とUPDATE文とがデータベースサーバ100において実行される場合について説明する。例えば、列としてC1、C2およびC3を有するテーブルRにデータ(V1,V2,V3)が追加される場合に、クライアントプロセス105は、
INSERT INTO R(C1,C2,C3) VALUES (V1,V2,V3);
というSQL文あるいはそれに相当する関数を実行することになる。この場合、このSQL文を表わすデータベースコマンドが、クライアントモジュール106から送信され、データベースドライバ107およびプロセス間通信を介して、データベースサーバプロセス104へ送信される。
データベースサーバプロセス104は、上記のINSERT文を表わすデータベースコマンドを受信すると、テーブルRにデータ(V1,V2,V3)を追加するとともに、テーブルRにデータ(V1,V2,V3)が追加されるという変更の内容を書き込むためのシステムコールを発行する。
一方、「データベースの特定エリアに格納されるデータ」が、テーブルRに追加されたデータとして設定されている場合には、データベースドライバ107は、クライアントモジュール106から送信されたデータベースコマンドが、テーブルRに対するデータの追加を表していると判定し、(V1,V2,V3)というデータを転送モジュール108に渡す。転送モジュール108は、渡された(V1,V2,V3)というデータを受信プロセス109に転送する。このとき、INSERT文により追加されたデータを特定できるようにするために、主キーの値が含まれていてもよい。
なお、データベースドライバ107は、(V1,V2,V3)というデータを転送モジュール108に渡す代わりに、V1、V2およびV3の一部を転送モジュール108に渡してもよい。この場合には、V1、V2およびV3の一部が受信プロセス109に転送される。また、データベースドライバ107は、判定を行った時刻などの時刻データなどの付加データを、上記のようにして送信するデータに付加してもよい。
また、テーブルRの列C1が主キーの列であれば、データベースドライバ107は、主キーの列の値であるV1を記憶することもできる。このようにすることにより、テーブルRのもっとも最近にテーブルに追加されたデータは、C1の値がV1であることにより特定される。このとき、クライアントプロセス105が、
UPDATE R SET C2=V4,C3=V5 WHERE C1=V1;
というSQL文あるいはそれに相当する関数を実行したとすると、データベースサーバプロセス104は、これに対応するSQLコマンドを実行するとともに、データの変更後のデータを表わす(V1,V4,V5)の値を書き込むためのシステムコールを発行する。
一方、データベースドライバ107は、テーブルRのデータのうち列の値がV1である行に対する変更を表わしていると判定し、変更後のデータである(V1、V4、V5)を求め、(V1、V4、V5)というデータを転送モジュール108に渡す。転送モジュール108は、渡された(V1,V4,V5)というデータを受信プロセス109に転送する。このとき、INSERT文により追加されたデータを特定できるようにするために、主キーの値が含まれていてもよい。
なお、データベースドライバ107は、(V1,V4,V5)というデータを転送モジュール108に渡す代わりに、V4およびV5の一部またはすべてを転送モジュール108に渡してもよい。この場合には、V4およびV5の一部またはすべてが受信プロセス109に転送される。また、データベースドライバ107は、判断を行った時刻などの時刻データなどの付加データを、上記のようにして送信するデータに付加してもよい。
[データベースドライバ107の動作]
続いて、データベースドライバ107の処理について、データベースサーバプロセス104へデータベースコマンドを送信する場合と、データベースサーバプロセス104から実行の結果を受信する場合とに分けて説明する。まず、データベースサーバプロセス104へデータベースコマンドを送信する場合のデータベースドライバ107の処理について説明する。
図2は、本発明の一実施形態に係るデータベースコマンドを送信するときのデータベースドライバ107の処理のフローチャートである。まず、データベースドライバ107は、クライアントモジュール106からデータベースコマンドが送信されるのを待つ(ステップS110;No)。クライアントモジュール106からデータベースコマンドが送信されると(ステップS110;Yes)、データベースドライバ107は、データベースコマンドを解析し、特定のテーブルに対するデータ操作を表わしているかどうかを判定する(ステップS120)。なお、ここでは、「データベースの特定エリアに格納されるデータ」であるかどうかの判定をする例として「特定のテーブルに対するデータ操作が行われる」かの判定として説明している。
解析したデータベースコマンドが特定のテーブルに対するデータ操作を表している場合(ステップS120;Yes)には、データベースドライバ107は、データ操作後のデータを求める(ステップS130)。転送モジュール108は、データベースドライバ107が求めたデータが渡され、渡されたデータを受信プロセス109に転送する(ステップS140)。
続いて、ステップS140の処理の後、または、ステップS120において解析したデータベースコマンドが特定のテーブルに対するデータ操作を表していない場合(ステップS120;No)には、データベースドライバ107は、データベースサーバプロセス105へデータベースコマンドを送信する(ステップS150)。データベースドライバ107は、図2に示す処理を終了する指示がない場合(ステップS160;No)には、ステップS110に戻って処理を続け、図2に示す処理を終了する指示があった場合(ステップS160;Yes)には、処理を終了する。
続いて、データベースサーバプロセス104から実行の結果を受信する場合のデータベースドライバ107の処理について説明する。
図3は、本発明の一実施形態に係るデータベースサーバプロセス104から実行の結果を受信するときのデータベースドライバ107の処理のフローチャートである。まず、データベースドライバ107は、データベースサーバプロセス104からデータベースコマンドの処理の実行の結果が送信されるのを待つ(ステップS210;No)。実行の結果が送信されると(ステップS210;Yes)、データベースドライバ107は、データベースコマンドの処理の実行の結果をクライアントモジュール106へ送信する(ステップS220)。データベースドライバ107は、図3に示す処理を終了する指示がない場合(ステップS230;No)には、ステップS210に戻って処理を続け、図3に示す処理を終了する指示があった場合(ステップS230;Yes)には、処理を終了する。
このように、本実施形態に係るデータベースサーバ100においては、クライアントプロセス105におけるデータベースドライバ107がクライアントモジュール106から送信されたデータベースコマンドを解析し、データベースの特定のエリアに格納されるデータが変更されると判定した場合には、変更後のデータを求め、変更後のデータを転送モジュール109に渡し、受信プロセス109において受信できるように構成している。これにより、受信プロセス109は、データベースサーバプロセス104がデータをデータベースに格納するのを待たなくてもデータを得ることができ、データ配信のタイムラグを低減することができる。また、配信されるデータを受信プロセス109またはデータベースドライバ107により変換することも可能である。
<変形例>
以上、本発明の実施形態およびその実施例について説明したが、本発明は以下のように、様々な態様で実施可能である。
[変形例1]
上述した実施形態においては、データベースサーバ100は、1台のコンピュータにより実現されていたが、複数台のコンピュータにより実現されてもよい。例えば、図4に示すように2台のコンピュータにより実現されてもよい。
図4は、本発明の変形例1に係るシステムの機能ブロック図である。図4に示す例では、ハードウェア701とカーネル空間702とユーザ空間703とを有する第1のコンピュータ700Aと、ハードウェア711とカーネル空間712とユーザ空間713とを有する第2のコンピュータ700Bとを用いて本発明を実施することができる。この場合、第1のコンピュータ700Aのユーザ空間703においてデータベースサーバプロセス704が動作し、第2のコンピュータ700Bのユーザ空間713においてクライアントプロセス705および受信プロセス709が動作してもよい。変形例1における各プロセスの機能は、実施形態における各プロセスの機能と同様である。
クライアントプロセス705からデータベースサーバプロセス704に送信されるデータベースコマンドは、第2のコンピュータ700Bのカーネル空間712、ハードウェア711、通信網800、第1のコンピュータ700Aのハードウェア701、カーネル空間702を介してクライアントプロセス705からデータベースサーバプロセス704に送信される。
データベースサーバプロセス704からクライアントプロセス705に送信されるデータベースコマンドの処理の実行の結果は、データベースコマンドとは逆に、第1のコンピュータ700Aのカーネル空間702、ハードウェア701、通信網800、第2のコンピュータ700Bのハードウェア711、カーネル空間712を介してデータベースサーバプロセス704からクライアントプロセス705に送信される。
100…データベースサーバ、101,701,711…ハードウェア、102,702,712…カーネル空間、103,703,713…ユーザ空間、104,704…データベースサーバ、105,705…クライアントプロセス、106,706…クライアントモジュール、107,707…データベースドライバ、108,708…転送モジュール、109,709…受信プロセス、700A…第1のコンピュータ、700B…第2のコンピュータ、800…通信網

Claims (4)

  1. データベースへの操作を表すデータベースコマンドを、前記データベースの管理を行うデータベースサーバプロセスに送信するデータベースドライバであって、
    前記データベースサーバプロセスに送信する前記データベースコマンドを解析して、前記データベースコマンドが前記データベースサーバプロセスに送信された場合に、前記データベースサーバプロセスにより前記データベースの特定エリアに格納されるデータの変更操作が実行されるかどうかを判定する手段と、
    前記変更操作が実行されると判定した場合には、前記変更操作に基づくデータを前記データベースサーバプロセスとは異なるプロセスに転送する手段と
    を備えるデータベースドライバ。
  2. 前記変更操作が実行されるかどうかを判定するときには、前記データベースコマンドが前記データベースの特定のテーブルに対するデータの追加によるものであるかどうかを判定し、
    前記変更操作に基づくデータは、前記特定のテーブルに対して追加される前記データの全てまたは一部である請求項1に記載のデータベースドライバ。
  3. 前記特定のテーブルに対して追加された主キーの値を記憶し、
    前記変更操作が実行されるかどうかを判定するときには、記憶された前記主キーにより特定される前記特定のテーブルのデータの変更操作が実行されるかどうかを判定し、
    前記変更操作に基づくデータは、前記変更操作が実行された後の値である請求項2に記載のデータベースドライバ。
  4. データベースへの操作を表すデータベースコマンドを、前記データベースの管理を行うデータベースサーバプロセスに送信するコンピュータを、
    前記データベースサーバプロセスに送信する前記データベースコマンドを解析して、前記データベースコマンドが前記データベースサーバプロセスに送信された場合に、前記データベースサーバプロセスにより前記データベースの特定エリアに格納されるデータの変更操作が実行されるかどうかを判定する手段と、
    前記変更操作が実行されると判定した場合には、前記変更操作に基づくデータを前記データベースサーバプロセスとは異なるプロセスに転送する手段として機能させるためのプログラム。
JP2012165080A 2012-07-25 2012-07-25 データベースドライバおよびプログラム Expired - Fee Related JP5748711B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012165080A JP5748711B2 (ja) 2012-07-25 2012-07-25 データベースドライバおよびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012165080A JP5748711B2 (ja) 2012-07-25 2012-07-25 データベースドライバおよびプログラム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2014119951A Division JP5913440B2 (ja) 2014-06-10 2014-06-10 サーバおよびプログラム

Publications (2)

Publication Number Publication Date
JP2014026392A true JP2014026392A (ja) 2014-02-06
JP5748711B2 JP5748711B2 (ja) 2015-07-15

Family

ID=50199994

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012165080A Expired - Fee Related JP5748711B2 (ja) 2012-07-25 2012-07-25 データベースドライバおよびプログラム

Country Status (1)

Country Link
JP (1) JP5748711B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7464398B2 (ja) 2020-02-13 2024-04-09 住友重機械工業株式会社 極低温冷凍機およびシール部品

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233405A (ja) * 1992-02-18 1993-09-10 Hitachi Ltd データベース変更監視方式
JP2003208346A (ja) * 2002-01-16 2003-07-25 Fujitsu Ltd データベース更新情報の反映システムおよびそのためのプログラム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05233405A (ja) * 1992-02-18 1993-09-10 Hitachi Ltd データベース変更監視方式
JP2003208346A (ja) * 2002-01-16 2003-07-25 Fujitsu Ltd データベース更新情報の反映システムおよびそのためのプログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND199800098014; 森山 徹: 'オープンフロント' 日経オープンシステム 第59号, 19980215, p.234-239, 日経BP社 *
JPN6013059326; 森山 徹: 'オープンフロント' 日経オープンシステム 第59号, 19980215, p.234-239, 日経BP社 *

Also Published As

Publication number Publication date
JP5748711B2 (ja) 2015-07-15

Similar Documents

Publication Publication Date Title
US7673029B2 (en) Grid automation bus to integrate management frameworks for dynamic grid management
US8438190B2 (en) Generating web services from business intelligence queries
US9020949B2 (en) Method and system for centralized issue tracking
US7624116B2 (en) System and method for managing objects according to the common information model
US8275775B2 (en) Providing web services from business intelligence queries
US9104483B2 (en) System and method for automating and scheduling remote data transfer and computation for high performance computing
CN111176761A (zh) 微服务调用方法和装置
US8527995B2 (en) Synchronization system for entities maintained by multiple applications
US20100017442A1 (en) Information Management Server, Information Processing System, Communication Method and Program
US10558502B2 (en) Software application runtime having dynamic evaluation functions and parameters
US20060106895A1 (en) Method and subsystem for performing metadata cleanup for replication topologies
JP5748711B2 (ja) データベースドライバおよびプログラム
US10621163B2 (en) Tracking and reusing function results
US20060095480A1 (en) Method and subsystem for performing subset computation for replication topologies
JP5913440B2 (ja) サーバおよびプログラム
US20140172955A1 (en) Distributed mobile enterprise application platform
US20220129332A1 (en) Handling of Metadata for Microservices Processing
JP5820902B2 (ja) データベースサーバ
JP5567069B2 (ja) データベースサーバ
Krizevnik et al. Improved SOA persistence architectural model
US8250090B2 (en) Method for performing message-based distributed computing, involves executing expression of matched message response on members identified by set instance definition using dimension values derived from message
US10133758B2 (en) Cell-based database management system
KR102659150B1 (ko) 애플리케이션 서비스 제공 장치, 애플리케이션 서비스 제공 방법 및 애플리케이션 서비스를 제공하는 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체
KR102663420B1 (ko) 애플리케이션 서비스 제공 장치, 애플리케이션 서비스 제공 방법 및 애플리케이션 서비스를 제공하는 컴퓨터로 실행가능한 프로그램을 저장하는 저장매체
CN111373365A (zh) 模式语法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20131203

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140131

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140311

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140610

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140618

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20141003

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150512

R150 Certificate of patent or registration of utility model

Ref document number: 5748711

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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