Actor Director Model Decoupling for Scalable Software Deployment

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software development technologies face challenges in scaling from resource-constrained devices to enterprise servers, requiring significant time, effort, and cost due to the difficulty in creating software that can efficiently utilize varying hardware resources.

Innovation Solution

The actor/director model separation allows for a single software code base to be deployed across different hardware platforms by decoupling threads of execution, where actors process messages and message processing threads are managed externally within a thread pool, independent of the number of actors, enabling efficient use of hardware resources.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software is designed to scale from resource-constrained devices to enterprise servers, then hardware adaptability is improved, but development complexity increases

Engineering Contradiction:
Improvehardware adaptabilityVSAvoiddevelopment complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The software is segmented into independent actors that can be selectively deployed. Each actor is a self-contained unit with its own message queue and processing logic, allowing the software to be divided into manageable components that can be adapted to different hardware platforms without requiring complete redesign.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The actor model provides a universal software architecture that can function across diverse hardware platforms. By using standardized message passing and queue mechanisms, the same software code base can operate on resource-constrained devices as well as enterprise servers, achieving multi-functionality across different environments.

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

2Loss of time

If a single software code base is used across different platforms, then development time is reduced, but execution efficiency may deteriorate

Engineering Contradiction:
Improvedevelopment timeVSAvoidexecution efficiency
Core Design Contradiction:
Loss of timeVSProductivity

Solution Approach 1:

The system dynamically adapts its execution behavior based on the underlying hardware platform. The actor model allows for dynamic message queue management and thread pooling that can be optimized for different execution environments, enabling the same code base to achieve efficient execution whether on single-threaded embedded devices or multi-core enterprise servers.

Inventive Principle:
Principle #15Dynamics

3Speed

If multiple threads are used to process messages, then processing speed is improved, but resource consumption increases

Engineering Contradiction:
Improveprocessing speedVSAvoidresource consumption
Core Design Contradiction:
SpeedVSUse of energy by moving object

Solution Approach 1:

Each actor independently manages its own message queue and processing, allowing for self-service message handling without requiring centralized thread management. This decentralized approach enables efficient resource utilization where each actor can process messages at its own pace, reducing overall system resource consumption while maintaining processing speed.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10445141B2System and method supporting single software code base using actor/director model separation
Publication Date: 2019.10.15 HONEYWELL INTERNATIONAL INC
  • US10445141B2 patent drawing
  • US10445141B2 patent drawing
  • US10445141B2 patent drawing

AI summary

A method includes executing multiple actors associated with a software program. Each actor is associated with (i) data to be processed and (ii) a message queue configured to store messages received by the actor. The method also includes invoking execution of at least one message processing thread for each message received by each actor. The at least one message processing thread is contained in a thread pool that is external to the actors. The number of message processing threads in the thread pool is independent of the number of actors. The method further includes releasing the at least one message processing thread to the thread pool after the execution of the corresponding message is completed.