SUMMARY OF INTER-PROCESS COMMUNICATION Chenguang Kong
Transcription
SUMMARY OF INTER-PROCESS COMMUNICATION Chenguang Kong
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 How and Failure Handling 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 committed results are locked/ permanent after being 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 structure Service/Object Attributes Name structures Attribute partitioning <arrtibutes> Flat structure Physical <user.host.network> <name, attributes, address> Hierarchical structure namebased resolution (white pages) <name, type, attributes, Structure-free attributeaddress> based resolution (yellow pages) 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