msrds game server
TRANSCRIPT
- 1. MSRDS
- Msrds ? ..
2. MSRDS
- http://www.dailymotion.com/video/x8jtsv_apartment-simulation-environment_tech http://www.youtube.com/watch?v=mR9U8YPEeHk
msrds ms . 3. MSRDS
- CCR(Concurrency and Coordination Runtime)
4. DSS(Decentralized Software Services ) 5. VPL(Visual Programming Langage) 6.
- CCR(Concurrency and Coordination Runtime)
(CCR) , , , .CCR (asynchronous operations) (partial failure) . (loosely coupled) . CCR . , , (isolation) .CCR .NET 2.0. Common Language Runtime (CLR) . 7.
- CCR(Concurrency and Coordination Runtime)
- Arbiter.FromTask -> Task
8. Arbiter.Receive -> Receiver 9.
- CCR(Concurrency and Coordination Runtime)
- Arbiter.Choice -> Choice ( )
10.
- CCR(Concurrency and Coordination Runtime)
- Arbiter.JoinedReceive -> JoinReceiver ( )
11.
- CCR(Concurrency and Coordination Runtime)
- Arbiter.Interleave -> Interleave
12. ( ) Class Collision { [Exclusive] Void Add() [Exclusive] Void Remove() [Concurrent] Void Update() } 13.
- CCR(Concurrency and Coordination Runtime)
14. DEMO
- demo01
15. Yield 16.
- DSS(Decentralized Software Services )
(DSS) (REST ) . (state) operation , , (notification) HTTP REST model DSS . DSS , (loose coupling) . . .DSS HTTP DSSP . DSSP (state) (state) SOAP . DSSP subscribing , (state) HTTP . DSS CCR Robotics Studio . , , , , . 17.
- DSS(Decentralized Software Services )
18. 19. Client Server 20. 21. DATAS(PacketGameLogin) String id String pass DATAE SERVICE_BEGIN(GAME,1) STATES(LOGIN) REQUEST(PacketGameLogin,PacketGameLogin_Ret) STATEE STATES(SELECT_CHAR) NOTIFY(PacketNewCharacter) NOTIFY(PacketDeleteCharacter) NOTIFY(PacketFieldLogin) STATEE SERVICE_END SERVICE_BEGIN(DB,2) STATES(LOGIN) REQUEST(PacketDBLogin,PacketDBLogin_Ret) STATEE SERVICE_END Class Game { public override IEnumerable PacketGameLogin (PacketGameLogin pgl ,PacketGameLogin_Ret pgl_ret) { PacketDBLogin pdl(pgl.id,pgl.pass) PacketDBLogin_Ret pdl_ret Yield return DB_Proxy.RequestPacketDBLogin(pdl,out pdl_ret); If(pdl_ret.error) { pgl_ret.error = 1; } Yield returnpgl_ret; } } 22. Class Game { public override IEnumerable PacketGameLogin (PacketGameLogin pgl ,PacketGameLogin_Ret pgl_ret) { PacketDBLogin pdl(pgl.id,pgl.pass) PacketDBLogin_Ret pdl_ret If( pdl_ret.error) { pgl_ret.error = 1; } // Yield return pgl_ret; } } Yield return DB_Proxy.RequestPacketDBLogin(pdl,out pdl_ret); 23. Class Collision : Service { [Exclusive] Void Add() [Exclusive] Void Remove() [Concurrent] Void Update() [Concurrent] Void Find() } 24.
- VPL(Visual Programming Langage)
25. VPL 26. 2010 - 27. microsoft parallel and concurrency library shared state concurrency => lock base, TPL message passing concurrency => CCR&DSS, AAL,Axum ,TPL software transactional memory => SXMpure functional programming=> F# 28. http://cafe.naver.com/msrskorea http://msdn.microsoft.com/en-us/devlabs/dd795202.aspx http://perpet.springnote.com/pages/4203329