Send the link below via email or IMCopy
Present to your audienceStart remote presentation
- Invited audience members will follow you as you navigate and present
- People invited to a presentation do not need a Prezi account
- This link expires 10 minutes after you close the presentation
- A maximum of 30 users can follow your presentation
- Learn more about this feature in our knowledge base article
Do you really want to delete this prezi?
Neither you, nor the coeditors you shared it with will be able to recover it again.
Make your likes visible on Facebook?
Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.
Realtime Geospatial Applications using Open Source tools
Transcript of Realtime Geospatial Applications using Open Source tools
Computer Science Basics Architecture
for realtime tracking Demos! Ragi Burhum Ragi Yaser Burhum
@rburhum Who Am I ? Ragi Yaser Burhum ESRI for several years (Professional Services and Core GeoDatabase)
Microsoft Game Studios (Flight Simulator)
Startups related to Geo
Run Small Consulting Company for GIS problems (Burhum LLC)
All around Open Source fan (OSGeo Charter Member / Contributor)
Co-Founder of venture backed Luxury E-commerce Company (ModeWalk.com)
Co-Founder of GIS Company specializing in Mobile Data Collection and Realtime tracking (AmigoCloud) Definition of "realtime" (computing) In computer science, real-time computing (RTC), or reactive computing, is the study of hardware and software systems that are subject to a "real-time constraint"— e.g. operational deadlines from event to system response. Real-time programs must guarantee response within strict time constraints. "Common" internet-approved definition nowadays "Wow, this sh*it is fast!!! It is in realtime!" Stateless vs Stateful (rambling about connections & protocols alert!) Stateless protocol "In computing, a stateless protocol is a communications protocol that treats each request as an independent transaction that is unrelated to any previous request so that the communication consists of independent pairs of requests and responses. A stateless protocol does not require the server to retain session information or status about each communications partner for the duration of multiple requests." Popular stateless protocols/architectures HTTP is a stateless protocol
REST is a stateless architecture
SOAP is a stateless architecture Stateful protocol A stateful protocol is a protocol in which part of the data that is exchanged between the client and the server systems includes state information. Both systems track the state of the communication session. Popular stateful protocol/architectures TCP is a stateful protocol
SSH is a stateful protocol
telnet is a stateful protocol
ftp is a stateful protocol
WebSockets is a stateful protocol
WebSockets allow stateful architectures Realtime tracking applications are inherently stateful Stateless vs Stateful connections Usually implemented with flash or java sockets
Naive programmers resort to timers and auto-refresh rates that will not scale and are unnecessarily traffic heavy
Require a server push
Requires a stateful architecture Event-driven frameworks
We can do a server push... but how do we know when to do it?!?!
An event has to occur (e.g a car moved) that triggers the server push to the right client.
Twisted (Python) Require a different programming style and this generates frustration automatically (new language, different programming libraries) Examples: So what if I want to use my favorite popular web framework? Do it! Combine them both! Making both frameworks interact nicely
with... a message queue! Adding a realtime component to our original geo-architecture Websockets
socket.io (client) PubSub Queue