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