
Designing Web Applications Thaddeus Diamond CPSC 112
The Social Network • Great Movie • Not so great at depicting website-making • We will not make Facebook… today
What You See When You Look at Facebook A page Some information Dynamic Links to other pages Pretty pictures
FB Server Hive/MapReduce HTTP Request Data Layer You Raw HTML, JS, CSS XMLHttpRequest JSON JavaScript Engine Scripts • Facebook’s Actual Architecture(BIGPIPE) • Inspired by parallel processor execution • Years of development • PhD-Level Architecture
And That’s Just the Beginning… BIGPIPE Hive/Hadoop Mobile infrastructure API and JavaScript SDK HipHop for PHP Scribe Logging …
Don’t Be Discouraged! • All good websites start somewhere • Rome wasn’t built in a day • Take more Computer Science classes! • Hey, if a Harvard kid can make Facebook…
Google App Engine • Fast, scalable web deployment service • Abstracts data layer, server environment, away • Applications can be written in Python or Java(!) • Many powerful APIs, extensions, examples • Well-documented
Application Code (Python, Java) Network Interface Virtual Machine Virtual Machine Memory Datastore Servers Operating System Operating Sandbox How it Works (An Overview)
Template 1 (HTML/CSS) Servlet 1 (JAVA) GET (Address Bar) Template 2 (HTML/CSS) Servlet 2 (JAVA) Clients Template 3 (HTML/CSS) Servlet 3 (JAVA) POST (Submitted form data) Our Basic Architecture
The Next Big Google App! • Let’s build a group note repository • People will be able to go to the site and see what notes have been posted • People will be able to create their own and edit anyone’s • Only an administrator can delete a note
Lab Part 2…? • Add the ability to specify which class and sort by class • Add the ability to specify school and sort by school • Add the ability to do rich text editing • Add the ability to log in • …?