Multiplattform

I databehandling kalles multiplattform et attributt tildelt dataprogrammer eller databehandlingsmetoder og konsepter som er implementert og opererer internt på flere dataplattformer . Programvare på tvers av plattformer kan deles inn i to hovedtyper eller klasser: den ene krever en individuell kompilering for hver plattform som støtter den, og den andre kan kjøres direkte på hvilken som helst plattform, uten spesiell forberedelse, for eksempel programvare skrevet på et tolket språk eller bytekodebærbart forhåndskompilert, der tolkene eller kjøretidspakkene er vanlige eller standardkomponenter for alle plattformer .

For eksempel kan en tverrplattformapplikasjon kjøre problemfritt på både Microsoft Windowsx86 -arkitekturen , Linux på x86-arkitekturen og Mac OS X på enten PowerPC- eller x86-baserte Apple Macintosh -systemer. Generelt kan en tverrplattformapplikasjon kjøre på enten alle eksisterende plattformer eller minst to plattformer. [ 1 ]

Plattformer

En plattform er en kombinasjon av maskinvare og programvare som brukes til å kjøre programvare. En plattform kan enkelt beskrives som et operativsystem eller datamaskinarkitektur, eller det kan være en kombinasjon av begge (et eksempel på en vanlig plattform er Microsoft Windows som kjører på x86-arkitekturen). Andre populære stasjonære plattformer inkluderer Linux/Unix og Mac OS X (som begge er på tvers av plattformer). Det er imidlertid mange enheter, for eksempel mobiltelefoner, som også er effektive dataplattformer, selv om de er mindre ofte sett på som sådan. En applikasjon kan skrives avhengig av egenskapene til en bestemt plattform, det være seg maskinvaren , operativsystemet eller den virtuelle maskinen den kjøres i. Java-plattformen er en virtuell plattformmaskin som kjører på operativsystemer og typer maskinvare, og er en vanlig programvareplattform for skriving (programmering).

Maskinvareplattformer

En maskinvareplattform kan referere til arkitekturen til datamaskinen eller arkitekturen til prosessoren. For eksempel er x86- og x86-64-prosessorer en av de vanligste datamaskinarkitekturene som brukes i datamaskiner med generell bruk. Disse maskinene kjører vanligvis en versjon av Microsoft Windows, selv om de også kan kjøre andre operativsystemer, som Linux, OpenBSD, NetBSD, Mac OS X og FreeBSD.

En ARM-arkitektur er vanlig i smarttelefoner og nettbrett , som kjører Windows, Android, iOS og andre mobile operativsystemer .

Programvareplattformer

Programvareplattformer kan være et operativsystem eller et programmeringsmiljø, selv om det oftere er en kombinasjon av begge. Et bemerkelsesverdig unntak fra dette er Java, som bruker et virtuelt maskinuavhengig operativsystem for hver kompilerte kode, kjent i Java-verdenen som bytecode . Eksempler på programvareplattformer inkluderer:

Java-plattform

Som allerede nevnt, er Java-plattformen et unntak fra den generelle regelen om at et operativsystem er en programvareplattform. Java-språket krever en virtuell maskin, eller en "virtuell CPU" som all kode som er skrevet på språket blir utført. Dette gjør at den samme binære kjørbare filen kan kjøres på alle systemer, støttet av Java-programvare, ved bruk av en Java Virtual Machine (JVM). Java-kjørbare filer kjører ikke naturlig på operativsystemet, det vil si at verken Windows eller Linux kjører Java- programmer direkte.

Selv om Java -kode ikke kjøres naturlig, er JVM fullt ut i stand til å tilby operativsystemrelaterte tjenester, som disk I/O og nettverkstilgang, hvis de riktige rettighetene er gitt. JVM lar brukere bestemme passende beskyttelsesnivå, basert på en ACL. For eksempel er nettverks- og disktilgang vanligvis aktivert for skrivebordsapplikasjoner, men ikke for nettleserbaserte appleter.

JNI kan også brukes til å gi tilgang til spesifikke funksjoner i operativsystemer. Java-programmer i dag kan kjøres på Microsoft Windows, Mac OS X, Linux og Solaris operativsystemer . For mobilapper brukes nettleserplugins på Windows- og Mac-baserte enheter, Android har innebygd støtte for Java.

Programvare på tvers av plattformer

