PDA

نسخه کامل مشاهده نسخه کامل : Google Gears تحقق رؤياي بزرگ و ديرينه ي توسعه‌دهندگان برنامه‌هاي تحت وب



f-secure
19-07-2007, 23:22
پنجشنبه، ۲۸ تیرماه ۱۳۸۶ [ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
همواره آرزوي بزرگ و ديرينه توسعه‌دهندگان برنامه‌هاي تحت وب ادامه اجراي برنامه‌هايشان در صورت قطع شدن ارتباط از اينترنت بوده‌است. اكنون گوگل آمده ‌است كه كابوس چند ساله آنان را به رويايي شيرين تبديل كند!












Google Gears
[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]

شهرام انسان- دنياي كامپيوتر و ارتباطات
خبر منتشر شد: «محيط برنامه‌سازي تحت‌وب آفلاين گوگل ارائه شد.» اگر چه دوستداران تكنولوژي‌هاي وب به خوبي مي‌دانند اين اولين تلاش براي ارائه محيط‌هاي برنامه‌سازي آفلاين تحت وب نيست اما زماني كه گوگل بزرگ (!) وارد اين گود مي‌شود به معناي آن است كه تحولاتي فراگير در پيش روست. همواره آرزوي بزرگ و ديرينه توسعه‌دهندگان برنامه‌هاي تحت وب ادامه اجراي برنامه‌هايشان در صورت قطع شدن ارتباط از اينترنت بوده‌است. اكنون گوگل آمده ‌است كه كابوس چند ساله آنان را به رويايي شيرين تبديل كند!



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]



تكنولوژي Google Gears كه در حال گذران نسخه آزمايشي (beta) خود است، يك محيط توسعه تحت وب سورس آزاد (open source) است كه امكان ادامه بكارگيري برنامه‌هاي تحت وب بدون وجود ارتباط با كارگزار از طريق شبكه يا اينترنت را فراهم مي‌سازد. به زبان ساده‌تر اگر در حالت عادي با قطع ارتباط شبكه‌اي يا اينترنتي تمامي برنامه‌هاي تحت وب بدون امكان اجرا باقي مي‌مانند، به كمك اين محيط مي‌توان استفاده از برنامه را ادامه داد و در زمان ارتباط مجدد، تغييرات اعمال شده در حالت آفلاين را به كارگزار اصلي منتقل نمود.

اين عمل به كمك سه گروه از API ارائه شده به زبان جاوا اسكريپت ميسر شده‌ است:
- ذخيره‌سازي منابع و ارائه سرويس محلي به برنامه
- ذخيره‌سازي اطلاعات در يك بانك اطلاعاتي رابطه‌اي قابل جست‌وجو به صورت محلي!
- امكان اجراي كدهاي غير هم‌زمان (asynchronous) جاوا اسكريپ براي بهبود كارايي برنامه محلي

گوگلي معماري ارائه شده در Google Gear را نتيجه آزمون ساختارهاي مختلف براي برنامه‌هاي تحت وب آفلاين خوانده است. اين معماري نكات زير را در مورد هر برنامه مشخص مي‌كند:





جداسازي لايه داده
در بيشتر برنامه‌هاي تحت وب امروزي لايه‌اي به نام لايه داده در سرويس گيرنده (client) وجود ندارد.

1. جداسازي لايه داده 2. تصميم‌گيري در مورد اينكه چه قابليت‌هايي از برنامه در حالت آفلاين پياده‌سازي شوند. (استراتژي اتصال) 3. تصميم‌گيري در مورد عملكرد modality برنامه 4. پياده‌سازي همزماني (يكسان‌سازي) اطلاعات


