در مباحث نرم افزاری، جفت شدگی (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 را شرح دهید.
- ۱ » سیستم توزیع شده (Distributed System) چیست؟
- ۲ » مفهوم Coupling در سیستم های توزیع شده
- ۳ » شفافیت (Transparency) در یک سیستم توزیع شده به چه معناست؟
- ۴ » سیستم فایل توزیع شده (Distributed File System) چیست؟
- ۵ » مقیاس پذیری یا توسعه پذیری (Scalability) در یک سیستم توزیع شده چیست؟
- ۶ » تئوری CAP در سیستم توزیع شده
- ۷ » تعریف تک نقطه خرابی (Single Point Of Failure)
سلام و عرض ادب
اینجا فکر کنم اشتباه معنایی رخ داده
سیستم های توزیع شده، دارای چسبندگی حداقل هستند (Loosely Coupled).
کاملا درسته البته شاید اتصال ضعیف هم برای Loosely Coupled ترجمه مناسبی باشد.