WikiPatents - Community Patent Review
Create Free Account  |  License or Sell Your Patent  |  WikiPatents Marketplace  |  WikiPatents Blog
Username:  Password:  
    
Advanced Search
Remote information service access system based on a client-server-service model    
United States Patent5544320   
Link to this pagehttp://www.wikipatents.com/5544320.html
Inventor(s)Konrad; Allan M. (P.O. Box 4023, Berkeley, CA 94704)
AbstractA local host computing system, a remote host computing system as connected by a network, and service functionalities: a human interface service functionality, a starter service functionality, and a desired utility service functionality, and a Client-Server-Service (CSS) model is imposed on each service functionality. In one embodiment, this results in nine logical components and three physical components (a local host, a remote host, and an intervening network), where two of the logical components are integrated into one Remote Object Client component, and that Remote Object Client component and the other seven logical components are deployed among the local host and remote host in a manner which eases compatibility and upgrade problems, and provides an illusion to a user that a desired utility service supported on a remote host resides locally on the user's local host, thereby providing ease of use and minimal software maintenance for users of that remote service.



 Title Information Submit all comments and votes
 
Patent Text Patent PDF Print Page Summary File History
Plain text PDF images Print Summary File History
Drawing from US Patent 5544320
Remote information service access system based on a

     client-server-service model - US Patent 5544320 Drawing
Remote information service access system based on a client-server-service model
Inventor     Konrad; Allan M. (P.O. Box 4023, Berkeley, CA 94704)
Owner/Assignee    
Patent assignment
All assignments
Publication Date     August 6, 1996
Application Number     08/481,642
PAIR File History     Application Data   Transaction History
Image File Wrapper   Patent Term   Fees
Litigation
Filing Date     June 7, 1995
US Classification     709/203 709/219 709/228
Int'l Classification     G06F 003/00 G06F 013/00
Examiner     An; Meng-Ai T.
Assistant Examiner    
Attorney/Law Firm     Albert; Philip H. Townsend and Townsend and Crew LLP
Address
Parent Case     This is a continuation of application Ser. No. 08/001,982, filed Jan. 8, 1993, now abandoned.
Priority Data    
USPTO Field of Search     395/200.02 395/200.09 395/200.12 395/200.15 395/200.20 395/161 395/200 395/650 395/829 395/700 364/DIG. 1 364/DIG. 2
Patent Tags     remote information service access based a client-server-service model
   
Enter a comma (,) or semicolon (;) between multiple tag words/phrases.
Describe this patent:
 Amusing   
 Clever   
 Complex   
 Efficient   
 Historic   
 Important   
 Innovative   
 Interesting   
 Practical   
 Simple   
[no votes]
Patent WIKI

Share information and news about this patent, including information and news about the technology, inventors, company, ligation and licensing.

 References Submit all comments and votes
 
*references marked with an asterisk below are user-added references
 U.S. References
 
Add a new US reference:  
ReferenceRelevancyCommentsReferenceRelevancyComments
5392400
Berkowitz
709/203
Feb,1995

[0 after 0 votes]
5341478
Travis, Jr.
709/203
Aug,1994

[0 after 0 votes]
5301270
Steinberg
715/866
Apr,1994

[0 after 0 votes]
5249293
Schreiber
709/203
Sep,1993

[0 after 0 votes]
5224205
Dinkin
709/226
Jun,1993

[0 after 0 votes]
5218697
Chung

Jun,1993

[0 after 0 votes]
5146561
Carey
709/200
Sep,1992

[0 after 0 votes]
5124909
Blakely
709/203
Jun,1992

[0 after 0 votes]
5073852
Siegel

Dec,1991

[0 after 0 votes]
5005122
Griffin
709/203
Apr,1991

[0 after 0 votes]
4949248
Caro
709/203
Aug,1990

[0 after 0 votes]
4887204
Johnson
707/10
Dec,1989

[0 after 0 votes]
4660141
Ceccon
710/9
Apr,1987

[0 after 0 votes]
5375207
Blakely
709/203
Dec,1969

[0 after 0 votes]
 Foreign References
 Other References
 Market Review Submit all comments and votes
   
