1 / 23

XQPN – kolorowane sieci Petriego do przetwarzania danych XML za pomocą języka XQuery

XQPN – kolorowane sieci Petriego do przetwarzania danych XML za pomocą języka XQuery. Piotr Szwed Katedra Automatyki AGH. Plan prezentacji. Czym są sieci XQPN? Język XQuery Definicja sieci XQPN Wykonanie sieci Prototypowa implementacja Przewidywane zastosowania. Czym są sieci XQPN?.

jontae
Download Presentation

XQPN – kolorowane sieci Petriego do przetwarzania danych XML za pomocą języka XQuery

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. XQPN – kolorowane sieci Petriego do przetwarzania danych XML za pomocą języka XQuery Piotr Szwed Katedra Automatyki AGH

  2. Plan prezentacji • Czym są sieci XQPN? • Język XQuery • Definicja sieci XQPN • Wykonanie sieci • Prototypowa implementacja • Przewidywane zastosowania

  3. Czym są sieci XQPN? Sieci XQPN (XQuery Petri Networks) • Kolorowane sieci Petriego pozwalające na wykonywanie operacji na zawartości dokumentów XML przypisanych miejscom sieci. • W sieciach XQPN łukom przypisane są wyrażenia – zapytania języka XQuery Motywacje • Narzędzie do specyfikacji aplikacji internetowych wykorzystujących usługi sieciowe (web service). Celem jest przeprowadzenie automatycznych testów sterowanych wykonaniem tranzycji w sieci służącej, jako wzorzec

  4. Język XQuery • XQuery (ang. XML Query Language) jest językiem zapytań przeznaczonym do ekstrakcji danych z dokumentów XML i baz danych oferujących interfejs XML • Prace zapoczątkowano w 2001. W styczniu 2007 język XQuery 1.0 otrzymał oficjalną rekomendację organizacji W3C • Wiele implementacji: • Saxon, Altova XML • Oracle, IBM DB2, Microsoft SQL Server

  5. XQuery - cechy języka • Nadzbiór XPath • Zapytania XQuery zwracają ciągi wartości atomowych lub znaczników XML (węzłów). • Możliwość dodawania znaczników i modyfikacji struktury węzłów (w wynikowej sekwencji) • Możliwość łączenia danych z różnych dokumentów • Definiowanie zmiennych i funkcji użytkownika • Wywoływanie zewnętrznych funkcji

  6. XQuery – elementy składni • Instrukcje FLWOR for $x in /bookstore/book where $x/price>30 order by $x/title return $x/title • Przypisanie let $y := expression … • Instrukcje warunkowe if(condition)then exp1 else exp2

  7. Sieci XQPN - definicja XQPN = (P, T, A, Q, W, G) • P – zbiór miejsc, • T – zbiór tranzycji, P  T =  • APTTP zbiór łuków, • Q: AQ, funkcja przydzielająca łukom zapytania XQuery, przez Q oznaczony jest zbiór wszystkich zapytań, • W: PT (N {*})  (N {*}) funkcja przypisującą łukom wejściowym pary liczb określających krotność łuku. • G: TQ jest funkcją przypisującą tranzycjom dozory, czyli zapytania XQuery zwracające wartości logiczne.

  8. Sieci XQPN - znakowanie Znakowaniem sieci XQPN nazywamy funkcję M : P  M, która przydziela miejscom dokumenty XML ze zbioru M. Zakładamy, że identyfikatora miejsca p jest też korzeniem dokumentu M(p) przypisanego do miejsca pP Nazwy korzeni dokumentów muszą być unikalne.

  9. XQPN – łuki i wyrażenia • Łuki wejściowe • Usuwające węzły XML (delete) • Odczytujące węzły XML (read) • Wyrażenia: XPath, FLWOR, przypisanie let $x := expression • Dopuszczalna jest zależność zmiennych wejściowych (nie cykliczna) • Łuki wyjściowe • Dodają węzły XML do miejsc wyjściowych • Wyrażenia • Odwołują się do zmiennych wejściowych • Dopuszczalne jest stosowanie instrukcji FLWOR, if-then-else, dodawanie nowych znaczników

  10. XQPN - przykład • Zmiennej lokalnej $x zostanie przypisana sekwencja węzłów spełniająca predykat [./@id>12] • Węzły zostaną przeniesione z miejsca store do out <store> <item id='7'/> <item id='12'/> <item id='13'/> <item id='21'/> <item id='27'/> </store>

  11. XQPN - krotność • Krotność określa liczbę elementów (węzłów), które zostaną odczytane lub usunięte z miejsc wejściowych podczas wykonania tranzycji. • Krotność ma postać pary liczb [min,max] lub pojedynczego symbolu (min=max) • Dopuszczalny jest symbol * (wszystkie elementy) • Tranzycja usunie (odczyta) z sekwencji wejściowej co najmniej min elementów i co • najwyżej max elementów • Jeżeli sekwencja wejściowa zawiera mniej niż min węzłów, tranzycja nie może • zostać wykonana • Dla mul = 4 tranzycja jest niedopuszczalna • Dla mul = * tranzycja usunie wszystkie elementy spełniające predykat [./@id>12] • Dla mul = 1 tranzycja usunie jeden element

  12. XQPN – wykonanie sieci Wykonanie sieci to ciąg odpaleń tranzycji Wykonanie tranzycji: • Ustalenie wiązania • Faza właściwa – usunięcie znaczników z miejsc wejściowych i dodanie znaczników do miejsc wyjściowych

  13. XQPN – wyznaczanie wiązania 1 • Sieci kolorowane CPN • Wiązanie to przypisanie wartości do zmiennych w wyrażeniach. • Sieci XQPN • Zmienne związane przez wyrażenia • Zmienne mogą zmieniać wartość w trakcie wykonania (iteracja) Stąd, w sieciach XQPN • Wiązania wyznaczane wyłącznie dla zmiennych wejściowych • W praktyce: ukrytych zmiennych związanych z łukami wejściowymi • Do sekwencji węzłów, która ma zostać przypisana zmiennej stosuje się ograniczenia wynikające z krotności

  14. XQPN – wyznaczanie wiązania 2 Algorytm wyznaczania wiązania 1. Wykonaj zapytanie exp-i i zapisz wynik w zmiennej tymczasowej: let $tmp :=  exp-i, 2. Wyznacz ciąg węzłów będących bezpośrednimi potomkami korzenia dokumentu przypisanego do miejsca, dla których wejściowe zapytanie zwróciłoby sekwencję $tmp: $inputset-i = local:upcast($tmp) 3. Jeżeli liczba elementów count($inputset-i) nie mieści się w przedziale określonym przez krotność łuku wejściowego – STOP, wiązanie jest niedozwolone 4. Zastosuj ograniczenie wynikające z krotności do ciągu $inputset-i i zapisz wynik w zmiennej $inputnodes-i : let $inputnodes-i := local:arbitray_select(inputset-i) 5. Wyznacz wiązanie zmiennej $xi jako:let $xi := $inputnodes-i exp-i

  15. XQPN – dozory tranzycji Dozory są zapytaniami XQuery zwracającymi wartości logiczne. Są przypisane bezpośrednio tranzycjom. Dozory decydują o dopuszczalności tranzycji dla danego wiązania zmiennych łuków wejściowych. Często dozory można wyeliminować zastępując je zależnością (bardziej efektywne).

  16. XQPN – odpalenie tranzycji Odpalenie tranzycji polega na uaktualnieniu zawartości danych w miejscach wejściowych i wyjściowych. Dla miejsc wejściowych • return <pl-i>{/pl-i/* except $inputnodes-i}</pl-i> Dla miejsc wyjściowych • obliczana jest wyjściowa sekwencja węzłów $outputnodes-j na podstawie wyrażenia przypisanego łukowi wyjściowemu • return <pl-j>{/pl-j/* union $outputnodes-j}</pl-j>

  17. XQPN – implementacja 1 Decyzje projektowe • Które elementy algorytmu wykonania tranzycji mają być implementowane w środowisku XQuery, a które poza nim? • Konieczność przeformułowania zapytań – dla zapewnienia zgodności ze specyfikacją sieci i poprawy efektywności • Rozmiar dokumentów XML podlegających przetwarzaniu – bazy danych czy kilka elementów • Dobór komponentu odpowiedzialnego za wykonanie zapytań XQuery

  18. XQPN – implementacja 2 Dwie prototypowe implementacje Altova XML – interfejs COM, platforma .NET, C # • Wydajny dla małych zbiorów danych • Ciasny interfejs COM • Manipulacje poza XQuery poprzez DOM Saxon-B – interfejs XQJ, platforma Java • Mniej wydajny dla niewielkich dokumentów, bardziej wydajny dla dokumentów >10000 węzłów • Łatwość manipulacji poza środowiskiem XQuery

  19. XQPN – przewidywane zastosowania • Automatyczna generacja przypadków testowych dla aplikacji wykorzystujących usługi sieciowe (web service) • Pasywne testy aplikacji internetowych • Generacja szkieletu aplikacji na podstawie modelu XQPN

  20. XQPN – zastosowania 2Model aplikacji wykorzystującej usługi sieciowe (automatyczna generacja scenariuszy testowych).

  21. XQPN – zastosowania 3Komponenty systemu do testowania usług sieciowych

  22. Podsumowanie • Sieci XQPN są proponowane jako narzędzie specyfikacji aplikacji wykorzystujących XML jako wewnętrzny format wymiany danych • Miejsca sieci przechowują dokumenty XML (reprezentujące dane formularzy, rekordy bazy danych, itp.) • Składnia wyrażeń przypisanych łukom jest zgodna z językiem XQuery • W implementacjach do wykonania tranzycji używane są gotowe procesory XQuery

  23. XQPN – kolorowane sieci Petriego do przetwarzania danych XML za pomocą języka XQuery Dziękuję za uwagę

More Related