Skip header and go to main content

Classification Resources
 

 [Search a list of Patent Appplications for class 719]   CLASS 719,ELECTRICAL COMPUTERS AND DIGITAL PROCESSING SYSTEMS: INTERPROGRAM COMMUNICATION OR INTERPROCESS COMMUNICATION (IPC)
Click here for a printable version of this file

SECTION I - CLASS DEFINITION

GENERAL STATEMENT OF THE CLASS SUBJECT MATTER

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.

SECTION II - REFERENCES TO OTHER CLASSES

SEE OR SEARCH CLASS:

235Registers,   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.
307Electrical Transmission or Interconnection Systems,   appropriate subclassesfor a residual transmission or interconnection system not classifiable elsewhere, including interconnection systems, per se.
326Electronic Digital Logic Circuitry,   appropriate subclassesfor generic digital logic devices, circuitry, and subcombinations thereof, wherein operations other than arithmetical are performed upon discrete electrical signals representing a value normally described by numerical digits.
329Demodulators,   appropriate subclassesfor data demodulators.
332Modulators,   appropriate subclassesfor data modulators.
340Communications: 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.
341Coded 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).
342Communications: 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.
345Computer 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.
358Facsimile and Static Presentation Processing,   various subclassesfor the recordation, reproduction and transmission of images of arbitrary composition.
360Dynamic 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.
365Static Information Storage and Retrieval,   appropriate subclassesfor addressable static singular storage elements or plural singular storage elements of the same type (i.e., the internal elements of memory, per se).
369Dynamic 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.
370Multiplex Communications,   appropriate subclasses for the simultaneous transmission of two or more signals over a common medium, particularly subclasses 351 through 430for multiplex switching.
375Pulse or Digital Communications,   appropriate subclassesfor generic pulse or digital communication systems and synchronization of clocking signals from input data.
377Electrical Pulse Counters, Pulse Dividers, or Shift Registers: Circuits and Systems,   appropriate subclassesfor generic electric circuits for pulse counting.
379Telephonic Communications,   appropriate subclassesfor two-way electrical communication of intelligible audio information of arbitrary content over a communication link.
380Cryptography,   appropriate subclassesfor cryptographic apparatus or process in general which includes electric signal modification.
381Electrical Audio Signal Processing Systems and Devices,   appropriate subclassesfor wired one-way audio systems, per se.
382Image 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.
388Electricity: Motor Control Systems,   cross-reference art collection 907.5for computer or processor control of DC motor acceleration or speed.
455Telecommunications,   appropriate subclasses for modulated carrier wave communication, per se, and subclass 26.1 for subject matter which blocks access to a signal source or otherwise limits usage of modulated carrier equipment.
700Data 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).
701Data Processing: Vehicles, Navigation, and Relative Location,   appropriate subclassesfor applications of computers in vehicular and navigational environments.
702Data Processing: Measuring, Calibrating, or Testing,   appropriate subclassesfor applications of computers in measuring and testing.
704Data Processing: Speech Signal Processing, Linguistics, Language Translation, and Audio Compression/Decompression,   subclasses 1 through 10for applications of computers in linguistics, subclasses 200-278 for applications of computers in speech signal processing, and subclasses 500-504 for applications of computers in audio compression/decompression.
705Data Processing: Financial, Business Practice, Management, or Cost/Price Determination,   appropriate subclassesfor applications of computers and calculators in business and management environments.
706Data 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).
707Data Processing: Database, Data Mining, and File Management or Data Structures,   particularly subclasses 609 through 686for database maintenance including backup synchronization, subclasses 687 through 704 for database integrity, subclasses 781 through 789 for access control to a database or file in a computer environment, subclasses 790 through 812 for database design including data structures and database structure management, subclasses 813 through 820 for garbage collection in database environments, and subclasses 821 through 831 for file management, file systems, and file directory structures.
708Electrical Computers: Arithmetic Processing and Calculating,   subclasses 1 through 9for hybrid computers; subclasses 100-714 for calculators, digital signal computer, and arithmetical and logical computer, per se; and subclasses 800-854 for electric analog computers.
709Electrical 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.
710Electrical 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.
711Electrical Computers and Digital Processing Systems: Memory,   subclasses 100 through 173for accessing or controlling memories that are peripherals.
712Electrical Computers and Digital Processing Systems: Processing Architecture and Instruction Processing (e.g., Processors),   subclasses 1 through 43for digital data computer system architectures such as multiple instruction multiple data (MIMD) computers, vector and array computers, and single-chip computers.
713Electrical Computers and Digital Processing Systems: Support,   subclasses 1 and 2 for digital processing system initialization and configuration (e.g., initializing, set-up, resetting, etc.); subclass 100 for reconfiguring digital data computer system (e.g., changing system settings, etc.); subclasses 150-181 for multiple computer communication protection by cryptography; subclass 187 for computer program modification detection by cryptography; subclass 188 for computer virus detection by cryptography; subclasses 300-340 for computer power control; subclasses 400 and 401 for synchronization of computer clocks, data timing signals, or pulses; and subclasses 500-503 for computer clock, pulse, or timing signal or analysis.
714Error 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.
715Data Processing: Presentation Processing of Document, Operator Interface Processing, and Screen Saver Display Processing,   appropriate subclassesfor document processing.
718Electrical Computers and Digital Processing Systems: Virtual Machine Task or Process Management or Task Management/Control,   appropriate subclassesfor administering over processor or job execution in a digital data processing system.
726Information Security,   subclasses 1 through 36for information security in computers or digital processing system.

SECTION III - GLOSSARY

ACCESS

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).

BUS

A conductor used for transferring data, signals, or power.

COMPUTER

A machine that inputs data, processes data, stores data, and outputs data.

DATA

A representation of information in a coded manner suitable for communication, interpretation, or processing.

Address data: data that represent or identify a source or destination.

Instruction data: data that represent an operation and identify its operands, if any.

Status data: data that represent conditions of data, digital data processing systems, computers, peripherals, memory, etc.

Streamed data: data consisting of a more-or-less continuous series of bits, bytes, or other small, structurally uniform units.

User data: data other than address data, instruction data, or status data.

DATA PROCESSING

See PROCESSING, below.

DIGITAL DATA PROCESSING SYSTEM

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.

SUBCLASSES

[List of Patents for class 719 subclass 310]    310MISCELLANEOUS:
 This subclass is indented under the class definition.  Subject matter not provided for in any of the above subclasses of this class.

SEE OR SEARCH CLASS:

715Data Processing: Presentation Processing of Document, Operator Interface Processing, and Screen Saver Display Processing,   subclasses 804 through 805for interwindow links and communication.
  
[List of Patents for class 719 subclass 311]    311COMMON GATEWAY INTERFACE PROGRAM COMMUNICATION:
 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.
  
[List of Patents for class 719 subclass 312]    312INTERPROGRAM COMMUNICATION USING SHARED MEMORY:
 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.
  
[List of Patents for class 719 subclass 313]    313INTERPROGRAM COMMUNICATION USING MESSAGE:
 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.

SEE OR SEARCH THIS CLASS, SUBCLASS:

312,for sending a message between processes via a shared memory.
314,for sending a message between processes using a queue.
  
[List of Patents for class 719 subclass 314]    314Message using queue:
 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.
  
[List of Patents for class 719 subclass 315]    315Object oriented message:
 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.

SEE OR SEARCH CLASS:

307Electrical Transmission or Interconnection Systems,   appropriate subclassesfor residual subject matter related to transmission or interconnection systems.
340Communications: 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.
342Communications: 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.
358Facsimile and Static Presentation Processing,   various subclassesfor the recordation, reproduction and transmission of images of arbitrary composition.
370Multiplex Communications,   appropriate subclassesfor the simultaneous transmission of two or more signals over a common medium.
375Pulse or Digital Communications,   various subclassesfor digital communications processing including modulating, demodulating, encoding, decoding, and phase locking.
379Telephonic Communications,   various subclassesfor two-way electrical communication of audio information of arbitrary content.
380Cryptography,   appropriate subclassesfor concealing, obscuring and extracting intelligence by for example coding and decoding.
455Telecommunications,   appropriate subclassesfor modulated carrier wave communications, per se.
707Data Processing: Database, Data Mining, and File Management or Data Structures,   subclasses 790 through 812for database design including data structures and database structure management.
709Electrical Computers and Digital Processing Systems: Multicomputer Data Transferring,   appropriate subclassesfor multicomputing, data transferring, per se, particularly subclasses 213-219 for transferring data via shared memory.
710Electrical Computers and Digital Data Processing Systems: Input/Output,   subclass 105 for bus protocols, per se.
712Electrical Computers and Digital Processing Systems: Processing Architectures and Instruction Processing (e.g., Processors),   subclasses 220 through 248for processing control inclu ding branch instruction processing.
714Error Detection/Correction and Fault Detection/Recovery,   subclasses 746 through 797for correcting errors by transmittal data such as party checking and cyclical redundancy checking.
715Data Processing: Presentation Processing of Document, Operator Interface Processing, and Screen Saver Display Processing,   subclasses 804 through 805for interwindow links and communication, and subclasses 835-839 for icons and metaphoric icon objects.
  
[List of Patents for class 719 subclass 316]    316Managed object system:
 This subclass is indented under subclass 315.  Subject matter comprising means or steps for managing an object system that may include distributed object systems or distributed object models.

SEE OR SEARCH CLASS:

707Data Processing: Database, Data Mining, and File Management or Data Structures,   subclasses 790 through 812for database design including data structures and database structure management.
  
[List of Patents for class 719 subclass 317]    317Agent:
 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.
  
[List of Patents for class 719 subclass 318]    318EVENT HANDLING OR EVENT NOTIFICATION:
 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.
(1) Note. Event handling, event notification and system level exception processing are properly classified here.
  
[List of Patents for class 719 subclass 319]    319DATA TRANSFER BETWEEN OPERATING SYSTEMS:
 This subclass is indented under the class definition.  Subject matter comprising means or steps for communication of data or messages between discrete operating systems.
(1) Note. An operating system is a software platform on top of which application programs run.
  
[List of Patents for class 719 subclass 320]    320HIGH LEVEL APPLICATION CONTROL:
 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.
  
[List of Patents for class 719 subclass 321]    321DEVICE DRIVER COMMUNICATION:
 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.

SEE OR SEARCH CLASS:

358Facsimile 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.
709Electrical Computers and Digital Processing Systems: Multicomputer Data Transferring,   subclasses 220 through 222for configuring a network computer.
710Electrical Computers and Digital Data Processing Systems: Input/Output,   subclasses 1 through 74for Input/Output data processing, per se, including subclass 8 for generalized peripheral configuration, per se, subclass 10 for address assignment and configuration initialization, subclass 11 for protocol selection, and subclass 20 for concurrent Input/Output computer and data transfer.
711Electrical Computers and Digital Processing Systems: Memory,   subclasses 100 through 173,for managing memory and for memory accessing and control.
  
[List of Patents for class 719 subclass 322]    322Multimedia device driver:
 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.
  
[List of Patents for class 719 subclass 323]    323Video graphics device driver:
 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 video graphics hardware devices.
  
[List of Patents for class 719 subclass 324]    324Virtual device driver (VxD):
 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.
  
[List of Patents for class 719 subclass 325]    325RAID metadriver:
 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.
  
[List of Patents for class 719 subclass 326]    326SCSI device driver:
 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.
  
[List of Patents for class 719 subclass 327]    327Device driver configuration:
 This subclass is indented under subclass 321.  Subject matter comprising means or steps for configuring or matching a peripheral hardware device with its appropriate corresponding software device driver using lists, device description tables, device managers, device libraries, dynamic matching techniques, device binding techniques, and the like.
(1) Note. Device driver configuration or matching may be performed dynamically at any time, but is typically performed subsequent to the physical installation of a new peripheral hardware device.
(2) Note. Device driver matching may also be performed during the booting process, and whenever the computer system is configured or reconfigured.
  
[List of Patents for class 719 subclass 328]    328APPLICATION PROGRAM INTERFACE (API):
 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.

SEE OR SEARCH CLASS:

703Data Processing: Structural Design, Modeling, Simulation, and Emulation,   subclasses 23 through 28for emulation of computer system components.
705Data Processing: Financial Business Practice, Management, or Cost/Price Determination,   various subclassesfor applications of computers and calculators in business and management environments.
707Data Processing: Database, Data Mining, and File Management or Data Structures,   subclasses 790 through 812for database design including data structures and database structure management.
709Electrical Computers and Digital Processing Systems: Multicomputer Data Transferring,   appropriate subclassesfor multicomputer data transferring, per se.
710Electrical Computers and Digital Data Processing Systems: Input/Output,   subclasses 360 through 269for interrupt processing, per se.
712Electrical Computers and Digital Processing Systems: Processing Architectures and Instruction Processing (e.g., Processors),   subclasses 220 through 248for computer control including branch instruction computer.
715Data Processing: Presentation Processing of Document, Operator Interface Processing, and Screen Saver Display Processing,   subclasses 733 through 749for operator interface aspects of workgroup for plural users or sites; subclasses 764-862 for on-screen workspaces or objects; and subclasses 804-805 for interwindow links and communication.
717Data Processing: Software Development Installation, and Management,   subclass 100 through 167for software development tools, per se.
  
[List of Patents for class 719 subclass 329]    329Data transfer between application windows:
 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.

SEE OR SEARCH CLASS:

715Data Processing: Presentation Processing of Document, Operator Interface Processing, and Screen Saver Display Processing,   subclasses 804 through 805for interwindow links and communication.
  
[List of Patents for class 719 subclass 330]    330REMOTE PROCEDURE CALL (RPC):
 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.

SEE OR SEARCH CLASS:

709Electrical Computers and Digital Processing Systems: Multicomputer Data Transferring,   subclasses 201 through 203for a distributed data computer.
712Electrical Computers and Digital Processing Systems: Processing Architectures and Instruction Processing (e.g., Processors),   subclasses 220 through 248for computer control including branch instruction handling.
717Data Processing: Software Development Installation, and Management,   subclass 100 through 167for software development tools, per se.
  
[List of Patents for class 719 subclass 331]    331DYNAMIC LINKING, LATE BINDING:
 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.

SEE OR SEARCH CLASS:

717Data Processing: Software Development, Installation, and Management,   subclasses 162 through 167for generic linking.
  
[List of Patents for class 719 subclass 332]    332Object oriented dynamic linking, late binding:
 This subclass is indented under subclass 331.  Subject matter wherein dynamic linking or binding occurs in the context of an object oriented environment.
  

FOREIGN ART COLLECTIONS

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.]

FOR 168INTERPROGRAM COMMUNICATION, INTERPROCESS COMMUNICATION:
 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.
  
FOR 169Device driver communication:
 Foreign art collection including 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.
  
FOR 170Application program interfacing (API):
 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.
  
FOR 171Object-oriented messaging:
 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.
  
FOR 172Remote procedure calling (RPC):
 Foreign art collection including subject matter comprising means or steps for invoking a target procedure in a remote address space.
  
FOR 173Dynamic linking, late binding:
 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.