Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Copyright © Politecnico di Milano

Podobne prezentacje


Prezentacja na temat: "Copyright © Politecnico di Milano"— Zapis prezentacji:

1 Copyright © Politecnico di Milano
Kurs WebML 3. Hipertekst Copyright © Politecnico di Milano March 2003 Translation: Kamil Żyła, Politechnika Lubelska

2 Model hipertekstowy: istota
Cele Wysokopoziomowe modelowanie działania dynamicznych aplikacji internetowych (interakcja z użytkownikiem, logika biznesowa, operacje bazodanowe) Wykorzystanie prostej wizualnej notacji Umożliwienie automatycznego generowania dynamicznych szablonów stron oraz kodu odpowiedzialnego za operacje na danych oraz dostęp do danych Translation: Kamil Żyła, Politechnika Lubelska

3 Model hipertekstowy: pytania
Q1: Do jakich obszarów strony może uzyskać dostęp użytkownik? Q2: Jakie porcje modelu hipertekstowego są prezentowane użytkownikowi aplikacji? Q3: Co jest odpowiedzialne za publikację treści w węzłach modelu hipertekstowego? Q4: Jak są połączone węzły modelu hipertekstowego? A1: widoki stron A2: strony A3: komponenty danych A4: linki Translation: Kamil Żyła, Politechnika Lubelska

4 Podstawowe komponenty danych
MODEL Podstawowe komponenty danych DATAUNIT INDEXUNIT MULTIDATAUNIT Treść (dane): instancje encji Selektor: warunek wyboru instancji encji entity [Selector] entity [Selector] entity [Selector] ENTRYUNIT SCROLLERUNIT MULTICHOICE HIERARCHICAL entity [Selector] entity [Selector] entity [Selector] Translation: Kamil Żyła, Politechnika Lubelska

5 Renderowanie komponentów danych
MODEL Renderowanie komponentów danych DATAUNIT INDEXUNIT MULTIDATAUNIT Author first name:XXX last name:YYY photo: Index of Authors S. Ceri P. Fraternali O.Versand All Authors ENTRYUNIT SCROLLERUNIT MULTICHOICE HIERARCHICAL Insert Your Data Fname Lname Browse Authors 5/12: go to    1/12 Choose Authors Ceri Fraternali Versand Books&Authors 1. Web Applicat. Ceri Fraternali 2. Systems Tannenbaum Translation: Kamil Żyła, Politechnika Lubelska

6 Translation: Kamil Żyła, Politechnika Lubelska
Komponenty danych MODEL Komponent WebML jest atomowym elementem publikującym informacje Komponent jest pojemnikiem zawierającym obiekty Wszystkie instancje encji Instancje encji, które spełniają warunek wyboru nazywany selektorem unitX container Translation: Kamil Żyła, Politechnika Lubelska

7 Wejścia i wyjścia komponentu
MODEL Wejścia i wyjścia komponentu unitX entity [selector (par 1, .., parN)] WE WY Komponent może potrzebować tzw. kontekstu, aby zostać przetworzonym Każdy komponent posiada parametry wejściowe i wyjściowe Parametry potrzebne do przetworzenia komponentu Predefiniowane dla komponentu parametry + Pozostałe parametry wymagane przez selektor komponentu Wyjściowe parametry komponentu mogą zostać wykorzystane do przetworzenia zależnych od niego komponentów Translation: Kamil Żyła, Politechnika Lubelska

8 Nawigacja: linki kontekstowe
MODEL Nawigacja: linki kontekstowe Author Author source unit target unit Link kontekstowy jest skierowanym połączeniem pomiędzy dwoma komponentami (źródłowym – source unit i docelowym – target unit), renderowanym jako kotwica lub przycisk wysyłający formularz Zadania linków kontekstowych Umożliwienie użytkownikowi przemieszczania z jednego miejsca do drugiego Transportowanie informacji z jednego miejsca do drugiego Inicjowanie przetwarzania (efekt uboczny) Translation: Kamil Żyła, Politechnika Lubelska

