JP5568177B2 - 複合アプリケーションの自動分析 - Google Patents

複合アプリケーションの自動分析 Download PDF

Info

Publication number
JP5568177B2
JP5568177B2 JP2013510818A JP2013510818A JP5568177B2 JP 5568177 B2 JP5568177 B2 JP 5568177B2 JP 2013510818 A JP2013510818 A JP 2013510818A JP 2013510818 A JP2013510818 A JP 2013510818A JP 5568177 B2 JP5568177 B2 JP 5568177B2
Authority
JP
Japan
Prior art keywords
application
component
rules
components
programming languages
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.)
Expired - Fee Related
Application number
JP2013510818A
Other languages
English (en)
Other versions
JP2013542474A (ja
Inventor
クラウセン、ライアン、トーマス
ハーネス、エリック、ネルス
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.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2013542474A publication Critical patent/JP2013542474A/ja
Application granted granted Critical
Publication of JP5568177B2 publication Critical patent/JP5568177B2/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
    • 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/44589Program code verification, e.g. Java bytecode verification, proof-carrying code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3604Software analysis for verifying properties of programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/10Requirements analysis; Specification techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Description

本開示は、一般に、複合アプリケーションを分析することに関し、より具体的には、コンポーネント間の相互関係を指定する規則の組への適合性についての複合アプリケーションの自動分析に関する。
コンピュータ・プログラムは、長年にわたり、アセンブリ・コードで書かれた単純なプログラムから、高級言語で書かれる比較的複雑なプログラムまで発展を遂げてきた。コンピュータ・プログラミングにおける最近の発展には、複雑なコンピュータ・プログラムの異なる部分を異なるプログラミング言語で書くことが含まれる。サービス・コンポーネント・アーキテクチャ(SCA)は、サービス指向アーキテクチャに適合するアプリケーションについての要件を規定する、複数の大手ソフトウェア・ベンダによって提唱される新たな取り組みである。SCAでは、アプリケーションは、複数のプログラミング言語による多くの異なるコンポーネントから成るため、「複合アプリケーション」と呼ばれる。International Business Machines Corporation(IBM)社は、サービス・コンポーネント・アーキテクチャ(SCA)アプリケーションとして知られる複合アプリケーションの開発をサポートする、WebSphereとして知られる製品を提供している。
SCAアプリケーションのような複合アプリケーションを分析するステップは、現在のところ、アプリケーションをWebSphereツールに取り込むことによって行われている。次いで、プログラマが、認められる最良の形態(best practice)及び最悪の形態(worst practice)についてアプリケーションのコンポーネントを手作業で調べ、調査結果を顧客に報告する。人間の性質上、重要な詳細が隠されたり完全に見落とされたりして、顧客に提供されるサポートに悪影響を与える場合がある。この手作業のプロセスによって生じる結果はまた、時間の経過に伴って矛盾したものとなる可能性があり、新たな規則が作成されると、こうした努力に関する労働コストのため、初期の結果が再現されない。
ソフトウェア分析のための既知のツールは、単一言語で書かれたコンピュータ・プログラムの静的な分析を行うことができるようにするが、異なるプログラミング言語で書かれた複数のコンポーネントを有する複合アプリケーションの分析をサポートするものではない。複合アプリケーションの分析を自動化する手段がなければ、現在の手作業によるプロセスは、誤りを起こしやすく非効率なものであり続けることになる。
アプリケーション分析機構が、異なる言語で書かれたコンポーネント間で満たされるべき1つ又は複数の条件と条件の分析に応じて行われるアクションとを定めるコンポーネント相互関係規則の組への適合性について、複合アプリケーションを分析する。コンポーネント相互関係規則が定められると、複合アプリケーションが受信される。次に、複合アプリケーションのコンポーネントを用いられるプログラミング言語に基づくカテゴリに分離し、コンポーネント間の相互関係を記述するためのメタデータを含む、複合アプリケーションのモデルが構築される。次いで、複合アプリケーションのモデルに対して、コンポーネント相互関係規則の組が実行される。次いで、分析の結果が出力される。複合アプリケーションの自動分析は、人的誤りを起こしやすいプロセスの大部分を取り除き、複合アプリケーションを分析するための効率的且つ一貫した手法を提供して、異なるプログラミング言語で書かれたコンポーネント間の相互関係がコンポーネント相互関係規則を満たすことを保証する。
定められたコンポーネント相互関係規則の組への適合性について複合アプリケーションを自動的に分析するアプリケーション分析機構を含む装置のブロック図である。 図1の複合アプリケーションについての1つの適切な実装形態を示すブロック図である。 プログラミング言語に従ってグループ化されたコンポーネントを示すアプリケーション・モデルのブロック図である。 6つの異なるプログラミング言語を含む図1及び図3のアプリケーション・モデルについての1つの具体的な実装形態のブロック図である。 コンポーネント相互関係規則の組を示すブロック図である。 コンポーネント相互関係規則の条件について1つの特定の実装形態を示すブロック図である。 コンポーネント相互関係規則の組への適合性について複合アプリケーションを自動的に分析するための方法の流れ図である。 第1の例のコンポーネント相互関係規則を示す。 第2の例のコンポーネント相互関係規則を示す。 第3の例のコンポーネント相互関係規則を示す。 複合アプリケーションの例についてアプリケーション分析機構によって出力された結果の例を示す。 複合アプリケーションの例についてアプリケーション分析機構によって出力された結果の例を示す。
上記の及び他の特徴及び利点は、添付図面において示される、以下のより具体的な説明から明らかとなるであろう。
本開示は、同様の記号表示が同様の要素を示す添付図面とともに説明される。
特許請求の範囲及び本明細書における開示は、コンポーネント相互関係規則の組への適合性について複合アプリケーションを自動的に分析するアプリケーション分析機構を提供する。規則は、異なるプログラミング言語で書かれたコンポーネント間の相互関係を定める。複合アプリケーションが受信されて、プログラミング言語に応じてコンポーネントを複数のカテゴリに分離し、かつ、カテゴリ間の相互関係を記述するメタデータを提供する、複合アプリケーションのモデルが生成される。次いで、モデルに対して規則が実行され、分析の結果がユーザに出力される。結果は、統計情報及び警告を含むことがある。結果として、コンポーネント相互関係規則への適合性について複合アプリケーションを自動的に分析するソフトウェア・ツールが得られる。
例1
図1を参照すると、コンピュータ・システム100は、アプリケーション分析機構を含むコンピュータ・システムの1つの適切な実装形態である。コンピュータ・システム100は、IBM eServer System iコンピュータ・システムである。しかしながら、当業者であれば、本明細書における開示は、コンピュータ・システムが複雑なマルチ・ユーザ用コンピューティング装置であるか、シングル・ユーザ用ワークステーションであるか、又は内蔵式制御システムであるかどうかに関わりなく、あらゆるコンピュータ・システムに等しく適用されることが分かるであろう。図1に示されるように、コンピュータ・システム100は、1つ又は複数のプロセッサ110、メイン・メモリ120、大容量ストレージ・インターフェース130、ディスプレイ・インターフェース140、及びネットワーク・インターフェース150を含む。これらのシステム・コンポーネントは、システム・バス160を用いることによって相互接続される。大容量ストレージ・インターフェース130は、直接アクセス・ストレージ装置155などの大容量ストレージ装置をコンピュータ・システム100に接続するのに用いられる。直接アクセス・ストレージ装置155の1つの具体的なタイプは、読み出し及び書き込み可能CD−RWドライブであり、これは、CD−RW195との間でデータの格納及びデータの読み出しを行うことができる。
メイン・メモリ120は、好ましくは、データ121、オペレーティング・システム122、複合アプリケーション123、及びアプリケーション分析機構124を含む。データ121は、コンピュータ・システム100内のいずれかのプログラムからの入力又はいずれかのプログラムへの出力としての役割を果たすいずれかのデータを表す。オペレーティング・システム122は、マルチタスク型オペレーティング・システムである。複合アプリケーション123は、異なるプログラミング言語で書かれた複数のコンポーネントを含むアプリケーションである。アプリケーション分析機構124は、モデル生成機構125、コンポーネント相互関係規則127、及び規則分析機構128を含む。モデル生成機構125は、複合アプリケーション123を受信し、複合アプリケーションからアプリケーション・モデル126を生成する。アプリケーション・モデル126は、好ましくは、プログラミング言語に応じてコンポーネントをグループ化し、コンポーネント間の相互関係の最良の形態及び最悪の形態を記述するメタデータを含む。コンポーネント相互関係規則127は、満たされるべきコンポーネント間の1つ又は複数の条件と共に、その条件が満たされない場合に行う1つ又は複数のアクションを指定する。規則分析機構128は、コンポーネント相互関係規則127をアプリケーション・モデル126に対して実行し、結果129を出力する。結果129は、統計情報及び警告を含むことがあり、ユーザのディスプレイに出力するか、又はメモリ内若しくは物理媒体上に何らかの電子的形態で格納することができる。結果として、コンポーネント相互関係規則への適合性について複合アプリケーションを自動的に分析するアプリケーション分析機構124が得られる。
コンピュータ・システム100は、コンピュータ・システム100のプログラムが、メイン・メモリ120及びDASDデバイス155のような複数のより小容量のストレージ・エンティティにアクセスする代わりに、大容量で単一のストレージ・エンティティのみにアクセスするように振舞うことを可能にする、周知の仮想アドレス指定機構を利用する。したがって、データ121、オペレーティング・システム122、複合アプリケーション123、及びアプリケーション分析機構124がメイン・メモリ120内に常駐するように示されているが、当業者であれば、これらのアイテムが必ずしも全て同時にメイン・メモリ120内に完全に含まれている必要はないことが分かるであろう。「メモリ」という用語は、本明細書において、コンピュータ・システム100の仮想メモリ全体を総称的に指すのに用いられており、コンピュータ・システム100に結合された他のコンピュータ・システムの仮想メモリを含んでもよいことにもまた留意すべきである。
プロセッサ110は、1つ又は複数のマイクロプロセッサ及び/又は集積回路によって構築することができる。プロセッサ110は、メイン・メモリ120に格納されたプログラム命令を実行する。メイン・メモリ120は、プロセッサ110がアクセスすることができるプログラム及びデータを格納する。コンピュータ・システム100が起動したときには、プロセッサ110は最初に、オペレーティング・システム122を構成するプログラム命令を実行する。プロセッサ110は、アプリケーション分析機構124も実行する。
コンピュータ・システム100は、単一のプロセッサ及び単一のシステム・バスのみを含むように示されているが、当業者であれば、複数のプロセッサ及び/又は複数のバスを有するコンピュータ・システムを用いてアプリケーション分析機構を実施できることが分かるであろう。さらに、用いられるインターフェースは、各々が、プロセッサ110から計算集約的な処理の負荷を軽減するのに用いられる完全にプログラムされた別個のマイクロプロセッサを含むことが好ましい。しかしながら、当業者であれば、I/Oアダプタを用いてこれらの機能を同様に行うことができることが分かるであろう。
ディスプレイ・インターフェース140は、1つ又は複数のディスプレイ165をコンピュータ・システム100に直接接続するのに用いられる。非インテリジェント型(即ちデータ処理能力のない)端末又は完全にプログラム可能なワークステーションとすることができるこれらのディスプレイ165は、システム管理者及びユーザにコンピュータ・システム100と通信する能力を提供するのに用いられる。しかしながら、ディスプレイ・インターフェース140は1つ又は複数のディスプレイ165との通信をサポートするために設けられているが、ユーザ及び他のプロセスとの必要な相互関係は全てネットワーク・インターフェース150を介して行うことができるため、コンピュータ・システム100は、必ずしもディスプレイ165を必要としないことに留意されたい。
ネットワーク・インターフェース150は、ネットワーク170を介してコンピュータ・システム100を他のコンピュータ・システム又はワークステーション175に接続するのに用いられる。ネットワーク・インターフェース150は、ネットワーク170が現在のアナログ及び/又はデジタル技術を含むのか又は将来の何らかのネットワーク機構を介するのかに関わりなく、電子デバイスを相互接続するためのいずれかの適切な手段を広範に表す。ネットワーク・インターフェース150は、好ましくは、ネットワーク170上での通信を可能にするハードウェアとソフトウェアとの組み合わせを含む。ネットワーク・インターフェース150のソフトウェアは、好ましくは、適切なネットワーク・プロトコルを用いた他のコンピュータ・システム175とのネットワーク170経由の通信を管理する通信マネージャを含む。多くの異なるネットワーク・プロトコルを用いて、ネットワークを実装することができる。これらのプロトコルは、コンピュータがネットワーク上で通信することを可能にする専用コンピュータ・プログラムである。TCP/IP(Transmission Protocol/Internet Protocol)は、ネットワーク・インターフェース150内の通信マネージャが用いることができる適切なネットワーク・プロトコルの一例である。
当業者によって認識されるように、本発明の態様は、システム、方法又はコンピュータ・プログラム製品として具体化することができる。従って、本発明の態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロ・コード等を含む)、又はソフトウェアの態様とハードウェアの態様とを組み合わせた実施形態の形を取ることができ、本明細書においては、これらは全て、一般的に、「回路」、「モジュール」又は「システム」と呼ぶことがある。さらに、本発明の態様は、媒体内に具体化されたコンピュータ使用可能プログラム・コードを有する、1つ又は複数のコンピュータ可読媒体内に具体化されたコンピュータ・プログラム製品の形を取ることができる。
1つ又は複数のコンピュータ可読媒体のいずれの組み合わせも利用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体とすることができる。コンピュータ可読ストレージ媒体は、例えば、電子的、磁気的、光学的、電磁気的、赤外線若しくは半導体のシステム、機器若しくは装置、又はこれらのいずれかの適切な組み合わせとすることができるが、これらに限定されるものではない。コンピュータ可読ストレージ媒体のより具体的な例(非網羅的なリスト)として、以下のもの、即ち、1つ又は複数の配線を有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM)、読み出し専用メモリ(ROM)、消去可能なプログラム可能読み出し専用メモリ(EPROM又はフラッシュ・メモリ)、光ファイバ、ポータブル・コンパクト・ディスク読み出し専用メモリ(CD−ROM)、光記憶装置、磁気記憶装置、又はこれらのいずれかの適切な組み合わせが挙げられる。本明細書の文脈においては、コンピュータ可読ストレージ媒体は、命令実行システム、機器若しくは装置によって又はそれらと関連して用いるためのプログラムを収容又は格納することが可能ないずれかの有形媒体とすることができる。
コンピュータ可読信号媒体は、例えばベースバンドに、又は搬送波の一部として、コンピュータ可読プログラム・コードが組み入れられた伝搬データ信号を含むことができる。このような伝搬信号は、電磁気、光又はそれらのいずれかの適切な組み合わせを含むがこれらに限定されない、種々の異なる形態のいずれかを取ることができる。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、かつ、命令実行システム、機器若しくは装置によって又はこれらと関連して用いるためのプログラムを通信し、伝搬し又は搬送することができる、いずれかのコンピュータ可読媒体とすることができる。
コンピュータ可読媒体上に具体化されたプログラム・コードは、無線、有線、光ファイバ・ケーブル、RF等、又はこれらのいずれかの適切な組み合わせを含むがこれらに限定されるものではないいずれかの適切な媒体を用いて、伝送することができる。
本発明の態様についての操作を実行するためのコンピュータ・プログラム・コードは、Java、SmallTalk、C++等のようなオブジェクト指向型プログラミング言語、及び、「C」プログラミング言語又は同様のプログラミング言語のような従来の手続き型プログラミング言語を含む、1つ又は複数のプログラミング言語のいずれかの組み合わせで書くことができる。プログラム・コードは、完全にユーザのコンピュータ上で実行されるか、一部がユーザのコンピュータ上で、独立型ソフトウェア・パッケージとして実行されるか、一部がユーザのコンピュータ上で実行され、一部が遠隔コンピュータ上で実行されるか、又は完全に遠隔コンピュータ若しくはサーバ上で実行される場合がある。最後のシナリオにおいては、遠隔コンピュータは、ローカル・エリア・ネットワーク(LAN)若しくは広域ネットワーク(WAN)を含むいずれかのタイプのネットワークを通じてユーザのコンピュータに接続されるか、又は、(例えば、インターネット・サービス・プロバイダを用いたインターネットを通じて)外部コンピュータへの接続がなされる場合がある。
本発明の態様は、本明細書において、本発明の実施形態による方法、機器(システム)及びコンピュータ・プログラム製品のフローチャート図及び/又はブロック図を参照して説明される。フローチャート図及び/又はブロック図の各ブロック、並びにフローチャート図及び/又はブロック図におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実装できることが理解されるであろう。これらのコンピュータ・プログラム命令を、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能データ処理装置のプロセッサに与えて、マシンを製造し、その結果、コンピュータ又は他のプログラム可能データ処理装置のプロセッサによって実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実施するための手段を生成するようになる。
これらのコンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他の装置を特定の方式で機能させるように指示することができるコンピュータ可読媒体内に格納し、その結果、そのコンピュータ可読媒体内に格納された命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装する命令を含む製品を製造するようになる。
コンピュータ・プログラム命令を、コンピュータ、他のプログラム可能データ処理装置、又は他の装置上にロードして、そのコンピュータ、他のプログラム可能データ処理装置、又は他の装置上で行われる一連の動作ステップによりコンピュータ実装プロセスを生成し、その結果、コンピュータ又は他のプログラム可能装置上で実行される命令が、フローチャート及び/又はブロック図の1つ又は複数のブロックにおいて指定された機能/動作を実装するためのプロセスをもたらすようになる。
図2を参照すると、複合アプリケーション123についての実装例が、言語1のコンポーネント210A、言語2のコンポーネント210B、...、言語Nのコンポーネント210Nとして図2に示される、複数のプログラミング言語で書かれた複数のコンポーネントを含む。複合アプリケーション123は、異なるプログラミング言語のコンポーネントを含むため、既知の静的な分析ツールは、複合アプリケーション123のコンポーネント間の相互関係を分析するには不適当である。
図3を参照すると、アプリケーション・モデル126についての実装例は、複数の言語カテゴリを含むものであり、各々のコンポーネントは、コンポーネントのプログラミング言語に従ってカテゴリ内に配置され、各々のカテゴリは、コンポーネント・タイプ間の相互関係の最良の形態及び最悪の形態を記述するメタデータを含む。相互関係の最良の形態及び最悪の形態を記述するメタデータは、いずれかの適切なソースからのものとすることができるが、好ましくは、Service Component Definition Language(SCDL)から提供される。このように、アプリケーション・モデル126は、好ましくは、図3において言語1 310A、言語2 310B、...、言語N 310Nとして示される複数の言語カテゴリを含む。各々の言語カテゴリは、その言語で書かれた対応するコンポーネントと共に、そのカテゴリ内のコンポーネントと1つ又は複数の異なるカテゴリ内のコンポーネントとの間の相互関係を記述する適切なメタデータを含む。したがって、言語1 310Aは1つ又は複数の対応するコンポーネント320A及びメタデータ330Aを含み、言語2 310Bは1つ又は複数の対応するコンポーネント320B及びメタデータ330Bを含み、以下同様に、1つ又は複数の対応するコンポーネント320N及びメタデータ330Nを含む言語N 310Nまで続く。
アプリケーション・モデル126の1つの具体的な例が、図4においてアプリケーション・モデル126Aとして示される。この特定のアプリケーション・モデルには、6つの異なるカテゴリが存在し、その各々は異なるプログラミング言語に対応する。図4に示される6つのカテゴリは、Business Process Execution Language(BPEL)410、Java420、Mediation Flow Control(Med Flow)430、WebService Definition Language(WSDL)440、eXtensible Markup Language(XML)Schema Document(XSD)450、及びMonitor Model460を含む。アプリケーション・モデル126Aは、示される6つのカテゴリの全てを含む複合アプリケーションのモデルである。図4において示される6つのカテゴリの各々410、420、430、440、450、及び460は、図3において310A、310B、...、310Nとして示される言語の適切な例である。複合アプリケーション内のコンポーネントの各々は、そのコンポーネントのプログラミング言語に従って、カテゴリの1つに割り当てられることになる。さらに、各々のカテゴリは、カテゴリ内のコンポーネントと1つ又は複数の異なるカテゴリ内のコンポーネントとの間の相互関係を記述するメタデータを含む。
図5は、図1に示されるコンポーネント相互関係規則127について1つの適切な実装形態を示す。コンポーネント相互関係規則127は、好ましくは、その各々が条件と対応するアクションとを指定する複数の規則を含む。したがって、規則1 510Aは条件520A及びアクション530Aを含み、規則2 510Bは条件520B及びアクション530Bを含み、以下同様に、条件520N及び対応するアクション530Nを含む規則N 510Nまで続く。各々の規則についての対応するアクションは、分析の結果に警告を付加することを含む場合がある。
図5に示される条件520Aなどの条件の1つの適切な実装形態が図6に示される。条件520Aは、好ましくは、第1の言語610と、第2の言語620と、言語間の何らかの相互関係630とを指定する。1つの具体的な実装形態においては、相互関係630は望ましい相互関係(最良の形態)であり、条件520Aが満たされない場合には、コンポーネント間の望ましい相互関係が存在しなかったことを示す警告が分析結果に付加されることになる。代替的な実装形態においては、相互関係630は望ましくない相互関係(最悪の形態)であり、条件520が満たされる場合には、コンポーネント間の望ましくない相互関係が存在することを示す警告が分析結果に付加されることになる。図5及び図6において示されるコンポーネント相互関係規則並びにその対応する条件及びアクションの例は、一例として示されており、限定的なものではない。本明細書における本開示及び特許請求の範囲は、複合アプリケーションに対応するアプリケーション・モデルに対して実行することができる、あらゆる適切なコンポーネント相互関係規則にまで明確に及ぶ。
図7を参照すると、方法700は、好ましくは、1つ又は複数のプロセッサ110によって実行されたときに、アプリケーション分析機構124によって行われる。最初に、コンポーネント相互関係規則が定められる(ステップ710)。1つの特定の実装形態においては、コンポーネント相互関係規則はユーザである人間によって定められる。しかしながら、コンポーネント相互関係規則はソフトウェアによって定めることもできる。例えば、規則生成機構が、証明済みのロバストな複合アプリケーションのコンポーネント間の相互関係を分析して、1つ又は複数のコンポーネント相互関係規則を自動的に生成することができる。コンポーネント相互関係規則は、ユーザである人間によって定められる規則とコンピュータ・プロセスによって自動的に生成される規則の両方にまで明確に及ぶ。
ステップ710において規則が定められると、複合アプリケーションが受信される(ステップ720)。次いで複合アプリケーションのモデルが生成される(ステップ730)。図3及び図4を参照して上述されたように、アプリケーション・モデルは、好ましくは、各々が異なるプログラミング言語に対応する複数のカテゴリを含み、各コンポーネントは、コンポーネントのプログラミング言語に従ってカテゴリ内に配置され、それと共に、各カテゴリは、そのカテゴリ内のコンポーネントと1つ又は複数の異なるカテゴリ内のコンポーネントとの間の相互関係を記述するメタデータを含む。次いで、コンポーネント相互関係規則が選択される(ステップ740)。選択されたコンポーネント相互関係規則がモデルに対して実行される(ステップ750)。結果が生成される(ステップ760)。処理する規則がさらに存在するとき(ステップ770=はい)には、方法700は、再びステップ740に戻り、処理する規則がそれ以上存在しなくなるまで続き(ステップ770=いいえ)、存在しなくなった時点で結果が出力され(ステップ780)、方法700は完了する。ステップ760において生成される結果及び/又はステップ780において出力される結果は、複合アプリケーションについての統計情報と警告とを含むことができることに留意されたい。
適切なコンポーネント相互関係規則の具体的な例が図8−図10に示される。図8−図10におけるコンポーネント相互関係規則810、910、及び1010は、図1及び図5において示されるコンポーネント相互関係規則127の具体的な例である。図8において示されるコンポーネント相互関係規則810は、遅延結合に関し、これは最良の形態を表す。第1行820はプログラミング構造をSCDLで指定し、一方、第2行830はビジネス・プロセスをBPELで指定している。行840における条件が満たされたときに、行850においてプール変数setEarlyBoundがtrueにセットされ、行860において、BPELの新しいバージョンが自動的にピックアップされていないことの警告が結果に付加される。
例2
適切なコンポーネント相互関係規則の別の例910が図9に示されており、これは呼び出し問題を扱うものである。第1行920はSCDLのComponentステートメントであり、一方、第2行930はBPELファイルを呼び出すJavaステートメントである。行940及び950は、条件が満たされるかどうかを調べるテストを行い、満たされる場合には、行960において第1の警告を付加することができ、行970において第2の警告を付加することができる。この規則の論理は、JavaファイルがBPELコンポーネントを呼び出す場合には、そのBPELコンポーネントとは実行時に非同期的に対話すべきであることと、エラーが発生した場合には、バックエンド・システムが、外部からの修復を要する不整合状態になっている可能性があり、従って、適切な警告が結果に付加されることを示している。
例3
適切なコンポーネント相互関係規則の第3の例1010が図10に示されており、これは呼び出し形式を扱うものである。この規則は、同じ言語、即ちSCDLによって定められた2つのコンポーネントを有するが、いずれもXMLを用いて定められた2つの異なるスキーマ、即ちComponent及びImportに従うものであることに留意されたい。行1020は各コンポーネントを取得することを指定し、行1030においてそのコンポーネントについての実装タイプがJavaである場合には、行1040においてインポートが選択され、行1050における各々のインポートについて、行1060においてそのインポートがトランザクションを結合しない場合には、バックエンド・システムが最終的に矛盾した状態になる可能性があるため、行1070において警告が付加される。
図7のステップ760において生成され、ステップ780において出力される例示的な結果(Results)が、例示的な複合アプリケーションについて、図11及び図12における1100として示される。結果には、図11に示されるように、複合アプリケーションに関する多くの異なるパラメータの明細事項が含まれる。結果には、図12に示されるように、複合アプリケーションを特徴付ける統計情報(Statistics)を含むこともできる。図12に示される具体的な統計情報は、WSDL当たりの平均演算数、WSDL当たりの平均障害数、演算当たりの平均障害数、XSD毎の平均フィールド数、XSD当たりの平均ビジネス・オブジェクト(BO)数、BO当たりの平均フィールド数、及びBPEL当たりの平均アクティビティ数を含む。結果には、図12に示されるように、1つ又は複数の警告(Warnings)が含まれることもある。種々の警告は、コンポーネント相互関係規則内の条件が結果に警告を付加することを指定しているときに、結果に付加される。図11及び図12における結果1100は、好ましくは、人であるプログラマに対して表示され、プログラマは、統計情報及び警告を用いて、複合アプリケーションが予測される通りに動作するかどうかを判断することができる。当然のことながら、統計情報及び警告はまた、コンポーネント相互関係規則に適合するようにコンポーネントの特定の変更を推奨することができる自動化されたプロセスによって、用いることもできる。
本開示及び特許請求の範囲は、異なる言語で書かれたコンポーネント間で満たされるべき1つ又は複数の条件と条件の分析に応じて行われるアクションとを定めるコンポーネント相互関係規則の組への適合性について、異なるプログラミング言語で書かれたコンポーネントを含む複合アプリケーションを自動的に分析する手法を開示する。複合アプリケーションのモデルが生成され、そのモデルに対して規則が実行される。複合アプリケーションについての統計情報及び警告を含むことがある結果が出力される。複合アプリケーションの自動分析は、人的誤りを起こしやすいプロセスの大部分を取り除き、複合アプリケーションを分析するための一貫した手法を提供して、異なるプログラミング言語で書かれたコンポーネント間の相互関係がコンポーネント相互関係規則を満たすことを保証する。
当業者であれば、特許請求の範囲内で多くのバリエーションが可能であることを認識するであろう。従って、本開示は、上記で具体的に示され説明されたが、当業者であれば、添付の特許請求の真意及び範囲から逸脱することなく形態及び細部におけるこれらの変更及び他の変更を本開示に対して為し得ることが理解されるであろう。
本発明は、コンポーネント間の相互関係を指定する規則の組への適合性について複合アプリケーションを自動分析することに利用可能である。

