sprawozdanie

Transkrypt

sprawozdanie
Autor:
Przemysław Stopa
Tytuł referatu:
Sklep internetowy zajmujący się sprzedażą pł yt meblowych
Data referatu:
16.04.2010 r.
I. Zał ożenia projektu.
Celem projektu było wykonanie sklepu internetowego dla elbląskiej firmy Delta zajmu jącej się sprzedażą
płyt meb lowych o następującej funkcjonalności:



Zamawianie p łyt meblowych o ró żnych wy miarach.
Możliwość zlecenia oklejan ia krawędzi zamawianych płyt.
Wyświetlanie orientacyjnego kosztu wysyłki kurierem.
Aplikacja ze wzg lędu na to, że będzie użytkowana prze z osoby o zróżn icowanej u miejętności obsługi komputera
musi posiadać intuicyjny interfejs oraz dobrze napisaną dokumentację. Musi zostać wykonany również panel
administracyjny aby pracownik firmy mógł łatwo kontrolować wp ływające zamówienia. Serwery na któ rych
zostanie zainstalowany sklep są średniej jakości, więc należy dostosować algorytm wyceny materiału aby
zbytnio ich nie obciążyć oraz aby do minimu m skrócić czas sporządzania zamó wien ia.
II. Wykorzystane technol ogie oraz zabezpieczenia.
Mając do dyspozycji nowoczesne technologie projektowania aplikacji
internetowych postanowiłem jako filar aplikacji wybrać asynchroniczny
JavaScript czyli AJAX oparty na skryptach języka PHP na serwerze oraz
XHTM L po stronie użytkownika aby maksy maln ie skrócić czas
przeładowywania informacji na stronie. Dzięki powy ższej technologii
użytkownik mo że szybko i bezpieczn ie kształtować swoje zamówienie na
jednej podstronie serwisu, bez potrzeby przechodzenia na kolejne, zakupy w
sklepie stają się więc jeszcze bard ziej intuicyjne.
Działanie skryptów strony jest zasadniczo proste. W mo mencie gdy użytkownik wyb ierze produkt z
rozwijanej listy nr 1 potrzebne będzie wczytanie do listy nr 2 dostępnych grubości płyt meblowych z bazy
danych, zadziała wtedy wbudowany w przeglądarkę JavaScript z ustawionym wychwytywaniem zdarzeń (w tym
przypadku zdarzenie on Click) uruchamiając wybraną funkcję inicjującą zapytanie AJAX. Teraz przeglądarka w
tle bez wiedzy u żytkown ika nawiąże połączen ie ze skryptem PHP po stronie serwera, który po odpytaniu bazy
danych zwróci wynik w odpowiedniej formie funkcją „echo()”. Dane wejścio we po przejściu przez parser w
JavaScript zostają wstawione w strukturę DOM doku mentu XHTM L po czy m wyświet lają się użytko wnikowi.
Cały ten proces trwa około sekundy co jest nieporównywalne w czasem przeładowania strony wraz z jej
wszystkimi elementami.
Wszystkie skrypty są chronione dodatkowo przed niepowołanym dostępem aby uchronić firmę przed
utratą danych. Zastosowano następujące zabezpieczenia:



W związku z tym że każdy mo że podejrzeć źródło strony, kod JavaScript został zaszyfrowany
odwracalny m algorytmem hashującym aby ukryć techniki łączenia się z serwerem.
Każdy skrypt PHP na serwerze wy maga podania sekretnego parametru aby zapytanie mogło
zostać wykonane.
Zastosowałem funkcję „mysql_real_escape_string()” w skryptach PHP aby nie pozwolić na atak
typu SQL Inject ion na bazę danych.
- 1-
III. Algorytm wyceny zamawianych produktów.
Najciekawszy m elementem pracy było stworzenie algoryt mu optymalizacji g ilotynowego rozkro ju
dwuwy miarowego dla p łyt meblowych, którego działan ie mo żna w skrócie opisać następująco:
1. Otrzy maj od użytkown ika wy miary formatek (elementów do wycięcia) płyty.
2. Pobierz wy miary pełnego arkusza p łyty z bazy danych.
3. Rozmieść formatki na pełnych arkuszach tak aby zajęły jak najmn iej miejsca
(minimalizacja odpadu).
Z zało żenia aplikacja miała być szybka w d ziałan iu na niezbyt szybkim serwerze, a więc odpada zastosowaniu
algorytmu sprawd zającego wszystkie mo żliwości. Próbowałem swoich sił przy użyciu algoryt mu genetycznego
jednak przy braku odpowiedniego wsparcia merytorycznego oraz naglącego czasu wykonania projektu
stworzone algorytmy wykonywały się zbyt długo a rozwiązania były bardzo często nieoptymalne oraz czasami
generowały nieprzewid ziane wyniki. Użyty więc został rekurencyjny algoryt m uproszczony o skończonej
dokładności ale wystarczający dla potrzeb sklepu, po wielu testach wyniki w ponad 90% pokrywają się z
wynikami firmo wego programu do optymalizacji urucho mionego na maksymaln ie 5 sekund (program ten szuka
rozwiązań n ieskończenie długo) na stosunkowo szybkim ko mputerze. Oto opis działan ia algoryt mu w skrócie:
1.
2.
3.
4.
Największą format kę u mieść w lewy m górnym rogu arkusza.
Dokonaj cięcia arkusza po krawęd zi wstawionej format ki tak aby stworzyć jak
najmniejszy i jak największy prostokąt.
Wybierz największy z otrzy manych prostokątów i wstaw w jego lewy m górnym rogu
największą dostępną format kę po czy m dokonaj cięcia wg powy ższego punktu
Postępuj tak aż do wyczerpania formatek użytko wnika lub zu życia wszystkich
dostępnych arkuszy.
Algorytm ten znajduje rozwiązanie problemu optymalizacji w czasie od 1 do 3 sekund co jest do przyjęcia.
IV. Podsumowanie.
Obecne technologie projektowania stron WWW umożliwiają tworzen ie aplikacji przeglądarkowych
dorównujących pod względem s zybkości oraz funkcjonalności zwy kły m narzęd zio m dostępnym lokalnie na
ko mputerze. Dzięki zastosowaniu AJAX wy miana danych międ zy przeg lądarką a serwerem n ie musi już
oznaczać oczekiwan ia przed białą, ładującą się stroną, teraz wszystko mo że odbywać się w tle a u żytkownik
mo że kontynuować np. lekturę wyświetlonego dokumentu. Podkreślić t rzeba jeszcze prostotę oraz intuicyjność
języka PHP, d zięki któremu tworzen ie zaawansowanych aplikacji bazodanowych staje się niezmiernie p roste.
W tym mo mencie sklep funkcjonuje w sieci pod adresem http://www.delta.elb lag.pl/sklep.php , na
bieżąco jest poprawiany i uaktualn iany o zastrzeżenia użytko wników oraz pracown ikó w firmy . Główny m
problem jest zastosowanie w nim technologii, które n iestety nie działają w starszych przeglądarkach
internetowych, np. Internet Exp lorer 6, którego wciąż u żywa 9% internautów. W przyszłości jest planowane
powiązanie go z firmo wy m systeme m zarządzania stanami magazynowymi aby nie trzeba było wprowadzać
danych ręcznie poprzez panel ad min istracyjny.
- 2-