ACE 104: Nuts and Bolts of Web Services
Winter 2007


Course number: Ace 104

Meeting times: Jan 22, Feb 5, Feb 12, Feb 19, Mar 5 10am-5pm

Professor: Andrew Siegel (siegela@uchicago.edu)

Course description: We will focus on the nuts and bolts of web-services in the context of the so-called Service Oriented Architecture (SOA) architectural style. We begin with a big-picture conceptual overview of the definition, aims, and historical context of SOA. We then back up for and in-depth study of the technologies that form the underpinning of modern SOA implementation -- http, XML, XML Schema, XML parsing, SOAP, WSDL, UDDI -- and eventualy work our way back up to the SOA model with an in depth study of WS-BPEL and grid computing. One premise of the course is that a deep understanding of modern SOA underpinning technologies is a key ingredient to being a successful SOA architect, and ultimately brings greater efficiency by simplifying common tasks such as vendor migration, troubleshooting (less shooting from the hip), analyzing new technological trends, targeting high-efficiency application tuning, etc.

Course Format: Instructor lecture with small interspersed written assignments, an end of class quiz, and signficant student participation. Please bring several sheets of paper and something to write with for quiz and assignments (a laptop is helpful but not necessary).

Here is a rough sketch of a typical day (300 minutes excluding lunch/breaks). I will try to stick to this so you can plan your work schedule around it:

10:00-11:10 Lecture + Assignment
11:10-11:30 Break
11:30-12:40 Lecture + Assignment
12:40-12:50 Quiz

12:50-2:00 Lunch

2:00-3:10 Lecture + Assignment
3:10-3:30 Break
3:30-4:40 Lecture + Assignment
4:40-4:50 Quiz

Also, please bring something with your name written on it that you can place in front of you (e.g. folded piece of paper).

Pre-requisites: Strong programming skills preferably in Java, but C#, Python, Perl, or C++ will be ok also.

Grading:

  • 40% weekly assignments
  • 40% final project (built on top of weekly projects)
  • 10% in-class quizzes
  • 10% participation (either in-class or listhost)

    Getting Help: The course listhost is the best place to get help quickly. I will monitor it as frequently as possible and often be able to answer immediately. Students are encouraged to help their peers on the listhost by contributing when it is convenient.

    Course texts:
    SOA: Concepts, Technology, Designs by Thomas Erl (Erl1)
    SOA: A Field Guide to Integrating XML and Web Services by Thomas Erl (Erl2)

    Required tools:
    Text editor and compiler for your favorite language
    XSLT processor (many good free ones)
    Web server that supports some server side programming model
    Oracle SOA suite will be used toward end of class

    Web Links:
    There are too many reasonably good links for me to keep this up alone. If you find something that is useful for any of the topics below, send link to me and I will add to this list for the benefit of others.


    Syllabus:
    Date Topic Reference Material Readings Homework in-class Quiz
    Jan 22 SOA concepts and definitions; overview of distributed architectures notes1 Erl1 ch. 1-3 -- exercises quiz1
    Jan 22 Intro to XML and XML Schema: XML types, namespaces, imports, keys, etc. notes2 Any introductory XML Reference homework1 exercises quiz2
    Feb 5 XML Schema in depth; overview of RelaxNG, DTD, ... notes3
    examples
    exercises quiz3
    Feb 5 XML Transformation: XSLT, XPath notes4
    examples
    homework2 exercises quiz4
    Feb 12 SOAP, RPC mechanisms notes5
    examples
    exercises quiz5
    Feb 12 XML Parsing Models, auto language bindings using JAXB, etc. notes6
    examples
    exercises quiz6
    Feb 26 WSDL in depth, UDDI ... notes7 Erl1, ch. 5, 15 exercises quiz7
    Feb 26 Tight coupling: Grid Computing; Message Passing Interface (MPI) notes8 homework3 no exercises no quiz
    April 2 WS-* notes9 Erl1, ch. 6, 16-18 -- no exercises no quiz
    April 2 Discussion of REST; Final homework presentations notes10 (Costello) student presentations no exercises no quiz