Nowoczesne zastosowania XML



Podobne dokumenty
Nowoczesne zastosowania XML

XML w elektronicznej wymianie danych, integracji aplikacji i bezpieczeństwie

XML w elektronicznej wymianie danych i integracji aplikacji

XML w elektronicznej wymianie danych i integracji aplikacji

XML w elektronicznej wymianie danych, integracji aplikacji i bezpieczeństwie

XML w bazach danych i bezpieczeństwie

XML w bazach danych i bezpieczeństwie

Simple Object Access Protocol

Geneza elektronicznej wymiany danych (EDI) XML w elektronicznej wymianie dokumentów i integracji aplikacji. Pojedyncze rozwiązania.

Geneza elektronicznej wymiany danych (EDI) XML w elektronicznej wymianie dokumentów i integracji aplikacji. Pojedyncze rozwiązania.

Dostęp do komponentów EJB przez usługi Web Services

Programowanie komponentowe

Rozproszone systemy Internetowe

Web Services. Wojciech Mazur. 17 marca Politechnika Wrocławska Wydział Informatyki i Zarządzania

Programowanie Komponentowe WebAPI

Część I -ebxml. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz. UEK w Krakowie Janusz Stal & Grażyna Paliwoda-Pękosz

Wybrane problemy modelu usługowego

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Usługi sieciowe (Web Services)

Rozproszone systemy internetowe

Rozproszone technologie Web Services

Wybrane działy Informatyki Stosowanej

SOAP. Autor: Piotr Sobczak

Web Services. Bartłomiej Świercz. Łódź, 2 grudnia 2005 roku. Katedra Mikroelektroniki i Technik Informatycznych. Bartłomiej Świercz Web Services

Katedra Architektury Systemów Komputerowych Wydział Elektroniki, Telekomunikacji i Informatyki Politechniki Gdańskiej

Elektroniczna wymiana danych (EDI) jest to: - wymiana informacji pomiędzy komputerami, z użyciem powszechnie akceptowanych standardów

Komunikacja i wymiana danych

1 Wprowadzenie do J2EE

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Wybrane działy Informatyki Stosowanej

Programowanie współbieżne i rozproszone

Usługi WWW. dr Zbigniew Lipiński Instytut Matematyki i Informatyki ul. Oleska Opole zlipinski@math.uni.opole.pl

Integracja Obieg Dokumentów - GiS Spis treści

5.14 JSP - Przykład z obiektami sesji Podsumowanie Słownik Zadanie... 86

Zaawansowane aplikacje internetowe. Wykład 6. Wprowadzenie do Web Services. wykład prowadzi: Maciej Zakrzewicz. Web Services

Sieciowe programowanie rozproszone SOA, WebServices i systemy gridowe. Krzysztof Banaś Systemy rozproszone 1

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

SOA Web Services in Java

XML i nowoczesne technologie zarządzania treścią

Dokumentacja podłączeniowa dla procesu przenoszenia danych osobowych. Czyli opis jak skorzystać z usługi: rodotransferservice

Programowanie w języku Java. Wykład 13: Java Platform, Enterprise Edition (Java EE)

Komunikacja międzysystemowa

Programowanie obiektowe

Wielowarstwowe aplikacje internetowe. Web Services. Autorzy wykładu: Maciej Zakrzewicz Marek Wojciechowski. Web Services

SPECYFIKACJA WYMIANY DANYCH POMIĘDZY PROGRAMEM KS-APTEKA WINDOWS I SKLEPEM INTERNETOWYM FIRMY ZEWNĘTRZNEJ

Mydło i spółka. Aplikacje rozproszone. Serwisy sieciowe Broker usług. Serwisy sieciowe. Serwisy sieciowe, WWW (Web Services) Internet

Podyplomowe Studium Informatyki w Bizniesie Wydział Matematyki i Informatyki, Uniwersytet Łódzki specjalność: Tworzenie aplikacji w środowisku Oracle

Zdalna edycja i przeglądanie dokumentacji medycznej.

Rozdział ten przedstawia jeden ze sposobów implementacji usług sieciowych XML i aplikacji klienckich w PHP. Oprogramowanie

4 Web Forms i ASP.NET Web Forms Programowanie Web Forms Możliwości Web Forms Przetwarzanie Web Forms...152

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

Wprowadzenie do usług internetowych

Technologie dla aplikacji klasy enterprise. Wprowadzenie. Marek Wojciechowski

Uniwersytet Łódzki Wydział Matematyki i Informatyki, Katedra Analizy Nieliniowej. Wstęp. Programowanie w Javie 2. mgr inż.

Automatyzacja procesów biznesowych Andrzej Sobecki. ESB Enterprise service bus

76.Struktura oprogramowania rozproszonego.

1. Wymagania dla lokalnej szyny ESB

Dotacje na innowacje. Inwestujemy w waszą przyszłość.

Plan wykładu. Technologia Web Services. Web Services a WWW

EDI, XML i ochrona danych Przemysław Kazienko

Spis treści. Dzień 1. I Wprowadzenie (wersja 0906) II Dostęp do danych bieżących specyfikacja OPC Data Access (wersja 0906) Kurs OPC S7

Kurs OPC S7. Spis treści. Dzień 1. I OPC motywacja, zakres zastosowań, podstawowe pojęcia dostępne specyfikacje (wersja 1501)

INFORMATYKA Pytania ogólne na egzamin dyplomowy

Wykorzystanie standardów serii ISO oraz OGC dla potrzeb budowy infrastruktury danych przestrzennych

Spis treści. Przedmowa

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów dziennych studiów II stopnia)

Web Services. Technologie Biznesu Elektronicznego. Konrad Kunicki. Politechnika Wrocławska, Wydział Informatyki i Zarządzania

Grupy pytań na egzamin magisterski na kierunku Informatyka (dla studentów niestacjonarnych studiów II stopnia)

Deduplikacja danych. Zarządzanie jakością danych podstawowych

Model semistrukturalny

Programowanie współbieżne i rozproszone

XML Schema. Motywacja, struktura schematu, typy złożone. Patryk Czarnik. Instytut Informatyki UW

The Binder Consulting

Spis wzorców. Działania użytkownika Strona 147 Obsługa większości Działań użytkownika za pomocą kodu JavaScript przy użyciu metod obsługi zdarzeń.

MINISTERSTWO FINANSÓW PLAN INTEGRACJI SYSTEMU ZAŁĄCZNIK NR 6 SEAP SPECYFIKACJA KANAŁ DLA PODMIOTÓW ZEWNĘTRZNYCH PL PROJEKT ECIP/SEAP

DOTACJE NA INNOWACJE

Wprowadzenie do technologii Web Services: SOAP, WSDL i UDDI

Projektowanie architektury systemu rozproszonego. Jarosław Kuchta Projektowanie Aplikacji Internetowych

Platforma.NET Wykład 13 Tworzenie usług sieciowych SOAP i WCF. Spis treści. Marek Sawerwain. 7 czerwca Notatki. Notatki

UDDI & WSDL wykład 10

Spis treúci. 1. Wstęp... 11

SOAP i alternatywy. 1. WSDL. 2. Protokoły tekstowe XML-RPC. JSON-RPC. SOAPjr. 3. Protokoły binarne Google Protocol Bufers. Apache Thrift.

Stan zaawansowania prac dotyczących zamówienia na opracowanie i wdrożenie rdzenia systemu e Urząd.

Web Services / Gridy

Jarosław Kuchta Administrowanie Systemami Komputerowymi. Internetowe Usługi Informacyjne

Serwery LDAP w środowisku produktów w Oracle

TOPIT Załącznik nr 3 Programowanie aplikacji internetowych

Standard HL7 (cel, protokoły, zastosowanie) Piotr Dybski Jan Flik

Web Services wykład 9

serwisy W*S ERDAS APOLLO 2009

EXSO-CORE - specyfikacja

Szczegółowy opis zamówienia:

Technologie internetowe laboratorium nr 4. Instalacja i uruchomienie usługi sieciowej w serwerze Tomcat/AXIS

public interface TravelAgent { public void makereservation(int cruiseid, int cabinid, int customerid, double price); }

Pojęcie systemu baz danych

Architektury usług internetowych. Tomasz Boiński Mariusz Matuszek

EJB 3.0 (Enterprise JavaBeans 3.0)

Systemy obiegu informacji i Protokół SWAP "CC"

Przygotowanie do nowoczesnego programowania po stronie przeglądarki. (HTML5, CSS3, JS, wzorce, architektura, narzędzia)

Transkrypt:

Nowoczesne zastosowania XML XML w elektronicznej wymianie danych, integracji aplikacji i bazach danych Patryk Czarnik Instytut Informatyki UW XML i nowoczesne technologie zarzadzania treścia 2011/12 Patryk Czarnik 11 EDI i bazy danych XML 2011/12 1 / 45

1 Elektroniczna wymiana danych Wprowadzenie Rozwiazania przed XML XML w EDI 2 Integracja aplikacji Idea AJAX 3 XML w bezpieczeństwie XML Signature XML Encryption 4 XML w bazach danych XML w relacyjnych bazach danych XML-owe bazy danych

1 Elektroniczna wymiana danych Wprowadzenie Rozwiazania przed XML XML w EDI 2 Integracja aplikacji Idea AJAX 3 XML w bezpieczeństwie XML Signature XML Encryption 4 XML w bazach danych XML w relacyjnych bazach danych XML-owe bazy danych

Elektroniczna wymiana danych Wprowadzenie Elektroniczna wymiana danych (EDI) motywacja Możliwości wymiany danych między firmami/instytucjami (B2B) dokumenty na papierze elektroniczna wymiana danych Możliwości wykorzystania standardu całe oprogramowanie tworzone zgodnie ze standardem, wewnętrzny format odmienny (np. wcześniej istniejacy system), narzędzia tłumaczace do standardu w interfejsach Możliwości ustalenia protokołu EDI dostawca (sprze)daje klientowi narzędzia partner dostosowuje się do formatu silniejszego partnera tworzone ad-hoc narzędzia tłumaczace standard Patryk Czarnik 11 EDI i bazy danych XML 2011/12 4 / 45

Elektroniczna wymiana danych Wprowadzenie Elektroniczna wymiana danych (EDI) motywacja Możliwości wymiany danych między firmami/instytucjami (B2B) dokumenty na papierze elektroniczna wymiana danych Możliwości wykorzystania standardu całe oprogramowanie tworzone zgodnie ze standardem, wewnętrzny format odmienny (np. wcześniej istniejacy system), narzędzia tłumaczace do standardu w interfejsach Możliwości ustalenia protokołu EDI dostawca (sprze)daje klientowi narzędzia partner dostosowuje się do formatu silniejszego partnera tworzone ad-hoc narzędzia tłumaczace standard Patryk Czarnik 11 EDI i bazy danych XML 2011/12 4 / 45

Elektroniczna wymiana danych Wprowadzenie Elektroniczna wymiana danych (EDI) motywacja Możliwości wymiany danych między firmami/instytucjami (B2B) dokumenty na papierze elektroniczna wymiana danych Możliwości wykorzystania standardu całe oprogramowanie tworzone zgodnie ze standardem, wewnętrzny format odmienny (np. wcześniej istniejacy system), narzędzia tłumaczace do standardu w interfejsach Możliwości ustalenia protokołu EDI dostawca (sprze)daje klientowi narzędzia partner dostosowuje się do formatu silniejszego partnera tworzone ad-hoc narzędzia tłumaczace standard Patryk Czarnik 11 EDI i bazy danych XML 2011/12 4 / 45

Elektroniczna wymiana danych Standaryzacja EDI przed XML Rozwiazania przed XML ANSI Accredited Standards Committee X12 sub-group standard narodowy USA stosowany głównie w Ameryce EDIFACT standard ONZ (UN/CEFACT) i ISO stosowany głównie w Europie i Azji popularny w branżach: handel, spedycja i transport Patryk Czarnik 11 EDI i bazy danych XML 2011/12 5 / 45

Elektroniczna wymiana danych Standaryzacja EDI przed XML Rozwiazania przed XML ANSI Accredited Standards Committee X12 sub-group standard narodowy USA stosowany głównie w Ameryce EDIFACT standard ONZ (UN/CEFACT) i ISO stosowany głównie w Europie i Azji popularny w branżach: handel, spedycja i transport Patryk Czarnik 11 EDI i bazy danych XML 2011/12 5 / 45

Elektroniczna wymiana danych Charakterystyka EDIFACT Rozwiazania przed XML Format tekstowy mało czytelny struktura drzewiasta Katalogi predefiniowanych struktur 193 typy wiadomości 279 segmentów 186 elementów (dane dla wersji 08a z 2008 roku) Patryk Czarnik 11 EDI i bazy danych XML 2011/12 6 / 45

Elektroniczna wymiana danych Charakterystyka EDIFACT Rozwiazania przed XML Format tekstowy mało czytelny struktura drzewiasta Katalogi predefiniowanych struktur 193 typy wiadomości 279 segmentów 186 elementów (dane dla wersji 08a z 2008 roku) Patryk Czarnik 11 EDI i bazy danych XML 2011/12 6 / 45

