Headers Alternative protocols for exchanging messages

60 ฀ JMS does not define the format of the messages that are exchanged, so JMS systems are not or hardly interoperable. ฀ To conclude on AMQP, here are the main features of interest, along with the principal and potentially critical downside of this protocol, and of MOM in general: Advantages:  Asynchronous delivery  Routing requestreply - publishsubscribe  especially AMQP Supporting implementation on a lot of API JMS C C++, PHP, ... Disadvantages: The main disadvantage of message oriented middleware systems is that they require an extra component in the architecture, the message transfer agent message broker. As with any system, adding another component can lead to reductions in performance and reliability, and can also make the system as a whole more difficult and expensive to maintain.

11.4.2 Headers

After stating the actual advantages and drawbacks of those protocol from a general perspective, it is now interesting to compare the headers of the different options. Indeed, in an environment where the bandwidth is limited, and the number of message exchange can be very important, the volume created headers of each message can become significant. All the protocol considered here are functioning on top of TCPIP, therefore it is considered that the overhead induced by the lower layer protocols are constant and do not vary from a application protocol to the other. Regarding HTTP, the protocol also always includes a set of headers that send metadata during transfers. FTP does not send such headers. When sending small files, the headers can be a significant part of the amount of actual data transferred. HTTP headers contain info about things such as last modified date, character encoding, server name and version and more. It is then left to decide whether this metadata is of use for the data exchange. If not, the additional headers inherent to HTTP may become a source of unnecessary volume of data transmitted. Additionally, HTTP, as a stateless protocol, has to reopen a connection every time data has to be exchanged, which also represents additional volume of data to be exchanged, compared to FTP for instance. AMQP also include headers, to define properties such as priority. However, those headers are not very numerous and their format is quite simple boolean, int, .... 61 Moreover, it is possible to define default values for those headers so that they can be omitted, as long as the receiver of the message and the sender have agreed on those default values at session opening. SMTP probably is the protocol with fewest header volumes, but its inability to transmit anything but text makes this advantage insufficient compared to the other protocols. First conclusions that can be drawn from this analysis is that comparing the classical applications directly operating over TCPIP that is HTTP, FTP and SMPT, HTTP remains the most appropriate for the operation of web services, given its advanced capabilities for message exchange compared to SMTP and FTP message encryption, various formats, database querying. FTP can be a good candidate if security is not a primary concern. It is also appropriate for data exchange over TCPIP, and offers possibility to exchange data in binary format. The main advantage of FTP would be that it is slightly faster that HTTP. However the compression and pipelining ability to ask for the next data before the previous one ended functionalities of HTTP can palliate this difference. AMQP could be an interesting option for web services, since it has the same capabilities than HTTP, namely its capacity to support various models SOAP, WS-Transactions, ... over TCPIP, and brings new features that could be very interesting in an SOA, such as asynchronous messaging and reliability not covered by HTTP. As it has been shown, being a MOM protocol, AMQP comes with the drawback that message brokers need to be included to the architecture, which could lead to additional developing and operating costs.

11.5 Lessons Learned

It was interesting to investigate alternatives for the omnipotent protocol HTTP for the operation of web services on TCPIP networks. Being generally used by a wide majority of the network applications and web services, HTTP’s legitimacy is rarely questioned. A short analysis showed that this choice is justified both by legacy usage of the protocol for information exchanges over the Internet and by the fact that service architectures developed with the together with HTTP, therefore adapting to its available features, while HTTP was evolving to best serve those architecture in return. From a documentation perspective, the wide usage of HTTP comes with very complete documentation associated, previous studies and strength and weaknesses analyses performed. Regarding the other protocols, FTP and SNMP have very closed field of usage, and considering them as potential alternatives of HTTP is quickly proven complicated, given the technology gaps that exists. AMQP appears as the only serious competition, offering features comparable and sometimes more thorough than HTTP. However, AMQP still needs to be proven has a serious competition, for structure of its architecture implies gap that need to be filled to reach the level of deployability and interoperability of HTTP, especially regarding the need of the intermediate message broker in the architecture.