اقتران فضفاض

في تصميم الحوسبة والأنظمة ، النظام المترابط بشكل فضفاض هو أحد

  1. حيث تكون المكونات مرتبطة بشكل ضعيف (لديها علاقات قابلة للكسر) مع بعضها البعض، وبالتالي فإن التغييرات في أحد المكونات تؤثر بشكل أقل على وجود أو أداء مكون آخر.
  2. حيث يكون لكل من مكوناته معرفة قليلة أو معدومة بتعريفات المكونات المنفصلة الأخرى أو يستخدمها. تشمل المناطق الفرعية اقتران الفئات والواجهات والبيانات والخدمات. [1] الاقتران الفضفاض هو عكس الاقتران الضيق.

المميزات والعيوب

يمكن استبدال المكونات في النظام المرتبط بشكل فضفاض بتطبيقات بديلة توفر نفس الخدمات. تكون المكونات في النظام المرتبط بشكل فضفاض أقل تقييدًا بنفس المنصة أو اللغة أو نظام التشغيل أو بيئة البناء.

إذا تم فصل الأنظمة في الوقت المناسب، فمن الصعب أيضًا توفير سلامة المعاملات؛ حيث تكون هناك حاجة إلى بروتوكولات تنسيق إضافية. يوفر تكرار البيانات عبر أنظمة مختلفة اقترانًا فضفاضًا (في التوافر)، ولكنه يخلق مشكلات في الحفاظ على الاتساق ( مزامنة البيانات ).

في التكامل

يتم تحقيق الاقتران الفضفاض في تصميم النظام الموزع الأوسع من خلال استخدام المعاملات، والطوابير التي توفرها برامج الوسيطة الموجهة للرسائل ، ومعايير التشغيل البيني. [2]

هناك أربعة أنواع من الاستقلالية التي تعزز الاقتران الفضفاض، وهي: استقلالية المرجع ، واستقلالية الوقت ، واستقلالية التنسيق ، واستقلالية المنصة . [3]

يعتبر الاقتران الفضفاض مبدأ معماري وهدف تصميمي في العمارة الموجهة نحو الخدمة . تم إدراج أحد عشر شكلاً من أشكال الاقتران الفضفاض ونظيراتها من الاقتران الضيق في: [4]

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

تم اختراع برنامج Enterprise Service Bus (ESB) الوسيط لتحقيق اقتران فضفاض في أبعاد متعددة. [5] ومع ذلك، فإن ESBs المفرطة الهندسة والموضعة بشكل غير صحيح يمكن أن يكون لها أيضًا تأثير معاكس وتخلق اقترانًا ضيقًا غير مرغوب فيه ونقطة اتصال معمارية مركزية.

تهدف الهندسة المعمارية الموجهة للأحداث أيضًا إلى تعزيز الاقتران الفضفاض. [6]

طرق تقليل الاقتران

من الممكن تحسين الاقتران الفضفاض للواجهات من خلال نشر البيانات بتنسيق قياسي (مثل XML أو JSON ).

يمكن تحسين الاقتران الفضفاض بين مكونات البرنامج باستخدام أنواع البيانات القياسية في المعلمات. يتطلب تمرير أنواع البيانات أو الكائنات المخصصة أن يكون لدى كلا المكونين معرفة بتعريف البيانات المخصصة.

يمكن تحسين الربط غير الدقيق للخدمات من خلال تقليل المعلومات التي يتم تمريرها إلى الخدمة إلى البيانات الأساسية. على سبيل المثال، تكون الخدمة التي ترسل خطابًا أكثر قابلية لإعادة الاستخدام عندما يتم تمرير معرف العميل فقط ويتم الحصول على عنوان العميل داخل الخدمة. يؤدي هذا إلى فصل الخدمات لأن الخدمات لا تحتاج إلى الاتصال بترتيب معين (على سبيل المثال GetCustomerAddress، SendLetter).

في البرمجة

يشير الاقتران إلى درجة المعرفة المباشرة التي يمتلكها أحد المكونات بمكون آخر. يتم تفسير الاقتران غير الدقيق في الحوسبة على أنه تغليف مقابل عدم التغليف.

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

هذا رسم تخطيطي UML يوضح مثالاً للربط الفضفاض بين فئة تابعة ومجموعة من الفئات الملموسة، والتي توفر السلوك المطلوب:

للمقارنة، يوضح هذا الرسم التخطيطي التصميم البديل مع الاقتران القوي بين الفئة التابعة والمزود:

أشكال أخرى

