Jump to content

User:Sfmist/sandbox

From Wikipedia, the free encyclopedia

G-WAN Web Server[edit]

www.gwan.com

G-WAN is a super-scalable webserver: it's based around the "C scripts" concept: A C script is simply C source-code that is compiled by the webserver and then loaded in protected memory. It will get called by the webserver when a request to the servlet is made. The servlet, as it's compiled by a C compiler, is "as fast" as normally compiling a C program. However, the advantage of C scripts to, for instance, CGI or FastCGI, is that the compiled program is in the same memory space as the webserver. This reduces the overhead of communication (either by creating a process, in the case of CGI, for each request, or the socket for FastCGI).

The webserver is using the select/poll technique: non-blocking I/O. However, there's a neat thing to it. Every program can be written as if it was using blocking I/O. As the webserver itself compiles each C script, it can transform the program to use non-blocking I/O. As of this, it can link itself to third-party libraries (like database access) and still make use of the non-blocking I/O nature: no thread/process context switching. The tools provided for programming the C scripts are, for instance, caching and safe buffers.

The latest G-WAN version is able to work with a variety of Key-Value stores and noSQL databases: G-WAN Native KV, Tokyo Cabinet, Redis, BDB and others.

Performance-wise: there are some benchmarks available showing it's outperforming many other webservers. On multi-core CPU's it's able to achieve an unprecedented 1,000,000 RPS (request-per-second).

G-WAN is developed and supported by a team of developers in Switzerland, and the US (Silicon Valley). There is a forum where you can ask any questions.

G-WAN supports a variety of programming languages: Java, C, C++, Java, Objective C/C++, Lua, Python. So you will benefit from whatever native libraries each language implements. For C scripts, well, the /usr/lib directory lists more than 1,500 libraries that G-WAN can re-use with a simple #pragma link "library". It's great to be able to write a Web application with a part in C, another in C++ and a third one in Java!

To take the ultimate advantage of G-WAN speed, you need good skills in C. The API provided, however, is very simple. Each version is guaranteed to be backwards-compatible and you don't have to rewrite your code.

G-WAN is a freeware, that means that people are not under the obligation of paying a license to use it for commercial purposes.

G-WAN has allowed me to do things that could not be done with other servers like:

- Using cheap virtual servers where I would have had to use dedicated servers - Using the same Web server to create applications in different languages - Creating applications which rely on different programming languages - Test code modifications without having to redeploy packages or modify configurations, etc.

G-WAN speed and minimal memory footprint make it possible to power the next-generation Cloud Development Platform - EON Applications Platform - www.engineon.com.