Dein letzter Login ist schon eine Weile her.

Bitte überprüfe, ob alle Angaben in Deinem Profil noch aktuell sind.


Code Competition: Paralleler Webserver

Erstelle Deinen eigenen parallelisierten Webserver!


Update 28.03.2016: Alle Abgaben sind ausgewertet. Die Gewinner wurden benachrichtigt und alle Teilnehmer haben ein persönliches Feedback zu Ihrer Abgabe erhalten.
Die Gewinner findest Du hier, sie stellen sich und ihre Abgabe zudem in Kürze im Blog vor.

  1. Platz: Robin
  2. Platz: Florian
  3. Platz: Matthias

Vielen Dank für Eure zahlreiche Teilnahme und die wirklich interessanten Webserver!


{ABOUT}

In dieser Code Competition wollen wir gemeinsam einen Webserver entwickeln, der mit Hilfe von Threads paralles Arbeiten Abarbeiten ermöglicht.
Wieso parallel?
Ein Server stellt einen Service bereit, den ein Client anfordern kann. Ein nicht-paralleler Server, also ohne Threadunterstützung, kann Anfragen innerhalb eines Prozesses nur seriell abarbeiten. Das heißt, wenn ein Client mit dem Server verbunden ist, ist er beschäftigt und kann keine weiteren Anfragen annehmen.
Man könnte einen Server nun mit vielen Prozessen starten - oder man konzipiert den Server direkt so, dass er eine parallele Bearbeitung von Anfragen durch Threads ermöglicht.

{INPUT}

Als Abgabe benötigen wir den Quellcode deines Servers sowie eine kompilierte, ausführbare Datei.
Du kannst Deine Lösung in C, C++, C#, Java, JavaScript, Haskell oder Python abgeben.

{REQUIREMENTS}

  • Dein Webserver muss alle Dateien in einem eingestellten "home directory" auflisten können (Directory Listing).
  • Dein Webserver muss Anfragen auf Port 80 (localhost) bedienen (Stichwort: Sockets)
  • Dein Webserver muss parallelisiert und threadbasiert laufen. Das heißt, weitere Anfragen, während bereits eine Anfrage bearbeitet wird, müssen in einem neuen Thread bearbeitet werden (weitere Infos z.B. apache multi-threaded)
  • Dein Webserver muss thread-safe arbeiten Infos: Thread-Safety

{REVIEW}

Worauf achten wir bei der Bewertung Deines Programms?

  • Funktionalität: Lässt sich das Programm ausführen? Tut es, was es soll?
  • Code-Qualität: Ist der Code sinnvoll strukturiert und effizient?
  • Code-Lesbarkeit: Lässt sich der Quellcode nachvollziehen?
  • Dokumentation: Verstehen wir die Bedienung des Programms? Ist der Code kommentiert?
  • Zusätzliche Features: Auch besonders nützliche GUIs oder sinnvolle Zusatzfeatures fließen etwas mit in die Wertung ein ;)

{POST}

Schade, die Abgabefrist ist leider abgelaufen :(
Aber schau Dir die aktuelle Code Competition an!
Zur aktuellen Code Competition

Schnell-Login für unsere Mitglieder

Tipp: Halte Dein Profil aktuell.

Lass' uns wissen, falls sich etwas Neues bei Dir ergibt.

Tipp: Vervollständige Dein Profil für noch bessere Karrierechancen.

Bist Du Schüler, Student oder bereits berufstätig? Teile uns Deinen aktuellen Status mit, damit wir Dir sinnvolle Aufgaben anbieten können.

Jetzt Status angeben

Wann stehst Du der IT-Branche zur Verfügung?

Bitte Monat und Jahr angeben.

{{ perspectiveForm.availableFrom.$error.dynamic }}

Neuer Versuch

Wo möchtest Du durchstarten?

{{ location.geolocation.name }}×
Bitte mindestens ein Ort angeben.

Als {{currentUser.status.title}} bist Du bereit für:


Lade Beschäftigungsarten

Bitte wähle den Zeitpunkt, Ort und min. eine Beschäftigungsart aus.

You have voted!
Schliessen
Vote for:
stars
Vote
You have not rated!