JP2011170884A - Method and device for weaving aspect to changing base system - Google Patents

Method and device for weaving aspect to changing base system Download PDF

Info

Publication number
JP2011170884A
JP2011170884A JP2011107243A JP2011107243A JP2011170884A JP 2011170884 A JP2011170884 A JP 2011170884A JP 2011107243 A JP2011107243 A JP 2011107243A JP 2011107243 A JP2011107243 A JP 2011107243A JP 2011170884 A JP2011170884 A JP 2011170884A
Authority
JP
Japan
Prior art keywords
base system
change
adaptive
advice
base
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2011107243A
Other languages
Japanese (ja)
Inventor
Robert Hirschfeld
ヒルシュフェルト,ロベルト
Katsuya Kawamura
カワムラ,カツヤ
Stefan Hanenberg
ハーネンベルク,シュテファン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universitaet Duisburg Essen
NTT Docomo Inc
Original Assignee
Universitaet Duisburg Essen
NTT Docomo Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universitaet Duisburg Essen, NTT Docomo Inc filed Critical Universitaet Duisburg Essen
Priority to JP2011107243A priority Critical patent/JP2011170884A/en
Publication of JP2011170884A publication Critical patent/JP2011170884A/en
Pending legal-status Critical Current

Links

Images

Abstract

<P>PROBLEM TO BE SOLVED: To process a dynamic change within a base system in which one or more aspects are woven in an aspect oriented programming environment. <P>SOLUTION: The method for adapting to changes in the base system in an aspect oriented programming environment including an aspect system for implementing aspects to be woven into the base system using a weaver, includes: steps of, in response to a change in the base system, evaluating the importance of the change in the base system; and if the evaluation of the system change is found to be important, taking an adaptive action to compensate for the change. <P>COPYRIGHT: (C)2011,JPO&INPIT

Description

本発明はアスペクト指向プログラミング(AOP)に関し、特に変化するベースシステムにアスペクトをウィービング(weaving)する方法および装置に関する。   The present invention relates to aspect-oriented programming (AOP), and more particularly to a method and apparatus for weaving aspects to a changing base system.

本発明は、アスペクト指向プログラミング(AOP)の分野に関する。AOPは、「アスペクト(aspect)」と呼ばれる新しいモジュール構造を使用する。
アスペクトは、ソフトウェアシステムの主要なモジュール化をクロスカットする要素を提供する。アスペクト指向のプログラミング言語またはシステムは、システムのプログラミングアスペクトの要素を用いて従来のプログラミング言語およびシステムを拡張する。このような要素は、少数の特別なプログラムモジュールに関連する部分のクロスカットの実行をローカライズすることができ、主要なプログラムモジュール全体に関して実行するわけではない。
The present invention relates to the field of aspect-oriented programming (AOP). AOP uses a new modular structure called “aspect”.
Aspect provides elements that cross-cut the main modularization of software systems. An aspect-oriented programming language or system extends traditional programming languages and systems with elements of the programming aspect of the system. Such an element can localize the execution of the cross-cuts for the parts associated with a few special program modules and not for the entire main program module.

アスペクトのクロスカット性をとらえるために、この特別なプログラムモジュールは、カプセル化についての従来からのルールを決まりに従ったやり方で変化させる。これら特別なプログラムモジュールは、主要なモジュールの明確な同意がなくても主要なモジュールの実行に影響を与えることができる。さらに、それらは幾つかの主要なモジュールに対して同時に影響を与えることができる。   To capture the cross-cut nature of the aspect, this special program module changes the traditional rules for encapsulation in a routine way. These special program modules can affect the execution of the main module without the explicit consent of the main module. Furthermore, they can affect several major modules simultaneously.

アスペクト指向プログラミング(AOP)は、プログラムが利用できる表現機能を拡張するため、多くの設計上の決定を局所的に表現することができる。AOPのプログラマは、基本となるプログラムを従来のプログラミング言語で記述し、さらにアスペクトコードの一部を記述する。その各々は、ベースプログラムのある部分に記述されている実行に影響する。   Aspect-oriented programming (AOP) extends the expressive capabilities available to programs so that many design decisions can be expressed locally. An AOP programmer describes a basic program in a conventional programming language and further describes a part of an aspect code. Each of them affects the execution described in a part of the base program.

このようにしてアスペクトコードは、幾つかのモジュールにおいて幾つかの設計要素を実行することができるものであり、これらのパターンのフィールドおよび方法をクラス全体に広げるわけではない。その次に例えば、幾つかのモジュールの中の複合システムのためのトレーシング、デバッギングおよび組み込みの支援を取り込み、単一モジュール内の幾つかのクラスを含むエラー処理プロトコルを取り込み、クラス全体にわたって絡む複数のコードの一部としてではなく、単一モジュール内の幾つかのクラスを含むアルゴリズムを共有するリソースを得ることができる。   In this way, aspect code is capable of implementing several design elements in several modules and does not extend the fields and methods of these patterns across classes. Then, for example, incorporating tracing, debugging and built-in support for complex systems in several modules, incorporating error handling protocols including several classes within a single module, and involving multiple classes throughout Rather than as part of the code, resources that share an algorithm containing several classes within a single module can be obtained.

プログラミングアスペクトに対する特別なプログラムモジュールは、クラスなどのより伝統的なモジュール方式の構成体のモジュールを合理的にクロスカットすることによって、これを可能にする。従って、これらの特別なプログラムモジュールの1つは、クリーンである決まりに従ったやり方で幾つかのクラス(または単一のクラスの中の幾つかの方法)の実行に影響することがある。アスペクトとオブジェクトの相互作用は、オブジェクトとオブジェクトの相互作用および他の従来のプログラミングの実例とは異なる。その相違点は、従来の方式においてオブジェクトの全ての動作は、オブジェクトクラスの定義の中の直接的な実行、または他のオブジェクトの動作(例えば、メソッド呼出し)を使用するためにオブジェクトクラスの定義の中でコード化された要求、または他のオブジェクトクラスの実行を再利用(例えば、継承)するためにオブジェクトクラスの定義の中の要求のうちのいずれかとして、オブジェクト自身の中にカプセル化されるということである。このため、これらの従来の方法では、オブジェクト動作の全ての制御は、オブジェクト自身に依存する。他方でAOPの環境においては、オブジェクト動作の一部は、オブジェクトが多少なりとも動作を要求することなく、オブジェクトの外部のアスペクトの中で定義することができる。そのためオブジェクト動作の一部は、アスペクトによりオブジェクトに対して透過的に強制されると言うことができる。さらに、1つのアスペクトがことによると異なるクラスの複数のオブジェクトに対してその動作を強制できるという点で、アスペクトはより全体的な効果を有する。   Special program modules for programming aspects make this possible by reasonably cross-cutting modules of more traditional modular constructs such as classes. Thus, one of these special program modules may affect the execution of several classes (or several methods within a single class) in a manner that follows a clean convention. Aspect-object interactions differ from object-to-object interactions and other traditional programming examples. The difference is that in the traditional scheme all object actions are performed directly within the object class definition, or other object actions (eg method invocations) to use the object class definition. Encapsulated in the object itself, either as a request encoded in it, or as a request in the definition of an object class to reuse (eg, inherit) the execution of other object classes That's what it means. For this reason, in these conventional methods, all control of the object motion depends on the object itself. On the other hand, in an AOP environment, part of an object action can be defined in an aspect outside the object, without the object requiring any action. Therefore, it can be said that part of the object motion is forced transparently with respect to the object by the aspect. Furthermore, an aspect has a more global effect in that one aspect can possibly force its action on multiple objects of different classes.

アスペクト指向プログラミング(AOP)は、非特許文献1において紹介されている。AOPは、論理的にはある問題に属するものの、基本となるプログラミング言語および環境の限定された構成機構のためにモジュール化できないコード部分を処理する。結果として得られるコードは、極めて複雑に入り組んでいて散漫なものである。そのように複雑になってしまう原因となる問題は、クロスカット問題(crosscutting concerns)と呼ばれている。アスペクト指向は、アスペクトと呼ばれる異なるモジュールへとクロスカット問題をモジュール化することに関するものである。   Aspect-oriented programming (AOP) is introduced in Non-Patent Document 1. AOP handles portions of code that logically belong to a problem, but cannot be modularized because of the limited organization of the underlying programming language and environment. The resulting code is extremely complex and messy. The problem that causes such complication is called a crosscutting problem. Aspect orientation is about modularizing the crosscut problem into different modules called aspects.

アスペクトモジュールをアプリケーションと一体化するための機構は、ウィービングと呼ばれている。ウィーバは、全てのアスペクトをアプリケーションに加える役割がある。そのような一体化を規定するために、アスペクト指向はジョインポイント(join point)と呼ばれる概念を利用する。Kiczalesらの文献(非特許文献1)では、ジョインポイントはプログラムの実行における合理的なポイントとして導入されている。ジョインポイントの典型的な例は、メソッド呼出しである。   The mechanism for integrating the aspect module with the application is called weaving. The weaver is responsible for adding all aspects to the application. In order to define such integration, aspect orientation uses a concept called a join point. In Kickzales et al. (Non-Patent Document 1), join points are introduced as rational points in program execution. A typical example of a join point is a method call.

従来、ウィービング処理は、開発者によって、ある所定の時点で、一体化されるべき複数のアスペクトについて開始される。さらにウィービング処理は、ランタイムにおいて潜在的にまたは確実にアスペクト特有のコードを実行する必要があるジョインポイントを表すベースシステム内の全ての位置を決定し、それに適応する。ランタイム中にジョインポイントを表す、適応された位置は、ジョインポイントシャドーと呼ばれる。あるジョインポイントシャドーに適応するということは、ある修正が実行されることを意味する。この修正により、ジョインポイントシャドーに到達すると、アドバイスコードの呼出しまたは実行が可能になる。これは、実際にこの位置で実行されるコード(「アドバイスコード」)を挿入、または「ラッパ(wrapper)」を用いることによって行うことができる。このラッパは、アスペクトによって与えられた「アドバイス」を検討または実行するように、ラッピングされた方法(wrapped method)を動作させる。ジョインポイントがジョインポイントシャドーへとこのように「適応(adaptation)」することは、ウィービング処理によって行われる。   Conventionally, the weaving process is initiated by a developer for a plurality of aspects that are to be integrated at a given point in time. Furthermore, the weaving process determines and adapts to all locations in the base system that represent join points that need to execute aspect-specific code potentially or reliably at runtime. The adapted position that represents the join point during runtime is called the join point shadow. Adapting to a certain join point shadow means that a certain correction is performed. This modification allows the advice code to be called or executed when the join point shadow is reached. This can be done by inserting a code that is actually executed at this location (“advice code”) or by using a “wrapper”. This wrapper operates a wrapped method to consider or execute the “advice” given by the aspect. This “adaptation” of the join point to the join point shadow is done by the weaving process.

アスペクト自体は、実行されるアドバイスコードおよび一連のジョインポイント記述の組合せから成る。このジョインポイント記述は、ベースシステム(アスペクトなしのシステム)内のジョインポイントを、アドバイスコードを実行すべきベースシステム内のポイントとして表している。一連のジョインポイント記述は、「ポイントカット」と呼ばれる。次に、特殊な編集処理と見なすことができるウィービング処理は、アドバイスコードの実行が一旦それに関連付けられたジョインポイントに到達すると可能になるようにベースシステムを修正するものである。このことは、アスペクトのベースシステムへのウィービング、「アスペクトのインストール」、または「アドバイスのインストール」と呼ばれることもある。ウィーバにより、ランタイムにおいてアスペクト特有のコードを実行することが可能となっている位置は、ジョインポイントシャドーと呼ばれる。アスペクトをベースシステムへとウィービングすることにより、ウィービング処理は、ジョインポイントシャドーにおけるアドバイスコードの呼出しを可能にする。   The aspect itself consists of a combination of advice code to be executed and a series of join point descriptions. This join point description represents a join point in the base system (a system without an aspect) as a point in the base system where the advice code is to be executed. A series of join point descriptions is called a “point cut”. Next, the weaving process, which can be regarded as a special editing process, modifies the base system so that execution of the advice code is possible once it reaches the associated join point. This is sometimes referred to as weaving the aspect to the base system, “installing aspects”, or “installing advice”. The location where weaver can execute aspect-specific code at runtime is called a joinpoint shadow. By weaving the aspect to the base system, the weaving process allows the advice code to be called in the join point shadow.

従来、ウィービング処理は、アスペクトがウィービングされるべきベースシステムが変化する可能性を考慮していない。従来のウィービングに対するアプローチにおいて、ウィービングされるアスペクトに関連付けられる一連のジョインポイントシャドーは、ベースシステムのある構成を有するある時間(アスペクトをウィービングする時間)で一旦決定され、次にアスペクトおよびベースシステムの持続時間と同じ間存続する。これは、ウィービングの後、アスペクトに対して特異的なコードを実行しうるものであるそのアプリケーションの中の全てのシャドーが、ベースシステム内のいかなる変化も考慮せずにアスペクトがベースシステムの中にウィービングされたときの特定の構成を持つベースシステムに適応されることを意味する。   Conventionally, the weaving process does not consider the possibility that the base system to which the aspect is to be weaved will change. In a traditional approach to weaving, a series of join point shadows associated with a weaved aspect is determined once at a certain time with some configuration of the base system (time to weave the aspect), and then the duration of the aspect and base system Survives for the same amount of time. This means that after weaving, all shadows in the application that can execute code specific to the aspect will be taken into account by the aspect into the base system without taking into account any changes in the base system. It means being adapted to a base system with a specific configuration when weaving.

