Architectural Patterns

advertisement
Software architecture
Software architecture encompasses the set of significant decisions about the organization of a software system
− selection of the structural elements and their interfaces by which a system is composed
− behavior as specified in collaborations among those elements
− composition of these structural and behavioral elements into larger subsystem
− architectural style that guides this organization
CS 407 Tutorial Week 11
1
Software arch. (continued)
Software architecture also involves
usage
functionality
performance
resilience
reuse
comprehensibility
economic and technology constraints and tradeoffs
aesthetic concerns
CS 407 Tutorial Week 11
2
Forces in software architecture
Functionality
Performance
Technology churn
Resilience
Throughput
Fail safe
Capacity
Differences
­ No moving parts
­ New materials can be created
­ Physics can be changed
Avoiding failure
­ Separation of concerns
­ Semantic consistency
­ Distribution of responsibilities
Fault tolerance
Availability
Have an architecture that makes sense before you write 3.5 million
lines of code.
­ Patrick Naugton
CS 407 Tutorial Week 11
3
Patterns
A pattern is a solution to a problem in a context
A pattern codifies specific knowledge collected from experience in a domain
All well­structured systems are full of patterns
idioms
design patterns
architectural patterns
CS 407 Tutorial Week 11
4
Architectural patterns
Distributed
Event­driven
Frame­based
Batch
Pipes and filters
Repository­centric
Blackboard
Interpreter
Rule­based
Layered
MVC
IR­centric
Subsumption
Disposable
Patentable
­ Hughes CAATS
CS 407 Tutorial Week 11
5
Layered architecture
Issues
Applications& interfaces
­ Separation of concerns
Major processes
Domain classes
Mechanisms
Services
CS 407 Tutorial Week 11
6
Distributed architecture
Issues
­ DCOM vs EJB vs CORBA
­ Distribution and migration
­ Fine grain/large grain objects
­ Stateless vs stateful services
­ Clustering
­ Replication
Clients
Mechanisms
LAN
­ RPC
­ Transaction
­ Atomicity
­ Consistency
­ Isolation
­ Durability
­ Messaging
­ Conversation
­ Request/response
­ Publish and subscribe
­ Broadcast
WAN
Servers
CS 407 Tutorial Week 11
7
Commercial frameworks
Similar to building
codes or local
covenants
MTS/MSQS
CORBA
Enterprise Java Beans
Domino
SAP R/3
Delphi
Forte
Visual Basic
CS 407 Tutorial Week 11
8
MTS architecture
MTS executive
Class factory
wrapper
Client
Proxy
Stub
Context
wrapper
Server
Class
factory
MTS
object
Context
object
CS 407 Tutorial Week 11
9
CORBA architecture
CORBA facilities
Application objects
­ Organization specific
­ User interface
­ Information management
­ System management
­ Task management
CORBA domains
­ Financial services
­ Health care
­ Telecommunications
­ Other
Object request broker
CORBA services
­ Concurrency
­ Events
­ Externalization
­ Licensing
­ Lifecycle
­ Naming
­ Security
­ Time
­ Trade
­ Start up
­ Persistence
­ Properties
CS 407 Tutorial Week 11
­ Query
­ Relationships
­ Transactions
­ Collections
10
EJB architecture
CS 407 Tutorial Week 11
11
Architectural context
The choice of which building code or covenant you chose to live under is an architectural decision
− but by no means is this a sufficient architectural decision
CS 407 Tutorial Week 11
12
Focus over time
Discovery
Invention
Implementation
Focus
Time
CS 407 Tutorial Week 11
13
Architecture across the lifecycle
Inception
Elaboration
Construction
Transition
Planning
Analysis
Architecture
Design
Implementation
Integration
Test/assessment
Preliminary Iteration
Iteration
#1
Iteration
#2 ...
Iteration
#n+1
Iteration
#...
Iteration Iteration
#m
#m+1
CS 407 Tutorial Week 11
Iteration
#m+2 ..
14
For more information
This set of tutorial slides is entirely based on a talk delivered by Grady Booch.
The original talk can be downloaded from:
http://www.rational.com/media/whitepapers/sd98.zip
CS 407 Tutorial Week 11
15
Download