Dynamic Logic Expression Deployment in Search Engines

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Deploying updates to computer code in large-scale projects like web search engines is time-consuming and costly due to extensive testing requirements, making it difficult to quickly release changes without restarting or recompiling the application.

Innovation Solution

Storing logic expressions in data files, such as XML files, that can be parsed and executed by a logic implementation module, allowing for dynamic reconfiguration of query processing without modifying the application code or restarting the system.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If code updates are deployed through traditional compilation and testing processes, then code reliability is ensured, but deployment time and system downtime increase significantly

Engineering Contradiction:
Improvecode reliabilityVSAvoiddeployment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent segments the codebase into static application code and dynamic logic expressions. The logic expressions are stored separately in data files (XML, JSON, YAML) and can be updated independently of the application code. This segmentation allows logic changes to be deployed without recompiling or restarting the application, resolving the contradiction between ensuring code reliability through testing and reducing deployment time.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces a logic parser as an intermediary component that reads and executes logic expressions from data files. This intermediary layer separates the execution engine from the logic definitions, enabling dynamic logic updates without modifying or restarting the application code. The logic parser acts as a mediator between the static application code and the dynamic logic requirements.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Stability of the object's composition

If extensive testing is performed before code deployment, then system stability is improved, but the complexity and difficulty of releasing updates increase

Engineering Contradiction:
Improvesystem stabilityVSAvoiddeployment complexity
Core Design Contradiction:
Stability of the object's compositionVSDevice complexity

Solution Approach 1:

The patent extracts the logic expressions from the application code and stores them in separate data files. This extraction eliminates the need to test and recompile code changes, as logic updates are simply file replacements. The testing burden is shifted to validating logic expression syntax rather than comprehensive system testing, reducing deployment complexity while maintaining stability.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent changes the representation of logic from compiled code parameters to data file parameters. Logic expressions are stored as human-readable data (XML, JSON, YAML) rather than compiled binary code. This parameter change allows logic to be updated by modifying data files rather than recompiling code, significantly reducing deployment complexity while maintaining system stability through the structured nature of the data formats.

Inventive Principle:
Principle #35Parameter changes

3Adaptability or versatility

If application code is modified to implement new logic, then functionality is updated, but the need for recompilation and potential system restart increases

Engineering Contradiction:
Improvelogic adaptabilityVSAvoidsystem downtime
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The patent introduces dynamics into the system by allowing logic expressions to be changed at runtime through data file updates. The logic parser is designed to load and execute new logic expressions without requiring application restart. This dynamic capability enables the system to adapt to changing requirements without the time loss associated with recompilation and restart, while maintaining the versatility of the application.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8996564B2System and method for deploying logic in data files
Publication Date: 2015.03.31 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8996564B2 patent drawing
  • US8996564B2 patent drawing
  • US8996564B2 patent drawing

AI summary

One particular technique includes storing logic expressions in a data file. This particular technique also includes executing application code. The executing provided by this particular technique includes receiving a query, reading an individual logic expression from the data file, processing the query using the individual logic expression to determine a query result, and providing the query result in response to the query.