1 / 30

INF 123 SW Arch, dist sys & interop Lecture 2

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

shira
Download Presentation

INF 123 SW Arch, dist sys & interop Lecture 2

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. INF 123 SW Arch, dist sys & interopLecture 2 Prof. Crista Lopes

  2. Objectives • Present the course – take 2 • Introduction Recap of Architecture

  3. 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 • ???

  4. 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

  5. Recap on Architecture

  6. 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

  7. 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, …

  8. 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

  9. Definition: Configuration • “Set of concrete associations between components and connectors”

  10. Definition: Architectural Style • “Named collection of [architectural] design decisions” • i.e. Architecture with a name

  11. 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.

  12. 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 …

  13. “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”

  14. Web Usability Architecture

  15. Web Deployment Architecture

  16. Web System Architecture

  17. Apache HTTPD Software Architecture

  18. “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

  19. Overview: OpenSimulator

  20. Usability Architecture:The VW operators perspective DB Configuration (OpenSim.Server.ini) Configuration (OpenSim.ini) Simulator (OpenSim.exe) ROBUST Services (OpenSim.Server.exe) … Client (Hippo, etc.) Client (Hippo, etc.) …

  21. Deployment Architecture(s) ROBUST Services DB Simulator DB Standalone Simulator Simulator Simulator Simulator Grid DB Simulator Simulator Simulator Simulator Serverless Grid

  22. System Architecture Asset Service Authentication Service Avatar Service Voice Service Gatekeeper Service Grid Service DB Grid User Service Inventory Service Login Service Presence Service User Accounts Service User Agents Service Service Infrastructure Mono Addins C# HTTP Server Service Connectors Physics Engine Script Engine Scene Management MySql LibOMV … SQLite ODE … … Client Protocol Stack Client Protocol Stacks Module Loader HTTP Handlers Open JPEG log4net Simulator External Dependencies

  23. System Architecture • Previous picture is incomplete • Important parts missing: • Protocol descriptions • Login protocol • Teleport protocol • Instant Messaging Protocol • … • Security • Permissions • Authorization • … • Extensibility features

  24. Software Architecture Framework Framework.Servers Region.Framework.Interfaces Services.Interfaces Region. Framework … S S S Framework.Servers. HttpServer Region. Framework. Scenes Region. CoreModules Region. Physics. Manager Region. Physics. ODE …

  25. Main Points • Many architectures, not just one! • Main focus of this course: • Well-known software system architectures • Secondary focus: • “Good” software architectures

  26. “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

  27. 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)

  28. 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

  29. Skill Set • Long software development expertise • Domain expertise • Communicator • Strategist • Leader • Technologist • Cost estimator • Cheerleader • Politician • Salesperson

  30. 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

More Related