خبرنامه
در سایت ثبت نام رایگان نمایید، و مشترك خبرنامه‌ی ما گردید. در این صورت اخبار، رویدادها و خبرهای ویژه‌ی سايت را از طریق e-mail دریافت خواهید نمود.



خبرنامه‌های بایگانی‌شده


سبد خرید

سبد خرید شما خالی است.

سابقه‌ی سفارشات گذشته

تماس با ما


معماري توزيع شده
امتیاز : 60 كاربر به این نوشته امتیاز داده‌اند. امتیاز متوسط4.7
نوشته شده توسط : Admin, در روز دوشنبه 08/09/1389, در گروه " راه‌كارهای روزآمد "
بازدید : این نوشته تاكنون 26959 بار مشاهده شده است.
چكیده :

 

توزیع‌پذیری

توزیع‌‏­پذیری یکی از مباحث مهندسی نرم‌­‏افزار است که مبتنی بر توزیع بار کاری در اعضای یک سیستم به منظور دستیابی به کارایی بالاتر و بهره­‏‌و‏ری بالاتر است.

سیستم‌هایی با فشار زمانی بالا و حجم محاسبات قابل ملاحظه همواره با مشکل سامان‌دهی ارتباط داده‌‏ه­ای، امنیت داده و تحمل تنش و خرابی  روبه‌رو هستند. یکی از بهترین راه­‏‌حل‌ها برای رویارویی با مشکلاتی از این قبیل استفاده از اصل توزیع منطقی و فیزیکی یک سیستم نرم­‏‌افزاریست که در ادامه با آن آشنا خواهید شد.

توزیع‌پذیری در واقع راه‌‏­حلی مناسب برای طراحی ساخت سیستم‌‏هایی است که خصوصیات زیر را نیاز داشته و یا در این باب با ریسک روبه‌رو هستند:‌

قدرت پردازش  در حجم بالا

راه­کار توزیع‌پذیری با شناخت کافی از اجزای یک سیستم، پردازش را در اجزای مختلف تقسیم کرده و به این ترتیب به دو  نیاز پاسخ می‌­دهد:‌

1-     اعضای پردازش‌گر یک سیستم عملیات پردازش را به عهده خواهند گرفت.

2-     برای انجام پردازش در حجم بالا نیازی به فراهم آوردن سخت‌­‏افزار با خصوصیات فنی بالا نیست و با تقسیم کار، PCهای معمولی هم از پس حجم کاری محوله برخواهند آمد. به این ترتیب هزینه‌­‏های فراهم آوردن سخت‌­‏افزار به شدت کاهش پیدا خواهد کرد.

پهنای باند ارتباطی

  همان‌طور که گفته شد در راه­کار توزیع، پردازش‌ها بر روی پردازشگرهای متعدد انجام شده و به این ترتیب در برقراری ارتباط بین این اجزا نیز به همان نسبت بار ترافیک کاهش پیدا خواهد کرد. این خصوصیت از نقاط قوت معماری توزیع شده در محیط‌هایی با پهنای باند کم است.

 

تحمل خرابی

با استفاده از راه­کار توزیع­‏‌پذیری در واقع با سیستمی کاملا مؤلفه­‏‏‌ای روبه‌روییم که خرابی یک جزء از سایر اجزا کاملا مستقل بوده و در صورت مواجه شدن با مشکل در یکی از اجزا سایر اجزا همچنان در حال ادامه کار هستند.در این موارد قسمت اعظم کاربران سیستم حتی ممکن است متوجه وجود خرابی در سیستم نشوند و از طرفی خرابی در قسمت محدودی از سیستم حجم بسیار کمتری از اطلاعات را با خطر روبرو خواهد کرد.

-          توان عملیاتی

توان عملیاتی در واقع پاسخ دادن یک سیستم به یک درخواست در کوتاه‌­ترین زمان و به شکلی صحیح و در شرایطی به دور از خرابی است که البته سیستم‌های مبتنی بر توزیع همگی این خصوصیات را در بر دارند.بنابراین قابل استنباط است که چنین سیستم‌هایی از قابلیت عملکردی بالایی برخوردارند.

زمان پاسخ

با توجه به توزیع پردازش و عدم تاثیر خرابی جزئی از سیستم بر روی سایر اجزا، حتی در مواردی که از تجهیزات سخت­‏‌افزاری معمولی استفاده می­‌شود، زمان پاسخ در حد قابل قبولی کوتاه خواهد بود. مشاهده می­‌کنید که خصوصیات تحمل خرابی، زمان پاسخ و توان عملیاتی در رابطه­‏‌های تنگاتنگ با هم قرار دارند.

پشتیبانی ساده

توزیع‌­‏شدگی حجم کاری سیستم در اجزای متعدد آن و همچنین حجم قابل قبول ترافیک داده در زیرساخت ارتباطی چنین سیستم‌هایی باعث شده تا امکان ارائه‌ی بهتر خدمات پشتیبانی به این‌گونه سیستم‌ها فراهم باشد. در این رابطه نکات زیر از اهمیت بالایی برخوردارند:

1-     برای ارائه‌ی خدمات پشتیبانی در مواجهه با هر کدام از اعضا،‌ در مقایسه با کل سیستم، با حجم پایینی از مشکلات یا داده­‏‌های مخدوش روبه‌رو خواهیم بود.

2-     امکان برقراری ارتباط از راه دور و دست‌یابی به عضو درخواست کننده و استفاده از بستر ارتباطی ارائه‌ی خدمات سریع‌تر و آسان‌تر خواهد بود.

به این ترتیب استفاده از سیستم‌های توزیع شده­ ، کاهش هزینه،‌ مقیاس‌‏­پذیری و برآورد معیارهای اقتصادی را به دنبال خواهد داشت.

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

انواع توزیع

توزیع عملا با دو معیار منطقی و فیزیکی مورد پیاده‌‏­سازی قرار می­‌گیرد. در زیر با این دو مفهوم آشنا می­‌شوید:‌

توزیع منطقی

توزیع منطقی در واقع دسته‌بندی اجزای منطقی یک سیستم از قبیل کلاس یا زیرسیستم‌هایی است که بر روی اجزای سخت­‏‌افزاری قرار گرفته­‏‌اند. این نوع تقسیم‌بندی ممکن است منجر به به‌وجود آمدن یک سطح کنترلی روی جزء سخت­‏‌افزاری شود. به طور مثال استقرار زیرسیستم‌های مدیریتی بر روی یکی از اجزای پیکره‌ی سیستم، تولید سرور عملیاتی (Application Server ) را به دنبال دارد. به این ترتیب با توزیع اجزای منطقی یک سیستم نرم‌­‏افزاری، اعضای یک سیستم توزیع شده به دست خواهند آمد.

توزیع فیزیکی

توزیع فیزیکی در واقع به معنی استقرار فایل‌های سیستم نرم‌‏­افزاری بر روی اجزای سخت‏­‌افزاری آن است. نکته حائز اهمیت در اینجا حفظ استقلال و کارایی فایل‌ها در قالب توزیع است به این معنی که فایل‌ها باید ارتباط منطقی خود را در جهت هدفی خاص حفظ کنند. در واقع تنها با داشتن یک توزیع منطقی مناسب می­‌توان توزیع فیزیکی را انجام داد.  

الگوهای توزیع

