目次
RealSystem Administrator のカスタマイズ
付録 A - Sandbox の使用 : 2 つ目の RealSystem Administrator ディレクトリを開発用に追加する
付録 B - RealSystem Administrator 開発者向けのその他のリソース
RealSystem Administrator は、RealSystem Server 8 のための Web ベースの管理用アプリケーションで、RealServer G2 および RealServer 7.0 の古いバージョンにも使用できます。このホワイト ペーパーには、RealSystem Administrator のスクリプトの詳細が記述されています。 このホワイトペーパーは、Administrator を拡張してカスタム プラグインを管理する必要のある開発者を対象としており、HTML と JavaScript について十分な知識があることを前提としています。
本書の前半では、Server 8 と RealSystem Administrator の主要なアーキテクチャ コンポーネントの概要について説明します。この中で、設定ファイルやサーバー レジストリなどが説明されています。 後半では、Administrator のファイル システム プラグイン(adminfs プラグインと呼びます)の機能の詳細について説明します。この機能を使用して、サーバー レジストリの設定データを設定および取得できます。 まとめとして、付録 A では RealSystem Administrator の拡張例について説明し、付録 B ではその他の開発者向けリソースについて紹介します。
Server 8 は、高い拡張性およびサードパーティーのソリューションとの相互運用性を実現できるアーキテクチャに基づいて設計されました。 高い拡張性を実現するには、COM ベースのプラグイン アーキテクチャを使用します。 RealSystem Software Development Kit(SDK)を使用することにより、開発者は、サーバーを監視、ロギング、フィルタリング、および拡張するためのカスタム Server 8 プラグインを作成できます。 Server 8 の設定ファイルおよびレジストリの高い拡張性と、adminfs プラグインが実現するサーバーサイドのスクリプト機能により、カスタム プラグインを簡単に管理できます。 次の図に、Server 8 と RealSystem Administrator コンポーネント間の通信フローの概要を示します。
次に、設定ファイルの例を示します。ここでは、設定ファイルの階層構造と、開発者が固有のカスタム プラグインを使用して設定ファイルに独自のセクションを自由に追加している様子が示されています。 設定ファイルに対するカスタマイズは、サーバーを再起動した後で自動的に Server 8 のレジストリに反映されます。 設定ファイルの構文と内容は、RealSystem iQ Server 8 アドミニストレーション ガイド で詳細に説明されています。このガイドは、 http://service.real.com/help/library/guides/server8/realsrvr.htm で参照できます。
サーバーのレジストリは、名前/値の組(プロパティ)のリストからなる階層構造を持ち、文字列、バッファ、整数値のデータ タイプを格納できます。 プロパティは、リストとサブリストの形に整理されています。 レジストリの各リストは、プライベートなネーム・スペースのように扱われます。つまり、プロパティとリスト名は、あるリスト内では一意である必要がありますが、別のリスト内で同じプロパティとリスト名を使用してもかまいません。
実行時は、レジストリに設定情報、サーバー統計情報、およびシステム状態が格納されます。 RealSystem Administrator Web ページは、特定のサーバーサイド JavaScript 関数と HTML タグを使用して、読み取り専用でレジストリにアクセスできます。 Web ページのフィールドに入力されたデータは、adminfs プラグインが認識する専用の URL を介してオンザフライに送信され、サーバーのレジストリまたは設定ファイル、あるいはその両方に書き込まれます。 「オンザフライ」とは、Server 8 の動作中でも変更内容が即座に反映されることを意味します。 この場合、Server 8 を再起動する必要はありません。
レジストリのリストとプロパティは、プロパティ パスで識別します。プロパティ パスでは、サブリスト間のパス区切り文字として "." を使用します。 前述した例の中の My Config Section では、この記号を使用して MyPropertyList の中の Protocol プロパティを次のように指定しています。 MyPropertyList.Protocol
このパスの記述方法は SDK のレジストリ、adminfs プラグインがサポートする JavaScript 拡張、および Administrator 専用 URL を使用する際に適用されます。 パス区切り文字として "." を使用するので、リスト名には "." を使用できません。また、プロパティ名は大文字と小文字が区別されます。 主要レジストリ リスト
サーバー レジストリは、複数の主要なサブリストに分割されます。詳細を次の表に示します。 考え方として、サーバー レジストリと Windows のシステム レジストリは関連していないことを理解することは重要です。このサーバー レジストリは、Server 8 特有のものです。
例 : "config.PNAPort"
例 : "configdefaults.PNAPort"
例 : "license.License0.General.ClientConnections"
現在実行中の Administrator ページの HTTP ヘッダーを反映します。 例 : "headers.User-Agent"
server
さまざまなシステム状態情報を反映します。 例 : "server.version"
RealSystem iQ Server 8 Web ベース管理アプリケーション RealSystem Administrator の開発
Server 8 の設定ファイル
<!-- M Y C O N F I G S E C T I O N -->
<!-- --------------------------------- -->
<List Name="MyPropertyList">
<Var Protocol="TCP"/>
<Var Timeout="30"/>
</List>
Server 8 のレジストリ

config
設定ファイルのプロパティがここに格納されます。
configdefaults
設定ファイルでプロパティが指定されていない場合に使用される、設定プロパティのデフォルト値。
license
サーバーのライセンス ディレクトリで検出された有効なライセンス
ファイルの内容を反映します。
headers
レジストリ ビューワー
Server 8 には、レジストリ ビューワーと呼ばれる便利なツールがあります。 このツールを使用して、マシンのレジストリを検索し、特定のデータ タイプを見つけることができます。 次の URL を使用すると、ビューワーにアクセスできます。 http://yourserver:adminport/admin/regview.html.
adminfs プラグイン
adminfs は Administration File System プラグインを表します。 このプラグイン(Windows システムでは admi3260.dll、UNIX システムでは adminfs.so.6.0 という名前のファイル)は、Server 8 が /admin/ マウント ポイントと admin ポートを使用して URL に対するリクエストを実行するために使用します。 adminfs プラグインは、配信するページに記述されたサーバーサイドの JavaScript と特定のタグを実行します。 また、さまざまな仮想 URL に応答することで、クライアントに次の機能を提供します。
サーバーサイド JavaScript
adminfs プラグインは、Netscape の JavaScript のコア言語バージョン 1.4 に基づいて、JavaScript 実行時エンジンをホストします。 adminfs は Netscape のサーバーサイド JavaScript エクステンションはサポートしませんが、独自のエクステンションを追加して Server 8 のレジストリへのアクセスと HTTP クライアントへの出力の送信を実行します。 以下に、これらの機能について詳しく説明します。
<SERVER> タグと RMAOutput
Server 8 で JavaScript を実行するには、<SERVER language="JavaScript"></SERVER> タグでスクリプト ステートメントを囲みます。 adminfs プラグインを使用する場合、<SERVER> タグに "language" 属性をすべて小文字で記述する必要があります。 これは、RealServer バージョン 7.0 およびそれ以前に適用されます。 その出力を HTTP クライアントに送信するための関数として、adminfs では RMAOutput() が提供されています。 次のリンクをクリックすると、adminfs スタイルで記述されたサーバーサイドのスクリプトの簡単な例を示すページに移動します。
サーバーサイド JavaScript で構文または実行時のエラーが発生した場合、エラー メッセージは、HTML のコメント形式で HTML ドキュメントに挿入されます。 エラー メッセージを表示するには、ブラウザの[ソースの表示]機能を使用します。 ページが正しく表示されないか、または正しく機能しない場合は、必ずソース コードを表示して、サーバー サイドのエラーがないかを確認する必要があります。 また、クライアントサイドのスクリプトはサーバーサイドのスクリプトに依存しており、実際のエラーがサーバーサイドのスクリプトで発生している場合でも、ブラウザにはクライアントサイドのエラーが表示される場合があります。 疑問が生じた場合は、必ずブラウザの[ソースの表示]機能を使用してトラブルシューティングしてください。
サーバーサイドの JavaScript エラーを意図的に発生させるサンプル
エラー メッセージのソースを表示するサンプル
RMA JavaScript エクステンション
前述した RMAOutput 以外に、adminfs プラグインには Server 8 のレジストリにアクセスするための関数が用意されています。 次の表は、adminfs がエクスポートするサーバーサイド JavaScript 関数の全リストです。
Netscape のサーバーサイド エクステンションの write()、または Internet
Information Server の ASP(Active Server Pages)の Response.write() メソッドに類似しています。 例 : RMAOutput( "Hello World" );
listPath パラメータで表されるリストの先頭のプロパティへの絶対プロパティ
パスをレジストリから返します。 指定されたリストが空である、見つからない、またはリストではなくプロパティである場合は、NULL を返します。
リストの内容を順番に参照するには、次に示す RMAGetNextProperty() とともに使用します。 警告: RMAGetFirstProperty
と RMAGetNextProperty の呼び出しはグローバルなリスト列挙子を共有するため、使用する際は注意が必要です。 例 : RMAGetFirstProperty("config.MyPropertyList") は "config.MyPropertyList.Protocol"
を返します。 最後に呼び出された RMAGetFirstProperty() で指定されたリストの次のプロパティの絶対プロパティ
パスを返します。 すでにリストの最後に到達している場合、または最後に呼び出された RMAGetFirstProperty() が NULL
を返していた場合は、NULL を返します。 例 : RMAGetNextProperty() は "config.MyPropertyList.Timeout"
を返します。 listPath で指定されるリストの listIndex 番目のプロパティの絶対プロパティ
パスを返します。 リストまたはリスト項目が存在しない場合、NULL を返します。 この関数はグローバルな列挙子を使用しないので、ライブラリ
コードで列挙子を使用する場合に便利です。
propPath で指定されるプロパティの値を返します。 プロパティが存在しない場合、または
propPath がプロパティではなくリストである場合、NULL を返します。 例 : RMAGetPropertyValue("config.MyPropertyList.Protocol") は "TCP" を返します。
RMAOutput( s
)
パラメータをクライアントに送信します。パラメータは現在の
HTTP の出力に挿入されます。
RMAGetFirstProperty(listPath)
RMAGetNextProperty()
RMAGetNthProperty(
listPath, listIndex );
RMAGetPropertyValue(
propPath )
次の例で、RAM レジストリ関数の使用方法を示します。 リンクをクリックすると、実際のソース コードが表示されます。
adminfs プラグインは、サーバーサイド アクションを実行する 5 個の特殊タグを認識します。 その中の 1 つは、現在のファイルに別のファイルを取り込む機能を持ちます。その他のタグは、クライアントに送られる HTML にレジストリのプロパティの値を挿入するための「構文的ショート カット」を提供します。 特殊タグを次に示し、詳しく説明します。
Include タグ
<!--#INCLUDE file="file name" -->
このタグを使用して、現在のファイルに別のファイルをインクルード(取り込み)します。 インクルードが再帰的に行われることがないように注意してください。再帰的なインクルードが発生すると、RealServer がクラッシュする可能性があります。 これは、作成するページに、定型的な HTML やサーバーサイドのスクリプト ライブラリをインクルードする場合に、便利なタグです。 インクルード ファイルは、そのロケーションに関係なく、現在のマウント ポイントからの相対パスで指定する必要があります。
例 :
admin マウント ポイントの基本パスは、C:\RealServer\RealAdministrator です。
作成したカスタム ページ C:\RealServer\RealAdministrator\custom\mypage.html
に、ファイル C:\RealServer\RealAdministrator\custom\include\include.html をインクルードします。
このとき、Include タグは、<--INCLUDE file="custom\include\include.html" --> と記述します。
前述したように、adminfs プラグインが Include タグを実行中にエラーが発生した場合、クライアントに送信される HTML ファイルに HTML コメント形式でエラー メッセージが挿入されます。
プロパティ値タグ
<!--$(レジストリのプロパティ パス)-->
ページをクライアントに送信する前に、adminfs はこのタグを、引用したレジストリのプロパティの値で置き換えます。
例 : <!--$(server.ClientCount)-->
上に示したプロパティ タグは、次のサーバーサイド JavaScript と機能的に等価です。
<SERVER language="Javascript">RMAOutput(RMAGetPropertyValue("server.ClientCount"));</SERVER>
<!--#(レジストリのプロパティ パス)-->
adminfs は、引用されたレジストリのプロパティの値を HTML 出力に挿入します。 プロパティ タグは HTML コメントのまま残ります。 注意 : クライアント サイドの <SCRIPT> タグの内側では、HTML コメントは構文エラーになるので、このタグを使用しないでください。
<!--^(レジストリのプロパティ名)-->
<!--$()--> タグと同じように、このタグは引用されたレジストリのプロパティの値で置き換えられます。 さらに、プロパティ値にバックスラッシュが含まれる場合、そのバックスラッシュはエスケープされます。 これは、クライアント サイドの JavaScript 変数を初期化するときに便利です。
例 :
<SCRIPT> // example use of escape tag var logPath = "<!--^(config.LogPath)-->"; </SCRIPT>
このタグにより、logPath 変数が
"C:\\Program Files\\Real\\RealServer\\Logs\\rmaccess.log"
として初期化されます(デフォルトのインストレーション ディレクトリを使用する Windows NT 上の Server 8 の場合)。 バックスラッシュがエスケープされない場合は、それ自身がエスケープ文字として解釈されます。
<!--%(レジストリのプロパティ名)-->
<!--#()--> タグと同じように、このタグは HTTP 出力にプロパティ値を挿入し、HTML コメントとして残ります。 <!--^()--> タグと同じように、プロパティ値に含まれるバックスラッシュはエスケープされます。 警告: クライアント サイドの <SCRIPT> タグの内側では、HTML コメントは構文エラーになるので、このタグを使用しないでください。
その他のサーバーサイド スクリプトの実行時情報の重要なソースとして、"server"、"headers"、および "parameters" レジストリ リストがあります。 ヘッダー リストは、クライアントから送信される HTTP ヘッダーを反映します。 各ヘッダーは、同じ名前のリストに含まれるプロパティとして表されます。 たとえば、"headers.Accept"、"headers.Cookie"、"headers.User-Agent" のように表されます。 RMAGetFirstProperty/RMAGetNextProperty 関数を使用したスクリプトの例に、ヘッダー リストを列挙する方法が示されています。
パラメータ リストは、問い合わせ文字列パラメータへの便利なアクセス方法です。名前と値の組は、パラメータ リスト内のプロパティとして表されます。
例 :
ページ "query_string.html" が URL
http://server:admin_port/admin/query_string.html?color=blue&size=large を使用して要求された場合、パラメータ リストは次のようになります(ただし、この URL の実行中のみ。これは、ヘッダーとパラメータ リストは現在処理中の URL だけを反映するためです)。parameters.color = "blue" parameters.size = "large"
adminfs プラグインは、サーバーサイド スクリプトを経由した通常の CGI 機能をサポートしないので、Server 8 設定ファイルまたは実行中の状態の変更は、特殊な「仮想」 URL を使用して実現する必要があります。 仮想 URL は、/admin/ マウント ポイントの下にある実際のファイルには対応していませんが、adminfs が内部的に認識して処理します。 設定変更は仮想 URL の問い合わせ文字列部分を使用して指定します。これについては、後で詳しく説明します。 servvar.set.html この URL は、サーバー レジストリと設定ファイルの両方を修正します。 この URL は、サーバーを再起動しなくても修正できるプロパティに対してのみ使用します。 プロパティをオンザフライで修正できない場合、エラーが生成されます。 プロパティがオンザフライに変更可能かどうかを判断するには、プラグイン開発者に問い合わせてください。 プロパティの変更が有効になるためにサーバーの再起動が必要な場合は、次に説明する configvar.set.html を含む URL を使用します。 configvar.set.html この URL は設定ファイルのみを修正します。 設定ファイルへの変更が有効になるには、サーバーを再起動する必要があります。 特殊な URL の使用 前述したリストの記述方法を使用して、リストとプロパティを追加または削除したり、プロパティ値を修正することができます。
実際の問い合わせ文字列の例
RealSystem Administrator での設定変更に使用した問い合わせ文字列を参照するには、変更内容を送信した後に[Configuration Results]ページを表示します。 Internet Explorer を使用している場合は[File]>[Properties]メニュー コマンドを使用し、Navigator を使用している場合は[View]>[Page Info]メニュー コマンドを使用して、ソース コードを表示します。
設定用 URL のパラメータ規則の概要
別の言い方をすれば、規則 1 と 2 は、空値を割り当てることによりプロパティまたはサブリストが削除されることを示しています。
応答ページのパラメータ 設定用 URL は、問い合わせ文字列の中で "respage" と呼ばれるパラメータを探します。 このパラメータの値は、RealSystem Administrator マウント ポイントの下にあるページへの相対 URL である必要があります。 adminfs プラグインは、作業完了後に、ブラウザにこのページを返します。 通常このページは、ブラウザの新規ウィンドウに変更結果を表示するために使用します。 例外は servvar.restart URL で、これはサーバーを再起動する直前にクライアントに応答ページを送信します。
問い合わせ文字列の例 http://<yourserver:adminport>/admin/servvar.set.html?respage=showresults.html&config.RTSPPort=4040 Administrator は、config_results_ie.nc.html (Internet Explorer クライアント用) と config_results_nav.nc.html (Netscape クライアント用) の 2 ページを、ほとんどの設定 URL の respage パラメータとして使用します。 注意 : カスタム Administrator Web ページの開発中は、config_results_XX.nc.html ページを使用して結果を表示してください。このページは、カスタム プロパティを含む任意の設定変更で使用できます。
設定変更結果の表示 adminfs プラグインによりレジストリまたは設定ファイルを更新する場合、特殊レジストリ セクションに、"result" と呼ばれるエントリーが、変更された設定プロパティごとに作成されます。 結果リストのプロパティを次に示します。"PROPNAME" は、修正されたプロパティの絶対プロパティ パスのプレースホルダーです。たとえば、"config.FSMounts.RealSystem Content.BasePath" のように指定します。 次の例により、設定 URL の実行によってレジストリが変更される様子を知ることができます。
一般に、configvar.set.html を使用して行われる設定変更は、プロパティ パスの構文が正しく、"config." で始まっていれば、正常に終了します。 しかし、servvar.set.html を使用して行われる設定変更は、プロパティがオンザフライに変更できるように設計されていない場合、または不正なパスなどの無効データに弱い場合に、異常終了する可能性があります。 対処方針については、元のプラグイン開発者に問い合わせてください。 Administrator の結果ページに servvar.set.html を使用した設定エラーが存在する場合、configvar.set.html を使用して変更内容を再送信するオプションが使用可能になります。このオプションを使用すると、変更内容は設定ファイルにのみ保存されます。 その後サーバーを再起動することで、設定ファイルが再ロードされ、変更内容が有効になります。 注意 : RealSystem Administrator は、オンザフライに変更できるように RealServer に事前にプログラムされている設定プロパティにのみ、servvar.set.html を使用します。 Administrator を使用している場合、設定エラーが発生することはほとんどありません。
その他のサーバー関連の URL データを修正するためのサーバー関連 URL は、これまで説明した URL 以外に、まだ 2 つあります。 servvar.restart.html サーバーの再起動が行われます。 サーバーの再起動が行われる前に、Administrator に応答ページが送信されます。 UNIX システムの場合、サーバーのコントローラ プロセスに SIGUSR2 コマンドを送信することにより同じように動作させることができます。 servvar.reconfig.html サーバーは、設定ファイルを再ロードします。 servvar.set URL を使用したオンザフライの設定が異常終了した項目は、この server.reconfig URL を使用した設定も異常終了します。 UNIX システムの場合、サーバーのコントローラ プロセスに SIGHUP コマンドを送信することにより同じように動作させることができます。 認証用 URL
Administrator の Security セクションのアクセス制御、認証、商取引、およびデータベースでは、独自の特定の URL を使用してデータを設定します。 次の表に、特定の URL を示します。
このセクションでは、独自の設定ページを作成して、それを Administrator Web サイトに統合する方法について説明します。 RealSystem Administrator Web サイト Administrator Web サイトは、HTML ページ、スタイル シート、JavaScript ファイル、およびイメージの集合であり、それらは RealServer/RealAdministrator ディレクトリに置かれています。 Administrator は、RealServer のインストール後に自動的に起動されるよう設計されています。 インストール中に、サーバーはユーザー名とパスワードの入力を要求し、さらに Administrator へのアクセス専用のポート番号をランダムに割り当てます。 これにより、認証されたユーザーだけが Administrator にアクセスできることが保証されます。
Administrator がリクエストの処理に使用するマウント ポイントは /admin です。 http://yourserver:adminport/admin/index.html を使用して Administrator を起動できます。また、http://localhost:adminport/admin/index.html の「localhost」をマシン名に置き換えた URL も同じように使用できます。
Administrator Web サイトは、フレームセット(index.html)として整理されています。 トップ フレーム(header.html)には、監視しているサーバーの名前または IP アドレスが反映され、システム アラートを示すアイコンが表示されます。[変更の保留]アイコンは、変更内容を適用するにはサーバーを再起動する必要があることを意味します。[サーバーの再起動]アイコンは、サーバーを再起動する必要があることを示します。[ページの再ロード]アイコンは特定のページを再ロードする簡単な方法です。
左側の目次フレーム(toc.html)は Administrator の設定セクションを起動します。また、Java ベースのモニター、レポート パッケージへのリンク、サーバーが動作中であることを確認するためのサンプル クリップ、および詳細なドキュメントとその他の技術サポート リソースも表示します。 ライセンスが与えられている機能を確認できる情報を表示するリンクもあります。 その他に、Virtual Account Manager へのリンクがあります。これは、サーバーのアップグレードを補助するツールです。
フレームの右側には、最初は Welcome ページ(welcome.html)が表示され、[クイック スタート]セクションへのリンクが表示されます。このセクションには Server 8 が正常にメディアをストリーミングしていることを確認するための一連の作業が含まれます。 サーバーを設定する際に、Welcome ページは使用する機能に応じたページに切り替わります。
たとえば[一般設定]セクションの[ポート]をクリックした場合、Welcome ページ(welcome.html)は[ポート]ページ(config_ports.html)により置き換わります。
カスタマイズの例 ここまででシステムとコーディングの実践の概要について説明したので、次は Administrator を使用して独自のページを作成し、格納する作業について説明します。 以降の例では、少数のカスタム プロパティを管理するページを作成していると仮定します。 例で使用するプロパティを、設定ファイルから抜粋して次に示します。 例を実行したり、修正するためには、サーバーの RealSystem Administrator ディレクトリにこれらのファイルをコピーする必要があります。 また、ブラウザ経由で RealSystem Administrator にアクセスするための Admin ユーザー名とパスワードが必要です。 RealSystem Administrator ディレクトリでファイルを作成、編集するための別の方法として、練習バージョン用に Administrator の 2 つ目のマウント ポイント "sandbox" を設定します。 マウント ポイントを追加するための手順は、付録 Aに詳しく説明されています。 サンプル 1 は、現在のプロパティ値を表示し、servvar.set.html 設定用 URL を使用してそれらを修正できる簡単なページです。 プロパティ値は、前述の <!--$()--> プロパティ タグを使用して取得します。 このページは、Administrator フレームセットとサポートする JavaScript ライブラリを使わずに使用できるように設計されています。 サンプル 2 の機能はサンプル 1 と同じですが、RMAGetPropertyValue() 関数を使用してレジストリ値を取得します。 また、サンプル 2 は、Administrator の一部として出荷される JavaScript ライブラリを使用します。 RealSystem Administrator の目次 前述したように、Administrator の目次ファイルの名前は toc.html です。 これは、Administrator フレームセットの左側のソース ページです。 このページのソース コードを構成する主要エレメントを次に示します。
目次に見出しやリンクを追加するには、ソース ファイルの希望する場所に TOCEntry オブジェクトを作成します。 TOCEntry クラスの動作について理解することも重要ですが、作業手順だけを知りたい場合は、次のセクションを飛ばして、「ページに RealSystem Administrator の目次を追加する」に進んでください。
TOCEntry クラス コンストラクタ 次に toc.html の一部を抜粋します。ここでは見出し「View Source 」と、見出しを展開したときにその下に表示される 3 つのリンクが定義されています。
ここまでで、設定ファイルやレジストリにデータを設定するために使用する特殊 URL などの RealSystem Administrator と Server 8 の連携処理や、独自の設定ページを Administrator のフレームセットに追加する方法について、概略を説明しました。
最後のヒント : HTML コードを実装するにあたって、Internet Explorer と Navigator の違いについて注意してください。RealSystem Administrator はそれぞれのブラウザの 4.0 以降で動作するように設計されています。 以下に示す付録では、その他の開発に関するガイドラインについて説明します。 付録 A では、"sandbox" と呼ばれる演習用のディレクトリを作成する手順を説明します。付録 B では、その他のリソースとして、JavaScript リソース、SDK の場所、開発者向けフォーラムについて紹介します。 最後に、見慣れない用語について定義した簡単な用語集があります。 Administrator をカスタマイズする場合、インストール時に作成された RealSystem Administrator のディレクトリは修正しないでください。 その代わりに、"sandbox" と呼ばれるディレクトリを作成します。このディレクトリを作成することで、カスタマイズ作業がシステムに危険を及ぼす心配がなくなります。 また、変更した内容を、元のディレクトリと比較することができます。 また、本書に付属するサンプルをこの sandbox ディレクトリにコピーすることを推奨します。 Sandbox の設定 Windows NT にインストールした RealServer のデフォルト設定、sandbox ディレクトリとして C:\sandbox、およびマシン名として "ra_dev" を使用した場合、設定ファイルは次のようになります。 注意 : イメージを追加または修正する予定がある場合、RealSystem Administrator の images サブディレクトリを sandbox ディレクトリの下に配置することもできます。 インストール ディレクトリから sandbox ディレクトリに /images サブディレクトリをコピーし、次に "RealSystem Administrator IMAGES - sandbox" リストの基本パス プロパティを、<YOUR SANDBOX PATH>/images のパスを指すように修正します。
Windows システムの場合 : rmserver ..\sandbox.cfg
UNIX システムの場合 : Bin/rrmserver sandbox.cfg RealSystem Administrator の入手 RealSystem Server 8 の一部である RealSystem Administrator は、http://www.real.com/solutions/servers/index.html の RealNetworks Server ページからダウンロードできます。 RealSystem SDK RealNetwork の COM の実装とプラグイン開発ガイドラインについては、RealSystem SDK で詳しく説明されています。RealSystem SDK には、RealPlayer、Server 8、マニュアル、およびシステムのすべてのインターフェイスを説明するサンプルが含まれます。 RealSystem SDK は、http://partners.real.com/developer.html で無料で入手できます。
JavaScript のマニュアルとリソース
Microsoft の Javascript のマニュアルとリソースを http://msdn.microsoft.com/scripting/ で入手できます。このドキュメントには、クライアントサイド スクリプト デバッガに関する説明も含まれます。
Netscape の JavaScript のマニュアルとリソースを http://developer.netscape.com/tech/javascript/index.html で入手できます。
Netscape の JavaScript のデバッガに関するマニュアルを http://developer.netscape.com/software/tools/index.html?content=/software/jsdebug.html で入手できます。
その他の情報入手先として、Real Forum オンライン ディスカッション グループがあります。 Real Forum listserv は、RealNetworks 製品の使用に焦点を当てた電子メールによるディスカッション グループです。 このディスカッション グループでは、ストリーミング メディア ネットワークの立案と実装や、コンテンツの作成に関する最良の方法について、開発者がメッセージを投稿し、それに対する回答を参加者全員で共有します。
その他の RealNetwork 製品のドキュメントと、テクニカル サポートの検索機能付きナレッジ ベースは、オンラインで使用できます。
改訂日 : 2000 年 12 月 15 日 特殊な URL を介したレジストリの修正
?config.RTSPPort=4400
設定プロパティ RTSPPort
の値を 4400 に設定します。 プロパティが存在しない場合は、作成されます。
?config.MyList.MyProp=SomeValue
リスト MyList の設定プロパティ
MyProp の値を 'SomeValue' に設定します。 リストとプロパティが存在しない場合は、両方とも作成されます。
?config.MyList.MyProp=
値が ("="
の後に) 記述されていない場合、設定プロパティ MyProp はリスト MyList から削除されます。
?config.MyList=
リスト MyList が削除されます。
?config.MyList.MySubList=&config.MyList.MySubList.MyProp1=Value1&config.MyList.MySubList.MyProp2=Value2
<SCRIPT>
var myPropertyPath = "config.MyList.MyProperty" ;
var myPropertyValue = "Some Value";
var myQueryString = "?" + escape( myPropertyPath ) + "=" + escape( myPropertyValue );
</SCRIPT>
result.PROPNAME.action
行われた修正のタイプ。"Set"
または "Delete" のいずれかです。
result.PROPNAME.oldval
プロパティの古い値。 プロパティが新規に作成された場合は、空文字列になります。
result.PROPNAME.newval
(修正が正常に行われた場合の)
プロパティの新しい値。 プロパティが削除された場合は、空文字列になります。
result.PROPNAME.success
"Succeeded"
または "Failed" のいずれか。
result.PROPNAME.info
(修正が異常終了した場合)エラー
メッセージ。


