Inter-process communication (usually) consist of four components:
- Definition of the service (method and exchanged data - example
int32 getCustomerId(string email)
) - IDL (Interface Definition Language). For SOAP it's WSDL (webservice description language). - Data encoder/serializer/marshaller, which converts an in-process/in-memory object to a string or byte-array which can be transfered over the network. For SOAP the data-format is XML and tons of (de)serializers are available for every modern language.
Name | Explanation |
---|---|
Message | A (usually little complexity) data object which exists in your application code (ex: var myCar = new Car { NumberOfWheels = 4, Weight = 1400 } . Will be serialized/encoded to json/xml/protobuf |
Responsible for creating and maintaining a connection between the peers. This Layer is processable by the kernel and network devices like router or switches. Is usually held open for a longer time, to be reused for subsequently usage.
- TCP/IP
- unix socket
- named pipe (win)
- UDP/IP (theoretically)
Responsible for
- (raw)
- http
- http/2
- xml
- json
- bson
- protobuf
- MessagePack
- AVRO
- ASN.1
A lot more available: https://en.wikipedia.org/wiki/Comparison_of_data-serialization_formats
The