در مفهوم توزیع‌­‏پذیری الگوهای بسیاری موجود است به شکلی که هر کدام از این الگوها نیازمندی‌های خاصی را مرتفع کرده و برای حوزه و حالت خاصی از سیستم‌های نرم­‏‌افزاری مناسب است.نکته مشترک تمامی این الگوها توزیع‌شدگی حجم کار در کل سیستم و بالا بردن سهولت پشتیبانی و نگهداری این سیستم‌‏هاست که خود از مزایای توزیع‌شدگی محسوب می­‌شوند. در واقع هر کدام از این الگوها سعی بر آن دارند تا به نحوی با راه­کار توزیع‌شدگی به مشکلات موجود در سیستم‌های نرم‏­‌افزاری پاسخ دهند.

با مطالعه هر یک از این الگوها به خوبی با مشکلات مطرح و مزایای الگوی مورد نظر آشنا خواهید شد.

لازم به ذکر است که پیروی از الگوهای توزیع در قالب ارائه معماری مربوط به هر یک امکان‏‌پذیر است و به همین دلیل در ادامه ممکن است در پاره‌­ای موارد واژه معماری را به عنوان جایگزین برای واژه الگو مورد استفاده قرار دهیم.

معماری Client/Server

 در معماری Client/Server، با دو عضو Client و Server روبه‌رو هستیم که Clientها در مقایسه با Serverها از تعدد برخوردار بوده و Server ها به طور دائم در حال ارائه سرویس به چندین  Client در یک لحظه می­‌باشند.

در این نوع توزیع عملکرد سیستم بین دو بخش Client  و Server تقسیم شده است.

در سیستم‌های Client/Server سنتی قسمتی از Business در Client  مستقر بود و این امر باعث کاهش حجم ترافیک می­‌شود ولی در عین حال هزینه‏‌های تهیه سیستم را بالا می­‌برد. به این ترتیب در سیستمی که هم­‏‌اکنون به عنوان Client/Server از آن یاد می­‌شود، Clientها سهمی از اداره Business ندارند و تنها از Server سرویس‌های لازم را دریافت می­‌کنند.

در ادامه پاره­‌ای از خصوصیات این نوع معماری را ذکر می­‌کنیم:‌

-          در این‌گونه معماری، Clientها می‌­توانند انواع مختلفی داشته باشند و با ماهیت‏‌های مختلف در سیستم فعالیت کرده و دریافت خدمات داشته باشند.

-          برای برقراری ارتباط بین اعضای این شکل معماری می­‌توان از انواع مختلف راه‌‏­ها و تکنولوژی­‏‌های ارتباطی استفاده کرد.

-          Serverها نیز در این نوع معماری دارای تعدد هستند و برای مصارف مختلف می­‌توان از انواع Server استفاده کرد. در ادامه انواع قابل ذکر Server  مورد استفاده در این نوع معماری را مشاهده می­‌کنید:‌-           معماری 3 Tier

o   Database Server

o   Print Server

o   Communication Server

o   Windows Manager server

o   File Server

 

 

این شکل از معماری نیز یکی از اشکال معماری Client/Server به شمار می­‌رود با این تفاوت که سیستم در 3 بخش Application Server، Business Server و Data Server تقسیم شده است. البته این اعضای منطقی از سیستم ممکن است بر روی تعداد بیشتری از Nodeهای سیستم توزیع شوند.

در این‌گونه سیستم‌ها، Application Serviceها به‌وسیله User Interfaceهای مورد نظر در سیستم Client در اختیار وی قرار می­‌گیرد. به این ترتیب Application Server  می‌تواند در جزئی جدا و یا در همان سیستم Client مستقر باشد. این موضوع خود یکی از نقاط پارامتریک بودن این‌گونه معماری است و با استفاده از قوت توزیع در این مدل می­‌توان تغییرات لازم در Application Server  و یا حتی سایر اجزا را بدون تاثیر در سایر اعضا اعمال کرد.