Claims (16)

  1. 少なくとも1つのプロセッサと、
    前記少なくとも1つのプロセッサに結合されたメモリと、
    前記メモリに常駐する複合アプリケーションであって、前記複合アプリケーションは、複数の異なるプログラミング言語で書かれた複数のコンポーネントを含む、複合アプリケーションと、
    前記メモリに常駐する複数のコンポーネント相互関係規則であって、前記コンポーネント相互関係規則の各々は、異なるプログラミング言語のコンポーネント間の少なくとも1つの条件と前記少なくとも1つの条件が満たされるかどうかに応じて行われる少なくとも1つのアクションとを含む、複数のコンポーネント相互関係規則と、
    前記メモリに常駐し、前記少なくとも1つのプロセッサによって実行されるアプリケーション分析機構であって、前記アプリケーション分析機構は、前記複合アプリケーションのアプリケーション・モデルを生成し、前記複数のコンポーネント相互関係規則への適合性について前記アプリケーション・モデルを分析し、前記複数のコンポーネント相互関係規則への適合性について前記アプリケーション・モデルを分析した結果を出力する、アプリケーション分析機構と、
    を含み、
    前記アプリケーション・モデルは、プログラミング言語に従って複数のカテゴリに分離された前記複合アプリケーション内の前記複数のコンポーネントを含む装置。
  2. 前記少なくとも1つのアクションは、前記結果に警告を付加することを含む、請求項1に記載の装置。
  3. 前記結果は、前記複合アプリケーションについての統計情報と少なくとも1つの警告とを含む、請求項1に記載の装置。
  4. 前記アプリケーション・モデルは、前記複数のカテゴリのうちの第1のカテゴリにおけるコンポーネントと前記複数のカテゴリのうちの第2のカテゴリにおけるコンポーネントとの間の相互関係を記述するメタデータをさらに含む、請求項に記載の装置。
  5. 前記少なくとも1つの条件は、2つのプログラミング言語と前記2つのプログラミング言語の間の相互関係とを指定する、請求項1に記載の装置。
  6. 複数の異なるプログラミング言語で書かれた複数のコンポーネントを含む複合アプリケーションを分析するためのコンピュータ実装方法であって、
    前記方法は、
    少なくとも1つのプロセッサを準備するステップと、
    前記少なくとも1つのプロセッサに結合されたメモリを準備するステップと、
    前記メモリに常駐する複数のコンポーネント相互関係規則を準備するステップであって、前記コンポーネント相互関係規則の各々は、異なるプログラミング言語のコンポーネント間の少なくとも1つの条件と前記少なくとも1つの条件が満たされるかどうかに応じて行われる少なくとも1つのアクションとを含む、ステップと、
    を含み、
    前記少なくとも1つのプロセッサは、
    前記複合アプリケーションを受信するステップと、
    前記複合アプリケーションのアプリケーション・モデルを生成するステップと、
    前記複数のコンポーネント相互関係規則への適合性について前記アプリケーション・モデルを分析するステップと、
    前記複数のコンポーネント相互関係規則への適合性について前記アプリケーション・モデルを分析した結果を出力するステップと、
    を行
    前記アプリケーション・モデルは、プログラミング言語に従って複数のカテゴリに分離された前記複合アプリケーション内の前記複数のコンポーネントを含む、方法。
  7. 前記少なくとも1つのアクションは、前記結果に警告を付加することを含む、請求項に記載の方法。
  8. 前記結果は、前記複合アプリケーションについての統計情報と少なくとも1つの警告とを含む、請求項に記載の方法。
  9. 前記アプリケーション・モデルは、前記複数のカテゴリのうちの第1のカテゴリにおけるコンポーネントと前記複数のカテゴリのうちの第2のカテゴリにおけるコンポーネントとの間の相互関係を記述するメタデータをさらに含む、請求項に記載の方法。
  10. 前記少なくとも1つの条件は、2つのプログラミング言語と前記2つのプログラミング言語の間の相互関係とを指定する、請求項に記載の方法。
  11. 複数の異なるプログラミング言語で書かれた複数のコンポーネントを含む複合アプリケーションを分析するためのコンピュータ実装方法であって、
    前記方法は、
    少なくとも1つのプロセッサを準備するステップと、
    前記少なくとも1つのプロセッサに結合されたメモリを準備するステップと、
    前記メモリに常駐する複数のコンポーネント相互関係規則を準備するステップであって、前記コンポーネント相互関係規則の各々は、異なるプログラミング言語のコンポーネント間の少なくとも1つの条件と前記少なくとも1つの条件が満たされるかどうかに応じて行われる少なくとも1つのアクションとを含む、ステップと、
    を含み、
    前記少なくとも1つのプロセッサは、
    前記複合アプリケーションを受信するステップと、
    プログラミング言語に従って複数のカテゴリに分離された前記複合アプリケーション内の前記複数のコンポーネントを含む、前記複合アプリケーションのアプリケーション・モデルを生成するステップであって、前記複数のカテゴリの各々は、異なるカテゴリにおけるコンポーネント間の相互関係を記述するメタデータを含む、ステップと、
    前記複数のコンポーネント相互関係規則への適合性について前記アプリケーション・モデルを分析するステップと、
    前記複数のコンポーネント相互関係規則への適合性について前記アプリケーション・モデルを分析した結果を出力するステップであって、前記結果は、前記複合アプリケーションについての統計情報と少なくとも1つの警告とを含む、ステップと、
    を行う、方法。
  12. 有形のストレージ媒体上に格納されるコンピュータ・プログラムであって、コンピュータを、
    複数の異なるプログラミング言語で書かれた複数のコンポーネントを含む複合アプリケーションのアプリケーション・モデルを生成し、異なるプログラミング言語のコンポーネント間の少なくとも1つの条件と前記少なくとも1つの条件が満たされるかどうかに応じて行われる少なくとも1つのアクションとを各々が含む複数のコンポーネント相互関係規則への適合性について、前記アプリケーション・モデルを分析し、前記複数のコンポーネント相互関係規則への適合性について前記アプリケーション・モデルを分析した結果を出力する、アプリケーション分析機構として機能させ
    前記アプリケーション・モデルは、プログラミング言語に従って複数のカテゴリに分離された前記複合アプリケーション内の前記複数のコンポーネントを含む、コンピュータ・プログラム
  13. 前記少なくとも1つのアクションは、前記結果に警告を付加することを含む、請求項12に記載のコンピュータ・プログラム
  14. 前記結果は、前記複合アプリケーションについての統計情報と少なくとも1つの警告とを含む、請求項12に記載のコンピュータ・プログラムソフトウェア。
  15. 前記アプリケーション・モデルは、前記複数のカテゴリのうちの第1のカテゴリにおけるコンポーネントと前記複数のカテゴリのうちの第2のカテゴリにおけるコンポーネントとの間の相互関係を記述するメタデータをさらに含む、請求項12に記載のコンピュータ・プログラム
  16. 前記少なくとも1つの条件は、2つのプログラミング言語と前記2つのプログラミング言語の間の相互関係とを指定する、請求項12に記載のコンピュータ・プログラム
