It's just a Web server - a plea for simplicity
-
Upload
bertrand-delacretaz -
Category
Technology
-
view
2.009 -
download
2
description
Transcript of It's just a Web server - a plea for simplicity
It’s just a Web server a plea for simplicity
Bertrand Delacrétaz@bdelacretaz, grep.codeconsult.ch
Principal Scientist, CQ/AEM R&D group, Adobe BaselApache Software Foundation Member and Director
June 2014slides revision 2014-06-18
looking for answers? wrong place! I’m more about questions today…
picture: dhester on morguefile.com
could we invent this today?
beautiful simplicityas simple as possible, but not simpler
(to be precise, it’s a Victorinox skipper knife)
astory
of simplicity
(two stories, actually)
s = UDP socket While(s is open) { Wait for packet Packet matches our filter? If not -> continue If yes: Compute storage path from T Append packet to storage file }
26 lines of code 3 months of work (happily chugging along since 1999)
record digital audiocontinuously
cannot lose morethan 15 seconds
(remember - 1999)
options?BigCo#1 BigCo#2
pict
ure:
Rog
anJo
sh o
n m
orgu
efile
.com
pict
ure:
MrM
agic
on
mor
guefi
le.c
om
pict
ure:
Rog
anJo
sh o
n m
orgu
efile
.com
N-dimensional maze
pict
ure:
psc
hube
rt on
mor
guefi
le.c
om
pict
ure:
Rog
anJo
sh o
n m
orgu
efile
.com
pict
ure:
and
yk o
n m
orgu
efile
.com
5127 prototypes
overnight? no - 8 yearsWIRED April 2011
pict
ure:
Rog
anJo
sh o
n m
orgu
efile
.com
N-dimensional maze
pict
ure:
psc
hube
rt on
mor
guefi
le.c
om
simpler?
pict
ure:
Rog
anJo
sh o
n m
orgu
efile
.com
pict
ure:
MrM
agic
on
mor
guefi
le.c
om
yes!
pict
ure:
Rog
anJo
sh o
n m
orgu
efile
.com
pict
ure:
MrM
agic
on
mor
guefi
le.c
om
RTPpacket
recorder
26 lines of code3 months
pict
ure:
Rog
anJo
sh o
n m
orgu
efile
.com
pict
ure:
MrM
agic
on
mor
guefi
le.c
om
RTPpacket
recorders = UDP socket While(s is open) { Wait for packet Packet matches our filter? If not -> continue If yes: Compute storage path from T Append packet to storage file }
if it’s not simple enough yet
do not give up
pict
ure:
Rog
anJo
sh o
n m
orgu
efile
.com
pict
ure:
MrM
agic
on
mor
guefi
le.c
om
RTPpacket
recorder
storage?
RTPpacket
recorder
storage?
continuous storage seek by timestamp
variable speed replay 100% robust
enterprise DB!
pict
ure:
jusb
en o
n m
orgu
efile
.com
pict
ure:
Rog
anJo
sh o
n m
orgu
efile
.com
pict
ure:
psc
hube
rt on
mor
guefi
le.c
om
N-dimensional maze
RTPpacket
recorder
storage!
2014/06/25/1402.rtp
timestamp-addressed file stores 15 seconds of RTP packets
pict
ure:
Rog
anJo
sh o
n m
orgu
efile
.com
pict
ure:
MrM
agic
on
mor
guefi
le.c
om
RTPpacket
recorder
storage2014/06/25/1402.rtp
continuous recording continuous storage seek by timestamp
variable speed replay
s = UDP socket While(s is open) { Wait for packet Packet matches our filter? If not -> continue If yes: Compute storage path from T Append packet to storage file }
beautiful simplicityas simple as possible, but not simpler
beautiful simplicityunix pipelines
cat sortgrep awk stdout
stderr
simple modules simple assembly model
transparent, robust, powerful
ok, but
high-end CMS?
HTTP request
CC
CCC
CCC
C
processor
dispatcher
it’s just aWebserver…
HTTP 0.9 (start simple)
GET /hello.txt
<html>hello!</html>
client server
HTTP requests
CC
CCC
CCC
C
dispatcher
even if itgets busy…
processorprocessor
processor
processor
processorprocessor
processor
processor
processor
CC
CCC
CCC
C
dispatcher
HTTP isenough…
processor
processor
processorprocessor
processor
processor
GETPOSTPUT
DELETE
processorprocessor
processor
so,
how?
put the bar
highdo not accept extra complexity
investin simplicity
can be expensive…and worth it
chase the right
metaphor“a network packets recorder and player”
simplicity is a
processyou usually know when you’re there
beautiful simplicityas simple as possible, but not simpler
what are the
enablers?
modularityenablers
opendevelopmentenablers
Apache Slingenablers
JCRenablers
not simple enough?
don’t give up!