JP2014059906A - 個々のクラスローダを実装するための方法および装置 - Google Patents

個々のクラスローダを実装するための方法および装置 Download PDF

Info

Publication number
JP2014059906A
JP2014059906A JP2013247591A JP2013247591A JP2014059906A JP 2014059906 A JP2014059906 A JP 2014059906A JP 2013247591 A JP2013247591 A JP 2013247591A JP 2013247591 A JP2013247591 A JP 2013247591A JP 2014059906 A JP2014059906 A JP 2014059906A
Authority
JP
Japan
Prior art keywords
class
application
class loader
classes
loader
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2013247591A
Other languages
English (en)
Inventor
Yie Tao
イエ タオ
H Calder Bartley
エイチ カルダー バートレイ
David Rivas Jesus
デイビッド リバス ジーザス
D Courteney Jonathan
ディ コートニー ジョナサン
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.)
Oracle America Inc
Original Assignee
Oracle America 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 Oracle America Inc filed Critical Oracle America Inc
Publication of JP2014059906A publication Critical patent/JP2014059906A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/14Display of multiple viewports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/426Internal components of the client ; Characteristics thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/431Generation of visual interfaces for content selection or interaction; Content or additional data rendering
    • H04N21/4312Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations
    • H04N21/4316Generation of visual interfaces for content selection or interaction; Content or additional data rendering involving specific graphical features, e.g. screen layout, special fonts or colors, blinking icons, highlights or animations for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440263Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the spatial resolution, e.g. for displaying on a connected PDA
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/443OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
    • H04N21/4438Window management, e.g. event handling following interaction with the user interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/472End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content
    • H04N21/4728End-user interface for requesting content, additional data or services; End-user interface for interacting with content, e.g. for content reservation or setting reminders, for requesting event notification, for manipulating displayed content for selecting a Region Of Interest [ROI], e.g. for requesting a higher resolution version of a selected region
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/47End-user applications
    • H04N21/485End-user interface for client configuration
    • H04N21/4858End-user interface for client configuration for modifying screen layout parameters, e.g. fonts, size of the windows
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/44Receiver circuitry for the reception of television signals according to analogue transmission standards
    • H04N5/445Receiver circuitry for the reception of television signals according to analogue transmission standards for displaying additional information
    • H04N5/45Picture in picture, e.g. displaying simultaneously another television channel in a region of the screen
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2340/00Aspects of display data processing
    • G09G2340/12Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels
    • G09G2340/125Overlay of images, i.e. displayed pixel being the result of switching between the corresponding input pixels wherein one of the images is motion video
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99956File allocation
    • Y10S707/99957Garbage collection

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Automatic Disk Changers (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

【課題】個々のクラスローダを実装するための方法および装置を提供することを目的とする。
【解決手段】アプリケーションに関連付けられたクラスをロードしたりアンロードしたりするための方法および装置を開示する。アプリケーションに関連付けられたクラスをロードするように適合されたクラスローダが構築される。このクラスローダは、アプリケーションに関連付けられた1またはそれ以上のクラスをロードするために利用される。そうして、このクラスローダは、1またはそれ以上のクラスへの参照を維持するようになる。そして、このアプリケーションのためのクラスローダは、その参照が解除されて到達不能になる。
【選択図】図4

Description

本発明は、一般に、コンピュータソフトウェアに関する。本発明は、特に、アプリケーションに関連付けられたクラスをロードするように適応されたクラスローダを実装するための方法および装置に関する。
デジタルテレビ革命は、テレビ放送の歴史における最も重要な出来事の1つである。デジタルテレビの到来によって、人工衛星、ケーブル、そして地上局のテレビチャンネルを介して高速のデータ転送を行なうことが可能になった。デジタルテレビは、ビデオやオーディオの品質を大きく向上させるだけでなく、より多くのチャンネルを提供することもできる。最も重要なのは、デジタルテレビによって、真に対話式のテレビの時代がもたらされる点である。例えば、デジタルレシーバによって、単純な対話式のクイズ番組からインターネット放送、そしてテレビコンテンツとWebコンテンツとの混合等に及ぶ様々な優れたサービスを提供できるであろう。デジタルテレビの市場が広がるにつれて、コンテンツの開発に携わる業者は、電子番組ガイド、ビデオオンデマンド、エンハンスド・ブロードキャスティング等の次世代の対話式テレビサービスを構築するための、多機能且つ高コスト有効性且つ高信頼性のソフトウェアプラットフォームを求めるようになってきた。
Java(登録商標)は、ポータブル言語として設計された最も主要なオブジェクト指向言語である。Javaプログラムは、記述とコンパイルとを同時に行なうことができ、JAVA(商標)プラットフォームをサポートする任意の互換デバイス上で実行することができる。例えば、Java(登録商標)は、あらゆる主要なWebブラウザに組み込まれている。したがって、Java(登録商標)は、どのWeb対応コンピュータ上においても、そのコンピュータのWebブラウザを介して実行することができる。このように、Java(登録商標)は、次世代のセットトップボックスおよびデジタルテレビのためのソフトウェアプラットフォームとして大きく期待されている。
オブジェクト指向のプログラミングでは、オブジェクトによってランタイムデータが表される。各オブジェクトは、オブジェクトの特性を決定するクラスを通して定義される。すなわち、オブジェクトは、あるクラスをもとに形成される個々のインスタンスである。Javaアプリケーションを実行する際には、先ず、関連のクラスがメモリにロードされる。次いで、これらのクラスのインスタンスが、プログラムの流れにしたがって作成される。ほとんどのオブジェクト指向言語の場合は、作成されたオブジェクトが不要になった際に、それらのオブジェクトを全てプログラマ自身が破棄する必要がある。しかしながら、Java仮想マシンを実装すると、このプロセスが自動化され、使用可能メモリを増やすためのガーベッジコレクションが実行される。このように、Javaランタイム環境(JRE:Java runtime environment)によって、もう参照されないオブジェクトが削除または「ガーベッジコレクト」される。
ガーベッジコレクションでは、もう参照されないクラスのインスタンスは回収されるが、それらに関連するクラスはメモリから除去されない。さらに、Java(登録商標)は動的言語であるため、クラスのロードは普通一般に実施される。しかしながら、現時点においては、もう不要なクラスをアンロードするためのメカニズムが組み込まれていない。このため、最終的には、Javaプラットフォームに多数のクラスが格納される結果になる。
デスクトップ環境の場合はメモリの制限が比較的緩いので、クラスをアンロードする必要はない。さらに、ブラウザをオフにすれば(または閉じれば)、クラスはメモリから消去される。しかしながら、組み込みシステムの環境、特にデジタルテレビの分野では、スペースは貴重なリソースである。さらに、デジタルテレビの環境では、複数のアプリケーションを実行することが普通になる。例えば、テレビの視聴者がチャンネルを変えると、各関連のサービスにおいて、複数のクラスを有した新しいアプリケーションをロードする必要が生じる。このため、サイズの限られたメモリが消費し尽くされるまで、ロードされたクラスへのメモリの割り当てが続けられる。メモリが消費されてしまうと、これ以上アプリケーションを実行することが不可能になる。したがって、メモリの利用をモニタリングして、アプリケーションで不要になったクラスを除去することが望ましい。エラー時にテレビをリブート(再起動)することは望ましくないので、これは特に重要である。
以上から、メモリにおけるクラスの格納を管理するための、より良い方法が必要とされていることがわかる。
本発明は、不要になったクラスをメモリから動的にアンロードすることを可能にする。これは、ある程度は、各アプリケーションに関連付けられた個々のクラスローダを使用することによって達成される。こうすると、デジタルテレビでのメモリの消費を管理し、限られたメモリリソースをより効率活用することが可能になる。
本発明の1態様にしたがうと、アプリケーションマネージャは、アプリケーションのためのクラスローダを構築するように適合される。例えば、デジタルテレビレシーバを通してロードされるアプリケーションに関連付けられたクラスをロードするために、専門のクラスローダを構築(インスタンス化)しても良い。したがって、このクラスローダは、アプリケーションに関連付けられた1またはそれ以上のクラスをロードするために利用される。
本発明の別の1態様にしたがうと、アプリケーションマネージャは、アプリケーションの実行をモニタリングおよび管理するように適合され、そしてアプリケーションの実行が終了した際またはアプリケーションの実行が終結された(例えば信号によって)際に、作成されたクラスローダへの参照を解除するように適合される。したがって、アプリケーションが終結したことがアプリケーションマネージャによって決定されると、それらのクラスはもう不要になるのでアンロードされる。これは、ある程度は、そのアプリケーションのためのクラスローダへの参照を解除して到達不能にすることによって達成される。このクラスローダは、実行環境にロードしたクラスへの参照を維持している最後のローダであるので、これらのクラスを参照するインスタンスがランタイム環境内にほかに存在しない場合は、このクラスローダへの参照を解除することによって、これらのクラスへの到達を不能にすることができる。したがって、ガーベッジコレクションによってこれらのクラスが有効にアンロードされる。
本発明のさらに別の1態様にしたがうと、本発明は、Javaプラットフォーム上に実装される。Javaプラットフォームは、対話式サービス用の新しいクラスにとって理想的な開発プラットフォームおよび配置プラットフォームを提供する。Javaプログラミング言語の使用によって、コンテンツ開発者が、アプリケーションの外見(ルック・アンド・フィール)に関して高い制御性および柔軟性を付与されるので、最も動的で強力な対話式テレビを視聴者に体験させることが可能になる。ガーベッジコレクションのプロセスは、メモリ割り当ておよびメモリ管理の負担を、プログラマからプラットフォームへと移すために活用される。また、Javaプログラミング言語で記述された対話式のテレビアプリケーションによって、多種多様なテレビレシーバの全体に渡ってセキュリティ・拡張性・可搬性が提供されるので、コンテンツ開発者は、自分の対話式アプリケーションを市場に売り出す時間と費用を削減することできる。
本発明は、個々のクラスローダを利用して、各アプリケーションに関連付けられたクラスをロードしたりアンロードしたりする。ガーベッジコレクションのプロセスは、関連のクラスがもう不要であると決定された場合に適切なクラスローダへの参照を解除することによって、使用可能なメモリの量を最大化させる。これは、メモリに限界があるデジタルテレビレシーバ等のシステムにおいて特に重要である。
本発明が実装されるシステムを示したブロック図である。 クラスのロード中における本発明の1実施形態を示したブロック図である。 アプリケーションの実行中における本発明の1実施形態を示したブロック図である。 アプリケーションの実行の完了時における本発明の1実施形態を示したブロック図である。 ガーベッジコレクションが1ラウンド完了した後の本発明の1実施形態を示した図である。 デジタルTVレシーバ上でアプリケーションを実行する方法を、本発明の1実施形態にしたがって示したフローチャートである。 図6に示されるアプリケーションの実行時にアプリケーションマネージャを実装してクラスをアンロードする方法を、本発明の1実施形態にしたがって示したフローチャートである。 本発明の実装に適した代表的な汎用コンピュータシステムを示したブロック図である。
添付の図面に関連して行なう以下の説明から、本発明のさらなる利点が明らかになる。
以下の説明では、本発明の完全な理解を促すために、多くの詳細構成が具体的に示されている。しかしながら、本発明がこれらの具体的な詳細なしに実現できることは、当業者にとって明らかである。また、本発明を不必要に不明瞭化しないように、周知のプロセス動作の説明は省略してある。
ここでは、クラスの動的なアンロードを可能にする発明を開示する。特に、各クラスを、関連のクラスの定義を含んだクラスオブジェクトによって表しても良い。したがって、本明細書では、「クラス」および「クラスオブジェクト」という用語を互いに取り替え可能な意味で使用するものとする。
デジタルテレビおよびデジタルテレビレシーバに関連して本発明を説明する。図1は、代表的なデジタルテレビレシーバを示したブロック図である。図に示すように、アンテナ102を通して信号が受信され、チューナモジュール104によって調整されると、MPEG2トランスポートストリーム106が生成される。すると、デマルチプレクサ108において、ビデオストリーム112と、オーディオストリーム114と、データストリーム116とを含んだ暗号化されたMPEGストリーム110が生成される。これら3種類のストリームは、次いで、暫定的なアクセスサブシステム118において処理される。例えば、暫定的なアクセスサブシステム118では、解読情報122(例えば解読アルゴリズム)はもちろんキー管理情報120を利用しても良い。暫定的なアクセスサブシステム118では、いずれも解読されたビデオストリーム124と、オーディオストリーム125と、データ126とを含む解読されたMPEGストリーム123が生成される。次いで、デコーダ128によって、解読されたMPEGストリーム123が処理され、復号されたビデオデータはフレームバッファ130に、そして復号されたオーディオデータはスピーカ132に伝送される。
Java仮想マシン(JVM)は、図1のようなデジタルテレビレシーバで受信される情報を処理することによって本発明を実現することが可能な1プラットフォームである。特に、データ126が処理される際には、多数のクラスからなるJavaアプリケーションが含まれる可能性がある。したがって、クラスを動的にロードおよびアンロードすることによって、メモリに限界があるデジタルテレビまたはデジタルテレビレシーバ(またはセットトップボックス)におけるメモリの消費を最小限に抑えることが望まれる。
本発明は、各アプリケーションの個々のクラスローダをインスタンス化することによって、各アプリケーションに関してクラスをロードしたりアンロードしたりすることを可能にする。図2は、本発明の1実施形態を示したブロック図である。図に示すように、プラットフォーム上におけるアプリケーションの実行およびクラスのロードを管理する目的で、アプリケーションマネージャ202が提供される。アプリケーションマネージャ202を実装する方法に関しては、図7を参照にしながら後ほど詳述する。より詳しく言うと、クラスのロードの管理は、一部には、各アプリケーションのために個々のクラスローダを構築することによってなされる。したがって、アプリケーションマネージャ202は、第1のアプリケーション(APP1)に関連付けられたクラスをロードするように適合された第1のクラスローダ204をインスタンス化する。同様に、アプリケーションマネージャ202は、第2のアプリケーション(APP2)に関連付けられたクラスをロードするように適合された第2のクラスローダ206をインスタンス化する。アプリケーションマネージャ202およびクラスローダ204,206は、メモリ208に格納されている。次いで、クラスローダ204,206は、それぞれのアプリケーションのためにクラスをロードする。より詳しく言うと、図に示すように、第1のアプリケーションクラスローダ204は、第1のアプリケーションに関連付けられた第1のクラスセット210をロードし、第2のアプリケーションクラスローダ206は、第2のアプリケーションに関連付けられた第2のクラスセット212をロードする。こうして、第1および第2のアプリケーションクラスセット210,212が、実行環境214(例えばJVM)にロードされる。ロードされたクラスは、各アプリケーションの実行中にアクセスすることが可能である。
図3は、クラスのロードプロセスの完了時における、本発明の1実施形態を示したブロック図である。図3は、例えば、JVMによる第1および第2のアプリケーションの実行に関連している。図に示すように、アプリケーションマネージャ202は、第1のアプリケーションクラスローダ204および第2のアプリケーションクラスローダ206の両方へのリンク(例えば「参照」)を維持している。また、第1のアプリケーションクラスローダ204は、第1のアプリケーションクラスセット302へのリンク(例えば「参照」)を維持している。同様に、第2のアプリケーションクラスローダ206は、第2のアプリケーションクラスセット304へのリンク(例えば「参照」)を維持している。例えば、各リンクをポインタの使用によって実現しても良い。アプリケーションマネージャ202は、各アプリケーションの実行中は、全てのクラスローダ204,206に対して参照を継続している。また、クラスローダ204,206は、各アプリケーションの実行中は、アプリケーションクラス302,304をそれぞれ参照している。ある実装において、第1および第2のアプリケーションクラスセットは、メモリ(例えばメモリ200)にあるJVMスタックに格納されている。メモリは、例えばランダムアクセスメモリ(RAM)で良い。
あるアプリケーションの実行が終了した際またはそのアプリケーションが完了前にストップされた際は、アプリケーションマネージャ202は、適切なクラスローダへの参照を解除する。図4は、第2のアプリケーションの実行が完了した後に続く本発明の1実施形態を示したブロック図である。第2のアプリケーションの実行が終了した際または時期尚早にストップされた際は、アプリケーションマネージャ202は、第2のアプリケーションローダ206への参照を解除する。すなわち、アプリケーションマネージャ202は、図中に402で示されるように、第2のアプリケーションローダへのリンクを排除する。例えば、第2のアプリケーションローダ206に対するもとの参照変数を、空(ヌル)に設定して良い。例えば、第2のアプリケーションローダ206に対する参照変数を、ヌルに設定して良い。第2のクラスローダ206への参照が解除されると、第2のクラスローダ206は、メモリ内において到達不能なオブジェクトになる。上述したように、あるオブジェクト(例えばクラスのインスタンス)またはクラスに対する参照がない場合、そのオブジェクトまたはクラスは「到達不能」であるとされて、ガーベッジコレクトされる。第2のアプリケーションクラスのセットおよびそれらに関連付けられたインスタンスへの最後の参照である第2のクラスローダ206が到達不能であると、関連のクラス304(例えばクラスオブジェクト)およびこれらのクラス304の全インスタンス(例えばオブジェクト)もやはりその時点で到達不能になるので、ガーベッジコレクション406によって、それらのクラスおよびインスタンスが除去される。したがって、参照が解除されたクラスローダ206によって参照されたクラスがガーベッジコレクトされ、それらに割り当てられていたメモリが使用可能なメモリプールに戻される。「到達不能性」およびガーベッジコレクションを含むJVMに関するさらなる詳細に関しては、Lindholm(リンドホルム)、Yellin(イェリン)による「The Java Virtual Machine Specification, Second Edition(Java仮想マシン仕様、第2版)」(ISBN 0-201-43294-3)に記載されており、本文献を、引用として本明細書に組み込むものとする。
ガーベッジコレクションが完了すると、メモリ内にはもう到達不能なクラスおよびオブジェクトは存在しなくなる。図5に示すように、図4のシステムにおいてガーベッジコレクションが実施されると、到達不能なクラスローダ、到達不能なクラス、そして関連のインスタンスがメモリから削除される。その結果、第1のアプリケーションローダ204および第1のクラスのセット304のみが残る。したがって、本発明は、メモリリソースを動的に開放するのに有用であるので、限りあるメモリリソース(例えばデジタルテレビレシーバのメモリ等)をより良く活用することが可能になる。
図6は、デジタルTVレシーバを通して伝送されるアプリケーションを実行する方法を、本発明の1実施形態にしたがって示したフローチャートである。このプロセスはブロック602から開始し、ブロック604においてデジタルテレビレシーバがオンになる。続いて、ブロック606において、Java(登録商標)環境がスタートされる。次いで、ブロック608においてアプリケーションマネージャが作成され、ブロック610において実行される。
図1に示すようなデジタルテレビレシーバは、様々なデジタルテレビサービルを受信することができる。これらのサービスは、多数のチャンネルを受信することだけでなく、対話式テレビからビデオ・オン・デマンド、そして特殊なプログラミングに至るまで多岐にわたる。ブロック612において、あるサービスがユーザによって選択されると、ブロック614において、その選択されたサービスに関連したアプリケーションがデジタルテレビレシーバを通して受信される。例えば、ユーザがディズニーサービスを選択した場合は、表示の品質を向上させる目的でディズニーアプリケーションが受信される可能性がある。
アプリケーションマネージャは、アプリケーションの実行をモニタリングおよび管理する役割を担っている。例えば、ブロック616において、アプリケーションマネージャは、アプリケーションをロードおよび実行するように信号通知される。ブロック618において、アプリケーションをスタートさせるスタート信号が(例えばデジタルテレビレシーバを通して)受信されると、アプリケーションマネージャは、ブロック620においてそのアプリケーションをスタートさせるように信号通知される。アプリケーションが、ブロック622においてストップ信号が(例えばデジタルテレビレシーバを通して)受信されるまで実行された後、アプリケーションマネージャは、ブロック624においてそのアプリケーションをストップさせるように信号通知される。このプロセスは、ブロック626において終了する。
アプリケーションマネージャは、ロードされたクラスのうちアプリケーションで不要とされたクラスをアンロードするように、様々な形で実装することが可能である。図7は、図6に示されるアプリケーションの実行時にアプリケーションマネージャを実装してクラスをアンロードする方法を、本発明の1実施形態にしたがって示したフローチャートである。このプロセスはブロック702から開始し、ブロック704においてアプリケーションマネージャが適切な初期化を実施する。また、アプリケーションマネージャは、1またはそれ以上のアプリケーションの実行を管理する役割を担っている。このため、アプリケーションマネージャは、図6に示すように、ブロック614および616に進むのに先立って、アプリケーションマネージャが(例えばブロードキャストデータストリームから受信された)アプリケーションをロードする、スタートする、またはストップすることを示す信号の受信(例えばテレビレシーバを通して受信する)待ちをする。したがって、アプリケーションマネージャは、ブロック706において、このような信号の受信待ちをしている。ブロック708において、アプリケーションをロードすることを示す信号が受信されると、アプリケーションマネージャは、アプリケーション710のためのクラスローダを構築する。上述したように、このクラスローダは、アプリケーションに関連付けられた1またはそれ以上のクラスをロードするように設計されている。ブロック712においてスタート信号が受信されると、アプリケーションマネージャは、ブロック714において適切なクラスローダを利用し、アプリケーションに関連付けられたアプリケーションクラスをロードする。例えば、アプリケーションクラスを、アプリケーションのセキュリティ制約にしたがってロードしても良い。このため、クラスローダは、適切なセキュリティチェックを実施して、アプリケーションをロードできるか否かを決定することができる。次いで、アプリケーションマネージャは、ブロック716においてアプリケーションの実行を開始し、ブロック718において、アプリケーションが終了するまたはアプリケーションが完了前に終結されるまで待機する。アプリケーションマネージャは、アプリケーションの実行が終結されたことを示す信号またはメッセージを、そのアプリケーションまたは他のプロセスから受信することによって、そのアプリケーションの終結または完了を認識する。
アプリケーションマネージャが、ブロック720に示すように、アプリケーションの実行を完了前にストップさせるストップ信号を受信した場合、そのアプリケーションはブロック722において破棄される(例えば削除される)。そして、ブロック724において、破棄されたアプリケーションに関連したクリーンアップが実施される。次いで、ブロック726において、そのアプリケーションのためのクラスローダへの参照が解除される。
ブロック728においてアプリケーションの実行が完了すると、そのアプリケーションは、アプリケーションのクリーンアップを開始する信号を、(例えば、アプリケーションまたはブロードキャスト環境からレシーバを通して)アプリケーションマネージャに送信する。例えば、そのアプリケーションに関連するあらゆるファイルが削除され、同じく関連するあらゆるスレッドが除去される。また、各アプリケーションへの参照等の、ブックキーピングに使用されるあらゆる不要なデータを削除しても良い。次いで、プロセスは、ブロック724に進んでアプリケーションのクリーンアップを行ない、ブロック726においてそのアプリケーションのためのクラスローダへの参照を解除する。つまり、クラスローダへのポインタ(例えばアプリケーションマネージャに関連付けられた参照変数)をヌルに設定し、クラスローダとアプリケーションマネージャとの間のリンクを除去することによって、参照の解除を達成して良い。別の例として、クラスローダを到達不能としてマークしても良い。このクラスローダは、実行環境にロードされたクラスへの参照を最終的に維持しているので、このクラスローダへの参照を解除すれば、これらのクラスは到達不能になる。したがって、ガーベッジコレクションが実施することによって、これらのクラスを有効にアンロードすることができる。
ガーベッジコレクションは、参照が解除されたクラスローダに関連付けられたクラスをアンロードする目的で様々な形で実施して良い。例えば、ガーベッジコレクションを、2つの別々のパスに分けて実施しても良い。先ず第1のパスにおいて、ガーベッジコレクションは、到達不能なあらゆるオブジェクトおよびクラスを検索する。このとき、クラスローダおよびそのクラスローダによってロードされたクラスが到達不能であることが決定される。このとき、到達不能なクラスに関連付けられたクラスを到達不能としてマークしても良い。クラスローダが到達不能になると、参照が解除されたそのクラスローダに割り当てられたメモリが、ガーベッジコレクションによって解放される。第2のパスでは、前のパスにおいて到達不能であるとマークされたクラスローダ(既に存在しない)がロードしたクラスの検索が行なわれ、メモリから除去される。
本発明は、任意の適切なコンピュータシステムに実装して良い。図8は、本発明を実装するのに適した代表的な汎用コンピュータシステム1002を示した図である。コンピュータシステムは、任意の適切な形態をとって良い。コンピュータシステムは、例えば、デジタルテレビレシーバまたはセットトップボックスに組み込んでも良い。
コンピュータシステム1030、またはさらに特定してCPU1032は、当業者に理解される限りにおいて、仮想マシンをサポートするように構成されて良い。コンピュータシステム1002は、一次記憶デバイス1006(通例、読み出し専用メモリすなわちROM)と一次記憶デバイス1008(通例、ランダムアクセスメモリすなわちRAM)を含むメモリデバイスに接続された任意の数のプロセッサ1004(中央処理装置すなわちCPUとも呼ばれる)を備えている。当業者に周知のように、ROMは、CPU1004にデータおよび命令を一方向的に転送するよう機能し、RAMは通例、データおよび命令を二方向的に転送するのに用いられる。両方の一次記憶デバイス1006および1008は、任意の適切なコンピュータ読み取り可能媒体を含んでいて良い。CPU1004は、一般に、任意の数のプロセッサを含んでいて良い。
二次記憶媒体1010は、通例はマスメモリデバイスであり、二方向的にCPU1004に接続され、データ記憶容量を補っている。マスメモリデバイス1010は、コンピュータコード、データなどを含むプログラムを格納するのに用いることが可能なコンピュータ読み取り可能な媒体である。通例、マスメモリデバイス1010は、一般に一次記憶デバイス1006および1008よりも低速なハードディスクなどの記憶媒体である。
また、CPU1004は、ビデオモニタ、トラックボール、マウス、キーボード、マイクロフォン、タッチセンシティブディスプレイ、トランスデューサカードリーダ、磁気もしくは紙テープリーダ、タブレット、スタイラス、音声もしくは手書き文字認識装置、もしくは、もちろん他のコンピュータのようなその他のよく知られた入力デバイス、を含むがそれらに限定されない1つ以上の入出力デバイス1012に接続されても良い。最後に、CPU1004は、1014に大まかに示されているネットワーク接続を用いて、コンピュータや、例えばインターネットネットワークもしくはイントラネットネットワークなどの通信ネットワークに随意的に接続されても良い。このようなネットワーク接続により、CPU1004は、上述した方法の段階を実行している間に、ネットワークから情報を受信したりネットワークに情報を出力したりすることができると予期される。このような情報は、CPU1004を用いて実行される命令のシーケンスであることが多く、例えば搬送波で運ばれるコンピュータデータ信号の形で、ネットワークから受信したりネットワークに出力したりして良い。
本発明は、不要であると決定されたクラスのアンロードを可能にする。アプリケーションごとに個別のクラスローダを使用することによって、クラスのロードおよび不要になった(例えば、アプリケーションが終了したまたは終結された場合など)クラスのアンドロードが効果的に行なわれる。さらに、カスタマイズされたクラスローダを使用することによって、セキュリティレベルが向上されるので、無許可のアプリケーションのロードおよび実行が回避される。
本明細書では、本発明の例示的な実施形態および用途を説明しているが、本発明の概念、範囲、および趣旨の範囲内で多くの変更を加えることが可能であり、これらの変更は、本出願を熟読した当業者にとって明らかである。例えば、本明細書では、デジタルテレビのコンテキストにおいてクラスのアンロードを可能にするものとして本発明を説明している。しかしながら、本発明は、他のコンテキストでクラスをロードしたりアンロードしたりするのに使用することも可能である。さらに、本明細書では、Javaプラットフォーム上に実装するものとして本発明を説明しているが、オブジェクト指向言語が使用される他の様々なプラットフォームまたはコンテキストにおいて本発明を実装しても良い。このため、「到達不能性」とは、一般に、「参照が解除」されたエンティティが有する使用不可性を指して良い。さらに、上述したプロセスブロックは、単に例示的なものである。したがって、クラスのロードやアンロードを、別のプロセスブロックを使用して行なっても良い。したがって、上述した実施形態は、例示を目的としたものであって限定的ではなく、本発明は、本明細書で取り上げた項目に限定されず、添付した特許請求の範囲の範囲および均等物の範囲内で変更することが可能である。
以上の実施例に関し、更に、以下の項目を開示する。
(1) アプリケーションに関連付けられたクラスをロードしたりアンロードしたりする方法であって、
前記アプリケーションに関連付けられたクラスをロードするように適合された、前記アプリケーションのためのクラスローダを構築する処理と、
前記クラスローダを利用して、前記アプリケーションに関連付けられた1またはそれ以上のクラスをロードすることによって、前記クラスローダが、前記1またはそれ以上のクラスへの参照を維持するようにする処理と、
前記アプリケーションのための前記クラスローダへの参照を解除することによって、前記クラスローダへの到達を不能にする処理と
を備える方法。
(2) (1)記載の方法であって、
前記クラスローダへの参照の解除は、前記クラスローダへ到達を不能としたことを示すマークを付することを含む方法。
(3) (1)記載の方法であって、
前記参照の解除は、前記クラスローダへの参照を空(ヌル)に設定することを含む方法。
(4) (1)記載の方法であって、
前記クラスローダへの参照の解除は、前記1またはそれ以上のクラスがもう不要になった際に実施される方法。
(5) (1)記載の方法であって、
前記アプリケーションはJavaプログラムである方法。
(6) (1)記載の方法であって、さらに、
前記アプリケーションを実行する処理を備え、
前記クラスローダへの参照の解除は、前記アプリケーションの実行が終結された際に実施される方法。
(7) (1)記載の方法であって、さらに、
前記アプリケーションを破棄する処理を備え、
前記アプリケーションのための前記クラスローダへの参照の解除は、前記アプリケーションが破棄された際に実施される方法。
(8) (1)記載の方法であって、さらに、
ガーベッジコレクションを実施し、前記参照が解除されたクラスローダによって参照された前記1またはそれ以上のクラスを削除する処理を備える方法。
(9) (1)記載の方法であって、さらに、
前記参照が解除されたクラスローダへ到達を不能としたことを示すマークを付する処理を備える方法。
(10) (1)記載の方法であって、さらに、
前記参照が解除されたクラスローダによって参照された前記1またはそれ以上のクラスへ到達を不能としたことを示すマークを付する処理を備える方法。
(11) (8)記載の方法であって、
ガーベッジコレクションを実施し、前記参照が解除されたクラスローダによって参照された前記1またはそれ以上のクラスを削除する処理は、
前記クラスローダは到達不能であることを決定する処理と、
前記クラスローダが自身に関連付けられたクラスを1またはそれ以上有することを確認する処理と、
前記1またはそれ以上のクラスへ到達を不能としたことを示すマークを付する処理とを備える方法。
(12) (11)記載の方法であって、さらに、
前記クラスローダに関連付けられたメモリを解放する処理と、
前記1またはそれ以上のクラスに関連付けられたメモリを解放する処理と
を備える方法。
(13) (1)記載の方法であって、さらに、
到達不能な全てのオブジェクトおよびクラスを検索する処理と、
前記到達不能なオブジェクトおよびクラスを前記関連のメモリ位置から削除する処理と
を備える方法。
(14) (1)記載の方法であって、さらに、
前記参照が解除されたクラスローダと関連するクラスとによって消費されるメモリを解放する処理を備える方法。
(15) (14)記載の方法であって、
前記参照が解除されたクラスローダと関連のクラスとによって消費されるメモリを解放する処理は、
前記クラスローダへ到達を不能としたことを示すマークを付する処理と、
到達不能なオブジェクトをメモリから検索する処理と、
前記到達不能なクラスローダを関連のメモリ位置から削除する処理と、
前記到達不能なクラスローダが1またはそれ以上の関連のクラスを有することを確認する処理と、
前記1またはそれ以上の関連のクラスへ到達を不能としたことを示すマークを付する処理と、
到達不能なクラスをメモリから検索する処理と、
前記1またはそれ以上の関連のクラスを関連のメモリ位置から削除する処理と
を備える方法。
(16) (15)記載の方法であって、
前記到達不能なクラスローダを関連のメモリ位置から削除する処理は第1のパスにおいて実施され、前記1またはそれ以上の関連のクラスを関連のメモリ位置から削除する処理は第2のパスにおいて実施される方法。
(17) 多数のアプリケーションに関連付けられたクラスをロードしたりアンロードしたりする方法であって、
複数のアプリケーションのそれぞれに1つづつクラスローダを構築することによって、複数のクラスローダのそれぞれが、前記複数のアプリケーションの1つに関連付けられたクラスをロードするように適合されるようにする処理と、
前記複数のクラスローダのうち1またはそれ以上のクラスローダを利用することによって、前記対応するアプリケーションに関連付けられた1またはそれ以上のクラスをロードし、前記1またはそれ以上のクラスローダのそれぞれが、前記対応するアプリケーションに関連付けられた前記クラスへの参照を維持するようにする処理と、
前記対応するアプリケーションがその処理を完了した際に、前記複数のクラスローダのうち1またはそれ以上のクラスローダへの到達を不能にする処理と
を備える方法。
(18) (17)記載の方法であって、
前記複数のクラスローダのうち1またはそれ以上のクラスローダへの到達を不能にする処理は、前記複数のクラスローダのうち前記1またはそれ以上のクラスローダへの参照を解除することを含む方法。
(19) (17)記載の方法であって、さらに、
ガーベッジコレクションを実施し、前記到達不能なクラスローダによって参照されたクラスを削除する処理を備える方法。
(20) アプリケーションに関連付けられたクラスをロードしたりアンロードしたりする方法であって、
アプリケーションがロードされることを示すロード信号を受信する処理と、
前記アプリケーションに関連付けられたクラスをロードするように適合された、前記アプリケーションのためのクラスローダを構築する処理と、
前記アプリケーションがスタートされることを示すスタート信号を受信する処理と、
前記クラスローダを利用して、前記アプリケーションに関連付けられた1またはそれ以上のクラスをロードすることによって、前記クラスローダが、前記1またはそれ以上のクラスへの参照を維持するようにする処理と、
前記クラスローダへの参照を解除することによって、前記アプリケーションのための前記クラスローダへの到達を不能にする処理と
を備える方法。
(21) (20)記載の方法であって、
前記クラスローダの構築は、前記ロード信号の受信に応じて実施され、前記クラスローダを利用した、前記アプリケーションに関連付けられた1またはそれ以上のクラスのロードは、前記スタート信号の受信に応じて実施される方法。
(22) (20)記載の方法であって、さらに、
前記アプリケーションがストップされることを示すストップ信号を受信する処理を備える方法。
(23) (22)記載の方法であって、
前記クラスローダへの参照の解除は、前記ストップ信号が受信された際に実施される方法。
(24) (20)記載の方法であって、
前記クラスローダへの参照の解除は、前記アプリケーションの実行が終了した際か、または前記クラスローダの構築を担うアプリケーションマネージャによって前記アプリケーションの実行が終結された際に実施される方法。
(25) 1またはそれ以上のアプリケーションに関連付けられたクラスをロードする方法であって、
(a)アプリケーションのためのクラスローダを構築するように適合され、そして前記構築されたクラスローダを前記アプリケーションが終了した際または前記アプリケーションの実行が終結された際にその参照を解除するように適合されたアプリケーションマネージャを作成する処理であって、前記クラスローダは、前記アプリケーションに関連付けられたクラスをロードするように適合されている処理と、
(b)アプリケーションを受信する処理と、
(c)前記アプリケーションマネージャを利用し、前記受信されたアプリケーションのためのクラスローダを構築する処理と、
(d)前記クラスローダを利用して、前記アプリケーションに関連付けられた1またはそれ以上のクラスをロードすることによって、前記クラスローダが前記1またはそれ以上のクラスへの参照を維持するようにする処理と
を備える方法。
(26) (25)記載の方法であって、さらに、
前記アプリケーションマネージャを利用して、前記アプリケーションのための前記クラスローダへの参照を解除することによって、前記クラスローダへの到達を不能にする処理を備える方法。
(27) (25)記載の方法であって、さらに、
受信された各アプリケーションに対して処理(b)、(c)、および(d)を繰り返すことを備える方法。
(28) (27)記載の方法であって、さらに、
アプリケーションの実行が終了した際またはアプリケーションの実行が終結された際に、そのアプリケーションに関連付けられたクラスローダへの参照を解除する処理を備える方法。
(29) 1またはそれ以上のアプリケーションに関連付けられたクラスをロードしたりアンロードしたりするためのシステムであって、
複数のアプリケーションの1つに関連付けられたクラスをロードするようにそれぞれが適合されている複数のクラスローダと、
前記複数のクラスローダの1つを利用して、前記複数のアプリケーションの1つに関連付けられたクラスをロードするように適合され、そして所定の条件に応じて、前記複数のクラスローダの1つへの参照を解除するように適合されたアプリケーションマネージャと
を備えるシステム。
(30) 1またはそれ以上のアプリケーションに関連付けられたクラスをロードするためのシステムであって、
メモリと、
メモリと連動して、アプリケーションのためのクラスローダを構築するように適合されたアプリケーションマネージャを実装するプロセッサと
を備え、
前記クラスローダは、前記アプリケーションに関連付けられたクラスをロードすうように適合され、前記アプリケーションマネージャは、前記アプリケーションが終了した際または前記アプリケーションマネージャによって前記アプリケーションの実行が終結された際に、前記構築されたクラスローダへの参照を解除するように作動するシステム。
(31) (30)記載のシステムであって、さらに、
第1のアプリケーションに関連付けられたクラスをロードするように適合された第1のクラスローダを備えるシステム。
(32) (31)記載のシステムであって、
前記アプリケーションマネージャは前記第1のクラスローダにリンクされているシステム。
(33) (31)記載のシステムであって、さらに、
前記第1のアプリケーションに関連付けられた第1のクラスセットを格納するメモリを備え、
前記第1のクラスローダは前記第1のクラスセットにリンクされているシステム。
(34) (30)記載のシステムであって、
前記システムはデジタルテレビであるシステム。
(35) (30)記載のシステムであって、
前記システムはデジタルテレビレシーバであるシステム。
(36) 1またはそれ以上のアプリケーションに関連付けられたクラスをロードしたりアンロードしたりするためのデジタルテレビレシーバであって、
複数のアプリケーションの1つに関連付けられたクラスをロードするようにそれぞれが適合されている複数のクラスローダと、
前記複数のクラスローダの1つを利用して、前記複数のアプリケーションの1つに関連付けられたクラスをロードするように適合され、そして所定の条件に応じて、前記複数のクラスローダの1つへの参照を解除するように適合されたアプリケーションマネージャと
を備えるシステム。
(37) デジタルテレビにおいて、1またはそれ以上のアプリケーションに関連付けられたクラスをロードするためのシステムであって、
メモリと、
メモリと連動して、アプリケーションのためのクラスローダを構築するように適合されたアプリケーションマネージャを実装するプロセッサと
を備え、
前記クラスローダは、前記アプリケーションに関連付けられたクラスをロードすうように適合され、前記アプリケーションマネージャは、前記アプリケーションが終了した際または前記アプリケーションマネージャによって前記アプリケーションの実行が終結された際に、前記構築されたクラスローダへの参照を解除するように作動するシステム。
(38) アプリケーションに関連付けられたクラスをロードしたりアンロードしたりするようにプロセッサを作動させるように適合されたコンピュータプログラム製品であって、
コンピュータ読み取り可能な命令を格納するためのコンピュータ読み取り可能な媒体を備え、
前記コンピュータ読み取り可能な命令は、
前記アプリケーションに関連付けられたクラスをロードするように適合された、前記アプリケーションのためのクラスローダを構築する命令と、
前記クラスローダを利用して、前記アプリケーションに関連付けられた1またはそれ以上のクラスをロードすることによって、前記クラスローダが、前記1またはそれ以上のクラスへの参照を維持するようにする命令と、
前記アプリケーションのための前記クラスローダへの参照を解除することによって、前記クラスローダへの到達を不能にする命令と
を備えるコンピュータプログラム製品。
(39) 1またはそれ以上のアプリケーションに関連付けられたクラスをロードするようにプロセッサを作動させるように適合されたコンピュータプログラム製品であって、
コンピュータ読み取り可能な命令を格納するためのコンピュータ読み取り可能な媒体を備え、
前記コンピュータ読み取り可能な命令は、
アプリケーションのためのクラスローダを構築するように適合され、そして前記構築されたクラスローダを前記アプリケーションが終了した際または前記アプリケーションの実行が終結された際にその参照を解除するように適合されたアプリケーションマネージャを作成する命令であって、前記クラスローダは、前記アプリケーションに関連付けられたクラスをロードするように適合されている命令と、
アプリケーションを受信する命令と、
前記アプリケーションマネージャを利用し、前記受信されたアプリケーションのためのクラスローダを構築する命令と、
前記クラスローダを利用して、前記アプリケーションに関連付けられた1またはそれ以上のクラスをロードすることによって、前記クラスローダが、前記1またはそれ以上のクラスへの参照を維持するようにする命令と、
前記アプリケーションのための前記クラスローダへの参照を解除することによって、前記クラスローダへの到達を不能にする命令と
を備えるコンピュータプログラム製品。
102・・・アンテナ
104・・・チューナモジュール
106・・・MPEG2トランスポートストリーム
108・・・デマルチプレクサ
110・・・暗号化されたMPEGストリーム
112・・・ビデオストリーム
114・・・オーディオストリーム
116・・・データストリーム
118・・・暫定的なアクセスサブシステム
120・・・キー管理情報
122・・・解読情報
123・・・解読されたMPEGストリーム
124・・・ビデオストリーム
125・・・オーディオストリーム
126・・・データ
128・・・デコーダ
130・・・フレームバッファ
132・・・スピーカ
202・・・アプリケーションマネージャ
204・・・第1のクラスローダ
206・・・第2のクラスローダ
208・・・メモリ
210・・・第1のクラスセット
212・・・第2のクラスセット
214・・・実行環境
302・・・第1のアプリケーションクラスセット
304・・・第2のアプリケーションクラスセット
406・・・ガーベッジコレクション
1002・・・汎用コンピュータシステム
1004・・・プロセッサ
1006・・・一次記憶デバイス
1008・・・一次記憶デバイス
1010・・・二次記憶媒体
1012・・・入出力デバイス
1014・・・ネットワーク接続

Claims (37)

  1. アプリケーションマネージャがクラスをロードしたりアンロードしたりする方法であって、
    第1のアプリケーションに関連付けられたクラスをロードするように適合された、前記第1のアプリケーションのための第1のクラスローダを構築する処理と、
    第2のアプリケーションに関連付けられたクラスをロードするように適合された、前記第2のアプリケーションのための第2のクラスローダを構築する処理と、
    前記第1のクラスローダを利用して、前記第1のアプリケーションに関連付けられた1またはそれ以上のクラスをロードすることによって、前記クラスローダが、前記第1のアプリケーションに関連付けられた前記1またはそれ以上のクラスへの参照を維持する処理と、
    前記第2のクラスローダを利用して、前記第2のアプリケーションに関連付けられた1またはそれ以上のクラスをロードすることによって、前記クラスローダが、前記第2のアプリケーションに関連付けられた前記1またはそれ以上のクラスへの参照を維持する処理と、
    前記第1のアプリケーションの実行が終了または中断したとき、前記第1のアプリケーションのための前記第1のクラスローダへの参照を解除することによって、前記第1のクラスローダへの到達および前記第1のクラスローダによって参照された前記1またはそれ以上のクラスへの到達を不能とし、その結果、前記第1のクラスローダによって参照された前記1またはそれ以上のクラスについて、ガーベッジコレクションの間にアンロード可能にする処理と、
    前記第2のアプリケーションの実行が終了または中断したとき、前記第2のアプリケーションのための前記第2のクラスローダへの参照を解除することによって、前記第2のクラスローダへの到達および前記第2のクラスローダによって参照された前記1またはそれ以上のクラスへの到達を不能とし、その結果、前記第2のクラスローダによって参照された前記1またはそれ以上のクラスについて、ガーベッジコレクションの間にアンロード可能にする処理と
    を備える方法。
  2. 請求項1記載の方法であって、
    前記第1のクラスローダへの参照の解除は、前記第1のクラスローダへ到達を不能としたことを示すマークを付する処理を含み、
    前記第2のクラスローダへの参照の解除は、前記第2のクラスローダへ到達を不能としたことを示すマークを付する処理を含む方法。
  3. 請求項1記載の方法であって、
    前記参照の解除は、対応するクラスローダへの参照を空(ヌル)に設定することを含む方法。
  4. 請求項1記載の方法であって、
    前記第1および第2のアプリケーションはそれぞれJavaプログラムである方法。
  5. 請求項1記載の方法であって、さらに、
    前記第1または第2のアプリケーションを破棄する処理を備え、
    前記第1または第2のアプリケーションのためのクラスローダへの参照の解除は、前記第1または第2のアプリケーションが破棄されたときに実行される方法。
  6. 請求項1記載の方法であって、さらに、
    ガーベッジコレクションを実施し、前記参照が解除されたクラスローダによって参照された前記1またはそれ以上のクラスを削除する処理を備える方法。
  7. 請求項1記載の方法であって、さらに、
    前記参照が解除されたクラスローダへ到達を不能としたことを示すマークを付する処理を備える方法。
  8. 請求項1記載の方法であって、さらに、
    前記参照が解除されたクラスローダによって参照された前記1またはそれ以上のクラスへ到達を不能としたことを示すマークを付する処理を備える方法。
  9. 請求項6記載の方法であって、
    ガーベッジコレクションを実施し、前記参照が解除されたクラスローダによって参照された前記1またはそれ以上のクラスを削除する処理は、
    前記クラスローダは到達不能であることを決定する処理と、
    前記到達不能なクラスローダが自身に関連付けられた1またはそれ以上のクラスを有することを確認する処理と、
    前記1またはそれ以上のクラスへ到達を不能としたことを示すマークを付する処理と
    を備える方法。
  10. 請求項9記載の方法であって、さらに、
    前記クラスローダに関連付けられたメモリを解放する処理と、
    前記1またはそれ以上のクラスに関連付けられたメモリを解放する処理と
    を備える方法。
  11. 請求項1記載の方法であって、さらに、
    到達不能な全てのオブジェクトおよびクラスを検索する処理と、
    前記到達不能なオブジェクトおよびクラスを関連のメモリ位置から削除する処理と
    を備え、
    前記オブジェクトのそれぞれは、クラスのインスタンスである方法。
  12. 請求項1記載の方法であって、さらに、
    前記参照が解除されたクラスローダと関連するクラスとによって消費されるメモリを解放する処理を備える方法。
  13. 請求項12記載の方法であって、
    前記参照が解除されたクラスローダと関連のクラスとによって消費されるメモリを解放する処理は、
    前記クラスローダへ到達を不能としたことを示すマークを付する処理と、
    前記到達不能なクラスローダを関連のメモリ位置から削除する処理と、
    前記到達不能なクラスローダが1またはそれ以上の関連のクラスを有することを確認する処理と、
    前記1またはそれ以上の関連のクラスへ到達を不能としたことを示すマークを付する処理と、
    到達不能なクラスをメモリから検索する処理と、
    前記1またはそれ以上の関連のクラスを関連のメモリ位置から削除する処理と
    を備える方法。
  14. 請求項13記載の方法であって、
    前記到達不能なクラスローダを関連のメモリ位置から削除する処理は第1のパスにおいて実施され、前記1またはそれ以上の関連のクラスを関連のメモリ位置から削除する処理は第2のパスにおいて実施される方法。
  15. 複数のアプリケーションに関連付けられたクラスをロードしたりアンロードしたりする方法であって、
    複数のアプリケーションのそれぞれに1つずつクラスローダを構築することによって、複数のクラスローダのそれぞれが、前記複数のアプリケーションの1つに関連付けられたクラスをロードするように適合されるようにする処理と、
    前記複数のクラスローダのうち1またはそれ以上のクラスローダを利用して、対応するアプリケーションに関連付けられた1またはそれ以上のクラスをロードすることによって、前記1またはそれ以上のクラスローダのそれぞれが、前記対応するアプリケーションに関連付けられた前記クラスへの参照を維持するようにする処理と、
    前記対応するアプリケーションがその処理を完了した際に、前記複数のクラスローダのうち前記1またはそれ以上のクラスローダへの到達および前記複数のクラスローダのそれぞれによって参照されたクラスへの到達を不能とし、その結果、前記複数のクラスローダのそれぞれによって参照された前記クラスについて、ガーベッジコレクションの間にアンロード可能にする処理と
    を備える方法。
  16. 請求項15記載の方法であって、
    前記複数のクラスローダのうち前記1またはそれ以上のクラスローダへの到達を不能にする処理は、前記複数のクラスローダのうち前記1またはそれ以上のクラスローダへの参照を解除することを含む方法。
  17. 請求項15記載の方法であって、さらに、
    ガーベッジコレクションを実施し、前記到達不能なクラスローダによって参照されたクラスを削除する処理を備える方法。
  18. アプリケーションマネージャにおいてアプリケーションに関連付けられたクラスをロードしたりアンロードしたりする方法であって、
    (a)アプリケーションがロードされることを示すロード信号を受信する処理と、
    (b)前記アプリケーションに関連付けられたクラスをロードするように適合された、前記アプリケーションのためのクラスローダを構築する処理と、
    (c)前記アプリケーションがスタートされることを示すスタート信号を受信する処理と、
    (d)前記クラスローダを利用して、前記アプリケーションに関連付けられた1またはそれ以上のクラスをロードすることによって、前記クラスローダが、前記1またはそれ以上のクラスへの参照を維持するようにする処理と、
    (e)前記アプリケーションの実行が終了または中断したとき、前記アプリケーションのための前記クラスローダへの参照を解除することによって、前記クラスローダへの到達および前記1またはそれ以上のクラスへの到達を不能とし、その結果、前記アプリケーションに関連付けられた前記1またはそれ以上のクラスについて、ガーベッジコレクションの間にアンロード可能にする処理と、
    (f)複数のアプリケーションに対して処理(a)、(b)、(c)、(d)および(e)を繰り返すことによって、複数のクラスローダが構築され、前記複数のアプリケーションに関連付けられたクラスをロードしたりアンロードしたりするために利用されるようにする処理と
    を備える方法。
  19. 請求項18記載の方法であって、
    前記クラスローダの構築は、前記ロード信号の受信に応じて実施され、前記クラスローダを利用した、前記アプリケーションに関連付けられた1またはそれ以上のクラスのロードは、前記スタート信号の受信に応じて実施される方法。
  20. 請求項18記載の方法であって、さらに、
    前記アプリケーションがストップされることを示すストップ信号を受信する処理を備える方法。
  21. 請求項20記載の方法であって、
    前記クラスローダへの参照の解除は、前記ストップ信号が受信された際に実施される方法。
  22. 請求項18記載の方法であって、
    前記クラスローダへの参照の解除は、前記アプリケーションの実行が完了した際か、または前記クラスローダの構築を担うアプリケーションマネージャによって前記アプリケーションの実行が中断された際に実施される方法。
  23. 1またはそれ以上のアプリケーションに関連付けられたクラスをロードする方法であって、
    (a)対応するアプリケーションに関連付けられたクラスをロードするように適合された、アプリケーションごとに個別のクラスローダを構築し、前記アプリケーションのうち対応するアプリケーションの実行が終了または中断したとき、前記構築されたクラスローダへの参照を解除するように適合されたアプリケーションマネージャを構築する処理と、
    (b)アプリケーションを受信する処理と、
    (c)前記アプリケーションマネージャを利用して、前記受信されたアプリケーションのためのクラスローダを構築する処理と、
    (d)前記クラスローダを利用して、前記受信されたアプリケーションに関連付けられた1またはそれ以上のクラスをロードすることによって、前記クラスローダが、前記1またはそれ以上のクラスへの参照を維持する処理と、
    (e)前記アプリケーションマネージャを利用して、前記受信されたアプリケーションの実行が終了または中断したとき、前記クラスローダへの参照を解除する処理と
    を備える方法。
  24. 請求項23記載の方法であって、さらに、
    前記アプリケーションマネージャを利用して、前記アプリケーションのための前記クラスローダへの参照を解除することによって、前記クラスローダへの到達を不能とする処理を備える方法。
  25. 請求項23記載の方法であって、さらに、
    受信されたアプリケーションごとに処理(b)、(c)および(d)を繰り返す処理を備える方法。
  26. 請求項25記載の方法であって、さらに、
    アプリケーションの実行が終了または中断したとき、前記アプリケーションに関連付けられたクラスローダへの参照を解除し、その結果、前記クラスローダおよび関連付けられたクラスについて、ガーベッジコレクションの間にアンロード可能にする処理を備える方法。
  27. 1またはそれ以上のアプリケーションに関連付けられたクラスをロードしたりアンロードしたりするためのシステムであって、
    複数のアプリケーションの1つに関連付けられたクラスをロードするようにそれぞれが適合されている複数のクラスローダと、
    前記複数のクラスローダの1つを利用して、前記複数のアプリケーションの1つに関連付けられたクラスをロードするように適合され、所定の条件に応じて、前記複数のクラスローダの1つへの参照を解除し、その結果、前記複数のクラスローダのそれぞれに関連付けられたクラスについて、ガーベッジコレクションの間にアンロード可能にするように適合されたアプリケーションマネージャと
    を備えるシステム。
  28. 1またはそれ以上のアプリケーションに関連付けられたクラスをロードするためのシステムであって、
    メモリと、
    メモリと連動して、複数のアプリケーションのそれぞれに1つずつ個別のクラスローダを構築するように適合されたアプリケーションマネージャを実装するプロセッサと
    を備え、
    各クラスローダは、対応するアプリケーションに関連付けられたクラスをロードするように適合され、前記アプリケーションマネージャは、前記対応するアプリケーションの実行が終了したとき、または前記アプリケーションマネージャによって前記対応するアプリケーションの実行が中断されたとき、前記構築されたクラスローダへの参照を解除するように作動するシステム。
  29. 請求項28記載のシステムであって、さらに、
    第1のアプリケーションに関連付けられたクラスをロードするように適合された第1のクラスローダを備えるシステム。
  30. 請求項29記載のシステムであって、
    前記アプリケーションマネージャは前記第1のクラスローダにリンクされているシステム。
  31. 請求項29記載のシステムであって、さらに、
    前記第1のアプリケーションに関連付けられた第1のクラスセットを格納するメモリを備え、
    前記第1のクラスローダは前記第1のクラスセットにリンクされているシステム。
  32. 請求項28記載のシステムであって、
    前記システムはデジタルテレビであるシステム。
  33. 請求項28記載のシステムであって、
    前記システムはデジタルテレビレシーバであるシステム。
  34. 1またはそれ以上のアプリケーションに関連付けられたクラスをロードしたりアンロードしたりするためのデジタルテレビレシーバであって、
    複数のアプリケーションの1つに関連付けられたクラスをロードするようにそれぞれが適合されている複数のクラスローダと、
    前記複数のクラスローダの1つを利用して、前記複数のアプリケーションの1つに関連付けられたクラスをロードするように適合され、所定の条件に応じて、前記複数のクラスローダの1つへの参照を解除し、その結果、前記複数のクラスローダのそれぞれに関連付けられたクラスについて、ガーベッジコレクションの間にアンロード可能にするように適合されたアプリケーションマネージャと
    を備えるデジタルテレビレシーバ。
  35. デジタルテレビにおいて、1またはそれ以上のアプリケーションに関連付けられたクラスをロードするためのシステムであって、
    メモリと、
    メモリと連動して、複数のアプリケーションのそれぞれに1つずつ個別のクラスローダを構築するように適合されたアプリケーションマネージャを実装するプロセッサと
    を備え、
    各クラスローダは、前記複数のアプリケーションのうち対応するアプリケーションに関連付けられたクラスをロードするように適合され、前記アプリケーションマネージャは、前記対応するアプリケーションの実行が終了したとき、または前記アプリケーションマネージャによって前記対応するアプリケーションの実行が中断されたとき、前記構築されたクラスローダへの参照を解除するように作動するシステム。
  36. アプリケーションに関連付けられたクラスをロードしたりアンロードしたりするようにプロセッサを作動させるように適合されたコンピュータプログラムであって、
    コンピュータ読み取り可能な命令を格納するためのコンピュータ読み取り可能な媒体を備え、
    前記コンピュータ読み取り可能な命令は、
    対応するアプリケーションに関連付けられたクラスをロードするようにそれぞれが適合された、複数のアプリケーションのそれぞれに1つずつ個別のクラスローダを構築する命令と、
    前記複数のアプリケーションの1つのためのクラスローダを利用して、対応するアプリケーションに関連付けられたクラスをロードすることによって、前記クラスローダが、前記1またはそれ以上のクラスへの参照を維持するようにする命令と、
    前記複数のアプリケーションの1つのためのクラスローダへの参照を解除することによって、前記クラスローダへの到達を不能にし、その結果、前記複数のクラスローダのそれぞれに関連付けられたクラスについて、ガーベッジコレクションの間にアンロード可能にする命令と
    を備えるコンピュータプログラム。
  37. 1またはそれ以上のアプリケーションに関連付けられたクラスをロードするようにプロセッサを作動させるように適合されたコンピュータプログラムであって、
    コンピュータ読み取り可能な命令を格納するためのコンピュータ読み取り可能な媒体を備え、
    前記コンピュータ読み取り可能な命令は、
    アプリケーションごとに個別のクラスローダを構築し、対応するアプリケーションの実行が終了または中断したとき、前記構築されたクラスローダへの参照を解除するように適合されたアプリケーションマネージャを構築する命令であって、前記クラスローダは、前記対応するアプリケーションに関連付けられたクラスをロードするように適合されている命令と、
    アプリケーションを受信する命令と、
    前記アプリケーションマネージャを利用し、前記受信されたアプリケーションのためのクラスローダを構築する命令と、
    前記クラスローダを利用して、前記受信されたアプリケーションに関連付けられた1またはそれ以上のクラスをロードすることによって、前記クラスローダが、前記1またはそれ以上のクラスへの参照を維持するようにする命令と、
    前記受信されたアプリケーションのための前記クラスローダへの参照を解除することによって、前記クラスローダへの到達を不能にし、その結果、前記複数のクラスローダのそれぞれに関連付けられたクラスについて、ガーベッジコレクションの間にアンロード可能にする命令と
    を備えるコンピュータプログラム。
JP2013247591A 1999-07-13 2013-11-29 個々のクラスローダを実装するための方法および装置 Pending JP2014059906A (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US14342899P 1999-07-13 1999-07-13
US60/143,428 1999-07-13
US09/465,995 1999-12-16
US09/465,995 US6701334B1 (en) 1999-07-13 1999-12-16 Methods and apparatus for implementing individual class loaders

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2011174651A Division JP2011233171A (ja) 1999-07-13 2011-08-10 個々のクラスローダを実装するための方法および装置

Publications (1)

Publication Number Publication Date
JP2014059906A true JP2014059906A (ja) 2014-04-03

Family

ID=26841023

Family Applications (3)

Application Number Title Priority Date Filing Date
JP2001510084A Pending JP2003504754A (ja) 1999-07-13 2000-07-13 個々のクラスローダを実装するための方法および装置
JP2011174651A Pending JP2011233171A (ja) 1999-07-13 2011-08-10 個々のクラスローダを実装するための方法および装置
JP2013247591A Pending JP2014059906A (ja) 1999-07-13 2013-11-29 個々のクラスローダを実装するための方法および装置

Family Applications Before (2)

Application Number Title Priority Date Filing Date
JP2001510084A Pending JP2003504754A (ja) 1999-07-13 2000-07-13 個々のクラスローダを実装するための方法および装置
JP2011174651A Pending JP2011233171A (ja) 1999-07-13 2011-08-10 個々のクラスローダを実装するための方法および装置

Country Status (10)

Country Link
US (1) US6701334B1 (ja)
EP (1) EP1194838B1 (ja)
JP (3) JP2003504754A (ja)
KR (1) KR20020035558A (ja)
CN (1) CN1156753C (ja)
AT (1) ATE389912T1 (ja)
AU (1) AU5934500A (ja)
CA (1) CA2378588A1 (ja)
DE (1) DE60038377D1 (ja)
WO (1) WO2001004744A2 (ja)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6701334B1 (en) * 1999-07-13 2004-03-02 Sun Microsystems, Inc. Methods and apparatus for implementing individual class loaders
US6901586B1 (en) * 2000-11-06 2005-05-31 Sun Microsystems, Inc. Safe language static variables initialization in a multitasking system
US7237237B2 (en) 2001-07-24 2007-06-26 The Mathworks, Inc. Designating an object for destruction
CN1407780A (zh) * 2001-08-13 2003-04-02 国际商业机器公司 在多种终端设备访问服务内容时保持过程持续性的方法和设备
GB2381090B (en) * 2001-10-17 2005-02-02 Bitarts Ltd Software loading
GB0125176D0 (en) * 2001-10-19 2001-12-12 Koninkl Philips Electronics Nv A method of compiling bytecode to native code
EP1345417A1 (en) 2002-03-14 2003-09-17 Sony Service Center (Europe) N.V. Method and digital television unit for operating broadcast applications
US8042189B2 (en) * 2002-03-20 2011-10-18 Research In Motion Limited System and method to force a mobile device into a secure state
WO2003079196A2 (en) 2002-03-20 2003-09-25 Research In Motion Limited System and method of secure garbage collection on a mobile device
NL1021289C2 (nl) * 2002-08-16 2004-02-17 Tryllian Holding N V Werkwijze voor het instantieren van verschillende types van programmatuurmodules en werkwijze voor het overdragen van een mobiele programmatuuragent.
JP4136639B2 (ja) * 2002-12-13 2008-08-20 キヤノン株式会社 サービス提供システム及びサービス提供装置
US20060179465A1 (en) * 2003-07-24 2006-08-10 Koninklijke Philips Electroncs N.V. Handling feature availability in a broadcast
KR20070063571A (ko) * 2004-09-30 2007-06-19 코닌클리케 필립스 일렉트로닉스 엔.브이. Mhp 애플리케이션들의 시동 시간을 감소시키기 위한시스템 및 방법
US7823143B2 (en) * 2005-04-29 2010-10-26 Sap Ag Efficient algorithm for performing multi-parent class loading
US7421540B2 (en) * 2005-05-03 2008-09-02 International Business Machines Corporation Method, apparatus, and program to efficiently calculate cache prefetching patterns for loops
US20080005160A1 (en) * 2006-06-30 2008-01-03 Microsoft Corporation Assembly Sensitive Dynamic Classloading Of .Net Types in J#
WO2008099453A1 (ja) * 2007-02-09 2008-08-21 Fujitsu Limited 縮退方法および情報処理装置
JP5157537B2 (ja) * 2008-03-06 2013-03-06 日本電気株式会社 メモリ管理装置、システム、方法、及び、プログラム
US8489653B2 (en) 2011-02-08 2013-07-16 International Business Machines Corporation Incremental class unloading in a region-based garbage collector
US8910138B2 (en) 2012-05-23 2014-12-09 Oracle International Corporation Hot pluggable extensions for access management system
KR101463856B1 (ko) 2012-09-13 2014-11-19 뱅크웨어글로벌 주식회사 자바 기반의 업무시스템에서의 응용프로그램 무중단 교체를 위한 시스템 및 그 방법
JP5950288B2 (ja) 2014-09-16 2016-07-13 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation プログラミング言語の処理系を実現する装置及び方法
US10114745B2 (en) * 2014-10-07 2018-10-30 Red Hat, Inc. Assisted garbage collection in a virtual machine
EP3093761A1 (en) * 2015-05-13 2016-11-16 Gemalto Sa Integrated circuit card adapted to transfer first data from a first application for use by a second application
CN105404589B (zh) * 2015-10-29 2019-04-30 天脉聚源(北京)教育科技有限公司 一种垃圾回收方法及装置
US10089235B1 (en) 2017-07-28 2018-10-02 Citrix Systems, Inc. Dynamic trim processing with disk caching
EP3693851B1 (en) * 2017-10-09 2023-01-11 Huawei Technologies Co., Ltd. Class unloading method and electronic device
KR102116813B1 (ko) 2018-06-22 2020-05-29 주식회사 티맥스 소프트 분산 환경 시스템에서의 어플리케이션 무중단 배포 시 불필요한 리소스 인식 및 해제 방안
KR102116814B1 (ko) 2018-06-22 2020-05-29 주식회사 티맥스 소프트 어플리케이션 무중단 배포 시 응용 프로그램 버전 정합성을 위한 방법 및 컴퓨터 판독가능 매체에 저장된 컴퓨터 프로그램

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011233171A (ja) * 1999-07-13 2011-11-17 Oracle America Inc 個々のクラスローダを実装するための方法および装置

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4912628A (en) 1988-03-15 1990-03-27 International Business Machines Corp. Suspending and resuming processing of tasks running in a virtual machine data processing system
FR2679351B1 (fr) 1991-07-15 1995-01-27 Bull Sa Systeme d'exploitation pour dispositif universel de couplage d'un bus d'ordinateur a une liaison specifique d'un reseau.
US5727147A (en) * 1995-12-08 1998-03-10 Sun Microsystems, Inc. System and method for resolving symbolic references to externally located program files
US5815718A (en) * 1996-05-30 1998-09-29 Sun Microsystems, Inc. Method and system for loading classes in read-only memory
US6085030A (en) * 1997-05-02 2000-07-04 Novell, Inc. Network component server
EP0908821A1 (en) 1997-10-07 1999-04-14 CANAL+ Société Anonyme Digital code interpreter
US6513155B1 (en) * 1997-12-12 2003-01-28 International Business Machines Corporation Method and system for merging event-based data and sampled data into postprocessed trace output
US6266716B1 (en) * 1998-01-26 2001-07-24 International Business Machines Corporation Method and system for controlling data acquisition over an information bus
US6374286B1 (en) * 1998-04-06 2002-04-16 Rockwell Collins, Inc. Real time processor capable of concurrently running multiple independent JAVA machines
US6496871B1 (en) * 1998-06-30 2002-12-17 Nec Research Institute, Inc. Distributed agent software system and method having enhanced process mobility and communication in a computer network
US6202208B1 (en) * 1998-09-29 2001-03-13 Nortel Networks Limited Patching environment for modifying a Java virtual machine and method
GB2343021A (en) * 1998-10-19 2000-04-26 Ibm Class loading model for object oriented programming
US6279030B1 (en) * 1998-11-12 2001-08-21 International Business Machines Corporation Dynamic JAVA™ class selection and download based on changeable attributes
US6519594B1 (en) * 1998-11-14 2003-02-11 Sony Electronics, Inc. Computer-implemented sharing of java classes for increased memory efficiency and communication method
US6430564B1 (en) * 1999-03-01 2002-08-06 Hewlett-Packard Company Java data manager for embedded device
US6430570B1 (en) * 1999-03-01 2002-08-06 Hewlett-Packard Company Java application manager for embedded device
US6507946B2 (en) * 1999-06-11 2003-01-14 International Business Machines Corporation Process and system for Java virtual method invocation
US6442565B1 (en) * 1999-08-13 2002-08-27 Hiddenmind Technology, Inc. System and method for transmitting data content in a computer network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011233171A (ja) * 1999-07-13 2011-11-17 Oracle America Inc 個々のクラスローダを実装するための方法および装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6010039842; Liang,S. and Bracha,G.: 'Dynamic class loading in the Java virtual machine' Proc. of Object-Oriented Programming,Systems,Languages, and Applications , 199810 *
JPN6011005731; McDowell,C.E. and Baldwin,E.A.: 'Unloading Java classes that contain static fields' ACM SIGPLAN Notices Vol.33,No.1, 199801 *

Also Published As

Publication number Publication date
WO2001004744A2 (en) 2001-01-18
CN1156753C (zh) 2004-07-07
WO2001004744A3 (en) 2001-07-19
AU5934500A (en) 2001-01-30
KR20020035558A (ko) 2002-05-11
EP1194838A2 (en) 2002-04-10
CA2378588A1 (en) 2001-01-18
JP2011233171A (ja) 2011-11-17
CN1360694A (zh) 2002-07-24
EP1194838B1 (en) 2008-03-19
ATE389912T1 (de) 2008-04-15
DE60038377D1 (de) 2008-04-30
US6701334B1 (en) 2004-03-02
JP2003504754A (ja) 2003-02-04

Similar Documents

Publication Publication Date Title
JP2014059906A (ja) 個々のクラスローダを実装するための方法および装置
US6757890B1 (en) Methods and apparatus for enabling local Java object allocation and collection
US7203941B2 (en) Associating a native resource with an application
US6519594B1 (en) Computer-implemented sharing of java classes for increased memory efficiency and communication method
US6820101B2 (en) Methods and apparatus for optimizing garbage collection using separate heaps of memory for storing local objects and non-local objects
KR20020022085A (ko) 응용프로그램 라이프사이클에 따른 응용프로그램 관리방법 및 장치
US6804761B1 (en) Memory allocation system and method
US7421707B2 (en) System and method for inducing asynchronous behavioral changes in a managed application process
US20070198723A1 (en) Apparatus and method for managing resources in containment framework environment
US20070203959A1 (en) Apparatus and method for managing resources using virtual ID in multiple Java application environment
JP2008234668A (ja) メモリ管理装置、メモリ管理方法、メモリ管理プログラム及び該プログラムを記録したコンピュータ読み取り可能な記録媒体
US20060026379A1 (en) Effective memory management method and device in object-oriented application
US6799319B2 (en) Method and apparatus for application packages and delegate packages to adopt and export standard execution state machine interfaces
US6829686B2 (en) Method and apparatus for bag-to-set, buffering remembered set
US7028287B2 (en) Method and apparatus for facilitating compact object headers
US20080320490A1 (en) Method, apparatus and computer program product for providing sub-process resource management
JP2008515322A (ja) Mhpアプリケーションの起動時間を減少させるシステム及び方法
JP4504756B2 (ja) Java(登録商標名)実行環境におけるメモリ管理方法及びメモリ管理プログラム
JP4132803B2 (ja) メモリ管理装置、及びメモリ管理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140610

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20140930

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150818