Z Wikipedii, wolnej encyklopedii
Platforma obliczeniowa, platforma cyfrowa
[1]
? jednolite ?rodowisko, na ktorym uruchamiane jest
oprogramowanie
. Mo?e by? ono zwi?zane zarowno 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? ro?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 formatow wymiany danych w oparciu o standardy techniczne
[4]
.
Ide? platformy jest abstrakcja elementow zło?onych dla oprogramowania aplikacyjnego lub jego tworcow. Do takich elementow nale?y mi?dzy innymi ?rodowisko wykonawcze, na ktorym dana aplikacja b?dzie uruchamiana ju? po jej napisaniu, a ktore mo?e nie by? znane podczas jej tworzenia (przykładowo mo?e to by? nowa rodzina
procesorow
lub innych jednostek logicznych, ktore chcemy wykorzysta? dla ju? istniej?cej aplikacji). Dodatkowym elementem, ktory wpłyn?ł na potrzeb? rozwoju platform obliczeniowych, była
zło?ono?? obliczeniowa
, na ktor? wpływ miał niestandardowy sprz?t lub niekompatybilne
API
znacz?co utrudniaj?ce tworzenie i wdra?anie nowych programow.
Tak? abstrakcj? mo?na osi?gn?? poprzez zapewnienie modelu funkcjonalnego konkretnych funkcjonalno?ci, zarowno 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
interfejsow binarnych
(np.
DirectX
).
Zasadnicz? cech? tak zdefiniowanej abstrakcji jest jej uniwersalno?? zwana
kompatybilno?ci?
.
W przypadku platform dokonywane jest rozro?nienie na platformy sprz?towe i programowe.
- Platforma programowa
? zwana tak?e poziomem aplikacji, dzieli si? na pi?? elementow:
- Platforma oparta na interfejsie binarnym
? zapewnia kompatybilno?? poprzez udost?pnienie interfejsow binarnych bibliotek funkcji, ktore maj? bezpo?redni dost?p do platformy sprz?towej. Tworca bibliotek jest odpowiedzialny za ich utrzymanie i wspieranie nowego sprz?tu, a kolejne wersje interfejsow 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 ?rodłowym
? zakłada przeno?no??
kodu ?rodłowego
umo?liwiaj?c jego kompilacj? i działanie
na wielu ro?nych platformach sprz?towych i programowych
. Koncept ten jest bardzo popularny w ?rodowiskach
Uniksowych
i
Open Source
. Kontrastuje z ide? platformy opartej o interfejsy binarne. Przykładami s? tutaj
Qt
,
GTK+
oraz
Mono
.
- System operacyjny jako platforma
? dostarcza niezb?dnych interfejsow 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 ktor? ow 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, ktore 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 skrocie
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 interfejsow programistycznych le?y po stronie dostawcy rozwi?zania chmurowego
[5]
. Przykładami takich platform jest
Amazon Web Services
oraz
Microsoft Azure
.
- 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