JP5422103B2 - 分離されている実行コンテキスト間でのデータ転送方法及び装置 - Google Patents

分離されている実行コンテキスト間でのデータ転送方法及び装置 Download PDF

Info

Publication number
JP5422103B2
JP5422103B2 JP2007001272A JP2007001272A JP5422103B2 JP 5422103 B2 JP5422103 B2 JP 5422103B2 JP 2007001272 A JP2007001272 A JP 2007001272A JP 2007001272 A JP2007001272 A JP 2007001272A JP 5422103 B2 JP5422103 B2 JP 5422103B2
Authority
JP
Japan
Prior art keywords
application
ownership
execution context
transfer
instructions
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.)
Active
Application number
JP2007001272A
Other languages
English (en)
Other versions
JP2007183968A (ja
Inventor
ビオロ チアリ
エス. ラビシャンカー タンジョール
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sun Microsystems Inc
Original Assignee
Sun Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sun Microsystems Inc filed Critical Sun Microsystems Inc
Publication of JP2007183968A publication Critical patent/JP2007183968A/ja
Application granted granted Critical
Publication of JP5422103B2 publication Critical patent/JP5422103B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6236Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database between heterogeneous systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2149Restricted operating environment

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Description

互いに及びライブラリー及びランタイム環境等のその他のソフトウエアと相互作用を行うことを必要とする複数のソフトウエアアプリケーションを具備する多数の計算環境が存在している。
相互作用を行うことを可能としながら、該アプリケーション及び該アプリケーションにより所有されているオブジェクトを保護するためのメカニズムが必要である。1つの保護メカニズムは、各アプリケーション(又はアプリケーションの束)をそれ自身の実行コンテキスト内において実行させることである。尚、これは「分離されている実行コンテキスト(isolated execution context)」と呼称される。分離されている実行コンテキストとは、第二アプリケーション(又はシステムランタイム環境)が明示的にそのデータへのアクセスのためのインターフェースを提供するものでない限り、第一アプリケーションは別の分離されている実行コンテキストにある第二アプリケーション(又はシステムランタイム環境に属するオブジェクト)のオブジェクトへアクセスすることができないことを意味している。然しながら、オブジェクトに対するアクセスは、そのオブジェクトが作成された同一の分離されている実行コンテキスト(所有コンテキスト)において実行するアプリケーションに対して許可される。分離されている実行コンテキストはファイアウォールにより実現することが可能である。例えば、ファイアウォールは、オブジェクトを権限のないアクセスから保護するために1組の規則を施行する。
他の分離されている実行コンテキストにおけるアプリケーションとデータを共有するために、アプリケーションは共有可能なインターフェースオブジェクト(SIO)を与えることが可能である。ファイアウォール規則は共有可能なインターフェースオブジェクト(SIO)が別の分離されている実行コンテキストからアクセスすることを許容する。更に、第二アプリケーション実行コンテキストにおけるパラメータオブジェクトへの権限のないアクセスを防止するための全ての規則が遵守されているか否かをファイアウォールが決定することなしに、SIOを介して1つの分離されている実行コンテキストにおけるアプリケーションから別の分離されている実行コンテキストにおけるアプリケーションへのパラメータとして任意のオブジェクトをパスさせることが可能である。換言すると、SIOがそのオブジェクトをパスさせるために使用されているという事実に基づいて、ファイアウォールは該パラメータオブジェクトをパスさせることを許容する。オブジェクト所有制御に加えて、オブジェクトがアクセスされる場合に、他の言語アクセス制御が施行される場合がある。例えば、ジャバ(Java)言語は属性タグ「public」無しでのクラスを宣言することにより、プログラマーがそれ自身のジャバ言語パッケージ内からのアクセスに対して制限されるべきオブジェクトを指定することを可能とさせる。
然しながら、SIOにおけるパラメータ又は戻り値としてオブジェクト(アレイを含む)をパスさせることは、しばしば、価値が制限されている。SIOの使用可能なパラメータ又は戻り値は、プリミティブ値、グローバルアレイ、ランタイム環境エントリポイントオブジェクト、及びSIOに制限されている場合がある。その制限は分離実行コンテキストの本質的な定義の一部であり、パラメータオブジェクト自身は第一アプリケーションの分離実行コンテキストに属しており、従って、第二アプリケーションの分離実行コンテキストからアクセス可能なものではない。典型的に、アレイ(グローバルアレイ以外)は1つの分離されている実行コンテキストから別の分離されている実行コンテキストへパスさせることは不可能である。アレイの要素を共有するためには、開発者は各要素へ個別的にアクセスするために「get」メソッドでwrapperSIOを作成することが可能な場合がある。然しながら、このようなラッパー(wrapper)を使用することは厳しい性能上の影響がある。何故ならば、アレイの全ての要素へアクセスすることは繰返し「get」メソッドを呼出すことを必要とし且つ毎回ファイアウォールを通過することのコストに耐えることを必要とするからである。
スマートカードは、アプリケーションプログラマーが別の分離されている実行コンテキストにおける別のアプリケーションへオブジェクトをパスすることを所望する場合のある例示的なプラットフォームである。スマートカードは、クレジットカードに類似しているカードであり、且つ埋設されている集積回路(IC)を包含している。あるスマートカードは、携帯電話の内側における加入者識別モジュール(SIM)カードとして使用されている。スマートカードは設計上高度に安全なものであり、不正変更するとそれに包含されている情報が破壊されることとなる。スマートカードは、典型的に、安全な処理及び格納のためにマイクロプロセッサとメモリとを具備している。スマートカードに類似した技術も存在している。そのような関連技術の例はスマートボタン及びUSBトークンである。これらのその他の技術はスマートカードと同様の機能のために使用することが可能である。USBトークンはPCのUSBポート内へ直接的に挿入することが可能である。スマートボタン及びUSBトークンは、両方共、スマートカードと同様にプログラミング能力を提供し且つ耐不正変更特性を有している。
従って、分離されている実行コンテキスト等を使用する計算環境において安全であるが高性能の共有性を可能とさせることが望ましい。このセクションにおいて記載するアプローチを追及することが可能であるが、必ずしも以前に着想された又は追及されたアプローチではない。従って、本明細書においてそうでないものとして表示しない限り、このセクションにおいて記載するアプローチは本願発明に対する従来技術ではなく且つこのセクションに挿入することにより従来技術として認めたものではない。
第一の分離されている実行コンテキストにおいて実行する第一アプリケーションにより所有されているオブジェクトを第二の分離されている実行コンテキストにおいて実行する第二アプリケーションに対してアクセス可能なものとさせるアプローチを本明細書において記載する。1実施例によれば、該オブジェクトは該第一の分離されている実行コンテキストと関連付けられている。該オブジェクトを該第二アプリケーションに対してアクセス可能なものとさせるための要求が受取られる。該オブジェクトと関連付けられている該分離されている実行コンテキストを該第二の分離されている実行コンテキストへ変化させることにより該オブジェクトの所有が該第二アプリケーションへ移転され、それにより該オブジェクトを該第二アプリケーションに対してアクセス可能なものとさせる。
その他の側面によれば、本明細書に記載するアプローチは前述した機能を実施する形態とされたマシンにより読取可能な媒体を包含している。
本明細書に記載するシステム及び方法は、分離されている実行コンテキスト間においてのオブジェクトの所有の移転に関するものである。説明の便宜上、種々のシステム及び方法の完全なる理解を与えるために多数の特定の詳細について説明する。然しながら、本明細書に記載するシステム及び方法はこれらの特定の詳細無しで実現することが可能であることは明かである。従って、本明細書及び図面は制限的な意味ではなく例示的なものとして理解すべきである。
外観
図1は本発明の1実施例に基づいて、異なる分離されている実行コンテキストにおけるアプリケーション間においてオブジェクトの所有を移転するためのインターフェースを具備する環境を例示している模式図である。オブジェクトの所有を移転することは、該オブジェクトを2つのアプリケーション間においてパスさせることを可能とさせる。即ち、該オブジェクトの所有を移転することなしには、該オブジェクトを異なる分離されている実行コンテキストにおける第二アプリケーションへパスすることの第一アプリケーションによるいかなる試みも、該第二アプリケーションが該オブジェクトへアクセスを有することを可能とさせるものではない。例えば、第二アプリケーションがオブジェクトが存在していることに気が付いているが、そのオブジェクトを読取るか又は修正することができない場合がある。図1は、オブジェクトA2 107の所有が、夫々、分離されている実行コンテキスト102A及び102Bにおいて実行するアプリケーションA 106AからアプリケーションB 106Bへ移転される場合を例示している。所望により、アプリケーションB 106BはオブジェクトA2 107の所有をアプリケーションA 106Aへ戻すべく移転することが可能である。
以下の例は、異なる分離されている実行コンテキストにおいて実行するアプリケーション間においての所有の移転即ち転送を例示するために使用する。アプリケーションBは名前と電話番号との間のマッピングを管理する電話帳アプリケーションである場合がある。アプリケーションBは電話番号のルックアップを実施するためのメソッド(「ルックアップメソッド(lookup method)」)を有するインターフェースを公表している。このルックアップメソッドは名前をパスするためのストリング、及び電話番号をリターンするためのストリングを有している。アプリケーションAは名前と電話番号との間のマッピングを実施することを所望する異なる分離されている実行コンテキスト内のアプリケーションである場合がある。1例として、アプリケーションAはユーザの名前の入力及び電話番号に対する要求に応答して電話番号を表示するプログラムである場合がある。アプリケーションAは該ルックアップメソッドをコールし人の名前に対するストリングをパスする。該ストリングは分離されている実行コンテキストAにおいてインスタンス化されたので、アプリケーションBが該ストリングを読むことが可能であるためには、アプリケーションAはアプリケーションBへ該ストリングの所有を移転することが必要である。即ち、該ストリングの所有がアプリケーションBへ移転されない限り、ファイアウォール115はアプリケーションBが該ストリングがアクセスすることを阻止する。
従って、アプリケーションAは、先ず、該ストリングの所有をアプリケーションBへ移転し、次いで、該ルックアップメソッドをインボーク(invoke)即ち呼出し、該ストリングを該メソッドにおけるパラメータとしてパスする。アプリケーションBが該コール(call)を受取ると、それは該ストリングへアクセスし且つその電話番号をルックアップすることが可能である。その電話番号は分離されている実行コンテキストBにおいてインスタンス化される。従って、その電話番号ストリングをアプリケーションAへパスするためには、アプリケーションBは、先ず、該電話番号ストリングの所有をアプリケーションAへ移転し、次いで、該ルックアップメソッドコールからのリターンパラメータとして該電話番号ストリングをリターン即ち戻す。アプリケーションAは該ルックアップメソッドからリターン即ち戻されると該電話番号ストリングを読取ることが可能である。
オブジェクトの所有を移転するためにここで提供される方法及びシステムは既存の技術と互換性がある。例えば、本発明の1実施例に基づくオブジェクトの移転はジャバ言語及びその他の言語と互換性がある。
分離されている実行コンテキスト
アプリケーションA 106A及びアプリケーションB 106Bの各々は、夫々、それら自身の分離されている実行コンテキスト102A及び102Bにおいて実行を行う。分離されている実行コンテキストを作成する1つの技術は、その分離されている実行コンテキスト内においてインスタンス化される各オブジェクトに対し同一のコンテキスト識別子を割当てることであり、その場合に、該コンテキスト識別子は他の全ての分離されている実行コンテキストとは異なるものである。従って、アプリケーションA 106A及び移転可能なオブジェクトA2 107は、これらのオブジェクトがインスタンス化される場合に、コンテキストA 102Aのコンテキスト識別子が割当てられる。同様の態様で、アプリケーションB 106Bは、アプリケーションB 106Bがインスタンス化される場合には、分離されている実行コンテキストB 102Bのコンテキスト識別子が割当てられる。
分離されている実行コンテキストにおけるオブジェクトは、そのオブジェクトへのアクセスを要求するアプリケーションのコンテキスト識別子がそのオブジェクトのコンテキスト識別子と一致することを検証することにより保護することが可能である。1実施例においては、ファイアウォール115がこの検証をインプリメントするために使用される。例えば、ファイアウォール115は、オブジェクトA2がアプリケーションA 106Aにより所有されている場合には、アプリケーションB 106BがオブジェクトA2 107へアクセスすることを阻止する。何故ならば、アプリケーションB 106BはオブジェクトA2 107とは別の分離されている実行コンテキスト内にあるからである。このことは、アプリケーションB 106BがオブジェクトA2 107とは異なるコンテキスト識別子を有していることをファイアウォール115が判別することにより強制することが可能である。
共有可能なインターフェース
アプリケーションA 106Aは共有可能なインターフェース111を分離されている実行コンテキストA 102A外部のアプリケーションに対して使用可能なものとさせる。この共有可能なインターフェース111は、コンテキストAにおけるオブジェクトへのアクセスを可能とさせる。例えば、共有可能なインターフェース111は、アプリケーションB 206が分離されている実行コンテキストA 102Aにおける共有可能なインターフェースオブジェクト(SIO)A1へアクセスすることを可能とする。SIOはファイアウォール115の制限なしで異なる分離されている実行コンテキストにおける2つのアプリケーション間でデータの制御された共有を可能とする。従って、ファイアウォールの制限なしで、共有可能なインターフェース111を介してアプリケーションB 106Bは自由にSIO A1へアクセスする。例えば、AIO A1のコンテキスト識別子がアプリケーションB 106Bのコンテキスト識別子と異なるものであったとしても、アプリケーションB 106Bは共有可能なインターフェース111を介してSIO A1へのアクセスを得ることが可能である。
然しながら、オブジェクトA2 107のコンテキスト識別子はアプリケーションB 106Bのコンテキスト識別子とは異なっており且つオブジェクトA2 107はSIOではないので、ファイアウォール115の制限なしでアプリケーションB 106BはオブジェクトA2 107へアクセスすることは不可能である。アプリケーションB 106BがオブジェクトA2 107へのアクセスを有するためには、本発明の1実施例に基づいて、オブジェクトA2 107の所有がアプリケーションB 106Bへ移転される。
この所有の移転は、1実施例においては、共有可能なインターフェースへのコール又はそれからのリターンを介してパスされるオブジェクトに制限される。1例として、アプリケーションB 106Bが移転可能なオブジェクトA2 107の所有を得るためには、1実施例において、アプリケーションBは共有可能なインターフェース111に対してコールを行う。更に、第一の分離されている実行コンテキストから第二の分離されている実行コンテキストへの所有の転送は、その第二の分離されている実行コンテキストからアクセスすることができないオブジェクトパラメータに関してのみ必要とされる。所有の移転が必要とされることがない場合があるオブジェクトの例は、SIO、グローバルアレイ、プリミティブデータを包含している。グローバルアレイは全ての分離されている実行コンテキストによりアクセス可能なものであるとして指定されているアレイオブジェクトである。その移転が、例えば共有可能なインターフェース111等の共有可能なインターフェースへのコール又はそれからのリターン期間中にのみ発生するように移転可能なオブジェクトA2 107の所有の移転を制限するための保護対策を付加することが可能である。
1実施例においては、SIO A1が共有可能なインターフェース111をインプリメントし且つSIO A1はA2 107等の移転可能なオブジェクトをパスするためのメソッドを提供する。SIOは外部アクセスのための制御されたアクセスビュー(ジャバ言語用語における「インプリメント(implement)」)を提供するオブジェクトである。この制御されたビュー(view)は、1実施例においては、共有可能なインターフェース111として定義される1組のアクセスメソッドである。
1実施例においては、この所有の移転はアプリケーションに対してトランスペアレントである。例えば、共有可能なインターフェース111は、アプリケーションA 106A又はアプリケーションB 106Bのいずれかがオブジェクト所有を移転するためのメソッド又は関数をインボーク即ち呼出すこと無しに所有を移転させるためのここにおいて「プロキシー」コードと呼称されるものを有することが可能である。1実施例においては、所有の移転は、特定の分離された実行コンテキストに対して分離を与えるファイアウォール(例えば、ファイアウォール115)により実施される。ファイアウォールによる所有の移転はそのオブジェクトを所有するアプリケーションに対してトランスペアレントである。
移転可能なクラス
本発明の1実施例に基づいて、定義された1組のクラスは異なる分離されている実行コンテキストにおいて実行するアプリケーション間において移転可能である。従って、アプリケーションA 106Aはその組の移転可能なクラスの中にないオブジェクトの所有を移転すべきではない。この定義された組の移転可能なクラスの例は、これらに制限されるものではないが、SIOのアレイ、プリミティブのアレイ、ストリング、プリミティブラッパー(例えばInteger即ち整数等)を包含している。本発明の1実施例に基づいて、移転可能であるとして定義されていないクラス内のオブジェクトは、所有を移転することによりパスすることを阻止することが可能である。移転可能なクラスの組におけるオブジェクトは移転を許可するためにアプリケーションにより移転可能であるとして明示的にタグを付けることは必要ではない。そうではなく、1実施例においては、そのアプリケーションが実行する計算環境が移転可能なオブジェクトを定義する。移転可能なオブジェクトクラスはランタイム環境においてそのようなものとして指定することが可能である。
オブジェクトの所有の移転
A)所有のプログラマチック移転
アプリケーションは、それが所有するオブジェクトの所有を明示的に移転し、次いで、そのオブジェクト(その分離されている実行コンテキストに束縛されている)を別の分離されている実行コンテキストにおける別のアプリケーションへパスすることが可能である。1側面においては、アプリケーションは、メソッド又は関数を呼出すことによりオブジェクトの所有を移転することが可能である。以下のものはオブジェクトの所有を移転するためのメソッドの2つの例である。
Figure 0005422103
これらのメソッドの各々に対する第一の引き数はその所有が移転されるべきオブジェクトである。第二の引き数は第一の例のメソッドにおける受取アプリケーションのURI(Uniform Resource Identifier)又はAID(アプリケーション識別子)を表わしている。該第二の引き数は第二の例のメソッドにおける受取人のSIOを表わしている。例えばサーバーアプリケーションとそのクライエント等の相互作用を行うアプリケーション間においてオブジェクトの所有を交互に移転させることが可能である。例えば幾つかのインタラクション即ち相互作用を介してサーバーアプリケーションとそのクライエントアプリケーションとの間でデータを転送するために同一のアレイを使用することが可能である。クライエントアプリケーションは、その中にサーバーアプリケーションがデータをコピーすべきアレイを提供することが可能である。
B)所有のトランスペアレント移転
所有のトランスペアレント移転は、ツールが発生するコード(例えば、SIO内に挿入されるプロキシークラス又はコードのいずれか)によりインプリメントすることが可能である。プロキシークラスは実際のSIOクラスに対するプロキシーである。プロキシークラスは全てのSIOと同一のメソッドを有するクラスを発生する。プロキシークラスはオリジナルのSIOクラスと同一のインターフェースを公表する。例えば、プロキシークラスは同一の組のメソッド又はスーパーセットを公表する。プロキシーオブジェクトのメソッドに対するコールはオリジナルのSIOオブジェクトの同一のメソッドに対して委任される。該プロキシーは、オブジェクト(例えば、SIOコール可変オブジェクトにおけるパラメータ及び戻り値)の防衛的コピーをトランスペアレントに作成し且つこれらのコピーの所有のサーバーへの及びリターンにより、夫々、クライエントへの移転を受け持つ。該プロキシーはそのアプリケーションと共に発生し且つインストールすることが可能である。
例えば、電話帳ルックアップでのアプリケーションの例を参照すると、アプリケーションBの電話帳メソッドに対してプロキシーを発生することが可能である。該プロキシーは、アプリケーションBがインストールされる場合に発生される。該プロキシーは、必要とされる如何なるオブジェクトのコピー及びオブジェクトの所有の移転を実施することが可能である。アプリケーションAが電話帳メソッドをコールすると、そのプロキシーメソッドが呼出される。
1実施例においては、アプリケーションAがプログラマーにより開発されている場合に、コードがSIO A1クラス内に自動的に挿入される。
1実施例によれば、所有のトランスペアレント移転はファイアウォールにより実施される。例えば、ファイアウォールは、SIOメソッドコールにおける引き数又は戻り値としてパスされるオブジェクトの所有を移転する。該ファイアウォールは、プログラム実行期間中にアプリケーションの代わりに自動的に先に説明した所有移転APIを呼出すことにより所有の移転を実施する。
可変及び不変オブジェクトの所有の移転
前述した如く、可変オブジェクトの所有の移転は不変オブジェクトとは異なって処理することが可能である。
可変オブジェクト
可変オブジェクトは、それらがインスタンス化された後に変化することが可能なオブジェクトである。可変オブジェクトの例はアレイ(プリミティブ、SIO、上述した不変オブジェクト、及びここで説明する可変オブジェクトの)、StringBuffer及びVectorである。多くのその他のタイプの可変オブジェクトが存在している。可変オブジェクトは異なる分離されている実行コンテキストにおけるアプリケーション間において直接的にパスすべきものではない。その理由は、所有の移転無しではファイアウォールがオブジェクトにアクセスすることを阻止するからである。従って、以前の所有者が可変オブジェクトを新たな所有者へパスすることを可能とするためにこのような可変オブジェクトの所有が移転される。その所有が移転されると、最初の所有は最早そのオブジェクトへアクセスするものではない。従って、ファイアウォールは先の所有者のそのオブジェクトへアクセスしようとする試みをブロックする。
不変オブジェクト
不変オブジェクトは、それがインスタンス化された後にオブジェクトが変化することが許可されないものである。不変オブジェクトの例は、ストリング(String)及びプリミティブラッパー(primitive wrapper)である。幾つかの不変オブジェクトは、分離されている実行コンテキストに束縛されているものではない。例えば、プリミティブ値は分離されている実行コンテキストへ割当てられていない場合がある。従って、分離されている実行コンテキストへ束縛されていない不変オブジェクトの所有を移転することは必要ではない。然しながら、幾つかの不変オブジェクトは、本発明の1実施例に基づいて、分離されている実行コンテキストへ束縛されている。このような不変オブジェクトへ異なる分離されている実行コンテキストにおけるアプリケーションによりアクセスされる場合には、その不変オブジェクトの所有がそのアプリケーションの分離されている実行コンテキストへ移転される。別の側面は、そのオブジェクトの所有を移転し且つ、必要な場合には、防衛的コピーを作成するためにツールが発生するプロキシーを使用する。ツールが発生するプロキシーについて以下に説明する。従って、その技術は、アプリケーションがオブジェクトの所有を移転するためにメソッドをコールする代わりに、プロキシーを使用することが可能であるという点において非常に使い勝手が良い。
防衛的コピーオブジェクト作成及びオブジェクト所有の移転
A)防衛的コピー動作
オブジェクトの状態を共有するために、そのオブジェクトの防衛的コピーを作成し且つこの防衛的コピーの所有を別の分離されている実行コンテキストにおいて実行するアプリケーションへ移転することが可能である。そのオブジェクトを複製するためにソフトウエアメソッドを使用することが可能である。このメソッドは複製されるべきオブジェクトの名前を引き数として取ることが可能である。このメソッドは可変オブジェクトの防衛的コピーを作成する。所有の移転は該防衛的コピー上で実施することが可能であり、それにより共有アプリケーションがオリジナルのオブジェクトでの処理を進行することを可能とする。防衛的コピーの所有を移転することの理由は、その防衛的コピーは、初期的には、オリジナルのオブジェクトと同一の分離されている実行コンテキストにおいて作成されるからである。従って、防衛的コピーは、この実施例においては、それが作成される分離されている実行コンテキストと関連するコンテキスト識別子が付けて作成される。従って、そのコンテキスト識別子は、その防衛的コピーを転送する他の分離されている実行コンテキストのコンテキスト識別子へ変化されるべきである。
共有されるべきオブジェクトが第二オブジェクトを参照する場合には、この実施例においては、その第二オブジェクトの防衛的コピーも作成される。その第二オブジェクトが第三オブジェクトを参照する場合には、その第三オブジェクトの防衛的コピーを作成することが可能である。オブジェクトをコピーする処理は、ここにおいては、反復的コピー処理と呼称する。然しながら、コピー処理の深さは、これに制限されるものでないが、以下の理由を包含する理由のために制限することが可能である。コピー動作の深さは、移転可能であるとして定義されているオブジェクトのクラスへ制限することが可能である。このコピー動作の深さは、これらのオブジェクトの共有を保護するその他の手段が存在する場合があるので、SIOへ到達した場合に停止することにより制限することが可能である。コピー動作の深さは、プリミティブ又は上述した不変オブジェクトに到達する場合に停止することにより制限することが可能である。このような不変オブジェクトは、そのオリジナルを共有することが可能であるので、コピーすることは必要ではない。
コピー動作は、コピーされるべきでないフィールドにタグ(tag)を付けるアノテーションで更に制御することが可能である。例えば、プログラマは、どのフィールドがコピーされるべきでないかを表わすためにアノテーションをコードへ付加することが可能である。特定の例として、ジャバプログラミング言語はコードに対するこのようなアノテーションを可能とさせる。
B)コピーの所有の移転
別のオブジェクトを参照するオブジェクトの所有を移転するために反復的処理がオブジェクトの所有の移転に適用され、その参照されるオブジェクトの所有も移転することが可能である。然しながら、所有を移転する深さは、これに制限されるものではないが、以下の理由を包含する理由のために制限することが可能である。所有を移転する深さは、移転可能であるとして定義されているオブジェクトのクラスへ制限することが可能である。所有を移転する深さは、これらのオブジェクトの共有を保護する他の手段が存在している場合があるので、SIOに到達する場合に停止することにより制限することが可能である。SIOの共有を保護する他の手段が存在する場合があるので、所有を移転することは必要ではない。所有を移転する深さは、プリミティブ又は上述した不変オブジェクトに到達する場合に停止することにより制限することが可能である。
分離されている実行コンテキスト間におけるオブジェクト所有の移転の流れ
図2は本発明の1実施例に基づいて分離されている実行コンテキストの間でのオブジェクトの所有を転送するプロセス200を例示している。アプリケーションAがアプリケーションBへオブジェクトの所有を移転する図1に基づく例を使用してプロセス200を説明する。ステップ202において、オブジェクトが、第一アプリケーションが実行する第一の分離されている実行コンテキストと関連付けられる。例えば、アプリケーションAがそのオブジェクトを作成すると、そのオブジェクトには分離されている実行コンテキストAと関連するコンテキスト識別子が割当てられる(例えば、それでスタンプされる)。
ステップ204において、そのオブジェクトを、別の分離されている実行コンテキストにおいて実行する第二アプリケーションに対してアクセス可能なものとするための要求が受取られる。オブジェクトの所有の移転は、トランスペアレント的に又はプログラム的に処理することが可能である。例えば、プログラマチックな移転はメソッド又は関数を呼出すことによりインプリメントすることが可能である。特定の例として、アプリケーションAがそのオブジェクトの所有をアプリケーションBへ移転するためにメソッドを呼出す。所有のトランスペアレント的な移転は、ツールが発生するコードによりインプリメントすることが可能であり、後に説明する。ここでは、そのツールが発生するコードは「プロキシー(proxy)」と呼称する。1実施例においては、ファイアウォールがそのオブジェクトの所有を転送する。
ステップ205において、そのオブジェクトが移転可能であるか否かの判定がなされる。例えば、アプリケーションAが実行する計算環境は、定義された組の移転可能なクラスを有している場合がある。そのオブジェクトが移転可能なクラスのインスタンスでない場合には、制御がステップ206へ移行し、そこでそのオブジェクトが共有可能なインターフェースメカニズム(例えば、SIO、グローバルアレイ等)により既に処理されている共有可能なオブジェクトのタイプのものであるか否かの判定が行われ、そうである場合には、そのオブジェクトは、ステップ207において、更なるアクションなしでパラメータ又は戻り値としてパスされる。そうでない場合には、ステップ208において、所有の移転は失敗する。然しながら、そのオブジェクトが、ステップ205において判別されたように、移転可能なクラスのインスタンスである場合には、制御がオプションのステップ209へ移行し、そこでそのオブジェクトが不変であるか又は可変であるかの判定が行われる。そのオブジェクトが不変である場合には、ステップ210において、そのオブジェクトは更なるテストなしでアクセス可能である。そのオブジェクトが可変である場合には、制御はステップ211へ移行し、そこでそのオブジェクトの防衛的コピーがオプションとして作成される。防衛的コピーについては本明細書において前述した。防衛的コピーが作成されることが必要とされることはない。
ステップ212において、第二アプリケーションへのそのオブジェクト(又はその防衛的コピー)の所有の移転は、そのオブジェクトと関連するコンテキスト識別子を変化させることにより達成される。例えば、そのオブジェクトのコンテキスト識別子は、分離されている実行コンテキストAの識別子から分離されている実行コンテキストBのコンテキスト識別子へ変化される。従って、アプリケーションB以外の分離されている実行コンテキストBを実行するアプリケーションがそのオブジェクトへアクセスすることが可能である。
このプロセス200はSIOのメソッドに対するコールの引き数又は戻り値としてパスされる全てのオブジェクトに対して適用することが可能である。更に、オブジェクト所有の移転は、複数回のSIOメソッドコールを介して同一のオブジェクトの再使用を可能とする。従って、本発明の1実施例に基づくオブジェクトの移転はプリミティブのアレイ又はSIOのアレイに対して適している。然しながら、データ共有のためのオブジェクトの所有の移転はその他のタイプのオブジェクトに対しても性能上の利点を有している。
ハードウエア外観
1実施例においては、図2のプロセス200は1つ又はそれ以上のプロセッサにより実行される1組の命令を有している。1実施例においては、図1におけるアプリケーション及び共有可能なインターフェース111は1つ又はそれ以上のプロセッサにより実行される1組の命令を有している。図3は、それらの命令を実行する1つの可能な実施例を示している。コンピュータシステム300は、情報交換を容易化するためのバス302、及び情報を処理するためにバス302と結合されている1つ又はそれ以上のプロセッサ304を包含している。コンピュータシステム300は、又、プロセッサ304により実行されるべき情報及び命令を格納するために、バス302に結合されている例えばランダムアクセスメモリ(RAM)又はその他のダイナミック格納装置等のメインメモリ306を包含している。メインメモリ306は、又、プロセッサ304による命令の実行期間中に一時的な変数又はその他の中間情報を格納するために使用することが可能である。コンピュータシステム300は、更に、プロセッサ304に対するスタチック情報及び命令を格納するためにバス302に結合されているリードオンリメモリ(ROM)308又はその他のスタチック格納装置を包含することが可能である。磁気ディスク又は光学ディスク等の格納装置310が情報及び命令を格納するために設けられており且つバス302へ結合されている。
コンピュータシステム300は、コンピュータユーザに対して情報を表示するためにディスプレイ312へバス302を介して結合することが可能である。英文字及びその他のキーを包含する入力装置314がプロセッサ304に対して情報及びコマンド選択を通信するためにバス302へ結合されている。別のタイプのユーザ入力装置は、例えばマウス、トラックボール、又はプロセッサ304に対して方向情報及びコマンド選択を通信するための及びディスプレイ312上のカーソルの動きを制御するためのカーソル方向器等のカーソル制御316である。この入力装置は、典型的に、該装置が平面内における位置を特定することを可能とする2つの軸、即ち第一軸(例えば、x)及び第二軸(例えば、y)における2つの自由度を有している。
コンピュータシステム300において、バス302は、種々のコンポーネント間において情報、信号、データ等を交換させることを可能とする任意のメカニズム及び/又は媒体とすることが可能である。例えば、バス302は、電気的信号を担持する1組の導体とすることが可能である。バス302は、又、コンポーネントのうちの1つ又はそれ以上の間でワイヤレス信号を担持するワイヤレス媒体(例えば、空気)とすることが可能である。バス302は、更に、該コンポーネントのうちの1つ又はそれ以上を接続するネットワーク接続とすることが可能である。種々のコンポーネントの間で情報、信号、データ等を交換させることを可能とする任意のメカニズム及び/又は媒体をバス302として使用することが可能である。バス302は、又、これらのメカニズム/媒体の結合とすることが可能である。例えば、プロセッサ304はワイヤレスによって格納装置310と通信することが可能である。このような場合に、バス302は、プロセッサ304及び格納装置310の観点からは、空気等のワイヤレス媒体である。更に、プロセッサ304は容量的にROM308と通信を行うことが可能である。更に、プロセッサ304はネットワーク接続を介してメインメモリ306と通信を行うことが可能である。この場合には、バス302はネットワーク接続である。更に、プロセッサ304は1組の導体を介してディスプレイ312と通信を行うことが可能である。この場合には、バス302は1組の導体である。従って、種々のコンポーネントがどのようにして互いに通信を行うかに依存して、バス302は異なる形態を取ることが可能である。図3に示したように、バス302は種々のコンポーネント間において情報、信号、データ等を交換させることを可能とするメカニズム及び/又は媒体の全てを機能的に表わしている。本発明はここに記載した技術をインプリメントするためのコンピュータシステム300の使用に関連している。本発明の1実施例によれば、これらの技術はメインメモリ306内に包含される1つ又はそれ以上の命令からなる1つ又はそれ以上のシーケンスを実行するプロセッサ304に応答してコンピュータシステム300により実施される。このような命令は例えば格納装置310等の別のマシンにより読取可能な媒体からメインメモリ306内に読込むことが可能である。メインメモリ306内に包含されている命令からなるシーケンスの実行は、プロセッサ303をしてここに記載する処理ステップを実施させる。代替的実施例においては、本発明をインプリメントするためにソフトウエア命令の代わりに又はそれと組合わせてハードワイヤード回路を使用することが可能である。従って、本発明の実施例はハードウエア回路とソフトウエアとの何等かの特定の組合わせに制限されるものではない。ここで使用されるように「マシンにより読取可能な媒体」という用語は、マシンをして特定の態様で動作させるデータを供給することに参画する任意の媒体のことを意味している。コンピュータシステム300を使用してインプリメントされる実施例においては、例えば、実行のためにプロセッサ304へ命令を供給する上で種々のマシンにより読取可能な媒体が関与する。このような媒体は、これらに制限されるものではないが、非揮発性媒体、揮発性媒体、及び伝送媒体を包含する多数の形態を取ることが可能である。非揮発性媒体は、例えば、格納装置310等の光学的又は磁気的ディスクを包含している。揮発性媒体は、例えばメインメモリ306等のダイナミックメモリを包含している。伝送媒体は、バス302を包含するワイヤを包含して、同軸ケーブル、銅ワイヤ及びオプチカルファイバを包含している。伝送媒体は、又、無線及び赤外線通信期間中に発生されるもののような音波又は光波の形態を取ることが可能である。
マシンにより読取可能な媒体の一般的な形態は、例えば、フロッピィディスク、フレキシブルディスク、ハードディスク、磁気テープ、又は任意のその他の磁気媒体、CD−ROM、DVD、又は任意のその他の光学的格納媒体、パンチカード、孔のパターンを具備する任意のその他の物理的媒体、RAM、PROM、EPROM、フラッシュEPROM、任意のその他のメモリチップ又はカートリッジ、後述するような搬送波、又はそれからコンピュータが読取ることが可能な任意のその他の媒体を包含している。
種々の形態のマシンが読取可能な媒体は、実行のためにプロセッサ304に対して1つ又はそれ以上の命令からなる1つ又はそれ以上のシーケンスを担持することに関与する場合がある。例えば、該命令は、初期的に、遠隔コンピュータの磁気ディスク上に担持されている場合がある。該遠隔コンピュータは、該命令をそのダイナミックメモリ内にロードし且つモデムを使用して電話線を介し該命令を送ることが可能である。コンピュータシステム300に対してローカルなモデムは該電話線を介して該データを受取り且つ赤外線送信器を使用して該データを赤外線信号へ変換させることが可能である。赤外線検知器は該赤外線信号内に担持されるデータを受取ることが可能であり且つ適宜の回路が該データをバス302上に配置させることが可能である。バス302はメインメモリ306への該データを担持し、それからプロセッサ304が該命令を検索し且つ実行する。メインメモリ306により受取られる命令は、オプションとして、プロセッサ304による実行の前又は後のいずれかにおいて格納装置310上に格納させることが可能である。
コンピュータシステム300は、又、バス302へ結合されている通信インターフェース318を包含している。通信インターフェース318はローカルネットワーク322へ接続されているネットワークリンク320へ結合する二方向データ通信を提供する。例えば、通信インターフェース318は対応するタイプの電話線に対してデータ通信接続を与えるための統合サービスデジタルネットワーク(ISDN)カード又はモデムとすることが可能である。別の例として、通信インターフェース318は互換性のあるLANに対してデータ通信接続を与えるためのローカルエリアネットワーク(LAN)カードとすることが可能である。ワイヤレスリンクを実現することも可能である。任意のこのようなインプリメンテーションにおいて、通信インターフェース318は種々のタイプの情報を表わすデジタルデータストリームを担持する電気的、電磁的又は光学的信号を送信し且つ受信する。
ネットワークリンク320は、典型的に、1つ又はそれ以上のネットワークを介して他のデータ装置へデータ通信を提供する。例えば、ネットワークリンク320はホストコンピュータ324又はインターネットサービスプロバイダ(ISP)326により操作されるデータ装置へローカルネットワーク322を介しての接続を与えることが可能である。ISP326は現在一般的には「インターネット」328と呼称されているワールドワイドパケットデータ通信ネットワークを介してデータ通信サービスを提供する。ローカルネットワーク322及びインターネット328は、両方共、デジタルデータストリームを担持する電気的、電磁的又は光学的信号を使用する。種々のネットワークを介しての信号及びネットワークリンク320上及び通信インターフェース318を介しての信号は、コンピュータシステム300への及びそれからのデジタルデータを担持しており、情報を輸送する搬送波の例示的な形態である。
コンピュータシステム300は、ネットワーク、ネットワークリンク320及び通信インターフェース318を介して、メッセージを送信し且つプログラムコードを包含するデータを受信することが可能である。インターネットの例においては、サーバー330はインターネット328、ISP326、ローカルネットワーク322及び通信インターフェース318を介して、アプリケーションプログラムに対する要求されたコードを送信する場合がある。
受信されたコードは、それが受信されるとプロセッサ304により実行される場合があり、及び/又は、後に実行するために格納装置310又はその他の非揮発性格納部内に格納される場合がある。このように、コンピュータシステム300は搬送波の形態におけるアプリケーションコードを得ることが可能である。この点において、注意すべきことであるが、本発明を特定の実施例を参照して説明したが、そのように制限されたものとして解釈されるべきではない。本発明の精神から逸脱することなしに本開示に鑑み当業者により種々の修正を行うことが可能である。従って、本発明はそれを例示するために使用した特定の実施例により制限されるべきものではなく、許可された特許請求の範囲及びその均等物によってのみ制限されるべきものである。
本発明の1実施例に基づいて分離されている実行コンテキスト間においてのオブジェクトの所有の移転動作を例示した模式図。 本発明の1実施例に基づいて分離されている実行コンテキスト間におけるオブジェクトの所有を移転するプロセスを例示したフローチャート。 本発明に基づく実施例をインプリメントすることが可能なコンピュータシステムを例示したブロック図。
符号の説明
102 分離されている実行コンテキスト
106 アプリケーション
107 オブジェクト
115 ファイアウォール

