Design Patterns and Extensibility of REST API for Networking Applications
- 12 January 2016
- journal article
- Published by Institute of Electrical and Electronics Engineers (IEEE) in IEEE Transactions on Network and Service Management
- Vol. 13 (1), 154-167
- https://doi.org/10.1109/tnsm.2016.2516946
Abstract
REST architectural style has become a prevalent choice for distributed resources, such as the northbound API of software-defined networking (SDN). As services often undergo frequent changes and updates, the corresponding REST APIs need to change and update accordingly. To allow REST APIs to change and evolve without breaking its clients, a REST API can be designed to facilitate hypertext-driven navigation and its related mechanisms to deal with structure changes in the API. This paper addresses the issues in hypertext-driven navigation in REST APIs from three aspects. First, we present REST Chart, a Petri-Net-based REST service description framework and language to design extensible REST APIs, and it is applied to cope with the rapid evolution of SDN northbound APIs. Second, we describe some important design patterns, such as backtracking and generator, within the REST Chart framework to navigate through large scale APIs in the RESTful architecture. Third, we present a client side differential cache mechanism to reduce the overhead of hypertext-driven navigation, addressing a major issue that affects the application of REST API. The proposed approach is applied to applications in SDN, which is integrated with a generalized SDN controller, SOX. The benefits of the proposed approach are verified in different conditions. Experimental results on SDN applications show that on average, the proposed cache mechanism reduces the overhead of using the hypertext-driven REST API by 66%, while fully maintaining the desired flexibility and extensibility of the REST API.Keywords
This publication has 21 references indexed in Scilit:
- Automated Creation of Navigable REST Services Based on REST ChartJournal of Advanced Management Science, 2016
- Designing Large Scale REST APIs Based on REST ChartPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2015
- An XML Based Monadic Framework for REST Service CompositionsPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2015
- REST API Design Patterns for SDN Northbound APIPublished by Institute of Electrical and Electronics Engineers (IEEE) ,2014
- ProceraPublished by Association for Computing Machinery (ACM) ,2012
- NOXACM SIGCOMM Computer Communication Review, 2008
- OpenFlowACM SIGCOMM Computer Communication Review, 2008
- Introduction to Discrete Event SystemsPublished by Springer Science and Business Media LLC ,2008
- A concept of hierarchical Petri nets with building blocksLecture Notes in Computer Science, 1993
- Petri nets: Properties, analysis and applicationsProceedings of the IEEE, 1989