Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP2018533125A - ビジュアルコンテンツ開発 - Google Patents
[go: Go Back, main page]

JP2018533125A - ビジュアルコンテンツ開発 - Google Patents

ビジュアルコンテンツ開発 Download PDF

Info

Publication number
JP2018533125A
JP2018533125A JP2018513458A JP2018513458A JP2018533125A JP 2018533125 A JP2018533125 A JP 2018533125A JP 2018513458 A JP2018513458 A JP 2018513458A JP 2018513458 A JP2018513458 A JP 2018513458A JP 2018533125 A JP2018533125 A JP 2018533125A
Authority
JP
Japan
Prior art keywords
data
computing
operable
virtualized
code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2018513458A
Other languages
English (en)
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of JP2018533125A publication Critical patent/JP2018533125A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment

Landscapes

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

Abstract

仮想化コンピューティング環境を呼び出すソフトウェアアプリケーションを開発する技術が記載されている。ユーザの入力データに基づいて、入力、出力及び動作の表現をグラフィカルに描写するよう動作可能であるグラフィカルなユーザインタフェースがレンダリングされる。入力、出力及び動作の表現のグラフィカルな描写がレンダリングされる。レンダリングされたグラフィカルな描写は、入力、出力及び動作を実装する機能を実行し仮想化コンピューティング環境でサービスを呼び出すよう動作可能である関連する実行可能コードに関連付けられる。【選択図】なし

Description

