برنامه کاربردی تحت وب چیست ؟
26 دی ماه 1394

یک برنامه کاربردی تحت وب بایک وب سایت تفاوت دارد . یک وب سایت شامل اطلاعات ثابتی است که از پیش آماده شده و به صورت فایل های HTML ذخیره شده اند .در این حالت جهت حرکت اطلاعات از سرویس دهنده به سرویس گیرنده می باشد . در واقع وب سایت اطلاعات را به کاربر ارائه می دهد .
بین درخواست ها ، سرویس دهنده از عملکرد سرویس گیرنده اطلاعی ندارد . سرویس گیرنده می تواند از یک محل به محل دیگر بپرد و این کار روی وب سایت اولیه هیچ تاثیری ندارد ، چون هر یک از صفحات به صورت یک واحد کاملا جدا می باشند . در واقع وب ایت شامل گروهی از فایل های
HTML از هم جدا می باشد . در مقابل ، یک برنامه کاربردی تحت وب ، اطلاعات را برای یک کاربر یا گروهی از کاربران به شکلی خاص فرمت کرده و ارائه می دهد . در این حالت ، جهت حرکت اطلاعات دو طرفه می باشد ؛ محتویاتی که توسط مرور گر نمایش داده می شوند ، بر حسب اطلاعات ورودی کاربر یا هویت وی یین می گردند .
بنابر این یک برناها کاربردی تحت وب ، اطلاعات را به صورت دینامیکی ارائه می دهد نه به صورت فایل های HTML ثابت . در واقع وظیفه برنامه ، فراهم کردن اطلاعات بر حسب شرایط است که این اطلاعات معمولا از پایگاه داده ( Database ) بدست می آید . برنامه کاربردی نه تنها اطلاعات می دهد ، بلکه می تواند از کاربر اطلاعات بگیرد و بکارهای مختلف پاسخ مناسب دهد . به عبارت دیگر ، یک برنامه کاربردی ، عملکرد کاربر را از یک در خواست به درخواست دیگر ردیابی می کند . بنابراین کاربر می تواند آن گونه که در یک وب سایت به جستجو و گردش می پردازد ، به شکل دلخواه تمام صفحات یک برنامه کاربردی را برسی و مشاهده کند . بلکه این برنامه کاربردی است که صفحات مناسب را در شرایط مقتضی به طور دینامیکی تولید کرده و به کاربر ارائه می دهد .

برای نوشتن برنامه های کاربردی تحت وب از زبان های مختلفی می توان استفاده کرد ، مثل : Perl , Python , Java , C , C ++ , Visual Basic حتی Quick Basic یا Script های Unix .
در هر صورت مواردی که در زیر به آنها اشاره می شود جزء ضروریات یک برنامه کاربردی هستند :
- ارتباط با یک پایگاه داده
- سرعت
- کار با رشته ها
- امنیت ( Security )
- تراکنش ها ( Tranaactions )
تراکنش چیست ؟
یک برنامه کاربردی تحت وب اغلب باید کارهای مختلفی انجام دهد که هر یک از آنها برای تداوم اعتبار اطلاعات باید به طور کامل انجام شوند . هنگام کار با یک پایگاه داده ، معمولا این کار ها را بصورت یک تراکنش در نظر می گیریم . یک تراکنش قرار دادی است که موفقیت یا عدم موفقیت مجموعه ای از عملیات را تضمین می کند که در صورت عدم موفقیت ، اطلاعات باید دست نخورده باقی بمانند . به عنوان یک نمونه کلاسیک ، می توانیم یک حساب چک ( Checking Account ) را در نظر بگیریم .
هنگامی که یک چک را به حساب خود می گذارید ، بانک مبلغ مشخص شده را از حساب مربوطه برداشته و به حساب شما واریز می کند . کل این عملیات در صورتی موفقیت آمیز خواهد بود که برداشت و واریز پول به طور کامل انجام شود . در این حالت عمل دو گانه برداشت از یک حساب و واریز به یک حساب دیگر را یک تراکنش می گوییم .

