JP2020509792A - 仮想環境のための動的設計データを管理するためのシステムおよび方法 - Google Patents

仮想環境のための動的設計データを管理するためのシステムおよび方法 Download PDF

Info

Publication number
JP2020509792A
JP2020509792A JP2019537359A JP2019537359A JP2020509792A JP 2020509792 A JP2020509792 A JP 2020509792A JP 2019537359 A JP2019537359 A JP 2019537359A JP 2019537359 A JP2019537359 A JP 2019537359A JP 2020509792 A JP2020509792 A JP 2020509792A
Authority
JP
Japan
Prior art keywords
virtual environment
versions
version
user
data
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
JP2019537359A
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.)
MZ IP Holdings LLC
Original Assignee
MZ IP Holdings LLC
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 MZ IP Holdings LLC filed Critical MZ IP Holdings LLC
Publication of JP2020509792A publication Critical patent/JP2020509792A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/30Interconnection arrangements between game servers and game devices; Interconnection arrangements between game devices; Interconnection arrangements between game servers
    • A63F13/35Details of game servers
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/60Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor
    • A63F13/69Generating or modifying game content before or while executing the game program, e.g. authoring tools specially adapted for game development or game-integrated level editor by enabling or updating specific game elements, e.g. unlocking hidden features, items, levels or versions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts

Abstract

本開示の実現例は、仮想環境設計データのデプロイメントを容易にすることによって、環境をインスタンス化するアプリケーションのコードベースまたはコア処理機能全体を再デプロイする必要なく環境のユーザのために新たなエクスペリエンスを作成するためのコンピュータによって実行される方法、システムおよび物品に向けられる。一実施形態では、設計ツールは、仮想環境(オンラインマルチプレイヤゲームのための設定など)のための環境設計パラメータを受信し、仮想環境は、設計パラメータによって定義される要素と、一次関数コードベースとを含み、設計ツールはさらに、仮想環境のバージョンを作成し、各バージョンは、一次関数コードベースから独立した設計パラメータのサブセットを備える。バージョンは、仮想環境の1人以上のユーザに割り当てられ、一次関数コードベースの配信を必要とすることなく、ユーザに配信される。

Description

