innovative Software seit 1996

Devwex
modularer Webserver, quelloffen und kreativ

Devwex, ein modular aufgebauter, auf Java basierender Webserver; unterstützt unter anderem HTTP(S) mit virtuellen Hosts, IP/Port-Sharing, Directory Index, Filtern, Modulen, SSL/TLS, DCGI/CGI1.1, WebSockets, sowie einen auf Telnet basierenden Fernzugriff zur Serverkontrolle; optional sind unter anderem Time, SSI, FastCGI, WebDAV und mit SSX serverseitiges JavaScript verfügbar.

Stand: 15.07.2015

Historie

1.0.16

Korrektur vom Service beim Beenden.

1.0.15

Update vom Service für Windows auf prunsrv 1.0.15.0 und Optimierung in der Erkennung der Laufzeitumgebung in Hinblick auf 32/64-Bit.

1.2013.1013

Kleinere Korrekturen vom Service für Windows.

1.2013.0707

Die Module-API wurde weiter ausgebaut, die Konfiguration vereinfacht und flexibler gestaltet, weitere Altlasten und selten genutzte Modultypen sowie deren Einsprünge, sofern diese alternativ abgebildeter werden können, wurden bereinigt, der Modul-Container wurde erweitert und dessen Sequenzen optimiert, das SDK aktualisiert und das implementierte HTTP-Protokoll wurde erweitert.

  • Container: Optimierung der Sequenzen
  • Container: Erweiterung um den ShutdownHook für CTRL+C zum kontrollierten Herunterfahren
  • Konfiguration: [SERVER:HTTP/HTTPS:BAS] METHODS Wegfall von ALL
  • Konfiguration: [SERVER:HTTP/HTTPS:REF] Erweiterung der Options [X] zum Durchreichen aller HTTP-Methoden an ein Modul, unabhängig von [SERVER:HTTP/HTTPS:BAS] METHODS
  • Konfiguration: [SERVER/VIRTUAL:REF/FLT/CGI] Umstellung der Syntax für Referenzen von >> auf >
  • HTTP: Erweiterung um die Methode OPTIONS
  • HTTP: Templates, CSS-Korrektur für IE 9/10
  • HTTP-API: Wegfall der Modul-Einsprünge COMMAND, PROCESS, LOGGING, METHOD, LISTING, STATUS
  • SDK: Aktualisierung auf Seanox Commons 1.2013.0707
  • SDK: Aktualisierung auf WebSockets 1.2013.0707

1.2013.0401

Neben der Integration von WebSockets mit dem Update vom SDK auf Seanox Commons 1.2013.0401, erfolgte eine Optimierung der Initialisierung von Modulen sowie die Bereinigung einiger Altlasten.

  • Konfiguration: Änderung vom Parameter COMMONS:RELOADING in COMMONS:RELOAD
  • Konfiguration: Änderung vom Parameter COMMONS:CLEARING in COMMONS:CLEANUP
  • Konfiguration: Ergänzung vom ServerStatus 101 in allen devwex.ini Dateien
  • Module-API: Korrekte Übergabe der Konfigurationsdaten bei der Initialisierung von HTTP-Modulen
  • Module-API: Erweiterung vom Modulaufruf um die optionale Übergabe von Modul-Parametern
  • Index: allgemeine Umgestaltung von Sortierung und Navigation
  • SDK: Anpassung von extension-pack.zip, Aktualisierung auf Seanox Commons 1.2013.0401
  • SDK: Anpassung von extension-pack.zip, Erweiterung um WebSockets
  • Test: Erweiterung der Prüfung der Module-API (Übergabe der Konfiguration bei der Initialisierung)

1.2012.0815

Mit der Überarbeitung und Erweiterung der Server- und Module-APIs wird die Entwicklung von Erweiterungen stark vereinfacht. Der HTTP-Server wurde in einigen Details optimiert und unterstützt nun "Partial Content".

  • Service: Erweiterung um das Laden von Verzeichnissen und Dateien beim Start mit dem Parameter -Dlibraries
  • Module-API: Wegfall der optionalen Methoden mount/unmount
  • HTTP(S) Referenzen: Optimierung/Korrektur der CGI-Variablen SCRIPT_NAME bei der Verwendung von absoluten Pfaden mit fester Skriptzuordnung
  • HTTP(S) Templates: Allgemeine Optimierung (HTML(5)/CSS); Reduktion der Transferdaten bis zu 20%
  • HTTP(S) Status-Templates: Änderung vom Format des Dateinamen status-[code].html
  • HTTP(S) Index-Templates: Einbettung der Dateisymbole in die HTML-Datei (data:image/x-icon;base64)
  • HTTP(S) Index-Templates: Umstellung von system.index.html auf index.html
  • HTTP(S) Konfiguration: Systemverzeichnis als virtuelles Verzeichnis ist standardmässig auskommentiert
  • HTTP(S) Konfiguration: Verschiebung vom Access-Log in das Root-Verzeichnis
  • HTTP(S) Konfiguration: SERVER:*:BAS IDENTIFY in IDENTITY geändert
  • HTTP(S) Konfiguration: SERVER:*:BAS IDENTITY OFF deaktiviert nun auch die Serverkennung im Response
  • HTTP(S) Request: Verarbeitung von GET und HEAD wurde zusammengeführt
  • HTTP(S) Request: GET/HEAD bei Verzeichnissen liefert im Header kein Last-Modified mehr
  • HTTP(S) Request: GET/HEAD bei Verzeichnissen liefert im Header kein Content-Length mehr
  • HTTP(S) Request: HEAD/GET + IF-MODIFIED-SINCE/IF-UNMODIFIED-SINCE bei Verzeichnissen wird ignoriert, wurde bisher auch mit Status 304 beantwortet
  • HTTP(S) Request: HEAD/GET unterstützen nun auch IF-UNMODIFIED-SINCE
  • HTTP(S) Request: HEAD/GET unterstützen nun auch "Partial Content"
  • HTTP(S) Virtual Host: VIRTUAL:*:BAS TIMEOUT wird wieder berücksichtigt
  • HTTP(S) Konfiguration: SERVER:*:BAS/VIRTUAL:*:BAS TIMEOUT, neue Option [S] zur strikten Trennung ausgehender Datenströme bei Leerlauf oder minderem Transferaten (z.B. < 4096 b/s)
  • HTTP(S) Server: Optimierung/Korrektur der Session/Connection-Expansion wenn kein MAXACCESS gesetzt wurde
  • Projekt Ant: Umstellung der Tags auf das Format @@@ant-[property]
  • SDK: Update auf Seanox Commons 1.2012.0815
  • SDK: Erweiterung um Beispiele

1.2011.0717

Korrektur beim Setzen vom Home-Verzeichnis für den Windows-Dienst.

1.2011.0701

Anhebung der Quellen auf Java Version 1.4, womit die optionale Verwendung von SSE entfällt. Die Konfiguration wurde harmonisiert, womit das Komma in Wertelisten entfällt. Die Filter wurden überarbeitet, neue Bedingungen definiert und die Modulanbindung erweitert. Die Authentifizierung wurde um DAA (Digest-Access-Authentication) erweitert und lässt in der Deklaration nun die Verwendung mehrerer Gruppen zu. Die u.U. fehlerhafte Realm-Ausgabe wurden dabei korrigiert und das "Abtasten" von geschützten Verzeichnissen über den Status 302 und 404 unterbunden (kein Sicherheitsrisiko). Die Rückgabe von Content-Length und Last-Modified erfolgt nur noch bei der Übermittlung von angeforderten Inhalten, also nicht mehr bei Status-/Fehlerseiten.

Allgemein
  • Anpassung: Anhebung auf Java Version 1.4, Optionales SSE entfällt und damit der Parameter SSL:CONTEXT
