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

30
INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 2 Prof. Crista Lopes
  • date post

    19-Dec-2015
  • Category

    Documents

  • view

    216
  • download

    4

Transcript of INF 123 SW ARCH, DIST SYS & INTEROP LECTURE 2 Prof. Crista Lopes.

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

INF 123 SW ARCH, DIST SYS & INTEROP

LECTURE 2

Prof. Crista Lopes

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

Objectives

Present the course – take 2 Introduction Recap of Architecture

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

INF 123 in Context

Formerly ICS 123, same title and purpose Taught it 3 years in a row, ICS students Focus on applied architectures and protocols

Renumbered INF 123 for Informatics program Prof. Taylor took over, Software Architecture book Course materials largely drawn from book Focus on general concepts

Now Back to me ???

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

INF 123, S10: The Final Deal

Focus on applied architectures and protocols Link to general concepts that you already know Projects: OpenSimulator framework

3D application server, MMO Virtual Worlds C# (.NET or mono) ~500,000 LOC 1,000s of users http://opensimulator.org http://www.ohloh.net/p/opensimulator “Diva”

Watery Break: World Builder

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

Recap on Architecture

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

Definition: Architecture

“Set of principal design decisions” “Design decision” implies design options Not all design decisions are architectural in nature

“principal” depends on Goals Perspectives

Design decisions may change over time Architecture may change over time

Two fundamental points Every system has an architecture Every system has at least one architect

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

Definition: Component

“Architectural element that (1) encapsulates a subset of the system’s functionality and/or data; (2) restricts access to that subset via an interface, and (3) has explicitly defined dependencies on its operational context.”

E.g. database, Web server, jar/dll files with specific functionality, …

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

Definition: Connector

“Architectural element tasked with effecting and regulating interactions among components.”

Most common: DB connectors Perhaps the less understood and most

powerful concept for engineering extensible systems, especially when coupled with the concept of plugin

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

Definition: Configuration

“Set of concrete associations between components and connectors”

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

Definition: Architectural Style “Named collection of [architectural]

design decisions” i.e. Architecture with a name

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

Definition: Architectural Model “An artifact that represents most or all of

the architecture.”

Notation: “Language or means of capturing that representation” E.g. UML, PowerPoint bullets, sketches, etc.

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

Where is “Software”?

Read the definitions again. Is it there? These are general concepts in artifact creation, too

general to draw meaning between creative activities Buildings (architecture) Cars (design) Furniture (design) Medical instruments (engineering) Music (composition) Computers (engineering) Institutions (design) … … Software (design/architecture/engineering)

Software Architecture≠

Buildings Architecture≠

Car Design…

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

“Architecture” in software systems Software architecture System architecture Deployment architecture Testing architecture Usability architecture …

These are all different aspects of the same system All creative activities, all different Must qualify the word “architecture”

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

Web Usability Architecture

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

Web Deployment Architecture

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

Web System Architecture

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

Apache HTTPD Software Architecture

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

“Architecture” in software systems Software architecture: set of principal design decisions

regarding the software itself System architecture: set of principal design decisions

regarding the system’s concepts and operation Deployment architecture: set of principal design

decisions regarding the mapping between software and hardware

Testing architecture: set of principal design decisions regarding the testing procedures and tools

Usability architecture: set of principal design decisions regarding the user experience

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

Overview: OpenSimulator

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

Usability Architecture:The VW operators perspective

Simulator(OpenSim.exe)

Configuration

(OpenSim.ini)ROBUSTServices

(OpenSim.Server.exe)

Configuration

(OpenSim.Server.ini)

Client(Hippo,

etc.)

Client(Hippo,

etc.)…

DB

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

Deployment Architecture(s)

Simulator

DBStandalone

Simulator

DBROBUSTServices

Grid

Simulator Simulator Simulator

Simulator

DB

Serverless Grid

Simulator Simulator Simulator

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

System Architecture

AssetService

Authentication

Service

AvatarService

VoiceService

Gatekeeper

Service

GridService

Grid UserService

InventoryService

LoginService

PresenceService

User AccountsService

User AgentsService

Physics Engine

Script Engine

Scene Manageme

nt

ClientProtocol

Stack

ClientProtocolStacks

ModuleLoader

HTTPHandlers

… …

Service Infrastructure

Simulator

C# HTTP

Server

LibOMV

ODE

log4net

MonoAddins

MySql

SQLite

OpenJPEG

External Dependencies

DB

Service Connectors

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

System Architecture

Previous picture is incomplete Important parts missing:

Protocol descriptions Login protocol Teleport protocol Instant Messaging Protocol …

Security Permissions Authorization …

Extensibility features

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

Software Architecture

Framework

Framework.Servers

Framework.Servers.HttpServe

r

Region.Framework

Region.Framewor

k.Scenes

Region.Framework.Interfaces

Region.CoreModul

es

Region.Physics.Manager

Region.Physics.

ODE…

Services.Interfaces

S S S…

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

Main Points

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

Well-known software system architectures Secondary focus:

“Good” software architectures

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

“Design” and “Implementation” and “Documentation”

The objective is to create machine-executable source code and an explanation for it Where do you start?

Option a) Think hard and long, document, then write the code

Option b) Write the code, make it work, code is documentation

Option c) Think, write, think, write, think, write, … Option d) Write, think, write, think, write, think, …

In all cases, there will be architectures

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

Where is “Software”?

Read the definitions again. Is it there? These are general concepts in artifact creation, too

general to draw meaning between creative activities Buildings (architects) Cars (designers) Furniture (designers) Medical instruments (engineers) Music (composers) Computers (engineers) Institutions (leaders) … … Software (lead architects/designers/engineers)

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

Software Lead Architects/Designers/Engineers

“jack of all trades” Maintainer of system’s conceptual integrity Part of team

Set of people with complementary skills Committed to common

Purpose Performance goals Approach

Hold each other accountable Life is long series of locally suboptimal decisions made

partly in the dark Sometimes painful

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

Skill Set

Long software development expertise Domain expertise Communicator Strategist Leader Technologist Cost estimator Cheerleader Politician Salesperson

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

Skill Set (from the book)

What architects are usually not in a project Developers – though they may prototype their

ideas (they are developers! – very experienced ones)

World-class software programmers (they need to be the best around)

Managers – except in small organization