Web API Framework for HTTP Message Manipulation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current HTTP message exchange mechanisms are limited in flexibility and scalability, particularly when dealing with clients and servers within the same application domain, and do not efficiently support diverse media types and formats, leading to compatibility issues and suboptimal client interactions.

Innovation Solution

The implementation of a highly efficient end-to-end communication mechanism that allows fine-grained manipulation of HTTP messages, using pluggable formatters and message handlers for asynchronous processing, enabling support for multiple media types and formats, and allowing HTTP message exchanges both in-process and over a network, with a focus on extensibility and client choice through content negotiation.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional HTTP message exchange mechanisms are used, then network communication is supported, but flexibility and scalability are limited when dealing with clients and servers within the same application domain

Engineering Contradiction:
Improvecommunication flexibilityVSAvoidcommunication mechanism complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The HTTP message exchange mechanism is designed to serve multiple purposes: it can operate both over network boundaries and within the same application domain (in-process communication). The same HTTP message structures, formatters, and processing pipelines are reused for both scenarios, eliminating the need for separate communication infrastructures and thereby improving adaptability without proportionally increasing complexity.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Solution Approach 2:

The patent introduces an intermediary layer consisting of formatters and message handlers that sit between the HTTP message exchange and the application logic. This intermediary handles the complexity of message serialization, deserialization, and processing, allowing the communication mechanism to remain flexible and adaptable while the intermediary absorbs the complexity of handling different communication scenarios.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Adaptability or versatility

If pluggable formatters and message handlers are implemented for fine-grained manipulation, then client interactions are enriched and media type support is expanded, but system complexity increases

Engineering Contradiction:
Improvemedia type supportVSAvoidsystem architecture complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The system is segmented into distinct, independently deployable components: formatters for media type handling, message handlers for message processing, and a core HTTP message exchange mechanism. Each component has a specific responsibility and can be developed, tested, and maintained separately. This segmentation allows the system to support multiple media types and provide rich client interactions while keeping the overall complexity manageable through clear separation of concerns.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system employs dynamic component selection and registration. Formatters and message handlers are pluggable and can be registered dynamically based on the required media types and processing needs. This dynamic architecture allows the system to adapt to different media types and processing requirements without requiring a complete system redesign, thereby expanding versatility while controlling complexity through on-demand component activation.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If async pipeline is provided for cross-cutting concerns, then message manipulation capability is enhanced, but processing overhead increases

Engineering Contradiction:
Improvemessage manipulation easeVSAvoidmessage processing time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The async pipeline processes messages in a periodic, non-blocking manner. Instead of synchronous sequential processing, the pipeline uses asynchronous operations that can proceed in parallel stages. Message manipulation operations are queued and executed asynchronously, allowing the system to enhance ease of operation by providing flexible message manipulation while reducing processing time overhead through parallel execution and non-blocking I/O operations.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS8918452B2Web API framework
Publication Date: 2014.12.23 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8918452B2 patent drawing
  • US8918452B2 patent drawing
  • US8918452B2 patent drawing

AI summary

Embodiments allow developers to use HTTP message abstractions inline within their Web API methods to directly access and manipulate HTTP request and response messages. A hosting layer is provided for in-process, in-memory and network-based services. Message handlers and operational handlers may be combined to create a message channel for asynchronous manipulations of the HTTP requests and response. A formatter may be used on the server or client for consuming HTTP and providing desired media types.