Market Size
Estimate the gross annual revenues of the relevant market sector:
> $10B
$5B - $10B
$2B - $5B
$500M - $2B
$100M - $500M
$10M - $100M
$1M - $10M
$500K - $1M
$100K - $500K
< $100K
[No votes]
$0
 
$0   $2.5B   $5B   $7.5B   $10B
Market Share
Estimate the percentage of the relevant market sector this invention will capture:
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Reasonable Royalty
What percentage of gross sales should the inventor or assignee be paid?
75% - 100%
50% - 74.99%
25% - 49.99%
10 - 24.99%
5 - 9.99%
2 - 4.99%
1 - 1.99%
< 1%
[No votes]
0.0%
 
0%   25%   50%   75%   100%
Public's "Guesstimation" of Royalty Value
Market SizeN/A[No votes]
xMarket ShareN/A[No votes]
xReasonable RoyaltyN/A[No votes]

N/A

License Availablity
If you are NOT the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
License Availablity
If you ARE the owner or assignee, answer here:
Yes, license is available for purchase

No, license is not currently available



[No votes]
Competitive Advantage
Does this invention have a significant competitive advantage over similar technologies?
Yes

No



[No votes]
Most helpful competitive advantage comment
[No comments]

Commercial Alternatives
Are there viable commercial alternatives for this invention?
Yes

No



[No votes]
Most helpful commercial alternative comment
[No comments]

 Technical Review Submit all comments and votes
 Claims Submit all comments and votes
 


What is claimed is:

1. A remote access apparatus for providing end-user access through a human interface to a desired remote utility service on a remote host computer, comprising:

a) a local host computer;

b) a remote host computer;

c) a network connection between said local host computer and said remote host computer allowing data transfer therebetween;

wherein said local host computer further comprises:

1) a human interface service means, for handling input from, and output to, an end-user;

2) a human interface server, for mediating requests for human interface services, said requests from human interface clients resident on at least one of said remote host computer and said local host computer, said human interface server operative to process said requests from said human interface clients during normal operation and exception operation; and

3) a starter client means, for issuing requests to a starter server means on said remote host computer, said requests for initiating interaction with the desired remote utility service on said remote host computer;

wherein said remote host computer further comprises:

1) said starter server means, for responding to requests from said starter client means;

2) a desired remote utility service, resident on said remote host computer and platform-independent of said local host computer;

3) a remote object client, for issuing requests for human interface services to said human interface server at said local host computer, for issuing requests for said desired remote utility service and for translating a response from said desired remote utility service into a request for human interface services issued to said human interface server; and

4) a starter service means, for initiating a remote object client indicated by said starter server means; and

wherein said network connection further comprises:

1) a remote object connection initiated by said remote host computer for transferring data between said remote object client and said human interface server resident on or serving said local host computer; and

2) a starter connection initiated by said local host computer for transferring data necessary to initiate said remote object client, said transferring of data occurring between said starter client means and said starter server.

2. The apparatus of claim 1, wherein said remote host computer further comprises a desired utility server to process requests for said desired remote utility service, said requests comprising at least requests from said remote object client.

3. The apparatus of claim 1, wherein said remote host computer comprises a plurality of physical hosts, interconnected to act together as a single remote host computing means.

4. The apparatus of claim 1, wherein said local host computer comprises a plurality of physical hosts, interconnected to act together as a single local host computing means.

5. The apparatus of claim 1, wherein said remote object client further comprises means for translating a response from said human interface server into a translated response having a format expected by said desired remote utility service, and for transmitting said translated response to said desired remote utility service.

6. A remote access apparatus for providing end-user access through a human interface to a desired remote utility service on a remote host means, comprising:

a) a local host means for implementing local computing functionality;

b) a remote host means for implementing remote computing functionality;

c) a network means for connecting said local host means and said remote host means, and for allowing data transfer therebetween;

wherein said local host means for implementing local computing functionality comprises:

1) a human interface service means, for handling input from, and output to, an end-user;

2) a human interface server means, for mediating requests for human interface services, said requests from human interface clients supported as computing functionality on at least one of said remote host means and said local host means, said human interface server means operative to process said requests from said human interface clients during normal operation and exception operation; and

3) a starter client means, for issuing requests to a starter server means supported as computing functionality on said remote host means, said requests for initiating interaction with the desired remote utility service on said remote host means;

wherein said remote host means for implementing remote computing functionality comprises:

1) said starter server means, for responding to requests from said starter client means;

2) a desired remote utility service, said desired remote utility service being platform-independent of said local host means;

3) a remote object client means, for issuing requests for human interface services to said human interface server means at the local host means, for issuing requests for interaction with said desired remote utility service and for translating a response from said desired remote utility service into a request for human interface services issued to said human interface server means; and

4) a starter service means, for initiating remote object client means as indicated by said starter server means; and

said network means comprising a remote object connection initiated by said remote host computer and a starter connection initiated by said local host computer, said remote object connection for transferring data between said remote object client means and said human interface server means resident on or serving said local host means, and said starter connection for transferring data necessary to initiate said remote object client means, said transferring of data occurring between said starter client means and said starter server means.

7. The apparatus of claim 6, wherein said remote object client means further comprises means for translating a response from paid human interface server means into a translated response having a format expected by said desired remote utility service, and for transmitting said translated response to said desired remote utility service.

8. A method for providing end-user access via a human interface server located at a local host computer to a desired remote utility service on a remote host computer, comprising the steps of:

a) initiating a starter server and a starter service on the remote host computer, and a human interface server on said local host computer, said local host computer being characterized as local with respect to a network location of an end user;

b) presenting said end user with a means to indicate a desire to access the desired remote utility service;

c) initiating a starter client in response to an indication by said end user of a desire to access the desired remote utility service;

d) using said starter client to issue an access start request to said starter server over a first network connection, said method of issuing said access start request being independent of a platform of the remote host computer;

e) using said starter server and said starter service to initiate a remote object client on the remote host computer;

f) establishing bidirectional programmatic connectivity between said remote object client and the desired remote utility service; and

g) establishing bidirectional programmatic connectivity between said remote object client and said human interface server over a second network connection

h) issuing an interface request from said remote object client to said human interface server requesting interface to said end user;

i) translating received responses to said human interface server requests into a format understandable by the desired remote utility service;

j) issuing said translated received responses as a utility service request from said remote object client to said desired remote utility service;

k) returning a utility service response to said utility service request from said desired remote utility service to said remote object client;

l) translating said utility service responses into a second interface request; and

m) issuing said second interface request from said remote object client to said human interface server.

9. The apparatus of claim 8, wherein said step of establishing bidirectional programmatic connectivity between said remote object client and said human interface server over a second network connection further comprises a step of configuring said second network connection to convey bulk data.

10. The apparatus of claim 8, wherein said step of establishing bidirectional programmatic connectivity between said remote object client and said human interface server over a second network connection further comprises a step of configuring said second network connection to operate asynchronously relative to said remote object client.

11. The apparatus of claim 8, wherein said step of establishing bidirectional programmatic connectivity between said remote object client and said human interface server over a second network connection further comprises a step of configuring said second network connection to convey human interface data.

12. A remote access apparatus for providing end-user access through a human interface at a local point to a desired remote utility service on a remote host computer, comprising:

a) a local host computer, local to the local point, comprising:

1) a human interface service means, for handling input from, and output to, an end-user at the local point;

2) a human interface server, for mediating requests for human interface services, said requests from human interface clients resident on at least one of said remote host computer and said local host computer, said human interface server operative to process said requests from said human interface clients during normal operation and exception operation; and

3) a starter client means, for issuing requests to a starter server means on said remote host computer, said requests for initiating interaction with the desired remote utility service on said remote host computer;

b) a remote host computer, remote to the local point, comprising:

1) said starter server means, for responding to requests from said starter client means;

2) a desired remote utility service, resident on said remote host computer and platform-independent of said local host computer;

3) a remote object client, for issuing requests for human interface services to said human interface server, for issuing requests for said desired remote utility service and for translating a response from said desired remote utility service into a request for human interface services issued to said human interface server; and