関連出願の相互参照
本願は、2018年1月10日に出願された米国特許出願番号第15/866,682号および2017年1月11日に出願された米国仮特許出願番号第62/444,979号に対する優先権を主張し、米国特許出願番号第15/866,682号および米国仮特許出願番号第62/444,979号は、全内容が引用によって本明細書に援用される。
背景
本開示は、仮想環境の設計および管理に関し、特に、設計データおよびパラメータを動的に設計して仮想環境にデプロイするためのシステムおよび方法に関する。
一般に、現実世界の環境をシミュレートするため、または、数十万人さらには数百万人ものプレイヤが互いに対話し、仮想環境とも対話するオンラインゲームに対して背景状況を提供するために、仮想世界が使用されてもよい。仮想環境は、屋外シーンおよび風景から建物および都市景観、家具、ツールまたは他の物体にいたるまでの無数のさまざまな「要素」または「もの」から成っていてもよい。これらの要素の各々は、独自のパラメータおよび特性を有していてもよく、これらのパラメータおよび特性は、総合して、仮想環境全体がどのようなものであるかおよび参加者が環境内の要素とどのように対話するかを定義する。
環境および要素に変化を生じさせるためには、これらのパラメータを更新して本番環境にデプロイしなければならない。これは、多数のユーザが環境と対話している場合には困難である可能性があり、更新はリアルタイムで行われなければならない。仮想環境内のユーザエクスペリエンスを妨害しないまたは損なわない態様でこのような更新をデプロイすることが望ましい。
概要
本明細書に記載されているシステムおよび方法の実現例を使用して、たとえばマルチプレイヤオンラインゲーム(たとえば、大規模マルチプレイヤオンラインゲームなど)を含む仮想環境において操作パラメータおよび設計データを管理することができる。設計データは、たとえば、オンラインゲームまたはオンラインゲームのための仮想環境と対話するための入力をユーザ(代替的に、本明細書では「プレイヤ」と称される)がクライアントデバイスに提供すると作成されるユーザイベントを含み得る。
仮想環境またはオンラインゲームでは、環境の各要素(「特徴」)は、参加者および他の特徴が当該特徴をどのように見て対話するかを定義するさまざまな値で構成され得る。これらの値の定義および調整は、ユーザエクスペリエンスおよび環境の全体範囲を形作る。たとえば、環境は、建物、自然の要素(たとえば、湖、山など)、乗り物および他の物体などの特徴を含んでもよい。各特徴は、そのサイズ、形状、機能および他のパラメータを定義する属性を含んでもよく、これらは「設計データ」と総称される。ユーザエクスペリエンスを妨害することなく頻繁に一貫して新たな特徴が導入される場合に、仮想環境およびオンラインゲームに対するユーザの関与およびロイヤルティは増加する。
したがって、これらの問題に対処しかつベースコードデプロイメントから切り離されたワークフロープロセスおよびアーキテクチャを利用する、これらの環境において設計データ(したがって、新たな特徴)を定義して実現するためのプロセスは、多大な価値をもたらすことができる。本明細書に記載されている技術および支援システムにより、仮想環境を実現するベースコードを再デプロイする必要なしに、特徴の迅速なデータ駆動型の開発が可能になる。これにより、設計チームは、常にオンデマンドベースで新たな特徴およびコンテンツのリリースを駆動することができるため、ユーザ関与が最大化され、設計データをアップロード、バージョン化、管理およびリリースするための設計データツールによって管理することができる既存の設計データの複数のライブバージョンが容易になる。
一局面において、本明細書に記載されている主題は、コンピュータによって実行される方法に関する。上記方法は、仮想環境(オンラインマルチプレイヤゲームのための設定など)のための複数の設計パラメータ(たとえば、新たな設計データおよび/または既存の設計データに対する変更を含んでもよい)を受信するステップを含み、上記仮想環境は、上記設計パラメータによって定義される要素と、一次関数コードベース(primary functional codebase)とを含み、上記方法はさらに、上記仮想環境のバージョンを作成するステップを含み、各バージョンは、上記一次関数コードベースから独立した上記設計パラメータのサブセットを備える。上記バージョンは、上記仮想環境の1人以上のユーザに割り当てられ、上記一次関数コードベースの配信を必要とすることなく、上記ユーザに配信される。
いくつかの実施形態では、上記バージョンの配信は、上記バージョンに関連付けられた上記ユーザからの要求に応答して、上記ユーザがクライアントデバイス上で上記仮想環境をインスタンス化したことに応答して、または場合によっては、いかなるユーザアクティビティもしくは動作からも独立して、起動されてもよい。いくつかの実現例では、上記ユーザの割り当てられたバージョンに従って各ユーザが上記仮想環境と対話するように、後続のバージョンが上記仮想環境の後続のユーザに割り当てられてもよい。いくつかの実施形態では、1つ以上のバージョンからさまざまなバリアントが作成されてもよい。バリアントは、たとえば特定の地理的領域に帰してもよく、そのため、上記地理的領域内の上記仮想環境のユーザは、上記地理的領域に関連付けられた上記バリアントを割り当てられる。場合によっては、バリアントは、一人のユーザに特有であってもよい。いくつかの実施形態では、1つ以上のリリースルール(たとえば、タイムスタンプ)が満たされたときにのみリリースが行われるように、バージョンは上記ルールに準拠するものとして指定されてもよい。場合によっては、新たなバージョンのために設計パラメータのサブセットを指定するだけでよいように、新たに作成されたバージョンは、既存のバージョンから設計パラメータを継承してもよい。特定の例では、上記バージョンを上記ユーザに配信するステップの前に、上記バージョンが前にリリースされたバージョンの設計パラメータと矛盾するか否かについて判断がなされ、このような矛盾が解決されたとして指定されるかまたは上記矛盾する設計パラメータが破棄されるまでは上記バージョンのリリースを認めない。
別の局面において、本明細書に記載されている主題は、システムに関する。上記システムは、動作を実行するようにプログラムされた1つ以上のコンピュータプロセッサを含み、上記動作は、仮想環境(オンラインマルチプレイヤゲームのための設定など)のための複数の設計パラメータ(たとえば、新たな設計データおよび/または既存の設計データに対する変更を含んでもよい)を受信するステップを備え、上記仮想環境は、上記設計パラメータによって定義される要素と、一次関数コードベースとを含み、上記動作はさらに、上記仮想環境のバージョンを作成するステップを備え、各バージョンは、上記一次関数コードベースから独立した上記設計パラメータのサブセットを備える。上記バージョンは、上記仮想環境の1人以上のユーザに割り当てられ、上記一次関数コードベースの配信を必要とすることなく、上記ユーザに配信される。
いくつかの実施形態では、上記バージョンの配信は、上記バージョンに関連付けられた上記ユーザからの要求に応答して、上記ユーザがクライアントデバイス上で上記仮想環境をインスタンス化したことに応答して、または場合によっては、いかなるユーザアクティビティもしくは動作からも独立して、起動されてもよい。いくつかの実現例では、上記ユーザの割り当てられたバージョンに従って各ユーザが上記仮想環境と対話するように、後続のバージョンが上記仮想環境の後続のユーザに割り当てられてもよい。いくつかの実施形態では、1つ以上のバージョンからさまざまなバリアントが作成されてもよい。バリアントは、たとえば特定の地理的領域に帰してもよく、そのため、上記地理的領域内の上記仮想環境のユーザは、上記地理的領域に関連付けられた上記バリアントを割り当てられる。場合によっては、バリアントは、一人のユーザに特有であってもよい。いくつかの実施形態では、1つ以上のリリースルール(たとえば、タイムスタンプ)が満たされたときにのみリリースが行われるように、バージョンは上記ルールに準拠するものとして指定されてもよい。場合によっては、新たなバージョンのために設計パラメータのサブセットを指定するだけでよいように、新たに作成されたバージョンは、既存のバージョンから設計パラメータを継承してもよい。特定の例では、上記バージョンを上記ユーザに配信するステップの前に、上記バージョンが前にリリースされたバージョンの設計パラメータと矛盾するか否かについて判断がなされ、このような矛盾が解決されたとして指定されるかまたは上記矛盾する設計パラメータが破棄されるまでは上記バージョンのリリースを認めない。
別の局面において、本明細書に記載されている主題は、システムに関する。上記システムは、動作を実行するようにプログラムされた1つ以上のコンピュータプロセッサを含み、上記動作は、データ設計ツール、バージョン化サービスおよび複数のコンテンツ配信ノードのインスタンス化を備える。上記データ設計ツールは、仮想環境(オンラインマルチプレイヤゲームなど)のための設計パラメータを含むユーザ入力を受信し、上記仮想環境は、上記設計パラメータによって定義される要素と、一次関数コードベースとを備える。上記バージョン化サービスは、上記仮想環境のバージョンの作成を容易にし、各バージョンは、上記一次関数コードベースから独立した上記設計パラメータのサブセットを備え、上記バージョン化サービスはさらに、上記仮想環境のユーザへの上記バージョンの割り当てを容易にする。上記コンテンツ配信ノードは、上記一次関数コードベースの配信を必要とすることなく、上記バージョンを上記仮想環境の上記ユーザに配信する。
いくつかの実施形態では、上記コンテンツ配信ノードによる上記バージョンの配信は、上記バージョンに関連付けられた上記ユーザからの要求に応答して、上記ユーザがクライアントデバイス上で上記仮想環境をインスタンス化したことに応答して、または場合によっては、いかなるユーザアクティビティもしくは動作からも独立して、起動されてもよい。いくつかの実現例では、上記バージョン化サービスは、上記ユーザの割り当てられたバージョンに従って各ユーザが上記仮想環境と対話するように、後続のバージョンを上記仮想環境の後続のユーザに割り当ててもよい。いくつかの実施形態では、上記バージョン化サービスは、上記バージョンからさまざまなバリアントを作成してもよい。バリアントは、たとえば特定の地理的領域に帰してもよく、そのため、上記地理的領域内の上記仮想環境のユーザは、上記地理的領域に関連付けられた上記バリアントを割り当てられる。場合によっては、バリアントは、一人のユーザに特有であってもよい。いくつかの実施形態では、1つ以上のリリースルール(たとえば、タイムスタンプ)が満たされたときにのみリリースが行われるように、バージョンは上記ルールに準拠するものとして指定されてもよい。場合によっては、新たなバージョンのために設計パラメータのサブセットを指定するだけでよいように、新たに作成されたバージョンは、既存のバージョンから設計パラメータを継承してもよい。特定の例では、上記バージョンを上記ユーザに配信する前に、上記バージョンが前にリリースされたバージョンの設計パラメータと矛盾するか否かについて判断がなされ、このような矛盾が解決されたとして指定されるかまたは上記矛盾する設計パラメータが破棄されるまでは上記バージョンのリリースを認めない。
別の局面において、本明細書に記載されている主題は、物品に関する。上記物品は、命令を格納した非一時的なコンピュータ読取可能媒体を備え、上記命令は、コンピュータプロセッサによって実行されると、上記コンピュータプロセッサに仮想環境のための複数の設計パラメータを受信させ、上記仮想環境は、上記設計パラメータによって定義される要素と、一次関数コードベースとを含む。また、上記命令の実行は、上記仮想環境のバージョンを作成し、各バージョンは、上記一次関数コードベースから独立した上記設計パラメータのサブセットを備え、上記命令の実行はさらに、上記バージョンを上記仮想環境のユーザに割り当て、上記一次関数コードベースの配信を必要とすることなく、上記バージョンを上記仮想環境の上記ユーザに配信する。
本発明の所与の局面に関して記載される実施形態の要素は、本発明の別の局面のさまざまな実施形態でも使用できる。たとえば、1つの独立請求項に従属する従属請求項の特徴は、他の独立請求項のうちのいずれかの装置、システムおよび/または方法でも使用できると考えられる。
本発明およびその付随する多くの利点は、以下の詳細な説明を添付図面と合わせて参照することによってよりよく理解されるので、そのより完全な理解は容易に得られるであろう。図中、同様の参照符号は、一般に、異なる図面全体にわたって同一の部分を指す。さらに、図面は、必ずしも一定の縮尺になっておらず、その代わりに、通常は本発明の原理を説明することに重点が置かれている。
本開示に係る仮想環境のための設計データを管理するためのシステムの一例の概略図である。 本開示に係る仮想環境において設計データを定義して実現するさまざまな構成物を示す。 本開示に係る仮想環境内で新たな特徴を実現するためのプロセスを示すフローチャートである。 本開示に係る仮想環境内でバージョンおよび特徴を実現するための設計データを収集および管理するために使用され得る例示的なスプレッドシートセットである。 本開示に係る仮想環境内でバージョンおよび特徴を実現するためのデータツールコンソールを示す例示的なスクリーンキャプチャである。 本開示に係る仮想環境のバージョンに特徴を割り当てるためのアプリケーションページを示す例示的なスクリーンキャプチャである。 本開示に係る仮想環境のバージョンにホットフィックスを割り当てるためのアプリケーションページを示す例示的なスクリーンキャプチャである。 本開示に係る仮想環境内でルールを作成および管理するためのアプリケーションページを示す例示的なスクリーンキャプチャである。 本開示に係る仮想環境内でルールを作成および管理するためのアプリケーションページを示す例示的なスクリーンキャプチャである。 本開示に係る仮想環境の局面を定義するために使用されるウィジェットを定義するためのアプリケーションページを示す例示的なスクリーンキャプチャである。 本開示に係る仮想環境のバリアントを管理するためのアプリケーションページを示す例示的なスクリーンキャプチャである。 本開示に係る仮想環境のバリアントに関連付けられたパラメータを編集するためのアプリケーションページを示す例示的なスクリーンキャプチャである。 本開示に係る仮想環境に特徴をデプロイするためのアプリケーションページを示す例示的なスクリーンキャプチャである。 本開示に係る仮想環境のバージョンのデプロイメントを管理するためのアプリケーションページを示す例示的なスクリーンキャプチャである。 本開示に係る仮想環境に設計データをデプロイするためのプロセスを示すワークフローである。 本開示に係る仮想環境に設計データをデプロイするためのアーキテクチャを示すワークフローである。 本開示に係る仮想環境の新たなバージョンを作成および検証するためのプロセスを示すフローチャートである。 本開示に係る仮想環境の新たなバリアントを作成および検証するためのプロセスを示すフローチャートである。 本開示に係る仮想環境の新たなバージョンをデプロイするためのプロセスを示すフローチャートである。
詳細な説明
図1は、パラメータおよび仮想環境に関連する設計データおよび当該環境を構成する要素の作成、管理および配信を管理するためのシステム100の一例を示す。本明細書で使用される仮想環境は、ユーザが建物、乗り物、バーチャルビーイング、武器、玩具などの仮想のアイテムおよび要素を見たり、対話したり、売買したり、使用したりする任意のオンライン環境であり得る。場合によっては、要素はルールに従って使用されて、ゲーム環境を作成し、当該ゲーム環境では、ユーザは互いに競争してアイテム、富、力などを蓄えていくことができる。本明細書に記載されている本発明の局面では、要素の表示および/または使用を定義するパラメータおよびデータは、仮想環境をインスタンス化する関数コードベースとは別に、作成、格納およびデプロイされてもよい。たとえば、環境の構造を作成するレベル、ロケールなどにかかわらず、全てのユーザに共通する関数コードセットが存在してもよいが、設計データは、要素を作成し、または要素の「詳細を補い」、ユーザベースにわたってカスタマイズ可能である。
一般におよび図1を参照して、システム100は、設計データツール102および対応するデータツールデータベース104と、関連付けられた静的データサービス108およびバージョンデータベース110を有するバージョン化サービス106と、CDN(コンテンツ配信ノード)112とを含む。いくつかの実施形態では、RTE(リアルタイムイベント)通知サービス114は、システム100のコンポーネント間でのリアルタイムまたは準リアルタイムメッセージング機能を提供する。RTE通知サービス114のアーキテクチャの一例は、所有者が共通する米国特許出願番号第15/442,036号に記載されている出版/購読サービス(「PubSub」)を備え、米国特許出願番号第15/442,036号は、全開示内容が引用によって本明細書に援用される。仮想環境のバージョンのユーザは、1つ以上のクライアント116から環境にアクセスして環境と対話する。設計データツール102は、アプリケーションインターフェイスを提供し、このアプリケーションインターフェイスを介して、環境管理者および設計者は、仮想環境に関連する設計データをアップロード、整備およびデプロイすることができる。バージョン化サービス106は、アプリケーションプログラミングインターフェイスを提供し、このアプリケーションプログラミングインターフェイスを介して、データツールは、静的データをロードしてそこにとどまらせ、静的データサービス108は、適切なデータをCDN112に配信し、そこでデータはパッケージングされて、その後のクライアント116への配信のために格納される。
より具体的には、さまざまなコンポーネント間のデータ通信フローは、以下のように説明することができる。ユーザが設計データツール102に入力した設計データは、定期的にデータツールデータベース104にアップロードされて保存され、ユーザが新たな設計データを作成する際にデータツールデータベース104から取り込まれたり、改訂されたりすることができる。ユーザが設計データツール102を用いて設計データセットを完成させると(または、設計データセットの妥当性をチェックしたい場合)、設計データは、検証のために静的データサービス108に送信される。静的データサービス108において検証がなされると、当該設計データセットについてバージョン化およびリリースプロセスを開始してもよいことを示す応答が設計データツール102に送り返され、設計データセットについての更新ルールがバージョン化サービス106に送信される。次いで、新たに作成された設計データおよびその関連付けられた更新/リリースルールは、バージョンデータベース110に保存される。(すぐにまたは1つ以上のリリースルールに従って)バージョンが承認されてデプロイメントの準備が整うと、新たに作成されたバージョンは、CDN112にデプロイされ、クライアント116へのデプロイメントに利用できるようにされる。たとえばRTE通知サービス114を介して、新たに作成されたバージョンをクライアント116に適切に通知することができる。クライアント116は、その後サービスにログインすると、現在のコアアプリケーションマニフェストと、特定のクライアント116のための新たな設計データを含むCDN112からの適切なデータパッケージとを提供される。代替的に、クライアント116がRTE通知サービス114から通知を受信したときに既にサービスにログインしている場合には、現在のコアアプリケーションマニフェストおよびCDN112からの適切なデータパッケージは、(自動的に)ダウンロードされるか、さもなければ背景の中のクライアント116に提供されてもよい。
図2は、システム100を使用して設計およびデプロイされ得るさまざまなデータ分類を示す。設計データは、一般に、特徴204、ホットフィックス206またはバリアント208という3つの分類のうちの1つにグループ分けされてもよい。他の設計データ分類も可能である。これら3つの分類のいずれに入力されるデータも、新たな静的データ、既存の静的データに対する変更、またはそれら両方を含んでもよい。
システム100が特徴のセットまたは特徴セットを中心に展開するので、特徴204は、データプログレッションにおける測定の原単位である。特徴204は、たとえば照合スプレッドシート、リスト、構造化ドキュメントまたは他のフォーマットを使用して設計データツール102に入力される設計データから成っていてもよい。場合によっては、特徴204は、専門の設計チームメンバによって作成および管理され、設計データツール102にアップロードされてもよく、データは、そこにとどまって、最終的にはデプロイされて静的データに変換される。いかなる数のペンディング特徴も設計データツール102において保持され管理されてもよく、デプロイされた特徴の全履歴が保持される。ホットフィックス206は、特徴設計データ(または、前のホットフィックス)に対する変更として扱われる。ホットフィックス206を適用する必要がある場合、設計データツール102におけるホットフィックス機能を介して必要な変更が収集されて適用される。場合によっては、設計データツール102は、関連する局面(他のペンディング特徴にホットフィックスを伝搬させることなど)を管理しながら、他のバージョン配信と比較して合理化されたホットフィックスワークフローを可能にする。これにより、起こり得る欠陥、バグ、または他の望ましくないが前に配信された設計データに対する迅速な応答が可能になる。
バリアント208は、それぞれの設計データがいつ適用されるかを規定する予め定義されたルールに結合されたスタンディングデータ置換定義(standing data replacement definitions)として使用される。場合によっては、バリアント208は、設計データツール102からデプロイされるあらゆる特徴204およびホットフィックス206に対して評価される。たとえば、要素として建物を含む仮想環境では、特定の建物は、特定のクライアント地理的領域(たとえば、特定の言語での広告板)においてさまざまな設計データを使用してもよく、当該領域では別の建物は利用不可であってもよい。このような区別は、バリアント208を対象の領域に制限するルールに結合されたバリアント208を使用して適用することができる。たとえば、要素として建物を含む仮想環境では、特定のクライアント地理的領域(翻訳されたテキストが内蔵された広告板など)においてさまざまなアセットを用いて特定の建物「建物A」を描写することが望ましいであろう。同様に、別の特定の建物「建物B」を制限して当該領域では利用不可にすることが望ましいであろう。このような区別は、バリアント208を対象の領域に制限するルールに結合されたバリアント208を使用して適用することができる。上記の例では、「建物A」は、そのアセット参照をバリアント208データと置換させ、「建物B」は、バリアント208データでは利用不可であるとしてフラグが立てられるであろう。新たな特徴204またはホットフィックス206がアップロードされるたびに、指定の設計データを使用して当該データセットの暗黙の代替バリアント208を作成することができる。
設計データツール102にアップロードされる全ての設計データは、バージョン化されて、CDN112にデプロイされるまではもっぱら設計データツール102に存在することができる。特徴204およびホットフィックス206は、設計データツール102においてそれらのバージョン番号によって明示的に管理されることができ、バリアント208は、データ置換定義として設計データツール102に存在することができる。特徴204またはホットフィックス206がデプロイされると、既存のバリアント208のセットを使用して、設計データのベースセットに対して代替データセットを動的に生成することができる。
また、バリアント208は、設計データツール102において固有の名前/番号を割り当てられてもよい。たとえば、アップロードされた各特徴204は、新たな連続する主バージョン番号、たとえば10500、10501、10502など、を割り当てられ得る。アップロードされた各ホットフィックス206は、適用可能な主バージョン番号(すなわち、特徴204)に属する新たな連続する副バージョン番号を割り当てられ得る。たとえば、特徴10502は、10502.1、10502.2および10502.3などの3つの適用可能なホットフィックスを有してもよい。設計データツール102において定義される各バリアント208について、暗黙のデータ変化が、各々のデプロイされていない特徴204およびホットフィックス206に対して存在し得る。これらのバリアント208を使用して、バージョンデプロイメント中にデータ置換セットを生成してもよい。これらの変化は、適用されたルールセットに基づいて各々の特定のクライアント116についてさまざまな組み合わせでグループ分けされ得るので、バージョン番号付け規則に明示的に含まれていなくてもよい。
場合によっては、バージョン制御は、ステージ分けされたプロセスとして管理される。図3を参照して、各特徴204およびホットフィックス206は状態を割り当てられ、各状態は、ある状態から別の状態に移行するための対応するワークフローパラメータおよびルールセットを有する。一実施形態では、状態は、ペンディング(たとえば、データツールにアップロードされて動作を待っている)、デプロイ済み(たとえば、CDN112に送信済み)、デプロイ済み−制限あり(たとえば、デプロイ済みであるが、1つ以上のルールまたはリリース日によって制約される)、矛盾している(たとえば、特定の特徴の新たな設計データと矛盾する伝搬ホットフィックス)および破棄済み(たとえば、廃棄された特徴またはホットフィックス)を含んでもよい。他の状態も可能である。
いくつかの実施形態では、ワークフロールールは、特徴204および/またはホットフィックス206がどのようにある状態から別の状態に移行するかを規定する。具体的には、最初に、特徴204およびホットフィックス206は全て、作成時に「ペンディング」の状態を付与されることができる。特徴204およびホットフィックス206は、CDN112にデプロイされてクライアント116へのリリースに利用できるようになると、デプロイ済みの状態を付与される。これは、最終的な状態/ステータスである。なぜなら、特徴204またはホットフィックス206は、デプロイされると確定されたと考えられるからである。特徴204およびホットフィックス206は、CDN112にデプロイされたが、付随するルールまたはリリースタイムスタンプが満たされるまでは特徴204およびホットフィックス206がクライアント116に送信されないようにルールまたはタイムスタンプを用いてそのようになされると、「デプロイ済み−制限あり」と見なされてもよい。ルールおよび/またはタイムスタンプが満たされると、特徴204またはホットフィックス206は、「デプロイ済み−制限あり」から「デプロイ済み」に移行してもよく、その時点で、全てのルールおよびタイムスタンプが除去される。
また、ホットフィックス206は、ホットフィックス206における設計データアイテムのうちの1つ以上が、ホットフィックス206をデプロイする対象であるターゲット特徴204におけるデータ変更と矛盾する場合に、ホットフィックス206が特徴204に伝搬されると、「矛盾している」と見なされてもよい。「矛盾している」と見なされると、ホットフィックス206はデプロイされない。矛盾が解消できると、ホットフィックス206はペンディング状態に移行することができる一方、そうでなければ、ホットフィックス206は破棄済みと見なされる。破棄済みと見なされるホットフィックス206は、廃棄されており、将来的なリリースについては無視される。また、ホットフィックス206を破棄済み状態に移行させることにより、他の特徴204に伝搬された当該ホットフィックス206の全てのペンディングインスタンスおよび矛盾しているインスタンスは破棄される。「デプロイ済み」のように、「破棄済み」は、最終的な状態であると考えられ、ホットフィックス206は、破棄されるとデプロイされない。
特徴設計データは、さまざまなアプリケーション、プログラミングインターフェイスおよび形式を使用して、さまざまな好適なフォーマットで、収集されて、データ設計ツール102に入力されてもよい。限定ではなく説明の目的で、図4に示される一組の実施形態では、スプレッドシートフォーマットを使用することができる。場合によっては、環境要素の特定のクラスのための設計データは、複数のスプレッドシートに散在してもよく、データが適用されている特定のクラスは、スプレッドシートファイルの第1のセルにおいて確認される。たとえば、建物に適用可能な設計データは、「建物データ」クラスに属していてもよく、単一のスプレッドシート400が使用して、当該クラスのための設計データを含む各スプレッドシートファイルを一覧表示してもよい。そして、各々が「建物データ」クラスに属しているとされる下位スプレッドシート404aおよび404bは、環境における建物データ要素のための特定の設計データを含んでもよく、この特定の設計データは、それがインスタンス化される環境のレベル、固有のアセット識別子、ユーザが要素を購入できるか否か、コスト、および建物データ要素に関連付けられた他のパラメータを含む。
特徴スプレッドシートのフルセットがバッチとしてロードされると、クラスに適用可能な全ての設計データは、次いで、各スプレッドシートにおいて指定されたクラスに基づいて照合されることができる。場合によっては、新たな特徴をアップロードする際に、設計データのうちの一部または全てが前のバージョン(デフォルトで、直近の特徴204およびホットフィックス206)から継承されてもよく、新たにアップロードされた特徴設計データが増加する、または当該データに上書きされる。ホットフィックス206設計データは、特徴204設計データと同様に集められてもよい。ホットフィックス206設計データは、既存の要素記録または追加される新たな記録の特定のデータフィールドに対する変更を含んでもよい。既存の記録を修正する際には、キーフィールドおよび修正すべきフィールドのみを入力する必要がある一方、変更されないフィールドは、空白のままであってもよく、または所望の変更がフィールドをクリアするものである場合には、「ヌル」文字列が当該フィールドに入力されてもよい。また、バリアント208設計データは、ホットフィックス206設計データの構築態様と同様のスプレッドシートフォーマットを使用して集められてもよい。たとえば、特定の建物アセットが特定の領域によって異なる場合、関連するスプレッドシート404cを使用して建物データに対するバリアントデータ入力を作成してもよく、ここでは、たとえばレベル1mage academyは、ベースライン「mage_academy_1」要素の代わりに、「jp_mage_academy_1」(たとえば、日本向け)アセットを使用する。
設計データツール102は、たとえば特徴管理、ホットフィックス管理、バリアント管理、アプリケーションデプロイメント管理、リリース管理、フル環境管理、および他の同様の機能などの機能を提供する。設計データツール102の特徴管理機能は、たとえば、特徴リスト/スプレッドシートを検証してフォーマットパラメータとの整合性を保証すること、スプレッドシート間の相違点を示すレポートを生成してある設計データセットから次の設計データセットへの変更を確認すること、特徴設計データセットを設計データツールにアップロードすること、場合によっては、デプロイされていない設計データのツール内編集、および他の同様の機能を含み得る。設計データツール102のホットフィックス管理機能は、たとえば、ホットフィックス設計データリスト/スプレッドシートを検証すること、相違点レポートを生成してホットフィックス変更を確認すること、ホットフィックスデータを設計データツールにアップロードすること、アップロードされたホットフィックスをペンディング特徴リリースに伝搬させること、ホットフィックス間の矛盾を管理すること、デプロイされていないホットフィックスデータのツール内編集、および他の同様の機能を含み得る。設計データツール102のバリアント管理機能は、たとえば、バリアント設計データを検証すること、相違点レポートを生成してバリアント変更を確認すること、バリアント設計データを新たなバリアントまたは既存のバリアントに対する修正としてデータツールにアップロードすること、バリアントデータのツール内編集、各バリアントを規定するルールを管理すること、および他の同様の機能を含み得る。
また、設計データツール102を使用して設計データのデプロイメントを管理してもよく、設計データのデプロイメントは、たとえば、CDN112への本番データパッケージのデプロイメント、およびテスト用の他の非本番環境にデータをデプロイすることを含む。また、設計データツール102を使用してたとえばリリース管理を支援してもよく、リリース管理は、デフォルトリリースおよびタイムスタンプ/ルールベースのリリース、1つ以上の環境へのアプリケーション全体のフルデプロイメント、データのみのデプロイメント、ならびに他の同様の機能を含む。
図5〜図13は、設計データを収集および管理するために使用され得る設計データツール102からのさまざまなスクリーンキャプチャを示す。アプリケーションのさまざまな実現例では、特に図5を参照して、設計データツールコンソール500は、設計データのさまざまなバージョン508の各々がデプロイされたかまたはデプロイメントを待っている環境504を識別する。
図6は、特徴データリスト/スプレッドシートのアップロードを容易にする設計データツール102アプリケーションからのスクリーンキャプチャ600の一例である。アップロードごとに新たな連続する主バージョン番号604を生成することができる。各々の新たな特徴204は、ベースラインとして最新の(たとえば、最上位にバージョン化された特徴204の最上位にバージョン化されたホットフィックス206までの)特徴/ホットフィックスバージョン608からデータを継承してもよく、説明612でタグ付けすることができる。「バリデート」関数は、選択されたスプレッドシートの全体的なデータ妥当性についてのレポート616を生成する。レポート616は、たとえば、第1のセルにおいて指定される状態データクラスの妥当性、スプレッドシート列/構造が定義されたスキーマに対応することの確認、フィールド入力のデータタイプの確認、重複する入力の除去またはフラグ立て、データモデルに定義された任意のカスタムデータ検証、および他の同様のレポートデータを含んでもよい。「ディフ」関数は、他のバージョンに対する選択されたスプレッドシートのデータ比較を可能にし、それによって、どの記録が追加または変更されているかを概説する。(バリデート関数による)構造的妥当性および(ディフ関数による)所望の変更が確認されると、スプレッドシートは設計データツール102にアップロードされる。
設計データツール102は、環境内の既存の設計要素に関連付けられたホットフィックス206データのアップロードも容易にする。図7は、設計データツール102内のホットフィックス管理画面のスクリーンキャプチャ700の一例である。新たなホットフィックス206が入力されると、各ホットフィックス206について当該特徴204のもとで新たな連続する副バージョン番号704を生成することができる。ホットフィックス206は、ホットフィックス206が適用される特徴204(前のホットフィックス206を含む)から継承することができ(708)、同一の検証/ディフ/アップロード機能が適用される。また、ホットフィックス206は、既存の特徴204に自動的に順方向に伝搬してもよい。たとえば、特徴バージョン90,91,92および93が設計データツール102内に存在するとする。したがって、特徴91は、既に適用された1つのホットフィックスを91.1として有することができる。さらに、特徴92は、既に適用された2つのホットフィックス(92.1および92.2)を有することができる。新たなホットフィックスが特徴91に適用可能である。新たなホットフィックスバージョン番号は、91.2であると考えられ、これは、二度持ち越されてホットフィックス92.3および93.1を作成することができる。この場合、ホットフィックス91.2は、ルートホットフィックスであり、92.3および93.1は、ルートホットフィックス91.2に基づいたさらなる変更を有するホットフィックスである。特徴管理セクションで説明した継承パターンのもとでホットフィックス206がホットフィックスデータを考慮に入れた後で、特徴204はアップロードされる。伝搬ホットフィックス206が作成されると、各々の順方向特徴204に対して矛盾検出が適用される。伝搬ホットフィックス206が、ルートホットフィックス206によって適用されるデータ変更とは異なるデータ変更を生じさせる場合、それらの行は、矛盾が生じているとして表示され得て、伝搬ホットフィックス206は、「矛盾」状態に入る。
限定ではなく説明の目的で、ルートホットフィックス91.5が「mage_academy」行の「build_time」を600から900に変更すると、ルートホットフィックス91.5は、特徴92に伝搬されて伝搬ホットフィックス92.1を作成する。しかし、特徴92では、「mage_academy」の「build_time」は、1200に設定されている。「build_time」は、ルートホットフィックス91.5では600から900に変化するが、伝搬ホットフィックス92.1では1200から900に変化するので、当該行は、矛盾が生じているとしてフラグが立てられ、伝搬ホットフィックス92.1は、「矛盾」状態に入る。矛盾が生じている行は、所望のデータ変更を選択する(順方向特徴変更を保持する、またはそれに伝搬変更を上書きする)ことによって設計データツール102において解消されてもよい。伝搬ホットフィックス206における全ての矛盾が解消されると、「ペンディング」状態に戻る。新たなバージョンが矛盾したバージョンから継承する場合、矛盾は順方向に持ち越される。ルートホットフィックス206が破棄されると、依然としてペンディング状態にある全てのその伝搬ホットフィックス206も破棄され得る。
図8aおよび図8bは、個々のルールがリスト804として追加されたり、修正されたり、検討されたりし得るルール管理画面800、および、ルールに名前が付けられて(812)、特定のバリアント208に割り当てられ得るルール編集画面808の一例を示す。ルールは、好適なスクリプト言語(たとえば、Luaなど)を使用して、論理式および予め定義された選択を使用して、ウィジェットとして構築されてもよい。
図9は、より複雑なルールにおいて使用できるようにユーザがウィジェットを設計して挿入することができるウィジェット画面900を示す。たとえば、結果として生じるルール912スニペットとともに公知のデータ要素904(たとえば、クライアント領域)およびブール演算子908を使用して、仮想環境のユーザが日本にいるか否かを調べるウィジェットが作成されてもよい。場合によっては、ルールスクリプトコードも手動で入力されてもよい。
ここで図10を参照して、設計データツール102は、代替の静的データ変更を自動的に生成するために設計データツール102が使用することができるスタンディングデータ置換定義としてのデータバリアント208の作成および管理を容易にするバリアント管理画面1000も含んでもよい。これらの変更は、上記のように、予め定義されたバリアントルールに基づいてクライアント116にデプロイされてもよい。特徴204およびホットフィックス206とは異なって、バリアント208は、データバージョン番号によって管理する必要はない。それどころか、バリアント208は、デプロイメント時にトリガされるスタンディングフックとして動作することができ、CDN112にデプロイされる各々の特徴/ホットフィックスデータパッケージに対するデータ変更を生成する。クライアント116は、バージョン化サービス106を介してそのデータバージョンを確認すると、ベース特徴/ホットフィックスデータとともに、適用可能な変更の適切なサブセットを検索するように誘導され、置換物がクライアント116にデプロイされる。バリアント208データの各セットについてのメタデータ1004は、たとえば、数値ID、アドミニストレータによって供給されるバリアント名、および当該バリアント208に結合されるルールセットを含み得る。他のメタデータも可能である。各バリアント208の数値IDは、変更に矛盾が生じている場合には、その優先順位も表すことができる。複数のバリアント208が特定のクライアント116に適用され、それらのバリアント208が同一のデータフィールドを変更するであろう場合には、最下位の数値IDを有するバリアント208が優先され得る。バリアント管理画面1000は、リストを上または下にバリアント208を再順序付けする(1008)(したがって、それらを新たなIDに再割り当てする)ことを可能にし、矛盾解消に対する制御を容易にすることができる。「ディフ」関数は、特定のバリアントまたはルールセットを適用してもしなくてもバージョン比較を可能にし、これにより、ユーザは、適用されているデータ変更を確認することができる。「エクスポート」関数は、選択されたバリアントのデータセットを外部ファイルに保存する機能とともに、当該データの閲覧を可能にする。「修正」関数は、(たとえば、スプレッドシートアップロードを使用して)バリアントの名前およびルールセットならびにバリアントデータ自体の編集を可能にする。
図11は、特定のルール1108および対応する設計データファイル/スプレッドシート1112を有する、新たなバリアントが編集および/または作成されてバリアントID1104を割り当てられ得る設計データツール102のバリアント編集画面1100の一例を示す。同様の検証/ディフ/アップロード機能も提供される。
また、設計データツール102は、CDN112およびライブ配信のための仮想環境サーバへの、または場合によっては、選択された非本番開発もしくはテスト環境への、特定のデータバージョンのデプロイメントを管理する。いくつものリリースルールがデプロイメントに結合されてもよく、バリアントルールがバリアント208に適用されるのと同様に定義され、決定される。場合によっては、リリースタイムスタンプがデプロイメントに関連付けられてもよく、ルールとともに、データがクライアント116にデプロイされる時間および条件を定義してもよい。図12は、特徴204およびホットフィックス206をデプロイするために使用される設計データツール102の特徴/ホットフィックスデプロイ画面1200の一例を示す。この場合、画面1200は、たとえば、特徴バージョン番号1204、それがデプロイされる環境1208、状態1212、および同一の環境への最近のデプロイメントの履歴1216を含み得る。
以下のステップは、本番(ライブ)環境にリリースをデプロイするためのプロセスの一例を概説する。まず、選択された特徴204またはホットフィックス206のためのベースデータがパッケージングされ、局所的にステージされる。次いで、各バリアントデータセットがパッケージングされ、一次データパッケージ下のサブフォルダにデプロイされ、これは、構文解析のためにクライアントが必要とするであろう、当該バリアント208に適用可能な優先順位メタデータを含む。次いで、ステージされたデータ(「フルデータパッケージ」)が、CDN112にアップロードされ、バージョン番号によって索引付けされる。場合によっては、全ての現在のバリアント208のスナップショットが、履歴バリアントテーブルに保持され、特徴/ホットフィックスバージョン番号を使用してバージョン化されてもよく、これにより、時間とともにバリアント208が修正されるときに履歴的に見て正確なバリアントマッピングを保持することができる。次いで、本番環境サーバデータベースが、新たなバージョン化されたデータで更新され、特徴/ホットフィックスは、設計データツール102における「デプロイ済み」状態に入るか、または、リリースルールまたはタイムスタンプがデプロイメントに結合されている場合には「デプロイ済み−制限あり」状態に入る。新たにリリースされた設計データを受信するようにバージョン化サービス106に連絡するために、RTEブロードキャストが(適用可能であればリリースタイムスタンプに従ってスケジューリングされ、またはそうでなければすぐに)全てのクライアント116に送信される。フルデータパッケージをクライアント116上の適切なフォルダ構造に直接ダウンロードすることができ、次いで、クライアント116は、データパッケージを直接構文解析してロードする。
非本番環境へのデプロイメントでは、わずかに異なるワークフローが使用される。特徴/ホットフィックスデータおよびバリアントがフルデータパッケージに集められて局所的にステージされ、ライブデプロイメントに関して言えば、さらなるサーバデータパッケージが集められてステージされ、フルデータパッケージおよびサーバパッケージが所望の環境に配信されて、直接適切なフォルダ構造にされる。次いで、ローカルサーバデータベースが、テストインストール時に実行されるように構成されたサーバ負荷APIを介して、適切なバージョン化されたデータで更新される。
図13は、設計データツール102のリリース管理画面1300を示す。この画面を使用して、特徴/ホットフィックスバージョンがクライアント116にリリースされ、事実上、「ライブ」であると考えられるデータバージョンを選択する。リリースを修正する際には、「デプロイ済み」状態の単一の特徴/ホットフィックスが一次リリースバージョンとして選択され、いくつもの「デプロイ済み−制限あり」デプロイメントバージョンも選択されてもよく、リリースおよびバージョンの階層1308の中に何があるかということの概要1304を提供する。これらは、優先順位ID1312(最後の「デプロイ済み」バージョン)を割り当てられ、バリアント208と同様に決定される。各バージョンについてのリリースルールおよびタイムスタンプは、順番に評価され、最下位のIDが優先される。データバージョンロールバックが必要であると考えられる場合には、前のバージョンが選択されてもよい。リリース管理画面1300は、ユーザが本番および非本番環境のための接続情報およびメタデータを構成することを可能にする。
次いで、クライアント116は、ログイン時またはそのように促されるたびに、RTEブロードキャストを介して現在のデータバージョンを確認してもよい。これは、以下の態様で要求を処理するバージョン化サービス106に対する要求を介して行われる。まず、各リリースルールおよびタイムスタンプを評価して、要求を行っているクライアント116に適用可能なリリースバージョンを判断し、各バリアントルールを評価してその適用可能性を判断する。次いで、適切なデータパッケージ(ベースデータと、このクライアントに適用可能なそれらの特定のバリアントサブフォルダのみとを含む)を参照するマニフェストが生成され、クライアント116に送信される。各々のバージョン化サービス106応答は、適用可能なユーザメタデータとともにログ記録され、問題解決の目的でのクライアントのデータセット履歴へのバックトレースを可能にする。
図14は、本発明の特定の実施形態に係る仮想環境のための設計データの設計およびデプロイメントのためのワークフローおよび役割/役目フローチャートの一例を示す。設計/ライブオペレーション(Op)チーム1400は、指定のスプレッドシートまたは他の好適な形式もしくはフォーマットでベースラインデータを集めて、ベースラインデータをベースラインデータアドミニストレータ(「BDA」)1404に送信する。また、設計/ライブOpチーム1400は、エクセルスプレッドシートまたは他の適切な形式でバリアントデータを集めて、バリアントデータをバリアントデータアドミニストレータ(「VDA」)1408に送信する。BDA1404は、設計データツール102を介してスプレッドシートをアップロードし、成功を確認またはエラーを分析して、必要に応じて設計データツール102からバージョン間差異を取得し、主バージョン間の変化を確認する。VDA1408は、設計データツール102におけるバリアントルールセットを維持し、ルールセットを作成して適用可能なスプレッドシートをアップロードし、供給されたルールセットからバリアントバージョンを生成し、必要に応じて設計データツール102からバリアント間差異を取得し、バリアントによって適用される変化を確認し、正確さに関してデータバリアント矛盾を分析する。ライブデータアドミニストレータ(「LDA」)1412は、データデプロイメントを連係し、BDA1404およびVDA1408を用いてバージョンの準備完了を確認し、データパッケージをCDN112にデプロイする。
図15は、本明細書に記載されている技術を実現するために使用され得るシステム1500の一実施形態のより詳細な図である。図1を参照して説明したように、設計データツール102は、仮想環境をカスタマイズするために使用される設計データをユーザが入力、管理およびデプロイするためのウェブベースのアプリケーションとして実現されてもよい。集中型サーバ1504(または、場合によっては、サーバのアレイ)は、バージョン化サービス106をホストし、設計データツール102によって使用されるさまざまなデータを格納する。上記のように、設計/ライブオペレーションチーム1400は、ベースラインデータ1508およびバリアントデータ1512とともに設計データツール102を使用して、バージョン化されたベースラインデータ1516および関連付けられたバリアントデータ1520のセットを作成し、このセットは、1つ以上のルール1524も含んでもよい。ベースラインデータ1508、バリアントデータ1520およびルール1524は、バージョン化サービス106によって結合されて、デプロイされたバージョン1528にされ、このデプロイされたバージョン1528の各々は、1つ以上のバリアント1532を有する。次いで、クライアント116は、(たとえば、1つ以上のクライアントパラメータまたは特徴に基づいて)CDN112から特定のバージョンおよび適切なバリアントを検索することができ、バージョン化サービス106からバージョン確認情報を検索することもできる。
図16は、後続のバージョンで使用され得るベースライン設計データセットを作成するための一般的なプロセスを示すフローチャートである。ステップ1600において、設計チームのメンバは、指定のフォーマット(たとえば、スプレッドシートまたは他の好適なフォーマット)でベースライン設計データを集める。ベースライン設計データを含むスプレッドシートを検証のためにBDAに送信し(ステップ1604)、BDAは、上記のバリデートおよびディフ関数を使用して、スプレッドシートが適切な形式であることを確認する(ステップ1608)。ベースライン設計データが適切にフォーマットされて確認されると(判断ステップ1612)、ベースライン設計データは、受け入れられて自動的にバージョン番号を割り当てられる(ステップ1616)。データは、検証ステップに合格しなければ、ベースライン設計データにおける問題を解決するために設計チームに戻される。
図17は、バリアントデータを作成するためのプロセスを示すフローチャートである。ベースライン設計データ作成プロセスと同様に、ステップ1700において、設計チームのメンバは、新たなバリアントのために指定のフォーマット(たとえば、スプレッドシートまたは他の好適なフォーマット)でバリアント設計データを集める。バリアント設計データを含むスプレッドシートを検証のためにVDAに送信する(ステップ1704)。次いで、VDAは、新たなルールが新たなバリアントにおいて実行されているか否かを判断する(判断ステップ1708)。新たなルールが実行されている場合、当該新たなルールを作成する(ステップ1712)。いずれにしても、プロセスは、検証プロセスに進み、VDAは、上記のバリデートおよびディフ関数を使用して、スプレッドシートが適切な形式であることを確認する(ステップ1716)。バリアント設計データが適切にフォーマットされて確認されると(判断ステップ1720)、バリアント設計データがアップロードされ、新たなバリアントが作成される(ステップ1724)。データは、検証ステップに合格しなければ、バリアントがデプロイメントに向かっていくことができるように問題を解決するために設計チームに戻される。
図18は、新たなバージョンを作成してデプロイするためのプロセスを示すフローチャートである。最初に、LDAは、BDAおよびVDAと連係して(ステップ1800)、バージョンをサポートするデータがデプロイできる状態にあることを確認する。次いで、LDAは、ベースラインバージョンと、当該バージョンを備えることになるバリアントのサブセットとを選択する(ステップ1804)。次いで、LDAは、選択されたバージョンおよび任意の関連付けられたバリアントをCDAのためのデータパッケージにデプロイする(ステップ1808)。ベースラインバージョンは、デプロイ済みとして表示され(ステップ1812)、バリアントデータは、当該バージョンに適用されるものとして記録される(ステップ1816)。次いで、LDAは、新たにデプロイされた設計データパッケージを指し示すようにライブバージョンを更新し(ステップ1820)、クライアントに対するRTEブロードキャストを開始し(ステップ1824)、次いで、クライアントによる設計データパッケージの検索を開始する(ステップ1828)。
BDAおよびVDAチームが、コードベース全体の完全なリリースを必要とすることなく、新たなエクスペリエンスを作成し、前にリリースされたバージョンを修正または強化することができる設計データを作成してデプロイすることを可能にすることによって、新たなエクスペリエンスを、ほぼ連続的に、以前は許容されていなかった粒度のレベルで、ユーザに提供することができる。
本明細書に記載されている主題および動作の実現例は、デジタル電子回路で実現されてもよく、または本明細書に開示されている構造およびそれらの構造的等価物を含むコンピュータソフトウェア、ファームウェアもしくはハードウェアで実現されてもよく、またはそれらのうちの1つ以上の組み合わせで実現されてもよい。本明細書に記載されている主題の実現例は、データ処理装置による実行のために、またはデータ処理装置の動作を制御するためにコンピュータ記憶媒体上に符号化された1つ以上のコンピュータプログラム、すなわちコンピュータプログラム命令の1つ以上のモジュールとして実現されてもよい。代替的にまたは加えて、プログラム命令は、データ処理装置による実行のために好適な受信機装置に送信される情報を符号化するように生成される、人為的に生成された伝搬信号(たとえば、マシンによって生成された電気信号、光信号または電磁信号)上に符号化されてもよい。コンピュータ記憶媒体は、コンピュータ読取可能記憶装置、コンピュータ読取可能記憶基板、ランダムもしくはシリアルアクセスメモリアレイもしくはデバイス、またはそれらのうちの1つ以上の組み合わせであってもよく、またはそれらに含まれてもよい。さらに、コンピュータ記憶媒体は、伝搬信号ではないが、人為的に生成された伝搬信号に符号化されたコンピュータプログラム命令の送信元または宛先であってもよい。また、コンピュータ記憶媒体は、1つ以上の別々の物理的コンポーネントまたは媒体(たとえば、複数のCD、ディスクまたは他の記憶装置)であってもよく、またはそれらに含まれてもよい。
本明細書に記載されている動作は、1つ以上のコンピュータ読取可能記憶装置に格納されるかまたは他のソースから受信されたデータに対してデータ処理装置によって実行される動作として実現されてもよい。
「データ処理装置」という用語は、データを処理するための全ての種類の装置、デバイスおよびマシンを包含し、一例として、プログラマブルプロセッサ、コンピュータ、システムオンチップ、または複数のこれら、または上記の組み合わせを含む。装置は、特殊用途論理回路(たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路))を含んでもよい。また、装置は、ハードウェアに加えて、対象のコンピュータプログラムのための実行環境を作成するコード(たとえば、プロセッサファームウェア、プロトコルスタック、データベース管理システム、オペレーティングシステム、クロスプラットフォームランタイム環境、バーチャルマシン、またはそれらのうちの1つ以上の組み合わせを構成するコード)を含んでもよい。装置および実行環境は、ウェブサービス、分散コンピューティングおよびグリッドコンピューティングインフラストラクチャなどのさまざまな異なるコンピューティングモデルインフラストラクチャを実現することができる。
コンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、スクリプトまたはコードとしても知られている)は、コンパイラ型またはインタプリタ型言語、宣言型または手続き型言語を含む任意の形態のプログラミング言語で書き込まれてもよく、スタンドアロンプログラム、または、コンピューティング環境での使用に適したモジュール、コンポーネント、サブルーチン、オブジェクトもしくは他のユニットを含む任意の形態でデプロイされてもよい。コンピュータプログラムは、ファイルシステムにおけるファイルに対応してもよいが、対応していなくてもよい。プログラムは、他のプログラムもしくはデータ(たとえば、マークアップ言語ドキュメントに格納された1つ以上のスクリプト)を保持するファイルの一部に格納されてもよく、対象のプログラムに専用の単一のファイルに格納されてもよく、または複数の連係されたファイル(たとえば、1つ以上のモジュール、サブプログラムもしくはコードの部分を格納するファイル)に格納されてもよい。コンピュータプログラムは、1つのコンピュータ、または、一箇所に位置するかまたは複数の箇所に分散されて通信ネットワークによって相互接続される複数のコンピュータ上で実行されるようにデプロイされてもよい。
本明細書に記載されているプロセスおよび論理フローは、入力データで動作して出力を生成することによって動作を行うように1つ以上のコンピュータプログラムを実行する1つ以上のプログラマブルプロセッサによって実行されてもよい。また、プロセスおよび論理フローは、特殊用途論理回路(たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路))によって実行されてもよく、装置も特殊用途論理回路(たとえば、FPGA(フィールドプログラマブルゲートアレイ)またはASIC(特定用途向け集積回路))として実現されてもよい。
コンピュータプログラムの実行に適したプロセッサは、一例として、汎用マイクロプロセッサおよび特殊用途マイクロプロセッサ、ならびにあらゆる種類のデジタルコンピュータの任意の1つ以上のプロセッサを含む。一般に、プロセッサは、リードオンリメモリまたはランダムアクセスメモリまたはそれら両方から命令およびデータを受信する。コンピュータの不可欠な要素は、命令に従って動作を実行するためのプロセッサと、命令およびデータを格納するための1つ以上のメモリデバイスとである。一般に、コンピュータは、データを格納するための1つ以上の大容量記憶装置(たとえば、磁気ディスク、光磁気ディスク、光ディスクもしくはソリッドステートドライブ)も含み、または1つ以上の大容量記憶装置からデータを受信したり、1つ以上の大容量記憶装置にデータを転送したり、1つ以上の大容量記憶装置に対してデータを受信および転送したりするように動作可能に結合される。しかし、コンピュータは、このような装置を有していなくてもよい。さらに、コンピュータは、別のデバイス(たとえば、ほんの数例を挙げると、携帯電話、パーソナルデジタルアシスタント(PDA)、携帯オーディオもしくはビデオプレーヤ、ゲーム機、グローバルポジショニングシステム(GPS)受信機、または携帯型記憶装置(たとえば、ユニバーサルシリアルバス(USB)フラッシュドライブ))に組み込まれてもよい。コンピュータプログラム命令およびデータの格納に適したデバイスは、全ての形態の不揮発性メモリ、媒体およびメモリデバイスを含み、一例として、半導体メモリデバイス(たとえば、EPROM、EEPROMおよびフラッシュメモリデバイス)、磁気ディスク(たとえば、内部ハードディスクまたはリムーバブルディスク)、光磁気ディスク、ならびにCD−ROMおよびDVD−ROMディスクを含む。プロセッサおよびメモリは、特殊用途論理回路によって補完されてもよく、または特殊用途論理回路に組み入れられてもよい。
ユーザとの対話を提供するために、本明細書に記載されている主題の実現例は、ユーザに情報を表示するための表示装置(たとえば、CRT(陰極線管)またはLCD(液晶ディスプレイ)モニタ)と、ユーザがコンピュータに入力を提供することができるキーボードおよびポインティングデバイス(たとえば、マウス、トラックボール、タッチパッドまたはスタイラス)とを有するコンピュータ上で実現されてもよい。ユーザとの対話を提供するために他の種類のデバイスが使用されてもよく、たとえば、ユーザに提供されるフィードバックは、任意の形態の感覚フィードバック(たとえば、視覚フィードバック、聴覚フィードバックまたは触覚フィードバック)であってもよく、ユーザからの入力は、音響入力、音声入力または触覚入力を含む任意の形態で受信されてもよい。また、コンピュータは、ユーザが使用するデバイスにドキュメントを送信したり当該デバイスからドキュメントを受信したりすることによって、たとえばウェブブラウザから受信された要求に応答してユーザのクライアントデバイス上でウェブページをウェブブラウザに送信することによって、ユーザと対話してもよい。
本明細書に記載されている主題の実現例は、バックエンドコンポーネント(たとえば、データサーバ)を含むコンピューティングシステムで実現されてもよく、またはミドルウェアコンポーネント(たとえば、アプリケーションサーバ)を含むコンピューティングシステムで実現されてもよく、フロントエンドコンポーネント(たとえば、ユーザが本明細書に記載されている主題の実現例と対話することができるグラフィカルユーザインターフェイスまたはウェブブラウザを有するクライアントコンピュータ)を含むコンピューティングシステムで実現されてもよく、1つ以上のこのようなバックエンドコンポーネント、ミドルウェアコンポーネントまたはフロントエンドコンポーネントの任意の組み合わせを含むコンピューティングシステムで実現されてもよい。システムのコンポーネントは、デジタルデータ通信の任意の形態または媒体(たとえば、通信ネットワーク)によって相互接続されてもよい。通信ネットワークの例としては、ローカルエリアネットワーク(「LAN」)およびワイドエリアネットワーク(「WAN」)、インターネットワーク(たとえば、インターネット)、ならびにピア・トゥ・ピアネットワーク(たとえば、アドホックピア・トゥ・ピアネットワーク)が挙げられる。
コンピューティングシステムは、クライアントおよびサーバを含んでもよい。クライアントおよびサーバは、一般に互いに離れており、典型的には通信ネットワークを介して対話する。クライアントとサーバとの関係は、コンピュータプログラムがそれぞれのコンピュータ上で実行されて互いにクライアント・サーバ関係を有することによって生じる。いくつかの実現例では、サーバは、(たとえば、クライアントデバイスと対話するユーザに対してデータを表示して、ユーザからユーザ入力を受信する目的で)データ(たとえば、HTMLページ)をクライアントデバイスに送信する。クライアントデバイスにおいて生成されたデータ(たとえば、ユーザ対話の結果)は、サーバにおけるクライアントデバイスから受信されてもよい。
本明細書は、多くの具体的な実現例の詳細を含んでいるが、これらは、いかなる発明またはクレームされ得るものの範囲も限定するものとして解釈されるべきではなく、むしろ特定の発明の特定の実現例に特有の特徴を説明するものとして解釈されるべきである。別々の実現例の文脈において本明細書に記載されている特定の特徴は、単一の実現例において組み合わせて実現されてもよい。逆に、単一の実現例の文脈において記載されているさまざまな特徴は、複数の実現例において別々に、または任意の好適なサブコンビネーションで実現されてもよい。さらに、特徴は、特定の組み合わせで動作するものとして上記され、最初はそのようにクレームされ得るが、クレームされている組み合わせからの1つ以上の特徴は、場合によっては当該組み合わせから削除されてもよく、クレームされている組み合わせは、サブコンビネーションまたはサブコンビネーションの変形例に向けられてもよい。
同様に、動作は特定の順序で図面に記載されているが、これは、このような動作が、望ましい結果を達成するために、示されている特定の順序またはシーケンシャルな順序で実行されなければならないものとして理解されるべきではなく、示されている全ての動作が実行されなければならないものとして理解されるべきでもない。特定の状況では、マルチタスクおよび並列処理が有利である場合もある。さらに、上記の実現例におけるさまざまなシステムコンポーネントの分離は、全ての実現例においてこのような分離が必要であるように理解されるべきではなく、記載されているプログラムコンポーネントおよびシステムは、一般に、単一のソフトウェア製品に統合されるか、または複数のソフトウェア製品にパッケージングされてもよいということが理解されるべきである。
このように、主題の特定の実現例について説明してきた。他の実現例も以下の特許請求の範囲の範囲内である。場合によっては、特許請求の範囲に記載されている動作は、異なる順序で実行されても依然として望ましい結果を達成することができる。また、添付の図面に記載されているプロセスは、望ましい結果を達成するために、示されている特定の順序またはシーケンシャルな順序を必ずしも必要としない。特定の実現例では、マルチタスクおよび並列処理が有利である場合もある。

