(57)【要約】  【課題】  業務システムでのデータベースサーバの処理能力向上おいて、業務システムを停止することなくデータベースサーバを追加し、処理能力向上が可能なデータベースアクセス技術を提供する。  【解決手段】  ネットワークで接続された、別の計算機上にあるデータベースをアクセスするデータベースアクセス方法において、上位のプログラムに、アクセス先のデータベースを隠蔽し、アクセス先のデータベースを複数設定するステップと、前記複数のデータベース９ａ、９ｂ間で、データを同一にするステップと、前記複数のデータベース９ａ、９ｂにアクセスを分散するステップとを有することを特徴とする。【選択図】  図１
2006178587.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークで接続された、別の計算機上にあるデータベースをアクセスするデータベースアクセス方法において、上位のプログラムに、アクセス先のデータベースを隠蔽し、アクセス先のデータベースを複数設定するステップと、前記複数のデータベース間で、データを同一にするステップと、前記複数のデータベースにアクセスを分散するステップとを有することを特徴とするデータベースアクセス方法。
【請求項２】
請求項１記載のデータベースアクセス方法において、前記別の計算機上のデータベースを新たに追加するステップと、前記新たなデータベースと既存のデータベースとの間で、データを同一にしたのち、前記新たなデータベースと既存のデータベースとの間にアクセスを分散させるステップとを含み、既存のシステムを停止することなく、新たなデータベースを追加するようにしたことを特徴とするデータベースアクセス方法。
【請求項３】
業務システムとネットワークで接続された、別の計算機上にあるデータベースサーバへアクセスするデータベースアクセス方法において、新規データベースサーバをネットワーク上に追加するステップと、追加された前記新規データベースサーバに対してレプリケーションを実施するステップと、前記レプリケーションによるデータベースのコピーが終了し、前記レプリケーションが有効になった後に、前記新規データベースサーバの定義のエントリを、前記業務システム内のデータベースサーバ定義に定義するステップとを有し、前記業務システムを稼動したままで、前記新規データベースサーバを追加するようにしたことを特徴とするデータベースアクセス方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、業務システムにおいて、データベースが稼働するデータベースサーバへのデータベースアクセス方法に関する。
【背景技術】
【０００２】
企業内の組織において企業経営に不可欠な業務を、コンピュータを用いて効率的に遂行するシステムである業務システムは、各企業の業務内容に合わせたカスタマイズが必要不可欠である。例えば、診療所や病院における業務システムである電子カルテでは、診療科の種類、実施する検査の種類、病室の有無や配置、等の条件により各種のカスタマイズが必要となる。
【０００３】
このように業務システムの設計構築において、カスタマイズへの対応は重要な要件となる。このため、カスタマイズを容易にする設計手法が各種提案されている。例えば、米国マイクロソフト社が開発したプログラミング言語であるＶｉｓｕａｌ  Ｂａｓｉｃでは、画面に表示される情報を、コントロールと呼ぶ部品として扱う。そして、表示位置やサイズ・フォント等のカスタマイズは、コントロールの属性変更だけで簡単に実施できる機能を備えている。
【０００４】
また、Ｊａｖａ（登録商標）言語に対するフレームワークであるＳｔｒｕｔｓ（ソフトバンクパブリッシング社、「Ａｐａｃｈｅ  Ｓｔｒｕｔｓハンドブック」、２００４/０９出版）では、ＭＶＣモデルと呼ばれる手法を用いて、カスタマイズの容易性を向上している。このモデルでは、画面表示、業務ロジック（業務の中核の処理）、制御（画面表示と業務ロジック間の連携）、の三者を分離して設計構築できる。これらの技術を用いると、画面表示のカスタマイズが、業務の中核の処理である業務ロジックへの影響なしで実現でき、カスタマイズの容易性が向上する。
【０００５】
業務システム構築において、表示に関しては、カスタマイズの要求が多いため、前述のようにカスタマイズを容易にする技術は多い。一方、大規模な施設向けにカスタマイズを行う場合は、データを格納しているデータベースの性能向上も求められる。
【０００６】
一般にデータベースの性能向上は、データベースサーバの処理能力向上で対応している。すなわち、より高性能なＣＰＵ（中央演算装置）を装備したサーバの使用やＣＰＵの追加増設による対応である。
【０００７】
このためシステム構築時に、今後システム運用期間中に要求される最大データ量や最大データ処理能力を見積もり、それに対応できる十分な余裕を持った能力のサーバをデータベースサーバとして使用する。
【０００８】
【非特許文献１】ソフトバンクパブリッシング社、「Ａｐａｃｈｅ  Ｓｔｒｕｔｓハンドブック」、２００４/０９出版
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上述したような業務システムにおいて、アクセス先のデータベースサーバは、システム構築時に十分な性能的余裕を持った見積もりを行うが、その見積もりを越えたデータベースサーバの性能が必要となるケースも少なくない。
【００１０】
このようなケースにおいて、ＣＰＵの追加増設で対応可能であっても、追加作業のため、業務システムを停止する必要がある。このような停止は、基本的に２４時間連続稼働を前提としている業務システムでは、大きな問題となる。
【００１１】
さらに、ＣＰＵの追加増設が無理な場合は、より高性能なサーバマシンへの交換が必要となる。このようなサーバマシンの交換では、システムの基本的な構成情報（マシン名やデータベース名等）が変わるケースがあり、業務システムの業務ロジック内部で、システムの基本的な構成情報を使用している場合、業務システム自体を再構築する必要がある。
【００１２】
このような再構築作業自体、非常に時間がかかる上に、データベースのバックアップと再構築も必要となり、特に非常に長い時間にわたりシステムを停止する必要性が生じ、業務の遂行に多大な悪影響を及ぼす。
【００１３】
このように、従来の業務システムでは、アクセス先のデータベースサーバは、システム構築時に十分な性能的余裕を持ったマシンを準備するが、運用中に、その見積もりを越えたデータベースサーバの性能が必要となった場合、業務システムを停止せずにデータベースサーバの処理能力を向上させることは困難であった。
【００１４】
本発明の目的は、業務システムでのデータベースサーバの処理能力向上おいて、業務システムを停止することなくデータベースサーバを追加し、処理能力向上が可能なデータベースアクセス技術を提供することにある。
【課題を解決するための手段】
【００１５】
上記目的を達成するために、本発明では、アクセス対象とするデータベースサーバを隠蔽し、データベースへのアクセスを複数のサーバに振り分け、複数のデータベースサーバ上に同一内容のデータベースを維持することにより達成される。
【００１６】
以下、本発明の代表的な構成例について述べる。
【００１７】
（１）ネットワークで接続された、別の計算機上にあるデータベースをアクセスするデータベースアクセス方法において、上位のプログラムに、アクセス先のデータベースを隠蔽し、アクセス先のデータベースを複数設定するステップと、前記複数のデータベース間で、データを同一にするステップと、前記複数のデータベースにアクセスを分散するステップとを有することを特徴とする。
【００１８】
（２）前記構成のデータベースアクセス方法において、前記別の計算機上のデータベースを新たに追加するステップと、前記新たなデータベースと既存のデータベースとの間で、データを同一にしたのち、前記新たなデータベースと既存のデータベースとの間にアクセスを分散させるステップとを含み、既存のシステムを停止することなく、新たなデータベースを追加するようにしたことを特徴とする。
【００１９】
（３）業務システムとネットワークで接続された、別の計算機上にあるデータベースサーバへアクセスするデータベースアクセス方法において、新規データベースサーバをネットワーク上に追加するステップと、追加された前記新規データベースサーバに対してレプリケーションを実施するステップと、前記レプリケーションによるデータベースのコピーが終了し、前記レプリケーションが有効になった後に、前記新規データベースサーバの定義のエントリを、前記業務システム内のデータベースサーバ定義に定義するステップとを有し、前記業務システムを稼動したままで、前記新規データベースサーバを追加するようにしたことを特徴とする。
【発明の効果】
【００２０】
本発明によれば、業務システムの運用中に、業務システムを停止せずにデータベースサーバの追加によるデータベースアクセス性能の向上が可能となる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施例について、図面を参照して説明する。
【００２２】
図１に、本発明における業務システムの一構成例を示す。業務システム１は、画面入出力手段３、業務ロジック処理手段４、画面表示と業務ロジック間の連携制御手段５、データベースアクセス手段６、通信手段７から構成されている。データベースサーバ８とデータベース９は、業務システムの処理に必要なデータを格納している。業務システム１とデータベースサーバ８は、別の計算機上にあり、ネットワーク１０で接続されている。画面入出力手段３は、コンピュータディスプレイ等の入出力装置２と接続され、業務ロジック処理手段４からの情報と、画面表示と業務ロジック間の連携制御手段５からの情報に基づき、システムの使用者に対する入出力画面を生成する。業務ロジック処理手段４は、業務遂行に必要な処理を行う。画面表示と業務ロジック間の連携制御手段５は、画面入出力手段３、業務ロジック処理手段４を連携させ、適切なタイミングで業務処理ロジック４と画面との入出力処理３を実行させる。データベースサーバ定義１１は、テキストファイル等に格納され、データベースアクセス手段がアクセスするデータベースサーバの情報を保持する。データベースアクセス手段６は、業務ロジック処理手段４からの要求に基づき、通信手段８を使用して、データベースサーバ８中のデータベース９上のデータをアクセスする。
【００２３】
次に、本発明によるデータベースサーバの追加について説明する。図２は、データベースサーバ定義１１のエントリの一構成例を示す。
【００２４】
データベースアクセス手段６は、データベースサーバ定義１１を参照して、データベース上のデータをアクセスする。データベースサーバ定義は、データベースサーバ名、データベース名、ユーザＩＤ、パスワードの組であり、この一組の情報を一つのエントリとして、アクセス先の一つのデータベースサーバを指定する。例えば、データベースサーバ定義１１が、図２の（ａ）に示す状態の場合、データベースサーバ名「８ａ」中でデータベース名が「９ａ」のデータベースを、ユーザＩＤ「abcd」パスワード「qwerty」でアクセスする。
【００２５】
データベースサーバ定義１１に複数のエントリが追加されて、記載されている場合、データベースアクセス手段６は、データベースへのアクセスを、エントリが示す複数のデータベースに分散させる。例えば、データベースサーバ定義１１が、図２の（ｂ）に示す状態の場合、データベースへのアクセスは、データベースサーバ名「８ａ」中のデータベース名が「９ａ」のデータベースと、データベースサーバ名「８ｂ」中のデータベース名が「９ｂ」のデータベースに分散させる。
【００２６】
分散の方式は、ラウンドロビンやデータベースサーバの負荷を均等にする方式等、各種の方式が適用可能であるが、ここではラウンドロビン方式を採用した実施例を示す。すなわち、業務ロジック処理手段４からデータベースアクセス手段６に要求が到着した順番で、データベース９ａとデータベース９ｂにアクセスが割り振られる。エントリ数の制限はなく、書いた数、すなわちデータベースサーバの数に応じて、アクセスが分散される。
【００２７】
ところで、大部分のデータベースシステムには、レプリケーションと呼ばれる機能が装備されている。レプリケーションとは、複数のデータベースサーバ上に同一内容のデータベースを維持する機能である。例えば、ＳＱＬ  Ｓｅｒｖｅｒのレプリケーション機能については、「翔泳社、ＳＱＬ  Ｓｅｒｖｅｒ７．０徹底入門、１９９９／０５出版、第６章」に示されている。レプリケーションを使用すると、一つのデータベースサーバ上のデータが更新されると、他のデータベースサーバ上のデータも同一内容になるように、データベースシステムが自動的に更新する。
【００２８】
このレプリケーション機能と、前記データベースアクセス手段６によるデータベースアクセスの分散機能を用いることにより、データベースサーバの増設（追加）による、性能向上を実現する。すなわち、新規に追加したデータベースサーバに対しレプリケーションを実施しデータの同一性を担保すると共に、新規追加のデータベースサーバを示すエントリを、データベースサーバ定義１１に定義する。これにより、自動的にデータベースアクセスが分散され、全体としてデータベースアクセス性能が向上する。
【００２９】
本方式によるデータベースアクセス性能の向上は、業務システムを稼働したままでも可能である。この手続きを、図３のフローチャートを使用して説明する。
【００３０】
まず、新規データベースサーバをネットワーク上に追加する（ステップ２００）。続いて、新規データベースサーバに対してレプリケーションを開始する（ステップ２０１）。レプリケーションは一番最初の実行では、データベースのコピーを行うため時間がかかる。データベースのコピーが終了し、レプリケーションが有効になった後（ステップ２０２）に、新規追加のデータベースサーバの定義のエントリを、データベースサーバ定義１１に定義する（ステップ２０３）。
【００３１】
以上の手続きにより、業務システムを稼働したままでも、データベースサーバの追加によるデータベースアクセス性能の向上が実現できる。
【００３２】
本発明の適用例として医療の分野がある。医療の分野では、将来の患者の増加や検査装置の追加の予想が難しい。このため、患者の増加や検査装置の追加導入等による業務量の増加に伴い、業務システムすなわち病院のシステムの中で、データベースアクセス性能がボトルネックとなり、病院のシステム全体の性能が制限される場合が多い。
【００３３】
従来このようなケースでは、業務システムの停止すなわち病院業務の停止を行い、より高性能なデータベースサーバへの更新を行うしか方策はない。しかし、業務システムの停止は、患者情報の参照ができなくなる事を意味し、重症の入院患者等、いついかなる時でも情報の参照が必要な患者がいる病院では、このような業務システムの停止は受け入れがたい要求である。
【００３４】
本発明によれば、データベースアクセス性能が、業務システム全体の性能のボトルネックとなっているケースに対し、業務システムを停止することなくデータベースサーバを追加し、データベースアクセス性能の向上、そして業務システム全体の処理能力を向上させることができ、上記の問題の解決が可能となる。
【図面の簡単な説明】
【００３５】
【図１】本発明における業務システムの一構成例を説明する図。
【図２】図1におけるデータベースサーバ定義のエントリの一構成例を説明する図。
【図３】本発明による、業務システムを稼働したままデータベースサーバを追加する処理例を説明するフローチャート図。
【符号の説明】
【００３６】
１…業務システム、２…入出力装置、３…画面入出力手段、４…業務ロジック処理手段、５…画面表示と業務ロジック間の連携制御手段、６…データベースアクセス手段、７…通信手段、８ａ、８ｂ…データベースサーバ、９ａ、９ｂ…データベース、１０…ネットワーク、１１…データベースサーバ定義。
【図１】
2006178587.tif 000003
【図２】
2006178587.tif 000004
【図３】
2006178587.tif 000005