4) a starter service means, for initiating a remote object client indicated by said starter server means; and

c) a network connection between said local host computer and said remote host computer allowing data transfer therebetween, said network connection comprising:

1) a remote object connection initiated by said remote host computer for transferring data between said remote object client and said human interface server resident on or serving said local host computer; and

2) a starter connection initiated by said local host computer for transferring data necessary to initiate said remote object client, said transferring of data occurring between said starter client means and said starter server.
 Description Submit all comments and votes
 


COPYRIGHT NOTICE

A portion of the disclosure of this patent document contains material which is subject to copyright protection. The copyright owner has no objection to the xerographic reproduction by anyone of the patent document or the patent disclosure in exactly the form it appears in the Patent and Trademark Office patent file or records, but otherwise reserves all copyright rights whatsoever.

MICROFICHE APPENDIX

A microfiche appendix including 63 frames on 1 fiche is included herewith.

BACKGROUND OF THE INVENTION

The present invention relates to the field of information services, more specifically to a system for access to remote information services.

With the proliferation of data sources and services, a person seeking data on any of a variety of subjects can access a database to find data which might have taken laborious research in earlier times. However, with the proliferation of data sources, an information problem arises as the data problem is solved. Users of data are not interested in the data itself, except for those involved in the maintenance and programming of systems to handle the data, but are interested in the information the data contains. For example, a phone book, on-line or otherwise, is a source of information. A person interested only in data would deem a phone book containing one million names to be superior to a phone book containing only one hundred names, since the former contains more data. However, a person interested in information, such as a seeker of a phone number of a particular person, considers both databases equal, so long as both contain the number of the particular person. Indeed, the information seeker might even consider the smaller database to be better, i.e., more informational, if the smaller database is easier to search. Heretofore, the provision of information has been the responsibility of those in charge of data, and thus they have tended to solve the problem of finding information as a problem of finding data.

Human users face many obstacles in obtaining services from remote computing systems. Such services include database services, computational services and use of software libraries, digital publishing service, and many others. Obstacles faced are so numerous that virtually every new software product can address only a small portion of them. However, such obstacles generally result from Primitive Information Resources (defined below), such as network addressing and connectivity, operating systems, language and syntax, query languages, file systems, text editor incompatibilities, and differences in each vendor's implementation of common functions.

Use of local computers, such as personal computers and workstations, provided many benefits relative to logging onto a remote host. However, new obstacles arose as well which require the human user to be cognizant of whether a service resides on their local computer or on a remote computer, and if on a remote computer, be capable of surmounting many challenges on account of Information Primitives, including security, accounting, login, operating system, query language, and including moving output produced on the remote computer to their local computer, or using unfamiliar editors or other tools on the remote host. Another recent approach is to develop interfaces that execute on the local computer and provide easy conveyance of instructions to the remote computer and conveyance of the results back to the local computer. However, even this has the costly burden of installing, maintaining and executing an interface on the local computer, and storing whole search results on the local computer.

Despite vast improvement in many aspects of information technology, there are still many obstacles to access to information that prevent consumers from obtaining and using information effectively. Except for those with computing, network, and information skills, access to remote information resources is still out of reach in a practical sense.

Recently, workstations and personal computers ("PCs") provided graphical user interfaces which allow a user to select and activate a service on the workstation. The user needed only to find the desired icon and select, or click, it with a mouse or other pointing device. However, obtaining services such as database services from computers other than the user's own local host, be it a multi-user time-sharing computer, a PC, or workstation, was much more difficult.

Remote access often required the user to manipulate a network address of the host computer supporting the desired information service, and many other computing and network primitives. Of course, remote access is not just a problem for local PC and workstation users, but also for local users on a multi-user time-sharing system such as a minicomputer or mainframe.

One example of a remote access system is shown in U.S. Pat. No. 5,124,909 (Blakely et al., June, 1992). Therein, requester processes run on a local host, and are used to translate local host commands into commands understood by the remote host. Such a system is illustrative of the types of systems which must be continually updated, on local computers, because improvements in information service software result in new versions of such software. These new versions must be obtained, usually including a purchase cost, for and installed on each local computer. This is known as the "software maintenance burden".