Kiczales,G.、Lamping,J.、Mendhekar,A.、Maeda,C.、Lopes,C.、Loingtier,J.−M.、Irwing,J.、「Aspect−Oriented Programming」、Proceedings of European Conference on Object−Oriented Programming (ECOOP)、LNCS 1241、 Springer−Verlag、1996年、p.220−242Kiczales, G .; Lamping, J .; Mendhekar, A .; Maeda, C .; Loopes, C .; Loingtier, J .; -M. Irwing, J .; "Aspect-Oriented Programming", Proceedings of European Conference on Object-Oriented Programming (ECOOP), LNCS 1241, Springer-Verlag, 1996, p. 220-242

従って、本発明の目的は、アスペクト指向プログラミングの環境に適していて、1つ以上のアスペクトがウィービングされているベースシステム内の動的な変化を処理することができる方法および装置を提供することである。   Accordingly, it is an object of the present invention to provide a method and apparatus suitable for an aspect-oriented programming environment and capable of handling dynamic changes in a base system in which one or more aspects are weaved. is there.

本発明の1つの実施形態によれば、ウィーバを用いてベースシステムの中にウィービングされるべきアスペクトを実行するアスペクトシステムを含むアスペクト指向プログラミング環境の中で前記ベースシステム内の変化に適応させる方法が提供される。前記方法には、前記ベースシステム内の変化に応じて、前記ベースシステム内の前記変化の重要性を評価するステップと、前記変化に対する前記評価が、重要性があると判明すれば、前記変化を補償するために適応動作を行うステップとが含まれる。   According to one embodiment of the present invention, a method for adapting to changes in a base system in an aspect-oriented programming environment that includes an aspect system that implements an aspect to be weaved into the base system using a weaver. Provided. The method includes evaluating the importance of the change in the base system in response to changes in the base system, and if the evaluation for the change is found to be important, the change is determined. Performing an adaptive operation to compensate.

システムの変化を評価し、必要な場合にはアスペクトの構成システムについて適応動作を行うことによって、基礎となるベースシステムはベースシステム内のどのような変化にも柔軟に対処することができる。このため、ベースシステムの変化から生じたアスペクトとベースシステムとの間の不整合を補償し解決するように、ベースシステム内の変化(要素の変更、追加または除去)を補償することができる。   By evaluating system changes and, if necessary, performing adaptive operations on aspect configuration systems, the underlying base system can flexibly deal with any changes in the base system. Thus, changes in the base system (element changes, additions or removals) can be compensated so as to compensate and resolve mismatches between the aspect and base system resulting from changes in the base system.

1つの実施形態によれば、重要性の評価には、ベースシステム内の変化の前のジョインポイントまたはジョインポイントシャドーが、ベースシステム内の変化の後のこれらのものと異なっているかどうかを、ベースシステム内の変化の後で決定するステップが含まれている。これにより、システムの変化の前にベースシステムへとウィービングされるアスペクトにより生じる構成システム内のジョインポイントまたはジョインポイントシャドーが、修正されたベースシステムに対して実行するウィービング処理から結果として生ずるものと異なっているかどうかを、ベースシステム内の変化の後で決定することができる。このことは、例えば、システムの変化の前後のアスペクトおよびアドバイスに対するポイントカットを比較することによって行うことができ、それらが異なっている場合は、その変化は重要性があると判明する。この比較は、システムの変化の前後のポイントカットまたは一連のジョインポイントもしくはジョインポイントシャドーを直接比較することによって行うことができる。1つの実施形態によれば、2つの一連のものは、それらの要素の数を単に比較して行い、その数が異なる場合は重要な変化があると判断することができる。別の実施形態によれば、一連の要素を個別に、すなわちシステムの変化の前の全てのジョインポイントまたはジョインポイントシャドーをシステムの変化の後のものと比較することによって比較を行うことができ、この個々の比較が異なることが判明すると、ベースシステムの中で重要性がある変化が発生していると決定できる。   According to one embodiment, the assessment of importance is based on whether the join points before the changes in the base system or the join point shadow are different from those after the changes in the base system. A step of determining after a change in the system is included. This allows join points or join point shadows in the configuration system resulting from aspects weaved to the base system before the system changes to differ from those resulting from the weaving process performed on the modified base system. Can be determined after a change in the base system. This can be done, for example, by comparing aspect cuts before and after system changes and pointcuts for advice, and if they are different, the changes prove significant. This comparison can be done by directly comparing pointcuts or a series of joinpoints or joinpoint shadows before and after the system change. According to one embodiment, the two series can be done by simply comparing their number of elements, and if the numbers are different, it can be determined that there are significant changes. According to another embodiment, the comparison can be made by comparing a series of elements individually, i.e. by comparing all join points or join point shadows before the system change with those after the system change, If this individual comparison is found to be different, it can be determined that a significant change has occurred in the base system.

1つの実施形態によれば、前記アスペクト指向プログラミングの環境は、前記ベースシステムおよび前記アスペクトシステムに加えて、適応システムを含む。ここで、前記適応システム、前記ベースシステムおよび前記アスペクトシステムは別個の存在であり、互いに独立して修正および実行を行うことができる。これにより、適応システムに加えてアスペクトシステムにも大きな柔軟性を持たせることができるため、システム全体を同様により柔軟に設計することができる。   According to one embodiment, the aspect-oriented programming environment includes an adaptive system in addition to the base system and the aspect system. Here, the adaptive system, the base system, and the aspect system are separate entities, and can be modified and executed independently of each other. As a result, the aspect system can be given great flexibility in addition to the adaptive system, so that the entire system can be designed more flexibly as well.

1つの実施形態によれば、前記ベースシステム、前記アスペクトシステムおよび前記適応システムは、例えば機能呼出し、メソッド呼出し、メッセージの送信などの直接または間接の呼出しを通して互いに作用する。これにより、システム全体のこれら3つの部分は互いに独立となる。   According to one embodiment, the base system, the aspect system and the adaptive system interact with each other through direct or indirect calls such as function calls, method calls, sending messages, etc. This makes these three parts of the entire system independent of each other.

1つの実施形態によれば、適応動作には、下記、すなわち全体的または部分的に前記アスペクトを前記ベースシステムの中に再ウィービングする動作、前記アスペクトに関連付けられたアドバイスを全体的または部分的に再ウィービングする動作、全体的または部分的に前記アスペクトをアンウィービングする動作、または前記アスペクトに関連付けられたアドバイスを全体的または部分的にアンウィービングする動作の中の1つ以上の動作が含まれる。   According to one embodiment, the adaptive action includes the following: an action that reweaves the aspect into the base system in whole or in part, and advice that is associated with the aspect in whole or in part. One or more operations are included in the operation of re-weaving, the operation of unweaving the aspect in whole or in part, or the operation of unweaving the advice associated with the aspect in whole or in part.

本発明の実施形態による方法には、ベースシステムの中で変化が生じた場合、ベースシステムおよびアスペクトを含む全体的なシステムの要素にベースシステム内の変化を通知するステップが含まれ、前記要素が下記のステップ、すなわち、ベースシステムの変化の評価を開始するステップと、ベースシステムの変化を評価するステップと、前記評価に基づいて、適応動作を開始するステップと、前記評価に基づいて、適応動作を実行するステップとのうち1つ以上のステップを行うことができる。   A method according to an embodiment of the invention includes the step of notifying a change in the base system to elements of the overall system, including the base system and aspects, when a change occurs in the base system, the element The following steps: starting a base system change evaluation; evaluating a base system change; starting an adaptive action based on the evaluation; and an adaptive action based on the evaluation One or more steps can be performed.

システムの要素に通知することにより、システムの変化を評価した後で、適切な動作が確実に行われるようになる。通知されたシステムの要素は、ベースシステムおよびアスペクト、アドバイスから分離された要素とすることができる。システムの変化に関する通知を受け取り、次にこの変化の評価を開始することを委託することができる。このシステムの要素が評価を実行するように設計し、または評価を実行するように他の要素をトリガまたは駆動し、これによって評価を開始することができる。   Notifying system elements ensures that proper operation is performed after evaluating system changes. The notified system element may be an element separated from the base system, aspect, and advice. It can be entrusted to receive notifications about changes in the system and then start evaluating this change. Elements of the system can be designed to perform an evaluation, or other elements can be triggered or driven to perform an evaluation, thereby initiating the evaluation.

評価に基づいて、システムの要素はこの時、比較結果に鑑みて必要な適応動作をそれ自体が実行するか、または可能ないずれかの他のシステムの要素がそのような動作を行うことを開始させることができる。そのために、システムの要素はいずれかの別のシステムの要素にメッセージを送って、評価結果に鑑みて、行うことが必要であるとシステムの要素が認めた適応動作をトリガすることができる。   Based on the evaluation, the system element will then perform the necessary adaptive action itself in view of the comparison result, or any other possible system element will begin to do so. Can be made. To that end, a system element can send a message to any other system element to trigger an adaptive action that the system element recognizes that needs to be done in view of the evaluation results.

システムの変化を受け取り、評価の開始と実行とのうちのいずれかまたは両方を行い、適応動作の開始と実行とのうちいずれかまたは両方を行うことを担うシステムの要素は、アスペクト、アドバイス、ポイントカット、ウィーバ、または通知を評価して適応動作を開始するための他の(別個の)要素のうちの1つとすることができる。   The elements of the system that receive system changes, start and / or execute evaluations, and / or start and / or execute adaptive actions are aspects, advice, and points It can be one of a cut, weaver, or other (separate) element for evaluating a notification and initiating an adaptive action.

ある実施形態によれば、前記要素に対してベースシステム内の変化を通知するステップには、ベースシステムの中に変化が生じた場合、対応する通知を前記要素に送ることにより自動的に前記要素に通知するステップと、ベースシステムの中に何らかの変化が発生しているかどうかに関して前記ベースシステムを観察するために前記要素が前記ベースシステムをポーリングするステップとのうちのいずれかまたは両方が含まれる。   According to an embodiment, the step of notifying the element of a change in the base system includes automatically sending the corresponding notification to the element when a change occurs in the base system. And / or polling the base system to observe the base system as to whether any changes are occurring in the base system.

1つの実施形態によれば、アドバイス、ポイントカットまたはアスペクト自身などのアスペクトシステムの1つ以上の要素は、ベースシステム内の何らかの変化について通知を受けるように登録される。これにより、これらの登録されたアスペクト、アドバイスまたはポイントカットは、システムの変化を確実に通知される。この登録方式により、そのような通知を受け取るように登録されていないシステムの要素には通知しないことによって、効率の良い通知が可能になる。   According to one embodiment, one or more elements of the aspect system, such as advice, pointcuts or the aspect itself, are registered to be notified about any changes in the base system. This ensures that these registered aspects, advices or pointcuts are notified of system changes. This registration scheme allows efficient notification by not notifying system elements that are not registered to receive such notifications.

ある実施形態によれば、前記評価には、前記変化の後のあるアスペクトについて一連の全てのジョインポイントとジョインポイントシャドーとのうちのいずれかまたは両方を決定するステップが含まれる。これにより、あるアスペクトまたはアドバイスに対するシステムの変化の重要性を確認できる。   According to an embodiment, the evaluation includes determining either or both of a series of all join points and join point shadows for an aspect after the change. This confirms the importance of system changes for an aspect or advice.

ある実施形態によれば、この方法は、前記変化の後に決定された一連のジョインポイントとジョインポイントシャドーとのうちのいずれかまたは両方を、前記変化の前の対応する一連のものと比較するステップと、両者が異なる場合には前記変化を補償するために適応動作を行うステップとをさらに含む。これにより、この比較結果に基づいて、とりうる適応動作の一群の中から1つを適切に選択する可能性が与えられる。これにより、システムの変更の後に組み込まれているべき全てのジョインポイントシャドーが実際に組み込まれているか否かを検査できるようになる。次に、結果に応じて、とりうる複数の適応動作のうちの1つが選択される。評価に重要性があると認められたアスペクトまたはアドバイスについてのみ適応動作を行うことによって、すなわち評価により適応動作が必要であると認められたこれらのアスペクトのみを再ウィービングまたはアンウィービングすることによって、適応動作を効率的に実行することができる。   According to an embodiment, the method comprises comparing one or both of a series of join points and join point shadows determined after the change with a corresponding series before the change. And an adaptive operation to compensate for the change if they are different. This gives the possibility of appropriately selecting one from a group of possible adaptive actions based on this comparison result. This makes it possible to check whether all join point shadows that should have been incorporated after a system change are actually incorporated. Next, one of a plurality of possible adaptive actions is selected according to the result. Adapt by performing adaptive actions only on aspects or advice that are deemed important in the evaluation, i.e. by reweaving or unweaving only those aspects that have been found to be required by the evaluation The operation can be executed efficiently.

1つの実施形態によれば、本発明には、前記評価結果に基づいて、前記適応動作のどれを利用すべきかが決定される一連のルールを評価するステップが含まれる。これにより、評価結果が確実そして適切に考慮されるようになり、また特定のシステムの変化に適当な適応動作が確実に選択できるようになる。このルールは、ランタイム、例えばユーザとの対話または任意の機能またはモジュールを評価する間に発生する事象または状態をも考慮に入れる。   According to one embodiment, the present invention includes the step of evaluating a series of rules that determine which of the adaptive actions to use based on the evaluation result. This ensures that the evaluation results are taken into account reliably and appropriately and that an adaptive action appropriate to the particular system change can be selected with certainty. This rule also takes into account events or conditions that occur during runtime, eg, user interaction or evaluation of any function or module.

