Pages

วันเสาร์, พฤษภาคม 14, 2554

HTML5 : WebSocket - จุดจบของ Extension Bridge Socket ?


ต้องยอมรับว่าช่วงปีที่ผ่านมา
HTML5 เป็นข่าวที่ค่อนข้างดังเพราะไม่ว่าจะเป็นฝั่ง Google , Apple หรือแม้แต่ Microsoft
เองก็ออกมา ประกาศผลักดัน "Standard" ตัวนี้มากมาย ....

แต่ประเด็นที่สนใจสำหรับ HTML5 ในตอนนี้คือ WebSocket ครับ

ที่ผ่านๆ มา หลายๆ คนพยายามบอกว่า "Client-Server มันตายไปนานแล้ว"
ก็แอบงงๆ ว่า Web มันไม่ใช่ Client-Server ตรงไหน ? วิ่ง TCP/IP เหมือนกัน
เพียงแต่เป็น HTTP Protocol ที่ไม่ใช่ Raw Socket Data เท่านั้น ...
ซึ่งสำหรับในเมืองไทย ... คนที่ทำ Desktop App ส่วนใหญ่จะโดนดูถูกเหยียดหยาม
นิดนึงว่า "ล้าหลัง" บ้างไม่ก็ "เต่าล้านปี" บ้าง ...

แต่มาวันนี้ WebSocket ก็เป็นอีกทางเลือกนึงที่ทำให้ "ช่องว่าง" ระหว่าง Web Browser
และ Desktop App ลดลง ... เพราะสามารถเขียน API ของ protocol ที่มีอยู่
ให้สามารถ ส่งมายัง Browser ได้แล้ว ดังรุป ข้างล่าง ...


ข้อดีของการใช้ WebSocket ...
  • ไม่ต้องอาศัย comet ...
  • คาดว่าต่อไปทั้ง Flash / SilverLight / javaFX จะ support WebSocket
  • SmartPhone ที่มี UIWebView สามารถใช้งานได้อัตโนมัติ
    (ปรับ CSS ให้เป็น Mobile View แทน)
  • protocol reusable ... สำหรับ protocol ที่เป็น XML อยู่แล้วไม่จำเป็นที่จะต้องออกแบบใหม่
    สามารถให้ Adaptor แปลงเป็น JSON ได้เพื่อให้ง่ายต่อการ parsing บน Browser
  • เพิ่ม opportunity ให้กับ legacy system ... ให้รองรับ UI ประเภทใหม่ๆได้
ข้อเสีย ...
  • เขียนโค้ดเพิ่ม (ฮา)
  • Bottle neck ที่ Adaptor ถ้าทำ Session management ไม่ดี
  • Protocol เป็น Public เกินไป อาจจะไม่เหมาะสำหรับการ implement ที่มี Security สูงๆ
    แต่ Websocket ก็ support SSL Channel อยู่แล้ว

บรรยายสรรพคุณไปเยอะแล้ว ... คราวนี้กลับมาดู Browser บ้างว่าเจ้าไหน support บ้าง ...
เท่าที่หามาได้ .... ได้แก่ ...
  ข้อมูลจาก
  • http://en.wikipedia.org/wiki/Web_Sockets
  • http://stackoverflow.com/questions/1253683/websocket-for-html5

ถ้าติดตามข่าว IT จะเห็นว่า Technology มีมาใหม่แทบทุกปี
แต่สิ่งที่สำคัญในการทำ Software Development คือ Reliable + Time To Market.
ซึ่งถ้าหากวางแผนไม่ดี หรือเลือกใช้ Technology ที่ไม่เหมาะสมก็อาจจะทำให้ ดับอนาถได้ ...

ว่าแล้ว java จะ เร็วส์ ขึ้นไหม .... lol