JP2017215999A - 変換コンテンツ・アウェア・データー・ソース管理 - Google Patents
変換コンテンツ・アウェア・データー・ソース管理 Download PDFInfo
- Publication number
- JP2017215999A JP2017215999A JP2017150802A JP2017150802A JP2017215999A JP 2017215999 A JP2017215999 A JP 2017215999A JP 2017150802 A JP2017150802 A JP 2017150802A JP 2017150802 A JP2017150802 A JP 2017150802A JP 2017215999 A JP2017215999 A JP 2017215999A
- Authority
- JP
- Japan
- Prior art keywords
- data
- source
- code
- data source
- execution target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000013507 mapping Methods 0.000 claims abstract description 100
- 238000003860 storage Methods 0.000 claims description 62
- 238000000034 method Methods 0.000 claims description 53
- 230000015654 memory Effects 0.000 claims description 42
- 230000008569 process Effects 0.000 claims description 33
- 238000006243 chemical reaction Methods 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 5
- 238000013519 translation Methods 0.000 abstract description 2
- 238000013459 approach Methods 0.000 description 20
- 230000007246 mechanism Effects 0.000 description 17
- 238000012545 processing Methods 0.000 description 17
- 239000008186 active pharmaceutical agent Substances 0.000 description 13
- 230000008859 change Effects 0.000 description 8
- 238000011161 development Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 239000000243 solution Substances 0.000 description 6
- 241000288673 Chiroptera Species 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000002085 persistent effect Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000007726 management method Methods 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 239000000470 constituent Substances 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 238000013506 data mapping Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000002347 injection Methods 0.000 description 2
- 239000007924 injection Substances 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000004806 packaging method and process Methods 0.000 description 2
- 238000000844 transformation Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 241000282412 Homo Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000000053 physical method Methods 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/44—Encoding
- G06F8/447—Target code generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
【解決手段】ソース・コード122において言明されるデーター・ソース識別子が、異なる実行ターゲットにおいてデーター・ソース144、146にマッピングする。解決APIを使用して、開発者のソース・コードを変更することなく、連続ターゲット専用に作られた実行可能コードが生成される。編集可能なデーター・ソース・マッピングは、プロジェクト毎であり、ファイルまたはプロジェクト・プロパティに維持され、実行可能コードと共に分散可能ソフトウェア・パッケージに置かれる。ソース−ソース間変換は、フォルダー、ファイル、またはクラウド・コンテナを作るコールを注入する。データー・ソース解決は、データー・ソース識別子を根源とする相対パスに基づくことができる。
【選択図】図1
Description
ューター・プログラムは、追加の処理パワーおよび/または追加のメモリーを利用するために、代わりに複数の装置において実行するように、開発者によって変更できる場合がある。例えば、開発者が、本来1つのデスクトップ・コンピューターにおいて実行するように書かれたプログラムを取り上げ、計算クラスター、または計算クラウドというような1群のコンピューターにおいて代わりに実行させることを望む場合がある。更に一般的には、開発者が、特定の処理ロジックを適用して異なるデーター・ソースを処理することを望むが、各データー・ソースをそのロジックのパラメーターとして明示的に指定したくない場合もある。
を対象にするプログラムを実行させることは、開発者にとって非常に意欲をかき立てることであり得る。本明細書において説明する実施形態は、1つのソース・コード・アルゴリズムを複数の代替計算データー・ソースによって自動的に管理する方法というような、広範囲のデーター集合にアクセスを与えるために、プログラム移植性を高める方法を提供する。
データー・ソースとして言明する(recite)ソース・コードを受ける。第1実行ターゲットを特定した後、この実施形態は、ソース・コードから、第1実行ターゲット専用に作られる第1実行可能コードを自動的に生成する。即ち、第1実行ターゲットにおいて実行するとき、実行可能ファイル(executable)は、第1実行ターゲットのマッピングされたデーター・ソースを、データー・ソース識別子によって特定されるデーター・ソースとして動作する。第1実行ターゲットとは異なるデーター・ソースを有する第2実行ターゲットを特定した後、本実施形態は、自動的に、同じソース・コードから、第2実行ターゲット専用に作られた第2実行可能コードを生成する。即ち、第2実行ターゲットにおいて実行するとき、第2実行可能ファイルは、第1実行ターゲットのデーター・ソースを使用する代わりに、第2実行ターゲットのマッピングされたデーター・ソースを、特定されたデーター・ソースとして動作する。先に注記したように、この移植(port)は、開発者がソース・コードを編集する必要なく、行われる。
to)同じソース・コードからの第2実行可能コードの自動生成が、フォルダー作成コール、クラウド・コンテナ作成コール、またはファイル作成コールというような、ソースの開発者のバージョンにはなかったコールを注入するソース−ソース間変換を必要とするものもある。他のマッピングは、データーベース接続および単なるファイル・ベースのストレージには留まらないものを必要とすることもあり、例えば、ローカル、企業、クラウド・サーバー、または開発サーバーおよび製作サーバーというような、異なるデーター・ベース・サーバーをマッピングすることもある。ファイル・システム(例えば、Windows(登
録商標)NTFS(商標)システム)およびクラウド・ストレージ(例えば、Windows(登録
商標)Azure(商標)ストレージまたは他のクラウド・ストレージ)が、異なる記憶構造
を有するのでもよく、実施形態の中には、これらの構造間でのマッピングに備えるものもある(Microsoft Corporationの商号(mark))。
ーゲットに対応し、例えば、ユニバーサル・リソース識別子を使用する特定のクラウド・データー・ソースまたは特定のクラスター・データー・ソースに対応する。実行ターゲットは、開発者によって指定されてもよく、またはデフォルトとして指定されてもよい。実施形態の中には、データー・ソース解決が、データー・ソース識別子を根源とする相対的パスに基づくことができるものもある。実施形態の中には、開発者からのデーター・ソース・マッピングの変更を受け入れるものもある。
実行ターゲットを解決し、物理的パスを含むデーター・ソース解決を得る。実施形態の中には、実行可能コード・プロデューサーがソース−ソース間トランスレーターを含む場合もある。異なる実施形態が1つ以上の全体的手法を採用するのでもよい。1つの手法では、ローカル装置において、ソース・コードが、指定された実行ターゲットに対する中間コード(IC)または実行可能コード(EC)に変換される。次いで、このICまたはECが展開され、実行ターゲットにおいて実行される。第2の手法では、ソース・コードが最初に実行ターゲットに変換する。この実行ターゲット用に設計されたプロデューサーが、該当するコードを変換する。第3の手法では、データーがコードに対してローカルであるかのように、ソース・コードが変換される。次いで、データーがリモート位置にある環境にこのコードが展開されると、プレタスク(pre-task)がデーターを最初にダウンロードするので、コードがローカル・データーにアクセスすることができる。
のではない。
[0019] データーの急増に直面している分野では、クラスターまたはクラウドにおける分散処理のように、大きく様々なデーター集合の一層高速で強力な処理を利用することが効果的になる。従前からのデスクトップおよび他の単一ノード・コンピューターは、大量のデーターを扱うには、処理パワーおよび容量が比較的限られているので、異なるソースからもっと大きなデーター集合を使用してクラスターまたはクラウドにおいて彼らのデスクトップ・アプリケーションを実行させることを望む開発者や技術者が増えつつある。例えば、開発者が小さいデーターの部分集合を使用してローカル・デスクトップにおいてアルゴリズムを開発し、次いで、この部分集合と同じフォーマットでデーター集合全体を収容するクラスターまたはクラウド用のプログラムにおいてそのアルゴリズムを実行することを望む場合がある。
ドの保守を難しくし、クラスターまたはクラウド採用(adoption)に対する障壁となる。
を埋め込むことをユーザーが回避することを可能にする。プロジェクトが、実行位置(例えば、ローカル、クラスター、クラウド)に依存して、仮想参照を特定のデーター・ソースに自動的にリディレクトすることができる。同様に、ユーザーがデーター・アクセスのためにデーター・プロバイダーを仮想化することができる。次いで、プロジェクトは、所望のデーター・ストレージに依存して、実行可能コードを自動的に個別作成することができる。
である。ソース・コードの保守が一層容易になることができる。これは、複数の実行位置が使用されても、ソース・コードの1つのコピーのみが開発者によって追跡されるからである。実施形態の中には、データー・ソース・マッピングにおいて、物理ソースが1つの場所で特定/更新される場合がある。実行位置を切り替える毎のデーター・ソース変更を回避することによって、実行位置間における移行を一層円滑に行うことができる。
本開示を入手する当業者には想起されようが、 これらも特許請求の範囲の範囲に該当す
ると見なされてしかるべきである。
体的には、多くの実施形態がワークステーションまたはラップトップ・コンピューターにおいて実行することが想起されるかもしれないが、他の実施形態が他の計算デバイスにおいて実行してもよく、そのような任意のデバイスの1つ以上が、所与の実施形態の一部であってもよい。
、逐次的に、または並列実行(例えば、多重処理)と逐次実行(例えば、時間スライス)とを組み合わせて実行することができる。マルチスレッド環境は、種々の構成で設計されてきた。実行スレッドは、並列に実行してよく、または実行スレッドは、並列実行に合わせて編成されてもよいが、実際には順番に逐次実行する。マルチスレッディングは、例えば、多重処理環境において異なるスレッドを異なるコア上で実行することによって、異なるスレッドを単一のプロセッサー・コア上で時間スライスすることによって、または時間スライスとマルチプロセッサー・スレッディングとをいくつか組み合わせることによって実現することができる。スレッド・コンテキストの切り替えは、例えば、カーネルのスレッド・スケジューラーによって、ユーザー空間信号によって、またはユーザー空間の動作とカーネルの動作との組み合わせによって開始することができる。スレッドは、例えば、順番に共有データーを処理することができ、または各スレッドが、例えば、それ自体のデーターを処理することもできる。
フトウェアを含む。
メントを意味し、コンピューター・プログラミング言語で書かれ、自動的に実行可能コードを生成するために使用されるように設計される。
ーまたは媒体は、特に別段述べられていなければ、非一時的であると想定される。
動作環境
[0039] 図1を参照すると、実施形態の動作環境100は、コンピューター・システム102を含む。コンピューター・システム102は、マルチプロセッサー・コンピューター・システムであってもよく、またはそうでなくてもよい。動作環境は、所与のコンピューター・システム内に1つ以上の装置を含むことができ、そのコンピューター・システムは、クラスター、クライアント−サーバー・ネットワーク、および/またはピア・ツー・ピア・ネットワークであってもよい。個々の装置がコンピューター・システムであり、協働する装置の一群もコンピューター・システムである。所与のコンピューター・システム102は、エンド・ユーザーのために、例えば、アプリケーションを使用して構成することができ、アドミニストレータのために、サーバーとして、分散型処理ノードとして、および/または他の方法で構成することもできる。
トールされた時にコンピューター・システムの機能的部分になり、その内容がプロセッサー110によって使用されるようにアクセス可能にすることができる。リムーバブル構成媒体114は、コンピューター読み取り可能記憶媒体112の一例である。コンピューター読み取り可能記憶媒体112のその他の例には、内蔵RAM、ROM、ハード・ディスク、およびユーザー104によって容易に取り外すことができない他の記憶デバイスを含む。
標識(mark))を含むまたはその作成に役立つ。適した動作環境には、Java(登録商標)環境(Oracle America, Inc.(オラクル・アメリカ社)の標識)を含むものがあり、更に適した動作環境には、C++またはC#(「Cシャープ」)等の、言語を利用する環境を含むものもある。しかし、本明細書における教示は、多種多様のプログラミング言語、プログラミングモデル、およびプログラムに適用可能であり、更にクラスター計算、クラウド計算、または双方を使用するソフトウェア開発自体の分野以外の試み(endeavor)にも適用可能である。
数のデーター集合に対して同一の開発ソース・コードを開発者が検査し易くすることができる。
ング(linking)を行うために、よく使われる命令に加えて、専用に作られる実行可能ファ
イルの生成を促進する命令210を含む。例えば、実施形態の中には、プロデューサー206が、データー・ソース識別子204を解決して物理位置(解決214)を得るAPI212を含む場合がある。実施形態の中には、プロデューサー206がソース−ソース間トランスレーター216を含む場合がある。ソース−ソース間トランスレーター216は、コール、宣言、および/または他のコードを開発者のソース・コード122に注入して、中間ソースを得て、次いでこの中間コードをコンパイルして、実行ターゲット専用に作られる実行可能コード124にする。
複数の実行ターゲット・データー・ソースと調整することによって、ソース・コードを変換する。
る。これらの実行可能コードの各々は他の実行可能コードと同じソースから自動的に生成されたのであっても、これらの実行可能コード124の各々は、データー・ソースの内異なる1つに対して参照を行う。
プロセス
[0060] 図3は、フローチャート300において、あるプロセス実施形態を示す。図に示すプロセスは、実施形態によっては、例えば、IDE148内部にある実行可能コード・プロデューサー206によって、スクリプトの制御の下で、あるいは同時ユーザー入力を殆どまたは全く必要とせずに、自動的に実行することができる。また、特に別段指示がなければ、プロセスは、部分的に自動的にそして部分的に手動で実行されてもよい。所与の実施形態では、図示されるプロセスのステップの内0個以上を繰り返し、恐らくは異なるパラメーターまたはデーターに対して動作することができる。また、一実施形態におけるステップは、図3に並べられた上下の順序とは異なる順序で実行してもよい。ステップは、直列に、並列に重複するように、または完全に並列に実行されてもよい。プロセスの間に実行されるステップを示すためにフローチャート300を辿る順序は、プロセスの実行毎に変化してもよい。また、フローチャートを辿る順序は、プロセスの実施形態毎に変
化してもよい。また、実行されるプロセスが動作可能であり、少なくとも1つの請求項に沿うのであれば、図示するフローからステップを省略する、組み合わせる、名称変更する、分類し直す、またはそれ以外で逸れることもできる。
細を提供するまたは理解する負担を回避する。
[0081] 実施形態は、ソース・コードおよび複数の代替計算データー・ソースを連携して管理するプロセスを提供する。このプロセスは、データー・ソース・マッピング202を得るステップ(202)を含み、このデーター・ソース・マッピング202では、特定のデーター・ソース識別子204が、それぞれの実行ターゲット208において複数のデーター・ソース136にマッピングされる。このプロセスは、開発者ソース・コードを受ける(304)。この開発者ソース・コードは、データー・ソース識別子をデーター・ソースとして明言し(330)、第1実行ターゲットを特定し(306)、開発者ソース・コードから第1実行可能コード124を自動的に生成する(308)。第1実行可能コードは、第1ターゲット専用に作られ、第1実行ターゲットにおいて実行すると、第1コー
ド124が、第1実行ターゲットのマッピングされたデーター・ソースを、このソース136がソース・コード122において明示的に述べられていなくても、データー・ソース識別子204によって特定されたデーター・ソースとして動作する。第1実行ターゲットとは異なるデーター・ソースを有する第2実行ターゲットを特定した(306)後、本プロセスは、同じソース・コード122から、第2ターゲット専用に作られる第2実行可能コードを自動的に生成する(308)。即ち、第2実行ターゲットにおいて実行すると、第2コード124は、第2実行ターゲットのマッピングされたデーター・ソースを、第1実行ターゲットのデーター・ソースの代わりに、特定されたデーター・ソースとして、動作する。
、コール318を注入する(316)のでもよい。
INPUT TEMPの例
[0086] 非限定的な一例として、可能な実施形態を更に例示するために、以下のことを提示する。
本特許文書における他のデーター・ソース・アドレスは、単なる例に過ぎないことを意図していることに注意すること。これらは、何らかの他の文書に達するという結果になることを意味するのではなく、これらは引用したことにより任意の情報が本文書にも含まれることを意味するのでもない。
またはTEMP_DATA_SOURCE="\\fileshare\TeamFolder\MyInput\"と設定することによって、例えば、コマンド・ライン・パラメーターを使用することによって、グローバル・ストリング変数TEMP_DATA_SOURCEが同じ結果を得るために使用することができたように思われるかもしれない。しかしながら、更に吟味すると、単にストリングを設定するだけでは、new folder()を作るコードは生成されないことが明らかになる。加えて、ストリング変数は、クラスター実行に対して等価なソースの機能を与える程強力ではない。何故なら、これは異なるストリングを伴うだけでなく、フォルダーの代わりにブロブコンテナ(blobcontainer)を作りアクセスすることも伴うからである。
構成媒体
[0094] 実施形態の中には、構成された(configured)コンピューター可読記憶媒体112を含むものがある。媒体112は、ディスク(磁気ディスク、光ディスク、またはその他)、RAM、EEPROMまたは他のROM、および/または、特に非一時的なコンピューター可読媒体(ワイヤまたは他の伝搬信号媒体とは対照的である)を含む、他の構成可能メモリーを含んでもよい。構成される記憶媒体は、特に、CD、DVD、またはフラッシュ・メモリー等の、リムーバブル記憶媒体114であってもよい。汎用メモリーは、リムーバブルでも非リムーバブルでもよく、更に揮発性でも不揮発性でもよく、データー
・ソース・マッピング202、実行可能コード・プロデューサー206、および解決API212というような品目を使用して、データー118および命令116の形式で実施形態に構成することができる。データー118および命令116は、構成媒体を形成するために、リムーバブル媒体114および/またはネットワーク接続のような他のソースから読み取られる。構成媒体112は、本明細書において開示したようにデーター・ソース管理によってデーターを変換するプロセス・ステップを、コンピューター・システムに実行させることができる。このため、図1から図3は、構成記憶媒体の実施形態および処理の実施形態、ならびにシステムおよび処理の実施形態を例示するのに役立つ。具体的には、図3に例示した処理ステップ、または本明細書において教示した処理ステップのいずれも、構成媒体の実施形態を形成する記憶媒体を構成するのに役立つように使用することができる。
付加的な例
[0095] 付加的な詳細および設計の考察を以下に示す。本明細書の他の例と同様に、説明する機能は、所与の実施形態において、個々におよび/または組み合わせて使用されてもよいし、または全く使用されなくてもよい。
カニズムは、仮想化としても知られる。仮想化は、データー・マッピング202を含む、プロジェクト設定またはユーザー設定を含むこともできる。手法によっては、設定ファイルがプロジェクト150毎に自動的に作られ、既存のユーザー設定をそのファイルにインポートすることができる。設定ファイルは、任意の数の参照項目および様々な実行位置を含むことができる。参照項目毎に、設定ファイル・マッピング202は、このデーター参照を表すために名称(例えば、識別子204)と、実行位置毎に物理データー・ソース(例えば、絶対パス346)を有する。
読み取る/書き込む。データー・ソース136が階層を有する場合、ユーザーは、「INPUT/OrderData」のような相対パス334を使用してデーターを参照することができる。ユ
ーザーがソースからの全てのデーターに対して動作を繰り返す必要がある場合、ユーザーは、場合に応じて、 "foreach (file f in TEMP) do_things(f);"または "foreach (file
f in INPUT/OrderData) do_things(f);"というようなコード122を書き込むことによ
って、データー・ソース136全体を繰り返すことができる。
ト208に基づいて、実行可能コード124を生成することもできる。つまり、ローカル・ターゲットに対して、この実行可能ファイルはこの中間ソース344に対応することができる。
来する。プロジェクト・データー・ライブラリーとは、Microsoft Corporation(マイク
ロソフト社)によって設計されたソフトウェア・コンポーネントおよびサービスの集合体である。PDLソフトウェアおよび/または文書化の形態は、本明細書において記載する実施形態と一貫性があり、言い換えると、実施形態を例示する。しかしながら、PDL文書化および/または実現例の選択肢は、必ずしもこのような実施形態の範囲を制約することはないことは言うまでもなく、同様に、PDLおよび/またはその文書化は、このような実施形態の範囲外になる特徴も当然含むことも言うまでもない。加えて、Microsoft(
登録商標)のAzure(商標)クラウド技術が例において使用されるが、教示および実施形
態はこの特定のクラウド技術(Microsoft Corporationの標識(mark))には必ずしも限定
されない。また、以下の説明は、部分的に、必ずしも当業者とは限らない読者に対して補助として提供されるのであり、したがって以下で言明することが、本開示をサポートするために厳格には必要とされない詳細を含むことおよび/または省略するもあることも言うまでもない。
、クラウド・ストレージ、およびリモート計算ノードに跨がって、リモート実行に対するソース・コード変更を行うことなく、シームレスなデーター・アクセスを提供することを目的とする。これは、計算ノードにおけるローカル・ファイル・ストレージ、ステージング・ストレージ(staging storage)、およびファイル・ストレージ間における、データー
参照のプロジェクト毎の抽象化(仮想化)を含む。ローカル・ボックスにおけるPDLはローカルPDLと呼ぶことができ、リモート計算ノードにおけるPDLはリモートPDLと呼ぶことができる。
ム・ソフトウェアは、ユーザー・コンテンツを格納するために特定のフォルダーを含むライブラリー、例えば、「音楽ライブラリー」および「文書ライブラリー」(Microsoft Corporationの標識)を提供する。この場合、ライブラリー抽象化は、様々なフォルダーの
論理集合体を表す(1つはデフォルトの書き込み位置である)。対照的に、PDLは、ローカル・ファイル・システム、クラウド・ストレージ、およびリモート計算ノードのファイル・システムというような、複数のストレージおよび実行環境に跨がるマッピングをサポートすることができる。
とができる。例えば、ローカルPDLを、プロジェクト空間下における物理フォルダーにマッピングすることができ、データー集合全体からダウンロードされた1つのファイルを含む。クラウドPDLを、ユーザーのAzure(商標)ストレージ下のコンテナにマッピン
グすることができ、リモートPDLをモデル展開ディレクトリー(「モデル」は、ここでは、コンピューター・プログラムを指す)下の物理フォルダーにマッピングすることができる。クライアント、クラウド、およびクラスターに跨がるPDL移行(transition)は、クラウド・ストレージの物理的性質(physical nature)をユーザーのビュー(view)から取
り除き、ユーザーはデーターおよびモデリングに集中することができる。したがって、実行可能コードにおけるデーター参照は、絶対パスを全くハードコーディングすることなく、相対パスを使用することができる。これは、ローカル実行環境からリモート実行環境に移植されるときに、ソース・コード変更を行わずに、モデル・コードを実行することをサポートする。
けるマッピングが、Azure(商標)ストレージ・エンドにおけるコンテナおよびブロブを
使用して単純になるように、PDL内部において二レベル深度ディレクトリー構造を使用するものがある。例えば、ローカルPDL下のフォルダー名は、コンテナ名に対応し、フォルダー下のファイル名はブロブに対応する。手法の中には、フォルダー・レベルのデーター参照マッピングに注意を向け、即ち、ローカル・フォルダーを、プロジェクト・データー・ライブラリーに対するAzure(商標)ブロブ・ストレージにおけるコンテナ下の全
コンテンツにマッピングし、ローカル・フォルダーとコンテナ内部の部分的コンテンツとの間ではマッピングを行わないものがある。したがって、1つのコンテナ下にあるファイルは全てマッピングに含まれる。手法の中には、プロジェクト・データー・ライブラリーが、装置規模のデーター・ライブラリーの代わりに、プロジェクト毎の実装(implementation)に注意を向けるものがある。Azure(商標)ブロブ・ストレージのバージョンの中に
は、二レベル深度のディレクトリー(コンテナ/ブロブ)しかサポートしないものがあるが、階層構造を模擬するためにブロブに「/」を使って名称を付けることによって、それ
を回避することができる(例えば、ブロブ名は、"folder/subfolder/name")。ソース・
コードが"INPUT/folder/subfolder/blob"を参照する場合、プロデューサーは、"INPUT"にマッピングされたコンテナにおいて、ブロブ"folder/subfolder/name"をマッピングする
。
変更する、動かす、および削除することの影響が分かっていると仮定するものがある。PDL外部の変更は、自動的にPDLと同期されない。これらのマッピングは、削除され再度作られる。
2つのHPCクラスター)および複数のステージング・ストレージ(例えば、2つのAzure(商標)ストレージ・アカウント)に適合するために、3つを超えるデーター参照ター
ゲット208にも適用可能にすることができる。
ー(deployment directory)に依存するものがある。これは、プログラム・ランタイムを介して引き出され、マッピング202は、この展開ディレクトリー下における相対パスしか追跡しない。
を表すものがある。PDLは、参照マッピングの連合体(union)を含み、異なる環境に跨
がるデーター参照変換に備えるために、APIを設ける。マッピング名は、PDL下のデーター・フォルダーの表示名であり、デフォルトのフォルダー名である。
するものがあり、ストレージ・アカウント名およびキーはPDLに格納されない。ストレージ・アカウント名およびキーは、クライアント側のユーザー設定に格納される。SASポリシーがデーター参照マッピングにおけるAzure(商標)ブロブ・コンテナと関連付け
られるとき、コンテナ名を超える特定のSASポリシーもマッピング情報に含まれる。
ジェクト・レベルで存続されるので、リモートHPCクラスターにおいて実行されたときに、パッケージ222に含めることができる場合がある。PDL情報は、コンフィギュ・ファイル(config file)132、例えば、全てのデーター参照マッピングを含むDataLib.pdlのようなXMLとして、またはデーター参照マッピング毎に1つずつのファイルがある複数のコンフィギュ・ファイルとして、またはプロジェクト内部のプロジェクト・プロパ
ティ220として存続することができる。データー参照マッピングがプロジェクト・システムまたはプロジェクト150の他の永続的ストレージに登録されるとき、プログラム・パッケージング・フェーズの間ビルド・コード(build code)によってアクセス可能でなければならない。したがって、クラウド・ステージング・ストレージおよびリモート計算ノード・データー・ダウンロードについての対応するデーター参照情報を、このパッケージに含めることができる。
ために、データー参照解決を提供するものがある。データー参照解決をローカルに戻すと、PDLはマッピングにおけるルート・ディレクトリーのパス全体を把握する。したがって、パス全体に対する連結ストリング(concatenated string)を戻すことができる。
デル(プログラム)展開ディレクトリー下のフォルダー名しか分からない。プログラム展開ディレクトリーは、プログラム・ランタイムでないと分からず、放出されるコードはコンパイル時にはそれが分からない。リモート・ノードではコンパイル(compilation)がな
いので、プログラム・ランタイムにリモート計算ノードにおいてパス全体を解決するために、種々の手法を使用することができる。例えば、マッピングのローカル・ターゲットのディレクトリー毎にファイルを、例えば、batsmapping. configに対して "C:\BATS"を作
ることができ、このファイルは、実行load_csvのルート・ディレクトリー内にある。このファイルは、データーがマッピングのためにロードされるときに、リモート・ノードにおいて作られる。あるいは、マッピング毎にローカル・ターゲットに対するローカル・ルート・ディレクトリーに環境変数を登録することもできる。
APIを使用するものがある。
がある。これは、ローカルPDL、ステージング・ストレージ、およびリモートPDLに跨がるマッピングを表す。尚、ExecutionTargetおよびVirtualPathクラスは、データー・アクセスAPIとPDLライブラリーとの間で共有されることを注記しておく。
は、データー・アクセスAPIとPDLライブラリーとの間で共有されることを注記しておく。
トレージ参照、ステージング・データー・ターゲット、または結果永続ストレージ(result persistent storage)を表す。ストレージ・ターゲットに対するベース・クラスは、次
の通りであり、ローカル・ファイル・システム・ターゲット、Azure(商標)ブロブ・ス
テージング・ストレージ、リモート・ターゲット、結果の永続ストレージというような、それぞれの特定のターゲットがある。
3C(即ち、クライアント、クラスター、およびクラウドを跨がる)を跨いで全てのデーター参照マッピングを維持する。
よび他のいくつかのコード・リストでは、リスト空間を凝縮するために、以下のようなタグが取り除かれていることを注記しておく。
る。コードは以下のように続く。
めには、様々な手法を使用することができる。PDL情報を含ませ、コンフィギュ・ファイルをプロジェクト内に追加するために、XMLのようなコンフィギュ・ファイルを使用することができる。あるいは、PDL情報をプロジェクト・プロパティ220として追加するために、プロジェクト管理システムを変更することができる。プロジェクト・プロパティ220は、プロジェクト・ファイルを右クリックし、プロパティを選択することによって、入力および編集することができる。他の選択肢には、クライアントのインフラストラクチャのIPropertyCollectionインターフェースを利用することが挙げられる。
例えば、DataLib.pdlファイルのようにセーブされるものがある。手法の中には、ユーザ
ーがマッピングをこのファイルにおいて作って編集すること、およびIDE148を使用
してこのファイルをプロジェクトに追加できることを仮定するものがある。PDL XMLは、DataContractSerializerを使用して生成することができ、対応するエレメント名が、C#クラス定義において属性として追加される。
の中には、datarefがプロジェクト・データー・ライブラリーにおいてローカルのデータ
ー参照マッピング情報を探し、パスを変換し、次いでload_csv("c:\data\BatsData\a.csv")をコールするものがある。例えば、dataref("BATS\a.csv")を、以下のようにPDLマ
ッピング情報にアクセスする関数に変換することができる。このマッピングに対するローカル・ルート・ディレクトリーは、ローカル実行のために放出された関数においてインラインになる。
レージとして使用するリモート計算ノード実行のためにパッケージングするとき、データー・セキュリティのためにSAS URLを含む他のpdlファイルを作ることもできる。
SAS生成は、例えば、MSBuild内部でトリガーされ、ユーザーには透過的である。この
ファイルを作るために、クラウド・ターゲットのパスをSASが生成したものと置き換え、
ローカル・ターゲットのパスを、計算ノードにおいて予期されるデーターの位置と置き換える。どこでプログラムが抜き出される(unpackage)か分かっている場合、同じフォルダ
ーの下でデーターはロードされ、分かっていない場合、フォルダーを作ることができる。新たなDataLib.pdlファイルを作ることができ、これがパッケージに含まれる。
られる。プログラム・ランタイムにおける抜き出しの間、DataLib_cloud.pdlを発見する
。名称から、1つはクラウドからローカルにデーターを引き出すためのものであることがわかる。したがって、生成された各SASパスに行き、データーを対応するローカル・パス
に引き出す。データー参照マッピングでは、フォルダー名は分かるが、名称全体は分からない。データー・ローディング(PDL外部のコンポーネント)がルート展開ディレクトリーを引き出し、例えば、エクステンシビリティ・フレームワーク(extensibility framework)を使用して、データー宛先に対する経路全体を生成する。
TSマッピングに対するルート・ディレクトリーを解決し、datarefは、ルート・ディレ
クトリーの連結、および引数から渡される仮想パスを戻す。したがって、a.csvに対する
ローカル・パスは、リモート計算ノードにおけるローカル・ファイル参照に基づいて解決することができる。
を有し、PDLの上に次の動作を有するものがある。データー参照マッピングをメモリー内PDLに追加する、メモリー内PDLインスタンスをファイルにセーブする、PDLをファイルからメモリー内PDLインスタンスにロードする、物理パスを解決する、データー参照マッピングを入手する。プロジェクト毎に1つのメモリー内PDLデーター構造があり、複数のデーター参照マッピングを含む。また、永続XMLファイルもあり、PDLメモリー内構造にロードすることができる。手法の中には、ユーザーがマッピングをメモリー内のもの(クライアントにおいてのみ)に追加するために、データー・ライブラリー・エクスプローラー(DLE)においてPDLをコールするもの、メモリー内PDLからマッピングを得るためにMSBuildにおいてコールするもの、およびPDLをロードし/マ
ッピングを追加し/PDLをセーブする(リモートのみ)データー・ローディングのためにPDLをコールするものがある。DLEおよびMSBuildは同時にPDLを変更しないの
で、メモリー内PDLまたはPDLファイルに対する競合はない。
ーの作成、セーブ、およびロードに関して、データー・ライブラリーに対するマッピングおよび設定は、公開インターフェースを介して正しく作られ、セーブされ、ロードされなければならない。コンストラクター(constructor)から新たなデーター・ライブラリーを
作成することをサポートしなければならない。データー・ライブラリーをファイルにセーブすることをサポートしなければならない。永続ストレージからデーター・ライブラリーをロードすることをサポートしなければならない。有効でないまたは存在しないパスへのセーブまたはこのパスからのロードを検出し回避しなければならない。
のエントリーをPDLに首尾良く登録することができ、新たな一意のマッピング・エントリーをPDLに追加すること、複製マッピング・エントリーをPDLに追加すること、同じAzure(商標)ストレージ・パスであるが異なるローカル・パスでエントリーを追加す
ること、および同じローカル・パスであるが異なるAzure(商標)ストレージで新たなエ
ントリーを追加しようとすることに対して、サポートを設けることができる。
、何らかの変更を行い、それを再度セーブする、例えば、何らかの新たなエントリーを追加し、既存のエントリーを編集し、既存のエントリーを削除することができる。
ターゲットが異なる命名規則および制約を有する場合があることは言うまでもない。データー・ライブラリーは、ファイル参照をチェックして、これらが有効であることを確認することができる。手法の中には、ユーザーのシナリオによって求められたときに、またはエラーに対してしかるべく対処するために、ライブラリーが正しいマッピング、解決されたリソース・アドレス、またはエラー(データー・ライブラリー内にない場合)を戻すことができる。また、リソースの検索および解決は、例えば、ローカル・ファイルを解決し、Azure(商標)ストレージ・リソースURIにマッピングし、リモート・ターゲットを
解決し、例えば、二レベル・ディレクトリー内でリソースを解決する機能によって、反復可能であり明白である(definitive)と想定することができる。
結論
[00137] 本明細書では、 特定の実施形態を、処理として、構成媒体として、またはシステムとして明確に例示し説明したが、ある種類の実施形態の説明は、一般に他の種類の
実施形態にまで及ぶことが認められよう。例えば、図3と関連したプロセスの説明は、構成媒体を説明するのにも役立ち、そして他の図面と関連して説明したようなシステムおよび製品の動作を説明するのにも役立つ。それは、一実施形態の限定が、必ずしも別の実施形態にも読み込まれるということではない。特に、プロセスは、システムまたは構成メモリー等の製品を説明する間に提示されたデーター構造および構成に必ずしも限定される訳ではない。
ない。逆に、実施形態が、図面に明確に示されていない品目(1つまたは複数)を含んでもよい。本明細書では具体的な例によって本文および図面において可能性が示されるが、実施形態はこれらの例から逸脱してもよい。例えば、一例の具体的な機構は、省略され、名称変更され、異なるグループに纏められ、繰り返され、ハードウェアおよび/またはソフトウェアに異なってインスタンス化され、あるいは例のうちの2つ以上に現れる機構の混合であってもよい。実施形態の中には、1つの位置で示された機能が、異なる位置に設けられてもよい。
と関連する言い回しにおいて、図面において、または文章において、明白な矛盾がある場合、そのいずれも、その番号によって参照されるものの範囲を単に広げたものとして理解してしかるべきである。
ような用語は、示された項目またはステップのうちの1つ以上を含むものとする。特に、特許請求の範囲において、ある項目に言及する場合、少なくとも1つのそのような項目が存在することを意味し、そしてステップに言及する場合、そのステップのうちの少なくとも1つのインスタンスが実行されることを意味する。
[00142] 提出される特許請求の範囲および要約書は全て、本明細書の一部である。
に記載した概念から逸脱せずに、複数の変更を行うことができること、そしてそのような変更は、抽象的概念全体を包含する必要がないことは、当業者には明白であろう。構造的特徴および/または手順的動作に特定の用語で主題について説明したが、添付した特許請求の範囲において定められる主題は、以上で説明した特定の特徴や動作に必ずしも限定される訳ではないことは言うまでもない。所与の定義または例で特定されたあらゆる手段または形態が、あらゆる実施形態において存在するまたは利用されることが必要な訳ではない。むしろ、説明した特定の特徴または動作は、特許請求の範囲を実現するときに考慮する例として開示されたまでである。
よび範囲に入る変更は全て、法によって許容される限りにおいて、その範囲内に含まれるものとする。
Claims (10)
- ソース・コードと複数の代替計算データー・ソースとを連携して管理するプロセスであって、
特定のデーター・ソース識別子がそれぞれの実行ターゲットにおいて複数のデーター・ソースにマッピングされるデーター・ソース・マッピングを得るステップと、
前記データー・ソース識別子をデーター・ソースとして言明する開発者ソース・コードを受けるステップと、
第1実行ターゲットを特定するステップと、
前記開発者ソース・コードから第1実行可能コードを自動的に生成するステップであって、前記第1実行可能コードが、前記第1実行ターゲットにおいて実行すると、前記第1実行可能ターゲットのマッピングされたデーター・ソースを、前記データー・ソース識別子によって特定される前記データー・ソースとして動作する、ステップと、
前記第1実行ターゲットとは異なるデーター・ソースを有する第2実行ターゲットを特定するステップと、
前記同じソース・コードから第2実行可能コードを自動的に生成するステップであって、前記第2実行可能コードが、前記第2実行ターゲットにおいて実行すると、前記第2実行ターゲットのマッピングされたデーター・ソースを前記第1実行ターゲットのデーター・ソースの代わりに、特定されたデーター・ソースとして動作する、ステップと、
を含む、プロセス。 - 請求項1記載のプロセスにおいて、前記実行ターゲットを特定するステップが、ローカル実行ターゲット、クラスター実行ターゲット、クラウド実行ターゲットの内少なくとも2つを特定する、プロセス。
- 請求項1記載のプロセスにおいて、前記同じ開発者ソース・コードから第2実行可能コードを自動的に生成するステップが、フォルダー作成コール、クラウド・コンテナ作成コール、ファイル作成コールの内少なくとも1つを注入するソース−ソース間変換を実行するステップを含む、プロセス。
- データーおよび命令が構成される(configure)コンピューター読み取り可能非一時的記
憶媒体であって、前記命令が少なくとも1つのプロセッサーによって実行されると、前記プロセッサー(1つまたは複数)に、開発者によって使用するためのプロセスを実行させ、前記プロセスが、
特定のデーター・ソース識別子がそれぞれの実行ターゲットにおいて複数のデーター・ソースにマッピングされるデーター・ソース・マッピングを得るステップと、
前記データー・ソース・マッピングおよびソース・コードから、それぞれの異なる実行ターゲットに対して、少なくとも2つの異なるデーター・ソース解決を、前記開発者によるソース・コードに対する変更を必要とせずに、自動的に生成するステップと、
を含む、コンピューター読み取り可能非一時的記憶媒体。 - 請求項4記載の構成媒体であって、前記生成するステップが、ユニバーサル・リソース識別子を含むデーター・ソース解決と、前記データー・ソース識別子を根源とする相対パスに基づくデーター・ソース解決の内少なくとも1つを生成する、構成媒体。
- 請求項4記載の構成媒体において、前記生成するステップが、物理記憶位置識別ストリングの単なる置き換えを超えるものを含む、構成媒体。
- 請求項4記載の構成媒体において、前記プロセスが、更に、前記開発者から前記実行ターゲットの仕様を受け入れるステップを含み、前記実行ターゲットの内少なくとも1つが
、複数の計算デバイスを含み、前記実行ターゲットに対してマッピングされるデーター・ソースが、少なくとも1テラバイトのデーターを含む、構成媒体。 - コンピューター・システムであって、
論理プロセッサーと、
前記論理プロセッサーと動作可能に通信するメモリーと、
前記メモリー内に存在し、それぞれの異なる実行ターゲットにおいて複数の異なるデーター・ソースにマッピングされる特定のデーター・ソース識別子を有するデーター・ソース・マッピングと、
前記メモリー内に存在し、前記開発者ソース・コード内におけるデーター・ソースとして明言される前記データー・ソース識別子を有する開発者ソース・コードと、
前記メモリー内に存在し、命令を有する実行可能コード・プロデューサーであって、実行すると、異なる時点において同じ開発者ソース・コードから、複数の異なる実行可能コードを生成し、各実行可能コードが前記データー・ソースの内異なる1つに対する参照を行う、実行可能コード・プロデューサーと、
を含む、コンピューター・システム。 - 請求項8記載のシステムにおいて、前記開発者ソース・コードには、実行位置を検出するコードがなく、前記開発者ソース・コードも絶対パス・データー・ソース識別子がない、システム。
- 請求項8記載のシステムにおいて、前記データー・ソース・マッピングが、テキスト構成ファイル、非テキスト・プロジェクト・プロパティ、プロジェクト特定構造、ユーザー特定構造の内少なくとも1つに存在する、システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/226,679 US8863082B2 (en) | 2011-09-07 | 2011-09-07 | Transformational context-aware data source management |
US13/226,679 | 2011-09-07 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014529787A Division JP2014529832A (ja) | 2011-09-07 | 2012-09-04 | 変換コンテンツ・アウェア・データー・ソース管理 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017215999A true JP2017215999A (ja) | 2017-12-07 |
JP6457594B2 JP6457594B2 (ja) | 2019-01-23 |
Family
ID=47574776
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014529787A Withdrawn JP2014529832A (ja) | 2011-09-07 | 2012-09-04 | 変換コンテンツ・アウェア・データー・ソース管理 |
JP2017150802A Active JP6457594B2 (ja) | 2011-09-07 | 2017-08-03 | 変換コンテンツ・アウェア・データー・ソース管理 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014529787A Withdrawn JP2014529832A (ja) | 2011-09-07 | 2012-09-04 | 変換コンテンツ・アウェア・データー・ソース管理 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8863082B2 (ja) |
EP (1) | EP2754032B1 (ja) |
JP (2) | JP2014529832A (ja) |
KR (1) | KR101944570B1 (ja) |
CN (1) | CN102902529B (ja) |
WO (1) | WO2013036460A2 (ja) |
Families Citing this family (98)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9451393B1 (en) * | 2012-07-23 | 2016-09-20 | Amazon Technologies, Inc. | Automated multi-party cloud connectivity provisioning |
US9361068B2 (en) | 2014-05-21 | 2016-06-07 | International Business Machines Corporation | System and method for using development objectives to guide implementation of source code |
US9830193B1 (en) | 2014-09-30 | 2017-11-28 | Amazon Technologies, Inc. | Automatic management of low latency computational capacity |
US9323556B2 (en) | 2014-09-30 | 2016-04-26 | Amazon Technologies, Inc. | Programmatic event detection and message generation for requests to execute program code |
US9715402B2 (en) | 2014-09-30 | 2017-07-25 | Amazon Technologies, Inc. | Dynamic code deployment and versioning |
US10048974B1 (en) | 2014-09-30 | 2018-08-14 | Amazon Technologies, Inc. | Message-based computation request scheduling |
US9678773B1 (en) | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US9146764B1 (en) | 2014-09-30 | 2015-09-29 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US9600312B2 (en) | 2014-09-30 | 2017-03-21 | Amazon Technologies, Inc. | Threading as a service |
US9880818B2 (en) * | 2014-11-05 | 2018-01-30 | Ab Initio Technology Llc | Application testing |
CN105701118B (zh) * | 2014-11-28 | 2019-05-28 | 国际商业机器公司 | 用于归一化文件的非数值特征的方法和装置 |
US9537788B2 (en) | 2014-12-05 | 2017-01-03 | Amazon Technologies, Inc. | Automatic determination of resource sizing |
US9733967B2 (en) | 2015-02-04 | 2017-08-15 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US9588790B1 (en) | 2015-02-04 | 2017-03-07 | Amazon Technologies, Inc. | Stateful virtual compute system |
US9785476B2 (en) | 2015-04-08 | 2017-10-10 | Amazon Technologies, Inc. | Endpoint management system and virtual compute system |
US9930103B2 (en) | 2015-04-08 | 2018-03-27 | Amazon Technologies, Inc. | Endpoint management system providing an application programming interface proxy service |
US11681531B2 (en) | 2015-09-19 | 2023-06-20 | Microsoft Technology Licensing, Llc | Generation and use of memory access instruction order encodings |
US11977891B2 (en) | 2015-09-19 | 2024-05-07 | Microsoft Technology Licensing, Llc | Implicit program order |
US9928108B1 (en) | 2015-09-29 | 2018-03-27 | Amazon Technologies, Inc. | Metaevent handling for on-demand code execution environments |
US10042660B2 (en) | 2015-09-30 | 2018-08-07 | Amazon Technologies, Inc. | Management of periodic requests for compute capacity |
US10621524B2 (en) * | 2015-11-09 | 2020-04-14 | Dassault Systemes Americas Corp. | Exporting hierarchical data from a source code management (SCM) system to a product lifecycle management (PLM) system |
US10754701B1 (en) | 2015-12-16 | 2020-08-25 | Amazon Technologies, Inc. | Executing user-defined code in response to determining that resources expected to be utilized comply with resource restrictions |
US10013267B1 (en) | 2015-12-16 | 2018-07-03 | Amazon Technologies, Inc. | Pre-triggers for code execution environments |
US9811434B1 (en) | 2015-12-16 | 2017-11-07 | Amazon Technologies, Inc. | Predictive management of on-demand code execution |
US10067801B1 (en) | 2015-12-21 | 2018-09-04 | Amazon Technologies, Inc. | Acquisition and maintenance of compute capacity |
US10002026B1 (en) | 2015-12-21 | 2018-06-19 | Amazon Technologies, Inc. | Acquisition and maintenance of dedicated, reserved, and variable compute capacity |
US9910713B2 (en) | 2015-12-21 | 2018-03-06 | Amazon Technologies, Inc. | Code execution request routing |
CN107015996A (zh) * | 2016-01-28 | 2017-08-04 | 阿里巴巴集团控股有限公司 | 一种资源访问方法、装置及系统 |
CN107025104A (zh) * | 2016-02-02 | 2017-08-08 | 龙芯中科技术有限公司 | 内核开发管理系统和方法 |
US10162672B2 (en) | 2016-03-30 | 2018-12-25 | Amazon Technologies, Inc. | Generating data streams from pre-existing data sets |
US11132213B1 (en) | 2016-03-30 | 2021-09-28 | Amazon Technologies, Inc. | Dependency-based process of pre-existing data sets at an on demand code execution environment |
EP3436927B1 (en) * | 2016-03-30 | 2023-12-13 | Amazon Technologies Inc. | Processing pre-existing data sets at an on-demand code execution environment |
US10891145B2 (en) | 2016-03-30 | 2021-01-12 | Amazon Technologies, Inc. | Processing pre-existing data sets at an on demand code execution environment |
US10282229B2 (en) | 2016-06-28 | 2019-05-07 | Amazon Technologies, Inc. | Asynchronous task management in an on-demand network code execution environment |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
US10277708B2 (en) | 2016-06-30 | 2019-04-30 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US10203990B2 (en) | 2016-06-30 | 2019-02-12 | Amazon Technologies, Inc. | On-demand network code execution with cross-account aliases |
US9971594B2 (en) * | 2016-08-16 | 2018-05-15 | Sonatype, Inc. | Method and system for authoritative name analysis of true origin of a file |
US10061613B1 (en) | 2016-09-23 | 2018-08-28 | Amazon Technologies, Inc. | Idempotent task execution in on-demand network code execution systems |
US10884787B1 (en) | 2016-09-23 | 2021-01-05 | Amazon Technologies, Inc. | Execution guarantees in an on-demand network code execution system |
US11119813B1 (en) | 2016-09-30 | 2021-09-14 | Amazon Technologies, Inc. | Mapreduce implementation using an on-demand network code execution system |
US20200019882A1 (en) * | 2016-12-15 | 2020-01-16 | Schlumberger Technology Corporation | Systems and Methods for Generating, Deploying, Discovering, and Managing Machine Learning Model Packages |
KR20180072436A (ko) * | 2016-12-21 | 2018-06-29 | 엘에스산전 주식회사 | 프로그램 제공 장치 |
US10564946B1 (en) | 2017-12-13 | 2020-02-18 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10303492B1 (en) | 2017-12-13 | 2019-05-28 | Amazon Technologies, Inc. | Managing custom runtimes in an on-demand code execution system |
US10831898B1 (en) | 2018-02-05 | 2020-11-10 | Amazon Technologies, Inc. | Detecting privilege escalations in code including cross-service calls |
US10733085B1 (en) | 2018-02-05 | 2020-08-04 | Amazon Technologies, Inc. | Detecting impedance mismatches due to cross-service calls |
US10353678B1 (en) | 2018-02-05 | 2019-07-16 | Amazon Technologies, Inc. | Detecting code characteristic alterations due to cross-service calls |
US10572375B1 (en) | 2018-02-05 | 2020-02-25 | Amazon Technologies, Inc. | Detecting parameter validity in code including cross-service calls |
US10725752B1 (en) | 2018-02-13 | 2020-07-28 | Amazon Technologies, Inc. | Dependency handling in an on-demand network code execution system |
US10776091B1 (en) | 2018-02-26 | 2020-09-15 | Amazon Technologies, Inc. | Logging endpoint in an on-demand code execution system |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US10649749B1 (en) | 2018-06-26 | 2020-05-12 | Amazon Technologies, Inc. | Cross-environment application of tracing information for improved code execution |
US11146569B1 (en) | 2018-06-28 | 2021-10-12 | Amazon Technologies, Inc. | Escalation-resistant secure network services using request-scoped authentication information |
US10949237B2 (en) | 2018-06-29 | 2021-03-16 | Amazon Technologies, Inc. | Operating system customization in an on-demand network code execution system |
US11099870B1 (en) | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
EP3847547A4 (en) * | 2018-09-04 | 2022-10-12 | AVEVA Software, LLC | FLOW-BASED COMPOSITION, AND MONITORING SERVER SYSTEM AND METHOD |
US11243953B2 (en) | 2018-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Mapreduce implementation in an on-demand network code execution system and stream data processing system |
US11099917B2 (en) | 2018-09-27 | 2021-08-24 | Amazon Technologies, Inc. | Efficient state maintenance for execution environments in an on-demand code execution system |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
US10884812B2 (en) | 2018-12-13 | 2021-01-05 | Amazon Technologies, Inc. | Performance-based hardware emulation in an on-demand network code execution system |
US11010188B1 (en) | 2019-02-05 | 2021-05-18 | Amazon Technologies, Inc. | Simulated data object storage using on-demand computation of data objects |
KR102202121B1 (ko) * | 2019-03-06 | 2021-01-13 | 주식회사 커먼컴퓨터 | 피투피 클라우드 컴퓨팅 시스템 및 그 시스템에서 소스코드를 실행환경과 연결하고 실행하는 방법 |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
US11159528B2 (en) | 2019-06-28 | 2021-10-26 | Amazon Technologies, Inc. | Authentication to network-services using hosted authentication information |
US11115404B2 (en) | 2019-06-28 | 2021-09-07 | Amazon Technologies, Inc. | Facilitating service connections in serverless code executions |
US11386230B2 (en) | 2019-09-27 | 2022-07-12 | Amazon Technologies, Inc. | On-demand code obfuscation of data in input path of object storage service |
US10996961B2 (en) | 2019-09-27 | 2021-05-04 | Amazon Technologies, Inc. | On-demand indexing of data in input path of object storage service |
US11656892B1 (en) | 2019-09-27 | 2023-05-23 | Amazon Technologies, Inc. | Sequential execution of user-submitted code and native functions |
US11023416B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | Data access control system for object storage service based on owner-defined code |
US11106477B2 (en) | 2019-09-27 | 2021-08-31 | Amazon Technologies, Inc. | Execution of owner-specified code during input/output path to object storage service |
US11023311B2 (en) | 2019-09-27 | 2021-06-01 | Amazon Technologies, Inc. | On-demand code execution in input path of data uploaded to storage service in multiple data portions |
US10908927B1 (en) | 2019-09-27 | 2021-02-02 | Amazon Technologies, Inc. | On-demand execution of object filter code in output path of object storage service |
US11360948B2 (en) | 2019-09-27 | 2022-06-14 | Amazon Technologies, Inc. | Inserting owner-specified data processing pipelines into input/output path of object storage service |
US11394761B1 (en) | 2019-09-27 | 2022-07-19 | Amazon Technologies, Inc. | Execution of user-submitted code on a stream of data |
US11550944B2 (en) | 2019-09-27 | 2023-01-10 | Amazon Technologies, Inc. | Code execution environment customization system for object storage service |
US11416628B2 (en) | 2019-09-27 | 2022-08-16 | Amazon Technologies, Inc. | User-specific data manipulation system for object storage service based on user-submitted code |
US11250007B1 (en) | 2019-09-27 | 2022-02-15 | Amazon Technologies, Inc. | On-demand execution of object combination code in output path of object storage service |
US11055112B2 (en) | 2019-09-27 | 2021-07-06 | Amazon Technologies, Inc. | Inserting executions of owner-specified code into input/output path of object storage service |
US11263220B2 (en) | 2019-09-27 | 2022-03-01 | Amazon Technologies, Inc. | On-demand execution of object transformation code in output path of object storage service |
US11119826B2 (en) | 2019-11-27 | 2021-09-14 | Amazon Technologies, Inc. | Serverless call distribution to implement spillover while avoiding cold starts |
US10942795B1 (en) | 2019-11-27 | 2021-03-09 | Amazon Technologies, Inc. | Serverless call distribution to utilize reserved capacity without inhibiting scaling |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
CN111479265B (zh) * | 2020-03-09 | 2021-06-18 | 珠海格力电器股份有限公司 | 信息传播方法、装置、计算机设备和存储介质 |
US11188391B1 (en) | 2020-03-11 | 2021-11-30 | Amazon Technologies, Inc. | Allocating resources to on-demand code executions under scarcity conditions |
US11775640B1 (en) | 2020-03-30 | 2023-10-03 | Amazon Technologies, Inc. | Resource utilization-based malicious task detection in an on-demand code execution system |
US10997243B1 (en) * | 2020-06-30 | 2021-05-04 | Snowflake Inc. | Supporting unstructured, semi-structured, and structured files |
US11423081B1 (en) * | 2020-06-30 | 2022-08-23 | Snowflake Inc. | Accessing files in a database stage using a user defined function |
US11361026B2 (en) | 2020-06-30 | 2022-06-14 | Snowflake Inc. | Accessing files in a database stage using a user defined function |
CN111984944B (zh) * | 2020-08-28 | 2024-04-19 | 重庆小雨点小额贷款有限公司 | 一种源代码处理方法、相关装置及存储介质 |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
US11645243B2 (en) | 2021-06-07 | 2023-05-09 | Snowflake Inc. | Accessing files in a database stage using a user defined function |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
CN113688285B (zh) * | 2021-08-23 | 2024-05-03 | 同济大学 | 一种用于工业互联网标识的信息模型的建模方法及装置 |
CN114840598B (zh) * | 2022-07-04 | 2022-10-04 | 好享家舒适智能家居股份有限公司 | 一种创建运行时数据源并自动切换的方法及系统 |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02165239A (ja) * | 1988-12-20 | 1990-06-26 | Fujitsu Ltd | 大規模知識ベースにおけるデータアクセス方式 |
JPH1031603A (ja) * | 1996-07-17 | 1998-02-03 | Nec Corp | 情報処理システム、クライアント/サーバシステム、およびデータベースアクセス方法 |
JPH1165832A (ja) * | 1997-08-21 | 1999-03-09 | Sony Corp | ソースコード変換方法及び記録媒体 |
JPH1173306A (ja) * | 1997-08-28 | 1999-03-16 | Mitsubishi Electric Corp | クライアント/サーバ・プログラム生成装置及びクライアント/サーバ・プログラム生成方法 |
JP2000181697A (ja) * | 1998-12-18 | 2000-06-30 | Nec Corp | メインフレームcobol資産のオープン系システムへのコンバージョン方法及び装置並びに記録媒体 |
JP2001306326A (ja) * | 2000-04-24 | 2001-11-02 | Sony Corp | データ処理システム及びデータ処理方法、並びに、ソフトウェア記憶媒体 |
JP2002318692A (ja) * | 2001-04-19 | 2002-10-31 | Sony Corp | インストール支援システム、インストール支援装置、インストール支援方法、インストールを支援するためのプログラムおよびそのプログラムを記録した記録媒体 |
US20030009747A1 (en) * | 2001-06-25 | 2003-01-09 | International Business Machines Corporation | Apparatus and method for porting applications to different platforms |
JP2007133820A (ja) * | 2005-11-14 | 2007-05-31 | Nec Corp | プログラム開発支援装置およびプログラム開発支援方法 |
US20070256048A1 (en) * | 2006-05-01 | 2007-11-01 | Microsoft Corporation | Loading application resources |
JP2008538016A (ja) * | 2004-11-12 | 2008-10-02 | メイク センス インコーポレイテッド | 概念または項目を用いて知識相関を構成することによる知識発見技術 |
US20080295069A1 (en) * | 2007-05-21 | 2008-11-27 | International Business Machines Corporation | User-extensible rule-based source code modification |
US20090049438A1 (en) * | 2007-08-14 | 2009-02-19 | International Business Machines Corporation | Method for Optimizing Migration of Software Applications to Address Needs |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2025160A1 (en) | 1989-09-28 | 1991-03-29 | John W. White | Portable and dynamic distributed applications architecture |
US5920721A (en) | 1997-06-11 | 1999-07-06 | Digital Equipment Corporation | Compiler generating functionally-alike code sequences in an executable program intended for execution in different run-time environments |
US7009980B1 (en) | 2000-03-13 | 2006-03-07 | Lucent Technologies Inc. | Apparatus and method for automatic port identity discovery in hierarchical heterogenous systems |
US6901409B2 (en) * | 2001-01-17 | 2005-05-31 | International Business Machines Corporation | Mapping data from multiple data sources into a single software component |
US6986135B2 (en) * | 2001-09-06 | 2006-01-10 | Cognos Incorporated | Deployment manager for organizing and deploying an application in a distributed computing environment |
EP1676217B1 (en) | 2003-09-15 | 2011-07-06 | Ab Initio Technology LLC | Data profiling |
GB0329246D0 (en) * | 2003-12-18 | 2004-01-21 | Agilent Technologies Inc | Method of translating computer program code, communications system and network management entity therefor |
US7590972B2 (en) | 2004-10-28 | 2009-09-15 | Cogency Software, Inc. | Role-oriented development environment |
US20060259903A1 (en) | 2005-05-12 | 2006-11-16 | Xerox Corporation | Method for creating unique identification for copies of executable code and management thereof |
JP2007004503A (ja) * | 2005-06-24 | 2007-01-11 | Mitsubishi Electric Corp | プログラム変換方式およびプログラム変換方法およびコード変換プログラム |
US8789016B2 (en) * | 2005-12-29 | 2014-07-22 | Panasonic Corporation | Systems and methods for providing user configurable software libraries |
US7543282B2 (en) | 2006-03-24 | 2009-06-02 | Sun Microsystems, Inc. | Method and apparatus for selectively executing different executable code versions which are optimized in different ways |
CN101968793B (zh) * | 2010-08-25 | 2012-09-05 | 大唐软件技术股份有限公司 | 一种基于异构数据源数据核对的方法和系统 |
-
2011
- 2011-09-07 US US13/226,679 patent/US8863082B2/en active Active
-
2012
- 2012-09-04 EP EP12830685.9A patent/EP2754032B1/en active Active
- 2012-09-04 KR KR1020147006151A patent/KR101944570B1/ko active IP Right Grant
- 2012-09-04 JP JP2014529787A patent/JP2014529832A/ja not_active Withdrawn
- 2012-09-04 WO PCT/US2012/053592 patent/WO2013036460A2/en unknown
- 2012-09-06 CN CN201210327750.0A patent/CN102902529B/zh active Active
-
2017
- 2017-08-03 JP JP2017150802A patent/JP6457594B2/ja active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH02165239A (ja) * | 1988-12-20 | 1990-06-26 | Fujitsu Ltd | 大規模知識ベースにおけるデータアクセス方式 |
JPH1031603A (ja) * | 1996-07-17 | 1998-02-03 | Nec Corp | 情報処理システム、クライアント/サーバシステム、およびデータベースアクセス方法 |
JPH1165832A (ja) * | 1997-08-21 | 1999-03-09 | Sony Corp | ソースコード変換方法及び記録媒体 |
JPH1173306A (ja) * | 1997-08-28 | 1999-03-16 | Mitsubishi Electric Corp | クライアント/サーバ・プログラム生成装置及びクライアント/サーバ・プログラム生成方法 |
JP2000181697A (ja) * | 1998-12-18 | 2000-06-30 | Nec Corp | メインフレームcobol資産のオープン系システムへのコンバージョン方法及び装置並びに記録媒体 |
JP2001306326A (ja) * | 2000-04-24 | 2001-11-02 | Sony Corp | データ処理システム及びデータ処理方法、並びに、ソフトウェア記憶媒体 |
JP2002318692A (ja) * | 2001-04-19 | 2002-10-31 | Sony Corp | インストール支援システム、インストール支援装置、インストール支援方法、インストールを支援するためのプログラムおよびそのプログラムを記録した記録媒体 |
US20030009747A1 (en) * | 2001-06-25 | 2003-01-09 | International Business Machines Corporation | Apparatus and method for porting applications to different platforms |
JP2008538016A (ja) * | 2004-11-12 | 2008-10-02 | メイク センス インコーポレイテッド | 概念または項目を用いて知識相関を構成することによる知識発見技術 |
JP2007133820A (ja) * | 2005-11-14 | 2007-05-31 | Nec Corp | プログラム開発支援装置およびプログラム開発支援方法 |
US20070256048A1 (en) * | 2006-05-01 | 2007-11-01 | Microsoft Corporation | Loading application resources |
US20080295069A1 (en) * | 2007-05-21 | 2008-11-27 | International Business Machines Corporation | User-extensible rule-based source code modification |
US20090049438A1 (en) * | 2007-08-14 | 2009-02-19 | International Business Machines Corporation | Method for Optimizing Migration of Software Applications to Address Needs |
Non-Patent Citations (2)
Title |
---|
酒井達明: "特集2 これでわかった!クラウド楽々活用術:Part3 .NETから移行は簡単!Windows Azur", 日経ソフトウエア, vol. 第12巻,第9号(通巻142号), JPN6016032113, 24 August 2009 (2009-08-24), JP, pages p.81−83 * |
鈴木洋一、谷村吉隆、柴田直樹, 徹底解説 WINDOWS HPC SERVER 2008 −クラスタ構築と実践テクニック−, vol. 初版, JPN6016032112, 9 November 2009 (2009-11-09), JP, pages p.89−90 * |
Also Published As
Publication number | Publication date |
---|---|
JP2014529832A (ja) | 2014-11-13 |
CN102902529A (zh) | 2013-01-30 |
EP2754032A2 (en) | 2014-07-16 |
US8863082B2 (en) | 2014-10-14 |
EP2754032A4 (en) | 2015-06-24 |
WO2013036460A2 (en) | 2013-03-14 |
EP2754032B1 (en) | 2021-04-07 |
KR20140060299A (ko) | 2014-05-19 |
CN102902529B (zh) | 2017-04-12 |
US20130061208A1 (en) | 2013-03-07 |
KR101944570B1 (ko) | 2019-01-31 |
JP6457594B2 (ja) | 2019-01-23 |
WO2013036460A3 (en) | 2013-05-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6457594B2 (ja) | 変換コンテンツ・アウェア・データー・ソース管理 | |
EP3350696B1 (en) | Overriding a migrated method of an updated type | |
US9116707B2 (en) | Dependency resolution in polyphasic modules | |
KR20160002888A (ko) | 애플리케이션 내의 대역외 프레임워크 라이브러리 | |
US10303449B2 (en) | Compiling non-native constants | |
US10789047B2 (en) | Returning a runtime type loaded from an archive in a module system | |
US10417024B2 (en) | Generating verification metadata and verifying a runtime type based on verification metadata | |
WO2018187798A1 (en) | Flow-based scoping | |
KR20220113372A (ko) | 통합된 참조물 및 2차 객체 표시 | |
US11048489B2 (en) | Metadata application constraints within a module system based on modular encapsulation | |
US10387142B2 (en) | Using annotation processors defined by modules with annotation processors defined by non-module code | |
US10802855B2 (en) | Producing an internal representation of a type based on the type's source representation | |
US10346225B2 (en) | Synthesized modules for module renaming | |
EP3164800B1 (en) | Bridging a module system and a non-module system | |
Villela et al. | About Static. NET Assembly |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180711 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180813 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181112 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20181121 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181220 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6457594 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |