تحت ویندوز
نوشته قبلی بازخوردهای خوبی داشت، از 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) که در آنها کاربر صرفا یا یک تقاضای مشخص را مطرح می سازد و یا به حجم محدودی از اطلاعات دسترسی دارد.
در مطلب بعد به برنامه های تحت وب خواهم پرداخت. اگر در فهرست های بالا نقصی دیدید مرا مطلع کنید، لطفا!
همین!
فرموده بودید که به دلیل استقلال از محیط خارج امنتر هستند. این به این معنی هست که شما اعتقادی به استفاده از یک برنامه تحت وب بر روی شبکه داخلی یک سازمان ندارید؟ یا من بد فهمیدم؟ چون فکر میکنم همون قدر برنامه تحت وبی که بر روی یک اینترانت اجرا میشود ایمن هست که یک دسکتاپ اپلیکیشن.
جناب علیرضا، به نکته خوبی اشاره کرده اید، مطمئنا بهره گیری از ابزارهای تحت وب روی شبکه اینترانت سازمانها، بخش مهمی از اشکالات امنیتی سیستمهای تحت وب را بر طرف خواهد کرد. اما منظور من این نبود. همانطور که توضیح داده ام در برنامه های تحت ویندوز، شما یک برنامه exe روی Client دارید که می توانید به روشهای مختلف نظیر قفل های سخت افزاری و نرم افزاری و یا بهره گیری از روشهای مختلف برنامه نویسی، استفاده آن را محدود به کاربران مجاز نمایید. طبیعتا کاربری که به اصل این نرم افزار دسترسی ندارد و یا در آن دسترسی محدود شده ای دارد (فقط می تواند از طریق منو ها و فرمها به داده ها دسترسی داشته باشد) مشکلات ایمنی کمتری برای سیستم ایجاد می کند. در حالیکه در برنامه های تحت وب پیاده سازی چنین مکانیسم هایی دشوار تر است و کاربران تنها با داشتن یک مرورگر می تواند خطراتی نظیر sql injection و یا حمله های رایج را متوجه سیستم نماید که برنامه ساز برای ایجاد محیط های ایمن در برنامه های تحت وب حتما باید به این نکات توجه داشته باشد.
مجددا یادآوری می کنم که این نکته به این معنی نیست که برنامه های تحت وب، ایمنی کمتری نسبت به برنامه های تحت ویندوز دارند، بلکه به آن معنی است که به لحاظ ساختار این برنامه ها، امنیت جایگاه ویژه تری داشته و ایجاد آن هزینه بیشتری نسبت به برنامه های تحت ویندوز دارد.
بازهم از نکته ای که متذکر شدید ممنونم.
همین!
اول بگم الان که دیدم سه بار فرستاده شده شکه شدم خداییش!
اما نکتهای که به نظر من میرسه اینه که کاربری که به اینترانت یک سازمان دسترسی داشته باشه و بتونه از Sql Injection استفاده کنه، به احتمال قوی راهی هم برای دور زدن قفلهای نرمافزاری و سختافزاری میتونه پیدا کنه.
هرچند در کل من با حرفهای شما به طور کلی موافق هستم.
اما من خودم به شخصه حاظرم بابت امنیت پول بیشتری بدم، ولیکن برنامهام رو هم پلت فرمی و به سادگی استفاده از یک مرورگر استفاده بشه (در برنامه های عمومی، نه مثلا در یک برنامهای که کارش تولید انیمیشن ۳D هست. یعنی برنامه های خاص)
باز هم بگم، اینها همهاش نظره. خوبی این علم و این صنعت اینه که انتخاب زیاده.
به هر حال منتظر مقاله بررسی وب اپلیکیشن هستیم.