JP2008516323A - プラットホーム独立の動的リンキング - Google Patents
プラットホーム独立の動的リンキング Download PDFInfo
- Publication number
- JP2008516323A JP2008516323A JP2007535225A JP2007535225A JP2008516323A JP 2008516323 A JP2008516323 A JP 2008516323A JP 2007535225 A JP2007535225 A JP 2007535225A JP 2007535225 A JP2007535225 A JP 2007535225A JP 2008516323 A JP2008516323 A JP 2008516323A
- Authority
- JP
- Japan
- Prior art keywords
- computing environment
- computing
- library
- source code
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
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
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
-
- 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/44536—Selecting among different versions
- G06F9/44542—Retargetable
- G06F9/44547—Fat binaries
-
- 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/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
Abstract
【選択図】 図7
Description
コンピュータコードは、コンピュータシステム又は装置内の中央処理ユニット(CPU)又は他のコンピュータプロセッサにおいて実行することができる。CPUアーキテクチャの一般的な例としては、INTEL(登録商標)x86ファミリー、ARM(登録商標)RISC(リデュースドインストラクションセットコード)アーキテクチャ、SUN(登録商標)SPARC、及びMOTOROLA(登録商標)68000が挙げられるが、これらに限定されない。コードは、人間が理解できる“C”、“C++”、又はJAVA(登録商標)のような高水準言語で書くことができるが、最終的に、コードは、その後、コンピューティング環境により、例示的なコンピュータプロセッサで実行されるマシンインストラクションへとコンパイル及びアッセンブルされ得る。
コンピュータプログラムは、複数のコンポーネントで構成される。プログラムがランされるときに、これらのコンポーネントを一緒にして、完全なファンクションシステムを形成できると共に、プログラムを実行する協働するコンピューティング環境のメインメモリにロードすることができる。コンピュータプログラムのコンポーネントを結合するプロセスは、リンキングとして知られている。プログラムコンポーネントが1つの単一ファイルへと結合され、これをメモリにロードして実行できる場合には、このようなプロセスが「静的リンキング」として説明される。一般に、リンカーは、リンカーへの入力として働くことのできるコンポーネントオブジェクトファイルを連結できるツールチェーンの一部分であり、複数のオブジェクトファイルを一緒にリンクして単一の出力ファイルを形成することができる。プログラムが負空のサブプログラムで作り上げられるときには、あるプログラムの、別のプログラムへの参照を、シンボル(変数及びファンクション名のような)を介して行うことができる。他のファンクション及びオペレーションの中で、リンカーは、協働するコンピューティング環境のメモリにおけるシンボル(1つ又は複数)の位置にノートし、そして発呼側サブプログラムのオブジェクトコードをパッチして、コールインストラクションがそのノートしたメモリ位置を参照するようにすることで、参照を分析するように動作することができる。
図1は、ここに述べるシステム及び方法に基づく例示的コンピューティングシステム100を示す。このコンピューティングシステム100は、種々のコンピューティングプログラム180を実行することができる。例示的コンピューティングシステム100は、主として、コンピュータ読み取り可能なインストラクションにより制御され、これらインストラクションは、ソフトウェアの形態でもよく、また、このようなソフトウェアをどこにどのように記憶し又はアクセスするかのインストラクションも与える。このようなソフトウェアは、中央処理ユニット(CPU)110内で実行されて、データ処理システム100を機能させる。多くの既知のコンピュータサーバー、ワークステーション、及びパーソナルコンピュータでは、中央処理ユニット110が、マイクロプロセッサと称するマイクロ電子チップCPUにより実施される。コプロセッサ115は、メインCPU110とは別の任意のプロセッサで、付加的なファンクションを遂行し、又はCPU110をアシストする。CPU110は、相互接続部112を経てコプロセッサ115に接続されてもよい。1つの通常の形式のコプロセッサは、ニューメリック又はマス(math)コプロセッサとも称されるフローティングポイントコプロセッサで、これは、数値計算を汎用CPU110より迅速且つ良好に遂行するように設計される。
上述したコンピューティングシステム100は、コンピュータネットワークの一部分として配備することができる。一般に、コンピューティング環境についての上記説明は、ネットワーク環境に配備されるサーバーコンピュータ及びクライアントコンピュータの両方に適用される。図2は、例示的なネットワーク構成のコンピューティング環境200を示すもので、サーバー205は、ここに述べる装置及び方法を使用できる通信ネットワークを経てクライアントコンピュータと通信する。図2に示すように、サーバー205は、通信ネットワーク160(固定ワイヤ又はワイヤレスのLAN、WAN、イントラネット、エクストラネット、ピア対ピアネットワーク、インターネット、又は他の通信ネットワークのいずれか、又はその組み合せでよい)を経て、複数のクライアントコンピューティング環境、例えば、タブレットパーソナルコンピュータ210、移動電話215、電話220、パーソナルコンピュータ100、及びパーソナルデジタルアシスタント225に相互接続することができる。更に、ここに述べる装置及び方法は、通信ネットワーク160を経て、自動車のコンピューティング環境(図示せず)、消費者向け電子装置のコンピューティング環境(図示せず)、及びビルの自動制御のコンピューティング環境(図示せず)と協働することができる。例えば、通信ネットワーク160がインターネットであるネットワーク環境では、サーバー205は、複数の既知のプロトコル、例えば、ハイパーテキスト転送プロトコル(HTTP)、ファイル転送プロトコル(FTP)、シンプルオブジェクトアクセスプロトコル(SOAP)、又はワイヤレスアプリケーションプロトコル(WAP)のいずれかを経て、クライアントコンピューティング環境100、210、215、220及び225へ及びそこからデータを通信し処理するように動作できる専用のコンピューティング環境サーバーである。各クライアントコンピューティング環境100、210、215、220及び225は、サーバーコンピューティング環境205へのアクセスを得るために、一又は複数のコンピューティングプログラム180、例えば、ウェブブラウザ(図示せず)、又は移動デスクトップ環境(図示せず)を装備することができる。
実行可能なプログラムは、一般に、プラットホーム依存である。換言すれば、所与のプログラムは、展開されたときに特定のプラットホームでランするように意図され、従って、その特定のプラットホームに対してコンパイルされ、リンクされ、構築されねばならない。また、このようなプロセスから生成されて得られるバイナリ実行可能ファイルは、一般に、異なるプラットホームではランされない。従来のシステムでは、各個々のオペレーティングシステムのために別々の動的ライブラリを構築することが必要となる。複数のオペレーティングシステムをサポートすべき場合には、専用のツールを使用して、ライブラリコードを複数の共有オブジェクト(動的ライブラリ)内に構築しなければならず、即ち各オペレーティングシステムに対して1つずつ構築しなければならない。コードが、個々のプラットホームに対して独特のアイテムを明確に参照しない場合には、所与の当該オペレーティングシステムに対して共有オブジェクトライブラリを生成して、そのオペレーティングシステムから導出される複数のプラットホーム上でファンクションさせるのに充分である。これとは対照的に、ライブラリコードがプラットホーム独特のファンクションに対して明確な依存性を有する場合には、共有オブジェクトを特に所与のプラットホームに対して構築しなければならず、この共有オブジェクトは、一般に、明確な依存性を持たない他のプラットホームでは動作しない。
図9は、一又は複数のPIDLのランタイムリンキングを実行するときに例示的コンピューティング環境により遂行される処理を示す。図示されたように、処理は、動的ライブラリ実行可能ファイルがコンパイルされ構築されるブロック900で始まる(図7において述べたように、例示的な動的バイナリ実行可能は、コンパイルされたメインアプリケーションソースコード、PIDLローダー/リンカーのソースコード、及びPIDLスタブソースコードを含むことができるが、これに限定されない)。ここから、処理は、ブロック910へ進み、例示的コンピューティング環境において動的実行可能ファイル(エグズキュータブル)がランされる。次いで、処理は、ブロック915へ進み、協働するコンピュータプログラムがライブラリファンクションにコールを発することが決定される。次いで、ブロック920において、被呼ファンクションが協働するPIDLにあるかどうか決定するためのチェックが遂行される。ブロック920のチェックが、被呼ファンクションが協働するPIDLにないことを指示すると、処理は、ブロック925へ進み、協働する動的ライブラリが通常のオペレーティングシステム/プラットホームリンカーを通してロードされる。これで処理は終了となる。
あるオペレーティングシステムは、動的なリンキング能力を備えていない。これらのシステムにライブラリが使用されるときには、ライブラリが静的にリンクされる。即ち、ライブラリがリンク時に実行可能バイナリに結合される。実行可能ファイルは、付加的なリンキングを行なわずに実行の準備ができるので、静的でもあり、更に、リンキングが完了した後に変更しなくてもよい。一般的に、静的にリンクされたライブラリは、それが結合された基礎となるプログラムに影響(例えば、切断又は停止)を与えずに変更することができない。また、ライブラリにおけるルーチン及びデータのアドレスはプログラムに結合されるので、これらのアドレスを変更すると、それに結合されたプログラムに機能不良を生じさせる。
移動コンピュータに使用されるあるオペレーティングシステム(OS)(例えば、PalmOS、SymbianOS)は、グローバル変数及び静的な書き込み可能な変数の使用について制約を強いる。このような制約は、オペレーティングシステムがコードのリロケーション及びグローバル変数のアドレスマネージメントを完全に取り扱うのを回避できるようにするために存在し得る。静的変数は、グローバル変数と同じメモリセグメントに保持されるので、書き込み可能な静的変数も、オペレーティングシステムにより禁止されることがある。コンピュータプログラムコードが、このようなオペレーティングシステムを念頭において書き込まれるときには、当然、それらの制約に従い、適合するコードを生成することができる。しかしながら、ライブラリのようなコードの一部が、このような制約を伴わない異なるプラットホームのために記述されたときには、コードは、制約のあるオペレーティングシステムにおいてコンパイル又は構築する程度までルール違反となり得る。これは、第三者のライブラリ及び予め記述されたコードを、ある種のオペレーティングシステムで使用する能力に対して制限を招き、それらの融通性を低減させる。これは、生産的開発を低下させる。というのは、オペレーティングシステムの制約に従うように既存のコードを変更し、また、ある場合には、スクラッチからそれを完全に再記述するのに、時間を費やさねばならないからである。
従来のソフトウェア開発では、オブジェクト指向の解決策をとることができる。特定のタスクを遂行するためのファンクションをコールするのではなく、オブジェクトを生成できると共に、オブジェクトのメソッドをコールして、希望のタスクを遂行することができる。このようなアプローチは、複数のオブジェクトを生成できると共に、複数のタスクを同時にアクティブにできるので、有益である。計算タスクの複数のインスタンスを実行することが有益な状況が複数ある。例えば、映画クリップをドキュメント内で再生しレンダリングするためのライブラリが存在するケースである。このようなドキュメントが2つのこのような映画クリップを含むときには、共通のコードオブジェクトの2つのインスタンスをランさせることによりそれらクリップを同時に再生することが便利である。オブジェクト指向のアプローチがない場合には、開発者は、オブジェクトがタスクを首尾良く遂行する状態に遭遇することがあるが、複数の同じオブジェクトを同時に実行させる際に困難に陥る。
あるコンピューティング装置は、装置が装置製造者又は供給者から運搬されるときに常駐するプログラム及びアプリケーションしか実行できないように、閉じたコンピューティング環境として動作する。このような装置(例えば、移動ワイヤレス装置)は、常駐プログラムをホストするオペレーティングシステムを含むことがあるが、他のアプリケーションがそのホストオペレーティングシステムに対して生成されたときであっても、制約なしにそのアプリケーションを追加することができない。このような閉じたプラットホームは、例えば、音声に加えて、固定セットの特徴(例えば、カメラファクション)が設けられたフューチャーホン(Feature Phone)として知られた移動ハンドセットの大きなカテゴリーである。しかし、これらの特徴は、固定され、ユーザにより拡張することができない。装置は、コンピュータプラットホームが機能を追加できないか又は制約があるために、アフターマーケット(after-market)アプリケーションに対して閉じている。
Claims (77)
- コンピューティング環境内で動作するソフトウェアプラットホーム上でバイナリオブジェクトファイルを動的にロードしてリンクするためのシステムであって、
動的ライブラリ(DL)と、
前記DLに対してソースコードとして生成されるスタブファイルと、
前記ソフトウェアプラットホームで実行されるバイナリ実行可能プログラムを生成し、前記プログラムが前記DLにアクセスしてそれと協働するのを許すように、協働するコンピューティングアプリケーションのソースコード及び前記スタブファイルのソースコードでコンパイルされ構築される動的リンカー/ローダーと、
を備えるシステム。 - 前記DLは、選択された構造を有するバイナリオブジェクトファイルを含む、請求項1に記載のシステム。
- 前記DLの選択された構造は、実行可能・リンキングフォーマット(ELF)、及びポータブル実行可能(PE)フォーマットのいずれかを含む、請求項2に記載のシステム。
- 前記動的リンカー/ローダーは、実行のための協働するコンピューティングアプリケーションを含むバイナリ実行可能プログラムをロードする間に前記ソフトウェアプラットホームにDLをロードするようにDLに対して動作する、請求項2に記載のシステム。
- 前記動的リンカー/ローダーは、前記DLオブジェクトファイルのサイズを決定する、請求項4に記載のシステム。
- 前記動的リンカー/ローダーは、前記ソフトウェアプラットホームにDLオブジェクトをロードするようにメモリを割り当てる、請求項5に記載のシステム。
- 前記動的リンカー/ローダーは、前記バイナリ実行可能プログラムをロードする間に前記協働するコンピューティングアプリケーションにDLをリンクするようにDLに対して動作する、請求項4に記載のシステム。
- 前記DLにおいて動作し、前記DLを協働するコンピューティングアプリケーションと動的にリンクするのに使用するために、エクスポートされるシンボル及びプロパティを記述するソースコードとして前記スタブファイルを生成するためのパーザを更に備える、請求項2に記載のシステム。
- バイナリオブジェクトファイルの再コンパイル又は再構築を必要とせずに、定義されたプロセッサアーキテクチャにおいて実行される複数のソフトウェアプラットホーム及びオペレーティングシステムにわたって単一のバイナリオブジェクトファイルが動的にロードされリンクされる、請求項2に記載のシステム。
- 前記DL、DLスタブファイルのソースコード、及び動的リンカー/ローダーのソースコードと協働するコンピューティングアプリケーションのソースコードが、前記複数のソフトウェアプラットホームのうちの選択されたソフトウェアプラットホームに対するバイナリ実行可能プログラムへとコンパイルされリンクされる、請求項9に記載のシステム。
- 前記DLは、そのDLのバイナリフォーマットをネイティブにサポートしないオペレーティングシステムで動作されるコンピューティング環境のコンピューティングアプリケーションへ動的にロードされリンクされる、請求項4又は7に記載のシステム。
- 前記DLは、バイナリオブジェクトの動的リンキングを遂行するためのネイティブな動的リンキングメカニズムをもたないオペレーティングシステムで動作される制約のあるコンピューティング環境のコンピューティングアプリケーションへ動的にロードされリンクされる、請求項1に記載のシステム。
- 前記協働するコンピューティングアプリケーションへのDLアクセスを与えるインターフェイスモジュールを更に備える、請求項2に記載のシステム。
- 前記インターフェイスモジュールは、前記DLが前記協働するコンピューティングアプリケーションにおける選択されたファンクションをコールするのを許すソースコードを備える、請求項13に記載のシステム。
- 前記インターフェイスモジュールのソースコードは、前記協働するコンピューティングアプリケーションのアプリケーションプログラミングインターフェイスをパーズすることにより生成される、請求項14に記載のシステム。
- 前記インターフェイスモジュールのソースコードは、前記DLによりインポートされるシンボルを識別するようにDLバイナリオブジェクトファイルをパーズすることにより生成される、請求項14に記載のシステム。
- 前記インターフェイスモジュールのソースコード、前記協働するコンピューティングアプリケーションのソースコード、前記スタブファイルのソースコード、及び前記動的リンカー/ローダーのソースコードは、前記ソフトウェアプラットホームに対してコンパイルされる、請求項14に記載のシステム。
- 前記動的リンカー/ローダーは、前記協働するコンピューティングアプリケーション及び前記DLを前記ソフトウェアプラットホーム上のラン可能なプロセスに結合するようにシンボルの分析及びリロケーションを取り扱う、請求項7に記載のシステム。
- 前記ラン可能なプロセスは、複数の動的ライブラリと協働してそれに結合するためのコンピューティングアプリケーションを含む、請求項18に記載のシステム。
- 前記動的リンカー/ローダーは、前記ファイルを前記協働するコンピューティングアプリケーションにリンクするときに、DLファイルと非DLファイルとを区別する、請求項18に記載のシステム。
- 前記ラン可能なプロセスは、前記協働するコンピューティングアプリケーションを、前記DLにリンクすると共に、前記ソフトウェアプラットホームに対してネイティブな動的にリンクされたライブラリにリンクする、請求項20に記載のシステム。
- バイナリコード及び/又はデータを含むDLを生成するようにライブラリソースコードがコンパイルされる、請求項1に記載のシステム。
- 前記DLは、前記ソフトウェアプラットホーム上で実行されるバイナリ実行可能プログラムに動的にロードされリンクされ、更に、前記ライブラリソースコードは、前記ソフトウェアプラットホームのプログラミング制約に違反するコードを含む、請求項22に記載のシステム。
- 前記プログラミング制約は、グローバル変数の使用に関する制約、又は書き込み可能な静的変数の使用に関する制約、又はポインタ変数の静的初期化に関する制約を含む、請求項23に記載のシステム。
- 前記動的リンカー/ローダーは、前記DLがリンクされるプログラムのロード中に前記ソフトウェアプラットホームに前記DLオブジェクトをロードするようにメモリブロックを割り当てる、請求項24に記載のシステム。
- 前記動的リンカー/ローダーは、前記ライブラリにおいて定義されたグローバル変数又は書き込み可能な静的変数の範囲を、前記DLにより占有されるメモリブロックに拘束するように動作する、請求項25に記載のシステム。
- 前記ライブラリソースコードは、コードの複数の実行インスタンス又は繰り返し実行を制約する仕方でデータを取り扱い且つデータにアクセスファンクションを与えるためのコードを含み、
前記動的リンカー/ローダーは、前記ライブラリのインスタンスを、動的に割り当てられたメモリブロックにロードし、ここでは、前記ライブラリコードにおいて定義されたデータ変数の範囲が前記メモリブロックに拘束される、請求項17に記載のシステム。 - 同じライブラリの複数の非衝突インスタンスが前記コンピューティング環境において実行可能である、請求項27に記載のシステム。
- 前記DLにより使用されるデータは、前記コード内に定義されたグローバル変数又は静的変数により参照される、請求項27に記載のシステム。
- 単一のコンピューティング環境プロセス内に複数の実行インスタンスを許すために非オブジェクト指向のコードをロードする、請求項27に記載のシステム。
- ライブラリデータの複数のセットが単一のコンピューティング環境プロセス内で同時に動作して、各ライブラリデータセット間で衝突が軽減され及び/又は除去されるようにする、請求項30に記載のシステム。
- 単一のコンピューティング環境プロセス内にコードの繰り返し実行を許すために非オブジェクト指向のコードをロードする、請求項27に記載のシステム。
- 複数のプロセスをサポートしないコンピューティング環境においてコードの複数の実行インスタンス及び繰り返し実行を許すためにコードをロードする、請求項27に記載のシステム。
- 前記コンピューティング環境は、非常駐の実行可能プログラムを前記コンピューティング環境に展開することに関して制約を受け、更に、前記協働するコンピューティングアプリケーションは、前記DLを実行中のランチャアプリケーションに動的にリンクすることにより、前記制約のあるコンピューティング環境に使用できるファンクションを拡張するよう動作できるランチャアプリケーションを備える、請求項2に記載のシステム。
- 前記制約のあるコンピューティング環境は、前記コンピューティング環境に対しネイティブな実行可能プログラムの追加を許さない、請求項34に記載のシステム。
- 前記コンピューティング環境は、前記コンピューティング環境において実行できるプログラムの最大サイズについて制約を課する、請求項34に記載のシステム。
- 前記コンピューティング環境は、ランタイム環境(RTE)をサポートする、請求項34に記載のシステム。
- 前記RTE内でランするプログラムは、前記ネイティブなコンピューティング環境に使用できる一又は複数のファンクションへの制約のあるアクセスを有する、請求項37に記載のシステム。
- 前記RTEは、前記RTEにより認証されたプログラムしかランしないように動作を制約する、請求項37に記載のシステム。
- 前記RTEは、Java2モバイル・エディション(J2ME)RTE、及びバイナリ・ランタイム・エンビロンメント・フォー・ワイヤレス(BREW)RTEのいずれかを含む、請求項37に記載のシステム。
- 前記ランチャモジュールは、前記コンピューティング環境においてネイティブなコンピューティングアプリケーションとして動作するように書き込まれる、請求項34に記載のシステム。
- 前記ランチャは、前記コンピューティング環境の前記ランタイム環境内でコンピューティングアプリケーションとして動作するように書き込まれる、請求項37に記載のシステム。
- 少なくとも2つのランチャモジュールを更に備える、請求項41に記載のシステム。
- 前記DLは、フラッシュメモリユニット、固定メモリユニット、及びマイクロドライブのいずれかを含む前記コンピューティング環境から物理的に離れた記憶媒体に記憶される、請求項34に記載のシステム。
- 前記ランチャアプリケーションを含む前記バイナリ実行可能プログラムは、フラッシュメモリユニット、固定メモリ媒体ユニット、及びマイクロドライブのいずれかを含む前記コンピューティング環境から物理的に離れた記憶媒体に記憶される、請求項34に記載のシステム。
- 前記DLは、前記制約のあるコンピューティング環境へのコンテンツの安全な配布を促進するようにデジタル権利マネージメント構成で使用される、請求項34に記載のシステム。
- コンピューティング環境内で動作するソフトウェアプラットホーム上でバイナリオブジェクトを一体化する方法であって、
ライブラリソースコードを用意するステップと、
選択されたフォーマットをもつオブジェクトファイルを含むコードライブラリ(CL)を生成するように前記ライブラリソースコードをコンパイルするステップと、
前記CLのためのスタブファイルをソースコードとして生成するステップと、
動的リンカー/ローダーのソースコードを、前記ライブラリと協働するコンピューティングアプリケーションのソースコード、及び前記スタブファイルのソースコードと一緒にコンパイル及び構築して、前記ソフトウェアプラットホームで実行されるバイナリ実行可能プログラムを生成するステップと、
前記ソフトウェアプラットホーム上で実行するために前記プログラムがロードされるときに、前記CLを動的にロードして前記協働するコンピューティングアプリケーションとリンクするステップと、
を備える方法。 - ELFファイルフォーマット又はPEファイルフォーマットを含むオブジェクトファイルフォーマットを選択するステップを更に備える、請求項47に記載の方法。
- 前記CLを協働するコンピューティングアプリケーションと動的にリンクするのに使用するために、エクスポートされるシンボル及びプロパティを記述するソースコードとして前記スタブファイルを生成するように前記CLオブジェクトをパーズするステップを更に備える、請求項48に記載の方法。
- 前記CLを、ロード時に、コンピューティング環境のメモリに動的にロードするように、前記動的リンカー/ローダーによりメモリブロックを割り当てるステップを更に備える、請求項47に記載の方法。
- 協働するコンピューティングアプリケーションにより使用するためにCLシンボルを分析しリロケーションするように前記CLをリンクするステップを更に備える、請求項50に記載の方法。
- 前記協働するコンピューティングアプリケーションにおいて選択されたファンクションをコールするためのライブラリアクセスを与えるソースコードとしてインターフェイスモジュールを用意するステップを更に備える、請求項47に記載の方法。
- 前記インターフェイスモジュールのソースコード、前記協働するコンピューティングアプリケーションのソースコード、前記スタブファイルのソースコード、及び前記動的リンカー/ローダーのソースコードを、前記ソフトウェアプラットホームで実行されるバイナリ実行可能プログラムへとコンパイルするステップを更に備える、請求項52に記載の方法。
- 前記バイナリオブジェクトファイルを再コンパイル又は再構築する必要なく、定義されたプロセッサアーキテクチャで実行される複数のソフトウェアプラットホーム及びオペレーティングシステムにわたって単一のバイナリオブジェクトファイルを一体化するステップを更に備える、請求項47に記載の方法。
- 前記CLと協働するコンピューティングアプリケーションのソースコード、スタブファイルのソースコード、及び前記動的リンカー/ローダーのソースコードを、前記複数のソフトウェアプラットホームのうちの選択された1つに対するバイナリ実行可能プログラムへとコンパイルしリンクするステップを更に備える、請求項54に記載の方法。
- 前記コンピューティング環境は、前記選択されたオブジェクトフォーマットをネイティブにサポートしない、請求項47に記載の方法。
- バイナリオブジェクトの動的リンキングを遂行するためのネイティブな動的リンキングメカニズムをもたないオペレーティングシステムで動作される制約のあるコンピューティング環境において前記CLをロードしてそれをコンピューティングアプリケーションにリンクするステップを更に備える、請求項47に記載の方法。
- 前記ライブラリソースコードは、前記ソフトウェアプラットホームのプログラミング制約に違反するコードを含む、請求項50に記載の方法。
- 前記プログラミング制約は、グローバル変数の使用に関する制約、書き込み可能な静的変数の使用に関する制約、及びポインタ変数の静的初期化に関する制約のいずれかを含む、請求項58に記載の方法。
- 前記ライブラリにおいて定義されたグローバル変数又は書き込み可能な静的変数の範囲を、前記CLにより占有されるメモリブロックに拘束するステップを更に備える、請求項59に記載の方法。
- 前記ライブラリソースコードは、コードの複数の実行インスタンス又は繰り返し実行を制約する仕方でデータを取り扱い且つデータへのアクセスファンクションを与えるためのコードを含み、
前記方法は、更に、前記ライブラリのインスタンスを、前記動的リンカー/ローダーにより、動的に割り当てられたメモリブロックにロードするステップを備え、ここでは、前記ライブラリコードにおいて定義されたデータ変数の範囲が前記メモリブロックに拘束される、請求項47に記載の方法。 - 単一のコンピューティング環境プロセス内で実行されるべき同じライブラリの複数の非衝突インスタンスをロードするステップを更に備える、請求項61に記載の方法。
- ライブラリデータの複数のセットが単一のコンピューティング環境プロセス内で同時に動作して、各ライブラリデータセット間で衝突が軽減され及び/又は除去されるようにする、請求項62に記載の方法。
- 単一のコンピューティング環境プロセス内でコードの実行を繰り返すために、非オブジェクト指向のコードをロードするステップを更に備える、請求項61に記載の方法。
- 前記コンピューティング環境は、複数のプロセスをサポートしない、請求項62又は64に記載の方法。
- 前記コンピューティング環境は、非常駐の実行可能プログラムを前記コンピューティング環境に展開することに関して制約を受け、
前記方法は、更に、前記CLを、前記協働するコンピューティングアプリケーション内に含まれた実行中のランチャアプリケーションと動的にリンクすることにより、前記制約のあるコンピューティング環境に使用できるファンクションを拡張するステップを備える、請求項47に記載の方法。 - 前記コンピューティング環境は、一又は複数の制約を受け、これら制約は、
前記コンピューティング環境がネイティブな実行可能プログラムの追加に対して閉じていること、
前記コンピューティング環境が、実行を、プログラムサイズ限界内に入るプログラムに制限すること、
前記コンピューティング環境がランタイム環境(RTE)を有し、このRTE内でランするプログラムが、ネイティブなコンピューティング環境に使用できる一又は複数のファンクションへの制約されたアクセスを有すること、
前記コンピューティング環境のRTEが、そのRTEに対して認証されたプログラムしかランしないように動作を制約すること、及び
前記コンピューティング環境が動的リンキングを許さないこと、
の一又は複数を含む請求項66に記載の方法。 - 定義されたプロセッサアーキテクチャで動作する異種のコンピューティングソフトウェア環境にわたって使用するためのコンピューティングライブラリを配布する方法であって、
選択された構造を有するバイナリオブジェクトファイルとして動的ライブラリ(DL)を生成するステップと、
前記DLに対してソースコードとしてスタブファイルを生成するステップと、
動的リンカーのソースコードを、前記DLスタブファイルのソースコード、及び少なくとも1つのコンピューティング環境で動作できる協働するコンピューティングアプリケーションのソースコードと一緒にコンパイルすることにより、バイナリ実行可能プログラムを構築するステップと、
通信ネットワーク及び記憶媒体のいずれかを含む入力ソースから前記異種のコンピューティング環境へ前記DLを通信するステップと、
を備える方法。 - 少なくとも1つのDLと協働する前記コンピューティングアプリケーションの新たなバージョンを通信するステップを更に備える、請求項68に記載の方法。
- 前記コンピューティングアプリケーションと協働する前記DLの新たなバージョンを通信するステップを更に備える、請求項68に記載の方法。
- コンピューティング環境で使用するためのコンピューティングライブラリを配布するもので、前記コンピューティング環境は、一又は複数の制約を受け、これらの制約は、
前記コンピューティング環境がネイティブな実行可能プログラムの追加に対して閉じていること、
前記コンピューティング環境が、実行を、プログラムサイズ限界内に入るプログラムに制限すること、
前記コンピューティング環境がランタイム環境(RTE)を有し、このRTE内でランするプログラムが、ネイティブなコンピューティング環境に使用できる一又は複数のファンクションへの制約されたアクセスを有すること、
前記コンピューティング環境のRTEが、そのRTEに対して認証されたプログラムしかランしないように動作を制約すること、及び
前記コンピューティング環境が動的リンキングを許さないこと、
の一又は複数を含む請求項68に記載の方法。 - プロキシとして動作できるコンピューティング装置に、協働するランチャアプリケーションをダウンロードし、通信ネットワーク及び記憶媒体のいずれかを含む入力ソースからそのコンピューティング装置に使用できる動的ライブラリへの前記ランチャプログラムによるアクセスを許すステップを更に備える、請求項71に記載の方法。
- スタブファイルが前記ランチャアプリケーションでコンパイルされる動的ライブラリが前記コンピューティング装置に使用できるようになったときに、前記ランチャアプリケーションの範囲を、協働する動的ライブラリの付加的なファンクションを含むように拡張するステップを更に備える、請求項72に記載の方法。
- 前記協働するコンピューティングアプリケーションは、コンピューティング装置をエンドユーザに販売するために出荷する前に、コンピューティング装置のコンピューティング環境に対して展開される、請求項68に記載の方法。
- 前記協働するコンピューティングアプリケーションは、コンピューティング装置をエンドユーザに販売するために出荷した後に、コンピューティング装置のコンピューティング環境に対して展開される、請求項68に記載の方法。
- 前記コンピューティング装置は、移動電話又はワイヤレスイネーブル型ハンドセットである、請求項74又は75に記載の方法。
- 前記DLは、前記コンピューティング環境へのコンテンツの安全な配布を促進するようにデジタル権利マネージメント構成で使用される、請求項68に記載の方法。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/965,361 | 2004-10-12 | ||
US10/965,361 US20060080680A1 (en) | 2004-10-12 | 2004-10-12 | Platform independent dynamic linking |
US10/964,272 US20060080683A1 (en) | 2004-10-12 | 2004-10-12 | Mechanism to circumvent restrictions of pre-written code components |
US10/964,232 | 2004-10-12 | ||
US10/964,231 US7444625B2 (en) | 2004-10-12 | 2004-10-12 | Concurrent code loading mechanism |
US10/964,232 US7533376B2 (en) | 2004-10-12 | 2004-10-12 | Dynamic linking in constrained environment |
US10/964,231 | 2004-10-12 | ||
US10/964,272 | 2004-10-12 | ||
US10/964,315 US20060080681A1 (en) | 2004-10-12 | 2004-10-12 | Mechanism to extend functionality in a restricted computing environment |
US10/964,315 | 2004-10-12 | ||
PCT/GB2005/003617 WO2006040505A1 (en) | 2004-10-12 | 2005-09-21 | Platform-independent dynamic linking |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2008516323A true JP2008516323A (ja) | 2008-05-15 |
JP5090169B2 JP5090169B2 (ja) | 2012-12-05 |
Family
ID=35478278
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007535225A Expired - Fee Related JP5090169B2 (ja) | 2004-10-12 | 2005-09-21 | プラットホーム独立の動的リンキング |
Country Status (6)
Country | Link |
---|---|
US (1) | US20060080682A1 (ja) |
EP (1) | EP1810134B1 (ja) |
JP (1) | JP5090169B2 (ja) |
KR (1) | KR20070062606A (ja) |
AT (1) | ATE509312T1 (ja) |
WO (1) | WO2006040505A1 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010244516A (ja) * | 2009-04-03 | 2010-10-28 | Lsi Corp | ダイナミックライブラリを有するインターフェースを単純化するための方法 |
WO2022102990A1 (ko) * | 2020-11-12 | 2022-05-19 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8026161B2 (en) | 2001-08-30 | 2011-09-27 | Micron Technology, Inc. | Highly reliable amorphous high-K gate oxide ZrO2 |
US20060080680A1 (en) * | 2004-10-12 | 2006-04-13 | Majid Anwar | Platform independent dynamic linking |
US20060080681A1 (en) * | 2004-10-12 | 2006-04-13 | Majid Anwar | Mechanism to extend functionality in a restricted computing environment |
US7687409B2 (en) | 2005-03-29 | 2010-03-30 | Micron Technology, Inc. | Atomic layer deposited titanium silicon oxide films |
US9063725B2 (en) * | 2005-06-24 | 2015-06-23 | Oracle International Corporation | Portable management |
US9542175B2 (en) * | 2005-06-24 | 2017-01-10 | Oracle International Corporation | Continuous deployment |
US9075596B2 (en) * | 2005-06-24 | 2015-07-07 | Oracle International Corporation | Deployment |
US7886018B2 (en) | 2005-06-24 | 2011-02-08 | Oracle International Corporation | Portable metadata service framework |
US20070250828A1 (en) * | 2005-11-16 | 2007-10-25 | Tseitlin Ariel D | Portable libraries |
US20070226731A1 (en) * | 2005-11-16 | 2007-09-27 | Tseitlin Ariel D | Modularity |
US7709402B2 (en) | 2006-02-16 | 2010-05-04 | Micron Technology, Inc. | Conductive layers for hafnium silicon oxynitride films |
US20090199171A1 (en) * | 2006-03-01 | 2009-08-06 | Nokia Corporation | Code Size Reduction by Outlining Specific Functions in a Library |
JP4979287B2 (ja) * | 2006-07-14 | 2012-07-18 | 富士ゼロックス株式会社 | 画像処理装置及びプログラム |
GB2442495B (en) * | 2006-10-02 | 2009-04-01 | Transitive Ltd | Method and apparatus for handling dynamically linked function cells with respect to program code conversion |
KR100866211B1 (ko) | 2007-01-03 | 2008-10-30 | 삼성전자주식회사 | 프로그램 개발 장치 및 방법과 이를 이용한 프로그램업데이트 방법 |
CN101546260B (zh) | 2008-03-28 | 2012-07-11 | 国际商业机器公司 | 用于重构面向服务的应用的方法及其设备 |
US20090271436A1 (en) * | 2008-04-23 | 2009-10-29 | Josef Reisinger | Techniques for Providing a Virtual-World Object Based on a Real-World Object Description |
US8327316B2 (en) * | 2008-09-30 | 2012-12-04 | Ics Triplex Isagraf Inc. | Compilation model |
US8529346B1 (en) * | 2008-12-30 | 2013-09-10 | Lucasfilm Entertainment Company Ltd. | Allocating and managing software assets |
US20110113409A1 (en) * | 2009-11-10 | 2011-05-12 | Rodrick Evans | Symbol capabilities support within elf |
US8516455B2 (en) * | 2011-06-14 | 2013-08-20 | International Business Machines Corporation | Dynamic loading of kernel extensions |
KR101877841B1 (ko) * | 2011-08-30 | 2018-08-10 | 대우조선해양 주식회사 | 아비바 마린(Aveva Marine) 캐드 시스템 내의 Add-in 프로그램 개발 방법 |
US9081594B1 (en) * | 2011-09-30 | 2015-07-14 | Emc Corporation | Managing data storage systems in virtual systems based on storage awareness |
US8615745B2 (en) | 2011-10-03 | 2013-12-24 | International Business Machines Corporation | Compiling code for an enhanced application binary interface (ABI) with decode time instruction optimization |
US8756591B2 (en) | 2011-10-03 | 2014-06-17 | International Business Machines Corporation | Generating compiled code that indicates register liveness |
US8612959B2 (en) | 2011-10-03 | 2013-12-17 | International Business Machines Corporation | Linking code for an enhanced application binary interface (ABI) with decode time instruction optimization |
US9436487B2 (en) * | 2012-03-29 | 2016-09-06 | Adobe Systems Incorporated | Method and apparatus for creating a platform agnostic application file |
US9569184B2 (en) * | 2012-09-05 | 2017-02-14 | Microsoft Technology Licensing, Llc | Generating native code from intermediate language code for an application |
US10481918B1 (en) * | 2012-09-28 | 2019-11-19 | Emc Corporation | Execution path determination in a distributed environment |
KR101649403B1 (ko) * | 2014-04-25 | 2016-08-18 | 한양대학교 산학협력단 | 어플리케이션 로딩 장치 및 방법 |
US20160085604A1 (en) * | 2014-09-24 | 2016-03-24 | Unisys Corporation | Dynamic method invocation via proxy framework |
US10684984B2 (en) | 2016-12-21 | 2020-06-16 | Intel Corporation | Computing devices and server systems with processing cores having different instruction set architectures |
US10713213B2 (en) * | 2016-12-21 | 2020-07-14 | Intel Corporation | Systems and methods for multi-architecture computing |
US10552207B2 (en) | 2016-12-21 | 2020-02-04 | Intel Corporation | Systems and methods for multi-architecture computing including program stack translation |
US11275709B2 (en) | 2017-05-02 | 2022-03-15 | Intel Corporation | Systems and methods for multi-architecture computing |
US10606611B2 (en) | 2017-06-02 | 2020-03-31 | Apple Inc. | Techniques for performing dynamic linking |
CN107295573B (zh) * | 2017-07-12 | 2019-08-02 | 网宿科技股份有限公司 | 一种业务应用流量的引导方法和系统 |
US10459825B2 (en) * | 2017-08-18 | 2019-10-29 | Red Hat, Inc. | Intelligent expansion of system information collection |
US10474479B1 (en) | 2018-06-03 | 2019-11-12 | Apple Inc. | Preventing framework conflicts for multi-OS applications |
JP6950665B2 (ja) * | 2018-11-02 | 2021-10-13 | 横河電機株式会社 | エンジニアリング装置、エンジニアリング装置の制御方法及びプログラム |
US10908892B2 (en) * | 2019-03-12 | 2021-02-02 | International Business Machines Corporation | Generating and deploying object code files compiled on build machines |
CN111913762B (zh) * | 2020-08-20 | 2024-04-19 | 北京机电工程研究所 | 一种预留运行内存空间的dsp动态加载方法 |
US11340914B2 (en) | 2020-10-21 | 2022-05-24 | Red Hat, Inc. | Run-time identification of dependencies during dynamic linking |
CN115082058B (zh) * | 2022-07-25 | 2022-11-18 | 上海富友支付服务股份有限公司 | 一种基于动态控制的虚拟账户交易管理方法及系统 |
CN115390945B (zh) * | 2022-09-06 | 2023-05-23 | 北京领雾科技有限公司 | 应用程序的运行方法、装置、电子设备及可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08339296A (ja) * | 1995-02-27 | 1996-12-24 | Internatl Business Mach Corp <Ibm> | 動的リンク・ライブラリをプログラムにリンクする方法 |
JPH10228381A (ja) * | 1997-01-27 | 1998-08-25 | Internatl Business Mach Corp <Ibm> | 組み込みシステムにライブラリをロードする方法及び装置 |
JP2004070944A (ja) * | 2002-08-05 | 2004-03-04 | Hewlett-Packard Development Co Lp | アプリケーション向けにオペレーティングシステム機能を拡張するシステムおよび方法 |
Family Cites Families (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2077273C (en) * | 1991-12-12 | 1996-12-03 | Mike H. Conner | Language neutral objects |
JPH05257664A (ja) * | 1991-12-12 | 1993-10-08 | Internatl Business Mach Corp <Ibm> | バージョン独立のオブジェクト指向アプリケーション・プログラムを生成するシステム及び方法 |
US5421016A (en) * | 1991-12-12 | 1995-05-30 | International Business Machines Corporation | System and method for dynamically invoking object methods from an application designed for static method invocation |
US5432937A (en) * | 1993-08-20 | 1995-07-11 | Next Computer, Inc. | Method and apparatus for architecture independent executable files |
US5732270A (en) * | 1994-09-15 | 1998-03-24 | Visual Edge Software Limited | System and method for providing interoperability among heterogeneous object systems |
US6091897A (en) * | 1996-01-29 | 2000-07-18 | Digital Equipment Corporation | Fast translation and execution of a computer program on a non-native architecture by use of background translator |
US6769126B1 (en) * | 1996-12-10 | 2004-07-27 | International Business Machines Corporation | Apparatus and method for demand load analysis |
US6499137B1 (en) * | 1998-10-02 | 2002-12-24 | Microsoft Corporation | Reversible load-time dynamic linking |
US6496843B1 (en) * | 1999-03-31 | 2002-12-17 | Verizon Laboratories Inc. | Generic object for rapid integration of data changes |
US6460178B1 (en) * | 1999-06-30 | 2002-10-01 | Microsoft Corporation | Shared library optimization for heterogeneous programs |
US6901588B1 (en) * | 2000-04-17 | 2005-05-31 | Codemesh, Inc. | Sharing components between programming languages by use of polymorphic proxy |
US6769115B1 (en) * | 2000-05-01 | 2004-07-27 | Emc Corporation | Adaptive interface for a software development environment |
US6708330B1 (en) * | 2000-06-13 | 2004-03-16 | Cisco Technology, Inc. | Performance improvement of critical code execution |
AU2002307080A1 (en) * | 2001-04-23 | 2002-11-05 | Atmel Corporation | Microprocessor for executing byte compiled java code |
US6986148B2 (en) * | 2001-07-17 | 2006-01-10 | Appforge, Inc. | Methods and systems for providing platform-independent shared software components for mobile devices |
US20030149743A1 (en) * | 2002-02-06 | 2003-08-07 | Shumeet Baluja | Data logging for resident applications within portable electronic devices |
US20040123308A1 (en) * | 2002-12-20 | 2004-06-24 | Siemens Information And Communication Networks, Inc. | Hybird of implicit and explicit linkage of windows dynamic link labraries |
US7472286B2 (en) * | 2003-08-29 | 2008-12-30 | Microsoft Corporation | Selectively authorizing software functionality after installation of the software |
US7412700B2 (en) * | 2004-05-18 | 2008-08-12 | Oracle International Corporation | Product packaging and installation mechanism |
US20060026584A1 (en) * | 2004-07-27 | 2006-02-02 | Muratori Richard D | Explicit linking of dynamic link libraries |
US20060080683A1 (en) * | 2004-10-12 | 2006-04-13 | Majid Anwar | Mechanism to circumvent restrictions of pre-written code components |
US7444625B2 (en) * | 2004-10-12 | 2008-10-28 | Picsel (Research) Limited | Concurrent code loading mechanism |
US7533376B2 (en) * | 2004-10-12 | 2009-05-12 | Picsel (Research) Limited | Dynamic linking in constrained environment |
-
2005
- 2005-01-19 US US11/039,270 patent/US20060080682A1/en not_active Abandoned
- 2005-09-21 KR KR1020077010884A patent/KR20070062606A/ko active IP Right Grant
- 2005-09-21 EP EP05784403A patent/EP1810134B1/en not_active Not-in-force
- 2005-09-21 JP JP2007535225A patent/JP5090169B2/ja not_active Expired - Fee Related
- 2005-09-21 AT AT05784403T patent/ATE509312T1/de not_active IP Right Cessation
- 2005-09-21 WO PCT/GB2005/003617 patent/WO2006040505A1/en active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH08339296A (ja) * | 1995-02-27 | 1996-12-24 | Internatl Business Mach Corp <Ibm> | 動的リンク・ライブラリをプログラムにリンクする方法 |
JPH10228381A (ja) * | 1997-01-27 | 1998-08-25 | Internatl Business Mach Corp <Ibm> | 組み込みシステムにライブラリをロードする方法及び装置 |
JP2004070944A (ja) * | 2002-08-05 | 2004-03-04 | Hewlett-Packard Development Co Lp | アプリケーション向けにオペレーティングシステム機能を拡張するシステムおよび方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010244516A (ja) * | 2009-04-03 | 2010-10-28 | Lsi Corp | ダイナミックライブラリを有するインターフェースを単純化するための方法 |
WO2022102990A1 (ko) * | 2020-11-12 | 2022-05-19 | 삼성전자주식회사 | 전자 장치 및 이의 제어 방법 |
Also Published As
Publication number | Publication date |
---|---|
ATE509312T1 (de) | 2011-05-15 |
EP1810134A1 (en) | 2007-07-25 |
WO2006040505A1 (en) | 2006-04-20 |
EP1810134B1 (en) | 2011-05-11 |
JP5090169B2 (ja) | 2012-12-05 |
KR20070062606A (ko) | 2007-06-15 |
US20060080682A1 (en) | 2006-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5090169B2 (ja) | プラットホーム独立の動的リンキング | |
US7533376B2 (en) | Dynamic linking in constrained environment | |
US7444625B2 (en) | Concurrent code loading mechanism | |
US20060080680A1 (en) | Platform independent dynamic linking | |
JP2008516324A (ja) | ランタイム動的リンキング | |
US20060080681A1 (en) | Mechanism to extend functionality in a restricted computing environment | |
US7337436B2 (en) | System and method for cross platform and configuration build system | |
Richter | Applied Microsoft. NET framework programming | |
US9459893B2 (en) | Virtualization for diversified tamper resistance | |
US6484309B2 (en) | Enabling software designed for one operating system to operate on another operating system | |
WO2022083316A1 (zh) | 一种应用运行的方法、装置及计算机存储介质 | |
US7730472B2 (en) | Dynamic linking of modules in a pre-operating system environment | |
CN106605212A (zh) | 在动态链接的运行时环境中的模块化共同版本管理 | |
WO2007137403A1 (en) | System and method of generating applications for mobile devices | |
US20060080683A1 (en) | Mechanism to circumvent restrictions of pre-written code components | |
US20040083467A1 (en) | System and method for executing intermediate code | |
CN106796521B (zh) | 独立于产品发布的api版本控制 | |
JP2012516483A (ja) | クラスファイル内にネイティブコードを埋め込むことによる仮想メカニズム内でのプラットフォーム依存ルーチンの適用 | |
Chakravarthy et al. | Edicts: implementing features with flexible binding times | |
US20040157593A1 (en) | Modularization for J2ME platform implementation | |
Choi et al. | x86‐Android performance improvement for x86 smart mobile devices | |
CN112416418A (zh) | 应用组件的生成方法、装置、计算机设备和可读存储介质 | |
US20150052514A1 (en) | Method and computer system of distributing a computer program product | |
US11720374B1 (en) | Dynamically overriding a function based on a capability set | |
Daubaris | Towards Adaptive WebAssembly Applications: Leveraging Capabilities of the Execution Environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080825 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20111004 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20111226 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120106 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20120301 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20120308 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120402 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20120522 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20120720 |
|
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: 20120814 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120912 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150921 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |