Layered Architecture Group 1 - Wesley Flowers, Brian Kennedy, Corey Masters, Everett Thayer, Andre Vicente
Part 1: Introduction Corey Masters
Layered Architecture • Most commonly used of all architectures • Forms the basis of the modern paradigm of computing • Modules use services of the module(s) directly below it and provide services to the module(s) above it • Promotes loose coupling of cohesive modules • Often used as a "fallback" architecture when an obvious solution is not present • Other architectures can use this style, in a hybrid fashion
Layered Architecture • Aqua Lush Example • LCD TV Example (Bai and Chen)
Part 2: High-Level Wesley Flowers
High-Level Diagrams Onion Diagram Wedding Cake Diagram Layer 5 Layer 4 Layer 3 Layer 2 Layer 1 Wedding Cake Design is typically used to show connection between layers in communication protocols and user interfaces. Onion Diagram typically illustrates operating system layers.
Communication • Static Structure: The software is partitioned into layers that provide a cohesive set of services with a well-defined interface. • Dynamic Structure: Each layer is allowed to only use • the layer directly below it (Strict Layered style) • all the layers below it (Relaxed Layered style)
Part 3: Example Brian Kennedy
(Wedding Cake) Layered Architecture for Office Delivery Robots This example uses Strict Style.
Four Main Layers • Task Scheduling, Path Planning, Navigation and Obstacle Avoidance • Task Scheduling determines how long all the routes will take (determine by asking Path Planner the length of each path). • Path Planner creates paths the robot can take (Factoring in what navigation has said is possible). • Navigation decides what paths can be taken to reach destination (Using data from Obstacle Avoidance). • Obstacle Avoidance decides how to handle each obstacle the robot may run into.
Part 4: Advantages Everett Thayer
Advantages for the Layered Style • The layers can make great modules • Helps simplify the program by sub-dividing complex portions • Layers make use of the services provided by the layer below. • Layers provide services to the layer above • Satisfies the Principle of Cohesion • Layers are loosely coupled
Advantages for the Layered Style • Supports information hiding • Layers help increase changeability, reusability, reliability, and maintainability • Changes can be made to certain layers and not the core functionality of the program • Systems can be easily ported to new platforms • Layers provide well-defined interfaces that can have reusable components
Part 5: Disadvantages Andre Vicente
The Problem with Overhead • Allocating information on a system with multiple sub-levels can become a problem in Layered Architecture design • Data that is passed through multiple layers can sometimes be changed due to the encryption and decryption of certain levels when either reading or writing information • Performance becomes an issue when traveling through multiple layers instead of accessing a component directly
Restrictions to Layered Independence • Shared processes that are modified or added within higher layers must also be modified in the lower levels associated with the higher level • Modifying lower-level interfaces sometimes percolates to higher levels, commonly seen in a relaxed layered approach • Applications that require interface components can have longer standby times if the layers prevent them from accessing a database • Large applications can be controlled and encapsulated more effectively but this adds complexity to smaller systems • Satisfying an n amount of layers