كثيرا ما نسمع عن اللغات أو
صيغ الملفات XML, JSON, YAML وبالذات في عالم Network Automation and
Programmability لكن الكثير منا قد يواجه صعوبة في التفريق
بينها ومعرفة مميزات كل واحدة منها.
ينبغي معرفة أن جميع هذه الصيغ
من الملفات تقوم بحفظ البيانات أو المعلومات لذلك تسمى Data Encoding files أو Data files. بمعنى اخر هذه الملفات هي ملفات نصية وتحمل
بيانات وليست ملفات برمجية تقوم بتنفيذ أوامر. تستطيع في هذه الملفات تخزين
معلومات متنوعة عن الشبكة الخاصة بك مثل IP address وhostnames وinterfaces لكل جهاز في الشبكة الخاصة بك. يمكنك تخليها مثل البيانات
المحفوظة في جداول أو قواعد البيانات.
تتميز هذه الأنواع من
الملفات بتخزين المعلومات داخلها بطريقة منظمة (structured). لكن ما الفائدة من عملية التنظيم structure للمعلومات
المخزنة داخل هذه الملفات؟ الفائدة الكبرى هو تسهيل عملية الوصول للبرامج الالكترونية
الى مختلف المعلومات! نستطيع أنا وأنت بقراءة أي نص بالعين المجردة ونستطيع معرفة
أن عبارة ipaddress او عبارة hostaddress تعبر
عن نفس المعلومة لكن بالنسبة للكمبيوتر فكل عبارة تعتبر مختلفة وتحتاج الى تعريف حتى
يستطيع الكمبيوتر التعامل معها للوصول الى للمعلومة.
كل هذه اللغات تعتمد على
مبدأ key/value. حيث ان key يعتبر عنوان او مصطلح ثابت
عـنـوان يستخدم للتعرف على قيمة أو value. فمثلا كلمة ipaddress هي
العنوان او key الذي نستخدمه للتعريف عن قيمة او value مثل 10.1.1.1. لو اردنا كتابة هذه المعلومة باستخدام مختلف اللغات، سوف تجد تشابه
كبير في الصيغة خصوصا بين JSON و YAML
Language |
Format |
XML |
<ipaddress>10.1.1.1</ipaddress> |
JSON |
“ipaddress”: “10.1.1.1” |
YAML |
ipaddress: 10.1.1.1 |
نستطيع استخدام هذه ملفات
البيانات في تقنيات كثيرة مثل NETCONF, RESTCONF, Python, vManage
API, Ansible,... وغيرها.