Okna w nowych ramach

Przedstawiamy trzecią część relacji z odbywającej się co dwa lata konferencji Microsoft Professional Developer Conference. W niniejszym artykule zostały omówione zmiany, jakie czekają programistów piszących aplikacje dla platformy Windows po wprowadzeniu na rynek w przyszłym roku systemu Windows Vista.

Przedstawiamy trzecią część relacji z odbywającej się co dwa lata konferencji Microsoft Professional Developer Conference. W niniejszym artykule zostały omówione zmiany, jakie czekają programistów piszących aplikacje dla platformy Windows po wprowadzeniu na rynek w przyszłym roku systemu Windows Vista.

Z punktu widzenia programisty Windows Vista oraz mająca wywodzić się z niego serwerowa wersja systemu stanowią pewne wyzwanie, zmieniając wiele przyzwyczajeń. Nagrodą za chęć do nauki jest jednak ułatwienie obsługi rozlicznych funkcji, a także wiele gotowych mechanizmów, których stworzenie wymagało do tej pory sporej pracy. Zmieniło się naprawdę wiele. Zasadnicze zmiany dotyczą działania jądra systemu i komunikacji aplikacji z nim. Pojawiły się nowy model sterowników urządzeń, nowa technologia interfejsu użytkownika, nowe mechanizmy komunikacyjne i narzędzia do zarządzania bezpieczeństwem.

Bez WinFS też ciekawie

Systemem plików w Windows Vista zostanie - tak jak dotychczas - NTFS. Ale dzięki zintegrowanemu motorowi indeksującemu będzie można tworzyć wirtualne foldery wg np. słów kluczowych czy innych atrybutów pliku. Zapowiadany na poprzedniej konferencji PDC mechanizm WinFS, który pozwala traktować pliki jak rozbudowaną bazę danych, nie będzie dostępny od razu - pojawi się później i prawdopodobnie będzie stanowić część systemu serwerowego Longhorn. Nie znaczy to jednak, że Microsoft zrezygnował całkowicie z innych udogodnień w zakresie plików. W jądrze systemu pojawi się nowy komponent - Common Log Manager (CLM), który pozwoli traktować ciąg operacji na plikach jako transakcję. Analogicznie CLM może też rejestrować operacje na gałęziach rejestru. Niestety, gromadzone są całe "encje", a nie np. fragment zmienianego pliku, nie należy więc traktować tego mechanizmu jako zastępcy dla bazy danych.

Nowa architektura sterowników w Windows Vista jest konieczna choćby dlatego, że wzrosła liczba i różnorodność urządzeń podłączanych do komputerów.

Nowa architektura sterowników w Windows Vista jest konieczna choćby dlatego, że wzrosła liczba i różnorodność urządzeń podłączanych do komputerów.

Nadal będzie istnieć mechanizm Shadow Copy służący do wykonywania kopii obrazów partycji. Nowością w Windows Vista/Longhorn Server będzie to, że obraz można będzie traktować tak jak dysk, a więc np. odczytać z niego poprzednią postać pliku. W tym celu można użyć dowolnego API (również z linii poleceń), ponieważ Microsoft stworzył dedykowany język odwołań do pliku o konkretnej dacie w Shadow Copy. Warto też wspomnieć, że w Windows Vista pojawia się nowy tryb instalacji, w którym elementy kopiowane są większymi porcjami, a nie plik za plikiem. Tryb ten bardzo skraca czas instalowania systemu operacyjnego i prawdopodobnie stanie się elementem instalatora MSI 3.

Dużo zmian związanych jest z synchronizacją plików. Wprowadzono mechanizm RDC, w którym przy np. rozległych repozytoriach w Distributed File System (DFS) pomiędzy serwerami przesyłane są tylko zmiany, a nie całe pliki. Z punktu widzenia deweloperów i administratorów istotne jest to, że Vista ujednolica mechanizm synchronizacji, z którego na takich samych zasadach mogą korzystać zarówno system, jak i aplikacje. API przewiduje możliwość opisu tego, czym jest "konflikt" i w jakich warunkach można go rozwiązać automatycznie.

