Wstęp do pracy magisterskiej – „Sklep I nternetowy – PHP5 i MySQL zastosowania...
description
Transcript of Wstęp do pracy magisterskiej – „Sklep I nternetowy – PHP5 i MySQL zastosowania...
Wstęp do pracy magisterskiej – „Sklep Internetowy – PHP5 i MySQL zastosowania e-commerce”
Konrad Pawłowski Poznań, 8.III.2007
2
1. Czy warto zaistnieć w internecie?◦ Pozyskanie większej ilości klientów◦ Nakłonienie klientów do zwiększenia zakupów◦ Zmniejszenie kosztów realizacji zamówień◦ Ryzyko i zagrożenia2. Projektowanie z uwzględnieniem możliwości rozbudowy witryny◦ Długookresowa funkcjonalności przy minimalnym nakładzie pracy◦ Zalety architektury trójwarstwowej
Warstwa prezentacji Warstwa biznesowa Warstwa danych
3. Wybór technologii i narzędzi projektowych◦ PHP◦ szablony Smarty◦ MySQL◦ moduł PEARL DB
Spis zagadnień
3
Przyczyny uruchomienia witryny internetowej:
chęć pozyskania większej liczby klientów; nakłonienie dotychczasowych klientów do
zwiększenia zakupów; zmniejszenie kosztów realizacji zamówień;
Czy warto zaistnieć w internecie?
4
Najważniejszy powód rozpoczęcia inwestycji Nieprawdą jest, że liczba klientów wzrośnie
natychmiast, klient musi dowiedzieć się o istnieniu sklep (także klasycznego sklepu).
Sposoby pozyskiwania klientów◦ rejestrowanie w wyszukiwarkach internetowych i
usługach katalogowych◦ tworzenie forów dyskusyjnych◦ budowanie list informacyjnych
Pozyskanie większej liczby klientów
5
Jeśli klient nie jest zainteresowany produktem sklep internetowy tego nie zmieni.
Sklep w Internecie pomocny gdy:◦ Dotarcie do sklepu lub złożenie zamówienia jest
wyjątkowo trudne.◦ Część towarów można kupić w innych
dogodniejszych miejscach.◦ Godziny otwarcia sklepu pokrywają sie z
godzinami pracy klientów.◦ Promowanie produktu jest bardzo trudne.
Nakłonienie klientów do zwiększenia zakupów
6
Zakupy można dokonywać poza godzinami pracy lub bezpośrednio z komputerów firmowych.
Przemyślany interfejs może nakłonić do zakupu produktów zazwyczaj niepotrzebnych◦ Sezonowe promocje, nowości, produkty związane z
wcześniej zamówionymi towarami Brak kosztów z osobami nie dokonującymi
zakupów Możliwość zbierania informacji o klientach
(np. adresy e-mail)
Nakłonienie klientów do zwiększenia zakupów
7
Formularz realizacji zamówień realizowany przez klientów (nie potrzeba pracownika)
Koszt rzeczywistego przetwarzania zamówienia bliski zeru (brak kasjerek, sprzedawców czy ochroniarzy)
Brak opłaty za lokal
Zmniejszenie kosztów realizacji zamówień
8
Do zagrożeń związanych z prowadzeniem sklepu internetowego należy zaliczyć:◦ działanie hakerów,◦ wyłudzanie z wykorzystaniem kart kredytowych,◦ awarie sprzętu,◦ zawodność dostawców,◦ błędy oprogramowania,◦ zmieniające się prawo (np. wirtualne apteki).Należy pamiętać o ich istnieniu i zabezpieczyć się przed ich skutkami.
Ryzyko i zagrożenia
9
Sporządzanie kopii zapasowych ( 5 minut które są bardzo ważne)
Właściwe procedury logistyczne (terminowe dostarczanie zakupionych towarów)
Ryzyko i zagrożenia
10
Wygląd strony ważny, ale nie najważniejszy◦ Wygląd zachęca do rozpoczęcia korzystania z
serwisu, jeśli jednak jest powolny w działaniu, trudny w użyciu, i nie zapada w pamięć to wygląd strony wiele nie pomoże
Błędne przekonanie o wyższości części wizualnej nad sposobem implementacji
Przed rozpoczęciem należy wykonać pewne czynności przygotowywawcze:◦ określenie stawianych oczekiwań;◦ przygotowanie architektury aplikacji;
Projektowanie z uwzględnieniem możliwości rozbudowy
11
Powtórne wykorzystanie◦ Dodanie nowej opcji, nie powinno doprowadzać do
zmiany projektu całej witryny. Wykorzystanie wcześniejszych rozwiązań, możliwość rozbudowy.
Elastyczna architektura ◦ Złożona z łatwo dołączalnych komponentów.
Skalowalność architektury◦ Zdolność do liniowego zwiększania pojemności
systemu przy zwiększaniu jego zasobów.
Długookresowa funkcjonalności przy minimalnym nakładzie pracy
12
Stabilność◦ Stabilne działanie rozwiązania zapewnia spójny
mechanizm obsługi błędów i stosowanie wydajnych relacyjnych baz danych. Umożliwia to właściwe przetwarzanie niekrytycznych błędów, bez przerywania pracy skryptów.
Długookresowa funkcjonalności przy minimalnym nakładzie pracy
13
Każdy z modułów tworzonych na potrzeby witryny zawiera komponenty pochodzące z jednej z trzech wymienionych poniżej warstw serwera aplikacji:
• warstwy prezentacji,• warstwy biznesowej,• Warstwy danych.
Zalety architektury trójwarstwowej
14
Składa się z elementów interfejsu użytkownika.
Obsługuje interakcje użytkownika z warstwą biznesową.
Na jej podstawie użytkownik wyrabia sobie pierwsze wrażenie.
Ponieważ omawiana aplikacja jest witryną WWW, jej warstwa prezentacji składa się z dynamicznych stron WWW.
Warstwa prezentacji
15
Przyjmuje żądania z warstwy prezentacji i przekazuje wyniki działania programu do warstwy prezentacji.
Większość zdarzeń zostaje obsłużonych w warstwie biznezowych.
Niektóre zdarzenia mogą być obsłużone lokalnie przez warstwę prezentacji.◦ Np. nieskomplikowane walidacje danych
Warstwa biznesowa (warstwa pośrednia)
16
Jest odpowiedzialna za zarządzanie danymi aplikacji i za udostępnianie ich na żądanie warstwy biznesowej.◦ W przypadku projektowanej przeze mnie aplikacji
w warstwie danych zostaną zgromadzone informacje na temat wszystkich produktów, użytkowników, koszyków z zakupami itp.
◦ Zagwarantowanie szybkiego działania baz danych ma zasadnicze znaczenie dla uzyskania wysokiej wydajności całej aplikacji.
Warstwa danych(warstwa bazodanowa)
17
◦ Głównym ograniczeniem trójwarstwowej architektury serwisu jest konieczność sekwencyjnego przekazywania danych między warstwami.◦ Warstwa biznesowa stanowi „mózg” aplikacji – komunikując się z pozostałymi warstwami i zarządzając przepływem informacji.
Sposób przekazywania informacji w aplikacji trójwarstwowej
Warstwa prezentacji
Warstwa biznesowa
Warstwa danych
18
Sposób przekazywania informacji w aplikacji trójwarstwowejTu będzie opis poszczególnych
kroków
Warstwa prezentacji
Warstwa biznesowa
Warstwa danych
Internet
1
2
3
4
5
6
7
Użytkownik korzystający z przeglądarki internetowej
Trójwarstwowa architektura aplikacji WWW zaimplementowana w systemie serwera
WWW
19
Architektura trójwarstwowa – znaczenie liczbTu będzie opis poszczególnych kroków
Produkt nie jest
dostępny
Warstwa prezentacji
Warstwa biznesowa
Warstwa danych
Kliknięcie przycisku „Dodaj
do koszyka”
Poinformowanie użytkownika o tym, że produkt nie może zostać dodany do koszyka zakupów
Dodanie produktu do
koszyka zakupów
Jaki jest stan magazynowy
produktu0
20
Oprogramowanie każdej z warstw.◦ Wyznaczanie granic między warstwami bywa trudne. ◦ Czasami architektura jest łamana, jeśli dane
rozwiązanie zwiększa wydajność serwisu. ◦ Rozwiązanie na poprzednim slajdzie wymaga dwóch
odwołań, przy przeniesieniu części oprogramowania z warstwy biznesowej do warstwy danych możemy użyć pojedynczego odwołania wprowadzając metodę tupu DodajProduktJeśliJest
◦ Nie należy odwoływać się bezpośrednio do warstwy danych z warstwy prezentacji. Nadmierna złożoność.
Architektura trójwarstwowa
21
Trójwarstwowa architektura w projekcie pracy magisterskiej.◦ Wprowadzone reguły zapewniają elastyczność
oraz możliwość rozbudowania z biegiem czasu.◦ Niezależność rozwiązania od wprowadzanych
zmian. Np. w przypadku zmiany serwera MySQL bazą danych Oracle, zmiany nastąpią w warstwie danych oraz ewentualnie małe poprawki w warstwie biznesowej.
Architektura trójwarstwowa
22
Dlaczego nie stosuje się większej liczby warstw?◦ Dopuszczalne stosowanie architektur warstwowych,
większa ilość warstw może wprowadzać większą elastyczność i skalowalność aplikacji.
◦ Punkt równowagi między czasem definiowania architektury a czasem poświęconym na jej implementacje.
◦ Architektura dwuwarstwowa (klient-serwer) wykorzystywana w projektach o mniejszej złożoności. Trudniejsza do zarządzania i rozbudowy w dłuższym przedziale czasowym.
Architektura trójwarstwowa
23
Wykorzystanie języka PHP do generowania stron WWW, przyczyny popularności:◦ interpreter PHP jest dostępny za darmo;◦ Język PHP jest łatwiejszy do nauczenia niż inne
języki skryptowe;◦ społeczność PHP działa bardzo efektywnie;◦ Interpreter PHP działa doskonale na różnych
serwerach oraz w różnych systemach operacyjnych (platformy uniksowe, Windows, Mac OS X)
Wybór technologii i narzędzi projektowych -PHP
24
Smarty◦ Jest on napisaną w języku PHP klasą, za pomocąktórej będziemy w stanie połączyć tworzone
oddzielnie: kod źródłowy sterujący witrynąWWW oraz opracowane w HTML-u szablonystron.
◦ Nie jest konieczny, ale bardzo przydatny wprofesjonalnych projektach.
Wybór technologii i narzędzi projektowych – szablony Smarty
25
Istotne wady przeplatania instrukcji PHP z kodem HTML odpowiedzialnym za wygląd:◦ długie, złożone i trudne do analizowania listingi,
są one trudne do zrozumienia już po tygodniu od napisania;
◦ problem jednoczesnej pracy projektantów strony iprogramistów, wszyscy pracują na tych samych plikach zawierających kod HTML i PHP
Wybór technologii i narzędzi projektowych – szablony Smarty
26
Zalety◦ bezpieczeństwo kodu źródłowego (projektanci układu
strony nie mogą naruszyć struktury aplikacji);◦ nieprawidłowości w szablonach są ograniczone do
systemuobsługi błędów Smarty;
◦ projektanci mogą zmieniać lub kompletnie przebudowywać layout strony bez interwencji programistów;
◦ szablony umożliwiają szybkie zaprezentowanie demonstracyjnej wersji produktu (a jest to bardzo ważne np. na etapie negocjacji).
Wybór technologii i narzędzi projektowych – szablony Smarty
27
Wybór technologii i narzędzi projektowych – szablony SmartyNa rysunku została przedstawiona zależność między plikiem szablonu interfejsu (Smarty Design Template) i plikiem modułu dodatku Smarty.
28
Język PHP współdziała z wieloma RDBMS (Relational Database Managment System), wliczając w to MySQL, PostgreSQL, Oracle i inne.
Wiele firm udostępniających usługi internetowe oferuje dostęp do baz danych MySQL.◦ Co ułatwia uruchamianie w sieci nowych witryn.
MySQL charakteryzuje się tym, że jest:◦ darmowy (w niekomercyjnych aplikacjach);◦ szybki i stabilny;
Wybór technologii i narzędzi projektowych - MySQL
29
Wybór technologii i narzędzi projektowych - MySQL
Wynik ankiety z której wynika, że MySQL jest najpopularniejszą bazą danych wśród programistów PHP.Tabela pochodzi z: http://www.zend.com/zend/php_survey_results.php (7.III.2007)
30
Moduł PEARL DB odpowiada pewnej abstrakcyjnej warstwie bazodanowej, wchodzącej w skład pakietu PEARL.
Oferuje zunifikowany interfejs dostępu do różnego rodzaju źródeł danych.
Stosując rozszerzenia PEARL DB nie trzeba zmieniać kodu skryptu odpowiedzialnego za dostęp do bazy danych w przypadku zmiany serwera.◦ Np. z MySQL na PostgreSQL.◦ Przy tej zmianie należałoby np. zmienić mysql_connect i mysql_query na pg_connect i pq_query.
Wybór technologii i narzędzi projektowych – moduł PEARL DB