وبلاگ کشاورز

با سلام خدمت دوستان عزیز امیدوارم که از مطالبی که در این وبلاگ منتشر میکنم راضی باشید لطفا نظراتتون رو بگید موفق باشید دوستان

وبلاگ کشاورز

با سلام خدمت دوستان عزیز امیدوارم که از مطالبی که در این وبلاگ منتشر میکنم راضی باشید لطفا نظراتتون رو بگید موفق باشید دوستان

معرفی معماری چند لایه (N-Tier Architecture)

همینطور که میدونید برنامه نویس باید یک چیزی بیشتر از کد نویسی یاد داشته باشه  و بتونه مطالب بیشتری رو در پروژش از یک کد ساده به کار ببره . لایه بندی برنامه یکی از این مواردی هست که به نرم افزار شما ساختار میده و باعث میشه مدیریت و ارتقا نرم افزار در آینده و همینطور در زمان طراحی راحتر انجام بشه.

ابتدا اولین سوالی که مطرح هست ، اینکه ساختار(معماری) چند لایه چیست ؟؟

ساختار چند لایه به ساختار نرم افزارهایی اطلاق میشه که دارای سه لایه (یا قسمت) منطقی باشند که جدا از هم هستند . هر لایه فقط مستقیما با لایه پایین تر از خودش کار میکنه که هر لایه مسئول وظایف خاصی هست .

 

چرا ما از ساختار چند لایه استفاده میکنیم ؟  


 بدلیل اینکه در این نوع ساختار ، تمام وظایف بین لایه های مربوط تقسیم شده و هر لایه وظیفه مربوط به خودش رو انجام میده و نیازی نیست که تغییراتی رو در لایه های دیگه ایجاد کنه یا هر دفعه تمام لایه ها کامپایل بشه ، برای مثال در ASP.NET ، باعث میشه تا هر لایه در سروری جدا اجرا بشه بدون اینکه تمام حجم کار روی یک سرور باشه .

نکته : تفاوت N-Layer و N-Tier : در بعضی از منابع تفاوتی بین این دو ذکر نشده است، اما در بعضی این دو مفهوم رو مستقل از هم میدونستند ، که من خدمت شما عرض میکنم ::

N-Tier به این معناست که کد یا پروسه در کجا اجرا بشه که منظور همون محل فیزیکی هست ، اما منظور از N-Layer این هست که کد به چه صورت منطقی دسته بندی(گروه بندی) شده است .

 

در اکثر مواقع معماری چند لایه دارای سه لایه هست که به صورت زیر نام گذاری می شوند ::

·         لایه نمایش (Presentation Layer)

·         لایه تجاری (Business Layer)

·         لایه دسترسی به منابع داده (Data Access Layer)

 

1.      لایه نمایش (Presentation Layer) یا (Interface Layer)

این لایه وظیفه داره تا با استفاده از لایه تجاری (Business Layer)  اشیا رو نمایش بده ، برای مثال در ASP.NET صفحه های aspx  یا کنترلهای سرور و از این قبیل موارد ،  یا در برنامه های ویندوزی فرمهای ویندوز (Windows Form) این وظیفه رو دارند .

2.      لایه تجاری (Business Layer)

این لایه وظیفه داره که اطلاعات رو از لایه داده (Data Layer) بگیره ، به روز کنه یا پاک کنه و در بعد اونها رو در لایه اینترفیس نمایش بده . برای مثال اشیای SqlClient یا oledb داده های رو میگیرند یا پاک میکنند یا به روز میکنند و .. ، در بعد اونها رو بوسیله اشیایی مانند Datareader یاDataSet نمایش میدهند .

قبل از اینکه به سراغ مورد آخر بریم ، نکته ای در مورد این لایه هست که نیاز میبینم اشاره ای کنم :

در اکثر مواقع این لایه به دو لایه تقسیم میشود :

1 – لایه منطقی تجاری ( Business Logic Layer)

2- لایه دسترسی داده (Data Access Layer)

 

3.      لایه داده (Data Layer)

این لایه شامل منبع داده (Data Source) شما میشود . مانند SQL Server یا هر نوع منبع داده دیگه مانند XML . البته ناگفته نمونه که sql سریعترین بانک اطلاعاتی هست با پلتفرم دات نت .

 

تفاوت بین لایه منطقی (Logical Layer) و لایه فیزیکی (Physical Layer)

اکثر افراد بین این دو مفهوم گیج میشند ، به همین جهت نیاز دیدم تا به این دو مفهوم هم اشاره ای بشه:

 لایه منطقی به لایه ای می گویند که از نظر اسمبلی و کلاسها تقسیم شده باشد اما از نظر مکان در یکجا باشد.برای مثال در یک وب سایت کلاسها تقسیم شده هست اما همه بر روی یک سرور قرار دارند .لایه فیزیکی به این معنا هست که کلاسها و به طور کلی لایه های دیگر در جاهای مختلف هست و البته کدهایی هم برای ارتباط لایه ها در آنها قرار داده شده است ، برای مثال در لایه های یک وب سایت بر روی چند سرور قرار گرفته است و برای ارتباط اونها از وب سرویسها (Web Service) یا .. استفاده میکنیم.

جدا کردن لایه از نظر فیزیکی باعث افت سرعت لود برنامه یا وبسایت شما میشود ، بدلیل اینکه مقداری از منابع برنامه صرف ارتباط بین لایه ها میشود ، پس سعی کنید از نظر فیزیکی لایه های برنامه،  در یک جا قرار بگیرند . همچنین هزینه تولید به مراتب افزایش پیدا میکند ، بدلیل اینکه شما به منابع بیشتری (سرور در برنامه وب) نیاز دارید و یا به سخت افزارهای بیشتری نیاز دارید و از قبیل موارد .

خب ، به اخر این مقاله رسیدیم ، امیدوارم که این مختصر مطالب براتون مفید بوده باشه ، البته این مبحثی نیست که با چند صفحه به اتمام برسه ولی خب ، برای شروع خوبه ، امیدوارم در پستهای بعدی بتونم مطالب بیشتری رو از این موضوع برای شما بذارم . و مورد آخر اینکه من به شخصه اصلا دوست ندارم اصطلاحات برنامه نویسی به فارسی برگردونده بشه ، چون معتقدم برنامه نویس باید کلمه زبان اصلی رو درک کنه ، ولی خب چاره ای نیست ، چون خیلی از دوستان در معنای مفاهیم مشکل دارند و من هم مجبورم این کار رو بکنم .  در انتها براتون فایلPDF این آموزش رو هم گذاشتم تا بتونید این مطلب رو به راحتی به اشتراک بگذارید .

موفق باشید .

سایت آموزش برنامه نویسی

نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.