در این نوشته چندگونه از نرمافزارهای وب که از وبسوکتهای
HTML5 استفاده میکنند نشان داده میشود.استفاده از نرمافزار در دو جهت و همزمان
در اوایل پیدایش وب، تمرکز آن بیشتر روی بازیابی سند بود. کاربران یک URL درخواست میکردند و سرور یک شیء (یک صفحه وب یا یک فایل تصویر) در جواب برای آنها میآورد. امروزه سرورها میخواهند زمانی که چیزی برای ما دارند ما متوجه شویم. مثلا به روزرسانی سهام یا یک پیغام از طرف یک دوست. متاسفانه بر اساس ساختار کنونی وب، مشتریها باید با استفاده از HTTP دوطرفه ناقص، ارتباط خود را با سرور برقرار کنند. حتی نرمافزارهای نسبتا ثابت مثل بررسی درست نویسی یا کامل کردن خودکار جستجو، روشی احتیاج دارند که در آن بین مشتری و سرور برای فرمانهای معمول، ارتباط غیرهمزمان برقرار شود.
توسعهدهندگان در تلاشهای خود برای شبیهسازی ارتباط دوطرفه کامل روی HTTP دوطرفه غیرهمزمان، با استفاده از 2 اتصال، تکنیکها و حقههای هوشمندانهای ابداع کردند؛ یکی برای جریان پایین رونده و یکی برای جریان بالارونده. نگهداری و هماهنگی 2 اتصال سبب مصرف قابل توجه منبع و اضافه شدن پیچیدگی بیش ازحد میشود. بعلاوه این تکنیکها جایی که داده بین مشتری و سرور باید همزمان جابهجا شود، ارتباط دوطرفه کامل واقعی را ایجاد نمیکنند. بسادگی میتوان گفت که HTTP برای ارتباط دوطرفه کامل بلادرنگ طراحی نشده است.
ولی وبسوکتهای
HTML5 یک مدل ارتباطی دوطرفه کامل برای اینترنت به ارمغان آورده است. هماکنون ارتباط بین مشتری و سرور میتواند همزمان و در هر دو جهت جریان یابد. این مفهوم جدید، برای توسعهدهندگان کنونی نرمافزارهای وب، مدلهای نرمافزاری جدیدی بدون تحمیل بار اضافی و مشکلات رویکردهای قدیمیتر معرفی خواهد کرد.اگر شما درحال ساخت یک نرمافزار وب هستید که در آن داده باید در 2 جهت و به طور همزمان جریان پیدا کند، نیاز دارید از وبسوکتهای
HTML5 استفاده کند.به کارگیری پروتکل TCP با نرمافزار
بسیاری از نرمافزارهای وب نیاز دارند کاربران نهایی را به اطلاعات سرویسهای برپایه TCP متصل کنند. این سرویسها در سیستمهای قدیمیتر به کار رفتهاند یا توسط APIها و پروتکلهایی نظیر TIBCO EMS، JMS، RMDS، AMQP، XMPP و Stomp، در طول گذرگاههای پیغام جابهجا میشوند.
برخی از نرمافزارها ممکن است از زیرسیستمهای مختلفی ساخته شده باشند که هریک از یک پروتکل نرمافزاری مختلف استفاده میکند.
برای مثال یک زیرسیستم ممکن است به یک مدل برنامهنویسی احتیاج داشته باشد که به تغییرات ارزش موجودی آیتمها گوش کند و پاسخ دهد و زیرسیستم دیگر ممکن است حجم بسیار زیادی از رخدادهای پایگاه داده که از یک موتور پایدار ستونی ارسال شده است دریافت کند.
نرمافزار شما با استفاده از وبسوکتها میتواند از راهحلهای انباشته شده برای هر زیرسیستم به صورت جداگانه اجتناب کند.
دیگر نیازی نیست از هکها برای جای دادن داده در یک مرورگر استفاده کند یا نمونهبرداری متمرکز شبکه و پردازنده را برای شبیهسازی انتشار به کار برد. با استفاده از وبسوکت، بدنههای استانداردهای IETF و
W3C یک راه ظریف برای فعال کردن ارتباط شبکهای دوطرفه کامل در وب ارائه کردهاند.بعلاوه تا زمانی که ترافیک وبسوکت در پورتهای استاندارد 80HTTP و 443 جریان دارند هیچ احتیاجی به باز کردن پورتهای اضافی روی فایروالهای متحد برای سود بردن از ارتباط دوطرفه کامل وجود ندارد.
نیاز توسعهدهندگان نرمافزار به API
برای فراهم کردن یک نرمافزار قابل استفاده و قانع کننده، توسعهدهندگان روی بسترهای نرمافزاری قدرتمندی مثل ادوب فلکس (فلش)، مایکروسافت سیلورلایت، جاوا/جاوا اف ایکس و جاوااسکریپت حساب باز میکنند. اما اتصال این بسترهای قدرتمند به دادههای بلادرنگ در وب، ممکن است کمی آنها را به دردسر بیندازد.
توسعه دهندگان اغلب باید کتابخانههای ارتباطی مخصوص به خودشان را بسازند که درواقع مثل اختراع دوباره چرخ برای غلبه بر محدودیتهای ذاتی HTTP است.
متوجه خواهید بود که چه مقدار زمان و تلاش برای ساخت پروتکل ارتباطهای دوطرفه مطمئن و برای اتصال یک سرور نرمافزار به سیستمهای پایانی نیاز است. آزمایش کردن و امن کردن نرمافزارهایی که روی این پروتکل ساخته شدهاند بسیار مشکل است، زیرا اشاره کردن به مشکل در یک پروتکل اختصاصی سختتر است. بعلاوه اینکه این کار مختص یک نرمافزار است و تمام تلاشها برای استفاده دوباره از آن بیهوده خواهد بود.
وبسوکتهای
HTML5 یک واسط استاندارد و منحصربهفرد برای توسعه عرضه میکند. به این معنی که توسعهدهندگان میتوانند زمان کمتری صرف ساخت و آزمایش پروتکلهای ارتباطی کنند و زمان بیشتری روی طراحی تجربهای که کاربر خواهد داشت بگذارند بدون اینکه مجبور باشند کارهای بخش پایانی را دوباره انجام دهند. وبسوکتهای HTML5 کارهای توسعه که مهندسان مجبورند برای ساخت یک نرمافزار دوطرفه کامل امن و سریع انجام دهند حذف میکند.محمدحسین کردونی
منبع: web2.sys-con.com