تفاوت میان برنامه های IIS و DHTML
برنامه های IIS ، برنامه هایی هستند که برروی سرویس دهنده و تحت Microsoft Internet Information Server اجرا می شوند . در مقابل ، برنامه های DHTML برنامه Microsoft Internet Explorer استفاده می کنند و به این ترتیب به ورودی های کاربر پاسخ سریع می دهند .
این برنامه ها برای نوشتن بازی ها و شبیه سازی محیط و گرفتن اطلاعات از کاربر مناسب هستند . متاسفانه این نوع برنامه ها به نسخه چهارم IE یا نسخه های بالاتر آن نیاز دارند . با توجه به این که در این کتاب به تفصیل در مورد ASP و مسائل حاشیه ای آن بحث خواهیم کرد ، بد نیست کمی بیشتر در مورد برنامه های IIS توضیح دهیم . چون هدف از یادگیری ASP ، نوشتن برنامه های IIS می باشد که بر روی سرویس دهنده اجرا می شوند .
برنامه های IIS با چندین مرورگر مختلف و نسخه های متفاوت آنها سازگاری دارند . همچنین در محیط های مختلف Mak یا Unix نیز اجراء می شوند . بنابر این این نوع برنامه ها برای نوشتن برنامه های تجاری که مخاطبین زیادی دارند مناسب هستند ؛ چون دلیلی ندارد همه کاربران از ویندوز استفاده کرده و یا نسخه IE را در اختیار داشته باشند.
با توجه به این که برنامه های IIS برروی سرویس دهنده اجرا می شوند ، برای به روز در آوردن آنها تنها کافی است کد موجود برروی سرویس دهنده را تغییر داد. این نوع برنامه ها از هر محلی قابل دسترسی می باشند . هنگامی که یک برنامه IIS برروی سرویس دهنده نصب شده و به اجرا در آمد ، هر کامپیوتری که بتواند به آن سرویس دهنده متصل شود می تواند از آن برنامه استفاده کند .
شما می توانید برای شناسایی کاربران ، به آنها نام و کلمه عبور اختصاص دهید و هنگام برقراری ارتباط با برنامه کاربردی ، نام و کلمه عبور را در خواست کنید . با توجه به این که تمام اطلاعات بر روی یک کامپیوتر ذخیره می شوند ،
هنگامی که کاربر برنامه کاربردی را ترک کند ، هیچ نوع اطلاعاتی را از دست نمی دهد .
در قسمت بعد ، در مورد چگونگی کارکرد برنامه های IIS بحث خواهیم کرد .
چگونگی در خواست فایل ها توسط مرورگر :
هنگامی که شما یک آدرس URL در فیلد آدرس مرورگر خود تایپ می کنید ، چند چیز اتفاق می افتد . مرورگر ، آدرس وارد شده را تحلیل کرده و پیغامی به سرویس دهنده نام ( Name Server ) می فرستد تا نام مشخص شده
(به عنوان مثال ، Microsoft . com ) را به یک آدرس IP ( Internet Protocol ) – (به عنوان مثال ، 207.84.25.32 ) ترجمه کند . سپس مرورگر با استفاده از آن آدرس IP به سرویس دهنده مربوطه متصل شده و فایل را درخواست می کند . سرویس دهنده فایل را می خواند و محتویات آن را به مرورگر بر می گرداند . در این مرحله مرورگر ، دستورات HTML آن فایل را تحلیل و فرمت فایل راتعیین می کند . بیشتر فایل های HTML درون خود به تصاویر گرافیکی اشاره می کنند. این اشاره ها به صورت رفرنس (Reference ) بوده که هریک از آنها نیز بایک آدرس
URL مشخص می شوند .
بنابراین کل این عملیات برای تک تک تصاویر و یا فایل های دیگری که با رفرنس به آنها اشاره شده است تکرار می شود.
به این ترتیب پروسه نمایش یک فایل HTML شامل تعدادی تراکنش کوچک بین سرویس گیرنده ( یعنی مرورگر ) و سرویس دهنده وب می باشد .
برنامه های IIS نیز تقریبا به همین صورت عمل می کنند. ابتدا یک مرورگر یک صفحه را از سرویس دهنده درخواست می کند . این درخواست همیشه برای یک فایل خاص می باشد . پاسخ سرویس دهنده به نوع فایل درخواستی بستگی دارد. اگر فایل مورد نظر از نوع HTML (با پسوند .htm یا .html ) باشد ، سرویس دهنده به سادگی محتویات فایل را می خواند و محتویات آنرا به صورت یک رشته در آورده و براساس قوانین URL کد گذاری می کند و سپس رشته حاصله را به مرورگر برمی گرداند . کل این پروسه ، از درخواست تا پاسخ ، یک تراکنش مابین سرویس گیرنده و سرویس دهنده تلقی می شود . سرویس گیرنده همواره تراکنش را شروع می کند و سپس تا زمان رسیدن پاسخ از سوی سرویس دهنده منتظر می ماند که در این زمان تراکنش کامل شده و خاتمه می یابد .
درخواست فایل از سرویس دهنده وب مشابه هنگامی است که در Windows Explorer روی یک فایل شبکه ای ( فایلی که برروی کامپیوتر سرویس دهنده قرار دارد ) دوبار – کلیک می کنید ؛ البته با دو تفاوت :

- سرویس دهنده وب هیچگاه اجازه نمی دهد که برنامه محلی شما (یعنی مرورگر ) فایل درخواستی را باز کرده یا درآن چیزی بنویسید ؛ در عوض خودش فایل را باز می کند و محتویات آن را برمیگرداند .
- ارتباط مابین سرویس گیرنده و سرویس دهنده گذرا ( Transient ) است . برای برقراری ارتباط با سرویس دهنده وب نیازی به مشخص کردن نام درایوی که فایل بر روی آن قرار دارد نیست . پس از این که سرویس دهنده وب به درخواست شما پاسخ داد، ارتباط را قطع می کند.
هنگامی که تراکنش کامل شد ، سرویس دهنده وب ، سرویس گیرنده را به طور کلی از یاد می برد . اگر بلا فاصله کلید
Refresh ( موجود برروی نوار ابزار IE ) را کلیک کنید . سرویس دهنده وب ، آن تراکنش را تکرار می کند و اصلا به خاطر نمی آورد که 5 ثانیه قبل این فایل توسط شما درخواست شده است .
اگر ارتباط براساس پروتکل استاندارد HTTP برقرارشود ، بیشتر فایل ها به چندین تراکنش نیاز دارند ، یکی برای فایل Html اصلی و بقیه برای یکایک فایل های گرافیکی که در فایل اصلی به آنها اشاره شده است . بنابراین برای نمایش یک فایل که شامل 5 تصویر گرافیکی است ، مرورگر درخواست جداگانه به سرویس دهنده وب می فرستد .