Transcript Document
Distributed Computing
Systems
電機三 B90901047
陳家宏
Outlines
•
•
•
•
Introduction to Distributed System
Middleware layers
Application -- Web Services
OS support
Distributed
Systems :Why?
• Parallel applications
-scalability
• Resource sharing
-disks, CPU, memory
-services ( e.g., name servers, games, etc.)
-data (e.g., file systems, databases, etc.)
Challenges
• Heterogeneity
– Networks, OS, hardware, language
• Openness
– Documents and specifications
• Security
– Encryption, DOS( denial of service )
• Scalability
– Data should be structured hierarchically
Challenges (con ‘t)
• Failure handling
– Any process, computer fails indep
• Concurrency
– Concurrent requests to resources
• Transparency
– the system is perceived as a whole
Architectural model
Applications, services
Middleware
Operating System
Computer and network hardware
Middleware layers
RMI and RPC
Request-reply protocol marshalling
and external data representation
Middleware layers (con’ t)
• Communicate using OS calls
-using send() and receive
• Communicate using procedure
-RPC : remote procedure calls
system translates RPC to send/receive
• Communicate using object
-RMI : remote method invocations
Naming of remote data
Distributed object Model
C
A
E
B
F
D
Middleware layers (con’ t)
• Traditional distributed systems
• CORBA –common object request
broker architecture
- cross language
• Java RMI
- limits to java
Applications
• Create a web service by yourself!
A Web Service
Client
Listener
SOAP
(web server)
Web
Service
Object
Object
Web Services
•
•
•
•
•
New generation distributed systems
Built on open technologies and protocols
Scalable, can build systems incrementally
Less complicated and easier to program
Future – Web services are becoming
fundamental building blocks in the move to
distributed computing
Web Services (con’ t)
• UDDI
– Discovery mechanism
• WSDL
– Description language -> defines the web service
interface
• SOAP
– Communication protocols
• XML & HTTP
– data representation format
SOAP = 肥皂?
OS support
• Alternative server threading
architecture
• Microkernels & monolithic kernels
Thread concept
Activation
Stack
Process
Heap
Text
( program code)
System-provided
resources ( socket , files)
Alternative server
threading architecture
Worker
thread
Remote
object
Thread per connection
I/O thread
Thread per object
Monolithic kernel
S4
Server program
S1
S2
S3
Kernel can contain some server processes that execute
within its address space, including file servers and some
networking
Microkernel
Dynamic loaded server program
S1
S2
Kernel
S3
Middleware
Language
support
subsystem
OS
emulation
subsystem
Microkernel
Hardware
…
References
• Distributed systems concepts and
design
– George Coulouris, Jean Dollimore,
Tim Kindberg