مفهوم Coupling در سیستم های توزیع شده

مدرس: مسعود کاویانی

در مباحث نرم افزاری، جفت شدگی (Coupling) و چسبندگی (Cohesion) دو شاخص اصلی و معیاری برای کیفیت سیستم هستند. در یک سیستم نرم افزاری، همیشه تلاش بر این بوده که چسبندگی حداکثر شود و جفت شدگی حداقل (Highly Cohesion and Loosely Coupling). در این درس به این دو مفهوم میپردازیم و به طور دقیق تر به مفهوم Coupling در یک سیستم توزیع شده تمرکز می کنیم.

سیستم های توزیع شده، دارای چسبندگی حداقل هستند (Loosely Coupled). خوب، این به چه معناست؟ مثال یک سیستم توزیع شده را در نظر بگیرید که کامپیوترهای مختلف، وظایف مختلف را بر روی CPUهای خود انجام می دهند. هر CPU بر روی یک سیستم عامل مستقل عملیات خود را انجام میدهند و اگر بخواهند با کامپیوترهای دیگر ارتباط برقرار کنند، از طریف ارسال پیام (Message Passing) این کار را انجام خواند داد.

واژه مستقل، شاید کلید واژه اصلی Coupling باشد. هر کامپیوتر در یک سیستم توزیع شده مستقل از دیگران میتواند یک سری وظیفه را انجام دهد. در یک سیستم توزیع شده، کامیپوترها یا همان گره ها (Nodes) به یکدیگر اعتماد چندانی ندارند.

حال با این توصیفات به تعریف این دو مفهوم، به صورت ساده شده می پردازیم:

Loosely Coupled: یک ماژول (یا یک کامپیوتر در سیستم توزیع شده)، Loosely Coupled است، اگر تغییر در یکی از ماژول ها، نیازمند تغییر در ماژول دیگری نباشد (یا تغییر کمی را در ماژول های دیگر ایجاد کند)

High Cohesion: یک ماژول (یا یک کامپیوتر در سیستم توزیع شده)، High Cohesion است، اگر تمامی عملیات قابل انجام (Functionality) مرتبط با آن ماژول، در خوده ماژول پیاده سازی شده باشند. یعنی برای انجام یک کار مرتبط با عملیات درون یک ماژول، نیازی به ارتباطات اضافی با بیرون آن ماژول وجود نداشته باشد

این دو مفهوم بسیار ساده هستند. با کمی تمرکز و تفکر میتوانیم به چرایی ارزشمندی و شاخص بودن این دو مفهوم در سیستم های نرم افزاری پی ببریم. با این حال، اجازه بدهید این سوال را پاسخ دهیم که چرا Loosely Coupling یک مزیت برای یک سیستم توزيع شده محسوب می شود؟

دلیل مشخص این است، که با کاهش میزان Coupling موجود در یک سیستم، اجزا آن سیستم (در این جا کامپیوترهای به هم متصل سیستم توزیع شده)، میتوانند به صورت مستقل عملیات مربوط به خود را انجام دهند، و تغییر در یک سیستم کامپیوتری، اثر زیاد (و نیاز برای تغییر زیاد) در سیستم های کامپیوتر دیگر در سیستم توزیع شده ایجاد نمیکند.

با این کار استقلال کامپیوترها از یکدیگر حفظ شده، و عملیات توسعه بر روی یک سیستم با زحمت کمتری، برای بقیه سیستم ها، انجام میشود.

مشخصاً نقطه مقابل، Loosely Coupling، مفهوم Tightly Coupling قرار دارد. سعی کنید با یک مثال برای خود، مفهوم Tightly Coupling را شرح دهید.

منابع این بحث و اطلاعات بیشتر

بررسی مفهوم Coupling و Cohesion

این اسلاید درس سیستم های توزیع شده، دانشگاه واشنگتن

این مقاله وب سایت Coudorance

مقاله وب سایت Springer

در صورت تمایل به یادگیری بیشتر، منابع بالا در نظر گرفته شده است. می توانید با خواندن این منابع، به یادگیری خود در این زمینه عمق ببخشید

2 دیدگاه دربارهٔ «مفهوم Coupling در سیستم های توزیع شده»

  1. سلام و عرض ادب
    اینجا فکر کنم اشتباه معنایی رخ داده

    سیستم های توزیع شده، دارای چسبندگی حداقل هستند (Loosely Coupled).

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *