Piotr Szwed Katedra Automatyki AGH

Slides:



Advertisements
Podobne prezentacje
I część 1.
Advertisements

Przekształcanie dokumentów XML - XSL
Język C/C++ Funkcje.
Mgr inż.Marcin Borkowski Podstawy Java Część II
Rafał Hryniów Tomasz Pieciukiewicz
SQL INJECTION Wykorzystanie błędów w językach skryptowych
Sieci Petriego Marcin Jałmużna.
Wprowadzenie do C++ Zajęcia 2.
Bazy danych II Instrukcja SELECT Piotr Górczyński 25/08/2001.
XHTML Podstawowe różnice.
Elementarne struktury danych Piotr Prokopowicz
XSL – część 2.
Zaawansowana składnia XML XML Schema
25/08/2001 Bazy danych II 1 Piotr Górczyński Wstęp do SQL.
Maciej Zabielski 15 stycznia 2003
Generyczne Repozytorium Dokumentów w XML
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 8: Wykorzystanie procedur i funkcji © Jan Kaczmarek.
Dokumentowanie wymagań w języku XML
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Programowanie imperatywne i język C
Programowanie imperatywne i język C Copyright, 2005 © Jerzy R. Nawrocki Wstęp.
Programowanie imperatywne i język C Copyright, 2004 © Jerzy R. Nawrocki Wprowadzenie.
Kurs Pascala – spis treści
Co to jest studium przypadku?
Zapytania SQL: wydajność i optymalizacja
BD-LAB6 Wojciech Pieprzyca
Wykład 5 Wojciech Pieprzyca
Komunikacja z arkuszem. Iteracje. Funkcje.
Wzorce projektowe w J2EE
Semantyki programów współbieżnych " Determinizm programów sekwencyjnych, " Nie-determinizm programów współbieżnych, " prawdziwa równoległość vs.przeploty.
Modele baz danych - spojrzenie na poziom fizyczny
Analiza, projekt i częściowa implementacja systemu obsługi kina
Multimedialne bazy danych
dr inż. Piotr Muryjas Wyższa Szkoła Przedsiębiorczości i Administracji
Wykonawcy:Magdalena Bęczkowska Łukasz Maliszewski Piotr Kwiatek Piotr Litwiniuk Paweł Głębocki.
Wprowadzenie do JSP Copyright © Politecnico di Milano September 2003 Translation: Kamil Żyła, Politechnika Lubelska.
Podstawy programowania
Instrukcje sterujące część 1
Automatyczne dereferencje w języku SBQL
Instytut Tele- i Radiotechniczny WARSZAWA
XML – eXtensible Markup Language 4. XSL transformations (XSLT) XSLT (ang. eXtensible Stylesheet Language Transformations) jest opartym na XML językiem.
TABLICE C++.
SQL - Structured Query Language
XML – eXtensible Markup Language
Przekazywanie parametrów do funkcji oraz zmienne globalne i lokalne
Autor: Joanna Barańska Promotor: dr inż. Paweł Figat Konsultant:
Komendy SQL do pracy z tabelami i bazami
Bazy danych Microsoft access 2007.
Visual Basic for Applications Poziom podstawowy Zajęcia 2
Bazy danych, sieci i systemy komputerowe
Składnia instrukcji warunkowej if…
Wykład 7 Synchronizacja procesów i wątków
PL/SQL – dalsza wędrówka
Podstawy języka Instrukcje - wprowadzenie
Algorytmika.
Piotr Czapiewski Wydział Informatyki ZUT. Web Services Description Language.
Waldemar Bartyna 1 Programowanie zaawansowane LINQ to XML.
.NET i Bazy Danych Projekt: Wadim Grasza.
Łukasz Bieszczad Mateusz Gałązka Karol Włodarek
Podstawy programowania
Tryby adresowania i formaty rozkazów mikroprocesora
PHP jest językiem skryptowym służącym do rozszerzania możliwości stron internetowych. Jego składnia jest bardzo podobna do popularnych języków programowania.
Aplikacje internetowe XML Paweł Lenkiewicz. Aplikacje internetowe – XML2 eXtensible Markup Language Uniwersalny język opisu danych Często używany we współpracy.
Programowanie strukturalne i obiektowe Klasa I. Podstawowe pojęcia dotyczące programowania 1. Problem 2. Algorytm 3. Komputer 4. Program komputerowy 5.
Listy.
Strukturalny język zapytań SQL - historia
Aplikacje i usługi internetowe
JavaBeans by Paweł Wąsala
Modele baz danych - spojrzenie na poziom fizyczny
Zapis prezentacji:

Piotr Szwed Katedra Automatyki AGH 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? 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

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

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

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

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.

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.

XQPN – łuki i wyrażenia Łuki wejściowe Łuki wyjś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

XQPN - przykład <store> <item id='7'/> <item id='12'/> <item id='13'/> <item id='21'/> <item id='27'/> </store> 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

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

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

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

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

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).

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>

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

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

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

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

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

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

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