Aplikacja internetowa - Web application

Horde groupware to aplikacja internetowa typu open source .

Aplikacja internetowa (lub aplikacja internetowa ) to oprogramowanie działające na serwerze internetowym , w przeciwieństwie do programów komputerowych uruchamianych lokalnie w systemie operacyjnym (OS) urządzenia. Użytkownik uzyskuje dostęp do aplikacji internetowych za pośrednictwem przeglądarki internetowej z aktywnym połączeniem sieciowym. Aplikacje te są programowane przy użyciu struktury modelowanej klient-serwer — użytkownik („ klient ”) otrzymuje usługi za pośrednictwem serwera znajdującego się poza siedzibą firmy, który jest obsługiwany przez inną firmę. Przykładami powszechnie używanych aplikacji internetowych to: web-mail , sprzedaży detalicznej internetowych , bankowości online i aukcji internetowych .

Definicja i podobne terminy

Ogólne rozróżnienie między dynamiczną stroną internetową dowolnego rodzaju a „aplikacją internetową” jest niejasne. Witryny internetowe, które najczęściej określa się mianem „aplikacji internetowych”, to te, które mają podobną funkcjonalność do aplikacji komputerowej lub aplikacji mobilnej . HTML5 wprowadził wyraźną obsługę języka do tworzenia aplikacji, które są ładowane jako strony internetowe, ale mogą przechowywać dane lokalnie i nadal działać w trybie offline.

Aplikacje jednostronicowe są bardziej podobne do aplikacji, ponieważ odrzucają bardziej typowy model internetowy polegający na przechodzeniu między różnymi stronami o różnych adresach URL . Wynika to z tego, że poszczególne komponenty można wymieniać lub aktualizować bez konieczności odświeżania całej strony internetowej. Struktury jednostronicowe mogą zostać wykorzystane do przyspieszenia rozwoju takiej aplikacji internetowej na platformę mobilną, ponieważ jest ona w stanie zaoszczędzić przepustowość, a także wygasić ładowanie zewnętrznych plików.

Mobilna aplikacja internetowa

Istnieje kilka sposobów kierowania na urządzenia mobilne podczas tworzenia aplikacji internetowych:

  • Responsywne projektowanie stron internetowych może być wykorzystane do stworzenia aplikacji internetowej — zarówno konwencjonalnej, jak i jednostronicowej aplikacji wyświetlanej na małych ekranach, które dobrze współpracują z ekranami dotykowymi.
  • Progresywne aplikacje internetowe (PWA) to aplikacje internetowe, które ładują się jak zwykłe strony internetowe lub witryny internetowe, ale mogą oferować użytkownikowi takie funkcje, jak praca w trybie offline i dostęp do sprzętu, tradycyjnie dostępny tylko dla natywnych aplikacji mobilnych.
  • Aplikacje hybrydowe osadzają witrynę internetową w aplikacji natywnej, prawdopodobnie przy użyciu struktury hybrydowej. Pozwala to na programowanie przy użyciu technologii internetowych (i ewentualnie bezpośrednie kopiowanie kodu z istniejącej mobilnej strony internetowej), zachowując jednocześnie pewne zalety aplikacji natywnych (np. bezpośredni dostęp do sprzętu urządzenia, działanie w trybie offline, widoczność w sklepie z aplikacjami). Hybrydowe frameworki aplikacji obejmują Apache Cordova , Electron , Flutter , Haxe , React Native i Xamarin .

Historia

We wcześniejszych modelach obliczeniowych, takich jak klient-serwer, obciążenie przetwarzania aplikacji było dzielone między kod na serwerze i kod zainstalowany lokalnie na każdym kliencie. Innymi słowy, aplikacja miała swój własny, wstępnie skompilowany program kliencki, który służył jako jej interfejs użytkownika i musiał być oddzielnie instalowany na komputerze osobistym każdego użytkownika . Uaktualnienie do kodu aplikacji po stronie serwera zwykle wymagałoby również uaktualnienia kodu po stronie klienta zainstalowanego na każdej stacji roboczej użytkownika, zwiększając koszty pomocy technicznej i zmniejszając wydajność . Ponadto, zarówno komponenty klienckie, jak i serwerowe aplikacji były zwykle ściśle powiązane z konkretną architekturą komputera i systemem operacyjnym, a przenoszenie ich do innych aplikacji było często zbyt drogie dla wszystkich aplikacji poza największymi (obecnie natywne aplikacje dla urządzeń mobilnych są również utrudnione przez niektóre lub wszystkie z powyższych kwestii).

