Download presentation
Presentation is loading. Please wait.
Published byMelanie Owen Modified over 9 years ago
1
Copyright © Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy. All rights reserved. Applied Architectures, Part 2 Software Architecture Lecture 18
2
Foundations, Theory, and Practice Software Architecture 2 Decentralized Architectures Networked applications where there are multiple authorities In other words u Computation is distributed u Parts of the network may behave differently, and vary over time It’s just like collaboration in the real world
3
Foundations, Theory, and Practice Software Architecture 3 Grid Protocol Architecture Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission. Coordinated resource sharing in a distributed environment u E.g., Folding-at-home GLOBUS u A commonly used infrastructure “Standard architecture” u Fabric manages low-level resources u Connectivity: communication and authentication u Resource: sharing of a single r. u Collective: coordinating r. usage
4
Foundations, Theory, and Practice Software Architecture 4 Grid GLOBUS (Recovered) Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
5
Foundations, Theory, and Practice Software Architecture 5 Peer-to-Peer Architectures Decentralized resource sharing and discovery u Napster u Gnutella P2P that works: Skype u And BitTorrent
6
Foundations, Theory, and Practice Software Architecture 6 Peer-to-Peer Style State and behavior are distributed among peers which can act as either clients or servers. Peers: independent components, having their own state and control thread. Connectors: Network protocols, often custom. Data Elements: Network messages Topology: Network (may have redundant connections between peers); can vary arbitrarily and dynamically Supports decentralized computing with flow of control and resources distributed among peers. Highly robust in the face of failure of any given node. Scalable in terms of access to resources and computing power. But caution on the protocol!
7
Foundations, Theory, and Practice Software Architecture 7 Peer-to-Peer LL Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
8
Foundations, Theory, and Practice Software Architecture 8 Napster (“I am the Napster!”) Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission. --Lyle, “The Italian Job” (2003)
9
Foundations, Theory, and Practice Software Architecture 9 Gnutella (original) Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
10
Foundations, Theory, and Practice Software Architecture 10 Skype Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
11
Foundations, Theory, and Practice Software Architecture 11 Insights from Skype A mixed client-server and peer-to-peer architecture addresses the discovery problem. Replication and distribution of the directories, in the form of supernodes, addresses the scalability problem and robustness problem encountered in Napster. Promotion of ordinary peers to supernodes based upon network and processing capabilities addresses another aspect of system performance: “not just any peer” is relied upon for important services. A proprietary protocol employing encryption provides privacy for calls that are relayed through supernode intermediaries. Restriction of participants to clients issued by Skype, and making those clients highly resistant to inspection or modification, prevents malicious clients from entering the network.
12
Foundations, Theory, and Practice Software Architecture 12 Web Services Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
13
Foundations, Theory, and Practice Software Architecture 13 Web Services (cont’d) Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
14
Foundations, Theory, and Practice Software Architecture 14 Mobile Robotics Manned or partially manned vehicles Uses u Space exploration u Hazardous waste disposal u Underwater exploration Issues u Interface with external sensors & actuators u Real-time response to stimuli u Response to obstacles u Sensor input fidelity u Power failures u Mechanical limitations u Unpredictable events
15
Foundations, Theory, and Practice Software Architecture 15 Robotics: Sense-Plan-Act Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
16
Foundations, Theory, and Practice Software Architecture 16 Robotics Subsumption Architecture Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
17
Foundations, Theory, and Practice Software Architecture 17 Robotics: Three-Layer Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
18
Foundations, Theory, and Practice Software Architecture 18 Wireless Sensor Networks Software Architecture: Foundations, Theory, and Practice; Richard N. Taylor, Nenad Medvidovic, and Eric M. Dashofy; © 2008 John Wiley & Sons, Inc. Reprinted with permission.
19
Foundations, Theory, and Practice Software Architecture 19 Flight Simulators: Key Characteristics Real-time performance constraints u Extremely high fidelity demands Requires distributed computing Must execute at high fixed frame rates Often called harmonic frequencies e.g. often 60Hz, 30Hz; some higher (100Hz) u Coordination across simulator components All portions of simulator run at integral multiple of base rate e.g. if base rate = 60Hz, then 30Hz, 15Hz, 12Hz, etc. Every task must complete on time Delays can cause simulator sickness
20
Foundations, Theory, and Practice Software Architecture 20 Flight Simulators: Key Characteristics (cont’d) Continuous evolution Very large & complex u Millions of SLOC u Exponential growth over lifetime of simulator Distributed development u Portions of work subcontracted to specialists u Long communication paths increase integration complexity Expensive verification & validation u Direct by-product of above characteristics Mapping of Simulation SW to HW components unclear u Efficiency muddies abstraction u Needed because of historical HW limitations
21
Foundations, Theory, and Practice Software Architecture 21 Functional Model
22
Foundations, Theory, and Practice Software Architecture 22 How Is the Complexity Managed? New style u “Structural Modeling” u Based on Object–oriented design to model air vehicle’s Sub-systems Components Real-time scheduling to control execution order Goals of Style u Maintainability u Integrability u Scalability
23
Foundations, Theory, and Practice Software Architecture 23 How Is the Complexity Managed? (cont’d) Style principles u Pre-defined partitioning of functionality among SW elements u Restricted data- & control-flow Data-flow through export areas only Decoupling objects u Small number of element types Results in replicated subsystems
24
Foundations, Theory, and Practice Software Architecture 24 How Is the Complexity Managed? (cont’d) Style principles (continued) u Objects fully encapsulate their own internal state u No side-effects of computations u Narrow set of system-wide coordination strategies Employs pre-defined mechanisms for data & control passing Enable component communication & synchronization
25
Foundations, Theory, and Practice Software Architecture 25 F-Sim In The Structural Modeling Style Five basic computational elements in two classes u Executive (or infrastructure) Periodic sequencer Event handler Synchronizer u Application Components Subsystems Each of the five has u Small API u Encapsulated state u Severely limited external data upon which it relies
26
Foundations, Theory, and Practice Software Architecture 26 Level–0 Architecture
27
Foundations, Theory, and Practice Software Architecture 27 Level–1 Architecture
28
Foundations, Theory, and Practice Software Architecture 28 Takeaways A great architecture is the ticket to runaway success A great architecture reflects deep understanding of the problem domain A great architecture probably combines aspects of several simpler architectures Develop a new architectural style with great care and caution. Most likely you don’t need a new style.
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.