19 سال پیش
در تاریخ:
چهارشنبه, اسفند 17, 1384 3:18
چرا قبلاً معماری نداشتیم:
1 – تعریف دقیقی از آن وجود نداشت.
2 – ابزار مناسبی نبود.
3 – فرآیندی نداشتیم که به ما حکم کند و ما را وادار به استفاده کند.
تعیین معماری و نیازهای سازمان جزء مهمترین بخشهای هر متدولوژی مهندسی نرم افزار میباشد که هدف و جهت حرکت پروژهها ار مشخص میکند.
معماری سه لایه
این معماری که در اصل میتوان گفت بعد از معماری Client/Server بوجود آمد برگرفته شده از ایده معماری چند لایه (Multi tire) میباشد. در این معماری بر خلاف مدل دو لایه که باعث افزایش ترافیک بر روی شبکه و کاهش شدید انعطاف پذیری در سیستمها میشود، پروژههای نرم فازاری در سه لایه اصلی بنام User Layer و Business Layer و Data Layer طراحی و پیاده سازی میشوند. این سه لایه هر کدام وظایف جداگانه و خاص خود را دارند و برگرفته شده از ایده ICها در مدارات الکترونیکی میباشد. زیرا در چنین سیستمهایی کارشناسان میتوانند در صورت تغییرات که میتواند کوچک یا بزرگ باشد در هر لایه این تغییرات را اعمال نمایند بدون اینکه نیاز به تغییر در لایههای دیگر باشد یا کمترین تغییرات متوجه لایه دیگر میشود. بعنوان مثال امروزه در سیستمهای مدرن بانکی قوانین تغییرات زیادی را دارند که اگر از معماری دو لایه استفاده شود جهت اعمال این تغییرات نیاز هه تغییرات فراوانی در فایلهای اجرایی (Clientها) یا بانک اطلاعاتی و نصب مجدد آنها برای تمامی کاربران در شبکه میباشد ولی در روش سه لایه اگر به فرض نرخ ارز یا فرمول محاسبه سود تغییر کند با اعمال تغییر در لایه میانی (Business) و عوض کردن این لایه با ویرایش جدید تمامی سیستمها بدون آنکه متوجه تغییر شون و یا نیاز به نصب مجدد داشته باشند میتواند با سیستم جدید ارتباط برقرار کنند.
User Layer :
لایه کاربر در اصل همان برنامههایی میباشند که کاربران بصورت Native یا Web Base با آنها ارتباط برقرار میکنند تا نیازهای خود را به سیستم جهت اعمال تغییرات یا گرفتن گزارش ارائه دهند. این لایه بطور کلی از قوانین موجود در سیست مجدا میباشد تنها کاربران لیستی از دادهها را میبینند و یا دادههای جدید را به این لایه توسط برنامههای خد ارائه میدهند و وظیفه این لایه میباشد که با دو لایه دیگر بنابر نیاز ارتباط برقرار کرده و تقاضای کاربران را به آنها تحویل دهد یا نتیجه را از آنها بگیرد.
Business Layer :
این لایه شامل قوانین موجود در سیستم میباشد. وظیفه این لایه گرفتن اطلاعات از لایه کاربر و کنترل آنها با قوانین یا اعمال قوانین بر روی آنها و ترجمه آنها به اطلاعات قابل فهم برای لایه بانک اطلاعات (Data Layer) جهت ذخیره و بازیابی در سیستم میباشد. در واقع این لایه نقش یک لایه میانه را بازی میکند.
Data Layer :
این لایه نقش ذخیره، بازیابی و بروزرسانی اطلاعات را برعهده دارد که دادهها را از لایه Bussiness یا کاربر گرفته یا اطلاعات درخواستی را با آنها تحویل میدهد. البته کار با لایه کاربر در تئوری وجود دارد و در عمل ثابت شده است که هم از جهت امنیت و هم کارآیی سیستم را دچار مشکل میکند بنابراین در این سیستمها ارتباط با لایه Business میباشد.ویژگی دیگر معماری سه لایه امکان گسترش آن میباشد. بدین معنا که سرویس دهنده ما توان سرویس دهی به 100 گروه (Client) را داشته باشد ولی پس از مدتی ما به 200 گروه نیاز داشته باشیم بعلت جدابودن سرویس دهنده لایه میانی از لایه بانک اطلاعاتی میتوان دو سرویس دهنده لایه میانی را در شبکه قرارداد که هر کدام به 100 کاربر امکانات ارائه میکنند که این از افزایش سربار و ترافیک در شبکه و تداخل اطلاعات کاربران تا حدود زیادی جلوگیری میکند
محوریت معماری یکی از ویژگیهای اصلی RUP می باشد . در این فرآینده وقتی صحبت از معماری می کنیم ، منظور ما متفاوت از ساختار می باشد . معماری سیستمهای نرم افزاری در موارد زیر نفش ایفا میکند و تصمیم گیرنده می باشد:
· ساختار سیستم نرم افزاری
·عناصر ساختار و واسط های آنها که سیستم را تشکیل می دهند بعلاوه ی رفتار آنها که بصورت همکاریهای بین آن عناصر مشخص می شوند.
· ترکیبی از عناصر ساختاری و رفتاری در زیر سیستمهای بزرگ
· روش معمارانه که ساختار ساختار را هدایت می کند : عناصر و رابط های آنها ، همکاریهای آنها و ترکیب آنها.
·ضریب تغییرات در مدلها.
به طور خلاصه معماری نرم افزار نه تنها مرتبط با ساختار و رفتار است ، بلکه به استفاده ، وظیفه مندی ، عملکرد ، قابلیت استفاده ی مجدد ، قابل فهم بودن ، محدودیتهای اقتصادی و تکنولوژیکی ، موازنه ها و زیباییهای نرم افزار نیز مربوط می شود.