Skip to content

GSoC2015 Proposal: WebSocket for syslog ng (Wenqi Wu)

Wenqi Wu edited this page Mar 23, 2015 · 2 revisions

Project Goal

The goal of this project is to create a WebSocket destination, which can push log messages to a web server using the WebSocket protocol. The secure connection should be configurable. This destination will be used for alerting by syslog-ng.

Background

WebSocket is a protocol providing full-duplex communications channels over a single TCP connection. It is designed to be implemented in web browsers and web servers. It is established when the client sends a WebSocket handshake request to the server, to which the server returns a WebSocket handshake response.

syslog-ng is an open source implementation of the Syslog protocol for Unix and Unix-like systems. It is a widely used standard for message logging over TCP and permits separation of the software that generates messages, the system that stores them, and the software that reports and analyses them.

Project Deliverables

  • Sample webserver which is capable of receiving and handling messages coming from syslog-ng
  • Simple WebSocket destination to communicate with the sample webserver and to deliver messages

Schedule of Deliverables

The project schedule is as follows:

Phase 1: Now till 24 May

Familiarise with the WebSocket protocol. Familiarise with syslog-ng on a strong user level. Study the syslog-ng code base. Set up developer environment.

Phase 2: 25 May to 5 June

Create a webserver which is able to receive and handle messages coming from syslog-ng.

Phase 3: 6 June to 21 June

Create a WebSocket destination to communicate with the sample web server and to deliver messages.

Phase 4: 22 June to 26 June

Fix bugs and clean up code.

Phase 5: 27 June to 3 July

Do mid-term evaluations. Fix bugs and catch up on previous deadlines, if any.

Phase 6: 4 July to 21 August

Fix bugs. If there is time, discuss with mentor on side projects which can be implemented and work on those.

Phase 7: 22 August to 28 August

Prepare final evaluation for submission. Submit code samples to Google. Provide concise documentation for app for future reference.

Prior Experience

I have developed a Javascript game engine that will become a part of my university’s curriculum to teach first year computing students object oriented programming. The repository can be found at https://github.com/wenqiwooo/TitanBattle.

I have experience in developing for iOS and Android mobile platforms. During one hackathon event, I developed a geolocation-based social giving application within 24 hours. The write up can be found at https://theuniversaltactboard.wordpress.com/. The repository can be found at https://github.com/wenqiwooo/Tackboard. I have also created an Android QR code reader. The repository can be found at https://github.com/wenqiwooo/AndroidQRReader.

I implemented my own online LMS with the basic functionalities. I have also created a “self-adapting” database that returns different results for queries depending on the current state of the user. This was my attempt at making an intelligent system which is able to selectively assign questions for students to answer based on their competency in the subject and their areas of weakness. The repository for the Oracle DB PL/SQL packages can be found at https://github.com/wenqiwooo/Evolearn. The repository for the online LMS can be found at https://github.com/wenqiwooo/EvolearnWeb. Some of the pages with be nonfunctional without linking to the database.

I have also participated in Capture the Flag competitions previously and am aware of security vulnerabilities pertaining to web development.

Languages / Operating systems I am familiar with:

C, C++, Java, JavaScript, Mac OS X, Linux, PL/SQL, Python, SQL, Swift, Windows

Availability

I will be able to commit 40 hours per week. During the month of May, I might be away on a trip for 5 days. I have not considered other employments or internships.

About Me

I am currently a freshman pursuing a computer science degree at the National University of Singapore. I have a strong passion for computing and like to challenging myself with learning new things. I occasionally do some kernel hacking and have participated in the Eudyptula Challenge as a side hobby. I would like to challenge myself to take up this project as it will provide me with opportunities to understand network protocols and Linux better, as well as enable me to contribute back to the open-source community.

Personal Details

Name: Wu Wenqi

Email: wenqi_wu@hotmail.sg

Mobile: +65 9824 9971

Timezone: UTC +08:00

University: National University of Singapore (NUS)

Degree: Computer Science

Clone this wiki locally