عمومی

مروری بر راههای انتقال متغیرها و داده از یک صفحه به صفحه دیگر ( State Management )

یکی از مهمترین تفاوت های موجود بین برنامه های وب و Desktop  ، مدیریت state است که در آن می بایست به این پرسش پاسخ داده شود که نحوه نگهداری اطلاعات در ارتباط با کاربر جاری به چه صورت است ؟

در یک برنامه ویندوز ، state بطور اتوماتیک مدیریت می گردد. حافظه به حد فراوان یافت می شود و همواره در دسترس است. در برنامه های وب داستان بگونه ای دیگر است. هزاران کاربر ممکن است بطور همزمان برنامه ای مشابه را بر روی کامپیوتری یکسان ( سرویس دهنده وب ) اجراء و هر یک از آنان از طریق پروتکل HTTP ( برگرفته شده از  Hypertext Transfer Protocol) که دارای ماهیتی stateless است با سرویس دهنده وب ارتباط برقرار نمایند. مجموعه شرایط فوق باعث شده است که نتوان برنامه های وب را با سناریوئی دقیقاً مشابه با برنامه های ویندوز طراحی و پیاده سازی کرد.

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

آشنائی و درک مناسب نسبت به محدودیت های  state ، یکی از مفاهیم کلیدی در زمان ایجاد برنامه های وب کارآ و قدرتمند است.

 مدیریت state و مسائل در ارتباط با آن

در یک برنامه ویندوز ، کاربران با یک برنامه در حال اجراء بطور پیوسته ارتباط برقرار می نمایند. بخشی از حافظه موجود بر روی کامپیوتر Desktop  برای ذخیره  تنظیمات جاری اطلاعات محیط کار کاربر اختصاص داده می شود.
در یک برنامه وب ، داستان کاملاً متفاوت است. شاید از دید کاربران یک سایت حرفه ای اینگونه برداشت شود که یک برنامه بطور مستمر در حال اجراء است و به آنان سرویس های لازم را می دهد . با اینکه ظاهر موضوع درست بنظر می آید ولی در داستان بگونه ای دیگر دنبال می شود.  برنامه های وب از یک الگوی دستیابی غیرمتصل کارا استفاده می نمایند. در این الگو ، سرویس گیرنده پس از ارتباط با سرویس دهنده از آن درخواست یک صفحه را می نماید. پس از پاسخ به سرویس گیرنده ، ارتباط منطقی ایجاد شده قطع و سرویس دهنده بی خیال هر گونه اطلاعاتی در رابطه با سرویس گیرنده می گردد. پس از دریافت صفحه درخواستی توسط سرویس گیرنده ، برنامه اجراء خود را متوقف و ASP.NET engine اشیاء مربوط به صفحه را دور می اندازد.

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

در صورتی که لازم است اطلاعات بین چندین عملیات کاربر نگهداری شوند ، می بایست از راهکارهای مختلفی به منظور مدیریت state استفاده کرد.

به این نوشته امتیاز دهید
[Total: 0 Average: 0]

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

همین حالا رایگان عضو شوید

مدیر بلاگ

مشخصات مدیر

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا
بستن
بستن