This class provides for an electrical computer or digital data
processing system or corresponding data processing method including
apparatus or steps for exchanging data or messages between two executing
programs or processes, independent of the hardware used
in the communication.

(1)Note. Classification herein requires more than nominal
recitation of the data or message exchange between two executing
programs or processes.

(2)Note. If the programs or processes are drawn to specific
processing environments such as database/file processing, business processing, or
networking, these programs or processes are classified
elsewhere.

SCOPE OF THE CLASS

This class is limited to digital data processing systems and
functions for communication between programs or processes.

Hardware mechanisms such as bus transaction processing and
data transfer between computers and digital data processing systems
are classified elsewhere. See the SEE OR SEARCH CLASS notes
below.

LINES WITH OTHER CLASSES

A. Electrical Computers and Data Processing Systems, Related
Systems and Functions in General

This class is for communication between programs or processes.
Communication between computers or digital data processing systems
and peripherals is classified elsewhere. See the SEE OR
SEARCH CLASS notes below.

B. Communication Classes

The basic distinctions between this class and the communications
classes are:

(A) The subclasses here include a digital
data processing system or computer, rather than other data
communications devices, and

(B) The communication herein is between
programs or processes in a digital data processing system or computer. See
the SEE OR SEARCH CLASS notes below.

Overall combinations directed to a system for performing communications
functions only is classified in the appropriate communication class. See
the SEE OR SEARCH CLASS notes below for examples.

Preprocessing or postprocessing of signals in a data transfer
to effect a particular communications method (e.g., modulating, demodulating, encoding, decoding, or phase
locking) is classified in the appropriate communications
class. See the SEE OR SEARCH CLASS notes below for examples.

C. Other Classes

Subject matter relating to transmission or interconnection
systems not classifiable herein and not appropriate for the communication
classes should be classified in the residual class for all transmission
or interconnection systems. See the SEE OR SEARCH CLASS
notes below.

Registers, appropriate subclassesfor basic machines and associated indicating mechanisms
for ascertaining the number of movements of various devices and
machines, plus machines made from these basic machines alone (e.g., cash
registers, voting machines), and in combination
with various perfecting features, such as printers and
recording means, and for various data bearing record controlled systems.

Communications: Electrical, subclasses 1.1 through 16.1 for controlling
one or more devices to obtain a plurality of results by transmission
of a designated one of plural distinctive control signals over a
smaller number of communication lines or channels, particularly
subclasses 2.1 through 2.8for path selection, subclass 2.81
for tree or cascade selective communication, subclasses
3.1-3.9 for communication systems where
status of a controlled device is communicated, subclasses
4.2 and 4.21 for synchronizing selective communication
systems, subclasses 9.1-9.17
for addressing, and subclasses 12.1-12.55
for pulse responsive actuation in selective communication.

Coded Data Generation or Conversion,
subclasses 50 through 172for electrical pulse and digit code converters (e.g., systems
for originating or emitting a coded set of discrete signals or translating
one code into another code wherein the meaning of the data remains
the same but the formats may differ).

Communications: Directive Radio Wave
Systems and Devices (e.g., Radar, Radio
Navigation), appropriate subclassesfor systems and processes for transmission or reception
of radio wave energy for obtaining or utilizing information (using
radio wave transmitters or receivers), as to an
object, or as to the directional characteristics of the
radio wave energy, per se.

Computer Graphics Processing and Selective Visual
Display Systems,
subclasses 530 through 574for visual display, subclasses 30 through
111 for the selective control of two or more light generating or
light controlling display elements in accordance with a received image
signal, and sublcasses 804-805 for interwindow
links and communication.

Dynamic Magnetic Information Storage or Retrieval, appropriate subclassesfor record carriers and systems wherein information
is stored and retrieved by interaction with a magnetic medium and
there is relative motion between said magnetic medium and a transducer, for
example, a magnetic disk drive device, and control
thereof, per se.

Dynamic Information Storage or Retrieval, appropriate subclassesfor record carriers and systems wherein information
is stored and retrieved by interaction with a medium and there is
relative motion between a medium and a transducer.

Image Analysis, appropriate subclassesfor operations performed on image data with the aim
of measuring a characteristic of an image, detecting variations, detecting
structures, or transforming the image data, and
for procedures for analyzing and categorizing patterns present in
image data.

Data Processing: Generic Controls Systems
or Specific Applications,
subclasses 1 through 89for generic data processing control system, apparatus, or
process, particularly subclasses 2 through 7 for plural
processors in a digital control system application, and
subclasses 90 through 306 for applications of computers in various
environments where there is significant claim recitation of the
data computer system or calculating computer and only nominal recitation
of an external art environment (where significant structure
of an external device is claimed, classification is in
the appropriate device class).