9 Przykład połączenia komponentów
MODEL Przykład połączenia komponentów Którego autora książki? Która książka? p2 p3 p1 Author [OID=p1] Book [author2book(p2)] Book [OID=p3] Author first name:James last name:Joyce photo: Books of YYY Ulysses The Dubliners Portrait... Book Title:Ulysses Price:23$ Cover: Translation: Kamil Żyła, Politechnika Lubelska

10 Translation: Kamil Żyła, Politechnika Lubelska
Parametry linków MODEL Author param Book [Author2Book(param)] Kontekst jest transportowany przy użyciu parametrów linku Parametr linku jest określany przez Nazwę Źródło: jeden z parametrów wyjściowych komponentu źródłowego Cel: jeden z parametrów wejściowych komponentu docelowego Translation: Kamil Żyła, Politechnika Lubelska

11 Domyślne parametry linku
MODEL Domyślne parametry linku Gdziekolwiek to możliwe, parametry linków są wnioskowane na podstawie diagramu i nie wymagają jawnej specyfikacji Diagramy stają się bardziej czytelne i proste Przykład Book [Author2Book] Author Translation: Kamil Żyła, Politechnika Lubelska

12 Translation: Kamil Żyła, Politechnika Lubelska
MODEL Domyślne selektory Gdziekolwiek to możliwe, selektory i ich parametry są wnioskowane na podstawie modelu i nie wymagają jawnej specyfikacji Przykład Book [author2book] Author Book Translation: Kamil Żyła, Politechnika Lubelska

13 Translation: Kamil Żyła, Politechnika Lubelska
MODEL Linki automatyczne Author Author source unit target unit A Link automatyczny, natychmiast po wyświetleniu komponentu źródłowego, przekazuje do komponentu docelowego, bez interwencji użytkownika, pewien domyślny kontekst Następnie użytkownik może zmienić przesłany kontekst poprzez wybór innego obiektu (wskazywany przez kotwicę reprezentującą link) Translation: Kamil Żyła, Politechnika Lubelska

14 Translation: Kamil Żyła, Politechnika Lubelska
MODEL Linki transportowe source unit target unit Book [Author2Book] Author Link transportowy posiada określony kontekst, który jest przekazywany niezwłocznie po wyświetleniu komponentu źródłowego, bez interwencji użytkownika Użytkownik nie może zmienić przekazywanego kontekstu, w związku tym ten link nie jest renderowany jako kotwica Translation: Kamil Żyła, Politechnika Lubelska

15 Translation: Kamil Żyła, Politechnika Lubelska
MODEL DataUnit params OID Entity [selector(params)] Data unit Publikuje informacje dotyczące WYŁĄCZNIE JEDNEJ INSTANCJI Komponent posiada opcjonalny selektor (wymagana jednoznaczna identyfikacja pojedynczej instancji) Wejście OID obiektu, który ma zostać opublikowany, LUB Parametry wymagane do przetworzenia selektora m.in. Wartości atrybutów OID obiektu powiązanego relacją z przetwarzanym obiektem Wyjście OID publikowanego obiektu oraz jego atrybuty Translation: Kamil Żyła, Politechnika Lubelska

16 ACME: data unit na stronie ze szczegółami produktu
RUNNING CASE ACME: data unit na stronie ze szczegółami produktu Product Informacje o jednym specyficznym produkcie Translation: Kamil Żyła, Politechnika Lubelska

17 Translation: Kamil Żyła, Politechnika Lubelska
MODEL Przykłady Brak selektora i linków przychodzących: niepoprawny komponent! p1 EntityB Parametr wejściowy: OID powiązanego obiektu: zostanie pokazany powiązany relacją obiekt A.oid B.oid EntityB [Relationship(A2B)] Parametr wejściowy: wartość do wykorzystania przez selektor: zostanie pokazany obiekt spełniający warunek wyboru Nawet jeśli projektant wykorzystuje wyłącznie notację graficzną, model WebML jest definiowany przez XML DTD, stąd każdy projekt jest przechowywany jako plik XML. param1 B.oid EntityB [B.attr = param1] Translation: Kamil Żyła, Politechnika Lubelska

