• Save
Inside Of Mbga Open Platform
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Inside Of Mbga Open Platform

  • 4,478 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
4,478
On Slideshare
3,820
From Embeds
658
Number of Embeds
5

Actions

Shares
Downloads
0
Comments
0
Likes
3

Embeds 658

http://jibun.atmarkit.co.jp 386
http://engineer.dena.jp 251
http://www.slideshare.net 18
http://webcache.googleusercontent.com 2
http://aitcms-j.atmarkit.co.jp 1

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />
  • <br />

Transcript

  • 1. Inside mbga Open Platform - Gadget Server - Hideo Kimura DeNA
  • 2. About Me
  • 3. About Me •
  • 4. About Me • • DeNA
  • 5. About Me • • DeNA •
  • 6. About Me • • DeNA • • hidek, hide-k, hideki
  • 7. About Me • • DeNA • • hidek, hide-k, hideki • http://blog.hide-k.net/
  • 8. About Me • • DeNA • • hidek, hide-k, hideki • http://blog.hide-k.net/ • twitter: @hidek
  • 9. About Me • • DeNA • • hidek, hide-k, hideki • http://blog.hide-k.net/ • twitter: @hidek
  • 10. About Me • • DeNA • • hidek, hide-k, hideki • http://blog.hide-k.net/ • twitter: @hidek
  • 11. Agenda
  • 12. Agenda • MBGA Open Platform
  • 13. Agenda • MBGA Open Platform • Gadget Server
  • 14. Agenda • MBGA Open Platform • Gadget Server •
  • 15. Agenda • MBGA Open Platform • Gadget Server • •
  • 16. Agenda • MBGA Open Platform • Gadget Server • • •
  • 17. MBGA Open Platform
  • 18. MBGA Open Platform •
  • 19. MBGA Open Platform • • OpenSocial 0.9
  • 20. MBGA Open Platform • • OpenSocial 0.9 •
  • 21. MBGA Open Platform
  • 22. MBGA Open Platform • 2009/08/01
  • 23. MBGA Open Platform • 2009/08/01 • 2009/11/24
  • 24. MBGA Open Platform • 2009/08/01 • 2009/11/24 • 2010/01/27
  • 25. OpenSocial
  • 26. OpenSocial • Social Network (Container) API
  • 27. OpenSocial • Social Network (Container) API
  • 28. OpenSocial
  • 29. OpenSocial • HTML + JavaScript
  • 30. OpenSocial • HTML + JavaScript •
  • 31. OpenSocial • HTML + JavaScript • • …
  • 32. OpenSocial • HTML + JavaScript • • …
  • 33. OpenSocial • HTML + JavaScript • • … • RESTful protocol + Proxy request
  • 34. Architecture Gadget API Partner User Server Server Server
  • 35. Architecture Gadget API Partner User Server Server Server
  • 36. Architecture Gadget API Partner User Server Server Server
  • 37. Architecture Gadget API Partner User Server Server Server
  • 38. Architecture Gadget API Partner User Server Server Server
  • 39. Architecture Gadget API Partner User Server Server Server
  • 40. Architecture Gadget API Partner User Server Server Server
  • 41. Architecture Gadget API Partner User Server Server Server
  • 42. Architecture Gadget API Partner User Server Server Server
  • 43. Gadget Server
  • 44. Gadget Server • /
  • 45. Gadget Server • / •
  • 46. Gadget Server • / • • OAuth Signed Request
  • 47. Gadget Server • / • • OAuth Signed Request • Access Token
  • 48. Gadget Server • / • • OAuth Signed Request • Access Token •
  • 49. Hermit
  • 50. Hermit
  • 51. Hermit
  • 52. Hermit • Perl / PSGI / Plack
  • 53. Hermit • Perl / PSGI / Plack • Pluggable
  • 54. PSGI / Plack
  • 55. PSGI / Plack • Web Application
  • 56. PSGI / Plack • Web Application • Dispatcher Catalyst
  • 57. PSGI / Plack • Web Application • Dispatcher Catalyst •
  • 58. PSGI / Plack • Web Application • Dispatcher Catalyst • • Plack::Handler::*
  • 59. PSGI / Plack • Web Application • Dispatcher Catalyst • • Plack::Handler::* • Starman
  • 60. PSGI / Plack
  • 61. PSGI / Plack • lighttpd + Plack::(Server)::FCGI
  • 62. PSGI / Plack • lighttpd + Plack::(Server)::FCGI • 300 process / server
  • 63. PSGI / Plack • lighttpd + Plack::(Server)::FCGI • 300 process / server • 5,500,000 - 6,000,000 req / day / server
  • 64. PSGI / Plack • lighttpd + Plack::(Server)::FCGI • 300 process / server • 5,500,000 - 6,000,000 req / day / server • 360,000 - 380,000 req / hour / server
  • 65. PSGI / Plack • lighttpd + Plack::(Server)::FCGI • 300 process / server • 5,500,000 - 6,000,000 req / day / server • 360,000 - 380,000 req / hour / server • 5
  • 66. PSGI / Plack • lighttpd + Plack::(Server)::FCGI • 300 process / server • 5,500,000 - 6,000,000 req / day / server • 360,000 - 380,000 req / hour / server • 5 • 2
  • 67. Pluggable
  • 68. Pluggable • Plagger like
  • 69. Pluggable • Plagger like • Class::Trigger
  • 70. Pluggable • Plagger like • Class::Trigger •
  • 71. Pluggable • Plagger like • Class::Trigger • • easy to extend
  • 72. Pluggable • Plagger like • Class::Trigger • • easy to extend • easy to maintain
  • 73. Pluggable • Plagger like • Class::Trigger • • easy to extend • easy to maintain • easy to test
  • 74. Pluggable auth* / modify headers / publish token Plugin::Request error handling Context req/req management Plugin::Response modify contents / modify headers
  • 75. Other Modules
  • 76. Other Modules • Text::MicroTemplate
  • 77. Other Modules • Text::MicroTemplate • HTTP::MobileAgent
  • 78. Other Modules • Text::MicroTemplate • HTTP::MobileAgent • HTML::StickyQuery::DoCoMoGUID
  • 79. Other Modules • Text::MicroTemplate • HTTP::MobileAgent • HTML::StickyQuery::DoCoMoGUID • OAuth::Lite
  • 80. Other Modules • Text::MicroTemplate • HTTP::MobileAgent • HTML::StickyQuery::DoCoMoGUID • OAuth::Lite • HTML::Filter::Callbacks
  • 81. Other Modules • Text::MicroTemplate • HTTP::MobileAgent • HTML::StickyQuery::DoCoMoGUID • OAuth::Lite • HTML::Filter::Callbacks • DBIx::DBHResolver
  • 82. Other Modules • Text::MicroTemplate • HTTP::MobileAgent • HTML::StickyQuery::DoCoMoGUID • OAuth::Lite • HTML::Filter::Callbacks • DBIx::DBHResolver • Log::Dispatch
  • 83. Other Modules • Text::MicroTemplate • HTTP::MobileAgent • HTML::StickyQuery::DoCoMoGUID • OAuth::Lite • HTML::Filter::Callbacks • DBIx::DBHResolver • Log::Dispatch • Test::TCP
  • 84. Other Modules • Text::MicroTemplate • HTTP::MobileAgent • HTML::StickyQuery::DoCoMoGUID • OAuth::Lite • HTML::Filter::Callbacks • DBIx::DBHResolver • Log::Dispatch • Test::TCP • etc ...
  • 85. Other things
  • 86. Other things • Sandbox
  • 87. Other things • Sandbox • =
  • 88. Other things • Sandbox • = •
  • 89. Other things • Sandbox • = • • PC
  • 90. Other things • Sandbox • = • • PC •
  • 91. Other things
  • 92. Other things • CDN
  • 93. Other things • CDN • CDN
  • 94. Other things • CDN • CDN • DeNA
  • 95. Other things • CDN • CDN • DeNA • nocache=1 Query String OK
  • 96. Tough Days
  • 97. Tough Days •
  • 98. Tough Days • • 11 24 11
  • 99. Tough Days • • 11 24 11 •
  • 100. Tough Days • • 11 24 11 • • Plack++
  • 101. Tough Days
  • 102. Tough Days •
  • 103. Tough Days • • CPU
  • 104. Tough Days • • CPU •
  • 105. Tough Days • • CPU • • Devel::NYTProf++
  • 106. Tough Days • • CPU • • Devel::NYTProf++ • Unix::Getrusage++
  • 107. Tough Days • • CPU • • Devel::NYTProf++ • Unix::Getrusage++ • Hyper-Threading++ (?)
  • 108. Tough Days • • lighttpd • unexpected end-of-file (perhaps the fastcgi process died):... response not received, request sent:... • lighttpd 1.4.22 -> 1.4.26
  • 109. Current Issue
  • 110. Current Issue • FCGI
  • 111. Current Issue • FCGI •
  • 112. Current Issue • FCGI • • Reverse proxy
  • 113. Current Issue • FCGI • • Reverse proxy • Starman
  • 114. Current Issue • FCGI • • Reverse proxy • Starman •
  • 115. Current Issue
  • 116. Current Issue • Network
  • 117. Current Issue • Network • (5 )=
  • 118. Current Issue • Network • (5 )= • (3 )
  • 119. Current Issue • Network • (5 )= • (3 ) •
  • 120. Current Issue • Network • (5 )= • (3 ) • •
  • 121. Current Issue
  • 122. Current Issue • Network
  • 123. Current Issue • Network • TCP listen backlog overflow
  • 124. Current Issue • Network • TCP listen backlog overflow • net.ipv4.tcp_max_syn_backlog (def: 1024)
  • 125. Current Issue • Network • TCP listen backlog overflow • net.ipv4.tcp_max_syn_backlog (def: 1024) • net.core.somaxconn (def: 128)
  • 126. Current Issue • Network • TCP listen backlog overflow • net.ipv4.tcp_max_syn_backlog (def: 1024) • net.core.somaxconn (def: 128) • lighttpd
  • 127. Current Issue • Network • TCP listen backlog overflow • net.ipv4.tcp_max_syn_backlog (def: 1024) • net.core.somaxconn (def: 128) • lighttpd • if (-1 == listen(srv_socket->fd, 128 * 8)) {
  • 128. Current Issue • Network • TCP listen backlog overflow • net.ipv4.tcp_max_syn_backlog (def: 1024) • net.core.somaxconn (def: 128) • lighttpd • if (-1 == listen(srv_socket->fd, 128 * 8)) { • orz
  • 129. Future
  • 130. Future •
  • 131. Future • • ?
  • 132. Future • • ? • xAuth
  • 133. Future
  • 134. Future • OpenSocial 1.0
  • 135. Future • OpenSocial 1.0 • Template
  • 136. Future • OpenSocial 1.0 • Template • API
  • 137. Future • OpenSocial 1.0 • Template • API •
  • 138. Future • OpenSocial 1.0 • Template • API • • OpenSocial Templates ?
  • 139. Future Gadget API Partner User Server Server Server
  • 140. Future Gadget API Partner User Server Server Server
  • 141. Future Gadget API Partner User Server Server Server
  • 142. Future Gadget API Partner User Server Server Server
  • 143. Future Gadget API Partner User Server Server Server
  • 144. Future Gadget API Partner User Server Server Server
  • 145. Future Gadget API Partner User Server Server Server
  • 146. Conclusion
  • 147. Conclusion • Plack
  • 148. Conclusion • Plack •
  • 149. Conclusion • Plack • •
  • 150. Thank You