معماری و طراحی
تاکنون ، معماری های متفاوتی بمنطور طراحی و پیاده سازی متناسب با رشد فن آوری در بخش نرم افزار ارائه شده است این معماری ها از یکطرف برخاسته از امکانات و ماهیت معماری سخت افزار ها در زمان خود و از طرف دیگر بسته به نوع و نگرش در تکنولوژی های ساخت نرم افزاری و انتظارات طرح شده توسط کاربران است هر معماری دارای شاخص ها و ویژگی های منحصر بفرد خود بوده و نرم افزارهائی که با اتکاء بر هر یک از معماری های فوق پیاده سازی می گردنند ، خصایص خود را از معماری بکارگرفته شده به ارث خواهند برددر زیر به شرح مختصری از هر یک از معمارها می پردازیم مسلما معماری ها و چارچوب های جدید مبتنی بر برنامه نویسی تحت وب و اینترنت نظیر 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