18 Translation: Kamil Żyła, Politechnika Lubelska
MODEL IndexUnit selectedOID params Entity [Selector(params)] Index unit: Publikuje listę instancji encji (ZBIÓR OBIEKTÓW) Komponent posiada opcjonalny selektor Parametry wejściowe potrzebne do przetworzenia selektora Wartości do porównania z atrybutami OID powiązanego relacją obiektu Parametr wyjściowy OID obiektu wybranego przez użytkownika Translation: Kamil Żyła, Politechnika Lubelska

19 Translation: Kamil Żyła, Politechnika Lubelska
MODEL Przykłady EntityB selOID (B) Brak linków wejściowych: zostaną pokazane wszystkie obiekty Parametr wejściowy: OID obiektu źródłowego powiązanego relacją: zostaną wyświetlone wszystkie obiekty powiązane relacją sourceOID (A) selOID (B) EntityB [Relationship(A2B)] Parametr wejściowy: wartość do porównania z atrybutem: zostaną wyświetlone obiekty spełniające warunek Nawet jeśli projektant wykorzystuje wyłącznie notację graficzną, model WebML jest definiowany przez XML DTD, stąd każdy projekt jest przechowywany jako plik XML. Param1 selOID (B) EntityB [B.attr = Param1] Translation: Kamil Żyła, Politechnika Lubelska

20 ACME: index unit na stronie z produktami
RUNNING CASE ACME: index unit na stronie z produktami selOID Product Użytkownikowi zostaje wyświetlona lista wszystkich produktów Użytkownik może wyświetlić dalsze informacje po kliknięciu na element listy Translation: Kamil Żyła, Politechnika Lubelska

21 Translation: Kamil Żyła, Politechnika Lubelska
MODEL MultiDataUnit params {OIDs} Entity [Selector(params)] Multidata unit Prezentuje wiele instancji encji (ZBIÓR OBIEKTÓW) Komponent posiada opcjonalny selektor Parametry wejściowe potrzebne do przetworzenia selektora Wartości do porównania z atrybutami OID obiektów powiązanych relacją Parametr wyjściowy Zbiór OID opublikowanych obiektów Translation: Kamil Żyła, Politechnika Lubelska

22 Translation: Kamil Żyła, Politechnika Lubelska
MODEL MultiData vs Index MultiData czy Index? Listy (Indexes) mogą być użyte jako mechanizm dostępu do szczegółowych informacji o obiekcie Multidata Units publikują w tym samym czasie informacje o wielu obiektach Różnica jest w parametrach wyjściowych Listy (Indexes) mają na wyjściu pojedynczy identyfikator (OID) wybranego obiektu Multidata units mają na wyjściu identyfikatory (OID) wszystkich wyświetlonych obiektów Translation: Kamil Żyła, Politechnika Lubelska

23 Entry Unit (Formularz)
MODEL Entry Unit (Formularz) params Komponent reprezentuje formularz umożliwiający przesłanie informacji przez użytkownika Treść jest przekazywana do innych komponentów poprzez parametry wychodzących linków (zazwyczaj jeden link) Jest zazwyczaj reprezentowany w HTML przy użyciu znacznika <form> oraz przycisku submit Formularz pozwala projektantowi wybrać urządzenie do zbierania informacji od użytkownika. Wychodzący link formularza przenosi informacje wprowadzone przez użytkownika do kolejnego komponentu, w celu ich przetworzenia. Translation: Kamil Żyła, Politechnika Lubelska

