Enterprise Software Engineering in adesso-Qualität – mit JavaScript!?

27. März 2014Dr. Thomas Franz und Moukarram Kabbash

In der Enterprise-Softwareentwicklung führte die Programmiersprache JavaScript lange Zeit ein Nischendasein, wahrgenommen als notwendiges Übel für die Umsetzung spezieller Anforderungen auf Webseiten. Diese Wahrnehmung ist immer noch verbreitet, jedoch längst überholt. Denn JavaScript ist heute nicht nur für die Erfüllung von Anforderungen an Web- und Mobilanwendungen nahezu unabdingbar, sondern stellt vielmehr eine wirtschaftliche Alternative für die Entwicklung moderner, qualitativ hochwertiger Anwendungen dar und bietet gleichzeitig Lösungen für Herausforderungen wie Multi-Device-Fähigkeit an. Auch bei unserem Kunden ITERGO konnten wir mit JavaScript hohe Kundenanforderungen an Nutzbarkeit und Modernität erfüllen. Wie zum Beispiel bei der Umsetzung des Unfallrechners auf www.ergo.de. Darauf gehen wir im weiteren Verlauf des Artikels noch genauer ein.
 adesso_JavaScript_ergoUnfallrechner auf www.ergo.de

Der Browser ist die universale Laufzeitumgebung – ob mobil oder auf dem Arbeitsplatzrechner

Wenn wir von Enterprise Software in JavaScript sprechen, dann meinen wir hier tatsächlich Anwendungen, die im Browser ausgeführt werden. Und zwar mindestens die komplette Anwendungslogik und gegebenenfalls auch Teile der Geschäftslogik. Dadurch können höchste Ansprüche an Usability und Performance erfüllt werden. Da derartige Anwendungen einmal im Browser geladen werden und keine weiteren Page Loads erfolgen, die die Nutzerinteraktion stören, werden sie als Single Page Applications (SPAs) bezeichnet. SPAs haben als Laufzeitumgebung den Browser, der eine extrem verbreitete Laufzeitumgebung ist, die sich auf Arbeitsplatzrechnern, Laptops, Tablets bis hin zum Smartphone findet. Durch Standards wie HTML 5 und CSS 3 sind SPAs daher tatsächlich auf sehr vielen Geräten verwendbar und bieten in Summe eine wirtschaftliche Lösung für die Bereitstellung von Anwendungen. Denn die SPA ist überall dieselbe, das heißt Aufwände im Lebenszyklus der Anwendung fallen nur einfach an (Entwicklung, Wartung, Aktualisierung, Auslieferung, …).
Da sich die Kommunikation der SPAs mit dem Server auf den Austausch dargestellter oder vom Nutzer bearbeiteter Daten beschränkt, sind sie auch bei mäßiger Netzwerkverbindung (z.B. unterwegs auf dem Smartphone) noch nutzbar. Sogar die Offline-Fähigkeit ist für SPAs heute standardisiert (über die in HTML5 definierte Storage-Schnittstelle) möglich. Im Browser ist JavaScript nahezu alternativlos, serverseitig zeigt sich jedoch ein völlig anderes Bild.

Entwicklungseffizienz: One ring to rule them all

Der Einsatz von JavaScript ist heute längst nicht mehr auf den Browser beschränkt. JavaScript kann für serverseitige Anwendungsentwicklungen verwendet werden. Selbst hochperformante NoSQL-Datenbanken, zum Beispiel MongoDB, unterstützen heute die JavaScript Object Notation (JSON) als Datenformat und JavaScript als Anfrage- und Manipulationssprache. Dadurch ermöglicht JavaScript eine extrem hohe Wiederverwendung von Programmiercode über unterschiedliche Ebenen einer Anwendungsarchitektur hinweg. Die heute oft als gegeben angesehene Notwendigkeit mehrerer Programmiersprachen, Datenformate und Datenmodelle entfällt, wenn JavaScript auf allen Architekturebenen eingesetzt wird. Das reduziert einerseits die Komplexität der Anwendung sowie das benötigte Know-how und begünstigt andererseits die Wiederverwendung von Programmcode sowie die Zusammenarbeit von Entwicklern, von der Nutzerschnittstelle bis in die Datenbank.

Ökosystem und Standards

