Okna w nowych ramach

Przedstawiamy relację z odbywającej się co dwa lata konferencji Microsoft Professional Developer Conference. W niniejszym artykule omówione zostały zmiany, które czekają programistów piszących aplikacje na platformę Windows po wprowadzeniu na rynek systemu Windows Vista.

Przedstawiamy relację z odbywającej się co dwa lata konferencji Microsoft Professional Developer Conference. W niniejszym artykule omówione zostały zmiany, które czekają programistów piszących aplikacje na platformę Windows po wprowadzeniu na rynek systemu Windows Vista.

Z punktu widzenia programisty Windows Vista oraz mająca wywodzić się z niego ser- werowa 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 utworzenie wymagało do tej pory sporej pracy. Nowości jest naprawdę wiele. Zasadnicze zmiany dotyczą działania jądra systemu i komunikowania się z nim aplikacji. Mamy nowy model sterowników urządzeń, nową technologię interfejsu użytkownika, nowe mechanizmy komunikacyjne i narzędzia do zarządzania bezpieczeństwem.

Bez WinFS też ciekawie

Interfejs Windows Vista: na razie nie widać wielkich zmian w stosunku do Windows XP, ale gdy pojawią się aplikacje pisane w XAML, różnica będzie znacząca.

Interfejs Windows Vista: na razie nie widać wielkich zmian w stosunku do Windows XP, ale gdy pojawią się aplikacje pisane w XAML, różnica będzie znacząca.

Systemem plików w Windows Vista pozostanie NTFS, ale dzięki zintegrowanemu motorowi indeksującemu będzie można tworzyć "wirtualne" foldery według 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, pojawi się później i prawdopodobnie jako 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 traktować tego mechanizmu jako zastępcy bazy danych.

Pozostanie mechanizm Shadow Copy, służący do wykonywania kopii obrazów partycji. Nowością w Windows Vista/Longhorn Server będzie możliwość traktowania obrazu tak, jak dysku, czyli np. odczytania z niego poprzedniej postaci pliku. W tym celu można użyć dowolnego API (również z wiersza poleceń), ponieważ Microsoft opracował język odwołań do pliku o konkretnej dacie w Shadow Copy. W Windows Vista pojawia się też 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 sys-tem, 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 strony pamięci używane przez dany zestaw aplikacji - stan jest pamiętany przez dłuższy czas, rzędu miesięcy (w Windows XP tylko podczas startu systemu). W konsekwencji aplikacje 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 rozwiązanie ma niewiele wspólnego z wcześniejszymi wersjami. Większość opcji automatycznie dostosowuje się do warunków w sieci, dlatego nie będzie sensu "strojenia" wielkości MTU czy innych parametrów sieci. Parametry będą łatwo definiowalne przy użyciu polis - chodzi nie o konkretne wartości, ale raczej algorytmy określające sposób ich dobierania.

Vista wprowadza kilka nowych mechanizmów 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 poprawić obsługę podłączanych urządzeń.

