|  
صفحه اصلی > فهرست مقالات > انواع معماری توليد نرم افزار
مقالات وب، شبکه
 

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

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

معماری چند لایه
در مهندسی نرم افزار، سیستم‌های نرم افزاری را به دلیل کاهش پیچیدگی و ساده تر شدن آنها و همچنین به خاطر تسهیل در امر نگــهداری و اعمال تغییرات در آنها، به چـند زیر سیستم تقسیم کـرده و قسمت‌های مستقل سیستم را به صورت لایه‌های جداگانه و مستقل از هم طراحی می‌کنند. هر کدام از این لایه‌ها ضمن اینکه وظیفه خاص خود را دارند، با هم در ارتباط بوده به طوری که هر لایه به لایه‌های بالایی و پایینی خود سرویس داده و از آنها سرویس می‌گیرد. انتقال اطلاعات و داده‌ها در بین این لایه‌ها از طریق Objectهایی که اصطلاحا DTO نامـیده می‌شوند، انجام می‌گیرد و کاربر نهایی فقط با لایه بیرونی در ارتباط بوده و کاری با لایه‌های دیگر ندارد. به این روش طراحی سیستم‌های نرم افزاری، معماری چندلایه یا N-Tier گفته می‌شود.

معماری چند لایه

در این مقاله با معماری های زیر آشنا می شویم:

  • معماری MainFrame
  • معماری File Server
  • معماری سرويس گيرنده / سرويس دهنده
  • معماری Two-Tier
  • معماری Three-Tier

معماری MainFrame -----------------------------

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

مزايا :
» امنيت در اين نوع معماری بسيار بالا است.
» با توجه به تمرکز داده ها و منطق، مديريت متمرکز و اعمال آن آسان خواهد بود.

معايب:
» هزينه تهيه ، اجاره و پشتيبانی اين نوع سيستمها بسيار بالا است.
» برنامه ( منطق ) بهمراه داده های مربوطه در يک محل مستقر و از يک محيط پردازش يکسان استفاده می کنند.
» اغلب برنامه های نوشته شده بر اساس معماری فوق محيط های رابط کاربر گرافيکی را حمايت نمی نمايند

معماری File server -----------------------------

ويژگی ها:
» از سرويس دهنده يا سرويس دهندگان متعدد، بصورت متمرکز استفاده می گردد.
» منابع متفاوتی نظير چاپگر و يا فضای ذخيره سازی (هارد) به اشتراک گذاشته می شوند.
» سرويس دهنده فايل های مورد نيازو ذخيره شده توسط منابع اشتراکی را برای کاربران ارسال خواهد کرد.
» کار درخواست شده توسط کاربر (منطق و داده) بر روی سيستم کاربر اجراء خواهد شد.
» منطق برنامه برروی سيستم کاربر (سرويس گيرنده) اجرا خواهد کرديد.
» داده ها بر روی سرويس گيرنده مستقر خواهند شد.

مزايا:
» برای استفاده از معماری فوق نياز به صرف هزينه های بالا نخواهد بود.
» از لحاظ بکارگيری منابع دارای انعطاف پذيری مناسبی است.

معايب:
» تمامی منطق برنامه بر روی سرويس گيرنده اجراء خواهد شد.
» وجود محدوديت های خاص نظير ميزان حافظه و يا نوع پردازشگر سرويس گيرندگان، بکارگيری برنامه را با مشکل مواجه می سازد.
» بهبود عملکرد برنامه و يا اعمال اصلاحات مورد نظر همواره يکی از چالش های جدی است.

معماری Client Server -----------------------------

ويژگی ها:
» در معماری فوق از سرويس دهند گان و سرويس گيرند گان با خصايص متفاوت استفاده می شود.
» اصل تقسيم کار دنبال و سرويس دهنده عمليات سنگين با پردازش بالا و سرويس گيرنده عمليات سبک را انجام خواهند داد.
» دو بخش متفاوت يک برنامه ، در جهت انجام عمليات با يکديگر تشريک مساعی می نمايند.
» سرويس گيرنده با ارسال درخواست و سرويس دهنده با پاسخ به درخواست جلوه ای از همياری در پردازش عمليات را بنمايش می گذارند.
» پلات فورم و سيستم های عامل سرويس دهنده و سرويس گيرنده می تواند متفاوت باشد.
» عملياتی را که يک برنامه انجام می دهد بين سرويس دهنده و سرويس گيرنده تقسيم می گردد.