Data Serviceها از جانب Data Serverها به Clientها اختصاص پیدا می­‌کنند. Data Server یکی از اجزای سیستم است که از نظر قدرت سخت در سطح بالایی قرار داشته و  همچنین باید از نظر زیر ساخت ارتباطی در نقطه‌ای با پهنای باند بالا قرار داشته باشد. ممکن است صدها یا در مواردی هزاران کاربر در یک لحظه به چنین سروری رجوع داشته باشند و هم‌چنین در اکثر مواقع استفاده از این سرور منتهی به اعمال تغییراتی بر روی داده­‏‌های موجود خواهد شد. به این ترتیب لازم است که این سرور با خصوصیات فنی بالا طراحی شده و امکانات ارتباطی مناسبی در اختیار داشته باشد.

Business Serviceها اطلاعات رمزنگاری شده مربوط به اعمال Business را در بر دارند. این سرویس‌ها در واقع متولی اداره و ترکیب اطلاعات به‌دست‌آمده از پایگاه داده هستند و در نهایت Application Serviceها را تولید می­‌کنند. Business Serviceها عموما به‌وسیله‌ی کاربران متعددی مورد استفاده قرار می­‌گیرند و خود به عنوان یک عضو منطقی به خوبی کار می­‌کنند. البته در بسیاری مواقع این سرویس‌ها در کنار Data Serviceها قرار می­‌گیرند.

توزیع اعضای منطقی به این شکل، قابلیت اطمینان و مقیاس‏­‌پذیری سیستم را بالا می­‌برد. به این ترتیب به کار بردن مناسب Data Server و Business Server  و همچنین برقراری ارتباط صحیح بین اعضا، درجه‌ی بالایی از  مقیاس‌­‏پذیری را در اختیار قرار می‌­دهد.

 

معماری Fat Client

این معماری شامل 2 سطح متشکل از Data Server  و ‍Client است. کلیه امور در Client انجام می­‌پذیرد به این شکل که Application Serviceها، Data Serviceها و Business Serviceها همگی در سمت Client قرار دارند.

این شکل معماری در طراحی و ساخت نسبتا ساده‌­‏تر به نظر می‌­رسد اما تعبیه صفت توزیع‌شدگی در این نوع معماری به مراتب دشوارتر از مدل قبلی است. چالش معمول این نوع معماری به‌روزرسانی داده‌‏­هاست. به این شکل که در این روش Clientها داده‏­‌های مورد استفاده را در حافظه موقت خود بارگذاری کرده و مسلما پس از اعمال تغییرات این داده‌­ها را در Data Server ذخیره می­‌کنند. به این شکل هر گاه اطلاعات در Data Server مورد تغییر قرار می­‌گیرد، لازم است که کلیه Clientها داده‌‏­های جدید را در حافظه موقت دوباره بارگذاری کنند.

 

معماری Fat Server

این‌گونه سیستم‌ها درست نقطه‌ی مقابل مورد قبل یا همان Fat Client هستند. به چنین سیستم‌هایی در اصطلاح سیستم‌های کلاینت بی‌اشتها نیز اطلاق می­‌شود. روشن‌ترین مثال در این مورد، We-Browserها هستند که در آنها Web Serverها اداره کلیه اطلاعات را بر عهده داشته و سرویس‌ها در صفحات HTML در اختیار Clientها قرار می­‌گیرند.

این سیستم‌ها از هزینه کم، قابلیت تغییر و توزیع‌­‏پذیری بالایی برخوردارند. این سیستم‌ها به سادگی قابل پیاده­‏‌سازی و پشتیبانی هستند. اما باید توجه کرد که صرفا برای مصارف وب مناسب بوده و در امر Business که پردازش‌ها و تراکنش‌های داده­‌ای فراوانی را در بر می­‌گیرد، مناسب نمی­‌باشد. در عین حال در این‌گونه سیستم‌ها کنترل بالایی بر Applicationها وجود ندارد و این امر در اشکالی از این معماری که از طراحی ضعیف‌تری برخوردارند به شدت قوت می‏‌گیرد. هرچند این امر حتی در پایین آمدن سطح کیفی عملکرد سیستم‏‌هایی به این شکل که از طراحی مطلوبی برخوردارند نیز بی‌تاثیر نیست.

