SlideShare a Scribd company logo
• Data Problems in Communications
• Store primitive values by different byte order (Big endian, Little endian)
• Different code sets for OS (UTF-8, CP949, etc…)
• enable any two computers to exchange binary data values
• The values are converted to an agreed external format before transmission and converted to the local
form on receipt
• The values are transmitted in the sender’s format, together with an indication of the format used, and
the recipient converts the values if necessary.
• An agreed standard for the representation of data structures and primitive values is
called an external data representation.
• Marshalling is the process of taking a collection of data items and assembling them
into a form suitable for transmission in a message.
• Three alternative approaches to external data representation and marshalling
• CORBA’s common data representation (CDR)
• Java’s object serialization
• XML (Extensible Markup Language)
• Marshalling should be handled in software, not directly by the programmer.
• Because marshalling takes into account all the details of a composite object, it is prone to errors if
done manually.
• Design issue of marshalling : file format, type information
• CORBA CDR is the external data representation defined
with CORBA 2.0 [OMG 2004a].
• It consists of primitive type and constructed type.
Type Representation
sequence length(unsignedlong) followedby elements in order
string length(unsignedlong) followedby characters in order (can also
can have widecharacters)
array arrayelements in order (no length specified becauseit is fixed)
struct in theorder of declaration of thecomponents
enumerated unsignedlong(thevalues are specifiedby theorder declared)
union type tag followed by the selected member
The flattened form represents a Person struct with value: {‘Smith’, ‘London’, 1984}
0–3
4–7
8–11
12–15
16–19
20-23
24–27
5
"Smit"
"h___"
6
"Lond"
"on__"
1984
index in
sequence of bytes 4 bytes
notes
on representation
length of string
‘Smith’
length of string
‘London’
unsigned long
• Type of a data item not given: assumed sender and recipient have common
knowledge of the order and types of data items
• Types of data structures and types of basic data items are described in CORBA IDL
• Provides a notation for describing the types of arguments and results of RMI methods
• Both objects and primitive data values may be passed as arguments and results of
method invocations.
• The following Java class is equivalent to Person struct
• Serialization: flattening objects into a serial form for storing on disk or transmitting in
a message.
• Assumed has no prior knowledge of the types of the objects in the serialized form
• Some information about the class of each object is included in the serialized form
• Java objects can contain references to other objects.
• All objects it references are serialized
• References are serialized as handles
• A handle is a reference to an object within the serialized form
• Each object is written once only
• Handle is written in subsequent occurrences
1. its class info is written out: name, version number
2. types and names of instance variables
* If an instance variable belong to a new class, then new class info must be
written out, recursively.
* Each class is given a handle
3. values of instance variables
Ex) Person p = new Person("Smith", "London", 1984);
The true serialized form contains additional type markers; h0 and h1 are handles
Serialized values
Person
3
1984
8-byte version number
int year
5 Smith
java.lang.String
name:
6 London
h0
java.lang.String
place:
h1
Explanation
class name, version number
number, type and name of
instance variables
values of instance variables
• XML is a markup language that was defined by the World Wide Web Consortium
(W3C) for general use on the Web.
• XML data items are tagged with ‘markup’ strings.
• XML is used to enable clients to communicate with web services and for defining the interfaces and
other properties of web services.
• XML is extensible in the sense that users can define their own tags
• XML documents, being textual, can be read by humans.
• XML elements and attributes
• Elements: An element in XML consists of a portion of character data surrounded by matching start and
end tags.
• Attributes: A start tag may optionally include pairs of associated attribute names and values such as
id="123456789", as shown above.
• Parsing and well-formed documents
• Well formed rule
• every start tag has a matching end tag
• all tags are correctly nested
• Every XML document must have a single root element
• CDATA : How to represent special characters
• XML prolog : version, encoding
• XML namespaces : a set of names for a collection of element types and attributes
• referenced by a URL
• allows an application to make use of multiple sets of external definitions in different namespaces
without the risk of name clashes.
• XML schemas : Define element shape
• defines the elements and attributes that can appear in a document
• how the elements are nested and the order and number of elements, and whether an element is
empty or can include text
• Each process contains objects, some of which can receive remote invocations, others
only local invocations.
• Those that can receive remote invocations are called remote objects
• Objects need to know the remote object reference of an object in another process in
order to invoke its methods.
• A remote object reference is an identifier for a remote object that is valid throughout
a distributed system.
• Remote object references must be generated in a manner that ensures uniqueness
over space and time.
• Even if remote object is deleted, it is important that the remote object reference is not reused
• Example of unique remote object reference
• Concatenate Internet address of its computer and the port number of the process that created it with
the time of its creation and a local object number
• Multicast communication is appropriate model for communication from one process
to a group of other processes.
• Four cases where multicast messages are used
• Fault tolerance based on replicated services
• Discovering services in spontaneous networking
• Better performance through replicated data
• Propagation of event notifications
• IP multicast
• built on top of the Internet Protocol
• allows the sender to transmit a single IP packet to a set of computers that form a multicast group.
• multicast group is specified by a Class D Internet address
• following details are specific to IPv4
• Multicast routers
• Multicast address allocation
• Multicast Routers
• IP packets can be multicast both on a local network and on the wider Internet.
• Local multicasts use the multicast capability of the local network, for example, of an Ethernet.
• Internet multicasts make use of multicast routers, which forward single datagrams to routers on other
networks, where they are again multicast to local members.
• To limit the distance of propagation of a multicast datagram, the sender can specify the number of
routers it is allowed to pass – called the time to live, or TTL for short.
• Multicast address allocation
• Class D addresses (that is, addresses in the range 224.0.0.0 to 239.255.255.255) are reserved for
multicast traffic
• Local network Control Block, Internet Control Block, Ad Hoc Control Block, Administratively Scoped
Block
• Multicast addresses may be permanent or temporary
• When a temporary group is created, it requires a free multicast address to avoid
accidental participation in an existing group.
• The IP multicast protocol does not directly address this issue.
• If used locally, setting the TTL to a small value, making collisions with other groups unlikely.
• Failure model for multicast datagrams
• Datagrams multicast over IP multicast have the same failure characteristics as UDP datagrams
• Unreliable multicast, because it does not guarantee that a message will be delivered to any member of
a group.
• Failure feature of Unreliable IP Multicast
• A datagram sent from one multicast router to another may be lost
• recipients may drop the message because its buffer is full.
• the effect of the failure semantics of IP multicast on the four examples
• Fault tolerance based on replicated services
• Discovering services in spontaneous networking
• Better performance through replicated data
• Propagation of event notifications
• The examples also suggest that some applications have strong requirements for
ordering, the strictest of which is called totally ordered multicast,
[Distributed System] ch4. interprocess communication

