(57)【要約】【課題】ジョブ管理システムにおいて、業務を構成する複数のユニット（ジョブネットまたはジョブ）で共通的に実施したい処理の記述を簡略化し、ユニット定義を変更することなく、その共通処理を適用する。【解決手段】アスペクト定義データベース１１１は、各ユニットを指定するユニット指定情報を含むポイントカットと、そのポイントカットに含まれるユニット指定情報で指定されるユニットの前後で実行されるプログラムを指定するプログラム指定情報を含むアドバイスとで構成されるアスペクトを記憶する。ジョブ制御部１０２は、各ユニットの実行を制御する。アスペクト制御部１０４は、各アスペクトを構成するポイントカットに含まれるユニット指定情報で指定されるユニットがジョブ制御部１０２によって実行されるとき、各アスペクトを構成するアドバイスに含まれるプログラム指定情報で指定されるプログラムを実行する。【選択図】図１
2016071388.tif 000002
【特許請求の範囲】
【請求項１】
ジョブネットまたはジョブであるユニットが複数実行されるコンピュータシステムにおいて、当該各ユニットの実行を管理するジョブ管理システムであって、
前記各ユニットを指定するユニット指定情報を含むポイントカットと、当該ポイントカットに含まれるユニット指定情報で指定されるユニットの前後で実行されるプログラムを指定するプログラム指定情報を含むアドバイスとで構成されるアスペクトを記憶するアスペクト記憶手段と、
前記各ユニットの実行を制御するジョブ制御手段と、
前記各アスペクトを構成するポイントカットに含まれるユニット指定情報で指定されるユニットが前記ジョブ制御手段によって実行されるとき、当該各アスペクトを構成するアドバイスに含まれるプログラム指定情報で指定されるプログラムを実行するアスペクト制御手段と、
を備えることを特徴とするジョブ管理システム。
【請求項２】
前記アドバイスが、前または後を指定する前後指定情報と、実行順序を示す順序情報とを含み、
前記アスペクト制御手段が、複数の前記アスペクトを構成するポイントカットに含まれるユニット指定情報が同一のユニットを指定し、当該アスペクトを構成するアドバイスに含まれる前後指定情報が同一である場合に、当該アドバイスに含まれる順序情報で示される実行順序に従って、当該アドバイスに含まれるプログラム指定情報で指定されるプログラムを実行する、
ことを特徴とする請求項１に記載のジョブ管理システム。
【請求項３】
前記アスペクトを構成するポイントカットに含まれるユニット指定情報が、ユニット全部の指定または正規表現の可能な絶対パスによるユニットの指定を含むパス情報と、当該パス情報で指定されるユニットがジョブネットとジョブのいずれであるかを指定する種類情報とを含み、
前記各アスペクトを構成するポイントカットに含まれるユニット指定情報に含まれるパス情報と種類情報とで指定される各ユニットが前記ジョブ制御手段によって実行されるとき、前記アスペクト制御手段が、当該各アスペクトを構成するアドバイスに含まれるプログラム指定情報で指定されるプログラムを実行する、
ことを特徴とする請求項１または２に記載のジョブ管理システム。
【請求項４】
ユーザによって入力される各ユニットの定義の編集を受け付ける入力装置を備え、
前記各アスペクトを構成するポイントカットに含まれるユニット指定情報に含まれるパス情報と種類情報とで指定される各ユニットの定義の編集が前記入力装置によって受け付けられるとき、前記アスペクト制御手段が、前記各アスペクトを構成するアドバイスに含まれるプログラム指定情報で指定されるプログラムを実行する、
ことを特徴とする請求項３に記載のジョブ管理システム。
【請求項５】
ユーザによって入力される各ユニットの参照操作を受け付ける入力装置を備え、
前記各アスペクトを構成するポイントカットに含まれるユニット指定情報に含まれるパス情報と種類情報とで指定される各ユニットの参照操作が前記入力装置によって受け付けられるとき、前記アスペクト制御手段が、前記各アスペクトを構成するアドバイスに含まれるプログラム指定情報で指定されるプログラムを実行する、
ことを特徴とする請求項３に記載のジョブ管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピューターシステムにおいて、ミッションクリティカルな業務を自動運用するジョブ管理システムに関する。
【背景技術】
【０００２】
各種業務を遂行するコンピューターシステムでは、日々の業務の自動運用を行うために、ジョブ管理システムが利用されている。業務はジョブおよびジョブをまとめたジョブネットを定義し、関連線で各々を結びつけることで一連の処理として実現する。なお、以降の説明では、ジョブおよびジョブネットを総称してユニットと呼ぶ。
また、ジョブ管理システムは、多くのコンピューターシステムにおいてミッションクリティカルな業務の自動運用に利用されており、業務によっては、何千何万というジョブがコンピューター上で動作する。
【０００３】
一方で、アプリケーション開発の概念の一つに、アスペクト指向がある。アスペクト指向とは、各モジュール間で共通に使われる機能を切り出し、それを後から自動的にプログラムに織り込んでいく設計手法である。アスペクトの例としてログ出力ルーチンやトランザクション管理などがあげられる。
アスペクトは、そのアスペクトが行う処理を示すアドバイスと、そのアドバイスの埋め込まれる位置を指定するポイントカットから構成されている。ポイントカットは、ワイルドカード(*)を用いることによって一度に複数のポイントを指定することもできる。プログラミング言語では、関数呼び出しや変数の参照、代入がポイントカットで指定する代表例である。
アスペクト指向を実現するために、アドバイスおよびポイントカットをどのように定義するかを規定し、ポイントカットの指定にしたがってアドバイスをプログラムに適用することが必要となる。このような機能を実現する環境をアスペクト指向環境と呼ぶ。
【０００４】
特許文献１と特許文献２には、アスペクト指向によるソフトウェアの開発を支援する技術が記載されている。
特許文献１は、開発対象または開発済みのプログラムを構成する複数のクラスにおけるメソッドの呼び出し関係を解析し、さらに各メソッドに織り込まれるアスペクトの呼び出し関係を解析し、クラス相互間におけるメソッドとアスペクトの呼び出し関係を示すシーケンス図を作成し、表示するアスペクト解析装置を開示する。
また、特許文献２は、クラス相互間におけるメソッドおよびアスペクトの呼び出し関係を示すシーケンス図上に、新規アスペクトのアドバイスをドラッグ＆ドロップすることにより、既存のクラスに新規アスペクトを織り込むことができるアスペクト設定装置を開示する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−７１００７公報
【特許文献２】特開２００８−２３４２７１公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ミッションクリティカルな業務をジョブ管理システムで自動化している場合、業務の実体を永続的に保持しているマスターユニット定義に対する変更を行う際には、修正ミスによって、重大な障害を引き起こす可能性があるため、十分な確認が必要となる。このような障害を発生させないようにするため、多数のユニットにまたがって共通の修正を適用する場合には、修正内容と修正箇所が適切かを影響の及ぼす範囲を含めて確認するのはもちろんのこと、修正漏れがないことの確認も必要であり、変更に対する作業量が爆発的に増大してしまう。例えば、各ジョブネットの実行前後で独自形式のログを出力したり、その適用範囲を変更したりする場合は、各ジョブネットに同様の修正が必要となる。
【０００７】
しかし、業務を構成するユニットが大量に存在する場合、漏れなく該当修正を入れることは困難であるとともに、適用範囲や出力内容に変更が必要となる場合も、その作業は困難なものとなる。既存のジョブ管理システムでは、共通処理を、統一されたルールに基づいて配置することは難しいといえる。
【０００８】
本発明の目的は、業務を構成する複数のユニットで共通的に実施したい処理の記述を簡略化でき、ユニット定義を変更することなく、その共通処理を適用できるジョブ管理システムを提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明のジョブ管理システムは、
ジョブネットまたはジョブであるユニットが複数実行されるコンピュータシステムにおいて、当該各ユニットの実行を管理するジョブ管理システムであって、
前記各ユニットを指定するユニット指定情報を含むポイントカットと、当該ポイントカットに含まれるユニット指定情報で指定されるユニットの前後で実行されるプログラムを指定するプログラム指定情報を含むアドバイスとで構成されるアスペクトを記憶するアスペクト記憶手段と、
前記各ユニットの実行を制御するジョブ制御手段と、
前記各アスペクトを構成するポイントカットに含まれるユニット指定情報で指定されるユニットが前記ジョブ制御手段によって実行されるとき、当該各アスペクトを構成するアドバイスに含まれるプログラム指定情報で指定されるプログラムを実行するアスペクト制御手段と、
を備えることを特徴とする。
【００１０】
好ましくは、本発明のジョブ管理システムは、
前記アドバイスが、前または後を指定する前後指定情報と、実行順序を示す順序情報とを含み、
前記アスペクト制御手段が、複数の前記アスペクトを構成するポイントカットに含まれるユニット指定情報が同一のユニットを指定し、当該アスペクトを構成するアドバイスに含まれる前後指定情報が同一である場合に、当該アドバイスに含まれる順序情報で示される実行順序に従って、当該アドバイスに含まれるプログラム指定情報で指定されるプログラムを実行する、
ことを特徴とする。
【００１１】
好ましくは、本発明のジョブ管理システムは、
前記アスペクトを構成するポイントカットに含まれるユニット指定情報が、ユニット全部の指定または正規表現の可能な絶対パスによるユニットの指定を含むパス情報と、当該パス情報で指定されるユニットがジョブネットとジョブのいずれであるかを指定する種類情報とを含み、
前記各アスペクトを構成するポイントカットに含まれるユニット指定情報に含まれるパス情報と種類情報とで指定される各ユニットが前記ジョブ制御手段によって実行されるとき、前記アスペクト制御手段が、当該各アスペクトを構成するアドバイスに含まれるプログラム指定情報で指定されるプログラムを実行する、
ことを特徴とする。
【００１２】
好ましくは、本発明のジョブ管理システムは、
ユーザによって入力される各ユニットの定義の編集を受け付ける入力装置を備え、
前記各アスペクトを構成するポイントカットに含まれるユニット指定情報に含まれるパス情報と種類情報とで指定される各ユニットの定義の編集が前記入力装置によって受け付けられるとき、前記アスペクト制御手段が、前記各アスペクトを構成するアドバイスに含まれるプログラム指定情報で指定されるプログラムを実行する、
ことを特徴とする。
【００１３】
好ましくは、本発明のジョブ管理システムは、
ユーザによって入力される各ユニットの参照操作を受け付ける入力装置を備え、
前記各アスペクトを構成するポイントカットに含まれるユニット指定情報に含まれるパス情報と種類情報とで指定される各ユニットの参照操作が前記入力装置によって受け付けられるとき、前記アスペクト制御手段が、前記各アスペクトを構成するアドバイスに含まれるプログラム指定情報で指定されるプログラムを実行する、
ことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、ジョブ管理システムにおいて、業務を構成する複数のユニットで共通的に実施したい処理の記述を簡略化することができ、ユニット定義を変更することなく、その共通処理を適用することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態にかかるジョブ管理システムの構成の一例を示す図である。
【図２】ジョブ定義データベースに格納されるユニット情報のデータフォーマットの一例を示す図である。
【図３】アスペクト定義データベースに格納されるアスペクト情報のデータフォーマットの一例を示す図である。
【図４】アアスペクト定義データベースに格納されるポイントカット情報のデータフォーマットの一例を示す図である。
【図５】アスペクト定義データベースに格納されるユニット別ポイントカット情報のデータフォーマットの一例を示す図である。
【図６】アスペクト定義データベースに格納されるアドバイス情報のデータフォーマットの一例を示す図である。
【図７】アスペクトを追加または変更する場合に使用するアドバイス設定ダイアログボックスの一例を示す図である。
【図８】アスペクトの一覧を表示するアスペクト一覧ダイアログボックスの一例を示す図である。
【図９】図８のアスペクト一覧ダイアログボックスでアスペクトを追加、変更、削除する際のアスペクト定義解析部（１０３）の処理の一例を示すフローチャートである。
【図１０】図８のアスペクト一覧ダイアログボックス操作時に、アスペクト定義解析部が順序を採番する方法の一例を示すフローチャートである。
【図１１】ユニット操作時のジョブ制御部とアスペクト制御部の処理の一例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態に係るジョブ管理システムについて、図面を参照しながら説明する。なお、実施形態を説明する全図において、共通の構成要素には同一の符号を付し、繰り返しの説明を省略する。
【００１７】
図１は、本発明の実施形態にかかるジョブ管理システム（１００）の構成の一例を示す。
ジョブ管理システム（１００）は、ユニットが複数実行されるコンピュータシステムにおいて、各ユニットの実行を管理する。ジョブ管理システム（１００）の機能は、コンピュータで実現される。コンピュータは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などで構成される主メモリと、ハードディスクなどで構成される記憶装置と、ディスプレイなどで構成される表示装置（１２０）と、マウスやキーボードなどで構成される入力装置（１３０）とを備える。
コンピュータの記憶装置には、ジョブ管理プログラムが格納されている。コンピュータのＣＰＵが、記憶装置から主メモリにジョブ管理プログラムを読み出して実行することにより、ジョブ管理システム（１００）の各部、すなわち、ジョブ定義解析部（１０１）と、ジョブ制御部（１０２）と、アスペクト定義解析部（１０３）と、アスペクト制御部（１０４）の機能が実現される。
【００１８】
また、ジョブ管理システム（１００）には、ジョブ定義データベース（１１０）と、アスペクト定義データベース（１１１）とが接続されている。ここで、ジョブ定義データベース（１１０）には、後述するように、ユニットの定義としてジョブまたはジョブネットの定義および図２のユニット情報が格納されている。アスペクト定義データベース（１１１）には、後述するように、アスペクトの定義として図３のアスペクト情報と図４のポイントカット情報と図５のユニット別ポイントカット情報と図６のアドバイス情報とが格納されている。なお、ジョブ定義データベース（１１０）とアスペクト定義データベース（１１１）は、コンピューターの記憶装置に格納される構成であってもよい。
なお、通常のアスペクト指向プログラミングと同様に、アスペクトはポイントカットとアドバイスとで構成される。ただし、本実施形態では、ポイントカットは各ユニットを指定するユニット指定情報を含み、アドバイスはポイントカットにより指定されるユニットの前後で実行されるプログラムを指定するプログラム指定情報を含む。すなわち、本実施形態では、ポイントカットにより指定されるユニットが実行されるとき、その前後で、アドバイスにより指定されるプログラムが実行される。
また、以下では、「ジョブまたはジョブネットの実行、定義の編集、および参照」に対して「ユニットの操作」という共通の用語を用いる。「操作」という用語は、文脈に応じて「実行、定義の編集、および参照」のいずれか１つ以上を意味するものとする。
【００１９】
次に、ジョブ管理システム（１００）全体の処理の概要について説明する。
ユーザは、予め、入力装置（１３０）を用いて表示装置（１２０）に表示された図７のアドバイス設定ダイアログボックスにアスペクトの定義を入力（追加または変更）する。図７のポイントカットの操作（７０５）では、ユニットに対する操作として、実行、定義の編集、および参照のいずれかを設定することができる。
アスペクトの定義が入力されると、アスペクト定義解析部（１０３）は、アスペクトの定義を解析し、アスペクト定義データベース（１１１）にアスペクト情報とポイントカット情報とユニット別ポイントカット情報とアドバイス情報とを格納する。
【００２０】
ジョブ制御部（１０２）は、ユニットに対する操作の一つである実行を次のようにして処理する。
ユーザが入力装置（１３０）を用いて表示装置（１２０）に表示されたユニットに対する操作として実行を入力すると、ジョブ制御部（１０２）は、入力された操作に従って、ユニットを実行する。ジョブ制御部（１０２）は、ユニットを実行する前後で、アスペクト制御部（１０４）に処理を実行させる。アスペクト制御部（１０４）は、ポイントカット情報の条件が適合するか否か判別し、適合する場合にアドバイス情報に実装された所定のプログラムを実行する。
また、ジョブ制御部（１０２）は、入力装置（１３０）から入力されたユーザの操作だけでなく、ジョブ定義データベース（１１０）に格納されたスケジュール定義にしたがって、ユニットを実行する。この場合も、同様に、ジョブ制御部（１０２）は、ユニットを実行する前後で、アスペクト制御部（１０４）に処理を実行させる。アスペクト制御部（１０４）は、ポイントカット情報の条件が適合するか否か判別し、適合する場合にアドバイス情報に実装された所定のプログラムを実行する。
【００２１】
ジョブ制御部（１０２）は、ユニットに対する操作の一つである定義の編集を次のようにして実行する。ユニットの定義の編集操作として、ユニットの追加、変更、または削除を行うことができる。
定義の編集では、例えば、アドバイス情報に「関係者全員にユニットの編集が行われた旨を電子メールで通知する」といった所定のプログラムを実装する。
ユーザが入力装置（１３０）を用いて表示装置（１２０）に表示された入力画面でユニットの定義を編集すると、ジョブ制御部（１０２）がジョブ定義解析部（１０１）に処理を実行させる。ジョブ定義解析部（１０１）は、入力されたユニットの定義を解析し、ジョブ定義データベース（１１０）に編集されたユニットの定義を格納する。
そして、ジョブ制御部（１０２）は、定義の解析・格納をジョブ定義解析部（１０１）に実行させるのと前後して、アスペクト制御部（１０４）に処理を実行させる。アスペクト制御部（１０４）は、ポイントカット情報の条件が適合するか否か判別し、適合する場合にアドバイス情報に実装された所定のプログラムを実行する。
【００２２】
また、ユニットに対する操作の一つである参照とは、ユニットの定義を直接的または間接的に参照することをいう。例えば、表示装置１２０にユニットの定義を表示するなどの操作が該当する。ジョブ制御部（１０２）は、参照を次のようにして実行する。
ユーザが入力装置（１３０）を用いて表示装置（１２０）に表示されたユニットに対する操作として参照を入力すると、ジョブ制御部（１０２）は、入力された操作に従って、例えば、ユニットの定義を表示装置（１２０）に表示する。
そして、ジョブ制御部（１０２）は、例えば、ユニットの定義を表示装置（１２０）に表示するのと前後して、アスペクト制御部（１０４）に処理を実行させる。アスペクト制御部（１０４）は、ポイントカット情報の条件が適合するか否か判別し、適合する場合にアドバイス情報に実装された所定のプログラムを実行する。
【００２３】
図２は、ジョブ定義データベース（１１０）に格納されるユニット情報のデータフォーマットの一例を示す。
ユニット情報は、ユニットＩＤ（２０１）と、名前（２０２）と、種類（２０３）とを含む。
ユニットＩＤ（２０１）は、ジョブ定義解析部（１０１）がユニットに一意に割り振る識別情報を格納する。
名前（２０２）は、ユニットを特定する任意の文字列を格納する。
種類（２０３）は、ユニットがジョブネットとジョブのいずれであるかを示す情報を格納する。
【００２４】
図３は、アスペクト定義データベース（１１１）に格納されるアスペクト情報のデータフォーマットの一例を示す。
アスペクト情報は、ＩＤ（３０１）と、名前（３０２）とを含む。
ＩＤ（３０１）は、アスペクト定義解析部（１０３）がアスペクトに一意に割り振る識別情報を格納する。
名前（３０２）は、そのアスペクトを特定できる任意の文字列である。
【００２５】
図４は、アスペクト定義データベース（１１１）に格納されるポイントカット情報のデータフォーマットの一例を示す。
ポイントカット情報は、ＩＤ（４０１）と、アスペクト（４０２）と、名前（４０３）と、ポイントカット（ユニット完全パス名）（４０４）と、ポイントカット（種類）（４０５）と、ポイントカット（操作）（４０６）とを含む。
ＩＤ（４０１）は、アスペクト定義解析部（１０３）がポイントカットに一意に割り振る識別情報を格納する。
アスペクト（４０２）には、このポイントカットが関連するアスペクトのＩＤ（３０１）が入る。
名前（４０３）は、そのポイントカットを特定できる任意の文字列である。
ポイントカットはどこにアスペクトを適用するかを指定するものである。ポイントカット（ユニット完全パス名）（４０４）は、ツリー構造からなるユニットの絶対パスを格納する。正規表現を用いることで、複数のユニットを指定できる。アスペクトの適用対象となるユニットをユニット完全パス名で限定しない場合は「すべて」を格納する。
ポイントカット（種類）（４０５）は、アスペクトの適用対象となるユニットの種類（２０３）、すなわちジョブネットとジョブのいずれかを格納する。アスペクトの適用対象となるユニットを種類で限定しない場合は「すべて」を格納する。
ポイントカット（操作）（４０６）は、実行、定義の編集、および参照のいずれかを格納する。アスペクトの適用対象となるユニットをユニットの操作で限定しない場合は「すべて」を格納する。
なお、ポイントカット（ユニット完全パス名）（４０４）とポイントカット（種類）（４０５）とは、本発明のユニット指定情報の一例であり、ポイントカット（ユニット完全パス名）（４０４）は本発明のパス情報の一例であり、ポイントカット（種類）（４０５）は本発明の種類情報の一例である。
【００２６】
図５は、アスペクト定義データベース（１１１）に格納されるユニット別ポイントカット情報のデータフォーマットの一例を示す。
ユニット別ポイントカット情報は、ユニットＩＤ（５０１）と、ポイントカット（５０２）とを含む。
ユニットＩＤ（５０１）には、ユニットＩＤ（２０１）が入る。
ポイントカット（５０２）には、図４のポイントカット情報に含まれるポイントカット（ユニット完全パス名）（４０４）とポイントカット（種類）（４０５）がそのユニットのものと合致するポイントカットのＩＤ（４０１）が入る。
実行するアドバイスの特定にかかる時間を短縮するために、アスペクト定義解析部（１０３）は、ユニットの定義の作成および更新時にユニット別ポイントカット情報を作成または更新する。ユニット操作時は、図５のユニット別ポイントカット情報と図４のポイントカット情報と図６のアドバイス情報から、ポイントカット（操作）（４０６）と該当操作が合致するか判定するだけで、実行するアドバイスを特定できる。
【００２７】
図６は、アスペクト定義データベース（１１１）に格納されるアドバイス情報のデータフォーマットの一例を示す。
アドバイス情報は、ＩＤ（６０１）と、アスペクト（６０２）と、名前（６０３）と、タイプ（６０４）と、実装の種類（６０５）と、実装（６０６）と、順序（６０７）とを含む。
ＩＤ（６０１）は、アスペクト定義解析部（１０３）がアドバイス情報に一意に割り振る識別情報を格納する。
アスペクト（６０２）は、このアドバイスが関連するアスペクトのＩＤ（３０１）が入る。
名前（６０３）は、そのアドバイスを認識できる任意の文字列である。
タイプ（６０４）は、before、afterのいずれかである。beforeはユニット操作の前に実装（６０６）を実行することを、afterはユニット操作の後に実装（６０６）を実行することを意味する。
実装の種類（６０５）は、プログラムコード、ファイルパス、ユニットのいずれかである。
実装（６０６）は、そのアドバイスで実行する処理が格納される。実装（６０６）には、実装の種類（６０５）がプログラムコードの場合はプログラムコードが、ファイルパスの場合は実行するプログラムのファイルパスとその引数が、ユニットの場合はユニット完全パス名が実装（６０６）に格納される。
順序（６０７）は、アドバイスの実行順序が格納される。ジョブ制御部（１０２）があるユニットを実行するとき、ポイントカット（ユニット完全パス名）（４０４）とポイントカット（種類）（４０５）とポイントカット（操作）（４０６）とアドバイスのタイプ（６０４）がすべて該当するアドバイスが複数存在する場合に、アスペクト制御部（１０４）は、順序（６０７）の昇順に実装（６０６）を実行する。
なお、タイプ（６０４）は本発明の前後指定情報の一例であり、実装の種類（６０５）と実装（６０６）とは本発明のプログラム指定情報の一例であり、順序（６０７）は本発明の順序情報の一例である。
【００２８】
図７は、アスペクトを追加または変更する場合に使用するアドバイス設定ダイアログボックスの一例を示す。
アドバイス設定ダイアログボックスでアスペクトを追加すると、図３のアスペクト情報と、図４のポイントカット情報と、図６のアドバイス情報とに、それぞれ1レコード追加される。
アドバイス設定ダイアログボックスでは、新たに設定または変更するアスペクトの名前（７０１）と、ポイントカットの名前（７０２）と、ポイントカットのユニット完全パス名（７０３）と、ポイントカットの種類（７０４）と、ポイントカットの操作（７０５）と、アドバイスの名前（７０６）と、アドバイスのタイプ（７０７）と、アドバイスの実装の種類（７０８）と、アドバイスの実装（７０９）とを指定する。
アスペクトの名前（７０１）は、図３のアスペクト情報の名前（３０２）に格納される。
ポイントカットの名前（７０２）とポイントカットのユニット完全パス名（７０３）とポイントカットの種類（７０４）とポイントカットの操作（７０５）とは、それぞれ図４のポイントカット情報の名前（４０３）とポイントカット（ユニット完全パス名）（４０４）とポイントカット（種類）（４０５）とポイントカット（操作）（４０６）とに格納される。
ポイントカットのユニット完全パス名（７０３）は、正規表現で指定可能で、複数のユニットに対してアスペクトを設定することができる。
アドバイスの名前（７０６）とアドバイスのタイプ（７０７）とアドバイスの実装の種類（７０８）とアドバイスの実装（７０９）とは、それぞれ図６のアドバイス情報の名前（６０３）とタイプ（６０４）と実装の種類（６０５）と実装（６０６）とに格納される。
アドバイスの実装の種類（７０８）がユニットの場合は、ポイントカット（操作）（７０５）に「実行」だけが指定できる。
【００２９】
図８は、アスペクトの一覧を表示するアスペクト一覧ダイアログボックスの一例を示す。
アスペクト一覧ダイアログボックスにおいて、ポイントカットのユニット完全パス名（８０１）とポイントカットの種類（８０２）とポイントカットの操作（８０３）、およびアドバイスのタイプ（８０４）を指定し、一覧ボタン（８０８）を選択すると、指定した条件に合致するアスペクトの一覧表（８１１）が表示される。
更に、アスペクト一覧ダイアログボックスは、追加ボタン（８０５）と、変更ボタン（８０６）と、削除ボタン（８０７）と、上へボタン（８０９）と、下へボタン（８１０）とを有する。
追加ボタン（８０５）を選択すると、図７のアスペクト設定ダイアログボックスが表示される。
アスペクトの一覧表（８１１）でアスペクトを選択し、変更ボタン（８０６）を選択すると、同様に図７のアスペクト設定ダイアログボックスが表示され、アスペクトを変更できる。
アスペクトの一覧表（８１１）でアスペクトを選択し、削除ボタン（８０７）を選択すると、選択したアスペクトを削除できる。
アスペクトの一覧表（８１１）でアスペクトを選択し、上へボタン（８０９）を選択すると、選択した行がアスペクト一覧（８１１）の一つ上の行へ、下へボタン（８１０）を選択すると一つ下の行へ移動する。アスペクトは、アスペクトの一覧表（８１１）の上から順に実行される。
【００３０】
図９は、図８のアスペクト一覧ダイアログボックスでアスペクトを追加、変更、削除する際のアスペクト定義解析部（１０３）の処理の一例を示すフローチャートである。
図８のアスペクト一覧ダイアログボックスで削除ボタン（８０７）が選択された場合、アスペクト定義解析部（１０３）は、削除するアスペクト各々に対して、以下の処理を実行する（Ｓ９０１）。アスペクト定義解析部（１０３）は、図３のアスペクト情報、図４のポイントカット情報、および図６のアドバイス情報から削除するアスペクトに対応する情報を削除する（Ｓ９０２）。次に、アスペクト定義解析部（１０３）は、図５のユニット別ポイントカット情報から、ステップＳ９０２で削除されたポイントカット情報のＩＤ（４０１）と一致するポイントカット（５０２）を有する行を削除する（Ｓ９０３）。
次に、図８のアスペクト一覧ダイアログボックスで変更ボタン（８０６）が選択された場合、アスペクト定義解析部（１０３）は、変更するアスペクト各々に対して、以下の処理を実行する（Ｓ９０４）。アスペクト定義解析部（１０３）は、図７のアスペクト設定ダイアログボックスで指定された各情報に基づいて、図３のアスペクト情報、図４のポイントカット情報、および図６のアドバイス情報から変更するアスペクトに対応する情報を変更する（Ｓ９０５）。次に、アスペクト定義解析部（１０３）は、図５のユニット別ポイントカット情報から、ステップＳ９０５で変更されたポイントカット情報のＩＤ（４０１）と一致するポイントカット（５０２）を有する行を削除する（Ｓ９０６）。
【００３１】
次に、図８のアスペクト一覧ダイアログボックスで追加ボタン（８０５）が選択された場合、アスペクト定義解析部（１０３）は、追加するアスペクト各々に対して、以下の処理を実行する（Ｓ９０７）。アスペクト定義解析部（１０３）は、図７のアスペクト設定ダイアログボックスで指定された各情報に基づいて、図３のアスペクト情報、図４のポイントカット情報、および図６のアドバイス情報に追加するアスペクトに対応する情報を作成する（Ｓ９０８）。
次に、アスペクト定義解析部（１０３）は、すべてのユニットに対して、以下の処理を実行する（Ｓ９０９）。アスペクト定義解析部（１０３）は、追加および変更するアスペクトについて、図２のユニット情報と図４のポイントカット情報から、ユニットごとにユニットのユニット完全パス名と種類が合致するポイントカットを導出し、ユニット別ポイントカット情報を作成して設定する（Ｓ９１０）。
【００３２】
図１０は、図８のアスペクト一覧ダイアログボックス操作時に、アスペクト定義解析部（１０３）が順序（６０７）を採番する処理の一例を示すフローチャートである。
図８のアスペクト一覧ダイアログボックスで追加ボタン（８０５）が選択され、アスペクトを追加する場合（Ｓ１００１：Ｙｅｓ）は、アスペクト定義解析部（１０３）は、図９のステップＳ９０９〜Ｓ９１０の実行後にアスペクトの一覧表（８１１）で選択されている行の一つ下にアスペクトを追加する。アスペクト定義解析部（１０３）は、まず、選択されているアスペクトに対応するアドバイス情報の順序（６０７）に１加算した値を設定値として記憶する（Ｓ１００２）。この値が順序（６０７）に設定されているアスペクトが存在する場合（Ｓ１００３：Ｙｅｓ）、アスペクト定義解析部（１０３）は、順序（６０７）に同値以上が設定されているアスペクト各々に対して（Ｓ１００４）、順序（６０７）に1加算した値を設定する（Ｓ１００５）。最後に、アスペクト定義解析部（１０３）は、追加するアスペクトの順序（６０７）に記憶しておいた値を設定する（Ｓ１００６）。
【００３３】
図８のアスペクト一覧ダイアログボックスで上へボタン（８０９）が選択された場合（Ｓ１０１１：Ｙｅｓ）、アスペクト定義解析部（１０３）は、まず、アスペクトの一覧表（８１１）で選択されている行の一つ上に表示されているアスペクトに対応するアドバイス情報の順序（６０７）に1減算した値を設定値として記憶する（Ｓ１０１２）。この値が順序（６０７）に設定されているアスペクトが存在する場合（Ｓ１０１３：Ｙｅｓ）、アスペクト定義解析部（１０３）は、順序（６０７）に同値以下が設定されているアスペクト各々に対して（Ｓ１０１４）、順序（６０７）に１減算した値を設定する（Ｓ１０１５）。最後に、アスペクト定義解析部（１０３）は、追加するアスペクトの順序（６０７）に記憶しておいた値を設定する（Ｓ１０１６）。
図８のアスペクト一覧ダイアログボックスで下へボタン（８１０）が選択された場合（Ｓ１０２１：Ｙｅｓ）、アスペクト定義解析部（１０３）は、まず、アスペクトの一覧表（８１１）で選択されている行の一つ下に表示されているアスペクトに対応するアドバイス情報の順序（６０７）に1加算した値を設定値として記憶する（Ｓ１０２２）。この値が順序（６０７）に設定されているアスペクトが存在する場合（Ｓ１０２３：Ｙｅｓ）、アスペクト定義解析部（１０３）は、順序（６０７）に同値以上が設定されているアスペクト各々に対して（Ｓ１０２４）、順序（６０７）に1加算した値を設定する（Ｓ１０２５）。最後に、アスペクト定義解析部（１０３）は、追加するアスペクトの順序（６０７）に記憶しておいた値を設定する（Ｓ１０２６）。
【００３４】
図１１は、ユニット操作時のジョブ制御部（１０２）とアスペクト制御部（１０４）の処理の一例を示すフローチャートである。
アスペクト制御部（１０４）は、操作対象のユニットのユニットＩＤと図５のユニット別ポイントカット情報から、ユニット完全パス名と種類が操作対象のユニットに合致するポイントカットの一覧を作成する（Ｓ１１０１）。次に、アスペクト制御部（１０４）は、作成したポイントカットの一覧と図４のポイントカット情報と図６のアドバイス情報から、操作対象のユニットに合致するアドバイスの一覧を作成する（Ｓ１１０２）。次に、アスペクト制御部（１０４）は、作成したアドバイスの一覧でタイプがbeforeのアドバイスそれぞれに対して（Ｓ１１０３）、その実装に格納されているプログラムコード、ファイルまたはユニットを実行する（Ｓ１１０４）。その際、アスペクト制御部（１０４）は、順序（６０７）の昇順で実行する。
次に、ジョブ制御部（１０２）は、ユニットを操作する（Ｓ１１０５）。このとき、操作が「実行」の場合、ジョブ制御部（１０２）はユニットを実行する。操作が「定義の編集」の場合、ジョブ制御部（１０２）は、ジョブ定義解析部（１０１）に入力されたユニットの定義を解析させ、ジョブ定義データベース（１１０）に編集されたユニットの定義を格納させる。また、操作が「参照」の場合、ジョブ制御部（１０２）は、例えば、ユニットの定義を表示装置（１２０）に表示する。
【００３５】
次に、アスペクト制御部（１０４）は、作成したアドバイスの一覧でタイプがafterのアドバイスそれぞれに対して（Ｓ１１０６）、その実装に格納されているプログラムコード、ファイルまたはユニットを実行する（Ｓ１１０７）。その際、アスペクト制御部（１０４）は、順序（６０７）の昇順で実行する。
最後に、操作が「定義の編集」の場合（１１０８）、アスペクト制御部（１０４）は、アスペクト定義解析部（１０３）に処理を実行させる。アスペクト定義解析部（１０３）は、操作対象の図２のユニット情報と図４のポイントカット情報に基づいて、追加、変更、または削除の操作をされた操作対象のユニットに対してユニット別ポイントカット情報を再作成して設定する（Ｓ１１０９）。
【００３６】
以上説明したように、本発明によれば、ジョブ管理システムでアスペクトの指定を可能にすることにより、次のような効果がある。
（１）元のユニットの定義を修正することなく、外付けで機能を追加することができる。
（２）業務を構成する複数のユニットで共通的に実施したい処理を、適用範囲の指定に従って漏れなく追加することができる。
（３）外部からの指定により、ユニットの動作を一時的に変更できる。例えば、ジョブ管理システムを用いたシステムのテスト時に、一時的にテスト用のコードを埋め込むことができる。
【符号の説明】
【００３７】
１００…ジョブ管理システム、１０１…ジョブ定義解析部、１０２…ジョブ制御部、１０３…アスペクト定義解析部、１０４…アスペクト制御部、１１０…ジョブ定義データベース、１１１…アスペクト定義データベース、１２０…表示装置、１３０…入力装置、２０１…ユニットＩＤ、２０２…ユニットの名前、２０３…ユニットの種類、３０１…ＩＤ、３０２…アスペクトの名前、４０１…ＩＤ、４０２…アスペクト、４０３…ポイントカットの名前、４０４…ポイントカット（ユニット完全パス名）、４０５…ポイントカット（種類）、４０６…ポイントカット（操作）、５０１…ユニットＩＤ、５０２…ポイントカット、６０１…ＩＤ、６０２…アスペクト、６０３…アドバイスの名前、６０４…アドバイスのタイプ、６０５…アドバイスの実装の種類、６０６…アドバイスの実装、６０７…アドバイスの順序
【図１】
2016071388.tif 000003
【図２】
2016071388.tif 000004
【図３】
2016071388.tif 000005
【図４】
2016071388.tif 000006
【図５】
2016071388.tif 000007
【図６】
2016071388.tif 000008
【図７】
2016071388.tif 000009
【図８】
2016071388.tif 000010
【図９】
2016071388.tif 000011
【図１０】
2016071388.tif 000012
【図１１】
2016071388.tif 000013