Avantages de l’utilisation du protocole de gestion XML NETCONF et de l’API XML Junos
Le protocole de gestion XML NETCONF et l’API XML Junos documentent pleinement toutes les options pour chaque demande opérationnelle junos OS prise en charge et tous les éléments dans chaque instruction de configuration Junos OS. Les noms des balises indiquent clairement la fonction d’un élément dans une requête opérationnelle ou une instruction de configuration.
L’association de noms de balises significatifs et de règles structurelles dans un DTD facilite la compréhension du contenu et de la structure d’un ensemble de données ou d’un document balisé XML. Les éléments de balise XML NETCONF et Junos facilitent l’utilisation des applications clientes qui demandent des informations sur un équipement pour analyser la sortie et trouver des informations spécifiques.
Sortie de l’équipement d’analyse
L’exemple suivant illustre comment l’API XML Junos facilite l’analyse de la sortie de l’équipement et l’extraction des informations nécessaires. Il compare les versions formatées ASCII et XML de sortie d’un équipement exécutant Junos OS. Le format ASCII suit :
Physical interface: fxp0, Enabled, Physical link is Up Interface index: 4, SNMP ifIndex: 3
La version xml balisées correspond à :
<interface> <name>fxp0</name> <admin-status>enabled</admin-status> <operational-status>up</operational-status> <index>4</index> <snmp-index>3</snmp-index> </interface>
Lorsqu’une application cliente doit extraire une valeur spécifique à partir de la sortie ASCII au format, elle doit s’appuyer sur l’emplacement de la valeur, exprimée de manière absolue ou en ce qui concerne les étiquettes ou les valeurs dans les champs adjacents. Supposons que l’application cliente souhaite extraire l’index de l’interface. Il peut utiliser un utilitaire de correspondance d’expression régulière pour localiser des chaînes spécifiques, mais l’une des difficultés réside dans le fait que le nombre de chiffres de l’index d’interface n’est pas nécessairement prévisible. L’application cliente ne peut pas simplement lire un certain nombre de caractères après le Interface index:
label, mais doit plutôt tout extraire entre le label et le label suivant, qui est
, SNMP ifIndex
Un problème survient si le format ou la commande des modifications de sortie dans une version ultérieure de Junos OS, par exemple, si un Logical index
champ est ajouté suivant le numéro d’index de l’interface :
Physical interface: fxp0, Enabled, Physical link is Up Interface index: 4, Logical index: 12, SNMP ifIndex: 3
Une application qui extrait le numéro d’index d’interface délimité par les Interface index:
étiquettes et SNMP ifIndex
obtient désormais un résultat incorrect. L’application doit être mise à jour manuellement pour rechercher l’étiquette suivante à la place :
, Logical index
En revanche, la nature structurée de la sortie balisées XML permet à une application cliente de récupérer l’index de l’interface en extrayant tout ce qui se trouvant dans la balise d’ouverture <index>
et la balise de fermeture </index>
. L’application n’a pas à se reposer sur la position d’un élément dans la chaîne de sortie, de sorte que le serveur NETCONF peut émettre les éléments de balise enfants dans n’importe quel ordre au sein de l’élément de <interface>
balise. L’ajout d’un nouvel <logical-index>
élément de balise dans une version future n’affecte pas la capacité d’une application à localiser l’élément de balise et à en extraire le <index>
contenu.
Affichage de la sortie de l’équipement
Le format XML marqué est également plus facile à transformer en différents formats d’affichage. Par exemple, vous pouvez afficher différentes quantités de détails sur un composant d’équipement donné à différents moments. Lorsqu’un équipement renvoie la sortie ASCII au format, vous devez concevoir et écrire des routines spéciales et des structures de données dans votre programme d’affichage pour extraire et stocker les informations nécessaires à un niveau de détail donné. En revanche, la structure inhérente à la sortie XML constitue la base idéale pour les propres structures d’un programme d’affichage. Il est également facile d’utiliser la même routine d’extraction pour plusieurs niveaux de détail, en ignorant simplement les éléments de balise dont vous n’avez pas besoin lors de la création d’un affichage moins détaillé.