ある実施形態によれば、前記ベースシステムの変化には、下記すなわちベースシステムの要素の追加、除去または修正の中の1つ以上が含まれる。   According to some embodiments, the base system changes include one or more of the following: addition, removal or modification of elements of the base system.

ある実施形態によれば、本発明の実施形態の1つに基づいて方法を実行するためのコンピュータが実行可能なコードを含むコンピュータプログラムが提供される。   According to certain embodiments, a computer program is provided that includes computer-executable code for performing the method according to one of the embodiments of the present invention.

さらに別の実施形態によれば、ウィーバを用いてベースシステムへとウィービングされるべきアスペクトを実行するアスペクトシステムを含むアスペクト指向プログラミングの環境において前記ベースシステム内の変化に適応する装置が提供され、この装置は、前記ベースシステム内の変化に応じて、前記ベースシステム内の前記変化の重要性を評価する手段と、前記評価により前記変化に重要性があると判明すると、前記変化を補償するために適応動作を行うための手段とを備える。   According to yet another embodiment, an apparatus is provided for adapting to changes in the base system in an aspect-oriented programming environment that includes an aspect system that performs an aspect to be weaved to a base system using a weaver. In response to a change in the base system, an apparatus evaluates the importance of the change in the base system and, if the evaluation reveals that the change is significant, to compensate for the change Means for performing an adaptive operation.

このような装置は、ソフトウェアまたはハードウェアまたは両方の組合せとして実現することができる。さらに別の実施形態によれば、本発明は、本発明の実施形態による方法で定義されている機能を実現する手段を備える。そのような手段は、ソフトウェアまたはハードウェアまたは両方の組合せとして実現することができる。   Such a device can be implemented as software or hardware or a combination of both. According to yet another embodiment, the present invention comprises means for implementing the functions defined in the method according to the embodiment of the present invention. Such means can be implemented as software or hardware or a combination of both.

従来技術に基づいて、ウィーバを用いるアスペクトおよびベースシステムの構成を概略的に示す図である。It is a figure which shows schematically the structure of the aspect which uses a weaver, and a base system based on a prior art. 従来技術のシステムでシステムの変化が生じた場合に生じる可能性がある問題を概略的に示す図である。FIG. 6 schematically illustrates a problem that may occur when a system change occurs in a prior art system. 本発明の実施形態による方法を概略的に示す図である。Fig. 2 schematically illustrates a method according to an embodiment of the invention. 本発明のさらに別の実施形態による方法を概略的に示す図である。FIG. 6 schematically illustrates a method according to yet another embodiment of the invention. 本発明の実施形態に基づいて、通知を行うための基本的な構成を概略的に示す図である。It is a figure which shows schematically the fundamental structure for performing notification based on embodiment of this invention. 本発明の実施形態による別の方法を概略的に示す図である。FIG. 3 schematically illustrates another method according to an embodiment of the invention. 本発明のさらに別の実施形態によるシステムを概略的に示す図である。FIG. 6 schematically illustrates a system according to yet another embodiment of the invention. 本発明のさらに別の実施形態によるシステムを概略的に示す図である。FIG. 6 schematically illustrates a system according to yet another embodiment of the invention. 本発明のさらに別の実施形態によるシステムを概略的に示す図である。FIG. 6 schematically illustrates a system according to yet another embodiment of the invention. 本発明のさらに別の実施形態によるシステムを概略的に示す図である。FIG. 6 schematically illustrates a system according to yet another embodiment of the invention. 本発明による実施形態を実行するためのプログラムコードの典型的な実施例を示す図である。FIG. 6 illustrates an exemplary example of program code for executing an embodiment according to the present invention. 本発明の実施形態によるシステムを概略的に示す図である。1 schematically illustrates a system according to an embodiment of the invention. 本発明のさらに別の実施形態による方法を概略的に示す図である。FIG. 6 schematically illustrates a method according to yet another embodiment of the invention.

図1Aは、個別のモジュールM,M,M,...,Mを含むベースシステム100を概略的に表している。これらのモジュールは、ソフトウェアモジュール、特定のソフトウェアモジュールに関連したハードウェアモジュール(例えば、ハードウェア用のドライバ)などである。例えばネットワークの場合では、要素M〜Mは、端末、ルータ、スイッチ、それらの対応するドライバ部品などネットワークの個々のハードウェア部品を意味する。他方、要素は、例えば全体のシステム、またはユーザに与えられた特定の機能などのある種の機能性を表すかまたは可能とするソフトウェア部品とすることもできる。 FIG. 1A shows the individual modules M 1 , M 2 , M 3 ,. . . , M n is schematically represented. These modules are software modules, hardware modules associated with specific software modules (eg, drivers for hardware), and the like. For example, in the case of a network, the elements M 1 to M n mean individual hardware parts of the network such as terminals, routers, switches and their corresponding driver parts. On the other hand, an element can be a software component that represents or enables some functionality, such as, for example, the entire system or a specific function given to a user.

図1Aの右側に、アスペクトA〜Aが円110として概略的に示されている。「アスペクト」という用語は本明細書では、アスペクト指向プログラミングの環境において使用するアスペクトのことを指すもの、すなわちベースシステムの中でクロスカットを実行するために使用する特定のモジュールとして理解する必要がある。このために、これらのアスペクトはウィーバ(weaver)120によってベースシステム100にウィービングされ、雲(cloud)130として概略的に示されているようにベースシステムのランタイム構造を生み出す。この雲130では、特定のジョインポイントシャドー、すなわち図1Aで点として示されるいわゆる適応されたジョインポイントシャドーにおいて、1つ以上のアスペクトA〜Aに関連付けられたアドバイスコードが呼び出される。適応されるべきジョインポイントシャドーは、それぞれアスペクトA〜Aに関連付けられ、またベースシステム100内で適応動作が行われる一連のジョインポイントシャドーを意味するポイントカット(ベースシステム100内のジョインポイント記述)に依存している。適応されるべきジョインポイントシャドーを記述することによって、いわゆる適応されたジョインポイントシャドーにおいてアドバイスコードが呼び出されてベースシステム内でクロスカット問題をインプリメントするように実行されるように、ポイントカットによりウィーバがベースシステムを修正できるようになる。このことは、図1Aでは雲130として概略的に示されている構成されたシステム130(ウィービング後のシステム)を結果として生ずる。この図では、適応されたジョインポイントシャドーは点として示されている。ベースシステム100が変化する場合に何が起こるかを説明するために、次に図1Bを参照する。 On the right side of FIG. 1A, aspects A 1 -A k are schematically shown as circles 110. The term “aspect” is used herein to refer to an aspect used in an aspect-oriented programming environment, ie, a specific module used to perform a crosscut in a base system. . To this end, these aspects are weaved to the base system 100 by a weaver 120 to create a runtime structure of the base system, shown schematically as a cloud 130. In this cloud 130, advice codes associated with one or more aspects A 1 -A k are invoked in a particular join point shadow, ie a so-called adapted join point shadow, shown as a point in FIG. 1A. Join point shadows to be adapted are associated with aspects A 1 to A k , respectively, and point cuts (join point descriptions in the base system 100) that mean a series of join point shadows in which adaptation operations are performed in the base system 100. ). By describing the joinpoint shadow to be adapted, the pointcut allows the weaver to execute so that the advice code is called in the so-called adapted joinpoint shadow and executed to implement the crosscut problem in the base system. The base system can be modified. This results in a configured system 130 (post-weaving system), schematically shown as cloud 130 in FIG. 1A. In this figure, the adapted join point shadow is shown as a point. To illustrate what happens when the base system 100 changes, reference is now made to FIG. 1B.

図1Bの場合、ベースシステム100の1つの要素すなわち要素Mが、ベースシステムから取り除かれている。これは、特定のソフトウェアモジュールまたはネットワーク内の端末などの特定のハードウェア要素を外すことを示している。さらに、(新しい)モジュールMn+1が図1Bのベースシステムに加えられている。 In FIG. 1B, 1 single element or elements M 2 of the base system 100 is removed from the base system. This indicates that certain hardware elements such as certain software modules or terminals in the network are removed. In addition, a (new) module M n + 1 has been added to the base system of FIG. 1B.

ここで、それぞれのアスペクトA〜Aはそれぞれ、ベースシステムの中で自身のそれぞれのポイントカットを通るジョインポイント(対応するジョインポイントシャドーを意味する)と呼ばれることに注意しなければならない。しかしながら、ここでモジュールMを取り外すことは、ベースシステムに存在していたモジュールが削除されたため、幾つかのジョインポイントがベースシステムには実際にはもはや存在しないという事実をもたらす。これが事実の場合、図1Aのランタイム構成130は、もはや実際に存在しないベースシステム内の要素(この実施例ではモジュールM)を表す適応されたジョインポイントシャドーを含む。このことは、図1Bでランタイムシステム130’の中で除かれている適応されたジョインポイントシャドーによって概略的に示されている。これらのジョインポイントシャドーは、ベースシステム内の対応するモジュール(モジュールM)がベースシステムから取り除かれているという事実によって不要になったものである。 It has to be noted here that each aspect A 1 -A k is called a join point (meaning a corresponding join point shadow) passing through its respective point cut in the base system. However, where the removal of the module M 2, since the module that was present in the base system has been removed, resulting in the fact that several joinpoint the base system no longer actually present. If this is the case, the runtime configuration 130 of FIG. 1A includes an adapted join point shadow that represents an element in the base system that is no longer actually present (module M 2 in this example). This is schematically illustrated by the adapted join point shadow that is removed in the runtime system 130 ′ in FIG. 1B. These join point shadows have become unnecessary due to the fact that the corresponding module (module M 2 ) in the base system has been removed from the base system.

さらに、新しいモジュールMn+1をベースシステム100に加えることにより、アスペクトA〜Aが、新たに加えられたモジュールMn+1に対応する付加的な適応されたジョインポイントシャドーを実際に含むべきランタイム構成130’に対応するという事実がもたらされる。しかしながら、ウィービングを行うときにはモジュールMn+1はベースシステムには存在しないので、このモジュールに対応するジョインポイントシャドーはウィービング時には適用されておらず、このモジュールMn+1は実際には存在しない。このことは、図1Bの要素130’内の空円によって概略的に図示されている。これは、特定の時点で構成されたウィービングシステムは、システムの変化がベースシステム内で発生すると、実際のベースシステムおよびその対応するアスペクトを対応するジョインポイントおよびジョインポイントシャドーを用いても、もはや正確には反映できないことを意味する。これは、システム全体の実行時および動作時に不整合またはエラーをもたらす可能性がある。 Furthermore, by adding a new module M n + 1 to the base system 100, the runtime configuration in which the aspects A 1 to A k should actually include additional adapted join point shadows corresponding to the newly added module M n + 1. The fact that it corresponds to 130 'results. However, since module M n + 1 does not exist in the base system when weaving is performed, the join point shadow corresponding to this module is not applied during weaving, and this module M n + 1 does not actually exist. This is schematically illustrated by the empty circle in element 130 ′ of FIG. 1B. This is because a weaving system configured at a particular time is no longer accurate when system changes occur within the base system, even with the actual base system and its corresponding aspect, using corresponding join points and join point shadows. Means that it cannot be reflected. This can lead to inconsistencies or errors during runtime and operation of the entire system.

この欠点を克服するために、図2に関連して例示した本発明の1つの実施形態を提供する。図2は、本発明の1つの実施形態による方法を例示するフローチャートを示している。ステップ200では、ベースシステムの中に何らかの変化、すなわち図1Aおよび図1Bに関連して例示したような変化が発生する。そのような変化に基づいて、ステップ210では、ベースシステムへとウィービングされている1つ以上のアスペクトについてこの変化についての重要性を評価する。次に、その後のステップ220では、ステップ210で評価されたシステムの変化の重要性に基づいてシステムの変化に適応させるために適応動作が行われる。   To overcome this disadvantage, one embodiment of the present invention illustrated in connection with FIG. 2 is provided. FIG. 2 shows a flowchart illustrating a method according to one embodiment of the invention. In step 200, some change occurs in the base system, such as those illustrated in connection with FIGS. 1A and 1B. Based on such changes, step 210 evaluates the importance of this change for one or more aspects weaved to the base system. Then, in a subsequent step 220, an adaptation action is performed to adapt to the system change based on the importance of the system change evaluated in step 210.

ベースシステム内のシステムの変化の重要性を評価する動作210には、例えばあるアスペクトおよびそのポイントカット(またはそのジョインポイント記述)について、システムの変化の後でこのアスペクトにより追加され参照されたジョインポイントまたはジョインポイントシャドーにおいて変化があるかどうかを評価することから成る。これは、図3に関連してさらに説明するように行うことができる。   The act 210 of evaluating the importance of system changes in the base system includes, for example, an aspect and its pointcut (or its joinpoint description), and join points added and referenced by this aspect after the system change. Or consist of assessing whether there is a change in the join point shadow. This can be done as further described in connection with FIG.

