Entw.: RESTServer-Auswahl

Auswahl eines performanten RESTServer's

Für den zentralen Zugriff auf Unternehmensdaten einer WebApp/App wird ein sogenannter RESTServer benötigt. Wenn die Client-Programme mit HTML5/CSS3 und JavaScript erstellt werden, erfolgen die Zugriffe auf den RESTServer über Ajax. Der RESTServer ermöglicht es, dass eine WebApp/App mithilfe einer abgesicherten Übertragung von JSON-Daten (JavaScript Object Notation) über TCP/IP oder HTTP bzw. HTTPS, sicher mit dem Server kommunizieren kann.

Ein RESTServer ist daher ein Backend-Programm für Client's und Schnittstellenprogrammen. Eine Unterscheidung wird i.d.R. nicht vorgenommen. Die Benutzer- und Mandantenverwaltung, die Datenbankzugriffe und die umfangreicheren Algorithmen werden im RESTServer implementiert. Für etwaige Schnittstellen mit Fremdprogrammen braucht kein aufwendiger Web Service realisiert werden. Die JSON-Schnittstelle des RESTServer's ist auch sehr viel einfacher zu handhaben und lässt sich schneller realisieren.

Wichtig ist ausserdem, dass mit möglichst vielen verschiedenen Eingabegeräte auf die Unternehmensdaten zugegriffen werden kann. Dabei muss auf die Sicherheit besonderen Augenmerk gerichtet werden, da auch evtl. externe Personen/Firmen auf bestimmte Unternehmensdaten zugreifen möchten. Insbesondere der Einsatz von Smartphones und Tablet-PC's wird favorisiert, da auf die Unternehmensdaten zugegriffen werden kann, ohne zum Schreibtisch zu laufen und über den Firmen-PC die Daten abzurufen. In einem Produktionsbetrieb sind die langen Laufwege oft ein Hindernis, auf bestehende Informationssysteme zu zugreifen, weil dies einfach zu lange dauert. Auch sollte die Anmeldung am Server ohne grösseren Aufwand möglich sein, wobei die Sicherheit nicht zu kurz kommen darf.

Es gibt recht unterschiedliche RESTServer, die auf unterschiedlichen Technologien basieren. Die Auswahl eines RESTServers richtet sich primär nach der Infrastruktur des Kundens. Hier eine kleine Auswahl von möglichen RESTServer'n:
- DataSnap von Embarcadero für die Programmiersprachen Delphi oder C++
- Delphi On Rail nur für die Programmiersprache Delphi
- node.js mit JavaScript
- Servlet's auf J2EE-Technologie
- PHP-Funktionen

Testimplementierungen der obigen RESTServern durch dem Autor ergaben, dass der Einsatz von DataSnap die grösste Produktivität bringt. Auch in der Performance liegt DataSnap eindeutig vorne. Mit Hilfe von DataSnap lassen sich JSON-Datenschnittstellen sehr schnell erstellen und ist damit sehr preiswert für die Software-Entwicklung, obwohl die Enterprise-Version des RAD-Studios der Firma Embarcadero nicht gerade preiswert ist. Auch als Kleinunternehmer ist man so in der Lage, recht umfangreiche und performante RESTServer-Funktionalitäten in kürzester Zeit zu erstellen. Dies haben u.A. auch chinesische Software-Entwickler entdeckt. Es gibt dort schon eine grössere DataSnap-Kultur.

Die Infrastruktur eines Kunden, für den ein RESTServer zu implementieren ist, spricht auch für diese Lösung. Der Kunde verwendet Oracle 11g, IIS unter Windows Server 2008 und Delphi-Client's. Viele Teile des Delphi-Client's lassen bei Verwendung von DataSnap in den RESTServer übernehmen. Die gemessene Performance von DataSnap ist unübertroffen, dies inbesondere bei der Verarbeitung von Massendaten und Mehrbenutzerbetrieb. RESTServer, die mit J2EE (Servlet's unter Tomcat) oder PHP vom Autor erstellt wurden, waren bezüglich ihrer Performance sehr viel schlechter bei gleicher Funktionalität.

Durch die Möglichkeit von Filterdefinitionen an beiden Enden des Kommunikationskanals zur Verschlüsselung und Komprimierung wird die Sicherheit weiter erhöht. Auch bietet die DataSnap-Technologie die Möglichkeit, alle Client-Anwendungen asynchron über auf dem Server vorgenommene Änderungen zu informieren, so dass Clients entsprechende Aktionen ausführen können. Dies entspricht der neuen WebSocket-Technologie. Die Kommunikation zwischen dem Client und dem Server kann über den lokalen Host, über das lokale Netzwerk oder über das Internet erfolgen.

Wenn entweder auf dem Client oder dem Server eine Firewall ausgeführt wird, bietet DataSnap die Option, den Datentransfer durch einen Tunnel zu lenken, so dass die Firewall ausser Kraft gesetzt wird, und die Kommunikation zwischen dem Client und dem Server stattfinden kann.

Folgende Bilder zeigen die Architektur von DataSnap.

DataSnap-Architektur 1DataSnap-Architektur 1



DataSnap-Architektur 2DataSnap-Architektur 2