This thesis examines web services, technology based on stack of internet and networking protocols, used for standardized machine to machine (M2M) communication. It deals with common problems of high availability, scalability and security.
In the first part, most common protocols and architectural principles used for web service design and implementation are presented. Choosing the appropriate protocols and architecture depends on functionality requirements as well on network capacity and environment in which web service is being run.
The thesis then looks into standards and methods to provide security and high availability as well as scalability to web services. It presents the principles of horizontal and vertical scalability and algorithms to load balance incoming requests into web service. Thesis shows how to achieve faster response times using various techniques based on multi-process and multi-thread processing.
In final part thesis describes the overall architecture and design of actual web service implemented using open source node.js server-side environment and HAProxy load-balancing proxy server. Addressed web service supports HTTP/1.1, HTTP/2 and CoAP protocols and uses standard security principles to provide authentication and message integrity. In conclusion, the thesis presents conclusions of web service request response time analysis measured under different loads.