Claims (21)

  1. 方法であって、
    仮想環境のための複数の設計パラメータを受信するステップを備え、前記仮想環境は、前記設計パラメータによって定義される要素と、一次関数コードベースとを備え、前記方法はさらに、
    1つ以上のコンピュータプロセッサが、前記仮想環境の1つ以上のバージョンを作成するステップを備え、各バージョンは、前記一次関数コードベースから独立した前記設計パラメータのサブセットを備え、前記方法はさらに、
    前記1つ以上のコンピュータプロセッサが、前記1つ以上のバージョンのうちの1つを前記仮想環境のユーザに割り当てるステップと、
    前記一次関数コードベースの配信を必要とすることなく、前記1つ以上のバージョンのうちの前記1つを前記仮想環境の前記ユーザに配信するステップとを備える、方法。
  2. 前記1つ以上のバージョンの前記配信は、前記1つ以上のバージョンのうちの前記1つに関連付けられた前記ユーザからの要求に応答する、請求項1に記載の方法。
  3. 前記1つ以上のバージョンの前記配信は、前記ユーザがクライアントデバイス上で前記仮想環境をインスタンス化したことに応答する、請求項1に記載の方法。
  4. 前記仮想環境は、オンラインマルチプレイヤゲームのための設定を提供する、請求項1に記載の方法。
  5. 前記ユーザの割り当てられたバージョンに従って各ユーザが前記仮想環境と対話するように、前記1つ以上のバージョンのうちの後続のバージョンを前記仮想環境の後続のユーザに割り当てるステップをさらに備える、請求項1に記載の方法。
  6. 前記1つ以上のバージョンのうちの少なくとも1つは、前のバージョンから設計パラメータのサブセットを継承する、請求項1に記載の方法。
  7. 前記設計パラメータは、新たな設計データおよび既存の設計データに対する変更のうちの1つ以上を備える、請求項1に記載の方法。
  8. 各バージョンの1つ以上のバリアントを作成するステップをさらに備える、請求項1に記載の方法。
  9. 前記1つ以上のバージョンのうちの前記1つを前記仮想環境の前記ユーザに配信するステップの前に、1つ以上のリリースルールが満たされたときにのみリリースが行われるように前記1つ以上のバージョンのうちの前記1つを前記ルールに準拠するものとして指定するステップをさらに備える、請求項1に記載の方法。
  10. 前記1つ以上のバージョンのうちの前記1つを前記仮想環境の前記ユーザに配信するステップの前に、前記1つ以上のバージョンのうちの前記1つが前にリリースされたバージョンの設計パラメータと矛盾するか否かを判断し、このような矛盾が解決されたとして指定されるかまたは前記矛盾する設計パラメータが破棄されるまでは前記1つ以上のバージョンのうちの前記1つのリリースを認めないステップをさらに備える、請求項1に記載の方法。
  11. システムであって、
    動作を実行するようにプログラムされた1つ以上のコンピュータプロセッサを備え、前記動作は、
    仮想環境のための複数の設計パラメータを受信するステップを備え、前記仮想環境は、前記設計パラメータによって定義される要素と、一次関数コードベースとを備え、前記動作はさらに、
    1つ以上のコンピュータプロセッサが、前記仮想環境の1つ以上のバージョンを作成するステップを備え、各バージョンは、前記一次関数コードベースから独立した前記設計パラメータのサブセットを備え、前記動作はさらに、
    前記1つ以上のコンピュータプロセッサが、前記1つ以上のバージョンのうちの1つを前記仮想環境のユーザに割り当てるステップと、
    前記一次関数コードベースの配信を必要とすることなく、前記1つ以上のバージョンのうちの前記1つを前記仮想環境の前記ユーザに配信するステップとを備える、システム。
  12. 前記1つ以上のバージョンの前記配信は、前記1つ以上のバージョンのうちの前記1つに関連付けられた前記ユーザからの要求に応答する、請求項11に記載のシステム。
  13. 前記1つ以上のバージョンの前記配信は、前記ユーザがクライアントデバイス上で前記仮想環境をインスタンス化したことに応答する、請求項11に記載のシステム。
  14. 前記仮想環境は、オンラインマルチプレイヤゲームのための設定を提供する、請求項11に記載のシステム。
  15. 前記ユーザの割り当てられたバージョンに従って各ユーザが前記仮想環境と対話するように、前記1つ以上のバージョンのうちの後続のバージョンを前記仮想環境の後続のユーザに割り当てるステップをさらに備える、請求項11に記載のシステム。
  16. 前記1つ以上のバージョンのうちの少なくとも1つは、前のバージョンから設計パラメータのサブセットを継承する、請求項11に記載のシステム。
  17. 前記設計パラメータは、新たな設計データおよび既存の設計データに対する変更のうちの1つ以上を備える、請求項11に記載のシステム。
  18. 各バージョンの1つ以上のバリアントを作成するステップをさらに備える、請求項11に記載のシステム。
  19. 前記1つ以上のバージョンのうちの前記1つを前記仮想環境の前記ユーザに配信するステップの前に、1つ以上のリリースルールが満たされたときにのみリリースが行われるように前記1つ以上のバージョンのうちの前記1つを前記ルールに準拠するものとして指定するステップをさらに備える、請求項11に記載のシステム。
  20. 前記1つ以上のバージョンのうちの前記1つを前記仮想環境の前記ユーザに配信するステップの前に、前記1つ以上のバージョンのうちの前記1つが前にリリースされたバージョンの設計パラメータと矛盾するか否かを判断し、このような矛盾が解決されたとして指定されるかまたは前記矛盾する設計パラメータが破棄されるまでは前記1つ以上のバージョンのうちの前記1つのリリースを認めないステップをさらに備える、請求項11に記載のシステム。
  21. 命令を格納した非一時的なコンピュータ読取可能媒体であって、前記命令は、1つ以上のコンピュータプロセッサによって実行されると、前記コンピュータプロセッサに、
    仮想環境のための複数の設計パラメータを受信する動作を実行させ、前記仮想環境は、前記設計パラメータによって定義される要素と、一次関数コードベースとを備え、前記命令はさらに、前記コンピュータプロセッサによって実行されると、前記コンピュータプロセッサに、
    前記仮想環境の1つ以上のバージョンを作成する動作を実行させ、各バージョンは、前記一次関数コードベースから独立した前記設計パラメータのサブセットを備え、前記命令はさらに、前記コンピュータプロセッサによって実行されると、前記コンピュータプロセッサに、
    前記1つ以上のバージョンのうちの1つを前記仮想環境のユーザに割り当てる動作を実行させ、
    前記一次関数コードベースの配信を必要とすることなく、前記1つ以上のバージョンのうちの前記1つを前記仮想環境の前記ユーザに配信する動作を実行させる、非一時的なコンピュータ読取可能媒体。