Claims (17)

  1. 第二の分離された実行コンテキストにおいてプロセッサにより実行されるメモリに記憶された第二アプリケーションによりアクセス可能な、第一の分離された実行コンテキストにおいて該プロセッサにより実行される該メモリに格納された第一アプリケーションにより所有される、オブジェクトを作成するためのマシンにより実現可能な方法において、
    関連付け手段が、該オブジェクトを該第一の分離された実行コンテキストと関連付け、
    受取手段が、該オブジェクトを該第二アプリケーションにアクセス可能とさせる要求を受取り、
    オブジェクトが可変オブジェクトの場合、移転手段が、該オブジェクトと関連付けられている該分離された実行コンテキストの識別子を該第二の分離された実行コンテキストの識別子へ変化させることにより該オブジェクトの所有を該第二アプリケーションへ移転させ、それにより該オブジェクトを該第二アプリケーションにアクセス可能とさせ、該オブジェクトがインスタンス化の後に変化することが可能な少なくとも1つの属性を有しており、且つ該オブジェクトの所有の移転により、該第二アプリケーションが該オブジェクトの該少なくとも1つの属性変化させること可能とる、
    ことを特徴とする方法。
  2. 請求項1において、該オブジェクトの所有の移転は該第一の分離された実行コンテキスト及び該第二の分離された実行コンテキストのうちの少なくとも1つを保護する共有可能なインターフェースに対するコールに応答するものであることを特徴とする方法。
  3. 請求項2において、該オブジェクトが該共有可能なインターフェースに対するコールと関連しているパラメータであることを特徴とする方法。
  4. 請求項1において、更に、決定手段が、該第一アプリケーションにより所有される該オブジェクトが移転可能なクラスのインスタンスであるか否かを決定し、該オブジェクトの所有の移転は該オブジェクトが移転可能なクラスのインスタンスであることに条件付けられていることを特徴とする方法。
  5. 請求項4において、該移転可能なクラスが、該第一アプリケーションが実行するプラットフォームにより移転可能であるとして定義されていることを特徴とする方法。
  6. 請求項1において、更に、呼出手段によって、該第一アプリケーションが該オブジェクトの該第二アプリケーションへの所有の移転を開始させるための関数を呼出すことを特徴とする方法。
  7. 請求項1において、該第二アプリケーションがファイアウォールにより該第一アプリケーションから分離されていることを特徴とする方法。
  8. 請求項1において、更に、コピー手段が、防衛的コピーを作成するために該オブジェクトの第一バージョンのコピーを作成し、移転される該オブジェクトが該防衛的コピーであることを特徴とする方法。
  9. 第二の分離された実行コンテキストにおいてプロセッサにより実行されるメモリに記憶された第二アプリケーションによりアクセス可能な、第一の分離された実行コンテキストにおいて該プロセッサにより実行される該メモリに格納された第一アプリケーションにより所有される、オブジェクトを作成するためのプログラムであって、
    関連付け手段が、該オブジェクトを第一の分離された実行コンテキストと関連付け、該オブジェクトは第一アプリケーションにより所有されており、
    受取手段が、該オブジェクトを第二の分離された実行コンテキストにおいて実行する第二アプリケーションにアクセス可能とさせる要求を受取り、
    オブジェクトが可変オブジェクトの場合、移転手段が、該オブジェクトと関連付けられている該分離されている実行コンテキストの識別子を該第二の分離されている実行コンテキストの識別子へ変化させることにより該オブジェクトの所有を該第二アプリケーションへ移転し、それにより該オブジェクトを該第二アプリケーションにアクセス可能とさせ、該オブジェクトがインスタンス化の後に変化することが可能な少なくとも1つの属性を有しており、且つ該オブジェクトの所有の移転により、該第二アプリケーションが該オブジェクトの該少なくとも1つの属性変化させること可能とる、
    1組の命令を1つ以上のプロセッサに実行させるプログラム。
  10. 請求項9において、該1組の命令が、更に、1つ又はそれ以上のプロセッサにより実行される場合に該1つ又はそれ以上のプロセッサをして以下のオペレーションを実施させる命令を有しており、
    決定手段が、該第一アプリケーションにより所有されている該オブジェクトが移転可能なクラスのメンバーであるか否かを決定し、該オブジェクトの所有の移転が、該オブジェクトが該移転可能なクラスのメンバーであることに条件付けられている、
    ことを特徴とするプログラム。
  11. 請求項10において、該移転可能なクラスがその上で該第一アプリケーションが実行するプラットフォームにより移転可能であるとして定義されていることを特徴とするプログラム。
  12. 請求項9において、該1組の命令が、更に、1つ又はそれ以上のプロセッサにより実行される場合に該1つ又はそれ以上のプロセッサをして以下のオペレーションを実施させる命令を有しており、
    呼出手段が、該オブジェクトの該第二アプリケーションへの所有の移転を開始させる関数を呼出す、
    ことを特徴とするプログラム。
  13. 請求項9において、該1組の命令が更に、1つ又はそれ以上のプロセッサにより実行される場合に該1つ又はそれ以上のプロセッサをして以下のオペレーションを実施させる命令を有しており、
    移転手段が、該オブジェクトと関連付けられている該分離されている実行コンテキストを該第一の分離されている実行コンテキストから該第二の分離されている実行コンテキストへ且つ該第一の分離されている実行コンテキストへ戻すように繰返し変化させることにより該オブジェクトの所有を該第一アプリケーションから該第二アプリケーションへ且つ該第一アプリケーションへ戻すように繰返し移転させる、
    ことを特徴とするプログラム。
  14. 請求項9において、該第二アプリケーションがファイアウォールにより該第一アプリケーションから分離されていることを特徴とするプログラム。
  15. 請求項9において、該オブジェクトが、インスタンス化の後に変化することが可能な少なくとも1つの属性を有しており、且つ該オブジェクトの所有の移転が、該第二アプリケーションが該オブジェクトの該少なくとも1つの属性に対して変化させることを可能とすることを特徴とするプログラム。
  16. 請求項9において、該第一アプリケーションにより所有されている該オブジェクトが該オブジェクトの第一バージョンの防衛的コピーであることを特徴とするプログラム。
  17. 請求項9において、該オブジェクトの所有の移転のオペレーションを実施する該1組の命令が、更に、1つ又はそれ以上のプロセッサにより実行される場合に該1つ又はそれ以上のプロセッサをして、該第一の分離されている実行コンテキスト及び該第二の分離されている実行コンテキストのうちの少なくとも1つを保護するファイアウォールをバイパスする共有可能なインターフェースに対するコールに応答して該オブジェクトの所有を移転させるオペレーションを実施させる命令を有していることを特徴とするプログラム。
