چکیده
امروزه اثرات و کاربردهای زیاد سیستمهای مبتنی بر وب نقش بسیار مؤثری در زندگی روزمره انسانها بازی میکند و پیشرفتهای هر روزه تکنولوژی و وب نقش آنها را در زندگی پررنگتر میکند. به لطف پیشرفت تکنولوژی و علم کامپیوتر و فناوری اطلاعات، هر روز شاهد افزایش وبسایتهایی هستیم که سرویسهای مختلفی را برای کاربران خود فراهم میکنند و امکانات بسیاری را در اختیار آنها قرار میدهند.
نرمافزار مدیریت اطلاعات آزمایشگاه نگین نیز دارای ویژگی مبتنی بر وب است.
لذا بر آن شدیم تا مشخص کنیم منظور از نرمافزارهای مبتنی بر وب چیست؟ تفاوتهایی که مابین نرمافزارهای تحت وب و نرمافزارهای دیگر وجود دارد باعث شده که مباحث مهندسی و تکنولوژیهای جدیدی معرفی و ایجاد شوند. در این مقاله، نرمافزارهای مبتنی بر وب و ویژگیهای خاص آنها که باعث متمایز شدن آنها از دیگر گروههای نرمافزاری میشود بیان شده است.
مقدمه
در روزهای نه چندان دور، وبسایتها چیزی بیش از مجموعهای از لینکها و فایلهای متنی با گرافیک محدود نبودند. با گذر زمان اچ. تی. ام. ال (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 برای قالببندی محتوای وب سایت، یک زبان و فناوری اسکریپتی سمت سرور برای انجام پردازشها و محاسبات سمت سرور، یک زبان اسکریپتی سمت “سرویس گیرنده”، برای پردازش و محاسبات سمت “سرویس گیرنده” و پایگاه داده آشنا بود.
امروزه وجود این تکنولوژیها توانایی ایجاد “نرمافزارهای مبتنی بر وب” بسیار پیچیده را فراهم کرده است که خدمات بسیاری را برای میلیونها انسان در سراسر جهان فراهم میکنند و هر روزه نیز به تعداد آنان افزوده میشود. با بررسی تحقیقات و فناوریهای ارائه شده در دهه اخیر درمییابیم که حرکت و سمت و سوی علم و کاربرد رایانه و فناوری اطلاعات به سمت نرمافزارهای تحت وب میباشد و نرمافزارهای دیگر کاربردهای خود را به وب میدهند.
منبع:
گردآوری: لیمزایران