
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:
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 |