JP2007001272A 2006-01-09 2007-01-09 分離されている実行コンテキスト間でのデータ転送方法及び装置 Active JP5422103B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US75773506P 2006-01-09 2006-01-09
US60/757735 2006-01-09
US11/511,948 US8087031B2 (en) 2006-01-09 2006-08-28 Method and apparatus for data transfer between isolated execution contexts
US11/511948 2006-08-28

Publications (2)

Publication Number Publication Date
JP2007183968A JP2007183968A (ja) 2007-07-19
JP5422103B2 true JP5422103B2 (ja) 2014-02-19

Family

ID=37946347

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007001272A Active JP5422103B2 (ja) 2006-01-09 2007-01-09 分離されている実行コンテキスト間でのデータ転送方法及び装置

Country Status (3)

Country Link
US (1) US8087031B2 (ja)
EP (1) EP1830261B1 (ja)
JP (1) JP5422103B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4627266B2 (ja) * 2006-02-16 2011-02-09 株式会社日立ソリューションズ 未知のマルウェアによる情報漏洩防止システム
US8959517B2 (en) * 2009-06-10 2015-02-17 Microsoft Corporation Cancellation mechanism for cancellable tasks including stolen task and descendent of stolen tasks from the cancellable taskgroup
US20110161928A1 (en) * 2009-12-31 2011-06-30 Bmc Software, Inc. Method to Provide Transparent Process I/O Context on a Remote OS While Retaining Local Processing
US8578487B2 (en) * 2010-11-04 2013-11-05 Cylance Inc. System and method for internet security
US9665463B2 (en) 2012-06-05 2017-05-30 Microsoft Technology Licensing, Llc In-process wrapped execution engine(s) for tooling a dynamic program across a process boundary
US9507653B2 (en) 2012-09-12 2016-11-29 Microsoft Technology Licensing, Llc Inter-process communication channel
JP6452538B2 (ja) * 2015-03-20 2019-01-16 キヤノン株式会社 情報処理装置及びプログラム
US9600682B2 (en) * 2015-06-08 2017-03-21 Accenture Global Services Limited Mapping process changes
FR3125609B1 (fr) * 2021-07-22 2024-06-07 Idemia Identity & Security France Sas Mise en partage d’une fonction d’une application définie en langage orienté objet

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6138238A (en) * 1997-12-11 2000-10-24 Sun Microsystems, Inc. Stack-based access control using code and executor identifiers
US6119229A (en) * 1997-04-11 2000-09-12 The Brodia Group Virtual property system
US6907608B1 (en) * 1999-01-22 2005-06-14 Sun Microsystems, Inc. Techniques for permitting access across a context barrier in a small footprint device using global data structures
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
US7136913B2 (en) * 2000-05-31 2006-11-14 Lab 7 Networks, Inc. Object oriented communication among platform independent systems across a firewall over the internet using HTTP-SOAP
US6993634B2 (en) * 2002-04-29 2006-01-31 Intel Corporation Active tracking and retrieval of shared memory resource information
CN1708751A (zh) * 2002-08-23 2005-12-14 国际商业机器公司 处理应用数据
US7565533B2 (en) * 2002-11-05 2009-07-21 Sun Microsystems, Inc. Systems and methods for providing object integrity and dynamic permission grants
US20040123152A1 (en) 2002-12-18 2004-06-24 Eric Le Saint Uniform framework for security tokens
US7454414B2 (en) * 2005-08-30 2008-11-18 International Business Machines Corporation Automatic data retrieval system based on context-traversal history

