Service Oriented Framework For Analysis



SODA-R (Service Oriented Detection for Antipatterns in REST)

We propose the SODA-R approach (Service Oriented Detection for Antipatterns in REST) for the detection of REST patterns and antipatterns.

approach


Step 1: Analysis of Patterns and Antipatterns -- In this manual step, we analyse the description of REST patterns and antipatterns and identify the relevant properties that characterise them. We use these properties to define detection heuristics.

Step 2: Detection of Patterns and Antipatterns -- This automatic step involves the implementation of detection algorithms based on the heuristics defined in the previous step. Later, we apply these detection algorithms on a set of REST APIs and get the list of detected REST patterns or antipatterns.


Detection:

Step 1. Implementation
Step 2. Dynamic Invocation
Step 3. Application

approach



Antipatterns in REST APIs

The REST-specific antipatterns that we defined as heuristics and detected are described here.



Patterns in REST APIs

The REST-specific patterns that we defined as heuristics and detected are described here.


Mapping between REST Antipatterns and Patterns

The table below shows the REST antipatterns and their correspondig patterns.

approach


List of REST APIs

All the REST APIs that we analysed are listed here.


Results

To show the effectiveness and accuracy of our heuristics and the performance of the implemented detection algorithms, we performed experiments with five REST patterns and eight REST antipatterns on a set of 12 REST APIs including BestBuy, Facebook, and DropBox.

We define three hypotheses to assess the effectiveness of our SODA-R approach.

approach


Our Hypotheses:

H1: Robustness: The SODA-R approach is robust.
This hypothesis claims that our SODA-R approach is assessed rigorously on a large set of REST APIs and with a set of different REST patterns and antipatterns.

H2: Accuracy: The heuristics have an average precision of more than 75% and a recall of 100%, i.e., more than three-quarters of detected patterns and antipatterns are true positive and we do not miss any existing patterns and antipatterns.
Having a trade-off between precision and recall, we presume that 75% precision is acceptable while our objective is to detect all existing patterns and antipatterns, i.e., 100% recall. This hypothesis claims the accuracy of the defined heuristics and the implemented detection algorithms.

H3. Performance: The implemented algorithms perform with considerably a low detection times, i.e., on an average in the order of seconds.
Through this assumption, we support the performance of the implemented detection algorithms.


Summary of the Detection Results on 12 REST APIs

The table below presents the summary on the results for the detection of 8 REST antipatterns and 5 REST patterns:

[top]


Detailed Detection Results

The table below presents the detailed detection results for the 14 REST patterns and antipatterns for 12 REST APIs along with the detailed detection logs:

[top]


Detection Times and Execution Times

The table below presents the detection times for 8 REST antipatterns and 5 REST patterns on 12 REST APIs:

[top]


Detection Traces/Logs

The following data-set contains all the requests and responses sets from all the REST APIs we analysed.

1. alchemy
2. bestbuy
3. bitly
4. charlieharvey
5. dropbox
6. facebook
7. musicgraph
8. ohloh
9. teamviewer
10. twitter
11. youtube
12. zappos

[top]



Logo Logo