(57)【要約】【課題】データウェアハウスシステムなどのシステム開発において、システム構成が変更されても、開発工数、テスト工数などアプリケーションの開発にかかる工数を増加させないようにする。【解決手段】ターゲットとなるシステムを、サーバ構成と、データ加工処理をおこなうためのミドルウェア構成と、ユーザが定義する論理ジョブの階層として捉える。そして、これらを各々をモデル化して保持し、これらで取り得る組み合わせ関係をモデルパタンとして定義しておく。次に、ユーザに論理ジョブのデータのテーブル種別、ジョブの情報を論理ジョブ設計情報として入力させる。そして、モデルパタンと論理ジョブ設計情報に基づき、サーバ毎のミドルウェア環境定義情報とミドルウェア上で動作するジョブ実行プログラム部品を生成する。【選択図】        図１
2005004411.tif 000002
【特許請求の範囲】
【請求項１】
プログラムを実行させるシステムのシステム開発方法において、
前記プログラムを実行させるシステムを、プログラムを実行させるためのサーバのサーバ構成と、データ加工処理をおこなうためのミドルウェア構成と、ユーザが定義する論理ジョブの階層として捉え、
前記サーバ構成をサーバモデル情報として、前記ミドルウェア構成をミドルウェア情報として、前記論理ジョブを論理ジョブモデル情報としてモデル化して保持し、
前記サーバモデル情報と前記ミドルウェア情報と前記論理ジョブモデル情報の対応関係をモデルパタンとして定義して、
ユーザに前記論理ジョブのデータとデータ加工処理について論理ジョブ設計情報を定義させて、
前記モデルパタンと、前記論理ジョブ設計情報を関連付けに基づいて、前記サーバ構成と前記ミドルウェア構成に従ったシステムで実行させるプログラムのためのミドルウェア環境定義情報と、ミドルウェア上で動作するプログラム部品とを生成することを特徴とするシステム開発方法。
【請求項２】
前記ミドルウェア環境定義情報と、前記ミドルウェア上で動作するプログラム部品とを生成するに際して、
前記論理ジョブ設計情報で定義されたデータを格納するためのテーブルのテーブル分割パタンと、データ加工処理のジョブ分割パタンを判定しておこなうことを特徴とする請求項１記載のシステム開発方法。
【請求項３】
前記論理ジョブモデルとして、テーブル種別を含み、ユーザが論理ジョブ設計情報として、前記テーブル種別を設定することを特徴とする請求項１記載のシステム開発方法。
【請求項４】
前記論理ジョブモデルとして、ジョブ種別を含み、ユーザが論理ジョブ設計情報として、前記ジョブ種別を設定することを特徴とする請求項１記載のシステム開発方法。
【請求項５】
プログラムを実行させるシステムのシステム開発方法において、
前記プログラムを実行させるシステムを、プログラムを実行させるためのサーバのサーバ構成と、データ加工処理をおこなうためのミドルウェア構成と、ユーザが定義する論理ジョブの階層として捉え、
前記サーバ構成をモデル化したサーバモデル情報と、前記ミドルウェア構成をモデル化したミドルウェア情報と、前記論理ジョブをモデル化した論理ジョブモデル情報とを登録する手順と、
前記サーバモデル情報と、前記ミドルウェア情報と、前記論理ジョブモデル情報との対応関係をモデルパタンとして登録する手順と、
ユーザに前記論理ジョブのデータとデータ加工処理について論理ジョブ設計情報を定義させて登録する手順と、
前記モデルパタンと、前記論理ジョブ設計情報を関連付けに基づいて、前記サーバ構成と前記ミドルウェア構成に従ったシステムで実行させるプログラムのためのミドルウェア環境定義情報と、ミドルウェア上で動作するプログラム部品とを生成する手順とを備えることを特徴とするシステム開発方法。
【請求項６】
前記ミドルウェア環境定義情報と、前記ミドルウェア上で動作するプログラム部品とを生成するに際して、
前記論理ジョブ設計情報で定義されたデータを格納するためのテーブルのテーブル分割パタンと、データ加工処理のジョブ分割パタンを判定しておこなうことを特徴とする請求項５記載のシステム開発方法。
【請求項７】
前記論理ジョブモデルとして、テーブル種別を含み、ユーザが論理ジョブ設計情報として、前記テーブル種別を設定することを特徴とする請求項５記載のシステム開発方法。
【請求項８】
前記論理ジョブモデルとして、ジョブ種別を含み、ユーザが論理ジョブ設計情報として、前記ジョブ種別を設定することを特徴とする請求項５記載のシステム開発方法。
【請求項９】
プログラムを実行させるシステムのシステム開発支援プログラムにおいて、
前記プログラムを実行させるシステムを、プログラムを実行させるためのサーバのサーバ構成と、データ加工処理をおこなうためのミドルウェア構成と、ユーザが定義する論理ジョブの階層として捉え、
前記サーバ構成をモデル化したサーバモデル情報と、前記ミドルウェア構成をモデル化したミドルウェア情報と、前記論理ジョブをモデル化した論理ジョブモデル情報とを登録する機能と、
前記サーバモデル情報と、前記ミドルウェア情報と、前記論理ジョブモデル情報との対応関係をモデルパタンとして登録する機能と、
ユーザに前記論理ジョブのデータとデータ加工処理について論理ジョブ設計情報を定義させて登録する機能と、
前記モデルパタンと、前記論理ジョブ設計情報を関連付けに基づいて、前記サーバ構成と前記ミドルウェア構成に従ったシステムで実行させるプログラムのためのミドルウェア環境定義情報と、ミドルウェア上で動作するプログラム部品とを生成する機能とをコンピュータ上で実行することを特徴とするシステム開発支援プログラム。
【請求項１０】
請求項９記載のシステム開発支援プログラムを記録したコンピュータ読取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、システム開発方法に係り、特に、データベースシステムなどのデータ加工処理をおこなうためのミドルウェアを備え、サーバなどのシステム構成が変更されうるシステム上で実行されるプログラムの開発に用いて好適なシステム開発方法に関する。
【０００２】
【従来の技術】
システム開発にあたっては、物理的なシステム構成の層と、論理的なアプリケーション層とを分離して、開発することが重要である。これにより、システム構成の変更があっても、アプリケーションには変更を加えなくてもよくなるからである。
【０００３】
例えば、下記の特許文献１の「プログラム実行制御方式」では、プログラムを書き換えをおこなうことなく、スレッド数、ＣＰＵ数を指定することにより、実行制御の並列、分散の形態を変更できる。
【０００４】
【特許文献１】
特開平５−３１３９２２号公報
【０００５】
【発明が解決しようとする課題】
データウェアハウスシステムに代表される多くの情報系システムでは、業務処理の増加、対象ユーザの拡張、処理対象データ量の増加などの変更が、たびたび発生する。このとき従来システムでは、いずれの変化が生じた場合においても、データ加工処理プログラム、ミドルウェア構成、サーバ構成など、様々なシステム構成要素に対して変更影響が発生する。なお、ここで、ミドルウェアというのは、ＯＳと、アプリケーションソフトウェアの中間に位置し、アプリケーションソフトウェアに対してＯＳよりも高度で具体的な機能を提供するソフトウェアである。データウェアハウスシステムでは、データ加工処理をサポートするライブラリ群である。
【０００６】
以下、図１４を用いてあるデータウェアハウスシステムでおこなう処理のモデルについて説明する。
【０００７】
図１４は、ある業務処理のモデルを説明するための模式図である。
【０００８】
例えば、あるデータウェアハウスシステムでは、東京支社とニューヨーク支社の日々の売り上げのデータを蓄積し、週単位で売り上げ計算をおこなっており、この処理をサーバ一台で動作しているものとする。
【０００９】
この時システム内部では、例えば、図１４に示す一連のデータ加工処理をおこなっている。先ず、それぞれの支社から日々の売り上げデータを、システムの外部データ１４０１として受け取る。これを外部データ取り込み１４０２により、システム内部に設けたテーブルである外部データ取り込み１４０３に格納する。
【００１０】
次に、履歴情報蓄積１４０４をおこない、履歴情報１４０５にデータを格納する。履歴情報１４０５には、一日単位の情報ではなく、決められた期間、例えば、二年間の売り上げの履歴情報を格納する。そして、履歴情報１４０５を入力とし、中間サマリ作成１４０６によって、例えば、支社別に一週間単位の集計をおこなった中間サマリ１４０７を作成する。
【００１１】
最後に、最終サマリ作成１４０８により、全支社の売り上げを合計した全社の週売り上げを時系列に管理する最終サマリ１４０９を作成する。ここで留意する点は、図１４に示すデータ加工処理の動作タイミングが異なることである。外部データ取り込み１４０２と履歴情報蓄積１４０４は、日々処理をおこなうが、中間サマリ作成１４０６と最終サマリ１４０９は、週一回しか処理をおこなわない。そして、こうした処理の実行順序やタイミングは、ジョブ実行管理ミドルウェアによって管理される。
【００１２】
さて、このような業務処理を一台のサーバで実行していたものを、処理量の増加、性能向上の要請などの要因により、複数台のサーバ上で、動作させなければならなくなったとする。このとき、以下に述べるような多くの変更作業が発生する。
【００１３】
先ず、データ加工処理をそれぞれのサーバにて並列に動作するようプログラムそのものを変更する。例えば、支社が東京とニューヨークにあった場合、東京のデータを一台目のサーバでデータ加工し、ニューヨークのデータを二台目のサーバで加工するようにプログラムを変更する。この変更に伴い、同じテーブル定義を各サーバ上におこない、各サーバで動作するデータ加工プログラムを配置する作業が発生する。
【００１４】
そして、テーブル定義の変更などに伴い、それぞれのサーバ上で、プログラムを動作させるためのミドルウェア環境構築も、準備作業と発生する。こうしたミドルウェア環境構築は、各サーバで動作するプログラムの取り扱うデータ量などを考慮しておこなう。
【００１５】
さらに、データ加工処理そのものの内容によっては、並列でおこなうことが可能なものとそうでないものがあるため、ジョブ実行順序の変更作業も生じる。例えば、東京支社とニューヨーク支社を総計し、全社売り上げを算出するには、データ加工処理を並列におこなうことはできないため、最終サマリ処理はいずれか一台のマシンで処理をおこなうことになる。こうした並列実行が可能なジョブと単独でのみ実行可能なジョブ同士の待ち合わせ処理を考慮し、ジョブ実行管理ミドルウェアのジョブ実行順序の定義やスケジューリングに対しても変更をおこなう。
【００１６】
このように、サーバの台数を変更することにより、上記一連の新たなシステム変更作業が発生するため、既存システム構築時と比較して、時には、二倍以上の開発工数が発生する場合があるという問題点があった。さらに特別な開発環境がない状態で、人手のみでこうしたシステム変更作業をおこなった場合、ジョブ実行順序の不整合やデータ項目名称のエラーなどのミスが多発するおそれがある。このためこのミスを検出するためのテスト作業や、プログラムの修正作業などの工程が不可欠になる。
【００１７】
上記従来技術の特許文献１では、このような事態でのシステム開発について対処することは考慮されていない。というのも、従来技術の特許文献１は、プログラムの書き換えをおこなうことなく、スレッド数、ＣＰＵを指定することにより、実行制御の並列、分散の形態を変更することができるが、複数台のマシンに実行処理を分散した時のジョブの待ち合わせ処理を考慮したジョブの制御については記載されていない。
【００１８】
例えば、処理Ａから処理Ｂといった順番でおこなわれていたデータ加工処理を複数台のサーバに分割した場合に、処理Ａ１、処理Ａ２の双方が同時に終わってから処理Ｂ１と処理Ｂ２をおこなうようにジョブの実行順序を制御する必要が発生する。
【００１９】
従来技術では、こうしたサーバ構成の変更に対してジョブの実行順序を考慮した分散処理がおこなわれていない。また、サーバ構成が変更されたときのミドルウェア配置についても、これを管理する機能をもたないため、ミドルウェアを人手をかけて変更しなければ、サーバ構成の変更はおこなえないことになる。
【００２０】
すなわち、現状のデータウェアシステムでは、プログラムの外部仕様そのものは何も変えない場合でも、サーバ構成を変更すると、システム内部の構成要素に多くの変更要因が発生する。そして、システム内部構成の変更をおこなうに当たっては、多くの開発工数が必要になる。このことが、データウェアシステムの容易な構築を妨げる一因となっている。なお、ここで述べた問題はデータウェアシステムに限らず、データ量が増加してシステム構成の変更の必要が生じる可能性のある一連のシステムにおいて共通に発生する問題である。
【００２１】
本発明は、上記問題点を解決するためになされたもので、その目的は、データウェアハウスシステムなどのシステム開発において、システム構成が変更になっても、開発工数、テスト工数などアプリケーションの開発にかかる工数を低減できるシステム開発方法を提供することにある。
【００２２】
さらに、本発明により、ハードウェアとミドルウェアに熟知している開発者が、モデルパターン登録をおこない、アプリケーション対象業務に熟知している開発者が論理ジョブ設計情報を作成するなど、異なる技術をもつ開発者が、途中の開発作業を並列におこなうことが可能になる。また、既存のモデルパタンを利用することにより、開発者がアプリケーションに依存する論理ジョブ設計情報の作成にのみ専念できるなど開発時に要求される前提知識の低減化を図ることも可能にする。
【００２３】
【課題を解決するための手段】
本発明は、単独のジョブを単にパラレル化する従来技術とは異なり、サーバやミドルウェアの構成に応じて、取扱うデータの分割や実行するプログラムの並列化とこれを制御するための実行順序まで含めて変更管理の対象とする。
【００２４】
本発明では、開発のターゲットとなるシステムを、プログラムを実行させるサーバのサーバ構成と、データ加工処理をおこなうためのミドルウェア構成と、ユーザが定義する論理ジョブの階層として捉える。そして、システム設計者、ミドルウェアの提供者は、各々をサーバモデル情報、ミドルウェア情報として、論理ジョブモデル情報としてモデル化して保持し、これらで取り得る組み合わせ関係をモデルパタンとして定義しておく。
【００２５】
論理ジョブモデル情報としては、論理ジョブのデータの種類を類型化してテーブル種別とし、ジョブの種類を類型化してジョブ種別としてモデル化されている。
【００２６】
業務に関するプログラマは、論理ジョブ設計情報として、論理ジョブのテーブル種別と、ジョブの種別の詳細を記載する。
【００２７】
そして、モデルパタンと論理ジョブ設計情報に基づき、サーバ毎のミドルウェア環境定義情報とミドルウェア上で動作するジョブ実行プログラム部品を生成する。
【００２８】
以上述べた本発明の手法により、サーバ台数やミドルウェアの構成変更に対して、特定の層を変更するのみで、異なるシステム構成上で動作するプログラムを作成することができる。これにより、サーバ台数の変更などがおこなわれた場合に、発生するシステム開発作業の工数を減らすことが可能になる。
【００２９】
これにより、情報系システムなどで発生する業務処理の増加、対象ユーザの拡張、処理対象データ量の増加などの変更に応じたシステム変更処理に伴う開発およびテスト作業の工数を低減することができる。
【００３０】
【発明の実施の形態】
以下、本発明に係る一実施形態を、図１ないし図１４を用いて説明する。
【００３１】
〔システム開発方法の概要とシステム構成について〕
先ず、図１および図２を用いて本発明のシステム開発方法の概要と、システム構成について説明する。
図１は、本発明のシステム開発方法の概要の流れ図である。
図２は、プログラムを実行させるためのターゲットなるシステムのシステム構成図である。
【００３２】
本発明のシステム開発方法では、図１に示されるように設計情報１００と、生成物として実行情報１４０をデータベース（以下、ＤＢ）として管理する。そして、これらを用いてシステム構築処理１０をおこなう。
【００３３】
本実施形態では、データとしては複数の項目を持つテーブルを例に採り、ジョブとして、データ加工処理を例に採る。
【００３４】
設計情報１００は、モデル情報１０７と論理ジョブ設計情報１０８よりなる。
【００３５】
モデル情報１０７は、システムの構成をモデル化した情報であり、サーバモデル情報１０１、ミドルウェア情報１０３、論理ジョブモデル情報１０５と、それらの関係をあらわすサーバ・ミドルウェア対応関係１０２、論理ジョブ・ミドルウェア対応関係１０４と、各モデル情報の組合せの対応関係をパタン化したモデルパタン１０６よりなる。
【００３６】
サーバモデル情報１０１は、ターゲットとなるプログラムを実行させるサーバをどのような構成にするかというサーバ構成をモデル化した情報である。
【００３７】
ミドルウェア情報１０３は、データ加工をおこなうミドルウェアの構成をモデル化したものである。本発明のミドルウェアとしては、データベースマネージメントシステム（ＤＢＭＳ）、データウェアハウスシステム、ＥＬＴツールなどである。
【００３８】
論理ジョブモデル情報１０５は、ユーザが定義する論理ジョブをモデル化した情報である。本発明のシステム開発手法では、論理ジョブをモデル化して、データの種別とジョブの種別を予め定めておき、ユーザは、その中からデータの種別とジョブの種別を選択すればよいようにする。ここで、論理ジョブといっているのは、サーバの構成などのシステムの物理的な構成には影響されないように定義するからである。
【００３９】
サーバ・ミドルウェア対応関係１０２は、サーバモデル情報１０１とミドルウェア情報１０３との対応関係を示す情報であり、論理ジョブ・ミドルウェア対応関係１０４は、論理ジョブモデル情報１０５とミドルウェア情報１０３との対応関係を示す情報である。
【００４０】
モデルパタン１０６は、サーバモデル情報１０１、ミドルウェア情報１０３、論理ジョブモデル情報１０５の組み合わせ関係を定めるパターンであり、このモデルパタン１０６を指定すれば、実行情報１４０の生成のために必要な情報が得られるようにする。
【００４１】
なお、これらのモデル情報１０７の具体例については後に詳細に説明する。
【００４２】
論理ジョブ設計情報は、論理ジョブのデータの種別とジョブの種別の具体的な内容を定める情報である。この情報には、システムの物理的な構成には影響されないようにする。
【００４３】
実行情報１４０は、プログラムを実行させるサーバ上で、実行時に必要な情報であり、ミドルウェア環境定義情報１４１とジョブ実行プログラム１４２である。
【００４４】
ミドルウェア環境定義情報１４１は、ミドルウェアを実行させるための情報であり、具体的には、ＤＢＭＳ上で実行させるテーブルの属性などである。ジョブ実行プログラム部品１４２は、サーバ上でジョブを実行させるために必要になる部品であり、例えば、ＤＢＭＳのＳＱＬ文のソースコード、コマンドのバッチファイル、あるいは、実行形式のモジュールなどである。
【００４５】
システム構築処理１０は、モデル情報の登録１１０、論理ジョブ設計情報の登録１２０、実行環境の構築１３０よりなる。
【００４６】
モデル情報の登録１１０は、モデル情報１０７を生成する手順であり、モデル個別情報の登録１１１とモデル対応情報の登録１１２からなる。モデル個別情報の登録１１１は、個々のサーバモデル情報１０１、ミドルウェア情報１０３、論理ジョブモデル情報１０５を登録する手順である。モデル対応情報の登録１１２は、サーバ・ミドルウェア対応関係１０２、論理ジョブ・ミドルウェア対応関係と、モデルパタンを登録する手順である。
【００４７】
論理ジョブ設計情報の登録１２０は、モデル情報１０７から論理ジョブ設計情報１０８を生成する手順であり、テーブル設計情報の登録１２１とジョブ設計情報の登録１２２からなる。テーブル設計情報の登録１２１は、テーブル種別に対して具体的なテーブル内容、例えば、テーブル名、テーブルの項目などを登録する手順である。論理ジョブ設計情報１０８は、ジョブ種別に対して具体的なジョブの内容を定める処理であり、例えば、入出力されるテーブル名、処理関数などである。
【００４８】
実行環境の構築１３０は、設計情報１００から実行情報１４０を生成する処理であり、モデルパタンの選択１３１、実行情報の生成１３２、サーバ上への実行情報配置処理１３３からなる。モデルパタンの選択１３１では、設計情報のモデルパタンを選択して、モデル情報１０７の中の必要な情報を抜き出す。実行情報の生成１３２は、モデル情報１０７を参照して実行情報１４０を生成する。そして、サーバ上への実行情報配置処理１３３で、実際にターゲットとなるシステムのサーバ上に、実行情報を配置する。サーバが複数台あるときには、個々のサーバに対して適した実行情報を配置しなければならない。
【００４９】
本実施形態のシステム構築処理１０において特徴とするところは、サーバ、ミドルウェア構成といった実際の物理構成の定義作業と、物理構成を意識せずにおこなうデータ加工処理の論理ジョブ設計作業が分離しておこなえることにある。
【００５０】
論理ジョブ設計情報の登録１２０では、設計したジョブが一台のサーバでおこなわれるのか、複数台数のサーバ上でおこなうのかの区別を意識せずにテーブル項目の設計や、テーブル間の入出力関係を設計情報として登録することができる。
【００５１】
したがって、システム開発の手法としては、モデル情報の登録１１０をシステム開発のエンジニアがおこない、論理ジョブ設計情報の登録１２０を業務に精通したプログラマがおこなうことができる。
【００５２】
さらに、実行環境の構築１３０において、選択するモデルパタンを変更するのみで、実行する物理環境、例えば実行時のサーバ台数などを変更した実行情報を生成する。例えば、モデルパタン名を一台サーバ構成から、二台サーバ構成に変更することにより、サーバが二台になったときに対応した実行情報を生成する処理がおこなわれることになる。
【００５３】
従来技術における開発環境では、テーブル定義をおこなう際に直ちに表領域の割り当てなど物理構成への設定が求められる場合がある。表領域とは、ＤＢＭＳでテーブルをハードディスク上の実際の物理領域に割当てるための領域をいう。
【００５４】
すなわち、従来技術では、物理的なシステム構成と、論理的なデータ加工処理およびジョブ設計との分離がおこなわれていない。このことが、サーバ構成などを変更すると、システムのデータ加工プログラムやジョブに対して、大幅な変更が発生する原因となっている。多くの変更を、人手による作業でおこない、その変更結果の整合性保証も人手でおこなうことになり、多くの開発工数を要する。
【００５５】
しかしながら、本実施形態では物理構成と論理構成を分離しており、こうした分離により、サーバ構成などを変更し、変更後の整合性を保証することが可能になる。これによりシステム開発工数の低減化を図ることができる。
【００５６】
次に、図２により本実施形態のシステム構成を説明する。
【００５７】
この図２に示した構成において、上部に記載してあるのがプログラムを実行させるターゲットとなる実行用のシステムであり、下部に記載してあるのが開発用のシステムである。もちろん、この両者は分離していてもよい。
【００５８】
開発用のシステムとしては、一連のシステム設計作業をおこなう環境として、設計用コンピュータ２４０と設計用ＤＢ２５０をもつ。
【００５９】
そして、設計用コンピュータ２４０上に、本発明の処理をおこなうシステム構築処理１０を配置する。設計用ＤＢ２５０に、図１で示した設計情報１００を保持する。
【００６０】
そして、実行用のシステムでは、この図２の例では、システムの実行環境として、二台のサーバシステムをもつ。このサーバシステムの構成としては、具体的には、メインサーバ２００、メインサーバＤＢ２１０、サブサーバ２２０、サブサーバＤＢ２３０である。メインサーバ２００には、システムを動作時に用いるミドルウェアとして、ジョブ実行管理ミドルウェア２０１、データベース管理ミドルウェア２０２を配置する。ジョブ実行管理ミドルウェアは、ジョブの実行順序や待ち合わせなどのジョブの実行の制御をするためのミドルウェアである。データベース管理ミドルウェア２０２は、データ加工処理のためのミドルウェアである。
【００６１】
そして、メインサーバＤＢ２１０には、既に図１に示した実行情報１４０が配置されている。サブサーバ２２０およびサブサーバＤＢ２３０については、メインサーバと同様に構成される。
【００６２】
上記で説明した実行環境の構築１３０により、設計情報１００から実行情報１４０を生成し、サーバ上への実行情報配置処理１５０により、メインサーバ２００およびサブサーバ２３０の環境に実行情報１４０を配置する。
【００６３】
なお、ここでは、サーバが二台のときの構成を示しているが、一台であっても、二台以上であってもかまわない。なお、メインサーバおよびサブサーバの環境に配置される実行情報１４０において具体的に定義されるテーブル定義などは、サーバ間の役割分担により、一般に異なる。
【００６４】
そして、実際のデータウェアハウスシステムなどにおけるデータ加工処理そのものは、メインサーバ２００およびサブサーバ２３０においておこなわれることになる。
【００６５】
〔データ構造の詳細〕
次に、図３および図４を用いて本発明のシステム開発方法に用いられるデータ構造の詳細について説明する。
図３は、モデル情報１０７の具体例を示す図である。
図４は、論理ジョブ設計情報１０８の具体例を示す図である。
（Ｉ）モデル情報の概略
モデル情報１０７は、システム構築にあたって必要となるシステムアーキテクチャを階層に分けてモデル化し、このモデルをパタンとして保持する。
【００６６】
モデル情報１０７は、システムアーキテクチャの構成要素をそれぞれモデル化したサーバモデル情報１０１、ミドルウェア情報１０３、論理ジョブモデル情報１０５を持っており、それらの対応関係であるサーバ・ミドルウェア対応関係１０２、論理ジョブ・ミドルウェア対応関係１０５も含まれている。
【００６７】
実際にシステムを構築するにあたっては、この二つの対応関係によりジョブ実行部品どのサーバ上で動作するか、どのミドルウェア上で実行されるかなどが、最終的に定まるように、これらのデータ構造を設計するようにする。
【００６８】
また、モデル情報１０７には、モデルパタン１０６も含まれている。このモデルパタン１０６は、サーバモデル情報１０１、ミドルウェア情報１０３、論理ジョブモデル情報１０５に取り上げられているサーバ、ミドルウェア、ジョブの情報を組合わせて、それをパタンとして定義するものである。
【００６９】
例えば、サーバ、ミドルウェア、ジョブの配置パタンとして、以下三つのパタン例などが考えられる。
（１）全てのジョブを１サーバで実行する場合
（２）同じジョブ二台のサーバで対等に実行する場合。例えば、図１４で示した一連の処理を可能な限り、各サーバにて並列におこなう。
（３）二台のサーバに実行するジョブの役割分担を行い各々別のジョブを割り当てる場合。例えば、図１４において日々行われる処理を小型のサーバＡに割り当て、週単位で行われる大規模データの処理を大型のサーバＢに割り当てる。
【００７０】
実際のシステム構成に当たっては、もっと多くのパターンが考えられる。こうしたパタンのうち、システムの特性に応じて適切なパタン適応することが重要である。
【００７１】
そこで、本実施形態では、こうしパターンを管理する情報として、モデル情報１０７においてモデルパタン１０６を持つようにする。本実施形態では、以下の具体例でも理解できるように、サーバ・ミドルウェア対応関係１０２、論理ジョブ・ミドルウェア対応関係１０５の組み合わせをパターン化することにより、モデルパタンとして実現している。
（ＩＩ）ミドルウェアに関する説明
次に、本実施形態を理解するために必要になるミドルウェアの前提知識と用語の説明をおこなう。
【００７２】
一般に、ＤＢＭＳなどのミドルウェアでは、処理を効率的におこなうため、処理の実行プロセスを分散するため手段を備えている。しかし、アプリケーション開発者が、直接こうした分散プロセスの配置を意識して開発をおこなうと、開発作業が複雑になり、開発効率が低下する。そこで、ミドルウェアでは、問い合わせおよび結果応答を一元管理するプロセスと、一元管理のプロセスからの命令を分散して実行するプロセスをもつ手段を備えている。これにより、アプリケーション開発者は、分散プロセスを意識せずにアプリケーションを開発でき、システムとしてはプロセスを分散かつ並列におこなうことが可能になる。本実施形態では、問い合わせおよび結果応答を一元管理するプロセスのことを「フロントエンドサーバ」と呼び、「ＦＥＳ」と略記する。そして、分散しておこなわれるプロセスのことを「バックエンドサーバ」と呼び、「ＢＥＳ」と略記する。なお、こうしたミドルウェアの考え方は、多くのミドルウェアにおいて用いられている。なお、本実施形態では、ＦＥＳ、ＢＥＳといった名称を用いるが、実際の製品においては別の固有名詞で呼ばれている場合もある。こうした場合においても、本実施形態で述べる以下の構成は本質的な変更をおこなうことなく適用可能なものである。また以下では、関係データベース（Ｒｅｌａｔｉｏｎａｌ  ＤａｔａＢａｓｅ）の略記としてＲＤＢを用いる。
【００７３】
また、既に触れたように「表領域」とは、ＤＢＭＳでテーブルをハードディスク上の実際の物理領域に割当てるための領域をいう。
【００７４】
本実施形態のミドルウェアは、二種類のものが想定されており、データ加工処理をおこなうＲＤＢに関するミドルウェアと、データ処理の実行順序やタイミングを定義し、制御するジョブ実行管理ミドルウェアである。
（ＩＩＩ）論理ジョブに関する説明
次に、本実施形態を理解するために必要な論理ジョブの説明をおこなう。
【００７５】
本実施形態で論理ジョブといっているのは、システムの物理的な構成などに影響されることなく、ユーザが定義できるジョブという意味であり、論理ジョブは、データに関するテーブル種別と、ジョブ種別により定義することができる。
【００７６】
図１４に沿ってこの業務の流れを説明すると、以下のようになる。
【００７７】
例えば、いくつかの支社からの売上を集計する処理を想定する。この処理では、まずそれぞれの支社から日々の売り上げデータを、システムの外部データ１４０１として受け取る。これを外部データ取り込み１４０２により、システム内部に設けたテーブルである外部データ取り込み結果１４０３に格納する。
【００７８】
次に、履歴情報蓄積１４０４をおこない、履歴情報１４０５にデータを格納する。履歴情報１４０５には、一日単位の情報ではなく、決められた期間、例えば２年間の売り上げの履歴情報を格納する。
【００７９】
そして、履歴情報１４０５を入力とし、中間サマリ作成１４０６によって、例えば、支社別に一週間単位の集計を行った中間サマリ１４０７を作成する。
【００８０】
最後に、最終サマリ作成１４０８により、全支社の売り上げを合計した全社の週売り上げを時系列に管理する最終サマリ１４０９を作成する。ここで留意する点は、図１４に示すデータ加工処理の動作タイミングが異なることである。外部データ取り込み１４０２と履歴情報蓄積１４０４は、日々処理をおこなうが、中間サマリ作成１４０６と最終サマリ１４０９は、週一回しか処理をおこなわない。そしてこうした処理の実行順序やタイミングは、ジョブ実行管理ミドルウェアによって管理される。
【００８１】
ところで、図１４に示したテーブルの種類とジョブの種類は、例としてあげた支社からの売上情報集計処理に限らず、一般的なデータ加工処理をおこなうためのモデルとして扱うことができる。
【００８２】
このテーブルの種類を、本実施形態では、テーブル種別として扱い、ジョブの種類をジョブ種別として扱う。
【００８３】
図１４の例では、テーブル種別として考えられるのは、「外部データ」、「外部データ取り込み結果」、「履歴情報」、「中間サマリ」、「最終サマリ」である。
【００８４】
ジョブ種別として考えられるのは、「外部データ取り込み」、「履歴情報蓄積」、「中間サマリ作成」、「最終サマリ作成」である。
（ＩＶ）モデル情報の具体例
図３に示すようにサーバモデル情報１０１はサーバ名と説明の項目よりなり、サーバ名が識別子として与えられる。
【００８５】
ミドルウェア情報１０３は、ＲＤＢ用ＦＥＳ情報３０１、ＲＤＢ用ＢＥＳ情報３０２、表領域情報３０３と、ジョブ用ＦＥＳ情報３０４、ジョブ用ＢＥＳ情報３０５と、ジョブ格納領域３０６よりなる。
【００８６】
ＲＤＢ用ＦＥＳ情報３０１、ＲＤＢ用ＢＥＳ情報３０２、表領域情報３０３は、ＲＤＢのミドルウェアに関する情報である。
【００８７】
ＲＤＢのミドルウェアでは、ＳＱＬなどの実行命令を一元的に受け付けるためのプロセスとして、ＦＥＳが立ち上がっており、次にこの受け付けた処理を複数のマシンおよびＣＰＵにおける異なるプロセスとして実行するために複数のＢＥＳを立ち上げる。このＢＥＳによりＦＥＳで受付つけた処理を分散して処理することになる。そしてＢＥＳが処理をおこなうにあたっては、ＢＥＳがデータの入出力管理をおこなう対象領域として表領域を定義する。ＲＤＢ用ＦＥＳ情報３０１、ＲＤＢ用ＢＥＳ情報３０２、表領域情報３０３の各々のテーブルは、以上述べたＦＥＳ、ＢＥＳおよび表領域の定義情報を保持するために用いる。
【００８８】
ジョブ用ＦＥＳ情報３０４、ジョブ用ＢＥＳ情報３０５と、ジョブ格納領域３０６は、ジョブ実行管理ミドルウェアに関する情報である。
【００８９】
ＲＤＢと同様に分散処理をおこなうために、ジョブ実行管理ミドルウェアでも、ＦＥＳ、ＢＥＳが設けられており、ＢＥＳの管理対象とする領域としてジョブ格納領域がある。こうした情報を、ジョブ用ＦＥＳ情報３０４、ジョブ用ＢＥＳ情報３０５と、ジョブ格納領域３０６の各々のテーブルに保持することにより管理している。
【００９０】
また、論理ジョブモデル情報１０８は、テーブル種別３０９、ジョブ種別３１０よりなる。
【００９１】
この論理ジョブモデル情報１０８は、上で説明したテーブル種別とジョブ種別を定義するものであり、テーブル種別３０９には、テーブルの役目ごとにテーブル種別の名称が、ジョブ種別３１０には、ジョブの役目ごとにジョブ種別の名称が格納される。
【００９２】
サーバ・ミドルウェア対応関係１０２は、サーバモデル情報１０１と、ミドルウェア情報１０３を関係付ける情報である。
【００９３】
サーバ・ミドルウェア対応関係１０２には、先ず、サーバモデル情報１０１のサーバ種別１０１との対応関係を保持するため、項目としてサーバ名を持つ。このサーバ名に基づいて、サーバモデル情報１０１との関連を保持する。
【００９４】
次にサーバ・ミドルウェア対応関係１０２には、ミドルウェア情１０３のＲＤＢ用ＦＥＳ情報３０１、ＲＤＢ用ＢＥＳ情報３０２、ジョブ用ＦＥＳ情報３０４、ジョブ用ＢＥＳ情報３０５に対する関連を保持するため、データ項目としてミドルウェア区分、ＦＥＳ／ＢＥＳ区分、名称の項目をもつ。これら三つの項目を用いて、サーバモデル情報１０１と対応付けられているテーブルが、ＲＤＢ用ＦＥＳ情報３０１、ＲＤＢ用ＢＥＳ情報３０２、ジョブ用ＦＥＳ情報３０４、ジョブ用ＢＥＳ情報３０５のいずれであるかを区別する。
【００９５】
例えば、ミドルウェア区分＝ＲＤＢ、ＦＥＳ／ＢＥＳ区分＝ＦＥＳ、であればＲＤＢ用ＦＥＳ情報３０１と対応付けられていることを意味する。そして、このときのサーバ・ミドルウェア対応関係１０２の名称に格納された値に基づき、ＲＤＢ用ＦＥＳ情報３０２のどのレコードと対応付けられているかを特定することになる。
【００９６】
論理ジョブ・ミドルウェア対応関係１０４は、論理ジョブモデル情報１０８と、ミドルウェア情報１０３を関係付ける情報であり、ミドルウェア対応関係テーブル種別・表領域対応関係３０７と、ジョブ種別・ジョブ格納領域対応関係３０８よりなる。
【００９７】
テーブル種別・表領域対応関係３０７は、表領域情報３０３とテーブル種別３０９との対応関係を保持する。ジョブ種別・ジョブ格納領域対応関係３０８は、ジョブ格納領域３０６とジョブ種別３１０との対応関係を保持する。
（ＩＶ）論理ジョブ設計情報の具体例
論理ジョブ設計情報１０８では、論理ジョブ、すなわち、データとそのデータを取り扱うジョブについての詳細な情報を定める情報であり、具体的なサーバやミドルウェアの配置とは独立にモデル化した情報を持つものである。
【００９８】
論理ジョブ設計情報１０８では、あるテーブルのデータ項目が、どのようにデータ加工処理されるかといったジョブの具体的な処理を定義する情報である。ただし、ジョブがどのサーバ上のどのミドルウェア上で動作するかといった、サーバ構成やミドルウェア構成に関係する情報は定義されない。すなわち、論理ジョブ設計情報１０８は、サーバやミドルウェアの構成からは独立したレベルのジョブ設計情報を管理するための情報である。
【００９９】
図４に示すように、論理ジョブ設計情報１０８は、テーブル設計情報４１０、ジョブ設計情報４２０よりなる。
【０１００】
テーブル設計情報４１０は、テーブル種別に関する設計情報を定義するものである。
【０１０１】
テーブル設計情報４１０は、テーブル４１１、項目４１２、インデックス４１３、インデックス項目４１４よりなる。テーブル４１１のテーブル種別名には、図１４の例で挙げたような「履歴情報」などのテーブル種別名を格納する。
【０１０２】
テーブル分割タイプには、テーブル分割タイプ分類表７１０（図７：後述）に記述されるテーブル分割タイプを格納する。分割基準には、テーブル分割をおこなう時の基準として何を用いるかを識別するコードを格納する。本実施形態では、「なし」「週」「月」「半年」「年」いずれかの値を格納するものとする。
【０１０３】
基準項目は、実際のテーブル分割をおこなうに当たって基準となる値を格納しているテーブル上の項目名を格納するものである。例えば「年月日」といった項目名を格納することになる。この値は、項目４１２の項目名として存在する必要がある
ジョブ設計情報４２０は、データ加工処理と、このデータ加工処理のジョブ実行順序を定義するための情報である。ジョブ設計情報４２０は、図４に示すように、ジョブ４２１、項目マッピング４２２よりなる。ジョブ４２１のジョブ種別には、図１４に示す「履歴情報作成」などのジョブ種別名を格納する。ジョブ４２１のジョブ分割タイプには、ジョブ分割タイプ分類表７２０（図７：後述）に記載されるジョブ分割タイプを格納する。
【０１０４】
なお、テーブル分割とジョブ分割については、後に詳細に説明する。
（Ｖ）実行情報
実行情報１４０では、実際のシステムとして動作するために必要な情報として生成されるものであり、ミドルウェア環境定義情報１４１、ジョブ実行プログラム部品１４２よりなる。
【０１０５】
ミドルウェア環境定義情報１４１には、各ミドルウェアが特定サーバ上で動作するための定義情報を保持する。例えば、ＤＢＭＳでは、一般にシステムを稼動するための前準備として、データベースエリアをどのサーバに配置するか、データベースエリア上にどのようにテーブル配置をおこなうか、について定義しておくことが必要である。ミドルウェア環境定義情報１４１は、こうした定義情報を含むものである。
【０１０６】
ジョブ実行プログラム部品１４２は、ミドルウェア環境定義情報１４１の定義する環境上で実行されるプログラム部品群である。例えば、データ加工処理そのものをおこなうプログラム、および、これらプログラムの実行順序を定義するジョブ定義情報を含んだ情報である。
【０１０７】
〔システム開発のためのユーザインタフェース〕
次に、図５および図６を用いて本発明のシステム開発方法に係るユーザインタフェースについて説明する。
図５は、メイン画面５００、モデル個別情報登録画面５１０、モデル対応情報登録画面５２０を示す模式図である。
図６は、論理ジョブ定義画面６１０、テーブル設定情報定義画面６２０、ジョブ設定情報定義画面６３０を示す模式図である。
【０１０８】
メイン画面５００は、ボタンとして、モデル情報登録５０１、モデル対応関係登録５０２、論理ジョブ定義５０３、終了５０４をもつ。操作者が、マウスなどによりボタンモデル情報登録５０１を選択すると、モデル個別情報登録画面５１０を表示する。操作者が、モデル対応関係登録５０２を選択すると、モデル対応関係登録画面５２０を表示する。操作者が、論理ジョブ定義５０３を選択すると、図６の論理ジョブ定義画面６１０を表示する。操作者が、終了５０４を選択すると、本実施形態の処理を終了する。
【０１０９】
モデル個別情報登録画面５１０は、図１で示したサーバモデル情報１０１、ミドルウェア情報１０３、論理ジョブモデル情報１０５の個々のモデル情報を登録する画面である。モデル個別情報登録画面５１０は、テーブルリスト５１１、テーブル詳細表示領域５１２を持つ。テーブルリスト５１１には、図３に示したテーブル名称がリスト表示され、このリストから選択されたテーブルの内容を、テーブル詳細表示領域５１２に表示する。モデル個別情報登録画面５１０はボタンとして、登録５１３、追加５１４、削除５１５を持っている。操作者が、これら一連ボタンを操作することにより、テーブル詳細表示領域５１２に表示されている対象テーブルを編集できる。操作者が、ボタン戻る５１６を選択すると、モデル個別情報登録画面５１０を画面を非表示にし、メイン画面５００を表示する。
【０１１０】
モデル対応関係登録画面５２０は、図１で示したサーバ・ミドルウェア対応関係１０２と論理ジョブ・ミドルウェア対応関係１０４の個々のモデル間の関係を登録する画面である。モデル対応関係登録画面５２０は、モデルパタン名５２３、対応関係リスト５２１、テーブル表示領域５２２、対応関係アロー５２３、テーブル表示領域Ｂ５２３をもつ。モデルパタン名５２３では、対応関係の組み合わせをモデルパタンとして登録する際に用いるモデルパタン名を選択できる。必要に応じて編集ボタンを押すことにより、モデルパタン名の追加をおこなうことができる。
【０１１１】
対応関係リスト５２１には、図３に示した複数テーブル間の対応関係を表す名称をリスト表示する。対応関係リスト５２１から対応関係の名称を選択すると、対応関係に応じたテーブルの内容を、テーブル表示領域Ａ５２２とテーブル表示領域Ｂ５２３に表示する。また、これらテーブルのレコード同士の対応関係を、対応関係アロー５２３により、画面上に表示する。対応関係アロー５２３は、テーブル表示領域Ａ５２２とテーブル表示領域Ｂ５２３の間を結ぶ線として描画されるものであり、マウス操作などにより、新たに描画したり削除したりすることができる。モデル対応関係登録画面５２０は、ボタンとして、登録５２５、削除５２６を持ち、これを用いて対応関係アローの登録および削除をおこなう。ボタン戻る５２７を選択すると、モデル対応関係登録画面５２０を非表示にし、メイン画面５００を表示する。
【０１１２】
図６に示される論理ジョブ定義画面６１０は、論理ジョブ設計情報１０８を定義するための画面である。論理ジョブ定義画面６１０は、モデルパタンを指定するためにモデルパタン名６１４をもち、ここには登録されているモデルパタン名を、プルダウン形式で一覧表示する。そして、本画面は、メニューとして、テーブル６１１、ジョブ６１２、アロー６１３、削除６１４をもつ。また、データフロー図を描画するためのデータフロー描画領域６１８をもつ。
【０１１３】
そしてこれらテーブル６１１、ジョブ６１２、アロー６１３のメニューをマウス選択して、データフロー描画領域６１８に、テーブル、ジョブ、アローを表すアイコンを配置することができる。例えば、操作者がメニューのテーブル６１１を選択し、データフロー描画領域６１８上をマウスでクリックすると、テーブルアイコン６０１を、データフロー描画領域上に配置することができる。同様に、操作者がメニューのジョブ６１２を選択し、データフロー描画領域６１８上をマウスでクリックすると、ジョブアイコン６０２を、データフロー描画領域６１８上に配置することができる。また、操作者がメニューのアロー６１３を選択し、テーブルアイコン６０１とジョブ６１２をマウスにより対応付ける操作をおこなうと、アローライン６０３を、データフロー描画領域６１５上に描画する。そして、この描画にともなって、論理ジョブ設計情報１０８が更新される。
【０１１４】
なお、この画面では、モデルパタン名６１５により、既に図５のモデル対応情報登録画面５２０により登録してあるモデルパタン名を選択できる。論理ジョブ定義画面６１０ではモデルパタン名の編集はおこなえず、選択のみが可能である。
【０１１５】
さらに、論理ジョブ定義画面６１０には、ボタンとして、実行情報生成６１６、削除６１４、戻る６１７をもつ。実行情報生成６１６を選択すると、画面上に表示されている論理ジョブ設計情報１０８と、選択したモデルパタンに基づいて、図１の実行情報１４０を生成する。操作者が、画面上のアイコンまたはアローをマウスで選択し、次に、削除６１７をおすと、選択されたアイコンまたはアローに対応する情報を、論理ジョブ設計情報１０８から削除する。ボタンの戻る６１６を選択すると、論理ジョブ定義画面６１０を非表示にし、メイン画面５００を表示する。
【０１１６】
データフロー描画領域６１８により、ジョブの入出力と実行順序を定義することができる。
【０１１７】
テーブルアイコン６０１をマウスでクリックすると、テーブル設定情報定義画面６２０を画面上に表示する。この画面を用いて、テーブル名などテーブル設定にかかわる情報を登録できる。編集中のテーブルが、テーブル種別のいずれに属するのかを、テーブル種別名６２２において指定する。さらに分割種別６２４では、このテーブルを分割するときの種別を指定する。
【０１１８】
本実施形態では、「なし」「週」「月」「半年」「年」のいずれかを指定する。そして、分割種別６２４に「なし」以外を指定した時には、分割基準項目６２５に値の入力をおこなうことが可能になる。分割基準項目６２５には、テーブル分割をおこなう際、分割の基準となる値を実際に格納しているテーブル上の項目名を入力する。テーブル分割処理を実際におこなうにあたっては、テーブルを分割するための基準となる値が必要になる。例えば、５年間の情報をもつテーブルを分割しようとする方法として１年ずつのデータを保持するテーブルを五つ作成することが考えられる。このようにテーブルを分割するために用いる制約条件を、分割範囲６２６として入力する。
【０１１９】
なお、テーブルの分割については、後に詳細に説明する。
【０１２０】
このテーブル設定情報定義画面６２０において入力された情報は、図４に示したテーブル設計情報４１０として格納される。テーブル設定情報定義画面６２０において、ボタンの戻るを選択すると、論理ジョブ定義画面６１０に戻る。
【０１２１】
同様に、ジョブアイコン６０２をマウスでクリックすると、ジョブ設計情報定義画面６３０を画面上に表示する。この画面を用いて、ジョブ名などジョブ設定にかかわる情報を登録できる。ジョブ設計情報定義画面６３０では、入出力のテーブル項目を画面に表示し、これらのテーブル間の対応関係を画面上のラインで定義する。編集中のジョブが、ジョブ種別のいずれに属するのかを、ジョブ種別名６３２において指定する。ジョブ設計情報定義画面６３０において入力された情報は、図４に示されたジョブ設計情報４２０として格納される。ジョブ設計情報定義画面６３０においてボタンの戻るを選択すると、論理ジョブ定義画面６１０に戻る。
【０１２２】
〔テーブル分割とジョブ分割について〕
次に、図７ないし図９を用いてテーブル分割とジョブ分割の概念について説明する。
図７は、テーブル分割タイプ分類表７１０とジョブ分割タイプ分類表７２０を示す図である。
図８は、分割タイプ判定ルール表８１０と補正判定ルール表８２０を示す図である。
図９は、テーブル分割タイプの優劣関係を示す模式図である。
【０１２３】
本発明は、サーバ構成とミドルウェア構成の情報を定義し、論理ジョブとしてデータの種別とジョブの種別を定義し、それを元にしてシステムでプログラムを実行させるための実行情報１４０を生成するものであった。
【０１２４】
このように定義したユーザが設計情報として入力したデータとジョブをシステムに適合するように、加工する手法の一例として、テーブル分割とジョブ分割がある。ここでいうテーブル分割とは、テーブルのレコードの部分を分割したものである。また、ジョブ分割とは、同じ処理を別のプロセスとして発生させ実行させることである。
【０１２５】
例えば、論理ジョブ設計情報としてテーブルＴＢＬＡからテーブルＴＢＬＢへの加工処理ジョブＪＯＢＡを定義したものとする。このジョブＡを実際の動作環境でのジョブに変換するにあたっては、このジョブの分割し、実行多重度を上げ、システム実行時の性能向上を図ることが考えられる。これは、本実施形態の図２の構成のように二台のサーバでジョブを分割するようにして、実行する場合がこれに該当する。
【０１２６】
より具体的には、例えば、以下のような変更を実装時におこなうことがある。
・テーブルＴＢＬＡとまったく同じテーブル構造をもつＴＢＬＡ＿１、ＴＢＬＡ＿２を定義する。
・テーブルＴＢＬＢとまったく同じテーブル構造をもつＴＢＬＢ＿１、ＴＢＬＢ＿２を定義する。
・ＪＯＢＡと同様な処理をおこなうＪＯＢＡ＿１、ＪＯＢＡ＿２を、ＴＢＬＡ＿１とＴＢＬＢ＿１、ＴＢＬＡ＿２とＴＢＬＢ＿２の間に定義する。
【０１２７】
先ず、同じテーブルがＤＢの表領域においてどのように配置されるかについても、いくつかのパタンがある。
【０１２８】
例えば、一つのテーブルを、そのままひとつの表領域１１に割り当てる場合がある（図７におけるテーブル分割パタンＴ１−Ｒ１）。次に、ひとつのテーブルを、上記のパタンのように分割し、複数の表領域１，２に各々割り当てる場合がある（図７におけるテーブル分割パタンＴＮ−ＲＮ）。さらに、ひとつのテーブルを複数の表領域に割り当てる場合もある（図７におけるテーブル分割パタンＴ１−ＲＮ）。
【０１２９】
ジョブの分割のパタンは、テーブル分割と結びついたものである。
【０１３０】
先ず、入出力のテーブルいずれも分割できない場合がある（図７におけるジョブ分割パタンＪ１−１１）。また、ジョブおよび入出力双方のテーブル分割をおこなえる場合がある（図７におけるジョブ分割パタンＪＮ−ＮＮ）。一方、入力側のテーブルは分割できても、出力側のテーブルは分割できない場合がある（図７におけるジョブ分割パタンＪＮ−Ｎ１）。
【０１３１】
以上、論理ジョブ設計情報１０８定義時に、ジョブおよび分割できるか否かについて、パタン化できる。この判定をおこなうための前提条件と判定条件を記載したものが、図８に示した分割タイプ判定ルール表８１０である。
【０１３２】
例えば、入力テーブル分割条件が「指定」され、出力テーブル分割条件も「指定」されたとする。また、分割条件の関係が「入力と出力テーブルの分割条件が同じ」であったとする。ここで、分割条件の例としては、図６のテーブル設定情報定義画面６２０で、例えば、「年」データでテーブルを分割し、「２００２年」と「２００３年」に生成されたレコードにテーブルを分割すると指定することが考えられる。この場合には、ジョブ分割タイプは、「ＪＮ−ＮＮ」である。
【０１３３】
この判定ルール表では、分割条件が設定されないときには、テーブル分割をおこなわないものとする。
【０１３４】
入力テーブル分割条件が「指定」され、出力テーブル分割条件は「未指定」のときには、ジョブ分割タイプは、「ＪＮ−Ｎ１」である。
【０１３５】
また、ジョブのテーブルの分割を定める処理のときには、ジョブ単位に逐次おこなうため、出力テーブルであるものが別のジョブでは入力テーブルとして利用される。このため、出力テーブルとして扱った際に判定したテーブル分割タイブと、入力テーブルとして扱った際に判定したテーブル分割タイプが異なる場合がある。この場合には、図９に示す優劣関係に基づいて、優位である側のテーブル分割タイプを最終的な判定とする。この図では、矢印の先にあるテーブル分割タイプが優先である。この優劣関係では、あるテーブル分割タイプが矛盾したタイプが判定されたときには、できるだけテーブル分割をおこなわないようにしている。例えば、「Ｔ１−Ｒ１」の全くテーブル分割をおこなわないタイプは、「ＴＮ−Ｒ１」と「ＴＮ−ＲＮ」に優先している。
【０１３６】
また、ジョブ単独ではテーブル分割タイプとジョブ分割タイプが定まらない場合がある。例えば、ひとつのテーブルが入力テーブルとしても出力テーブルとしても利用される場合には、前のジョブの出力テーブルとしては分割可能でない場合があっても、次のジョブの入力テーブルとしては分割可能である場合がある。本実施形態では、こうした状況を解決するために、いったん仮のテーブル分割タイプとジョブ分割タイプを定め、これを図７の補正判定ルール表８２０に示した補正ルールで修正する処理をおこなう。
【０１３７】
例えば、ＪｏｂＡとＪｏｂＢがこの順におこなわれ、ＪｏｂＡの出力テーブルがＪｏｂＢの入力テーブルとして受け渡されるとする。ＪｏｂＢの入力テーブルの分割タイプとして、「ＴＮ−ＲＮ」で分割可能と判定されたとする。そして、ＪｏｂＡの入力テーブルの分割タイプとして、「Ｔ１−Ｒ１」でテーブル分割できないと評価されたとする。
【０１３８】
このときのＪｏｂＡのジョブ分割タイプを定めるときの条件は、図７の補正判定ルール表８２０で♯３の例にあたり、ジョブ入力テーブルとして、「Ｔ１−Ｒ１」でテーブル分割できない場合であり、ジョブの出力テーブルとして、「ＴＮ−ＲＮ」でテーブルを分割できる場合である。
【０１３９】
このときには、該当するパターンは、図７のジョブ分割タイプにはないので、ＪｏｂＡのジョブ分割タイプは、「Ｊ１−１１」で分割をおこなわないように補正する。これによって、結局、ＪｏｂＡの出力テーブル、すなわち、ＪｏｂＢの入力テーブルは、分割されずひとつのジョブで処理されることになる。これは、あるジョブで入力テーブルが一つのときには、出力テーブルの分割をおこなっても、性能向上にはさして寄与しないからである。
【０１４０】
〔システム開発方法のシステム構築処理の詳細〕
次に、これまで説明してきた図１と、図５および図６を参照してモデル情報の登録、論理ジョブ設計情報の登録、実行環境の構築の処理について説明する。
【０１４１】
図１に示したモデル情報の登録１１０は、モデル個別情報の登録１１１とモデル対応関係の登録１１２からなる。
【０１４２】
モデル個別情報の登録１１１では、先ず、操作者が、図５のメイン画面５００からボタンのモデル個別情報登録５０１を選択し、モデル個別情報登録画面５１０を呼び出す。
【０１４３】
そして、モデル個別情報登録画面５１０を用いて、図３に示したモデル情報１０７のサーバモデル情報１０１とミドルウェア情報１０３と論理ジョブモデル情報１０８の登録をおこなう。
【０１４４】
モデル対応関係の登録１１２では、先ず操作者が、図５に示したメイン画面５００からボタンのモデル対応関係登録５０２を選択し、モデル対応関係登録画面５２０を呼び出す。そして、モデル対応関係登録画面５２０を用いて、図３に示したおけるサーバ・ミドルウェア対応関係１０２、論理ジョブ・ミドルウェア対応関係１０４の登録をおこなう。
【０１４５】
論理ジョブ設計情報の登録１２０では、テーブル設計情報の登録１２１、ジョブ設計情報の登録１２２をおこなう。これらの処理は、図６に示した論理ジョブ定義画面６１０を用いておこなう。既に述べたように、論理ジョブ定義画面６１０からは、テーブル設定情報定義画面６２０と、ジョブ設計情報定義画面６３０を呼び出す。そして、テーブル設定情報定義画面６２０の内部処理として、テーブル設計情報の登録１２１をおこない、画面上で入力された情報を、図４に示したテーブル設計情報４１０に登録する。
【０１４６】
次に、ジョブ設計情報定義画面６３０の内部処理として、ジョブ設計情報の登録１２２をおこない、画面上で入力された情報を、図４に示したジョブ設計情報４２０に登録する。なお、このジョブ設計をおこなうにあたっては、既に図６の画面説明において述べたように、ジョブおよびテーブルの種別を指定したり、テーブル分割をおこなう際に必要とする分割基準や分割項目についての入力をおこなう。
【０１４７】
次に、実行環境の構築１３０では、モデルパタンの選択１３１、実行情報の生成１３２、サーバ上への実行情報配置処理１３３をおこなう。
【０１４８】
モデルパタンの選択１３１では、操作者が、図６に示した論理ジョブ定義画面６１０のモデルパタン名６１５において、モデルパタン名を指定する。システム側はこの指定されたモデルパタンをメモリ上に記憶する。
【０１４９】
そして、操作者が、図６の論理ジョブ定義画面６１０における実行情報生成６１８を選択すると、実行情報の生成１３２をおこない、実行情報１４０を生成する。この実行情報の生成１３２については、以下で詳細に説明する。
【０１５０】
そしてサーバ上への実行情報配置処理１３３では、図２に示したように、実行情報１４０を、実行環境のサーバへ配置する処理をおこなう。なお、この処理は、ファイル転送などで自動的におこなうようにしてもよいし、媒体に格納してインストールする形態でもよい。
【０１５１】
〔実行情報の生成１３２の処理の詳細〕
次に、図１０ないし図１３を用いて実行情報の生成１３２の処理の詳細について説明する。
図１０は、実行情報の生成１３２の処理を示すフローチャートである。
図１１は、ジョブ・テーブル分割タイプの決定１０１０の処理を示すフローチャートである。
図１２は、ミドルウェア環境定義情報の生成１０２０の処理を示すフローチャートである。
図１３は、ジョブ実行プログラム部品の生成１０３０の処理を示すフローチャートである。
【０１５２】
実行情報の生成１３２の処理は、図１０に示されるように、ジョブ・テーブル分割タイプの決定１０１０、ミドルウェア環境定義情報の生成１０２０、ジョブ実行プログラム部品の生成１０３０が実行される。
【０１５３】
先ず、図１１によりジョブ・テーブル分割タイプの決定１０１０の処理について説明する。
【０１５４】
この処理では、設計情報として定義したジョブから実行情報を作成するにあたり、既に説明したテーブル分割タイプとジョブ分割タイプに対する判定をおこなう。この判定をおこなうために、既に説明した図８に示した分割タイプ判定ルール表８１０を利用しておこなう。
【０１５５】
先ず、図４に示したジョブ４２１から個別のジョブ情報を読み取る。そして、この各々ジョブに対応付けられている入力テーブルおよび出力テーブルを取得する。入力テーブルと出力テーブルの詳細は、ジョブ４２１に対応する項目マッピング４２２における入力テーブル名、出力テーブル名を検索条件としてテーブル設計情報４１０を検索することで得られる（ステップ１１０１）。
【０１５６】
次に、図７に示したテーブルおよびジョブの分割タイプを、図８に示す分類タイプ判定ルール表８１０に基いて定める。このテーブルで示す前提条件がどのように成立するかで、ジョブの分割タイプとテーブルの分割タイプを定める（ステップ１１０２）。
【０１５７】
次に、図８に示した補正判定ルール表に基づき、ジョブ分割タイプの補正処理をおこなう（ステップ１１０３）。これにより、ジョブとテーブルの分割タイプに矛盾が生じないように補正する。
【０１５８】
次に、図１２によりミドルウェア環境定義情報の生成１０２０の処理について説明する。
【０１５９】
先ず、設計情報１００からＲＤＢミドルウェア関連情報を取得し、ＲＤＢミドルウェア環境情報の生成をおこなう（ステップ１２０１）。
【０１６０】
この処理をおこなうにあたり、先ず、現在指定されているモデルパタン名に基づいて、サーバ・ミドルウェア対応関係１０２とテーブル種別・表領域対応関係３０７から該当する対応関係を得る。そして、この対応関係をたどることにより、ＲＤＢのＦＥＳおよびＢＥＳそして表領域の設定を各々ＲＤＢ用ＦＥＳ情報３０１、ＲＤＢ用ＢＥＳ情報３０２、表領域情報３０３から取得する。これらの情報を得た後、ＲＤＢに対するＦＥＳ、ＢＥＳ、表領域をどのサーバにどのように割り当てるかを定義したＲＤＢミドルウェア環境情報の生成をおこなう。
【０１６１】
次に、ＲＤＢと同様にして、ジョブ実行ミドルウェアに対する環境定義情報生成する（ステップ１２０１）。
【０１６２】
最後に、図１３によりジョブ実行プログラム部品の生成１０３０の処理について説明する。
【０１６３】
先ず、以下のことに注意する。
【０１６４】
ジョブ設計情報４２０は、項目マッピング４２２の入力テーブル名および出力テーブル名を利用することにより、テーブル設計情報４１０を参照することが可能である。また、論理ジョブ設計情報１０８も、図１に示すように論理ジョブモデル情報１０５、そして、論理ジョブ・ミドルウェア対応関係１０４を経由することにより、間接的にミドルウェア情報１０３と関連づいている。また、ジョブ設計情報１０８は、同様に間接的にサーバモデル情報１０１と対応づいている。このことは、論理ジョブ設計情報１０８から必要に応じて、ミドルウェア情報やサーバ構成の情報を取得できることを意味している。以下ではこうした間接的な対応を用いて、システム環境に応じたジョブ実行プログラム部品の生成をおこなうものである。
【０１６５】
先ず、ジョブ設計情報４２０をメモリ上に読み込む（ステップ１３０１）。そして、各ジョブに対する入力テーブルと出力テーブルの設計情報を、テーブル設計情報４１０より得る。
【０１６６】
次に、ジョブ設計情報４２０に格納されているジョブ分割タイプと、テーブル設計情報４１０に格納されているテーブル分割タイプと、テーブル設計情報４１０によって与えられている項目マッピング４２２に基づき、データ加工処理をおこなうプログラムを生成する。そして、このデータ加工プログラムをジョブ実行プログラム部品１４２として出力する（ステップ１３０１）。
【０１６７】
例として、データベースにおけるＳＱＬ言語を用いてこのジョブ実行プログラムを生成する場合を説明する。先ず、テーブル分割のルールに基づいて、必要であればテーブル名に分割番号を付与し、このテーブル定義情報をＳＱＬとして生成する。次に、データ加工処理を入力テーブル名と出力テーブル名および項目間の対応に基づいて生成する。ここで必要な情報は、テーブル設計情報４１０とジョブ設計情報４２０から得ることができる。次に、同じ項目からなるテーブルを複数に分割した場合、各々のテーブルで処理対象とするデータを選択するための検索条件が必要になる。
【０１６８】
例えば、５年間のデータを保持するテーブルを、それぞれ一年間のデータを保持する５つのテーブルに分割する場合である。こうした場合には、分割したテーブルには、Ｎ年前（Ｎは０から４の値）のデータを保持するための検索条件をＳＱＬの検索条件として追加する。検索条件の対照となる項目名称は、テーブル４１１の分割基準項目として得ることができる。また、分割にあたって指定する絞込み数値については、テーブル４１１の分割範囲で与えられた値を用いて定めることができる。以上により、テーブル定義と、テーブル間のデータ加工処理をおこなう部品を作成できる。なお、テーブル定義を生成するには、具体的な表領域およびサーバ名が必要になるが、これについては、注意として述べた間接的な関連を用いて、ミドルウェア情報１０３やサーバモデル情報１０１から必要な情報を取得する処理をおこなう。
【０１６９】
次に、ジョブ４２１の実行順序とジョブ分割タイプに基づいて、テーブル加工処理の実行順序を制御するための、ジョブ構成情報を生成する（ステップ１３０３）。ここでいうジョブ構成情報とは、各々のジョブの実行順序と、各ジョブにおいてテーブル間データ加工処理を呼び出すかを定めたものである。このジョブで呼び出されるテーブル間データ加工処理は、ステップ１３０２で生成したものである。前ステップと同様に、必要に応じて、間接的な関連を用いて、ミドルウェア情報１０３やサーバモデル情報１０１から必要な情報を取得する処理をおこない、この取得結果を利用して本ステップの生成処理をおこなう。
【０１７０】
〔本実施形態のシステム開発方法の特徴〕
本実施形態では、システム構成をサーバ層、論理ジョブ層、ミドルウェア層の三つの層として捉え、これらをモデル化し、これら各層の対応関係をモデルパタンとして保持する。次に、システム構成モデルに対して、個別システムの設計情報を入力する。そして、システム構成モデルと個別システムの設計情報に基づき、サーバ毎のミドルウェア環境定義情報とミドルウェア上で動作するジョブ実行プログラム部品を生成する。
【０１７１】
これにより情報系システムなどで、発生する業務処理の増加、対象ユーザの拡張、処理対象データ量の増加などの変更に応じたシステム変更処理に伴う開発およびテスト作業の工数を低減化することが可能になる。
【０１７２】
【発明の効果】
本発明によれば、データウェアハウスシステムなどのシステム開発において、システム構成が変更になっても、開発工数、テスト工数などアプリケーションの開発にかかる工数を低減できるシステム開発方法を提供することができる。
【図面の簡単な説明】
【図１】本発明のシステム開発方法の概要の流れ図である。
【図２】プログラムを実行させるためのターゲットなるシステムのシステム構成図である。
【図３】モデル情報１０７の具体例を示す図である。
【図４】論理ジョブ設計情報１０８の具体例を示す図である。
【図５】メイン画面５００、モデル個別情報登録画面５１０、モデル対応情報登録画面５２０を示す模式図である。
【図６】論理ジョブ定義画面６１０、テーブル設定情報定義画面６２０、ジョブ設定情報定義画面６３０を示す模式図である。
【図７】テーブル分割タイプ分類表７１０とジョブ分割タイプ分類表７２０を示す図である。
【図８】分割タイプ判定ルール表８１０と補正判定ルール表８２０を示す図である。
【図９】テーブル分割タイプの優劣関係を示す模式図である。
【図１０】実行情報の生成１３２の処理を示すフローチャートである。
【図１１】ジョブ・テーブル分割タイプの決定１０１０の処理を示すフローチャートである。
【図１２】ミドルウェア環境定義情報の生成１０２０の処理を示すフローチャートである。
【図１３】ジョブ実行プログラム部品の生成１０３０の処理を示すフローチャートである。
【図１４】ある業務処理のモデルを説明するための模式図である。
【符号の説明】
１０…システム構築処理
１００…設計情報
１１０…モデル情報の登録
１２０…論理ジョブ設計情報の登録
１３０…実行環境の構築
１４０…実行情報。
【図１】
2005004411.tif 000003
【図２】
2005004411.tif 000004
【図３】
2005004411.tif 000005
【図４】
2005004411.tif 000006
【図５】
2005004411.tif 000007
【図６】
2005004411.tif 000008
【図７】
2005004411.tif 000009
【図８】
2005004411.tif 000010
【図９】
2005004411.tif 000011
【図１０】
2005004411.tif 000012
【図１１】
2005004411.tif 000013
【図１２】
2005004411.tif 000014
【図１３】
2005004411.tif 000015
【図１４】
2005004411.tif 000016