Skip to main content

Posts

Showing posts from June, 2018

Comment system Architecture

Sockets A socket is one endpoint of a two-way communication link between two programs running on the network. It allows real time, bidirectional communication between the web client and server. This allows for logged in users to see comments in real time without refreshing the page in a similar way as in Google docs . Architecture  The GraphSpace notification system ( pull request ) sends users notifications when certain operations (such as graph deletion or graph creation) have been completed. In practice, many users (such as those in a large group) may receive these notifications, which involves creating database entries for each user. If we attempt to do all of these operations from the perspective of the user performing them. Thus, we elected to use Kafka (a messaging queue) to enable an asynchronous notification system. In the notification system architecture the notification has to be created only after a successful database operation of creating/deleting graph, ...

Websockets in Django

"WebSocket is a computer communications protocol, providing full-duplex communication channels over a single TCP connection. The WebSocket protocol was standardized by the IETF as RFC 6455 in 2011, and the WebSocket API in Web IDL is being standardized by the W3C." WebSockets are used for streaming messages. To implement real-time notification we need to stream messages from the server to the client without a refresh or making an HTTP request from the client. Hence websockets. We will be implementing sockets in Django using Django Channels. Channels is a project that takes Django and extends its abilities beyond HTTP - to handle WebSockets, chat protocols, IoT protocols, and more.  But WSGI server does not support websockets(present gateway interface used by graphspace). We will be using Daphne , a server specially designed for channels. It's pretty easy to deploy channels on Daphne. For websockets we will be using ASGI as the gateway interface and Daphne as t...

Project Introduction

Comment System for GraphSpace Organization : National Resource for Network Biology (NRNB) GraphSpace is an user-friendly web-based platform that collaborating research groups can utilize for storage, interaction, and network sharing. A GraphSpace user can import graphs created in Cytoscape , upload them through a REST API, interact with them by customizing and saving layouts, share them within and between groups of collaborators, search for different graphs, and organize them using tags. These functions are enabled through GraphSpace’s comprehensive REST API, which allows users to communicate. Several research groups and people using GraphSpace would like not only to visualize the graph but also discuss about different nodes, edges and subgraphs present in the graph. Effective discussion about the graphs can be promoted with the help of comments. The aim of this project is to implement a real-time system that will allow users to comment on graphs and discuss ideas with each...