Electrical computers and digital processing systems: multicomput – Computer-to-computer session/connection establishing
Reexamination Certificate
2000-06-02
2002-02-19
Luu, Le Hien (Department: 2152)
Electrical computers and digital processing systems: multicomput
Computer-to-computer session/connection establishing
C709S228000, C709S230000, C345S215000, C345S215000
Reexamination Certificate
active
06349337
ABSTRACT:
TECHNICAL FIELD
This invention relates to client-server computer systems. More particularly, this invention relates to server operating systems executing on servers in the client-server computer systems.
BACKGROUND
Most people are generally familiar with computer operating systems. An operating system is the code or computer program that provides an environment in which other computer programs can run. The operating system manages the system resources, such as processing resources, memory allocation, and I/O devices, to enable other programs to easily take advantage of these resources. Some operating systems are multitasking, meaning they support concurrent operation of more than one task. A multitasking operating system divides the resources among various processes, giving each process access to memory, processing resources, and at least one execution thread.
In the client-server environment, the server operating system is also called upon to handle communication interaction with client-based applications. The client operating system locates a server and requests a connection with the server and the server allocates resources to handle requests from the client.
One well-known server operating system is the Windows NT server operating system from Microsoft Corporation. The Windows NT server operating system is a multitasking, extensible, scalable operating system that can be implemented on standard personal computers. The Windows NT server operating system is well documented. For background information, the reader is directed to the book entitled
Inside Windows NT,
which is written by Helen Custer and is published by Microsoft Press (copyright 1993). This book is incorporated by reference.
In many client-server systems, the client computer is itself a full-functioning general-purpose computer, having its own operating system, processing resources, memory resources, and so forth. Examples of such clients include workstations, desktop computers, laptops, and the like. In some client-server systems, however, the client computer is a simple machine that is implemented with less functionality than a general-purpose computer. For instance, the client might be implemented as a terminal, which typically provides just enough functionality to enable access to the server computer over a network. The terminal has no operating system; rather, the operating system and applications reside at the server, and the processing takes place at the server.
More recently, low cost computers known as “network computers” or “NCs” have been introduced as a means for providing access to a network. Network computers have a display, a keyboard, a network port, and limited processing capabilities. Network computers can provide some limited local processing, but are primarily reliant on the server for most processing. Presently available network computers are primarily configured to run applications written in Java, a language introduced by Sun Microsystems. A close cousin to the NCs is another type of low cost computer, known as “Net PCs”, which can run both Windows-based and Java-based applications.
A technology marketed under the name “WinFrame” from Citrix Systems Inc. extends the Windows NT server operating system to support multiple client-server windowing sessions for connected clients, where each session provides a windowing environment for the connected client. The WinFrame technology essentially replicates low kernel-level support routines, such as USER, CONSOLE, and GDI drivers, to provide multiple windowing sessions on the same server. Each session is tailorable to support a system configuration (i.e., display, mouse, keyboard) of a particular connected client.
With the WinFrame technology, a client can connect to the Windows NT server and begin a windowing session. To the user, it appears as if the client is a standalone Window-enabled computer that is running its own Windows-brand operating system. However, the session is actually taking place on the server computer, remote from the client, and the client is merely running a local graphical user interface to provide entry to the session. In this regard, the WinFrame technology is particularly well suited for low intelligent client computers, such as terminals and network-centric computers, because the client need not be capable of running its own operating system. However, the WinFrame technology is equally well suited for fully enabled clients.
One problem with the Citrix WinFrame technology is a lack of usability from the user perspective. Each session is bound to a particular client machine and does not consider the requirements of a user, who may in fact log on to the server from different physical machines.
To exemplify the problem, consider a common scenario. A user logs onto the Windows NT server from a client computer at the user's workplace. The workplace client is a desktop PC with a large 20″ VGA display with 1024×768 resolution. At quitting time, the user decides to temporarily halt the session and disconnects from the server. Later that evening, the user reconnects to the server from a home computer, which is a laptop computer with an 11″ color display of 640×480 resolution. When the laptop connects to the server, the Citrix WinFrame technology creates a new session for this new client machine. Since the user is employing different clients, the user is not permitted to reconnect to the old session. As a result, the user's previous session started on his/her work computer is not ported to the laptop computer because the server understands them as two distinct sessions started on two distinct machines.
Accordingly, there is a need to improve the server operating system to overcome this problem and to better focus on the needs of the user.
SUMMARY
This invention concerns a server operating system that supports multiple client-server sessions and enables a user to begin a session and later dynamically reconnect to that session even if the user employs two different clients.
According to one implementation, the operating system has a multi-user session manager to enable multiple client-server sessions on the server. The operating system further has a multi-user stack protocol manager to manage one or more protocol stacks, wherein each protocol stack facilitates communication with a corresponding client during a client-server session.
When a user connects to the server via a first client, the stack protocol manager assigns a first protocol stack to this first client-server connection. The session manager then creates a first session for the user. In the described implementation, the session is a windowing session that supports a windowing graphical user interface environment on the remote client. The session consists of various software modules to support a windowing environment, and includes various hardware drivers, such as keyboard drivers, display drivers, and protocol drivers. The drivers employed in the first session are selected to conform to the system configuration of the first client.
Sometime later, the user leaves the first session and disconnects the first client from the server. The server maintains the user's session at the server so that the user may return to it at a later time. The session can be ended, however, if the user expressly terminates the session prior to disconnecting the first computer from the server.
At a later time, the user reconnects to the server using a second client. The second client has a system configuration that is different than that of the first client. As an example scenario, the user might first log onto the server via a desktop computer at the user's workplace and then later via a laptop computer at the user's home. The second client connects to the server via a second client-server connection and the stack manager assigns a second protocol stack the second client-server connection. The session manager then begins creating a new, is second session for the user.
During this process, however, the session manager recognizes that the user is af
Graziadio Bradley J.
Momoh Oshoma
Parsons, Jr. John E.
Lee & Hayes PLLC
Luu Le Hien
Microsoft Corporation
Prieto Beatriz
LandOfFree
Maintaining a first session on a first computing device and... does not yet have a rating. At this time, there are no reviews or comments for this patent.
If you have personal experience with Maintaining a first session on a first computing device and..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Maintaining a first session on a first computing device and... will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2950798