RAFT-REST - A Client-Side Framework for Reliable, Adaptive and Fault-Tolerant RESTful Service Consumption
The client/server paradigm in distributed systems leads to multi-stakeholder architectures with messages exchanged over connections between client applications and services. In practice, there are many hidden obstacles for client developers caused by unstable network connections, unavailable or faulty services or limited connectivity. Even if many frameworks and middleware solutions have already been suggested as corrective, the rapid development of clients to (almost) RESTful services remains challenging, especially when mobile devices and wireless telecommunications are involved. In this paper we introduce RAFT-REST, a conceptual framework aimed at engineers of clients to RESTful services. RAFT-REST reduces the effort to achieve reliable, adaptive and fault-tolerant service consumption. The framework is applied and validated with ReSup, a fully implemented flavour for Java clients which run on the desktop and on Android mobile devices. We show that by using the framework, message loss can be reduced significantly with tolerable delay, which contributes to a higher quality of experience.
KeywordsMobile Device Fault Tolerance Service Interface Service Consumption Request Queue
Unable to display preview. Download preview PDF.
- 1.Aihkisalo, T., Paaso, T.: Latencies of Service Invocation and Processing of the REST and SOAP Web Service Interfaces. In: Eighth IEEE World Congress on Services (SERVICES), Hawaii, USA, pp. 100–107 (June 2012)Google Scholar
- 3.Edstrom, J., Tilevich, E.: Reusable and Extensible Fault Tolerance for RESTful Applications. In: 11th International Conference on Trust, Security and Privacy in Computing and Communications (TrustCom), pp. 737–744 (June 2012), doi:10.1109/TrustCom.2012.244Google Scholar
- 4.Fielding, R.T.: Architectural Styles and the Design of Network-based Software Architectures. Ph.D. thesis, University of California, Irvine (2000)Google Scholar
- 5.Kelly, M., Hausenblas, M.: Using HTTP Link: Header for Gateway Cache Invalidation. In: Proceedings of the First International Workshop on RESTful Design (WS-REST), Raleigh, North Carolina, USA, pp. 23–26 (April 2010)Google Scholar
- 8.Maleshkova, M., Pedrinaci, C., Domingue, J.: Supporting the creation of semantic RESTful service descriptions. In: 8th International Semantic Web Conference (ISWC), Washington D.C., USA (October 2009)Google Scholar
- 9.Masse, M.: REST API Design Rulebook. O’Reilly (2011)Google Scholar
- 10.Mulligan, G., Gracanin, D.: A comparison of SOAP and REST implementations of a service based interaction independence middleware framework. In: Proceedings of the Winter Simulation Conference (WSC), Austin, Texas, USA, pp. 1423–1432 (December 2009)Google Scholar
- 11.Mulloy, B.: Web API Design: Crafting Interfaces that Developers Love. e-Book (March 2012)Google Scholar
- 12.Salatge, N., Fabre, J.C.: Fault Tolerance Connectors for Unreliable Web Services. In: 37th Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN), Edinburgh, UK, pp. 51–60 (June 2007)Google Scholar
- 13.Santos, G.T., Lung, L.C., Montez, C.: FTWeb: A Fault Tolerant Infrastructure for Web Services. In: Proceedings of the Ninth IEEE International EDOC Enterprise Computing Conference, Enschede, The Netherlands, pp. 95–105 (September 2005)Google Scholar
- 14.Tilkov, S.: REST Anti-Patterns. InfoQ Article (July 2008)Google Scholar