# US 2021/0344778 A1 · Multi-Role Group Inheritance for Interacting Computer Systems

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

- Number: US 2021/0344778 A1
- Document ID: US20210344778A1
- Status: Published application
- Kind: A1
- Application number: 16/862,335
- Filed: 2020-04-29
- Published: 2021-11-04
- Earliest claimed: 2020-04-29
- Inventors: So-Ming Daniel Shia
- Web page: https://patentgrep.com/patent/US20210344778A1

## CPC

- G06F 8/36: Software reuse
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- G06F 8/60: Software deployment
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 69/03: {Protocol definition or specification (protocol conformance testing H04L1/244)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

In some embodiments, a method receives a first interaction group that includes a plurality of roles. The plurality of roles comprise a first plurality of interaction modules that each define an activity. The method receives a second interaction group that includes a second plurality of interaction modules. The second interaction group identifies the first interaction group, and interaction modules in the second plurality of modules identify a role in the plurality of roles of the first interaction group. Then, an activity of the second plurality of interaction modules is generated for the second interaction group by retrieving the activity of an interaction module in the first plurality of interaction modules identified by a respective role for the interaction module in the second plurality of interaction modules.

## Claims

### Claim 1

A method comprising:
storing, by a computing device, a first group that includes a plurality of roles in a memory, wherein the plurality of roles comprise software code for a first plurality of modules that each define an activity that is performed upon executing the software code;
storing, by the computing device, a second group that includes software code for a second plurality of modules in the memory, wherein the second group identifies the first group, and modules in the second plurality of modules identify a role in the plurality of roles of the first group; and
generating, by the computing device, software code for an activity of the second plurality of modules for the second group by retrieving the activity of a module in the first plurality of modules identified by a respective role for the module in the second plurality of modules, wherein the activity of the second plurality of modules is performed upon executing the software code for the activity.

### Claim 2 (depends on 1)

The method of claim 1, wherein the activity that each module performs comprises a plurality of actions.

### Claim 3 (depends on 2)

The method of claim 2, wherein:
a first action in a first module comprises a communication with a second action in a second module.

### Claim 4 (depends on 2)

The method of claim 2, wherein:
order relationships specify an execution order between the plurality of actions for each module.

### Claim 5 (depends on 2)

The method of claim 2, wherein:
a first action in a first module does not communicate with a second action in a second module.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
sending a software specification for a respective activity in the module in the second plurality of modules to each respective execution computer.

### Claim 7 (depends on 1)

The method of claim 1, wherein an action in a module in the second plurality of modules is replaced by a new action.

### Claim 8 (depends on 1)

The method of claim 1, wherein a new action is added to a module in the second plurality of modules.

### Claim 9 (depends on 1)

The method of claim 1, wherein:
the first group includes a template parameter, and
a value is included in the second group for the replacement of the template parameter.

### Claim 10 (depends on 1)

The method of claim 1, wherein the generated activity of the second plurality of modules is loaded into a same memory space in the memory as used by the first plurality of modules.

### Claim 11 (depends on 1)

The method of claim 1, wherein:
the memory comprises a first memory space and a second memory space that is different from the first memory space,
the generated activity of the second plurality of module for a module in the second plurality of modules is loaded into the first memory space, and
module in the first plurality of modules is loaded into the second memory space.

### Claim 12 (depends on 1)

The method of claim 1, wherein each group in the first plurality of modules is identified by a string.

### Claim 13 (depends on 1)

The method of claim 1, wherein each role is identified by a string in the first plurality of modules.

### Claim 14 (depends on 1)

The method of claim 1, wherein:
the first plurality of modules, the second plurality of modules, the plurality of roles, and the activity are defined in a graphical language.

### Claim 15 (depends on 1)

The method of claim 1, wherein the first plurality of modules, the second plurality of modules, the plurality of roles, and the activity are defined in a textual language.

### Claim 16

A non-transitory computer-readable storage medium having stored thereon computer executable instructions, which when executed by a computing device, cause the computing device to be operable for:
storing a first group that includes a plurality of roles in a memory, wherein the plurality of roles comprise software code for a first plurality of modules that each define an activity that is performed upon executing the software code;
storing a second group that includes software code for a second plurality of modules in the memory, wherein the second group identifies the first group, and modules in the second plurality of modules identify a role in the plurality of roles of the first group; and
generating software code for an activity of the second plurality of modules for the second group by retrieving the activity of a module in the first plurality of modules identified by a respective role for the module in the second plurality of modules, wherein the activity of the second plurality of modules is performed upon executing the software code for the activity.

### Claim 17 (depends on 16)

The non-transitory computer-readable storage medium of claim 16, wherein the activity that each module performs comprises a plurality of actions.

### Claim 18 (depends on 16)

The non-transitory computer-readable storage medium of claim 16, further operable for:
sending a software specification for a respective activity in the module in the second plurality of modules to each respective execution computer.

### Claim 19 (depends on 16)

The non-transitory computer-readable storage medium of claim 16, wherein:
the first group includes a template parameter, and
a value is included in the second group for the replacement of the template parameter.

### Claim 20

An apparatus comprising:
one or more computer processors; and
a computer-readable storage medium comprising instructions for controlling the one or more computer processors to be operable for:
storing a first group that includes a plurality of roles in a memory, wherein the plurality of roles comprise software code for a first plurality of modules that each define an activity that is performed upon executing the software code;
storing a second group that includes software code for a second plurality of modules in the memory, wherein the second group identifies the first group, and modules in the second plurality of modules identify a role in the plurality of roles of the first group; and
generating software code for an activity of the second plurality of modules for the second group by retrieving the activity of a module in the first plurality of modules identified by a respective role for the module in the second plurality of modules, wherein the activity of the second plurality of modules is performed upon executing the software code for the activity.
