By David G. Messerschmitt: Understanding Networked Applications: A First Course
By David G. Messerschmitt: Understanding Networked Applications: A First Course
A First Course
Chapter 16
by
David G. Messerschmitt
Layering a computing
infrastructure
Applications
Application components
Middleware
Operating system
Network
Understanding Networked Applications
A First Course
Spanning layer
Application
Distributed object management
Windows NT
TCP UDP
Mac OS
UNIX
TCP UDP
TCP UDP
Internet protocol
Network 1
Network 2
Spanning layers
A First Course
A First Course
A First Course
Middleware objectives
Hide heterogeneity
Location independence
Common functionality needed by many
applications
Software portability and mobile code
Help integrate legacy facilities
Aid application interoperability
Aid scalability
Understanding Networked Applications
A First Course
Message-oriented middleware
Support message and queuing capabilities
where resource mangers are not available
simultaneously (like workflow)
A First Course
Mobile code
Allow application code to be moved and
executed on heterogeneous platforms
Without prior software installation
Understanding Networked Applications
A First Course
A First Course
Transaction processing
by
David G. Messerschmitt
The transaction
Durable
starting
state
Successful
completion
Durable,
consistent,
ending state
Rollback
11
A First Course
Transaction architecture
Join
Application logic
Transaction
manager
Prepare,
commit,
abort
Resource managers
Understanding Networked Applications
12
A First Course
Commit or abort
One or
more nos
Phase 2
Transaction
manager
Phase 1
abort()
Transaction
manager
Rollback
Transaction
manager
prepare() yes_or_no
All yes
13
commit()
A First Course
Client_2
Server
Starting state
Inconsistent
state
Group of RMIs
Final state
14
A First Course
Client_2
Server
Lock
Starting state
Refused
Group of RMIs
Final state
Unlock
Understanding Networked Applications
15
A First Course
Abort
Client_1
Client_2
Server
Starting state
Group of RMIs
Inconsistent
state
Final state
16
A First Course
Rollback
Client_1
Client_2
Server
Starting state
Group of RMIs
Rollback
Something goes awry
17
A First Course
Transaction protocol
Application server
Resource manager
request(tp_ID,.)
Transaction manager
join(tp_ID)
Commit or rollback
Understanding Networked Applications
18
A First Course
20
A First Course
Mobile code:
Code representing
a software program that
can be moved to
heterogeneous
platforms and executed
there
21
A First Course
22
A First Course
Java
Portability
Write once, run anywhere
Programming productivity
Garbage collection (no memory leaks)
Multi-threaded
Scalability
Move execution cycles
Interoperability
Software components come from common repository
Understanding Networked Applications
23
A First Course
Mobile code:
Code representing
a software program
MC
MA
Mobile agent:
Code and data
representing an object
or component
24
A First Course
MC
Shifting location of
computation can
enhance scalability
25
A First Course
MA
Agent returns
26
A First Course
Compilation
JIT
compiler
VM
interpreter
Bytecode:
low level but
machine independent
Native machine
instructions
27
A First Course
VM as spanning layer
Applications
JavaBeans
component framework
28
A First Course
SUN/Java strategy
License Java freely, even to rival Microsoft
Why?
29
A First Course
CORBA vs DCOM
Portability is not the emphasis
31
A First Course
Interoperability
Client
Server
32
A First Course
Interoperability
Client
Server
Interoperability also requires:
Common structure of data
Common interpretation of data
Agreement on protocols
33
A First Course
OS 1
OS 2
OS 3
IP
Distributed application
Distributed object management middleware
OS 1
OS 2
OS 3
Potential
spanning
layer
Spanning
layer
IP
Understanding Networked Applications
34
A First Course
35
A First Course
CORBA architecture
Client
objects
Server objects
Object
adapter
Object request broker core
Interface
repository
Understanding Networked Applications
CORBA services
36
A First Course
Protocol layer
Location-independent
application
Application
Object Management
Group CORBA
standard
User datagram
protocol (UDP)
Transmission control
protocol (TCP)
Internet protocol (IP)
Subnetworks
37
A First Course
Interoperability
ORB 1
Application 2
ORB 2
38
A First Course
OMG process
Identify need
Request for proposals
Process to
choose best
or ask proposal advocates to work together
39
A First Course
40
A First Course
CORBA vs DCOM
CORBA
Integrate best ideas
Multi-vendor support
Cross-platform and
language
DCOM
Fast, no consensus
required
No vendor
interoperability issues
41
A First Course
42
A First Course
CORBA vs XML
CORBA
XML
Flexible data-sharing
No document
interpretation
Natural cross-platform
capability
No protocol standardization
43
A First Course
44
A First Course
Useful services
Naming
Security
Many others
Understanding Networked Applications
45
A First Course
Importance of CORBA
Inter-enterprise computing
Platform and language independence
Electronic commerce, network management,
etc
46
A First Course
47
A First Course
Microsoft
Intel
Interoperability?
SUN
Portability?
Novell
Iona
48
A First Course