Nested Domain-Specific Language for DNS Server Testing

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Conventional programming languages like Java and C++ require repetitive and complex code for testing server implementations, making it inefficient to send and verify numerous requests across network protocols, especially under heavy loads.

Innovation Solution

The use of domain-specific languages nested within a Java base code to generate and verify requests conforming to specific network protocols, such as DNS, through a scripting interface that allows variable and function sharing between code layers, reducing code complexity and increasing efficiency.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If conventional programming languages like Java or C++ are used to write testing programs, then the program can communicate with the server and send requests, but the code becomes very repetitive, very long, and very difficult to read

Engineering Contradiction:
Improvecode readabilityVSAvoidcode complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent segments the testing program into two distinct parts: a base program written in Java/C++ that handles communication infrastructure, and a domain-specific language (DSL) that handles protocol-specific logic. This segmentation allows each part to focus on its strengths, reducing overall code complexity and improving readability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a domain-specific language as an intermediary layer between the programmer's intent and the server communication. This DSL acts as a mediator that translates high-level protocol specifications into actual network requests, eliminating the need for programmers to write repetitive low-level communication code.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If conventional programming languages are used to generate a significant volume and variety of requests, then proper testing of server software can be achieved, but the code becomes very repetitive and requires long functional statements

Engineering Contradiction:
Improvetesting completenessVSAvoidcode development time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent enables copying and reuse of domain-specific code templates for generating different requests. Once a request template is defined in the DSL, it can be copied and modified for various testing scenarios, eliminating the need to write repetitive request-generation code from scratch for each test case.

Inventive Principle:
Principle #26Copying

Solution Approach 2:

The domain-specific language is designed to be universal for handling multiple types of network protocol requests. A single DSL framework can generate various kinds of requests (DNS queries, HTTP requests, etc.) using common syntax and structures, reducing development time across different testing scenarios.

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

3Reliability

If custom programs are written to send numerous requests and verify answers, then comprehensive server testing can be performed, but the code becomes very long and difficult to maintain

Engineering Contradiction:
Improvetesting accuracyVSAvoidprogram length
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent extracts the protocol-specific verification logic from the general testing framework and places it in the domain-specific language. This extraction allows the verification rules to be defined separately in a more readable and maintainable format, reducing the overall program length while maintaining testing accuracy.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS8527945B2Method and system for integrating multiple scripts
Publication Date: 2013.09.03 VERISIGN INC

AI summary

A method of testing the server implementation of the Domain Name System protocol by using a first body of computer code in a first programming language capable of sending and receiving DNS requests, and a second body of computer readable code in a second programming language capable of generating DNS requests and verifying responses. The second programming language may be tailored to writing code being capable of generating Domain Name System requests and verifying the response thereby allowing the program to be efficiently reconfigured to test different aspects of the server.