SlideShare a Scribd company logo
Extreme Scale: Thin Server
Architecture
Mitch Pirtle
codeworks new york city 2009
Wha?

As website interactivity demands put a bigger strain on
your beautiful code, faster internet connections and
more website visitors don't make it any easier. There is
a way to dramatically drop the overhead of rendering a
page, by asking the browser to do all the work. Learn
how to scale your applications to absurd extremes with
this simple, ingenious concept.
Before we begin


Coffee?
Breakfast?
How it all started
Internet




Web server



Data server

              Data Center
Hey, this thing is taking off
Internet




Web server



Data server

              Data Center
Ok, we can handle that
Internet




Web server



Data server

              Data Center
See the pattern?
Problems with this approach

Ties computation with display
Significantly increases load
Significantly reduces opportunity to cache
IT DOESN’T SCALE
But wait, there’s more


 Most developers suck at design
 Most designers suck at code
 We just mixed a huge load of markup and code
 together in a big, amorphous glop
There’s got to be a better
way.
Thin Server Architecture
Thin Server Architecture
Thin Server Architecture
Thin Server Architecture
Wha?

Keeps display and logic separate
Pulls unique information separately
Cache is simpler to implement
Cache reused objects separately from dynamic
Thin Server Architecture
Thin Server Architecture
What it looks like
TSA to PHP developers


 M             M
     V                    V
 C             C




 PHP          PHP       Browser
Problems solved

Seperates display from computational work
Simplifies cache implementation
Lowers network latency, bandwidth usage
Users perceive fast, snappy response
Opens the door to rich internet applications (RIA)
Thin Server Architecture
Thin Server Architecture
Thin Server Architecture
Great example: Dojo
Dojo Toolkit
http://www.dojotoolkit.org/
TSA is platform agnostic	


 CODE: You can use Perl, Ruby, Python, PHP, etc.
 CLIENT: You can use Dojo, jQuery, MooTools, etc.
 DATA: The simpler the better...(next slide, Mitch)
Why develop in an
object language, just
to stuff mismatched
chunks of your
objects in a non-
object data store?
MongoDB
Document store with speed, scale of key/value
and creature comforts of relational systems
What MongoDB can do

Simplifies development
Stores in binary JSON objects
Return data directly to browser in JSON
Store data, binary objects, whatevah!
Thin Server Architecture
Thin Server Architecture
Thin Server Architecture
Time for my favorite game
Stump the Nerd™
Great resources
Thin Server Architecture


 http://www.thinserverarchitecture.com/
 http://www.slideshare.net/rajivmordani/practical-thin-
 server-architecture-with-dojo-peter-svensson-
 presentation
Rich Internet Applications



 http://en.wikipedia.org/wiki/Rich_Internet_application
Thanks!
http://www.spacemonkeylabs.com
http://www.mitchitized.com
Photo credits


 Bulldog Frances (stock photo by jaimo)
 Cat (stock photo by klsa12)
 Sleepy zoo lioness (stock photo by Meeshoo)

More Related Content

Thin Server Architecture