XML管理プロトコルとJUNOS XML APIを使用Junosの利点
Junos XML 管理プロトコルおよび Junos XML API は、サポートされる Junos OS 動作リクエストすべて、Junos OS 設定階層内のすべてのステートメント、設定モード コマンドに相当する基本操作のすべてのオプションを完全に文書化します。タグの名前は、動作または設定要求または設定ステートメント内の要素の機能を明確 に示しています。
有意義なタグ名と DTD の構造ルールの組み合わせにより、XML タグ付きデータ セットやドキュメントの内容と構造を簡単に理解できます。Junos XML プロトコル Junos XML プロトコル タグ要素を使用すると、デバイスから情報をリクエストして出力を解析し、特定の情報を検索するクライアント アプリケーションを簡単に作成できます。
解析デバイス出力
次の例は、Junos XML API を使用してデバイスの出力を簡単に解析し、必要な情報を抽出する方法を示しています。この例では、ASCIIで実行されているデバイス からの出力のフォーマットされたASCIIバージョンとXMLタグ付きバージョンを比較Junos OS。
フォーマットされたASCIIは次のとおりです。
Physical interface: fxp0, Enabled, Physical link is Up Interface index: 4, SNMP ifIndex: 3
対応する XML タグ付きバージョンは次の形式です。
<interface> <name>fxp0</name> <admin-status>enabled</admin-status> <operational-status>up</operational-status> <index>4</index> <snmp-index>3</snmp-index> </interface>
クライアント アプリケーションがフォーマットされた ASCII 出力から特定の値を抽出する必要がある場合、絶対に表現されるか、隣接するフィールドのラベルまたは値に関して記述された値の場所に依存する必要があります。クライアント アプリケーションがインターフェイス インデックスを抽出したいとします。正規表現照合ユーティリティを使用して特定の文字列を位置付けできますが、1 つの難点は、インターフェイス インデックスの数字が必ずしも予測可能であるとは限らない点です。クライアント アプリケーションでは、ラベルの後に特定の文字数を読み取ることはできませんが、代わりにラベルと後続のラベルの間のすべてを抽出し、カンマで囲む Interface index:
SNMP ifIndex:
必要があります。
テキスト出力の形式または順序が、後バージョンのテキスト出力で変更された場合にJunos OS。たとえば、インターフェイスインデックス番号の後にフィールドが追加された場合、新しくフォーマットされたASCIIは次のように Logical index:
表示されます。
Physical interface: fxp0, Enabled, Physical link is Up Interface index: 4, Logical index: 12, SNMP ifIndex: 3
ラベルで指定したインターフェイス インデックス番号を抽出するアプリケーションが、正 Interface index:
SNMP ifIndex:
しくない結果を取得しています。ラベルを区切り記号として検索するには、手動 Logical index:
で更新する必要があります。
対照的に、XML タグ付き出力の構造化された性質により、クライアント アプリケーションは開始タグと終了タグ内のすべてを抽出することで、インターフェイス インデックスを <index>
取得 </index>
できます。アプリケーションは出力文字列内の要素の位置に依存する必要はないので、Junos XML プロトコル サーバーは、タグ要素内で子タグ要素を任意の順序で送信できます <interface>
。今後のリリースに新しいタグ 要素を追加しても、タグ要素を見つけてそのコンテンツを抽出するアプリケーションの機能には <logical-index>
<index>
影響を与えるではありません。
デバイス出力の表示
XML タグ付き出力は、フォーマットされた ASCII 出力よりも異なる表示形式に変換する方が簡単です。たとえば、特定のデバイス コンポーネントに関する詳細情報の量を異なる時間に表示することができます。デバイスがフォーマットされたASCII出力を返す場合、特定の詳細レベルに適切な情報を抽出して表示するには、表示プログラムに特別なルーチンやデータ構造を書き込む必要があります。対照的に、XML 出力固有の構造は、表示プログラム自身の構造の最適な基礎となります。また、複数のレベルの詳細に対して同じ抽出ルーティンを使用するのは簡単で、詳細な表示を作成する際に不要なタグ要素を無視します。