Als Softwarestack (etwa „Softwarestapel“) oder Solution-Stack bzw. Lösungsstack (etwa „Lösungsstapel“), oft kurz als Stack bezeichnet, bezeichnet man eine Reihe von aufeinander aufbauenden Softwarekomponenten, die gemeinsam eine Plattform bilden.
Ein Stack setzt sich hierbei zusammen aus dem Betriebssystem, dem Webserver und der Laufzeitumgebung, der Programmiersprache, den Programmierwerkzeugen (z. B. IDE und Compiler), der Lösung für die Datenpersistenz (z. B. Datenbank), sowie Frameworks, Bibliotheken und Schnittstellen. Häufig eingesetzte Stacks werden oft mit einer Abkürzung bezeichnet.
Unter Full Stack wird die Gesamtheit all jener Stacks bezeichnet. Der Begriff wird hauptsächlich zur Beschreibung eines Softwareentwickler-Generalisten (Full Stack Developer) benutzt.
Beispiele
BearbeitenAbkürzung | Betriebssystem | Webserver | Laufzeitumgebung | Datenpersistenz | Programmiersprache | IDE | Sonstiges |
---|---|---|---|---|---|---|---|
LAMP | Linux | Apache | Perl, PHP oder Python | MySQL oder MariaDB | Perl, PHP oder Python | ||
LAPP | Linux | Apache | Perl, PHP oder Python | PostgreSQL | Perl, PHP oder Python | ||
LNMP/LEMP | Linux | Nginx | Perl, PHP oder Python | MySQL, MariaDB | Perl, PHP oder Python | ||
LLMP | Linux | Lighttpd | Perl, PHP oder Python | MySQL oder MariaDB | Perl, PHP oder Python | ||
LYME | Linux | Yaws | Mnesia | Erlang | |||
LYCE | Linux | Yaws | CouchDB | Erlang | |||
GLASS | Linux | Apache | GemStone | Smalltalk | Seaside | ||
LEAP | Linux | Eucalyptus, AppScale | Python | Python | |||
XAMPP | Apache | PHP, Perl oder Python | MySQL oder MariaDB | PHP, Perl oder Python | |||
MAMP | macOS | Apache | PHP, Perl oder Python | MySQL oder MariaDB | PHP, Perl oder Python | ||
WAMP | Windows | Apache | PHP, Perl oder Python | MySQL oder MariaDB | PHP, Perl oder Python | ||
NMP | Nginx | PHP | MySQL oder MariaDB | PHP | |||
WIMP | Windows | IIS | MySQL oder MariaDB | PHP, Perl, Python | |||
WISA | Windows, Windows Server | IIS | .NET | SQL Server | C#, F#, VB.NET | Visual Studio | ASP.NET |
WINS | Windows, Windows Server | IIS | .NET | SQL Server | C#, F#, VB.NET | Visual Studio | |
OpenACS | Linux oder Windows | AOLserver | PostgreSQL oder Oracle | Tcl, OpenACS | |||
MEAN | Node.js | Browser | MongoDB | JavaScript, TypeScript oder Dart | Angular, Express.js | ||
MERN | Node.js | Browser | MongoDB | JavaScript, TypeScript oder Dart | React.js, Express.js | ||
SNAKEOIL | Linux oder Windows | Flask (Jinja2 und Werkzeug) | Python | MongoDB | Python | Docker (Software),
Traefik (Reverse Proxy) | |
SMACK | Apache Mesos | JVM | Apache Cassandra + Apache Spark | Java | IntelliJ IDEA, Eclipse, NetBeans | Akka, Apache Kafka | |
XRX | Browser | XML-Datenbank (BaseX, eXist, MarkLogic Server) | XML, xHTML, XQuery, XSLT, XForms | REST | |||
BCHS[1] | BSD (OpenBSD) | Open BSD httpd | SQLite | C | |||
JAM[2] | Browser | REST-API | JavaScript, Markup (HTML, CSS) | ||||
Android | Android | Android Runtime (ART) | SQLite | Java, Kotlin | Android Studio | Android SDK | |
Apple | macOS, iOS | macOS | Objective-C, Swift | Xcode | Cocoa | ||
Xamarin | Windows, macOS, Linux, iOS, Android | Mono, .NET | SQLite | C#, F# | Visual Studio, MonoDevelop | ||
PhoneGap | iOS, Android, Windows | Apache Cordova | SQLite | JavaScript, HTML, CSS | |||
.Net-Framework | Windows, Azure | IIS | .NET | SQL Server; alle relationalen und nicht-relationalen Datenbanken | C#, F#, VB.NET | Visual Studio | ASP.NET, WinForms, WPF, UWP, WCF, WF |
.NET Core/.NET | Windows, macOS, Linux, Azure | IIS, Apache, Nginx | .NET Core | SQL Server; alle relationalen und nicht-relationalen Datenbanken | C#, F#, VB.NET | Visual Studio | ASP.NET |
SAFE | Azure | .NET Core | SQL Server; alle relationalen und nicht-relationalen Datenbanken | F# | Visual Studio | Suave, Fable, Elmish |
Weblinks
Bearbeiten- Heuristiken zur Wahl des Software-Stacks Thomas Ruhroth & Kai Schmidt: How to Tech-Stack: Technologieauswahl für langlebige Projekte, in: Informatik Aktuell (Magazin), 9. Januar 2024
- Software-Stack in: Computerweekly