JP2019537359A 2017-01-11 2018-01-10 仮想環境のための動的設計データを管理するためのシステムおよび方法 Pending JP2020509792A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762444979P 2017-01-11 2017-01-11
US62/444,979 2017-01-11
PCT/US2018/013084 WO2018132416A1 (en) 2017-01-11 2018-01-10 System and method for managing dynamic design data for a virtual environment
US15/866,682 US20180196666A1 (en) 2017-01-11 2018-01-10 System and method for managing dynamic design data for a virtual environment
US15/866,682 2018-01-10

Publications (1)

Publication Number Publication Date
JP2020509792A true JP2020509792A (ja) 2020-04-02

Family

ID=62783406

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019537359A Pending JP2020509792A (ja) 2017-01-11 2018-01-10 仮想環境のための動的設計データを管理するためのシステムおよび方法

Country Status (6)

Country Link
US (1) US20180196666A1 (ja)
EP (1) EP3568752A1 (ja)
JP (1) JP2020509792A (ja)
CN (1) CN110392880A (ja)
AU (1) AU2018208489A1 (ja)
WO (1) WO2018132416A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11058946B2 (en) * 2017-01-12 2021-07-13 Mz Ip Holdings, Llc System and method for managing event data in a multi-player online game
WO2019190648A1 (en) 2018-03-29 2019-10-03 Mz Ip Holdings, Llc System and method for updating an application client
US20230016152A1 (en) * 2021-07-16 2023-01-19 Niantic, Inc. Reducing latency in anticheat dataflow

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6782374B2 (en) * 1998-12-22 2004-08-24 Accenture Global Services Gmbh System, method and article of manufacturing for a runtime program analysis tool for a simulation engine
US6295513B1 (en) * 1999-03-16 2001-09-25 Eagle Engineering Of America, Inc. Network-based system for the manufacture of parts with a virtual collaborative environment for design, developement, and fabricator selection
US8267767B2 (en) * 2001-08-09 2012-09-18 Igt 3-D reels and 3-D wheels in a gaming machine
US7702723B2 (en) * 2003-08-01 2010-04-20 Turbine, Inc. Efficient method for providing game content to a client
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US20070066403A1 (en) * 2005-09-20 2007-03-22 Conkwright George C Method for dynamically adjusting an interactive application such as a videogame based on continuing assessments of user capability
US20080004094A1 (en) * 2006-06-30 2008-01-03 Leviathan Entertainment, Llc Method and System to Provide Inventory Management in a Virtual Environment
US9731202B2 (en) * 2007-06-26 2017-08-15 Gosub 60, Inc. Methods and systems for updating in-game content
GB0719625D0 (en) * 2007-10-08 2007-11-14 Realtime Worlds Ltd Improved method of creating a computer model of the physical world
US8763090B2 (en) * 2009-08-11 2014-06-24 Sony Computer Entertainment America Llc Management of ancillary content delivery and presentation
US8468542B2 (en) * 2010-03-04 2013-06-18 Microsoft Corporation Virtual environment for server applications, such as web applications
US10096033B2 (en) * 2011-09-15 2018-10-09 Stephan HEATH System and method for providing educational related social/geo/promo link promotional data sets for end user display of interactive ad links, promotions and sale of products, goods, and/or services integrated with 3D spatial geomapping, company and local information for selected worldwide locations and social networking
US9298454B2 (en) * 2013-10-16 2016-03-29 Microsoft Technology Licensing, Llc Using spreadsheets as a basis for enhanced application development
US9323556B2 (en) * 2014-09-30 2016-04-26 Amazon Technologies, Inc. Programmatic event detection and message generation for requests to execute program code
DE112016006734T5 (de) * 2015-04-26 2019-01-03 Intel Corporation Integriertes Android- und Windows-Gerät
US10552183B2 (en) * 2016-05-27 2020-02-04 Microsoft Technology Licensing, Llc Tailoring user interface presentations based on user state
US10194288B2 (en) * 2016-06-12 2019-01-29 Apple Inc. Sticker distribution system for messaging apps

