برنامه های وب مبتنی بر سرويس گيرنده : AJAX و Atlas
برنامه های وب مبتنی بر سرويس گيرنده : AJAX و Atlas
برنامه های وب مبتنی بر سرويس گيرنده : AJAX و Atlas
يكی از ويژگی های مهم برنامه های وب ، تبعيت آنان از معماری "سرويس گيرنده - سرويس دهنده" است . اين بدان معنی است كه پياده كنندگان برنامه های وب می توانند به منظور تحقق پردازش های سمت سرويس دهنده و سرويس گيرنده از فن آوری های متعددی استفاده نمايند. يكی از نكات مهم در خصوص انجام پردازش های سمت سرويس گيرنده ، ميزان وابستگی آنان به اطلاعات موجود در سمت سرويس دهنده است . به عبارت ديگر ، اجرای يك event handler در سرويس گيرنده تا چه ميزان وابسته به كد سمت سرويس دهنده است و به منظور انجام آن چه ميزان داده می بايست بين سرويس گيرنده و سرويس دهنده مبادله گردد ؟
صرفنظر از اين كه به سوال فوق چه پاسخی داده می شود ، واقعيت اين است كه به منظور مديريت رويدادهای محقق شده در سمت سرويس گيرنده ، می بايست ملزومات مورد نياز ايجاد تا پياده كنندگان بتوانند با استفاده از آنان پردازش های سمت سرويس گيرنده را مديريت نمايند .
XMLHTTP ، شامل مجموعه ای API ( رابط برنامه نويسی ) است كه امكان ارسال و يا دريافت داده به صورت باينری ، HTML و XML را از سرويس دهندگان وب بر روی اينترنت و به كمك پروتكل HTTP فراهم می نمايد . در مواردی كه نياز به داده موجود در سمت سرويس دهنده می باشد ، XMLHTTP به صورت پيوسته اقدام به ارسال درخواست خود برای سرويس دهنده می نمايد تا آخرين اطلاعات را بدون نياز به refresh كردن مدام مرورگرها ، بازيابی نمايد . در واقع ، به كمك فن آوری فوق ، سرويس گيرندگان قادر به مبادله غيرهمزمان با سرويس دهنده بوده و می توانند اقدام به ارسال و يا دريافت داده XML بدون نياز به انجام يك round trip كامل كه باعث توليد مجدد يك صفحه می گردد ، نمايند .
ماحصل اين تحولات ، ظهور نسل جديدی از برنامه های وب نظير Microsoft Virtual Earth و Microsoft Windows Live است . ايجاد چنين برنامه های وبی كار ساده ای نخواهد بود و پياده كنندگان می بايست شناخت مناسبی نسبت به جاوااسكريپت و مدل DOM داشته باشند كه ممكن است در هر مرورگر متفاوت باشد . علاوه بر اين ، جاوااسكريپت تمامی ويژگی های يك زبان شی گراء را ارائه نمی نمايد و بسياری از ملزومات مورد نياز پياده كنندگان برنامه های وب در فريمورك دات نت را تامين نمی نمايد ( نظير type-safe ) .
ايجاد برنامه های وب با تاكيد بر انجام پردازش سمت سرويس گيرنده ، نيازمند ملزوماتی نظير
يك زبان برنامه نويسی و پلت فرم پياده سازی جديد است .
Atlas ، يك فن آوری جديد در عرصه پياده سازی برنامه های وب ASP.NET است كه كتابخانه های اسكريپت سرويس گيرنده را با فريمورك پياده سازی مبتنی بر سرويس دهنده ASP.NET 2.0 تركيب می نمايد . در واقع ، Atlas به پياده كنندگان برنامه های وب يك پلت فرم مناسب به منظور پياده سازی صفحات وب مبتنی بر سرويس گيرنده را ارائه می نمايد كه قبلا" مشابه آن در خصوص صفحات وب مبتنی بر سرويس دهنده توسط ASP.NET ارائه شده بود . با توجه به اين كه Atlas ، به عنوان يك پتانسيل اضافه در كنار ASP.NET مطرح می باشد ، بديهی است كه كاملا" سازگار با سرويس های مبتنی بر سرويس دهنده باشد . با استفاده از Atlas ، می توان بخش قابل توجهی از پردازش های مورد نياز يك برنامه را به سمت سرويس گيرنده انتقال داد ( fat-client ) . در چنين مواردی ، امكان ارتباط سرويس گيرنده با سرويس دهنده در background فراهم می گردد. ماحصل اين فن آوری ، ايجاد برنامه های وبی است كه علاوه بر ارائه امكانات مناسب در لايه رابط كاربر ( UI ) ، دارای توان پاسخگوئی بالائی می باشند و به سادگی می توانند با سرويس دهنده ارتباط برقرار نمايند .
AJAX علاوه بر جاوااسكريپت از چندين فن آوری ديگر در سمت سرويس گيرنده نيز استفاده می نمايد :
• DOM : به كمك فن آوری فوق ، عناصر موجود در يك صفحه HTML به عنوان مجموعه ای از اشياء استاندارد ( نظير document و windows ) در نظر گرفته می شوند . بدين ترتيب ، امكان دستيابی و انجام عمليات دلخواه بر روی آنان از طريق كد فراهم می گردد .
• DHTML ( برگرفته از Dynamic HTML ) : فن آوری فوق ، توانمندی HTML را به منظور واكنش مناسب در خصوص عملياتی كه توسط كاربران انجام می شود ( نظير درج داده ) با استفاده از اسكريپت های سمت سرويس گيرنده و بدون نياز به يك round trip افزايش می دهد .
• رفتارها ، شامل روشی مناسب به منظور برخورد سيستماتيك با عملياتی نظير drag and drop در سطح لايه رابط كاربر و مرتبط با عناصر موجود بر روی يك صفحه می باشد .
• عناصر : اشياء سفارشی شده جاوااسكريپت می باشند كه پتانسيل های توسعه يافته ای را در سمت سرويس گيرنده ايجاد می نمايند .
• عناصر موجود در صفحات وب می بايست متناسب با شرايط هر مرورگر برنامه نويسی گردند ، چراكه هر مرورگر يك نسخه متفاوت از DOM و DHTML را ارائه می نمايند(هر چند اين تفاوت ها اندك باشد) .
• برنامه نويسی سمت سرويس گيرنده صرفا" با استفاده از جاوااسكريپت انجام می شود . پياده سازی برخی از پتانسيل های AJAX می تواند برای پياده كنندگان بسيار پيچيده باشد و نيازمند دانش بالائی در خصوص استفاده از جاوااسكريت است .
• جاوا اسكريپت ، ويژگی ها و امكانات مورد نياز پياده كنندگان برنامه های دات نت را تامين نمی نمايد ( نظير يك رويكرد شی گراء كامل ) . علاوه بر اين ، در اين فن آوری از كتابخانه ای نظير آنچه در پلت فرم دات نت ارائه شده است ، استفاده نمی گردد و برنامه نويسان می بايست تمامی برنامه را از ابتدا كد نمايند .
• جاوااسكريپت و پياده سازی سمت سرويس گيرنده ، عموما" بخوبی در IDEs حمايت نمی گردند .
فن آوری Atlas ، مسائل اشاره شده را با ارائه يك فريمورك كامل برای ايجاد برنامه های وب مبتنی بر سرويس گيرنده برطرف می نمايد.
فن آوری Atlas ، دارای عناصر سرويس گيرنده و سرويس دهنده ای است كه آن را به خوبی با ASP.NET يكپارچه و مرتبط می نمايد
• لايه مختص مرورگرها : با استفاده از پتانسيل های ارائه شده توسط اين لايه ، اسكريپت های 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 برای پياده سازی در جاوااسكريپت ، قابليت سازگاری اتوماتيك با مرورگرها و يك مدل تعريفی برای پياده سازی سمت سرويس گيرنده ، نمونه هائی در اين زمينه می باشند .
• سرويس های وب كه ويژگی های 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 بر روی سرويس دهنده است تا به كمك آن
يك پلت فرم پياده سازی جامع و فراگير ايجاد گردد .
صرفنظر از اين كه به سوال فوق چه پاسخی داده می شود ، واقعيت اين است كه به منظور مديريت رويدادهای محقق شده در سمت سرويس گيرنده ، می بايست ملزومات مورد نياز ايجاد تا پياده كنندگان بتوانند با استفاده از آنان پردازش های سمت سرويس گيرنده را مديريت نمايند .
پردازش های سمت سرويس گيرنده از گذشته تاكنون
XMLHTTP ، شامل مجموعه ای API ( رابط برنامه نويسی ) است كه امكان ارسال و يا دريافت داده به صورت باينری ، HTML و XML را از سرويس دهندگان وب بر روی اينترنت و به كمك پروتكل HTTP فراهم می نمايد . در مواردی كه نياز به داده موجود در سمت سرويس دهنده می باشد ، XMLHTTP به صورت پيوسته اقدام به ارسال درخواست خود برای سرويس دهنده می نمايد تا آخرين اطلاعات را بدون نياز به refresh كردن مدام مرورگرها ، بازيابی نمايد . در واقع ، به كمك فن آوری فوق ، سرويس گيرندگان قادر به مبادله غيرهمزمان با سرويس دهنده بوده و می توانند اقدام به ارسال و يا دريافت داده XML بدون نياز به انجام يك round trip كامل كه باعث توليد مجدد يك صفحه می گردد ، نمايند .
ماحصل اين تحولات ، ظهور نسل جديدی از برنامه های وب نظير Microsoft Virtual Earth و Microsoft Windows Live است . ايجاد چنين برنامه های وبی كار ساده ای نخواهد بود و پياده كنندگان می بايست شناخت مناسبی نسبت به جاوااسكريپت و مدل DOM داشته باشند كه ممكن است در هر مرورگر متفاوت باشد . علاوه بر اين ، جاوااسكريپت تمامی ويژگی های يك زبان شی گراء را ارائه نمی نمايد و بسياری از ملزومات مورد نياز پياده كنندگان برنامه های وب در فريمورك دات نت را تامين نمی نمايد ( نظير type-safe ) .
ايجاد برنامه های وب با تاكيد بر انجام پردازش سمت سرويس گيرنده ، نيازمند ملزوماتی نظير
يك زبان برنامه نويسی و پلت فرم پياده سازی جديد است .
AJAX ( برگرفته از asynchronous JavaScript and XML )
Atlas : تلاشی در جهت ايجاد يك پلت فرم پياده سازی جامع
Atlas ، يك فن آوری جديد در عرصه پياده سازی برنامه های وب ASP.NET است كه كتابخانه های اسكريپت سرويس گيرنده را با فريمورك پياده سازی مبتنی بر سرويس دهنده ASP.NET 2.0 تركيب می نمايد . در واقع ، Atlas به پياده كنندگان برنامه های وب يك پلت فرم مناسب به منظور پياده سازی صفحات وب مبتنی بر سرويس گيرنده را ارائه می نمايد كه قبلا" مشابه آن در خصوص صفحات وب مبتنی بر سرويس دهنده توسط ASP.NET ارائه شده بود . با توجه به اين كه Atlas ، به عنوان يك پتانسيل اضافه در كنار ASP.NET مطرح می باشد ، بديهی است كه كاملا" سازگار با سرويس های مبتنی بر سرويس دهنده باشد . با استفاده از Atlas ، می توان بخش قابل توجهی از پردازش های مورد نياز يك برنامه را به سمت سرويس گيرنده انتقال داد ( fat-client ) . در چنين مواردی ، امكان ارتباط سرويس گيرنده با سرويس دهنده در background فراهم می گردد. ماحصل اين فن آوری ، ايجاد برنامه های وبی است كه علاوه بر ارائه امكانات مناسب در لايه رابط كاربر ( UI ) ، دارای توان پاسخگوئی بالائی می باشند و به سادگی می توانند با سرويس دهنده ارتباط برقرار نمايند .
مفاهيم فنی اوليه AJAX
AJAX علاوه بر جاوااسكريپت از چندين فن آوری ديگر در سمت سرويس گيرنده نيز استفاده می نمايد :
• DOM : به كمك فن آوری فوق ، عناصر موجود در يك صفحه HTML به عنوان مجموعه ای از اشياء استاندارد ( نظير document و windows ) در نظر گرفته می شوند . بدين ترتيب ، امكان دستيابی و انجام عمليات دلخواه بر روی آنان از طريق كد فراهم می گردد .
• DHTML ( برگرفته از Dynamic HTML ) : فن آوری فوق ، توانمندی HTML را به منظور واكنش مناسب در خصوص عملياتی كه توسط كاربران انجام می شود ( نظير درج داده ) با استفاده از اسكريپت های سمت سرويس گيرنده و بدون نياز به يك round trip افزايش می دهد .
• رفتارها ، شامل روشی مناسب به منظور برخورد سيستماتيك با عملياتی نظير drag and drop در سطح لايه رابط كاربر و مرتبط با عناصر موجود بر روی يك صفحه می باشد .
• عناصر : اشياء سفارشی شده جاوااسكريپت می باشند كه پتانسيل های توسعه يافته ای را در سمت سرويس گيرنده ايجاد می نمايند .
چالش های فن آوری AJAX
• عناصر موجود در صفحات وب می بايست متناسب با شرايط هر مرورگر برنامه نويسی گردند ، چراكه هر مرورگر يك نسخه متفاوت از DOM و DHTML را ارائه می نمايند(هر چند اين تفاوت ها اندك باشد) .
• برنامه نويسی سمت سرويس گيرنده صرفا" با استفاده از جاوااسكريپت انجام می شود . پياده سازی برخی از پتانسيل های AJAX می تواند برای پياده كنندگان بسيار پيچيده باشد و نيازمند دانش بالائی در خصوص استفاده از جاوااسكريت است .
• جاوا اسكريپت ، ويژگی ها و امكانات مورد نياز پياده كنندگان برنامه های دات نت را تامين نمی نمايد ( نظير يك رويكرد شی گراء كامل ) . علاوه بر اين ، در اين فن آوری از كتابخانه ای نظير آنچه در پلت فرم دات نت ارائه شده است ، استفاده نمی گردد و برنامه نويسان می بايست تمامی برنامه را از ابتدا كد نمايند .
• جاوااسكريپت و پياده سازی سمت سرويس گيرنده ، عموما" بخوبی در IDEs حمايت نمی گردند .
فن آوری Atlas ، مسائل اشاره شده را با ارائه يك فريمورك كامل برای ايجاد برنامه های وب مبتنی بر سرويس گيرنده برطرف می نمايد.
فن آوری Atlas ، دارای عناصر سرويس گيرنده و سرويس دهنده ای است كه آن را به خوبی با ASP.NET يكپارچه و مرتبط می نمايد
مفاهيم فنی اوليه معماری Atlas
عناصر سمت سرويس گيرنده Atlas
• لايه مختص مرورگرها : با استفاده از پتانسيل های ارائه شده توسط اين لايه ، اسكريپت های 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
• سرويس های وب كه ويژگی های 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 بر روی سرويس دهنده است تا به كمك آن
يك پلت فرم پياده سازی جامع و فراگير ايجاد گردد .
مقالات مرتبط
تازه های مقالات
ارسال نظر
در ارسال نظر شما خطایی رخ داده است
کاربر گرامی، ضمن تشکر از شما نظر شما با موفقیت ثبت گردید. و پس از تائید در فهرست نظرات نمایش داده می شود
نام :
ایمیل :
نظرات کاربران
{{Fullname}} {{Creationdate}}
{{Body}}