JP2007316905A - Computer system and method for monitoring application program - Google Patents
Computer system and method for monitoring application program Download PDFInfo
- Publication number
- JP2007316905A JP2007316905A JP2006145199A JP2006145199A JP2007316905A JP 2007316905 A JP2007316905 A JP 2007316905A JP 2006145199 A JP2006145199 A JP 2006145199A JP 2006145199 A JP2006145199 A JP 2006145199A JP 2007316905 A JP2007316905 A JP 2007316905A
- Authority
- JP
- Japan
- Prior art keywords
- probe
- application program
- monitoring
- data
- program
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3616—Software analysis for verifying properties of programs using software metrics
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
本願明細書で開示される技術は、アプリケーションプログラムの実行中の挙動を監視する方法に関し、特に、アプリケーションプログラム監視の設定及び制御を実行する方法に関する。 The technology disclosed in the present specification relates to a method for monitoring behavior during execution of an application program, and more particularly, to a method for executing setting and control of application program monitoring.
情報システムの運用管理者又は業務管理者は、業務アプリケーションが出力するログを用いてシステム及び業務の状態を監視する。ログには、ハードウェア、OS、アプリケーションサーバ等の業務アプリケーションを実行する情報システムの各階層において出力されるシステムログと、業務アプリケーションが出力するアプリケーションログがある。情報システムの各階層は、それぞれシステムログを出力する機能と、運用管理者又は業務管理者の要求に応じて、出力するログをシステムの運用中にカスタマイズする機能とを備える。 An information system operation manager or a business manager monitors the status of the system and the business using a log output by the business application. The log includes a system log output in each layer of the information system that executes business applications such as hardware, OS, and application server, and an application log output by the business application. Each layer of the information system has a function of outputting a system log and a function of customizing a log to be output during operation of the system in response to a request from an operation manager or a business manager.
情報システムによって処理されている業務の状態を監視するためには、システムログではなく、アプリケーションログが必要となる。業務の状態監視に必要となるアプリケーションログは、企業をとりまく法改正などの環境変化によって、アプリケーションの運用開始後に変化する可能性がある。このため、アプリケーションが出力するログを運用開始後に追加又は変更する必要がある。 In order to monitor the status of the business being processed by the information system, an application log is required instead of the system log. The application log required for business status monitoring may change after the start of application operation due to environmental changes such as amendments to the laws surrounding companies. For this reason, it is necessary to add or change the log output by the application after the operation is started.
アプリケーションログを出力する機能の実現方法は、アプリケーションプログラムの実装の形態によって異なる。 The method for realizing the function of outputting the application log differs depending on the implementation form of the application program.
昨今、業務アプリケーションの開発においては、モデル中心の開発手法が用いられるようになってきている。この開発手法によれば、経営者又は設計コンサルタントが、業務プロセスをBusiness Process Modeling Notation(BPMN)(非特許文献1参照)等のモデル記述言語を用いてモデル化する。作成されたモデルが実装レベルのモデルへと段階的に変換、詳細化されることによって、プログラムの実装レベルの仕様が作成される。そして、作成された仕様に基づいてアプリケーションプログラムが実装される(非特許文献2参照)。 Recently, in the development of business applications, a model-centric development method has been used. According to this development method, a manager or a design consultant models a business process using a model description language such as Business Process Modeling Notation (BPMN) (see Non-Patent Document 1). The created model is converted and refined step by step into an implementation level model, thereby creating an implementation level specification of the program. And an application program is mounted based on the produced specification (refer nonpatent literature 2).
図2は、アプリケーションの開発工程、及び、その過程で作成されるモデル図の説明図である。 FIG. 2 is an explanatory diagram of an application development process and a model diagram created in the process.
アプリケーションの開発においては、ビジネスプロセスモデリング表記法(BPMN)等を用いて作成された業務プロセス図301、Unified Modeling Language(UML)等のモデル記述言語を用いて作成されたUMLクラス図302、及び、UMLシーケンス図303等が用いられる。 In application development, a business process diagram 301 created using business process modeling notation (BPMN) or the like, a UML class diagram 302 created using a model description language such as Unified Modeling Language (UML), and the like A UML sequence diagram 303 or the like is used.
以下、業務プロセス図、UMLクラス図及びUMLシーケンス図等、アプリケーションの開発において用いられるモデル図を総称して設計情報と呼ぶ。 Hereinafter, model diagrams used in application development, such as business process diagrams, UML class diagrams, and UML sequence diagrams, are collectively referred to as design information.
このようなアプリケーション開発工程では、まず、業務プロセスを分析しモデル化することによって、抽象的な業務プロセス図301が作成される。作成された業務プロセス図301が、段階的に詳細化される。詳細化された業務プロセス図は、さらに、UMLクラス図302又はUMLシーケンス図303のモデルへと詳細化される。詳細化を繰り返すことによって、抽象的なアプリケーション設計モデルは、アプリケーションプログラムの実装に近いレベルのモデルに変換される。最終的に、実装レベルのモデルに基づいて、アプリケーションのプログラムコード304が実装される。
In such an application development process, first, an abstract business process diagram 301 is created by analyzing and modeling a business process. The created business process diagram 301 is detailed in stages. The detailed business process diagram is further refined into the model of the UML class diagram 302 or the UML sequence diagram 303. By repeating the refinement, the abstract application design model is converted into a model at a level close to the implementation of the application program. Finally, the
昨今の業務アプリケーションは、オブジェクト指向言語を用いて複数の小規模なソフトウェア部品であるコンポーネントを組み合わせることによって構築されることが一般的となっている。そのようなアプリケーションを構築するための基盤技術として、J2EE(非特許文献3参照)及び.NETがある。これらの基盤技術を用いて実装されたアプリケーションは、J2EEアプリケーションサーバ又は.NETアプリケーションサーバと呼ばれるアプリケーション運用基盤上で実行される。 In recent years, business applications are generally constructed by combining components, which are a plurality of small software parts, using an object-oriented language. As basic technologies for constructing such an application, there are J2EE (see Non-Patent Document 3) and .NET. Applications implemented using these platform technologies are executed on an application operation platform called a J2EE application server or .NET application server.
一方、異なるアプローチとして、業務プロセスを構成する各機能をサービスとして実装し、メッセージングシステムを用いてサービスの疎結合としてアプリケーションを実装するService Oriented Architecture(SOA)のアプローチが提唱されている(非特許文献4参照)。 On the other hand, as a different approach, a Service Oriented Architecture (SOA) approach has been proposed in which each function constituting a business process is implemented as a service, and an application is implemented as a loosely coupled service using a messaging system (non-patent literature). 4).
SOAによって実装されたアプリケーションでは、メッセージングシステムでサービス間のメッセージを捕捉することによって、アプリケーションで処理される業務の状態を監視することができる(非特許文献5参照)。メッセージングシステムによる監視は、サービスと独立して設定できるため、アプリケーションへの作りこみ無しにアプリケーションレベルの監視を実現し、運用中に監視内容のカスタマイズをすることができる。あるいは、サービス間でやりとりされる全てのメッセージを記録し、その後必要なメッセージを参照することによって、監視する内容を追加又は変更することができる。 In the application implemented by the SOA, the status of the business processed by the application can be monitored by capturing messages between services in the messaging system (see Non-Patent Document 5). Since monitoring by the messaging system can be set independently of the service, application level monitoring can be realized without creating an application, and monitoring contents can be customized during operation. Alternatively, the contents to be monitored can be added or changed by recording all messages exchanged between services and then referring to the necessary messages.
SOAのアプローチを取らない一般的なアプリケーションの場合、SOAアプリケーションのようにアプリケーションの挙動を外部から捕捉して業務の状態を監視することができない。従って、アプリケーションによって出力されるログを追加又は変更する場合、個々のログについて、ログを出力する機能をアプリケーションに個別に作りこむ必要があるため、アプリケーションプログラムの変更が必要であった。そのため、出力する個々のログに応じてログ出力コードを実装する手間がかかるという問題と、アプリケーションプログラムの変更のためにアプリケーションの運用を停止する必要があるという問題があった。 In the case of a general application that does not take the SOA approach, the behavior of the application cannot be monitored from the outside by monitoring the behavior of the application like the SOA application. Therefore, when adding or changing a log output by an application, it is necessary to create a function for outputting the log individually for each log, and thus the application program must be changed. Therefore, there is a problem that it takes time to implement a log output code according to each log to be output, and there is a problem that it is necessary to stop the operation of the application in order to change the application program.
アプリケーションにログ出力コードの追加又は変更を行うためにプログラムを変更する必要があるという問題を解決する方法として、バイトコードインスツルメンテーション技術(特許文献1参照)を用いる方法がある。バイトコードインスツルメンテーション技術は、アプリケーションプログラムのプログラムコードを動的に書き換えることによって、プログラム実行中の機能追加及び変更を実現する。この技術を用いて、ログ出力機能の動的な追加、変更を実現することができる。 As a method for solving the problem that a program needs to be changed in order to add or change a log output code to an application, there is a method using a bytecode instrumentation technique (see Patent Document 1). Byte code instrumentation technology dynamically adds and changes functions during program execution by dynamically rewriting the program code of an application program. Using this technology, it is possible to realize dynamic addition and change of the log output function.
特許文献2では、バイトコードインスツルメンテーション技術を用いて、事前に用意したログを出力するプログラムモジュールを選択して、そのプログラムモジュールを、実行中のアプリケーションプログラムに挿入するシステムが示されている。その結果、任意のアプリケーション監視を、アプリケーションの運用を止めずに追加することができる。
特許文献3では、アプリケーションプログラムの指定された箇所に、監視を実行するプログラムモジュールをアプリケーションプログラムの実行中に挿入し、実行パフォーマンスを監視するシステムが示されている。このシステムでは、プログラムのどこで監視を実行するかを、プログラムコードレベルで入力する。すると、入力した位置に、予め用意された監視を実行するプログラムモジュールが自動的に挿入され、監視が実行される。 Japanese Patent Application Laid-Open No. 2004-228561 discloses a system that monitors execution performance by inserting a program module for executing monitoring into a designated portion of an application program during execution of the application program. In this system, the location of the program to be monitored is input at the program code level. Then, a program module for executing monitoring prepared in advance is automatically inserted at the input position, and monitoring is executed.
また、ログ出力コードを実装する手間がかかるという問題を解決するために、ログ出力コードを自動的に生成する方法がある。非特許文献6では、アプリケーションを監視するプログラムモジュールを自動的に生成するシステムが示されている。このシステムでは、監視を行う箇所とそこで監視するデータをプログラムコードレベルで入力することによって、アプリケーションを監視するプログラムモジュールが自動的に生成される。
In addition, there is a method of automatically generating a log output code in order to solve the problem that it takes time and effort to implement the log output code. Non-Patent
また、アプリケーションの運用中に、出力するログを追加又は変更することを実現する別の方法として、特許文献4では、アプリケーションに事前に作りこんでおいた監視機能をアプリケーションの運用中に選択し、監視の実行を制御するユーザインタフェースを備えるシステムが示されている。この方法では、アプリケーション運用前に作りこんだ監視機能の範囲内で、運用中に監視の実行を制御することができる。しかし選択可能な監視機能をアプリケーションの運用中に追加又は変更することはできない。 In addition, as another method for adding or changing the log to be output during the operation of the application, in Patent Document 4, the monitoring function that has been created in advance in the application is selected during the operation of the application. A system with a user interface that controls the execution of monitoring is shown. In this method, execution of monitoring can be controlled during operation within the scope of the monitoring function created before application operation. However, selectable monitoring functions cannot be added or changed during application operation.
また、アプリケーションの監視を実行する際に、監視の実行によって生じる性能劣化を考慮する必要がある。アプリケーションを監視し、監視データを出力する処理は、一定の負荷を生じる。従って、監視負荷がアプリケーションプログラムの実行に出来るだけ影響を与えないように監視を実行する必要がある。 Further, when executing application monitoring, it is necessary to consider performance degradation caused by execution of monitoring. The process of monitoring the application and outputting the monitoring data generates a certain load. Therefore, it is necessary to execute monitoring so that the monitoring load does not affect the execution of the application program as much as possible.
監視項目の中には、常に監視する必要はないが、特定の状況下において監視する必要がある監視項目も存在する。このような監視項目が多数存在する場合に、それらの監視を常に実行することによって監視負荷が高くなり、その負荷がアプリケーションの実行に大きな影響を与える可能性がある。この問題に対処するため、全ての監視を常に実行するのではなく、監視を実行する条件を設定し、必要に応じて監視の実行を制御する方法がある。特許文献5では、ある監視項目の値に応じて別の監視項目を取得するか否かを制御するシステムが開示されている。この制御によって、必要以上の監視負荷をかけずに、状況に応じて必要な監視を実行することができる。このシステムでは、監視データの閾値と、閾値を超えた場合に実行される監視項目とを設定することによって、監視を実行する条件が設定される。
Some monitoring items do not always need to be monitored, but there are also monitoring items that need to be monitored under specific circumstances. When there are a large number of such monitoring items, the monitoring load increases by constantly executing such monitoring, and the load may greatly affect the execution of the application. In order to cope with this problem, there is a method in which conditions for executing monitoring are set, and monitoring execution is controlled as necessary, instead of always executing all monitoring.
また、特許文献6では、アプリケーションがログの出力に用いるログ出力装置において、ログの出力に要する所要時間を測定し、ログ出力の所要時間がアプリケーション全体の実行の所要時間に対して一定の割合以下となるようにログの出力レベルを調整するシステムが示されている。
これらアプリケーションプログラムを監視する従来の技術には、以下の様な問題があった。 The conventional techniques for monitoring these application programs have the following problems.
第1に、従来の技術は、アプリケーションプログラムへ監視機能を追加又は変更するために、監視を実行するプログラムモジュールを自動的に生成し、生成したプログラムモジュールをアプリケーション実行中に適用する。しかし、このような従来の技術を利用するためには、監視を実行する場所(点)及び監視対象のデータをプログラムコードのレベルで入力する必要があった。 First, in order to add or change a monitoring function to an application program, the conventional technique automatically generates a program module for executing monitoring, and applies the generated program module during execution of the application. However, in order to use such a conventional technique, it is necessary to input the location (point) for monitoring and the data to be monitored at the program code level.
一般に、追加又は変更されるログを必要とするのは運用管理者又は業務管理者であることが多い。一般に、運用管理者及び業務管理者は、アプリケーションの実装プログラムコードを理解していない。そのため、運用管理者及び業務管理者は、従来の技術を利用するために必要な、監視する内容のプログラムコードレベルでの入力を行うことが出来ない。従って、プログラムコードを理解しているアプリケーションの設計者又はプログラマが、運用管理者又は業務管理者の要求を受けて必要な情報を作成し、入力する必要がある。この手間が、迅速な監視機能の追加又は変更の妨げとなるという問題がある。 In general, it is often an operation manager or a business manager that needs a log to be added or changed. In general, operation managers and business managers do not understand application program code. Therefore, the operation manager and the business manager cannot input the contents to be monitored at the program code level necessary for using the conventional technology. Therefore, it is necessary for an application designer or programmer who understands the program code to create and input necessary information in response to a request from the operation manager or business manager. There is a problem in that this labor is an obstacle to the addition or change of the rapid monitoring function.
この問題に対処するために、入力する情報を事前に準備しておき、その情報の中から、運用管理者が必要に応じて選択したものを適用することもできる。しかし、必要となる可能性があるあらゆる監視内容を事前に把握し、必要な入力情報を用意しておくことは困難である。従って、上記の方法では、事前に想定していなかった監視内容を追加する必要が生じた場合に対処できず、本質的な解決策にはならない。 In order to cope with this problem, it is possible to prepare information to be input in advance, and apply the information selected by the operation manager as needed from the information. However, it is difficult to grasp in advance all the monitoring contents that may be necessary and prepare necessary input information. Therefore, the above method cannot deal with a case where it is necessary to add monitoring contents that were not assumed in advance, and is not an essential solution.
第2に、従来の技術を用いることによって、アプリケーションの状態に応じて監視を実行する項目を制御することができる。ここで、監視の実行を制御する条件を指定する際に、条件の判定に用いる監視項目が指定される。さらに、状態に応じて制御する対象である監視項目が指定される。このとき、指定可能な監視項目がプログラムコードレベルで名前付けされている場合、プログラムコードを理解していない限り、適切に監視の制御を設定できない。また、条件の判定に用いたいデータを監視する機能が存在しない場合、新規に監視機能を追加する必要がある。 Second, by using a conventional technique, it is possible to control items to be monitored according to the state of the application. Here, when a condition for controlling execution of monitoring is specified, a monitoring item used for determining the condition is specified. Furthermore, a monitoring item to be controlled according to the state is designated. At this time, if the monitor items that can be specified are named at the program code level, the monitoring control cannot be set appropriately unless the program code is understood. In addition, when there is no function for monitoring data to be used for condition determination, it is necessary to newly add a monitoring function.
また、従来技術では、アプリケーションからの監視データの出力をフィルタリングすることによって監視の実行が制御される。そのため、監視のためのプログラムコードは、監視データの出力の有無に関わらず、アプリケーションプログラム中に組み込まれ、アプリケーションの実行に従って監視コードの処理を実行する。そのため、監視データの出力を制御しても、完全に監視負荷を削減することができなかった。 In the prior art, the monitoring execution is controlled by filtering the output of the monitoring data from the application. Therefore, the program code for monitoring is incorporated in the application program regardless of whether or not monitoring data is output, and processing of the monitoring code is executed according to the execution of the application. Therefore, even if the output of monitoring data is controlled, the monitoring load cannot be reduced completely.
第3に、一般に、プログラムの実装を理解せずに監視負荷を見積もることは困難である。上記の第1の問題が解決されれば、アプリケーションプログラムの実装を意識することなくアプリケーションの監視機能を追加又は変更することができる。しかし、この場合、意図せずに監視負荷の高い監視機能をアプリケーションプログラムに追加してしまうことによって、アプリケーションプログラムの実行に重大な性能低下が引き起こされる可能性がある。 Third, it is generally difficult to estimate the monitoring load without understanding the program implementation. If the first problem is solved, the application monitoring function can be added or changed without being aware of the implementation of the application program. However, in this case, unintentionally adding a monitoring function with a high monitoring load to the application program may cause a serious performance degradation in the execution of the application program.
従来技術では、監視負荷はアプリケーション外部のログ出力装置において測定されるため、アプリケーションプログラム内部で処理される監視データの取得、生成及び外部への出力要求の処理の負荷を測定することが出来なかった。また、従来技術では、アプリケーションの監視機能全体の負荷が測定され、その結果に基づいて監視の実行が制御される。このため、個別の監視機能の負荷を測定し、その結果に基づいて監視の実行を制御することが出来なかった。 In the prior art, since the monitoring load is measured in the log output device outside the application, it is not possible to measure the load of monitoring data acquisition, generation and output request processing to be processed inside the application program. . In the prior art, the load of the entire monitoring function of the application is measured, and the execution of monitoring is controlled based on the result. For this reason, the load of the individual monitoring function is measured, and the execution of monitoring cannot be controlled based on the result.
上記の点から、本発明が解決しようとする第1の課題は、業務管理者又は運用管理者が理解しうる業務プロセスレベルで、監視を実行する箇所及び監視するデータが指定されたときに、人手を介さずに、指定された監視を実行するプログラムモジュールを生成し、そのプログラムモジュールをアプリケーションプログラムへ挿入するために必要なプログラムコードレベルの指定をする方法を提供することである。 From the above points, the first problem to be solved by the present invention is that when a location to be monitored and data to be monitored are designated at a business process level that can be understood by a business manager or an operations manager, It is an object of the present invention to provide a method for generating a program module for executing specified monitoring without manual intervention and specifying a program code level necessary for inserting the program module into an application program.
本発明が解決しようとする第2の課題は、アプリケーションの監視を条件に基づいて制御することによって、状況に応じて適切な監視を実行することを、プログラムの知識を必要とせずに可能とすることである。 The second problem to be solved by the present invention is to control application monitoring based on conditions, thereby enabling appropriate monitoring according to the situation without requiring knowledge of the program. That is.
本発明が解決しようとする第3の課題は、アプリケーションプログラムに新規の監視機能を追加した結果、追加された監視機能の負荷によってアプリケーションプログラムの実行に重大な性能低下が生じることを防止することである。 The third problem to be solved by the present invention is to prevent the performance of the application program from being seriously degraded due to the load of the added monitoring function as a result of adding a new monitoring function to the application program. is there.
本願で開示する代表的な発明は、アプリケーションプログラムを実行する計算機システムにおいて、前記計算機システムは、前記アプリケーションプログラムの開発工程の一つの段階における設計情報の構成要素と、前記一つの段階より進んだ段階における設計情報の構成要素との対応関係を示す情報を保持し、前記対応関係を示す情報に基づいて、前記アプリケーションプログラムの開発工程の一つの段階における設計情報の構成要素と、前記アプリケーションプログラムのコードとを対応付けることを特徴とする。 A representative invention disclosed in the present application is a computer system that executes an application program, wherein the computer system includes components of design information in one stage of the development process of the application program and a stage advanced from the one stage. The information indicating the correspondence relationship with the component of the design information is stored, and based on the information indicating the correspondence relationship, the component of the design information in one stage of the development process of the application program and the code of the application program Are associated with each other.
本発明の一実施形態によれば、プログラムの実装を理解していない業務管理者又は運用管理者等であっても、業務の視点で理解できる上流のアプリケーション設計情報上で、アプリケーションプログラムの監視を指定することができる。指定された監視を実現するためのプログラムモジュールは、設計者又はプログラマの作業を必要とせずに、直ちにアプリケーションプログラムに追加され、又は変更される。また、プログラミング作業を必要とせずに、複数の監視機能を協調動作させ、アプリケーションプログラムの実行状態に応じた適切な監視を容易に実現することができる。さらに、不用意な監視設定が、アプリケーションプログラムの実行に重大な性能低下を引き起こすことを防止し、アプリケーション監視の設定を安全に行うことができる。 According to an embodiment of the present invention, even if a business administrator or operation manager who does not understand the implementation of the program, the application program is monitored on the upstream application design information that can be understood from the business viewpoint. Can be specified. The program module for realizing the specified monitoring is immediately added or changed to the application program without requiring the work of the designer or programmer. In addition, it is possible to easily implement appropriate monitoring according to the execution state of the application program by cooperating a plurality of monitoring functions without requiring programming work. Furthermore, careless monitoring settings can be prevented from causing serious performance degradation in the execution of application programs, and application monitoring settings can be performed safely.
以下、本発明の実施の形態について、図面を参照し説明する。 Embodiments of the present invention will be described below with reference to the drawings.
図1は、本発明の第1の実施の形態のアプリケーションプログラム監視システムの構成を示すブロック図である。 FIG. 1 is a block diagram showing a configuration of an application program monitoring system according to the first embodiment of this invention.
公知のアプリケーションサーバ160は、アプリケーションプログラム170を公知のプログラム記憶装置(図示省略)から読み込み、実行する。本実施の形態では、アプリケーションサーバ160がJava 2 Enterprise Edition(J2EE)(Javaは登録商標)アプリケーションサーバであり、アプリケーションプログラム170がJ2EEを用いて実装されたアプリケーションプログラムである場合を例として説明する。また、本実施の形態において、アプリケーションサーバ160は、実行するアプリケーションプログラム170を、バイトコードインスツルメンテーション技術を用いて実行中に書き換える機能、及び、書き換え機能を制御するインタフェース(図示省略)を備える。
The known
ユーザインタフェース110は、本システムで実行されるアプリケーションプログラムの監視を設定及び管理するユーザインタフェースである。
The
対応検索部115は、設計対応関係記憶部130に記憶された情報を用いて、設計情報記憶部120に記憶された、アプリケーションの開発工程で作成された設計情報の構成要素間の対応関係を検索する。
The
ここで、設計情報とは、アプリケーションプログラム170の開発の際に用いられるモデル図等の総称である。設計情報の構成要素とは、設計情報上の点(箇所)又はデータ等である。例えば、設計情報の構成要素は、業務プロセス図におけるアクティビティ又は接続フローであってもよいし、UMLシーケンス図におけるメッセージであってもよいし、クラス図におけるクラス、メソッド又はフィールドであってもよいし、プログラムコードにおけるクラス、メソッド又はフィールドであってもよい。
Here, the design information is a general term for model diagrams and the like used when the
管理部141は、設定に従って、アプリケーションサーバ160においてアプリケーションプログラム170の監視を実行するプログラムモジュールを生成し、さらに、生成したプログラムモジュールをアプリケーションプログラム170に挿入する。この監視を実行するプログラムモジュールをプローブと呼ぶ。
The
条件制御部143は、所定の条件に基づいてプローブの監視動作を制御する。
The
負荷制御部145は、プローブの監視動作の負荷によるアプリケーションプログラム170への影響を測定し、制御する。
The
公知の監視イベント出力部180は、アプリケーションプログラム170に対して、監視イベントを出力するApplication Programming Interface(API)を提供する。監視イベント出力部180の例としては、JavaのロギングAPIであるJava Logging API又はLog4J等がある。監視イベント出力部180は、公知の監視イベント記録部190に、監視イベントをユーザが指定した形式で出力する。監視イベント記録部190は、例えば、ファイルシステム又はデータベース等であってもよい。
A known monitoring
図24は、本発明の第1の実施の形態のアプリケーションプログラム監視システムの物理的な構成を示すブロック図である。 FIG. 24 is a block diagram illustrating a physical configuration of the application program monitoring system according to the first embodiment of this invention.
具体的には、図24は、図1に示したシステムを実現するコンピュータシステムの一例を示している。このコンピュータシステムは、CPU2703、主記憶2705、外部記憶装置2707、入力装置2709、出力装置2711及びネットワークインタフェース2713を備える。これらはバス2701によって接続されている。
Specifically, FIG. 24 shows an example of a computer system that implements the system shown in FIG. This computer system includes a
CPU2703は、主記憶2705に格納されたプログラムを実行するプロセッサである。以下の説明において、主記憶2705に格納されたプログラムが実行する処理は、実際にはCPU2703によって実行される。
The
主記憶2705は、例えば、半導体装置である。主記憶2705には、外部記憶装置2707から読み込まれたソフトウェアプログラム及びそのプログラムによって参照される情報等が格納される。
The
入力装置2709は、例えば、キーボード又はマウスである。
The
出力装置2711は、例えば、ディスプレイ装置である。
The
外部記憶装置2707は、例えば、ハードディスク装置である。図1に示す設計情報記憶部120、設計対応関係記憶部130及び監視イベント記録部190は、外部記憶装置2707内の記憶領域として実現される。これらの記憶部は、例えば、データベースとして実装されてもよい。さらに、図1に示すアプリケーションプログラム監視システムを構成するソフトウェアプログラムが外部記憶装置2707に格納される。
The
アプリケーションプログラム監視システムを構成するソフトウェアプログラムとは、具体的には、ユーザインタフェース110、対応検索部115、管理部141、条件制御部143、負荷制御部145及び監視イベント出力部180である。それらのソフトウェアプログラムが主記憶2705に読み込まれ、CPU2703がそれらを実行することによって、図1に示すシステムが実現される。ユーザインタフェース110は、入力装置2709及び出力装置2711を用いて、ユーザからの入力の受け付け及びユーザへの情報の出力を実行する。
Specifically, the software programs constituting the application program monitoring system are the
図1に示すシステムが、一つのコンピュータシステムによって実現される場合、外部記憶装置2707は、さらにアプリケーションサーバ160及びアプリケーションプログラム170を格納する。その場合、アプリケーションサーバ160及びアプリケーションプログラム170は、主記憶2705に読み込まれ、CPU2703によって実行される。
When the system shown in FIG. 1 is realized by a single computer system, the
図1に示すアプリケーションプログラム監視システムは、一つのコンピュータシステムではなく、ネットワークインタフェース2713を介して接続された複数のコンピュータシステムによって実現することもできる。その場合、図1に示す各部が複数のコンピュータシステム上に分かれて配置され、ネットワークインタフェース2713を介して接続される。
The application program monitoring system shown in FIG. 1 can also be realized by a plurality of computer systems connected via a
次に、図1に示す管理部141が、与えられたアプリケーションプログラムの監視設定に基づいてアプリケーションプログラムの監視を実行する処理の流れを、図3及び図4を参照して説明する。
Next, a flow of processing in which the
図3は、本発明の第1の実施の形態の管理部141の構成を示す説明図である。
FIG. 3 is an explanatory diagram illustrating a configuration of the
管理部141は、プローブ定義記憶部1601、プローブ生成部1604及びプローブ挿入部1608を含む。プローブ定義記憶部1601は、主記憶2705又は外部記憶装置2707に確保された記憶領域である。プローブ生成部1604及びプローブ挿入部1608は、管理部141に含まれるプログラムモジュールである。ユーザインタフェース110、アプリケーションサーバ160、アプリケーションプログラム170、監視イベント出力部180及び監視イベント記録部190は、図1に示したものと同一である。
The
アプリケーションプログラム170は、アプリケーションサーバ160に読み込まれ、実行される。
The
プローブ1610は、アプリケーションプログラム170に挿入され、アプリケーションプログラム170の監視を実行するプログラムモジュールである。
The
プローブ定義記憶部1601は、プログラムコードレベルで記述されたアプリケーションプログラム170の監視設定であるプローブ定義を記憶する。プローブ定義によって、アプリケーションプログラムにおける監視を実行する「場所(点)」と、監視する「項目」が、プログラムコードの構成要素を用いて明示的に指定される。
The probe
図4は、本発明の第1の実施の形態のプローブ定義記憶部1601の構成例を示す説明図である。
FIG. 4 is an explanatory diagram illustrating a configuration example of the probe
プローブ定義記憶部1601が記憶するプローブ定義は、プローブID1001、プローブ番号1002、プローブ名称1003、プローブ挿入ポイント1012及び監視データ1021からなる。
The probe definition stored in the probe
プローブID1001は、プローブ1610を一意に識別するためのIDであり、プローブ1610及びプローブ1610が出力する監視データを識別するために用いられる。
The
プローブ番号1002は、同一のプローブID1001を持つプローブ定義が複数存在する場合に、それらを識別する通し番号である。本実施の形態では、一つのプローブIDを持つプローブ定義は一つしか存在しないので、プローブ番号1002は常に「1」となる。そのため、本実施の形態ではプローブ番号1002は必須項目ではない。
The
プローブ名称1003は、プローブ1610に付与された名称である。
The
プローブ挿入ポイント1012は、プローブ1610が挿入される場所(点)を指定する。具体的には、プローブ挿入ポイント1012は、アプリケーションプログラムの構成要素によって指定される。
The
監視データ1021は、プローブ1610が取得し、出力するデータを指定する。プローブ1610が取得し、出力するデータとは、通常、いわゆるアプリケーションログとして取得されるものである。プローブ1610は、アプリケーションログとして、例えば、アプリケーションプログラム170によって処理される入出力パラメータ等のデータ、又は、アプリケーションプログラム170の処理時間等を取得し、出力する(図3のS305参照)。
The
図4の例において、1行目のプローブ定義は、プローブID1001が「P001」であるプローブ1610が、メソッド「FuncA.method1(String d1,String d2)」に挿入され、メソッドの第1引数「d1」を監視データとして取得することを示している。また、3行目の監視データ1021の項目に指定された「__responseTime」は、メソッドの処理時間を示す。すなわち、3行目のプローブ定義は、プローブID1001が「P003」であるプローブ1610が、メソッド「FuncC.method3(Data2 d)」に挿入され、そのメソッドの処理時間を監視データとして取得することを示している。
In the example of FIG. 4, in the probe definition on the first line, the
本実施の形態において、プローブ1610は、公知技術であるアスペクト指向プログラミングにおけるアドバイスとして実現される。プローブ挿入部1608は、アドバイスとして定義されたプローブ1610のプログラムコードを、アスペクト指向プログラミングフレームワークによってアプリケーションプログラム170に組み込むことによって、プローブ1610をアプリケーションプログラム170に挿入する。プローブ1610を挿入する点は、プローブ定義で指定されるプローブ挿入ポイント1012に基づいて作成されたポイントカットをアスペクト指向プログラミングフレームワークへの入力とすることによって指定される。
In the present embodiment, the
アプリケーションプログラム170へのプローブ1610の挿入は、動的なアドバイスの組み込みをサポートするアスペクト指向プログラミングフレームワーク(Dynamic AOPフレームワーク)を用いることによって、アプリケーションプログラム170の実行中に、動的に実行することができる。Dynamic AOPフレームワークの例として、JBoss AOPがある。
The
なお、アプリケーションプログラム170の実行中に、動的にプログラムコードを更新する任意の技術を用いることによって、プローブ1610の形態及びプローブ1610のアプリケーションプログラム170への挿入を実現することができる。
Note that by using any technique for dynamically updating the program code during the execution of the
また、プローブ1610は、アプリケーションプログラム170が実行されていないときに挿入されてもよい。しかし、プローブ挿入部1608がアプリケーションプログラム170の実行中にプローブ1610を挿入する機能を持たない場合、プローブ1610を挿入又は除去するときに、アプリケーションプログラム170の全体又は一部を停止し、その後再起動する必要がある。
The
次に、プローブ定義に基づいてアプリケーションプログラム170の監視を実行する処理の流れを、図3を参照して説明する。まず、管理部141内のプローブ生成部は、外部からの要求(S301)に応じて、プローブ定義記憶部1601からプローブ定義を取得する(S302)。この要求は、例えば、業務管理者又は運用管理者がユーザインタフェース110を使用して入力した要求である。そして、プローブ生成部1604は、指定されたデータを取得し、そのデータを監視データとして出力するプローブ1610のプログラムコードを、プローブ定義に監視データ1021の内容に基づいて、アスペクト指向プログラミングのアドバイスとして生成する。
Next, a flow of processing for executing monitoring of the
プローブ1610のコード生成には、公知のプログラムコード自動生成技術が用いられる。具体的には、プローブ挿入ポイント1012及び監視データ1021を入力として与えられたプローブ生成部1604は、入力に従って、プローブ1610のプログラムコードを自動生成する。このとき生成されるプログラムコードは、入力されたプローブ挿入ポイント1012に対応するアプリケーションプログラム170のコード上の点で、入力された監視データ1021に対応するデータを取得し、そのデータを監視イベント出力部180のAPIを用いて出力する(S305、S306)プログラムコードである。
A known program code automatic generation technique is used for code generation of the
図5は、本発明の第1の実施の形態においてアドバイスとして生成されるプローブ1610のコード例を示す説明図である。
FIG. 5 is an explanatory diagram illustrating a code example of the
図5は、図4に例示したプローブID1001が「P002」であるプローブ定義に基づいて生成されるプローブ1610の例を示している。プローブ1610は、Interceptorクラスを継承する一つのクラスとして、プローブ生成部1604によって生成される。一つのプローブに対して一つのプローブアドバイスが生成される。Staticフィールドlogger(5行目)は、監視データを出力する監視イベント出力部180へのインタフェースであり、プローブ1610の挿入時に実行される初期化コード(図示省略)によって設定される。
FIG. 5 shows an example of the
プローブアドバイスのメソッドinvokeが、アプリケーションプログラム監視を実行するコードである。invokeメソッドのコードが、Dynamic AOPフレームワークによってアプリケーションプログラム170の指定された点に挿入される。
The probe advice method “invoke” is code for executing application program monitoring. The code for the invoke method is inserted at a specified point in the
invokeメソッドでは、まず、JBoss AOPが提供するAPIを用いて、プローブが挿入されたメソッドの第一引数のオブジェクトを取得する(8行目)。更に、そのオブジェクトから特定のフィールドの値を取得し(9行目)、プローブ定義で指定された監視データを取得する。そして、出力する監視イベントオブジェクトeventを生成する(10行目)。監視イベントオブジェクトには、プローブIDが設定される。このプローブIDは監視データを識別するために用いられる。次いで、loggerインタフェースを用いて、生成されたeventオブジェクトを監視イベント出力部180へ出力する(11行目)。その後、このプローブ1610が挿入されたメソッド本体の処理を実行する(12行目)。
In the invoke method, first, using the API provided by JBoss AOP, the object of the first argument of the method in which the probe is inserted is acquired (line 8). Furthermore, the value of a specific field is acquired from the object (line 9), and the monitoring data specified by the probe definition is acquired. Then, the monitoring event object event to be output is generated (line 10). A probe ID is set in the monitoring event object. This probe ID is used to identify monitoring data. Next, the generated event object is output to the monitoring
プローブ挿入部1608は、プローブ生成部1604によって生成されたプローブ1610を、Dynamic AOPフレームワークによってアプリケーションプログラム170に動的に挿入する(図3のS304参照)。プローブ1610の挿入位置を指定するポイントカットは、プローブ定義のプローブ挿入ポイント1012に基づいて生成される。例えば、図4に示すプローブ定義において、プローブIDが「P002」であるプローブ1610の挿入位置を指定するポイントカットは、“execution(* FuncB->method2(Data1))”となる。
The
プローブ挿入部1608は、プローブ1610を挿入するために、JBoss AOPが提供するアスペクトマネージャに、生成したプローブアスペクトのクラスオブジェクト、ポイントカット及びプローブIDを与える(図6参照)。
In order to insert the
図6は、本発明の第1の実施の形態のプローブ1610をアプリケーションプログラム170に追加するためのプログラムコードの例を示す説明図である。
FIG. 6 is an explanatory diagram illustrating an example of a program code for adding the
図6は、例として、図5に示すプローブ1610をアプリケーションプログラム170に挿入するために、プローブ挿入部1608によって生成されるプログラムコードを示す。以下、図6のプログラムコードによって実行される処理の手順を説明する。
FIG. 6 shows, as an example, program code generated by the
まず、プローブ1610を挿入する位置を指定するポイントカットのAdviseBindingオブジェクトbindingを生成する(1行目)。
First, an AdviseBinding object binding of a point cut that specifies a position where the
次に、生成したAdviseBindingオブジェクトの名称としてプローブIDを設定し(2行目)、プローブアドバイスのクラスを設定する(3行目)。 Next, a probe ID is set as the name of the generated AdviseBinding object (second line), and a probe advice class is set (third line).
次に、このAdviseBindingオブジェクトをアスペクトマネージャに登録する(4行目)。 Next, this AdviseBinding object is registered in the aspect manager (line 4).
アスペクトマネージャは、登録されたAdviseBindingオブジェクトに設定されたポイントカット及びアドバイスクラスに従って、アプリケーションプログラム170のバイトコードを書き換えることによって、プローブアドバイスのプログラムコードを挿入する。
The aspect manager inserts the program code of the probe advice by rewriting the byte code of the
また、プローブ挿入部1608は、外部からの要求に応じて、既にアプリケーションプログラム170に挿入されているプローブ1610を、Dynamic AOPフレームワークの機能を用いてアプリケーションプログラム170から除去することもできる。プローブ1610の除去は、アスペクトマネージャのremoveBindingメソッドを、除去するプローブ1610のIDを引数として呼び出すことによって実行される。アスペクトマネージャは、アプリケーションプログラム170のバイトコードを書き換えることによって、引数として渡されたプローブIDを名称とするAdviseBindingオブジェクトに設定されたアドバイスのプログラムコードを取り除く。
The
次に、対応検索部115が設計対応関係を用いて、「監視を実行する点」の設計情報上における指定に対して、対応するプログラムコード上の点、即ち、プローブ定義におけるプローブ挿入点を検索する処理の流れを説明する。
Next, the
最初に、設計対応関係について、図7の例を参照して説明する。 First, the design correspondence will be described with reference to the example of FIG.
図7は、本発明の第1の実施の形態の設計対応関係の例を示す説明図である。 FIG. 7 is an explanatory diagram illustrating an example of the design correspondence relationship according to the first embodiment of this invention.
設計対応関係は、設計対応関係記憶部130に記憶される。設計対応関係は、対応元要素601及び対応先要素603からなる。対応元要素601には、アプリケーションプログラム開発工程の任意の段階で作成された設計情報の構成要素が記憶される。対応先要素603には、対応元要素601として記憶された各構成要素と設計対応関係にある構成要素が記憶される。設計対応関係にある構成要素とは、より開発工程の進んだ段階で作成された設計情報の構成要素である。例えば、図7の設計対応関係611として、対応元要素601「A01.機能1」及び対応先要素603「B02.機能1.処理1(データ1 X)」が記憶されている。これは、ある段階の開発工程における構成要素「A01.機能1」が、一段階進んだ開発工程においては、構成要素「B02.機能1.処理1(データ1 X)」となることを意味する。
The design correspondence relationship is stored in the design correspondence
なお、一つの構成要素に対して、一つ又は複数の構成要素が設計対応関係にある場合がある。本実施の形態では、一つの構成要素に対して一つの構成要素のみが対応する場合について説明する。一つの構成要素に対して複数の構成要素が対応する場合については、第2の実施の形態において後述する。 Note that one or a plurality of components may be in a design correspondence relationship with respect to one component. In the present embodiment, a case will be described in which only one component corresponds to one component. The case where a plurality of components correspond to one component will be described later in the second embodiment.
複数の設計情報にわたって任意の構成要素を特定し、構成要素間の設計対応関係を表現するために、設計情報の各構成要素には、それらを一意に識別するIDが付与される。このIDが、設計対応情報として記憶される。本実施の形態では、このIDをオブジェクトIDと呼ぶ。 In order to identify an arbitrary constituent element over a plurality of design information and express a design correspondence between the constituent elements, each constituent element of the design information is given an ID for uniquely identifying them. This ID is stored as design correspondence information. In this embodiment, this ID is called an object ID.
本実施の形態では、オブジェクトIDは、それが識別する構成要素を含む設計情報のIDと、各構成要素のIDとによって構成される。例えば、図7の例において、設計対応関係611の対応元要素のオブジェクトID”A01.機能1"”は、IDがA01である業務プロセス図に存在する、機能1を表すアクティビティ要素を示す。設計情報のIDは、アプリケーションプログラム170の開発工程の段階を示すアルファベット(例えば、A)と、各段階における設計情報の通し番号(例えば、01)で表す。
In the present embodiment, the object ID is composed of an ID of design information including a component identified by the object ID and an ID of each component. For example, in the example of FIG. 7, the object ID “
オブジェクトIDは、設計情報の構成要素を一意に識別できればよい。また、オブジェクトIDから、それが指す構成要素を含む設計情報を特定することができればよい。従って、オブジェクトIDは、その一部に設計情報のIDを含んでいることが望ましい。 The object ID only needs to uniquely identify the component of the design information. Further, it is only necessary that design information including the component pointed to by the object ID can be specified. Therefore, it is desirable that the object ID includes the design information ID as a part of the object ID.
図7は、A、B及びCの三つの段階の設計情報を用いて開発されたアプリケーションプログラム170について、段階Aの業務プロセス図の2つのアクティビティ要素(機能1及び機能2)に関する設計対応関係を示している。具体的には、図7の例の設計対応情報は、処理(メソッド)の設計対応関係(611、612、614、617、631、632)、処理の入力データの設計対応関係(615、616)、及び、処理の入力データに用いるデータ構造の設計対応関係(620〜622)を記憶している。
FIG. 7 shows the design correspondence relationship between the two activity elements (
処理の入力データの設計対応関係を示すために、各入力データのオブジェクトIDが用いられる。入力データのオブジェクトIDは、処理の名称と、入力データの表現とを連結することによって構成される。例えば、設計対応関係615では、設計情報B02におけるメソッド“機能1.処理1”の入力データ“X.a”と、設計情報C 02におけるメソッド“FuncA.method1”の入力データd1とが対応していることを示している。
In order to show the design correspondence of the input data of the process, the object ID of each input data is used. The object ID of the input data is configured by concatenating the process name and the input data expression. For example, in the design correspondence relationship 615, the input data “Xa” of the method “
また、設計対応関係631及び632は、設計情報C02の構成要素が、実装されたアプリケーションプログラム170の特定のメソッドに対応していることを示している。
The
本発明において、設計対応情報の生成、及び、その設計対応情報の設計対応情報記憶部130への蓄積は、任意の方法によって実行することができる。ただし、アプリケーションプログラム170の開発工程で作成される各設計情報に対して、適切な設計対応情報が記憶されている必要がある。
In the present invention, generation of design correspondence information and accumulation of the design correspondence information in the design correspondence
設計対応情報の生成及び設計対応情報記憶部への蓄積は、アプリケーションプログラム170の開発工程において、開発工程の段階が進んだ設計情報が作成されるたびに実行されることが望ましい。そのために、アプリケーションプログラム170の開発工程で使用されるアプリケーション設計ツールが、設計対応情報の生成及び記憶を実行する機能を備えることが望ましい。
The generation of the design correspondence information and the accumulation in the design correspondence information storage unit are preferably executed every time design information that has advanced in the development process is created in the development process of the
次に、設計情報上で指定された「監視する点(すなわち、監視の対象の点)」から、指定された監視を行うプローブを挿入する点を、記憶された設計対応関係を用いてプログラムコードレベルで検索する処理の流れを、図8を参照して説明する。 Next, the program code using the stored design correspondence relationship is inserted from the “monitoring point (that is, the point to be monitored)” designated on the design information to the point where the designated monitoring probe is to be inserted. The flow of processing for searching by level will be described with reference to FIG.
図8は、本発明の第1の実施の形態の対応検索部115がプローブ1610を挿入する点を検索する処理のフローチャートである。
FIG. 8 is a flowchart of processing for searching for a point at which the
図8の説明では、図7に示した設計対応関係の例を用いる。 In the description of FIG. 8, the example of the design correspondence shown in FIG. 7 is used.
ユーザ(例えば、業務管理者又は運用管理者)が設計情報の構成要素を指定することによって、監視する点が指定される。指定された構成要素のオブジェクトIDが、対応検索部115に入力される。
A point to be monitored is specified by a user (for example, a business administrator or an operation manager) specifying a component of design information. The object ID of the designated component is input to the
まず、ステップ1201において、対応検索部115は、入力されたオブジェクトIDによって変数oidを初期化する。
First, in
次に、ステップ1202において、対応検索部115は、oidをキーとして設計対応関係記憶部130にアクセスし、oidを対応元要素601とする設計対応関係を検索する。そして、対応検索部115は、この検索の結果取得された設計対応関係の対応先要素603に記憶されているオブジェクトIDを変数nextOidに格納する。
Next, in
次に、ステップ1203において、対応検索部115は、nextOidがアプリケーションプログラム170の実装プログラムコードの構成要素と対応していることを表す特別なオブジェクトIDであるか否かを判定する。実装プログラムコードの構成要素とは、例えば、特定のメソッド等である。
In
ステップ1203において、nextOidがアプリケーションプログラム170の実装プログラムコードの構成要素を識別する特別なIDであると判定された場合、検索された構成要素は、特定のメソッド等と対応している。その場合、処理はステップ1205に移行し、対応検索部115は、nextOidが示すプログラムコード要素を検索結果として出力し、処理を終了する。
If it is determined in
一方、ステップ1203において、nextOidがアプリケーションプログラム170の実装プログラムコードの構成要素を識別する特別なIDでないと判定された場合、指定された構成要素に対応する実装プログラムコードの構成要素がまだ検索されていない。この場合、対応検索部115は、ステップ1204において、検索されたnextOidの値でoidを更新し、ステップ1202に戻る。
On the other hand, if it is determined in
ステップ1202乃至ステップ1204の処理を繰り返すことによって、抽象度の高い、開発工程の初期の設計情報の構成要素から、開発工程の各段階の設計情報の構成要素を段階を追って検索し、最終的にプログラムコードの構成要素が検索される。
By repeating the processing of
例えば、図7に示した設計対応関係の例において、業務プロセス図「A01」のアクティビティ「機能1」が監視するポイントとして指定された場合について説明する。この場合、そのオブジェクトIDである“A01.機能1”がoidの初期値となる(ステップ1201)。その後、対応検索部115は、ステップ1202から1204を繰り返し実行することによって、設計対応関係を順に検索する。
For example, the case where the activity “
検索の結果、“A01.機能1”と対応する“B02.機能1.処理1(データ1 X)”が取得され(対応関係611)、“B02.機能1.処理1(データ1 X)”と対応する“C02.FuncA.method1(String d1,String d2)”が取得され(対応関係614)、“C02.FuncA.method1(String d1,String d2)”と対応する“CODE.FuncA.method1(String d1,String d2)”が取得される(対応関係631)。
As a result of the search, “B02.Function 1.Processing 1 (Data 1 X)” corresponding to “
“CODE.FuncA.method1(String d1,String d2)”がプログラムコードの構成要素であるため(ステップ1203)、メソッド“FuncA.method1(String d1,String d2)”が機能1に対応するプログラムコードの要素であることが検索される(ステップ1205)。このメソッドにプローブ1610を挿入することによって、「機能1」における監視が実行される。指定された点において監視する対象が、挿入するプローブを個別に生成する必要がないものである場合、検索されたプログラムコード上のポイントに事前に用意されたプローブアドバイスを挿入することによって、指定された監視を実行する。挿入するプローブを個別に生成する必要がない監視対象とは、例えば、処理時間である。
Since “CODE.FuncA.method1 (String d1, String d2)” is a component of the program code (step 1203), the method “FuncA.method1 (String d1, String d2)” is the program code corresponding to function 1. The element is searched for (step 1205). By inserting the
以上の処理によって、設計情報上で指定された「監視する点」に対応するプログラムコード上のポイントが、記憶した設計対応関係を用いて検索される。そして、検索されたポイントの監視が実行される。その結果、実装されたプログラムコードを意識する必要なく、アプリケーションプログラム開発工程で作成した設計情報上でアプリケーションプログラム170の監視を指定することが実現される。
Through the above processing, a point on the program code corresponding to the “point to be monitored” designated on the design information is retrieved using the stored design correspondence. Then, the searched points are monitored. As a result, it is possible to specify monitoring of the
上記図8は、「監視する点」が設計情報上で指定された場合の対応検索部115の処理である。一方、設計情報上の任意のデータが、「監視するデータ(すなわち、監視対象のデータ)」として指定される場合もある。設計情報上の任意のデータとは、業務プロセス上で処理されるデータであり、例えば、いずれかの処理の入出力パラメータである。続いて、「監視するデータ」が設計情報上で指定された場合に、対応検索部115が実行する処理の流れを説明する。この場合、対応検索部115は、設計対応関係を参照して、指定された「監視するデータ」に対応するプログラムコードの構成要素、即ち、プローブ定義における監視データ1021を検索する。
FIG. 8 shows the processing of the
「監視するデータ」の検索は、前述した「監視する点」の検索と同様の処理によって実行される。 The search for “data to be monitored” is executed by the same process as the search for “point to be monitored” described above.
設計対応関係には、設計情報間の「処理」の対応関係だけでなく、「データ構造」及び「入出力パラメータ」の対応関係も含まれる。例えば、図7において、設計対応関係615及び616は、設計対応関係にある処理の入力パラメータ同士の対応関係を示している。設計対応関係615は、処理1の入力パラメータ「X」のフィールド「a」が、処理1に対応するメソッド「method1」の第1引数に対応することを示している。
The design correspondence includes not only the “processing” correspondence between the design information but also the “data structure” and “input / output parameters”. For example, in FIG. 7,
設計対応関係620乃至622は、データ構造「データ1」と、データ構造「Data1」の各フィールドとの対応関係を示す。
The
例えば、アプリケーションプログラム開発工程のある段階のクラス図「B02」において、クラス「機能1」のメソッド「処理1」の入力パラメータ「X」について、そのフィールド「b」を監視することを指定する場合、運用管理者又は業務管理者は、対応検索部への入力としてオブジェクトID“B02.機能1.処理1#X.b”を与える。以降、図8に示したフローに従って設計対応関係をたどることによって、実装されたプログラムにおいては、クラス「FuncA」のメソッド「method1」における第2引数「d2」が、指定された監視するデータに対応していることが検索される。この例の場合、監視するデータと共に、監視する点も同時に指定される。このため、検索によって、プローブを挿入するポイントと、プローブが取得するデータの両方が決定され、指定された監視が実行される。
For example, in the class diagram “B02” at a certain stage of the application program development process, when specifying to monitor the field “b” for the input parameter “X” of the method “
設計対応関係記憶部には、監視を実行する点及びデータとして指定可能な全ての構成要素についての設計対応関係が記憶されてもよい。しかし、複数の設計対応関係又は設計情報に関する情報を組み合わせることによって、別の設計対応関係を類推することができる場合、その類推可能な設計対応関係の記憶を省略することによって、設計対応関係の記憶に要するコストを削減することができる。 The design correspondence relationship storage unit may store design correspondence relationships for all components that can be designated as points to be monitored and data. However, when it is possible to infer another design correspondence by combining a plurality of design correspondences or information on design information, it is possible to store the design correspondence by omitting the storage of the design correspondence that can be inferred. The cost required for this can be reduced.
図7の設計対応関係617の例は、対応元の処理における入力パラメータ「X」が対応先の処理の入力パラメータ「d1」に対応していることを示している。しかし、入力パラメータ「X」の個々のフィールドについての設計対応関係は記憶されていない。しかし、入力パラメータ「X」のデータ構造である“B11.データ1”と、入力パラメータ「d1」のデータ構造である“C11.Data1”の設計対応関係620乃至622を用いることで、記憶されていない設計対応関係を類推することができる。その処理の流れを図9を用いて説明する。
The example of the design correspondence 617 in FIG. 7 indicates that the input parameter “X” in the processing of the correspondence source corresponds to the input parameter “d1” of the processing of the correspondence destination. However, the design correspondence relationship for each field of the input parameter “X” is not stored. However, it is stored by using the
図9は、本発明の第1の実施の形態の対応検索部115が設計対応関係を類推する処理のフローチャートである。
FIG. 9 is a flowchart of processing in which the
この処理は、図8に示した設計対応関係を用いてプログラムコード要素を特定するフローにおける、ステップ1202の処理に相当する。
This process corresponds to the process of
まず、ステップ1301において、対応検索部115は、入力されたオブジェクトIDを変数oidに格納する。上記の例では、オブジェクトIDとして、“B02.機能2.処理2#X.a”、すなわち、「処理2」のパラメータ「X」のフィールド「a」が入力される。
First, in
次に、ステップ1303において、対応検索部115は、oidをキーとして、設計対応関係記憶部130にアクセスし、oidを対応元要素601とする設計対応関係を検索する。
Next, in
次に、ステップ1305において、対応検索部115は、oidに関する設計対応関係が存在するか否かを判定する。具体的には、対応元要素601がoidである設計対応関係が設計対応関係記憶部130に記憶されているか否かを判定する。
Next, in
ステップ1305において、oidに関する設計対応関係が存在すると判定された場合、対応検索部115の処理はステップ1307に進む。
If it is determined in
ステップ1307において、対応検索部115は、検索した設計対応関係の対応先要素603を検索結果として出力し、処理を終了する。
In
ステップ1305において、oidに関する設計対応関係が存在しないと判定された場合、対応検索部115の処理はステップ1309に進む。例えば、oidが“B02.機能2.処理2#X.a”である場合、そのoidを対応元要素601として持つ設計対応関係が存在しない。この場合、処理はステップ1309に進む。
If it is determined in
ステップ1309において、対応検索部115は、oidが指す構成要素の上位の構成要素を特定する。例えば、oidが“B02.機能2.処理2#X.a”である場合、フィールド「a」を削除した“B02.機能2.処理2#X”が上位の構成要素である。この場合、対応検索部115は、“B02.機能2.処理2#X.a”に代わって“B02.機能2.処理2#X”を新たなoidとして、設計対応関係を検索する。
In
次に、ステップ1311において、対応検索部115は、oid(すなわち、ステップ1309で特定された上位の構成要素)に関する設計対応関係が記憶されているか否かを判定する。この判定は、ステップ1305と同様にして実行される。
Next, in
ステップ1311において、oidに関する設計対応関係が記憶されていないと判定された場合、対応検索部115は、ステップ1309に戻り、更に上位の構成要素を特定し、検索する。
If it is determined in
ステップ1311において、oidに関する設計対応関係が記憶されていると判定された場合、対応検索部115は、ステップ1313に進む。
If it is determined in
ステップ1313において、対応検索部115は、上位の構成要素と設計対応関係にある構成要素を取得する。例えば、上位の構成要素が“B02.機能2.処理2#X”である場合、この構成要素は1つのパラメータXを持つ「B02.機能2.処理2」という処理である。これは設計対応関係617の対応元要素であるB02.機能2.処理2(データ1 X)に相当し、これに関する設計対応関係617が記憶されている。この場合、上位の構成要素に対応する構成要素として“C02.FuncB.method2#d1”が取得される。
In
ステップ1315において、対応検索部115は、ステップ1313で検索された上位の構成要素の設計対応関係に基づいて、下位の構成要素の設計対応関係を類推する。例えば、ステップ1313において“C02.FuncB.method2#d1”が取得された場合、対応検索部115は、パラメータ「X」のデータ構造「B11.データ1」について、そのフィールド「a」の設計対応関係を検索する。その結果、パラメータ「D1」のデータ構造「C11.Data1」における「fieldA」が対応することが検索される(設計対応関係621参照)。このため、対応検索部115は、“B02.機能2.処理2 #X.a”と設計対応関係にある構成要素として“C02.FuncB.method2#d1.fieldA”を類推し、設計対応関係の検索結果として出力する。
In
上記のフローにおける上位の構成要素の特定及びそれに基づく設計対応関係の類推は、構成要素の存在する設計情報及び構成要素の種類に応じて事前に定義されたルールに従って実行される。このルールに従って、設計対応関係記憶部130に記憶される設計対応情報を一部省略し、記憶のコストを削減することができる。
The identification of the upper component in the above flow and the analogy of the design correspondence based on it are executed according to the rules defined in advance according to the design information in which the component exists and the type of the component. According to this rule, a part of the design correspondence information stored in the design
次に、図1に示したユーザインタフェース110について説明する。
Next, the
図10は、本発明の第1の実施の形態における、設計情報上でアプリケーションプログラム170の監視設定を実行するユーザインタフェース110の例の説明図である。
FIG. 10 is an explanatory diagram of an example of the
図10に示すユーザインタフェース110は、アプリケーションプログラム開発の一設計段階で作成された設計情報の上で、ユーザ(例えば、運用管理者又は業務管理者)が、アプリケーションプログラム170において監視を実行する点(監視ポイント)及び監視する対象のデータ(監視データ)を入力することを可能とする。
The
設計情報表示ウィンドウ550は、ユーザが監視する内容を入力する設計情報を表示するウィンドウである。ユーザは、このウィンドウに表示される設計情報552の構成要素551を、例えば構成要素をクリックする等の操作によって選択することによって、監視ポイントを指定する。
The design
監視ポイントが指定されると、ユーザインタフェース110は、指定された監視ポイントにおいて監視可能な項目のリスト562を監視データ選択ウィンドウ560に表示する。ユーザは、項目リスト562に表示される各データ項目に対応するラジオボタン561をチェックすることによって、指定した監視ポイントにおいて監視するデータを選択することができる。
When a monitoring point is specified, the
監視データを選択した後、ユーザが決定ボタン563を操作することによって、指定された監視ポイント及び監視データが決定され、対応検索部115による検索が実行される。
After selecting the monitoring data, when the user operates the
監視データとして、監視ポイントに固有でないデータ、例えば、処理時間等が指定されている場合、対応検索部115による検索は、指定された監視ポイントのオブジェクトIDをキーとして実行される(図8参照)。そして、検索されたプログラムコードの構成要素は、生成されるプローブ定義のプローブ挿入ポイント1012に記憶される。またプローブ定義の監視データ1021には、処理時間等、選択された監視データを表す予め定義されたシンボルが記憶される。
When data that is not unique to a monitoring point, such as processing time, is specified as the monitoring data, the search by the
指定された監視データが、監視ポイントに固有の入出力パラメータ等である場合、そのデータを表すオブジェクトIDをキーとして、対応検索部115による検索が実行される(図8参照)。その結果、検索されるプログラムコードの構成要素は、指定された監視ポイントに対応するプログラムコード上のポイントと、そのポイントにおいて扱われるデータの両方の情報を持つ。このため、検索された構成要素に従って、生成されるプローブ定義のプローブ挿入ポイント1012に、監視ポイントに対応するプログラムコード上のポイントが記憶され、監視データ1021に、そのポイントにおいて扱われるデータが記憶される。
When the designated monitoring data is an input / output parameter or the like unique to the monitoring point, a search by the
プローブ定義を記憶する際に、ユーザインタフェース110は、入力された監視の設定に付与する名称をユーザに入力させるインタフェースを表示する。そして、ユーザインタフェース110は、入力された名称をプローブ定義のプローブ名称1003に記憶する。さらに、ユーザインタフェース110は、プローブ定義を一意に識別するIDを生成し、そのIDをプローブ定義のID1001として記憶する。
When storing the probe definition, the
図11は、本発明の第1の実施の形態の監視設定テーブルの例を示す説明図である。 FIG. 11 is an explanatory diagram illustrating an example of a monitoring setting table according to the first embodiment of this invention.
監視設定テーブルは、ユーザが入力した監視の設定及びそれに基づいて生成されたプローブ1610を管理するためのテーブルである。監視設定テーブルは、ユーザインタフェース110の一部であってもよいし、ユーザインタフェース110がアクセスすることができるいずれかの記憶部(例えば、設計情報記憶部120)の一部であってもよい。いずれの場合であっても、監視設定テーブルは、主記憶2705又は外部記憶装置2707に格納される。
The monitoring setting table is a table for managing the monitoring setting input by the user and the
ID901には、個々の監視設定を一意に識別するIDが格納される。
監視設定名称903には、監視設定に付与された名称が格納される。
The
監視ポイント912には、入力された監視する箇所のオブジェクトIDが格納される。
The
監視データ921には、入力された監視するデータのオブジェクトID、又は、予め定義された監視データ項目のシンボルが格納される。予め定義された監視データ項目のシンボルとは、例えば、“__responseTime”等である。
The
監視設定テーブルのID901及び監視設定名称903には、生成されるプローブ定義のID1001及びプローブ名称1003と同じものが格納される。監視設定とプローブ定義において、同一のIDを用いることで、監視設定とプローブ定義が対応付けられる。
The
ユーザインタフェース110は、監視設定テーブルに格納された監視ポイント912及び監視データ921の情報を参照して、設定済みのプローブ1610の情報を設計情報上に表示し、さらに、ユーザに選択させることができる。
The
例えば、ユーザが、図10に示す画面を操作して、監視ポイント“A01.機能1”に対応する箇所において、監視データ“データ1.a”に対応するデータを監視することを指定した場合、監視設定テーブルの監視ポイント912に“A01.機能1”が記憶され、監視データ921に“データ1.a”が記憶される。さらに、ID901及び監視設定名称903に、上記の監視ポイント等を識別する情報が記憶される。図11の例では、監視ポイント“A01.機能1”及び監視データ“データ1.a”を識別するID901及び監視設定名称903として、それぞれ、“P001”及び“処理1入力データ”が記憶される(図11の1行目参照)。
For example, when the user operates the screen shown in FIG. 10 and specifies that the data corresponding to the monitoring data “data 1.a” is to be monitored at the location corresponding to the monitoring point “A01.
この場合、対応検索部115は、“A01.機能1”及び“データ1.a”を入力として、図8及び図9に示す処理を実行する。その結果、例えば、プローブ挿入ポイント及び監視データとして、それぞれ“FuncA.method1(String d1,String d2)”及び“d1”が取得される。この場合、プローブ定義記憶部1601のID1001及びプローブ名称1003として、監視設定テーブルと同様、“P001”及び“処理1入力データ”が記憶される。そして、プローブ挿入ポイント1012及び監視データ1021として、それぞれ、検索の結果取得された“FuncA.method1(String d1,String d2)”及び“d1”が記憶される(図4の1行目参照)。
In this case, the
監視ポイント及び監視データを指定するために設計情報表示ウィンドウ550に表示される設計情報として、ユーザの入力に応じてアプリケーション開発工程の任意の段階で作成された任意の設計情報を用いることができる。このとき、表示されている設計情報の構成要素と設計対応関係にある構成要素を含む設計情報を、設計対応情報を用いて検索し、検索された設計情報を、表示する設計情報の候補として表示し、表示された候補のいずれかをユーザに選択させることもできる。
As design information displayed in the design
また、ユーザインタフェース110は、監視定義の設定において、設定する監視定義に付与する監視定義IDおよび監視定義で設定される個々の監視項目に付与する監視項目IDの値を入力させるユーザインタフェースを設けてもよい。あるいは、ユーザインタフェース110は、監視定義ID及び監視項目IDを自動的に生成し、それらを設定してもよい。
Further, the
監視設定のためのユーザインタフェース110の構成及び入力の手順は、本実施の形態で示した例に限定されず、監視ポイント、及び、監視ポイントにおいて監視する項目、さらに必要に応じて、監視定義ID及び監視項目IDを入力できるインタフェースであればよい。
The configuration and input procedure of the
上記のように、図1に示すシステムを用いれば、ユーザがアプリケーションプログラムの開発工程の一段階の設計情報において、実行したいアプリケーションプログラムの監視を設定すると、入力された設定と実装されたプログラムとの対応付けが、人手を介することなく自動的に実行される。このため、設定されたアプリケーションプログラムの監視を直ちに実行することができる。 As described above, using the system shown in FIG. 1, when the user sets monitoring of an application program to be executed in the design information at one stage of the application program development process, the setting between the input setting and the implemented program is set. The association is automatically executed without human intervention. Therefore, it is possible to immediately monitor the set application program.
次に、アプリケーションプログラム170に挿入されるプローブ1610の監視動作を、指定された条件に従って制御するシステムの構成及び動作について説明する。
Next, the configuration and operation of a system that controls the monitoring operation of the
図12は、本発明の第1の実施の形態のプローブ1610の監視動作を条件に従って制御するシステムの構成を示すブロック図である。
FIG. 12 is a block diagram illustrating a configuration of a system that controls the monitoring operation of the
条件制御部143は、プローブ制御定義記憶部1602、設定部1609、条件判定部1606及びプローブ制御部1607を備える。管理部141は、図3に示したものと同一である。
The
プローブ制御定義記憶部1602は、主記憶2705又は外部記憶装置2707に確保された記憶領域である。条件判定部1606、プローブ制御部1607及び設定部1609は、条件制御部143に含まれるプログラムモジュールである。
The probe control
プローブ1610は、図3に示す管理部141によってアプリケーションプログラム170に挿入されるプログラムモジュールである。一つ又は複数のプローブ1610がアプリケーションプログラム170に挿入されてもよい。
The
監視イベント出力部180aは、図1に示す公知の監視イベント出力部180にコレクタ1620を追加したものである。
The monitoring
コレクタ1620は、プローブ1610が出力したデータを取得し、必要に応じてそのデータを条件判定部1606に転送するプログラムモジュールである。
The
データ取得部1630は、アプリケーションサーバ160等に配置され、状態監視データ及び外部情報を取得するプログラムモジュールである。図12は、アプリケーションサーバ160上にデータ取得部1630が配置されている例を示している。
The
データ取得部1630は、プローブ1610が監視するデータ以外の情報を取得する。具体的には、データ取得部1630は、例えば、アプリケーションプログラム170、アプリケーションサーバ160、アプリケーションサーバ160を実行するOS及びハードウェア、又は、アプリケーションプログラムを監視するシステムそのものの状態監視データを取得する。例えば、データ取得部1630は、状態監視データとして、CPU2703の負荷を取得してもよい。
The
データ取得部1630は、上記の状態監視データの他に、時刻等の外部情報を取得してもよい。
The
プローブ制御定義記憶部1602は、プローブ制御定義を記憶する。プローブ制御定義とは、アプリケーションプログラム170に挿入されたプローブ1610の監視動作を制御する条件、及び、プローブ1610の監視動作を制御する操作を指定する情報である。プローブ1610の監視動作とは、例えば、監視データの取得又は出力である。
The probe control
このプローブ制御定義に基づいて、設定部1609は各部を設定し、プローブ1610の監視動作を制御する。
Based on this probe control definition, the
まず、プローブ制御定義に基づいてプローブ1610の監視動作を制御する処理の流れを説明する。
First, the flow of processing for controlling the monitoring operation of the
図13は、本発明の第1の実施の形態のプローブ制御定義記憶部1602の構成例を示す説明図である。
FIG. 13 is an explanatory diagram illustrating a configuration example of the probe control
プローブ制御定義記憶部1602に記憶されるプローブ制御定義は、ID1801、制御条件1803及び制御操作1805を含む。ID1801は、各プローブ制御定義を識別する。制御条件1803は、プローブ1610の監視動作を制御する条件を指定する。制御操作1805は、プローブ1610の監視動作を制御する操作を指定する。
The probe control definition stored in the probe control
プローブ1610の監視動作の制御は、IF-THEN形式で記述される。具体的には、IF部分が制御条件1803に、THEN部分が制御操作1805に相当する。言い換えると、制御条件1803に記憶された条件が成立するときに、制御操作1805に記憶された操作が実行される。
Control of the monitoring operation of the
制御条件1803は、条件判定に用いるデータを含む条件式によって記述される。条件判定に用いるデータとして、アプリケーションプログラム170に挿入されたプローブ1610が取得する監視データを指定することができる。あるいは、予めシステムに用意されたデータ取得部1630によって取得される情報が指定されてもよい。
The
それら条件判定に用いるデータを判定情報と呼ぶ。各判定情報は、一意のIDによって識別される。制御条件を表す条件式は、判定情報のIDを用いて記述される。プローブ1610によって取得される監視データが判定情報として使用される場合、図4に示したプローブ定義におけるプローブID1001が判定情報のIDとなる。データ取得部1630によって取得されるデータは、予め付与された特別なIDによって指定される。
Data used for the condition determination is referred to as determination information. Each determination information is identified by a unique ID. The conditional expression representing the control condition is described using the ID of the determination information. When the monitoring data acquired by the
制御操作1805には、制御条件1803が成立する場合に実行される制御の方法、及び、その方法によって監視動作が制御されるプローブ1610が記憶される。さらに、必要であれば、制御のパラメータも記憶される。
The
プローブ1610の監視動作の制御方法とは、例えば、プローブ1610による監視動作の開始又は停止である。あるいは、時間又はアプリケーションプログラム170の実行回数によって設定された所定の間隔ごとに、監視データの取得及び出力を実行させることによって、プローブ1610の監視動作を制御してもよい。
The control method of the monitoring operation of the
プローブ1610の監視動作の開始又は停止は、プローブ挿入部1608が、アプリケーションプログラム170へプローブ1610を挿入する(insert)、あるいは、アプリケーションプログラム170からプローブを除去する(remove)ことによって実行することができる。あるいは、プローブ1610に監視動作の実行を制御する動作制御コード(図示省略)を組み込み、動作制御コードを制御する変数を割り当ててもよい。この変数を動作制御変数と呼ぶ。動作制御コードが動作制御変数を参照して監視動作の実行の可否を判定することによってプローブの監視動作を制御(停止(di sable)又は開始(enable))することもできる。動作制御変数は、プローブ1610及びプローブ制御部1607の両方からアクセス可能なメモリ領域に格納される。
The start or stop of the monitoring operation of the
図13の1行目は、プローブIDがP003であるプローブ1610の監視データの一定期間の平均値が10を上回った場合に、プローブIDがP004であるプローブをアプリケーションプログラム170から除去することを示している。2行目は、プローブP002の監視データの値が5を下回ると、プローブP005の動作を停止することを示している。3行目は、プローブP001の値がAで始まる文字列である場合に、プローブP006の動作を開始することを示している。
The first line in FIG. 13 indicates that the probe with the probe ID P004 is removed from the
上記のシステムによってプローブ1610の監視動作を制御する処理の流れを説明する。
A flow of processing for controlling the monitoring operation of the
まず、アプリケーションプログラム170の実行に従って、アプリケーションプログラム170に挿入されたプローブ1610が監視データを出力する(S1201)。出力される監視データは、監視イベント出力部180aを経由して出力される。このとき監視イベント出力部180a内のコレクタ1620は、監視データが判定情報として用いられるデータであるか否かを判定する。監視データが判定情報として用いるデータであると判定された場合、監視イベント出力部180aは、その監視データを条件判定部1606に転送する(S1202)。
First, in accordance with the execution of the
一方、判定情報がプローブ1610の監視データ以外のデータである場合、データ取得部1630は定期的にデータを取得し、取得したデータを条件判定部1606に送信する(S1203)。あるいは、条件判定部1606が定期的にデータ取得部1630を呼び出すことによって、判定情報として用いるデータを取得してもよい。
On the other hand, when the determination information is data other than the monitoring data of the
条件判定部1606は、コレクタ1620又はデータ取得部1630から取得した判定情報を用いて、制御条件1803に記憶された条件式を評価し、評価した結果をプローブ制御部1607へ送信する(S1204)。プローブ制御部1607は、条件判定部1606から受信した条件判定の結果に応じて、制御操作1805に記憶された操作を実行することによって、プローブ1610の監視動作を制御する(S1205)。
The
次に、設定部1609がプローブ制御定義に基づいて、プローブ1610の監視動作の制御を実行するように、条件判定部1606及びプローブ制御部1607を設定する処理の流れを図14及び図15を参照して説明する。
Next, refer to FIGS. 14 and 15 for the flow of processing for setting the
図14は、本発明の第1の実施の形態の設定部1609が条件判定部1606を設定する処理のフローチャートである。
FIG. 14 is a flowchart of processing in which the
設定部1609は、プローブ定義に基づいて、図14のフローを実行することによって条件判定部1606を設定する。
The
まず、ステップ2001において、設定部1609は、プローブ制御定義記憶部1602からプローブ制御定義を取得する。
First, in
次に、ステップ2003において、設定部1609は、プローブ定義の制御条件1803を解析し、判定情報の指定を抽出する。
Next, in
次に、設定部1609は、ステップ2003で抽出された全ての判定情報について、ステップ2005乃至2008の処理を実行する。
Next, the
ステップ2005において、設定部1609は、判定情報として指定されたデータのIDに基づいて、データがプローブ1610によって取得されるデータであるか否かを判定する。ステップ2005において、指定されたデータがプローブ1610によって取得されるデータであると判定された場合、処理はステップ2006に移行する。一方、ステップ2005において、指定されたデータがプローブ1610によって取得されるデータでないと判定された場合、処理はステップ2007に移行する。
In
ステップ2006において、設定部1609は、監視イベント出力部180aのコレクタ1620に、指定されたデータのIDを登録する。
In
ステップ2007において、設定部1609は、判定情報として指定されたデータのIDに基づいて、データを取得するデータ取得部1630を特定し、特定されたデータ取得部1630がデータを取得するように設定する。
In
ステップ2006又は2007が実行された後、設定部1609は、ステップ2008において、ステップ2003で抽出された全ての判定情報の処理が完了したか否かを判定する。
After
ステップ2008において、全ての判定情報の処理が完了したと判定された場合、設定部1609は処理を終了する。一方、ステップ2008において、全ての判定情報の処理が完了していないと判定された場合、未処理の判定情報が存在する。この場合、未処理の判定情報を処理するために、設定部1609はステップ2005に戻る。
If it is determined in
コレクタ1620は、プローブ1610が監視データを取得し、監視イベント出力部180aを介して出力する際に、監視データに付加されるIDがステップ2006で登録されたIDであるか否かを判定する。IDが登録されていると判定された場合、コレクタ1620は、監視データを条件判定部1606に送信する。
The
条件判定部1606は、判定情報の値を用いて、制御条件1803として記述された条件判定式を解釈し、実行する。具体的には、条件判定部1606が備える公知のインタプリタが条件判定式を解釈し、実行してもよい。あるいは、事前に公知のコンパイラによって条件判定式を実行するプログラムモジュールが生成及び管理され、このプログラムモジュールが条件判定式を解釈し、実行してもよい。
The
なお、条件判定式に代わって、条件判定部1606が解釈及び実行することができるプログラム言語で記述された条件判定プログラムコードが、制御条件1803として記憶されてもよい。その場合、条件判定部1606は、条件判定に必要な判定情報を入力として、条件判定プログラムコードを呼び出す。条件判定プログラムコードは、条件判定結果を返すことによって、条件判定を実行する。
In place of the condition determination expression, a condition determination program code described in a program language that can be interpreted and executed by the
図15は、本発明の第1の実施の形態の設定部1609がプローブ制御部1607を設定する処理のフローチャートである。
FIG. 15 is a flowchart of processing for setting the
設定部1609は、プローブ定義に基づいて、図15に示すフローを実行することによってプローブ制御部1607を設定する。
The
ステップ2101において、設定部1609は、プローブ制御定義記憶部1602からプローブ制御定義を取得する。
In
次に、ステップ2102において、設定部1609は、プローブ定義の制御操作を解析することによって、制御するプローブ1610のIDと、プローブ1610の監視動作を制御する操作とを特定する。
Next, in
次に、ステップ2104において、設定部1609は、プローブ1610の監視動作制御が、プローブ1610をアプリケーションプログラム170に挿入すること、又は、プローブ1610をアプリケーションプログラムから除去することによって実行されるように指定されているか否かを判定する。ステップ2104において、プローブ1610の挿入又は除去によって制御が実行されると判定された場合、処理を終了する。プローブ1610の挿入又は除去によって制御が実行されないと判定された場合、処理はステップ2105に移行する。
Next, in
ステップ2105において、設定部1609は、ステップ2102で特定されたプローブ1610にそのプローブ1610の監視動作を制御する動作制御コードを組み込んだ新たなプローブ1610を、管理部141に生成させる。管理部141は、特定されたプローブ1610のプログラムコードをプローブ定義に基づいて再生成する。その際、管理部141は、再生成されるプローブ1610に動作制御コードを組み込む。
In
ステップ2106において、管理部141は、ステップ2105で生成された動作制御コードを組み込んだプローブ1610を、アプリケーションプログラム170に挿入する。ステップ2102で特定されたプローブ1610が既に挿入されている場合、古いプローブ1610のプログラムコードはステップ2105で生成したプローブのプログラムコードで置き換えられる。
In
上記の処理によって、プローブ1610の監視動作を制御するために必要な機能が設定される。
With the above processing, functions necessary for controlling the monitoring operation of the
図16は、本発明の第1の実施の形態のプローブ制御部1607がプローブ1610の動作を制御する処理のフローチャートである。
FIG. 16 is a flowchart of processing in which the
ステップ1901において、プローブ制御部1607は、プローブ1610の監視動作の制御をプローブ1610の挿入又は除去によって実行するか否かを判定する。この判定のために、例えば、プローブ制御部1607にプローブ制御定義のID1801をキーとするテーブル(図示省略)が設けられてもよい。そのテーブルには、プローブ1610の監視動作を制御する方法が記憶される。プローブ制御部1607は、このテーブルを参照することによって、ステップ1901の判定を実行することができる。
In
ステップ1901において、プローブ1610の監視動作制御をプローブ1610の挿入又は除去によって実行すると判定された場合、処理はステップ1902に移行する。一方、プローブ1610の監視動作制御をプローブ1610の挿入又は除去によって実行しないと判定された場合、処理はステップ1903に移行する。
If it is determined in
ステップ1902において、プローブ制御部1607は、制御対象のプローブ1610のIDを指定し、プローブ1610の挿入又は除去を管理部141に指示する。この指示に応じて、管理部141は、指定されたプローブ1610の挿入又は除去を実行する。その結果、プローブ1610によるアプリケーションプログラムの監視動作が開始又は停止される。そして、プローブ動作の制御処理が終了する。
In
ステップ1903において、プローブ制御部1607は、制御対象のプローブ1610に割り当てられた動作制御変数の値を制御の内容に応じて設定する。
In
ステップ1904において、制御対象のプローブ1610のプログラムコードが実行される際に、監視動作を実行するコードに先立って、動作制御コードが実行される。この動作制御コードは、図15に示したフローのステップ2105において、制御対象のプローブ1610に組み込まれたものである。動作制御コードは、動作制御変数を参照し、その値に応じて監視動作を実行するか否かを判定し、監視動作を行うコードの実行を制御する。そして、プローブ監視動作の制御処理が終了する。
In
なお、本実施の形態において、プローブ1610からの判定情報の収集は、監視イベント出力部180aのコレクタ1620を介して実行される。しかし、コレクタ1620を介さずに、個々のプローブ1610が取得したデータを条件判定部1606に直接出力してもよい。この場合、図14のフローに示した判定情報の設定処理のステップ2006において、設定部1609がコレクタ1620を設定する代わりに、管理部141がプローブ1610を設定してもよい。その場合、管理部141は、プローブコード生成機能を用いて、プローブ1610が取得した監視項目を、条件判定部1606が備えるインタフェースを通してプローブから直接条件判定部1606に送信するプログラムコードをプローブに組み込む処理を実行する。
In the present embodiment, collection of determination information from the
上記の本実施の形態において、条件判定部1606及びプローブ制御部1607はいずれも条件制御部143の一部として構成されている。しかし、条件判定部1606又はプローブ制御部1607が実行する処理の全て又は一部は、管理部141がプローブ1610のプログラムコード生成時に組み込む、条件制御のためのプログラムコードによって実行されてもよい。
In the present embodiment, the
その場合、判定情報を出力するプローブ1610や、監視動作の制御対象となるプローブに、判定情報の取得及び受け渡し、判定情報を用いた条件判定及びその判定結果の受け渡し、及び、判定結果に基づくプローブ監視動作の制御などの処理を実行するプログラムコードが、設定部1609の指示に応じて生成される。そして、生成されたプログラムコードが、判定情報を出力するプローブ1610又は監視動作の制御対象のプローブ1610に組み込まれる。
In that case, acquisition and transfer of the determination information to the
図17は、本発明の第1の実施の形態のプローブ制御定義記憶部1602から取得されるプローブ制御定義を入力するために使用される監視制御設定ユーザインタフェース110の例を示す説明図である。
FIG. 17 is an explanatory diagram illustrating an example of the monitoring control setting
監視動作制御の設定ウィンドウ1850は、ユーザ(例えば、運用管理者又は業務管理者)にプローブ制御定義を入力させるために、出力装置2711に表示される。
A monitoring operation
監視動作制御の設定ウィンドウ1850は、設定名称入力欄1852、制御条件入力欄1854、制御操作入力欄1856、決定ボタン1858及び取消ボタン1859を備える。
The monitoring operation
設定名称入力欄1852は、入力されるプローブ制御定義に付与され、ユーザが管理、識別するために使用する名称を入力させるための欄である。
The setting
制御条件入力欄1854には、プローブ1610の監視動作を制御する条件式が入力される。条件式の中で判定情報として用いられるデータは、プローブ1610のID及び予め定義されたデータ取得部1630のIDによって指定される。
In the control
制御操作入力欄1857には、制御条件入力欄に入力された条件が成立する場合に実行される、プローブ1610の監視動作を制御する操作が入力される。制御操作において、監視動作の制御対象のプローブ1610のIDが指定される。
In the control
ボタン1855は、ユーザによる制御条件の入力を支援するインタフェースを表示するボタンである。このボタン1855を操作した結果表示されるユーザインタフェース(図示省略)によって、制御条件の記述に用いることができる演算子又は関数の一覧が表示されてもよい。さらに、判定情報に用いることができるプローブ1610及びデータ取得部1630の一覧が表示されてもよい。ユーザは、表示された内容から任意のものを選択することができる。選択された内容は、制御条件入力欄に反映される。
A
ボタン1857は、ユーザによる制御操作の入力を支援するインタフェースを表示するボタンである。このボタン1857を操作した結果表示されるユーザインタフェース(図示省略)によって、制御操作の記述に用いることができる制御操作の一覧が表示されてもよい。さらに、監視動作の制御対象とすることができるプローブ1610の一覧が表示されてもよい。ユーザは、表示された内容から任意のものを選択することができる。選択された内容は、制御操作入力欄に反映される。
The
ユーザによって設定名称、制御条件及び制御操作が入力され、決定ボタン1858が操作されると、ユーザインタフェース110は、入力された各項目の内容に従ってプローブ制御定義を生成し、プローブ制御定義記憶部1602に格納する。
When the setting name, control condition, and control operation are input by the user and the
図12に示したシステムによるプローブ1610の監視動作の条件制御は、図10に示すユーザインタフェースが用いられるシステムと組み合わせて実行することができる。図10に示すユーザインタフェースが用いられるシステムでは、設計情報上で監視設定が実行され、その監視設定によって指定された設計情報上の「監視する点」及び「監視するデータ」に基づいてプローブ定義が生成される。具体的には、既に説明したように、図1の対応検索部115が設計対応関係記憶部130を参照して、図8及び図9に示す処理を実行し、設計情報上の指定から、プログラムコードにおいてプローブ1610を挿入する点と監視するデータを特定する。
Condition control of the monitoring operation of the
この場合、プローブ制御定義の入力の際に、図17に示したユーザインタフェースにおいて判定情報とされるプローブ1610を指定するために、図11に示した監視設定テーブルに記憶された監視設定の情報をユーザに入力させることができる。監視動作の制御対象のプローブ1610の指定においても同様である。監視設定と、それに対応するプローブ定義には、同一のIDが付与される。このため、指定された監視設定のIDに基づいて、対応するプローブ1610が特定される。
In this case, in order to specify the
例えば、プローブ1610を指定するために、監視対象のプローブ1610を、プローブ定義を用いて、「メソッド“FuncA.method1(String d1,String d2)”の第1引数“d1”を監視するプローブ」と表示しても、プログラムの実装を理解していないユーザは、そのプローブ1610が取得するデータの意味を理解することができない。しかし、監視設定の情報を用いて、「設計情報の機能“1”における入力データ“a”を監視するプローブ」と表示されていれば、ユーザはその意味を容易に理解することができる。
For example, in order to specify the
プローブ1610の監視動作の制御を設定する際に、ユーザが、プローブ定義の情報ではなく、監視設定の情報を用いてプローブ1610を指定することによって、アプリケーションプログラム170の実装を意識することなく設定を実行することができる。
When setting the control of the monitoring operation of the
また、制御条件を入力する際に、監視設定を指定するのではなく、図10に示したようなユーザインタフェースを用いて、設計情報上で監視する点及び監視するデータをユーザに入力させることができる。この場合、上記の設計情報上で監視設定が入力されると、図1の対応検索部115が設計対応関係記憶部130を参照して、入力された監視設定に対応するプローブ1610のプローブ定義を新規に生成する。生成されたプローブ1610は、判定情報を取得するためのプローブ1610又は監視動作の制御対象のプローブ1610として用いられる。
Also, when inputting the control conditions, the monitoring setting is not designated, but the user can input the monitoring point and the monitoring data on the design information using the user interface as shown in FIG. it can. In this case, when the monitoring setting is input on the above design information, the
このとき、新規に生成するプローブ定義と同一のプローブ定義が、プローブ定義記憶部に既に存在しているか否かがチェックされる。同一のプローブ1610が既に存在している場合、そのプローブ1610が指定され、既存のプローブ定義が使用される。一方、同一のプローブ1610が存在していない場合、新規に生成されたプローブ定義に従って、判定情報を取得するためのプローブ1610又は監視動作の制御対象のプローブ1610が新規に生成され、アプリケーションプログラム170に挿入される。
At this time, it is checked whether or not the same probe definition as the newly generated probe definition already exists in the probe definition storage unit. If the
また、プローブ1610の条件制御の設定において、図10に示したようなユーザインタフェースを用いて設計情報上において監視設定を行う際に、同時に制御条件及び制御操作をユーザに入力させてもよい。その結果、条件付きの監視設定を入力することができる。この場合、プローブ定義の生成と同時に、プローブ制御定義が生成され、プローブ制御定義記憶部1602に格納される。
Further, in setting the condition control of the
次に、プローブ負荷に応じてプローブ1610の監視動作を制御するシステムの構成および動作について説明する。プローブ負荷とは、プローブ1610がアプリケーションプログラム170に挿入され、アプリケーションプログラム170監視を実行することによって発生する負荷である。プローブ負荷がアプリケーションプログラム170の実行に性能低下等の影響を与えることを防止するため、プローブ負荷が測定され、測定値に応じてプローブの監視動作が制御される。
Next, the configuration and operation of a system that controls the monitoring operation of the
図18は、本発明の第1の実施の形態のプローブ1610の監視動作を、測定されたプローブ負荷に応じて制御するシステムの構成を示すブロック図である。
FIG. 18 is a block diagram illustrating a configuration of a system that controls the monitoring operation of the
負荷制御部140は、測定部2201、制御部2203、設定部2205及びプローブログ記憶部2209を備える。管理部141は、図3に示したものと同一である。
The load control unit 140 includes a
プローブログ記憶部2209は、主記憶2705又は外部記憶装置2707に確保された記憶領域である。測定部2201、制御部2203及び設定部2205は、管理部141に含まれるプログラムモジュールである。プローブ1610は、図3に示した管理部141によってアプリケーションプログラム170に挿入されるプログラムモジュールである。
The probe
まず、プローブ負荷を測定する処理を説明する。 First, a process for measuring the probe load will be described.
プローブ負荷の測定が指示されると、設定部2205はアプリケーションプログラム170に挿入されているプローブ1610に、プローブ1610の監視動作のログ(以降、プローブログと記載する)をプローブ負荷の測定期間の間出力させる(S1801)。
When the probe load measurement is instructed, the
プローブログは、プローブ1610によって実行される監視動作に関する情報であり、プローブ1610が動作するたびに出力され、プローブログ記憶部2209に蓄積される。プローブログは、少なくとも、プローブ1610が動作したこと(すなわち、プローブ1610が実行されたこと)を示す情報を含む。プローブログは、さらに、プローブ1610が実行した処理に関する種々の情報を含んでもよい。
The probe log is information related to the monitoring operation executed by the
プローブログを出力する処理は、各プローブ1610にプローブログを出力させるコードを組み込んだプローブ1610を生成し、生成されたプローブ1610をアプリケーションプログラム170に再度挿入することによって実行してもよい。あるいは、プローブ1610にプローブログを出力する機能をあらかじめ組み込んでおき、これを有効化することで実行してもよい。
The process of outputting the probe log may be executed by generating a
あるいは、プローブ負荷の測定に必要な情報が、プローブ1610が出力した監視イベントによって取得できる場合、プローブログを出力する代わりに、各プローブ1610が出力する監視イベントを監視イベント出力部180が捕捉してもよい。この場合、監視イベント出力部180は、監視ベントに付加されているプローブIDに基づいて、動作したプローブ1610を特定し、プローブログに相当する情報を監視イベントから抽出し、プローブログ記憶部2209に出力する。
Alternatively, when the information necessary for measuring the probe load can be acquired by the monitoring event output from the
測定部2205は、各プローブ1610が出力するプローブログをプローブログ記憶部2209から取得し、集計することによって、各プローブ1610の負荷を計算する。プローブ負荷の計算には、各プローブ1610の動作回数(すなわち、実行回数)等が用いられる。以下、プローブの動作回数が用いられる場合を例として説明する。測定部2205は、プローブログを集計して各プローブ1610の単位時間当たりの動作回数を計算し、この値をプローブ負荷とする。
The
プローブ負荷の測定期間が終了すると、設定部2201は、各プローブ1610にプローブログの出力を停止させる。プローブログを出力するコードを組み込んだプローブ1610を生成することによってプローブログを出力している場合、設定部2205はプローブログの出力コードを除去したプローブ1610を再度生成する。設定部2205は管理部141を用いて、生成されたプローブ1610をアプリケーションプログラム170に再度挿入する。
When the probe load measurement period ends, the
上記の処理によって、各プローブ1610の監視動作の負荷が測定される。
With the above processing, the monitoring operation load of each
なお、プローブ負荷の測定処理そのものの負荷を軽減するため、プローブログをプローブ1610の動作ごとに出力させるのではなく、各プローブ1610がプローブログを一時蓄積し、所定の間隔でまとめて出力してもよい。あるいは、プローブ1610に一時蓄積されたプローブログを各プローブ1610が集計し、統計処理された値のみを所定の間隔で出力してもよい。
In order to reduce the load of the probe load measurement process itself, the probe log is not temporarily output for each operation of the
図19は、本発明の第1の実施の形態の負荷制御部140が、測定されたプローブ負荷に応じて、プローブ1610の監視動作を制御する処理のフローチャートである。
FIG. 19 is a flowchart of processing in which the load control unit 140 according to the first embodiment of this invention controls the monitoring operation of the
まず、ステップ2401において、負荷制御部140は、プローブ負荷の測定を開始する。上記のように、プローブログを出力するコードを組み込んだプローブ1610がアプリケーションプログラム170に挿入されてもよいし、プローブログを出力する機能が有効化されてもよい。
First, in
次に、ステップ2402において、負荷制御部140は、プローブ1610の負荷を測定する。
Next, in
次に、ステップ2403において、負荷制御部140は、測定されたプローブ負荷を、あらかじめ設定されたプローブ負荷の基準値と比較する。
Next, in
ステップ2403において、プローブ負荷が基準を満たしていると判定された場合(すなわち、プローブ負荷が基準値の範囲内である場合)、処理はステップ2407に移行する。一方、ステップ2403において、プローブ負荷が基準を満たしていないと判定された場合、プローブ負荷がアプリケーションプログラム170の実行に与える影響を軽減するために、プローブ負荷を軽減する必要がある。このため、処理はステップ2405に移行する。
If it is determined in
次に、ステップ2405において、負荷制御部140は、プローブ負荷を軽減するように、プローブの監視動作を制御する。
Next, in
次に、ステップ2407において、負荷制御部140は、設定されたプローブ負荷の測定期間が終了したか否かを判定する。
Next, in
ステップ2407において、測定期間が終了していないと判定された場合、処理はステップ2402に戻り、プローブ負荷の測定及び監視動作の制御を継続する。
If it is determined in
一方、ステップ2407において、測定期間が終了したと判定された場合、負荷制御部140は、ステップ2409において、プローブ負荷の測定を終了し、処理を終了する。
On the other hand, if it is determined in
ステップ2403で比較されるプローブ負荷の基準値は、各プローブ1610の負荷の絶対値によって設定されてもよいし、他のプローブ1610の負荷との相対値によって設定されてもよい。
The reference value of the probe load compared in
負荷の絶対値を用いる場合、負荷制御部140は、ステップ2403において、各プローブ1610の負荷と、設定された基準値とを比較し、基準の範囲内にあるか否かを判定する。プローブ負荷の基準値は、負荷制御部140の記憶領域にあらかじめ記憶しておく。
When using the absolute value of the load, in
一方、負荷の相対値を用いる場合、負荷制御部140は、ステップ2403において、基準となるプローブ1610の負荷と、測定対象のプローブ1610の負荷との相対値を計算する。そして、負荷制御部140は、計算された相対値を、設定された基準値と比較する。相対値を用いてプローブ負荷を評価する場合、アプリケーションプログラム170全体の負荷に関わらず、他のプローブ1610と比較して特に負荷の高いプローブ1610を発見することができる。
On the other hand, when the relative value of the load is used, the load control unit 140 calculates a relative value between the load of the
基準値と比較した結果、負荷が基準値を超えているプローブ1610があった場合、負荷制御部140は、そのプローブ1610の監視動作を制御する。監視動作を制御する方法には、例えば、(1)プローブ1610をアプリケーションプログラム170から除去する。(2)プローブ1610の監視データの出力を間引く。等がある。
When there is a
上記(1)の方法によれば、プローブ1610による監視が完全に停止するとともに、プローブ1610のプログラムコードがアプリケーションプログラム170から取り除かれるため、アプリケーションプログラムの実行への影響が完全に取り除かれる。
According to the method (1), monitoring by the
一方、上記(2)の方法によれば、プローブ1610の監視データの出力を数回に1回とする等によって、プローブ1610の監視データの取得及び出力の処理が行われる回数が減少する。その結果、プローブ1610の負荷が減少する。
On the other hand, according to the method (2), the number of times the monitoring data of the
負荷制御部140は、上記の監視動作の制御を実行した後、再びプローブ負荷を測定する。 The load control unit 140 measures the probe load again after executing the above control of the monitoring operation.
なお、プローブ1610の監視負荷の測定中に上記(2)の制御を実行する場合、プローブ1610が実際に監視データを出力したか否かに関わらず、プローブ1610が動作したときに必ずプローブログを出力することによって、より正確にプローブ負荷を測定することができる。このとき出力されるプローブログには、監視データが出力されたか否かを示す情報が含まれる。
When the control (2) is performed during measurement of the monitoring load of the
あるいは、全プローブ負荷の総和が基準値を超えた場合に、負荷制御部140は、各プローブ負荷の値を上記の処理によって調整し、全体の負荷が基準値を超えないように制御することもできる。この場合、負荷制御部140は、各プローブ1610の負荷のバランス、及び、各プローブ1610が出力する監視データの重要度を考慮して、各プローブ1610の負荷の目標値を計算し、プローブ1610の監視動作を制御する。
Alternatively, when the total sum of all probe loads exceeds the reference value, the load control unit 140 adjusts the value of each probe load by the above processing, and controls so that the entire load does not exceed the reference value. it can. In this case, the load control unit 140 calculates the target value of the load of each
プローブ負荷の測定及び制御は、新規にプローブ1610をアプリケーションプログラム170に追加する時及びユーザによって指示された時に実行される。
Measurement and control of the probe load is performed when a
新規にプローブ1610をアプリケーション170に追加する時、ユーザインタフェース110は、新規のプローブ1610をアプリケーションプログラム170に挿入するように管理部141に指示を出すと同時に、負荷制御部140にプローブ負荷の測定を指示する。
When a
負荷制御部140は、管理部141が実行する新規プローブ1610のアプリケーションプログラム170への挿入に合わせて、新規プローブ1610を含めたプローブ1610の負荷の測定及び制御を開始する。そして、負荷制御部140は、予め設定された期間、プローブ負荷の測定及び制御を実行し、測定したプローブ負荷及び監視動作の制御の状態をユーザインタフェース110に表示する。
The load control unit 140 starts measuring and controlling the load of the
また、ユーザは、ユーザインタフェース110を使用して、任意にプローブ負荷の測定及び制御の実行を指示するとともに、プローブ負荷の基準値、及び、負荷が基準値を超えている場合に実行される制御の方法等を設定してもよい。
In addition, the user arbitrarily instructs measurement of the probe load and execution of the control using the
図21は、本発明の第1の実施の形態の監視動作負荷の測定に関するユーザインタフェース110の例を示す説明図である。
FIG. 21 is an explanatory diagram illustrating an example of the
具体的には、図21のユーザインタフェース110は、ユーザに監視動作の負荷を測定する対象のプローブ1610を入力させ、さらに、入力されたプローブ1610の監視動作の負荷の測定結果を表示する。
Specifically, the
測定プローブ設定ウィンドウ2600は、管理部141のプローブ定義記憶部1601に記憶されているプローブ1610を一覧表示する。さらに、測定プローブ設定ウィンドウ2600は、各プローブ1610の監視動作の負荷が既に測定されている場合、測定されたプローブ負荷の値を2605の欄に表示する。
The measurement
各プローブ1610を表す行にはそれぞれチェックボックス2601が設けられる。ユーザは、チェックボックス2601を操作することによって、監視動作の負荷を測定する対象のプローブ1610を選択する。
A
各プローブの負荷の基準値は、基準値入力欄2604に表示される。ユーザは、基準値入力欄2604に値を入力することができる。
The reference value of the load of each probe is displayed in the reference
ユーザが測定ボタン2607を操作すると、上記のプローブ負荷の測定及び制御が実行され、測定されたプローブ負荷がプローブ負荷表示欄2605に、監視動作の制御の状態が制御状態表示欄2606に表示される。
When the user operates the
なお、各プローブ1610又は全てのプローブ1610について、プローブ負荷の許容基準値を入力させるインタフェースを設け、プローブ1610の測定と共に、図19に示すフローによって、負荷の高いプローブの監視動作の制御を実行してもよい。
Each
あるいは、各プローブ1610にプローブ負荷を出力させるのではなく、システム又はアプリケーションプログラム170の性能指標を測定することによってプローブ負荷を測定してもよい。
Alternatively, instead of causing each
図20は、本発明の第1の実施の形態の負荷制御部140が、アプリケーションプログラム170の性能指標を測定することによってプローブ負荷を測定する処理のフローチャートである。
FIG. 20 is a flowchart of processing in which the load control unit 140 according to the first embodiment of this invention measures the probe load by measuring the performance index of the
ステップ2301において、負荷制御部140は、アプリケーションプログラム170の実行性能を示す指標の測定を開始する。性能指標は、アプリケーションサーバ160等が備える、性能指標を測定する機能によって測定されてもよい。本実施の形態では、アプリケーションサーバ160において測定可能である、アプリケーションプログラム170の処理スループットを、プローブ負荷の測定に用いる性能指標として説明する。
In
次に、ステップ2303において、負荷制御部140は、測定対象プローブ1610を挿入していない状態の処理スループットを測定する。具体的には、測定対象プローブ1610をアプリケーションプログラム170に挿入していない状態でアプリケーションプログラム170を実行し、所定の期間の平均処理スループットを求める。
Next, in
次に、ステップ2304において、プローブ挿入部1608が、測定対象プローブ1610をアプリケーションプログラム170に挿入し、プローブ1610による監視を実行する。
Next, in
次に、ステップ2305において、測定対象プローブ1610を挿入した状態でアプリケーションプログラム170を実行し、ステップ2303と同様、所定の期間の平均処理スループットを測定する。
Next, in
次に、ステップ2306において、負荷制御部140は、ステップ2303及びステップ2305において測定された処理スループットの値を用いて、プローブ負荷の値を計算する。
Next, in
次に、ステップ2308において、負荷制御部140は、ステップ2301で設定した性能指標の測定を停止し、プローブ負荷の測定処理を終了する。
Next, in
以上の処理によって、測定対象プローブ1610のプローブ負荷が測定される。
With the above processing, the probe load of the
なお、プローブの負荷の測定に用いられる性能指標は、処理スループットに限定されない。また、複数の性能指標を測定することによって、より精度の高いプローブ負荷の測定を実行することもできる。 The performance index used for measuring the probe load is not limited to the processing throughput. In addition, by measuring a plurality of performance indexes, it is possible to perform more accurate probe load measurement.
また、図20のフローにおいて、ステップ2305における性能指標の測定と、ステップ2306におけるプローブ負荷の計算が、同時に実行されてもよい。さらに、計算されたプローブ負荷の値を用いて、図19のステップ2403以降の処理が実行されてもよい。この場合、計算されたプローブ負荷の値が基準値の範囲内であるか否かが判定され、必要に応じてプローブ1610の監視動作が制御される。その結果、ステップ2305において、性能指標を測定する期間の終了を待つことなく、測定対象プローブ1610の負荷が高い場合に、測定対象プローブ1610の監視動作を制御し、アプリケーションプログラム170の実行に影響が生じることを防止できる。
In the flow of FIG. 20, the measurement of the performance index in
また、本実施の形態においては、プローブ負荷を測定する度に、ステップ2303において、測定対象プローブ1610を挿入していない状態での性能指標の測定を行っている。そして、ステップ2306において、測定された値を使用してプローブ1610の影響が計算されている。しかし、過去において測定された性能指標を記録しておき、記録した値を用いてステップ2306の計算が実行されてもよい。
In this embodiment, every time the probe load is measured, in
また、本実施の形態においては、測定対象プローブ1610を挿入している状態及び挿入していない状態の性能指標の測定を別個に行っている。しかし、可能であれば、両者を同時に測定してもよい。例えば、測定対象プローブ1610を挿入するメソッドの処理時間を性能指標とする場合、測定対象プローブ1610のプログラムコードに負荷測定プローブ1610の機能を組み込み、測定対象プローブ1610の監視動作の処理を含む処理時間と、測定対象プローブ1610の監視動作の処理を含まない処理時間を同時に測定させてもよい。その結果、両者を同時に測定し、測定対象プローブの負荷を求めることができる。
Further, in the present embodiment, the performance index is measured separately in the state where the
上記本発明の第1の実施の形態は、設計情報上の一つの構成要素が、プログラムコードのただ一つの構成要素と設計対応関係にあることを前提としている。以下、第2の実施の形態として、設計情報上の一つの構成要素に、プログラムコードの複数の構成要素が対応する場合の例を示す。 The first embodiment of the present invention presupposes that one component on the design information is in a design correspondence relationship with only one component of the program code. Hereinafter, as a second embodiment, an example in which a plurality of components of the program code correspond to one component on the design information will be described.
以下、本発明の第2の実施の形態が第1の実施の形態と相違する点についてのみ説明する。以下で説明しない第2の実施の形態の構成は、第1の実施の形態と同様である。 Hereinafter, only the points of the second embodiment of the present invention different from the first embodiment will be described. The configuration of the second embodiment not described below is the same as that of the first embodiment.
図22は、本発明の第2の実施の形態の設計対応関係の例を示す説明図である。 FIG. 22 is an explanatory diagram illustrating an example of the design correspondence relationship according to the second embodiment of this invention.
具体的には、図22は、一つの構成要素に、プログラムコードの一つ又は複数の構成要素が対応する場合の設計対応情報の例を示す。一つの構成要素に複数の構成要素が対応する場合、対応するそれぞれの構成要素のオブジェクトIDと、それらの構成要素の間の関係が、対応先要素603に記憶される。図22の例は、設計対応関係612aにおいて、「機能2」の処理が状況に応じて二つのメソッドのいずれかによって処理されることを示している。
Specifically, FIG. 22 shows an example of design correspondence information in the case where one or a plurality of components of the program code corresponds to one component. When a plurality of constituent elements correspond to one constituent element, the object ID of each corresponding constituent element and the relationship between those constituent elements are stored in the
本実施の形態の対応検索部115は、第1の実施の形態と同様、図8及び図9に示すように、対応するプログラムコードの構成要素の検索処理を実行する。ただし、設計対応関係612aに示すような設計対応関係が存在する場合、対応検索部115は、複数の構成要素を検索する。対応検索部115は、検索された個々の構成要素について、図8及び図9に示した処理を実行し、対応するプログラムコードの構成要素を検索し、指定された監視を実現するために必要な複数のプローブ定義のセットを生成する。
Similar to the first embodiment, the
例えば、図5の例において、“A01.機能2”が監視する箇所として指定された場合、メソッド“FuncB.method2a(Data1 d1)”及びメソッド“FuncB.method2b(Data1 d1)”の二つが、指定された箇所に対応するプログラムコード上の監視する箇所として検索される。その結果、それぞれの箇所に応じたプローブ定義が生成される。これらのプローブ定義には、同一のプローブID1001と、それぞれを識別する通し番号(プローブ番号1002)とが付与される。
For example, in the example of FIG. 5, when “
図23は、本発明の第2の実施の形態のプローブ定義記憶部1601の構成例を示す説明図である。
FIG. 23 is an explanatory diagram illustrating a configuration example of the probe
具体的には、図23は、設計対応関係が図22に示す通りである場合のプローブ定義の例を示す。図23の2行目及び3行目が、図22における“A01.機能2”に対応するメソッド“FuncB.method2a(Data1 d1)”及びメソッド“FuncB.method2b(Data1 d1)”に挿入されるプローブ1610を示す。これらのプローブ1610は、同一のプローブID1001「P002」を持ち、異なるプローブ番号1002「1」及び「2」によって識別される。
Specifically, FIG. 23 shows an example of the probe definition when the design correspondence is as shown in FIG. The probes in the second and third lines in FIG. 23 are inserted into the method “FuncB.method2a (Data1 d1)” and the method “FuncB.method2b (Data1 d1)” corresponding to “
管理部141は、プローブID1001を用いて対象となるプローブ1610を指定し、指定されたプローブID1001を持つ全てのプローブ定義に基づいてプローブ1610の生成、挿入及び除去を実行する。図23に示した例では、管理部141が、プローブID1001が「P002」であるプローブの挿入を指示すると、2つのプローブ1610が生成され、それぞれ、アプリケーションプログラム170に挿入される。
The
特許請求の範囲に記載した以外の本発明の観点の代表的なものとして、次のものが挙げられる。 The following can be cited as representatives of aspects of the present invention other than those described in the claims.
(1)アプリケーションプログラムを実行するアプリケーションサーバを含む計算機システムにおいて、
前記計算機システムは、
前記アプリケーションプログラムを監視するプログラムモジュールを制御するために実行される操作と、前記操作を実行するか否かを判定するために使用される条件と、を保持し、
前記条件が成立する場合、前記操作を実行することを特徴とする計算機システム。
(1) In a computer system including an application server that executes an application program,
The computer system is
Holding an operation executed to control a program module for monitoring the application program, and a condition used to determine whether to execute the operation;
The computer system, wherein the operation is executed when the condition is satisfied.
(2)前記計算機システムは、
前記アプリケーションプログラムを監視する一つ以上の前記プログラムモジュールを実行し、
いずれかの前記プログラムモジュールが取得したデータに基づいて、前記条件が成立するか否かを判定することを特徴とする(1)に記載の計算機システム。
(2) The computer system
Executing one or more of the program modules that monitor the application program;
The computer system according to (1), wherein whether or not the condition is satisfied is determined based on data acquired by any one of the program modules.
(3)前記アプリケーションプログラムを監視するプログラムモジュールを制御するために実行される操作は、前記プログラムモジュールの前記アプリケーションプログラムへの挿入、又は、前記プログラムモジュールの前記アプリケーションプログラムからの除去であることを特徴とする(1)に記載の計算機システム。 (3) The operation executed to control the program module that monitors the application program is insertion of the program module into the application program or removal of the program module from the application program. The computer system according to (1).
(4)前記計算機システムは、前記操作を実行するか否かの判定と、前記判定の結果実行される前記操作と、の全部又は一部を実行するプログラムコードを生成することを特徴とする(1)に記載の計算機システム。 (4) The computer system generates a program code for executing all or part of a determination as to whether or not to execute the operation and the operation executed as a result of the determination ( The computer system described in 1).
(5)前記計算機システムは、前記アプリケーションプログラムを監視するプログラムモジュールを制御するために実行される操作と、前記操作を実行するか否かを判定するために使用される条件と、を入力するためのユーザインタフェースを備えることを特徴とする(1)に記載の計算機システム。 (5) The computer system inputs an operation executed for controlling a program module that monitors the application program and a condition used for determining whether to execute the operation. (1) The computer system described in (1) above.
(6)前記計算機システムは、
前記アプリケーションプログラムの開発工程の一つの段階における設計情報の構成要素と、前記一つの段階より進んだ段階における設計情報の構成要素との対応関係を示す情報を保持し、
業務プロセス上の点又はデータを示す情報を入力されると、前記入力された情報及び前記対応関係を示す情報に基づいて、前記操作を実行するプログラムモジュール、又は、前記操作を実行するか否かを判定するために用いられるデータを取得するプログラムモジュールを指定することを特徴とする(5)に記載の計算機システム。
(6) The computer system
Holding information indicating a correspondence relationship between the design information component in one stage of the application program development process and the design information component in a stage advanced from the one stage;
When information indicating a point or data on a business process is input, based on the input information and information indicating the correspondence relationship, a program module that executes the operation, or whether to execute the operation The computer system according to (5), wherein a program module for acquiring data used for determining the data is specified.
(7)前記計算機システムは、
前記指定されたプログラムモジュールが存在しない場合、前記指定されたプログラムモジュールを新規に生成することを特徴とする(6)に記載の計算機システム。
(7) The computer system
The computer system according to (6), wherein when the designated program module does not exist, the designated program module is newly generated.
(8)アプリケーションプログラムを実行するアプリケーションサーバを含む計算機システムにおいて、
前記計算機システムは、前記アプリケーションプログラムを監視するプログラムモジュールを前記アプリケーションプログラムに挿入して実行することによって発生する負荷を測定することを特徴とする計算機システム。
(8) In a computer system including an application server that executes an application program,
The computer system measures a load generated by inserting a program module for monitoring the application program into the application program and executing the program module.
(9)前記計算機システムは、前記アプリケーションプログラムを監視するプログラムモジュールの監視動作のログに基づいて、前記負荷を測定することを特徴とする(8)に記載の計算機システム。 (9) The computer system according to (8), wherein the computer system measures the load based on a log of a monitoring operation of a program module that monitors the application program.
(10)前記計算機システムは、前記アプリケーションプログラムを実行する際の性能指標に基づいて、前記負荷を測定することを特徴とする(8)に記載の計算機システム。 (10) The computer system according to (8), wherein the computer system measures the load based on a performance index when the application program is executed.
(11)前記計算機システムは、測定された前記負荷が所定の条件を満たさない場合に、前記アプリケーションプログラムを監視するプログラムモジュールの動作を制御することを特徴とする(8)に記載の計算機システム。 (11) The computer system according to (8), wherein the computer system controls an operation of a program module that monitors the application program when the measured load does not satisfy a predetermined condition.
(12)前記計算機システムは、測定された前記負荷が所定の条件を満たさない場合に、前記アプリケーションプログラムを監視するプログラムモジュールを除去することによって、前記プログラムモジュールの動作を制御することを特徴とする(11)に記載の計算機システム。 (12) The computer system controls the operation of the program module by removing the program module that monitors the application program when the measured load does not satisfy a predetermined condition. The computer system according to (11).
(13)前記計算機システムは、
前記アプリケーションプログラムを監視するプログラムモジュールを前記アプリケーションプログラムに挿入するときに、前記プログラムモジュールによる負荷を測定し、
前記測定された負荷が所定の条件を満たさない場合、前記プログラムモジュールの動作を制御することを特徴とする(8)に記載の計算機システム。
(13) The computer system
When inserting a program module for monitoring the application program into the application program, the load by the program module is measured,
The computer system according to (8), wherein the operation of the program module is controlled when the measured load does not satisfy a predetermined condition.
(14)前記計算機システムは、測定された前記負荷が所定の条件を満たさない場合に、前記アプリケーションプログラムを監視するプログラムモジュールを除去することによって、前記プログラムモジュールの動作を制御することを特徴とする(13)に記載の計算機システム。 (14) The computer system controls operation of the program module by removing a program module that monitors the application program when the measured load does not satisfy a predetermined condition. The computer system according to (13).
(15)前記計算機システムは、負荷を測定する対象の前記プログラムモジュールと、前記条件とを入力し、前記測定された負荷を表示するユーザインタフェースを備えることを特徴とする(8)に記載の計算機システム。 (15) The computer system according to (8), wherein the computer system includes a user interface that inputs the program module to be measured for load and the condition and displays the measured load. system.
本発明を用いることによって、アプリケーションプログラムの実装を意識することなく、アプリケーションの監視を容易に設定し、実行することができる。 By using the present invention, application monitoring can be easily set and executed without being conscious of implementation of the application program.
110 ユーザインタフェース
115 対応検索部
120 設計情報検索部
130 設計対応関係記憶部
141 管理部
143 条件制御部
145 負荷制御部
160 アプリケーションサーバ
170 アプリケーションプログラム
180、180a 監視イベント出力部
190 監視イベント記録部
550 設計情報表示ウィンドウ
551 設計情報構成要素
552 設計情報
560 監視データ選択ウィンドウ
561 監視データ選択ボタン
562 監視データリスト
563 決定ボタン
901 監視設定ID
903 監視設定名称
912 監視ポイント
921 監視データ
601 対応元要素
603 対応先要素
1001 プローブID
1002 プローブ番号
1003 プローブ名称
1012 プローブ挿入ポイント
1021 監視データ
1601 プローブ定義記憶部
1604 プローブ生成部
1608 プローブ挿入部
1610 プローブ
1602 プローブ制御定義記憶部
1606 条件判定部
1607 プローブ制御部
1609 設定部
1620 コレクタ
1630 データ取得部
1801 監視制御設定ID
1803 制御条件
1805 制御操作
1850 監視動作制御設定ウィンドウ
1852 設定名称入力欄
1854 制御条件入力欄
1855 制御条件入力支援インタフェース表示ボタン
1856 制御操作入力欄
1857 制御操作入力支援インタフェース表示ボタン
1858 決定ボタン
1859 取消ボタン
2201 測定部
2203 制御部
2205 設定部
2209 プローブログ記憶部
2600 監視負荷測定設定ウィンドウ
2601 測定プローブ選択チェックボックス
2603 プローブ名称
2604 負荷基準値入力欄
2605 監視負荷表示欄
2606 制御状態表示欄
2607 測定開始ボタン
2701 バス
2703 CPU
2705 主記憶
2707 外部記憶装置
2709 入力装置
2711 出力装置
2713 ネットワークインタフェース
110
903
1002
1803
2705
Claims (18)
前記計算機システムは、
前記アプリケーションプログラムの開発工程の一つの段階における設計情報の構成要素と、前記一つの段階より進んだ段階における設計情報の構成要素との対応関係を示す情報を保持し、
前記対応関係を示す情報に基づいて、前記アプリケーションプログラムの開発工程の一つの段階における設計情報の構成要素と、前記アプリケーションプログラムのコードとを対応付けることを特徴とする計算機システム。 In a computer system that executes an application program,
The computer system is
Holding information indicating a correspondence relationship between the design information component in one stage of the application program development process and the design information component in a stage advanced from the one stage;
A computer system characterized in that a component of design information in one stage of the application program development process is associated with a code of the application program based on the information indicating the correspondence relationship.
前記計算機システムは、前記対応関係を示す情報に基づいて、業務プロセス上の点と、前記アプリケーションプログラムのコード上の点とを対応付けることを特徴とする請求項1に記載の計算機システム。 The component of the design information associated with the code of the application program is information indicating a point on the business process,
The computer system according to claim 1, wherein the computer system associates a point on a business process with a point on the code of the application program based on the information indicating the correspondence relationship.
前記対応関係を示す情報に基づいて、前記入力された情報によって識別される業務プロセス上の点と、前記アプリケーションプログラムのコード上の点とを対応付け、
前記対応付けられたアプリケーションプログラムのコード上の点に、前記アプリケーションプログラムを監視するプログラムモジュールを挿入することを特徴とする請求項2に記載の計算機システム。 When the computer system receives information indicating a point on the business process,
Based on the information indicating the correspondence relationship, a point on the business process identified by the input information is associated with a point on the code of the application program,
3. The computer system according to claim 2, wherein a program module for monitoring the application program is inserted at a point on the code of the associated application program.
前記計算機システムは、前記対応関係を示す情報に基づいて、業務プロセス上で処理されるデータと、前記アプリケーションプログラムのコード上のデータとを対応付けることを特徴とする請求項1に記載の計算機システム。 The component of the design information associated with the code of the application program is information indicating data processed in the business process,
The computer system according to claim 1, wherein the computer system associates data processed in a business process with data on a code of the application program based on information indicating the correspondence relationship.
前記対応関係を示す情報に基づいて、前記入力された情報によって識別される業務プロセス上のデータと、前記アプリケーションプログラムのコード上のデータとを対応付け、
前記対応付けられたデータを取得するプログラムモジュールを生成することを特徴とする請求項7に記載の計算機システム。 When the computer system receives information indicating data to be processed on the business process,
Based on the information indicating the correspondence, the data on the business process identified by the input information is associated with the data on the code of the application program,
The computer system according to claim 7, wherein a program module for acquiring the associated data is generated.
前記各設計情報の構成要素に、前記計算機システム内で一意の識別子を付与し、
前記識別子を用いて前記設計情報の構成要素の対応関係を示す情報を管理することを特徴とする請求項11に記載の計算機システム。 The computer system is
A unique identifier in the computer system is assigned to each design information component,
The computer system according to claim 11, wherein information indicating a correspondence relationship between the components of the design information is managed using the identifier.
前記方法は、
前記アプリケーションプログラムの開発工程の一つの段階における設計情報の構成要素と、前記一つの段階より進んだ段階における設計情報の構成要素との対応関係を示す情報を保持し、
前記対応関係を示す情報に基づいて、前記アプリケーションプログラムの開発工程の一つの段階における設計情報の構成要素と、前記アプリケーションプログラムのコードとを対応付けることを特徴とする方法。 A computer system control method for executing an application program,
The method
Holding information indicating a correspondence relationship between the design information component in one stage of the application program development process and the design information component in a stage advanced from the one stage;
A method of associating a component of design information in one stage of the development process of the application program with a code of the application program based on the information indicating the correspondence relationship.
前記方法は、前記業務プロセス上の点を示す情報を入力されると、
前記対応関係を示す情報に基づいて、前記入力された情報によって識別される業務プロセス上の点と、前記アプリケーションプログラムのコード上の点とを対応付け、
前記対応付けられたアプリケーションプログラムのコード上の点に、前記アプリケーションプログラムを監視するプログラムモジュールを挿入することを特徴とする請求項13に記載の方法。 The component of the design information associated with the code of the application program is information indicating a point on the business process,
When the method receives information indicating a point on the business process,
Based on the information indicating the correspondence relationship, a point on the business process identified by the input information is associated with a point on the code of the application program,
14. The method according to claim 13, wherein a program module for monitoring the application program is inserted at a point on the code of the associated application program.
前記方法は、前記業務プロセス上で処理されるデータを示す情報を入力されると、
前記対応関係を示す情報に基づいて、前記入力された情報によって識別される業務プロセス上で処理されるデータと、前記アプリケーションプログラムのコード上のデータとを対応付け、
前記対応付けられたデータを取得するプログラムモジュールを生成することを特徴とする請求項13に記載の方法。 The design information associated with the application program code is information indicating data on a business process,
When the method receives information indicating data to be processed on the business process,
Based on the information indicating the correspondence relationship, the data processed on the business process identified by the input information is associated with the data on the code of the application program,
The method according to claim 13, wherein a program module that acquires the associated data is generated.
前記計算機システムは、
前記プログラムが格納される記憶装置と、前記記憶装置に格納されたプログラムを実行するプロセッサと、を備え、
前記アプリケーションプログラムの開発工程の一つの段階における設計情報の構成要素と、前記一つの段階より進んだ段階における設計情報の構成要素との対応関係を示す情報を保持し、
前記プログラムは、前記対応関係を示す情報に基づいて、前記アプリケーションプログラムの開発工程の一つの段階における設計情報の構成要素と、前記アプリケーションプログラムのコードとを対応付ける第1の手順を前記プロセッサに実行させることを特徴とするプログラム。 A program for controlling a computer system that executes an application program,
The computer system is
A storage device that stores the program; and a processor that executes the program stored in the storage device.
Holding information indicating a correspondence relationship between the design information component in one stage of the application program development process and the design information component in a stage advanced from the one stage;
The program causes the processor to execute a first procedure for associating a component of design information and a code of the application program in one stage of the application program development process based on the information indicating the correspondence relationship. A program characterized by that.
前記第1の手順は、前記業務プロセス上の点を示す情報を入力されると、前記対応関係を示す情報に基づいて、前記入力された情報によって識別される業務プロセス上の点と、前記アプリケーションプログラムのコード上の点とを対応付け、
前記プログラムは、さらに、前記対応付けられたアプリケーションプログラムのコード上の点に、前記アプリケーションプログラムを監視するプログラムモジュールを挿入する第2の手順を前記プロセッサに実行させることを特徴とする請求項16に記載のプログラム。 The component of the design information associated with the code of the application program is information indicating a point on the business process,
In the first procedure, when information indicating a point on the business process is input, the point on the business process identified by the input information based on the information indicating the correspondence relationship, and the application Map points on the program code,
The program further causes the processor to execute a second procedure for inserting a program module for monitoring the application program at a point on the code of the associated application program. The listed program.
前記第1の手順は、前記業務プロセス上で処理されるデータを示す情報を入力されると、前記対応関係を示す情報に基づいて、前記入力された情報によって識別される業務プロセス上で処理されるデータと、前記アプリケーションプログラムのコード上のデータとを対応付け、
前記プログラムは、さらに、前記対応付けられたデータを取得するプログラムモジュールを生成する第2の手順を前記プロセッサに実行させることを特徴とする請求項16に記載のプログラム。 The component of the design information associated with the code of the application program is information indicating data on the business process,
When the information indicating the data to be processed on the business process is input, the first procedure is processed on the business process identified by the input information based on the information indicating the correspondence relationship. And the data on the code of the application program,
The program according to claim 16, further causing the processor to execute a second procedure for generating a program module for acquiring the associated data.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006145199A JP2007316905A (en) | 2006-05-25 | 2006-05-25 | Computer system and method for monitoring application program |
US11/746,910 US20080010545A1 (en) | 2006-05-25 | 2007-05-10 | Computer system and method for monitoring execution of application program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006145199A JP2007316905A (en) | 2006-05-25 | 2006-05-25 | Computer system and method for monitoring application program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007316905A true JP2007316905A (en) | 2007-12-06 |
Family
ID=38850715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006145199A Withdrawn JP2007316905A (en) | 2006-05-25 | 2006-05-25 | Computer system and method for monitoring application program |
Country Status (2)
Country | Link |
---|---|
US (1) | US20080010545A1 (en) |
JP (1) | JP2007316905A (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011516953A (en) * | 2008-04-07 | 2011-05-26 | メタフォリック リミテッド | Anti-tamper system using automatic analysis |
JP2012133751A (en) * | 2010-12-23 | 2012-07-12 | Korea Electronics Telecommun | Method and device for monitoring data variable of software component |
WO2015071946A1 (en) * | 2013-11-12 | 2015-05-21 | 株式会社日立製作所 | Management computer, deployment management method, and non-transient computer-readable storage medium |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090198496A1 (en) * | 2008-01-31 | 2009-08-06 | Matthias Denecke | Aspect oriented programmable dialogue manager and apparatus operated thereby |
GB0908913D0 (en) * | 2009-05-26 | 2009-07-01 | Univ Dundee | Software development tool |
US9269061B2 (en) * | 2009-12-10 | 2016-02-23 | Equinix, Inc. | Performance, analytics and auditing framework for portal applications |
US20110320179A1 (en) * | 2010-06-28 | 2011-12-29 | International Business Machines Corporation | Process monitoring |
CN104641353B (en) * | 2012-09-21 | 2018-03-06 | 惠普发展公司,有限责任合伙企业 | The available monitor in the case of continuous deployment |
JP2017123389A (en) * | 2016-01-06 | 2017-07-13 | 富士通株式会社 | Rigid flexible board and method of manufacturing the same |
US11340906B2 (en) | 2018-10-04 | 2022-05-24 | Walmart Apollo, Llc | System and method for business process monitoring |
CN109766241A (en) * | 2018-12-29 | 2019-05-17 | 中国银行股份有限公司 | System monitoring method, apparatus, computer equipment and computer readable storage medium |
CN110362459B (en) * | 2019-06-18 | 2023-02-03 | 中国平安人寿保险股份有限公司 | System performance monitoring method and device based on SpringAop and electronic equipment |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6260187B1 (en) * | 1998-08-20 | 2001-07-10 | Wily Technology, Inc. | System for modifying object oriented code |
JP4089427B2 (en) * | 2002-12-26 | 2008-05-28 | 株式会社日立製作所 | Management system, management computer, management method and program |
US7360114B2 (en) * | 2003-06-17 | 2008-04-15 | International Business Machines Corporation | Logging of exception data |
US7395458B2 (en) * | 2004-05-21 | 2008-07-01 | Bea Systems, Inc. | Diagnostic instrumentation |
US7818721B2 (en) * | 2006-02-01 | 2010-10-19 | Oracle America, Inc. | Dynamic application tracing in virtual machine environments |
-
2006
- 2006-05-25 JP JP2006145199A patent/JP2007316905A/en not_active Withdrawn
-
2007
- 2007-05-10 US US11/746,910 patent/US20080010545A1/en not_active Abandoned
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2011516953A (en) * | 2008-04-07 | 2011-05-26 | メタフォリック リミテッド | Anti-tamper system using automatic analysis |
JP2012133751A (en) * | 2010-12-23 | 2012-07-12 | Korea Electronics Telecommun | Method and device for monitoring data variable of software component |
WO2015071946A1 (en) * | 2013-11-12 | 2015-05-21 | 株式会社日立製作所 | Management computer, deployment management method, and non-transient computer-readable storage medium |
Also Published As
Publication number | Publication date |
---|---|
US20080010545A1 (en) | 2008-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007316905A (en) | Computer system and method for monitoring application program | |
US11455229B2 (en) | Differencing of executable dataflow graphs | |
US9740479B2 (en) | Complexity reduction of user tasks | |
US7418453B2 (en) | Updating a data warehouse schema based on changes in an observation model | |
RU2419854C2 (en) | Template based service management | |
JP5705084B2 (en) | 2-pass automatic application measurement | |
JP5614843B2 (en) | Integrated software design and operation management system | |
US20090319951A1 (en) | Aggregating Service Components | |
EP2674859A2 (en) | Computing system, method for controlling thereof, and computer-readable recording medium having computer program for controlling thereof | |
US10116512B2 (en) | Service discovery and/or effort estimation in networked computing environments | |
JP5735998B2 (en) | Operation system | |
Danciu et al. | Performance awareness in Java EE development environments | |
US20070240111A1 (en) | Pattern based adminstration of an operation in a component based computing solution | |
US10657476B2 (en) | Just in time compilation (JIT) for business process execution | |
JP4535906B2 (en) | UML model creation support method and apparatus | |
JP5651873B2 (en) | Operation support method and computer | |
do Nascimento et al. | A method for rewriting legacy systems using business process management technology | |
US20140006092A1 (en) | Management apparatus and management method | |
JP2007265231A (en) | Implementation determination support system for version upgrade or the like, implementation determination support method for version upgrade or the like, and implementation determination support program for version upgrade or the like | |
JP5412970B2 (en) | Task management system | |
JP7391740B2 (en) | Impact identification support device and impact identification support method | |
CN116166162A (en) | Visual operation method and device of database and computer readable medium | |
JP2006243996A (en) | Job network management system | |
Kučera | Cloud computing using a hierarchical component system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20081110 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20101105 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20110520 |