build TCP/IP listener & parser in Rstudio to read/write into Redis database
1) There is this open-source software called Rstudio (http://rstudio.org/) that I want to customise. The source code is available on github (https://github.com/rstudio/rstudio/). The aim of this whole project is to customize Rstudio and add new features, so if you are not comfortable with your ability to do it, please do not bid on this project. I am especially interested in RStudio Server, which enables to provide a browser based interface to a version of R running on a remote Linux server. You will need to set that up for me as a first prerequesite.
2) Now, I get several time-series data feeds streaming through TCP/IP socket connection that must be added to the Rstudio environment. These feeds need to be parsed in real-time, and the parsed data must be added as it is streaming in a redis database, all within the customised version of Rstudio. let me detail further:
2.a The parser should be configurable, which means basically that we need to build a very similar tool to http://www.aggsoft.com/tcpip-data-logger.htm and we need to merge this tool in Rstudio so that we can configure on which port we are listening, how we should parse the data coming from each socket and which data within the stream should be added automatically to the redis database. We also need to make sure to keep the connections with these feeds alive and to reconnect, should the feeds get killed. In case of an extended period without connection, the system will be able to recover missing data from simple API calls and, add it to the redis database. Missing data sanity checks should be automatically processed on a daily basis anyway.
2.b The parsed data must be added live into a redis database. Rstudio must be able to start-up instances of the Redis server and initializes itself, and to handles the request/response cycle from TCP/IP parsed data to R using the rredis package (http://cran.r-project.org/web/packages/rredis/vignettes/rredis.pdf). Redis database management, TCP/IP socket connection, and parsing should all be handled by Rstudio thanks to simple UI interface (new tabs).
2.c An event scheduler to launch R scripts must be implemented and will be handled from the Rstudio interface: e,g: R Scripts can be launch every X minute, or when the parsed data match certain predifined criteria.
All this need to be configurable from Rstudio.
3)Finally Rstudio must also be able to send messages through TCP/IP upon Rscript execution.
- Many element in this project are opensource (for instance how to set up redis: https://github.com/MSOpenTech/Redis), or how to interface R with TCP/IP (http://www.rosuda.org/Rserve/index.shtml). So, you need to be comfortable with the fact that part of this Elance project could be open sourced as well.
- Code must be properly commented and documented.
- Deliverable should be the executable customized Rstudio in .exe, as well as the source code. Everything should work with Rstudio server as well.
- Detailed instructions must be given so that I can build from the source code as well as set up the customised Rstudio server by myself, even though I am a total beginner when it comes to remote Linux server.
- No payment will be made if I am not able to build from source and set up Rstudio server thanks to your detailed instructions.You agree with this condition upfront, and it is not negotiable.