# US 10,482,135 B2 · Facilitating dynamic generation and customization of software applications at client computing devices using server metadata in an on-demand services environment

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

- Number: US 10,482,135 B2
- Document ID: US10482135B2
- Status: Granted
- Kind: B2
- Application number: 13/940,129
- Filed: 2013-07-11
- Published: 2014-01-16
- Granted: 2019-11-19
- Earliest claimed: 2012-07-12
- Assignees: salesforce.com, inc.
- Applicants: salesforce.com, inc.
- Inventors: Yuri Rychikhin
- Web page: https://patentgrep.com/patent/US10482135B2

## CPC

- G06F 16/907: Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F 8/30: Creation or generation of source code
- G06F 8/38: for implementing user interfaces
- G06F 16/951: Indexing; Web crawling techniques
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In accordance with embodiments, there are provided mechanisms and methods for facilitating dynamic generation and customization of software applications using server metadata in an on-demand services environment in a multi-tenant environment according to one embodiment. In one embodiment and by way of example, a method includes receiving, at a server computing device, a request to access server metadata relating to object types, where the server metadata is stored at a database coupled to the server computing device. The method may further include providing access to the server metadata, and facilitating, using the server metadata, dynamic generation of a mobile software application at a client computing device including a mobile computing device. The dynamic generation of the mobile software application is performed automatically, in runtime, and locally at the client computing device in response to the request.

## Claims

### Claim 1

A computer-implemented method comprising:
receiving, by a server computing device, a request from a client computing device to access descriptive server metadata specific to a data object of a data structure to perform one or more tasks including customizing a software application at the client computing device, wherein the server metadata is stored at a database coupled to the server computing device, and wherein the client computing device includes a mobile computing device offering a user interface for placing the request with the server computing device over a cloud network;
allowing, by the server computing device, the client computing device to access the requested server metadata directly from the database, wherein the server metadata is customized for the client computing device such that the customized server metadata include one or more pre-coded routines associated with the one or more tasks; and
facilitating, by the server computing device, performance of the one or more tasks at the client computing device, using the data object and the customized server metadata having the one or more pre-coded routines, wherein the one or more pre-coded routines are invoked, as facilitated by a metadata entity, to perform the one or more tasks, wherein the metadata entity dynamically updates the customized server metadata based on changes in the one or more tasks the one or more pre-coded routines, wherein the one or more tasks include dynamically generating one or more mobile applications at the client computing device through access to the customized server metadata based on the one or more pre-coded routines.

### Claim 2 (depends on 1)

The method of claim 1, wherein the tasks further comprise dynamically updating, in runtime, the software application from a first version to a second version, locally, at the client computing device, wherein providing access includes mapping one or more portions of the server metadata to one or more sets of client data residing locally at the client computing device.

### Claim 3 (depends on 1)

The method of claim 1, wherein customizing a software application comprises customizing based on preferences of a user having access to the client computing device, wherein the user serves as a representative of a tenant of a plurality of tenants in a multi-tenant environment, wherein the dynamic customization maintains compatibility between the software application and the preferences of the user.

### Claim 4 (depends on 1)

The method of claim 1, further comprising offering access to a development tool from the client computing device such that the one or more tasks are performed locally at the client computing device using the development tool without employing local tools.

### Claim 5 (depends on 1)

The method of claim 1, wherein the access is further allowed through the metadata entity, wherein the metadata entity to update, in runtime, the server metadata by dynamically accessing compiled metadata at the database that is communicatively part of the cloud network, wherein the compiled metadata includes routines for execution by subscribers associated with the tenant, wherein the routines offer pre-coded programs to provide programming language style interface extensions to application programming interfaces (APIs), wherein a subscriber is to invoke and execute a portion of the server metadata in a virtual machine associated with the software application.

### Claim 6 (depends on 1)

The method of claim 1, further comprising dynamically customizing the software application by altering a metadata setup of the software application.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
receiving through the cloud network by the server computing a device, a request from a client computing device to access structural server metadata relating to the data object of the data structure at the client computing device, to perform generating the software application using the requested structural server metadata; and
providing through the cloud network by the server computing device, access to the requested structural server metadata to the client computing device through the cloud network in response to the request.

### Claim 8 (depends on 1)

The method of claim 1, wherein providing access includes mapping one or more portions of the server metadata to one or more sets of client data residing locally at the client computing device.

### Claim 9

