JP2005004411A - システム開発方法、および、システム開発支援プログラム - Google Patents
システム開発方法、および、システム開発支援プログラム Download PDFInfo
- Publication number
- JP2005004411A JP2005004411A JP2003166052A JP2003166052A JP2005004411A JP 2005004411 A JP2005004411 A JP 2005004411A JP 2003166052 A JP2003166052 A JP 2003166052A JP 2003166052 A JP2003166052 A JP 2003166052A JP 2005004411 A JP2005004411 A JP 2005004411A
- Authority
- JP
- Japan
- Prior art keywords
- information
- job
- middleware
- server
- logical
- 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.)
- Pending
Links
- 230000033772 system development Effects 0.000 title claims abstract description 40
- 238000000034 method Methods 0.000 title claims description 94
- 238000012545 processing Methods 0.000 claims abstract description 92
- 238000013461 design Methods 0.000 claims description 101
- 230000000717 retained effect Effects 0.000 claims 1
- 238000011161 development Methods 0.000 abstract description 20
- 230000018109 developmental process Effects 0.000 abstract description 20
- 238000012360 testing method Methods 0.000 abstract description 6
- 230000008569 process Effects 0.000 description 55
- 208000014530 benign exophthalmos syndrome Diseases 0.000 description 24
- 238000010586 diagram Methods 0.000 description 18
- 238000010276 construction Methods 0.000 description 17
- 230000008859 change Effects 0.000 description 15
- 238000007726 management method Methods 0.000 description 13
- 238000003860 storage Methods 0.000 description 9
- 238000012937 correction Methods 0.000 description 7
- 230000002354 daily effect Effects 0.000 description 6
- 238000013507 mapping Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000003442 weekly effect Effects 0.000 description 4
- 238000009825 accumulation Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000000638 solvent extraction Methods 0.000 description 3
- 238000013481 data capture Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013070 change management Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000000059 patterning Methods 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【解決手段】ターゲットとなるシステムを、サーバ構成と、データ加工処理をおこなうためのミドルウェア構成と、ユーザが定義する論理ジョブの階層として捉える。そして、これらを各々をモデル化して保持し、これらで取り得る組み合わせ関係をモデルパタンとして定義しておく。次に、ユーザに論理ジョブのデータのテーブル種別、ジョブの情報を論理ジョブ設計情報として入力させる。そして、モデルパタンと論理ジョブ設計情報に基づき、サーバ毎のミドルウェア環境定義情報とミドルウェア上で動作するジョブ実行プログラム部品を生成する。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、システム開発方法に係り、特に、データベースシステムなどのデータ加工処理をおこなうためのミドルウェアを備え、サーバなどのシステム構成が変更されうるシステム上で実行されるプログラムの開発に用いて好適なシステム開発方法に関する。
【0002】
【従来の技術】
システム開発にあたっては、物理的なシステム構成の層と、論理的なアプリケーション層とを分離して、開発することが重要である。これにより、システム構成の変更があっても、アプリケーションには変更を加えなくてもよくなるからである。
【0003】
例えば、下記の特許文献1の「プログラム実行制御方式」では、プログラムを書き換えをおこなうことなく、スレッド数、CPU数を指定することにより、実行制御の並列、分散の形態を変更できる。
【0004】
【特許文献1】
特開平5−313922号公報
【0005】
【発明が解決しようとする課題】
データウェアハウスシステムに代表される多くの情報系システムでは、業務処理の増加、対象ユーザの拡張、処理対象データ量の増加などの変更が、たびたび発生する。このとき従来システムでは、いずれの変化が生じた場合においても、データ加工処理プログラム、ミドルウェア構成、サーバ構成など、様々なシステム構成要素に対して変更影響が発生する。なお、ここで、ミドルウェアというのは、OSと、アプリケーションソフトウェアの中間に位置し、アプリケーションソフトウェアに対してOSよりも高度で具体的な機能を提供するソフトウェアである。データウェアハウスシステムでは、データ加工処理をサポートするライブラリ群である。
【0006】
以下、図14を用いてあるデータウェアハウスシステムでおこなう処理のモデルについて説明する。
【0007】
図14は、ある業務処理のモデルを説明するための模式図である。
【0008】
例えば、あるデータウェアハウスシステムでは、東京支社とニューヨーク支社の日々の売り上げのデータを蓄積し、週単位で売り上げ計算をおこなっており、この処理をサーバ一台で動作しているものとする。
【0009】
この時システム内部では、例えば、図14に示す一連のデータ加工処理をおこなっている。先ず、それぞれの支社から日々の売り上げデータを、システムの外部データ1401として受け取る。これを外部データ取り込み1402により、システム内部に設けたテーブルである外部データ取り込み1403に格納する。
【0010】
次に、履歴情報蓄積1404をおこない、履歴情報1405にデータを格納する。履歴情報1405には、一日単位の情報ではなく、決められた期間、例えば、二年間の売り上げの履歴情報を格納する。そして、履歴情報1405を入力とし、中間サマリ作成1406によって、例えば、支社別に一週間単位の集計をおこなった中間サマリ1407を作成する。
【0011】
最後に、最終サマリ作成1408により、全支社の売り上げを合計した全社の週売り上げを時系列に管理する最終サマリ1409を作成する。ここで留意する点は、図14に示すデータ加工処理の動作タイミングが異なることである。外部データ取り込み1402と履歴情報蓄積1404は、日々処理をおこなうが、中間サマリ作成1406と最終サマリ1409は、週一回しか処理をおこなわない。そして、こうした処理の実行順序やタイミングは、ジョブ実行管理ミドルウェアによって管理される。
【0012】
さて、このような業務処理を一台のサーバで実行していたものを、処理量の増加、性能向上の要請などの要因により、複数台のサーバ上で、動作させなければならなくなったとする。このとき、以下に述べるような多くの変更作業が発生する。
【0013】
先ず、データ加工処理をそれぞれのサーバにて並列に動作するようプログラムそのものを変更する。例えば、支社が東京とニューヨークにあった場合、東京のデータを一台目のサーバでデータ加工し、ニューヨークのデータを二台目のサーバで加工するようにプログラムを変更する。この変更に伴い、同じテーブル定義を各サーバ上におこない、各サーバで動作するデータ加工プログラムを配置する作業が発生する。
【0014】
そして、テーブル定義の変更などに伴い、それぞれのサーバ上で、プログラムを動作させるためのミドルウェア環境構築も、準備作業と発生する。こうしたミドルウェア環境構築は、各サーバで動作するプログラムの取り扱うデータ量などを考慮しておこなう。
【0015】
さらに、データ加工処理そのものの内容によっては、並列でおこなうことが可能なものとそうでないものがあるため、ジョブ実行順序の変更作業も生じる。例えば、東京支社とニューヨーク支社を総計し、全社売り上げを算出するには、データ加工処理を並列におこなうことはできないため、最終サマリ処理はいずれか一台のマシンで処理をおこなうことになる。こうした並列実行が可能なジョブと単独でのみ実行可能なジョブ同士の待ち合わせ処理を考慮し、ジョブ実行管理ミドルウェアのジョブ実行順序の定義やスケジューリングに対しても変更をおこなう。
【0016】
このように、サーバの台数を変更することにより、上記一連の新たなシステム変更作業が発生するため、既存システム構築時と比較して、時には、二倍以上の開発工数が発生する場合があるという問題点があった。さらに特別な開発環境がない状態で、人手のみでこうしたシステム変更作業をおこなった場合、ジョブ実行順序の不整合やデータ項目名称のエラーなどのミスが多発するおそれがある。このためこのミスを検出するためのテスト作業や、プログラムの修正作業などの工程が不可欠になる。
【0017】
上記従来技術の特許文献1では、このような事態でのシステム開発について対処することは考慮されていない。というのも、従来技術の特許文献1は、プログラムの書き換えをおこなうことなく、スレッド数、CPUを指定することにより、実行制御の並列、分散の形態を変更することができるが、複数台のマシンに実行処理を分散した時のジョブの待ち合わせ処理を考慮したジョブの制御については記載されていない。
【0018】
例えば、処理Aから処理Bといった順番でおこなわれていたデータ加工処理を複数台のサーバに分割した場合に、処理A1、処理A2の双方が同時に終わってから処理B1と処理B2をおこなうようにジョブの実行順序を制御する必要が発生する。
【0019】
従来技術では、こうしたサーバ構成の変更に対してジョブの実行順序を考慮した分散処理がおこなわれていない。また、サーバ構成が変更されたときのミドルウェア配置についても、これを管理する機能をもたないため、ミドルウェアを人手をかけて変更しなければ、サーバ構成の変更はおこなえないことになる。
【0020】
すなわち、現状のデータウェアシステムでは、プログラムの外部仕様そのものは何も変えない場合でも、サーバ構成を変更すると、システム内部の構成要素に多くの変更要因が発生する。そして、システム内部構成の変更をおこなうに当たっては、多くの開発工数が必要になる。このことが、データウェアシステムの容易な構築を妨げる一因となっている。なお、ここで述べた問題はデータウェアシステムに限らず、データ量が増加してシステム構成の変更の必要が生じる可能性のある一連のシステムにおいて共通に発生する問題である。
【0021】
本発明は、上記問題点を解決するためになされたもので、その目的は、データウェアハウスシステムなどのシステム開発において、システム構成が変更になっても、開発工数、テスト工数などアプリケーションの開発にかかる工数を低減できるシステム開発方法を提供することにある。
【0022】
さらに、本発明により、ハードウェアとミドルウェアに熟知している開発者が、モデルパターン登録をおこない、アプリケーション対象業務に熟知している開発者が論理ジョブ設計情報を作成するなど、異なる技術をもつ開発者が、途中の開発作業を並列におこなうことが可能になる。また、既存のモデルパタンを利用することにより、開発者がアプリケーションに依存する論理ジョブ設計情報の作成にのみ専念できるなど開発時に要求される前提知識の低減化を図ることも可能にする。
【0023】
【課題を解決するための手段】
本発明は、単独のジョブを単にパラレル化する従来技術とは異なり、サーバやミドルウェアの構成に応じて、取扱うデータの分割や実行するプログラムの並列化とこれを制御するための実行順序まで含めて変更管理の対象とする。
【0024】
本発明では、開発のターゲットとなるシステムを、プログラムを実行させるサーバのサーバ構成と、データ加工処理をおこなうためのミドルウェア構成と、ユーザが定義する論理ジョブの階層として捉える。そして、システム設計者、ミドルウェアの提供者は、各々をサーバモデル情報、ミドルウェア情報として、論理ジョブモデル情報としてモデル化して保持し、これらで取り得る組み合わせ関係をモデルパタンとして定義しておく。
【0025】
論理ジョブモデル情報としては、論理ジョブのデータの種類を類型化してテーブル種別とし、ジョブの種類を類型化してジョブ種別としてモデル化されている。
【0026】
業務に関するプログラマは、論理ジョブ設計情報として、論理ジョブのテーブル種別と、ジョブの種別の詳細を記載する。
【0027】
そして、モデルパタンと論理ジョブ設計情報に基づき、サーバ毎のミドルウェア環境定義情報とミドルウェア上で動作するジョブ実行プログラム部品を生成する。
【0028】
以上述べた本発明の手法により、サーバ台数やミドルウェアの構成変更に対して、特定の層を変更するのみで、異なるシステム構成上で動作するプログラムを作成することができる。これにより、サーバ台数の変更などがおこなわれた場合に、発生するシステム開発作業の工数を減らすことが可能になる。
【0029】
これにより、情報系システムなどで発生する業務処理の増加、対象ユーザの拡張、処理対象データ量の増加などの変更に応じたシステム変更処理に伴う開発およびテスト作業の工数を低減することができる。
【0030】
【発明の実施の形態】
以下、本発明に係る一実施形態を、図1ないし図14を用いて説明する。
【0031】
〔システム開発方法の概要とシステム構成について〕
先ず、図1および図2を用いて本発明のシステム開発方法の概要と、システム構成について説明する。
図1は、本発明のシステム開発方法の概要の流れ図である。
図2は、プログラムを実行させるためのターゲットなるシステムのシステム構成図である。
【0032】
本発明のシステム開発方法では、図1に示されるように設計情報100と、生成物として実行情報140をデータベース(以下、DB)として管理する。そして、これらを用いてシステム構築処理10をおこなう。
【0033】
本実施形態では、データとしては複数の項目を持つテーブルを例に採り、ジョブとして、データ加工処理を例に採る。
【0034】
設計情報100は、モデル情報107と論理ジョブ設計情報108よりなる。
【0035】
モデル情報107は、システムの構成をモデル化した情報であり、サーバモデル情報101、ミドルウェア情報103、論理ジョブモデル情報105と、それらの関係をあらわすサーバ・ミドルウェア対応関係102、論理ジョブ・ミドルウェア対応関係104と、各モデル情報の組合せの対応関係をパタン化したモデルパタン106よりなる。
【0036】
サーバモデル情報101は、ターゲットとなるプログラムを実行させるサーバをどのような構成にするかというサーバ構成をモデル化した情報である。
【0037】
ミドルウェア情報103は、データ加工をおこなうミドルウェアの構成をモデル化したものである。本発明のミドルウェアとしては、データベースマネージメントシステム(DBMS)、データウェアハウスシステム、ELTツールなどである。
【0038】
論理ジョブモデル情報105は、ユーザが定義する論理ジョブをモデル化した情報である。本発明のシステム開発手法では、論理ジョブをモデル化して、データの種別とジョブの種別を予め定めておき、ユーザは、その中からデータの種別とジョブの種別を選択すればよいようにする。ここで、論理ジョブといっているのは、サーバの構成などのシステムの物理的な構成には影響されないように定義するからである。
【0039】
サーバ・ミドルウェア対応関係102は、サーバモデル情報101とミドルウェア情報103との対応関係を示す情報であり、論理ジョブ・ミドルウェア対応関係104は、論理ジョブモデル情報105とミドルウェア情報103との対応関係を示す情報である。
【0040】
モデルパタン106は、サーバモデル情報101、ミドルウェア情報103、論理ジョブモデル情報105の組み合わせ関係を定めるパターンであり、このモデルパタン106を指定すれば、実行情報140の生成のために必要な情報が得られるようにする。
【0041】
なお、これらのモデル情報107の具体例については後に詳細に説明する。
【0042】
論理ジョブ設計情報は、論理ジョブのデータの種別とジョブの種別の具体的な内容を定める情報である。この情報には、システムの物理的な構成には影響されないようにする。
【0043】
実行情報140は、プログラムを実行させるサーバ上で、実行時に必要な情報であり、ミドルウェア環境定義情報141とジョブ実行プログラム142である。
【0044】
ミドルウェア環境定義情報141は、ミドルウェアを実行させるための情報であり、具体的には、DBMS上で実行させるテーブルの属性などである。ジョブ実行プログラム部品142は、サーバ上でジョブを実行させるために必要になる部品であり、例えば、DBMSのSQL文のソースコード、コマンドのバッチファイル、あるいは、実行形式のモジュールなどである。
【0045】
システム構築処理10は、モデル情報の登録110、論理ジョブ設計情報の登録120、実行環境の構築130よりなる。
【0046】
モデル情報の登録110は、モデル情報107を生成する手順であり、モデル個別情報の登録111とモデル対応情報の登録112からなる。モデル個別情報の登録111は、個々のサーバモデル情報101、ミドルウェア情報103、論理ジョブモデル情報105を登録する手順である。モデル対応情報の登録112は、サーバ・ミドルウェア対応関係102、論理ジョブ・ミドルウェア対応関係と、モデルパタンを登録する手順である。
【0047】
論理ジョブ設計情報の登録120は、モデル情報107から論理ジョブ設計情報108を生成する手順であり、テーブル設計情報の登録121とジョブ設計情報の登録122からなる。テーブル設計情報の登録121は、テーブル種別に対して具体的なテーブル内容、例えば、テーブル名、テーブルの項目などを登録する手順である。論理ジョブ設計情報108は、ジョブ種別に対して具体的なジョブの内容を定める処理であり、例えば、入出力されるテーブル名、処理関数などである。
【0048】
実行環境の構築130は、設計情報100から実行情報140を生成する処理であり、モデルパタンの選択131、実行情報の生成132、サーバ上への実行情報配置処理133からなる。モデルパタンの選択131では、設計情報のモデルパタンを選択して、モデル情報107の中の必要な情報を抜き出す。実行情報の生成132は、モデル情報107を参照して実行情報140を生成する。そして、サーバ上への実行情報配置処理133で、実際にターゲットとなるシステムのサーバ上に、実行情報を配置する。サーバが複数台あるときには、個々のサーバに対して適した実行情報を配置しなければならない。
【0049】
本実施形態のシステム構築処理10において特徴とするところは、サーバ、ミドルウェア構成といった実際の物理構成の定義作業と、物理構成を意識せずにおこなうデータ加工処理の論理ジョブ設計作業が分離しておこなえることにある。
【0050】
論理ジョブ設計情報の登録120では、設計したジョブが一台のサーバでおこなわれるのか、複数台数のサーバ上でおこなうのかの区別を意識せずにテーブル項目の設計や、テーブル間の入出力関係を設計情報として登録することができる。
【0051】
したがって、システム開発の手法としては、モデル情報の登録110をシステム開発のエンジニアがおこない、論理ジョブ設計情報の登録120を業務に精通したプログラマがおこなうことができる。
【0052】
さらに、実行環境の構築130において、選択するモデルパタンを変更するのみで、実行する物理環境、例えば実行時のサーバ台数などを変更した実行情報を生成する。例えば、モデルパタン名を一台サーバ構成から、二台サーバ構成に変更することにより、サーバが二台になったときに対応した実行情報を生成する処理がおこなわれることになる。
【0053】
従来技術における開発環境では、テーブル定義をおこなう際に直ちに表領域の割り当てなど物理構成への設定が求められる場合がある。表領域とは、DBMSでテーブルをハードディスク上の実際の物理領域に割当てるための領域をいう。
【0054】
すなわち、従来技術では、物理的なシステム構成と、論理的なデータ加工処理およびジョブ設計との分離がおこなわれていない。このことが、サーバ構成などを変更すると、システムのデータ加工プログラムやジョブに対して、大幅な変更が発生する原因となっている。多くの変更を、人手による作業でおこない、その変更結果の整合性保証も人手でおこなうことになり、多くの開発工数を要する。
【0055】
しかしながら、本実施形態では物理構成と論理構成を分離しており、こうした分離により、サーバ構成などを変更し、変更後の整合性を保証することが可能になる。これによりシステム開発工数の低減化を図ることができる。
【0056】
次に、図2により本実施形態のシステム構成を説明する。
【0057】
この図2に示した構成において、上部に記載してあるのがプログラムを実行させるターゲットとなる実行用のシステムであり、下部に記載してあるのが開発用のシステムである。もちろん、この両者は分離していてもよい。
【0058】
開発用のシステムとしては、一連のシステム設計作業をおこなう環境として、設計用コンピュータ240と設計用DB250をもつ。
【0059】
そして、設計用コンピュータ240上に、本発明の処理をおこなうシステム構築処理10を配置する。設計用DB250に、図1で示した設計情報100を保持する。
【0060】
そして、実行用のシステムでは、この図2の例では、システムの実行環境として、二台のサーバシステムをもつ。このサーバシステムの構成としては、具体的には、メインサーバ200、メインサーバDB210、サブサーバ220、サブサーバDB230である。メインサーバ200には、システムを動作時に用いるミドルウェアとして、ジョブ実行管理ミドルウェア201、データベース管理ミドルウェア202を配置する。ジョブ実行管理ミドルウェアは、ジョブの実行順序や待ち合わせなどのジョブの実行の制御をするためのミドルウェアである。データベース管理ミドルウェア202は、データ加工処理のためのミドルウェアである。
【0061】
そして、メインサーバDB210には、既に図1に示した実行情報140が配置されている。サブサーバ220およびサブサーバDB230については、メインサーバと同様に構成される。
【0062】
上記で説明した実行環境の構築130により、設計情報100から実行情報140を生成し、サーバ上への実行情報配置処理150により、メインサーバ200およびサブサーバ230の環境に実行情報140を配置する。
【0063】
なお、ここでは、サーバが二台のときの構成を示しているが、一台であっても、二台以上であってもかまわない。なお、メインサーバおよびサブサーバの環境に配置される実行情報140において具体的に定義されるテーブル定義などは、サーバ間の役割分担により、一般に異なる。
【0064】
そして、実際のデータウェアハウスシステムなどにおけるデータ加工処理そのものは、メインサーバ200およびサブサーバ230においておこなわれることになる。
【0065】
〔データ構造の詳細〕
次に、図3および図4を用いて本発明のシステム開発方法に用いられるデータ構造の詳細について説明する。
図3は、モデル情報107の具体例を示す図である。
図4は、論理ジョブ設計情報108の具体例を示す図である。
(I)モデル情報の概略
モデル情報107は、システム構築にあたって必要となるシステムアーキテクチャを階層に分けてモデル化し、このモデルをパタンとして保持する。
【0066】
モデル情報107は、システムアーキテクチャの構成要素をそれぞれモデル化したサーバモデル情報101、ミドルウェア情報103、論理ジョブモデル情報105を持っており、それらの対応関係であるサーバ・ミドルウェア対応関係102、論理ジョブ・ミドルウェア対応関係105も含まれている。
【0067】
実際にシステムを構築するにあたっては、この二つの対応関係によりジョブ実行部品どのサーバ上で動作するか、どのミドルウェア上で実行されるかなどが、最終的に定まるように、これらのデータ構造を設計するようにする。
【0068】
また、モデル情報107には、モデルパタン106も含まれている。このモデルパタン106は、サーバモデル情報101、ミドルウェア情報103、論理ジョブモデル情報105に取り上げられているサーバ、ミドルウェア、ジョブの情報を組合わせて、それをパタンとして定義するものである。
【0069】
例えば、サーバ、ミドルウェア、ジョブの配置パタンとして、以下三つのパタン例などが考えられる。
(1)全てのジョブを1サーバで実行する場合
(2)同じジョブ二台のサーバで対等に実行する場合。例えば、図14で示した一連の処理を可能な限り、各サーバにて並列におこなう。
(3)二台のサーバに実行するジョブの役割分担を行い各々別のジョブを割り当てる場合。例えば、図14において日々行われる処理を小型のサーバAに割り当て、週単位で行われる大規模データの処理を大型のサーバBに割り当てる。
【0070】
実際のシステム構成に当たっては、もっと多くのパターンが考えられる。こうしたパタンのうち、システムの特性に応じて適切なパタン適応することが重要である。
【0071】
そこで、本実施形態では、こうしパターンを管理する情報として、モデル情報107においてモデルパタン106を持つようにする。本実施形態では、以下の具体例でも理解できるように、サーバ・ミドルウェア対応関係102、論理ジョブ・ミドルウェア対応関係105の組み合わせをパターン化することにより、モデルパタンとして実現している。
(II)ミドルウェアに関する説明
次に、本実施形態を理解するために必要になるミドルウェアの前提知識と用語の説明をおこなう。
【0072】
一般に、DBMSなどのミドルウェアでは、処理を効率的におこなうため、処理の実行プロセスを分散するため手段を備えている。しかし、アプリケーション開発者が、直接こうした分散プロセスの配置を意識して開発をおこなうと、開発作業が複雑になり、開発効率が低下する。そこで、ミドルウェアでは、問い合わせおよび結果応答を一元管理するプロセスと、一元管理のプロセスからの命令を分散して実行するプロセスをもつ手段を備えている。これにより、アプリケーション開発者は、分散プロセスを意識せずにアプリケーションを開発でき、システムとしてはプロセスを分散かつ並列におこなうことが可能になる。本実施形態では、問い合わせおよび結果応答を一元管理するプロセスのことを「フロントエンドサーバ」と呼び、「FES」と略記する。そして、分散しておこなわれるプロセスのことを「バックエンドサーバ」と呼び、「BES」と略記する。なお、こうしたミドルウェアの考え方は、多くのミドルウェアにおいて用いられている。なお、本実施形態では、FES、BESといった名称を用いるが、実際の製品においては別の固有名詞で呼ばれている場合もある。こうした場合においても、本実施形態で述べる以下の構成は本質的な変更をおこなうことなく適用可能なものである。また以下では、関係データベース(Relational DataBase)の略記としてRDBを用いる。
【0073】
また、既に触れたように「表領域」とは、DBMSでテーブルをハードディスク上の実際の物理領域に割当てるための領域をいう。
【0074】
本実施形態のミドルウェアは、二種類のものが想定されており、データ加工処理をおこなうRDBに関するミドルウェアと、データ処理の実行順序やタイミングを定義し、制御するジョブ実行管理ミドルウェアである。
(III)論理ジョブに関する説明
次に、本実施形態を理解するために必要な論理ジョブの説明をおこなう。
【0075】
本実施形態で論理ジョブといっているのは、システムの物理的な構成などに影響されることなく、ユーザが定義できるジョブという意味であり、論理ジョブは、データに関するテーブル種別と、ジョブ種別により定義することができる。
【0076】
図14に沿ってこの業務の流れを説明すると、以下のようになる。
【0077】
例えば、いくつかの支社からの売上を集計する処理を想定する。この処理では、まずそれぞれの支社から日々の売り上げデータを、システムの外部データ1401として受け取る。これを外部データ取り込み1402により、システム内部に設けたテーブルである外部データ取り込み結果1403に格納する。
【0078】
次に、履歴情報蓄積1404をおこない、履歴情報1405にデータを格納する。履歴情報1405には、一日単位の情報ではなく、決められた期間、例えば2年間の売り上げの履歴情報を格納する。
【0079】
そして、履歴情報1405を入力とし、中間サマリ作成1406によって、例えば、支社別に一週間単位の集計を行った中間サマリ1407を作成する。
【0080】
最後に、最終サマリ作成1408により、全支社の売り上げを合計した全社の週売り上げを時系列に管理する最終サマリ1409を作成する。ここで留意する点は、図14に示すデータ加工処理の動作タイミングが異なることである。外部データ取り込み1402と履歴情報蓄積1404は、日々処理をおこなうが、中間サマリ作成1406と最終サマリ1409は、週一回しか処理をおこなわない。そしてこうした処理の実行順序やタイミングは、ジョブ実行管理ミドルウェアによって管理される。
【0081】
ところで、図14に示したテーブルの種類とジョブの種類は、例としてあげた支社からの売上情報集計処理に限らず、一般的なデータ加工処理をおこなうためのモデルとして扱うことができる。
【0082】
このテーブルの種類を、本実施形態では、テーブル種別として扱い、ジョブの種類をジョブ種別として扱う。
【0083】
図14の例では、テーブル種別として考えられるのは、「外部データ」、「外部データ取り込み結果」、「履歴情報」、「中間サマリ」、「最終サマリ」である。
【0084】
ジョブ種別として考えられるのは、「外部データ取り込み」、「履歴情報蓄積」、「中間サマリ作成」、「最終サマリ作成」である。
(IV)モデル情報の具体例
図3に示すようにサーバモデル情報101はサーバ名と説明の項目よりなり、サーバ名が識別子として与えられる。
【0085】
ミドルウェア情報103は、RDB用FES情報301、RDB用BES情報302、表領域情報303と、ジョブ用FES情報304、ジョブ用BES情報305と、ジョブ格納領域306よりなる。
【0086】
RDB用FES情報301、RDB用BES情報302、表領域情報303は、RDBのミドルウェアに関する情報である。
【0087】
RDBのミドルウェアでは、SQLなどの実行命令を一元的に受け付けるためのプロセスとして、FESが立ち上がっており、次にこの受け付けた処理を複数のマシンおよびCPUにおける異なるプロセスとして実行するために複数のBESを立ち上げる。このBESによりFESで受付つけた処理を分散して処理することになる。そしてBESが処理をおこなうにあたっては、BESがデータの入出力管理をおこなう対象領域として表領域を定義する。RDB用FES情報301、RDB用BES情報302、表領域情報303の各々のテーブルは、以上述べたFES、BESおよび表領域の定義情報を保持するために用いる。
【0088】
ジョブ用FES情報304、ジョブ用BES情報305と、ジョブ格納領域306は、ジョブ実行管理ミドルウェアに関する情報である。
【0089】
RDBと同様に分散処理をおこなうために、ジョブ実行管理ミドルウェアでも、FES、BESが設けられており、BESの管理対象とする領域としてジョブ格納領域がある。こうした情報を、ジョブ用FES情報304、ジョブ用BES情報305と、ジョブ格納領域306の各々のテーブルに保持することにより管理している。
【0090】
また、論理ジョブモデル情報108は、テーブル種別309、ジョブ種別310よりなる。
【0091】
この論理ジョブモデル情報108は、上で説明したテーブル種別とジョブ種別を定義するものであり、テーブル種別309には、テーブルの役目ごとにテーブル種別の名称が、ジョブ種別310には、ジョブの役目ごとにジョブ種別の名称が格納される。
【0092】
サーバ・ミドルウェア対応関係102は、サーバモデル情報101と、ミドルウェア情報103を関係付ける情報である。
【0093】
サーバ・ミドルウェア対応関係102には、先ず、サーバモデル情報101のサーバ種別101との対応関係を保持するため、項目としてサーバ名を持つ。このサーバ名に基づいて、サーバモデル情報101との関連を保持する。
【0094】
次にサーバ・ミドルウェア対応関係102には、ミドルウェア情103のRDB用FES情報301、RDB用BES情報302、ジョブ用FES情報304、ジョブ用BES情報305に対する関連を保持するため、データ項目としてミドルウェア区分、FES/BES区分、名称の項目をもつ。これら三つの項目を用いて、サーバモデル情報101と対応付けられているテーブルが、RDB用FES情報301、RDB用BES情報302、ジョブ用FES情報304、ジョブ用BES情報305のいずれであるかを区別する。
【0095】
例えば、ミドルウェア区分=RDB、FES/BES区分=FES、であればRDB用FES情報301と対応付けられていることを意味する。そして、このときのサーバ・ミドルウェア対応関係102の名称に格納された値に基づき、RDB用FES情報302のどのレコードと対応付けられているかを特定することになる。
【0096】
論理ジョブ・ミドルウェア対応関係104は、論理ジョブモデル情報108と、ミドルウェア情報103を関係付ける情報であり、ミドルウェア対応関係テーブル種別・表領域対応関係307と、ジョブ種別・ジョブ格納領域対応関係308よりなる。
【0097】
テーブル種別・表領域対応関係307は、表領域情報303とテーブル種別309との対応関係を保持する。ジョブ種別・ジョブ格納領域対応関係308は、ジョブ格納領域306とジョブ種別310との対応関係を保持する。
(IV)論理ジョブ設計情報の具体例
論理ジョブ設計情報108では、論理ジョブ、すなわち、データとそのデータを取り扱うジョブについての詳細な情報を定める情報であり、具体的なサーバやミドルウェアの配置とは独立にモデル化した情報を持つものである。
【0098】
論理ジョブ設計情報108では、あるテーブルのデータ項目が、どのようにデータ加工処理されるかといったジョブの具体的な処理を定義する情報である。ただし、ジョブがどのサーバ上のどのミドルウェア上で動作するかといった、サーバ構成やミドルウェア構成に関係する情報は定義されない。すなわち、論理ジョブ設計情報108は、サーバやミドルウェアの構成からは独立したレベルのジョブ設計情報を管理するための情報である。
【0099】
図4に示すように、論理ジョブ設計情報108は、テーブル設計情報410、ジョブ設計情報420よりなる。
【0100】
テーブル設計情報410は、テーブル種別に関する設計情報を定義するものである。
【0101】
テーブル設計情報410は、テーブル411、項目412、インデックス413、インデックス項目414よりなる。テーブル411のテーブル種別名には、図14の例で挙げたような「履歴情報」などのテーブル種別名を格納する。
【0102】
テーブル分割タイプには、テーブル分割タイプ分類表710(図7:後述)に記述されるテーブル分割タイプを格納する。分割基準には、テーブル分割をおこなう時の基準として何を用いるかを識別するコードを格納する。本実施形態では、「なし」「週」「月」「半年」「年」いずれかの値を格納するものとする。
【0103】
基準項目は、実際のテーブル分割をおこなうに当たって基準となる値を格納しているテーブル上の項目名を格納するものである。例えば「年月日」といった項目名を格納することになる。この値は、項目412の項目名として存在する必要がある
ジョブ設計情報420は、データ加工処理と、このデータ加工処理のジョブ実行順序を定義するための情報である。ジョブ設計情報420は、図4に示すように、ジョブ421、項目マッピング422よりなる。ジョブ421のジョブ種別には、図14に示す「履歴情報作成」などのジョブ種別名を格納する。ジョブ421のジョブ分割タイプには、ジョブ分割タイプ分類表720(図7:後述)に記載されるジョブ分割タイプを格納する。
【0104】
なお、テーブル分割とジョブ分割については、後に詳細に説明する。
(V)実行情報
実行情報140では、実際のシステムとして動作するために必要な情報として生成されるものであり、ミドルウェア環境定義情報141、ジョブ実行プログラム部品142よりなる。
【0105】
ミドルウェア環境定義情報141には、各ミドルウェアが特定サーバ上で動作するための定義情報を保持する。例えば、DBMSでは、一般にシステムを稼動するための前準備として、データベースエリアをどのサーバに配置するか、データベースエリア上にどのようにテーブル配置をおこなうか、について定義しておくことが必要である。ミドルウェア環境定義情報141は、こうした定義情報を含むものである。
【0106】
ジョブ実行プログラム部品142は、ミドルウェア環境定義情報141の定義する環境上で実行されるプログラム部品群である。例えば、データ加工処理そのものをおこなうプログラム、および、これらプログラムの実行順序を定義するジョブ定義情報を含んだ情報である。
【0107】
〔システム開発のためのユーザインタフェース〕
次に、図5および図6を用いて本発明のシステム開発方法に係るユーザインタフェースについて説明する。
図5は、メイン画面500、モデル個別情報登録画面510、モデル対応情報登録画面520を示す模式図である。
図6は、論理ジョブ定義画面610、テーブル設定情報定義画面620、ジョブ設定情報定義画面630を示す模式図である。
【0108】
メイン画面500は、ボタンとして、モデル情報登録501、モデル対応関係登録502、論理ジョブ定義503、終了504をもつ。操作者が、マウスなどによりボタンモデル情報登録501を選択すると、モデル個別情報登録画面510を表示する。操作者が、モデル対応関係登録502を選択すると、モデル対応関係登録画面520を表示する。操作者が、論理ジョブ定義503を選択すると、図6の論理ジョブ定義画面610を表示する。操作者が、終了504を選択すると、本実施形態の処理を終了する。
【0109】
モデル個別情報登録画面510は、図1で示したサーバモデル情報101、ミドルウェア情報103、論理ジョブモデル情報105の個々のモデル情報を登録する画面である。モデル個別情報登録画面510は、テーブルリスト511、テーブル詳細表示領域512を持つ。テーブルリスト511には、図3に示したテーブル名称がリスト表示され、このリストから選択されたテーブルの内容を、テーブル詳細表示領域512に表示する。モデル個別情報登録画面510はボタンとして、登録513、追加514、削除515を持っている。操作者が、これら一連ボタンを操作することにより、テーブル詳細表示領域512に表示されている対象テーブルを編集できる。操作者が、ボタン戻る516を選択すると、モデル個別情報登録画面510を画面を非表示にし、メイン画面500を表示する。
【0110】
モデル対応関係登録画面520は、図1で示したサーバ・ミドルウェア対応関係102と論理ジョブ・ミドルウェア対応関係104の個々のモデル間の関係を登録する画面である。モデル対応関係登録画面520は、モデルパタン名523、対応関係リスト521、テーブル表示領域522、対応関係アロー523、テーブル表示領域B523をもつ。モデルパタン名523では、対応関係の組み合わせをモデルパタンとして登録する際に用いるモデルパタン名を選択できる。必要に応じて編集ボタンを押すことにより、モデルパタン名の追加をおこなうことができる。
【0111】
対応関係リスト521には、図3に示した複数テーブル間の対応関係を表す名称をリスト表示する。対応関係リスト521から対応関係の名称を選択すると、対応関係に応じたテーブルの内容を、テーブル表示領域A522とテーブル表示領域B523に表示する。また、これらテーブルのレコード同士の対応関係を、対応関係アロー523により、画面上に表示する。対応関係アロー523は、テーブル表示領域A522とテーブル表示領域B523の間を結ぶ線として描画されるものであり、マウス操作などにより、新たに描画したり削除したりすることができる。モデル対応関係登録画面520は、ボタンとして、登録525、削除526を持ち、これを用いて対応関係アローの登録および削除をおこなう。ボタン戻る527を選択すると、モデル対応関係登録画面520を非表示にし、メイン画面500を表示する。
【0112】
図6に示される論理ジョブ定義画面610は、論理ジョブ設計情報108を定義するための画面である。論理ジョブ定義画面610は、モデルパタンを指定するためにモデルパタン名614をもち、ここには登録されているモデルパタン名を、プルダウン形式で一覧表示する。そして、本画面は、メニューとして、テーブル611、ジョブ612、アロー613、削除614をもつ。また、データフロー図を描画するためのデータフロー描画領域618をもつ。
【0113】
そしてこれらテーブル611、ジョブ612、アロー613のメニューをマウス選択して、データフロー描画領域618に、テーブル、ジョブ、アローを表すアイコンを配置することができる。例えば、操作者がメニューのテーブル611を選択し、データフロー描画領域618上をマウスでクリックすると、テーブルアイコン601を、データフロー描画領域上に配置することができる。同様に、操作者がメニューのジョブ612を選択し、データフロー描画領域618上をマウスでクリックすると、ジョブアイコン602を、データフロー描画領域618上に配置することができる。また、操作者がメニューのアロー613を選択し、テーブルアイコン601とジョブ612をマウスにより対応付ける操作をおこなうと、アローライン603を、データフロー描画領域615上に描画する。そして、この描画にともなって、論理ジョブ設計情報108が更新される。
【0114】
なお、この画面では、モデルパタン名615により、既に図5のモデル対応情報登録画面520により登録してあるモデルパタン名を選択できる。論理ジョブ定義画面610ではモデルパタン名の編集はおこなえず、選択のみが可能である。
【0115】
さらに、論理ジョブ定義画面610には、ボタンとして、実行情報生成616、削除614、戻る617をもつ。実行情報生成616を選択すると、画面上に表示されている論理ジョブ設計情報108と、選択したモデルパタンに基づいて、図1の実行情報140を生成する。操作者が、画面上のアイコンまたはアローをマウスで選択し、次に、削除617をおすと、選択されたアイコンまたはアローに対応する情報を、論理ジョブ設計情報108から削除する。ボタンの戻る616を選択すると、論理ジョブ定義画面610を非表示にし、メイン画面500を表示する。
【0116】
データフロー描画領域618により、ジョブの入出力と実行順序を定義することができる。
【0117】
テーブルアイコン601をマウスでクリックすると、テーブル設定情報定義画面620を画面上に表示する。この画面を用いて、テーブル名などテーブル設定にかかわる情報を登録できる。編集中のテーブルが、テーブル種別のいずれに属するのかを、テーブル種別名622において指定する。さらに分割種別624では、このテーブルを分割するときの種別を指定する。
【0118】
本実施形態では、「なし」「週」「月」「半年」「年」のいずれかを指定する。そして、分割種別624に「なし」以外を指定した時には、分割基準項目625に値の入力をおこなうことが可能になる。分割基準項目625には、テーブル分割をおこなう際、分割の基準となる値を実際に格納しているテーブル上の項目名を入力する。テーブル分割処理を実際におこなうにあたっては、テーブルを分割するための基準となる値が必要になる。例えば、5年間の情報をもつテーブルを分割しようとする方法として1年ずつのデータを保持するテーブルを五つ作成することが考えられる。このようにテーブルを分割するために用いる制約条件を、分割範囲626として入力する。
【0119】
なお、テーブルの分割については、後に詳細に説明する。
【0120】
このテーブル設定情報定義画面620において入力された情報は、図4に示したテーブル設計情報410として格納される。テーブル設定情報定義画面620において、ボタンの戻るを選択すると、論理ジョブ定義画面610に戻る。
【0121】
同様に、ジョブアイコン602をマウスでクリックすると、ジョブ設計情報定義画面630を画面上に表示する。この画面を用いて、ジョブ名などジョブ設定にかかわる情報を登録できる。ジョブ設計情報定義画面630では、入出力のテーブル項目を画面に表示し、これらのテーブル間の対応関係を画面上のラインで定義する。編集中のジョブが、ジョブ種別のいずれに属するのかを、ジョブ種別名632において指定する。ジョブ設計情報定義画面630において入力された情報は、図4に示されたジョブ設計情報420として格納される。ジョブ設計情報定義画面630においてボタンの戻るを選択すると、論理ジョブ定義画面610に戻る。
【0122】
〔テーブル分割とジョブ分割について〕
次に、図7ないし図9を用いてテーブル分割とジョブ分割の概念について説明する。
図7は、テーブル分割タイプ分類表710とジョブ分割タイプ分類表720を示す図である。
図8は、分割タイプ判定ルール表810と補正判定ルール表820を示す図である。
図9は、テーブル分割タイプの優劣関係を示す模式図である。
【0123】
本発明は、サーバ構成とミドルウェア構成の情報を定義し、論理ジョブとしてデータの種別とジョブの種別を定義し、それを元にしてシステムでプログラムを実行させるための実行情報140を生成するものであった。
【0124】
このように定義したユーザが設計情報として入力したデータとジョブをシステムに適合するように、加工する手法の一例として、テーブル分割とジョブ分割がある。ここでいうテーブル分割とは、テーブルのレコードの部分を分割したものである。また、ジョブ分割とは、同じ処理を別のプロセスとして発生させ実行させることである。
【0125】
例えば、論理ジョブ設計情報としてテーブルTBLAからテーブルTBLBへの加工処理ジョブJOBAを定義したものとする。このジョブAを実際の動作環境でのジョブに変換するにあたっては、このジョブの分割し、実行多重度を上げ、システム実行時の性能向上を図ることが考えられる。これは、本実施形態の図2の構成のように二台のサーバでジョブを分割するようにして、実行する場合がこれに該当する。
【0126】
より具体的には、例えば、以下のような変更を実装時におこなうことがある。
・テーブルTBLAとまったく同じテーブル構造をもつTBLA_1、TBLA_2を定義する。
・テーブルTBLBとまったく同じテーブル構造をもつTBLB_1、TBLB_2を定義する。
・JOBAと同様な処理をおこなうJOBA_1、JOBA_2を、TBLA_1とTBLB_1、TBLA_2とTBLB_2の間に定義する。
【0127】
先ず、同じテーブルがDBの表領域においてどのように配置されるかについても、いくつかのパタンがある。
【0128】
例えば、一つのテーブルを、そのままひとつの表領域11に割り当てる場合がある(図7におけるテーブル分割パタンT1−R1)。次に、ひとつのテーブルを、上記のパタンのように分割し、複数の表領域1,2に各々割り当てる場合がある(図7におけるテーブル分割パタンTN−RN)。さらに、ひとつのテーブルを複数の表領域に割り当てる場合もある(図7におけるテーブル分割パタンT1−RN)。
【0129】
ジョブの分割のパタンは、テーブル分割と結びついたものである。
【0130】
先ず、入出力のテーブルいずれも分割できない場合がある(図7におけるジョブ分割パタンJ1−11)。また、ジョブおよび入出力双方のテーブル分割をおこなえる場合がある(図7におけるジョブ分割パタンJN−NN)。一方、入力側のテーブルは分割できても、出力側のテーブルは分割できない場合がある(図7におけるジョブ分割パタンJN−N1)。
【0131】
以上、論理ジョブ設計情報108定義時に、ジョブおよび分割できるか否かについて、パタン化できる。この判定をおこなうための前提条件と判定条件を記載したものが、図8に示した分割タイプ判定ルール表810である。
【0132】
例えば、入力テーブル分割条件が「指定」され、出力テーブル分割条件も「指定」されたとする。また、分割条件の関係が「入力と出力テーブルの分割条件が同じ」であったとする。ここで、分割条件の例としては、図6のテーブル設定情報定義画面620で、例えば、「年」データでテーブルを分割し、「2002年」と「2003年」に生成されたレコードにテーブルを分割すると指定することが考えられる。この場合には、ジョブ分割タイプは、「JN−NN」である。
【0133】
この判定ルール表では、分割条件が設定されないときには、テーブル分割をおこなわないものとする。
【0134】
入力テーブル分割条件が「指定」され、出力テーブル分割条件は「未指定」のときには、ジョブ分割タイプは、「JN−N1」である。
【0135】
また、ジョブのテーブルの分割を定める処理のときには、ジョブ単位に逐次おこなうため、出力テーブルであるものが別のジョブでは入力テーブルとして利用される。このため、出力テーブルとして扱った際に判定したテーブル分割タイブと、入力テーブルとして扱った際に判定したテーブル分割タイプが異なる場合がある。この場合には、図9に示す優劣関係に基づいて、優位である側のテーブル分割タイプを最終的な判定とする。この図では、矢印の先にあるテーブル分割タイプが優先である。この優劣関係では、あるテーブル分割タイプが矛盾したタイプが判定されたときには、できるだけテーブル分割をおこなわないようにしている。例えば、「T1−R1」の全くテーブル分割をおこなわないタイプは、「TN−R1」と「TN−RN」に優先している。
【0136】
また、ジョブ単独ではテーブル分割タイプとジョブ分割タイプが定まらない場合がある。例えば、ひとつのテーブルが入力テーブルとしても出力テーブルとしても利用される場合には、前のジョブの出力テーブルとしては分割可能でない場合があっても、次のジョブの入力テーブルとしては分割可能である場合がある。本実施形態では、こうした状況を解決するために、いったん仮のテーブル分割タイプとジョブ分割タイプを定め、これを図7の補正判定ルール表820に示した補正ルールで修正する処理をおこなう。
【0137】
例えば、JobAとJobBがこの順におこなわれ、JobAの出力テーブルがJobBの入力テーブルとして受け渡されるとする。JobBの入力テーブルの分割タイプとして、「TN−RN」で分割可能と判定されたとする。そして、JobAの入力テーブルの分割タイプとして、「T1−R1」でテーブル分割できないと評価されたとする。
【0138】
このときのJobAのジョブ分割タイプを定めるときの条件は、図7の補正判定ルール表820で♯3の例にあたり、ジョブ入力テーブルとして、「T1−R1」でテーブル分割できない場合であり、ジョブの出力テーブルとして、「TN−RN」でテーブルを分割できる場合である。
【0139】
このときには、該当するパターンは、図7のジョブ分割タイプにはないので、JobAのジョブ分割タイプは、「J1−11」で分割をおこなわないように補正する。これによって、結局、JobAの出力テーブル、すなわち、JobBの入力テーブルは、分割されずひとつのジョブで処理されることになる。これは、あるジョブで入力テーブルが一つのときには、出力テーブルの分割をおこなっても、性能向上にはさして寄与しないからである。
【0140】
〔システム開発方法のシステム構築処理の詳細〕
次に、これまで説明してきた図1と、図5および図6を参照してモデル情報の登録、論理ジョブ設計情報の登録、実行環境の構築の処理について説明する。
【0141】
図1に示したモデル情報の登録110は、モデル個別情報の登録111とモデル対応関係の登録112からなる。
【0142】
モデル個別情報の登録111では、先ず、操作者が、図5のメイン画面500からボタンのモデル個別情報登録501を選択し、モデル個別情報登録画面510を呼び出す。
【0143】
そして、モデル個別情報登録画面510を用いて、図3に示したモデル情報107のサーバモデル情報101とミドルウェア情報103と論理ジョブモデル情報108の登録をおこなう。
【0144】
モデル対応関係の登録112では、先ず操作者が、図5に示したメイン画面500からボタンのモデル対応関係登録502を選択し、モデル対応関係登録画面520を呼び出す。そして、モデル対応関係登録画面520を用いて、図3に示したおけるサーバ・ミドルウェア対応関係102、論理ジョブ・ミドルウェア対応関係104の登録をおこなう。
【0145】
論理ジョブ設計情報の登録120では、テーブル設計情報の登録121、ジョブ設計情報の登録122をおこなう。これらの処理は、図6に示した論理ジョブ定義画面610を用いておこなう。既に述べたように、論理ジョブ定義画面610からは、テーブル設定情報定義画面620と、ジョブ設計情報定義画面630を呼び出す。そして、テーブル設定情報定義画面620の内部処理として、テーブル設計情報の登録121をおこない、画面上で入力された情報を、図4に示したテーブル設計情報410に登録する。
【0146】
次に、ジョブ設計情報定義画面630の内部処理として、ジョブ設計情報の登録122をおこない、画面上で入力された情報を、図4に示したジョブ設計情報420に登録する。なお、このジョブ設計をおこなうにあたっては、既に図6の画面説明において述べたように、ジョブおよびテーブルの種別を指定したり、テーブル分割をおこなう際に必要とする分割基準や分割項目についての入力をおこなう。
【0147】
次に、実行環境の構築130では、モデルパタンの選択131、実行情報の生成132、サーバ上への実行情報配置処理133をおこなう。
【0148】
モデルパタンの選択131では、操作者が、図6に示した論理ジョブ定義画面610のモデルパタン名615において、モデルパタン名を指定する。システム側はこの指定されたモデルパタンをメモリ上に記憶する。
【0149】
そして、操作者が、図6の論理ジョブ定義画面610における実行情報生成618を選択すると、実行情報の生成132をおこない、実行情報140を生成する。この実行情報の生成132については、以下で詳細に説明する。
【0150】
そしてサーバ上への実行情報配置処理133では、図2に示したように、実行情報140を、実行環境のサーバへ配置する処理をおこなう。なお、この処理は、ファイル転送などで自動的におこなうようにしてもよいし、媒体に格納してインストールする形態でもよい。
【0151】
〔実行情報の生成132の処理の詳細〕
次に、図10ないし図13を用いて実行情報の生成132の処理の詳細について説明する。
図10は、実行情報の生成132の処理を示すフローチャートである。
図11は、ジョブ・テーブル分割タイプの決定1010の処理を示すフローチャートである。
図12は、ミドルウェア環境定義情報の生成1020の処理を示すフローチャートである。
図13は、ジョブ実行プログラム部品の生成1030の処理を示すフローチャートである。
【0152】
実行情報の生成132の処理は、図10に示されるように、ジョブ・テーブル分割タイプの決定1010、ミドルウェア環境定義情報の生成1020、ジョブ実行プログラム部品の生成1030が実行される。
【0153】
先ず、図11によりジョブ・テーブル分割タイプの決定1010の処理について説明する。
【0154】
この処理では、設計情報として定義したジョブから実行情報を作成するにあたり、既に説明したテーブル分割タイプとジョブ分割タイプに対する判定をおこなう。この判定をおこなうために、既に説明した図8に示した分割タイプ判定ルール表810を利用しておこなう。
【0155】
先ず、図4に示したジョブ421から個別のジョブ情報を読み取る。そして、この各々ジョブに対応付けられている入力テーブルおよび出力テーブルを取得する。入力テーブルと出力テーブルの詳細は、ジョブ421に対応する項目マッピング422における入力テーブル名、出力テーブル名を検索条件としてテーブル設計情報410を検索することで得られる(ステップ1101)。
【0156】
次に、図7に示したテーブルおよびジョブの分割タイプを、図8に示す分類タイプ判定ルール表810に基いて定める。このテーブルで示す前提条件がどのように成立するかで、ジョブの分割タイプとテーブルの分割タイプを定める(ステップ1102)。
【0157】
次に、図8に示した補正判定ルール表に基づき、ジョブ分割タイプの補正処理をおこなう(ステップ1103)。これにより、ジョブとテーブルの分割タイプに矛盾が生じないように補正する。
【0158】
次に、図12によりミドルウェア環境定義情報の生成1020の処理について説明する。
【0159】
先ず、設計情報100からRDBミドルウェア関連情報を取得し、RDBミドルウェア環境情報の生成をおこなう(ステップ1201)。
【0160】
この処理をおこなうにあたり、先ず、現在指定されているモデルパタン名に基づいて、サーバ・ミドルウェア対応関係102とテーブル種別・表領域対応関係307から該当する対応関係を得る。そして、この対応関係をたどることにより、RDBのFESおよびBESそして表領域の設定を各々RDB用FES情報301、RDB用BES情報302、表領域情報303から取得する。これらの情報を得た後、RDBに対するFES、BES、表領域をどのサーバにどのように割り当てるかを定義したRDBミドルウェア環境情報の生成をおこなう。
【0161】
次に、RDBと同様にして、ジョブ実行ミドルウェアに対する環境定義情報生成する(ステップ1201)。
【0162】
最後に、図13によりジョブ実行プログラム部品の生成1030の処理について説明する。
【0163】
先ず、以下のことに注意する。
【0164】
ジョブ設計情報420は、項目マッピング422の入力テーブル名および出力テーブル名を利用することにより、テーブル設計情報410を参照することが可能である。また、論理ジョブ設計情報108も、図1に示すように論理ジョブモデル情報105、そして、論理ジョブ・ミドルウェア対応関係104を経由することにより、間接的にミドルウェア情報103と関連づいている。また、ジョブ設計情報108は、同様に間接的にサーバモデル情報101と対応づいている。このことは、論理ジョブ設計情報108から必要に応じて、ミドルウェア情報やサーバ構成の情報を取得できることを意味している。以下ではこうした間接的な対応を用いて、システム環境に応じたジョブ実行プログラム部品の生成をおこなうものである。
【0165】
先ず、ジョブ設計情報420をメモリ上に読み込む(ステップ1301)。そして、各ジョブに対する入力テーブルと出力テーブルの設計情報を、テーブル設計情報410より得る。
【0166】
次に、ジョブ設計情報420に格納されているジョブ分割タイプと、テーブル設計情報410に格納されているテーブル分割タイプと、テーブル設計情報410によって与えられている項目マッピング422に基づき、データ加工処理をおこなうプログラムを生成する。そして、このデータ加工プログラムをジョブ実行プログラム部品142として出力する(ステップ1301)。
【0167】
例として、データベースにおけるSQL言語を用いてこのジョブ実行プログラムを生成する場合を説明する。先ず、テーブル分割のルールに基づいて、必要であればテーブル名に分割番号を付与し、このテーブル定義情報をSQLとして生成する。次に、データ加工処理を入力テーブル名と出力テーブル名および項目間の対応に基づいて生成する。ここで必要な情報は、テーブル設計情報410とジョブ設計情報420から得ることができる。次に、同じ項目からなるテーブルを複数に分割した場合、各々のテーブルで処理対象とするデータを選択するための検索条件が必要になる。
【0168】
例えば、5年間のデータを保持するテーブルを、それぞれ一年間のデータを保持する5つのテーブルに分割する場合である。こうした場合には、分割したテーブルには、N年前(Nは0から4の値)のデータを保持するための検索条件をSQLの検索条件として追加する。検索条件の対照となる項目名称は、テーブル411の分割基準項目として得ることができる。また、分割にあたって指定する絞込み数値については、テーブル411の分割範囲で与えられた値を用いて定めることができる。以上により、テーブル定義と、テーブル間のデータ加工処理をおこなう部品を作成できる。なお、テーブル定義を生成するには、具体的な表領域およびサーバ名が必要になるが、これについては、注意として述べた間接的な関連を用いて、ミドルウェア情報103やサーバモデル情報101から必要な情報を取得する処理をおこなう。
【0169】
次に、ジョブ421の実行順序とジョブ分割タイプに基づいて、テーブル加工処理の実行順序を制御するための、ジョブ構成情報を生成する(ステップ1303)。ここでいうジョブ構成情報とは、各々のジョブの実行順序と、各ジョブにおいてテーブル間データ加工処理を呼び出すかを定めたものである。このジョブで呼び出されるテーブル間データ加工処理は、ステップ1302で生成したものである。前ステップと同様に、必要に応じて、間接的な関連を用いて、ミドルウェア情報103やサーバモデル情報101から必要な情報を取得する処理をおこない、この取得結果を利用して本ステップの生成処理をおこなう。
【0170】
〔本実施形態のシステム開発方法の特徴〕
本実施形態では、システム構成をサーバ層、論理ジョブ層、ミドルウェア層の三つの層として捉え、これらをモデル化し、これら各層の対応関係をモデルパタンとして保持する。次に、システム構成モデルに対して、個別システムの設計情報を入力する。そして、システム構成モデルと個別システムの設計情報に基づき、サーバ毎のミドルウェア環境定義情報とミドルウェア上で動作するジョブ実行プログラム部品を生成する。
【0171】
これにより情報系システムなどで、発生する業務処理の増加、対象ユーザの拡張、処理対象データ量の増加などの変更に応じたシステム変更処理に伴う開発およびテスト作業の工数を低減化することが可能になる。
【0172】
【発明の効果】
本発明によれば、データウェアハウスシステムなどのシステム開発において、システム構成が変更になっても、開発工数、テスト工数などアプリケーションの開発にかかる工数を低減できるシステム開発方法を提供することができる。
【図面の簡単な説明】
【図1】本発明のシステム開発方法の概要の流れ図である。
【図2】プログラムを実行させるためのターゲットなるシステムのシステム構成図である。
【図3】モデル情報107の具体例を示す図である。
【図4】論理ジョブ設計情報108の具体例を示す図である。
【図5】メイン画面500、モデル個別情報登録画面510、モデル対応情報登録画面520を示す模式図である。
【図6】論理ジョブ定義画面610、テーブル設定情報定義画面620、ジョブ設定情報定義画面630を示す模式図である。
【図7】テーブル分割タイプ分類表710とジョブ分割タイプ分類表720を示す図である。
【図8】分割タイプ判定ルール表810と補正判定ルール表820を示す図である。
【図9】テーブル分割タイプの優劣関係を示す模式図である。
【図10】実行情報の生成132の処理を示すフローチャートである。
【図11】ジョブ・テーブル分割タイプの決定1010の処理を示すフローチャートである。
【図12】ミドルウェア環境定義情報の生成1020の処理を示すフローチャートである。
【図13】ジョブ実行プログラム部品の生成1030の処理を示すフローチャートである。
【図14】ある業務処理のモデルを説明するための模式図である。
【符号の説明】
10…システム構築処理
100…設計情報
110…モデル情報の登録
120…論理ジョブ設計情報の登録
130…実行環境の構築
140…実行情報。
Claims (10)
- プログラムを実行させるシステムのシステム開発方法において、
前記プログラムを実行させるシステムを、プログラムを実行させるためのサーバのサーバ構成と、データ加工処理をおこなうためのミドルウェア構成と、ユーザが定義する論理ジョブの階層として捉え、
前記サーバ構成をサーバモデル情報として、前記ミドルウェア構成をミドルウェア情報として、前記論理ジョブを論理ジョブモデル情報としてモデル化して保持し、
前記サーバモデル情報と前記ミドルウェア情報と前記論理ジョブモデル情報の対応関係をモデルパタンとして定義して、
ユーザに前記論理ジョブのデータとデータ加工処理について論理ジョブ設計情報を定義させて、
前記モデルパタンと、前記論理ジョブ設計情報を関連付けに基づいて、前記サーバ構成と前記ミドルウェア構成に従ったシステムで実行させるプログラムのためのミドルウェア環境定義情報と、ミドルウェア上で動作するプログラム部品とを生成することを特徴とするシステム開発方法。 - 前記ミドルウェア環境定義情報と、前記ミドルウェア上で動作するプログラム部品とを生成するに際して、
前記論理ジョブ設計情報で定義されたデータを格納するためのテーブルのテーブル分割パタンと、データ加工処理のジョブ分割パタンを判定しておこなうことを特徴とする請求項1記載のシステム開発方法。 - 前記論理ジョブモデルとして、テーブル種別を含み、ユーザが論理ジョブ設計情報として、前記テーブル種別を設定することを特徴とする請求項1記載のシステム開発方法。
- 前記論理ジョブモデルとして、ジョブ種別を含み、ユーザが論理ジョブ設計情報として、前記ジョブ種別を設定することを特徴とする請求項1記載のシステム開発方法。
- プログラムを実行させるシステムのシステム開発方法において、
前記プログラムを実行させるシステムを、プログラムを実行させるためのサーバのサーバ構成と、データ加工処理をおこなうためのミドルウェア構成と、ユーザが定義する論理ジョブの階層として捉え、
前記サーバ構成をモデル化したサーバモデル情報と、前記ミドルウェア構成をモデル化したミドルウェア情報と、前記論理ジョブをモデル化した論理ジョブモデル情報とを登録する手順と、
前記サーバモデル情報と、前記ミドルウェア情報と、前記論理ジョブモデル情報との対応関係をモデルパタンとして登録する手順と、
ユーザに前記論理ジョブのデータとデータ加工処理について論理ジョブ設計情報を定義させて登録する手順と、
前記モデルパタンと、前記論理ジョブ設計情報を関連付けに基づいて、前記サーバ構成と前記ミドルウェア構成に従ったシステムで実行させるプログラムのためのミドルウェア環境定義情報と、ミドルウェア上で動作するプログラム部品とを生成する手順とを備えることを特徴とするシステム開発方法。 - 前記ミドルウェア環境定義情報と、前記ミドルウェア上で動作するプログラム部品とを生成するに際して、
前記論理ジョブ設計情報で定義されたデータを格納するためのテーブルのテーブル分割パタンと、データ加工処理のジョブ分割パタンを判定しておこなうことを特徴とする請求項5記載のシステム開発方法。 - 前記論理ジョブモデルとして、テーブル種別を含み、ユーザが論理ジョブ設計情報として、前記テーブル種別を設定することを特徴とする請求項5記載のシステム開発方法。
- 前記論理ジョブモデルとして、ジョブ種別を含み、ユーザが論理ジョブ設計情報として、前記ジョブ種別を設定することを特徴とする請求項5記載のシステム開発方法。
- プログラムを実行させるシステムのシステム開発支援プログラムにおいて、
前記プログラムを実行させるシステムを、プログラムを実行させるためのサーバのサーバ構成と、データ加工処理をおこなうためのミドルウェア構成と、ユーザが定義する論理ジョブの階層として捉え、
前記サーバ構成をモデル化したサーバモデル情報と、前記ミドルウェア構成をモデル化したミドルウェア情報と、前記論理ジョブをモデル化した論理ジョブモデル情報とを登録する機能と、
前記サーバモデル情報と、前記ミドルウェア情報と、前記論理ジョブモデル情報との対応関係をモデルパタンとして登録する機能と、
ユーザに前記論理ジョブのデータとデータ加工処理について論理ジョブ設計情報を定義させて登録する機能と、
前記モデルパタンと、前記論理ジョブ設計情報を関連付けに基づいて、前記サーバ構成と前記ミドルウェア構成に従ったシステムで実行させるプログラムのためのミドルウェア環境定義情報と、ミドルウェア上で動作するプログラム部品とを生成する機能とをコンピュータ上で実行することを特徴とするシステム開発支援プログラム。 - 請求項9記載のシステム開発支援プログラムを記録したコンピュータ読取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003166052A JP2005004411A (ja) | 2003-06-11 | 2003-06-11 | システム開発方法、および、システム開発支援プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003166052A JP2005004411A (ja) | 2003-06-11 | 2003-06-11 | システム開発方法、および、システム開発支援プログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005004411A true JP2005004411A (ja) | 2005-01-06 |
JP2005004411A5 JP2005004411A5 (ja) | 2005-10-27 |
Family
ID=34092311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003166052A Pending JP2005004411A (ja) | 2003-06-11 | 2003-06-11 | システム開発方法、および、システム開発支援プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2005004411A (ja) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012046460A1 (ja) * | 2010-10-04 | 2012-04-12 | 三菱電機株式会社 | ソフトウエア生成装置、ソフトウエア生成方法及びプログラム |
KR101399356B1 (ko) | 2007-04-02 | 2014-05-27 | 삼성전자주식회사 | 동일한 통신 프로토콜에 따라서 상호 통신하는 개발자터미널 및 타겟 장치 및 상기 타겟 장치를 에뮬레이션하기위한 시스템 및 방법 |
CN104240003A (zh) * | 2014-04-14 | 2014-12-24 | 南京紫米网络科技有限公司 | 一种企业协同管理系统开发方法 |
JP7484038B2 (ja) | 2019-11-21 | 2024-05-16 | 日本電気株式会社 | データ分割装置、データ分割方法及びプログラム。 |
-
2003
- 2003-06-11 JP JP2003166052A patent/JP2005004411A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101399356B1 (ko) | 2007-04-02 | 2014-05-27 | 삼성전자주식회사 | 동일한 통신 프로토콜에 따라서 상호 통신하는 개발자터미널 및 타겟 장치 및 상기 타겟 장치를 에뮬레이션하기위한 시스템 및 방법 |
WO2012046460A1 (ja) * | 2010-10-04 | 2012-04-12 | 三菱電機株式会社 | ソフトウエア生成装置、ソフトウエア生成方法及びプログラム |
CN104240003A (zh) * | 2014-04-14 | 2014-12-24 | 南京紫米网络科技有限公司 | 一种企业协同管理系统开发方法 |
JP7484038B2 (ja) | 2019-11-21 | 2024-05-16 | 日本電気株式会社 | データ分割装置、データ分割方法及びプログラム。 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10013248B2 (en) | Reducing downtime during upgrades of interrelated components in a database system | |
US8086564B2 (en) | Techniques for the logical replication of high-level procedures | |
JP3547990B2 (ja) | 生産管理システム、生産管理プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
GB2468742A (en) | Database migration or synchronization with ordering of data replication instructions based upon dependencies between data to prevent errors | |
US8555263B2 (en) | System and method for code automation | |
US20080263104A1 (en) | Updating a data warehouse schema based on changes in an observation model | |
JP2009532791A (ja) | 顧客が設定可能なワークフローシステム | |
JP2016525734A (ja) | Etlマップ設計のためのプロジェクタおよびセレクタコンポーネントタイプの使用 | |
US20110153562A1 (en) | Error prevention for data replication | |
JPH1125126A (ja) | システム設計ツール及びデータウエアハウス設計システム及び方法 | |
JP2005004411A (ja) | システム開発方法、および、システム開発支援プログラム | |
US7076779B2 (en) | System for controlling and monitoring a process | |
CN116775685A (zh) | 一种数据处理方法、任务调度方法、装置和存储介质 | |
JP2009245409A (ja) | リソース自動構築システム及び自動構築方法並びにそのための管理用端末 | |
Clemm | Replacing version-control with job-control | |
JP4906424B2 (ja) | Webサービス設計方法及び装置 | |
US20200301737A1 (en) | Configurable data parallelization method and system | |
US20080022258A1 (en) | Custom database system and method of building and operating the same | |
JPH11102293A (ja) | プログラム自動生成方法 | |
Swinbank | Data Flows | |
US20230418819A1 (en) | Query set optimization in a data analytics pipeline | |
Beryoza et al. | IBM Cognos Dynamic Cubes | |
Frye et al. | The SAP BW to HANA Migration Handbook | |
WO2011077116A1 (en) | Error prevention for data replication | |
Nixell | Increasing Software Availability and Scalability with Microservices Architecture |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050802 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20050802 |
|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20050802 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20080303 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080624 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080822 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080916 |