Web Hooks
Post on 17-May-2015
16354 Views
Preview:
DESCRIPTION
Transcript
there once was a command linenav filesystem, launch apps, write scripts
Program
Input Output
lots of power in a bit of infrastructure involving input and output
Program
STDIN STDOUT
STDERR
stdin, stdout were available to reroute wherever the user wantedmost common use was chaining commands together: piping
Program
STDIN STDOUT
STDERR
Infrastructure
this was an amazing amount of infrastructure based on a very simple idea
1977and we’ve had it since 1977
1997fast foward 20 years just after commercialization of internet to a perl conferencejon udell talks about websites as data sources that can be reused and remixedtoday that idea isn’t very novel
1997
a new programming paradigm that takes the whole Internet
as its platform
he also talked about a new programming paradigmi don’t think we’re there yetbut this inspired ...
“What is the equivalent of the pipe in the age of the web?”
tim oreilly to ask in 2000...
there seems to be resounding consensus the answer is feedsthey sound good in theory
it makes you think of feeds like in the telecom world
data coming directly to you
but we know that’s not how it works
?
instead we have to go request the data
then it gives it to us. and we do this over and over.
?
client side mashups might be able to get by with this
?
but when you start talking about persistent web applications, it becomes a bit more work
?
• Crontab / Daemon• Parsing• Caching
?
• Crontab / Daemon• Parsing• Caching
this is just too much work sometimes
the other problem i have is with the command line metaphor for web apps
Start Stop
Command-line Application
because a command line application is linear. it starts, runs, and stops
AlwaysRunning
WebApplication
web apps are always running.a better metaphor for this is a running process or daemon
here we have some daemons.this is ps doomso using this metaphor, how do daemons communicate?
IPC?Inter process communication
ipc?
lolh4x
stfun00b
...yeah. my experience with ipc was pretty bad. ipc usually involves some sort of shared memory mechanism, like a queue
it turns out amazon provides a queue web servicebut with a third party queue you only defer the pollingit doesn’t solve the problem, its just fancier rss
so this is not the solution, and probably why not too many people use or know of it
Real-timeEfficient
Easy
Web Hooks
web hooks are user defined callback URLs that point to a web script to run on a certain event.you can call them other things...
Web Hooks• User Callbacks• Triggers• Event Handlers• “Plugouts”
web hooks are user defined callback URLs that point to a web script to run on a certain event.you can call them other things...
to implement web hooks, you generally provide a ui--
for the user to specify a url for events
http://example.com/post-commit.php
Infrastructure
http://example.com/post-commit.php
what this does is creates powerful infrastructure that might not be obvious at the surface
Easy for Vendors
the idea is that it’s easy for vendors to integrate
the main mechanism is a standard http post, which is trivial in most environments
Easy (enough) for Users
it’s also very open and easy for the users, which will generally be advanced users, but can easily be taken advantage of by novice users
as a user, to take advantage of hooks, you’d write a script to handle an event, like the committhis is a very simple script
“Internet”
so what the user would do
“Internet”
is put that script up on the internet
“Internet”
then they’d go to the hook settings page
and hook the commit event up to their script
then as the user interacts with devjavu
Commit!
and they make a commit, it fires a post to their script
Commit!
the script runs, and send an email to the mailing list
Commit!
this makes the user a happy cookie. and this is a trivial example, using only on web service. imagine using the api of another in the hook script and chaining these things together
Commit!
but even in this simple example, you see the power it gives to the user and to the data that we’re trying to “open up” to our users
Program
STDIN STDOUT
back to piping on the command line, remember that it was simple infrastructure that gave you tremendous power, and one of the key components was making it easy to chain commands
Program
STDIN
we wouldn’t be able to do it without the output part of it
Web App
API
unfortunately that’s how the web is today. the only output you can get is by using the input (api, feed)
Web App
API Hooks
web hooks gives us this output, and when *combined* with the input of api’sit will give us and our user tremendous power that i think will really push the webinto being a new programmable paradigm
Program the Web
the possibilities become very rich and i’ve thought about it a lotthere’s probably a lot moreimagine realtime data syncronizationor a chain of events that makes these apps work together in a way you’ve never imagined
Fin
Questions?
blogrium.com
SuperHappyDevHouse
Web App
API Hooks
web hooks gives us this output, and when *combined* with the input of api’sit will give us and our user tremendous power that i think will really push the webinto being a new programmable paradigm
top related