Stos oprogramowania
Stos oprogramowania (ang. Software Stack) – to grupa programów, zestawów aplikacji oraz narzędzi, które razem tworzą spójny ekosystem, działając w określonej i zdefiniowanej kolejności w kierunku wspólnego celu. Można też tak zdefiniować dowolną grupę narzędzi lub rutynowych aplikacji, które tworzą razem spójny zestaw. Stos to również baza danych oraz odpowiednie pliki do zainstalowania, definicje oprogramowania produktów oraz poprawki.
Software stack można wdrażać przy użyciu obrazu lub definicji oprogramowania.
Przykładem wyczerpującego stosu oprogramowania aplikacji Facebooka jest: PHP, React, GraphQL, Cassandra, Hadoop, Swift i wiele innych frameworków.
Tworzenie stosu oprogramowania polega na dobraniu odpowiednich, zintegrowanych warstw, które tworząc pakiet ułatwiają ich pobieranie i wdrażanie w tym samym czasie.
Składnikami takiego stosu może być ogólne środowisko – np. System operacyjny Mac OS X, Windows lub Linux – oraz bardziej szczegółowe rozwiązania programistyczne, takie jak określona struktura PHP.
Części stosu oprogramowania[edytuj]
Poniższa grafika wyjaśnia wewnętrzne działanie stosu: klient jest miejscem, w którym wszystko się zaczyna i kończy.
Stos oprogramowania najczęściej wykorzystywany jest w aplikacjach i składają się na niego cztery warstwy, z których aż 3 znajdują się po stronie serwera.
- Warstwa klienta – to jedyny składnik w przeglądarce;
- Warstwa internetowa – serwer WWW lub serwer HTTP;
- Warstwa biznesowa – serwer aplikacji, w tym platforma programistyczna, struktury i języki programowania po stronie serwera;
- Warstwa bazy danych – wybrany serwer bazy danych, który często uzależniony jest od warstwy biznesowej.
Tworzenie stosu oprogramowania: front-end, back-end i full-stack[edytuj]
Proces tworzenia aplikacji uogólniając można rozdzielić na dwa “obozy”: przedni (widoczny dla klienta front-end) i ‘od zaplecza” (back-end development). Oczywiście istnieją również programiści, którzy zajmują się pełnym stosem (full-stack developerzy) pracując zarówno na front- i back-endzie.
Często zdarza się, że różni programiści, którzy pracują przy takim samym projekcie aplikacji opracowują różne części stosu oprogramowania.
Przykłady stosów oprogramowania[edytuj]
Poniższa grafika wyjaśnia wewnętrzne działanie stosu: klient jest miejscem, w którym wszystko się zaczyna i kończy.
1) LAMP: Linux / Apache / MySQL / PHP
W pewnym sensie od tego stosu się zaczęło, jest to jeden z pierwszych software stacków, który składa się ze wszystkich bezpłatnych komponentów oprogramowania, które ma otwarty kod źródłowy. Wszystko składa się w spójną całość, a każdy z elementów zarówno razem jak i osobno szczególnie dobrze radzą sobie w dynamicznych witrynach internetowych i aplikacjach.
Śmiało można uznać, że to najbardziej tradycyjny model, a jednocześnie solidny rodzaj stosu.
W skład tego stosu wchodzą:
- system operacyjny Linux (po zamianie na Windows mamy stos WAMP);
- serwer WWW Apache;
- oprogramowanie aplikacji PHP (wymiennie z językami Python i Perl);
- baza danych MySQL.
Popularne CMS typu open source, jak WordPress i Drupal korzystają z software stack LAMP.
Odmiany obejmują:
- MAMP (Mac OS X / Apache / MySQL / PHP): Odmiana systemu operacyjnego MacOS X, dostępna zarówno dla Windows, jak i Mac.
- XAMPP (Linux, Mac OS X, Windows / Apache / MySQL / PHP, Perl): Bardziej kompletny pakiet, zawiera serwer FTP, który jest wieloplatformowy i może działać w systemach operacyjnych Linux, Windows i Mac.
- WAMP (Windows / Apache / MySQL / PHP): odpowiednik systemu operacyjnego Microsoft Windows, zawiera wszystkie funkcje i jest łatwy do rozpoczęcia. Stos WIMP jest podobny, ale zawiera serwer IIS.
- LAPP (Linux / Apache / PostgreSQL / PHP): odmiana bazy danych PostgreSQL zoptymalizowana pod kątem projektów na poziomie przedsiębiorstwa.
2) MEAN: MongoDB / Express.js / AngularJS / Node.js
MEAN to nowoczesny stos (jeden z najpopularniejszych w 2020 roku), który próbuje wygryźć LAMP. Tak samo opiera się w całości na JavaScript, dzięki czemu oszczędza czas i pieniądze firmom, które w swoim zespole posiadają wielu frontendowców (w całym stosie używa się tylko jednego języka). Tak jak w LAMP, wszystkie technologie są bezpłatne i mają otwarty kod źródłowy przy wsparciu dynamicznej społeczności.
Kto używa MEAN?
Aplikacje tego stosu są idealne do hostingu w chmurze, ponieważ są elastyczne, skalowalne i rozszerzalne. Świetnie sprawdza się przy projektowaniu kalendarzy, map i wyszukiwań lokalizacji oraz witryn agregujących wiadomości.
Ten stack można łatwo wdrożyć, ponieważ zawiera własny serwer WWW.
Komponenty MEAN:
- bazę danych MongoDB,
- wiodącą bazę danych NoSQL opartą na JSON, która oferuje większą elastyczność niż relacyjna baza danych SQL;
- framework front-end AngularJS, Express.js,
- framework sieciowy dla Node.js;
- podstawową platformę środowiska wykonawczego Node.js zamiast systemu operacyjnego.
Oferuje elastyczność i wiele funkcji do tworzenia jedno- i wielostronicowych aplikacji internetowych.
Odmiany obejmują:
- MEEN: stos zastępujący Ember.js dla AngularJS.
- Stos MEVN
- W tej wersji MEAN, Angular został zastąpiony przez Vue.js jako front-end framework. Ta struktura zyskała ogromną popularność w ciągu ostatnich kilku lat.
- Stos MERN jest bardzo podobny do MEAN, w którym React zastępuje Angulara.
3) Ruby Stack: Ruby / Ruby on Rails / RVM (Ruby Virtual Machine) / MySQL / Apache / PHP
Odmiany obejmują:
- JRuby – ta wersja jest w całości napisana w języku Java, a Ruby działa na wirtualnej maszynie języka Java (JVM).
4) Stos Django: Python / Django / Apache / MySQL
5) Bitnami DevPack: PHP / Django / Ruby on Rails / Java / MySQL, PostgreSQL / Apache Tomcat
6) Apache CloudStack
7) BHCS / BCHS (OpenBSD, C, httpd, SQLite)
8) GLASS (GemStone, Linux, Apache, Smalltalk, Seaside)
9) WIMP – Pakiet oprogramowania WIMP obejmuje system operacyjny Windows, serwery internetowe IIS, MySQL lub MS Access jako system zarządzania danymi oraz języki programowania PHP, Perl lub Python.
10) NMP – zestaw kilku stosów oprogramowania, które zawierają serwery sieciowe Nginx , MySQL i język programowania PHP. Ten zestaw technologii działa ze wszystkimi głównymi systemami operacyjnymi i został oddzielnie spakowany z systemami Linux, Windows i macOS.
11) MAMP – Framework MAMP może być używany do tworzenia witryn internetowych działających na komputerach z systemem Windows lub macOS. Pakiet oprogramowania składa się z systemu operacyjnego macOS lub Windows, serwera WWW Apache , MySQL do zarządzania relacyjnymi bazami danych oraz PHP, Perl lub Python do tworzenia stron internetowych.
Bibliografia[edytuj]
- Software stack – sprawdzone pakiety rozwiązań (pol.). WEBLOG – Website Style – Tworzenie stron www, 2021-03-12. [dostęp 2021-03-19].
- What is a Software Stack? (ang.). SearchAppArchitecture. [dostęp 2021-03-19].
- What is a Software Stack?. Sumo Logic. [dostęp 2021-03-19].
This article "Stos oprogramowania" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Stos oprogramowania.