ردر روزهای نه چندان دور، وب سایتها چیزی بیش از مجموعه ای از لینکها و فایلهای متنی با گرافیک محدود نبودند.با گذر زمان اچ. تی. ام. ال.(HTML: HyperText Markup Language) با ابزارهای توسعه و زبانهای برنامه سازی دیگری نظیر ایکس. ام. ال. (XML:Extensible Markup Language) و JAVA ادغام شد و باعث شد که عملیات محاسباتی نیز روی اطلاعات امکان پذیر شود. با ادغام سیستمهای مبتنی بر وب و نرمافزارهای کاربردی،نرم افزارهای مبتنی بر وب(WebApplications :WebAPP) متولد شد. امروز “نرم افزارهای مبتنی بر وب” شامل ابزارهای محاسباتی قدرتمندی هستند که علاوه بر اینکه می توانند به صورت توابع مستقل عمل کنند، قابلیت ادغام با پایگاه داده ها و نرمافزارهای کاربردی تجاری را نیز به خوبی دارا می باشند. در حقیقت امروزه “نرم افزارهای مبتنی بر وب” می توانند از یک صفحه وب ساده تا وب سایتهای بسیار پیچیده که تمامی اطلاعات قابل نمایش خود را توسط واکشی اطلاعات از پایگاه داده های مختلف و اعمال محاسباتی بر روی آنها تهیه می کنند[۱] ، تشکیل شده باشند که هر کدام از اطلاعات و پردازش های روی آنها می توانند جایی در اینترنت ،اینترانت و اکسترانت در گوشه ای از دنیا قرار گرفته باشد.
تفاوت نرم افزارهای تحت وب با دیگر نرم افزارها
نرم افزارهای تحت وب خصوصیات خاصی دارند که آنها را از بقیه نرم افزارها متمایز می کند . به تعدادی از این خصوصیات در ذیل اشاره می کنیم :
Network intensiveness: “نرم افزارهای مبتنی بر وب” بر روی یک ساختار شبکه ای قرار می گیرند و باید به احتیاجات اجتماعات و دسته های مختلفی از مشتریان پاسخگو باشند.یک”نرم افزارهای مبتنی بر وب” ممکن است بر روی اینترنت قرار بگیرد و قابل دسترسی برای سازمان خاصی باشد و یا بر روی اکسترانت قرار گرفته و در اختیار شبکه ای خاص از کاربران قرار گیرد.
Concurrency: ممکن است تعداد زیادی از کاربران در یک زمان به “نرم افزارهای مبتنی بر وب” دستیابی پیدا کنند.در اغلب موارد الگوی استفاده میان کاربران مختلف بسیار متفاوت است.
Unpredictable load: ممکن است تعداد کاربران یک “نرم افزارهای مبتنی بر وب”در روزهای مختلف متفاوت باشد و این مسئله به خوبی قابل پیش بینی نیست.به عنوان نمونه این دوشنبه سیستم ۱۰۰ کاربر داشته،۵ شنبه ۱۰۰۰۰ کاربر و دوشنبه آینده ۲۰۰۰ کاربر.
Performance: در صورتیکه کاربر “نرم افزار مبتنی بر وب” انتظار زیادی برای دستیابی به پردازشهای سمت سرور و یا قالب بندی و نمایش سمت کلانیت بکشد، ممکن است براحتی از رجوع مجدد خود داری کند و سیستم مشتریان خود را از دست بدهد .
Availability : هیچوقت نمی توان ۱۰۰ درصد مواقع در دسترس بود . با اینحال باید در نظر گرفت که در هر زمان از ۲۴ ساعت روز ممکن است کاربرانی از یک نقطه جهان بخواهند از سیستم استفاده کنند. به همین علت یک “نرم افزار مبتنی بر وب” باید ۲۴ ساعت شبانه روز، هفت روز هفته و ۳۶۵ روز سال در دسترس باشد.
Data driven: عملکرد اصلی بسیاری از “نرم افزارهای مبتنی بر وب”استفاده از هایپرمدیا(Hypermedia) برای نمایش متون، گرافیکها، اصوات و تصاویر می باشد. به عبارت دیگر عمده “نرم افزارهای مبتنی بر وب” از اطلاعاتی که بر روی پایگاه داده های محلی و غیر محلی وجود دارند به صورت مشترک استفاده می کنند و محتوای خود را توسط این اطلاعات تهیه می کنند.
Content sensitive: یکی از معیارهای مهم کیفیت یک “نرم افزار مبتنی بر وب”،کیفیت و زیبایی محتوای آن می باشد.
Continuous evolution: تکامل در “نرم افزارهای مبتنی بر وب” امری عادی به حساب می آید.”نرم افزارهای مبتنی بر وب” همانند یک باغ مدام در حال تغییر و رشد می باشند و اطلاعات و محتوای آنها می توانند دائماً تغییر یابند. به همین علت نگهداری و مراقبت مداوم امری مهم و حیاتی محسوب می شود.
Immediacy: منظور از فوریت، لزوم هر چه سریعتر در دسترس بودن سیستم در بازار می باشد. این خصوصیت مربوط به خیلی از سیستمها می باشد. ولی در مورد بسیاری از “نرم افزارهای مبتنی بر وب” زمان حضور در بازار چند روز و یا چند هفته است و در مقایسه با دیگر نرم افزارها این زمان بسیار کوتاه است. برای همین باید از روشهایی برای ایجاد “نرم افزارهای مبتنی بر وب” استفاده کنیم که این ویژگی را پوشش دهند. البته توسط ابزاهایی که امروزه وجود دارند می توان یک “نرم افزار مبتنی بر وب” ساده را در چند ساعت آماده کرد .
Security: همانگونه که گفته شد “نرم افزارهای مبتنی بر وب” توسط یک ساختار شبکه ای می توانند در دسترس کاربران مختلف با مقاصد مختلف در هر سوی جهان باشند. بسیار دشوار و حتی غیر ممکن است که جمعیت کاربرانی را که به سیستم دسترسی دارند را محدود کرد. به همین علت به منظور محافظت از اطلاعات حساس و ایمن نمودن انتقال داده ها، از ساختارهای امنیتی قدرتمندتری نسبت به دیگر نرم افزارها باید استفاده کنیم.
Aesthetics: یک جزء لاینفنک هر “نرم افزار مبتنی بر وب” زیبایی ظاهری آن می باشد. برای موفقیت یک “نرم افزار مبتنی بر وب” طراحی زیبایی ظاهری نقش بیشتری نسبت به طراحی تکنیکی دارد. همه ویژگیهای بالا به نحوی در “نرم افزارهای مبتنی بر وب” اثر گذارند.
دسته بندی “نرم افزارهای مبتنی بر وب”
“نرم افزارهای مبتنی بر وب” بر اساس عملیاتی که انجام می دهند به گروههای مختلفی تقسیم می شوند. در ادامه به گروههایی که بیشتر مورد استفاده قرار می گیرند اشاره می کنیم :
Informational: در این نوع از “نرم افزارهای مبتنی بر وب” فقط امکان مشاهده و خواندن محتوای سایت به همراه امکان ناوبری ساده وجود دارد.
Download: در این نوع از “نرم افزار مبتنی بر وب” امکان دانلود داده ها و اطلاعات از سرورهایی خاص فراهم می شود.
Customizable: این نوع سیستمها امکان شخص سازی محتوا را به منظور برآورد نیازهای خاصی فراهم می کنند.
Interaction: امکان ارتباط میان اجتماعات مختلفی از کاربران توسط ابزارهایی مانند اتاقهای گفتگو (chatroom)،تابلو اعلانات(bulletin) و یا پیام فوری (instant messaging) توسط “نرم افزار مبتنی بر وب” فراهم می شود.
User input: امکان استفاده از ورودیهای فرم مانند برای مقاصد مختلفی همانند دریافت اطلاعات کابران میسر است.
Transaction-oriented: در این “نرم افزار مبتنی بر وب” بر اساس در خواست کاربر، تراکشهایی برای پاسخ به آن توسط سیستم انجام می شود.
Service-oriented: در این سیسمتها سرویس های خاصی برای کاربران مهیا می شود.
Portal: “نرم افزار مبتنی بر وب” در غالب دروازه های به سوی دیگر “نرم افزارهای مبتنی بر وب” و یا سرویسهایی که جزء حوزه “نرم افزار مبتنی بر وب” نیستند،عمل می کند.
Database access: توسط این سیستمها کاربران کاوشهایی(Query) را روی پایگاه داده بزرگی اجرا کرده و اطلاعات مورد نیاز خود را استخراج می کنند.
Data warehousing : توسط این “نرم افزارهای مبتنی بر وب” کاربران می توانند کورِیهایی را بر روی چند پایگاه داده بزرگ اجرا کنند و اطلاعاتی را از آنان استخراج کنند. البته خیلی از “نرم افزارهای مبتنی بر وب” از ترکیب چند تایی این گروهها ایجاد می شوند و یک “نرم افزار مبتنی بر وب” می تواند جزء چندین دسته از این گروهها قرار بگیرد.
پیاده سازی نرم افزارهای مبتنی بر وب
پیاده سازی “نرم افزارهای مبتنی بر وب” نیازمند مدل فرآیندی خاص، متدهای مهندسی نرم افزار که منطبق با ویژگیهای “نرم افزارهای مبتنی بر وب” باشند و تکنولوژیهای خاصی که امکانات ذکر شده را برای ما فراهم کند می باشد.تمامی موارد فوق در غالب مهندسی وب(Web Engineering) بروز می کند. مدل فرآیندی و متدهای مهندسی نرم افزار مختلفی برای توسعه یک “نرم افزار مبتنی بر وب” معرفی شده اند. از جمله آنان رهیافت Agile می باشد که توضیح آن از حوصله این مقوله خارج است و علاقه مندان می توانند با مراجعه به منابع فراوان آن با این رهیافت آشنا شوند.
تکنولوژیهای مختلفی نیز برای پیاده سازی “نرم افزارهای مبتنی بر وب”ی گوناگون مطرح شده اند. از جمله ای این تکنولوژیها می توان به HTML،XHTML،XML،اسکریپت های سمت سرور همانند JSP ، ASP.Net ، PHP و اسکریپتهای سمت کلاینت همانند VbScript و JavaScript را نام برد. در مورد هرکدام از این اصطلاحات کتابهای زیادی نوشته شده است.برای ایجاد یک نرم افزار تحت وب باید حداقل با HTML برای قالب بندی محتوای وب سایت ، یک زبان و فناوری اسکریپتی سمت سرور برای انجام پردازشها و محاسبات سمت سرور ، یک زبان اسکریپتی سمت “سرویس گیرنده”، برای پردازش و محاسبات سمت “سرویس گیرنده” و پایگاه داده آشنا بود.
امروزه وجود این تکنولوژیها توانایی ایجاد “نرم افزارهای مبتنی بر وب” بسیار پیچیده را فراهم کرده است که خدمات بسیاری را برای میلیونها انسان در سراسر جهان فراهم می کنند و هر روزه نیز به تعداد آنان افزوده می شود. با بررسی تحقیقات و فناوریهای ارائه شده در دهه اخیر در می یابیم که حرکت و سمت و سوی علم و کاربرد رایانه و فناوری اطلاعات به سمت نرم افزارهای تحت وب میباشد و نرم افزارهای دیگر کاربردهای خود را به وب میدهند .