JP2016099709A - アクセス制御プログラム、アクセス制御方法、及び、アクセス制御装置 - Google Patents

アクセス制御プログラム、アクセス制御方法、及び、アクセス制御装置 Download PDF

Info

Publication number
JP2016099709A
JP2016099709A JP2014234493A JP2014234493A JP2016099709A JP 2016099709 A JP2016099709 A JP 2016099709A JP 2014234493 A JP2014234493 A JP 2014234493A JP 2014234493 A JP2014234493 A JP 2014234493A JP 2016099709 A JP2016099709 A JP 2016099709A
Authority
JP
Japan
Prior art keywords
database
access
data
program
version
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.)
Withdrawn
Application number
JP2014234493A
Other languages
English (en)
Inventor
励 河合
Tsutomu Kawai
励 河合
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2014234493A priority Critical patent/JP2016099709A/ja
Priority to US14/942,548 priority patent/US9600271B2/en
Publication of JP2016099709A publication Critical patent/JP2016099709A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/656Updates while running
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】ソフトウェアによるサービスを停止することなく、データベースの構成の変更を伴うソフトウェアの更新を行うアクセス制御プログラム、アクセス制御方法、及び、アクセス制御装置を提供する。【解決手段】第1データベースおよび第2データベースに接続された複数の情報処理装置上で動作可能なプログラムであって、前記複数の情報処理装置上で動作する第1ソフトウェアの更新に伴って実行される前記第1データベースから前記第2データベースへのデータの移行処理中に前記第1ソフトウェアからデータベースへのアクセス要求を受け付け、前記アクセス要求に含まれる前記第1ソフトウェアのバージョンに関する情報と前記第1データベースから前記第2データベースへのデータ移行状況に関する情報に基づき、前記アクセス要求を送信するデータベースを前記第1データベースまたは前記第2データベースに決定する、処理をコンピュータに実行させる。【選択図】図8

Description