معماری توزیع شده Client/Server

در این شکل از معماری، Application، Business و Data Serviceها هر کدام در یک نقطه جدا از سیستم مستقر هستند و این نقاط مجزا کاملا قابلیت قبول ماهیت Business و Data Server را خواهند داشت.

کلیه خصوصیات این نوع از معماری شبیه معماری 3 Tier است و تنها از این لحاظ به صورت جدا مورد بررسی قرار گرفت که اولا وجود انواع سرور در این نوع معماری تصریح شود و ثانیا ذکر این نکته که در یک معماری توزیع شده نقاط منطقی ممکن است از تعدد بالایی برخوردار باشند، از قلم نیفتد.

معماری Peer-to-Peer


در این نوع از معماری هرکدام از نقاط سیستم یا به عبارتی هر کدام از اجزای پردازشی سیستم می­توانند خاصیت Client
یا Server داشته باشند. در اینگونه سیستمها، عملکرد سیستم بین کلیه اعضای سیستم تقسیم شده و همگی این اعضا بر روی خطوط ارتباطی در حال مبادله اطلاعات هستند.

این سیستمها از پیچیدگی بالایی برخوردارند و آمار بروز خطا در آنها بالاست.اغلب پردازنده ها با وقفه روبرو هستند و یا درخواستها در خطر پدیده گرسنگی قرار دارند.در صورت بروز خطا ممکن است عملکرد سیستم با ریسک توقف روبرو شود و در غیر اینصورت حتی برطرف کردن این خطا دشواریهای فراوانی را به دنبال خواهد داشت.

 

انتخاب الگوی توزیع

انتخاب الگوی مناسب برای پیاده‏­سازی معماری توزیعی، خود یکی از مباحث مهندسی نرم­‏افزار به شمار می­رود که مستلزم در اختیار داشتن دانش و بررسی کلیه زوایا و نیازمندیهای سیستم مورد نظر است.

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

-          مقیاس‏­پذیری:  مقیاس‏­پذیری در واقع قابلیت بسط و استقرار سیستم در حوزه جغرافیایی وسیعی است که در این حوزه سیستم چه از لحاظ فیزیکی و چه از لحاظ منطقی قابلیت توزیع­‏پذیری داشته و حجم کاری سیستم به صورت یکنواخت در کل حوزه توزیع، تقسیم شده است.

-          هزینه : اصولا بحث توزیع‏­پذیری در سیستمهایی مورد توجه ا ست که از حجم کار و تعداد کاربران بالایی برخوردار است. در چنین سیستم‏هایی معمولا اولین پاسخ برای برطرف کردن نیاز بالابه پردازش و پاسخ به همزمانی درخواستها، بالا بردن خصوصیات فنی اجزای سخت­‏افزاری سیستم است و بدیهی است که این امر هزینه‏­­های بالای تهیه تجهیزات را به مشتریان تحمیل کرده و در پاره­­ای اوقات حتی این امر موجب منتفی شدن انجام یک پروژه به دلیل هزینه‏­های بالا خواهد شد. این در حالیست که همانطور که گفته شد، راه­کار توزیع­‏پذیری  با تقسیم کار بین PCهای معمولی این مشکل را مرتفع خواهد ساخت.

-          پشتیبانی ساده : ارائه مطلوب خدمات پشتیبانی از نیازمندیهای معمول هر پروژه نرم­‏افزاری به شمار می­رود. ولی ممکن است در برخی پروژه­‏ها این موضوع به عنوان یک گلوگاه اساسی مورد نظر باشد. در اینگونه مواقع تیم تولید پروژه یا متوسل به استفاده از منابع فراوان نیروی انسانی، زمان و هزینه می­شود و یا با استفاده از اصل توزیع، به شکلی اقتصادی این نیازمندی را مرتفع می­کند. به این ترتیب بهترین زمان برای بررسی این موضوع، مراحل اولیه پروژه و قبل از انتخاب و پیاده­سازی معماری است. در غیر اینصورت همانطور که گفته شد، ممکن است ارائه خدمات پشتیبانی به شکلی مطلوب هزینه‏های فراوانی را به دنبال داشته باشد.

