XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery

Podobne dokumenty
PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Projektowani Systemów Inf.

Java w 21 dni / Rogers Cadenhead. Gliwice, cop Spis treści. O autorze 11. Wprowadzenie 13 TYDZIEŃ I JĘZYK JAVA

Programowanie dla początkujących w 24 godziny / Greg Perry, Dean Miller. Gliwice, cop Spis treści

T-SQL dla każdego / Alison Balter. Gliwice, cop Spis treści. O autorce 11. Dedykacja 12. Podziękowania 12. Wstęp 15

EXSO-CORE - specyfikacja

Obiektowy model dokumentu. Katedra Mikroelektroniki i Technik Informatycznych

Klasa 2 INFORMATYKA. dla szkół ponadgimnazjalnych zakres rozszerzony. Założone osiągnięcia ucznia wymagania edukacyjne na. poszczególne oceny

LABORATORIUM 8,9: BAZA DANYCH MS-ACCESS

Układy VLSI Bramki 1.0

Teraz bajty. Informatyka dla szkół ponadpodstawowych. Zakres rozszerzony. Część 1.

Programowanie w języku C++ Grażyna Koba

Programowanie obiektowe zastosowanie języka Java SE

Od programowania wizualnego do tekstowego

ZMODYFIKOWANY Szczegółowy opis przedmiotu zamówienia

Spis treści. Podstawy posługiwania się komputerem

Jeśli chcesz łatwo i szybko opanować podstawy C++, sięgnij po tę książkę.

Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia

Programowanie Komponentowe WebAPI

DECLARE VARIABLE zmienna1 typ danych; BEGIN

Bazy danych i strony WWW

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Rozkład materiału do realizacji informatyki w szkole ponadgimnazjalnej w zakresie rozszerzonym

Raport dotyczący przeprowadzonych zmian w aplikacji

Zagadnienia egzaminacyjne INFORMATYKA. Stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Instrukcja użytkownika

SPOSOBY POMIARU KĄTÓW W PROGRAMIE AutoCAD

Tworzenie zapytań do Microsoft SQL Server

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja I

Rozkład materiału do nauczania informatyki w liceum ogólnokształcącym Wersja II

FUNKCJONALNOŚ C PORTAL B2B KAMELEON.ŚQL

Integralność danych Wersje języka SQL Klauzula SELECT i JOIN

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

System zarządzający grami programistycznymi Meridius

Wybrane działy Informatyki Stosowanej

LK1: Wprowadzenie do MS Access Zakładanie bazy danych i tworzenie interfejsu użytkownika

Programowanie obiektowe

Języki skryptowe - PHP. PHP i bazy danych. Paweł Kasprowski. pawel@kasprowski.pl. vl07

Baza danych sql. 1. Wprowadzenie

Pierwsze kroki. Algorytmy, niektóre zasady programowania, kompilacja, pierwszy program i jego struktura

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Bezpieczeństwo systemów komputerowych

3. Budowa prostych raportów opartych o bazę danych

Backend Administratora

Programowanie obiektowe - 1.

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Narzędzia i aplikacje Java EE. Usługi sieciowe Paweł Czarnul pczarnul@eti.pg.gda.pl

Programowanie w języku Python. Grażyna Koba

Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

SQL injection. Metody włamań do systemów komputerowych p. 1/13. Bogusław Kluge, Karina Łuksza, Ewa Makosa

Podstawy programowania. Wprowadzenie

Automatyczne generowanie kodu. 4Developers, 26 marca 2010

Co to jest jest oprogramowanie? 8. Co to jest inżynieria oprogramowania? 9. Jaka jest różnica pomiędzy inżynierią oprogramowania a informatyką?

Programowanie obiektowe

Metody eksploracji danych w odkrywaniu wiedzy (MED) projekt, dokumentacja końcowa

Algorytm. Krótka historia algorytmów

Wykład Ćwiczenia Laboratorium Projekt Seminarium

REFERAT PRACY DYPLOMOWEJ

A Zasady współpracy. Ocena rozwiązań punktów punktów punktów punktów punktów

Wzorce Strukturalne. Adapter: opis. Tomasz Borzyszkowski

Gdzie jest moja tabela?

Spis treści 3. Spis treści

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Tworzenie oprogramowania

INFORMATYKA TECHNICZNA Badanie możliwości wykorzystania języka AutoLISP i środowiska VisualLISP w systemie CAx

Informatyka sem. III studia inżynierskie Transport 2018/19 LAB 2. Lab Backup bazy danych. Tworzenie kopii (backup) bazy danych

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Cw.12 JAVAScript w dokumentach HTML