本発明は、アクセス制御プログラム、アクセス制御方法、及び、アクセス制御装置に関する。
クラウドサービスでは、アプリケーションプログラム(以下、ソフトウェアとも言う)によるサービスをユーザに提供する際に、同一のアプリケーションプログラムの実行環境を複数用意することがある。複数のアプリケーションプログラムにしたがって処理を分散することにより、処理の負荷が軽減する。
また、複数のアプリケーションプログラムにパッチ(修正プログラム)を適用する場合、ローリングアップデート等の手法が用いられる。ローリングアップデートの手法を用いることにより、アプリケーションを停止することなく、パッチの適用が可能となる。
また、アプリケーションプログラムは、使用するデータをデータベース(DataBase:DB)に格納する。DBが有するデータの構成には、変更が生じる場合がある。DBのデータの構成の変更については、例えば、特許文献1〜3に記載される。
特許第2503297号公報 特開2005-266973号公報 国際公開2005/086003号公報
アプリケーションプログラムのパッチは、アプリケーションプログラムがアクセスするDBのデータの構成の変更を伴う場合がある。この場合、DBの不整合を回避するために、複数のアプリケーションプログラムを停止し、DBが有するデータのデータ構成を変更する。
ただし、アプリケーションプログラムによるサービスを停止するためには、サービスを利用する顧客に事前に通知し、顧客の承諾を得る必要がある。このため、アプリケーションプログラムによるサービスを停止するためには、多くの手間がかかる。したがって、アプリケーションプログラムによるサービスを停止することなく、アプリケーションプログラムにデータベースの構成の変更を伴うパッチを適用することが求められる。
1つの側面は、本発明は、ソフトウェアによるサービスを停止することなく、データベースの構成の変更を伴うソフトウェアの更新を行うアクセス制御プログラム、アクセス制御方法、及び、アクセス制御装置を提供することを目的とする。
第1の側面は、第1データベースおよび第2データベースに接続された複数の情報処理装置上で動作可能なプログラムであって、前記複数の情報処理装置上で動作する第1ソフトウェアの更新に伴って実行される前記第1データベースから前記第2データベースへのデータの移行処理中に前記第1ソフトウェアからデータベースへのアクセス要求を受け付け、前記アクセス要求に含まれる前記第1ソフトウェアのバージョンに関する情報と前記第1データベースから前記第2データベースへのデータ移行状況に関する情報に基づき、前記アクセス要求を送信するデータベースを前記第1データベースまたは前記第2データベースに決定する、処理をコンピュータに実行させる。
第1の側面によれば、ソフトウェアによるサービスを停止することなく、データベースの構成の変更を伴うソフトウェアの更新を行う。
本実施の形態例におけるサービス提供システムの構成の一例を示す図である。 サービスの機能拡張に伴う、データベース(図1)のデータ構成の変更例である。 図1に示した、APサーバのハードウェア構成を説明する図である。 図3に示した、DBアクセスプログラムを説明する図である。 図3に示したAPサーバのソフトウェアブロック図である。 本実施の形態例における、2つのアプリケーションプログラムへのパッチの適用処理の概要を説明する図である。 本実施の形態例における、2つのアプリケーションプログラムへのパッチの適用処理の流れを説明するフローチャート図である。 図7で説明した処理の流れを、より具体的に説明する図である。 図6〜図8に示したパッチの適用処理で使用する第1の管理情報を説明する図である。 図6〜図8に示したパッチの適用処理で使用する第2の管理情報を説明する図である。 図5に示すDBアクセスプログラムの1つであって、データ更新を示すアクセス要求に対応する移行中用のDBアクセスプログラムを示す図である。 図11に示した移行中用のDBアクセスプログラムの処理を説明するフローチャート図である。 図5に示すDBアクセスプログラムの1つであって、データ新規追加を示すアクセス要求に対応する移行中用のDBアクセスプログラムを示す図である。 図13に示した移行中用のDBアクセスプログラムの処理を説明するフローチャート図である。 図5に示すDBアクセスプログラムの1つであって、データ検索を示すアクセス要求に対応する移行中用のDBアクセスプログラムを示す図である。 図15に示した移行中用のDBアクセスプログラムの処理を説明するフローチャート図である。 図5に示すDBアクセスプログラムの1つであって、データの条件検索(1件)を示すアクセス要求に対応する移行中用のDBアクセスプログラムを示す図である。 図17に示した移行中用のDBアクセスプログラムの処理を説明するフローチャート図である。 図5に示すDBアクセスプログラムの1つであって、データの条件検索(全件)を示すアクセス要求に対応する移行中用のDBアクセスプログラムを示す図である。 図19に示した移行中用のDBアクセスプログラムの処理を説明するフローチャート図である。 図5に示すDBアクセスプログラムの1つであって、データ削除を示すアクセス要求に対応する移行中用のDBアクセスプログラムを示す図である。 図21に示した移行中用のDBアクセスプログラムの処理を説明するフローチャート図である。 図5に示す、移行中用のDBアクセスプログラムの他の処理を記述するDBアクセスプログラムの一例を示す図である。 図5に示したDB裏更新プログラムの一例を示す図である。 図24に示したDB裏更新プログラムの処理を説明するフローチャート図である。
以下、図面にしたがって本発明の実施の形態について説明する。ただし、本発明の技術的範囲はこれらの実施の形態に限定されず、特許請求の範囲に記載された事項とその均等物まで及ぶものである。
[サービス提供システム]
図1は、本実施の形態例におけるサービス提供システムの構成の一例を示す図である。図1に示すサービス提供システムは、クラウドサービスを提供するシステムである。
図1のサービス提供システムは、複数のクライアント装置50a〜50c、WEBサーバ40、SLB(Server Load Balancing:SLB)サーバ30、複数のアプリケーションサーバ20a、20b、DB(DataBase:DB)サーバ10を有する。図1に示す、各サーバは、例えば、物理サーバである。クライアント装置50a〜50cは、例えば、パーソナルコンピュータや携帯端末等である。以下、アプリケーションサーバ20a、20bを、APサーバ20a、20b(APサーバ20ともいう)と称する。
クライアント装置50a〜50cのそれぞれは、インターネット等のネットワーク60を介して、WEBサーバ40と接続する。図1の例では、WEBサーバ40が、3つのクライアント装置50a〜50cと接続する場合を例示しているが、この例に限定されるものではない。
また、WEBサーバ40は、SLBサーバ30を介して、複数のAPサーバ20a、20bと接続する。複数のAPサーバ20a、20bのぞれぞれは、DBサーバ10と接続する。DBサーバ10は、データベース(DataBase:DB)を記憶するストレージ装置(以下、DBと称する)80にアクセスする。
複数のAPサーバ20a、20bは、同一のアプリケーションプログラム(ソフトウェア、図示せず)を実行する。SLBサーバ30は、APサーバ20a、20bの負荷状態に応じて、WEBサーバ40からのリクエストを割り当てるAPサーバ20a、20bを選択する。多数のユーザにサービスを提供する大規模なサービス提供システムでは、負荷分散のために、図1に示すように、複数のAPサーバ20a、20bを備える。
また、図1の例では、SLBサーバ30は、例えば、管理サーバである。管理サーバは、例えば、サービス提供システムを管理する運用担当者のクライアント装置(図示せず)と接続する。運用担当者は、クライアント装置から、管理サーバを介して、各サーバの制御、及び、管理を行う。
図1のサービス提供システムが提供するサービスは、例えば、IaaS(Infrastructure as a Service :IaaS)である。IaaSは、サービス事業者がデータセンタに設置した物理サーバ(図示せず)をユーザ(以下、テナントと称する)に貸し出すサービスである。テナントは、要望に応じて貸与した物理サーバに所望のシステムを構築し、所定のサービスをテナントのユーザに提供する。
本実施の形態例において、アプリケーションプログラムは、サービス事業者が、テナントにIaaSを提供するためのプログラムである。アプリケーションプログラムは、例えば、テナントによるポータルサイト上の操作にしたがって、物理サーバの構築機能や、物理サーバの監視機能等を提供する。したがって、本実施の形態例において、データベース80は、テナントに貸与する物理サーバの設定情報のデータを有するテーブルや、監視のための設定情報のデータを有するテーブル等を有する。
具体的に、図1のサービス提供システムにおいて、クライアント装置50a〜50cは、操作の入力に応答して、サービスを要求するためのHTTP(HyperText Transfer Protocol:HTTP)のリクエストメッセージを、WEBサーバ40に送信する。WEBサーバ40は、クライアント装置50a〜50cからのリクエストメッセージに応答して、APサーバ20a、20bへのリクエストを生成し、SLBサーバ30に送信する。
SLBサーバ30は、複数のAPサーバ20a、20bの負荷情報に基づいて選択した、APサーバ20a、20bにリクエストを送信する。APサーバ20a、20bがリクエストを受信すると、APサーバ20a、20bで動作するアプリケーションプログラムは、リクエストに応じた処理を行う。例えば、アプリケーションプログラムは、データベース80へのアクセスを指示するアクセス要求をDBサーバ10に出力する。DBサーバ10は、アクセス要求に応じて、データベース80への書き込みまたは読み出しを行い、アクセス結果をAPサーバ20a、20bに出力する。
APサーバ20a、20bは、DBサーバ10のアクセス結果に基づいて、WEBサーバ40へのレスポンスの送信や、別の処理等を行う。WEBサーバ40は、SLBサーバ30を介して受信した、APサーバ20a、20bからのレスポンスを、リクエスト送信元のクライアント装置50a〜50cに送信する。クライアント装置50a〜50cは、レスポンスを受信すると、レスポンスの内容に応じて情報をブラウザに表示する。
[ソフトウェアの更新]
図1に示すサービス提供システムでは、他社競争力の維持や顧客要望の実現等のために、機能拡張を行う場合がある。または、セキュリティホール等の検出により、プログラムを修正する場合がある。図1に示すAPサーバ20a、20bで動作するアプリケーションプログラムの機能拡張や修正を行う場合、運用担当者は、アプリケーションプログラムにパッチを適用する(ソフトウェアを更新する)。
パッチは、プログラムの一部分を更新して障害の修正や機能変更を行うためのデータである。本実施の形態例において、アプリケーションプログラムのパッチは、例えば、IaaSの機能拡張や機能修正にかかる、一部のプログラムの追加、または変更を示す。アプリケーションプログラムのパッチは、停止状態のアプリケーションプログラムに対して適用される。運用担当者は、アプリケーションプログラムを停止し、コマンドやプログラムの実行により、停止したアプリケーションプログラムにパッチを適用する。
アプリケーションプログラムを停止することにより、テナントは、一時的に、IaaSの機能を使用できなくなる。つまり、テナントは、一時的に、物理サーバの監視処理等を行えないことになる。これにより、テナントが、テナントのユーザに提供するサービスに支障が生じることがある。
また、運用担当者は、サービスを一時的に停止する場合、事前に、停止日程の承諾をテナントから受ける。ただし、図1に示すサービス提供システムを複数のテナントに提供している場合、すべてのテナントが承諾する停止日程を調整することは容易ではない。なお、テナントにとって、たとえ、事前にアプリケーションプログラムを一時停止する旨の通達があったとしても、一時的にサービスの提供を受けることができないことは不便である。
また、提供するサービスにアプリケーションプログラムの停止に伴うサービスの機能制限を行って、アプリケーションプログラムのパッチを適用すると、テナントは、一時的な機能制限の制約を受ける。このため、利便性が十分ではなかった。
したがって、サービスを停止することなくアプリケーションプログラムにパッチを適用する要望がある。サービスを停止することなくアプリケーションプログラムにパッチを適用する手法として、ローリングアップデート等の手法がある。ローリングアップデートでは、複数のAPサーバ20a、20bのうち少なくとも1つのAPサーバのアプリケーションプログラムを実行状態にし、停止状態のアプリケーションプログラムに順次、パッチを適用する。ローリングアップデートによると、複数のAPサーバ20a、20bのうち、1つのAPサーバ20a、20bが、アプリケーションプログラムを実行状態になる。したがって、サービスを停止することなく、パッチの適用を行うことが可能になる。
ただし、パッチの内容によっては、ローリングアップデートの手法を適用できない場合がある。データベース80のデータ構成の変更を伴うパッチ(サービスの機能拡張等)の場合、ローリングアップデートの手法を適用することが困難である。データ構成とは、データベース80が有するテーブルの項目の数や、サイズ、値の型等のデータ定義である。
例えば、図1の例によると、サービスの機能拡張は、テナントに提供するIaaSの機能拡張である。IaaSの機能拡張は、例えば、貸与対象の物理サーバの設定に、GPU(Graphics Processing Unit:GPU)を搭載の有無を指定可能にする機能拡張である。前述したとおり、データベース80は、貸与対象の物理サーバの設定情報のテーブル等を有する。したがって、データベース80のテーブルは、パッチの適用により、既存の項目に加えて新たに、GPUの搭載の有無を指定する項目を有する。
なお、データベース80のデータ構成の変更を伴わないパッチ(セキュリティホールに対するパッチや機能修正用のパッチ等)は、ローリングアップデートの手法を適用可能である。
[データベースの変更]
図2は、サービスの機能拡張に伴う、データベース80(図1)のデータ構成の変更例である。図2では、機能拡張前のデータベース80が有するテーブルのうち一部のテーブル81と、機能拡張後のデータベース80が有する同一のテーブル82とを示す。
機能拡張前のデータベース80のテーブル81は、例えば、項目「ID(IDentification:ID)」、項目「CPU(Central Processing Unit:CPU)コアの数」、項目「メモリサイズ」を有する。また、テーブル81は、例えば、さらに、項目「IP(Internet Protocol:IP)アドレス」、項目「OS(Operation System:OS)」等を有する。
項目「ID」は、物理サーバを識別する情報である。項目「CPUコアの数」は、物理サーバに搭載するCPUコアの数を示し、項目「メモリサイズ」は、物理サーバに搭載するメモリのサイズを示す。また、項目「IPアドレス」は、物理サーバに設定するIPアドレスを示し、項目「OS」は、物理サーバで動作させるOSの種別を示す。
図2の機能拡張前のデータベース80のテーブル81の例によると、「ID:M10」の物理サーバの設定は、「CPUコアの数:4個」、「メモリサイズ:4GB(GigaByte:GB)」「IPアドレス:xxx.xxx.x.x」、「OS:OS1」である。他の物理サーバも同様にして、各項目の情報を有する。
一方、機能拡張後のデータベース80のテーブル82の例は、機能拡張前のデータベース80のテーブル81の各項目に加え、項目「GPUの有無」を有する。このように、テーブル81と、テーブル82のデータ構成は異なる。図2の機能拡張後のデータベース80のテーブル82の例によると、「ID:M10」の物理サーバの項目「GPUの有無」の設定は、「GPUの有無:無」である。
アプリケーションプログラムは、それぞれのテーブル81、82のデータ定義にしたがって、データベース80のデータにアクセスする。即ち、パッチ未適用のアプリケーションプログラムはテーブル81のデータ構成に、パッチ適用済みのアプリケーションプログラムはテーブル82のデータ構成にしたがって、データにアクセスする。したがって、パッチ未適用のアプリケーションプログラムと、パッチ適用済みのアプリケーションプログラムが共通のデータを更新する場合、適切にデータを更新できない。即ち、データの不整合が生じる。
図1で説明したとおり、ローリングアップデートでは、複数のアプリケーションプログラムに順次、パッチを適用する。したがって、パッチの適用処理が完了するまでの間、共通のデータベース80に対して、パッチ未適用のアプリケーションプログラムと、パッチ適用済みのアプリケーションプログラムからのアクセスが混在して発生する。このため、データベース80の不整合が生じ得る。データベース80の不整合が生じた場合、アプリケーションプログラムは、適切な処理を行うことができない。
なお、複数のアプリケーションプログラムのパッチ適用時に、一時的にサービスを停止し、データベース80が有するテーブル81のデータを、テーブル82のデータ構成に変換する移行処理を行うことが考えられる。ただし、データベース80は、システムの規模に応じて多量のデータを有する。したがって、データベース80の移行処理は、データの量に応じて多大な工数を要する。データベース80の移行処理が多大な工数を要することにより、移行処理にかかる長い期間、サービスを停止することになってしまう。
したがって、パッチがデータベース80のデータ構成の変更を伴う場合、アプリケーションプログラムによるサービスを停止することなく、アプリケーションプログラムにパッチを適用することは容易ではなかった。
次に、本実施の形態例におけるAPサーバ20a、20bのハードウェア構成、及び、ソフトウェアブロック図を説明する。
[APサーバの構成]
図3は、図1に示した、APサーバ20a、20bのハードウェア構成を説明する図である。図3は、1つのAPサーバ20aのハードウェア構成を示すが、図1に示す別のAPサーバ20bも同様のハードウェア構成を有する。
図3に示すAPサーバ20aは、例えば、CPU(Central Processing Unit:CPU)101、RAM(Random Access Memory:RAM)201や不揮発性メモリ202等を備えるメモリ102、通信インタフェース部103を有する。各部は、バス104を介して相互に接続する。
CPU101は、バス104を介してメモリ102等と接続すると共に、APサーバ20a全体の制御を行う。通信インタフェース部103は、イントラネットを介して、図1に示した、SLBサーバ30やDBサーバ10等の通信機器との間でデータの送受信を制御する。メモリ102のRAM201は、CPU101が処理を行うデータ等を記憶する。
メモリ102の不揮発性メモリ202は、CPU101が実行するOSのプログラムを格納する領域(図示せず)や、OS上で動作するアプリケーションプログラムを格納する格納領域210を備える。また、不揮発性メモリ202は、DBアクセスプログラムを格納する格納領域211、DB裏更新プログラムを格納する格納領域212を備える。不揮発性メモリ202は、HDD(Hard disk drive:HDD)、不揮発性半導体メモリ等で構成される。
アプリケーションプログラム格納領域210のアプリケーションプログラム(以下、アプリケーションプログラム210と称する)は、CPU101の実行によって、図1で説明した示したIaaSを提供する処理を実現する。アプリケーションプログラム210は、本実施の形態例において、パッチを適用する対象のプログラムである。また、DB裏更新プログラム格納領域212のDB裏更新プログラム(以下、DB裏更新プログラム212と称する)は、CPU101の実行によって、バックグランドによる、データベース80の移行処理を実現する。DB裏更新プログラム212の詳細は、図5で後述する。
また、DBアクセスプログラム格納領域211のDBアクセスプログラム(以下、DBアクセスプログラム211と称する)は、CPU101の実行によって、アプリケーションプログラム210によるデータベース80へのアクセス要求の制御処理を実現する。アクセスの制御処理は、アプリケーションプログラム210が発行するアクセス要求の内容に応じて、DBサーバ10へのアクセスを制御する処理である。アクセス要求は、例えば、データベース80へのデータの新規追加処理、データベース80が記憶するデータの更新処理、検索処理、及び、削除処理などである。
DBアクセスプログラム211は、アクセス要求に基づいて、DBサーバ10(図1)で動作するDBソフトウェア(図示せず)のAPI(Application Programming Interface:API)を呼び出す。また、DBアクセスプログラム211は、APIの実行結果を、アクセス要求の結果として、アプリケーションプログラム210に出力する。
図4は、図3に示した、DBアクセスプログラム211を説明する図である。図4において、図3で示したものと同一のものは、同一の記号で示す。
図4は、アプリケーションプログラム210と、DBアクセスプログラム211との対応関係を示す。本実施の形態例では、アプリケーションプログラム210のパッチは、DBアクセスプログラム211を、さらに有する。即ち、DBアクセスプログラム211は、アプリケーションプログラム210のパッチとセットである。
DBアクセスプログラム211は、アプリケーションプログラム210のDBアクセスモジュール211を切り出したプログラムである。即ち、DBアクセスモジュール211は、アクセス要求に基づいて、DBサーバ10で動作するDBソフトウェア(図示せず)のAPIを呼び出し、APIの実行結果を出力するモジュールである。
DBアクセスプログラム211は、アプリケーションプログラム210のパッチの適用状態に応じて、アクセス要求の制御処理を行う。DBアクセスプログラム211の詳細は、図5で後述する。
図5は、図3に示したAPサーバ20aのソフトウェアブロック図である。図5において、図1、図3で示したものと同一のものは、同一の記号で示す。図5は、1つのAPサーバ20aのソフトウェアブロックを示すが、図1に示す別のAPサーバ20bも同様のソフトウェアブロックを有する。
図5では、APサーバ20a(図3)のソフトウェアブロック図と、DBサーバ(図1)10のソフトウェアブロック図とを示す。図5に示すように、APサーバ20aは、アプリケーションプログラム210、移行中用のDBアクセスプログラム211−1、移行完了後用のDBアクセスプログラム211−2、及び、DB裏更新プログラム212を有する。即ち、図3、図4に示したDBアクセスプログラム211は、移行中用のDBアクセスプログラム211−1と、移行完了後用のDBアクセスプログラム211−2とを有する。
図5に示すアプリケーションプログラム210は、パッチの適用前(未適用)のアプリケーションプログラム210と、パッチを適用後(適用済み)のアプリケーションプログラム210のいずれかを示す。本実施の形態例では、パッチ未適用のアプリケーションプログラム210を、旧バージョンのアプリケーションプログラム210と称する。また、パッチの適用後のアプリケーションプログラム210を、新バージョンのアプリケーションプログラム210と称する。
また、APサーバ20aは、アプリケーションプログラム210のパッチの適用状況に応じて、移行中用、移行完了後用のDBアクセスプログラム211−1、211−2、DB裏更新プログラム212のうち一部または全部のプログラムを有する。運用担当者は、例えば、アプリケーションプログラム210のパッチの適用状況に応じて、移行中用、移行完了後用のDBアクセスプログラム211−1、211−2、及び、DB裏更新プログラム212を、不揮発性メモリ202(図3)に記憶する。
また、図5に示すDBサーバ10は、データベース80へのアクセスを管理するDBソフトウェア110と、データベース80を有する。DBソフトウェア110は、APIに応じた、データベース80に対するアクセス処理を行うソフトウェアである。
また、本実施の形態例において、データベース80は、アプリケーションプログラム210のパッチの適用状況に応じて、旧データベース80−1と新データベース80−2とを有する。旧データベース80−1は、パッチ未適用のアプリケーションプログラム210に対応するデータベースである。また、新データベース80−2は、パッチ適用後のアプリケーションプログラム210に対応するデータベースである。つまり、例えば、旧データベース80−1は、図2で説明したテーブル81を有し、新データベース80−2はテーブル82を有する。
移行中用のDBアクセスプログラム211−1は、旧データベース80−1から新データベース80−2への移行処理が完了するまでの間の、アクセス制御処理を行うプログラムである。移行処理が完了するまでの間は、旧バージョン、新バージョンのアプリケーションプログラム210によるアクセス要求が混在するとともに、アクセス対象のデータが旧データベース80−1と新データベース80−2に混在する。移行中用のDBアクセスプログラム211−1は、アクセス要求に応答して、アクセス要求を送信するデータベース80−1、80−2を決定(選択)し、決定したデータベース80−1、80−2を対象とするDBソフトウェア110のAPIを呼び出す。移行中用のDBアクセスプログラム211−1の処理の詳細は、図6、図11〜図23にしたがって後述する。
移行完了後用のDBアクセスプログラム211−2は、旧データベース80−1から新データベース80−2への移行処理が完了した後の、アクセス制御処理を行うプログラムである。移行完了後は、新バージョンのアプリケーションプログラム210のみによるアクセス要求が発生する。即ち、移行完了後用のDBアクセスプログラム211−2は、新バージョンのアプリケーションプログラム210によるアクセス要求に応答して、新データベース80−2へのアクセス要求を行う。
DB裏更新プログラム212は、旧データベース80−1から新データベース80−2へ各データの移行処理(以下、移行処理と称する)を、バックグラウンドで行うプログラムである。DB裏更新プログラム212は、旧データベース80−1が有し、新データベース80−2が有していないデータを、新データベース80−2のデータ構成に基づいて変換して、新データベース80−2に順次追加する。DB裏更新プログラム212の処理の詳細は、図24、図25にしたがって後述する。
次に、図6〜図8にしたがって、本実施の形態例における、2つのアプリケーションプログラム210へのパッチの適用処理の流れを説明する。
[パッチの適用処理の流れ]
図6は、本実施の形態例における、2つのアプリケーションプログラム210へのパッチの適用処理の概要を説明する図である。図6において、図1、図5で示したものと同一のものは、同一の記号で示す。2つのアプリケーションプログラム210は、図1に示したAPサーバ20a、20bで動作するアプリケーションプログラムである。また、図1で説明したとおり、APサーバ20a、20bは、SLBサーバ30と接続し、DBサーバ10を介して共通のデータベース80にアクセスする。
本実施の形態例におけるパッチの適用処理では、図1で説明したローリングアップデートと同様にして、図6に示す2つのアプリケーションプログラム210に順次、パッチを適用する。即ち、パッチの適用処理の過程において、運用担当者は、一方のAPサーバ20aを稼働させ、他方のAPサーバ20bを停止させる。そして、運用担当者は、停止側のAPサーバ20bのアプリケーションプログラム210にパッチを適用する。
したがって、パッチの適用処理の過程において、図6に示すように、一方のAPサーバ20aは稼働側のAPサーバ20a、他方のAPサーバ20bは停止側のAPサーバとなる。この場合、SLBサーバ30は、稼働側のAPサーバ20aにリクエストを送信する(図6の実線の矢印)。即ち、SLBサーバ30は、停止側のAPサーバ20bにリクエストを送信しない(図6の点線の矢印)。また、図5で説明したように、各APサーバ20a、20bは、パッチの適用状況に応じて、移行中用、移行完了後用のDBアクセスプログラム211−1、211−2、及び、DB裏更新プログラム212を有する。
また、図6に示す、アプリケーションプログラム210は、パッチの適用状況に応じて、パッチ未適用のアプリケーションプログラム210、または、パッチ適用済のアプリケーションプログラム210(図6ではパッチと示す)を示す。したがって、パッチの適用処理において、旧バージョンのアプリケーションプログラム210によるアクセス要求と、新バージョンのアプリケーションプログラム210によるアクセス要求とが混在して生じる。
また、図6に図示していないが、本実施の形態例におけるパッチの適用処理では、DB裏更新プログラム212が、バックグラウンドで順次、移行処理を行う。したがって、パッチの適用処理において、アクセス要求が対象とするデータが、旧、新データベース80−1、80−2に混在する。
したがって、本実施の形態例におけるパッチの適用処理では、移行処理中に、図5に示した移行中用のDBアクセスプログラム211−1を、APサーバ20a、20bで動作させる。移行中用のDBアクセスプログラム211−1は、アクセス要求に含まれるアプリケーションプログラム210のバージョンに関する情報と、データ移行状況に関する情報とに基づいて、アクセス要求を送信するデータベースをデータベース80−1、80−2から決定する。そして、移行中用のDBアクセスプログラム211−1は、決定したデータベース80−1、80−2を対象とするDBソフトウェア110のAPIを呼び出す。
アプリケーションプログラム210のバージョンに関する情報は、アプリケーションプログラム210が更新済みか否か、即ち、パッチ適用済みか否かを示す情報である。また、データ移行状況に関する情報は、旧データベース80−1から新データベース80−2への移行状態を示し、対象データが新データベース80−2に追加済みであるか否かを示す情報である。
これにより、移行中用のDBアクセスプログラム211−1は、適切なデータベース80−1、80−2にアクセス要求を送信することができる。即ち、移行中用のDBアクセスプログラム211−1は、複数のバージョンのアプリケーションプログラム210によるアクセス要求が混在し、アクセス要求の対象データが複数のデータベース80−1、80−2に混在する場合におけるアクセス要求の互換を実現する。
これにより、パッチの適用処理の経過中であっても、データベース80−1、80−2のデータの整合性を維持しながら、アクセス要求の実行が可能になる。したがって、パッチの適用処理の経過中であっても、アプリケーションプログラム210によるサービスの提供が可能になる。また、本実施の形態例では、DB裏更新プログラム212が、バックグラウンドで移行処理を行うことにより、アプリケーションプログラム210へのパッチの適用処理の経過中に、データベース80の移行処理をあわせて行うことが可能になる。
図7は、本実施の形態例における、2つのアプリケーションプログラム210へのパッチの適用処理の流れを説明するフローチャート図である。図7のフローチャート図において、構成AのAPサーバは、図1、図6に示したAPサーバ20aである。また、構成BのAPサーバは、図1、図6に示したAPサーバ20bである。
S1:本実施の形態例における初期状態では、構成AのAPサーバ20aのみが稼働中であるものとする。構成AのAPサーバ20aでは、旧バージョンのアプリケーションプログラム210が動作する。運用担当者は、パッチ適用後のアプリケーションプログラム210のデータ定義(データ構成)に基づいて、空の新データベース80−2を生成する。空のデータベースは、データを有しておらず、データ定義のみが適用されたデータベースである。なお、例えば、運用担当者が、移行用プログラムを用意し、移行用プログラムにしたがって空の新データベース80−2を生成してもよい。
S2:次に、運用担当者は、稼働側のAPサーバを、構成AのAPサーバ20aから、構成BのAPサーバ20bに切り替える。切り替え中は、一時的に、構成A、構成BのAPサーバ20a、20bがともに、実行状態になる。切り替え完了後、構成BのAPサーバ20bでは、旧バージョンのアプリケーションプログラム210と、移行中用のDBアクセスプログラム211−1が動作する。
また、運用担当者は、停止中の構成AのAPサーバ20aの旧バージョンのアプリケーションプログラム210にパッチを適用する。これにより、構成AのAPサーバ20aのアプリケーションプログラム210が、新バージョンに更新される。また、運用担当者は、構成AのAPサーバ20aに、移行中用のDBアクセスプログラム211−1、及び、DB裏更新プログラム212を導入する。
S3:次に、運用担当者は、稼働側のAPサーバを、構成BのAPサーバ20bから、構成AのAPサーバ20aに切り替える。切り替え中は、一時的に、構成A、構成BのAPサーバ20a、20bがともに、実行状態になる。切り替え完了後、構成AのAPサーバ20aでは、新バージョンのアプリケーションプログラム210、移行中用のDBアクセスプログラム211−1、及び、DB裏更新プログラム212が動作する。
また、運用担当者は、停止中の構成BのAPサーバ20bのアプリケーションプログラム210にパッチを適用する。これにより、構成BのAPサーバ20bのアプリケーションプログラム210は新バージョンに更新される。また、運用担当者は、構成BのAPサーバ20bの移行中用のDBアクセスプログラム211−1を、移行完了後用のDBアクセスプログラム211−2に更新する。
S4:DB裏更新プログラム212によるデータの移行処理が完了すると、運用担当者は、稼働側のAPサーバを、構成AのAPサーバ20aから、構成BのAPサーバ20bに切り替える。切り替え中は、一時的に、構成A、構成BのAPサーバ20a、20bがともに、実行状態になる。切り替え完了後、構成BのAPサーバ20bでは、新バージョンのアプリケーションプログラム210と、移行完了後用のDBアクセスプログラム211−2が動作する。また、運用担当者は、停止中の構成AのAPサーバ20aの移行中用のDBアクセスプログラム211−1を、移行完了後用のDBアクセスプログラム211−2に更新する。
これにより、構成A、構成BのAPサーバ20a、20bのアプリケーションプログラム210の新バージョンへの更新が完了するとともに、データの移行処理が完了する。また、構成A、構成BのAPサーバ20a、20bの移行中用のDBアクセスプログラム211−1が、移行完了後用のDBアクセスプログラム211−2に更新される。
次に、図8にしたがって、図7のフローチャート図で説明した処理をより具体的に説明する。
図8は、図7で説明した処理の流れを、より具体的に説明する図である。図8の工程S1〜S4は、図7のフローチャート図の工程S1〜S4に対応する。図8において、図5で示したものと同一のものは、同一の記号で示す。
S1:図7で説明したとおり、本実施の形態例におけるパッチの適用処理の初期状態では、構成AのAPサーバ20aが稼働中(図中の稼働、以下省略)であって、構成BのAPサーバ20bは停止中(図中の停止、以下省略)である。また、構成A、構成BのAPサーバ20a、20bのアプリケーションプログラム210は、旧バージョンのアプリケーションプログラム210(図中の旧)である。工程S1では、運用担当者は、管理情報にしたがって、構成BのAPサーバ20bに、移行中用のDBアクセスプログラム211−1を導入するとともに(図中のBパッチ)、空の新データベース80−2を生成する(図中の空)。管理情報については、図9、図10で後述する。
S2:工程S2では、構成BのAPサーバ20bが起動し、構成A、構成BのAPサーバ20a、20bはともに、稼働状態となる(図中のA→B)。即ち、構成A、構成BのAPサーバ20a、20bは、切り替え状態に遷移する(図中の切替、以下省略)。図7で前述したとおり、このとき、構成BのAPサーバ20bでは、旧バージョンのアプリケーションプログラム210に加えて、移行中用のDBアクセスプログラム211−1(図中の移行)が動作する。
また、工程S2において、切り替え状態を経て、運用担当者は、構成AのAPサーバ20aを停止する。そして、運用担当者は、管理情報にしたがって、構成AのAPサーバ20aのアプリケーションプログラム210にパッチを適用する(図中のAパッチ)。また、運用担当者は、構成AのAPサーバ20aに、移行中用のDBアクセスプログラム211−1、及び、DB裏更新プログラム212を導入する。
工程S2では、構成A、構成BのAPサーバ20a、20bでは、ともに、旧バージョンのアプリケーションプログラム210(図中の旧)が動作する。ただし、移行中用のDBアクセスプログラム211−1は、旧バージョンのアプリケーションプログラム210のアクセス要求に応答して、新データベース80−2にアクセス要求を送信する場合がある。例えば、データの新規追加を示すアクセス要求を受け付けた場合である。これにより、新データベース80−2に、新たにデータが追加される。このため、新データベース80−2は共存状態に遷移する(図中の共存)。データの新規追加を示すアクセス要求を受け付けた場合のDBアクセスプログラム211−1の詳細は、図13、図14に後述する。
S3:工程S3では、構成AのAPサーバ20aが起動し、構成A、構成BのAPサーバ20a、20bはともに、稼働状態となる(図中のB→A)。即ち、構成A、構成BのAPサーバ20a、20bは、切り替え状態に遷移する。
切り替え状態の間、構成AのAPサーバ20aでは、新バージョンのアプリケーションプログラム210(図中の新)に加えて、移行中用のDBアクセスプログラム211−1(図中の移行)、及び、DB裏更新プログラム212(図中の移行)が動作する。また、構成BのAPサーバ20bでは、工程S2と同様にして、旧バージョンのアプリケーションプログラム210と、移行中用のDBアクセスプログラム211−1とが動作する。
また、工程S3において、切り替え状態を経て、運用担当者は、構成BのAPサーバ20bを停止する。そして、運用担当者は、管理情報にしたがって、構成BのAPサーバ20bのアプリケーションプログラム210にパッチを適用する(図中のBパッチ)。また、運用担当者は、構成Bの移行中用のDBアクセスプログラム211−1を、移行完了後用のDBアクセスプログラム211−2に更新する。また、DB裏更新プログラム212は、バックグラウンドで、旧データベース80−1に存在するデータを、順次、新データベース80−2に追加する(図中のDB移行)。これにより、旧データベース80−1が共存状態に遷移する(図中の共存)。
工程S3のプロセスは、DB裏更新プログラム212による移行処理が完了するまで継続する。移行処理の完了時とは、旧データベース80−1に存在するが、新データベース80−2には存在しないデータの件数が0件になる状態を示す。運用担当者は、例えば、図10に後述する管理情報の進捗管理表にしたがって、移行処理の進捗度合いを判定する。大規模なサービス提供システムの場合、工程S3のプロセスは、月単位の期間を要することもある。DB裏更新プログラム212の処理の詳細については、図24、図25にしたがって後述する。
DBアクセスプログラム211−1は、アクセス要求によっては、アクセス対象のデータを、新データベース80−2に移行する場合がある。例えば、DBアクセスプログラム211−1は、新バージョンのアプリケーションプログラム210による、データ更新を示すアクセス要求に応答して、旧データベース80−1の更新対象のデータを、新データベース80−2に移行する。データの更新を示すアクセス要求を受け付けた場合のDBアクセスプログラム211−1の詳細は、図11、図12に後述する。
一方、更新対象となっていないデータは、新データベース80−2に移行されない。したがって、DB裏更新プログラム212が移行処理を行うことによって、旧データベース80−1が有するすべてのデータが順次、パッチの適用処理と並行して、新データベース80−2に移行可能になる。
構成AのAPサーバ20aにおいて、工程S1、S2では旧バージョンのアプリケーションプログラム210が動作するのに対し、工程S3では、新バージョンに更新されたアプリケーションプログラム210が動作する。また、工程S3の切り替え状態の間、構成AのAPサーバ20aで新バージョンのアプリケーションプログラム210が動作し、構成BのAPサーバ20bでは、旧バージョンのアプリケーションプログラム210が動作する。
つまり、図6で説明したとおり、工程S1〜工程S3を処理する期間には、複数のバージョンのアプリケーションプログラム210によるアクセス要求が混在する。また、同期間において、アクセス要求を送信するデータは、旧データベース80−1と新データベース80−2とに混在する。
したがって、図6で説明したとおり、本実施の形態例では、APサーバ20a、20bで、移行中用のDBアクセスプログラム211−1を動作させる。そして、移行中用のDBアクセスプログラム211−1は、アクセス要求が含むアプリケーションプログラム210のパッチ適用状況と、対象データの移行状態とに基づいて、アクセス要求を送信するデータベース80を決定する。即ち、移行中用のDBアクセスプログラム211−1は、アクセス要求を送信するデータベース80を適切に決定する。
これにより、データの不整合を生じさせることなく、各APサーバ20a、20bのアプリケーションプログラム210によるデータベース80−1、80−2へのアクセスが可能になる。即ち、アクセス対象のデータがデータ構成の異なるデータベース80−1、80−2に混在し、アクセス要求が複数のバージョンのアプリケーションプログラム210から発行される場合でも、DBサーバ10に対するアクセス要求を、適切に実行可能になる。
また、運用担当者は、工程S1、S2において、APサーバ20a、20bに、予め、移行中用のDBアクセスプログラム211−1を導入しておく。これにより、工程S3で、移行中用のDBアクセスプログラム211−1によるアクセス要求の制御処理が可能になる。
S4:工程S4では、構成BのAPサーバ20bが起動し、構成A、構成BのAPサーバ20a、20bはともに、稼働状態となる(図中のA→B)。即ち、構成A、構成BのAPサーバ20a、20bは、切り替え状態に遷移する。このとき、構成BのAPサーバ20bでは、新バージョンのアプリケーションプログラム210に加えて、移行完了後用のDBアクセスプログラム211−2が動作する。
工程S4の切り替え状態の間は、構成A、構成BのAPサーバ20a、20bでともに、新バージョンのアプリケーションプログラム210が動作する。即ち、新バージョンのアプリケーションプログラム210のみが動作する。なお、DB裏更新プログラム212によるDBの移行処理は、工程S3で完了している。したがって、工程S4の切り替え状態の間、旧データベース80−1及びDB裏更新プログラム212は、削除待ち状態に遷移する(図中の削除待ち)。
また、工程S4において、切り替え状態を経て、運用担当者は、構成AのAPサーバ20aを停止する。そして、運用担当者は、管理情報にしたがって、構成AのAPサーバ20aの移行中用のDBアクセスプログラム211−1を、移行完了後用のDBアクセスプログラム211−2に更新する(図中のAパッチ)。また、運用担当者は、構成AのAPサーバ20aのDB裏更新プログラム212を削除するとともに(図中の削除済)、旧データベース80−1を削除する(図中の無し)。
これにより、工程S4の経過後、構成A、構成BのAPサーバ20a、20bのアプリケーションプログラム210へのパッチの適用が完了するとともに、旧データベース80−1から、新データベース80−2への移行処理が完了する。
このように、本実施の形態例では、アクセス対象のデータがデータベース80−1、80−2に混在し、アクセス要求が複数のバージョンのアプリケーションプログラム210から発行される場合でも、DBサーバ10への適切なアクセス要求を実行可能になる。したがって、複数のアプリケーションプログラム210に順次、データベース80のデータ構成の変更を伴うパッチを適用する場合でも、少なくとも1つのアプリケーションプログラム210を実行可能になる。これにより、アプリケーションプログラム210によるサービスを停止することなく、データベース80のデータ構成の変更を伴うパッチの、アプリケーションプログラム210への適用が可能になる。
また、本実施の形態例では、アプリケーションプログラム210のパッチの適用処理において、DBサーバ10で動作するDBソフトウェア110のプログラムを変更する必要がない。本実施の形態例では、APサーバ20a、20bで動作するプログラムのみを更新する。したがって、アプリケーションプログラム210の更新にあたり、他のサーバ(例えば、DBサーバ10)の処理を変更する必要がないため、アプリケーションプログラム210の更新による影響範囲を抑えることが可能になる。
また、本実施の形態例では、複数のバージョンのアプリケーションプログラム210が動作するAPサーバ20a、20bで、移行中用のDBアクセスプログラム211−1に加えて、DB裏更新プログラム212を動作させる。DB裏更新プログラム212は、バックグランドで、旧データベース80−1の各データを、新データベース80−2のデータ構成に変更して、新データベース80−2に追加する移行処理を行う。したがって、本実施の形態例では、アプリケーションプログラム210によるサービスを停止することなく、アプリケーションプログラム210にパッチを適用可能になるとともに、データベース80の移行処理を行うことが可能になる。これにより、複数のバージョン間のデータの構成に差異に基づく変換処理が永続的に生じることが回避されるため、処理の負荷が抑えられる。
[管理情報]
次に、図8に示した、パッチの適用処理で使用する管理情報を、図9、図10にしたがって説明する。運用担当者は、例えば、イントラネットを介して図1で説明した管理サーバを介して、パッチの適用処理で使用するファイルを、APサーバ20a、20bの不揮発性メモリ202(図3)等に記憶する。運用担当者は、図5で説明した、アプリケーションプログラム210のパッチ、DBアクセスプログラム211、及び、DB裏更新プログラム212とともに、図9、図10に示す管理情報を記憶する。運用担当者は、管理情報に基づいて、図6〜図8に示したパッチの適用処理を行う。
図9は、図6〜図8に示したパッチの適用処理で使用する第1の管理情報310を説明する図である。図9に示す管理情報310は、アプリケーションプログラム210の修正ファイルの一覧、移行中用、及び、移行完了後用のDBアクセスプログラム211−1、211−2のファイル一覧、DB裏更新プログラム212のファイル一覧を有する。
アプリケーションプログラム210の修正ファイルの一覧は、更新前のファイル名と、更新後のファイル名を有する。更新前のファイル名は、パッチ適用前のアプリケーションプログラム210のファイル名である。また、更新後のファイル名は、パッチ適用後のアプリケーションプログラム210のファイル名である。
また、移行中用のDBアクセスプログラム211−1のファイル一覧は、更新前のファイル名と、更新後のファイル名を有する。更新前のファイル名は、例えば、図4で説明したDBアクセスモジュール211のファイル名である。また、更新後のファイル名は、図5に示した、移行中用のDBアクセスプログラム211−1のファイル名である。移行中用のDBアクセスプログラム211−1の詳細は、図11〜図23で後述する。
また、移行完了後用のDBアクセスプログラム211−2の一覧は、更新前のファイル名と、更新後のファイル名を有する。更新前のファイル名は、移行中用のDBアクセスプログラム211−1のファイル名である。即ち、更新前のファイル名は、移行中用のDBアクセスプログラム211−1のファイル一覧の更新後のファイル名と同一である。更新後のファイル名は、図5に示した、移行完了後用のDBアクセスプログラム211−2のファイル名である。
さらに、DB裏更新プログラム212のファイル一覧は、図5に示した、DB裏更新プログラム212のファイル名を有する。DB裏更新プログラム212の詳細は、図24、図25で後述する。
図10は、図6〜図8に示したパッチの適用処理で使用する第2の管理情報320を説明する図である。
図10に示す管理情報320は、アプリケーションプログラム210のパッチの適用によりデータ構成が変更となるテーブル名(更新前、更新後)を有する。本実施の形態例では、パッチの適用によりデータ構成が変更となるテーブル名は、図2に例示したテーブルの名前である。運用担当者は、例えば、管理情報320内のデータ構成が変更となる更新後テーブル名に基づいて、空の新データベース80−2を生成する(図7、図8の工程S1)。
また、図10に示す管理情報320は、DB裏更新プログラム名、及び、DB裏更新進捗管理表を有する。DB裏更新プログラム名は、図9に示した管理情報310のDB裏更新プログラム212のファイル一覧と同一の情報である。DB裏更新進捗管理表は、DB裏更新プログラム212の移行処理の進捗状況を示す管理表である。運用担当者は、例えば、DB裏更新処理の進捗管理表を参照し、移行処理が完了したか否かを判定する。
次に、図11〜図23にしたがって、図5で説明した移行中用のDBアクセスプログラム211−1の詳細を説明する。また、図24、図25にしたがって、図5で説明したDB裏更新プログラム212の詳細を説明する。
[移行中用のDBアクセスプログラム]
図11〜図23では、アクセス要求の種別に応じた、移行中用のDBアクセスプログラム211−1の詳細を説明する。前述したとおり、アクセス要求には、例えば、データベース80へのデータの新規追加、データベース80に記憶されたデータの更新、検索、及び、削除などがある。
[アクセス要求:更新]
図11は、図5に示すDBアクセスプログラム211−1の1つであって、データ更新を示すアクセス要求に対応する移行中用のDBアクセスプログラム211−1aを示す図である。DBアクセスプログラム211−1aは、関数updateを有する。
関数updateのパラメータは、値table、値version、値data、値idである。値tableは、更新対象のテーブルの識別情報を示す。値versionは、アクセス要求を発行したアプリケーションプログラム210のバージョン(パッチ未適用、パッチ適用済み)を示す。値dataは、更新対象のデータを示し、値idは、更新対象のデータの識別番号を示す。
図11に示すDBアクセスプログラム211−1aは、値versionの示すアプリケーションプログラム210のバージョンと、値data(更新対象のデータ)の移行状態に基づいて、アクセス要求を送信するデータベース80を決定する。
即ち、DBアクセスプログラム211−1aは、更新対象のデータが移行済みであれば、アプリケーションプログラム210のバージョンに関わらず、新データベース80−2を選択しデータを更新する。また、DBアクセスプログラム211−1aは、更新対象のデータが未移行の場合、アプリケーションプログラム210が新バージョンの場合は新データベース80−2を、旧バージョンの場合は旧データベース80−1を選択しデータを更新する。
これにより、更新対象のデータが旧、新のデータベース80−1、80−2に混在し、旧、新バージョンのアプリケーションプログラム210からのアクセス要求が混在する場合でも、データの更新処理を適切に行うことが可能になる。
また、DBアクセスプログラム211−1aは、値versionの示すアプリケーションプログラム210のバージョンが、アクセス要求を送信するデータベース80に対応するアプリケーションプログラムのバージョン210と異なる場合、値dataを変換する。以下、データベース80に対応するアプリケーションプログラム210のバージョンを、データベース80のバージョンと称する。
即ち、DBアクセスプログラム211−1aは、旧バージョンのアプリケーションプログラム210からのアクセス要求に応答して、新データベース80−2にデータを更新する場合、更新対象データを新データベース80−2のデータ構成に変換する。これにより、アクセス要求が含むデータが、アクセス要求を送信するデータベース80のデータ構成と異なる場合であっても、データの更新処理を適切に行うことが可能になる。
図11のDBアクセスプログラム211−1aに示すコードcd11は、更新対象のデータが新データベース80−2に移行済みである場合の処理の記述である。コードcd12は、更新対象のデータが新データベース80−2に未移行の場合の処理の記述である。また、コードcd13、cd14は、アプリケーションプログラム210のバージョンの判定処理の記述を示す。
次に、図11に示すDBアクセスプログラム211−1aの処理を、図12のフローチャート図にしたがって説明する。
図12は、図11に示した移行中用のDBアクセスプログラム211−1aの処理を説明するフローチャート図である。図11に示した、更新対象のデータが新データベース80−2に移行済みである場合の処理(コードcd11)は、図12の工程S14〜S16に対応する。また、図11に示した、更新対象のデータが新データベース80−2に未移行の場合の処理(コードcd12)は、図12の工程S20〜S24に対応する。また、図11に示したコードcd13は工程S14に、図11に示したコードcd14は、工程S20に対応する。
S11:移行中用のDBアクセスプログラム211−1aは、新データベース80−2の更新対象のテーブルの排他制御を行う。これにより、他のプログラムは、新データベース80−2の当該テーブルにアクセスできない。図23で後述するが、本実施の形態例では、新データベース80−2の排他管理のみを行うことによって、旧データベース80−1の排他管理を合わせて行う。
S12:移行中用のDBアクセスプログラム211−1aは、新データベース80−2の対象のテーブルをパラメータである値idに基づいて検索する。
S13:移行中用のDBアクセスプログラム211−1aは、新データベース80−2の対象テーブルに値idのデータが存在するか否かを判定する。
S14:新データベース80−2の対象テーブルに値idのデータが存在する場合(S13のYES)、更新対象データが移行済みであることを示す。移行中用のDBアクセスプログラム211−1aは、さらに、パラメータである値versionが新バージョンを示すか否かを判定する(図11のcd13)。つまり、移行中用のDBアクセスプログラム211−1aは、アクセス要求を発行したアプリケーションプログラム210のバージョンを判定する。
S15:値versionが旧バージョンを示す場合(S14のNO)、旧バージョンのアプリケーションプログラム210がアクセス要求を発行したことを示す。即ち、工程S15は、アクセス要求を発行したアプリケーションプログラム210のバージョンが旧バージョンであって、更新対象データが移行済みの場合を示す。上記の場合、移行中用のDBアクセスプログラム211−1aは、新データベース80−2に対して、更新対象データを更新する。
このため、アクセス要求を発行したアプリケーションプログラム210のバージョンと、アクセス要求を送信するデータベース80のバージョンが異なる。したがって、移行中用のDBアクセスプログラム211−1aは、書き込み対象の値data(更新対象のデータ)を新データベース80−2のデータ構成に変換する。これにより、旧バージョンのアプリケーションプログラム210のアクセス要求に応じて、新データベース80−2にアクセスする場合であっても、データの更新処理を適切に行うことが可能になる。
なお、アクセス要求を発行したアプリケーションプログラム210のバージョンが新バージョンであって(S14のYES)、更新対象データが移行済みの場合(S13のYES)、移行中用のDBアクセスプログラム211−1aは、値dataを変換しない。
S16:移行中用のDBアクセスプログラム211−1aは、値dataが示す更新対象データにしたがって、新データベース80−2の対象のテーブルを更新する。工程S14〜S16(図11のcd11)は、更新対象データが移行済みの場合(S13のYES)の処理である。更新対象データが移行済みの場合、移行中用のDBアクセスプログラム211−1aは、アクセス要求を発行したアプリケーションプログラム210のバージョンに関わらず、新データベース80−2を選択する。そして、移行中用のDBアクセスプログラム211−1aは、新データベース80−2に更新対象データを更新する。
S17:新データベース80−2の対象テーブルに値idのデータが存在しない場合(S13のNO)、移行中用のDBアクセスプログラム211−1aは、旧データベース80−1の対象のテーブルを値idに基づいて検索する。
S18:移行中用のDBアクセスプログラム211−1aは、旧データベース80−1の対象テーブルに値idのデータが存在するか否かを判定する。
S19:旧データベース80−1の対象テーブルに値idのデータが存在しない場合(S18のNO)、いずれのデータベース80−1、80−2にもデータが存在しないことを示す。したがって、移行中用のDBアクセスプログラム211−1aは、更新対象データが存在しない旨の情報を更新結果に設定する。
S20:旧データベース80−1の対象テーブルに値idのデータが存在する場合(S18のYES)、更新対象データが未移行であることを示す。即ち、値idのデータが、新データベース80−2には存在しないが、旧データベース80−1には存在する場合を示す。移行中用のDBアクセスプログラム211−1aは、さらに、値versionが新バージョンを示すか否かを判定する(図11のcd14)。
S21:値versionが新バージョンを示す場合(S20のYES)、新バージョンのアプリケーションプログラム210が、アクセス要求を発行したことを示す。即ち、工程S21は、アクセス要求を発行したアプリケーションプログラム210のバージョンが新バージョンであって、更新対象データが未移行の場合を示す。移行中用のDBアクセスプログラム211−1aは、旧データベース80−1の検索結果データを新データベース80−2のデータ構成に変換する。
S22:移行中用のDBアクセスプログラム211−1aは、工程S21による変換後のデータを、新データベース80−2のテーブルに追加する。即ち、移行中用のDBアクセスプログラム211−1aは、検索結果データを、新データベース80−2に移行する。
S23:移行中用のDBアクセスプログラム211−1aは、値dataが示す更新対象データにしたがって、新データベース80−2の対象のテーブルを更新する。これにより、移行中用のDBアクセスプログラム211−1aは、旧データベース80−1が有する更新対象データを新データベース80−2に移行するとともに、更新対象データを更新する。
S24:値versionが旧バージョンを示す場合(S20のNO)、旧バージョンのアプリケーションプログラム210がアクセス要求を発行したことを示す。移行中用のDBアクセスプログラム211−1aは、値dataが示す更新対象データにしたがって、旧データベース80−1の対象のテーブルを更新する。
工程S20〜S24(図11のcd12)に示すように、更新対象のデータが未移行の場合(S18のYES)、移行中用のDBアクセスプログラム211−1aは、アクセス要求を発行したアプリケーションプログラム210のバージョンを参照する。そして、移行中用のDBアクセスプログラム211−1aは、アクセス要求を発行したアプリケーションプログラム210のバージョンに応じて、旧データベース80−1、または、新データベース80−2を選択し、更新対象データを更新する。
S25:移行中用のDBアクセスプログラム211−1aは、新データベース80−2の対象テーブルの排他解除を行う。これにより、他のプログラムは、新データベース80−2の当該テーブルにアクセス可能になる。
図11、図12に示すように、移行中用のDBアクセスプログラム211−1aは、アクセス要求を発行したアプリケーションプログラム210のバージョンと、更新対象データの移行状態に基づいて、更新対象のデータベース80−1、80−2を決定する。これにより、移行中用のDBアクセスプログラム211−1aは、アクセス要求を送信するデータベース80−1、80−2を、適切に、決定可能になる。したがって、更新対象のデータが旧、新のデータベース80−1、80−2に混在し、旧、新バージョンのアプリケーションプログラム210からのアクセス要求が混在する場合でも、更新処理を適切に行うことが可能になる。
[アクセス要求:新規追加]
図13は、図5に示すDBアクセスプログラム211−1の1つであって、データ新規追加を示すアクセス要求に対応する移行中用のDBアクセスプログラム211−1bを示す図である。DBアクセスプログラム211−1bは、関数createを有する。
関数createのパラメータは、値table、値version、値dataである。値tableは、新規追加対象のテーブルの識別情報を示す。値versionは、アクセス要求を発行したアプリケーションプログラム210のバージョン(パッチ未適用、パッチ適用済み)を示す。値dataは、新規追加対象のデータを示す。
図13に示すDBアクセスプログラム211−1bは、値versionの示すアプリケーションプログラム210のバージョンに関わらず、新データベース80−2を選択し、データを追加する。したがって、DB裏更新プログラム212による移行処理の対象となるデータ量を抑制することが可能になる。
また、DBアクセスプログラム211−1bは、値versionの示すアプリケーションプログラム210のバージョンが、アクセス要求を送信するデータベース80のバージョンと異なる場合、値data(新規追加対象のデータ)を変換する。即ち、DBアクセスプログラム211−1bは、旧バージョンのアプリケーションプログラム210からの新規追加要求に応じて、新データベース80−2にデータを追加する場合、新規追加対象のデータを新データベース80−2のデータ構成に変換する。
DBアクセスプログラム211−1bに示すコードcd21は、アプリケーションプログラム210のバージョンの判定処理の記述を示す。次に、図13に示すDBアクセスプログラム211−1bの処理を、図14のフローチャート図にしたがって説明する。
図14は、図13に示した移行中用のDBアクセスプログラム211−1bの処理を説明するフローチャート図である。図13に示したコードcd21は、工程S31に対応する。
S31:移行中用のDBアクセスプログラム211−1bは、値versionが新バージョンを示すか否かを判定する(図13のcd21)。つまり、移行中用のDBアクセスプログラム211−1bは、アクセス要求を発行したアプリケーションプログラム210のバージョンを判定する。
S32:値versionが旧バージョンを示す場合(S31のNO)、旧バージョンのアプリケーションプログラム210が、アクセス要求を発行したことを示す。移行中用のDBアクセスプログラム211−1bは、アプリケーションプログラム210のバージョンに関わらず、新データベース80−2の対象テーブルに新規追加データを追加する。このため、アクセス要求を発行したアプリケーションプログラム210のバージョンと、アクセス要求を送信するデータベース80のバージョンが異なる。即ち、アクセス要求が含むデータと、アクセス要求を送信するデータベース80のデータ構成が異なる。
したがって、工程S32では、移行中用のDBアクセスプログラム211−1bは、書き込み対象の値data(新規追加対象のデータ)を新データベース80−2のデータ構成に変換する。これにより、旧バージョンのアプリケーションプログラム210のアクセス要求に応じて、新データベース80−2にアクセスする場合であっても、データの新規追加処理を適切に行うことが可能になる。
なお、アクセス要求を発行したアプリケーションプログラム210のバージョンが新バージョンの場合(S31のYES)、移行中用のDBアクセスプログラム211−1bは、値dataを変換しない。
S33:移行中用のDBアクセスプログラム211−1bは、新データベース80−2のデータの新規追加対象のテーブルの排他制御を行う。これにより、他のプログラムは、新データベース80−2の当該テーブルにアクセスできない。
S34:移行中用のDBアクセスプログラム211−1bは、値dataが示す新規追加対象データを新データベース80−2の対象のテーブルに追加する。
S35:移行中用のDBアクセスプログラム211−1bは、新データベース80−2の対象テーブルの排他解除を行う。これにより、他のプログラムは、新データベース80−2の当該テーブルにアクセス可能になる。
図13、図14に示すように、移行中用のDBアクセスプログラム211−1bは、アクセス要求を発行したアプリケーションプログラム210のバージョンに関わらず、追加対象のデータベースを、新データベース80−2に決定する。これにより、移行中用のDBアクセスプログラム211−1bは、アクセス要求を送信するデータベース80−1、80−2を、適切に決定可能になる。したがって、追加対象のデータが旧、新のデータベース80−1、80−2に混在し、旧、新バージョンのアプリケーションプログラム210からのアクセス要求が混在する場合でも、追加処理を適切に行うことが可能になる。
[アクセス要求:検索]
図15は、図5に示すDBアクセスプログラム211−1の1つであって、データ検索を示すアクセス要求に対応する移行中用のDBアクセスプログラム211−1cを示す図である。DBアクセスプログラム211−1cは、関数findを有する。
関数findのパラメータは、値table、値version、値idである。値tableは、検索対象のテーブルの識別情報を示す。値versionは、アクセス要求を発行したアプリケーションプログラム210のバージョン(パッチ未適用、パッチ適用済み)を示す。値idは、検索対象のデータの識別番号を示す。
図15に示すDBアクセスプログラム211−1cは、アクセス要求を発行したアプリケーションプログラム210のバージョンに関わらず、検索対象データの移行状態に基づいて、アクセス要求を送信するデータベース80−1、80−2を決定する。即ち、DBアクセスプログラム211−1cは、検索対象のデータが新データベース80−2に移行済みの場合は、新データベース80−2を選択し、新データベース80−2に未移行の場合は、旧データベース80−1を選択して検索する。
また、DBアクセスプログラム211−1cは、値versionの示すアプリケーションプログラム210のバージョンが、アクセス要求を送信するデータベース80のバージョンと異なる場合、読み出した検索データを変換する。これにより、読み出したデータが、アクセス要求を送信するデータベース80のデータ構成と異なる場合であっても、データの検索処理を適切に行うことが可能になる。
即ち、DBアクセスプログラム211−1cは、新バージョンのアプリケーションプログラム210からのアクセス要求に応じて、旧データベース80−1を検索した場合、読み出したデータを新データベース80−2のデータ構成に変換する。また、DBアクセスプログラム211−1cは、旧バージョンのアプリケーションプログラム210からのアクセス要求に応じて、新データベース80−2を検索した場合、読み出したデータを旧データベース80−1のデータ構成に変換する。
図15のDBアクセスプログラム211−1cに示すコードcd31は、検索対象のデータが新データベース80−2に移行済みである場合の処理の記述である。コードcd32は、検索対象のデータが新データベース80−2に未移行の場合の処理の記述である。また、コードcd33、cd34は、アプリケーションプログラム210のバージョンの判定処理の記述を示す。
次に、図15に示すDBアクセスプログラム211−1cの処理を、図16のフローチャート図にしたがって説明する。
図16は、図15に示した移行中用のDBアクセスプログラム211−1cの処理を説明するフローチャート図である。図15に示した、検索対象のデータが新データベース80−2に移行済みである場合の処理(コードcd31)は、図16の工程S44〜S47に対応する。また、図15に示した、検索対象のデータが新データベース80−2に未移行の場合の処理(コードcd32)は、図16の工程S51〜S54に対応する。また、図15に示したコードcd33は工程S44に、図15に示したコードcd34は、工程S51に対応する。
S41:移行中用のDBアクセスプログラム211−1cは、新データベース80−2の検索対象となるテーブルの排他制御を行う。これにより、他のプログラムは、新データベース80−2の当該テーブルにアクセスできない。
S42:移行中用のDBアクセスプログラム211−1cは、新データベース80−2の対象のテーブルをパラメータである値idに基づいて検索する。
S43:移行中用のDBアクセスプログラム211−1cは、新データベース80−2の対象テーブルに値idのデータが存在するか否かを判定する。
S44:新データベース80−2の対象テーブルに値idのデータが存在する場合(S43のYES)、検索対象データが移行済みであることを示す。DBアクセスプログラム211−1cは、検索対象データが新データベース80−2に移行済みの場合は、検索対象データを、新データベース80−2から検索する。移行中用のDBアクセスプログラム211−1cは、さらに、値versionが新バージョンを示すか否かを判定する(図15のcd33)。
S45:値versionが新バージョンを示す場合(S44のYES)、新バージョンのアプリケーションプログラム210が、アクセス要求を発行したことを示す。工程S45の場合、アクセス要求を発行したアプリケーションプログラム210のバージョンと、アクセス要求を送信するデータベース80のバージョンが同一である。したがって、移行中用のDBアクセスプログラム211−1cは、新データベース80−2の検索結果のデータを変換することなく、検索結果に設定する。
S46:一方、値versionが旧バージョンを示す場合(S44のNO)、旧バージョンのアプリケーションプログラム210が、アクセス要求を発行したことを示す。工程S46の場合、アクセス要求を発行したアプリケーションプログラム210のバージョンと、検索対象のデータベース80のバージョンが異なる。即ち、アクセス要求が含むデータと、アクセス要求を送信するデータベース80のデータ構成とが異なる。
したがって、移行中用のDBアクセスプログラム211−1cは、新データベース80−2から読み出した検索結果のデータを旧データベース80−1のデータ構成に変換する。これにより、旧バージョンのアプリケーションプログラム210のアクセス要求に応じて、新データベース80−2にアクセスする場合であっても、データの検索処理を適切に行うことが可能になる。
S47:移行中用のDBアクセスプログラム211−1cは、工程S46で変換したデータを検索結果に設定する。工程S44〜S47(図15のcd31)に示すように、検索対象のデータが新データベース80−2に移行済みの場合、DBアクセスプログラム211−1cは、検索対象のデータを新データベース80−2から検索する。
S48:一方、新データベース80−2の対象テーブルに値idのデータが存在しない場合(S43のNO)、移行中用のDBアクセスプログラム211−1cは、旧データベース80−1の対象のテーブルを値idに基づいて検索する。
S49:移行中用のDBアクセスプログラム211−1cは、旧データベース80−1の対象テーブルに値idのデータが存在するか否かを判定する。
S50:旧データベース80−1の対象テーブルに値idのデータが存在しない場合(S49のNO)、いずれのデータベース80−1、80−2にもデータが存在しないことを示す。したがって、移行中用のDBアクセスプログラム211−1cは、検索対象データが存在しない旨の情報を更新結果に設定する。
S51:旧データベース80−1の対象テーブルに値idのデータが存在する場合(S49のYES)、検索対象データが未移行であることを示す。DBアクセスプログラム211−1cは、検索対象データが新データベース80−2に未移行の場合は、検索対象データを、旧データベース80−1から検索する。移行中用のDBアクセスプログラム211−1cは、さらに、値versionが新バージョンを示すか否かを判定する(図15のcd34)。
S52:値versionが新バージョンを示す場合(S51のYES)、新バージョンのアプリケーションプログラム210が、アクセス要求を発行したことを示す。工程S52の場合、アクセス要求を発行したアプリケーションプログラム210のバージョンと、アクセス要求を送信するデータベース80のバージョンが異なる。即ち、アクセス要求が含むデータと、アクセス要求を送信するデータベース80のデータ構成が異なる。
したがって、移行中用のDBアクセスプログラム211−1cは、旧データベース80−1から読み出した検索結果のデータを新データベース80−2のデータ構成に変換する。これにより、新バージョンのアプリケーションプログラム210のアクセス要求に応じて、旧データベース80−1にアクセスする場合であっても、データの検索処理を適切に行うことが可能になる。
S53:移行中用のDBアクセスプログラム211−1cは、工程S52で変換したデータを検索結果に設定する。
S54:値versionが旧バージョンを示す場合(S51のNO)、旧バージョンのアプリケーションプログラム210が、アクセス要求を発行したことを示す。工程S54の場合、アクセス要求を発行したアプリケーションプログラム210のバージョンと、アクセス要求を送信するデータベース80のバージョンが同一である。したがって、移行中用のDBアクセスプログラム211−1cは、旧データベース80−1の検索結果のデータを変換することなく、検索結果に設定する。
工程S51〜S54(図15のcd32)に示すように、検索対象のデータが新データベース80−2に未移行の場合、DBアクセスプログラム211−1cは、検索対象のデータを旧データベース80−1から検索する。 S55:移行中用のDBアクセスプログラム211−1cは、新データベース80−2の対象テーブルの排他解除を行う。これにより、他のプログラムは、新データベース80−2の当該テーブルにアクセス可能になる。
図15、図16に示すように、移行中用のDBアクセスプログラム211−1cは、アクセス要求を発行したアプリケーションプログラム210のバージョンに関わらず、検索対象データの移行状態に基づき、検索対象のデータベース80−1、80−2を決定する。これにより、移行中用のDBアクセスプログラム211−1cは、アクセス要求を送信するデータベース80−1、80−2を、適切に決定可能になる。したがって、検索対象のデータが旧、新のデータベース80−1、80−2に混在し、旧、新バージョンのアプリケーションプログラム210からアクセス要求が混在する場合でも、検索処理を適切に行うことが可能になる。
[アクセス要求:条件検索(1件)]
図17は、図5に示すDBアクセスプログラム211−1の1つであって、データの条件検索(1件)を示すアクセス要求に対応する移行中用のDBアクセスプログラム211−1dを示す図である。データの条件検索とは、テーブルのある項目の値が所定の条件を満たすデータを1件検索する処理を示す。DBアクセスプログラム211−1dは、関数whereを有する。
関数whereのパラメータは、値table、値version、値conditionである。値tableは、条件検索対象のテーブルの識別情報を示す。値versionは、アクセス要求を発行したアプリケーションプログラム210のバージョン(パッチ未適用、パッチ適用済み)を示す。値conditionは、検索条件を示す。
図17に示すDBアクセスプログラム211−1dは、アクセス要求を発行したアプリケーションプログラム210のバージョンに関わらず、検索対象データの移行状態に基づいて、アクセス要求を送信するデータベース80を決定する。具体的に、DBアクセスプログラム211−1dは、旧、新データベース80−1、80−2から検索条件を満たすデータを検索し、検索対象データの移行状態に応じて、いずれかのデータベース80−1、80−2の検索結果を選択する。
また、図15、図16と同様にして、DBアクセスプログラム211−1dは、値versionの示すアプリケーションプログラム210のバージョンが、アクセス要求を送信するデータベース80のバージョンと異なる場合、読み出した検索結果データを変換する。図17のDBアクセスプログラム211−1dのコードcd41、cd42は、アプリケーションプログラム210のバージョンの判定処理の記述を示す。また、コードcd43は、旧、新データベース80−2の検索結果を判定する処理の記述を示す。
次に、図17に示すDBアクセスプログラム211−1dの処理を、図18のフローチャート図にしたがって説明する。
図18は、図17に示した移行中用のDBアクセスプログラム211−1dの処理を説明するフローチャート図である。図17に示したコードcd41は工程S73に、図17に示すコードcd42は、工程S76に対応する。また、図17に示したコードcd43は工程S67に対応する。
S61:移行中用のDBアクセスプログラム211−1dは、新データベース80−2の条件検索対象となるテーブルの排他制御を行う。これにより、他のプログラムは、新データベース80−2の当該テーブルにアクセスできない。
S62:移行中用のDBアクセスプログラム211−1dは、値versionが新バージョンを示すか否かを判定する。
S63:値versionが新バージョンを示す場合(S62のYES)、新バージョンのアプリケーションプログラム210が、アクセス要求を発行したことを示す。したがって、移行中用のDBアクセスプログラム211−1dは、値conditionを旧バージョンの仕様に合わせて変換する。
S64:一方、値versionが旧バージョンを示す場合(S62のNO)、旧バージョンのアプリケーションプログラム210が、アクセス要求を発行したことを示す。したがって、移行中用のDBアクセスプログラム211−1dは、値conditionを新バージョンの仕様に合わせて変換する。
S65:移行中用のDBアクセスプログラム211−1dは、値conditionにしたがって、旧データベース80−1、及び、新データベース80−2の対象のテーブルを検索する。
S66:移行中用のDBアクセスプログラム211−1dは、旧データベース80−1及び新データベース80−2の両方に、値conditionを満たすデータがあるか否かを判定する。
S67:両方のデータベース80に値conditionを満たすデータがある場合(S66のYES)、移行中用のDBアクセスプログラム211−1dは、検索結果を判定する(図17のcd43)。具体的に、移行中用のDBアクセスプログラム211−1dは、新データベース80−2の検索結果である値idが、旧データベース80−1の検索結果である値id以下の値であるか否かを判定する。
図17、図18の例では、検索条件を満たす値idを、値idの昇順に検索する。また、本実施の形態例では、DB裏更新プログラム212が、順次、データの移行処理を行う。したがって、データの移行処理の進捗状況によって、各データベース80−1、80−2が格納するデータの比率が異なる。即ち、移行処理の進捗が僅かである場合、大部分のデータが旧データベース80−1に格納されていることを示す。検索条件を値idの昇順に検索する場合、より多くのデータを格納するデータベース80−1、80−2の検索結果の値idがより小さい値となる可能性が高い。したがって、移行中用のDBアクセスプログラム211−1dは、検索結果である値idを比較し、値idの値がより小さい検索結果を採用する。
S68:新データベース80−2の検索結果の値idが、旧データベース80−1の検索結果の値id以下の値である場合(S67のYES)、移行中用のDBアクセスプログラム211−1dは、新データベース80−2の検索結果を採用する。移行中用のDBアクセスプログラム211−1dは、旧データベース80−1の検索結果を無効にする。即ち、移行中用のDBアクセスプログラム211−1dは、値conditionを満たすデータが新データベース80−2にのみ存在した旨、検索結果を変更する。
S69:一方、新データベース80−2の検索結果である値idが、旧データベース80−1の検索結果である値idより大きい場合(S67のNO)、移行中用のDBアクセスプログラム211−1dは、旧データベース80−1の検索結果を採用する。移行中用のDBアクセスプログラム211−1dは、新データベース80−2の検索結果を無効にする。即ち、移行中用のDBアクセスプログラム211−1dは、値conditionを満たすデータが旧データベース80−1にのみ存在した旨、検索結果を変更する。
S70:移行中用のDBアクセスプログラム211−1dは、旧データベース80−1及び新データベース80−2のいずれにも、値conditionを満たすデータがなかった否かを判定する。
S71:いずれのデータベース80−1、80−2にも値conditionを満たすデータがない場合(S70のYES)、移行中用のDBアクセスプログラム211−1dは、値conditionに合致するデータがない旨、検索結果に設定する。
S72:データベース80−1、80−2のいずれかに値conditionを満たすデータがある場合(S70のNO)、移行中用のDBアクセスプログラム211−1dは、値conditionを満たすデータが新データベース80−2にのみあるか否かを判定する。
S73:値conditionを満たすデータが新データベース80−2にのみある場合(S72のYES)、移行中用のDBアクセスプログラム211−1dは、さらに、値versionが新バージョンを示すか否かを判定する(図17のcd41)。工程S68に該当する場合、工程S73に遷移する。
S74:値versionが新バージョンを示す場合(S73のYES)、新バージョンのアプリケーションプログラム210が、アクセス要求を発行したことを示す。工程S74の場合、アクセス要求を発行したアプリケーションプログラム210のバージョンと、アクセス要求を送信するデータベース80のバージョンが同一である。したがって、移行中用のDBアクセスプログラム211−1dは、新データベース80−2の検索結果である値idに対応するデータを変換することなく、検索結果に設定する。
S75:一方、値versionが旧バージョンを示す場合(S73のNO)、アクセス要求を発行したアプリケーションプログラム210のバージョンと、アクセス要求を送信するデータベース80のバージョンが異なる。したがって、図16と同様にして、移行中用のDBアクセスプログラム211−1dは、新データベース80−2の検索結果である値idに対応するデータを、旧データベース80−1のデータ構成に変換し、検索結果に設定する。
S76:一方、値conditionを満たすデータが旧データベース80−1にのみある場合(S72のNO)、移行中用のDBアクセスプログラム211−1dは、さらに、値versionが新バージョンを示すか否かを判定する(図17のcd42)。工程S69に該当する場合、工程S76に遷移する。
S77:値versionが新バージョンを示す場合(S76のYES)、新バージョンのアプリケーションプログラム210が、アクセス要求を発行したことを示す。工程S77の場合、アクセス要求を発行したアプリケーションプログラム210のバージョンと、アクセス要求を送信するデータベース80のバージョンが異なる。したがって、図16と同様にして、移行中用のDBアクセスプログラム211−1dは、旧データベース80−1の検索結果である値idに対応するデータを、新データベース80−2のデータ構成に変換し、検索結果に設定する。
S78:値versionが旧バージョンを示す場合(S73のNO)、アクセス要求を発行したアプリケーションプログラム210のバージョンと、アクセス要求を送信するデータベース80のバージョンが同一である。したがって、移行中用のDBアクセスプログラム211−1dは、旧データベース80−1の検索結果である値idに対応するデータを変換することなく、検索結果に設定する。
S79:移行中用のDBアクセスプログラム211−1dは、新データベース80−2の対象テーブルの排他解除を行う。これにより、他のプログラムは、新データベース80−2の当該テーブルにアクセス可能になる。
図17、図18に示すように、移行中用のDBアクセスプログラム211−1dは、アクセス要求を発行したアプリケーションプログラム210のバージョンに関わらず、データの移行状態に基づいて、アクセス要求を送信するデータベース80−1、80−2を決定する。したがって、検索対象のデータが旧、新のデータベース80−1、80−2に混在し、旧、新バージョンのアプリケーションプログラム210からのアクセス要求が混在する場合でも、条件検索処理を適切に行うことが可能になる。
[アクセス要求:条件検索(全件)]
図19は、図5に示すDBアクセスプログラム211−1の1つであって、データの条件検索(全件)を示すアクセス要求に対応する移行中用のDBアクセスプログラム211−1eを示す図である。DBアクセスプログラム211−1eは、関数allを有する。
関数allのパラメータは、値table、値version、値conditionである。各値は、図17と同様である。図19に示すDBアクセスプログラム211−1eは、アクセス要求を発行したアプリケーションプログラム210のバージョンに関わらず、検索対象データの移行状態に基づいて、アクセス要求を送信するデータベース80を決定する。具体的に、DBアクセスプログラム211−1eは、データの移行状態に応じて、旧、新データベース80−1、80−2から検索条件を満たすデータを検索し、両方の検索結果を重複しないように合計する。
また、図19のDBアクセスプログラム211−1eは、値versionの示すアプリケーションプログラム210のバージョンが、アクセス要求を送信するデータベース80のバージョンと異なる場合、読み出した検索結果データを変換する。図17、図18に示した条件検索(1件)における変換処理と同様である。図19のDBアクセスプログラム211−1eのコードcd51は、アプリケーションプログラム210のバージョンの判定処理の記述を示す。
次に、図19に示すDBアクセスプログラム211−1eの処理を、図20のフローチャート図にしたがって説明する。
図20は、図19に示した移行中用のDBアクセスプログラム211−1eの処理を説明するフローチャート図である。図19に示したコードcd51は工程S86に対応する。図20のフローチャート図における工程S81〜工程S85は、図18のフローチャート図における工程S61〜S65と同様であるため、省略する。
S86:移行中用のDBアクセスプログラム211−1eは、さらに、値versionが新バージョンを示すか否かを判定する(図19のcd51)。
S87:値versionが新バージョンを示す場合(S86のYES)、新バージョンのアプリケーションプログラム210が、アクセス要求を発行したことを示す。移行中用のDBアクセスプログラム211−1eは、新データベース80−2における値conditionを満たすすべてのデータを、検索結果に設定する。
S88:移行中用のDBアクセスプログラム211−1eは、旧データベース80−1の値conditionを満たすデータのうち、新データベース80−2にないデータを新データベース80−2のデータ構成に変換し、検索結果に追加する。これにより、移行中用のDBアクセスプログラム211−1eは、旧データベース80−1と新データベース80−2の検索結果を合計する。
S89:値versionが旧バージョンを示す場合(S86のNO)、旧バージョンのアプリケーションプログラム210が、アクセス要求を発行したことを示す。移行中用のDBアクセスプログラム211−1eは、新データベース80−2における値conditionを満たすすべてのデータを、旧データベース80−1のデータ構成に変換し、検索結果に設定する。
S90:移行中用のDBアクセスプログラム211−1eは、旧データベース80−1の値conditionを満たすデータのうち、新データベース80−2にないデータを、検索結果に追加する。これにより、移行中用のDBアクセスプログラム211−1eは、旧データベース80−1と新データベース80−2の検索結果を合計する。
S91:移行中用のDBアクセスプログラム211−1eは、新データベース80−2の対象テーブルの排他解除を行う。これにより、他のプログラムは、新データベース80−2の当該テーブルにアクセス可能になる。
図19、図20に示すように、移行中用のDBアクセスプログラム211−1eは、アクセス要求を発行したアプリケーションプログラム210のバージョンに関わらず、複数の検索の対象のデータベース80−1、80−2を選択する。したがって、検索対象のデータが旧、新のデータベース80−1、80−2に混在し、旧、新バージョンのアプリケーションプログラム210からのアクセス要求が混在する場合でも、条件検索処理を適切に行うことが可能になる。
[アクセス要求:削除]
図21は、図5に示すDBアクセスプログラム211−1の1つであって、データ削除を示すアクセス要求に対応する移行中用のDBアクセスプログラム211−1fを示す図である。DBアクセスプログラム211−1fは、関数destroyを有する。
関数destroyのパラメータは、値table、値version、値idである。値tableは、削除対象のテーブルの識別情報を示す。値versionは、アクセス要求を発行したアプリケーションプログラム210のバージョン(パッチ未適用、パッチ適用済み)を示す。値idは、削除対象のデータの識別情報を示す。
図21に示すDBアクセスプログラム211−1fは、値versionの示すアプリケーションプログラム210のバージョンに関わらず、値data(削除対象のデータ)のDBの移行状態に基づいて、アクセス要求を送信するデータベース80を決定する。即ち、DBアクセスプログラム211−1fは、対象データが、旧データベース80−1に加え、新データベース80−2に存在する場合、両データベース80−1、80−2から対象データを削除する。
このように、移行中用のDBアクセスプログラム211−1fは、複数のデータベース80−1、80−2を選択してもよい。DBアクセスプログラム211−1fのコードcd61は、削除対象のデータが新データベース80−2に移行済みである場合の処理の記述である。
次に、図21に示すDBアクセスプログラム211−1fの処理を、図22のフローチャート図にしたがって説明する。
図22は、図21に示した移行中用のDBアクセスプログラム211−1fの処理を説明するフローチャート図である。図21に示したコードcd61は工程S106、S107に対応する。
S101:移行中用のDBアクセスプログラム211−1fは、新データベース80−2の削除対象となるテーブルの排他制御を行う。これにより、他のプログラムは、新データベース80−2の当該テーブルにアクセスできない。
S102:移行中用のDBアクセスプログラム211−1fは、旧データベース80−1の対象のテーブルをパラメータである値idに基づいて検索する。
S103:移行中用のDBアクセスプログラム211−1fは、旧データベース80−1の対象テーブルに値idのデータが存在するか否かを判定する。
S104:旧データベース80−1の対象テーブルに値idに対応するデータが存在する場合(S103のYES)、移行中用のDBアクセスプログラム211−1fは、値idに対応するデータを旧データベース80−1から削除する。
S105:移行中用のDBアクセスプログラム211−1fは、新データベース80−2の対象のテーブルをパラメータである値idに基づいて検索する。
S106:移行中用のDBアクセスプログラム211−1fは、新データベース80−2の対象テーブルに値idのデータが存在するか否かを判定する。
S107:新データベース80−2の対象テーブルに値idに対応するデータが存在する場合(S106のYES)、移行中用のDBアクセスプログラム211−1fは、値idに対応するデータを新データベース80−2から削除する。工程S106、107(図21のcd61)に示すように、削除対象データが移行済みの場合(S106のYES)、移行中用のDBアクセスプログラム211−1fは、さらに、新データベース80−2を、削除対象のデータベース80に決定する。
S108:移行中用のDBアクセスプログラム211−1fは、戻り値を設定する。移行中用のDBアクセスプログラム211−1fは、値idに対応するデータが、旧、新データベース80−1、80−2のいずれかに存在した場合(S103のYES、S106のYES)、戻り値に成功(SUCCESS)を示す値を設定する。一方、値idに対応するデータが、旧、新データベース80−1、80−2のいずれにも存在しなかった場合(S103のNO、且つ、S106のNO)、移行中用のDBアクセスプログラム211−1fは、戻り値に失敗(ERROR)を示す値を設定する。
S109:移行中用のDBアクセスプログラム211−1fは、新データベース80−2の対象テーブルの排他解除を行う。これにより、他のプログラムは、新データベース80−2の当該テーブルにアクセス可能になる。
図21、図22に示すように、移行中用のDBアクセスプログラム211−1fは、アプリケーションプログラム210のバージョンに関わらず、削除対象のデータの移行状態に応じて、削除対象のデータベース80−1、80−2を決定する。したがって、削除対象のデータが旧、新データベース80−1、80−2に混在し、旧、新バージョンのアプリケーションプログラム210からのアクセス要求が混在する場合でも、削除処理を適切に行うことが可能になる。
図23は、図5に示す、移行中用のDBアクセスプログラム211−1の他の処理を記述するDBアクセスプログラム211−1g〜211−1jの一例を示す図である。
図23のDBアクセスプログラム211−1gは、テーブル全体を排他制御する関数lockを有する。また、DBアクセスプログラム211−1hは、テーブル全体を排他解除する関数unlockを有する。関数lock、関数unlockは、新データベース80−2のみを対象として、テーブルの排他制御、または、排他解除を行う。
本実施の形態例では、移行中用のDBアクセスプログラム211−1(211−1a〜211−1f)は、新データベース80−2、旧データベース80−1のアクセス処理をセットで行う。したがって、旧、新データベース80−1、80−2のうち、新データベース80−2の排他管理のみを行うことにより、両データベース80−1、80−2の排他管理を実現する。これにより、排他制御にかかる処理量を減少し、プログラムの負荷を抑えることが可能になる。
また、図23のDBアクセスプログラム211−1iは、1件のデータを排他制御する関数lockを有する。また、DBアクセスプログラム211−1jは、1件のデータを排他解除する関数unlockを有する。DBアクセスプログラム211−1i、211−1jも同様にして、新データベース80−2のデータのみを対象として、テーブルの排他制御、または、排他解除を行うことにより、両データベース80−1、80−2の排他管理を実現する。これにより、排他制御にかかる処理量を減少し、プログラムの負荷を抑えることが可能になる。
[DB裏更新プログラム]
図24、図25では、DB裏更新プログラム212の詳細を説明する。
図24は、図5に示したDB裏更新プログラム212の一例を示す図である。図24に示すDB裏更新プログラム212は、旧データベース80−1にあるデータを、順次、新データベース80−2のデータ構成に変換して、新データベース80−2に追加する。また、このとき、DB裏更新プログラム212は、新データベース80−2に追加した移行済みのデータを、旧データベース80−1から削除する。DB裏更新プログラム212は、図24に示す処理を繰り返すことにより、旧データベース80−1のすべてのデータを移行する。
本実施の形態例では、DB裏更新プログラム212によるデータの移行処理の完了後は、アクセス対象のデータの変換処理が発生しない。変換処理は、図11〜図23に示した、アクセス要求を発行したアプリケーションプログラム210のバージョンと、アクセス要求を送信するデータベース80のバージョンが異なる場合のデータの変換処理である。つまり、変換処理は、例えば、図12の工程S15、図14の工程S32、図16の工程S46、S52等を示す。したがって、本実施の形態例によると、データの変換処理が永続的に生じることが回避されるため、データの変換処理にかかる負荷が抑えられる。
図24のDB裏更新プログラム212におけるコードcd71は、旧データベース80−1のデータを、新データベース80−2のデータ構成に変換して、新データベース80−2に追加する処理の記述を示す。
図25は、図24に示したDB裏更新プログラム212の処理を説明するフローチャート図である。図24に示した、コードcd71に示した処理は、図25における工程S118〜S120に対応する。
S111:DB裏更新プログラム212は、旧データベース80−1から新データベース80−2へのすべてのテーブルの移行処理が完了したか否かを判定する。
S112:すべてのテーブルの移行処理が完了している場合(S111のYES)、DB裏更新プログラム212は、移行処理が完了した旨の情報(CLEAN)を通知し、処理を終了する。
S113:一方、移行が完了していない場合(S111のNO)、DB裏更新プログラム212は、新データベース80−2の対象のテーブルの排他制御を行う。これにより、他のプログラムは、新データベース80−2の当該テーブルにアクセスできない。
S114:DB裏更新プログラム212は、新データベース80−2の対象のテーブルが既に排他制御済みか否かを判定する。
S115:新データベース80−2の対象のテーブルが既に排他制御済みである場合(S114のYES)、他のプログラムが対象のテーブルを使用していることを示す。したがって、DB裏更新プログラム212は、データベース80が使用中である旨の情報(BUSY)を通知し、処理を終了する。データベース80が使用中である場合、DB裏更新プログラム212は、別のタイミングで移行処理を行う。
S116:一方、新データベース80−2の対象のテーブルが排他済みではない場合(S114のNO)、DB裏更新プログラム212は、旧データベース80−1の対象テーブルのデータを検索する。
S117:DB裏更新プログラム212は、旧データベース80−1の対象テーブルが空か否かを判定する。旧データベース80−1の対象テーブルにデータがない場合(S117のYES)、DB裏更新プログラム212は、前述した工程S112に遷移する。
S118:旧データベース80−1の対象テーブルにデータがある場合(S117のNO)、DB裏更新プログラム212は、旧データベース80−1から検索したデータを、さらに、新データベース80−2から検索する。
S119:DB裏更新プログラム212は、旧データベース80−1から検索したデータが新データベース80−2に存在するか否かを判定する。つまり、DB裏更新プログラム212は、旧データベース80−1に存在し、新データベース80−2に存在しないデータを検索する。
S120:旧データベース80−1から検索したデータが、新データベース80−2に存在しない場合(S119のNO)、当該検索したデータが、旧データベース80−1にのみ存在することを示す。したがって、DB裏更新プログラム212は、旧データベース80−1から検索したデータを、新データベース80−2のデータ構成に変換し、新データベース80−2に追加する。なお、旧データベース80−1から検索したデータが新データベース80−2にも存在する場合(S119のYES)、DB裏更新プログラム212は、工程S120の処理を行わない。
S121:DB裏更新プログラム212は、工程S116で旧データベース80−1から検索したデータを、旧データベース80−1から削除する。したがって、例えば、すべてのデータの移行完了時、旧データベース80−1が有するデータの件数は、0件となる。
S122:DB裏更新プログラム212は、新データベース80−2の対象テーブルの排他解除を行う。
図24で説明したように、DB裏更新プログラム212は、図25で説明した処理を繰り返すことにより、すべてのデータの移行処理を完了する。移行処理が完了した場合、旧データベース80−1は空になる。
[他の実施の形態例]
本実施の形態例では、APサーバ20a、20bが物理サーバである場合を例示した。ただし、この例に限定されるものではない。APサーバ20a、20bは、仮想サーバであってもよい。また、本実施の形態例では、2つのAPサーバ20a、20bで動作するアプリケーションプログラム210に順次、パッチを適用する場合を例示した。ただし、この例に限定されるものではない。本実施の形態例における移行中用のDBアクセスプログラム211−1は、3つ以上のAPサーバ20a、20bで動作するアプリケーションプログラム210に、順次、パッチを適用する場合にも有効である。
また、図7、図8によると、本実施の形態例では、構成AのAPサーバ20aにのみ、DB裏更新プログラム212を導入する。ただし、この例に限定されるものではない。運用担当者は、構成AのAPサーバ20aに加えて、構成BのAPサーバ20bに、DB裏更新プログラム212を導入してもよい。また、構成AのAPサーバ20a、及び、構成BのAPサーバ20bのアプリケーションプログラム210に順次パッチを適用する処理も、図7、図8の例に限定されるものではない。複数のAPサーバ20a、20bで動作するアプリケーションプログラム210に順次、パッチを適用する間、移行中のDBアクセスプログラム211−1が動作していればよい。
また、図11〜図23では、アクセス要求の種別に応じた、移行中用のDBアクセスプログラム211−1の例を説明した。ただし、図11〜図23に示した移行中用のDBアクセスプログラム211−1の処理は一例である。
例えば、更新処理のアクセス要求を受け付けた場合(図11、図12)を例示する。図11、図12では、移行中用のDBアクセスプログラム211−1aは、対象データが未移行の場合に、アクセス要求を発行したアプリケーションプログラム210のバージョンに応じて、データベース80−1、80−2を決定する。また、移行中用のDBアクセスプログラム211−1aは、対象データが移行済みの場合に、アクセス要求を発行したアプリケーションプログラム210のバージョンに関わらず、アクセス要求を送信するデータベースを新データベース80−2に決定する。
ただし、移行中用のDBアクセスプログラム211−1aは、対象データが未移行の場合に、アクセス要求を発行したアプリケーションプログラム210のバージョンに関わらず、アクセス要求を送信するデータベースを新データベース80−2に決定してもよい。
同様にして、他のアクセス要求を受け付けた場合についても、図11〜図23に示した、移行中用のDBアクセスプログラム211−1の処理の例に限定されるものではない。本実施の形態例における移行中用のDBアクセスプログラム211−1は、アクセス要求が含むアプリケーションプログラム210のバージョンに関する情報と、対象データの移行情報とに基づいて、対象のデータベース80−1、80−2を決定する。また、本実施の形態例における移行中用のDBアクセスプログラム211−1は、両データベース80−1、80−2を決定してもよい。
以上の実施の形態をまとめると、次の付記のとおりである。
(付記1)
第1データベースおよび第2データベースに接続された複数の情報処理装置上で動作可能なプログラムであって、
前記複数の情報処理装置上で動作する第1ソフトウェアの更新に伴って実行される前記第1データベースから前記第2データベースへのデータの移行処理中に前記第1ソフトウェアからデータベースへのアクセス要求を受け付け、
前記アクセス要求に含まれる前記第1ソフトウェアのバージョンに関する情報と前記第1データベースから前記第2データベースへのデータ移行状況に関する情報に基づき、前記アクセス要求を送信するデータベースを前記第1データベースまたは前記第2データベースに決定する、
処理をコンピュータに実行させるアクセス制御プログラム。
(付記2)
付記1において、
前記決定は、前記バージョンに関する情報と、前記アクセス要求の対象データが前記第2データベースに追加済みか否かを示す前記データ移行状況に関する情報とに基づいて、前記アクセス要求を送信するデータベースを決定する、アクセス制御プログラム。
(付記3)
付記1または2において、
前記受け付けは、さらに、前記第1データベースが有し前記第2データベースが有していないデータを、前記第2データベースに順次、追加する前記データの移行処理を実行する、アクセス制御プログラム。
(付記4)
付記1乃至3のいずれかにおいて、
前記受け付けは、対象データの更新の前記アクセス要求を受け付け、
前記決定は、前記対象データの前記データ移行状況に関する情報が未移行を示す場合に、前記バージョンに関する情報に応じて前記第1データベースまたは前記第2データベースに決定し、前記対象データの前記データ移行状況に関する情報が移行済みを示す場合に、前記バージョンに関する情報に関わらず前記第2データベースに決定する、アクセス制御プログラム。
(付記5)
付記1乃至4のいずれかにおいて、
前記決定は、前記バージョンに関する情報と、前記アクセス要求の対象データの、前記第1データベースから、当該第1データベースとデータの構成が異なる前記第2データベースへの前記データ移行状況に関する情報とに基づいて、前記アクセス要求を送信するデータベースを決定する、アクセス制御プログラム。
(付記6)
付記5において、
前記受け付けは、対象データの書き込みを示す前記アクセス要求を受け付け、
前記アクセス要求に含まれる前記バージョンに関する情報が、前記決定した前記アクセス要求を送信するデータベースに対応する前記第1ソフトウェアのバージョンに関する情報と異なる場合に、前記対象データを、前記決定した前記アクセス要求を送信するデータベースの前記データの構成にさらに変換する、アクセス制御プログラム。
(付記7)
付記5において、
前記受け付けは、対象データの読み出しを示す前記アクセス要求を受け付け、
前記アクセス要求に含まれる前記バージョンに関する情報が、前記決定した前記アクセス要求を送信するデータベースに対応する前記第1ソフトウェアのバージョンに関する情報と異なる場合に、前記アクセス要求に応じて前記第1、第2データベースから読み出したデータを、前記アクセス要求に含まれるバージョンに関する情報に対応するデータベースの前記データの構成にさらに変換する、アクセス制御プログラム。
(付記8)
付記1乃至7のいずれかにおいて、
前記第1ソフトウェアの更新は、前記複数の情報処理装置上でそれぞれ動作する同一の前記第1ソフトウェアを順次、更新する、アクセス制御プログラム。
(付記9)
第1データベースおよび第2データベースに接続された複数の情報処理装置上で動作する第1ソフトウェアの更新に伴って実行される前記第1データベースから前記第2データベースへのデータの移行処理中に、前記情報処理装置が、前記第1ソフトウェアからデータベースへのアクセス要求を受け付け、
前記情報処理装置が、前記アクセス要求に含まれる前記第1ソフトウェアのバージョンに関する情報と前記第1データベースから前記第2データベースへのデータ移行状況に関する情報に基づき、前記アクセス要求を送信するデータベースを前記第1データベースまたは前記第2データベースに決定する、
アクセス制御方法。
(付記10)
付記9において、
前記決定は、前記バージョンに関する情報と、前記アクセス要求の対象データが前記第2データベースに追加済みか否かを示す前記データ移行状況に関する情報とに基づいて、前記アクセス要求を送信するデータベースを決定する、
アクセス制御方法。
(付記11)
付記9または10において、
前記受け付けは、さらに、前記第1データベースが有し前記第2データベースが有していないデータを、前記第2データベースに順次、追加する前記データの移行処理を実行する、
アクセス制御方法。
(付記12)
付記9乃至11のいずれかにおいて、
前記受け付けは、対象データの更新の前記アクセス要求を受け付け、
前記決定は、前記対象データの前記データ移行状況に関する情報が未移行を示す場合に、前記バージョンに関する情報に応じて前記第1データベースまたは前記第2データベースに決定し、前記対象データの前記データ移行状況に関する情報が移行済みを示す場合に、前記バージョンに関する情報に関わらず前記第2データベースに決定する、
アクセス制御方法。
(付記13)
付記9乃至12のいずれかにおいて、
前記決定は、前記バージョンに関する情報と、前記アクセス要求の対象データの、前記第1データベースから、当該第1データベースとデータの構成が異なる前記第2データベースへの前記データ移行状況に関する情報とに基づいて、前記アクセス要求を送信するデータベースを決定する、
アクセス制御方法。
(付記14)
付記13において、
前記受け付けは、対象データの書き込みを示す前記アクセス要求を受け付け、
前記情報処理装置は、前記アクセス要求に含まれる前記バージョンに関する情報が、前記決定した前記アクセス要求を送信するデータベースに対応する前記第1ソフトウェアのバージョンに関する情報と異なる場合に、前記対象データを、前記決定した前記アクセス要求を送信するデータベースの前記データの構成にさらに変換する、
アクセス制御方法。
(付記15)
付記13において、
前記受け付けは、対象データの読み出しを示す前記アクセス要求を受け付け、
前記情報処理装置は、前記アクセス要求に含まれる前記バージョンに関する情報が、前記決定した前記アクセス要求を送信するデータベースに対応する前記第1ソフトウェアのバージョンに関する情報と異なる場合に、前記アクセス要求に応じて前記第1、第2データベースから読み出したデータを、前記アクセス要求に含まれるバージョンに関する情報に対応するデータベースの前記データの構成にさらに変換する、
アクセス制御方法。
(付記16)
付記9乃至15のいずれかにおいて、
前記第1ソフトウェアの更新は、前記複数の情報処理装置上でそれぞれ動作する同一の前記第1ソフトウェアを順次、更新する、
アクセス制御方法。
(付記17)
第1データベースおよび第2データベースに接続された複数の情報処理装置上で動作する第1ソフトウェアの更新に伴って実行される前記第1データベースから前記第2データベースへのデータの移行処理中に前記第1ソフトウェアから受け付けるデータベースへのアクセス要求に含まれる前記第1ソフトウェアのバージョンに関する情報と、前記第1データベースから前記第2データベースへのデータ移行状況に関する情報とを記憶する記憶部と、
前記アクセス要求を受け付け、前記アクセス要求に含まれる前記第1ソフトウェアのバージョンに関する情報と、前記データ移行状況に関する情報に基づき、前記アクセス要求を送信するデータベースを前記第1データベースまたは前記第2データベースに決定する処理部と、
を有するアクセス制御装置。
(付記18)
付記17において、
前記処理部は、前記バージョンに関する情報と、前記アクセス要求の対象データが前記第2データベースに追加済みか否かを示す前記データ移行状況に関する情報とに基づいて、前記アクセス要求を送信するデータベースを決定する、アクセス制御装置。
(付記19)
付記17または18において、
前記処理部は、さらに、前記第1データベースが有し前記第2データベースが有していないデータを、前記第2データベースに順次、追加する前記データの移行処理を実行する、アクセス制御装置。
(付記20)
付記17乃至19のいずれかにおいて、
前記処理部は、対象データの更新の前記アクセス要求を受け付け、前記対象データの前記データ移行状況に関する情報が未移行を示す場合に、前記バージョンに関する情報に応じて前記第1データベースまたは前記第2データベースに決定し、前記対象データの前記データ移行状況に関する情報が移行済みを示す場合に、前記バージョンに関する情報に関わらず前記第2データベースに決定する、アクセス制御装置。
(付記21)
付記17乃至20のいずれかにおいて、
前記処理部は、前記バージョンに関する情報と、前記アクセス要求の対象データの、前記第1データベースから、当該第1データベースとデータの構成が異なる前記第2データベースへの前記データ移行状況に関する情報とに基づいて、前記アクセス要求を送信するデータベースを決定する、アクセス制御装置。
(付記22)
付記21において、
前記処理部は、対象データの書き込みを示す前記アクセス要求を受け付け、前記アクセス要求に含まれる前記バージョンに関する情報が、前記決定した前記アクセス要求を送信するデータベースに対応する前記第1ソフトウェアのバージョンに関する情報と異なる場合に、前記対象データを、前記決定した前記アクセス要求を送信するデータベースの前記データの構成にさらに変換する、アクセス制御装置。
(付記23)
付記21において、
前記処理部は、対象データの読み出しを示す前記アクセス要求を受け付け、前記アクセス要求に含まれる前記バージョンに関する情報が、前記決定した前記アクセス要求を送信するデータベースに対応する前記第1ソフトウェアのバージョンに関する情報と異なる場合に、前記アクセス要求に応じて前記第1、第2データベースから読み出したデータを、前記アクセス要求に含まれるバージョンに関する情報に対応するデータベースの前記データの構成にさらに変換する、アクセス制御装置。
(付記24)
付記1乃至7のいずれかにおいて、
前記第1ソフトウェアの更新は、前記複数の情報処理装置上でそれぞれ動作する同一の前記第1ソフトウェアを順次、更新する、アクセス制御装置。
10:DBサーバ、20a、20b:アプリケーションサーバ、30:SLBサーバ、40:WEBサーバ、50a〜50c:クライアント装置、80(80−1、80−2):データベース、210:アプリケーションプログラム、211−1:移行中用のDBアクセスプログラム、211−2:移行完了後用のDBアクセスプログラム、212:DB裏更新プログラム

