Reklama
Wizyt
Dzisiaj: 327Wszystkich: 652797

Aplikacje internetowe

Technikum » PAI » Aplikacje internetowe

 

Aplikacja internetowa to program, który pracuje na serwerze i komunikuje się z użytkownikiem poprzez sieć komputerową z wykorzystaniem przeglądarki internetowej. Przeglądarka internetowa w takim przypadku pełni funkcję interfejsu użytkownika.

W aplikacji internetowej zakłada się interakcję z użytkownikiem, korzystanie z baz danych i innych usług, często rozproszonych, umieszczonych na wielu różnych serwerach.

Istotnymi cechami aplikacji internetowej są łatwość i szybkość dotarcia do informacji (dowolny komputer podłączony do internetu lub sieci LAN i przeglądarka stron internetowych) oraz bezpieczeństwo danych (login i hasło, szyfrowanie połączenia oraz system uprawnień).


Zalety aplikacji internetowych:

  • dostępność dla wszystkich zainteresowanych bez ograniczeń związanych z czasem i miejscem,
  • praktycznie brak konieczności instalowania dodatkowego oprogramowania - aby korzystać z aplikacji internetowej wystarczy przeglądarka internetowa (czasem tylko z dodatkowymi pluginami),
  • brak konieczności zakupu dodatkowego sprzętu komputerowego - aplikacja internetowa może zostać zainstalowana na serwerze dostępnym w internecie,
  • łatwość utrzymania i modernizacji, ponieważ zmiany i aktualizacje w aplikacji są wykonywane na serwerze bez udziału użytkowników aplikacji,
  • łatwość integracji aplikacji internetowej z innymi usługami, np. stroną internetową,
  • niższe koszty wytworzenia, uruchomienia i utrzymania aplikacji internetowej w porównaniu z innymi rozwiązaniami - większość technologii stosowanych do wytworzenia aplikacji internetowych jest bezpłatna.

 

 

Narzędzia aplikacji internetowych


