Osoba
Transkrypt
Osoba
Współczesne serwisy internetowe Wykład 1 Dr Krzysztof Podlaski Dane Kontaktowe • Podlaski Krzysztof – E-mail [email protected] – 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 » Obsługa bazy danych • Po co ? – 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 Jednostka Id (int) Id (int) Imie(String) Nazwa (String) Nazwisko(String) Adres(String) Hasło(String) Id_kierownika (int) Id_Jed (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