Dokumentacja projektu QUAIKE Architektura oprogramowania

Javadoc. Piotr Dąbrowiecki Sławomir Pawlewicz Alan Pilawa Joanna Sobczyk Alina Strachocka

SQL w 24 godziny / Ryan Stephens, Arie D. Jones, Ron Plew. Warszawa, cop Spis treści

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL III TI 4 godziny tygodniowo (4x30 tygodni =120 godzin ),

Aplikacje webowe w obliczu ataków internetowych na przykładzie CodeIgniter Framework

UNIX: architektura i implementacja mechanizmów bezpieczeństwa. Wojciech A. Koszek dunstan@freebsd.czest.pl Krajowy Fundusz na Rzecz Dzieci

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Programowanie obiektowe 1 - opis przedmiotu

Visual C# dla zupełnie początkujących / Tony Gaddis. Wydanie IV. Gliwice, copyright Spis treści. Wstęp 11. Uwaga, czytelnicy 19

Symfonia Produkcja. Kreator raportów. Wersja 2013

Zbigniew Sołtys - Komputerowa Analiza Obrazu Mikroskopowego 2015 część 13

System Kancelaris. Zdalny dostęp do danych

Język C : programowanie dla początkujących : przewodnik dla adeptów programowania / Greg Perry, Dean Miller. Gliwice, cop

Moduł mapowania danych

Plan nauczania informatyki Opracował: mgr Daniel Starego

Szkolenie autoryzowane. MS Tworzenie zapytań do Microsoft SQL Server Strona szkolenia Terminy szkolenia Rejestracja na szkolenie Promocje

Język Java i technologie Web - opis przedmiotu

Uniwersytet Mikołaja Kopernika w Toruniu. Profilowanie ruchu sieciowego w systemie GNU/Linux

PROGRAM NAUCZANIA DLA ZAWODU TECHNIK INFORMATYK, O STRUKTURZE PRZEDMIOTOWEJ

Kumulowanie się defektów jest możliwe - analiza i potwierdzenie tezy

Temat : SBQL 1 obiektowy język zapytań.

Java pierwszy program w Eclipse «Grzegorz Góralski strona własna

Oracle11g: Wprowadzenie do SQL

Ministerstwo Finansów Departament Informatyzacji Usług Publicznych

koledzy, Jan, Nowak, ul. Niecała 8/23, , Wrocław, , ,

Język SQL Złączenia. Laboratorium. Akademia Morska w Gdyni

Zagadnienia egzaminacyjne INFORMATYKA. stacjonarne. I-go stopnia. (INT) Inżynieria internetowa STOPIEŃ STUDIÓW TYP STUDIÓW SPECJALNOŚĆ

Bazy danych. dr inż. Arkadiusz Mirakowski

Programowanie obiektowe

Dokumentacja wstępna TIN. Rozproszone repozytorium oparte o WebDAV

Transkrypt:

http://xqtav.sourceforge.net XQTav - reprezentacja diagramów przepływu prac w formacie SCUFL przy pomocy XQuery dr hab. Jerzy Tyszkiewicz dr Andrzej Kierzek mgr Jacek Sroka Grzegorz Kaczor praca mgr pod kierunkiem dr hab. Jerzego Tyszkiewicza Grzegorz Kaczor, 181264

