Rzeka nowych możliwości (cz. 1)
- Tomasz Kopacz,
- 01.12.2003
XML całkiem oswojony
Yukon obsługuje XML na dwa sposoby. Została zachowana zgodność z rozszerzeniami wprowadzonymi w SQLXML3 (dodatek do SQL 2000). Rozbudowano (i uproszczono!) możliwości definiowania XML-owych "widoków" struktur relacyjnych. Tak samo można stosować tzw. datagramy aktualizujące - mechanizmy służące do zmiany danych w bazie wykorzystujące w tym celu specjalnie przygotowane dokumenty XML.
Oprócz tego w serwerze Yukon wprowadzono nowy typ - XMLData, pozwalający przechowywać obiekty XML w kolumnie tabeli (lub w zmiennej w kodzie TSQL). Dla takiej kolumny można zdefiniować specjalny indeks, a następnie przy użyciu języka XQuery wybrać te wiersze z tabeli, które w polu XMLData mają dokument XML-owy "pasujący" do danego wyrażenia SELECT z frazą XQuery. Yukon będzie obsługiwać dialekt XQuery z XPath 2.0. Indeks może być także oparty na dowolnych atrybutach, wyrażeniach czy ścieżkach - bazę można więc dostroić tak, aby (jak ma to miejsce w środowisku relacyjnym) były indeksowane tylko te elementy, które przyspieszą wyszukiwanie. Obiekt/kolumna XMLData może mieć strukturę określoną schematem W3C Schema, dzięki czemu podczas zapisu można sprawdzać poprawność dokumentu. Innymi słowy w "środku" relacyjnej bazy Yukon można umieścić hierarchiczną bazę XML.
Posługując się językiem XQuery, można aktualizować pojedyncze obiekty XMLData, a nawet całe "poddrzewo" hierarchii. Na tej samej zasadzie można dodawać poddrzewa lub inaczej rozszerzać schemat XML.
Do autoryzacji w Yukonie można wykorzystać te same mechanizmy, jakie oferuje Internet Information Server. W wersji ostatecznej Yukona ma być dostępny niezależny mechanizm autoryzacji użytkowników oparty na WS Security (o ile standard ten zostanie uchwalony). To samo dotyczy kodowania oraz podpisu cyfrowego - chodzi o to, by nawet przy komunikacji przez HTTP być pewnym, że to rzeczywiście konkretny serwer bazodanowy przesyła informacje.
Klientom łączącym się przez HTTP Yukon ma udostępniać mechanizm sesji obejmujący wiele żądań jednego klienta. Poprzez HTTP będzie więc można wykonać ciąg poleceń aktualizacyjnych, w ramach np. transakcji. W ten sposób HTTP staje się praktycznie pełnoprawnym mechanizmem dostępu do bazy.
Microsoft chce, aby wywołania za pośrednictwem HTTP/SOAP były optymalnym sposobem korzystania z danych przechowywanych w SQL Server przez aplikacje unixowe. Mechanizm udostępniania danych jest w ten sposób testowany z wieloma niemicrosoftowymi narzędziami, m.in. JBuilder 9, AXIS 1.1 czy WASP. Na PDC przedstawiono przykład wykorzystania danych z Yukona za pośrednictwem... skryptu Perl.
Własną kolejką wygodniej
Aplikacje, w których poszczególne moduły przekazują sobie komunikaty, są coraz bardziej powszechne. Takie podejście wymusza separację "usług", a ponadto zapewnia wysoką skalowalność rozwiązania. Model ten pozwala efektywnie konstruować aplikacje z luźno powiązanych komponentów i doskonale wpasowuje się w Service Oriented Architecture.
W ramach systemu Windows Server Microsoft oferował dotychczas specjalny komponent realizujący tzw. kolejkę komunikatów - Microsoft Message Queuing. Yukon zawiera własny, niezależny od systemowego, mechanizm obsługi komunikatów o nazwie Service Broker. Zawartość kolejki może być automatycznie umieszczana w kopii zapasowej - czy zarządzana jak inne bazy danych. Service Broker gwarantuje dostarczenie komunikatu nawet wtedy, gdy aplikacja nie jest cały czas dostępna w sieci. Co więcej - gwarantuje, że komunikat zostanie wysłany dokładnie raz. Komunikaty powiązane mogą być automatycznie grupowane, co pozwala aplikacji łatwo koordynować komunikację z różnymi usługami. Service Broker pilnuje także, by komunikat z określonej grupy mógł jednocześnie czytać tylko jeden proces.
Nowością jest usługa Notification Services. W dużym uproszczeniu jest to platforma komunikacyjna pozwalająca zdefiniowanym w niej subskrybentom (aplikacjom, usługom, systemom, urządzeniom, użytkownikom itp.) otrzymywać określone informacje o zdarzeniach zachodzących w bazie danych. Mogą być także różne formy powiadamiania, np. e-mail, wiadomość MSN Messenger itp.