JP2013510818A 2010-10-11 2011-09-01 複合アプリケーションの自動分析 Expired - Fee Related JP5568177B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/901,847 2010-10-11
US12/901,847 US8839197B2 (en) 2010-10-11 2010-10-11 Automated analysis of composite applications
PCT/JP2011/004901 WO2012049802A1 (en) 2010-10-11 2011-09-01 Automated analysis of composite applications

Publications (2)

Publication Number Publication Date
JP2013542474A JP2013542474A (ja) 2013-11-21
JP5568177B2 true JP5568177B2 (ja) 2014-08-06

Family

ID=45926121

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013510818A Expired - Fee Related JP5568177B2 (ja) 2010-10-11 2011-09-01 複合アプリケーションの自動分析

Country Status (5)

Country Link
US (2) US8839197B2 (ja)
JP (1) JP5568177B2 (ja)
CN (1) CN103154905B (ja)
DE (1) DE112011103428T5 (ja)
WO (1) WO2012049802A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9589129B2 (en) 2012-06-05 2017-03-07 Lookout, Inc. Determining source of side-loaded software
US9407443B2 (en) 2012-06-05 2016-08-02 Lookout, Inc. Component analysis of software applications on computing devices
US9021091B2 (en) 2012-10-15 2015-04-28 International Business Machines Corporation Transaction middleware based application level transaction instance tracking across a composite application
US9763022B2 (en) 2013-10-14 2017-09-12 International Business Machines Corporation Automatic system and method for conversion of smart phone applications to basic phone applications
KR102363433B1 (ko) 2015-01-15 2022-02-16 삼성전자주식회사 이미지 센서
US9705973B2 (en) 2015-04-29 2017-07-11 International Business Machines Corporation Release and management of composite applications on PaaS
EP3289510B1 (en) 2015-05-01 2020-06-17 Lookout Inc. Determining source of side-loaded software
KR101745808B1 (ko) * 2015-12-31 2017-06-28 엔에이치엔엔터테인먼트 주식회사 서버측 로직의 모듈화를 위한 모듈 처리 방법 및 시스템
US10218697B2 (en) 2017-06-09 2019-02-26 Lookout, Inc. Use of device risk evaluation to manage access to services
US10725745B2 (en) * 2018-05-24 2020-07-28 Walmart Apollo, Llc Systems and methods for polyglot analysis
FR3091106B1 (fr) 2018-12-20 2021-02-12 Commissariat Energie Atomique Système de supervision formelle de communications

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5694539A (en) * 1994-08-10 1997-12-02 Intrinsa Corporation Computer process resource modelling method and apparatus
US7483901B1 (en) * 2003-09-10 2009-01-27 Nextaxiom Technology, Inc. System and method for data transfer between two or more connected software services
US8271541B2 (en) * 2004-03-31 2012-09-18 Fusionops Corporation Method and apparatus for developing composite applications
US8219975B2 (en) * 2007-10-26 2012-07-10 Microsoft Corporation Real-time analysis of performance data of a video game
EP2071452A1 (en) * 2007-12-07 2009-06-17 Alcatel Lucent Device and method for automatically building applications from specifications and from off-the-shelf components selected by semantic analysis
US8321841B2 (en) * 2008-01-08 2012-11-27 International Business Machines Corporation Validation framework for service oriented architecture (SOA) application adoption
US8245191B2 (en) 2008-07-03 2012-08-14 International Business Machines Corporation Policy application rules for automated configuration of software components
US9836282B2 (en) * 2008-08-08 2017-12-05 Entit Software Llc Separation of concerns between information technology services models
US8887124B2 (en) * 2009-09-30 2014-11-11 Sap Se Validation of process models
US8898627B2 (en) * 2010-05-11 2014-11-25 Smartshift Gmbh Systems and methods for applying rules to transform objects of an application

