• درخواست دمو

    نام(*)
    Invalid Input

    نام خانوادگی(*)
    Invalid Input

    نام سازمان(*)
    Invalid Input

    جایگاه سازمانی
    Invalid Input

    استان(*)
    لطفا استان را انتخاب نمایید

    شهر(*)
    لطفا استان را انتخاب نمایید

    تلفن ثابت(*)
    Invalid Input

    Invalid Input

    تلفن همراه
    Invalid Input

    آدرس ایمیل
    Invalid Input

    Invalid Input

نرم افزار های کاربردی تحت وب (خوب، بد، زشت)

این روزها ، روزهای نرم افزار های تحت وب[1]  است. این تغییر رویکرد باعث شده است تا شاخص های نرم افزارهای تحت وب بارزتر گردند. در این نوشتار ، نگاهی به مزایا و معایب نرم افزارهای تحت وب خواهیم انداخت.

How To Build A Web ApplicationWeb Application

 شاید تا چند سال پیش مفهوم  Web Application غیر قابل باور می نمود و اگر در سالهای نه چندان دور از کسی می پرسیدید که آیا می تواند نرم افزاری را که با یک مرورگر کار کند را تصور کند ، تنها با چهره ای بهت زده که شما را نگاه می کرد مواجه می شدید. اما واقعیت این است که در چند سال اخیر با تغییر رویکرد در دانش مهندسی نرم افزار و رشد روز افزون فنآوری در این عرصه ، بسیاری از چیزهایی که تا روزی به رویا می نمود ، اکنون به گونه ای به واقعیت پیوسته است که گویی همواره یکی از اجزای همیشگی زندگی ما بوده اند. شاخص ترین نمونه برای پیشرفت فوق ، اینترنت است. فناوری اینترنت در چند سال اخیر با چنان رشدی مواجه بوده است که به جرئت می توان ادعا کرد که اگر کسی 10 سال در حالت بیهوشی کامل قرار داشت و امروز مجددا بیدار می شد ، با دنیای امروز و تغییران آن بیگانگی می کرد.

با معرفی Web 2 و تغییر رویکرد Web و محتوا به سمت تولید محتوا توسط کاربر ، اولین جرقه تولید ابزارهای تحت Web ایجاد شد. به نحوی که امروز شاهد وجود میلیونها وب سایت و نرم افزار تحت وب (با رویکرد کاربر محور) بر روی شبکه جهانی اینترنت هستیم. دانش نرم افزار نیز در چند سال گذشته با مشاهده این پتانسیل به سمت تولید نرم افزارهای تخصصی بر پایه این رویکرد حرکت نموده است. به گونه ای که امروزه حتی شاهد ارائه سیستم عامل و Application های بسیار کاربردی  به صورت تحت   Web(مانند Windows Azure و Office 365 محصول مایکروسافت , و یا Chrome OS محصول گوگل) هستیم.

 

چه چیزی در یک نرم افزار تحت وب وجود دارد که آن را اینچنین مورد توجه قرار داده است؟

  • نرم افزارهای تحت وب ، نرم افزارهایی هستند که بر روی بستر اینترنت یا اینترانت عرضه می شوند ، به عبارت دیگر نرم افزارهای تحت وب بر روی یک شبکه اطلاعاتی اجرا می شوند .این خصوصیت منجر به یکی از ویژگی های برتر نرم افزارهای تحت وب می شود : گستردگی. در واقع گستره اجرای نرم افزار با گستره شبکه یکی می شود. یعنی تا هرجایی که شبکه شما بزرگ شد ، نرم افزار شما نیز در دسترس قرارخواهد گرفت. در واقع مفهوم گستردگی را در نرم افزارهای تحت وب ، می توان با دسترسی پذیری[2]  نیز معادل قرار داد.

 

  • دومین ویژگی بارز نرم افزارهای تحت وب مربوط به سادگی و راحتی است. راحتی در استفاده یک مفهوم بسیار کلی تلقی می شود، بنابراین باید مفهوم "راحتی" را در سطوح مختلف بررسی کرد. به عنوان مثال افراد می توانند در طول 24 ساعت شبانه روز و در 365 روز سال به نرم افزار تحت وب مورد نیازشان دسترسی داشته باشند ، آنها می توانند در هر نقطه ای از زمین (البته با توجه به مرزبندی شبکه مورد استفاده) از نرم افزار تحت وب استفاده کنند. پایگاه داده مربوطه همواره دردسترس خواهد بود . افراد می توانند با استفاده از رایانه شخصی خود و یا تبلتها و گوشی های هوشمند ، به اطلاعات مورد نیاز خود دسترسی داشته باشند. به این ترتیب افراد دیگر به دفتر کار خود محدود نیستند. بنا بر این راحتی در استفاده به نوبه خود به یکی دیگر از مولفه های مهم نرم افزارهای تحت وب انجامیده است: Online بودن.

 

  • برخلاف نرم افزارهای Form Base (نرم افزارهای که با روال سنتی و برای استفاده بر روی ایستگاه های کاری اجرا می شدند) ، نرم افزارهای تحت وب ، برای اجرا نیازی به نصب بر روی ایستگاه های کاری ندارند. در واقع یک نرم افزار تحت وب بر روی Web Server خود اجرا می شود و نتایج رویه های اجرا شده به صورت کدهای HTML   بر روی مرورگر کاربر نمایش داده می شود. به این ترتیب زمان و مشقات نصب نسخه های مربوطه ایستگاه های کاری ، از بین می رود. در واقع این کار باعث می شود تا همه تنظیمات و کارهای مربوط به افزایش Performance و رفع خطا[3]  همگی از یک نقطه[4]  صورت پذیرد. مساله مهم دیگر بحث اطمینان از وجود همه اطلاعات در صورت بروز خرابی ها است. به این ترتیب شما می توانید همه اطلاعات را در یک نقطه یا چند نقطه (بر حسب نیاز) متمرکز نموده و از اطلاعات ذی قیمت خود ، حفاظت کنید. تمامی آنچه در این بخش به آن اشاره شد را می توان با مفهوم یکپارچگی[5]  مطابقت داد.

 

  • شاید در نگاه اول ، هزینه های تولید نرم افزار های تحت وب بالاتر باشد . اما دلایلی وجود دارد که می توان با استناد به آنها ، ادعا کرد  نرم افزارهای تحت وب به طور کلی ، قیمت تمام شده کمتری دارند. فرض کنید شما اقدام به تولید یک نرم افزار Form Base می نمایید، طبیعتا این نرم افزار برای اجرا ، پردازش مورد نظر خود را بر روی ایستگاه کاری خود انجام می دهد ، بنابر این یکی از نیازمندی های همیشگی برای اطمینان از اجرای این نرم افزار ، ضرورت توجه به رعایت حداقل پیشنیازهای سخت افزاری برای اجرای آن می باشد. یعنی شما احتمالا در به روزرسانی های بعدی نرم افزار که ممکن است از تکنولوژی های جدیدتری در تولید آن استفاده شده باشد ، ممکن است نیاز به ارتقاء سخت افزار ایستگاه های کاری خود داشته باشید. شاید برای یک نرم افزار با دامنه محدود (مانند نرم افزارهاي طراحي و مهندسي) این تغییرات چندان چشمگیر نباشد ، اما برای نرم افزارهایی که دامنه استفاده از آنها در سازمان گسترده باشد (مانند اتوماسیون اداری) این مساله ای چالش برانگیز خواهد بود. حال تصور کنید سازمان مورد مثال یک سازمان بزرگ با تعداد تقریبی 2000 کاربر باشد! اما اگر همین نرم افزار را به صورت Web Application تولید کنیم ، کلیه پردازشهای مورد نیاز بر روی Web Server ها اتفاق میافتد. همین امر باعث می شود تا بار پردازشی در یک نقطه متمرکز شده و هزینه کردن برای پردازش مورد نیاز به صورت هدفمند صورت گرفته و نقش پردازش (وبالطبع هزینه ای که بابت آن پرداخته می شود) در ایستگاه های کاری تا حد استفاده به عنوان Terminal یا Thin Client (و مفاهیمی از این دست) کاهش یابد.

 

  • زیبایی نرم افزار های Web Application ، کار کردن آنها بر روی پلاتفرم های مختلف است. اغلب نرم افزار های Web Application  بر روی مرورگرهای مختلف مانند Internet Explorer  ، Mozilla Firefox ، Opera Browser ، Google Chrome و یا Apple Safari استفاده می کنند. Web Application ها اغلب با سیستم عاملهای مختلف سازگار هستند. فارغ از نوع سیستم عامل و یا مرورگر ، هیچ تفاوت اساسی در نحوه اجرای Web Application ها بر روی پلاتفرم ها و مرورگرهای مختلف وجود ندارد.

 

در کنار موارد فوق باید یادآوری کنیم که نرم افزارهای Web Application با وجود مزایای فوق ، دارای معایبی نیز هستند.

 

  • پیاده سازی بر مبنای اینترنت یا اینترانت و بر روی یک بستر شبکه گسترده ، مشکلات خاص خود را دارد. بدیهی است هر چه گستردگی شبکه بیشتر باشد ، زمان گردش اطلاعات (Round Trip Time) افزایش می یابد. با اینکه امروزه پهنای باند و سرعت ارتباطات بین شبکه ها به نحو چشمگیری افزایش یافته ، اما هنوز راه زیادی تا رسیدن به نقطه ای که فاصله بین دستور، پردازش و خروجی محسوس نباشد ، وجود دارد.

 

  • در حال حاضر رویکرد استفاده از ابزارها و گجتهای الکترونیکی در حال تغییر است. با عرضه محصولاتی مانند تبلت ها و تلفنهای هوشمند و همچنین گسترش فنآوریهای ارتباطی (مانند نسل چهارم شبکه های تلفن همراه) ، امروزه به گواه آمارهای فروش و سود و زیان شرکتهای صاحب نام در عرصه فنآوری ، شاهد تغییر رویه کاربران در استفاده از ابزارهای فنآوری هستیم. مشخصا آینده در دستان تبلتها و تلفنهای هوشمند است. این تغییر ذائقه کاربران در استفاده از ابزارها قطعا در مهندسی نرم افزار و مشخصا در تولید نرم افزار اثر خواهد گذاشت.  از این رو نرم افزارهای Web Application نیز می بایست خود را با این روند هماهنگ کنند. نتیجه این امر ایجاد رابطهای کاربری ساده تر و کاراتر می باشد. ایجاد هماهنگی برای بوجود آوردن چنین رابط کاربری باعث افزایش زمان فرآیند تولید نرم افزار خواهد شد.
  • مسائل امنیتی همواره یکی از دغدغه های مدیران IT در سرتاسر جهان بوده است ، از آنجایی که فلسفه وجودی نرم افزارهای تحت Web ، اجرا بر بستر شبکه هاست ، همواره ریسک دسترسیهای غیرمجاز ، خرابکاری و سرقت اطلاعات و .... برای اینگونه نرم افزارها متصور است. در کنار گسترش و پیشرفت فنآوری ها ، مباحث و استانداردها و روشهای امنیت نیز پیشرفت نموده اند. بنابر این لازم است همواره آخرین دانشها و روشها در خصوص شناسایی و مقابله با انواع تهدیدات در سطوح مختلف اندیشیده و اجرا شود. بحث امنیت در فنآوری اطلاعات در سطوح مختلفی (شبکه ، پایگاه داده ، نرم افزار و ...) مطرح شده است و این مقوله امروزه خود به تنهایی به یکی از شاخه های مهم فنآوری اطلاعات تبدیل شده است.

 

  • یکی دیگر از نقاط ضعف نرم افزار های تحت Web  ، عدم پشتیبانی آنها از حالت برون خط (Off Line) می باشد.این مشکل نیز مشخصا به دلیل خاصیت ذاتی نرم افزارهای تحت Web وجود دارد. راهکارهای متفاوتی برای حل این مشکل پیشنهاد شده ، اما مساله اصلی این است که هیچ یک از این راهکارها ، قادر به حل مساله به صورت ریشه ای در این مورد نیست.

 

  • اجرای نرم افزار های Web Application ارتباط مستقیمی با حضور مرورگر دارد. تنوع بین مرورگرهای مختلف ، می تواند بر نحوه اجرای نرم افزار Web Application اثر مستقیم داشته باشد. این تاثیر از نحوه برخورد مرورگرها با نمایش محتوای Web ناشی می شود.حتی ممکن است تعاریف و Setting های مشابه در مرورگرهای مختف نتایج متفاوتی بر نحوه اجرای نرم افزار Web Application داشته باشند. البته مشکلاتی از این دست با وجود استانداردهای Web تا حد زیادی کاهش یافته است. بنابراین یکی ار ویژگی های مهم و چالش برانگیز برای یک نرم افزار تحت Web خوب ، این است که Setting ها و گزینه های امنیتی  و.... مرورگر تاثیری بر نحوه اجرای نرم افزار نداشته باشند. این مساله نیازمند تحلیل خوب و مهمتر از آن توسعه درست و اصولی نرم افزار می باشد. عدم رعایت مسایل فوق باعث می شود تا خروجی یک نرم افزار در یک مرورگر با سایر مرورگرها متفاوت باشد. حالت بد قضیه این است که نرم افزار Web Application تنها بر روی مرورگر خاص و یا Platform خاصی کار کند. اما قسمت فاجعه بار قضیه مربوط به زمانی است که بر اثر تحلیل غلط و یا انتخاب روش نادرست در پیاده سازی ، لازم باشد تا نرم افزار دیگری بر روی ایستگاه های کاری نصب شود تا نرم افزار Web Application بتواند از عهده وظایف محوله برآید.

 

  • در بررسی نرم افزارهایی که در بازار ایران و توسط شرکتهای داخلی تولید شده اند به جرات می توان ادعا کرد که هیچ نرم افزاری را نمی توان یافت که همه مولفه های فوق را یکجا داشته باشد. رضایت مشتری از محصول تولید شده حق طبیعی و قانونی مشتری می باشد. اما اساسا روش معمول تولید نرم افزار در ایران (تولید محصولات خاص منظوره برای مشتریهای خاص) به نحوی است که برآوردن نیاز مشتری به هر نحوی یکی از ویژگی های مثبت یک شرکت نرم افزاری معرفی می شود. معرفی یک محصول/شرکت به این شکل ذاتا دارای اشکال نیست ، اما ضعف دانش و عدم استفاده از فنآوری های روز دلایلی هستند که در پاره ای موارد منجر به تولید محصولاتی شده اند که علیرغم اینکه عنوان نرم افزار تحت Web را بر دوش می کشند ، اما عملا با مولفه های یک نرم افزار تحت Web استاندارد ، فاصله زيادي دارند.

 

در اینکه نرم افزار های تحت Web دنیایی از امکانات و ویژگی های متفاوت را عرضه می کنند ، شکی وجود ندارد. اما می بایست آنها در در چارچوب توانایی ها و محدودیتهایشان سنجید. ممکن است روزی فرا برسد که بسیاری از معایبی که برای نرم افزارهای تحت Web  شمرده شد ، با پیشرفت فنآوری از بین بروند ، اما تا آن زمان قطعا نرم افزار های Form Base (با وجود همه مشکلاتشان) در کنار Web Application ها (که به نوبه خود مزایا و معایب خود را دارند) حضور خواهند داشت.

 

 

 

 

[1] Web Application

[2] Accessibility

[3] Troubleshooting Problems

[4] به صورت Single in Point

[5] Integration

 

شرکت دانش بنیان

بیش از ۱۲۰۰ مرکز نصب در سراسر کشور

بیش از صدها هزار کاربر در سطح کشور

۲۰ سال فعالیت در حوزه فناوری اطلاعات

رتبه یک شورای عالی انفورماتیک