(57)【要約】【課題】メディア配信サービスを途絶させることなく、ディジタル・メディア・サーバのハードウェアおよびソフトウェア・コンポーネント双方をアップグレードするシステムおよび方法を開示する。【解決手段】好適な実施形態では、本システムおよび方法は、オペレーティング・システムおよびアプリケーション双方のレベルでのソフトウェア・アップグレードをインストールしつつ、システム・サーバを完全に活動状態のままにさせておくオブジェクト指向モデルを採用する。加えて、本システムおよび方法は、冗長または区分可能なプログラム可能ロジック・デバイスを用い、メディア配信サービスを途絶させることなく、ファームウェアのアップグレードを実行する。【選択図】図２
2011065676.tif 000002
【特許請求の範囲】
【請求項１】
ディジタル・メディア・サーバであって、
オブジェクト記憶部と、
オブジェクト指向のランタイム環境とを備え、
該ランタイム環境が、
サービス・オブジェクトと、
アプリケーション・オブジェクトと、
前記サービス・オブジェクトおよびアプリケーション・オブジェクトが供給するデータ処理機能を途絶させることなく、前記サービス・オブジェクトおよび前記アプリケーション・オブジェクトの置換えを容易にするように構成されたオブジェクト・マネージャとを備える、
ディジタル・メディア・サーバ。
【請求項２】
置換えサービスおよびアプリケーション・オブジェクトを含むアップグレード・パッケージをダウンロードするネットワーク・インターフェースを更に備える、
請求項１記載のサーバ。
【請求項３】
置換えサービスおよびアプリケーション・オブジェクトを含むアップグレード・パッケージを格納する記憶媒体を更に備える、
請求項１記載のサーバ。
【請求項４】
ディジタル・メディア・サーバであって、
オブジェクト記憶部と、
オブジェクト指向のランタイム環境であって、
サービス・オブジェクトと、
アプリケーション・オブジェクトと、
前記サービス・オブジェクトおよびアプリケーション・オブジェクトが供給するデータ処理機能を途絶させることなく、前記サービス・オブジェクトおよび前記アプリケーション・オブジェクトの置換えを容易にするように構成されたオブジェクト・マネージャと、
を備えるオブジェクト指向のランタイム環境と、
各々活動状態と非活動状態との間で切り換え可能な、２つ以上のプログラム可能ロジック・デバイスと、
入力データ経路と、
出力データ経路と、
を備え、
新ロジックを用いて前記非活動状態にある１つ以上のプログラム可能ロジック・デバイスがプログラムされている間、前記活動状態にある１つ以上のプログラム可能ロジック・デバイスは、前記入力データ経路上に到達するディジタル・メディアを処理し、処理したディジタル・メディアを前記出力データ経路に送出する、
ことを特徴とするディジタル・メディア・サーバ。
【請求項５】
置換えサービスおよびアプリケーション・オブジェクト、ならびに新ロジックを備えているアップグレード・パッケージをダウンロードするネットワーク・インターフェースを更に備える、
請求項４記載のサーバ。
【請求項６】
置換えサービスおよびアプリケーション・オブジェクト、ならびに新ロジックを備えているアップグレード・パッケージを格納する記憶媒体を更に備える、
請求項４記載のサーバ。
【請求項７】
ディジタル・メディア・サーバであって、
オブジェクト記憶部と、
オブジェクト指向のランタイム環境であって、
サービス・オブジェクトと、
アプリケーション・オブジェクトと、
前記サービス・オブジェクトおよびアプリケーション・オブジェクトが供給するデータ処理機能を途絶させることなく、前記サービス・オブジェクトおよび前記アプリケーション・オブジェクトの置換えを容易にするように構成されたオブジェクト・マネージャと、
を備えるオブジェクト指向のランタイム環境と、
２つ以上の独立してプログラム可能な区画を有し、各区画が活動状態と非活動状態との間で切り換えることができる、区分可能なプログラム可能ロジック・デバイスと、
入力経路と、
出力経路と、
を備え、
新ロジックを用いて前記非活動状態にある１つ以上の区画がプログラムされている間、前記活動状態にある１つ以上の区画が、前記入力データ経路上に到達するディジタル・メディアを処理し、処理したディジタル・メディアを前記出力データ経路に送出する、
ことを特徴とするディジタル・メディア・サーバ。
【請求項８】
置換えサービスおよびアプリケーション・オブジェクト、ならびに新ロジックを備えているアップグレード・パッケージをダウンロードするネットワーク・インターフェースを更に備える、
請求項７記載のサーバ。
【請求項９】
置換えサービスおよびアプリケーション・オブジェクト、ならびに新ロジックを備えているアップグレード・パッケージを格納する記憶媒体を更に備える、
請求項７記載のサーバ。
【請求項１０】
サービスオブジェクト及びオブジェクトマネージャを含むオブジェクト指向のランタイム環境と、前記オブジェクトマネージャは、新たなオブジェクトの機能及びプロパティを識別し、メモリにおけるアプリケーションオブジェクト又はサービスオブジェクトとして前記新たなオブジェクトのインスタンスを作成し、前記新たなオブジェクトが前記オブジェクト指向のランタイム環境における古いオブジェクトを置き換えるかを判定し、前記オブジェクト指向のランタイム環境において前記新たなオブジェクトと他のオブジェクトとの間の新たな論理結合を確立し、前記新たなオブジェクトと前記他のオブジェクトとの間の前記新たな論理結合の確立に応答して、前記古いオブジェクトを前記新たなオブジェクトと置き換え、
それぞれがアクティブ状態と非アクティブ状態との間で切り替わることができる２以上のプログラマブルロジックデバイスと、
入力データ経路と、
出力データ経路とを有し、
１以上のプログラマブルロジックデバイスは、前記アクティブ状態で、前記入力データ経路に到達したデジタルメディアを前記オブジェクト指向のランタイム環境において処理し、処理されたデジタルメディアを前記出力データ経路に供給し、
前記１以上のプログラマブルロジックデバイスは、前記非アクティブ状態で、前記オブジェクト指向のランタイム環境における実行のために新たなロジックをもつ前記オブジェクトマネージャによりプログラムされ、
前記オブジェクトマネージャは、前記オブジェクト指向のランタイム環境において新たなロジックとオブジェクトとの間の新たな論理結合を確立する、
ことを特徴とするデジタルメディアサーバ。
【請求項１１】
置き換えサービス及びアプリケーションオブジェクト並びに前記新たなロジックを含むアップグレードパッケージをダウンロードするネットワークインタフェースを更に含む、
請求項１０記載のサーバ。
【請求項１２】
置き換えサービス及びアプリケーションオブジェクト及び前記新たなロジックを含むアップグレードパッケージを記憶する記憶媒体を更に含む、
請求項１０記載のサーバ。
【請求項１３】
サービスオブジェクト及びオブジェクトマネージャを含むオブジェクト環境のランタイム環境と、前記オブジェクトマネージャは、新たなオブジェクトの機能及びプロパティを識別し、メモリにおけるサービスオブジェクトとして前記新たなオブジェクトのインスタンスを作成し、前記新たなオブジェクトが前記オブジェクト指向のランタイム環境における古いオブジェクトを置き換えるかを判定し、前記オブジェクト指向のランタイム環境における前記新たなオブジェクトと他のオブジェクトとの間の新たな論理結合を確立し、前記新たなオブジェクトと前記他のオブジェクトとの間の前記新たな論理結合の確立に応答して、前記古いオブジェクトを前記新たなオブジェクトと置き換え、
２以上の独立にプログラム可能な区分を有する区分可能であってプログラム可能なロジックデバイスと、それぞれの区分は、アクティブ状態と非アクティブ状態との間で切り替え可能であり、前記非アクティブ状態における区分は、アップグレードを開始するための命令の検出に応答して前記区分可能であってプログラム可能なロジックで作成され、
入力データ経路と、
出力データ経路とを有し、
前記アクティブ状態における区分は、前記オブジェクト指向のランタイム環境で、前記入力データ経路に到達したデジタルメディアを処理し、処理されたデジタルメディアを前記出力データ経路に供給し、前記非アクティブ状態における区分は、前記オブジェクト指向のランタイム環境における実行のために新たなロジックでプログラムされる、
ことを特徴とするデジタルメディアサービス。
【請求項１４】
置き換えサービス及びアプリケーションオブジェクト並びに前記新たなロジックを含むアップグレードパッケージをダウンロードするネットワークインタフェースを更に含む、
請求項１３記載のサーバ。
【請求項１５】
置き換えサービス及びアプリケーションオブジェクト及び前記新たなロジックを含むアップグレードパッケージを記憶する記憶媒体を更に含む、
請求項１３記載のサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ディジタル・メディア・サーバの分野に関する。
【背景技術】
【０００２】
ウェブ系サーバやビデオ・オン・デマンド・サーバのようなディジタル・メディア・サーバは、多数の機能コンポーネントを含むのが通例であり、ディジタル・メディアを格納し、このようなメディアをファイル・フォーマットからワイヤ・フォーマットに変換し、メディア・パケットの配信をスケジューリングするためのコンポーネントを含む。動作の間、メディア・サーバは、顧客または管理者から着信するコンテンツ要求を受け付け、メディア・パケットを顧客にネットワークを通じて配信する。
【０００３】
殆どのディジタル・メディア・サーバは、ＰＣを基礎としたアーキテクチャを採用し、種々のソフトウェア・コンポーネントを実行して前述の機能を設ける。このようなソフトウェア・コンポーネントの設計中には、これらが完全にデバッグされ、欠陥がないことを確証するために、多大な労力が費やされる。しかしながら、実際には、設計フェーズでは多くの欠陥が発見されず、ソフトウェアを実際の動作に投入してからでないと露見しない。
【０００４】
システムの運用中に発見される欠陥は、多くの場合、ソフトウェアのアップグレードを行うことによって訂正する。また、ソフトウェア・アップグレードは、サーバ機能を補足または改良し、サーバの寿命を延ばすために時として行われることもある。
【０００５】
実行中のソフトウェア・コンポーネントをアップグレードするには、そのコンポーネントを停止し、置換えバージョンをメモリにロードし実行しなければならない。この期間中、このコンポーネントが通常提供するサービスは、利用できなくなる。
【０００６】
メディア・サーバのオペレーティング・システムにおける欠陥の場合、その結末は更に一層厳しい場合もある。オペレーティング・システムは、通例、ファイル、メモリ記憶、入出力ストリーム、セマフォー、プロセス、および他のプログラムへのスレッドのような抽象的データ構造を供給する多数の密接に結合されているモジュール全体を通じて設計されている。アプリケーション・プログラムは、アプリケーション・プログラミング・インターフェース（ＡＰＩ）を通じてこれらの抽象的構造にアクセスする。これらの構造の１つを変更すると、他の構造またはモジュールにおいて副作用が生ずる場合があり得る。一般に、オペレーティング・システムのレベルでコンポーネントを置き換えるには、オペレーティング・システム全体をロードし直す必要があり、サーバの再ブートの間に行われる。このため、オペレーティング・システム・レベルのリソースは、メディア・サーバをオフラインにしないと、アップグレードすることができず、再ブートにはかなり大量の時間を要する可能性があり、その後でないとこれらのサービスを復元することはできない。
【０００７】
オフライン・サーバは、着信する要求を受け入れることも、コンテンツを既存のセッションに配信することもできない。したがって、オフライン・サーバは、しかるべき冗長サーバが利用できなければ、サービス・ネットワーク全体の可用性に影響を及ぼす虞れがある。
【０００８】
図１は、典型的なアップグレード・プロセス、およびそのネットワーク可用性に対する影響を示す。図１に示すように、ステップ１０５において、アップグレードを開始する。次に、ステップ１１０において、アップグレード・パッケージを検出する。アップグレード・パッケージをダウンロードすることができない場合、アップグレード・プロセスは終了する（ステップ１９０）。
【０００９】
アップグレードをインストールすることができるようになる前に、アップグレード前管理ステップ群１２０を実行する。即ち、ステップ１２５において、ユーザ・セッションを間引き（ｔｈｉｎ）するか、または影響を受けないマシンに転送する。次に、ステップ１２７において、アップグレードするソフトウェアによる影響が及ぶサービスを切断する。
【００１０】
次に、アップグレード・プロセス・ステップ群１４０を実行する。即ち、ステップ１４５において、システムの設定および特性をコピーするか、または修正する。ステップ１４７において、アップグレード・パッケージから新たなコンポーネントをコピーする。メディア・サーバの中には、それが動作している間に、サーバ内へのローカルまたはリモート・データ転送を可能にするものもあるが、アップグレードを遂行するには何らかのサービスの途絶を伴うのが通例であり、殆どの場合、最初にサーバをオフラインにしなければならない。
【００１１】
次に、アップグレード後プロセス・ステップ群１６０を実行する。即ち、ステップ１６５において、メディア・サーバの電源をオフにし次いでオンに戻す（サーバをオフラインにした場合）動作を一巡し、アップグレード・ソフトウェアが提供するサービスを再開する。１回の電源サイクルは、いずれの場合でも、数秒から数分かかることがある。１回の電源サイクルに要する時間量は、給電停止前に実行中のアプリケーションを順番に停止するためにサーバが必要とする時間、および電源を再度オンにした後にサーバを再ブートし、アプリケーションを復元するために必要な時間の和によって決まる。これらのイベントを完了した後、サーバはようやく新たなユーザ・セッションを受け入れ始めることが可能となる（ステップ１６７）。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
前述のプロセスは、特に、全てのシステムＡＰＩおよび低レベル・ドライバのアップグレードというような、システム全体に及ぶアップグレードの場合、システムの動作に重大な影響を及ぼす虞れがある。典型的なディジタル・メディア会社では、このようなアップグレードによって、数十台のオンライン・メディア・サーバが影響を受ける可能性がある。会社は、サーバの使用がその最低点にあるときに、アップグレードのための時間を選択すればよいのだが、メディア・サーバの停止を必要とする場合、アップグレードはなおもある程度サービスを途絶させる虞れがある。少なくとも、会社は休止時間の間収益の損失を被り、顧客を不満にする危険を犯すことになり得る。
【００１３】
このようなサービスの途絶を避けるために、多くの場合、会社は余分なサーバ容量即ち冗長システムを維持しており、アップグレードの間影響を受けるサーバからトラフィックを遠ざけるように処理する。しかし、冗長システムは、固定費の増大を招き、多くの場合不可能である。
【課題を解決するための手段】
【００１４】
メディア配信サービスを途絶させることなく、ディジタル・メディア・サーバのハードウェアおよびソフトウェア・コンポーネント双方をアップグレードするシステムおよび方法を開示する。好適な実施形態では、本システムおよび方法は、オペレーティング・システムおよびアプリケーション双方のレベルでのソフトウェア・アップグレードをインストールしつつ、システム・サーバを完全に活動状態のままにさせておくオブジェクト指向モデルを採用する。加えて、本システムおよび方法は、冗長または区分可能なプログラム可能ロジック・デバイスを用い、メディア配信サービスを途絶させることなく、ファームウェアのアップグレードを実行する。
【００１５】
１つの形態において、本発明は、ディジタル・メディア・サーバをアップグレードする方法を対象としており、新たなオブジェクトを含むアップグレード・パッケージの存在をチェックするステップと、アップグレード・パッケージにおいて新オブジェクトを識別するステップと、新オブジェクトの機能およびプロパティを識別するステップと、新オブジェクトの互換性を評価するステップと、新たなオブジェクトをアプリケーション・オブジェクトまたはサービス・オブジェクトとしてインスタンス化するステップと、新オブジェクトが旧オブジェクトと置き換わるか否か判定を行うステップと、新オブジェクトが旧オブジェクトと置き換わる場合、旧オブジェクトを置き換えるステップとを備えている。
【００１６】
本発明の別の形態では、置き換えるステップは、更に、旧オブジェクトおよび新オブジェクトをロックするステップと、旧オブジェクトから新オブジェクトにフィールドをコピーするステップと、新オブジェクトから旧オブジェクトに依存するオブジェクトへのリンクを確立するステップと、他のオブジェクトから旧オブジェクトへのリンクを、新オブジェクトに経路変更するステップと、新オブジェクトのロックを解除するステップと、旧オブジェクトを除去するステップとを含む。
【００１７】
本発明の別の形態では、除去するステップは、旧オブジェクトを保存することを含む。  
本発明の別の形態では、除去するステップは、旧オブジェクトをパージすることを含む。
【００１８】
本発明の別の形態では、アップグレード・パッケージは、更に、旧オブジェクトのための１つ以上の新メソッドを含み、本方法は、更に、１つ以上の新メソッドを識別するステップと、１つ以上の新メソッドの互換性を評価するステップと、新メソッドが旧メソッドと置き換わるか否か判定を行うステップと、新メソッドが旧メソッドと置き換わる場合、旧メソッドを遮断し置き換えるステップとを含む。
【００１９】
本発明の別の形態では、旧メソッドはインターフェースである。  
本発明の別の形態では、本方法は、更に、ネットワーク供給源からアップグレード・パッケージをダウンロードするステップを含む。  
本発明の別の形態では、本方法は、更に、記憶媒体からアップグレード・パッケージをロードするステップを含む。
【００２０】
別の形態では、本発明は、第１活動区画および第２非活動区画を有する区分可能なプログラム可能ロジック・デバイスを有するディジタル・メディア・サーバをアップグレードする方法を対象としており、第２区画を新たなロジックでプログラムするステップと、第２区画を非活動状態から活動状態に移行させ、同時に第１区画からのデータ処理機能を受け継ぐステップと、第１区画を非活動状態に移行させるステップとを備えている。  
本発明の別の形態では、本方法は、更に、新たなロジックで第１区画をプログラムするステップを含む。
【００２１】
別の形態において、本発明は、２つ以上の冗長なプログラム可能ロジック・デバイスを有し、その各々が活動状態および非活動状態を有するディジタル・メディア・サーバをアップグレードする方法を対象とし、活動状態にある第１組のプログラム可能ロジック・デバイスを判定するステップと、非活動状態にある第２組の１つ以上のロジック・デバイスに新たなロジックをロードするステップと、第２組のデバイスを活動状態に移行させ、同時に第１組のデバイスからのデータ処理機能を受け継ぐステップと、第１組のデバイスを非活動状態に移行させるステップとを備えている。  
本発明の別の形態では、本方法は、更に、新たなロジックを第１組のデバイスにロードするステップを含む。
【００２２】
別の形態では、本発明は、汎用コンピュータとハードウェア・エンジンとを備えているディジタル・メディア・サーバ上においてアップグレードをインストールする方法を対象とし、コンピュータはオブジェクト指向ランタイム環境を備えており、ハードウェア・エンジンは、第１活動区画と第２非活動区画とを有するプログラム可能ロジック・デバイスを備えている。この方法は、新オブジェクトおよび新ロジックを備えているアップグレード・パッケージの存在をチェックするステップと、アップグレード・パッケージにおいて新オブジェクトを識別するステップと、新オブジェクトの機能およびプロパティを識別するステップと、新オブジェクトの互換性を評価するステップと、新オブジェクトを、アプリケーション・オブジェクトまたはサービス・オブジェクトとしてインスタンス化するステップと、新オブジェクトが旧オブジェクトと置き換わるか否か判定を行うステップと、新オブジェクトが旧オブジェクトと置き換わる場合、旧オブジェクトを置き換えるステップと、アップグレード・パッケージにおいて新ロジックを識別するステップと、新ロジックを用いて、第２非活動区画をプログラムするステップと、第２区画を非活動状態から活動状態に移行させ、同時に第１活動区画からデータ処理機能を受け継ぐステップと、第１区画を非活動状態に移行させるステップとを備えている。
【００２３】
本発明の別の形態では、置き換えるステップは、更に、旧オブジェクトおよび新オブジェクトをロックするステップと、旧オブジェクトから新オブジェクトにフィールドをコピーするステップと、新オブジェクトから旧オブジェクトに依存するオブジェクトへのリンクを確立するステップと、他のオブジェクトから旧オブジェクトへのリンクを、新オブジェクトに経路変更するステップと、新オブジェクトのロックを解除するステップと、旧オブジェクトを除去するステップとを含む。
【００２４】
別の形態において、本発明は、汎用コンピュータとハードウェア・エンジンとを備えているディジタル・メディア・サーバ上においてアップグレードをインストールする方法を対象とし、コンピュータはオブジェクト指向ランタイム環境を備えており、ハードウェア・エンジンは、各々第１活動区画と第２非活動区画とを有する２つ以上のプログラム可能ロジック・デバイスを備えている。この方法は、新オブジェクトおよび新ロジックを備えているアップグレード・パッケージの存在をチェックするステップと、アップグレード・パッケージにおいて新オブジェクトを識別するステップと、新オブジェクトの機能およびプロパティを識別するステップと、新オブジェクトの互換性を評価するステップと、新オブジェクトを、アプリケーション・オブジェクトまたはサービス・オブジェクトとしてインスタンス化するステップと、新オブジェクトが旧オブジェクトと置き換わるか否か判定を行うステップと、新オブジェクトが旧オブジェクトと置き換わる場合、旧オブジェクトを置き換えるステップと、アップグレード・パッケージにおいて新ロジックを識別するステップと、活動状態にある第１組のプログラム可能ロジック・デバイスを判定するステップと、非活動状態にある第２組の１つ以上のロジック・デバイスに新ロジックをプログラムするステップと、第２軸のデバイスを活動状態に移行させ、同時に第１組のデバイスからデータ処理機能を受け継ぐステップと、第１組のデバイスを非活動状態に移行させるステップとを備えている。
【００２５】
本発明の別の形態では、置き換えるステップは、更に、旧オブジェクトおよび新オブジェクトをロックするステップと、旧オブジェクトから新オブジェクトにフィールドをコピーするステップと、新オブジェクトから旧オブジェクトに依存するオブジェクトへのリンクを確立するステップと、他のオブジェクトから旧オブジェクトへのリンクを、新オブジェクトに経路変更するステップと、新オブジェクトのロックを解除するステップと、旧オブジェクトを除去するステップとを含む。
【００２６】
本発明の別の形態では、アップグレード・パッケージは、更に、旧オブジェクトのために１つ以上の新メソッドを含み、方法は、更に、１つ以上の新メソッドを識別するステップと、１つ以上の新メソッドの互換性を評価するステップと、新メソッドが旧メソッドと置き換わるか否か判定を行うステップと、新メソッドが旧メソッドと置き換わる場合、旧メソッドを遮断し置き換えるステップとを含む。  
本発明の別の形態では、旧メソッドはインターフェースである。
【００２７】
別の形態では、本発明はディジタル・メディア・サーバを対象とし、オブジェクト記憶部と、オブジェクト指向、ランタイム環境とを備えており、このランタイム環境が、サービス・オブジェクトと、アプリケーション・オブジェクトと、サービスおよびアプリケーション・オブジェクトが供給するデータ処理機能を途絶させることなく、サービス・オブジェクトおよびアプリケーション・オブジェクトの置換えを容易にするように構成されたオブジェクト・マネージャとを備えている。
【００２８】
本発明の別の形態では、サーバは、更に、置換えサービスおよびアプリケーション・オブジェクトを備えているアップグレード・パッケージをダウンロードするネットワーク・インターフェースを備えている。
【００２９】
本発明の別の形態では、サーバは、更に、置換えサービスおよびアプリケーション・オブジェクトを備えているアップグレード・パッケージを格納する記憶媒体を備えている。
【００３０】
別の形態では、本発明はディジタル・メディア・サーバを対象とし、各々活動状態と非活動状態との間で切り換え可能な、２つ以上のプログラム可能ロジック・デバイスと、入力データ経路と、出力データ経路とを備えており、非活動状態にある１つ以上のプログラム可能ロジック・デバイスをプログラムしている間、活動状態にある１つ以上のプログラム可能ロジック・デバイスは、入力データ経路上に到達するディジタル・メディアを処理し、処理したディジタル・メディアを出力データ経路に送出する。
【００３１】
別の形態では、本発明はディジタル・メディア・サーバを対象とし、２つ以上の独立してプログラム可能な区画を有し、各区画が活動状態と非活動状態との間で切り換えることができる、区分可能なプログラム可能ロジック・デバイスと、入力経路と、出力経路とを備えており、非活動状態にある１つ以上の区画をプログラムしている間、活動状態にある１つ以上の区画が、入力データ経路上に到達するディジタル・メディアを処理し、処理したディジタル・メディアを出力データ経路に送出する。
【００３２】
別の形態では、本発明は、ディジタル・メディア・サーバを対象とし、オブジェクト記憶部と、オブジェクト指向、ランタイム環境であって、サービス・オブジェクトと、アプリケーション・オブジェクトと、サービスおよびアプリケーション・オブジェクトが供給するデータ処理機能を途絶させることなく、サービス・オブジェクトおよびアプリケーション・オブジェクトの置換えを容易にするように構成されたオブジェクト・マネージャとを備えている、オブジェクト指向、ランタイム環境と、各々活動状態と非活動状態との間で切り換え可能な、２つ以上のプログラム可能ロジック・デバイスと、入力データ経路と、出力データ経路とを備えており、新ロジックを用いて非活動状態にある１つ以上のプログラム可能ロジック・デバイスをプログラムしている間、活動状態にある１つ以上のプログラム可能ロジック・デバイスは、入力データ経路上に到達するディジタル・メディアを処理し、処理したディジタル・メディアを出力データ経路に送出する。
【００３３】
別の形態では、本発明は、ディジタル・メディア・サーバを対象とし、オブジェクト記憶部と、オブジェクト指向、ランタイム環境であって、サービス・オブジェクトと、アプリケーション・オブジェクトと、サービスおよびアプリケーション・オブジェクトが供給するデータ処理機能を途絶させることなく、サービス・オブジェクトおよびアプリケーション・オブジェクトの置換えを容易にするように構成されたオブジェクト・マネージャとを備えている、オブジェクト指向、ランタイム環境と、２つ以上の独立してプログラム可能な区画を有し、各区画が活動状態と非活動状態との間で切り換えることができる、区分可能なプログラム可能ロジック・デバイスと、入力経路と、出力経路とを備えており、新ロジックを用いて非活動状態にある１つ以上の区画をプログラムしている間、活動状態にある１つ以上の区画が、入力データ経路上に到達するディジタル・メディアを処理し、処理したディジタル・メディアを出力データ経路に送出する。
【図面の簡単な説明】
【００３４】
【図１】図１は、従来技術によるアップグレード・プロセスを示すフロー図である。
【図２】図２は、ディジタル・メディア・サーバの好適な実施形態を示すブロック図である。
【図３】図３は、ディジタル・メディア・サーバ・ストリーミング・プロセスの好適な実施形態を示すフロー図である。
【図４Ａ】図４Ａは、オブジェクトの実施形態例である。
【図４Ｂ】図４Ｂは、本発明の一実施形態における汎用計算機の好適な実施形態を示すブロック図である。
【図５】図５は、アップグレード・プロセスを実行するための、好適な実施形態におけるステップを示すフロー図である。
【図６】図６は、オブジェクトの置換えを展開するための、好適な実施形態におけるステップを示すフロー図である。
【図７Ａ】図７Ａは、区分可能な再プログラム可能ロジック・デバイスを有する、ディジタル・メディア配信パイプラインの好適な実施形態を示すブロック図である。
【図７Ｂ】図７Ｂは、冗長な再プログラム可能デバイスを有する、ディジタル・メディア配信パイプラインの好適な実施形態を示すブロック図である。
【図８】図８は、区分可能な再プログラム可能ロジック・デバイスを有する、ハードウェア・エンジンのファームウェア・アップグレードを実行するための好適な実施形態を示すフロー図である。
【図９】図９は、冗長な再プログラム可能ロジック・デバイスを有するハードウェア・エンジンのファームウェア・アップグレードを実行するための好適な実施形態を示すフロー図である。
【発明を実施するための形態】
【００３５】
例示の目的上、そして本発明の理解を促進するために、以下に記載する好適な実施形態は、特定的なディジタル・メディア・サーバに関連付けて説明することとする。
【００３６】
図２に示すように、これらの好適な実施形態のディジタル・メディア・サーバ２００は、ハードウェア・エンジン２２０、汎用コンピュータ２４０、および記憶装置２１０を備えていることが好ましい。ハードウェア・エンジン２２０は、メディア・バッファ２２５、１つ以上のプログラム可能なロジック・デバイス（ＰＬＤ）２２７、およびネットワーク・インターフェース２３０を備えていることが好ましい。以下で詳しく説明するが、好適な実施形態では、ハードウェア・エンジン２２０は、区分可能なＰＬＤまたは冗長ＰＬＤを備えており、サービスの途絶なくメディア・サーバのアップグレードを容易に行うことができる。
【００３７】
汎用コンピュータ２４０は、好ましくは、オブジェクト指向ランタイム環境２５０、オペレーティング・システム２６０、およびハードウェア・インターフェース２７０を備えている。バス２８０が、ハードウェア・エンジン２２０、汎用コンピュータ２４０、およびストレージ２１０間にデータ通信経路を設ける。
【００３８】
ハードウェア・エンジン２２０は、記憶装置２１０上に格納されているデータからワイヤ・データ・パケットを発生し、これらをディジタル・ネットワークを通じて顧客に送るように構成されていることが好ましい。好適な実施形態では、汎用計算機２４０の制御下において、記憶装置２１０からメディア・バッファ２２５にデータをコピーする。汎用計算機２４０およびハードウェア・エンジン２２０を備えた、好ましいアーキテクチャが、２００３年２月１９日に出願され「混成ストリーミング・プラットフォーム」（Ｈｙｂｒｉｄ  Ｓｔｒｅａｍｉｎｇ  Ｐｌａｔｆｏｒｍ）と題する米国特許出願第１０／３６９，３０５号（Ｐｅｎｎｉｅ  ＆  Ｅｄｍｏｎｄｓ  ＬＬＰ整理番号第１１０５５−００５−９９９によって識別される）に記載されており、ここで引用したことにより、その教示および実施形態の各々についてその全体が本願にも含まれるものとする。
【００３９】
ＰＬＤ２２７は、メディア・バッファ２２５内にコピーしたデータを、ファイル・フォーマットからワイヤ・フォーマットに変換するように構成されていることが好ましい。ネットワーク・インターフェース２３０によって、完全なデータ・パケットをネットワーク上に送出する。これらのステップを実現するのに好ましいシステムおよび方法が、２００３年２月１９日に出願され「柔軟なストリーミング・ハードウェア」（Ｆｌｅｘｉｂｌｅ  Ｓｔｒｅａｍｉｎｇ  Ｈａｒｄｗａｒｅ）と題する米国特許出願第１０／３６９，３０６号（Ｐｅｎｎｉｅ  ＆  Ｅｄｍｏｎｄｓ  ＬＬＰ整理番号第１１０５５−００６−９９９によって識別される）に記載されており、その教示および実施形態の各々についてその全体が、ここで引用したことにより本願にも含まれるものとする。
【００４０】
ディジタル・メディア・サーバ２００が実現するストリーミング・プロセスの好適な実施形態を図３に示す。図３に示すように、ステップ３１０において、汎用計算機２４０からの命令に応じて、メディア・データのブロックを記憶装置２１０から読み出し、直接メディア・バッファ２２５にコピーする。ステップ３２０において、ハードウェア・エンジン２２０は、メディア・バッファ２２４に格納されているブロックからメディア・データを再度組み立てる。
【００４１】
ステップ３３０において、ハードウェア・エンジン２２０は、メディア・バッファ２２５から読み出しながら、データ・パケットを発生する。ステップ３４０において、ハードウェア・エンジン２２０は、新しく発生したデータ・パケットをネットワーク・インターフェース２３０に転送し、一方ネットワーク・インターフェース２３０は、パケットをディジタル・ネットワークに書き込む。記したように、このプロセス、およびそれを実現するためのプラットフォームが、２００３年２月１９日に出願され「柔軟なストリーミング・ハードウェア」（Ｆｌｅｘｉｂｌｅ  Ｓｔｒｅａｍｉｎｇ  Ｈａｒｄｗａｒｅ）と題する米国特許出願第１０／３６９，３０６号（Ｐｅｎｎｉｅ  ＆  Ｅｄｍｏｎｄｓ  ＬＬＰ整理番号第１１０５５−００６−９９９によって識別される）、および２００３年２月１９日に出願され「混成ストリーミング・プラットフォーム」（Ｈｙｂｒｉｄ  Ｓｔｒｅａｍｉｎｇ  Ｐｌａｔｆｏｒｍ）と題する米国特許出願第１０／３６９，３０５号（Ｐｅｎｎｉｅ  ＆  Ｅｄｍｏｎｄｓ  ＬＬＰ整理番号第１１０５５−００５−９９９によって識別される）に記載されており、双方は、その教示および実施形態の各々についてその全体が、ここで引用したことにより本願にも含まれるものとする。
【００４２】
好適な実施形態では、汎用計算機２４０は、所望のストリーミング・ソリューション（ｓｔｒｅａｍｉｎｇ  ｓｏｌｕｔｉｏｎ）またはその他のタスクのいずれでも遂行するプログラムを含む、オブジェクト指向ソフトウェア・プログラムを実行するように構成されている、ランタイム環境２５０をインストールしてあることが好ましい。このようなタスクには、セッション設定、ストリーミング・セッションの管理および分解、ならびにエラー処理を含むことができる。好適な実施形態では、これらのプログラムは、オブジェクト指向プログラムとして設計されている。
【００４３】
図４Ａは、好適な実施形態におけるオブジェクト４１０の組成を示す。図４Ａに示すように、オブジェクト４１０は、フィールド４１２、メソッド４１５、およびダイナミック・リファレンス（ｄｙｎａｍｉｃ  ｒｅｆｅｒｅｎｃｅ）４１８を備えていることが好ましい。フィールド４１２は、オブジェクト４１０内部のデータを格納し、プロパティ４１４として知られており、他のプログラムがアクセスすることができるデータ、および他のオブジェクトからは隠されているデータから成る。フィールド４１２は、オブジェクト４１０の現状態を表す。
【００４４】
メソッド４１５は、フィールド４１２内のデータを処理するために用いることができる手順または関数である。他のオブジェクトが双方向処理するためにコールすることができるオブジェクトのメソッドは、インターフェース４１７として知られている。
【００４５】
ダイナミック・リファレンス４１８は、オブジェクト４１０間の制御およびデータ・フロー経路を表す。オブジェクトのリファレンス４１８は、ランタイム以前に定義する必要はなく、ランタイム環境２５０においてオブジェクト４１０を作成した後であっても、変更することができる。
【００４６】
図４Ｂは、ランタイム環境２５０を更に詳細に示す。環境２５０は、アプリケーション４２０、サービス４３０、およびオブジェクト・マネージャ４４０を備えていることが好ましい。アプリケーション４２０は、あるタスクを実行するように設計されたオブジェクトの集合である。オブジェクト間のダイナミック・リファレンス４１８は、図４Ｂでは両頭矢印として図示されている。サービス４３０は、アプリケーション・オブジェクト、汎用コンピュータ２４０のオペレーティング・システム（ＯＳ）２６０、およびハードウェア・インターフェース２７０間にインターフェースを設けるように設計されたオブジェクトの集合である。
【００４７】
オブジェクト・マネージャ４４０は、アプリケーション４２０およびサービス４３０内に含まれる全てのオブジェクト４１０の状態を維持することを責務とすることが好ましい。好適な実施形態では、オブジェクト・マネージャ４４０は、オブジェクト４１０の妥当性を判断し、これらのオブジェクトが適正に形成されており、これらをランタイム環境２５０にロードする前に破損（ｃｏｒｒｕｐｔ）していないことの確証を得る。また、オブジェクト・マネージャ４４０は、オブジェクトを列挙し、これらを評価して、オブジェクト・マネージャ４４０、環境２５０全体、およびその他のオブジェクト４１０との互換性について確証を得る。
【００４８】
ランタイム環境２５０は、汎用コンピュータ２４０のオペレーティング・システム２６０によって設けられる設備（ｆａｃｉｌｉｔｉｅｓ）上に構築することが好ましい。アプリケーション・オブジェクトは、オペレーティング・システム２６０を通じてサービス４３０と双方向処理することによって、ハードウェア２７０に間接的にアクセスすることができる。オペレーティング・システム２６０は、オブジェクト指向コンポーネントを用いて実現すればよいことを、当業者は認めよう。このようなオペレーティング・システムは、ランタイム環境２５０内に位置し、サービス４３０の延長として動作することができる。したがって、実際には、ランタイム環境２５０は、オペレーティング・システム２６０と融合されているものとして見ることができる。これによって、オペレーティング・システムが提供する機能を中断させることなく、オペレーティング・システムをアップグレードすることが可能となる。これについては、以下で説明する。
【００４９】
ハードウェア２７０は、ランタイム環境およびデータ・ストレージ２１０内にあるオブジェクトとインターフェースするために入出力カード２７２、２７４を含むことが好ましい。
【００５０】
データ・ストレージ２１０は、好ましくは、パッケージ４９０として識別されるオブジェクトまたはオブジェクトの集合についての定義を収容する格納場所である。このようなパッケージは、オブジェクトの集合の配信（ｄｅｌｉｖｅｒｙ）を一層便利にするように組み立てられるのが通例である。
【００５１】
アップグレード・プロセス 
汎用コンピュータ２４０上で実行するオブジェクト指向ソフトウェアをアップグレードするための好適な実施形態について、図５に関連付けて説明する。図５に示すように、ステップ５０５において、システム管理者は、アップグレード・セッションを開始する。ステップ５１０において、オブジェクト・マネージャ４４０は、オブジェクト・パッケージ４９０（アップグレードしたオブジェクトを収容している）がデータ・ストア２１０内に存在するか否か判定を行う。アップグレード・パッケージが利用可能な場合、ステップ５２０においてランタイム拡張可能アップグレード（ｒｕｎｔｉｍｅ  ｅｘｔｅｎｓｉｂｌｅ  ｕｐｇｒａｄｅ）を実行する。
【００５２】
ランタイム拡張可能アップグレード（ステップ５２０）を実行する前に、オブジェクト・マネージャ４４０は環境２５０において、オブジェクトの現在のインスタンス全ての状態を継続的に追跡する。これには、他のオブジェクトに対するそのダイナミック・リファレンス４１８が含まれる。ステップ５３０において、オブジェクト・マネージャ４４０は、アップグレード・パッケージ４９０内に新たなオブジェクトがあれば、そのいずれをも識別し、そうした場合、これらが適正に形成され、破損していないことを確認する。ステップ５３５において、パッケージ４９０内にある各オブジェクト、ならびにオブジェクトの対応するインターフェースおよびプロパティを列挙する。この列挙プロセスの間、オブジェクト・マネージャ４４０は、どのようにこれらのオブジェクトが他のオブジェクトと双方向処理するか決定する。次に、ステップ５４０において、各オブジェクトについて、それをコールする可能性がある他のオブジェクトとの互換性を評価する。また、オブジェクトのバージョンをチェックし、それがオブジェクト・マネージャ４４０および環境２５０、ならびにその他の双方向処理するオブジェクトと互換性があることの確証を得ることが好ましい。
【００５３】
ステップ５５０において、オブジェクト・マネージャ４４０は、環境２５０の該当するエリアに、新たなオブジェクトのインスタンスを作成する。また、オブジェクト・マネージャ４４０は、新たなオブジェクトと既存のサービス４３０またはアプリケーション４２０との間で論理的接続を確立する。
【００５４】
既存のオブジェクトが提供していた機能と完全にまたは部分的に入れ代わる新たなオブジェクトに関して、オブジェクト・マネージャ４４０は、置き換える既存のオブジェクトから、インストールする新たなオブジェクトまで、規則正しい移行を指揮するように構成されていることが好ましい。このプロセスを、ここではステージング（ｓｔａｇｉｎｇ）と呼び、図６に関連付けて以下で更に詳しく説明する。ステップ５６０において、オブジェクト・マネージャ４４０は、フィールド４１２を既存のオブジェクトからそれらに対応する置換えオブジェクトにコピーする。次に、ステップ５７０において、新たなダイナミック・リファレンス４１８を、ライン上に残留する既存のオブジェクトとあらゆる新たなオブジェクトとの間に確立する。ステップ５７５において、既存のダイナミック・リファレンス４１８から新たなオブジェクトまでの経路を定め直す。これによって、既存のオブジェクトから新たなオブジェクトまで、オブジェクト・リファレンス４１８の規則正しい経路再決定が可能となる。
【００５５】
ステップ５８０において、もはや実際に使用されないオブジェクト４１０は、オブジェクト・マネージャ４４０によって環境２５０から永久にパージするか、あるいは後に読み出す可能性があるのであれば、ストレージ２１０に保存しておく。
【００５６】
アップグレードは、既存のオブジェクトの部分的な置換えまたは完全な置換えを含む可能性があるので、置き換えるオブジェクトが提供するサービスまたは機能が一時的に中断する潜在性がある。好適な実施形態では、本システムおよび方法は、この問題に取り組むにあたって、新たなオブジェクトの置換えを段階的に行うことによって、既存のオブジェクトを置き換える際のサービスの途絶を回避する。更に具体的には、ステージングによって、オブジェクト・マネージャ４４０はアップグレードの間に、活動状態にあるデータ伝達経路を既存のオブジェクトから新たなオブジェクトに移転することができ、これらのデータ伝達経路を途絶させたり終端させることはない。
【００５７】
ステージング・プロセスの一例を図６に示す。図６の状況例において、アップグレードの一部として、オブジェクトＡをオブジェクトＢと置き換えている。ステップ６１０において、オブジェクト・マネージャ４４０は、オブジェクトＢのメソッドおよびプロパティが、オブジェクトＡが参照する上流側オブジェクトと互換性があることを検証する。これら上流側オブジェクトとは、オブジェクトＡにデータまたはサービスを提供するオブジェクトのことである。ステップ６１５において、オブジェクト・マネージャ４４０は、オブジェクトＢのメソッドおよびプロパティが、オブジェクトＡを参照する下流側オブジェクトと互換性があることを検証する。これら下流側オブジェクトとは、オブジェクトＡからのサービスを要求する、またはデータを受け取るオブジェクトのことである。一旦これらの検証が完了したなら、オブジェクト・マネージャ４４０は環境２５０内にオブジェクトＢのインスタンスを作成する。
【００５８】
次に、ステップ６２５において、オブジェクト・マネージャ４４０は、環境２５０においてオブジェクトＡおよびオブジェクトＢをロックする。ロックすることにより、オブジェクトＡからオブジェクトＢへの移行中に、いずれのオブジェクトのフィールド４１２も変化することを防止し、オブジェクト・マネージャ４４０に、これらのオブジェクトに対する排他的なアクセスを与える。
【００５９】
ステップ６３０においてオブジェクトをロックしている間に、オブジェクト・マネージャ４４０は、オブジェクトＡ内にあるフィールドの値をオブジェクトＢにコピーする。次いで、ステップ６３５において、上流側オブジェクトに対するリファレンス４１８をオブジェクトＡからオブジェクトＢにコピーする。同様に、ステップ６４０において、下流側オブジェクト内にあるオブジェクトＡに対するリファレンスを、オブジェクトＢにリダレクトする。ステップ６４５において、オブジェクト・マネージャ４４０によってオブジェクトＢのロックを解除し、こうして本来オブジェクトＡが提供していたサービスおよび機能を復元するが、この時点ではオブジェクトＢが提供することになり、オブジェクトＢが提供する新たなサービスおよび機能全てが利用可能となる。ステップ６５０において、オブジェクト・マネージャ４４０はオブジェクトＡをパージまたは保存し、こうしてステージング・プロセスを完了する。
【００６０】
また、ステージングは、更にきめ細かな手法を備えることもでき、その場合、オブジェクト全体を置き換えることなく、オブジェクトのメソッドを変更する。このような場合、オブジェクト全体をロックする必要はなく、代わりに、アップグレード対象のメソッドに対するアクセスを制限する。例えば、ストリーム・マネージャ・オブジェクト内に収容されているログ・ライタ・インターフェース（ｌｏｇ  ｗｒｉｔｅｒ  ｉｎｔｅｒｆａｃｅ）をアップグレードする必要があると仮定する。ストリーム・マネージャ・オブジェクトは、他のメソッドを通じて、機能を他のオブジェクトに提供し続ける。ステージング・プロセスは、ログ・ライタ・インターフェースへのオブジェクトのアクセスを遮断するが、ストリーム・マネージャ・オブジェクトをロックしない。ログ・ライタ・インターフェースのコードを置き換えた後、オブジェクトはログ・ライタ・インターフェースとの双方向処理を再開することができる。
【００６１】
ランタイム拡張可能ディジタル・メディア・サーバ
ハードウェア・エンジン２２０におけるプログラム可能ロジック・デバイス２２７は、汎用コンピュータ２４０のようにオペレーティング・システムを備えていないのが通例である。代わりに、ＰＬＤ２２７は、プログラム可能なロジックを有し、前述のように、比較的限定された１組のデータ処理タスクを効率的に遂行するように設計されている。以下に、ＰＬＤ２２７内にあるプログラム可能なロジックのアップグレード中に、メディア配信の最大能力（ｃａｐａｃｉｔｙ）を維持するための２つの好適な実施形態について説明する。
【００６２】
最初の好適な実施形態では、各ＰＬＤ２２７はデバイスの特定部分を選択的に区分し再プログラムし、他の影響を受けない部分を通常に動作するまま放置しておくことができる。２番目の好適な実施形態では、ハードウェア・エンジン２２０が冗長ＰＬＤを備えている。これらの実施形態について、図７Ａおよび図７Ｂ、ならびに図８および図９と関連付けて説明する。
【００６３】
図７Ａは、区分可能なＰＬＤの実施形態を示す。この実施形態では、ディジタル・メディア配信パイプライン７００が、データ経路７１０、および区分可能再プログラム可能ロジック・デバイス７２０を備えていることが好ましい。区分可能再プログラム可能ロジック・デバイス７２０は、複数の区画（例えば、７２２、７２４、７２６）を含み、その各々を別個に再プログラムすることができ、その間他の区画は動作し続けるようにすることが好ましい。
【００６４】
区分可能なＰＬＤ７００に対するファームウェア・アップグレード・プロセスの一例を、更に詳しく図８に示す。図８に示すように、ステップ８１０において、システム管理者がファームウェア・アップグレードを開始すると、ＰＬＤ７００内に新たな区画が作成される。次に、ステップ８２０において、新たな１組のハードウェア記述言語（ＨＤＬ）を用いてこの区画をプログラムする。ステップ８３０において、動作移転を行う。その際、この区画が、置き換えようとしている元の区画から処理機能の制御を引き受ける。更に具体的には、新たな非活動区画を活動状態に移行させ、ディジタル・メディアを流し続けるために必要な処理機能を供給する。同時に、元の区画を非活動状態に移行させる。次いで、ステップ８４０において、元の区画を再プログラムし、こうしてアップグレード・セッションを完了する。
【００６５】
図７Ｂは、冗長ロジック・デバイスの実施形態を示す。この実施形態では、ディジタル・メディア配信パイプライン７５０が、データ経路７６０、第１プログラム可能ロジック・デバイス７７０（ＰＬＤ−Ａ）、および第２プログラム可能ロジック・デバイス７８０（ＰＬＤ−Ｂ）を含むことが好ましい。非活動デバイスは、単にデータを経路７６０に通過させるだけである。
【００６６】
この冗長手法では、一方のＰＬＤを再プログラミングのために利用可能にしておくことができ、その間他方は汎用コンピュータ２４０からの要求に応答する。後に、２つのＰＬＤは、他方をアップグレードすることができるように、再度制御を置き換えることができる。このように、ディジタル・メディア配信サービスを途絶させることなく、ファームウェアのアップグレードを完了することができる。
【００６７】
冗長ＰＬＤパイプライン７５０のファームウェア・アップグレード・プロセスの一例を、図９に更に詳しく示す。図９に示すように、ステップ９１０において、システム管理者がファームウェア・アップグレードを開始すると、どのデバイス７７０、７８０が活動状態にあり、どれが非活動状態即ち通過状態にあるかについて判定を行う。図７Ｂの状況例の主旨に合わせ、ＰＬＤ−Ａ７７０が活動状態にあると仮定する。次に、ステップ９２０において、新たな１組のハードウェア記述言語（ＨＤＬ）ロジックをロードすることにより、ＰＬＤ−Ｂ７８０をアップグレードする。ステップ９３０において、動作移転を行い、ＰＬＤ−Ｂ７８０が活動状態のデバイスとなり、ＰＬＤ−Ａ７７０が非活動状態となる。次いで、ステップ９４０において、新たな１組のＨＤＬロジックによってＰＬＤ−Ａをアップグレードし、こうしてアップグレード・セッションを完了する。
【００６８】
以上、特定的な実施形態に関して本発明を説明したが、前述の説明を参考にすれば、多数の代替、修正、および変形は当業者には明白であることは明らかである。
【符号の説明】
【００６９】
２００：デジタルメディアサーバ
２１０：ストレージ
２２０：ハードウェアエンジン
２３０：ネットワークインタフェース
２４０：汎用コンピュータ
２５０：オブジェクト指向ランタイム環境
【図１】
2011065676.tif 000003
【図２】
2011065676.tif 000004
【図３】
2011065676.tif 000005
【図４Ａ】
2011065676.tif 000006
【図４Ｂ】
2011065676.tif 000007
【図５】
2011065676.tif 000008
【図６】
2011065676.tif 000009
【図７Ａ】
2011065676.tif 000010
【図７Ｂ】
2011065676.tif 000011
【図８】
2011065676.tif 000012
【図９】
2011065676.tif 000013