Data Processing: Artificial Intelligence, appropriate subclassesfor subject matter directed to artificial intelligence
data computer which is disclosed or claimed in plural diverse arts
both in combination and in the alternative (e.g., digital
data computer system for use in image analysis or electrical audio
signal computer, and for artificial intelligence per se).

Electrical Computers and Digital Processing Systems: Multicomputer
Data Transferring, appropriate subclassesfor transferring data or instruction information
between a plurality of computers wherein the computers employ the data
or instructions before or after transferring and the employing affects
said transfer of data or instruction information and for the synchronization
of plural processors even if the transferring employs peripherals, e.g., modems, or line
adaptors.

Electrical Computers and Digital Data Processing
Systems: Input/Output,
subclasses 1 through 74for transferring data from one or more peripherals
to one or more computers for the latter to process, store, or
further transfer or for transferring data from the computers to
the peripherals, and subclasses 100 - 132 for
data transferring among memories, processors, and buses
of a computer.

Error Detection/Correction and Fault
Detection/Recovery,
subclasses 1 through 57for methods and apparatus for increasing the probability
of a system performing correctly, and subclasses 746-797
for correcting errors in the transmitted data such as parity checking
and cyclical redundancy checking.

To obtain entry to, or to locate, read
into memory, and make ready for, some operation, for
example, regarding disks, files, records, and
network entry procedures.

APPLICAITON PROGRAM

A computer program designed to perform a certain type of
work, such as an application to manipulate text, numbers, graphics, or
a combination of these elements. An application differs
from an operating system (which runs a computer), a
utility (which performs maintenance or general-purpose
chores), and a language (with which computer
programs are created).

An arrangement of processor(s) in combination
with either memory or peripherals, or both, performing
data processing.

eNTITY

A computer or process that can be treated as a unit and, often, as
a member of a particular category or type.

ENVIRONMENT

A set of resources made available to the user of a system which
defines specifications such as the command path (where
to look for files), the system prompt and, sometimes, the
location of resources or working files.

INFORMATION

Meaning that a human being assigns to data by means of the
conventions applied to that data.

INTERFACE

A connection between two elements so that they can work
with one another.

MEMORY

A functional unit to which data can be stored and from which
data can be retrieved.

MULTITASKING

A mode of operation in which a computer works on more
than one task at a time.

NETWORK

A group of computers and associated devices that are connected
by communications facilities which exists to provide computer users
with the means of communicating and transferring information electronically. Some types
of communication are simple user-to-user messages; others, of
the type known as distributed processes, can involve several
computers and the sharing of workloads or cooperative efforts in
performing a task.

OBJECT

A variable comprising routines and data that is treated as
a discrete entity.

OPERATING SYSTEM

Software responsible for controlling the allocation and usage
of hardware resources such as memory, central processing
unit (CPU) time, disk space, and
peripheral devices. The operating system is the foundation
on which applications programs (e.g., word
processing, spreadsheets) are built.

PERIPHERAL

A functional unit that transmits data to or receives
data from a computer to which it is coupled.

PROCESS

A coherent sequence of steps undertaken by a program to
manipulate data such as an internal or external data-transfer
operation, handling an interrupt, or evaluation of
a function.

PROCESSING

Methods or apparatus performing systematic operations upon
data or information exemplified by functions such as data or information
transferring, merging, sorting, and computing (e.g., arithmetic
operations or logical operations).

(1)Note. In this class, the glossary term data
is used to modify processing in the term data processing; whereas
the term digital data processing system refers to a machine performing
data processing.

(2)Note. In an effort to avoid redundant constructions, in
this class, where appropriate, the term address
data processing is used in place of address data data processing.

PROCESSOR

A functional unit that interprets and executes instruction data.

PROTOCOL

A set of rules or processes which enable computers to exchange
information with as little error as possible.

RESOURCE

Any part of computer system or a network, such
as a disk drive, printer, or memory, that
can be allotted to a program or process while it is running. In
programming, a resource can be used by more than one program
or in more than one place in a program. For example, dialog boxes, bitmaps, and
fonts are resources in many windowing programs.

ROUTING

Receiving transmitted messages within a network and forwarding
them to their correct destinations over a available route selected
according to a predetermined criteria.

SERVER

A computer running administrative software that controls
access to all or part of a network and its resources (such
as disk drives and printers). A computer acting
as a server makes resources available to computers acting as workstations
on the network.

SYNCHRONIZATION

Matching of timing between separate computers or among
the components of a system so that all are coordinated.

TASK

A standalone application or a subprogram that is run
as an independent entity.

THREAD

A path of processing execution within a larger process or
program.

TRANSFER

The movement of data from one location to another or the
passing of program control from one portion of a program to another.

This subclass is indented under the class definition. Subject matter wherein a server program, or script is executed
at the request of a client program through a web browser.