For at programvare skal anses på tvers av plattformer, må den være i stand til å kjøre på mer enn én datamaskinarkitektur eller operativsystem. Dette kan være en tidkrevende oppgave, siden forskjellige operativsystemer har forskjellige applikasjonsprogrammeringsgrensesnitt, eller APIer (for eksempel bruker Linux en annen API enn Windows).

Bare fordi et gitt operativsystem kan kjøre på forskjellige datamaskinarkitekturer, betyr det ikke at programvare skrevet for det operativsystemet automatisk vil kjøre på alle arkitekturer som operativsystemet støtter. Fra august 2006 kjørte for eksempel ikke OpenOffice.org på AMD64- eller Intel 64-linjene med prosessorer , standardene for x86-64 64-biters datamaskiner. Siden den gang har imidlertid situasjonen endret seg, og OpenOffice.org-pakken med programvare har blitt overført til 64-biters systemer. Dette betyr også at bare fordi et program er skrevet i et populært programmeringsspråk som C eller C++, trenger det ikke å fungere på alle operativsystemer som støtter programmering på det språket, eller til og med på det samme operativsystemet på en annen arkitektur.

Webapplikasjoner

Webapplikasjoner beskrives ofte som kryssplattformer, siden de ideelt sett kan nås fra en hvilken som helst av flere nettlesere på forskjellige operativsystemer. Slike applikasjoner bruker vanligvis en klient-server systemarkitektur, og kan variere mye i kompleksitet og funksjonalitet. Denne store variasjonen kompliserer i stor grad målet om kapasitet på tvers av plattformer, som rutinemessig er i strid med målet om avansert funksjonalitet.

Grunnleggende applikasjoner

Grunnleggende webapplikasjoner utfører hele eller mesteparten av behandlingen på en "statsløs" webserver, og sender resultatet til klientens nettleser. All brukerinteraksjon med applikasjonen består av enkle utvekslinger av dataforespørsler og serversvar. Disse typer applikasjoner er normen i de tidlige stadiene av utviklingen av World Wide Web-applikasjoner. Slike applikasjoner følger en enkel transaksjonsmodell, identisk med å betjene statiske nettsider. I dag er de fortsatt relativt vanlige, spesielt når kompatibilitet og enkelhet på tvers av plattformer anses som viktigere enn avanserte funksjoner.

Avanserte applikasjoner

Fremtredende eksempler på avanserte nettapplikasjoner inkluderer nettgrensesnittet til Gmail, A9.com og nettstedet maps.live.com, en del av Microsofts Live Search-tjeneste. Slike avanserte applikasjoner er vanligvis avhengige av tilleggsfunksjoner som bare finnes i de nyeste versjonene av de mest populære nettleserne. Disse avhengighetene inkluderer Ajax, JavaScript, "Dynamisk" HTML, SVG og andre komponenter i rike Internett-applikasjoner. Eldre versjoner av populære nettlesere har en tendens til å mangle støtte for visse funksjoner.

På tvers av plattformer i videospill

Det kan også gjelde for videospill utgitt på en rekke videospillkonsoller, spesialiserte datamaskiner dedikert til oppgaven med å spille spill. Eksempler på tverrplattformspill inkluderer: Miner 2049er, Tomb Raider: Legend , FIFA (videospillserier), NHL Series og Minecraft .

Hver av dem har blitt utgitt på en rekke spillplattformer, for eksempel Wii , PlayStation 3 , Xbox 360 , personlige datamaskiner (PC) og mobile enheter .

Egenskapene til et bestemt system kan forlenge tiden som trengs for å implementere et videospill på flere plattformer. Dermed kan et videospill startes på noen få plattformer og senere på resten. Vanligvis oppstår denne situasjonen når et nytt spillsystem slippes, fordi spillutviklere må bli kjent med maskinvaren og programvaren knyttet til den nye konsollen.

Noen spill blir kanskje ikke tverrplattformer på grunn av lisensavtaler mellom utviklere og produsenter av videospillkonsoller som begrenser utviklingen av et spill til en bestemt konsoll. For eksempel kan Disney lage et spill med den hensikt å gi det ut på de nyeste Nintendo- og Sony-konsollene. Skulle Disney lisensiere spillet til Sony i utgangspunktet, kan det i retur bli pålagt å gi ut spillet utelukkende på Sonys konsoll for en kort eller ubestemt periode, noe som effektivt forbyr utgivelse på tvers av plattformer i denne perioden.

Spill på tvers av plattformer

Ulike utviklere har implementert metoder for å spille online mens de bruker forskjellige plattformer. Psyonix, Epic Games, Microsoft og Valve har alle teknologi som lar Xbox 360- og PlayStation 3-spillere spille med PC-spillere, og overlater beslutningen om hvilken plattform som skal brukes opp til forbrukerne. Det første spillet som tillot dette nivået av interaktivitet mellom PC- og konsollspilling var Quake 3.

Spill som inkluderer spill på tvers av plattformer inkluderer Fortnite: Battle Royale , Rocket League , Final Fantasy XIV, Street Fighter V , Killer Instinct, Paragon og Fable Fortune, og Minecraft med sin Better Together-oppdatering for Windows 10, VR-utgaver, Pocket Edition og Xbox One.

Designstrategier

På grunn av de motstridende interessene til kompatibilitet på tvers av plattformer og avansert funksjonalitet, har det dukket opp en rekke webapplikasjonsdesignalternativer.

Slike strategier inkluderer:

Korrekt degradering

Grasiøs nedgradering forsøker å gi samme eller lignende funksjonalitet for alle brukere og plattformer, mens funksjonalitet nedgraderes til en "laveste fellesnevner" for mer begrensede klientnettlesere. For eksempel kan en bruker som prøver å bruke en begrenset nettleserfunksjon for å få tilgang til Gmail legge merke til at Gmail bytter til «grunnleggende modus» med redusert funksjonalitet. Noen ser på denne strategien som en mindre form for evne på tvers av plattformer.

Separasjon av oppgaver

Separasjon av funksjonalitet for å forenkle utelatelsen av delsett av funksjonalitet som ikke støttes av klientnettlesere innenfor visse operativsystemer, samtidig som det gir en "komplett" applikasjon for brukeren.

Flere grunnkoder

Flere kodebaseapplikasjoner presenterer forskjellige versjoner av en applikasjon avhengig av den spesifikke klienten som brukes. Denne strategien er uten tvil den mest kompliserte og kostbare måten å oppnå kapasitet på tvers av plattformer, da selv ulike nettleserversjoner av samme klient (innenfor samme operativsystem) kan avvike betydelig fra hverandre. Dette kompliseres ytterligere av plugin- støtte som kanskje eller ikke er til stede for en gitt installasjon av en bestemt nettleser.

Tredjeparts biblioteker

Tredjepartsbiblioteker forsøker å forenkle evnen på tvers av plattformer ved å "gjemme" kompleksiteten til klientforskjeller bak en enhetlig API.

Teststrategier

Et vanskelig aspekt ved å designe webapplikasjoner på tvers av plattformer er behovet for programvaretesting. I tillegg til komplikasjonene nevnt ovenfor, er det den ekstra begrensningen at enkelte nettlesere forbyr installasjon av forskjellige versjoner av samme nettleser på samme operativsystem. Teknikker som full virtualisering brukes noen ganger som en løsning på dette problemet.

Tradisjonelle applikasjoner

Selv om nettapplikasjoner blir stadig mer populære, bruker mange brukere fortsatt tradisjonell applikasjonsprogramvare som ikke er basert på en klient/server-webarkitektur. Skillet mellom "tradisjonelle" og "nett"-applikasjoner er imidlertid ikke alltid entydig, siden applikasjoner har mange forskjellige funksjoner, installasjonsmetoder og arkitekturer, og noen av dem kan overlappe og oppstå på måter som visker ut skillet. Dette forenklede skillet er imidlertid en vanlig og nyttig generalisering.

Binær programvare

Tradisjonelt i moderne databehandling har applikasjonsprogramvare blitt distribuert til sluttbrukere som binære bilder, som er lagret i kjørbare filer, en spesifikk type binær fil. Disse kjørbare filene støtter kun operativsystemet og arkitekturen til datamaskinene de ble bygget på, noe som betyr at å lage en "kjørbar på tvers av plattformer" ville være noe av et stort ork, og det blir vanligvis ikke gjort.