Konfiguration
  • Anpassung: Harmonisierung Konfiguration - Wegfall vom Komma
  • Anpassung: METHODS/DEFAULT/MIMETYPES Trennung erfolgt nun mit Leerzeichen, das Komma entfällt
  • Anpassung: *:REF [access: -> [acc: geändert
  • Anpassung: MIMETYPES - Trennung durch Leerzeichen statt Komma
HTTP(S) Filter
  • Erweiterung: um die direkte Einbindung von Modulen, diese werden nun solange abgearbeitet, bis zur Veränderung von Status-Code oder Ausgabekontrolle
  • Erweiterung: neue Bedingungen CONTAINS, ALWAYS, EMPTY
  • Anpassung: Wert EMPTY entfällt durch Bedingung EMPTY
  • Anpassung: Bedingung INDEX entfällt durch CONTAINS
HTTP(S)
  • Erweiterung um Digest-Access-Authentication
  • Erweiterung der Basic/Digest-Access-Authentication um die Verwendung von mehreren Gruppen
  • Anpassung: Basic Authentication: Im Realm werden ggf. verwendete " entfernt um Fehlinterpretationen beim Client zu vermeiden
  • Anpassung: Methode HEAD Content-Length/Last-Modified: nur noch bei existierenden Dateien/Verzeichnissen und Status 200
  • Anpassung: Methode GET Content-Length/Last-Modified: nur noch bei existierenden Dateien und Verzeichnissen mit Index on und Status 200
  • Anpassung: Fehler- und Statusmeldungen liefern nicht mehr Content-Length/Content-Type, da keine angeforderten Daten übertragen werden
  • Korrektur: Logfile: ' wird nun im Dateinamen berücksichtig
  • Korrektur: Ohne Angabe vom Realm bei der Basic-Authentication entfällt die fehlerhafte/ungewollte Pseudo-Ausgabe des Realm
  • Korrektur: Basic Authetication geschützte Bereiche lassen sich über Status 302/404 nicht mehr "abtasten", es wird nun konsequent Status 401 zurückgegeben
Dokumentaion
  • Anpassung: Verbesserung der Druckausgabe

1.2011.0311

Aktualisierung vom Service für Windows und damit die Umstellung auf prunsrv.exe 1.0.5. Zudem ist nun eine 32 und 64-Bit Version enthalten, welche automatisch nach der Architektur des Betriebssystems geladen werden. In dem Zusammenhang wurden auch das u.U. fehlerhafte Einrichten von Systempfad (PATH) und Bibliotheksverzeichnis (LIBARIESPATH), wenn diese Leerzeichen enthielten, behoben.

1.2010.1110

Aktualisierung der Dienst-Erweiterung für Windows auf Version 1.0.4. Mit der Standardkonfiguration vom Logging, werden nun die bestehenden Dateien beim (Neu)Start vom Dienst nicht mehr überschrieben.

1.2010.1010

Allgemeine Überarbeitung der Server/Module-API und Verbesserungen in der Performanz standen mit dieser Version an. So wurde das komplette Connection-Handling überarbeitet. Zudem wurden einige historische Eigentümlichkeiten bereinigt. Erfreulicher Nebeneffekt -- Devwex liegt wieder unter 30k.

Projekt
  • Anpassung der Versionsverwaltung, Umstellung auf Mercurial
Serverkern
  • Erweiterung vom Windows-Startskript um das Laden von bat- und cmd-Skripten
  • Anpassung der Speicherbereinigung, diese wird nur noch bei abfallender Systemlast angefordert
  • Anpassung der Usage-Ausgabe, diese wurde allgemein verkürzt
  • Anpassung vom Windows-Startskript für den korrekten Start, wenn Variablen auf Backslash enden (führte früher zum Fehler beim Aufrufer der Java-VM)
  • Korrektur vom Windows-Startskript beim Laden der Skripte
Server-API
  • Anpassung API, allgemeine Umstellung von der Klasse Parameters auf Section (führt u.U. zur Inkompatibilität von alten Modulen)
HTTP(S) Server Modul
  • Erweiterung der Konfiguration um den Parameter BACKLOG zur Angabe der maximalen Anzahl von zurückzustellenden Anfragen beim Erreichen der maximalen Anzahl von parallelen Anfragen
  • Erweiterung der Konfiguration um den Parameter ISOLATION zur Angabe der maximalen Leerlaufzeit von Verbindungen bis zur Bereinigung
  • Anpassung der Verwaltung von Verbindungen, Änderung der Strategie zur schnelleren Annahme von eingehenden Anfragen
  • Anpassung der Listenansicht, allgemeine Überarbeitung und Optimierung der Sortierung
  • Anpassung der Listenansicht, die Variable http-location entfällt, alternativ kann script_uri verwendet werden
  • Anpassung der Listenansicht, Überarbeitung der Symbole für Temporäre Daten/Komprimierte Daten/Multimedia
  • Anpassung der Listenansicht von Verzeichnissen, Wegfall der Spalte Description, da diese über die Ikons ersichtlich ist
  • Anpassung der HTTP-Module-API, Änderung der Methode zur Einbindung von HTTP-Modulen von Session::Swap in Session::Call
  • Anpassung der HTTP-Module-API, Änderung der Methode zur Anbindung von Modulen von Module::Mount in Module::Bind (führt u.U. zur Inkompatibilität von alten HTTP-Modulen)
  • Anpassung der HTTP-Module-API, Änderung der Umgebungsvariablen zur Übergabe der Modul-Konfiguration von module_core auf module_opts (führt u.U. zur Inkompatibilität von alten Modulen)
  • Optimierung in Punkto Performanz und Wiederwendung von Objekten
  • Anpassung der Filter, allgemeine Optimierung der Interpretation/Verwendung/Performanz
  • Anpassung der Filtersyntax, Umbenennung vom Parameter FIRSTLINE in REQUEST
  • Anpassung der Requestverarbeitung, Wegfall vom Request-Objekt und funktionale Verlagerung in das Session-Objekt
  • Anpassung Templates/Filtern, hier stehen die Parameter des Request-Headers nur noch mit dem orignal Namen zur Verfügun, der bei CGI überliche Prefix http_ entfällt
  • Korrektur beim (D)CGI, liegen gleichnamige Felder im Request-Header vor, werden diese jetzt alle korrekt übergeben
  • Korrektur beim Modul-Einsprung für COMMAND, dieser wird nur noch aufgerufen, wenn ein COMMAND definiert wurde
SDK
  • Aktualisierung von Seanox Commons auf Version 1.2010.1010

1.2010.0410

Der Directory Index wurde überarbeitet und um Symbols erweitert. Das Modul ist nun fester Bestandteil von Devwex. In diesem Zuge wurden die Liste der MIME-Types aufgestockt, die Syntax für den Template-Generator verkürzt, die Generierung der Unique-Id optimiert und die Signatur vom DCGI verkürzt.

1.2009.1003

Das SDK wurde auf Seanox Commons 1.2009.1015 und die PHP-Distribution auf FastCGI umgestellt.

1.2009.1003

Die Module-API/Sequenz wurde um den Aufruf der Methoden mount und unmount erweitert. Bei der (D)CGI-Anbindung wird nun die maximale Prozesslaufzeit auch beim Übertragen der Request-Daten an das (D)CGI berücksichtigt. Die Konfiguration wurde zudem auf die bevorstehende Auslieferung vom FastCGI-Modul vorbereitet.

1.2009.0516

Die Testumgebung für die funktionalen Test wurde komplett auf SSX umgestellt und ist nun Bestandteil der Quellen. Der Fehler im ClassLoader, der zur fehlerhaften Ermittlung von Paketinformationen führte, wurde behoben. Sonst wurden im Allgemeinen einige Stellen des Servers optimiert.

  • Umstellung der Testfälle auf SSX
  • Erweiterung der Entwicklerversion um die Testumgebung
  • Korrektur des ClassLoaders, zur korrekten Ermittlung von Paketinformationen in den Modulen
  • Optimierung der Ressourcenkontrolle für die Speicherbereinigung

1.2009.0506

Aktualisierung des SDKs auf Seanox Commons 1.2009.0425.

1.2009.0301

Mit der Umstellung der Lizenz auf die GPL 2.0 ist Seanox Devwex nun offiziell Open Source. Funktional wurde der Generator optimiert und die Syntax verkürzt und das Startskript für Windows um das Laden von Skripten zur Einbindung von Laufzeitumgebungen erweitert.

1.2008.1224

Mit der Umstellung der Lizenz auf die GPL 2.0 ist Seanox Devwex nun offiziell Open Source. Funktional wurde der Generator optimiert und die Syntax verkürzt und das Startskript für Windows um das Laden von Skripten zur Einbindung von Laufzeitumgebungen erweitert. Devwex wurde allgemein optimiert und um einen eigenen ClassLoader erweitert, um zur Laufzeit nicht nur das Laden sonder auch das Entladen von Modulen zu ermöglichen. Bei der Konfiguration wurden einige Parameter vereinfacht oder entfallen komplett. Zudem wurde der Template-Generator komplett überarbeitet und einfacher gestaltet.

  • Erweiterung um einen servereigenen ClassLoader, damit lassen sich die zur Laufzeit geladenen Module auch zur Laufzeit wieder entladen
  • Anpassung der Konfiguration, Änderung des Parameters SMARTCLEARING im Block COMMON in CLEARING
  • Anpassung, der Template-Generator wurde komplett überarbeitet
  • Anpassung der Konfiguration, bei der Deklaration von HTTP(S)-Servern wird der Parameter SOCKET nicht mehr unterstützt, die Art des Sockets wird nun automatisch erkannt und die Verwendung vom SSL durch die Existenz des gleichnamigen Blocks abgeleitet
  • Anpassung, im HTTP-Response wird das Feld "Content-Type" nur nocht gesetzt, wenn dieser direkt oder alternativ ermittelt werden kann
  • Anpassung, allgemeine Optimierung in Punkto Performanz und Grösse
  • Korrektur, bei der Verwendung von SSL wird der Paramter CLIENTAUTH wieder berücksichtigt

1.2008.0524

Devwex wurde allgemein optimiert und die Konfiguration leicht angepasst, sowie in einigen Punkten korrigiert. So ist die Konfiguration vom SSL/TLS nun über einen eigenständigen Block möglich.

  • Anpassung der Konfiguration, Verlagerung der SSL/TLS Konfiguration in einen eigenständigen Block [SERVER:X:SSL]
  • Anpassung, allgemein in Punkto Grösse und Performanz des Servers
  • Korrektur der Konfiguration, in der Verwendung vom + für die Fortführung der Wertzuweisung
  • Korrektur der Konfiguration bei der Vererbung der Blöcke MIMETYPES und STATUSCODES
  • Korrektur der Belegung von der CGI-Umgebungsvariablen SCRIPT_NAME

1.2008.0329

Die Konfiguration wurde allgemein optimiert und um eine allgemeine Vererbung von Parametern sowie um das optionale Fortführen von Werten auf Folgezeilen erweitert. Der Konfigurationsblock BASEOPTIONS wurde im Zusammengang mit der allgemeinen Optimierung in COMMON geändert. Für die HTTP(S) Server wurde die Basic Authentication komplett überarbeitet und die (D)CGI Anbindung optimiert. Die Basic Authentication ist nun in die Blöcke REF und ACC aufgeteilt und ermöglicht nun die Bildung bzw. Verwendung von Gruppen. Die (D)CGI Anbindung berücksichtigt nun das Ende des Request bzw. der Server-Instanz und beendet in diesen Fällen laufenden (D)CGI Prozesse zwangsweise.

Serverkern
  • Erweiterung, die Konfiguration wurde allgemein Überarbeitet und unterstützt nun eine allgemeine Vererbung der Parameter, zudem kann die Wertzuweisung mit der neuen Option + auf folgenden Zeilen fortgesetzt werden
  • Anpassung, mit der Erweiterung der Konfiguration um eine allgemeine Vererbung der Parameter wird der Parameter IMPLEMENTS nicht mehr unterstützt
  • Anpassung, der Block BASEOPTIONS in der Konfiguration wurde in COMMON geändert
Server-API
  • Anpassung, die Methode Service::UseModul der Server-API wurde in der Weitergabe von Fehlern auf InvocationTargetException umgestellt, somit muss die Methode nicht mehr mit Throwable behandelt werden
HTTP(S) Server Modul
  • Erweiterung um die Option OFF für den Parameter SERVER:BAS:ACCESSLOG zum Abschalten der Protokollierung
  • Anpassung, mit der Erweiterung der Konfiguration um eine allgemeine Vererbung der Parameter wird der Parameter IMPLEMENTS nicht mehr unterstützt
  • Erweiterung um die Option OFF für den Parameter SERVER:BAS:ACCESSLOG zum Abschalten der Protokollierung Anpassung, in der Konfiguration erfolgt das Sperren von Verzeichnissen im Block REF nun ausschliesslich auf Basis virtueller Verzeichnisse, die Angabe physischer ist nicht mehr erforderlich
  • Anpassung, die Konfiguration der Basic Authentication wurde komplett überarbeitet und in die Blöcke REF und ACC aufgegliedert, wobei nun über den neuen Block ACC Benutzer und deren Passwörter wie Gruppen verwaltet werden, im Block REF wird nur die Basic Authentication und der Realm Eintrag als Option gesetzt
  • Anpassung, die CGI-Umgebungsvariable GATEWAY_INTERFACE wird nur noch beim (D)CGI-Aufruf gesetzt
  • Anpassung, die CGI-Umgebungsvariable MODULE_CORE wird nur auch beim Aufruf von Modulen per (D)CGI oder über einen Filter gesetzt und enthält den kompletten Modulaufruf mit allen Optionen und Parametern
  • Anpassung, der DCGI Header wurde von CGI-ENVIRONMENT auf CGI verkürzt
  • Anpassung, allgemeine Optimierung der (D)CGI-Anbindung
  • Anpassung, mit dem Beenden/Restart einer HTTP(S) Server-Instanz werden nun alle bearbeiteten Requests (Sessions) zwangsweise geschlossen und gegebenenfalls laufende (D)CGI Prozesse beendet
  • Korrektur, die Basic Authentication kann wieder auf einzelne Dateien angewandt werden
  • Korrektur, beim Parameter SERVER:BAS:DEFAULT werden Dateien mit Slash bzw. Backslash nicht mehr unterstützt, da diese auf andere Verzeichnisse verweisen konnten
SDK
  • Aktualisierung der Seanox Commons auf Version 1.2008.0101

1.2007.1017

Allgemein wurde Anpassung zur Kompatibilität des Servers zu Java 1.2.x bis hin zu 1.6.x vorgenommen. Alle Komponenten wurden in Hinblick auf Grösse und Performanz optimiert und die Fehlerausgabe erweitert. Die Server und Module-API hat nun einen neuen finalen Stand erreicht, entsprechend wurden die Server Module Remote Control und HTTP angepasst. Die Kontrolle der eingerichteten Ressourcen wurde im Serverkern und in den Server Modulen komplett überarbeitet

Allgemein
  • Allgemein wurde Anpassung zur Kompatibilität des Servers von Java 1.2.x bis 1.6.x vorgenommen.
  • Alle Komponenten wurden in Hinblick auf Grösse und Performanz optimiert und die Fehlerausgabe erweitert.
  • Die Server und Module-API hat nun einen neuen finalen Stand erreicht.
Serverkern
  • Umstellung der Server-API. Server müssen nun Runnable sowie die Methode Server::GetCaption und Server::Destroy implementieren. Der Konstruktor wurde auf die Signature Server::Server(String, Object) geändert. Die Konfiguration wird nun als Initialize Objekt übergeben.
  • Die Verwaltung und Kontrolle der Server Instanzen wurde überarbeitet. Die Server Instanzen werden nur kontrolliert durch den Service gestartet. Das selbsttätige starten mit dem Aufruf des Konstruktors eines Servers ist nicht mehr zulässig.
  • Anpassung beim Nachladen der Konfiguration, scheitert dieses wird die zuletzt erfolgreich geladene verwendet.
  • Im erweiterten Ausgabemodus werden nun die geladenen Ressourcen aufgelistet.
  • Erweiterung um die Option [*] bei der Initialisierung von Modulen. Die so gekennzeichneten Module sind optional und führen zu keiner Fehlerausgabe wenn diese nicht verfügbar sind.

    Bsp. MODUL EXAMPLE = com.seanox.module.Example [*]

    Die Erkennung und Verarbeitung der Modul Optionen wurde allgemein verbessert.
Remote Control Server Modul
  • Umstellung der Remote Servers auf die geänderte Server-API.
  • Überarbeitung der aktiven Kontrolle und Verwaltung der eingerichteten Remote Verbindungen.
HTTP Server Modul
  • Umstellung der HTTP Server auf die geänderte Server-API.
  • Erweiterung um eine aktive Kontrolle und Verwaltung der eingerichteten HTTP Verbindungen durch die HTTP Server Instanz.
  • Die Fehlerbehandlung bei der CGI Verarbeitung wurde optimiert und führt nun zu detaillierten Server Status Codes.
  • Überarbeitung der Sortierung für eine schnellere Generierung von Verzeichnissen (Directory Index).
SDK
  • Aktualisierung der Seanox Commons auf Version 1.2007.1017

1.2006.1230

Allgemein wurde die Kompatibilität zu Java 1.2 optimiert. Der Serverkern und die Instanz der Fernüberwachung wurden überarbeitet. Mit der aktuellen Version wurde der als Erweiterung verfügbare Container in den Serverkern integriert und die Sequenzen zum (Neu)Start und Beenden überarbeitet. Die Fernüberwachung ist als normale Server Instanz ungesetzt und wird entsprechend neutral eingebunden. Die HTTP Server Instanz wurde in vielen Punkten optimiert und auf die Module-API 1.2006.12xx umgestellt. Für das SDK wurde die Verzeichnisstruktur allgemein vereinfacht.

Allgemein
  • Optimierung in Hinblick auf die Kompatibilität zu Java 1.2, Performanz und Grösse
Serverkern
  • Änderung, beim Start der Server Instanzen wird nur noch [SERVER:X:BAS] CONNECTOR unterstützt, nicht aber mehr [SERVER:X:MOD] SERVER:CONNECTOR
  • Erweiterung um die Ausgabe der (Re)Start Dauer
  • Optimierung des Kerns für eine einfachere Integration des Servers in andere Anwendungen durch das verwendete Singleton Pattern und die zur Steuerung und Überwachung bereitgestellten Methoden
  • Optimierung der Initialisierung, die nun konsequent zeilenweise erfolgt, wodurch nun die Reihenfolge bei der Initialisierung von Server und Modulen sowie bei der Verwendung der Filter im HTTP Server bewusst genutzt werden kann
  • Optimierung der (Re)Start Sequenz ((Server Beenden, Module Beenden) aktuelle Konfiguration laden, Bibliotheken laden, Module initialisieren, Server Instanzen starten), mit dem Restart werden nun auch Änderungen für Fernzugriff, automatischem Neustart mit Änderungen an der Konfiguration und der automatischen Speicherbereinigung übernommen, der Module Container wurde mit der aktuellen Module-API integriert und muss nun nicht mehr zusätzlich geladen werden, com.seanox.module.Container wird damit verworfen
  • Optimierung der Restart und Stop Sequenz, hier werden nun alle registrierten Module beendet
  • Optimierung der Kommandozeilenausgabe des Servers, die Ausgabe erfolgt nun zeilenweise mit vorangestelltem Zeitstempel, zusammenhängende Informationen werden entsprechend strukturiert ausgegeben
Remote Control Server Modul
  • Umstellung in eine zur Server Schnittstelle kompatiblen modulare Server Instanz mit der entsprechenden Konfiguration als SERVER:REMOTE:BAS, die Einträge [BASEOPTIONS] REMOTEPORT und [BASEOPTIONS] REMOTEADDRESS werden nicht mehr unterstützt
  • Änderung, die maximale Dauer des Requests wurde von 65535 auf 10 Sekunden herab gesetzt
  • Erweiterung um die Ausgabe des Rückgabewerts vom Kommando STOP
HTTP Server Modul
  • Umstellung der (HTTP)Module-API auf die Seanox Module-API 1.2006.12xx und höher, ältere Module werden nicht mehr unterstützt
  • Änderung in der Moduldeklaration Umstellung von SESSION:FILTER in FILTER, SESSION:LOGGING in LOGGING, SESSION:COMMAND in COMMAND, SESSION:PROCESS in PROCESS, SESSION:METHOD in METHOD, SESSION:LISTING in LISTING, SESSION:STATUS in STATUS, SESSION:SERVICE in SERVICE, SERVER:CONNECTOR wird nicht mehr unterstützt
  • Änderung der Filter Konstante NULL in EMPTY
  • Änderung in der Deklaration virtueller Hosts von VIRTUALHOST in VIRTUAL
  • Erweiterung um detailliertere Fehlermeldungen bei der Verwendung von (D)CGI, COMMAND und Modulen
  • Optimierung des Directory Index, die absteigenden Sortierung erfolgt nun auch für alle Unterkriterien
  • Optimierung des Directory Index in Hinblick auf die Performanz
  • Optimierung der Fehlertoleranz bei der Verarbeitung von (D)CGI Response Headern, nach RFC 1945/2616 ungültige Zeilen werden ignoriert
  • Optimierung bei der Fehlertoleranz zur Verarbeitung von Zeitsymbolen im Dateinamen der Zugriffsprotokolle
  • Optimierung in der Generierung der Unique-Id
  • Korrektur, die Auflösung vom Symbol [P] bei der Zuweisung vom COMMAND sowie CGI war fehlerhaft und enthielt unter Umständen den kompletten Pfad
  • Korrektur, Überschreite ein (D)CGI Prozess die maximale Verarbeitungszeit wird nun Status 503 statt Status 500 zurück gegeben
  • Korrektur bei der Auswertung vom Wert "ALL" bei der Methoden Deklaration der (D)CGIs
SDK
  • Vereinfachung der Verzeichnisstruktur

1.2006.0415

Der Serverkern wurde um eine erweiterte Fehlerausgabe und das automatische Laden von Bibliotheken aus Verzeichnissen erweitert. Einige Fehler bei Generierung der Templates, der Auflösung von Systemvariablen und dem Keystore für SSL wurden behoben. Die Fernüberwachung wurde in Hinblick auf die Kompatibilität zu Java 1.2 optimiert.

  • Erweiterung der Startbefehle um die Option * (Bsp. start*) für die erweiterte Fehlerausgabe
  • Erweiterung um den Konfigurationsparameter SERVER:BAS:SSL:CONTEXT zur Angabe des SSL Pakets, als Standard wird javax.ssl.net verwendet
  • Erweiterung um das automatische Laden von Bibliotheken aus den mit -Dlibraries angegebenen Verzeichnissen
  • Optimierung der Fehler- Behandlung/Ausgabe
  • Optimierung der Steuerzeichen- Bereinigung/Behandlung/Verwendung
  • Korrektur beim Laden einer nicht vorhandenen Konfiguration
  • Korrektur des Template Generators bei der Auswertung zu löschender Blocknamen
  • Korrektur beim initialen Auflösen der Systemvariablen
  • Korrektur beim Schliessen des InputStream vom Keystore im Fehlerfall
  • Korrektur beim Remote Access, damit wurde das Restart Problem bei Java 1.2.x behoben

1.2005.1220

Allgemeine Optimierung in Hinblick auf die Stabilität und Performance. Die Konfiguration wurde allgemein durch neue Parameter sowie das automatische Neuladen bei Änderungen erweitert und die Verwendung der Parameter verbessert. Die Verarbeitung und Generierung der Templates wurde überarbeitet. Die Module-API wurde optimiert. Der Umgang mit unerwartet wegbrechenden Clientverbindungen, die zu einer ungewohnt hohen CPU Last führen konnten, wurde korrigiert. Der Umgang mit der mitteleuropäischen Sommer- und Winterzeit wurde korrigiert Die fehlerhafte Verabreitung von Pfaden mit / / / durch Windows wurde behoben. Ein Sicherheitsrisiko bestand nicht.

  • Allgemeine Optimierung von Seanox Devwex in Hinblick auf Performance und Stabilität.
  • Erweiterung um den Konfigurationsparameter BASEOPTIONS:RELOADING als Option für den automatischen Neustart des Servers bei Änderungen an der Konfigurationsdatei devwex.ini.
  • Erweiterung um den Konfigurationsparameter SERVER:BAS:SLICING zur zeitlichen Begrenzung von Serveranfragen.
  • Korrektur im allgemeinen Umgang mit der mitteleuropäischen Sommer- und Winterzeit.
  • Korrektur im Umgang mit unerwartet wegbrechenden bzw. beendeten Client Verbindungen bei der Serveranfrage. Unter Umständen blieben Verbindungen als Objekt erhalten und wurden nicht beräumt. Dies konnte zum permanenten Server Status 503 sowie zu einer für Seanox Devwex untypischen hohen CPU Belastung führen (Danke Rainer Geigenberger).
  • Korrektur des Generators. Das Parsen der Templates erfolgt nun vor dem ersten Zugriff auf Segmente und Strukturen.
  • Anpassung der Initialisierung von Modulen. Diese wird nicht mehr über SERVER:MOD:SERVER:INITIALIZE:* unterstützt und ist zukünftig nur noch über den Konfigurationsblock INITIALIZE möglich. Mit dem Aufruf des Konstruktors wird nun die Konfiguration und der Modultyp zur Initialisierung übergeben. Dies entspricht der kommende Version der Seanox Devwex Modul API und dient dem optimierten Aufruf der Methode Module::Initialize.
  • Anpassung der Pfadverarbeitung. Unter Windows XP existieren durch einen Bug nicht physische Verzeichnisse wenn der Pfad \ \ \ enthält. Somit werden nun alle angeforderten Pfade auf ihre physische Existenz geprüft. Ein Sicherheitsrisiko bestand dadurch nicht.
  • Anpassung der Konfiguration. Parameter mit der Option [?] und ohne Wert werden nun nicht mehr übernommen. Somit ist eine optionale Belegung von Parametern mit dem Start des Servers möglich und dient als Vorbereitung der in Zukunft bereitgestellten Laufzeitmodule für Java, PHP, Perl und andere.

1.2005.0801

In der Konfiguration wurde die Verarbeitung von Pfaden und Referenzen optimiert. Somit sind nun virtuelle Pfade innerhalb von absoluten möglich. Die Definition der Methoden für den HTTP Server wurde um das Argument ALL erweitert. Die Generierung der Verzeichnislisten (Directory Index) wurde optimiert, so wird der Link zum übergeordneten Verzeichnis (Parent Directory) nur noch in Unterverzeichnissen ausgegeben. Vereinzelte Anpassungen in der Gestaltung der Templates. Die MIME Types wurden allgemein in der Server Konfiguration erweitert. Bei der Fernüberwachung wurde die Request Verarbeitung und die Konsolenausgabe optimiert. Die Zeitangaben im Response Header bei der Verwendung der GMT (Greenwich Mean Time) wurden korrigiert. Korrektur des Templates Generator, der unter Umständen ein ungewolltes Schliessen des Datenstroms provozierte.

  • Optimierung der Pfad und Referenz Verarbeitung. In diesem Zusammenhang ist nun eine Definition weiterer virtueller Pfade innerhalb von absoluten Pfaden möglich.
  • Erweiterung des Parameters [SERVER:X:BAS] METHODS um den Wert ALL zur Berücksichtigung bzw. Entgegennahme aller HTTP Methoden. Ist die angeforderte Methode nicht implementiert bzw. vorhanden wird der Request mit Status 501 beantwortet.
  • Der Directory Index wurde um die dynamische Anzeige des Links für den Wechsel in übergeordnete Verzeichnisse (Parent Directory) erweitert. Somit wird dieser nur noch in Unterverzeichnissen nicht aber im Wurzelverzeichnis angeboten. Das aktuelle Verzeichnis wird nun auch als Link angeboten und kann zur Aktualisierung mit der Beibehaltung der Sortierung verwendet werden.
  • Vereinzelte Anpassungen in der Gestaltung der Templates.
  • Erweiterung der MIME Types in der Server Konfiguration.
  • Allgemeine Optimierung der Request Verarbeitung und der Konsolenausgabe des Remote Zugriffs.
  • Korrektur der Zeitangaben im Response Header bei der Verwendung der GMT (Greenwich Mean Time).
  • Korrektur des Template Generators. Die Verwendung von nicht definierten Parametern oder Blöcken in Templates führte unter Umständen zu einem Fehler, wodurch Requests die für ihre Ausgabe Templates verwenden wie z.B. Fehlerseiten oder der Directory Index, ohne Response geschlossen wurden.

1.2005.0315

Devwex wurde in Punkto Performanz und Grösse optimiert. Die Ausgabe bei Fehlern im Zusammenhang mit dem Serverstart wurde detaillierter gestaltet. Die Konfiguration des HTTP Servers wurde für den Directory Index um die Option [S] zur Unterdrückung versteckter (System)Dateien erweitert. Die HTTP Module-API wurde um die Übergabe der Modul Definition als MODULE_CORE erweitert. Das Ausbrechen aus dem DocRoot über einen Mix ausText, MIME, und UTF-8 in den Pfaden wurde korrigiert. Beim Fernzugriff wurden die Kommandos TIME und STATE zusammengeführt. TIME wird einzeln nicht mehr unterstützt.

Allgemein
  • Devwex wurde in Punkto Performanz und Grösse optimiert. Die Ausgabe bei Fehlern im Zusammenhang mit dem Serverstart wurde detaillierter gestaltet. Der Konfigurationsparameter [SERVER:X:BAS] INDEX wurde um die Option [S] zur Unterdrückung versteckter (System)Dateien erweitert, womit diese nicht mehr in der vom Server generierten Verzeichnisstruktur (Directory Index) angezeigt werden. Ein direkter Zugriff auf diese ist weiterhin möglich. Im Template system.index.html wurde die Richtung der Sortierung gewechselt.
Remote
  • Da die Informationen vom Kommando TIME komplett in STATE enthalten sind, wurde TIME aus der Befehlsliste entfernt. Die Ausgabe beim Kommando STATE wurde um das Feld VERS, welches die aktuelle Version des Servers enthält, erweitert.
HTTP(S)
  • Nach dem das Ausbrechen aus dem DocRoot möglich war, wurde die Analyse der angeforderten Pfade korrigiert. In dem Zusammenhang wurde die dynamische Ermittlung der Pfadkodierung zu Gunsten der Sicherheit auf eine feste umgestellt. Diese unterstützt auch weiterhin den Mix von Text-, MIME- und UTF8- Angaben in einem Pfad.
Module
  • Werden mit der Definition in der Konfigurationsdatei devwex.ini weitere Parameter und/oder Optionen angegeben, so stehen diese den Modulen des Typs Process über die Umgebungsvariablen MODULE_CORE zur Verfügung.

1.2004.1224

Der Serverkern wurde um SmartClearing zur intelligenten Bereinigung der Ressourcen erweitert. Die Dekodierung von UTF-8 wurde optimiert. Beim Generator wurden zur Erstellung der Verzeichnislisten (Directory Index) einige Marken (Tags) geändert. Die Analyse des Response Headers vom (D)CGI wurde für die Ermittlung der Statuszeile (HTTP/...) auf 65535 Bytes begrenzt, ein Überlauf führt zum Status 500, laut RFC sind nur 32768 Bytes möglich. Das (D)CGI wurde vom Timeout des Datenstroms entkoppelt und auf einen eigenen Konfigurationsparameter für die maximalen Prozesslaufzeit umgestellt. Beim Fernüberüberwachung wurde das Lesen des Requests optimiert und der Datenleerlauf mit SoTimeoute begrenzt.

Allgemein
  • Das SmartClearing zur intelligenten Bereinigung der Ressourcen wurde über den Parameter [BASEOPTIONS]SMARTCLEARING konfigurierbar gestaltet. Die Dekodierung von UTF-8 wurde optimiert. Beim Generator zur Erstellung der Verzeichnis Übersicht des Dateisystems (Directory Index) wurde die Generierungmarke (Tag) files:arts in files::base und die entsprechende Option zur Sortierung von a/A in b/B umbenannt. Somit ist die Aktualisierung der Module Compress und Symbols notwendig.
(D)CGI
  • Die Analyse des Response Headers vom (D)CGI wurde für die Ermittlung der Statuszeile (HTTP/...) auf 65535 Bytes begrenzt, ein Überlauf führt zum Status 500, laut RFC sind nur 32768 Bytes möglich. Das (D)CGI wurde vom Timeout des Datenstroms entkoppelt und auf den neuen Parameter [SERVER:X:BAS]DURATION zur Angabe der maximalen Prozesslaufzeit umgestellt.
Remote
  • Das Lesen des Requests wurde optimiert. Die Erkennung des Datenleerlauf basiert somit nur noch auf dem SoTimeoute. Requests werden somit nur noch mit einem gültigen Ende der Kommandozeilen (CR/LF) ausgeführt. Die tolerante Ausführung mit dem Timeout des Datenleerlaufs ist somit nicht mehr möglich.

1.2004.0803

Allgemein wurden die einzelnen Server Komponenten optimiert. Bei der HTTP Request Verarbeitung wird damit nur noch der Header gelesen. Zuvor wurden auch Teile des Request Bodys in den Speicher gelesen. In der Pfadangabe der Protokolldatei können nun Symbole der Zeit verwendet werden. Als Basis zur Modulentwicklung wurde das Devwex SDK eingeführt.

1.2004.0525

Der Serverkern und die einzelnen Komponenten wurde allgemein in Punkto PErformance optimiert. Der Restart wurde vereinfacht, die Vererbung der Server bei der Initialisierung optimiert und die Konsolenausgabe erweitert. Korrektur im http Server. Ein Serverstatus der Klasse 1xx wird nur noch mit einem Header beantwortet, eventuell definierte Templates werden ignoriert. Zur Modulentwicklung steht nun eine komplette Module-API (Application Programming Interface) zur Verfügung. Diese ermöglich die einfache Erstellung von Servern, HHTP Modulen und allgemeinen Erweiterungen. Die CGI Verarbeitung wurde erweitert. Es können nun spezielle Server Modi über den Response Header durch die Angabe von HTTP/(STATUS) gesetzt werden. Bei DCGI wurde die Blockstruktur umgestellt und kann nun die klassische CGI Bytefolge aufnehmen und lässt eine einfachere Übergabe der Umgebungsvariablen und Verarbeitung zu.

Allgemein
  • Die Komponenten des Servers wurden allgemein in Punkto Performanz optimiert.
Server
  • Die Funktion Restart wurde allgemein vereinfacht und in der Performanz verbessert, wodurch der theoretische Fall des Hängens (längere Wartezeit) beim Restart beseitigt wurde. Die Konsolenausgabe der Serverkennung wurde um das Protokoll (TCP, UDP ...) erweitert . Die Initialisierung der Server wurde um die Vererbung erweitert, da sonst die so definierten Connectoren nicht korrekt ermittelt wurden. Die Initialisierung aus dem Block [SERVER:XXX:MOD] berücksichtigte die Einträge mit SERVER:INITIALIZE nicht. Das Problem wurde behoben. Die Verarbeitung von COMMAND wurde angepasst und akzeptiert nun auch die Option [M] der Moduldeklaration. Umstellung des Konfigurationsblocks [RESPONSECODES] in [STATUSCODES].
HTTP(S)
  • Ein Serverstatus der Klasse 1xx wird nun nur noch entsprechend der RFC 2616 mit einem Header beantwortet. Eventuelle für diese Klasse definierte Templates werden somit nicht mehr berücksichtigt.
Module
  • Mit der Module-API (Application Programming Interface) steht nun eine einfache Schnittstelle zur Implementierung von Modulen vom Typ Server, Service, Filter, Command, Process, Method, Index, Status und Logging zur Verfügung. Der Zugriff auf die Ressourcen des Servers erfolgt dabei über die in der API enthaltenen Objekte wie Connection, Cookie, Environment, Fragment, Request, Response und Server. Diese unterstützen unter anderem den Umgang mit Multipart Objekten sowie die Kodierung und Dekodierung von BASE64, UTF8, MIME und DOT. Der Moduleinsprung [SERVER:BAS] SERVICE sowie [SERVER:MOD] SESSION:SERVICE wurde vereinfacht und optimiert, da das Schliessen des Sockets sowie das Abmelden aus der Sessionliste des Servers und die Protokollierung des Zugriffs generell über Session::Destroy erfolgt. Somit wurde auch die unter Umständen vorkommende doppelte Protokollierung der Session korrigiert. Die Initialisierung der Module wurde optimiert. Die Ressourcen werden nun noch einmal geladen, auch wenn diese in der Definition mehrfach deklariert wurden. Mit dem Beenden des Servers wird nun auch der Modul Container und somit die dort registrierten Module informiert. Der Standard Modul Container wurde auf das Paket com.seanox.module.Container umgestellt und wird nun immer zuerst initialisiert. Anpassung des Moduleinsprung SERVICE. Dieser wurde aus der Methode Session::Service in Session::Run verlegt. Damit wird der definierte Service unabhängiger. Es erfolgt noch lediglich das An- sowie Abmelden der Session beim Server und das optionale Schliessen des Sockets. Die Verarbeitung des Requests, die Protokollierung sowie die Fehlerbehandlung müssen im Service implementiert werden. Die Methode Session::Swap wurde angepasst, damit wird das Problem behoben, dass von einem als SERVICE definierten Modul nur der Konstruktor nicht aber die Methode Module::Service aufgerufen wurde.
CGI
  • Die CGI Verarbeitung wurde erweitert. Beginnt der Response Header mit HTTP/STATUS wobei die Gross- und Kleinschreibung ignoriert wird, wird das Skript komplett abgearbeitet und der Datenstrom des CGIs ausgelesen nicht aber an den Client weitergereicht. Die Beantwortung des Request erfolgt hierbei entsprechend dem Status direkt vom Server, wobei die definierte Templates und Weiterleitungen berücksichtigt werden.
DCGI
  • Die Blockstruktur vom DCGI wurde wie folgt umgestellt: 0x07 0x07 Blockname ... 0x07 Blockinhalt ... 0x07 Blockname ... 0x07 Blockinhalt ... 0x07 ... 0x01. Das Byte 0x07 wird dabei als Trennungszeichen der einzelnen Blöcke verwendet. Die Blockstruktur beginnt mit der Doppelfolge 0x07 0x07 und wird durch das Byte 0x01 beendet. Die neue Struktur kann somit der klassischen CGI Bytefolge vorangestellt und durch einen Parser einfacher und parallel zum CGI verarbeitet werden, da die Bytes 0x07 und 0x01 im CGI durch BASE64 oder MIME kodiert werden.

1.2004.0212

Erweiterung um das optionale Startmodul Starting. Dieses stellt eine auf Java basierende Alternative zur dynamischen Erweiterung des ClassPaths durch die Stapelverarbeitung der Shell bzw. des DOS zur Verfügung. Diese ist besonders für Windows 95/98/ME interessant, da es hier zu Probleme in der dynamischen Stapelverarbeitung mit command.com kommen kann. Zum Starten wird dabei eine Liste der Verzeichnisse mit den Ressourcen, welche in den ClassPath übernommen werden sollen übergeben. Die in dem Modul enthaltenen modifizierten Startskripte devwex.bat und devwex.sh erledigen dieses bereits, wodurch die Handhabung des Servers wie in der Dokumentation beschrieben erhalten bleibt.

1.2004.0124

Die Komponenten wurden in Hinblick auf Stabilität, Performanz und Grösse optimiert. Die Generierung der Templates wurde überarbeitet und die Verarbeitung bis 100% gesteigert werden. Die Module-API wurde allgemein optimiert und erweitert. Die Konfiguration wurde allgemein in der Verarbeitung der Parameter optimiert wobei diverse Parameter überarbeitet und deren Verwendung vereinfacht wurde. Korrektur bei der Protokollierung von der mit CGI gesetzten HTTP Statuscodes. Bei der Fernüberwachung wurde das Kommando STAT wurde in STATE geändert.

Allgemein
  • Die Komponenten wurden in Hinblick auf Stabilität, Performanz und Grösse optimiert. Die Texte der Konsolenausgabe wurden angepasst.
Konfiguration
  • Die Verarbeitung wurde komplett überarbeitet.
Generator
  • Die Verarbeitung der Templates wurde komplett überarbeitet womit eine Leistungssteigerung von bis zu 100% erreicht wurde.
Module
  • Die Schnittstelle wurde komplett überarbeitet. Somit erfolgt nun die Synchronisation der Objekte nicht mehr im Server sondern muss von den Modulen selbst übernommen werden. Die Moduldefinition [SERVER:X:MOD] wurde um SERVER:INITALIZE zur Initialisierung von Modulen mit dem Start des Servers und um SERVER:CONNETCOR bzw. [SERVER:X:BAS]CONNECTOR zur Einrichtung neuer Connectoren erweitert. Für die Initialisierung von Modulen mit dem Start des Services wurde die Konfiguration um den Block [INITIALIZE] erweitert. Hier eingetragene Module werden mit dem (Re)Start des Service initialisiert und können dann z.B. vom Service über bestimmte Ereignisse informiert werden.
Server
  • In der Konfiguration wurden die Parameter [BASEOPTIONS] EMAIL, [SERVER:X:BAS] NAME sowie [VIRTUALHOST:X:BAS] NAME entfernt. Die Vergabe des Servernamens erfolgt nun komplett automatisch und kann über die neue Option [SERVER:X:BAS] IDENTIFY und [VIRTUALHOST:X:BAS] IDENTIFY für das CGI gesteuert werden. Der bisherige Parameter [BASEOPTIONS] EMAIL kann durch [SERVER:X:ENV] SERVER_ADMIN gesetzt werden. Kann für [SERVER:X:BAS] SYSROOT/DOCROOT bzw. [VIRTUALHOST:X:BAS] SYSROOT/DOCROOT kein physisches Verzeichnis ermittelt werden, wird das aktuelle Arbeitsverzeichnis verwendet. Ist dies auch nicht möglich wird der Pfad durch "." gesetzt. Die Einrichtung und Ermittlung der Mimetypes wurde überarbeitet und optimiert. Die Option ACCESS in [SERVER:X:REF] bzw. [VIRTUALHOST:X:REF] zur Basic Authentication ignoriert nun im ACCESS Tag die Gross- und Kleinschreibung ([Access:..., [ACCESS:...) für Nutzer, Passwort und Labeltext wird diese nach wie vor berücksichtigt. Bei ungültigen Werten (< 1) für [SERVER:X:BAS] MAXACCESS wird nun der Standard 100 verwendet.
CGI/DCGI
  • Der mit CGI/DCGI gesetzter HTTP Statuscode wurde immer mit 200 protokolliert. Das Problem wurde behoben.
Remote
  • Das Kommando STAT wurde in STATE geändert.

1.2003.0901

Allgemein Optimierung der Grösse und der Verzeichnisstruktur. Änderung bzw. Korrektur der HTTP Server Konfiguration. Die Ermittlung der Systemproperties wurde optimiert. In der Verarbeitung der HTTP Anfragen wurde die Auswertung von IF-MODIFIED-SINCE korrigiert.

  • Allgemeine Optimierung in der Grösse.
  • In der Serverkonfiguration [SERVER:XXX:BAS] wurde der Parameter SCHEME in SOCKET geändert. Dieser unterstützt die Werte SECURE und NORMAL und kann nicht mehr durch einen virtuellen Host überschrieben werden.
  • Für das Template system.index.htm wurden zur allgemeinen Darstellung des Templates und Generierung der Dateiliste die Generatorblöcke in index und file aufgeteilt. Für die Variable file-arts, liefert der Generator nun den Wert "directory" oder "file".
  • Allgemein Anpassungen in der HTML Struktur der Templates und im Farbschema.
  • Die HEAD Methode berücksichtigte IF-MODIFIED-SINCE nicht. Die Methode wurde entsprechend erweitert und die Generierung vom Serverstatus und des Headers der Delete Funktion optimiert.
  • Die Ermittlung der Systemproperties wurde optimiert.
  • Integration der englischen Dokumentation.
  • Die Verzeichnisstruktur wurde um das Verzeichnis "manuals" zur Ablage von Modul- und Server-Dokumentationen.

1.2003.0620

Allgemein Umstellung des Servers auf das Paket com.seanox.devwex. Der Bug in der Java VM bei der Pfadverarbeitung von "<" und ">" unter Windows wird nun durch den Server korrigiert. Erweiterung des Servers um eine Module-API. Über dieses können einzelne Funktionalitäten des Servers durch externe Komponenten geändert, erweitert oder neu hinzugefügt werden.

  • Der Sourcecode wurde auf das Package com.seanox.devwex umgestellt.
  • Der Bug in der Java VM bei der Pfadverarbeitung von "<" und ">" unter Windows wird nun durch den Server korrigiert.
  • Intergration des Modulkonzepts. über dieses können einzelne Funktionalitäten des Servers durch externe Komponenten geändert, erweitert oder neu hinzugefügt werden.
  • Die CGI Methoden wurden um ALL erweitert, womit nun alle eintreffenden Methoden des Requests einbezogen werden.
  • Command verarbeitet nur noch den Requestheader, die Daten des Request werden nicht mehr durchgerreicht.
  • Devwex wurde allgemein in der Grösse optimiert.
  • Das Remotecontrol wurde inklusive der Ausgabe optimiert.
  • Die Filter werden nun bei jedem Serverstatus mit Ausnahme von 400 und 5xx angewendet und wurden um die Methode ALL erweitert, womit alle eintreffenden Methode des Requests einbezogen werden. Die Ausführung von Scripten und Resourcen welche durch Verweise festgelegt wurden, werden jetzt direkt ohne Redirection ausgeführt. Das Problem der Gross- und Kleinschreibung in der Methodedefinition wurde behoben.
  • Das Referenzhandling wurde überarbeitet.
  • Die Konsolenausgabe des Servers wurde angepasst und die Dokumentation korrigiert.

1.2003.0415

Allgemeine Optimierung des Ressourcenmanagements, der Performanz, der Datenzugriffe und der Fehlerbehandlung.Die Konfiguration wurde um die Verwendung von Systemproperties und die Übernahme von externen Parametern erweitert. Der HTTP Server wurde durch die Integration von Secure Socket Layern (SSL) mit JSSE um HTTPS erweitert. Das Request- und CGI-Handling wurde komplett überarbeitet und in Performance und Systemauslastung optimiert. Die Ausgabe von Systeminformationen auf der Konsole wurde erweitert. Die Reaktionszeit für Remotezugriffe wurde begrenzt.

  • Optimierung des Ressourcenmanagements, der Performanz, der Datenzugriffe und der Fehlerbehandlung.
  • Die Konfiguration wurde um die Option [?] erweitert. Entsprechend gekennzeichnete Parameter werden über die Systemproperties der Java Laufzeitumgebung Umgebung aufgelöst. Ist dies nicht möglich wird der optional eingetragene Wert verwendet.
  • Integration von Secure Socket Layern (SSL) mit JSSE.
  • Das Request- und CGI-Handling wurde komplett überarbeitet und in Performance und Systemauslastung optimiert. Das Timeout des Server wirkt sich bei einem Wert grösser 0 auch auf das SoLinger aus und beim CGI führt dieses zum Serverstatus 500 wenn vom CGI noch keine Daten zurückgegeben wurden.
  • Die Ausgabe von Systeminformationen auf der Konsole wurde erweitert.
  • Die Reaktionszeit für Remotezugriffe wurde auf 65535 Millisekunden verkürzt.
  • Der Header der HEAD Methode wurde unter Umständen doppelt dargestellt das Problem wurde behoben.

1.2003.0219

Die Systemtemplates wurden inhaltliche und in der Struktur der Dateinamen angepasst. Die Dokumentation steht nun auch als HTML Version zur Verfügung. Das Handling der Referenzen wurde in der Session optimiert. Bei der Auswertung der Requestmethoden wird die Gross- und Kleinschreibung nicht mehr berücksichtigt. Die Pfadoptimierung wurde vereinfacht. Die CGI Variablen wurden mit PATH_ABSOULTE erweitert welche die absolute Pfadinformation der URL bei absoluten Referenzen enthält. PATH_INFO wird durch PATH_BASE ersetzt Templates wie index.htm welche diese Variable verwenden müssen entsprechend angepasst werden. PATH_INFO wird nun erst bei absoluten Referenzen mit der erweiterten Pfadinformation zur Verfügung gestellt.

1.2002.1224

Die Kontrolle und Steuerung der Referenzen wurde überarbeitet. Probleme mit Redirections und Basic Authentication für absolute Verweise wurde behoben. Der Bereich Referenzen wurde durch die Option [access:none] erweitert womit die Basic Authentication in Unterabschnitten der geschützten Bereiche aufgehoben werden kann. Die Basic Authentication lässt sich nun bis auf Dateien anwenden was jedoch nicht von alles Browsern problemlos unterstützt wird. Der Zeilenumbruch im access.log erfolgt nun automatisch zum entsprechend verwenden Betriebssystem im Format \r für MAC, \n für UNIX \n oder \r\n für DOS. Die HTTP-Methoden für das DCGI/CGI wurden entkoppelt, womit weitere implementiert werden können. Der Response der HEAD Methode bei CGI/DCGI Dateien war unvollständig wenn die Methode nicht für das entsprechende Interface eingerichtet wurde. Dieses Problem wurde behoben.

1.2002.1024

Der Remotecontroler wurde überarbeitet. Dabei wurde der Zugriff per Telnet optimiert und Systemressourcen entlastet. Der Request wurde auf eine Länge von 65535 Bytes und einer Reaktionszeit von 100 Sekunden begrenzt. Das Schützen vom Verzeichnis \"/\" mit der Option [access] war nicht möglich. Dieses Problem wurde behoben. Die Requestmethoden für Decode:BASE64 und Decode:DOT wurden optimiert.

1.2002.0917

Die Erstellung der UNIQUE ID wurde optimiert. Der Request und der entsprechende Handler wurden überarbeitet. Devwex wurde in der Grösse optimiert. Die Basic Authorization wurde eingeführt wodurch der Zugriff auf Verzeichnisse nur mit entsprechendem Login und Passwort möglich ist. In diesem Zusammenhang wurde das Handling der virtuellen Verzeichnisse überarbeitet.

1.2002.0819

Die Filter wurden um Referenzen erweitert. So kann für jede Filterdefinition ein spezielles Template oder eine Adresse zur Weiterleitung festgelegt werden. Die Head Methode wurde angepasst. So werden für gesperrte Verzeichnisse keine Informationen mehr über enthaltene Dateien ausgegeben. Devwex wurde in der Grösse verringert. Die Requestverarbeitung wurde optimiert. Die Grösse des Datenstream zum DCGI/CGI wird über die Content-Length begrenzt. Ist diese im Request nicht enthalten werden alle Bytes an das DCGI/CGI übergeben.

1.2002.0728

Der Konfigurationsparameter INTERUPT wurde in INTERRUPT geändert. Die Synchronisation beim Zugriff auf den access.log wurde optimiert.

1.2002.0601

Das Directory-Handling wurde überarbeitet um eine sichere und fehlertolerante Pfadverarbeitung zu gewährleisten. Durch überladene Requests konnte die MS Java VM zum Absturz gebracht werden. Das Problem wurde behoben.

1.2002.0520

Die Requestverarbeitung wurde flexibler gestaltet. Der fehlerhafte CRLF Eintrag im DCGI Header wurde korrigiert. Die Ermittlung der Mimetypes wurde optimiert. Die Methode HEAD des HTTP Servers wurde korrigiert. Das setzten von absoluten Referenzen in der Konfiguration des HTTP Servers wurde auf Dateien erweitert, zudem kann nun für Server statt der Host Adresse auch der Wert AUTO verwendet werden. Das setzen und die Protokollierung des Serverstatus per CGI wurde korrigiert. Da die Auflösung der Remote IP in grossen oder trägen Netzwerken lange dauern kann, wurde die Auflösung für die Protokollierung optimiert.

  • Die Requestverarbeitung wurde flexibler gestaltet. Der fehlerhafte CRLF Eintrag im DCGI Header wurde entfernt.
  • Die Ermittlung der Mimetypes wurde optimiert.
  • Devwex wurde in der Grösse optimiert. Bei HEAD war die CONTENT-LENGTH nicht enthalten. Diese wurde dem Response wieder hinzugefügt.
  • Der Parameter SERVER:BAS:ADDRESS berücksichtig nun beim Wert AUTO alle im System verfügbaren IP Adressen. Dynamische Adressen werden nun auch ohne Neustart des Servers bei AUTO berücksichtigt.
  • Bei der Verwendung von DCGI/CGI wird jetzt im Accesslog der dort gesetzte Serverstatus eingetragen, wurde keiner gesetzt wird 200 verwendet. Die Bereiche [SERVER:XXX:REF] und [VIRTUALHOST:XXX:REF] wurden erweitert, so werden mit der Option [A] nicht nur Verzeichnisse sondern auch Dateien als Referenz verarbeitet.
    Bsp. APPS = /apps >> ../apps/index.php [A]
  • Die Gestaltung des Serverstatus über das CGI wurde unter Umständen fehlerhaft verarbeitet. Das Problem wurde behoben.
  • Da die Auflösung der REMOTE-IP zum REMOTE-HOST in grossen Netzwerken zu langen Antwort führen konnte, wird die Auflösung für den Access Eintrag erst nach dem Beenden der Connection aufgelöst.

1.2002.0422

Das CGI wurde um die Übernahme des Serverstatus erweitert. Die Umgebungsvariable REMOTE-HOST wird für das CGI aus Gründen der Performance in trägen oder grossen Netzwerken nicht mehr aufgelöst bzw. gestezt. Die Filterfunktion wurde optimiert und um die Funktionen STARTS und ENDS sowie um die Einbeziehung der CGI Variablen erweitert. Die Konfiguration wurde erweitert. So kann das Zeilenkommentar für einzelne Zeile an und abgeschaltet werden.

  • Das CGI Interface wurde optimiert und erweitert. Beginnt der CGI Response mit HTTP/ wird dieser Eintrag nun für die FIRSTLINE des Response verwendet womit der Serverstatus über das CGI gestaltet werden kann.
  • Die Filterfunktion wurde optimiert und um die Funktionen STARTS und ENDS sowie um die Einbeziehung der CGI Variablen erweitert.
  • Devwex wurde in der Grösse optimiert.
  • Bricht der Request ab wird Error 400 protokolliert. Da die Auflösung der REMOTE-IP zum REMOTE-HOST in grossen Netzwerken zu langen Antwortzeiten führen konnte, wird die Auflösung für das CGI nicht mehr vorgenommen. Die Ermittlung vom REMOTE-HOST für den Accesslog wurde beibehalten.
  • Die Verarbeitung der Init- Datei wurde erweitert. Enden Parameter oder Werte mit [+] wird nun der komplette Werteeintrag verarbeitet wodurch auch das Semikolon verwendet werden kann. Kommentare sind in diesen Zeilen dann nicht mehr möglich.
    PATH     = ./documents;./applications;./system [+]
    PATH [+] = ./documents;./applications;./system    
  • Die Bereiche [SERVER:XXX:REF] und [VIRTUALHOST:XXX:REF] wurden erweitert, wodurch diese nun Systemreferenzen berücksichtigen. Details hierzu sind in der Dokumentation ausführlich beschrieben. Bei der Verarbeitung von Referenzen werden alle endenden Optionen entfernt. Die Darstellung der Directories erfolgt im Indexservice nun ohne Typ.

1.2002.0320

Die Sortierung der Verzeichnisse des Indexservices erfolgt jetzt standardgemäss immer nach Art/Kriterium/Name. Interne Optimierung der Session. Nicht verwendete CGI Variablen wurden entfernt. Die Prioritäten der Fehlercodes wurde angepasst. Optimierung des Response. Ist kein Host im Request enthalten wird automatisch immer die Adresse des entgegennehmenden Servers im Response Eintrag Location verwendet. Die Initialisierung von zu vielen Servern im Verhältnis zum Java Runtime Speichermanagement führt zum OutOfMemory. Der Server ist dann auch über das Remote Control nicht mehr erreichbar. Bei der Vererbung werden ACCESSLOG und BLOCKSIZE nicht berücksichtig. Diese Probleme wurden behoben.

1.2002.0220

Initialize, und Initializeblock wurden aktualisiert. Die Formulierung der Pfadangaben für CGI Scripte erfolgt nun abhängig vom Dateisystem mit Slash oder Backslash. Der Parmameter SERVER:BAS:ADDRESS berücksichtigt nun bei AUTO, alle im System verfügbaren IP Adressen. Sollen mehrere der verfügbaren Adressen automatisch genutzt werden kann dies wie folgt konfiguriert werden.

[SERVER:1:BAS]         
  IMPLEMENTS = SERVER:3
                       
[SERVER:2:BAS]         
  IMPLEMENTS = SERVER:3
                       
[SERVER:3:BAS]         
  ADDRESS    = AUTO    
  PORT       = 80      
  ...                  

1.2002.0128

Das DCGI wurde komplett auf StdIO umgestellt womit SWAPROOT nicht mehr notwendig ist. Die Parameter für COMMAND und CGI/DCGI wurden in diesem Zusammenhang umgestellt auf [I] [C][P] [F][E]. Die UNIQUE_ID wurde optimiert. Das Problem der gescheiterten parallelen Zugriffe wurde behoben. Devwex wurde allgemein in der Grösse und der in der Performance optimiert. Die Angabe des Parameters SERVER:BAS:PROCESSES ist nicht mehr notwendig. Die CGI Variable SERVER_SOFTWARE enthält nun wie auch der Response die Serverversion, UNIQUE_ID wurde durch die Umstellung auf alphanumerische Zeichen verkürzt.

1.2001.1228

Die Decodierung der Requests wurden ausgebaut und flexibler gestaltet, wobei die Filterfunktionen komplett mit einbezogen wurden. Bekannte Probleme wie out of memory, Redirection mit Query und der Verarbeitung von ss in der Java Version wurden behoben. Das Timeout wird wieder bei CGI Anwendungen berücksichtigt. Devwex wurde allgemein und in der Grösse optimiert. Die Filter wurden um die Option [A] zur AND Verknüpfung und um den Parameter NULL zur Prüfung auf Leer erweitert.

Bsp. FILTER = GET IS INDEX ... [A] GET ... [A] ...
Die Generation der Fehlertemplates berücksichtigte den ERROR Block nicht, das Problem wurde behoben. SWAP Files wurden mit 1.2001.1201 bei jedem Zugriff angelegt. Das Problem wurde behoben. Die Erstellung der SWAP Files erfolgt nun erst wieder mit der Verwendung des DCGI's.

1.2001.1201

Die Optionen für DCGI/CGI wurden um [U] und [S] erweitert, um mit Java DCGI Applications realisieren zu können.

Bsp. WAP = POST GET >> java -cp [S].wap [U] [I]

1.2001.1112

Die Optionen für DCGI/CGI wurden überprüft und abgeglichen. Bei Aufruf ohne Option wird der Anwendung die Scriptdatei nur in den Umgebungsvariablen übergeben.

[C] CGI Aufruf der Anwendung mit Scriptdatei
[I] DCGI Aufruf der Anwendung mit der Swapdatei

1.2001.0803

Bei zu vielen Services Threads wird Out of Memory Exception ausgelöst. Diesem vorzubeugen, wurde der Service entsprechend angepasst. Allgemeine Optimierung. Der Generator wurde aktualisiert. Für die virtuellen Verzeichnisse wurde der Parameter [R] für die Redirection Funktionalität hinzugefügt. Der Messenger und Initialize wurden aktualisiert. Der Systemlogwriter wurde entfernt.

1.2001.0529

Allgemeine Optimierung in Hinblick auf die Stabilität, Performance und Grösse. Diverse Fehler in der Verarbeitung von Request- und Verzeichnisdaten wurden behoben. Die Konfiguration wurde allgemein durch neue Parametern und Vererbung erweitert.

  • Das Lesen der Requestdaten ist abgebrochen obwohl sich noch Daten im Datenstrom befinden, dieses Problem wurde behoben. Verzeichnisse ohne Inhalt wurden nicht generiert, dieses wurde behoben.
  • Devwex wurde allgemein in der Grösse optimiert.
  • Die Konfiguration der BAS Sektion wurde um den Parameter IMPLEMENTS erweitert. Die Konfiguration des nachfolgend benannten Server oder virtuellen Hosts wird dann als Basiskonfiguration geladen. Die Konfigurationen können so vererbt werden.
  • Der Request Parameter VERSION wurde integriert. Die logische Zuweisung wurde angepasst ohne das dies Auswirkungen auf die Funktionalität hat.
  • Die Serverkonfiguration wurden um den Parameter Timeout erweitert. Dieser gibt den maximal zulässige Datenleerlauf in Millisekunden an. Der Wert 0 bedeutet das der Timeout nicht berücksichtigt wird. Die Filterparameter entsprechen nun den Headerparametern vom Syntax.

1.2001.0425

Die virtuellen Verzeichnisse wurden um den Parameter [C] zum sperren erweitert. Wird ein solches Verzeichnis aufgerufen wird der Response Code 403 zurück gegeben. Das Problem mit dem Response Code 304/302 wurde behoben. Um eine offene Schnittstelle für Applikation die z.B. keine Umgebungsvariablen lesen können, zur Verfügung zu stellen wurde das DCGI welches sich an die CGI Spezifikation 1.1 anlehnt, eingeführt. COMMAND und CGI berücksichtigen nun den zusätzlichen Parameter [I].

1.2001.0411

Devwex steht als Release bereit.

Copyright 2012 Seanox Software Solutions
Alle Rechte vorbehalten