|
|
|
| United States Patent | 5678002 |
| Link to this page | http://www.wikipatents.com/5678002.html |
| Inventor(s) | Fawcett; Philip E. (Duvall, WA); Blomfield-Brown; Christopher (Seattle, WA) |
| Abstract | An automated system and method for diagnosing and resolving
computer-related problems from a product support center. The traditional
roles of the product engineer and customer are largely supplanted by
execution of specialized client/server software programs on the respective
computers. These programs exchange diagnostic and--in some cases--remedial
data over the same telephone circuit used by the engineer and customer.
The resulting system accelerates diagnosis and resolution of the
customers' problems, reduces product support costs, and improves customer
satisfaction. |
|
|
|
Title Information  |
|
|
|
|
|
Drawing from US Patent 5678002 |
|
|
System and method for providing automated customer support |
|
|
|
|
|
| Publication Date |
October 14, 1997 |
|
|
|
|
|
| Filing Date |
July 18, 1995 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Title Information  |
|
|
References  |
|
|
| *references marked with an asterisk below are user-added references |
|
U.S. References |
|
|
| Add a new US reference: |
| | Reference | Relevancy | Comments | Reference | Relevancy | Comments | 5455933 Schieve
Oct,1995 |      Your vote accepted [0 after 0 votes] | | 5392095 Siegel 399/8 Feb,1995 |      Your vote accepted [0 after 0 votes] | | 5388252 Dreste 714/46 Feb,1995 |      Your vote accepted [0 after 0 votes] | | 5367667 Wahlquist 714/32 Nov,1994 |      Your vote accepted [0 after 0 votes] | | 5365577 Davis 379/93.17 Nov,1994 |      Your vote accepted [0 after 0 votes] | | 5325156 Ulinski 399/8 Jun,1994 |      Your vote accepted [0 after 0 votes] | | 5297256 Wolstenholme
Mar,1994 |      Your vote accepted [0 after 0 votes] | | 5287505 Calvert 707/10 Feb,1994 |      Your vote accepted [0 after 0 votes] | | 5164982 Davis 379/93.17 Nov,1992 |      Your vote accepted [0 after 0 votes] | | 5084875 Weinberger
Jan,1992 |      Your vote accepted [0 after 0 votes] | | 4823343 Takahashi 714/46 Apr,1989 |      Your vote accepted [0 after 0 votes] | | 4695946 Andreasen 714/31 Sep,1987 |      Your vote accepted [0 after 0 votes] | | 4425625 Seligman 379/93.31 Jan,1984 |      Your vote accepted [0 after 0 votes] | | 4356545 West 714/46 Oct,1982 |      Your vote accepted [0 after 0 votes] | | 4057847 Lowell 702/122 Nov,1977 |      Your vote accepted [0 after 0 votes] | | | | | |
|
|
|
|
U.S. References |
|
|
Foreign References |
|
|
|
|
|
|
Foreign References |
|
|
Other References |
|
|
|
|
|
|
Other References |
|
|
|
|
|
References  |
|
|
|
|
|
| Market Size |
|
Estimate the gross annual revenues of the relevant market
sector:
|
| | |
| |
|
|
| Market Share |
|
Estimate the percentage of the relevant market sector this invention will capture:
|
| | |
| |
|
|
| Reasonable Royalty |
|
What percentage of gross sales should the inventor or assignee be paid?
|
| | |
| |
|
|
|
Public's "Guesstimation" of Royalty Value
|
| Market Size | N/A | [No votes] | | x | Market Share | N/A | [No votes] | | x | Reasonable Royalty | N/A | [No votes] |
| | N/A | |
| |
|
|
|
|
|
|
|
|
|
|
|
|
Market Review  |
|
|
Technical Review  |
|
|
Claims  |
|
|
We therefore claim as our invention all that comes within the scope and spirit of the following claims:
1. A method of providing diagnostic support for a software product installed on a customer
computer by using a vendor computer at a remote location, each computer including a CPU coupled to memory and a display, the computers being linked through a single telecommunications circuit, each of said computers being coupled to said
telecommunications circuit through a voice/data modem, each of the computers further including a layer of communications software for sending/receiving data and For implementing communication protocols associated with the voice/data modem in said
computer, the communications layer of software in the customer computer including a support agent, the communications layer of software in the vendor computer including a support client, the method comprising the steps of:
providing one or more software-implemented diagnostic interpreters on the vendor computer;
registering the one or more diagnostic interpreters with the support client in the vendor computer, said registering including adding an entry to a registry database maintained in the vendor computer in the communications layer of software;
issuing a request from one or more of the diagnostic interpreters to the support client to send a message, said message requesting invocation of one or more software-implemented diagnostic agents on the customer computer;
communicating the request from the support client to the support agent;
checking a registry database in the communications layer of software in the customer computer to determine if the one or more diagnostic agents are registered;
if a requested diagnostic agent is not registered:
notifying the support client that the diagnostic agent is not registered;
using the support client to download the requested diagnostic agent to the support agent;
when the downloading is completed, issuing an execute command from the diagnostic interpreter;
communicating said command from the support client to the support agent, and thence to the customer computer; and
in response to said command, registering the requested diagnostic agent with the support agent;
sending messages from the one of more diagnostic interpreters through the support client to the support agent and thence to the diagnostic agents requesting the one or more diagnostic agents each perform a diagnostic task, said task including the
collection of diagnostic data;
returning the collected diagnostic data through the support agent to the support client and thence to the one or more diagnostic interpreters; and
displaying data corresponding to said collected diagnostic data on the display of the vendor computer.
2. The method of claim 1 in which the support agent includes at least one of the following operations:
collecting data from a specified sub-section of the registry database in the customer computer; or
creating or deleting registry key and value information from the registry database in the customer computer.
3. The method of claim 2 which includes providing support in the diagnostic agent to perform each of the operations listed in claim 2.
4. The method of claim 1 in which the requested diagnostic agent includes at least one of the following operations:
creating a list of all windows on the display of the customer computer;
creating a list of all applications running on the customer computer;
capturing a designated window on the display of the customer computer and compressing data corresponding thereto; or
identifying all windows belonging to a selected application running on the customer computer.
5. The method of claim 4 which includes providing support in the diagnostic agent to perform each of the operations listed in claim 4.
6. The method of claim 1 in which the requested diagnostic agent includes collecting data from a system registry database in the customer computer, said registry database indicating properties and characteristics of each device in the customer
computer.
7. The method of claim 1 in which the requested diagnostic agent includes collecting data from the customer computer indicating characteristics of a printer associated with said computer.
8. The method of claim 1 in which the requested diagnostic agent includes obtaining data from a clipboard data structure on the customer computer.
9. The method of claim 1 in which the requested diagnostic agent includes obtaining data about file attributes on the customer computer.
10. The method of claim 1 which includes:
using the support client, encapsulating the request from the diagnostic interpreter with a header; and
communicating the encapsulated request from the support client to the support agent via a socket allocated thereto.
11. The method of claim 1 in which each of said registering steps include supplying a receive callback function for handling incoming messages, and a unique universal identifier for identifying a registering diagnostic component.
12. The method of claim 11 which includes calling said registered receive callback function when communicating between the diagnostic agent and the diagnostic interpreter.
13. The method of claim 12 which includes calling said registered receive callback function each time the support client receives a message destined for the diagnostic interpreter, said calling serving to notify the diagnostic interpreter of the
arrival of a message, and to initiate processing of the message.
14. The method of claim 1 which includes securely terminating communications between the vendor and customer computers by:
sending a terminate command from the support client to the support agent;
in the customer computer, terminating a task in main memory and performing a memory purge to eliminate the diagnostic agent therefrom; and
removing a registry entry corresponding to said diagnostic agent from the customer computer.
15. A computer readable medium having stored therein instructions capable of causing a computer to perform the method of claim 1.
16. The method of claim 1 where communicating the request from the support client to the support agent includes a security mechanism with a plurality of security components.
17. The method of claim 16 in which the plurality of security components includes a login identifier and a login password.
18. The method of claim 17 in which the login identifier includes a unique universal identifier.
19. The method of claim 17 in which the login password includes an encrypted Internet Protocol address.
20. In a computer system including first and second computers at spaced-apart first and second locations, each computer including a CPU coupled to memory and a display, the computers being linked through a single telecommunications circuit, each
of said computers being coupled to said telecommunications circuit through a voice/data modem, each of the computers further including a layer of communications software for sending/receiving data and for implementing communication protocols associated
with the voice/data modem in said computer, an improvement further comprising:
a registry database in the first computer;
a diagnostic agent in the first computer;
a diagnostic interpreter in the second computer, said interpreter comprising software instructions for invoking the diagnostic agent to perform selected functions from the following catalog of functions:
collecting data from a specified section of the first computer's registry database; and
creating and deleting registry key and value information from the first computer's registry database;
the diagnostic agent comprising software instructions in the first computer for performing any function from said catalog of functions in response to the diagnostic interpreter, and for transferring data corresponding thereto to the diagnostic
interpreter;
the diagnostic interpreter further including means for receiving said transferred data from said diagnostic agent and for presenting data corresponding thereto to a user of the second computer.
21. In a computer system including first and second computers at spaced-apart first and second locations, each computer including a CPU coupled to memory and a display and running a windowed operating system, the computers being linked through a
single telecommunications circuit, each of said computers being coupled to said telecommunications circuit through a voice/data modem, each of the computers further including a layer of communications software for sending/receiving data and for
implementing communication protocols associated with the voice/data modem in said computer, an improvement further comprising:
a diagnostic agent in the first computer;
a diagnostic interpreter in the second computer, said interpreter comprising software instructions for invoking the diagnostic agent to perform selected functions from the following catalog of functions:
creating a list of all windows on the display of the customer computer; and
capturing a designated window on the display of the customer computer and compressing data corresponding thereto;
the diagnostic agent comprising software instructions in the first computer for performing any function from said catalog of functions in response to the diagnostic interpreter, and for transferring data corresponding thereto to the diagnostic
interpreter;
the diagnostic interpreter further including means for receiving said transferred data from said diagnostic agent and for presenting data corresponding thereto to a user of the second computer.
22. In a computer system including first and second computers at spaced-apart first and second locations, each computer including a CPU coupled to memory and a display and running a windowed operating system, the computers being linked through a
single telecommunications circuit, each of said computers being coupled to said telecommunications circuit through a voice/data modem, each of the computers further including a layer of communications software for sending/receiving data and for
implementing communication protocols associated with the voice/data modem in said computer, an improvement further comprising:
a diagnostic agent in the first computer;
a diagnostic interpreter in the second computer, said interpreter comprising software instructions for invoking the diagnostic agent to perform the function of identifying all windows belonging to a selected application running on the customer
computer;
the diagnostic agent comprising software instructions in the first computer for performing said function in response to the diagnostic interpreter, and for transferring data corresponding thereto to the diagnostic interpreter;
the diagnostic interpreter further including means for receiving said transferred data from said diagnostic agent and for presenting data corresponding thereto to a user of the second computer.
23. In a computer system including first and second computers at spaced-apart first and second locations, each computer including a CPU coupled to memory and a display and running a windowed operating system that supports a clipboard data
structure, the computers being linked through a single telecommunications circuit, each of said computers being coupled to said telecommunications circuit through a voice/data modem, each of the computers further including a layer of communications
software for sending/receiving data and for implementing communication protocols associated with the voice/data modem in said computer, an improvement further comprising:
a diagnostic agent in the first computer;
a diagnostic interpreter in the second computer, said interpreter comprising software instructions for invoking the diagnostic agent to perform the function of obtaining data from the clipboard data structure in the customer computer;
the diagnostic agent comprising software instructions in the first computer for performing said function in response to the diagnostic interpreter, and for transferring data corresponding thereto to the diagnostic interpreter;
the diagnostic interpreter further including means for receiving said transferred data from said diagnostic agent and for presenting data corresponding thereto to a user of the second computer.
24. A method of providing support for a software product installed on a customer computer system by using a vendor computer system at a remote location, each computer system including a CPU coupled to memory and a display, the computer systems
being linked through a single telecommunications circuit, each of said computer systems being coupled to said telecommunications circuit through a voice/data modem, each of the computer systems further including a layer of communications software for
sending/receiving data and for implementing communication protocols associated with the voice/data modem in said computer systems, the method comprising the steps of:
receiving a call from a customer at the remote location;
coupling the call to an interactive voice response unit (IVRU);
conducting an interactive machine/person dialog to aid in identifying the support required, said dialog including alternately posing a series of voiced options to the customer from the IVRU, and receiving tone responses thereto; and
automatically transferring diagnostic data from the customer computer system to the vendor computer system, the diagnostic data transferred being dependent on the tone responses provided to the IVRU;
wherein the interactive dialog aids in identifying the support required, and diagnostic data corresponding thereto is made available at the vendor computer system without intervention by product support personnel at the remote location.
25. The method of claim 24 in which the transferring step includes:
sending a request for said diagnostic data from the vendor computer system to the customer computer system; and
in response to said request, invoking an application software program in the customer computer system to service said request.
26. The method of claim 24 which includes displaying at least a portion of the transferred diagnostic data on the display of the vendor computer system for presentation to a customer support representative.
27. The method of claim 24 which includes performing an automated analysis of the diagnostic data at the vendor computer system, said analysis suggesting a remedial action, and automatically transmitting remedial data to the customer computer
system.
28. The method of claim 27 in which the automated analysis suggests a set of data at the customer computer system is outdated, and automatically transmitting updated data corresponding thereto to the customer computer system.
29. A computer readable medium having stored therein instructions capable of causing a computer to perform the method of claim 24.
30. A method of providing diagnostic support for a software product installed on a customer computer by using a vendor computer at a remote location, each computer including a CPU coupled to memory and a display, the computers being linked
through a single telecommunications circuit, each of said computers being coupled to said telecommunications circuit through a voice/data modern, each of the computers further including a layer of communications software for sending/receiving data and
for implementing communication protocols associated with the voice/data modem in said computer, the communications layer of software in the customer computer including a support agent, the communications layer of software in the vendor compute including
a support client, the method comprising the steps of:
providing a software-implemented diagnostic interpreter;
registering the diagnostic interpreter with the support client in the vendor computer, said registering including adding an entry to a registry database maintained in the vendor computer;
issuing a request from the diagnostic interpreter to the support client to send a message, said message requesting invocation of a software-implemented diagnostic agent;
communicating the request from the support client to the support agent;
checking a registry database in the customer computer to determine if the diagnostic agent is registered, the checking including collecting data from a system registry database in the customer computer, the system registry database indicating
properties and characteristics of each device in the customer computer;
if the diagnostic agent is not registered:
notifying the support client that the diagnostic agent is not registered;
using the support client to download the diagnostic agent to the support agent;
when the downloading is completed, issuing an execute command from the diagnostic interpreter;
communicating said command from the support client to the support agent, and thence to the customer computer; and
in response to said command, registering the diagnostic agent with the support agent;
sending a message from the diagnostic interpreter through the support client to the support agent and thence to the diagnostic agent requesting the diagnostic agent to perform a diagnostic task, said task including the collection of diagnostic
data;
returning the collected diagnostic data through the support agent to the support client and thence to the diagnostic interpreter; and
displaying data corresponding to said collected diagnostic data on the display of the vendor computer.
31. A computer readable medium having stored therein instructions capable of causing a computer to perform the method of claim 30.
32. A method of providing diagnostic support for a software product installs on a customer computer by using a vendor computer at a remote location, each computer including a CPU coupled to memory and a display, the computers being linked
through a single telecommunications circuit, each of said computers being coupled to said telecommunications circuit through a voice/data modern, each of the computers further including a layer of communications software for sending/receiving data and
for implementing communication protocols associated with the voice/data modem in said computer, the communications layer of software in the customer computer including a support agent, the communications layer of software in the vendor computer including
a support client, the method comprising the steps of:
providing a software-implemented diagnostic interpreter;
registering the diagnostic interpreter with the support client in the vendor computer, said registering including adding an entry to a registry database maintained in the vendor computer;
issuing a request from the diagnostic interpreter to the support client to send a message, said message requesting invocation of a software-implemented diagnostic agent;
using the support client, encapsulating the request from the diagnostic interpreter with a header;
communicating the request from the support client to the support agent via a socket allocated thereto;
checking a registry in the customer computer to determine if the diagnostic agent is registered;
if the diagnostic agent is not registered:
notifying the support client that the diagnostic agent is not registered;
using the support client to download the diagnostic agent to the support agent;
when the downloading is completed, issuing an execute command from the diagnostic interpreter;
communicating said command from the support client to the support agent, and thence to the customer computer; and
in response to said command, registering the diagnostic agent with the support agent;
sending a message from the diagnostic interpreter through the support client to the support agent and thence to the diagnostic agent requesting the diagnostic agent to perform a diagnostic task, said task including the collection of diagnostic
data;
returning the collected diagnostic data through the support agent to the support client, and thence to the diagnostic interpreter; and
displaying data corresponding to said collected diagnostic data on the display of the vendor computer.
33. A computer readable medium having stored therein instructions capable of causing a computer to perform the method of claim 32. |
|
|
|
|
Claims  |
|
|
Description  |
|
|
FIELD OF INVENTION
The present invention relates to automated support for computer products, and more particularly relates to provision of such support using a voice/data modem.
BACKGROUND AND SUMMARY OF THE INVENTION
Support of software products is a very expensive and time consuming process. When a customer experiences problems with a software product, the customer typically calls a product support help line and receives assistance from a product support
engineer. The support engineer typically asks the customer questions to help diagnose the customer's problem and often asks the customer to execute a series of commands on the computer to aid in the diagnosis. After this diagnostic data is reported
back to the product support engineer, the engineer offers a proposed diagnosis and instructs the customer with further steps that must be undertaken to remedy the problem.
If a software fix or patch is required, the customer must obtain the fix or patch, (e.g. on a floppy disk from the product support center, downloaded by modem, etc.) and then install it. Help with the fix/patch installation may require an
additional call back to the product support center, thus, increasing the cost to fix to the manufacturer.
The foregoing procedure is typically slow and frustrating. Errors and delays arise at every step, from imperfect communications (e.g. limitations of the phone as the primary communication mechanism) in the diagnosis phase, to typing and syntax
errors in the solution and solution delivery phases. This process is unsatisfactory both to customers and software vendors, and yet has been the industry's standard operating procedure for decades.
In accordance with the present invention, these and other failings of the prior art are overcome. In a preferred embodiment, the roles of the product engineer and customer are largely supplanted by execution of specialized client/server software
programs on the respective computers. These programs exchange diagnostic and--in some cases--solution data over the same telephone circuit used by the engineer and customer. The resulting system accelerates diagnosis and resolution of the customers'
problems, reduces product support costs, and improves customer satisfaction.
In more detail, a customer calling a product support center in accordance with one embodiment of the present invention is first asked a series of questions by an interactive voice response (IVR) system. The customer uses Touch-Tone keys on the
telephone to respond to these queries. Based on the customer's responses, the product support center's computer automatically asks the customer's computer, over the same telephone line, to transmit certain background/diagnostic information that may be
relevant to the customer's problem. In another embodiment, the operating system components on the customer's computer may be examined to determine whether they are up to date. If they are not, outdated components can be automatically updated.
All of the foregoing steps occur before the customer speaks with a product support engineer. When a product support engineer becomes available, the previously gathered information (both from the IVR query responses and the diagnostic information
solicited from the customer's computer and posted from the server) is available to the product support engineer.
After reviewing the situation with the customer, the product support engineer can query the customer's computer via support agents for additional information, if necessary. If the customer's computer does not contain certain diagnostic software
necessary for the engineer to continue the diagnosis, the diagnostic software can be downloaded to the customer's computer using only one phone line (e.g. one analog phone line).
If the product support engineer (or the product support center computer) determines that the customer requires a fix or patch, the fix or patch can be downloaded to the customer's computer. The product support engineer can then give further
instructions to the customer on how to install the fix or patch. Alternatively, the installation can be handled automatically by software in the customer's computer.
In systems according to the preferred embodiment, the customer spends less time interacting with a product support engineer, and is relieved of many of the responsibilities in diagnosing and resolving problems. Automated diagnoses and shorter
customer interactions save the product support center time, resources, and money. At the same time, the customer receives a better diagnosis and resolution of the problem than could usually be achieved with prior art product support techniques.
The foregoing and other features and advantages of the present invention will be more readily apparent from the following detailed description, which proceeds with reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a computer system used to implement a preferred embodiment of the present invention.
FIG. 2 is a block diagram showing the layered PSS client/server messaging architecture.
FIG. 3 is a block diagram showing greater detail within the of the PSS messaging architecture.
FIG. 4 is a picture diagram showing how a customer and a product support center engineer would interact.
FIGS. 5A-5E is a flowchart showing the steps required to set up a communications path between the client and server shown in FIG. 3.
FIGS. 6A-6C is a flow chart showing the steps required to send and receive information between a client and server.
DETAILED DESCRIPTION OF A PREFERRED EMBODIMENT
Referring to FIG. 1, an operating environment for the preferred embodiment of the present invention is a computer system 10 with a computer 12 that comprises at least one high speed processing unit (CPU) 14, in conjunction with a memory system
16, an input device 18, and an output device 20. These elements are interconnected by a bus structure 22.
The illustrated CPU 14 is of familiar design and includes an ALU 24 for performing computations, a collection of registers 26 for temporary storage of data and instructions, and a control unit 28 for controlling operation of the system 10.
Any of a variety of processors, including those from Digital Equipment, Sun, MIPS, IBM, Motorola, NEC, Intel, Cyrix, AMD, Nexgen and others can be used for CPU 14. Although shown with one CPU 14, computer system 10 may alternatively include
multiple processing units.
The memory system 16 includes main memory 30 and secondary storage 32. Illustrated main memory 30 is high speed random access memory (RAM) and read only memory (ROM). Main memory 30 can include any additional or alternative high speed memory
device or memory circuitry. Secondary storage 32 takes the form of long term storage, such as ROM, optical or magnetic disks, organic memory or any other volatile or non-volatile mass storage system. Those skilled in the art will recognize that memory
16 can comprise a variety and/or combination of alternative components.
The input and output devices 18, 20 are also familiar. The input device 18 can comprise a keyboard, mouse, pointing device, sound device (e.g. a microphone, etc.), or any other device providing input to the computer system 10. The output device
20 can comprise a display, a printer, a sound device (e.g. a speaker, etc.), or other device providing output to the computer system 10. The input/output devices 18, 20 include a modem 34 used for communications with other computer systems or devices.
As is familiar to those skilled in the art, the computer system 10 further includes an operating system and at least one application program. The operating system is the set of software which controls the computer system's operation and the
allocation of resources. The application program is the set of software that performs a task desired by the user, making use of computer resources made available through the operating system. Both are resident in the illustrated memory system 16.
In accordance with the practices of persons skilled in the art of computer programming, the present invention is described below with reference to symbolic representations of operations that are performed by computer system 10, unless indicated
otherwise. Such operations are sometimes referred to as being computer-executed. It will be appreciated that the operations which are symbolically represented include the manipulation by CPU 14 of electrical signals representing data bits and the
maintenance of data bits at memory locations in memory system 16, as well as other processing of signals. The memory locations where data bits are maintained are physical locations that have particular electrical, magnetic, optical, or organic
properties corresponding to the data bits.
The preferred embodiment of the invention is implemented in the Microsoft Windows 95 operating system using VoiceView data protocol technology by Radish Communications Systems of Boulder, Colo. The VoiceView data protocol technology has been
enhanced to provide functionality not available in the standard VoiceView data protocol. VoiceView data transfer allows both voice and data to be transmitted during the same telephone call and is described, for example, in patent publications U.S. Pat. No. 5,365,577, U.S. Pat. No. 5,164,982, and WO 94/26056, the disclosures of which are incorporated by reference. (Under VoiceView, only voice OR data is transmitted at any one particular instance in time. The invention can likewise be practiced with
technologies that allow simultaneous voice/data transfer, such as ISDN.)
The product support services (PSS) client/server messaging system is implemented using VoiceView modems 34 as is shown in FIG. 2. The VoiceView modems establish a socket connection 36 that is used for communications between a client 38 and a
server 40. The PSS messaging system implements a two-layer protocol stack: the communication layer 42 and the application layer 44. The communication layer's 42 primary responsibility is to transfer data between the client 38 and the server 40. The
client 38 represents a PSS computer center and the server 40 represents the customer's personal computer. The two layer protocol stack provides a common network protocol for passing data and issuing commands between the client 38 and server 40.
The application layer's 44 purpose is to utilize the communication layer's network services while maintaining ignorance of the networks underlying protocol and hardware The PSS's diagnostic and trouble-shooting programs 46 reside in the
application layer 44.
The two-layered protocol approach frees the application program 46 from the communication protocol complexity and implementation. The two-layer protocol stack operates over a socket connection. A socket is a communication object from which
messages are sent and received. Sockets are common inter-process communication objects in many operating systems (e.g. 4.x BSD UNIX, Windows 95, etc.).
Whether the messaging system is based on VoiceView sockets, UNIX sockets, or datagrams, the protocol details are entirely hidden from the application layer 44. Therefore, the PSS diagnostic applications 46 will not have to be rewritten if the
underlying communication protocol is changed. Also, socket management code need not be replicated in each of the application programs 46. Another benefit of this architecture is that any number of client diagnostic programs can communicate with their
corresponding server diagnostic programs through this common protocol. Client and server applications do not communicate directly with each other because replacement of the network platform and/or network protocol would make the diagnostic applications
obsolete.
The PSS messaging system diagnostic applications have two components: diagnostic interpreters (DIs) 48 and diagnostic agents (DAs) 50 as is shown in FIG. 3. The diagnostic interpreter 48 is client software which initiates diagnostic commands and
interprets their results for the PSS. The diagnostic agent 50 is server software which executes commands issued by the diagnostic interpreter and then returns results to the PSS.
Since the communications layer 42 is implemented over sockets, a server process on the customer's computer must execute a socket related accept() function call before the client can successfully complete a socket related connect(). Otherwise, no
connection can be made. As is well known in the art, a socket connection is asymmetric under the client/server model. A client process actively initiates a connection (via connect()) to obtain service, whereas a server process passively accepts (via
accept()) connections to provide service.
The PSS client/server messaging system has both client and server components in the communications layer 42 that are used for message transfer. The support client (SC) 52 is a client messaging process which sends and receives messages on behalf
of diagnostic interpreters 48. The support agent (SA) 54 is a server messaging process that resides on the customer's computer which sends and receives messages on behalf of diagnostic agents 50. Also included in the communications layer 42 of both the
client and the server are registries, 56 and 58 respectively, used to keep track of which client/server processes are sending/receiving messages. Use of registries is explained below.
As is shown in FIG. 4, when a customer 40 calls a product services support 38 center with a VoiceView modem 34 and wants help with a particular problem, a communications path (via a socket connection) 36 for data transfer must be set up over the
voice line the customer is talking on. The flowchart in FIGS. 5A-E shows the steps required to set a up a PSS communications path from the PSS computer center to a user and diagnose their computer problems. In the paragraphs that follow, the numbers in
parenthesis represent steps in the flow chart shown in FIGS. 5A-E. Numbers without parenthesis refer to the components of FIG. 3.
Referring now to FIG. 5A, the first step to help a customer is to ask for permission (60) for remote a login on the customer's computer. If permission is not obtained (62) then the customer will receive help with voice instructions only via the
telephone (i.e. a "normal" support transaction). Utilizing a socket protocol which allows a PSS 38 to download files and/or make changes to a customer's personal computer system 40 can potentially be very dangerous to both parties of the transaction if
not managed properly.
To initiate a customer support session, security measures are taken to ensure confidence and responsibility for both the customer and the PSS. A security mechanism which protects the customer 40, the PSS 38, and the communication path 36 from
unauthorized inspection and intrusion is used.
The PSS security mechanism has two security components: a login and password. The login identifies the client as the PSS and the password authenticates the login. The login consists of a matching a Unique Universal IDentifier (UUID) (i.e. an
identifier used to identify a particular process on a particular computer). The support client and support agent share one UUID as defined by Windows 95's socket protocol. Neither the support client nor the support agent will entertain foreign host
messages if the UUID is not identical. The UUID is what differentiates the requesting client from any other client and therefore uniquely identifies the PSS. This gives confidence to both the PSS and the customer that only the customer support protocol
is being executed.
The password consists of the server's encrypted Internet Protocol (IP) address. Sockets commonly use the Internet Protocol as a network interface. The Internet Protocol is responsible for host-to-host addressing, routing, packet forwarding,
packet fragmentation and reassembly of information passed through the socket.
On a request for login (64), if the support client's (SC) UUID does not match the support agent's (SA) (66), login on the customer's computer will be denied (68) and an error message sent to the support client. If the support client's UUID
matches the support agen | | |