Ułatwieniem dla użytkowników Windows Vista będzie mechanizm Superfetch, który monitoruje system i "przechowuje na zaś" strony pamięci używane przez dany zestaw aplikacji - stan jest pamiętany przez dłuższy okres - rzędu miesięcy (w Windows XP to ma miejsce tylko podczas startu systemu). W konsekwencji aplikacje uruchamiane po raz drugi startują znacznie szybciej. Jako pamięć wirtualna standardowo może być też używany moduł pamięci Flash/USB.

Sieci z własną inteligencją

Stos sieciowy Windows Vista został napisany praktycznie od nowa. To zupełnie nowe rozwiązanie, niemające wiele wspólnego z wcześniejszymi wersjami. Większość opcji automatycznie dostosowuje się do warunków panujących w sieci, w związku z czym nie będzie sensu "strojenia" wielkości MTU czy innych parametrów sieci. Parametry będą łatwo definiowalne przy użyciu polis - chodzi tu nie o konkretne wartości, ale raczej algorytmy określające, jak owe wartości będą dobierane.

Vista wprowadza kilka nowych mechanizmów w dziedzinie wyszukiwania usług. Microsoft intensywnie (i chyba skutecznie) promuje standard WS-Discovery przeznaczony do opisu, konfiguracji i odkrywania urządzeń sieciowych. Także PnP X - następca protokołu plug-and-play - ma pozwolić na lepszą obsługę podłączanych urządzeń.

Na WINFS przyjdzie jeszcze poczekaĺ, ale wirtualne foldery i transakcje na plikach znajdą się w systemie na pewno.

Na WINFS przyjdzie jeszcze poczekaĺ, ale wirtualne foldery i transakcje na plikach znajdą się w systemie na pewno.

Pojawia się również komponent grupujący informacje z różnych protokołów wykrywających nowe urządzenia. Klient, czyli powłoka systemu, będzie mógł odpytać ów mechanizm i wybrać urządzenie o określonej charakterystyce funkcjonalnej. W przypadku wyszukiwania komputerów i urządzeń w Vista ma zniknąć pewna "bezwładność" sieci zanim urządzenie zostanie odkryte. Zmianie ulega też interfejs użytkownika do wyszukiwania - jest uproszczony i nie "miesza" różnych zasobów (jak ma to miejsce w XP) - witryn, udziałów sieciowych itp. Nie będzie też podziału na grupy robocze. Co ważniejsze - urządzenie (sterownik) będzie mogło samodzielnie definiować swoją ikonę, zmiany stanu czy dodawać elementy do menu kontekstowego.

Dużą zmianą będzie upowszechnienie wspólnego API do tworzenia sieci P2P. Mają one przede wszystkim uprościć życie graczom (w grach wieloosobowych), ale ten sam mechanizm dzięki elastyczności WCF (Windows Communication Framework) może się stać fundamentem szybkiej komunikacji. Niestety, mechanizm wyszukiwania nazw PNRP - ten sam, który został dodany do Windows XP - powoduje, że po włączeniu tych usług komputer staje się "sieciowo gadatliwy".

Drugim ciekawym mechanizmem jest People Near Me (PNM) pozwalający określić, z kim najczęściej użytkownik komunikuje się i wstępnie skonfigurować narzędzia do współpracy z taką osobą. Mechanizm ten składa się z trzech zestawów API:

Discovery API (wyszukiwanie osób), Publication API - do publikacji w sieci informacji o sobie, w tym np. aplikacji/obiektów do współdzielenia oraz zasady ich użytkowania (przeważnie na zasadzie opt-in), a także API do instalatora, pozwalające doinstalować aplikacje, jeśli jest to konieczne podczas definiowania mechanizmów współpracy.