توفر لغات البرمجة الحاسوبية التي تحتوي على مفاهيم إما الوظائف كوحدة أساسية (انظر البرمجة الوظيفية ) أو الوظائف كأشياء أمثلة ممتازة للبرمجة المرتبطة بشكل فضفاض. تحتوي اللغات الوظيفية على أنماط من الاستمرارات أو الإغلاق أو المولدات. انظر Clojure و Lisp كأمثلة على لغات البرمجة الوظيفية. تحتوي اللغات الموجهة للكائنات مثل Smalltalk و Ruby على كتل تعليمات برمجية، بينما تحتوي Eiffel على وكلاء. الفكرة الأساسية هي إضفاء الصفة الموضوعية (تغليف ككائن) على دالة مستقلة عن أي مفهوم محيط آخر (على سبيل المثال فصل دالة كائنية عن أي معرفة مباشرة بالكائن المحيط). انظر دالة من الدرجة الأولى لمزيد من التبصر في الدوال كأشياء، والتي تعتبر أحد أشكال الدالة من الدرجة الأولى.

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

تعتبر أرقام الهواتف مقياسًا ممتازًا ويمكنها بسهولة توضيح درجة هذا الانفصال.

على سبيل المثال، تقدم بعض الكيانات رقم هاتف إلى كيان آخر لإنجاز مهمة معينة. وعندما يتم الاتصال بالرقم، فإن الكيان المتصل يقول في الواقع، "من فضلك قم بهذه المهمة من أجلي". ومن الواضح على الفور أن الانفصال أو الاقتران الفضفاض واضح. فقد لا يكون الكيان المتلقي للرقم على علم بمصدر الرقم (على سبيل المثال، إشارة إلى مزود الرقم). ومن ناحية أخرى، ينفصل المتصل عن معرفة محددة بمن يتصل به، وأين هو، ومعرفة كيفية عمل المتلقي للمكالمة داخليًا.

وإذا ما ذهبنا إلى أبعد من ذلك، فقد يقول المتصل لمتلقي المكالمة: "من فضلك قم بهذه المهمة من أجلي. اتصل بي على هذا الرقم عندما تنتهي". ويشار إلى "الرقم" الذي يُعرض على المتلقي باسم "إعادة الاتصال". ومرة ​​أخرى، فإن الطبيعة غير المترابطة أو غير المترابطة لهذا الكائن الوظيفي واضحة. فالمتلقي لإعادة الاتصال لا يدرك ما هو أو من هو الذي يتم الاتصال به. فهو يعرف فقط أنه يستطيع إجراء المكالمة ويقرر بنفسه متى يتصل. وفي الواقع، قد لا تكون إعادة الاتصال موجهة حتى إلى الشخص الذي قدم إعادة الاتصال في المقام الأول. وهذا المستوى من الالتباس هو ما يجعل الكائنات الوظيفية تقنية ممتازة لتحقيق برامج غير مترابطة.

قد يعتمد الاتصال بين المكونات المرتبطة بشكل فضفاض على مجموعة من الآليات، مثل أسلوب الاتصال غير المتزامن المذكور أو أسلوب تمرير الرسائل المتزامن [7]

قياس اقتران عناصر البيانات

يمكن قياس درجة الترابط غير المحكم من خلال ملاحظة عدد التغييرات في عناصر البيانات التي قد تحدث في أنظمة الإرسال أو الاستقبال وتحديد ما إذا كانت أجهزة الكمبيوتر ستستمر في الاتصال بشكل صحيح. تتضمن هذه التغييرات عناصر مثل:

  1. إضافة عناصر بيانات جديدة إلى الرسائل
  2. تغيير ترتيب عناصر البيانات
  3. تغيير أسماء عناصر البيانات
  4. تغيير هياكل عناصر البيانات
  5. حذف عناصر البيانات

انظر أيضا

مراجع

  1. ^ مقترنة بشكل فضفاض: الأجزاء المفقودة من خدمات الويب بقلم دوج كاي
  2. ^ Pautasso C., Wilde E., Why is the Web Loosely Linked? Archived 2021-10-12 at the Wayback Machine , Proc. of WWW 2009
  3. ^ F. Leymann Loose Coupling and Architectural Implications محفوظ في 2016-10-02 على موقع Wayback Machine ، الخطاب الرئيسي لمؤتمر ESOCC 2016
  4. ^ ن. جوسوتيس، الخدمية في الممارسة العملية. أورايلي، 2007، ISBN  978-0-596-52955-0 .
  5. ^ M. Keen et al، Patterns: Implementing an SOA using an Enterprise Service Bus، IBM، 2004
  6. ^ كيف توسع EDA نطاق SOA ولماذا هذا مهم جاك فان هوف
  7. ^ Mielle, Grégoire. "أنماط الخدمات المصغرة: الاتصال المتزامن مقابل الاتصال غير المتزامن". أنماط الخدمات المصغرة: الاتصال المتزامن مقابل الاتصال غير المتزامن . greeeg . تم الاسترجاع في 18 فبراير 2022 .
تم الاسترجاع من "https://en.wikipedia.org/w/index.php?title=رابط_متحرك_سائب&oldid=1229975361"
Original text
Rate this translation
Your feedback will be used to help improve Google Translate