fifa ultimate team at rest
play

FIFA Ultimate Team at REST Dr. Harold Chaput, Technical Director, EA - PowerPoint PPT Presentation

FIFA Ultimate Team at REST Dr. Harold Chaput, Technical Director, EA Canada Friday, October 8, 2010 1 Acknowledgements Server Dev Team W eb Dev Team Andrew Tjew Neale Genereux Chris Brown Andrey Soubbotin Mohammed Raihan Mark Obsniuk


  1. FIFA Ultimate Team at REST Dr. Harold Chaput, Technical Director, EA Canada Friday, October 8, 2010 1

  2. Acknowledgements Server Dev Team W eb Dev Team Andrew Tjew Neale Genereux Chris Brown Andrey Soubbotin Mohammed Raihan Mark Obsniuk Friday, October 8, 2010 2

  3. Overview FIFA Ultimate Team What is REST? REST Benefits and Features Migrating FUT to REST Benefits of a RESTful FUT REST beyond FUT Advice for becoming RESTful Friday, October 8, 2010 3

  4. FIFA Ultimate Team Friday, October 8, 2010 4

  5. An Unexpected Game Break some new ground, alternative to a licensed title Card trading game mode in Champions League 07 Expand the feature set, put it online, sell as add - on New product idea: prepared to break even Friday, October 8, 2010 5

  6. Collect, Trade and Play Purchase packs of players, contracts, power - ups T rade with other players Build your team Team chemistry Play your team against another player’s team Win coins Friday, October 8, 2010 6

  7. An Unexpected Success Turned a very good profit More than the licensed product would have Made more money w/ MTX than selling the mode Followed up w/ FUT2 and continued success Friday, October 8, 2010 7

  8. Unexpected Problems FUT1 servers were Followed console model shaky at launch of server per title Server bottlenecks, No year - over - year connected to FIFA support servers Game logic on client Hard to update post - launch UI info on the server ( “glow” ) Friday, October 8, 2010 8

  9. A New Client FUT W eb introduced in Took advantage of an April 2010 opportunity to start over FUT servers used ...with REST proprietary format, not HTTP Friday, October 8, 2010 9

  10. What is REST? The dirty details Friday, October 8, 2010 10

  11. What is REST? REST stands for “REpresentation State T ransfer” REST is style of software architecture REST is intended for online services REST first defined by Roy Fielding “ Architectural Styles and the Design of Network - based Software Architectures” ( 2000 ) Fielding is the principle author of HTTP 1.0 and 1.1 Created for “distributed hypermedia” systems Applications and benefits extend beyond WWW Friday, October 8, 2010 11

  12. REST is a Style, like OOP OOP is a styl e of software architecture OOP is open to interpretation REST is a convention, not a There are many ways to be syntax RESTful OOP can be done in many OOP won’t solve all your languages problems, introduces new ones Many protocols can be REST is not a complete RESTful solution OOP has several variants and Follow OOP , and gain benefits flavors ...and so it is with REST REST is also underdetermined Friday, October 8, 2010 12

  13. REST Constraints Client/Server ( separation of concerns ) Uniform Interface w/ Hyperlinks Stateless Cacheable Layered Code on Demand ( optional ) Friday, October 8, 2010 13

  14. Client and Server Client Server User Interfac e Databas e ? Rendering File Access Current Pag e Load Balancing ! Device Security Fraud Detectio n Session State Application State Separation of Concerns Friday, October 8, 2010 14

  15. Services and Resources Client Server Resources Services ? Message Mail Folder Contact Address Mailing List Book Session Application Appointment Calendar State State Meeting Room Resource Representatio n Friday, October 8, 2010 15

  16. Changing Application State Client Server Resources Services ? Message ! Mail Folder Contact Address Mailing List Book Session Application Appointment Calendar State State Meeting Room R e presentational Stat e Transfer Friday, October 8, 2010 16

  17. Statelessness Stateful Stateless move(direction, speed) set_position(x, y) find_user(“Bob”) send_msg(“Bob”, “Hello!”) send_msg(“Hello!”) u1=owner(i1) u1=owner(i1) u2=owner(i2) u2=owner(i2) assign(i1, u2) assign(i1, u1, u2) assign(i2, u1) assign(i2, u2, u1) All required state information is in the request. Friday, October 8, 2010 17

  18. Cacheability Representations are Client cacheable Client - side Cach e Counters extra tra ffi c caused by statelessness Representations include expiration info Representations can Server - side Cach e contain references to resources Server Friday, October 8, 2010 18

  19. Uniform Interface Resources must be uniformly identified The same ID results in the same resource API consists of: Resource representations Resource identifiers Requests and responses Friday, October 8, 2010 19

  20. Layered Filter Authentication Cache Router Env 1 Env 2 Service A Service B Service C Service D Friday, October 8, 2010 20

  21. REST Constraints Client/Server ( separation of concerns ) Uniform Interface w/ Hyperlinks Stateless Cacheable Layered If it has all these properties, it is RESTful. Friday, October 8, 2010 21

  22. Why REST? What’s in it for me? Friday, October 8, 2010 22

  23. REST Benefits Simplicity Scalability Issues stay where they belong Services interact through references only Information is localized Can easily introduce new Developers know what to build, hardware as required can work in parallel Visibility Performance Clients know what resources Caching decreases response are available time, reduces DB hits Clients are informed of the new Can distribute across multiple state servers Friday, October 8, 2010 23

  24. REST Benefits Portability All clients use the uniform interface New clients can be added post hoc Prepare us for a multi - platform online world Reliability T ransactions continued on new hardware if overloaded or crashed Layered routers can direct tra ffi c as needed Friday, October 8, 2010 24

  25. REST Best Practices Java / C# / Ruby / Python HTTP Can be deployed on arbitrary Conceptually compatible hardware Use four verbs: GET, PUT, Built for reliability ( not speed ) POST, DELETE REST vs. SOAP XML / JSON SOAP can b e RESTful ( and C Structured, easy to construct can be OO ) & parse, allows refs SOAP is more than you need for REST Friday, October 8, 2010 25

  26. RESTful Examples Twitter OpenSocial Facebook JIRA Picasa Gowalla Y ouTube Amazon Flickr Spore Google ...hundreds more Friday, October 8, 2010 26

  27. Migrating FUT to REST Getting � om here to ther e Friday, October 8, 2010 27

  28. Step 1: A RESTful API FUT Console Servers FUT REST API W arehouse Store Tournament T rading s Friday, October 8, 2010 28

  29. Step 2: RESTful Proxy FUT Console Servers FUT REST API FUT Application Server W arehouse Store Tournament T rading s Friday, October 8, 2010 29

  30. Step 3: Componentization FUT Console Servers FUT REST API FUT Application Server W arehouse Store T rading Tournaments Friday, October 8, 2010 30

  31. Step 4: Application Servers FUT Console Servers FUT REST API FUT Application Server W arehouse Store T rading Tournaments Friday, October 8, 2010 31

  32. Step 5: All Clients on REST FUT REST API FUT Application Server W arehouse Store T rading Tournaments Friday, October 8, 2010 32

  33. How REST Benefits FUT The Big Wins Friday, October 8, 2010 33

  34. REST for Good Design REST can guide good design decisions Example: transactions as resources Enforces stateless transactions Removed serious transaction problems and increased robustness Friday, October 8, 2010 34

  35. Modular Services FUT built from components Scaling components independently based on use Updating implementation one step at a time Friday, October 8, 2010 35

  36. Services are Shared FUT components used by other products FUT uses other shared components Components managed independently Friday, October 8, 2010 36

  37. Enforces Organization Each service has a well - defined function Dramatically fewer server bugs Problems are isolated and easy to find Clients better understand how to implement ( web client took four months ) Friday, October 8, 2010 37

  38. Promotes Live Updating Client gets state from server Easy to update functionality Even for data we didn’t expect to update: item types Friday, October 8, 2010 38

  39. Support New Clients No client assumptions in the server New clients can be supported quickly No need for server team support Friday, October 8, 2010 39

  40. REST beyond FUT What else can we do? Friday, October 8, 2010 40

  41. Games as Products Friday, October 8, 2010 41

  42. Games as Services Friday, October 8, 2010 42

  43. Games as Services Friday, October 8, 2010 43

  44. Advice for Getting Rest Lessons Learned Friday, October 8, 2010 44

  45. Think Resources Define your services in terms of resources Determine how they will be identified, represented, manipulated Organize them hierarchically Opposite of OOP Not data hiding, data exposing Friday, October 8, 2010 45

  46. API Before Code Document your API befor e you write your server Get API vetted by client teams Development can start on client & server together Can test out API with working client & dummy data Friday, October 8, 2010 46

  47. Plan to Hand Off Build your service to be handed o ff to your ops team Don’t assume you have any control of the server Clients can go though unexpected layers May not talk to the same server instance twice Friday, October 8, 2010 47

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend