جستجو در محصولات

گالری پروژه های افتر افکت
گالری پروژه های PSD
جستجو در محصولات


تبلیغ بانک ها در صفحات
ربات ساز تلگرام در صفحات
ایمن نیوز در صفحات
.. سیستم ارسال پیامک ..
Ajax : تحولي بزرگ در عرصه وب ( بخش اول )
-(0 Body) 
Ajax : تحولي بزرگ در عرصه وب ( بخش اول )
Visitor 523
Category: کامپيوتر

اينترنت و مهمترين سرويس آن وب علاوه بر اين كه حيات بشري را در هزاره سوم دستخوش تحولات فراواني كرده است ، توانسته است منشاء تحولات گسترده اي در ساير حوزه هاي فناوري گردد . در واقع ، تحول در زندگي بشريت  مديون پيشرفت در ساير حوزه هاي فناوري‌ است . يكي از اين حوزه ها ، صنعت نرم افزار است .
براي آشنائي با اين تحول بد نيست مروري سريع داشته باشيم به گذشته وب و نرم افزار تا از اين رهگذر بتوانيم ضرورت ايجاد فناورهاي جديدي نظير Ajax ( برگرفته شده از Asynchronous JavaScript And XML ) را بهتر درك كنيم .

مروري بر وب ، نرم افزار و تاثير متقابل آنها بر يكديگر
موجودات جديدي كه ما امروزه آنها را با نام برنامه هاي وب مي شناسيم ، ماحصل تاثير وب بر نرم افزار و رشد رو به فزاينده استفاده از اينترنت در متن زندگي ، ماحصل تاثير نرم افزار بر وب است . اجازه دهيد ببينيم موضوع از كجا و با چه مختصاتي شروع گرديد و هم اينك در چه وضعيتي به سر مي بريم .

وب ايستا : زماني كه تيم . برنرز لي در سال 1990 اولين پيشنهاد خود در رابطه با وب را ارائه كرد ،  ايده كار بسيار ساده بود : ايجاد يك شبكه از اطلاعات متصل شده به يكديگر با استفاده از ابرمتن ها و URIs ( برگرفته شده از  Uniform Resource Identifiers ) . وب در آغاز به عنوان يك رسانه اشتراك اطلاعات مطرح گرديد تا از طريق آن دانشمندان و محققين بتوانند دانش و اطلاعات را بين خود به اشتراك گذاشته و نتايج تحقيقات را با يكديگر مبادله نمايند . ارائه دهند گان با استفاده از يك استاندارد مستند سازي ، اطلاعات خود را تهيه و آنها را به مخاطبان خود ارائه مي كردند . در آغاز براي استاندارد مستند سازي از ابزاري كه در آن زمان خود هنوز استاندارد نشده بود استفاده مي گرديد . HTML ، ابزاري است كه با بكارگيري مجموعه اي از تگ ها ، استاندارد لازم جهت نمايش يك مستند در نرم افزارهاي نمايش دهنده ( مرورگرها )  را فراهم مي نمايد . نرم افزارهاي نمايش دهنده ، مجهز به مفسرهائي جهت تفسير تگ ها و نمايش اطلاعات موجود در مستند بر اساس تعاريف از قبل تعريف شده شدند . در آن زمان كه به سال هاي ابتدائي دهه 90 ميلادي برمي گردد ، چيزي با نام برنامه هاي وب وجود نداشت و وب به عنوان رسانه اي جهت اشتراك و مبادله اطلاعات مطرح بود . تمامي تعاملات در عرصه وب محدود به درخواست يك مستند توسط سرويس گيرنده و ارسال آن توسط سرويس دهنده بود .

