INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes
Objectives Recap of the entire course
Lecture 2 Review of Architecture in Software Systems Terminology, Definitions Different Types of Architecture Concrete example: OpenSimulator What lead software architects/designers/engineers do
Lecture 3 Distributed Systems Recap Computer networks – historical perspective The OSI network model The Internet Basics of TCP
Lecture 4 UDP DNS
Lecture 5 The Web Client-Server architectures Historical perspective of the Web Main design principles Universal Resource Locators HyperText Transfer Protocol operations HTTP requests and responses Web caches Cookies
Lecture 6 Web application programming 3-tier architectures Media types HyperText Markup Language (HTML) Relation to HTTP Web Programming frameworks Wifi
Lecture 7 REpresentational State Transfer (REST) Design principles REST application design guidelines
Lecture 8 Web Services Remote Procedure Calls XMLRPC SOAP WSDL
Lecture 9 Distributed Objects Java RMI
Lecture 10 External Data Representations Endianess XDR XML JSON
Lecture 11 Software architecture recovery What and why Conceptual vs. as-is Grid Computing architectures
Lecture 12 Peer-to-Peer architectures Napster Gnutella
Lecture 13 Event-Based Architectures The Internet, in practice Identification, IP addresses, ports
Lecture 14 Decentralization and security Firewalls Cryptography MD5 Well-known threats (part1) SLL and HTTPS
Lecture 15 Web application security Well-known threats (part 2) Due diligence
Lecture 16 Authentication and Authorization OpenID and OAuth
Lecture 17 Trust on the Internet Certificates and CAs Public Key Cryptography SSL
Lecture 18 How to program for security The principle of least authority (POLA) Good security ≈ good engineering
Assignments Slice of the course material in practice: Sniffing packets HTTP REST Web programming Services, connectors Software architecture recovery Firewalls OpenID and related protocols
This course Many architectures, not just one! Main focus of this course: Well-known software system architectures Secondary focus: “Good” software architectures
Expected knowledge Basic understanding of how the Internet works Proficiency on everything Web architecture, data representations, HTTP, REST, programming, CAs, … Confidence upon having to deal with web programming frameworks Confidence upon having to interact with Web services Proficiency on identifying security threats in decentralized systems how to handle them Awareness about non client-server architectures P2P, EB, Grid, etc.