Okna w nowych ramach

Największe zmiany dotyczą sterowników kart graficznych. Nowy model sterowników (Longhorn DDM) nie obsługuje komunikacja za pośrednictwem przerwania Int10 API sterującego zarządzaniem energią czy jasnością (to rozwiązanie sięga jeszcze czasów Windows 3.0!). Zamiast tego należy używać ACPI. Stan graficzny aplikacji, w tym dane o powierzchni, sposobie renderowania, shaderach itp., jest w pełni izolowany. Równocześnie łańcuch poleceń wysyłanych do sterownika jest analizowany pod kątem tego, czy np. nie wysyła błędnych poleceń. Analizę w przypadku podstawowych sterowników wykonuje jądro systemu, ale producent może też implementować własne mechanizmy sprawdzania.

Pojawia się także mechanizm wirtualizacji. Czas procesora graficznego (GPU) może być dzielony przez wiele aplikacji i stąd wymóg, by sterownik potrafił zapisać/wczytać stan pewnego rodzaju "sesji". Scheduler - analogicznie jak w przypadku mocy procesora CPU - decyduje, jakie polecenia mają być wykonane. W przypadku prostego sterownika jest to ograniczone do pewnej sekwencji, zaś zaawansowany sterownik może przerywać kontekst strumienia, zmieniać priorytety, wstrzymywać grę itp.

Nowy model pamięci również pozwala tworzyć "wirtualną pamięć graficzną" (niestety, tylko przy stosowaniu API WPF), w której nieużywane zasoby zostaną przeniesione do pliku wymiany. Przy okazji cały mechanizm pozwala "usunąć i zainstalować ponownie" kartę graficzną. Chodzi tu nie tyle o karty hot-plug, ile o możliwość zrestartowania "zawieszonej" karty bez konieczności restartu systemu.

Równocześnie Microsoft opracował metodologię i narzędzia wspomagające testowanie sterowników (i sprzętu) - CRASH (Comparative Reliability Analyzer for Software and Hardware). Warto dodać, że na podstawie zgłoszonych zawieszeń w ciągu ostatnich 4 lat okazało się, że 16,1% nadających się do analizy przypadków zawieszania się systemu wynikało z błędów karty graficznej/sterownika (w niektórych okresach nawet do 23%).

Dla porównania, problemy z każdą z innych kategorii sterowników - urządzeń sieciowych, pamięciowych, dźwiękowych itd. mieściły się poniżej 10% wszystkich zgłoszeń. Producent sterownika musi otrzymać specjalny klucz po podpisaniu umowy Electronic Cardkey Agreement (ECA). Otrzymuje narzędzia do komunikacji z siecią korporacyjną Microsoft, dostęp do grupy zajmującej się grafiką Vista, darmowy dostęp do zasobów związanych z testowaniem, w tym darmowe testy wykonywane przez Microsoft.

Nie tylko nowy wygląd

Dla Windows Vista planowanych jest 5 "głównych" konfiguracji wyświetlania obrazu. Klasyczna (zgodna z Windows 2000) i Luna (czyli Windows XP) nie nakładają żadnych dodatkowych wymagań na kartę graficzną ani komputer. Do ich działania wystarczą starsze sterowniki (XP Display Driver Model). Nie wiadomo, czy w tym trybie na Vista będą działać aplikacje napisane w XAML - prawdopodobnie pewne elementy będą uproszczone. Aero Express to "najniższa" przewidywana wersja interfejsu Aero. Obsługuje WPF (XAML) - dawniej Avalon.

Esencją WPF jest obsługa złożeń i skalowania w oparciu o DPI (Dot Per Inch). Aero Express jest przeznaczone dla komputerów biurowych, ale wymaga specjalnego sterownika zgodnego z Windows Vista Display Driver Model (DDM). Podstawowa konfiguracja to - przeznaczona dla szerokiej gamy odbiorców - Aero Glass. Wymagane jest wyposażenie komputera w kartę graficzną z co najmniej 64 MB (najlepiej 128 lub 256) własnej pamięci i akcelerator grafiki 3D (wymagania analogiczne jak dla DirectX 9). Tylko wtedy obsługiwane są mechanizm przeźroczystości w całym systemie, animacje i inne efekty wizualne (ikony "zawierające" obrazy generowane na podstawie podglądu plików w folderze itp.). Pewne dodatkowe możliwości pojawiają się, gdy działa program kontrolny Windows Media Center. Technicznie rzecz biorąc, jest to pewne dostosowanie Aero Glass.

WPF to nowy sposób tworzenia interfejsu użytkownika, w którym jego wygląd może być definiowany za pośrednictwem pliku XML (język XAML). Takiemu plikowi towarzyszy także kod obsługujący daną formatkę. W XAML mogą być zdefiniowane kształty 2D, 3D, transformacje, animacje kształtów itp. W Windows Vista zdefiniowanych zostało także 26 nowych kontrolek oraz ponad 250 komunikatów Windows pozwalających określić reakcję na daną operację wykonywaną przez użytkownika. Równocześnie rozbudowane będzie znane z XP API "tematów" o nazwie kodowej AERO. Pozwala ono określić styl prezentowania okien i kontrolek. API związane z rysowaniem (także Windows.Drawing czy WPF) przechowuje również kanał alpha, co pozwala zachować efekt "szkła" jeżeli rysuje się na formatce "przeźroczystej".

Windows Vista wprowadza dużo zmian w DirectX. Dostępne będą 2 zestawy funkcji API - Direct3D9.L i Direct3D10. Wynika to stąd, że wersja 10 nie będzie w 100% zgodna w dół. Zarówno 9, jak i 10 korzysta z nowego modelu sterowników Vista DDM, odpowiedniego Runtime i pozwala stosować efekty graficzne. Desktop Vista zbudowany jest na bazie D3D9.L. Za wygląd interfejsu w Aero odpowiadają Desktop Manager i Desktop Composition. Natomiast jeżeli aplikacja pobierze tzw. primary surface (czyli +/- uchwyt do okna pulpitu), Desktop Composition zostanie zablokowany.

Nie można mieszać GDI/GDI+ i treści Direct3D. Jeżeli np. chcemy użyć XAML i Windows Forms - to najlepiej na formatce wydzielić obszar, w którym znajdzie się wyłącznie XAML (albo odwrotnie). Jeżeli aplikacja ma działać na XP i Vista, można użyć WinFX (WPF będzie dostępny dla Windows XP). Jeżeli jednak aplikacja ma działać także na starszych systemach, trzeba użyć Windows Forms. Należy też pamiętać, że w Visual Studio .Net 2005 nie ma narzędzi do XAML/WPF.

D3D10 to zupełnie nowa architektura API do tworzenia bogatej zawartości graficznej (nie tylko gier!). W potoku przetwarzania pojawiają się nowe elementy - Input Assembler, który składa vertexy/indexy w konkretny obiekt, i Geometry Shader, który wykonuje operacje na tzw. prymitywach (używa współrzędnych barycentrycznych).

Duże możliwości stwarza wielokrotne użycie tych samych zasobów podstawowych w różnych miejscach potoku. Za jednym razem można więc wygenerować teksturę i wyrenderować obiekt, bez dwukrotnego wysyłania definicji do potoku. D3D10 będzie też dostosowane do asynchronicznych potoków i np. renderowania częściowego obiektów.

Dużo nowych możliwości dla programistów pojawia się także w związku z "dodatkowym" wyświetlaczem (notebooki), z którego w stanie "pozornego wyłączenia" komputera mogą działać aplikacje, np. powiadamiając użytkownika o zdarzeniach. Asus już udostępnił model wyposażony w taki wyświetlacz, ale dodatkowy ekran może być także częścią klawiatury normalnego komputera.

Aplikacje korzystające z dodatkowych wyświetlaczy, zwane Windows SideShow, mogą być pisane w COM (w przygotowaniu jest warstwa COM Interopt dla .Net) i API C++. Opracowany jest specjalny format XML do przekazywania treści pomiędzy urządzeniem/wyświetlaczem a komputerem. Aplikacje SideShow stały się możliwe dzięki temu, że w Windows Vista zmieniono sposób hibernowania systemu. Dzięki wymaganiom nakładanym na sterowniki laptop może zostać zahibernowany, natomiast aplikacja nadal może otrzymać informacje przy minimalnym poborze energii.

API komunikacyjne

WCF (dawniej Indigo) ma za zadanie ujednolicić istniejące technologie komunikacji służące do pisania rozproszonych aplikacji. Obecnie proste zadanie przesłania informacji w sieci można za pośrednictwem różnych API platformy Windows wykonać na 6 różnych sposobów. Do tego dochodzą specyficzne "zachowania" kanału komunikacyjnego (np. Bluetooth), które mimo że np. pozwalają komunikować się poprzez gniazdka, wymagają niestandardowej obsługi.

