Pobierz artykuł
Transkrypt
Pobierz artykuł
Tworzenie portali internetowych oparte na przykładzie lokalnego serwisu internetowego WWW.XQ.PL Marcin Miotk Państwowa Wyższa Szkoła Zawodowa w Krośnie Streszczenie Celem referatu jest opisanie przebiegu tworzenia lokalnego serwisu internetowego oraz przekazanie czytelnikom cennych uwag, które okażą się przydatne podczas tworzenia podobnych aplikacji internetowych. Autor proponuje przemyślany model bazy danych, na którym opiera się aplikacja sterująca działaniem serwisu internetowego. Obrany model danych jest efektem pogodzenia ze sobą kilku najważniejszych czynników związanych z zespołowym tworzeniem ciągle rozwijającego się internetowego medium informacyjnego. Należą do nich przede wszystkim: perspektywa nieprzewidzianego rozwoju serwisu, prędkość, w jakiej należy wprowadzać kolejne zmiany w serwisie oraz konieczność szybkiego tworzenia kolejnych podserwisów internetowych różniących się od siebie nie tylko szatą graficzną, ale również sposobem interpretowania i prezentowania informacji zamieszczonych w serwisie internetowym. Summary of the report The idea of this report was to describe the way of creation local Internet services (portals) and give the readers valuable advices, which turn out to be useful while creation similar Internet applications. In this report, the author suggests well considered model of database, on which the running application of portal is based. The data model is the effect of compatibility of several important factors which are connected with team work creation, constantly developing informative medium of Internet. The most important are: - the perspective of unpredictable development of the portal, - the speed in which the following changes in portal should be made, - the necessity of quickly creation another Internet subservices, which differ in one from the other not only the graphics design, but also the way the information is interpreted and presented. Spis treści 1. 2. 3. 4. 5. 6. 7. 8. Geneza powstania krośnieńskiego serwisu internetowego. Wymagania stawiane przed projektantem serwisu. Dobór narzędzi, którymi posługuje się projektant podczas tworzenia serwisu. Zaproponowany model danych, na którym opiera się aplikacja. Struktura aplikacji sterującej działaniem serwisu internetowego. Perspektywy rozwoju zaprojektowanego serwisu internetowego. Zespół redakcyjny serwisu omawianego w referacie. Literatura polecana. Geneza powstania krośnieńskiego serwisu internetowego Redakcja krośnieńskiego serwisu internetowego, zlokalizowanego pod adresem internetowym WWW.XQ.PL, została powołana przez samorząd studencki Państwowej Wyższej Szkoły Zawodowej w Krośnie. Portal zaistniał w Internecie przy pomocy krośnieńskiej firmy komputerowej Inter-Komp, która zapewniła redakcji serwery sieciowe, domenę internetową oraz łącze internetowe o przepustowości 2 Mb/s. Celem lokalnego serwisu internetowego jest przede wszystkim utworzenie wirtualnej wizytówki nie tylko miasta Krosna, ale również samych studentów, którzy podejmują się tworzenia lokalnego medium informacyjnego. Tworzony portal studencki od początku swojego istnienia cieszy się dużą popularnością mieszkańców Krosna i okolic. Obecnie w redakcji pracują jedynie ochotnicy, którzy pragną wykorzystać swoje umiejętności w praktyce i już w czasie prowadzenia studiów zamierzają zdobyć cenne doświadczenie zawodowe. Celem redakcji jest również utworzenie atrakcyjnego miejsca przyszłych praktyk dla studentów Państwowej Wyższej Szkoły Zawodowej w Krośnie. Lokalne internetowe medium informacyjne stwarza wiele możliwości dla pomysłowej młodzieży. Omawiany portal internetowy istnieje w Internecie od 6 grudnia 2004r. Z miesiąca na miesiąc cieszy się coraz większą popularnością wśród mieszkańców Krosna i okolic. W marcu 2005r, statystyki wskazały średnio na 17 000 odwiedzin miesięcznie. Redakcja spodziewa się, że w ciągu roku, portal rozwinie się do tego stopnia, że stanie się jednym z największych i najważniejszych lokalnych mediów informacyjnych. 115 Rys 1. Zrzut ekranu przedstawiający główną stronę omawianego serwisu internetowego Wymagania stawiane przed projektantem serwisu. Wstępne założenia: 1. Dla redakcji ważniejszy od architektury aplikacji jest czas jej pojawienia się na rynku. 2. Aplikacja korzysta z jednej bazy danych. 3. System bazy danych jest rozmieszczony na dwóch serwerach: serwer bazy danych oraz serwer WWW, zawierający warstwę aplikacyjną. 4. Rozmiar bazy w czasie użytkowania aplikacji będzie się powiększał. Baza będzie się rozrastała w czasie 116 5. Wymagania redakcji są ustalone, ale istnieje prawdopodobieństwo ich rozszerzenia. 6. Po wdrożeniu aplikacji, spodziewana jest jej pielęgnacja oraz ewentualne zmiany. 7. Wskazane jest, aby tworzenie oraz utrzymywanie aplikacji nadzorującej działaniem serwisu, odbywało się przy użyciu darmowego oprogramowania. Oczekiwania redakcji odnośnie serwisu internetowego: 1. Lokalny serwis internetowy powinien zawierać takie elementy jak: - mechanizm obsługujący katalogowanie oraz prezentację artykułów i aktualności, zarządzany przez redakcję portalu, - forum dyskusyjne i galerie zdjęć, - tablicę ogłoszeń rozszerzoną o mechanizm obsługi aukcji internetowych, - katalog stron internetowych - sonda i konkursy internetowe, - mechanizm zarządzania reklamami (bannerami) - moduł obsługujący konta użytkowników, ich logowania oraz prawa dostępu do poszczególnych zasobów. 2. Informacje w serwisie powinny być przedstawiane za pomocą różnych szablonów. Redakcja po przygotowaniu szablonów i odpowiedniej szaty graficznej do nowego podserwisu, chciałaby wdrożyć je w szybkim tempie. Również sam odwiedzający powinien mieć możliwość przełączania szaty graficznej portalu wedle własnych upodobań (redakcja przygotuje zestaw kilku opcjonalnych szablonów dla każdego podserwisu). 3. Panele administracyjne dla każdego redaktora powinny być łatwe w obsłudze. Oprogramowanie serwisu powinno uwzględniać prawa dostępu danego użytkownika do każdego zasobu. Administratorzy poszczególnych katalogów serwisu decydują o tym, kto może dodawać, usuwać i modyfikować zasoby znajdujące się w danym katalogu. Każdy zasób serwisu ma swojego właściciela i grupę redaktorów mających prawa własności do danego zasobu. Każdy redaktor może być przedstawiany za pomocą kilku różnych pseudonimów. 4. Internauci odwiedzający strony serwisu mogą posiadać własne konta, które dadzą im możliwość m.in. wypowiadania się na forum dyskusyjnym, zamieszania własnych ogłoszeń, brania udziału w konkursach oraz wysyłania prywatnych wiadomości do innych internatów,. Dobór narzędzi, którymi posługuje się projektant podczas tworzenia serwisu Ustalone wcześniej wymagania sugerują użycie przez projektanta serwisu następujących narzędzi: Serwer bazy danych MySQL ver. 3.23.43 Serwer WWW Apache/1.3.22 System operacyjny Linux Slackware 8.0 Język programowania PHP/4.1.1 Program graficzny GIMP Biblioteka (dla PHP) ułatwiająca obsługę Smarty-2.6.7 szablonów stron internetowych Projektant wykona aplikację internetową przy pomocy języka PHP, ponieważ jest to najpopularniejszy i bardzo łatwy język skryptowy przeznaczony do tworzenia tego typu 117 aplikacji. Wykorzystanie języka PHP jest rozwiązaniem wolnym od dodatkowych opłat. Obsługa skryptów napisanych w języku PHP jest możliwa niemal na każdym serwerze WWW. Biblioteka o nazwie Smarty, ułatwi oddzielenie kodu aplikacji od kodu HTML serwisu internetowego. Dzięki temu aplikacja pozwoli nie tylko na łatwe przełączanie szat graficznych dla poszczególnych podserwisów internetowych, ale także poszerzy perspektywy rozwoju portalu internetowego. Zaproponowany model danych, na którym opiera się aplikacja xqp_aplikacja xqp_status xqp_uzytkownik ID_APLIKACJA ID_STATUS nazwa ID_APLIKACJA xqp_sesja ID_UZYTKOWNIK ID_SESJA login ID_UZYTKOWNIK haslo ip ID_STATUS data_ost_akt opis id_php_prog xqp_statystyka xqp_pseudonim xqp_logowanie ID_STATYSTYKA ID_PSEUDONIM ID_PSEUDONIM ID_UZYTKOWNIK ID_KRYTERIUM pseudonim wartosc ID_LOGOFORUM xqp_daneuzytkownik ID_LOGOWANIE ID_UZYTKOWNIK ID_UZYTKOWNIK mail data_logowania data_logowania ip ID_SZABLONFORUM max_pseudonimow ID_STATUS xqp_logoforum xqp_szablon xqp_kryterium ID_LOGOFORUM ID_SZABLON ID_KRYTERIUM nazwa_logo nazwa_szablon nazwa_kryterium nazwa_pliku nazwa_pliku id_php_prog id_php_prog xqp_wiadomosc xqp_powiazanie_up xqp_grupa_up ID_WIADOMOSC ID_POWIAZANIE_UP ID_GRUPA_UP ID_GRUPA_UP nazwa_grupa ID_PSEUDONIM ID_STATUS ID_PSEUDONIM_1 (odbiorca) ID_PSEUDONIM_2 (nadawca) data_dodania xqp_kodbledu temat xqp_powiazanykatalog ID_KODBLEDU tresc ID_POWIAZANIE nazwa ID_STATUS ID_PSEUDONIM opis_plik ID_KATALOG 118 xqp_katalog xqp_powiazanie xqp_pozycjazlaczekatalog ID_KATALOG ID_POWIAZANIE ID_ZLACZA ID_APLIKACJA ID_KATALOG_1 ID_KATALOG ID_PSEUDONIM ID_KATALOG_2 ID_POZYCJA ID_GRUPA_UP ID_KRYTERIUM ID_KRYTERIUM ID_SZABLON wartosc wartosc ID_STATUS data_dodania nazwa xqp_pozycjaczesci xqp_pozycjakatalog ID_POZYCJA ID_APLIKACJA ID_PSEUDONIM ID_GRUPA_UP ID_SZABLON ID_STATUS nazwa stopka xqp_odpowiedzi_forum xqp_czescidodatek ID_CZESCI ID_DANYCH_CZESCI ID_POZYCJA data_akt ID_SZABLON slowa_kluczowe ID_STATUS ID_CZESCI nrkolejnosci nazwa xqp_czesc_skryptphp komentarz ID_SKRYPT tresc ID_CZESCI data_dodania sciezka xqp_relacjapost ID_ODPOWIEDZ ID_RELACJA ID_POZYCJA_1 nazwa ID_POZYCJA_2 ID_RELACJA Struktura aplikacji sterującej działaniem serwisu internetowego WartosciStale.php Silnik.php Bledy.php Moduł WartosciStale zawiera takie wartości stałe dla danego portalu internetowego, jak adres pliku konfiguracyjnego, adres portalu, kody błędów, identyfikatory grup poszczególnych statusów zasobów, nazwy tabel w bazie danych, ścieżki zasobów (np. do plików graficznych, szablonów HTML i innych plików). Moduł Silnik zawiera funkcje obsługujące szablony prezentacyjne portalu. Wraz z modułem Silnik współpracuje moduł Bledy, który przed wyprowadzeniem danych analizuje błędy będące wynikiem próby nieuprawnionego dostępu do zasobów, nieprawidłowego zapytania otrzymanego przez aplikację lub wystąpienia nieprzewidzianego błędu w czasie działania 119 aplikacji. Aplikacja ma ustaloną tablicę kodów błędów, na podstawie, której może pobrać dokładne informacje o zaistniałych problemach. DaneKontrola.php FunkcjeGlowne.php ObslugaModeluDanych.php ModelUzytkownikSesjaPseudonim.php ModelKatalogPozycja.php Moduł DaneKontrola odpowiada za kontrolę poprawności danych wejściowych aplikacji (dane wejściowe to informacje przesłane do aplikacji metodą GET lub POST). Moduł FunkcjeGlowne odpowiada za uruchomienie odpowiedniej podaplikacji portalu internetowego. Doboru dokonuje na podstawie parametrów „ap” i „w” ($HTTP_GET_VARS[„ap”] oraz $HTTP_GET_VARS[„w”]), które przesyłane są wraz z zapytaniem klienta. Moduł ModelUzytkownikSesjaPseudonim zawiera funkcje obsługi kont użytkowników, aktualnych sesji (rejestracja logowań użytkowników, statystyki) oraz pseudonimów użytkowników. Moduły ObslugaModeluDanych oraz ModelKatalogPozycja zawierają funkcje odpowiadające za interpretacje danych wyprowadzanych i wprowadzanych do bazy danych. Niemal wszystkie zasoby portalu magazynowane są w bazie danych jako „pozycje” o odpowiednim statusie, który informuje o sposobie interpretacji danej pozycji. Każda pozycja może być umieszczona w różnych katalogach, z kolei każdy katalog może być powiązany z innymi katalogami. Tak powstała struktura katalogowa tworzy rozbudowany serwis internetowy, w którym katalogi mogą być interpretowane jako np. tematy dyskusji, grupy artykułów, galerie zdjęć, natomiast pozycje - jako wypowiedzi internatów, artykuły, aktualności oraz ścieżki dostępu wraz opisami zdjęć itp. BazaDanych.php AplikacjaPodstawowa.php AplikacjaArtykuly.php AplikacjaForum.php AplikacjaKatalogWWW.php AplikacjaGalerie.php AplikacjaOgloszenia.php AplikacjaAukcje.php Powyższe moduły zawierają funkcje, które w odpowiedni sposób interpretują oraz prezentują dane pobrane z bazy danych. Każda aplikacja może na różne sposoby interpretować dane o tej samej strukturze. Funkcje wchodzące w skład tych modułów korzystają z wcześniej skonstruowanych modułów odpowiadających za komunikację z bazą danych oraz przetwarzanie szablonów prezentacyjnych. Na tym poziomie, moduły nie interesują się strukturą bazy danych, na której oparta jest aplikacja. Perspektywy rozwoju zaprojektowanego serwisu internetowego Przed utworzonym serwisem internetowym stoi obecnie wiele zadań. W większości trudno jest przewidzieć, jak będzie przebiegał rozwój omawianego portalu pod względem merytorycznym. W obecnej fazie rozwoju, głównym celem redakcji i projektanta jest przyciągnięcie jak największej liczby Internatów, systematycznie odwiedzających serwis. Projektant serwisu przewiduje: - udoskonalenie mechanizmów przyspieszających administrację serwisem, by maksymalnie odciążyć redakcję od informatycznej strony projektowania nowych podserwisów. Redaktor powinien mieć możliwości szybkiego doboru najodpowiedniejszego szablonu (szaty graficznej) do publikowanych informacji, 120 - wzbogacenie zbioru gotowych szablonów prezentacyjnych, - uruchomienie serwisu internetowej rozrywki, w którym mają pojawiać się gry i programy rozrywkowe utworzone na przykład przy pomocy języka Java, - przystosowanie architektury portalu do sprawnego obsłużenia ogromnej ilości danych, które staną się kilkuletnim dorobkiem redakcji, - zaprojektowanie serwisu przy pomocy innych, nowocześniejszych rozwiązań informatycznych, ciekawym pomysłem jest próba zastąpienia prostego języka skryptowego PHP nowoczesnym i obiektowym językiem Java, - utworzenie serwisu edukacyjnego oraz „Wirtualnej Uczelni”, której celem będzie wykorzystanie Internetu do nauczania na odległość, - przystosowanie portalu do prowadzenia e-biznesu, co wymusza na projektancie maksymalną poprawę aspektów bezpieczeństwa informacji, - instalacja kamer internetowych monitorujących atrakcyjne miejsca w Krośnie. W chwili obecnej redakcja przy pomocy sponsorów zamontowała 4 kamery obejmujące kadrem płytę krośnieńskiego rynku. W przyszłości zamierza się wykorzystać technologię radiową do transmisji obrazu z innych punktów miasta i okolicy. Zespół redakcyjny serwisu omawianego w referacie Krośnieński Serwis Internetowy XQ.PL Redaktor naczelny Mateusz Nowak Fotoedycja Justyna Kurczak Redaktorzy Jakub Gromek Marcelina Kluk Angelika Menet Andrzej Pietrzyński Justyna Stachoń Sławomir Stefański Grzegorz Wiech Projektant i programista serwisu XQ.PL Marcin Miotk Grafika Wiktor Szczypka Administrator serwera Maciej Cisek Literatura polecana 1) „Podręcznik PHP”, Copyright 2003, the PHP Documentation Group (http://www.php.net) 2) “MySQL Reference Manual” (http://www.mysql.org) 3) “Smarty Manual” Monte Ohrt, Andrei Zmievski, Copyright 2001-2005 New Digital Group, (http://smarty.php.net/) 4) “HTML 4 Specification References” W3C Recommendation 24 December 1999 (http://www.w3.org) 5) “JDK 5.0 Documentation” (http://java.sun.com/docs/) 121