Comet
- 1. 2010 10
轟 讌覃伎 れ螳朱 旧 覦螻 苦危Need螳 讀 れ伎 螳伎る 覦. 豪殊一
覯襴/る殊危/襯殊伎 れ螳煙 豌 HTML れ螳煙 蟲覦螻 .
Ajax 豢 轟 蠍一 覦 殊狩り 螻, れ螳 觜れ Need襯 覿 殊殊式.
企 Need螳 Comet企手 蠍一 襷り 螻, HTML5 WebSocket 蟾讌 伎伎蟆 .
HTML5 譴 襷れ伎 螻殊願鍵 覓語 WebSocket 蠍郁讌 螳 , 企
る伎 覦襦 Comet蠍一企.
Comet 蠍一 瑚記 企 襷 螻 朱, 朱蟲蠍螻Facebook 螻 .
蠏碁 1. Comet 觜 襦
Comet 覓伎企 手 襷蠍 , 襾殊 企朱 覿襴磯, 襾殊 企れ 螳螻 .
Ajax push, reverse Ajax, Tow-way-web, HTTP Streaming, HTTP server push, Asynchronous push 手覿襴蠍磯
. 企蟆 襷 覿襴 襦 れ 襷襦 螻 讌襷, 蟯 蠍 覓語 企蟆 Comet
企朱 企朱 郁鍵 .
覯螳 觚殊一語蟆 企欧瑚 覦 襷 企欧 一危磯ゼ 螻, 觚殊一碁 一危郁
覃 豌襴. , 觚殊一瑚 覈朱 豌 螳 朱 HTTP 郁屋覲企 蠍 HTTP 郁屋
企伎. 企 危襴貅伎 郁屋 覈語 Comet企手 .
觚殊一碁 一危郁 覦讌 殊殊 豌 螳 伎 覯 覿襯 譴願, Latency Traffic 譟
蠍企襷 譴 覦 覩誤.
覯 Http Streaming螻 Long Polling 覦朱 蟆 れ手 苦 れ螳 覲企ゼ 伎朱 覦
覯 Comet企手 朱朱 襷. Ajax螳 れ襦 蠏碁殊企手 螳.
れ螳 Need 豌襴 伎 讌蠍蟾讌 企至 轟 蟲伎 螻 讌 危エ覲碁.
れ螳 Event 襯 觚殊一語 覦 螳
蠍一ヾ れ螳朱 覲伎譯手 苦 Need襯 伎 伎襯 覈 豐 覯 覦覲旧朱 企 伎襯狩語
Refresh 覦 轟 Ajax 語 牛 覦 . (蠏碁 2 谿語^. Synchorous/Asynchornous 覦
谿企ゼ 誤螻 螳 螳.)
- 2. 覦 觚殊一語 螻 語蠍 覓語 れ螳 炎鴬 螳 , 覯螳 襷 覿伎 螳讌
覃, Latency螳 朱 蠍 . 讌襷, Event螳 襷 覦 蟆曙一 覦 襯
讌蠍磯 . 2 ろ EA 襷 Lord of Ulitma朱 濠伎 覦 螻 .
蠏碁 2. 譯手鍵 Refresh Ajax 語
覯 覿伎 譴願鍵 伎 Piggyback 企朱 覦 , 朱朱 HTTP 郁屋 旧
伎 麹 覲企企 覦 覩誤. (蠏碁 3 谿語^) Piggyback企朱 願 企 蠍, 覈襷蠍, 螳も
覩瑚 願襖 . 讌襷 覦 Piggyback 豌襴 蟆曙 覲企, Client 貊 貊螳
25% 伎 讀螳螻, 覲旧′煙 手鍵 .
蠏碁 3. Piggyback 覦
れ Http Streaming 覦企. 觚殊一語蠍一 HTTP 郁屋(Stream multipart/cuunked response)
- 3. 螳讌襦 , Event螳 覦襷 覦襦 豪殊一語蟆 れ螳朱 襴 覦 覩誤. (蠏碁 4 谿語^)
企蟆 , れ螳煙 覲伎ロ る 轟 . 讌襷, 覦 蟲 譴 螳 伎螳 ,
Iframe 伎 蟆曙郁 . 企 HTML 覦讌譴企朱UI螳 螻, 貉れ 覈 螻(豌 譴)螳
覲伎 螳 ろ危 讌螳 . 郁屋 豌願 keep alive 螳 伎 蠍 覓語
覿覿 豌襴螳 襷 .
覦 レ 豕 蠍 伎 Flash襯 覦 蟲 . れ企 貂襴磯 曙 襴
覦 .
蠏碁 4. Streaming 覦
觚殊一語 轟 譯手鍵(譟郁 蠍 蠍郁, 覲危 30豐~1覿) 襷 ajax襦 Event 覦讌襯 豌り
Event螳 覦 , 覦襦 觚殊一語 覦 Long Polling 企 . (蠏碁 5 谿語^). 譯手鍵
豌 覦螻 Streaming 覦 譴螳 襯 螻 . Facebook 豈螻 朱蓋 觜れ る/れ襦 蟆,
レ 觜り れ 覦 螻 .
蠏碁 5. Long Polling 覦
- 4. Web Browser Web Server
轟 譯手鍵
Event
讌蠍蟾讌 覦 譴 Streaming螻 Long Polling 覦 覈 Comet 企手 .
Comet 蠍一 譴 螳 襷 覦 Long Polling企. 伎 螳 所 螳 HTTP Connection 螳
覿讌 蠍 覓語 襷 螻 .
Facebook 豈 觜るゼ 危エ覲碁. 旧 朱 覲企, 螳 豈 , 願 襷 伎
螻, るジ 覯襦覿 願 轟 覦 覲企 覃讌襯 覦 . 豈 覈
ajax襦 郁屋襦 伎, call襷 襦 .
覯 觚殊一碁 伎 55豐蟾讌襷 蠍磯る碁り Http connection 譬襭螻 れ
Http connection れ 郁屋 蟲譟一企.
蠍磯蓋 豈/蟆 觜れ るゼ 蟆 螳 螳 伎襷, 蟒る 螻殊願 HTTP 螻襯 蠏
覲牛り 螻 .
蠏碁 6. Facebook 豈 蟲 伎
- 5. Framework 螳
Comet 蠍一 伎 讌 Servlet Container螻 javascript(ajax)襯 蟲 襦 襷.
Comet 蠍一 襷 蟲れ 企 譟伎. Dojo Jetty 讌 螳 覦 螻 ,
DWR (http://directwebremoting.org/dwr/index.html), cometD(http://cometd.org/) .
麹 cometD Bayeux朱 譴 蟲 蟲豌伎企. Bayeux json蠍磯朱 旧螻, http 郁屋
螳 channel襦 message襯 覦 螻 . message meta/event/polling 覦朱
伎 ク蟆 覦覯 螻牛螻 .
Servlet Container 讌
覯 覦襦 企 comet 覦 伎 讌 螳 .
蠍一ヾ 覯(Tomcat AJP Connector) Request 伎 Connection 襷崎 Thread 豌襴
覦 (Blocking IO/Thread per connection) Comet 蠍一 讌 . (蠏碁 7 谿語^)
Thread螳 蟲ロ 譴 碁, Thread 螳螳 る 企.
蠏碁 7. Blocking IO 覈 (蠍一ヾ)
- 6. Request 伎 Blocking讌 襦 螻(Non-blocking IO/Thread per request), 焔(NIO) 豬 覦
伎 螳 . 蠏碁 襷 Request螳 れ伎る朱 襷 覦譴 襦 伎 . (蠏碁 8 谿語^)
Jetty continuation 10700 Concurrent requests襯 豌襴 螻, 覃覈襴 57MB襷 り 覃,
Tomcat Comet 10000 request 伎 豌襴り .
蠏碁 8. Non-Blocking IO 覈 (Comet 讌)
蠏碁 Servlet Container襷 企 Blocking Thread 螻 伎蠍 伎 Non-Blocking Thread
襦 comet 蠍一 れ願 . Tomcat Comet, Jetty Continuation 蠍一れ 企 Comet 蠍一
(觜蠍 豌) Need襯 蠍 伎 襷れ伎. 襷 Servlet Containerれ 企 螻覩朱れ 螳讌螻
螻, 覿覿 譴. 蠏 蟆郁骸襦 Servlet 3.0 觜蠍 豌襴 蟲朱 豢螳. Servlet 3.0
2.3.3.3 Asynchoronous Processing 豢螳螻, State machine覿覿螻朱蠍一朱 豌襴 伎, API螳 螳
.
Servlet 3.0 蟲 Tomcat 7, Jetty 8 Beta螳 覦螻, 譟磯 螳 覯朱 襷
蟆 襴 螳.
Comet 蠍一 螻 ロ 螻殊
觚殊一 觚殊一 覯襷 Socket Limit , 覿覿 螻るゼ 伎 螻, 觚殊一碁
轟煙 危 . Connection Failure 豈螻 豌襴 螻覩殊 .
觜れ 轟煙 襷蟆 Ajax polling朱 螳讌, Comet朱 狩讌 螻覩殊 .
- 7. 蠏碁Μ螻, Scalability 螻覩殊 . 觜蠍 豌襴 覦 企り 讌襷, 覃覈襴螳 螳 伎螳
. 豕 GC 螻襴讀螻 螻, 覃覈襴 蠍一 焔レ 襷 覩手 . 麹 Socket
蟯 IO(NIO) 危伎 . Session 企 蟯襴 譴 覿覿
蟆企.
覲伎 螻糾鴬 豬渚 . Apache Http 覯 蟆曙磯 觜蠍 覈螳 讌讌 Tomcat 覦襦
豬 蟲譟磯ゼ 一 .
襷讌襷朱 貊 覲旧′煙 . Framework Servlet Container 觜蠍 Servlet 蟲 蟆曙,
State machine 朱 誤伎 State襯 螳覃伎 貊伎 蠍 覓語 蠏碁 Sequence 襦 螳覦 觜
覲旧″ .
谿瑚 伎
1. Comet螻 襴覯 Ajax 谿碁 碁
2. Exploring Reverse AJAX觚襦蠏
http://gmapsdotnetcontrol.blogspot.com/2006/08/exploring-reverse-ajax-ajax.html