Electrical computers and digital data processing systems: input/ – Input/output data processing – Input/output access regulation
Reexamination Certificate
1999-06-18
2001-08-21
Lee, Thomas (Department: 2782)
Electrical computers and digital data processing systems: input/
Input/output data processing
Input/output access regulation
C710S040000, C709S241000, C379S093010, C379S220010, C379S229000
Reexamination Certificate
active
06279054
ABSTRACT:
BACKGROUND OF THE INVENTION
(1) Field of the Invention
Arbitration of access to a shared resource. More specifically, arbitration of access to a shared communication port in a system not supporting shared process space.
(2) Related Art
Any time a resource is shared between multiple applications, some form of arbitration is required. A classic type of shared resource is a communication port permitting access to a modem line which carries incoming and outgoing calls to or from one or more applications operating on a host system. It is important that an incoming call is delivered to the correct target application. In systems with operating systems that permit shared process space, such as 16 bit Windows, the arbiter has been instantiated as a dynamic link library (DLL) accessible by all interested applications. This was possible because process space, libraries, memory and variables could all be shared by different applications. Thus, an incoming call was readily routed by the DLL to a correct target application.
Unfortunately for the arbitrator, with the development of 32 bit operating systems such as Windows NT and Windows 95 sharing of process space is no longer permitted. Because DLLs are now loaded into separate process spaces, the arbitrator can not easily be a DLL in itself. If it were, each application using the arbitrator would load its own separate copy of the arbitrator, and each copy of the arbitrator would have to interact with other copies of itself.
However, having the arbitrator as a separate process creates problems, too. As a separate process, the arbitrator cannot communicate as easily as a DLL can with an application. Some form of inter-process communication (IPC) would be needed, instead of the easier method of calling application programming interface (API) functions in a DLL. Thus, the arbitration issues arise again.
Some efforts have been made through APIs to address this issue. These efforts have generally failed to yield satisfactory results. For example, Microsoft's telephony application programming interface, TAPI, provides rudimentary arbitration. Specifically, assuming a system in which five applications are listening for a call, the application first in time will be handed an incoming call. If that application determines the call is not for it, it bears the responsibility of returning the call to TAPI, which will then forward it on to the next application in time. Thus, if a call is directed to the fifth application to listen on the port, if any of the first four applications fail to hand the call-back off to TAPI, the correct target application will never receive the call. Additionally, TAPI is only supported by Windows NT 4.0 and Windows 95 and later versions. Earlier versions have no arbitration support.
In view of the foregoing, it would be desirable to be able to arbitrate access to a modem port to insure reliable message delivery and to permit outgoing calls at appropriate times.
BRIEF SUMMARY OF THE INVENTION
A method and apparatus for arbitrating access to a shared resource in a system that does not support shared process space is disclosed. An arbitrator process watches a port for an incoming call having associated therewith an identification string. When an incoming call is received, the identification string of the incoming call is compared to a set of identification strings corresponding to applications listening for an incoming call. If a matching string is located, the arbitrator process duplicates the handle to the port and passes the duplicated handle to the application corresponding to the matching string.
REFERENCES:
patent: 5307347 (1994-04-01), Duault et al.
patent: 5442691 (1995-08-01), Price et al.
patent: 5471522 (1995-11-01), Sells et al.
patent: 5574888 (1996-11-01), Panditji et al.
patent: 5628030 (1997-05-01), Tuckner
patent: 5671442 (1997-09-01), Feeney et al.
patent: 5675831 (1997-10-01), Caputo
patent: 5699414 (1997-12-01), Telibasa
patent: 5790895 (1998-08-01), Krontz et al.
patent: 6038309 (2000-03-01), Ram et al.
IBM Technical Disclosure Bulletin, “Method of monitoring open files for any application on a personal computer”, vol. 29, No. 7, Dec. 1986, p.2966-2968.*
Eves, Ken, “Unofficial FAQ about ip_masquerade for Linux” [online], Jan. 1996 [retrieved 2000-7-6], Retrieved from the Internet <URL:http://www.indyramp.com/masq/ip_masquerade.txt>.
Blakely , Sokoloff, Taylor & Zafman LLP
Intel Corporation
Lee Thomas
Peyton Tammara
LandOfFree
Arbitrator for multiple processes sharing a port does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Arbitrator for multiple processes sharing a port, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Arbitrator for multiple processes sharing a port will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2518364