Aplikacja internetowa vs Strona Internetowa. Aplikacja internetowa

advertisement
Aplikacja internetowa vs Strona Internetowa.
Aplikacja internetowa, (ang.) web application – zwana również aplikacją webową, to program
komputerowy, który pracuje na serwerze i komunikuje się poprzez sieć komputerową z
komputerem użytkownika wykorzystując przeglądarkę internetową która w takim przypadku jest
interaktywnym klientem aplikacji internetowej. W pracy aplikacji internetowej musi pośredniczyć
serwer WWW. Do przygotowania samej aplikacji używa się różnych mechanizmów (np. CGI, JSP,
ASP.NET) i języków (np. PHP, Java, C#), jak również serwerów aplikacji. Mechanizm prezentacji
danych w przeglądarce określa się czasem mianem cienkiego klienta. Przykładem aplikacji
internetowej jest mechanizm edycji treści encyklopedii Wikipedia. Inne witryny WWW należące do
tej kategorii to np. serwis aukcyjny Allegro czy księgarnia internetowa Merlin.
Strona internetowa, strona WWW (ang. web page) – dokument HTML udostępniony w
Internecie przez serwer WWW. Po stronie hosta użytkownika, strona WWW jest otwierana i
wyświetlana za pomocą przeglądarki internetowej. Autorem pierwszych stron WWW jest Tim
Berners-Lee.
Czym się różnią:
Dla laika wszystko co wyświetla się w przeglądarce to strona internetowa co jest błedne.
Najprostszym kryterium podziału jest kryterium techniczne. Jeśli coś jest po prostu statycznym
HTML'em i CSS'em to mamy do czynienia ze stroną internetową. Jeśli zaś pod maską mamy
jeszcze inną technologię generującą treść strony możemy śmiało powiedzieć, że w tym wypadku
mamy do czynienia już z aplikacją internetową.
Zalety aplikacji Internetowych:
• Bezpieczeństwo - aplikacje internetowe są bezpieczne, ponieważ ich bazy danych są
składowane i zabezpieczone centralnie,
• Dostępność - w bardzo łatwy sposób można korzystać z aplikacji internetowych w
dowolnym miejscu - do ich obsługi wystarczy dostęp do urządzenia połączonego z
Internetem,
• łatwość uaktualniania - nawet gdy aplikacje internetowe są uaktualniane, nie jest
konieczna aktualizacja po stronie klienta,
• niezależność sprzętowa - aplikacje internetowe są całkowicie niezależne od systemów i
przeglądarek klientów, którzy z nich korzystają,
• łatwość rozbudowy - aplikacje internetowe mogą być bez przerwy rozbudowywane o
dodatkowe funkcje a zmiany na bieżąco będą dostępne dla klientów.
• Niski koszt – aplikacje internetowe są tanie bo pozwalają an prace na dowolnych
urządzeniach z dostępem do internetu.
Narzędzia aplikacji internetowych.
Serwer WWW – podstawowym narzędziem jest serwer WWW zainstalowany na serwerze
Internetowym (np. IIS albo Apache) na którym jest zainstalowane jest dodatkowe oprogramowanie
(np. Serwer bazodanowy np. MySQL, MSQL) oraz interpreter wybranego języka, języków
programowania (np. PHP, JAVA, C# ) Na serwerze mogą pracować równolegle różne
oprogramowani (kilka serwerów bazodanowych i interpreterów). W aplikacjach internatowych
największe wymagania sprzętowe stawiane są właśnie serwerowi WWW a nie klientom którzy się
łączą się z wykorzystaniem przeglądarki internetowej.
Klient aplikacji internatowej – zajmuje się renderowanie wyglądu strony na podstawie kodu
HTML oraz obsługa niektórych zadań np. JavaScript, ApletJava, AJAX, Flash itp.
Technologie po stronie klienta.
Wspomagają one oprogramowanie po stronie serwera i najczęściej to:
• JavaScript, JS – skryptowy język programowania, stworzony przez firmę Netscape.
Głównym autorem JavaScriptu jest Brendan Eich. Skrypty w JavaScript służą najczęściej
do zapewnienia interaktywności poprzez reagowanie na zdarzenia, sprawdzania
poprawności formularzy lub budowania elementów nawigacyjnych. Skrypty JavaScriptu
uruchamiane przez strony internetowe mają znacznie ograniczony dostęp do komputera
użytkownika. Po stronie serwera może także działać JavaScript w postaci node.js lub Ringo
Aplet Javy – aplet dostarczany w postaci kodu bajtowego Javy. Może zostać uruchomiony
w przeglądarce internetowej wykorzystując wirtualną maszynę Javy albo w samodzielnej
aplikacji AppletViewer służącej do testowania apletów Javy. Mogą być pisane zarówno w
Javie jak i innych językach kompilowanych do kodu bajtowego - na przykład Jython.
• Adobe Flash (dawniej Macromedia Flash) – technologia tworzenia animacji z
wykorzystaniem grafiki wektorowej na zasadzie klatek kluczowych. Powstałe pliki .swf,
zwane często „plikami Flash”, można odtwarzać na stronie www za pomocą przeglądarki
internetowej z zainstalowaną odpowiednią wtyczką (np. Adobe Flash Player) lub w
oddzielnym programie do tego przeznaczonym. Od wersji Flash 5 program wyposażony
został w język programowania do obsługi zdarzeń (np. kliknięcie elementu myszą) –
ActionScript. Dzięki temu we Flashu można tworzyć interaktywne animacje i programy, np.
popularne w sieci WWW gry Flash. Oprócz tego pliki Flash są wykorzystywane do
internetowych reklam, prezentacji oraz filmów (Youtube itp). Istnieją również strony
internetowe całkowicie oparte na plikach Flash.
• AJAX (ang. Asynchronous JavaScript and XML, asynchroniczny JavaScript i XML) –
technika tworzenia aplikacji internetowych wspomagajaca JavaScript, w której interakcja
użytkownika z serwerem odbywa się bez przeładowywania całego dokumentu, w sposób
asynchroniczny. Ma to umożliwiać bardziej dynamiczną interakcję z użytkownikiem niż w
tradycyjnym modelu, w którym każde żądanie nowych danych wiąże się z przesłaniem całej
strony HTML.
Na technikę tę składa się parę elementów:
◦ XMLHttpRequest - klasa umożliwiająca asynchroniczne przesyłanie danych;
◦ JavaScript - mimo użycia w nazwie, może to być de facto dowolny język skryptowy
funkcjonujący po stronie użytkownika (np. JScript czy VBScript).
◦ XML - język znaczników, poprzez który miałyby być opisane odbierane informacje.
Technologie po stronie serwera.
Powodują one że klient otrzymuje gotową stronę HTML wygenerowaną zgodnie z żądaniami
klienta. Należą do nich CGI, ISAPI, ASP.NET, JSP, PHP
• CGI (ang. Common Gateway Interface) – Zazwyczaj program serwera WWW wysyła do
przeglądarki statyczne dokumenty HTML. Za pomocą programów CGI można dynamicznie
(na żądanie klienta) generować dokumenty HTML uzupełniając je np. treścią pobieraną z
bazy danych. Jest to bardzo stary standard dostępny za darmo od 1995r Programy CGI są
często pisane w językach interpretowalnych takich jak Perl, przez co nazywa się je także
skryptami CGI.
• ISAPI (Internet Server API) - Filtry ISAPI umożliwia zarządzanie listą plików dll, które
zmieniają lub rozszerzają funkcje dostępne w usługach IIS. Na przykład filtr ISAPI może
określać, które pliki są mapowane na adres URL, modyfikować odpowiedź wysyłaną przez
serwer lub wykonywać inne akcje modyfikujące zachowanie serwera. Technologia bardzo
szybka w porównaniu z CGI ale działająca tylko na serwerach Microsoftu.
• biór technologii opartych na frameworku zaprojektowanym przez firmę Microsoft.
Przeznaczony jest do budowy różnorodnych aplikacji internetowych, a także aplikacji typu
XML Web Services.
• ASP.NET są to skrypty uruchamiane przy użyciu serwera, który umożliwia wygenerowanie
treści HTML(CSS), WML lub XML – rozpoznawanych oraz interpretowanych przez
przeglądarki internetowe. ASP.NET jest wspierany przez separujący warstwę logiki od
warstwy prezentacji, wątkowo-kierowany model programistyczny, co poprawia wydajność
działania aplikacji. Logika stron ASP.NET oraz XML Web Services jest tworzona w
językach Microsoft Visual Basic .NET, Microsoft Visual C# .NET lub w każdym innym
języku wspierającym technologię Microsoft .NET Framework.
• JSP (ang. JavaServer Pages) to technologia umożliwiająca tworzenie dynamicznych
dokumentów WWW w formatach HTML, XHTML, DHTML oraz XML z wykorzystaniem
•
języka Java, wplecionego w kod HTML danej strony podobnie jak w PHP. Strona JSP w
procesie translacji jest zamieniana na serwlet (z reguły mała aplikacja napisana w Javie
uruchamiana po stronie serwera w kontenerze serwletów). Każde wywołanie strony JSP z
poziomu klienta (przeglądarki) wykonywane jest przez skompilowany serwlet. Jeśli użyta
zostanie prekompilacja (kompilacja wstępna) to już podczas uruchamiania aplikacji
wszystkie strony JSP zostaną przetłumaczone na serwlety.
• PHP obiektowy język programowania zaprojektowany do generowania stron internetowych
i budowania aplikacji webowych w czasie rzeczywistym. PHP jest najczęściej stosowany do
tworzenia skryptów po stronie serwera WWW, ale może być on również używany do
przetwarzania danych z poziomu wiersza poleceń, a nawet do pisania programów
pracujących w trybie graficznym (np. za pomocą biblioteki GTK+, używając rozszerzenia
PHP-GTK). Implementacja PHP wraz z serwerem WWW Apache oraz serwerem baz
danych MySQL określana jest jako platforma AMP (w środowisku Linux – LAMP, w
Windows – WAMP). Ponadto PHP można uruchomić na serwerze IIS (Windows) oraz w
chmurze Windows Azure.
Struktura Aplikacji Internetowej.
Zgodnie z architekturą aplikacji internetowej. Podzielamy interfejs użytkownika, aplikacje, oraz
bazę danych. Takie rozwiązanie pozwala na współbieżny dostęp do danych i aplikacji.
Podstawowa Architektura Aplikacji Internetowej
•
•
•
Interfejs użytkownika(warstwa klienta) - komputer (lub inne urządzenie obsługujące
protokół TCP/IP) wyposażone w przeglądarkę WWW.
Aplikacja(warstwa aplikacji) serwer WWW odpowiedzialny za odbieranie żądań od
klienta, łączenie się z serwerem baz danych, generowanie stron WWW na podstawie danych
pobranych z bazy oraz zwracanie wyniku do klienta.
Baza danych (warstwa danych) SZBD przechowuje dane używane przez system,
obsługuje bazę z danymi tworzonymi, usuwanymi, modyfikowanymi i wyszukiwanymi
przez użytkowników.
Programowalne warstwy aplikacji internetowych
Aplikacje internetowe budujemy najczęściej tak żeby poszczególne funkcje systemu rozdzielić
pomiędzy rożne komponenty podstawowe dwa modele:
Architektura czterowarstwowa
Architektura 4-warstwowa (4-tier architecture) zakłada, że komponenty aplikacji WWW dzielą
się na dwie grupy: komponenty logiki prezentacji i komponenty logiki biznesowej. Komponenty
logiki prezentacji odpowiadają za przyjmowanie żądań od klientów HTTP, wywoływanie funkcji
komponentów logiki biznesowej, generowanie dokumentów dynamicznych i wypełnianie ich
danymi
przekazywanymi przez komponenty logiki biznesowej. Komponenty logiki biznesowej
odpowiadają wyłącznie za realizację procesów biznesowych i komunikację z bazą danych.
Architektura ta nazywana jest 4-warstwową, ponieważ definiuje 4 warstwy aplikacji WWW:
klienta, logiki prezentacji,logiki biznesowej, danych
Architektura Model – Viewer - Controller (MVC)
• Architektura MVC zakłada podział komponentów systemu aplikacyjnego na trzy kategorie:
– Model (komponenty modelu): komponenty reprezentujące dane, na których operują aplikacje;
komponenty modelu oferują także metody dostępu do danych
– View (komponenty prezentacji): komponenty reprezentujące wizualizację (prezentację) danych
dla użytkownika; komponenty prezentacji pobierają dane od komponentów modelu, a następnie
wyświetlają je na ekranie użytkownika
– Controller (komponenty sterujące): komponenty przechwytujące żądania użytkowników i
odwzorowujące je w wywołania metod komponentów modelu; następnie komponenty sterujące
przekazują sterowanie do komponentów prezentacji
Wzorzec projektowy (ang. design pattern) – w inżynierii oprogramowania, uniwersalne,
sprawdzone w praktyce rozwiązanie często pojawiających się, powtarzalnych problemów
projektowych. Pokazuje powiązania i zależności pomiędzy klasami oraz obiektami i ułatwia
tworzenie, modyfikację oraz pielęgnację kodu źródłowego. Jest opisem rozwiązania, a nie jego
implementacją. Wzorce projektowe stosowane są w projektach wykorzystujących programowanie
obiektowe.
Dokumentacja wzorca projektowego powinna zawierać:
• Nazwa wzorca oraz klasyfikacja: opisowa oraz unikalna nazwa, umożliwiająca
identyfikację oraz odwoływanie się do wzorca; klasyfikacja według jednego ze schematów.
• Przeznaczenie: opis celu, który stoi za wzorcem oraz powody, jakimi należy się kierować
podczas jego wyboru.
•
•
•
•
•
•
•
•
•
•
•
Inne nazwy: jeżeli istnieją inne, dobrze znane nazwy wzorca, należy je podać.
Motywacja: scenariusz zawierający problem powiązany z kontekstem, w którym wzorzec
może być stosowany.
Stosowalność: sytuacje, w których wzorzec może być użyteczny.
Struktura: graficzna reprezentacja wzorca, zwykle jako diagram klas lub diagram interakcji.
Uczestnicy: lista klas i obiektów stosowanych w tym wzorcu oraz ich zobowiązania.
Współpraca: opis wzajemnej interakcji klas i obiektów wykorzystywanych we wzorcu.
Konsekwencje: wykaz wyników, efektów ubocznych oraz kompromisów jakie występują
podczas użycia wzorca.
Implementacja: wskazówki dotyczące implementacji wzorca; zwrócenie uwagi na
specyficzne kwestie.
Przykładowy kod: przykład zastosowania wzorca z wykorzystaniem jednego z języków
programowania.
Przykłady zastosowania: znane przykłady zastosowania wzorca w rzeczywistych
programach.
Pokrewne wzorce: odniesienie wzorca do innych, z którymi wiąże się przez wspólne
stosowanie lub można go z nimi zamienić oraz przedstawienie różnic w stosunku do
podobnych wzorców.
Download