اینترنت و مهمترین سرویس آن وب علاوه بر این که حیات بشری را در هزاره سوم دستخوش تحولات فراوانی کرده است ، توانسته است منشاء تحولات گسترده ای در سایر حوزه های فناوری گردد .
در واقع ، تحول در زندگی بشریت مدیون پیشرفت در سایر حوزه های فناوری است .
یکی از این حوزه ها ، صنعت نرم افزار است .
برای آشنائی با این تحول بد نیست مروری سریع داشته باشیم به گذشته وب و نرم افزار تا از این رهگذر بتوانیم ضرورت ایجاد فناورهای جدیدی نظیر 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 نیز هر یک به نوعی حمایت خود از شی فوق را اعلام کردند .
بدین ترتیب پیاده کنندگان صفحات وب توانستند ، صفحاتی را خلق نمایند که با تعبیه کدهای مورد نیاز در آنها ، امکان پردازش در سمت سرویس گیرنده را فراهم نمایند .
انجام پردازش های اولیه نظیر تغییر رنگ و شکل ظاهری صفحات ، مدیریت عناصر موجود بر روی یک صفحه و تغییر آنها در زمان اجراء متناسب با عملیات کاربر ، بررسی صحت داده ورودی توسط کاربر در یک فرم ساده اطلاعاتی ، دریافت داده در پس زمینه و عدم نیاز به ارسال تمامی صفحه و بهنگام سازی بخش هائی خاص