SUMMARY OF INTER-PROCESS COMMUNICATION
Chenguang Kong
Outline Introduction Message Passing Communication Request/Reply Communication Transaction Communication Name and Directory Services Investigation on Future Work
Introduction A set of methods for the exchange of
data among multiple processes or computers
Divided into different methods based on the bandwidth and latency of communication between the processes, and the type of data being communicated Message Passing Communication Request/Reply Communication Transaction Communication
Message Passing A specification allowing computers
communicate with each other Lowest level of inter-process
communicate Two message passing primitives
Send(destination,message) Receive(source,message)
Two types: pipe and socket`
Message Passing Pipe
Unidirectional communication Implemented with finite size, FIFO byte stream buffer
maintained by the kernel One process writes data into tail end of pipe while another
process reads from head end of the pipe.
Message Passing Socket
A communication end point of a communication link managed by the transport services
The most popular message passing API The goal of secure socket layer:
Privacy by using symmetric cryptographic data encryption
Integrity by using message integrity check Authenticity by using asymmetric public key
cryptography
Request/Reply Communication Technique for one application to request
the services of another The layer upper message passing Remote Procedure Calls
Most widely used model Communication transparency A central component in most distributed
system
Request/Reply Communication Operations involving remote procedure call
Parameter Passing and Data Conversion What types of data can be passed How is it represented
Binding How does a client locate server and a server
register Compilation
Where do the stub procedures come from How are they linked
Request/Reply Communication Operations involving remote procedure
call Exception and Failure Handling
How are errors reported and dealt Security
Transaction Communication The basic unit of client-server process
interaction in a database system Every transaction is ACID compliant in
accordance with concurrency control and transparency in the DS
Transaction Communication ACID
Atomicity ALL or NO operations in a transaction are
performed Consistency
Consistent state is maintained before a transaction starts and after it concludes
Isolation Concurrent transactions DO NOT interfere with
each other Durability
transactions results are locked/ permanent after being committed
Transaction Communication Two Phase Commit Protocol
A type of atomic commitment protocol (ACP)
A distributed algorithm that coordinates all the processes that participate in a distributed atomic transaction on whether to commit or abort the transaction
Assures that ACID properties are achieved
Transaction Communication Two Phase Commit Protocol
Transaction Communication X/OPEN XA
Standard specification for distributed transaction processing (DTP) by The Open Group
describes the interface between the global transaction manager and the local resource manager
Two Phase Commit is used
Name and Directory Service Inter-process communication in
distributed systems relies on the support of a name service
A generic way of describing how a named object can be addressed and subsequently located by using its address
Enable user to reference network resources with short names instead of real addresses
Name and Directory Service Naming structureService/Object Attributes
Name structures Attribute partitioning
<arrtibutes>
<name, attributes, address>
<name, type, attributes, address>
Flat structure
Hierarchical structure name-based resolution(white pages)
Structure-free attribute-based resolution (yellow pages)
Physical <user.host.network>
Organizational<user.org.dept>
Functional<professor.cs>
Name and Directory Service Directory Service
The namespace for the network Used to hold one or more objects as named
entries The directory design process normally has a
set of rules that determine how network resources are named and identified
Name and Directory Service Implementations of directory service
X.500 a series of computer networking standards
covering electronic directory services developed by ITU-T and ISO DAP (Directory Access Protocol) DSP (Directory System Protocol) DISP (Directory Information Shadowing Protocol) DOP (Directory Operational Bindings
Management Protocol)
Name and Directory Service Implementations of directory service
Domain Name System: (DNS) Windows NT Directory Services (NTDS) Sun Java System Directory Server Apache Directory Server OpenDS …
Potential future work Virtualization in Cloud Computing
Every custom is arranged a virtual machine to serve them
Inter-process communication among the virtual machines is a non-trivial problem E.g. name service, network routing, directory
service
Potential future work Mixed network
Cellular network Sensor network Cyber physical network
Next generation network structure Current TCP/IP structure has many open
challenges Some researchers propose to construct next
generation network structure Many topics involving inter-process
communication
Reference Randy Chow, Theodore Johnson, “Distributed Operating Systems
& Algorithms”, 1997 Ammann, E.M. , "DIPC-a monitor for distributed inter-process
communication" Parallel and Distributed Processing, 1995. Proceedings. Euromicro Workshop on , vol., no., pp.272-279, 25-27 Jan 1995
Muelder, C.; Gygi, F.; Kwan-Liu Ma; , "Visual Analysis of Inter-Process Communication for Large-Scale Parallel Computing,", IEEE Transactions on Visualization and Computer Graphics, vol.15, no.6, pp.1129-1136, Nov.-Dec. 2009
Wikipedia: http://en.wikipedia.org/wiki/ Stevens, Richard. UNIX Network Programming, Volume 2, Second
Edition: Interprocess Communications. Prentice Hall, 1999 Mirtaheri, S.L.; Khaneghah, E.M.; Sharifi, M.; Azgomi, M.A.; , "The Influence of
Efficient Message Passing Mechanisms on High Performance Distributed Scientific Computing," Parallel and Distributed Processing with Applications, 2008. ISPA '08. International Symposium on , vol., no., pp.663-668, 10-12 Dec. 2008