Webová aplikace - Web application

Webová aplikace (nebo web app ) je aplikační software , který běží na webovém serveru , na rozdíl od počítačů založených na softwarové programy, které jsou spuštěny místně v operačním systému (OS) zařízení. K webovým aplikacím uživatel přistupuje prostřednictvím webového prohlížeče s aktivním síťovým připojením. Tyto aplikace jsou naprogramovány za použití klient-server modelované konstrukce-uživatel ( „ klient “) je opatřen služby prostřednictvím serveru off-site , který je hostitelem třetí stranou. Mezi příklady běžně používaných webových aplikací patří: webová pošta , online maloobchodní prodej , online bankovnictví a online aukce .

Definice a podobné výrazy

Obecný rozdíl mezi dynamickou webovou stránkou jakéhokoli druhu a „webovou aplikací“ není jasný. Webové stránky, které budou pravděpodobně označovány jako „webové aplikace“, jsou ty, které mají podobnou funkčnost jako softwarová aplikace pro stolní počítače nebo mobilní aplikace . HTML5 zavedl explicitní jazykovou podporu pro vytváření aplikací, které jsou načteny jako webové stránky, ale mohou ukládat data lokálně a nadále fungovat offline.

Jednostránkové aplikace se více podobají aplikacím, protože odmítají typičtější webové paradigma pohybu mezi různými stránkami s různými adresami URL . Důvodem je, že jednotlivé součásti lze vyměnit nebo aktualizovat bez nutnosti aktualizovat celou webovou stránku. Jednostránkové rámce mohou být použity pro rychlý vývoj takové webové aplikace pro mobilní platformu, protože dokáže šetřit šířku pásma, stejně jako zánik načítání externích souborů.

Mobilní webová aplikace

Při vytváření webových aplikací existuje několik způsobů cílení na mobilní zařízení:

  • K vytvoření webové aplikace lze použít responzivní webový design - ať už jde o konvenční web nebo jednostránkovou aplikaci zobrazitelnou na malých obrazovkách, které dobře fungují s dotykovými obrazovkami.
  • Progresivní webové aplikace (PWA) jsou webové aplikace, které se načítají jako běžné webové stránky nebo webové stránky, ale mohou uživatelům nabídnout funkce, jako je práce offline a přístup k hardwaru zařízení, který je tradičně dostupný pouze pro nativní mobilní aplikace.
  • Hybridní aplikace vkládají webové stránky do nativní aplikace, případně používají hybridní framework. To umožňuje vývoj pomocí webových technologií (a případně přímo kopírování kódu z existujících mobilních webových stránek) při zachování určitých výhod nativních aplikací (např. Přímý přístup k hardwaru zařízení, offline provoz, viditelnost obchodu s aplikacemi). Mezi rámce hybridních aplikací patří Apache Cordova , Electron , Flutter , Haxe , React Native a Xamarin .

Dějiny

V dřívějších výpočetních modelech, jako je klient-server, bylo zatížení zpracování aplikace sdíleno mezi kódem na serveru a kódem nainstalovaným na každém klientovi lokálně. Jinými slovy, aplikace měla svůj vlastní předkompilovaný klientský program, který sloužil jako uživatelské rozhraní a musel být samostatně nainstalován na osobní počítač každého uživatele . Upgradování kódu aplikace na straně serveru by obvykle také vyžadovalo upgrade kódu na straně klienta nainstalovaného na každé pracovní stanici uživatele, což by zvýšilo náklady na podporu a snížilo produktivitu . Kromě toho byly klientské i serverové komponenty aplikace obvykle úzce spjaty s konkrétní počítačovou architekturou a operačním systémem a jejich přenos do jiných byl často neúměrně drahý pro všechny aplikace kromě těch největších (V dnešní době jsou také znevýhodněny nativní aplikace pro mobilní zařízení některými nebo všemi výše uvedenými problémy).

Naproti tomu webové aplikace používají webové dokumenty napsané ve standardním formátu, jako jsou HTML a JavaScript , které jsou podporovány řadou webových prohlížečů. Webové aplikace lze považovat za specifickou variantu softwaru klient-server, kde je klientský software stažen do klientského počítače při návštěvě příslušné webové stránky pomocí standardních postupů, jako je HTTP . Aktualizace webového softwaru klienta se mohou provádět při každé návštěvě webové stránky . Během relace webový prohlížeč interpretuje a zobrazuje stránky a funguje jako univerzální klient pro jakoukoli webovou aplikaci.

V počátcích webu byla každá jednotlivá webová stránka doručována klientovi jako statický dokument, ale posloupnost stránek mohla i nadále poskytovat interaktivní zážitek, protože vstup uživatelů byl vrácen prostřednictvím prvků webového formuláře vloženého do označení stránky. Nicméně, každá významná změna na webovou stránku, si vyžádalo zpáteční zpět na server pro celou stránku obnovit.

V roce 1995 Netscape představil skriptovací jazyk na straně klienta s názvem JavaScript, který programátorům umožnil přidat do uživatelského rozhraní spuštěného na straně klienta některé dynamické prvky . Místo odesílání dat na server za účelem generování celé webové stránky mohou vložené skripty stažené stránky provádět různé úkoly, jako je ověření vstupu nebo zobrazení/skrytí částí stránky.

V roce 1996 společnost Macromedia představila Flash , přehrávač vektorových animací , který by mohl být přidán do prohlížečů jako plug-in pro vkládání animací na webové stránky. Umožnilo použití skriptovacího jazyka k programování interakcí na straně klienta bez nutnosti komunikace se serverem.

V roce 1999 byl koncept „webové aplikace“ představen v jazyce Java ve verzi 2.2 specifikace servletu. [2,1?]. V té době již byl vyvinut JavaScript i XML , ale Ajax ještě nebyl vytvořen a objekt XMLHttpRequest byl nedávno nedávno představen v aplikaci Internet Explorer 5 jako objekt ActiveX .

V roce 2005 byl vytvořen termín Ajax a aplikace jako Gmail začaly dělat své klientské stránky stále interaktivnější. Skript webové stránky je schopen kontaktovat server pro ukládání/načítání dat bez stahování celé webové stránky.

V roce 2007 Steve Jobs oznámil, že standardním formátem pro aplikace pro iPhone budou webové aplikace vyvinuté v HTML5 pomocí architektury AJAX . Nebyla vyžadována žádná sada pro vývoj softwaru (SDK) a aplikace by byly plně integrovány do zařízení prostřednictvím prohlížeče Safari . Tento model byl později přepnut pro App Store , jako prostředek prevence útěk z vězení a uklidnění frustrovaných vývojářů.

V roce 2014 byl dokončen HTML5 , který poskytuje grafické a multimediální možnosti bez nutnosti doplňků na straně klienta. HTML5 také obohatil sémantický obsah dokumentů. Rozhraní API a objektový model dokumentu (DOM) již nejsou dodatečnými myšlenkami, ale jsou základními součástmi specifikace HTML5. WebGL API vydláždilo cestu pokročilé 3D grafice založené na plátně HTML5 a jazyce JavaScript. Ty mají značný význam při vytváření skutečně bohatých webových aplikací nezávislých na platformě a prohlížeči .

V roce 2016 Eric Bidelman (Senior Staff Developers Programs Engineer) představil během výroční konference Google IO nový progresivní webový vývoj Progressive Web Apps (PWA). Jeff Burtoft, hlavní programový manažer společnosti Microsoft , řekl: „Google vedl v oblasti progresivních webových aplikací a po dlouhém procesu jsme se rozhodli, že ji musíme plně podporovat.“ Microsoft a Google jako takové podporovaly standard PWA.

Rozhraní

Prostřednictvím technologií Java , JavaScript , CSS , Flash , Silverlight a dalších jsou možné všechny metody specifické pro aplikaci, jako je kreslení na obrazovku, přehrávání zvuku a přístup ke klávesnici a myši. Mnoho služeb pracovalo na tom, aby je všechny spojily do známějšího rozhraní, které přejímá vzhled operačního systému. Tyto technologie také podporují obecné způsoby použití, jako je přetahování . Weboví vývojáři často používají skriptování na straně klienta k přidání funkcí, zejména k vytvoření interaktivního prostředí, které nevyžaduje načítání stránky. Nedávno byly vyvinuty technologie pro koordinaci skriptování na straně klienta s technologiemi na straně serveru, jako jsou ASP.NET , J2EE , Perl/Plack a PHP .

Ajax , technika webového vývoje využívající kombinaci různých technologií, je příkladem technologie, která vytváří interaktivnější zážitek.

Struktura

Aplikace jsou obvykle rozděleny do logických bloků nazývaných „úrovně“, kde každé vrstvě je přiřazena role. Tradiční aplikace se skládají pouze z 1 úrovně, která je umístěna na klientském počítači, ale webové aplikace se od přírody hodí k n-stupňovému přístupu. Ačkoli je možné mnoho variací, nejběžnější strukturou je třístupňová aplikace. Ve své nejběžnější podobě se tyto tři úrovně nazývají prezentace , aplikace a úložiště , v tomto pořadí. Webový prohlížeč je první vrstva (prezentace), motor využívající nějakou dynamickou technologii webového obsahu (jako ASP , CGI , ColdFusion , Dart , JSP/Java , Node.js , PHP , Python nebo Ruby on Rails ) je střední vrstva (aplikační logika) a databáze je třetí vrstva (úložiště). Webový prohlížeč odesílá požadavky do střední vrstvy, která je obsluhuje zadáváním dotazů a aktualizací proti databázi a generuje uživatelské rozhraní.