Claims (10)

  1. 第1データベースおよび第2データベースに接続された複数の情報処理装置上で動作可能なプログラムであって、
    前記複数の情報処理装置上で動作する第1ソフトウェアの更新に伴って実行される前記第1データベースから前記第2データベースへのデータの移行処理中に前記第1ソフトウェアからデータベースへのアクセス要求を受け付け、
    前記アクセス要求に含まれる前記第1ソフトウェアのバージョンに関する情報と前記第1データベースから前記第2データベースへのデータ移行状況に関する情報に基づき、前記アクセス要求を送信するデータベースを前記第1データベースまたは前記第2データベースに決定する、
    処理をコンピュータに実行させるアクセス制御プログラム。
  2. 請求項1において、
    前記決定は、前記バージョンに関する情報と、前記アクセス要求の対象データが前記第2データベースに追加済みか否かを示す前記データ移行状況に関する情報とに基づいて、前記アクセス要求を送信するデータベースを決定する、アクセス制御プログラム。
  3. 請求項1または2において、
    前記受け付けは、さらに、前記第1データベースが有し前記第2データベースが有していないデータを、前記第2データベースに順次、追加する前記データの移行処理を実行する、アクセス制御プログラム。
  4. 請求項1乃至3のいずれかにおいて、
    前記受け付けは、対象データの更新の前記アクセス要求を受け付け、
    前記決定は、前記対象データの前記データ移行状況に関する情報が未移行を示す場合に、前記バージョンに関する情報に応じて前記第1データベースまたは前記第2データベースに決定し、前記対象データの前記データ移行状況に関する情報が移行済みを示す場合に、前記バージョンに関する情報に関わらず前記第2データベースに決定する、アクセス制御プログラム。
  5. 請求項1乃至4のいずれかにおいて、
    前記決定は、前記バージョンに関する情報と、前記アクセス要求の対象データの、前記第1データベースから、当該第1データベースとデータの構成が異なる前記第2データベースへの前記データ移行状況に関する情報とに基づいて、前記アクセス要求を送信するデータベースを決定する、アクセス制御プログラム。
  6. 請求項5において、
    前記受け付けは、対象データの書き込みを示す前記アクセス要求を受け付け、
    前記アクセス要求に含まれる前記バージョンに関する情報が、前記決定した前記アクセス要求を送信するデータベースに対応する前記第1ソフトウェアのバージョンに関する情報と異なる場合に、前記対象データを、前記決定した前記アクセス要求を送信するデータベースの前記データの構成にさらに変換する、アクセス制御プログラム。
  7. 請求項5において、
    前記受け付けは、対象データの読み出しを示す前記アクセス要求を受け付け、
    前記アクセス要求に含まれる前記バージョンに関する情報が、前記決定した前記アクセス要求を送信するデータベースに対応する前記第1ソフトウェアのバージョンに関する情報と異なる場合に、前記アクセス要求に応じて前記第1、第2データベースから読み出したデータを、前記アクセス要求に含まれるバージョンに関する情報に対応するデータベースの前記データの構成にさらに変換する、アクセス制御プログラム。
  8. 請求項1乃至7のいずれかにおいて、
    前記第1ソフトウェアの更新は、前記複数の情報処理装置上でそれぞれ動作する同一の前記第1ソフトウェアを順次、更新する、アクセス制御プログラム。
  9. 第1データベースおよび第2データベースに接続された複数の情報処理装置上で動作する第1ソフトウェアの更新に伴って実行される前記第1データベースから前記第2データベースへのデータの移行処理中に、前記情報処理装置が、前記第1ソフトウェアからデータベースへのアクセス要求を受け付け、
    前記情報処理装置が、前記アクセス要求に含まれる前記第1ソフトウェアのバージョンに関する情報と前記第1データベースから前記第2データベースへのデータ移行状況に関する情報に基づき、前記アクセス要求を送信するデータベースを前記第1データベースまたは前記第2データベースに決定する、
    アクセス制御方法。
  10. 第1データベースおよび第2データベースに接続された複数の情報処理装置上で動作する第1ソフトウェアの更新に伴って実行される前記第1データベースから前記第2データベースへのデータの移行処理中に前記第1ソフトウェアから受け付けるデータベースへのアクセス要求に含まれる前記第1ソフトウェアのバージョンに関する情報と、前記第1データベースから前記第2データベースへのデータ移行状況に関する情報とを記憶する記憶部と、
    前記アクセス要求を受け付け、前記アクセス要求に含まれる前記第1ソフトウェアのバージョンに関する情報と、前記データ移行状況に関する情報に基づき、前記アクセス要求を送信するデータベースを前記第1データベースまたは前記第2データベースに決定する処理部と、
    を有するアクセス制御装置。
