JP2013512488A - サービスを管理するためのアプリケーションサーバ及び方法 - Google Patents

サービスを管理するためのアプリケーションサーバ及び方法 Download PDF

Info

Publication number
JP2013512488A
JP2013512488A JP2012540329A JP2012540329A JP2013512488A JP 2013512488 A JP2013512488 A JP 2013512488A JP 2012540329 A JP2012540329 A JP 2012540329A JP 2012540329 A JP2012540329 A JP 2012540329A JP 2013512488 A JP2013512488 A JP 2013512488A
Authority
JP
Japan
Prior art keywords
application
service
interests
weaving
interest
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.)
Granted
Application number
JP2012540329A
Other languages
English (en)
Other versions
JP2013512488A5 (ja
JP5613255B2 (ja
Inventor
ヨルク ニーメラー,
オイゲン フライター,
ロマン ルヴェンシュテイン,
ラファエル キネ,
Original Assignee
テレフオンアクチーボラゲット エル エム エリクソン(パブル)
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 テレフオンアクチーボラゲット エル エム エリクソン(パブル) filed Critical テレフオンアクチーボラゲット エル エム エリクソン(パブル)
Publication of JP2013512488A publication Critical patent/JP2013512488A/ja
Publication of JP2013512488A5 publication Critical patent/JP2013512488A5/ja
Application granted granted Critical
Publication of JP5613255B2 publication Critical patent/JP5613255B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/316Aspect-oriented programming techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Stored Programmes (AREA)

Abstract

ユーザへ提供されるサービス(例えば、通信サービス)を管理するためのアプリケーションサーバ(102)が様々な他の装置及び方法とともに本明細書に記載される。本明細書に記載されるように、アスペクト指向プログラミングを利用してアプリケーションサーバは元のサービスの対象アプリケーションコードを直接に修正せずに、元のサービスに機能を自動的に追加できる。特に、所定のアプリケーションに機能を自動的に追加する場合に、アプリケーションサーバは所定のアプリケーション内にどのフィーチャがまだ欠けているか、及びどれがすでにサポートされているかを自動的に検出できる。

Description

本発明はユーザへ提供されるサービス(例えば、通信サービス)を管理するためのアプリケーションサーバ、リポジトリ装置、コンピュータプログラム及び方法に関する。
通信ネットワークでは、ユーザへ提供されるサービスをアプリケーションサーバが管理することが一般的である。サービス自体はしばしば、ユーザに所定の機能を提供するソフトウェアの部品の組み合わせである。機能は通常、サービスの開発者(例えば、ネットワークオペレータ)によって事前に規定されており、サービスの実装が変更されない限り、静的なままである。しかしながら、開発者がサービスを事前に規定した後にサービスの実装を変更したいことも一般的である。サービスを変更する1つの方法は、元のサービスの対象アプリケーションコードを直接に修正することなく、元のサービスに機能を追加することによってサービスの実装を変更することを可能にする技術であるアスペクト指向プログラミング(AOP)を用いることである。AOPは当業者に周知な技術であるが、サービスに機能を追加することをより容易にするだろう特徴の改良方法を説明する前に、AOPの基礎について簡単な説明が以下に提供される。
AOPは複数の機能をアプリケーションに実装することを支援するソフトウェア設計技術である。しばしば、これらの機能のコードは、1つの機能に特化したコード部品が他の機能のコード内の複数の場所に配置される必要があるという意味で、非常に入り組んでいる。これらの特性は関心事の横断と呼ばれる。しかしながら、これらの複数の機能を専用のカプセル化された単位に分割することによってこれらのクリーン且つモジュール化した実装はしばしば不可能であるか、極端に困難である。
AOPはアプリケーションのコードを横断的機能のコードから分離したままにすることを可能にする。この分離した実装はアスペクトと呼ばれる。アスペクトによって実装される機能を追加するためにアプリケーションにアスペクトを適用することはウィービングと呼ばれる。アスペクトのウィービングはオフラインで行うことが可能であり、よってアプリケーションの実行前に行うことが可能である。これは通常、ポイントカットによって参照されるコード位置にアスペクトコードを差し込むことによって、ウィービングが対象アプリケーションから新たなアプリケーションを生成することを意味する。さらに、アスペクトのウィービングはオンラインで行うことも可能であり、これはアプリケーションの実行が監視され、ポイントカットによって特定される状況に達すると、アプリケーションの実行を継続する前にアスペクトが実行されることを意味する。
ウィービングはポイントカットによって誘導される。ポイントカットは、アスペクトコードが追加されるべき場所であるアプリケーション内のジョインポイントとして知られる位置の包括的定義である。例えば、ポイントカットは所定のメソッドのすべてのコールにおいてアスペクトを実行することを特定してもよい。ポイントカットは対象アプリケーションのソースコード内のポイントをキャプチャする状況に基づくか、アプリケーション実行を伴うイベントを参照する。原則として、この技術はアプリケーションを分析しなかったとしても所定の機能の自動適用を自動的に可能にしうる。例えば、新たなアプリケーションがサービス実行環境内に展開されるならば、この環境内に存在するアスペクトはこの新たな対象アプリケーションに自動的に適用されうるだろう。これは特に、サードパーティのサービスプロバイダからのサービスを使用する際に、通信分野で関心がある。
これらのサードパーティのサービスはネットワークオペレータによって要求される機能のすべてをサポートしないかもしれない。例えば、アクティビティ・ロギングや課金がサードパーティのサービスで実装されないかもしれない。よって、AOPを利用して、これらの特徴が対象アプリケーションに自動的に追加されうる。これを達成しうる装置及び方法が本発明の目的である。
本出願の独立請求項にアプリケーションサーバ、リポジトリ装置、システム、コンピュータプログラム及び方法が記載される。従属請求項にアプリケーションサーバ、リポジトリ装置、システム、コンピュータプログラム及び方法の有利な実施形態が記載される。
1つの側面では、本発明はサービスを管理するために少なくとも1つのリポジトリと相互作用するアプリケーションサーバを提供する。前記アプリケーションサーバは、(a)前記サービスによってランタイム・データに実装されるアプリケーション関心事のリストを識別するサービス記述をロードするために前記少なくとも1つのリポジトリと相互作用するように構成された合成エンティティと、(b)アスペクト関心事のリストを識別するアスペクト記述にアクセスするために前記少なくとも1つのリポジトリと相互作用するように構成されたウィービング・エンティティであって、アスペクト関心事の前記リストは一意なアスペクト識別情報を有し、アスペクト関心事のそれぞれは一意識別子(例えば、タグ又はキーワード)によって識別される、ウィービング・エンティティとを備え、(c)前記ウィービング・エンティティは、前記サービスの実行中に前記ランタイム・データ内の前記アプリケーション関心事の前記サービス記述を動的に更新するように構成され、ジョインポイントにおけるアスペクト・ウィービング中に、前記ランタイム・データ内の前記アプリケーション関心事の前記ランタイム・サービス記述の更新は、前記ランタイム・データ内の前記アプリケーション関心事にウィービングされる前記アスペクト関心事のために定義された前記一意識別子を追加するか、削除するか、又は削除されたものとしてマークすることによって実行される。この利点は、アスペクトが必要とされるサービスにのみアスペクトがウィービングされることをアプリケーションサーバが確かめることである。
さらに別の側面では、本発明はサービスを管理するために少なくとも1つのリポジトリと相互作用するアプリケーションサーバによって実施される方法を提供する。前記方法は、(a)前記サービスによってランタイム・データに実装されるアプリケーション関心事のリストを識別するサービス記述をロードするために前記少なくとも1つのリポジトリと相互作用する工程と、(b)アスペクト関心事のリストを識別するアスペクト記述にアクセスするために前記少なくとも1つのリポジトリと相互作用する工程であって、アスペクト関心事の前記リストは一意なアスペクト識別情報を有し、アスペクト関心事のそれぞれは一意識別子(例えば、タグ又はキーワード)によって識別される、工程と、(c)前記サービスの実行中に前記ランタイム・データ内の前記アプリケーション関心事の前記サービス記述を動的に更新する工程とを有し、ジョインポイントにおけるアスペクト・ウィービング中に、前記ランタイム・データ内の前記アプリケーション関心事の前記ランタイム・サービス記述の更新は、前記ランタイム・データ内の前記アプリケーション関心事にウィービングされる前記アスペクト関心事のために定義された前記一意識別子を追加するか、削除するか、又は削除されたものとしてマークすることによって実行される。この利点は、アスペクトが必要とされるサービスにのみアスペクトがウィービングされることをアプリケーションサーバが確かめることである。
なおも別の側面では、本発明はサービスを管理するためのシステムを提供する。前記システムは、少なくとも1つのリポジトリと、アプリケーションサーバとを備え、(a)前記少なくとも1つのリポジトリは、前記サービスによって実装されるアプリケーション関心事のリストを識別するサービス記述を格納し、(b)前記少なくとも1つのリポジトリは、アスペクトによって実装されるアスペクト関心事のリストを識別するアスペクト記述も格納し、アスペクト関心事の前記リストは一意なアスペクト識別情報を有し、アスペクト関心事のそれぞれは一意識別子(例えば、タグ又はキーワード)によって識別され、(c)前記アプリケーションサーバは、(i)前記サービスによってランタイム・データに実装されるアプリケーション関心事の前記リストを識別する前記サービス記述をロードように構成された合成エンティティと、(ii)アスペクト関心事のリストを識別するアスペクト記述にアクセスするために前記少なくとも1つのリポジトリと相互作用するように構成されたウィービング・エンティティであって、アスペクト関心事の前記リストは一意なアスペクト識別情報を有し、アスペクト関心事のそれぞれは一意識別子によって識別される、ウィービング・エンティティとを備え、(iii)前記ウィービング・エンティティは、前記サービスの実行中に前記ランタイム・データ内の前記アプリケーション関心事の前記サービス記述を動的に更新するように構成され、ジョインポイントにおけるアスペクト・ウィービング中に、前記ランタイム・データ内の前記アプリケーション関心事の前記ランタイム・サービス記述の更新は、前記ランタイム・データ内の前記アプリケーション関心事にウィービングされる前記アスペクト関心事のために定義された前記一意識別子を追加するか、削除するか、又は削除されたものとしてマークすることによって実行される。この利点は、アスペクトが必要とされるサービスにのみアスペクトがウィービングされることをアプリケーションサーバが確かめることである。
さらに別の側面では、本発明はサービスを提供するアプリケーションサーバと相互作用するリポジトリを提供する。前記リポジトリは、前記サービスによって実装されるアプリケーション関心事のリストを識別するサービス記述を格納するための記憶装置を備え、アプリケーション関心事のそれぞれは一意識別子(例えば、タグ又はキーワード)によって識別される。
さらに別の側面では、本発明はサービスを提供するアプリケーションサーバと相互作用するリポジトリによって実施される方法を提供する。前記方法は、前記サービスによって実装されるアプリケーション関心事のリストを識別するサービス記述を格納する工程を有し、アプリケーション関心事のそれぞれは一意識別子によって識別される。
さらに別の側面では、本発明は、コンピュータで実行された場合に前記コンピュータに、サービスによって実装されるアプリケーション関心事のリストを識別するサービス記述を格納する工程を実行させるコンピュータ読み取り可能コードを有するコンピュータプログラムを提供し、アプリケーション関心事のそれぞれは一意識別子(例えば、タグ又はキーワード)によって識別される。
なおも別の側面では、本発明は、コンピュータで実行された場合に前記コンピュータに、(a)前記サービスによってランタイム・データに実装されるアプリケーション関心事のリストを識別するサービス記述をロードするために前記少なくとも1つのリポジトリと相互作用する工程と、(b)アスペクト関心事のリストを識別するアスペクト記述にアクセスするために前記少なくとも1つのリポジトリと相互作用する工程であって、アスペクト関心事の前記リストは一意なアスペクト識別情報を有し、アスペクト関心事のそれぞれは一意識別子(例えば、タグ又はキーワード)によって識別される、工程と、(c)前記サービスの実行中に前記ランタイム・データ内の前記アプリケーション関心事の前記サービス記述を動的に更新する工程とを実行させるコンピュータ読み取り可能コードを有するコンピュータプログラムを提供し、ジョインポイントにおけるアスペクト・ウィービング中に、前記ランタイム・データ内の前記アプリケーション関心事の前記ランタイム・サービス記述の更新は、前記ランタイム・データ内の前記アプリケーション関心事にウィービングされる前記アスペクト関心事のために定義された前記一意識別子を追加するか、削除するか、又は削除されたものとしてマークすることによって実行される。
本発明の更なる側面が以下の詳細な説明、図面及び任意の請求項において部分的に説明され、詳細な説明から部分的に導出され、又は本発明の実施によって習得されうる。前述の総括的な説明及び以下の詳細な説明は例示のため、および説明のためであり、開示される本発明の限定するものではないことが理解されるだろう。
本発明のより完全な理解は添付の図面と合わせて以下の詳細な説明を参照することによって得られうる。
本発明の実施形態に従って一緒にサービスを管理するアプリケーションサーバ、サービス・リポジトリ及びアスペクト・リポジトリを含む例示のシステムを説明するブロック図である。 本発明の実施形態に従って実行される例示のウィービング・シナリオを説明するのに役立つ2つの図である。
AOPを利用して元のサービスの対象アプリケーションコードを直接に修正せずに元のサービスに機能を自動的に追加できるアプリケーションサーバが以下に記載される。アプリケーションサーバは特に、所定のアプリケーションに機能を自動的に追加する場合に、所定のアプリケーションコード内にどのフィーチャがまだ欠けているかと、どれが既にサポートされているかとを自動的に検出する。例えば、対象アプリケーションが既に課金をサポートしているならば、課金サポートを追加するアスペクトは重複又は矛盾する課金を避けるために適用されないだろう。これを実現するために、アプリケーションサーバは、アプリケーションコード及び現在適用されているアスペクトによってどの機能が既にカバーされているかを制御するためにアプリケーションのフィーチャ及び能力を動的に記述するように構成される。アプリケーションは、アプリケーションが既に対処しているフィーチャ及び関心事に対応する一意識別子、例えばタグやキーワードの集合で記述される。また、アスペクトが対処するだろう関心事も記述される。アスペクトが対象アプリケーションコードにウィービングされるならば、アスペクトによって適用される変更を反映するように、現在対処されている関心事のリストが更新される。アスペクトが自動的に追加されるべきかを決定する場合に、アスペクトが提供する機能がアプリケーションによって既にカバーされているかどうか、そしてそれ故、アスペクトが不要であるかどうかを確認するためにこのリストが参照されうる。
上述のようなサービスを管理するように構成されたアプリケーションサーバは典型的に、1つ以上のリポジトリ装置と相互作用し、アプリケーションサーバとリポジトリ装置(群)との両方が(詳細に後述される)以下の特徴のうちの1つ以上を有するだろう。
1.サービスが実装する関心事の記述は、特定のドメインからの使用のためにサービスを公開する(例えば)サービス・リポジトリ内に格納されたサービス記述に規定される(図1参照)。例えば、サービス記述はサービスのバインド情報を含んでもよく、通常はサービスの機能及び能力を記述する。ウェブサービス記述言語(WSDL)はこのようなサービス記述に用いられうる1つの方式である。
1.1 関心事のサービス記述は、対処される関心事ごとに1つの一意識別子(例えば、キーワード/タグ)を有する。
2.アスペクトが実装する関心事はアスペクトの記述内に規定される。この記述はアスペクト・リポジトリ内に格納される(図1参照)。アスペクト記述は、適用されるならばどの機能をアスペクトがアプリケーションへ追加する(又はアプリケーションから削除する)かを示す。
2.1 関心事のアスペクト記述は、対処される関心事ごとに1つの一意識別子(例えば、キーワード/タグ)を有する。
2.2 関心事のアスペクト記述は、アスペクトがこの関心事の処理を追加又は削除するかを付加的に表現できる。
2.3 一緒になって関心事を実装する複数のアスペクトは共通ID(アスペクト・グループID)と一緒にアスペクト・リポジトリ内に登録される。
3.アプリケーションのインスタンスが対処する関心事のリストはアプリケーションサーバ内でランタイムに動的に維持され更新される(図1参照)。例えば、アスペクトの使用はアプリケーション全体によって対処される関心事における変更を生じさせうる。
3.1 デフォルトのサービス関心事記述はサービス・リポジトリからアプリケーションサーバにコピーされ、サービス開始時のサービス・インスタンスでランタイム・データに格納される。
3.2 ランタイム・データ内のサービス関心事記述はサービスの実行を通じて更新され、例えばアスペクト・ウィービングによってこの実行中のインスタンスへ機能が動的に追加又は削除される。
3.3 ランタイム関心事記述の更新は、アプリケーションコードにウィービングされるアスペクトについて定義される関心事タグを追加又は削除することによって実行される。
3.4 アスペクトが機能を削除するならば、それぞれのキーワード/タグの削除によって、ランタイム・サービス関心事記述においてこれが反映される。
3.5 アスペクトが機能を削除するならば、削除されたものとして関心事をマークする情報を付加することによってランタイム・サービス関心事記述においてこれが反映される。
3.6 同じ関心事についてどのアスペクトが適用されるかを判定するポリシーが変わるならば、この関心事と一緒に登録されているアスペクトIDは変更/更新されてもよい。
3.7 複数のアスペクトが単一の関心事に対処するものにウィービングされるならば、ランタイム関心事記述において複数のアスペクトIDがこの関心事と一緒に格納される。
3.8 関心事が複数のアスペクト(アスペクトのグループ)によって実装されるならば、これらの関心事は共通グループIDと一緒に登録される。このアスペクト・グループIDは、グループ内の任意のアスペクトをウィービングした後にランタイム・サービス関心事記述内の関心事で格納される。
4 ランタイム・サービス関心事記述は、アスペクトがアプリケーションにウィービングされるべきかどうかの決定が必要な場合に評価される。アスペクト・ウィービングは、アプリケーションがアスペクトと同じ関心事に既に対処しているならば、拒絶されうる。
4.1 アスペクトの関心事記述が、ランタイム・サービス関心事記述にも含まれる関心事を含むならば、アスペクト・ウィービングは拒絶されうる。
4.2 ウィービングにおいて、ランタイム・サービス関心事記述が、アスペクト関心事記述にも含まれる関心事を既に含むならば、対立する関心事がアスペクトの以前のウィービングによって追加された場合に、ウィービングは許可されうる。
4.3 ジョインポイントにおいて同じ関心事について複数のアスペクトが適用可能であるならば、どのアスペクトを適用するかに関する決定をサポートするためにポリシーが用いられうる。この観点で、複数のアスペクトは同じ関心事を実装するものの、ポリシーは複数のアスペクトがウィービングされることを可能にする。
4.4 結合ポイントにおいて同じ関心事について複数のアスペクトが適用可能であるならば、アスペクトの適用の順序に関して決定するためにポリシーが用いられうる。
5 合成サービスの関心事のデフォルトのリストは合成に用いられている構成サービスのリストから導出されてもよい。このようにアスペクト・ウィービングと合成との両方が、対処される関心事のリストを動的に変更してもよい。
図1を参照して、本発明の実施形態に従うサービス108を一緒に管理するアプリケーションサーバ102、サービス・リポジトリ104及びアスペクト・リポジトリ106を含む例示のシステム100を説明するブロック図が示される。アプリケーションサーバ102は当該分野において周知の多くのコンポーネントを含むが、これらは明確化のために図1には示されず、本発明に関連する合成エンティティ110、分析機能112、ランタイム・データ114及びウィービング・エンティティ116のようなコンポーネントが示される。これらのコンポーネント102、104、106、108、110、112、114、116のそれぞれの機能に関する詳細な説明は以下のトピックに関して以下に記載される。(1)アプリケーション及びアスペクトの関心事(特徴1.x、特徴2.x)。(2)ランタイムでの関心事処理(特徴3.x)。(3)ウェービング決定に影響する関心事(特徴4.x)。(4)その他の実施形態(特徴5)。(5)例示のシナリオ(図2、図3)。
1.アプリケーション及びアスペクトの関心事(特徴1.x、特徴2.x)
サービス108の機能全体は、アプリケーション全体の相異なる部分を提供する複数のサブ機能で構成される。これは特に、各構成サービス121a、121b(service1、service1)がアプリケーションの一部を提供する合成サービス118である場合である。合成サービス118によって実装される機能は関心事120a、120bと呼ばれる。この観点でAOPは合成サービス118によってどの関心事120a、120bが対処されるかを修正する方法である。
AOP技術の使用前の合成サービス118は複数の関心事120a、120bに対処する。例えば、合成サービス118はサービスの課金を扱うかもしれないが、合成サービス118はロギングのサポートを含まないかもしれない。本発明の特徴は、アプリケーションの実装によって既にカバーされている関心事120a、120bのリスト119を、サービス・リポジトリ104内のサービス記述112の一部として追加することである(特徴1)。1つの実施形態では、合成サービス118が対処する各関心事120a、120bはキーワード/タグ(例えば、concern1、concern2)に対応しうる。その後、関心事120a、120bの集合全体はこれらのキーワード/タグのリスト119によって表される(特徴1.1)。
また、アスペクト124は関心事126a、126bの実装を提供する。これは、アスペクト・リポジトリ106内のアスペクト記述128によって反映される。アスペクト記述128は一意ID130と、アスペクト124に関連する関心事126a、126bのリスト132とを含む(特徴2)。さらに、アスペクト記述128は、これが適用されるならば、関心事126a、126bがアプリケーションへどの機能を追加するか、又はアプリケーションからどの機能を削除するかを示す。1つの実施形態では、アスペクト124が対処する各関心事126a、126bはキーワード/タグ(例えば、concern3、concern4)と一緒にリスト132に格納されてもよい(特徴2.1)。
アスペクト124がアプリケーションに実装を追加できる関心事(例えば、関心事126a)は、アスペクト124がアプリケーションから削除できる関心事(例えば、関心事126b)から区別されるべきである。1つの実施形態では、これを実現するために、関心事126a、126bについて別個のリスト132a、132bを用いる(特徴2.2)。1つのリスト132aはアスペクト124がアプリケーションに追加する関心事126aを識別し、別のリスト132bはアスペクト124がアプリケーションから削除する関心事126bを識別する。アプリケーションへの関心事の削除及び追加の例は、元の合成サービス118がユーザに課金する機能を含むかもしれない場合である。しかしながら、オペレータは、課金の特定のメソッドを有することを望まないかも知れず、それ故、この種の課金を削除するためにアスペクト124(関心事126b)を使用する。さらに、オペレータは別のアスペクト124(関心事126a)を通じて自身の好みの課金方法を合成サービス118に追加してもよい。関心事126a、126bは両方の場合について「charging」と呼ばれないだろうが、例えば、「charging_methodA」、「charging_methodB」と呼ばれるだろう。
各関心事126a、126bは、それぞれが関心事の機能全体の一部を実装する複数のアスペクトによって実装されてもよい。これらのアスペクトはアスペクト・グループである。これらは共通アスペクト・グループIDと一緒にアスペクト・リポジトリ106に登録される(特徴2.3)。このアスペクト・グループIDを実装する方法は複数存在する。例えば、特定のグループに属するすべてのアスペクト124にグループIDを付加することによる。または、特定のグループに属するすべてのアスペクト124のリストとして別々にグループIDを特定することによる。これらのアプローチのそれぞれは独自の利点及び不都合を有する。
2.ランタイムでの関心事の処理(特徴3.x、4.x)
前節で導入されたサービス記述122及びアスペクト記述128はサービス108の実行のための環境を設定する。サービス記述122、128はサービス108のランタイムで用いられる(特徴3)。
実行開始において、アプリケーションサーバ102、特に合成エンジン110はサービス記述122をサービス・インスタンスのランタイム・データ114にロードする。1つの実施形態では、これを行うために、サービス記述122をサービス・リポジトリ104からランタイム・データ114へコピーする(特徴3.1)。別の実施形態では、分析機能112はサービス108の分析の結果としてサービス記述122を判定しうる。
ランタイム・サービス関心事記述122’はアスペクト124がアプリケーションにウィービングされるごとに更新される(特徴3.2)。1つの実施形態では、アプリケーションサーバ102、特にウィービング・エンティティ116はこれを行うために、アスペクト関心事記述128に特定される関心事をランタイム・サービス関心事記述122’に追加する(特徴3.3)。
アスペクト124が機能を削除するならば、それぞれの関心事記述は追加されるのではなく、ランタイム・サービス関心事記述122’から削除される必要がある(特徴3.4)。1つの実施形態では、関心事の削除は、当該関心事が削除されたものとしてマークするのではなく、ランタイム・サービス関心事記述122’において実際に離すことによって実行される(特徴3.5)。
ランタイム中に変更されるランタイム・サービス関心事記述122’内のすべての関心事は、変更の起源としてマークされる。例えば、ウィービングされたアスペクトが変更を引き起こすならば、この特定の関心事はそれぞれのアスペクトIDによってマークされる(特徴3.6)。
所与のジョインポイントについて、関心事を実装する複数のアスペクトが適用可能であってもよい。例えば、課金のためのアスペクトの適用を導くジョインポイントにおける2つの有効なウィービング命令が存在してもよい。二重課金を避けるために、これらのうちの1つだけが実際に用いられるべきである。1つの実施形態では、ウェービング・エンティティ116はウィービングについて1つのアスペクトだけ(例えば、処理された最初のアスペクト)を選択し、同じ関心事のための他のアスペクトはスキップされる。別の実施形態では、どのアスペクトが用いられるかを制御するためにポリシーが定義されうる(特徴4.3、4.4)。単一の関心事について複数のアスペクトが用いられるならば、複数のアスペクトIDを関心事に割り当てることによって、ランタイム関心事記述122’にこれが反映されうる(特徴3.7)。
ランタイム・サービス関心事記述122’において、アスペクトのIDはアスペクトが追加した関心事と一緒に格納される。相異なるジョインポイントで同じ関心事のための同じアスペクトがブロックされないことを保証するためにこれが行われる。そうでなければ、アスペクトは自身をブロックしうる。これは、ランタイム・サービス関心事記述122’が最初のジョインポイントで更新されるので発生しうる。その後、更新されたランタイム・サービス関心事記述122’内にこの関心事が既にあるので、他のジョインポイントにおいて、アスペクトの他の部分のウィービングがブロックされる。関心事の実装が複数のアスペクトに亘って意図的に広がるならば、このようなブロックも発生しうる。単一の関心事について複数のアスペクトが用いられるならば、複数のアスペクトIDを関心事に割り当てることによって、ランタイム・サービス関心事記述122’にこれが反映されうる(特徴3.7)。これにより、関心事に割り当てられたすべてのアスペクトが、同じ関心事に対処する他のジョインポイントで用いられることが可能になる。
特定のアスペクトのウィービングを導くポリシーは変わりうる。これが発生したならば、ランタイム・サービス関心事記述122’は新たなポリシーを反映するために更新される必要があるだろう。この更新はランタイム・サービス関心事記述122’において関心事に割り当てられたアスペクトIDの削除を暗に示すだろう。これはまた、新たなポリシーに従って選択されていただろうアスペクトの新たなIDで元のアスペクトIDを置き換えることにつながるだろう(特徴3.6)。しかしながら、このメカニズムは、最初に用いられたものとは非互換である残りの実行のためのアスペクトが用いられないことを保証するように、慎重に用いられるべきである。さらに、置換アルゴリズムは互換性問題を検討し考慮に入れるべきである。実際、すべての実行中の合成セッションについてポリシーを有効に維持し、新たなセッションについてのみ新たなポリシーを使用する方がよいかもしれない。いずれの場合でも、例えば合成の再開や古いポリシーの更なる使用が受け入れられない長時間実行中の合成セッションについて、記載されたポリシーの置換が必要になりうる。
時には、一般に様々なジョインポイントでアプリケーションにウェーブされる複数のアスペクトに関心事の実装が分配される必要がある。このようなアスペクトのグループは単一のグループアスペクトIDと一緒にアスペクト・リポジトリ106に記述される。その後、グループのアスペクトIDは、グループのアスペクトが適用されるとランタイム・サービス関心事記述122’内の関心事にも割り当てられる。同じグループからの異なるアスペクトが別のジョインポイントでウィービングされようとしているならば、これは許可される。なぜなら、このアスペクトは、既に関心事に割り当てられた同じアスペクト・グループIDと一緒にアスペクトが記述されるからである(特徴3.8)。
3.ウェービング決定に影響する関心事(特徴4.x)
ランタイムにおいて、アスペクト124はアプリケーションにウィービングされ、各ジョインポイントにおいて、ウィービング・エンティティ116はアスペクト124がウィービングされうるかどうかに関する決定を行う必要がある。ウィービング・エンティティ116は、アスペクト124が実装する関心事126a、126bが対象アプリケーションに既に存在するならば、アスペクト124のウィービングをスキップする。この目的のために、アスペクト・リポジトリ106に格納されたアスペクト関心事記述128はランタイム・サービス関心事記述122’に対して比較される。アスペクト関心事126a、126bが既にランタイム・データ114内にあるならば、ウィービングはスキップされてもよい。
アスペクト124はアプリケーションに亘る複数のジョインポイントでウィービングされてもよい。これは、単に最初のウィービングにおいてランタイム・サービス関心事記述122’が更新されたからといって、更なるウィービングを常に拒絶してはならないことを意味する。更なるウィービングが同じアスペクト124に関連しうるならば、これは許可されるべきである。これを達成するために、アスペクト関心事記述タグをランタイム・サービス能力リストに格納するだけでなく、アスペクトID130が特定の関心事120a、120bと一緒に格納される。同じアスペクト124の更なるウィービングにおいて、ウィービング・エンティティ116はランタイム・データ124にマッチング関心事記述及びアスペクト記述128を発見するが、対立する関心事が同じアスペクトID130を有するアスペクト124によって追加されたならばウィービングは許可される。
ジョインポイントにウィービングされるべきアスペクト124に関する決定を行う際に、同じ関心事120a、120bについての複数のアスペクト124が適用可能であってもよい。1つの実施形態では、ポリシーは、どのアスペクト124を選択するかに関する規則を提供する。例えば、ポリシーは検討される最初のアスペクト124を特定してもよい。別の関心事120a、120bについて、ジョインポイントについて適用可能な最後のアスペクトが選択されてもよい。ポリシーはまた、複数のアスペクト124が関心事120a、120bについてウィービングされることを許可し、アスペクト・ウィービング/実行の順序を判定してもよい。
4.その他の実施形態(特徴5)
図1に示されるように、合成に利用可能な構成サービス121a、121bと、ウィービングに利用可能なアスペクト124とは別個のリポジトリ104、106内に登録される。必要ならば、ただ1つのリポジトリが、(構成サービス121a、121bを含む)合成サービス118とアスペクト124との両方のために存在しうる。サービス及びアスペクト関心事記述122、128のための具体的なオントロジーの定義はドメイン固有でありうる。
1つの実施形態では、デフォルトの関心事120a、120bのリスト119は構成サービス118について事前に定義され、サービス・リポジトリ104内に格納される。別の実施形態では、合成サービス118が既に対処している関心事120a、120bのリスト119は、この合成サービス118をインスタンス化するために必要な構成サービス121a、121bに関して合成サービス118を分析する分析機能112によって自動的に生成されてもよい(特徴5)。
5.例示のシナリオ(図2、図3)
サービス合成環境内で、アスペクト124を合成サービス118に適用するためにオンライン・ウィービングが用いられうる。図2に示される例では、使用されるすべての構成サービス121a’121b’、121c’、121d’、121e’、121f’のロギングを合成サービスアプリケーション118に追加するアスペクト124が使用される。これは、合成サービス118内の各サービス選択後にロギング・アスペクト124が呼び出されることを意味する。よって、各ジョインポイントにおいて、ウィービング・エンティティ116は、図3に関連するフローチャートに示されるウィービング決定ロジックに従って決定を行う。
図3を参照して、図2に示される例示のサービスを実装するためにウィービング・エンティティ116によって実行されるウィービング決定ロジック300を説明するフローチャートを示す。ウィービング・エンティティ116は、ジョインポイントに到達した(ステップ302)後に、ウィービング命令に従ってアスペクト124を選択し(ステップ304)、アスペクト関心事記述128を取得する(ステップ306)ように機能する。その後、ウィービング・エンティティ116は、アスペクト関心事がランタイム・サービス制約のリストにあるかを判定し(ステップ308)、結果がNOであればアスペクト関心事がサービス関心事122’のランタイム・リストに追加され(ステップ310)、アスペクト124がアプリケーションにウィービングされ(ステップ312)、その後終了する(ステップ314)。アスペクトが実際にランタイム・サービス制約のリストにあることをウィービング・エンティティ116が判定した(ステップ308)ならば、ランタイム関心事が同じアスペクト124からのものであるかを判定し(ステップ316)、結果がNOであれば終了し(ステップ318)、結果がYESであればアスペクト124をアプリケーションにウィービングし(ステップ320)、その後終了する(ステップ322)。この例では、サービスはロギングをサポートしない。ロギングはランタイムでアスペクトによって追加される。最初に、ロギング・アスペクトが適用されるジョインポイントに到達した場合に、ウィービング・エンティティ116は、アプリケーションによって既に対処されている関心事のリストにロギング関心事がないことを判定すると仮定する(ステップ308)。アスペクトは適用され、このサービス・インスタンスについて対処される関心事のリストは更新される(ステップ310、312)。次のジョインポイントで、再びロギング・アスペクトを適用する場合に(ステップ308)、ウィービング・エンティティ116は、ロギング・アスペクトの関心事が既に対処される関心事のリスト内にあることを見つける。このロギング関心事は同じIDのアスペクトによって追加されたので、ウィービング・エンティティ116はこのアスペクトの使用を再び許可することを決定する(ステップ320)。やはりロギングを適用するだろう別のアスペクトが試されたなら、ウィービング・エンティティ116は2つの独立したアスペクトが同じ関心事に対処することを避けるためにウィービングを拒絶するだろう(ステップ318)。
上記により、当業者は、本発明は少なくとも先行技術に関する前述の欠点を軽減し、アスペクト指向サービス管理環境全体の中央構成要素を提供することが意図されることを理解するだろう。このような環境では、ウィービング言語により複数のアプリケーション及びサービスに広域に亘るウィービングを定義できる。本発明は、アスペクトが必要なアプリケーションにのみアスペクトがウィービングされることを保証することに役立つ。特に、新たなアプリケーションが環境に追加されるならば、本明細書に記載されたメカニズムはグローバルなウィービング命令を変更することなくアスペクトの自動適用を可能にしうる。なぜなら、アスペクトがこのアプリケーションにウィービングされるべきかどうか、及びどのアスペクトがウィービングされるべきかをアプリケーションサーバが自動且つ動的に決定できるからである。このようなサービス環境のオペレータは、アプリケーションの機能に関して自身の要件を表現するグローバルなウィービング命令を提供できる。本明細書に記載されるメカニズム及び特徴はサポートを含まないアプリケーションにアスペクト・ウィービングによってこの機能を追加するのにも役立つ。この要件に既に準拠しているアプリケーションはウィービングから自動的に除外される。
本発明の複数の実施形態が添付の図面に説明され、前述の詳細な説明に記載されてきたが、本発明は開示された実施形態に限られず、添付の特許請求の範囲で説明され規定される本発明から逸脱することなく、多数の再構成、変形及び代替が可能であることが理解されるべきである。

Claims (34)

  1. サービス(108)を管理するために少なくとも1つのリポジトリ(104、106)と相互作用するアプリケーションサーバ(102)であって、
    前記サービスによってランタイム・データ(114)に実装されるアプリケーション関心事(120a、120b)のリスト(119)を識別するサービス記述(122)をロードするために前記少なくとも1つのリポジトリと相互作用するように構成された合成エンティティ(110)と、
    アスペクト関心事(126a、126b)のリスト(132)を識別するアスペクト記述(128)にアクセスするために前記少なくとも1つのリポジトリと相互作用するように構成されたウィービング・エンティティ(116)であって、アスペクト関心事の前記リストは一意なアスペクト識別情報(130)を有し、アスペクト関心事のそれぞれは一意識別子によって識別される、ウィービング・エンティティ(116)とを備え、
    前記ウィービング・エンティティは、前記サービスの実行中に前記ランタイム・データ内の前記アプリケーション関心事のランタイム・サービス記述(122’)を動的に更新するように構成され、ジョインポイントにおけるアスペクト・ウィービング中に、前記ランタイム・データ内の前記アプリケーション関心事の前記ランタイム・サービス記述の更新は、前記ランタイム・データ内の前記アプリケーション関心事にウィービングされる前記アスペクト関心事のために定義された前記一意識別子を追加するか、削除するか、又は削除されたものとしてマークすることによって実行されることを特徴とするアプリケーションサーバ。
  2. 前記ウィービング・エンティティは、前記アスペクト・ウィービングが前記ランタイム・データ内の前記アプリケーション関心事の1つに変化をもたらした場合に、当該1つのアプリケーション関心事を前記一意なアスペクト識別情報と一緒にマークするように構成されることを特徴とする請求項1に記載のアプリケーションサーバ。
  3. 前記ウィービング・エンティティは、2つ以上のアスペクトが前記ランタイム・データ内の1つのアプリケーション関心事に適用可能であるならばウィービングのために前記2つ以上のアスペクトのうちの1つの選択し、残りのアスペクトをスキップするポリシーを実施するように構成されることを特徴とする請求項1又は2に記載のアプリケーションサーバ。
  4. 前記ウィービング・エンティティは、前記ポリシーが変わった場合に、新たなポリシーに従って前記ランタイム・データ内の前記アプリケーション関心事の前記サービス記述内の一意なアスペクト識別情報を更新することを特徴とする請求項3に記載のアプリケーションサーバ。
  5. 前記ウィービング・エンティティは、前記ランタイム・データ内のアプリケーション関心事の1つに対処する複数のアスペクトがウィービングされるならば、当該1つのアプリケーション関心事と一緒に複数の一意なアスペクト識別情報を格納するように構成されることを特徴とする請求項3又は4に記載のアプリケーションサーバ。
  6. 前記ウィービング・エンティティは、前記アスペクト関心事の1つが追加されるべきかを決定する場合に前記サービス記述を参照するように構成され、当該1つのアスペクト関心事の機能が前記サービスで既にカバーされているならば、当該1つのアスペクト関心事は前記ランタイム・データ内の前記アプリケーション関心事にウィービングされないことを特徴とする請求項1乃至5の何れか1項に記載のアプリケーションサーバ。
  7. 前記アスペクト関心事のリストは、前記アスペクトが前記サービスに追加するアスペクト関心事の個別のリストと、前記アスペクトが前記サービスから除去するアスペクト関心事の別の個別のリストとを含むことを特徴とする請求項1乃至6の何れか1項に記載のアプリケーションサーバ。
  8. 前記ウィービング・エンティティは、前記アスペクト・ウィービングが前記ランタイム・データ内の前記アプリケーション関心事の1つに変化をもたらす場合に前記一意な識別情報と一緒に当該1つのアプリケーション関心事をマークするように構成され、同じ一意なアスペクト識別情報を有する異なるアスペクト関心事が別のジョインポイントにおいてウィービングされようとしているならば、前記異なるアスペクト関心事が前記同じ一意なアスペクト情報と一緒に記述されているのでこれを許可することを特徴とする請求項1乃至7の何れか1項に記載のアプリケーションサーバ。
  9. 前記一意識別子はタグ又はキーワードを含むことを特徴とする請求項1乃至8の何れか1項に記載のアプリケーションサーバ。
  10. サービス(108)を管理するために少なくとも1つのリポジトリ(104、106)と相互作用するアプリケーションサーバ(102)によって実施される方法であって、
    前記サービスによってランタイム・データ(114)に実装されるアプリケーション関心事(120a、120b)のリスト(119)を識別するサービス記述(122)をロードするために前記少なくとも1つのリポジトリと相互作用する工程と、
    アスペクト関心事(126a、126b)のリスト(132)を識別するアスペクト記述(128)にアクセスするために前記少なくとも1つのリポジトリと相互作用する工程であって、アスペクト関心事の前記リストは一意なアスペクト識別情報(130)を有し、アスペクト関心事のそれぞれは一意識別子によって識別される、工程と、
    前記サービスの実行中に前記ランタイム・データ内の前記アプリケーション関心事のランタイム・サービス記述(122’)を動的に更新する工程とを有し、
    ジョインポイントにおけるアスペクト・ウィービング中に、前記ランタイム・データ内の前記アプリケーション関心事の前記ランタイム・サービス記述の更新は、前記ランタイム・データ内の前記アプリケーション関心事にウィービングされる前記アスペクト関心事のために定義された前記一意識別子を追加するか、削除するか、又は削除されたものとしてマークすることによって実行されることを特徴とする方法。
  11. 前記アスペクト関心事のリストは、前記アスペクトが前記サービスに追加するアスペクト関心事の個別のリストと、前記アスペクトが前記サービスから除去するアスペクト関心事の別の個別のリストとを含むことを特徴とする請求項10に記載の方法。
  12. 前記動的に更新する工程は、前記アスペクト・ウィービングが前記ランタイム・データ内の前記アプリケーション関心事の1つに変化をもたらした場合に、当該1つのアプリケーション関心事を前記一意なアスペクト識別情報と一緒にマークする工程を含むことを特徴とする請求項10又は11に記載の方法。
  13. 前記動的に更新する工程は、2つ以上のアスペクトが前記ランタイム・データ内の1つのアプリケーション関心事に適用可能であるならばウィービングのために前記2つ以上のアスペクトのうちの1つの選択し、残りのアスペクトをスキップするポリシーを実施する工程を含むことを特徴とする請求項10乃至12の何れか1項に記載の方法。
  14. 前記ポリシーが変わった場合に、新たなポリシーに従って前記ランタイム・データ内の前記アプリケーション関心事の前記サービス記述内の一意なアスペクト識別情報を更新することを特徴とする請求項13に記載の方法。
  15. 前記動的に更新する工程は、前記ランタイム・データ内のアプリケーション関心事の1つに対処する複数のアスペクトがウィービングされるならば、当該1つのアプリケーション関心事と一緒に複数の一意なアスペクト識別情報を格納する工程を含むことを特徴とする請求項13又は14に記載の方法。
  16. 前記動的に更新する工程は、前記アスペクト・ウィービングが前記ランタイム・データ内の前記アプリケーション関心事の1つに変化をもたらす場合に前記一意な識別情報と一緒に当該1つのアプリケーション関心事をマークする工程を含み、同じ一意なアスペクト識別情報を有する異なるアスペクト関心事が別のジョインポイントにおいてウィービングされようとしているならば、前記異なるアスペクト関心事が前記同じ一意なアスペクト情報と一緒に記述されているのでこれを許可することを特徴とする請求項10乃至15の何れか1項に記載の方法。
  17. 前記動的に更新する工程は、前記アスペクト関心事の1つが追加されるべきかを決定する場合に前記サービス記述を参照する工程を含み、当該1つのアスペクト関心事の機能が前記サービスで既にカバーされているならば、当該1つのアスペクト関心事は前記ランタイム・データ内の前記アプリケーション関心事にウィービングされないことを特徴とする請求項10乃至16の何れか1項に記載の方法。
  18. 前記一意識別子はタグ又はキーワードを含むことを特徴とする請求項10乃至17の何れか1項に記載の方法。
  19. サービス(108)を管理するためのシステム(100)であって、
    少なくとも1つのリポジトリ(104、106)と、アプリケーションサーバ(102)とを備え、
    前記少なくとも1つのリポジトリ(104、106)は、前記サービスによって実装されるアプリケーション関心事(120a、120b)のリスト(119)を識別するサービス記述(122)を格納し、
    前記少なくとも1つのリポジトリ(104、106)は、アスペクトによって実装されるアスペクト関心事(126a、126b)のリスト(132)を識別するアスペクト記述(128)も格納し、アスペクト関心事の前記リストは一意なアスペクト識別情報(130)を有し、アスペクト関心事のそれぞれは一意識別子によって識別され、
    前記アプリケーションサーバ(102)は、
    前記サービスによってランタイム・データ(114)に実装されるアプリケーション関心事(120a、120b)の前記リスト(119)を識別する前記サービス記述(122)をロードように構成された合成エンティティ(110)と、
    アスペクト関心事(126a、126b)のリスト(132)を識別するアスペクト記述(128)にアクセスするために前記少なくとも1つのリポジトリと相互作用するように構成されたウィービング・エンティティ(116)であって、アスペクト関心事の前記リストは一意なアスペクト識別情報(130)を有し、アスペクト関心事のそれぞれは一意識別子によって識別される、ウィービング・エンティティ(116)とを備え、
    前記ウィービング・エンティティは、前記サービスの実行中に前記ランタイム・データ内の前記アプリケーション関心事のランタイム・サービス記述(122’)を動的に更新するように構成され、ジョインポイントにおけるアスペクト・ウィービング中に、前記ランタイム・データ内の前記アプリケーション関心事の前記ランタイム・サービス記述の更新は、前記ランタイム・データ内の前記アプリケーション関心事にウィービングされる前記アスペクト関心事のために定義された前記一意識別子を追加するか、削除するか、又は削除されたものとしてマークすることによって実行されることを特徴とするシステム(100)。
  20. 前記ウィービング・エンティティは、前記アスペクト・ウィービングが前記ランタイム・データ内の前記アプリケーション関心事の1つに変化をもたらした場合に、当該1つのアプリケーション関心事を前記一意なアスペクト識別情報と一緒にマークするように構成されることを特徴とする請求項19に記載のシステム。
  21. 前記ウィービング・エンティティは、2つ以上のアスペクトが前記ランタイム・データ内の1つのアプリケーション関心事に適用可能であるならばウィービングのために前記2つ以上のアスペクトのうちの1つの選択し、残りのアスペクトをスキップするポリシーを実施するように構成されることを特徴とする請求項19又は20に記載のシステム。
  22. 前記ウィービング・エンティティは、前記ポリシーが変わった場合に、新たなポリシーに従って前記ランタイム・データ内の前記アプリケーション関心事の前記サービス記述内の一意なアスペクト識別情報を更新することを特徴とする請求項21に記載のシステム。
  23. 前記ウィービング・エンティティは、前記ランタイム・データ内のアプリケーション関心事の1つに対処する複数のアスペクトがウィービングされるならば、当該1つのアプリケーション関心事と一緒に複数の一意なアスペクト識別情報を格納するように構成されることを特徴とする請求項21又は22に記載のシステム。
  24. 前記ウィービング・エンティティは、前記アスペクト関心事の1つが追加されるべきかを決定する場合に前記サービス記述を参照するように構成され、当該1つのアスペクト関心事の機能が前記サービスで既にカバーされているならば、当該1つのアスペクト関心事は前記ランタイム・データ内の前記アプリケーション関心事にウィービングされないことを特徴とする請求項19乃至24の何れか1項に記載のシステム。
  25. 前記アスペクト関心事のリストは、前記アスペクトが前記サービスに追加するアスペクト関心事の個別のリストと、前記アスペクトが前記サービスから除去するアスペクト関心事の別の個別のリストとを含むことを特徴とする請求項19乃至24の何れか1項に記載のシステム。
  26. 前記ウィービング・エンティティは、前記アスペクト・ウィービングが前記ランタイム・データ内の前記アプリケーション関心事の1つに変化をもたらす場合に前記一意な識別情報と一緒に当該1つのアプリケーション関心事をマークするように構成され、同じ一意なアスペクト識別情報を有する異なるアスペクト関心事が別のジョインポイントにおいてウィービングされようとしているならば、前記異なるアスペクト関心事が前記同じ一意なアスペクト情報と一緒に記述されているのでこれを許可することを特徴とする請求項19乃至25の何れか1項に記載のシステム。
  27. 前記一意識別子はタグ又はキーワードを含むことを特徴とする請求項19乃至26の何れか1項に記載のシステム。
  28. サービス(108)を提供するアプリケーションサーバ(102)と相互作用するリポジトリ(104)であって、
    前記サービスによって実装されるアプリケーション関心事(120a、120b)のリスト(119)を識別するサービス記述(122)を格納するための記憶装置を備え、
    アプリケーション関心事のそれぞれは一意識別子によって識別されることを特徴とするリポジトリ(104)。
  29. 前記記憶装置は、アスペクト(124)によって実装されるアスペクト関心事(126a、126b)のリスト(132)を識別するアスペクト記述(128)を更に格納し、アスペクト関心事の前記リストは一意なアスペクト識別情報(130)を有し、アスペクト関心事のそれぞれは一意識別子によって識別されることを特徴とする請求項28に記載のリポジトリ。
  30. 前記一意識別子はタグ又はキーワードを含むことを特徴とする請求項28又は29に記載のリポジトリ。
  31. サービス(108)を提供するアプリケーションサーバ(102)と相互作用するリポジトリ(104)によって実施される方法であって、
    前記サービスによって実装されるアプリケーション関心事(120a、120b)のリスト(119)を識別するサービス記述(122)を格納する工程を有し、
    アプリケーション関心事のそれぞれは一意識別子によって識別されることを特徴とする方法。
  32. アスペクト(124)によって実装されるアスペクト関心事(126a、126b)のリスト(132)を識別するアスペクト記述(128)を格納する工程を更に有し、アスペクト関心事の前記リストは一意なアスペクト識別情報(130)を有し、アスペクト関心事のそれぞれは一意識別子によって識別されることを特徴とする請求項31に記載の方法。
  33. 前記一意識別子はタグ又はキーワードを含むことを特徴とする請求項31又は32に記載の方法。
  34. コンピュータで実行された場合に前記コンピュータに請求項10乃至18、31及び33の何れか1項に記載の方法の各工程を実行させるコンピュータ読み取り可能コードを有するコンピュータプログラム。
JP2012540329A 2009-11-25 2010-07-13 サービスを管理するためのアプリケーションサーバ及び方法 Expired - Fee Related JP5613255B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US26434509P 2009-11-25 2009-11-25
US61/264,345 2009-11-25
PCT/EP2010/060060 WO2011064001A1 (en) 2009-11-25 2010-07-13 Application server and method for managing a service

Publications (3)

Publication Number Publication Date
JP2013512488A true JP2013512488A (ja) 2013-04-11
JP2013512488A5 JP2013512488A5 (ja) 2013-08-01
JP5613255B2 JP5613255B2 (ja) 2014-10-22

Family

ID=42671846

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012540329A Expired - Fee Related JP5613255B2 (ja) 2009-11-25 2010-07-13 サービスを管理するためのアプリケーションサーバ及び方法

Country Status (4)

Country Link
US (1) US8972935B2 (ja)
EP (1) EP2504760B1 (ja)
JP (1) JP5613255B2 (ja)
WO (1) WO2011064001A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8225282B1 (en) * 2003-11-25 2012-07-17 Nextaxiom Technology, Inc. Semantic-based, service-oriented system and method of developing, programming and managing software modules and software solutions
US9584324B2 (en) 2014-01-13 2017-02-28 Sap Se Centralized datastore password management
EP3776199B1 (en) * 2018-03-28 2023-07-05 Telefonaktiebolaget Lm Ericsson (Publ) Methods and apparatus for multi-provider virtual network services

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6467086B1 (en) * 1999-07-20 2002-10-15 Xerox Corporation Aspect-oriented programming
US7441232B2 (en) * 1999-11-08 2008-10-21 British Telecommunications Public Limited Company Task management
US7140007B2 (en) * 2002-01-16 2006-11-21 Xerox Corporation Aspect-oriented programming with multiple semantic levels
US7328282B2 (en) * 2003-10-23 2008-02-05 International Business Machines Corporation Aspect oriented web service invocation
JP3966518B2 (ja) * 2004-03-12 2007-08-29 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラム解析装置、その解析方法及びプログラム
US7484202B2 (en) * 2004-10-12 2009-01-27 International Business Machines Corporation Method, system and program product for retrofitting collaborative components into existing software applications
US20060129880A1 (en) * 2004-11-26 2006-06-15 Mauro Arcese Method and system for injecting faults into a software application
KR100673313B1 (ko) * 2004-12-30 2007-01-24 재단법인서울대학교산학협력재단 코드조각 번호 매김을 이용한 프로그램 간의 코드조각결합방법
US7810082B2 (en) * 2005-07-22 2010-10-05 Telefonaktiebolaget L M Ericsson (Publ) System and method for transforming generic software code into operator specific code
US8561034B2 (en) * 2006-06-22 2013-10-15 Infosys Technologies, Ltd. Software fault injection in java enterprise applications
US8276114B2 (en) * 2006-06-26 2012-09-25 The Johns Hopkins University Systems and methods for providing higher assurance software construction via aspects
US8495592B2 (en) * 2006-11-28 2013-07-23 International Business Machines Corporation Presenting completion progress status of an installer via join points
US8020143B2 (en) * 2007-01-10 2011-09-13 International Business Machines Corporation Remote aspect advising for an aspect-oriented program
US8347278B2 (en) * 2007-11-02 2013-01-01 International Business Machines Corporation Instrumenting a compiled software routine for augmentation
US9910688B2 (en) * 2008-11-28 2018-03-06 Red Hat, Inc. Implementing aspects with callbacks in virtual machines
US20100218261A1 (en) * 2009-02-26 2010-08-26 Schneider James P Isolating processes using aspects
US9652205B2 (en) * 2009-11-25 2017-05-16 International Business Machines Corporation Method, system and computer program for bytecode weaving
US8997042B2 (en) * 2012-10-15 2015-03-31 Pivotal Software, Inc. Flexible and run-time-modifiable inclusion of functionality in computer code

Non-Patent Citations (10)

* Cited by examiner, † Cited by third party
Title
CSND200400111001; 中村正: '第1章 AspectJ' JAVA PRESS 第28巻, 20030215, 第2から11頁, (株)技術評論社 *
CSND200400997009; 皆本房幸: '第1章 オープンソースJ2EEサーバJBoss入門' WEB+DB PRESS 第16巻, 20030920, 第48から53頁, (株)技術評論社 *
CSND200401565007; 和田周: '追跡!アスペクト指向プログラミング' Java WORLD 第8巻,第4号, 20040401, 第81から91頁, (株)IDGジャパン *
CSNG200500393010; 豊田陽一、他2名: 'コンパイル時に織り込み位置を決定する動的アスペクト指向プログラミング' 情報処理学会研究報告 第2004巻,第63号, 20040618, 第73から80頁, 社団法人情報処理学会 *
CSNG200800984009; 赤堀文隆、他2名: 'アスペクト指向プログラミングにためのアドバイス適用順序をテストする枠組みの提案' 電子情報通信学会技術研究報告 第108巻,第326号, 20081120, 第55から59頁, 社団法人電子情報通信学会 *
JPN6014014476; 豊田陽一、他2名: 'コンパイル時に織り込み位置を決定する動的アスペクト指向プログラミング' 情報処理学会研究報告 第2004巻,第63号, 20040618, 第73から80頁, 社団法人情報処理学会 *
JPN6014014478; 皆本房幸: '第1章 オープンソースJ2EEサーバJBoss入門' WEB+DB PRESS 第16巻, 20030920, 第48から53頁, (株)技術評論社 *
JPN6014014482; 和田周: '追跡!アスペクト指向プログラミング' Java WORLD 第8巻,第4号, 20040401, 第81から91頁, (株)IDGジャパン *
JPN6014014484; 赤堀文隆、他2名: 'アスペクト指向プログラミングにためのアドバイス適用順序をテストする枠組みの提案' 電子情報通信学会技術研究報告 第108巻,第326号, 20081120, 第55から59頁, 社団法人電子情報通信学会 *
JPN6014014488; 中村正: '第1章 AspectJ' JAVA PRESS 第28巻, 20030215, 第2から11頁, (株)技術評論社 *

Also Published As

Publication number Publication date
US20130046812A1 (en) 2013-02-21
EP2504760B1 (en) 2017-05-03
US8972935B2 (en) 2015-03-03
EP2504760A1 (en) 2012-10-03
WO2011064001A1 (en) 2011-06-03
JP5613255B2 (ja) 2014-10-22

Similar Documents

Publication Publication Date Title
US11296998B2 (en) Resolving information in a database environment
JP5593016B2 (ja) アプリケーション・コンポーネント配布の優先度設定
US10104187B2 (en) System, computer program, and method for dividing services into subsets based on interdependencies
US8055773B2 (en) Method and system for executing system management flows
CN113794636B (zh) 一种基于Spring Cloud Gateway实现的动态路由编排方法及系统
Verheecke et al. Aspect-oriented programming for dynamic web service monitoring and selection
US20160292581A1 (en) Minimized processing of streaming changes into a semantic reasoner
JP5613255B2 (ja) サービスを管理するためのアプリケーションサーバ及び方法
US8224933B2 (en) Method and apparatus for case-based service composition
JP2006099307A (ja) 分散サーバへのアプリケーションセットのインストール方法
Hall et al. Gravity: supporting dynamically available services in client-side applications
US10547565B2 (en) Automatic determination and just-in-time acquisition of data for semantic reasoning
US8335215B2 (en) Process data for a data packet
Cibrán et al. Aspect-oriented programming for dynamic web service selection, integration and management
Kumara et al. SDSN@ RT: A middleware environment for single‐instance multitenant cloud applications
KR101266685B1 (ko) 폴리시 이네이블 프로그래밍을 위한 방법 및 시스템
Lins et al. Improving transparent adaptability in web service composition
JP2005092544A (ja) ワークフロー世代管理処理方法,ワークフロー処理システムおよびワークフロー制御プログラム
US20090199159A1 (en) Declarative execution context splitting
Shiri et al. Feature interaction analysis: a maintenance perspective
US20130031157A1 (en) Distributed system
CN111782413A (zh) 跨应用程序的组件通信方法及装置
Paul et al. The impact of SOA policy-based computing on C2 interoperation and computing
Kowalkiewicz et al. Service composition enactment
ter Beek et al. Modelling Variability, Evolvability, and Adaptability in Service Computing (a vision for future research)

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130613

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130613

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140407

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140704

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140811

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140905

R150 Certificate of patent or registration of utility model

Ref document number: 5613255

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees