Method and apparatus for coordination of client/server processes -> Monitor Keywords
Fresh Patents
Monitor Patents Patent Organizer File a Provisional Patent Browse Inventors Browse Industry Browse Agents Browse Locations
site info Site News  |  monitor Monitor Keywords  |  monitor archive Monitor Archive  |  organizer Organizer  |  account info Account Info  |  
10/25/07 - USPTO Class 709 |  32 views | #20070250565 | Prev - Next | About this Page  709 rss/xml feed  monitor keywords

Method and apparatus for coordination of client/server processes

USPTO Application #: 20070250565
Title: Method and apparatus for coordination of client/server processes
Abstract: The invention provides for the coordination of client/server processes. One or more embodiments provide a completion object comprised of various states of completion of a client request. The completion object may be manipulated to transition from one state to another by both the client and server. The following states of completion may be provided: idle, ready, active, completing, completed, and acknowledged. In the idle state, the completion object is obtained by the client (by constructing a new object or retrieving an existing object that has been recycled). In the ready state, the request has been initialized but not yet issued to the server or I/O device. In the active state, the server processes the I/O request. In the completing state, the server has completed the I/O operations requested but has not yet stored the results. In the completed state, the server stores the results to be returned to the client and notifies the client. At the acknowledged state, the client examines the results, performs additional operations and frees up the completion object for use by another client request. Depending on the state of the completion object, a request to cancel the I/O operations may require varying actions. The completion object provides the ability to easily and quickly determine where in the completion process an I/O request is. Further, when a client request is canceled, the completion object provides the ability to easily identify the actions necessary to properly cancel the request. (end of abstract)



Agent: Hickman Palermo Troung & Becker LLP And Apple Inc. - San Jose, CA, US
Inventor: Martin A. Minow
USPTO Applicaton #: 20070250565 - Class: 709203000 (USPTO)

Related Patent Categories: Electrical Computers And Digital Processing Systems: Multicomputer Data Transferring, Distributed Data Processing, Client/server

Method and apparatus for coordination of client/server processes description/claims


The Patent Description & Claims data below is from USPTO Patent Application 20070250565, Method and apparatus for coordination of client/server processes.

Brief Patent Description - Full Patent Description - Patent Application Claims
  monitor keywords

CROSS REFERENCE TO RELATED APPLICATION

[0001] This application is a continuation of U.S. patent application Ser. No. 10/157,764 filed May 28, 2002, now U.S. Pat. No. 7,233,972 issued Jun. 19, 2007; which is a continuation of U.S. patent application Ser. No. 09/161,112 filed Sep. 28, 1998, now U.S. Pat. No. 6,418,464 issued Jul. 9, 2002, which is incorporated herein by reference as if fully set forth herein, under 35 U.S.C. .sctn.120.

FIELD OF THE INVENTION

[0002] This invention relates to the field of computer software, and, more specifically, to completing input/output transactions.

[0003] Portions of the disclosure of this patent document contain material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure as it appears in the Patent and Trademark Office file or records, but otherwise reserves all copyright rights whatsoever. Apple, Macintosh, AppleTalk, AppleScript, and all Apple-based trademarks and logos are trademarks or registered trademarks of Apple Computer, Inc. in the United States and other countries.

BACKGROUND ART

[0004] A computer interacts with and communicates with various peripheral devices (also referred to as input-output (I/O) devices) such as printers, scanners, video displays, keyboards, disk drives, modems, CD drives, etc. I/O devices convert information from one physical representation to another for processing and storage within a computer. Thus, I/O devices are the means by which a computer communicates with the outside world. The processing and storing of I/O device information occurs within the main memory or central processing unit (CPU) of a computer.

[0005] In modern computer operating systems, functions, operations and processes may be carried out through asynchronous interaction between client and server processes. For example, a client may be a high-level device driver (a software component that contains the computer code needed to use an attached device) and a server may be the software component that directly manages the physical device. Through a client process, the client requests a specific function, action, or resource of the server.

[0006] One aspect of such computer operating systems is to ensure that each client request completes and is only acted on exactly once (i.e., no request may be lost and none may be processed twice). For example, a request may complete normally or it may complete abnormally due to user action, a hardware failure, or a time-out (i.e., the specified time limit for the server to respond to the client request expired). The underlying operating system must also permit clients to terminate requests after they have been issued without regard to the precise state of the request (e.g., the request may not have been forwarded to the server, or may already have been completed when the client's request to terminate the request was received). Furthermore, in a multi-processing system, there may be multiple clients and servers executing on independent hardware processors (so called "symmetric multiprocessing") that can initiate, process, abort, or complete a request, and the operating system must ensure that exactly one of these competing processes actually operates on the request even if it had been initiated, processed, or aborted on a different processor.

[0007] One prior art method to ensure process completion and single execution consists of the client setting a flag to indicate whether the server process should continue or be terminated. In such a method, the server must periodically examine the status of the flag.

[0008] Prior art methods do not precisely track client I/O requests resulting in two process paths of completion, one path from the client, and one path for the server. Further, the notification to clients (regarding completion of a request) and notification to the server (of a standard request or a request to terminate a standard request) is dependent on the type of request, and the procedure that implements and completes the request. Thus, when a request is initiated by a client, the client waits for the completion of the request and is not informed and cannot obtain the status of the request. For example, some implementations of the UNIX operating system has a client start and wait or sleep approach. In such an approach, a client request is initiated and then waits for the server to complete the request. The client enters a "sleep" mode until the request is completed. Alternatively, the Macintosh environment, when a client request is started, the client specifies the address of a subroutine to be called when the request is completed by the server. If no address is provided, the client process waits for completion of the process and performs no other functions.

[0009] In the prior art, the client is unable to pick and choose which processes to complete or wait for subsequent to initiating the request. Consequently, there is no defense against a process that is initiated and never completes (e.g., due to a hardware failure, time-out, etc.). Further, the various stages of completion of a client request are intertwined specifically to the implementation of the client request or the server response.

SUMMARY OF THE INVENTION

[0010] The invention provides for the coordination of client/server processes. One aspect of computer operating systems is to ensure that a request to perform an I/O operation or server operation completes and is only acted on exactly once (i.e., no request should be lost and none should be processed twice). The underlying operating system should also permit clients to terminate requests after they have been issued without regard to the precise state of the request (e.g., the request may not have been forwarded to the server, or may already have been completed when the client's request to terminate the request was received). Furthermore, in a multi-processing system, there may be multiple clients and servers executing on independent hardware processors (so called "symmetric multiprocessing") that can initiate, process, abort, or complete a request, and the operating system must ensure that exactly one of these competing processes actually operates on the request even if it had been initiated, processed, or aborted on a different processor.

[0011] One or more embodiments of the invention provide for a completion object in an object oriented environment comprised of various states of completion of a client request. The completion object may be manipulated to transition from one state to another by both the client and server. One or more embodiments provide for the following states of completion: idle, ready, active, completing, completed, and acknowledged. In the idle state, the completion object is obtained by the client (by constructing a new object or retrieving an existing object that has been recycled). In the ready state, the request has been initialized but not yet issued to the server or I/O device. In the active state, the server processes the I/O request. In the completing state, the server has completed the I/O operations requested but has not yet stored the results. In the completed state, the server stores the results to be returned to the client and notifies the client. In the acknowledged state, the client examines the results, performs additional operations and frees up the completion object for use by another client request.

[0012] Depending on the state of the completion object, a request to cancel the I/O operations may require varying actions. The completion object provides the ability to easily and quickly determine where in the completion process an I/O request is. Further, when a client request is canceled, the completion object provides the ability to easily identify the actions necessary to properly cancel the request.

BRIEF DESCRIPTION OF THE DRAWINGS

[0013] FIG. 1 is a block diagram of one embodiment of a computer system capable of providing a suitable execution environment for an embodiment of the invention.

[0014] FIG. 2 demonstrates the various states of a completion object as the object progresses through the various transitions as a result of actions by a client and a server.

[0015] FIG. 3 illustrates the processing of a client request and when states are changed according to one or more embodiments of the invention.

DETAILED DESCRIPTION OF THE INVENTION

[0016] The invention is a method and apparatus for coordination of client/server processes. In the following description, numerous specific details are set forth to provide a more thorough description of embodiments of the invention. It is apparent, however, to one skilled in the art, that the invention may be practiced without these specific details. In other instances, well known features have not been described in detail so as not to obscure the invention.

Embodiment of Computer Execution Environment (Hardware)

[0017] An embodiment of the invention can be implemented as computer software in the form of computer readable code executed on a general purpose computer such as computer 100 illustrated in FIG. 1, or in the form of bytecode class files running on such a computer. A keyboard 110 and mouse 111 are coupled to a bidirectional system bus 118. The keyboard and mouse are for introducing user input to the computer system and communicating that user input to processor 113. Other suitable input devices may be used in addition to, or in place of, the mouse 111 and keyboard 110. I/O (input/output) unit 119 coupled to bi-directional system bus 118 represents such I/O elements as a printer, A/V (audio/video) I/O, etc.

Continue reading about Method and apparatus for coordination of client/server processes...
Full patent description for Method and apparatus for coordination of client/server processes

Brief Patent Description - Full Patent Description - Patent Application Claims

Click on the above for other options relating to this Method and apparatus for coordination of client/server processes patent application.
###
monitor keywords

How KEYWORD MONITOR works... a FREE service from FreshPatents
1. Sign up (takes 30 seconds). 2. Fill in the keywords to be monitored.
3. Each week you receive an email with patent applications related to your keywords.  
Start now! - Receive info on patent apps like Method and apparatus for coordination of client/server processes or other areas of interest.
###


Previous Patent Application:
A system and method for automatically assigning an extension number to a telephone number to enable precise, efficient and scalable tracking of the origin of a telephone call from a prospect to an advertiser within a performance advertising multi-advertis
Next Patent Application:
Method and system for providing a modular server on usb flash storage
Industry Class:
Electrical computers and digital processing systems: multicomputer data transferring or plural processor synchronization

###

FreshPatents.com Support
Thank you for viewing the Method and apparatus for coordination of client/server processes patent info.
IP-related news and info


Results in 0.12203 seconds


Other interesting Feshpatents.com categories:
Accenture , Agouron Pharmaceuticals , Amgen , AT&T , Bausch & Lomb , Callaway Golf 174
filepatents (1K)

* Protect your Inventions
* US Patent Office filing
patentexpress PATENT INFO