More Related Content

What's hot

Distributed objects & components of corba
Distributed objects & components of corbaDistributed objects & components of corba
Distributed objects & components of corba
Mayuresh Wadekar
 
Msit computer networks 1
Msit computer networks 1Msit computer networks 1
Msit computer networks 1
Sridhar Baithi
 
Abstract data types
Abstract data typesAbstract data types
Abstract data types
Hoang Nguyen
 
Design patternsforiot
Design patternsforiotDesign patternsforiot
Design patternsforiot
Michael Koster
 
22 owl section 1
22 owl    section 122 owl    section 1
22 owl section 1
Sharat Jagannath
 
Application layer protocols
Application layer protocolsApplication layer protocols
Application layer protocols
FabMinds
 
introduction for web connectivity (IoT)
introduction for web connectivity (IoT)introduction for web connectivity (IoT)
introduction for web connectivity (IoT)
FabMinds
 
Protocol Buffer.ppt
Protocol Buffer.pptProtocol Buffer.ppt
Protocol Buffer.ppt
Shashi Bhushan
 
COMPUTER NETWORKS UNIT 5
COMPUTER NETWORKS UNIT 5COMPUTER NETWORKS UNIT 5
COMPUTER NETWORKS UNIT 5
BON SECOURS COLLEGE FOR WOMEN
 
Protocol Buffers
Protocol BuffersProtocol Buffers
Protocol Buffers
Knoldus Inc.
 
Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...
IndicThreads
 
Networking in java, Advanced programming
Networking in java, Advanced programmingNetworking in java, Advanced programming
Networking in java, Advanced programming
Gera Paulos
 
ET3003-2 OSI-TCPIP (Semester II 2013-2014)
ET3003-2 OSI-TCPIP (Semester II 2013-2014)ET3003-2 OSI-TCPIP (Semester II 2013-2014)
ET3003-2 OSI-TCPIP (Semester II 2013-2014)
Tutun Juhana
 
Osi model with neworking overview
Osi model with neworking overviewOsi model with neworking overview
Osi model with neworking overview
Sripati Mahapatra
 
5. protocol layering
5. protocol layering5. protocol layering
5. protocol layering
JAIGANESH SEKAR
 
C O R B A Unit 4
C O R B A    Unit 4C O R B A    Unit 4
C O R B A Unit 4
Roy Antony Arnold G
 
19.cobra
19.cobra19.cobra
19.cobra
Abhijeet Kadam
 
Networking- OSI Layer Protocol Functions
Networking- OSI Layer Protocol FunctionsNetworking- OSI Layer Protocol Functions
Networking- OSI Layer Protocol Functions
Gayathri Kesavan
 
Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecture
nupurmakhija1211
 
Osi layer model
Osi layer modelOsi layer model
Osi layer model
IshworKhatiwada
 

What's hot (20)

Distributed objects & components of corba
Distributed objects & components of corbaDistributed objects & components of corba
Distributed objects & components of corba
 
Msit computer networks 1
Msit computer networks 1Msit computer networks 1
Msit computer networks 1
 
Abstract data types
Abstract data typesAbstract data types
Abstract data types
 
Design patternsforiot
Design patternsforiotDesign patternsforiot
Design patternsforiot
 
22 owl section 1
22 owl    section 122 owl    section 1
22 owl section 1
 
Application layer protocols
Application layer protocolsApplication layer protocols
Application layer protocols
 
introduction for web connectivity (IoT)
introduction for web connectivity (IoT)introduction for web connectivity (IoT)
introduction for web connectivity (IoT)
 
Protocol Buffer.ppt
Protocol Buffer.pptProtocol Buffer.ppt
Protocol Buffer.ppt
 
COMPUTER NETWORKS UNIT 5
COMPUTER NETWORKS UNIT 5COMPUTER NETWORKS UNIT 5
COMPUTER NETWORKS UNIT 5
 
Protocol Buffers
Protocol BuffersProtocol Buffers
Protocol Buffers
 
Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...Building scalable and language-independent Java services using Apache Thrift ...
Building scalable and language-independent Java services using Apache Thrift ...
 
Networking in java, Advanced programming
Networking in java, Advanced programmingNetworking in java, Advanced programming
Networking in java, Advanced programming
 
ET3003-2 OSI-TCPIP (Semester II 2013-2014)
ET3003-2 OSI-TCPIP (Semester II 2013-2014)ET3003-2 OSI-TCPIP (Semester II 2013-2014)
ET3003-2 OSI-TCPIP (Semester II 2013-2014)
 
Osi model with neworking overview
Osi model with neworking overviewOsi model with neworking overview
Osi model with neworking overview
 
5. protocol layering
5. protocol layering5. protocol layering
5. protocol layering
 
C O R B A Unit 4
C O R B A    Unit 4C O R B A    Unit 4
C O R B A Unit 4
 
19.cobra
19.cobra19.cobra
19.cobra
 
Networking- OSI Layer Protocol Functions
Networking- OSI Layer Protocol FunctionsNetworking- OSI Layer Protocol Functions
Networking- OSI Layer Protocol Functions
 
Corba concepts & corba architecture
Corba concepts & corba architectureCorba concepts & corba architecture
Corba concepts & corba architecture
 
Osi layer model
Osi layer modelOsi layer model
Osi layer model
 

Similar to [Distributed System] ch4. interprocess communication

Web technologies: recap on TCP-IP
Web technologies: recap on TCP-IPWeb technologies: recap on TCP-IP
Web technologies: recap on TCP-IP
Piero Fraternali
 
MVA slides lesson 2
MVA slides lesson 2MVA slides lesson 2
Null talk
Null talkNull talk
Null talk
Agam Jain
 
Network architecure (3).pptx
Network architecure (3).pptxNetwork architecure (3).pptx
Network architecure (3).pptx
Kaythry P
 
09 Systems Software Programming-Network Programming.pptx
09 Systems Software Programming-Network Programming.pptx09 Systems Software Programming-Network Programming.pptx
09 Systems Software Programming-Network Programming.pptx
KushalSrivastava23
 
Protobuff and gRPC
Protobuff and gRPCProtobuff and gRPC
Protobuff and gRPC
Uraz Pokharel
 
Unit 1- Network Layer and Protocols-4.pptx
Unit 1- Network Layer and Protocols-4.pptxUnit 1- Network Layer and Protocols-4.pptx
Unit 1- Network Layer and Protocols-4.pptx
DESTROYER39
 
chapter-4-networking hjgjjgj did hfhhfhj
chapter-4-networking hjgjjgj did hfhhfhjchapter-4-networking hjgjjgj did hfhhfhj
chapter-4-networking hjgjjgj did hfhhfhj
AmitDeshai
 
CCNA (R & S) Module 01 - Introduction to Networks - Chapter 10
CCNA (R & S) Module 01 - Introduction to Networks - Chapter 10CCNA (R & S) Module 01 - Introduction to Networks - Chapter 10
CCNA (R & S) Module 01 - Introduction to Networks - Chapter 10
Waqas Ahmed Nawaz
 
Module 5 Application and presentation Layer .pptx
Module 5 Application and presentation Layer .pptxModule 5 Application and presentation Layer .pptx
Module 5 Application and presentation Layer .pptx
AASTHAJAJOO
 
Ch-4 Middleware Architectures.pptx
Ch-4 Middleware Architectures.pptxCh-4 Middleware Architectures.pptx
Ch-4 Middleware Architectures.pptx
dagilema
 
Network layer
Network layerNetwork layer
Network layer
Hasib Shaikh
 
Computer networks
Computer networksComputer networks
Computer networks
sonukumar142
 
Network layer logical addressing
Network layer logical addressingNetwork layer logical addressing
Network layer logical addressing
Sri Manakula Vinayagar Engineering College
 
Ccna exploration exams
Ccna exploration examsCcna exploration exams
Ccna exploration exams
Hossam Zein
 
02-ProtocolArchitecture william stellings.ppt
02-ProtocolArchitecture william stellings.ppt02-ProtocolArchitecture william stellings.ppt
02-ProtocolArchitecture william stellings.ppt
striker78669
 
Computer design and Architechure and Algorithm
Computer design and Architechure and AlgorithmComputer design and Architechure and Algorithm
Computer design and Architechure and Algorithm
mirzaahmadali
 
Ds objects and models
Ds objects and modelsDs objects and models
Ds objects and models
Mayank Jain
 
MVA slides lesson 1
MVA slides lesson 1MVA slides lesson 1
UNIT I DIS.pptx
UNIT I DIS.pptxUNIT I DIS.pptx
UNIT I DIS.pptx
SamPrem3
 

Similar to [Distributed System] ch4. interprocess communication (20)

Web technologies: recap on TCP-IP
Web technologies: recap on TCP-IPWeb technologies: recap on TCP-IP
Web technologies: recap on TCP-IP
 
MVA slides lesson 2
MVA slides lesson 2MVA slides lesson 2
MVA slides lesson 2
 
Null talk
Null talkNull talk
Null talk
 
Network architecure (3).pptx
Network architecure (3).pptxNetwork architecure (3).pptx
Network architecure (3).pptx
 
09 Systems Software Programming-Network Programming.pptx
09 Systems Software Programming-Network Programming.pptx09 Systems Software Programming-Network Programming.pptx
09 Systems Software Programming-Network Programming.pptx
 
Protobuff and gRPC
Protobuff and gRPCProtobuff and gRPC
Protobuff and gRPC
 
Unit 1- Network Layer and Protocols-4.pptx
Unit 1- Network Layer and Protocols-4.pptxUnit 1- Network Layer and Protocols-4.pptx
Unit 1- Network Layer and Protocols-4.pptx
 
chapter-4-networking hjgjjgj did hfhhfhj
chapter-4-networking hjgjjgj did hfhhfhjchapter-4-networking hjgjjgj did hfhhfhj
chapter-4-networking hjgjjgj did hfhhfhj
 
CCNA (R & S) Module 01 - Introduction to Networks - Chapter 10
CCNA (R & S) Module 01 - Introduction to Networks - Chapter 10CCNA (R & S) Module 01 - Introduction to Networks - Chapter 10
CCNA (R & S) Module 01 - Introduction to Networks - Chapter 10
 
Module 5 Application and presentation Layer .pptx
Module 5 Application and presentation Layer .pptxModule 5 Application and presentation Layer .pptx
Module 5 Application and presentation Layer .pptx
 
Ch-4 Middleware Architectures.pptx
Ch-4 Middleware Architectures.pptxCh-4 Middleware Architectures.pptx
Ch-4 Middleware Architectures.pptx
 
Network layer
Network layerNetwork layer
Network layer
 
Computer networks
Computer networksComputer networks
Computer networks
 
Network layer logical addressing
Network layer logical addressingNetwork layer logical addressing
Network layer logical addressing
 
Ccna exploration exams
Ccna exploration examsCcna exploration exams
Ccna exploration exams
 
02-ProtocolArchitecture william stellings.ppt
02-ProtocolArchitecture william stellings.ppt02-ProtocolArchitecture william stellings.ppt
02-ProtocolArchitecture william stellings.ppt
 
Computer design and Architechure and Algorithm
Computer design and Architechure and AlgorithmComputer design and Architechure and Algorithm
Computer design and Architechure and Algorithm
 
Ds objects and models
Ds objects and modelsDs objects and models
Ds objects and models
 
MVA slides lesson 1
MVA slides lesson 1MVA slides lesson 1
MVA slides lesson 1
 
UNIT I DIS.pptx
UNIT I DIS.pptxUNIT I DIS.pptx
UNIT I DIS.pptx
 

More from Gyuhyeon Nam

[study] pointer networks
[study] pointer networks[study] pointer networks
[study] pointer networks
Gyuhyeon Nam
 
grade server - block socket
grade server - block socketgrade server - block socket
grade server - block socket
Gyuhyeon Nam
 
[study] Survey of the State of the Art in Natural Language Generation: Core t...
[study] Survey of the State of the Art in Natural Language Generation: Core t...[study] Survey of the State of the Art in Natural Language Generation: Core t...
[study] Survey of the State of the Art in Natural Language Generation: Core t...
Gyuhyeon Nam
 
[study] character aware neural language models
[study] character aware neural language models[study] character aware neural language models
[study] character aware neural language models
Gyuhyeon Nam
 
[Tool] Tree Tagger 를 이용한 한국어 품사 태깅
[Tool] Tree Tagger 를 이용한 한국어 품사 태깅 [Tool] Tree Tagger 를 이용한 한국어 품사 태깅
[Tool] Tree Tagger 를 이용한 한국어 품사 태깅
Gyuhyeon Nam
 
[study] 띄어쓰기 오류에 강건한 문장 압축 기반 한국어 문장 분류
[study] 띄어쓰기 오류에 강건한 문장 압축 기반 한국어 문장 분류[study] 띄어쓰기 오류에 강건한 문장 압축 기반 한국어 문장 분류
[study] 띄어쓰기 오류에 강건한 문장 압축 기반 한국어 문장 분류
Gyuhyeon Nam
 
universal dependency relation
universal dependency relation universal dependency relation
universal dependency relation
Gyuhyeon Nam
 
[study] Building Universal Dependency Treebanks in Korean
[study] Building Universal Dependency Treebanks in Korean[study] Building Universal Dependency Treebanks in Korean
[study] Building Universal Dependency Treebanks in Korean
Gyuhyeon Nam
 
[study] Long Text Generation via Adversarial Training with Leaked Information
[study] Long Text Generation via Adversarial Training with Leaked Information[study] Long Text Generation via Adversarial Training with Leaked Information
[study] Long Text Generation via Adversarial Training with Leaked Information
Gyuhyeon Nam
 
[Tool] chatscript 사용법
[Tool] chatscript 사용법[Tool] chatscript 사용법
[Tool] chatscript 사용법
Gyuhyeon Nam
 
한국어 품사 태깅
한국어 품사 태깅 한국어 품사 태깅
한국어 품사 태깅
Gyuhyeon Nam
 
[Tool] cwb cqp
[Tool] cwb cqp[Tool] cwb cqp
[Tool] cwb cqp
Gyuhyeon Nam
 

More from Gyuhyeon Nam (12)

[study] pointer networks
[study] pointer networks[study] pointer networks
[study] pointer networks
 
grade server - block socket
grade server - block socketgrade server - block socket
grade server - block socket
 
[study] Survey of the State of the Art in Natural Language Generation: Core t...
[study] Survey of the State of the Art in Natural Language Generation: Core t...[study] Survey of the State of the Art in Natural Language Generation: Core t...
[study] Survey of the State of the Art in Natural Language Generation: Core t...
 
[study] character aware neural language models
[study] character aware neural language models[study] character aware neural language models
[study] character aware neural language models
 
[Tool] Tree Tagger 를 이용한 한국어 품사 태깅
[Tool] Tree Tagger 를 이용한 한국어 품사 태깅 [Tool] Tree Tagger 를 이용한 한국어 품사 태깅
[Tool] Tree Tagger 를 이용한 한국어 품사 태깅
 
[study] 띄어쓰기 오류에 강건한 문장 압축 기반 한국어 문장 분류
[study] 띄어쓰기 오류에 강건한 문장 압축 기반 한국어 문장 분류[study] 띄어쓰기 오류에 강건한 문장 압축 기반 한국어 문장 분류
[study] 띄어쓰기 오류에 강건한 문장 압축 기반 한국어 문장 분류
 
universal dependency relation
universal dependency relation universal dependency relation
universal dependency relation
 
[study] Building Universal Dependency Treebanks in Korean
[study] Building Universal Dependency Treebanks in Korean[study] Building Universal Dependency Treebanks in Korean
[study] Building Universal Dependency Treebanks in Korean
 
[study] Long Text Generation via Adversarial Training with Leaked Information
[study] Long Text Generation via Adversarial Training with Leaked Information[study] Long Text Generation via Adversarial Training with Leaked Information
[study] Long Text Generation via Adversarial Training with Leaked Information
 
[Tool] chatscript 사용법
[Tool] chatscript 사용법[Tool] chatscript 사용법
[Tool] chatscript 사용법
 
한국어 품사 태깅
한국어 품사 태깅 한국어 품사 태깅
한국어 품사 태깅
 
[Tool] cwb cqp
[Tool] cwb cqp[Tool] cwb cqp
[Tool] cwb cqp
 

Recently uploaded

Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
Boni García
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
mz5nrf0n
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
Green Software Development
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
Gerardo Pardo-Castellote
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
SOCRadar
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
rodomar2
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
Hornet Dynamics
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
Łukasz Chruściel
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Undress Baby
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Neo4j
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
Google
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 

Recently uploaded (20)

Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit ParisNeo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
Neo4j - Product Vision and Knowledge Graphs - GraphSummit Paris
 
APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)APIs for Browser Automation (MoT Meetup 2024)
APIs for Browser Automation (MoT Meetup 2024)
 
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
原版定制美国纽约州立大学奥尔巴尼分校毕业证学位证书原版一模一样
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Energy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina JonuziEnergy consumption of Database Management - Florina Jonuzi
Energy consumption of Database Management - Florina Jonuzi
 
DDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systemsDDS-Security 1.2 - What's New? Stronger security for long-running systems
DDS-Security 1.2 - What's New? Stronger security for long-running systems
 
socradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdfsocradar-q1-2024-aviation-industry-report.pdf
socradar-q1-2024-aviation-industry-report.pdf
 
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CDKuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
KuberTENes Birthday Bash Guadalajara - Introducción a Argo CD
 
E-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet DynamicsE-commerce Development Services- Hornet Dynamics
E-commerce Development Services- Hornet Dynamics
 
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf2024 eCommerceDays Toulouse - Sylius 2.0.pdf
2024 eCommerceDays Toulouse - Sylius 2.0.pdf
 
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdfRevolutionizing Visual Effects Mastering AI Face Swaps.pdf
Revolutionizing Visual Effects Mastering AI Face Swaps.pdf
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
Atelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissancesAtelier - Innover avec l’IA Générative et les graphes de connaissances
Atelier - Innover avec l’IA Générative et les graphes de connaissances
 
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket ManagementUtilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
Utilocate provides Smarter, Better, Faster, Safer Locate Ticket Management
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI AppAI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
AI Fusion Buddy Review: Brand New, Groundbreaking Gemini-Powered AI App
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 

[Distributed System] ch4. interprocess communication

  • 1.
  • 2. • Data Problems in Communications • Store primitive values by different byte order (Big endian, Little endian) • Different code sets for OS (UTF-8, CP949, etc…) • enable any two computers to exchange binary data values • The values are converted to an agreed external format before transmission and converted to the local form on receipt • The values are transmitted in the sender’s format, together with an indication of the format used, and the recipient converts the values if necessary. • An agreed standard for the representation of data structures and primitive values is called an external data representation.
  • 3. • Marshalling is the process of taking a collection of data items and assembling them into a form suitable for transmission in a message. • Three alternative approaches to external data representation and marshalling • CORBA’s common data representation (CDR) • Java’s object serialization • XML (Extensible Markup Language) • Marshalling should be handled in software, not directly by the programmer. • Because marshalling takes into account all the details of a composite object, it is prone to errors if done manually. • Design issue of marshalling : file format, type information
  • 4. • CORBA CDR is the external data representation defined with CORBA 2.0 [OMG 2004a]. • It consists of primitive type and constructed type. Type Representation sequence length(unsignedlong) followedby elements in order string length(unsignedlong) followedby characters in order (can also can have widecharacters) array arrayelements in order (no length specified becauseit is fixed) struct in theorder of declaration of thecomponents enumerated unsignedlong(thevalues are specifiedby theorder declared) union type tag followed by the selected member
  • 5. The flattened form represents a Person struct with value: {‘Smith’, ‘London’, 1984} 0–3 4–7 8–11 12–15 16–19 20-23 24–27 5 "Smit" "h___" 6 "Lond" "on__" 1984 index in sequence of bytes 4 bytes notes on representation length of string ‘Smith’ length of string ‘London’ unsigned long
  • 6. • Type of a data item not given: assumed sender and recipient have common knowledge of the order and types of data items • Types of data structures and types of basic data items are described in CORBA IDL • Provides a notation for describing the types of arguments and results of RMI methods
  • 7. • Both objects and primitive data values may be passed as arguments and results of method invocations. • The following Java class is equivalent to Person struct
  • 8. • Serialization: flattening objects into a serial form for storing on disk or transmitting in a message. • Assumed has no prior knowledge of the types of the objects in the serialized form • Some information about the class of each object is included in the serialized form • Java objects can contain references to other objects. • All objects it references are serialized • References are serialized as handles • A handle is a reference to an object within the serialized form • Each object is written once only • Handle is written in subsequent occurrences
  • 9. 1. its class info is written out: name, version number 2. types and names of instance variables * If an instance variable belong to a new class, then new class info must be written out, recursively. * Each class is given a handle 3. values of instance variables Ex) Person p = new Person("Smith", "London", 1984); The true serialized form contains additional type markers; h0 and h1 are handles Serialized values Person 3 1984 8-byte version number int year 5 Smith java.lang.String name: 6 London h0 java.lang.String place: h1 Explanation class name, version number number, type and name of instance variables values of instance variables
  • 10. • XML is a markup language that was defined by the World Wide Web Consortium (W3C) for general use on the Web. • XML data items are tagged with ‘markup’ strings. • XML is used to enable clients to communicate with web services and for defining the interfaces and other properties of web services. • XML is extensible in the sense that users can define their own tags • XML documents, being textual, can be read by humans.
  • 11. • XML elements and attributes • Elements: An element in XML consists of a portion of character data surrounded by matching start and end tags. • Attributes: A start tag may optionally include pairs of associated attribute names and values such as id="123456789", as shown above. • Parsing and well-formed documents • Well formed rule • every start tag has a matching end tag • all tags are correctly nested • Every XML document must have a single root element • CDATA : How to represent special characters • XML prolog : version, encoding
  • 12. • XML namespaces : a set of names for a collection of element types and attributes • referenced by a URL • allows an application to make use of multiple sets of external definitions in different namespaces without the risk of name clashes.
  • 13. • XML schemas : Define element shape • defines the elements and attributes that can appear in a document • how the elements are nested and the order and number of elements, and whether an element is empty or can include text
  • 14. • Each process contains objects, some of which can receive remote invocations, others only local invocations. • Those that can receive remote invocations are called remote objects • Objects need to know the remote object reference of an object in another process in order to invoke its methods. • A remote object reference is an identifier for a remote object that is valid throughout a distributed system.
  • 15. • Remote object references must be generated in a manner that ensures uniqueness over space and time. • Even if remote object is deleted, it is important that the remote object reference is not reused • Example of unique remote object reference • Concatenate Internet address of its computer and the port number of the process that created it with the time of its creation and a local object number
  • 16. • Multicast communication is appropriate model for communication from one process to a group of other processes. • Four cases where multicast messages are used • Fault tolerance based on replicated services • Discovering services in spontaneous networking • Better performance through replicated data • Propagation of event notifications
  • 17. • IP multicast • built on top of the Internet Protocol • allows the sender to transmit a single IP packet to a set of computers that form a multicast group. • multicast group is specified by a Class D Internet address • following details are specific to IPv4 • Multicast routers • Multicast address allocation
  • 18. • Multicast Routers • IP packets can be multicast both on a local network and on the wider Internet. • Local multicasts use the multicast capability of the local network, for example, of an Ethernet. • Internet multicasts make use of multicast routers, which forward single datagrams to routers on other networks, where they are again multicast to local members. • To limit the distance of propagation of a multicast datagram, the sender can specify the number of routers it is allowed to pass – called the time to live, or TTL for short.
  • 19. • Multicast address allocation • Class D addresses (that is, addresses in the range 224.0.0.0 to 239.255.255.255) are reserved for multicast traffic • Local network Control Block, Internet Control Block, Ad Hoc Control Block, Administratively Scoped Block • Multicast addresses may be permanent or temporary • When a temporary group is created, it requires a free multicast address to avoid accidental participation in an existing group. • The IP multicast protocol does not directly address this issue. • If used locally, setting the TTL to a small value, making collisions with other groups unlikely.
  • 20. • Failure model for multicast datagrams • Datagrams multicast over IP multicast have the same failure characteristics as UDP datagrams • Unreliable multicast, because it does not guarantee that a message will be delivered to any member of a group.
  • 21.
  • 22. • Failure feature of Unreliable IP Multicast • A datagram sent from one multicast router to another may be lost • recipients may drop the message because its buffer is full. • the effect of the failure semantics of IP multicast on the four examples • Fault tolerance based on replicated services • Discovering services in spontaneous networking • Better performance through replicated data • Propagation of event notifications • The examples also suggest that some applications have strong requirements for ordering, the strictest of which is called totally ordered multicast,