موقعیت شما:
صفحه اصلی » ابزار وب » Google Gears چيست و چه كاربردي دارد؟

تبلیغات ویژه

Google Gears چيست و چه كاربردي دارد؟

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

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

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

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

گوگلي معماري ارائه شده در Google Gear را نتيجه آزمون ساختارهاي مختلف براي برنامه‌هاي تحت وب آفلاين خوانده است. اين معماري نكات زير را در مورد هر برنامه مشخص مي‌كند:
۱٫ جداسازي لايه داده
۲٫ تصميم‌گيري در مورد اينكه چه قابليت‌هايي از برنامه در حالت آفلاين پياده‌سازي شوند. (استراتژي اتصال)
۳٫ تصميم‌گيري در مورد عملكرد modality برنامه
۴٫ پياده‌سازي همزماني (يكسان‌سازي) اطلاعات

جداسازي لايه داده

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

شكل ۱ – در سرويس گيرنده لايه داده وجود ندارد

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

اضافه نمودن لايه داده

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

figure_5

شكل ۲ – لايه داده در سمت سرويس گيرنده (Client)

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

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

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

شكل ۳ – لايه سوئيچ داده

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

شكل ۴ – لايه داده محلي

قابليت‌هاي برنامه در حالت آفلاين

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

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

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

Modality

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

همزمان سازي اطلاعات

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

همگاه‌سازي دستي

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

همگاه‌سازي در پس‌زمينه

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

شكل ۵ – معماري همگاه‌سازي در پس‌زمينه

سه ویژگی اساسی که Gear در اختیار شما قرار میدهد :

ایجاد یک سرور محلی برای ذخیره سازی اطلاعات و منابع اپلیکیشن آنلاین (HTML, JavaScript, images, etc) ، سرور ایجاد شده باعث میشود تا اپلیکیشن بدون نیاز به ارتباط با اینترنت به کار خود ادامه دهد .

یک دیتابیس برای ذخیره سازی و بازیابی اطلاعات مورد نیاز برای اپلیکیشن

ایجاد یک محیط کاری مناسب برای وب اپلیکیشن به صورت واکنش گرا (responsive) برای انجام عملیات سنگین در بکگراند

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

گوگل گیر در حال حاضر به صورت مقدماتی و برای طراحان وب انتشار یافته است و هنوز در مراحل باک گیری و رفع مشکلات احتمالی میباشد ولی به زودی شاهد انتشار عمومی Google Gears خواهیم بود .

اگر شما هم علاقه مندید تا از Google Gears در وب اپلیکیشن خود استفاده کنید کافیست به صفحه گوگل مربوط به گوگل گیر سر بزنید .

نظر شما درباره Google Gears چیست و آینده آنرا چطور پیش بینی میکنید .

جمع ‌بندي

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

برچسب ها:
اشتراک گذاری:
بیوگرافی نویسنده BloodCyb :

سلام امیر حامدی هستم نزدیک 6 ساله تو حوزه وب و امنیت فعالیت دارم با زبان های برنامه نویسی php و c و جاوا آشنایی دارم تو حوزه امنیت اطلاعات با انواع سیستم عامل ها کار کردم به خصوص کالی لینوکس و بک ترک هم اکنون مدیر سرور شرکت ارست هاست هستم.

نظرات:

دیدگاهتان را بنویسید