16
Koop: The Good Parts Daniel Fenton March 8–11, 2016 | Palm Springs, CA Esri Developer Summit

Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

Koop: The Good PartsDaniel Fenton

March 8–11, 2016 | Palm Springs, CA

Esri Developer Summit

Page 2: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

What the heck is Koop?

Page 3: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

More like…

Page 4: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

Universal translator

• Layer of between APIs that don’t speak ArcGIS an applications that do

• Once Koop has GeoJSON and a route it

knows what to do

• It only needs to be taught how to speak

to the remote API and how to compile

that response into GeoJSON

Page 5: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

GeoJSON is the Lingua Franca

• FeatureServer

• Raster/Vector Tiles

• Geohash Aggregation

• Export to Shapefile, KML, CSV

Page 6: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

How is Open Data using Koop in Production?

• One Provider: Koop-AGOL

• Shapefile, CSV, KML, GeoJSON services

• Geohash for big datasets

• Turns CSVs into Feature Services

Import/Export Workers

Queue

Cache

Web Server

Page 7: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

Providers

• Miniature Express App

• Define routes, controller, model

• Talks to remote API

• Translates response to GeoJSON

• Calls Koop’s API

• Examples: Koop-Agol, Koop-Socrata, Koop-CKAN, Koop-Github, Koop-Zillow etc

Page 8: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

The Cache

• Totally Optional

• Brings additional capabilities not available in the remote API

• Spatial search

• statistics

• etc

• Choose your own adventure:

• In memory: Effective but limited

• PostGIS: Feature Complete

• ElasticSearch: Experimental

• Redis: Totally hacked together

Page 9: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

The Cache

• Totally Optional

• Brings additional capabilities not available in the remote API

• Spatial search

• statistics

• etc

• Choose your own adventure:

• In memory: Effective but limited

• PostGIS: Feature Complete

• ElasticSearch: Experimental

• Redis: Totally hacked together

Page 10: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

Plugins

• Keep the core as small as possible

• In use today:

• Koop-Queue: For offloading jobs to workers

• Koop-Worker: Execute the jobs on the queue

• Koop-Exporter: Generate downloadable files from cached geojson

• Experimental:

• Koop-Soda: SODA API endpoint

• Koop-Polygon-Geocoder: Find the name that best matches a given area

• Koop-Tile: Cook vector and raster tiles

• Much more to come in this area before 3.0 final is released

Page 11: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

The Roadmap

• Modular Modular Modular

• GeoXForm: Transform GeoJSON Streams into KML, Shapefile, CSV etc

• Winnow: SQL on GeoJSON

• Feature-Parser: Parse individual features from a feature collection, fast!

• ToGeoJSON: Translate Esri JSON and CSVs into GeoJSON

• Simplifiy Simplify Simplify

• Less magic, fewer parameters, more simple calls

• PRs more red than Green

• Watch the Koop 3.0 Branch

• Alpha status: Still very active development

• In production now for Open Data

Page 12: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

Questions?

Page 13: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

Demo

• Koop-Yelp

• Koop-Zillow

• ArcGIS Online

• Docker

• Kubernetes

• Google Container Engine

• https://github.com/dmfenton/koop-docker

• https://github.com/koopjs/koop-yelp

Page 14: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

Questions?

@dmfenton

Page 15: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services

Further Research

• https://koopjs.github.io

• https://github.com/koopjs/koop

• https://github.com/koopjs/koop-sample-app

• https://github.com/koopjs/koop-sample-provider

• http://video.esri.com/watch/4457/koop-using-third-party-services-within-the-arcgis-platform

Page 16: Koop: The Good Parts - Esri · 2016 Esri Developer Summit--Presentation Keywords: 2016 Esri Developer Summit--Presentation, 2016 Esri Developer Summit, Koop: Using 3rd Party Services