مزايا:
» بهره گيری مناسب از پتانسيل های سخت افزاری موجود با توجه به اصل تقسيم عمليات ها
» بهينه سازی استفاده و بکارگيری منابع اشتراکی.
» بهينه سازی توانائی کاربران از بعد انجام فعاليت های متفاوت

معايب:
» عدم وجود امکانات لازم برای کپسوله نمودن سياست های راهبردی نرم افزار
» کاهش کارائی برنامه همزمان با افزايش تعداد کاربران همزمان
» بهبود عملکرد برنامه و يا اعمال اصلاحات مورد نظر همواره يکی از چالش های جدی است.

مدل های متفاوت از معماری Client Server عبارتند از:

  1. پردازش های مبتنی بر ميزبان. مدل فوق بمنزله يک مدل سرويس دهنده/سرويس گيرنده تلقی نشده و مشابه مدل MainFarme است.
  2. پردازش های مبتنی بر سرويس دهنده. در اين مدل سرويس دهنده تمامی پردازش های مربوطه را انجام و سرويس گيرنده مسئوليت ايجاد بخش رابط کاربر را برعهده خواهد داشت.
  3. پردازش های مبتنی بر سرويس گيرنده. تمامی عمليات بر روی سرويس گيرنده انجام خواهد شد. عمليات مربوط به بررسی صحت داده ها و ساير عمليات مربوط به منطق بانک های اطلاعاتی بر روی سرويس دهنده انجام خواهد شد.
  4. پردازش های مبتنی بر همياری. در اين مدل سرويس دهنده و سرويس گيرنده جهت انجام يک فعاليت با يکديگر همکاری خواهند کرد.

معماری Client Server: Two Tier (معماری 2 لایه) -----------------------------

معماری دو لایه طراحی نرم افزار

ويژگی ها :
» مشابه مدل Client Server در بخش قبل می باشد.
» در اين مدل از يک سرويس دهنده و يک سرويس گيرنده در شبکه استفاده می گردد.
» مدل فوق از سه بخش که در دو لايه سرويس دهنده و سرويس گيرنده قرار خواهند گرفت، تشکيل می گردد.
» بخش های رابط کاربر ، مديريت پردازش ها و مديريت بانک های اطلاعاتی بخش های سه گانه مدل فوق می باشند.
» منطق برنامه بين دو محل فيزيکی توزيع می گردد.

مزايا:
» مناسب ترين روش برای پردازش های توزيع شده در يک شبکه با حداکثر يکصد کاربر
» سهولت در امر پياده سازی
» نسبت دهی مستقيم رابط کاربر با منابع تامين داده ها

معايب:
» عدم وجود امکاناتی برای کپسوله نمودن سياست های راهبردی نرم افزار
» کاهش کارائی برنامه همزمان با افزايش تعداد کاربران همزمان (بيش از يکصد)
» عدم وچود انعطاف لازم از بعد انتقال يک برنامه از سرويس دهنده ای به سرويس دهنده ديگر بدون انجام تغييرات اساسی

معماری Client Server: Three Tier (معماری 3 لایه) -----------------------------

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

