JPH09198260A - 異なるオペレーティング・システムで実行されるように作成されたプロセス間に相互運用性をもたらす方法およびシステム - Google Patents
異なるオペレーティング・システムで実行されるように作成されたプロセス間に相互運用性をもたらす方法およびシステムInfo
- Publication number
- JPH09198260A JPH09198260A JP8115243A JP11524396A JPH09198260A JP H09198260 A JPH09198260 A JP H09198260A JP 8115243 A JP8115243 A JP 8115243A JP 11524396 A JP11524396 A JP 11524396A JP H09198260 A JPH09198260 A JP H09198260A
- Authority
- JP
- Japan
- Prior art keywords
- context
- operating system
- context object
- name
- run
- 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
Links
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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- 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/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45537—Provision of facilities of other operating environments, e.g. WINE
-
- 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/541—Interprogram communication via adapters, e.g. between incompatible applications
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
(57)【要約】 (修正有)
【課題】 本来2つの異なるオペレーティング・システ
ムで実行されるように作成されているが、実際には第3
のオペレーティング・システムで実行されるそれぞれの
プロセスの間の相互運用性を容易とする。 【解決手段】 本来第1のオペレーティング・システム
で実行されるように作成された親プロセスは、実行中の
ある時点で、本来第2のオペレーティング・システムで
作動するように作成されている子プロセスを生じる。そ
の際、親プロセスはそのコンテキスト・オブジェクトの
コピーをインスタンス化し、次いで、第2のプロセスが
使用するオブジェクト名が第1のオペレーティング・シ
ステムに対するコンテキスト・オブジェクトに関して解
釈される前に第2のオペレーティング・システムに関連
するコンテキスト・オブジェクトに関して解釈されるよ
うにするコンテキスト・マージ操作を行う。
ムで実行されるように作成されているが、実際には第3
のオペレーティング・システムで実行されるそれぞれの
プロセスの間の相互運用性を容易とする。 【解決手段】 本来第1のオペレーティング・システム
で実行されるように作成された親プロセスは、実行中の
ある時点で、本来第2のオペレーティング・システムで
作動するように作成されている子プロセスを生じる。そ
の際、親プロセスはそのコンテキスト・オブジェクトの
コピーをインスタンス化し、次いで、第2のプロセスが
使用するオブジェクト名が第1のオペレーティング・シ
ステムに対するコンテキスト・オブジェクトに関して解
釈される前に第2のオペレーティング・システムに関連
するコンテキスト・オブジェクトに関して解釈されるよ
うにするコンテキスト・マージ操作を行う。
Description
【0001】
【発明の属する技術分野】本発明の方法およびシステム
は総括的にコンピュータ・プログラム相互運用性の分野
に関し、詳細にいえば、本来2つの異なるオペレーティ
ング・システムで実行されるように作成されているが、
実際には第3のオペレーティング・システムで実行され
る、2つ以上のプロセスの間の相互運用性を容易とする
ことに関する。
は総括的にコンピュータ・プログラム相互運用性の分野
に関し、詳細にいえば、本来2つの異なるオペレーティ
ング・システムで実行されるように作成されているが、
実際には第3のオペレーティング・システムで実行され
る、2つ以上のプロセスの間の相互運用性を容易とする
ことに関する。
【0002】
【従来の技術】多数の異なるオペレーティング・システ
ム・ベンダが現在新しいオペレーティング・システムを
開発している。これらの新しいオペレーティング・シス
テムの中には、その設計目標が新しいオペレーティング
・システムで作動する互換性のなさを継承したアプリケ
ーションの間での相互運用性をもたらそうとするものが
ある。たとえば、Sun Microsystemsの
新しいSpringオペレーティング・システムの開発
者はSolaris 1.xファミリーのオペレーティ
ング・システム向けに作成されたアプリケーションとS
olaris 2.xファミリーのオペレーティング・
システム向けに作成されたものとの間に相互運用性をも
たらそうとしている。Sun、SolarisおよびS
un MicrosystemsはSun Micro
systems,Inc.の登録商標である。Spri
ngは社内コード・ネームに過ぎず、商標あるいは市販
製品名のいずれかを表すことを意図するものではない。
この設計目標を満たすにあたっての問題は2つある。ま
ず、ある複数のアプリケーション、すなわちそれぞれ継
承してできたアプリケーションが、それぞれ異なるオペ
レーティング・システムで作動するように作成されてい
る場合、これら相互の間で互換性がない。たとえば、S
olaris 2.4オペレーティング・システムで作
動するように作成されたワードプロセッサ・プログラム
は、Solaris 1.0オペレーティング・システ
ムで作動するように作成されたスプレッドシート・プロ
グラムと対話できないことがある。したがって、これら
のアプリケーション・プログラムのユーザは、ワードプ
ロセッサ・プログラムの文章とスプレッドシート・プロ
グラムのスプレッドシート・セルとを含んでいる、販売
報告書などの複合文書を作成できないこととなる。
ム・ベンダが現在新しいオペレーティング・システムを
開発している。これらの新しいオペレーティング・シス
テムの中には、その設計目標が新しいオペレーティング
・システムで作動する互換性のなさを継承したアプリケ
ーションの間での相互運用性をもたらそうとするものが
ある。たとえば、Sun Microsystemsの
新しいSpringオペレーティング・システムの開発
者はSolaris 1.xファミリーのオペレーティ
ング・システム向けに作成されたアプリケーションとS
olaris 2.xファミリーのオペレーティング・
システム向けに作成されたものとの間に相互運用性をも
たらそうとしている。Sun、SolarisおよびS
un MicrosystemsはSun Micro
systems,Inc.の登録商標である。Spri
ngは社内コード・ネームに過ぎず、商標あるいは市販
製品名のいずれかを表すことを意図するものではない。
この設計目標を満たすにあたっての問題は2つある。ま
ず、ある複数のアプリケーション、すなわちそれぞれ継
承してできたアプリケーションが、それぞれ異なるオペ
レーティング・システムで作動するように作成されてい
る場合、これら相互の間で互換性がない。たとえば、S
olaris 2.4オペレーティング・システムで作
動するように作成されたワードプロセッサ・プログラム
は、Solaris 1.0オペレーティング・システ
ムで作動するように作成されたスプレッドシート・プロ
グラムと対話できないことがある。したがって、これら
のアプリケーション・プログラムのユーザは、ワードプ
ロセッサ・プログラムの文章とスプレッドシート・プロ
グラムのスプレッドシート・セルとを含んでいる、販売
報告書などの複合文書を作成できないこととなる。
【0003】第2に、継承してできたアプリケーション
は新しいオペレーティング・システムで作動するように
作成されていないため、新しいオペレーティング・シス
テムと互換性がないことがある。したがって、さらに改
善しないと、継承したアプリケーションは新しいオペレ
ーティング・システムで作動できないことになる。
は新しいオペレーティング・システムで作動するように
作成されていないため、新しいオペレーティング・シス
テムと互換性がないことがある。したがって、さらに改
善しないと、継承したアプリケーションは新しいオペレ
ーティング・システムで作動できないことになる。
【0004】ユーザは自分たちのアプリケーション・プ
ログラムの間での相互運用性を望んでいるのであるか
ら、この非互換性はユーザたちを煩わせるものである。
ユーザはオペレーティング・システム・レベルでの互換
性および非互換性の細かいことに煩わされることを望ん
ではいない。同様に、オペレーティング・システムがア
プリケーション・プログラム間の相互運用性をもたらせ
ないことが新しいオペレーティング・システムの市販性
に悪影響を与えるため、このような非互換性はオペレー
ティング・システム開発者を煩わせるものである。
ログラムの間での相互運用性を望んでいるのであるか
ら、この非互換性はユーザたちを煩わせるものである。
ユーザはオペレーティング・システム・レベルでの互換
性および非互換性の細かいことに煩わされることを望ん
ではいない。同様に、オペレーティング・システムがア
プリケーション・プログラム間の相互運用性をもたらせ
ないことが新しいオペレーティング・システムの市販性
に悪影響を与えるため、このような非互換性はオペレー
ティング・システム開発者を煩わせるものである。
【0005】
【発明が解決しようとする課題】これらの問題を解決す
るために、本発明の開発者は新しいオペレーティング・
システムに、互換性のない複数のアプリケーションが、
新しいオペレーティング・システムでの実行時に、対話
することを可能とする機能を提供する。
るために、本発明の開発者は新しいオペレーティング・
システムに、互換性のない複数のアプリケーションが、
新しいオペレーティング・システムでの実行時に、対話
することを可能とする機能を提供する。
【0006】図1Aおよび図1Bを使用した例が、継承
した異なるオペレーティング・システムで作動するよう
に作成された複数のアプリケーションが互いに、また新
しいオペレーティング・システムと互換性がない理由を
説明するのに役立つであろう。図1Aは第1のオペレー
ティング・システムで作動する第1のアプリケーション
・プログラムを示す。図1Aのコンピュータ・システム
100はコンピュータ101、メモリ103、プロセッ
サ105、およびインタフェース107を含んでいる。
メモリ103は第1のアプリケーション・プログラム1
09と第1のオペレーティング・システム111を含ん
でいる。その機能を発揮するために、第1のアプリケー
ション・プログラム109は第1のオペレーティング・
システム111のアプリケーション・プログラミング・
インタフェース(「API」)と互換性のあるフォーマ
ットで、第1のオペレーティング・システムに呼出しを
行う。APIはオペレーティング・システムが提供する
サービスおよびプロトコルに対する抽象的なインタフェ
ースである。APIは通常、アプリケーション・プログ
ラムがオペレーティング・システムのサービスにアクセ
スするために呼び出す一連のファンクション・コールを
備えている。第1のオペレーティング・システム111
は第1のアプリケーション・プログラム109からのこ
れらの呼出しを受け入れ、呼出しの構文解析を行って、
機能を実行するにはどのシステム・リソースにアクセル
する必要があるかを決定し、第1のオペレーティング・
システムに関連する名前スペース112を介して必要な
システム・リソース(たとえば、ファイル)にアクセス
することによって要求された機能を実行し、その結果を
第1のアプリケーション・プログラムに返す。
した異なるオペレーティング・システムで作動するよう
に作成された複数のアプリケーションが互いに、また新
しいオペレーティング・システムと互換性がない理由を
説明するのに役立つであろう。図1Aは第1のオペレー
ティング・システムで作動する第1のアプリケーション
・プログラムを示す。図1Aのコンピュータ・システム
100はコンピュータ101、メモリ103、プロセッ
サ105、およびインタフェース107を含んでいる。
メモリ103は第1のアプリケーション・プログラム1
09と第1のオペレーティング・システム111を含ん
でいる。その機能を発揮するために、第1のアプリケー
ション・プログラム109は第1のオペレーティング・
システム111のアプリケーション・プログラミング・
インタフェース(「API」)と互換性のあるフォーマ
ットで、第1のオペレーティング・システムに呼出しを
行う。APIはオペレーティング・システムが提供する
サービスおよびプロトコルに対する抽象的なインタフェ
ースである。APIは通常、アプリケーション・プログ
ラムがオペレーティング・システムのサービスにアクセ
スするために呼び出す一連のファンクション・コールを
備えている。第1のオペレーティング・システム111
は第1のアプリケーション・プログラム109からのこ
れらの呼出しを受け入れ、呼出しの構文解析を行って、
機能を実行するにはどのシステム・リソースにアクセル
する必要があるかを決定し、第1のオペレーティング・
システムに関連する名前スペース112を介して必要な
システム・リソース(たとえば、ファイル)にアクセス
することによって要求された機能を実行し、その結果を
第1のアプリケーション・プログラムに返す。
【0007】図2はコンピュータ・システムのディレク
トリおよびファイルにアクセスするために使用される典
型的な名前スペース200を示す。名前スペース200
は一連のファイル名201とこれに関連するディレクト
リまたはファイル203との間のマッピング(「バイン
ディング」ともいう)を行う。名前スペース200にフ
ァイル名201が与えられると、ユーザはファイル名を
「分析」して、関連するファイルまたはディレクトリ
(コンテキストともいう)を検索することができる。所
与のファイル名が常に特定の名前スペースと関連して解
釈されることに留意することが重要である。たとえば、
「/sys/bin/operating_syste
m」という名前のディレクトリは、第1のオペレーティ
ング・システム111に対する名前スペースに対して分
析した場合、第1のオペレーティング・システムのバイ
ナリを含んでいるディレクトリを指すことができる。し
かしながら、同じ名前を異なるオペレーティング・シス
テムの名前スペースに対して分析した場合には、異なる
ディレクトリが返されることがある。このように、呼出
しとともにオペレーティング・システムに渡されるディ
レクトリ名およびファイル名は、そのオペレーティング
・システムの名前スペースにおけるディレクトリとファ
イルを指すだけである。
トリおよびファイルにアクセスするために使用される典
型的な名前スペース200を示す。名前スペース200
は一連のファイル名201とこれに関連するディレクト
リまたはファイル203との間のマッピング(「バイン
ディング」ともいう)を行う。名前スペース200にフ
ァイル名201が与えられると、ユーザはファイル名を
「分析」して、関連するファイルまたはディレクトリ
(コンテキストともいう)を検索することができる。所
与のファイル名が常に特定の名前スペースと関連して解
釈されることに留意することが重要である。たとえば、
「/sys/bin/operating_syste
m」という名前のディレクトリは、第1のオペレーティ
ング・システム111に対する名前スペースに対して分
析した場合、第1のオペレーティング・システムのバイ
ナリを含んでいるディレクトリを指すことができる。し
かしながら、同じ名前を異なるオペレーティング・シス
テムの名前スペースに対して分析した場合には、異なる
ディレクトリが返されることがある。このように、呼出
しとともにオペレーティング・システムに渡されるディ
レクトリ名およびファイル名は、そのオペレーティング
・システムの名前スペースにおけるディレクトリとファ
イルを指すだけである。
【0008】図1Bは第2のオペレーティング・システ
ムで作動する第2のアプリケーション・プログラムを示
す。コンピュータ113は、メモリ115、プロセッサ
117、およびインタフェース119を含んでいる。メ
モリ115は第2のアプリケーション・プログラム12
1、第2のオペレーティング・システム123、および
第2の名前スペース124を含んでいる。その機能を発
揮するために、第2のアプリケーション・プログラム1
21は第2のオペレーティング・システム121のAP
Iと互換性のあるフォーマットで、第2のオペレーティ
ング・システム123に呼出しを行う。第2のオペレー
ティング・システム123は第2のアプリケーション・
プログラム121からこれらの呼出しを受け入れ、第2
のオペレーティング・システムの名前スペース124を
介してファイルおよびディレクトリにアクセスすること
によって要求された機能を実行し、その結果を第2のア
プリケーション・システムに返す。
ムで作動する第2のアプリケーション・プログラムを示
す。コンピュータ113は、メモリ115、プロセッサ
117、およびインタフェース119を含んでいる。メ
モリ115は第2のアプリケーション・プログラム12
1、第2のオペレーティング・システム123、および
第2の名前スペース124を含んでいる。その機能を発
揮するために、第2のアプリケーション・プログラム1
21は第2のオペレーティング・システム121のAP
Iと互換性のあるフォーマットで、第2のオペレーティ
ング・システム123に呼出しを行う。第2のオペレー
ティング・システム123は第2のアプリケーション・
プログラム121からこれらの呼出しを受け入れ、第2
のオペレーティング・システムの名前スペース124を
介してファイルおよびディレクトリにアクセスすること
によって要求された機能を実行し、その結果を第2のア
プリケーション・システムに返す。
【0009】第1のオペレーティング・システム111
のAPIは第2のオペレーティング・システム123の
APIとは異なる一連のサービスを備えており、異なる
一連のインタフェースの使い方を要求するため、第2の
オペレーティング・システムと異なっており、したがっ
て互換性がない。同様に、第1のオペレーティング・シ
ステム111の名前スペース112はディレクトリ名ま
たはファイル名と、ディレクトリまたはファイルそのも
のとの間の結合が異なっているため、第2のオペレーテ
ィング・システム123と関連づけられた名前スペース
124とは異なっており、したがって、互換性がない。
のAPIは第2のオペレーティング・システム123の
APIとは異なる一連のサービスを備えており、異なる
一連のインタフェースの使い方を要求するため、第2の
オペレーティング・システムと異なっており、したがっ
て互換性がない。同様に、第1のオペレーティング・シ
ステム111の名前スペース112はディレクトリ名ま
たはファイル名と、ディレクトリまたはファイルそのも
のとの間の結合が異なっているため、第2のオペレーテ
ィング・システム123と関連づけられた名前スペース
124とは異なっており、したがって、互換性がない。
【0010】この非互換性の問題は少なくとも2つの異
なる方法で対処することができる。まず、独立系ソフト
ウェア・ベンダは自分たちのアプリケーション・プログ
ラムを新しいオペレーティング・システムへ「移植」す
ることができる。この解決策は望ましいものではある
が、アプリケーションを新しいプラットフォームへ移植
するコストのため、この解決策が常に有効であるとは限
らない。本発明の開発者はしたがって、新しいオペレー
ティング・システムで実行したときに、互換性のない継
承したアプリケーションが対話することを可能とする機
能を新しいオペレーティング・システムに提供した。
なる方法で対処することができる。まず、独立系ソフト
ウェア・ベンダは自分たちのアプリケーション・プログ
ラムを新しいオペレーティング・システムへ「移植」す
ることができる。この解決策は望ましいものではある
が、アプリケーションを新しいプラットフォームへ移植
するコストのため、この解決策が常に有効であるとは限
らない。本発明の開発者はしたがって、新しいオペレー
ティング・システムで実行したときに、互換性のない継
承したアプリケーションが対話することを可能とする機
能を新しいオペレーティング・システムに提供した。
【0011】
【課題を解決するための手段】本発明の一つの実施の態
様は、本来2つの異なるオペレーティング・システムで
実行されるように作成されているが、実際には第3のオ
ペレーティング・システムで実行される2つ以上のプロ
セスの間の相互運用性を容易とする効率がよく、信頼性
の高い方法を提供する。好ましい実施の態様は本来第1
のオペレーティング・システムで実行されるように作成
された親プロセスを起動することから始まる。この実施
の態様は次いで、親プロセスに対して命名グラフをイン
プレメンとするコンテキスト・オブジェクトを取得す
る。コンテキスト・オブジェクトは所与のセットの名前
と第1のオペレーティング・システムに固有なオブジェ
クトの関連するセットの間のバインディング(結合)を
含んでいる。
様は、本来2つの異なるオペレーティング・システムで
実行されるように作成されているが、実際には第3のオ
ペレーティング・システムで実行される2つ以上のプロ
セスの間の相互運用性を容易とする効率がよく、信頼性
の高い方法を提供する。好ましい実施の態様は本来第1
のオペレーティング・システムで実行されるように作成
された親プロセスを起動することから始まる。この実施
の態様は次いで、親プロセスに対して命名グラフをイン
プレメンとするコンテキスト・オブジェクトを取得す
る。コンテキスト・オブジェクトは所与のセットの名前
と第1のオペレーティング・システムに固有なオブジェ
クトの関連するセットの間のバインディング(結合)を
含んでいる。
【0012】親プロセスの実行中のある時点で、親プロ
セスは本来第2のオペレーティング・システムで作動す
るように作成されている子プロセスを生じる。次に、親
プロセスはそのコンテキスト・オブジェクトのコピーを
インスタンス化する。親プロセスは次いで、第2のプロ
セスが使用するオブジェクト名が第1のオペレーティン
グ・システムに対するコンテキスト・オブジェクトから
オブジェクトに対して解釈される前に(あるいは、その
代わりに)、第2のオペレーティング・システムに関連
するコンテキスト・オブジェクトからのオブジェクトに
対して解釈されるようにするコンテキスト・マージ操作
を行う。
セスは本来第2のオペレーティング・システムで作動す
るように作成されている子プロセスを生じる。次に、親
プロセスはそのコンテキスト・オブジェクトのコピーを
インスタンス化する。親プロセスは次いで、第2のプロ
セスが使用するオブジェクト名が第1のオペレーティン
グ・システムに対するコンテキスト・オブジェクトから
オブジェクトに対して解釈される前に(あるいは、その
代わりに)、第2のオペレーティング・システムに関連
するコンテキスト・オブジェクトからのオブジェクトに
対して解釈されるようにするコンテキスト・マージ操作
を行う。
【0013】新しいコンテキスト・オブジェクトは次い
で、子プロセスに渡され、第2のプロセスの実行が開始
される。したがって、子プロセスによって開始されたシ
ステム・コールはまず第2のオペレーティング・システ
ムの名前スペースに対して解釈されることとなる。子プ
ロセスはさらに他のオペレーティング・システムで実行
されるように設計された他の子プロセスを作成すること
ができる。このようにして、本来2つの異なるオペレー
ティング・システムで実行されるように作成された2つ
のプロセスが、第3のオペレーティング・システムで実
行されながら相互運用されることが可能となる。
で、子プロセスに渡され、第2のプロセスの実行が開始
される。したがって、子プロセスによって開始されたシ
ステム・コールはまず第2のオペレーティング・システ
ムの名前スペースに対して解釈されることとなる。子プ
ロセスはさらに他のオペレーティング・システムで実行
されるように設計された他の子プロセスを作成すること
ができる。このようにして、本来2つの異なるオペレー
ティング・システムで実行されるように作成された2つ
のプロセスが、第3のオペレーティング・システムで実
行されながら相互運用されることが可能となる。
【0014】
好ましい実施の形態の概要 本発明の好ましい実施の形態は、本来2つの異なるオペ
レーティング・システムで実行されるように作成されて
いるが、実際には第3のオペレーティング・システムで
実行される2つ以上のプロセスの間の相互運用性を容易
とする改善された方法およびプロセスを提供する。通
常、好ましい実施の形態は本来第1のオペレーティング
・システムで実行されるように作成された親プロセスを
呼び出すことによって開始される。プロセスの呼出し中
に、好ましい実施の形態は親プロセスに対する名前スペ
ース(より厳密には、命名グラフ)をインプリメントす
るコンテキスト・オブジェクトを取得する。コンテキス
ト・オブジェクトは名前の所与のセットと第1のオペレ
ーティング・システムに固有なオブジェクトの関連する
セットとの間のバインディングを含んでいる。たとえ
ば、コンテキスト・オブジェクトは名前「/sys/b
in」と、第1のオペレーティング・システムの2進フ
ァイルを収めているディレクトリをインプリメントする
オブジェクトとの間のバインディングを含んでいる。
レーティング・システムで実行されるように作成されて
いるが、実際には第3のオペレーティング・システムで
実行される2つ以上のプロセスの間の相互運用性を容易
とする改善された方法およびプロセスを提供する。通
常、好ましい実施の形態は本来第1のオペレーティング
・システムで実行されるように作成された親プロセスを
呼び出すことによって開始される。プロセスの呼出し中
に、好ましい実施の形態は親プロセスに対する名前スペ
ース(より厳密には、命名グラフ)をインプリメントす
るコンテキスト・オブジェクトを取得する。コンテキス
ト・オブジェクトは名前の所与のセットと第1のオペレ
ーティング・システムに固有なオブジェクトの関連する
セットとの間のバインディングを含んでいる。たとえ
ば、コンテキスト・オブジェクトは名前「/sys/b
in」と、第1のオペレーティング・システムの2進フ
ァイルを収めているディレクトリをインプリメントする
オブジェクトとの間のバインディングを含んでいる。
【0015】親プロセスの実行中のある時点で、親プロ
セスは本来第2のオペレーティング・システムで実行さ
れるように作成された子プロセスを生じる。親プロセス
が子プロセスを正常に生じることを可能とし、また子プ
ロセスが第3のオペレーティングシステムで実行される
ことを可能とするために、好ましい実施の形態は次のス
テップを実行する。まず、親プロセスはそのコンテキス
ト・オブジェクトのコピーをインスタンス化する。子プ
ロセスが本来第1のオペレーティング・システムではな
く、第2のオペレーティング・システムで作動するよう
に作成されているので、子プロセスは第2のオペレーテ
ィング・システムのオブジェクトと具体的に関連づけら
れているバインディングを、その名前スペースに持って
いる必要がある。したがって、親プロセスはコンテキス
ト・マージ操作(以下で詳細に検討する)を行い、この
操作は第2のプロセスが使用するオブジェクト名が第1
のオペレーティング・システムに対するコンテキスト・
オブジェクトからのオブジェクトに対して解釈される前
に(あるいは、その代わりに)、第2のオペレーティン
グ・システムに対するコンテキスト・オブジェクトから
のオブジェクトに対して解釈されるようにする。
セスは本来第2のオペレーティング・システムで実行さ
れるように作成された子プロセスを生じる。親プロセス
が子プロセスを正常に生じることを可能とし、また子プ
ロセスが第3のオペレーティングシステムで実行される
ことを可能とするために、好ましい実施の形態は次のス
テップを実行する。まず、親プロセスはそのコンテキス
ト・オブジェクトのコピーをインスタンス化する。子プ
ロセスが本来第1のオペレーティング・システムではな
く、第2のオペレーティング・システムで作動するよう
に作成されているので、子プロセスは第2のオペレーテ
ィング・システムのオブジェクトと具体的に関連づけら
れているバインディングを、その名前スペースに持って
いる必要がある。したがって、親プロセスはコンテキス
ト・マージ操作(以下で詳細に検討する)を行い、この
操作は第2のプロセスが使用するオブジェクト名が第1
のオペレーティング・システムに対するコンテキスト・
オブジェクトからのオブジェクトに対して解釈される前
に(あるいは、その代わりに)、第2のオペレーティン
グ・システムに対するコンテキスト・オブジェクトから
のオブジェクトに対して解釈されるようにする。
【0016】コンテキスト・マージ操作が完了すると、
新しいコンテキスト・オブジェクトが子プロセスに渡さ
れ、子プロセスの実行が開始される。このようにして、
子プロセスが開始したシステム・コールが、第2のオペ
レーティング・システムの名前スペースに対して解釈さ
れることとなる。それ故、「Open/sys/bin
/operating_system」という子プロセ
スによるシステム・コールは、第1のオペレーティング
・システムに対する2進ファイルではなく、第2のオペ
レーティング・システムに対する2進ファイルを「Op
en」する。このようにして、本来2つの異なるオペレ
ーティング・システムで実行されるように作成された2
つのプロセスは、第3のオペレーティング・システムで
実行されながら相互運用することができる。
新しいコンテキスト・オブジェクトが子プロセスに渡さ
れ、子プロセスの実行が開始される。このようにして、
子プロセスが開始したシステム・コールが、第2のオペ
レーティング・システムの名前スペースに対して解釈さ
れることとなる。それ故、「Open/sys/bin
/operating_system」という子プロセ
スによるシステム・コールは、第1のオペレーティング
・システムに対する2進ファイルではなく、第2のオペ
レーティング・システムに対する2進ファイルを「Op
en」する。このようにして、本来2つの異なるオペレ
ーティング・システムで実行されるように作成された2
つのプロセスは、第3のオペレーティング・システムで
実行されながら相互運用することができる。
【0017】好ましい実施の形態を実現するシステム 図3は本発明の好ましい実施の形態を実現するコンピュ
ータ・システム300のブロック図である。コンピュー
タ・システム300はコンピュータ301、ビデオ表示
装置303、キーボード、マウス、またはポインティン
グ・デバイスなどの入力装置305、CD−ROM駆動
機構307、および磁気ディスク駆動機構などの永続記
憶装置309を含んでいる。
ータ・システム300のブロック図である。コンピュー
タ・システム300はコンピュータ301、ビデオ表示
装置303、キーボード、マウス、またはポインティン
グ・デバイスなどの入力装置305、CD−ROM駆動
機構307、および磁気ディスク駆動機構などの永続記
憶装置309を含んでいる。
【0018】コンピュータ301は処理装置311、ラ
ンダム・アクセス・メモリ(「RAM」)313、プロ
グラマブル読取り専用メモリ(「PROM」)315、
および処理装置311とRAM313またはPROM3
15の間の通信を可能とするインタフェース317を含
んでいる。インタフェース317は処理装置311と周
辺装置(たとえば、ビデオ表示装置303、入力装置3
05、およびCD−ROM装置307)との間の通信も
容易とする。
ンダム・アクセス・メモリ(「RAM」)313、プロ
グラマブル読取り専用メモリ(「PROM」)315、
および処理装置311とRAM313またはPROM3
15の間の通信を可能とするインタフェース317を含
んでいる。インタフェース317は処理装置311と周
辺装置(たとえば、ビデオ表示装置303、入力装置3
05、およびCD−ROM装置307)との間の通信も
容易とする。
【0019】コンピュータ・メモリ313は、メモリ3
13、処理装置311、およびCD−ROM駆動機構3
97などのシステムのハードウェア・リソースの割振り
および使い方の制御を担うオペレーティング・システム
319を初めとする多数のものを保持している。好まし
いオペレーティング・システムはカリフォルニア州Mo
untain ViewのSun Micorosys
temsのSpringオペレーティング・システムで
ある。
13、処理装置311、およびCD−ROM駆動機構3
97などのシステムのハードウェア・リソースの割振り
および使い方の制御を担うオペレーティング・システム
319を初めとする多数のものを保持している。好まし
いオペレーティング・システムはカリフォルニア州Mo
untain ViewのSun Micorosys
temsのSpringオペレーティング・システムで
ある。
【0020】Springオペレーティング・システム
の概要 Springは分散オブジェクト指向オペレーティング
・システムである。それ故、Springオペレーティ
ング・システムはオブジェクトの作成および操作を中心
とするものである。Springオブジェクトはインタ
フェースによって定義される抽象である。インタフェー
スはオブジェクトとオブジェクトのクライアントの間の
強く型付けされたコントラクトである。インタフェース
はオブジェクトに対して行われる一連の操作を規定す
る。インタフェースの下には、データのカプセル化され
たセットおよび操作を遂行するメソッドがある。
の概要 Springは分散オブジェクト指向オペレーティング
・システムである。それ故、Springオペレーティ
ング・システムはオブジェクトの作成および操作を中心
とするものである。Springオブジェクトはインタ
フェースによって定義される抽象である。インタフェー
スはオブジェクトとオブジェクトのクライアントの間の
強く型付けされたコントラクトである。インタフェース
はオブジェクトに対して行われる一連の操作を規定す
る。インタフェースの下には、データのカプセル化され
たセットおよび操作を遂行するメソッドがある。
【0021】Springオブジェクトの粒度は小さな
データ状のオブジェクトから、ファイルやプリント・サ
ービスなどの大きなオブジェクトまでの広い範囲にわた
っている。インプリメンテーションはライブラリから、
個別のプロテクト・サービス、複数のサーバによってイ
ンプリメントされる分散サービスにおよんでいる。
データ状のオブジェクトから、ファイルやプリント・サ
ービスなどの大きなオブジェクトまでの広い範囲にわた
っている。インプリメンテーションはライブラリから、
個別のプロテクト・サービス、複数のサーバによってイ
ンプリメントされる分散サービスにおよんでいる。
【0022】従来のオペレーティング・システムと異な
り、Springオブジェクトはファースト・クラスの
オブジェクトである。したがって、クライアントはオブ
ジェクトに対して操作を実行し、これらのオブジェクト
を他のオブジェクトの操作時にパラメータとして渡すこ
とによって、オブジェクトを直接処理できる。通常、オ
ブジェクトのクライアントはプロセスである。プロセス
はアドレス・スペース、スレッド、およびその他のシス
テム・リソースを含んでいる。
り、Springオブジェクトはファースト・クラスの
オブジェクトである。したがって、クライアントはオブ
ジェクトに対して操作を実行し、これらのオブジェクト
を他のオブジェクトの操作時にパラメータとして渡すこ
とによって、オブジェクトを直接処理できる。通常、オ
ブジェクトのクライアントはプロセスである。プロセス
はアドレス・スペース、スレッド、およびその他のシス
テム・リソースを含んでいる。
【0023】これらのオブジェクトの検索および処理を
容易とするために、Springは一様な命名サービス
を備えている。Springの一様な命名サービスによ
って、任意のオブジェクトを任意の名前にバインドする
ことが可能となる。Springの命名サービスは数種
類の基本的な概念、すなわち名前、コンテキスト、名前
バインディング、名前スペースの構成、およびコンテキ
スト・マージに基づいている。
容易とするために、Springは一様な命名サービス
を備えている。Springの一様な命名サービスによ
って、任意のオブジェクトを任意の名前にバインドする
ことが可能となる。Springの命名サービスは数種
類の基本的な概念、すなわち名前、コンテキスト、名前
バインディング、名前スペースの構成、およびコンテキ
スト・マージに基づいている。
【0024】名前は従来ストリングによって表され、通
常印刷可能であり、かつ規則によって異なる情報を符号
化するための何らかの構文を通常有している。名前はオ
ブジェクトを表すものであるといわれる。
常印刷可能であり、かつ規則によって異なる情報を符号
化するための何らかの構文を通常有している。名前はオ
ブジェクトを表すものであるといわれる。
【0025】図4はコンテキスト・オブジェクト400
のブロック図である。コンテキスト・オブジェクト40
0は名前−オブジェクト相互連結のセット(ネーム・バ
インディングともいう)を維持しているデータ・テーブ
ル401を含んでいる。Springにおいて、名前は
これらが使用されるコンテキスト・オブジェクト内だけ
での意味を有している。それ故、オブジェクトはいくつ
かの異なるコンテキスト・オブジェクトでいくつかの異
なる名前に同時にバインドされる。
のブロック図である。コンテキスト・オブジェクト40
0は名前−オブジェクト相互連結のセット(ネーム・バ
インディングともいう)を維持しているデータ・テーブ
ル401を含んでいる。Springにおいて、名前は
これらが使用されるコンテキスト・オブジェクト内だけ
での意味を有している。それ故、オブジェクトはいくつ
かの異なるコンテキスト・オブジェクトでいくつかの異
なる名前に同時にバインドされる。
【0026】一様な命名サービスのクライアントはコン
テキスト・オブジェクト400のメソッド・テーブル4
03に格納されているメソッドによって命名操作を実行
する。たとえば、Springのコンテキスト・オブジ
ェクトはクライアントがオブジェクトの名前を分析する
ことを可能とする。コンテキスト・オブジェクトでの名
前の分析によって、名前が表すオブジェクトが得られ
る。Springのコンテキスト・オブジェクトはクラ
イアントがあるオブジェクトの名前をバインドすること
も可能とする。コンテキスト・オブジェクトの名前をバ
インドすると、名前が特定のオブジェクトと関連づけら
れる。
テキスト・オブジェクト400のメソッド・テーブル4
03に格納されているメソッドによって命名操作を実行
する。たとえば、Springのコンテキスト・オブジ
ェクトはクライアントがオブジェクトの名前を分析する
ことを可能とする。コンテキスト・オブジェクトでの名
前の分析によって、名前が表すオブジェクトが得られ
る。Springのコンテキスト・オブジェクトはクラ
イアントがあるオブジェクトの名前をバインドすること
も可能とする。コンテキスト・オブジェクトの名前をバ
インドすると、名前が特定のオブジェクトと関連づけら
れる。
【0027】名前スペースの構成によって、1つの名前
スペースが他の名前スペースに接続される。Sprin
g環境の他のオブジェクトと同様に、コンテキスト・オ
ブジェクトを他のコンテキスト・オブジェクトのデータ
・テーブルの名前にバインドできるため、コンテキスト
・オブジェクトがこのようにして形成されることがよく
ある。あるコンテキスト・オブジェクトを他のコンテキ
スト・オブジェクトと一緒にバインドすることによっ
て、ノードとラベルつきエッジを備えた有向グラフであ
り、外向きのエッジを有するノードがコンテキストであ
る命名グラフを作成することができる。非公式には、命
名グラフとコンテキスト・オブジェクトは名前スペース
と呼ばれることもある。簡単にいえば、Springは
UNIX環境で従来行われていたように単一のシステム
が供給する名前スペースをもたらすのではなく、個別な
システムが供給する名前スペースをもたらす。
スペースが他の名前スペースに接続される。Sprin
g環境の他のオブジェクトと同様に、コンテキスト・オ
ブジェクトを他のコンテキスト・オブジェクトのデータ
・テーブルの名前にバインドできるため、コンテキスト
・オブジェクトがこのようにして形成されることがよく
ある。あるコンテキスト・オブジェクトを他のコンテキ
スト・オブジェクトと一緒にバインドすることによっ
て、ノードとラベルつきエッジを備えた有向グラフであ
り、外向きのエッジを有するノードがコンテキストであ
る命名グラフを作成することができる。非公式には、命
名グラフとコンテキスト・オブジェクトは名前スペース
と呼ばれることもある。簡単にいえば、Springは
UNIX環境で従来行われていたように単一のシステム
が供給する名前スペースをもたらすのではなく、個別な
システムが供給する名前スペースをもたらす。
【0028】コンテキスト・マージ・メソッドは2つ以
上のコンテキスト・オブジェクトを同一のコンテキスト
・オブジェクト内の同一の名前にバインドできるように
するという名前スペースの構成のアイデアを拡張する。
図5はコンテキスト・オブジェクト「c」407のさら
に詳細なブロック図であり、コンテキスト・オブジェク
ト「c」407がコンテキスト・オブジェクト「s」5
01および「t」503の両方からのオブジェクトをコ
ンテキスト・オブジェクト「c」407にマージするこ
とによって実現されることを示している。図5が示して
いるように、オブジェクト名「x」はコンテキスト・オ
ブジェクト「s」501およびコンテキスト・オブジェ
クト「t」503の両方にバインドされている。しかし
ながら、ユーザの観点では、オブジェクト「x」505
だけが存在することとなる。ユーザに対してこの観点を
作成するために、コンテキスト・マージ・メソッドは基
礎となるコンテキスト・オブジェクト「s」501およ
び「t」503からのオブジェクトを並べ換える。たと
えば、コンテキスト・オブジェクト501が第1のオペ
レーティング・システムに対するオブジェクトをインプ
リメントし、コンテキスト・オブジェクト「t」503
が第2のオペレーティング・システムオブジェクトをイ
ンプリメントし、かつコンテキスト・オブジェクト
「c」407を使用するプロセスが本来第1のオペレー
ティング・システムで実行されるように作成されたもの
と想定する。このような場合、コンテキスト・マージ・
メソッドは基礎コンテキスト・オブジェクトからのオブ
ジェクトを並べて、名前の分析がコンテキスト・オブジ
ェクト「t」503からのオブジェクトに対して行われ
る前に(あるいは、その代わりに)、コンテキスト・オ
ブジェクト「s」501からのオブジェクトに対して行
われるようにする。それ故、オブジェクト名「x」50
5についての名前の分析はコンテキスト・オブジェクト
「s」501にバインドされたオブジェクト「x」に対
して分析されることとなる。
上のコンテキスト・オブジェクトを同一のコンテキスト
・オブジェクト内の同一の名前にバインドできるように
するという名前スペースの構成のアイデアを拡張する。
図5はコンテキスト・オブジェクト「c」407のさら
に詳細なブロック図であり、コンテキスト・オブジェク
ト「c」407がコンテキスト・オブジェクト「s」5
01および「t」503の両方からのオブジェクトをコ
ンテキスト・オブジェクト「c」407にマージするこ
とによって実現されることを示している。図5が示して
いるように、オブジェクト名「x」はコンテキスト・オ
ブジェクト「s」501およびコンテキスト・オブジェ
クト「t」503の両方にバインドされている。しかし
ながら、ユーザの観点では、オブジェクト「x」505
だけが存在することとなる。ユーザに対してこの観点を
作成するために、コンテキスト・マージ・メソッドは基
礎となるコンテキスト・オブジェクト「s」501およ
び「t」503からのオブジェクトを並べ換える。たと
えば、コンテキスト・オブジェクト501が第1のオペ
レーティング・システムに対するオブジェクトをインプ
リメントし、コンテキスト・オブジェクト「t」503
が第2のオペレーティング・システムオブジェクトをイ
ンプリメントし、かつコンテキスト・オブジェクト
「c」407を使用するプロセスが本来第1のオペレー
ティング・システムで実行されるように作成されたもの
と想定する。このような場合、コンテキスト・マージ・
メソッドは基礎コンテキスト・オブジェクトからのオブ
ジェクトを並べて、名前の分析がコンテキスト・オブジ
ェクト「t」503からのオブジェクトに対して行われ
る前に(あるいは、その代わりに)、コンテキスト・オ
ブジェクト「s」501からのオブジェクトに対して行
われるようにする。それ故、オブジェクト名「x」50
5についての名前の分析はコンテキスト・オブジェクト
「s」501にバインドされたオブジェクト「x」に対
して分析されることとなる。
【0029】Springオペレーティング・システム
は通常、分散ネットワーク環境のコンピュータで使用さ
れる。Springオペレーティング・システムは地理
的位置、セキュリティの考慮事項、アドミニストレーシ
ョンの便宜などに基づいて、機械を「ビレッジ」にグル
ープ分けする。たとえば、会社の経理部はセキュリティ
上の理由から独立したビレッジを持っている。同様に、
大学の学部のそれぞれはそれ自体のビレッジを有してい
る。
は通常、分散ネットワーク環境のコンピュータで使用さ
れる。Springオペレーティング・システムは地理
的位置、セキュリティの考慮事項、アドミニストレーシ
ョンの便宜などに基づいて、機械を「ビレッジ」にグル
ープ分けする。たとえば、会社の経理部はセキュリティ
上の理由から独立したビレッジを持っている。同様に、
大学の学部のそれぞれはそれ自体のビレッジを有してい
る。
【0030】コンテキスト・オブジェクトのスケーラビ
リティをSpringオペレーティング・システムに与
えた場合、コンテキスト・オブジェクトはプロセス、機
械およびビレッジのレベルでもたらされる。たとえば、
コンテキストの構成を使用して、ビレッジの機械のコン
テキスト・オブジェクトを一緒に接続し、ビレッジ・コ
ンテキスト・オブジェクトの作成を援助することができ
る。
リティをSpringオペレーティング・システムに与
えた場合、コンテキスト・オブジェクトはプロセス、機
械およびビレッジのレベルでもたらされる。たとえば、
コンテキストの構成を使用して、ビレッジの機械のコン
テキスト・オブジェクトを一緒に接続し、ビレッジ・コ
ンテキスト・オブジェクトの作成を援助することができ
る。
【0031】図6はプロセスが実行される機械とビレッ
ジの名前スペースの選択したコンテキストにアクセスす
るためにカスタム化されたパープロセス(per−pr
ocess)・コンテキスト・オブジェクト(簡単に、
「プロセス・コンテキスト・オブジェクト」ともいう)
の略図である。プロセス・コンテキスト・オブジェクト
は通常、私用名前バインディング、共用名前スペース、
および標準システム・オブジェクトを含んでいる。
ジの名前スペースの選択したコンテキストにアクセスす
るためにカスタム化されたパープロセス(per−pr
ocess)・コンテキスト・オブジェクト(簡単に、
「プロセス・コンテキスト・オブジェクト」ともいう)
の略図である。プロセス・コンテキスト・オブジェクト
は通常、私用名前バインディング、共用名前スペース、
および標準システム・オブジェクトを含んでいる。
【0032】私用名前バインディングは環境変数および
プログラム入出力オブジェクト(たとえば、I/Oコン
テキスト・オブジェクト601)を含んでいる。私用名
前バインディングに対して行われた変更を見ることがで
きるのは、これらのバインディングを含んでいるプロセ
スだけである。
プログラム入出力オブジェクト(たとえば、I/Oコン
テキスト・オブジェクト601)を含んでいる。私用名
前バインディングに対して行われた変更を見ることがで
きるのは、これらのバインディングを含んでいるプロセ
スだけである。
【0033】共用名前スペース(すなわち、機械および
ビレッジで他のプロセスと共用されるオブジェクト)は
通常、周知の名前を使用して、プロセスの名前スペース
に接続される。たとえば、ビレッジのさまざまなユーザ
のコンテキスト・オブジェクトを収めている「user
s」コンテキスト・オブジェクトを、プロセスのコンテ
キスト・オブジェクトに接続することができる。同様
に、私用装置および共用装置の両方を収めている「de
vice」コンテキスト・オブジェクトも接続すること
ができる(たとえば、「dev」コンテキスト・オブジ
ェクト603)。最後に、プロセスが実行される機械に
対するコンテキスト・オブジェクト604、ならびに機
械が配置されているビレッジに対するビレッジ・コンテ
キスト・オブジェクト606も接続される。プロセスの
コンテキスト・オブジェクトに接続された共用名前スペ
ースに対して行われた変更は、すべての共用プロセスに
見える。
ビレッジで他のプロセスと共用されるオブジェクト)は
通常、周知の名前を使用して、プロセスの名前スペース
に接続される。たとえば、ビレッジのさまざまなユーザ
のコンテキスト・オブジェクトを収めている「user
s」コンテキスト・オブジェクトを、プロセスのコンテ
キスト・オブジェクトに接続することができる。同様
に、私用装置および共用装置の両方を収めている「de
vice」コンテキスト・オブジェクトも接続すること
ができる(たとえば、「dev」コンテキスト・オブジ
ェクト603)。最後に、プロセスが実行される機械に
対するコンテキスト・オブジェクト604、ならびに機
械が配置されているビレッジに対するビレッジ・コンテ
キスト・オブジェクト606も接続される。プロセスの
コンテキスト・オブジェクトに接続された共用名前スペ
ースに対して行われた変更は、すべての共用プロセスに
見える。
【0034】プロセスのコンテキスト・オブジェクト
は、たとえば、「/sys/bin」の下で実行可能な
コンテキスト・オブジェクト605と、「/sys/l
ib」の下のコンテキスト・オブジェクト607を含む
「sys」などのシステム・オブジェクトを収めている
コンテキスト・オブジェクトも持っている。
は、たとえば、「/sys/bin」の下で実行可能な
コンテキスト・オブジェクト605と、「/sys/l
ib」の下のコンテキスト・オブジェクト607を含む
「sys」などのシステム・オブジェクトを収めている
コンテキスト・オブジェクトも持っている。
【0035】本発明の好ましい方法 本発明の目的はプロセスが現在作動しているオペレーテ
ィング・システムとは両方とも異なっている2つの独自
なオペレーティング・システムで、親プロセスと子プロ
セスが作動するように本来作成されている場合であって
も、親プロセスと子プロセスの間の相互運用性を容易と
することである。好ましい実施の形態を図3および図7
ないし図11を参照して検討する。
ィング・システムとは両方とも異なっている2つの独自
なオペレーティング・システムで、親プロセスと子プロ
セスが作動するように本来作成されている場合であって
も、親プロセスと子プロセスの間の相互運用性を容易と
することである。好ましい実施の形態を図3および図7
ないし図11を参照して検討する。
【0036】好ましい実施の形態がコンピュータ301
で実行される前に、いくつかの初期状態が存在してい
る。まず、システム300がブートされ、ネーティブな
オペレーティング・システム319で作動している。さ
らに、親プロセス321が取得されている(たとえば、
Solaris 1.xオペレーティング・システムで
作動するように作成されたワードプロセッサ・プログラ
ムが起動されている)。親プロセス321のコンテキス
ト・オブジェクト325も取得され、親プロセスによっ
て生成されたオブジェクト名を親プロセス321に該当
する名前スペース内にマップしている。
で実行される前に、いくつかの初期状態が存在してい
る。まず、システム300がブートされ、ネーティブな
オペレーティング・システム319で作動している。さ
らに、親プロセス321が取得されている(たとえば、
Solaris 1.xオペレーティング・システムで
作動するように作成されたワードプロセッサ・プログラ
ムが起動されている)。親プロセス321のコンテキス
ト・オブジェクト325も取得され、親プロセスによっ
て生成されたオブジェクト名を親プロセス321に該当
する名前スペース内にマップしている。
【0037】図7は親プロセス312のコンテキスト・
オブジェクト325を示している。コンテキスト・オブ
ジェクト325はデータ・テーブル701およびメソッ
ド・テーブル703を含んでいる。データ・テーブル7
01はオブジェクト名を対応するオブジェクトにマップ
する。たとえば、親プロセス321は本来Solari
s 1.xファミリーのオペレーティング・システムで
作動するように作成されているため、データ・テーブル
701のエントリ705は、名前「/sys/bin」
をコンテキスト・オブジェクト707にバインドされた
オブジェクトにマップする。これらのオブジェクトはオ
ペレーティング・システムのSolaris 1.xフ
ァミリーの2進ファイルをインプリメントしている。分
析される名前がコンテキスト・オブジェクト707から
のオブジェクトにバインドされていない場合にのみ、エ
ントリ705はコンテキスト・オブジェクト708にバ
インドされているオブジェクトを調べる。コンテキスト
・オブジェクト708のバインディングは名前を、So
laris 2.オペレーティング・システムのxファ
ミリーに対する2進ファイルをインプリメントしている
オブジェクトにマップする。このようにして、親プロセ
スが本来Solaris 1.xで作動するように作成
されている場合であっても、親プロセスはSolari
s 2.xオペレーティング・システムからのオブジェ
クトを呼び出すことができる。同様に、エントリ709
はまず名前「/sys/bin」を、コンテキスト・オ
ブジェクト711からのオブジェクトにマップする。こ
れらのオブジェクトはオペレーティング・システムのS
olaris 1.xファミリーに対するライブラリを
収めている。分析される名前がコンテキスト・オブジェ
クト711からのオブジェクトにバインドされていない
場合にのみ、エントリ709はコンテキスト・オブジェ
クト712からのオブジェクトを調べる。コンテキスト
・オブジェクト712からのオブジェクトはオペレーテ
ィング・システムのSolaris 2.xファミリー
のに対するライブラリ・ファイルをインプリメントして
いる。
オブジェクト325を示している。コンテキスト・オブ
ジェクト325はデータ・テーブル701およびメソッ
ド・テーブル703を含んでいる。データ・テーブル7
01はオブジェクト名を対応するオブジェクトにマップ
する。たとえば、親プロセス321は本来Solari
s 1.xファミリーのオペレーティング・システムで
作動するように作成されているため、データ・テーブル
701のエントリ705は、名前「/sys/bin」
をコンテキスト・オブジェクト707にバインドされた
オブジェクトにマップする。これらのオブジェクトはオ
ペレーティング・システムのSolaris 1.xフ
ァミリーの2進ファイルをインプリメントしている。分
析される名前がコンテキスト・オブジェクト707から
のオブジェクトにバインドされていない場合にのみ、エ
ントリ705はコンテキスト・オブジェクト708にバ
インドされているオブジェクトを調べる。コンテキスト
・オブジェクト708のバインディングは名前を、So
laris 2.オペレーティング・システムのxファ
ミリーに対する2進ファイルをインプリメントしている
オブジェクトにマップする。このようにして、親プロセ
スが本来Solaris 1.xで作動するように作成
されている場合であっても、親プロセスはSolari
s 2.xオペレーティング・システムからのオブジェ
クトを呼び出すことができる。同様に、エントリ709
はまず名前「/sys/bin」を、コンテキスト・オ
ブジェクト711からのオブジェクトにマップする。こ
れらのオブジェクトはオペレーティング・システムのS
olaris 1.xファミリーに対するライブラリを
収めている。分析される名前がコンテキスト・オブジェ
クト711からのオブジェクトにバインドされていない
場合にのみ、エントリ709はコンテキスト・オブジェ
クト712からのオブジェクトを調べる。コンテキスト
・オブジェクト712からのオブジェクトはオペレーテ
ィング・システムのSolaris 2.xファミリー
のに対するライブラリ・ファイルをインプリメントして
いる。
【0038】初期状態が満たされると、親プロセスはネ
ーティブなオペレーティング・システム319に要求を
自由に送れるようになる。図8はシステム300のプロ
セスに対する要求を行うネーティブOS手順の流れ図で
ある。ネーティブ・オペレーティング・システム319
は実際にはシステム300内で無数の操作を行っている
のであるが、明確を図るため、本明細書では、新しいプ
ロセスを作成する操作だけを詳述する。ステップ801
において、ネーティブ・オペレーティング・システムは
システム300からの入力を受け取る。ステップ803
において、ネーティブ・オペレーティング・システム3
19は、入力が「プロセス呼出し」要求であるかどうか
を判定する。入力が「プロセス呼出し」要求である場合
には、処理はステップ805へ進む。ステップ805に
おいて、ネーティブ・オペレーティング・システム31
9はプロセス作成手順を呼び出す。プロセス作成手順は
プロセスに対するアドレス・スペースを割り振り、その
プロセスに対するスレッドを生成し、そのプロセスに対
する名前スペースを具体化するコンテキスト・オブジェ
クトを生成する。プロセス生成手順から戻って、処理は
ステップ801へ進む。
ーティブなオペレーティング・システム319に要求を
自由に送れるようになる。図8はシステム300のプロ
セスに対する要求を行うネーティブOS手順の流れ図で
ある。ネーティブ・オペレーティング・システム319
は実際にはシステム300内で無数の操作を行っている
のであるが、明確を図るため、本明細書では、新しいプ
ロセスを作成する操作だけを詳述する。ステップ801
において、ネーティブ・オペレーティング・システムは
システム300からの入力を受け取る。ステップ803
において、ネーティブ・オペレーティング・システム3
19は、入力が「プロセス呼出し」要求であるかどうか
を判定する。入力が「プロセス呼出し」要求である場合
には、処理はステップ805へ進む。ステップ805に
おいて、ネーティブ・オペレーティング・システム31
9はプロセス作成手順を呼び出す。プロセス作成手順は
プロセスに対するアドレス・スペースを割り振り、その
プロセスに対するスレッドを生成し、そのプロセスに対
する名前スペースを具体化するコンテキスト・オブジェ
クトを生成する。プロセス生成手順から戻って、処理は
ステップ801へ進む。
【0039】入力がプロセス呼出し要求でない場合に
は、ステップ807において、ネーティブ・オペレーテ
ィング・システム319は正規の処理を実行する。たと
えば、終了要求を受け取った場合には、ネーティブ・オ
ペレーティング・システム319はコンピュータ301
内での処理を終了する。
は、ステップ807において、ネーティブ・オペレーテ
ィング・システム319は正規の処理を実行する。たと
えば、終了要求を受け取った場合には、ネーティブ・オ
ペレーティング・システム319はコンピュータ301
内での処理を終了する。
【0040】図9はプロセス作成手順の流れ図である。
ステップ901において、プロセス作成手順はプロセス
をインプリメントするのに必要なシステム・リソースを
取得する。たとえば、プロセス作成手順は通常、メモリ
313内のアドレス・スペースを取得し、1つまたは複
数のスレッドを生成し、プロセスに関連するコードをプ
ロセスのアドレス・スペースにマップする。ステップ9
03において、プロセス作成手順はコンテキスト・オブ
ジェクト生成手順を呼び出し、この手順は新しいプロセ
スに対する新しいコンテキスト・オブジェクトを生成す
る。ステップ903から戻ると、新しいコンテキスト・
オブジェクトがステップ905で子プロセスに送られ
る。
ステップ901において、プロセス作成手順はプロセス
をインプリメントするのに必要なシステム・リソースを
取得する。たとえば、プロセス作成手順は通常、メモリ
313内のアドレス・スペースを取得し、1つまたは複
数のスレッドを生成し、プロセスに関連するコードをプ
ロセスのアドレス・スペースにマップする。ステップ9
03において、プロセス作成手順はコンテキスト・オブ
ジェクト生成手順を呼び出し、この手順は新しいプロセ
スに対する新しいコンテキスト・オブジェクトを生成す
る。ステップ903から戻ると、新しいコンテキスト・
オブジェクトがステップ905で子プロセスに送られ
る。
【0041】図10はプロセスに対するコンテキスト・
オブジェクトを生成するコンテキスト・オブジェクト生
成手順の流れ図である。たとえば、コンテキスト・オブ
ジェクト生成手順を親プロセス321が呼び出して、子
プロセス323に対するコンテキスト・オブジェクト3
29を作成することができる。
オブジェクトを生成するコンテキスト・オブジェクト生
成手順の流れ図である。たとえば、コンテキスト・オブ
ジェクト生成手順を親プロセス321が呼び出して、子
プロセス323に対するコンテキスト・オブジェクト3
29を作成することができる。
【0042】ステップ1001において、コンテキスト
・オブジェクト生成手順は親プロセス321のコンテキ
スト・オブジェクト325のコピーをインスタンス化す
る。親のコンテキスト・オブジェクト325のコピーが
ステップ1001でインスタンス化されるのは、子プロ
セスがそれ自体のコンテキスト・オブジェクトとして親
のコンテキスト・オブジェクトを使用しているか、ある
いは親のコンテキスト・オブジェクトが子プロセス32
3のコンテキスト・オブジェクト329を構築する基礎
として使用されるかのいずれかだからである。
・オブジェクト生成手順は親プロセス321のコンテキ
スト・オブジェクト325のコピーをインスタンス化す
る。親のコンテキスト・オブジェクト325のコピーが
ステップ1001でインスタンス化されるのは、子プロ
セスがそれ自体のコンテキスト・オブジェクトとして親
のコンテキスト・オブジェクトを使用しているか、ある
いは親のコンテキスト・オブジェクトが子プロセス32
3のコンテキスト・オブジェクト329を構築する基礎
として使用されるかのいずれかだからである。
【0043】親のコンテキスト・オブジェクトのコピー
がインスタンス化されると、コンテキスト・オブジェク
ト生成手順は子プロセスの「プロセス・タイプ」の親プ
ロセスの「プロセス・タイプ」との比較に応じて、2つ
の経路のうち1つを取る(ステップ1003)。「プロ
セス・タイプ」はどのオペレーティング・システムでプ
ロセスが本来作動するように作成されているかを示す。
たとえば、親プロセス321が本来Solaris
1.xオペレーティング・システムで実行されるように
作成されている場合、親プロセスの「プロセス・タイ
プ」は「Solaris 1.x」である。プロセスの
「プロセス・タイプ」は、プロセスを生成するために使
用されるコードを格納しているファイルのヘッダ部に格
納されているのが好ましい。たとえば、スプレッドシー
ト・プログラムをインプリメントするために使用される
コードを格納しているファイルは通常、スプレッドシー
ト・プログラムの「プロセス・タイプ」情報を収めてい
るヘッダ部を含んでいる。比較によって、子プロセス3
23と親プロセス321が両方とも本来同じオペレーテ
ィング・システム(たとえば、Solaris 1.x
オペレーティング・システム)で作動するように作成さ
れていることが示された場合、子プロセス323は親の
コンテキスト・オブジェクト325と完全に互換性があ
り、したがって、親のコンテキスト・オブジェクトのコ
ピーをそれ自体のコンテキスト・オブジェクト329と
して使用するだけである、一例が子プロセスと親プロセ
スの間の互換性を説明する助けになることがある。子プ
ロセス323が名前「/sys/lib」を使用してラ
イブラリ機能を呼び出した場合、子プロセス323はS
olaris 1.xライブラリから機能を検索するこ
とを期待する。親プロセス321のコンテキスト・オブ
ジェクト325のコピーに関して名前「/sys/li
b」を分析することによって、Solarisオペレー
ティング・システム1.xのライブラリを収めているコ
ンテキスト・オブジェクト711(図7)がアクセスさ
れる。Solaris 1.Xのライブラリからの該当
するオブジェクトがさらに処理するため子プロセス32
3に返される。
がインスタンス化されると、コンテキスト・オブジェク
ト生成手順は子プロセスの「プロセス・タイプ」の親プ
ロセスの「プロセス・タイプ」との比較に応じて、2つ
の経路のうち1つを取る(ステップ1003)。「プロ
セス・タイプ」はどのオペレーティング・システムでプ
ロセスが本来作動するように作成されているかを示す。
たとえば、親プロセス321が本来Solaris
1.xオペレーティング・システムで実行されるように
作成されている場合、親プロセスの「プロセス・タイ
プ」は「Solaris 1.x」である。プロセスの
「プロセス・タイプ」は、プロセスを生成するために使
用されるコードを格納しているファイルのヘッダ部に格
納されているのが好ましい。たとえば、スプレッドシー
ト・プログラムをインプリメントするために使用される
コードを格納しているファイルは通常、スプレッドシー
ト・プログラムの「プロセス・タイプ」情報を収めてい
るヘッダ部を含んでいる。比較によって、子プロセス3
23と親プロセス321が両方とも本来同じオペレーテ
ィング・システム(たとえば、Solaris 1.x
オペレーティング・システム)で作動するように作成さ
れていることが示された場合、子プロセス323は親の
コンテキスト・オブジェクト325と完全に互換性があ
り、したがって、親のコンテキスト・オブジェクトのコ
ピーをそれ自体のコンテキスト・オブジェクト329と
して使用するだけである、一例が子プロセスと親プロセ
スの間の互換性を説明する助けになることがある。子プ
ロセス323が名前「/sys/lib」を使用してラ
イブラリ機能を呼び出した場合、子プロセス323はS
olaris 1.xライブラリから機能を検索するこ
とを期待する。親プロセス321のコンテキスト・オブ
ジェクト325のコピーに関して名前「/sys/li
b」を分析することによって、Solarisオペレー
ティング・システム1.xのライブラリを収めているコ
ンテキスト・オブジェクト711(図7)がアクセスさ
れる。Solaris 1.Xのライブラリからの該当
するオブジェクトがさらに処理するため子プロセス32
3に返される。
【0044】比較によって、子プロセス323および親
プロセス321が両方とも2つの異なるオペレーティン
グ・システム(たとえば、Solaris 1.xオペ
レーション・システムとSolaris 2.xオペレ
ーティング・システム)で作動するように作成されてい
ることが示された場合、子プロセス323は親プロセス
321のコンテキスト・オブジェクト325と完全な互
換性を持たない。この非互換性も図7を使用して理解す
ることができる。子プロセス323がストリング「/s
ys/lib」または「/sys/bin」を含んでい
る名前を分析する要求を呼び出したものと想定する。ま
た、子プロセス323が親プロセス321のコンテキス
ト・オブジェクト325のコピーに関して名前を分析し
ているものと想定する。この場合、子プロセス323は
Solaris 1.xオペレーティング・システムの
名前スペースからオブジェクトを受け取る。子プロセス
323はその代わりに、Solaris 2.xオペレ
ーティング・システムのバイナリまたはライブラリを収
めているオブジェクトにアクセスする必要がある。子プ
ロセス323にSolaris 2.xの名前スペース
の該当するオブジェクトへのアクセスを与えるために、
コンテキスト・オブジェクト作成手順はステップ100
5において、コンテキスト・マージ・メソッド715を
呼び出す(図7)。コンテキスト・マージ・メソッド7
15はコンテキスト・オブジェクトを並べ、オブジェク
ト名を分析するときに、子プロセスにもっともふさわし
いオブジェクトがアクセスされるようにする。
プロセス321が両方とも2つの異なるオペレーティン
グ・システム(たとえば、Solaris 1.xオペ
レーション・システムとSolaris 2.xオペレ
ーティング・システム)で作動するように作成されてい
ることが示された場合、子プロセス323は親プロセス
321のコンテキスト・オブジェクト325と完全な互
換性を持たない。この非互換性も図7を使用して理解す
ることができる。子プロセス323がストリング「/s
ys/lib」または「/sys/bin」を含んでい
る名前を分析する要求を呼び出したものと想定する。ま
た、子プロセス323が親プロセス321のコンテキス
ト・オブジェクト325のコピーに関して名前を分析し
ているものと想定する。この場合、子プロセス323は
Solaris 1.xオペレーティング・システムの
名前スペースからオブジェクトを受け取る。子プロセス
323はその代わりに、Solaris 2.xオペレ
ーティング・システムのバイナリまたはライブラリを収
めているオブジェクトにアクセスする必要がある。子プ
ロセス323にSolaris 2.xの名前スペース
の該当するオブジェクトへのアクセスを与えるために、
コンテキスト・オブジェクト作成手順はステップ100
5において、コンテキスト・マージ・メソッド715を
呼び出す(図7)。コンテキスト・マージ・メソッド7
15はコンテキスト・オブジェクトを並べ、オブジェク
ト名を分析するときに、子プロセスにもっともふさわし
いオブジェクトがアクセスされるようにする。
【0045】これを達成するために、コンテキスト・マ
ージ・メソッド715はまず、子プロセス323の「プ
ロセス・タイプ」を決定する。プロセス・タイプは、プ
ロセスが本来作動するように作成されているオペレーテ
ィング・システムを示す。子プロセス323のプロセス
タイプはSolaris 2.xオペレーティング・シ
ステムである。次に、コンテキスト・マージ・メソッド
715は親プロセス321のプロセス・タイプを決定す
る。親プロセス321のプロセス・タイプはSolar
is 1.xオペレーティング・システムである。親プ
ロセスのプロセス・タイプおよび子プロセスのプロセス
・タイプが与えられると、コンテキスト・マージ・メソ
ッドは子プロセス323を完全にサポートするために
は、データ・テーブル701のどの情報を修正する必要
があるかを決定する。必要とされる修正はマージされる
コンテキスト・オブジェクトのプロセス・タイプによっ
て決定される。
ージ・メソッド715はまず、子プロセス323の「プ
ロセス・タイプ」を決定する。プロセス・タイプは、プ
ロセスが本来作動するように作成されているオペレーテ
ィング・システムを示す。子プロセス323のプロセス
タイプはSolaris 2.xオペレーティング・シ
ステムである。次に、コンテキスト・マージ・メソッド
715は親プロセス321のプロセス・タイプを決定す
る。親プロセス321のプロセス・タイプはSolar
is 1.xオペレーティング・システムである。親プ
ロセスのプロセス・タイプおよび子プロセスのプロセス
・タイプが与えられると、コンテキスト・マージ・メソ
ッドは子プロセス323を完全にサポートするために
は、データ・テーブル701のどの情報を修正する必要
があるかを決定する。必要とされる修正はマージされる
コンテキスト・オブジェクトのプロセス・タイプによっ
て決定される。
【0046】図11は(Solaris2.x)コンテ
キスト・プロセス323に完全な互換性を与えるため、
(Solaris 1.x)コンテキスト・オブジェク
ト325に行った修正を示す。まず、コンテキスト・マ
ージ・メソッド715はデータ・テーブル701のエン
トリ705を修正して、コンテキスト・マージ操作がオ
ブジェクト名「/sys/bin」で行われたことを示
す。コンテキスト・マージ操作がエントリに行われたこ
とを示す好ましい構文は、すぐ後ろに識別子のついた記
号「::」を使用する。たとえば、コンテキスト・マー
ジ・メソッドはエントリ705を修正して、「/sis
u/bin=Solaris2.x::Solaris
1.x」として、Solaris 2.xオペレーティ
ング・システムのバイナリを収めているコンテキスト・
オブジェクト708からのオブジェクトに対して、名前
「/sys/bin」がまず分析されることを示す。名
前「/sys/bin」がコンテキスト・オブジェクト
708にバインドされていない場合にのみ、Solar
is 1.Xオペレーティング・システムのバイナリを
収めている、コンテキスト・オブジェクト707からの
オブジェクトが調べられる。コンテキスト・マージ・メ
ソッド715はエントリ709に対して同様な修正を行
って、名前「/sys/bin」が、Solaris
1.xオペレーティング・システムのライブラリを収め
ているコンテキスト・オブジェクト711からのオブジ
ェクトに関して分析される前に(あるいは、その代わり
に)、Solaris 2.xオペレーティング・シス
テムのライブラリに対するコンテキスト・オブジェクト
712からのオブジェクトに関して分析されることを示
す。
キスト・プロセス323に完全な互換性を与えるため、
(Solaris 1.x)コンテキスト・オブジェク
ト325に行った修正を示す。まず、コンテキスト・マ
ージ・メソッド715はデータ・テーブル701のエン
トリ705を修正して、コンテキスト・マージ操作がオ
ブジェクト名「/sys/bin」で行われたことを示
す。コンテキスト・マージ操作がエントリに行われたこ
とを示す好ましい構文は、すぐ後ろに識別子のついた記
号「::」を使用する。たとえば、コンテキスト・マー
ジ・メソッドはエントリ705を修正して、「/sis
u/bin=Solaris2.x::Solaris
1.x」として、Solaris 2.xオペレーティ
ング・システムのバイナリを収めているコンテキスト・
オブジェクト708からのオブジェクトに対して、名前
「/sys/bin」がまず分析されることを示す。名
前「/sys/bin」がコンテキスト・オブジェクト
708にバインドされていない場合にのみ、Solar
is 1.Xオペレーティング・システムのバイナリを
収めている、コンテキスト・オブジェクト707からの
オブジェクトが調べられる。コンテキスト・マージ・メ
ソッド715はエントリ709に対して同様な修正を行
って、名前「/sys/bin」が、Solaris
1.xオペレーティング・システムのライブラリを収め
ているコンテキスト・オブジェクト711からのオブジ
ェクトに関して分析される前に(あるいは、その代わり
に)、Solaris 2.xオペレーティング・シス
テムのライブラリに対するコンテキスト・オブジェクト
712からのオブジェクトに関して分析されることを示
す。
【0047】コンテキスト・オブジェクト作成手順が図
10のステップ1005においてコンテキスト・マージ
操作を完了した後、処理はプロセス作成手順のステップ
905に進む(図9)。ステップ905において、プロ
セス作成手順はコンテキスト・オブジェクト329を子
プロセス323に送る。
10のステップ1005においてコンテキスト・マージ
操作を完了した後、処理はプロセス作成手順のステップ
905に進む(図9)。ステップ905において、プロ
セス作成手順はコンテキスト・オブジェクト329を子
プロセス323に送る。
【0048】子プロセス323がコンテキスト・オブジ
ェクト329を受け取ると、操作要求に収められている
オブジェクト名が該当するコンテキスト・オブジェクト
からのオブジェクトに関して分析されるため、子プロセ
スはその操作のいずれをも安全に行うことができる。こ
のようにして、第1のオペレーティング・システムで実
行されるように作成されている親プロセスは、第2のオ
ペレーティング・システムで実行されるように作成され
ている子プロセスを生じることができるとともに、親プ
ロセスおよび子プロセスは両方とも第3のオペレーティ
ング・システムで実際に実行される。
ェクト329を受け取ると、操作要求に収められている
オブジェクト名が該当するコンテキスト・オブジェクト
からのオブジェクトに関して分析されるため、子プロセ
スはその操作のいずれをも安全に行うことができる。こ
のようにして、第1のオペレーティング・システムで実
行されるように作成されている親プロセスは、第2のオ
ペレーティング・システムで実行されるように作成され
ている子プロセスを生じることができるとともに、親プ
ロセスおよび子プロセスは両方とも第3のオペレーティ
ング・システムで実際に実行される。
【0049】本発明を好ましい実施の形態によって説明
してきたが、本発明をこの実施の形態に限定することを
意図するものではない。本発明の精神の範囲内の改変は
当分野の技術者にとって明らかであろう。
してきたが、本発明をこの実施の形態に限定することを
意図するものではない。本発明の精神の範囲内の改変は
当分野の技術者にとって明らかであろう。
【0050】通常の技量を有する技術者には、本発明の
教示をシンボリック・リンクと結合し、より抽象的な名
前をデータ・テーブル701のエントリにマップできる
ことが理解されよう。たとえば、データ・エントリ70
5を名前「/sys/bin」を収めたものとして説明
したが、シンボリック・リンクを使用して、まず名前
「/sys/bin」を「/sys/bin]に対する
テーブル・エントリ705にマップすることができる。
さらに、エントリ705をオペレーティング・システム
の特定のタイプに対応したテーブルの他のエントリにリ
ンクすることができる。たとえば、エントリ「/sys
/bin」を、Solaris 1.xオペレーティン
グ・システムに対するバイナリを収めているコンテキス
ト・オブジェクトへのリンクを収めている「/Sola
ris 1.x」に対するエントリにマップすることが
できる。
教示をシンボリック・リンクと結合し、より抽象的な名
前をデータ・テーブル701のエントリにマップできる
ことが理解されよう。たとえば、データ・エントリ70
5を名前「/sys/bin」を収めたものとして説明
したが、シンボリック・リンクを使用して、まず名前
「/sys/bin」を「/sys/bin]に対する
テーブル・エントリ705にマップすることができる。
さらに、エントリ705をオペレーティング・システム
の特定のタイプに対応したテーブルの他のエントリにリ
ンクすることができる。たとえば、エントリ「/sys
/bin」を、Solaris 1.xオペレーティン
グ・システムに対するバイナリを収めているコンテキス
ト・オブジェクトへのリンクを収めている「/Sola
ris 1.x」に対するエントリにマップすることが
できる。
【0051】上記の実施例は子のコンテキスト・オブジ
ェクトを得るために親のコンテキスト・オブジェクトの
コピーをインスタンス化するが、通常の技量を有する技
術者には、この方法の最適化が可能であることが理解さ
れよう。たとえば、本発明の他の実施の形態はネーティ
ブ・オペレーティング・システムがサポートしている各
非ネーティブ・オペレーティング・システムに対する好
ましいコンテキスト・オブジェクトを静的に生成する。
サーバは各々好ましいコンテキスト・オブジェクトを格
納するのが好ましい。子プロセスがコンテキスト・オブ
ジェクトを必要とする場合、該当するコンテキスト・オ
ブジェクトがサーバから検索される。
ェクトを得るために親のコンテキスト・オブジェクトの
コピーをインスタンス化するが、通常の技量を有する技
術者には、この方法の最適化が可能であることが理解さ
れよう。たとえば、本発明の他の実施の形態はネーティ
ブ・オペレーティング・システムがサポートしている各
非ネーティブ・オペレーティング・システムに対する好
ましいコンテキスト・オブジェクトを静的に生成する。
サーバは各々好ましいコンテキスト・オブジェクトを格
納するのが好ましい。子プロセスがコンテキスト・オブ
ジェクトを必要とする場合、該当するコンテキスト・オ
ブジェクトがサーバから検索される。
【0052】最後に、上述の実施例は2つの異なるオペ
レーティング・システムで作動することが考えられてい
る2つのプロセスの間の相互運用性を検討したものであ
るが、通常の技量を有する技術者には、本明細書で検討
した技法を拡張し、「N」種類の異なるオペレーティン
グ・システムで作動することが考えられている「N」個
のプロセスの間の相互運用性を容易とできることが理解
されよう。これらおよびその他の改変形は当分野の技術
者には明らかであろう。
レーティング・システムで作動することが考えられてい
る2つのプロセスの間の相互運用性を検討したものであ
るが、通常の技量を有する技術者には、本明細書で検討
した技法を拡張し、「N」種類の異なるオペレーティン
グ・システムで作動することが考えられている「N」個
のプロセスの間の相互運用性を容易とできることが理解
されよう。これらおよびその他の改変形は当分野の技術
者には明らかであろう。
【図1】 第1のオペレーティング・システムで作動す
る第1のアプリケーション・プログラム(A)と、第2
のオペレーティング・システムで作動する第2のアプリ
ケーション・プログラム(B)とを示す。
る第1のアプリケーション・プログラム(A)と、第2
のオペレーティング・システムで作動する第2のアプリ
ケーション・プログラム(B)とを示す。
【図2】 コンピュータ・システムのディレクトリおよ
びファイルにアクセスするために使用される名前スペー
スの図である。
びファイルにアクセスするために使用される名前スペー
スの図である。
【図3】 本発明の好ましい実施の形態を実現するコン
ピュータ・システムのブロック図である。
ピュータ・システムのブロック図である。
【図4】 コンテキスト・オブジェクトのブロック図で
ある。
ある。
【図5】 コンテキスト・マージ方法の実行が完了した
後のコンテキスト・オブジェクトのブロック図である。
後のコンテキスト・オブジェクトのブロック図である。
【図6】 パープロセス・コンテキスト・オブジェクト
の略図である。
の略図である。
【図7】 親プロセスのコンテキスト・オブジェクトの
図である。
図である。
【図8】 ネーティブOS手順の流れ図である。
【図9】 プロセス作成手順の流れ図である。
【図10】 コンテキスト・オブジェクト生成手順の流
れ図である。
れ図である。
【図11】 子プロセスのコンテキスト・オブジェクト
の図である。
の図である。
300 コンピュータ・システム、 301 コンピュ
ータ、 303 ビデオ表示装置、 305 入力装
置、 307 CD−ROM駆動機構、 309永続記
憶装置、 311 処理装置、 313 RAM、 3
15 PROM、 317 インタフェース、 319
オペレーティング・システム
ータ、 303 ビデオ表示装置、 305 入力装
置、 307 CD−ROM駆動機構、 309永続記
憶装置、 311 処理装置、 313 RAM、 3
15 PROM、 317 インタフェース、 319
オペレーティング・システム
フロントページの続き (72)発明者 ピーター・ダブリュ・マダニー アメリカ合衆国 94555 カリフォルニア 州・フレモント デッカー テラス・5474 (72)発明者 サンジェイ・アール・ラディア アメリカ合衆国 94539 カリフォルニア 州・フレモント・ボア サークル・883 (72)発明者 アニル・エス・シバンリンジャー アメリカ合衆国 94583 カリフォルニア 州・サン レイモン・フォールン リーフ サークル・535
Claims (6)
- 【請求項1】 プロセッサとメモリを含んでおり、かつ
各々がオブジェクト名とこれらに関連したオブジェクト
・インプリメンテーションの間のバインディングを維持
する1つまたは複数のコンテキスト・オブジェクトをも
含んでおり、関連するオブジェクト・インプリメンテー
ション自体が他のコンテキスト・オブジェクトであるコ
ンピュータ・システムで実行される、異なるオペレーテ
ィング・システムで実行されるように設計されているプ
ロセス間の相互運用性を容易とする方法において、 第1のオペレーティング・システムの制御の下で、 第2のオペレーティング・システムで実行されるように
設計された親プロセスを呼び出すステップと、 それ自体が第2のオペレーティング・システムに関連づ
けられた少なくとも1つのコンテキスト・オブジェクト
を選択したオブジェクト名にバインドするコンテキスト
・オブジェクトを親プロセスに対して取得するステップ
と、 親プロセスの実行中に、第3のオペレーティング・シス
テムで実行されるように設計されている子プロセスを起
動するステップと、 親プロセスに対するコンテキスト・オブジェクトで見つ
かったほぼ同一の名前のバインディングを含んでいるコ
ンテキスト・オブジェクトを子プロセスに対して取得す
るステップと、 子プロセスのコンテキスト・オブジェクトでコンテキス
ト・マージ操作を実行するステップと、 コンテキスト・マージ操作の実行に応じて、第2のオペ
レーティング・システムに関連づけられたコンテキスト
・オブジェクトからのオブジェクトにアクセスする前
に、第3のオペレーティング・システムに関連づけられ
たコンテキスト・オブジェクトからのオブジェクトにア
クセスすることによって、子プロセスに対するコンテキ
スト・オブジェクトにおいて選択したオブジェクト名を
分析するステップとを備えている方法。 - 【請求項2】 プロセッサとメモリを含んでおり、各々
がオブジェクト名とこれらに関連したオブジェクト・イ
ンプリメンテーションの間のバインディングを維持する
1つまたは複数のコンテキスト・オブジェクトを含んで
おり、関連するオブジェクト・インプリメンテーション
自体が他のコンテキスト・オブジェクトであり、また第
1のオペレーティング・システムで実行されるように設
計された親プロセスも含んでいるコンピュータ・システ
ムで実行される、異なるオペレーティング・システムで
実行されるように設計されているプロセス間の相互運用
性を容易とする方法において、 第2のオペレーティング・システムの制御の下で、 第3のオペレーティング・システムで実行されるように
設計されている子プロセスを起動する要求を親プロセス
から受け取るステップと、 子プロセスを起動するステップと、 子プロセスに対するコンテキスト・オブジェクトを取得
するステップと、 子プロセスに対するコンテキスト・オブジェクトでコン
テキスト・マージ操作を実行するステップと、 コンテキスト・マージ操作の実行に応じて、第3のオペ
レーティング・システムと関連づけられたコンテキスト
・オブジェクトからのオブジェクトにアクセスすること
によって子プロセスに対するコンテキスト・オブジェク
トで選択されたオブジェクト名を分析するステップとを
備えている方法。 - 【請求項3】 プロセッサとメモリを含んでおり、各々
がオブジェクト名とこれらに関連したオブジェクト・イ
ンプリメンテーションの間のバインディングを維持する
1つまたは複数のコンテキスト・オブジェクトを含んで
おり、関連するオブジェクト・インプリメンテーション
自体が他のコンテキスト・オブジェクトであり、また第
1のオペレーティング・システムで実行されるように設
計された親プロセスも含んでいるコンピュータ・システ
ムで実行される、異なるオペレーティング・システムで
実行されるように設計されているプロセス間の相互運用
性を容易とする方法において、 第3のオペレーティング・システムで実行されるように
設計されている子プロセスを起動する要求を親プロセス
から受け取る第1の機構を与えるステップと、 子プロセスを起動する第2の機構を与えるステップと、 子プロセスに対するコンテキスト・オブジェクトを取得
する第3の機構を与えるステップと、 子プロセスに対するコンテキスト・オブジェクトでコン
テキスト・マージ操作を実行する第4の機構を与えるス
テップと、 コンテキスト・マージ操作の実行に応じて、第3のオペ
レーティング・システムと関連づけられたコンテキスト
・オブジェクトからのオブジェクトにアクセスすること
によって子プロセスに対するコンテキスト・オブジェク
トで選択されたオブジェクト名を分析する第5の与える
ステップとを備えている方法。 - 【請求項4】 プロセッサとメモリを含んでおり、かつ
各々がオブジェクト名とこれらに関連したオブジェクト
・インプリメンテーションの間のバインディングを維持
する1つまたは複数のコンテキスト・オブジェクトをも
含んでおり、関連するオブジェクト・インプリメンテー
ション自体が他のコンテキスト・オブジェクトであるコ
ンピュータ・システムで実行される、異なるオペレーテ
ィング・システムで実行されるように設計されているプ
ロセス間の相互運用性を容易とする方法において、 第2のオペレーティング・システムで実行されるように
設計された親プロセスを呼び出し、 それ自体が第2のオペレーティング・システムに関連づ
けられた少なくとも1つのコンテキスト・オブジェクト
を選択したオブジェクト名にバインドするコンテキスト
・オブジェクトを親プロセスに対して取得し、 親プロセスの実行中に、第3のオペレーティング・シス
テムで実行されるように設計されている子プロセスを起
動し、 親プロセスに対するコンテキスト・オブジェクトで見つ
かったほぼ同一の名前のバインディングを含んでいるコ
ンテキスト・オブジェクトを子プロセスに対して取得
し、 子プロセスのコンテキスト・オブジェクトでコンテキス
ト・マージ操作を実行し、 コンテキスト・マージ操作の実行に応じて、第2のオペ
レーティング・システムに関連づけられたコンテキスト
・オブジェクトからのオブジェクトにアクセスする前
に、第3のオペレーティング・システムに関連づけられ
たコンテキスト・オブジェクトからのオブジェクトにア
クセスすることによって、子プロセスに対するコンテキ
スト・オブジェクトにおいて選択したオブジェクト名を
分析する第1のオペレーティング・システムを与えるス
テップを備えている方法。 - 【請求項5】 異なるオペレーティング・システムで実
行されるように設計されているプロセス間の相互運用性
を容易とするコンピュータ・システムであって、プロセ
ッサとメモリを含んでおり、かつ各々がオブジェクト名
とこれらに関連したオブジェクト・インプリメンテーシ
ョンの間のバインディングを維持する1つまたは複数の
コンテキスト・オブジェクトをも含んでおり、関連する
オブジェクト・インプリメンテーション自体が他のコン
テキスト・オブジェクトであるコンピュータ・システム
において、 第2のオペレーティング・システムで実行されるように
設計された親プロセスを呼び出すように構成された第1
のプログラム機構と、 第2のオペレーティング・システムに関連づけられた少
なくとも1つのコンテキスト・オブジェクトを選択した
オブジェクト名にバインドするコンテキスト・オブジェ
クトを親プロセスに対して取得するように構成された第
2のプログラム機構と、 第3のオペレーティング・システムで実行されるように
設計された子プロセスを始動するように構成された第3
のプログラム機構と、 親プロセスに対するコンテキスト・オブジェクトで見つ
かった同一の名前のバインディングを含んでいるコンテ
キスト・オブジェクトを子プロセスに対して取得するよ
うに構成された第4のプログラム機構と、 子プロセスのコンテキスト・オブジェクトでコンテキス
ト・マージ操作を実行するように構成された第5のプロ
グラム機構と、 コンテキスト・マージ操作の実行に応じて、第2のオペ
レーティング・システムに関連づけられたコンテキスト
・オブジェクトからのオブジェクトにアクセスする前
に、第3のオペレーティング・システムに関連づけられ
たコンテキスト・オブジェクトからのオブジェクトにア
クセスすることによって、子プロセスに対するコンテキ
スト・オブジェクトにおいて選択したオブジェクト名を
分析するように構成された第6のプログラム機構とを制
御するように構成された第1のオペレーティング・シス
テムを備えているコンピュータ・システム。 - 【請求項6】 異なるオペレーティング・システムで実
行されるように設計されているプロセス間の相互運用性
を容易とするコンピュータ・システムであって、プロセ
ッサとメモリを含んでおり、各々がオブジェクト名とこ
れらに関連したオブジェクト・インプリメンテーション
の間のバインディングを維持する1つまたは複数のコン
テキスト・オブジェクトを含んでおり、関連するオブジ
ェクト・インプリメンテーション自体が他のコンテキス
ト・オブジェクトであり、また第1のオペレーティング
・システムで実行されるように設計された親プロセスも
含んでいるコンピュータ・システムにおいて、 第3のオペレーティング・システムで実行されるように
設計されている子プロセスを起動する要求を親プロセス
から受け取るように構成された第1の機構と、 子プロセスを起動するように構成された第2の機構と、 子プロセスに対するコンテキスト・オブジェクトを取得
するように構成された第3の機構と、 子プロセスに対するコンテキスト・オブジェクトでコン
テキスト・マージ操作を実行するように構成された第4
の機構と、 コンテキスト・マージ操作の実行に応じて、第3のオペ
レーティング・システムと関連づけられたコンテキスト
・オブジェクトからのオブジェクトにアクセスすること
によって子プロセスに対するコンテキスト・オブジェク
トで選択されたオブジェクト名を分析するように構成さ
れた第5の機構とを制御するように構成された第2のオ
ペレーティング・システムを備えているコンピュータ・
システム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US42273795A | 1995-04-14 | 1995-04-14 | |
US422737 | 1995-04-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH09198260A true JPH09198260A (ja) | 1997-07-31 |
Family
ID=23676147
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP8115243A Pending JPH09198260A (ja) | 1995-04-14 | 1996-04-15 | 異なるオペレーティング・システムで実行されるように作成されたプロセス間に相互運用性をもたらす方法およびシステム |
Country Status (5)
Country | Link |
---|---|
US (1) | US6182158B1 (ja) |
EP (1) | EP0737919B1 (ja) |
JP (1) | JPH09198260A (ja) |
CA (1) | CA2173695A1 (ja) |
DE (1) | DE69621975T2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005216288A (ja) * | 2003-12-22 | 2005-08-11 | Sun Microsyst Inc | アプリケーション環境をクローニングするプロセスにおけるインクリメンタルプロファイリングデータを、ダイナミックかつ持続的にトラッキングするシステムおよび方法 |
Families Citing this family (72)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ATE197743T1 (de) | 1995-08-04 | 2000-12-15 | Belle Gate Invest B V | Datenaustauschlsysteme mit tragbaren datenverarbeitungseinheiten |
US6385645B1 (en) * | 1995-08-04 | 2002-05-07 | Belle Gate Investments B.V. | Data exchange system comprising portable data processing units |
US6292820B1 (en) * | 1996-07-29 | 2001-09-18 | At& T Corp. | Porting POSIX-conforming operating systems to Win32 API-conforming operating systems |
US6424988B2 (en) * | 1997-02-19 | 2002-07-23 | Unisys Corporation | Multicomputer system |
US7076784B1 (en) * | 1997-10-28 | 2006-07-11 | Microsoft Corporation | Software component execution management using context objects for tracking externally-defined intrinsic properties of executing software components within an execution environment |
EP1040414B1 (de) | 1997-12-17 | 2002-07-10 | Fujitsu Siemens Computers GmbH | Verfahren zum umsetzen eines systemaufrufs |
US6119131A (en) * | 1998-06-12 | 2000-09-12 | Microsoft Corporation | Persistent volume mount points |
EP1118203A1 (en) | 1998-09-29 | 2001-07-25 | Sun Microsystems, Inc. | Superposition of data over voice |
US6922835B1 (en) * | 1999-01-22 | 2005-07-26 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier on a small footprint device using run time environment privileges |
US6823520B1 (en) | 1999-01-22 | 2004-11-23 | Sun Microsystems, Inc. | Techniques for implementing security on a small footprint device using a context barrier |
US6633984B2 (en) | 1999-01-22 | 2003-10-14 | Sun Microsystems, Inc. | Techniques for permitting access across a context barrier on a small footprint device using an entry point object |
US6425003B1 (en) * | 1999-01-22 | 2002-07-23 | Cisco Technology, Inc. | Method and apparatus for DNS resolution |
JP4072271B2 (ja) | 1999-02-19 | 2008-04-09 | 株式会社日立製作所 | 複数のオペレーティングシステムを実行する計算機 |
US6829770B1 (en) * | 1999-02-23 | 2004-12-07 | Microsoft Corporation | Object connectivity through loosely coupled publish and subscribe events |
DE69942620D1 (de) | 1999-06-10 | 2010-09-02 | Belle Gate Invest B V | Vorrichtung zum speichern unterschiedlicher versionen von datensätzen in getrennten datenbereichen uin einem speicher |
US6826760B1 (en) * | 1999-06-16 | 2004-11-30 | Microsoft Corporation | Methods of factoring operating system functions, methods of converting operating systems, and related apparatus |
US6748555B1 (en) | 1999-09-09 | 2004-06-08 | Microsoft Corporation | Object-based software management |
US7207037B2 (en) * | 1999-11-12 | 2007-04-17 | Sun Microsystems, Inc. | Overflow sensitive arithmetic instruction optimization using chaining |
US7158993B1 (en) | 1999-11-12 | 2007-01-02 | Sun Microsystems, Inc. | API representation enabling submerged hierarchy |
US7010786B2 (en) | 1999-11-12 | 2006-03-07 | Sun Microsystems, Inc. | Predictive arithmetic overflow detection |
US6363523B1 (en) * | 1999-11-12 | 2002-03-26 | Sun Microsystems, Inc. | Optimization of N-base typed arithmetic expressions |
US8453133B2 (en) * | 1999-11-12 | 2013-05-28 | Oracle America, Inc. | Optimization of N-base typed arithmetic instructions via rework |
US7107581B2 (en) * | 1999-11-12 | 2006-09-12 | Sun Microsystems, Inc. | Overflow predictive arithmetic instruction optimization using chaining |
WO2001040910A1 (en) * | 1999-12-06 | 2001-06-07 | De Jong, Eduard, Karel | Computer arrangement using non-refreshed dram |
JP4824240B2 (ja) * | 1999-12-07 | 2011-11-30 | オラクル・アメリカ・インコーポレイテッド | 安全な写真担持用識別装置及びこのような識別装置を認証する手段及び方法 |
BR9917574A (pt) | 1999-12-07 | 2002-08-06 | Sun Microsystems Inc | Meio legìvel por computador com microprocessador para controlar a leitura e computador disposto para se comunicar com tal meio |
US6920636B1 (en) | 1999-12-15 | 2005-07-19 | Microsoft Corporation | Queued component interface passing for results outflow from queued method invocations |
US6611847B1 (en) * | 1999-12-30 | 2003-08-26 | Unisys Corporation | Method for dynamically linking two objects in two different models |
US6651186B1 (en) | 2000-04-28 | 2003-11-18 | Sun Microsystems, Inc. | Remote incremental program verification using API definitions |
US6883163B1 (en) | 2000-04-28 | 2005-04-19 | Sun Microsystems, Inc. | Populating resource-constrained devices with content verified using API definitions |
US6986132B1 (en) | 2000-04-28 | 2006-01-10 | Sun Microsytems, Inc. | Remote incremental program binary compatibility verification using API definitions |
CA2416844A1 (en) | 2000-07-20 | 2002-01-31 | Belle Gate Investment B.V. | Method and system of communicating devices, and devices therefor, with protected data transfer |
US6754672B1 (en) * | 2000-09-13 | 2004-06-22 | American Management Systems, Inc. | System and method for efficient integration of government administrative and program systems |
US6981245B1 (en) | 2000-09-14 | 2005-12-27 | Sun Microsystems, Inc. | Populating binary compatible resource-constrained devices with content verified using API definitions |
US7574346B2 (en) * | 2000-10-30 | 2009-08-11 | Microsoft Corporation | Kernel emulator for non-native program modules |
TW552502B (en) * | 2000-11-21 | 2003-09-11 | Matsushita Electric Ind Co Ltd | File management method and content recording/playback apparatus |
TWI230858B (en) * | 2000-12-12 | 2005-04-11 | Matsushita Electric Ind Co Ltd | File management method, content recording/playback apparatus and content recording program |
US8819705B2 (en) | 2010-10-01 | 2014-08-26 | Z124 | User interaction support across cross-environment applications |
US9047102B2 (en) | 2010-10-01 | 2015-06-02 | Z124 | Instant remote rendering |
US9152582B2 (en) | 2010-10-01 | 2015-10-06 | Z124 | Auto-configuration of a docked system in a multi-OS environment |
US20130024812A1 (en) | 2011-07-13 | 2013-01-24 | Z124 | Foreground/background assortment of hidden windows |
US8933949B2 (en) | 2010-10-01 | 2015-01-13 | Z124 | User interaction across cross-environment applications through an extended graphics context |
US8966379B2 (en) | 2010-10-01 | 2015-02-24 | Z124 | Dynamic cross-environment application configuration/orientation in an active user environment |
US8726294B2 (en) | 2010-10-01 | 2014-05-13 | Z124 | Cross-environment communication using application space API |
US7113937B2 (en) | 2001-12-18 | 2006-09-26 | International Business Machines Corporation | Systems, methods, and computer program products to improve performance of ported applications, such as a database, operating on UNIX system services for the OS/390 |
US6754734B2 (en) * | 2001-12-18 | 2004-06-22 | International Business Machines Corporation | Systems, methods, and computer program products to improve performance of ported applications, such as a database |
US6877045B2 (en) | 2001-12-18 | 2005-04-05 | International Business Machines Corporation | Systems, methods, and computer program products to schedule I/O access to take advantage of disk parallel access volumes |
US7159217B2 (en) * | 2001-12-20 | 2007-01-02 | Cadence Design Systems, Inc. | Mechanism for managing parallel execution of processes in a distributed computing environment |
US7117500B2 (en) * | 2001-12-20 | 2006-10-03 | Cadence Design Systems, Inc. | Mechanism for managing execution of interdependent aggregated processes |
US7299466B2 (en) * | 2001-12-20 | 2007-11-20 | Cadence Design Systems, Inc. | Mechanism for managing execution environments for aggregated processes |
US7093259B2 (en) * | 2001-12-20 | 2006-08-15 | Cadence Design Systems, Inc. | Hierarchically structured logging for computer work processing |
GB0226874D0 (en) * | 2002-11-18 | 2002-12-24 | Advanced Risc Mach Ltd | Switching between secure and non-secure processing modes |
US8930846B2 (en) | 2010-10-01 | 2015-01-06 | Z124 | Repositioning applications in a stack |
US7424723B2 (en) * | 2003-10-30 | 2008-09-09 | Microsoft Corporation | System and method for executing an arbitrary function from an external process |
DE102004016122A1 (de) * | 2004-04-01 | 2005-10-27 | Siemens Ag | Rechnersystem mit einem in ein Betriebssystem eingebetteten Echtzeitbetriebssystem |
WO2006055838A2 (en) * | 2004-11-18 | 2006-05-26 | America Online, Inc. | Runtime environment |
US7979870B1 (en) | 2004-12-08 | 2011-07-12 | Cadence Design Systems, Inc. | Method and system for locating objects in a distributed computing environment |
US8108878B1 (en) | 2004-12-08 | 2012-01-31 | Cadence Design Systems, Inc. | Method and apparatus for detecting indeterminate dependencies in a distributed computing environment |
US8244854B1 (en) | 2004-12-08 | 2012-08-14 | Cadence Design Systems, Inc. | Method and system for gathering and propagating statistical information in a distributed computing environment |
US8250131B1 (en) | 2004-12-08 | 2012-08-21 | Cadence Design Systems, Inc. | Method and apparatus for managing a distributed computing environment |
US8806490B1 (en) | 2004-12-08 | 2014-08-12 | Cadence Design Systems, Inc. | Method and apparatus for managing workflow failures by retrying child and parent elements |
KR100810268B1 (ko) * | 2006-04-06 | 2008-03-06 | 삼성전자주식회사 | 모바일 디스플레이 장치에서의 색약자를 위한 구현 방법 |
US8516505B2 (en) | 2008-03-14 | 2013-08-20 | Microsoft Corporation | Cross-platform compatibility framework for computer applications |
US8749484B2 (en) | 2010-10-01 | 2014-06-10 | Z124 | Multi-screen user interface with orientation based control |
WO2012044558A2 (en) | 2010-10-01 | 2012-04-05 | Imerj, Llc | Cross-environment communication framework |
US8761831B2 (en) | 2010-10-15 | 2014-06-24 | Z124 | Mirrored remote peripheral interface |
US8878794B2 (en) | 2011-09-27 | 2014-11-04 | Z124 | State of screen info: easel |
US8843676B2 (en) | 2012-06-27 | 2014-09-23 | International Business Machines Corporation | Optimizing an operating system I/O operation that pertains to a specific program and file |
CN107241651B (zh) * | 2016-03-28 | 2021-02-26 | 斑马智行网络(香港)有限公司 | 一种媒体数据播放方法和装置、智能终端 |
US20170329526A1 (en) * | 2016-05-13 | 2017-11-16 | Hewlett Packard Enterprise Development Lp | Interoperable capabilities |
US10324722B2 (en) | 2016-06-24 | 2019-06-18 | Hewlett Packard Enterprise Development Lp | Global capabilities transferrable across node boundaries |
US10303615B2 (en) | 2017-06-16 | 2019-05-28 | Hewlett Packard Enterprise Development Lp | Matching pointers across levels of a memory hierarchy |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0664536B2 (ja) * | 1986-01-17 | 1994-08-22 | インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション | 仮想端末サブシステムの制御方法 |
US5067072A (en) * | 1987-11-06 | 1991-11-19 | Visystems, Inc. | Virtual software machine which preprocesses application program to isolate execution dependencies and uses target computer processes to implement the execution dependencies |
US5175854A (en) * | 1989-06-19 | 1992-12-29 | Digital Equipment Corporation | Inter-applicataion interface system |
US5249293A (en) * | 1989-06-27 | 1993-09-28 | Digital Equipment Corporation | Computer network providing transparent operation on a compute server and associated method |
US5313578A (en) * | 1990-12-23 | 1994-05-17 | Motorola, Inc. | Portable interprocess communication facility |
WO1993020511A1 (en) * | 1992-03-31 | 1993-10-14 | Aggregate Computing, Inc. | An integrated remote execution system for a heterogenous computer network environment |
EP0567971B1 (en) * | 1992-04-27 | 1999-07-28 | Sony Corporation | Information processing system assuring compatibility between different models |
EP0592080A2 (en) * | 1992-09-24 | 1994-04-13 | International Business Machines Corporation | Method and apparatus for interprocess communication in a multicomputer system |
US5577252A (en) * | 1993-07-28 | 1996-11-19 | Sun Microsystems, Inc. | Methods and apparatus for implementing secure name servers in an object-oriented system |
US5515508A (en) * | 1993-12-17 | 1996-05-07 | Taligent, Inc. | Client server system and method of operation including a dynamically configurable protocol stack |
-
1996
- 1996-04-09 CA CA002173695A patent/CA2173695A1/en not_active Abandoned
- 1996-04-12 EP EP96302575A patent/EP0737919B1/en not_active Expired - Lifetime
- 1996-04-12 DE DE69621975T patent/DE69621975T2/de not_active Expired - Fee Related
- 1996-04-15 JP JP8115243A patent/JPH09198260A/ja active Pending
-
1997
- 1997-08-19 US US08/915,153 patent/US6182158B1/en not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005216288A (ja) * | 2003-12-22 | 2005-08-11 | Sun Microsyst Inc | アプリケーション環境をクローニングするプロセスにおけるインクリメンタルプロファイリングデータを、ダイナミックかつ持続的にトラッキングするシステムおよび方法 |
Also Published As
Publication number | Publication date |
---|---|
US6182158B1 (en) | 2001-01-30 |
EP0737919A2 (en) | 1996-10-16 |
DE69621975D1 (de) | 2002-08-01 |
EP0737919A3 (en) | 1997-01-15 |
EP0737919B1 (en) | 2002-06-26 |
DE69621975T2 (de) | 2002-11-14 |
CA2173695A1 (en) | 1996-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH09198260A (ja) | 異なるオペレーティング・システムで実行されるように作成されたプロセス間に相互運用性をもたらす方法およびシステム | |
US9934005B2 (en) | Dynamically building locale objects or subsections of locale objects based on historical data | |
US6513158B1 (en) | Method and apparatus for running multiple java applications simultaneously | |
US9189263B1 (en) | Object synchronization in shared object space | |
US7174361B1 (en) | Scripting task-level user-interfaces | |
US7627865B2 (en) | Method and apparatus for accessing instrumentation data from within a managed code environment | |
US7788593B1 (en) | Seamless integration and installation of non-native application into native operating system | |
US7770146B2 (en) | Computer software development incorporating core and compound services | |
US9454616B2 (en) | Method and system for unifying configuration descriptors | |
JPH10105410A (ja) | インターネット−イネーブル型ポートフォリオ・マネージャ・システム及び方法 | |
US20090133013A1 (en) | Creating Virtual Applications | |
US7150001B1 (en) | System and method to facilitate design-time component discovery | |
US11010355B2 (en) | Layer-based file access method and apparatus of virtualization instance | |
US7496926B2 (en) | Method and apparatus to encapsulate a queue in a namespace | |
WO2002033545A2 (en) | Pluggable instantiable distributed objects | |
JPH1069376A (ja) | ワールド・ワイド・ウェブ文書に対する組込型リンクを有しているツールバー・アイコン及び統合型ウェブ・ブラウザを有するインターネット−イネーブル型図的ユーザ・インターフェイス | |
JPH09171465A (ja) | 異なる命名サービス・プロバイダが動的に命名フェデレーションに接合することを可能とするシステムおよび方法 | |
US8738746B2 (en) | Configuration management for real-time server | |
US6944620B2 (en) | File system creator | |
US7765284B2 (en) | Dynamically modified, multiple-platform computer programs, and methods and apparatus utilizing same | |
US20040216146A1 (en) | Method for mapping procedural C++ code to java object-oriented classes | |
US20060206458A1 (en) | Serving program elements through a unified interface | |
US7107587B1 (en) | Access redirector and entry reflector | |
US20060253858A1 (en) | Software service application and method of servicing a software application | |
US20100251236A1 (en) | In-Process Intermediary To Create Virtual Processes |