You are on page 1of 31

Object oriented analysis and

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)]

Define a Candidate Perform


Architecture Architectural
Synthesis

Analyze Behavior

(Optional)
Describe Refine the
Distribution Architect Architecture

Design Design the


Components Database
Describe Distribution Overview

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

Process View Deployment View

System engineering
System integrators System topology, delivery,
Performance, scalability, throughput installation, communication

The Deployment View is an “architecturally significant”


slice of the Deployment Model.
Why Distribute?
• Reduce processor load
• Special processing
requirements
• Scaling concerns
• Economic concerns
• Distributed access to the
system
Distribution Patterns
• Client/Server
– 3-tier
– Fat Client
– Fat Server
– Distributed
Client/Server
• Peer-to-peer
Client/Server Architectures
Thinner client, thicker server

Client A Client B Client C

Application Application WWW Browser

Business Object DCOM


Services CORBA Beans
ADO/R

Business Object
Engine Business Object Server Web Server

COM Beans HTML


ASP Java
MTS ETS CGI

Business Object Business Object


Services Services

Business Object Business Object


Engine Engine

Database Server(s)
Client/Server: Three-Tier
Architecture
Client B

Application
Application Services
DCOM
CORBA Beans
ADO/R

Business Object Server

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

Application Services Business Object


Services

Business Services Business Object


Engine

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 DCOM
CORBA Beans CORBA Beans
ADO/R ADO/R

COM Beans COM Beans


MTS ETS MTS ETS
Business Business Object Business Object
Services Services Services

Business Object Business Object


Engine Engine

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: What Is a Node?
• Represents a run-time
computational resource
– Generally has at least memory
and often processing <<device>>
capability. Device Name

• Types:
– Device <<device>>
• Physical computational Sub Device
Name
resource with processing
capability.
<<exe env>>
• May be nested EE Name
– Execution Environment
• Represent particular
execution platforms
Review: What Is a Connector?
• A connector represents a:
– Communication mechanism
• Physical medium
• Software protocol <<client workstation>>
<<100-T Ethernet>> Kiosk

Connector
<<application server>>
Server
<<RS-232>> <<client workstation>>
Console
Review: Example: Deployment
Diagram

<<client workstation>>
PC

0..2000
1 <<Campus LAN>>

<<application server>>
1 Registration Server
<<Campus LAN>> <<Campus LAN>>
1

1 1

<<legacy RDBMS>> <<legacy>>


Course Catalog Billing
System
Describe Distribution Steps
 Define the network configuration
 Allocate processes to nodes
 Define the distribution mechanism
Process-to-Node Allocation
Considerations
• Distribution patterns
• Response time and system throughput
• Minimization of cross-network traffic
• Node capacity
• Communication medium bandwidth
• Availability of hardware and
communication links
• Rerouting requirements
Review: Example: Deployment Diagram with
Processes

<<client workstation>>
PC

0..2000
<<Campus LAN>>
1

<<application server>>
1 Registration Server
CourseCatalogSystemAccess <<Campus LAN>>
<<Campus LAN>>
CourseRegistrationProcess 1
BillingSystemAccess
1 1

<<legacy RDBMS>> <<legacy>>


Course Catalog Billing
System
What is Deployment?
 Deployment is the assignment, or mapping,
of software artifacts to physical nodes
during execution.
 Artifacts are the entities that are deployed onto
physical nodes
• Processes are assigned to computers
 Artifacts model physical entities.
 Files, executables, database tables, web
pages, etc.
 Nodes model computational resources.
 Computers, storage units.
Example: Deploying Artifacts to
Nodes
<<client workstation>>
PC
<<client workstation>>
PC
<<process>>
StudentApplication StudentApplication

<<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

Provided “for free” with RMI for each distributed class.


Remote Method Invocation
(RMI) (continued) Roles to be filled by the
designer applying the
For all classes that realize the Remote
One
Naming.
mechanism interface, a remote stub and a remote
Instance
per node (from java.rmi) skeleton are created. These classes handle
the communication that must occur to
lookup(name : String) : Remote Remote support distribution.
(from java.rmi)

Any Java class that you want to


pass as an argument to an
operation on a remote interface
<<Interface>> must realize the Serializable
<<role>> ISampleDistributedClass Interface.
SampleDistributedClassClient

doSomething(aParameter : SamplePassedData)

To "distribute" a class in Java, you must define an interface


that inherits from Remote. The distributed class needs to UnicastRemoteObject <<role>>
(from Server)
SamplePassedData
realize the defined Remote interface and also inherit from
(extend) the UnicastRemoteObject.
Serializable
(from java.io)

<<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
Object
(from java.io) <<interface>>
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?

You might also like