PALTask is a chat based tool which integrates personalized context in order to perform automation of web tasks such as: simultaneously searching for resources on the internet (video, websites, images, audio files) among different providers; facilitating sharing of web resources. To achieve this personalized automated search, a user’s personal context-sphere is taken into account, as well as an analysis of the chat context.The concept is similar to existing chat applications where two users enter into communication with each other. Each instance of the chat client application is associated with a fixed geographic location. However, chat client users can benefit from dynamically migrating instances of the chat server application to a location that improves the users’ experience (e.g. via improved latency and/or bandwidth). In principle this is similar to Skype’s approach of nodes and supernodes. However, while Skype’s nodes are positioned at fixed geographic locations and user requests are redirected to connect to specific nodes, PALTask dynamically migrates lightweight instances of the server to locations which improve the experience of its users on a case by case basis. The locations of lightweigth PALTask server instances are determined dynamically based on the geographic location of its users.

(Click to enlarge)

  • Andi Bergen
  • Pratik Jain
  • Lorena Castañeda
  • Hausi Müller
  • Sudhakar Ganti
Requirements are divided into two categories: User Requirements and Service requirements.

User Requirements

User requirements include:
  1. Use PALTask chat client.
  2. Communicate with another user of PALTask by entering messages in the chat tool.
  3. Browse list of displayed resources.
  4. Share a resource with other user in the chat. Particularly sharing video files/links.       

Service Requirements

  1. Client application connects to fixed master node with a request to communicate with another user. 
  2. Master node determines availability of desired chat partner and the geographic location of both users.
  3. If needed master node spawns lightweight server application at an edge node located conveniently for each chat participant. 
  4. Master node then instructs client application to connect to the appropriate server.


Application Design : Centralized Client Server

The current design of PALTask focusses on one centralized server which handles all communication requests of its client applications. 
The client application connects to the server which then controls the entire process of message passing between chat participants. This follows the conventional approach of a client-server chat application.
The figure below describes the traditional client server design.

Application Design: Distributed Server

The distributed application has an added level of complexity. Prior to connecting the client to a server which facilitates communication between users, the client application will connect to a master node. This master node determines an ideal network location based on criteria which are designed to improve the users’ experience. Both the master node and the server nodes exist on the edge, though there is no reason to prohibit migration to the core when extremely heavy loads are experienced in the future.

To illustrate the design of the distributed application consider the following case. The master node is deployed at an edge in Victoria. At the same time an initial lightweight server application is also located at the same edge. Two users from Toronto connect to the master node. Upon determining the location of the users, the server node is duplicated and spawned at the edge in Toronto. Once this server node is operational, the master node instructs the client applications to connect to the newly instantiated server node located on an edge in Toronto. Thus, improving bandwidth and latency for both chat participants. Any additional users from Toronto or surrounding area would also connect to the master node, which then instruct them to use the existing server node in the edge in Toronto (unless it is overloaded). 

Another benefit of our distributed design is related to efficient network resourse utilization. When users share files, such as images, videos, or audio files, with another user, this data follows the same path in the network as the text/voice/video chat content: content passing between users travels from each client application to their respective server; this server is located in a SAVI edge that is optimally suited to increase user experience by optimizing bandwidth and latency. Having dynamically migrated the server application thus provides improved user experience. Additionally, when users share a link to a bandwidth intensive resource such as online videos, this design is anticipated to improve overall network utilization. Generally when two users click on such a link and begin streaming video content, for example, two separate streams from the source to each user are initiated. With this design, we hope to demonstrate that only one such data stream is required. This is made possible by only splitting the stream at the last possible location in the network, namely, the edge closest to the users.

The figure below highlights the anticipated design.

PALTask Future

Chat applications have existed successfully for decades. Our centralized design operates correctly as expected. Adding more resources such as cpu, gpu, FPGA, NetFPGA and access to shared bandwidth improves the performance under heavy load.

However, the intention is to implement a server application which is capable of migrating lightweight instances of the application to locations that provide added performance benefits to the user. SAVI is ideally situated for this type of application due to the mobility that application can exhibit by moving between edge nodes and the core. Providing smart location optimized chat services will not only improve the user experience of such a tool, but it will also improve resource usage. Data packets are no longer required to travel to fixed locations, no matter how inconveniently located the server is. Instead these paths are optimized by migrating the chat server.

Moving Forward

We plan on deploying the master node and chat server on an edge node. To evaluate the actual improvement of performance (such as latency and available bandwidth) we plan to deploy clients on user’s home machines which are geographically close to another edge node. Ideally, PALTask will deploy an instance of the server to the edge closest to it’s users and a measurable performance improvement should be observed over an approach using only a centralized chat server.