Composite Application Design Interface for Distributed Systems

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Deploying and managing composite software applications on distributed systems is complex due to the need for multiple tools and development environments, making it difficult to visualize and edit components and their relationships effectively.

Innovation Solution

A computer system instantiates an application design interface to display and edit composite application components and their relationships, accessing an editable application manifest to provide potential implementation options based on component interactions, allowing users to select and configure components for deployment and runtime management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If multiple tools and development environments are used to deploy and manage composite applications, then the application can be deployed on distributed systems, but the complexity of deployment and management increases significantly

Engineering Contradiction:
Improvedeployment capability on distributed systemsVSAvoiddeployment and management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent combines multiple development tools and environments into a single integrated development environment (IDE) that provides unified support for composite application development. The IDE integrates visual designers, code editors, and deployment tools, allowing developers to work with multiple component types (Java, .NET, PHP, etc.) and multiple distributed system platforms through a single interface, thereby reducing deployment and management complexity while maintaining versatility.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The IDE is designed as a universal platform that can handle multiple programming languages, component types, and deployment targets simultaneously. It provides multi-functional capabilities including visual component design, code generation, automatic relationship mapping, and deployment to various distributed systems (Apache ServiceMix, JBoss, etc.), eliminating the need for separate specialized tools for each task.

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

2Loss of information

If visual application design interface is implemented to display composite application components, then the visualization of components and relationships is improved, but the interface complexity increases

Engineering Contradiction:
Improvevisualization of components and relationshipsVSAvoidinterface complexity
Core Design Contradiction:
Loss of informationVSDevice complexity

Solution Approach 1:

The visual interface is segmented into distinct functional areas: a component palette showing available components, a workspace for arranging components, and a properties panel for configuration. Relationships between components are displayed as separate connectable entities, allowing the interface to present complex information in organized, manageable sections rather than overwhelming the user with all elements simultaneously.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces an application manifest as an intermediary data structure that stores the configuration of composite applications, including component definitions and relationships. The visual interface interacts with the manifest through standardized operations, allowing complex application configurations to be managed through simple visual actions while the manifest handles the underlying complexity of component relationships and deployment specifications.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Ease of operation

If automatic determination of implementation options is provided based on application manifest, then the coding assistance is improved, but the processing time increases

Engineering Contradiction:
Improvecoding assistance qualityVSAvoidoption determination time
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The system performs preliminary analysis of the application manifest and component relationships when the application is first created or modified, pre-computing and caching available implementation options. When the user requests coding assistance, the system retrieves pre-computed options rather than recalculating them, significantly reducing response time while maintaining comprehensive analysis capabilities.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system provides feedback to the user about available implementation options based on the current state of the application manifest and selected components. This feedback mechanism allows the system to guide users toward appropriate implementation choices without requiring exhaustive analysis of all possible options, reducing processing time while maintaining ease of operation through contextual suggestions.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS9286037B2Platform for distributed applications
Publication Date: 2016.03.15 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9286037B2 patent drawing
  • US9286037B2 patent drawing
  • US9286037B2 patent drawing

AI summary

Embodiments are directed to providing an application model to deploy and manage composite applications and to providing model-driven software coding assistance. In an embodiment, a computer system instantiates an application design interface that is configured to display composite application components and relationships between the components. Each component includes information specifying how communication is to be conducted with the component. The computer system accesses an application manifest that includes the components and component relationships of the application. The computer system displays the composite application's components and component relationships in the instantiated visual application design interface according to the application manifest.