الخلاصة
- وصفت Mary Shaw استدعاء الإجراء بأنه لغة التجميع للترابط البرمجي: آلية منخفضة المستوى تُستخدم لترميز علاقات أغنى بكثير.
- يميز إطارها بين المكوّن والموصل ونقطة المشاركة والدور والبروتوكول والتكوين والنمط المعماري وواجهة الوحدة وخاصية النظام.
- الموصل من الدرجة الأولى علاقة معمارية محددة، وليس مرادفاً للخدمات المصغرة أو شبكة الخدمات أو بوابة API أو التحقق الشكلي التلقائي.
ارسم صندوقين وخطاً بينهما. سرعان ما يُسمّى الصندوقان محللاً ومخزناً أو متحكماً. أما الخط فيبقى غامضاً. هل ينقل تدفقاً أم يستدعي عملية؟ هل يستطيع إعادة الترتيب أو التكرار أو الحجب أو البث؟ من يبدأ التبادل، وأي ضمان يبقى بعد العطل؟ لا يجيب الرسم عن ذلك.
من هذا التفاوت انطلق تقرير Mary Shaw الصادر عن Software Engineering Institute في يناير 1994 بعنوان Procedure Calls Are the Assembly Language of Software Interconnection: Connectors Deserve First-Class Status. كانت هندسة البرمجيات قد طورت طرقاً جيدة لوصف الحساب والبيانات داخل الوحدة، لكن العلاقات بين الوحدات بقيت موزعة في الشيفرة أو مضمرة في الأعراف أو مختزلة إلى أسهم بلا أسماء.
تشبيه لغة التجميع لا ينتقص من استدعاء الإجراء. إنه يحدد مستوى التجريد. يفرض خط الأنابيب ونظام الأحداث وحوار العميل والخادم والوصول إلى تمثيل مشترك التزامات مختلفة. اختزالها كلها في «A يستدعي B» يمحو معلومات الترتيب والتسليم والتزامن والربط وسلوك النظام ككل.
ما لا يقوله الخط
تسرد واجهة الوحدة الإجراءات أو الأنواع أو المتغيرات المكشوفة. وهي تصف وحدة من الشيفرة، لكنها لا تحدد بالضرورة بروتوكول تفاعل متعدد الخطوات أو مسؤولية كل طرف أو الخاصية المطلوبة من النظام المركب.
قد يستهلك مرشح ما تدفقاً وينتجه وفق قواعد محددة. تغليفه في إجراء لا يلغي مسؤولية التخزين المؤقت والجدولة ونهاية التدفق. إذا لم تظهر هذه الواجبات إلا في شيفرة الربط، فلن يكون لأهم عقد معماري اسم.
ينطبق الأمر نفسه على الأحداث والمستودعات المشتركة وبروتوكولات الشبكة. تنفذ الآلية الاتصال، لكنها لا تستنفد معناه. جعل الموصل من الدرجة الأولى يعني إمكان تسميته وتحديده وإنشائه وفحصه مباشرة بوصفه كياناً معمارياً.
مفردات تفصل مستويات التصميم
المكوّن هو موضع الحساب والحالة. ونقاط مشاركته الظاهرة هي players: إجراء أو منفذ أو طرف تدفق.
الموصل هو موضع العلاقة بين المكوّنات. يحدد البروتوكول التفاعل المسموح وضماناته، بينما تصف الأدوار مسؤوليات العميل والخادم أو المنتج والمستهلك أو الناشر والمشترك.
التكوين هو التصميم المركب الذي يربط نقاط مشاركة المكوّنات بأدوار الموصلات. عند هذا الربط يمكن السؤال هل تفي نقطة المشاركة بالدور، وهل البروتوكولات متوافقة، وهل يدعم الشكل الكلي السلوك المقصود.
أما النمط المعماري فهو عائلة قابلة لإعادة الاستخدام تقيّد أنواع المكوّنات والموصلات وكيفية ترتيبها. خط الأنابيب والمرشح، والعميل والخادم، والطبقات، والسبورة أنماط وليست تكوينات بعينها.
تصف واجهة الوحدة ما تكشفه وحدة واحدة. أما خاصية النظام، مثل السعة أو معدل النقل أو الاتساق أو الاعتمادية أو التوافق، فتنشأ من التجميع. قد تتوافق تواقيع الطرفيات نوعياً بينما يتوقف الحوار، وقد تنفذ خدمتان واجهتين صحيحتين وتختلفان في سلامة إعادة المحاولة. عندها يكون الخلل في بروتوكول الموصل أو في ربط نقطة مشاركة بدور.
من الحجة إلى اللغة والدلالة
كان تقرير Shaw جزءاً من برنامج جماعي في Carnegie Mellon. قدم David Garlan وMary Shaw معمارية البرمجيات باعتبارها مستوى تصميم يهتم بالتنظيم واسع النطاق والتفاعل والأنماط المتكررة. وأوضح عملهما على لغات معمارية أعلى مستوى لماذا لا تكفي آليات الوحدات والرسوم غير الرسمية لوصف البروتوكولات وبدائل التصميم.
دفع Robert Allen وDavid Garlan فكرة الموصل نحو دلالة شكلية. ففي بحثهما المقدم إلى ICSE عام 1994، عومل الموصل كمجموعة بروتوكولات منظمة حول أدوار، ودُرس التوافق بطريقة تشبه فحص الأنواع. هذه مساهمة Allen وGarlan، ولا يصح إذابة جميع أعمال البرنامج في سيرة Shaw وحدها.
جعل UniCon الفكرة ملموسة. يحمل العمل أسماء Mary Shaw وRobert DeLine وDaniel V. Klein وTheodore L. Ross وDavid M. Young وGregory Zelesnik. ظهرت المكوّنات والموصلات كبنيتين متوازيتين، وربطت التكوينات نقاط المشاركة بالأدوار، ووُضع تدفق البيانات والجدولة على مستوى التصميم نفسه مع استدعاءات الإجراءات.
لكن الحدود كانت معلنة أيضاً. قدم UniCon أنواع موصلات بدائية مدمجة بدلاً من موصلات يعرّفها المستخدم بحرية، ولم تدعم تلك النسخة الموصلات المركبة، كما قللت مخارج عامة من قدرة الأدوات على الفحص. تجعل المواصفة التحليل ممكناً، لكنها لا تنتج برهاناً تلقائياً.
ليس اسماً آخر لبنية حديثة
الخدمة المصغرة حد للحساب والنشر والملكية، ولذلك تشبه المكوّن أكثر. تستطيع شبكة الخدمات تنفيذ النقل والهوية والقياس وإعادة المحاولة، ويمكن لبوابة API إدارة الدخول والتوجيه والسياسة. قد يحقق أي منهما جزءاً من الموصل، لكنه لا يحدد وحده ترتيب العمل أو عدم تكرار الأثر أو انتقالات الحالة أو الثوابت الممتدة بين الخدمات.
ولا تعني «الدرجة الأولى» تحققاً شكلياً مضموناً. قد تسمح المواصفة الدقيقة بتحليل التوافق أو اختبار العقد أو مراجعة صارمة. تعتمد قوة النتيجة على الدلالة والخاصية المعلنة والأداة المستخدمة.
كان الأثر الدائم لحجة Shaw إعادة توزيع الانتباه. لا ينبغي أن تستحوذ الصناديق على كل الأسماء ويبقى الخط علامة ترقيم. يجب تسمية العلاقة وبروتوكولها وأدوارها، وبيان كيفية ربط نقاط المشاركة، وتحديد خاصية النظام التي تعتمد على التجميع. كثير من الأنظمة لا يفشل لأن مكوّناً لا يحسب، بل لأن مكوّنين معقولين محلياً يلتقيان عبر عقد للترتيب أو الزمن أو الحالة أو التعافي لم يُكتب قط.
المصادر
- Mary Shaw، «Procedure Calls Are the Assembly Language of Software Interconnection»
- تقرير SEI لعام 1994 بصيغة PDF
- David Garlan وMary Shaw، «An Introduction to Software Architecture»
- Robert Allen وDavid Garlan، «Formalizing Architectural Connection»
- بحث UniCon بأسماء Shaw وDeLine وKlein وRoss وYoung وZelesnik
- تاريخ معمارية البرمجيات في Carnegie Mellon
- الملف الرسمي لـ Mary Shaw في Carnegie Mellon
إحاطة الأعضاء
سياق أعمق للملف الشخصي
سجّل الدخول بمستوى العضوية المناسب لفتح الإحاطة الكاملة وملاحظات المصادر.
للدائرة الاستراتيجية فقط
الدائرة الاستراتيجية
مفتوح لجميع القراء. افتح إحاطات الملف الشخصي بعد الانضمام وتسجيل الدخول.
انضم إلى الدائرة الاستراتيجيةلأعضاء تحالف القيادات فقط
تحالف القيادات
لأصحاب الأصول الفكرية المؤهلين وللإدارة؛ سجّل الدخول للوصول إلى إحاطات التحالف.
انضم إلى تحالف القيادات
