A few protocols were introduced here, with links to further reading. Refer to the Main Project Page for the complete list, and for presentation material.
References, comparisons and further details that do not fit into the table
MQTT vs AMPQ - classic comparison paper
- Stateless: each call is independent from the other and each call contains the necessary information to complete successfully.
- Protocol independent: REST is an architectural style that is not dependent on any other protocol. For the web case HTTP/HTTPS is a common choice.
- Language independent: just like protocol independence, REST doesn't depend on a specific language.
- Support multiple format: Unlike SOAP, REST supports multiple format including JSON, XML and YAML.
- Flexible: because of the above, REST can be quite flexible on term of the underlying protocol/technology choice.
- Mature: REST is used in multiple places and is very common in IoT or when interacting with cloud based services.
- Unlike REST, SOAP is a protocol that relies on strict standards to work efficiently.
- SOAP relies exclusively on XML.
- Error intolerant: SOAP follows rigid rules which can become really complex.
- XML structure can become very complex to maintain and create and depends on 3rd party libraries to make it easier.
- .Net integrates well with SOAP but not other languages that are used in Automotive (C/C++).
- Very mature and used in many places.
- Allows for more complex structures compared to JSON.
- Allows metadata to be attached into tags.
- Generally XML files tend to be bigger compared to JSON and thus takes more time and bandwidth to transmit and also more CPU power to process.
- Can be an over-kill in embedded applications due to the added overhead and complexity.
- XML is simpler than SGML, but JSON is much simpler than XML. JSON has a much smaller grammar and maps more directly onto the data structures used in modern programming languages.
- Concise and compact: compared to XML, JSON is more compact and less convoluted which makes it more readable for a Human.
- JSON needs less resources to be processed/transferred because of the smaller size and its simplicity compared to XML.
- Integrates well with most programming languages due to the mapping between JSON data types and programming languages data types.
- Efficient libraries exist to deal with JSON (json-c for C as an example).
- JSON schema standard was developed to allow the validation of JSON instances.