TL;DR: In this article, a distributed application is defined as an application made up of distinct components (e.g., virtual appliances, virtual machines, virtual interfaces, virtual volumes, virtual network connections, etc.) in separate runtime environments.
Abstract: Teachings of this application include a computing network that may include multiple different data centers and/or server grids which are deployed in different geographic locations. In at least one embodiment, at least some of the server grids may be operable to provide on-demand, grid and/or utility computing resources for hosting various types of distributed applications. In at least one embodiment, a distributed application may be characterized as an application made up of distinct components (e.g., virtual appliances, virtual machines, virtual interfaces, virtual volumes, virtual network connections, etc.) in separate runtime environments. In at least one embodiment, different ones of the distinct components of the distributed application may be hosted or deployed on different platforms (e.g., different servers) connected via a network. In some embodiments, a distributed application may be characterized as an application that runs on two or more networked computers.
TL;DR: In this article, the authors propose to use dynamic location information to selectively preload data, or representations, signatures, segments, etc. of data, in order to overcome the one or more operating characteristic.
Abstract: In a network supporting transactions between clients and servers over a network path having operating characteristics to overcome, data is transported to overcome the operating characteristics using user affinities and dynamic user location information to selectively preload data, or representations, signatures, segments, etc. of data, in order to overcome the one or more operating characteristic. Examples of operating characteristics to overcome include bandwidth limitations, errors and latency. The dynamic location information can be stored in data structures accessible by agents of a data server and the data structures are populated based on user activities with respect to proxies associated with user locations, or the dynamic location information can be obtained implicitly as proxies maintain connections after termination by clients and the use of those maintained connections for preloading of data for the users associated with those clients. The data being preloaded can be protocol-specific data or protocol-independent data.
TL;DR: In this paper, a content delivery network has at least a first tier of servers, and a second server may be in a second tier or it may be an origin server, depending on whether the resource is popular or not.
Abstract: A content delivery network has at least a first tier of servers. A content delivery method includes, at a first server in the first tier of servers, obtaining a request from a client for a resource. If the resource is available at the first server or at a peer of the first server, then the resource is served to the client from the first server. Otherwise, it is determined whether the resource is popular, and if the resource is determined to be popular, then the first server obtains the resource and the first server serves the resource to the client. If the resource is determined not to be popular, the client is directed to a second server, not in the first tier of servers, and the second server serves the resource to the client. The second server may be in a second tier of servers or it may be an origin server.
TL;DR: The application of the client/server(C/S) mode, the concept and the programming principle of the socket based on C/S, the method of software design for the communication between the client, server-process using the socket mechanism is mainly analyzed, and examples of connection-oriented service program are given.
Abstract: This paper introduces the application of the client/server(C/S) mode, the concept and the programming principle of the socket based on C/S. The method of software design for the communication between the client, server-process using the socket mechanism is mainly analyzed, and gives examples of connection-oriented service program. The transmission layer can provide connection oriented to use TCP protocol, connectionless-oriented to use UDP protocol. There are two different kinds of services with different kinds of sockets. Only by understanding the characters of TCP protocol and UDP protocol, the service provided by the two protocols for application, can we know what deal with in these protocols, what need to deal with in application, can we easier compile vigorously and healthily, highly efficient client service program.
TL;DR: In this paper, a client-based computer system adapted to communicate with a remote server through a network and to provide access to content or services provided by the server is described, which includes a storage device and a cache.
Abstract: A client-based computer system adapted to communicate with a remote server through a network and to provide access to content or services provided by the server. The system includes a storage device and a cache. The cache is adapted to communicate with the server over the network, to intercept a request from the client to the server, and to store responses from the server on the storage device. The cache is further adapted to automatically determine when to send the request to the server over the network. The cache is still further adapted to provide a response, including from the responses stored on the storage device based upon the request, to appear as through the server provided the response. The system may also include a crawler. The crawler is adapted to operate in conjunction with the cache to cause requests to be sent to the server over the network.
TL;DR: In this article, a load balancing scheme for a server cluster is described, where each server in the cluster independently hashes the application identifier into a unique number, which is used to determine a preferred one of the servers for the connection.
Abstract: A load balancing scheme is described for a server cluster. An application identifier is received by the cluster from a client desiring to connect to the application. Each one of the servers in the cluster independently hashes the application identifier into a unique number. This unique number is used to determine a preferred one of the servers for the connection. The servers then each calculate a priority code using the unique number, a load level for each server, and/or a node identifier assigned to the servers in the cluster. If the preferred cluster server is available, it transmits its priority code to the client before the other servers transmit their priority codes. Otherwise, each of the available cluster servers transmits their priority codes to the client. The client selects the cluster server with the most favorable priority for making the connection.
TL;DR: In this paper, a multiple-load balancer is used for balancing loads in two or more server clusters in the server system to identify a sequence of servers for processing the service request.
Abstract: In a network arrangement where a client requests a service from a server system, e.g., through the Internet, a multiple-load balancer is used for balancing loads in two or more server clusters in the server system to completely identify a sequence of servers for processing the service request. Each server in the resulting sequence belongs to a different server cluster. The service request is sent to the first server in the sequence, along with information for routing the request through the sequence of servers.
TL;DR: In this paper, the authors describe a method for a client to access the services of a server such as a web server by sending service requests over a persistent connection to the server, detecting a beginning of a response to the first service request from the server and transmitting a second service request to the service server after the beginning of the response is detected.
Abstract: Methods and systems for a client such as a web browser to access the services of a server such as a web server are disclosed. In one embodiment, a method implemented by a client to transmit service requests to a server includes, transmitting a first service request over a persistent-connection to the server, detecting a beginning of a response to the first service request from the server, and transmitting a second service request to the server after the beginning of the response is detected. The client can be a web browser, and the server can be a web server. The first and second service requests, as well as the response to the first service requests may be transmitted over a persistent connection.
TL;DR: A computerized system and method for managing, annotating and sharing web pages comprising: a system server comprising a server application and a www server, the system server communicating over the internet with one or more client computers, each S comprising a www browser and a client application, the server storing a plurality of web-project folders, each web project comprising links to web-pages accessed by the client computer's user and annotations added by the user to the webpages, each client application comprising means for viewing the stored server data; means for selecting a web project, means for displaying a
Abstract: A computerized system and method for managing, annotating and sharing web pages comprising: a system server comprising a server application and a www server, the system server communicating over the internet with one or more client computers, each S comprising a www browser and a client application, the system server storing, for each the client computers, a plurality of web-project folders, each web-project comprising links to web-pages accessed by the client computer's user and annotations added by the user to the web-pages, the server application comprising means for managing the stored data, each client application comprising means for viewing the stored server data; means for managing the stored server data; means for selecting a web project; means for selecting a web-page for display; means for selecting an annotation for display; means for annotating the displayed web-page and means for saving the web projects, the web-pages and the annotations on the server.
TL;DR: This paper examines the problem of remote authentication in online learning environments and explores the challenges and options of using biometric technology to defend against user impersonation attacks by certifying the presence of the user in front of the computer, at all times, and presents a biometrics-based client-server architecture for continuous user authentication in e-learning environments.
Abstract: With the rapid proliferation of online learning, students are increasingly demanding easy and flexible access to learning content at a time and location of their choosing. In these environments, remote users connecting via the public Internet or other unsecure networks must be authenticated prior to being granted access to sensitive content such as tests or personal/private records. Today, the overwhelming majority of online learning systems rely on weak authentication mechanisms to verify the identity of remote users only at the start of each session. One-time authentication using password, personal identification number (PIN), or even hardware tokens is clearly inadequate in that it cannot defend against insider attacks including remote user impersonation or illegal sharing or disclosure of these authentication secrets. As such, these methods are entirely unsuitable for circumstances where the outcome of an online assessment or a course of study is the granting of a formal degree, professional certification, or qualification or requalification for a particular skill or function. This paper examines the problem of remote authentication in online learning environments and explores the challenges and options of using biometric technology to defend against user impersonation attacks by certifying the presence of the user in front of the computer, at all times. It also leverages a 5-step process as the basis for a systems approach to ensuring that the proposed solution will meet the critical remote authentication assurance requirements. The process and systems approach employed here are generic, and can be exploited when introducing biometric-enabled authentication solutions to other applications and business domains. The paper concludes by presenting a biometrics-based client-server architecture for continuous user authentication in e-learning environments.
TL;DR: In this article, a system and method for providing video content to a client system is described, where a server and a computer coupled by a network are used to obtain operating environment information of the computer in response to a request for video content from the computer.
Abstract: A system and method for providing video content to a client system is disclosed. The system includes a server and a computer coupled by a network. The server obtains operating environment information of the computer in response to a request for video content from the computer. The server selects a version of the requested video content for sending based on the obtained operating environment information. The selected video can be received by the computer at the computer's particular connection speed over the network and can be played by the computer using its particular video player. The server sends the selected video to the computer and causes the computer to automatically begin playing the video without requiring any overt interaction by the operator of the computer.
TL;DR: In this article, a universal resource identifier (URI) is sent from the client computer to the server computer over the network, where the URI indicates a program, e.g., a graphical program (GP), or at least a portion of a graphical programming interactive development environment (GPIDE).
Abstract: System and method for performing program-related operations over a network via a web browser. A network connection is established between a server computer and a client computer over a network. A universal resource identifier (URI) is sent from the client computer to the server computer over the network, where the URI indicates a program, e.g., a graphical program (GP), or at least a portion of a graphical program interactive development environment (GPIDE), e.g., a graphical program editor, an execution engine, a static or dynamic analyzer, and/or compiler. The at least a portion of the GPIDE is received from the server computer over the network in response to the URI, and executed in a web browser of the client computer to perform some specified functionality with respect to the GP.
TL;DR: In this paper, a packet data switching system comprises content-addressable memory configured to redirect, to a measurement computer, a request to access a server application program hosted at a server computer in response to receiving the request from a client computer; the measurement computer comprises request rewriting logic configured to receive the request via redirection based on the CAM, to record a first time value representing a time of receiving the requests, to forward the request to the server application, to receive a response from the server computer to the request, to rewrite a payload of the response by embedding a browser-
Abstract: In an embodiment, a packet data switching system comprises content-addressable memory configured to redirect, to a measurement computer, a request to access a server application program hosted at a server computer in response to receiving the request from a client computer; the measurement computer comprises request rewriting logic configured to receive the request via redirection based on the CAM, to record a first time value representing a time of receiving the request, to forward the request to the server application, to receive a response from the server computer to the request, to rewrite a payload of the response by embedding a browser-executable measurement reporting script into the payload, and to forward the rewritten response to the client; performance recording logic configured to receive a second time value from the client based on the client computer executing the measurement reporting script, and to store a performance record with the time values.
TL;DR: In this article, a collection server sorts the connection data from the servers based upon the data center where the server is located and clusters of the location or routing of the client, based on a geographic mapping of a client, routing by the autonomous system number, or an IP address prefix.
Abstract: Techniques are described to collect and analyze network performance data. Servers are modified so connection data, including data re-transmitted, is stored on each server of a data center that serves data to clients. Each server then sends the connection data stored to a collection server that aggregates the data. The collection server sorts the connection data from the servers based upon the data center where the server is located and clusters of the location or routing of the client. The location of the client may be based on a geographic mapping of the client, routing by the autonomous system number, or an IP address prefix. A high rate of re-transmissions from a particular data center to a particular client location may indicate problems in certain areas of the network. The routing of data transmissions may be altered to a different data center or by assigning a different routing.
TL;DR: In this paper, a framework for adaptive scheduling of asynchronous file system operations is proposed, which can accelerate, defer, or cancel asynchronous requests to improve application-perceived performance, including network bandwidth, server I/O, server CPU, and client and server memory utilization.
Abstract: Scheduling operations such as asynchronous file system operations in a network storage system is accomplished by applying a bid-price online auction methodology, in which bid (willingness-to-pay) values and price (cost) values are dynamically set by storage clients and a storage server, respectively, based on utilization of computing resources. The system provides a framework for adaptively scheduling asynchronous file system operations, managing multiple key resources of the distributed file system, including network bandwidth, server I/O, server CPU, and client and server memory utilization. The system can accelerate, defer, or cancel asynchronous requests to improve application-perceived performance. Congestion pricing via online auctions can be employed to coordinate the use of system resources by clients, so clients can detect shortages and adapt their resource usage.
TL;DR: In this article, a system for facilitating collaboration among users via a network includes a server and user computers, each user computer has a browser client configured with the server to provide collaborative services relative to applications invoked by users on the user computers.
Abstract: A system for facilitating collaboration among users via a network includes a server and user computers. Each user computer has a browser client configured with the server to provide collaborative services relative to applications invoked by users on the user computers. The browser clients and the server make available to each user computer, in web format, content from heterogeneous content sources, at least some content obtained via the applications. The browser clients are configured with the server to capture in a web layer and make available to the user computers explicit social information and implicit social information provided by the users via the browser clients using the collaborative services.
TL;DR: In this paper, a method of managing an organization of a computer system including a plurality of servers each capable of executing requested services, the services belonging to a service group defined based on data necessary for executing the services, is provided.
Abstract: There is provided a method of managing an organization of a computer system including a plurality of servers each capable of executing requested services, the services belonging to a service group defined based on data necessary for executing the services. Service groups are assigned to the plurality of servers. The method including: selecting, when a load imposed on a server exceeds a predetermined upper limit, a server of transfer destination for executing some of the services to be executed on the server having the load exceeding the upper limit; selecting at least one service group out of service groups assigned to the server having the load exceeding the upper limit; assigning the selected service group to the server of transfer destination; and transferring data necessary for executing services belonging to the selected service group from the server having the load exceeding the upper limit to the server of transfer destination.
TL;DR: In this article, a facility is provided for transitioning a database service from a failing, primary server to another server of a computing environment including a plurality of servers, at least some of which have a common database service capability, but not commonly replicated supporting databases.
Abstract: A facility is provided for transitioning a database service from a failing, primary server to another server of a computing environment including a plurality of servers, at least some of which have a common database service capability, but not commonly replicated supporting databases. The facility includes, responsive to detection of failure at the primary server, selecting another server of the plurality of servers to function as database service backup for the primary server, updating at least one configuration file of the computing environment to indicate that the another server is to function as database service backup for the primary, failing server, and dynamically creating at least one database structure at the another server. The dynamically created at least one database structure supports the database service backup function at the another server and corresponds to a database structure of a database supporting the database service at the primary server.
TL;DR: In this paper, the authors present a system for automatically managing session resources in a distributed network of processors, where a remote client uses resources at a server for a limited duration, such that the resources being used by a client may be used by other clients after the client has disconnected from the server.
Abstract: Systems and methods for automatically managing session resources in a distributed network of processors are disclosed. In one embodiment of the invention, a system for managing the use of resources in a system where a remote client uses resources at a server for a limited duration includes: a stored listing of at least one resource being used at the server and the client using that resource; a system which identifies that a remote client is no longer using resources at the server; and in response to the system identifying that the client is no longer using resources at the server, a mechanism which removes the resources which had been used by the client when the client was connected to the server, whereby the resources being used by a client may be used by other clients after the client has disconnected from the server.
TL;DR: This MR collaborative environment is based on a client/server architecture where multiple users can create and modify product features in a 3D physical space simultaneously and a tri-layer model representation scheme is designed to facilitate product creation and visualization.
TL;DR: In this paper, a load balancer allocates requests to a pool of web servers configured to have low queue capacities, and each web server self-monitors its rejection rate, and if the rejection rate exceeds a threshold, the number of processes concurrently running on the web server is increased.
Abstract: A load balancer allocates requests to a pool of web servers configured to have low queue capacities. If the queue capacity of a web server is reached, the web server responds to an additional request with a rejection notification to the load balancer, which enables the load balancer to quickly send the rejected request to another web server. Each web server self-monitors its rejection rate. If the rejection rate exceeds a threshold, the number of processes concurrently running on the web server is increased. If the rejection rate falls below a threshold, the number of processes concurrently running on the web server is decreased.
TL;DR: In this paper, the authors present a resource management method for an information processing system having a plurality of physical servers and plurality of virtual servers, and a management server connected to the physical server via a network.
Abstract: A resource management method executed by an information processing system having a plurality of physical servers 104 and a plurality of virtual servers 120 to be operated on the physical server, and a management server 101 connected to the physical server via a network 207 to specify the virtual server associated to a resource pool 130 and the physical server for operating the virtual server, collect performance information of the specified physical server, and calculate the performance information of the resource pool on the basis of the collected performance information.
TL;DR: The Batching pattern is presented, the circumstances in which the pattern should and should not be used are discussed, and eight classes of existing techniques that instantiate it are identified.
Abstract: The Batching design pattern consists of a common piece of design and implementation that is shared by a wide variety of well-known techniques in Computing such as gather/scatter for input/output, code downloading for system extension, message batching, mobile agents, and deferred calls for disconnected operation.
All techniques mentioned above are designed for applications running across multiple domains (e.g., multiple processes or multiple nodes in a network). In these techniques, multiple operations are bundled together and then sent to a different domain, where they are executed. In some cases, the objective is to reduce the number of domain-crossings. In other cases, it is to enable dynamic server extension.
In this article, we present the Batching pattern, discuss the circumstances in which the pattern should and should not be used, and identify eight classes of existing techniques that instantiate it.
TL;DR: In this paper, a method for assessing a trustworthiness level of a user computer by communication between the user computer and a first server is proposed. But the method is not suitable for the case of large numbers of users.
Abstract: A method includes assessing a trustworthiness level of a user computer by communication between the user computer and a first server. A record indicating the trustworthiness level is sent from the first server to the user computer, for storage by the user computer. A request is sent from the user computer to a second server, different from the first server, for a service to be provided to the user computer by the second server. The record is provided from the user computer to the second server by communicating between the user computer and the second server. At the second server, the trustworthiness level is extracted from the record, and the requested service is conditionally allowed to be provided to the user computer depending on the extracted trustworthiness level.
TL;DR: In this paper, the authors present a method, computer program product, and system for determining a number of users corresponding to a server load including simulating one or more virtual users on a test computer system on coupled to network.
Abstract: A method, computer program product, and system for determining a number of users corresponding to a server load including simulating one or more virtual users on a test computer system on coupled to network. One or more client requests are sent from each of the one or more virtual users to a server application executed on a server computer system coupled to the network. A metric indicative of a load on the server computer system is measured. The metric is compared to a predetermined value; and the number of the one or more virtual users is changed based on the difference between the metric and the predetermined value until the metric is within a predetermined range of the predetermined value.
TL;DR: A load balancing algorithm that adapts its strategies for allocating Web requests based on the Web servers’ status to choose the best server to allocate a request and passes the IP address of the chosen Web server to the client that initiated the request and allows the client to establish a connection with the server directly, thereby eliminating the participation overhead of the intermediate redirector.
Abstract: We propose a load balancing algorithm that adapts its strategies for allocating Web requests based on the Web servers’ status. The system used in our experiment comprises of two components: (1) a Prober and (2) an Allocator. The Prober gathers the status information from the Web servers every 50 milliseconds. The status information consists of the load on each Web server and a check for a cache hit. Based on this status information, the Allocator calculates a weighted metric for each server. This metric has three components: (1) CPU load on the server, (2) server’s response rate, and (3) the number of requests served by the server. The Allocator chooses the Web server with the least value for this metric. Unique features of this approach are (1) consideration of both the global information (consisting of status at other Web servers) and local information at each Web server to choose the best server to allocate a request, and (2) the algorithm passes the IP address of the chosen Web server to the client that initiated the request and then allows the client to establish a connection with the server directly, thereby eliminating the participation overhead of the intermediate redirector. We compare our algorithm with three different methods: (1) random allocation scheme, (2) round robin allocation scheme, and (3) a recently reported scheme that uses neural networks. Our method is as good as or better (in most cases) in response time, than the other three approaches.
TL;DR: In this paper, the client requests a connection to the server by providing addresses or other connection information associated with the client to one or more of the mediation servers in communication with the server.
Abstract: Systems and methods facilitate communication between clients, servers or other nodes located on separate local area networks (LANs) or sub-networks within a home, office, campus or other environment using one or more mediation servers located within the local network environment. The server establishes a persistent connection to each available mediation service. The client requests a connection to the server by providing addresses or other connection information associated with the client to one or more of the mediation servers in communication with the server. The mediation server(s) send network information associated with the client to the server via the persistent connections. The server responds to the mediation server(s) by providing network information that can be relayed to the client. When the client and server have exchanged network information, communications between the client and server can be established using conventional or proprietary network address translation (NAT) or other techniques.
TL;DR: The authors consider the evolution of the mobile Web workload and trends in server and client devices with the goal of anticipating future bottlenecks and developing management strategies.
Abstract: The mobile Web's widespread diffusion opens many interesting design and management issues about server infrastructures that must satisfy present and future client demand. Future mobile Web-based services will have growing computational costs. Even requests for the same Web resource will require services to dynamically generate content that takes into account specific devices, user profiles, and contexts. The authors consider the evolution of the mobile Web workload and trends in server and client devices with the goal of anticipating future bottlenecks and developing management strategies.
TL;DR: In this article, a system and method for the secure storage of data in a network is presented, where data stored on a primary server connected to the network is initially encrypted and the IP address of the primary server is sent to a second server via the network, and a communication is received from the second server indicating pending instructions.
Abstract: A system and method for the secure storage of data in a network. Data stored on a primary server connected to the network is initially encrypted. The IP address of the primary server is sent to a second server, via the network, and a communication is received from the second server indicating pending instructions. If the instructions indicate that theft of the primary server has occurred, then the data stored on the primary server is re-encrypted and the IP address of the primary server is sent to the second server. if attempted unauthorized access of the primary server is determined, and a predetermined number of consecutive unauthorized attempts to access the primary server are made, then the data stored on the primary server is erased.
TL;DR: In this paper, the authors propose a system where a plurality of service-offering servers, a client, and an interchange server perform intermediary processing when the client uses a service.
Abstract: A system makes it possible to use services offered by a plurality of servers different from one another is realized with the use of a common API. The system includes a plurality of service-offering servers, a client that uses services offered by the plurality of service-offering servers, and an interchange server that performs intermediary processing when the client uses a service. The client performs communication with the interchange server while using a common API when using any service among a plurality of services offered by the plurality of service-offering servers. The interchange server uses a unique API, which is unique to the service-offering server that offers the service selected by the client, to execute a processing sequence that is unique to the service-offering server. The client may use any service among services offered by the plurality of service-offering servers with the use of a common API without any need to use a unique API, which is unique to each of the plurality of service-offering servers.