Also Published As

Publication number Publication date
CN110392880A (zh) 2019-10-29
WO2018132416A1 (en) 2018-07-19
AU2018208489A1 (en) 2019-08-29
EP3568752A1 (en) 2019-11-20
US20180196666A1 (en) 2018-07-12

Similar Documents

Publication Publication Date Title
US10503482B2 (en) Object mapping using intrinsic persistence metadata and pattern-based rules for mapping transformation
US11093232B2 (en) Microservice update system
US8805970B2 (en) Automatic management of configuration parameters and parameter management engine
US11157468B2 (en) System for multi-release and parallel development of a database
US20210328864A1 (en) Generating configuration files for configuring an information technology infrastructure
CN108369504A (zh) 被分发到变化拓扑的由模型驱动的更新
US8918709B2 (en) Object templates for data-driven applications
US20060259386A1 (en) Building digital assets for use with software applications
JP2004272908A (ja) システムの設計、展開、管理のフェーズを統合する方法
JP2004272907A (ja) 分散コンピューティングシステムと、分散アプリケーションの自動化された設計、展開、および管理とのためのアーキテクチャ
US7856615B2 (en) Computer method and apparatus for managing software configurations using change flow hierarchies
US9678745B2 (en) Automatic submission of applications to applications stores
US11050625B2 (en) Generating configuration files for configuring an information technology infrastructure
JP2020509792A (ja) 仮想環境のための動的設計データを管理するためのシステムおよび方法
US20200183739A1 (en) Validation of execution plan for configuring an information technology infrastructure
US8407663B2 (en) Upgrading simple applications to full scale solutions
US20220413843A1 (en) Combining model-driven applications and canvas-type applications with application lifecycle management
US9059992B2 (en) Distributed mobile enterprise application platform
CN116028138B (zh) 应用发布方法及装置
US20230116489A1 (en) Migration of software extensions
WO2016011084A1 (en) Methods and apparatus for building and deploying mobile device applications
WO2022211618A1 (en) Automatic testing of interrelated components of a software application
Hsu et al. Program Design in Cloud Platform Based on Prototype Development Approach
Yang et al. API and component based customization of an open source business process management system: UEngine
CN108399323A (zh) 一种参数管理系统及参数管理方法