INF 123 - Software Architecture, Distributed Systems and Interoperability

Class Notes

Syllabus

Academic Honesty

Students with Disability

Microsoft .NET

Visual Studio Express

Mono

MonoDevelop

OpenSim Framework

Hippo Viewer

SL Viewer (1.23 only!)

LibOMV

Synopsis

Purpose. Prepares students to engineer well-structured software systems. Students learn a wide range of software architectural styles, architectural platforms that provide standard services to applications, and formal architecture description languages.

Book. "Software Architecture: Foundations, Theory, and Parctice" by Richard Taylor, Nenad Medvidovic, Eric Dashofy

Evaluation. Homework/lab projects (1/3) + Quizzes (1/3) + Exam (1/3)

Pedagogy.
- Lectures cover the material in the reading materials by placing it in context, giving examples, and engaging in Q&As.
- Discussionss focus on implementation issues. They support the discussion of homework projects.
- Homework projects are hands-on vehicles for learning the material. Collaboration and knowledge exchange are encouraged in the projects, but mindless copy of solutions (aka cheating)
is not allowed.
- The quizzes are checkpoints to evaluate each student's knowledge of the material. The quizzes cover implementation issues of the homeworks, principles discussed in the lectures and facts stated in the reading materials.
- The final exam challenges the student's grasp of "the big picture." Rather than focusing on small portions of the material, it mixes everything.

Instructor: Prof. Cristina Lopes, DBH 5076, lopes at ics dot uci dot edu; Office hours: Mondays and Wednesdays, 10-11am.
Assistant: Mehryar Rahmatian

Lectures: Mon & Wed 12:30-1:50, DBH 1423
Discussion section: Mon 4-4:50, DBH 1425


Homework/Lab Projects

There will be 5 assignments, including one of the first week. Assignments are usually due Sundays by midnight. Late assignments will be accepted with penalties.

Submission

See instructions in each homework.


Quizzes

There will be 4 quizzes throughout the course. Quizzes are on Wednesdays during the lecture. They will cover material that has been taught the previous weeks.


Syllabus:

Week Date Topic Weekly materials Deliverables Notes
1 3/29 Software Architecture Basics Recap

* Textbook Chapter 1: The Big Idea;

* Textbook Chapter 3: Basic Concepts;

* Textbook Chapter 17: People, Roles and Teams

* Wikipedia entry on Software Architecture

* The OpenSimulator project

Assignment 1 due 4/5

Slides

Slides

Slides

3/31 Slides
2 4/5 Distributed Systems overview:

Architectures and Protocols

* The OSI model of Interconnection

* Transport-Level Protocols: TCP and UDP

* Wikipedia entry on ARPANET

* TCP/IP

Assignment 2 due 4/11

Slides
4/7 *Mehryar Slides
3 4/12 Decentralized Systems: The Web

* The Web and HTTP

* The RESTful Architectural style

* Textbook Chapter 11 (part 1): Applied Architectures and Styles

* The HttpEcho app

Quiz 1 (4/14)

Slides
Discussion
4/14 Slides
4 4/19 The Web and Interoperability (Part 1)

* XML-RPC & SOAP

* Web Services & WSDL

* Roy Fielding's PhD dissertation, chapters 5 and 6

* Decent article about RESTful design

* Web Services, WSDL and REST: an example

Assignment 3 due 4/25

Slides
4/21 Slides
5 4/26 Distributed Objects (RMI)

Data representations

* Textbook Chapter 4 (part 3): Designing Architectures

* Java RMI example

Quiz 2 (4/28)

Slides
4/28 Slides
6 5/3

Software Architecture Recovery

Decentralized Architectures

* Decentralization vs. Distribution: Authority

* Grid computing and cloud computing

* Peer 2 peer

* Textbook Chapter 4 (part 2): Designing Architectures

* Textbook Chapter 11 (part 2): Applied Architectures and Styles

* Apache Architecture Recovery

Assignment 4 due 5/9

Slides
Discussion
5/5 Slides
7 5/10

* Event-Based and Pub/Sub Architectures

* The internet, part 2, Security

* Firewalls

* SSL and HTTPS

* Textbook Chapter 4: Designing Architectures

Quiz 3 (5/12)

Slides
5/12 Slides
8 5/17 Security:

* Common vulnerabilities

Interoperability, Part 2:

* Emerging standards: OpenID and OAuth

* Textbook Chapter 13: Security

* OpenID Spec

* Http Echo app, with HTTP redirects

Slides
Vulnerabilities
5/19 Slides
9 5/24 Trust

* Certificates / PKI

* Programming for security

* The Lazy Programmer's Guide to Secure Computing Quiz 4 (5/26) Slides
5/26
10 5/31 *No class Recap Assignment 5 due 6/2

6/2 Slides

Exam: Mon, June 7, 1:30-3:30pm


Academic Honesty

I trust all students are honest and do not cheat. Those who break my trust at any point will get an F in the course - no excuses or apologies will be accepted.Additional penalties may also be imposed by the department and the university. Very severe incidents of academic dishonesty can result in suspension or expulsion from the university.

So don't risk it! If, for some reason, you can't do the homework on time or can't study for the Quiz, you're better off skipping it than cheating it. Do the math!


Students with Disability

Any student who feels he or she may need an accommodation based on the impact of a disability should contact me privately to discuss his or her specific needs.  Also contact the Disability Services Center at (949) 824-7494 as soon as possible to better ensure that such accommodations are implemented in a timely fashion.