24 Formularze i pola wyboru
MODEL Formularze i pola wyboru Formularz zawiera dwa typy widgetów do wprowadzania danych Pola tekstowe do wprowadzania nowych wartości Pola wyboru do wybierania wartości z listy Pola mają właściwości Preloading (umożliwia wstawienie do pola istniejącej wartości) Modifiability (określa, czy użytkownik ma prawo edytować zawartość pola) Visibility (określa, czy pole ma być ukryte – hidden) Typ danych (string, integer, text, itp.) Reguły walidacyjne Są trzy typy pól formularza: In – używane kiedy użytkownik wprowadza dane do pustego pola. Out – używane gdy do pola wstawiono istniejącą wartość i użytkownik nie może jej zmodyfikować. Inout - używane gdy do pola wstawiono istniejącą wartość i użytkownik może ją zmodyfikować. Translation: Kamil Żyła, Politechnika Lubelska

25 Bruce Springsteen “the boss”
MODEL Pola typu „Preloaded” W pole może być wstawiona wartość lub wartości Gniazda (slots) pozwalają na konkatenację wielu wartości w ramach tego samego pola Gniazda mogą zawierać wartości dynamiczne (pobierane z bazy danych) lub statyczne (zdefiniowane w modelu) Do pola wyboru należy wstawić zbiór instancji (może być wiele gniazd w ramach jednej instancji) Użytkownik wybiera instancję spośród wyświetlonych EntryUnit S1 S2 S3 PersonField AddrField Artist FirstName  PF.S1 LastName  PF.S2 NickName  PF.S3 Resulting field Bruce Springsteen “the boss” PersonField Na slajdzie przedstawiono przykład formularza z dwoma polami typu ‘IN’ – name, . Kiedy użytkownik wciśnie przycisk OK, dane wejściowe zostaną wysłane do komponentu (zazwyczaj komponent operacyjny) wskazanego przez link wychodzący. Translation: Kamil Żyła, Politechnika Lubelska

26 [Preselector(params)]
MODEL Multichoice Unit params {selOIDs} Entity [Selector(params)] [Preselector(params)] Multichoice unit Publikuje listę elementów (ZBIÓR OBIEKTÓW), z której użytkownik może wybrać jeden lub więcej elementów Komponent posiada opcjonalny selektor i preselektor Parametry wejściowe Parametry wymagane do przetworzenia selektorów (wartości do porównania z atrybutami i identyfikatory uczestników relacji) Parametry wyjściowe Identyfikatory obiektów wybranych przez użytkownika Preselektor: pozwala na zdefiniowanie podzbioru elementów domyślnych (wybranych zanim użytkownik wykona jakąkolwiek akcję) Translation: Kamil Żyła, Politechnika Lubelska

27 [PRE:Relationship(A2B)]
MODEL Przykłady Atzeni Ceri Fraternali Versand {selOIDs} (B) Brak linków wejściowych: zostaną wyświetlone wszystkie elementy, brak oznaczenia elementów domyślnych EntityB Atzeni Ceri Fraternali Versand sourceOID (A) {selOIDs} (B) Preselektor: zostaną wyświetlone wszystkie elementy, jako domyślne zostaną oznaczone obiekty powiązane relacją EntityB [PRE:Relationship(A2B)] Ceri Fraternali Nawet jeśli projektant wykorzystuje wyłącznie notację graficzną, model WebML jest definiowany przez XML DTD, stąd każdy projekt jest przechowywany jako plik XML. Selektor: zostaną wyświetlone wyłącznie elementy powiązane relacją, brak oznaczenia elementów domyślnych sourceOID (A) {selOIDs} (B) EntityB [Relationship(A2B)] Translation: Kamil Żyła, Politechnika Lubelska