Software upgrading is much more difficult if the software resides on the local host, as shown in Blakely. In that personal computers and workstations are more numerous than information service host computers, the software maintenance burden is not only manyfold greater than if such maintenance were performed only on each remote host, but it is even more problematical because the software maintenance burden falls on the owner/user of the personal computer or workstation, who is much less likely to be able, or inclined, to perform such software maintenance.

The "Information Problem" i.e., how to store and retrieve (search, identify, select, and fetch) information is not a computing problem, although computers might or might not provide services. It is not a network engineering problem, although networks might or might not provide services. It is not solely a library or archival problem, although reference skills and classification techniques developed in the bibliographic profession are essential. It is not a pedagogical problem, but, of course, techniques in the teaching profession are important in conveying information. Yet, by human nature, each of these disciplines blurs the Information Problem to see it as one and the same with the problems addressed by their domain. They each see a part of the elephant, and the solutions don't necessarily interoperate with one another across disciplines.

The commercial sector reflects this trend. Everyone is in everyone else's "information business". Phone companies issue credit cards, financial concerns offer telephone services, cable television firms become database vendors, etc. But each addresses the Information Problem from the perspective of their own strengths, and largely ignores what the other disciplines bring to the solution set. None of these disciplines alone has all the background required to address the Information Problem. When, for example, computer science or data processing people decide to design a technology that provides access to information resources, their inclination is to reason that users have powerful computers on their own desktops, so they write programs that run on all those computers to access remote information services, then sell the software. The fallacy is: though computers have become inexpensive enough to decentralize the repository of computing cycles away from mainframes to the desktop, it does not follow that all the services provided by those mainframe computers should also be distributed.

For example, telecommunications or network engineers may seize upon an Information Problem such as the problem of "how to find directory information about people using the network". Networking and computing are important fields of expertise relevant to this problem, but so are database management and retrieval expertise. Yet implementations of "network solutions" to this problem, such as X.500, reflect ignorance of information retrieval issues understood by the bibliographic community for many years. The result is poor retrieval capability, duplicate databases, maintenance of duplicate databases, and software maintenance on each local host. Other examples are numerous. What is needed is an architecture wherein components are implemented and controlled by those best able to manage and understand the role of the particular component in solving information problems.

From the above it is seen that an improved means for accessing remote information services is needed.

SUMMARY OF THE INVENTION

An improved means for human end-user access to remote information services is provided by virtue of the present invention.

The present invention avoids the costly effects of "solutions" to the information problem which lack the expertise of one or more of the essential domains of expertise, by use of an architecture that deploys the basic service components of an information system such that each component specifically avoids providing functionality that is the primary responsibility of another component and its professional discipline. For example, a database service is utilized in Remote Object technology only for database service, not for human interface service or network service. That is, the database management system doesn't have to produce "screens", and the network service doesn't define database functionality and do a poor job of it (poor or nonexistent indexing, poor retrieval capability, duplicate storage of data, etc.).

One object of the present invention is to provide a means for a computer user at a local host to access remote information services which is as easy as access to services provided on the user's own local host, be it a local multi-user system, a workstation or a PC, and to be able to do so without maintaining on their local host software which is dependent on the configuration or version of the desired service on the remote host, thus requiring upgrades and causing compatibility problems.

Another object of the present invention is to provide remote information services to the consumer market which is comprised of individuals who desire an information service from the remote host, but might not have working knowledge of the interaction required between the local host and the remote host to access that information. Such an object might be obtained by modularization of functionality and a specific deployment of that functionality. The desired utility is an information service provided by a remote computer, including, but not limited to, access to a database management system, use of a specific database, a file storage service, a computational service, software libraries, or bibliographic reference utilities.

Another object of the present invention is to provide a user access to an information service on a remote host without the user needing to know how to deal with the network between the user and the remote host, without the user needing an account on the remote host, and without the user needing to continually update desired utility software.

Yet another object of the present invention is to improve network efficiency, by transmitting from Remote Host to Local Host only that data selected by the User, rather than the entire search result or data set, thereby reducing the amount of data which must flow across the network (but one benefit of the Client-Server-Service (CSS) model) and to increase security over software which interacts with the information service.