EDIFACT Elektroniczna wymiana danych Rozwiazania przed XML EDIFACT przykład komunikatu UNB+IATB:1+6XPPC+LHPPC+940101:0950+1 UNH+1+PAORES:93:1:IA MSG+1:45 IFT+3+XYZCOMPANY AVAILABILITY ERC+A7V:1:AMD IFT+3+NO MORE FLIGHTS ODI TVL+240493:1000::1220+FRA+JFK+DL+400+C PDI++C:3+Y::3+F::1 APD+74C:0:::6++++++6X TVL+240493:1740::2030+JFK+MIA+DL+081+C PDI++C:4 APD+EM2:0:1630::6+++++++DA UNT+13+1 UNZ+1+1 żródło: Wikipedia Patryk Czarnik 11 EDI i bazy danych XML 2011/12 7 / 45

Elektroniczna wymiana danych EDIFACT struktura Rozwiazania przed XML Wymiana (interchange) Wiadomość (message) Grupa (segment group) Segment Złożenie (composite) Element (data element) MEA+WT+AAD+KGM:690+X5' +KGM:690+ :690 Patryk Czarnik 11 EDI i bazy danych XML 2011/12 8 / 45

XML EDI Elektroniczna wymiana danych XML w EDI Idea: zastosowanie XML jako formatu danych EDI. Tradycyjne EDI Format dokumentów zapisany w specyfikacji. Zwięzłe komunikaty, tylko niezbędne dane. Scentralizowana, trudna zmiana standardu. Zmiany standardu pociagaj a uciażliwe zmiany oprogramowania. Narzędzia implementowane od podstaw. XML EDI Samoopisujacy się format dokumentów. Rozwlekłe komunikaty narzut na samoopisywanie się. Możliwość tworzenia własnych odmian standardów. Większość problemów ze zmiana standardu bierze na siebie parser XML. Możliwość korzystania z gotowych narzędzi (parser, walidator). Patryk Czarnik 11 EDI i bazy danych XML 2011/12 9 / 45

XML EDI Elektroniczna wymiana danych XML w EDI Idea: zastosowanie XML jako formatu danych EDI. Tradycyjne EDI Format dokumentów zapisany w specyfikacji. Zwięzłe komunikaty, tylko niezbędne dane. Scentralizowana, trudna zmiana standardu. Zmiany standardu pociagaj a uciażliwe zmiany oprogramowania. Narzędzia implementowane od podstaw. XML EDI Samoopisujacy się format dokumentów. Rozwlekłe komunikaty narzut na samoopisywanie się. Możliwość tworzenia własnych odmian standardów. Większość problemów ze zmiana standardu bierze na siebie parser XML. Możliwość korzystania z gotowych narzędzi (parser, walidator). Patryk Czarnik 11 EDI i bazy danych XML 2011/12 9 / 45

Elektroniczna wymiana danych Elastyczność XML EDI XML w EDI Elastyczny format komunikatów (elementy opcjonalne, wybór, zagnieżdżanie). Nieinwazyjne rozszerzanie formatów dzięki przestrzeniom nazw. XSLT jako język opisu formatowania. Zróżnicowane zastosowania EDI: podstawowa funkcjonalność: wymiana danych między aplikacjami przedsiębiorstw, nowe perspektywy: kontakt z klientami wyposażonymi tylko w przegladarki WWW, prosta integracja z Web Serwisami. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 10 / 45

Elektroniczna wymiana danych Standaryzacja XML EDI XML w EDI Standaryzacja na poziomie ramowym możliwa wymiana informacji dowolnego typu, informacje jednego typu tak samo reprezentowane, przykład: Electronic Business XML (ebxml). Standardy branżowe (konkretne zestawy komunikatów) SWIFT bankowość RosettaNet handel i transport (?) Automotive Industry Action Group przemysł motoryzacyjny (gł. amerykański) Health Level Seven ochrona zdrowia Open Travel Alliance transport turystyka... Patryk Czarnik 11 EDI i bazy danych XML 2011/12 11 / 45

Elektroniczna wymiana danych Standaryzacja XML EDI XML w EDI Standaryzacja na poziomie ramowym możliwa wymiana informacji dowolnego typu, informacje jednego typu tak samo reprezentowane, przykład: Electronic Business XML (ebxml). Standardy branżowe (konkretne zestawy komunikatów) SWIFT bankowość RosettaNet handel i transport (?) Automotive Industry Action Group przemysł motoryzacyjny (gł. amerykański) Health Level Seven ochrona zdrowia Open Travel Alliance transport turystyka... Patryk Czarnik 11 EDI i bazy danych XML 2011/12 11 / 45

Elektroniczna wymiana danych XML w EDI ebxml podejście do standaryzacji Meta-model pozwalajacy na opracowywanie modeli specyficznych dla zastosowań: zbiór podstawowych schematów, elementów XML oraz procesów biznesowych, sposób definiowania słowników danych, nie definiuje zawartości konkretnych komunikatów może ona zależeć od konkretnego zastosowania. Metainformacje: informacje o wersjach, metadane odpowiadajace nagłówkom z istniejacych systemów EDI. Ramy architektury technicznej: sposoby implementacji repozytoriów, serwisów, itp., integracja z istniejacymi technologiami EDI. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 12 / 45

1 Elektroniczna wymiana danych Wprowadzenie Rozwiazania przed XML XML w EDI 2 Integracja aplikacji Idea AJAX 3 XML w bezpieczeństwie XML Signature XML Encryption 4 XML w bazach danych XML w relacyjnych bazach danych XML-owe bazy danych

Integracja aplikacji XML w integracji aplikacji Idea Cel: umożliwienie wymiany danych pomiędzy aplikacjami: aplikacje/komponenty/moduły posługuja się różnymi formatami wewnętrznymi, wspólny mianownik: XML. Zastosowania: komunikacja między klientem a serwerem, komunikacja między elementami systemu rozproszonego, integracja komponentów aplikacji, konfigurowanie aplikacji i jej komponentów,... Patryk Czarnik 11 EDI i bazy danych XML 2011/12 14 / 45

Integracja aplikacji XML w integracji aplikacji Idea Cel: umożliwienie wymiany danych pomiędzy aplikacjami: aplikacje/komponenty/moduły posługuja się różnymi formatami wewnętrznymi, wspólny mianownik: XML. Zastosowania: komunikacja między klientem a serwerem, komunikacja między elementami systemu rozproszonego, integracja komponentów aplikacji, konfigurowanie aplikacji i jej komponentów,... Patryk Czarnik 11 EDI i bazy danych XML 2011/12 14 / 45

Integracja aplikacji Integracja aplikacji lokalnie lub globanie Idea Zastosowania lokalne w ramach jednego projektu / jednej instytucji komunikacja między różnymi modułami / aplikacjami być może w architekturze rozproszonej rozwiazania tworzone pod katem projektu możliwość stosowania rozwiazań standardowych (np. JAXB) Zastosowania globalne usługi dostępne w Internecie współpraca różnych partnerów ważna standaryzacja standard Web Services Patryk Czarnik 11 EDI i bazy danych XML 2011/12 15 / 45

