وبلاگ

معماری اپلیکیشن‌های تحت وب مدرن

معماری اپلیکیشن‌های تحت وب مدرن

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

معماری اپلیکیشن‌های تحت وب مدرن

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

معماری لایه ای(Layered)

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

لایه FrontEnd

 لایه ای که شما به عنوان بازدیدکننده اپلیکیشن تحت وب در واقع با ان روبرو می شوید.مجموع صفحات،اسکریپت ها،تصاویر و تقریبا همه موارد بصری که کاربر با آن سروکار دارید در این لایه قرار دارند.در پیاده سازی این لایه معمولا از فریمورک هایی مثل React  و  Angular استفاده می کنند.

لایه منطق(bussines Logic)

 این لایه در واقع به صورت مستقیم دراختیار کاربر استفاده کننده از اپلیکیشن نیست و تنها در اختیار تیم توسعه نرم افزار است.در نرم افزار های تحت وب که با تکنولوژی مایکروسافت پیاده سازی می شوند این لایه می تواند به کمک فریم ورک هایی مثل Asp.Net Core  طراحی و پیاده سازی شود.این لایه مسئول ایجاد ارتباطات بانک اطلاعات با بخش های مختلف برنامه می باشد.همچنین همه قوانین و باید و نباید ها،محاسبات و منطق برنامه در این لایه پیاده سازی می شود و پس از محاسبه در اختیار لایه FrontEnd قرار می گیرد.

در پروژه های متوسط و بزرگ این لایه ها یعنی FrontEnd و BackEnd به وسیله API با یکدیگر صحبت می کنند.Api ها در واقع برنامه هایی هستند که به تبادل اطلاعات بین این دو لایه کمک می کنند و این امکان فراهم می شود که چند نوع از لایه FrontEnd بتواند از یک BackEnd  استفاده کند.این زمانی اتفاق می افتد که شما بخواهید برنامه شما از دیتای واحدی برای استفاده در نسخه وب و موبایل یا طراحی های دیگر به صورت مشترک استفاده کند.

معماری میکروسرویس

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

معماری SPA

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

ارتیاط و امنیت

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