28 Translation: Kamil Żyła, Politechnika Lubelska
Hierarchical Unit MODEL {selOIDs} params { Entity (Relationship) [Selector]} Hierarchical units Publikuje listę elementów zorganizowaną hierarchicznie na podstawie relacji łączących publikowane instancje encji Pozwala użytkownikowi wybrać jeden element z każdego poziomu hierarchii Komponent określa zbiór encji oraz łączących je relacji (z opcjonalnymi selektorami na każdym poziomie) Parametry wejściowe wymagane do przetworzenia selektorów Wartości do porównania z atrybutami Identyfikatory uczestników relacji Parametry wyjściowe: OID obiektu wybranego przez użytkownika Translation: Kamil Żyła, Politechnika Lubelska

29 Hierarchical Unit: wychodzące linki
MODEL Hierarchical Unit: wychodzące linki EntityA ParamA link a Tables link a Kitchen link b Korla KJD54 link c Chairs link a Stools link b Roy LKR34 link c OddVar JSQ87 link c Office link b Jess RLT45 link c ParamB EntityB link b ParB,ParC EntityC link c EntityA [selector1] EntityB (A2B) [selector2] EntityC (B2C) [selector3] Category SubCategory (Cat2SubCat) Product (SubCat2Prod) Każdy link jest renderowany jako kotwica na odpowiednim poziomie hierarchii Poziom, na którym znajduje się link zależy od typu parametrów linku Nawet jeśli projektant wykorzystuje wyłącznie notację graficzną, model WebML jest definiowany przez XML DTD, stąd każdy projekt jest przechowywany jako plik XML. Translation: Kamil Żyła, Politechnika Lubelska

30 Translation: Kamil Żyła, Politechnika Lubelska
MODEL ScrollerUnit {selOIDs} params Entity [Selector(params)] Scroller units: Umożliwia podzielenie listy elementów na mniejsze porcje Publikuje linki do pierwszego, poprzedniego, następnego i ostatniego elementu zbioru Może być używany w połączeniu z komponentami data, index i multidata Liczba elementów w porcji = block factor Wejście: wartości do porównania z atrybutami, OID uczestników relacji Wyjście: zbiór identyfikatorów (możliwy 1) elementów w bieżącej porcji Musi mu zawsze towarzyszyć inny komponent publikujący treść (pewien zbiór obiektów) Translation: Kamil Żyła, Politechnika Lubelska

31 Translation: Kamil Żyła, Politechnika Lubelska
MODEL Scroller + data unit Artist Dla obydwu komponentów jest wskazana ta sama encja Możliwy jest bezpośredni dostęp do komponentu data unit z innej strony aplikacji, wtedy komponent scroller jest automagicznie synchronizowany Translation: Kamil Żyła, Politechnika Lubelska

32 Translation: Kamil Żyła, Politechnika Lubelska
MODEL Scroller + index Podział wyników wyszukiwania na strony t,y Album [Title contains t] [Year > y] Album Translation: Kamil Żyła, Politechnika Lubelska

33 Translation: Kamil Żyła, Politechnika Lubelska
Strony MODEL Strona, to kontener zawierający jedną lub więcej informacji prezentowanych użytkownikowi w tym samym czasie Dozwolone jest zagnieżdżanie stron: strona może mieć podstrony Użytkownik przemieszcza się po stronach aplikacji Book Index Login Catalog Translation: Kamil Żyła, Politechnika Lubelska

34 Translation: Kamil Żyła, Politechnika Lubelska
MODEL Linki bezkontekstowe Link bezkontekstowy jest linkiem pomiędzy stronami Nie przenosi kontekstu (informacji) Użytkownik może przechodzić ze strony na stronę poprzez kotwice (np. >>Books) HomePage Book Index Translation: Kamil Żyła, Politechnika Lubelska

35 Translation: Kamil Żyła, Politechnika Lubelska
MODEL Strona domowa Strona domowa jest główną stroną aplikacji Jest to pierwsza strona, jaką powinien zobaczyć użytkownik Każdy widok stron musi zawierać stronę domową (oznaczona jako Home) HomePage Book Index H Translation: Kamil Żyła, Politechnika Lubelska