JP2014234493A 2014-11-19 2014-11-19 アクセス制御プログラム、アクセス制御方法、及び、アクセス制御装置 Withdrawn JP2016099709A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014234493A JP2016099709A (ja) 2014-11-19 2014-11-19 アクセス制御プログラム、アクセス制御方法、及び、アクセス制御装置
US14/942,548 US9600271B2 (en) 2014-11-19 2015-11-16 System, method, and computer-readable medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014234493A JP2016099709A (ja) 2014-11-19 2014-11-19 アクセス制御プログラム、アクセス制御方法、及び、アクセス制御装置

Publications (1)

Publication Number Publication Date
JP2016099709A true JP2016099709A (ja) 2016-05-30

Family

ID=55961748

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014234493A Withdrawn JP2016099709A (ja) 2014-11-19 2014-11-19 アクセス制御プログラム、アクセス制御方法、及び、アクセス制御装置

Country Status (2)

Country Link
US (1) US9600271B2 (ja)
JP (1) JP2016099709A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042517B2 (en) 2019-06-07 2021-06-22 Sap Se Online migration of database systems
JP7422705B2 (ja) 2020-06-08 2024-01-26 アクロニス・インターナショナル・ゲーエムベーハー 方法、システムおよびコンピューター可読媒体

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108882277B (zh) * 2018-05-28 2022-04-26 新华三技术有限公司 一种版本升级的方法及装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5873088A (en) 1990-08-31 1999-02-16 Fujitsu Limited Derived data base processing system enabling one program to access a plurality of data basis
JP2503297B2 (ja) 1990-08-31 1996-06-05 富士通株式会社 デ―タベ―ス処理装置および定義変更処理方法
US7055149B2 (en) * 2001-07-25 2006-05-30 Lenovo (Singapore) Pte Ltd. Method and apparatus for automating software upgrades
WO2005086003A1 (ja) 2004-03-08 2005-09-15 Annex Systems Incorporated データベース・システム
JP2005266973A (ja) 2004-03-16 2005-09-29 Kyowa Exeo Corp データ移行方法および装置
JP2009217656A (ja) * 2008-03-12 2009-09-24 Hitachi Ltd 情報機器におけるソフトウェア更新システム
US8561052B2 (en) * 2008-12-08 2013-10-15 Harris Corporation Communications device with a plurality of processors and compatibility synchronization module for processor upgrades and related method
US8463884B2 (en) * 2009-04-08 2013-06-11 Microsoft Corporation Synchronization of mobile device with application server
US8875122B2 (en) * 2010-12-30 2014-10-28 Sap Se Tenant move upgrade
WO2012107929A2 (en) * 2011-02-09 2012-08-16 Conduit Ltd Application synchronization among multiple computing devices
US9213728B2 (en) * 2011-12-14 2015-12-15 Sap Se Change data capturing during an upgrade
US9503520B2 (en) * 2012-02-06 2016-11-22 Conduit Ltd. Application synchronization among multiple computing devices
US9582562B2 (en) * 2012-03-06 2017-02-28 Sap Se Using temporary system to provide continuous access during application upgrade
US9038053B2 (en) * 2012-08-27 2015-05-19 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Non-disruptive software updates for servers processing network traffic
WO2014144005A1 (en) * 2013-03-15 2014-09-18 Jadhav Ajay Use of collaborative server in a cloud-based environment
US9519663B2 (en) * 2013-06-26 2016-12-13 Sap Se Upgrading and migrating a database by a migration tool
US9639448B2 (en) * 2013-06-27 2017-05-02 Sap Se Multi-version systems for zero downtime upgrades
US20160063050A1 (en) * 2014-08-28 2016-03-03 Joerg Schoen Database Migration Consistency Checker
US10120917B2 (en) * 2014-09-26 2018-11-06 Oracle International Corporation Integrating object-based data integration tool with a version control system in centralized and decentralized environments
JP6387278B2 (ja) * 2014-09-30 2018-09-05 太陽誘電株式会社 回路モジュール及びその製造方法
US9519675B2 (en) * 2014-10-01 2016-12-13 Sap Se Data access management during zero downtime upgrade
US9881035B2 (en) * 2014-12-12 2018-01-30 Sap Se Systems and methods for in-place migration with downtime minimization
US9910665B2 (en) * 2015-02-13 2018-03-06 Sap Se Simultaneous operation of multiple versions of an application using bidirectional synchronization and separated read write channels

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042517B2 (en) 2019-06-07 2021-06-22 Sap Se Online migration of database systems
JP7422705B2 (ja) 2020-06-08 2024-01-26 アクロニス・インターナショナル・ゲーエムベーハー 方法、システムおよびコンピューター可読媒体

