محاسبات توزیع شده چیست؟
به لحاظ سنتی، پردازشها و محاسبات روی یک سامانه منفرد و ایزوله انجام میشود. سامانههای محاسباتی امروزی مثل کامپیوترهای دسکتاپی، لپتاپها، گوشیهای هوشمند، گجتهای اینترنت اشیا و حتا بوردهای سختافزاری مثل رزبریپای قادر به انجام محاسبات سنگین یا سبک هستند. به این معنا که شما ورودی در اختیار تجهیزات قرار میدهید و پس از پردازش اطلاعات، خروجی موردنظر را دریافت میکنید. رویکرد فوق در ارتباط با محاسبات ساده عملکرد خوبی دارد و حتا امکان انجام اجرای بازیهایی که نیازمند گرافیکهای سنگین یا محاسبات مبتنی بر پردازنده مرکزی هستند توسط کامپیوترهای شخصی فراهم است، اما هنگامی که به دنبال اجرای پروژههایی همچون پردازشهای گرافیکی سنگین، آموزش مدلهای هوشمند، حل مسایل پیچیده علمی، شبیهسازیها، تحلیل بزرگ دادهها و موارد این چنینی هستید، کامپیوترهای شخصی ممکن است توانا پردازشی مناسب را ارایه نکنند. برای حل یک چنین مشکلی دو راهکار وجود دارد. اول آنکه، از ماشینهای مجازی میزبانی شده در ابر استفاده کنیم و بر مبنای توان پردازشی که به آن نیاز داریم ماشین مجازی موردنظر را اجاره کنیم یا اینکه سامانههای کامپیوتری را به گونهای با یکدیگر ترکیب کنیم یا به عبارت دقیقتر، توان پردازشی آنها را به شکل تجمیع شده استفاده کنیم که قادر به انجام محاسبات پیچیده با استفاده از خوشهای از کامپیوترها باشیم. برای نیل به این هدف، متخصصان حوزه فناوری راهکاری بهنام مدل محاسبات توزیع شده (Distributed Computing) را پیشنهاد دادند.
بهطور معمول، کامپیوترهای شخصی، سرعت بسیار کمی در حل مسایل بزرگ و پیچیده علمی یا پردازش بزرگ دادهها دارند، بهطوری که نه تنها پردازنده مرکزی، بلکه حافظه اصلی مستقر در سامانهها جوابگوی این حجم از پردازش نیست. یکی از راهحلهای موجود برای حل این مشکل محاسبات توزیع شده است. ایده بهکارگیری این فناوری سادهای است، بهطوری که میتوان یک مسئله پیچیده و بزرگ را به واحدهای کوچکتر، تقسیم و بین چند کامپیوتر توزیع کرد. در این حالت، هر کامپیوتر تنها بخشی کوچک از مسئله که به آن کار (Job) گفته میشود را مدیریت میکند. در روش فوق تمامی کامپیوترها به شکل هماهنگ کار میکنند و مسئلهای که پردازش آن برای یک سامانه منفرد سنگین و زمانبر بود را در مدت زمان کوتاهی انجام میدهند.
چه وظایفی برای رایانش توزیع شده مناسب نیستند؟
به لحاظ مفهومی ایده فوق ساده است، اما هنگامی که صحبت از وظیفه (Task) به میان میآید، باید با دقت بیشتری به سراغ مفهوم رایانش توزیعی برویم. برخی وظایف برای رایانش توزیع شده (Distributed Computing ) مناسب نیستند. در ارتباط با برخی وظایف پیچیده، ممکن است در گام نخست با تقسیم آن به بخشهای قسمتهای کوچک و توزیع آن میان کامپیوترها با مشکلاتی روبرو شویم، به ویژه آنکه اگر هر پردازش وابسته به پردازش قبلی باشد و از یک الگوی سریالی استفاده کند. در چنین سناریوهایی توزیع محاسبات کار را سختتر میکند.
چه وظایفی عملکرد خوبی در بحث رایانش توزیعی دارند؟
ایدهآلترین وظایف در دنیای رایانش توزیعی، مسائلی هستند که رویکرد موازی دارند. یک چنین وظایفی به تعداد زیادی عملیات نیاز پیچیده دارند، اما امکان انجام آنها به شکل مستقل وجود دارد. به بیان دقیقتر، میتوانید هر یک از این وظایف را به سادگی توزیع کنید، زیرا هر وظیفه مجزا از وظیفه قبلی پردازش میشود و وابسته به آن نیست. بنابراین تمامی وظایف در یک زمان و بدون نیاز به دریافت خروجی وظیفه قبلی قابل حل هستند.
در رایانش توزیع شده وظایف به چه شکلی توزیع میشوند؟
اجازه دهید تا جایی که امکان دارد این موضوع را به زبان ساده شرح دهیم. فرض کنید یک کامپیوتر میزبان و خوشه (آرایهای) از کامپیوترها دارید که قرار است در رایانش توزیع شده استفاده شوند. کامپیوتر میزان، سامانهای است که شما وظیفه را به آن میدهید و برنامه اصلی را اجرا میکنید. این کامپیوتر اصلی، فرایند تقسیم مسئله به بخشهای کوچک را مدیریت میکند و وظایفه یا کارها را میان کامپیوترها توزیع میکند. در این حال، هر کامپیوتر، مسئولیت پردازش این کارها را دارد و نتیجه را باز میگرداند. کامپیوتر میزبان نتیجه این وظایف را به شکل مجزا دریافت میکند و با کنار هم قرار دادن آنها یک نتیجه نهایی ایجاد میکند. حالت فوق درست مشابه با زمانی است که فردی مسئولیت مدیریت یک تیم را بر عهده دارد و برای هر فردی در تیم یک مسئولیت را مشخص میکند و هنگامی که همگی کار خود را انجام دادند، نتیجه کار آنها را دریافت میکند، کنار یکدیگر قرار میدهد و به عنوان خروجی نهایی در اختیار شرکت قرار میدهد.
در این زمینه، کامپیوترها از طریق شبکهها با یکدیگر در ارتباط هستند. یکی از مهمترین مزایای رایانش توزیع شده، قابلیت تعامل سامانهها و سختافزارهای مختلف با یکدیگر است. به بیان دقیقتر، قرار نیست در معماری توزیع شده همه سامانهها بروزترین سختافزارها را استفاده کنند، بلکه این امکان وجود دارد تا آرایهای از کامپیوترهای قدیمی و جدید را در تعامل با یکدیگر استفاده کرد.
سیستمهای توزیع شده چه کاربردهایی دارند؟
کاربرد سیستمهای توزیع شده محدود به حل مسائل یا انجام پردازشهای سنگین نیست و در حوزههای مختلفی امکان استفاده از محاسبات توزیع شده وجود دارد که از مهمترین آنها به موارد زیر باید اشاره کرد:
شبکههای مخابراتی: شبکه تلفن و شبکه موبایل، شبکههای کامپیوتری بزرگ مثل اینترنت و اینترانت، شبکههای حسگر بیسیم، الگوریتمهای مسیریابی.
اپلیکیشنهای شبکهمحور: شبکههایی نظیر وب جهانشمول، شبکههای نظیر به نظیر و نمونههای مشابه.
بازیهای آنلاین: بازیهایی که روی بستر اینترنت انجام میشوند و به کاربران مختلف اجازه بازی همزمان را میدهند. علاوه بر این در دنیای واقعیت مجازی نیز میتوان به بهترین شکل از رایانش توزیع شده استفاده کرد.
پایگاه داده توزیع شده و سامانههای مدیریت پایگاه داده توزیع شده
زیرساختها و سامانههای مبتنی بر اشتراکگذاری فایل.
کشهای توزیع شده نظیر burst buffers
سامانههای پردازش اطلاعات توزیع شده نظیر سامانههای بانکی و فروشگاههای رزرو بیلط.
سامانههای اسکادا و به ویژه در ارتباط با سامانههای کنترل هوایی، صنعتی و شبکههای مبتنی بر حسگرهای بیسیم که اطلاعات لحظهای تولید میکنند.
محاسبات موازی: اصلیترین کاربرد رایانش توزیع شده در ارتباط با محاسبات موازی است که در این زمینه باید به محاسبات علمی ( محاسبات مبتنی بر خوشهبند، محاسبات شبکه و رایانش ابری) و پردازش توزیع شده در حوزه گرافیکی اشاره کرد.
آیا رایانش توزیع شده امنیت دارد؟
برای آنکه سطح امنیت این مدل سامانهها را بهبود بخشیم ضرور یاست اطلاعاتی که قرار است میان دو گره شبکه (Node) انتقال پیدا کنند از طریق الگوریتمهای رمزنگاری محافظت شوند و به قالب غیر قابل خواندنی تبدیل شوند. بهکارگیری الگوریتمهای رمزگذاری مبتنی بر کلید واحد یا کلید عمومی برای محافظت از محتوای پیام و پنهان نگه داشتن اطلاعات هنگام در زمان انتقال، راهکاری برای ایمنسازی این مدل محاسبات است. برای این منظور میتوان از الگوریتمهای RSA یا AES استفاده کرد. با اینحال، بیشتر شرکتها ترجیح میدهند از پروتکلهای احراز هویت و مکانیزم کنترل دسترسی استفاده کنند. بهعلاوه، این امکان وجود دارد تا برخی جزییات از دید کاربر پنهان بماند. بهطور مثال، هنگام ارسال/دریافت اطلاعات ضرورتی ندارد تا مشخص کنید این اطلاعات قرار است به چه سیستمی داده شده یا از آن دریافت شود، بلکه بهتر است به سیستم توزیع شده اجازه دهید این فرایند را مدیریت کند و خودش تصمیم بگیرد کدام سیستم مسئولیت پردازش را بر عهده خواهد داشت.
سامانههای توزیع شده چه مزایایی دارند؟
از مهمترین مزایای رایانش توزیع شده به موارد زیر باید اشاره کرد:
ضریب اطمینان و آستانه تحمل خطا در این معماری زیاد است. بهطور مثال، در مقیاس کلان، اگر سروری دچار مشکل شود، سرورهای باقیمانده وظایف آن سرور را بر عهده میگیرند.
توسعهپذیری پیچیدگی خاصی ندارد و شما میتوانید بنابر نیاز خود ماشینها را به شبکه اضافه کنید.
انعطافپذیری در نصب و پیادهسازی خدمات جدید با سهولت انجام میشود.
با توجه به اینکه آرایهای از کامپیوترها به وظایف رسیدگی میکنند، به سرعت و توان پردازشی زیادی در انجام محاسبات دسترسی خواهید داشت.
در مقایسه با خوشههای شبکه متمرکز در این معماری به عملکرد بهتری دسترسی خواهید داشت.
سامانههای توزیع شده چه معایبی دارند؟
از مهمترین معایب این معماری به موارد زیر باید اشاره کرد:
اشکالزدایی چندان ساده نیست، به ویژه زمانی که تعداد سامانههای متصل به یکدیگر زیاد باشد و یکی از آنها دچار مشکل شود.
به لحاظ نرمافزاری، پشتیبانی از این سامانهها کم است.
برای غلبه بر مشکل از دست رفتن اطلاعات و دسترسی سریع به دادهها باید هزینه قابل توجهی در زیرساختها انجام شود.
اگر طراحی به درستی انجام نشده باشد، مخاطرات جدی در ارتباط با اشتراکگذاری یا در زمان انتقال اطلاعات به وجود میآید.
چگونه یک چنین زیرساختی را پیادهسازی کنیم؟
ایدهآلترین گزینه در این زمینه هدوپ (Hadoop) است که یک زیرساخت متنباز است که قادر به پیادهسازی سامانههای توزیع شده است. در پروژههای بزرگ هدوپ هزینهها و زمان لازم برای رسیدن به نتیجه مطلوب را کم میکند. برای این منظور هدوپ از تکنیک نگاشت-کاهش (MapReduce) استفاده میکند. هدوپ در زمنه تحلیلهای آماری، پردازش ETL، هوش تجاری، یادگیری ماشین، پردازش ویدیویی و شبیهسازی عملکرد خیلی خوبی دارد.
ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را میتوانید از کتابخانههای عمومی سراسر کشور و نیز از دکههای روزنامهفروشی تهیه نمائید.
ثبت اشتراک نسخه کاغذی ماهنامه شبکه
ثبت اشتراک نسخه آنلاین
کتاب الکترونیک +Network راهنمای شبکهها
- برای دانلود تنها کتاب کامل ترجمه فارسی +Network اینجا کلیک کنید.
کتاب الکترونیک دوره مقدماتی آموزش پایتون
- اگر قصد یادگیری برنامهنویسی را دارید ولی هیچ پیشزمینهای ندارید اینجا کلیک کنید.
نظر شما چیست؟