Group 1 Layered Architecture
Download
Report
Transcript Group 1 Layered Architecture
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)
High-Level Diagrams
Wedding Cake Diagram
Layer 5
Layer 4
Layer 3
Layer 2
Layer 1
Onion 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)
(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.
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
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