وب پويا با تمركز بر روي پردازش هاي سمت سرويس گيرنده : در ادامه ، نياز به انجام برخي پردازش هاي اوليه مطرح گرديد . با  توجه به اين كه اينترنت از يك بستر سرويس گيرنده و سرويس دهنده ( client server based) به منظور دريافت درخواست كاربر و پاسخ به آن استفاده مي كرد ، طراحان و پياده كنندگان براي تحقق پردازش ها بر روي دو گزينه متمركز شدند : انجام پردازش ها در سمت سرويس گيرنده و  يا سمت سرويس دهنده . در آغاز ، براي انجام پردازش ها بر روي سرويس گيرنده متمركز شدند . با اين هدف كه بتوان پردازش هاي مورد نياز را ( با حوزه اي كه در آن زمان تعريف شده بود ) ، در سمت سرويس گيرنده انجام داد . براي تحقق خواسته فوق لازم بود كه بستر و ابزارهاي لازم در بطن مرورگر ها ايجاد گردد . ظهور فناورهائي نظير Html-DOM ، جاوااسكريپت ، CSS  ( برگرفته شده از  cascading style sheets ) و DHTML  ( برگرفته شده از Dynamic HTML  )  از جمله مهمترين تلاش هاي انجام گرفته در آن زمان براي تحقق پردازش ها در سمت سرويس گيرنده بود . براي آشنائي بيشتر با تلاش هاي انجام گرفته در آن زمان بد نيست مروري سريع داشته باشيم به آنچه طي ساليان گذشته در عرصه وب اتفاق افتاده است .

  •  عرضه جاوا اسكريپت : Netscape Navigator اولين مرورگر وبي بود كه پس از طراحي و پياده سازي موفقيت آميز توانست به عنوان كاتاليزوري در رشد وب و عرضه فناوري هاي مرتبط با آن نقش بسيار مثبتي را ايفاء‌ كند . اغلب سازمان ها و شركت ها از مرورگر فوق به عنوان معيار استاندارد خود براي پياده سازي فناوري هاي جديد استفاده مي كردند . يكي از اين فناوري ها ، جاوا اسكريپت بود . 
    جاو ااسكريپت توسط Brendan Eich از نت اسكيپ ايجاد و  نسخه شماره دو  آن در سال 1995 عرضه گرديد . براي اولين مرتبه ، پياده كنندگان قادر به ايجاد صفحات وبي شدند كه مي توانست با كاربر تعامل برخورد نمايد . استفاده از جاوا اسكريپت براي معتبر سازي داده در سمت سرويس گيرنده و حذف برخي مبادلات غيره ضروري بين سرويس گيرنده و سرويس دهنده از جمله مهمترين دستاورد بكارگيري جاوا اسكريپت در آن زمان بود . بدين ترتيب نطفه پردازش هاي ساده در سمت سرويس گيرنده به كمك جاوا اسكريپت بسته شد . قابليت فوق در زماني كه اكثر كاربران اينترنت از طريق يك مودم با سرعت 8 . 28 ( Kbps ) به شبكه وصل مي شدند ، باعث مي شد كه تعداد دفعاتي كه كاربران مجبور به انتظار براي دريافت يك پاسخ از سرويس دهنده باشند ، كاهش يابد . تحول فوق اولين مرحله جدي به سمت رويكرد Ajax در آن زمان بود .

  •  ايجاد فريم :   در نسخه اوليه HTML با هر سند به عنوان يك موجوديت رفتار مي شد  تا اين كه در نسخه شماره چهار فريم ها معرفي گرديدند . با استفاده از فريم ها  نمايش يك صفحه وب مي توانست مشتمل بر بكارگيري مجموعه اي از ساير صفحات وب باشد . ايده فوق يك اصلاح ساختاري اساسي در خصوص نحوه نمايش يك صفحه وب بود .  Netscape Navigator 2.0 اولين مرورگري بود كه از فريم ها و جاوا اسكريپت حمايت كرد . اين يك مرحله جدي به سمت رشد و توسعه Ajax در آن زمان بود .
    با توجه به اين كه يك فريم ، يك درخواست مجزاء را  براي سرويس دهنده ايجاد مي كرد ، قابليت كنترل يك فريم و محتويات آن با استفاده از جاوا اسكريپت دنياي جديدي را پيش روي طراحان و پياده كنندگان صفحات وب قرار داد .

  • روش فريم  مخفي  : به موازات اين كه پياده كنندگان درگير نحوه استفاده از فريم ها شدند  ، يك روش جديد با هدف تسهيل در امر ارتباط بين سرويس گيرنده و سرويس دهنده مطرح گرديد . روش فريم مخفي شامل تنظيم يك frameset با طول و يا عرض صفر پيكسل است كه هدف اساسي آن انجام فرآيند مقداردهي اوليه با سرويس دهنده بود . فريم مخفي شامل يك فرم HTML با فيلدهاي خاصي است كه مي توانست بطور اتوماتيك توسط جاوا اسكريپت تكميل و براي سرويس دهنده ارسال گردد . زماني كه فريم از سرويس دهنده مراجعت مي كرد ، يك تايع ديگر جاوا اسكريپت فراخوانده مي شد تا اعلام نمايد كه داده از سمت سرويس دهنده برگردانده شده است . روش فريم مخفي ، اولين مدل درخواست و پاسخ غيرهمزمان را براي برنامه هاي وب به ارمغان آورد ( اولين رويكرد به مدل ارتباطي Ajax ) .

  • Dynamic HTML  و DOM  :  تا سال 1996 ، وب يك دنياي ايستا را تجربه مي كرد و براي تعامل محدود با كاربر از جاوا اسكريپت و روش فريم هاي مخفي استفاده مي گرديد . همچنان امكان تغيير در محتويات يك صفحه بدون نياز به load مجدد آن از سرويس دهنده وجود نداشت .  در ادامه IE 4.0 ( برگرفته شده از  Internet Explorer  )  توسط شركت مايكروسافت ارائه گرديد . در اين نسخه علاوه بر بكارگيري اكثر فناوري هاي استفاده شده در Netscape Navigator ، يك ويژگي مهم ديگر با نام DHTML ( برگرفته شده از Dynamic HTML  ) نيز ارائه گرديد . DHTML به پياده كنندگان اجازه مي داد تا بتوانند هر بخشي از يك صفحه مستقر شده در حافظه سرويس گيرنده را با استفاده از جاوا اسكريپت تغيير دهند . DHTML به همراه عرضه غيره منتظره CSS ( برگرفته شده از  cascading style sheets ) به وب و نحوه پياده سازي صفحات وب يك نيروي تازه داد. پياده كنندگان توانستند با تركيب DHTML و روش فريم هاي مخفي هر بخشي از يك صفحه را با استفاده از اطلاعات دريافت شده از سرويس دهنده refresh نمايند . ويژگي فوق در زمان خود توانست يك تحول بزرگ در عرصه وب را ايجاد نمايد .
    در ادامه ،  DOM ( برگرفته شده از  Document Object Model  ) ارائه گرديد . برخلاف DHTML كه صرفا" امكان تغيير بخش هائي خاص از يك صفحه وب را فراهم مي كرد ، DOM  داراي يك هدف بلندپروازانه ديگر بود . هدف DOM ارائه يك ساختار براي تمامي صفحه بود . انجام عمليات و يا پردازش بر اساس ساختار فوق ، امكان تغيير يك صفحه را فراهم مي آورد . اين مرحله بعدي به سمت Ajax بود .

  • Iframesبا اين كه روش فريم مخفي بطور غيرقابل پيش بيني متداول گرديد ، ولي داراي چالش هاي مختص به خود بود . افرادي مي بايست زمان زيادي را صرف نوشتن يك frameset مي كردند تا شرايط استفاده از فريم هاي مخفي فراهم گردد . زماني كه عنصر  >  در سال 1997 و به عنوان بخشي از نسخه رسمي HTML 4.0 ارائه گرديد ، يك قدم اساسي ديگر به سمت انقلاب بر روي وب حركت شد .
    در مقابل تعريف frameset ، پياده كنندگان قادر به استفاده از فريم ها در هر مكاني از صفحه شدند . بدين ترتيب پياده كنندگان توانستند از  iframe نامرئي ( با بكارگيري قابليت هاي CSS ) در يك صفحه استفاده نمايند و شرايط عملياتي لازم جهت مبادله داده بين سرويس گيرنده و سرويس دهنده را فراهم نمايند . زماني كه نسخه نهائي DOM در IE 5.0 و Netscape 6.0 پياده سازي گرديد ، قابليت ايجاد فريم ها به صورت پويا نيز فراهم گرديد . در چنين حالتي از يك تابع جاوا اسكريپت به منظور ايجاد يك iframe ، ايجاد يك درخواست و دريافت پاسخ ( جملگي بدون نياز به اضافه كردن تگ هاي HTML اضافه در يك صفحه ) استفاده مي گرديد . اين روش معروف به روش iframe مخفي گرديد .

  • XMLHttp  : پياده كنندگان مرورگر شركت مايكروسافت پس از مشاهده عموميت استفاده از روش هائي‌ نظير فريم مخفي و iframe مخفي ، تصميم گرفتند يك ابزار بهتر جهت تعامل بين سرويس دهنده و سرويس گيرنده را ارائه نمايند . اين ابزار به شكل يك اكتيوايكس و با نام  XMLHttp در سال 2001 ارائه گرديد .
    زماني كه مايكروسافت حمايت خود از XML را از طريق يك كتابخانه با  نام MSXML آغاز كرد ، شي XMLHttp نيز به همراه آن ارائه گرديد .
    با اين كه شي‌ فوق به همراه خود نام XML   را يدك مي كشيد ولي چيزي بمراتب بيشتر از روشي براي انجام عمليات بر روي داده XML  بود . شي فوق همانند يك درخواست HTTP بود كه مي توانست توسط جاوا اسكريپت كنترل گردد . پياده كنندگان داراي قدرت دستيابي به كدهاي وضعيت HTTP و هدر همانند داده برگردانده شده از طريق سرويس دهنده بودند . داده مي توانست به صورت XML ساختيافته ، اشياء سريال شده جاوا اسكريپت و يا ساير فرمت هاي مورد نظر پياده كننده باشد . در مقابل استفاده از فريم هاي مخفي و يا iframe ، اين امر ميسر گرديد كه به سرويس دهنده از طريق كد و توسط جاوا اسكريپت دستيابي داشت ( مستقل از چرخه load و  reload صفحه ) . شي XMLHttp پس از مدتي به عنوان يك موفقيت بزرگ براي پياده كنندگان مرورگر IE  عرض اندام كرد .
    به موازات متداول شدن شي فوق ، پياده كنندگان در Mozilla نسخه اختصاصي از  XMLHttp را پياده سازي كردند . در مقابل اجازه دستيابي از طريق اكتيو ايكس ، پياده كنندگان موزيلا متدها و خصلت ها را در يك شي ذاتي مرورگر و با نام objectXMLHttpRequest ارائه كردند . پس از اين كه دو مرورگر اصلي در بازار هر يك توانستند به نوعي از XMLHttp حمايت نمايند ، مرورگرهائي ديگر نظير Opera و Safari نيز هر يك به نوعي حمايت خود از شي فوق را اعلام كردند .

