JP6117221B2 - 他のアプリケーションへの依存性に基づく、アプリケーションにおける操作の自動的実施のための方法、システムおよび記憶媒体 - Google Patents

他のアプリケーションへの依存性に基づく、アプリケーションにおける操作の自動的実施のための方法、システムおよび記憶媒体 Download PDF

Info

Publication number
JP6117221B2
JP6117221B2 JP2014537375A JP2014537375A JP6117221B2 JP 6117221 B2 JP6117221 B2 JP 6117221B2 JP 2014537375 A JP2014537375 A JP 2014537375A JP 2014537375 A JP2014537375 A JP 2014537375A JP 6117221 B2 JP6117221 B2 JP 6117221B2
Authority
JP
Japan
Prior art keywords
application
notification
response
command
receiving
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
JP2014537375A
Other languages
English (en)
Other versions
JP2014532909A (ja
JP2014532909A5 (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.)
NortonLifeLock Inc
Original Assignee
Symantec 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 Symantec Corp filed Critical Symantec Corp
Publication of JP2014532909A publication Critical patent/JP2014532909A/ja
Publication of JP2014532909A5 publication Critical patent/JP2014532909A5/ja
Application granted granted Critical
Publication of JP6117221B2 publication Critical patent/JP6117221B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/484Precedence

Landscapes

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

Description

本出願は、複数のアプリケーションの実行の管理に関する。特に、本出願は、他のアプリケーションへのかかるアプリケーションの依存性に基づく、それらの操作の自動的実施に関する。
分散型コンピューティングシステムは、各々が1つ以上のアプリケーションを含み得る複数のシステムを含むことができる。各かかるアプリケーションは、企業アプリケーションなどの多層(n層)アプリケーションの一部であってもよい。例えば、3層アプリケーションは、提示層と、処理層と、データ管理層とを含むことができる。各かかる層は、論理的及び/又は物理的に別個のプロセスであってもよい。n層アプリケーションアーキテクチャは、ソフトウェア開発者らが柔軟かつ再利用可能なアプリケーションを作成するのを可能にする。例えば、かかるn層アーキテクチャを使用することによって、開発者らは、アプリケーション全体(即ち、n層アプリケーションに対応するアプリケーション全体)を書き換えるか又はアップグレードする必要がなく、1度に1層のアプリケーションを変更又は追加することができる。一例として、3層アプリケーションは、提示層と、処理層と、データ層とを含むことができる。
3層アプリケーションの例として、提示層は、多層アプリケーションの最上のレベルであってもよい。例えば、オンラインショッピングのための企業アプリケーションの場合、提示層におけるアプリケーションは、商品閲覧、購買、及びショッピングカートの中身などのサービスに関する情報を表示することができる。この提示アプリケーションは、様々な方法によって他の層におけるアプリケーションと通信することができる。
この例を続けると、アプリケーション層は、データベース層のアプリケーション(複数可)からアクセスされるデータなどのデータに様々な処理を実施することができる。この処理されたデータは、提示アプリケーションに渡されてもよい。この例における第3の層は、データベース層であってもよい。データベース層は、様々なデータベース(複数可)からのデータにアクセスする(例えば、記憶し、検索する)アプリケーションを含むことができる。
企業アプリケーションを実装するこれらのアプリケーションは、互いに依存性を有することができる。例えば、ウェブアプリケーションは、金融アプリケーション(複数可)に依存する(例えば、それによって生成及び/又は提供されるデータを使用する)ことができる。金融アプリケーション(複数可)は、データベースアプリケーションによって提供されるデータに依存していてもよい。したがって、ウェブアプリケーションが実行しているとき、金融アプリケーション(複数可)もまた、ウェブアプリケーションにデータを提供するために実行しているはずである。同様に、金融アプリケーション(複数可)が実行しているとき、データベースアプリケーション(複数可)もまた、金融アプリケーション(複数可)にデータを提供するように実行しているはずである。
アプリケーションにおける操作を他のアプリケーションへの依存性に基づいて自動的に実施するための様々なシステム及び方法が開示される。例えば、一方法は、コマンドを受信することを含む。コマンドは、第1のアプリケーションを起動することである。第1のアプリケーションは、少なくとも1つの別のアプリケーションによって提供されるデータを使用するように構成される。本方法はまた、第1のアプリケーションが第2のアプリケーションによって提供されるデータを使用するように構成されるかどうかを判定することを含む。この判定は、コマンドの受信に応答して実施される。本方法はまた、第1のアプリケーションが第2のアプリケーションによって提供されるデータを使用するように構成されることの判定に応答して、第2のアプリケーションの実行を開始することを含む。
いくつかの実施形態では、本方法は、第1のアプリケーションの実行を開始することを含み、第1のアプリケーションの実行を開始することは、第2のアプリケーションの実行に応答して実施される。いくつかの実施形態では、この判定は、通知を送信することを含み、通知は、第1のアプリケーションを起動するコマンドの受信を示す。いくつかの実施形態では、第1のエンティティが、第1のアプリケーションを操作し、第2のエンティティが、第2のアプリケーションを操作する。第2のエンティティは、通知の受信に応答して、第2のアプリケーションが第1のアプリケーションにデータを提供するように構成されるかどうかを判定する。いくつかの実施形態では、本方法は、第2のアプリケーションが第3のアプリケーションによって判定される他のデータを使用するように構成されるかどうかを判定することを含む。本方法はまた、第2のアプリケーションが第3のアプリケーションによって提供される他のデータを使用することの判定に応答して、第3のアプリケーションの実行を開始することを含む。第3のアプリケーションの実行を開始することは、第2のアプリケーションの実行を開始する前に実施される。いくつかの実施形態では、第2のアプリケーションが第3のアプリケーションからの他のデータを使用することを判定することは、二次通知の受信に応答して実施される。二次通知は、第2のアプリケーションが実行されることを示す。
いくつかの実施形態では、第3のエンティティが、第3のアプリケーションを操作する。第3のエンティティは、二次通知の受信に応答して、第2のアプリケーションが第3のアプリケーションからの他のデータを使用することを判定する。いくつかの実施形態では、本方法はまた、複数のアプリケーション間の依存性を判定することを含む。依存性は、第1のアプリケーションが、少なくとも、第1のアプリケーションが第2のアプリケーションによって提供されるデータを使用するという理由から、第2のアプリケーションに依存していることを示す。この依存性の判定は、コマンドの受信に応答して実施される。いくつかの実施形態では、第2のアプリケーションの実行を開始することは、依存性に基づいている。いくつかの実施形態では、本方法はまた、第1のアプリケーションが第2のアプリケーションによって提供されるデータを使用するように構成されることの判定に応答して、第2のアプリケーションにロックを適用することを含む。ロックは、第2のアプリケーションが第1のアプリケーションを起動するコマンドと関連付けられることを示す。ロックは、第2のアプリケーションで開始される別の動作を防ぐ。別の動作は、別のコマンドと関連付けられた動作である。別のコマンドは、第1のアプリケーションを起動するコマンド以外のコマンドである。
1つ以上のプロセッサと、第1のアプリケーションと、コマンドモジュールと、通知モジュールとを備える装置が開示される。第1のアプリケーションは、1つ以上のプロセッサを使用して実行されるように構成される。コマンドモジュールは、第1のアプリケーションを起動するコマンドを受信するように構成される。通知モジュールは、通知を送信するように構成される。通知は、第1のアプリケーションを起動するコマンドの受信を示す。通知モジュールは、応答通知を受信するように更に構成される。応答通知は、第2のアプリケーションが実行していることを示す。
いくつかの実施形態では、第1のアプリケーションは、応答通知を受信することに応答して実行されるように構成される。応答通知は、第2のアプリケーションが、コマンドモジュールが通知の送信を実施することに応答して実行していることを更に示す。いくつかの実施形態では、コマンドモジュールは、第1のアプリケーションを停止するコマンドを受信するように更に構成される。通知モジュールは、別の通知を送信するように更に構成される。別の通知は、第1のアプリケーションを停止するコマンドの受信を示す。通知モジュールは、別の応答通知を受信するように更に構成される。別の応答通知は、第3のアプリケーションが第1のアプリケーションによって提供されるデータに依存していることを示す。いくつかの実施形態では、応答通知は、第3のアプリケーションが、通知モジュールが別の通知の送信を実施することに応答して停止されることを更に示す。
1つ以上のプロセッサによって実行可能であるプログラム命令を含むコンピュータで読み取り可能な媒体が開示される。プログラム命令は、コマンドを受信するように実行可能であり、コマンドは、第1のアプリケーションを起動することである。プログラム命令は、通知がコマンドの受信を示す通知を送信するように更に実行可能である。プログラム命令は、第2のアプリケーションが実行していることを応答通知が示す応答通知を受信するように更に実行可能である。
いくつかの実施形態では、応答通知は、第1のアプリケーションが第2のアプリケーションからのデータに依存していることを更に示す。いくつかの実施形態では、プログラム命令は、第1のアプリケーションを実行するように更に実行可能である。第1のアプリケーションは、応答通知の受信に応答して実行される。応答通知は、第2のアプリケーションが通知の送信に応答して実行していることを更に示す。いくつかの実施形態では、プログラム命令は、第1のアプリケーションを停止するコマンドを受信するように更に実行可能である。プログラム命令は、別の通知を送信するように更に実行可能である。別の通知は、第1のアプリケーションを停止するコマンドの受信を示す。プログラム命令は、別の応答通知を受信するように更に実行可能である。別の応答通知は、第3のアプリケーションが第1のアプリケーションからのデータに依存していることを示す。いくつかの実施形態では、応答通知は、第3のアプリケーションが別の通知の送信に応答して停止されることを更に示す。
本出願の実施形態は、添付の図面を参照することによってより良く理解され、その多くの目的、特徴、及び利点が当業者に明らかにされ得る。
一実施形態に従う、企業アプリケーション層と、ウェブアプリケーション層と、金融アプリケーション層と、データベースアプリケーション層とを含む多層アプリケーションを図示するブロック図である。 一実施形態に従う、通知基盤と、通知モジュールとを含む通知システムを図示するブロック図である。 一実施形態に従う、通知システムの例示的な実装を図示するブロック図である。 一実施形態に従う、様々なアプリケーションの依存性を示す依存性グラフのブロック図である。 一実施形態に従う、アプリケーションの実行を別のアプリケーションへの依存性に基づいて開始するための方法を図示するフローチャートである。 一実施形態に従う、アプリケーションの停止を別のアプリケーションへの依存性に基づいて開始するための方法を図示するフローチャートである。 一実施形態に従う、コマンドによって指定されるようにアプリケーションにおける操作を実施するための方法を図示するフローチャートである。 一実施形態に従う、アプリケーションに対するコマンドを示す通知を処理するための方法を図示するフローチャートである。 本出願の実施形態が実装され得るネットワークアーキテクチャを図示するブロック図である。 本出願の実施形態を実装するのに好適なコンピュータシステムの一例を図示するブロック図である。
本出願の実施形態は、様々な修正及び代替形態の影響を受けやすいが、特定の実施形態は、図面及び詳細な説明における例として提供される。図面及び詳細な説明は、実施形態を開示される特定の形態に限定することを意図しないことが理解されるべきである。その代わりに、添付の「特許請求の範囲」によって定義されるように本発明の趣旨及び範囲内に含まれる全ての修正、均等物、及び代替を網羅することを意図する。
本発明の実施形態は、アプリケーションの実行を別のアプリケーションへの依存性に基づいて開始することを対象にする。これらのアプリケーションは、n層アーキテクチャを使用して実装される企業アプリケーションの一部であってもよい。企業アプリケーションは、分散型アプリケーションであってもよく、ウェブアプリケーションと、金融アプリケーションと、データベースアプリケーションとを含むことができる。かかる企業アプリケーションの実行は、ウェブアプリケーション、金融アプリケーション、及びデータベースアプリケーションの各々の実行を含むべきである。一例として、かかる企業アプリケーションの実行を開始すると、ウェブアプリケーションを起動するコマンドが受信される。しかしながら、企業アプリケーションアーキテクチャでは、ウェブアプリケーションは、1つ以上の金融アプリケーションによって提供されるデータに依存してもよい。更に、各金融アプリケーションは、1つ以上のデータベースアプリケーションによって提供されるデータに依存してもよい。
ウェブアプリケーションを起動するコマンドを受信する、ウェブアプリケーションは、このウェブアプリケーションによって使用されるデータを提供する金融アプリケーション(及び/又は別のアプリケーション)があるかどうかを判定する。一例として、ウェブアプリケーションによって使用されるデータを提供する金融アプリケーションが識別される。この金融アプリケーションは、ウェブアプリケーションが起動され得る前に起動されるはずである。金融アプリケーションの実行が開始すると、ウェブアプリケーションが起動され得る。一実装形態では、ウェブアプリケーションは、金融アプリケーションの実行が完了した後に起動されてもよい。しかしながら、金融アプリケーションはそれ自体が、データベースアプリケーション(及び/又は別のアプリケーション)によって提供されるデータに依存する場合がある。したがって、この更なる依存性が判定され、データベースアプリケーションは、金融アプリケーションが起動され得る前に起動される(あるいは、データベースアプリケーションの実行が完了する)。
同様に、アプリケーションに対する他のコマンド(例えば、金融アプリケーションを停止するコマンド)を受信すると、この金融アプリケーションに対する依存性が判定される。例えば、この金融アプリケーションによって提供されるデータを使用するウェブアプリケーションが識別され得る。金融アプリケーションが停止され得る前に、ウェブアプリケーションの実行が、まず停止されるべきである。多層アプリケーションモデルにおけるアプリケーションの実行を起動及び停止する以外のコマンドに対する操作は、アプリケーション間の様々な依存性に基づいて同様に実施され得る。
図1は、一実施形態に従う、企業アプリケーション層と、ウェブアプリケーション層と、金融アプリケーション層と、データベースアプリケーション層とを含む企業アーキテクチャ100を図示するブロック図である。図1は、企業アプリケーション102A及び102Bを含む企業アプリケーション層102を示す。図1はまた、ウェブアプリケーション104A〜104Cを含むウェブアプリケーション層104を示す。図1はまた、金融アプリケーション106A〜106Eを含む金融アプリケーション層106を示す。図1はまた、データベースアプリケーション108A〜108Fを含むデータベースアプリケーション層を示す。図1は、3層アプリケーション104〜108を含む多層アプリケーション(即ち、企業アプリケーション102A〜102B)を示すが、多層アプリケーションは、所望に応じて、更なる又はより少ない層からのアプリケーションを含み得ることに留意されたい。
したがって、企業アプリケーション102A及び102Bは、ウェブアプリケーション104、金融アプリケーション106、及びデータベース108からのアプリケーションを含む、多層アプリケーションである。ウェブアプリケーション104A〜104Cは、グラフィカル・ユーザ・インターフェース(GUI)をユーザに提示するウェブベースのアプリケーションであってもよい。例えば、ウェブアプリケーションは、ウェブサーバソフトウェアアプリケーションを含むことができる。このウェブブラウザアプリケーションは、別のコンピュータと通信して、そのコンピュータ上のウェブブラウザでGUIを提示することができる。金融アプリケーション106A〜106Eは、データを処理して、ウェブアプリケーション104A〜104Cによる使用のためにこのデータを提供するアプリケーションを含むことができる。データベースアプリケーション108A〜108Fは、データベース(複数可)にアクセスして、金融アプリケーション106A〜106Eによる使用のためにかかるデータを提供するアプリケーションを含むことができる。
一実施形態では、企業アプリケーションによって使用される実際のアプリケーションは動的に変更することができ、これらの変更についての情報は、各アプリケーションに利用可能でなくてもよい。一実施形態では、ウェブアプリケーション104Aは、ウェブアプリケーション104Aがデータのために依存する金融アプリケーション106Aを識別する情報を有してもよいが、ウェブアプリケーション104Aは、金融アプリケーション106Aがデータのために依存するアプリケーションを識別する情報を有しなくてもよい。別の実施形態では、企業アプリケーション102Aは、ウェブアプリケーション104A〜104Cのうちどれが企業アプリケーション102Aによって使用されるかを識別する情報を有してもよいが、ウェブアプリケーション104Aは、金融アプリケーション(複数可)のうち(例えば、金融アプリケーション106A〜106Eの中で)どれがウェブアプリケーション104Aによって使用されるかを識別する情報を有しなくてもよい。例えば、ウェブアプリケーション104Aは、金融アプリケーション106A〜106Eのうちの1つ以上からのデータを使用することができるが、ウェブアプリケーション104Aは、ウェブアプリケーション104Aが、データのために金融アプリケーション106A〜106Eのうちのどれに依存するかを識別する情報を有しなくてもよい。更に別の実施形態では、ウェブアプリケーション104Aは、アプリケーション104B、104C、106A〜106E、及び/又は108A〜108Fのうちのどのアプリケーションが金融アプリケーションであるか識別する情報さえ有しなくてもよい。したがって、実装形態に応じて、ウェブアプリケーション104Aは、ウェブアプリケーション104Aが依存するアプリケーションを識別する情報を有してもよいが、識別されたアプリケーションの依存性を識別する情報を有しなくてもよい。本開示を考慮すれば理解されるように、この依存性情報は、他の操作によって使用されてもよい。
一実施形態では、実行を開始する操作に対するコマンドなどのコマンドを受信すると、ウェブアプリケーション104A(むしろ、このアプリケーションをホストするエンティティ、又はこのアプリケーションと関連付けられた通知モジュール)は、他のアプリケーション104B、104C、106A〜106E、及び/又は108A〜108Fにこのコマンドを通知することができる。このコマンドによって指定される操作は、応答がこの通知に受信されるまでウェブアプリケーション104Aに関して実施されない。一実装形態では、金融アプリケーション106A(むしろ、このアプリケーションをホストするエンティティ、又はこのアプリケーションと関連付けられた通知モジュール)は、かかる通知に応答することができる。この応答は、金融アプリケーション106Aがウェブアプリケーション104Aによって使用されるデータを提供することを示すことができる。この応答はまた、ウェブアプリケーション104Aに開始され得るコマンド(例えば、ウェブアプリケーション104Aの実行が開始され得る)に対応する操作を示すことができる。
一実施形態では、上記の例の増進のために、106A以外のアプリケーション、即ち、アプリケーション104B、104C、106B〜106E、及び/又は108A〜108F(むしろ、これらのアプリケーションをホストするエンティティ、又はこれらのアプリケーションと関連付けられた通知モジュール)は、これらのアプリケーション104B、104C、106B〜106E、及び/又は108A〜108Fのいずれもウェブアプリケーション104Aによって使用されるデータを提供しないことを示す応答(複数可)で応答することができる。別の実施形態では、106A以外のアプリケーション、即ち、アプリケーション104B、104C、106B〜106E、及び/又は108A〜108F(むしろ、これらのアプリケーションをホストするエンティティ、又はこれらのアプリケーションと関連付けられた通知モジュール)は、ウェブアプリケーション104Aによって送信されるこれらの通知に単純に応答することができない。本実施形態では、タイムアウト又は別の機構は、106A以外のこれらのアプリケーション、即ち、アプリケーション104B、104C、106B〜106E、及び/又は108A〜108Fがウェブアプリケーション104Aによって使用されるデータを提供しないことを判定するために使用されてもよい。
一実施形態では、通知を受信するアプリケーション(むしろ、このアプリケーションをホストするエンティティ、又はこのアプリケーションと関連付けられた通知モジュール)は、それがこの通知を送信したアプリケーションによって使用されるデータを提供するかどうかを判定することができる。上記の例に従って、金融アプリケーション106A(むしろ、このアプリケーションをホストするエンティティ、又はこのアプリケーションと関連付けられた通知モジュール)は、ウェブアプリケーション104Aからの通知を受信すると、それがウェブアプリケーション104Aによって使用されるデータを提供すること(即ち、そのウェブアプリケーション104Aが金融アプリケーション106Aに依存していること)を判定することができる。しかしながら、この依存性を示す応答をウェブアプリケーション104Aに送信し戻す前に、金融アプリケーション106A(むしろ、このアプリケーションをホストするエンティティ、又はこのアプリケーションと関連付けられた通知モジュール)は、それがそれ自体、別のアプリケーションに依存しているかどうかを判定する必要がある場合がある。一実施形態では、金融アプリケーション106A(むしろ、このアプリケーションをホストするエンティティ、又はこのアプリケーションと関連付けられた通知モジュール)は、金融アプリケーション106Aが受信された通知と関連付けられた操作を実施したいことを各々が示し、又は金融アプリケーション106Aの可能な依存性を示す、1つ以上の更なる通知を送信することができる。
上述されるものと同様に、別のアプリケーション(例えば、データベースアプリケーション108A)(むしろ、このアプリケーションをホストするエンティティ、又はこのアプリケーションと関連付けられた通知モジュール)は、金融アプリケーション106Aからの更なる通知を受信すると、それが金融アプリケーション106Aによって使用されるデータを提供すること(即ち、その金融アプリケーション106Aがデータベースアプリケーション108Aに依存していること)を判定することができる。次に、データベースアプリケーション108A(むしろ、このアプリケーションをホストするエンティティ、又はこのアプリケーションと関連付けられた通知モジュール)は、それが依存している他のアプリケーションがない(即ち、データベースアプリケーション108Aによって使用されるデータを提供する他のアプリケーションがない)ことを判定することができる。次に、データベースアプリケーション108Aは、即ち、金融アプリケーション106Aからの更なる通知を受信することに応答して実行されてもよい。データベースアプリケーション108Aの実行が開始すると、データベースアプリケーション108Aの実行を示す応答が金融アプリケーション106Aに送信されてもよい。金融アプリケーション106Aがこの応答を受信すると、金融アプリケーション106Aは実行されてもよい。金融アプリケーション106Aの実行が開始すると、金融アプリケーション106Aの実行を示す別の応答がウェブアプリケーション104Aに送信されてもよい。ウェブアプリケーション104Aがこの更なる応答を受信すると、受信されたコマンドに対する操作によって示されるように、ウェブアプリケーション104Aは実行されてもよい。いくつかの実施形態では、金融アプリケーションの実行の成功など、アプリケーションの実行を成功させる際に、この金融アプリケーションのあらゆる依存性が満たされることも示す応答が送信され得ることに留意されたい。
結果として、企業アプリケーション102Aのアプリケーションの各々の依存性は、ウェブアプリケーション104Aの依存性がある実行から他の実行へ変更されるとしても維持され得る。本明細書に記載される通知システムを使用することによって、企業アプリケーションの構造は、かかる企業アプリケーションの各実行前に依存性の全てを識別する情報を有するアプリケーションなしで動的に変更され得る。一実施形態では、各アプリケーションは、この各アプリケーションが依存している別のアプリケーション(複数可)を識別する情報のみを有してもよいが、これらの別のアプリケーション(複数可)が依存しているアプリケーションを識別する情報を有しなくてもよい。例えば、ウェブアプリケーション104Aは、金融アプリケーション106Aへの依存を識別する情報を有してもよい。しかしながら、ウェブアプリケーション104Aは、金融アプリケーション106Aの依存性を識別する情報を有しないであろう。別の実施形態では、各アプリケーションは、この各アプリケーションが依存している別のアプリケーション(複数可)を識別する情報でさえ有しないであろう。
本明細書に記載される方法は、各企業アプリケーション102A〜102Bに対する他のコマンドに適用されてもよい。例えば、企業アプリケーション102Aの実行中(即ち、ウェブアプリケーション104A、金融アプリケーション106A、及びデータベースアプリケーション108Aが実行しているとき)、金融アプリケーション106Aの実行を停止するようにコマンドが受信される。しかしながら、一実施形態では、企業アプリケーション102Aの実行中、金融アプリケーション106Aの実行は、金融アプリケーション106Aに依存しているあらゆるアプリケーションが最初に停止された後に停止されてもよい。したがって、金融アプリケーション106A(むしろ、このアプリケーションをホストするエンティティ、又はこのアプリケーションと関連付けられた通知モジュール)は、金融アプリケーション106Aの実行を停止することに対するコマンドを示す通知を送信してもよい。金融アプリケーション106Aに依存しているアプリケーション(むしろ、各かかるアプリケーションをホストするエンティティ、又はかかるアプリケーションと関連付けられた通知モジュール)、ウェブアプリケーション104Aなどが応答することができる。
例えば、ウェブアプリケーション104Aは、金融アプリケーション106Aからの通知を受信すると、ウェブアプリケーション104Aに依存しているアプリケーションがあるかどうかを判定することができる。この判定は、更なる通知を送信することによってなされてもよい。これらの更なる通知の各々は、ウェブアプリケーション104Aの実行を停止する意図を示し、及び/又はウェブアプリケーション104Aに依存しているアプリケーションがあるかどうかを問い合わせることができる。別の実施形態では、この判定は、更なる通知を送信することなくなされてもよい。ウェブアプリケーション104Aに依存している他のアプリケーションがないことをウェブアプリケーション104A(むしろ、このアプリケーションをホストするエンティティ)が判定すると、ウェブアプリケーション104Aの実行は、金融アプリケーション106Aへの応答を送信しながら停止されてもよい。金融アプリケーション106Aがこの応答を受信すると、金融アプリケーション106Aの実行は停止されてもよい。一実施形態では、本明細書に記載される停止実行コマンドの場合、停止されているアプリケーション(例えば、金融アプリケーション106A)によって使用されるデータを提供する別のアプリケーション(例えば、データベースアプリケーション108A)は、この停止実行コマンドによって必ずしも影響を受けない。
図2Aは、一実施形態に従う、通知基盤と、通知モジュールとを含む通知システム200を図示するブロック図である。通知システムは、例えば、図1に記載される、多層アプリケーションによる通知及び/又は応答を通信するために使用されてもよい。
通知システムは、通知モジュール202A〜202Dと、通知ブロードキャストモジュール204と、通知基盤206とを含む。通知モジュール202Aは、企業アプリケーション102Aなどの企業アプリケーションと関連付けられる。通知モジュール202Bは、ウェブアプリケーション104Aなどのウェブアプリケーションと関連付けられる。通知モジュール202Cは、金融アプリケーション106Aなどの金融アプリケーションと関連付けられる。通知モジュール202Dは、データベースアプリケーション108Aなどのデータベースアプリケーションと関連付けられる。通知基盤206は、通知モジュール202A〜202D間の通知(及び応答)を送信及び受信することを容易にする。
通知ブロードキャストモジュール204は任意であり、いくつかの実施形態で使用されてもよい。一実施形態では、通知モジュール202Bは、その関連したウェブアプリケーション104Aが全ての他の通知モジュール、例えば、通知モジュール202A、202C、及び202Dに受信されたコマンドによって示されるように起動されることを示す通知などの通知を送信することができる。別の実施形態では、通知モジュール202Bは、かかる通知を通知ブロードキャストモジュール204に送信することができる。通知ブロードキャストモジュール204は、通知モジュール202Bからのかかる通知を受信することに応答して、更なる通知(例えば、実質的に類似の通知)を通知モジュール202A、202C、及び202Dに送信することができる。一実施形態では、通知モジュール202A〜202Dの各々はまた、それぞれのアプリケーションが操作を実施したことなどを示す、他の通知モジュール202A〜202Dからの応答を受信することができる。
図2Bは、一実施形態に従う、通知システムの例示的なネットワークシステム200Bを図示するブロック図である。ネットワークシステム200Bは、システム208A〜208Dを含み、これは、各々がネットワーク210を使用して他のシステム208A〜208Dと通信することができる。システム208Aは、企業アプリケーション212を含み、システム208Bは、ウェブアプリケーション214を含み、システム208Cは、金融アプリケーション216を含み、システム208Dは、データベースアプリケーション218を含む。更に、システム208A〜208Dの各々は、それぞれの通知モジュール220A〜220D、並びにそれぞれのコマンドモジュール224A〜224Dを含む。ネットワークシステム200Bはまた、通知コントローラ222を含むことができる。
一実施形態では、システム208A〜208Dのうちの1つ以上は、仮想マシンを使用して実装されてもよい。各仮想マシンは、物理的コンピュータハードウェアの様式でコンピュータ命令を実行する物理的コンピュータのソフトウェア実装であってもよい。ハイパーバイザ(図示せず)は、ソフトウェア及び/又はハードウェアで実装されてもよく、各システム208A〜208Dに仮想マシンを同時にサポートする能力を提供してもよい。ハイパーバイザは、仮想マシン間でコンピュータリソース(例えば、処理能力、メモリなど)の配分を調整することによってかかる能力を提供することができ、そのため仮想マシンが物理的コンピュータと同様な働きをするようにする。仮想マシンは、ソフトウェアで実装され、物理的ハードウェアに同様にコンピュータ命令を実行することができる。各仮想マシンは、ホストコンピュータが単にその仮想マシンの制御下にあるかのように動作することができるため、ホストコンピュータシステムのリソースを共有してもよい。例えば、システム208A〜208Dのうちの1つ以上は、仮想マシンを使用して実装されてもよく、各かかる仮想マシンは、それぞれのアプリケーション、通知モジュール、及びコマンドモジュールを実行することができる。
一実施形態では、各システム208A〜208Dは、それぞれのアプリケーション212〜218をホストすることができる。システム208A〜208Dは各々、オベレーティングシステムと、それぞれのアプリケーション212〜218と関連付けられるサービスグループとを含むことができる。一実施形態では、サービスグループ(図示せず)は、依存性など、各アプリケーションのデータを含む各アプリケーションに対するデータ構造であってもよい。しかしながら、各かかるサービスグループは、各企業アプリケーションの依存性の一部分のみを含んでもよい。一実施形態では、企業アプリケーション212はそれ自体が、多層アプリケーションであってもよく、したがってアプリケーション214〜218などの複数の分散型アプリケーションを含み得ることに留意されたい。換言すれば、企業アプリケーション212の実行は、アプリケーション214〜218の各々の実行を含むことができる。
各コマンドモジュール224A〜224Dは、数ある中でも実行を起動又は停止するコマンド、実行を休止するコマンドなどの1つ以上のコマンドを受信することができる。コマンドモジュールは、ソフトウェア、ハードウェア、又はこれらの組み合わせのうちの1つ以上として実装されてもよい。一実施形態では、コマンドモジュールは、受信されたコマンドによって指定されるように、関連したアプリケーションにおける操作を開始することができる。
例えば、コマンドモジュール224Bは、受信されたコマンドによって示されるように、ウェブアプリケーション214の起動実行を開始することができるが、他のアプリケーションへの依存性を判定した後にのみ開始することができる。別の実施形態では、コマンドモジュールは、オペレーティングシステムなど、システムのソフトウェアエンティティと通信して、受信されたコマンドによって指定される操作を実施することができる。例えば、コマンドモジュール224Bは、システム208Bのオペレーティングシステムと通信して、受信されたコマンドによって指定されるように、ウェブアプリケーション214の実行を開始することができる。
通知モジュール220A〜220Dは、アプリケーション212〜218間の依存性を判定するために送信/受信されたものなど、通知を送信し、及び/又は応答を受信することができる。通知モジュール220A〜220Dは、図2Aの通知モジュール202A〜202Dを実装することができる。一実施形態では、各通知モジュール220A〜220Dは、それぞれのコマンドモジュール224A〜224Dと通信することができる。例えば、コマンドモジュール224Bは、ウェブアプリケーション214の実行を開始するコマンドを受信することができる。ウェブアプリケーション214の実行を開始する前に、コマンドモジュール224Bは、通知モジュール220Bと通信することができ、通知モジュール220Bにこの受信されたコマンド及び/又は意図を知らせて、ウェブアプリケーション214の実行を開始する。一実施形態では、ウェブアプリケーション214は、1つ以上の応答が(例えば、通知モジュール220Bによって)受信されるまで(コマンドによって示されるように)実行されない。各かかる応答は、別のシステム、例えば、システム208Cがウェブアプリケーション214によって使用されるデータを提供し得るアプリケーション(例えば、金融アプリケーション216)を含むことを示すことができる。各かかる応答はまた、ウェブアプリケーション214が依存しているデータを別のシステム上のこのアプリケーションが提供することを示す。
通知コントローラ222は、システム200Bの任意の部分である。通知コントローラは、図2Aの通知ブロードキャストモジュール204を実装することができる。一実施形態では、通知コントローラ222は、通知モジュール間の通知を受信、送信、及び/又はルートを決めることができる。例えば、通知モジュール220Bは、通知コントローラ222に通知を送信することができる。次に、通知コントローラは、システム200B内の全てのシステム及び/又は通知モジュールにこの通知をブロードキャストすることができる。通知モジュール220Cは、応答を通知モジュール220Bに直接送信し戻すことができ、及び/又は通知モジュール220Cは、応答を通知コントローラ222に送信し戻すことができる。次に、通知コントローラ222は、この応答を通知コントローラ220Bに送信することができる。一実施形態では、通知コントローラ222は、ある特定のアプリケーションが別のアプリケーションによる使用にデータを提供するように実行している(あるいは、実行した)かどうかを示すフラグを採用することができる。
例えば、システム208Cは、金融アプリケーション216を実行する際に、応答をシステム208Bに送信し戻すことができる。金融アプリケーション216の実行が開始すると、システム208Cは、ネットワーク210を介するなどウェブアプリケーション214によって使用されるデータを提供することができる。一実施形態では、アプリケーション、例えば、ウェブアプリケーション214及び金融アプリケーション216はまた、共通の場所、例えば、共通データストアに位置するデータにアクセスすることができる。本実施形態では、システム208Cは、金融アプリケーション216がこの共通の場所でデータへの必要とされる操作を実施すると、応答をシステム208Bに送信し戻すことができる。したがって、システム208Bは、システム208Bがこの応答を受信するまでウェブアプリケーション214における操作を実施しない。
図3は、一実施形態に従う、様々なアプリケーションの依存性300を示す依存性グラフのブロック図である。図3は、ウェブアプリケーション302A及び302Bと、金融アプリケーション304A〜304Cと、データベースアプリケーション306A〜306Dとの間の依存性300を示す。図示されるように、ウェブアプリケーション302Aは、金融アプリケーション304A及び304Bに依存している。ウェブアプリケーション302Bは、金融アプリケーション304Cに依存している。金融アプリケーション304Aは、データベースアプリケーション306A及び306Bに依存している。金融アプリケーション304Bは、データベースアプリケーション306B及び306Cに依存している。金融アプリケーション304Cは、データベースアプリケーション306C及び306Dに依存している。データベースアプリケーション306A〜306Dは、その他のアプリケーションに依存していない。
一実施形態では、システム208Bのコマンドモジュール224Bがウェブアプリケーション214の実行を開始するコマンドを受信するなど、ウェブアプリケーションと関連付けられたシステムが実行を開始するコマンドを受信する際に、ウェブアプリケーションは、このウェブアプリケーションが依存するアプリケーション(複数可)と関連付けられたシステム(複数可)が準備ができていることを(例えば、応答を介して)示すまで実行されない。図3に示される例では、金融アプリケーション304A及び304Bの両方と関連付けられたシステム(複数可)は、例えば、システム208Bへの応答を介して、ウェブアプリケーション302が依存しているデータを提供する準備ができていることを示すであろう。しかしながら、各金融アプリケーション304A及び304Bと関連付けられたシステム(複数可)は、金融アプリケーション304A及び304Bが依存しているデータを提供する準備ができていることをデータベースアプリケーション306A〜306Cと関連付けられたシステム(複数可)が最初に示すまでこの表示を(ウェブアプリケーション302Aに)示さないであろう。一実施形態では、金融アプリケーション304A及び304Bは、これらの表示がウェブアプリケーション302に示される前に実行される。別の実施形態では、金融アプリケーション304A及び304Bは、これらの表示がウェブアプリケーション302Aに示される前に共通の場所でデータに機能する。
一実施形態では、ウェブアプリケーション302Aと関連付けられたシステムが実行を開始するコマンドを受信する際に、そのウェブアプリケーションに対する依存性における各アプリケーションにロックが適用される。この例では、ロックは、ウェブアプリケーション302A、金融アプリケーション304A及び304B、並びにデータベースアプリケーション306A〜306Cに適用されるであろう。このロックは、ウェブアプリケーション302Aからデータベースアプリケーション306A〜306Cへの通知の伝搬中にこれらのアプリケーションの各々に適用されてもよい。結果として、ロックを有するアプリケーションは、別のコマンドと関連付けられる通知及び/又は操作によってアクセスされ得ない。一実施形態では、各アプリケーションに対するサービスグループは、そのアプリケーションに対するロックを実装することができる。一実施形態では、ロックは、所定のアプリケーションが異なるタイプの操作によってアクセスされるのを防ぐことができる。例えば、データベースアプリケーション306Cは、金融アプリケーション304Bによってロックされ、データベースアプリケーション306Cの実行を開始するための操作に関する金融アプリケーション304Cによって更に使用され(及びそれからの通知への応答で応答し)てもよい。しかしながら、このロックは、他の操作(停止、休止など)がデータベースアプリケーション306Cに適用されるのを防ぐであろう。
図4は、一実施形態に従う、アプリケーションの実行を別のアプリケーションへの依存性に基づいて開始するための方法400を図示するフローチャートである。方法400は、代替の実施形態を導き出すために当業者によって修正されてもよい。また、本実施形態における工程は順次示される。しかしながら、いくつかの工程は、図示されるのとは異なる順に生じてもよく、いくつかの工程は同時に実施されてもよく、いくつかの工程は、他の工程と組み合わされてもよく、いくつかの工程は、別の実施形態で不在でもよい。方法400は、図1〜3に関連して記載される要素の変化を参照して記載される。
402では、第1のアプリケーションの実行を開始するようにコマンドが受信される。例えば、図2Bを参照すると、システム208Bのコマンドモジュール224Bは、ウェブアプリケーション214を実行するコマンドを受信することができる。しかしながら、システム208Bは、それが、ウェブアプリケーション214が依存性を有するかどうかを判定するまで、ウェブアプリケーション214を実行しない。
404では、第1のアプリケーションが第2のアプリケーションに依存しているかどうかの判定がなされる。例えば、図2Bを参照すると、システム208Bは、1つ以上の通知を送信することなどによって、この判定を行うことができる。一実施形態では、システム208Bはまた、システム208Cなどの別のシステムと通信して、アプリケーション214に対する依存性を判定することができる。本実施形態に従って、システム208Bは、システム208C及び/又は他のシステムと通信して、ウェブアプリケーション214に対する依存性の少なくとも一部分を判定することができる。例えば、通知モジュール220Bは、この判定を行うときに、応答(例えば、別の通知モジュール及び/又は通知コントローラからの)を受信するのを待つか、又はタイムアウトを待つことができる。
406では、第1のアプリケーションが第2のアプリケーションに依存している場合、方法400は、要素408を実行する。第1のアプリケーションが第2のアプリケーションに依存していない場合、方法400は、要素410を実行する。
408では、第2のアプリケーションの実行が開始される。一実施形態では、金融アプリケーション216は、通知(通知モジュール220B及び/又は通知コントローラ222からなど)を受信することに応答してシステム208Cによって実行される。別の実施形態では、金融アプリケーションの実行が開始すると、ウェブアプリケーションをホストするシステムに応答が送信される。本開示を考慮すれば理解されるように、金融アプリケーションの実行はそれ自体が、他のアプリケーションに依存していてもよい。
410では、第1のアプリケーションの実行が開始される。一実施形態では、ウェブアプリケーション214は、金融アプリケーション(ウェブアプリケーション214によって使用されるデータを提供する)が実行していることを示す応答を受信することに応答して実行される。
図5は、一実施形態に従う、アプリケーションの停止を別のアプリケーションへの依存性に基づいて開始するための方法500を図示するフローチャートである。方法500は、代替の実施形態を導き出すために当業者によって修正されてもよい。また、本実施形態における工程は順次示される。しかしながら、いくつかの工程は、図示されるのとは異なる順に生じてもよく、いくつかの工程は同時に実施されてもよく、いくつかの工程は、他の工程と組み合わされてもよく、いくつかの工程は、別の実施形態で不在でもよい。方法500は、図1〜3に関連して記載される要素の変化を参照して記載される。
502では、第1のアプリケーションの実行を停止するようにコマンドが受信される。例えば、図2Bを参照すると、システム208Cのコマンドモジュール224Cは、金融アプリケーション216を停止するコマンドを受信することができる。しかしながら、システム208Cは、それが、金融アプリケーション216に依存しているアプリケーションがあるかどうかを判定するまで、金融アプリケーション216の実行を停止しない。
504では、第2のアプリケーションが第1のアプリケーションに依存しているかどうかの判定がなされる。例えば、図2Bを参照すると、システム208Cは、1つ以上の通知を送信することなどによって、この判定を行うことができる。一実施形態では、システム208Cはまた、システム208Bなどの別のシステムと通信して、アプリケーション216に対する依存性を判定することができる。本実施形態に従って、システム208Cは、システム208B及び/又は他のシステムと通信して、金融アプリケーション216に対する依存性の少なくとも一部分を判定することができる。例えば、通知モジュール220Cは、この判定を行うときに、応答(例えば、別の通知モジュール及び/又は通知コントローラからの)を受信するのを待つか、又はタイムアウトを待つことができる。
506では、第2のアプリケーションが第1のアプリケーションに依存している場合、方法500は、要素508を実行する。第2のアプリケーションが第2のアプリケーションに依存していない場合、方法500は、要素510を実行する。
508では、第2のアプリケーションの停止が開始される。一実施形態では、ウェブアプリケーション214は、通知(通知モジュール220C及び/又は通知コントローラ222からなど)を受信することに応答してシステム208Bによって停止される。一実施形態では、ウェブアプリケーションが停止されると、金融アプリケーションをホストするシステムに応答が送信されてもよい。また、ウェブアプリケーションの実行はそれ自体が、他のアプリケーションに依存していてもよい。
510では、第1のアプリケーションの停止が開始される。一実施形態では、金融アプリケーション216は、ウェブアプリケーション(金融アプリケーション214によって提供されるデータを使用する)が停止したことを示す応答を受信することに応答して停止される。
図6は、一実施形態に従う、コマンドによって指定されるようにアプリケーションにおける操作を実施するための方法を図示するフローチャートである。方法600は、代替の実施形態を導き出すために当業者によって修正されてもよい。また、本実施形態における工程は順次示される。しかしながら、いくつかの工程は、図示されるのとは異なる順に生じてもよく、いくつかの工程は同時に実施されてもよく、いくつかの工程は、他の工程と組み合わされてもよく、いくつかの工程は、別の実施形態で不在でもよい。方法600は、図1〜3に関連して記載される要素の変化を参照して記載される。
602では、第1のアプリケーションに対してコマンドが受信される。図2Bを参照すると、コマンドは、システム208Bのコマンドモジュール224Bで受信される。コマンドは、数ある中でも起動実行コマンド、停止実行コマンド、又は休止実行コマンドのうちの1つであってもよい。コマンドは、ウェブアプリケーション214などの第1のアプリケーションに実施される操作を指すことができる。この操作は、後述されるように、依存性が判定されるまで第1のアプリケーションに実施されない。
604では、1つ以上の通知が送信される。一実施形態では、この通知は、第1のアプリケーションに対するコマンドを示すことができる。別の実施形態では、この通知は、コマンド(この操作を指定する)それ自体を示すことなく第1のアプリケーションに操作が実施されることを示すことができる。更に別の実施形態では、この通知は、操作及び/又はコマンドを示すことなく第1のアプリケーションが依存しているアプリケーションがあるかどうかを問い合わせることができる。例えば、ウェブアプリケーション214に対する起動実行コマンドを示す通知が送信されてもよい。本明細書に記載されるように、通知は、通知モジュール220Bによって通知コントローラ222(次にこの通知を他のシステムに伝搬し得る)に送信されてもよく、及び/又は通知モジュール220Bは、通知を他のシステムに送信することができる。実装に応じて、通知モジュール220Bは、これらの通知(複数可)を再送して、他の通知モジュール(複数可)が応答するのに十分な時間が与えられたことを確実にすることができる。
606では、方法600は、通知(複数可)への1つ以上の応答を待つ。例えば、通知モジュール220Bは、他のシステム(又は通知コントローラ222)からの応答(複数可)を待つことができる。換言すれば、要素606は、第1のアプリケーションの依存性の判定を待つ。通知モジュール220Bは、タイムアウト又は別の機構を使用して、システム208Bが、受信されたコマンドによって指定される操作を実施するのに過度に長く待たないことを確実にすることができる。例えば、通知モジュール220Bは、この操作を実施する前に所定の時間量待つことができる。方法600のフローチャートのために、タイムアウト又は別の機構は、通知への応答として通知モジュール220Bによって解釈されてもよい。
608では、通知への応答(複数可)が受信される場合、操作(複数可)は、コマンドによって指定されるように第1のアプリケーションに実施される。例えば、通知への応答(複数可)が通知モジュール220Bによって受信されると、システム208Bは、ウェブアプリケーション214の実行を開始することができる。
図7は、一実施形態に従う、アプリケーションに対するコマンドを示す通知を処理するための方法を図示するフローチャートである。方法700は、代替の実施形態を導き出すために当業者によって修正されてもよい。また、本実施形態における工程は順次示される。しかしながら、いくつかの工程は、図示されるのとは異なる順に生じてもよく、いくつかの工程は同時に実施されてもよく、いくつかの工程は、他の工程と組み合わされてもよく、いくつかの工程は、別の実施形態で不在でもよい。方法700は、図1〜3に関連して記載される要素の変化を参照して記載される。
702では、通知が受信される。一実施形態では、この通知は、第1のアプリケーションに対するコマンドを示すことができる。別の実施形態では、この通知は、コマンド(この操作を指定する)それ自体を示すことなく第1のアプリケーションに操作が実施されることを示すことができる。更に別の実施形態では、この通知は、操作及び/又はコマンドを示すことなく第1のアプリケーションが依存しているアプリケーションがあるかどうかを問い合わせることができる。例えば、図2Bを参照すると、通知は、システム208Cの通知モジュール220Cによって受信されてもよい。この通知は、通知モジュール220B及び/又は通知コントローラ222によって送信されてもよい。
704では、受信された通知に関するアプリケーションがあるかどうかに対する判定がなされる。例えば、システム208Cは、それが受信された通知に関するアプリケーションを含むかどうかを判定することができる。この例では、システム208Cは、それが通知に関する金融アプリケーション216を含む(例えば、ホストする)ことを判定することができる。システム208Cは、例えば、ウェブアプリケーション214が金融アプリケーション216によって提供されるデータに依存していることを示し得る独自の内部データ構造を検査することによって、この判定を行うことができる。この場合、システム208Cによる方法700の実行は、要素706に進むことができる。更に、この依存性が判定された場合、システム208Cは、要素710を参照して後述されるように、金融アプリケーション216における操作を実施する予定である。一実施形態では、このアプリケーションへのロックがあるが、このロックが通知によって示されるように同じ操作タイプのためであっても、操作は、要素706に進むことができる。
別の例では、システム208Dは、システム208Bから類似の通知を受信することができる。しかしながら、システム208Dは、それがこの通知に関連するアプリケーションを含まないことを判定することができる。したがって、システム208Dは、ウェブアプリケーション214がデータベースアプリケーション218によって提供されるデータに依存していないことを判定することができる。この場合、システム208Dによる方法700の実行は停止することができる。一実施形態では、受信された通知に関するアプリケーションがあるが、このアプリケーションがそれへのロックを有し、かつこのロックが別の操作タイプのためであっても、システム208Dによる方法700の実行は停止することができる。一実施形態では、受信された通知に関するアプリケーションがあるが、このアプリケーションがそれへのロック、又は別の操作タイプのためであるロックを有しても、システム208Dによる方法700の実行は、このロックが解除されるまで待つことができる。
706では、更なる通知(複数可)が送信される。一実施形態では、この更なる通知は、コマンドを示すことなく第2のアプリケーションに操作が実施されることを示すことができる。更に別の実施形態では、この更なる通知は、操作又はコマンドを示すことなく第2のアプリケーションが依存しているアプリケーションがあるかどうかを問い合わせることができる。例えば、図2Bを参照すると、更なる通知は、システム208Dの通知モジュール220Dによって受信されてもよい。この更なる通知は、通知モジュール220C及び/又は通知コントローラ222によって送信されてもよい。一実施形態では、ロックは、第2のアプリケーションに適用されてもよく、これは、この第2のアプリケーションに実施される操作のタイプを示してもよい。
708では、方法700は、更なる通知(複数可)への1つ以上の応答を待つ。例えば、通知モジュール220Cは、他のシステム(又は通知コントローラ222)からの応答(複数可)を待つことができる。通知モジュール220Cは、タイムアウト又は別の機構を使用して、システム208Cが、要素702で受信される通知に関する操作を実施するのに過度に待たないことを確実にすることができる。例えば、通知モジュール220Cは、この操作を実施する前に所定の時間量待つことができる。方法700のフローチャートのために、タイムアウト又は別の機構は、通知への応答として通知モジュール220Cによって解釈されてもよい。
710では、更なる通知への応答(複数可)が受信される場合、操作(複数可)は、第2のアプリケーションに実施される。上述されるように、依存性が要素704で判定される場合、要素702の通知を受信するシステム(例えば、システム208C)は、第2のアプリケーション(例えば、金融アプリケーション216)へのある特定の操作を実施する予定である。例えば、更なる通知(複数可)への応答(複数可)が通知モジュール220Cによって受信されると、システム208Cは、金融アプリケーション216の実行を開始することができる。
712では、通知への応答(複数可)が送信される。したがって、各かかる応答は、要素702の通知を受信するシステムがその通知を送信するシステムのアプリケーションによって使用されるデータを提供し得ることを示すことができる。一実施形態では、各かかる応答は、操作(要素702で受信される通知に関する)が実施されたことを示すことができる。例えば、要素702で受信される通知への応答は、通知モジュール220Cによって送信されてもよい。この応答は、システム208Cが金融アプリケーション216の実行を開始したことを示すことができる。この応答はまた、金融アプリケーションによって提供されるデータがウェブアプリケーション214によって使用される準備ができていることを、両方のアプリケーションが共通ストレージに位置するデータにアクセスしているようなときに示すことができる。
ネットワークアーキテクチャの要素は、異なるコンピュータシステム及びネットワークを使用して実装されてもよい。1つのかかるネットワーク環境の例が、図8を参照して後述される。
図8は、1つ以上のクライアントが様々なネットワーク接続を介してサーバへのアクセスを備えているネットワークアーキテクチャ800を図示する簡略化されたブロック図である。図8に図示されるように、クライアント802(1)〜(N)がネットワーク810に連結されるため、ネットワーク710を介してサーバ806(システム(複数可)208A〜208D及び/又は通知コントローラ222を実装するために使用され得る)にアクセスすることができる。他のサーバ(図示せず)は代わりに、システム(複数可)208A〜208D及び/又は通知コントローラ222を実装するために使用されてもよい。クライアントは、例えば、デスクトップコンピュータ、ラップトップコンピュータ、ワークステーション、サーバ、携帯電話、スマートフォン、ネットワークが使用可能な携帯情報端末(PDA)などを使用して実装されてもよい。サーバ806にアクセスするためにクライアント802(1)〜(N)によって使用され得るネットワーク810の一例がインターネットである。あるいは、サーバ806へのアクセスは、イーサネット(登録商標)、IEEE 802.11x、又はいくつかの他の通信プロトコルを利用してローカルエリアネットワーク(LAN)によって提供されてもよい。理解されるように、サーバ806は、それに直接連結されるクライアント(図示せず)によってアクセスされてもよい。
図8にも図示されるように、サーバ806は、サーバストレージデバイス808に連結され、これは、クラスタ共有容量などのデータ容量を含む。サーバストレージデバイス808は、単一のストレージデバイス又はストレージデバイスの集まりとして実装されてもよい。サーバストレージデバイス808はまた、ストレージエリアネットワークとして実装されてもよく、これは、遠隔ストレージデバイスをサーバ(例えば、サーバ806)に連結して、遠隔ストレージデバイスが、例えばサーバのOSにローカル接続のストレージデバイスとして現れるようにする。
本開示を考慮すれば、当業者であれば、サーバストレージデバイス808が内部又は外部ハードディスクドライブ(HDD)、光ドライブ(例えば、CD−R、CD−RW、DVD−R、DVD−RWなど)、フラッシュメモリドライブ(例えば、USBメモリスティックなど)、テープドライブなどを含むがこれらに限定されない任意のタイプのコンピュータで読み取り可能な記憶媒体によって実装され得ることを理解するであろう。あるいは、当業者であれば、本開示を考慮すれば、ネットワークアーキテクチャ800が本ネットワークの考察に密接な関係がなく、かつ本明細書では更に考察されないルータ、ファイアウォールなどの他の構成要素を含み得ることも理解するであろう。当業者であれば、他の構成が可能であることも理解するであろう。例えば、クライアント802(1)〜(N)は、サーバ又はインターネットを使用することなくサーバストレージデバイス808に直接連結されてもよく、サーバ806は、クライアント及びサーバの両方を実装するために使用されてもよく、ネットワークアーキテクチャ800は、クライアント802(1)〜(N)を使用することなく実装されてもよく、以下同様に行われる。
ネットワークアーキテクチャ800の例示的な実装として、サーバ806は、クライアント802(1)〜(N)によって生成されたデータへの要求をサーバストレージデバイス808で記憶されたデータにサービスする。多層アプリケーションのアプリケーションのうちのいずれかが、図4〜7によって図示される様式で他のサーバのうちの1つを使用して実装されてもよい。
図9は、本開示を実装するのに好適なコンピュータシステム910のブロック図を図示する。コンピュータシステム910は、数ある中でもシステム(複数可)208A〜208D及び/又は通知コントローラ222などのネットワーク化されたシステム200Bで様々なコンピュータシステムの例示であってもよい。コンピュータシステム910は、コンピュータシステム910の主要なサブシステムを相互接続するバス912を含み、主要なサブシステムには、中央処理装置914、システムメモリ917(典型的には、RAMを含むが、ROM、フラッシュRAMなども含み得る)、入力/出力コントローラ918、オーディオ出力インターフェース922を介するスピーカシステム920などの外部オーディオデバイス、ディスプレイアダプタ926を介するディスプレイ画面924などの外部デバイス、シリアルポート928及び930、キーボード932(キーボードコントローラ933でインターフェース接続される)、ストレージインターフェース934、フロッピーディスク938(「フロッピー」は登録商標、以下同じ)を受容するように動作可能であるフロッピーディスクドライブ937、ファイバチャネルネットワーク990と接続するように動作可能であるホスト・バス・アダプタ(HBA)インターフェースカード935A、SCSIバス939に接続するように動作可能であるホスト・バス・アダプタ(HBA)インターフェースカード935B、及び光ディスク942を受容するように動作可能である光ディスクドライブ940などが含まれる。同様に、マウス946(又はシリアルポート928を介してバス912に連結された他のポイントアンドクリックデバイス)、モデム947(シリアルポート930を介してバス912に連結される)、及びネットワークインターフェース948(バス912に直接連結される)が含まれる。
バス912は、上述のように、中央処理装置914とシステムメモリ917との間のデータ通信を可能にし、システムメモリ917は、リードオンリーメモリ(ROM)又はフラッシュメモリ(いずれも図示せず)と、ランダムアクセスメモリ(RAM)(図示せず)とを含んでもよい。RAMは概して、オペレーティングシステム及びアプリケーションプログラムがロードされるメインメモリである。ROM又はフラッシュメモリは、他のコードと共に、周辺コンポーネンツとの相互作用等の基本的なハードウェアの動作を制御する、ベーシック・インプット/アウトプット・システム(BIOS)を含むことができる。コンピュータシステム910に常駐するアプリケーションは概して、ハードディスクドライブ(例えば、固定ディスク944)、光ドライブ(例えば、光ドライブ940)、フロッピーディスクユニット937、又は他の記憶媒体などのコンピュータで読み取り可能な媒体に記憶され、それを介してアクセスされる。加えて、アプリケーションは、ネットワークモデム947又はインターフェース948を介してアクセスされるときにアプリケーション及びデータ通信技術に従って変調される電子信号の形態であってもよい。
ストレージインターフェース934は、コンピュータシステム910のその他のストレージインターフェースと同様に、固定ディスクドライブ944等の、記憶及び/又は情報の検索のための、標準的なコンピュータで読み取り可能な媒体に接続することができる。固定ディスクドライブ944は、コンピュータシステム910の一部であってもよく、独立していて、他のインターフェースシステムを介してアクセスされてもよい。モデム947は、電話回線を介してリモートサーバへの直接接続を提供してもよく、インターネット・サービス・プロバイダ(ISP)経由でインターネットに接続してもよい。ネットワークインターフェース948は、POP(ポイント・オブ・プレゼンス)を介したインターネットへのダイレクトネットワークリンクを介してリモートサーバへの直接接続を提供してもよい。ネットワークインターフェース948は、デジタル携帯電話接続、セルラー・デジタル・パケット・データ(CDPD)接続、又はデジタル衛星データ接続等を含む無線技術を使用して、かかる接続を提供してもよい。
他の多くのデバイス又はサブシステム(図示せず)も同様の方法で接続することができる(例えば、文書スキャナ、デジタルカメラ等)。逆に、図9に示されるデバイスの全てが、本開示を実践するために存在する必要はない。デバイス及びサブシステムは、図9に示されるものとは異なる手法で相互接続されてもよい。図9に示されるものなどのコンピュータシステムの動作は、当該技術分野において容易に既知であり、本出願では詳細に考察されない。本開示を実装するようにかかるアプリケーションにおける操作を他のアプリケーションへのそれらの依存性に基づいて自動的に実施するためのコード(例えば、図4〜7の方法を参照して上述される)などは、システムメモリ917、固定ディスク944、光ディスク942、又はフロッピーディスク938のうちの1つ以上などのコンピュータで読み取り可能な記憶媒体に記憶されてもよい。メモリ920はまた、プロセッサ910による命令の実行中に一時変数又は他の中間情報を記憶するために使用される。コンピュータシステム910に設けられたオペレーティングシステムは、MS−DOS(登録商標)、MS−WINDOWS(登録商標)、OS/2(登録商標)、UNIX(登録商標)、Linux(登録商標)、又は別の既知のオペレーティングシステムであってもよい。
更に、本明細書に記載される信号に関して、当業者であれば、信号が第1のブロックから第2のブロックに直接伝送されてもよく、又は信号がブロック間で変更(例えば、増幅、減衰、遅延、ラッチ、バッファ、反転、フィルタリング、又は別の方法で変更)されてもよいことを認識するであろう。上述される実施形態の信号は、あるブロックから次のブロックに伝送されると特徴付けられるが、本開示の他の実施形態は、信号の情報及び/又は機能面がブロック間で伝送される限り、かかる直接伝送された信号の代わりに変更された信号を含むことができる。ある程度、第2のブロックにおける信号入力は、関係する回路の物理的制約(例えば、いくらかの減衰及び遅延が必然的に存在する)により、第1のブロックからの第1の信号出力から得られた第2の信号として概念化されてもよい。したがって、本明細書で使用されるとき、第1の信号から得られた第2の信号は、回路制約によるか、又は第1の信号の情報及び/又は最終機能面を変更しない他の回路素子の通過によるものであろうとなかろうと、第1の信号又は第1の信号に対する何らかの変更を含む。
本発明は、いくつかの実施形態に関連して記載したが、本発明は、本明細書に記載される特定の形態に限定されることを意図しない。それとは逆に、添付の「特許請求の範囲」によって定義されるような本発明の範囲内に合理的に含まれ得るように、かかる代替、修正、及び均等物を網羅することを意図する。

Claims (20)

  1. 方法であって、
    コマンドを受信することであって、
    前記コマンドが、第1のアプリケーションを起動することであり、
    前記第1のアプリケーションが、少なくとも1つの別のアプリケーションによって提供されるデータを使用するように構成される、受信することと、
    前記第1のアプリケーションが第2のアプリケーションによって提供されるデータを使用するように構成されるかどうかを判定することであって、
    前記判定することが、第1の通知を前記第2のアプリケーションに送信することを含み、
    前記判定することが、前記第1のアプリケーションの実行を開始する前に実行され、
    前記判定することが、前記コマンドの受信に応答して実施される、判定することと、
    前記第1のアプリケーションが前記第2のアプリケーションによって提供されるデータを使用するように構成されることの判定に応答して、前記第2のアプリケーションの実行を開始することと、
    前記第2のアプリケーションの実行の開始に応答して、前記第1のアプリケーションの実行を開始することと、
    を含む、方法。
  2. 前記判定することが、
    第2の通知を第3のアプリケーションに送信することと、
    前記第1の通知を前記第2のアプリケーションに送信することに続いて、前記第2のアプリケーションから応答を受信することであって、前記第2のアプリケーションからの前記応答は、前記第2のアプリケーションが前記第1のアプリケーションによって使用されるデータを提供することを示す、受信することと、
    前記第2の通知を前記第3のアプリケーションに送信することに続いて、前記第3のアプリケーションから応答を受信することであって、前記第3のアプリケーションからの前記応答が、前記第3のアプリケーションは前記第1のアプリケーションによって使用されるデータを提供しないことを示す、受信することと、
    を更に含む請求項1に記載の方法。
  3. 前記通知が、前記第1のアプリケーションを起動する前記コマンドの前記受信を示す、請求項1に記載の方法。
  4. 第1のエンティティが、前記第1のアプリケーションを操作し、
    第2のエンティティが、前記第2のアプリケーションを操作し、
    前記第2のエンティティが、前記第2のアプリケーションが前記第1のアプリケーションに前記データを提供するように構成されるかどうかを判定することを実施し、
    前記第2のエンティティが、前記通知の受信に応答して前記判定することを実施する、請求項3に記載の方法。
  5. 前記第2のアプリケーションが第3のアプリケーションによって提供される他のデータを使用するように構成されるかどうかを判定することと、
    前記第2のアプリケーションが前記第3のアプリケーションによって提供される他のデータを使用することの判定に応答して、前記第3のアプリケーションの実行を開始することと、を更に含み、
    前記第3のアプリケーションの実行を開始することが、前記第2のアプリケーションの前記実行を開始することの前に実施される、請求項3に記載の方法。
  6. 前記第2のアプリケーションが前記第3のアプリケーションからの前記他のデータを使用することを判定することが、二次通知の受信に応答して実施され、
    前記二次通知が、前記第2のアプリケーションが実行されることを示す、請求項5に記載の方法。
  7. 第3のエンティティが、前記第3のアプリケーションを操作し、
    前記第3のエンティティが、前記第2のアプリケーションが前記第3のアプリケーションからの前記他のデータを使用することを判定し、
    前記第3のエンティティが、前記第2のアプリケーションが前記二次通知の前記受信に応答して前記第3のアプリケーションからの前記他のデータを使用することの前記判定を実施する、請求項6に記載の方法。
  8. 複数のアプリケーション間の依存性を判定することを更に含み、
    前記依存性が、前記複数のアプリケーションの前記第1のアプリケーションが、少なくとも、前記第1のアプリケーションが前記第2のアプリケーションによって提供されるデータを使用するという理由から、前記複数のアプリケーションの前記第2のアプリケーションに依存していることを示し、
    前記依存性を判定することが、前記コマンドの前記受信に応答して実施される、請求項1に記載の方法。
  9. 前記第2のアプリケーションの実行を開始することが、前記依存性に基づく、請求項8に記載の方法。
  10. 前記第2のアプリケーションにロックを適用することを更に含み、
    前記適用することが、前記第1のアプリケーションが前記第2のアプリケーションによって提供されるデータを使用するように構成されることの前記判定に応答して実施され、
    前記ロックが、前記第2のアプリケーションが前記第1のアプリケーションを起動する前記コマンドと関連付けられることを示し、
    前記ロックが、前記第2のアプリケーションに開始される別の動作を防ぎ、
    前記別の動作が、別のコマンドと関連付けられた動作であり、
    前記別のコマンドが、前記第1のアプリケーションを起動する前記コマンド以外のコマンドである、請求項1に記載の方法。
  11. システムであって、
    1つ以上のプロセッサと、
    第1のアプリケーションであって、
    前記第1のアプリケーションが、前記1つ以上のプロセッサを使用して実行されるように構成される、第1のアプリケーションと、
    コマンドモジュールであって、
    前記コマンドモジュールが、前記第1のアプリケーションを起動するコマンドを受信するように構成され、
    前記第1のアプリケーションが少なくとも1つの別のアプリケーションによって提供されるデータを使用するよう構成される、
    コマンドモジュールと、
    通知モジュールであって、
    前記通知モジュールが、前記第1のアプリケーションが第2のアプリケーションによって提供されるデータを使用するよう構成されるか否かを判定するために構成され、
    前記判定することが、第1の通知を前記第2のアプリケーションに送信することを含み、
    前記判定することが、前記第1のアプリケーションの実行を開始する前に実行されるよう構成され、
    前記判定することが、前記第1のアプリケーションを起動する前記コマンドの受信に応答して実行される、
    通知モジュールとを備え、
    前記システムは更に、
    前記第1のアプリケーションが前記第2のアプリケーションによって提供されるデータを使用するよう構成されると判定することに応答して前記第2のアプリケーションの実行を開始し、
    前記第2のアプリケーションの実行を開始することに応答して前記第1のアプリケーションの実行を開始する、
    ように構成される、システム
  12. 前記通知モジュールは更に、第2のアプリケーションが実行されていることを示す応答通知を受信するよう構成され、前記第1のアプリケーションが、前記応答通知を受信することに応答して実行されるように構成される、請求項11に記載のシステム
  13. 前記通知モジュールが更に、応答通知を受信するよう構成され、
    前記応答通知が、第2のアプリケーションが実行されていることを示し、
    前記応答通知が、前記第1のアプリケーションが前記第2のアプリケーションによって提供されるデータに依存していることを更に示す、請求項11に記載のシステム
  14. 前記コマンドモジュールが、前記第1のアプリケーションを停止するコマンドを受信するように更に構成され、
    前記通知モジュールが、別の通知を送信するように更に構成され、
    前記別の通知が、前記第1のアプリケーションを停止する前記コマンドの受信を示し、
    前記通知モジュールが、別の応答通知を受信するように更に構成され、
    前記別の応答通知が、第3のアプリケーションが前記第1のアプリケーションによって提供されるデータに依存していることを示す、請求項11に記載のシステム
  15. 前記第3のアプリケーションが前記通知モジュールが前記別の通知の前記送信を実施することに応答して停止されることを前記応答通知が更に示す、請求項14に記載のシステム
  16. 1つ以上のプロセッサによって実行可能なプログラム命令を記憶するコンピュータで読み取り可能な記憶媒体において、
    前記1つ以上のプロセッサによって、
    コマンドを受信することであって、
    前記コマンドが、第1のアプリケーションを起動することであ
    前記第1のアプリケーションは、少なくとも1つの別のアプリケーションによって提供されるデータを使用するよう構成される、
    受信することと、
    前記第1のアプリケーションが第2のアプリケーションによって提供されるデータを使用するよう構成されるか否かを判定することであって、
    前記第1のアプリケーションが前記第2のアプリケーションによって提供されるデータを使用するよう構成されるか否かを判定することは、第1の通知を前記第2のアプリケーションに送信することを含み、
    前記判定することは、前記第1のアプリケーションの実行を開始する前に実行され、
    前記判定することは、前記コマンドの受信に応答して実行される、
    判定することと、
    前記第2のアプリケーションの実行を開始することであって、
    前記プログラム命令が、前記第1のアプリケーションが前記第2のアプリケーションによって提供されるデータを使用するよう構成されると判定することに応答して、前記第2のアプリケーションの実行を開始するよう構成される、
    開始することと、
    前記第2のアプリケーションの実行を開始することに応答して、前記第1のアプリケーションの実行を開始することと、
    を実行する、コンピュータで読み取り可能な記憶媒体。
  17. 前記プログラム命令が、
    応答通知を受信することであって、
    前記応答通知は第2のアプリケーションが実行されていることを示し、
    前記応答通知が更に、前記第1のアプリケーションが前記第2のアプリケーションからのデータに依存していることを更に示す、
    受信することを更に実行可能である、請求項16に記載のコンピュータで読み取り可能な記憶媒体。
  18. 前記プログラム命令が、
    第2のアプリケーションが実行されていることを示す応答通知を受信することと、
    前記応答通知の受信に応答して実行される前記第1のアプリケーションを実行することと、
    更に実行可能であ、請求項16に記載のコンピュータで読み取り可能な記憶媒体。
  19. 前記プログラム命令が、
    前記第1のアプリケーションを停止するコマンドを受信することと、
    別の通知を送信することであって、
    前記別の通知が、前記第1のアプリケーションを停止する前記コマンドの受信を示す、送信することと、
    別の応答通知を受信することであって、
    前記別の応答通知が、第3のアプリケーションが前記第1のアプリケーションからのデータに依存していることを示す、受信することと、を行うように、更に実行可能である、請求項16に記載のコンピュータで読み取り可能な記憶媒体。
  20. 前記応答通知が、前記第3のアプリケーションが前記別の通知の前記送信に応答して停止されることを更に示す、請求項19に記載のコンピュータで読み取り可能な記憶媒体。
JP2014537375A 2011-10-24 2012-10-24 他のアプリケーションへの依存性に基づく、アプリケーションにおける操作の自動的実施のための方法、システムおよび記憶媒体 Expired - Fee Related JP6117221B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/279,864 2011-10-24
US13/279,864 US9058205B2 (en) 2011-10-24 2011-10-24 Automatically performing operations on applications based on dependencies on other applications
PCT/US2012/061572 WO2013063031A2 (en) 2011-10-24 2012-10-24 Automatically performing operations on applications based on dependencies on other applications

Publications (3)

Publication Number Publication Date
JP2014532909A JP2014532909A (ja) 2014-12-08
JP2014532909A5 JP2014532909A5 (ja) 2015-12-10
JP6117221B2 true JP6117221B2 (ja) 2017-04-19

Family

ID=47216407

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014537375A Expired - Fee Related JP6117221B2 (ja) 2011-10-24 2012-10-24 他のアプリケーションへの依存性に基づく、アプリケーションにおける操作の自動的実施のための方法、システムおよび記憶媒体

Country Status (5)

Country Link
US (1) US9058205B2 (ja)
EP (1) EP2771786A4 (ja)
JP (1) JP6117221B2 (ja)
CN (1) CN103946799B (ja)
WO (1) WO2013063031A2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9973565B2 (en) 2013-05-06 2018-05-15 Samsung Electronics Co., Ltd. Temporary applications for mobile devices
JP6201478B2 (ja) * 2013-07-22 2017-09-27 富士通株式会社 処理順序制御装置、処理順序制御方法及び処理順序制御プログラム
EP3278283A1 (en) 2015-03-23 2018-02-07 Morgan Stanley Services Group Inc. Tracking data flow in distributed computing systems
US10474445B2 (en) * 2015-12-07 2019-11-12 Microsoft Technology Licensing, Llc Updating dependent services
CN105893132B (zh) * 2016-03-31 2020-07-24 联想(北京)有限公司 一种控制方法及电子设备
CN106484260B (zh) * 2016-07-21 2019-08-23 北京安云世纪科技有限公司 一种移动终端的应用程序处理方法、装置和移动终端
CN108132832B (zh) * 2016-12-01 2021-01-19 腾讯科技(深圳)有限公司 应用程序启动方法和装置
US11137998B2 (en) * 2018-10-08 2021-10-05 Ebay Inc. Dependency lock in CICD pipelines

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4901221A (en) 1986-04-14 1990-02-13 National Instruments, Inc. Graphical system for modelling a process and associated method
US6340977B1 (en) 1999-05-07 2002-01-22 Philip Lui System and method for dynamic assistance in software applications using behavior and host application models
EP1217799B1 (en) * 2000-12-22 2007-01-24 Sun Microsystems, Inc. Server side execution of application modules in a client and server system
US20020087734A1 (en) * 2000-12-29 2002-07-04 Marshall Donald Brent System and method for managing dependencies in a component-based system
US6748470B2 (en) 2001-11-13 2004-06-08 Microsoft Corporation Method and system for locking multiple resources in a distributed environment
US7058940B2 (en) 2002-05-23 2006-06-06 Bea Systems, Inc. System and method for extending application functionality and content
JP4276909B2 (ja) * 2002-09-13 2009-06-10 株式会社リコー 画像形成装置およびアプリ起動制御方法
EP1660994A2 (en) 2003-08-07 2006-05-31 National Instruments Corporation A graphical program which executes a timed loop
US7551552B2 (en) 2003-10-17 2009-06-23 Microsoft Corporation Method for providing guaranteed distributed failure notification
US8245190B2 (en) * 2004-06-14 2012-08-14 Alcatel Lucent First and second manager components that communicate to initialize and/or shut down software components in an ordered sequence
US7426715B2 (en) * 2004-06-14 2008-09-16 Lucent Technologies Inc. Shutting down a plurality of software components in an ordered sequence
WO2006043321A1 (ja) * 2004-10-20 2006-04-27 Fujitsu Limited アプリケーション管理プログラム、アプリケーション管理方法、およびアプリケーション管理装置
JPWO2007023683A1 (ja) * 2005-08-24 2009-03-26 パナソニック株式会社 メディア処理方法、メディア処理プログラム
JP4940599B2 (ja) * 2005-08-26 2012-05-30 富士通株式会社 情報処理装置、情報処理装置制御プログラム、情報処理装置制御方法
WO2007087109A2 (en) 2005-12-21 2007-08-02 Transip, Inc. System and method for efficient replication of and access to application specific environments and data
US8296785B2 (en) 2007-10-12 2012-10-23 International Business Machines Corporation Providing links between application programs
US8539492B1 (en) * 2010-03-23 2013-09-17 Amazon Technologies, Inc. Managing data dependencies among multiple jobs using separate tables that store job results and dependency satisfaction
CN102195817B (zh) * 2011-05-25 2014-09-17 上海华为技术有限公司 一种软件升级方法和装置以及软件回退方法和装置

Also Published As

Publication number Publication date
EP2771786A2 (en) 2014-09-03
JP2014532909A (ja) 2014-12-08
US20130104146A1 (en) 2013-04-25
WO2013063031A2 (en) 2013-05-02
CN103946799A (zh) 2014-07-23
WO2013063031A3 (en) 2013-06-27
US9058205B2 (en) 2015-06-16
EP2771786A4 (en) 2015-08-26
CN103946799B (zh) 2017-12-19

Similar Documents

Publication Publication Date Title
JP6117221B2 (ja) 他のアプリケーションへの依存性に基づく、アプリケーションにおける操作の自動的実施のための方法、システムおよび記憶媒体
US10235209B2 (en) Hybrid task framework
US9887908B2 (en) Data processing lock signal transmission
US10275328B2 (en) Fault tolerance for hybrid cloud deployments
US7743107B2 (en) System and method for using remote module on VIOS to manage backups to remote backup servers
US8966318B1 (en) Method to validate availability of applications within a backup image
US8028048B2 (en) Method and apparatus for policy-based provisioning in a virtualized service delivery environment
US10050939B2 (en) Techniques for communication in hybrid cloud system
US9354917B2 (en) Method and system for network-less guest OS and software provisioning
US9128773B2 (en) Data processing environment event correlation
US20130080642A1 (en) Data Processing Environment Integration Control
US20120221690A1 (en) Data Processing Environment Monitoring
CN104113574B (zh) 一种广域网可信虚拟机的安全迁移方法及系统
US9015707B2 (en) Virtual machine rapid provisioning system
WO2018103356A1 (zh) 一种数据库服务提供方法及服务器
US11805102B2 (en) Remote management of software on private networks
US11822932B2 (en) Provisioning services (PVS) cloud streaming with read cache
US20120174100A1 (en) Pluggable activation engine extensions via virtual disks
US11190577B2 (en) Single data transmission using a data management server
US20210026702A1 (en) Tag assisted cloud resource identification for onboarding and application blueprint construction
US11265180B2 (en) Concurrent cluster nodes self start
US20170118084A1 (en) Configurable client filtering rules
AU2021202457B2 (en) Provisioning service (PVS) cloud streaming with read cache
US20240256496A1 (en) Management of network file copy operations to a new data store
WO2023000705A1 (zh) 应用程序虚拟化方法、系统、电子设备及存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151020

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20151020

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20161004

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20161228

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170202

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170322

R150 Certificate of patent or registration of utility model

Ref document number: 6117221

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R360 Written notification for declining of transfer of rights

Free format text: JAPANESE INTERMEDIATE CODE: R360

R371 Transfer withdrawn

Free format text: JAPANESE INTERMEDIATE CODE: R371

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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