--- /dev/null
+= Back to the Future: The Historical Evolution of Evergreen's Code and Infrastructure
+:author: Bill Erickson, Software Development Engineer, King County Library System
+:email: berickxx@gmail.com
+:date: Evergreen Conference, May 22, 2016
+:duration: 40
+:data-uri:
+:backend: slidy
+:max-width: 45em
+
+== Client-Side Network Communication
+
+XMLHttpRequest (AJAX) to WebSockets
+
+== XMLHttpRequest
+
+* JSON/XML Gateway
+* HTTP Translator
+
+== WebSockets
+
+WebSocket - https://en.wikipedia.org/wiki/WebSocket
+
+* Full-Duplex
+ ** Data travels in both directions simultaneously.
+ ** Full support for streaming API's.
+ ** Only one connection to the server is required.
+* Persistent Connections
+ ** TCP Socket setup only required on initial request.
+* Supported by all major browsers
+* Cross-origin support
+* Server handled with Apache Webockets Gateway
+ ** https://github.com/disconnect/apache-websocket
+ ** OpenSRF/src/gateway/osrf_websocket_translator.c
+
+== Catalog
+
+ * Catalog App
+ * JSPAC
+ * TPAC
+
+== Catalog App
+
+ * Single page (or close to it).
+ * Not deep-linkable
+ ** Before browser push-state routing existed
+ * Slow to load
+ ** JS for all components loaded on the first page
+ ** Not ideal for rural GA networks
+ * Web browsers still primitive JS support (speed, etc.)
+
+== JSPAC
+
+ * A page per thing (search, record, etc.)
+ * Deep-linkable and faster to load
+ * JS-driven interfaces still very dependent on client and network.
+ * JS is really taking off as a legitimate way to build UI's, better toolkits are born every day.
+
+== TPAC
+
+ * Reduced client complexity
+ ** Important for catalog since all types of patrons connect
+ * Move much of the processing to the server.
+
+== XUL Client Deprecation
+
+== Move to Browser Client
+
WebSocket - https://en.wikipedia.org/wiki/WebSocket
-* Full-Duplex
- ** Data travels in both directions simultaneously.
- ** Full support for streaming API's.
- ** Only one connection to the server is required.
+* Bi-directional data streams
* Persistent Connections
- ** TCP Socket setup only required on initial request.
-* Supported by all major browsers
* Cross-origin support
-* Server handled with Apache Webockets Gateway
- ** https://github.com/disconnect/apache-websocket
- ** OpenSRF/src/gateway/osrf_websocket_translator.c
-
== Scripting