Katedra Inżynierii Oprogramowania PJWSTK

Technologie Internetu (TIN)

Wykład prowadzony na studiach inżynierskich PJWSTK w semestrze letnim

Prowadzący: dr inż. Piotr Habela


Struktura wykładów i precyzyjny zakes mogą się różnić w poszczególnych semestrach. Aktualne wersje slajdów znajdują się na szkolnym serwerze FTP


Wprowadzenie
Wykład stanowi przegląd problematyki przewidzianej do omówienia w ramach wykładu (m.in. WWW, XML, Web Services). Większość miejsca poświęcono na przypomnienie istotnych z tego punktu widzenia informacji o protokołach i architekturze Internetu.
XML, HTML i XHTML
W wykładzie omówiono problematykę języków znaczników; w szczególności - terminologię i założenia języka XML (Extensible Markup Language)). Następnie przedstawiono podstawowe własności języków HTML oraz XHTML jako specjalizowanych dla warstwy prezentacyjnej aplikacji generycznych języków znaczników (odpowiednio SGML oraz HTML).
Aktywne dokumenty WWW
Wykład poświęcony technologiom dokumentów aktywnych WWW, czyli rozwiązaniom zapewniającym interakcyjność dokumentów WWW po stronie przeglądarki. Z racji aktualnego przekroju zastosowań skoncentrowano się na technologiach skryptowych, tj. JavaScript oraz współpracujących z nim w ramach koncepcji Dynamicznego HTML standardów określania prezentacji treści CSS (Cascading StyleSheets) oraz manipulowania strukturą dokmentu (interfejs DOM - Document Object Model).
Dokumenty dynamiczne WWW
Wykład dotyczy charakterystyki dokumentów dynamicznych (tj. technologii pozwalających uruchamiać logikę aplikacyjną poprzez strony WWW za pomocą mechanizmów działających po stronie serwera). We wprowadzeniu wskazano cechy charakterystyczne tego rodzaju technologii. Omówiono także mechanizm prostej autentykacji w oparciu o protokół HTTP. Większą część wykładu zajmuje przegląd najbardziej znanych technologii, m.in. CGI, SSI, ASP, PHP i JSP.
Aplikacje WWW
Omówiono problematykę tworzenia aplikacji WWW. Zdefiniowano pojęcie aplikacji WWW i wyodrębniono trzy modele ich architektury. Wymieniono aspekty modelowania i projektowania specyficzne dla interfejsu internetowego. W dalszej części przedstawiono założenia architektury warstwowej oraz najważniejsze wzorce projektowe z nią związane.
Bezpieczeństwo aplikacji WWW
W wykładzie przedstawiono najważniejsze problemy bezpieczeństwa w aplikacjach WWW. Rozpoczęto od podsumowania zagrożeń dla komunikacji internetowej. Następnie dokonano klasyfikacji zagrożeń dla oprogramowania udostępnianego przez interfejs WWW.
Schematy dokumentów XML
Przedstawiono motywy stosowania tzw. schematów dokumentów XML, czyli definicji określających "słownictwo" dla znaczników stosowanych w określonego rodzaju dokumencie. Wyjaśniono pojęcie poprawności składniowej i strukturalnej. Omówiono stanowiącą część samego języka XML specyfikację DTD (Document Type Definitions). Przedstawiono możliwości języka XML Schema, oferującego (za cenę złożóności) znacznie bardziej precyzyjne i elastyczne środki określania dopuszczalnej budowy dokumentu XML.
XPath, XSLT
Wykład poświęcony najbardziej upowszechnionym spośród deklaratywnych środków odpytywania i przekształcania dokumentów XML. Język XPath: kierunki nawigacji, kroki, predykaty, funkcje, kontekst. Transformacje XSL (XSLT 1.0): zastosowanie, budowa wzorców, iteracje, sortowanie, instrukcje warunkowe, nazwane szablony, konstruowanie struktur wynikowych. XQuery - założenia, główne możliwości.
Interfejsy programistyczne dla XML
W odróżnieniu od omawianych wcześniej deklaratywnych środków dostępu do dokumentu XML, w niniejszym wykładzie przedstawiono dedykowane dla obsługi XML interfejsy programistyczne w tradycyjnych językach programowania. Wyróżniono przede wszystkim: przetwarzanie strumieniowe oparte o zdarzenia (reprezentowane przez interfejs SAX), hierarchiczny model dokumentu (udostępniany przez interfejs standardu DOM) oraz tzw. wiązanie XML (XML binding) - zastosowane w interfejsie JAXB.
Aplikacje XML
Przedstawiono przykłady aplikacji XML (tj. opartych na XML języków dziedzinowych), zorientowanych na tworzenie warstwy prezentacyjnej aplikacji WWW (XHTML, XForms, SVG). Wskazano motywy przejścia w warstwie prezentacji z języka HTML na zestaw języków z rodziny XML. Omówiono także problem zarządzania metadanymi oraz adresowaną doń specyfikację XMI XML Metadata Interchange.
Web Services
We wprowadzeniu przedstawiono problematykę oprogramowania pośredniczącego (middleware), oraz charakterystykę trzech reprezentatywnych dlań technologii tzw. rozproszonych obiektów. Zaprezentowano założenia usług WWW (Web Services) i omówiono stanowiący ich podstawę protokół SOAP. Wykład kończy objaśnienie sposobu realizacji tradycyjnego wołania operacji (remote procedure call) w oparciu o SOAP.
Opisy usług WWW
Wykład stanowi ciąg dalszy omówienia technologii Web Services. Przedstawiono język opisu interfejsów usług (WSDL) oraz organizację rejestru usług UDDI, umożliwiającego publikowanie i wyszukiwanie informacji o dostępnych usługach. Nawiązując do problematyki współpracy B2B (Business-to-Business), przedstawiono założenia technologii ebXML.
XSL, XLink
Podsumowano pozostałe technologie XML, charakteryzujące się mniej powszechnym użyciem. Przyczyny są zróżnicowane: od stosunkowo niszowego obszaru zastosowań - jak w wypadku XSL-FO, poprzez brak szerszego wsparcia w popularnym oprogramowaniu - jak w wypadku XLink oraz XPointer, po wczesny etap rozwoju (dość obiecującej) technologii - jak w wypadku XQuery. Omówiono: problemm formatowania i prezentacji treści oraz rolę specyfikacji XSL Formatting Objects, wskazywanie treści w dokumentach XML - specyfikacje XLink oraz XPointer oraz język zapytań dla XML - XML Query (XQuery).
Aplikacje w technologii Peer-to-Peer
Wykład przedstawia problematykę aplikacji i protokołów działających w architekturze równoprawnej i zdecentralizowanej Peer-to-Peer (P2P), jako przeciwieństwo dominującej w dzisiejszym Internecie architektury klient-serwer. Przedstawiono najważniejsze problemy techniczne, uwarunkowania biznesowe i obszary zastosowań.
Semantic Web
Wykład stanowi bardzo skrótowe przedstawienie problemu opisu zasobów WWW. Scharakteryzowano przewidziany do takich opisów język RDF (Resource Description Framework) oraz najbardziej znane jego zastosowanie - zestaw generycznych metadanych ze zbioru Dublin Core Metadata Element Set.
AJaX
Przedstawiono motywy wprowadzenia oraz podstawę technologiczną podejścia AJaX (Asynchronous JavaScript and XML). Omówiono założenia podejścia REST (Representational State Transfer) do udostępniania danych i funkcjonalności klientom aplikacji WWW.