Bamdad Dashtban

Developer

Category: comet

پیاده سازی کامیت ( comet ) با استفاده از Google Web Toolkit

این دو جزو تکنولوژی های نو در اینترنت هستند:

با استفاده از GWT شما می توانید اپلیکیشن های جاوا اسکریپت با استفاده از از جاوا بنویسید،که دارای پشتیبانی قوی از سیستم مدیریت رخدادها و موتور رندر گیری که باعث ایجاد محیط وب زنده ای می شود.
البته برای استفاده از این تکنولوژی باید سروری داشته باشید که به شما اجازه اجرا کردن Servlet ها رو بدهد.که در صورتی که در وبسایت خود از زبان دیگری به جز جاوا برای پیاده سازی سایت خود استفاده می کنید ، بهترین گزینه برای استفاده از این تکنولوژی استفاده از کامیت Off-board می باشد که در مقالات قبلی راجع به آن توضیح اندکی داده شد.
در واقع قسمتی از GWT به پیاده سازی تکنولوژی کامیت می پردازد که همین باعث شد که من دنبال کسب اطلاعات راجع به این ابزار قدرت مند گوگل برم.
Luca Masini در وبلاگ خود مثال جالبی از پیاده سازی GWT و Comet  میزند که در صورتی که علاقه مند هستید می تونید از این مقاله برای شروع استفاده کنید.در این مقاله یک اپلیکیشن چت نوشته شده است.
لینک این مقاله :  A Comet implementation for Google Web

Advertisements

Bayeux چیست؟

Bayeux چیست؟

پروتوکلی است بر روی HTTP برای جابجایی پیغام های asynchronous ( نا هماهنگ ) با زمان عکس العمل کم. ( سرعت بالا و ترافیک کم ).پیغام ها از طریق کانال های نامگذاری شده مسیریابی می شوند و می توانند از سرور به کلاینت ، کلاینت به سرور و کلاینت به کلاینت ( از طریق سرور ) منتقل شوند.

هدف اصلی این پروتوکل پیاده سازی تراکنش سریع کاربر از طریق وب با استفاده از آژاکس و تکنولوژی Server- Push که Comet نامیده می شود ، است.

Bayeux به دنبال کاهش پیچیدگی های توسعه اپلیکیشن های کامیتی(Comet-driven) برای برنامه نویسان است.

این پروتوکل باعث شده تا مشکلات مسیریابی پیغام ها و هماهنگی با سایر قسمت ها به سادگی حل شده و باعث ایجاد مکانیسم پیشرفت و بسط دادن سیستم می شود.

پیغام های Bayeux برای سادگی در خواندن و اجرا شدن به زبان JSON نوشته می شود.

این پروتوکل برای اولین بار از طرف بنیاد DOJO جزو سردمداران تکنولوژی آژاکس مطرح شد.از این پروتوکل در فریم ورک های مختلف مثل CometD به کار رفته است.از جمله فعالان در این پروژه می توان به Alex Russell جزو فعالان و بوجود آورندگان آژاکس و کامیت اشاره کرد.

برای خواندن این پروتکل از این لینک استفاده کنید.

*نکته: خواندن کلمه Bayeux به صورت آوایی بین بایا و بایو است و x آخر آن تلفظ نمی شود.

مقایسه کامیت On-Board و Off-Board

offboard comet

تعاریف:

Off-Board Comet : به حالتی گویند که سرور های ارائه دهنده کامیت و سرور ارائه دهند سایر داده ها از یکدیگر جدا شوند.

On-Board Comet : به حالتی گویند که همان سروری که داده ها را ارائه می دهد ، کامیت را هم ارائه دهد.

چه تفاوتی دارند؟

بیش از چیزی که شما فکر کنید.به خاطر جدا شدن منابع، تاثیر زیادی روی سیستم می گذارد.به صورت کلی بسته به معماری شما دارد.

مزایای Off-Board Comet:

  • باعث بهبود قطعی های سیستم می شود ( قطعی ها کمتر می شود).
  • هماهنگی بهتر با سیستم های چند زبانه.
  • توسعه و تغییرات راحت تر است.

مزایای On-Board Comet :

  • راه اندازی ساده و آسان.
  • مدیریت ساده در صورت استفاده از داده های نرمال.
  • توسعه و برنامه نویسی سیستم بسیار ساده تر و راحت تر انجام می شود.

از چه FrameWork هایی برای پیاده سازیOff-Board یا On-Board استفاده کنم؟

Cometd, Lightstreamer, Caplin Liberator و Orbited مثال های از فریم ورک ها برای پیاده سازی Off-Board Comet هستند.

DWR و وب سرور هایی که به صورت داخلی از کامیت پشتیبانی می کنند مانند, Grizzy Jetty و TomCat مثال هایی از پیاده سازی On-board Comet هستند.

به طور کلی در پروژه های بزرگ از فرم ورک ها و معماری Off-Board استفاده کنید و برای پروژه های کوچک از On-Board.

چگونه انتخاب کنیم؟

چند فاکتور که به شما استفاده از Off-board را نشان می دهد به شرح زیر است :

  • شما به دنبال توسعه سیستم هایی در مقیاس Google یا FaceBook هستید.
  • شما از زبان های برنامه نویسی مثل PHP استفاده می کنید که به صورت کامل Comet را پشتیبانی نمی کنند.
  • شما سیستم بزرگ فعالی دارید که کاری که کامیت می کند با کاری که کل سیستم می کند متفاوت است.

چند فاکتور که به شما استفاده از On-board را نشان می دهد به شرح زیر است :

  • احتیاجات کامیتی شما با فعالیت اصلی سیستم شما در یک راستا است.
  • شما به دنبال حل مسائل ساده و کارایی های کوچکی هستید.
  • شما کامیت را بدون ایجاد تغییرات زیادی در سرور می خواهید.