TL;DR: In this article, a system and method for maintaining data coherency in a system in which data is replicated on two or more servers is presented, where each server is able to update the data replica present on the server.
Abstract: A system and method for maintaining data coherency in a system in which data is replicated on two or more servers. Each server is able to update the data replica present on the server. Updates are logged for each server. Reconciliation of server data replicas is aggressively initiated upon the occurrence of predefined events. These events include arrival at a scheduled time, a request for data by a client system, server and network failure recovery. Reconciliation is managed by a coordinator server selected to ensure that at most one coordinator server per network partition is selected. Logged updates are merged and transmitted to each server containing a data replica. The logged updates are applied unless a conflict is detected. Conflicts are collected and distributed for resolution. Reconciliation is managed between servers without regard to operating system or physical file system type.
TL;DR: The Siemens Nixdorf Informationssysteme (SNI) AG is based on a client/server model and includes backup clients for various Unix systems, PCs such as those with MS-DOS/Windows, and PCs in the Novell NetWare network.
Abstract: Powerful but nevertheless easy-to-operate systems for backing up and reconstructing data from clients are necessary in a distributed heterogeneous environment. The concept of the Siemens Nixdorf Informationssysteme (SNI) AG is based on a client/server model. It runs under the control of a SINIX server and includes backup clients for various Unix systems, PCs such as those with MS-DOS/Windows, and PCs in the Novell NetWare network. Logical data backup and restore actions for any file or disk partition in a Unix system and for any file in a PC system can be performed automatically and at defined times during an operation. The backup media are tapes, DAT cartridges, magneto-optical disks, and associated autochangers and jukeboxes. >
TL;DR: In this paper, the authors propose a method and means for reducing the storage requirement in a backup subsystem and further reducing the load on the transmission bandwidth between the clients and the backup subsystem.
Abstract: In a client/server environment having a backup subsystem, a method and means for reducing the storage requirement in said backup subsystem and further reducing the load on the transmission bandwidth between the clients and the backup subsystem. This is accomplished by maintaining a copy of frequently accessed files on both the server and clients when a file is modified on the client, a delta file which is the difference between the base file and the modified version of the base file is created and transmitted to the server to be stored on a storage medium which is part of the backup subsystem. Alternatively, whenever a client modifies a file, the base version of that file is transmitted to the client from the server, a delta file is created and transmitted to the server to be stored on the storage device which is part of the backup subsystem. Alternatively, modified files are transmitted to the backup server and the differencing is carried out at the backup server.
TL;DR: In this article, a server/client for a network-based multicast system has a media services manager (1604) and one or more media service providers (1612, 1614, 1616, 1620, 1622).
Abstract: A server/client for a network-based multicast system has a media services manager (1604) and one or more media service providers (1612, 1614, 1616, 1620, 1622). When functioning as a server, the media service providers receive data corresponding to a channel having one or more related data streams, where each media service provider receives data corresponding to a data stream of the channel. In the server, the media services manager receives the data from the media service providers and transmits the data to the network. When functioning as a client, the media services manager receives data from the network fora selected channel having one or more related data streams. In the client, the media service providers receive and play the data from the media services manager, where each media service provider receives and plays data corresponding to a data stream of the channel. In a preferred embodiment, a channel has logically related audio, video, and/or text data streams.
TL;DR: In this paper, a workload manager creates an in storage representation of a set of performance goals, each goal associated with a class of clients (e.g., client transactions) in a client/server data processing system.
Abstract: A workload manager creates an in storage representation of a set of performance goals, each goal associated with a class of clients (e.g., client transactions) in a client/server data processing system. A set of servers, providing service to the clients, are managed to bring the clients into conformity with the class performance goals by: calculating performance indexes for each class to determine the target class(es) which are farthest behind their class performance goals; analyzing the relationship among servers and client classes to determine which servers serve which classes; determining which resource(s) are impacting the service provided to the key servers (that is, those on which the target class(es) are most heavily reliant), and projecting the effect of making more of these resources available to those servers; and, finally, making the changes to those resources which are projected to most favorably indirectly affect the performance of the target class(es).
TL;DR: In this paper, an integrated voice and data messaging system for small office/home office (SOHO) users having access to one or more database services, including a voice-mail service is described.
Abstract: An integrated voice and data messaging system is disclosed. The system includes a Server comprising a first computer, a network applications platform (NAP) running on the first computer, and means for storing voice and data messages. In addition, the system includes a Client comprising a second computer with an associated display and means for transmitting analog voice messages and digital data messages to the Server, a Client/Server interface coupling the Client to the Server and providing a medium over which the Client and Server communicate; and a Universal Mailbox Application running on the Server, the Client, or both the Server and Client. The system is capable of visually indicating to a user, via the display device associated with the Client computer, that a message has been delivered for the user and is being held by the Server, wherein the message may be a voice, data or facsimile message. The system is particularly suited for exchanging messages among Small Office/Home Office (SOHO) users having access to one or more database services, including a voice-mail service. The SOHO users are typically not attached to a local area network (LAN) and gain access to a Server of the messaging system through a public switched telephone network (PSTN), a telephone and a personal computer (PC).
TL;DR: In this paper, a client/server-based secure time-of-day (TOD) computer system is provided, where the server encrypts a current time value from its TOD clock using a private key corresponding to a selected client over an open communications channel.
Abstract: A client/server-based secure timekeeping computer system is provided. A secure-time server which is located in a physically trusted environment, includes a highly accurate time-of-day (TOD) clock, along with a key storage area containing a table of public/private key pairs corresponding to clients in the client/server network. The server encrypts a current time value from its TOD clock using a private key corresponding to a selected client. The encrypted time value is then sent to the client over an open communications channel. Each client in the network is equipped with its own secure timekeeping facility housed within the secure boundaries of a single, tamper-proof VLSI chip. Upon receipt of a secure-time transmission, a client uses its own copy of its private key to decrypt the time value, then loads the decrypted time value into its TOD clock. The tamper-proof VLSI chip in each client also includes an authenticated-time indicator, which is set to TRUE to indicate that the TOD clock contains a trusted time. Programs that require secure time may check the authenticated time indicator before executing and may cancel execution if a secure time is not available. Programs that do not require secure time are able to execute regardless. To maintain the ongoing accuracy of the client TOD clock once it is set with a trusted time value, the secure timekeeping facility in a client may further include calibration and clock stability adjustment mechanisms which receive client clock calibration adjustment values and accuracy duration values, and which apply these values at intervals to maintain the accuracy of the client TOD clock within acceptable limits and mark the clock as untrusted when it can no longer be maintained within acceptable limits.
TL;DR: In this paper, a method and apparatus for operating parallel databases in a multi-processor computer system is presented, and presented to users, as if the database resides under the control of a single Data Server, even though the database is partitioned across multiple Data Servers.
Abstract: A method and apparatus for operating parallel databases in a multi-processor computer system. Client Applications interact with a Navigation Server executing on the computer system, and through it, with one or more Data Servers. The Navigation Server receives requests from the Client Applications, which it compiles or translates into a plurality of parallel SQL statements. These parallel SQL statements are communicated to particular ones of the Data Servers for execution. The Data Servers, each of which may execute on different processors in the computer system, perform their respective SQL statements and thus access their database partitions concurrently and in parallel, thereby reducing the overall access time of a given request from a given Client Application. The computer system behaves, and is presented to users, as if the database resides under the control of a single Data Server, even though the database is partitioned across multiple Data Servers.
TL;DR: In this paper, the authors take 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, to the internet and the World Wide Web and their role in the new generation of client and server and object management.
Abstract: From the Publisher:
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, to the internet and the World Wide Web and their role in the new generation of client/server and object management, this book covers it all
TL;DR: In this article, a computer-implemented capacity planning system for multiprocessor computer systems used in client/server environments is presented, which provides a correctly sized and configured computer system in response to user specified requirements.
Abstract: A computer-implemented capacity planning system for multiprocessor computer systems used in client/server environments. The capacity planning system provides a correctly sized and configured computer system in response to user specified requirements. The user specified requirements comprise workload parameters. The generated output from the capacity planning generally comprises a recommended multiprocessor computer system, the number of processors needed in the system, the amount of memory required, and the configuration of a disk subsystem suitable for the system, including the number of disk drives, the size of each of the disk drives, and how they should be configured for best performance. The generated output from the capacity planning system further comprises a list price, discounted price, maintenance costs and price/performance indicator for the identified computer system configuration. The capacity planning system can also generate output describing probable system configurations and pricing from other vendors to provide a competitive analysis for the user. The output also includes the average response time performance of the configured system for the specified workload, a summary of the resource utilization, and a bottleneck analysis.
TL;DR: In this article, the authors present a data processing system, and method of operating such a system, for facilitating a connection of a program on a client computer (20) to a server (10), the server consisting of a plurality of server computers (40,50,60) with shared resources.
Abstract: The present invention provides a data processing system, and method of operating such a system, for facilitating a connection of a program on a client computer (20) to a server (10), the server consisting of a plurality of server computers (40,50,60) with shared resources The data processing system, the client computer, and the server computers all reside in a logical network The data processing system has an input means (30) for receiving a request from the client computer for a machine address of a server computer identified by a server computer name sent with the request, such a machine address enabling a connection to be made from the client computer to that server computer via the network A storage device (80) is provided by the system for storing a list identifying server computer names with machine addresses of the server computers A conversion means (70) in the system uses the list to convert the server computer name received by the input means into the machine address of the server computer, and then an output means (110) sends the machine address from the conversion means to the client computer The system is characterised by: decision logic (120) for studying the server computers at predetermined intervals having regard to a predetermined test criteria, in order to select one of the server computers; and writing means (160) for updating the list by associating the machine address for the server computer selected by the decision logic with a particular server computer name contained as a generic server computer name in the list Using this technique, when a client computer specifies the generic server computer name, it receives the machine address of the server computer identified by the decision logic
TL;DR: QuickStore is presented, a memory-mapped storage system for persistent C++ built on top of the EXODUS Storage Manager, which exemplify the two basic approaches that have been used to implement persistence in object-oriented database systems.
Abstract: This paper presents, QuickStore, a memory-mapped storage system for persistent C++ built on top of the EXODUS Storage Manager. QuickStore provides fast access to in-memory objects by allowing application programs to access objects via normal virtual memory pointers. The paper also presents the results of a detailed performance study using the OO7 benchmark. The study compares the performance of QuickStore with the latest implementation of the E programming language. These systems exemplify the two basic approaches (hardware and software) that have been used to implement persistence in object-oriented database systems. Both systems use the same underlying storage manager and compiler allowing us to make a truly apples-to-apples comparison of the hardware and software techniques.
TL;DR: In this paper, a message communication system and a distribution system are described, where a reception server 20 is arranged between a client process 10 and a processing server 30, and a demand discrimination stage 25 is provided for discriminating a demand only for a reference process and not requiring an update of medium and exclusive resources.
Abstract: The present invention discloses a message communication system and a distribution system. The feature of the present invention lies in various functions in the reception server, which is provided between the client server and the processing server. For example, the reception server performs reference processing, update processing, redundancy processing, etc. In the claimed invention, a reception server 20 is arranged between a client process 10, and a processing server 30. A demand discrimination stage 25 is provided for discriminating a demand only for a reference process and not requiring an update of medium and exclusive resources, and a demand for a reference process and reference and update process requiring a change of condition of the resource. The demand discrimination stage 25 classifies respective message communications systems into three aspects.
TL;DR: An algorithm, called ARIES/CSA (Algorithm for Recovery and Isolation Exploiting Semantics for Client-Server Architectures), for performing recovery correctly in client-server (CS) architectures, which supports a write-ahead logging, fine-granularity, and flexible buffer management policies like steal and no-force.
Abstract: This paper presents an algorithm, called ARIES/CSA (Algorithm for Recovery and Isolation Exploiting Semantics for Client-Server Architectures), for performing recovery correctly in client-server (CS) architectures. In CS, the server manages the disk version of the database. The clients, after obtaining database pages from the server, cache them in their buffer pools. Clients perform their updates on the cached pages and produce log records. The log records are buffered locally in virtual storage and later sent to the single log at the server. ARIES/CSA supports a write-ahead logging (WAL), fine-granularity (e.g., record) locking, partial rollbacks and flexible buffer management policies like steal and no-force. It does not require that the clocks on the clients and the server be synchronized. Checkpointing by the server and the clients allows for flexible and easier recovery.
TL;DR: In this article, a circuit manager module opens and maintains a communication circuit to the appropriate server application, supervising routing of messages from all client applications to that server application and receiving all incoming messages, routing them to appropriate client applications.
Abstract: A computer architecture that permits applications resident on remote "client" computers to communicate simply and efficiently with applications resident on a central server is disclosed. Client applications can effectively retrieve information from the server without detailed knowledge of server applications, the location of a requested data item or the particular hardware configuration of the host or even the client. A circuit manager module opens and maintains a communication circuit to the appropriate server application, supervising routing of messages from all client applications to that server application. The circuit manager also receives all incoming messages, routing them to the appropriate client applications. A client application can specify message destination in the form of a specific circuit (which requires substantial program awareness of communication patterns), or an identifier associated with the target application, or the type of information being requested from the server.
TL;DR: This work proposes a new mechanism, divergence caching, for reducing access and communication charges in accessing online database servers by allowing tolerant read requests, namely requests that can be satisfied by out-of-date data.
Abstract: Proposes a new mechanism, divergence caching, for reducing access and communication charges in accessing online database servers. The objective is achieved by allowing tolerant read requests, namely requests that can be satisfied by out-of-date data. We propose two algorithms based on divergence caching-static and dynamic. The first is appropriate when the access pattern to an object in the database is fixed and known, and the latter is appropriate in other cases. We analyze these algorithms in the worst case and the expected case. >
TL;DR: The author shows how business sized objects (CBOs),rather than applications, are the best 'shape' for the 1990s and result in both ease of programming and business benefits.
Abstract: From the Publisher:
This is a book about the dramatic advantages to be gained from applying object-orientation to client-server systems,describing a new approach to structuring application software. The author shows how business sized objects (CBOs),rather than applications,are the best 'shape' for the 1990s and result in both ease of programming and business benefits. The reader will therefore be shown how to make the most of client-server technology by reevaluating the design of application level and system level code.
TL;DR: In this article, an apparatus and method for supporting a plurality of outstanding requests between a client and a server in a network is described, and the server buffers responses until receiving an implicit acknowledgement from the client.
Abstract: An apparatus and method are disclosed for supporting a plurality of outstanding requests between a client and server in a network. If the server completes computation of a later request from a client before an earlier request, then the network protocol supports transmission of responses in an out-of-order manner to the client, thereby allowing a high degree of parallelism on the client and the server. The server buffers responses until receiving an implicit acknowledgement from the client.
TL;DR: A new client-server based system which is centered around a lifetime data repository (LDR) is under construction, to maintain the patient centered decision support aspects of the existing HELP* system while providing an open architecture that supports faster application development and allows execution of applications to be distributed across many computers.
Abstract: A new client-server based system which is centered around a lifetime data repository (LDR) is under construction. The goal of the new system is to maintain the patient centered decision support aspects of the existing HELP* system while providing an open architecture that supports faster application development and allows execution of applications to be distributed across many computers. These goals are achieved by implementing the system with software components that are commercially available or by adhering to national and international standards for software integration. Keys to successful integration include the use of MS-DOS @, OS/2#, and UNIX Section as operating systems, Microsoft OLE 2.0 as a standard interface to the clinical database, the use of TUXEDO as a transaction/communication manager, and the use of ORACLE [symbol: see text] RDBMS as the underlying database management system.
TL;DR: In this paper, a direct marketing server provides CATV stations with program information and questionnaire information, and each CATV station stores the information in media servers and send them at requests from the media stations at respective homes.
Abstract: PURPOSE: To grasp customers' needs and the advertisement effect of articles by sending audio/video information at a client's request, and recording the number of requesting clients and the history of request contents on a server in time series and monitoring and analyzing the records. CONSTITUTION: A direct marketing server 102 provides CATV stations with program information and questionnaire information. The CATV stations stores the information in media servers and send them at requests from the media stations at respective homes. At this time, each CATV station observes the audience ratings by areas and stores the records in the media server. Further, questionnaire result information sent from the customers at the respective homes is also recorded. The server 101, on the other hand, provides services at inquiry/ ordering requests regarding articles from the media stations at the respective homes and stores the histories and program ratings in the server 101. The information stored in the server 101 is monitored and analyzed to control the production and distribution of articles. COPYRIGHT: (C)1996,JPO
TL;DR: This work presents a scalable garbage collection scheme for systems that store objects at multiple servers while clients run transactions on locally cached copies of objects that provides fault tolerance and is optimized to reduce overhead on common client operations.
Abstract: We present a scalable garbage collection scheme for systems that store objects at multiple servers while clients run transactions on locally cached copies of objects. It is the first scheme that provides fault tolerance for such a system: Servers recover from failures and retrieve information needed for safe garbage collection; clients do not recover from failures, yet the scheme is able to reclaim objects referenced only from failed clients. The scheme is optimized to reduce overhead on common client operations, and it provides fault tolerance by doing work in the background and during client operations that are infrequent. >
TL;DR: This paper discusses the justification, design, and implementation of ENO, an audio server designed to make it easy for applications in the Unix environment to incorporate non-speech audio cues.
Abstract: ENO is an audio server designed to make it easy for applications in the Unix environment to incorporate non-speech audio cues. At the physical level, ENO manages a shared resource, namely the audio hardware. At the logical level, it manages a sound space that is shared by various client applications. Instead of dealing with sound in terms of its physical description (i.e., sampled sounds), ENO allows sounds to be presented and controlled in terms of higher-level descriptions of sources, interactions, attributes, and sound space. Using this structure, ENO can facilitate the creation of consistent, rich systems of audio cues. In this paper, we discuss the justification, design, and implementation of ENO.
TL;DR: The authors develop and evaluate a number of storage reclamation algorithms for client-server persistent object stores and show that one of the proposed algorithms, the Incremental Partitioned Collector, is complete, maintains transaction semantics, and can be run incrementally and concurrently with client applications.
Abstract: The authors develop and evaluate a number of storage reclamation algorithms for client-server persistent object stores. Experience with a detailed simulation and a prototype implementation in the Exodus storage manager shows that one of the proposed algorithms, the Incremental Partitioned Collector, is complete, maintains transaction semantics, and can be run incrementally and concurrently with client applications. Furthermore, it can significantly improve subsequent system performance by reclustering data, rendering it attractive even for systems that choose not to support automatic storage reclamation. >
TL;DR: This volume answers the question "How does one use TCP/IP?" -- focusing on the client-server paradigm, and examining algorithms for both the client and server components of a distributed program.
Abstract: Comprehensive coverage of building TCP/IP Applications for the popular Windows "TM" Sockets protocol. -- Covers all server designs including multiservice, multiprotocol, and single-process concurrent servers. -- Provides a conceptual basis for client and server design that points out the similarities and differences among various client and server designs, the role of concurrency, and when to use each design. -- Features the most complete coverage of server technology, demonstrating how to apply advanced server technology to applications. This volume answers the question "How does one use TCP/IP?" -- focusing on the client-server paradigm, and examining algorithms for both the client and server components of a distributed program. It presents an implementation that illustrates each design and discusses techniques like application-level gateways and tunneling. The book also reviews several standard application protocols and uses them to illustrate the algorithms and implementation techniques.
TL;DR: The authors describe a generalized multimedia server architecture which consists of a distributed network of storage elements, control elements and network interface elements interconnected with a wideband switch fabric and a number of strategies for allocating video files to the storage elements in this server architecture.
Abstract: Examines multimedia servers that are used to store and play back large quantities of data for a large number of simultaneous users. Data files tend to be very long and are presented in the form of streams which must be maintained in synchronism with the display. The authors describe a generalized multimedia server architecture which consists of a distributed network of storage elements, control elements and network interface elements interconnected with a wideband switch fabric. They then describe a number of strategies for allocating video files to the storage elements in this server architecture and present the results of computer simulations describing the performance of the server under different assumptions of user demand.
TL;DR: This paper discusses the scaling and cost issues in the server in order to provide information on how to balance server costs against communications costs.
Abstract: Large scale multimedia systems combine technologies from audio and video systems, communications systems and computer systems. Multimedia systems store compressed video files digitally on a server that is shared by a large number of users. A video server is characterized by the number of simultaneous video streams it can support and by the size of the video library. Storage costs are a significant aspect of a video server because of the very large size of the objects. In setting up a video service, there is a choice between having one very large central server, multiple decentralized servers, or a hierarchical server structure. This paper discusses the scaling and cost issues in the server in order to provide information on how to balance server costs against communications costs. >
TL;DR: In this paper, the client program and the server program are comprised of program code capable of execution within a data processing system, and a client program sends a request for a service to the server programs.
Abstract: In a data processing system, a programming language processor capable of executing program code is provided. A client program and a server program are also provided within said data processing system. The client program and the server program are comprised of program code capable of execution within said data processing system. Once the client and server programs are invoked, the client program sends a request for a service to the server program. In response to program code within the server program, a request is sent to the client program for a service that requires access to a variable within the client program. The client program then processes the request from the server program and sends the server program a response. Thereafter, the server program continues processing the request from the client program in response to gaining access to the variable in the client program. If the server program has not been initialized when the client program requests a service, the client program automatically initializes the server program.
TL;DR: In this paper, a process for terminating a client server network connection that includes a first automatic termination of all programs executing on the client from code accessed from the server is described, and the disconnection process proceeds normally to sever the network connection.
Abstract: A process for terminating a client server network connection that includes a first automatic termination of all programs executing on the client from code accessed from the server. The disconnection processing interrogates the client computer system to determine any open program files or libraries. Network program files or libraries result in a user prompting to determine whether they should be automatically terminated. In an alternate embodiment, a profile may indicate whether automatic termination will take place without user notification. Once all network loaded programs have been terminated, the disconnection process proceeds normally to sever the network connection.
TL;DR: The prototype system implements a three-layer architecture to provide greater control and flexibility in the distributed multitasking environment and can be further refined to provide more flexible control of activities.
Abstract: Computing in a distributed environment for multitasked cooperative work is a promising area that presents many coordination issues. Our prototype system implements a three-layer architecture to provide greater control and flexibility in the distributed multitasking environment. The architecture includes a groupware server, application servers, and clients. The architecture can be further refined to provide more flexible control of activities. More applications, such as group calendaring and participative design can also be studied to find their idiosyncratic coordination needs and to elaborate the division of labor among different servers and clients. >
TL;DR: This work shows here a practical means for developing context interchange capabilities in a client-server architecture by use of semantic values (i.e., data and their context) as the unit of data exchange.