auth.addtime
既存の許可に、表示時間を追加します。
auth.adduser
ユーザーをレルムに追加します。
auth.changedate
既存の許可の有効期限を変更します。
auth.changeuserpass
ユーザーのパスワードを変更します。
auth.grantuser
認証されたコンテンツへのアクセスをユーザーに許可し、関連するデータベースにこの変更を書き込みます。
auth.removetime
既存の許可から表示時間を削除します。
auth.removeuser
ユーザーをレルムから削除します。
auth.revokeuser
ユーザーの認証されたコンテンツへのアクセスを取り消し、関連するデータベースにこの変更を書き込みます。
auth.revokealluser
認証されたコンテンツへのすべてのアクセス権限を取り消し、関連するデータベースにこの変更を書き込みます。
RealSystem Administrator のカスタマイズ

<List Name="MyPropertyList">
<Var Protocol="TCP"/>
<Var Timeout="30"/>
</List>
function TOCEntry(title, url,
parent, key)
title
目次でこのエントリーに対して表示されるリンク
テキスト
url
エントリーに関連付けられたページの
URL。URL を持たない目次の見出しの場合は、空文字列 ("") を使用します。 目次ページに挿入されるリンク エレメントの
HREF 属性では、url パラメータを使用します。 目次のリンクをクリックしたときのデフォルトのターゲット ウィンドウは、Administrator
フレームセットのメイン(右側)フレームです。 別のブラウザ ウィンドウをターゲットにするには、JavaScript URL を使用します。
parent
オプション。 このエントリーの親見出し
(別の TOCEntry オブジェクトへのリファレンス)。 このパラメータが省略されるか、NULL に設定されている場合、エントリーはルート
レベルの見出しであるとみなされます。 ルート レベル エントリーはインデントされず、常に表示されます。
key
オプション。 このエントリーを目次に挿入するために
0 以外の値である必要があるレジストリ プロパティへの絶対パス。 このパラメータが省略されるか、NULL に設定されている場合、エントリーは挿入されます。
主に、現在サーバーがライセンスを持っていない機能を設定ページからフィルタリングするために使用します。
// *** ViewSource ***
/*
The following statement creates a new TOCEntry object and saves a (temporary)
reference to it. This entry is a TOC heading and has no page associated with
it so the URL parameter is an empty string. Since this heading is a ‘child’
of the "Config" heading, a reference to the config TOCEntry object
is passed as the parent parameter. A key parameter is not passed in since the
View Source feature is available on all Servers, and is not controlled by the
Server license.
*/
tmpParent = new TOCEntry( "View Source", "", config );
//The next three statements create TOC links as children of the ViewSource heading.
new TOCEntry( "Source Access", "config_viewsrc.html", tmpParent);
new TOCEntry( "Content Access", "config_content_browsing.html", tmpParent );
new TOCEntry( "Browse Content Now", "Javascript:launchHome('browse_content.html')", tmpParent );
/*
Normally the target window for the URL parameter is assumed to be the
Administrator’s main or right-hand frame. However, there can be exceptions: since the "Browse Content Now" page
is designed to be displayed in a separate browser window, the URL to this link
is a JavaScript function that will open the ‘browse-content.html’ page in a new
window.
*/
目次フレームにページを追加する
作成した設定ページを目次フレームに追加するには、新しい見出しまたは既存の見出しのどちらの下に表示するか、また、新しい見出しまたはリンクを挿入する位置を決める必要があります。 次の例では、サンプルの設定ページに新しい見出しとリンクを 1 つずつ作成し、それらを「View Source」リンクの直後に挿入します。
toc.html を開き、[View Source]セクションを探します。 次のコードを[Browse Content Now]TOCEntry 行の直後に挿入します。
/* create a subheading in the TOC for the sample pages */
tmpParent = new TOCEntry( "Sample Config Pages", "", config );
/* create the links to the sample pages under the new subheading */
new TOCEntry( "Sample 1", "config_sample1.html", tmpParent);
new TOCEntry( "Sample 2", "config_sample2.html", tmpParent);
まとめ
付録 A - sandbox : admin ファイル用の作業ディレクトリの設定
<!-- Local File System; HTML -->
<List Name="RealSystem Administrator HTML - sandbox">
<Var ShortName="pn-local"/>
<Var MountPoint="/sandbox/html/"/>
<Var BasePath="<YOUR SANDBOX PATH>"/>
</List>
<!-- Local File System; IMAGES; use the install directory via the /sandbox/ mountpoint -->
<List Name="RealSystem Administrator IMAGES - sandbox">
<Var ShortName="pn-local"/>
<Var BasePath="<REAL SERVER PATH>\RealAdministrator\images"/>
<Var MountPoint="/sandbox/images/"/>
</List>
<!-- Local File System; DOCS; use the install directory via the /sandbox/ mountpoint -->
<List Name="RealSystem Administrator DOCS - sandbox">
<Var ShortName="pn-local"/>
<Var MountPoint="/sandbox/Docs/"/>
<Var BasePath="<REAL SERVER PATH>\RealAdministrator\Docs"/>
</List>
<!-- XML Tag Handler File System -->
<List Name="Real System Administrator SSI - sandbox">
<Var ShortName="pn-xmltag"/>
<Var MountPoint="/sandbox/includes/"/>
<Var BaseMountPoint="/sandbox/html/"/>
<List Name="TagHandlers">
<Var h1="pn-includer"/>
<Var h2="pn-vsrctaghdlr"/>
</List>
</List>
<!-- Admin File System -->
<List Name="RealSystem Administrator Files - sandbox">
<Var ShortName="pn-admin"/>
<Var MountPoint="/sandbox/"/>
<Var BaseMountPoint="/sandbox/includes/"/>
<Var Realm="<REAL SERVER MACHINE NAME>.AdminRealm"/>
</List>
<VAR Path_99="/sandbox"/>
<List Name ="HTTPDeliverable">
<VAR Path_99="/sandbox"/>
<| | | >
<List Name ="FSMount">
<!-- Local File System; HTML -->
<List Name="RealSystem Administrator HTML - sandbox">
<Var ShortName="pn-local"/>
<Var MountPoint="/sandbox/html/"/>
<Var BasePath="C:\sandbox"/>
</List>
<!-- Local File System; IMAGES; use the install directory via the /sandbox/ mountpoint -->
<List Name="RealSystem Administrator IMAGES - sandbox">
<Var ShortName="pn-local"/>
<Var BasePath="C:\Program Files\Real\RealServer\RealAdministrator\images"/>
<Var MountPoint="/sandbox/images/"/>
</List>
<!-- Local File System; DOCS; use the install directory via the /sandbox/ mountpoint -->
<List Name="RealSystem Administrator DOCS - sandbox">
<Var ShortName="pn-local"/>
<Var MountPoint="/sandbox/Docs/"/>
<Var BasePath="C:\Program Files\Real\RealServer\RealAdministrator\Docs"/>
</List>
<!-- XML Tag Handler File System -->
<List Name="Real System Administrator SSI - sandbox">
<Var ShortName="pn-xmltag"/>
<Var MountPoint="/sandbox/includes/"/>
<Var BaseMountPoint="/sandbox/html/"/>
<List Name="TagHandlers">
<Var h1="pn-includer"/>
<Var h2="pn-vsrctaghdlr"/>
</List>
</List>
<!-- Admin File System -->
<List Name="RealSystem Administrator Files - sandbox">
<Var ShortName="pn-admin"/>
<Var MountPoint="/sandbox/"/>
<Var BaseMountPoint="/sandbox/includes/"/>
<Var Realm="ra_dev.AdminRealm"/>
</List>
<| | | >
付録 B - その他のリソース
用語集
設定ファイル
rmserver.cfg という名前の XML ベースのファイル。Server 8 はその中のパラメータを読み込みます。 設定ファイルは、XML バージョン宣言タグ、オプション コメント タグ、リスト タグ、および変数タグの 4 種類のタグから構成されます。 Web ベースの Administrator を使わずに、手動で設定ファイルを編集する場合、必ず元の設定ファイルのバックアップ コピーを作成してください。
問い合わせ文字列
問い合わせ文字列はユーザーが入力したデータをサーバーに渡します。
RealPlayer
RealNetworks クライアント。Server 8 がストリーミングするマルチメディア プレゼンテーションの再生用に設計されています。
RealSystem Administrator
Administrator は Web ベースのアプリケーションで、RealServer 機能の設定とカスタマイズに使用します。
RealSystem iQ
RealAudio や RealVideo などのクリップをネットワークを介してストリーミングするためのシステム。 Server 8、Proxy 8、Player 8、および製品ツールが含まれます。
RealSystem Server 8
RealNetworks サーバー ソフトウェア。RealPlayer にマルチメディア プレゼンテーションをストリーミングするために使用します。
RealSystem ソフトウェア開発キット(SDK)
キットには、RealPlayer、Server 8、マニュアル、および RMA インターフェイスを使用したサンプルが含まれます。
応答ページ
変更結果を示すためにサーバーが表示する HTML ページ(respage.html)。
Sandbox
試験用ディレクトリ。動作中のプログラム(この場合は Server 8)とは別に設定され、テスト コードを安全に実行することができます。
URL エンコード
Server 8 で処理するために特殊な方法でエンコードされたパラメータ。
仮想 URL
サーバーがデータを設定するために内部的に使用するカスタム URL。 2 つの主要な URL として、servvar.set.html と configvar.html があります。 2 つの補助的な URL として、servvar.restart.html と servvar.reconfig.html があります。
XML
拡張可能なマーク付け言語(eXtensible Markup Language)の略。テキスト ベースの非バイナリ フォーマットで、サーバーの設定ファイルに含まれる情報とその構成の種類を記述するために使用します。 XML は、ワールド ワイド ウェブ コンソーシアム(W3C)によって承認された、公式規格です。
発行日 : 2000 年 3 月 17 日
Copyright RealNetworks, 2000. All Rights Reserved.