Multi-JVM Java GUI Layout via XML

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Java Swing's single-threaded nature causes GUIs to freeze when handling events, limiting performance on multi-monitor systems and requiring recompilation for layout changes, which is inflexible and inefficient.

Innovation Solution

Implementing multiple Java Virtual Machines (JVMs) for each monitor, with a separate event queue and using XML files to define GUI layouts, allowing dynamic changes without recompilation and improving responsiveness across multiple displays.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If a single event queue and processing thread is used for all monitors, then the system structure is simple, but the GUI freezes when handling events and performance is limited

Engineering Contradiction:
Improvesystem structureVSAvoidGUI responsiveness
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent divides the single event queue into multiple separate event queues, with each monitor having its own dedicated event queue and processing thread. This segmentation allows events on different monitors to be processed independently and concurrently, preventing GUI freezing and improving overall system responsiveness while maintaining manageable complexity through clear separation of concerns.

Inventive Principle:
Principle #1Segmentation

2Productivity

If multiple threads are spawned to process event handling code, then GUI freezing is reduced, but display updates must be done on the event queue thread causing graphic intensive processes to still freeze all GUIs

Engineering Contradiction:
Improveevent handling concurrencyVSAvoiddisplay update consistency
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the system into multiple independent JVMs, each with its own event queue and display surface controller. This allows event handling to occur in separate threads within each JVM while display updates are managed independently per monitor, preventing graphic-intensive processes from freezing all GUIs across multiple monitors simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces display surface controllers as intermediary components that manage the interface between event processing threads and display update operations. These controllers coordinate updates across multiple monitors and JVMs, ensuring display consistency while allowing concurrent event handling without blocking graphic-intensive operations system-wide.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Reliability

If GUI layouts are defined in compiled code, then the structure is rigid and type-safe, but layout changes require recompilation which is inflexible and inefficient

Engineering Contradiction:
Improvecode structure stabilityVSAvoidlayout flexibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent introduces XML configuration files as an intermediary layer between the compiled Java code and the actual GUI layout definitions. The XML files store layout specifications in a human-readable, editable format that can be modified without recompiling the Java code. The system parses these XML files at runtime to construct and modify GUI layouts, providing flexibility while maintaining the type-safety and structure of the compiled Java framework.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Device complexity

If a single JVM runs as a single process on a physical computer, then the system is simple to manage, but the system cannot take advantage of multiple processors and receives no performance enhancement

Engineering Contradiction:
ImproveJVM managementVSAvoidmulti-processor utilization
Core Design Contradiction:
Device complexityVSProductivity

Solution Approach 1:

The patent segments the single JVM architecture into multiple separate JVMs running as independent processes on the physical computer. Each JVM can utilize different CPU cores and processors, enabling parallel execution of GUI event processing and application logic across multiple processors. This segmentation increases complexity slightly but delivers significant performance enhancements through multi-processor utilization and concurrent execution.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS8863015B2Multi-monitor, multi-JVM java GUI infrastructure with layout via XML
Publication Date: 2014.10.14 RAYTHEON CO
  • US8863015B2 patent drawing
  • US8863015B2 patent drawing
  • US8863015B2 patent drawing

AI summary

A method and system are provided which allows enhanced support to graphical user interface (GUI) displays on multiple monitors. An extended markup language file provides code to configure each GUI. GUI software need not be re-compiled in order to implement changes in the layout of displays or to accommodate additional monitors. Potential display event handling delays are minimized by providing multiple Java Virtual Machines (JVMs) for GUIs. In one aspect, one JVM is provided for each GUI.