Integracja aplikacji Integracja aplikacji lokalnie lub globanie Idea Zastosowania lokalne w ramach jednego projektu / jednej instytucji komunikacja między różnymi modułami / aplikacjami być może w architekturze rozproszonej rozwiazania tworzone pod katem projektu możliwość stosowania rozwiazań standardowych (np. JAXB) Zastosowania globalne usługi dostępne w Internecie współpraca różnych partnerów ważna standaryzacja standard Web Services Patryk Czarnik 11 EDI i bazy danych XML 2011/12 15 / 45

Integracja aplikacji (Web Services) Definicja ogólna idea: witryna WWW dla programów komunikacja w wysokiej warstwie sieci tekstowy, strukturalny format komunikatów Definicja konkretna opis interfejsu usługi: WSDL protokół komunikacji: SOAP (komunikaty w XML) rejestrowanie i wyszukiwanie usług: UDDI Patryk Czarnik 11 EDI i bazy danych XML 2011/12 16 / 45

Integracja aplikacji (Web Services) Definicja ogólna idea: witryna WWW dla programów komunikacja w wysokiej warstwie sieci tekstowy, strukturalny format komunikatów Definicja konkretna opis interfejsu usługi: WSDL protokół komunikacji: SOAP (komunikaty w XML) rejestrowanie i wyszukiwanie usług: UDDI Patryk Czarnik 11 EDI i bazy danych XML 2011/12 16 / 45

Integracja aplikacji możliwe zastosowania Udostępnianie/sprzedaż użytecznych danych: rozkłady jazdy / lotów, dane o pogodzie, aktualny czas wg zegara atomowego. Zdalne usługi: wyszukiwanie, pobieranie aktualnej wersji oprogramowania, e-administracja. Operacje biznesowe między partnerami: rezerwacja biletów, miejsc w hotelach itp, zamawianie towarów, sprawdzanie stanu realizacji zamówienia, elektroniczna wymiana danych. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 17 / 45