Also Published As

Publication number Publication date
US20160139912A1 (en) 2016-05-19
US9600271B2 (en) 2017-03-21

Similar Documents

Publication Publication Date Title
US11032140B2 (en) Using a template to update a stack of resources
US10795733B2 (en) Server farm management
US11036754B2 (en) Database table conversion
US20190347127A1 (en) Service provisioning and orchestration for virtual machine to container migration
JP6463393B2 (ja) テナント移行にわたるテナント・データのリカバリ
KR20240013827A (ko) 컨테이너화된 환경에서 클러스터의 라이브 마이그레이션
US20120102494A1 (en) Managing networks and machines for an online service
US20170161291A1 (en) Database table conversion
US20120102067A1 (en) Dynamically splitting multi-tenant databases
US20120102506A1 (en) Web service patterns for globally distributed service fabric
US20120102198A1 (en) Machine manager service fabric
US10783044B2 (en) Method and apparatus for a mechanism of disaster recovery and instance refresh in an event recordation system
US10515228B2 (en) Commit and rollback of data streams provided by partially trusted entities
WO2021139431A1 (zh) 微服务的数据同步方法、装置、电子设备及存储介质
US11082284B1 (en) Applying configurations to applications in a multi-server environment
CN112015696A (zh) 数据访问、数据关系设置方法、装置及存储介质
JP2016099709A (ja) アクセス制御プログラム、アクセス制御方法、及び、アクセス制御装置
CN111444148B (zh) 基于MapReduce的数据传输方法和装置
CN112947992A (zh) 代码版本管理的方法和装置
US11349923B2 (en) Persistent volumes for stateful applications
US11687523B2 (en) System and method for efficiently transferring data for offline use
US11442989B2 (en) Scalable roll-up summary field calculation using graphs
US20190155642A1 (en) Dataflow life cycles
US11330079B2 (en) Environment for developing of distributed multicloud applications
US11243812B2 (en) Automated operating system patching using auto scaling group and persistent volumes

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170804

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20171225