(1)Note. User input information is passed to the programs/scripts
using the Common Gateway Interface (CGI) convention and the server
side CGI program sends the result back to the client using dynamic html.

This subclass is indented under the class definition. Subject matter comprising means or steps for communication
between plural processes or application programs using a memory
which can be shared between those processes or programs.

This subclass is indented under the class definition. Subject matter comprising means or steps for communication
between processes or application programs using pieces of information which
suggest actions to be taken or indicate conditions or indicate that
an event has occurred.

(1)Note. Sending a message to an object is equivalent to calling
a procedure in traditional programming languages, except that the
actual code executed is selected at run-time depending on the class
of the object. For example, in response to a message to draw an
object, the code invoked would be different if the object were a
circle or a square.

This subclass is indented under subclass 313. Subject matter comprising means or steps for communication
between processes or application programs using messages that are
lined up in a particular order.

(1)Note. Examples of queues are FIFOs, named pipes, streams,
and the like.

This subclass is indented under subclass 313. Subject matter comprising means or steps for communication
between objects (e.g., a message
tells a receiving object what to do) wherein a method or
member function of a receiving object is invoked or called by a
sending method of a sending object and the message passing may involve
passing actual parameters (e.g., either
by reference or by value) to the target object.

(1)Note. Object-oriented data structure principles
employed in message passing are properly classified here. Mere
recitations to object oriented data structures, per se, do
not automatically cause classification in this subclass. Object-oriented data
structures, per se, are classified elsewhere, see
the SEE OR SEARCH CLASS notes below.

(2)Note. Messaging techniques abound in the data communications
arts in the form of signaling protocols, message protocols, semaphore
techniques, token passing, etc. An object
oriented paradigm will present generalized functionality in a neatly
reusable or customizable program code "module", therefore, a
concept search for a messaging technique should also consider the
other communications classes as appropriate.

Communications: Electrical,
subclasses 1.1 through 16.1for controlling one or more devices to obtain a plurality
of results by transmission of a designated one of plural distinctive control
signals over a smaller number of communication lines or channels.

Communications: Directive Radio Wave
Systems and Devices (e.g., Radar, Radio
Navigation), various subclassesfor systems and processes for transmission or reception
of radio wave energy for obtaining or utilizing information (using
radio wave transmitters or receivers), as to an
object, or as to the directional characteristics of the
radio wave energy, per se.

This subclass is indented under subclass 313. Subject matter comprising means or steps for using a software
program that automatically performs some information gathering or
processing task in the background on behalf of another entity which
would otherwise require some form of manual or directed intervention.

This subclass is indented under the class definition. Subject matter comprising means or steps for communication
of events between application programs or processes or within the
context of application programs or processes.

This subclass is indented under the class definition. Subject matter comprising means or steps for communication
of data, commands, or messages between at least
one controlling script, macro or other high level controlling
program, and at least one controlled application program.

(1)Note. The high-level control program, macro, or
script automatically controls the flow of input commands or data
to the application program so as to provide automated high level
control of at least one application program.

This subclass is indented under the class definition. Subject matter comprising means or steps for communication
between application programs or operating systems and callable interfacing
programs (i.e., device driver
programs) which further facilitate communication or control
of peripheral hardware devices such as printers, disk drives, tape
drives, CRT displays, etc.

(1)Note. Subject matter under this subclass is directed
to high-level communication from an operating system or
application program to a device driver program (i.e., program
to program). Device drivers are software programs
which are custom designed to handle the low-level implementation
details required to directly access and control a particular peripheral device (i.e., program
to hardware). See the appropriate peripheral device
area for details of how the low-level control of the hardware
device is implemented.

Facsimile and Static Presentation Processing,
subclasses 1.1 through 1.18,various subclasses for the recordation, reproduction
and transmission of images of arbitrary composition, particularly
for a static presentation computer per se, and specifically subclasses
1.14 and 1.15 for reliability and data communication, per
se.

This subclass is indented under subclass 321. Subject matter comprising means or steps for communication
between application programs or operating systems and callable interfacing programs (i.e., device
driver programs) which further facilitate communication
or control of peripheral multimedia hardware devices, such as
CD-ROM and audio peripheral devices.

This subclass is indented under subclass 321. Subject matter comprising software which virtualizes physical
hardware by intercepting application requests to use the hardware
and arbitrating between requests to access physical hardware from
different applications.

(1)Note. In the more extreme case, VxDs can
provide a "virtual" device that is not actually present at all, by
emulating the behavior of a hardware device. VxDs, by virtue
of their privileged access to the system, can also be used
to implement software monitors, debuggers, and
to modify the behavior of other software on the system.

This subclass is indented under subclass 321. Subject matter comprising means or steps for communication
between an operating system and meta device drivers associated with
a RAID (Redundant Array of Independent Disks) disk
drive array.