[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شكل 1 – در سرويس گيرنده لايه داده وجود ندارد



در اين حالت كد AJAX (كد جاوا اسكريپتي كه به صورت ديناميك اطلاعات موردنياز صفحه را از سرويس‌دهنده فرا مي‌خواند) مستقيما سرويس‌هاي ارائه شده در سمت سرويس‌دهنده را فراخوانده و به اطلاعات دست مي‌يابد. در اين حالت توابع API كه سرويس‌دهنده به كد AJAX سرويس گيرنده ارائه مي‌دهد، نقش لايه داده را بازي مي‌كند.

اضافه نمودن لايه داده
در حالت كلي اضافه نمودن لايه داده، قدم اول است. زماني كه يك لايه ذخيره‌سازي محلي داده در سرويس گيرنده پيش‌بيني شود، يك درگاه واحد براي گذراندن تمام اطلاعات ورودي يا خروجي در اختيار خواهيم داشت.



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شكل 2 – لايه داده در سمت سرويس گيرنده (Client)



به عنوان مثال اگر كد AJAX به صورت سنتي براي به دست آوردن اطلاعات حساب‌هاي مشتريان به صورت مستقيم يك سرويس از سرويس دهنده را فراخواني مي‌نمود، در حالت جديد اين فراخواني از طريق يك ماژول واسط انجام خواهد پذيرفت. در اين حالت اين ماژول تصميم خواهد گرفت كه اطلاعات حساب مشتريان را از سرويس دهنده از طريق اينترنت يا از ذخيره‌سازي محلي در سرويس گيرنده فراخواني كند.

به صورت مشابه زماني كه برنامه درخواست به‌روزرساني اطلاعات حساب يك مشتري را مي‌دهد، اين كار به ماژول واسط واگذار مي‌شود. ماژول واسط مي‌تواند تصميم بگيرد كه اطلاعات را به صورت محلي ذخيره كند يا براي ذخيره بلافاصله به سرويس دهنده بفرستد يا نهايتا انجام اين كار را به كمك توابع همزمان‌سازي برنامه‌ريزي نمايد.

مي‌توان تصور نمود كه ماژول واسط همانند يك سوئيچ داده عمل مي‌كند. در حالت اول كليه ارتباطات داده با سرويس دهنده به صورت عادي انجام مي‌شود. اين همان حالتي كه Google Gears وجود ندارد يا هنوز انجام عمليات آفلاين از سوي كاربر درخواست نشده‌است.



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شكل 3 – لايه سوئيچ داده



حالت دوم همانگونه كه در شكل 4 نمايش داده شده است، ساخت يك لايه داده محلي است؛ كه به جاي اتصال به بانك اطلاعاتي سرويس دهنده از بانك اطلاعاتي محلي Google Gears استفاده مي‌نمايد. در اين حالت لايه داده همان رابط Interface را خواهد داشت كه در ارتباط با سرويس‌هاي سرويس دهنده از اينترنت بكار گرفته مي‌شد.



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شكل 4 – لايه داده محلي



قابليت‌هاي برنامه در حالت آفلاين
به دلايل تكنيكي ممكن است هر قابليتي از برنامه امكان اجرا در حالت آفلاين را نداشته باشد. در اين قسمت بايد قابليت‌هايي كه نياز به پياده‌سازي براي اجرا در حالت آفلاين را دارند تعيين شده و تصميم‌گيري در مورد زمان‌هاي اتصال و قطع از سرويس دهنده انجام شود. تصميم‌گيري در مورد اين‌گونه ايجاد ارتباط يا قطع شدن را استراتژي اتصال مي‌نامند. ممكن است يك تفكر اين باشد كه استفاده از ذخيره‌سازي محلي به علت سرعت بالاي آن هميشه يك راه حل مناسب است؛ اما دلايل بسياري وجود دارد كه نياز يا اجبار براي اتصال به سرويس دهنده و دسترسي به اطلاعات آن اجتناب‌ناپذير باشد:

- ممكن است طبيعت اطلاعات آنچنان زودگذر باشد كه امكان ذخيره‌سازي و نگهداري محلي آنها نباشد. به عنوان مثال برنامه‌اي كه سود لحظه‌اي بازار سهام را محاسبه مي‌كند.
- اطلاعات برخي از برنامه‌ها فقط در حالت آنلاين داراي معني هستند. مانند اطلاعات برنامه‌هاي پيام‌رسان همانند ياهو مسنجر.
- ممكن است برنامه فقط نياز به ذخيره محلي اطلاعاتي را داشته باشد كه دسترسي متناوب به آنها نياز است.
- ممكن است محدوديت‌هاي محاسباتي يا ذخيره‌سازي امكان اجراي آفلاين يك قابليت از برنامه را منتفي سازد.

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

Modality
يك سوال اساسي كه تمام برنامه‌هاي آفلاين بايد پاسخي براي آن داشته باشند، بحث Modality است. برنامه‌هاي modal حالت آفلاين مشخصي در برابر حالت آنلاين دارند كه معمولا در رابط كاربري آنها به خوبي نمايش داده مي‌شود. كاربر به خوبي از حالت جاري برنامه آگاهي دارد و حتي در بعضي از موارد در تصميم‌گيري براي تغيير حالت برنامه از آفلاين به آنلاين و بالعكس شركت مي‌كند. برنامه‌هاي modeless سعي در گذر از حالت آفلاين به آنلاين بدون تغييرات آشكار در ظاهر و رابط كاربري خود دارند. كاربر نيازي به سهيم شدن در عمليات تغيير حالت نداشته و اين امر به صورت خودكار صورت مي‌پذيرد.

همزمان سازي اطلاعات
بدون توجه به آنكه چه نوع استراتژي اتصال يا modality بكار برده باشيد، داده‌هاي محلي شما نسبت به سرويس‌دهنده اصلي متفاوت خواهند شد. برطرف نمودن اين تغييرات كه ناشي از انجام ورود و تغييرات اطلاعات از طرف كاربر است همگاه‌سازي خوانده مي‌شود. راه‌هاي متفاوتي براي انجام همگاه‌سازي وجود دارد كه بسته به شرايط خاص برنامه انتخاب مي‌شوند.

همگاه‌سازي دستي
در اين حالت كه ساده‌ترين روش همگاه‌سازي محسوب مي‌شود، كاربر در مورد زمان همگاه‌سازي تصميم گرفته و اين عمل بنابر دستور كاربر انجام مي‌شود. در اين حالت كليه اطلاعات ذخيره‌شده محلي به سرويس دهنده ارسال شده (upload) و پس از آن نسخه به روز شده همان اطلاعات از سرويس دهنده دريافت (download) و در بانك داده محلي ذخيره مي‌شود.

همگاه‌سازي در پس‌زمينه
در اين روش برنامه به صورت مداوم اطلاعات را بين سرويس‌دهنده و سرويس‌گيرنده همگاه مي‌كند. بنابراين اطلاعات به روز شده هميشه مهيا است كه اگر ناگهاني اتصال به سرويس دهنده قطع شود امكان ادامه عمليات به صورت آفلاين فراهم باشد. علاوه بر اين كارايي برنامه به خصوص در حالتي كه سرعت اينترنت كند است در حد قابل قبولي باقي مي‌ماند. اين حالت در شكل 5 به تصوير كشيده شده‌است.



[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ]
شكل 5 – معماري همگاه‌سازي در پس‌زمينه



جمع‌بندي
روش‌ها و طراحي‌هاي متنوعي براي اجرا و پياده‌سازي يك برنامه تحت وب به صورت آفلاين وجود دارد. گوگل در محيط Google Gears سعي در ارائه راه‌حلي ساده و كارا با قابليت بكارگيري عملي در برنامه‌هاي پياده‌سازي شده سنتي تحت وب داشته ‌است. منتظر ارائه نسخه نهايي اين محصول هستيم.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید

godsmak
20-07-2007, 00:01
دوست عزیز ممنون از خبری که دادید.