Open source

Sie befinden sich hier: Themen > Open Source > Open Source Stack

Open Source Stack

Für nahezu jede Aufgabe gibt es freie Software, die sich nicht immer hinter kommerziellen Anwendungen verstecken muss. Sehen wir uns doch einmal die verschiedenen Bestandteile einer E-Business-Lösung sowie die dafür notwendigen Entwicklungswerkzeuge an.

Betriebssysteme

Das Betriebssystem bildet dabei die unterste Schicht. Neben Linux, das sich seit Jahren im Serverumfeld etabliert hat, stehen mit FreeBSD, NetBSD und OpenBSD noch vergleichbare Lösungen zur Verfügung. Insbesondere für sicherheitskritische Aufgaben stellen sie eine hochwertige Alternative dar.

Applikationsserver

Die Grundlage für die meisten Anwendungen bildet heute ein JEE-basierter Applikationsserver. JBoss bzw. Wildfly ist dabei die bekannteste freie Implementierung. Herausforderer in diesem Segment sind die Community Version des Glassfish-Servers von Oracle und der App-Server Geronimo von der Apache Foundation. Wenn es mal kein vollständiger Applikationsserver sein muss, existieren hier mit Tomcat und Jetty zwei Servlet-Engines, die allen Anforderungen an kommerzielle Produkte gerecht werden.

Webserver und LDAP

Mit dem lange bewährten Apache Webserver macht man nicht viel falsch, in den letzten Jahren hat sich mit nginx aber ein starker Wettbewerber entwickelt. Auf der anderen Seite des Applikationsservers findet sich die Benutzerverwaltung. Erste Wahl unter den freien Tools ist hier OpenLDAP.

Datenbanken

Im Datenbankbereich fällt die Auswahl schon schwerer. Im relationalen Bereich sind die Produkte PostgreSQL, MySQL und Firebird zu nennen. Für Entwicklungsversionen oder -umgebungen könnten aber auch SQLite oder HSQLDB ausreichen. Im NoSQL-Bereich sind vor allem MongoDB und CouchDB zu beachten.

Messaging

Beim Messaging greift man am Besten auf die Angebote der Hersteller von Applikationsservern zurück. Falls man dennoch Alternativen, evtl. für Entwicklungsumgebungen sucht, ist man mit Apache ActiveMQ oder RabbitMQ gut beraten.

Frameworks

Bei der Implementierung der eigentlichen Anwendung wird man auf Frameworks zurückgreifen, die einem einen Teil der Arbeit abnehmen. Diese Frameworks existieren für alle Schichten der Anwendung. Für die Präsentationsschicht bieten sich beispielsweise in der Java-Welt JSF, Vaadin, Tapestry oder Wicket an, in der Javascript-Welt AngularJS oder Ionic. Auf der Persistenzschicht sind Hibernate oder EclipseLink geeignete Mittel. Die Realisierung von Businesslogik könnte durch Spring unterstützt werden.

Entwicklungsumgebungen

Aber auch für Entwickler gibt es eine Vielzahl von freien Werkzeugen. Da wären in erster Linie die IDEs Eclipse, NetBeans oder IntelliJ Community Edition zu nennen.

Versionsverwaltung

Unverzichtbar bei der Softwareentwicklung ist die Versionsverwaltung. Git und Subversion sind die zwei Platzhirsche. Fehler in der Software treten leider immer wieder auf. Wichtig ist dann, dass sie in einem nachvollziehbaren Prozeß beseitigt werden. Tools wie Bugzilla, Mantis oder Request Tracker unterstützen dies.

Testen

Noch größer ist die Anzahl an hilfreichen Werkzeugen im Testumfeld. Da ist in erster Linie die JUnit-Familie zu nennen. Mit dieser lassen sich nicht nur alle Entwicklertests abgedecken, sondern darüber hinaus auch fachliche Tests und Lasttests durchführen. Für Oberflächentests von Webanwendungen setzen wir immer häufiger auf Selenium.

Dokumentation

Auch bei der Dokumentation sind kommerzielle Produkte nicht unbedingt notwendig. Mit OpenOffice, LaTeX und DocBook ist auch ein problemloser Datenaustausch mit der Umwelt möglich.

Weitere Informationen

Im Rahmen dieses kurzen Überblicks kann leider nur an der Oberfläche gekratzt werden. Darüber hinaus gibt es noch eine Vielzahl von freien Tools, die sie in Ihrem Geschäft unterstützen können. Haben wir Ihr Interesse an einem Einsatz von Open Source Software geweckt? Gerne geben wir Ihnen weitere Informationen und unterstützen Sie auch bei Auswahl und Einführung der für Sie geeignetsten Anwendungen.