# US 8,752,052 B2 · Sub-dispatching application server

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

- Number: US 8,752,052 B2
- Document ID: US8752052B2
- Status: Granted
- Kind: B2
- Application number: 13/566,683
- Filed: 2012-08-03
- Published: 2012-11-22
- Granted: 2014-06-10
- Earliest claimed: 2008-10-02
- Assignees: International Business Machines Corporation
- Applicants: Ian J. Mitchell
- Inventors: Ian J. Mitchell
- Web page: https://patentgrep.com/patent/US8752052B2

## CPC

- G06F 9/5027: {the resource being a machine, e.g. CPUs, Servers, Terminals}
- G06F 9/485: {Task life-cycle, e.g. stopping, restarting, resuming execution (G06F9/4881 takes precedence)}
- G06F 2209/5018: Thread allocation
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Multiple sub-dispatched application server threads are provided in a single local process, where the multiple sub-dispatched application server threads carry out their own task dispatching. The multiple sub-dispatched application server threads are linked in the single local process using a distributed programming model.

## Claims

### Claim 1

A method for operating a transaction server with sub-dispatched application server threads comprising:
providing multiple sub-dispatched application server threads in a single local process address space, where the multiple sub-dispatched application server threads carry out their own task dispatching; and
linking the multiple sub-dispatched application server threads in the single local process address space using a distributed programming model and a scoped shared state memory.

### Claim 2 (depends on 1)

The method of claim 1, where the distributed programming model comprises a distributed program link (DPL) component and further comprising, passing, via the DPL component, an application request to a remote sub-dispatched application server thread for execution comprising passing input parameters and receiving output parameters on return, where the parameters passed are self-contained.

### Claim 3 (depends on 1)

The method of claim 1, further comprising, via the multiple sub-dispatched application server threads, preventing a single task assignment characteristic and preventing execution of arbitrary code that might suspend.

### Claim 4 (depends on 1)

The method of claim 1, where the multiple sub-dispatched application server threads execute code obeying requirements of quasi-reentrant threads, comprising preventing a thread from waiting to use operation system services that would deny other tasks on the thread an opportunity to execute.

### Claim 5 (depends on 1)

The method of claim 1, further comprising, via the multiple sub-dispatched application server threads, managing distinct sets of resources and sharing other resources.

### Claim 6 (depends on 1)

The method of claim 1, further comprising:
determining that a shared memory request is from a local sub-dispatched application server thread; and
allocating global memory to the local sub-dispatched application server thread, where scope-aware access by the multiple sub-dispatched application server threads is managed.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
determining that a link program request is not locally defined;
determining that a local sub-dispatched application server thread is available; and
invoking the link program request on the local sub-dispatched application server thread.

### Claim 8

A system, comprising:
a scoped shared state memory; and
at least one processor programmed to:
provide multiple sub-dispatched application server threads in a single local process address space, where each sub-dispatched application server thread is managed by a sub-dispatching component; and
link the multiple sub-dispatched application server threads in the single local process address space using a distributed programming model and the scoped shared state memory.

### Claim 9 (depends on 8)

The system of claim 8, where the distributed programming model comprises a distributed program link (DPL) component configured to pass an application request to a remote sub-dispatched application server thread for execution comprising passing input parameters and receiving output parameters on return, where the parameters passed are self-contained.

### Claim 10 (depends on 8)

The system of claim 8, where the processor is further programmed to, via the multiple sub-dispatched application server threads, prevent a single task assignment characteristic and prevent execution of arbitrary code that might suspend.

### Claim 11 (depends on 8)

The system of claim 8, where the multiple sub-dispatched application server threads execute code obeying requirements of quasi-reentrant threads to prevent a thread from waiting to use operation system services that would deny other tasks on the thread an opportunity to execute.

### Claim 12 (depends on 8)

The system of claim 8, where the processor is further programmed to, via the multiple sub-dispatched application server threads, manage distinct sets of resources and share other resources.

### Claim 13 (depends on 8)

The system of claim 8, where the processor is further programmed to:
determine that a shared memory request is from a local sub-dispatched application server thread; and
allocate global memory to the local sub-dispatched application server thread, where scope-aware access by the multiple sub-dispatched application server threads is managed.

### Claim 14 (depends on 8)

The system of claim 8, where the processor is further programmed to:
determine that a link program request is not locally defined;
determine that a local sub-dispatched application server thread is available; and
invoke the link program request on the local sub-dispatched application server thread.

### Claim 15

A computer program product stored on a computer readable storage device for operating a transaction server with sub-dispatched application server threads, comprising computer readable program code configured to:
provide multiple sub-dispatched application server threads in a single local process address space, where the multiple sub-dispatched application server threads carry out their own task dispatching; and
link the multiple sub-dispatched application servers threads in the single local process address space using a distributed programming model and a scoped shared state memory.

### Claim 16 (depends on 15)

The computer program product of claim 15, where the distributed programming model comprises a distributed program link (DPL) component and further comprising computer readable program code configured to pass, via the DPL component, an application request to a remote sub-dispatched application server thread for execution comprising passing input parameters and receiving output parameters on return, where the parameters passed are self-contained.

### Claim 17 (depends on 15)

The computer program product of claim 15, where the computer readable program code configured to provide the multiple sub-dispatched application server threads further comprises computer readable program code configured to provide multiple sub-dispatched program server threads that prevent a single task assignment characteristic and prevent execution of arbitrary code that might suspend.

### Claim 18 (depends on 15)

The computer program product of claim 15, where the computer readable program code configured to provide the multiple sub-dispatched application server threads comprises computer readable program code configured to provide multiple sub-dispatched program server threads that execute code obeying requirements of quasi-reentrant threads to prevent a thread from waiting to use operation system services that would deny other tasks on the thread an opportunity to execute.

### Claim 19 (depends on 15)

The computer program product of claim 15, where the computer readable program code configured to provide the multiple sub-dispatched application server threads comprises computer readable program code configured to provide multiple sub-dispatched program server threads that manage distinct sets of resources and share other resources.

### Claim 20 (depends on 15)

The computer program product of claim 15, further comprising computer readable program code configured to:
determine that a shared memory request is from a local sub-dispatched application server thread; and
allocate global memory to the local sub-dispatched application server thread, where scope-aware access by the multiple sub-dispatched application server threads is managed.

### Claim 21 (depends on 15)

The computer program product of claim 15, further comprising computer readable program code configured to:
determine that a link program request is not locally defined;
determine that a local sub-dispatched application server thread is available; and invoke the link program request on the local sub-dispatched application server thread.
