ويژگی های امنيتی(ASP.NET (2
اصول پياده سازی نرم افزارهای مبتنی بر وب
هدف ما رسيدن به نقطه ای است كه مشخص نمائيم، برای طراحی و پياده سازی نرم افزار بر روی بستر وب، اولا از چه نوع مدلی برای پياده سازی استفاده می گردد و ثانيا روند توسعه و تكامل وب را با تاكيد بر نيازهای نرم افراری از بعد ابزارشناسی دنبال كرده و از اين رهگذر جايگاه هر ابزار (تكنولوژی) تبين شده تا بدين وسيله بتوانيم از هر چيز در جايگاه خود و در زمان مربوطه استفاده كنيم. بهرحال وب يك واقعيت انكار ناپذير بوده و سايه حضور آن را در همه جا می توان احساس كرد. نرم افزار نيز مجری خواسته های انسانی در سرزمين سخت افزار است، اين بار با يك چالش جدی مواجه شده است : پاسخگوئی به خيل نيازهای جديد مطرح شده متكی بر بستر وب.
در بخش اول اين مقاله موضوع اول يعنی شناخت مدل های پياده سازی نرم افزار تشريح خواهد شد. به اين اميد كه از اين رهگذر به نقطه ای برسيم كه يك مدل مناسب جهت پياده سازی برنامه های تحت وب را معرفی و آن را بعنوان پايه و اسا س كار خود قرار دهيم. در ابتدا لازم است به اين اصل بديهی اشاره شود كه يك برنامه كامپيوتری حاصل تركيب داده ها و منطق است. منطق يك برنامه از طريق كدهای مربوطه كه به يكی از زبانهای برنامه نويسی نوشته خواهند شد، مسئول تحقق خواسته های تعريف شده برای يك نرم افزار از طريق انجام عمليات مورد نياز بر روی داده ها است. داده ها خود می توانند به اشكال و روش های متنوعی سازماندهی و در اختيار يك نرم افزار قرار گيرند.
Program = Logic(Code) + Data
مدل های پياده سازی يك نرم افزار از ابتدا تاكنون متاثر از عوامل متفاوتی بوده است كه جايگاه سخت افزارها بعنوان پتانسيل هائی كه می بايست توان خود را در جهت بالفعل نمودن نرم افزارها قرار دهند، نقش برجسته ای دارد. مدل های پياده سازی نرم افزار را می توان در پنج گروه عمده بشرح زير تقسيم نمود:
MainFrame Architecture
File Server Architecture
Client Server Architecture
Two Tire Architecture
Three Tire Architecture
در مدل فوق همچنان واژه های سرويس دهنده و سرويس گيرنده حضور مستمر خود را ادامه دادند با اين تفاوت بسيار مهم كه حوزه عملكرد اين واژه ها در رابطه با نرم افزار بسيار برجسته گرديد. در اين مدل از سه لايه استفاده می گردد: لايه اول مسئول تماس و ارتباط با كاربر و ارائه دهنده محيط رابط كاربر، لايه دوم ( ميانی ) مسئول نگهداری و اجرای سياست ها و قوانين كليدی و راهبردی حاكم بر نرم افزار و لايه سوم مسئوليت نگهداری بانك اطلاعاتی و ارائه سرويس و خدمات به لايه متقاضی ( لايه دوم ) است. عملكرد لايه دوم ( ميانی ) بسيار گسترده بوده و می توان با همگرا نمودن اين عملكردها به چند بخش، لايه های ديگری را نيز در اين بخش داشته باشيم، در چنين حالتی اين مدل اصطلاحا N-Tire ناميده می شود.
مدل فوق بهترين انتخاب برای پياده سازی نرم افزار بر روی بستر وب است. كليد طلائی طراحی اين نوع نرم افزارها توانائی نوشتن عناصر (اجزا) بگونه ای است كه از يكطرف امكان بكارگيری آنها بسادگی در لايه ها و حتی چندين برنامه فراهم شده و از طرف ديگر امكان ارتباط اين عناصر با يكديگر صرفنظر از زبان برنامه نويسی استفاده شده و ساير موارد مرتبط فراهم گردد. ما می بايست جعبه های سياهی را طراحی كنيم كه صرفنظر از ماهيت درون هريك، قادر به استفاده از توان آنها در بخش يا بخش هائی از يك و يا چندين نرم افزار باشيم. مطلب فوق شايد مهمترين دليل رويكرد شركت های عظيم نرم افزاری جهت ارائه يك ساختار استاندارد برای توليد اين عناصر باشد. تكنولوژی Component Object Model يا COM پاسخ شركت مايكروسافت به اين نياز حياتی بود.
تكنولوژی COM
ريشه COM
در اوايل، تكنولوژی فوق در رابطه با عناصر و اجزای توزيع شده امكانات قابل توجه ای ارائه نكرده بود. شايد يكی از مهمترين دلايل آن عدم عرضه يك سيستم عامل شبكه ای از طرف مايكروسافت تا آن زمان بود. همزمان با عرضه ويندوز 95 و ويندوز NT در سال 1996 و مطرح شدن امكانات شبكه ای و ضرورت توزيع، اجرا و ارتباط بين عناصر توزيع شده تكنولوژی Distributed COM يا DCOM مطرح گرديد. سرانجام در سال 1997 نسخه توسعه يافته اين تكنولوژی با نام +COM توسط شركت مايكروسافت ارائه گرديد.
همزمان با گرايش بسمت طراحی و پياده سازی نرم افزارهای متكی بر مدل Three Tire از يكطرف و نياز شديد به پياده سازی نرم افزار های متكی بر وب، ضرورت توجه و بازنگری در نحوه طراحی و پياده سازی عناصر توزيع شده مورد اهتمام جدی شركت های عظيم نرم افزاری قرار گرفت. شركت مايكروسافت در اين زمينه منادی تكنولوژی های COM/DCOM/COM+، Internet Explorer و ActiveX گرديد. در مقابل شركت های نرم افزاری ديگر، NetScape، Java/J2EE ( شركت سان ) و CORBA را مطرح كردند.
اولين نسخه CORBA در سال 1992 توسط Object Management Group يا OMG كه بالغ بر ششصد عضو دارد ارائه گرديد. آخرين نسخه آن (نسخه شماره ۲) در سال 1996 عرضه شده است. عملكرد كلی تكنولوژی فوق نظير COM است. بهرحال هدف اكثر تكنولوژی های فوق در اين است كه امكانات و استانداردهائی را برای توليد عناصر بگونه ای ارائه نمايند كه با پياده سازی آنها، قادر به اخذ سرويس و خدمات بصورت محلی و يا از را دور باشيم.
در اين راستا شايد مناسب باشد كه به عملكرد هر Tire در نرم افزارها از بعد سرويس دهی متمركز شده و هر Tire را بعنوان مجموعه ای از سرويس ها در نظر بگيريم كه مسئول ارائه سرويس به عناصر موجود در Tire خود و يا ساير Tire های مرتبط باشد. با اين نگرش می توان گفت تمامی نرم افزارها خدمات و سرويس های خود را در سه بخش ارائه می نمايند:
•User Sevices
•Business Services
•Data Services
در مدل Three Tire مسئوليت ارائه هر يك از سرويس های فوق به يك Tire واگذار می گردد. عناصر موجود و مسئول ارائه سرويس و خدمات در هر Tire قادر به ارتباط و درخواست سرويس از عناصر موجود در Tire خود و ساير Tire های موجود در بالا و يا پايين خود خواهند بود. نكته بسيار مهم در رابطه با وضعيت فوق اين است كه يك درخواست جهت اخذ سرويس نمی تواند يك Tire را حذف و خود مستقيما با Tire ثانويه ( بعدی) مرتبط و اصطلاحا يك Tire را دور بزند. مثلا عناصر موجود در لايه User Services نمی توانند مستقيما درخواست خود را برای لايه Data Services ارسال دارند. البته لايه فوق نيز چنين امكانی را نخواهد داشت. هر يك از سه بخش فوق مسئوليت های خاصی را برعهده گرفته و در زمانيكه يك بخش به خدمات يك بخش ديگر نياز داشته باشد، درخواست خود را برای اخذ سرويس در اختيار بخش مورد نظر قرارداده و بخش مربوطه سرويس درخواستی را در قالب اجرای يك يا چندين عنصر انجام و ماحصل را در اختيار بخش مربوطه قرار خواهد داد.
مدل فوق كه بر اساس همگرائی نوع سرويس ها و خدمات در يك نرم افزار ارائه شده است، صرفا يك مدل منطقی است و نشاندهنده يك مدل فيزيكی نيست. دراين راستا چهار مدل فيزيكی برای پياده سازی نرم افزارهای Three Tire ارائه شده است:
•SingleServer
•Business Server
•Transaction Server
•Web Server
Single Server
Bussines Server (Application)
Transaction Server
Web Server
در سه مدل گفته شده قبلی، بر اين نكته تاكيد وجود داشت كه تمامی سياست های راهبردی نرم افزار متمركز شده تا بدين طريق اعمال تغييرات بسادگی صورت پذيرد. در مدل فوق چون سرويس دهنده وب اين پتانسيل را دارا است كه بصورت اتوماتيك عناصری را بر روی كامپيوتر سرويس گيرنده مستقر نمايد، ضرورت تمركز سياست های راهبردی نرم افزار بر روی سرويس دهنده چندان مهم بنظر نمی آيد. در اين مدل بيشتر سرعت اجرای اين عناصر مورد توجه است. در چنين حالتی اگر يك برنامه مبتنی بر وب بر روی بستر اينترنت اجرا می گردد، می توان برخی از عناصر را برای سرويس گيرنده ارسال تا بصورت محلی بر روی كامپيوتر وی اجرا شوند. در چنين حالتی سعی می شود كه زمان ارتباط و درخواست از سرويس دهنده به حداقل زمان ممكن كاهش پيدا كند چراكه پهنای باند و ارتباط با سرويس گيرنده ها را نمی توان همواره بدون نگرانی تضمين نمود. در صورتيكه برنامه مبتنی بر وب بر روی بستر اينترانت اجرا می گردد، می توان بر اساس توان كامپيوترهای سرويس گيرنده و سرويس دهنده و پهنای باند موجود، برخی از عناصر را بر روی سرويس دهنده و برخی ديگر از عناصر را بر روی سرويس گيرنده اجرا نمود.
بهرحال مدل فوق يك ايده جديد برای اجرای يك برنامه را مطرح كرده است. سرويس دهنده وب بسادگی و بصورت اتوماتيك قادر به نصب اجزای مورد نياز يك سرويس گيرنده خواهد بود. بدين ترتيب از يكطرف ضرورت استقرار تمامی عناصر بر روی سرويس گيرنده از بين رفته و از طرف ديگر به سرويس گيرنده ها استقلال لازم داده شده و در صورت ضرورت می توان آنها را نيز در اجرای برخی از عناصر سهيم كر
بررسی CLR
CLR يا Common Language Runtime در مرکز NET platform. واقع شده است. در حقيقت CLR عملی را که runtime ها در زبان های پيشين انجام می داند انجام می دهد. برای مثال ويژوال بيسيک 6 دارای يک Runtime مخصوص به خود بود که کارهای مديريت حافظه، فراخوانی فايلها و از اين دست اعمال را برای برنامه های بيسيک انجام می داد، همچنين ويژوال سی نيز دارای چنين ابزاری بود. CLR يک runtime مشترک است برای تمامی زبانهايی که بر مبنای NET. طراحی شده اند.
نسخه
Side-by-side versioning: بدين معنی که نسخه های مختلف يک اسمبلی در کنار هم بدون تداخل وجود دارند.
Automatic QFE: اگر نسخه جديدی از يک اسمبلی که با نسخه قبلی سازگاری دارد در GAC قرار گيرد، CLR اين مساله را تشخيص می دهد و از آن لحظه به بعد از نسخه جديد استفاده می کند.
نسخه ها در CLR از چهار قسمت Major.Minor.Revision.Build تشکيل شده اند. اگر در Major و Minor تغييری داده شود، اين بدين معناست که اين نسخه از اسمبلی ديگر با نسخه های قبلی سازگاری ندارد.
انتقال
شايان ذکر است که اين نوشته صرفا ً توضيح مختصری درباره هر کدام از قسمت های NET. می دهد و برای هر کدام از اين اجزا می توان يک مقاله مفصل نوشت.
ادامه دارد ......
* ارسال مقاله توسط عضو محترم سایت با نام کاربری : mirkazemi
/خ