A system comprising:
a server computing device having a memory to store instructions, and a processing device to execute the instructions to facilitate a mechanism to perform operations comprising
receiving a request from a client computing device to access descriptive server metadata specific to a data object of a data structure to perform one or more tasks including customizing a software application at the client computing device, wherein the server metadata is stored at a database coupled to the server computing device, and wherein the client computing device includes a mobile computing device offering a user interface for placing the request with the server computing device over a cloud network;
allowing the client computing device to access the requested server metadata directly from the database, wherein the server metadata is customized for the client computing device such that the customized server metadata include one or more pre-coded routines associated with the one or more tasks; and
facilitating performance of the one or more tasks at the client computing device, using the data object and the customized server metadata having the one or more pre-coded routines, wherein the one or more pre-coded routines are invoked, as facilitated by a metadata entity, to perform the one or more tasks, wherein the metadata entity dynamically updates the customized server metadata based on changes in the one or more tasks the one or more pre-coded routines, wherein the one or more tasks include dynamically generating one or more mobile applications at the client computing device through access to the customized server metadata based on the one or more pre-coded routines.

### Claim 10 (depends on 9)

The system of claim 9, wherein the operations further comprise dynamically updating, in runtime, the software application from a first version to a second version, locally, at the client computing device, wherein providing access includes mapping one or more portions of the server metadata to one or more sets of client data residing locally at the client computing device.

### Claim 11 (depends on 10)

The system of claim 10, wherein the dynamic updating is performed based on preferences of a user having access to the client computing device, wherein the user serves as a representative of a tenant of a plurality of tenants in a multi-tenant environment, wherein the dynamic updating is to maintain compatibility between the software application and the preferences of the user.

### Claim 12 (depends on 9)

The system of claim 9, wherein the operations further comprise offering access to a development tool from the client computing device such that the tasks are performed locally at the client computing device using the development tool.

### Claim 13 (depends on 9)

The system of claim 9, wherein the access is further allowed through the metadata entity, wherein the metadata entity to update, in runtime, the server metadata by dynamically accessing compiled metadata at the database that is communicatively part of the cloud network, wherein the compiled metadata includes routines for execution by subscribers associated with the tenant, wherein the routines offer pre-coded programs to provide programming language style interface extensions to application programming interfaces (APIs), wherein a subscriber to invoke and execute a portion of the server metadata in a virtual machine associated with the software application.

### Claim 14 (depends on 9)

The system of claim 9, wherein the operations further comprise dynamically customizing the software application by altering a metadata setup of the software application.

### Claim 15

A machine-readable medium having stored thereon instructions which, when executed by a processor, cause the processor to perform one or more operations comprising:
receiving a request from a client computing device to access descriptive server metadata specific to a data object of a data structure to perform one or more tasks including customizing a software application at the client computing device, wherein the server metadata is stored at a database coupled to the server computing device, and wherein the client computing device includes a mobile computing device offering a user interface for placing the request with the server computing device over a cloud network;
allowing the client computing device to access the requested server metadata directly from the database, wherein the server metadata is customized for the client computing device such that the customized server metadata include one or more pre-coded routines associated with the one or more tasks; and
facilitating performance of the one or more tasks at the client computing device using the data object and the customized server metadata having the one or more pre-coded routines, wherein the one or more pre-coded routines are invoked, as facilitated by a metadata entity, to perform the one or more tasks, wherein the metadata entity dynamically updates the customized server metadata based on changes in the one or more tasks the one or more pre-coded routines, wherein the one or more tasks include dynamically generating one or more mobile applications at the client computing device through access to the customized server metadata based on the one or more pre-coded routines.

### Claim 16 (depends on 15)

The machine-readable medium of claim 15, wherein the operations further comprise dynamically updating, in runtime, the software application from a first version to a second version, locally, at the client computing device, wherein providing access includes mapping one or more portions of the server metadata to one or more sets of client data residing locally at the client computing device.

### Claim 17 (depends on 16)

The machine-readable medium of claim 16, wherein the dynamic updating is performed based on preferences of a user having access to the client computing device, wherein the user serves as a representative of a tenant of a plurality of tenants in a multi-tenant environment, the dynamic customization to maintain compatibility between the software application and the preferences of the user.

### Claim 18 (depends on 15)

The machine-readable medium of claim 15, wherein the operations further comprise offering access to a development tool from the client computing device such that the one or more tasks are performed without seeking development services from one or more software developers.

### Claim 19 (depends on 15)

The machine-readable medium of claim 15, wherein the access is further allowed through the metadata entity, wherein the metadata entity to update, in runtime, the server metadata by dynamically accessing compiled metadata at the database that is communicatively part of the cloud network, wherein the compiled metadata includes routines for execution by subscribers associated with the tenant, the routines to offer pre-coded programs to provide programming language style interface extensions to application programming interfaces (APIs), a subscriber to invoke and execute portions of the server metadata in one or more virtual machines associated with the software application.

### Claim 20 (depends on 15)

The machine-readable medium of claim 15, the operations further comprising dynamically customizing the software by altering a metadata setup of the software application, wherein altering includes at least one of adding, in runtime, one or more new metadata items to the metadata setup or modifying or removing, in runtime, one or more existing metadata items to the metadata setup.