U složitějších aplikací může být třístupňové řešení nedostačující a může být výhodné použít přístup na více úrovních, kde je největší výhodou prolomení obchodní logiky, která se nachází na aplikační úrovni, do jemnějšího zrnitosti. Modelka. Další výhodou může být přidání integrační vrstvy, která odděluje datovou vrstvu od ostatních úrovní poskytováním snadno použitelného rozhraní pro přístup k datům. Ke klientským datům by se například přistupovalo voláním funkce „list_clients ()“ místo vytváření dotazu SQL přímo proti klientské tabulce v databázi. To umožňuje výměnu podkladové databáze bez provedení změn v ostatních úrovních.

Někteří lidé považují webovou aplikaci za dvoustupňovou architekturu. Může to být „chytrý“ klient, který provádí veškerou práci a dotazuje se na „hloupý“ server, nebo „hloupý“ klient, který se spoléhá na „chytrý“ server. Klient by zpracoval prezentační vrstvu, server by měl databázi (úložná vrstva) a obchodní logika (aplikační vrstva) by byla na jednom z nich nebo na obou. I když to zvyšuje škálovatelnost aplikací a odděluje zobrazení a databázi, stále to neumožňuje skutečnou specializaci vrstev, takže většina aplikací tento model přeroste.

Obchodní využití

Nově vznikající strategií pro společnosti zabývající se aplikačním softwarem je poskytovat webový přístup k softwaru, který byl dříve distribuován jako místní aplikace. V závislosti na typu aplikace může vyžadovat vývoj zcela odlišného rozhraní založeného na prohlížeči nebo pouze přizpůsobení stávající aplikace pro použití různých prezentačních technologií. Tyto programy umožňují uživateli platit měsíční nebo roční poplatek za používání softwarové aplikace, aniž by ji museli instalovat na místní pevný disk. Společnost, která dodržuje tuto strategii, je známá jako poskytovatel aplikačních služeb (ASP) a ASP se v současné době věnuje velká pozornost v softwarovém průmyslu.

Porušení zabezpečení u těchto druhů aplikací je velkým problémem, protože může zahrnovat podnikové informace i soukromá zákaznická data. Ochrana těchto aktiv je důležitou součástí každé webové aplikace a existuje několik klíčových operačních oblastí, které musí být zahrnuty do procesu vývoje. To zahrnuje procesy pro autentizaci, autorizaci, zpracování majetku, vstup a protokolování a auditování. Budování zabezpečení v aplikacích od začátku může být z dlouhodobého hlediska efektivnější a méně rušivé.

Webové aplikace modelu cloud computingu jsou software jako služba (SaaS). Existují podnikové aplikace poskytované jako SaaS pro podniky za fixní poplatek nebo poplatek závislý na využití. Jiné webové aplikace jsou nabízeny bezplatně a často vytvářejí příjem z reklam zobrazovaných ve webovém rozhraní.

Rozvoj

Psaní webových aplikací je často zjednodušeno používáním rámce webových aplikací . Tyto rámce usnadňují rychlý vývoj aplikací tím, že umožňují vývojářskému týmu soustředit se na části jejich aplikace, které jsou jedinečné pro jejich cíle, aniž by museli řešit běžné problémy s vývojem, jako je správa uživatelů. Mnoho používaných rámců je software s otevřeným zdrojovým kódem .

Použití rámců webových aplikací může často snížit počet chyb v programu, a to jednak zjednodušením kódu, jednak tím, že se jeden tým může soustředit na rámec, zatímco jiný se zaměřuje na konkrétní případ použití. V aplikacích, které jsou vystaveny neustálým pokusům o hackování na internetu, mohou být problémy související se zabezpečením způsobeny chybami v programu. Rámce mohou také podporovat používání osvědčených postupů, jako je GET after POST .

Kromě toho existuje potenciál pro vývoj aplikací na internetových operačních systémech , i když v současné době neexistuje mnoho životaschopných platforem, které by tomuto modelu vyhovovaly.

Aplikace

Příklady aplikací prohlížeče jsou jednoduchý kancelářský software ( textové procesory , online tabulky a prezentační nástroje ), ale mohou zahrnovat i pokročilejší aplikace, jako je správa projektů, počítačem podporovaný design , úpravy videa a místo prodeje .

Viz také

Reference

externí odkazy