بررسی مزايا و معايب روش های متفاوت مديريت وضعيت صفحات New Page 1



ساير




 

 

 

SAKHA RAVESH CO.

 ا مروز

 پنجشنبه  3  فروردين  1396  2017  Mar.  23   Thursday ToDay
صفحه اصلی  مقالات نکته هادايره المعارف خودآموزها | تازه ها خود آزمون ها    
  نسخه قابل چاپ  

    5 4 3 2 1 

 عنوان

 نويسنده

  مشاهده

 تعداد آراء

 امتياز

 راهکارهای مديريت وضعيت صفحات ASP.NET

 مديريت وب

11132

18

3.8

با توجه به جایگاه داده در عصر حاضر و  لزوم نگاه جامع به این مقوله مهم ، بر آن شدیم تا محوریت فعالیت های خود را بر  روی این موضوع متمرکز نمائیم . از این رو گروه فابک با شعار فناوری اطلاعات برای کسب وکار شکل گرفت و  خدمات خود  را از طریق  سایت www.fabak.ir  به مخاطبان محترم عرضه می نماید

 

پيشنهاداتی در زمينه State Management  State management

راهکارهای مديريت وضعيت صفحات ASP.NET
State management ، پردازشی است که بکمک آن وضعيت يک صفحه و اطلاعات مرتبط به آن ، ذخيره و از اين طريق امکان دستيابی و استفاده از اطلاعات فوق برای ساير صفحات فراهم خواهد شد. ASP.NET در اين راستا روش های متعددی را ارائه نموده است . انتخاب هر يک از روش های موجود ، مستلزم بررسی عميق و پاسخ دادن به  نمونه سوالاتی مشابه زير است :

چه ميزان اطلاعات می بايست ذخيره گردد؟
▪ آيا سرويس گيرنده توانائی پذيرش کوکی را دارا است ؟
▪ قصد ذخيره اطلاعات بر روی سرويس دهنده و يا سرويس گيرنده را داريد؟
▪ آيا بر روی اطلاعات حساسيت های خاصی  وجود دارد؟
▪ چه نوع کارائی را می خواهيد داشته باشيد ؟

ASP.NET برای state management ، دو رويکرد مجزای Client-side و server-side را ارائه نموده است . روش های ارائه شده ء Client-Side شامل موارد زير است :
▪ The ViewState property
▪ Hidden fields
▪ Cookies
▪ Query strings
روش های ارائه شده ء Server-Side شامل موارد زير است :
▪ Application state
▪ Session state
▪ Database
در ادامه به بررسی مزايا و معايب هر روش خواهيم پرداخت .
الف ) نقد روش های Client-Side . ذخيره سازی اطلاعات مربوط به صفحات با استفاده از روش های اين گروه ، با توجه به عدم استفاده از منابع موجود بر روی سرويس دهنده ، دارای کارائی بيشتری بوده ولی با توجه به استقرار اين نوع اطلاعات بر روی سرويس گيرنده دارای حاشيه امنيتی پايين تری در مقايسه با روش دوم است . در ضمن ، با توجه به حجم اطلاعات ارسالی از سرويس گيرنده به سرويس دهنده از يکطرف با مسئله محدوديت ها مواجه بوده و از سوی ديگر ، ارسال حجم بالائی از اطلاعات برای سرويس دهنده می تواند اثرات منفی در کارائی سرويس دهنده را بدنبال داشته باشد.
جدول زير ويژگی هر يک از روش های گفته شده را نشان می دهد.

ويژگی

روش

زمان استفاده : بمنظور ذخيره نمودن حجم اندکی از اطلاعات موجود در صفحه ای که قصد مراجعت مجدد به آن وجود دارد استفاده می گردد.  بدين منظور لازم است از خصلت viewstate  استفاده گردد. در روش فوق به مسئله  امنيت اطلاعات بصورت مقدماتی و ساده ، توجه می گردد.

