2011 年 11 月
Stefan Schneider 著
「Oracle Solaris Binary Compatibility Guarantee」は、パブリックで安定したプログラミングAPI を使う限り、Oracle Solaris 10 用に開発されたアプリケーションがOracle Solaris 11 上で動作することを保証しています。
|
適切に構築された Oracle Solaris 10 アプリケーションを Oracle Solaris 11 で単に動作させるだけでは、高いレベルのユーザー経験の保証としては十分ではありません。Oracle Solaris 11 は 6 年の技術の進化を取り込んでおり、次のような理由で構成の変更が必要な場合があります:
適切に実装された Oracle Solaris 10 アプリケーションであれば、この変更による影響は受けません。Oracle Solaris 10 コーディングとオペレーション基準に従わずに作成されたアプリケーションの場合は、構成の変更が必要になることがあります。
オラクルは Oracle Solaris 11 への移行を促進するために、Oracle Solaris 11 への移行を計画する際に使用できるツールセットや採用のためのガイドを提供しています。図 1 を参照してください。
図 1. 移行プロセスの概要
適切に管理された Oracle Solaris 11 への移行を確実にするために、まず、「Oracle Solaris 11 ISV用導入ガイド」を参照してください。このドキュメントは、正しく設計されなかった Oracle Solaris 10 アプリケーションによって Oracle Solaris 11 上で発生する問題の一般的なチェックリストです。このドキュメントには、Oracle Solaris 11 上で問題を起こす可能性のある既知の事例についてすべて列挙されています。
また、「 Oracle Solaris 11 End of Features (EOF) Notices page」には、Oracle Solaris 11 では対応されていない廃止されたソフトウェアフレームワークと旧型のハードウェアが一覧されています。このページは、Oracle Solaris 10 アプリケーションが Oracle Solaris 11 の潜在的な問題を特定するための補足的なチェックリストとして使用することができます。
アプリケーションは、通常多数のサブコンポーネントとサードパーティコンポーネントからなります。前の項で説明した技術資料を参照して、アプリケーションの技術的な問題を評価することができます。ただし、サードパーティのコンポーネントの評価を厳密に行うのは難しいかもしれません。
Oracle Solaris Preflight Applications Checker を使用すると、実行中の Oracle Solaris 10 アプリケーションに対する Oracle Solaris 11 の移行可能性を確認することができます。このチェッカは HTML のレポートを生成し、そのレポートは「やるべきことリスト」として使用することができます。このようなリストが手元にあると、その根底にある原因を明らかにするための初期のQAを行わずとも、レポートで示された課題を見ることで重要な QA 時間や根本原因を特定するための時間を抑えることができ、経費削減につながります。
Oracle Solaris Preflight Applications Checker には 3 つの別々のコンポーネントが装備されています。図 2 に示します。
図 2. Oracle Solaris Preflight Applications Checker のコンポーネント
Oracle Solaris のすべてのインタフェースは上位互換性を保証するようバージョン管理されており、それらは public または private でラベル付けされています。パブリックインタフェースは Oracle Solaris の最上位で実行されるアプリケーションやミドルウェア用なのに対して、プライベートインタフェースは Oracle Solaris インタフェースからのみ使用されることを意図しています。
バイナリ互換性において問題発生の原因となるのはほとんどの場合プライベートシンボルの使用によるものですが、不安定な運用環境によって引き起こされる問題もあります。不安定な環境には、Oracle Solaris 共有オブジェクトからコンパイル時のアプリケーションへの静的リンクなどが含まれます。これは Oracle Solaris インタフェースが変更されたことによることが原因と考えられます。インタフェースが進化すると、静的にリンクされた共有オブジェクトとそのほかの Oracle Solaris ライブラリとのインタラクションにもバイナリ互換性のリスクが発生します。このため互換性チェックのフェーズでは、静的リンクがオブジェクトのプロファイルに記述されている場合、互換性チェックツールはこの状態を危険であるとレポートします。さらに、特定のシンボルを調べることによって部分的な静的リンクの確認のために経験則が使われます。
バイナリスキャンの初期フェーズを実行中に、アプリケーションによって使用される、バインドされ関連付けられたすべてのシンボルが抽出されます。互換性チェックツールはユーザーが提供したアプリケーション環境変数 LD_LIBRARY_PATH を調べて、アプリケーション実行中に使用されるライブラリを確認します。この情報は、検査されるオブジェクトのパス名と、Oracle Solaris 共有ライブラリにバインドされるシンボルを確認するために解析されます。プロファイルのフェーズで使用されるもう 1 つのユーティリティーは elfdump コマンドです。このコマンドは、オブジェクトが依存する動的リンク情報をダンプします。
静的ソースコード解析モジュールを使って、C/C++ソースコード、K シェル、そのほかのシェルスクリプトの互換性の問題を確認することができます。このモジュールは主に、削除、名前変更、修正、古くなった Oracle Solaris ライブラリ関数とシェルコマンドの使用についてチェックします。
実行時アナライザモジュールを既存の Oracle Solaris 10 テスト環境で実行して、潜在的な互換性の問題のレポートを得ることができます。このモジュールのツールは DTrace を使用してプロセスの詳細を観察し、必要に応じて Oracle Solaris 10 上で使用可能なほかのシステムツールを起動することがあります。
このツールは、システムにわたるチェックから特定のプロセスのみのチェックといった異なる状況に対して、それぞれの適用範囲で実行するために構成することができます。
実行時アナライザツールは次のケースの既知の問題をレポートします:
ほとんどのアプリケーションでスキャンツールの使用による問題発生はレポートされておらず、「Oracle Solaris 11 ISV用導入ガイド」や「Oracle Solaris 11 EOF ページ」で議論されている問題に直面することはありません。したがってほとんどのアプリケーションは Oracle Solaris 11 上でそのまま動作すると考えられます。ただし旧型の古いフレームワークや API を使用している場合、いくつかのアプリケーションで問題をレポートすることがあります。このようなアプリケーションは修正する必要があります。
Oracle Solaris 11 Preflight Applications Checker と「Oracle Solaris 11 ISV用導入ガイド」は、レポートされた問題による影響を軽減する判断材料として役立ちます。たとえば、Oracle Solaris 10 から Oracle Solaris 10 ゾーンにアプリケーションを移行するためのツールとして、Oracle Solaris 11 上で Oracle Solaris 10 モードで動作するOracle p2v (物理から仮想) または v2v (仮想から仮想) を使用するように決定できます。
そのほかの情報については以下を参照してください:
Revision 1.0, 11/02/2011 |