The present invention meets these objects by distinguishing among the Basic Service Components (defined below) of a Remote Object information architecture, specifically, a Human Interface Service, a Desired Utility Service, and a Starter Service, imposing a Client-Server-Service model (defined below) upon the Basic Service Components resulting in nine logical components (Human Interface client, server, and service, Desired Utility client, server, and service, and Starter client, server, and service), integrating the Desired Utility Client and the Human Interface Client functionalities into a Remote Object Client (each defined below), and deploying the resulting eight functional components among the local host and remote host in a manner which eases compatibility and upgrade problems, and then specifying protocols for the interactions between specific pairs of those functional components.

In the CSS model, the Client contains most, but often not all, of the decision logic which manipulates the Service. Some decision-making responsibility for manipulating the Service generally rests with the Server as well.

The present invention provides an illusion to a user that a desired utility service supported on a remote host resides locally on the user's local host, thereby providing ease of use and minimal software maintenance for users of that remote service. In one embodiment of a Remote Object system according to the present invention, a user appears to activate a Remote Object as a service of the local host. The user actually activates a starter client, which connects to a starter server on the remote host via a starter connection. The starter server interacts with a starter service, which initiates a Remote Object client. The Remote Object client on the remote host then interacts, as a human interface client, with a human interface server on the local host via a second connection, the Remote Object client connection. The Remote Object client also interacts, as a desired utility client with either a desired utility server on the remote host, or directly with the desired utility service on the remote host.

The present invention provides many benefits to users and service providers, as few of which are: (1) Using an embodiment of the present invention, the connection providing access for the User to the Desired Utility Service is initiated, not by the User, but by a process on the Remote Host (namely, the Remote Object Client), thereby giving the Service Provider greater control of security; (2) Not only is usage of the network more efficient by not conveying whole search results or data sets, only those selected by the User after seeing them, but such search results and data sets need not be stored by User at Local Host, thus conserving storage resources; (3) The User is not limited to character-based presentation, but can have full bitmapped presentation; (4) The Remote Object access can be implemented for an existing Desired Utility Service without requiring existing users of that service to modify the way they access that service; (5) The Service Provider can control what versions of software are used by Users; (6) The illegal copying of software is reduced, since none of the Desired Utility Service software is located on the Local Hosts; (7) The present invention provides for multiple simultaneous usages of an information resource where heretofore, only one person could use it at any one moment, such as with a CD-ROM drive; (8) The likelihood of software viruses is reduced, since none of the Desired Utility Service software is located on the Local Hosts; and (9) The incompatibility of data retrieval from remote locations with programming resources such as text editors and spreadsheets on the Local Host is surmounted, by delivering data via a Human Interface Server platform which is compatible with such popular programs.

A further understanding of the nature and advantages of the inventions herein may be realized by reference to the remaining portions of the specification and the attached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a prior art block diagram of a typical remote access system;

FIG. 2 is a block diagram of an embodiment of a Remote Object remote access system according to the present invention;

FIGS. 3a, 3b, 3c and 3d are block diagrams of embodiments of Remote Object systems derived from the system shown in FIG. 2, wherein multiple similar functional components or hosts are used;

FIG. 4 is a screen image of an example of a Remote Journal Object; and

FIGS. 5a, 5b, 5c, 5d, 5e, 5f, 5g, 5h and 5i are flow diagrams showing the operation of and interaction between the various components of a Remote Object system.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

For ease of discussion, this detailed description is divided into seven sections, as follows:

1. General Definitions

2. Definitions of components of one embodiment of a Remote Object system according to the present invention.

3. Examples of Remote Objects.

4. Description of the Figures.

5. Description of Remote Object Processes.

a. Initiating a Remote Object.

b. Operations with a Remote Object.

c. Terminating a Remote Object.

6. Description of the Protocols between components.

7. Examples of Components for use in a Remote Object System.

1. General Definitions

Certain terms, for clarity, are capitalized in this and the following section to indicate that they are separately defined herein.

