الخلاصة

  • صُممت نواة IRIS في RFC 3981 كي لا تكفي وحدها: فمخططات أنواع السجلات كانت تحدد الاستعلامات والنتائج وفئات الكيانات، بينما تتولى طبقة نقل مستقلة المصادقة والرسائل والجلسات.
  • لم يكن رفض العميل الشامل إخفاقاً في تحقيقه، بل حداً مقصوداً. فالرسالة الصحيحة نحوياً قد تظل بلا معنى أو غير مدعومة أو مقيدة أو غير مأذون بنتيجتها.

يأخذ lookup قيمة منفصلة ويسأل عنها في فهرس واحد. أما البحث فقد يطابق جزءاً من قيمة، أو يجمع فهارس عدة، أو يكرر أكثر من شرط على الفهرس نفسه. يبدو الفرق صغيراً في واجهة المستخدم، لكنه يغيّر من يملك معنى السؤال ومن يتحمل كلفته. وقد بنت RFC 3981 معمارية IRIS حول هذا الفرق، بدلاً من إخفائه خلف مربع بحث واحد.

نُشرت RFC 3981 في يناير/كانون الثاني 2005 لتحدد النواة المبنية على XML لخدمة Internet Registry Information Service. وتثبت صفحة الحالة وسجل التصويبات وملف Datatracker أنها وثيقة Standards Track وأن RFC 4992 حدّثتها لاحقاً. ولا تثبت هذه السجلات انتشاراً فعلياً أو خدمة تعمل اليوم.

قسّمت المواصفة العمل إلى ثلاث طبقات. تعرّف الطبقة الخاصة بنوع السجل استعلاماته ونتائجه وفئات كياناته. وتوفر طبقة IRIS المشتركة مجموعات البحث والنتائج والمراجع والاستمرارات وطريقة تسمية أنواع السجلات. أما طبقة نقل التطبيق فتدير المصادقة والرسائل والاتصال والجلسة وصيغة URI الخاصة بالنقل. الاتفاق في الطبقة الوسطى لا يمنحها سلطة على دلالة البيانات أو على آلية الوصول إليها.

قال النص بوضوح إن مخطط النواة لا يحتوي إلا على نوع أساس واحد للاستعلام ونوعين مستقلين من النتائج، ولا يعرّف بنية سجل. لذا كانت فائدته محدودة إذا استُخدم منفرداً. لم تكن تلك ثغرة تنتظر عميلًا ذكياً ليملأها. كان لكل نوع سجل URN يحدد أيضاً فضاء أسماء XML ومخططه، وهناك توضع المعرفة الخاصة. ويمكن للخدمة أن تدعم أكثر من نوع من دون أن تفرض النواة شجرة عالمية على العلاقات بينها.

تُظهر المواصفات المتخصصة هذا التقسيم. فقد عرّفت RFC 3982 وصفحة حالتها نوع سجل أسماء النطاقات، فيما عرّفت RFC 4698 نوع سجل موارد العناوين. وجود مخططين ليس ترميماً للنواة، بل هو المكان المقصود لدلالتين مختلفتين.

وفرت النواة عملية lookupEntity التي تحمل نوع السجل وفئة الكيان واسمه. لكنها لم تضع لغة بحث معيارية مشتركة بين كل أنواع IRIS. فكل نوع يحدد عمليات البحث التي تناسب بياناته وحدوده التشغيلية. وهنا ظهر ما سمّته الملحقات «إغراء العميل الشامل».

يستطيع عميل عام إرسال lookup وعرض استجابة أولية. لكنه يحتاج إلى معرفة بالبيانات كي يصوغ بحثاً مفيداً أو يقدم نتيجة مفهومة. وإضافة لغة استعلام مشتركة لا تمحو تلك المعرفة؛ إنها تجبر العميل على ضغط قصد المستخدم في أدنى قاسم مشترك، مع بقاء حاجة المستخدم إلى فهم المجال.

وكان للرفض سبب تشغيلي أيضاً. فخدمة سجل موجهة للجمهور لا تستطيع تحمل كل تعبير تسمح به اللغة نظرياً. وقد تفيد مطابقة القيم الجزئية عبر فهارس عدة خبيراً، كما تفيد مستخدماً مسيئاً. وعندما يعطّل المشغل الاستعلامات المكلفة لحماية الخدمة، تبقى اللغة مشتركة لكن وظائفها لا تعمل بصورة مشتركة. وتحفظ RFC 3707 وصفحة حالتها متطلبات CRISP السابقة بشأن البحث والإحالة الموزعة والإصدارات والمستخدمين المسيئين. وهي سياق للتصميم، لا قياساً لمعدل الإساءة أو للأداء.

حتى الإحالات لم تكن نتيجة واحدة بالمعنى نفسه. فمرجع الكيان يعني أن الخادم يملك معرفة محددة عن كيان آخر. أما استمرار البحث فيشير فقط إلى أن جهة أخرى قد تقود إلى المطلوب أو إلى مادة مختلفة أو إلى لا شيء. وطُلب من العميل اتباع كل منهما مرة واحدة فقط تجنباً لدورة إحالات. لذلك لا يثبت وصول الاستمرار إمكانية الوصول إلى الوجهة أو سلطتها النهائية أو وجود جواب.

وفصلت الأخطاء مراحل الحكم أيضاً. يشير invalidName إلى الصياغة، وinvalidSearch إلى معنى البحث، وqueryNotSupported إلى قدرة الخادم، وlimitExceeded إلى سياسة الموارد، وnameNotFound إلى غياب الاسم في الفهرس، وpermissionDenied إلى أن المصادقة لا تمنح نتيجة معينة. صلاحية XML لا تعني صلاحية السؤال أو الإذن بالإجابة.

بقي النقل قابلاً للتبديل. فقد ربطت RFC 3983 وسجل حالتها IRIS بـ BEEP. ثم حدّثت RFC 4992 النواة عبر XPC، وهو نقل فوق TCP يقسم XML ويرسله في خط أنابيب؛ وتوثق صفحة الحالة والتصويبات وDatatracker ذلك التحديث. تغيير التأطير أو الجلسة لا يغيّر معنى استعلام سجل النطاق أو العناوين.

يسجل سجل IANA لمخططات URI حتى اليوم iris ومخططات نقل مرتبطة، ويحتفظ سجل XML لدى IETF بفضاء الأسماء iris1. هذه أدلة تسجيل بروتوكولي فقط، لا أدلة على خادم حي أو تبنٍ واسع أو استعلام ناجح.

كانت مساهمة RFC 3981 التاريخية ضبط حدود التوحيد. فقد وحّدت الوصلات التي تمر عبرها الرسائل، وتركت لكل مجال أن يقرر معنى محتواه. لم تكن النواة غير المكتملة مشروعاً ناقصاً؛ كانت وسيلة تمنع القالب المشترك من التنكر في صورة فهم شامل.

Sources