Collage Declarative Runtime for Distributed Web Apps

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Modern web applications face challenges in programming due to the mismatch between different programming models and runtime systems, leading to complexity and inefficiency in developing and deploying cross-organizational software, particularly in web mash-ups that require shifting between browser-side, server-side, and client-side logic.

Innovation Solution

A declarative programming model and runtime system, referred to as Collage, that unifies data and execution models across nodes, allowing for distributed computation and enabling cross-organizational software composition by using a resource description framework (RDF) and abstract interaction primitives to simplify user interface design and deployment.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If traditional programming models are used for web applications with separate browser-side, server-side, and data access logic, then each tier can be developed independently, but the complexity increases significantly when composing cross-organizational software and programs must be entirely rewritten when shifting between tiers

Engineering Contradiction:
Improveadaptability across tiersVSAvoidprogramming complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent applies universality by creating a unified programming model that works across all tiers (browser-side, server-side, data access). The declarative language and resource description framework enable the same program to be executed differently across tiers without rewriting, making the programming model multi-functional and adaptable to distributed web application architectures.

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

Solution Approach 2:

The patent introduces an intermediary layer in the form of a runtime system that translates and coordinates execution between different tiers. This runtime acts as a mediator that handles the complexity of distributed execution, allowing developers to write programs once while the runtime manages the adaptation across browser, server, and data access layers.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If multiple data access languages and scripting models are used for different tiers, then each tier can use optimized languages, but components do not compose well and require painful amounts of scaffolding

Engineering Contradiction:
Improvecomponent composition efficiencyVSAvoidlanguage variety
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The patent merges multiple programming models into a single unified declarative language. Instead of using separate languages for data access, business logic, and presentation, the patent combines them into one language that can express all these concerns, eliminating the need for scaffolding and improving component composition.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The unified programming model serves multiple functions across different tiers simultaneously. The same declarative language can be used for data access queries, business logic definition, and presentation layer specifications, making it universal and eliminating the need to learn or switch between multiple languages.

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

3Reliability

If programming models and runtime systems are designed for monolithic applications, then development is simpler, but the mismatch becomes a significant impediment to producing and composing reliable distributed application software

Engineering Contradiction:
Improvedistributed application reliabilityVSAvoidmiddleware complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies dynamics by creating a runtime system that dynamically adapts the execution of declarative programs across distributed tiers. The runtime can dynamically determine which tier should execute which part of the program based on the resource descriptions and capabilities available, rather than requiring static assignment of functionality to specific tiers.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The runtime system serves as an intermediary that manages the complexity of distributed execution. It handles the coordination, translation, and error management between tiers, shielding developers from the complexity while ensuring reliable execution of distributed applications.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS7836119B2Distributed execution model for cross-organizational declarative web applications
Publication Date: 2010.11.16 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US7836119B2 patent drawing
  • US7836119B2 patent drawing
  • US7836119B2 patent drawing

AI summary

A system and method for distributed computation includes providing a first service of a first computation node in a network of nodes, the first service having a first resource, the first resource including one of references to data and other resources. In a second service on a second computation node, the first resource is reference-able by associating the first resource in the second service for use in the second service. A distributed computation is performed across node boundaries using the references of the first resource to perform the computation in the first service and in the second service.