یکشنبه 25 اسفند 1387
نویسنده: حمیدرضا طبقه بندی: مقالات، نرم افزار، اخبار IT، رایانه،
آشنایی با فناوری AJAX & Atlas
برنامه های وب مبتنی بر سرویس گیرنده : AJAX و Atlas
یكی از ویژگی های مهم برنامه های وب ، تبعیت آنان از معماری "سرویس گیرنده - سرویس دهنده" است . این بدان معنی است كه پیاده كنندگان برنامه های وب می توانند به منظور تحقق پردازش های سمت سرویس دهنده و سرویس گیرنده از فن آوری های متعددی استفاده نمایند. یكی از نكات مهم در خصوص انجام پردازش های سمت سرویس گیرنده ، میزان وابستگی آنان به اطلاعات موجود در سمت سرویس دهنده است . به عبارت دیگر ، اجرای یك event handler در سرویس گیرنده تا چه میزان وابسته به كد سمت سرویس دهنده است و به منظور انجام آن چه میزان داده می بایست بین سرویس گیرنده و سرویس دهنده مبادله گردد ؟
صرفنظر از این كه به سوال فوق چه پاسخی داده می شود ، واقعیت این است كه به منظور مدیریت رویدادهای محقق شده در سمت سرویس گیرنده ، می بایست ملزومات مورد نیاز ایجاد تا پیاده كنندگان بتوانند با استفاده از آنان پردازش های سمت سرویس گیرنده را مدیریت نمایند .
پردازش های سمت سرویس گیرنده از گذشته تاكنون
با توجه به این كه پردازش های سمت سرویس گیرنده در برنامه های وب می بایست مستقل از نوع پلت فرم باشند ، بدیهی است كه تمامی تلاش های انجام شده در این عرصه ، می بایست متمركز بر روی برنامه های مرورگر باشد تا با ایجاد پتانسیل هائی در آنها ، امكان انجام پردازش های سمت سرویس گیرنده فراهم گردد . ظهور زبان های اسكریپت نویسی نظیر جاوااسكریپت و تجهیز مرورگرها به برنامه های مفسر مربوطه از جمله اقدامات عملی دراین عرصه است . استفاده از زبان جاوااسكریپت به منظور كدینگ پردازش های سمت سرویس گیرنده دارای قدمتی چندین ساله است . در ادامه ، قابلیت های جدیدی به مرورگرها اضافه گردید تا پیاده كنندگان بتوانند به كمك آنان برنامه های وب سمت سرویس گیرنده را ایجاد نمایند . هم اینك ، تمامی مرورگرهای متداول از یك مدل شی گراء موسوم به DOM ( برگرفته از document object model ) استفاده می نمایند و تعداد اندكی از آنها از یك ویژگی جدید با نام XMLHTTP استفاده می نمایند كه به كمك آن ، سرویس گیرندگان و سرویس دهندگان می توانند بدون نیاز به انجام یك postback كامل و round trip با یكدیگر و به صورت مستقیم ارتباط برقرار نمایند.
XMLHTTP ، شامل مجموعه ای API ( رابط برنامه نویسی ) است كه امكان ارسال و یا دریافت داده به صورت باینری ، HTML و XML را از سرویس دهندگان وب بر روی اینترنت و به كمك پروتكل HTTP فراهم می نماید . در مواردی كه نیاز به داده موجود در سمت سرویس دهنده می باشد ، XMLHTTP به صورت پیوسته اقدام به ارسال درخواست خود برای سرویس دهنده می نماید تا آخرین اطلاعات را بدون نیاز به refresh كردن مدام مرورگرها ، بازیابی نماید . در واقع ، به كمك فن آوری فوق ، سرویس گیرندگان قادر به مبادله غیرهمزمان با سرویس دهنده بوده و می توانند اقدام به ارسال و یا دریافت داده XML بدون نیاز به انجام یك round trip كامل كه باعث تولید مجدد یك صفحه می گردد ، نمایند .
ماحصل این تحولات ، ظهور نسل جدیدی از برنامه های وب نظیر Microsoft Virtual Earth و Microsoft Windows Live است . ایجاد چنین برنامه های وبی كار ساده ای نخواهد بود و پیاده كنندگان می بایست شناخت مناسبی نسبت به جاوااسكریپت و مدل DOM داشته باشند كه ممكن است در هر مرورگر متفاوت باشد . علاوه بر این ، جاوااسكریپت تمامی ویژگی های یك زبان شی گراء را ارائه نمی نماید و بسیاری از ملزومات مورد نیاز پیاده كنندگان برنامه های وب در فریمورك دات نت را تامین نمی نماید ( نظیر type-safe ) .
ایجاد برنامه های وب با تاكید بر انجام پردازش سمت سرویس گیرنده ، نیازمند ملزوماتی نظیر
یك زبان برنامه نویسی و پلت فرم پیاده سازی جدید است .
AJAX ( برگرفته از asynchronous JavaScript and XML )
پیاده سازی برنامه های وب با استفاده از فن آوری های اشاره شده ( اسكریپت نویسی سمت سرویس گیرنده و مبادله غیرهمزمان با سرویس دهنده ) ، AJAX نامیده می شود . AJAX ، پیاده كنندگان را قادر به تولید صفحاتی می نماید كه از توان پاسخگوئی بسیار مطلوبی در سمت سرویس گیرنده متناسب با رویداد ایجاده شده ، برخوردار می باشند . چراكه آنها از اسكریپت های سمت سرویس دهنده برای دستیابی و مدیریت عناصر بخش رابط كاربر استفاده می نمایند . علاوه بر این ، با توجه به مبادله غیرهمزمان داده به منظور ارسال و دریافت داده ، امكان انجام عملیات مورد نظر بر روی داده بدون وقفه و ازدست دادن state وجود خواهد داشت . Microsoft Virtual Earth و برنامه سرویس گیرنده نامه های الكترونیكی Outlook Web Access ، دو نمونه از برنامه های سبك AJAX ، می باشند .
Atlas : تلاشی در جهت ایجاد یك پلت فرم پیاده سازی جامع
فن آوری جدید ASP.NET با نام Atlas ، مجموعه ای از فن آوری های مایكروسافت را شامل می شود كه با تمركز بر روی اصول AJAX ، سعی در توسعه و بهبود آن را دارد .
Atlas ، یك فن آوری جدید در عرصه پیاده سازی برنامه های وب ASP.NET است كه كتابخانه های اسكریپت سرویس گیرنده را با فریمورك پیاده سازی مبتنی بر سرویس دهنده ASP.NET 2.0 تركیب می نماید . در واقع ، Atlas به پیاده كنندگان برنامه های وب یك پلت فرم مناسب به منظور پیاده سازی صفحات وب مبتنی بر سرویس گیرنده را ارائه می نماید كه قبلا" مشابه آن در خصوص صفحات وب مبتنی بر سرویس دهنده توسط ASP.NET ارائه شده بود . با توجه به این كه Atlas ، به عنوان یك پتانسیل اضافه در كنار ASP.NET مطرح می باشد ، بدیهی است كه كاملا" سازگار با سرویس های مبتنی بر سرویس دهنده باشد . با استفاده از Atlas ، می توان بخش قابل توجهی از پردازش های مورد نیاز یك برنامه را به سمت سرویس گیرنده انتقال داد ( fat-client ) . در چنین مواردی ، امكان ارتباط سرویس گیرنده با سرویس دهنده در background فراهم می گردد. ماحصل این فن آوری ، ایجاد برنامه های وبی است كه علاوه بر ارائه امكانات مناسب در لایه رابط كاربر ( UI ) ، دارای توان پاسخگوئی بالائی می باشند و به سادگی می توانند با سرویس دهنده ارتباط برقرار نمایند .
مفاهیم فنی اولیه AJAX
در AJAX ، پیاده كنندگان می توانند سرویس های وب را بطور غیرهمزمان و از طریق اسكریپت های سمت سرویس گیرنده و با استفاده از شی XMLHTTPRequest فراخوانده تا اطلاعات به عنوان داده XML بسته بندی و در ادامه آنها را بر روی شبكه ارسال نمایند . بدین منظور شی XMLHTTPRequest یك شی پراكسی را ارائه می نماید تا به كمك آن امكان فراخوانی از راه دور و مبادله داده فراهم گردد . در فن آوری AJAX از زبان های اسكرپیت سمت سرویس گیرنده نظیر جاوااسكریپت بطرز گسترده ای استفاده می گردد . از جاوااسكریپت در مواردی نظیر فراخوانی از راه دور روتین ها ، انجام پردازش های مورد نیاز یك برنامه در سمت سرویس گیرنده و ایجاد ویژگی های پیشرفته ای در سطح لایه رابط كاربر استفاده می شود .
AJAX علاوه بر جاوااسكریپت از چندین فن آوری دیگر در سمت سرویس گیرنده نیز استفاده می نماید :
• DOM : به كمك فن آوری فوق ، عناصر موجود در یك صفحه HTML به عنوان مجموعه ای از اشیاء استاندارد ( نظیر document و windows ) در نظر گرفته می شوند . بدین ترتیب ، امكان دستیابی و انجام عملیات دلخواه بر روی آنان از طریق كد فراهم می گردد .
• DHTML ( برگرفته از Dynamic HTML ) : فن آوری فوق ، توانمندی HTML را به منظور واكنش مناسب در خصوص عملیاتی كه توسط كاربران انجام می شود ( نظیر درج داده ) با استفاده از اسكریپت های سمت سرویس گیرنده و بدون نیاز به یك round trip افزایش می دهد .
• رفتارها ، شامل روشی مناسب به منظور برخورد سیستماتیك با عملیاتی نظیر drag and drop در سطح لایه رابط كاربر و مرتبط با عناصر موجود بر روی یك صفحه می باشد .
• عناصر : اشیاء سفارشی شده جاوااسكریپت می باشند كه پتانسیل های توسعه یافته ای را در سمت سرویس گیرنده ایجاد می نمایند .
چالش های فن آوری AJAX
برنامه نویسی صفحات به سبك AJAX دارای چالش های متعددی است :
• عناصر موجود در صفحات وب می بایست متناسب با شرایط هر مرورگر برنامه نویسی گردند ، چراكه هر مرورگر یك نسخه متفاوت از DOM و DHTML را ارائه می نمایند(هر چند این تفاوت ها اندك باشد) .
• برنامه نویسی سمت سرویس گیرنده صرفا" با استفاده از جاوااسكریپت انجام می شود . پیاده سازی برخی از پتانسیل های AJAX می تواند برای پیاده كنندگان بسیار پیچیده باشد و نیازمند دانش بالائی در خصوص استفاده از جاوااسكریت است .
• جاوا اسكریپت ، ویژگی ها و امكانات مورد نیاز پیاده كنندگان برنامه های دات نت را تامین نمی نماید ( نظیر یك رویكرد شی گراء كامل ) . علاوه بر این ، در این فن آوری از كتابخانه ای نظیر آنچه در پلت فرم دات نت ارائه شده است ، استفاده نمی گردد و برنامه نویسان می بایست تمامی برنامه را از ابتدا كد نمایند .
• جاوااسكریپت و پیاده سازی سمت سرویس گیرنده ، عموما" بخوبی در IDEs حمایت نمی گردند .
فن آوری Atlas ، مسائل اشاره شده را با ارائه یك فریمورك كامل برای ایجاد برنامه های وب مبتنی بر سرویس گیرنده برطرف می نماید.
فن آوری Atlas ،
دارای عناصر سرویس گیرنده و سرویس دهنده ای است
كه آن را به خوبی با ASP.NET یكپارچه و مرتبط می نماید
مفاهیم فنی اولیه معماری Atlas
در ساده ترین حالت ، یك برنامه Atlas ، از كتابخانه های سمت سرویس گیرنده به منظور مدیریت رابط كاربر و فراخوانی عناصر مبتنی بر سرویس دهنده استفاده می نماید . Atlas ، همچنین عناصر سمت سرویس دهنده ای را ارائه می نماید كه با سرویس گیرنده مرتبط و می توانند اسكریپت سمت سرویس گیرنده از قبل تعریف شده ای را تولید نمایند .
عناصر سمت سرویس گیرنده Atlas
فن آوری Atlas برای پیاده سازی برنامه های سمت سرویس گیرنده ، از مجموعه ای كتابخانه سمت سرویس گیرنده ( فایل هائی با انشعاب Js . ) استفاده می نماید كه پیامد آن تعریف یك رویكرد لایه ای برای ایجاد برنامه های مبتنی بر سرویس گیرنده است . این لایه ها عبارتند از :
• لایه مختص مرورگرها : با استفاده از پتانسیل های ارائه شده توسط این لایه ، اسكریپت های Atlas در اكثر مرورگر سازگار بوده و ضرورتی به نوشتن اسكریت های مختص یك مرورگر وجود ندارد .
• سرویس های هسته atlas : شامل ضمائمی به جاوااسكریپت نظیر كلاس ها ، namespace ، event handler ، توارث ، نوع های داده و تسلسل اشیاء است . ویژگی های فوق یك مدل برنامه نویسی شی گراء را در اختیار پیاده كنندگان قرار می دهد تا به كمك بتوان علاوه بر سرعت در ایجاد برنامه ها از كد تولید شده نیز بدفعات استفاده نمود.
• كتابخانه كلاس پایه Atlas : شامل عناصری نظیر دیباگرها ، Timers ، ردیابی و string buliders است .
• لایه شبكه : این لایه با سرویس های مبتنی بر وب و برنامه ها ارتباط برقرار می نماید و مدیریت فراخوانی متدها از راه دور و غیرهمزمان را برعهده می گیرد . لایه فوق ، مدیریت فراخوانی غیرهمزمان برروی XMLHTTP را برعهده گرفته و باعث می گردد كه پیاده كنندگان بدون این كه درگیر پیچیدگی های موجود شوند با نوشتن چندین خط كد ، متدهای مورد نظر را فراخوانند .
• لایه UI : در این لایه قابلیت های سرویس گیرنده Atlas نظیر رفتارها ، گرامر تعریفی Atlas ، عناصر UI و نسبت دهی داده ارائه می گردد .
• لایه كنترل ها : این لایه كنترل های مختص atlas را برای پیاده سازی سمت سرویس گیرنده ایجاد می نماید . علاوه بر این كه می توان از طریق اسكریپت به این كنترل ها دستیابی داشت ، امكان انجام عملیات متفاوتی نظیر نسبت دهی داده نیز وجود دارد. كنترل های Navigation و data-bound listview نمونه هائی در این زمینه می باشند .
• یك مدل برنامه نویسی تعریفی كه پیاده كنندگان را قادر می سازد عناصر atlas را با روشی مشابه كنترل های سرویس دهنده ASP.NET ایجاد نمایند .
فن آوری Atlas را می توان
به عنوان كتابخانه های اسكریپت سرویس گیرنده تصور نمود كه زیرمجموعه ای از معماری ASP.NET بر روی سرویس دهنده می باشند
برای پیاده سازی برنامه های وب سمت سرویس گیرنده ، فن آوری Atlas ویژگی های متعددی را ارائه می نماید . ارائه یك مجموعه API برای پیاده سازی در جاوااسكریپت ، قابلیت سازگاری اتوماتیك با مرورگرها و یك مدل تعریفی برای پیاده سازی سمت سرویس گیرنده ، نمونه هائی در این زمینه می باشند .
عناصر سمت سرویس دهنده Atlas
فن آوری Atlas ، صرفا" در ارتباط با اسكریپت های سمت سرویس گیرنده نمی باشد و از عناصر سمت سرویس دهنده ، سرویس ها و كنترل هائی استفاده می نماید كه می توانند با اسكریپت های Atlas سمت سرویس گیرنده مرتبط گردند :
• سرویس های وب كه ویژگی های ASP.NET نظیر سرویس های پروفایل ، membership ، roles ، personalization و globalization را ارائه می نمایند .
• كنترل های سرویس دهنده Atlas كه كنترل های سرویس دهنده ASP.NET را reasemble می نمایند ولی اسكریپت های سمت سرویس گیرنده Atlas را منتشر می نمایند . این نوع كنترل ها ارتباط بسیار نزدیكی با كنترل های سرویس دهنده ASP.NET نظیر دكمه ها ، Label و ... دارند .
• كنترل های سرویس دهنده Atlas كه باعث می گردند جاوااسكریپت رفتارهای سمت سرویس گیرنده را تولید نماید . كنترل های HoverBehavior ، ClickBehavior ، Popup و AutocompleteBehavior نمونه هائی در این زمینه می باشند .
• تمامی كنترل های سرویس دهند atlas در ویژوال استودیو نیر قابل استفاده می باشند. بنابراین می توان از آنان در زمان طراحی استفاده نمود ( همانند كنترل های سرویس دهنده ASP.NET ) .
فن آوری Atlas ، اسكریپت نویسی سمت سرویس گیرنده را با پیاده سازی سمت سرویس دهنده ASP.NET یكپارچه می نماید و پیاده كنندگان می توانند از پتانسیل های ASP.NET در سمت سرویس دهنده برای برنامه های Atlas نیز استفاده نمایند .
هدف اولیه فن آوری Atlas ،
تركیب ویژگی اسكریپت های سمت سرویس گیرنده با ویژگی هائی از ASP.NET بر روی سرویس دهنده است تا به كمك آن
یك پلت فرم پیاده سازی جامع و فراگیر ایجاد گردد
تهیه شده در شرکت سخا روش - 1382
یا علی!
برنامه نویسی
(27)
نرم افزار
(33)
شیمی
(5)
آموزش
(23)
روانشناسی
(26)
کلمات بزرگان
(11)
تصاویر هنرمندان
(3)
ورزشی
(6)
جون من بخند!
(23)
پزشکی
(16)
موبایل
(12)
نمونه سوال فیزیک۱
(1)
نمونه سوال فیزیک۲
(2)
نمونه سوال فیزیک۳
(0)
نمونه سوال فیزیک۱و۲ پیش
(0)
English
(7)
شعر
(20)
داستان
(8)
رشته های دانشگاهی
(6)
سایت های برتر
(8)
عمومی
(126)
سخنی با شما
(25)
تصاویر
(70)
اخبار IT
(68)
نوابغ ایران
(12)
آیا می دانید؟
(22)
اخبار
(91)
هنری
(8)
ادبی
(30)
کتاب
(4)
مصاحبه
(3)
مقالات
(25)
هوا فضا
(2)
ریاضی
(12)
رایانه
(16)
فیزیک
(9)
ترفندوهک
(16)
معارف
(47)
فرهنگ
(8)
سخت افزار
(8)
گرافیک و انیمیشن
(2)
30a30
(3)