1

Ich interessiere mich für Architekturen für erweiterbare Netzwerk-Serving-Anwendungen. Ich bin nicht sehr interessiert an dem Protokoll oder der Sprache, sondern an der Eleganz und Erweiterbarkeit des Designs. Natürlich kommt mir Apache in den Sinn, aber ich habe mich gefragt, ob jemand noch andere Beispiele hat, mit denen er gerne arbeitet.Was ist ein Beispiel für einen gut gestalteten Netzwerkserver?

EDIT: nur um zu klären, ich frage nach einer Server-Anwendung, die ein Netzwerkprotokoll implementiert. Web-Entwicklungs-Frameworks sind in diesem Sinne keine Netzwerk-Server. Zu den Protokollen gehören unter anderem: FTP, HTTP, XMPP, SNMP, IMAP usw. Gute Netzwerkserver implementieren eine Art von Parallelität, konzentrieren sich auf Skalierbarkeit, haben aber auch eine gute Erweiterbarkeit.

Antwort

3

nginx (siehe auch die nginx wiki) ist ein HTTP-Server und Mail-Proxy, der einen Ruf für Skalierbarkeit und Ressourceneffizienz erworben hat. Es verwendet eine ereignisbasierte Architektur (die epoll, kqueue usw. unterstützt), um die Speicherauslastung auch unter großen Lasten gering zu halten.

+0

Das ist genial, so etwas ist genau das, wonach ich gesucht habe. – bmdhacks

2

Dargestellt würde ich Apache hier werfen, um zu verhindern, dass jeder gleichzeitig damit antwortet.

0

's Web Framework ist ein netter Server. Aus diesem Grund sind alle Webanwendungsserver sehr erweiterbar.

+0

Dies ist kein Netzwerkserver, der keine Netzwerkprotokolle implementiert. – bmdhacks

+0

Es scheint HTTP zu implementieren, da es sich um einen Webserver handelt. Da Sie sagen, dass HTTP nicht implementiert wird, ist Ihre Frage verwirrend. –

0

Ich würde sagen, ASP.NET ist eine gut gestaltete Server-Anwendung. Das Programmiermodell ist erweiterbar (ermöglicht das Einbinden in jedes Ereignis des Anforderungslebenszyklus mit von Benutzern erstellten Modulen).

Auch extrem skalal und performant.

Die Caching-Funktionalität allein lohnt sich. Ich kann Ihnen einen generischen Link zu ASP.NET geben, aber ich bin mir sicher, dass Sie damit vertraut sind.

http://www.asp.net/

+0

asynchrone Webseiten sind ein weiterer großer Vorteil – Sesh

0

Zum Schreiben von Netzwerkservern ich mit POE arbeiten.

+0

POE ist ein sehr interessantes Tool zum Aufbau von Netzwerkservern, aber es ist nicht an sich ein Netzwerkserver. – bmdhacks

0

Ejabberd ist ein XMPP-Server in Erlang geschrieben. Die native Nachrichtenübergabe der Erlang-Programmiersprache passt gut zu einem Instant-Messaging-Server, der Ejabberd sehr modular und parallel ist.

0

Der Asterisk PBX ist ein Open-Source-Telefonieserver, der eine Reihe von VoIP-Protokollen einschließlich SIP implementiert. Es ist ziemlich modular und unglaublich konfigurierbar, sogar mit seiner eigenen Programmiersprache, AEL, um IVR-Dialplan-Interaktionen zu beschreiben.

0

Jetty hat gut für mich gearbeitet. Es ist schnell und funktioniert gut unter Last. Natürlich hängt die Leistung davon ab, welche Art von Anwendung Sie zusätzlich zu Jetty implementieren.

0

Ich würde einen Blick auf OpenSSH werfen, es ist bekannt dafür, praktisch undurchdringlich zu sein.Dies ist hauptsächlich auf den intensiven Überprüfungsprozess der OpenBSD-Gruppe zurückzuführen, aber ich vermute, dass es auch mit der Architektur zusammenhängt.

Für Erweiterbarkeit würde ich ein wenig tiefer zu OpenSSL (das zugrunde liegende Protokoll-Toolkit für OpenSSH verwendet).

0

Da niemand sonst es erwähnt hat: IIS.

Es ist eine sehr erweiterbare Anwendung für Windows (die selbst extrem erweiterbar ist).

Tack auf ASP und andere .NET-Komponenten und Sie können nicht wirklich vielseitiger als das.

Verwandte Themen