More Related Content Similar to Genkidama:実装と課題 (20) More from Takuya ASADA (20) Genkidama:実装と課題2. •
→
• BSD
• OpenBSD/sgi SMP
•
3. Genkidama
• NicoCache Java
→DHT
• NicoCache OpenChord
300
• →
• daiki P2P SIP
• livedoor
• OpenChord OverlayWeaver
• ↑ P2P SIP ←
7. DHT
•
get
• put
• : prefix + ID nc:sm1152439
• :
→
put
8. URL
• HTTP
Genkidama
• HTTP URL
http://124.32.128.131:50001/nc/sm11152439
• HTTP NicoCache
URL
10. XMLRPC
• IP:port
→XMLRPC DB
• onlineUsers.fetch()
• DHT onlineUsers.register()
• cron
11. • XMLRPC DB
•
•
•
•
•
12. Web
• Genkidama Web Dashboard(http://genkidama.us/)
•
• Genkidama
•
•
•
• IP
DB IP
13. GUI
• AWT GUI
• Dashboard GUI
• JavaScript Genkidama HTTP JSON
→JS http://localhost:50001/ URL Genkidama
• HTTP
→ URL http://localhost:50001/ OK
http://genkidama.us/local/ URL
•
14. • Genkidama
• Genkidama HTTP proxy.pac
•
• firefox extention
17. NAT
InetAddress.getLocalHost()
• hostname 127.0.0.1 InetAddress.getLocalHost()
127.0.0.1
• OverlayWeaver IP bind
InetAddress.getLocalHost() IP bind →127.0.0.1 bind
• IP InetAddress.getLocalHost()
IP DHT
• (><;;
• Java NIC IP API
• ANY bind OverlayWeaver
18. NAT
UPnP
•
• OverlayWeaver urn:schemas-upnp-org:service:WANIPConnection:1
urn:schemas-upnp-org:service:WANPPPConnection:1
• OverlayWeaver
UPnP CyberLink
• UPnPLib CyberLink
UPnPLib
• Azureus UPnP GPL
libupnp C →
• …
19. NAT
• UPnP
→UPnP
• XMLRPC
→globalIp.probe() XMLRPC IP
• IP OverlayWeaver
20. NAT
• UPnP
• HTTP UDP Hole Punching
• XMLRPC
TCP
→tcpPort.check() bind
• UDP
21. Genkidama DHT
• DHT URL
•
• remove
→
remove
• OverlayWeaver expire re-
put
→ remove
22. • Genkidama
join (´ ω `)
• OverlayWeaver
• OverlayWeaver
overlayweaver-ja
•
• MessagingTransport TCP
• ConnectionPool
close
• YO!
23. put
• DHT
put
• put
•
(´ ω `)
• ThreadExecutor put