معماری 3 لایه

  1. Presentation Layer (لایه نمایش): این لایه که به آن لایه Interface نیز گفته می‌شود شامل تمام عناصر قابل رویت مربوط به رابط گـرافیکی کارب می‌باشد و در واقع هــر آنچه را که کاربر نهایی استفاده کننده از سیستم مشاهـده می‌کند از قبیل فرم‌ها، کنترل‌های روی فرم‌ها، تصاویر، منوهای برنامه و... در این لایه قرار می‌گیرند. کاربر سیستم فقط با این لایه در ارتباط بوده و هیچ ارتباطی با دیگر لایه‌ها ندارد و در واقع درخواست خود را از طریق لایه نمایش به لایه‌های زیرین انتقال می‌دهد. وظیفه لایه نمایش این است که اطلاعات لازم را از کاربر گرفته و در صورت لزوم برخی Validation یا اعتبار سنجی‌هایی که باید در این لایه انجام گیرد مثل: کنترل طول فیلدها، کنترل اجباری بودن بعضی فیلدها و... را انجام می‌دهد و این اطلاعات را برای هر گونه پردازش لازم دیگری به لایه بعدی ارسال می‌نماید و در واقع هیچ اثری از منطق اصلی برنامه و اتصال به بانک اطلاعاتی در این لایه دید نمی‌شود.
  2. Business Logic Layer (لایه منطق تجاری): این لایه که به آن لایه میانی (Middle Tier) نیز گفته می‌شود حاوی منطق اصلی برنامه بوده و وظیفه ارتباط بین لایه نمایش و لایه داده را بر عهده دارد. در واقع کلیه درخواست‌هایی که در اثر تعامل کاربر با لایه نمایش ایجاد شده است به این لایه منتقل شده و تمام پردازش‌های لازم بر اساس منطق اصلی برنامه در این لایه انجام شده و نتیجه این پردازش مجددا به لایه نمایش منتقل شده و برای کاربر به نمایش درمی آید. گاهی اوقات درخواست کاربر به گونه‌ای است که لایه منطق تجاری برای انجام آن نیاز دارد که با لایه داده یعنی لایه زیرین خود ارتباط داشته باشد مثلا کاربر ممکن است عملیات جستجو در محصولات یک شرکتی را بخواهد انجام دهد به این صورت که از طریق لایه نمایش لیست محصولات شرکت را درخواست می‌نماید، لایه نمایش درخواست کاربر را به لایه منطق تجاری ارسال می‌کند و این لایه نیز بدلیل اینکه انجام درخواست کاربر نیاز به برقراری ارتباط با لایه داده دارد، درخواست کاربر را به لایه داده ارسال می‌کند، لایه داده نیز درخواست کاربر را انجام داده و لیست محصولات شرکت را از بانک اطلاعاتی دریافت کرده و به لایه بالایی خود یعنی لایه منطق برنامه انتقاال داده و لایه منطق برنامه نیز این لیست را عینا با لایه بالایی خود یعنی لایه نمایش انتقال داده و در نهایت لایه نمایش این لیست را به کاربر نمایش می‌دهد. بنابراین وظیفه اصلی لایه منطق برنامه اعمال منطق اصلی برنامه بر روی درخواست کاربران و نیز برقراری ارتباط بین لایه نمایش و لایه داده می‌باشد.
  3. Date Access Layer (لایه دسترسی به داده): این لایه که به آن لایه بانک اطلاعاتی نیز گفته می‌شود وظیفه مدیریت اطلاعات موجود در بانک اطلاعاتی یا همان Database را بر عهده دارد و بر اساس درخواست‌هایی که از لایه بالایی خود دریافت می‌کند عملیاتی از قبیل: حذف، اضافه، اصلاح، خواندن اطلاعات و... را بر روی بانک اطلاعاتی انجام داده و نتیجه عمل را به لایه بالایی خود ارسال می‌کند. باید توجه داشت که ارتباط با بانک اطلاعاتی فقط از طریق لایه داده انجام می‌گیرد.

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

مزايا:
» افزايش کارآئی ، انعطاف پذيری ، قابليت استفاده مجدد و توان پشتيبانی
» ارتقاء کارآئی همزمان با افزايش تعداد کاربران
» مخفی نمودن پيچيدگی ها ی موجود با توجه به ماهيت پردازش های توزيع شده از ديد کاربران
» ارائه امکانات لازم به برنامه نويسان بمنظور طراحی و پياده سازی نرم افزار ها با يک رويکرد مشابه
» ارائه امکانات لازم به برنامه نويسان بمنظور تبعيت از روش های يکسان برای دستيابی به داده ها

معایب:
معماری ۳ لایه همیشه راه حل مناسبی برای طراحــی سیستم‌ها نیست به عبارت دیگر برای طــراحی هر سیستمی بدلیل مـقرون به صــرفه نبودن نمی‌توان از این معماری استفاده کرد. مثلا برای سیستم‌ های کوچک استفاده از معماری ۳ لایه زمان بر و هزینه بر بوده و هزینه Develope و نگهداری سیستم بالا می‌رود.
 
 
ارسال به دوستافزایش اندازه فونتکاهش اندازه فونت