Webapplikasjon - Web application

Horde groupware er en åpen kildekode- webapplikasjon.

En webapplikasjon (eller webapp ) er applikasjonsprogramvare som kjører på en webserver , i motsetning til datamaskinbaserte programmer som kjøres lokalt på enhetens operativsystem (OS). Brukeren får tilgang til webapplikasjoner via en nettleser med en aktiv nettverkstilkobling. Disse programmene er programmert ved hjelp av en klient-server- modellert struktur-brukeren (" klienten ") tilbys tjenester gjennom en server utenfor nettstedet som er vert for en tredjepart. Eksempler på de mest brukte web-applikasjoner er: web-post , elektroniske salgs , nettbank og nettauksjoner .

Definisjon og lignende begreper

Det generelle skillet mellom en dynamisk webside av noe slag og en "webapp" er uklart. Nettsteder som mest sannsynlig blir referert til som "webapplikasjoner", er de som har lignende funksjonalitet som en stasjonær programvare eller en mobilapp . HTML5 introduserte eksplisitt språkstøtte for å lage applikasjoner som er lastet inn som websider, men kan lagre data lokalt og fortsette å fungere uten nett.

Enkelsidige applikasjoner er mer applikasjonslignende fordi de avviser det mer typiske webparadigmet for å flytte mellom forskjellige sider med forskjellige nettadresser . Dette skyldes at individuelle komponenter kan byttes ut eller oppdateres uten å måtte oppdatere hele nettsiden. Enkelsidede rammer kan brukes til hastighetsutvikling av en slik webapp for en mobil plattform, ettersom den kan spare båndbredde, samt utryddelse av lasting av eksterne filer.

Mobil webapplikasjon

Det er flere måter å målrette mot mobile enheter når du lager webapplikasjoner:

  • Responsivt webdesign kan brukes til å lage en webapplikasjon - enten det er et konvensjonelt nettsted eller en enkeltsidig applikasjon, som kan sees på små skjermer som fungerer godt med berøringsskjerm.
  • Progressive webapplikasjoner (PWAer) er webapplikasjoner som lastes inn som vanlige nettsider eller nettsteder, men som kan tilby brukerfunksjonalitet, for eksempel å arbeide frakoblet og maskinvaretilgang på enheten, som tradisjonelt bare er tilgjengelig for native mobile applikasjoner.
  • Hybride apper bygger inn et nettsted i en opprinnelig app, muligens ved hjelp av et hybridrammeverk. Dette tillater utvikling ved bruk av webteknologier (og muligens direkte kopiering av kode fra et eksisterende mobilnettsted), samtidig som visse fordeler med opprinnelige apper beholdes (f.eks. Direkte tilgang til enhetsmaskinvare, frakoblet bruk, synlig appbutikk). Hybride apprammer inkluderer Apache Cordova , Electron , Flutter , Haxe , React Native og Xamarin .

Historie

I tidligere databehandlingsmodeller som klient-server ble behandlingsbelastningen for applikasjonen delt mellom kode på serveren og kode installert på hver klient lokalt. Med andre ord, en applikasjon hadde sitt eget forhåndskompilerte klientprogram som fungerte som brukergrensesnitt og måtte installeres separat på hver brukers personlige datamaskin . En oppgradering til koden på serversiden til applikasjonen vil vanligvis også kreve en oppgradering av koden på klientsiden som er installert på hver brukerarbeidsstasjon, noe som øker støttekostnadene og reduserer produktiviteten . I tillegg var både klient- og serverkomponentene i applikasjonen vanligvis tett knyttet til en bestemt datamaskinarkitektur og operativsystem, og porting til andre var ofte uoverkommelig dyrt for alle unntatt de største programmene (I dag er også native apps for mobile enheter hobbled ved noen eller alle de foregående problemene).

I kontrast bruker webapplikasjoner webdokumenter skrevet i et standardformat som HTML og JavaScript , som støttes av en rekke nettlesere. Nettapplikasjoner kan betraktes som en spesifikk variant av klient-server-programvare der klientprogramvaren lastes ned til klientmaskinen når du besøker den aktuelle websiden, ved bruk av standardprosedyrer som HTTP . Oppdateringer av klientwebprogramvare kan skje hver gang websiden besøkes. Under økten tolker og viser nettleseren sidene, og fungerer som den universelle klienten for alle webapplikasjoner.

I de tidlige dagene av Internett , ble hver enkelt nettside levert til kunden som et statisk dokument, men rekkefølgen av sidene kan likevel gi en interaktiv opplevelse, som brukerundersøkelser ble returnert via web skjemaelementer innebygd i siden markup. Men hver vesentlige endringer på nettsiden kreves en rundtur tilbake til serveren for å oppdatere hele siden.