مزايا :
- به منابع سرويس دهنده نياز نخواهد بود. اطلاعات مربوطه در ساختاری بهمراه صفحه ذخيره می گردند. 
- پياده سازی آسان 
- پيمايش اتوماتيک صفحه و کنترل وضعيت
-  امکانات مناسب امنيتی . در اين روش مقادير ذخيره شده  Hash  ، فشرده و رمز خواهند شد.  معايب :
- کارآئی . با توحه به اينکه اطلاعات در ساختاری بهمراه صفحه ذخيره می گردند ، در صورت ذخيره نمودن حجم بالائی از اطلاعات ، در زمان نمايش بر روی کامپيوتر سرويس گيرنده و يا ارسال صفحه برای  سرويس دهنده ، سرعت کاهش پيدا خواهد کرد.
- امنيت . اطلاعات مورد نظر در روش فوق در يک فيلد مخفی بهمراه صفحه ذخيره خواهند شد. عليرغم اينکه اطلاعات با فرمت Hash ذخيره می گردند ، ولی  احتمال مشاهده  اطلاعات مربوطه در شرايط خاص وجود خواهد داشت .  در صورتيکه خروجی صفحات ( Source) مستقيما" رويت گردد ، امکان مشاهده اطلاعات ذخيره شده وجود خواهد داشت .

View state

زمان استفاده : بمنظور ذخيره نمودن حجم اندکی از اطلاعات موجود در صفحه ای که قصد مراجعت مجدد به آن وجود دارد استفاده می گردد. از فيلدهای مخفی برای ذخيره نمودن اطلاعات در يک صفحه و استفاده در صفحه ديگر نيز استفاده می گردد.  استفاده از فيلدهای مخفی صرفا" در صفحاتی امکان پذير است که برای سرويس دهنده ارسال خواهند شد.

مزايا :
-  به منابع سرويس دهنده نياز نخواهد بود. عمليات ذخيره سازی و خواندن فيلد های مخفی  از طريق صفحه وب انجام خواهد شد.
-  پياده سازی آسان 
- حمايت فراگير .  اکثر دستگاه های سرويس گيرنده و مرورگرها  از روش فوق حمايت می نمايند.
معايب :
- امنيت . اطلاعات مورد نظر در روش فوق در يک فيلد مخفی بهمراه صفحه ذخيره خواهند شد. احتمال مشاهده  اطلاعات مربوطه در شرايط خاص وجود خواهد داشت .  در صورتيکه خروجی صفحات ( Source) مستقيما" رويت گردد ، امکان مشاهده اطلاعات ذخيره شده وجود خواهد داشت .
- محدوديت فضای ذخيره سازی . فيلدهای مخفی دارای ساختارهای مناسب اطلاعاتی نمی باشند.  در هر فيلد مخفی ، صرفا" يک مقدار را می توان ذخيره نمود. بمنظور ذخيره نمودن چندين مقدار می بايست از رشته هائی که توسط حروف خاص از يکديگر متمايز می گردند، استفاده و در ادامه عمليات پارس  نمودن ( تفسير رشته )  رشته های را انجام داد.
- کارائی . با توحه به اينکه اطلاعات در ساختاری بهمراه صفحه ذخيره می گردند ، در صورت ذخيره نمودن حجم بالائی از اطلاعات ، در زمان نمايش بر روی کامپيوتر سرويس گيرنده و يا ارسال صفحه برای  سرويس دهنده ، سرعت کاهش پيدا خواهد کرد.

Hidden fields

زمان استفاده : بمنظور ذخيره نمودن حجم اندکی از اطلاعات مورد نظر بر روی کامپيوتر سرويس گيرنده استفاده شده و مسئله امنيت اطلاعات مورد توجه جدی  نمی باشد. 

مزايا :
-  به منابع سرويس دهنده نياز نخواهد بود.  کوکی بر روی سرويس گيرنده ذخيره و توسط سرويس دهنده استفاده می گردد.
-  سادگی  . کوکی دارای ساختاری بسيار ساده است . کوکی اطلاعات مبتنی بر متن با يک ساختار ساده اطلاعاتی می باشند ( کليد و مقدار )
- قابليت پيکربندی بر اساس تاريخ مصرف . تاريخ مصرف و اعتبار يک کوکی  قابل برنامه ريزی و مديريت است . در برخی حالات می توان  بمحض بستن برنامه مرورگر ، اعتبار يک کوکی را حذف و در برخی موارد می توان برای آن يک تاريخ خاص را مشخص نمود.
معايب :
- امنيت . استفاده از کوکی دارای چالش های جدی امنيتی است . کاربران قادر به انجام عمليات دلخواه خود بر روی کوکی های ذخيره شده می باشند. بدين ترتيت عملکرد برنامه هائی که وابسته به حضور معنی دار کوکی است ، دچار اختلال خواهد شد.
- محدوديت فضای ذخيره سازی . اغلب مرورگرها بمنظور نگهداری اطلاعات يک کوکی دارای محدوديت 4096 بايت می باشند. در مرورگرها و دستگاه های جديد سرويس گيرنده جديد، محدوديت فوق به  8192 بايت ارتقاء يافته است
- وابسته به  پيکربندی  کاربران . برخی از کاربران ، قابليت استفاده از کوکی را در مرورگرها و  يا دستگاههای سرويس گيرنده  خود ، غير فعال می نمايند. بديهی است در چنين مواردی روش فوق دچار محدوديت در ارائه عمليات و پتانسيل های مربوطه خواهد شد.
- ماندگاری  . دوام و بقاء کوکی بر روی يک کامپيوتر سرويس گيرنده به عوامل متفاوتی نظير تاريخ سر رسيد و يا مداخله کاربر بستگی خواهد داشت .

Cookies

زمان استفاده : بمنظور ارسال حجم اندکی اطلاعات از يک صفحه به صفحه ديگر استفاده می گردد. در اين روش مسئله امنيت اطلاعات مورد توجه حدی قرار نمی گيرد. استفاده از روش فوق صرفا" در زمان درخواست يک صفحه  مشابه و يا درخواست يک صفحه از طريق يک لينک  ، امکان پذير است. 

مزايا :
-  به منابع سرويس دهنده نياز نخواهد بود. رشته مورد نظر در درخواست Http و برای يک URL خاص ذخيره می گردد.
-  حمايت فراگير . اکثر مرورگرها و دستگاههای سرويس گيرنده  امکان ارسال اطلاعات به روش فوق را فراهم می نمايند.
- پياده سازی آسان
معايب :
- امنيت .اطلاعات ارسالی توسط روش فوق ، از طريق اينترفيس مرورگر برای کاربران قابل مشا هده می باشند. مقادير مورد نظر از طريق URL  مربوطه بر روی اينترنت منتقل شده و می تواند باعث بروز چالش هائی در زمينه امنيت اطلاعات باشد.
- ظرفيت محدود . اغلب مرورگرها و دستگاه های سرويس گيرنده ، دارای محدوديت 256 کاراکتر در طول URL می باشند.

Query string

ب ) نقد روش های Server-Side .روش های موجود در اين گروه قطعا" از لحاط امنيتی دارای امنيت بيشتری نسبت به روش قبلی بوده ، ولی بدليل استفاده از برخی منابع موجود بر روی سرويس دهنده باعث افزايش لود عملياتی و اطلاعاتی سرويس دهنده (مخصوصا" در موارديکه حجم اطلاعات بالا باشد) ،خواهد شد. جدول زير ويژگی هر يک از روش های گفته شده را نشان می دهد.

ويژگی

روش

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

مزايا :
-  پياده سازی آسان . روش فوق برای اکثر پياده کنندگان برنامه های مبتنی بر وب با استفاده از تکنولوژی ASP  ، کاملا" شناخته شده است . اين روش  با ساير کلاس های فريمورک دات نت نيز سازگاری دارد.
-  حوزه سراسری . اطلاعات ذخيره شده توسط روش فوق برای تمامی صفحات موجود در يک برنامه قابل دسترس و استفاده است . بدين ترتيت متغيرهای سراسری ايجاد و امکان استفاده از مقادير ذخيره شده در آنان برای  ساير صفحات متقاضی فراهم می شود.
معايب :
- حوزه سراسری  . امکان دستيابی سراسری به مقادير ذخيره شده توسط روش فوق  ، از برخی جهات می تواند دارای پيامدهای منفی باشد. متغيرهای ذخيره شده توسط روش فوق، صرفا" برای پردازه های خاصی در برنامه که در وضعيت اجراء می باشند ، قابل استفاده بوده و هر پردازه موجود می تواند دارای مقادير متفاوت باشد. بنا براين نمی توان  از روش فوق برای ذخيره سازی مقاير منحصر بفرد و يا بهنگام سازی شمارنده های  سراسری در پيکربند های مربوط به Web-farm و Web-garden استفاده کرد.
- ماندگاری  . اطلاعات سراسری ذخيره شده توسط روش فوق بصورت فرار( ناپايدار) می باشند . بنابراين در صورت بروز هر گونه اشکال بر روی سرويس دهنده ، اطلاعات از بين خواهند رفت .
- منابع مورد نياز . روش فوق از برخی منابع مهم موجود بر روی سرويس دهنده  نظير حافظه  ، استفاده و همين امر می تواند باعث بروز مسائلی در رابطه با کارآئی سرويس دهنده  گردد (خصوصا" در موارديکه حجم بالائی از سرويس ها و خدمات بر روی آن فعال است )

Application state

زمان استفاده : بمنظور ذخيره سازی اطلاعات اندک و زنده در رابطه با يک جلسه کاری خاص ، استفاده می گردد. ذخيره نمودن حجم بالائی از اطلاعات توسط روش فوق ، توصيه نمی گردد. چرخه حيات ( تولد و مرگ ) يک شی session ، برای هر جلسه فعاليت در رابطه با برنامه است . در صورتيکه برنامه ای دارای  کاربران زيادی باشد ، استفاده از روش فوق بمنظور ذخيره سازی اطلاعات مورد نظر ، منابع زيادی از سرويس دهنده را اشغال و تاثيرات منفی در رابطه با عملکرد و کارآئی سرويس دهنده خواهد گذاشت ( خصوصا" در موارديکه برنامه های متعدد با حجم بالا بر روی سرويس دهنده به ارائه خدمات به کاربران وجود داشته باشد ) .

مزايا :
-  بياده سازی آسان :  استفاده از روش فوق بمنظور ذخيره سازی اطلاعات برای اغلب پياده کنندگان برنامه های مبتنی بر وب ، کاملا" شناخته شده بوده و با ساير کلاس های موجود در فريمورک دات نت نيز کاملا" سازگار است .
-  رويداد های مبتنی بر Session خاص . رويداد های موجود در رابطه با مديريت Session ،  امکان تحقق را پيدا کرده و متعاقبا" توسط برنامه های نوشته شده تشخيص و با آن برخورد لازم صورت پذيرد.
- ماندگاری .   با توجه به اينکه فضای پردازه استفاده شده برای نگهداری اطلاعات توسط روش فوق  ، با ساير پردازه های موجود کاملا" متمايز می باشد ، در صورت بروز اشکال برای ساير پردازه ها ، تاثيری بر پردازه مسئول در نگهداری اطلاعات session نداشته و آنان همچنان به عمر جاويدان خود ادامه خواهند داد !
- قابليت افزايش و توسعه پلات فرم  امکان استفاده از روش فوق در کامپيوترهائی که دارای پيکربندی بصورت " جند پردازه ای " و يا " چند کامپيوتری " ، می باتشد ، وجود خواهد داشت .
- قابليت استفاده در مرورگرهائی که کوکی های Http را حمايت نمی نمايند.  با توجه   به اينکه در اکثر برنامه های مبتنی بر وب ، برای معرفی کاربران به برنامه از امکان کوکی و session استفاده می گردد ، عدم وابستگی روش مبتنی بر Session به مرورگرها و دستگاه های سرويس گيرنده نکته مثبتی در اين زمينه خواهد بود ( خصوصا" در موارديکه بدلايلی تمايل  به استفاده از کوکی  وجود نداشته باشد ) .
معايب :
- کارائی . متغيرهای Session در حافظه حضور خواهند داشت تا زمانيکه حذف و يا با ساير اطلاعات جايگزين گردند. بديهی است در چنين مواردی کارائی سرويس دهنده  تنزل پيدا خواهد کرد. مشکل فوق در موارديکه حجم بالائی از اطلاعات توسط متغيرهای session ذخيره شده باشد ، تشديد خواهد شد.

Session state

زمان استفاده : بمنظور ذخيره نمودن حجم بالائی از اطلاعات ، مديريت تراکنش ها و يا  نگهداری  اطلاعات مورد نياز پس از راه اندازی برنامه و يا جلسات کاری ، استفاده می گردد. استفاده از  روش فوق در موارديکه  حفظ و نگهداری اطلاعات مهم بوده و امنيت اطلاعات نيز مورد توجه  است  ، توصيه می گردد.

مزايا :
-  امنيت  :  دستيابی به اطلاعات موجود در يک بانک  اطلاعاتی مستلزم فرآيندهای متفاوت نظير : اعتبار سنجی و تشخيص نوع مجوزها است . بنابراين در روش فوق ، امنيت اطلاعات بخوبی مورد توجه و حمايت قرار می گيرد.
-  ظرفيت .  حجم و تنوع اطلاعات ذخيره شده کاملا" اختياری بوده و در اين راستا امکانات مناسبی در اختيار پياده کنندگان برنامه های مبتنی بر وب قرار خواهد گرفت.
- پايداری .  اطلاعات موجود در بانک های اطلاعاتی را می توان تا زمان دلخواه نگهداری و از آنان در ساير برنامه ها نيز استفاده کرد . نگهداری و استمرار حضور اطلاعات ذخيره شده در بانک های اطلاعاتی هيچگونه ارتباطی با سرويس دهنده وب نخواهد داشت .
- قدرت و پيوستگی داده ها   بانک های اطلاعاتی دارای  امکانات  متنوعی در رابطه با عمليات بر روی داده می باشند  . با نگهداری اطلاعات مربوط به تراکنش ها در يک بانک اطلاعاتی ، زمينه  بروز خطاء و اشکال در رابطه با عمليات مورد نظر بر روی داده ها به حداقل مقدار خود خواهد رسيد.
- در دسترس بودن.  با استفاده از ابزارها ی متفاوت پردازش اطلاعات ، امکان دستيابی و استفاده های متنوع از  داده های ذخيره شده در بانک اطلاعاتی  بوجود می آيد.
معايب :
- پيچيدگی . استفاده از بانک ها ی اطلاعاتی بمنظور نگهداری وضعيت برنامه ها ،مستلزم استفاده از سخت افزارهای پيچيده و تنظيمات متعدد نرم افزاری است .
- کارآئی. در صورتيکه بانک اطلاعاتی  بدرستی طراحی نگردد و تعامل و ارتباط بين داده ها بخوبی تبين نگردد ، همزمان با افزايش درخواست های ارسال شده به بانک اطلاعاتی ، کارائی سرويس دهنده افت پيدا خواهد کرد.

Database support



جستجو

مقالات                 
دايره المعارف       
دوره های آموزشی


 

 

مشاهده گروه ها



              

 

 تهيه شده در شرکت سخا روش -  1382