This subclass is indented under subclass 321. Subject matter comprising means or steps for communication
between application programs or operating systems and callable interfacing programs (i.e., device
driver programs) which further facilitate communication
or control of SCSI (Small Computer System Interface) peripheral
devices.

This subclass is indented under the class definition. Subject matter comprising a set of routines, procedures, or
interfaces which facilitate requests or calls from one or more application programs
to lower-level operating system routines.

(1)Note. This subclass is directed to the tools which
allow application programs to utilize an operating system, application
programs for specific information processing tasks, such
as, simulation and design. Program development
environments, business data processing, database
systems, machine translation and document processing are
classified elsewhere, see the SEE OR SEARCH CLASS notes
below.

(2)Note. This subclass is directed to the tools which
allow application programs to utilize an operating system. Programming
tools, per se, are classified elsewhere, SEE
OR SEARCH CLASS notes below.

(3)Note. Object oriented data structure principles may
be employed in the development of an API and are properly classified
here. Object oriented data structures, per se, are
classified elsewhere. See the SEE OR SEARCH CLASS notes
below.

(4)Note. An application program interface (API) is
a set of programming tools included with a software program or operating
system that allows a programmer to write applications that work
with that program or operating system. APIs save programmers
much work by giving them easy ways to "hook into" the various capabilities
of a program or operating system, instead of "reinventing
the wheel" themselves.

This subclass is indented under subclass 328. Subject matter comprising means or steps for effecting
communication or data transfer between application programs or processes executing
within a graphical windowing environment.

This subclass is indented under the class definition. Subject matter comprising means or steps for invoking a
target procedure in a remote address space.

(1)Note. A remote procedure call is distinguished from local
subroutine calls because the target procedure of a RPC is invoked
in a remote address space, therefore, pointers or references to
local data are invalid within the address space of the remote machine.
Addressing, per se, branch instruction processing and compilers,
per se, are classified elsewhere.

(2)Note. For clarification, remote procedure calls are used in
a distributed programming environment, communication with a remote
environment is simplified in that programmers of distributed applications
need not concern themselves with implementation details of communication
with another address space, as support for the remote procedure
call is provided by a kernel of each machine, distributed data processing,
per se, and software development tools, however, are classified
elsewhere.

(3)Note. The subject matter of this subclass is directed to remote
procedure calls (RPC), although RPCs look a lot like local procedure
calls to the programmer, there are slight differences in the calling semantics.
In addition, branching is a related topic. A concept search on RPC, branching
or local procedure calling should consider these related topics.

This subclass is indented under the class definition. Subject matter wherein functions contained within one or
more executable code libraries (e.g., a dynamic link library or
DLL) are called as needed at runtime by one or more application
programs.

(1)Note. For clarification, dynamic linking is distinguished
from static linking in that very large programs can be executed in
a limited memory space by loading and invoking external executable
libraries only when needed at run time. The main executable program
is much smaller than would result if the libraries and object files
had been statically linked prior to runtime. In addition, multiple
applications may reference a single dynamic link library (DLL).
This eliminates redundant code and results in a more modular system.
Also, existing programs can be readily updated without recompilation
by providing updated DLLs.

(2)Note. In implicit dynamic linking, links between calls in
the application and functions in the DLL are resolved at link time.
In explicit dynamic linking, links between calls in the application
and functions in the DLL are resolved at run time.

The definitions below correspond to abolished subclasses from
which these collections were formed. See the Foreign Art Collection
schedule of this class for specific correspondences. [Note:
The titles and definitions for indented
art collections include all the details of the one(s) that are hierarchically
superior.]

Foreign art collection including subject matter
comprising means or steps for exchanging data or messages between
two executing programs or processes, independent of the hardware
used in the communication.

Foreign art collection including subject matter
comprising a set of routines, procedures, or interfaces which facilitate
requests or calls from one or more application programs to lower-level
operating system routines.

Foreign art collection including subject matter
comprising means or steps for communication between objects (e.g.,
a message tells a receiving object what to do) wherein a method
or member function of a receiving object is invoked or called by
a sending method of a sending object and the message passing may
involve passing actual parameters (i.e., for example, either by
reference or by value) to the target object.

Foreign art collection including subject matter
wherein functions contained within one or more executable code libraries
(e.g., a dynamic link library or DLL) are called as needed at runtime
by one or more application programs.

This page is produced by the Office of Classification Support (Office of Patent Classification) for the Reference Tools Project.

The Inventors
Assistance Center is available to help you on patent
matters.Send questions about USPTO programs and services
to theUSPTO
Contact Center (UCC). You can suggest USPTO webpages
or material you would like featured on this section by E-mail
to the webmaster@uspto.gov.
While we cannot promise to accommodate all requests, your suggestions
will be considered and may lead to other improvements on the
website.