I 1995 introduserte Netscape et skriptspråk på klientsiden kalt JavaScript, slik at programmerere kan legge til noen dynamiske elementer i brukergrensesnittet som kjørte på klientsiden. Så i stedet for å sende data til serveren for å generere en hel webside, kan de innebygde skriptene på den nedlastede siden utføre forskjellige oppgaver, for eksempel inputvalidering eller vise/skjule deler av siden.

I 1996 introduserte Macromedia Flash , en vektoranimasjonsspiller som kan legges til i nettlesere som en plug-in for å legge inn animasjoner på nettsidene. Det tillot bruk av et skriptspråk for å programmere interaksjoner på klientsiden uten behov for å kommunisere med serveren.

I 1999 ble "webapplikasjon" -konseptet introdusert på Java -språket i Servlet Specification versjon 2.2. [2.1?]. På det tidspunktet hadde både JavaScript og XML allerede blitt utviklet, men Ajax var ennå ikke laget og XMLHttpRequest -objektet hadde nylig blitt introdusert på Internet Explorer 5 som et ActiveX -objekt.

I 2005 ble begrepet Ajax laget, og applikasjoner som Gmail begynte å gjøre deres klientsider mer og mer interaktive. Et websideskript kan kontakte serveren for lagring/henting av data uten å laste ned en hel webside.

I 2007 kunngjorde Steve Jobs at webapper, utviklet i HTML5 ved bruk av AJAX -arkitektur, ville være standardformatet for iPhone -apper. Ingen programvareutviklingssett (SDK) var nødvendig, og appene ville være fullt integrert i enheten via Safari -nettlesermotoren. Denne modellen ble senere byttet til App Store , som et middel for å forhindre jailbreakers og for å blidgjøre frustrerte utviklere.

I 2014 ble HTML5 ferdigstilt, som gir grafiske og multimediefunksjoner uten behov for plug-ins på klientsiden. HTML5 beriket også det semantiske innholdet i dokumenter. API -ene og dokumentobjektmodellen (DOM) er ikke lenger ettertanke, men er grunnleggende deler av HTML5 -spesifikasjonen. WebGL API banet vei for avansert 3D -grafikk basert på HTML5 -lerret og JavaScript -språk. Disse har stor betydning for å skape virkelig plattform- og nettleseruavhengige rike webapplikasjoner .

I 2016, under den årlige Google IO -konferansen, introduserte Eric Bidelman (Senior Staff Developers Programs Engineer) Progressive Web Apps (PWAs) som en ny standard innen webutvikling. Jeff Burtoft, hovedprogramleder i Microsoft , sa "Google ledet an med Progressive Web Apps, og etter en lang prosess bestemte vi at vi måtte støtte det fullt ut." Som sådan støttet Microsoft og Google begge PWA -standarden.

Grensesnitt

Gjennom Java , JavaScript , CSS , Flash , Silverlight og andre teknologier er applikasjonsspesifikke metoder som tegning på skjermen, avspilling av lyd og tilgang til tastatur og mus. Mange tjenester har jobbet for å kombinere alle disse til et mer kjent grensesnitt som tar utseendet til et operativsystem. Generelle teknikker som dra og slipp støttes også av disse teknologiene. Webutviklere bruker ofte skripting på klientsiden for å legge til funksjonalitet, spesielt for å lage en interaktiv opplevelse som ikke krever sideinnlasting. Nylig har teknologier blitt utviklet for å koordinere skripting på klientsiden med teknologier på serversiden som ASP.NET , J2EE , Perl/Plack og PHP .

Ajax , en webutviklingsteknikk som bruker en kombinasjon av forskjellige teknologier, er et eksempel på teknologi som skaper en mer interaktiv opplevelse.

Struktur

Søknader er vanligvis delt inn i logiske biter som kalles "tier", der hver tier får en rolle. Tradisjonelle applikasjoner består bare av ett nivå, som ligger på klientmaskinen, men webapplikasjoner egner seg til en n-tiered tilnærming av natur. Selv om mange varianter er mulige, er den vanligste strukturen den trelags applikasjonen. I sin vanligste form kalles de tre nivåene presentasjon , applikasjon og lagring , i denne rekkefølgen. En nettleser er det første nivået (presentasjon), en motor som bruker dynamisk webinnholdsteknologi (for eksempel ASP , CGI , ColdFusion , Dart , JSP/Java , Node.js , PHP , Python eller Ruby on Rails ) er mellomlaget (applikasjonslogikk), og en database er det tredje nivået (lagring). Nettleseren sender forespørsler til midtre nivå, som betjener dem ved å gjøre forespørsler og oppdateringer mot databasen og genererer et brukergrensesnitt.

