JP2015515684A - アプリケーションをアセンブルするためのブループリント自動アセンブリ - Google Patents

アプリケーションをアセンブルするためのブループリント自動アセンブリ Download PDF

Info

Publication number
JP2015515684A
JP2015515684A JP2015503457A JP2015503457A JP2015515684A JP 2015515684 A JP2015515684 A JP 2015515684A JP 2015503457 A JP2015503457 A JP 2015503457A JP 2015503457 A JP2015503457 A JP 2015503457A JP 2015515684 A JP2015515684 A JP 2015515684A
Authority
JP
Japan
Prior art keywords
blueprint
micro
application
blueprints
classes
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2015503457A
Other languages
English (en)
Other versions
JP6283654B2 (ja
JP2015515684A5 (ja
Inventor
シャルマ アブヒジト
シャルマ アブヒジト
カルニク ネエラン
カルニク ネエラン
ガシサス アブハイ
ガシサス アブハイ
Original Assignee
ビーエムシー ソフトウェア,インコーポレーテッド
ビーエムシー ソフトウェア,インコーポレーテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ビーエムシー ソフトウェア,インコーポレーテッド, ビーエムシー ソフトウェア,インコーポレーテッド filed Critical ビーエムシー ソフトウェア,インコーポレーテッド
Publication of JP2015515684A publication Critical patent/JP2015515684A/ja
Publication of JP2015515684A5 publication Critical patent/JP2015515684A5/ja
Application granted granted Critical
Publication of JP6283654B2 publication Critical patent/JP6283654B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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/20Software design

Landscapes

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

Abstract

本実施形態により、ブループリントの自動アセンブリを実行するデータ処理装置が提供される。このデータ処理装置は、アプリケーションをアセンブルするための、ブループリントの自動アセンブリを実行させる要求を受け取るよう構成されるマイクロ・ブループリント・アセンブラであって、この要求が、少なくとも1つの特徴を規定する、マイクロ・ブループリント・アセンブラと、モデルデータを格納するよう構成されるモデルのデータベースと、を備える。このモデルデータは、複数のクラス、及びクラスプロパティを含む。このデータ処理装置は、複数のマイクロ・ブループリントを格納するよう構成されるマイクロ・ブループリントのデータベースをさらに備える。各マイクロ・ブループリントは、スタックエレメント又はサービス層の機能コンポーネントに対応し、この機能コンポーネントには、これらの複数のクラスのうちの1つ以上のクラス、並びに、少なくとも1つの必要な能力及び有効な能力の注釈が付けられる。この要求に従って、このマイクロ・ブループリント・アセンブラは、モデルデータ及び複数のマイクロ・ブループリントに基づいて、少なくとも1つのアプリケーションのブループリントを生成するよう構成される。【選択図】 図1

Description

(関連出願の相互参照)
本出願は、2012年3月28日出願の「アプリケーションをアセンブルするためのブループリント自動アセンブリ(AUTOMATED BLUEPRINT ASSEMPLY FOR ASSEMBLING AN APPLICATION)」と題する米国特許出願番号第13/433,162号の優先権の主張をし、当該出願を継続する。また当該出願の内容は引用により本明細書中に完全に組み込まれるものとする。
(技術分野)
本開示は、一般に、ブループリントの自動アセンブリに関する。
アプリケーション又はサーバを配置するためには、トポロジ(例えば、層の数)、構成、動作、制約、オペレーティングシステム、及びソフトウェアパッケージの供給が必要であるが、これらはアプリケーションの機能ブループリントにより規定することができる。リソースセット及び必要な計算、記憶容量、ネットワークへの割り当てに関して、アプリケーションを提供できるであろうと思われる方法(数ある中から)を、各機能ブループリントの配置ブループリントが規定する。例えば、「QA」の配置ブループリントは、1つの仮想マシン(VM)で単一のリソースセットを用いて、アプリケーションの3つの層の全てをホストすることができ、一方、「生産」の配置ブループリントは、3つの個々のアプリケーション層を3つの異なるリソースセットに分配することができる。
現在、機能ブループリント又は配置ブループリントを生成するためには、複数の異なる従来の方法が存在する。しかし、これらの従来の方法では、例えば、全ての機能コンポーネント及びそれらの各ソフトウェア・スタックをそのままの状態で規定しているアプリケーションのテンプレートなどの一体型設計によるブループリントが提供されている。その結果として、従来のブループリントは、幅広い再使用には向いていない可能性がある。例えば、ソフトウェア・スタック内のソフトウェア・スタックのエレメントに対して異なる複数の選択肢が存在する可能性がある。現状の一体型設計を用いると、複数の選択肢が存在し得ることで、全ての異なる選択肢のために複数の機能ブループリントを作成することを意味しかねない。再使用可能なサービス、同様の適合基盤(conformant infrastructure)、ソフトウェア・スタックのエレメント、及び/又は、ソフトウェアのバージョンを完全に分けて選択することにより、カタログ内で規定され、維持される完全なブループリントが急増してしまう恐れがある。その結果、従来のブループリントを管理できなくなる可能性がある、あるいは、面倒になってしまう。
本実施形態により、ブループリントの自動アセンブリを実行するデータ処理装置が提供される。このデータ処理装置は、アプリケーションをアセンブルするための、ブループリントの自動アセンブリを実行させる要求を受け取るよう構成されるマイクロ・ブループリント・アセンブラであって、この要求が、少なくとも1つの特徴を規定する、マイクロ・ブループリント・アセンブラと、モデルデータを格納するよう構成されるモデルのデータベースと、を備える。このモデルデータには、関係情報を用いて階層構造で配列される複数のクラスと、これらの複数のクラスのうちの少なくとも一部に関するクラスプロパティとが含まれる。このデータ処理装置は、複数のマイクロ・ブループリントを格納するよう構成されるマイクロ・ブループリントのデータベースをさらに備える。各マイクロ・ブループリントは、スタックエレメント、又はサービス層の機能コンポーネントに対応し、この機能コンポーネントには、これらの複数のクラスのうちの1つ以上のクラス、並びに、少なくとも1つの必要な能力、及び有効な能力の注釈が付けられる。このマイクロ・ブループリント・アセンブラは、上記の要求に従って、モデルデータ及び複数のマイクロ・ブループリントに基づいて、少なくとも1つのアプリケーションのブループリントを生成するよう構成されている。
一実施形態では、上記の要求がまた、少なくとも1つの制約及び環境も規定する。また、少なくとも1つの特徴は非機能的特徴でよい。複数のクラスはスタックエレメントの異なるレベルを表すことができ、関係情報は複数のクラス間の関係を規定することができる。
複数のクラスには、アプリケーション、デプロイメント、アプリケーションサーバ、プラットフォームランタイム、オペレーティングシステム、及びデータベースサーバのうちの少なくとも1つを有するコアの抽象クラスが含まれ、各コアの抽象クラスは、スタックエレメントに関するマイクロ・ブループリントに対応するサブクラスを含むことができる。
このマイクロ・ブループリント・アセンブラは、少なくとも1つのアプリケーションのブループリントを生成するよう構成され、この少なくとも1つのアプリケーションのブループリントを生成する動作には、上記の要求に従って、各サービス層に対して、及び各サービス層内の各スタックエレメントに対して、複数のマイクロ・ブループリントのサブセットをアセンブルすることが含まれ得る。
このマイクロ・ブループリント・アセンブラは、アプリケーションのサービス層に対応するマイクロ・ブループリントをアセンブルするよう構成されるアプリケーション・ブループリント・アセンブラと、各サービス層のスタックエレメントに対応するマイクロ・ブループリントをアセンブルするよう構成される機能コンポーネントのブループリント・アセンブラと、を備えることができる。
このアプリケーション・ブループリント・アセンブラは、マイクロ・ブループリントをアセンブルするよう構成され、このマイクロ・ブループリントをアセンブルする動作には、要求、並びに、複数のマイクロ・ブループリントの必要な能力、及び有効な能力に従って、マイクロ・ブループリントのデータベースからサービス層に対応するマイクロ・ブループリントを取得することが含まれ得る。
この機能コンポーネントのブループリント・アセンブラは、マイクロ・ブループリントをアセンブルするよう構成され、このマイクロ・ブループリントをアセンブルする動作には、要求及び関係情報に従って、各サービス層のスタックエレメントに対応するマイクロ・ブループリントを取得することが含まれ得る。
このアプリケーション・ブループリント・アセンブラは、マイクロ・ブループリントをアセンブルするよう構成され、このマイクロ・ブループリントをアセンブルする動作には、人工知能(AI)の探索アルゴリズムを用いて、マイクロ・ブループリントのデータベースからサービス層に対応するマイクロ・ブループリントを取得することが含まれ得る。
このマイクロ・ブループリント・アセンブラは、要求を実現させるための適合性の順番でアプリケーションのブループリントを並べたリストを生成するよう構成され得る。
また本実施形態により、ブループリントの自動アセンブリを実行する方法も提供される。この方法には、アプリケーションをアセンブルするための、ブループリントの自動アセンブリを実行させる要求を受け取る工程であって、この要求が、少なくとも1つの特徴を規定する、工程と、上記の要求に従って、モデルデータ及び複数のマイクロ・ブループリントに基づいて、少なくとも1つのアプリケーションのブループリントを生成する工程と、が含まれる。このモデルデータには、関係情報を用いて階層構造で配列される複数のクラスと、これらの複数のクラスのうちの少なくとも一部に関するクラスプロパティとが含まれる。複数のマイクロ・ブループリントの各マイクロ・ブループリントは、スタックエレメント又はサービス層の機能コンポーネントに対応し、この機能コンポーネントには、複数のクラスのうちの1つ以上のクラス、並びに、少なくとも1つの必要な能力及び有効な能力の注釈が付けられる。
一実施形態では、上記の要求はまた、少なくとも1つの制約及び環境も規定する。また、少なくとも1つの特徴は、非機能的特徴でよい。複数のクラスはスタックエレメントの異なるレベルを表すことができ、関係情報は複数のクラス間の関係を規定することができる。
複数のクラスには、アプリケーション、デプロイメント、アプリケーションサーバ、プラットフォームランタイム、オペレーティングシステム、及びデータベースサーバのうちの少なくとも1つを有するコアの抽象クラスが含まれ、各コアの抽象クラスは、スタックエレメントに関するマイクロ・ブループリントに対応するサブクラスを含むことができる。
上記の少なくとも1つのアプリケーションのブループリントを生成する工程には、上記の要求に従って、各サービス層に対して、及び各サービス層内の各スタックエレメントに対して、複数のマイクロ・ブループリントのサブセットをアセンブルすることが含まれ得る。上記の少なくとも1つのアプリケーションのブループリントを生成する工程には、アプリケーションのサービス層に対応するマイクロ・ブループリントをアセンブルすることと、各サービス層のスタックエレメントに対応するマイクロ・ブループリントをアセンブルすることと、が含まれ得る。
また本実施形態により、実行されると1つ以上のプロセッサが処理を行う命令を格納する非一時的なコンピュータ可読媒体も提供される。この命令には、アプリケーションをアセンブルするための、ブループリントの自動アセンブリを実行させる要求を受け取らせる命令であって、上記の要求が、少なくとも1つの特徴を規定する、命令と、上記の要求に従って、モデルデータ及び複数のマイクロ・ブループリントに基づいて、少なくとも1つのアプリケーションのブループリントを生成させる命令と、が含まれる。このモデルデータには、関係情報を用いて階層構造で配列される複数のクラスと、この複数のクラスのうちの少なくとも一部に関するクラスプロパティとが含まれる。複数のマイクロ・ブループリントのうちの各マイクロ・ブループリントは、スタックエレメント又はサービス層の機能コンポーネントに対応し、この機能コンポーネントには、上記の複数のクラスのうちの1つ以上のクラス、並びに、少なくとも1つの必要な能力及び有効な能力の注釈が付けられる。
図1は、実施形態に従った、ブループリントの自動アセンブリを実行するデータ処理装置を示す図である。
図2は、実施形態に従った、図1のデータ処理装置の例示的な動作を示すフローチャートである。
図3は、実施形態に従った、図1のモデルのデータベースのモデルデータを示す図である。
図4は、実施形態に従った、ソフトウェア・スタックのエレメント又はサービスを表す機能コンポーネントの注釈を付けるための抽象モデルを示す図である。
図5は、実施形態に従った、モデルデータのクラスと、ソフトウェア・スタックのエレメントに対応するマイクロ・ブループリントとの間の割り当てを示す図である。
図6は、実施形態に従った、複数のサービス層に対応する、例示的なマイクロ・ブループリント、及びそれらのクラスの注釈を示す図である。
図7は、実施形態に従った、複数のサービス層に関して、マイクロ・ブループリントをアセンブルするための工程を示すフローチャートである。
図8は、実施形態に従った、ソフトウェア・スタックのエレメントに対応するマイクロ・ブループリントをアセンブルするための処理を示すフローチャートである。
図1は、実施形態に従った、ブループリントの自動アセンブリを実行するデータ処理装置100の図である。このデータ処理装置100は、マイクロ・ブループリント・アセンブラ110、モデルのデータベース135、及びマイクロ・ブループリントのデータベース130を備えることができる。モデルのデータベース135はモデルデータを格納し、マイクロ・ブループリントのデータベース130がモデルデータからの情報の注釈を付けたマイクロ・ブループリントを格納する。
マイクロ・ブループリントは、ソフトウェア・スタックのエレメント、及び/又は、サービス層を含むことができる。例えば、各マイクロ・ブループリントは、ソフトウェア・スタックのエレメント(例えば、Java Oracle JRE 1.6)、又はサービス層の機能コンポーネント(例えば、ウェブ層、アプリケーション層、又はデータベース層)に対応可能である。サービス層用のマイクロ・ブループリントとは、例えば、ウェブ層、アプリケーション層、及びデータベース層など、アプリケーションのより汎用的な機能コンポーネントのことを指すことができる。ソフトウェア・スタックのエレメント用のマイクロ・ブループリントとは、各サービス層のより専門的な機能コンポーネントのことを指すことができる。例えば、ソフトウェア・スタックのエレメントに対して、マイクロ・ブループリントは、アプリケーションの各サービス層用のソフトウェア・スタックのエレメントを備えることができる。一実施形態では、このマイクロ・ブループリントは、例えば、Java実行時環境(JRE)又はアプリケーションサーバのOracle WebLogic 11.5gなどの、ソフトウェア・スタックのエレメントに関する、且つ「PetStore App- Tier Services」などのサービス層に関する、再使用及び構成可能なブループリントでよい。本実施形態に従うと、これらのマイクロ・ブループリントを一体に組み合わせて、完全なアプリケーションのブループリント、又は機能コンポーネントのブループリントをアセンブルすることが可能である。
一般に、ブループリントとは、再使用が可能なアプリケーションの基本的なテンプレートを意味し、このブループリントにより、異なるアプリケーションの図を表すことが可能となる。これらのブループリントは、通常、リポジトリに格納され、例えば、アプリケーションの開発などの種々の目的のために、ユーザが選択するためのカタログの一部として利用可能である。企業及びアプリケーションの設計者は、ミドルウェアの管理者、データベースの管理者、及びオペレーティングシステムの管理者と共同し、例えば、企業のアーキテクチャの標準、基準アーキテクチャ、セキュリティ標準、安定版、標準準拠、及び/又は、性能特性に基づいて、これらのブループリントを規定することができる。すなわち、ブループリントとは、アーキテクチャ図、及び開発図などのアプリケーション又はサービスの異なる局面、或いは図の宣言的仕様記述であり得る。クラウドサービス、及びその他のユースケースに関連する種々のキーアプリケーションを有効にするためにこれらのブループリントが使用される。あるアプリケーションでは、ユーザがブループリントを用いて、クラウド環境内にアプリケーションを供給することが可能である。一般に、ブループリントには、機能ブループリントと配置ブループリントの二種類のブループリントがある。機能ブループリントは、その層(機能コンポーネントとも呼ばれる)に関する、アプリケーション/サービスのアーキテクチャ図、すなわち構造、及びそれらのコンポーネント間の接続を規定することができる。また、この機能ブループリントは、ソフトウェア・スタックのエレメント、及び各機能コンポーネント内の関連するアーチファクト(スタートアップスクリプト、インストールスクリプト)を規定することもできる。配置ブループリントは、その種々の機能コンポーネントを配置するためのリソース要件(例えば、計算、記憶容量、及びネットワーク)に関して、アプリケーションに関する配置図、すなわち計画を規定することができる。アプリケーションの機能ブループリントには、複数の配置ブループリントが適合可能である。これらの複数の配置ブループリントには、QAの配置ブループリントが含まれ得、このQAの配置ブループリントでは、特定のCPU及びメモリリソースを有する単一の仮想マシン(VM)上に3つの全ての機能コンポーネント(例えば、ウェブ層、アプリケーション層、及びデータベース層)が配置される。一方、生産の配置ブループリントでは、3つの機能コンポーネントはそれぞれ、3つの個々のVMに配置され得る。これらの複数の配置ブループリントには、QAの配置ブループリントと生産の配置ブループリント以外にも、数多くの異なる種類のブループリントが含まれ得る。
下記にさらに詳しく説明するが、データ処理装置100は、ブループリントを構成可能で再使用可能なマイクロ・ブループリントに分割する。そして、これらのマイクロ・ブループリントに、モデルのデータベース135内のモデルデータからの1つ以上のクラスの注釈が付けられる。基本的には、これらの注釈を付けたマイクロ・ブループリントにより、サービス又はソフトウェア・スタックのマイクロ・ブループリントは、1つ以上のモデルデータのクラスに割り当てられ、そして、このモデルデータには、クラス間の関係を規定する関係情報も含まれる。注釈付のマイクロ・ブループリント及びモデルデータを用いることにより、このデータ処理装置100は、完全に構成されたブループリントを、マイクロ・ブループリントから、その場で自動的にアセンブルし、これにより、アプリケーションの供給、すなわち開発が可能となる。すなわち、このデータ処理装置100は、モデル駆動型のアプローチを行って、マイクロ・ブループリントなどの小さなビルディング・ブロックから、完全なブループリントを柔軟で動的に、且つ自動で構成する。上記に示すとおり、この完全なアプリケーションのブループリントには、機能ブループリント、又は配置ブループリントが含まれ得る。この完全なブループリントを用いて、そのコンポーネント又は層と、それらの各ソフトウェア・スタックのエレメントとを含む完全なアプリケーションを作り出すことができる。
一実施形態に従うと、このマイクロ・ブループリント・アセンブラ110は、アプリケーションをアセンブルするための、ブループリントの自動アセンブリを実行させる要求を受け取ることができる。この要求により、アプリケーションをアセンブルするための特徴、制約、又は1つ以上の環境を指定することができる。この要求により、アプリケーションをアセンブルする際の、機能的局面(例えば、特徴、サービス)、及び/又は、非機能的局面(例えば、セキュリティ、拡張性)を指定することができる。この要求は、ユーザの要求事項によっては、かなり高いレベル、すなわち粒度の細かいものになり得る。例えば、要求により、ソフトウェア・スタックに関わらず、特定の種類のアプリケーション(例えば、PetStoreのアプリケーション)の必要性を指定することができる。それに応じて、マイクロ・ブループリント・アセンブラ110は、ネットベースのPetStoreのブループリント、又はTomcatベースのPetStoreのブループリントを生成することができる。別の例では、この要求は、J2EEに適合したPetStoreのブループリントを指定することができる。それに応じて、マイクロ・ブループリント・アセンブラ110は、J2EEに適合したブループリントを生成することができる。下記により詳しく説明するとおり、一実施形態では、モデルデータのクラスには特徴が対応可能であり、そのクラスのクラスプロパティには制約及び環境の局面が対応可能である。
一般に、マイクロ・ブループリント・アセンブラ110は、要求に応じて、モデルのデータベース135のモデルデータから、モデルクラス及びそのクラスプロパティのクエリー検索を行うことができる。このモデルデータは、意味的に豊かな拡張性のあるモデルと考えることができ、このモデルデータが、例えば、その領域内のキーのクラスの形態をとる特定分野の知識、クラス階層、クラスプロパティ、及びクラス間の関係、許容値、及び/又は、濃度などのプロパティ、又は関係に対する側面(facets)又は制約を取り込む。このモデルデータは、それ以外にも、クラス及びクラスプロパティに関連する1つ以上の規則も取り込む。本実施形態では、このモデルデータは、例えば、普及しているアプリケーション、コンポーネント、及びソフトウェア・エレメント、標準アプリケーションサービス、サーバ、及び/又は、ミドルウェアに関連する特定分野の知識を取り込むことができる。キーとなる抽象クラスは、例えば、オペレーティングシステム、プラットフォームランタイム、アプリケーションサーバ、及び/又は、デプロイメントでよい。一実施形態では、このモデルデータには、関係情報を用いて階層構造で配列される複数のクラスが含まれ得る。さらに、このモデルデータには、クラスのうちの1つ以上に関するクラスプロパティが含まれ得る。基本的に、これらの複数のクラスがスタックエレメントの異なるレベルを表すことができ、関係情報が複数のクラス間の関係を規定することができる。このモデルデータに関しては、図3を参照して、さらに詳しく説明する。
マイクロ・ブループリントのデータベース130に格納されたマイクロ・ブループリントに、モデルデータからの関係のあるキークラスの注釈を付けることで、自動の構成を可能にする。例えば、Oracle Java JREのマイクロ・ブループリントに、モデルからの「OracleJRE」のクラスの注釈を付けることができる。この局面については、図5を参照して、さらに詳しく説明する。つまり、特定の種類のアプリケーションの特徴を規定する要求をマイクロ・ブループリント・アセンブラ110が受け取ると、このマイクロ・ブループリント・アセンブラ110は、モデルのデータベース135内のモデルデータから適切なクラスをクエリー検索し、次いで、マイクロ・ブループリントのデータベース130から、この取得した1つ以上のクラスを有するマイクロ・ブループリントをクエリー検索することができる。さらに、このマイクロ・ブループリントに能力、及び必要な能力の注釈を付けることができるが、これに関しては、図4及び6を参照して、さらに詳しく説明する。
このマイクロ・ブループリント・アセンブラ110は、モデルデータ、及び注釈付の再使用可能なマイクロ・ブループリントを活用することができる柔軟性なアプローチを駆使して、完全なアプリケーションのブループリントのアセンブリを自動化することが可能である。そして、このアプリケーションのブループリントを用いて、そのサービス層と、各サービス層のソフトウェア・スタックのエレメントを含む、完全なアプリケーションを作り出すことができる。すなわち、意味的に豊かな抽象モデル、及び注釈付のマイクロ・ブループリントにより、アプリケーションの要求に基づいて、実行時間中に構成される、完全なアプリケーションのブループリントの自動構成が可能となる。
マイクロ・ブループリント・アセンブラ110は、アプリケーション・ブループリント・アセンブラ115と、機能コンポーネントのブループリント・アセンブラ120とを備えることができる。すなわち、ある実施形態では、処理を2つの部分に分割可能であり、この2つの部分の一方はアプリケーション・ブループリント・アセンブラ115が実行する部分であり、もう一方は機能コンポーネントのブループリント・アセンブラ120が実行する部分である。このアプリケーション・ブループリント・アセンブラ115は、マイクロ・ブループリントのデータベース130からのマイクロ・ブループリントをアセンブルすることができ、これらのマイクロ・ブループリントは、サービス層(例えば、ウェブ層、アプリケーション層、及びデータベース層)に対応する。このサービス層用のマイクロ・ブループリントのアセンブリに関しては、図7を参照して、さらに詳しく説明する。レベルが深くなるごとに、機能コンポーネントのブループリント・アセンブラ120は、各サービス層のスタックエレメントに対応するマイクロ・ブループリントのデータベース130から、マイクロ・ブループリントをアセンブルすることができる。このサービス層ごとのスタックエレメントに関するマイクロ・ブループリントのアセンブリに関しては、図8を参照して説明する。また、マイクロ・ブループリントのデータベース130内に比較的大きな数のマイクロ・ブループリントが含まれる場合、アプリケーションのコンポーネント・アセンブラ115は、人工知能(AI)の探索アルゴリズムを用いて、適切なマイクロ・ブループリントを見つけることができる。
図2は、図1のデータ処理装置100の動作の例を示すフローチャートである。図2は、連続して順序付けられた動作の一覧として示されているが、これらの動作のうちのいくつか、又は全ては、異なる順序で、又は平行して、或いは繰り返して行うことができる、或いは、時間を重ねて行うことができることは理解されよう。
モデルのデータベース内にモデルデータを格納することができる(202)。本実施形態に従うと、モデルのデータベース135にモデルデータを格納することができる。このモデルデータは、例えば、普及しているアプリケーション、コンポーネント、及びソフトウェア・エレメント、標準アプリケーションサービス、サーバ、及び/又は、ミドルウェアに関連する特定分野の知識を取り込むことができる。キーとなる抽象クラスは、例えば、オペレーティングシステム、プラットフォームランタイム、アプリケーションサーバ、及び/又は、デプロイメントでよい。ある実施形態では、このモデルデータは、関係情報を用いて階層構造で配列された、複数のクラスを含むことができる。さらに、このモデルデータは、これらのクラスのうちの1つ以上に関するクラスプロパティを含むことができる。基本的に、複数のクラスは、スタックエレメントの異なるレベルを表すことができ、関係情報は複数のクラス間の関係を規定することができる。
マイクロ・ブループリントのデータベース内に複数の注釈付のマイクロ・ブループリントを格納することができる(204)。例えば、マイクロ・ブループリントのデータベース130は、複数の注釈付のマイクロ・ブループリントを格納可能である。各マイクロ・ブループリントは、スタックエレメント又はサービス層の機能コンポーネントに対応可能であり、この機能コンポーネントには、複数のクラスのうちの1つ以上のクラス、並びに、少なくとも1つの必要な能力、及び有効な能力の注釈が付けられる。
アプリケーションをアセンブルするための、ブループリントの自動アセンブリを実行させる要求を受け取ることができる(206)。例えば、マイクロ・ブループリント・アセンブラ110は、アプリケーションをアセンブルするための、ブループリントの自動アセンブリを実行させる要求を受け取ることができる。この要求は、少なくとも1つの特徴(機能的な、又は非機能的な)を指定することができる。随意的に、この要求は、アプリケーションをアセンブルするための、1つ以上の制約又は環境を指定することもできる。すなわち、この要求は、機能的局面(例えば、特徴、サービス)、及び/又は、非機能的局面(例えば、セキュリティ、拡張性)を指定することができる。ユーザの要求事項によっては、この要求が、かなり高いレベル、すなわち粒度の細かいものになる可能性がある。
要求に従って、モデルデータ、及び複数のマイクロ・ブループリントに基づいて、少なくとも1つの完全なアプリケーションのブループリントを生成することができる(208)。例えば、マイクロ・ブループリント・アセンブラ110は、要求に応じて、モデルデータ、及び複数のマイクロ・ブループリントに基づいて、少なくとも1つの特徴、制約、又は環境を有するアプリケーションのブループリントのうちの1つ以上を生成することができる。例えば、このマイクロ・ブループリント・アセンブラ 110は、この要求(例えば、特徴、制約、及び/又は環境)に従って、マイクロ・ブループリントのデータベース130から、各サービス層に対して、及び各サービス層内のスタックエレメントに対して、複数のマイクロ・ブループリントのサブセットをアセンブルすることができる。まず、このアプリケーション・ブループリント・アセンブラ115は、アプリケーションのサービス層に応じたマイクロ・ブループリントをアセンブルすることができる。ある実施形態では、アプリケーション・ブループリント・アセンブラ115は、要求(例えば、特徴、制約、及び/又は環境)に従って、サービス層に対応するマイクロ・ブループリントを取得することができ、さらにマイクロ・ブループリントのデータベース130内の複数のマイクロ・ブループリントの必要な能力、及び有効な能力も取得することができる。さらに、マイクロ・ブループリントのデータベース130内に格納された複数のマイクロ・ブループリントが比較的大きい場合、このアプリケーション・ブループリント・アセンブラ115は、マイクロ・ブループリントのデータベース130内のマイクロ・ブループリントを取得するために、AI検索のアルゴリズムを用いることができる。その後、機能コンポーネントのブループリント・アセンブラ120は、各サービス層に対するスタックエレメントに対応するマイクロ・ブループリントをアセンブルすることができる。例えば、この機能コンポーネントのブループリント・アセンブラ120は、この要求、及びモデルのデータベース135内のモデルデータの関係情報に従って、各サービス層に対するスタックエレメントに対応するマイクロ・ブループリントを取得することができる。
図3は、実施形態に従った、図1モデルのデータベース135のモデルデータ300を示す図である。このモデルデータは、意味的に豊かなモデルを含むことができ、この意味的に豊かなモデルには、それらのアプリケーションのプロビジョニングに対する特定な視点を有する、一般的なアプリケーションのブループリントに関連する、抽象化された特定分野の知識が取り込まれる。モデルのデータベース135は、特定分野の専門家(例えば、設計者、及び/又は、管理者)により、作成され維持され得る。上記に示したとおり、このモデルデータは、例えば、普及しているアプリケーション、コンポーネント、ソフトウェア・エレメント、ミドルウェア、標準アプリケーションサービス、及び/又は、アプリケーションサーバに関連する特定分野の知識を取り込むことができる。
このモデルデータ300は意味的に豊かな拡張性のあるモデルと考えることができ、この意味的に豊かな拡張性のあるモデルが、例えば、その領域のキークラスの形態の特定分野の知識、クラス階層、クラスプロパティ及びクラス間の関係、許容値、及び/又は、濃度などのプロパティ又は関係に関する側面又は制約を取り込む。それ以外に、このモデルデータはまた、クラス及びクラスプロパティに関連する1つ以上の規則も取り込む。図3を参照すると、このモデルデータ300は、関係情報を用いて階層構造で配列される複数のクラスを含むことができる。図3に示すとおり、複数のクラスはスタックエレメントの異なるレベルを表すことができ、関係情報(例えば、「〜である(is a)」、「〜を必要とする(needs)」)は、複数のクラス間の関係を規定することができるが、これに関しては下記にさらに詳しく説明する。
例えば、モデルデータ300は、抽象メインオブジェクト405(例えば、AbstractDCObject)、及び複数のコアのクラス410を含むことができ、これらが一般的なアプリケーションのスタックエレメントと関連する。これらの複数のコアのクラス410は、抽象メインオブジェクト405のサブクラスと考えることができる。ある例では、これらのコアのクラスには、データベースサーバ410-1、オペレーティングシステム410-2、プラットフォームランタイム410-3、アプリケーションサーバ410-4、デプロイメント410-5、及び/又は、アプリケーション410-6が含まれ得る。このアプリケーション410-6は、PetStoreアプリケーション、又はその他の全ての種類のアプリケーションなどのアプリケーションを表すことができる。アプリケーション410-6は、複数のデプロイメントを含むことができ、これらはデプロイメント410-5として表される。 このデプロイメント410-5は、パッケージ/アーカイブなどの配置可能なアーチファクト、例えば、ウェブ・アーカイブ(WAR)、エンタープライズ・アーカイブ(EAR)、及び/又は、ダイナミック・ライブ・ライブラリ(DLL)を表すことができ、これらをアプリケーションサーバ内に配置して、アプリケーションのモジュールをインスタンス化する。このデプロイメントのサブクラスは、WAR、EAR、及びDLLでよい。
アプリケーションサーバ410-4(例えば、AppServer)は、その中に配置可能なパッケージを配置して、アプリケーションのモジュールをインスタンス化するアプリケーションサーバを表すことができる。J2EEServer及びIIS(インターネット・インフォーメーション・サービス)は、AppServerの2つのサブクラスを表すことができ、さらにその下の階層のWebLogic及びWebSphere は、J2EEServerのサブクラスである。アプリケーションサーバは、実行環境用のプラットフォームランタイムを必要とする。例えば、J2EEServerは、Java JREのプラットフォームランタイムを必要とする。
プラットフォームランタイム410-3(例えば、PlatformRuntime)は、その中でアプリケーションサーバのようなプログラムが実行されるJava仮想マシン(JVM)などの実行ルーチンの環境を表すことができる。JRE及びnetドメイン(.NET)は、PlatformRuntime410-3のサブクラスであり、さらに、IBM JRE及びOracle JREは、JREのサブクラスである。図3に示すとおり、プラットフォームランタイムは、実行するためのオペレーティングシステムを必要とし得る。
オペレーティングシステム410-2(例えば、OperatingSystem)は、その上でプラットフォームランタイムが実行されるオペレーティングシステムを表すことができる。Unix及びWindowsは、OperatingSystem 410-2のサブクラスであり、さらに、AIX及びLinuxはUnixのサブクラスである。データベースサーバ410-1(例えば、DatabaseServer)は、Oracle又はMSSQLなどのデータベースを表すことができ、このデータベースは、今度は、オペレーティングシステム410-2を必要とする。
クラスのうちの1つ以上は、クラスプロパティを含むことができ、これらのクラスプロパティが、アプリケーションの要求で、ソフトウェア・スタックのエレメントを選別するための制約として用いられる可能性のあるクラスの様々なプロパティをさらに記述する。すなわち、このモデルデータ300には、これらのクラスの1つ以上に関するクラスプロパティが含まれる。例えば、オペレーティングシステム410-2のクラスプロパティには、32ビットバージョン又は64ビットバージョンなどの異なるバージョンが含まれ得る。つまり、64ビットとなるアプリケーション層のOSバージョンが所望されていることをアプリケーションの要求で指定することができる。さらに、WebSphereのクラスは、WebSphereバージョン5、又はWebSphereバージョン6.1などの異なるWebSphereバージョンを含むことができる。つまり、64ビットとなる最小のアプリケーション層のOSバージョンを有するWebSphereのアプリケーションサーバが所望されていることをアプリケーションの要求で指定することができる。さらに、JREのクラスは、JREのクラスの様々なバージョンを含むことができる。例えば、このJREクラスは、JREバージョン1.5又はJREバージョン1.6を含むことができる。
さらに、このモデルデータ300は関係情報を含むことができる。例えば、このモデルデータは、専門分野モデル内のクラス間の複数のキーの関係を含むことができる。ある例では、このキーの関係には、必要関係が含まれ得る。この必要関係は、AbstractDCObject405上で規定することができ、ソフトウェア・スタックから見たクラス間の従属関係を表すことができる。図3に示されたとおりに説明すると、デプロイメント(例えば、WAR)はAppServer(例えば、WebLogic)を必要とし、AppServerはPlatformRuntime(例えば、OracleJRE)を必要とし、PlatformRuntimeはOperatingSystem(例えば、Linux)を必要とする。
さらに、AppServer及びPlatformRuntimeのサブクラスでは、この必要関係をさらに限定させる。J2EEベースのアプリケーションサーバは、netドメイン(.NET)では、動作することができず、Java実行時環境(JRE)だけで動作することができるため、J2EEServer(AppServerである)は、PlatformRuntimeへの必要関係を、JREを必要とするJRE(すなわちPlatformRuntimeのサブクラス)への関係に限定する。WebSphereに関してさらに別の限定が規定される。WebSphereはIBMの実行時環境(JRE)のみで動作するため、このWebSphereは、IBMJREを必要とする関係を介して、JREのサブクラス(すなわち、IBMJRE)へリンクする。これらを必要関係に対する側面又は制約と考えることができる。
個々のソフトウェア・エレメントのマイクロ・ブループリントから、好適なソフトウェア・スタックを自動でビルドする処理において、これらの必要関係及びその限定又は制約が利用される。ソフトウェア・スタックから見た、抽象ソフトウェア・エレメントに関するクラス間の従属関係を、この必要関係により表すことができるため、このようなことが可能である。
その上、このモデルデータ300は、アプリケーションの非機能的局面を表すことができる。例えば、この非機能的局面(例えば、セキュリティ、拡張性、高可用性)は、専門分野モデル内のクラスとして表すことができ、ソフトウェアパッケージ又は機能コンポーネントのブループリントに注釈を付けるために用いることができる。これにより、機能的局面に加えて、非機能的局面をアプリケーションの要求に含ませることができる。例えば、クラスター化されたWebLogicアプリケーションサーバのマイクロ・ブループリントに、「高可用性」などのコンセプトを表す専門分野からのクラスの注釈を付けることができる。アプリケーションの要求により、高可用性の必要性が示されると、普通のWebLogicアプリケーションサーバのマイクロ・ブループリントよりも優先して、この注釈付のWebLogic アプリケーションサーバのマイクロ・ブループリントが選択される。
基本的に、これらのマイクロ・ブループリントに関連するクラス(それらのプロパティ及び関係を含む)を用いて、複数のブループリントを動的にアセンブルして、機能コンポーネントごとに、ソフトウェア・スタック用の完全なブループリントを完成させ、これにより、アプリケーション用の完全なブループリントを供給する。
このような複数のマイクロ・ブループリントから、完全なアプリケーションのブループリントを、動的に、且つ、自動でアセンブルするためには、上記に説明した、モデルデータ300に属するクラスに関して、それらの機能を記述する仕組み、例えば、ソフトウェアパッケージ又はサービスのマイクロ・ブループリントの機能を記述する仕組みが必要であり得る。例えば、マイクロ・ブループリントには、モデルのデータベース135のモデルデータ300からの情報の注釈が付けられる。具体的には、マイクロ・ブループリントには、1つ以上のクラスの注釈を付けることができる。これに加えて、各マイクロ・ブループリントに能力情報の注釈も付けられるが、これに関しては、図4を参照して、下記にさらに詳しく説明する。
図4は、実施形態に従った、ソフトウェア・スタックのエレメント又はサービス層を表す機能コンポーネントの注釈を付けるための抽象モデルを示す図である。例えば、上記に示すとおり、各マイクロ・ブループリントは機能コンポーネント510に対応することができ、機能コンポーネントは、サービス層(例えば、ウェブ層、アプリケーション層、及びデータベース層)、又はソフトウェア・スタックのエレメントに対応することができる。つまり、機能コンポーネント510は、ソフトウェア・スタックのエレメントの機能、又はサービス層の機能に対応することができる。機能コンポーネント510は、複数の必要な能力、及び複数の有効な能力を備えることができる。必要な能力はそれぞれ、異なる機能的特徴515に対応することができ、この機能的特徴515には、モデルデータ300からの1つ以上のクラス520の注釈が付けられる。また、有効な能力はそれぞれ、異なる機能的特徴525に対応し、この機能的特徴525には、モデルデータ300からの1つ以上のクラス520の注釈が付けられる。すなわち、抽象モデルは、複数の有効な能力を有する機能コンポーネント510を含むことができ、これにより、各機能コンポーネントの能力を表すことができる。さらに、機能コンポーネント510は、複数の必要な能力を有することができ、これにより、各機能コンポーネントの能力を表すことができる。能力を機能的特徴のクラスの集まりと考えることができる。機能的特徴のクラスは属性タイプを含むことができ、この属性タイプとはモデルデータ300からのクラス520のことを指す。例えば、Oracle Java JREのマイクロ・ブループリントは、モデルデータ300からの「OracleJRE」のクラスの注釈を付けた機能コンポーネントを有する。
図5は、実施形態に従った、モデルデータのクラス300と、ソフトウェア・スタックのエレメントに対応するマイクロ・ブループリントとの間の割り当てを示す図である。例えば、図5に示すとおり、個々のマイクロ・ブループリント501には、モデルデータ300からの情報の注釈が付けられる。例えば、マイクロ・ブループリント501には、PetStore EARのマイクロ・ブループリント501-1、Oracle WebLogic 11.5のアプリケーションサーバのマイクロ・ブループリント 501-2、Java OracleのJRE 1.6のマイクロ・ブループリント503-3、及びUbuntu Linux 10.04のマイクロ・ブループリント501-4が含まれ得る。これらの種類のマイクロ・ブループリントは説明のためにのみ示されたもので、本実施形態には、全ての種類のソフトウェア・スタックのエレメントが含まれる。マイクロ・ブループリント501には、モデルデータ300からの関連クラスの注釈を付けることができる(例えば、能力<FunctionalFeature>の種類は、関連クラスを指すことができる)。例えば、Oracle WebLogic 11.5のアプリケーションサーバのマイクロ・ブループリント501-2には、WebLogicのクラスの注釈を付けることができる(J2EEServerのサブクラス-> AppServer -> AbstractDCObject)。また、これらのマイクロ・ブループリントには、このクラス階層内の一般的なクラス、又は限定したクラス、及び、必要に応じて、もちろん複数のクラスの注釈を付けることが可能である。
図6は、実施形態に従った、サービス層に対応する、マイクロ・ブループリント、及びそれらのクラスの注釈を示す図である。図6には、PetStoreのアプリケーションの例が示されているが、本実施形態には、あらゆる数のサービス層を有する全ての種類のアプリケーションが含まれる。図6には、ウェブ層、アプリケーション層、及びデータベース層に関する、3つの異なるマイクロ・ブループリントが示されている。各マイクロ・ブループリントは機能コンポーネント510に対応し、機能的特徴515、及び必要とされる機能的特徴525を含む。さらに、機能的特徴515、及び必要な機能的特徴525には、モデルデータ300からのクラス情報の注釈を付けられる。例えば、PetStoreのウェブ層は、「PetStoreWebApp」の能力を有し、機能するためには、「Inventory」及び「ShoppingCart」の能力を必要とする。PetStoreのアプリケーション層は、「商品目録」及び「ShoppingCart」の能力を有し、「DatabaseServer」の能力を必要とする。
ある実施形態では、アプリケーション・ブループリント・アセンブラ115は、必要とされる能力と有効な能力との一致に基づいて、サービス層用のマイクロ・ブループリントをアセンブルすることができ、これにより、PetStoreのウェブ層、PetStoreのアプリケーション層、及びPetStoreのデータベース層のマイクロ・ブループリントを自動的にアセンブルして、完全なPetStore アプリケーションのブループリントを完成させることができる。PetStoreのアプリケーション層などの機能コンポーネント内で、レベルが1つ深くなると、機能コンポーネントのブループリント・アセンブラ120は、データベース130内の注釈付のマイクロ・ブループリントから、完全なソフトウェア・スタック用のマイクロ・ブループリントをアセンブルすることが可能であるが、これに関しては、下記にさらに詳しく説明する。
上記に示したとおり、マイクロ・ブループリント・アセンブラ110は、完全なアプリケーションのブループリントを生成させる要求を受け取ることができる。例えば、このアプリケーションの要求は、少なくとも1つの特徴、及び種々の制約又は環境を指定することができる。アプリケーションの要求を処理することで、動的に構成され、適合性の順番で順位付けられた、アプリケーションのブループリントのリストが出力される。ある実施形態では、このアプリケーションの要求は、例えば、所望される機能的局面(例えば、必要な特徴、サービス)、及び/又は、モデルデータ300からのクラスとして表される非機能的局面(例えば、セキュリティ、拡張性、高可用性)などのある特定の局面を指定することができる。例えば、高可用性を有するPetStoreのアプリケーションに対する要求は、それに応じて、クラスター化されたWebLogic(又はTomcat)のアプリケーションサーバを含む、アプリケーション層の機能コンポーネントのソフトウェア・スタックを用いて、PetStoreのアプリケーション用に構成されるブループリントを期待する。それに加えて、そのブループリントは、アプリケーションサーバのインスタンスへのHTTPの要求の負荷を分散させるための、ソフトウェアのロードバランサ用の機能コンポーネントも含むことができる。
また、この要求は1つ以上の制約を指定することもできる。この制約は、それらのプロパティ/関係に対する条件上の形態のクラスに対する制約に関連し得、この制約により、構成中に使用されるマイクロ・ブループリントに関して有効な選択肢が選別される。例えば、この要求は、最低限のJ2EE適合レベルである1.5を有するJ2EEの適合スタック(compliant stack)などの制約を指定することができる。
また、この要求は環境を指定することができる。この指定された環境が、コンポーネント又はソフトウェア・スタックのエレメントの選択に影響する。例えば、DEVの環境では、Tomcatのアプリケーションサーバが選択され得、一方、PRODの環境では、クラスター化されたWebLogicのアプリケーションサーバが選択され得る。
この要求の中に含まれている情報に基づいて、マイクロ・ブループリント・アセンブラ110は、再使用可能なマイクロ・ブループリントから、1つ以上の完全なアプリケーションのブループリントを生成するよう構成される。例えば、このマイクロ・ブループリント・アセンブラ110は、要求に従って、マイクロ・ブループリントのデータベース130から、各サービス層に対して、及び各サービス層内の各スタックエレメントに対して、複数のマイクロ・ブループリントのサブセットをアセンブルすることができる。まず、このアプリケーション・ブループリント・アセンブラ115は、アプリケーションのサービス層に従って、マイクロ・ブループリントをアセンブルすることができる。ある実施形態では、このアプリケーション・ブループリント・アセンブラ115は、要求、及びマイクロ・ブループリントのデータベース130内の複数のマイクロ・ブループリントの必要な能力及び有効な能力に従って、サービス層に対応するマイクロ・ブループリントを取得することができる。サービスレベルのマイクロ・ブループリントの構成の詳細に関しては、図7を参照して、さらに説明する。さらに、マイクロ・ブループリントのデータベース130に格納される複数のマイクロ・ブループリントが比較的大きい場合、このアプリケーション・ブループリント・アセンブラ115は、AIの探索アルゴリズムを用いることができるが、これに関しては、下記にさらに詳細に説明する。
その後、この機能コンポーネントのブループリント・アセンブラ120は、各サービス層に対してスタックエレメントに対応するマイクロ・ブループリントをアセンブルすることができる。例えば、機能コンポーネントのブループリント・アセンブラ120は、要求に従って、各サービス層に対して、スタックエレメントに対応するマイクロ・ブループリントを取得することができる。スタックエレメントに対応するマイクロ・ブループリントのアセンブリに関しては、図8を参照して、さらに詳しく説明する。
図7は、実施形態に従った、サービス層用のマイクロ・ブループリントをアセンブルするための工程を示すフローチャートである。図7は、連続して順序付けられた動作の一覧として示されているが、これらの動作のうちのいくつか、又は全ては、異なる順序で、又は平行して、又は繰り返して行うことができる、或いは、時間を重ねて行うことができることは理解されよう。
要求から少なくとも1つの特徴、制約、及び/又は、環境が抽出される(702)。例えば、アプリケーション・ブループリント・アセンブラ110は、少なくとも特徴を抽出することができ、この特徴により、特定の種類のアプリケーションを指定することが可能である。しかし、この特徴には、アプリケーションのアセンブリに関連する全ての種類の特徴が含まれる可能性がある。さらに、この要求は、1つ以上の制約、及び/又は、環境を指定することができる。
この要求からリンクされたモデルクラスが抽出される(704)。例えば、このアプリケーション・ブループリント・アセンブラ110は、この要求から、リンクされたモデルクラスを抽出することができる。すなわち、この特徴は、複数のクラスのうちの1つ以上に対応することができ、制約、及び/又は、環境は、クラスプロパティのうちの1つ以上に対応することができる。つまり、このアプリケーション・ブループリント・アセンブラ100は、特徴、制約、及び環境に関する関連クラスを取得することができる。
アプリケーション・ブループリントのアセンブリ処理が呼び出される(706)。例えば、このアプリケーション・ブループリント・アセンブラ110は、アプリケーションのブループリントをアセンブルする処理を開始することができ、アプリケーション・ブループリント・アセンブラ115は、アプリケーションのサービス層に対応するマイクロ・ブループリントのアセンブリを開始することができる。
抽出されたクラスを有するマイクロ・ブループリントが取得される(708)。例えば、このアプリケーション・ブループリント・アセンブラ115は、抽出されたクラスを有するマイクロ・ブループリントを取得するために、マイクロ・ブループリントのデータベース130を探索することができる。例えば、アプリケーション・ブループリント・アセンブラ115は、マイクロ・ブループリントのサブセットを取得するために、マイクロ・ブループリントの必要な能力、及び有効な能力に基づいて、有効な能力及び必要な能力のうちの1つ以上が一致するように、マイクロ・ブループリントのデータベース130を探索することができる。
現状のマイクロ・ブループリントの注釈付のクラスを確認して、要求において指定された制約と一致しているかどうかを判定する(710)。例えば、要求に1つ以上の制約が含まれる場合、このアプリケーション・ブループリント・アセンブラ115は、要求において指定された制約と、現状のマイクロ・ブループリントに対応するモデルデータ300のクラスプロパティとが一致しているかどうかを判定する。
マイクロ・ブループリントを確認して、そのブループリントが選択された環境に受け入れられるかどうかを判定する(712)。例えば、アプリケーション・ブループリント・アセンブラ115は、現状のマイクロ・ブループリントが要求において指定された環境に受け入れられるかどうかを判定することができる。
マイクロ・ブループリントが取得される(714)。例えば、710と712の条件が満たされた場合、このアプリケーション・ブループリント・アセンブラ115は、マイクロ・ブループリントのデータベース130からマイクロ・ブループリントを取得することができる。この処理を、708で取得した各マイクロ・ブループリントに対して繰り返すことができる。
上記で説明した図7の処理は一連の命令で構成され、これらの命令が実行されると、1つ以上のプロセッサが一連の機能を実行する。これらの命令には、下記のスクリプトが含まれ得る。:
Figure 2015515684
次に、機能コンポーネントのブループリント・アセンブラ120が、ソフトウェア・スタックのエレメントに対応するマイクロ・ブループリントを、各サービス層に対して、アセンブルするよう構成される。例えば、この機能コンポーネントのブループリント・アセンブラ120は、各サービス層に対して、パッケージ/ソフトウェア・スタックのエレメントを動的に構成してソフトウェア・スタックをビルドするよう構成される。
ある実施形態では、機能コンポーネントのブループリント・アセンブラ120は、個々のソフトウェア・エレメントのマイクロ・ブループリントから好適なソフトウェア・スタックを自動でビルドする処理において、これらの必要関係、及びその限定又は制約を利用する。この必要関係は、ソフトウェア・スタックから見た、抽象的なソフトウェア・エレメントに関するクラス間の従属関係を表すものであるため、このようなことが可能である。
図8は、実施形態に従った、ソフトウェア・スタックのエレメントに対応するマイクロ・ブループリントをアセンブルするための処理を示すフローチャートである。図8は連続して順序付けられた動作の一覧として示されているが、これらの動作のうちのいくつか、又は全ては、異なる順序で、又は平行して、又は繰り返して行うことができる、或いは、時間を重ねて行うことができることは理解されよう。
ソフトウェア・スタックのエレメント用のマイクロ・ブループリントが各サービス層に対して取得され得る(802)。例えば、この機能コンポーネントのブループリント・アセンブラ120は、図7の処理で取得されたサービス層のマイクロ・ブループリントに関するマイクロ・ブループリントを取得するよう構成することができる。
このマイクロ・ブループリントに関する注釈付のクラスが取得される(804)。例えば、機能コンポーネントのブループリント・アセンブラ120が、この取得されたマイクロ・ブループリントから関連する注釈付のクラスを取得することができる。この処理では、現状の注釈付のクラスがオペレーティングシステムのクラスかどうかを判定することができる(806)。例えば、機能コンポーネントのブループリント・アセンブラ120が、現状の注釈付のクラスがオペレーティングシステムのクラスかどうかを判定することができる。オペレーティングシステムのクラスである場合、それは最後のソフトウェア・スタックのエレメントであることを示しているため、この処理は停止する。オペレーティングシステムでない場合、この処理は810に続く。この具体的な例では、オペレーティングシステムのソフトウェアのエレメントスタックを終了ポイントとして利用しているが、本実施形態では、全ての種類のソフトウェア・スタックのエレメントを終了ポイントとして使用することができる。
関係情報により指し示されたリンクするクラスが取得される(810)。例えば、機能コンポーネントのブループリント・アセンブラ120は、必要関係により指し示された、リンクされたクラスを取得することができる。要求に含まれる特徴、制約、及び環境がそれぞれこれらのクラスに適用される(812)。例えば、機能コンポーネントのブループリント・アセンブラ120は、要求に含まれる特徴、制約、及び環境をそれぞれこれらのクラスに適用させることができる。その後、この処理は、各ソフトウェア・スタックのエレメントに対して、各サービス層で繰り返される。
上記に説明した図8の処理は一連の命令で構成され、これらの命令が実行されると、1つ以上のプロセッサが一連の機能を実行する。これらの命令には、下記のスクリプトが含まれ得る。:
Figure 2015515684
また、上記で説明したとおり、マイクロ・ブループリントの数が比較的大きい場合、アプリケーション・ブループリント・アセンブラ110は、AIの探索アルゴリズムを用いて、マイクロ・ブループリントをアセンブルすることができる。
AI検索は、例えば、ゲーム、ロボット動作計画などの探索空間が非常に大きな様々な課題で用いられる。AIの探索アルゴリズムにより、コンピュータを用いて、探索などの一連の課題が解決し易くなる。この課題は、人工知能(AI)の探索の課題として作られており、ソフトウェア・スタック、及び層が規定されている完璧なブループリントを完全にアセンブルすることで解決する。
より具体的には、この課題は、A*(AStarのAI探索アルゴリズム)探索の課題として作られている。簡単に説明すると、このA*アルゴリズムとは、ヒューリスティックベースの「最良優先」探索アルゴリズムであり、この最良優先探索アルゴリズムでは、下記のヒューリスティックの等式に基づいて、全ての現状の状態において、その次に最良の状態を選択することにより、初期状態からスタートし、その初期状態を目標状態(複数可)に到達させる。
式(1) f(n) = g(n) + h(n)
上記の式のパラメータg(n)は、選択されたパス内で発生する最も低いコストであり、この選択されたパス(例えば、今のところ選択された状態から形成されているパス)で、この探索アルゴリズムは、初期状態を、今のところの現状の状態まで到達させる。特定なパスの区画のコストは、課題特有の方法で規定される。
上記の式のパラメータh(n)は、現状の状態から目標状態(複数可)までの、残りのパスにおける推定コストである。これらのパラメータ、目標状態(複数可)、機能、及びコストは全て、課題の中で必要に応じて規定される。この場合、一連の能力及び一連の必要な能力を有する機能コンポーネントにより、現状の状態を表すことができる。マイクロ・ブループリントのデータベース130内には、いくつかの機能コンポーネントが存在し得、これらの機能コンポーネントが、単独で、又は組み合わさることで必要な能力を満たす。
例えば、具体的に例を挙げると、「ウェブ層」のコンポーネントが、現状の状態「状態n」を形成する。このウェブ層のコンポーネントは、必要な能力として「商品目録」及び「ショッピングカート」を有する。したがって、マイクロ・ブループリントのデータベース130内をクエリー検索することにより、3つのコンポーネントをもたらすことができ、これらの3つのコンポーネントにより、これらの必要な能力、すなわち「アプリケーション層」(完全に要求事項を満たす)、「商品目録サービス」(部分的に要求事項を満たす)、及び「ショッピングカートサービス」(部分的に要求事項を満たす)が部分的に、又は完全に満たされる。各状態により現状の状態「状態n」の要求事項が完全に満たされるように、これらの能力から、次の状態の候補(例えば、「状態 n + 1」及び「状態 n + 2」)を生成する。この場合、「状態n + 1」は「商品目録サービス」のコンポーネント及び「ショッピングカートサービス」のコンポーネントから構成され、「状態n + 2」は「アプリケーション層」のコンポーネントから構成される。
次に、これらの状態の中から最適な状態が最適状態として選択される。例えば、制約も考慮して最小の数のコンポーネントしか伴わない、ヒューリスティック同様の選択状態がこのコストには含まれ得る。この最適状態はコスト関数g(n)にも供給される。したがって、最も低いコストのパス、すなわち最良のパスがビルドされる。
それまでに蓄積された選択状態の「能力」及び蓄積された「必要な能力」の記録をとることにより、目標状態に到達する。蓄積された「必要な能力」が、蓄積された「能力」のサブセットになると、完全なブループリントと判定され、この処理は探索を停止する。
結果として、本実施形態のデータ処理装置は、ブループリントを構成可能なマイクロ・ブループリントと再使用可能なマイクロ・ブループリントとに分解することができ、これらのマイクロ・ブループリントには、モデルのデータベース135内のモデルデータからの1つ以上のクラスの注釈を付けられる。基本的には、これらの注釈付のマイクロ・ブループリントにより、サービス、又はソフトウェア・スタックのマイクロ・ブループリントが1つ以上のモデルデータのクラスに割り当てされ、このモデルデータには、クラス間の関係を規定する関係情報も含まれる。注釈付のマイクロ・ブループリントとモデルデータを用いることにより、このデータ処理装置は、マイクロ・ブループリントから、その場で完全に構成されたブループリントを自動的にアセンブルし、これにより、アプリケーションの供給、すなわち開発が可能となる。すなわち、データ処理装置100は、モデル駆動型アプローチを行って、マイクロ・ブループリントなどの小さなビルディング・ブロックから、完全なブループリントを自動で柔軟且つ動的に構成する。上記に示すとおり、この完全なアプリケーションのブループリントには、機能ブループリント、又は配置ブループリントが含まれ得る。この完全なブループリントを用いて、そのコンポーネント又は層と、それらの各ソフトウェア・スタックのエレメントとを含む完全なアプリケーションを開発することができる。
本明細書に記載されている種々の技術の実装形態は、デジタル電子回路内、又はコンピュータのハードウェア、ファームウェア、ソフトウェア内、或いはそれらの組合せ内で実行可能である。実装形態は、コンピュータプログラム製品、すなわちマシン可読記憶装置内、又は伝播信号内などの情報担体内で有形に具現化されるコンピュータプログラムとしてとして実行可能であり、このコンピュータプログラム製品は、プログラマブルプロセッサ、コンピュータ、又は複数のコンピュータなどのデータ処理装置の動作により実行される、或いは、それらの動作を制御する。上記で説明したコンピュータプログラム(複数可)などのコンピュータプログラムは、コンパイラ型言語又はインタープリタ型言語を含む全ての形態のプログラミング言語で書き込むことができ、独立プログラム、或いはモジュール、コンポーネント、サブルーチン、又はコンピュータ環境内での使用に適したその他のユニットを含む全ての形態で配置可能である。コンピュータプログラムは、単独のコンピュータ上、又は1つの場所に配置される、又は複数の場所に配置される、通信ネットワークで相互接続する、複数のコンピュータ上に配置可能である。
方法の工程は、入力データ上で動作し出力を生成することにより機能を実行するためのコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサにより実行可能である。方法の工程はまた、例えば、FPGA(フィールドプログラマブルゲートアレイ)、又はASIC(特定用途向け集積回路)などの専用論理回路、及びそれらの専用理論回路として実装可能な装置によっても実行可能である。
コンピュータプログラムを実行するための好適なプロサッサには、例えば、汎用マイクロプロセッサ、及び専用マイクロプロサッサの両方、並びに全ての種類のデジタルコンピュータの1つ以上の全てのプロセッサが含まれる。通常、プロセッサは、リード・オンリー・メモリ又はランダム・アクセス・メモリ、或いはそれらの両方から命令及びデータを受け取る。コンピュータの構成要素には、命令を実行するための少なくとも1つのプロセッサ、及び命令とデータを格納するための1つ以上の記憶装置が含まれ得る。通常、コンピュータは、データを格納するための1つ以上の大容量記憶装置、例えば、磁気ディスク、光磁気ディスク、又は光ディスクを備えることができる。或いは、こういった1つ以上の大容量記憶装置に動作可能に接続して、データの受信又は送信、或いはその両方を行うことができる。コンピュータプログラムの命令及びデータを包含するために好適な情報担体には、全ての形態の不揮発性メモリが含まれ、これらの不揮発性メモリをいくつか例示すると、半導体記憶装置(例えば、EPROM、EEPROM、及びフラッシュメモリ装置)、磁気ディスク(例えば、内部ハードディスク、又は取り外し可能ディスク)、光磁気ディスク、並びにCD-ROMディスク及びDVD-ROMディスクなどが挙げられる。これらのプロセッサ及びメモリは、専用論理回路により補われ得る、あるいは専用論理回路に組み込まれ得る。
ユーザとのやりとりを可能にするために、情報をユーザに表示するためのブラウン管(CRT)のモニタ、又は液晶表示装置(LCD)のモニタなどの表示装置、ユーザのコンピュータへの入力を可能にするキーボード及びマウス又はトラックボールなどのポインティングデバイスを備えるコンピュータ上で、実装形態を実行することができる。その他の種類の装置を用いて、ユーザとのやり取りを行うことも可能である。それらのやり取りの例として、視覚フィードバック、聴覚フィードバック、又は触覚フィードバックなどの全ての形態でユーザに供給可能な感覚フィードバックや、音による入力、口頭による入力、触感による入力を含む全ての形態でユーザから受け取る入力などが挙げられる。
データサーバなどのバックエンドコンポーネント、アプリケーションサーバなどのミドルウェアコンポーネント、又はクライアントコンピュータなどのフロントコンポーネントを備えるコンピュータシステム内で実装形態を実行することができる。クライアントコンピュータは、グラフィカルユーザインターフェース、又はウェブブラウザを備え、これらを通してユーザは実装形態、又はこのようなバックエンドコンポーネント、ミドルウェア、又はフロントエンドコンポーネントの全ての組合せとやり取りすることが可能である。これらのコンポーネントは、デジタルデータ通信の全ての形態又は媒体、例えば、通信ネットワークにより相互接続が可能である。通信ネットワークの例としては、ローカル・エリア・ネットワーク(LAN)、又はインターネットなどのワイド・エリア・ネットワーク(WAN)が挙げられる。
記載されている実装形態のいくらかの特徴を本明細書に記載されているとおり説明してきたが、多くの修正形態、代替形態、変更形態、及び等価形態が当業者により考案される。

Claims (20)

  1. ブループリントの自動アセンブリを実行するデータ処理装置であって、
    アプリケーションをアセンブルするための、ブループリントの自動アセンブリを実行させる要求を受け取るよう構成されるマイクロ・ブループリント・アセンブラであって、該要求が、少なくとも1つの特徴を規定する、マイクロ・ブループリント・アセンブラと、
    モデルデータを格納するよう構成されるモデルのデータベースであって、該モデルデータが、関係情報を用いて階層構造で配列される複数のクラスと、該複数のクラスのうちの少なくとも一部に関するクラスプロパティとを含む、モデルのデータベースと、
    複数のマイクロ・ブループリントを格納するよう構成されるマイクロ・ブループリントのデータベースであって、各マイクロ・ブループリントが、スタックエレメント又はサービス層の機能コンポーネントに対応し、該機能コンポーネントには、該複数のクラスのうちの1つ以上のクラス、並びに少なくとも1つの必要な能力及び有効な能力の注釈が付けられる、マイクロ・ブループリントのデータベースと、を備え、
    該マイクロ・ブループリント・アセンブラが、該要求に従って、該モデルデータ及び該複数のマイクロ・ブループリントに基づいて、少なくとも1つのアプリケーションのブループリントを生成する、前記データ処理装置。
  2. 前記要求がまた、少なくとも1つの制約及び環境も規定する、請求項1記載のデータ処理装置。
  3. 前記少なくとも1つの特徴が、非機能的特徴である、請求項1記載のデータ処理装置。
  4. 前記複数のクラスが、前記スタックエレメントの異なるレベルを表わし、前記関係情報が、前記複数のクラス間の関係を規定する、請求項1記載のデータ処理装置。
  5. 前記複数のクラスには、アプリケーション、デプロイメント、アプリケーションサーバ、プラットフォームランタイム、オペレーティングシステム、及びデータベースサーバのうちの少なくとも1つを有するコアの抽象クラスが含まれ、各前記コアの抽象クラスが、前記スタックエレメントに関する前記マイクロ・ブループリントに対応するサブクラスを含む、請求項1記載のデータ処理装置。
  6. 前記マイクロ・ブループリント・アセンブラは、前記少なくとも1つのアプリケーションのブループリントを生成するよう構成され、この前記少なくとも1つのアプリケーションのブループリントを生成する動作には、
    前記要求に従って、各サービス層に対して、及び各サービス層内のスタックエレメントに対して、前記複数のマイクロ・ブループリントのサブセットをアセンブルすることが含まれる、請求項1記載のデータ処理装置。
  7. 前記マイクロ・ブループリント・アセンブラが、
    前記アプリケーションのサービス層に対応するマイクロ・ブループリントをアセンブルするよう構成されるアプリケーション・ブループリント・アセンブラと、
    前記サービス層ごとのスタックエレメントに対応するマイクロ・ブループリントをアセンブルするよう構成される機能コンポーネントのブループリント・アセンブラと、を備える、請求項1記載のデータ処理装置。
  8. 前記アプリケーション・ブループリント・アセンブラは、前記マイクロ・ブループリントをアセンブルするよう構成され、この前記マイクロ・ブループリントをアセンブルする動作には、
    前記要求及び前記複数のマイクロ・ブループリントの前記必要な能力及び前記有効な能力に従って、前記マイクロ・ブループリントのデータベースから前記サービス層に対応するマイクロ・ブループリントを取得することが含まれる、請求項7記載のデータ処理装置。
  9. 前記機能コンポーネントのブループリント・アセンブラは、前記マイクロ・ブループリントをアセンブルするよう構成され、この前記マイクロ・ブループリントをアセンブルする動作には、
    前記要求及び前記関係情報に従って、前記サービス層ごとの前記スタックエレメントに対応するマイクロ・ブループリントを取得することが含まれる、請求項7記載のデータ処理装置。
  10. 前記アプリケーション・ブループリント・アセンブラは、前記マイクロ・ブループリントをアセンブルするよう構成され、この前記マイクロ・ブループリントをアセンブルする動作には、
    人工知能(AI)の探索アルゴリズムを用いて、前記マイクロ・ブループリントのデータベースから前記サービス層に対応するマイクロ・ブループリントを取得することが含まれる、請求項7記載のデータ処理装置。
  11. 前記マイクロ・ブループリント・アセンブラが、前記要求を実現させるための適合性の順番でアプリケーションのブループリントを並べたリストを生成するよう構成される、請求項1記載のデータ処理装置。
  12. ブループリントの自動アセンブリを実行する方法であって、
    アプリケーションをアセンブルするための、ブループリントの自動アセンブリを実行させる要求を受け取る工程であって、該要求が、少なくとも1つの特徴を規定する、工程と、
    該要求に従って、モデルデータ及び複数のマイクロ・ブループリントに基づいて、少なくとも1つのアプリケーションのブループリントを生成する工程であって、該モデルデータが、関係情報を用いて階層構造で配列される複数のクラスと、該複数のクラスのうちの少なくとも一部に関するクラスプロパティとを含み、該複数のマイクロ・ブループリントの各マイクロ・ブループリントが、スタックエレメント又はサービス層の機能コンポーネントに対応し、該機能コンポーネントには、該複数のクラスのうちの1つ以上のクラス、並びに少なくとも1つの必要な能力及び有効な能力の注釈が付けられる、工程と、を含む前記方法。
  13. 前記要求がまた、少なくとも1つの制約及び環境も規定する、請求項12記載の方法。
  14. 前記少なくとも1つの特徴が、非機能的特徴である、請求項12記載の方法。
  15. 前記複数のクラスが、前記スタックエレメントの異なるレベルを表わし、前記関係情報が、前記複数のクラス間の関係を規定する、請求項12記載の方法。
  16. 前記複数のクラスには、アプリケーション、デプロイメント、アプリケーションサーバ、プラットフォームランタイム、オペレーティングシステム、及びデータベースサーバのうちの少なくとも1つを有するコアの抽象クラスが含まれ、各前記コアの抽象クラスが、前記スタックエレメントに関する前記マイクロ・ブループリントに対応するサブクラスを含む、請求項12記載の方法。
  17. 前記少なくとも1つのアプリケーションのブループリントを生成する工程には、
    前記要求に従って、サービス層ごとに、及び各サービス層内のスタックエレメントごとに、前記複数のマイクロ・ブループリントのサブセットをアセンブルすることが含まれる、請求項12記載の方法。
  18. 前記少なくとも1つのアプリケーションのブループリントを生成する工程には、
    前記アプリケーションのサービス層に対応するマイクロ・ブループリントをアセンブルすることと、
    前記サービス層ごとのスタックエレメントに対応するマイクロ・ブループリントをアセンブルすることと、が含まれる、請求項12記載の方法。
  19. 実行されると1つ以上のプロセッサが処理を行う命令を格納する非一時的なコンピュータ可読媒体であって、該命令には、
    アプリケーションをアセンブルするための、ブループリントの自動アセンブリを実行させる要求を受け取る命令であって、該要求が、少なくとも1つの特徴を規定する、命令と、
    該要求に従って、モデルデータ及び複数のマイクロ・ブループリントに基づいて、少なくとも1つのアプリケーションのブループリントを生成する命令であって、該モデルデータが、関係情報を用いて階層構造で配列される複数のクラスと、該複数のクラスのうちの少なくとも一部に関するクラスプロパティとを含み、該複数のマイクロ・ブループリントの各マイクロ・ブループリントが、スタックエレメント又はサービス層の機能コンポーネントに対応し、該機能コンポーネントには、該複数のクラスのうちの1つ以上のクラス、並びに、少なくとも1つの必要な能力及び有効な能力の注釈が付けられる、命令と、が含まれる、前記非一時的なコンピュータ可読媒体。
  20. 前記要求がまた、少なくとも1つの制約及び環境も規定する、請求項19記載の非一時的なコンピュータ可読媒体。
JP2015503457A 2012-03-28 2013-03-26 アプリケーションをアセンブルするためのブループリント自動アセンブリ Active JP6283654B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/433,162 2012-03-28
US13/433,162 US8914768B2 (en) 2012-03-28 2012-03-28 Automated blueprint assembly for assembling an application
PCT/US2013/033839 WO2013148651A2 (en) 2012-03-28 2013-03-26 Automated blueprint assembly for assembling an application

Publications (3)

Publication Number Publication Date
JP2015515684A true JP2015515684A (ja) 2015-05-28
JP2015515684A5 JP2015515684A5 (ja) 2016-05-19
JP6283654B2 JP6283654B2 (ja) 2018-02-21

Family

ID=48096259

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015503457A Active JP6283654B2 (ja) 2012-03-28 2013-03-26 アプリケーションをアセンブルするためのブループリント自動アセンブリ

Country Status (6)

Country Link
US (3) US8914768B2 (ja)
EP (1) EP2831724A4 (ja)
JP (1) JP6283654B2 (ja)
AU (1) AU2013239897B2 (ja)
CA (2) CA3230720A1 (ja)
WO (1) WO2013148651A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022511242A (ja) * 2018-12-03 2022-01-31 セールスフォース ドット コム インコーポレイティッド コンピュータシステムの自動動作管理

Families Citing this family (253)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8271974B2 (en) 2008-10-08 2012-09-18 Kaavo Inc. Cloud computing lifecycle management for N-tier applications
US8086633B2 (en) 2009-08-27 2011-12-27 International Business Machines Corporation Unified user identification with automatic mapping and database absence handling
US9189419B2 (en) 2011-04-14 2015-11-17 Vmware, Inc. Detecting and suppressing redundant input-output operations
DE102011077218B4 (de) 2011-06-08 2023-12-14 Servicenow, Inc. Zugriff auf in einer Cloud gespeicherte Daten
US9710644B2 (en) 2012-02-01 2017-07-18 Servicenow, Inc. Techniques for sharing network security event information
US11416325B2 (en) 2012-03-13 2022-08-16 Servicenow, Inc. Machine-learning and deep-learning techniques for predictive ticketing in information technology systems
US8914768B2 (en) 2012-03-28 2014-12-16 Bmc Software, Inc. Automated blueprint assembly for assembling an application
EP2842026A4 (en) * 2012-04-27 2016-01-13 Hewlett Packard Development Co MAPPING OF APPLICATION DEPENDENCIES AT TIME OF EXECUTION
US9626526B2 (en) * 2012-04-30 2017-04-18 Ca, Inc. Trusted public infrastructure grid cloud
US9122552B2 (en) * 2012-06-29 2015-09-01 Bmc Software, Inc. Hybrid cloud infrastructures
US9977653B2 (en) * 2012-06-30 2018-05-22 International Business Machines Corporation Discovery and modeling of deployment actions for multiple deployment engine providers
US9588740B1 (en) * 2013-03-09 2017-03-07 Ca, Inc. Systems, methods and computer program products for construction of cloud applications
US9268592B2 (en) * 2013-06-25 2016-02-23 Vmware, Inc. Methods and apparatus to generate a customized application blueprint
US20160139949A1 (en) * 2013-07-19 2016-05-19 Hewlett-Packard Development Company, L.P. Virtual machine resource management system and method thereof
KR20150054496A (ko) * 2013-11-12 2015-05-20 삼성전자주식회사 클라우드 서비스 제공서버, 개발자 단말장치 및 이를 이용한 어플리케이션 개발 지원 방법
US9519513B2 (en) 2013-12-03 2016-12-13 Vmware, Inc. Methods and apparatus to automatically configure monitoring of a virtual machine
US9678731B2 (en) 2014-02-26 2017-06-13 Vmware, Inc. Methods and apparatus to generate a customized application blueprint
US9645805B2 (en) 2014-06-26 2017-05-09 Vmware, Inc. Application blueprints based on service templates to deploy applications in different cloud environments
US20150378763A1 (en) 2014-06-30 2015-12-31 Vmware, Inc. Methods and apparatus to manage monitoring agents
US9646064B2 (en) * 2014-12-10 2017-05-09 Salesforce.Com, Inc. Template based software container
US10437824B2 (en) 2015-01-23 2019-10-08 Attivio, Inc. Querying across a composite join of multiple database tables using a search engine index
US10181984B1 (en) 2015-08-24 2019-01-15 Servicenow, Inc. Post incident review
US9588760B1 (en) * 2015-11-24 2017-03-07 International Business Machines Corporation Software application development feature and defect selection
WO2017100534A1 (en) 2015-12-11 2017-06-15 Servicenow, Inc. Computer network threat assessment
US10817597B2 (en) 2016-04-20 2020-10-27 Servicenow, Inc. Operational scoping with access restrictions
US11410127B2 (en) 2016-04-20 2022-08-09 Servicenow, Inc. Visualization of chat task recording, linking messaging, and record keeping
US10095680B1 (en) 2016-04-26 2018-10-09 Servicenow, Inc. Systems and methods for reduced memory usage when processing spreadsheet files
US10713015B2 (en) 2016-05-15 2020-07-14 Servicenow, Inc. Visual programming system
US10826875B1 (en) 2016-07-22 2020-11-03 Servicenow, Inc. System and method for securely communicating requests
US10963634B2 (en) 2016-08-04 2021-03-30 Servicenow, Inc. Cross-platform classification of machine-generated textual data
US11080588B2 (en) 2016-10-17 2021-08-03 Servicenow, Inc. Machine learning with partial inversion
US10270646B2 (en) 2016-10-24 2019-04-23 Servicenow, Inc. System and method for resolving master node failures within node clusters
US10354215B2 (en) 2016-10-26 2019-07-16 Servicenow, Inc. System and method for service modeling
US11048853B2 (en) 2016-10-31 2021-06-29 Servicenow, Inc. System and method for resource presentation
US10049028B2 (en) 2016-11-02 2018-08-14 Servicenow, Inc. Debug session management
US10242037B2 (en) 2017-04-20 2019-03-26 Servicenow, Inc. Index suggestion engine for relational databases
US10652106B2 (en) 2017-04-24 2020-05-12 Servicenow, Inc. Installation and upgrade of visualizations for managed networks
US10620996B2 (en) 2017-04-26 2020-04-14 Servicenow, Inc. Batching asynchronous web requests
US10728324B2 (en) 2017-05-01 2020-07-28 Servicenow, Inc. Selective server-side execution of client-side scripts
US10936613B2 (en) 2017-05-03 2021-03-02 Servicenow, Inc. Table-per-partition
US10949807B2 (en) 2017-05-04 2021-03-16 Servicenow, Inc. Model building architecture and smart routing of work items
US10977575B2 (en) 2017-05-04 2021-04-13 Servicenow, Inc. Machine learning auto completion of fields
US10534337B2 (en) 2017-05-04 2020-01-14 Servicenow, Inc. Flow engine for building automated flows within a cloud based developmental platform
US10776732B2 (en) 2017-05-04 2020-09-15 Servicenow, Inc. Dynamic multi-factor ranking for task prioritization
US10275241B2 (en) 2017-05-05 2019-04-30 Servicenow, Inc. Hybrid development systems and methods
US10917419B2 (en) 2017-05-05 2021-02-09 Servicenow, Inc. Systems and methods for anomaly detection
US10447553B2 (en) 2017-05-05 2019-10-15 Servicenow, Inc. Systems and methods for service-aware mapping of a system infrastructure
US10650056B2 (en) 2017-05-05 2020-05-12 Servicenow, Inc. Template-based faceted search experience
US10936968B2 (en) 2017-05-05 2021-03-02 Servicenow, Inc. Ticket routing
US10541961B2 (en) 2017-05-05 2020-01-21 Servicenow, Inc. System and method for automating actions in distributed computing
US10706226B2 (en) 2017-05-05 2020-07-07 Servicenow, Inc. Graphical user interface for inter-party communication with automatic scoring
US10956435B2 (en) 2017-05-05 2021-03-23 Servicenow, Inc. Global search
US10809989B2 (en) 2017-05-05 2020-10-20 Servicenow, Inc. Service release tool
US10354257B2 (en) 2017-05-05 2019-07-16 Servicenow, Inc. Identifying clusters for service management operations
US11163747B2 (en) 2017-05-05 2021-11-02 Servicenow, Inc. Time series data forecasting
US11087256B2 (en) 2017-05-05 2021-08-10 Servicenow, Inc. Graphical user interface for discovering consumption of services
US11100084B2 (en) 2017-05-05 2021-08-24 Servicenow, Inc. Configuration management identification rule testing
US10824588B2 (en) 2017-05-05 2020-11-03 Servicenow, Inc. Remote document conversion and viewing systems and methods
US10817492B2 (en) 2017-05-05 2020-10-27 Servicenow, Inc. Application extension
US10938586B2 (en) 2017-05-06 2021-03-02 Servicenow, Inc. Systems for peer-to-peer knowledge sharing platform
US10673715B2 (en) 2017-07-20 2020-06-02 Servicenow, Inc. Splitting network discovery payloads based on degree of relationships between nodes
US11012305B2 (en) 2017-08-09 2021-05-18 Servicenow, Inc. Systems and methods for service mapping
US10705875B2 (en) 2017-08-09 2020-07-07 Servicenow, Inc. Systems and methods for recomputing services
US10824642B2 (en) 2017-08-10 2020-11-03 Servicenow, Inc. Data synchronization architecture
US10545755B2 (en) 2017-09-07 2020-01-28 Servicenow, Inc. Identifying customization changes between instances
CN112732273A (zh) * 2017-09-19 2021-04-30 华为技术有限公司 应用部署方法、装置及系统
US10558920B2 (en) 2017-10-02 2020-02-11 Servicenow, Inc. Machine learning classification with confidence thresholds
US10911314B2 (en) 2017-10-02 2021-02-02 Servicenow, Inc. Systems and methods for determining entry points for mapping a network
US10402581B2 (en) 2017-10-03 2019-09-03 Servicenow, Inc. Searching for encrypted data within cloud based platform
US20190102841A1 (en) 2017-10-04 2019-04-04 Servicenow, Inc. Mapping engine configurations with task managed workflows and grid user interfaces
US10621313B2 (en) 2017-10-04 2020-04-14 Servicenow, Inc. Distribution and enforcement of per-feature-set software application licensing
US11238082B2 (en) 2017-10-04 2022-02-01 Servicenow, Inc. Text analysis of unstructured data
US10979296B2 (en) 2017-10-04 2021-04-13 Servicenow, Inc. Systems and method for service mapping
US11057276B2 (en) 2017-10-04 2021-07-06 Servicenow, Inc. Bulk service mapping
US10740726B2 (en) 2017-10-05 2020-08-11 Servicenow, Inc. Systems and methods for providing message templates in an enterprise system
US10530746B2 (en) 2017-10-17 2020-01-07 Servicenow, Inc. Deployment of a custom address to a remotely managed computational instance
US10795885B2 (en) 2017-11-15 2020-10-06 Servicenow, Inc. Predictive query improvement
US11023461B2 (en) 2018-01-19 2021-06-01 Servicenow, Inc. Query translation
US10740568B2 (en) 2018-01-24 2020-08-11 Servicenow, Inc. Contextual communication and service interface
US11880557B2 (en) 2018-01-29 2024-01-23 Servicenow, Inc. Distributed editing and versioning for graphical service maps of a managed network
US10650597B2 (en) 2018-02-06 2020-05-12 Servicenow, Inc. Augmented reality assistant
US10783316B2 (en) 2018-02-26 2020-09-22 Servicenow, Inc. Bundled scripts for web content delivery
US10609163B2 (en) 2018-02-26 2020-03-31 Servicenow, Inc. Proxy application supporting multiple collaboration channels
US10824791B2 (en) 2018-02-26 2020-11-03 Servicenow, Inc. System for building and modeling web pages
US10817468B2 (en) 2018-02-27 2020-10-27 Servicenow, Inc. Document management
US10542124B2 (en) 2018-02-27 2020-01-21 Servicenow, Inc. Systems and methods of rate limiting for a representational state transfer (REST) application programming interface (API)
US11200538B2 (en) 2018-02-27 2021-12-14 Servicenow, Inc. System and method for a unified incident management interface
US10990929B2 (en) 2018-02-27 2021-04-27 Servicenow, Inc. Systems and methods for generating and transmitting targeted data within an enterprise
US10606955B2 (en) 2018-03-15 2020-03-31 Servicenow, Inc. Incident matching with vector-based natural language processing
US10740566B2 (en) 2018-03-23 2020-08-11 Servicenow, Inc. Method and system for automated intent mining, classification and disposition
US11520992B2 (en) 2018-03-23 2022-12-06 Servicenow, Inc. Hybrid learning system for natural language understanding
US10713441B2 (en) 2018-03-23 2020-07-14 Servicenow, Inc. Hybrid learning system for natural language intent extraction from a dialog utterance
US10922215B2 (en) 2018-04-16 2021-02-16 Servicenow, Inc. Feature toggling using a plugin architecture in a remote network management platform
US11551105B2 (en) 2018-04-20 2023-01-10 Servicenow, Inc. Knowledge management using machine learning model trained on incident-knowledge relationship fingerprints
US10824432B2 (en) 2018-04-30 2020-11-03 Servicenow, Inc. Systems and methods for providing multiple console sessions that enable line-by-line execution of scripts on a server application
US10558671B2 (en) 2018-05-01 2020-02-11 Servicenow, Inc. Modified representational state transfer (REST) application programming interface (API) including a customized GraphQL framework
US10719359B2 (en) 2018-05-02 2020-07-21 Servicenow, Inc. Periodic task execution in an automated context
US10943201B2 (en) 2018-05-02 2021-03-09 Servicenow, Inc. Digital fingerprint analysis
US10783060B2 (en) 2018-05-02 2020-09-22 Servicenow, Inc. Post-upgrade debugging in a remote network management platform
US11373124B2 (en) 2018-05-04 2022-06-28 Servicenow, Inc. System and method for a control based project scheduling mode
US11257168B2 (en) * 2018-05-07 2022-02-22 Servicenow, Inc. Systems and method for combined account reconciliation and variance/flux analysis
US11036751B2 (en) 2018-05-07 2021-06-15 Servicenow, Inc. Advanced insights explorer
US11112939B2 (en) 2018-05-07 2021-09-07 Servicenow, Inc. Dynamic updates for configurable menu items
US10621077B2 (en) 2018-05-16 2020-04-14 Servicenow, Inc. Dependency mapping between program code and tests to rapidly identify error sources
US10747530B2 (en) 2018-06-12 2020-08-18 Servicenow, Inc. Mission-based developer certification system and method
US10664248B2 (en) 2018-07-16 2020-05-26 Servicenow, Inc. Systems and methods for comparing computer scripts
US10817809B2 (en) 2018-07-27 2020-10-27 Servicenow, Inc. Systems and methods for customizable route optimization
US11068380B2 (en) 2018-08-08 2021-07-20 Servicenow, Inc. Capturing and encoding of network transactions for playback in a simulation environment
US11140046B2 (en) 2018-08-08 2021-10-05 Servicenow, Inc. Offline updates for native mobile applications
US10826942B2 (en) 2018-08-10 2020-11-03 Servicenow, Inc. Creating security incident records using a remote network management platform
US10929790B2 (en) 2018-08-29 2021-02-23 Servicenow, Inc. Dynamic agent management for multiple queues
US10972435B2 (en) 2018-09-05 2021-04-06 Servicenow, Inc. Dynamic discovery of executing applications
US11061949B2 (en) 2018-09-05 2021-07-13 Servicenow, Inc. User interface for contextual search
US11368462B2 (en) 2018-09-06 2022-06-21 Servicenow, Inc. Systems and method for hypertext transfer protocol requestor validation
US11182377B2 (en) 2018-09-07 2021-11-23 Servicenow, Inc. System and graphical user interface for record lifecycle improvement
US10992544B2 (en) 2018-09-07 2021-04-27 Servicenow, Inc. Identification and display of configuration item information
US10824547B2 (en) 2018-09-10 2020-11-03 Servicenow, Inc. Automated certification testing for application deployment
US11089053B2 (en) 2018-09-17 2021-08-10 Servicenow, Inc. Phishing attempt search interface
US20200089750A1 (en) * 2018-09-17 2020-03-19 Servicenow, Inc. Streaming parser for structured data-interchange files
US11294711B2 (en) 2018-09-17 2022-04-05 Servicenow, Inc. Wait a duration timer action and flow engine for building automated flows within a cloud based development platform
US10970048B2 (en) 2018-09-17 2021-04-06 Servicenow, Inc. System and method for workflow application programming interfaces (APIS)
US20200090052A1 (en) 2018-09-17 2020-03-19 Servicenow, Inc. Decision tables and enterprise rules for object linking within an application platform as a service environment
US11080657B2 (en) 2018-09-17 2021-08-03 Servicenow, Inc. Systems and methods for generating campaign analytics
US10810262B2 (en) 2018-09-17 2020-10-20 Servicenow, Inc. System and method for dashboard selection
US10831589B2 (en) 2018-09-17 2020-11-10 Servicenow, Inc. Service portal diagnosis system providing issue resolution steps
US11182746B2 (en) 2018-09-17 2021-11-23 Servicenow, Inc. Systems and methods for integrating third-party services with a client instance
US11423069B2 (en) 2018-09-19 2022-08-23 Servicenow, Inc. Data structures for efficient storage and updating of paragraph vectors
US11574235B2 (en) 2018-09-19 2023-02-07 Servicenow, Inc. Machine learning worker node architecture
US10459962B1 (en) 2018-09-19 2019-10-29 Servicenow, Inc. Selectively generating word vector and paragraph vector representations of fields for machine learning
US10802950B2 (en) 2018-09-19 2020-10-13 Servicenow, Inc. Automated webpage testing
US11238230B2 (en) 2018-09-19 2022-02-01 Servicenow, Inc. Persistent word vector input to multiple machine learning models
US11429650B2 (en) 2018-09-21 2022-08-30 Servicenow, Inc. Parsing of user queries in a remote network management platform using linguistic matching
US11249992B2 (en) 2018-09-21 2022-02-15 Servicenow, Inc. Parsing of user queries in a remote network management platform using extended context-free grammar rules
US11151118B2 (en) 2018-10-02 2021-10-19 Servicenow, Inc. Dynamic threshold adjustment based on performance trend data
US10826909B2 (en) 2018-10-04 2020-11-03 Servicenow, Inc. Platform-based authentication for external services
US11061890B2 (en) 2018-10-04 2021-07-13 Servicenow, Inc. Automated identification of hardware and software components relevant to incident reports
US11487590B2 (en) * 2018-10-09 2022-11-01 Kyndryl, Inc. Orchestration engine resources and blueprint definitions for hybrid cloud composition
US11063946B2 (en) 2018-10-24 2021-07-13 Servicenow, Inc. Feedback framework
WO2020088681A1 (zh) * 2018-11-01 2020-05-07 华为技术有限公司 模型文件的管理方法和终端设备
US10713020B2 (en) 2018-11-08 2020-07-14 Servicenow, Inc. Efficient bundling and delivery of client-side scripts
US10958532B2 (en) 2018-11-09 2021-03-23 Servicenow, Inc. Machine learning based discovery of software as a service
US11157292B2 (en) 2018-11-13 2021-10-26 Servicenow, Inc. Instance mapping engine and tools
US11240271B2 (en) 2018-11-14 2022-02-01 Servicenow, Inc. Distributed detection of security threats in a remote network management platform
US10715402B2 (en) 2018-11-27 2020-07-14 Servicenow, Inc. Systems and methods for enhanced monitoring of a distributed computing system
US10929186B2 (en) * 2018-12-12 2021-02-23 Servicenow, Inc. Control token and hierarchical dynamic control
US10846111B2 (en) 2018-12-18 2020-11-24 Servicenow, Inc. Customer service management
US11513823B2 (en) 2018-12-18 2022-11-29 Servicenow, Inc. Chat interface for resource management
US11182179B2 (en) 2018-12-27 2021-11-23 Servicenow, Inc. System and method for simple object access protocol (SOAP) interface creation
US11068140B2 (en) 2019-01-04 2021-07-20 Servicenow, Inc. Intelligent overflow menu
US11137258B2 (en) 2019-01-07 2021-10-05 Servicenow, Inc. Systems and methods for comprehensive routing
US10649630B1 (en) 2019-01-08 2020-05-12 Servicenow, Inc. Graphical user interfaces for software asset management
US11363030B2 (en) 2019-01-08 2022-06-14 Servicenow, Inc. Systems and methods for categorized hierarchical view and modification of user accessibility to information technology item
US11150876B2 (en) 2019-01-09 2021-10-19 Servicenow, Inc. Transparent client-side source code editing on a remote network management platform
US11108647B2 (en) 2019-01-14 2021-08-31 Servicenow, Inc. Service mapping based on discovered keywords
US11392563B2 (en) 2019-01-15 2022-07-19 Servicenow, Inc. Efficient compression of workflow state representations
US11070435B2 (en) 2019-01-16 2021-07-20 Servicenow, Inc. Service model re-computation based on configuration item change type
US11410101B2 (en) 2019-01-16 2022-08-09 Servicenow, Inc. Efficient analysis of user-related data for determining usage of enterprise resource systems
US11061696B2 (en) 2019-01-22 2021-07-13 Servicenow, Inc. Extension points for web-based applications and services
US10805189B2 (en) 2019-01-22 2020-10-13 Servicenow, Inc. Systems and method for shared visualization library
US11308429B2 (en) 2019-01-23 2022-04-19 Servicenow, Inc. Enterprise data mining systems
US11163791B2 (en) 2019-01-23 2021-11-02 Servicenow, Inc. Transformation configuration in instance data replication with bi-directional replication support
US11150954B2 (en) 2019-02-04 2021-10-19 Servicenow, Inc. Mitigating resource scheduling conflicts in a cloud platform
US11106525B2 (en) 2019-02-04 2021-08-31 Servicenow, Inc. Systems and methods for classifying and predicting the cause of information technology incidents using machine learning
US11409844B2 (en) 2019-02-11 2022-08-09 Servicenow, Inc. Systems and methods for license management in a domain-separated architecture
US10819587B2 (en) 2019-03-04 2020-10-27 Servicenow, Inc. Methods and systems for analysis of process performance
US11593461B2 (en) 2019-03-11 2023-02-28 Servicenow, Inc. Systems and methods for third-party library management
US10949070B2 (en) 2019-03-13 2021-03-16 Servicenow, Inc. Customizable mobile application for event management
US11061669B2 (en) 2019-03-14 2021-07-13 Servicenow, Inc. Software development tool integration and monitoring
US11379560B2 (en) 2019-03-18 2022-07-05 ServiceNow Inc. Systems and methods for license analysis
US10599786B1 (en) 2019-03-19 2020-03-24 Servicenow, Inc. Dynamic translation
US10678418B1 (en) 2019-03-19 2020-06-09 Servicenow, Inc. Graphical user interfaces for defining complex data objects
US11138530B2 (en) 2019-03-19 2021-10-05 Servicenow, Inc. Action determination for case management
US11223581B2 (en) 2019-03-19 2022-01-11 Servicenow, Inc. Virtual agent portal integration of two frameworks
US11250202B2 (en) 2019-03-19 2022-02-15 Servicenow, Inc. System and method for large volume data streaming as a service
US11442899B2 (en) 2019-03-19 2022-09-13 Servicenow, Inc. Systems and methods for improved application programing interface (API) retry handling
US11423910B2 (en) 2019-03-19 2022-08-23 Servicenow, Inc. Systems and method for third party natural language understanding service integration
US10521195B1 (en) 2019-03-19 2019-12-31 Servicenow, Inc. Guided definition of an application programming interface action for a workflow
US11790176B2 (en) 2019-03-19 2023-10-17 Servicenow, Inc. Systems and methods for a virtual agent in a cloud computing environment
US11151325B2 (en) 2019-03-22 2021-10-19 Servicenow, Inc. Determining semantic similarity of texts based on sub-sections thereof
US11080490B2 (en) 2019-03-28 2021-08-03 Servicenow, Inc. Pre-training of virtual chat interfaces
US10936309B2 (en) * 2019-04-03 2021-03-02 Accenture Global Solutions Limited Development project blueprint and package generation
US10739983B1 (en) 2019-04-10 2020-08-11 Servicenow, Inc. Configuration and management of swimlanes in a graphical user interface
US10924344B2 (en) 2019-04-11 2021-02-16 Servicenow, Inc. Discovery and mapping of cloud-based resource modifications
US11263201B2 (en) 2019-04-12 2022-03-01 Servicenow, Inc. Interface for supporting integration with cloud-based service providers
US11226978B2 (en) 2019-04-23 2022-01-18 Servicenow, Inc. Systems and methods for dynamic creation of schemas
US11232021B2 (en) 2019-05-02 2022-01-25 Servicenow, Inc. Database record locking for test parallelization
US10686647B1 (en) 2019-05-02 2020-06-16 Servicenow, Inc. Descriptor architecture for a remote network management platform
US11210630B2 (en) 2019-05-02 2021-12-28 Servicenow, Inc. Integrated receiving and classification of computer hardware
US11112929B2 (en) 2019-05-02 2021-09-07 Servicenow, Inc. Personalized graphical user interfaces for enterprise-related actions
US10747757B1 (en) 2019-05-02 2020-08-18 Servicenow, Inc. Graphical query builder for multi-modal search
US11157273B2 (en) 2019-05-02 2021-10-26 Servicenow, Inc. Scaled agile framework program board
US10764124B1 (en) 2019-05-02 2020-09-01 Servicenow, Inc. Intelligent export and import of service representations
US11651032B2 (en) 2019-05-03 2023-05-16 Servicenow, Inc. Determining semantic content of textual clusters
US11082289B2 (en) 2019-05-03 2021-08-03 Servicenow, Inc. Alert intelligence integration
US11127402B2 (en) 2019-05-03 2021-09-21 Servicenow, Inc. Systems and methods for voice development frameworks
US11481474B2 (en) 2019-05-03 2022-10-25 Servicenow, Inc. Discovery and allocation of entitlements to virtualized applications
US11188349B2 (en) 2019-05-03 2021-11-30 Servicenow, Inc. Platform-based enterprise technology service portfolio management
US11586659B2 (en) 2019-05-03 2023-02-21 Servicenow, Inc. Clustering and dynamic re-clustering of similar textual documents
US11520622B2 (en) 2019-05-03 2022-12-06 Servicenow, Inc. Active queue management in a multi-node computing environment
US11431824B2 (en) 2019-05-03 2022-08-30 Servicenow, Inc. Server-side control over navigation mode in web application
US11080241B2 (en) 2019-05-03 2021-08-03 Servicenow, Inc. Document collaboration
US11349877B2 (en) 2019-06-20 2022-05-31 Servicenow, Inc. Solution management systems and methods for addressing cybersecurity vulnerabilities
US10698595B1 (en) 2019-06-28 2020-06-30 Servicenow, Inc. Support for swimlanes in a mobile graphical user interface
US11487945B2 (en) 2019-07-02 2022-11-01 Servicenow, Inc. Predictive similarity scoring subsystem in a natural language understanding (NLU) framework
US11205052B2 (en) 2019-07-02 2021-12-21 Servicenow, Inc. Deriving multiple meaning representations for an utterance in a natural language understanding (NLU) framework
US11410061B2 (en) 2019-07-02 2022-08-09 Servicenow, Inc. Dynamic anomaly reporting
US11361369B2 (en) 2019-07-29 2022-06-14 Servicenow, Inc. Systems and methods for generating purchase outputs based on received voice input
US11232410B2 (en) 2019-08-07 2022-01-25 Servicenow, Inc. On-call scheduling and enhanced contact preference management
US11256391B2 (en) 2019-08-12 2022-02-22 Servicenow, Inc. Mobile user interface for displaying heterogeneous items interleaved by common data type
US11205047B2 (en) 2019-09-05 2021-12-21 Servicenow, Inc. Hierarchical search for improved search relevance
US11379562B2 (en) 2019-09-09 2022-07-05 Servicenow, Inc. Remote software usage monitoring and entitlement analysis
US11290357B2 (en) 2019-09-10 2022-03-29 Servicenow, Inc. Automated document summaries using highlighting
US11507442B2 (en) 2019-09-17 2022-11-22 Servicenow, Inc. Method and system for determining maturity level of a cloud computing service
US11157241B2 (en) 2019-09-18 2021-10-26 Servicenow, Inc. Codeless specification of software as a service integrations
US11140042B2 (en) 2019-09-18 2021-10-05 Servicenow, Inc. Dictionary-based service mapping
US11086879B2 (en) 2019-10-02 2021-08-10 Servicenow, Inc. Pipelineable and parallelizable streaming parsers for querying structured data-interchange information
US11507644B2 (en) 2019-10-02 2022-11-22 Servicenow, Inc. Discovery and classification of software application suites
US11461673B2 (en) 2019-10-07 2022-10-04 Servicenow, Inc. Shared machine learning model for application discovery
US11449496B2 (en) 2019-10-25 2022-09-20 Servicenow, Inc. Enhanced natural language processing with semantic shortcuts
US10917358B1 (en) 2019-10-31 2021-02-09 Servicenow, Inc. Cloud service for cross-cloud operations
US11531683B2 (en) 2019-11-06 2022-12-20 Servicenow, Inc. Unified application programming interface for transformation of structured data
US11481417B2 (en) 2019-11-06 2022-10-25 Servicenow, Inc. Generation and utilization of vector indexes for data processing systems and methods
US11468238B2 (en) 2019-11-06 2022-10-11 ServiceNow Inc. Data processing systems and methods
US11455357B2 (en) 2019-11-06 2022-09-27 Servicenow, Inc. Data processing systems and methods
US11429631B2 (en) 2019-11-06 2022-08-30 Servicenow, Inc. Memory-efficient programmatic transformation of structured data
US11188530B2 (en) 2019-11-25 2021-11-30 Servicenow, Inc. Metadata-based translation of natural language queries into database queries
US11258860B2 (en) 2019-12-24 2022-02-22 Servicenow, Inc. System and method for bot detection and classification
US11188553B2 (en) 2019-12-31 2021-11-30 Servicenow, Inc. System and method for importation of configuration item (CI) data into a configuration management database (CMDB)
US11275790B2 (en) 2019-12-31 2022-03-15 Servicenow, Inc. Enhanced phrase scoring for textual search
US11418395B2 (en) 2020-01-08 2022-08-16 Servicenow, Inc. Systems and methods for an enhanced framework for a distributed computing system
US11467879B2 (en) * 2020-01-20 2022-10-11 Oracle International Corporation Techniques for implementing rollback of infrastructure changes in a cloud infrastructure orchestration service
US11853315B2 (en) 2020-02-12 2023-12-26 Servicenow, Inc. Synchronization between computational instances of a remote network management platform
US11487411B2 (en) 2020-02-20 2022-11-01 Servicenow, Inc. Context-driven group pill in a user interface
US11385916B2 (en) 2020-03-16 2022-07-12 Servicenow, Inc. Dynamic translation of graphical user interfaces
US11580312B2 (en) 2020-03-16 2023-02-14 Servicenow, Inc. Machine translation of chat sessions
US11068130B1 (en) 2020-03-16 2021-07-20 Servicenow, Inc. Automatic restructuring of graphical user interface components based on user interaction
US11190623B1 (en) 2020-08-26 2021-11-30 Servicenow, Inc. System and method for a data interchange hub
US11784962B2 (en) 2020-09-01 2023-10-10 Servicenow, Inc. Systems and methods for collaborative chat with non-native chat platforms
US11474845B2 (en) 2020-09-09 2022-10-18 Servicenow, Inc. System and method for versioned script management
US12015739B2 (en) 2020-09-14 2024-06-18 Servicenow, Inc. Integrated customer information user interface
US11354006B2 (en) * 2020-10-22 2022-06-07 Servicenow, Inc. Generation and use of application templates
US11599645B2 (en) 2021-01-07 2023-03-07 Servicenow, Inc. Systems and methods for predicting cybersecurity vulnerabilities
US11296926B1 (en) 2021-01-07 2022-04-05 Servicenow, Inc. Systems and methods for ranked visualization of events
US11838374B2 (en) 2021-02-12 2023-12-05 Servicenow, Inc. Remote network management infrastructure for cloud-based deployments
US12066922B2 (en) * 2021-04-19 2024-08-20 Walmart Apollo, Llc System and methods for deploying a distributed architecture system
US11768831B2 (en) 2021-05-10 2023-09-26 Servicenow, Inc. Systems and methods for translating natural language queries into a constrained domain-specific language
US11928174B2 (en) * 2021-08-11 2024-03-12 Bank Of America Corporation Centralized dynamic portal for creating and hosting static and dynamic applications
US12001503B2 (en) 2022-02-02 2024-06-04 Servicenow, Inc. System and method for delivering application metadata
US11522943B1 (en) 2022-02-02 2022-12-06 Servicenow, Inc. System and method for deferring data retrieval
US11777815B1 (en) 2022-03-02 2023-10-03 Servicenow, Inc. Techniques for dynamically configuring service availability
US11949561B2 (en) 2022-07-19 2024-04-02 Servicenow, Inc. Automated preventative controls in digital workflow
WO2024186620A1 (en) * 2023-03-03 2024-09-12 Engineer.ai Corp. Building blocks for a device application generator
US20240296015A1 (en) * 2023-03-03 2024-09-05 Engineer.ai Corp. Systems and methods to develop a feature for a device application

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040268296A1 (en) * 2003-06-25 2004-12-30 Abdul Kayam System and associated methods for software assembly
JP2009251769A (ja) * 2008-04-02 2009-10-29 Hitachi Ltd クラス構造生成方法、クラス構造生成プログラムおよびクラス構造生成装置
US20100031247A1 (en) * 2008-07-29 2010-02-04 International Business Machines Corporation Simplified deployment modeling

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030221184A1 (en) * 2002-05-22 2003-11-27 Gunjal Atul Narayan Template-based application development system
US20060037000A1 (en) * 2003-10-10 2006-02-16 Speeter Thomas H Configuration management data model using blueprints
US7865875B2 (en) 2005-12-16 2011-01-04 Concurrent Technologies Corporation Programming toolkit for developing case management software applications
US8312425B2 (en) 2008-03-31 2012-11-13 International Business Machines Corporation Dynamic template instantiation
US20110055801A1 (en) 2009-09-03 2011-03-03 Von Unwerth Catherine D Industry standards modeling systems and methods
US20110088011A1 (en) 2009-10-14 2011-04-14 Vermeg Sarl Automated Enterprise Software Development
US9805322B2 (en) * 2010-06-24 2017-10-31 Bmc Software, Inc. Application blueprint and deployment model for dynamic business service management (BSM)
US8914768B2 (en) 2012-03-28 2014-12-16 Bmc Software, Inc. Automated blueprint assembly for assembling an application

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040268296A1 (en) * 2003-06-25 2004-12-30 Abdul Kayam System and associated methods for software assembly
JP2009251769A (ja) * 2008-04-02 2009-10-29 Hitachi Ltd クラス構造生成方法、クラス構造生成プログラムおよびクラス構造生成装置
US20100031247A1 (en) * 2008-07-29 2010-02-04 International Business Machines Corporation Simplified deployment modeling

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022511242A (ja) * 2018-12-03 2022-01-31 セールスフォース ドット コム インコーポレイティッド コンピュータシステムの自動動作管理
JP7092937B2 (ja) 2018-12-03 2022-06-28 セールスフォース ドット コム インコーポレイティッド コンピュータシステムの自動動作管理

Also Published As

Publication number Publication date
EP2831724A4 (en) 2015-12-09
AU2013239897A1 (en) 2014-10-16
US8914768B2 (en) 2014-12-16
CA3230720A1 (en) 2013-10-03
US9557969B2 (en) 2017-01-31
EP2831724A2 (en) 2015-02-04
US20150169299A1 (en) 2015-06-18
US9727315B2 (en) 2017-08-08
AU2013239897B2 (en) 2018-03-01
CA2868848A1 (en) 2013-10-03
WO2013148651A3 (en) 2014-01-03
US20150169298A1 (en) 2015-06-18
CA2868848C (en) 2024-04-09
JP6283654B2 (ja) 2018-02-21
WO2013148651A2 (en) 2013-10-03
US20130263080A1 (en) 2013-10-03

Similar Documents

Publication Publication Date Title
JP6283654B2 (ja) アプリケーションをアセンブルするためのブループリント自動アセンブリ
US8959481B2 (en) Determining system level dependencies
US9491117B2 (en) Extensible framework to support different deployment architectures
US10282171B2 (en) Application analyzer for cloud computing
Rudyy et al. Containers in hpc: A scalability and portability study in production biological simulations
US8572562B2 (en) Method, apparatus and systems thereof for implementing non-function logic extensibly
US8327341B2 (en) Integrating aspect oriented programming into the application server
US20140019597A1 (en) Semi-automatic discovery and generation of useful service blueprints
US10503630B2 (en) Method and system for test-execution optimization in an automated application-release-management system during source-code check-in
US20090164760A1 (en) Method and system for module initialization with an arbitrary number of phases
US8640146B2 (en) Providing extensive ability for describing a management interface
US20130074068A1 (en) Method, System, and Computer Program for Implementing a Customizable Virtual Appliance
Mastelic et al. Towards uniform management of cloud services by applying model-driven development
Petrović Model-driven approach for deployment of container-based applications in fog computing
Akkerman et al. Infrastructure for automatic dynamic deployment of J2EE applications in distributed environments
US11573777B2 (en) Method and apparatus for enabling autonomous acceleration of dataflow AI applications
Bhattacharjee et al. Cloudcamp: A model-driven generative approach for automating cloud application deployment and management
Almeida et al. Dynamic Adaptation of Cloud Computing Applications.
Grzelak et al. Design and concept of an osmotic analytics platform based on R container
Tahmasebi et al. Dataclouddsl: Textual and visual presentation of big data pipelines
Kohlhoff Google-accelerated biomolecular simulations
Plsek et al. Component-oriented development for real-time java
Ahmed-Nacer et al. Provisioning of Component-based Applications Across Multiple Clouds.
Araujo De Oliveira A Requirements-Driven Approach for Building Architecture Projects of Self-Adaptive Systems
Binder et al. Optimal workflow execution in grid environments

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160325

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160325

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20170220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170228

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20170525

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170828

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180129

R150 Certificate of patent or registration of utility model

Ref document number: 6283654

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250