関連出願の相互参照
本出願は、2015年9月18日に出願された米国特許出願第14/859,177号の利益を主張するものであり、この出願の開示は、参照によりその全体が本明細書に組み込まれる。
プロバイダネットワークを運用するエンティティなどのサービスプロバイダは、コンピューティングインスタンス及びストレージリソースなどのコンピューティングリソースをクライアントに提供し得る。サービスプロバイダは、例えばコンピューティング及びネットワークサービスのプラットフォームを提供し得る。複数のクライアントは、コンピューティング及びネットワークサービスのプラットフォームにコンピューティングノードを介してアクセスし、ウェブサービスのプラットフォームに命令を発行し得る。コンピューティング及びネットワークサービスのプラットフォームは、複数のクライアントがプラットフォームにアクセスし得ることを意味するマルチテナントコンピューティング及びネットワークサービスのプラットフォームとも称され得る。
多くのマルチテナントコンピューティング及びネットワークサービスのプラットフォームは、ユーザがウェブブラウザを通じてアクセスし、仮想化されたリソースがあたかもユーザ自身のコンピュータ上にローカルにインストールされたプログラムであるかのように使用することができる仮想化されたリソース及びウェブベースのツールまたはアプリケーションを提供する。そうしたシステムのユーザ用に格納されたデータは、通常、コンピューティングデータセンタに配置されたコンピューティングシステムでホストされる。いくつかの例で、マルチプレーヤゲームなどの電子的に提示されるコンテンツは、多数の異なるユーザから同時にアクセスされ関与され得る。それらのコンテンツがユーザにとって容易に利用可能となるように、そうしたコンテンツのコンテンツ開発者は、サーバの配置かつ管理の技術に熟練せざるを得ないことが多い。
添付の図面は、発明のさらなる理解をもたらすために含まれ、本明細書に組み込まれるとともに本明細書の一部を成し、発明のいくつかの実施形態を例示して、その詳細な記載とともに発明の原理を説明するのに役立つ。本発明の基本的理解かつ本発明がどのように具現化され得るかに必要であり得る以上に本発明の構造的な詳細を示す試みはなされていない。
本開示の一部の態様によるコンテンツ開発のための例示的なシステムのハイレベルシステム図である。 本開示の一部の態様による例示的なビジュアルスクリプトの翻訳の図である。 本開示の一部の態様による例示的なビジュアル開発環境のハイレベルシステム図である。 本開示の一部の態様による例示的なコンテンツ開発環境の機能ブロック図である。 本開示の一部の態様による例示的なコンテンツ開発環境の機能ブロック図である。 本開示の一部の態様によるコンテンツを作成/編集するための例示的なユーザインタフェースの図である。 本開示の一部の態様によるコンテンツを作成/編集するための例示的なユーザインタフェースの図である。 本開示の一部の態様によるコンテンツを作成/編集するための例示的なユーザインタフェースの図である。 コンテンツを開発する例示的な操作手続きの図である。 本開示の態様が実施され得るコンピューティング環境の実施形態を表すブロック図である。 本開示の態様が実施され得るコンピュータシステムの実施形態を表すブロック図である。
マルチテナントコンピューティング及びネットワークサービスのプラットフォームのユーザは、プラットフォーム上でアプリケーションを開発し公開し得る。多くの場合、ユーザは、ユーザのアプリケーション開発及び配置のニーズに最も適合するリソースの数及び構成ならびにリソースの種類を、そのリソース及びリソースの種類の技術上の規格によって推定する必要があり得る。さらに、ユーザには、開発及び配置の作業を始めることを目的に、サーバ、ストレージデバイス及び他のリソースを適切に構成するために、特定の言語、手続き及び他の技術的詳細を学習し適用することが求められる場合が多い。しかしながら、ユーザの全てが彼らのニーズを満たすのに必要なリソースの数及び構成を正確に推定するための十分な情報または経験を有しているわけではない場合がある。また、全てのユーザがこれらのリソースにアクセスするのに必要な特定の言語及び手続きを学習するために時間及び資源を喜んで投資するわけではない。
本開示は、ソフトウェアアプリケーションを開発し導入するプロセスの態様が、統合された開発及び導入環境によって提供され得る開発環境を記載している。開発及び導入環境は、開発者コンピューティングシステム上で実行され得、かつ/またはマルチテナントコンピューティング及びネットワークサービスのプラットフォーム(プロバイダネットワークとも称される)上で実行され得、かつリモートアクセス技術を介してウェブブラウザインタフェースを用いてアクセス可能であり得る。本開示は、あらゆる種類のコンテンツを作成するためのアプリケーション開発環境のシステム及び方法を記載している。具体的には、所望のアプリケーションが実装され公開されたときにアクセスされ得るプロバイダネットワークの基礎をなしているリソースにアクセスするためのプログラミング言語またはプロセス及び手続きの具体的な知識を要さないビジュアル環境で、コンテンツを作成し、構成し、プログラミングし、かつ/または編集することができる仮想プロジェクト環境を提供するシステム及び方法が記載されている。
一部の実施形態では、ビジュアル開発環境により、開発者は、ビジュアルスクリプトパラダイムを用いて、プロバイダネットワークで種々のサービスを呼び出しそれらにアクセスするコードを生成することが可能になる。ビジュアル開発環境は、例えば、ユーザセッション間で永続するプログラミングロジック構成要素をホストし得る。ユーザは、アプリケーションを開発するのにビジュアルスクリプトパラダイムを用い得、こうして、クライアント−サーバプログラミング、及びプロバイダネットワークで利用可能なサービスにアクセスするための他の特定の方法論を学習する必要性を回避する。プロバイダネットワークで種々のサービスを呼び出しそれらにアクセスするコードが生成されると、そのコードは、仮想化コンテンツ及びビデオゲームなどの多数の種類のソフトウェアアプリケーションを実装するのに用いられる他のコードと統合、または組み合わせることができる。さらに、ソフトウェアアプリケーション全体を、ソフトウェアアプリケーションのコードの全てがビジュアル開発環境を用いて生成されるように、ビジュアルスクリプトパラダイムを用いて作成し得る。
一部の実施形態では、ビジュアル開発環境は、プロバイダネットワークのバックエンドサービスを、開発者のニーズに合うように拡張することができるビジュアルツール及びテンプレートと統合するコードを生成するように構成され得る。テンプレートは、開発者によってアプリケーション及び機能のビルディングブロックの集合を作成し管理するための出発点として用いられ得る。さらに、テンプレートは、アプリケーション全体及び他のコンテンツのサンプル一式を含み得る。
プロバイダネットワークサービスのアクションに対応するコードに翻訳され得るアプリケーション開発のためのビジュアルビルディングブロックを用いることによって、開発者は、各サービスに対する特定のインタフェースを用いる必要なしに、各サービスの特定のプログラミングの詳細を開発者が学習する必要なしに、またはC++などの言語で開発者がコードを書く必要なしに、プロバイダネットワークサービスの機能にアクセスすることができ、開発者がプロバイダネットワークサービスにアクセスしそれを利用することにおける使い勝手をよくする。開発者は、ビジュアル開発環境のグラフィカルツールを用いるだけで、アプリケーションスタック及びマシンイメージを作成して所望のオンラインサービスを導入し得る。例えば、ビジュアル開発環境は、ゲームセッション間のプレイヤのグローバルステート及びインベントリ、ゲームのプレイヤ全員の中での相対的なランキングを記録し、プレイヤ間にトレーディングサービスを提供するといった機能を生成するのに用いられ得る。こうして、開発者は、サーバ及び他のコンピューティングリソースの具体的な技術的要件をどのように定義するのかを知る必要なしに、所望のゲームプレイをスクリプトし、出来上がったものをユーザがアクセスするように公開することが可能になり得る。
ビジュアル開発環境を用いて選択され得るビルディングブロックは、ファイル保存、コンテンツ配信、データベースアクセス、クラウドコンピューティング機能、ワークフローサービス、サーバ群の管理及びスケーリングならびにスケーラブルサーバ側のイベントなどの、プロバイダネットワークの種々のバックエンドサービスに実装されるアクションを生成することができる命令及び他のアクション可能な入力に関連付けられ得る。実装されるアクションは、ソフトウェアスタック、サーバマシンイメージ及びセキュリティ設定を直接ビルドし管理する必要なしに生成され得る。例えば、開発者は、API呼び出しと組み合わされた変更通知を用いてビデオゲームアプリケーションにおけるプレイヤデータなどの、アプリケーションでの変更されているユーザ入力を登録し対応することが可能であり得る。さらに、開発者は、ビジュアル開発環境を用いて、サーバ群に性能及び要求に基づいて自動的にスケールを行わせる(例えばオートスケーリング)コードを生成することが可能であり得る。さらに、開発者は、開発者またはプロジェクトのスポンサーがコンピューティングリソースの実際の使用にのみ関与するように、サーバ側ロジックをスケール可能にスクリプト可能であり得る。
一部の実施形態では、ビジュアル開発環境は、開発者のシステム上で実行され得る。ビジュアル開発環境は、ユーザコンピュータ上で実行され、かつプロバイダネットワークのサービスを呼び出すコードを生成するのに用いられ得る。他の実施形態では、ビジュアル開発環境は、プロバイダネットワーク上かつ/またはこれらのもしくは他のシステム及びネットワークの任意の組み合わせ上で実行され得る。ビジュアル開発環境は、ウェブブラウザインタフェースなどのインタフェースを介して、開発者にとってアクセス可能であり得る。プロバイダネットワーク上で実行されるビジュアル開発環境は、開発者によって、ユーザコンピュータ上で実行され、かつプロバイダネットワークのサービスを呼び出すコードを生成するために用いられ得る。さらなる実施形態では、生成されるコードは、プロバイダネットワーク上で実行され得、ウェブブラウザインタフェースなどのインタフェースを介してエンドユーザにアクセス可能であり得る。
本開示に開示された実施形態はビデオゲーム開発という文脈におけるビジュアル開発環境を考察しているが、他の種類の用途も本明細書に開示された概念及び技術を用いて利用することができることを理解されたい。例えば、本明細書に開示される実施形態は、コンテンツ配信サービスを提供するアプリケーションとともに利用される場合もある。
一部の実施形態では、ビジュアル開発環境により、開発者は、非ビジュアルなかつ従来の開発ツールを用いて、選択された特徴をカスタマイズすることも可能になり得る。例えば、開発者は、ビジュアル開発環境を用いてコードを生成し得る。開発者は、生成コードにアクセスし、直接的なテキストコーディングなどの非ビジュアルな方法を用いて、生成されたコードに修正を行う能力を備え得る。
一部の実施形態では、コンテンツは、開発者によってビジュアル開発環境を用いて作成され得、そしてそれが、コンテンツの導入されたインスタンスをホストまたはそれとインタラクトし得る種々のバックエンド及び他のサービスまたは構成要素と統合される。コンテンツは、ネットワークベースのサービス(例えばオートスケーリング)、仮想化されたオンラインコンテンツ、データ及びレコード管理、協調編集ツールまたはマルチプレイヤビデオゲームに少なくとも部分的に依存するアプリケーションなどの分散型のアプリケーションを含み得る。一部の実施形態では、ビジュアル開発環境にアクセスするための1つまたは複数のオプションを提供するウェブベースのユーザインタフェースが、プロバイダネットワークの開発者ユーザに対して提示され得る。ビジュアル開発環境は、ユーザインタフェースを介して、コンテンツ開発プロジェクトに対する入力を受信し得、特定のユーザの編集履歴などの他の情報にアクセスすることもできる。代替として、ビジュアル開発環境の機能を実装するソフトウェアが開発者のコンピューティングシステムにダウンロードされ得、ローカルで実行され得る。
一部の実施形態では、各種機能モジュールがビジュアル開発環境のビジュアルエディタで露出され得る。ビジュアルエディタは、入力、入力での動作及び動作の出力のグラフィカルな描写、ならびに/または入力、動作及び出力の表現の描写をレンダリングし得る。次いで、グラフィカルな描写は、各種バックエンドサービスを起動かつ制御するのに用いることができる関連する命令に関連付けられ得る。ある実施形態では、グラフィカルな描写は、各種バックエンドサービスで実行することができる対応する命令に翻訳またはスクリプトされ得る。例えば、グラフィカルな描写は、プロバイダネットワークでのサーバ側機能に直接アップロードすることができるJavaScriptに翻訳され得る。さらに、ビジュアル開発環境は、エンドユーザのコンピューティングデバイス上で実行されるコード及びプロバイダネットワークのコンピューティング環境で実行されるコードをスクリプトし得る。
ビジュアル開発環境は、様々なアプリケーション開発のニーズに関連するコンピューティングサービスに基づいて選択される各種バックエンドサービスと統合され得る。例えば、オンラインゲームは通常、データを格納する、データを共有する、構造体をデータに適用する、かつデータに計算を行うといったサービスにアクセスする。一部の実施形態では、バックエンドサービスは、データの作成、読取り、書込み及び修正を可能にするストレージサービスを含み得る。ストレージサービスは、情報をクライアント上で作成しサーバにアップロードすることを可能にし得る。アップロードされた情報は処理され決定され得、変更された状態がクライアントに書き戻される。ストレージサービスはまた、ユーザにより生成されたコンテンツを、ユーザがアップロードしアプリケーションコンテキスト内で他のユーザと共有することができるようにすることも可能にし得る。例えば、ユーザは、ゲームアプリケーションに関するスクリーンショットまたはビデオをキャプチャし、そのデータを他のユーザと共有するためにアップロードし得る。別の例として、ゲームデータは、他のユーザが後にビデオゲームに対する挑戦としてダウンロードするために、記録されアップロードされ得る。
開発者がデータを効率的にユーザに配信しコンテンツ保護及び権利管理を提供することを可能にするコンテンツ配信サービスが提供され得る。例えば、データコンテンツは、予測されるユーザの場所に物理的に近接して位置する選択サーバに格納され得、コンテンツ配信の待ち時間を少なくすることを可能にする。さらに、選択されたコンテンツをアクセスキーと関連付けることができ、許可または購入に基づいてコンテンツの配信を可能とする。
構造体をアプリケーションデータに適用することを可能にするデータベースサービスが提供され得る。例えば、プレイヤ及び非プレイヤのキャラクタの両方に対するゲームデータの永続状態を追跡するために、データセットが作成され保持され得る。ストレージ及び/またはデータベースサービスで検出された変更に基づいてデータに適用される演算及び他の動作のために、サーバ側サービスが提供され得る。例えば、サーバ側スクリプト及びロジックは、データストレージに書込み中の新規のデータに基づいて、または、モニタリングによって指定されたデータストリームに基づいてトリガされ得る。ビジュアル開発環境は、追加のプロバイダネットワークサービスと統合され得る。
図1は、本開示によるビジュアル開発環境を提供するフレームワークを含むシステム100を例示する図である。図1では、システム100は、例えば1つまたは複数のサーバコンピュータ130および140ならびにストレージボリューム135上で実行され得る仮想マシンリソース110、ストレージボリュームリソース115及びバックエンド120を含み得る。一部の実施形態では、追加のサーバコンピュータ上でインスタンス化され得る様々な種類の追加のリソースが含まれ得ることが理解されよう。
図1は、コンピュータ160及び170などの1つまたは複数のコンピュータを含み得るパブリックネットワーク150も例示する。ある実施形態によると、リソース110、115及び120は、パブリックネットワーク150のコンピュータユーザ(図示せず)に、ゲートウェイ190ならびにコンピュータ160及び170を介してコンピューティングサービスを提供するように構成され得る。例えば、仮想マシンリソース110は、ユーザのグループにリモートアクセス企業アプリケーションのセットを提供し得る。リソースは、仮想マシンインスタンス、ストレージリソース及び他の種類のコンピューティングリソースとして実装され得る。
ある実施形態では、コンピュータ160または170は、アプリケーションを起動または編集するためにビジュアル開発環境180にアクセスまたはそれを実行し得る。例えば、ビジュアル開発環境180は、少なくとも部分的にコンピュータ160または170でダウンロードされるソフトウェアアプリケーションが実装し得る。他の実施形態では、ビジュアル開発環境180は、データセンタ100によってホストされ得、コンピュータ160または170で操作を行っているユーザが、ビジュアル開発環境180にアクセスするリクエストを送信することによって、ビジュアル開発環境180にアクセスし得る。リクエストは、コンピュータ160または170のユーザから直接受信され得る。リクエストの受信に応答して、ビジュアル開発環境180は、リクエストをログし、このリクエストに応答し得る。ビジュアル開発環境180は、必要であれば(1)リクエストの処理、(2)リクエストを満たすリソースへの入札及び(3)リクエストを満たすのに必要なリソースの割当てを容易にするために、プロバイダネットワークの他のサービスと通信し得る。ビジュアル開発環境180は、例えば、リクエストのインスタンス化を容易にし、アプリケーションを起動または編集するためのビジュアルインタフェースを生成するインタフェースを提供し得る。ビジュアル開発環境180はさらに、リクエストのステータスを確認しリクエストを修正またはキャンセルするためのインタフェース、及びアプリケーションを編集するのに用いられ得る他のユーザインタフェースを提供し得る。一部の実施形態では、ユーザインタフェースの描写は、サービスプロバイダによって生成され、レンダリングのために、ユーザのディスプレイに送信され得る。他の実施形態では、ユーザのコンピューティングデバイスは、ユーザインタフェースの一部または全部を生成する機能を含み得る。例えば、ユーザのウェブブラウザは、サービスプロバイダから受信したデータをレンダリングするグラフィクスの一部を生成するためのコードを含み得る。
図2は、例示的なビジュアル開発環境180及びプロバイダネットワークでサービスを呼び出しかつ/または制御するコードの生成を例示するブロック図を示す。ビジュアル開発環境180は、ビジュアルスクリプト210を表すデータを翻訳するように構成され得る。ビジュアルスクリプト210は、コンテンツの機能のグラフィカルな描写をユーザコンピューティングデバイス上にレンダリングし、ユーザがコンテンツとインタラクトし、それを変更することを可能にする種々のソフトウェア及び/またはハードウェア構成要素を用いて編集され得る。ビジュアルスクリプト210は、ソフトウェア及び/またはハードウェア機構を介して受信され得る。
ビジュアルスクリプト210は、ユーザインタフェース上にグラフィカルに描写される1つまたは複数の関数を表す情報を含み得る。ある実施形態では、ビジュアルスクリプト210は、少なくとも1つの入力及び少なくとも1つの出力をさらに含むいくつかの関数またはメソッドを表すデータを含み得る。例えば、グラフィカルな描写は、データファイルなどの入力データ項目上で行われ得る関数または動作のブロック表現を含み得る。グラフィカルな描写はまた、関数または動作に対する入力、及び関数または動作からの出力の表現も含み得る。入力及び出力は、例えば、入力の源及び出力の行き先を描写するために扱われ得る矢印などの線コネクタを用いて表され得る。
ビジュアルスクリプト210は通常、関係性及びデータフローのグラフィカルな操作を可能にする複数のブロック表現及び入力/出力表現を含む。描写されたユーザインタフェースによって、ビジュアルスクリプト210が、典型的であるドラッグアンドドロップ、及びキーボード、マウス、タッチスクリーン及び他の入力デバイスを用いるユーザインタフェースツールに典型的であり得る他のインタラクティブな機構を用いて編集されることが可能になり得る。
ビジュアルスクリプト210は、翻訳構成要素215を用いて翻訳され得る。ある実施形態では、翻訳構成要素215は、コード要素のデータベースにアクセスし、ビジュアルスクリプト210の表現をコード要素の1つまたは複数にマッピングするように構成され得る。マッピングが行われ得、これに基づいて、関数または動作がビジュアルスクリプト210に描写される。例えば、ビジュアルスクリプト210に基づいて関連コード要素を識別するのにパターン分類システムが用いられ得る。パターン分類システムは、どのコード要素が選択された関数または動作に関連するかをマッピングするものである関係性をエンコードし得る。パターン分類システムは、どの関数または動作が特定のコード要素にマッピングされているかを識別するのにプログラミングされ得る。パターン分類システムはまた、新規のコード要素が追加されると更新され得る。一部の実施形態では、パターン分類システムは、どのコード要素が選択された関数または動作に関連するかを継続的に学習する学習機能を含み得る。学習システムは、次いで、未来の観察を、先のマッピングから作成され得るコード要素のカテゴリーに分類し得る。
翻訳構成要素215はまた、ビジュアルスクリプト210の表現を受信し、その表現をパースし、パースされた表現を命令セットに変換するように構成され得る。変換は、上記のパターン分類システムを用いて実装され得、またはパースされた表現と対応するコード要素の間の既知の関係に基づいてエンコードされ得る一連の命令に基づき得る。
マッピングされたまたは生成されたコードは、プロバイダネットワークによって提供され得る種々の仮想化されたサービス220とインタラクトしそれを制御するよう動作可能であり得る。マッピングされたまたは生成されたコードは、例えば、仮想マシンを構成し起動する仮想化されたインスタンス230、構造体をアプリケーションデータに適用するデータベースサービス240、データを作成、読取り、書込みかつ修正するストレージサービス250、通知をユーザにプッシュするメッセージングサービス260、及びイベントに基づいてプロバイダネットワークサービスをトリガするイベント駆動型の関数などのサービスを起動しまたはそれらにアクセスする命令を含み得る。サービスは、図2に例示されていないがプロバイダネットワーク上に提供され得る他のものを含み得る。
例えば、ビジュアルスクリプト210は、キー値ストアから値を検索取得するなどの所望の動作を表現し得る。ビジュアルスクリプトは、キーを表す入力の名前及びキー値検索取得からの出力値を表す出力を含み得る。このように、ビジュアルスクリプト210は、キーの名前の変数を示すテキスト文字列を含む入力矢印、及び出力変数を示すテキスト文字列を有する出力矢印を含み得る。本例のビジュアルスクリプト210は、2つのポートを有するキー値検索取得関数を示すボックスを備え得る。翻訳構成要素215は、ビジュアルスクリプト210を示すデータを受信し、入力の名前の文字列、出力の名前の文字列及び入力インデックスを含む、ビジュアル開発環境180によって定義された機能を継承するクラスを定義するコードを生成し得る。翻訳構成要素215はさらに、プロバイダネットワークのデータベースサービスに対する呼出、データベース識別子及び値の情報を含むデータベースへのアクセス、及び値を戻すことを含む関数を生成し得る。コードはさらに、戻り値を受信し、この戻り値をビジュアルスクリプト210によって示される出力に提供する命令を含み得る。
図3は、ビジュアル開発環境180に関連して用いられ得る例示的なビジュアル編集システム300を示すブロック図である。ビジュアル編集機能300は、アプリケーション及び他のコンテンツを作成、編集、テストする機構を提供するソフトウェア及び/またはハードウェアとともに構成された開発コンピューティングノード308及び開発コンピューティングノード310として図3に示されるものなどであるいくつかの開発者コンピューティングノードを備え得る。コンテンツは、ソフトウェアアプリケーション、インタラクティブビデオなどのインタラクティブコンテンツを含み得る。開発者コンピューティングノード310は、ビジュアル開発環境180を実行し得る。ビジュアル開発環境180は、開発コンピューティングノード308のユーザインタフェース構成要素とインタラクトするように構成されたレンダリングモジュール314を含み得る。レンダリングモジュール314の開発者構成要素は、ユーザインタフェース上に、コンテンツをアップロードして編集するためのオプション、及び1つまたは複数のインタラクティブ構成要素をコンテンツに追加するためのオプションを提示するように構成され得る。
ビジュアル開発環境180を用いると、アプリケーションなどのコンテンツは、開発者コンピューティングノード308または310上でコンテンツの機能のグラフィカルな描写を用いて編集され得、開発者がコンテンツとインタラクトしてそれを変更することが可能になり得る。ビジュアル構成要素を通常伴わないものを含むコンテンツの要素は、ユーザインタフェース上にグラフィカルな要素によって表され得る。このことによって、コンテンツの各要素が、さらなる編集のために容易に選択されることが可能になる。レンダリングモジュール314は、開発中のコンテンツのビルディングブロックの表示をレンダリングするように構成され得る。レンダリングモジュール314は、コンテンツを構成するグラフィカルな要素をレンダリングするように構成され得る。レンダリングモジュール314は、入力、出力、動作、メソッドなどの種々のビジュアルな表示を含むグラフィカルな要素をレンダリングし得る。ビジュアル開発環境180は、コンテンツのプロパティを編集する、新規のコンテンツを作成する、望まないコンテンツを削除するなどのための追加モジュールを含み得る。
開発者コンピューティングノード308または310上のビジュアル開発環境180は、コンテンツに対する変更を開発者コンピューティングノード308または310上でローカルに行って、ネットワーク306を介して、リポジトリ303に格納するためにコンテンツリポジトリモジュール304に送信することを可能にし得る。この情報は、継続的にまたはユーザのリクエストに基づいてオンデマンドに送信され得る。場合によっては、サーバ310は、統合された開発環境以外のまたはそれに加えてソフトウェア及び/またはハードウェアを含み得る。例えば、開発者コンピューティングノード308または310はまた、開発中のコンテンツに対するテストプラットフォームとして機能するようにも構成され得る。
ネットワーク306は、コンピューティングノード間で通信する様々な手段を備え得る。例として、ローカルエリアネットワーク、インターネットなどが挙げられる。有線ネットワーク及び無線ネットワークの両方を様々な組み合わせで用い得る。
コンテンツリポジトリモジュール304は、リポジトリ303のメンテナンスに関するソフトウェア及び/またはハードウェアを備え得る。コンテンツリポジトリモジュール304は、開発者コンピューティングノード308または310から、コンテンツのデータを含む、コンテンツのコンテンツになされた変更を記載している情報を受信し得る。コンテンツリポジトリモジュール304はまた、リポジトリのコンテンツのステータスを変更させるリクエストも受信し処理し得る。
コンテンツリポジトリモジュール304は、コンテンツのバージョン、及びバージョンが現在編集されている表示を保持し得る。データは、リポジトリ303内にログタイプ構造体として格納され得る。リポジトリ303は、構造体が保持され得るソリッドステートドライブなどのストレージデバイスを備え得る。コンテンツリポジトリモジュール304は、衝突検出、回避、及びリカバリ機構を用いて、コンテンツの一貫性を保護し得る。
コンテンツリポジトリモジュール304は、保存されていない変更に対してコミット操作及びロールバック操作を行い得る。レンダリングモジュール314は、リポジトリ303に格納された、かつコンテンツリポジトリモジュール304から受信した送信によって記載された、コンテンツのビジュアルな表示を利用しているコンテンツの表示を生成するように構成され得る。
図4は、より詳細にビジュアル開発環境180を描写する機能ブロック図である。ビジュアル開発環境180は、ユーザインタフェース構成要素404を含み得る。ユーザインタフェース構成要素404は、開発者などのユーザがコンテンツを作成、コンテンツを確認、コンテンツとインタラクト、かつ/または他のアクションを行うことを可能にする1つまたは複数のユーザインタフェースを提示するように構成され得る。
ユーザインタフェース構成要素404はまた、アプリケーションデータ、ロジックまたは任意の他の編集関連タスクの構成を容易にし得るビジュアル編集インタフェース制御を提供するようにも構成され得る。一部の態様では、ユーザインタフェース構成要素404は、コンテンツプロジェクトを定義するために拡張、修正かつ一緒に用いることができるアクションオブジェクトのコアセットを提供するデフォルトエディタを提供し得る。例えば、ユーザインタフェース構成要素404は、ユーザが、例えばアプリケーションまたはインタラクティブビデオなどのコンテンツを作成するためのインタフェースを提供し得る。ユーザインタフェース構成要素404は、コンテンツをアップロードして編集するための、かつ1つまたは複数の構成要素をコンテンツに追加するためのオプションを提示するように構成され得る。
さらに、ビジュアル開発環境180は、入力データを、プロバイダネットワークで実行されるコンピューティングサービス上で実行されるよう動作可能である関連する命令及び他のアクション可能なオブジェクトに関連付ける翻訳構成要素406を含み得る。また、開発者が用いるためのテンプレート及び他の再利用可能な情報を提供するテンプレート構成要素408も提供され得る。テンプレートは、開発者によって、規則正しく予測可能にコンテンツを作成し管理し、かつそのコンテンツを更新する出発点として用いられ得る。同一プロジェクトの同一なコピーを作成するために、または新規のプロジェクトを始動させる基礎としてテンプレートを用いることによって、開発者は、彼らのプロジェクトに関連する基礎をなしている構造を作成し構成するのに多大な努力をすることなく、アプリケーションを予測可能にかつ繰り返し開発し得る。さらに、開発者は、テンプレートを現状のままで用い得、またはテンプレートを開発者自身のテンプレートを作成する出発点として用い得る。
ある実施形態では、ユーザインタフェース構成要素404は、開発者が、リソース、入力、出力、値、相互接続、及び他のパラメータを選択することを可能にし得る。さらに、開発者には、新規のプロジェクトを作成するためのユーザインタフェースが提供され得る。開発者は、変数及びアクションの初期セットを定義するテンプレートを選択または作成し得る。例えば、開発者は、開発者が用いたいテンプレートを選択し得る。ユーザインタフェースは、開発者が導入して開始させることができる人気のあるアプリケーション用のサンプルテンプレートを提供し得る。例えば、開発者には、特定のビデオゲームタイプのための複数のリソースとどのように相互接続しそれを用いるかを示すことができるサンプルテンプレートが提供され得る。開発者はまた、サービスプロバイダストレージまたはカスタマ自身のストレージを用いて先に作成され格納され得た開発者自身のカスタムテンプレートもロードし得る。開発者は、テンプレートパラメータをオーバーライドすることによってテンプレートをカスタマイズし得、または、開発者は、テンプレートによって与えられたデフォルト値を許容し得る。テンプレート構成要素408によって、所望のコンテンツが作成され得る。
テンプレート構成要素408によって、開発者は、開発者の要件に基づいて、推奨されるアプリケーションの出発点におけるテンプレートをリクエストすることが可能になり得る。開発者は、例えば、新規のコンピューティングプロジェクトの要件を提供し得る。テンプレート構成要素408は要件を分析し得、既存のテンプレート及び他の情報に基づいて、テンプレート構成要素408は1つまたは複数の推奨されるテンプレートを生成し得る。推奨されるテンプレートは、カスタマの要件または他の基準に基づいて優先順位を付けられランク付けされ得る。開発者は、プロジェクトを生成するために、推奨されるテンプレートの1つを選択し得る。
図5は、複数の開発者コンピューティングノードとリポジトリメンテナンスサーバ515の間のデータフローを描写するブロック図である。開発者コンピューティングノード500は、プロジェクトに対する更新を示すデータを生成し得、クライアント520も、プロジェクトに対する更新を示すデータを生成し得る。リポジトリメンテナンスサーバ514は、更新に関する情報の同一のセットをクライアント500及び520の両方に送信し得る。情報はクライアント500及びクライアント520の両方によって共有されるので、それらクライアントはそれぞれ、クライアント500及び520に対応するユーザにより行われている働きを示す、コンテンツの表示をレンダリングし得る。一部の実施形態では、変更がリポジトリメンテナンスサーバ514に送信されリポジトリ516に格納されるとき、データは継続的に送信され発信され得る。他の実施形態では、ビジュアル開発環境180は、変更を周期的にまたはリクエストに応じて格納し得る。送信されると、リポジトリメンテナンスサーバ514は、プロジェクトで働いていることが知られている全ての開発者コンピューティングノードに情報を発信し得る。
ビジュアル開発環境180は開発ツールを含み得、この開発ツールは、一部の実施形態において、アプリケーションを定義する追加の構成データを構築するのに開発者が用い得るソフトウェアライブラリ及びツールのセット、加えてアプリケーションのデータの編集を可能にするように構成され得た追加の開発者ツールを含み得る。
ある実施形態では、アクションオブジェクトは、ビヘイビアを定義し他のアクションオブジェクトを起動するまたはアプリケーションクラスタと通信することができるプログラミングロジック及び/またはデータを含むデジタルオブジェクトであり得る。プログラミングロジックは、さらに、開発ツールを備えたソフトウェアライブラリを用いて構成された任意の形式のスクリプト言語またはプログラミング言語として定義することができる。
図6〜図8は、開発者コンピューティングノード310上にコンテンツを編集するために提示され得る一連の例示的なユーザインタフェースの表示を例示する。インタフェースの表示は、ビジュアル開発環境180(図1に示す)によって生成され得る。ビジュアル開発環境180には、コンピュータ上で実行されると、本明細書で記載された方法を実行するコードセグメントまたはコードセクションを備えるコンピュータ可読媒体が含まれ得る。
図6に例示するように、例えばユーザインタフェース構成要素403を介してビジュアル開発環境180にアクセス(例えばログイン)し、新規のプロジェクトを作成するオプションを選択した後、空のプロジェクトがロードされ得る。空のプロジェクトには、コンテンツをコンテンツリストから選択するオプションが含まれ得る。コンテンツリストは、ドロップダウンリスト、メニューリストなどとして提供され得る。コンテンツリストは、ユーザによってまたはコンテンツを利用可能とした別のユーザによって事前にアップロードされたコンテンツを備え得る。一部の態様では、ユーザが新規のコンテンツをアップロードするオプションが提示され得る。
図6に示すように、プロジェクト構成要素610は、名前、入力及びプレイヤIDを示す第1のグラフィカルな構成要素を示し、プロジェクト構成要素620への関係を示す矢印を有する。プロジェクト構成要素620は、対応する名前、デイリーギフト、及び方法、ゲットログインタイムを示す第2のグラフィカルな構成要素を示し、プロジェクト構成要素630への関係を示す矢印を有する。プロジェクト構成要素630は、対応する名前、プレイヤレコード、及び変数、ログインタイムを示す第3のグラフィカルな構成要素を示し、プロジェクト構成要素640への関係を示す矢印を有する。プロジェクト構成要素640は、対応する名前、1日以上を示す第4のグラフィカルな構成要素を示し、プロジェクト構成要素650及び660への関係を示す矢印を有する。最後に、プロジェクト構成要素670は、対応する名前、プレイヤレコード及びインベントリを示す最後のグラフィカルな構成要素を示す。
ある実施形態では、グラフィカルな構成要素は、レンダリングされたユーザインタフェース上で、ポインタを制御するマウスなどのユーザ入力手段によって選択可能であり得る。プロジェクト構成要素610などのグラフィカルな構成要素を選択することによって、ユーザは、レンダリングされたユーザインタフェース上で、プロジェクト構成要素610を所望の位置に移動させることができ得る。ユーザはまた、矢印または他のコネクタを選択し、その選択したコネクタをプロジェクト構成要素620などの別のプロジェクト構成要素に付けることもでき得る。こうして、コネクタは、プロジェクト構成要素610の出力及びプロジェクト構成要素620への入力を表す。
プロジェクト構成要素によって行われる動作は、利用可能かつ選択可能な動作のリストから選択され得、またはユーザによって定義され得る。例えば、ユーザがあるプロジェクト構成要素を選択した場合、ユーザには選択可能な動作が含まれるコンテキストメニューも提示され得る。代替として、ユーザは、ユーザによって定義される動作のエントリ用の入力フィールドを提示され得る。プロジェクト構成要素に対する動作を選択または定義する他の入力機構が提供され得る。
グラフィカルな構成要素は、ビジュアル開発環境180に、順序付き関係のセットとして表され得る。例えば、プロジェクト構成要素間のコネクタは、関連するデータオブジェクトとして表され得る。プロジェクト構成要素は、1つまたは複数の動作または関数の名前または定義として表され得る。ビジュアル開発環境180は、グラフィカルな構成要素を表すために標準化命名法を定義し得る。この表現は次いで、プロバイダネットワークでの動作に翻訳またはマッピングされてプロバイダネットワークでのサービスとインタラクトすることができるコードを生成し得る。
グラフィカルな構成要素は、ファイル保存、コンテンツ配信、データベースアクセス、クラウドコンピューティング機能、ワークフローサービス、サーバ群管理及びスケーリングならびにスケーラブルサーバ側のイベントなどの、プロバイダネットワークの種々のバックエンドサービスで実装されるアクションを生成することができるアクション可能な入力を実装するコードに関連付けられ得る。実装されるアクションは、ソフトウェアスタック、サーバマシンイメージ及びセキュリティ設定を直接ビルドし管理する必要なしに生成され得る。例えば、グラフィカルな構成要素は、データの作成、読取り、書込み、及び修正を可能にするストレージサービスとインタラクトするコードに関連付けられ得、または、構造体がアプリケーションデータに適用されることを可能にするデータベースサービスが提供され得る。
図7は、特定のコンテンツ(例えばアプリケーション)が選択された後のスクリーンディスプレイの別の例を示す。コンテンツがロードされたとき、プロジェクト構成要素710、720、730、740、及び750がレンダリングされ得る。各グラフィカルな構成要素は、対応する入力、及び1つまたは複数の指定されたアクションを含むメソッドを示し、関連する構成要素への対応関係を示す矢印を有する。アクション可能な構成要素の例示されたグラフィカルな描写を用いることによって、開発者は、基礎をなしているバックエンドサービスに特有の言語及び関数を用いる必要なしに、オブジェクト及び変数を指定することによりアプリケーションの所望の機能を生成し得る。図7に例示するように、複数の矢印またはコネクタは、複数のデータインタラクションを伴う構成要素間の関係を示すのに用いられ得る。例えば、プロジェクト構成要素710は、プロジェクト構成要素730との間に2つの出力インタラクションを表すものとして示される。さらに、プロジェクト構成要素720は、プロジェクト構成要素710及び750との間に2つの出力インタラクションを表すものとして示される。図7に示す例は、メッセージ文字列が検索取得されエンドユーザデバイスに表示のために戻されるというプロバイダネットワークでのデータベースサービスにアクセスするのに用いられ得るプロジェクト構成要素を例示する。プロジェクト構成要素はそれぞれ、ユーザによって定義される数の入力及び出力を有する論理的要素を表し得る。入力が定義されると、値またはイベントが入力に関して受信され得る。あるプロジェクト構成要素の出力が別のプロジェクト構成要素の入力に接続されると、この出力は当該他のプロジェクト構成要素の入力をアクティベートし得る。
プロジェクト構成要素720は、プロジェクト構成要素710に対する入力として「今日」というパラメータを設定する関数の始まりを表し得る。プロジェクト構成要素710は、設定されたパラメータを、オブジェクト「ストリング1」及び「ストリング2」をさらに設定するプロジェクト構成要素730に出力する。プロジェクト構成要素740は、プロジェクト構成要素730から出力を受信して、識別されたテーブル名とともにプロバイダネットワークのデータベースサービスに対するアクセスを生成する。プロジェクト構成要素740はまた、プロジェクト構成要素740によって、データベースアクセスの成功及び表示するための「メッセージオブザデイ」オブジェクトに対するテキスト文字列の表示を含むプロジェクト構成要素750に戻されるだろうメッセージに対する値へのアクセスのためのキー値も設定する。
図8は、特定のコンテンツ(例えばアプリケーション)が選択された後のスクリーンディスプレイの別の例を例示する。コンテンツがロードされたとき、プロジェクト構成要素806、810、820、830、840、860、860及び870がレンダリングされる。各グラフィカルな構成要素は、対応する入力、及び1つまたは複数の指定されたアクションを含むメソッドを示し、関連する構成要素への対応関係を示す矢印を有する。示すように、複数の矢印は、複数のデータインタラクションを伴う構成要素間の関係を示すのに用いられ得る。さらに、プロジェクト構成要素に複数の動作が追加され得る。さらに、プロジェクト構成要素860によって示されるように、プロジェクト構成要素は、複数の入力動作または出力動作に接続され、それらとインタラクトし得る。図8の例は、サーバ側ロジックを起動してインセンティブすなわち報酬をゲームアプリケーションのユーザに送信する機能を含む。プロジェクト構成要素810は、キー入力の受信に基づいた関数の始まり表し得、これは押されたキーが離されるとプロジェクト構成要素830に出力される。プロジェクト構成要素830は、関数「バックエンド起動」を起動して、関数「デイリーギフト」を起動するプロバイダネットワークのサーバ関数を呼び出す。プロジェクト構成要素810はまた、離されたというキーステータスを「メッセージ表示」プロジェクト構成要素820に送信して、「エントリ選択」表示関数を表示する。プロジェクト構成要素830は、「デイリーギフト」関数の出力を、プロジェクト構成要素850及び860として描写された「メッセージ表示」関数に送信する。プロジェクト構成要素850は、プロジェクト構成要素830から、Y位置100で表示されるエラー出力メッセージを受信する。それ以外の場合は、プロジェクト構成要素860は、Y位置0で表示される入力「レスポンスボディ」を受信する。描写されたプロジェクト構成要素は、エンドユーザデバイス上でローカルに実行されるコードまたはファイル保存、コンテンツ配信、データベースアクセス及びスケーラブルサーバ側のイベントなどのプロバイダネットワークの種々のバックエンドサービスで実装されるアクションにアクセスまたはそれらを起動するコードのいずれかで記述された機能を実装するコードに関連付けられ得る。
図9は、仮想化コンピューティング環境でソフトウェアアプリケーションを開発する例示的な操作手続きを示す。ある実施形態では、操作手続きは、マルチユーザのコンピューティング及びネットワークサービスのプラットフォームによってホストされる仮想化コンピューティング環境で実装され得る。図9を参照すると、操作手続きは、操作902、904、906、908、及び910を含み得る。操作900で、操作手続きは開始される。操作900に、操作902が続き得る。操作902は、ソフトウェア機能を開発するためのインタラクティブな環境を描写するグラフィカルなユーザインタフェースをレンダリングすることを示す。ソフトウェア機能は、仮想化コンピューティング環境を呼び出すよう動作可能であり得る。一部の実施形態では、グラフィカルなユーザインタフェースは、入力、出力及び動作を、ならびに/または入力、出力及び動作の表現の描写を少なくともグラフィカルに描写するよう動作可能である。例えば、グラフィカルなユーザインタフェースは、入力、出力及び動作の構成を容易にする働きをするビジュアル編集インタフェース制御を含み得る。
操作902に、操作904が続き得る。操作904は、グラフィカルなユーザインタフェースを介して、入力、出力及び動作を示すデータを受信することを例示する。例えば開発者による入力の変更に基づいて現在の表示が更新されると、操作904に操作906が続き得る。操作906は、少なくとも部分的にそのデータに基づき、入力、出力及び動作のグラフィカルな描写をレンダリングすることを例示する。
開発者が追加の変更を入力し現在の命令に対する更新が必要となれば、操作906に操作908が続き得る。操作908は、データの受信に応答して、データを、仮想化コンピューティング環境で実行されるコンピューティングサービスを呼び出すよう動作可能である関連する命令に関連付けることを例示する。一部の例では、操作908は、データを、仮想化コンピューティング環境で実行されるコンピューティングサービス上で実行するよう動作可能である関連する命令に翻訳することを含み得る。関連する命令は、ソフトウェア開発プロジェクトのプログラミングロジックを備え得る。命令は、仮想化コンピューティング環境のサービスとインタラクトするよう動作可能であるコードまたはスクリプトを備え得る。命令は事前に定義され得、一部の実施形態では、データオブジェクトとして実装され得る。事前に定義されたデータオブジェクトは、ソフトウェア開発プロジェクトを開始またはそれに追加するのに用いることができるテンプレートとしてアクセス可能になされ得る。
一部の実施形態では、命令は、仮想化コンピューティング環境の仮想化データストレージサービスでデータファイルストレージを作成する、読み取る、書き込むかつ修正するといった関数を呼び出すよう動作可能であり得る。仮想化データストレージサービスは、ユーザデバイスによって生成された情報が、仮想化データストレージサービスにアップロードされ格納されることを可能にし得る。仮想化データストレージサービスはまた、ユーザによって生成されたコンテンツが、アプリケーションのコンテキスト内で他のユーザと共有されることを可能にし得る。
一部の実施形態では、命令は、データを仮想化データストレージサービスから仮想化コンピューティング環境の選択されたサーバまたはコンピューティングインスタンスに転送するように構成された関数を呼び出すよう動作可能であり得る。例えば、ユーザによって生成されたコンテンツは、予測されるユーザの場所に物理的に近接して位置する選択サーバに格納され得、ユーザによって生成されたコンテンツの配信の待ち時間を短くすることを可能にする。
一部の実施形態では、命令は、アプリケーションデータセットの格納のために仮想化コンピューティング環境のデータベースとインタラクトするよう動作可能であり得る。例えば、アプリケーションデータセットは、アプリケーションのエンドユーザのアプリケーションデータの永続状態を追跡するために作成され保持され得る。
一部の実施形態では、命令は、選択されたイベントに基づいて、仮想化コンピューティング環境の関数を呼び出すよう動作可能であり得る。例えば、ストレージ及び/またはデータベースサービスで検出された変更に基づいて、データに演算及び他の動作を適用するためのサーバ側サービスが提供され得る。一部の実施形態では、サーバ側スクリプト及びロジックは、データストレージに書込み中の新規のデータに基づいて、または指定されたデータストリームのモニタリングに基づいてトリガされ得る。選択されたイベントには、ファイルのアップロード、アプリケーションのアクティビティ、入力デバイスアクションまたはデバイスからの出力の1つまたは複数が含まれる。
一部の実施形態では、命令は、メッセージングサービスとインタラクトする関数を呼び出すよう動作可能であり得る。例えば、電子またはSMSメッセージは、識別されたユーザまたは多数の受信者に自動的に送信され得る。メッセージはまた、仮想化コンピューティング環境の他のサービスにも送信され得る。
一部の実施形態では、命令は、エンドユーザによるプロバイダネットワークサービス及びリソースに対するアクセスを制御するように、かつデータが格納される複数のデバイス及びリソースでデータを同期化するように構成され得るアイデンティティ管理及びデータ同期化サービスとインタラクトする関数を呼び出すよう動作可能であり得る。命令はまた、エンドユーザによるプロバイダネットワークサービス及びリソースに対する許可または拒否を行うセキュリティ及び認証を確立する関数を呼び出すよう動作可能であり得る。
操作908に、操作910が続き得る。操作910は、グラフィカルに描写された入力、出力及び動作によって表された機能を有効にし、コンピューティングサービスを呼び出す関連する命令を生成することを例示する。生成された命令は、例えば、エンドユーザシステムによって実行され得る。グラフィカルなユーザインタフェースのレンダリング、入力、出力及び動作を示すデータの受信、グラフィカルな描写のレンダリング、データの関連する命令への関連付けならびに関連する命令の生成及び実行を含む記載された操作の少なくとも一部は、開発者コンピューティングデバイス上で行われ得、または、仮想化コンピューティング環境上で行われ得る。
一部の実施形態では、アプリケーションプログラミングインタフェース(API)が、入力、出力及び動作を示すデータのユーザ入力を容易にするために提供され得る。例えば、APIは、コンテンツまたはプロジェクト識別子などの情報及び入力、出力及び動作を示すデータとともに呼び出すことができる。APIを呼び出した後、ビジュアル開発環境180などのサービスは以下のようなアクションをとり得る。
・入力、出力及び動作を示すデータをパース
・翻訳済みコードを備える所定のデータオブジェクトのデータベースにアクセス
・パースされたデータを所定のデータオブジェクトにマッピング
・翻訳関数の起動
ビジュアル開発環境180は、結果として生じたコードに関する他の詳細とともに、APIを用いてのマッピングまたは翻訳の結果を報告し得る。
さらに、本開示の実施形態は、以下の条項に照らして、説明することができる。
1.マルチテナントコンピューティングサービスのプラットフォームによってホストされる仮想化コンピューティング環境とインタラクトするソフトウェアアプリケーションを開発するコンピュータにより実装される方法であって、
前記仮想化コンピューティング環境で実行されるコンピューティングサービスを呼び出すよう動作可能である命令を開発するためのインタラクティブな環境を描写するグラフィカルなユーザインタフェースをレンダリングすることであって、前記グラフィカルなユーザインタフェースは、前記仮想化コンピューティング環境で実行される前記コンピューティングサービスに関連付けられた入力、出力及び動作の表現を少なくともグラフィカルに描写するよう動作可能であるものである、前記レンダリングすることと、
前記グラフィカルなユーザインタフェースを介して、前記入力、前記出力及び前記動作を示すデータを受信することと、
前記データに少なくとも部分的に基づいて、前記入力、前記出力及び前記動作の前記表現のグラフィカルな描写をレンダリングすることと、
前記データを、前記仮想化コンピューティング環境で実行されるコンピューティングサービスを呼び出すよう動作可能である命令に関連付けることと、
実行されると、前記表現によって表された機能を有効にして前記仮想化コンピューティング環境で実行される前記コンピューティングサービスを呼び出す、前記表現に関連付けられた前記命令を生成することとを備える、前記方法。
2.前記グラフィカルなユーザインタフェースが、前記入力、前記出力及び前記動作の前記表現の構成を容易にする働きをするビジュアル編集インタフェース制御を含む、条項1に記載の方法。
3.前記命令がソフトウェアアプリケーションのプログラミングロジックに含まれる、条項1に記載の方法。
4.前記グラフィカルなユーザインタフェースの前記レンダリング、受信、前記グラフィカルな描写のレンダリング及び関連付けが、開発者コンピューティングデバイスまたは前記仮想化コンピューティング環境上で行われる、条項1に記載の方法。
5.前記ソフトウェアアプリケーションがビデオゲームである、条項3に記載の方法。
6.マルチテナントコンピューティングサービスのプラットフォームによってホストされる仮想化コンピューティング環境とインタラクトするアプリケーションを開発かつ導入するように構成されたシステムであって、前記システムの1つまたは複数のプロセッサによって実行されると、前記システムに少なくとも、
前記仮想化コンピューティング環境を呼び出すよう動作可能である関数を開発するためのインタラクティブな環境を描写させ、
前記関数の少なくとも1つの動作の表現をグラフィカルに描写させ、
仮想化コンピューティング環境によって提供されるサービスに関連付けられかつ前記関数を実装するのに使用可能な複数のデータオブジェクトにアクセスさせ、
前記複数の所定のデータオブジェクトを用いて、前記関数を実装し前記仮想化コンピューティング環境のサービスを呼び出すよう動作可能なコードを生成させるコンピュータ命令が内部に格納された少なくとも1つのメモリを備える、前記システム。
7.前記グラフィカルなユーザインタフェースが、ビジュアル編集インタフェース制御を含む、条項6に記載のシステム。
8.前記コードがユーザセッション間で永続する、条項6に記載のシステム。
9.前記データオブジェクトがテンプレートを含む、条項6に記載のシステム。
10.前記コードが、仮想化データストレージサービスでデータファイルストレージを作成する、読み取る、書き込むかつ修正する関数を呼び出すよう動作可能である、条項6に記載のシステム。
11.前記コードが、ユーザデータを受信する、前記ユーザデータを格納する、前記ユーザデータに対して動作を処理する、かつ変更された状態をユーザデバイスに送信する関数を呼び出すよう動作可能である、条項6に記載のシステム。
12.前記コードが、データを前記仮想化データストレージサービスからサーバに転送する関数を呼び出すよう動作可能である、条項10に記載のシステム。
13.前記コードが、アプリケーションデータの格納のために、前記仮想化コンピューティング環境のデータベースとインタラクトするよう動作可能である、条項6に記載のシステム。
14.前記コードが、選択されたイベントに基づいて、前記仮想化コンピューティング環境の関数を呼び出すよう動作可能である、条項6に記載のシステム。
15.前記選択されたイベントが、ファイルのアップロード、アプリケーションのアクティビティ、入力デバイスアクション、またはデバイスからの出力の1つまたは複数を含む、条項14に記載のシステム。
16.前記コードが、メッセージングサービスとインタラクトする関数を呼び出すよう動作可能である、条項6に記載のシステム。
17.前記コードが、アイデンティティ管理サービスとインタラクトする関数を呼び出すよう動作可能である、条項6に記載のシステム。
18.非一時的なコンピュータ可読ストレージ媒体であって、1つまたは複数のコンピューティングデバイス上で実行されると、前記1つまたは複数のコンピューティングデバイスに少なくとも、
ユーザの入力データに少なくとも部分的に基づいて、入力、出力及び動作の表現をグラフィカルに描写するよう動作可能であるグラフィカルなユーザインタフェースをレンダリングさせ、
前記ユーザの入力データに少なくとも部分的に基づいて、前記入力、前記出力及び前記動作の前記表現のグラフィカルな描写をレンダリングさせ、
前記レンダリングされたグラフィカルな描写を、前記入力、前記出力及び前記動作を実装する機能を実行し、前記仮想化マルチテナントコンピューティング環境でサービスを呼び出すよう動作可能な実行可能コードに関連付けさせ、
前記実行可能コードを生成させ、前記実行可能コードの実行により、前記グラフィカルな描写によって表される前記入力、前記出力及び前記動作を実装する機能が呼び起され、前記サービスが呼び出されるコンピュータ可読命令を格納する、前記非一時的なコンピュータ可読ストレージ媒体。
19.1つまたは複数のコンピューティングデバイス上で実行されると、少なくとも前記1つまたは複数のコンピューティングデバイスに、
前記ユーザの入力データを示す識別子をエンコードする第1の電子メッセージを受信し、
前記第1の電子メッセージの1つの受信に応答して、前記実行可能コードを示す第2の電子メッセージを送信するように構成されたアプリケーションプログラミングインタフェースを実装させるコンピュータ可読命令をさらに備える、条項18に記載のコンピュータ可読ストレージ媒体。
20.前記実行可能コードが、前記仮想化マルチテナントコンピューティング環境上でホストされるコンピューティングサービスを制御するよう動作可能である、条項18に記載のコンピュータ可読ストレージ媒体。
図10は、本発明の態様を実施し得る例示的な分散型コンピューティング環境を描写する図である。種々のユーザ1000aは、任意の種類のコンピューティングデバイス1002a上で動作する種々のクライアントアプリケーションとインタラクトして、通信ネットワーク1004を介して、データセンタ1020内の種々のコンピューティングノード1010a、1010b及び1010c上で実行される処理と通信し得る。代替として、クライアントアプリケーション1002bは、ユーザの介入なしに通信し得る。通信ネットワーク1004は、インターネット、有線かつ無線ローカルエリアネットワーク、光ファイバネットワーク、衛星通信などを含む通信技術の任意の組み合わせを備え得る。任意の数のネットワーキングプロトコルを用い得る。
データセンタ1020内で動作しているコンピューティングノード1010a、1010b及び1010c上で実行される処理との通信は、ゲートウェイ1006及びルータ1008を介して提供され得る。多数の他のネットワーク構成も用いられ得る。図10に明示的に示されていないが、各種認証機構、ウェブサービス層、ビジネスオブジェクトまたは他の中間層が、コンピューティングノード1010a、1010b及び1010c上で実行される処理との通信を仲介するのに提供され得る。これらの中間層の一部は、それ自体が、コンピューティングノードの1つまたは複数上で実行される処理を備え得る。コンピューティングノード1010a、1010b及び1010cならびにそれらで実行される処理はまた、ルータ1008を介して互いに通信し得る。代替として、分離した通信経路が用いられ得る。一部の実施形態では、データセンタ1020は、追加のデータセンタと通信し、コンピューティングノード及びそれらで実行されている処理が他のデータセンタ内で動作しているコンピューティングノード及び処理と通信し得るように構成され得る。
コンピューティングノード1010aは、1つまたは複数のプロセッサ1016、1つまたは複数のメモリ1018、及び1つまたは複数のストレージデバイス1014を備える物理的なハードウェアに存在するとして描写される。コンピューティングノード1010a上での処理は、オペレーティングシステムに関連して実行され得、または代替として、プロセッサ1016、メモリ1018またはストレージデバイス1014などの物理的なリソースと直接インタラクトするベアメタル処理として実行され得る。
コンピューティングノード1010b及び1010cは、仮想マシンホスト1012上で動作するとして描写され、これは物理的なプロセッサ、メモリ及びストレージデバイスなどの種々の物理的なリソースに対する共有アクセスを提供し得る。コンピューティングノードをホストするのに任意の数の仮想化機構が用いられ得る。
図10に描写された種々のコンピューティングノードは、ウェブサービス、データベース管理システム、ビジネスオブジェクト、モニタリング及び診断設備などをホストするように構成され得る。コンピューティングノードは、パーソナルコンピュータ、サーバ、クラスタ化コンピューティングデバイスなどの各種コンピューティングリソースを指し得る。コンピューティングノードは、例えば、セルフォン、スマートフォン、タブレット、組み込みデバイスなどの種々のコンピューティングデバイスを指し得る。ハードウェア形式で実装されると、コンピューティングノードは一般に、コンピュータ可読命令を格納するように構成された1つまたは複数のメモリ及び命令を読み取り実行するように構成された1つまたは複数のプロセッサに関連付けられる。ハードウェアベースのコンピューティングノードはまた、1つまたは複数のストレージデバイス、ネットワークインタフェース、通信バス、ユーザインタフェースデバイスなども備え得る。コンピューティングノードはまた、ハイパーバイザを有してまたは有さずに実装された仮想マシン、仮想化ベアメタル環境などの仮想化コンピューティングリソースも包含する。仮想化ベースのコンピューティングノードは、ハードウェアリソースに対する仮想化アクセス及び非仮想化アクセスを有し得る。コンピューティングノードは、オペレーティングシステム及び1つまたは複数のアプリケーションプログラムを実行するように構成され得る。一部の実施形態では、コンピューティングノードはまた、ベアメタルアプリケーションプログラムも備え得る。
少なくとも一部の実施形態では、本明細書に記載される技術の1つまたは複数の一部または全てを実施するサーバは、1つまたは複数のコンピュータアクセス可能媒体を含む、またはそれにアクセスするように構成されたコンピュータシステムを含み得る。図11は、1つまたは複数のコンピュータアクセス可能媒体を含む、またはそれにアクセスするように構成されたコンピュータシステムを描写する。例示された実施形態では、コンピューティングデバイス1100は、入力/出力(「I/O」)インタフェース1130を介してシステムメモリ1120に結合された1つまたは複数のプロセッサ1110a、1110b及び/または1110n(これらは単数でプロセッサ1110と、複数でプロセッサ(複数)1110と呼ばれる場合がある)を含む。コンピューティングデバイス1100はさらに、I/Oインタフェース1130に結合されたネットワークインタフェース1140を含む。
種々の実施形態では、コンピューティングデバイス1100は、1つのプロセッサ1110を含むユニプロセッサシステム、またはいくつかのプロセッサ1110(例えば、2つ、4つ、8つもしくは別の適切な数)を含むマルチプロセッサシステムであり得る。プロセッサ1110は、命令を実行することが可能な任意の好適なプロセッサであり得る。例えば、種々の実施形態では、プロセッサ1110は、様々な命令セットアーキテクチャ(「ISA」)、例えば、x811、PowerPC、SPARC、もしくはMIPS ISA、または任意の他の好適なISAなどのうちのいずれかを実施する汎用または組み込みプロセッサであり得る。マルチプロセッサシステムでは、プロセッサ1110のそれぞれは、通常同じISAを実装してよいが、必ずしも同じISAを実装しないことがある。
一部の実施形態では、グラフィックプロセッシングユニット(「GPU」)1112は、グラフィクスレンダリング及び/または物理的な処理能力を提供することに関与し得る。GPUは、例えば、グラフィクスコンピューティングに特化された高並列プロセッサアーキテクチャを備え得る。一部の実施形態では、プロセッサ1110及びGPU1112は、1つまたは複数の同一種類のデバイスとして実装され得る。
システムメモリ1120は、プロセッサ(複数可)1110によってアクセス可能な命令及びデータを記憶するように構成され得る。種々の実施形態では、システムメモリ1120は、スタティックランダムアクセスメモリ(「SRAM」)、同期型ダイナミックRAM(「SDRAM」)、不揮発性/フラッシュ(登録商標)タイプのメモリまたは任意の他のタイプのメモリなどの任意の適切なメモリ技術を使用して実装され得る。例示される実施形態では、上記に説明されたそれらの方法、技術及びデータなどの1つまたは複数の所望の機能を実装するプログラム命令及びデータは、コード1126及びデータ1129としてシステムメモリ1120内に記憶されるように示される。
ある実施形態では、I/Oインタフェース1130は、ネットワークインタフェース1140、または他の周辺インタフェースを含む、プロセッサ1110、システムメモリ1120及びデバイス内の任意の周辺デバイス間のI/Oトラフィックを調整するように構成され得る。一部の実施形態では、I/Oインタフェース1130は、データ信号をある構成要素(例えば、システムメモリ1120)から別の構成要素(例えば、プロセッサ1110)による使用に適切なフォーマットに変換するために任意の必要なプロトコル、タイミングまたは他のデータ変換を実施し得る。一部の実施形態では、I/Oインタフェース1130は、例えばペリフェラルコンポネントインターコネクト(「PCI」)バス規格またはユニバーサルシリアルバス(「USB」)規格の変形などの多様なタイプの周辺バスを通じて取り付けられたデバイスに対するサポートを含み得る。一部の実施形態では、I/Oインタフェース1130の機能は、例えば、ノースブリッジ及びサウスブリッジなどの2つ以上の別々の構成要素に分けられ得る。また、一部の実施形態では、システムメモリ1120へのインタフェースなどのI/Oインタフェース1130の機能の一部または全ては、プロセッサ1110に直接組み込まれ得る。
ネットワークインタフェース1140は、コンピューティングデバイス1100と、例えば、他のコンピュータシステムまたはデバイスなど、ネットワークまたはネットワーク(複数)1160に取り付けられた他のデバイスまたはデバイス(複数)1160の間でデータが交換されることを可能にするように構成され得る。種々の実施形態では、ネットワークインタフェース1140は、例えば、イーサネットネットワークのタイプなどの任意の適切な有線または無線汎用データネットワークを介した通信をサポートし得る。加えて、ネットワークインタフェース1140は、アナログ音声ネットワークもしくはデジタルファイバ通信ネットワークなどの電気通信/電話ネットワークを介して、ファイバチャネルSAN(ストレージエリアネットワーク)などのストレージエリアネットワークを介して、または任意の他の適切なタイプのネットワーク及び/もしくはプロトコルを介した通信をサポートし得る。
一部の実施形態では、システムメモリ1120は、対応する方法及び装置の実施形態を実装するための上記に記載したようなプログラム命令及びデータを記憶するように構成された、コンピュータアクセス可能媒体の一実施形態であり得る。しかしながら、他の実施形態では、プログラム命令及び/またはデータは、異なるタイプのコンピュータアクセス可能媒体上で受信、送信、または記憶され得る。一般的に言うと、コンピュータアクセス可能媒体は、I/Oインタフェース1130を介してコンピューティングデバイス1100に結合された磁気または光学媒体、例えば、ディスクまたはDVD/CDなどの非一時的記憶媒体またはメモリ媒体を含み得る。非一時的コンピュータアクセス可能記憶媒体はまた、システムメモリ1120または別のタイプのメモリとしてコンピューティングデバイス1100の一部の実施形態に含まれ得る、RAM(例えば、SDRAM、DDR SDRAM、RDRAM、SRAMなど)、ROMなどの任意の揮発性または不揮発性媒体も含み得る。さらに、コンピュータアクセス可能媒体は、送信媒体、または、ネットワークインタフェース1140を介して実装され得るようなものなど、ネットワーク及び/もしくは無線リンクなどの通信媒体を介して伝送される、電気、電磁気、もしくはデジタル信号などの信号を含み得る。図11に例示されるような複数のコンピューティングデバイスの一部または全ては、例えば、各種様々なデバイス上で実行されるソフトウェア構成要素といった種々の実施形態で記載した機能を実装するのに用いられ得、サーバは機能を提供するのに協働し得る。一部の実施形態では、説明される機能の部分は、ストレージデバイス、ネットワークデバイスまたはコンピュータシステムを使用して実装され得る。本明細書で使用されるように、用語「コンピューティングデバイス」は、少なくとも全てのそれらのタイプのデバイスを指し、それらのタイプのデバイスに限定されない。
コンピュートノードは、コンピューティングノードと呼ばれる場合もあり、タブレットコンピュータ、パーソナルコンピュータ、スマートフォン、ゲーム機、汎用ハードウェアコンピュータ、仮想マシン、ウェブサービス、コンピューティングクラスタ及びコンピューティングアプライアンスなどの多種多様なコンピューティング環境上で実装され得る。これらのコンピューティングデバイスまたは環境のいずれかは、簡便にするために、コンピュートノードとしてまたはコンピューティングノードとして記載され得る。
インターネット及び/または他のネットワークを介して、分散された一揃いのクライアントにアクセス可能な1つまたは複数のウェブサービス(様々な種類のクラウドベースコンピューティングまたはストレージなど)を提供するために、企業または公的部門組織などのエンティティによって設定されたネットワークは、プロバイダネットワークと称され得る。そのようなプロバイダネットワークには、プロバイダネットワークによって提供されるインフラストラクチャ及びウェブサービスを実装及び分配するために必要とされる、多数のデータセンタがホストする様々なリソースプール、例えば物理的及び/または仮想化コンピュータサーバ、ストレージデバイス、ネットワーキング機器などの集合などが含まれ得る。リソースは、一部の実施形態では、ストレージ用の記憶容量、インスタンスとして、関連するサービスなどのセットとして、処理するための処理能力の大きさなど、ウェブサービスに関連する種々の装置においてクライアントに提供され得る。仮想コンピューティングインスタンスは、例えば、指定された計算能力(これはCPUの種類及び数、メインメモリのサイズなどを示すことによって指定され得る)及び指定されたソフトウェアスタック(例えばオペレーティングシステムの特定のバージョン、これはハイパーバイザ上で稼働し得る)を有する1つまたは複数のサーバを備え得る。
コンピュータサーバ、ストレージデバイス、ネットワークデバイスなどを含む、様々な実施形態でプロバイダネットワークのリソースを実装するために、いくつかの異なるタイプのコンピューティングデバイスを単独でまたは組み合わせて使用し得る。一部の実施形態では、クライアントまたはユーザに、例えばユーザに管理者ログイン及びパスワードを与えることによって、リソースインスタンスへの直接のアクセス権が提供され得る。他の実施形態では、プロバイダネットワークオペレータは、クライアントが、例えばクライアントがインスタンスまたは実行プラットフォームに直接アクセスする必要なしに、実行プラットフォーム(アプリケーションサーバインスタンス、Java(商標)、仮想マシン(「JVM」)、汎用または特殊目的用オペレーティングシステム、種々のインタプリタ形式のまたはコンパイル形式のプログラミング言語、例えばRuby、Perl,Python,C、C++などをサポートするプラットフォームまたは高性能のコンピューティングプラットフォームなど)上のクライアントに代わって、アプリケーションに適した指定されたクライアントアプリケーション及びアプリケーションのスケジュール実行のために実行要件を指定することを可能にし得る。所与の実行プラットフォームは、一部の実装形態で1つまたは複数のリソースインスタンスを利用し得、他の実装形態では、複数の実行プラットフォームが1つのリソースインスタンスに対してマッピングされる場合もある。
多くの環境において、異なるタイプの仮想化コンピューティング、ストレージ及び/または他のネットワークアクセス可能な機能性を実施するプロバイダネットワークのオペレータは、顧客が、種々のリソース取得モードにおいてリソースへのアクセス権を保有するまたは購入することを可能にし得る。コンピューティングリソースプロバイダは、顧客に対して、所望されるコンピューティングリソースを選択かつ起動する、アプリケーションコンポネントをコンピューティングリソースに導入する、その環境においてアプリケーションが実行するように維持するための機能を提供し得る。加えて、コンピューティングリソースプロバイダはさらに、アプリケーション変更の要望またはその必要能力として、手動でまたは自動スケーリングを通してのいずれかでアプリケーションに割り当られるリソースの数及びタイプを顧客が迅速かつ容易にスケールアップまたはスケールダウンするための機能を提供し得る。コンピューティングリソースプロバイダによって提供されるコンピューティングリソースは、別個のユニットにおいて利用可能にされる場合もあり、これはインスタンスと呼ばれてよい。インスタンスは、物理的サーバハードウェアプラットフォーム、サーバ上で実行中の仮想マシンインスタンス、または2つのいずれかの組み合わせを表し得る。様々なタイプ及び構成のインスタンスを利用可能にすることができ、異なるサイズの様々なオペレーティングシステム(OS)及び/またはハイパーバイザを実行する異なるサイズのリソース、様々なインストール済みのソフトウェアアプリケーション、ランタイムなどが含まれる。インスタンスはさらに、例えば論理領域、フォールトトレラント領域、データセンタまたは基礎を成すコンピューティングハードウェアの他の地理的な場所を表す特殊な可用性ゾーンにおいて利用可能である場合もある。インスタンスは、可用性ゾーン内で、または可用性ゾーンにわたってコピーされて、インスタンスのリダンダンシーを向上させることができ、またインスタンスは、特定の可用性ゾーン内で、または可用性ゾーンにわたって移動させられる場合もある。一例として、可用性ゾーンにおける特定のサーバとのクライアント通信に関する待ち時間は、異なるサーバとのクライアント通信に関する待ち時間より小さくなってよい。したがってインスタンスが、より高い待ち時間のサーバからより低い待ち時間のサーバに移動されることで、全体のクライアントエクスペリエンスを向上させ得る。
一部の実施形態において、プロバイダネットワークは、複数の地理的領域内に編成されてよく、各領域が、1つまたは複数の可用性ゾーンを含む場合もある。可用性ゾーン(これは可用性コンテナと呼ばれる場合もある)は、所与の可用性ゾーン内のリソースが他の可用性ゾーン内の不具合から隔離されるまたは遮断されるような方法で構成された、1つまたは複数の異なる場所またはデータセンタを備え得る。すなわち、1つの可用性ゾーン内の不具合が、任意の他の可用性ゾーン内に不具合をもたらすことは予期されない場合がある。よって、リソースインスタンスの可用性のプロファイルは、異なる可用性ゾーン内の他のリソースインスタンスの可用性プロファイルから独立していることが意図される。クライアントは、複数のアプリケーションインスタンスをそれぞれの可用性ゾーンにおいて起動することによって、1つの場所においてそのアプリケーションを障害から保護することができ得る。同時に、一部の実装形態では、同一の地理的領域内にあるリソースインスタンス間に費用が安く、低待ち時間のネットワーク接続性を設け得る(かつ同一の可用性ゾーンのリソース間のネットワーク送信がさらに高速にされ得る)。
先行するセクションに記載されたプロセス、方法及びアルゴリズムの各々は、1つまたは複数のコンピュータまたはコンピューティングプロセッサによって実行されるコードモジュールによって、完全にまたは一部が自動的に具現化されてよい。コードモジュールは、ハードドライブ、ソリッドステートメモリ、光学ディスク、及び/または同種のもの、などの任意の種類の非一時的コンピュータ可読媒体または他のコンピュータストレージデバイスに記憶されてよい。プロセス及びアルゴリズムは、特定用途向けの回路において部分的にまたは全体が実装されてよい。開示されるプロセス及びプロセスステップの結果は、永久的に記憶されてよい、またはそうでなければ例えば揮発性または不揮発性ストレージなどの任意のタイプの非一時的コンピュータストレージに記憶されてよい。
上記に記載した種々の特徴及びプロセスは、互いから独立して使用されてよい、または様々な方法で組み合わされる場合もある。全ての可能性のある組み合わせ及び副次的な組み合わせは、本開示の範囲内にあることが意図されている。加えて、特定の方法またはプロセスブロックは、一部の実装形態では省略される場合もある。本明細書に記載される方法及びプロセスは、任意の特定の順序に限定されるものではなく、それに関連するブロックまたは状況は、適切である他の順序で行うこともできる。例えば記載されるブロックまたは状況は、具体的に開示されるもの以外の順番で行われる場合もある、または複数のブロックもしくは状況が、1つのブロックまたは状況に組み合わされる場合もある。一例のブロックまたは状況は、連続して、並行して、または何らかの他のやり方で行われる場合もある。ブロックまたは状況が開示される一例の実施形態に加えられる、または開示される一例の実施形態から削除される場合もある。
種々のアイテムが、使用される間、メモリ内またはストレージ上に記憶されるように例示されており、これらのアイテムまたはその一部は、メモリ管理及びデータの完全性の目的で、メモリと他のストレージデバイスの間で移動される場合もあることも理解されたい。代替として、他の実施形態では、ソフトウェアモジュール及び/またはシステムの一部または全ては、メモリ内または別のデバイス上で実行されてよく、コンピュータ間の通信を介して、例示されるコンピューティングシステムと通信する場合もある。さらに、一部の実施形態では、システム及び/またはモジュールの一部または全ては、少なくとも部分的にファームウェア及び/またはハードウェアなど他の方法で実装されるまたは設けられる場合もあり、これに限定するものではないが1つまたは複数の特定用途向け集積回路(「ASIC」)、標準的な集積回路、制御装置(例えば適切な命令を実行することによる、かつマイクロコントローラ及び/または埋め込み式制御装置を含む)、フィールドプログラマブルゲートアレイ(「FPGA」)、コンプレックスプログラマブル論理デバイス(「CPLD」)などが含まれる。モジュール、システム及びデータ構造の一部または全てはまた、適切な接続を介して適切なドライブによって読み取られるコンピュータ可読媒体、例えばハードディスク、メモリ、ネットワークまたは持ち運び可能なメディア製品上に記憶される場合もある(例えばソフトウェア命令または構造化データとして)。システム、モジュール及びデータ構造は、生成されたデータ信号(例えば搬送波または他のアナログもしくはデジタル式に伝播された信号の一部として)として、無線式及び有線/ケーブル式媒体を含めた、多様なコンピュータ可読伝送媒体上で伝送されてもよく、(例えば単一のまたは複合的なアナログ信号として、または複数の別個のデジタルパケットもしくはフレームの一部として)種々の形態を採ることができる。そのようなピュータプログラム製品は、他の実施形態では他の形態を採る場合もある。したがって本発明は、他のコンピュータシステム構成とともに実施される場合もある。
本明細書で使用される条件付き文言、例えばとりわけ「can(できる)」、「could(できるだろう)」、「might(可能性がある)」、「may(してよい)」などは、特に明記しない限り、または使用される文脈の中で他の意味で理解されない限り、特定の実施形態が特定の特徴、要素及び/またはステップを含み、他の実施形態は特定の特徴、要素及び/またはステップを含まないことを伝えることが一般に意図されている。したがって、係る条件付き文言は、特徴、要素及び/もしくはステップが1つまたは複数の実施形態にいずれにせよ必要とされること、または1つまたは複数の実施形態が必ず、作成者の考えの提供または手助けがあって、またはそれらなしで、これらの特徴、要素及び/もしくはステップが含まれるのかどうか、または任意の特定の実施形態で実行されるべきかどうかを決定するための論理を含むことを暗示することは一般に意図されていない。用語「comprising(含む、備える)」、「including(含む)」、「having(有する)」などは同義語であり、オープンエンド方式で包括的に使用され、追加の要素、特徴、行為、動作などを排除しない。また、用語「or(または)」は、使用されるとき、例えば要素のリストを接続するために、用語「or(または)」がリスト中の要素の1つ、いくつか、またはすべてを意味するようにその包括的な意味で(かつその排他的な意味ではなく)使用される。
特定の例の実施形態を記載してきたが、これらの実施形態は、例示的なものに過ぎず、本明細書に開示された発明の範囲を限定するようには意図されていない。よって上述の記載においては、任意の特定の機構、特徴、ステップ、モジュールまたはブロックが必須である、または絶対に必要であることを示唆することは意図されていない。当然のことながら、本明細書に記載される新規の方法及びシステムは、様々な他の形態で具現化されてよく、さらに本明細書に記載される方法及びシステムの形態における様々な省略、代替及び変更は、本明細書に開示される発明の精神から逸脱することなくなされてよい。添付の特許請求の範囲及びその等価物は、本明細書に開示される特定の発明の精神及び範囲内にあるそのような形態または修正形態を包含するように意図されている。