XQTav reprezentacja diagramów Taverny w XQuery Eksperymenty in silico: są stosowane w bioinformatyce obejmują przetwarzanie dużej ilości danych często wymagają dostępu do ogromnych baz danych korzystają z dostępnych przez Internet serwerów obliczeniowych Tradycyjne sposoby wykonywania eksperymentów: jednorazowo przeglądarka internetowa, formularze dostępne w Internecie (np. http://fasta.bioch.virginia.edu/) wielokrotnie tworzenie skryptów łączących się z serwerami, tworzenie plików tymczasowych, ręczne tworzenie opisów wykonanych eksperymentów (np. do publikacji naukowych)

Wady takiego sposobu wykonywania eksperymentów wymaga od biologa umiejętności programowania konieczna jest obsługa wszystkich użytych protokołów sieciowych wyniki pośrednie trzeba przechowywać i czasem konwertować do innych formatów eksperymenty są trudne do powtórzenia na innych maszynach i przez inne osoby pisanie skryptów jest pracochłonne i podatne na błędy w publikacjach naukowych umieszczane są tylko wyniki eksperymentu i opis procedury utrudnia to weryfikację lub modyfikacje przez inne osoby wielokrotnie implementuje się to samo w różnych eksperymentach

Taverna wspomaganie tworzenia i wykonywania eksperymentów interfejs do MyGrid, http://taverna.sourceforge.net, inne systemy: BioKleisly, Kepler wizualna reprezentacja eksperymentów, graf: wierzchołki procesory aplikacje obliczeniowe (serwery, klasy lokalne) krawędzie przekazywanie danych lub synchronizacja czasowa procesor odpowiada jednej operacji logicznej np. zastosowanie FASTY dla danych argumentów procesor ma porty wejściowe, na które przekazywane są argumenty, oraz wyjściowe, z których odczytuje się wyniki eksperyment można uruchomić

Taverna zaawansowane funkcje możliwość definiowania zagnieżdżonych diagramów wewnętrzny jest wtedy widoczny jako procesor import/eksport danych w postaci XML i surowej, a także XLS wyniki niekoniecznie w postaci tekstowej, także np. grafika (zwykle dot) mechanizmy kontroli błędów ponawianie prób po ustalonym czasie oczekiwania procesory alternatywne uruchamiane w przypadku niedostępności procesora bazowego

przekazywanie danych synchronizacja czasowa

Wady Taverny wbudowane lokalne procesory zapewniają bardzo mało użytecznej funkcjonalności, bez programowania trudno jest dodać nową są problemy, które w diagramach zapisuje się trudno, np. odpowiednik zapytania SQL: select * from T1, T2 where T1.v = 2*T2.v część z tych problemów daje się łatwo wyrazić w XQuery Taverna ukrywa tzw. strategie iteracji w przypadku niedopasowania typów procesor, który oczekuje po jednym elemencie na port, a dostaje dwie listy A B C 1 2 CROSS A A B B C C 1 2 1 2 1 2 iteracja typu cross, outer join A B C 1 2 DOT A B 1 2 iteracja typu dot, inner join kolumna odpowiada jednemu wywołaniu procesora

Procesor umożliwiający wykonywanie XQuery integruje się z Taverną jako procesor umożliwia definiowanie portów wejściowych i odczytywanie z nich danych umożliwia wykonanie dowolnego XQuery i przekazanie wyników do Taverny można korzystać z napisanych przez siebie klas Javy do wykonywania bardziej skomplikowanych przekształceń wykorzystuje engine XQuery Saxon-B (http://saxon.sourceforge.net)

Generowanie XQuery z diagramów przepływu prac wygenerowany skrypt robi to, co diagram, z którego został wygenerowany wywołania procesorów zamieniane są na funkcje XQuery specjalny komentarz XQuery definiuje strukturę portów wejściowych i wyjściowych skryptu strategie iteracji zrealizowane przy pomocy pętli języka nie ma łącz synchronizacji czasowej dla czytelności skrypt podzielony na zakładki wbudowany edytor skryptu, umożliwiający także generowanie XQuery dane Taverny konwertowane do postaci XML, można je zmieniać w skrypcie

Edytor XQuery zastosowanie strategii iteracji cross

Rozwiązanie przykładowego problemu chcemy z dwóch list wybrać pary napisów o tej samej długości, jednak nie przekraczającej 5 znaków Krok 1 tworzymy podstawowy diagram definiujemy dwa wejścia i jedno wyjście oraz procesor XQuery xqscript

Krok 2 tworzymy diagram pomocniczy powinien rozwiązywać problem jak najbardziej zbliżony do danego Krok 3 generujemy XQuery z diagramu pomocniczego w diagramie podstawowym uruchamiamy edytor XQuery i generujemy skrypt

łączymy wejścia i wyjście diagramu z odpowiednimi portami procesora, edytujemy XQuery procesora

w tym miejscu wywoływany jest procesor intersection

w tym miejscu wywoływany jest procesor Taverny chcemy ten kod zmodyfikować tak, żeby zamiast wywołania procesora wykonane zostało obliczenie wybierające pary napisów o tych samych długościach, nie większych jednak od 5

dane wejściowe połączone listy

Podsumowanie jeśli problem jest prosty należy używać standardowej Taverny, bo XQuery wciąż jest językiem dość trudnym jeśli problem nadaje się dobrze do wyrażenia w XQuery można użyć XQTav; wspierane są także rozszerzenia SQL zaimplementowane w Saxonie jeśli problem jest naprawdę skomplikowany można napisać klasę w Javie, a następnie użyć XQTav jako interfejsu między Taverną a Javą W sieci MyGrid - http://www.mygrid.org.uk Taverna - http://taverna.sourceforge.net Saxon - http://saxon.sourceforge.net XQTav - http://xqtav.sourceforge.net