図3は、本発明のさらに別の実施形態によるフローチャートを概略的に示している。図3では、特定のアスペクトが特定の時点でベースシステムの中にウィービングされる(ステップ300)。次に、ステップ310において、図1Aおよび図1Bに関連して既に前に説明したようなシステムの変化が発生する。次に、ステップ320において、システムの変化の後のアスペクトおよびベースシステムの組合せに対応する一連のジョインポイントとジョインポイントシャドーのうちのいずれかまたは両方が計算または決定される。これにより、各アスペクトについて、アスペクトが確実に正しくベースシステムへとウィービングされるために適応動作を行う必要がある一連のジョインポイントとジョインポイントシャドーとのうちのいずれかまたは両方が結果として生まれる。次にステップ330において、特定のアスペクトについて、ステップ320で生じた一連のものを、アスペクトがウィービングされた時点で決定または計算された同じ一連のジョインポイントまたはジョインポイントシャドーと比較する。換言すると、システムの変化の前の一連のものとシステムの変化の後の一連のものとを比較する。次にステップ340において、2つの一連のものが異なると判断した場合には、システムの変化がこのアスペクトについて重要であり、またシステムの変化およびそのアスペクトに対する影響を補償するために、何らかの適応動作(ステップ350)を行う必要がある。適応動作を行う1つの方法は、アスペクトを再ウィービングすること、換言するとステップ300に戻ってアスペクトをもう一度、今変化したベースシステムへとウィービングすることである。しかしながら、ベースシステムには実際にはもはや存在しない(対応しない)ジョインポイントまたはジョインポイントシャドーをアスペクトが参照することがステップ340にてわかった場合には、ベースシステム内のアスペクトを再ウィービングする(再インストールする)ことに代えて、このアスペクトを削除する(withdraw)(取り外す(deinstall)またはアンウィービングする)ことができる。つまり、この場合に行われる適応動作は、このアスペクトを(部分的または全体的に)削除、取り外しまたはアンウィービングすることである。   FIG. 3 schematically illustrates a flowchart according to yet another embodiment of the present invention. In FIG. 3, a particular aspect is weaved into the base system at a particular time (step 300). Next, in step 310, a system change occurs as previously described in connection with FIGS. 1A and 1B. Next, at step 320, either or both of a series of join points and join point shadows corresponding to the combination of aspect and base system after the system change is calculated or determined. This results in each aspect having either or both of a series of join points and join point shadows that need to perform an adaptive action to ensure that the aspect is properly weaved to the base system. Next, in step 330, for a particular aspect, the series resulting from step 320 is compared to the same series of join points or join point shadows determined or calculated at the time the aspect was weaved. In other words, the series before the system change is compared with the series after the system change. Then, in step 340, if it is determined that the two sequences are different, the system change is important for this aspect, and any adaptive action (to compensate for the system change and its effect on the aspect) Step 350) needs to be performed. One way to perform the adaptive action is to re-weave the aspect, in other words, go back to step 300 and weave the aspect again to the now changed base system. However, if it is found in step 340 that the aspect refers to a join point or join point shadow that no longer actually exists (corresponds) in the base system, the aspect in the base system is re-weaved (re-created). Instead of installing, this aspect can be removed (deinstalled or unweaved). That is, the adaptive action performed in this case is to delete (remove or remove) this aspect (partially or entirely).

一連のものの比較(ステップ330)は各アスペクトについて実行され、その結果に基づいて幾つかのアスペクトが再ウィービングされ、幾つかはアンウィービングされ、また幾つかについてはいかなる操作も行う必要がない。   A series of comparisons (step 330) is performed for each aspect, and based on the results, some aspects are re-weaved, some are unweaved, and some do not require any manipulation.

図4を参照して、本発明の実施形態によるシステムの変化に関する通知について説明する。ベースシステム400が変化すると、システムの変化に関する通知が、好ましくは自動的にシステム要素410に送られる。要素410は、システムの変化を評価し適切な適応動作を開始できるような任意の要素とすることができる。1つの特定の実施形態によれば、システムの要素410は、任意のベースシステムに関連付けられアスペクトまたはアドバイスがベースシステム内の何らかの変化に関して通知されるような、ベースシステムに登録されたアスペクトまたはアドバイスとすることができる。通知を受けるためのこのような登録は、例えばプログラミング言語であるスモールトーク言語で容易に実行できる。このプログラミング言語スモールトークは、システムが変化する場合に通知を受けるために、ベースシステムに登録するためのフレームワークを提供する。その結果そのような情報に関係しているとして自身が登録されているアスペクトまたはアドバイスが通知され、次にそのポイントカットを再評価して、既に前に説明したように一連のジョインポイントまたはジョインポイントシャドーを決定し、システムの変化の前の一連のジョインポイントまたはジョインポイントシャドーとの相違が判明すると、アスペクトまたはアドバイスは適応動作、例えばアスペクトまたはアドバイスの再ウィービングを開始する。ある実施形態によれば、アスペクトについて関係する特定の変化(システムの特定の部品またはモジュールにおける変化)などのシステムの変化についてアスペクトまたはアドバイスを登録することは、一般的なものまたは特定のものとすることができる。   With reference to FIG. 4, the notification regarding the change of the system by embodiment of this invention is demonstrated. When the base system 400 changes, notifications about system changes are preferably sent automatically to the system element 410. Element 410 can be any element that can evaluate system changes and initiate appropriate adaptive action. According to one particular embodiment, system elements 410 include aspects or advices registered with the base system that are associated with any base system and that aspects or advice are notified about any changes in the base system. can do. Such registration for receiving notifications can be easily performed, for example, in a small talk language which is a programming language. This programming language Small Talk provides a framework for registering with the base system to be notified when the system changes. As a result, you are notified of the aspect or advice that you have registered as related to such information, and then re-evaluated the pointcut and a series of joinpoints or joinpoints as described previously. Once the shadow is determined and the difference between the series of join points or join point shadows before the system change is found, the aspect or advice initiates an adaptive action, such as reweaving the aspect or advice. According to certain embodiments, registering aspects or advice for system changes, such as specific changes related to aspects (changes in specific parts or modules of the system), may be general or specific be able to.

しかしながら、要素410は、アスペクトをベースシステムへとウィービングする役割を果たすウィーバとすることもできる。このウィーバは次に、システムの変化がそれに重要性があるかどうかを評価し、重要性があると判明すると、1つ以上のアスペクトまたはアドバイスを再ウィービングするなどの適応動作を開始する。   However, element 410 can also be a weaver that serves to weave aspects into the base system. The weaver then evaluates whether the system change is significant and if it turns out, it initiates an adaptive action, such as reweaving one or more aspects or advice.

しかしながら、要素410は、通知を受け取り(ことによると最初だけ)評価を行う役割を果たすような特定のシステム要素によって形成することもできる。次に、この要素は、どのアスペクトまたはアドバイスがシステムの変化によって影響を受けるかを決定し、次に適応動作を開始するためにアスペクトおよびアドバイスとウィーバとのうちのいずれかまたは両方にメッセージを送る。   However, element 410 can also be formed by a particular system element that is responsible for receiving the notification (and possibly only the first) and performing the evaluation. This element then determines which aspects or advice are affected by system changes and then sends a message to the aspect and / or advice and / or weaver to initiate an adaptive action. .

システム要素410に対する(自動的な)通知は、「プッシュモデル」と見なすことができるが、システム要素が何らかの変化が起こっているかどうかについて積極的にベースシステムをポーリングすることもできる。これは、「プルモデル」と見なすことができる。そのようなプルモデルの1つの具体的な実施形態が、図5に概略的に示されている。ベースシステムは、ベースシステムの中にインストール、ウィービングまたは構成されている1つ以上のアスペクトに関連付けられた一連のジョインポイントまたはジョインポイントシャドーを変化させる可能性があるシステム要素を追加、取外しまたは修正するようなシステムの変化が発生しているかどうかを(連続的に)監視またはポーリングする(図2のステップ200)。ステップ510において、これが認められると、システム要素400(図4を参照のこと)に通知される。一旦、システム要素(これはアスペクト、アドバイス、特定の要素またはウィーバとすることができる)が通知を受けると、システム全体のそれぞれのアスペクトまたはアドバイスについて別個に、システムの変化の重要性に関する評価(ステップ430)を実行する。システムの変化に重要性があると判明すると、既に前述されたように適応動作が行われる。システムの変化が発生する場合は、変化の通知に関係するこれらの要素がシステムの変化について自動的に通知されるように、ベースシステムの監視が行われる(ステップ400〜420)。これは「プッシュモデル」と見なすことができる。この場合、アスペクトは何らかのシステムの変化について通知されるようにシステムに登録する。または別のいわゆる「プルモデル」を用いる場合は、アスペクトは何らかのシステムの変化を見つけるためにベースシステムを能動的にポーリング(poll)する。プッシュモデルとプルモデルとの任意の組合せも考えることができる。   The (automatic) notification to system element 410 can be considered a “push model”, but the system system can also actively poll the base system for any changes. This can be regarded as a “pull model”. One specific embodiment of such a pull model is schematically illustrated in FIG. The base system adds, removes, or modifies system elements that may change the set of join points or join point shadows associated with one or more aspects installed, weaving, or configured within the base system. Such system changes are monitored or polled (step 200 in FIG. 2). If this is acknowledged at step 510, the system element 400 (see FIG. 4) is notified. Once a system element (which can be an aspect, advice, specific element or weaver) is notified, an assessment (steps) of the importance of system changes is made separately for each aspect or advice of the entire system. 430). If the system change is found to be important, the adaptive action is performed as already described above. When a system change occurs, the base system is monitored (steps 400-420) so that those elements involved in the change notification are automatically notified of the system change. This can be regarded as a “push model”. In this case, the aspect registers with the system to be notified about some system change. Or if another so-called “pull model” is used, the aspect actively polls the base system to find any system changes. Any combination of a push model and a pull model can be considered.

1つの特定の実施形態によれば、本発明は、コンピュータ言語「スモールトーク(Smalltalk)」またはその方言の1つで「スクウィーク(Squeak)」と呼ばれる言語を用いて実行することができる。この言語「スクウィーク」を用いるアスペクト指向プログラミングの説明は、例えばR.Hirschfeld、「AspectS − Aspect−oriented programming with Squeak」、Aksit、Mezini、Unlandらによる「Objects, Components, Architectures, Services, and Applications for a Networked World」、LNCS 2591、Springer−Verlag、2003年に記載されている。   According to one particular embodiment, the present invention can be carried out using the computer language “Smalltalk” or a language called “Squeak” in one of its dialects. A description of aspect-oriented programming using this language “Squeak” can be found in, for example, R.A. Hirschfeld, “AspectS-Aspect-oriented programming with Squaak”, Aksit, Mezini, United, et al. Yes.

前述したように、言語スクウィークまたはスモールトークは、実行されるベースシステム内のアスペクトおよびその対応するジョインポイントまたはジョインポイントシャドーに影響する可能性がある何らかのシステムの変化の監視を比較的容易に行うために使用できるシステムの変化および変化の通知を行うためのインフラストラクチャーを提供する。そのために、アスペクトに関連付けられたアドバイスは、種類または方法の追加、修正または取外しなどのシステムの変化の事象に対して登録することができる。   As noted above, language squeaks or small talks make it relatively easy to monitor aspects of the base system being executed and any system changes that may affect their corresponding join points or join point shadows. Provides an infrastructure for notification of system changes and changes that can be used to To that end, the advice associated with an aspect can be registered for system change events such as the addition, modification or removal of types or methods.

変化が生ずると、こうした変化を通知するように登録されたアドバイス、アスペクト、ウィーバ、ポイントカットまたはシステム全体の他の任意の要素などのシステム要素は、この変化に関して通知される。前述の実施例では、情報は種類または方法の追加、修正または取外しにのみ関係している。1つの実施形態によれば、通知はシステムの変化が発生する「直前」に行うこともできる。   When changes occur, system elements such as advice, aspects, weavers, pointcuts or any other element of the entire system that are registered to notify such changes are notified of this change. In the foregoing embodiment, the information pertains only to the addition, modification or removal of types or methods. According to one embodiment, notification can also be made “just before” a system change occurs.

既に前述したように、システムの変化に関する情報により特定のアスペクトについてシステムの変化の重要性を評価することがトリガされ、重要性があることが判明すると、適応動作が前述したように実行される。   As already mentioned above, the information about the system change triggers the evaluation of the importance of the system change for a particular aspect, and if found to be important, the adaptive action is performed as described above.

システムの変化の重要性を確認するために、1つの実施形態によれば、システムの変化の後のアスペクトまたはアドバイスの一連のジョインポイントまたはジョインポイントシャドーを、アスペクトが最初にインストールし、ウィービングし、組み立てが行われたときまたは以前の重要な変化の事象に応じて前に適応動作が行われたときの一連のものとの比較が実行される。換言すると、システムの変化の後の新しい一連のジョインポイントまたはジョインポイントシャドーが、アスペクトに現在関連付けられている一連のジョインポイントまたはジョインポイントシャドーと比較される。実際にアスペクトと関連付けられた一連のジョインポイントシャドーが実際にアスペクトとに関連付けられる必要がある一連のものと異なっているように、この比較が両方のリストすなわち一連のものが相違しているという結果に至った場合は、適応動作が行われる。   To confirm the importance of a system change, according to one embodiment, the aspect first installs and weaves a set of join points or join point shadows of the aspect or advice after the system change, A comparison is made with the series when the assembly is performed or when an adaptive action has been previously performed in response to a previous significant change event. In other words, the new series of join points or join point shadows after the system change is compared to the series of join points or join point shadows currently associated with the aspect. The result of this comparison is that both lists, or series, differ so that the set of joinpoint shadows actually associated with the aspect is different from the series that actually needs to be associated with the aspect If it reaches, adaptive operation is performed.

1つの実施形態によれば、重要性があると判明したシステムの変化が生じた場合に行われる適応動作には、代わりにまたは組み合わせて行う幾つかの動作が含まれる。このような動作には、ソフトウェアのインストールまたはアンインストール、コンポーネントの起動と停止とのうちのいずれかまたは両方、モジュールのロードとアンロードとのうちのいずれかまたは両方、または交換、およびアスペクトとアドバイスとのうちのいずれかまたは両方の再ウィービングまたはアンウィービングが含まれる。   According to one embodiment, the adaptive action that is taken when a system change that is found to be significant includes several actions that may be taken instead or in combination. Such actions include software installation or uninstallation, component startup and / or shutdown, module loading and unloading or both, or replacement, and aspects and advice. And / or reweaving or unweaving.