Die Reduzierung von Sprach-Know-How und Komplexität in einer Anwendungsarchitektur ist ein attraktives Ziel. In eine ernsthafte Effizienzbetrachtung gehört jedoch auch die Betrachtung des Ökosystems, das heißt der Bibliotheken, Frameworks und Technologien, die Aufwände für Qualitätssicherung und Softwaredesign beeinflussen. JavaScript bietet heute ein großes Ökosystem. Dazu zählt insbesondere die Unterstützung von Unit-Tests und End-to-End-Tests nicht nur für die Serverseite, sondern auch für den Teil der Anwendung, der im Browser ausgeführt wird (bei modernen Single-Page-Anwendungen ist das sogar der Großteil). Auch die Orchestrierung von Entwicklung, Building und Deployment in einer Continuous-Integration-Umgebung mit statischer Codeanalyse ist einfach und praktikabel. Frameworks für die Implementierung von Model-View-Controllers im Browser runden dieses Ökosystem ab und ermöglichen die qualitativ hochwertige und effiziente Entwicklung Multi-Device-fähiger Anwendungen, die auch noch höchsten Ansprüchen an Usability und Skalierbarkeit genügen.

Fazit: JavaScript schafft Business Value

Erste unternehmenskritische Anwendungen sind bereits Browser- und Serverseitig mit JavaScript umgesetzt, zum Beispiel bei PayPal, Groupon, der New York Times und weiteren. Auch bei unseren Kunden ist JavaScript auf dem Vormarsch. Zum Beispiel bei ITERGO, dem IT-Dienstleister der ERGO Versicherungsgruppe. Sie bietet mit einem von uns Ende 2013 umgesetzten SPA-Ansatz Kunden ein flüssiges und wartezeit-freies Erlebnis: Die Navigation zwischen verschiedenen Masken des Unfallschutz-Tarifrechners geschieht vorwärts und rückwärts ohne Page Loads. Einmal eingegebene Daten gehen nicht verloren und Kunden sind nicht an eine serverseitige Session gebunden. Die Eingabe der persönlichen und Tarif-relevanten Daten kann in aller Ruhe gemacht werden und gegebenenfalls über mehrere Stunden oder gar Tage erfolgen. Diese Eigenschaften sind nicht nur technologisch interessant, sondern haben einen klaren Business Value wie Fabian Stolz, Gruppenleiter Kundenportale, ITERGO Informationstechnologie GmbH, erklärt: „Der Einsatz von JavaScript für unseren Unfallschutz-Tarifrechner mit online Abschlussmöglichkeit hilft uns, dem hohen Anspruch an Komfort, Usability und Performance gerecht zu werden, den unsere Kunden an uns stellen. Die positiven Erfahrungen aus diesem Projekt bilden eine gute Grundlage für den Einsatz dieser Technologie in weiteren Tarifrechnern und anderen Anwendungen der ERGO Versicherungsgruppe.“

Die Vorteile im Überblick:

  • Modularität
    Für komplexe Anwendungen
    Für hohe Wartbarkeit
  • Testbarkeit
    Automatisierte Unit-Tests
    End-to-End-Tests auf unterschiedlichen Browsern (vollautomatisch)
  • Entwicklungseffizienz
    Eine Sprache und eine Repräsentation über alle Ebenen
    Geringe Komplexität durch den Entfall von Brüchen durch Programmiersprachen und Datenformate
    Etablierte Frameworks
  • Kundenrelevanz
    Modern (Außen- und Innenwirkung)
    Standardkonform (HTML 5, CSS 3, …)
    Multi-Device-Unterstützung
    Schrittweise Einführung (pro Ebene) möglich

Zusammenfassend bietet JavaScript heute große Effizienzpotenziale für die Enterprise-Anwendungsentwicklung und Wirtschaftlichkeit durch geringe Kosten über den gesamten Anwendungslebenszyklus. Zusätzlich wird Mehrgerätefähigkeit auch für mobile Szenarien möglich. Die Verwendung von JavaScript kann dabei schrittweise auf unterschiedlichen Ebenen einer IT-Architektur erfolgen und ermöglicht so den Einstieg ohne „Big Bang“.

Referenzen

PayPal ersetzt Java Stack durch JS-Stack: https://www.paypal-engineering.com/2013/11/22/node-js-at-paypal/
Groupon wechselt von Ruby auf Node.js:
https://engineering.groupon.com/2013/node-js/geekon-i-tier/
JavaScript-Serverplattform inkl. Paketverwaltung: Nodejs http://nodejs.org
Webservice Framework für Node.js: Expressjs http://expressjs.com
Model-View-Controller für JavaScript im Browser: Angularjs http://angularjs.org
ITERGO Beispiele: https://tr.ergo.de/unfall/starter

Dr. Thomas Franz und Moukarram Kabbash Dr. Thomas Franz und Moukarram Kabbash sind bei der adesso AG beschäftigt. Dr. Thomas Franz ist Technologieexperte und interessiert sich für die Themen Big Data, Lean Startup und DevOps. Moukarram Kabbash ist Softwarearchitekt.
Artikel bewerten:
1 Star2 Stars3 Stars4 Stars5 Stars
Loading...

Kommentar hinzufügen:

Ihr Kommentar: