Secure Query Interface for Non-NET Database Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Applications often face challenges in accessing databases optimally due to differences in execution environments between applications and databases, leading to suboptimal performance or security vulnerabilities, especially when interfacing with non-SQL servers or operating systems outside integrated frameworks.

Innovation Solution

An interface is provided that uses an application programming interface (API) to manage application requests outside the .NET framework, leveraging directory services within the .NET framework for secure database access, utilizing query servers that process requests efficiently in an event-driven, asynchronous environment, and storing queries in a query database associated with account identifiers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If applications access databases directly without framework integration, then application flexibility and performance are improved, but security and availability standards deteriorate

Engineering Contradiction:
Improveapplication flexibilityVSAvoidsecurity and availability standards
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The patent introduces a query server as an intermediary component between applications and databases. This query server operates within the .NET framework and provides a standardized interface for applications to access databases securely. The query server handles authentication, authorization, and query processing, thereby maintaining security and availability standards while allowing application flexibility through the RESTful API interface.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Ease of operation

If applications are developed to run in suboptimal environments to access databases, then database access is enabled, but application performance deteriorates

Engineering Contradiction:
Improvedatabase access capabilityVSAvoidapplication performance
Core Design Contradiction:
Ease of operationVSProductivity

Solution Approach 1:

The patent segments the system into distinct components: applications running in their optimal environments, a query server layer for secure access management, and databases. This segmentation allows applications to operate independently in their preferred execution environments while the query server provides standardized database access mechanisms, eliminating the need for applications to compromise their optimal environments for database access capability.

Inventive Principle:
Principle #1Segmentation

3Speed

If direct database access is provided to applications, then data access speed is improved, but security vulnerabilities increase

Engineering Contradiction:
Improvedata access speedVSAvoidsecurity vulnerabilities
Core Design Contradiction:
SpeedVSObject-affected harmful factors

Solution Approach 1:

The query server serves as a security intermediary that sits between applications and databases. It implements authentication and authorization mechanisms, filters and sanitizes queries, and manages connection pooling. This intermediary layer maintains secure communication protocols and access controls while providing efficient data access through optimized query processing and result caching, thereby reducing security vulnerabilities without significantly impacting data access speed.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10685019B2Secure query interface
Publication Date: 2020.06.16 SALESFORCE INC
  • US10685019B2 patent drawing
  • US10685019B2 patent drawing
  • US10685019B2 patent drawing

AI summary

One or more computing devices may execute procedures to select a query from a query database in response to a request from a remote application. The selected query may be applied to a target database and a result may be returned. The result may be processed to generate a response for the remote application. The response may be provided to the remote application for execution of an operation by the remote application.