Die Serverkomponente: EJServer

Der EJServer ist ein vollständiger TCP/IP basierter Netzwerkserver, der entweder zum Aufbau von Serveranwendungen oder zur Integration in bestehende Anwendungen genutzt werden kann. Er bietet Unterstützung für:

  • Java non-blocking IO (java.nio)
  • Java stream-oriented IO (java.io)
  • persistente als auch nicht-persistente Verbindungen
  • Kompression von Netzwerkdaten
  • skalierbares Multithreading
  • Nutzung aller Prozessorkerne auf Multiprozessorsystemen
  • HTTP Protokoll (1.0 partiell, 1.1 partiell und ausschließlich lesend)
  • partielles Lesen/Schreiben ohne Prozessblockierung bei großen Datenmengen
  • automatische Überwachung der IO-Prozesse mit Reaktivierung/Neustart "gestorbener" Prozesse
  • dateibasierte als auch programmatischer Konfiguration

Erzeugen der Serverinstanz

Ein Server ist immer eine Instanz der Klasse de.netseeker.ejoe.EJServer. Die Instanz muss durch Aufruf eines der angebotenen Konstruktoren erzeugt werden:
  • EJServer()
    Erzeugt eine neue Instanz von EJServer, vorkonfiguriert mit den Einstellungen aus der Datei "ejserver.properties", welche auf dem Classpath verfügbar sein muss
  • EJServer(Properties properties)
    Erzeugt eine neue Instanz von EJServer, vorkonfiguriert mit den übergebenen Einstellungen. Dieser Konstruktor kann benutzt werden, wenn die Einstellungen für EJServer bereit aus einer anderen Konfigurationsdatei geladen wurden.
  • EJServer(String pathToConfigFile)
    Erzeugt eine neue Instanz von EJServer mit den Einstellungen aus der übergebenen Konfigurationsdatei.
  • EJServer(ServerHandler handler)
    Erzeugt eine neue Instanz von EJServer mit Standardeinstellungen und dem übergebenen ServerHandler.
  • EJServer(ServerHandler handler, int port)
    Erzeugt eine neue Instanz von EJServer mit Standardeinstellungen und dem übergebenen ServerHandler. Es wird anstelle des Standardports (12577) am übergebenen Port auf eingehende Verbindungen gewartet.
  • EJServer(ServerHandler handler, String bind Addr)
    Erzeugt eine neue Instanz von EJServer mit Standardeinstellungen und dem übergebenen ServerHandler. Es wird das Netzwerkinterface für die übergebene Bind-Adresse benutzt, zum Beispiel "127.0.0.1" oder "81.209.148.146". Damit kann man verhindern, dass EJServer auf allen verfügbaren Netzwerkinterfaces auf eingehende Verbindungen wartet.
  • EJServer(ServerHandler handler, String bindAddr, int port)
    Erzeugt eine neue Instanz von EJServer mit Standardeinstellungen und dem übergebenen ServerHandler. Es wird das Netzwerkinterface für die übergebene Bind-Adresse benutzt, zum Beispiel "127.0.0.1" oder "81.209.148.146". Damit kann man verhindern, dass EJServer auf allen verfügbaren Netzwerkinterfaces auf eingehende Verbinden wartet. Es wird anstelle des Standardports (12577) am übergebenen Port auf eingehende Verbindungen gewartet.