# US 2014/0156732 A1 · Splitting of Processing Logics Associated with Commands of Pages in a Distributed Application

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0156732 A1
- Document ID: US20140156732A1
- Status: Published application
- Kind: A1
- Application number: 13/867,177
- Filed: 2013-04-22
- Published: 2014-06-05
- Earliest claimed: 2012-12-04
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Leonardo Lanni; Luca Lazzaro; Alessandro Scotti; Antonio M. Sgro; Andrea Tortosa
- Web page: https://patentgrep.com/patent/US20140156732A1

## CPC

- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- G06F 9/5044: {considering hardware capabilities}
- G06F 9/505: {considering the load}
- H04L 67/02: based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L 67/303: Terminal profiles
- H04L 67/535: {Tracking the activity of the user (network monitoring arrangements H04L43/00; recording of computer activity G06F11/34)}
- H04L 67/60: Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources (admission control or resource allocation H04L47/70)
- G06F 2209/5017: Task decomposition
- G06F 2209/509: Offload
- H04L 67/04: specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A mechanism is provided for controlling a distributed application. An indication of a computational capability of a client computing machine and of a server computing machine is detected. At least part of a page is built in response to a request received by the server computing machine from the client computing machine. The at least part of the page comprising a set of commands each one for submitting a next request on the client computing machine. Processing logic for serving each next request being split between a client processing component and a server processing component. The page with the client processing component for each command is returned to the client computing machine for causing the client computing machine to load the page and execute each client processing component in response to the corresponding next request. Each server processing component is executed in response to the corresponding next request.

## Claims

### Claim 1

A method for controlling a distributed application, the method comprising:
detecting an indication of a computational capability of a client computing machine or of a server computing machine,
building at least part of a page to response to a request received by the server computing machine from the client computing machine, the page comprising a set of commands each one for submitting a next request on the client computing machine, a processing logic for serving each next request being split between a client processing component and a server processing component,
returning the page with the client processing component for each command to the client computing machine for causing the client computing machine to load the page and execute each client processing component in response to the corresponding next request, and
executing each server processing component in response to the corresponding next request.

### Claim 2 (depends on 1)

The method according to claim 1, wherein the distributed application is a web application, and wherein each page being a web page for loading by a web browser running on the client computing machine.

### Claim 3 (depends on 1)

The method according to claim 1, wherein detecting the indication of the computational capability comprises:
detecting indication of computational resources or a usage of the computation resources.

### Claim 4 (depends on 1)

The method according to claim 1, wherein detecting the indication of the computational capability comprises:
sending a detection component to the client computing machine in response to a request of accessing the distributed application from the client computing machine to cause the execution of the detection component on the client computing machine, the detection component being adapted to detect the indication of the computational capability of the client computing machine and to return the indication of the computational capability of the client computing machine to the server computing machine.

### Claim 5 (depends on 1)

The method according to claim 1, wherein detecting the indication of the computational capability comprises:
detecting the indication of the computational capability in response to an access of the client computing machine to the distributed application.

### Claim 6 (depends on 1)

The method according to claim 1, further comprising:
monitoring the computational capability, and
updating the splitting of each processing logic according to the monitored computational capability.

### Claim 7 (depends on 6)

The method according to claim 6, wherein building the at least part of the page comprises:
mirroring each processing logic into the client processing component and the server processing component, and
configuring the client processing component and the server processing component according to the computational capability,
and wherein updating the splitting of each processing logic comprises:
updating the configurations of the client processing component and of the server processing component.

### Claim 8 (depends on 1)

The method according to claim 1, wherein building the at least part of the page comprises:
creating the client processing component and the server processing component for each next request according to the computational capability of the client computing machine or the server computing machine, respectively.

### Claim 9 (depends on 1)

The method according to claim 1, wherein detecting the indication of the computational capability comprises:
classifying the client computing machine into one of a plurality of pre-defined classes according to the computational capability of the client computing machine,
and wherein building the at least part of the page comprises:
selecting the client processing component and the server processing component for each next request from a plurality of pre-built client processing components and server processing components corresponding to the plurality of defined classes according to a class of the client computing machine.

### Claim 10 (depends on 1)

The method according to claim 1, wherein building the at least part of the page comprises:
associating the processing logic with a penalty indicator indicative of a loss of efficiency caused by a moving of the processing logic from the client computing machine to the server computing machine, the processing logic being split further according to the penalty indicator.

### Claim 11 (depends on 10)

The method according to claim 10, wherein the penalty indicator is based on an amount of data to be transmitted between the client computing machine and the server computing machine during the execution of the client processing component and the server processing component.

### Claim 12 (depends on 1)

The method according to claim 1, further comprising:
synchronizing the execution of the client processing component and of the server processing component for each next request.

### Claim 13

A computer program product comprising a computer readable medium having a computer readable program for causing a computing system to control a distributed application stored therein, wherein the computer reading program, when executed on the computing system, causes the computing system to:
detect an indication of a computational capability of a client computing machine or of a server computing machine,
build at least part of a page in response to a request received by the server computing machine from the client computing machine, the page comprising a set of commands each one for submitting a next request on the client computing machine, a processing logic for serving each next request being split between a client processing component and a server processing component,
return the page with the client processing component for each command to the client computing machine for causing the client computing machine to load the page and execute each client processing component in response to the corresponding next request, and
execute each server processing component in response to the corresponding next request.

### Claim 14

A system for controlling a distributed application comprising:
a processor; and
a memory coupled to the processor, wherein the memory comprises instructions which, when executed by the processor, cause the processor to:
detect indication of a computational capability of a client computing machine or of a server computing machine,
build at least part of a page in response to a request received by the server computing machine from the client computing machine, the page comprising a set of commands each one for submitting a next request on the client computing machine, a processing logic for serving each next request being split between a client processing component and a server processing component,
return the page with the client processing component for each command to the client computing machine for causing the client computing machine to load the page and execute each client processing component in response to the corresponding next request, and
execute each server processing component in response to the corresponding next request.

### Claim 15 (depends on 14)

The system of claim 14, wherein the instructions to detect the indication of the computational capability further causes the processor to:
detect an indication of computational resources or a usage of the computation resources.

### Claim 16 (depends on 14)

The system of claim 14, wherein the instructions to detect the indication of the computational capability further causes the processor to:
send a detection component to the client computing machine in response to a request of accessing the distributed application from the client computing machine to cause the execution of the detection component on the client computing machine, the detection component being adapted to detect the indication of the computational capability of the client computing machine and to return the indication of the computational capability of the client computing machine to the server computing machine.

### Claim 17 (depends on 14)

The system of claim 14, wherein the instructions to detect the indication of the computational capability further causes the processor to:
detect the indication of the computational capability in response to an access of the client computing machine to the distributed application.

### Claim 18 (depends on 14)

The system of claim 14, wherein the instructions further cause the processor to:
monitor the computational capability, and
update the splitting of each processing logic according to the monitored computational capability.

### Claim 19 (depends on 18)

The system of claim 18, wherein the instructions to d the at least part of the page further causes the processor to:
mirror each processing logic into the client processing component and the server processing component, and
configure the client processing component and the server processing component according to the computational capability,
and wherein the instructions to update the splitting of each processing logic further causes the processor to:
update configurations of the client processing component of the server processing component.

### Claim 20 (depends on 14)

The system of claim 14, wherein the instructions to build the at least part of the page further causes the processor to:
create the client processing component and the server processing component for each next request according to the computational capability of the client computing machine or the server computing machine, respectively.
