— (318)

دانشگاه قم
دانشکده فنی مهندسی
پایان نامه دوره کارشناسی ارشد رشته مهندسی فناوری اطلاعات
عنوان:
بهینه سازی اجرا و پاسخ برنامه های C2C و B2C در فضای ابری با روش های توزیع، تسهیم و پیش پردازش، مطالعه موردی سیستم های انجین ایکس و وارنیش
استاد راهنما:
دکتر یعقوب فرجامی
نگارنده:
سنیه دیلمی
زمستان/1393
تاییدیه هیات داوران
تقدیم به
خانواده ام که مرا در این مسیر یاری نمودند.
تشکر و قدردانی
خدای منان را شاکرم که توفیق به پایان رساندن این رساله را رفیق راهم ساخت. از تمامی اساتید بزرگوار که در طول سالیان گذشته مرا در تحصیل علم و معرفت یاری نموده اند تقدیر و تشکر می نمایم.
و تشکر ویژه می کنم از استاد بزرگوار جناب آقای دکتر فرجامی که به عنوان استاد راهنما بنده را مورد لطف و راهنمایی خود قرار دادند.
چکیده
در دنیای امروز اینترنت و مهم ترین سرویس آن وب، زندگی بشر را دچار تغییر و تحولات فراوانی کرده است. اینترنت تمام نیازهای اشخاص برای برقراری ارتباط با یکدیگر، به دست آوردن اطلاعات در هر زمینه ای، بازی و سرگرمی، آموزش و هر زمینه ای که به ذهن انسان خطور کند را فراهم می کند. اهمیت این سرویس به حدی رسیده است که همه روزه دانشمندان در حوزه ی کامپیوتر و وب به دنبال راهی برای جذب بیشتر افراد به وب هستند. تمرکز آن ها روی این زمینه است که اشخاص در مدت کوتاهی بتوانند تمام نیازهایی که هر لحظه برایشان پیش می آید را از طریق وب برطرف کنند. خوشبختانه یکی از زمینه هایی که فعالیت وب در آن بسیار گسترده و مهم شده است، مقوله ی تجارت و سیستم های تجاری است. درحال حاضر هیچ فعالیت اقتصادی وجود ندارد که نتوان از طریق وب به آن پاسخ داد. اما مساله ای که پیش می آید این است که باید سطح این خدمات تجاری بهبود پیدا کند و این بهبود به طور مستقیم با سرعت فعالیت ها در ارتباط است. در نتیجه در سال های اخیر دانشمندان تمرکز خود را روی سرعت بخشیدن به وب قرار دادند و تلاش کردند تا راهی برای سریع تر کردن وب بیابند. سرورهای وب ابزارهایی بودند که توسعه دهندگان به وسیله ی آن ها توانستند راه حل هایی برای تسریع وب پیشنهاد دهند و با پیاده سازی آن ها نتایج سودمندی را برای افراد جامعه رقم زدند. هدف از نگارش این پژوهش معرفی راهکارهای تسریع وب از طریق ابزاری به نام وب سرورها بود. در ابتدای کار مقدماتی از وب سرورها و انواع آن ها توضیح دادیم و سپس به دونوع مهم از آن ها پرداختیم. سپس نرم افزاری برای تسریع در این وب سرورها معرفی کرده و در نهایت شروع به پیاده سازی این وب سرورها کردیم. پس از نصب و اجرای آن ها عملیات تست سرعت را روی تمامی آن ها انجام داده و نتایج به دست آمده را مورد بررسی قرار دادیم.
کلمات کلیدی: اینترنت، وب، وب سرور، تسریع وب، سیستم های تجاری
فهرست مطالب
1- TOC h z u t “Heading 1,2,Heading 2,3,Heading 3,4,Heading 0,1” کلیات پژوهش PAGEREF _Toc416350028 h 11-1 مقدمه PAGEREF _Toc416350029 h 21-2 آشنایی با تکنولوژی وب PAGEREF _Toc416350030 h 41-3 تاریخچه ی وب PAGEREF _Toc416350031 h 51-3-1 1991-1980: آغاز پیشرفت های ابتدایی وب PAGEREF _Toc416350032 h 51-3-2 1995-1992 رشد وب PAGEREF _Toc416350033 h 61-3-3 1998-1996 تجاری سازی وب PAGEREF _Toc416350034 h 61-3-5 2001-1999 دات کام، ارتقا و انفجار PAGEREF _Toc416350035 h 71-3-6 2002 تا زمان حال PAGEREF _Toc416350036 h 71-4 مدل های وب PAGEREF _Toc416350037 h 91-5 تشریح وب 1 و دستاوردهای آن PAGEREF _Toc416350038 h 101-6 تشریح وب 2 و دستاوردهای آن PAGEREF _Toc416350039 h 101-6-1 مشخصه های مهم وب 2 PAGEREF _Toc416350040 h 111-7 تشریح وب 3 و دستاوردهای آن PAGEREF _Toc416350041 h 141-8 تخمین آینده ی وب PAGEREF _Toc416350042 h 151-9 بیان مساله و سوالات تحقیق PAGEREF _Toc416350043 h 171-10 ضرورت انجام تحقیق PAGEREF _Toc416350044 h 181-11 ساختار پژوهش PAGEREF _Toc416350045 h 191-12 خلاصه ی فصل PAGEREF _Toc416350046 h 202-ادبیات تحقیق PAGEREF _Toc416350047 h 212-1 مقدمه PAGEREF _Toc416350048 h 222-2 تعریف وب سرور PAGEREF _Toc416350049 h 242-2 انواع وب سرورها PAGEREF _Toc416350050 h 262-2-1 وب سرور آپاچی اچ تی تی پی سرور PAGEREF _Toc416350051 h 282-2-2 وب سرور انجین ایکس PAGEREF _Toc416350052 h 302-3 شتاب دهنده ای به نام وارنیش PAGEREF _Toc416350053 h 312-3-1 تاریخچه PAGEREF _Toc416350054 h 322-3-2 معماری PAGEREF _Toc416350055 h 322-3-3 کارایی PAGEREF _Toc416350056 h 342-3-4 شما این کار را اشتباه انجام می دهید PAGEREF _Toc416350057 h 342-4 نرم افزارهای مبتنی بر وب PAGEREF _Toc416350058 h 472-4-1 معماری و وضعیت اجرای نرم افزارهای تحت وب PAGEREF _Toc416350059 h 482-5 خلاصه فصل PAGEREF _Toc416350060 h 503-روش تحقیق PAGEREF _Toc416350061 h 513-1 مقدمه PAGEREF _Toc416350062 h 523-2 آشنایی با لینوکس PAGEREF _Toc416350063 h 533-2-1 آشنایی با توزیع اوبونتو PAGEREF _Toc416350064 h 543-2-1-1 آشنایی با محیط ترمینال و کار با دستورات آن PAGEREF _Toc416350065 h 543-3 اتصال به سرور از راه دور PAGEREF _Toc416350066 h 553-3-1 از طریق نرم افزار پوتی و کار با محیط ترمینال اوبونتو PAGEREF _Toc416350067 h 563-3-2 از طریق ریموت دسکتاپ کانکشن و کار با محیط اصلی وب سرور PAGEREF _Toc416350068 h 583-4 نصب وب سرورها روی اوبونتو PAGEREF _Toc416350069 h 603-4-1 نصب آپاچی PAGEREF _Toc416350070 h 613-4-2 نصب انجین ایکس PAGEREF _Toc416350071 h 653-4-3 نصب آپاچی- وارنیش PAGEREF _Toc416350072 h 743-4-4 نصب انجین ایکس- وارنیش PAGEREF _Toc416350073 h 793-5 نصب نرم افزارهای مدیریت محتوا PAGEREF _Toc416350074 h 823-5-1 قابلیت های سیستم های مدیریت محتوا PAGEREF _Toc416350075 h 823-5-2 انواع سیستم های مدیریت محتوای وب PAGEREF _Toc416350076 h 853-5-3 مزایای سیستم های مدیریت محتوا PAGEREF _Toc416350080 h 853-5-4 معایب سیستم های مدیریت محتوا PAGEREF _Toc416350081 h 863-5-5 مهم ترین سیستم های مدیریت محتوای وب PAGEREF _Toc416350082 h 873-6 خلاصه فصل PAGEREF _Toc416350083 h 914-تست سرعت وب سرورها PAGEREF _Toc416350084 h 924-1 مقدمه PAGEREF _Toc416350085 h 934-2 نمایی از محیط نرم افزار نصب وب سرورها PAGEREF _Toc416350086 h 934-3 وب سایت های تست سرعت بارگذاری PAGEREF _Toc416350087 h 974-4 نمونه ای از تست سرعت یک وب سرور به همراه یک سیستم مدیریت محتوا PAGEREF _Toc416350088 h 994-5 نتایج حاصل از تست کلی PAGEREF _Toc416350089 h 1044-6 خلاصه فصل PAGEREF _Toc416350090 h 1105-نتیجه گیری و پیشنهادات PAGEREF _Toc416350091 h 1115-1 مقدمه PAGEREF _Toc416350092 h 1125-2 جمع بندی PAGEREF _Toc416350093 h 1125-3 نتیجه گیری PAGEREF _Toc416350094 h 1135-4 پیشنهادات برای کارهای آینده PAGEREF _Toc416350095 h 1175-5 خلاصه فصل PAGEREF _Toc416350096 h 117منابع و مراجع PAGEREF _Toc416350097 h 118

فهرست جداول
TOC h z t “فهرست جداول,1” جدول 4-1 نتیجه تست وب سرورها و سیستم های مدیریت محتوا روی سایت وب پیج تست PAGEREF _Toc411880273 h 117جدول 4-2 نتیجه تست وب سرورها و سیستم های مدیریت محتوا روی سایت جی تی متریکس PAGEREF _Toc411880274 h 118جدول 4-3 نتیجه تست وب سرورها و سیستم های مدیریت محتوا روی سایت پینگ دام PAGEREF _Toc411880275 h 119جدول 4-4 نتایج مقایسه ی سرعت وب سایت ها PAGEREF _Toc411880276 h 121جدول 4-5 نتایج مقایسه ی سرعت وب سرورها PAGEREF _Toc411880277 h 122جدول 5-1 میانگین تست سرعت بارگذاری برای مقایسه وب سایت ها PAGEREF _Toc411880278 h 127جدول 5-2 میانگین تست سرعت بارگذاری برای مقایسه وب سرورها PAGEREF _Toc411880279 h 128
فهرست شکل ها
TOC h z t “فهرست شکل ها,1” شکل 2-1 سرور آپاچی بدون وارنیش PAGEREF _Toc411880839 h 37شکل 2-2 سرور آپاچی به همراه وارنیش PAGEREF _Toc411880840 h 38شکل 2-3 معرفی همه ی وب سرورهای موجود PAGEREF _Toc411880841 h 41شکل 2-4 ویژگی های وب سرورهای موجود PAGEREF _Toc411880842 h 42شکل 2-5 سیستم عامل های پشتیبانی شده توسط وب سرورهای موجود PAGEREF _Toc411880843 h 42شکل 2-6 زمان اجرای باینری هیپ و بی هیپ PAGEREF _Toc411880844 h 52شکل 2-7 مقایسه زمان اجرای بی هیپ و باینری هیپ به صورت زوم قسمت چپ PAGEREF _Toc411880845 h 53شکل 2-8 تاثیر فشار وی ام روی سرعت اجرای باینری هیپ و بی هیپ به صورت زوم PAGEREF _Toc411880846 h 55شکل 2-9 مقایسه زمان اجرای باینری هیپ و بی هیپ روی دیسک مکانیکی PAGEREF _Toc411880847 h 56شکل 2-10 ساختار درخت باینری هیپ PAGEREF _Toc411880848 h 57شکل 2-11 ساختار درخت بی هیپ PAGEREF _Toc411880849 h 58شکل 2-12 مدل کامپیوتر منسوخ PAGEREF _Toc411880850 h 60شکل 3-1 نرم افزار پوتی PAGEREF _Toc411880851 h 71شکل 3-2 نمایی از محیط خط فرمان پوتی PAGEREF _Toc411880852 h 72شکل 3-3 نمایی از نرم افزار ریموت دسکتاپ کانکشن PAGEREF _Toc411880853 h 73شکل 3-4 نمایی از محیط سرور PAGEREF _Toc411880854 h 74شکل 3-5 صفحه ی وب نشان دهنده نصب درست پی اچ پی(ویژگی های پی اچ پی) PAGEREF _Toc411880855 h 77شکل 3-6 صفحه ی نصب انجین ایکس PAGEREF _Toc411880856 h 81شکل 3-7 بهبود عملکرد آپاچی به وسیله ی وارنیش PAGEREF _Toc411880857 h 89شکل 3-7 نمایی از سایت ووردپرس PAGEREF _Toc411880858 h 102شکل 3-8 نمایی از سایت جوملا PAGEREF _Toc411880859 h 103شکل 3-9 نمایی از سایت دروپال PAGEREF _Toc411880860 h 104شکل 4-1 نمایی از نرم افزار زن سرور و نمایش موارد تست سرور آپاچی PAGEREF _Toc411880861 h 108شکل4-2 موارد تست سرور ترکیبی انجین ایکس و وارنیش PAGEREF _Toc411880862 h 109شکل 4-3 موارد تست سرور ترکیبی آپاچی و وارنیش PAGEREF _Toc411880863 h 110شکل 4-4 موارد تست سرور انجین ایکس PAGEREF _Toc411880864 h 111شکل 4-5 نمایی از سایت وب پیچ تست PAGEREF _Toc411880865 h 112شکل 4-6 نمایی از سایت جی تی متریکس PAGEREF _Toc411880866 h 112شکل 4-7 نمایی از سایت پینگ دام PAGEREF _Toc411880867 h 113شکل 4-8 نمایی از سایت جوملا روی سرور انجین ایکس و وارنیش PAGEREF _Toc411880868 h 114شکل 4-9 نتیجه ی تست سرور مذکور روی سایت وب پیج تست PAGEREF _Toc411880869 h 115شکل 4-10 ادامه نتیجه تست سرور مذکور روی سایت وب پیج تست PAGEREF _Toc411880870 h 115شکل 4-11 ادامه نتیجه تست سرور مذکور روی سایت وب پیج تست PAGEREF _Toc411880871 h 115شکل 4-12 نتیجه تست سرور مذکور روی سایت پینگ دام PAGEREF _Toc411880872 h 116شکل 4-13 ادامه نتیجه تست سرور مذکور روی سایت پینگ دام PAGEREF _Toc411880873 h 117شکل 4-14 نتیجه تست سرور مذکور روی سایت جی تی متریکس PAGEREF _Toc411880874 h 117شکل 4-15 ادامه نتیجه تست سرور مذکور روی سایت جی تی متریکس PAGEREF _Toc411880875 h 118شکل 4-16 نمودار تست وب سرورها و سیستم های مدیریت محتوا رو ی سایت وب پیج تست PAGEREF _Toc411880876 h 119شکل 4-17 نمودار تست وب سرورها و سیستم های مدیریت محتوا رو ی سایت جی تی متریکس PAGEREF _Toc411880877 h 120شکل 4-18 نمودار تست وب سرورها و سیستم های مدیریت محتوا رو ی سایت پینگ دام PAGEREF _Toc411880878 h 121شکل 4-19 نمودار مقایسه ی سرعت وب سایت ها PAGEREF _Toc411880879 h 123شکل 4-20 نمودار نتایج مقایسه ی سرعت وب سرورها PAGEREF _Toc411880880 h 124شکل 5-1 نمودار مقایسه سرعت بارگذاری وب سایت ها PAGEREF _Toc411880881 h 129شکل 5-2 نمودار مقایسه سرعت بارگذاری وب سرورها PAGEREF _Toc411880882 h 130

