وبسوكت HTML5 يك فناوري مهم و جديد است كه باعث ميشود با سرعت و اعتماد بيشتري نرمافزارهاي وب بلادرنگ، جذاب و زيبا بسازيد. مطمئنا وبسوكتهاي HTML5 بهترين گزينه است، ولي آيا اين فناوري جديد مناسب است.
در اين نوشته چندگونه از نرمافزارهاي وب كه از وبسوكتهاي
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 كارهاي توسعه كه مهندسان مجبورند براي ساخت يك نرمافزار دوطرفه كامل امن و سريع انجام دهند حذف ميكند.