# US 11,113,249 B2 · Multitenant application server using a union file system

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

- Number: US 11,113,249 B2
- Document ID: US11113249B2
- Status: Granted
- Kind: B2
- Application number: 16/376,351
- Filed: 2019-04-05
- Published: 2020-10-08
- Granted: 2021-09-07
- Earliest claimed: 2019-04-05
- Assignees: Sap SE
- Applicants: Sap SE
- Inventors: Joachim Fitzer; Pietro Francesco Menna; Felipe Musse; Simon Seif
- Web page: https://patentgrep.com/patent/US11113249B2

## CPC

- G06F 16/182: Distributed file systems
- G06F 16/185: Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof (details of archiving G06F16/11)
- G06F 16/183: {Provision of network file services by network file servers, e.g. by using NFS, CIFS (network file access protocols H04L67/1097)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Example methods and systems are directed to a multitenant application server using a union file system. Each tenant has one or more users and a tenant layer in the union file system. Each user has a user layer in the union file system. The union file system provides a logical file system to each user based on the user layer, the tenant layer, and a base layer comprising a set of application layers. A first user shares an application template file with other users of the same tenant by moving the file from the first user's user layer to the tenant layer. After the file is moved, all users of the tenant have access to the application defined by the application template file. The moving of the file is achieved by modifying metadata for the file.

## Claims

### Claim 1

A method comprising:
receiving, at a multitenant application server and via a network, a first request from a first user device associated with a first user identifier of a tenant to share an application defined using a file stored in a first layer of a union file system of a storage device, the first layer corresponding to the first user identifier;
in response to the first request, moving, by one or more hardware processors, the file from the first layer to a second layer of the union file system of the storage device, the second layer corresponding to the tenant; and
based on the file being on the second layer of the union file system and a second user device being associated with a second user identifier of the tenant, providing access to the application to the second user device.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first user identifier has read-write access to the first layer and read-only access to a third layer of the union file system.

### Claim 3 (depends on 2)

The method of claim 2, wherein the third layer is below the second layer and the second layer is below the first layer.

### Claim 4 (depends on 1)

The method of claim 1, wherein based on a third user identifier being of a second tenant, the second layer is unavailable to the third user identifier.

### Claim 5 (depends on 1)

The method of claim 1, wherein the first layer is unavailable to the second user identifier.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
receiving a second request from the first user device associated with the first user identifier to stop sharing the application; and
in response to the second request, moving the file from the second layer to the first layer.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
determining a set of applications available to the second user identifier by accessing a corresponding set of application template files in a directory on the second layer of the union file system, the set of applications comprising the shared application; and
wherein the moving of the file from the first layer to the second layer comprises moving the file to the directory on the second layer.

### Claim 8

A multitenant system comprising:
a memory that stores instructions; and
one or more processors configured by the instructions to perform operations comprising:
receiving a first request from a first user device associated with a first user identifier of a tenant to share an application defined using a file stored in a first layer of a union file system of a storage device, the first layer corresponding to the first user identifier;
in response to the first request, moving the file from the first layer to a second layer of the union file system of the storage device, the second layer corresponding to the tenant; and
based on the file being on the second layer of the union file system and a second user device being associated with a second user identifier of the tenant, providing access to the application to the second user device.

### Claim 9 (depends on 8)

The system of claim 8, wherein the first user identifier has read-write access to the first layer and read-only access to a third layer of the union file system.

### Claim 10 (depends on 9)

The system of claim 9, wherein the third layer is below the second layer and the second layer is below the first layer.

### Claim 11 (depends on 8)

The system of claim 8, wherein based on a third user identifier being of a second tenant, the second layer is unavailable to the third user identifier.

### Claim 12 (depends on 8)

The system of claim 8, wherein the first layer is unavailable to the second user identifier.

### Claim 13 (depends on 8)

The system of claim 8, wherein the operations further comprise:
receiving a second request from the first user device associated with the first user identifier to stop sharing the application; and
in response to the second request, moving the file from the second layer to the first layer.

### Claim 14 (depends on 8)

The system of claim 8, wherein:
the operations further comprise:
determining a set of applications available to the second user identifier by accessing a corresponding set of application template files in a directory on the second layer of the union file system, the set of applications comprising the shared application; and
the moving of the file from the first layer to the second layer comprises moving the file to the directory on the second layer.

### Claim 15

A non-transitory computer-readable medium that stores instructions that, when executed by one or more processors of a multitenant application server, cause the multitenant application server to perform operations comprising:
receiving a first request from a first user device associated with a first user identifier of a tenant to share an application defined using a file stored in a first layer of a union file system of a storage device, the first layer corresponding to the first user identifier;
in response to the first request, moving the file from the first layer to a second layer of the union file system, the second layer corresponding to the tenant; and
based on the file being on the second layer of the union file system and a second user device being associated with a second user identifier of the tenant, providing access to the application to the second user device.

### Claim 16 (depends on 15)

The computer-readable medium of claim 15, wherein the first user identifier has read-write access to the first layer and read-only access to a third layer of the union file system.

### Claim 17 (depends on 16)

The computer-readable medium of claim 16, wherein the third layer is below the second layer and the second layer is below the first layer.

### Claim 18 (depends on 15)

The computer-readable medium of claim 15, wherein based on a third user identifier being of a second tenant, the second layer is unavailable to the third user identifier.

### Claim 19 (depends on 15)

The computer-readable medium of claim 15, wherein the first layer is unavailable to the second user identifier.

### Claim 20 (depends on 15)

The computer-readable medium of claim 15, wherein the operations further comprise:
receiving a second request from the first user device associated with the first user identifier to stop sharing the application; and
in response to the second request, moving the file from the second layer to the first layer.