فصل اول:
کلیات پژوهش
1-1 مقدمهاينترنت و مهمترين سرويس آن وب، علاوه بر اين كه حيات بشری را در هزاره سوم دستخوش تحولات فراوانی كرده است، توانسته است منشاء تحولات گسترده ای در ساير حوزه های فناوری گردد. یکی از حوزه های جدی تاثیر اینترنت تجارت الکترونیک است.
در وب سایت های تجاری سرعت اجرا و پاسخ سیستم ها موضوعی بسیار مهم و حیاتی شده است. در مورد سیستم های تجاری مشتری به مشتری و تجارت به مشتری با توجه به حجم بالای مراجعه کنندگان و بازدید کنندگان که هریک عملیات متنوعی را انجام می دهند توان و سرعت پاسخگویی سیستم امری بسیار تاثیر گذار در رضایت مشتریان و کارآمدی سیستم تجاری است.
روش های شناخته شده و سابقه داری از قبیل پیش پردازش، کوکی، آژاکس، کش کردن و … برای سرعت بخشیدن به اجرای برنامه های اینترنتی استفاده شده اند ولی همچنان نیاز به بالا بردن سرعت اجرا و بهره وری سیستم های تحت وب احساس می شود.
اهمیت سرعت اجرا در وب سایت های تجاری مشتری به مشتری به دلیل ماهیت ذاتی آن (مشارکت مشتریان با یکدیگر) و تعداد بالای بازدیدکنندگان همزمان بسیار حیاتی است. سیستم های تجارت الکترونیک از قبیل بازارهای اینترنتی، بازارهای حراج اینترنتی، خرده فروشی های مشارکتی و … نمونه هایی از این سیستم های مشتری به مشتری هستند.
در مورد سیستم های تجارت الکترونیک با پایه ی تجارت به مشتری مثل بانک های اینترنتی، سیستم های پرداخت و تسویه حساب اینترنتی و … نیز به دلیل تعامل همزمان با تعداد زیادی از مشتریان سرعت اجرا و پاسخ دهی بلادرنگ اهمیت ویژه ای پیدا می کند.
کارایی سرویس های تجارت الکترونیک فقط به موارد فوق محدود نمی شوند و اهمیت سرعت و پاسخ دهی بلادرنگ در سیستم های دیگری مثل موتورهای جستجو، سیستم های مشارکتی تبلیغات بازرگانی، سیستم های مشارکتی چندرسانه ای، سیستم های ویدئو کنفرانس، سیستم های تلفن اینترنتی، سیستم های چت، سیستم های ای آر پی، سی آر امو … نیز قویا ضروری می نماید]12][13[.
بنابراین اهمیت اجرای سریع برنامه های تحت وب، سیستم های تجارت الکترونیک و به طور کلی همه سیستم های پربازدید و پر ترافیک اجرای سریع و پاسخ دهی بلادرنگ را مولفه ای حیاتی برای کار خود تلقی می کنند.
در این فصل پس از آشنایی با تکنولوژی وب، تاریخچه ای از آن به صورت مشروح و کامل توضیح داده می شود. سپس انواع مدل های وب معرفی، و تعریف هر یک از آن ها، دستاوردها و ویژگی هایشان به صورت کامل شرح داده می شوند. همچنین تخمینی از آینده ی وب و حدس ما درمورد تکنولوژی های آینده در وب توضیح داده می شود. در ادامه، مساله اصلی این تحقیق تعریف شده و سوال های پیش رو و ضرورت انجام تحقیق شرح داده می شود. درنهایت ساختار پژوهش آورده می شود]14 [.
1-2 آشنایی با تکنولوژی وبتکنولوژی وب توسعه ی مکانیزمی است که به دو یا چند کامپیوتر اجازه می دهد تا در سطح یک شبکه ارتباط برقرار کنند. برای مثال در محیط یک شرکت، ممکن است تعدادی از کامپیوترها که به همراه دستگاه هایی نظیر پرینتر درون یک شبکه به هم متصل هستند، برای ارسال مناسب و سریع اطلاعات همکاری کنند. فرآیندی که تکنولوژی وب دارد پیچیده و گوناگون است و به همین علت است که تمامی سازمان های بزرگ تجاری با این مساله سروکار دارند. تکنولوژی وب تغییرات اساسی در شیوه های ارتباطی ایجاد کرده است که بسیار موثرتر عمل می کنند.
مزیت اصلی تکنولوژی وب این است که با فراهم آوردن ارتباط هایی با سرعت بالا در دنیای کامپیوتر، آسودگی و راحتی را به ارمغان آورده است. فرآیند هایی که از کامپیوتر استفاده می کنند، چه در شرکت باشند و چه در منزل، با استفاده از یک شبکه بسیار سریع و آسان عمل می کنند. تکنولوژی وب به پیام ها اجازه می دهد که در سطح یک سیستم ارسال شوند، با درنظر گرفتن اینکه ممکن است قبل از آن نیاز به به کار بردن یک مجرای اصلی باشد یا ترک فضای کاری برای برقراری ارتباط با یک پیام. همچنین واضح است که تکنولوژی وب باعث کاهش قیمت ها، افزایش پتانسیل تجاری و کارآمدتر شدن کمپانی می شود.
عیب اصلی تکنولوژی وب این است که مسائلی که شامل تکنولوژی وب می شوند، می توانند بسیار پیچیده باشند و این قضیه برای افرادی که تجربه ای مرتبط با عیب یابی مشکلات شبکه ای ندارند، می تواند کار سختی باشد. بنابراین نیاز به استخدام افرادی با مهارت حل مشکلات شبکه ای احساس می شود که خود مستلزم پرداخت هزینه است. علاوه بر این وجود شبکه مجال حمله به سیستم های کامپیوتری را فراهم می کند. ضعف در شبکه ممکن بود بهره برداری شود، اطلاعات مهم ممکن بود گم شود یا از بین برود و ویروس های کامپیوتری می توانستند خطرات جدی برای شبکه به وجود بیاورند. بنا بر این دلایل، امنیت شبکه موضوع دیگریست که هنگام استفاده از تکنولوژی وب باید درنظر گرفته شود]1][2[.
1-3 تاریخچه ی وبتار جهان گستر، یا به عبارت خلاصه وب، مرجعی جهانی برای کاربرانی است که از طریق اینترنت با آن در ارتباط هستند.
عبارت تار جهان گستر گاهی به صورت اشتباه به جای کلمه اینترنت به کار می رود، در حالی که وب سرویسی است برای امور اینترنتی مانند ایمیل. سابقه ی پیدایش اینترنت بسیار طولانی تر از وب است. ایده ی داشتن مرجعی جهانی که حتی از خانه هم بتوان به آن دسترسی داشت شاید به داستان کوتاه ایساک آسیموف، “جشن سالیانه” که در سال 1959 منتشر شد برگردد. در این داستان، شخصیت ها از طریق کامپیوترهای خانگی به دنبال اطلاعاتی می گشتند که از طریق یک شبکه گسترده زمینی به یک سوپر کامپیوتر در جایی درون زمین متصل بود.
1-3-1 1991-1980: آغاز پیشرفت های ابتدایی وباولین وب سرور جهان، “نکست کیوب” نام داشت که توسط تیم بارنرز لیدر سِرنمورد استفاده قرار گرفت. این سرور مجبور بود تمام لینک ها و صفحات جدید را به صفحه های باقی مانده لینک کند. برای برطرف کردن این نقیصه، او ایده ی به اشتراک گذاشتن اطلاعات را بدون استفاده از ابزار و نرم افزارهای جدید ارائه داد. او در سال 1989 شروع به کار روی ایده خود کرد و یک ابرمتن را به وجود آورد. او اسامی مختلفی برای این طرح ارائه کرد از جمله مِشِ اطلاعات، معدن اطلاعات، و …، تا در نهایت تار جهان گستر انتخاب شد. هدف پروژه ی “وب”، دادن قابلیت لینک شدن به هر اطلاعاتی در هر جایی بود. “بسیار از گسترده سازی وب در تمام نقاط دنیا و ایجاد سرورهای گذرگاهی و دروازه ای برای هر اطلاعاتی هیجان زده و خوشحالیم. همه دست اندرکاران خوش آمدید!” این قسمت هایی از اولین پیغام بارنرز لی بود.
1-3-2 1995-1992 رشد وبدراین سال ها، همچنان مرورگر گرافیکی وجود نداشت. این ضعف در سال 1992 با انتشار “اروایز “برطرف شد.اما با معرفی مرورگر “موزاییک”، نقطه عطفی در وب به وجود آمد. موزاییک در دانشگاه ایلی نویزطراحی و در سال 1993 عرضه شد.
در می 1994، اولین کنفرانس بین المللی وب در سِرن برگزار شد و از آن تاریخ به بعد هر ساله برگزار می شود.
1-3-3 1998-1996 تجاری سازی وبقبل از سال 1996 مشخص شد که وب دیگر تنها به عنوان مرجعی برای دستیابی به اطلاعات و برقراری ارتباط به کار نمی رود، اکنون بسیاری از شرکت ها برای تجارت های تحت وب نیز روی آن حساب می کردند. با به وجود آمدن این شرایط، بسیاری خواستار استفاده از این موقعیت و بهره مندی از مزایای آن شدند.
1-3-4 جدال مرورگر ها
به دلیل آغاز به کار زودتر، نت اسکیپدر سال 1996 انتخاب 80% کاربران بود. اما وجود برخی نقاط ضعف و کارایی پائین و عرضه شدن نسخه ی 4 اینترنت اکسپلورر، به تدریج کاربران استفاده از اینترنت اکسپلورر را ترجیح دادند به طوری که در سال 2001، 90% کاربران از اینترنت اکسپلورر استفاده می کردند. در سال 1998، موزیلاوارد بازار شد. در سال 2006، نسخه ی فایرفاکسآن نیز عرضه شد و شمار کاربران اینترنت اکسپلورر را از 95% به 85% کاهش داد.
1-3-5 2001-1999 دات کام، ارتقا و انفجاراز نظر تاریخی، انفجار “دات کام” را می توان با بسیاری از اختراعات و اکتشافات دیگر مقایسه کرد. مانند افتتاح راه آهن در 1840، رادیو در 1920، الکتریسیته در 1950 و کامپیوتر های خانگی در اوایل 1980.
در سال 2001، حباب “دات کام” ترکید و بسیاری از پیشگامان این عرصه، که نتوانستند از سرمایه گذاری های خود، منتفع شوند، از عرصه رقابت خارج گردیدند.
1-3-6 2002 تا زمان حالدر این سال ها، شرکت های متعددی، سرمایه های بسیاری در وب برای ارتقای کیفیت و بالا بردن سرعت اینترنت صرف کرده اند. شرکت های بسیاری، پیشرفت های خود را از طریق وب یافته اند و همین هم سبب تجاری شدن وب گردیده است.
سایت های بزرگی مانند موتورهای جستجوی گوگل، ای بیو آمازون دات کامخدمات بسیاری برای جستجوی راحت تر در اینترنت ارائه داده اند.
سایت های شبکه های اجتماعی نظیر مای اسپیس، فیس بوک، فرندسترو … هم فعالیت خود را در این سال ها آغاز کردند که در ابتدا با استقبال مواجه نشدند اما به تدریج محبوب و گسترده شدند.
با آغاز سال 2002، وب با ایده های متعددی مانند آر اس اسو وبلاگها مواجه شده بود. با گسترده شدن فعالیت های موتور های جستجو، نیاز به تغییراتی در وب به وجود آمد که نتیجه آن وب 2 بود.
اکنون که جستجو در اینترنت همه گیر شده بود، ویکی پدیاو پروژههایش به عنوان مرجعی برای اطلاعات به وجود آمدند. در سال 2005، سه تن از کارمندان سابق پی پال، وب سایتی برای نمایش ویدئو طراحی کردند که یوتیوبنام گرفت. تنها یک سال بعد، این سایت به عنوان سریع ترین سایت گسترده شده از زمان پیدایش وب شناخته شد که به خوبی کاربران را جذب خود کرده است.
پیشرفت های اینترنت در همه زمینه ها، به ویژه تجارت، آن را بسیار آسان کرده و در دسترس همگان قرار داده است]3][4[.
1-4 مدل های وبدنیای مجازی جهانیست که با ظهور وب و شبکه ی اینترنت شکل جدیدی به خود گرفت و به صورت جدی به رقابت با دنیای فیزیکی پرداخت. در ابتدا وب 1 دنیای اطلاعات را متحول ساخت (2000-1990) و با ایجاد دسترسی همگانی به اطلاعات مختلف بدون محدودیت های زمانی و مکانی در دنیای فیزیکی، انقلابی شگرف در زمینه ی دسترسی به اطلاعات و پیشرفت علم ایجاد نمود.
سپس وب 2 و وب سایت های دوسویه و شبکه های اجتماعی مجازی مطرح شد (2010-2000) و دنیای ارتباطات را متحول ساخت. دیگر کاربران صرفا دریافت کننده ی اطلاعات نبودند و خود آن ها خوراک سایت ها را فراهم می کردند. این ارتباطات دوطرفه و فعل و انفعالی و جذابیت ناشی از مشارکت در محصول موجب ایجاد سایت های بزرگی همچون فیس بوک (سومین جامعه ی بزرگ دنیا)، آمازون (بزرگ ترین کتاب فروشی دنیا)، ویکی پدیا (بزرگ ترین دایره المعارف دنیا)، ای بی (بزرگ ترین سوپرمارکت دنیا) و بسیاری از سایت های وب 2 ای دیگر در تمام زمینه های زندگی بشر نمود و کلیه ی روابط اجتماعی ما را تحت تاثیر خود قرار داد.
اما هنوز بشر خواسته های بیشتری از وب داشته و هرروز نیازمندی های خود را به آن محسوس تر می بیند و جنبه های بیشتری از زندگی خود را به آن می سپارد و به آن وابسته تر می شود. مثلا میساز دانشگاه ام آی تیدر حال کار بر روی آیینه هائیست که در حمام به اینترنت متصل می شوند واگر هنگام مسواک زدن به آیینه ها نگاه کنید، از آخرین اخبار مطلع می شوید. از این رو سرعت و کیفیت بهره گیری از این دنیای مجازی روز به روز از اهمیت بیشتری برخوردار می شود و همین نیاز است که فردای وب را خواهد ساخت.
اما آینده ی وب را تحت عنوان وب 3 معرفی می کنند. این نوع جدید از وب که درحال ورود به دنیای مجازیست، وب هوشمند یا وب مفهومی نیز خوانده می شود.
1-5 تشریح وب 1 و دستاوردهای آنوب با تاریخ 20 ساله ی خود در میان یکی از مهم ترین و موثرترین فناوری های قرن 21 ام قرار دارد و درواقع مجموعه ای بسیار پیچیده از انواع منابع اطلاعاتی است که به وسیله ی افراد متفاوت تولید می شود و توسط کاربران مختلف مورد جستجو قرار می گیرد.
وب یا تور جهان گستر یکی از مهم ترین و کاربردی ترین ابزار و خدمات موجود در اینترنت می باشد، وب مانند دیگر خدمات شبکه ای بر اساس معماری سرویس دهنده/سرویس گیرنده است و از طریق آن می توان به گستره ی وسیعی از منابع اینترنتی دسترسی پیدا کرد.
وب در ابتدا یک سری صفحه های ایستا بود که بینشان چیزی به نام پیوند وجود داشت که قابلیت انتقال از یک صفحه به صفحه ی دیگر را فراهم می کرد. بعد از مدتی، صفحه های پویا این بحث را کامل کردند و بعد پایگاه های داده، کوکی ها و اطلاعات شخصی، نمونه های نوین تری از فناوری وب 1 بودند.
بنابراین وب براساس نظام فرارسانه ای کار می کند، فرارسانه ترکیبی از فرامتن و چندرسانه ای است. فرامتن عبارت از متنی است که از سایر متون در صفحه ی وب متمایز شده است و به منابع اطلاعاتی یا صفحات دیگر که توسط کاربر قابل دسترسی می باشد اشاره می کند، یعنی اگر کاربر بخواهد به صفحات دیگر دسترسی پیدا کند کافیست توسط اشاره گر ماوس خود بر روی متن متمایز شده کلیک کند تا صفحات دیگر وب برای وی قابل دسترس شوند. چندرسانه ای نیز ترکیبی از رسانه های مختلف مانند صدا، تصویر، فیلم، تصاویر متحرک و متن می باشد. این ترکیب ممکن است برای جذابیت و رساندن مفهوم منابع اطلاعاتی در صفحات وب به کار رفته باشد]5][6[.
1-6 تشریح وب 2 و دستاوردهای آنبا افزایش کاربردهای وب، طراحان وب روش های جدیدی را در ایجاد وب سایت ها به کار بستند که باعث راحت تر شدن دسترسی به داده ها برای کاربر و مشارکت کاربر در ایجاد داده ها می شود. نمونه ی بسیار روشنی از این سایت ها ویکی پدیا است که توسط کاربرانش گسترش پیدا می کند و مدیران این سایت فقط محیطی را برای استفاده از توانایی های کاربران فراهم می کنند.
مفهوم وب 2 اولین بار در یک همایش توسط معاون موسسه ی اوریلیمطرح شد. آن ها به دنبال نسل جدیدی از وب بودند که بتواند جذاب، کاربردی و قابل گسترش باشد. این گونه بود که کنفرانس وب 2 شکل گرفت و بحث های زیادی پیرامون این پدیده مطرح شد. امروزه جستجوی این عبارت در گوگل بیش از 10 میلیون نتیجه را برمی گرداند.
طراحی و معماری وب 2 بر پایه ی مشارکت ها، همکاری ها و تعاملات انسان ها، ماشین ها، نرم افزار و عامل های هوشمند با یکدیگر استوار است.
وب 1 بسیار محدودتر و ساده تر بود و تنها تعدادی نسبتا اندک از موسسات گوناگون، دانشگاه ها، مراکز تبلیغاتی و غیره به ایجاد مطلب و محتوا بر روی آن مبادرت می نمودند. این در حالی بود که کاربران در وب 1 تنها امکان دسترسی به اطلاعات موجود و استفاده از آن ها را داشتند و نه توان ایجاد و یا تغییر را. در وب 2 کاربران قادرند خود به ایجاد و خلق محتوا اقدام نمایند، آن را ساماندهی و تنظیم کنند، دیگران را در اطلاعات و داشته های خود شریک و سهیم سازند و یا به انتقاد و تغییر بپردازند.
1-6-1 مشخصه های مهم وب 2 کسانی که درمورد وب 2 صحبت می کنند، مباحث مختلفی را پیش می کشند. برخی مایلند جنبه های تکنیکی آن را برای مخاطبانی همچون برنامه نویسان و طراحان وب تشریح کنند، بعضی نیز به کاربردهای تجاری آن نظر دارند، اما در اینجا به آن دسته از ویژگی های جدید وب که با نگرش سیستمی سازگاری بیشتری دارد اشاره می شود.
وب مردمی تر: وب واقعا همگانی تر شده است. مهم ترین تبلور این ویژگی را باید در این واقعیت جستجو کرد که مصرف کنندگان اطلاعات اکنون خود تولیدکننده اند. سایت کتابفروشی آمازون که به کاربران اجازه می دهد، نقد خود درباره ی محتوای یک کتاب را پای صفحه ی مخصوص همان کتاب درج کنند، یک مثال مشهور در این زمینه است. تقریبا اکثر کسانی که برای خرید کتاب به آمازون مراجعه می کنند، متوجه می شوند که اظهارنظر خوانندگان یک کتاب به مراتب از اطلاعات رسمی آمازون درباره ی آن کتاب، جالب تر است.
ساز و کار خودترمیمی محتوا: ساز و کار خودترمیمی محتوای وب را می توان به دو صورت مشاهده کرد: یکی با واسطه و دیگری بی واسطه. در ساز و کار با واسطه، خوانندگان و مصرف کنندگان یک محتوای اطلاعاتی (مثلا بازدیدکنندگان یک سایت خبری و یا آموزشی) با درج کامنتو اظهارنظر، اطلاعاتی که ناشر ارائه داده است را نقد می کنند، چیزهایی به آن می افزایند، ایرادهایی از آن می گیرند و یا برای اصلاحش پیشنهادهایی می دهند. خودترمیمی بی واسطه، یک پدیده ی کاملا جدید در وب 2 است، ویکی و مشتقات آن تبلور همین ساز و کار است. در این شیوه مردم امکان می یابند مستقیما یک محتوای اطلاعاتی را ویرایش کنند.
جهش در معنای آموزش: وب 2 را می توانید در قالب تحولات مفهوم آموزش نیز ببینید. مهم ترین ویژگی وب 2 در این مورد، غیرتجاری کردن دانش از طریق به کارگیری رهیافت توسعه باز است. در این شیوه، مردم می توانند در فرآیند توسعه یک مقوله علمی یا فنی آزادانه مشارکت داشته باشند و به طور رایگان از حاصل آن استفاده کنند. این در حقیقت سطح متعالی تری از آموزش است. آموزش به وسیله ی موتورهای جستجو جنبه ی دیگری از تحول در معنای آموزش در فضای سایبر را نشان می دهد. موتورهای جستجو را از این نظر می توان به آموزگارانی تشبیه کرد که جواب هر سوالی را می دانند، اما کیفیت پاسخ هایشان بستگی به کیفیت پرسش های پرسشگر دارد.
پویایی داده ها: پدیده ی وب را از زوایای مختلفی می توان بررسی کرد. وب یک شبکه اطلاعاتی است. یک فناوری است. یک رسانه نیز هست. اما اگر آن را به عنوان مهم ترین تبلور فضای سایبر درنظر بگیرید، آن گاه می توان وب را به سیستمی تشبیه کرد که حیات دارد، زنده است، راکد نمی ماند، پی در پی تغییر می کند و نو می شود. یکی از مفاهیمی که وب 2 سعی در توضیح و تبیین آن دارد، همین کارکرد دوگانه ای است که برخی از اطلاعات در شبکه ی اینترنت دارند. گونه ای از این اطلاعات را مردم پدید آورده اند و در یک روند تعاملی بسیار پویا و پیچیده مرتبا به آن می افزایند.
مفهومی به نام سرویس: وب 2 متضمن پاره ای از مفاهیم کلیدی نیز هست. واژه ی خدمت یا سرویس نمونه ای از این مفاهیم است. وب جدید به گونه ای است که مفهوم سرویس به یکی از ارکان کسب و کارهای آنلاین تبدیل شده است. این مفهوم هم دربرگیرنده ی معنای لغوی آن، یعنی خدمت رسانی، و هم دربرگیرنده ی معنای تازه و مدرن آن است که نشان می دهد یک فرآیند اطلاعاتی (مثلا ارسال نامه ی الکترونیکی) به جای آن که از طریق یک کحصول نرم افزاری انجام شود، می تواند به واسطه ی یک سیستم آنلاینرخ دهد. این شیوه از ارائه ی خدمات، متکی بر نظریه ای است که می گوید هر نرم افزار را می توان به صورت یک سرویس ارائه کرد. سرویس در وب 2 با یک مفهوم کلیدی دیگر نیز ارتباط نزدیک دارد و آن، معنای واژه ی توسعه است. وقتی که به تدریج سرویس های آنلاین جای بسته های نرم افزاری قابل نصب را بگیرند، آن گاه ممکن است با شرایطی رو به رو شویم که در آن همواره روند توسعه، اصلاح و تکمیل نرم افزار در معرض دید مصرف کننده قرار دارد. بنابراین توسعه در عصر وب 2 یعنی تقریبا همیشه با محصولاتی سر و کار داریم که در مرحله ی آزمایشی قرار دارند.
پول سازی با قلک آنلاین: می توان به فهرست پیامدهای مردمی تر شدن وب، اقلام دیگری را نیز افزود. مثلا کسب و کارهای وب 2 به وضوح نسبت به وب 1 اهمیت بیشتری به تک تک کاربران می دهند. ایده ی ریالی کسب و کار این است که با مشتریان محدودتر ولی پولدارتر تعامل داشته باشید. بنابراین صاحبان کسب و کار تمایل زیادی دارند که به جای سر و کله زدن با صد مشتری که هرکدام فقط کمی پول خرج می کنند، با 10 یا 5 مشتری که رقم های بزرگی می پردازند، رو به رو شوند. وب 2 این نظریه را با تردید رو به رو کرده است. ظاهرا کسب و کارهای چابک و تیزهوشی مانند گوگل و ای بی توانسته اند راهی پیدا کنند که درآمد خود را به جای تکیه بر خریدهای چند هزار دلاری مشتریان بزرگ، براساس دریافت تنها چند سنت از میلیون ها مصرف کننده کم درآمد بنا کنند.
پلتفرمموبایل: یک مشخصه ی مهم دیگر نیز در فضای وب 2 قابل تشخیص است و آن نقش فزاینده ی پلتفرم موبایل و به طور کلی آن دسته از تجهیزات همراه است که قابلیت جابجایی فیزیکی اطلاعات را در اختیار کاربر قرار می دهند. با کمی تامل می توان دریافت که در عصر وب 2 دیگر حالت فیزیکی دسترسی به اطلاعات محدود به یک کامپیوتر ساکن نیست. کاربر می تواند در همه ی حالت ها، مثلا هنگامی که مشغول قدم زدن در یک پارک است، وارد فضای سایبر شود. این کاربر مثلا می تواند همان لحظه وبلاگ خود را به روز کند و یا پای یک یادداشت یا مقاله کامنت بگذارد]7][8[.
1-7 تشریح وب 3 و دستاوردهای آنبرای همه ی ما بارها و بارها اتفاق افتاده که کلمه یا عبارتی را از طریق یکی از سایت های جستجو مثل گوگل جستجو کرده اما نتایج مطابق خواست و منظور ما طبقه بندی نشده اند و درنتیجه درمقابل حجم انبوهی از اطلاعات درهم که بسیاری از آن ها کمکی به ما نمی کنند سردرگم شده ایم. مثلا موتورهای جستجوی کنونی تفاوت بین پاریس هیلتونو هیلتون این پاریسو یا اپلبه معنی میوه ی سیب و اپل به معنی شرکت قول کامپیوتری را درک نمی کنند. ساتیا نادلا (نایب رییس جستجو، پورتال و تبلیغات مایکروسافت) در این باره می گوید: یک سوم جستجوهای امروزی، جواب موردنظر کاربران را در نخستین جستجو ارائه نمی کنند و این یکی از جنبه هاییست که وب مفهومی، وب 3 و یا همان وب درحال ظهور به آن پرداخته اند.
اگر یک خط از سمت وب 1 به وب 2 بکشید و آن را ادامه دهید به جایی می رسید که احتمالا با این فناوری به آن خواهیم رسید.
درواقع پس از آنکه وب به ابزاری برای ایجاد ارتباط دوسویه بین کاربران خود تبدیل شد(وب 2)، حال در وب 3 تعامل دوسویه بین کاربران و خود وب مورد توجه قرار گرفته است. و از وب هوشمند انتظار می رود که منظور و مقصود کاربر را درک کرده و او را در راه رسیدن به هدف خود همراهی کند.
زمان و گذر آن به سمت ایجاد مفاهیم جدید و تغییرات اساسی پیش می رود. درست به همین دلیل هم هست که مفهوم جدیدی از دنیای مجازی به وجود آمده است. این مفهوم جدید را کسی جز خالق وب جهانی نمی تواند ایجاد کند. بنابراین وب 3 اولین بار توسط “تیم برنزلی” به کار برده شد تا توجه همه را به خودش جلب کند.
او برای اولین بار مفهوم وب 3 را در سال 2001 با نوشتن مقاله ای علمی به وجود آورد و در عرصه ی عمومی مطرح کرد. برنزلی عبارت “وب 3” را به عنوان مکانی که در آن ماشین ها و دستگاه ها می توانند صفحات وب را مانند انسان ها بخوانند، توصیف کرد. او حتی برای توصیف بیشتر یک آیینه ی متصل به وب را مثال زد که امکان نمایش اخبار جدید منتشر شده در وب را به کاربرانش می دهد.
مفاهیم مختلفی برای وب 3 ارائه شده است که همه به تکامل کاربرد وب و تعامل بیشتر آن از راه های متفاوت اشاره دارند. تیم برنزلی اما وب 3 را در یک عبارت “وب معنایی” تعریف کرده است.
وب معنایی که بیشتر کارشناسان برای تعریف وب 3 بر سر آن توافق دارند، در حقیقت تحول گسترده ای از وب جهانی است که در آن مفهوم وب نه تنها در زبان طبیعی ظهور پیدا می کند، بلکه در فرمی قابل درک و کامل برای تولیدکنندگان بزرگ نرم افزار دنیا ارائه می شود.
وب 3 همچنین حرکت به سمت دسترسی وسیع به اطلاعات از طریق نرم افزارهایی غیر از مرورگرهای اینترنتی و حتی به وسیله ی تکنولوژی های مربوط به هوش مصنوعی است.
درواقع وب 3 در تعبیر فرهنگ نامه های معتبر جهانی، نسل سوم خدمات وب مبتنی بر اینترنت است که بر ارائه ی اطلاعات از طریق امکانات فیزیکی ماشین ها و دستگاه ها تاکید می کند تا به این ترتیب تجربه ای خلاق و شهودی تر را برای کاربرانش به ارمغان آورد]9][10[.
1-8 تخمین آینده ی وبآینده ی وب شنیدنی است. وب، اغلب برای کسانی طراحی می شود که آن را می بینند. طبیعت اچ تی ام الو سی اس اسروی چگونگی به نظر رسیدن وب تمرکز دارد. با افزایش محبوبیت ترکیب تکنولوژی و پیشرفت در فراگیری ماشین، تاکید روی این است که نه تنها نحوه ی به نظر رسیدن یک وب سایت اهمیت دارد، بلکه چگونگی تعامل با آن نیز بسیار مهم است.
صدا یا توانایی صحبت کردن و شنیدن نظرات، ممکن است کلیدی برای تولیدات جدید توسعه ی وب باشد. روش های جدید تعامل شنیدنی و استانداردهای ای پی آی می تواند راهنمای خوبی برای تولید تکنولوژی جدید وب باشد.
پردازش صدا توانایی ترجمه کلمات گفته شده به متن است. این تکنولوزی جنبه ی جدیدی نیست و قدمت 60 ساله دارد. در سال 1954، آزمایش جورج تاون- آی بی ام نمایشی از اولین برنامه ی ترجمه ی مبتنی بر ماشین است. این نمایشی بود که توسط دانشگاه جورج تاون و آی بی ام توسعه یافت و با موفقیت توانست به وسیله ی تکنولوژی مقدماتی محاسبات، بیش از 60 جمله ی روسی را به انگلیسی به صورت خودکار ترجمه کند. این سیستم در ابتدا فقط 6 قانون گرامری و 250 آیتم در لغت نامه ی خود داشت که همه ی آن ها به وسیله ی دست نوشته شده بودند. اما این سیستم پتانسیل خود را برای تعامل بیشتر با تکنولوژی اثبات کرد و محققان نیز ادعا کردند که طی 3 تا 5 سال آینده، فراگیری ماشین یک مشکل حل شده خواهد شد. اما متاسفانه 30 سال طول کشید تا این مساله به حقیقت بپیوندد.
پیشرفت بزرگ دیگر در دهه ی 1980 بود، که الگوریتم های فراگیری ماشین برای پردازش زبان معرفی شدند. این الگوریتم های ساده برای اولین بار در تکنولوژی پردازش گفتار ساخته شدند.
رهبری این جریان برعهده ی کنسرسیوم تار جهان گستراست، جامعه ای که استانداردهایی را برای رشد وب توسعه می دهد. یکی از گروه های استانداردهای اخیر، مشخصه ی ای پی آی گفتار وباست که با هدف “قادر ساختن توسعه دهندگان وب برای فراهم کردن زمینه ای در مرورگرهای وب برای داشتن ویژگی ورودی گفتار و خروجی متن در حالیکه هنگام استفاده از نرم افزارهای استاندارد تشخیص گفتار یا خواندن صفحه این ویژگی دردسترس نباشد. خود ای پی آی متضمن پردازش گفتار و پیاده سازی ترکیب می باشد و می تواند ترکیب و تشخیص را هم در سمت سرور و هم در سمت کلاینت پشتیبانی کند. همچنین برای ورودی های گفتار کوتاه و گفتار پیوسته نیز طراحی شده است.”
به عبارت ساده تر، این ای پی آی ها به توسعه دهندگان وب اجازه می دهند تا این قابلیت را برای کاربران وب اضافه کنند تا بتوانند با یک صفحه ی وب صحبت کنند و همچنین از آن پاسخ و نتیجه را دریافت کنند. اگر از حالا گوگل یا اپل سیری استفاده کنید، حتما این قابلیت را خواهید دید. البته گوگل اخیرا این ویژگی را برای کاربران مرورگر کروم خود روی صفحه ی خانه ی خود پیاده سازی کرده است. همچنین گوگل ای پی آی گفتار وب را روی مرورگر کروم خود پیاده سازی کرده است تا به هرکسی اجازه بدهد که به آسانی یک صفحه ی وب فعال با گفتار بسازد.
کورزویلکه نام یکی از شرکت های مربوط به گوگل است، آینده ای را متصور است که کامپیوترها توانایی نوشتن و فهم محتوای معنایی زبان را پیدا کنند. آینده ای که در آن کامپیوترها قبل از اینکه شما سوال کنید جوابتان را می دانند و علت آن این است که آن ها هر ایمیلی که شما خواهید نوشت، هر داکیومنتی، هرچیزی که از روی بیکاری داخل فیلد ماشین های جستجو وارد کنید، هر دارویی برای بیماری و … را خواهند خواند. آن ها شما را بهتر از خودتان خواهند شناخت. و اگر شما نیز با نظر کورزویل موافق هستید، راه شروع آن توانایی تعامل با کامپیوترها به شیوه ی طبیعی و از طریق صدا است]11 [.
1-9 بیان مساله و سوالات تحقیقدر وب سایت های تجاری سرعت اجرا و پاسخ سیستم ها موضوعی بسیار مهم و حیاتی شده است. در مورد سیستم های تجاری مشتری به مشتری و تجارت به مشتری با توجه به حجم بالای مراجعه کنندگان و بازدید کنندگان که هریک عملیات متنوعی را نجام می دهند توان و سرعت پاسخگویی سیستم امری بسیار تاثیر گذار در رضایت مشتریان و کارآمدی سیستم تجاری است.
مثلا سایت تجاری ای بی را در نظر بگیرید، در هر لحظه هزاران مشتری به طور همزمان در حال مشاهده محتوای وب سایت، بارگذاری مطالب و تصاویر و ویدئوهای جدید، انجام پرس و جوهای پیچیده و سنگین و … هستند. سوال اصلی که مطرح است این است که چگونه می توان بالاترین سرعت اجرای چنین سایتی را فراهم نمود؟
اما سوالات کلی که در این رساله مورد بررسی قرار می گیرند به شرح زیر است:
1.روش استفاده از سیستم های بهینه سازی اجرای سمت سرور پروکسی معکوسبرای تسریع اجرای سیستم های پر ترافیک مشتری به مشتری و تجارت به مشتری چیست؟
2.چگونه می توان در یک سیستم تحت وب دارای محتوای متنوع (تصویر، متن، ویدئو،…) از یک روش ترکیبی برای افزایش کارایی و سرعت استفاده کرد؟
3.سیستم های پروکسی معکوس اصلی یعنی انجین ایکس و وارنیشکدام یک برای استفاده در سیستم های پرترافیک مشتری به مشتری و تجارت به مشتری مناسب تر هستند؟
1-10 ضرورت انجام تحقیق
هدف از این تحقیق ارائه یک ترکیب نرم افزاری مناسب برای افزایش سرعت اجرای سیستم های پرترافیک تجارت الکترونیک مشتری به مشتری و تجارت به مشتری است.
چنین سیستم هایی پیکره اصلی تجارت الکترونیک را تشکیل می دهند و کارآمدی سرعت آن ها موضوعی ضروری در اجرای موفق تجارت الکترونیک است.
برای بیان موضوع فوق و تبیین اهمیت سرعت اجرای برنامه تجاری تحت وب میتوان مسئله طور دیگری نیز بیان کرد که، چرا سرعت، مهم است؟
سئو: سرعت وب ‌سایت شما قطعا یکی از عوامل مهم برای سئو است.
بازدیدکنندگان: مخاطبان وب‌ سایت شما از سرعت پایین باز شدن وب سایت‌ ها متنفر هستند.
رتبه بندی گوگل: گوگل هم برای سایت‌های کند امتیاز اولویت نمایش در نایج جستجو را پایین در نظر می گیرد که به نوبه ی خود باعث می شود سیستم تجاری در رسیدن به اهداف خود و جذب و جلب و رضایت مشتریان ناموفق باشد.
1-11 ساختار پژوهشدر این رساله برای بررسی و مقایسه ی روش های تسریع در وب در سیستم های پر ترافیک تجارت به مشتری و مشتری به مشتری، پنچ فصل زیر تدوین شده است:
در فصل اول کلیات پژوهش شامل تعریف مساله، کاربردها و موضوعات مقدماتی و کلی موضوع تحقیق بیان شده و پس از تعریف مساله و بیان سوال های تحقیق، ضرورت انجام تحقیق اشاره می شود.
در فصل دوم مروری بر ادبیات تحقیق انجام شده و تعاریف وب سرور و انواع آن آورده می شود. دو نمونه از وب سرورهای مهم لینوکس به طور کامل تشریح می شوند و نرم افزار تسریع سروری به نام وارنیش تعریف می شود. نرم افزارهای مبتنی بر وب و مختصری از معماری شان شرح داده می شود. و در نهایت درمورد اینکه همه ی افراد برای کار با سرورها و تسریع آن ها اشتباه می کنند بحث می شود.
در فصل سوم به بیان روش تحقیق پرداخته و طریقه ی نصب تمامی وب سرورها و سیستم های مدیریت محتوا به طور کامل و با جزییات توضیح داده می شوند.
در فصل چهارم پیاده سازی وب سرورها و تست آن ها برای ایجاد جداول و نمودارها برای مقایسه ی نتایج به صورت کامل شرح داده می شوند.
در نهایت در فصل پنجم نتایج تحقیق و کارهای آینده آورده می شود.

1-12 خلاصه ی فصلدر این فصل، درمورد آشنایی با تکنولوژی وب و تاریخچه ی آن توضیح داده شد و بعد از آن انواع مدل های وب تعریف و سپس به صورت کامل درمورد ویژگی ها و دستاوردهایشان شرح داده شد. تخمینی از آینده ی وب و گمان ما درمورد تکنولوژی هایی که در آینده برای وب پیش خواهد آمد توضیح داده شد. سپس به بیان عنوان و هدف این تحقیق پرداخته شد و مشخص شد که سوالات اصلی در این پژوهش کدامند. در نهایت پس از شرح ضرورت انجام این تحقیق، ساختار پژوهش مشخص گردید.

فصل دوم:
ادبیات تحقیق
2-1 مقدمهوب سرورهای زیادی با ویژگی ها و قابلیت های متفاوت وجود دارند اما در بین آن ها دو وب سرور از اهمیت بیش تری برخوردارند. این درجه از اهمیت هم می تواند به درصد استفاده از این وب سرورها در سراسر جهان برگردد که نسبت به باقی سرورها اختلاف قابل توجهی دارند. این دو وب سرور تحت سیستم عامل لینوکس فعالیت می کنند. آپاچی اچ تی تی پی سرور و انجین ایکس دو سرور مذکور هستند که در این فصل به صورت کامل درموردشان بحث خواهیم کرد. در این میان به معرفی یک تسریع دهنده ی قدرتمند به نام وارنیش می پردازیم و کارایی و عملکرد فوق العاده ی آن را توضیح می دهیم.
اکنون به وسیله دو شکل زیر به صورت جزیی نحوه ی عملکرد وارنیش را شرح می دهیم. شکل 2-1 سرور آپاچی را بدون حضور تسریع دهنده ی وارنیش نشان می دهد. در این حالت آپاچی به صورت نظیر به نظیر با پی اچ پی در ارتباط دو طرفه است و پی اچ پی نیز داده و اطلاعات را از مای اس کیو ال می گیرد و به آن اطلاعات می دهد و در کل با هم در ارتباط دوطرفه هستند. سرعت بارگذاری وب سایتی با این سرور نیز بالای تصویر با علامت کورنومتر مشخص است که زمان زیادی است و بازه ی قرمز رنگ را نشان می دهد.

شکل 2-1 سرور آپاچی بدون وارنیششکل 2-2 سرور آپاچی را به همراه تسریع دهنده ی وارنیش نشان می دهد. همانطور که ملاحظه می کنید وارنیش با یک حافظه ی کش در ارتباط است. درخواست ها ابتدا به وارنیش می رود و سپس وارنیش آن ها را با حافظه ی کش رد و بدل می کند، به عبارت دیگر مقداری از درخواست ها و حتی پاسخ درخواست ها را کش می کند تا در مواقعی که درخواست های مکرر یکسان داریم بدون مراجعه به سرور اصلی پاسخ توسط وارنیش داده شود. وارنیش با آپاچی رابطه ی دوسویه دارد، آپاچی هم به وسیله ی یک ارتباط دو طرفه به پی اچ پی متصل است و پی اچ پی هم با مای اس کیو ال که منبع داده و اطلاعات است رابطه ی دوطرفه برقرار می کند. درمورد سرعت وب سایتی با این سرور ترکیبی نیز مشاهده می کنید که چقدر تفاوت زمان با مورد قبلی(بدون وارنیش) وجود دارد و پیکان کرنومتر بازه ی سبز را نشان می دهد که سرعت بهینه است.

شکل 2-2 سرور آپاچی به همراه وارنیشدر ادامه ی فصل با مفاهیم سرورها و انواع آن و دو نوع سرور با اهمیت آپاچی و انجین ایکس بحث می شود. سپس توضیح مفصلی درمورد وارنیش، ویژگی ها، کارایی و معماری آن داده می شود و در نهایت به صورت مختصر به نرم افزارهای مبتنی بر وب پرداخته می شود]15 [.
2-2 تعریف وب سرورکارساز وب، سرور وب یا وب سرور سیستمی است که وظیفه آن، پاسخ به درخواست های مرورگرهای وب و ارسال صفحات وب به کاربران می باشد. صفحات وب بر پایه ی یک ساختار مشخص و با یک نام یگانه بر روی سرور وب قرار می‌گیرند. امکان قرار گرفتن صفحات متعدد، با ساختارهای جداگانه بر روی یک سرور وب وجود دارد. کاربران با استفاده از مرورگرهای وب درخواست خود را برای دریافت یک صفحه ی وب، به سرور وب ارسال می کنند و وب سرور نیز با ارسال صفحه وب مورد تقاضا یا پیغام خطایی مبنی بر عدم امکان اجرای درخواست، به کاربر پاسخ می دهد.
در واقع وب سرور به دو معنی است:
1.یک برنامه کامپیوتری است که به عنوان سرویس بر روی یک رایانه اجرا می شود و درخواست های کاربران را برای دریافت صفحات وب اجرا می کند. هنگامی که شما آدرس صفحه ای را در مرورگر خود وارد می کنید، مرورگر با استفاده از سرویس دی ان اس، آدرس آی پیمربوط به سایت را به دست می آورد و با استفاده از آن درخواست دریافت صفحه ی وب را به آدرس آی پی به دست آمده ارسال می کند. درخواست های کاربران با استفاده از پروتکل اچ تی تی پی به سرور وب ارسال می شوند و پاسخ آن ها که یک صفحه ی اچ تی ام ال است به کاربر  ارسال می شود.
2.یک کامپیوتراست که یک برنامه ی کامیپوتری را اجرا می‌کند و کارایی اش همانند مطالبی است که دربالا گفته شد.
هر کامپیوتری می‌تواند با نصب نرم‌افزار وب‌سرور، به سرور وب تبدیل شود.
در عمل بسیاری از سرورهای وب، ویژگی‌های زیر را نیز پیاده‌سازی می‌کنند:
شناسایی: درخواست شناسایی اختیاری قبل از اجازه دسترسی به انواع منابع
نه تنها مفاهیم استاتیک (مفاهیم فایلی که بر روی سیستم فایلی وجود دارد) بلکه مفاهیم داینامیک را با یک یا چند ساختار نیز مانند سی جی آی، اس اس آی، ای اس پی دات نت، ای اس پی،پی اچ پی، جی اس پی، فست سی جی آیو اس سی جی آی اداره می‌کند.
پشتیبانی از اچ تی تی پی اس تا به کاربران اجازه دهد اتصالات مطمئنی به سرور را بر روی پورت 443 به جای 80 برقرار کنند.
فشرده سازی مطالب تا بتوان از حجم پاسخ ها کم کرد. (توسط کد سازی جی زیپ)
پشتیبانی از فایل های بزرگ تا بتواند فایل های بزرگ‌تر از 2 گیگا بایت را سرویس دهی کند.
کنترل کردن پهنای باند: تا سرعت پاسخ ها را محدود کند و شبکه را پر ازدحام نکند و قادر باشد تعداد بیشتری کارخواه را سرویس دهی کند]16 [.
2-2 انواع وب سرورهاهمانطور که در شکل 2-3 مشاهده می کنید انواع مختلفی از وب سرورها موجود است که در شکل با جزییات کامل درمورد توسعه دهنده، لایسنس، آخرین نسخه و آخرین زمان انتشار نوشته شده است. شکل 2-4 به مقایسه ی قابلیت های همه ی سرورهای نام برده شده می پردازد و شکل 2-5 نیز درمورد سیستم عامل های پشتیبانی شده توسط این وب سرورها توضیح می دهد. آپاچی اچ تی تی پی سرور و انجین ایکس دو نمونه از مهم ترین سرورهای تحت لینوکس هستند که در این بخش شرح مفصلی از هرکدام را می بینید.

شکل 2-3 معرفی همه ی وب سرورهای موجود
شکل 2-4 ویژگی های وب سرورهای موجود
شکل 2-5 سیستم عامل های پشتیبانی شده توسط وب سرورهای موجود2-2-1 وب سرور آپاچی اچ تی تی پی سروراین سرور وب در توسعه و همگانی شدن وب جهانی نقش بسیار مهمی داشته‌است. این سرور وب که به زبان سینوشته شده‌است، از زبان های پرلو پی اچ پی پشتیبانی می کند و دارای قابلیت کراس- پلتفرم بوده و بر روی ماشین‌های مختلف قابل اجرا می باشد. یک برنامه ی کد باز آزاداست که با سرورهای وب برای اداره کردن درخواست ها و تقاضاهای وب و منابع به کار می رود. دلیل انتخاب این اسم برای این سرور وب را نیز دو مورد ذکر کرده‌اند اول اینکه به یکی از قبایل قدیمی بومی آمریکا که به خاطر مقاومت و مهارت در ساخت ابزار آلات جنگی مشهور میباشند احترام گذاشته شود و ثانیاً به این دلیل که ریشه ی پروژه به صورت یک سری پچمی باشد. این سرور وب در یک گروه و به صورت کد باز گسترش یافت و از سال 1996 به عنوان محبوب‌ترین سرور وب برای اچ تی تی پی در وب جهانی شناخته شده بود ولی در سال 2005 میدان مبارزه را به آی آی اسمایکروسافت باخت و در حال حاضر نزدیک به 49 % بازار سرورهای وب جهان را به خود اختصاص داده‌است همچنین سیستم عامل مک آن را به عنوان سرور وب اصلی در پشتیبانی از اشیای وب خود برگزیده‌است. این سرور وب آپاچی برای میزبانی هر دو نوع وب ایستا و وب پویا مناسب است.
آپاچی اچ تی تی پی سرور روی سیستم عامل یونیکس مانند لینوکس یا بی اس دی اجرا می شود. همچنین می تواند روی ویندوز مایکروسافت و دیگر سیستم عامل ها یا پلتفرم ها اجرا شود. یک سرور با خصوصیات منحصر به فرد با افزونه های قدرتمند که به صورت مجانی در دسترس هستند.
آپاچی دارای امکانات ویژه می باشد که متداول ترین استفاده از ویژگی های این برنامه دات اچ تی اکسس است که طراحان حرفه ای در محیط لینوکس از آن بهره می گیرند. برای نمونه زمانی که بخواهند اولین صفحه در سایت به خصوصی باشد با یک دستور در آن پرونده این امر ممکن می گردد و یا زمانی که صاحب سایت مایل نیست که فایل های موجود در سرور وی توسط دیگران دزدیده شود و بخواهد که مانع از پیوند مستقیم آن ها شود آپاچی کمک می کند تا به خواستشان برسند. زمانی که برنامه نویس بخواهد که محل واقعی صفحات دیده نشود نیز این برنامه مورد استفاده قرار می گیرد]17 [.
2-2-2 وب سرور انجین ایکسانجین ایکس یک سرور متن باز پراکسی معکوس برای پروتکل های اچ تی تی پی، اچ تی تی پی اس، اس ام تی پی، پاپ3 و آی مپ است که به خوبی به عنوان متعادل کننده ی بارگذاری، کش اچ تی تی پی و یک وب سرور عمل می کند. پروژه ی انجین ایکس با هدف افزایش کارایی، همزمانی بالا و مصرف حافظه ی کم شروع به کار کرد.
بزرگ ترین مشکل وب سرور معروف آپاچی محدودیت کانکشن همزمان 10000 تایی و همچنین میزان مصرف بالای حافظه است. و این مشکل باعث شده است که با آمدن انجین ایکس محبوبیت آپاچی کاهش پیدا کند. این وب سرور رایگان است، حجم پایین و کارایی بسیار بالایی دارد و تحت لیسانس بی اس دی منتشر می شود. یکی از بزرگ ترین مزیت های این وب سرور، پشتیبانی بسیار عالی از فایل های استاتیک است.
انجین ایکس سرعت پاسخگویی بسیار بالایی دارد و در بازدیدهای بسیار بالا واقعا عالی عمل می کند. ازجمله قابلیت های انجین ایکس سازگاری این وب سرور با اکثر توزیع های لینوکس هست. زمانی که بخواهید نسخه ی انجین ایکس را ارتقا بدهید، به صورت در پرواز این کار را انجام می دهد و این درمورد پروژه هایی که سایت نباید زمان توقفداشته باشد خیلی اهمیت دارد.
انجین ایکس برای مدیریت درخواست ها یا همان کانکشن ها از روش منحصر به خودش استفاده می کند. در این سرور برای هر درخواست یک نخجدید درست می شود و این در حالی است که سیستمی که حتی مخزن نخ دارد هم نخ را تا زمانی حفظ می کند که در آن لحظه درخواست جدید بیاید و انجین ایکس از نخ های بیکار استفاده می کند. این روش استفاده از نخ ها در انجین ایکس بسیار کارآمد است. به طور کلی مدیریت باز و بسته شدن نخ ها در وب سرور هایی مثل آپاچی باعث شده که این وب سرور در کانکشن های بالا، در هندل کردن این بازدیدها به قول معروف کم بیاورد.
انجین ایکس علاوه بر این که یک وب سرور است، به درخواست های پروکسی معکوس و ایمیل پروکسی (آی مپ/پاپ3) ها هم پاسخ می دهد]18 [.
2-3 شتاب دهنده ای به نام وارنیشوارنیش یک شتاب دهنده ی اچ تی تی پی است که برای وب سایت های داینامیک با محتوای سنگین طراحی شده است. برخلاف تسریع دهنده های وب دیگر نظیر اسکویید که به عنوان کش سمت کلاینت عمل می کند، یا آپاچی و انجین ایکس که سرورهای مقدماتی هستند، وارنیش به عنوان یک شتاب دهنده ی اچ تی تی پی طراحی شده است. برخلاف دیگر سرورهای پروکسی که اغلب اف تی پی، اس ام تی پی و دیگر پروتکل های شبکه را پشتیبانی می کنند، وارنیش به صورت اختصاصی روی اچ تی تی پی متمرکز شده است.
وارنیش توسط تعداد زیادی از وب سایت های پر ترافیک و پر پروفایل که شامل سایت های خبرگذاری نظیر نیویورک تایمز، بی بی سی، گاواردین و سایت های محتوایی و اجتماعی نظیر ویکی پدیا، فیس بوک، توییترو غیره استفاده می شود.
2-3-1 تاریخچهپروژه توسط شعبه ی آنلاین یک روزنامه ی نروژی به نام وردنس گنگ راه اندازی شد. توسعه دهنده ی معماری و رهبر پروژه، مشاور مستقل دانمارکی به نام پل هنینگ کمپ ( توسعه دهنده ی هسته ی بی اس دی آزاد) بود و مدیریت و توسعه ی فرا ساختاری آن توسط یک کمپانی نروژی لینوکسی به نام لینپروانجام شد. مدیریت، پشتیبانی و توسعه ی وارنیش بعدها به صورت یک کمپانی جداگانه به نام نرم افزار وارنیش تغییر شکل داد.
وارنیش متن باز است و تحت لیسانس بی اس دی در دسترس می باشد. پشتیبانی تجاری توسط نرم افزار وارنیش انجام می شود. اولین نسخه ی وارنیش در سال 2006، وارنیش 2.0 در سال 2008، وارنیش 3.0 در سال 2011 و وارنیش 4.0 در سال 2014 وارد بازار شد.
2-3-2 معماریوارنیش داده را در حافظه ی مجازی ذخیره می کند و سیستم عامل را از عمل تصمیم گیری درمورد این که چه چیزی در حافظه وجود دارد و چه صفحه ای باید از دیسک خارج شود، رها می کند. فایده ی این کار است که از به وجود آمدن موقعیت هایی که سیستم عامل عمل کش کردن داده را شروع می کند درحالیکه آن داده توسط برنامه به دیسک انتقال پیدا کرده است، اجتناب می کند.
به علاوه وارنیش به شدت به نخ کشیده است، با هر ارتباط کلاینت به وسیله ی یک نخ جداگانه اداره می شود. هنگامی که حد مشخصی روی تعدادی از نخ های فعال در دسترس است، ارتباطات ورودی در صف سرریز قرار می گیرند. وقتی این صف به ارتباطات ورودی محدوده ی مشخص خودش دسترسی داشته باشد، رد خواهد کرد.
مکانیزم پیکربندی اصلی زبان پیکربندی وارنیش است، یک زبان مشخصه دامنهکه برای نوشتن تله هایی استفاده می شود که در نقاط بحرانی سازماندهی هر درخواست صدا زده می شوند. اغلب تصمیمات سیاسی که به کد وی سی ال واگذار می شوند، وارنیش را نسبت به شتاب دهنده های دیگر اچ تی تی پی منعطف تر و سازگارتر می سازد. وقتی یک اسکریپتوی سی ال بارگذاری می شود، به زبان سی ترجمه می شود، به یک شی مشترک توسط سیستم کامپایلر کامپایل می شود و سپس به صورت مستقیم به شتاب دهنده ای بارگذاری شود که می تواند بدون راه اندازی دوباره، دوباره پیکربندی شود.
تعدادی از پارامترهای زمان اجرا، کنترل کردن چیزهایی نظیر ماکسیمم و مینیمم تعداد نخ های کارکننده، تایم اوت های جدی و غیره است. یک واسط مدیریت خط فرمانها به این پارامترها اجازه می دهد که تعدیل شوند، و اسکریپت وی سی ال های جدید کامپایل شوند، بارگذاری شوند و فعال شوند، بدون راه اندازی دوباره ی شتاب دهنده.
به منظور کاهش تعداد سیستم کالها در مسیر سریع به یک مینیمم، داده ی لاگ در حافظه ی مشترک ذخیره می شود، و عمل بازبینی، فیلتر کردن، فرمت کردن و نوشتن داده ی لاگ به دیسک به برنامه ی جدا نمایندگی می دهد]31 [.
2-3-3 کاراییدرحالیکه وارنیش طراحی شد تا رقابت بین نخ ها به مینیمم کاهش یابد، ادعای نویسنده این است که کارایی آن به خوبی به کارگیری نخ پیهای سیستم است.
به علاوه، یک پیاده سازی ضعیف ممکن است یک رقابت غیرضروری اضافه کند که به موجب آن کارایی محدود شود. بنابراین پیشنهاد عمومی اجرای وارنیش روی محیط های برپایه ی لینوکس یا یونیکس است]19 [.
2-3-4 شما این کار را اشتباه انجام می دهیدفکر می کنید که در هنر کارآمدی سرور ماهر شوید؟باز هم فکر کنید.
شما باور می کنید اگر من ادعا کنم الگوریتمی که به مدت 46 سال به عنوان الگوریتم بهینه در کتاب ها بوده است و با جزییات فراوان توسط فرد نابغه ای مثل نوت آنالیز شده باشد و در تمام رشته های علوم کامپیوتر جهان تدریس شده باشد، می تواند به مقدار 10 بار سریع تر بهینه شود؟
حدود دو سال پیش من ارتباطم رو با بعضی از شرکت های خوب قطع کردم و شروع کردم به نوشتن درمورد یک تسریع دهنده اچ تی تی پی متن باز به نام وارنیش، که به صورت مقدماتی یک کش اچ تی تی پی است که جلوی وب سرورهای کند قرار می دهند. امروزه وارنیش توسط هر نوع وب سایتی اعم از فیس بوک، ویکیاو اسلش دات سایت مبهمی که مطمئنا تا به حال اسمش را نشنیده اید، استفاده می شود.
حدود 15 سال از سرپرستی کرنل بی اس دی آزاد می گذرد و اکنون من به کاربر ساده ای می مانم که دانش اندکی در مورد اتفاقات پشت سیستم کال ها دارد. یکی از مهم ترین دلایلم برای پذیرفتن پروپوزال وارنیش این بود که نشان دهم چگونه می توان یک الگوریتم سرور با کارایی بالا نوشت.
زیرا، به بیان کاملا واضح، اکثریت شما این کار را غلط انجام می دهید. نه تنها غلط به معنای ناقص بلکه به معنای اتلاف نیمی از کارایی یا حتی بیشتر.
اولین کاربر وارنیش یک روزنامه ی بزرگ نروژی به نام وی جی بود 12 ماشین درحال اجرای اسکویید خود را با 3 ماشین درحال اجرای وارنیش جایگزین کرد. ماشین های اسکویید صد در صد اشغال بودند، در حالیکه ماشین های وارنیش 90 درصد سی پی یوی آزاد برای تکان دادن دکمه های رقمی خود داشتند.
یک نسخه ی کوتاه از این داستان این است که وارنیش می داند که روی یک فلز برهنه اجرا نمی شود و تحت سیستم عاملی اجرا می شود که حافظه ی مجازی برپایه ماشین انتزاعی را فراهم می کند. برای مثال وارنیش مانع این حقیقت نمی شود که حافظه مجازی است و به صورت فعالانه از این قضیه بهره برداری می کند. 300 گیگابایت ذخیره ی پشتیبان، حافظه روی یک ماشین با کمتر از 16 گیگابایت رم نگاشت می شود که این نمونه بارزی است. کاربر برای 64 بیت فضای آدرس پول پرداخت کرده است و من برای استفاده از آن نمی ترسم.
یک تکلیف ویژه در کنار وارنیش، دور انداختن اشیا از درون کش است وقتی که مدت زندگی مجازی آن ها تمام شده است. این کار برای ساختمان داده هایی انجام می شود که می توانند کوچکترین شی کلیددار را از مجموعه کلی دریافت کنند.
یک مرور سریع از کاتالوگ پرش کارت باینری هیپ، نه تنها یک کارایی معامله از مرتبه لاگ ان را بازی می کند بلکه یک بالاسری متا داده از تنها یک اشاره گر برای هر شی دارد(اگر 10 میلیون + شی داشته باشید اهمیت زیادی دارد)
با بازخوانی با دقت، نوت تایید کرد که این انتخاب محسوسی بود و پیاده سازی جزیی بود.
در سفر اخیر با قطار شب به آمستردام، ذهنم سرگردان بود و به این فکر می کرد که نوت ممکن بود در مورد کارایی باینری هیپ گمراه کننده عمل کرده باشد، حتی به وسیله ی رتبه بزرگی. در مسیر خانه و همچنین درون قطار، شبیه سازی ای را نوشتم که ظن صحیح من را اثبات می کند.
قبل از اینکه نظریه پردازان سی اس قهوه شان در گلوشان بماند: نهراسید!
موقعیت پی به ان پی تغییر پیدا می کند، و من یک جریان سیستماتیک را در کیفیت دلایل نوت نیافتم. یافته های سی اس همانطور که آن را می شناسیم هنوز صحیح است. آن ها تنها مقدار کمی نامرتبط تر و غیرمفیدتر از آن چیزی هستند که فکر می کنید، حداقل با توجه به کارآمدی.
قدیمی ترین منابع برای باینری هیپ که تعیین کرده ام، متن کامپیوتر است، مقاله ی جی.دبلیو.جی.ویلیامزاست که در ژوئن 1964 با موضوع ارتباطات ای سی امو عنوان الگوریتم هیپ سورت-232 تالیف شده است. مشکل اینجاست که ویلیامز هم اکنون در دسترس نیست و تحلیل الگوریتمی آن نیز حتی قبل از تالیف منسوخ بود.
در مقاله ای در آوریل 1961 از سی ای سی ام، فادرینگام نوشته بود که چگونه کامپیوتر اطلسدر دانشگاه منچستر مفهوم یک آدرس را از موقعیت حافظه جدا کرده است، چیزی که برای تمام اهداف تمرینی اختراع وی امرا نشان کرده است. این دقیقا زمانی قبل از اتفاق افتادن حافظه مجازی اتفاق افتاد، اما امروزه تمام اهداف عمومی اغلب درون کار تعبیه شده اند و بسیاری از سیستم عامل های خاص برای ارائه دادن مدل ماشین مجازی استاندارد شده از وی ام استفاده می کنند.
مقصر دانستن ویلیامز به علت متوجه نشدن اینکه اطلس یکی از گمان های فرضی الگوریتمش را باطل کرده است، کار بسیار غیرمنصفانه و غیر مستدلی است: تنها ادراک مشاهدات را ممکن می سازد. حقیقت این است که 46 سال بعد اغلب متخصصان سی اس هنوز حافظه مجازی را به عنوان یک امر عادی درنظر نمی گیرند. این برای سی اس منظم و حرفه ای مایه خجالت است، بدون توجه به اتلاف مقدار زیادی از سخت افزار و ابزار الکتریکی.
شبیه سازی کارایی: اجازه دهید که یک سری حقایق شبیه سازی شده را روی جدول به شما نشان دهم. نمودار شکل 2-6 زمان اجرای باینری هیپ و نسخه ی جدید بی هیپرا برای یک میلیون آیتم روی یک ماشین 64 بیتی نشان می دهد.

شکل 2-6 زمان اجرای باینری هیپ و بی هیپمحور افقی فشار وی ام است، در مقدار فضای آدرسی که در حافظه ی ابتدایی مستقر نیست اندازه گیری می شود، چون کرنل آن را درون حافظه ی ثانویه صفحه بندی می کند. محور عمودی سمت چپ مقدار اجرا در ثانیه را نشان می دهد(مقیاس لوگاریتم)، و محور عمودی سمت راست نرخ دو زمان اجرا را نشان می دهد(باینری هیپ و بی هیپ).
بیایید مرتبه ی بزرگی را به دست آوریم. وقتی روی قسمت چپ زوم می کنیم(شکل 2-7)، می بینیم که درواقع وجود دارد یک فاکتور 10 تفاوتی در زمان دو الگوریتم وقتی که اجرا می شود تحت مجموع فشار وی ام : فقط 8 تا 10 صفحه از 1954 صفحه ی اختصاص یافته شده در حافظه ی مقدماتی در همان زمان وجود دارد.

شکل 2-7 مقایسه زمان اجرای بی هیپ و باینری هیپ به صورت زوم قسمت چپآیا شما چون ادعای من در مورد مرتبه ی بزرگی بر اساس تنها یک مورد نهایتا گوشه ای است گمان می کنید جعلی است؟ اگر شما اینگونه فکر می کنید اشتباه می کنید زیرا رفتار جهان حقیقی دیده شده پیرامون ما اینگونه است.
ایجاد و دور انداختن اشیا در وارنیش یک عمل مکرر است. وقتی ایجاد شد، اشیا اغلب برای هفته ها کش می شوند و نه ماه ها. بنابراین باینری هیپ ممکن است حتی یک بار در دقیقه هم به روزرسانی نشود و در بعضی سایت ها حتی یک بار در ساعت.
درضمن، گیگابایت هایی از اشیا را برای مرورگر کلاینت دریافت کردیم و تا زمانی که همه ی این اشیا برای فضا در حافظه ی مقدماتی رقابت نکردند، صفحات حافظه ی مجازی شامل باینری هیپ می باشد که از صفحات بیرون انداخته نشده است. درمورد بدتر تنها 9 صفحه ی مستقر، باینری هیپ میانگین در هر عملیات 11.5 صفحه انتقال می دهد، درحالیکه بی هیپ تنها به 1.14صفحه برای انتقال نیاز دارد. اگر سرور شما دیسک های اس اس دی (درایو حالت جامد) دارد، بین این که عملیات شما 11 میلی ثانیه طول بکشد یا 1.1 میلی ثانیه، تفاوت وجود دارد. اگر شما هنوز صفحات چرخشیدارید، بین 110 میلی ثانیه و 11 میلی ثانیه تفاوت است.
در این مسیر، آیا فکر کردن به این قضیه اشتباه است که “اگر آن تنها یک بار در دقیقه اجرا می شود، چه کسی مراقب است که یک ثانیه ی تمام طول نکشد؟”
ما این کار را انجام می دهیم، در حقیقت مراقبت به این دلیل است که 10 صفحه ی اضافی به یک بار در دقیقه تاخیر در رم نیاز دارند، برای نگه داشتن آن ها کاری انجام نمی دهیم تا زمانی که صفحات کرنل آن ها را دوباره برگردانند.
اکنون بیایید روی انتهای دیگر شکل زوم کنیم (شکل 2-8). اگر هیچ فشار حافظه مجازی وجود نداشته باشد، الگوریتم بی هیپ به مقایسه هایی بیشتر از باینری سورت نیاز داشت، و محاسبه ی ایندکس ساده ی پدر به فرزندیا فرزند به پدر مانند نوزادی است که گرفتارتر شده است: بنابراین به جای زمان اجرای 4.55 ثانیه، 5.92 ثانیه طول می کشد، به مقدار 30 درصد آهسته تر و تقریبا 350 نانو ثانیه بر عملیات آهسته تر اجرا می شود.

شکل 2-8 تاثیر فشار وی ام روی سرعت اجرای باینری هیپ و بی هیپ به صورت زومبنابراین نوت و دیگر متخصصان سی اس این مسائل را به درستی کشف کرده اند.
اگر روی نمودار به سمت چپ حرکت کنیم، می بینیم که در یک فشار حافظه مجازی از 4 صفحه ی از دست رفته (برابر 0.2 درصد)، بی هیپ سبقت می گیرد، چون تعداد کمی از صفحات حافظه مجازی دارای نقص هستند، و به تدریج بهتر و بهتر می شود تا زمانی که به نقطه ی اوج 10 بار سریع تر برسد.
بر فرض این که شما از یک دیسک اس اس دی استفاده می کنید که می تواند عملیات یک صفحه را در 1 میلی ثانیه انجام دهد(به صورت خوش بینانه)، به ویژه برای نوشتن. اگر یک دیسک مکانیکی را توسط تنظیمات زمان ورودی/خروجی شبیه سازی کنیم تا این زمان به صورت خوش بینانه به 10 میلی ثانیه برسد(شکل2-9)، سپس بی هیپ 10 درصد سریع تر است به محض این که کرنل تک صفحه ای را از 1954 صفحه ی در حال کار تنظیم می کند و 37 درصد سریع تر است وقتی که 4 صفحه از دست می رود.

شکل 2-9 مقایسه زمان اجرای باینری هیپ و بی هیپ روی دیسک مکانیکیبی هیپ چیست؟ تنها تفاوت بین بی هیپ و باینری هیپ فرمول پیدا کردن پدر از فرزند است یا بالعکس.
فرمول مرسوم 2-1 ما را به یک هیپ ساخته شده از صفحات مجازی که روی هم طوری انباشته شده اند که با هر پیمایش عمودی روی درخت به سمت بالا یا پایین به یک صفحه ی متفاوت حافظه مجازی برخورد می کند، واگذار می کند، همانطور که در شکل 2-10 مشاهده می کنید با 8 آیتم در هر صفحه این عمل انجام می شود.(اعداد نوشته شده کنار هر آیتم، اشیای اختصاص داده شده به هر آیتم است و مقدار کلید آن ها نیست)
n->{2n,2n+1} (2-1)

شکل 2-10 ساختار درخت باینری هیپبی هیپ درخت را با پر کردن صفحات به صورت عمودی می سازد، برای تطبیق مسیر مطابق شکل 2-11 درخت هیپ را پیمایش می کنیم. این ترتیب مجدد، میانگین تعداد عملیات مقایسه/معاوضه ی خواسته شده برای ثابت نگه داشتن درخت را افزایش می دهد. اما مطمئن باشید که اغلب این عملیات در کنار یک صفحه ی تنهای حافظه مجازی اتفاق می افتد و بنابراین جای پای حافظه مجازی کاهش پیدا می کند و در نتیجه صفحه ی حافظه مجازی دچار خطا می شود.

شکل 2-11 ساختار درخت بی هیپدو نکته ی جزیی قابل توجه:
یک بار ما یک صفحه ی حافظه مجازی را در پایین قرار دادیم، از نظر کارایی اهمیت دارد که هر دو گره ی فرزند در یک صفحه ی حافظه مجازی قرار بگیرند، زیرا ما قصد مقایسه ی هردوی آن ها با پدرشان را داریم.
به همین دلیل، درخت برای توسعه یافتن به منظور تولید، در زمان ورود یک صفحه ی حافظه مجازی جدید، برای استفاده ی اولین دو عنصر صفحه، شکست می خورد.
در مثال شبیه سازی شده ی ما، نقص زمانی اتفاق می افتد که 5 صفحه بیشتر درخواست شود.
اگر این برای شما بی اهمیت به نظر بیاید، اشتباه می کنید: سعی کنید خط 20 کیلوبایت در بی هیپ را در شکل های 2-7 و 2-8 به سمت راست جابجا کنید و درمورد مفاهیم فکر کنید.
پارامترهای شبیه سازی من انتخاب شده اند برای ارائه ی اینکه چه اتفاقی در زندگی واقعی وارنیش می افتد، و من نباید به توصیف و تحلیل جامع کارایی بی هیپ برای همه ی پارامترهای ممکن تلاش کنم. همچنین از وجود راه های هوشمندانه تر برای اضافه کردن راهنمای وی ام به یک باینری هیپ، جلوگیری نخواهم کرد. اما به خرید بلیط روی ریل قطارهای سیبری به منظور یافتن زمان برای حل کردن آن، متمایل نشده ام.
مرتبه ی بزرگی تفاوت، با تعدادی از سطوح هیپ، کنار هر صفحه ی حافظه مجازی آغاز می شود. بنابراین تسریع نهایی روی ماشین هایی با سایز اشاره گرهای کوچک و سایز صفحه های بزرگ خواهد بود. این یک مشاهده ی وابسته است، همانطور که هسته های سیستم عامل شروع می کنند به استفاده از صفحات بزرگ برای بالا نگه داشتن عملکرد ورودی/خروجی.
چرا همچنان ما این کار را اشتباه انجام می دهیم؟ بحث معروفی وجود دارد با عنوان “سورت سریع یا هیپ سورت” ، تمرکز روی این حقیقت که بدترین رفتار سابق وحشتناک است، درحالیکه آخری عملکرد میانگین بدتری دارد اما نه در حد “نقاط بد”. وابسته به برنامهی شما، این می تواند تفاوت بسیار مهمی باشد.
ما فاقد یک درخواست مشابه به انتخاب الگوریتم در مواجه با تاخیر دسترسی حافظه ی ناهمسان به علت حافظه ی مجازی، کش های سی پی یو، بافرهای نوشتنو دیگر حقایق سخت افزار مدرن هستیم.
در هر کتابی که آموزش برنامه نویسی را یاد گرفته اید، احتمالا در 5 صفحه ی ابتدایی آن، شکلی از کامپیوتر مشابه شکل 2-12را داشته است.

شکل 2-12 مدل کامپیوتر منسوخاین مدل، تنها مدل مفهومی استفاده شده در آموزش کامپیوتر است، علی رغم این واقعیت که هیچ چیزی برای کار با محیط اجرا روی یک کامپیوتر مدرن وجود ندارد. و فقط برای ضبط: توسط مدرن، منظور من وکس 780/11 یا بعدی است.
30 یا 40 سال گذشته از توسعه ی سیستم عامل و سخت افزار، درحاشیه روی دستورالعملی در بخش های تحلیلی الگوریتمی دپارتمان سی اس پیوند زده شده است، و طبق شاهد حدیثی من، درمجموع برای ثبت نامی که آن ها فراهم کردند شکست خورده است.
اختلاف سرعت بین انبار اولیه و ثانویه روی کامپیوتر اطلس روی مرتبه ی 1:1.000 بود. غلطک اطلس 2 میلی ثانیه برای دریافت یک سکتور زمان برد. دستورالعمل ها تقریبا 2 میکروثانیه برای اجرا زمان می برند. شما حدود 1000 دستورالعمل را برای هر نقص صفحه ی وی ام از دست داده اید.
روی یک سی پی یوی چند منظوره، اجرا می شود در فرکانس ساعت گیگاهرتز، بدترین اتلاف تقریبا 10 میلیون دستورالعمل بر نقص صفحه ی وی ام است. اگر شما در حال اجرا باشید با یک دیسک چرخشی، عدد آن بیشتر از 100 میلیون دستورالعمل است.
اگر عملیات یک الگوریتم مرتبه اجرای لاگ ان، باعث نقص صفحه شود یا عملیات دیسک را آهسته کند، چقد خوب است؟ برای اغلب مجموعه داده های وابسته، روی الگوریتم مرتبه ی ان یا حتی مرتبه ی ان دو، که از نقص صفحه اجتناب می کند، دایره هایی دور آن اجرا خواهد شد.
تحلیل عملکرد الگوریتم ها، یک موفقیت بزرگ برای همیشه در علم کامپیوتر خواهد بود]20[.
2-4 نرم افزارهای مبتنی بر وببرای مشخص نمودن برنامه هائی با قابليت اجراء بر روی وب، از واژه های متعددی استفاده می گردد:
نرم افزارهای تحت وب
نرم افزارهای وب 2
نرم افزارهای مبتنی بر وب
نمونه هائی در اين زمينه می باشند. واژه های تحت وب و نرم افزارهای وب ۲ در برخی موارد بجای يکديگر استفاده شده تا برنامه های نوشته شده برای اجراء بر روی وب ، شبکه های مبتنی بر اينترنت نظير اينترانت ها را تشريح و مشخص نمايند. به هر يک از برنامه های فوق ، می توان از طريق يک مرورگر دستيابی پيدا کرد. اين نوع برنامه ها در موارد متعددی با يکديگر متفاوت می باشند.طراحی برنامه های تحت وب ( مبتنی بر وب ) ، بگونه ای است که قابليت اجراء بر روی اينترنت و وب را داشته باشند، در مقابل برنامه های نرم افزارهای وب ۲ ، دارای يک اينترفيس مبتی بر وب بمنظور استفاده از قابليت های نرم افرارهای موجود ( نرم افزارهای سنتی ) می باشند.نرم افزارهای فوق قبل از مطرح شدن وب ايجاد شده و با طراحی يک اينترفيس مبتنی بر وب می توان از امکانات آنها در صفحات وب نيز استفاده نمود. مثلا” می توان با طراحی يک فرم لازم ، اطلاعاتی را از کاربران اخذ و با مراجعه به بانک های اطلاعاتی موجود ، اطلاعات مورد نظر را استخراج و نتايج را با يک فرمت مناسب برای مرورگر ارسال کرد. بهرحال برنامه های مبتنی بر وب، از آغاز با رويکرد وب ، طراحی و پياده سازی شده در صورتيکه برنامه های نرم افزارهای وب ۲، از نرم افزارهای موجود به کمک يک اينترفيس مبتی بر وب استفاده می نمايند.
برنامه های تحت وب ، دارای امکانات و قابليت های متعددی بوده که بمنظور استفاده در وب طراحی و پياده سازی شده اند. برنامه های نرم افزارهای وب ۲ ، دارای يک دریچه اتصال مجزا تحت وب بوده که امکان ارتباط با نرم افزارهای قديمی را فراهم می آورد. دریچه اتصال موجود امکان استفاده از تمام قابليت های نرم افزارهای وجود را فراهم نخواهد کرد و صرفا” پاسخگو به بخش محدودی از انتظارات خواهند بود. بديهی است بخش هائی از نرم افزارهای موجود ( سنتی ) می بايست با رويکرد وب بازنويسی شده تا امکان ارتباط آنان با دریچه اتصال فراهم گردد. برنامه های موجود بر روی برخی از سايت ها نظير : خريد کالا ، کتاب ، رزو بليط هواپيما ، ارسال و دريافت نامه ی الکترونيکی ( نظير هات میل) نمونه هائی از برنامه های مبتنی بر وب می باشند. در ادامه با برخی تعاريف برنامه های تحت وب آشنا می شويم:
یک وب سایت که قادر به انجام عملیاتی خاص نظیر فروش کالا است.
برنامه ای که بر روی وب اجرا می گردد.
برنامه ای که بر روی یک سرویس دهنده ی وب در شبکه اجرا و امکان سرویس دهی به چندین کاربر در هر لحظه را دارا است.
یک برنامه ی نرم افزاری که از پروتکل اچ تی تی پی به عنوان هسته ی پروتکل ارتباطی خود به منظور توزیع و ارائه ی اطلاعات مبتنی بر وب و با فرمت اچ تی ام ال استفاده و آنان را برای کاربران ارسال خواهد کرد.
2-4-1 معماری و وضعیت اجرای نرم افزارهای تحت وببرنامه های تحت وب (مشتمل بر اکثر سیستم های تجارت الکترونیک) دارای معماری کلی متشکل از:
سمت سرور: پایگاه داده، برنامه اجرایی، وب سرور
سمت کاربر: مرورگر، کش، کوکی و …
می باشند.
بر همین اساس اختصارا به بررسی انواع وضعیت اجرای برنامه های تحت وب می پردازیم.
وب ايستا : زمانی كه تيم. برنرز لی در سال 1990 اولين پيشنهاد خود در رابطه با وب را ارائه كرد، ايده كار بسيار ساده بود : ايجاد يك شبكه از اطلاعات متصل شده به يكديگر با استفاده از ابرمتن ها و یو آر ال ها. وب در آغاز به عنوان يك رسانه اشتراك اطلاعات مطرح گرديد تا از طريق آن دانشمندان و محققين بتوانند دانش و اطلاعات را بين خود به اشتراك گذاشته و نتايج تحقيقات را با يكديگر مبادله نمايند. ارائه دهند گان با استفاده از يك استاندارد مستند سازی، اطلاعات خود را تهيه و آنها را به مخاطبان خود ارائه می كردند. در آغاز برای استاندارد مستند سازی از ابزاری كه در آن زمان خود هنوز استاندارد نشده بود استفاده می گرديد. اچ تی ام ال، ابزاری است كه با بكارگيری مجموعه ای از تگ ها، استاندارد لازم جهت نمايش يك مستند در نرم افزارهای نمايش دهنده ( مرورگرها ) را فراهم می نمايد. نرم افزارهای نمايش دهنده، مجهز به مفسرهائی جهت تفسير تگ ها و نمايش اطلاعات موجود در مستند بر اساس تعاريف از قبل تعريف شده شدند. در آن زمان كه به سال های ابتدائی دهه 90 ميلادی برمی گردد، چيزی با نام برنامه های وب وجود نداشت و وب به عنوان رسانه ای جهت اشتراك و مبادله اطلاعات مطرح بود. تمامی تعاملات در عرصه وب محدود به درخواست يك مستند توسط سرويس گيرنده و ارسال آن توسط سرويس دهنده بود.
وب پويا با تمركز بر روی پردازش های سمت سرويس گيرنده : در ادامه، نياز به انجام برخی پردازش های اوليه مطرح گرديد. با توجه به اين كه اينترنت از يك بستر سرويس گيرنده و سرويس دهنده به منظور دريافت درخواست كاربر و پاسخ به آن استفاده می كرد، طراحان و پياده كنندگان برای تحقق پردازش ها بر روی دو گزينه متمركز شدند : انجام پردازش ها در سمت سرويس گيرنده و يا سمت سرويس دهنده. در آغاز، برای انجام پردازش ها بر روی سرويس گيرنده متمركز شدند. با اين هدف كه بتوان پردازش های مورد نياز را ( با حوزه ای كه در آن زمان تعريف شده بود )، در سمت سرويس گيرنده انجام داد. برای تحقق خواسته فوق لازم بود كه بستر و ابزارهای لازم در بطن مرورگر ها ايجاد گردد. ظهور فناورهائی نظير اچ تی ام ال- دام، جاوااسكريپت، سی اس اس و دی اچ تی ام ال از جمله مهم ترين تلاش های انجام گرفته در آن زمان برای تحقق پردازش ها در سمت سرويس گيرنده بود. برای آشنائی بيشتر با تلاش های انجام گرفته در آن زمان بد نيست مروری سريع داشته باشيم به آنچه طی ساليان گذشته در عرصه وب اتفاق افتاده است.
2-5 خلاصه فصلدر این فصل، به تعریف کلی درمورد وب سرور پرداختیم و انواع متفاوت آن را از طریق شکل نشان دادیم که با ویژگی ها و قابلیت های متفاوت سرتاسر دنیا مورد استفاده قرار می گیرند. دو نوع بارز و مهم سرورهای لینوکسی، آپاچی و انجین ایکس را توضیح دادیم. سپس به معرفی نرم افزار تسریع وب وارنیش پرداختیم و ویژگی ها، عملکرد و معماری آن را به صورت کامل شرح دادیم. درمورد اینکه اکثر افراد برای کار با سرورها و سرعت بخشیدن به آن ها اشتباه می کنند و کارشان غلط است بحث کردیم و در نهایت توضیح مختصری درمورد نرم افزارهای مبتنی بر وب و معماری آن ها دادیم.
فصل سوم:
روش تحقیق3-1 مقدمهفصل اول و دوم در حقیقت مقدمات تحقیق را بررسی کردند اما در این فصل وارد مراحل عملی کار می شویم. اولین نکته برای کار با سرورهای لینوکسی، آشنایی با محیط سیستم عامل اوبونتو(توزیعی از لینوکس که ما برای کار آن را انتخاب کردیم) و کار با دستورات خط فرمان آن است. برای آشنایی کامل با این دستورات می توان از لیست کلی دستورات خط فرمان در لینوکس کمک گرفت و با مطالعه ی آن به آرامی با محیط خط فرمان و دستورات آن آشنا شد. پس از حل مساله ی اساسی و ابتدایی آشنایی با اوبونتو، می بایست به آرامی با تک تک سرورهایی که می خواهیم روی اوبونتوی خود نصب و راه اندازی کنیم آشنا شویم. در فصل قبل به صورت تئوری با مفاهیم سرورهای مورد نظر آشنا شدیم اما برای ورود به مرحله ی پیاده سازی و نصب نیاز به تحقیقات م مطالعات بیشتری در این زمینه است.
در این فصل پس از آشنایی با لینوکس و توزیع مهم و معروف آن اوبونتو، به توضیح نرم افزارهای لازم برای اتصال به سرور از راه دور می پردازیم. سپس نحوه ی نصب هریک از سرورهای موردنیاز اعم از سرورهای ترکیبی و غیر ترکیبی را به صورت کامل با تکه کدها و اشکال شرح می دهیم. و درنهایت به توضیح سیستم های مدیریت محتوا پرداخته و نمونه های مهم آن را که برای پیاده سازی استفاده کرده ایم شرح می دهیم.
3-2 آشنایی با لینوکسلینوکس به هسته ی سیستم‌عامل‌های شبه یونیکس می‌گویند که که در سال ۱۹۹۱ توسط لینوس تروالدز توسعه یافت. برخی به سیستم عامل‌هایی که از هسته ی لینوکس استفاده می‌کنند (به این خاطر که نام لینوکس به طور گسترده در رسانه‌ها استفاده می‌شود و نامی رایج تر است) نیز لینوکس می‌گویند (در این مقاله هم منظور از لینوکس، سیستم عامل‌هایی است که از هسته ی لینوکس استفاده می‌کنند).
لینوکس قابل نصب بر روی انواع سخت‌افزارهاست، از ساعت لینوکس، تلفن‌های همراه، تبلت‌ها، مسیریاب‌ها، و کنسول‌های بازی گرفته تارایانه‌های رومیزی، رایانه‌های بزرگ و ابررایانه‌ها.
به مجموعه‌ای از نرم‌افزارهای بنا شده بر اجزای گفته شده توزیع لینوکس می‌گویند که به طور معمول شامل ابزارهای گسترش نرم‌افزار، پایگاه‌های داده، سرویس دهنده‌های وب مثل آپاچی، محیط‌ های رومیزی مانند گنوم و کی‌دی‌ای و اکس‌اف‌ سی‌ای و مجموعه‌های اداری مانند اُپن آفیس هستند.
در ابتدا لینوکس برای استفاده ی ریزپردازنده‌ها با معماری ۸۰۳۸۶ اینتل طراحی شده بود: اما امروزه انواع گوناگون معماری‌ها را پشتیبانی می‌کند و در انواع و اقسام وسایل از کامپیوترهای شخصی گرفته تا ابررایانه‌ها و تلفن‌های همراه به کار می‌رود. این سیستم‌عامل که در ابتدا بیشتر توسط افراد مشتاق گسترش پیدا می‌کرد و به کار گرفته می‌شد، توانسته است پشتیبانی شرکت‌های سرشناسی چون آی‌بی‌ام و هیولت-پاکارد را به دست آورد و با بسیاری از نسخه‌های خصوصی یونیکس رقابت کند. طرفداران لینوکس و بسیاری از تحلیل‌گران این موفقیت را ناشی از استقلال از فروشنده، کم‌هزینه بودن پیاده‌سازی، سرعت بالا، امنیت و قابلیت اطمینان آن می‌دانند]21 [.
3-2-1 آشنایی با توزیع اوبونتواوبونتو یک توزیع گنو/لینوکس است که بر مبنای توزیع دبیان پایه‌گذاری شده‌است، اما با آن تفاوت دارد. نام اوبونتو از یکی از مفاهیم آفریقای جنوبی به معنی “انسانیت نسبت به دیگران ” گرفته شده‌است.
از ویژگی‌های بارز اوبونتو می‌توان به کاربرپسند بودن، سادگی، زیبایی، سرعت و عدم نیاز به سخت‌افزار پیچیده اشاره کرد.
این سیستم‌عامل یکی از کاربرپسندترین توزیع‌های گنو/لینوکس است و در مدت نسبتاً کوتاه عمر خود، توانسته رشد خیره‌کننده‌ای در جذب کاربران عادی داشته باشد. بر طبق آمار وب، این توزیع در بین دیگر توزیع‌های گنو/لینوکس ۵۰ تا ۷۰ درصد سهم بازار را به دست آورده‌است. در ایران نیز این سیستم‌عامل کاربران زیادی را جذب کرده و جامعه ی مجازی نسبتاً خوبی در کنار آن شکل گرفته‌است. اوبونتو دارای پشتیبانی نسبتاً خوبی از تمام زبان‌های زنده دنیا از جمله زبان فارسی است.
اوبونتو هر ۶ ماه یک بار نسخه ی جدیدی را عرضه می‌کند. هر نسخه از اوبونتو، تا ۱۸ ماه پس از انتشار آن نسخه، پشتیبانی می‌شود. اوبونتو دارای نسخه‌هایی با پشتیبانی بلند مدت نیز هست که به جای پشتیبانی ۱۸ ماهه، ۳ سال پشتیبانی برای نسخه ی ویژه ی رایانه‌های شخصی و ۵ سال پشتیبانی برای نسخه‌های سرور ارائه می‌کند]22 [.
3-2-1-1 آشنایی با محیط ترمینال و کار با دستورات آنساده‌ترین راه برای برقراری ارتباط و وارد کردن دستورات به پوسته، از طریق ترمینال است. در ترمینال می‌توانید هر تعداد دستور که می‌خواهید برای کنترل دستی کامپیوتر وارد کنید.می‌توانید اطلاعات درایورها را ویرایش کنید یا حتی به نصب برنامه‌ها بپردازید. گاهی اوقات لزوم استفاده از این دستورات آنقدر زیاد می‌شود که بسیاری از کاربران عادی از کار با لینوکس خسته می‌شوند. ‌ ‌
برنامه‌های زیادی هستند که در پوسته اجرا می‌شوند، از مرورگرهای اینترنت بگیرید تا بازی‌های کامپیوتری و برنامه‌هایی که باید با آنها اتصال بی‌سیم را فعال کرد. این‌ها همه پوسته‌ای درون پوسته دیگر به‌شمار می‌روند. صد البته برنامه‌هایی هستند که به‌طور غیرمستقیم یک پوسته به‌شمار می‌روند، نرم‌افزار اتصال اینترنت شما، مرورگر موزیلا فایرفاکس و بسیاری از نرم‌افزارهای دیگر همگی یک پوسته هستند که با سیستم عامل در تعامل‌اند.
یکی از کارهای مقدماتی برای رسیدن به هدف خود در این رساله، آشنایی با تمامی دستورات ترمینال اوبونتو بود که تعدادی از این دستورات را برای نمونه ذکر می کنیم:
ls: گرفتن لیست محتویات مسیر جاری شامل پوشه و فایل ها
Cd dir: تغییر مسیر جاری به شاخه ی موردنظر
Mkdir dir: ساخت یک شاخه
Rm –r dir: حذف یک دایرکتوری با محتویات درون آن
Touch file: ساخت یک فایل
و …

3-3 اتصال به سرور از راه دورپس از یادگیری موارد مقدماتی کار(آشنایی با اوبونتو و نحوه ی کار با ترمینال آن)، برای شروع پیاده سازی پیش نیازهایی مورد نیاز بود.اولین مورد نیاز به یک سرور قدرتمند با حافظه و رم بالا بود که بتواند پاسخگوی نصب چندین وب سرور سنگین باشد. در ابتدای کار بر روی رایانه ی خانگی و روی نرم افزار وی ام ویر اوبونتو را نصب نموده و اقدام به شروع کار کردیم که بعد از مدتی متوجه شدیم این رایانه نمی تواند پاسخگوی این وب سرورها باشد.
بنابراین تصمیم گرفتیم از راه دور به یک وب سرور قدرتمند متصل شویم و موارد موردنیاز خود را روی آن تست کنیم. از دو طریق به این وب سرور متصل شدیم.
3-3-1 از طریق نرم افزار پوتیو کار با محیط ترمینال اوبونتوپوتی یک شبیه‌ساز ترمینال، کنسول رایانه‌ای و برنامه‌ای برای انتقال فایل است که به صورت یک نرم‌افزار آزاد توسعه داده می‌شود. این برنامه از چندین پروتکل مختلف از جمله اس سی پی، اس اس اچ، تلنت و آر لاگین پشتیبانی می‌کند. نام پوتی معنی خاصی ندارد، تی تی وای اختصاری است که در یونیکس برای کلمه تله تایپ استفاده می‌شود و نام ترمینال است. این برنامه در اصل برای سیستم‌عامل مایکروسافت ویندوز نوشته شده است، اما به چند سیستم ‌عامل مختلف دیگر هم پورت شده است. پورت‌های رسمی از این برنامه برای سیستم‌عامل‌های شبه یونیکس وجود دارند. پورت‌هایی هم برای سیستم عامل مک 10 و  سیستم عامل مک در حال توسعه هستند و همچنین به صورت غیررسمی، پورت‌هایی برای سیمبیان و ویندوز موبایل وجود دارد.
از طریق این نرم افزار بدون دست یابی به اطلاعات و محیط سرور اصلی تنها با شبیه سازی یک ترمینال از راه دور عملیات نصب و پیاده سازی وب سرورها را را انجام می دادیم. شکل 3-1 نمایی از این نرم افزار و اتصال آن به سرور را نشان می دهد.

شکل 3-1 نرم افزار پوتیو شکل زیر نمایی از محیط ترمینال شبیه سازی شده است که با استفاده از آن عملیات نصب و پیاده سازی وب سرورها از راه دور انجام شده است. شکل 3-2 نیز نمایی دیگر از نرم افزار پوتی است که وارد محیط خط فرمان شده است.

شکل 3-2 نمایی از محیط خط فرمان پوتی3-3-2 از طریق ریموت دسکتاپ کانکشنو کار با محیط اصلی وب سرورریموت دسکتاپ کانکشن قابلیتی است که مایکروسافت برای سیستم عامل های خود قرار داده تا از طریق آن بتوان به کامپیوتر از راه دور دسترسی پیدا کرد. از طریق این ویژگی می توانید از منزل به کامپیوتر محل کارتان مرتبط شوید و به تمام برنامه ها ، فایل ها و منابع موجود در شبکه محل کارتان ، دسترسی یابید. حتی می توانید محیط دسک تاپ سیستم محل کارتان را عینا در کامپیوتر راه دور اجرا نمائید.
در واقع شیوه کار این برنامه به نحوی است که به محض برقراری ارتباط ، سیستم راه دور به طور اتوماتیک قفل می شود و مادامیکه به آن مرتبط هستید هیچ شخص دیگری نمی تواند به برنامه ها ، فایلها و سایر منابع آن دسترسی داشته باشد و هنگامیکه به محل کارتان بازگردید می توانید آن را با فشار دادن کلید های کنترل+آلت+دلیت از حالت قفل خارج نمائید.
از دیگر ویژگی های این برنامه امکان لاگین در یک زمان بر روی چند سیستم می باشد حتی در حالتی که دیگران نیز به آن سیستم لاگین کرده باشند و کاربر می تواند برنامه های آنها را به طور همزمان اجرا کند.
ما نیز از طریق این برنامه به طور کامل به یک سرور از راه دور متصل شدیم با این تفاوت که در مورد قبل به محیط سرور و محتویات داخل آن دسترسی نداشتیم و تنها با یک شبیه ساز کنسول کار می کردیم اما در این نرم افزار به طور کامل به همه ی محتویات سرور دسترسی خواهیم داشت. نمایی از این برنامه و اتصال آن به سرور را در شکل 3-3 می بینید.

شکل 3-3 نمایی از نرم افزار ریموت دسکتاپ کانکشنو شکل 3-4 نمایی از محیط سروری است که عملیات پیاده سازی و تست وب سرورها درون آن انجام شده است.

شکل 3-4 نمایی از محیط سرور3-4 نصب وب سرورها روی اوبونتوقبل از توضیح مراحل کار بهتر است بدانید که ما بر روی 4 نوع سرور عمل پیاده سازی و تست را انجام دادیم که به ترتیب زیر می باشند: آپاچی، انجین ایکس، آپاچی+وارنیش و انجین ایکس+وارنیش.
حال به توضیح مراحل نصب تک تک این وب سرورها می پردازیم.
3-4-1 نصب آپاچیبرای ساخت یک وب سایت تحت وب سرور آپاچی لازم است علاوه بر نصب آپاچی، چند مورد دیگر نیز نصب شوند که به مجموعه ی این نرم افزارها لمپ می گویند. این عبارت خلاصه شده ی چند برنامه است: لینوکس ، آپاچی، مای اس کیو ال و پی اچ پی.
نصب قدم به قدم تک تک این نرم افزارها را توضیح می دهیم.
نصب آپاچی: مرحله ی اول نصب آپاچی است که برای این کار وارد ترمینال اوبونتو شده و دستور زیر را وارد می کنید.
Sudo apt-get install apache2
برای اطمینان از نصب آپاچی مرورگر را باز کرده و آدرس زیر را وارد می کنیم.
http://localhostاگر تصویر آپاچی را مشاهده کردید یعنی نصب به درستی انجام شده است.
نصب مای اس کیو ال: برای نصب این پایگاه داده دستور زیر را در ترمینال وارد کنید تا مای اس کیو ال به همراه یک سری پکیج کمک کننده نصب شود.
Sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
در طول نصب برای نام کاربری روت رمز عبور می خواهد که باید وارد کنید و آن را به خاطر بسپارید زیرا این اکانت همان اکانت مدیر کل پایگاه داده است.
نصب پی اچ پی 5: پی اچ پی یک زبان اسکریپتی بسیار قدرتمند می باشد که بر روی وب تمرکز کرده و در این زمینه نیز بسیار موفق است. با زبان پی اچ پی می توان اطلاعات را به صورت پویا درآورد و همچنین به پایگاه داده ی مای اس کیو ال متصل شد.
با وارد کردن دستور زیر در ترمینال، پی اچ پی به همراه پکیج های مورد نیاز نصب خواهد شد.
sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt
حال آپاچی را دوباره راه اندازی کنید.
Sudo service apache2 restart
تست و اجرای پی اچ پی: برای این که مطمئن شویم پی اچ پی درست نصب شده است یک فایل پی اچ پی می سازیم و کد ساده ای را که نشان دهنده ی تنظیمات پی اچ پی می باشد را در آن قرار می دهیم.
دستور زیر را در ترمینال وارد کنید.
Sudo nano /var/www/info.php
بعد از وارد کردن دستور صفحه ی خالی ای باز می شود که باید کدهای زیر را درون آن قرار داده و ذخیره کنید.
<?php phpinfo();?>
سپس آپاچی را مجددا راه اندازی کنید.
حال با چک کردن آدرس زیر می توان مطمئن شد که پی اچ پی درست کار می کند یا خیر.
http://localhost/info.phpصفحه ای مشابه با شکل 3-5 مشاهده می شود که نشان دهنده ی اجرای درست پی اچ پی است. در صورتیکه صفحه ای غیر از این صفحه مشاهده شد باید مراحل را دوباره با دقت طی کنید زیرا پی اچ پی نصب نشده است.

شکل 3-5 صفحه ی وب نشان دهنده نصب درست پی اچ پی(ویژگی های پی اچ پی)نصب پی اچ پی مای ادمین: برای ایجاد و یا حذف پایگاه داده شما باید پی اچ پی مای ادمین را نصب کنید که برای این کار دستور زیر را در ترمینال وارد کنید.
Sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin
حین نصب از شما خواهد پرسید که بین آپاچی2 و لایت تی پی دی یکی را انتخاب کنید و شما باید آپاچی2 را انتخاب کنید. سوال بعدی در مورد پیکربندی است که گزینه ی خیر را انتخاب کنید و بعد دستور زیر را در ترمینال وارد کنید.
Sudo cp /etc/phpmyadmin/apache.conf /etc/apache2/conf.d
سپس آپاچی را دوباره راه اندازی کنید.
Sudo /etc/init.d/apache2 restart
اکنون برای ورود به پی اچ پی مای ادمین و ایجاد یا حذف پایگاه داده، آدرس زیر را در مرورگر وارد کنید.
http://localhost/phpmyadminاگر با پیغام خطا مواجه شدید دستور زیر را در ترمینال وارد کنید.
Sudo ln –s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin.conf
Sudo /etc/init.d/apache2 reload
حال می توانید وارد صفحه ی پی اچ پی مای ادمین شوید و با وارد کردن نام کاربری و رمز عبوری که خودتان تعیین کرده اید وارد محیط شده و با پایگاه داده تان کار کنید]23 [.
3-4-2 نصب انجین ایکسنصب انجین ایکس به همراه وابستگی هایش به اختصار لمپ گفته می شود که شامل لینوکس، انجین ایکس، مای اس کیو ال و پی اچ پی5 می باشد. نصب تمامی این موارد را به صورت قدم به قدم توضیح می دهیم.
ابتدا مطمئن شوید که با کاربر اصلی یعنی ریشه وارد شده اید زیرا نصب تمامی این موارد باید با دسترسی های کاربری ریشه انجام شود.
Sudo su
نصب مای اس کیو ال5: برای نصب مای اس کیو ال دستور زیر را اجرا کنید.
apt-get install mysql-server mysql-client
در حین نصب مای اس کیو ال از شما خواسته می شود که یک رمز عبور برای کاربر روت مای اس کیو ال تعیین کنید.
New password for the MySQL “root” user: <–yourrootsqlpasswordRepeat password for the MySQL “root” user: <–yourrootsqlpassword
نصب انجین ایکس: انجین ایکس به صورت یک پکیج برای اوبونتو ۱۳٫۰۴ در دسترس است که می توانید برای نصب آن به شرح زیر عمل کنید.
apt-get install nginx
سپس برای شروع به کار کردن سرویس انجین ایکس دستور زیر را اجرا کنید.
etc/init.d/nginx start/
آی پی وب سرور یا نام هاست خود را در مرورگر تایپ کنید. باید صفحه ای مشابه شکل 3-6 ببینید.

شکل 3-6 صفحه ی نصب انجین ایکس ریشه ی سند انجین ایکس به طور پیش فرض در اوبونتو، مسیر زیر است.
/usr/share/nginx/www
نصب پی اچ پی5: بهترین روش برای کار کردن با پی اچ پی در انجین ایکس استفاده از پی اچ پی- اف پی ام  است . پی اچ پی- اف پی ام یک پیاده سازی مدرن و مدیریت شده از پی اچ پی فست سی جی آی به همراه امکانات بسیار زیاد بوده که برای انواع سایت ها مخصوصا سایت های فعال و پر بازدید مناسب است. برای نصب پی اچ پی5 در لینوکس اوبونتو دستور زیر را اجرا کنید.
apt-get install php5-fpm
کانفیگ و تنظیمات انجین ایکس: برای انجام تنظیمات وارد مسیر زیر شوید.
Cd /etc/nginx
سپس فایل زیر را باز کنید.
Sudo nano nginx.conf
و محتویات فایل باز شده را به محتویات زیر تغییر دهید.
user www-data;
 
# As a thumb rule: One per CPU. If you are serving a large amount
# of static files, which requires blocking disk reads, you may want
# to increase this from the number of cpu_cores available on your
# sys–.
#
# The maximum number of connections for Nginx is calculated by:
# max_clients = worker_processes * worker_connections
worker_processes 1;
 
# Maximum file descriptors that can be opened per process
# This should be > worker_connections
worker_rlimit_nofile 8192;
 
events {
    # When you need > 8000 * cpu_cores connections, you start optimizing
    # your OS, and this is probably the point at where you hire people
    # who are smarter than you, this is *a lot* of requests.
    worker_connections 8000;
}
 
error_log /var/log/nginx/error.log;
 
pid /var/run/nginx.pid;
 
http {
    charset utf-8;
 
    # Set the mime-types via the mime.types external file
    include mime.types;
 
    # And the fallback mime-type
    default_type application/octet-stream;
 
    # Click tracking!
    access_log /var/log/nginx/access.log;
 
    # Hide nginx version
    server_tokens off;
 
    # ~2 seconds is often enough for HTML/CSS, but connections in
    # Nginx are cheap, so generally it’s safe to increase it
    keepalive_timeout 20;
 
    # You usually want to serve static files with Nginx
    sendfile on;
 
    tcp_nopush on; # off may be better for Comet/long-poll stuff
    tcp_nodelay off; # on may be better for Comet/long-poll stuff
 
    server_name_in_redirect off;
    types_hash_max_size 2048;
 
    gzip on;
    gzip_http_version 1.0;
    gzip_comp_level 5;
    gzip_min_length 512;
    gzip_buffers 4 8k;
    gzip_proxied any;
    gzip_types
        # text/html is always compressed by HttpGzipModule
        text/css        text/plain        text/x-component        application/javascript        application/json        application/xml        application/xhtml+xml
        application/x-font-ttf        application/x-font-opentype        application/vnd.ms-fontobject        image/svg+xml
        image/x-icon;
 
    # This should be turned on if you are going to have pre-compressed copies (.gz) of
    # static files available. If not it should be left off as it will cause extra I/O
    # for the check. It would be better to enable this in a location {} block for
    # a specific directory:
    # gzip_static on;
 
    gzip_disable “msie6”;
    gzip_vary on;
 
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}
سپس فایل زیر را باز کنید.
sudo nano sites-available/default
محتویات آن را به محتویات زیر تغییر دهید.
server {
    listen 80 default; ## listen for ipv4; this line is default and implied
    listen [::]:80 default ipv6only=on; ## listen for ipv6
 
    # Make site accessible from http://localhost/ or server IP-address
    server_name localhost;
    server_name_in_redirect off;
 
    charset utf-8;
 
    access_log /usr/share/nginx/access.log;
    error_log /usr/share/nginx/error.log;
 
    root /usr/share/nginx/www;
    index index.php index.html index.htm;
 
    location / {
        # First at–pt to serve request as file, then
        # as directory, then trigger 404
        try_files $uri $uri/ =404;
    }
}
سرویس انجین ایکس را دوباره راه اندازی کنید.
sudo service nginx reload
اکنون تنظیمات کوچکی برای پی اچ پی- اف پی ام وجود دارد که باید انجام دهید.
cd /etc/nginx
sudo nano nginx.conf
در قسمت تگ اچ تی تی پی کد زیر را اضافه کنید.
# Upstream to abstract back-end connection(s) for PHP
upstream php {
server unix:/tmp/php5-fpm.sock;
}
سپس فایل زیر را باز کنید.
Sudo nano /etc/nginx/sites-available/default
محتویات فایل را به محتویات زیر تغییر دهید.
# pass the PHP scripts to FPM socket
location ~ .php$ {
    try_files $uri =404;
 
    fastcgi_split_path_info ^(.+.php)(/.+)$;
    # NOTE: You should have “cgi.fix_pathinfo = 0;” in php.ini
     
    fastcgi_pass php;
 
    fastcgi_index index.php;
 
    fastcgi_param SCRIPT_FILENAME /usr/share/nginx/www$fastcgi_script_name;
    fastcgi_param DOCUMENT_ROOT /usr/share/nginx/www;
 
    # send bad requests to 404
    fastcgi_intercept_errors on;
 
    include fastcgi_params;
}
حال فایل زیر را باز کنید.
cd /etc/php5/fpm/pool.d
sudo nano www.conf
خط اول را با خط دوم ویرایش کنید.
Listen=127.0.0.1:9000
Listen=/tmp/php5-fpm.sock
سرویس انجین ایکس و پی اچ پی- اف پی ام را راه اندازی مجدد کنید.
sudo service nginx restart
sudo service php5-fpm restart
نوبت به ایجاد فایل پی اچ پی رسیده است. در مسیر ریشه ی انجین ایکس فایلی ایجاد کنید.
nano /usr/share/nginx/www/index.php
محتویات زیر را درون آن قرار دهید.
<?php 
phpinfo();
 
?>
نصب پی اچ پی مای ادمین: برای نصب این نرم افزار دستور زیر را در ترمینال وارد کنید.
sudo apt-get install phpmyadmin –y
در انتها دستورات زیر را وارد کنید.
cd /usr/share/nginx/www
sudo ln -s /usr/share/phpmyadmin
اکنون می توانید از طریق آدرس زیر وارد پی اچ پی مای ادمین شده و پایگاه داده تان را سر و سامان دهید]24 [.
http://localhost/phpmyadmin3-4-3 نصب آپاچی- وارنیش
شباهت ها و البته تفاوت های زیادی بین نحوه عملکرد کش وارنیش و پروکسی معکوس انجین ایکس سر راه وب سرور آپاچی وجود دارد که اغلب سبب گیج شدن مدیران سرور های هاستینگ مبتنی بر لینوکس می گردد . شباهت وارنیش کش با انجین اکس به عنوان پروکسی معکوس ، قرار گرفتن سر راه وب سرور و دریافت کلیه درخواست ها در وهله اول است . ولی یک فرق بسیار بزرگ بین نحوه عملکر این دو وجود دارد. انجین ایکس محتوای استاتیک را هندل و کش می کند ولی کش وارنیش برای مدیریت و کش کردن محتوای داینامیک و استاتیک (کش کردن کل صفحه) طراحی و ساخته شده است. بر خلاف انجین اکس ، کش وارنیش فقط برای همین هدف یعنی کش کردن محتوای اچ تی تی پی به صورت پروکسی معکوس و همچنین بارگذاری متعادل سازی طراحی شده است و از یک زبان اسکریپتی با کدی مشابه سی و پرل به نام وی سی ال نیز پشتیبانی می کند . بنا بر این بسیار قدرتمند از انجین ایکس عمل کرده و قابلیت کنترل همه چیز را به پیکربند می دهد. نحوه کار وارنیش به عنوان یک پروکسی معکوس سر راه آپاچی به شرح زیر است.
با تغییر پورت آپاچی از ۸۰ به یک پورت غیر استاندارد مانند ۸۰۸۰ و تغییر پورت وارنش کش به پورت استاندارد ۸۰ جای آپاچی را با وارنیش عوض میکنیم . با استارت کردن سرویس ورنیش ، ترافیک ورودی اعم از داینامیک و استاتیک توسط کش وارنیش داخل حافظه یا رم سرور کش می شوند که نتیجه آن کاهش قابل ملاحظه ی بارگذاری سی پی یو در سرور و همچنین افزایش سرعت بارگذاری صفحات وب است.

شکل 3-7 بهبود عملکرد آپاچی به وسیله ی وارنیشهمانطور که در شکل 3-7 مشاهده می کنید ، شتاب دهنده اچ تی تی پی وارنیش عملکرد وب سرور آپاچی را به میزان قابل توجهی بهبود بخشیده است . کاهش  زمان پاسخگویی به درخواست ها ، افزایش سرعت لود شدن صفحات ، کاهش لود سرور و امکان مدیریت کردن صد ها هزار درخواست توسط آپاچی نتیجه پیکربندی حرفه ای کش وارنیش سر راه وب سرور آپاچی است.
برای نصب همزمان آپاچی و وارنیش باید ابتدا آپاچی روی سرور نصب شود و سپس وارنیش را در مقابل آپاچی نصب کنیم. در حقیقت آپاچی به عنوان سرور پشتی و وارنیش به عنوان سرور جلویی نصب می شود. به همین خاطر پورت اصلی یعنی 80 را به وارنیش اختصاص می دهیم و پورت دیگری را برای آپاچی درنظر می گیریم. برای نصب آپاچی نیز مانند توضیحات داده شده در مورد نصب آن در بخش قبل عمل کنید و آپاچی و ملزومات آن را کامل نصب بفرمایید.
پس از نصب آپاچی ابتدا اقدام به نصب وارنیش کنید.
curl http://repo.varnish-cache.org/debian/GPG-key.txt | sudo apt-key add –
echo “deb http://repo.varnish-cache.org/ubuntu/ lucid varnish-3.0” | sudo tee -a /etc/apt/sources.list
sudo apt-get update
sudo apt-get install varnish
سپس آپاچی را به عنوان سرور پشتی تنظیم کنید.
sudo nano /etc/varnish/default.vcl
backend default {
.host = “127.0.0.1”;
.port = “8080”;
}
این تکه کد پورت 8080 را به عنوان پورت پشتی تنظیم می کند. پورتی که ما به آپاچی اختصاص داده ایم.
اکنون می خواهیم پورت آپاچی را از 80 به 8080 تغییر دهیم.
sudo nano /etc/apache2/ports.conf
محتویات این فایل را اینگونه تغییر دهید.
NameVirtualHost *:80
NameVirtualHost *:8080
Listen 8080
سپس به آدرس زیر بروید.
Cd  /etc/apache2/sites-enabled/000-default
و خط اول را با خط دوم ویرایش کنید.
<VirtualHost *:80>
<VirtualHost *:80 *:8080>
این تکه کد به این مفهوم است که هاست های مجازی برای هردو پورت 80 و 8080 قابل پیکره بندی هستند.
سپس دوباره آپاچی را راه اندازی کنید.
sudo service apache2 restart
حال به سراغ راه اندازی و تنظیمات وارنیش برویم.
عملیاتی که بر روی وارنیش می توان انجام داد به شرح زیر است:
sudo /etc/init.d/varnish start|stop|restart|force-reload
برای تنظیمات وارنیش به آدرس زیر بروید.
sudo nano /etc/default/varnish
تکه کد زیر را درون فایل به صورت تکه کد بعدی تغییر دهید تا پورت 80 را برای وارنیش تنظیم کنید.
DAEMON_OPTS=”-a :6081
-T localhost:6082
-f /etc/varnish/default.vcl
-S /etc/varnish/secret
-s malloc,256m”
DAEMON_OPTS=”-a :80
-T localhost:6082