# US 2020/0401468 A1 · Visualization infrastructure for web applications

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

- Number: US 2020/0401468 A1
- Document ID: US20200401468A1
- Status: Published application
- Kind: A1
- Application number: 16/646,658
- Filed: 2018-09-12
- Published: 2020-12-24
- Earliest claimed: 2017-09-12
- Assignees: Schlumberger Technology Corporation
- Applicants: Schlumberger Technology Corporation
- Inventors: Alain CUDENNEC; Farid HARHAD; Arnaud HOUEGBELO; Yuri VANZINE
- Web page: https://patentgrep.com/patent/US20200401468A1

## CPC

- G06F 9/547: {Remote procedure calls [RPC]; Web services}
- G06F 8/36: Software reuse
- G06F 8/38: for implementing user interfaces
- G06F 9/452: {Remote windowing, e.g. X-Window System, desktop virtualisation (protocols for virtual reality H04L67/131)}
- G06F 16/9577: {Optimising the visualization of content, e.g. distillation of HTML documents}
- G06F 2221/2111: Location-sensitive, e.g. geographical location, GPS
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Web application code includes a unified rendering application programming interface (API) library and unified rendering API calls. The unified rendering API calls comply with call definitions and are to library functions. The library functions are in both a server rendering library and a client rendering library. The call definitions are the same for using the server rendering library and the client rendering library. From a client computing device and a server computing device, a rendering system is identified for rendering a visualization to obtain an identified system. The rendering library matching the rendering system is linked to the web application code, where the rendering library is at least of the client rendering library or the server rendering library.

## Claims

### Claim 1

A method for developing comprising:
receiving, for a web application, web application code comprising a unified rendering application programming interface (API) library and a plurality of unified rendering API calls, the plurality of unified rendering API calls complying with a plurality of call definitions, the unified rendering API calls to a plurality of library functions, each of the plurality of library functions in both a server rendering library and a client rendering library, wherein the plurality of call definitions are the same for using the server rendering library and the client rendering library;
identifying, from a client computing device and a server computing device, a rendering system for rendering a visualization to obtain an identified system;
linking a rendering library matching the rendering system to the web application code, the rendering library being at least one selected from a group consisting of the client rendering library and the server rendering library; and
transmitting the web application to the client computing device.

### Claim 2 (depends on 1)

The method of claim 1, wherein, when the client computing device is selected as the rendering system, the client computing device renders the visualization using the plurality of library functions defined in the client rendering library.

### Claim 3 (depends on 1)

The method of claim 1, wherein, when the server computing device is selected as the rendering system, the web application issues a call to the server computing device to render the visualization and receives the visualization from the server computing device.

### Claim 4 (depends on 1)

The method of claim 1, wherein the web application code comprises an instantiation of an image object, and wherein the rendering system is identified according to the instantiation.

### Claim 5

A non-transitory computer readable medium comprising computer readable program code for a web application, the computer readable program code comprising instructions for:
receiving, from an image command in the web application, a request to render a visualization, wherein the request is based on a unified rendering application programming interface that is supported by both a client computing system and a server computing system, the client computing system executing the web application;
selecting, based on a predetermined rendering criterion, at least one rendering system selected from a group consisting of the client computing system and the server computing system, the client computing system and the server computing system both comprising a rendering engine;
receiving a first rendered visualization from the rendering engine executing on the at least one rendering system; and
displaying the first rendered visualization.

### Claim 6 (depends on 5)

The non-transitory computer readable medium of claim 5, further comprising:
detecting that the predetermined rendering criterion has a changed value;
selecting a different rendering system then the rendering system that rendered the first rendered visualization, the first rendered visualization rendered from an image definition;
receiving a second rendered visualization from the rendering engine executing on the different rendering system, the second rendered visualization rendered from the image definition used for the first rendered image; and
displaying the second rendered visualization.

### Claim 7 (depends on 5)

The non-transitory computer readable medium of claim 5, wherein the predetermined rendering criterion comprises a size of an image definition corresponding to the first rendered visualization.

### Claim 8 (depends on 5)

The non-transitory computer readable medium of claim 5, wherein the predetermined rendering criterion comprises a number of client computing systems concurrently executing the web application and using an image definition corresponding to the first rendered visualization.

### Claim 9 (depends on 5)

The non-transitory computer readable medium of claim 5, wherein the predetermined rendering criterion comprises an estimated level of interactivity with the first rendered visualization.

### Claim 10

A computing system comprising:
a processor;
a memory for storing a rendering library, the rendering library comprising:
a server rendering library comprising instructions for:
receiving, from a web application executing on a client computing system, a request to render a visualization,
rendering a plurality of selected image definitions into a visualization, and
sending the visualization to the client computing system,
a client rendering library comprising instructions for:
receiving, from the web application executing on a client computing system, a request to render the visualization,
rendering the plurality of selected image definitions into the visualization, and
presenting the image on the client computing system;
a unified rendering application programming interface comprising a plurality of call definitions to a plurality of library functions, each of the plurality of library functions in both the server rendering library and the client rendering library, wherein the plurality of call definitions are the same for using the server rendering library and the client rendering library.

### Claim 11 (depends on 10)

The computing system of claim 10, wherein the plurality of library functions comprises:
a shape reader library function configured to read a shape definition in the plurality of selected image definitions and create a shape; and
a view creator library function configured to render a portion of the visualization from the shape.

### Claim 12 (depends on 11)

The computing system of claim 11, wherein the plurality of library functions comprises:
a property manager library function configured to manage a property definition for the visualization.

### Claim 13 (depends on 12)

The computing system of claim 12, wherein the plurality of library functions comprises:
a property collection library function configured to manage a plurality of property type definitions, the property collection library function connected to the property manager library function.

### Claim 14 (depends on 11)

The computing system of claim 11, wherein the plurality of library functions comprises:
a style manager library function configured to manage a style definition for the visualization.

### Claim 15 (depends on 14)

The computing system of claim 14, wherein the plurality of library functions comprises:
a style creator factory library function configured to create an instance of a style creator library function, the style creator library function configured to create a style for the shape.

### Claim 16 (depends on 15)

The computing system of claim 15, wherein the plurality of library functions comprises:
a style collection library function connected to the style creator factory library function and the style creator library function, the style collection library functions configured to manage a plurality of styles.

### Claim 17 (depends on 11)

The computing system of claim 11, wherein the plurality of library functions comprises:
a view creator factory library function configured to create an instance of the view creator library function based on a shape type of the shape, a canvas type of the visualization, and a rendering engine.

### Claim 18 (depends on 11)

The computing system of claim 11, wherein the view creator library function is configured to receive a canvas type.

### Claim 19 (depends on 11)

The computing system of claim 11, wherein the plurality of library functions comprises:
a reader factory library function configured to create an instance of the shape reader library function based on a shape type of the shape.

### Claim 20 (depends on 10)

The computing system of claim 10, wherein at least one of the client rendering library and the server rendering library is identified by an instantiation of an object in the web application.