For programvare som distribueres som en binær kjørbar fil, for eksempel programvare skrevet i C eller C++, må programmereren lage programvaren for hvert forskjellige operativsystem og datamaskinarkitektur. For eksempel er Mozilla Firefox, en åpen kildekode-nettleser, tilgjengelig på Microsoft Windows, Mac OS X (både PowerPC og x86 gjennom noe Apple kaller en universell binær), og Linux på flere datamaskinarkitekturer. Alle tre plattformene (i dette tilfellet Windows, Mac OS X og Linux) er uavhengige kjørbare distribusjoner, selv om de kommer fra samme kildekode.

I sammenheng med binær programvare blir programmer på tvers av plattformer skrevet i kildekode og deretter "oversatt" til hvert kjørende system via kompilering på forskjellige plattformer. I tillegg kan programvaren porteres til en ny datamaskinarkitektur eller operativsystem, slik at programmet blir mer tverrplattform enn det allerede er. For eksempel kan et program som Firefox, som allerede kjører på Windows i x86-familien, modifiseres og omprogrammeres til å kjøre på Linux i x86 (og potensielt andre arkitekturer) også.

Som et alternativ til portabilitet lar virtualisering på tvers av plattformer applikasjoner kompilert for én CPU og operativsystem kjøres på et system med én CPU og/eller operativsystem, uten å endre kildekoden eller binærfiler. For eksempel, Apple Rosetta-programvare, som er innebygd i Intel-baserte Apple Macintosh-datamaskiner, kjører applikasjoner kompilert for tidligere generasjons Mac-er som bruker PowerPC-prosessorer. Et annet eksempel er IBM PowerVM Lx86, som lar Linux/x86-applikasjoner kjøre uten endringer på Linux/Powered-operativsystemet.

Skript og tolkede språk

Et skript kan betraktes som kryssplattform hvis tolken er tilgjengelig på flere plattformer og skriptet kun bruker tjenestene som tilbys av språket. Det vil si at et skript skrevet i Python for et system som Unix vil sannsynligvis kjøre med liten eller ingen modifikasjon på Windows-en, siden det også kjører på Windows Python, er det også mer enn én implementering av Python som kjører de samme skriptene. ( f.eks. IronPython for .NET). Det samme gjelder mange av programmeringsspråkene med åpen kildekode som er tilgjengelig, og de er skriptspråk.

I motsetning til kjørbare binære filer, kan skriptet bruke det samme skriptet på alle datamaskiner som har programvaren til å tolke skriptet. Dette er fordi skript vanligvis lagres i ren tekst i en tekstfil. Det kan imidlertid være noen problemer, for eksempel typen nylinjetegn som er mellom linjene. Vanligvis må imidlertid lite eller ingen arbeid gjøres for å få et skript skrevet for ett system til å kjøre på et annet.

Noen veldig populære blant skriptplattformer eller tolkede språk er:

Et Unix-skall som vanligvis kjøres på Linux og andre moderne Unix-systemer, samt på Windows via Cygwin POSIX (kompatibilitetslag).

Et moderne programmeringsspråk hvor fokus er på rask applikasjonsutvikling og enkel skriving, i stedet for et effektivt program under kjøring.

- Et dynamisk programmeringsspråk, egnet for et bredt spekter av applikasjoner, inkludert skrivebords- og webapplikasjoner, nettverk, testadministrasjon og mange flere.

Videospill

Cross-platform er et begrep som også kan brukes på videospill utgitt på en rekke videospillkonsoller, spesialiserte datamaskiner dedikert til oppgaven med spill. Eksempler på tverrplattformspill er:

Hver har blitt utgitt på en rekke spillplattformer, inkludert Wii, PlayStation 3, Xbox 360, personlige datamaskiner (PCer) og mobile enheter.

Egenskapene til et bestemt system kan forlenge tiden som trengs for å implementere et videospill på flere plattformer. Dermed kan et videospill i utgangspunktet bli utgitt på noen plattformer og deretter utgitt på resten av plattformene. Vanligvis oppstår denne situasjonen når et nytt spillsystem utgis fordi videospillutviklere gjør seg kjent med maskinvaren og programvaren knyttet til den nye konsollen.

Noen spill kan ikke være på tvers av plattformer på grunn av lisensavtaler mellom konsollvideospillutviklere og produsenter som begrenser utviklingen av et spill for en bestemt konsoll. Som et eksempel kan Disney lage et spill med intensjon om utgivelse på de nyeste Nintendo- og Sony-spillkonsollene. Skulle Disney lisensiere spillet fra Sony først, kan Disney i stedet bli pålagt å gi ut spillet utelukkende på Sonys konsoll for en kort tid eller på ubestemt tid.

Ulike utviklere har satt på plass midler for å spille online spill mens de bruker forskjellige plattformer. Epic Games, Microsoft og Valve Software eier alle teknologien som gjør det mulig for Xbox 360- og PlayStation 3-spillere å spille med PC-spillere, og overlater beslutningen om hvilken plattform som skal brukes opp til forbrukerne. Det første spillet som tillot dette nivået av interaktivitet mellom PC- og konsollspill var Quake 3.

Spill som tilbyr online spill på tvers av plattformer inkluderer:

Plattformuavhengig programvare

Programvare som er plattformuavhengig, er ikke avhengig av spesialfunksjonene til en enkelt plattform, eller, hvis den gjør det, omhandler spesialfunksjonene som gjør at den tåler flere plattformer.

Programmering på tvers av plattformer

Programmering på tvers av plattformer er praksisen med å aktivt skrive programvare som fungerer på mer enn én plattform.

Programmeringsmetoder på tvers av plattformer

Det er forskjellige måter å nærme seg problemet med å skrive en tverrplattformapplikasjon. En av dem er ganske enkelt å lage flere versjoner av det samme programmet i forskjellige kildekodetrær, det vil si at Windows-versjonen av et program kan ha ett sett med kildefiler og Macintosh-versjonen kan ha en annen, mens en programvare gratis med Unix-systemet kan ha en annen. Selv om dette er en enkel tilnærming til problemet, har det potensial til å bli mye dyrere i utviklingskostnader, utviklingstid eller begge deler, spesielt for bedriftsenheter. Tanken bak dette er å lage mer enn to forskjellige programmer som har evnen til å oppføre seg likt hverandre. Det er også mulig at denne måten å utvikle en tverrplattformapplikasjon vil føre til mer feilsporing og fikse problemer, fordi de to forskjellige kildetrærne vil ha forskjellige utviklere, og derfor forskjellige feil i hver versjon. Jo mindre programmeringsteamet er, jo raskere pleier feilrettingene å være.

En annen tilnærming som brukes er å stole på allerede eksisterende programvare som skjuler forskjellene mellom plattformen, kalt plattformabstraksjonen, på en slik måte at programmet selv ikke er klar over plattformen det kjører på. Du kan si at denne typen programmer er plattformuavhengige. Programmer som kjører på Java Virtual Machine (JVM) er bygget på denne måten.

Noen applikasjoner blander ulike programmeringsmetoder på tvers av plattformer for å lage den endelige applikasjonen. Et eksempel på dette er nettleseren Firefox, som bruker abstraksjon for å bygge noen av komponentene på lavere nivå, separate understrukturer av kode for å implementere plattformspesifikke funksjoner (som det grafiske brukergrensesnittet), og implementering av flere. skriptspråk for å lette portabiliteten. Firefox implementerer XUL, CSS og JavaScript for nettleserutvidelsen, pluss plugins i stil med den klassiske Netscape-nettleseren. Mye av selve nettleseren er også skrevet i XUL, CSS og JavaScript.

Programmeringsverktøy og miljøer på tvers av plattformer

Det er en rekke verktøy som er tilgjengelige for å lette programmeringsprosessen på tvers av plattformer:

Et visuelt programmeringsspråk som innkapsler plattformuavhengig kode med et plattformspesifikt kjøretidsmiljø i applikasjoner for Mac OS X og Windows. En åpen kildekode-versjon av Microsoft .NET.): Et rammeverk på tvers av plattformer for applikasjoner og programmeringsspråk. er et åpen kildekode modell-visning-kontroller designmønster der modellen og kontrolleren er delt på tvers av plattformer, men visningen er plattformspesifikk. er en åpen kildekode-SDK for utvikling av mobilapplikasjoner på C++-familieplattformen. Mozilla-applikasjon: En åpen kildekode-plattform for utvikling av Mac OS X-, Windows- og Linux-applikasjoner Et 3D-grafikkbibliotek på tvers av plattformer.

Utfordringer for utvikling på tvers av plattformer

Det er noen problemer knyttet til utvikling på tvers av plattformer. Noen av disse inkluderer:

Referanser

  1. ^ "Definisjon av Cross-Platform" . Hentet 21. mars 2014 .