-          تحمل خرابی : در مواردی سیستم در دست ساخت یک تیم نرم­‏افزاری سیستمی حیاتی و بلادرنگ می­باشد که قابلیت تحمل خرابی از بارزترین خصوصیات آن به شمار می­رود. به این ترتیب توجه به این نیازمندی توجه طراحان تیم را به سمت راه­کار توزیع­‏شدگی خواهد برد.

در نهایت انتخاب الگوی مناسب برای توزیع، ‌توجه به معیارهای بالا را طلب کرده و همواره باید رابطه منطقی بین نیازمندیهای مطرح برقرار باشد. به  طور مثال، معماری Fat Client و یا Fat Server هزینه‏­های بالایی را در بر خواهد داشت و ارائه خدمات پشتیبانی به سیستمهای Peer To Peer به سادگی قابل انجام نیست. این در حالیست که معماری Client/Server در حالاتی تحمل خرابی پایینی دارد. به این ترتیب همواره باید نیازمندیهای یاد شده برای یک سیستم نرم‏­افزاری را شناسایی کرده و آنها را جهت انتخاب نوع توزیع اولویت­‏بندی نمود.

شرکت فن­‏آوران اطلاعات و ارتباطات روزآمد در تولید نرم‏­افزار نظام نوین مالی دانشگاه­های علوم پزشکی کشور و با توجه به نیازمندیهای مطرح در مورد این محصول، از معماری توزیع شده استفاده کرده و با گذشت مدت استقرار این سیستم در دانشگاه­های علوم پزشکی کشور، در دستیابی به معیارهای ذکر شده در این مستند تجارب موفق فراوانی را به دست آورده به شکلی که هم­‏اکنون این سیستم در کل کشور به عنوان سیستمی کاملا اقتصادی و با تحمل بالای خرابی و همچنین گسترش در حوزه جغرافیایی بالا در حال کار بوده و این تجربه شرکت فن­‏آوران اطلاعات و ارتباطات روزآمد را به یکی از پیشتازان معماری توزیع شده در کشور بدل ساخته است.

در ادامه قابل ذکر است که شرکت فن­آوران اطلاعات و ارتباطات روزآمد، با در دست داشتن دانش و تجربیات موفق در این زمینه توانایی انتقال دانش و ارائه خدمات مشاوره معماری را داشته و به عنوان مشاور در انتخاب و اجرای انواع الگوهای توزیع آماده ارائه خدمات به مشتریان محترم می­‏باشد.


شما چه امتیازی به این نوشته می‌دهید؟

بازخورد بازدیدكنندگان
نوشته شده توسط PARISA در روز پنج‌شنبه 27/01/1394 21:46:34
تشکر عالی بود .
نوشته شده توسط قاسمی در روز چهارشنبه 14/11/1394 16:20:38
با سلام؛
ضمن تشکر از مطالب مختصر مفیدتون .ممنون میشم اگر بتوانیم از دانش عملی شما در این مورد برای امکان همکاری استفاده کنیم.
نوشته شده توسط horie در روز سه‌شنبه 24/01/1395 19:09:16
ممنون زبان ساده و قابل فهم و روان داشت

برای این نوشته كامنت بگذارید.
نام :
e-mail:
كامنت :


صفحه اصلی
نوشته‌ها
فلش‌كارت‌ها
فروشگاه
انجمن‌گفتگو
تماس با ما
© 1390 - 1384 شركت فن‌آوران اطلاعات و ارتباطات روزآمد، تمامی حقوق محفوظ است.