Piattaforma (informatica)
Una piattaforma informatica, si riferisce a una base oggetto di standard del settore su cui è possibile eseguire e sviluppare programmi informatici.
Una piattaforma informatica, si riferisce a una base oggetto di standard del settore su cui è possibile eseguire e sviluppare programmi informatici.
Descrizione
É un componente di un sistema informatico ed è collegata ad altri componenti. Può trattarsi dell'hardware o di software, in quest'ultimo caso ad esempio di un sistema operativo, o di un browser web e della relativa interfaccia di programmazione o di altro software sottostante, purché il programma informatico venga eseguito con esso.
Gli altri componenti del sistema informatico in cui opera non sono visibili alla piattaforma stessa. Grazie a questa astrazione, una piattaforma può essere trasferita a diversi sistemi informatici e funzionare correttamente. La complessità interna del sistema informatico viene aumentata con l'aiuto della tecnologia software, il che si traduce in un utilizzo semplificato da parte degli utenti umani.
I componenti o i livelli di astrazione di una tipica piattaforma sono: architettura del computer, stack software, ambiente di esecuzione, linguaggio di programmazione.
Classificazione
Si possono distinguere piattaforme hardware, operativa e software che sono interconnesse fra loro: la piattaforma operativa è specifica di un certo tipo di architettura hardware venendo a dipendere dalle istruzioni fondamentali (instruction set) del processore formando un ambiente di esecuzione unico che contraddistingue il sistema (ad esempio il sistema operativo macOS gira solo su computer Apple Macintosh); ciò nonostante sono stati sviluppati anche sistemi operativi portabili su diverse architetture hardware come ad es. Windows e Linux.
la piattaforma hardware è l'hardware sul quale vengono fatti eseguire un certo sistema operativo e un certo insieme di programmi applicativi (tipicamente si tratta dell'architettura del processore);
la piattaforma software, che indica il tipo di framework o il sistema software di base sul quale i programmi e le applicazioni sono sviluppati e/o eseguiti (ambiente di esecuzione, ad es. piattaforma Java, piattaforma Wiki, piattaforme di forum come VBulletin, piattaforme di blog e siti web dinamici (CMS) come WordPress, Joomla!, Drupal e Sharepoint, piattaforme LAMP e WAMP per siti web, piattaforme di video sharing come YouTube, piattaforma di social network e microblogging come Facebook e Twitter, piattaforme di e-commerce come eBay, Amazon ecc..., N.B. in quest'ultime accezioni si parla di applicazioni web complesse).
la piattaforma operativa è il tipo di piattaforma software che include il sistema operativo il quale è costruito a partire dalle istruzioni elementari del processore (instruction set).
Obbiettivi e metodi
L'idea alla base di una piattaforma è l'astrazione e la semplificazione.
Questa semplificazione può essere ottenuta fornendo allo sviluppatore dell'applicazione un modello funzionale che sia un'astrazione selettiva di funzionalità più concrete, realizzato in genere sotto forma di un'interfaccia di programmazione dell'applicazione (API), in cui è annidata la funzionalità sottostante. Per l'applicazione risultante, questa assume tipicamente la forma di un ambiente di runtime interpretato dinamicamente (ad esempio: JRE, browser) o di un Interfaccia binaria per applicazioni (ABI) relativo a funzioni software note.
Una qualità che questi livelli di astrazione possono offrire è l'universalità, solitamente definita come compatibilità tecnica. Questa può riferirsi all'ampiezza, cioè alla quantità di dettagli diversi astratti, così come alla permanenza della piattaforma nel tempo. La compatibilità nel tempo può significare la garanzia di una compatibilità verso il basso quando una piattaforma viene ulteriormente sviluppata o la garanzia da parte del produttore che i nuovi “dettagli” astraibili (quali nuovi sistemi operativi, nuovo hardware) saranno integrati nella piattaforma non appena siano emersi (compatibilità verso l'alto).
Tipi di piattaforma
Si possono distinguere tra piattaforme software e hardware.
Piattaforme hardware
Una piattaforma hardware, nota anche come livello macchina, si riferisce a un tipo specifico di computer o a una famiglia di processori. Il livello macchina è definito principalmente da un computer specifico o dall'architettura del processore e si trova logicamente in basso, sotto il livello dell'applicazione.
Una piattaforma per l'architettura di un processore utilizza un linguaggio macchina standardizzato, parole di grandi dimensioni, un ordine dei byte. Un esempio di largo utilizzo è l'architettura dell'x86.
Tuttavia, il modo in cui i singoli comandi di questo linguaggio macchina vengono elaborati internamente al microprocessore (ad esempio con Micro-op) può variare notevolmente all'interno della stessa piattaforma. Solo i risultati finali che i comandi forniscono rimangono invariati.
Le piattaforme hardware possono essere grossolanamente classificate in architetture CISC e RISC. Tuttavia, i confini tra questi due tipi di architettura stanno diventando sempre più labili nelle attuali architetture dei processori.
Piattaforme software
Le cosiddette piattaforme software, dette anche livello applicativo, si differenziano nel modo seguente.
Piattaforma basata su interfaccia binaria
La retrocompatibilità nel tempo può essere ottenuta, ad esempio, attraverso interfacce binarie stabili delle librerie di funzioni utilizzate per accedere alla piattaforma. Se la piattaforma viene ulteriormente sviluppata, solo il suo fornitore ha il compito di garantire il mantenimento della compatibilità. Il fornitore della piattaforma deve quindi distribuire la nuova versione della sua libreria di accesso; non sono necessarie modifiche al programma applicativo (ricompilazione o adattamento) da parte degli sviluppatori di applicazioni, né modifiche alla configurazione da parte degli utenti.
MCMX