آموزش هوش مصنوعی

انواع معماری تولید نرم افزار  

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

   معماری MainFrame

  •  ویژگی  :
    – معماری فوق در دهه های ۱٩۶۰ الی ۱٩۷۰ مورد توجه و استفاده جدی قرار داشت .
    – کامپیوتر اصلی ( Host) مسئولیت انجام تمامی پردازش ها را برعهده دارد.
    – کاربران با استفاده از ترمینال ها ، قادر به ایجاد ارتباط با سیستم اصلی (host) می باشند.
    – ترمینال ها هوشمند نبوده و صرفا” به یک صفحه کلید و نمایشگر محدود می باشند.
    – فشردن کلیدهای صفحه کلید ، تنها چیزی است که ارتباط بین کاربران(ترمینال ها ) و سیستم اصلی را معنی خواهد کرد.
    – داده ها و منطق برنامه بر روی یک سیستم (Host) یکسان ذخیره می گردنند. .
  •    مزایا  :
    – امنیت در این نوع معماری بسیار بالا است  .
    – با توجه به تمرکز داده ها و منطق ، مدیریت متمرکز و اعمال آن آسان خواهد بود.
  •    معایب   :
    – هزینه تهیه ، اجاره و پشتیبانی این نوع سیستمها بسیار بالا است .
    – برنامه ( منطق ) بهمراه داده های مربوطه در یک محل مستقر و از یک محیط پردازش یکسان استفاده می کنند.
    – اغلب برنامه های نوشته شده بر اساس معماری فوق محیط های رابط کاربر گرافیکی را حمایت نمی نمایند

 

   معماری File server

  •  ویژگی  :
    –  چرخش ۱٨۰ درجه ای نسبت به معماری MainFrame.
    – از سرویس دهنده یا سرویس دهند گان متعدد، بصورت متمرکز استفاده می گردد.
    – منابع متفاوتی نظیر چاپگر و یا فضای ذخیره سازی ( هارد ) به اشتراک گذاشته می شوند.
    – سرویس دهنده فایل های مورد نیازو ذخیره شده توسط منابع اشتراکی را برای کاربران ارسال خواهد کرد.
    – کار درخواست شده توسط کاربر ( منطق و داده ) بر روی سیستم کاربر اجراء خواهد شد.
    – منطق برنامه برروی سیستم کاربر ( سرویس گیرنده ) اجراء خواهد کردید.
    – داده ها بر روی سرویس گیرنده مستقر خواهند شد.
  •    مزایا  :
    – برای استفاده  از معماری فوق نیاز به صرف هزینه های بالا نخواهد بود  .
    – از لحاظ بکارگیری منابع دارای انعطاف پذیری مناسبی است .
  •    معایب   :
    – تمامی منطق برنامه بر روی سرویس گیرنده اجراء خواهد شد .
    – وجود محدودیت های خاص نظیر میزان حافظه و یا نوع پردازشگر سرویس گیرندگان، بکارگیری برنامه را با مشکل مواجه می سازد.
    – بهبود عملکرد برنامه و یا اعمال اصلاحات مورد نظر همواره یکی از چالش های جدی است .

 

 

 

   معماری Client Server

  •  ویژگی  :
    –  در معماری فوق از سرویس دهند گان و سرویس گیرند گان  با خصایص متفاوت استفاده می شود.
    – اصل تقسیم کار دنبال و سرویس دهنده عملیات سنگین با پردازش بالا و سرویس گیرنده عملیات سبک را انجام خواهند داد.
    – دو بخش متفاوت یک برنامه ، در جهت انجام  عملیات با یکدیگر تشریک مساعی می نمایند.
    – سرویس گیرنده با ارسال درخواست و سرویس دهنده با پاسخ به درخواست جلوه ای از همیاری در پردازش عملیات را بنمایش می گذارند.
    – پلات فورم و سیستم های عامل سرویس دهنده و سرویس گیرنده می تواند متفاوت باشد.
    – عملیاتی را که یک برنامه انجام می دهد بین سرویس دهنده و سرویس گیرنده تقسیم می گردد.
  •    مزایا  :
    – بهره گیری مناسب از پتانسیل های سخت افزاری موجود با توجه به اصل تقسیم عملیات ها
    – بهینه سازی استفاده و بکارگیری منابع اشتراکی  .
    – بهینه سازی توانائی کاربران از بعد  انجام فعالیت های متفاوت
  •    معایب   :
    – عدم وجود امکانات لازم  برای کپسوله نمودن سیاست های راهبردی نرم افزار
    – کاهش کارائی برنامه همزمان با افزایش تعداد کاربران همزمان
    – بهبود عملکرد برنامه و یا اعمال اصلاحات مورد نظر همواره یکی از چالش های جدی است .

 

 

تاکنون مدل های متفاوتی از معماری فوق پیاده سازی شده است .

۱ – پردازش های مبتنی بر میزبان . مدل فوق بمنزله یک مدل سرویس دهنده / سرویس گیرنده تلقی نشده و مشابه مدل MainFarme است .

 

۲ – پردازش های مبتنی بر سرویس دهنده . در این مدل سرویس دهنده تمامی پردازش های مربوطه را انجام و سرویس گیرنده مسئولیت ایجاد بخش رابط کاربر را برعهده خواهد د اشت.

 

 

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

 

 

 

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

 

 

   معماری Client Server : Two Tier

  •  ویژگی  :
    –  مشابه مدل Client Server در بخش قبل می باشد.
    – در این مدل از یک سرویس دهنده و یک سرویس گیرنده در شبکه استفاده می گردد.
    – مدل فوق از سه بخش  که در دو لایه سرویس دهنده و سرویس گیرنده قرار خواهند گرفت، تشکیل می گردد.
    – بخش های رابط کاربر ، مدیریت پردازش ها و مدیریت بانک های اطلاعاتی بخش های سه گانه مدل فوق می باشند.
    – منطق برنامه بین دو محل فیزیکی توزیع می گردد.
  •    مزایا  :
    – مناسب ترین روش برای پردازش های توزیع شده در یک شبکه با حداکثر  یکصد  کاربر
    – سهولت در امر پیاده سازی
    – نسبت دهی مستقیم رابط کاربر با منابع تامین داده ها
  •    معایب   :
    – عدم وجود امکاناتی برای کپسوله نمودن سیاست های راهبردی نرم افزار
    – کاهش کارائی برنامه همزمان با افزایش تعداد کاربران همزمان ( بیش از یکصد )
    -عدم وچود انعطاف لازم از بعد انتقال یک برنامه از سرویس دهنده ای به سرویس دهنده دیگر بدون انجام تغییرات اساسی

 

 

 معماری Client Server : Three Tier

  •  ویژگی  :
    –  مدل فوق در سال 1990 عرضه شده است .
    – در این مدل از یک Tier میانی دیگر بین سرویس گیرنده ( رابط کاربر) و سرویس دهنده بانک اطلاعاتی استفاده می شود.
    – لایه میانی شامل مجموعه ای از ابزارها برای دستیابی به منابع سیستم ، صرفنظر از نوع پلات فورم  است .
    – لایه میانی مسئولیت مدیریت پردازش ها را برعهده خواهد گرفت .
    – لایه میانی مسئولیت تجزیه و یا ترکیب نتایج حاصله از منابع داده ئی نظیر بانک های اطلاعاتی را برعهده دارد.
    – بخش های رابط کاربر ، مدیریت پردازش ها و مدیریت بانک های اطلاعاتی بخش های سه گانه مدل فوق می باشند.
    – لایه میانی خود می تواند به دو و یا بیش از دو بخش با عملکردهای متمایز تقسیم گردد (Multi-Tier)
    – مدل فوق گزینه ای مناسب برای پیاده سازی نرم افزار بر روی اینترنت است .
  •    مزایا  :
    – افزایش کارآئی ، انعطاف پذیری ، قابلیت استفاده مجدد و توان پشتیبانی
    – ارتقاء کارآئی همزمان با افزایش تعداد کاربران
    – مخفی نمودن پیچیدگی ها ی موجود با توجه به ماهیت پردازش های توزیع شده از دید کاربران
    – ارائه امکانات لازم به برنامه نویسان بمنظور طراحی و پیاده سازی نرم افزار ها با یک رویکرد مشابه
    – ارائه  امکانات لازم به برنامه نویسان بمنظور تبعیت از روش های یکسان برای دستیابی به داده ها
بدون دیدگاه

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

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

الگوریتم
برنامه نویسی
آموزش الگوریتم دیکسترا کوتاهترین مسیر

در این مقاله قصد داریم درمورد الگوریتم دیکسترا کوتاهترین مسیر صحبت کنیم و این الگوریتم را به صورت گام به گام توضیح داده و همراه با رسم شکل مراحل آن را بررسی کنیم. پس اگر علاقمند به یادگیری این الگوریتم هستید در ادامه با ما همراه باشید.

اخبار ایران تکنولوژی
۷ الگوریتم که هر برنامه نویسی باید بداند

ما چند الگوریتم مرتب سازی در این لیست داریم و Merge Sort یکی از مهمترین الگوریتم‌ها است. این یک الگوریتم مرتب سازی کارآمد بر اساس تکنیک برنامه نویسی تقسیم و تسخیر است.

آموزش و هوش مصنوعی
تکنیک های طراحی الگوریتم

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