本発明による実施形態のさらに別の実施例は、図6A〜図6Dに関連して説明する。図6Aは、特定の言語すなわちスクウィークで実行され、AspectSと呼ばれるスクウィークを用いるアスペクト指向プログラミングに対する一般的な方式による、従来のアスペクトのウィービングを概略的に示している。この言語を用いるアスペクト指向プログラミングの詳細については、R. Hirschfeldによる前述した文献を参照されたい。その中に、図6Aのさらに詳細な説明も記載されている。   Yet another example of an embodiment according to the present invention is described in connection with FIGS. 6A-6D. FIG. 6A schematically illustrates conventional aspect weaving in a general manner for aspect-oriented programming that is performed in a particular language or squake and uses a squa called AspectS. For more details on aspect-oriented programming using this language, see the above mentioned article by R. Hirschfeld. A more detailed description of FIG. 6A is also described therein.

AspectSの方法によれば、アスペクトには1つ以上のアドバイスが含まれている。アドバイスはそれぞれ1つ以上のポイントカットを含み、ポイントカット自身はベースシステムの中にジョインポイントを設定するためのジョインポイント記述を含む。ジョインポイント記述子は、セレクタ(方法)およびジョインポイントを定義するためにセレクタを実行する(受信機の)クラスを(アドバイスを受信するクラスとして)特定する。アドバイスは1つ以上のアドバイス識別子をさらに含み、これにより、アドバイスに関連したポイントカットの動的な属性を記述できるようになる。さらにアスペクトは、アドバイスを実行するためのコードを含む。このため、AspectSは、アドバイスを実行するためのコードを表すクラスブロックコンテキストのインスタンスであるブロックを使用する。図6Aの上半分は、AspectSの環境におけるアスペクトを概略的に示しており、図6Aの中央には、ウィーバが概略的に示されている。このウィーバは、図6Aの上半分に例示されたアスペクトを、ベースシステム(図示せず)にウィービングする。アスペクトをベースシステムの中にウィービングするために、AspectSはいわゆるブロックメソッドラッパの位置を、アスペクトによってアドバイスされた様々なジョインポイントの中に記載された受信機のクラスのメソッドディクショナリの中に置く。これは、図6Aの下半分に概略的に例示されている。これにより、図6Aのボトムラインに示しているようにウィーバは、アスペクトがベースシステムへとウィービングされている構成システムを生み出す。AspectSは、アスペクトによってアドバイスされた種々のジョインポイントの中で記載された受信機のクラスのメソッドディクショナリの中にブロックメソッドラッパを配置する。   According to AspectS's method, an aspect contains one or more advices. Each advice contains one or more pointcuts, and the pointcut itself contains a joinpoint description for setting joinpoints in the base system. The join point descriptor identifies the selector (method) and the class (as the receiver that receives the advice) that executes the selector to define the join point. The advice further includes one or more advice identifiers that allow the description of the dynamic attributes of the pointcut associated with the advice. In addition, the aspect includes code for executing advice. For this reason, AspectS uses a block that is an instance of a class block context that represents the code for executing the advice. The upper half of FIG. 6A schematically illustrates an aspect in an AspectS environment, and a weaver is schematically illustrated in the center of FIG. 6A. This weaver weaves the aspect illustrated in the upper half of FIG. 6A to a base system (not shown). In order to weave the aspect into the base system, AspectS places the position of the so-called block method wrapper in the receiver class method dictionary listed in the various join points advised by the aspect. This is schematically illustrated in the lower half of FIG. 6A. This creates a configuration system where the weaver is weaved to the base system as shown in the bottom line of FIG. 6A. AspectS places block method wrappers in the method dictionary of the receiver class listed in the various join points advised by the aspect.

ウィーバによって構成された構成システムのランタイムと同等なものが、図6Bに概略的に示されている。アドバイス、ポイントカットおよびその関連付けられたジョインポイント記述子に基づいて、メソッドラッパが使用され、対応するブロックコンテクスト計算によってアドバイスコードの実行が可能になる。前述した内容のより詳細な説明は、上記のR. Hirschfeldの文献の中にある。   An equivalent of the runtime of the configuration system configured by the weaver is shown schematically in FIG. 6B. Based on the advice, pointcuts and their associated join point descriptors, a method wrapper is used to allow execution of the advice code by a corresponding block context calculation. A more detailed explanation of the foregoing can be found in the above R. Hirschfeld document.

AspectSに関する従来の方式を説明したので、ここで例えばAspectSを実行する場合の本発明による実施形態を、図6Cおよび図6Dを参照して説明する。図6Cは、本発明に基づいて、どのようにアスペクトおよびその対応するアドバイスがベースシステム内の変化に対処するように修正されるかについて概略的に示している。図6Cからわかるように、アドバイス識別子は適応動作ストラテジー(これは、ブロックコンテクストの実行にも対応する)を参照する。これにより、前述したように、本発明による実施形態の動作が実行される。適応動作ストラテジーには、何らかのシステムの変化について評価するステップと、行うべき適切な動作を決定するステップと、そのような動作を開始するステップとが含まれる。環境(システムの変化に対する評価)に基づいて、図6Cに概略的に示されているように、アスペクトもしくはアドバイスの再ウィービング、またはアスペクトもしくはアドバイスの削除などの種々の反応を実行できる。   Having described a conventional scheme for AspectS, an embodiment according to the present invention for executing AspectS, for example, will now be described with reference to FIGS. 6C and 6D. FIG. 6C schematically illustrates how an aspect and its corresponding advice are modified to deal with changes in the base system in accordance with the present invention. As can be seen from FIG. 6C, the advice identifier refers to an adaptive action strategy (which also corresponds to the execution of a block context). Thereby, as described above, the operation of the embodiment according to the present invention is executed. An adaptive motion strategy includes the steps of evaluating for any system changes, determining the appropriate motion to be performed, and initiating such motion. Based on the environment (assessment to system changes), various reactions can be performed, such as reweaving aspects or advice, or deleting aspects or advice, as schematically illustrated in FIG. 6C.

システムの変化を評価し必要な場合に適応動作をトリガするために、既にウィービングされた(「アクティブな」)システムの中で使用および実行されるような、一連のジョインポイントまたはジョインポイントシャドーに対応し、またはそれらを反映する「アクティブなポイントカット」が提供される。システムの変化が発生した後で、変化したシステムに対する(新しい)ポイントカットまたは対応する一連のジョインポイントまたはジョインポイントシャドーが評価され、既に存在するポイントカット(「有効なポイントカット」)またはその対応する一連のジョインポイントまたはジョインポイントシャドーと比較される。(重要性がある)相違が存在すると判明すると、適切な適応動作が行われる。   Supports a series of join points or join point shadows that are used and executed in an already weaved (“active”) system to evaluate system changes and trigger adaptive actions when needed Or an “active pointcut” that reflects them is provided. After a system change occurs, a (new) pointcut or a corresponding series of join points or a join point shadow for the changed system is evaluated, and an existing pointcut (“valid pointcut”) or its corresponding Compared to a series of join points or join point shadows. If it is found that there is a (significant) difference, the appropriate adaptive action is taken.

このことは、図6Dに示されているブロック図の中でさらに詳細に説明する。この図6Dでは図6Cに加えて、本発明の実施形態に基づいて実行する個々のステップも示されている。システムの変化(事象a)に関するアドバイスが通知される。アスペクトまたはアドバイスの代わりに、図6Dのa*で示されているようにアスペクト以外の他のシステム要素も同様または代わりに通知される。通知されるシステム要素は、重要性の確認および適応動作のいずれかを実行できる要素である必要があり、または重要性の確認および適応動作を開始できなければならない。ここで、図4および対応する要素410を説明する。   This is explained in more detail in the block diagram shown in FIG. 6D. In FIG. 6D, in addition to FIG. 6C, individual steps to be executed based on the embodiment of the present invention are also shown. Advice regarding system changes (event a) is notified. Instead of the aspect or advice, other system elements other than the aspect are notified as well or instead, as indicated by a * in FIG. 6D. The notified system element must be an element capable of performing either the importance confirmation and the adaptation operation, or it must be able to initiate the importance confirmation and the adaptation operation. Now, FIG. 4 and corresponding elements 410 will be described.

次に、システム要素は、変化と重要性がありそうなアスペクトまたはアドバイスに通知する。次に、重要性の確認および修正の開始が行われる(ステップb)。これにより、次に、一連のジョインポイント、ジョインポイントシャドーとしてポイントカットの計算を開始する(ステップc)。次に結果が、実際に動作中のポイントカット、すなわちシステムの変化の前、または現在の(ウィービングされた)システムの中で使用されているようなポイントカットまたはその対応する一連のジョインポイント、ジョインポイントシャドーと比較される(ステップd)。動作中のポイントカットとシステムの変化の後の新しいポイントカットとの間に何らかの相違が存在すると判明すると、適応動作ストラテジーが呼び出されて(ステップe)、これによりシステムの変化に対処またはそれを補償するために適応動作が行われる。   The system element then notifies the aspect or advice that is likely to change and be significant. Next, importance is confirmed and correction is started (step b). Thereby, the calculation of the point cut is started as a series of join points and join point shadows (step c). The result is then a pointcut that is actually in operation, i.e. a pointcut as used before the system change or in the current (weaved) system or its corresponding series of joinpoints, join It is compared with the point shadow (step d). If it is found that there is some difference between the active pointcut and the new pointcut after the system change, an adaptive motion strategy is called (step e) to deal with or compensate for system changes. In order to do this, an adaptive operation is performed.

以下、本発明による実施形態の特定の具体例の実施例を説明する。この例証的な具体例は、スモールトークの方言であって当業者には周知のプログラミング言語であるスクウィークに基づいている。スクウィークによるアスペクト指向プログラミングの概念に関する説明は、上記のR. Hirschfeldによる文献の中にある。   Hereinafter, examples of specific specific examples of embodiments according to the present invention will be described. This illustrative example is based on Squak, a small talk dialect and a programming language well known to those skilled in the art. An explanation of the concept of aspect-oriented programming by Squeak is in the literature by R. Hirschfeld above.

図7は、プログラムコードの要素であるC01、C02およびC03を示している。C01およびC02はそれぞれ、「adviceMouseEnter」および「adviceMouseLeave」と名付けられている、マウスの動きに関係するアスペクトに対応したアドバイス用のプログラムコードを示している。C01は、マウスが入力されたときに実行するアドバイス用のプログラムコードを定義し、C02は、マウスが放置されたときにアドバイスを実行するためのプログラムコードを示している(それぞれマウスを入力することまたは放置することに対応するマウスの事象の場合)。ポイントカットには、モーフ(Morph)(例示的なクラス)および全てのそのサブクラスにおいて、方法(またはセレクタ)「mouseEnter」(adviceMouseEnterの場合)および「mouseLeave」(adviceMouseLeaveの場合)が実行される位置などのジョインポイント記述が含まれる。   FIG. 7 shows C01, C02 and C03 which are elements of the program code. C01 and C02 indicate program codes for advice corresponding to aspects related to the movement of the mouse, which are named “adviceMouseEnter” and “adviceMouseLeave”, respectively. C01 defines a program code for advice to be executed when the mouse is input, and C02 indicates a program code for executing the advice when the mouse is left (respectively input a mouse). Or in the event of a mouse corresponding to neglect). Pointcuts include the location where the method (or selector) "mouseEnter" (for adviceMouseEnter) and "mouseLeave" (for adviceMouseLeave) are executed in Morph (an exemplary class) and all its subclasses Contains join point descriptions.

C03は、AsMorphicMousingAspectと呼ばれるこれら2つのアドバイスに属するアスペクトをウィービングするための例示的なコードを示している。   C03 shows exemplary code for weaving an aspect belonging to these two advices called AsMorphicMousingAspect.

実施例C01およびC02で示されているプログラムコードは、マウスの入力およびマウスの放置に対してアドバイスを実行する従来の実施例である。C01およびC02は、根底にあるベースシステムにおけるどのようなシステムの変化にも対処できない。   The program codes shown in the embodiments C01 and C02 are conventional embodiments for executing advice for mouse input and mouse leaving. C01 and C02 cannot cope with any system changes in the underlying base system.

ブロックC04に示しているプログラムコードは、このアドバイスによって実行されるベースシステム内のどのような変化も処理することができるアドバイスの実施例を与えている。C04はマウスの入力イベントに対するプログラムコードの実施例を与え、C05はマウスの放置に関連したアドバイスに対するプログラムコードの実施例を与えている。   The program code shown in block C04 provides an example of advice that can handle any changes in the base system performed by this advice. C04 gives an example of a program code for an input event of a mouse, and C05 gives an example of a program code for an advice related to leaving the mouse.

アドバイスが識別子を含むことが分かる。このような識別子により、アドバイスまたはアスペクトに関連したジョインポイントまたはジョインポイントシャドーの組の動的な属性の記述(例えば、ポイントカットによって記述される)が可能になる。このような識別子の機能に関するより詳細な説明は、上記のR. Hirschfeldによる文献の中にある。ブロックC04およびC05の識別子は従来のコードのものとは異なり、すなわち、それらは適応動作モジュール(「アダプテーション」と呼ばれる)およびアドバイスを再インストールするモジュール(「アドバイスの再インストール」と呼ばれる)を参照することを含むことが分かる。   It can be seen that the advice includes an identifier. Such an identifier allows a description of the dynamic attributes of the join point or set of join point shadows associated with the advice or aspect (eg, described by a pointcut). A more detailed explanation of the function of such an identifier can be found in the literature by R. Hirschfeld above. The identifiers of blocks C04 and C05 are different from those of conventional code, i.e. they refer to an adaptive action module (called "adaptation") and a module to reinstall advice (called "reinstall advice") It is understood that it includes.

「アダプテーション」は、システムの変化に関してシステムを監視し、これらのシステムの変化を評価するためにシステム要素を参照して、このシステムの変化に重要性があると判明すると、「アドバイスの再インストール」を実行するコードまたは要素が変化に対処するために呼び出される。この識別子を用いて、ブロックC04およびC05で与えられるアドバイスは、システムの変化の後に、必要な場合、アドバイスを再インストールすることによってどのようなシステムの変化にも対処することができる。   “Adaptation” monitors the system for changes in the system, refers to system elements to evaluate these system changes, and finds that the change in this system is important. The code or element that executes is called to deal with the change. With this identifier, the advice given in blocks C04 and C05 can cope with any system change by reinstalling the advice, if necessary, after the system change.

本発明の1つの実施形態によれば、本発明に基づいてシステムを実行するために3つの異なるエンティティーがある。1つのエンティティーはベースシステムであり、これはベースシステムを形成するモジュールまたは要素を備えている。アスペクトモデル(これはアスペクト要素またはアスペクトシステムと呼ばれることもある)は、ベースシステムとは異なり、それから分離している。このアスペクトモデルは、アスペクト、アドバイスまたはポイントカットなどを実行する要素またはモジュールによって形成され、またはそれらを備えることができる。ベースシステムとともにアスペクトモデルまたはアスペクトシステムは、ベースシステムおよびクロスカットの問題をベースシステムの中で実行するアスペクトモデルまたはアスペクトシステムによって形成される全体のシステムを形成する。   According to one embodiment of the invention, there are three different entities for implementing the system according to the invention. One entity is a base system, which comprises the modules or elements that form the base system. The aspect model (sometimes called an aspect element or aspect system) is different from the base system and is separate from it. This aspect model may be formed by or comprise elements or modules that perform aspects, advice, pointcuts, etc. Together with the base system, the aspect model or aspect system forms the overall system formed by the aspect model or aspect system that performs the base system and cross-cut problems within the base system.

全体のシステムの一部を形成する第3のエンティティーは、ベースシステム内の変化に適応的な方法で反応する可能性を提供する適応システムまたは適応動作要素である。   A third entity that forms part of the overall system is an adaptive system or adaptive operating element that provides the possibility to react in a adaptive manner to changes in the base system.

3つのシステム(ベースシステム、アスペクトシステム、適応システム)は別個のものであり、各システムが分離したエンティティーであるという意味で互いに切り離されている。1つの実施形態に基づいた各エンティティーは、そのエンティティーを実行または設計するルールおよび対応する表現(プログラミング言語など)のフレームワークを用いて構築される。各エンティティー(ベースシステム、アスペクトシステム、適応システム)は、個別のモジュールまたは要素を備えている。このことは、図8に概略的に示されている。この図では、ベースシステムがボックス810として概略的に示されている。この図のベースシステムは、図1Aにも示されたベースシステムに対応しており、1つの実施形態では、より汎用的なコンピュータ言語スモールトークの方言であるコンピュータ言語スクウィークの中で実行することができる。   The three systems (base system, aspect system, adaptive system) are separate and separated from each other in the sense that each system is a separate entity. Each entity according to one embodiment is constructed using a framework of rules and corresponding expressions (such as programming languages) that execute or design the entity. Each entity (base system, aspect system, adaptive system) comprises a separate module or element. This is shown schematically in FIG. In this figure, the base system is shown schematically as box 810. The base system of this figure corresponds to the base system also shown in FIG. 1A and, in one embodiment, runs in a computer language squeak, which is a more general purpose computer language small talk dialect. Can do.

ベースシステムに加えて、異なった別のエンティティーとして別のモデル、アスペクトシステム820(図8を参照のこと)が存在する。1つの実施形態では、このアスペクトシステム820は、アドバイスコードを呼び出す必要がある、ベースシステム810の中のジョインポイントシャドーを選択するアドバイス要素(図示せず)およびポイントカット(図示せず)を含むアスペクト825を備えている。   In addition to the base system, there is another model, the aspect system 820 (see FIG. 8) as a different entity. In one embodiment, the aspect system 820 includes an aspect that includes advice elements (not shown) and pointcuts (not shown) that select join point shadows in the base system 810 that need to call the advice code. 825.

アスペクトシステムは、別個のエンティティーであり、またベースシステムに関係なく実行および修正することができるという意味で、ベースシステムから分離されている。   The aspect system is a separate entity and is separated from the base system in the sense that it can be executed and modified independently of the base system.

ウィーバ835を通して、アスペクトシステムの中で定義されたアスペクトまたはアドバイスはベースシステム810の中にウィービングされ、これにより実行の準備ができた構成システム840を形成する。本発明の実施形態によれば、構成システム(またはベースシステムまたはアスペクトシステム)の中のどのような変化にも適応することが必要となる。   Through the weaver 835, the aspect or advice defined in the aspect system is weaved into the base system 810, thereby forming a configuration system 840 ready for execution. According to embodiments of the present invention, it is necessary to adapt to any changes in the configuration system (or base system or aspect system).

システムの変化に適応できるようにするために、全体的なシステムのさらなる要素(第3の要素)、適応システム860が提供される。1つの実施形態による適応システムは、ベースシステム内の何らかの変化に関する通知を受け取り、次にその変化を評価する要素を含む。アダプテーションシステムはさらに、1つの実施形態に基づいて、動作の選択を実行するアクションセレクタを備える。このアクションセレクタは、どの種類のシステムの変化またはどの種類の評価結果がどの種類の行うべき適応動作に導く必要があるかを定義するための一連のルールである。それはさらに、アクションセレクタによってなされた決定に基づいて必要であることが判明した適応動作を開始または実行のいずれかを行うための要素を備える。次に、適応システムは、適応動作を実行するために、ウィーバに動作を行わせることができる。これには、アスペクトシステム820のアスペクトまたはアドバイスの再ウィービングが含まれ、またアスペクトまたはアドバイスのアンウィービングも含まれる。   In order to be able to adapt to changes in the system, an additional element (third element) of the overall system, an adaptation system 860, is provided. An adaptive system according to one embodiment includes elements that receive notification about any change in the base system and then evaluate the change. The adaptation system further comprises an action selector that performs a selection of actions according to one embodiment. This action selector is a set of rules for defining what kind of system change or what kind of evaluation result should lead to what kind of adaptive action to be performed. It further comprises an element for either starting or executing an adaptive action that has been found necessary based on a decision made by the action selector. The adaptive system can then cause the weaver to perform an action to perform the adaptive action. This includes reweaving aspects or advice of aspect system 820, and also includes unweaving aspects or advice.

前述したように、ベースシステム、アスペクトシステムおよび適応システムは別個のエンティティーである。これらのエンティティーは、適当なインターフェース、一般的には手順、方法または機能の直接または間接呼出しを通して相互作用を行う。これにより、これら3つのエンティティーを互いに独立に実行および修正することが可能となるため、大きな柔軟性が得られる。   As described above, the base system, aspect system, and adaptation system are separate entities. These entities interact through appropriate interfaces, typically direct or indirect calls to procedures, methods or functions. This provides great flexibility because these three entities can be executed and modified independently of each other.

適応システム900について、図9を参照しながらさらに説明する。オブザーバ910は、ベースシステム内の変化に関する通知を受け取る。次に、オブザーバに接続されたエバリュエータ920は、システムの変化に重要性があるかどうかを評価する。重要性がある場合は、アクションセレクタ930がどの適応動作を実際に行う必要があるかを決定または選択する。そのために、アクションセレクタ930は、評価結果に基づいて、それがどのように決定されるかまたどの適応動作を行うべきか(「適応動作ストラテジー」と呼ばれることもある)を定義するために一連のルールを実行する。次に、アクションセレクタは、全体的または部分的な再ウィービング、全体的または部分的なアンウィービングなどの複数の可能な適応動作ストラテジーがあるプール950から、この動作すなわち適応動作ストラテジーを選択する。次に、選択された適応動作ストラテジーは転送されて、実行するウィーバ960によって使用される。これにより、結果として変化された構成モデル970が生ずる。構成モデルまたはベースシステム内に何らかの別の変化が生じる場合、オブザーバ910から始まる全体の手順を再度トリガすることになることは容易に理解されよう。   The adaptation system 900 is further described with reference to FIG. Observer 910 receives notifications about changes in the base system. Next, the evaluator 920 connected to the observer evaluates whether the system change is significant. If so, the action selector 930 determines or selects which adaptive action actually needs to be performed. To that end, the action selector 930 is based on the evaluation results to determine how it is determined and what adaptive action to perform (sometimes referred to as an “adaptive action strategy”). Run the rule. The action selector then selects this action or adaptive action strategy from the pool 950 where there are multiple possible adaptive action strategies, such as full or partial reweaving, full or partial unweaving. The selected adaptive action strategy is then transferred and used by the executing weaver 960. This results in a changed configuration model 970. It will be readily appreciated that if any other change occurs in the configuration model or base system, the entire procedure starting from the observer 910 will be triggered again.

ここで、別の実施形態によるシステムの変化に関する評価について、さらに詳細に説明する。エバリュエータ920は、ベースシステム内の変化に関する通知をオブザーバ910から受け取る。前述したように、次にこの変化が評価され、幾つかの可能な評価結果の1つをもたらす。この結果として例えば、システムの変化の後で、システムモジュールを追加する場合は、より多くのジョインポイントシャドーをウィーバがウィービングするべきであり、システムモジュールを取り外す場合は、より少ないジョインポイントシャドーをウィーバがウィービングするべきであるといったことがポイントカットにより示される。このことは、前の実施形態に関連して既に説明したものである。   Here, the evaluation regarding the change of the system by another embodiment is demonstrated in detail. The evaluator 920 receives notifications from the observer 910 regarding changes in the base system. As described above, this change is then evaluated, resulting in one of several possible evaluation results. As a result of this, for example, if a system module is added after a system change, the weaver should weave more join point shadows, and if the system module is removed, the weaver will have less join point shadows. A pointcut indicates that weaving should be done. This has already been explained in connection with the previous embodiment.

評価結果に基づいて、アクションセレクタ930は次に、どの動作(適応動作ストラテジー)を実際に行う必要があるかを決定する。下記の特定のルールによって、アクションセレクタ930は、使用すべき適応動作ストラテジーを決定する。例えば、システムの変化の後でより多くのジョインポイントシャドーをウィービングする必要がある場合は、可能な方法の集まりであるプール950から選択される適応動作ストラテジーは、アスペクトをベースシステムへとウィービングするということである。   Based on the evaluation result, the action selector 930 next determines which operation (adaptive operation strategy) actually needs to be performed. The action selector 930 determines the adaptive action strategy to use according to the following specific rules: For example, if we need to weave more join point shadows after a system change, an adaptive motion strategy selected from pool 950, a set of possible methods, weaves the aspect to the base system. That is.

別の場合における評価の結果は、システムの変化の後で、より少ないジョインポイントシャドーをウィービングする必要があるということである。このとき、適応動作ストラテジーに基づいて選択される動作は、アスペクトがベースシステムからアンウィービングされることである。次に、ウィーバは、適応モジュールからアンウィービングが実行されるべき旨の通知を受ける。   The result of the evaluation in another case is that we need to weave fewer join point shadows after a system change. At this time, the operation selected based on the adaptive operation strategy is that the aspect is unweaved from the base system. Next, the weaver is notified by the adaptation module that unweaving should be performed.

ベースシステム、アスペクトモデルおよび適応動作モデルが3つの別個のエンティティーであることは、前に説明した。しかしながら、特定の実施形態によれば、適応システムの幾つかの部分は、アスペクトモデルの要素または部分として実行することができる。例えば、オブザーバ910は、既に前に説明したように、例えばシステムの変化についてアスペクト、アドバイスを登録することによって、アスペクトまたはアドバイスの一部として実行することができる。ここで、アスペクト、アドバイスがシステムの変化に関する通知を受け取ると、それは評価を開始するか(例えば、機能呼出しによって)または自分で評価を実行する。アスペクト、アドバイスが特定のポイントカットに関連付けられているため、この特定のアスペクト、アドバイスについてシステムの変化に重要性があるかどうかを確認することができる。このことは、前述したように、システムの変化の前後のポイントカットを評価することによって行うことができる。これにより、特に個々のアスペクト、アドバイスに対する評価を実行することが可能になる。ベースシステム内のある種の変化は全てのアスペクト、アドバイスについて必ずしも重要性があるというわけではないため、これは好都合である。機能または手順の呼出しを通してアスペクト、アドバイス自体が実行した評価の後で、アクションセレクタが次に呼び出されて、適当な適応動作ストラテジーを決定する。この実施形態では、オブザーバおよびエバリュエータがアスペクトシステムの一部として実行され、次に適当な適応動作ストラテジーを選択して実行を開始するために、アスペクトシステムは評価の後に適応システムを呼び出す。   It has been previously described that the base system, aspect model, and adaptive behavior model are three separate entities. However, according to certain embodiments, some portions of the adaptive system can be implemented as elements or portions of an aspect model. For example, the observer 910 can be executed as part of the aspect or advice, for example by registering the aspect or advice for system changes, as already described above. Here, when an aspect, advice receives a notification about a change in the system, it initiates the evaluation (eg, by a function call) or performs the evaluation itself. Since the aspect and advice are associated with a specific pointcut, it is possible to check whether the system change is important for the specific aspect and advice. This can be done by evaluating point cuts before and after the system change, as described above. This makes it possible to execute evaluations on individual aspects and advice. This is advantageous because certain changes in the base system are not necessarily important for all aspects and advice. After the evaluation performed by the aspect, advice itself through a function or procedure call, the action selector is then called to determine the appropriate adaptive action strategy. In this embodiment, the observer and evaluator are executed as part of the aspect system, and then the aspect system calls the adaptive system after evaluation to select the appropriate adaptive action strategy and begin execution.

