الخلاصة

  • في 1996 تفرع Duane Wessels عن آخر إصدار غير تجاري من Harvest Cache Daemon، وسمّى الفرع المستقل Squid، ثم نشر الإصدار 1.0.0 في يوليو.
  • تكشف تعديلات Squid الأولى عن استمرارية تحققت بالصيانة: طلبات HTTP الشرطية، وعناصر HTTPS، وإعادة بناء مخزن القرص بينما ظل النظام يخدم الطلبات.

قد ينتهي مشروع بحثي بينما تواصل إحدى أدواته الاستجابة للطلبات. كان هذا هو السؤال العملي الذي واجه ذاكرة الويب المؤقتة في Harvest عام 1996. طوّر Harvest عدة مكونات، منها ذاكرة لتخزين العناصر، لكن بعض أعضاء المشروع انتقلوا إلى القطاع الصناعي في وقت بدأ فيه بحث منفصل عن التخزين المؤقت بتمويل من NSF. وكان Duane Wessels، الذي عمل سابقاً في Harvest، بحاجة إلى شيفرة متاحة للعامة لدعم ذلك النشر والبحث. وفي روايته التقنية اللاحقة قال إنه بدأ من آخر إصدار لـHarvest قبل التسويق التجاري، وحسّنه، وسمّى الفرع Squid لتمييزه عن مسار تجاري آخر انبثق من الشيفرة.

كان للتفرع غرض تشغيلي محدد. توضع الذاكرة المؤقتة بين المستخدمين وخوادم الويب البعيدة، وتحتفظ بنسخ من العناصر الرائجة كي تُخدم الطلبات المتكررة من موقع أقرب. كما دعم Harvest تراتبية الذاكرات المؤقتة. ولم تقتصر الحاجة على المختبر: تذكر دراسة عن النشر في نيوزيلندا عام 1996 أن Harvest Cache دخل الاستخدام الإنتاجي في أكتوبر 1995. وبحلول فبراير، كان خادم واحد يعالج حجماً يعادل نحو خمسة في المئة من حركة الإنترنت بين نيوزيلندا وبقية العالم. هذا تقدير مشغّل في نطاق جغرافي محدد، وليس مقياساً للاعتماد العالمي.

لم يكن الإصدار الأول من Squid مجرد اسم جديد لأرشيف لم يتغير. يحدد سجل تغييرات النسخة التجريبية 1.0، المؤرخ في 19 أبريل 1996، الشيفرة الأساسية باسم Harvest cached-1.4.pl3، ويسجل إضافة دعم طلبات If-Modified-Since، وعناصر SSL، وإعادة بناء مخزن القرص في الخلفية أثناء استمرار خدمة الطلبات. تعالج هذه التغييرات مسائل تشغيل الوكيل: التحقق من تحديث العنصر المحفوظ، والتعامل مع أنواع اتصال أوسع، وصيانة التخزين من دون إيقاف الخدمة. صدر Squid 1.0.0 رسمياً في يوليو.

تصف رواية Wessels اللاحقة عاماً من مساهمات الشيفرة والتصحيحات وطلبات الميزات وتقارير الأخطاء. ويوضح سجل التغييرات ذلك بصورة أدق: ظهرت إصلاحات في إصدارات متعاقبة، واستمر Squid في معالجة التوافق مع الذاكرات المجاورة التي تستخدم Harvest. وفي 1997 وثّقت RFC 2186 بروتوكول ICP، وهو تبادل سريع لطلبات واستجابات بين الذاكرات المتجاورة، وربطت جذوره بالتخزين الهرمي في Harvest. أتاح التفرع تغيير البرنامج مع الإبقاء على أساليب تفاعل تستطيع ذاكرات أخرى فهمها.

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

المصادر