Z kolei aplikacje internetowe używają dokumentów internetowych napisanych w standardowym formacie, takim jak HTML i JavaScript , które są obsługiwane przez różne przeglądarki internetowe. Aplikacje internetowe można uznać za specyficzny wariant oprogramowania klient-serwer, w którym oprogramowanie klienckie jest pobierane na komputer kliencki podczas odwiedzania odpowiedniej strony internetowej przy użyciu standardowych procedur, takich jak HTTP . Aktualizacje oprogramowania klienckiego sieci Web mogą mieć miejsce za każdym razem, gdy odwiedzana jest strona internetowa . Podczas sesji przeglądarka internetowa interpretuje i wyświetla strony oraz działa jako uniwersalny klient dowolnej aplikacji internetowej.

Na początku istnienia sieci Web każda strona internetowa była dostarczana klientowi jako dokument statyczny, ale sekwencja stron nadal zapewniała interaktywne wrażenia, ponieważ dane wejściowe użytkownika były zwracane przez elementy formularza internetowego osadzone w znacznikach strony. Jednak każda istotna zmiana na stronie internetowej wymagała powrotu w obie strony na serwer w celu odświeżenia całej strony.

W 1995 r. firma Netscape wprowadziła język skryptowy po stronie klienta o nazwie JavaScript, który umożliwia programistom dodawanie dynamicznych elementów do interfejsu użytkownika działającego po stronie klienta. Zamiast więc wysyłać dane na serwer w celu wygenerowania całej strony internetowej, wbudowane skrypty pobranej strony mogą wykonywać różne zadania, takie jak sprawdzanie poprawności danych wejściowych lub pokazywanie/ukrywanie części strony.

W 1996 roku firma Macromedia wprowadziła Flash , odtwarzacz animacji wektorowych , który można było dodawać do przeglądarek jako wtyczkę do osadzania animacji na stronach internetowych. Pozwoliło to na wykorzystanie języka skryptowego do programowania interakcji po stronie klienta bez konieczności komunikowania się z serwerem.

W 1999 roku pojęcie "aplikacji internetowej" zostało wprowadzone w języku Java w specyfikacji Servlet w wersji 2.2. [2,1?]. W tym czasie zarówno JavaScript, jak i XML były już opracowane, ale Ajax wciąż nie był jeszcze wymyślony, a obiekt XMLHttpRequest został dopiero niedawno wprowadzony w Internet Explorerze 5 jako obiekt ActiveX .

W 2005 r. ukuto termin Ajax, a aplikacje, takie jak Gmail, zaczęły czynić strony klienckie coraz bardziej interaktywnymi. Skrypt strony internetowej może kontaktować się z serwerem w celu przechowywania/odzyskiwania danych bez pobierania całej strony internetowej.

W 2007 roku Steve Jobs ogłosił, że aplikacje internetowe, opracowane w HTML5 przy użyciu architektury AJAX , będą standardowym formatem aplikacji na iPhone'a . Nie był wymagany żaden zestaw do tworzenia oprogramowania (SDK), a aplikacje byłyby w pełni zintegrowane z urządzeniem za pośrednictwem silnika przeglądarki Safari . Model ten został później zamieniony na App Store , jako sposób zapobiegania jailbreakerom i uspokojenia sfrustrowanych programistów.

