RESTful Web Service SDK Auto-Generation via RSDL Abstraction

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software developers face challenges in creating client applications for RESTful web services due to the need for manual documentation sorting and the time-consuming process of updating software development kits (SDKs) when changes occur in the RESTful web service, often leading to undetected changes and communication issues.

Innovation Solution

A method and apparatus that abstracts RESTful web service HTTP interactions using a generic abstraction format, generating methods based on RESTful service description language (RSDL) metadata, creating programming language templates to hide HTTP-based programming and automatically updating SDK clients without user interaction.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If software developers manually create and update SDKs for RESTful web services, then they can provide customized client applications, but the process becomes time-consuming and error-prone with undetected changes

Engineering Contradiction:
Improveaccuracy of SDK updatesVSAvoidtime to update SDKs
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system enables self-service by automatically generating and updating SDKs through the abstraction layer. The framework autonomously monitors RESTful web service changes, updates the service description language metadata, and regenerates SDKs without requiring manual intervention from developers, thus eliminating human error and saving time

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The abstraction layer acts as an intermediary between the RESTful web service and the SDK generation process. It captures service descriptions, translates them into service description language metadata, and uses this intermediate representation to automatically generate accurate SDKs, ensuring reliability while reducing manual effort

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If developers manually sort through documentation to create client applications, then they can understand the RESTful web service structure, but the process becomes complex and time-consuming

Engineering Contradiction:
Improveease of creating client applicationsVSAvoidtime to create client applications
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system extracts essential service information from RESTful web service documentation and metadata, separating it from the complex original documentation. The abstraction layer pulls out key elements like endpoints, data models, and operation signatures, presenting them in a simplified format that developers can consume directly without manually sorting through extensive documentation

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The system performs preliminary action by pre-processing RESTful web service documentation and generating service description language metadata before developers need it. The abstraction layer anticipates developer needs by automatically creating client application templates and SDKs based on the service description, so developers receive ready-to-use code structures rather than raw documentation

Inventive Principle:
Principle #10Preliminary action

3Reliability

If conventional SDKs are manually re-coded when RESTful web service changes occur, then changes can be reflected, but undetected changes lead to communication problems between clients and services

Engineering Contradiction:
Improvecommunication reliabilityVSAvoidcomplexity of SDK maintenance
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The system implements feedback by continuously monitoring RESTful web service changes and automatically detecting updates to the service description language metadata. The abstraction layer establishes a feedback loop where service changes are detected, processed, and used to trigger automatic SDK regeneration, ensuring that SDKs always reflect the current service state and preventing communication errors from undetected changes

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The system enables self-service by automatically detecting service changes and regenerating SDKs without manual intervention. The abstraction layer autonomously compares service descriptions, identifies changes, and updates the corresponding SDK code, eliminating the need for developers to manually re-code SDKs and ensuring reliability through automated change detection

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS9231819B2Abstracting restful web service HTTP between a client and a server
Publication Date: 2016.01.05 RED HAT ISRAEL
  • US9231819B2 patent drawing
  • US9231819B2 patent drawing
  • US9231819B2 patent drawing

AI summary

A computer system identifies metadata components that are associated with uniform resource identifiers (URIs) in service description language metadata for a RESTful (Representational State Transfer) web service The computer system identifies a programming language for a template pertaining to a method of a software development kit (SDK) client. The computer system creates the template. The template includes programming code placeholders for the metadata components based on the identified programming language.