前の実施形態によれば、オブザーバおよびエバリュエータ(図9内の要素910および920)はアスペクトシステムの一部であるが、別の実施形態によれば、これらの要素はその代わりにウィーバの一部を形成する。例えば、ウィーバはシステムの変化に関する通知を受けて、そのシステムの変化を評価するか、または(機能呼出しを通して)評価を開始する。ウィーバ自身がシステムの変化を評価する場合、ウィーバは評価結果を適応システムに転送する。適応システムのアクションセレクタは、適応動作を選択する役割があるため、適当な適応動作を選択してその実行を開始する。   According to the previous embodiment, the observer and evaluator (elements 910 and 920 in FIG. 9) are part of the aspect system, but according to another embodiment, these elements are instead part of the weaver. Form. For example, a weaver receives a notification about a system change and evaluates the system change or initiates an evaluation (through a function call). When weaver himself evaluates system changes, weaver transfers the evaluation results to the adaptive system. Since the action selector of the adaptive system has a role of selecting an adaptive action, it selects an appropriate adaptive action and starts its execution.

このため、前の実施形態によれば、図9に示したオブザーバ910およびエバリュエータ920は、適応システムの一部ではなくてアスペクトシステムまたはウィーバの一部である。ここでも適応システム、アスペクトシステムおよびベースシステムは、直接または間接呼出しを通して通信する3つの別個のエンティティーのままである。   Thus, according to the previous embodiment, the observer 910 and evaluator 920 shown in FIG. 9 are not part of the adaptive system but part of the aspect system or weaver. Again, the adaptive system, aspect system, and base system remain three separate entities that communicate through direct or indirect calls.

前述したように、アクションセレクタの中で実行される適応ルールは、システムの変化またはそれらの評価と行う必要がある適応動作(選択された適応動作ストラテジー)との間の対応関係を反映する。プログラマが例えばプログラミング時に、例えばどのシステムの変化が行うべき特定の適応動作(デフォルトの適応動作)をもたらすかを定義することによって、この対応関係を定義することができる。別の実施形態によれば、適応動作を行うという決定は、その決定が例えば他のモジュールまたは機能の評価、またはユーザの入力内容(ランタイムの間の)の評価などの、ランタイムの間に決定されるパラメータに依存するように実行される。例えば、新しいシステム要素を追加する場合は、このシステム要素を例えばロギングまたは追跡手順によって観察する必要があるかどうかをユーザは尋ねられ、その必要がある場合は、ユーザの肯定応答に反応して、適切な適応動作ストラテジーが選択され、これは例えば再ウィービングが実行されることを意味する。   As described above, the adaptation rules executed in the action selector reflect the correspondence between system changes or their evaluation and the adaptation actions that need to be performed (the selected adaptation action strategy). This correspondence can be defined, for example, by defining which system changes result in a specific adaptive action to be performed (default adaptive action), for example, during programming. According to another embodiment, the decision to perform an adaptive action is determined during runtime, such as an evaluation of other modules or functions, or an evaluation of user input (during runtime). It is executed depending on the parameter. For example, when adding a new system element, the user is asked if this system element needs to be observed, for example by logging or tracking procedures, and if so, in response to the user's acknowledgment, An appropriate adaptive action strategy is selected, which means for example that reweaving is performed.

適応動作ストラテジーの選択は、アクションセレクタで実行されるルールを参照することによって、一般にランタイムの間に行われ、またこれらのルールは、望ましい適応動作能力を実現するために設計者の好みに基づいて実行することができる。   Selection of adaptive action strategies is typically done during runtime by referring to rules executed in the action selector, and these rules are based on the designer's preference to achieve the desired adaptive action capability. Can be executed.

上記の実施形態に関連して本発明を説明してきたが、これらは具体例の目的のみに使用されるものであり、本発明を限定すると解釈するべきではなく、また本発明の精神および範囲から逸脱することなく修正することができることは、当業者は容易に理解されよう。特に、本発明はソフトウェア、ハードウェア、または両方の組合せの中で実行できることは明らかである。本発明の要素は、ハードウェア、ソフトウェアまたは両方の組合せによって実現できる。説明の中で特定のプログラミング言語について言及したが、任意の好適なコンピュータおよび任意の好適なプログラミング言語を使用して本発明を実現できることを理解されたい。さらに、例示的なプログラムコードは、本発明の原理を説明するためにのみ例示的に使用されると理解すべきであり、このため本発明を限定すると理解してはならない。本発明の実施形態は、ソフトウェア、ハードウェア、または両方の組合せの中で実現することができる。   Although the invention has been described in connection with the above embodiments, they are used for purposes of illustration only and should not be construed as limiting the invention, and are also within the spirit and scope of the invention. Those skilled in the art will readily understand that modifications can be made without departing. In particular, it should be apparent that the present invention can be implemented in software, hardware, or a combination of both. The elements of the present invention can be realized by hardware, software or a combination of both. Although reference has been made to a particular programming language in the description, it should be understood that the invention can be implemented using any suitable computer and any suitable programming language. Further, it is to be understood that the exemplary program code is used by way of example only to illustrate the principles of the invention and therefore should not be understood as limiting the invention. Embodiments of the invention can be implemented in software, hardware, or a combination of both.

例えば、ある実施形態によれば、本発明の実施形態を実行する装置は、本発明の前の実施形態に関連して説明した機能を実行できるように適応動作が行われ、またコンピュータまたはコンピュータシステムに取り付けられるウィーバを備えている。別の実施形態によれば、本発明の実施形態を実行する装置は、本発明の以前の実施形態に関連して説明された機能を実行できるように適応動作が行われ、またコンピュータまたはコンピュータシステムに取り付けられるアスペクトシステムを備えている。本発明のさらに別の実施形態によれば、本発明の実施形態を実現する装置は、本発明の1つ以上の前述の実施形態に関連して説明したように、コンピュータまたはコンピュータシステムが機能できるようにするソフトウェアが組み込まれている任意のコンピュータまたはコンピュータシステムとすることができる。   For example, according to one embodiment, an apparatus performing an embodiment of the present invention is adaptively adapted to perform the functions described in connection with previous embodiments of the present invention, and is a computer or computer system. It has a weaver attached to it. According to another embodiment, an apparatus performing an embodiment of the present invention is adaptively adapted to perform the functions described in connection with previous embodiments of the present invention, and is a computer or computer system. It has an aspect system that can be attached to. According to yet another embodiment of the present invention, an apparatus implementing an embodiment of the present invention can function as a computer or computer system as described in connection with one or more previous embodiments of the present invention. It can be any computer or computer system in which the software to be installed is incorporated.

Claims (34)