36 Translation: Kamil Żyła, Politechnika Lubelska
„Strefy zrzutu” MODEL Books Store Page Authors Books Book Details Store Page L Authors Book Details Strona oznaczona jako „Strefa zrzutu” (Landmark),to strona widoczna globalnie. Użytkownik może do niej przejść z dowolnego miejsca widoku stron Jest ekwiwalentem linku bezkontekstowego automatycznie zdefiniowanego i poprowadzonego do „Strefy zrzutu” z pozostałych stron w widoku stron Translation: Kamil Żyła, Politechnika Lubelska

37 Translation: Kamil Żyła, Politechnika Lubelska
Obszary MODEL Area Obszar jest zbiorem stron jednorodnych pod względem logicznym i realizujących pewną funkcjonalność Przykłady obszarów Sekcje tematyczne portali: Sport, Muzyka, Technologia, … Elementy systemu zarządzającego danymi: Zarządzanie Produktami, Zarządzanie Personelem, … Obszary mogą być zagnieżdżane, w związku z tym można definiować w ich ramach podobszary Każdy obszar powinien mieć stronę domyślną (DEFAULT PAGE) lub domyślny podobszar (DEFAULT SUB-AREA). Strona lub podobszar oznaczony jako domyślny jest przedstawiany użytkownikowi jako pierwszy w momencie przejścia do obszaru, który go zawiera Translation: Kamil Żyła, Politechnika Lubelska

38 Translation: Kamil Żyła, Politechnika Lubelska
Widoki stron MODEL Widoki stron są to zbiory stron i/lub obszarów tworzących spójny obraz aplikacji Na podstawie jednego modelu danych może zostać zdefiniowanych wiele widoków stron Różne widoki stron mogą być dostępne dla różnych typów użytkowników i różnych typów urządzeń dostępowych Widoki stron mogą być Publiczne: każdy może mieć do nich dostęp Chronione (Prywatne): dostęp jest chroniony hasłem Translation: Kamil Żyła, Politechnika Lubelska

39 Acme: modele widoków stron
Na podstawie jednego modelu danych zdefiniowano dwa widoki stron Klient: publiczny, dla klientów Administrator: chroniony, dla administratorów i osób zarządzających treścią Translation: Kamil Żyła, Politechnika Lubelska

40 Acme: widok stron „Klient”
RUNNING CASE Acme: widok stron „Klient” Zadanie: zdefiniować sposób interakcji klienta z aplikacją Struktura Dwa główne obszary: produkty i zestawy produktów „Strefy zrzutu”: strona domowa i strona ze sklepami Customer Product area Combination area L L Home Page Store Page H,L L Translation: Kamil Żyła, Politechnika Lubelska

41 ACME: modelowanie stron
RUNNING CASE ACME: modelowanie stron Q: Jakie strony są najbardziej potrzebne i najważniejsze? Home, Products, Combinations, Stores Product area Combination area AcmeHome Stores H Products Combinations L L L L Q: Jakie pozostałe strony są potrzebne? Product detail, Combination detail, ByPrice, BigImages,... BigImages Product Page Combination Detail By price Translation: Kamil Żyła, Politechnika Lubelska

42 Translation: Kamil Żyła, Politechnika Lubelska
RUNNING CASE ACME: strona domowa Translation: Kamil Żyła, Politechnika Lubelska

43 Translation: Kamil Żyła, Politechnika Lubelska
RUNNING CASE ACME: strona produktu Translation: Kamil Żyła, Politechnika Lubelska

44 ACME: strona zestawu produktów
RUNNING CASE ACME: strona zestawu produktów Translation: Kamil Żyła, Politechnika Lubelska

45 ACME: publiczny widok stron
Translation: Kamil Żyła, Politechnika Lubelska


Pobierz ppt "Copyright © Politecnico di Milano"

Podobne prezentacje


Reklamy Google