Client-Server-Service (CSS) Model: A model wherein three processes operate to provide a Basic Service. A Client process makes demands upon a Server process, which then satisfies these demands using the Service process or capability.

One example of imposing a CSS model upon Basic Service is where the Basic Service is a particular database. In this specific example, the Client process is a program running on a user's local computer, in the prior art. Suppose the Client desires some data which must be retrieved using a database service provided on a Remote Host. The Client does not retrieve this data, but rather sends a Request for service to a Server process. Typically, this Request is communicated over the Network to a Server process running at the remote Host. The Server process does not make demands, but is passive until a Request from a Client arrives. The Server then accepts the Request, and conveys the Request to the database Service. The Server then retrieves the response from the database Service (i.e., the requested data) on the remote Host, and returns the response to the requesting Client.

The advantages of the model are similar to the advantages of a full-service grocery store as opposed to a self-service store. In the full-service model, the customers (Clients) request goods (Service) from the merchant (Server). The advantage over the self-service model, where the Clients manipulate the Service directly, are clearly apparent by analogy. In the grocery store, the Clients do not need to know the location of any goods in the store, and thus don't need to memorize different layouts of different stores. The advantages to the Server are also apparent, as the Server can now provide for greater control for security and filtering purposes, thus lessening the chance that an untrained Client may, for whatever reason, cause disruption of the Service. The knowledgeable merchant is also free to rearrange the store to increase efficiency and not confuse the customer.

Often, the term "Server" is used in a way that suggests that it is one and the same as the Basic Service it provides, but generally, this is not true. A Server is an intermediary between the Service and the Client, although the Server is likely to be provided by the same vendor, and on the same Host as the Basic Service, and the Boundary between the Server and the Service might not be clear.

Basic Service Components: Human Interface Service, Desired Utility Service, Starter Service.

Boundary: A barrier to interoperability, such as:

Network Boundary: A Boundary where two nodes have no network address in common. Thus, a network boundary must be crossed where a Client process has one network address and a Service process has a different network address, and no common network address functionality can be obtained between the two points.

Instruction Set Boundary: A Boundary caused by Services and Clients not being processable in a common instruction set, thereby preventing one from processing instructions of the other.

Security Boundary: A Boundary created to prevent or limit incoming Requests to particularly authorized Requests or Requests from an authorized Requester.

One-to-Many Boundary: A Boundary created by the lack of a one-to-one correspondence between Services and Clients. This boundary requires multiplexing or demultiplexing for Client access to a Service.

Accounting or Commercial Transaction Boundary: A Boundary created to control access to a Service, to enable access to the Service to be recorded or billed to a entity generating the Request for the Service.

Channel Boundary: A Boundary created by dissimilar interfaces or limitations of Client or Service processes. For example, if a Service is not configured to accept a Request from a program, but only from a computer terminal, a Channel Boundary is created. A Server may be used to cross that Boundary, by re-routing the input of the Service and communicating with the Client.

Platform Boundary: (Also the Class-of-Platform Boundary) A Boundary created by dissimilar operating systems supporting the Client process and the Service process. This Boundary is a barrier to product interoperability.

Client: A process which generates and issues Requests in the CSS model defined above. Also known as a Requester.

Server: In the Client-Server-Service Model, an intermediary between a Client and Service. A Server is often used to surmount a Boundary. A Server may multiplex Requests from multiple clients to a Service and demultiplex responses from the Service to the appropriate Clients. A Server is not required if there is no Boundary, i.e., where Client and Service can interoperate directly.

Service: In the Client-Server-Service Model, functionality to be provided to a Client by a Service Provider.

Service Provider: Owner or manager of a desired Service. Request: In the Client-Server-Service Model, a generic term for instructions, commands, data, or combinations thereof conveyed between the Client and the Server, and between the Server and the Service.

Connection: An interprocess communication path between a two processes such as a Client and a Server.

Host: A computer, or collection of computers, interoperating with one another, used to run a particular process. For example, it is possible that a Starter Server (defined below) is running on one computer, and a Remote Object Client (also defined below) to be started is on another. The two computers could be treated as a single Host.

Essentially, a "Host" is a means for computing.

Protocol: An instruction set using a contr