Pojawia się także 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 wypadku wyszukiwania komputerów i urządzeń w Viście ma zniknąć pewna "bezwładność" sieci, zanim urządzenie zostanie odkryte. Zmienia się też interfejs użytkownika do wyszukiwa-nia, jest uproszczony i nie miesza różnych zasobów (jak 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ć własną 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 dodano do Windows XP - powoduje, że po włączeniu tych usług komputer staje się "sieciowo gadatliwy".

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.

Drugim ciekawym mechanizmem jest People Near Me (PNM) pozwalający określić, z kim się najczęściej użytkownik komunikuje i wstępnie skonfigurować narzędzia do współpracy z taką osobą. Mechanizm 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 są też mechanizmy do przechowywania informacji o kontaktach. Zakres wyszukiwania prawdopodobnie będzie obejmować sieć P2P, ale przede wszystkim przeznaczony jest do odkrywania elementów w tej samej podsieci. Microsoft opracował GraphChat - aplikację pozwalającą utworzyć współdzieloną tablicę oraz towarzyszącą jej usługę chat dla wielu osób.

W Windows Vista zdefiniowany został oddzielny typ sieci, tzw. Home Networking. Jest przeznaczony 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ą zarówno przebudowany stos Wi-Fi, przy czym nie jest to kopia stosu przeznaczonego do komunikacji w sieciach przewodowych, ale całkiem nowy mechanizm. Standardowo obsługiwane są zabezpieczenia WPA i WPA2, ale ponieważ standardy w tej dziedzinie często podlegają zmianom, Microsoft umożliwił wygodne rozszerzanie puli mechanizmów zabezpieczeń. Kreatory 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 wybranym urządzeniom, bez względu na to, kto z nich skorzysta.

Tworząc Home Network, Microsoft chce sprawić, żeby sieć domowa nie wymagała administrowania, spełniając jednak wymagania związane z bezpieczeństwem itp.

W Windows Vista IPv6 będzie protokołem równorzędnym z IPv4, a co ważne, jego obsługa zostanie domyślnie włączona. Za pośrednictwem IPv6 będą tworzone sieci ad-hoc, m.in. wspomniane wyżej Home Net-working, 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 Active Directory, DNS, IIS. Będzie też działać z IE 7 oraz z protokołem współdzielenia plików w Windows. Przejście na nowy protokół ułatwią mechanizmy translacyjne IPv6-IPv4. Zupełnie niezależnie Microsoft ma zamiar wbudować w system mechanizmy pozwalające na łatwiejsze przekazywanie informacji, gdy komputer jest maskowany przez usługę translacji adresów (NAT).

Bezpieczne API

Zmiany związane z bezpieczeństwem sięgają samego API. W Viście na pewno ograniczony będzie dostęp do pewnych mechanizmów niskopoziomowych z aplikacji użytkowych. Utrudni to m.in. obchodzenie zabezpieczeń płyt DVD itp. Część, a może nawet wszystkie operacje dotyczące obsługi audio/wideo będą przeprowadzane w specjalnym, chronionym środowisku, do którego aplikacja wyśle polecenia (zacznij odtwarzanie, przewiń itp). Ma to na pewno związek z ochroną praw autorskich i mechanizmem DRM, ale w równej mierze jest skutkiem zmiany modelu sterowników i kodeków, których niestabilność zbyt często dotychczas destabilizowała cały system. Mechanizm nazwany Output Content Protection realizowany jest przy użyciu dwóch potoków - Protected Video/Audio Path i Protected Environment. PVP zapewnia, że wszystkie elementy przesyłające treść chronioną prawami licencyjnymi są odpowiednio bezpieczne, m.in. bez weryfikacji kodu (np. kluczem) po obu stronach "komunikacji" nie da się przesłać informacji szyną PCI. Sterowniki muszą być podpisane przez Microsoft i implementować odpowiednią funkcję. Dodatkowo np. producenci kart graficznych będą wprowadzać część rozwiązań sprzętowo (ATI, Intel, NVIDIA, S3 i Matrox). Równocześnie sterownik sprawdzi, czy komunikacja ewentualnie nie może być przechwytywana przez jakieś nieuprawnione urządzenia (podobnie działa obecnie w wielu aplikacjach specjalny kod weryfikujący, czy np. do komputera nie jest dołączony debuger sprzętowy, ale w Viście będzie to znacznie pewniejsze). Sprawdzanie będzie się odbywać okresowo i po wykryciu nadużycia sterownik zakończy działanie do czasu restartu komputera. Komunikacja między sterownikiem a jądrem Windows będzie szyfrowana (architektura klucza publicznego i prywatnego; stąd wymóg, aby każdy sterownik został podpisany przez Microsoft).

Częścią Visty ma być też specjalna lista "odwołań" (analogiczna jak w specyfikacji kluczy X506), na której będą dopisywane wadliwe sterowniki. Prawdopodobnie będzie rozsyłana razem z Windows Update. Te mechanizmy zmuszą autorów sterowników do zmiany sposobu myślenia, bo oprócz maksymalnej wydajności będzie istotna bezpieczna komunikacja. No i użytkownik będzie zaskoczony, gdy nagle przestanie móc odtwarzać filmy, bo w jego wersji sterownika znaleziono dziurę. Prawdopodobnie ten mechanizm będzie włączany dopiero wtedy, gdy będzie kolejny sterownik do ściągnięcia. Nie wiadomo także, jak długo potrwa adaptowanie tego mechanizmu - w Windows XP jest Secure Audio Path, ale na razie nie używa jej żaden sterownik do żadnej karty dźwiękowej...

Od pewnego czasu część API w MSDN jest oznaczane z Security Alert. Takie stare funkcje (zaimplementowane w poprzednich wersjach), jak wcsncpy czy StrCat, które nie mogą sprawdzać przepełnienia bufora, są specjalnie oznaczane i podczas kompilacji Visual Studio .NET pojawiają się ostrzeżenia. Nie wiadomo, jak będzie funkcjonować to API w ostatecznej wersji Windows Vista - w wersjach beta działa, natomiast wiele źródeł informuje o planach wprowadzenia list niedozwolonych odwołań API do typowych aplikacji. Bardzo wygodną opcją - zwłaszcza dla użytkowników domowych - jest Forgotten Password Wizard. Tworzy dysk, który pozwala resetować hasła w danej instalacji systemu, gdy zaginie hasło administratora.

Internet Explorer 7

Nowy IE7 obsługuje zakładki z możliwością grupowania, zapisu grupy itp. Podgląd wydruku ma wreszcie opcję autodopasowania i strona WWW zmieści się na kartce. Opcje analizy pishingu pozwalają zaznaczać witryny z podejrzanymi elementami albo powiadomić użytkownika, gdy witryna znajduje się na czarnej liście. Inną pożyteczną funkcją jest mechanizm ochrony rodzicielskiej. Obejmuje nie tylko IE, ale też np. uruchamiane gry. W tym wypadku możliwa jest kontrola oparta na ocenie według ESRB lub europejskiego PEGI. Można będzie kontrolować czas pracy użytkownika (jest wtedy informowany, że za 15 minut zostanie rozłączony lub wylogowany).

Monitorowane są żądania Get/Post, co pozwala np. eliminować tzw. treści osadzone z różnych portali, które będą nieodpowiednie dla dzieci. Można w ogóle zakazać uruchamiania niepodpisanych odpowiednio gier czy aplikacji. Ograniczenie uruchamiania można wprowadzić na liście ACL, blokować określone tytuły (baza jest konstruowana i obecnie zawiera ok. 2 tysięcy pozycji). Sama aplikacja może także zawierać opis w pliku GDF (Game Definition File) i używać stosownego API.

Programiści mają dostęp do biblioteki funkcji API, ale te ustawienia można także kontrolować, używając WMI. Podobnie jest ze ściąganiem plików czy uruchamianiem instalacji (niezależnie od uprawnień użytkownika). Oczywiście te same mechanizmy posłużą także do zarządzania użytkowaniem komputerów w firmie.

Gdy uruchamiamy jakiś program instalacyjny czy inny potencjalnie niebezpieczny proces w Viście, jesteśmy pytani, czy na pewno chcemy wykonać daną operację. Warto podkreślić różnicę w stosunku do mechanizmu runas (czy w pewnym sensie analogicznego mechanizmu w systemach uniksowych). Tam określane jest, że dany program uruchamiany jest z pełnymi prawami (administratora), tu ostrzeżenie pojawia się, gdy program ma wykonać ryzykowną operację - czyli cała aplikacja nie musi działać na pełnych prawach.


Zobacz również