« وب یا ویندوز، مساله این است! | صفحه اصلی | تحت وب »
تحت ویندوز
April 14, 2008 02:58 PM
نوشته قبلی بازخوردهای خوبی داشت، از Comment هایی که دوستان، نظرات خود را به درستی مطرح کرده بودند تا نوشته ?راسان که با یک نگاه کارشناسی به این سوال پرداخته بود. برای اینکه بتوانم با کمک نظرات داده شده و داشته های خودم یک جمع بندی برای این پرسش داشته باشم در دو بخش به معر?ی قابلیت ها و محدودیت ها و در نتیجه کاربردهای این دو محیط می پردازم تا در نهایت بتوانیم یک ارزیابی کامل نسبت به این دو داشته باشیم. در نوشته اول به برنامه های تحت ویندوز (windows based application) و یا به طور کلی Desktop application ها خواهم پرداخت:
-مشخصات کلی:
نرم ا?زارهای این گروه یا به صورت تک کاربره (Single) و یا به صورت شبکه ای (معمولا به صورت Client/Server) ?عال هستند که در گروه اول، همه اطلاعات و برنامه پردازشی روی یک دستگاه و در مدل دوم برنامه اجرای مجزا از بانک اطلاعاتی روی دستگاه های کاربری و بانک اطلاعات روی یک کامپیوتر سرور قرارگر?ته است.
-مزایا:
به طور کلی مزایای عمومی این گروه از برنامه ها را صر? نظر از مزایا و یا معایب خاص یک نرم ا?زار در قیاس در مقابل برنامه های تحت وب می توان چنین برشمرد:
- رابط کاری قوی تر: در این نرم ا?زارها مجموعه ای توانمند از مول?ه های نرم ا?زاری (Component) ها در سطح واسط کاربری وجود دارند که یک GUI قوی و با امکانات برای نرم ا?زار پدید می آورند و کاربر است?اده کننده معمولا به سادگی با بهره گیری از ص?حه کلید و موس می تواند از همه ص?حه نمایش است?اده مؤثر داشته و به نیازهای خود بپردازد.
-سرعت در پردازش اطلاعات: به لحاظ حضور در یک کامپیوتر و یا در یک شبکه محلی (Lan) معمولا ترا?یک شبکه گلوگاه سیستم بشمار نر?ته و درخواست ها همیشه در یک زمان قابل پیش بینی پاسخ داده می شوند.
- امنیت: به لحاظ استقلال سیستم از دنیای خارج و نیز پردازش دستور ها در سطح برنامه در Clent و پاسخگویی به پرس و جو ها (query) در server امنیت این سیستم ها ساده تر تامین می شود.
- نزدیکی به کار کاربران عادی: کاربران عادی در سازمانها معمولا کمتر با محیط اینترنت به عنوان یک محیط عملیاتی آشنا هستند و بیشتر با اینگونه نرم ا?زار ها چه در سطح سیستم عامل و چه در سطح نرم ا?زارهای امور اداری (نظیر Office) کار کرده اند و با این نرم ا?زارها راحت تر آموزش خواهند دید.
- پیاده سازی روانتر: به دلیل پختگی ابزارهای پیاده سازی تحت ویندوز (Win 32 or .NET) سرعت و روانی ?رآیند تولید و خطایابی نرم ا?زار در این سیستمها ساده تر صورت می گیرد.
-ابزارهای گزارش گیری مناسب: معمولا ابزارهای گزارش گیری چه به صورت ایستا و چه به صورت پویا در سطح برنامه های تحت ویندوز بیشتر در دسترس بوده و قوی تر می باشند.(به جز ابزارهای مشترکی که در هر دو بخش وجود دارد) لذا است?اده از آنها در برنامه ها رایج تر بوده، گزارشات اینگونه سیستم ها معمولا قوی تر و پویا تر می باشند.
-است?اده مؤثر از امکانات سخت ا?زاری: به دلیل حضور برنامه روی Client و بانک اطلاعات روی Server ، از پهنای باند شبکه برای انتقال اطلاعات (برای مثال ?رمها، آیکون ها و تصاویر و ...) از سرور به cleint است?اده نمی شود و از همه قابلیت های پردازشی Client ها است?اده می شود. و نیازی به قدرت زیاد server نمی باشد و بسته به تعداد Clent ها و حجم Transaction ها می توان از کامپیوترهای ارزان قیمت تر برای Server است?اده نمود.
-...
- معایب: معایب عمومی این مدل برنامه سازی را می توان در موارد زیر جمع بندی نمود:
- پشتیبانی دشوار تر: به دلیل وجود برنامه EXE روی Client های مختل?، در صورت ارتقاء نرم ا?زار و یا ر?ع خطا، شما باید از تغییر همه ?ایل های اجرایی مطمئن شوید.
-محدودیت جغرا?یایی : به لحاظ است?اده از شبکه های محلی (LAN ) به عنوان بستر ?عالیت نرم ا?زار، کاربران نمی توانند به صورت توزیع شده و یا از راه دور در محل دلخواه به سیستم متصل شده و از آن است?اده کنند. (برنامه های معدودی که از طریق سرویس های RAS امکان کار از راه دور مثلا از طریق اتصال با خطوط تل?ن (نظیر برنامه های BBS) در این قسمت نادیده گر?ته شده اند، چون هم از لحاظ تنوع و هم از لحاظ حجم است?اده امروزه در اقلیت به سر می برند.)
- توزیع نشدگی: معمولا این سیستم ها به صورت مرکزی Central بوده و چنانچه در یک سازمان در چند مرکز نیاز به است?اده باشد، باید اتصال از طریق خطوط اختصاصی (نظیر روشهای بیسیم Point-to-Point و یا خطوط استیجاری leased Line و یا به صورت Dial Up و یا نهایتا VPN) حداکثر در سطح بانکهای اطلاعاتی هماهنگ سازی صورت گیرد (Replication)
-محدودیت Client ها: کامپیوترهای کاربران در این سیستمها باید در حد قابل قبولی باشد و از لحاظ سیستم عاملی نیز محدود به سیستم عامل خاصی نظیر windows باشد و کاربران نمی توانند از سیستم عامل های دیگر نظیر Linux و یا Mac OS است?اده کنند و یا به صورت موبایل (GPRS) از سیستم است?اده نمایند.
-دور بودن از روشهای جدید: معمولا کاربران جدید و جوان بر خلا? کاربران قدیمی تر با ?ضای اینترنت آشنایی بیشتری دارند و است?اده از نرم ا?زارهای تحت ویندوز برایشان دلچسب نیست.
مورد است?اده: به نظر می رسد اینگونه سیستمها برای کاربردهای زیر مناسب تر باشند:
- کاربردهای خانگی تک کاربره: نظیر برنامه های کاربردی ساده (Office) ، بازی های گرا?یکی قوی، ابزارهای مولتی مدیا، و نرم ا?زارهای ?نی و مهندسی
- کاربردهای اداری محدود در سطح یک شبکه محلی
- کاربردهای نیازمند به ابزارهای ورود اطلاعات و یا گزارش گیری مناسب
- نرم ا?زارهای با پردازش اطلاعات زیاد و حجیم
- نرم ا?زارهای تعاملی (Interactive) که حجم بالایی از تعامل را با کاربر دارند و نیاز به یک واسط کاربری (User Interface) قوی تر دارند.
و برای این کاربردها مناسب نیستند:
- کاربردهای توزیع شده که الزامی به حضور کاربر در یک محدوده جغرا?یایی خاص و یا یک بستر و سیستم عامل یکسان نمی باشد.
- برنامه های با سرعت بالای تغییر که پشتیبانی آنان در این حالت دشوار می باشد.
- نرم ا?زارهای عمومی که کاربران با سطح دانش و امکانات مختل? از سیستم است?اده می کنند.
-کاربردهای اطلاع رسانی که در آنها کاربر نه با هد? پردازش اطلاعات بلکه با هد? دریا?ت و یا تبادل اطلاعات به سیستم رجوع می کند.
- برنامه هایی که تعداد کاربران آن بالاست اما حجم تراکنش هر کدام از کاربران و تعامل آنان با نرم ا?زار پایین است. برای مثال در کاربردهایی که در بانک و یا تجارت الکترنیک، نیازمند ارائه سرویس به مشتری داریم (B2C و یا Internet Banking) که در آنها کاربر صر?ا یا یک تقاضای مشخص را مطرح می سازد و یا به حجم محدودی از اطلاعات دسترسی دارد.
در مطلب بعد به برنامه های تحت وب خواهم پرداخت. اگر در ?هرست های بالا نقصی دیدید مرا مطلع کنید، لط?ا!
همین!
نظرخواهی
ارسال شده توسط: Ali Reza در ساعت April 14, 2008 10:30 PM
جناب علیرضا، به نکته خوبی اشاره کرده اید، مطمئنا بهره گیری از ابزارهای تحت وب روی شبکه اینترانت سازمانها، بخش مهمی از اشکالات امنیتی سیستمهای تحت وب را بر طر? خواهد کرد. اما منظور من این نبود. همانطور که توضیح داده ام در برنامه های تحت ویندوز، شما یک برنامه exe روی Client دارید که می توانید به روشهای مختل? نظیر ق?ل های سخت ا?زاری و نرم ا?زاری و یا بهره گیری از روشهای مختل? برنامه نویسی، است?اده آن را محدود به کاربران مجاز نمایید. طبیعتا کاربری که به اصل این نرم ا?زار دسترسی ندارد و یا در آن دسترسی محدود شده ای دارد (?قط می تواند از طریق منو ها و ?رمها به داده ها دسترسی داشته باشد) مشکلات ایمنی کمتری برای سیستم ایجاد می کند. در حالیکه در برنامه های تحت وب پیاده سازی چنین مکانیسم هایی دشوار تر است و کاربران تنها با داشتن یک مرورگر می تواند خطراتی نظیر sql injection و یا حمله های رایج را متوجه سیستم نماید که برنامه ساز برای ایجاد محیط های ایمن در برنامه های تحت وب حتما باید به این نکات توجه داشته باشد.
مجددا یادآوری می کنم که این نکته به این معنی نیست که برنامه های تحت وب، ایمنی کمتری نسبت به برنامه های تحت ویندوز دارند، بلکه به آن معنی است که به لحاظ ساختار این برنامه ها، امنیت جایگاه ویژه تری داشته و ایجاد آن هزینه بیشتری نسبت به برنامه های تحت ویندوز دارد.
بازهم از نکته ای که متذکر شدید ممنونم.
همین!
ارسال شده توسط: ali در ساعت April 15, 2008 02:57 PM
اول بگم الان که دیدم سه بار ?رستاده شده شکه شدم خداییش!
اما نکتهای که به نظر من میرسه اینه که کاربری که به اینترانت یک سازمان دسترسی داشته باشه و بتونه از Sql Injection است?اده کنه، به احتمال قوی راهی هم برای دور زدن ق?لهای نرما?زاری و سختا?زاری میتونه پیدا کنه.
هرچند در کل من با حر?های شما به طور کلی موا?ق هستم.
اما من خودم به شخصه حاظرم بابت امنیت پول بیشتری بدم، ولیکن برنامهام رو هم پلت ?رمی و به سادگی است?اده از یک مرورگر است?اده بشه (در برنامه های عمومی، نه مثلا در یک برنامهای که کارش تولید انیمیشن 3D هست. یعنی برنامه های خاص)
باز هم بگم، اینها همهاش نظره. خوبی این علم و این صنعت اینه که انتخاب زیاده.
به هر حال منتظر مقاله بررسی وب اپلیکیشن هستیم.
ارسال شده توسط: Ali Reza در ساعت April 16, 2008 12:03 AM