Also Published As

Publication number Publication date
EP1830261B1 (en) 2015-04-15
US8087031B2 (en) 2011-12-27
US20100023951A1 (en) 2010-01-28
EP1830261A2 (en) 2007-09-05
JP2007183968A (ja) 2007-07-19
EP1830261A3 (en) 2008-01-02

Similar Documents

Publication Publication Date Title
JP5422103B2 (ja) 分離されている実行コンテキスト間でのデータ転送方法及び装置
JP6092249B2 (ja) 埋込まれたプロセス通信のための仮想チャネル
CN101004694B (zh) 隔离的执行上下文之间数据转移的方法和装置
US7171446B2 (en) Apparatus and method for processing servlets
Shapiro Structure and encapsulation in distributed systems: The proxy principle
US20070136790A1 (en) Method and system for a security model for a computing device
US5881230A (en) Method and system for remote automation of object oriented applications
EP0604010B1 (en) Method and apparatus for subcontracts in distributed processing systems
US7739731B2 (en) Method and apparatus for protection domain based security
US5727145A (en) Mechanism for locating objects in a secure fashion
EP0803154B1 (en) A mechanism for providing security to a dual decor command host system
US20020065946A1 (en) Synchronized computing with internet widgets
EP0695992A2 (en) Shared memory subcontract
CN114586010B (zh) 对象存储服务的输出路径中对象过滤代码的按需执行
JPH09223116A (ja) 複数ミドルウェアに渡る分散オブジェクトの位置透過性
US7836456B1 (en) Seamless extension of shareable interface mechanism to servlet and extended applet model for inter-application communication
WO2002005074A2 (en) Cryptographic services in a distributed application
JP2002505553A (ja) 多様性トークン・ベース・コントロール
Park et al. A multi-agent architecture supporting services access
Braun et al. A service-oriented software architecture for mobile agent toolkits
Gidron et al. Dynamic configuration of access control for mobile components in fargo
Hagimont et al. A Protection Scheme for a CORBA Environmen
WO2020226189A1 (ko) 메모리상에서 실행 가능 이미지를 적재하는 방법 및 시스템
CN115529352A (zh) 计算服务的路由处理方法及装置
Ram et al. A framework for dynamic client-driven customization

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091216

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20110113

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20110118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111018

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111108

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120305

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120312

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20120518

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131125

R150 Certificate of patent or registration of utility model

Ref document number: 5422103

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250