Patents Examined by Majid A. Banankhah
  • Patent number: 6625639
    Abstract: A clustered computer system includes multiple computer systems (or nodes) on a network that can become members of a group to work on a particular task. Each node includes group state data that represents the status of all members of the group. A group state data update mechanism in each node updates the group state data at acknowledge (ACK) rounds, so that all the group state data in all nodes are synchronized and identical if all members respond properly during the ACK round. Each node also includes a main thread and one or more work threads. The main thread receives messages from other computer systems in the group, and routes messages intended for the work thread to either a response queue or a work queue in the work thread, depending on the type of the message. If the message is a response to a currently-executing task, the message is placed in the response queue. Otherwise, the message is placed in the work queue for processing at a later time.
    Type: Grant
    Filed: November 12, 1999
    Date of Patent: September 23, 2003
    Assignee: International Business Machines Corporation
    Inventors: Robert Miller, Vicki Lynn Morey, Kiswanto Thayib, Laurie Ann Williams
  • Patent number: 6622155
    Abstract: A system and method is disclosed for synchronizing threads of execution within a distributed computing environment. Threads of execution within a computer spawn additional threads of execution on separate computers within the distributed computing environment. Each thread may compete for shared resources within the computing environment, thereby creating a need to avoid deadlocks among the local threads. Whereas locals thread exists within a single computing platform, logical threads are created to relate local threads to each other and thereby span the platforms on which the local threads reside. Distributed monitors are created to control access to shared resources by local threads based on logical thread affiliations. Locks within the distributed monitors are assigned to logical threads instead of local threads. Local threads that are each part of the same logical thread will all have access to the shared resource when the lock is assigned to the logical thread.
    Type: Grant
    Filed: November 24, 1998
    Date of Patent: September 16, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: Bruce Kenneth Haddon, William Hayden Connor
  • Patent number: 6615243
    Abstract: A system for programming/controlling various audio/video devices coupled to one another via a bus structure, through the use of a single macro key utilizes an addressing structure. Each various audio/video device includes memory and a processor/controller for the memory and bus management. The memory is divided into master data memory and slave data memory depending on the role of the audio/video device. Data transfer over the bus only contains dummy numbers that are used as macro command addresses, with the macro data itself processed and stored in the various audio/video device. This eliminates the need to store the different commands of the various audio/video devices in the device chosen to initiate the macro. For each macro, one audio/video device is the master device while the remaining audio/video devices are slaves.
    Type: Grant
    Filed: April 1, 1999
    Date of Patent: September 2, 2003
    Assignee: Thomson Licensing S.A.
    Inventors: Magdy Megeid, Robert Freudenmann
  • Patent number: 6615245
    Abstract: A system and method for enabling a hierarchal collaboration of devices across a common communication channel, e.g., the Internet. Embodiments of the present invention define a plurality of devices, e.g., computer systems operating as servers. Each device is capable of receiving one or more inquiries from at least one user and locally providing data in response to such inquiries. However, when the locally available data is not responsive to the user's inquiry, the inquiry is redirected to another device that has responsive data and the response is received therefrom. In accordance with a significant feature of a preferred embodiment, a common resource exchange stores status data corresponding to each device. This status data, e.g., data corresponding to the ability and availability of each device to provide a response, is used to determine where (to which device) the inquiry is redirected.
    Type: Grant
    Filed: April 6, 1999
    Date of Patent: September 2, 2003
    Inventors: Michael E. McFall, Carl Sturmer, Kelly Graves
  • Patent number: 6615231
    Abstract: The present invention provides for directing requests to specific processing using an inclusion list. The inclusion list contains a list of methods that an associated process, program, or module is capable of executing. A request contains at least a method and a resource. A server, upon receiving the request, identifies the process module or handler that is associated with the resource by the file extension of the resource. After the process is identified, an inclusion list is examined to determine if the process is capable of performing the identified method. If the method is listed in the inclusion list, then processing is directed to the identified process, which performs the indicated method with regard to the identified resource. If the method is not listed in the inclusion list, then control of the request is not provided to the process.
    Type: Grant
    Filed: December 15, 1999
    Date of Patent: September 2, 2003
    Assignee: Microsoft Corporation
    Inventors: Brian J. Deen, Van C. Van, Henry L. Sanders
  • Patent number: 6609098
    Abstract: An airline travel planning system is described. The system includes a server computer executing a server process including a search process to search for set of pricing solutions in accordance with at least one destination and at least one origin. The search process represents the set of pricing solutions in the form of a directed acyclic graph. The system also includes a client computer executing a client process on the set of pricing solutions. The client process has a manipulation process that manipulates the set of pricing solutions in response to user preferences.
    Type: Grant
    Filed: July 2, 1998
    Date of Patent: August 19, 2003
    Assignee: ITA Software, Inc.
    Inventor: Carl G. DeMarcken
  • Patent number: 6604150
    Abstract: A computerized method for dynamically extending a main application comprising a first user-interface-control by at least one supplementary application is proposed. The method comprises a first-step of monitoring system-messages of a system-message-queue and determines if a monitored system-messages comprises a user-interaction-request for creating said first user-interface-control of said main application. In the affirmative case, an indicator is set that said user-interaction-request for creating said first user-interface-control has been detected. Said method comprises a second-step monitoring application-messages of an application-message-queue and associates in response to setting said indicator the next one or multitude of application-message with said monitored system-message.
    Type: Grant
    Filed: January 5, 2000
    Date of Patent: August 5, 2003
    Assignee: International Business Machines Corporation
    Inventors: Alexander Gebhart, Dieter Gottschall, Juergen Jung, Silke Wastl
  • Patent number: 6604122
    Abstract: A database processing request is performed by distributed processes. Each of the distributed processes involved in the task performs some data processing function and includes process identifying information along with a substantive task message to another process. Ultimately, messages along with the identifying information reach a controlling process which then deduces from that identifying information whether all of the messages from all processes involved in the task have completed their part of the task. If it deduces they have, the task is complete.
    Type: Grant
    Filed: November 3, 1998
    Date of Patent: August 5, 2003
    Assignee: Telefonaktiebolaget LM Ericsson (publ)
    Inventor: Hans Nilsson
  • Patent number: 6604123
    Abstract: A computer operating system in which transfer of control of executing threads between protection domains is implemented using specific portals dedicated to the particular transfer of control between two protection domains. The transfer of control may also include parameter manipulation. A server registers a portal specification with a portal manager, the portal specification defining the behavior of portals which transfer control to the server. Thereafter, when a client application desires service from the server, the client application requests instantiation of a portal which will transfer control of an execution thread from the client application protection domain to the server protection domain. Upon receipt of the request, the portal manager dynamically generates portal code and updates a portal table associated with the client application, thus instantiating the portal.
    Type: Grant
    Filed: May 13, 1999
    Date of Patent: August 5, 2003
    Assignee: Lucent Technologies Inc.
    Inventors: John Louis Bruno, Jose' Carlos Brustoloni, Eran Gabber, Abraham Silberschatz, Christopher Allen Small
  • Patent number: 6604125
    Abstract: Executing a thread unaware or non-thread-safe application in a multi-threaded environment is potentially hazardous. If multiple instances of the thread unaware application are executed concurrently in the same process space, as may be the case in a multi-threaded environment, one instance may try to modify or overwrite the information used by the other instance, which can lead to serious errors. To enable a thread unaware application to be executed safely in a multi-threaded environment, multiple thread pools are implemented. That is, for each thread-unaware or non-thread-safe application, a separate thread pool is defined and associated with the application. Unlike other thread pools, though, this thread pool has its maximum number of threads parameter set to “1”. By limiting the number of threads in the pool to 1, it is guaranteed that there will be no more than one instance of the thread unaware application executing at any one time.
    Type: Grant
    Filed: May 19, 2000
    Date of Patent: August 5, 2003
    Assignee: Sun Microsystems, Inc.
    Inventor: Ruslan Belkin
  • Patent number: 6601083
    Abstract: A multitasking data processing system having a plurality of tasks and a shared resource and a method of controlling allocation of shared resources within a multitasking data processing system are disclosed. In response to a resource request for a portion of a shared resource by a particular task among the plurality of tasks, a determination is made whether or not granting the resource request would cause a selected level of resource allocation to be exceeded. In response to a determination that granting the resource request would not cause the selected level of resource allocation to be exceeded, the resource request is granted. However, in response to a determination that granting the resource request would cause the selected level of resource allocation to be exceeded, execution of the particular task is suspended for a selected penalty time. In one embodiment of the present invention, the shared resource is a memory.
    Type: Grant
    Filed: August 29, 1996
    Date of Patent: July 29, 2003
    Inventor: Frederick John Reznak
  • Patent number: 6598171
    Abstract: The present invention includes a memory subsystem comprising at least two semiconductor devices, including at least one memory device, connected to a bus, where the bus includes a plurality of bus lines for carrying substantially all address, data and control information needed by said memory devices, where the control information includes device-select information and the bus has substantially fewer bus lines than the number of bits in a single address, and the bus carries device-select information without the need for separate device-select lines connected directly to individual devices. The present invention also includes a protocol for master and slave devices to communicate on the bus and for registers in each device to differentiate each device and allow bus requests to be directed to a single or to all devices. The present invention includes modifications to prior-art devices to allow them to implement the new features of this invention.
    Type: Grant
    Filed: March 28, 1997
    Date of Patent: July 22, 2003
    Assignee: Rambus Inc.
    Inventors: Michael Farmwald, Mark Horowitz
  • Patent number: 6594698
    Abstract: A method, apparatus, and article of manufacture for dynamically binding shared resources among I/O nodes is disclosed. The method comprises the steps of de-allocating resources requested by an initiating node from a responding node, allocating resources not requested by the initiating node and reachable by the responding node to the responding node, de-allocating resources allocated to the second node from the first node, and allocating unallocated resources reachable by the first node to the first node. The article of manufacture comprises a program storage device tangibly embodying program steps executable by a computer for performing the foregoing method steps. The apparatus comprises a data storage resource having a plurality of storage resources, a first I/O node and a second I/O node.
    Type: Grant
    Filed: September 25, 1998
    Date of Patent: July 15, 2003
    Assignee: NCR Corporation
    Inventors: Kit M. Chow, Niels Haahr Hornekær, Morten Skøien With
  • Patent number: 6594683
    Abstract: Apparatus, methods, and computer program products are disclosed that improve the performance of multi-threaded computer applications that use objects (within an object collection) which require exclusive thread access. The invention monitors interrelationships between the objects in the object collection and provides mechanisms to lock the minimal set of these objects for the exclusive thread access. When these objects are locked, independent or unrelated objects are left unlocked and can, in turn, be locked by other threads. Because a minimal set of objects are locked other threads that access the object collection are less likely to be blocked by the lock. Thus, these other threads are more likely to be able to simultaneously access objects in the object collection.
    Type: Grant
    Filed: September 16, 1999
    Date of Patent: July 15, 2003
    Assignee: Sun Microsystems, Inc.
    Inventors: John L. Furlani, Alexander R. Ohlson
  • Patent number: 6591279
    Abstract: A method, apparatus, and article of manufacture for providing computer-based notifications of real world events over a network. The system includes client computers, proxy server computers, and device server computers. The proxy server computer receives notification profiles including both sensor conditions and associated actions from the client computers. The notification profiles are then stored in a user and profile database on the proxy server computer. The proxy server computer receives an indication from a sensor that a real world event has occurred, and then matches the received indication against the sensor conditions in the stored notification profiles. The associated actions are performed in response to a match between the received indication and the sensor conditions, wherein the associated actions include transmitting a notification message to one or more of the client computers and the notification message includes a digital image of the real world event.
    Type: Grant
    Filed: April 23, 1999
    Date of Patent: July 8, 2003
    Assignee: International Business Machines Corporation
    Inventors: Michael Lawrence Emens, Reiner Kraft, Neelakantan Sundaresan
  • Patent number: 6587865
    Abstract: In a computer system, a method and apparatus for scheduling activities' access to a resource with minimal involvement of the kernel of the operating system. More specifically, a “next bid” is maintained, and this parameter identifies the highest bid for the resource by any activity not currently accessing the resource. The accessing activity then compares its bid, which can be time varying, with the “next bid” to determine whether it should release the resource to another activity. The “next bid” can be accessed without any system calls to the operating system. This allows the activity to determine whether to relinquish control to the system without the necessity of communication between the two. Likewise, the operating system can access the bid of the accessing activity without explicit communication. This allows the system to determine whether to preempt the accessing activity without the necessity of communication between the two.
    Type: Grant
    Filed: September 21, 1998
    Date of Patent: July 1, 2003
    Assignee: International Business Machines Corporation
    Inventors: Tracy Jay Kimbrel, Marc Alan Auslander, David Joel Edelsohn, Hubertus Franke, Orran Yaakov Krieger, Bryan Savoye Rosenburg, Robert William Wisniewski
  • Patent number: 6584487
    Abstract: A method, system, and apparatus for loading and managing tasks within a process instance on a computer system. The present embodiment novelly distinguishes groups of threads as a task and manages the execution of the threads in the task in the manner specified in a configuration file. The configuration file contains names of tasks and configuration information associated with each task. For example the order of execution of tasks may be defined to depend on the progress of the execution, such as the state, of one or more other tasks. The termination of a single task or multiple tasks may be managed by the present embodiment. The output from a task may be directed to a computer-based input/output (I/O) device, such as a monitor, or to a file, or may be discarded.
    Type: Grant
    Filed: November 16, 1999
    Date of Patent: June 24, 2003
    Assignee: Hewlett-Packard Development Company, L.P.
    Inventor: Michael L. Saboff
  • Patent number: 6584498
    Abstract: The invention provides a method and system for dynamic preloading of web pages. In a system having a page server for transmitting pages upon request and a page client (or “web browser”) for requesting pages and presenting those pages to an operator, the page client dynamically identifies links subsequent to the loaded page and preloads pages identified by those links for subsequent presentation to the operator, so that the preloaded pages are preloaded dynamically in response to operator selections and are available for presentation to the operator when ultimately selected.
    Type: Grant
    Filed: September 13, 1996
    Date of Patent: June 24, 2003
    Assignee: Planet Web, Inc.
    Inventor: Julien Tan Nguyen
  • Patent number: 6584489
    Abstract: A method and system for scheduling the use of a computer system resource using a resource planner and a resource provider are provided. In a preferred embodiment, a resource is scheduled for use by a plurality of consumer entities. Each consumer entity may request the commitment of a share of the resource. The method and system use representations of resource usage policy, present commitments of shares of the resource, and present commitments of specified amounts of the resource over a specified period of time. The method and system first receive a request from a consumer entity for the commitment of a specified share of the resource. In response, the method and system determine whether the specified share of the resource should be committed to the requesting consumer entity. This determination is based on the representations of resource usage policy and present commitments of shares of the resource.
    Type: Grant
    Filed: March 11, 1998
    Date of Patent: June 24, 2003
    Assignee: Microsoft Corporation
    Inventors: Michael B. Jones, Paul J. Leach, Richard P. Draves, Jr., Joseph S. Barrera, III, Steven P. Levi, Richard F. Rashid, Robert P. Fitzgerald
  • Patent number: 6581088
    Abstract: A clustered enterprise Java™ distributed processing system is provided. The distributed processing system includes a first and a second computer coupled to a communication medium. The first computer includes a Java™ virtual machine (JVM) and kernel software layer for transferring messages, including a remote Java™ virtual machine (RJVM). The second computer includes a JVM and a kernel software layer having a RJVM. Messages are passed from a RJVM to the JVM in one computer to the JVM and RJVM in the second computer. Messages may be forwarded through an intermediate server or rerouted after a network reconfiguration. Each computer includes a Smart stub having a replica handler, including a load balancing software component and a failover software component. Each computer includes a duplicated service naming tree for storing a pool of Smart stubs at a node. The computers may be programmed in a stateless, stateless factory, or a stateful programming model.
    Type: Grant
    Filed: September 23, 1999
    Date of Patent: June 17, 2003
    Assignee: Beas Systems, Inc.
    Inventors: Dean B. Jacobs, Eric M. Halpern