Tntnet

Tntnet

Tntnet is a free in C++ coded Webserver, which enables other C++-programs to bundle requests modules. This way, users are enabled to develop Web applications in C++. The GET and POST requests are interpreted by the tntnet server and sent to the web application program, which will sent a reply back over the network.

Because of the use of C++, modern programming techniques like Object-oriented programming and polymorphism can be used natively. Unlike scripts, the webserver does not need to interpret the application's code at run time, but it is compiled in advance.

Also, the web application program, being native, will be faster than scripts. This, of course, is also possible with programs like cgid or fastcgi. Though, it takes some time to start the applications in these solutions, because of the nature of forks.

Tntnet solves this by directly integrating the web application into the webserver. When working with a big webserver like Apache HTTP Server, this would be possible using the module system. In fact, this was the original setup of tntnet. But soon, the developers reached a severe problem, namely that Apache is written in C (programming language), thus it would be hard to let Apache communicate with tntnet, which is written in C++. The use of C++, to get the advantages of modern programming, are made practically impossible this way.

In this situation, Tommi Mäkitalo developed the tntnet framework. Tntnet is also a webserver, which is present in the source code. This way, tntnet acts as a layer in front of the actual web application. When in use, the webserver part receives the HTTP requests, interpretes them and sends them to the (binary) web application part. The web application and the webserver are constantly talking to each other.

Benchmarks have shown that tntnet, with its particular setup, is faster for dynamic websites than all other tested webservers. Tntnet was compared with a lot of Apache modules and lighttpd. Only for statical websites, lighttpd performed better than tntnet, because it could directly call the "sendfile" kernel call. Tntnet doesn't have this option, so it might not be the perfect choice for purely statical websites, instead a system like lighttpd would be better.

Extra libraries

Extra libraries provide more tools for the programmer.

Cxxtools

Tntnet uses a library of tools named Cxxtools. To build applications written using tntnet, Cxxtools is needed.

Tntdb

The library Tntdb is a database abstraction layer. The programs developed using Tntdb do not depend on a specific type of underlying database system. Tntdb can handle the following database systems:
* Postgres
* SQLite3
* MySQL
* Oracle

License

The tntnet software is available under the GNU General Public License (version 2) license.

Applications

* tntwiki
* tntzenoreader - a system for using the
* [http://live.vdr-developer.org/ live] Weboberfläche für VDR - a free software package for the recording of digital video (DVB)
* Several commercial websites and websites for projects
* Several example applications (in the /demos/ directory of the tntnet package)

External links

* [http://www.tntnet.org/ Tntnet homepage]
* [http://www.tntnet.org/download/tntnet-1.6.0.1/sdk/demos/ Example applications]
* [http://radiotux.de/interviews/tntnet.mp3 Interview] with Tommi Mäkitalo at the 16th of November 2006 November 2006 by RadioTux (in German)


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Look at other dictionaries:

  • Tntnet — Logo Tntnet ist ein freier in C++ geschriebener Webserver welcher andere C++ Programme zur Bearbeitung von Anfragen als Modul einbinden kann. Damit lassen sich Webapplikationen in C++ entwickeln. Die entsprechenden Schnittstellen werden von… …   Deutsch Wikipedia

  • Comparison of application servers — Proprietary application servers provide system services in a well defined but proprietary manner. The application developers develop programs according to the specification of the application server. Dependence on a particular vendor is the… …   Wikipedia

  • Comparison of lightweight web servers — Lightweight web servers are web servers which have been designed to run with very small resource overhead because of hardware, environment, or simply for the challenge of it.[citation needed] Many of these servers have been created as a mental… …   Wikipedia

  • Comparison of web application frameworks — This is a comparison of notable web application frameworks. Contents 1 General 1.1 Perl 1.2 PHP 1.3 Java 1.4 Python …   Wikipedia

  • HTTP-Server — Der Host des ersten Webservers von Tim Berners Lee am CERN Ein Webserver (lat. servus, engl. server „Diener, Dienst“) ist ein Computer, der Dokumente an Clients wie z. B. Webbrowser überträgt. Als Webserver bezeichnet man den Computer mit… …   Deutsch Wikipedia

  • HTTP Server — Der Host des ersten Webservers von Tim Berners Lee am CERN Ein Webserver (lat. servus, engl. server „Diener, Dienst“) ist ein Computer, der Dokumente an Clients wie z. B. Webbrowser überträgt. Als Webserver bezeichnet man den Computer mit… …   Deutsch Wikipedia

  • WWW-Server — Der Host des ersten Webservers von Tim Berners Lee am CERN Ein Webserver (lat. servus, engl. server „Diener, Dienst“) ist ein Computer, der Dokumente an Clients wie z. B. Webbrowser überträgt. Als Webserver bezeichnet man den Computer mit… …   Deutsch Wikipedia

  • Web-Server — Der Host des ersten Webservers von Tim Berners Lee am CERN Ein Webserver (lat. servus, engl. server „Diener, Dienst“) ist ein Computer, der Dokumente an Clients wie z. B. Webbrowser überträgt. Als Webserver bezeichnet man den Computer mit… …   Deutsch Wikipedia

  • Web Server — Der Host des ersten Webservers von Tim Berners Lee am CERN Ein Webserver (lat. servus, engl. server „Diener, Dienst“) ist ein Computer, der Dokumente an Clients wie z. B. Webbrowser überträgt. Als Webserver bezeichnet man den Computer mit… …   Deutsch Wikipedia

  • Сравнение каркасов веб-приложений — Это сравнительная таблица фреймворков веб приложений. Содержание 1 Фреймворки 1.1 ASP.NET 1.2 C++ 1.3 ColdFusion Markup Language (CFML) …   Википедия

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”