اقتران ضعيف
على سبيل التعريف، اقتران ضعيف في تصميم الحوسبة والأنظمة، يعتبر النظام غير المترابط واحدًا
وفي السياق ذاته، التي ترتبط فيها المكونات ارتباطًا ضعيفًا (لها علاقة قابلة للكسر) مع بعضها البعض، وبالتالي، فإن التغييرات في أحد المكونات أقل تأثيرًا على وجود أو أداء مكون آخر.
إضافةً إلى ذلك، حيث يكون لكل من مكوناته، أو يستعمل، معرفة قليلة أو معدومة بتعريفات المكونات المنفصلة الأخرى. تشمل المناطق الفرعية اقتران الفئات والواجهات والبيانات والخدمات. الوصلة السائبة هي عكس أداة التوصيل الضيقة.
في البرمجة
وعلى صعيد آخر، يشير الاقتران إلى درجة المعرفة المباشرة التي يمتلكها أحد المكونات عن الآخر. يتم تفسير الاقتران السائب في الحوسبة على أنه تغليف مقابل عدم تغليف.
من جانب آخر، هذا مخطط UML يوضح مثالاً على الاقتران السائب بين فئة تابعة ومجموعة من الفئات الملموسة، والتي توفر السلوك المطلوب:
ومن جهة أخرى، للمقارنة، يوضح هذا الرسم البياني التصميم البديل مع اقتران قوي بين الفئة التابعة والمزود:
وفي هذا السياق، مثال على الاقتران الضيق يحدث عندما تحتوي فئة تابعة على مؤشر مباشر لفئة ملموسة توفر السلوك المطلوب. لا يمكن استبدال التبعية، أو تغيير «توقيعها»، دون الحاجة إلى تغيير الفئة التابعة. يحدث الاقتران السائب عندما تحتوي الفئة التابعة على مؤشر للواجهة فقط، والذي يمكن تنفيذه لاحقًا بواسطة فئة محددة واحدة أو أكثر. تبعية الفئة التابعة هي «عقد» تحدده الواجهة؛ قائمة محددة من الأساليب و / أو الخصائص التي يجب أن توفرها الفئات المنفذة. وبالتالي، فإن أي فئة تنفذ الواجهة يمكنها تلبية تبعية فئة تابعة دون الحاجة إلى تغيير الفئة. هذا يسمح بالتوسع في تصميم البرامج؛ يمكن كتابة فئة جديدة تنفذ واجهة لتحل محل التبعية الحالية في بعض المواقف أو جميعها، دون الحاجة إلى تغيير الفئة التابعة؛ يمكن تبادل الفصول الجديدة والقديمة بحرية. الاقتران القوي لا يسمح بذلك.
قياس اقتران عنصر البيانات
كذلك، يمكن قياس درجة الاقتران السائب من خلال ملاحظة عدد التغييرات في عناصر البيانات التي يمكن أن تحدث في أنظمة الإرسال أو الاستقبال وتحديد ما إذا كانت أجهزة الكمبيوتر ستستمر في الاتصال بشكل صحيح. تتضمن هذه التغييرات عناصر مثل:
- إضافة عناصر بيانات جديدة للرسائل
- تغيير ترتيب عناصر البيانات
- تغيير أسماء عناصر البيانات
- تغيير هياكل عناصر البيانات
- حذف عناصر البيانات
في التكامل
أسلوب الاتصال غير المتزامن،
وفي السياق ذاته، تم اختراع البرمجيات الوسيطة Enterprise Service Bus (ESB) لتحقيق اقتران فضفاض بأبعاد متعددة؛ ومع ذلك، يمكن أن يكون للمخازن الإلكترونية (ESBs) التي تمت هندستها بشكل خاطئ والمهيأة تأثيرًا معاكسًا وتخلق اقترانًا ضيقًا غير مرغوب فيه ونقطة فعالة معمارية مركزية.
من جانب آخر، يتم تحقيق الاقتران السائب في تصميم النظام الموزع الأوسع من خلال استخدام المعاملات وقوائم الانتظار التي توفرها البرامج الوسيطة الموجهة للرسائل ومعايير قابلية التشغيل البيني.
الاتصالات المادية عبر الوسيط،
السيطرة الموزعة على منطق العملية،
كذلك، أربعة أنواع من الاستقلالية، والتي تعزز الاقتران السائب، هي: استقلالية المرجع، واستقلالية الوقت، واستقلالية التنسيق، واستقلالية النظام الأساسي.
الأنواع الشائعة البسيطة فقط في نموذج البيانات،
نظام نوع ضعيف،
النشر في أوقات مختلفة،
الربط الديناميكي (لمستهلكي ومقدمي الخدمة)،
ترقيات ضمنية في تعيين الإصدار.
ومن ناحية أخرى، الاقتران السائب هو مبدأ معماري وهدف تصميمي في البنى الموجهة نحو الخدمة (بنية خدمية ) ؛ يتم سرد أحد عشر شكلاً من أدوات التوصيل السائبة ونظيراتها من أدوات التوصيل الضيقة في:
الرسائل المتمحورة حول البيانات والقائمة بذاتها،
كذلك، التعويض على مستوى الأعمال بدلاً من المعاملات على مستوى النظام،
منصة الاستقلال،
طرق لتقليل الاقتران
في هذا الإطار، يمكن تحسين الاقتران غير المحكم للواجهات عن طريق نشر البيانات بتنسيق قياسي (مثل XML أو JSON).
وعلى صعيد آخر، يمكن تحسين الاقتران السائب بين مكونات البرنامج باستخدام أنواع البيانات القياسية في المعلمات. يتطلب تمرير أنواع البيانات أو الكائنات المخصصة أن يكون لدى كلا المكونين معرفة بتعريف البيانات المخصص.
إضافةً إلى ذلك، يمكن تعزيز الاقتران السائب للخدمات عن طريق تقليل المعلومات التي يتم تمريرها إلى الخدمة إلى البيانات الرئيسية. مثلًا، الخدمة التي ترسل خطابًا هي الأكثر قابلية لإعادة الاستخدام عندما يتم تمرير معرف العميل فقط ويتم الحصول على عنوان العميل داخل الخدمة. يؤدي هذا إلى فصل الخدمات لأن الخدمات لا تحتاج إلى أن يتم استدعاؤها بترتيب معين (مثلًا، GetCustomerAddress، SendLetter).
المميزات والعيوب
وفي هذا السياق، يمكن استبدال المكونات الموجودة في نظام غير محكم التوصيل بتطبيقات بديلة توفر نفس الخدمات. تكون المكونات الموجودة في نظام غير محكم الاقتران أقل تقييدًا على نفس النظام الأساسي أو اللغة أو نظام التشغيل أو بيئة البناء.
إضافةً إلى ذلك، إذا انفصلت الأنظمة في الوقت المناسب، فمن الصعب كذلك توفير تكامل المعاملات؛ بروتوكولات تنسيق إضافية مطلوبة. يوفر تكرار البيانات عبر الأنظمة المختلفة اقترانًا غير محكم (متوفر)، ولكنه يخلق مشكلات في الحفاظ على الاتساق (مزامنة البيانات).
أشكال أخرى
ومن جهة أخرى، لغات برمجة الكمبيوتر التي تحتوي على مفاهيم إما الوظائف كوحدة أساسية (انظر البرمجة الوظيفية) أو وظائف ككائنات تقدم أمثلة ممتازة على البرمجة غير المترابطة. اللغات الوظيفية لها أنماط من الاستمرارية أو الإغلاق أو المولدات. انظر كلوجر وليسب كأمثلة على لغات برمجة الوظائف. تحتوي اللغات الموجهة للكائنات مثل سمول توك وروبي على كتل تعليمات برمجية، بينما لدى ايفل وكلاء. الفكرة الأساسية هي تجسيد (تغليف ككائن) وظيفة مستقلة عن أي مفهوم مرفق آخر (مثلًا، فصل وظيفة الكائن عن أي معرفة مباشرة بالكائن المرفق). راجع وظيفة الدرجة الأولى للحصول على نظرة ثاقبة للوظائف ككائنات، والتي تعتبر شكلاً واحدًا من وظائف الدرجة الأولى.
وفي هذا السياق، مثلًا: تزود إحدى الكيانات أخرى برقم هاتف للاتصال بها لإنجاز مهمة معينة. عندما يتم الاتصال بالرقم، فإن الكيان المتصل يقول فعليًا، «من فضلك قم بهذه المهمة من أجلي». الانفصال أو اقتران فضفاض واضح على الفور. قد لا يكون لدى الكيان الذي يتلقى الرقم المراد الاتصال به أي معرفة بمصدر الرقم (مثلًا، إشارة إلى مورد الرقم). على الجانب الآخر، يتم فصل المتصل عن معرفة محددة بمن يتصلون، ومكان وجودهم، ومعرفة كيفية عمل متلقي المكالمة داخليًا.
وفي هذا السياق، لذلك، مثلًا، في لغة موجهة للكائنات، عندما تتم الإشارة إلى وظيفة كائن ما ككائن (مما يحرره من معرفة أي كائن مضيف محاط به)، يمكن تمرير كائن الوظيفة الجديد وتخزينه واستدعائه في في وقت لاحق. يمكن للكائنات المستلمة (التي يتم منحها هذه الكائنات الوظيفية) تنفيذ (استدعاء) الوظيفة المضمنة بأمان على راحتهم دون أي معرفة مباشرة بكائن المضيف المرفق. بهذه الطريقة، يمكن للبرنامج تنفيذ سلاسل أو مجموعات من الكائنات الوظيفية، بينما ينفصل بأمان عن أي مرجع مباشر لكائن المضيف المرفق.
ومن ناحية أخرى، أرقام الهواتف تناظرية ممتازة ويمكن أن توضح بسهولة درجة هذا الفصل.
وعلى صعيد آخر، إذا أخذنا المثال: خطوة إلى الأمام، فقد يقول المتصل لمتلقي المكالمة، «من فضلك قم بهذه المهمة من أجلي. اتصل بي مرة أخرى على هذا الرقم عند الانتهاء». يشار إلى «الرقم» الذي يتم تقديمه إلى المتلقي باسم «معاودة الاتصال». مرة أخرى، يبدو الارتباط الفضفاض أو الطبيعة المنفصلة لهذا الكائن الوظيفي واضحًا. متلقي معاودة الاتصال غير مدرك لما أو من يتم الاتصال به. إنه يعرف فقط أنه يمكنه إجراء المكالمة ويقرر بنفسه وقت الاتصال. في الواقع، قد لا تكون معاودة الاتصال للشخص الذي قام بمعاودة الاتصال في المقام الأول. هذا المستوى من المراوغة هو ما يجعل الكائنات الوظيفية تقنية ممتازة لتحقيق البرامج غير المترابطة.
📝 هل في هذه المقالة خطأ؟
إذا وجدت معلومة تحتاج تصحيحاً أو إضافة، أو أردت حذف المقالة، أرسل لنا طلباً وسنراجعه.
ما رأيك في هذه المقالة؟