Msrds game server

  • Upload
    perpet

  • View
    421

  • Download
    2

Embed Size (px)

Citation preview

  • 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