Aplikacja musi jawnie określić, jakie cechy (obiekty) mają być dostępne dla PNM. Oczywiście, dostępne są też mechanizmy do przechowywania informacji o kontaktach. Zakres wyszukiwania prawdopodobnie będzie obejmować sieć P2P, ale przede wszystkim jest przeznaczony do odkrywania elementów w tej samej podsieci. Microsoft opracował GraphChat - aplikację pozwalającą stworzyć współdzieloną "tablicę" oraz towarzyszącą jej usługę chat dla dużej liczby osób.

W systemie Windows Vista zdefiniowano oddzielny typ sieci - tzw. Home Networking. Jest to przeznaczone do konstruowania sieci domowych z np. centralnym serwerem multimedialnym, na którym przechowywane są zdjęcia, muzyka, wideo itp., klientami MediaCenter i zwykłymi stacjami roboczymi. Nowe mechanizmy obejmują m.in. przebudowany stos Wi-Fi, przy czym nie jest to kopia stosu przeznaczonego do komunikacji w sieciach przewodowych, tylko nowe rozwiązanie. Standardowo obsługiwane są zabezpieczenia WPA i WPA2, ale ponieważ standardy w tej dziedzinie często ulegają zmianom, Microsoft wprowadził możliwość wygodnego rozszerzania puli mechanizmów zabezpieczeń. Kreatory konfiguracji pozwalają na konfigurowanie nie tylko jednego komputera, ale całego domowego środowiska, a ponadto zawierają więcej opcji.

Mechanizm współdzielenia plików w sieci domowej został znacznie uproszczony. Możliwe jest zdefiniowanie kryteriów współdzielenia przez wskazanie typu plików albo towarzyszących im słów kluczowych. Równocześnie prawdopodobnie będzie można udostępniać zasoby tylko konkretnym urządzeniom, bez względu na to, jaki użytkownik będzie z niego korzystać. Podsumowując, tworząc Home Network Microsoft chce sprawić, by sieć domowa nie musiała być "administrowana", ale by równocześnie spełniała wymagania związane z bezpieczeństwem itp.

W Windows Vista będzie równorzędnym protokołem co IPv4 i, co ważne, jego obsługa będzie domyślnie włączona. Za pośrednictwem IPv6 działać będą usługi tworzenia sieci ad-hoc, m.in. wspomniane wyżej Home Networking, People Near Me, P2P itp. Równocześnie IPv6 jest obsługiwane przez ten sam zestaw narzędzi administracyjnych, co stos IPv4. Obsługa IPv6 obejmuje usługi Active Directory, DNS, IIS. Będzie też działać z IE 7 oraz protokołem współdzielenia plików w Windows. Aby ułatwić przejście na nowy protokół, dostępne będą mechanizmy translacyjne IPv6-IPv4. Zupełnie niezależnie Microsoft ma zamiar wbudować w system mechanizmy pozwalające na łatwiejsze przekazywanie informacji w sytuacjach, gdy komputer jest maskowany przez usługę translacji adresów (NAT).

Gadżety - nie tylko do zabawy

Ciekawym elementem Windows Vista są tzw. Gadgets - specjalne komponenty do umieszczenia na pasku Windows Sidebar. To próba standaryzacji interfejsów kontroli urządzeń, np. odtwarzacza muzyki, ale także interfejsów do rozbudowanego powiadamiania, co jest typowe dla aplikacji działających w tle. Komponenty te powstały, ponieważ obszar w okolicy zegara jest wykorzystywany niemal przez każdą taką aplikację, zaś użytkownik nie ma łatwej kontroli nad tym, co ma być w tym obszarze pokazywane - jeśli aplikacja nie pozwoli łatwo "ukryć się". Dzięki Gadgets użytkownik zyskuje pełną kontrolę nad tym, co dzieje się w prawym dolnym rogu ekranu - dostępne jest specjalne narzędzie do zarządzania tym obszarem wykorzystujące Gadget Description File. Gadżety mogą być tworzone w JavaScript (i DHTML/XAML) albo jako aplikacje WPF.