Software Framework for Secure Distributed Application Development

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software frameworks, such as Enterprise Java Beans (EJB), are limited in providing scalable, secure, and asynchronous communication capabilities between client and server applications, requiring complex development and inefficiently handling stateful connections, which hinders the creation of robust, distributed applications.

Innovation Solution

A software framework that enables multithreaded communication between client and server code, providing both synchronous and asynchronous communication capabilities over a single connection, with automatic security features like SSL and ACL authentication, allowing for seamless real-time data delivery and scalable application development without requiring developers to write additional code for these functionalities.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If existing software frameworks like EJB are used, then basic application functionality can be achieved, but the frameworks lack scalable, secure, and asynchronous communication capabilities requiring complex development

Engineering Contradiction:
Improvecommunication capabilitiesVSAvoiddevelopment complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The framework integrates multiple communication modes (synchronous, asynchronous, publish-subscribe), security mechanisms (SSL, ACL), and connection management capabilities into a single universal communication layer that works across all client-server interactions, eliminating the need for separate implementations of each feature

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

Solution Approach 2:

The framework introduces an intermediary communication layer between client and server code that automatically handles complex protocols, security authentication, and thread management, allowing developers to write simple business logic while the intermediary manages the complexity of distributed system communication

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If complex security and communication features are implemented manually, then secure distributed applications can be created, but development time and complexity increase significantly

Engineering Contradiction:
ImprovesecurityVSAvoiddevelopment time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The framework performs preliminary configuration of security mechanisms (SSL certificates, ACL rules) and communication protocols during system initialization, so that secure communication is automatically established before any client-server interactions occur, eliminating the need for manual security setup for each application

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The framework implements self-service security management where the communication layer automatically handles authentication, authorization, and security protocol negotiation between clients and servers without requiring developer intervention, allowing applications to inherit security capabilities automatically

Inventive Principle:
Principle #25Self-service

3Stability of the object's composition

If stateful connections are handled using traditional frameworks, then connection state can be maintained, but the handling becomes inefficient and does not scale well

Engineering Contradiction:
Improveconnection stateVSAvoidscaling efficiency
Core Design Contradiction:
Stability of the object's compositionVSProductivity

Solution Approach 1:

The framework segments connection state management by maintaining state information in a distributed cache system rather than in-memory server variables, allowing connection state to be preserved across server restarts and scaled horizontally by distributing state across multiple cache nodes

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The framework replaces traditional mechanical stateful connection handling with an event-driven architecture where connection state changes are published as events to a message queue, allowing asynchronous processing and scaling without the limitations of synchronous state management

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

4Ease of operation

If developers write code for all communication and security functionalities, then complete control is achieved, but the focus shifts from business logic to infrastructure code

Engineering Contradiction:
Improvedeveloper productivityVSAvoidcode complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The framework extracts all communication protocol handling, security authentication, thread management, and connection state persistence functionality from the application code into a separate infrastructure layer, allowing developers to focus exclusively on business logic while the extracted infrastructure handles complexity

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS7788674B1Computer software framework for developing secure, scalable, and distributed applications and methods and applications thereof
Publication Date: 2010.08.31 TESSELLATION SOFTWARE HLDG LLC
  • US7788674B1 patent drawing
  • US7788674B1 patent drawing
  • US7788674B1 patent drawing

AI summary

A software framework for implementing distributed applications is provided. An implementer's client-specific code functions through the framework's client-side software. The implementer's server-specific code contains system-specific business logic and functions within the framework's server-side software. Communication is provided by the framework between each instance of implementer's client-specific code through an instance of client-side software to implementer's server-specific code through the server side software over at least one communication link. Multi-threaded communication is achievable over a single communications link, even where the implementer writes single-threaded code. The client-side software is able to process synchronous and asynchronous messages received from the server-side software while simultaneously sending additional messages to the server-side software, which can be processed concurrently by said server-side software. Security included in the framework includes encrypted, authenticated communications and digitally signed and verified content. Robust communication is provided, as lost links may be automatically restored.