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-