6. Parametry & Personalizacja Kurs WebML 6. Parametry & Personalizacja Copyright © Politecnico di Milano March 2003 Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Plan T.O.C. Parametry kontekstowe Idea przynależności użytkowników do grup Kontrola dostępu Personalizacja treści Poniższy moduł zawiera przegląd zagadnień związanych z projektowaniem aplikacji, modelami WebML oraz narzędziami. Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Parametry Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Informacje globalne Często jest potrzebne Ustawienie wartości parametru (np. kraju lub preferowanego przez użytkownika języka) Użycie tej wartości na wszystkich stronach widoku stron bez konieczności jej jawnego przekazywania linkami Rozwiązanie Użycie parametrów globalnych przechowywanych w sesji Dostarczenie sposobu ustawiania i pobierania (set/get) ich wartości Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Parametry kontekstowe Parametry kontekstowe (Context Parameters) WebML pozwalają osiągnąć ten cel w prosty sposób Projektant definiuje jeden lub więcej parametrów kontekstowych Parametr kontekstowy charakteryzuje Nazwa (Name) Identyfikator (ID) Czas trwania (Duration) (sesja użytkownika lub aplikacji) Typ wartości (Value type) Typy integer, string, … Encja (wtedy parametr przyjmuje wartość identyfikatora tej encji) Wartość początkowa (Starting value) [opcjonalnie] Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Komponent set unit Komponent umożliwiający ustawienie (SET) wartości parametru Jest zawsze umieszczony poza obszarem strony Posiada tylko jeden link przychodzący (przenosi wartość, która jest przypisywana do parametru) Nie ma linków wychodzących Value/OID ParamName Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Komponent get unit Komponent umożliwiający pobranie (RETRIEVE) wartości parametru Jest zawsze umieszczony wewnątrz obszaru strony Posiada tylko jeden link wychodzący (przenosi wartość pobraną z parametru) Nie ma linków przychodzących Pobrana wartość może zostać przekazana do dowolnego kompatybilnego z nią komponentu Value/OID ParamName Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Przykład Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Personalizacja Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Problem Typowe aplikacje internetowe zarządzające chronioną treścią wymagają Jednej lub więcej stron ogólnie dostępnych do odczytu Zbioru zastrzeżonych stron zawierających spersonalizowaną treść i usługi, do których dostęp może zostać uzyskany wyłącznie po zalogowaniu Personalizacji rozpatrywanej w kategoriach dostarczanych stron (do jakich stron może uzyskać dostęp użytkownik) oraz dostarczanej treści (do jakich treści powinien/może uzyskać dostęp użytkownik) Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Personalizacja Trzy aspekty personalizacji Kontrola dostępu: operacje login/logout służące rozpoznaniu użytkownika Przypisanie widoku stron: udzielenie dostępu do pewnych widoków stron, bazujące na przynależności użytkownika do grupy użytkowników (jedna grupa może uzyskać dostęp do jednego lub więcej widoków stron) Personalizacja stron: uzależnienie wyświetlanej treści od użytkownika lub grupy użytkowników Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Idea przynależności użytkowników do grup MODEL Każdy użytkownik (User) może należeć do jednej lub więcej grup użytkowników (Group) Encje User i Group są predefiniowane w modelu danych Każdy użytkownik ma domyślną grupę użytkowników Każda grupa użytkowników może zawierać jednego lub więcej użytkowników oraz może być domyślną grupą dla wielu użytkowników User Group 1:N 1:1 user2group user2defaultGroup Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Schemat personalizacji * MODEL Każdy użytkownik może należeć do jednej lub więcej grup (predefiniowane encje w modelu danych) Każdy użytkownik ma swoją grupę domyślną Każda grupa jest powiązana z jednym widokiem stron User Group 1:N 1:1 SiteView user2group user2defaultGroup *Przypis tłumacza: Obecnie encja SiteView nosi nazwę Module i może zawierać dowolny element bądź zbiór elementów oznaczonych jako chronione (nie tylko widoki stron). Ponadto grupa posiada swój domyślny moduł. Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Anonimowy dostęp MODEL Jest predefiniowana jedna grupa (wszyscy użytkownicy) Użytkownicy należący do tej grupy nie muszą się logować i otrzymują dostęp wyłącznie do niechronionych widoków stron aplikacji, które realizują ogólnie dostępną funkcjonalność Pozostałe widoki stron są dostępne wyłącznie po zalogowaniu (chronione widoki stron) Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Login/Logout MODEL Widok stron może zawierać stronę umożliwiającą użytkownikom logowanie do aplikacji Każdy chroniony widok stron powinien umożliwiać wylogowanie z aplikacji Dozwolone jest dynamiczne przełączanie pomiędzy użytkownikami i grupami Entry Unit Login Logout ChangeGroup Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Logowanie użytkowników należących do wielu grup MODEL Logowanie użytkowników należących do wielu grup Jeśli użytkownik należy do więcej niż jednej grupy użytkowników, to w momencie logowania jest traktowany jako członek swojej grupy domyślnej (defaultGroup) Po zalogowaniu są przechowywane aktualne informacje o użytkowniku i jego grupie Username Password Login johnlee *********** User: johnlee Group: johnleeDefaultGroup Login Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
CurrentUser i CurrentGroup MODEL CurrentUser i CurrentGroup Każdy projekt WebML ma dwa predefiniowane parametry globalne CurrentUser: OID aktualnie zalogowanego użytkownika CurrentGroup: OID grupy aktualnie zalogowanego użytkownika Operacje Login i Logout automatycznie aktualizują (set/unset) te dwa parametry Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Personalizacja strony (użytkownik) MODEL Personalizacja strony (użytkownik) Personalizacja może zostać osiągnięta dzięki budowie odpowiedniego modelu danych articles user preference Model hipertekstowy jest rozszerzeniem modelu danych, w związku z tym umożliwia personalizację Parametr CurrentUser przechowuje identyfikator zalogowanego użytkownika, co umożliwia wyświetlenie ulubionych artykułów użytkownika user article [preference] Recommendations CurrentUser Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Zarządzanie koszykiem Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Personalizacja strony (użytkownik) MODEL Personalizacja strony (użytkownik) Personalizacja może zostać osiągnięta dzięki budowie odpowiedniego modelu danych slot user reservation Model hipertekstowy jest rozszerzeniem modelu danych, w związku z tym umożliwia personalizację UserCtxParam zawiera identyfikator zalogowanego użytkownika, co pozwala na wyświetlenie jego rezerwacji Personal Reservations UserCtxParam entity:user rel:reservation Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Personalizacja strony (Grupa) MODEL Personalizacja strony (Grupa) Personalizacja może zostać dokonana również na poziomie grupy (ponieważ widok stron może obsługiwać wiele grup) Author Book Category User Group interesting Preferred categories Authors GroupCtxPar Group relation:g2c Category relation:c2a Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Źródła “Building data-intensive Web applications.” By Stefano Ceri, Piero Fraternali, Aldo Bongio, Marco Brambilla, Sara Comai, Maristella Matera, will be published by Morgan-Kaufmann (Jim Gray’s series), December 2002. www.webml.org WebML resources (papers, manuals, …) Web modeling compendium & bibliography www.webratio.com Tool can be downloaded for academic use Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska KONIEC Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com