Platforma obliczeniowa, platforma cyfrowa[1] – jednolite środowisko, na którym uruchamiane jest oprogramowanie. Może być ono związane zarówno ze sprzętem komputerowym, jak i systemami operacyjnymi, przeglądarką internetową czy interfejsem programowania aplikacji – tak długo, jak kod programu jest za ich pomocą wykonywany. Platformy mają różne poziomy abstrakcji, wliczając w to architekturę komputera, system operacyjny czy biblioteki uruchomieniowe[2].
W przemyśle platformy cyfrowe tworzą infrastrukturę dla modeli biznesowych cyfryzacji[3] oraz służą jako architektura informatyczna do generowania i strukturyzacji danych oraz formatów wymiany danych na podstawie standardów technicznych[4].
Charakterystyka
[edytuj | edytuj kod]Ideą platformy jest abstrakcja elementów złożonych dla oprogramowania aplikacyjnego lub jego twórców. Do takich elementów należy między innymi środowisko wykonawcze, na którym dana aplikacja będzie uruchamiana już po jej napisaniu, a które może nie być znane podczas jej tworzenia (przykładowo może to być nowa rodzina procesorów lub innych jednostek logicznych, które chcemy wykorzystać dla już istniejącej aplikacji). Dodatkowym elementem, który wpłynął na potrzebę rozwoju platform obliczeniowych, była złożoność obliczeniowa, na którą wpływ miał niestandardowy sprzęt lub niekompatybilne API znacząco utrudniające tworzenie i wdrażanie nowych programów.
Taką abstrakcję można osiągnąć poprzez zapewnienie modelu funkcjonalnego konkretnych funkcjonalności, zarówno na płaszczyźnie sprzętowej za pomocą ujednoliconych modeli programowych, jak i na płaszczyźnie programowej poprzez udostępnianie środowisk uruchomieniowych (np. JRE, CLR) oraz interfejsów binarnych (np. DirectX).
Zasadniczą cechą tak zdefiniowanej abstrakcji jest jej uniwersalność zwana kompatybilnością.
Typy platform
[edytuj | edytuj kod]W przypadku platform dokonywane jest rozróżnienie na platformy sprzętowe i programowe.
- Platforma sprzętowa – zwana także poziomem maszyny, odnosi się do typu komputera lub rodziny procesorów. Definiowana jest głównie przez określoną architekturę komputera lub procesora, używa spójnego kodu maszynowego, ma jasno określony rozmiar słowa danych i kolejność bajtów. Można je dodatkowo podzielić na platformy wykorzystujące instrukcje CISC lub RISC. Przykładami takich platform jest Intel x86, SPARC oraz IBM System/360.
- Platforma programowa – zwana także poziomem aplikacji, dzieli się na pięć elementów:
- Platforma oparta na interfejsie binarnym – zapewnia kompatybilność poprzez udostępnienie interfejsów binarnych bibliotek funkcji, które mają bezpośredni dostęp do platformy sprzętowej. Twórca bibliotek jest odpowiedzialny za ich utrzymanie i wspieranie nowego sprzętu, a kolejne wersje interfejsów nie powodują konieczności ponownej kompilacji uprzednio wykonanego oprogramowania użytkowego. Przykładami tego typu platform są Cocoa, Linux Standard Base oraz Windows API.
- Platforma oparta na kodzie źródłowym – zakłada przenośność kodu źródłowego umożliwiając jego kompilację i działanie na wielu różnych platformach sprzętowych i programowych. Koncept ten jest bardzo popularny w środowiskach Uniksowych i Open Source. Kontrastuje z ideą platformy opartej na interfejsach binarnych. Przykładami są tutaj Qt, GTK+ oraz Mono.
- System operacyjny jako platforma – dostarcza niezbędnych interfejsów oraz zapewnia poprzez sterowniki właściwą komunikację ze sprzętem takim jak procesory, karty graficzne oraz inne urządzenia peryferyjne. Zapewnia kompatybilność w obrębie danego systemu i platformy sprzętowej, na którą ów system został napisany. Taką przykładową platformą jest Android, macOS oraz Windows.
- Środowisko uruchomieniowe jako platforma – wykonywany na niej program nie komunikuje się bezpośrednio ze sprzętem czy systemem operacyjnym, tylko działa w obrębie środowiska wykonawczego, które to dopiero jest odpowiedzialne za tłumaczenie poleceń na kod maszynowy i zarządzanie zasobami. Środowisko to może być także wykorzystywane do abstrahowania innych platform oprogramowania. Przykładami takich środowisk są CLR, JRE, PHP czy dowolna przeglądarka internetowa.
- Chmura obliczeniowa jako platforma – zwana inaczej Platform-as-a-Service, w skrócie PaaS. Udostępnia wszystkie niezbędne zasoby sprzętowe i programowe potrzebne do wykonywania aplikacji na chmurze obliczeniowej. Zapewnienie i utrzymanie urządzeń fizycznych oraz interfejsów programistycznych leży po stronie dostawcy rozwiązania chmurowego[5]. Przykładami takich platform jest Amazon Web Services oraz Microsoft Azure.
Zobacz też
[edytuj | edytuj kod]Przypisy
[edytuj | edytuj kod]- ↑ What I Talk About When I Talk About Platforms. Martin Fowler. [dostęp 2022-02-11].
- ↑ platform from FOLDOC. FOLDOC. [dostęp 2022-02-11].
- ↑ Welche digitale Plattform braucht mein Unternehmen?. cenit, 2020-10-05. [dostęp 2022-02-19]. (niem.).
- ↑ Plattformen – Infrastruktur der Digitalisierung. vbv-bayern, 2021-05-31. [dostęp 2022-02-19]. (niem.).
- ↑ What Is A Cloud Platform?. CloudBolt. [dostęp 2022-02-19]. (ang.).
Bibliografia
[edytuj | edytuj kod]- David S. Evans, Andrei Hagiu, Richard Schmalensee: Invisible Engines. How Software Platforms Drive Innovation and Transform Industries, MIT Press, Cambridge, London 2006, ISBN 0-262-05085-4.