Współczesne serwisy internetowe Wykład 1 Dr Krzysztof Podlaski
Dane Kontaktowe Podlaski Krzysztof E-mail podlaski@uni.lodz.pl www: http://merlin.phys.uni.lodz.pl/kpodlaski Tutaj będą slajdy z wykładów Tel. 665 50 74 Pokój 214B
Co już umiemy Założenia o posiadanej wiedzy Znamy HTML XHTML CSS JavaScript (podstawy) XML Podstawowe informacje i własności
Przydatna wiedza Technologie (Server Side) Podstawy jednego z poniższych PHP JSP ASP
Tematyka wykładu Technologie i przykłady Wiele technologii dostępnych Omówimy jedynie wybrane AJAX FLASH/Flex PHP/JSP Web Serwisy (RPC/WSDL)
Serwisy internetowe Co to jest? Każdy rodzaj aplikacji wykorzystującej internet Dwie strony Serwer Klient Jakie znamy rodzaje Strony internetowe, portale, blogi, fora Usługi internetowe (Web Services)
Odbiorca serwisu Dla kogo ten serwis C2C Consumer to Consumer Blogi, Fora społecznościowe, Strony internetowe Technologie:» PHP, JavaScript, Flash B2C Business to Consumer Portale, Wortale, Usługi sieciowe (Web Services) Technologie» PHP/JSP/ASP, JavaScript, Flash
Odbiorca serwisu Cd. (2) Dla kogo ten serwis Business to Business Usługi sieciowe, Wortale Technologie» JSP/PHP/ASP
Tworzenie Serwisu Założenia Opis Użytkowników Przypadki użycia Dobór filozofii Wzorzec MVC Programowanie zorientowane serwisowo Programowanie zorientowane obiektowo lub inne
Tworzenie Serwisu cd. (2) Wybór technologii Język/platforma (strona serwera) PHP, JAVA/JSP,.NET/ASP Język (strona klienta) JavaScript, Flash, Java Implementacja Testowanie Wygładzanie
Tworzenie serwisu cd. (3) Twórca w stylu Wiem wszystko KLAPA Zespół projektowy Programista/koder Spec ds. baz danych Spec ds. użytych technologii Grafik Tester
Projektowanie Serwisu Przydatne Wzorce Projektowe MVC Pełnomocnik (Proxy) Singleton Dlaczego? Ułatwiają pracę Zwłaszcza zespołową Nie wyważamy otwartych drzwi Pomaga w projektowaniu Nic na siłę
Projektowanie po co? Dobry projekt Szybka optymalna praca Ułatwione poprawki do systemu Ułatwienia pracy zespołu Zarządzanie projektem Doskonały projekt MRZONKA Zawsze czegoś nie dopatrzymy
MVC Wzorzec MVC Model View Controller
MVC cd. (2) Podział na warstwy Model Warstwa danych i ich obsługa Baza danych Operacje na danych Controller Logika biznesowa aplikacji Operacje na danych Interpretacja zapytao View Wizualizacja
Co nam to daje Rozdzielenie elementów/warstw logicznych Kontrola nad aplikacją Chcemy zmienid szatę graficzną Zmieniamy warstwę widoku Zmiana danych, bazy itp. Zmieniamy Implementację modelu» Tu mogą wystąpid problemy Dodajemy nowe sposoby użycia Zmiany» Controller, View czasem Model
Co nam to daje cd. (2) Szybkie zmiany wizualizacja Zmiana sposobu wyswietlania Html Xml Pdf Wap Wersja do wydruku Zmiana implementacji Wizualizacji Może byd kontrolowana przez Kontroler
Pełnomocnik Pełnomocnik Aplikacja Baza Danych
Pełnomocnik cd. (2) Pełnomocnik (Proxy) Przydatne zwłaszcza w modelu Tworzymy obiekt pośredniczący Po co?» Obsługa bazy danych W jednym miejscu zapytania (np. SQL) Kontrola nad zmianami bazy, struktury» Model Abstrakcyjny» Implementacja Modelu Danych
Pośrednik cd. (3) Aplikacja dla pracowników Element logiczny Modelu Osoba Imie, Nazwisko Hasło Jednostka adm. Baza Danych Osoba Imie(String) Nazwisko(String) Hasło(String) Jednostka(String)
Pośrednik cd. (4) Optymalizacja bazy danych Osoba Id (int) Imie(String) Nazwisko(String) Hasło(String) Id_Jed (int) Jednostka Id (int) Nazwa (String) Adres(String) Id_kierownika (int) Zmiana TYLKO Pośrednika
Singleton Założenie Dana klasa ma TYLKO jedna instancję Zastosowanie W aplikacjach wielowątkowych Połączenia sieciowe Obsługa plików Obsługa bazy danych 1 egzemplarz klasy Proxy 1 zarządca połączeniem z bazą danych
Technologie wizualizacji Nowoczesna i popularna RIA (Rich Internet Application) Aplikacja ala desktopowa Małe przestoje Przeładowania w tle Elementy kontrolera po stronie klienta Ładny wygląd, dużo animacji itp. Operacje bieżące wykonywane u klienta
Technologie wizualizacji cd. (2) Popularne technologie AJAX (asynchronous JavaScript and XML) JavaFX Flex/Flash Inne OpenLaszlo Microsoft Silverlight ActiveX,.NET
AJAX Podstawowe własności Tworzony w JavaScript Przesyłanie danych w formacie xml Przeładowanie części strony Dynamiczne Menu Dopełnianie pól tekstowych W3C Standard Google Wsparcie, biblioteki itp.
AJAX cd. (2) Zalety Mniejsze obciążenie serwera/klienta Dynamiczny interfejs Szybsza reakcja na operacje klienta Wady Ciężkie w programowaniu Konflikty Przeglądarki - standardy W3C Brak operacji BACK w przeglądarce Problemy z zakładkami Wyszukiwarki źle reagują na JavaScript
Flex Technologia firmy Adobe Pochodna Flash a Programowany Flash Prosty język programowania Oparty o xml i komponenty ActionScript SDK lub IDE (z SDK) Kompilacja do Flash (swf) Wymaga Flash plugin a w przegladarce
Flex cd. (2) Zalety Dynamiczny interfejs Proste tworzenie RIA Współpraca z serwerem jak AJAX Pełna niezależnośd platformowa Wady Wymagania co do sprzętu Czas ładowania strony Współpraca z wyszukiwarkami
JavaFX Odpowiednik Flex a Wymaga JRE (Java Runtime Enviroment) u klienta Kompilowany do appletu Javy
Technologie Server Side Popularne technologie PHP JSP ASP Bazy Danych SQL Oracle Mysql PostgreSQL
PHP Prosty skryptowy język programowania Powoli przestaje byd prosty PHP4 PHP5 PHP6?? Brak kompatybilności i zgodności Dobra współpraca z serwerami baz danych Zwłaszcza MySQL i PostgreSQL. Wiele darmowych i płatnych providerów Nieduże wymagania od serwera
PHP cd. (2) Wady Ułomna obiektowośd W PHP4 bardzo ułomna W PHP5 praktycznie pełna ale wolna Wolniejszy od języków kompilowanych/prekompilowanych
JSP Technologia oparta o JAVA Element tzw. JavaEnterpriseEdition Mieszanka języka skryptowego i Java Prekompilowane na serwerze Pełna obiektowośd Doskonałe wsparcie dla baz danych Pełna technologia JEE przerasta PHP możliwościami
JSP/JEE cd. (2) Wady Wymagany Serwer Aplikacji Java Zasobożerny Polecany dla bardziej obciążonych serwerów Mało/brak darmowych providerów (w polsce)
ASP, ASP.NET Odpowiednik JSP/JEE na serwery Microsoftowe
Bazy Danych Nowoczesny serwis internetowy PRAWIE ZAWSZE baza danych Podstawowe typy baz danych Płaskie (inne zastosowania) Relacyjne (RDBM) Obiektowe (mało popularne)
Relacyjne Bazy Danych Oracle (firmy Oracle) Doskonały serwer baz danych Wsparcie dla Java Komercyjny/Zasobożerny MySQL (MySQL AB=>Sun=>Oracle) Dobry serwer baz danych Prawie darmowy PostgreSQL (Berkeley University) Dobry serwer baz danych W pełni darmowy
Obiekty a RDBM Dwa światy Aplikacja Baza danych W programowaniu Obiekty RDMB Tabele i relacje Alternatywa Obiektowe bazy danych
Obiekty a RDBM cd. (2) Jak pracowad Tworzenie skomplikowanych zapytao SQL Lekko męczące dla małych projektów O-R Mapping (Mapowanie obiektowo-relacyjne) Technologia tłumacząca obiekty aplikacji na relacje Pośredniczenie z operacjach z bazą danych Wolniejsze niż zapytania SQL Ale wsparcie dla cache owania zapytao