Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.

Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern Apps

1.753 visualizaciones

Publicado el

These are the slides for the talk Emily Stark and I presented at MIT on September 9, 2014.

We talked about the components that make up Meteor and how they fit together, finishing off with a more in-depth discussion of DDP, Meteor's Distributed Data Protocol.

Publicado en: Tecnología
  • Inicia sesión para ver los comentarios

Meteor MIT Tech Talk 9/18/14: Designing a New Platform For Modern Apps

  1. 1. Designing a New Platform for Modern Apps Emily Stark, MIT SM ‘13! Sashko Stubailo, MIT ‘14! Core Developers at Meteor
  2. 2. What is Meteor?! • An open source JavaScript client and server application framework • Build fast, modern, high quality apps in a fraction of the time
  3. 3. Leaderboard QUICK APP DEMO $ meteor create -­‐-­‐example leaderboard
  4. 4. Modern Web Apps! What do they have in common that makes them so nice to use?
  5. 5. Features of Modern Web Apps! 1. Instant Response You don’t have to wait for the round-trip to the server. 2. Reactive UI The UI is always up to date with the data. 3. Fast Load Time The whole UI is sent to the client once, so subsequent loads are fast. 4. Multiple Platforms You can access the same data through several websites and mobile apps.
  6. 6. What makes this possible?! Implementation Requirements! Features! 1. Instant Response 2. Reactive UI 3. Fast Load Time 4. Multiple Platforms • Latency compensation • Rendering views on the client • Subscribing to data from the server • Client-side data caching
  7. 7. How does Meteor do this stuff?! Livequery (Real-time MongoDB) Minimongo (Client-Side Cache) Tracker (Dependency Tracking) Blaze (Reactive HTML Rendering) DDP (Distributed Data Protocol) Server Client
  8. 8. DDP (Distributed Data Protocol)! • A simple, human-readable protocol for remote procedure calls and data synchronization Let’s go back to our demo to see it in action!
  9. 9. DDP Messages! See the detailed spec at! Publish and Subscribe Client è Server! Server è Client! sub unsub added changed removed ready Remote Procedure Calls – “Methods” Client è Server! Server è Client! method result updated
  10. 10. DDP (Distributed Data Protocol)! • Pub/sub and RPC in one protocol • Enable latency compensation • Helps you avoid data race conditions • Ensures consistency between client and server • Better than REST for modern web apps - enables all of the cool features we saw earlier • Could replace non-standard live data APIs such as Twitter and Dropbox with one protocol
  11. 11. Meteor DDP API! // on the client Meteor.subscribe(“players”, onReady); Players.find() // get the data Publish and Subscribe Remote Procedure Calls – “Methods” // on the server Meteor.publish(“players”, function () { return Players.find(); }); // on the server Meteor.methods({ givePoints: function (playerId) { Players.update(/* query */); } }); // on the client“givePoints”, playerId, onResult);
  12. 12. What could you make with DDP?! • Build your own DDP client or server to provide or consume data • Proxy a streaming API to DDP so other people can use it • Build a system that replicates data across a mesh network Meteor is our implementation; also check out the community implementations for Ruby, Python, Java, and more.
  13. 13. Meteor is hiring!! • Full-time, in San Francisco and remotely • Interns for Winter, Spring, and Summer Check out! Contact us! ! Emily Stark @estark37 Sashko Stubailo @stubailo