For mer komplekse applikasjoner kan en 3-lags løsning komme til kort, og det kan være fordelaktig å bruke en n-tiered tilnærming, der den største fordelen er å bryte forretningslogikken, som ligger på applikasjonsnivået, til en mer finkornet modell. En annen fordel kan være å legge til et integrasjonsnivå som skiller datanivået fra resten av nivåene ved å tilby et brukervennlig grensesnitt for å få tilgang til dataene. For eksempel vil klientdata få tilgang til ved å kalle en "list_clients ()" -funksjon i stedet for å lage en SQL -spørring direkte mot klientbordet i databasen. Dette gjør at den underliggende databasen kan erstattes uten å gjøre noen endringer i de andre nivåene.

Det er noen som ser på en webapplikasjon som en to-lags arkitektur. Dette kan være en "smart" klient som utfører alt arbeidet og spør etter en "dum" server, eller en "dum" klient som er avhengig av en "smart" server. Klienten ville håndtere presentasjonsnivået, serveren ville ha databasen (lagringsnivå), og forretningslogikken (applikasjonsnivået) ville være på en av dem eller på begge. Selv om dette øker skalerbarheten til applikasjonene og skiller displayet og databasen, tillater det fortsatt ikke ekte spesialisering av lag, så de fleste applikasjoner vokser ut av denne modellen.

Forretningsbruk

En ny strategi for programvareselskaper er å tilby nettilgang til programvare som tidligere er distribuert som lokale applikasjoner. Avhengig av applikasjonstype kan det kreve utvikling av et helt annet nettleserbasert grensesnitt, eller bare tilpasse en eksisterende applikasjon for å bruke annen presentasjonsteknologi. Disse programmene lar brukeren betale en månedlig eller årlig avgift for bruk av et program uten å måtte installere det på en lokal harddisk. Et selskap som følger denne strategien er kjent som en applikasjonstjenesteleverandør (ASP), og ASPer får for tiden stor oppmerksomhet i programvareindustrien.

Sikkerhetsbrudd på slike applikasjoner er et stort problem fordi det kan involvere både virksomhetsinformasjon og private kundedata. Beskyttelse av disse eiendelene er en viktig del av enhver webapplikasjon, og det er noen viktige operasjonelle områder som må inkluderes i utviklingsprosessen. Dette inkluderer prosesser for autentisering, autorisasjon, håndtering av eiendeler, input og logging og revisjon. Å bygge sikkerhet inn i programmene fra begynnelsen kan være mer effektivt og mindre forstyrrende i det lange løp.

Cloud computing -modellprogrammer er programvare som en tjeneste (SaaS). Det finnes forretningsprogrammer som SaaS for bedrifter mot en fast eller bruksavhengig avgift. Andre webapplikasjoner tilbys gratis, og genererer ofte inntekter fra annonser som vises i webapplikasjonsgrensesnittet.

Utvikling

Å skrive webapplikasjoner blir ofte forenklet ved bruk av rammeverk for webapplikasjoner . Disse rammene letter rask applikasjonsutvikling ved å la et utviklingsteam fokusere på de delene av applikasjonen som er unike for deres mål uten å måtte løse vanlige utviklingsproblemer som brukeradministrasjon. Mange av rammene som er i bruk er programvare med åpen kildekode .

Bruken av webapplikasjonsrammer kan ofte redusere antall feil i et program, både ved å gjøre koden enklere, og ved å la ett team konsentrere seg om rammeverket mens et annet fokuserer på en spesifisert brukstilfelle. I applikasjoner som utsettes for konstant hackingforsøk på Internett, kan sikkerhetsrelaterte problemer skyldes feil i programmet. Rammeverk kan også fremme bruk av beste praksis som GET after POST .

I tillegg er det potensial for utvikling av applikasjoner på Internett -operativsystemer , selv om det foreløpig ikke er mange levedyktige plattformer som passer denne modellen.

applikasjoner

Eksempler på nettleserprogrammer er enkel kontorprogramvare ( tekstbehandlere , elektroniske regneark og presentasjonsverktøy ), men kan også inneholde mer avanserte applikasjoner som prosjektstyring, datamaskinstøttet design , videoredigering og salgssted .

Se også

Referanser

Eksterne linker