Claims (15)

  1. マルチテナントコンピューティングサービスのプラットフォームによってホストされる仮想化コンピューティング環境とインタラクトするソフトウェアアプリケーションを開発するコンピュータにより実装される方法であって、
    前記仮想化コンピューティング環境で実行されるコンピューティングサービスを呼び出すよう動作可能である命令を開発するためのインタラクティブな環境を描写するグラフィカルなユーザインタフェースをレンダリングすることであって、前記グラフィカルなユーザインタフェースは、前記仮想化コンピューティング環境で実行される前記コンピューティングサービスに関連付けられた入力、出力及び動作の表現を少なくともグラフィカルに描写するよう動作可能であるものである、前記レンダリングすることと、
    前記グラフィカルなユーザインタフェースを介して、前記入力、前記出力及び前記動作を示すデータを受信することと、
    前記データに少なくとも部分的に基づいて、前記入力、前記出力及び前記動作の前記表現のグラフィカルな描写をレンダリングすることと、
    前記データを、前記仮想化コンピューティング環境で実行されるコンピューティングサービスを呼び出すよう動作可能である命令に関連付けることと、
    実行されると、前記表現によって表された機能を有効にして前記仮想化コンピューティング環境で実行される前記コンピューティングサービスを呼び出す、前記表現に関連付けられた前記命令を生成することとを備える、前記方法。
  2. 前記グラフィカルなユーザインタフェースが、前記入力、前記出力及び前記動作の前記表現の構成を容易にする働きをするビジュアル編集インタフェース制御を含む、請求項1に記載の方法。
  3. 前記命令がソフトウェアアプリケーションのプログラミングロジックに含まれる、請求項1に記載の方法。
  4. 前記グラフィカルなユーザインタフェースの前記レンダリング、受信、前記グラフィカルな描写のレンダリング及び関連付けが、開発者コンピューティングデバイスまたは前記仮想化コンピューティング環境上で行われる、請求項1に記載の方法。
  5. マルチテナントコンピューティングサービスのプラットフォームによってホストされる仮想化コンピューティング環境とインタラクトするアプリケーションを開発かつ導入するように構成されたシステムであって、前記システムの1つまたは複数のプロセッサによって実行されると、前記システムに少なくとも、
    前記仮想化コンピューティング環境を呼び出すよう動作可能である関数を開発するためのインタラクティブな環境を描写させ、
    前記関数の少なくとも1つの動作の表現をグラフィカルに描写させ、
    仮想化コンピューティング環境によって提供されるサービスに関連付けられかつ前記関数を実装するのに使用可能な複数のデータオブジェクトにアクセスさせ、
    前記複数の所定のデータオブジェクトを用いて、前記関数を実装し前記仮想化コンピューティング環境のサービスを呼び出すよう動作可能なコードを生成させるコンピュータ命令が内部に格納された少なくとも1つのメモリを備える、前記システム。
  6. 前記グラフィカルなユーザインタフェースが、ビジュアル編集インタフェース制御を含む、請求項5に記載のシステム。
  7. 前記コードが、仮想化データストレージサービスでデータファイルストレージを作成する、読み取る、書き込むかつ修正する関数を呼び出すよう動作可能である、請求項5に記載のシステム。
  8. 前記コードが、ユーザデータを受信する、前記ユーザデータを格納する、前記ユーザデータに対して動作を処理する、かつ変更された状態をユーザデバイスに送信するといった関数を呼び出すよう動作可能である、請求項5に記載のシステム。
  9. 前記コードが、データを前記仮想化データストレージサービスからサーバに転送する関数を呼び出すよう動作可能である、請求項8に記載のシステム。
  10. 前記コードが、アプリケーションデータの格納のために、前記仮想化コンピューティング環境のデータベースとインタラクトするよう動作可能である、請求項5に記載のシステム。
  11. 前記コードが、選択されたイベントに基づいて、前記仮想化コンピューティング環境の関数を呼び出すよう動作可能である、請求項5に記載のシステム。
  12. 前記選択されたイベントが、ファイルのアップロード、アプリケーションのアクティビティ、入力デバイスアクション、またはデバイスからの出力の1つまたは複数を含む、請求項11に記載のシステム。
  13. 非一時的なコンピュータ可読ストレージ媒体であって、1つまたは複数のコンピューティングデバイス上で実行されると、前記1つまたは複数のコンピューティングデバイスに少なくとも、
    ユーザの入力データに少なくとも部分的に基づいて、入力、出力及び動作の表現をグラフィカルに描写するよう動作可能であるグラフィカルなユーザインタフェースをレンダリングさせ、
    前記ユーザの入力データに少なくとも部分的に基づいて、前記入力、前記出力及び前記動作の前記表現のグラフィカルな描写をレンダリングさせ、
    前記レンダリングされたグラフィカルな描写を、前記入力、前記出力及び前記動作を実装する機能を実行し、前記仮想化マルチテナントコンピューティング環境でサービスを呼び出すよう動作可能な実行可能コードに関連付けさせ、
    前記実行可能コードを生成させ、前記実行可能コードの実行により、前記グラフィカルな描写によって表される前記入力、前記出力及び前記動作を実装する機能が呼び起され、前記サービスが呼び出されるコンピュータ可読命令を格納する、前記非一時的なコンピュータ可読ストレージ媒体。
  14. 1つまたは複数のコンピューティングデバイス上で実行されると、前記1つまたは複数のコンピューティングデバイスに少なくとも、
    前記ユーザの入力データを示す識別子をエンコードする第1の電子メッセージを受信し、
    前記第1の電子メッセージの1つの受信に応答して、前記実行可能コードを示す第2の電子メッセージを送信するように構成されたアプリケーションプログラミングインタフェースを実装させるコンピュータ可読命令をさらに備える、請求項13に記載のコンピュータ可読ストレージ媒体。
  15. 前記実行可能コードが、前記仮想化マルチテナントコンピューティング環境上でホストされるコンピューティングサービスを制御するよう動作可能である、請求項13に記載のコンピュータ可読ストレージ媒体。
