Lecture: Web Technologies: W3C Web Stack (and beyond)
Prof. Dr. Martin Hepp
Universität der Bundeswehr München, WT 2011
This is the Web page for the WT2011 lecture "Web Technologies" at the Universität der Bundeswehr München. The lecture is relevant for the Master's degree program in WIINF (Business Information Systems).
News
2011-02-21: The next tutorial (2011-02-22) will take place from 09:45 - 10:30 in building 33, room 0101!
2011-01-18: The WT 2011 Web page has been set up.
Exam
Please register for the exam via the Office of Academic Affairs (Prüfungsamt).
The date for the exam has been set by the Office of Academic Affairs to Monday, March 21, 2011 at 11:30 am in 043/0108/1.2.
Learning Goals
This class will explain the history and architecture of the World Wide Web (W3C) and its key technical components and specifications, including protocols, identifiers, and mark-up-languages.
Students will understand the role and relevance of key components of the Web. They will obtain the theoretical knowledge and practical skills to develop and manage Web applications that comply with all key W3C standards and recommendations.
General Information
- Lecture: Mondays, 11:30 - 13:00, building 43, 0108/1.2
- Tutorial and Exercises: Tuesdays, 16:45 - 17:30, building 33, room 2116
- Instructors: Prof. Dr. Martin Hepp, Andreas Radinger
Resources
Textbooks
Tim Berners-Lee (with Mark Fischetti): Weaving the Web: The Original Design and Ultimate Destiny of the World Wide Web
More info and free version of chapter 1 at: http://www.w3.org/People/Berners-Lee/Weaving/
Programming in Python
- Python.org: Official Web site - http://www.python.org/
- Tutorial: http://docs.python.org/tutorial/index.html
- Language Reference: http://docs.python.org/reference/index.html
Windows-Terminal-Server of UniBW: https://wts.unibw.de/ => IDLE (Python GUI)
Links and Other Resources
- Architecture of the World Wide Web, Volume One W3C Recommendation 15 Dec 2004
- W3C Technical Architecture Group (TAG)
- Amaya: W3C's Web Editor and Browser
Lecture: Schedule and Materials
Unit 1: Introduction (Jan 10)
Topics
- Specificity
- Findability
- Web of Linked Data
Slides as PDF: PDF (1 slide per page)
Reading assignment: Wikipedia: World Wide Web
Tutorial: Assignment sheet (PDF)
Additional reading
- Peter Morville: Ambient Findability, O'Reilly Media, Sebastopol, CA, USA.
- Wikipedia: History of the World Wide Web
- World Wide Web Museum (in German)
Unit 2: The HTTP Protocol (Jan 17)
Topics
- Overview of Internet protocols
- HTTP: Importance and key features
- HTTP: Basic request/response cycle
- HTTP Methods
- HTTP Status codes
- Content Negotiation
- CURL tool
- Media types
- HTTP Range-14
- Caching
- HTTPS
Slides as PDF: PDF (1 slide per page)
Reading assignment
- Wikipedia Article on HTTP (not necessarily 100% accurate, but good overview)
- RFC 2616, Hypertext Transfer Protocol -- HTTP/1.1, R. Fielding, J. Getty, J. Mogul, H. Frystyk, L. Masinter, P. Leach, T. Berners-Lee (June 1999)
Tutorial: Assignment sheet (PDF) - Solutions sheet (PDF)
Additional reading
- Ryan Tomayko: Things Caches Do
- Google App Engine: Redirects, Headers and Status Codes
- HTTP Range-14: http://www.w3.org/2001/tag/issues.html#httpRange-14
- HTTP Header Viewer: http://www.webmaster-toolkit.com/http-header-viewer.shtml
- Cookies in HTTP: http://tools.ietf.org/html/rfc6265
- Zombie Cookies: http://en.wikipedia.org/wiki/Zombie_cookie
- Evercookie: http://en.wikipedia.org/wiki/Evercookie
- Panopticlick Entropy Test: http://panopticlick.eff.org/
- TLDs vs. Public Suffixes: http://publicsuffix.org/
Unit 3: Web Development in the Cloud, Part 1 (Jan 24)
Topics
- Cloud Computing
- Google App Engine
- Web Development with the Google App Engine
Slides as PDF: PDF (1 slide per page) requires password & username (given in class; if you need it, e-mail to mheppATcomputer.org)
Video: http://www.youtube.com/watch?v=bfgO-LXGpTM
Reading assignment
- Google: What Is Google App Engine?
- Google App Engine: Getting Started: Python
- Google App Engine: Developer's Docs
Tutorial: Assignment sheet (PDF) Solutions (ZIP)
Additional reading:
- Google App Engine Blog: http://googleappengine.blogspot.com/
- Google App Engine Discussion Group: http://groups.google.com/group/google-appengine
- Bennett, Keith et al.: Service-based software: the future for flexible software
Unit 4: Web Development in the Cloud, Part 2 (Jan 31)
Topics
- Google App Engine - Advanced Topics
- JSON
- Amazon Elastic Compute Cloud (EC2)
Slides as PDF: PDF (1 slide per page) requires password & username (given in class; if you need it, e-mail to mheppATcomputer.org)
Reading assignment
- Google: What Is Google App Engine?
- Google App Engine: Getting Started: Python
- Google App Engine: Developer's Docs
- Amazon Elastic Compute Cloud (EC2):
Tutorial: Assignment sheet (PDF)
If you have problems in installing Google App Engine on Windows, please have a look at: http://code.google.com/p/googleappengine/issues/detail?id=1013=> try Python 2.5 or 2.6!
Additional reading:
- Google App Engine Blog: http://googleappengine.blogspot.com/
- Google App Engine Discussion Group: http://groups.google.com/group/google-appengine
Unit 5: Search Engine Marketing and Optimization (Feb 7)
Topics
- Search Engine Technology
- Search Engine Optimization
- Search Engine Marketing
- Paid Search / Sponsored Search
- Web Metrics
- Sitemaps
Slides as PDF: PDF (1 slide per page) requires password & username (given in class; if you need it, e-mail to mheppATcomputer.org)
Reading assignment
- Wikipedia: Search Engine Optimization
- Brin, Sergey and Page, Larry: The Anatomy of a Large-Scale Hypertextual Web Search Engine, Proceedings of the seventh international conference on World Wide Web. p. 107–117, 1998.
- Google: Webmaster Guidelines
Tutorial: Assignment sheet (PDF)
Additional reading:
- SEO Contest: http://de.wikipedia.org/wiki/Hommingberger_Gepardenforelle
- Brian Pinkerton: Finding What People Want: Experiences with the WebCrawler (PDF). The Second International WWW Conference Chicago, USA, October 17–20, 1994.
- Internet Statistics: http://www.mit.edu/~mkgray/net/
Unit 6: XML Technologies, Part 1 (Feb 14)
Topics
- XML Recap
- XSLT
Slides as PDF: PDF (1 slide per page) requires password & username (given in class; if you need it, e-mail to mheppATcomputer.org)
Reading assignment
- Extensible Markup Language (XML) 1.0 (Fifth Edition) W3C Recommendation 26 November 2008
- Stuart Madnick: The Misguided Silver Bullet: What XML will and will NOT do to help Information Integration, MIT Sloan Working Paper No. 4185-01; CISL Working Paper No. 01-08, October 2001.
- XSL Transformations (XSLT) Version 1.0 W3C Recommendation 16 November 1999
Tutorial
Additional reading
- Namespaces in XML (Second Edition), W3C Recommendation, 16 August 2006, Tim Bray, Dave Hollander, Andrew Layman, Richard Tobin, eds.
- XML Pointer Language (XPointer) Version 1.0 W3C Last Call Working Draft 8 January 2001
- Cascading Style Sheets Level 2 Revision 1 (CSS 2.1) Specification W3C Candidate Recommendation 19 July 2007
- Extensible Stylesheet Language (XSL) Version 1.1 W3C Recommendation 05 December 2006
- XML 1.1 (Second Edition), W3C Recommendation, 16 August 2006, Tim Bray, Jean Paoli, C. M. Sperberg-McQueen, Eve Maler, François Yergeau, John Cowan, ed.
- Namespaces in XML 1.1 (Second Edition), W3C Recommendation, 16 August 2006, Andrew Layman, Tim Bray, Dave Hollander, Richard Tobin, eds.
- XML Linking Language (XLink) Version 1.0 W3C Recommendation 27 June 2001
- http://www.w3.org/Style/CSS-vs-XSL
- Document Object Model (DOM) Level 1 Specification Version 1.0 W3C Recommendation 1 October, 1998
- XML Schema Part 1: Structures Second Edition W3C Recommendation 28 October 2004
- XML Schema Part 2: Datatypes Second Edition W3C Recommendation 28 October 2004
Tools and Resources
Unit 7: XML Technologies, Part 2 (Feb 21)
Topics
- XML Processing in Python
- GRDDL
Slides as PDF: PDF (1 slide per page) requires password & username (given in class; if you need it, e-mail to mheppATcomputer.org)
Reading assignment
- Python xml.dom.minidom — Lightweight DOM implementation
- W3C: Gleaning Resource Descriptions from Dialects of Languages (GRDDL), W3C Recommendation 11 September 2007
- W3C: GRDDL Use Case Working Draft
- W3C: GRDDL Primer
- W3C: GRDDL Data Views: Getting Started, Learning More
Tutorial:
Additional reading
- All materials from unit 6
- Namespaces in XML (Second Edition), W3C Recommendation, 16 August 2006, Tim Bray, Dave Hollander, Andrew Layman, Richard Tobin, eds.
- Document Object Model (DOM) Level 1 Specification Version 1.0 W3C Recommendation 1 October, 1998
- XPointer Franework, http://www.w3.org/TR/xptr-framework/
- XML Schema Part 1: Structures Second Edition W3C Recommendation 28 October 2004
- XML Schema Part 2: Datatypes Second Edition W3C Recommendation 28 October 2004
- RELAX NG (REgular LAnguage for XML Next Generation)
Unit 8: Rich Meta-Data on the Web, Part 1 (Feb 28)
Topics
- RDF
- Turtle Syntax
- SPARQL
- RDF/XML
- RDFa and RDFa Parsing
- RDFa in HTML5
- Common Vocabularies: vCard, FOAF, SIOS, GoodRelations
- RDF Processing in Python: RDFlib, PyRDFa
- Microdata Specification
Slides as PDF: PDF (1 slide per page) requires password & username (given in class; if you need it, e-mail to mheppATcomputer.org)
Tutorial: Assignment sheet (PDF)
Reading assignment
- Joshua Tauberer: What is RDF?
- Dave Beckett and Tim Berners-Lee: Turtle - Terse RDF Triple Language, W3C Team Submission 14 January 2008
- Eric Prud'hommeaux and Andy Seaborne (eds.): SPARQL Query Language for RDF, W3C Proposed Recommendation 12 November 2007
- RDFa in XHTML: Syntax and Processing, W3C Recommendation 14 October 2008
- GoodRelations Recipe 6: Annotating a Web Shop with RDFa for Yahoo Searchmonkey
- RDFlib on Google Code: http://code.google.com/p/rdflib/
- RDFlib official Web page: http://www.rdflib.net/
- http://bel-epa.com/rdflibdocs/gettingstarted.html
- Wikipedia article on RDFlib: http://en.wikipedia.org/wiki/RDFLib
- Ben Adida et al. (eds.): HTML5+RDFa. A mechanism for embedding RDF in HTML, W3C Editor's Draft 13 July 2009.
Additional reading
- Joshua Tauberer: Quick Intro to RDF
- http://rdfa.info/
Tools and Resources
- Twinkle: A SPARQL Query Tool
- Web Page: http://www.ldodds.com/projects/twinkle/
- Download: http://www.ldodds.com/projects/twinkle/twinkle-2.0-bin.zip
- Developer Info: http://code.google.com/p/twinkle-sparql-tools/
- Installation:
- Requires Java 1.5 or higher
- Download the distribution and unzip it into a new directory.
- Open a command-prompt and execute the following: java -jar twinkle.jar
- For our tutorial, please replace the file config.n3 in the "etc" subdirectory by the following file: config.n3.txt (file size: 10 KB, MIME type: text/plain) (Rename it to config.n3 after downloading.)
- Web Page: http://www.ldodds.com/projects/twinkle/
- RDF Validator (and Visualizer)
- http://www.w3.org/RDF/Validator/
- http://www.rdfabout.com/demo/validator/ (also supports N3/Turtle)
- PyRDFa: RDFa Extractor
- RDF2RDFa: turns RDF/XML content into simple RDFa snippets that can be easily pasted into any XHTML Web page
Unit 9: Rich Meta-Data on the Web, Part 2 (March 7)
Topics
- E-Commerce on the Web of Data
- GoodRelations Ontology
- Examples
Slides as PDF: PDF (1 slide per page) requires password & username (given in class; if you need it, e-mail to mheppATcomputer.org)
Tutorial: Assignment sheet (PDF)
Unit 10: Access Control on the Web (March 14)
Topics
- Access control in HTTP: Basic and digest access
- HTTPS
- SSL/TLS
- OAuth
- OpenID
- FOAF-SSL
Slides as PDF: PDF (1 slide per page) - not yet available
Reading assignment:
- Basic HTTP Authentication: http://en.wikipedia.org/wiki/Basic_access_authentication (non-authoritative resource)
- Digest access Authentication: http://en.wikipedia.org/wiki/Basic_access_authentication (non-authoritative resource)
- HTTPS: http://en.wikipedia.org/wiki/HTTP_Secure (non-authoritative resource)
Tutorial: Assignment sheet (PDF) - not yet available
Additional reading:
- http://bitwacker.wordpress.com/2010/01/20/thoughts-on-securing-linked-data-with-oauth-and-foafssl/
- Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S., Leach, P., Luotonen, A., Sink, E., and L. Stewart: HTTP Authentication: Basic and Digest Access Authentication, RFC 2617, June 1999.
- RFC 2818: HTTP Over TLS
- OAuth: http://oauth.net/
- OpenID: http://openid.net/
- Wikipedia on OpenID: http://en.wikipedia.org/wiki/OpenID
- FOAF+SSL: Adding Security to Open Distributed Social Networks
- H. Story: FOAF + SSL: RESTful Authentication for the Social Web
Unit 10: Exam Review (March 21)
Slides: see units 1-10
Optional Topic: Popular Web APIs
Topics
- SOAP vs. REST
- Yahoo APIs
- Google APIs
- Amazon APIs
- OpenCalais API
Slides as PDF: PDF (1 slide per page) - not yet available
Reading assignment: none
Tutorial: Assignment sheet (PDF) - not yet available
Tools and Resources:
- http://developer.yahoo.com/
- http://code.google.com/more/
- https://affiliate-program.amazon.com/gp/advertising/api/detail/main.html
- http://www.opencalais.com/about/developer
Additional Materials and Resources
Web Architecture
Core documents
- Architecture of the World Wide Web, Volume One W3C Recommendation 15 Dec 2004
- T. Berners-Lee: Cool URIs don’t change, http://www.w3.org/Provider/Style/URI
Additional reading
- RFC3986 Uniform Resource Identifier (URI): Generic Syntax
- „How to Publish Linked Data on the Web“, by Chris Bizer, Richard Cyganiak, and Tom Heath
http://sites.wiwiss.fu-berlin.de/suhl/bizer/pub/LinkedDataTutorial/ - Web Architecture from 50,000 feet
- Wikipedia: Uniform Resource Identifier
Web Markup Languages
Core documents
Additional reading
Tools and Resources
Programming in Python
Core documents
- Python Tutorial: http://docs.python.org/tutorial/index.html
Tools and resources
- Python.org: Official Web site - http://www.python.org/
- Language Reference: http://docs.python.org/reference/index.html
- WingIDE 101: Free Development Environment - http://www.wingware.com/wingide-101
- Example: Code of the Wikipedia Fetcher
Web Protocols: From HTTP to SOAP and REST
Core documents
Additional reading
- Fielding, Roy T.; Taylor, Richard N. (2002-05), "Principled Design of the Modern Web Architecture" (PDF), ACM Transactions on Internet Technology (TOIT) (New York: Association for Computing Machinery) 2 (2): 115–150, http://www.ics.uci.edu/~taylor/documents/2002-REST-TOIT.pdf
- Fielding, Roy Thomas (2000) (HTML), Architectural Styles and the Design of Network-based Software Architectures, University of California, Irvine, http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
- Pautasso, Cesare; Zimmermann, Olaf; Leymann, Frank (2008-04), "RESTful Web Services vs. Big Web Services: Making the Right Architectural Decision" (HTML), 17th International World Wide Web Conference (WWW2008) (Beijing, China)
- W3C Web Services Activity
- XML Protocol Working Group
- W3C SOAP page
- SOAP Version 1.2 specification
- SOAP Tutorial
- http://diveintopython.org/http_web_services/index.html
License:
All text content and source code in the Wiki of the E-Business and Web Science Research Group is available under a Creative Commons Attribution-ShareAlike 3.0 license. Images and other multimedia content in the Wiki may have differing licenses; see the respective meta-data pages for details.