Zastosowanie XML-a do celów praktycznych na przykładzie dystrybucji informacji w portalu biznesowym. Promotor: Autor: prof. dr hab. Kazimierz Subieta Paweł Zielski Cel pracy Celem pracy jest prezentacja języka XML i jego możliwości w zastosowaniach praktycznych. Praktycznym przykładem zastosowania języka XML jest aplikacja wraz z narzędziami stanowiąca system centralnej bazy dla dokumentów. Zakres pracy Zbudowanie archiwum dokumentów zaprojektowanie i budowa centralnej bazy dokumentów. Zaproponowanie standardu przechowywania i wymiany dokumentów centralna baza daje szanse na stworzenie jednolitego standardu – otwartego interfejsu elektronicznej wymiany dokumentów elektronicznych. Dostarczenie narzędzi pozwalających na korzystanie z dokumentów narzędzia pozwalające na korzystanie ze zgromadzonych informacji. Wiedza ogólna Dlaczego język XML ? Początki języka XML Początek prac nad językiem XML datuje się na rok 1996. XML został stworzony pod auspicjami konsorcjum W3C. Szefem grupy był Jona Bosak z Sun Microsystems. XML zatwierdzono jako rekomendację W3C w roku 1998. Cele stawiane językowi XML Oddzielenie warstwy prezentacji od danych Przenoszalność danych Zgodność ze standardem SGML Prostota obsługi dokumentów XML Odporność na błędy Oddzielenie warstwy prezentacji i warstwy danych Dokument podzielony jest na dane znakowe i znaczniki. Dane znakowe stanowią główną zawartość dokumentu. Znaczniki nie odpowiadają za wyświetlanie dokumentu, opisują jedynie strukturę logiczną dokumentu. Za prezentacje danych odpowiedzialne są języki stylu (CSS, XSL). Przenoszalność danych XML gwarantuje przechowywanie informacji w formacie niezależnym od jednej aplikacji i systemów operacyjnych. Do obróbki danych można wykorzystać dowolne narzędzia potrafiące przetwarzać XML. Struktura XML umożliwia automatyczne konwertowanie dokumentacji na dowolne formaty końcowe (XHTML, PDF, RTF, ...). Zgodność ze standardem SGML XML jest podzbiorem języka SGML. Każdy walidowany dokument XML jest prawidłowym dokumentem SGML. Zarówno w XML jak i SGML przyjęto zasadę, że znakowanie opisuje strukturę dokumentu. Obydwa standardy pozwalają na definiowanie własnych znaczników. Prostota obsługi dokumentów XML Interfejs pomiędzy dokumentem XML a aplikacją stanowią analizatory składni. Wyróżniamy dwa typy analizatorów składni: Interfejsy oparte na obiektach (np. DOM) Interfejsy oparte na zdarzeniach (np. SAX) Analizator składni wykonując swoją funkcję upraszcza pracę z rozbudowanymi strukturami XML. Odporność na błędy W procesie weryfikacji parser sprawdza poprawność dokumentu, czyli jego zgodność ze standardem XML, a więc: pojedynczy element główny i zgodna wielkość liter, wymagane stosowanie znaczników zamykających, wartości atrybutów zamknięte w cudzysłowach, poprawne zagnieżdżanie znaczników. W procesie walidacji sprawdzana jest prawidłowość dokumentu, czyli jego zgodność z DTD bądź schematem XML. Przyjęte rozwiązania Założenia projektowe System posiada następujące cechy: możliwość gromadzenia danych w formacie XML, możliwość przeglądania i wyszukiwania danych, prezentacja informacji i dokumentów na stronach WWW, możliwość uzyskania danych z bazy. Warstwa centralna systemu Integracja i Transformacja Danych Kolejkowanie przychodzących wiadomości Przyjmowanie , odczyt i defragmentacja paczek dokumentów, Zapis do bazy dokumentów Logowanie zdarzeń Potwierdzanie otrzymania i zapisu wiadomości Centralna baza dokumentów Dane Integracja i Transformacja Danych Baza dokumentów Aplikacje centralne Wyszukiwanie i przegladanie dokumentów Raporty Nadzorowanie pracy nad doumentami Zarzadzanie uprawnieniami Transformacja i walidacja komunikatów Logowanie Wysyłanie potwierdzeń Kolejkowanie wiadomosci Warstwa centralna systemu Dane (Dokumenty) Centralna baza dokumentów Dane Przechowywanie dokumentów Odpowiedź na zapytania Budowa rezultatów Integracja i Transformacja Danych Baza dokumentów Aplikacje centralne Wyszukiwanie i przegladanie dokumentów Raporty Nadzorowanie pracy nad doumentami Zarzadzanie uprawnieniami Transformacja i walidacja komunikatów Logowanie Wysyłanie potwierdzeń Kolejkowanie wiadomosci Warstwa centralna systemu Aplikacje centralne Dostarczenie interfejsu do wyszukiwania i przeglądania dokumentów Dostarczenie niezależnej warstwy raportującej Logowanie i udostępnianie informacji o zapytaniach bazodanowych Przypisywanie uprawnień korzystania z systemu Centralna baza dokumentów Dane Integracja i Transformacja Danych Baza dokumentów Aplikacje centralne Wyszukiwanie i przegladanie dokumentów Raporty Nadzorowanie pracy nad doumentami Zarzadzanie uprawnieniami Transformacja i walidacja komunikatów Logowanie Wysyłanie potwierdzeń Kolejkowanie wiadomosci Warstwa centralna systemutechnologia WebSphere MQ Komunikacja asynchroniczna Pewność dostarczania komunikatów WebSphere Bussiness Integration Message Broker (MQSI) Transformacja dokumentów Walidacja składniowa Inteligentna dystrybucja Elastyczne modelowanie – szybkie integrowanie nowych typów dokumentów Centralna baza dokumentów Dane Integracja i Transformacja Danych Baza dokumentów Aplikacje centralne Wyszukiwanie i przegladanie dokumentów Raporty Nadzorowanie pracy nad doumentami Zarzadzanie uprawnieniami Transformacja i walidacja komunikatów Logowanie Wysyłanie potwierdzeń Kolejkowanie wiadomosci Warstwa centralna systemutechnologia Centralna baza dokumentów Tamino XML Server Przechowywanie dokumentów XML w formie własnej Wsparcie standardów XPath i W3C XQuery Możliwość elastycznego manipulowania struktura bazy dokumentów Dane Integracja i Transformacja Danych Baza dokumentów Aplikacje centralne Wyszukiwanie i przegladanie dokumentów Raporty Nadzorowanie pracy nad doumentami Zarzadzanie uprawnieniami Transformacja i walidacja komunikatów Logowanie Wysyłanie potwierdzeń Kolejkowanie wiadomosci Warstwa centralna systemutechnologia WebSphere Application Server Skalowalna platforma obsługi procesów biznesowych i interakcji z użytkownikiem Wsparcie dla standardu J2EE Narzędzia szybkiego rozwoju i utrzymania aplikacji Centralna baza dokumentów Dane Integracja i Transformacja Danych Baza dokumentów Aplikacje centralne Wyszukiwanie i przegladanie dokumentów Raporty Nadzorowanie pracy nad doumentami Zarzadzanie uprawnieniami Transformacja i walidacja komunikatów Logowanie Wysyłanie potwierdzeń Kolejkowanie wiadomosci Struktury dokumentów wymagania Dokument musi być jednoznacznie identyfikowalny na każdym etapie przetwarzania Dane przesyłane pomiędzy klientem a bazą muszą być podpisane i zaszyfrowane Dane podlegają walidacji – zgodność ze schematem, zgodność ze słownikami w ustalonym zakresie Dokument może być przetwarzany na różnych platformach sprzętowo-systemowych Zawartość dokumentu w centralnej bazie musi być identyczna z dokumentem źródłowym Struktury dokumentów – standardy Podstawowa jednostka przechowywania danych – dokument XML Standard zapisu struktury danych W3C XML Schema (Tamino Schema Definition) Dokumenty XML jako warstwa transportowa Dokumenty XML jako format przechowywania danych w bazie dokumentów Struktury dokumentów – warstwa transportowa PACZKI - Dokument XML zawierający paczkę z deklaracjami podatkowymi wykorzystywany jest do przesyłania deklaracji pomiędzy źródłem a bazą dokumentów. Struktury dokumentów – bezpieczeństwo transportu Zabezpieczenie danych <ENCRYPTED> Szyfrowany jest cały dokument zawierający paczki z dokumentami Szyfrowanie i odszyfrowanie następuje zgodnie z wytycznymi konsorcjum W3C zawartymi w specyfikacji XML-Encryption Syntax and Processing. Proces szyfrowania Wylosowanie liczb klucza symetrycznego, którym następnie przy pomocy algorytmu 3DES szyfrowany jest cały dokument Klucz symetryczny jest następnie szyfrowany algorytmem klucza asymetrycznego RSA v. 1.5 przy użyciu klucza publicznego odbiorcy. Struktury dokumentów – bezpieczeństwo transportu Sprawdzenie nadawcy <PODPIS> Podpis pod dokumentem, podpisywany kluczem prywatnym dla sprawdzenia pochodzenia dokumentu Podpisy są tworzone i weryfikowane zgodnie z wytycznymi konsorcjum W3C zawartymi w specyfikacji XML-Signature Syntax and Processing. Struktury dokumentów – przechowywanie Przechowywanie dokumentów <DOK> Dokument zawiera: podstawowe atrybuty oryginalny dokument XML listę operacji na dokumencie (OPERACJE_DOK) Atrybuty pobierane z oryginalnego dokumentu XML : typ dokumentu źródło dokumentu data uwagi, itp.. Funkcjonalność Funkcjonalność aplikacji korzystającej z bazy dokumentów Praca z dokumentami Wyszukiwanie ogólne Wyszukiwanie szczegółowe Monitorowanie zdarzeń Dodawanie niezdefinowanych dokumentów Wyszukiwanie ogólne Wyszukiwanie ogólne Funkcjonalność wyszukiwania ogólnego pozwala na wyszukiwanie, niezależnie od typu dokumentu Oparte o stałe kryteria wyszukiwania Prezentacja wyników w postaci listy zawierającej podstawowe informacje oraz referencji do dokumentu szczegółowego Wyszukiwanie ogólne - kryteria Kryteria wyszukiwania typ dokumentu – lista typów dokumentów zasilających archiwum. źródło dokumentu – w zależności od typu dokumentu data wpłynięcia dokumentu – zakres dat wpłynięcia dokumentu do archiwum słowa kluczowe w dokumencie – możliwość określenia słów kluczowych. Słowa kluczowe są tworzone automatycznie dla każdego dokumentu na postawie określonych reguł i dodawane jako atrybut dokumentu archiwum. Wyszukiwanie szczegółowe Wyszukiwanie szczegółowe Kryteria definiowane w zakresie szczegółów poszczególnych dokumentów Kryteria wyszukiwania są zmienne w zależności od typu dokumentu Prezentacja wyników w postaci listy zawierającej podstawowe informacje oraz referencji do dokumentu szczegółowego Monitorowanie i kontrola zdarzeń Zdarzenia związane z obsługą dokumentów zapisywane są do logu zdarzeń (baza danych). operacje dotyczące oglądania i pobierania szczegółów dokumentów osoby wykonującej dane zdarzenie kod zdarzenia datę wykonania określonego zdarzenia Logowanie zdarzeń jest procesem automatycznym Monitorowanie i kontrola zdarzeń Przeszukanie bazy danych pod kątem wykonywania określonych czynności przez określone osoby w systemie. Kryteria wyszukiwania osoba wykonująca zdarzenie typ zdarzenia zakres dat dokument, którego dotyczą zdarzenia Prezentacja wyników w postaci listy Bezpieczeństwo – autentykacja i autoryzacja Interfejs systemu zawsze wymaga logowania Logowanie realizowane jest przy użyciu czytnika i karty mikroprocesorowej Możliwość wykorzystania infrastruktury PKI Proces logowania wymaga kodu PIN do karty System na podstawie przydzielonych ról uprawnienia użytkownika do korzystania z aplikacji Bezpieczeństwo – zarządzanie Czynności związane z bezpieczeństwem aplikacji Zmiana kodu PIN Przeglądanie uprawnień Zarządzanie uprawnieniami Wyszukiwanie użytkowników systemu Dodawanie / usuwanie użytkowników Określanie uprawnień Modyfikacja danych Blokowanie / odblokowywanie użytkowników W projekcie docelowym proponujemy wyodrębnić niezależna warstwę bezpieczeństwa Wartość dodana Narzędzia Udostępnienie danych dla systemów zewnętrznych Cel Udostępnienie dokumentów (informacji) zawartych w centralnej bazie dokumentów na potrzeby systemów zewnętrznych. Potencjalne wykorzystanie Twórcy niezależnego portalu zgłaszają potrzebę cyklicznego zasilania informacjami z centralnej bazy. Aktualizacja informacji ma odbywać się co tydzień w piątek w godzinach wieczornych. Udostępnienie danych dla systemów zewnętrznych Cel techniczny Zaprojektowania mechanizmu do konfiguracji i automatyzacji komunikacji z systemami zewnętrznymi. Scenariusz techniczny Administrator portalu uzgadnia format i zakres danych, poziom zabezpieczeń, docelowe tabele i opcjonalnie metody przekazywania komunikatów zwrotnych. Udostępnienie danych dla systemów zewnętrznych Wymagania funkcjonalne Zapisywanie zapisań na liście zadań do wykonanie Parametry Zapytanie Transformat (plik transformujący) Odbiorca Uruchamianie zapytań Parametry ustalona godzina ustalony interwał Udostępnienie danych dla systemów zewnętrznych Wymagania funkcjonalne Przetwarzanie wyników odebranie wyników zapytania z bazy danych opcjonalna transformacja wyników opcjonalna podpisanie podpisem elektronicznym paczki danych szyfrowanie danych dostarczenie wyników do odbiorcy opcjonalne przyjęcie i logowanie potwierdzeń Udostępnienie danych dla systemów zewnętrznych Wymagania niefunkcjonalne Parametry zapisywane w pliku XML (opcjonalnie przechowywanym w Tamino) Arkusz transformacji w standardzie XSLT Wysyłanie, wiązanie odbiorcy z miejscem dostarczenia komunikatów przy pomocy WebSphere MB Dostarczenie komunikatów do pliku lub do bazy danych (z wykorzystaniem mechanizmów mapowania WebSphere MB) Prezentacja