poseidon - edenzik.github.ioedenzik.github.io/poseidon/slides/final.pdf · agenda • who are we?...

48

Upload: others

Post on 30-Sep-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress
Page 2: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

POSEIDONfor RESTful Streaming

Page 3: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

AGENDA

Page 4: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

AGENDARECAP UPDATES

Page 5: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

AGENDA

• Who are we?RECAP UPDATES

Page 6: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

AGENDA

• Who are we?

• Original Goals

RECAP UPDATES

Page 7: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

AGENDA

• Who are we?

• Original Goals

• Our take on the product

RECAP UPDATES

Page 8: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

AGENDA

• Who are we?

• Original Goals

• Our take on the product

• Technology Stack

RECAP UPDATES

Page 9: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

AGENDA

• Who are we?

• Original Goals

• Our take on the product

• Technology Stack

• Progress from Last Time

RECAP UPDATES

Page 10: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

AGENDA

• Who are we?

• Original Goals

• Our take on the product

• Technology Stack

• Progress from Last Time

• Finished ProductRECAP UPDATES

Page 11: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

AGENDA

• Who are we?

• Original Goals

• Our take on the product

• Technology Stack

• Progress from Last Time

• Finished Product

• Demo

RECAP UPDATES

Page 12: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

AGENDA

• Who are we?

• Original Goals

• Our take on the product

• Technology Stack

• Progress from Last Time

• Finished Product

• Demo

• Architecture

RECAP UPDATES

Page 13: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

AGENDA

• Who are we?

• Original Goals

• Our take on the product

• Technology Stack

• Progress from Last Time

• Finished Product

• Demo

• Architecture

• Reflection

RECAP UPDATES

Page 14: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

AGENDA

• Who are we?

• Original Goals

• Our take on the product

• Technology Stack

• Progress from Last Time

• Finished Product

• Demo

• Architecture

• Reflection

• Questions/Feedback

RECAP UPDATES

Page 15: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

WHO ARE WE?

• Sharat, Eden, Yahui, Artem - Students at Brandeis

• Pito Salas - Professor and mentor

Page 16: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

GOALS

Page 17: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

GOALS• Understand capabilities of Streambase system

Page 18: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

GOALS• Understand capabilities of Streambase system

• Brainstorm new or novel ways to interact with it

Page 19: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

GOALS• Understand capabilities of Streambase system

• Brainstorm new or novel ways to interact with it

• Hopefully bring useful ideas to the table

Page 20: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

GOALS• Understand capabilities of Streambase system

• Brainstorm new or novel ways to interact with it

• Hopefully bring useful ideas to the table

• Potentially influence Streambase’s development cycle

Page 21: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

STREAMBASE STUDIO• Extremely powerful tool

• User friendly for the most part

• Cross platform

• High performance

• No programming experience needed

Page 22: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

STREAMBASE STUDIO• Installation required

• Desktop only

• Streaming requires both endpoints to implement protocol (sender + receiver)*

• Compile, run workflow

• No flow through data

Page 23: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

OUR TAKE…• Web browser based

Page 24: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

OUR TAKE…• Web browser based

• RESTful API

Page 25: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

OUR TAKE…• Web browser based

• RESTful API

• Live stream view

Page 26: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

OUR TAKE…• Web browser based

• RESTful API

• Live stream view

• JSON Format

Page 27: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

OUR TAKE…• Web browser based

• RESTful API

• Live stream view

• JSON Format

• Real Time manipulation

Page 28: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

STACK• Vaadin

• Java based

• Asynchronous

• Generates Javascript, CSS from Java Code

• Google Web Toolkit based

Page 29: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

LAST TIME• UI - simple and compelling

Page 30: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

PROGRESS• UI - simple and compelling

• Connects to REST sources

Page 31: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

PROGRESS• UI - simple and compelling

• Connects to REST sources

• Maps JSON

Page 32: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

PROGRESS• UI - simple and compelling

• Connects to REST sources

• Maps JSON

• Operators Implemented

Page 33: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

PROGRESS• UI - simple and compelling

• Connects to REST sources

• Maps JSON

• Operators Implemented

• Data live view

Page 34: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

DEMO• Data sources

• MBTA

• Twitter

Page 35: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

DEMO• Data sources

• Answer a question

Page 36: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

DEMO• Data sources

• Answer a question

• “If I live in Harvard but work at State St, how can I minimize waiting time?”

Page 37: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

DEMO• Data sources

• Answer a question

• Visually assemble a query

Page 38: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

DEMO

Page 39: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

DEMO

http://edenzik.github.io/StreambaseBrandeis

http://poseidon-streambase.herokuapp.com

Page 40: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

ARCHITECTURE• Operators

• Independent “units”

• Have a buffer (Queue)

• Each operator processes least recent element

• When done, forwards to next operator’s buffer

Page 41: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

ARCHITECTURE• Operators

• Threads

• Each operator = Thread

• Runs continuously

• Agnostic of other operators

Page 42: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

ARCHITECTURE: PROBLEMS• Real time push

• Data pours through as soon as connection is made

• Join “Synchronization”

• Bottleneck of system is at slowest node

Page 43: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

ARCHITECTURE• Operators

• Threads

• Vaadin

Page 44: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

ARCHITECTURE• Operators

• Threads

• Vaadin

• Continuous survey of operators

Page 45: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

ARCHITECTURE• Operators

• Threads

• Vaadin

• Continuous survey of operators

• Push to front end

Page 46: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

REFLECTION: VAADIN• Difficult to debug

• Steep learning curve that never ends

• Expensive Asynchronous UI Pushes

• Low plugin support compared to JS plugins

• Recompile time is frustrating

• Clunky in development and usage

Page 47: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

REFLECTION: IF REDONE

• Front-end javascript framework using plugins would have been easier and faster

• Node.js for server for low overhead and speed

Page 48: POSEIDON - edenzik.github.ioedenzik.github.io/Poseidon/slides/final.pdf · AGENDA • Who are we? • Original Goals • Our take on the product • Technology Stack • Progress

QUESTIONS?