Abstract
The concept of Service Oriented Architecture, and its most common implementation method Web services, has not seen widespread use on wireless mobile systems and smart devices. NATO seeks to incorporate these communication standards, and military research and development groups aim to utilize Commercial Off-The-Shelf devices because of cost and versatility. Android is one of the largest open-source operating systems for smart devices, but lacks native support for the SOAP protocol. SOAP is the backbone protocol of Web services, but has a large overhead due to its XML structure. This thesis expands the third-party SOAP library ksoap2-android with the possibilities of using different transport protocols other than HTTP/TCP and using compression to reduce the size of SOAP messages. The additional transport protocols are UDP and AMPQ, and the compression tools added are gzip and EXIficient, an XML-specific tool that implements the Efficient XML Interchange format. The expanded ksoap2-android library was used in a Web service client application installed on an unrooted Samsung Galaxy tablet using the 4.2.2 version of the Android operating system. The Web service client was tested against different Web services with different transport and compression combinations, using a proxy server to adapt the messages to a COTS server. The testing was done over both mobile broadband and Wi-Fi to examine the effects the different combinations had on CPU load and battery usage of the Android device, and the network load. The testing showed that while EXIficient compressed slightly better than gzip, it caused a much greater CPU load and battery usage that gzip, causing the expenses to absorb the profits. Both UDP and the AMPQ implementation RabbitMQ performed better than HTTP, especially when focusing on achieving a higher goodput. This thesis concluded that using gzip together with RabbitMQ is the better option when it comes to reducing network overhead while simultaneously maximizing battery lifetime of reliable SOAP communication on an Android device.