معماری و طراحی نرم افزار

صفحه اصلی کارگروهها >> Rational Unified Process (RUP)  >> معماری و طراحی نرم افزار
کاربر حذف شده

کاربر حذف شده

در کارگروه: Rational Unified Process (RUP)
تعداد ارسالي: -2
17 سال پیش در تاریخ: جمعه, اسفند 18, 1385 14:50

معماری و طراحی


تاکنون ، معماری های متفاوتی بمنطور طراحی و پیاده سازی متناسب با رشد فن آوری در بخش نرم افزار ارائه شده است این معماری ها  از یکطرف برخاسته از امکانات و ماهیت معماری سخت افزار ها در زمان خود و از طرف دیگر بسته به نوع و نگرش در تکنولوژی های ساخت  نرم افزاری و انتظارات طرح شده توسط کاربران است  هر معماری دارای شاخص ها و ویژگی های منحصر بفرد خود بوده و نرم افزارهائی که با اتکاء بر هر یک از معماری های فوق پیاده سازی می گردنند ، خصایص خود را از معماری بکارگرفته شده به ارث خواهند برددر زیر به شرح مختصری از  هر یک از معمارها می پردازیم مسلما معماری ها و چارچوب های جدید مبتنی بر برنامه نویسی تحت وب و اینترنت نظیر J2EE , .Net قابلیت و لزوم استفاده از معماریهای چند لایه را توصیه می نمایندعلاوه بر این در این نوع  معماری عدم وابستگی بین مولفه ها (Components) و نیز سرویسها ( در غالب معماری Service Oriented  ) مورد تاکید قرار گرفته است .



  • معماریMainFrame  

  • معماریFile Server

  • معماری سرویس گیرنده / سرویس دهنده

  • معماریTwo-Tier

  • معماری چندلایه  Three-Tier ,N Tier


 


معماری MainFrame


ویژگی :



  •    - معماری فوق در دهه های 1970-1960 مورد توجه و استفاده جدی قرار داشت

  •    - کامپیوتر اصلی ( Host) مسئولیت انجام تمامی پردازش ها را برعهده دارد.

  •    - کاربران با استفاده از ترمینال ها ، قادر به ایجاد ارتباط با سیستم اصلی (host) می باشند.

  •    - ترمینال ها هوشمند نبوده و صرفا" به یک صفحه کلید و نمایشگر محدود می باشند.

  •    - فشردن کلیدهای صفحه کلید ، تنها چیزی است که ارتباط بین کاربران(ترمینال ها ) و سیستم اصلی را معنی خواهد کرد.
       - داده ها و منطق برنامه بر روی یک سیستم (Host) یکسان ذخیره می گردنند.


 


مزایا :



  • امنیت در این نوع معماری بسیار بالا است.

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


 


معایب :


 



  • هزینه تهیه ، اجاره و پشتیبانی این نوع سیستمها بسیار بالا است .

  • برنامه ( منطق ) بهمراه داده های مربوطه در یک محل مستقر و از یک محیط پردازش یکسان استفاده می کنند.

  • اغلب برنامه های نوشته شده بر اساس معماری فوق محیط های رابط کاربر گرافیکی را حمایت نمی نمایند.


 


معماری File Server


ویژگی :



  • چرخش180 درجه ای نسبت به معماری MainFrame.

  • از سرویس دهنده یا سرویس دهند گان متعدد، بصورت متمرکز استفاده می گردد.

  • منابع متفاوتی نظیر چاپگر و یا فضای ذخیره سازی ( هارد ) به اشتراک گذاشته می شوند.

  • سرویس دهنده فایل های مورد نیازو ذخیره شده توسط منابع اشتراکی را برای کاربران ارسال خواهد کرد.

  • کار درخواست شده توسط کاربر ( منطق و داده ) بر روی سیستم کاربر اجراء خواهد شد.

  • منطق برنامه برروی سیستم کاربر ( سرویس گیرنده ) اجراء خواهد کردید.

  • داده ها بر روی سرویس گیرنده مستقر خواهند شد.
     


مزایا :


 



  •  برای استفاده  از معماری فوق نیاز به صرف هزینه های بالا نخواهد بود  .

  • از لحاظ بکارگیری منابع دارای انعطاف پذیری مناسبی است .


 


معایب :


 



  • تمامی منطق برنامه بر روی سرویس گیرنده اجراء خواهد شد .

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

  • بهبود عملکرد برنامه و یا اعمال اصلاحات مورد نظر همواره یکی از چالش های جدی است .


 


معماری Client Server


ویژگی :



  • در معماری فوق از سرویس دهند گان و سرویس گیرند گان  با خصایص متفاوت استفاده می شود.

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

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

  • سرویس گیرنده با ارسال درخواست و سرویس دهنده با پاسخ به درخواست جلوه ای از همیاری در پردازش عملیات را بنمایش می گذارند.

  • پلات فورم و سیستم های عامل سرویس دهنده و سرویس گیرنده می تواند متفاوت باشد.

  • عملیاتی را که یک برنامه انجام می دهد بین سرویس دهنده و سرویس گیرنده تقسیم می گردد.
     



