الخلاصة
- أضاف RFC 3382 إلى IPP صيغة اختيارية تجمع في قيمة واحدة أعضاء مسمّين ذوي أنواع مختلفة، وتسمح بمجموعات متداخلة وبأعضاء اختياريين يمكن إضافتهم لاحقاً.
- لم يكن ترتيب الأعضاء ذا سلطة دلالية؛ فقد كان في وسع الطابعة إرجاعهم بترتيب آخر، ولذلك حملت الأسماء الفريدة وحدود المجموعة المعنى بدلاً من الموضع.
يرسل العميل ثلاثة أعضاء داخل مجموعة. تعيد الطابعة الأعضاء الثلاثة أنفسهم، لكن الأول صار أخيراً. سيرى المستهلك الذي يجعل الموضع هويةً أن البيانات فسدت. أما المستهلك الذي يطبق RFC 3382 فسيفحص الاسم والصيغة والقيمة والحد الذي يضم الأعضاء. تغيّر التمثيل، لكن علاقة الانتماء لم تتغير بالضرورة.
نُشرت الوثيقة في سبتمبر 2002 ضمن مسار المعايير، وسدّت فجوة بنيوية في Internet Printing Protocol. كان IPP يستطيع تمثيل قيم بسيطة ومتكررة كثيرة، لكنه افتقر إلى طريقة عامة تقول إن سمات غير متجانسة تكوّن وحدة واحدة. شبّه النص الحل بقاموس PostScript أو Map في Java. كان التشبيه متعلقاً بالربط عبر الاسم، لا باستيراد نموذج كائنات لغة برمجة كاملاً.
تتكون المجموعة من سمة عضو واحدة أو أكثر. يحتفظ كل عضو باسمه وصيغته الخاصة: عدد صحيح أو كلمة مفتاحية أو نطاق أو نوع IPP آخر. ويمكن أن يكون العضو نفسه مجموعة، أو مجموعة من المجموعات. لم يمح الوعاء اختلاف الأنواع؛ بل رسم حداً حول قيم مترابطة.
لكن هذا الحد لم يعد بترتيب ثابت. كان يجوز ظهور الأعضاء بأي ترتيب، وكان يجوز للطابعة تخزينهم وإرجاعهم على نحو مختلف عن الطلب. لذلك لا يمكن أن تعني القيمة الثانية الارتفاع دائماً، ولا أن تعني الأخيرة اللون دائماً. الموضع خاص بعملية تسلسل واحدة، أما الهوية فتتبع الاسم ضمن نطاقه.
كان على الوثيقة التي تعرّف سمة مجموعة حقيقية أن تحدد الاسم، وهل القيمة مفردة أم متعددة، وسياق الاستخدام، وطريقة إعلان الأعضاء المدعومين. وكان عليها لكل عضو أن تحدد الاسم ودرجة الإلزام والصيغة والدلالة والقيود والقيم المدعومة والقيم الافتراضية. وفّر RFC 3382 نحو البنية، لكنه لم يعف التعريفات اللاحقة من كتابة عقد دقيق.
وجب أن تكون أسماء الأعضاء فريدة داخل تعريف واحد. وكان يمكن استعمال الاسم نفسه في مجموعة أخرى أو في فضاء أسماء IPP الأوسع، لأن حد المجموعة يحدد النطاق. سمح ذلك بإعادة استخدام المفردات، مع إبقاء البحث داخل كل قيمة غير ملتبس.
إذا تكرر اسم عضو داخل قيمة مجموعة أصبحت القيمة سيئة الصياغة. لم يكن على العملاء إرسالها، ولم يكن على الطابعات إرجاعها. وعند استقبالها، أمكن للطابعة رفض الطلب، أو قبوله واستخدام نسخة واحدة فقط بحسب التنفيذ. لم يقرر RFC أن النسخة الأولى تفوز أو أن الأخيرة تفوز. حين تضيع فرادة الاسم لا يستطيع ترتيب البايتات إصلاح المعنى بصورة قابلة للنقل.
لهذه القاعدة أثر تشغيلي وأمني. إذا اختار مكوّن التحقق نسخة واختار مكوّن التنفيذ نسخة أخرى، فقد تختلف القيمة المفحوصة عن القيمة المستعملة. لم تنسب الوثيقة هذا السلوك إلى منتج بعينه، ولا يثبت نشرها مقدار التبني. لكنها منعت تحويل مصادفة تنفيذية إلى وعد صادر عن البروتوكول.
زاد التعشيش القدرة التعبيرية. لم يوجد حد عالمي واحد لطول المجموعة كلها، لكن كل عضو ظل خاضعاً لحدود صيغته. لم تصبح البنية وثيقة حرة بلا قواعد؛ بقيت الأوراق قيماً من IPP، وبقي على وثيقة التعريف وصف التركيب المسموح.
أتاح الأعضاء الاختياريون التطور. لم يكن على تنفيذ قديم أن يتظاهر بفهم عضو جديد، لكنه احتاج إلى إظهار ما لا يدعمه مع الحفاظ على السياق. أمكن وضع العضو غير المدعوم أو المتعارض داخل مجموعة في Unsupported Attributes Group. لو سُوّي الخطأ إلى سمة عليا منفصلة لضاع النطاق الذي يبين أي استعمال للاسم فشل.
استخدم الترميز على السلك وسوم begin-collection وmember-name وend-collection لتأطير البنية. راعى التصميم محللات IPP القديمة كي لا تخلط اسم العضو الداخلي بسمة عادية في المستوى الأعلى. لم تعنِ التوافقية أن التنفيذ القديم فهم الدلالة الجديدة؛ بل قللت احتمال أن يتحول الجهل إلى تفسير خاطئ.
كانت أمثلة media-col وjob-sheet-col توضيحية. بينت طريقة وصف الأعضاء الإلزاميين والاختياريين، وآلية اكتشاف الدعم والتعشيش. لكنها لم تعرّف وحدها سمات معيارية منشورة في المنتجات. ظل التعريف الحقيقي محتاجاً إلى وثيقة أخرى.
تناول RFC 3380 ذرّية تغيير سمات مهمة الطباعة، وتناول RFC 3381 عدادات تقدم يتغير معناها باختلاف ترتيب النسخ وحد الرصد. أما RFC 3382 فسأل سؤال تمثيل آخر: كيف تسافر قيم ذات أنواع مختلفة كوحدة واحدة من دون أن يصبح ترتيبها المادي جزءاً من معناها؟
حدّث الامتداد RFC 2910 وRFC 2911. ظهرت أسس IPP/1.0 في RFC 2565 وRFC 2566، وسجل RFC 2567 المتطلبات، وشرح RFC 2568 التصميم. ثم جمع RFC 8010 وRFC 8011 الترميز والنموذج لاحقاً. يحدد هذا التسلسل موقع الآلية في التاريخ، لكنه لا يثبت تنفيذها في منتج أو نجاح طباعة.
يبقى الفصل بين العضوية والترتيب مهماً لأن الأنظمة تمنح العرض سلطة زائفة بسهولة. ينتج المحلل قائمة، وتعرضها الواجهة كما هي، ثم يكتسب العنصر الثالث معنى لم تمنحه له المواصفة. ينهار الافتراض عندما يرتب المسلسل الحقول، أو يدخل عضو اختياري، أو يعيد وسيط بناء المجموعة من خريطة.
توضح عدسة Lu Heng حول الحد الأدنى للمواصفة الأولية اقتصاد التصميم: توحيد أصغر وعاء قابل لإعادة الاستخدام، وواجبات من يعرّف مجموعة لاحقة، من دون اتخاذ كل قرارات المستقبل مسبقاً. وتفصل عدسة طبقات الواقع بين ترتيب الترميز وهوية العضو وحالة الدعم وقبول الطلب والفعل المادي.
لم يكن إنجاز RFC 3382 مجرد إحاطة قيم بعلامات. لقد حفظ علاقة مع السماح للتمثيل بالحركة. أبقت المجموعة أعضاءها معاً؛ وحفظت الأسماء الفريدة والحدود الصريحة قابليتهم للفهم. وبقي الترتيب خاصية عارضة لترميز واحد.
المصادر
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
