JP2012018675A - アプリケーション分析用のデータベースモデルを生成するシステム及び方法 - Google Patents

アプリケーション分析用のデータベースモデルを生成するシステム及び方法 Download PDF

Info

Publication number
JP2012018675A
JP2012018675A JP2011150153A JP2011150153A JP2012018675A JP 2012018675 A JP2012018675 A JP 2012018675A JP 2011150153 A JP2011150153 A JP 2011150153A JP 2011150153 A JP2011150153 A JP 2011150153A JP 2012018675 A JP2012018675 A JP 2012018675A
Authority
JP
Japan
Prior art keywords
database
application
stubs
data
computer
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
JP2011150153A
Other languages
English (en)
Inventor
I Tkachuk Oksana
アイ トカチュク・オクサナ
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JP2012018675A publication Critical patent/JP2012018675A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/211Schema design and management
    • G06F16/212Schema design and management with details for data modelling support
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Data Mining & Analysis (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】
データベースアプリケーションの分析用のデータベースモデルを生成するシステム及び方法を提供する。
【解決手段】
本発明の特定の一実施形態によれば、データベースモデルを生成する方法は、データベースのデータベース設定データを分析することを含む。当該方法はまた、前記データベースにアクセスするための1つ以上のデータベース・アプリケーション・プログラミング・インタフェースを分析することを含む。当該方法は更に、前記分析に基づいて1つ以上のスタブを生成することを含み、該1つ以上のスタブは、実行されたときに、前記データベースにデータが投入されているかのように前記データベースをモデル化するよう構成される。
【選択図】 図3

Description

この開示は概して、ソフトウェア検証の分野に関し、より具体的にはデータベースアプリケーションの分析用のデータベースモデルを生成するシステム及び方法に関する。
正規の検証技術は通常、閉じた、同種環境の(ホモジニアスな)非分散型アプリケーションに対して正常に機能する。例えば、一例に係る言語としてJava(登録商標)を、そして一例に係る検証方法としてモデル検査を考えると、Javaモデル検査技術は、純粋にJavaで記述され且つ単一のJava仮想マシン(JVM)上で実行されるよう整えられた自己実行可能なプログラムに有効である。しかしながら、例えばウェブアプリケーションといった、開いた、異種環境の(ヘテロジニアスな)、事実上分散型のアプリケーションであって、1)エンドユーザによって推進され、2)数多くの言語(例えば、Java、JavaScript、HTML、及びXML)で記述された中間生成物を有し、且つ/或いは3)潜在的に相異なるマシン上に存在し得るクライアント、サーバ及びデータベースを備えた分散環境にて展開されるアプリケーション、が数多く存在する。Javaモデル検査技術を適用するためには、全ての非Javaコンポーネント(ユーザを含む)が純粋なJava実装(Java implementation)として表される必要がある。さらに、アプリケーションの分散性は、得られるJavaプログラムが非分散型ではあるが元のアプリケーションの全ての関連挙動を保存するように対処される必要がある。全てのこのような処理作業と同様に、速さ、正確さ及び自動化に関する問題も非常に重要である。
開示の技術は、先行技術に係る方法及びシステムに伴う欠点及び問題のうちの少なくとも一部を実質的に排除あるいは抑制することが可能な、データベースアプリケーションの分析用のデータベースモデルを生成するシステム及び方法を提供する。
本発明の特定の一実施形態によれば、データベースモデルを生成する方法は、データベースのデータベース設定データを分析することを含む。当該方法はまた、前記データベースにアクセスするための1つ以上のデータベース・アプリケーション・プログラミング・インタフェースを分析することを含む。当該方法は更に、前記分析に基づいて1つ以上のスタブを生成することを含み、該1つ以上のスタブは、実行されたときに、前記データベースにデータが投入されているかのように前記データベースをモデル化するよう構成される。
例えばモデル検査、記号的実行、静的分析及びテスティングなどの複数の技術によって使用されることが可能なテストハーネスと言い得るような、データベースをモデル化するスタブが生成される。
その他の技術的効果が、以下の詳細な説明、特許請求の範囲及び図面から、当業者に明らかになる。なお、特定の効果を上述したが、様々な実施形態は、上述の効果の全て若しくは一部を含むこともあるし、上述の効果を含まないこともあり得る。
本発明の特定の実施形態及びその利点の一層完全なる理解のため、以下の詳細な説明を、以下の図を含む図面とともに参照する。
この開示の特定の実施形態に従ったウェブアプリケーションドメインの一例を示す簡略ブロック図である。 この開示の特定の実施形態に従ったウェブアプリケーションの環境生成の一例を示す簡略ブロック図である。 この開示の特定の実施形態に従った、データベーススタブ生成モデルを有するスタブ生成システムを例示する簡略ブロック図である。 この開示の特定の実施形態に従った、ファイルデータベース設定ファイルの一例と、そのようなデータベース設定ファイルに基づいて生成されたスタブのコードとを示す図である。 この開示に従ったコンピュータシステムの一例を示す図である。
図1は、この開示の特定の実施形態に従ったウェブアプリケーションドメイン10の一例を示す簡略図である。図1は、クライアント12、データベース18、及びサーバ14(例えば、J2EEサーバ)を含んでいる。ウェブアプリケーションドメイン10の構成要素は、例えば図5を参照して更に詳細に後述するコンピュータシステムなどの1つ以上のコンピュータシステム内で実行あるいは動作する。
この開示によれば、ウェブアプリケーション用の環境生成(environment generation)が創出され得る。環境生成の創出の一例に係る方法は、米国特許出願第11/865435号に記載されている。なお、この文献の全体をここに援用する。その方法は、特にJavaで記述された開いたヘテロジニアスな分散型ウェブアプリケーションを、正規の検証技術(例えば、Javaモデル検査など)によって分析される準備の整った、閉じたホモジニアスな非分散型Javaプログラムに変換することができる。
この技術は、ドライバ及びスラブの生成を提供する。ドライバ生成は、配備時に行われる、ウェブアプリケーションのイベント処理機構を構築するとともに、ユーザコンポーネントのJava実装を作成する。スタブ生成は、例えばデータベースコンポーネント及びJ2EEコンポーネントなどの実際のコンポーネントを、重要な挙動を保存するが非分散型プログラムにて実行されるJava実装で置き換えることができる。ドライバ及びスタブが生成されると、それらは元のアプリケーション特有のコードベース(元のライブラリを除く)と組み合わされ、閉じたホモジニアスな非分散型Javaプログラムが作成される。
このような手法を用いることには数多くの利点が存在する。例えば、提供される方法は、独立型(スタンドアロン)ツールとしてパッケージ化されることができる。さらに、これらのツールは、特定のドメインに基づいて設定及び拡張を施されることができる。故に、これらのツールは多様なアプリケーションに適用されることが可能である。また、この方法は、例えばモデル検査、静的分析及びテスティングなどの複数の技術によって使用可能なテストハーネスと言い得るドライバ及びスタブを生み出す。
図1を再び参照するに、用語‘開いた’は、ユーザコンポーネントが、ウェブブラウザ、アプレット又はグラフィカルユーザインタフェース(GUI)を介してアプリケーションを押し進める状況を意味する。用語‘ヘテロジニアス(異種環境)’は、Javaに加えて、例えばHTML、JavaScript、PHP、Perlなどの数多くのその他の言語が使用されることを意味する。本発明の状況において、‘複合’は、アプリケーションの主要部がデプロイメント記述子ファイルに従って配備時に生成される、典型的に事実上分散される多階層技術を暗示する。
このような方法は、特にJavaで記述された開いたヘテロジニアスな分散型ウェブアプリケーションから、閉じたホモジニアスな非分散型Javaアプリケーションを生成し得る。このようなアプリケーション用の環境生成は、モデル検査、静的分析及びテスティングと組み合わせて使用されることが可能な独立型ツールとしてパッケージ化されることができる。開いたヘテロジニアスな分散型ウェブアプリケーションをモデル検査するためのこのような環境生成は、既存のシステムでは現状において明らかにされていない。
Javaクラス(例えば、再使用可能なライブラリを除くアプリケーション特有コードベース)の集合として被分析モジュールが与えられると、環境生成は該モジュールのドライバ及びスタブを作成する。ドライバは、制御のスレッドを保持するJavaクラスであり、通常、該モジュールにコールをかける。残りの環境クラスはスタブと呼ばれる。ウェブアプリケーションのドメインにおいて、ドライバはエンドユーザをシミュレートし、スタブは例えばデータベース及びJ2EEライブラリなどのバックエンドコンポーネントをモデル化する。
図2は、この開示の特定の実施形態に従ったウェブアプリケーションの環境生成の一例を示す簡略ブロック図である。図2は、一組のドライバ26、モジュール30(例えば、ウェブアプリケーションの実行をシミュレートするサーブレット、エンタープライズJavaビーンズ(EJB)及び/又はその他のコンポーネントを含み得る)、及び一組のスタブ34(例えば、データベース18などのデータベースをモデル化するためのjava.sqlコンポーネント及び/又はその他の好適なコンポーネントを含み得る)を含んでいる。モジュール30は、本発明の処理を実行するために必要なアイテムを含み得るデータベースに結合される。環境生成20の構成要素は、例えば図5を参照して更に詳細に後述するコンピュータシステムなどの1つ以上のコンピュータシステム内で実行あるいは動作し得る。
典型的にウェブアプリケーションの開発者によって記述されるコードであるアプリケーションコードが、図2のモジュール30内に含められ得る。ドライバ26は、配備時に発生するアイテム(例えば、アプリケーションのイベントハンドラを設定すること)及びユーザアクションをシミュレートし得る。ドライバ26の生成は、この開示の範囲を超える事項であり、ドライバ26の生成方法は、同時継続中の米国特許出願第11/865435号にて議論されている。
図3は、この開示の特定の実施形態に従った、データベーススタブ生成モジュール50を有するデータベーススタブ34の生成システム40を例示する簡略ブロック図である。システム40の構成要素は、例えば図5を参照して更に詳細に後述するコンピュータシステムなどの1つ以上のコンピュータシステム内で実行あるいは動作し得る。図3に示すように、データベーススタブ生成モジュール50は、データベース設定データ42とデータベースAPI44とを分析し、該分析に基づいてスタブ34を生成し得る。
データベース設定データ42は、データベース(例えば、データベース18)の設定パラメータを説明する如何なるファイルであってもよい。設定パラメータは、データベースに関する如何なる情報(例えば、そのテーブル、コラム、及び保持するデータエントリの種類)を含んでいてもよい。一部の実施形態において、設定パラメータは、例えば図4の設定データ42に示されるような1つ以上の拡張マークアップ言語(XML)ファイルにて具現化され得る。
データベースAPI44は、ウェブアプリケーション(例えば、サーバ14上で実行されるように構成されたウェブアプリケーション)がデータベース関連機能(例えば、データベースからテーブルを取得する機能、データベースからコラム若しくはローを取得する機能、データベースに書き込む機能など)を実行することを可能にするソフトウェアによって実装される1つ以上のアプリケーション・プログラミング・インタフェースとし得る。特定の実施形態において、データベースAPIは、1つ以上のSQL(Structured Query Language)データベースを有し得る。
上述のように、データベーススタブ生成モジュール50は、データベース設定データ42とデータベースAPI44とを分析し、該分析に基づいてスタブ34を生成し得る。例えば、図4に示すように、データベース設定データ42は、“login”と呼ぶテーブル(table)を含むデータベースを記述する。テーブル“login”は、“loginid”と呼ぶフィールドと“passwd”と呼ぶフィールドとを有している。データベーススタブ生成モジュール50は、設定データ42を分析し、“login”なるタイプのレコードを保持する“login”と呼ぶテーブルを投入されたデータベースを有するスタブ34を作成し得る。データベースのデータ値(例えば、“loginid”及び“passwd”)は、具体値(例えば、“loginid0”及び“passwd0”)を用いて、あるいは記号値(例えば、STRING_SYMBOLIC)を用いて生成される。記号値は記号的実行技術によって解釈されることができ、次いで記号的実行技術によって興味ある具体値が生成され得る。
データベーススタブ生成モジュール50は、例えば、データタイプ当たり作成すべきレコード数や、生成すべきデータ値のタイプ(例えば、具体的又は記号的)などといったユーザ提供値によってパラメータ化されてもよい。
このようなシナリオにて、ウェブアプリケーション用の有利な環境生成技術が提供され得る。分散されたオープンシステム(必ずしもJavaで記述される必要はなく、その他の言語も容易に使用され得る)は、該データを以下のように変換することができる。すなわち、最終結果が、例えばモデル検査、記号的実行、静的分析及びテスティングなどの既存のJava分析技術によって実行されるように準備された、ホモジニアスで非分散型の純粋なJavaプログラムになるように、該データを変換することができる。
図5は、一例に係るコンピュータシステム600を示している。特定の実施形態において、1つ以上のコンピュータシステム600が、ここに記載あるいは図示した1つ以上の方法の1つ以上のステップを実行する。特定の実施形態において、1つ以上のコンピュータシステム600が、ここに記載あるいは図示した機能を提供する。特定の実施形態において、1つ以上のコンピュータシステム600上で実行されるソフトウェアが、ここに記載あるいは図示した1つ以上の方法の1つ以上のステップを実行し、あるいは、ここに記載あるいは図示した機能を提供する。特定の実施形態は、1つ又は複数のコンピュータシステム600の1つ以上の部分を含む。
この開示は、如何なる好適な数のコンピュータシステム600をも意図している。この開示は、如何なる物理形態を採るコンピュータシステム600をも意図している。非限定的な一例として、コンピュータシステム600は、組込型コンピュータシステム、システム・オン・チップ(SOC)、シングルボード・コンピュータシステム(SBC)(例えば、コンピュータ・オン・モジュール(COM)若しくはシステム・オン・モジュール(SOM)など)、デスクトップ型コンピュータシステム、ラップトップ型若しくはノート型のコンピュータシステム、対話式キオスク端末、メインフレーム、メッシュ状コンピュータシステム、携帯電話、携帯情報端末(PDA)、サーバ、又はこれらの2つ以上の組み合わせとし得る。必要に応じて、コンピュータシステム600は、単一あるいは分散型の;複数の位置にまたがる;複数の機械にまたがる;あるいはクラウド(1つ以上のネットワーク内に1つ以上のクラウド要素を含み得る)内の;1つ以上のコンピュータシステム600を含んでいてもよい。必要に応じて、1つ以上のコンピュータシステム600は、ここに記載あるいは図示した1つ以上の方法の1つ以上のステップを、空間的あるいは時間的な実質的な制約なく実行し得る。非限定的な一例として、1つ以上のコンピュータシステム600は、ここに記載あるいは図示した1つ以上の方法の1つ以上のステップを、リアルタイムあるいはバッチモードで実行し得る。必要に応じて、1つ以上のコンピュータシステム600は、相異なる時点で、あるいは相異なる位置で、ここに記載あるいは図示した1つ以上の方法の1つ以上のステップを実行してもよい。
特定の実施形態において、コンピュータシステム600は、プロセッサ602、メモリ604、ストレージ606、入力/出力(I/O)インタフェース608、通信インタフェース610、及びバス612を含んでいる。この開示は、特定の構成にされた特定数の特定の構成要素を有する特定のコンピュータシステムを図示して説明しているが、この開示は、如何なる好適配置にされた如何なる好適数の如何なる好適構成要素を有する如何なる好適なコンピュータシステムをも意図している。
特定の実施形態において、プロセッサ602は、例えばコンピュータプログラムを構築する命令などの命令を実行するハードウェアを含む。非限定的な一例として、命令を実行するために、プロセッサ602は、内部レジスタ、内部キャッシュ、メモリ604、又はストレージ606から命令を取り出し(すなわち、フェッチし);それを復号化して実行し;その後、1つ以上の結果を内部レジスタ、内部キャッシュ、メモリ604、又はストレージ606に書き込み得る。特定の実施形態において、プロセッサ602は、データ、命令又はアドレス用の1つ以上の内部キャッシュを含み得る。この開示は、プロセッサ602が必要に応じて、如何なる好適数の如何なる好適な内部キャッシュを含むことをも意図している。非限定的な一例として、プロセッサ602は、1つ以上の命令キャッシュと、1つ以上のデータキャッシュと、1つ以上のトランスレーション・ルックアサイド・バッファ(TLB)とを含み得る。命令キャッシュ内の命令は、メモリ604又はストレージ606内の命令の複製としてもよく、命令キャッシュは、プロセッサ602によるこれら命令の取り出しを高速化し得る。データキャッシュ内のデータは、メモリ604又はストレージ606内の、プロセッサ602にて実行されている命令が処理すべきデータの複製;プロセッサ602にて実行される後続の命令によるアクセスのための、あるいはメモリ604又はストレージ606に書き込むための、プロセッサ602にて実行された以前の命令の結果;又はその他の好適データとし得る。データキャッシュは、プロセッサ602による読み出し処理又は書き込み処理を高速化し得る。TLBは、プロセッサ602のために仮想アドレス変換を高速化し得る。特定の実施形態において、プロセッサ602は、データ、命令又はアドレス用の1つ以上の内部レジスタを含み得る。この開示は、プロセッサ602が適宜、如何なる好適数の如何なる好適な内部レジスタを含むことをも意図している。必要に応じて、プロセッサ602は、1つ以上の演算論理ユニット(ALU)を含んでいてもよく;マルチコアプロセッサであってもよく;あるいは1つ以上のプロセッサ602を含んでいてもよい。この開示は特定のプロセッサを図示して説明しているが、この開示は如何なる好適なプロセッサをも意図している。
特定の実施形態において、メモリ604は、プロセッサ602が実行する命令、又はプロセッサ602が処理するデータを格納するメインメモリを含む。非限定的な一例として、コンピュータシステム600はストレージ606又は別のソース(例えば、別のコンピュータシステム600など)からメモリ604に命令をロードし得る。その後、プロセッサ602は、メモリ604から内部レジスタ又は内部キャッシュに命令をロードし得る。命令を実行するため、プロセッサ602は、内部レジスタ又は内部キャッシュから命令を取り出し、取り出した命令を復号化する。命令の実行中又は実行後、プロセッサ602は、1つ以上の結果(中間結果又は最終結果とし得る)を内部レジスタ又は内部キャッシュに書き込み得る。そして、プロセッサ602は、それらの結果のうちの1つ以上をメモリ604に書き込み得る。特定の実施形態において、プロセッサ602は、1つ以上の内部レジスタ若しくは内部キャッシュ又はメモリ604内の命令のみを実行してもよく(ストレージ606又はその他の場所の命令を実行するのとは異なる)、また、1つ以上の内部レジスタ若しくは内部キャッシュ又はメモリ604内のデータのみを処理してもよい(ストレージ606又はその他の場所のデータを処理するのとは異なる)。1つ以上のメモリバス(各々がアドレスバス及びデータバスを含み得る)が、プロセッサ602をメモリ604に結合してもよい。バス612は、後述のように、1つ以上のメモリバスを含み得る。特定の実施形態において、1つ以上のメモリ管理装置(MMU)が、プロセッサ602とメモリ604との間に存在し、プロセッサ602により要求されるメモリ604へのアクセスを容易にし得る。特定の実施形態において、メモリ604は、ランダムアクセスメモリ(RAM)を含む。このRAMは、適当であれば、揮発性メモリであってもよい。必要に応じて、このRAMはダイナミックRAM(DRAM)又はスタティックRAM(SRAM)にされ得る。また、必要に応じて、このRAMは、シングルポート又はマルチポートのRAMにされ得る。この開示は、如何なる好適なRAMをも意図している。メモリ604は、必要に応じて、1つ以上のメモリ604を含んでいてもよい。この開示は特定のメモリを図示して説明しているが、この開示は如何なる好適なメモリをも意図している。
特定の実施形態において、ストレージ606は、データ又は命令用の大容量記憶装置を含む。非限定的な一例として、ストレージ606は、HDD、フロッピー(登録商標)ディスクドライブ、フラッシュメモリ、光ディスク、磁気光ディスク、磁気テープ、若しくはユニバーサル・シリアル・バス(USB)ドライブ、又はこれらの2つ以上の組み合わせを含み得る。ストレージ606は、必要に応じて、リムーバブル(取り外し可能)あるいは非リムーバブル(すなわち、固定)のメディアを含み得る。ストレージ606は、必要に応じて、コンピュータシステム600の内部にあってもよいし、外部にあってもよい。特定の実施形態において、ストレージ606は、不揮発性のソリッドステートメモリである。特定の実施形態において、ストレージ606は、読み出し専用メモリ(ROM)を含む。必要に応じて、このROMは、マスクプログラムされたROM、プログラマブルROM(PROM)、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、電気的消去再書込可能ROM(EAROM)、若しくはフラッシュメモリ、又はこれらの2つ以上の組み合わせとし得る。この開示は、如何なる好適な物理形態を有する大容量記憶装置606をも意図している。ストレージ606は、必要に応じて、プロセッサ602とストレージ606との間での通信を容易にする1つ以上のストレージ制御装置を含み得る。必要に応じて、ストレージ606は1つ以上のストレージ606を含んでいてもよい。この開示は特定のストレージを図示して説明しているが、この開示は如何なる好適なストレージをも意図している。
特定の実施形態において、I/Oインタフェース608は、コンピュータシステム600と1つ以上のI/O装置との間での通信のための1つ以上のインタフェースを提供するハードウェア、ソフトウェア、又はこれら双方を含む。コンピュータシステム600は、必要に応じて、これらI/O装置のうちの1つ以上を含んでいてもよい。これらI/O装置のうちの1つ以上は、個人とコンピュータシステム600との間での通信を可能にし得る。非限定的な一例として、I/O装置は、キーボード、キーパッド、マイク、モニタ、マウス、プリンタ、スキャナ、スピーカ、スチルカメラ、スタイラスペン、タブレット、タッチスクリーン、トラックボール、ビデオカメラ、その他の好適なI/O装置、又はこれらの2つ以上の組み合わせを含み得る。I/O装置は、1つ以上のセンサを含んでいてもよい。この開示は、如何なる好適なI/O装置、及びそれ用の如何なる好適なI/Oインタフェース608をも意図している。必要に応じて、I/Oインタフェース608は、プロセッサ602がこれらのI/O装置のうちの1つ以上を駆動することを可能にする1つ以上の装置又はソフトウェアドライバを含んでいてもよい。I/Oインタフェース608は、必要に応じて、1つ以上のI/Oインタフェース608を含んでいてもよい。この開示は特定のI/Oインタフェースを図示して説明しているが、この開示は如何なる好適なI/Oインタフェースをも意図している。
特定の実施形態において、通信インタフェース610は、コンピュータシステム600と、1つ以上のその他のコンピュータシステム若しくは1つ以上のネットワークとの間での通信(例えば、パケットベースの通信など)のための1つ以上のインタフェースを提供するハードウェア、ソフトウェア、又はこれら双方を含む。非限定的な一例として、通信インタフェース610は、イーサネット(登録商標)若しくはその他のワイヤベースのネットワークと通信するためのネットワークインタフェースコントローラ(NIC)若しくはネットワークアダプタ、又は例えばWi−Fiネットワークなどの無線ネットワークと通信するための無線NIC(WNIC)若しくは無線アダプタを含み得る。この開示は、如何なる好適なネットワーク及びそれ用の如何なる好適な通信インタフェース610をも意図している。非限定的な一例として、コンピュータシステム600は、アドホックネットワーク、パーソナルエリアネットワーク(PAN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、若しくはインターネットの1つ以上の部分、又はこれらの2つ以上の組み合わせと通信し得る。これらのネットワークのうちの1つ以上の、1つ以上の部分は、有線であってもよいし、無線であってもよい。一例として、コンピュータシステム600は、無線PAN(WPAN)(例えば、ブルートゥースWPANなど)、Wi−Fiネットワーク、Wi−MAXネットワーク、携帯電話ネットワーク(例えば、グローバル・システム・フォー・モバイル・コミュニケーションズ(GSM)ネットワークなど)、若しくはその他の好適な無線ネットワーク、又はこれらの2つ以上の組み合わせと通信し得る。コンピュータシステム600は、必要に応じて、これらのネットワークの何れかのための如何なる好適な通信インタフェース610を含んでいてもよい。通信インタフェース610は、必要に応じて、1つ以上の通信インタフェース610を含んでいてもよい。この開示は特定の通信インタフェースを図示して説明しているが、この開示は如何なる好適な通信インタフェースをも意図している。
特定の実施形態において、バス612は、コンピュータシステム600の構成要素を相互に結合するための、ハードウェア、ソフトウェア、又はこれら双方を含む。非限定的な一例として、バス612は、アクセラレーテッド・グラフィクス・ポート(AGP)若しくはその他のグラフィック専用バス、EISA(Extended Industry Standard Architecture)バス、フロントサイドバス(FSB)、ハイパートランスポート(HT)インターコネクト、業界標準アーキテクチャ(ISA)バス、インフィニバンド・インターコネクト、LPC(low-pin-count)バス、メモリバス、マイクロ・チャネル・アーキテクチャ(MCA)バス、コンピュータ用拡張バスアーキテクチャ(PCI)バス、PCIエクスプレス(PCI−X)バス、シリアルATA(SATA)バス、VLB(Video Electronics Standards Association local)バス、若しくはその他の好適なバス、又はこれらの2つ以上の組み合わせを含み得る。バス612は、必要に応じて、1つ以上のバス612を含んでいてもよい。この開示は特定のバスを図示して説明しているが、この開示は如何なる好適なバス又はインターコネクトをも意図している。
ここで、コンピュータ読み取り可能記憶媒体への言及は、1つ以上の有形のコンピュータ読み取り可能記憶媒体保有構造をも包含するものである。非限定的な一例として、コンピュータ読み取り可能記憶媒体は、必要に応じて、半導体ベースあるいはその他の集積回路(IC)(例えば、フィールド・プログラマブル・ゲート・アレイ(FPGA)、又は特定用途向けIC(ASIC)など)、ハードディスク、HDD、ハイブリッド式ハードドライブ(HHD)、光ディスク、光ディスクドライブ(ODD)、磁気光ディスク、磁気光ドライブ、フロッピー(登録商標)ディスク、フロッピーディスクドライブ(FDD)、磁気テープ、ホログラフィック記憶媒体、ソリッドステートドライブ(SSD)、RAMドライブ、セキュアデジタル(SD)カード、セキュアデジタルドライブ、若しくはその他の好適なコンピュータ読み取り可能記憶媒体、又はこれらの2つ以上の組み合わせを含み得る。
この開示は、何らかの好適なストレージを実現する1つ以上のコンピュータ読み取り可能記憶媒体を意図している。特定の実施形態において、コンピュータ読み取り可能記憶媒体は、必要に応じて、プロセッサ602の1つ以上の部分(例えば、1つ以上の内部レジスタ若しくはキャッシュなど)、メモリ604の1つ以上の部分、ストレージ606の1つ以上の部分、又はこれらの組み合わせを実現してもよい。特定の実施形態において、コンピュータ読み取り可能記憶媒体はRAM又はROMを実現する。特定の実施形態において、コンピュータ読み取り可能記憶媒体は揮発性あるいは永続的なメモリを実現する。特定の実施形態において、1つ以上のコンピュータ読み取り可能記憶媒体がソフトウェアを具現化する。ここで、ソフトウェアへの言及は適宜、1つ以上のアプリケーション、バイトコード、1つ以上のコンピュータプログラム、1つ以上の実行ファイル、1つ以上の命令、ロジック、機械語、1つ以上のスクリプト、又はソースコードを包含するものであり、この逆もまた然りである。特定の実施形態において、ソフトウェアは、1つ以上のアプリケーション・プログラミング・インタフェース(API)を含む。この開示は、如何なる好適なプログラミング言語又は複数のプログラミング言語の組み合わせで書き込まれ、あるいはその他の方法で表現された、如何なる好適なソフトウェアをも意図している。特定の実施形態において、ソフトウェアはソースコード又はオブジェクトコードとして表現される。特定の実施形態において、ソフトウェアは、例えばC、Perl又はこれらの好適な拡張版など、より高級(高水準)なプログラミング言語で表現される。特定の実施形態において、ソフトウェアは、例えばアセンブリ言語(又は機械語)など、より低水準のプログラミング言語で表現される。特定の実施形態において、ソフトウェアはJAVA(登録商標)で表現される。特定の実施形態において、ソフトウェアはハイパーテキスト・マークアップ言語(HTML)、拡張マークアップ言語(XML)、又はその他の好適なマークアップ言語で表現される。
具体的な構成要素を特定して本発明を詳細に説明してきたが、当業者には様々な変形及び変更が示唆され得る。本発明は、添付の請求項の範囲に含まれることが明らかな如何なる変形及び変更をも包含するものである。
また、開示した具体的な処理フローについて、フロー内で議論されたステップは本発明の範囲を逸脱することなく変更、増加あるいは省略され得る。さらに、ステップ群は、本発明の範囲を逸脱することなく、如何なる好適な順序で実行されてもよいし、あるいは同時に実行されてもよい。
数多くのその他の変更、代用、変形、改変及び改良が当業者に明らかになり得る。本発明は、添付の請求項の範囲に入る全ての変更、代用、変形、改変及び改良を包含するものである。
以上の説明に関し、更に以下の付記を開示する。
(付記1)
データベースのデータベース設定データを分析するステップと、
前記データベースにアクセスするための1つ以上のデータベース・アプリケーション・プログラミング・インタフェースを分析するステップと、
前記分析に基づいて1つ以上のスタブを生成するステップであり、該1つ以上のスタブは、実行されたときに、前記データベースにデータが投入されているかのように前記データベースをモデル化するよう構成される、生成するステップと、
を有するデータベースモデルを生成する方法。
(付記2)
前記設定データは拡張マークアップ言語コードで記述される、付記1に記載の方法。
(付記3)
前記1つ以上のデータベース・アプリケーション・プログラミング・インタフェースは、1つ以上のSQLデータベースを有する、付記1に記載の方法。
(付記4)
前記1つ以上のスタブはJavaコードで記述される、付記1に記載の方法。
(付記5)
前記1つ以上のスタブをテスト対象アプリケーションのコードベースと結合して、該テスト対象アプリケーションを分析するためのホモジニアスな非分散型アプリケーションを生成するステップ、を更に有する付記1に記載の方法。
(付記6)
前記テスト対象アプリケーションはウェブアプリケーションである、付記5に記載の方法。
(付記7)
前記非分散型アプリケーションはJavaコードで記述される、付記5に記載の方法。
(付記8)
コンピュータプログラムを格納したコンピュータ読み取り可能記憶媒体であって、該コンピュータプログラムは、実行されたときに、
データベースのデータベース設定データを分析し、
前記データベースにアクセスするための1つ以上のデータベース・アプリケーション・プログラミング・インタフェースを分析し、且つ
前記分析に基づいて1つ以上のスタブを生成し、該1つ以上のスタブは、実行されたときに、前記データベースにデータが投入されているかのように前記データベースをモデル化するよう構成される、
ように構成されている、コンピュータ読み取り可能記憶媒体。
(付記9)
前記設定データは拡張マークアップ言語コードで記述される、付記8に記載のコンピュータ読み取り可能記憶媒体。
(付記10)
前記1つ以上のデータベース・アプリケーション・プログラミング・インタフェースは、1つ以上のSQLデータベースを有する、付記8に記載のコンピュータ読み取り可能記憶媒体。
(付記11)
前記1つ以上のスタブはJavaコードで記述される、付記8に記載のコンピュータ読み取り可能記憶媒体。
(付記12)
前記コンピュータプログラムは更に、実行されたときに、
前記1つ以上のスタブをテスト対象アプリケーションのコードベースと結合して、該テスト対象アプリケーションを分析するためのホモジニアスな非分散型アプリケーションを生成する
ように構成されている、付記8に記載のコンピュータ読み取り可能記憶媒体。
(付記13)
前記テスト対象アプリケーションはウェブアプリケーションである、付記12に記載のコンピュータ読み取り可能記憶媒体。
(付記14)
前記非分散型アプリケーションはJavaコードで記述される、付記12に記載のコンピュータ読み取り可能記憶媒体。
(付記15)
データベーススタブ生成モジュールを有するシステムであって、該データベーススタブ生成モジュールは、
データベースのデータベース設定データを分析し、
前記データベースにアクセスするための1つ以上のデータベース・アプリケーション・プログラミング・インタフェースを分析し、且つ
前記分析に基づいて1つ以上のスタブを生成し、該1つ以上のスタブは、実行されたときに、前記データベースにデータが投入されているかのように前記データベースをモデル化するよう構成される、
ように構成されている、システム。
(付記16)
前記設定データは拡張マークアップ言語コードで記述される、付記15に記載のシステム。
(付記17)
前記1つ以上のデータベース・アプリケーション・プログラミング・インタフェースは、1つ以上のSQLデータベースを有する、付記15に記載のシステム。
(付記18)
前記1つ以上のスタブはJavaコードで記述される、付記15に記載のシステム。
(付記19)
前記データベーススタブ生成モジュールは更に、前記1つ以上のスタブをテスト対象アプリケーションのコードベースと結合して、該テスト対象アプリケーションを分析するためのホモジニアスな非分散型アプリケーションを生成するように構成されている、付記15に記載のシステム。
(付記20)
前記テスト対象アプリケーションはウェブアプリケーションである、付記19に記載のシステム。
(付記21)
前記非分散型アプリケーションはJavaコードで記述される、付記19に記載のシステム。
10 ウェブアプリケーションドメイン
12 クライアント
14 サーバ
18 データベース
20 環境生成
26 ドライバ
30 モジュール
34 スタブ
40 生成システム
42 データベース設定データ
44 データベースAPI
50 データベーススタブ生成モジュール
600 コンピュータシステム
602 プロセッサ
604 メモリ
606 ストレージ
608 I/Oインタフェース
610 通信インタフェース
612 バス

Claims (7)

  1. データベースのデータベース設定データを分析するステップと、
    前記データベースにアクセスするための1つ以上のデータベース・アプリケーション・プログラミング・インタフェースを分析するステップと、
    前記分析に基づいて1つ以上のスタブを生成するステップであり、該1つ以上のスタブは、実行されたときに、前記データベースにデータが投入されているかのように前記データベースをモデル化するよう構成される、生成するステップと、
    を有するデータベースモデルを生成する方法。
  2. 前記1つ以上のスタブはJavaコードで記述される、請求項1に記載の方法。
  3. 前記1つ以上のスタブをテスト対象アプリケーションのコードベースと結合して、該テスト対象アプリケーションを分析するためのホモジニアスな非分散型アプリケーションを生成するステップ、を更に有する請求項1に記載の方法。
  4. 前記テスト対象アプリケーションはウェブアプリケーションである、請求項3に記載の方法。
  5. 前記非分散型アプリケーションはJavaコードで記述される、請求項3に記載の方法。
  6. コンピュータプログラムを格納したコンピュータ読み取り可能記憶媒体であって、該コンピュータプログラムは、実行されたときに、
    データベースのデータベース設定データを分析し、
    前記データベースにアクセスするための1つ以上のデータベース・アプリケーション・プログラミング・インタフェースを分析し、且つ
    前記分析に基づいて1つ以上のスタブを生成し、該1つ以上のスタブは、実行されたときに、前記データベースにデータが投入されているかのように前記データベースをモデル化するよう構成される、
    ように構成されている、コンピュータ読み取り可能記憶媒体。
  7. データベーススタブ生成モジュールを有するシステムであって、該データベーススタブ生成モジュールは、
    データベースのデータベース設定データを分析し、
    前記データベースにアクセスするための1つ以上のデータベース・アプリケーション・プログラミング・インタフェースを分析し、且つ
    前記分析に基づいて1つ以上のスタブを生成し、該1つ以上のスタブは、実行されたときに、前記データベースにデータが投入されているかのように前記データベースをモデル化するよう構成される、
    ように構成されている、システム。
JP2011150153A 2010-07-07 2011-07-06 アプリケーション分析用のデータベースモデルを生成するシステム及び方法 Pending JP2012018675A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/831,730 2010-07-07
US12/831,730 US9069804B2 (en) 2010-07-07 2010-07-07 System and a method for generating database model for analysis of applications

Publications (1)

Publication Number Publication Date
JP2012018675A true JP2012018675A (ja) 2012-01-26

Family

ID=45439341

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011150153A Pending JP2012018675A (ja) 2010-07-07 2011-07-06 アプリケーション分析用のデータベースモデルを生成するシステム及び方法

Country Status (2)

Country Link
US (1) US9069804B2 (ja)
JP (1) JP2012018675A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014119869A (ja) * 2012-12-14 2014-06-30 Fujitsu Ltd シンボリック実行方法、シンボリック実行プログラム及びシンボリック実行装置
JP2015153323A (ja) * 2014-02-18 2015-08-24 富士通株式会社 シンボリック実行プログラム、シンボリック実行方法及びシンボリック実行装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130097252A (ko) * 2012-02-23 2013-09-03 삼성전자주식회사 소스 코드 분석에 의한 응용 프로그램 분석을 위한 방법 및 장치
US10262055B2 (en) 2013-03-07 2019-04-16 Telefonaktiebolaget Lm Ericsson (Publ) Selection of data storage settings for an application
US10904099B2 (en) * 2018-09-07 2021-01-26 Cisco Technology, Inc. Formal model checking based approaches to optimized realizations of network functions in multi-cloud environments

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131215A (ja) * 1992-10-20 1994-05-13 Hitachi Ltd ソフトウェア開発支援方法
JPH0778096A (ja) * 1993-06-30 1995-03-20 Nec Corp 単体プログラムテスト方式
JP2005092547A (ja) * 2003-09-18 2005-04-07 Hitachi Software Eng Co Ltd 単独の情報処理システムのWebサービスシステムへの再構築方法
US20050125747A1 (en) * 2003-12-04 2005-06-09 Jerimy Nelson System and method for populating a computer-aided design program's database with design parameters
JP2009087353A (ja) * 2007-10-01 2009-04-23 Fujitsu Ltd 公開異種分散型アプリケーションから非公開同種非分散型アプリケーションを生成するシステム及び方法

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5737607A (en) * 1995-09-28 1998-04-07 Sun Microsystems, Inc. Method and apparatus for allowing generic stubs to marshal and unmarshal data in object reference specific data formats
US10007767B1 (en) * 2007-12-21 2018-06-26 EMC IP Holding Company LLC System and method for securing tenant data on a local appliance prior to delivery to a SaaS data center hosted application service
US8326902B2 (en) * 2009-10-07 2012-12-04 Oracle International Corporation Online database modeling

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06131215A (ja) * 1992-10-20 1994-05-13 Hitachi Ltd ソフトウェア開発支援方法
JPH0778096A (ja) * 1993-06-30 1995-03-20 Nec Corp 単体プログラムテスト方式
JP2005092547A (ja) * 2003-09-18 2005-04-07 Hitachi Software Eng Co Ltd 単独の情報処理システムのWebサービスシステムへの再構築方法
US20050125747A1 (en) * 2003-12-04 2005-06-09 Jerimy Nelson System and method for populating a computer-aided design program's database with design parameters
JP2009087353A (ja) * 2007-10-01 2009-04-23 Fujitsu Ltd 公開異種分散型アプリケーションから非公開同種非分散型アプリケーションを生成するシステム及び方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014119869A (ja) * 2012-12-14 2014-06-30 Fujitsu Ltd シンボリック実行方法、シンボリック実行プログラム及びシンボリック実行装置
JP2015153323A (ja) * 2014-02-18 2015-08-24 富士通株式会社 シンボリック実行プログラム、シンボリック実行方法及びシンボリック実行装置

Also Published As

Publication number Publication date
US9069804B2 (en) 2015-06-30
US20120011168A1 (en) 2012-01-12

Similar Documents

Publication Publication Date Title
US10996947B2 (en) Diagnosing production applications
JP5652326B2 (ja) ソフトウェアモジュールのテスト方法及びシステム
JP5786513B2 (ja) ソフトウェアモジュールを検査するためのシステム、方法及び記憶媒体
US9697108B2 (en) System, method, and apparatus for automatic recording and replaying of application executions
JP5742521B2 (ja) ウェブアプリケーションのフォームの自動テストのための方法及びプログラム
US9104809B2 (en) Facilitating automated validation of a web application
JP5821651B2 (ja) 記号的実行を用いてc++プログラムを検証するための方法及びシステム
EP2479673B1 (en) Software architecture for validating C++ programs using symbolic execution
JP5786512B2 (ja) インジェクション攻撃を検出するためのセキュリティ・ソフトウェア・モジュールを検証するためのハイブリッド制約条件の求解
JP5786511B2 (ja) ソフトウェア・モジュールの仕様要件を検証するためのハイブリッド制約条件の求解
US8543983B2 (en) Creating hierarchical message sequence charts for visualizing user-interactive applications
EP2407877A1 (en) Methods and systems for extensive crawling of web applications
JP2012079300A (ja) ウェブアプリケーションの解析のためのナビゲーションモデルを取り出す方法、記憶媒体、装置及びシステム
JP2012018675A (ja) アプリケーション分析用のデータベースモデルを生成するシステム及び方法
JP2012150813A (ja) 記号的実行を用いてc++プログラムを検証するための方法及びシステム
JP2012022681A (ja) ソフトウェア・フレームワークを比較するためのシステム及び方法
CN105027089B (zh) 内核功能性检查器
US9841960B2 (en) Dynamic provision of debuggable program code
Matar et al. EmbedSanitizer: runtime race detection tool for 32-bit embedded ARM
Ko et al. Hardware-in-the-loop simulation of Android GPGPU applications
Muench SORBONNE UNIVERSITE
Khazaal et al. System-level design for the assessment of shared resources effects on multiprocessor systems security
Su et al. Accelerating full-system simulation and app analysis through focused multi-granularity profiling

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140304

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141120

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141209

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150331