چكيده

امروزه اثرات و كاربردهاي زياد سيستمهاي مبتني بر وب نقش بسيار مؤثري در زندگي روزمره انسانها بازي مي كند و پیشرفتهای هر روزه تكنولوژي و وب نقش آنها را در زندگي پر رنگ تر مي كند.به لطف پیشرفت تكنولوژي و علم كامپيوتر و تکنلولوژی اطلاعات ، هر روز شاهد افزايش وب سايتهايي هستيم كه سرويسهاي مختلفي را براي كاربران خود فراهم مي كنند و امكانات بسياري را در اختيار آنها قرار مي دهند.
لذا بر آن شديم تا مشخص كنيم منظور از نرم افزارهاي مبتني بر وب چیست. تفاوتهایی كه مابين نرم افزارهاي مبتني بر وب و نرم افزارهاي ديگر وجود دارد باعث شده است مباحث مهندسي و تكنولوژي های جديدي معرفي و ايجاد شوند. در اين نوشتار، نرم افزارهاي مبتني بر وب و ويژگيهاي خاص آنها كه باعث متمايز شدن آنها از ديگر گروه هاي نرم افزار مي شوند بيان شده است.

مقدمه

در روزهای نه چندان دور، وب سايتها چيزي بيش از مجموعه اي از لينكها و فايلهاي متني با گرافيك محدود نبودند.با گذر زمان اچ. تي. ام. ال.(HTML: HyperText Markup Language) با ابزارهاي توسعه و زبانهای برنامه سازی ديگري نظير ايكس. ام. ال. (XML:Extensible Markup Language) و JAVA ادغام شد و باعث شد كه عمليات محاسباتي نيز روي اطلاعات امكان پذير شود. با ادغام سيستمهاي مبتني بر وب و نرم‌افزارهاي كاربردي،نرم افزارهاي مبتني بر وب(WebApplications :WebAPP) متولد شد. امروز "نرم افزارهاي مبتني بر وب" شامل ابزارهاي محاسباتي قدرتمندي هستند كه علاوه بر اينكه مي توانند به صورت توابع مستقل عمل كنند، قابليت ادغام با پايگاه داده ها و نرم‌افزارهاي كاربردي تجاري را نيز به خوبي دارا مي باشند. در حقيقت امروزه "نرم افزارهاي مبتني بر وب" مي توانند از یک صفحه وب ساده تا وب سایتهاي بسيار پيچيده كه تمامي اطلاعات قابل نمايش خود را توسط واكشي اطلاعات از پايگاه داده هاي مختلف و اعمال محاسباتي بر روي آنها تهيه مي كنند[1] ، تشكيل شده باشند که هر كدام از اطلاعات و پردازش هاي روي آنها مي توانند جايي در اينترنت ،اينترانت و اكسترانت در گوشه اي از دنيا قرار گرفته باشد.

تفاوت نرم افزارهاي تحت وب با ديگر نرم افزارها

نرم افزارهاي تحت وب خصوصيات خاصي دارند كه آنها را از بقيه نرم افزارها متمايز مي كند . به تعدادي از اين خصوصيات در ذيل اشاره مي كنيم :
Network intensiveness: "نرم افزارهاي مبتني بر وب" بر روي يك ساختار شبكه اي قرار مي گيرند و بايد به احتياجات اجتماعات و دسته های مختلفي از مشتريان پاسخگو باشند.يك"نرم افزارهاي مبتني بر وب" ممكن است بر روي اينترنت قرار بگيرد و قابل دسترسي براي سازمان خاصي باشد و يا بر روي اكسترانت قرار گرفته و در اختيار شبكه اي خاص از كاربران قرار گيرد.
Concurrency: ممكن است تعداد زيادي از كاربران در يك زمان به "نرم افزارهاي مبتني بر وب" دستيابي پيدا كنند.در اغلب موارد الگوي استفاده ميان كاربران مختلف بسيار متفاوت است.
Unpredictable load: ممكن است تعداد كاربران يك "نرم افزارهاي مبتني بر وب"در روزهاي مختلف متفاوت باشد و اين مسئله به خوبي قابل پيش بيني نيست.به عنوان نمونه اين دوشنبه سيستم 100 كاربر داشته،5 شنبه 10000 كاربر و دوشنبه آينده 2000 كاربر.
Performance: در صورتيكه كاربر "نرم افزار مبتني بر وب" انتظار زيادي براي دستيابي به پردازشهاي سمت سرور و يا قالب بندي و نمايش سمت كلانيت بكشد، ممكن است براحتي از رجوع مجدد خود داري كند و سيستم مشتريان خود را از دست بدهد . Availability : هيچوقت نمي توان 100 درصد مواقع در دسترس بود . با اينحال بايد در نظر گرفت كه در هر زمان از 24 ساعت روز ممكن است كاربراني از يك نقطه جهان بخواهند از سيستم استفاده كنند. به همين علت يك "نرم افزار مبتني بر وب" بايد 24 ساعت شبانه روز، هفت روز هفته و 365 روز سال در دسترس باشد.
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 برای قالب بندی محتوای وب سایت ، یک زبان و فناوري اسکریپتی سمت سرور برای انجام پردازشها و محاسبات سمت سرور ، یک زبان اسکریپتی سمت "سرويس گيرنده"، برای پردازش و محاسبات سمت "سرويس گيرنده" و پایگاه داده آشنا بود.
امروزه وجود اين تكنولوژيها توانايي ايجاد "نرم افزارهاي مبتني بر وب" بسيار پيچيده را فراهم كرده است كه خدمات بسياري را براي ميليونها انسان در سراسر جهان فراهم مي كنند و هر روزه نيز به تعداد آنان افزوده مي شود. با بررسی تحقیقات و فناوريهای ارائه شده در دهه اخیر در می یابیم که حرکت و سمت و سوی علم و کاربرد رايانه و فناوري اطلاعات به سمت نرم افزارهای تحت وب میباشد و نرم افزارهای دیگر کاربردهای خود را به وب میدهند .