W 2014 roku sfinalizowano HTML5 , który zapewnia możliwości graficzne i multimedialne bez konieczności stosowania wtyczek po stronie klienta. HTML5 wzbogacił także semantyczną treść dokumentów. Interfejsy API i model obiektu dokumentu (DOM) nie są już refleksją, ale są podstawowymi częściami specyfikacji HTML5. Interfejs API WebGL utorował drogę do zaawansowanej grafiki 3D opartej na płótnie HTML5 i języku JavaScript. Mają one duże znaczenie w tworzeniu naprawdę niezależnych od platformy i przeglądarki bogatych aplikacji internetowych .

W 2016 roku podczas dorocznej konferencji Google IO Eric Bidelman (Senior Staff Developers Programs Engineer) przedstawił Progressive Web Apps (PWA) jako nowy standard w tworzeniu stron internetowych. Jeff Burtoft, główny menedżer programu w firmie Microsoft , powiedział: „Google jest liderem w dziedzinie progresywnych aplikacji internetowych i po długim procesie zdecydowaliśmy, że musimy go w pełni obsługiwać”. W związku z tym zarówno Microsoft, jak i Google wspierały standard PWA.

Berło

Dzięki Java , JavaScript , CSS , Flash , Silverlight i innym technologiom możliwe są metody specyficzne dla aplikacji, takie jak rysowanie na ekranie, odtwarzanie dźwięku oraz dostęp do klawiatury i myszy. Wiele usług pracowało nad połączeniem tych wszystkich w bardziej znany interfejs, który przyjmuje wygląd systemu operacyjnego. Techniki te są również obsługiwane przez techniki ogólnego przeznaczenia, takie jak przeciąganie i upuszczanie . Twórcy stron internetowych często używają skryptów po stronie klienta w celu dodania funkcjonalności, zwłaszcza w celu stworzenia interaktywnego środowiska, które nie wymaga ponownego ładowania strony. Ostatnio opracowano technologie koordynujące wykonywanie skryptów po stronie klienta z technologiami po stronie serwera, takimi jak ASP.NET , J2EE , Perl/Plack i PHP .

Ajax , technika tworzenia stron internetowych wykorzystująca kombinację różnych technologii, jest przykładem technologii, która zapewnia bardziej interaktywne wrażenia.

Struktura

Aplikacje są zwykle podzielone na logiczne porcje zwane „warstwami”, w których każdej warstwie przypisywana jest rola. Tradycyjne aplikacje składają się tylko z 1 warstwy, która znajduje się na komputerze klienckim, ale aplikacje internetowe z natury nadają się do podejścia n-warstwowego. Chociaż możliwych jest wiele odmian, najczęstszą strukturą jest aplikacja trójwarstwowa . W swojej najczęstszej formie trzy poziomy są nazywane prezentacją , aplikacją i przechowywaniem , w tej kolejności. Przeglądarka internetowa to pierwsza warstwa (prezentacja), silnik korzystający z technologii dynamicznej zawartości sieci Web (takiej jak ASP , CGI , ColdFusion , Dart , JSP/Java , Node.js , PHP , Python lub Ruby on Rails ) to środkowa warstwa (logika aplikacji), a trzecią warstwą jest baza danych (pamięć). Przeglądarka internetowa wysyła żądania do warstwy środkowej, która obsługuje je, wykonując zapytania i aktualizacje w bazie danych oraz generuje interfejs użytkownika.

W przypadku bardziej złożonych aplikacji rozwiązanie 3-warstwowe może się nie sprawdzić i może być korzystne zastosowanie podejścia wielowarstwowego, w którym największą korzyścią jest przełamanie logiki biznesowej, która znajduje się w warstwie aplikacji, na bardziej szczegółową Model. Inną korzyścią może być dodanie warstwy integracji, która oddziela warstwę danych od pozostałych warstw, zapewniając łatwy w użyciu interfejs umożliwiający dostęp do danych. Na przykład dostęp do danych klienta można uzyskać przez wywołanie funkcji „list_clients()” zamiast wykonywania zapytania SQL bezpośrednio w tabeli klientów w bazie danych. Pozwala to na zastąpienie bazowej bazy danych bez wprowadzania zmian w innych warstwach.

Są tacy, którzy postrzegają aplikację internetową jako architekturę dwuwarstwową. Może to być „inteligentny” klient, który wykonuje całą pracę i wysyła zapytania do „głupiego” serwera lub „głupiego” klienta, który polega na „inteligentnym” serwerze. Klient obsługiwałby warstwę prezentacji, serwer miałby bazę danych (warstwę pamięci), a logika biznesowa (warstwa aplikacji) byłaby w jednym z nich lub w obu. Chociaż zwiększa to skalowalność aplikacji i oddziela wyświetlacz od bazy danych, nadal nie pozwala na prawdziwą specjalizację warstw, więc większość aplikacji przerośnie ten model.

Zastosowanie biznesowe

Nowa strategia dla firm zajmujących się oprogramowaniem aplikacyjnym polega na zapewnieniu dostępu internetowego do oprogramowania wcześniej dystrybuowanego jako aplikacje lokalne. W zależności od typu aplikacji może to wymagać opracowania zupełnie innego interfejsu opartego na przeglądarce lub po prostu dostosowania istniejącej aplikacji do korzystania z innej technologii prezentacji. Programy te pozwalają użytkownikowi płacić miesięczną lub roczną opłatę za korzystanie z aplikacji bez konieczności instalowania jej na lokalnym dysku twardym. Firma, która postępuje zgodnie z tą strategią, znana jest jako dostawca usług aplikacyjnych (ASP), a ASP cieszą się obecnie dużym zainteresowaniem w branży oprogramowania.

Naruszenie bezpieczeństwa w tego typu aplikacjach jest poważnym problemem, ponieważ może dotyczyć zarówno informacji przedsiębiorstwa, jak i prywatnych danych klientów. Ochrona tych zasobów jest ważną częścią każdej aplikacji internetowej i istnieje kilka kluczowych obszarów operacyjnych, które należy uwzględnić w procesie rozwoju. Obejmuje to procesy uwierzytelniania, autoryzacji, obsługi zasobów, wprowadzania danych oraz rejestrowania i audytu. Wbudowanie zabezpieczeń w aplikacje od samego początku może być bardziej efektywne i mniej uciążliwe na dłuższą metę.

Aplikacje internetowe w modelu cloud computing to oprogramowanie jako usługa (SaaS). Istnieją aplikacje biznesowe dostarczane jako SaaS dla przedsiębiorstw za stałą lub zależną od użytkowania opłatą. Inne aplikacje internetowe oferowane są bezpłatnie, często generując dochód z reklam wyświetlanych w interfejsie aplikacji internetowej.

Rozwój

Pisanie aplikacji internetowych jest często uproszczone dzięki wykorzystaniu frameworka aplikacji internetowych . Struktury te ułatwiają szybkie tworzenie aplikacji , umożliwiając zespołowi programistycznemu skupienie się na częściach aplikacji, które są unikalne dla ich celów, bez konieczności rozwiązywania typowych problemów programistycznych, takich jak zarządzanie użytkownikami. Wiele z używanych frameworków to oprogramowanie typu open source .

Korzystanie z frameworków aplikacji internetowych może często zmniejszyć liczbę błędów w programie, zarówno poprzez uproszczenie kodu, jak i poprzez umożliwienie jednemu zespołowi skoncentrowania się na frameworku, podczas gdy inny skupia się na określonym przypadku użycia. W aplikacjach, które są narażone na ciągłe próby włamań w Internecie, problemy związane z bezpieczeństwem mogą być spowodowane błędami w programie. Frameworki mogą również promować korzystanie z najlepszych praktyk, takich jak GET after POST .

Ponadto istnieje potencjał do rozwoju aplikacji na internetowe systemy operacyjne , chociaż obecnie nie ma wielu opłacalnych platform, które pasują do tego modelu.

Aplikacje

Przykładami aplikacji przeglądarkowych są proste programy biurowe ( edytory tekstu , arkusze kalkulacyjne online i narzędzia do prezentacji ), ale mogą również obejmować bardziej zaawansowane aplikacje, takie jak zarządzanie projektami , projektowanie wspomagane komputerowo , edycja wideo i punkty sprzedaży .

Zobacz też

Bibliografia

Zewnętrzne linki