W WCF można użyć jednego stosu usług - niezależnie od tego, czy chcemy przesyłać dane pomiędzy procesami, w ramach sieci LAN/WAN, w Internecie czy w sieciach "ad hoc". WCF pozwala definiować tzw. endpoint - element, który definiuje 3 podstawowe obiekty służące do komunikacji - adres (gdzie wysłać/odebrać), binding (jak to zrobić) i kontrakt określający postać komunikatu. Binding może zależeć od wymagań operacyjnych zdefiniowanych w kontrakcie. Równocześnie WCF zawiera wsparcie dla tzw. wersjonowania komunikatów, co przyda się, gdy z nowszym serwerem komunikuje się starsza aplikacji.

Podstawową zaletą WCF jest to, że programista skupia się na tym, co przesłać (i jakie są ogólne cechy komunikacji - np. pewność dostarczenia, czy transakcyjność), a szczegóły realizuje framework. WCF projektowano jest z myślą o systemach zgodnych z ideą SOA, ale tak naprawdę nadaje się do realizacji dowolnego zadania komunikacyjnego.

API dokumentu

W Windows Vista programista ma do dyspozycji interfejsy API definiujące stan aplikacji. Dzięki nim można łatwo powrócić do poprzedniego stanu aplikacji. Dotychczas każda aplikacja w jakiś sposób musiała definiować takie dokumenty samodzielnie. Równolegle dostępne są także interfejsy dla przepływów (workflow). Drugim bardzo ciekawym zbiorem funkcji API jest mechanizm XPS - XML Paper Specification (specyfikacja jest dostępna już teraz i bezpłatna). Jest to przede wszystkim metoda opisu strony. Microsoft chce, by ten język rozumiany był bezpośrednio przez sterownik drukarki. Generalnie - wszędzie tam, gdzie pojawia się dokument - XPS może odwzorować go na stronę "papieru". Obsługa XPS wbudowana jest w API WinFX - głównego zestawu API Windows Vista. XPS będzie mógł być chroniony mechanizmami RMS, jednak jest to mechanizm zewnętrzny w stosunku do XPS. Warto dodać, że w WinFX pojawi się API dla RMS w .Net, natomiast mechanizmy RMS realizowane są na razie w kodzie niezarządzanym.

XPS to nowa metoda opisu strony. Wiele osób traktuje ją jako "konkurenta" PDF, ale XPS, choć może być użyty jako dokument elektroniczny, ma inne zastosowanie. XPS to wzorzec tego, jak można tworzyć własne formaty plików, jak zdefiniować walidator danych, przetworzyć dokument, wybrać wartości itp. Na podstawie struktury XPS można np. generować ikony dla exploratora Windows.

Ułatwienia w IIS 7

Dużo zmian pojawi się w 7. wersji IIS. Przede wszystkim IIS 7 będzie bardziej modułowy. W IIS 6 (Windows Server 2003) można wyłączać poszczególne filtry ISAPI czy platformy aplikacyjne (ASP, ASP .Net itd.), niemniej reszta funkcji IIS 6 była monolitem. W IIS 7 można dosyć swobodnie składać cały potok przetwarzania żądań do serwera (podobnie jak ma to miejsce w przypadku ASP .Net i stosowania tzw. HTTP handlers, ale w warstwie serwera WWW). Także elementy rozszerzające funkcjonalność IIS 7 mogą być pisane w .Net.

W Windows Vista znajdzie się prawdopodobnie mechanizm zarządzania systemem za pośrednictwem sieci WWW. Nie ma też np. podwójnego definiowania mechanizmów uwierzytelniania (dotychczas istniały dwa oddzielne dla IIS 6 i oddzielne dla ASP .Net). Tak naprawdę ASP .Net jest częścią potoku przetwarzania, który można włączyć bądź wyłączyć. Protokół HTTP będzie obsługiwać International Domain Name (IDN), a przy tym w komponencie kernelowym (HTTP.SYS) dodanych zostanie sporo parametrów pozwalających na analizę działania tego stosu.

Również mechanizmy QoS ulegną sporym zmianom - łatwo będzie można określać warunki priorytetów, używając np. Group Policy Objects (GPO). Konkretne parametry QoS można uzależniać od numeru portu, protokołu, adresu IP/podsieci itp. Windows Vista/Longhorn Server zakłada, że routery będą rozumieć protokół DSCP - Differentiated Services Code Point (RFC 2474).


TOP 200