Integracja aplikacji Web Services standaryzacja SOAP (pierwotnie Simple Object Access Protocol: poczatki: 1998, Microsoft, wersja 1.1: notatka W3C, 2000 (ciagle powszechnie w użyciu), wersja 1.2: rekomendacje W3C, 2003 (errata: kwiecień 2007). Web Services Description Language: wersja 1.1: notatka W3C, 2001 (ciagle powszechnie w użyciu), wersja 2.0: rekomendacje W3C, 2007. Universal Description Discovery and Integration: projekt organizacji OASIS. Standardy WS-* (różne organizacje: W3C, OASIS, IBM... ) Web Services Interoperability ramy dla działania Web Serwisów: WS-I Basic Profile, Simple Soap Binding Profile,..., WS-Eventing, WS-Addressing, WS-Routing, WS-Security.... Business Process Execution Language (OASIS) opis semantyki i łaczenie serwisów w super-serwisy. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 18 / 45

Integracja aplikacji Web Services standaryzacja SOAP (pierwotnie Simple Object Access Protocol: poczatki: 1998, Microsoft, wersja 1.1: notatka W3C, 2000 (ciagle powszechnie w użyciu), wersja 1.2: rekomendacje W3C, 2003 (errata: kwiecień 2007). Web Services Description Language: wersja 1.1: notatka W3C, 2001 (ciagle powszechnie w użyciu), wersja 2.0: rekomendacje W3C, 2007. Universal Description Discovery and Integration: projekt organizacji OASIS. Standardy WS-* (różne organizacje: W3C, OASIS, IBM... ) Web Services Interoperability ramy dla działania Web Serwisów: WS-I Basic Profile, Simple Soap Binding Profile,..., WS-Eventing, WS-Addressing, WS-Routing, WS-Security.... Business Process Execution Language (OASIS) opis semantyki i łaczenie serwisów w super-serwisy. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 18 / 45

Integracja aplikacji Web Services standaryzacja SOAP (pierwotnie Simple Object Access Protocol: poczatki: 1998, Microsoft, wersja 1.1: notatka W3C, 2000 (ciagle powszechnie w użyciu), wersja 1.2: rekomendacje W3C, 2003 (errata: kwiecień 2007). Web Services Description Language: wersja 1.1: notatka W3C, 2001 (ciagle powszechnie w użyciu), wersja 2.0: rekomendacje W3C, 2007. Universal Description Discovery and Integration: projekt organizacji OASIS. Standardy WS-* (różne organizacje: W3C, OASIS, IBM... ) Web Services Interoperability ramy dla działania Web Serwisów: WS-I Basic Profile, Simple Soap Binding Profile,..., WS-Eventing, WS-Addressing, WS-Routing, WS-Security.... Business Process Execution Language (OASIS) opis semantyki i łaczenie serwisów w super-serwisy. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 18 / 45

Integracja aplikacji Web Services standaryzacja SOAP (pierwotnie Simple Object Access Protocol: poczatki: 1998, Microsoft, wersja 1.1: notatka W3C, 2000 (ciagle powszechnie w użyciu), wersja 1.2: rekomendacje W3C, 2003 (errata: kwiecień 2007). Web Services Description Language: wersja 1.1: notatka W3C, 2001 (ciagle powszechnie w użyciu), wersja 2.0: rekomendacje W3C, 2007. Universal Description Discovery and Integration: projekt organizacji OASIS. Standardy WS-* (różne organizacje: W3C, OASIS, IBM... ) Web Services Interoperability ramy dla działania Web Serwisów: WS-I Basic Profile, Simple Soap Binding Profile,..., WS-Eventing, WS-Addressing, WS-Routing, WS-Security.... Business Process Execution Language (OASIS) opis semantyki i łaczenie serwisów w super-serwisy. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 18 / 45

Integracja aplikacji Web Services standaryzacja SOAP (pierwotnie Simple Object Access Protocol: poczatki: 1998, Microsoft, wersja 1.1: notatka W3C, 2000 (ciagle powszechnie w użyciu), wersja 1.2: rekomendacje W3C, 2003 (errata: kwiecień 2007). Web Services Description Language: wersja 1.1: notatka W3C, 2001 (ciagle powszechnie w użyciu), wersja 2.0: rekomendacje W3C, 2007. Universal Description Discovery and Integration: projekt organizacji OASIS. Standardy WS-* (różne organizacje: W3C, OASIS, IBM... ) Web Services Interoperability ramy dla działania Web Serwisów: WS-I Basic Profile, Simple Soap Binding Profile,..., WS-Eventing, WS-Addressing, WS-Routing, WS-Security.... Business Process Execution Language (OASIS) opis semantyki i łaczenie serwisów w super-serwisy. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 18 / 45

Integracja aplikacji SOAP protokół komunikacji Protokół transportowy HTTP lub inne protokoły. Format komunikatów XML ogólna struktura wyspecyfikowana w SOAP konkretne nagłówki i komunikaty dowolne (osobne przetrzenie nazw) SOAP Encoding sposób zapisywania typów danych w XML obecnie niezalecany, zamiast tego kodowanie literal oparte o typy danych XML Schema Różnice w stosunku do RPC, CORBA, DCOM itp.: reprezentacja danych niezależna od platformy (tekstowa), typy danych niezależne od platformy, niższa efektywność. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 19 / 45

Komunikat SOAP Integracja aplikacji Dokument XML, jedna wiadomość: przestrzeń nazw (dla wersji 1.2) http://www.w3.org/2001/12/soap-envelope, element główny: Envelope. Główne składniki dokumentu: header opcjonalny, body obowiazkowy. Ograniczenia: brak DTD (i referencji do encji), brak instrukcji przetwarzania. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 20 / 45

Komunikat SOAP Integracja aplikacji Dokument XML, jedna wiadomość: przestrzeń nazw (dla wersji 1.2) http://www.w3.org/2001/12/soap-envelope, element główny: Envelope. Główne składniki dokumentu: header opcjonalny, body obowiazkowy. Ograniczenia: brak DTD (i referencji do encji), brak instrukcji przetwarzania. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 20 / 45

Komunikat SOAP Integracja aplikacji Dokument XML, jedna wiadomość: przestrzeń nazw (dla wersji 1.2) http://www.w3.org/2001/12/soap-envelope, element główny: Envelope. Główne składniki dokumentu: header opcjonalny, body obowiazkowy. Ograniczenia: brak DTD (i referencji do encji), brak instrukcji przetwarzania. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 20 / 45

Integracja aplikacji Nagłówek SOAP actor opcjonalny identyfikator strony komunikacji (URI), mustunderstand czy zrozumienie jest konieczne (0/1). Przykład z W3Schools <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:header> <m:trans xmlns:m="http://www.w3schools.com/transaction/" soap:actor="http://www.w3schools.com/appml/" soap:mustunderstand="1">234</m:trans> </soap:header>... </soap:envelope> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 21 / 45

Integracja aplikacji Nagłówek SOAP actor opcjonalny identyfikator strony komunikacji (URI), mustunderstand czy zrozumienie jest konieczne (0/1). Przykład z W3Schools <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:header> <m:trans xmlns:m="http://www.w3schools.com/transaction/" soap:actor="http://www.w3schools.com/appml/" soap:mustunderstand="1">234</m:trans> </soap:header>... </soap:envelope> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 21 / 45

Integracja aplikacji Nagłówek SOAP actor opcjonalny identyfikator strony komunikacji (URI), mustunderstand czy zrozumienie jest konieczne (0/1). Przykład z W3Schools <?xml version="1.0"?> <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:header> <m:trans xmlns:m="http://www.w3schools.com/transaction/" soap:actor="http://www.w3schools.com/appml/" soap:mustunderstand="1">234</m:trans> </soap:header>... </soap:envelope> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 21 / 45

Integracja aplikacji Ciało komunikatu SOAP wywołanie zdalnej procedury parametry encodingstyle sposób kodowania danych (URI) Zapytanie przerobiony przykład z W3Schools <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"> <soap:body> <m:getprice xmlns:m="http://www.w3schools.com/prices" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <m:item>apples</m:item> <m:currency>pln</m:currency> </m:getprice> </soap:body> </soap:envelope> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 22 / 45

Integracja aplikacji Ciało komunikatu SOAP wywołanie zdalnej procedury parametry encodingstyle sposób kodowania danych (URI) Zapytanie przerobiony przykład z W3Schools <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"> <soap:body> <m:getprice xmlns:m="http://www.w3schools.com/prices" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <m:item>apples</m:item> <m:currency>pln</m:currency> </m:getprice> </soap:body> </soap:envelope> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 22 / 45

Integracja aplikacji Ciało komunikatu SOAP wywołanie zdalnej procedury parametry encodingstyle sposób kodowania danych (URI) Zapytanie przerobiony przykład z W3Schools <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"> <soap:body> <m:getprice xmlns:m="http://www.w3schools.com/prices" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <m:item>apples</m:item> <m:currency>pln</m:currency> </m:getprice> </soap:body> </soap:envelope> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 22 / 45

Integracja aplikacji Ciało komunikatu SOAP wywołanie zdalnej procedury parametry encodingstyle sposób kodowania danych (URI) Zapytanie przerobiony przykład z W3Schools <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"> <soap:body> <m:getprice xmlns:m="http://www.w3schools.com/prices" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <m:item>apples</m:item> <m:currency>pln</m:currency> </m:getprice> </soap:body> </soap:envelope> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 22 / 45

Integracja aplikacji Ciało komunikatu SOAP wynik procedury parametry wyjściowe Odpowiedź normalna przerobiony przykład z W3Schools <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body> <m:getpriceresponse xmlns:m="http://www.w3schools.com/prices"> <m:price>1.90</m:price> <m:currency>pln</m:currency> </m:getpriceresponse> </soap:body> </soap:envelope> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 23 / 45

Integracja aplikacji Ciało komunikatu SOAP wynik procedury parametry wyjściowe Odpowiedź normalna przerobiony przykład z W3Schools <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body> <m:getpriceresponse xmlns:m="http://www.w3schools.com/prices"> <m:price>1.90</m:price> <m:currency>pln</m:currency> </m:getpriceresponse> </soap:body> </soap:envelope> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 23 / 45

Integracja aplikacji Ciało komunikatu SOAP wynik procedury parametry wyjściowe Odpowiedź normalna przerobiony przykład z W3Schools <soap:envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body> <m:getpriceresponse xmlns:m="http://www.w3schools.com/prices"> <m:price>1.90</m:price> <m:currency>pln</m:currency> </m:getpriceresponse> </soap:body> </soap:envelope> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 23 / 45

Integracja aplikacji SOAP odpowiedź informujaca o błędzie standardowy kod błędu krótki opis teksowy dodatkowe dane (potencjalnie strukturalne) Odpowiedź informujaca o błędzie <soap:envelope xmlns:usos="urn:usos" xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body> <soap:fault> <soap:faultcode>receiver</soap:faultcode> <soap:faultstring>brak danych</soap:faultstring> <soap:faultdetail>nie znaleziono studenta o numerze indeksu <usos:ind>123</usos:ind></soap:faultdetail> </soap:fault> </soap:body> </soap:envelope> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 24 / 45

Integracja aplikacji SOAP odpowiedź informujaca o błędzie standardowy kod błędu krótki opis teksowy dodatkowe dane (potencjalnie strukturalne) Odpowiedź informujaca o błędzie <soap:envelope xmlns:usos="urn:usos" xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body> <soap:fault> <soap:faultcode>receiver</soap:faultcode> <soap:faultstring>brak danych</soap:faultstring> <soap:faultdetail>nie znaleziono studenta o numerze indeksu <usos:ind>123</usos:ind></soap:faultdetail> </soap:fault> </soap:body> </soap:envelope> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 24 / 45

Integracja aplikacji SOAP odpowiedź informujaca o błędzie standardowy kod błędu krótki opis teksowy dodatkowe dane (potencjalnie strukturalne) Odpowiedź informujaca o błędzie <soap:envelope xmlns:usos="urn:usos" xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body> <soap:fault> <soap:faultcode>receiver</soap:faultcode> <soap:faultstring>brak danych</soap:faultstring> <soap:faultdetail>nie znaleziono studenta o numerze indeksu <usos:ind>123</usos:ind></soap:faultdetail> </soap:fault> </soap:body> </soap:envelope> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 24 / 45

Integracja aplikacji SOAP odpowiedź informujaca o błędzie standardowy kod błędu krótki opis teksowy dodatkowe dane (potencjalnie strukturalne) Odpowiedź informujaca o błędzie <soap:envelope xmlns:usos="urn:usos" xmlns:soap="http://www.w3.org/2001/12/soap-envelope" soap:encodingstyle="http://www.w3.org/2001/12/soap-encoding"> <soap:body> <soap:fault> <soap:faultcode>receiver</soap:faultcode> <soap:faultstring>brak danych</soap:faultstring> <soap:faultdetail>nie znaleziono studenta o numerze indeksu <usos:ind>123</usos:ind></soap:faultdetail> </soap:fault> </soap:body> </soap:envelope> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 24 / 45

Integracja aplikacji Informacja zwrotna o błędzie Element(y) fault w body. Podelementy: faultcode faultstring faultactor detail Standardowe kody błędów: VersionMismatch MustUnderstand DataEncodingUnknown Sender Receiver Patryk Czarnik 11 EDI i bazy danych XML 2011/12 25 / 45

WSDL opis serwisu Integracja aplikacji Struktura dokument XML, element główny: definitions, przestrzeń nazw http://schemas.xmlsoap.org/wsdl/, bloki definiujace pojęcia, od abstrakcyjnych do konkretnych. Bloki definicji WSDL types definicje typów i elementów (XML Schema), message opis typu komunikatu, porttype typ portu, czyli zbiór operacji, operacje odwołuja się do komunikatów, binding powiazanie typu portu z protokołem transportowym, service zbiór konkretnych instancji portów działajacych pod określonymi adresami. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 26 / 45

Przykład Integracja aplikacji Poczatek i typy <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/xmlschema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://example.org/kalkulator/" name="kalkulator" targetnamespace="http://example.org/kalkulator/"> <wsdl:types> <xsd:schema targetnamespace="http://example.org/kalkulator/"> <xsd:complextype name="two-ints"> <xsd:sequence> <xsd:element name="arg1" type="xsd:int" /> <xsd:element name="arg2" type="xsd:int" /> </xsd:sequence> </xsd:complextype>... <xsd:element name="iadd-request" type="tns:two-ints" /> <xsd:element name="iadd-response" type="tns:one-int" />... </wsdl:types> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 27 / 45

Przykład c.d. Integracja aplikacji Komunikaty i operacje wersja dla stylu Document <wsdl:message name="iadd-req"> <wsdl:part element="tns:iadd-request" name="parameters" /> </wsdl:message> <wsdl:message name="iadd-resp"> <wsdl:part element="tns:iadd-response" name="parameters" /> </wsdl:message>... <wsdl:porttype name="kalkulator"> <wsdl:operation name="iadd"> <wsdl:input message="tns:iadd-req" /> <wsdl:output message="tns:iadd-resp" /> </wsdl:operation>... </wsdl:porttype> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 28 / 45

Przykład c.d. Integracja aplikacji Komunikaty i operacje wersja dla stylu RPC <wsdl:message name="iadd-req"> <wsdl:part name="x" type="xsd:int" /> <wsdl:part name="y" type="xsd:int" /> </wsdl:message> <wsdl:message name="iadd-resp"> <wsdl:part name="result" type="xsd:int" /> </wsdl:message>... <wsdl:porttype name="kalkulator"> <wsdl:operation name="iadd"> <wsdl:input message="tns:iadd-req" /> <wsdl:output message="tns:iadd-resp" /> </wsdl:operation> </wsdl:porttype>... Patryk Czarnik 11 EDI i bazy danych XML 2011/12 29 / 45

Przykład c.d. Integracja aplikacji style rpc lub document, transport protokół transportowy (URI). soapaction akcja SOAP (zwykle przesyłana w nagłówku HTTP) odpowiadajaca operacji. Wiazanie z protokołem SOAP (tu 1.1) <binding type="kalkulator" name="kalkulator_soap"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operation soapaction="http://example.com/iadd"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 30 / 45

Przykład c.d. Integracja aplikacji style rpc lub document, transport protokół transportowy (URI). soapaction akcja SOAP (zwykle przesyłana w nagłówku HTTP) odpowiadajaca operacji. Wiazanie z protokołem SOAP (tu 1.1) <binding type="kalkulator" name="kalkulator_soap"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operation soapaction="http://example.com/iadd"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 30 / 45

Przykład c.d. Integracja aplikacji style rpc lub document, transport protokół transportowy (URI). soapaction akcja SOAP (zwykle przesyłana w nagłówku HTTP) odpowiadajaca operacji. Wiazanie z protokołem SOAP (tu 1.1) <binding type="kalkulator" name="kalkulator_soap"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operation soapaction="http://example.com/iadd"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 30 / 45

Przykład c.d. Integracja aplikacji style rpc lub document, transport protokół transportowy (URI). soapaction akcja SOAP (zwykle przesyłana w nagłówku HTTP) odpowiadajaca operacji. Wiazanie z protokołem SOAP (tu 1.1) <binding type="kalkulator" name="kalkulator_soap"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation> <soap:operation soapaction="http://example.com/iadd"/> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 30 / 45

Przykład c.d. Integracja aplikacji Instancja usługi <wsdl:service name="kalkulator"> <wsdl:port binding="tns:kalkulator_soap" name="kalkulatorsoap"> <soap:address location="http://localhost:8080/myservice/kalkulator" /> </wsdl:port> </wsdl:service> </wsdl:definitions> Patryk Czarnik 11 EDI i bazy danych XML 2011/12 31 / 45

Wyszukiwanie usług Integracja aplikacji Pomysł dostawcy usług rejestruja je w katalogu, użytkownik znajduje usługę w katalogu, najlepiej: opis usługi i wyszukiwanie semantyczne. Universal Description Discovery and Integration (UDDI): usługa katalogowa, wiele powiazanych węzłów, dostępna jako Web service (poprzez SOAP), opisy usług w WSDL. W praktyce rzadko stosowane. Idea publicznych rejestrów usług i globalnego wyszukiwania usług na razie się nie sprawdza. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 32 / 45

Integracja aplikacji Implementacja usług sieciowych Standardy niezależne od platformy czy języka programowania, oparte o istniejace standardy i protokoły. Dobre, wysokopoziomowe wsparcie co najmniej dla Javy i.net. Problemy: rozmiar API i bibliotek (zrozumienie, efektywność), niekompatybilne rozszerzenia dostawców. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 33 / 45

Integracja aplikacji Implementacja usług sieciowych w Javie Niskopoziomowo serwlety, ręczna obsługa XML, SOAP with Attachments API for Java komunikat SOAP jako drzewo DOM. Wysokopoziomowo Java API for XML Web Services programista nie musi widzieć komunikacji SOAP, abstrakcja zdalnego wywoływania procedur, tworzenie usługi (w tym WSDL) na podstawie kodu Javy (bottom-up), tworzenie klienta i szkieletu serwera na podstawie WSDL (top-down), JAXB do tłumaczenia danych między Java a XML, niezbędne wsparcie implementacji, zwykle dostępne na serwerze aplikacji (JBoss, Glassfish,... ). Patryk Czarnik 11 EDI i bazy danych XML 2011/12 34 / 45

JAX-WS przykład Integracja aplikacji Kawałek implementacji w JAX-WS @WebService(targetNamespace = "http://example.org/kalkulator/", name = "ka @SOAPBinding(style=SOAPBinding.Style.DOCUMENT) parameterstyle=soapbinding.parameterstyle.bare) public class Kalkulator { @WebResult(name = "iadd-response", targetnamespace = "http://jws.javat @WebMethod(action = "http://jws.javatech.pl/kalkulator/iadd") public OneInt iadd( @WebParam(partName = "parameters", name = "iadd-request", targetna TwoInts parameters ){ OneInt result = new OneInt(); result.setarg(parameters.getarg1() + parameters.getarg2()); return result; } Patryk Czarnik 11 EDI i bazy danych XML 2011/12 35 / 45

AJAX Integracja aplikacji AJAX AJAX Asynchronous JavaScript and XML: strona WWW działa w przegladarce użytkownika dzięki JavaScript, komunikacja z serwerem po HTTP, komunikaty kodowane w XML, coraz szerzej stosowane (m.in. wiele usług Google). Zalety: interakcja z użytkownikiem bez przeładowywania strony, przesyłane tylko niezbędne dane. Wady: narzut na przesłanie i uruchomienie skryptu, nieintuicyjne zachowanie stron WWW (ale się przyzwyczajamy). Odstępstwa w praktyce: inne scripty, dane nie zawsze w XML (np. JSON). Patryk Czarnik 11 EDI i bazy danych XML 2011/12 36 / 45

AJAX Integracja aplikacji AJAX AJAX Asynchronous JavaScript and XML: strona WWW działa w przegladarce użytkownika dzięki JavaScript, komunikacja z serwerem po HTTP, komunikaty kodowane w XML, coraz szerzej stosowane (m.in. wiele usług Google). Zalety: interakcja z użytkownikiem bez przeładowywania strony, przesyłane tylko niezbędne dane. Wady: narzut na przesłanie i uruchomienie skryptu, nieintuicyjne zachowanie stron WWW (ale się przyzwyczajamy). Odstępstwa w praktyce: inne scripty, dane nie zawsze w XML (np. JSON). Patryk Czarnik 11 EDI i bazy danych XML 2011/12 36 / 45

AJAX Integracja aplikacji AJAX AJAX Asynchronous JavaScript and XML: strona WWW działa w przegladarce użytkownika dzięki JavaScript, komunikacja z serwerem po HTTP, komunikaty kodowane w XML, coraz szerzej stosowane (m.in. wiele usług Google). Zalety: interakcja z użytkownikiem bez przeładowywania strony, przesyłane tylko niezbędne dane. Wady: narzut na przesłanie i uruchomienie skryptu, nieintuicyjne zachowanie stron WWW (ale się przyzwyczajamy). Odstępstwa w praktyce: inne scripty, dane nie zawsze w XML (np. JSON). Patryk Czarnik 11 EDI i bazy danych XML 2011/12 36 / 45

AJAX Integracja aplikacji AJAX AJAX Asynchronous JavaScript and XML: strona WWW działa w przegladarce użytkownika dzięki JavaScript, komunikacja z serwerem po HTTP, komunikaty kodowane w XML, coraz szerzej stosowane (m.in. wiele usług Google). Zalety: interakcja z użytkownikiem bez przeładowywania strony, przesyłane tylko niezbędne dane. Wady: narzut na przesłanie i uruchomienie skryptu, nieintuicyjne zachowanie stron WWW (ale się przyzwyczajamy). Odstępstwa w praktyce: inne scripty, dane nie zawsze w XML (np. JSON). Patryk Czarnik 11 EDI i bazy danych XML 2011/12 36 / 45

1 Elektroniczna wymiana danych Wprowadzenie Rozwiazania przed XML XML w EDI 2 Integracja aplikacji Idea AJAX 3 XML w bezpieczeństwie XML Signature XML Encryption 4 XML w bazach danych XML w relacyjnych bazach danych XML-owe bazy danych

XML w bezpieczeństwie XML w bezpieczeństwie Najważniejsze aspekty bezpieczeństwa poufność realizacja: szyfrowanie uwierzytelnienie realizacja: podpis elektroniczny Standardy XML zwiazane z bezpieczeństwem Podpisy XML Signature. Szyfrowanie XML Encryption. Zastosowanie: m.in. w Web Services. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 38 / 45

XML w bezpieczeństwie XML w bezpieczeństwie Najważniejsze aspekty bezpieczeństwa poufność realizacja: szyfrowanie uwierzytelnienie realizacja: podpis elektroniczny Standardy XML zwiazane z bezpieczeństwem Podpisy XML Signature. Szyfrowanie XML Encryption. Zastosowanie: m.in. w Web Services. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 38 / 45

XML Signature XML w bezpieczeństwie XML Signature Podpis dokumentu XML-owego zapisany w postaci struktury XML-owej. Podpis umieszczany w elemencie Signature: w osobnym dokumencie (detached signature), dołaczonym do podpisywanego dokumentu (enveloped signature), zawierajacym podpisywane dane (enveloping signature). Możliwości XML Signature: podpisywanie fragmentów dokumentu XML, podpisywanie zasobów zewnętrznych (dostępnych poprzez URL), podpisy wielokrotne. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 39 / 45

XML Signature XML w bezpieczeństwie XML Signature Podpis dokumentu XML-owego zapisany w postaci struktury XML-owej. Podpis umieszczany w elemencie Signature: w osobnym dokumencie (detached signature), dołaczonym do podpisywanego dokumentu (enveloped signature), zawierajacym podpisywane dane (enveloping signature). Możliwości XML Signature: podpisywanie fragmentów dokumentu XML, podpisywanie zasobów zewnętrznych (dostępnych poprzez URL), podpisy wielokrotne. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 39 / 45

XML Signature XML w bezpieczeństwie XML Signature Podpis dokumentu XML-owego zapisany w postaci struktury XML-owej. Podpis umieszczany w elemencie Signature: w osobnym dokumencie (detached signature), dołaczonym do podpisywanego dokumentu (enveloped signature), zawierajacym podpisywane dane (enveloping signature). Możliwości XML Signature: podpisywanie fragmentów dokumentu XML, podpisywanie zasobów zewnętrznych (dostępnych poprzez URL), podpisy wielokrotne. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 39 / 45

XML w bezpieczeństwie XML Encryption XML Encryption Cel: zagwarantowanie poufności danych w XML. Możliwości: szyfrowanie zarówno całego pliku XML jak i jego części. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 40 / 45

1 Elektroniczna wymiana danych Wprowadzenie Rozwiazania przed XML XML w EDI 2 Integracja aplikacji Idea AJAX 3 XML w bezpieczeństwie XML Signature XML Encryption 4 XML w bazach danych XML w relacyjnych bazach danych XML-owe bazy danych

XML w bazach danych Klasyfikacja wsparcia dla XML-a w bazach danych Baza danych ze wsparciem dla XML (zwykle relacyjna, czasem obiektowa badź inna) konfiguracja struktur danych jako tabel i powiazań, eksport i import danych w postaci dokumentów XML, struktura dokumentów XML pochodna relacyjnych struktur danych, zastosowanie: integracja, wymiana danych; XML-owa baza danych: konfiguracja struktur danych przy pomocy DTD/XML Schema, wyszukiwanie z użyciem XQuery lub XPath, indeksowanie elementów, atrybutów, wyrażeń XPath, struktura danych dokumenty XML, możliwa optymalizacja wewnętrznego formatu danych, zastosowanie: przechowywanie i przetwarzanie dokumentów strukturalnych. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 42 / 45

XML w bazach danych Klasyfikacja wsparcia dla XML-a w bazach danych Baza danych ze wsparciem dla XML (zwykle relacyjna, czasem obiektowa badź inna) konfiguracja struktur danych jako tabel i powiazań, eksport i import danych w postaci dokumentów XML, struktura dokumentów XML pochodna relacyjnych struktur danych, zastosowanie: integracja, wymiana danych; XML-owa baza danych: konfiguracja struktur danych przy pomocy DTD/XML Schema, wyszukiwanie z użyciem XQuery lub XPath, indeksowanie elementów, atrybutów, wyrażeń XPath, struktura danych dokumenty XML, możliwa optymalizacja wewnętrznego formatu danych, zastosowanie: przechowywanie i przetwarzanie dokumentów strukturalnych. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 42 / 45

XML w bazach danych XML w relacyjnych bazy danych XML w relacyjnych bazach danych Korzyści: integracja aplikacji, wymiana danych, łatwe transformacje danych, prezentacja danych. Problemy: czy i jak przechowywać dokumenty XML w bazie danych? metody dostępu (zadawania zapytań), efektywność. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 43 / 45

XML w bazach danych XML a relacyjne bazy danych XML w relacyjnych bazach danych Przechowywanie XML-a w relacyjnych bazach danych: elementy dokumentu XML jako pola tabeli bazodanowej (dokument rozłożony na czynniki pierwsze ), dokument XML w całości przechowywany w polu bazy danych. Sposoby wspierania XML-a przez systemy zarzadzania bazami danych: generowanie XML-a na podstawie zawartości bazy danych, wypełnianie zawartości bazy na podstawie zawartości dokumentu XML, specjalne indeksowanie pól zawierajacych XML, zapytania XPath/XQuery na danych typu XML, wbudowane parsery XML i procesory XSLT. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 44 / 45

XML w bazach danych XML a relacyjne bazy danych XML w relacyjnych bazach danych Przechowywanie XML-a w relacyjnych bazach danych: elementy dokumentu XML jako pola tabeli bazodanowej (dokument rozłożony na czynniki pierwsze ), dokument XML w całości przechowywany w polu bazy danych. Sposoby wspierania XML-a przez systemy zarzadzania bazami danych: generowanie XML-a na podstawie zawartości bazy danych, wypełnianie zawartości bazy na podstawie zawartości dokumentu XML, specjalne indeksowanie pól zawierajacych XML, zapytania XPath/XQuery na danych typu XML, wbudowane parsery XML i procesory XSLT. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 44 / 45

XML w bazach danych XML-owa baza danych XML-owe bazy danych Warstwa logiczna: dokument XML jako podstawowa jednostka przechowywanych danych, schemat jako definicja struktury, kolekcje dokumentów. Warstwa fizyczna: niekoniecznie tekstowo zapisane dokumenty XML, indeksy. Funkcjonalności typowe dla baz danych: interfejs do aktualizacji danych, transakcje i współbieżny dostęp, bezpieczeństwo. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 45 / 45

XML w bazach danych XML-owa baza danych XML-owe bazy danych Warstwa logiczna: dokument XML jako podstawowa jednostka przechowywanych danych, schemat jako definicja struktury, kolekcje dokumentów. Warstwa fizyczna: niekoniecznie tekstowo zapisane dokumenty XML, indeksy. Funkcjonalności typowe dla baz danych: interfejs do aktualizacji danych, transakcje i współbieżny dostęp, bezpieczeństwo. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 45 / 45

XML w bazach danych XML-owa baza danych XML-owe bazy danych Warstwa logiczna: dokument XML jako podstawowa jednostka przechowywanych danych, schemat jako definicja struktury, kolekcje dokumentów. Warstwa fizyczna: niekoniecznie tekstowo zapisane dokumenty XML, indeksy. Funkcjonalności typowe dla baz danych: interfejs do aktualizacji danych, transakcje i współbieżny dostęp, bezpieczeństwo. Patryk Czarnik 11 EDI i bazy danych XML 2011/12 45 / 45