ウィーバを用いてベースシステムへとウィービングされるべきアスペクトを実行するアスペクトシステムを含むアスペクト指向プログラミング環境におけるベースシステム内の変化に適応する方法であって、
前記ベースシステム内のある変化に応じて、前記ベースシステム内の前記変化の重要性を評価するステップと、
前記評価により前記変化に重要性があると判明した場合、前記変化を補償するために適応動作を行うステップと
を含む方法。
A method for adapting to changes in a base system in an aspect-oriented programming environment that includes an aspect system that implements an aspect to be weaved to the base system using a weaver, comprising:
Assessing the importance of the change in the base system in response to a change in the base system;
Performing an adaptive action to compensate for the change if the evaluation reveals that the change is significant.
前記変化の重要性を評価するステップは、
前記ベースシステム内の変化の後、前記ベースシステム内の変化前のジョインポイントまたはジョインポイントシャドーが、前記ベースシステム内の変化後のものと異なっているかどうかを決定するステップ
を含むものである、請求項1に記載の方法。
The step of assessing the importance of the change comprises:
Determining whether a join point or join point shadow in the base system after a change in the base system is different from a post-change in the base system. The method described in 1.
あるアスペクトまたはアドバイスについて前記重要性の評価を個々に実行するステップと、
前記変化に重要性があると判明した前記あるアスペクトまたはアドバイスについて個々に適応動作を行うステップと
をさらに含む請求項1または2に記載の方法。
Individually performing said importance assessment for an aspect or advice;
3. A method according to claim 1 or 2, further comprising the step of individually performing an adaptive action on the certain aspect or advice found to be significant for the change.
前記適応動作は、
あるアスペクトを前記ベースシステムに全体的または部分的に再ウィービングするステップと、
あるアスペクトに関連付けられたアドバイスを全体的または部分的に再ウィービングするステップと、
あるアスペクトを全体的または部分的にアンウィービングするステップと、
あるアスペクトに関連付けられたアドバイスを全体的または部分的にアンウィービングするステップと
のうちの2つ以上を含む複数の適応動作から選択されるものである、請求項1〜3のいずれか一項に記載の方法。
The adaptive action is:
Reweaving an aspect to the base system in whole or in part;
Reweaving the advice associated with an aspect in whole or in part,
Unweaving an aspect in whole or in part;
4. An adaptive action as claimed in any one of claims 1 to 3, which is selected from a plurality of adaptive actions including two or more of the steps of fully or partially unweaving advice associated with an aspect. The method described.
前記アスペクト指向プログラミング環境は、前記ベースシステムおよび前記アスペクトシステムに加えて適応システムを含むものであり、
前記適応システム、前記ベースシステムおよび前記アスペクトシステムは、互いに独立して修正および実行できる別個のエンティティーである、
請求項1〜4のいずれか一項に記載の方法。
The aspect-oriented programming environment includes an adaptive system in addition to the base system and the aspect system,
The adaptive system, the base system and the aspect system are separate entities that can be modified and executed independently of each other.
The method as described in any one of Claims 1-4.
前記ベースシステム、前記アスペクトシステムおよび前記適応システムは、直接または間接呼出しを通して相互に作用するものである、請求項1〜5のいずれか一項に記載の方法。   The method according to any one of claims 1 to 5, wherein the base system, the aspect system and the adaptive system interact through direct or indirect calls. 前記ベースシステム内に変化が生じた場合、前記ベースシステム、前記アスペクトシステムおよび前記適応システムを含んだ全体的なシステムの要素に対し、前記ベースシステム内の変化を通知するステップをさらに含むものであって、前記要素は、
前記ベースシステムの変化に関する評価を開始することと、
前記ベースシステムの変化を評価することと、
前記評価に基づいて適応動作を開始することと、
前記評価に基づいて適応動作を実行することと
のうちの1つ以上を行うことができるものである、
請求項1〜6のいずれか一項に記載の方法。
In the case where a change occurs in the base system, the method further includes a step of notifying a change in the base system to elements of the overall system including the base system, the aspect system, and the adaptive system. The element is
Initiating an assessment of changes in the base system;
Assessing changes in the base system;
Starting an adaptive action based on the evaluation;
One or more of performing an adaptive action based on the evaluation,
The method according to any one of claims 1 to 6.
前記要素は、
アスペクトと、
アドバイスと、
ウィーバと、
ポイントカットと、
全体的なシステムの任意の他の要素と
のうちの1つである、請求項7に記載の方法。
Said element is
Aspect,
With advice,
With weaver,
With point cuts,
The method of claim 7, wherein the method is one of any other elements of the overall system.
前記要素に前記ベースシステム内の変化を通知するステップは、
前記ベースシステム内に変化が生じた場合、対応する通知を前記要素に送ることにより前記要素に自動的に通知するステップと、
前記ベースシステム内に何らかの変化が発生しているかどうかについて前記ベースシステムを監視するために、前記要素により前記ベースシステムをポーリングするステップと
のうちのいずれかまたは両方を含むものである、請求項7または8に記載の方法。
Notifying the element of changes in the base system comprises:
Automatically informing the element when a change occurs in the base system by sending a corresponding notification to the element;
Polling the base system with the element to monitor the base system for any change in the base system, comprising one or both of: The method described in 1.
前記ベースシステム内の何らかの変化に関する通知を受けるために、前記アスペクトシステムの1つ以上の要素を登録するステップを含む請求項1〜9のいずれか一項に記載の方法。   10. A method according to any one of the preceding claims, comprising registering one or more elements of the aspect system to be notified of any changes in the base system. 前記ベースシステムの変化を評価するステップは、
前記変化の後、あるアスペクトとアドバイスとのうちのいずれかまたは両方について、一連の全てのジョインポイントと一連の全てのジョインポイントシャドーとのうちのいずれかまたは両方を決定するステップ
を含むものである、請求項1〜10のいずれか一項に記載の方法。
Assessing a change in the base system comprises:
Determining, after the change, either or both of a series of all join points and a series of all join point shadows for either or both of an aspect and advice. Item 11. The method according to any one of Items 1 to 10.
前記変化の後に決定された前記一連のジョインポイントと前記一連のジョインポイントシャドーとのうちのいずれかまたは両方を、前記変化の前の対応する一連のものと比較するステップと、
前記一連のものが異なる場合、前記変化を補償するために適応動作を行うステップと
をさらに含む請求項1〜11のいずれか一項に記載の方法。
Comparing either or both of the series of join points and the series of join point shadows determined after the change with a corresponding series before the change;
12. The method of any one of claims 1 to 11, further comprising: performing an adaptive action to compensate for the change if the series is different.
行われる適応動作ストラテジーとして複数の可能な適応動作を提供するステップと、
前記評価に応じて、前記複数の適応動作から1つ以上を選択するステップと
をさらに含む請求項1〜12のいずれか一項に記載の方法。
Providing a plurality of possible adaptive actions as an adaptive action strategy to be performed;
The method according to claim 1, further comprising selecting one or more of the plurality of adaptive actions in response to the evaluation.
前記重要性を評価するステップは、
前記評価結果に基づいて、前記適応動作のいずれを行うべきかを決定する一連のルールを評価するステップ
をさらに含むものである、請求項1〜13のいずれか一項に記載の方法。
The step of evaluating the importance comprises
The method according to claim 1, further comprising: evaluating a series of rules that determine which of the adaptive actions should be performed based on the evaluation result.
前記重要性を評価するステップは、ランタイム中に発生する事象または動作を考慮に入れるものであり、
前記事象または相互作用は、
ユーザとの対話と、
ランタイム中の機能またはモジュールの評価と
のうちの1つ以上である、
請求項1〜14のいずれか一項に記載の方法。
The step of assessing importance takes into account events or actions that occur during runtime;
The event or interaction is
User interaction,
One or more of a function or module evaluation during runtime,
15. A method according to any one of claims 1-14.
前記ベースシステムの変化は、前記ベースシステムの要素の追加、取外しまたは修正のうちの1つ以上を含むものである、請求項1〜15のいずれか一項に記載の方法。   16. A method according to any preceding claim, wherein the base system change comprises one or more of addition, removal or modification of elements of the base system. 請求項1〜16のいずれか一項に記載の方法を実行するためのコンピュータ実行可能なコードを含むコンピュータプログラム。   A computer program comprising computer-executable code for performing the method according to claim 1. 請求項17に記載のコンピュータプログラムを含み、または具体化するデータ記憶媒体。   A data storage medium comprising or embodying the computer program according to claim 17. ウィーバを用いてベースシステムへとウィービングされるべきアスペクトを実行するアスペクトシステムを含むアスペクト指向プログラミング環境におけるベースシステム内の変化に適応する装置であって、
前記ベースシステム内のある変化に応じて、前記ベースシステム内の前記変化の重要性を評価する手段と、
前記評価により前記変化に重要性があると判明した場合、前記変化を補償するために適応動作を行うための手段と
を備える装置。
An apparatus for adapting to changes in a base system in an aspect-oriented programming environment including an aspect system that implements an aspect to be weaved to a base system using a weaver,
Means for assessing the significance of the change in the base system in response to a change in the base system;
And means for performing an adaptive action to compensate for the change if the evaluation reveals that the change is significant.
前記変化の重要性を評価する手段は、
前記ベースシステム内の変化の後、前記ベースシステム内の変化前のジョインポイントまたはジョインポイントシャドーが、前記ベースシステム内の変化後のものと異なっているかどうかを決定する手段
を備えるものである、請求項19に記載の装置。
Means for assessing the importance of the change are:
Means for determining whether a join point or join point shadow in the base system after a change in the base system is different from a post-change in the base system. Item 20. The device according to Item 19.
あるアスペクトまたはアドバイスについて前記重要性の評価を個々に実行する手段と、
前記変化に重要性があると判明した前記あるアスペクトまたはアドバイスについて個々に適応動作を行うための手段と
をさらに備える請求項19または20に記載の装置。
Means for individually performing the importance assessment for an aspect or advice;
21. The apparatus of claim 19 or 20, further comprising means for individually performing an adaptive action on the certain aspect or advice found to be significant for the change.
前記適応動作は、
あるアスペクトを前記ベースシステムに全体的または部分的に再ウィービングするステップと、
あるアスペクトに関連付けられたアドバイスを全体的または部分的に再ウィービングするステップと、
あるアスペクトを全体的または部分的にアンウィービングするステップと、
あるアスペクトに関連付けられたアドバイスを全体的または部分的にアンウィービングするステップと
のうちの2つ以上を含む複数の適応動作から選択されるものである、請求項19〜21のいずれか一項に記載の装置。
The adaptive action is:
Reweaving an aspect to the base system in whole or in part;
Reweaving the advice associated with an aspect in whole or in part,
Unweaving an aspect in whole or in part;
23. The method according to any one of claims 19 to 21, wherein the adaptive action is selected from a plurality of adaptive actions including two or more of the steps of unweaving, in whole or in part, advice associated with an aspect. The device described.
前記アスペクト指向プログラミング環境は、前記ベースシステムおよび前記アスペクトシステムに加えて適応システムを含むものであり、
前記適応システム、前記ベースシステムおよび前記アスペクトシステムは、互いに独立して修正および実行できる別個のエンティティーである、
請求項19〜22のいずれか一項に記載の装置。
The aspect-oriented programming environment includes an adaptive system in addition to the base system and the aspect system,
The adaptive system, the base system and the aspect system are separate entities that can be modified and executed independently of each other.
The apparatus according to any one of claims 19 to 22.
前記ベースシステム、前記アスペクトシステムおよび前記適応システムは、直接または間接呼出しを通して相互に作用するものである、請求項19〜23のいずれか一項に記載の装置。   24. The apparatus according to any one of claims 19 to 23, wherein the base system, the aspect system, and the adaptive system interact with each other through direct or indirect calls. 前記ベースシステム内に変化が生じた場合、前記ベースシステム、前記アスペクトシステムおよび前記適応システムを含んだ全体的なシステムの要素に対し、前記ベースシステム内の変化を通知する手段をさらに備えるものであって、前記要素は、
前記ベースシステムの変化に関する評価を開始することと、
前記ベースシステムの変化を評価することと、
前記評価に基づいて適応動作を開始することと、
前記評価に基づいて適応動作を実行することと
のうちの1つ以上を行うことができるものである、
請求項19〜24のいずれか一項に記載の装置。
When a change occurs in the base system, it further comprises means for notifying changes in the base system to the elements of the overall system including the base system, the aspect system and the adaptive system. The element is
Initiating an assessment of changes in the base system;
Assessing changes in the base system;
Starting an adaptive action based on the evaluation;
One or more of performing an adaptive action based on the evaluation,
The device according to any one of claims 19 to 24.
前記要素は、
アスペクトと、
アドバイスと、
ウィーバと、
ポイントカットと、
全体的なシステムの任意の他の要素と
のうちの1つである、請求項19〜25のいずれか一項に記載の装置。
Said element is
Aspect,
With advice,
With weaver,
With point cuts,
26. Apparatus according to any one of claims 19 to 25, which is one of any other element of the overall system.
前記要素に前記ベースシステム内の変化を通知する手段は、
前記ベースシステム内に変化が生じた場合、対応する通知を前記要素に送ることにより前記要素に自動的に通知する手段と、
前記ベースシステム内に何らかの変化が発生しているかどうかについて前記ベースシステムを監視するために、前記要素により前記ベースシステムをポーリングする手段と
のうちのいずれかまたは両方を備えるものである、請求項25または26に記載の装置。
Means for notifying the element of a change in the base system,
Means for automatically notifying the element when a change occurs in the base system by sending a corresponding notification to the element;
26. Means for polling the base system by the element to monitor the base system for any change in the base system, or both. Or the apparatus according to 26.
前記ベースシステム内の何らかの変化に関する通知を受けるために、前記アスペクトシステムの1つ以上の要素を登録する手段を備える請求項19〜27のいずれか一項に記載の装置。   28. Apparatus according to any one of claims 19 to 27, comprising means for registering one or more elements of the aspect system to receive notifications about any changes in the base system. 前記ベースシステムの変化を評価する手段は、
前記変化の後、あるアスペクトとアドバイスとのうちのいずれかまたは両方について、一連の全てのジョインポイントと一連の全てのジョインポイントシャドーとのうちのいずれかまたは両方を決定する手段
を備えるものである、請求項19〜28のいずれか一項に記載の装置。
The means for evaluating the change in the base system is:
After said change, means for determining either or both of a series of all join points and a series of all join point shadows for one or both of an aspect and advice An apparatus according to any one of claims 19 to 28.
前記変化の後に決定された前記一連のジョインポイントと前記一連のジョインポイントシャドーとのうちのいずれかまたは両方を、前記変化の前の対応する一連のものと比較する手段と、
前記一連のものが異なる場合、前記変化を補償するために適応動作を行うための手段と
をさらに備える請求項19〜29のいずれか一項に記載の装置。
Means for comparing either or both of the series of join points and the series of join point shadows determined after the change with a corresponding series before the change;
30. The apparatus of any one of claims 19 to 29, further comprising means for performing an adaptive action to compensate for the change if the series is different.
行われる適応動作ストラテジーとして複数の可能な適応動作を提供する手段と、
前記評価に応じて、前記複数の適応動作から1つ以上を選択する手段と
をさらに備える請求項19〜30のいずれか一項に記載の装置。
Means for providing a plurality of possible adaptive actions as an adaptive action strategy to be performed;
31. The apparatus according to any one of claims 19 to 30, further comprising means for selecting one or more of the plurality of adaptive actions in response to the evaluation.
前記重要性を評価する手段は、
前記評価結果に基づいて、前記適応動作のいずれを行うべきかを決定する一連のルールを評価する手段
をさらに備えるものである、請求項19〜31のいずれか一項に記載の装置。
The means for evaluating the importance is:
The apparatus according to any one of claims 19 to 31, further comprising: means for evaluating a series of rules for determining which of the adaptive operations should be performed based on the evaluation result.
前記重要性を評価する手段は、ランタイム中に発生する事象または動作を考慮に入れるものであり、
前記事象または相互作用は、
ユーザとの対話と、
ランタイム中の機能またはモジュールの評価と
のうちの1つ以上である、
請求項19〜32のいずれか一項に記載の装置。
The means for assessing importance takes into account events or actions that occur during runtime;
The event or interaction is
User interaction,
One or more of a function or module evaluation during runtime,
33. Apparatus according to any one of claims 19 to 32.
前記ベースシステムの変化は、前記ベースシステムの要素の追加、取外しまたは修正のうちの1つ以上を含むものである、請求項19〜22のいずれか一項に記載の装置。   23. The apparatus of any one of claims 19-22, wherein the base system change comprises one or more of addition, removal or modification of elements of the base system.
JP2011107243A 2011-05-12 2011-05-12 Method and device for weaving aspect to changing base system Pending JP2011170884A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011107243A JP2011170884A (en) 2011-05-12 2011-05-12 Method and device for weaving aspect to changing base system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011107243A JP2011170884A (en) 2011-05-12 2011-05-12 Method and device for weaving aspect to changing base system

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007503202A Division JP2007529799A (en) 2004-03-19 2004-03-19 Method and apparatus for weaving aspects into a changing base system

Publications (1)

Publication Number Publication Date
JP2011170884A true JP2011170884A (en) 2011-09-01

Family

ID=44684870

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011107243A Pending JP2011170884A (en) 2011-05-12 2011-05-12 Method and device for weaving aspect to changing base system

Country Status (1)

Country Link
JP (1) JP2011170884A (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10507016A (en) * 1994-08-26 1998-07-07 シリコン グラフィックス インコーポレイテッド System, method and compiler preprocessor for conditionally compiling software compilation units

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10507016A (en) * 1994-08-26 1998-07-07 シリコン グラフィックス インコーポレイテッド System, method and compiler preprocessor for conditionally compiling software compilation units

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSND200400825006; 巻山  展輝: 'アスペクト指向開発のススメ' Java  WORLD 第7巻、第7号, 20030701, 第102-109頁, (株)IDGジャパン *
JPN6013000610; 巻山  展輝: 'アスペクト指向開発のススメ' Java  WORLD 第7巻、第7号, 20030701, 第102-109頁, (株)IDGジャパン *

Similar Documents

Publication Publication Date Title
US20220398109A1 (en) Dynamically Loaded Plugin Architecture
US11599407B2 (en) Method for deterministically reporting cause and effect in software systems
CN101960425B (en) Virtual machine and programming language for event processing
US20170010889A1 (en) Continuous integration with reusable context aware jobs
US20090144703A1 (en) Method and system for versioning a software system
US9372676B2 (en) Method and system for loading status control of DLL
CN107908488B (en) Message request interface interaction method and device, computer equipment and storage medium
WO2001033354A1 (en) A method for isolating a fault from error messages
US20200034282A1 (en) Object-oriented regression-candidate filter
JP6401235B2 (en) Operating system support for contracts
US9367429B2 (en) Diagnostics of declarative source elements
Ricci et al. Typing multi-agent programs in simpal
Masse et al. Tool set implementation for scenario-based multithreading of UML-RT models and experimental validation
JP2011170884A (en) Method and device for weaving aspect to changing base system
JP2007529799A (en) Method and apparatus for weaving aspects into a changing base system
JP2010049439A (en) System construction method using software model and modeling device
CN112650573B (en) Task scheduling method and device
JP5716469B2 (en) Wrapper program and integrated circuit device
WO2008015110A2 (en) Methods, apparatus and computer programs for modelling computer programs
Ribeiro et al. COFIE: a regex-like interaction and control flow description
CN113126961B (en) Pipeline processing method, device and storage medium
Kraemer et al. Creating internet of things applications from building blocks
Dingel et al. Bridging the gap: discrete-event systems for software engineering (short position paper)
CN115756419A (en) Heterogeneous algorithm model processing system, method, device and medium
Rausch DisCComp–a formal model for distributed concurrent components

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110607

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110607

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130611