TL;DR: In this article, an intelligent network agent intercepts transactions between clients and servers to perform Distributed Information Logistics Services (DILS) functions such as automatically retrieving updated files from remote servers and delivering them to local client programs.
Abstract: An intelligent network agent intercepts transactions between clients and servers to perform Distributed Information Logistics Services (DILS) functions such as automatically retrieving updated files from remote servers and delivering them to local client programs. For example, HTTP clients and HTTPD servers are connectionless and stateless, thus there is no way for a server to update a browser automatically when an HTML document is changed. The invention provides a method to update any number of clients from any number of servers without making any changes to currently existing HTTP clients or HTTPD servers. Furthermore, the invention can provide various other DILS services for clients to reduce latency and communication costs for members of a group with interests in similar objects. For example, the intelligent network agent maintains a cache of objects of interest to the group of clients, a log of changes to the objects, a list of the clients interested in the objects, a list of significant change detection methods for the objects, a list of search specifications for the objects, lists of client notification methods, and lists of general interest specifications for the clients.
TL;DR: In this article, the location information of a remote sensor is transmitted from the server to the client and displayed at the client so that the user can identify the location of the remote sensor.
Abstract: A user accesses a server using a client. The client provides an identification code which serves to uniquely identify a remote sensor. The remote sensor is capable of providing information related to its position. The server interrogates the remote sensor and, in response, the remote sensor transmits positioning data to the server where it is analyzed to derive the location of the remote sensor. The location so determined is transmitted from the server to the client and is displayed at the client so that the user can identify the location of the remote sensor. The client and the server may be connected to a computer network and the client may use a web browser to interrogate the server. The remote sensor may be a SNAPSHOT GPS receiver or other GPS receiver or positioning device. The user display may be a simple position report, e.g., latitude and longitude, or a graphical report which provides an indication of the remote sensor's location superimposed on a map or other reference.
TL;DR: In this paper, a system and method for managing the distribution of licensed application programs stored on a server over a distributed computer system maintains control over the program even after the program has been distributed to a client computer from a provider on an information server.
Abstract: A system and method for managing the distribution of licensed application programs stored on a server over a distributed computer system maintains control over the program even after the program has been distributed to a client computer from a provider on an information server. Protection may include license expiration date verification, authorized user ID verification, and protection against decompilation and reverse engineering by maintaining the program in an encrypted form until verification of the expiration date and user identity are complete and the program is ready for decoding, loading into the client computer CPU, and execution. A user identifies a program for trial use by any conventional means such as by using a network browser on the World Wide Web. The server recognizes a user request to access the application program. The server may have an agent on the client computer for performing certain predetermined administrative tasks. This agent may take the form of an application builder program module, provided by the trial application provider, which is resident on the client computer. The server (including the agent) determines whether program access conditions are satisfied, and if satisfied transmits a version of the program to the client. The transmitted file includes an encrypted portion. The server and agent also verify that the user is currently entitled to execute the application program including that the trial license has not expired at the time the user initiates execution, and generates an executable version of the application program.
TL;DR: Distributed Integration Solution (DIS) as discussed by the authors is a set of capsule objects which perform programmable functions upon a received command from a web server control program agent for retrieving, from a database gateway coupled to a plurality of database resources upon a single request made from a Hypertext document, requested information from multiple data bases located at different types of databases geograhically dispersed, performing calculations, formatting, and other services prior to reporting to the web browser or to other locations, in a selected format, as in a display, fax, printer, and to customer installations or to TV
Abstract: A World Wide Web browser makes requests to web servers on a network which receive and fulfill requests as an agent of the browser client, organizing distributed sub-agents as distributed integration solution (DIS) servers on an intranet network supporting the web server which also has an access agent servers accessible over the Internet. DIS servers execute selected capsule objects which perform programmable functions upon a received command from a web server control program agent for retrieving, from a database gateway coupled to a plurality of database resources upon a single request made from a Hypertext document, requested information from multiple data bases located at different types of databases geograhically dispersed, performing calculations, formatting, and other services prior to reporting to the web browser or to other locations, in a selected format, as in a display, fax, printer, and to customer installations or to TV video subscribers, with account tracking.
TL;DR: This paper shows how to perform on-demand datatype-specific lossy compression on semantically typed data, tailoring content to the specific constraints of the client, in a proxy architecture that further exploits typed data to enable application-level management of scarce network resources.
Abstract: The explosive growth of the Internet and the proliferation of smart cellular phones and handheld wireless devices is widening an already large gap between Internet clients. Clients vary in their hardware resources, software sophistication, and quality of connectivity, yet server support for client variation ranges from relatively poor to none at all. In this paper we introduce some design principles that we believe are fundamental to providing "meaningful" Internet access for the entire range of clients. In particular, we show how to perform on-demand datatype-specific lossy compression on semantically typed data, tailoring content to the specific constraints of the client. We instantiate our design principles in a proxy architecture that further exploits typed data to enable application-level management of scarce network resources. Our proxy architecture generalizes previous work addressing all three aspects of client variation by applying well-understood techniques in a novel way, resulting in quantitatively better end-to-end performance, higher quality display output, and new capabilities for low-end clients.
TL;DR: Distributed Integration Solution (DIS) as mentioned in this paper is a set of capsule objects which perform programmable functions upon a received command from a web server control program agent for retrieving, from a database gateway coupled to a plurality of database resources upon a single request made from a Hypertext document, requested information from multiple data bases located at different types of databases geograhically dispersed, performing calculations, formatting, and other services prior to reporting to the web browser or to other locations, in a selected format, as in a display, fax, printer, and to customer installations or to TV
Abstract: A World Wide Web browser makes requests to web servers on a network which receive and fulfill requests as an agent of the browser client, organizing distributed sub-agents as distributed integration solution (DIS) servers on an intranet network supporting the web server which also has an access agent servers accessible over the Internet. DIS servers execute selected capsule objects which perform programmable functions upon a received command from a web server control program agent for retrieving, from a database gateway coupled to a plurality of database resources upon a single request made from a Hypertext document, requested information from multiple data bases located at different types of databases geograhically dispersed, performing calculations, formatting, and other services prior to reporting to the web browser or to other locations, in a selected format, as in a display, fax, printer, and to customer installations or to TV video subscribers, with account tracking.
TL;DR: In this article, the authors propose a Client-Server-Service (CSS) model for service functionalities in a local host, a remote host, and a user's local host.
Abstract: A 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.
TL;DR: Distributed Integration Solution (DIS) as mentioned in this paper is a set of capsule objects which perform programmable functions upon a received command from a web server control program agent for retrieving, from a database gateway coupled to a plurality of database resources upon a single request made from a Hypertext document, requested information from multiple data bases located at different types of databases geograhically dispersed, performing calculations, formatting, and other services prior to reporting to the web browser or to other locations, in a selected format, as in a display, fax, printer, and to customer installations or to TV
Abstract: A World Wide Web browser makes requests to web servers on a network which receive and fulfill requests as an agent of the browser client, organizing distributed sub-agents as distributed integration solution (DIS) servers on an intranet network supporting the web server which also has an access agent servers accessible over the Internet. DIS servers execute selected capsule objects which perform programmable functions upon a received command from a web server control program agent for retrieving, from a database gateway coupled to a plurality of database resources upon a single request made from a Hypertext document, requested information from multiple data bases located at different types of databases geograhically dispersed, performing calculations, formatting, and other services prior to reporting to the web browser or to other locations, in a selected format, as in a display, fax, printer, and to customer installations or to TV video subscribers, with account tracking.
TL;DR: In this article, a method, apparatus and program product for increasing the performance of a client/server system having a client application resident on a first computer and communicating with a server application resident in a second computer remote from the first computer is presented.
Abstract: A method, apparatus and program product for increasing the performance of a client/server system having a client application resident on a first computer and communicating with a server application resident on a second computer remote from the first computer. The client application and the server application utilize a client/server independent communication protocol for communication between the client and the server and at least one segment of the communication between the client application in the first computer and the server application in the second computer occurs over an external communication link. The method, apparatus and program product intercept communications in the client/server independent communication protocol originated by the remote client prior to transmission of the communications on the external communication link and convert the communication originated by the client to a second client/server specific communication protocol. The converted communication is transmitted over the external communication link and received from the communication transmitted over the external communication link. The communication received over the external communication link is converted from the client server specific communication protocol to the client/server independent communication protocol and the communication originated by the remote client is provided to the server in the client/server independent communication protocol. Differencing, caching or protocol reduction techniques increase performance over the external communication link. The applications may by be a web browser and a web server and may communicate over a wireless communication link.
TL;DR: Distributed Integration Solution (DIS) as discussed by the authors is a set of capsule objects which perform programmable functions upon a received command from a web server control program agent for retrieving, from a database gateway coupled to a plurality of database resources upon a single request made from a Hypertext document, requested information from multiple data bases located at different types of databases geograhically dispersed, performing calculations, formatting, and other services prior to reporting to the web browser or to other locations, in a selected format, as in a display, fax, printer, and to customer installations or to TV
Abstract: A World Wide Web browser makes requests to web servers on a network which receive and fulfill requests as an agent of the browser client, organizing distributed sub-agents as distributed integration solution (DIS) servers on an intranet network supporting the web server which also has an access agent servers accessible over the Internet. DIS servers execute selected capsule objects which perform programmable functions upon a received command from a web server control program agent for retrieving, from a database gateway coupled to a plurality of database resources upon a single request made from a Hypertext document, requested information from multiple data bases located at different types of databases geograhically dispersed, performing calculations, formatting, and other services prior to reporting to the web browser or to other locations, in a selected format, as in a display, fax, printer, and to customer installations or to TV video subscribers, with account tracking.
TL;DR: In this paper, a fault tolerant multiple network server system is proposed, where multiple servers concurrently act as back-up servers for each other even while they are providing their own server services to the system.
Abstract: A fault tolerant multiple network server system in which multiple servers concurrently act as back-up servers for each other even while they are providing their own server services to the system. Rather than having an unused server monitoring for failure of a primary server and taking over control, each is act upon the network, but when its partner should fail, it assumes control of these partner servers storage subsystem. In this way, processing power of both servers is available during normal operation, but they each provide back-up capability for the other.
TL;DR: Lower query-response times, reduced message traffic, higher server throughput, and better scalability are some of the expected benefits of this approach over commonly used relational server-side and object ID-based or page-based client-side caching.
Abstract: We propose a new client-side data-caching scheme for relational databases with a central server and multiple clients. Data are loaded into each client cache based on queries executed on the central database at the server. These queries are used to form predicates that describe the cache contents. A subsequent query at the client may be satisfied in its local cache if we can determine that the query result is entirely contained in the cache. This issue is called cache completeness. A separate issue, cache currency, deals with the effect on client caches of updates committed at the central database. We examine the various performance tradeoffs and optimization issues involved in addressing the questions of cache currency and completeness using predicate descriptions and suggest solutions that promote good dynamic behavior. Lower query-response times, reduced message traffic, higher server throughput, and better scalability are some of the expected benefits of our approach over commonly used relational server-side and object ID-based or page-based client-side caching.
TL;DR: In this article, the directory server monitors the status of client processes connected to the network via periodic notification from the client processes, and dynamically modifies the time interval at which client processes notify the server, depending on the demand for server resources.
Abstract: A communication protocol for establishing real-time, point-to-point communications between computer users over a computer network includes a directory server apparatus for providing the current dynamically assigned Internet Protocol addresses of client processes currently connected to the computer network. The server maintains a list of entries, each entry including the Internet Protocol address of a user currently connected to the network. In response to identification of one of the entries by a requesting client process, the server provides the corresponding Internet Protocol address of the entry to the requesting client process. In accordance with a second aspect of the present invention, the directory server monitors the status of client processes connected to the network via periodic notification from the client processes. The server dynamically modifies the time interval at which client processes notify the server, depending on the demand for server resources.
TL;DR: A transaction manager intercepts all requests for service from any of a plurality of clients, establishes connections independently of task requests and assigns available servers to the requests in the order the requests are received in order to provide equitable distribution of service resources over an increased number of client/server connections.
Abstract: A transaction manager intercepts all requests for service from any of a plurality of clients, establishes connections independently of task requests and assigns available servers to the requests in the order the requests are received in order to provide equitable distribution of service resources over an increased number of client/server connections. Preferably, the transaction manager provides for starting at least one server independently of any request, direction of all client requests for server connections to a transaction manager independently of any server, placement of task requests in a queue and starting and stopping additional servers based on queue length.
TL;DR: In this article, the verification server maintains a database of valid authentication data, against which it compares and verifies the authentication data it receives from the user host, which is sent to the application server, which authenticates the user based on the result.
Abstract: A method for authenticating users on networks includes an application server requesting a user host to send authentication data to a verification server. The verification server maintains a database of valid authentication data, against which it compares and verifies the authentication data it receives from the user host. The verification result is sent to the application server, which authenticates the user based on the result. Therefore, the configuration of the application server is simplified. The verification server can be used by a plurality of application servers, allowing for the efficient use of resources on a network.
TL;DR: In this paper, a Web client accesses a web server and downloads HTML and a Java applet(s) from the web server to the client and executes on the client machine for online analytical processing.
Abstract: A World Wide Web browser makes requests to web servers on a network which receive and fulfill requests as an agent of the browser client, organizing distributed sub-agents as distributed integration solution (DIS) servers on an intranet network supporting the web server which also has an access agent servers accessible over the Internet. DIS servers execute selected capsule objects which perform programmable functions upon a received command from a web server control program agent for retrieving, from a database gateway coupled to a plurality of database resources upon a single request made from a Hypertext document, requested information from multiple data bases located at different types of databases geographically dispersed, performing calculations, formatting, and other services prior to reporting to the web browser or to other locations, in a selected format, as in a display, fax, printer, and to customer installations or to TV video subscribers, with account tracking. Intrepretive language based programs or applets are downloaded from the web server to the client and executed on the client machine for online analytical processing from a web browser. The Web client accesses a web server and downloads HTML and a Java applet(s). This enables use of multiple databases of different types using a single request from a client for Online Analytical Processing (OLAP) from a web browser.
TL;DR: In this paper, an interprise computing manager in which an application is composed of a client(front end) program which communicates utilizing a network with a server (back-end) program is described.
Abstract: An interprise computing manager in which an application is composed of a client
(front end) program which communicates utilizing a network with a server (back
end) program. The client and server programs are loosely coupled and exchange
information using the network. The client program is composed of a User
Interface (UI) and an object-oriented framework (Presentation Engine (PE)
framework). The UI exchanges data messages with the framework. The
framework is designed to handle two types of messages: (1) from the UI, and (2)
from the server (back end) program via the network. The framework includes a
component, the mediator which manages messages coming into and going out of
the framework. The system includes software for a client computer, a server
computer and a network for connecting the client computer to the server
computer which utilize an execution framework code segment configured to
couple the server computer and the client computer via the network, by a
plurality of client computer code segments resident on the server, each for
transmission over the network to a client computer to initiate coupling; and a
plurality of server computer code segments resident on the server which execute
on the server in response to initiation of coupling via the network with a
particular client utilizing the transmitted client computer code segment for
communicating via a particular communication protocol. Communication is
initiated utilizing the network to acquire characteristics of the client from the
network.
TL;DR: This information-packed Survival Guide takes you on a sweeping tour of the world of client/server, from operating systems and communications, to application architectures that incorporate database, transaction processing, groupware and objects.
Abstract: Partial table of contents: THE BIG PICTURE Your Guide to the New World Client/Server Building Blocks CLIENTS, SERVERS, AND OPERATING SYSTEMS The OS Wars: Meet the Players BASE MIDDLEWARE: STACKS AND NOSs NOS: Creating the Single System Image SQL DATABASE SERVERS SQL Middleware and Federated Databases CLIENT/SERVER TRANSACTION PROCESSING The Magic of Transactions TP Monitors: Meet the Players CLIENT/SERVER GROUPWARE Groupware: Meet the Players CLIENT/SERVER WITH DISTRIBUTED OBJECTS Compound Documents: The Client Framework CLIENT/SERVER AND THE INTERNET Web Client/Server: Meet the Players DISTRIBUTED SYSTEM MANAGEMENT Distributed System Management Standards BRINGING IT ALL TOGETHER Client/Server Tools and Application Development.
TL;DR: In this article, a server computer selects code updates to download to a client computer and the server computer identifies code updates which are consistent with basic system characteristics of the client computer, and the client sends the results to the server computers which generate a list of code updates, representing programs that exist on the client computers for which an update would be appropriate.
Abstract: A server computer selects code updates to download to a client computer. The server computer identifies code updates which are consistent with basic system characteristics of the client computer. Then, the server computer sends to the client computer one or more "recognizer" programs or one or more addresses outside of the client computer of the one or more recognizer programs which execute in the client computer to determine whether the client computer has a version other than a current version of the identified code updates. The client sends the results to the server computer which generates a list of code updates which are consistent with the basic system characteristics, representing programs that exist on the client computer for which an update would be appropriate. Next, the server computer sends the list or information about the list to the client computer. A user at the client computer selects from the list and sends the selections to the server computer. In response, the server computer sends addresses of the selected code updates to the client computer and the client computer downloads the selected code updates from a content server. At some later time, the recognizer programs corresponding to the selected code updates are executed again before the selected code updates are installed in the client computer.
TL;DR: In this article, a system and method for retrieving information from an online database is described, which includes a server computer that is connected to a computer network, such as the Internet or an IP-based computer network.
Abstract: A system and method for retrieving information from an online database. The system includes a server computer that is connected to a computer network, such as the Internet or an IP-based computer network. The server computer includes a server memory that stores token handler instructions, and a server processor that is responsive to the token handler instructions. A client computer includes a client memory that stores client application instructions and a client processor connected to the client processor. The client application instructions include a set of dynamic link libraries of code and information for each of a plurality of Internet service providers. The client processor is responsive to the client application instructions by establishing a connection with the server computer over the Internet through a selected Internet service provider and by sending tokens to the server computer. The connection to the Internet through the selected Internet service provider is based on a set of dynamic link libraries of code and information for the selected Internet service provider.
TL;DR: In this article, the authors present two server-initiated protocols to improve the performance of distributed information systems (e.g. WWW). But neither of these protocols is scalable.
Abstract: We present two server-initiated protocols to improve the performance of distributed information systems (e.g. WWW). Our first protocol is a hierarchical data dissemination mechanism that allows information to propagate from its producers to servers that are closer to its consumers. This dissemination reduces network traffic and balances load amongst servers by exploiting geographic and temporal locality of reference properties exhibited in client access patterns. Our second protocol relies on "speculative service", whereby a request for a document as serviced by sending, in addition to the document requested, a number of other documents that the server speculates will be requested in the near future. This speculation reduces service time by exploiting the spatial locality of reference property. We present results of trace-driven simulations that quantify the attainable performance gains for both protocols.
TL;DR: A distributed group activity network system as mentioned in this paper is a method over a computer network that synchronizes and provides access by system users to shared data files of a group activity by connecting one or more server computers and client computers by network connections.
Abstract: A distributed group activity network system and corresponding method over a computer network. It synchronizes and provides access by system users to shared data files of a group activity. The distributed group activity network system comprises one or more server computers and client computers that are connected to the server computer(s) by network connections. Each of the server computers comprises a network server and a memory system. The network server runs on the server computer and provides basic network services that are available at the server computer. The memory systems of the server computers store synchronization files and shared data files of the group activity. Each of the client computers comprises a memory system and a system module running on the client computer. The system modules of the client computers use the memory systems of the client computers and the available basic network services at the server computer(s) to synchronize and provide access to the shared data files by the system users by also using the memory systems of the client computers and the available basic network services at the server computer(s) to synchronize access to and access the synchronization files.
TL;DR: In this article, a client-server network enables interconnection to both the Internet and switched network by establishing a switched network connection to the client using a client's communication number determined from the client information.
Abstract: A client-server network enables interconnection to both the Internet and switched network. In response to a received client service request, a connection is established over the Internet between a client and a server. Client information transmitted from the client to the server over the Internet connection is used to enable the server to provide the requested service by establishing a switched network connection to the client using a client's communication number determined from the client information.
TL;DR: In this article, a plurality of clients are connected to one or more servers, and when a client initiates a connection with a server, the server responds to the request for connection by transmitting a message back to the client to determine whether the client is a network terminal or not.
Abstract: A plurality of clients are connected to one or more servers. When a client initiates a connection with a server, the server responds to the request for connection by transmitting a message back to the client to determine whether the client is a network terminal or not. The client responds with a message that is received by an application dispatcher at the server which takes one of a pair of actions based on whether the client is a network terminal. If the client terminal is a network terminal, then the application dispatcher spawns a server application in the server which responds to the client application in the client. Going forward, the server application responds to all future requests from the client application. If the client is not a network terminal, then the application dispatcher initiates a client application in the server to service the client terminal application requirements. Requests from the client application on behalf of the client terminal are subsequently serviced by a server application at the server which communicates to the client terminal via the client application at the server.
TL;DR: In this article, a system providing improved NLS in application programs is described, which employs normalized Unicode data with generic transformation structures having locale overlays, for effecting various transformation processes using locale-specific information.
Abstract: A system providing improved National Language Support (NLS) in application programs is described. The system employs normalized Unicode data with generic transformation structures having locale overlays. Methods are described for navigating the structures during system operation, for effecting various transformation processes using locale-specific information. The locale-specific information is maintained in the structures as external data files. Since the data files are read in at runtime, the underlying binary files which comprise the program need not be modified for updating the program to support a new locale. The approach provides extensibility to applications with National Language Support. Additionally, increased portability is provided, since manipulation of the underlying data remains unchanged regardless of the underlying platform. Program maintenance is also decreased, since engineers need only maintain a single core.
TL;DR: In this paper, a distributed computer system is presented with software for a client computer, a server computer, and a network for connecting the client computer to the server computer which utilizes an execution framework code segment configured to couple the server computers and the client computers via the network.
Abstract: An interprise computing manager in which an application is composed of a client
(front end) program which communicates utilizing a network with a server (back
end) program. The client and server programs are loosely coupled and exchange
information using the network. The client program is composed of a User
Interface (UI) and an object-oriented framework (Presentation Engine (PE)
framework). The UI exchanges data messages with the framework. The
framework is designed to handle two types of messages: (1) from the UI, and (2)
from the server (back end) program via the network. The framework includes a
component, the mediator which manages messages coming into and going out of
the framework. A distributed computer system is presented with software for a
client computer, a server computer and a network for connecting the client
computer to the server computer which utilizes an execution framework code
segment configured to couple the server computer and the client computer via
the network. A plurality of client computer code segments are stored on the
server. Each client code segment is designed for transmission over the network
to a client computer to initiate coupling. A plurality of server computer code
segments are also stored on the server. A particular client code segment is
selected, installed and executed in response to initiation of coupling via the
network with a particular client utilizing the transmitted client computer code
segment for communicating via a particular communication protocol to a
corresponding server code segment on the server computer. Finally, a
framework for migrating existing applications into the execution framework is
integrated into the client-server architecture.
TL;DR: In this paper, a dynamic server switching system maintains a list in each client which identifies the primary server for that client and the preferred communication method as well as a hierarchy of successively secondary servers and communication method pairs.
Abstract: The dynamic server switching system maintains a list in each client which identifies the primary server for that client and the preferred communication method as well as a hierarchy of successively secondary servers and communication method pairs. In the event that the client does not have requests served by the designated primary server or the designated communication method, the system traverses the list to ascertain the identity of the first available alternate server-communication method pair. The client then uses this retrieved data to initiate future requests. The client periodically tests the primary server-communication method pair to determine whether the fault has been cleared. If so, the client reestablishes the originally selected primary server-communication method pair as the request route. This system dynamically load balances in the face of failures, handles transient faults and can use a neuromorphic processing element to monitor system activity and rewrite entries in the lists as a function of changing system activity. In this manner, the system provides dynamic server switching for maximum service availability without consuming significant processing resources.
TL;DR: In this paper, a version map is used by the client computer process while requesting a remote procedure to format the request to a version supported by the server computer process, thus permitting client and server computer processes coresident in a distributed computer system to be upgraded independently while ensuring backward compatibility with earlier versions.
Abstract: A distributed computer system incorporating multiple computer processes enables a client computer process to request execution of a remote procedure on a server computer process even when the server computer process does not support a current version of the client computer process. A version map is utilized by the client computer process while requesting a remote procedure to format the request to a version supported by the server computer process, thus permitting client and server computer processes coresident in a distributed computer system to be upgraded independently while ensuring backward-compatibility with earlier versions.
TL;DR: In this paper, the authors present a block retrieval means (BRM) for the World Wide Web (WWW) service, which is used on a parallel Web server providing Web pages to clients over the Internet.
Abstract: A server computer connectable to a network and having a plurality of processors (20, 30, 40) arranged to provide a service to one or more client computers connected to the network. The service Involves the provision of blocks of information to a client computer (50), and the processors have access to a data storage (120) in which data for the blocks of information is stored. Each processor in the server has block retrieval means (80), employed in response to a request from a client computer (50) for a particular block of information from that processor, to retrieve data from the data storage (120) to construct a file representing the requested block of information, the file including references to subsequent blocks of information requestable by the client (50). Additionally, load determining means (100) periodically determines activity data for the processor for inclusion In a load distribution record maintained for all of the processors of the server. Decision means (90) is then used which, for each reference to a subsequent block of information in the file constructed by the block retrieval means (80), determines, based on the load distribution record, which processor should service a request from the client computer (50) for that subsequent block of information, and includes an address for that processor in the file constructed by the block retrieval means (80). The file is then sent to the client computer (50). In preferred embodiments, the service being provided is the World Wide Web (WWW) service, and the technique Is employed on a parallel Web server providing Web pages to clients over the Internet.
TL;DR: In this paper, a method and system for transparently executing code using a surrogate process is provided, where the underlying system provides a surrogate program that can execute server dynamic-link libraries.
Abstract: A method and system for transparently executing code using a surrogate process is provided. In a preferred embodiment, the underlying system provides a surrogate program that can execute server dynamic-link libraries. When a client program wishes to access an object of a sharable class or a class factory object, the client program requests a service control manager to execute the server code for the sharable class. In response, the service control manager determines from a registration database whether the server code is available in the form of a server executable or a server dynamic-link library. If the server code is implemented as a server dynamic-link library, the service control manager either returns the location of the server dynamic-link library to the client program to be run in the execution context of the client program or the service control manager launches the surrogate program and requests it to load the server dynamic-link library, thereby isolating the server dynamic-link library from the client program execution context. When the surrogate process is launched, the surrogate process loads the requested server dynamic-link library and instantiates class factory objects corresponding to the sharable classes implemented by the server dynamic-link library. In one embodiment, multiple server dynamic-link libraries can be loaded within the same surrogate process. According to this embodiment, when the client program requests access to an object of a sharable class or to a class factory object, the service control manager determines whether the server code that implements the object can be loaded in a surrogate process that is already executing or whether a new surrogate process needs to be launched. Once the server dynamic-link library is loaded in the surrogate process and a reference to a server object returned to the client program, the client program can communicate with the server code in the same manner as if the server code had been loaded into the execution context of the client program.