بدين ترتيب پياده كنندگان صفحات وب توانستند ، صفحاتي را خلق نمايند كه با تعبيه كدهاي مورد نياز در آنها ، امكان پردازش در سمت سرويس گيرنده را فراهم نمايند . انجام پردازش هاي اوليه نظير تغيير رنگ و شكل ظاهري صفحات ، مديريت عناصر موجود بر روي يك صفحه و تغيير آنها در زمان اجراء  متناسب با عمليات كاربر ، بررسي صحت داده ورودي توسط كاربر در يك فرم ساده اطلاعاتي ، دريافت داده در پس زمينه و عدم نياز به ارسال تمامي صفحه و بهنگام سازي بخش هائي خاص از آن ( با بكارگيري فريم ها ) ، نمونه هائي از تاثير فناوري هائي بود كه توان پردازش در سمت سرويس گيرنده را در اختيار پياده كنندگان قرار مي داد .

وب پويا با تمركز بر روي پردازش هاي سمت سرويس دهنده
همزمان با گسترش اينترنت و  وب ، ايجاد صفحات وب  با محتويات پويا با اتكاء به منابع داده موجود در سمت سرويس دهنده و ساير شرايط تاثير گذار در فرآيند پاسخ به درخواست كاربران مطرح گرديد . همين موضوع باعث شد كه توجه به سرويس دهنده براي انجام برخي پردازش ها  نيز در دستور كار قرار بگيرد . ظهور فناورهائي نظير  ASP ( برگرفته شده از Active Server Page ) و PHP ( برگرفته شده از  Hypertext Preprocessor  ) از اوايل سال 1996 پاسخي به اين نياز بود . از آن زمان به بعد بود كه كم كم واژه برنامه هاي وب قدم در عرصه نرم افزار گذاشت . اگر به تعاريف آن زمان برگرديم مشاهده مي كنيم كه در ابتدا از اين اصطلاح در خصوص صفحات وب پويا استفاده مي گرديد .
نگرش جزيره اي به فناورهاي مرتبط با برنامه هاي وب تا اوايل سال 1999 ادامه يافت . تا اين كه شركت هاي متعددي به فكر ارائه يك پلت فرم با در نظر گرفتن واقعيتي به نام اينترنت افتادند . دات نت ، پلت فرم ارائه شده توسط شركت مايكروسافت يك نمونه در اين زمينه است كه از صدر تا ذيل آن با در نظر گرفتن واقعيتي با نام اينترنت طراحي و پياده سازي شده است .
در اين دوران بود كه به برنامه هاي وب با يك نگاه جامع تر و سيستماتيك تر نگاه مي شد . در طي پنج سال گذشته ، اين نوع برنامه ها توانستند با بكارگيري مجموعه اي از  فناوري ها  منشاء تحولات عمده اي در خصوص بردن اينترنت در متن  زندگي (و نه حاشيه ! ) مردم جهان باشند . ايده " نرم افزار به عنوان سرويس " و يا برنامه نويسي سرويس گراء از نگرش هاي جديد به مقوله نرم افزار و دنياي برنامه نويس‍ي در عرصه وب است .
موج استفاده از اينترنت براي ارائه خدمات online ( ارائه شده به كاربران از طريق برنامه هاي وب )  باعث گرديد تا معماري و رفتار اينگونه برنامه ها با تامل بيشتر مطالعه و بررسي گردد . هدف ، ايجاد برنامه هاي وب با كارآئي مطلوب است تا ضمن ارائه خدمات خود داراي ويژگي هائي نظير : افزايش تعامل كاربر با برنامه ( همانند برنامه هاي desktop ) ، استفاده بهينه از محيط انتقال و به حداقل رساندن ترافيك آن ، مديريت بهينه منابع سمت سرويس گيرنده در پاسخ به رويدادهاي محقق شده سمت سرويس گيرنده ، عدم ارسال اطلاعات غيره ضروري توسط سرويس گيرنده و ... باشند .  ماحصل اين تفكرات ظهور فناوري جديدي با نام Ajax است كه شركت هائي نظير گوگل و مايكروسافت توانستند از سال 2005 با بكارگيري اين فناوري تحول بزرگي را در عرصه برخي از سرويس ها و خدمات خود ايجاد نمايند .