Do prawidłowej pracy aplikacji internetowej potrzebne jest:

  • oprogramowanie zwane serwerem WWW (na przykład Apache, IIS)
  • oprogramowanie wspomagające (serwer bazodanowy — na przykład MySQL, MS SQL)
  • środowisko do tworzenia programów (na przykład PHP, Java, C#)

 

Z serwerem WWW komunikuje się przeglądarka internetowa, a serwer bazodanowy i interpreter umożliwiają udostępnianie dynamicznie tworzonych stron internetowych oraz zarządzanie bazami danych.


Narzędzia stosowane podczas pracy z aplikacją internetową można podzielić na dwie grupy:

  • Narzędzia po stronie klienta — pozwalają klientowi wykonywać część zadań związanych z obsługą aplikacji. Należą do nich JavaScript, aplety Java, AJAX i inne.
  • Narzędzia po stronie serwera — pozwalają wykonywać na serwerze zadania służące do obsługi żądań klienta. Są to technologie typu: ASP.NET (Active Server Pages), JavaServer Pages (JSP) i języki PHP, Perl, Coldfusion, Ruby on Rails i wiele innych.

 

Technologie po stronie klienta

 

  •  JavaScript

Technologie działające po stronie klienta są związane z rodzajem oprogramowania klienckiego, czyli przeglądarki internetowej i zainstalowanych wtyczek. Najczęściej wspomagają one technologie działające po stronie serwera.

Podstawową technologią stosowaną po stronie klienta jest JavaScript. Jest to język skryptowy, którego kod można wstawić w kod strony HTML w celu uzyskania dynamiki strony.

JavaScript jest obecnie wspierany przez wszystkie przeglądarki i nie wymaga instalowania dodatkowego oprogramowania.

  •  Aplety Java

Inną technologią, która może być stosowana po stronie klienta, są aplety Java. Aplety te pisane są w języku Java, a do ich wykonania potrzebne jest zainstalowanie w przeglądarce wtyczki Java Virtual Machine. Aplety Java są coraz rzadziej stosowane ze względu na zajmowanie zbyt wielu zasobów komputera i rozwój innych technologii.

  • Flash

Technologia Flash to kolejne narzędzie, które może być stosowane po stronie klienta. Dostarcza ono narzędzi do tworzenia animacji i efektów graficznych. Technologia Flash wymaga instalowania w przeglądarce specjalnej wtyczki Adobe Flash Player. 

  • AJAX

AJAX (ang. Asynchronous JavaScript and XML) to technologia uzupełniająca język JavaScript. Oferuje ona te same działania po stronie klienta co JavaScript. Ale w technologii AJAX komunikacja z serwerem jest realizowana w tle, podczas gdy użytkownik pracuje na stronie WWW.

 

Technologie po stronie serwera

 

Technologie działające po stronie serwera powodują, że klient otrzymuje gotową stronę internetową wygenerowaną z uwzględnieniem kryteriów określonych przez użytkownika.

  • CGI

Pierwszą technologią, która zyskała popularność i jest stosowana nadal w niektórych aplikacjach, była technologia CGI (ang. Common Gateway Interface). Umożliwiała ona między innymi dynamiczne generowanie dokumentów przed wysłaniem ich do przeglądarki, tworzenie dokumentów w oparciu o dane znajdujące się w bazie, generowanie i przetwarzanie formularzy. Skrypty CGI mogą być programami kompilowanymi do postaci binarnej lub programami interpretowanymi, pisanymi np. w Perlu lub w języku skryptowym powłoki.

  • ISAPI

Filtry ISAPI (ang. Internet Server API), których działanie jest sterowane zdarzeniami serwera, a nie żądaniami klienta. Zaletą tej technologii jest szybkość działania oraz większa wydajność w porównaniu z technologią CGI. Jej wadą jest działanie tylko w systemach Windows.

 

Obecnie popularne stały się technologie, które generują strony WWW poprzez interpretowanie kodu osadzonego wewnątrz strony.

  • ASP.NET

Jest to bardzo wydajna i nowoczesna technologia opracowana przez firmę Microsoft. Przeznaczona została do tworzenia różnych aplikacji internetowych w formatach HTML, WML oraz XML. Tworzone dokumenty zawierają statyczną treść, ale w ramach kodu statycznego istnieje możliwość dodania kodu dynamicznego.

  • JSP

JavaServer Pages — wraz z innymi elementami wchodzącymi w skład platformy Java Platform firmy Sun umożliwia tworzenie dynamicznych dokumentów WWW w formatach HTML, XHTML, DHTML oraz XML z wykorzystaniem języka Java. Jest to rozwiązanie podobne do technologii PHP.

  • PHP

Wraz z serwerem WWW Apache oraz serwerem baz danych MySQL tworzy wydajną i niezależną od systemu platformę do budowania dynamicznych stron WWW. Platforma ta określana jest jako platforma AMP. W systemach Linux znana jest pod nazwą LAMP, a w systemie Windows pod nazwą WAMP. Istnieje również wieloplatformowa wersja, nazywana XAMPP. PHP jest systemem otwartym, dzięki czemu powstają coraz nowsze moduły rozszerzające jego możliwości. PHP jest nie tylko technologią funkcjonującą po stronie serwera. Jest to również język skryptowy, wykorzystywany przy pracy nad aplikacjami uruchamianymi niezależnie od serwera WWW.

 

Struktura aplikacji internetowej


Podstawowa architektura aplikacji internetowej zakłada, że na komputerze użytkownika funkcjonuje wyłącznie oprogramowanie obsługi interfejsu użytkownika, natomiast oprogramowanie właściwej aplikacji oraz oprogramowanie dostępu do danych znajdują się na oddzielnych, dedykowanych komputerach. Takie rozwiązanie pozwała na współbieżny dostęp do danych i aplikacji oraz obniża wymagania dla komputera użytkownika.

 

 

Rozszerzona architektura aplikacji internetowej zakłada, że w jej skład wchodzą trzy programowe warstwy funkcjonalne:

  • Warstwa klienta — odpowiedzialna za interfejs użytkownika i interakcję z użytkownikiem, oparta na kliencie HTTP.
  • Warstwa aplikacji — która w odpowiedzi na żądania klientów tworzy dokumenty dynamiczne. Warstwa ta składa się z serwera HTTP i serwera aplikacji będącego środowiskiem uruchomieniowym dla aplikacji generujących dokumenty dynamiczne.
  • Warstwa danych — która odpowiada za udostępnianie informacji umieszczanych w dokumentach dynamicznych. Warstwa ta składa się z serwera bazy danych, który odpowiada na żądania w języku SQL




Istotnym elementem tej architektury jest serwer aplikacji. Odpowiada on za obsługę komunikacji z warstwą klienta i warstwą danych. Programista, który tworzy aplikacje internetowe, nie musi tworzyć kodu obsługi protokołu HTTP z klientem ani kodu obsługi komunikacji SQL z serwerem bazy danych. Ponadto serwer aplikacji realizuje inne typowe funkcje, np. obsługę transakcji, rejestrację żądań w plikach dziennika, autoryzację dostępu użytkowników do aplikacji.


Aplikacje internetowe najczęściej buduje się w ten sposób, że poszczególne funkcje systemowe w celu ich separacji są rozdzielone pomiędzy różne komponenty. Stosowane są dwie metody:

  • architektura 4-warstwowa (4-tier architecture)
  • architektura Model-View-Controller.

 

Architektura 4-warstwowa

Nazywa się tak, ponieważ definiuje cztery warstwy aplikacji internetowej. Są to warstwy:

  • klienta,
  • logiki prezentacji,
  • logiki biznesowej
  • danych.

Składniki aplikacji są podzielone na dwie grupy: składniki logiki prezentacji i składniki logiki biznesowej.

Zadania składników logiki prezentacji to:

  • przyjmowanie żądań od klientów,
  • wywoływanie funkcji składników logiki biznesowej,
  • generowanie dokumentów dynamicznych
  • wypełnianie ich danymi przekazywanymi przez składniki logiki biznesowej.

Zadania składników logiki biznesowej to:

  • realizacja procesów biznesowych
  • komunikacja z bazą danych




Architektura Model-View-Controller (MVC)

Jest dalszym rozwinięciem architektury 4-warstwowej. Składniki aplikacji internetowej są podzielone na trzy grupy:

  • składniki sterujące — logika sterowania (controller) - przyjmują żądania od klientów oraz koordynują ich obsługę (wywoływanie funkcji składników modelu i prezentacji)
  • składniki prezentacji — logika prezentacji (view) - tworzą dokumenty dynamiczne i wypełniają je danymi dostarczanymi przez składniki modelu.
  • składniki modelu — logika biznesowa (model) - odpowiadają za realizację procesów biznesowych i komunikację z bazą danych.

 

Zaletą technologii aplikacji internetowych jest to, że użytkownik korzystający z takiej aplikacji może posługiwać się tylko programem klienta HTTP, który zwykle ma małe wymagania sprzętowe. Dzięki temu dostęp do aplikacji internetowych możliwy jest też za pomocą tabletu czy telefonu komórkowego. Inną zaletą jest wygoda administrowania aplikacjami internetowymi. Są one umieszczane na pojedynczym komputerze (serwerze aplikacji), w związku z tym prace administracyjne dotyczą tylko tego komputera.


Wadą technologii aplikacji internetowych są koszty, jakie należy ponieść, aby wdrożyć ten system (np. konieczność zakupu serwera o dużej mocy obliczeniowej czy zakupu komercyjnego oprogramowania serwera aplikacji). Inną niedogodnością są trudności z wytwarzaniem oprogramowania.
Serwerami aplikacji są np.: poss Application Server (serwer aplikacji w Javie na licencji LGPL), IBM WebSphere (serwer aplikacji JEE oferowany przez firmę IBM), platforma .NET Microsoft.


Wzorce projektowe


Wzorce projektowe to sprawdzone w praktyce, uniwersalne rozwiązania często pojawiających się problemów podczas projektowania aplikacji. Wzorce projektowe tworzone są najczęściej w oparciu o programowanie obiektowe. Pokazują powiązania i zależności pomiędzy klasami oraz obiektami i ułatwiają tworzenie i modyfikację kodu źródłowego. Wprowadzają standaryzację kodu oraz zwiększają jego wydajność i niezawodność. Wzorzec projektowy powinien zawierać oprócz rozwiązania problemu także dokumentację, która wyjaśni cel, sposób działania i zalety danego rozwiązania.

Dokumentacja wzorca projektowego powinna zawierać:

  • unikatową nazwę, która pozwoli odwoływać się do wzorca,
  • opis celu, czyli czym należy się kierować podczas wyboru wzorca,
  • opis sytuacji, w których wzorzec można stosować,
  • graficzną reprezentację wzorca w postaci diagramu klas lub interakcji,
  • listę klas i obiektów stosowanych we wzorcu,
  • opis wzajemnej interakcji klas i obiektów wykorzystywanych we wzorcu,
  • wykaz wyników oraz efektów ubocznych, jakie występują podczas użycia wzorca,
  • wskazówki dotyczące zastosowania wzorca,
  • przykładowy kod w jednym z języków programowania pokazujący zastosowanie wzorca.

Wzorzec projektowy nie jest gotową implementacją rozwiązania. Przypomina szablon, który może być zastosowany w wielu różnych sytuacjach. Wzorce oparte są na praktycznych rozwiązaniach, które zostały zaimplementowane w wybranym języku obiektowym. Mogą przyspieszyć proces projektowania aplikacji przez wykorzystanie wypróbowanych rozwiązań dla sformułowanego problemu.


Wzorzec projektowy MVC


MVC (ang. Model-View-Controller) jest jednym z najczęściej stosowanych wzorców projektowych w aplikacjach internetowych. Głównym założeniem tego wzorca jest podzielenie kodu aplikacji na 3 moduły:

  • Model — reprezentuje dane (np. pobierane z bazy danych).
  • Widok — reprezentuje interfejs użytkownika.
  • Kontroler — reprezentuje logikę sterującą aplikacją.

 

Model

Model zapewnia zestandaryzowany sposób dostępu do danych. Najczęściej stosowany jest do pobierania i modyfikowania rekordów z bazy danych. Pozostała część aplikacji staje się niezależna od tego skąd i w jaki sposób dane są pobierane. Dane mogą być pobierane z różnych źródeł (np. z bazy lub pliku) i nie jest to istotne z punktu widzenia logiki sterującej aplikacji. Tworząc tę logikę, wywołujemy tylko odpowiednie funkcje modelu i w wyniku dostajemy dane do przetworzenia. Model jest elementem opcjonalnym, gdyż nie zawsze korzystamy z danych pobieranych z bazy czy plików.


Widok

Widok reprezentuje to, co będzie widoczne dla użytkownika. Widok oddzielony od logiki aplikacji pozwała na bezproblemową zmianę oprawy graficznej w dowolnym momencie. Zadaniem kontrolera jest przekazanie danych do widoku. Programista tworzący widok nie musi nic wiedzieć na temat logiki programu. Otrzymuje on tylko dane, które należy sformatować. Widok można zmienić, nie ingerując w kod programu.


Kontroler

Kontroler zawiera najważniejszą część kodu, która steruje aplikacją. Odpowiada m.in. za przetwarzanie danych pobranych za pomocą modelu i przekazanie ich poprzez widok użytkownikowi, a także za wykonywanie odpowiednich akcji w zależności od działań użytkownika.


Zaletą korzystania ze wzorca MVC jest uzyskanie gotowej struktury aplikacji oraz uporządkowanie struktury kodu szczególnie przy tworzeniu dużych aplikacji. Pozwala też na uniknięcie problemów ze znalezieniem określonej funkcjonalności. Umożliwia stosowanie jasnego podziału prac nad projektem. Zmiana bazy danych czy wyglądu strony przestaje być problemem.
Wzorzec MVC często jest traktowany jako wzorzec złożony, który może być rozbijany na prostsze wzorce. Na bazie wzorca MVC powstało również wiele wzorców pochodnych. Obecnie częściej stosowane są wzorce pochodne niż oryginalny wzorzec.
Jedną z pierwszych adaptacji MVC na potrzeby środowiska WWW była platforma Struts przeznaczona dla technologii Java Server Pages.
 
Firma Microsoft posiada adaptację MVC zbudowaną na bazie technologii ASP.NET w postaci platformy ASP.NET MVC, która umożliwia budowanie aplikacji z uwzględnieniem wyraźnie odseparowanych modeli, kontrolerów oraz widoków. Platforma ta udostępnia dużą liczbę specyficznych rozszerzeń oraz konstrukcji programistycznych.
Istnieje wiele frameworków wspomagających programowanie i udostępniających gotową architekturę opartą na MVC. Należą do nich:

  • Zend Framework,
  • Code Igniter,
  • CakePHP,
  • Symfony.

 

Framework - platforma programistyczna


Do tworzenia aplikacji internetowych często wykorzystuje się platformy programistyczne, które definiują strukturę aplikacji, określają mechanizm ich działania oraz dostarczają bibliotek umożliwiających wykonywanie określonych zadań. Framework posiada zdefiniowaną podstawową strukturę aplikacji, czyli elementy, które pozostają niezmienne we wszystkich utworzonych przy jego pomocy aplikacjach. Programista tworzy aplikację, dostosowując poszczególne komponenty do wymagań realizowanego projektu. Ma on również możliwość tworzenia nowych elementów niezbędnych w projektowanej strukturze aplikacji.


Typowe cechy frameworka to:

  • Odwrócenie sterowania — przepływ sterowania jest narzucany przez framework, a nie przez programistę.
  • Domyślne zachowanie — framework powinien posiadać domyślną konfigurację, która musi być użyteczna i dawać określony wynik.
  • Rozszerzalność — programista powinien mieć możliwość rozszerzania poszczególnych komponentów frameworka, jeśli chce je rozbudować o dodatkową funkcjonalność.
  • Zamknięta struktura wewnętrzna — programista może rozbudowywać framework, ale nie poprzez modyfikację domyślnego kodu.

Tworzenie aplikacji z wykorzystaniem frameworków wymaga od programisty mniejszej ilości kodu do napisania. Aplikacja posiada dobrą wewnętrzną strukturę, jest dobrze zaprojektowana i przetestowana. Ceną za elastyczną budowę jest niższa wydajność tworzonego oprogramowania. Frameworki mogą być stosowane jako szkielety zarówno kompletnych aplikacji, jak i pojedynczych komponentów.

 

Narzędzia programistyczne


Eclipse IDE

Eclipse to platforma programistyczna przeznaczona do tworzenia i testowania aplikacji internetowych. Sama platforma nie posiada narzędzi do tworzenia aplikacji czy pisania
programu, ale zapewnia obsługę wtyczek realizujących określone zadania. Dostępne są implementacje różnych języków programowania, między innymi w Javie, C/C++ i PHP. Posiada narzędzia do współpracy z serwerami WWW oraz serwerami baz danych. Może pracować z systemami Windows, Linux i Mac OS/X.


Zend Framework

Zend Framework to platforma programistyczna przeznaczona do tworzenia aplikacji internetowych w języku PHP. Zawiera zbiór bibliotek obsługujących podstawowe mechanizmy działania aplikacji oraz biblioteki użytkowe obsługujące np. wysyłanie e-maili, komunikację z innymi aplikacjami internetowymi itp. Posiada również implementację modelu MVC, który może zostać wykorzystany do utworzenia struktury aplikacji.


NetBeans IDE

Jest to kolejny darmowy zestaw narzędzi programistycznych służący do tworzenia aplikacji, w tym również usług Web Services i aplikacji przeznaczonych na urządzenia mobilne. Głównie przeznaczony dla języka Java, ale umożliwia kompilowanie programów napisanych w innych językach, np. JavaScript, C++, Ruby, Python, PHP.

Reklama