22
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

  • View
    219

  • Download
    1

Embed Size (px)

Citation preview

Page 1: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

INF 123 SW ARCH, DIST SYS & INTEROP

LECTURE 19

Prof. Crista Lopes

Page 2: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Objectives

Recap of the entire course

Page 3: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 2

Review of Architecture in Software Systems Terminology, Definitions Different Types of Architecture Concrete example: OpenSimulator What lead software

architects/designers/engineers do

Page 4: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 3

Distributed Systems Recap Computer networks – historical perspective The OSI network model The Internet Basics of TCP

Page 5: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 4

UDP DNS

Page 6: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

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

Page 7: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 6

Web application programming 3-tier architectures Media types HyperText Markup Language (HTML)

Relation to HTTP Web Programming frameworks

Wifi

Page 8: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 7

REpresentational State Transfer (REST) Design principles REST application design guidelines

Page 9: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 8

Web Services Remote Procedure Calls

XMLRPC SOAP

WSDL

Page 10: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 9

Distributed Objects Java RMI

Page 11: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 10

External Data Representations Endianess XDR XML JSON

Page 12: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 11

Software architecture recovery What and why Conceptual vs. as-is

Grid Computing architectures

Page 13: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 12

Peer-to-Peer architectures Napster Gnutella

Page 14: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 13

Event-Based Architectures The Internet, in practice

Identification, IP addresses, ports

Page 15: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 14

Decentralization and security Firewalls Cryptography

MD5 Well-known threats (part1) SLL and HTTPS

Page 16: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 15

Web application security Well-known threats (part 2) Due diligence

Page 17: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 16

Authentication and Authorization OpenID and OAuth

Page 18: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 17

Trust on the Internet Certificates and CAs Public Key Cryptography SSL

Page 19: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Lecture 18

How to program for security The principle of least authority (POLA) Good security ≈ good engineering

Page 20: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

Assignments

Slice of the course material in practice: Sniffing packets HTTP REST Web programming Services, connectors Software architecture recovery Firewalls OpenID and related protocols

Page 21: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

This course

Many architectures, not just one! Main focus of this course:

Well-known software system architectures Secondary focus:

“Good” software architectures

Page 22: INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 19 Prof. Crista Lopes

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.