حمع بندي !
همزمان با بحث معماري سرويس گيرنده و سرويس دهنده  دو واژه   fat-client و thin-client  قدم در ادبيات نرم افزار گذاشتند . در معماري فوق ، هدف استفاده از توان پردازشي سرويس گيرنده و سرويس دهنده براي اجراي يك برنامه است . استفاده از توان پردازشي هر يك از عناصر اصلي درگير در معماري فوق و تعريف سهمي خاص براي هر يك  ( سرويس گيرنده و سرويس دهنده ) ، از اهداف اوليه و در عين حال بسيار مهم معماري فوق است .
پياده كنندگان برنامه هاي كامپيوتري خصوصا" برنامه هاي وب ، همواره با اين سوال مواجه بوده و هستند كه در تقسيم سهم پردازش ، چه ميزان سهم را مي بايست به سرويس گيرنده داد ؟ چه پردازش هائي را مي توان در سمت سرويس گيرنده انجام داد ؟ در پاسخ به اين سوال رويكردهاي مختلفي مطرح شده است . fat client و thin client دو نمونه متداول در اين زمينه مي باشند .
در   fat client ، هدف بكارگيري پتانسيل هاي  مرورگر براي انجام اكثر پردازش ها در يك برنامه وب است . رويكرد فوق در اواسط دهه 90 ميلادي در كانون توجه طراحان و پياده كنندگان وب قرار گرفت . علت اين امر به تلاش شركت هاي بزرگ نرم افزاري در جهت توليد و ارائه فناورهائي بود كه توانمندي مرورگر  در انجام پردازش  را افزايش مي داد . ظهور فناورهائي نظير جاوا اسكريپت ، ايجاد يك اينترفيس برنامه نويسي در مرورگر ،‌ايجاد يك مدل شي گراء ( ولو ناقص ) براي يك سند HTML با هدف امكان دستيابي به هر يك از عناصر موجود در آن ، عرضه DHTML و CSS جملگي نشاندهنده تلاش هائي است كه در آن زمان با هدف افزايش توان پردازش در سمت سرويس گيرنده مطرح شد .
پس از گذشت مدت زمان كوتاهي ( از ابتداي سال 1996 ) ، تمايل به سمت برنامه هاي وب با ويژگي thin client مطرح گرديد . در مدل فوق ، هدف كاهش سهم پردازش در سمت سرويس گيرنده و افزايش پردازش هاي سمت سرويس دهنده بود . ظهور فناورهاي متعددي نظير ASP   و PHP   تنها نمونه اي اندك از تلاش هاي انجام يافته در آن دوران براي افزايش توان پردازش در سمت سرويس دهنده است .
با اين كه در ساليان گذشته همچنان از پتانسيل هاي سمت سرويس گيرنده براي انجام پردازش در برنامه هاي وب استفاده مي گرديد ، ولي رفتار اكثر برنامه هاي وب    مبتني بر اين واقعيت بود كه : " داده را وارد نمائيد ، صفحه را براي سرويس دهنده ارسال نمائيد و منتظر دريافت پاسخ باشيد " .
هم اينك ما شاهد يك تحول بزرگ ديگر در عرصه برنامه نويسي هستيم . تحولي كه مهمترين دستاورد آن ، تولد نسل جديدي از برنامه هاي وب است كه در آنها كاربر با برنامه داراي تعامل بمراتب بيشتري نسبت به نسل گذشته برنامه هاي وب است . اين تحول عظيم نرم افزاري به كمك مجموعه اي از فن آوري ها كه در مجموع به آنها Ajax گفته مي شود ، محقق مي گردد .
آيا Ajax قصد دارد با تغيير در الگوي رفتاري برنامه هاي وب فاصله آنها را با برنامه هاي desktop كاهش دهد ؟  آيا زمان آن رسيده است كه براي پردازش هاي سمت سرويس گيرنده از يك پلت فرم جامع ، همانند پلت فرم هاي ارائه شده سمت سرويس دهنده ، استفاده گردد ؟ آيا تاكنون از اين فناوري به منظور ايجاد برنامه هاي وب  استفاده شده است ؟  با استفاده از چه مكانيزم هائي مي توان مبادله اطلاعات بين سرويس گيرنده و سرويس دهنده را كاهش و از پهناي باند موجود استفاده بهينه كرد ؟
اجازه دهيد به اين سوال و سوالات بسيار ديگر در رابطه با Ajax ، فناورهاي مرتبط با آن و از همه مهمتر كاربرد آن در بخش هاي بعدي پاسخ دهيم .

برگرفته از سايت سخا روش

Add Comments
Name:
Email:  
User Comments:
SecurityCode: Captcha ImageChange Image