inf 123 sw arch, dist sys & interop lecture 2 prof. crista lopes
Post on 19-Dec-2015
216 views
TRANSCRIPT
INF 123 SW ARCH, DIST SYS & INTEROP
LECTURE 2
Prof. Crista Lopes
Objectives
Present the course – take 2 Introduction Recap of Architecture
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 ???
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
Recap on Architecture
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
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, …
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
Definition: Configuration
“Set of concrete associations between components and connectors”
Definition: Architectural Style “Named collection of [architectural]
design decisions” i.e. Architecture with a name
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.
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…
“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”
Web Usability Architecture
Web Deployment Architecture
Web System Architecture
Apache HTTPD Software Architecture
“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
Overview: OpenSimulator
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
…
Deployment Architecture(s)
Simulator
DBStandalone
Simulator
DBROBUSTServices
Grid
Simulator Simulator Simulator
Simulator
DB
Serverless Grid
Simulator Simulator Simulator
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
System Architecture
Previous picture is incomplete Important parts missing:
Protocol descriptions Login protocol Teleport protocol Instant Messaging Protocol …
Security Permissions Authorization …
Extensibility features
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…
Main Points
Many architectures, not just one! Main focus of this course:
Well-known software system architectures Secondary focus:
“Good” software architectures
“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
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)
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
Skill Set
Long software development expertise Domain expertise Communicator Strategist Leader Technologist Cost estimator Cheerleader Politician Salesperson
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