JP2018513458A 2015-09-18 2016-09-15 ビジュアルコンテンツ開発 Pending JP2018533125A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/859,177 2015-09-18
US14/859,177 US20170083292A1 (en) 2015-09-18 2015-09-18 Visual content development
PCT/US2016/051993 WO2017048996A1 (en) 2015-09-18 2016-09-15 Visual content development

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019124879A Division JP2019215877A (ja) 2015-09-18 2019-07-04 ビジュアルコンテンツ開発

Publications (1)

Publication Number Publication Date
JP2018533125A true JP2018533125A (ja) 2018-11-08

Family

ID=57047314

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2018513458A Pending JP2018533125A (ja) 2015-09-18 2016-09-15 ビジュアルコンテンツ開発
JP2019124879A Pending JP2019215877A (ja) 2015-09-18 2019-07-04 ビジュアルコンテンツ開発

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2019124879A Pending JP2019215877A (ja) 2015-09-18 2019-07-04 ビジュアルコンテンツ開発

Country Status (7)

Country Link
US (1) US20170083292A1 (ja)
EP (1) EP3350692A1 (ja)
JP (2) JP2018533125A (ja)
KR (1) KR20180069819A (ja)
CN (1) CN108027720A (ja)
CA (1) CA2998617A1 (ja)
WO (1) WO2017048996A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019083009A (ja) * 2017-10-27 2019-05-30 セールスフォース ドット コム インコーポレイティッド コンピュータ・システムの作動方法、コンピュータ・システム、コンピュータ・プログラム及び記憶媒体
JP2021009665A (ja) * 2019-06-28 2021-01-28 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド ファイル生成方法、装置、デバイス及び記憶媒体
JP2021039668A (ja) * 2019-09-05 2021-03-11 株式会社コマースロボティクス 情報処理システム、情報処理方法及び情報処理プログラム
JP2023036878A (ja) * 2017-06-08 2023-03-14 ウィックス.コム リミテッド. ウェブサイトコンポーネント相互間におけるスマートインタラクションのためのシステム及び方法

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10192199B2 (en) 2011-11-16 2019-01-29 Microsoft Technology Licensing, Llc Enabling service features within productivity applications
US10019238B2 (en) 2015-06-23 2018-07-10 Open Text Sa Ulc Compositional entity modeling systems and methods
US10001974B1 (en) 2015-12-03 2018-06-19 State Farm Mutual Automobile Insurance Company Technical building block
US10331418B2 (en) 2015-12-08 2019-06-25 Paypal, Inc. State machine representation of a development environment deployment process
US9858048B1 (en) 2016-03-16 2018-01-02 Amazon Technologies, Inc. Deterministic execution for visually developed operations
US12468509B2 (en) 2016-05-04 2025-11-11 Open Text Sa Ulc Reusable entity modeling systems and methods
US10310718B2 (en) * 2016-06-22 2019-06-04 Microsoft Technology Licensing, Llc Enabling interaction with an external service feature
JP6759942B2 (ja) * 2016-09-30 2020-09-23 横河電機株式会社 アプリケーション開発環境提供システム、アプリケーション開発環境提供方法、アプリケーション開発環境提供プログラム、端末装置、アプリケーション表示方法、およびアプリケーション表示プログラム
US10353752B2 (en) * 2016-12-07 2019-07-16 Vmware, Inc. Methods and apparatus for event-based extensibility of system logic
US10552180B2 (en) 2016-12-07 2020-02-04 Vmware, Inc. Methods, systems, and apparatus to trigger a workflow in a cloud computing environment
US10152356B2 (en) 2016-12-07 2018-12-11 Vmware, Inc. Methods and apparatus for limiting data transferred over the network by interpreting part of the data as a metaproperty
US11481239B2 (en) 2016-12-07 2022-10-25 Vmware, Inc. Apparatus and methods to incorporate external system to approve deployment provisioning
US11645046B2 (en) * 2017-07-03 2023-05-09 Unqork, Inc. Systems and methods for development and deployment of software platforms having advanced workflow and event processing components
US10223176B1 (en) * 2017-10-13 2019-03-05 Amazon Technologies, Inc. Event handler nodes for visual scripting
US10678613B2 (en) * 2017-10-31 2020-06-09 Seven Bridges Genomics Inc. System and method for dynamic control of workflow execution
US10585698B2 (en) * 2017-11-10 2020-03-10 Salesforce.Com, Inc. Template-driven multi-tenant workflow processing
US20240372856A1 (en) * 2018-03-21 2024-11-07 Pure Storage, Inc. Similarity-Based Proactive Support And Dynamic Optimization
US11171950B1 (en) * 2018-03-21 2021-11-09 Pure Storage, Inc. Secure cloud-based storage system management
US11449813B2 (en) * 2018-04-13 2022-09-20 Accenture Global Solutions Limited Generating project deliverables using objects of a data model
US10824401B2 (en) * 2018-04-30 2020-11-03 MphasiS Limited Method and system for automated creation of graphical user interfaces
US11090569B1 (en) 2018-10-31 2021-08-17 Snap Inc. Game testing system
JP7316060B2 (ja) * 2019-02-26 2023-07-27 株式会社日立製作所 アプリケーション画面表示プログラム実装方法
CN110865808B (zh) * 2019-10-17 2023-02-28 福建天泉教育科技有限公司 一种学习组件管理方法及系统
US11397750B1 (en) * 2019-11-27 2022-07-26 Amazon Technologies, Inc. Automated conflict resolution and synchronization of objects
CN111782202B (zh) * 2020-06-30 2024-07-19 京东科技控股股份有限公司 一种应用数据的编辑方法和装置
KR102598516B1 (ko) * 2021-09-01 2023-11-06 (주)포티파이 어플리케이션 개발을 위한 콘텐츠 편집 서비스 제공 방법 및 장치
KR102875618B1 (ko) * 2022-11-25 2025-10-30 (주)유티플러스 인터랙티브 사용자 창작물의 등록 및 거래를 지원하는 메타버스 플랫폼 시스템
CN116301886A (zh) * 2023-02-22 2023-06-23 杭州杰峰科技有限公司 数据处理方法、装置、电子设备及计算机可读存储介质
EP4446871A1 (en) * 2023-04-13 2024-10-16 Theaimegroup Ltd Generating software components
US20240427572A1 (en) * 2023-06-26 2024-12-26 Lemon Inc. Methods and systems for automated generation of a user interface
US12613680B2 (en) 2023-08-28 2026-04-28 Lemon Inc. Controlling data schema for data oriented architecture
CN116909627B (zh) * 2023-09-13 2023-12-12 杭州笨马网络技术有限公司 一种可执行程序解析方法、装置、电子设备和存储介质
TWI879408B (zh) * 2024-01-29 2025-04-01 四零四科技股份有限公司 腳本變數綁定方法與使用該方法的物聯網閘道器

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09330215A (ja) * 1996-06-12 1997-12-22 Hitachi Ltd プログラム編集方法
JP2008021095A (ja) * 2006-07-12 2008-01-31 Nippon Telegr & Teleph Corp <Ntt> 連携シナリオ作成支援システム及びその方法並びにプログラム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120876B2 (en) * 1999-08-19 2006-10-10 National Instruments Corporation System and method for programmatically generating a graphical program in response to user input
US20120173732A1 (en) * 2002-10-22 2012-07-05 Sullivan Jason A Systems and methods for providing resources and interactivity in computer systems
WO2008097801A2 (en) * 2007-02-05 2008-08-14 Skyway Software, Inc. Method and system for creating, deploying, and utilizing a service
US8452921B1 (en) * 2010-03-17 2013-05-28 Network Appliance, Inc. Provisioning a pass-through disk in a virtualized computing environment
US9131370B2 (en) * 2011-12-29 2015-09-08 Mcafee, Inc. Simplified mobile communication device
US9134962B1 (en) * 2013-03-15 2015-09-15 Sanctum Solutions, Inc. Interactive content development
JP2014110041A (ja) * 2013-06-12 2014-06-12 Dna:Kk アプリケーション作成支援サーバー、プログラム、及び、ネットワークシステム

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09330215A (ja) * 1996-06-12 1997-12-22 Hitachi Ltd プログラム編集方法
JP2008021095A (ja) * 2006-07-12 2008-01-31 Nippon Telegr & Teleph Corp <Ntt> 連携シナリオ作成支援システム及びその方法並びにプログラム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023036878A (ja) * 2017-06-08 2023-03-14 ウィックス.コム リミテッド. ウェブサイトコンポーネント相互間におけるスマートインタラクションのためのシステム及び方法
JP7420911B2 (ja) 2017-06-08 2024-01-23 ウィックス.コム リミテッド. ウェブサイトコンポーネント相互間におけるスマートインタラクションのためのシステム及び方法
JP2019083009A (ja) * 2017-10-27 2019-05-30 セールスフォース ドット コム インコーポレイティッド コンピュータ・システムの作動方法、コンピュータ・システム、コンピュータ・プログラム及び記憶媒体
JP7195108B2 (ja) 2017-10-27 2022-12-23 セールスフォース ドット コム インコーポレイティッド コンピュータ・システムの作動方法、コンピュータ・システム、コンピュータ・プログラム及び記憶媒体
JP2021009665A (ja) * 2019-06-28 2021-01-28 バイドゥ オンライン ネットワーク テクノロジー (ベイジン) カンパニー リミテッド ファイル生成方法、装置、デバイス及び記憶媒体
JP2021039668A (ja) * 2019-09-05 2021-03-11 株式会社コマースロボティクス 情報処理システム、情報処理方法及び情報処理プログラム

Also Published As

Publication number Publication date
EP3350692A1 (en) 2018-07-25
JP2019215877A (ja) 2019-12-19
CN108027720A (zh) 2018-05-11
US20170083292A1 (en) 2017-03-23
KR20180069819A (ko) 2018-06-25
CA2998617A1 (en) 2017-03-23
WO2017048996A1 (en) 2017-03-23

Similar Documents

Publication Publication Date Title
JP2019215877A (ja) ビジュアルコンテンツ開発
US11797273B2 (en) System and method for enhancing component based development models with auto-wiring
US10705942B1 (en) Simulated testing of API
US9971593B2 (en) Interactive content development
JP6871943B2 (ja) モバイルクラウドサービスのための予め形成された命令
US20180101371A1 (en) Deployment manager
CN114008605A (zh) 大数据应用生命周期管理
US20230091915A1 (en) Automatic Application of Software Updates to Container Images Based on Dependencies
JP7824005B2 (ja) コンテナオーケストレーションシステムをテストする方法、システムおよびコンピュータプログラム(コンテナオーケストレーションシステムをテストするためのテストクラスタの生成)
US20150143267A1 (en) SYSTEM AND METHOD FOR DEVELOPING A RULE-BASED EVENT-DRIVEN MULTI-LAYERED FRONTEND FOR BUSINESS SERVICES AND RENDERING THE GUIs ON MULTIPLE CLIENT DEVICES
Chowhan Hands-on serverless computing: Build, run and orchestrate serverless applications using AWS Lambda, Microsoft Azure functions, and Google Cloud functions
US9513948B2 (en) Automated virtual machine provisioning based on defect state
US10956131B2 (en) Separation of user interface logic from user interface presentation by using a protocol
Bai Programming Microsoft Azure Service Fabric
US20190306257A1 (en) Cloud enabling resources as a service
US10603583B1 (en) Entity-component architecture with components having multiple configurations
US10375206B1 (en) Entity-component architecture with components having multiple configurations
Méndez Edge Computing Systems with Kubernetes
US20220365758A1 (en) Tool for Introspection in Object-Oriented Source Code
US11893403B1 (en) Automation service
US20260046344A1 (en) Database systems and client-side methods for pausing flows offline
Zaal et al. Migrating Applications to the Cloud with Azure: Re-architect and rebuild your applications using cloud-native technologies
Amalaraj et al. Design and Development of a Tethys Framework Web Application to Elucidate the HydroShare. org Application Programmer Interface
Crepalde Big Data on Kubernetes: A practical guide to building efficient and scalable data solutions
Graham Serverless Computing with Amazon Web Services

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180313

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190204

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190426

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190909