(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023175144
(43)【公開日】2023-12-12
(54)【発明の名称】中継装置、中継方法、中継プログラム及びデータベースシステム
(51)【国際特許分類】
G06F 16/245 20190101AFI20231205BHJP
【FI】
G06F16/245
【審査請求】有
【請求項の数】9
【出願形態】OL
(21)【出願番号】P 2022087447
(22)【出願日】2022-05-30
(11)【特許番号】
(45)【特許公報発行日】2023-12-05
(71)【出願人】
【識別番号】395011562
【氏名又は名称】三菱電機ITソリューションズ株式会社
(74)【代理人】
【識別番号】110002491
【氏名又は名称】弁理士法人クロスボーダー特許事務所
(72)【発明者】
【氏名】山野井 祐介
【テーマコード(参考)】
5B175
【Fターム(参考)】
5B175CA09
5B175EA03
(57)【要約】
【課題】中継装置を介してクライアント端末がデータベースにアクセスする場合における不具合の発生を減らす。
【解決手段】データベースシステム100は、クライアント端末10と中継装置20とデータベース30とを備える。クライアント端末10は、データベース30のデータの抽出を行う抽出文を入力する。中継装置20は、クライアント端末10によって入力された抽出文に基づきデータベース30からデータを抽出する。中継装置20は、抽出されたデータをワークテーブルに書き込んで、ワークテーブルに書き込まれたデータを基準量ずつクライアント端末10に送信する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
クライアント端末からデータベースのデータの抽出を行う抽出文を受信する受信部と、
前記受信部によって受信された前記抽出文に基づきデータベースからデータを抽出して、抽出されたデータをワークテーブルに書き込むアクセス部と、
前記アクセス部によって前記ワークテーブルに書き込まれたデータを基準量ずつ前記クライアント端末に送信する送信部と
を備える中継装置。
【請求項2】
前記送信部は、前記クライアント端末からの要求がある度に前記ワークテーブルに書き込まれたデータを基準量ずつ前記クライアント端末に送信する
請求項1に記載の中継装置。
【請求項3】
前記中継装置は、さらに、
前記抽出文に対して、前記ワークテーブルへの書き込み命令を加えて変換抽出文を生成する変換部
を備え、
前記アクセス部は、前記変換抽出文により、前記データベースからデータを抽出して、抽出されたデータを前記ワークテーブルに書き込む
請求項1に記載の中継装置。
【請求項4】
前記中継装置は、さらに、
前記受信部によって前記抽出文が受信されると、前記抽出文に対応させた前記ワークテーブルを生成し、前記送信部によって前記ワークテーブルに書き込まれたデータの送信が終わると、前記抽出文に対応させた前記ワークテーブルを削除するテーブル管理部
を備える請求項1に記載の中継装置。
【請求項5】
前記受信部は、前記クライアント端末から前記データベースに対するデータの登録と更新と削除とのいずれかを行う1つ以上の操作文を含むトランザクション処理の命令を受信し、
前記アクセス部は、前記トランザクション処理に含まれる前記1つ以上の操作文を順に前記データベースに対して実行するとともに、前記1つ以上の操作文のうちいずれかの操作文の実行に失敗した場合には、前記1つ以上の操作文全ての実行を取り消す
請求項1に記載の中継装置。
【請求項6】
前記受信部は、ストアドプロシージャのコール文であって、1つ以上のパラメータが設定されたコール文を受信し、
前記アクセス部は、前記1つ以上のパラメータそれぞれに対して、入力と出力との区分を設定した上で前記コール文を前記データベースに送信して、前記ストアドプロシージャを実行させる
請求項1に記載の中継装置。
【請求項7】
前記アクセス部は、前記1つ以上のパラメータそれぞれに対して、型を設定した上で前記コール文を前記データベースに送信して、前記ストアドプロシージャを実行させる
請求項6に記載の中継装置。
【請求項8】
コンピュータが、クライアント端末からデータベースのデータの抽出を行う抽出文を受信し、
コンピュータが、前記抽出文に基づきデータベースからデータを抽出して、抽出されたデータをワークテーブルに書き込み、
コンピュータが、前記ワークテーブルに書き込まれたデータを基準量ずつ前記クライアント端末に送信する中継方法。
【請求項9】
クライアント端末からデータベースのデータの抽出を行う抽出文を受信する受信処理と、
前記受信処理によって受信された前記抽出文に基づきデータベースからデータを抽出して、抽出されたデータをワークテーブルに書き込むアクセス処理と、
前記アクセス処理によって前記ワークテーブルに書き込まれたデータを基準量ずつ前記クライアント端末に送信する送信処理と
を行う中継装置としてコンピュータを機能させる中継プログラム。
【請求項10】
クライアント端末と中継装置とデータベースとを備えるデータベースシステムであり、
前記クライアント端末は、データベースのデータの抽出を行う抽出文を入力し、
前記中継装置は、前記クライアント端末によって入力された前記抽出文に基づき前記データベースからデータを抽出して、抽出されたデータをワークテーブルに書き込んで、前記ワークテーブルに書き込まれたデータを基準量ずつ前記クライアント端末に送信するデータベースシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、クラウド上のデータベースへのアクセス技術に関する。
【背景技術】
【0002】
従来は、クライアント端末とデータベースとが同一のネットワーク上に設置される構成が一般的であった。以下、この構成をオンプレミス構成と呼ぶ。しかし、クラウド上にデータベースが設置され、クライアント端末とデータベースとが異なるネットワーク上に設置される構成が用いられ始めている。以下、この構成をクラウド構成と呼ぶ。
【0003】
オンプレミス構成では、クライアント端末は直接データベースにアクセスしていた。しかし、クラウド構成では、セキュリティ等の観点から、クライアント端末が直接データベースにアクセスできない構成となっている。
そのため、オンプレミス構成で用いられていたプログラムをそのまま用いて、オンプレミス構成からクラウド構成に移行することはできない。オンプレミス構成からクラウド構成に移行する場合には、プログラム毎に変更を加える、又は、クライアント端末毎にVPN環境を構築するといった対応が必要になる。VPNは、Virtual Private Networkの略である。プログラム毎に変更を加えるには、大きな工数がかかってしまう。また、クライアント端末毎にVPN環境を構築するには、大きな費用負担が発生してしまう。
【0004】
特許文献1には、クライアント端末とクラウド上のデータベースとの間に中継装置を設けることが記載されている。特許文献1には、クライアント端末からは中継装置がデータベースに見え、データベースからは中継装置がクライアント端末に見えるようにプロキシの設定を行うことが記載されている。これにより、オンプレミス構成からクラウド構成に移行する際のプログラム修正量の低減が図られている。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に記載されたように、中継装置を介してクライアント端末がデータベースにアクセスする場合には、ネットワーク設定に関するプログラム修正量を低減させることができる。しかし、オンプレミス構成で用いられていたプログラムをそのまま用いてしまうと、不具合が発生する恐れがある。
本開示は、中継装置を介してクライアント端末がデータベースにアクセスする場合における不具合の発生を減らすことを目的とする。
【課題を解決するための手段】
【0007】
本開示に係る中継装置は、
クライアント端末からデータベースのデータの抽出を行う抽出文を受信する受信部と、
前記受信部によって受信された前記抽出文に基づきデータベースからデータを抽出して、抽出されたデータをワークテーブルに書き込むアクセス部と、
前記アクセス部によって前記ワークテーブルに書き込まれたデータを基準量ずつ前記クライアント端末に送信する送信部と
を備える。
【発明の効果】
【0008】
本開示では、中継装置は、データベースからデータを抽出されたデータをワークテーブルに書き込み、基準量ずつデータをクライアント端末に送信する。これにより、クライアント端末でメモリオーバのエラーが発生するケースにも対応が容易になる。
【図面の簡単な説明】
【0009】
【
図1】実施の形態1に係るデータベースシステム100の構成図。
【
図2】実施の形態1に係るクライアント端末10の構成図。
【
図4】実施の形態1に係るデータベース30の構成図。
【
図5】実施の形態1に係るデータベースシステム100の処理を示すフローチャート。
【
図6】実施の形態1に係るマスタ記憶部231の説明図。
【
図7】実施の形態1に係るワークテーブルの説明図。
【
図10】実施の形態1に係るデータ取得処理のフローチャート。
【
図11】実施の形態2に係るデータベースシステム100の処理のフローチャート。
【
図12】実施の形態2に係るアクセス処理のフローチャート。
【
図13】実施の形態3に係るデータベース30の構成図。
【
図14】実施の形態3に係るデータベースシステム100の処理のフローチャート。
【
図15】実施の形態3に係るアクセス処理のフローチャート。
【
図16】実施の形態3に係るマスタ記憶部332の説明図。
【発明を実施するための形態】
【0010】
実施の形態1.
***構成の説明***
図1を参照して、実施の形態1に係るデータベースシステム100の構成を説明する。
データベースシステム100は、1台以上のクライアント端末10と、中継装置20と、データベース30とを備える。クライアント端末10は、データベース30のデータを利用した処理を実行するコンピュータである。中継装置20は、クライアント端末10とデータベース30との間でデータを中継するコンピュータである。データベース30は、クラウド上に設置されたコンピュータである。
1台以上のクライアント端末10それぞれと中継装置20とは、LAN等の伝送路91を介して接続されている。LANは、Local Area Networkの略である。中継装置20とデータベース30とは、インターネット92を介して接続されている。
【0011】
図2を参照して、実施の形態1に係るクライアント端末10の構成を説明する。
クライアント端末10は、プロセッサ11と、メモリ12と、ストレージ13と、通信インタフェース14とのハードウェアを備える。プロセッサ11は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0012】
クライアント端末10は、機能構成要素として、データ処理部111と、データ表示部112とを備える。クライアント端末10の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ13には、クライアント端末10の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ11によりメモリ12に読み込まれ、プロセッサ11によって実行される。これにより、クライアント端末10の各機能構成要素の機能が実現される。
【0013】
図3を参照して、実施の形態1に係る中継装置20の構成を説明する。
中継装置20は、プロセッサ21と、メモリ22と、ストレージ23と、通信インタフェース24とのハードウェアを備える。プロセッサ21は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0014】
中継装置20は、機能構成要素として、受信部211と、テーブル管理部212と、変換部213と、アクセス部214と、送信部215とを備える。中継装置20の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ23には、中継装置20の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ21によりメモリ22に読み込まれ、プロセッサ21によって実行される。これにより、中継装置20の各機能構成要素の機能が実現される。
【0015】
ストレージ23は、マスタ記憶部231と、ワークテーブル記憶部232とを実現する。
【0016】
図4を参照して、実施の形態1に係るデータベース30の構成を説明する。
データベース30は、プロセッサ31と、メモリ32と、ストレージ33と、通信インタフェース34とのハードウェアを備える。プロセッサ31は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。
【0017】
データベース30は、機能構成要素として、データ処理部311を備える。データベース30の各機能構成要素の機能はソフトウェアにより実現される。
ストレージ33には、データベース30の各機能構成要素の機能を実現するプログラムが格納されている。このプログラムは、プロセッサ31によりメモリ32に読み込まれ、プロセッサ31によって実行される。これにより、データベース30の各機能構成要素の機能が実現される。
【0018】
ストレージ33は、テーブル記憶部331を実現する。
【0019】
プロセッサ11,21,31は、プロセッシングを行うICである。ICはIntegrated Circuitの略である。プロセッサ11,21,31は、具体例としては、CPU、DSP、GPUである。CPUは、Central Processing
Unitの略である。DSPは、Digital Signal Processorの略である。GPUは、Graphics Processing Unitの略である。
【0020】
メモリ12,22,32は、データを一時的に記憶する記憶装置である。メモリ12,22,32は、具体例としては、SRAM、DRAMである。SRAMは、Static
Random Access Memoryの略である。DRAMは、Dynamic
Random Access Memoryの略である。
【0021】
ストレージ13,23,33は、データを保管する記憶装置である。ストレージ13,23,33は、具体例としては、HDDである。HDDは、Hard Disk Driveの略である。また、ストレージ13,23,33は、SD(登録商標)メモリカード、CompactFlash(登録商標)、NANDフラッシュ、フレキシブルディスク、光ディスク、コンパクトディスク、Blu-ray(登録商標)ディスク、DVDといった可搬記録媒体であってもよい。SDは、Secure Digitalの略である。DVDは、Digital Versatile Diskの略である。
【0022】
通信インタフェース14,24,34は、外部の装置と通信するためのインタフェースである。通信インタフェース14,24,34は、具体例としては、Ethernet(登録商標)、USB、HDMI(登録商標)のポートである。USBは、Universal Serial Busの略である。HDMIは、High-Definition Multimedia Interfaceの略である。
【0023】
図2では、プロセッサ11は、1つだけ示されていた。しかし、プロセッサ11は、複数であってもよく、複数のプロセッサ11が、各機能を実現するプログラムを連携して実行してもよい。同様に、
図3では、プロセッサ21は、1つだけ示されていた。しかし、プロセッサ21は、複数であってもよく、複数のプロセッサ21が、各機能を実現するプログラムを連携して実行してもよい。
図4では、プロセッサ31は、1つだけ示されていた。しかし、プロセッサ31は、複数であってもよく、複数のプロセッサ31が、各機能を実現するプログラムを連携して実行してもよい。
【0024】
***動作の説明***
図5から
図10を参照して、実施の形態1に係るデータベースシステム100の動作を説明する。
実施の形態1に係るデータベースシステム100の動作手順のうち中継装置20の動作手順は、実施の形態1に係る中継方法に相当する。また、実施の形態1に係るデータベースシステム100の動作のうち中継装置20の動作を実現するプログラムは、実施の形態1に係る中継プログラムに相当する。
【0025】
図5を参照して、実施の形態1に係るデータベースシステム100の処理を説明する。
(ステップS111:操作文受付処理)
クライアント端末10のデータ処理部111は、データベースを操作する操作文の入力を受け付ける。実施の形態1では、操作文は、SQL文である。SQLは、Structured Query Languageの略である。操作文は、SQLに限らず、データベースを操作する言語により書かれた命令文であればよい。
具体的には、データ処理部111は、クライアント端末10に実装された既存プログラムによって発行された操作文を受け付ける。あるいは、データ処理部111は、入力フォームを表示して、クライアント端末10のユーザによって入力フォームに対して入力された操作文を受け付けてもよい。
実施の形態1では、データ処理部111は、データベースのデータの抽出を行う抽出文の入力を受け付けるものとする。抽出文は、SQLにおけるSELECT文である。
【0026】
(ステップS112:操作文送信処理)
クライアント端末10のデータ処理部111は、ステップS111で受け付けされた操作文を中継装置20に送信する。この際、データ処理部111は、クライアント端末10の識別子であるクライアントIDとともに操作文を送信する。
【0027】
(ステップS113:操作文受信処理)
中継装置20の受信部211は、ステップS112で送信された操作文及びクライアントIDを受信する。
【0028】
(ステップS114:テーブル生成処理)
中継装置20のテーブル管理部212は、ステップS113で受信されたクライアントIDに対応して記憶された最も大きい管理番号をマスタ記憶部231から検索する。
図6に示すように、マスタ記憶部231には、クライアントID毎に管理番号が記憶されている。テーブル管理部212は、検索された番号に1を加算した数を新たな管理番号として特定する。そして、テーブル管理部212は、受信されたクライアントIDと、特定された管理番号とを設定したレコードをマスタ記憶部231に追加する。例えば、
図6では、クライアントIDがID1の場合には、新たな管理番号として3が特定される。そして、クライアントID“ID1”、管理番号“3”のレコードが追加される。
テーブル管理部212は、クライアントIDと特定された管理番号とに対応するワークテーブルをワークテーブル記憶部232に生成する。例えば、テーブル管理部212は、WT_クライアントID_管理番号という名称のワークテーブルを生成する。例示の場合は、WT_ID1_3となる。
【0029】
(ステップS115:項目追加処理)
中継装置20のテーブル管理部212は、ステップS113で受信された操作文で抽出される項目数に1を加えた数の項目を、ステップS114で生成されたワークテーブルに生成する。例えば、操作文で抽出される項目数が9であるとする。すると、テーブル管理部212は、
図7に示すように10個の項目をワークテーブルに生成する。ここでは、先頭にLINE_NOの項目を加えた10個の項目がワークテーブルに生成されている。これにより、抽出文に対応したワークテーブルが生成される。
【0030】
(ステップS116:変換処理)
中継装置20の変換部213は、ステップS113で受信された抽出文に対して、ワークテーブルへの書き込み命令を加えて変換抽出文を生成する。この際、変換部213は、抽出されたデータの件数を示すレコード番号の項目を追加した上で、ワークテーブルへ書き込むように変換抽出文を生成する。
具体例としては、
図8に示すように、MT_MAIN_SYOHIN_DETAIL.PATTERN_CODEから、MT_SYOHIN_KIHON.SYOHIN_NAMEの9個の項目が抽出される抽出文が受信されたとする。この場合には、変換部213は、
図9に示すように、レコード番号の項目として、ROWNUMの項目を追加した上で、ワークテーブルへの書き込む変換抽出文を生成する。
【0031】
(ステップS117:アクセス処理)
中継装置20のアクセス部214は、ステップS116で生成された変換抽出文をデータベース30に実行させる。具体的には、アクセス部214は、データベース30に対して変換抽出文を送信する。すると、データベース30のデータ処理部311は、変換抽出文を実行して、抽出されたデータを中継装置20に送信する。これにより、アクセス部214は、データベース30からデータを抽出する。
アクセス部214は、抽出されたデータをステップS115で生成された、抽出文に対応するワークテーブルに書き込む。
【0032】
(ステップS118:戻り値送信処理)
中継装置20の送信部215は、ステップS117で抽出されたデータの件数を戻り値として設定する。そして、送信部215は、戻り値を管理番号とともにクライアント端末10に送信する。
【0033】
(ステップS119:戻り値判定処理)
クライアント端末10のデータ処理部111は、ステップS118で送信された戻り値が0であるか否かを判定する。
データ処理部111は、戻り値が0である場合には、処理を終了する。一方、データ処理部111は、戻り値が0でない場合には、処理をステップS120に進める。
【0034】
(ステップS120:データ取得処理)
クライアント端末10のデータ処理部111は、抽出されたデータを基準量ずつ中継装置20から取得する。そして、クライアント端末10のデータ表示部112は、取得されたデータを表示する。
【0035】
図10を参照して、実施の形態1に係るデータ取得処理(
図5のステップS120)を説明する。
(ステップS121:データ要求処理)
クライアント端末10のデータ処理部111は、データの送信要求を中継装置20に送信する。この際、クライアント端末10は、クライアントID及び管理番号とともに送信要求を送信する。
【0036】
(ステップS122:データ送信処理)
中継装置20の送信部215は、クライアントID及び管理番号に対応するワークテーブルから、読み出されていない基準量のデータを読み出す。基準量は、データの件数であってもよいし、データサイズであってもよい。例えば、送信部215は、2000件といった件数を基準量としてデータを読み出す。そして、送信部215は、読み出されたデータをクライアント端末10に送信する。
【0037】
(ステップS123:データ表示処理)
クライアント端末10のデータ処理部111は、ステップS122で送信されたデータを受信する。クライアント端末10のデータ表示部112は、受信されたデータを表示する。
【0038】
(ステップS124:データ判定処理)
クライアント端末10のデータ処理部111は、抽出されたデータを全て取得したか否かを判定する。具体的には、データ処理部111は、戻り値が示す件数のデータを取得したか否かを判定する。
データ処理部111は、データを全て取得した場合には、処理をステップS125に進める。一方、データ処理部111は、データを全て取得していない場合には、処理をステップS121に戻す。
【0039】
(ステップS125:終了通知処理)
クライアント端末10のデータ処理部111は、受信を終了したことを中継装置20に通知する。この際、データ処理部111は、クライアントID及び管理番号とともに終了したことを通知する。
【0040】
(ステップS126:テーブル削除処理)
中継装置20のテーブル管理部212は、ステップS125で通知されたクライアントID及び管理番号に対応するワークテーブルをワークテーブル記憶部232から削除する。また、テーブル管理部212は、ステップS125で通知されたクライアントID及び管理番号に対応するレコードをマスタ記憶部231から削除する。
【0041】
***実施の形態1の効果***
以上のように、実施の形態1に係る中継装置20は、データベース30からデータを抽出されたデータをワークテーブルに書き込み、基準量ずつデータをクライアント端末10に送信する。これにより、クライアント端末10でメモリオーバのエラーが発生するケースにも対応が容易になる。
【0042】
ここで、クライアント端末10では、大量のデータが送信されるとメモリオーバのエラーが発生してしまうことがある。実施の形態1では、中継装置20は、基準量ずつデータをクライアント端末10に送信する。そのため、クライアント端末10は、1度に大量のデータが送信されることがない。したがって、メモリオーバのエラーの発生を防止可能である。
クライアント端末10が直接データベース30にアクセスする場合には、メモリオーバのエラーが発生する前にクライアント端末10からデータベース30に通知をする等の処理を加えることも可能である。しかし、クライアント端末10が中継装置20を介してデータベース30にアクセスする場合には、単純に通知を行って、メモリオーバのエラーの発生を防ぐことが難しかった。実施の形態1に係る中継装置20は、中継装置20の処理により、メモリオーバのエラーの発生を防ぐことが可能である。
【0043】
***他の構成***
<変形例1>
実施の形態1では、各機能構成要素がソフトウェアで実現された。しかし、変形例1として、各機能構成要素はハードウェアで実現されてもよい。この変形例1について、実施の形態1と異なる点を説明する。
【0044】
各機能構成要素がハードウェアで実現される場合には、クライアント端末10は、プロセッサ11とメモリ12とストレージ13とに代えて、電子回路を備える。電子回路は、各機能構成要素と、メモリ12と、ストレージ13との機能とを実現する専用の回路である。
【0045】
各機能構成要素がハードウェアで実現される場合には、中継装置20は、プロセッサ21とメモリ22とストレージ23とに代えて、電子回路を備える。電子回路は、各機能構成要素と、メモリ22と、ストレージ23との機能とを実現する専用の回路である。
【0046】
各機能構成要素がハードウェアで実現される場合には、データベース30は、プロセッサ31とメモリ32とストレージ33とに代えて、電子回路を備える。電子回路は、各機能構成要素と、メモリ32と、ストレージ33との機能とを実現する専用の回路である。
【0047】
電子回路としては、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックIC、GA、ASIC、FPGAが想定される。GAは、Gate Arrayの略である。ASICは、Application Specific Integrated Circuitの略である。FPGAは、Field-Programmable Gate Arrayの略である。
各機能構成要素を1つの電子回路で実現してもよいし、各機能構成要素を複数の電子回路に分散させて実現してもよい。
【0048】
<変形例2>
変形例2として、一部の各機能構成要素がハードウェアで実現され、他の各機能構成要素がソフトウェアで実現されてもよい。
【0049】
プロセッサ11とメモリ12とストレージ13と電子回路とを処理回路という。つまり、各機能構成要素の機能は、処理回路により実現される。
【0050】
実施の形態2.
実施の形態2は、中継装置20がロールバック処理を管理する点が実施の形態1と異なる。実施の形態2では、この異なる点を説明して、同一の点については説明を省略する。
【0051】
***動作の説明***
図11及び
図12を参照して、実施の形態2に係るデータベースシステム100の動作を説明する。
実施の形態2に係るデータベースシステム100の動作手順のうち中継装置20の動作手順は、実施の形態2に係る中継方法に相当する。また、実施の形態2に係るデータベースシステム100の動作のうち中継装置20の動作を実現するプログラムは、実施の形態2に係る中継プログラムに相当する。
【0052】
図11を参照して、実施の形態2に係るデータベースシステム100の処理を説明する。
ステップS211からステップS214の処理は、
図5のステップS111からステップS114の処理と同じである。
但し、ステップS211では、データ処理部111は、データベース30に対するデータの登録と更新と削除とのいずれかを行う1つ以上の操作文を含むトランザクション処理の命令を受け付ける。
【0053】
(ステップS215:操作文登録処理)
中継装置20のアクセス部214は、ステップS213で受信された1つ以上の操作文を含むトランザクション処理の命令を、ステップS214で生成されたワークテーブルに書き込む。
【0054】
(ステップS216:アクセス処理)
中継装置20のアクセス部214は、ワークテーブルから操作文を1つずつ処理順に読み出してデータベース30に実行させることにより、トランザクション処理を実行する。この際、アクセス部214は、途中でエラーが発生した場合には、トランザクション処理に含まれる全ての操作文についてロールバック処理を行う。
【0055】
(ステップS217:戻り値送信処理)
中継装置20の送信部215は、ステップS216で処理が実行された件数又はエラーを示す値を戻り値として設定する。そして、送信部215は、戻り値をクライアント端末10に送信する。
【0056】
(ステップS218:テーブル削除処理)
中継装置20のテーブル管理部212は、ステップS214で生成されたワークテーブルを削除する。
【0057】
(ステップS219:戻り値判定処理)
クライアント端末10のデータ処理部111は、ステップS217で送信された戻り値が要求通りであるか否かを判定する。
データ処理部111は、戻り値が要求通りである場合には、処理を終了する。一方、データ処理部111は、戻り値が要求通りでない場合には、処理をステップS220に進める。
【0058】
(ステップS220:エラー処理)
クライアント端末10のデータ処理部111は、エラーが発生したとして、エラー発生時の処理を実行する。具体例としては、データ処理部111は、データ表示部112にエラー発生を知らせる画面を表示させ、処理を停止する。エラー発生時の処理では、トランザクション処理の再実行等が行われる。
【0059】
図12を参照して、実施の形態2に係るアクセス処理(
図11のステップS216)を説明する。
(ステップS221:アクセス要求処理)
中継装置20のアクセス部214は、ワークテーブルから、未実行の操作文を1つずつ処理順に抽出する。アクセス部214は、抽出された操作文をデータベース30に対して送信する。
【0060】
(ステップS222:操作実行処理)
データベース30のデータ処理部311は、ステップS221で送信された操作文を受信する。データ処理部311は、受信された操作文を実行する。
【0061】
(ステップS223:結果通知処理)
データベース30のデータ処理部311は、ステップS222で処理が成功したか否かを中継装置20に通知する。
【0062】
(ステップS224:結果判定処理)
中継装置20のアクセス部214は、ステップS223で通知された結果が成功か否かを判定する
アクセス部214は、結果が成功の場合には、処理をステップS225に進める。一方、アクセス部214は、結果が失敗の場合には、処理をステップS226に進める。
【0063】
(ステップS225:処理残判定処理)
中継装置20のアクセス部214は、トランザクション処理に未処理の操作文が残っているか否かを判定する。
アクセス部214は、未処理の操作文が残っている場合には、処理をステップS221に戻す。一方、アクセス部214は、未処理の操作文が残っていない場合には、処理を終了する。
【0064】
(ステップS226:ロールバック指示処理)
中継装置20のアクセス部214は、トランザクション処理に含まれる処理済の操作文を指定して、データベース30に処理前の状態に戻すようにロールバック指示を送信する。
【0065】
(ステップS227:ロールバック実行処理)
データベース30のデータ処理部311は、ロールバック指示を受信する。すると、データ処理部311は、指定された操作文について処理前の状態に戻す。
【0066】
***実施の形態2の効果***
以上のように、実施の形態2に係る中継装置20は、トランザクション処理を受信すると、1つずつ操作文を実行させ、エラー発生時には全ての操作文についてロールバック処理を行う。これにより、中継装置20を介してクライアント端末10がデータベース30にアクセスする場合にも、適切にロールバック処理を行うことが可能である。
【0067】
実施の形態3.
実施の形態3は、ストアドプロシージャを実行する点が実施の形態1,2と異なる。実施の形態3では、この異なる点を説明して、同一の点については説明を省略する。
【0068】
***構成の説明***
図13を参照して、実施の形態3に係るデータベース30の構成を説明する。
データベース30は、機能構成要素として、テーブル管理部312を備える点が
図4に示すデータベース30と異なる。また、データベース30は、ストレージ33がマスタ記憶部332及びワークテーブル記憶部333を実現する点が
図4に示すデータベース30と異なる。
【0069】
***動作の説明***
図14から
図16を参照して、実施の形態3に係るデータベースシステム100の動作を説明する。
実施の形態3に係るデータベースシステム100の動作手順のうち中継装置20の動作手順は、実施の形態3に係る中継方法に相当する。また、実施の形態3に係るデータベースシステム100の動作のうち中継装置20の動作を実現するプログラムは、実施の形態3に係る中継プログラムに相当する。
【0070】
図14を参照して、実施の形態3に係るデータベースシステム100の処理を説明する。
ステップS311からステップS313の処理は、
図5のステップS111からステップS113の処理と同じである。
但し、ステップS311では、データ処理部111は、データベース30に登録されたストアドプロシージャを呼び出すコール文を、操作文として受け付ける。コール文には、1つ以上のパラメータが設定されている。
【0071】
(ステップS314:アクセス処理)
中継装置20のアクセス部214は、ステップS313で受信されたコール文をデータベース30に送信して、ストアドプロシージャを実行させる。この際、アクセス部214は、コール文に設定された1つ以上のパラメータそれぞれに対して、入力と出力との区分を設定した上でコール文をデータベース30に送信する。区分は、パラメータがストアドプロシージャに対して与えられる入力値が設定されたものか、ストアドプロシージャの出力値を設定するためのものかを表す。
【0072】
(ステップS315:戻り値送信処理)
中継装置20の送信部215は、ステップS314で処理が実行された結果得られた出力値等を戻り値として設定する。そして、送信部215は、戻り値をクライアント端末10に送信する。
【0073】
(ステップS316:結果表示処理)
クライアント端末10のデータ処理部111は、ステップS315で送信された戻り値を取得する。クライアント端末10のデータ表示部112は、戻り値に応じた情報を表示する。
【0074】
図15を参照して、実施の形態3に係るアクセス処理(
図14のステップS314)を説明する。
(ステップS321:区分設定処理)
中継装置20のアクセス部214は、コール文に設定された1つ以上のパラメータそれぞれに対して、入力と出力との区分を設定する。この際、アクセス部214は、コール文に設定された1つ以上のパラメータそれぞれに対して、型を設定してもよい。型は、数値型、文字型等である。
【0075】
(ステップS322:コール文送信処理)
中継装置20のアクセス部214は、区分等が設定されたコール文をデータベース30に送信する。
【0076】
(ステップS323:テーブル管理処理)
データベース30のテーブル管理部312は、マスタ記憶部332に記憶された最も大きい番号を検索する。
図16に示すように、マスタ記憶部332には、管理番号が記憶されている。テーブル管理部312は、検索された番号に1を加算した数を新たな管理番号として特定する。そして、テーブル管理部312は、特定された管理番号を設定したレコードをマスタ記憶部332に追加する。
テーブル管理部312は、特定された管理番号に対応するワークテーブルをワークテーブル記憶部333に生成する。
【0077】
(ステップS324:項目追加処理)
データベース30のテーブル管理部312は、ステップS322で送信されたコール文に設定された1つ以上のパラメータのうち区分が出力と設定されたパラメータに対応する項目を、ステップS323で生成されたワークテーブルに生成する。これにより、コール文に対応したワークテーブルが生成される。
【0078】
(ステップS325:プロシージャ実行処理)
データベース30のデータ処理部311は、ステップS322で送信されたコール文に対応するストアドプロシージャを実行する。データ処理部311は、ストアドプロシージャを実行した結果得られた、区分が出力になっているパラメータの値を、ステップS324で生成されたワークテーブルに書き込む。
【0079】
(ステップS326:出力値送信処理)
データベース30のデータ処理部311は、ステップS325で得られた、区分が出力になっているパラメータの値を中継装置20に送信する。この際、データ処理部311は、ワークテーブルからパラメータの値を読み出して出力する。
【0080】
(ステップS327:テーブル削除処理)
データベース30のテーブル管理部312は、ステップS324で生成されたワークテーブルをワークテーブル記憶部333から削除する。また、テーブル管理部312は、ステップS323で追加されたレコードをマスタ記憶部332から削除する。
【0081】
(ステップS328:出力値取得処理)
中継装置20のアクセス部214は、ステップS316で送信されたパラメータの値を取得する。
【0082】
***実施の形態3の効果***
以上のように、実施の形態3に係る中継装置20は、ストアドプロシージャを呼び出す際に、パラメータの区分を設定する。これにより、データベース30は、ストアドプロシージャを実行する前に各パラメータの区分を特定可能である。その結果、データベース30は、出力値を格納するためのワークテーブルを、ストアドプロシージャ実行前に準備することができる。
【0083】
また、実施の形態3に係るデータベース30は、ストアドプロシージャの出力値をワークテーブルに書き込む。そして、データベース30は、ワークテーブルから出力値を読み出して中継装置20に送信する。これにより、出力値を中継装置20に返す処理を、抽出文を実行して得られたデータを中継装置20に返す処理と共通化することが可能になる。
【0084】
また、以上の説明における「部」を、「回路」、「工程」、「手順」、「処理」又は「処理回路」に読み替えてもよい。
【0085】
以上、本開示の実施の形態及び変形例について説明した。これらの実施の形態及び変形例のうち、いくつかを組み合わせて実施してもよい。また、いずれか1つ又はいくつかを部分的に実施してもよい。なお、本開示は、以上の実施の形態及び変形例に限定されるものではなく、必要に応じて種々の変更が可能である。
【0086】
以下、本開示の諸態様を付記としてまとめて記載する。
(付記1)
クライアント端末からデータベースのデータの抽出を行う抽出文を受信する受信部と、
前記受信部によって受信された前記抽出文に基づきデータベースからデータを抽出して、抽出されたデータをワークテーブルに書き込むアクセス部と、
前記アクセス部によって前記ワークテーブルに書き込まれたデータを基準量ずつ前記クライアント端末に送信する送信部と
を備える中継装置。
(付記2)
前記送信部は、前記クライアント端末からの要求がある度に前記ワークテーブルに書き込まれたデータを基準量ずつ前記クライアント端末に送信する
付記1に記載の中継装置。
(付記3)
前記中継装置は、さらに、
前記抽出文に対して、前記ワークテーブルへの書き込み命令を加えて変換抽出文を生成する変換部
を備え、
前記アクセス部は、前記変換抽出文により、前記データベースからデータを抽出して、抽出されたデータを前記ワークテーブルに書き込む
付記1又は2に記載の中継装置。
(付記4)
前記中継装置は、さらに、
前記受信部によって前記抽出文が受信されると、前記抽出文に対応させた前記ワークテーブルを生成し、前記送信部によって前記ワークテーブルに書き込まれたデータの送信が終わると、前記抽出文に対応させた前記ワークテーブルを削除するテーブル管理部
を備える付記1から3までのいずれか1項に記載の中継装置。
(付記5)
前記受信部は、前記クライアント端末から前記データベースに対するデータの登録と更新と削除とのいずれかを行う1つ以上の操作文を含むトランザクション処理の命令を受信し、
前記アクセス部は、前記トランザクション処理に含まれる前記1つ以上の操作文を順に前記データベースに対して実行するとともに、前記1つ以上の操作文のうちいずれかの操作文の実行に失敗した場合には、前記1つ以上の操作文全ての実行を取り消す
付記1から4までのいずれか1項に記載の中継装置。
(付記6)
前記受信部は、ストアドプロシージャのコール文であって、1つ以上のパラメータが設定されたコール文を受信し、
前記アクセス部は、前記1つ以上のパラメータそれぞれに対して、入力と出力との区分を設定した上で前記コール文を前記データベースに送信して、前記ストアドプロシージャを実行させる
付記1から5までのいずれか1項に記載の中継装置。
(付記7)
前記アクセス部は、前記1つ以上のパラメータそれぞれに対して、型を設定した上で前記コール文を前記データベースに送信して、前記ストアドプロシージャを実行させる
付記6に記載の中継装置。
(付記8)
コンピュータが、クライアント端末からデータベースのデータの抽出を行う抽出文を受信し、
コンピュータが、前記抽出文に基づきデータベースからデータを抽出して、抽出されたデータをワークテーブルに書き込み、
コンピュータが、前記ワークテーブルに書き込まれたデータを基準量ずつ前記クライアント端末に送信する中継方法。
(付記9)
クライアント端末からデータベースのデータの抽出を行う抽出文を受信する受信処理と、
前記受信処理によって受信された前記抽出文に基づきデータベースからデータを抽出して、抽出されたデータをワークテーブルに書き込むアクセス処理と、
前記アクセス処理によって前記ワークテーブルに書き込まれたデータを基準量ずつ前記クライアント端末に送信する送信処理と
を行う中継装置としてコンピュータを機能させる中継プログラム。
(付記10)
クライアント端末と中継装置とデータベースとを備えるデータベースシステムであり、
前記クライアント端末は、データベースのデータの抽出を行う抽出文を入力し、
前記中継装置は、前記クライアント端末によって入力された前記抽出文に基づき前記データベースからデータを抽出して、抽出されたデータをワークテーブルに書き込んで、前記ワークテーブルに書き込まれたデータを基準量ずつ前記クライアント端末に送信するデータベースシステム。
【符号の説明】
【0087】
100 データベースシステム、10 クライアント端末、11 プロセッサ、12 メモリ、13 ストレージ、14 通信インタフェース、111 データ処理部、112 データ表示部、20 中継装置、21 プロセッサ、22 メモリ、23 ストレージ、24 通信インタフェース、211 受信部、212 テーブル管理部、213 変換部、214 アクセス部、215 送信部、231 マスタ記憶部、232 ワークテーブル記憶部、30 データベース、31 プロセッサ、32 メモリ、33 ストレージ、34 通信インタフェース、311 データ処理部、312 テーブル管理部、331 テーブル記憶部、332 マスタ記憶部、333 ワークテーブル記憶部。
【手続補正書】
【提出日】2023-08-28
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
クライアント端末と伝送路を介して接続されるとともに、データベースとインターネットを介して接続された中継装置であり、
前記クライアント端末から前記データベースのデータの抽出を行う抽出文を受信する受信部と、
前記受信部によって受信された前記抽出文に基づきデータベースからデータを抽出して、抽出されたデータをワークテーブルに書き込むアクセス部と、
前記クライアント端末からの要求がある度に、前記アクセス部によって前記ワークテーブルに書き込まれたデータを基準量ずつ前記クライアント端末に送信する送信部と
を備える中継装置。
【請求項2】
前記中継装置は、さらに、
前記抽出文に対して、前記ワークテーブルへの書き込み命令を加えて変換抽出文を生成する変換部
を備え、
前記アクセス部は、前記変換抽出文により、前記データベースからデータを抽出して、抽出されたデータを前記ワークテーブルに書き込む
請求項1に記載の中継装置。
【請求項3】
前記中継装置は、さらに、
前記受信部によって前記抽出文が受信されると、前記抽出文に対応させた前記ワークテーブルを生成し、前記送信部によって前記ワークテーブルに書き込まれたデータの送信が終わると、前記抽出文に対応させた前記ワークテーブルを削除するテーブル管理部
を備える請求項1に記載の中継装置。
【請求項4】
前記受信部は、前記クライアント端末から前記データベースに対するデータの登録と更新と削除とのいずれかを行う1つ以上の操作文を含むトランザクション処理の命令を受信し、
前記アクセス部は、前記トランザクション処理に含まれる前記1つ以上の操作文を順に前記データベースに対して実行するとともに、前記1つ以上の操作文のうちいずれかの操作文の実行に失敗した場合には、前記1つ以上の操作文全ての実行を取り消す
請求項1に記載の中継装置。
【請求項5】
前記受信部は、ストアドプロシージャのコール文であって、1つ以上のパラメータが設定されたコール文を受信し、
前記アクセス部は、前記1つ以上のパラメータそれぞれに対して、入力と出力との区分を設定した上で前記コール文を前記データベースに送信して、前記ストアドプロシージャを実行させる
請求項1に記載の中継装置。
【請求項6】
前記アクセス部は、前記1つ以上のパラメータそれぞれに対して、型を設定した上で前記コール文を前記データベースに送信して、前記ストアドプロシージャを実行させる
請求項5に記載の中継装置。
【請求項7】
クライアント端末と伝送路を介して接続されるとともに、データベースとインターネットを介して接続された中継装置における中継方法であり、
コンピュータが、前記クライアント端末から前記データベースのデータの抽出を行う抽出文を受信し、
コンピュータが、前記抽出文に基づきデータベースからデータを抽出して、抽出されたデータをワークテーブルに書き込み、
コンピュータが、前記クライアント端末からの要求がある度に、前記ワークテーブルに書き込まれたデータを基準量ずつ前記クライアント端末に送信する中継方法。
【請求項8】
クライアント端末と伝送路を介して接続されるとともに、データベースとインターネットを介して接続された中継装置における中継プログラムであり、
前記クライアント端末から前記データベースのデータの抽出を行う抽出文を受信する受信処理と、
前記受信処理によって受信された前記抽出文に基づきデータベースからデータを抽出して、抽出されたデータをワークテーブルに書き込むアクセス処理と、
前記クライアント端末からの要求がある度に、前記アクセス処理によって前記ワークテーブルに書き込まれたデータを基準量ずつ前記クライアント端末に送信する送信処理と
を行う中継装置としてコンピュータを機能させる中継プログラム。
【請求項9】
クライアント端末と、前記クライアント端末と伝送路を介して接続された中継装置と、前記中継装置とインターネットを介して接続されたデータベースとを備えるデータベースシステムであり、
前記クライアント端末は、前記データベースのデータの抽出を行う抽出文を入力し、
前記中継装置は、前記クライアント端末によって入力された前記抽出文に基づき前記データベースからデータを抽出して、抽出されたデータをワークテーブルに書き込んで、前記クライアント端末からの要求がある度に前記ワークテーブルに書き込まれたデータを基準量ずつ前記クライアント端末に送信するデータベースシステム。