Slides14 Distribution
Slides14 Distribution
Slides14 Distribution
design
Module 14: Describe Distribution
Objectives: Describe
Distribution
• Explain the purpose of the Describe
Distribution activity and when in the lifecycle it
is performed
• Describe how the functionality of the system
can be distributed across physical nodes
• Model the distribution decisions of the system
in the Deployment Model
• Articulate the rationale and considerations that
support the architectural decisions
Describe Distribution in Context
[Early
Elaboration [Inception
Iteration] Iteration (Optional)]
Analyze Behavior
(Optional)
Describe Refine the
Distribution Architect Architecture
Supplementary
Software Specifications
Architecture
Document
Describe
Distribution
Deployment Model
Implementation Model
Design Model
Key Concepts: The Deployment
View
Logical View Implementation View
Analysts/Designers Programmers
Structure Software management
Use-Case View
End-user
Functionality
System engineering
System integrators System topology, delivery,
Performance, scalability, throughput installation, communication
Business Object
Engine Business Object Server Web Server
Database Server(s)
Client/Server: Three-Tier
Architecture
Client B
Application
Application Services
DCOM
CORBA Beans
ADO/R
COM Beans
MTS ETS
Business Object
Business Services Services
Business Object
Engine
Database Server(s)
Data Services
Client/Server: “Fat Client”
Architecture
Client A
Application
Database Server(s)
Data Services
Client/Server: Web Application
Architecture Client C
WWW Browser
Web Server
HTML
ASP Java
CGI
Application Services
Business Object
Business Services Services
Business Object
Engine
Database Server(s)
Data Services
Peer-to-Peer Architecture
Application Application
Application
Services DCOM
ADO/R
CORBA Beans
DCOM
ADO/R
CORBA Beans
Data Services
Describe Distribution Steps
• Define the network configuration
• Allocate processes to nodes
• Define the distribution mechanism
Describe Distribution Steps
• Define the network configuration
• Allocate processes to nodes
• Define the distribution mechanism
The Network Configuration
• End-user workstation nodes
• ”Headless" processing
server nodes
• Special configurations
– Development
– Test
• Specialized processors
Review: Example: Deployment
Diagram
<<client workstation>>
PC
0..2000
1 <<Campus LAN>>
<<application server>>
1 Registration Server
<<Campus LAN>> <<Campus LAN>>
1
1 1
<<client workstation>>
PC
0..2000
<<Campus LAN>>
1
<<application server>>
1 Registration Server
CourseCatalogSystemAccess <<Campus LAN>>
<<Campus LAN>>
CourseRegistrationProcess 1
BillingSystemAccess
1 1
<<deploy>>
<<client workstation>> <<process>>
PC StudentApplication
Describe Distribution Steps
Define the network configuration
Allocate processes to nodes
Define the distribution mechanism
Distribution Mechanism
• RMI was chosen as the implementation
mechanism for distribution
Analysis Design Implementation
Mechanism Mechanism Mechanism
(Conceptual) (Concrete) (Actual)
Remote Method
Distribution Java 1.2 from Sun
Invocation (RMI)
Design Mechanisms: Distribution: RMI
Distribution characteristics
Latency
Synchronicity
Message Size
Protocol
Remote Method Invocation
(RMI)
Lookup(serverURL)
Naming
Remote
Distributed Class
InvokeOp() InvokeOp()
Client RemoteStub RemoteSkeleton RemoteObject
RMI Transport
doSomething(aParameter : SamplePassedData)
<<role>>
SampleDistributedClass
doSomething(aParameter : SamplePassedData)
Example: Incorporating RMI
<<layer>>
Application
<<layer>> <<layer>>
Business Services Application
Registration
Package
(from Application)
University Artifacts
(from Business Services)
<<layer>>
Business
<<layer>> Services
Middleware
java.rmi
Java.io
Naming Server
<<interface>> (from java.rmi) <<layer>>
Serializable UnicastRemote Middleware
<<interface>> Object
(from java.io)
remote (from Server)
(from java.rmi)
Checkpoints: Deployment View
• Have the distributed data update
coordination and synchronization issues
been addressed and documented?
• Are services that require more rapid
response available locally (LAN vs. WAN)?
• Have all redundant server issues been
addressed and documented (primary vs.
secondary)?
• Are the failure modes documented?
Review: Describe Distribution
• What is the purpose of the Describe
Distribution activity?
• What is a node? Describe the two different
“types” of nodes.
• Describe some of the considerations when
mapping processes to nodes.
• How do you model the Deployment View?
What modeling elements and diagrams are
used?