مزایا :



  • بهره گیری مناسب از پتانسیل های سخت افزاری موجود با توجه به اصل تقسیم عملیات ها

  • بهینه سازی استفاده و بکارگیری منابع اشتراکی  .

  • بهینه سازی توانائی کاربران از بعد  انجام فعالیت های متفاوت


 


معایب :



  • عدم وجود امکانات لازم  برای کپسوله نمودن سیاست های راهبردی نرم افزار

  • کاهش کارائی برنامه همزمان با افزایش تعداد کاربران همزمان

  • بهبود عملکرد برنامه و یا اعمال اصلاحات مورد نظر همواره یکی از چالش های جدی است .


 


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



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


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


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


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



 


معماری Client Server : Two Tier


ویژگی :



  • مشابه مدل Client Server در بخش قبل می باشد.

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

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

  • بخش های رابط کاربر ، مدیریت پردازش ها و مدیریت بانک های اطلاعاتی بخش های سه گانه مدل فوق می باشند.

  • منطق برنامه بین دو محل فیزیکی توزیع می گردد.



مزایا :



  •  مناسب ترین روش برای پردازش های توزیع شده در یک شبکه با حداکثر  یکصد  کاربر

  •  سهولت در امر پیاده سازی

  •  نسبت دهی مستقیم رابط کاربر با منابع تامین داده ها


 


معایب :


 



  • عدم وجود امکاناتی برای کپسوله نمودن سیاست های راهبردی نرم افزار

  • کاهش کارائی برنامه همزمان با افزایش تعداد کاربران همزمان

  • عدم وچود انعطاف لازم از بعد انتقال یک برنامه از سرویس دهنده ای به سرویس دهنده دیگر بدون انجام تغییرات اساسی


 


معماری Multi Tier, Three Tier




ویژگی :



  •   مدل فوق در سال 1990 عرضه شده است .

  • در این مدل از یک Tier میانی دیگر بین سرویس گیرنده ( رابط کاربر) و سرویس دهنده بانک اطلاعاتی استفاده می شود.

  • لایه میانی شامل مجموعه ای از ابزارها برای دستیابی به منابع سیستم ، صرفنظر از نوع پلات فورم  است

  • لایه میانی مسئولیت مدیریت پردازش ها را برعهده خواهد گرفت

  • لایه میانی مسئولیت تجزیه و یا ترکیب نتایج حاصله از منابع داده ئی نظیر بانک های اطلاعاتی را برعهده دارد.

  • بخش های رابط کاربر ، مدیریت پردازش ها و مدیریت بانک های اطلاعاتی بخش های سه گانه مدل فوق می باشند.

  • لایه میانی خود می تواند به دو و یا بیش از دو بخش با عملکردهای متمایز تقسیم گردد (Multi-Tier)  لایه منطق تجاری می تواند برروی سرویس دهنده های متعدد قرار گیرد.

  • مدل فوق گزینه ای مناسب برای پیاده سازی نرم افزار بر روی اینترنت است .



مزایا :



  •    افزایش کارآئی ، انعطاف پذیری ، قابلیت استفاده مجدد و توان پشتیبانی

  •    ارتقاء کارآئی همزمان با افزایش تعداد کاربران

  •    مخفی نمودن پیچیدگی ها ی موجود با توجه به ماهیت پردازش های توزیع شده از دید کاربران

  •    ارائه امکانات لازم به برنامه نویسان بمنظور طراحی و پیاده سازی نرم افزار ها با یک رویکرد مشابه

  •    ارائه  امکانات لازم به برنامه نویسان بمنظور تبعیت از روش های یکسان برای دستیابی به داده ها

  •    استفاده از الگوهای طراحی و برنامه نویسی در پیاده سازی و توسعه سریع تر


Best Regards

Ardavan Dejpanah
Dejpanah@gmail.com

حذف ارسالي ويرايش ارسالي
کاربر حذف شده

کاربر حذف شده

در کارگروه: Rational Unified Process (RUP)
تعداد ارسالي: -2
17 سال پیش در تاریخ: جمعه, اسفند 18, 1385 15:14


Layering Strategies

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



دانلود
best regards

Ardavan Dejpanah
Dejpanah@gmail.com


 




حذف ارسالي ويرايش ارسالي
ati karimi

ati karimi

در کارگروه: Rational Unified Process (RUP)
تعداد ارسالي: 1
12 سال پیش در تاریخ: یکشنبه, آبان 07, 1391 20:31

سلام


وقت شما بخیر


می خواستم بپرسم  تفاوت معماری با طراحی چی هستش و اینکه در انتخاب معماری نرم افزار باید به چه نکاتی توجه کنیم<


حذف ارسالي ويرايش ارسالي