Also Published As

Publication number Publication date
DE112011103428T5 (de) 2013-07-18
WO2012049802A1 (en) 2012-04-19
US8839197B2 (en) 2014-09-16
US20120089963A1 (en) 2012-04-12
JP2013542474A (ja) 2013-11-21
US20130125095A1 (en) 2013-05-16
CN103154905A (zh) 2013-06-12
US8839198B2 (en) 2014-09-16
CN103154905B (zh) 2016-06-01

Similar Documents

Publication Publication Date Title
JP5568177B2 (ja) 複合アプリケーションの自動分析
US11580680B2 (en) Systems and interactive user interfaces for dynamic retrieval, analysis, and triage of data items
JP6678780B2 (ja) プロセス視覚化プラットフォーム
US8707275B2 (en) Simulation environment for distributed programs
US20200328952A1 (en) Distributed Tracing for Application Performance Monitoring
US9858091B2 (en) Generating customized on-demand videos from automated test scripts
US8307327B2 (en) Using customizable templates to retrieve and display a system configuration topology graph
JP2018014130A (ja) ビジネス活動監視ランタイム
US9015608B2 (en) Regenerating a user interface area
CN108595316A (zh) 分布式应用的生命周期管理方法、管理器、设备和介质
US11526413B2 (en) Distributed tracing of huge spans for application and dependent application performance monitoring
US8296723B2 (en) Configurable unified modeling language building blocks
CN111078761A (zh) 数据探查方法、装置、设备及存储介质
CN115576817A (zh) 一种自动化测试系统、方法、电子设备及存储介质
US20230063753A1 (en) Testing virtual reality integration with a development environment
CN110555732B (zh) 一种营销策略推送方法、装置及营销策略运营平台
US20170300937A1 (en) System and method for inferring social influence networks from transactional data
CN111176944A (zh) 区块链智能合约调用记录解析方法、装置、终端和存储介质
CN110806969A (zh) 一种测试用例完整度评估方法、装置及电子设备
CN104424525B (zh) 辅助确定项目范围的方法和装置
CN115617874A (zh) 数据分析系统、方法、电子设备和计算机可读介质
JP2020514907A (ja) プロセス定義およびプロセス実行トラッキングのためのユーザインターフェイスおよびランタイム環境
CN117193990B (zh) http接口的调度管理方法、装置、设备及存储介质
US11921620B2 (en) Generating a visualization of blocks of code statements related to errors in a log file
CN115391199A (zh) 一种程序开发和运维系统、方法、计算机设备和存储介质

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140204

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140502

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: 20140603

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140620

R150 Certificate of patent or registration of utility model

Ref document number: 5568177

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees