30 rozdzial 29 r7vsk3gxbnas2q7g Nieznany (2)

background image

Rozdział 29

Programowanie w środowisku
Windows NT Server

Opracowywanie aplikacji przeznaczonych do pracy na platformie
Windows NT wymaga wprawy w wykorzystywaniu wielu zestawów
do tworzenia oprogramowania - SDK (Software Development Kit),
interfejsów programów użytkowych - API (Application
Programming Interface), technik programowania i przynajmniej
jednego zintegrowanego środowiska roboczego.

W bieżącym rozdziale zajmiemy się aktualnie stosowanymi
metodami tworzenia oprogramowania, których znajomość pozwoli
na sprawne i efektywne wykorzystanie zestawów do tworzenia
oprogramowania oraz interfejsów programów użytkowych.

Software Development Toolkits

Istnieje kilka zestawów narzędzi do tworzenia oprogramowania,
opracowanych przez Microsoft. Zestaw Win32 SDK zawiera
biblioteki potrzebne przy opracowywaniu aplikacji Win32 i OLE
pod Windows NT . Uzupełniony został o narzędzia do obsługi łączy
telefonicznych, elektronicznego handlu i dostępu do baz danych.

Pakiet Win32 SDK

Przed opracowywaniem aplikacji dla Windows NT powinniśmy się
zaopatrzyć w zestaw narzędzi Win32 lub w jeden z produktów
Microsoftu, zawierający ten zestaw. Win32 SDK obejmuje
biblioteki, przykłady, narzędzia oraz pliki pomocy,
wykorzystywane przy projektowaniu aplikacji Win32. Zalecanym
jest zaopatrzenie się w Microsoft Developers Network (MSDN)
CD, którego wersja profesjonalna zawiera zestaw Win32.

background image

1150

Rozdział 29

Interfejs programów użytkowych Win32 API

Interfejs programów użytkowych Win32, stanowiący część zestawu
narzędzi do tworzenia oprogramowania Win32, pozwala na
napisanie dowolnej aplikacji wykorzystującej w pełni dostępne
środowisko 32-bitowe. Należy dodać, że oprócz wymienionego
interfejsu, w

skład zestawu Win32 wchodzi wiele innych

interfejsów, umożliwiających stosowanie różnorodnych technik
programowania. Przykładem takiego interfejsu może być
zorientowany obiektowo Microsoft Foundation Classes (MFC),
pozwalający na wykorzystanie funkcji Windows 32 z poziomu C++
(lub innego języka zorientowanego obiektowo).

Funkcje udostępniane poprzez interfejs Win32 możemy podzielić
na następujące kategorie:

!

Zarządzanie systemem Windows: Zawarte są tu funkcje

i komunikaty do zarządzania zasobami systemu operacyjnego
Windows. Są wśród nich okna, schowki, wspólne okienka
dialogowe, kursory, menu NT , ikony, akceleratory klawiatur,
interfejsy dokumentów złożonych (MDI), komunikaty i kolejki
komunikatów, obsługa myszy, malowanie i

rysowanie,

prostokąty, zegary, klasa window, właściwości i

procedury

okien.

!

Sterowanie oknami: Znajdują się tu interfejsy do zarządzania

elementami związanymi ze sterowaniem okien - takimi, jak
sterowanie animacją, przeciąganie pól list, sterowanie
nagłówkami, klawiszami skrótów, listy obrazów, sterowanie
przeglądaniem list, wyświetlanie słupków postępu, wykazów
własności, kontrolki do edycji, okna statusowe, sterowanie
tabulowaniem, paski narzędzi, sterowanie zestawami narzędzi,
sterowanie paskami typu track bar, sterowanie przeglądaniem
drzew, sterowanie góra-dół, kontrolki typu combo, okienka
dialogowe, sterowanie edycją, pola list, paski przesuwania
i sterowanie statyczne.

!

Powłoka konsoli: Zawarte są tu funkcje i komunikaty do

programowania z poziomu powłoki. Powłoka jest aplikacją
pozwalającą na grupowanie, uruchamianie i sterowanie innymi
aplikacjami systemu operacyjnego Microsoft Windows.
Oferowane funkcje i

komunikaty umożliwiają tworzenie

background image

Programowanie w środowisku Windows NT Server

1151

aplikacji Panelu sterowania, a

ponadto kontrolę wersji

oprogramowania, rozszerzanie programu File Manager,
wykorzystywanie dodatkowych wygaszaczy ekranu
z dołączonych bibliotek oraz interfejsu Shell Dynamic Data
Exchange
do sterowania programem Program Manager
Resources, a

nawet wykorzystanie rozszerzenia powłoki

Windows 95 w Windows NT .

!

Interfejs urządzeń graficznych: Udostępnia on całe zestawy

funkcji do tworzenia i animacji zaawansowanych obiektów
graficznych.

!

Usługi systemowe: Windows NT oferuje wiele standardowych

i co ważne - stabilnych metod pracy z plikami, przekazywania
informacji poprzez sieć komputerową, danych aplikacji,
systemów bezpieczeństwa, mechanizmów obsługi wyjątków,
procesów, wątków, metod IPC, a także metod debugowania
aplikacji, monitorowania wydajności i

tworzenia kopii

zapasowych serwera.

!

Usługi sieciowe: Funkcje sieciowe z systemu Win32 są

niezależne od typu sieci. Mogą być wykorzystywane
w aplikacjach do otwierania i zamykania połączeń sieciowych,
pozyskiwania informacji na temat bieżącej konfiguracji sieci, do
zarządzania domeną. Usługa sieciowa API potrafi obsługiwać
funkcje programu LAN Manager, dynamiczną wymianę danych
poprzez sieć i interfejs Window Socket.

!

Usługi multimedialne: Win32 API udostępnia interfejsy

niskiego i

wysokiego poziomu do tworzenia aplikacji

multimedialnych. Pozwalają one na obsługę funkcji audio
(zarówno na wysokim jak i na niskim poziomie), odczytywanie-
zapisywanie plików multimedialnych, usługi multimedialne,
wykorzystanie zegara multimedialnego, obsługę joysticka.

Zestaw narzędzi do tworzenia oprogramowania OLE

Zestaw narzędzi OLE SDK oferuje kilka interfejsów i modeli
wspierających tworzenie obiektów niezależnych od platformy
i języka programowania. Jest w nim zawarta specyfikacja modelu
obiektów składowych (COM), stanowiącego podstawę dla
mechanizmu OLE i ActiveX.

background image

1152

Rozdział 29

Zestaw narzędzi OLE umożliwia obsługę interfejsu Microsoftu,
służącego do łączenia i wstawiania obiektów, narzędzia niezwykle
szeroko stosowanego do wprowadzania wzajemnych zależności
pomiędzy obiektami. Pozwala on na tworzenie aplikacji typu klient
jak i serwer, wykorzystujących w pełni zasoby dostępne w ramach
systemu operacyjnego Windows.

W następnych podrozdziałach przyjrzymy się składowym
elementom mechanizmu OLE. Wiele z

nich jest bardzo

skomplikowana, niemniej jednak warto się pomęczyć, gdyż pełne
wykorzystanie OLE wprowadzi nas do programowania na wysokim
poziomie abstrakcji na wielu platformach.

M odel obiektów składowych

Model obiektów składowych - COM (Component Object Model)
jest jedną z podstawowych technik OLE. Wyznacza on metodę
wzajemnego oddziaływania na siebie obiektów w

ramach

pojedynczej aplikacji, czy też pomiędzy wieloma aplikacjami.
Model COM definiuje pewne podstawowe interfejsy, oferujące
funkcje wspólne dla wszystkich technik bazujących na modelu COM
w ramach mechanizmu OLE.

M odel przekazywania danych

Model przekazywania danych - DTM (Data-Transfer Model)
umożliwia jednolitą metodę przekazu danych z wykorzystaniem
procedur typu „przemieść i upuść”, kopiuj i wklej, czy też na drodze
programowej. Model ten obsługiwany jest poprzez interfejs
IDataObject

.

Strukturalny model pamięci

Strukturalny model pamięci - SSM (Structured Storage Model)
określa metodę składowania i odczytu danych z pamięci. W ramach
tego modelu wyróżniamy dwa typu obiektów: obszary pamięci
i strumienie. Dostęp do wielu z

zasobów systemu Windows

uwarunkowany jest wykorzystaniem modelu SSM.

background image

Programowanie w środowisku Windows NT Server

1153

M odel dokumentów złożonych

Model dokumentów złożonych - CDM (Compound Document
Model)
jest dokumentem z innej aplikacji, który łączy w sobie
różne typy danych czy pozycji - takich jak dźwięk, formularze,
mapy bitowe. Mechanizm OLE pozwala na wykorzystywanie
dokumentów złożonych bez potrzeby „ręcznego” przełączania
pomiędzy aplikacjami.

M echanizm OLE Automation

Mechanizm OLE Automation stwarza możliwość aplikacjom
programowego sterowania obiektami innych aplikacji. Każdy
obiekt jest w

stanie udostępnić opis swoich możliwości

z wykorzystaniem opisów typu, zaimplementowanych w języku
opisu obiektów - ODL (Object Description Language). Język ODL
jest niezbędny w pracy z mechanizmem OLE.

Sterowanie

Obiekty OLE, które umożliwiają wykorzystanie właściwości
dokumentów OLE - aktywacji na miejscu - bazują na
automatycznym działaniu mechanizmu OLE przy ujawnianiu
własności i metod, i zapewnianiu obsługi zdarzeń wewnątrz aplikacji.

Zdalne wywoływanie procedur

Win32 API oferuje zdalne wywołania procedur - RPC (Remote
Procedure Call
), w celu umożliwienia aplikacjom uruchamiania
funkcji umieszczonych na zdalnych komputerach, znajdujących się
w dowolnym punkcie sieci komputerowej.

Implementacja wywołań RPC Microsoftu jest kompatybilna
z wersją środowiska Distributed Computing Environment (DCE),
opracowanego przez Open Software Foundation (OSF). Oznacza to,
że aplikacje RPC, napisane przy użyciu interfejsu Win32, są
w stanie komunikować się z aplikacjami RPC z innych systemów
operacyjnych wykorzystujących DCE. Więcej informacji na ten
temat można znaleźć w Microsoft Win32 Remote Procedure Call
Programmerś Guide and Reference
.

RPC może być skonfigurowany do pracy z jednym bądź kilkoma
środkami transportu, usługami nazewniczymi i

serwerami

background image

1154

Rozdział 29

bezpieczeństwa. W

skład systemu RPC Microsoftu wchodzi

biblioteka programów roboczych, język definiowania interfejsów -
IDL (Interface Definition Language) i jego kompilator.

Język IDL jest złożonym i

bardzo bogatym językiem,

pozwalającym na precyzyjne definiowanie parametrów interfejsów.
Pliki IDL składają się z dwóch części: nagłówka interfejsu i jego
części właściwej. W

wyniku kompilacji plików IDL

z wykorzystaniem kompilatora języka IDL otrzymujemy kod
zastępczy(proxy)/wstępny(stub), plik nagłówkowy interfejsu oraz
jego plik identyfikacyjny. Pliki uzyskane na drodze kompilacji
plików IDL są dalej przetwarzane poprzez kompilator i linker
C/C++. Wersja 4.1 systemu programowania Microsoft Visual C++
zawiera przykłady ilustrujące wykorzystanie RPC.

M ultimedia

Win32 SDK udostępnia usługi zarówno na wysokim jak i na niskim
poziomie, służące do tworzenia oprogramowania multimedialnego,
w pełni wykorzystującego możliwości komputerów
multimedialnych. Przykładowy program o nazwie SPEAKN, będący
przedstawicielem tego typu aplikacji, wchodzi w skład Microsoft
Visual C++ w wersji 4.1.

OpenGL

OpenGL, oryginalnie opracowany przez firmę Silicon Graphics
Incorporated (SGI) z przeznaczeniem dla ich stacji graficznych,
pozwala aplikacjom na tworzenie kolorowych obrazów
i

przestrzennych animacji o

wysokiej jakości, niezależnie od

wykorzystywanego systemu graficznego, systemu operacyjnego
i sprzętu. W jego skład wchodzi wiele komponentów, takich jak
pełny zestaw komend OpenGL, biblioteka narzędzi OpenGL (GLU),
dodatkowa biblioteka z

poradnikiem programowania

z wykorzystaniem OpenGL, oraz nowe interfejsy programów
użytkowych Win32 dla formatów pikselowych i

podwójnego

buforowania. Wersja 4.1 systemu programowania Microsoft Visual
C++ zawiera przykłady ilustrujące wykorzystanie OpenGL.

background image

Programowanie w środowisku Windows NT Server

1155

Rozszerzenia interfejsu Win32

Microsoft opracował kilka rozszerzeń interfejsu Win32,
pozwalających na programową kontrolę telefonii (T API),
komunikacji asynchronicznej (RAS), dostępu do baz danych
(ODBS, DAO, RDO) i handlu elektronicznego (Exchange SDK).

Interfejs TAPI

TAPI (Telephony Application Programming Interface) jest
interfejsem programów użytkowych do obsługi podstawowych
funkcji telefonicznych z

użyciem funkcji z

klasy urządzeń

liniowych. Urządzenie linowe (Line device) to fizyczne urządzenie,
takie jak telefaks, modem, karta ISDN, podłączone do linii
telefonicznej. Pozwala ono aplikacjom na wysyłanie
i

otrzymywanie informacji z

wykorzystaniem sieci połączeń

telefonicznych. Spośród funkcji tego interfejsu można wymienić:
wyślij, odbierz, połącz, nie rozłączaj, przesyłaj, monitoruj.

Interfejs M API

Interfejs programów użytkowych do przesyłania komunikatów -
MAPI (Messaging Application Programming Interface) pozwala na
wykorzystanie elektronicznych urządzeń służących do komunikacji,
takich jak telefaksy, poczta akustyczna, usługi komunikacji
publicznej AT &T Easy Link, CompuServe, MCI Mail. Interfejs
MAPI jest częścią składową systemu operacyjnego Windows 95
oraz systemu NT 4. Fakt, iż jest on zintegrowaną częścią systemu
operacyjnego, umożliwia standaryzację przy tworzeniu aplikacji
zarówno 16 jak i 32-bitowych.

Interfejs MAPI stanowi metodę przekazywania komunikatów,
pozwalającym różnorodnym aplikacjom współdziałać z różnymi
systemami transmisji komunikatów, bez względu na
wykorzystywane platformy sprzętowe. W skąd MAPI wchodzi
kilka niezależnych interfejsów, które razem tworzą otwarty
standard programowania, składający się z dwóch części. Pierwsza
z nich służy do przesyłania komunikatów dla aplikacji klienta, druga
zaś to interfejs programowy, wykorzystywany przez aplikacje
dostarczające usług.

background image

1156

Rozdział 29

W skąd MAPI wchodzą wspólne interfejsy programów użytkowych
oraz biblioteka dołączalna dynamicznie - DLL (Dynamic Link
Library
). Interfejsy wykorzystywane są przy tworzeniu i pracy
z rozmaitymi aplikacjami i systemami przekazu komunikatów.

MAPI SDK zawiera narzędzia wspomagające tworzenie aplikacji
typu klient, aplikacji dostarczających usług oraz usług polegających
na przekazywaniu komunikatów. MAPI dostępny jest w wersjach
16 i 32-bitowych. Jego 32-bitowa wersja zawarta jest w Win32
SDK. Zawiera ona wiele przykładów i

narzędzi napisanych

w językach C, C++, Visual Basic. Więcej informacji na ten temat
można znaleźć w Messaging Application Programming Interface
(MAPI) Programmer's Reference (s
tanowi on część dokumentacji
towarzyszącej zestawowi MAPI).

Zestaw narzędzi do tworzenia oprogramowania ODBC
w wersji 2.1

Zestaw do tworzenia oprogramowania na bazie otwartej
komunikacji między bazami danych -
ODBC (Open Database
Connectivity),
opracowany przez Microsoft w wersji 2.1, obejmuje
oprogramowanie, narzędzia oraz dokumentację, stworzone w celu
ułatwienia opracowywania sterowników ODBC oraz aplikacji
wykorzystujących ODBC w

systemie operacyjnym Windows.

Interfejs ODBC umożliwia aplikacjom dostęp do danych
przechowywanych przez systemy zarządzania bazami danych przy
użyciu języka SQL.

Ponadto pojedyncza aplikacja może stosować różne systemy
zarządzania bazami danych. Pozwala to na opracowywanie,
kompilowanie i rozprowadzanie aplikacji, bez potrzeby określania
konkretnego systemu zarządzania bazami danych (do współpracy
z którym jest on przeznaczony). Aby pracować z taką aplikacją
z konkretnym systemem zarządzania bazami danych, użytkownik
musi jedynie dołączyć do niej odpowiednie sterowniki baz danych.

Architektura ODBC obejmuje cztery części składowe:

!

Aplikacja: wykonuje obliczenia i wywołania funkcji ODBC -

w celu sformułowania wyrażenia w języku SQL i

odebrania

rezultatów jego wykonania;

background image

Programowanie w środowisku Windows NT Server

1157

!

Program do zarządzania sterownikami: ładuje sterowniki

uwarunkowane potrzebami aplikacji;

!

Sterownik: wykonuje wywołania funkcji ODBC, udostępnia

wyrażenia w języku SQL do określonego źródła danych, zwraca
uzyskane odpowiedzi aplikacjom;

!

Źródło danych: składa się z danych wykorzystywanych przez

użytkownika.

Więcej informacji na temat ODBC zawiera pakiet Microsoft ODBC
SDK Programmer's Reference
.

Zestaw narzędzi do tworzenia oprogramowania DAO

Obiekty dostępu do baz danych - DAO (Database Access Object)
i kolekcje stanowią podstawę przy tworzeniu i manipulowaniu
częściami składowymi systemu baz danych. Obiekty i kolekcje
odznaczają się właściwościami charakteryzującymi części składowe
baz danych i metody stosowane przy manipulowaniu nimi. Obiekty
i kolekcje oferują różne relacje zawierania (obiekty zawierają 0 bądź
więcej kolekcji).

Microsoft Visual C++ 4.x pokazuje przykład wykorzystania ODBC,
ilustrujący wykorzystanie klas MFC DAO przy tworzeniu baz
danych, tabel, zapytań, pól i indeksów. MFC i DAO stosują
Microsoft Jet Database Engine, obecnie w

wersji 3.0, do

uzyskiwania i składowania danych w systemowych bazach danych
i bazach danych użytkownika. Obiekty DAO mogą komunikować
się z każdym źródłem danych ODBC, dla którego istnieje sterownik
ODBC. Microsoft Jet Database Engine jest składnikiem systemu
zarządzania danymi w

oparciu o

który stworzono wiele

implementacji - jak np. klasy MFC DAO, Microsoft Access,
Microsoft Visual Basic, Microsoft Desktop Database Drivers
(obecnie w wersji 3.0).

Zestaw narzędzi do tworzenia oprogramowania RAS

Usługa zdalnego dostępu - RAS (Remote Access Service) - umożliwia
zdalnym użytkownikom taki sposób pracy, jakby byli oni
przyłączeni bezpośrednio do sieci komputerowej. Pozwala ona na
dostęp do innych komputerów w sieci tak, jakby wszystkie

background image

1158

Rozdział 29

komputery znajdowały się w

jednej fizycznej sieci. Interfejs

programów użytkowych RAS oferuje funkcje do zestawiania,
wykorzystywania i

przerywania zdalnych połączeń z

innymi

komputerami. Aplikacje utworzone z jego wykorzystaniem mogą
używać wersji statycznej albo dynamicznej tego interfejsu.

Zestaw narzędzi do tworzenia oprogramowania dla M S
Exchange Server

Zestaw narzędzi do tworzenia oprogramowania dla Serwera
wymiany pozwala na wykorzystanie nowego systemu
przekazywania komunikatów i danych. Służy on do tworzenia
aplikacji typu klient oraz programowych rozszerzeń dla
administratora tegoż serwera. Co więcej - umożliwia on
opracowywanie aplikacji typu serwer i klient, dostosowanych do
danego środowiska, oraz samodzielnych aplikacji typu serwer
i klient, wykorzystujących Exchange Server.

Zintegrowane środowisko robocze

Wraz z systemem programowania Microsoft Visual C++ (jak
również z wieloma innymi systemami programowania Microsoftu)
dostarczany jest program Microsoft Developers Studio. Program
ten pozwala, poprzez pojedynczy interfejs użytkownika, na
zarządzanie plikami z kodem źródłowym, ich edycję, zarządzanie
projektami oraz debugowanie programów.

W następnych podrozdziałach przedstawimy informację o kilku
nowych, poprawionych produktach Microsoftu. Wszystkie ich
funkcje dostępne są z poziomu Microsoft Developers Studio.

M icrosoft Visual C++ w wersji 4.1

W celu uzyskania możliwości wykorzystania omówionych poniżej
standardów i produktów Microsoftu należy zaopatrzyć się w system
programowania Microsoft Visual C++ w wersji 4.1.

background image

Programowanie w środowisku Windows NT Server

1159

Program M icrosoft Developers Studio

Visual C++ 4.1 zawiera program Microsoft Developers Studio,
który umożliwia - poprzez stworzenie zintegrowanego środowiska
roboczego - łatwą pracę w Visual C ++ wraz z innymi produktami
Microsoftu. Wśród produktów dostarczanych z Visual C++ 4.1,
współpracujących z

programem Microsoft Developers Studio,

należy wymienić:

!

Microsoft Development Library,

!

Microsoft FORT RAN Powerstation,

!

Microsoft Visual T est,

!

Microsoft Visual SourceSafe,

!

Microsoft Visual C++ Cross-Development Edition for

Macintosh.

W programie Microsoft Developers Studio wprowadzono nowe
elementy - Class Viewer (do przeglądania klas), Wizard bar (pasek
kreatora), emulator edytora Brief i Epsilon. Dołączony do niego
nowy system pomocy o dostępie bezpośrednim - Infoview - może
obsługiwać książki w formie elektronicznej oraz MSDN.

Visual C++ pozwala na łatwe i szybkie tworzenie aplikacji, dzięki
udostępnianym przez niego klasom i obiektom, takim jak galeria
części składowych, sterowanie OLE, kreator aplikacji użytkowych
(Custom AppWizard), rozszerzenia MFC. Kompilator Visual C++
4.1 jest zgodny z

najnowszymi standardami języka C++,

zapewniając informację uruchomieniową - RTTI (Runtime Type
Information
), bibliotekę szablonów standardowych - STL (Standard
Template Library
), obszary nazw, minimalną przebudowę programu,
przyrostowe linkowanie. Visual C++ 4.1 zawiera InstalSHIELD -
ogólnoświatowy standard do rozprowadzania oprogramowania
Microsoftu.

Oprócz poprawy wydajności, Visual C++ 4.1 został rozszerzony
o nowe elementy, wspomagające tworzenie aplikacji, z myślą
o wykorzystaniu sieci Internet. Pojawiły się takie komponenty, jak
klasy serwera Internetu, kreator aplikacji wspomagający
opracowywanie aplikacji internetowych, narzędzie udostępniające
sieć WWW z poziomu Developers Studio (uzyskiwane po wybraniu

background image

1160

Rozdział 29

pola Web Favorites z menu Help). Zapewnia ono połączenie
z komputerami świadczącymi usługi WWW, zawierającymi
informację na temat programowania w

Visual C++

(zamieszczonymi na dołączonej do programu liście), a także
z każdym innym miejscem, dowolnie wybranym przez
użytkownika.

Biblioteka M icrosoft Foundation Classes 4.0

Bibliotekę Microsoft Foundation Class Library (MFC) można
traktować jako podstawę (dlatego też niektórzy nazywają ją
szkieletem) do tworzenia aplikacji działających pod nadzorem
Microsoft Windows oraz aplikacji na inne platformy,
wykorzystujące Win32 API. Jej strukturę tworzą grupy klas C++,
reprezentujących takie obiekty, jak okna, dokumenty itp.

Nowe cechy

Visual C++ 4.1 oferuje zmodyfikowaną wersję przemysłowego
standardu - Micorosoft Foundation Class Library 4.0, wśród
którego nowych cech można wymienić:

!

dodatkowe wsparcie dla aplikacji pod Windows 95,

!

nowe klasy MFC dla obiektów DAO,

!

wsparcie dla dokumentów zawierających obiekty OLE,

!

nowe systemowe okna dialogowe.

Klasy dla serwera internetowego

MFC zawiera pięć nowych klas dla interfejsu programów
użytkowych dla serwera Internetu - ISAPI (Internet Server API).
Ich zastosowanie umożliwia tworzenie bibliotek dołączalnych
dynamicznie, zwiększających funkcjonalność serwerów Internetu
i stron WWW:

!

CHtmlStream: Klasa wywoływana przez CHttpServer,

w celu odesłania klientowi strumienia HT ML.

!

CHttpFilter: Klasa służąca do tworzenia filtrów serwera

Internetu, do wyświetlania komunikatów wysyłanych do (i z-)
serwera Internetu.

background image

Programowanie w środowisku Windows NT Server

1161

!

ChttpFilterContext: Klasa wykorzystywana przez

CHttpFilter

do obsługi wielokrotnych żądań współbieżnych.

!

CHttpServer: Klasa służąca do tworzenia rozszerzeń serwera

Internetu. Pozwala ona na tworzenie w oparciu o DLL - zamiast
stosowania wspólnego interfejsu bramy CGI (Common Gateway
Interface) - wydajnych aplikacji.

!

CHttpServerContext: Klasa wykorzystywana przez

CHttpServer

do obsługi wielokrotnych żądań współbieżnych.

Nowy kreator rozszerzeń ISAPI (ISAPI Extension Wizard) stwarza
możliwość opracowywania filtrów i

rozszerzeń serwerów,

tworzonych w oparciu o klasy ISAPI MFC. Dostęp do kreatora
rozszerzeń ISAPI uzyskamy po otwarciu okna dialogowego

New

Proj ect Workspace

(otwieranego poleceniem

New

z menu

File

)

i wybraniu pozycji

ISAPI

Extension

Wizard

.

Inne klasy M FC

Poniżej zamieściliśmy listę innych klas MFC, oferowanych wraz
z Visual C++ w wersji 4.1.

!

CDockState: Klasa typu Cobject, pozwalająca na

przechowywanie stanu pasków kontroli. Stwarza możliwość
zapisywania i odczytu informacji z rejestru Registry, plików INI
czy też obiektów CArchive.

!

CRecentFileList: Klasa typu Cobject, pozwalająca

na tworzenie list plików ostatnio wykorzystywanych.

!

CSharedFile: klasa typu CMemFile, służąca do obsługi

plików dzielonych, przechowywanych w

pamięci RAM,

wykorzystywanych do szybkiego zapisu danych tymczasowych,
oraz do przekazywania bajtów nie przetworzonych, jak
i obiektów pomiędzy niezależnymi procesami.

Nowe przykłady M FC

Wraz z Microsoft Visual C++ 4.1 dostarczanych jest wiele nowych
przykładów MFC, ilustrujących sposób realizacji następujących
zadań:

!

ACDUAL: Dodawanie podwójnych interfejsów do serwera OLE

Automation, stworzonego z

wykorzystaniem klas MFC.

background image

1162

Rozdział 29

Przykład ujawnia metodę utworzenia zwykłego interfejsu,
a następnie uzupełnienia go o interfejs powstały w

oparciu

o IDispatch.

!

BINDSCRB: T worzenie obiektów dokumentów OLE,

przeznaczonych dla narzędzia Binder z aplikacji Microsoft
Office 95 (opracowane na bazie przewodnika Scribble).

!

DLGTEMPL: Dynamiczne tworzenie szablonów okienek

dialogowych i ich wykorzystanie w klasach

CreateDialog

Indirect

oraz

InitModalIndirect

.

!

HTTPSVR: Wykorzystanie klas MFC i

WinSock

- do

zaimplementowania prostego serwera WWW HT T P,
pozwalającego na tworzenie i wykonywanie aplikacji serwera
CGI przy użyciu standardowych konstruktorów HT ML.

!

MFCUCASE: Wykorzystanie klas MFC do tworzenia

dynamicznie dołączalnych bibliotek filtrów Internetu.

!

ODBCINFO: Określanie możliwości sterowników ODBC

w trakcie ich pracy poprzez otwarcie wybranego źródła danych
ODBC i

wyświetlenie informacji z

wykorzystaniem stron

własności.

!

ROWLIST: Implementacja wyboru wierszy w trybie Report

klasy CListView.

!

WWWQUOTE: T worzenie aplikacji WWW do uzyskiwania infor-

macji.

Metody dostępu do przykładów w Visual C++ w wersji 4.1 zapisane
są w tabeli InfoView. Obecnie wszystkie przykłady (łącznie z MFC)
znajdują się pod nagłówkiem Samples (przeniesiono tam
wszystkie przykłady, dostępne dotychczas pod nagłówkiem
Visual C++ Books/MFC 4.x

). Alfabetyczna i tematyczna

lista przykładów MFC jest dostępna pod nagłówkiem

Key Visual

C++ Topics

(uzyskiwanym po wybraniu nagłówka

MFC Sampels

,

znajdującym się poniżej nagłówka MFC Topics).

background image

Programowanie w środowisku Windows NT Server

1163

Visual Basic 4.0

Microsoft Visual Basic jest językiem, pozwalającym zarówno na
szybkie tworzenie prototypów interfejsów użytkownika, jak i na
opracowywanie stabilnych systemów typu klient-serwer.

Zazwyczaj analiza problemu do rozwiązania pozwala podjąć decyzję
co do rodzaju języka programowania zastosowanego do stworzenia
implementacji. Decydujące są tutaj możliwości danego języka (czy
raczej jego ograniczenia). Obecne wersje VB 4.0 oraz VC++ 4.1
pozwalają na wykorzystanie praktycznie wszystkich nowych
technik programowania Microsoftu (z obiektami DAO czy też
ActiveX).

Microsoft Visual Basic Enterprise Edition CD-ROM jest systemem
programowania na platformie Windows. W jego skład wchodzi 16
i 32-bitowa wersja języka Visual Basic 4.0, zestaw MSDN (Microsoft
Developers Network for Visual Basic users
) i

system Visual

SourceSafe 4.0 (system sterowania plikami źródłowymi dla języka
Visual Basic 4.0), który może być wykorzystany jedynie
w Windows NT w wersji 3.51 lub późniejszej oraz w Windows 95.

Wraz z Visual Basic 4.0 dostarczany jest Visual Basic Application
Edition 2.0
. Obecna jego wersja jest w pełni kompatybilna ze
swoimi poprzednikami (tj. samodzielnych produktów z rodziny
Visual Basic) oraz z Visual Basicem w wersji 1.0, dołączanym do
systemów Microsoft Excel 5.0 oraz Microsoft Project 4.0. Pozwala
on na wykorzystanie OLE Automation, umożliwiającej z kolei
stosowanie funkcji innych aplikacji, przez kontrolowanie
istniejących w nich obiektów, z poziomu aplikacji napisanych
w Visual Basicu. W ten sposób można wykorzystać każdy obiekt,
potrafiący współpracować za pośrednictwem OLE Automation.

Dostępne w Windows 95 narzędzia, takie jak przeglądarki list,
przeglądarki drzew, paski statutu, paski narzędzi, okienka dialogowe
z

tabelami - pozwalają na tworzenie aplikacji o

naprawdę

profesjonalnym wyglądzie, niczym nie różniących się od
oryginalnych produktów Microsoftu.

Zdalna automatyzacja umożliwia tworzenie części składowych
aplikacji współużytkowalnych i

wielokrotnego wykorzystania,

stosujących w komunikacji sieciowej interfejs OLE Automation.

background image

1164

Rozdział 29

Obiekty zdalnych danych - RDO (Remote Data Object) oraz
sterowanie RDC (Remote Data Control), pozwalają aplikacjom na
wykorzystanie źródeł danych dostępnych poprzez ODBC,
z pominięciem lokalnego procesora zapytań. Oprócz tego, że
obiekty danych zdalnych i sterowanie Remote Data pozwalają
na dostęp do dowolnego źródła danych obsługiwanego przez ODBC
- zostały zaprojektowane tak, aby w pełni wykorzystać zalety
serwerów baz danych, stosujących zaawansowane mechanizmy do
obsługi zapytań (jak np. serwer SQL Microsoftu czy Oracle).

Perl

W skład Windows NT 3.51 Resource Kit wchodzi także interpreter
języka Perl. Perl jest przeznaczony do przeglądania dowolnych
plików tekstowych, wyszukiwania w nich potrzebnych informacji,
i tworzenia raportów na ich podstawie. Łączy on w sobie kilka
z najlepszych cech języka C: sed, awk i sh.

Windows NT Perl 5

Windows NT Perl 5 bazuje na wersji języka Perl, przeznaczonej dla
systemu operacyjnego UNIX, potrafiącej wykorzystywać pakiety.
Pakiet może spełniać rolę klasy z wielokrotnym dziedziczeniem
dynamicznym oraz z

metodami wirtualnymi. Perl 5 może

obsługiwać wiele implementacji DBM równocześnie oraz OLE
Automation. Poza tym, pozwala on na łatwe wykonywanie
wstawek w programach pisanych w C i C++.

W celu wykorzystania systemu Windows NT Perl 5 potrzebny jest
komputer działający pod kontrolą Windows NT Workstation lub
Advanced Server w wersjach 3.5 lub późniejszych, z przynajmniej
2MB wolnej przestrzeni na dysku.

Skrypty w języku Perl

Skrypty w języku Perl składają się z szeregu deklaracji i instrukcji
oraz słów kluczowych. Przykładowe słowa kluczowe to:

continue

goto

unless

do{}until if

until

for

sub

while

foreach

switch

background image

Programowanie w środowisku Windows NT Server

1165

Więcej informacji na temat programowania w Perlu można znaleźć
w książce Teach Yourself Perl in 21 Days, wydanej przez Sams
Publishing.

Należy pamiętać, że z powodu różnic występujących w plikach
tekstowych tworzonych pod UNIX-em i

Windows NT (w

przypadku UNIX-a linie kończone są znakiem przesuwu wiersza,
w Windows NT w tym samym celu stosowane są dwa znaki
równocześnie: powrotu karetki i przesuwu wiersza), przenoszenie
skryptów Perla z

UNIX-a pod Windows NT wymaga

przeprowadzenia dodatkowego formatowania.

Źródła informacji dotyczące języka Perl

Informacje na temat języka Perl i jego rozszerzeń udostępniają
usługi sieciowe typu WWW, Usenet czy anonimowy FT P.

Wśród grup dyskusyjnych, zajmujących się tematyką Perla można
wymienić:

comp.lang.perl

comp.lang.perl.announce

comp.lang.perl.misc

Serwery WWW na temat Perla:

http://www.khornos.unm.edu/staff/neilb/perl/metaFAQ/
metaFAQ.html

http://www.metronet.com/perlinfo/perl5.html

http://www.metornet.com/0/perlinfo/perl5/manual/
perl.html

http://www.eecs.nwu.edu/perl/perl.html

Anonimowy FT P udostępnia informację o Perlu z:

ftp://ftp.microsoft.com

ftp://ftp.khoros.unm.edu/pub/perl/

ftp://perl.com/pub/perl/

ftp://ftp.cs.ruu.nl/pub/perl/

ftp://ftp.funet.fi/pub/languages/perl/ports/

ftp:/śrc.doc.ic.ak.uk/packages/perl5/

background image

1166

Rozdział 29

Język hipertekstowego opisu strony - HTM L

Język hipertekstowego opisu strony - HTML (Hypertext Markup
Language
) znajduje zastosowanie w

sieci WWW. T ermin

"hipertekstowy" pojawia się w jego nazwie z powodu istniejących
odwołań do innych dokumentów. Każda strona WWW została
stworzona w tym języku. Wszystkie elementy stron WWW, takie
jak ich format, odwołania dostępne z pomocą myszki, obrazy
graficzne, dokumenty multimedialne, formularze uzyskiwane są za
pomocą instrukcji HT ML.

Jeden z programów wspomagających tworzenie stron WWW -
Word Internet Assistant, dostępny jest w sieci MSDN. Można go
również uzyskać za pośrednictwem serwera
www.microsoft.com

.

Zaawansowane metody programowania
w Windows NT 4

Microsoft oferuje programistom tworzącym użytkowe rozszerzenia
systemu operacyjnego różne interfejsy API, interfejsy obiektowe
oraz wzorce.

Rozszerzenia powłoki Windows 95

W Windows NT 4 możliwe jest tworzenie rozszerzeń powłok
Windows NT - dzięki szeregowi interfejsów, zapewniających
programową kontrolę nad powłoką poprzez arkusze własności
(property sheets). Dla przykładu możliwe jest przypisywanie ikon
poszczególnym plikom, dodawanie poleceń w menu

Context

czy

File

, sterowanie wieloma innymi częściami powłoki.

Istnieją następujące klasy interfejsowe, służące do tworzenia
rozszerzeń powłoki:

!

IShellExtInit: Przydziela interfejs wykorzystywany do

inicjalizacji rozszerzeń arkuszy własności, rozszerzeń menu
kontekstowego lub programu obsługi mechanizmu „ciągnij
i upuść”.

background image

Programowanie w środowisku Windows NT Server

1167

!

IShellFolder: Przydziela interfejs utworzony przez

powłokę, wykorzystywany do określania zawartości folderów.

!

IShellLink: Przydziela interfejs umożliwiający aplikacjom

tworzenie i usuwanie połączeń z powłoką.

!

IShellPropSheetEx: Przydziela interfejs pozwalający

programowi obsługi arkuszy własności na dodawanie i zamianę
stron w arkuszach własności obiektów typu plik.

System Visual C++ 4.1 zawiera przykład SHELLEXT.

Rozproszony model obiektów składowych

Rozproszony model obiektów składowych - DCOM (Distributed
Component Object Model
), znany również jako sieciowe łączenie
i wstawianie obiektów (Network OLE), pozwala na rozszerzenie
technik programowania, dostępnych dzięki systemowi OLE 2.0,
o elementy

związane z

pracą w

sieci. Właśnie DCOM

zawdzięczamy, iż operowanie obiektami w sieci wygląda tak samo,
jak obiektami lokalnymi.

Wyróżnić możemy następujące właściwości rozproszonego modelu
obiektów składowych:

!

Przeźroczystość położenia: Aplikacje nie muszą znać

położenia wykorzystywanych przez nie obiektów.

!

Przeźroczystość łączenia: Aplikacje typu klient nie muszą

znać metody dołączania obiektów - czy jako DLL, czy jako
obiekty lokalne lub zdalne .

!

O biekty autonomiczne: Istnieje możliwość tworzenia

wysokowydajnych usług obsługujących obiekty, pozwalających
na równoczesne wywołania zarówno przez zdalnych, jak
i lokalnych klientów. Mechanizm OLE (z wywołaniami RPC)
tworzy system wątków, przeznaczonych do wykorzystania przez
pojawiające się wywołania. W chwili nadejścia wywołania przez
klienta metody dotyczącej danego obiektu, jest ono kierowane
do odpowiedniego wątku wykonującego daną metodę.

!

O chrona uruchamiania: System umożliwiający, jedynie

administratorom, uruchamianie istniejących klas ze zdalnych
klientów.

background image

1168

Rozdział 29

!

O chrona dostępu: Pozwala, tylko administratorom, na dostęp

do istniejących, udostępnionych objektów ze zdalnych stacji
roboczych.

!

O chrona na poziomie wywołań: Wymusza ochronę na

poziomie każdego wywołania dla połączenia między klientem
a objektem (serwerem).

Zaawansowane interfejsy API dla rozproszonych modeli
obiektów składowych

Autonomiczne interfejsy API

Autonomiczne interfejsy API umożliwiają zastosowanie
wielowątkowego, współbieżnego dostępu do obiektów. W modelu
wykorzystywanym do uzyskania współbieżności (często
nazywanym apartment model), obiekt zyskuje współbieżność - albo
dzięki wątkowi przez który został wprowadzony, albo na podstawie
informacji zapisanych w rejestrach (jak to jest w przypadku serwera
DLL).

!

CoInitializeEx: Inicjalizuje model COM dla

wykorzystania przez bieżący wątek.

Aktywacyjne interfejsy API dla klientów

Aktywacyjne interfejsy API pozwalają na udostępnianie funkcji
lokalnie, bądź zdalnie utworzonym wywołaniom określonych klas.
Do funkcji często pełniących rolę interfejsów API możemy
zaliczyć:

!

CoCreateInstanceEx: T worzy wywołanie określonej

klasy na wyznaczonej maszynie.

!

CoGetClassObject: Odzyskuje obiekt z określonej klasy.

!

CoGetInstanceFromFile:

T worzy nowy obiekt

i inicjalizuje go na podstawie informacji zawartej w pliku
poprzez IPersistFile::Load.

!

CoGetInstanceFromIStorage: T worzy nowy obiekt

i inicjalizuje go na podstawie IStorage przy użyciu Ipersist
Storage::Load

.

background image

Programowanie w środowisku Windows NT Server

1169

Interfejs bezpieczeństwa wywołań a interfejsy API

Model COM jest w stanie obsłużyć dwa różne mechanizmy
zapewniające bezpieczeństwo w systemie wywołań. Pierwszy z nich
wykazuje duże podobieństwo do DCE-RPC, kiedy to aplikacja sama
może dokonywać weryfikacji związanych z

bezpieczeństwem.

W drugim przypadku, kontrola odbywa się w sposób automatyczny
przez sam model COM. Aby wykorzystać drugi z wymienionych
mechanizmów, aplikacje powinny mieć możliwość dostarczenia
pewnego zbioru informacji, pozwalających mechanizmowi COM na
dokonanie wywołań, niezbędnych do zapewnienia bezpieczeństwa
obiektom aplikacji. Do funkcji stosowanych jako interfejsy API
można zaliczyć:

!

CoInitializeSecurity: Inicjuje warstwę

bezpieczeństwa.

!

CoQueryAuthenticationServices: Zwraca listę auto-

ryzowanych usług, zarejestrowaną podczas wywołania funkcji
CoRegisterAuthenticationServices

.

!

CoRegisterAuthenticationServices: Ustala listę

autoryzowanych usług, wykorzystywaną przez model COM,
w celu autoryzacji przychodzących wywołań.

!

IClientSecurity: Umożliwia klientom nadzorowanie

systemu bezpieczeństwa przy wywołaniach poszczególnych
interfejsów.

!

IServerSecurity: Umożliwia serwerowi uzyskiwanie

informacji (dotyczącej bezpieczeństwa poszczególnych
wywołań) oraz przerwanie wywołania.

Win32 SDK zawiera kilka przykładów na wykorzystanie rozproszo-
nych modeli obiektów składowych.

OLECNFG

OLECNFG stosowany jest przez zdalne wywołanie narzędzia
konfiguracyjnego Registry. Ono właśnie ustawia i tworzy nowe
pozycje Registry - na podstawie domniemanej listy kontroli
dostępu - ACL (Access Control List). Lista ACL służy do kontroli
każdego elementu, z którym została skojarzona. Praktycznie każdy

background image

1170

Rozdział 29

element posiadający nazwę może zostać skonfigurowany tak, aby
wykorzystywał dostępne mechanizmy zapewniające bezpieczeństwo
w systemie. Lista kontroli dostępu, obejmująca identyfikatory
ochrony, może być modyfikowana „ręcznie”, w

programie

regedt32

.

W przypadku uruchomienia bez parametrów, omawiane narzędzie
wyświetla bieżące wartości globalnych pól wywołań - wśród których
wyróżnić możemy: EnableNetworkOLE, DefaultLaunch
Permission

, DefaultAccessPermission oraz Legacy

AuthenticationLevel

.

Tworzenie własnych aplikacji serwera
pod Windows NT 4

Z reguły złożoność opracowywanych aplikacji rośnie równolegle
z rozmieszczaniem ich części składowych w ramach dostępnej sieci.
Interfejs Win32 API pozwala na pełną kontrolę synchronizacji
procesów i

wątków oraz na rejestrowanie aplikacji oraz

monitorowanie wydajności systemu w trakcie jego pracy. Wraz
z narzędziami Windows NT , interfejs Win32 umożliwia
programistom tworzenie stabilnych i przydatnych, a przy tym
niejednokrotnie złożonych aplikacji. Co więcej - Win32 jest
interfejsem programów użytkowych niezależnym sprzętowo (może
pracować na takich platformach, jak RISC, ALPHA, MIPS itp).

Planowanie architektury aplikacji wymaga na ogół znajomości
zasobów, jakimi będziemy dysponować. Odnosi się to zwłaszcza do
systemów o

rozbudowanej strukturze, jakim z

pewnością jest

Windows NT .

Procesy

Interfejs programów użytkowych Win32 umożliwia tworzenie,
sterowanie, ustalanie priorytetów oraz synchronizację procesów
w

systemie Windows NT . Stwarza on możliwość kontroli

priorytetów procesów potomnych, a

nawet całych wątków

potomnych. Do podstawowych funkcji, służących do kontroli
procesów w systemie NT , zaliczamy:

background image

Programowanie w środowisku Windows NT Server

1171

!

CreateProcess: T worzy ona nowy proces i

jego

podstawowy wątek. Utworzony proces wywołuje określony plik
wykonywalny.

!

ExitProcess: Kończy działanie procesu i jego wszystkich

wątków.

!

GetPriorityClass: Zwraca klasę priorytetów dla określo-

nego procesu.

!

SetPriorityClass: Kontroluje priorytet klasy zgodnie

z tym, na co pozwala Windows NT .

W przypadku operowania priorytetem o nieokreślonej wartości,
system NT przyjmuje jego wartość domyślną.

Wątki

Wątki wykazują duże podobieństwo do procesów - z tą różnicą, że
dla pewnych architektur pozwalają na swobodniejsze (niż procesy)
sterowanie z poziomu programu. Wśród podstawowych funkcji do
kontroli wątków w systemie Windows NT należy wymienić:

!

CreateRemoteThread: T worzy wątek działający w prze-

strzeni adresowej innego procesu.

!

CreateThread: T worzy wątek wykonywany w

ramach

przestrzeni adresowej procesu wywołującego funkcję.

!

ExitThread: Przerywa działanie wątku.

!

GetThreadPrioryty: Zwraca wartość priorytetu

określonego wątku.

!

ResumeThread: Zmniejsza wartość licznika zawieszenia

danego wątku. W przypadku, gdy licznik zawieszenia wątku
przyjmuje wartość 0, przywracane jest wykonywanie
wstrzymanego wątku.

!

SetThreadPriority: Ustala wartość priorytetu

określonego wątku.

!

Sleep: Wstrzymuje (zamraża) realizację bieżącego wątku na

określony okres.

background image

1172

Rozdział 29

!

SleepEx: Powoduje przejście bieżącego wątku do stanu

oczekiwania - dopóki nie minie określony czas, lub nie pojawi
się wywołanie funkcji potwierdzenia zakończenia operacji
wejścia-wyjścia.

!

SuspendThread: Powoduje zaniechanie realizacji

określonego wątku.

!

TermianteThread: Przerywa działanie wątku.

Synchronizacja

Interfejs Win32 oferuje kilka metod umożliwiających wzajemne
wykluczanie i synchronizację. Przy tworzeniu wielowątkowych
procesów, niezbędna jest znajomość następującego zestawu funkcji:

!

CreateEvent: T worzy obiekt typu zdarzenie, z nazwą lub

bez.

!

CreateMutex: T worzy obiekt typu mutex, z nazwą lub bez.

!

CreateSemaphore: T worzy obiekt typu semafor, z nazwą

lub bez.

!

ReleaseMutex: Zwalnia relację własności określonego

obiektu typu mutex.

!

ReleaseSemaphore: Zwiększa licznik określonego obiektu

typu semafor o określoną wartość.

!

ResetEvent: Ustawia stan określonego obiektu typu

zdarzenie na nonsignaled.

!

SetEvent: Ustawia stan określonego obiektu typu zdarzenie

na signaled.

!

WaitForMultipleObjects: Funkcja wywoływana wtedy,

gdy stan jednego (jakiegokolwiek) lub wszystkich z określonego
typu obiektów zostanie ustawiony na signaled, a także gdy
upłynie określony czas oczekiwania.

!

WaitForSingleObjects: Powoduje powrót funkcji, gdy

stan określonego obiektu zostaje ustawiony na signaled lub
gdy upłynie określony czas oczekiwania.

background image

Programowanie w środowisku Windows NT Server

1173

Przykłady obsługi procesów, wątków oraz zdarzeń znajdziemy
w pakiecie Microsoft Visual C++, w wersjach 2.x lub 4.x.

Rejestr

Każda aplikacja serwera, działająca jako usługa w systemie Windows
NT , wymagała będzie dostępu do informacji z rejestru Windows
(Registry). Funkcje do jego obsługi pozwalają na dostęp do
różnorodnych identyfikatorów i wartości w nim przechowywanych.
W

Registry informacje o

serwerze oraz dane dotyczące

poszczególnych usług w systemie Windows NT składowane są pod:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

Wśród funkcji często wykorzystywanych - w celu uzyskania
dostępu do rejestru Windows Registry - należy wymienić:

!

RegConnectRegistry: Zestawia połączenie z ustalonym

programem obsługi Registry na innym komputerze.

!

RegCreateKeyEx: T worzy określony identyfikator.

!

RegOpenKeyEx: Otwiera określony identyfikator.

!

RegQueryValueEx: Wyszukuje typ i dane dla określonej

nazwy wartości skojarzonej z

otwartym identyfikatorem

Registry.

!

RegSetValueEx: Ustawia wartość skojarzoną z określonym

identyfikatorem.

Rejestr zdarzeń

Narzędzie do rejestracji zdarzeń w Windows NT - Event Log -
umożliwia jednolity, centralny zapis istotnych zdarzeń sprzętowych
i programowych zachodzących w systemie. Dzięki Event Log nie
trzeba opracowywać własnego mechanizmu rejestracji zdarzeń
w

systemie, wykorzystywanego w

aplikacjach tworzonych

z użyciem narzędzi Win32. Jak wiadomo, realizacja zadania tego
typu jest wyjątkowo trudna w pracy z wielowątkowymi aplikacjami
wieloprocesowymi.

Monitor zdarzeń - Event Viewer- udostępnia standardowy interfejs
użytkownika do przeglądania rejestracji oraz interfejs programowy

background image

1174

Rozdział 29

- do testowania skryptów rejestracji. Wśród częściej stosowanych
funkcji należy wymienić:

!

DeregisterEventSource: Zamyka uchwyt zwracany

przez RegisterEventSource.

!

RegisterEventSource: Zwraca uchwyt, wykorzystywany

przez funkcję ReportEvent, w celu rejestracji zdarzeń.

!

ReportEvent: Dokonuje wpisu na końcu określonego

rejestru zdarzeń.

Usługi w Windows NT

Usługę stanowi wykonywalny obiekt, zainstalowany w bazie danych
Registry, tworzonej przez program do sterowania usługami - Service
Control Manager (SCM
) - dla zapewnienia jednolitej i bezpiecznej
metody sterowania usługami w systemie. W przypadku każdego
komputera działającego pod nadzorem NT , przy uruchamianiu
systemu inicjowany jest automatycznie proces SCM. Pełni on
w systemie rolę serwera zdalnego wywoływania procedur (RPC).

Funkcje interfejsu programów użytkowych Win32, związane
z SCM, wykorzystują mechanizmy RPC - dzięki czemu
konfigurowanie usług oraz procesy sterowania nimi mogą
oddziaływać na usługi uruchamiane na zdalnych komputerach.
Poniższe funkcje służą do rejestrowania i tworzenia z aplikacji
użytkownika usług NT .

!

CreateService: T worzy obiekt typu usługa i dodaje go do

określonej bazy danych programu SCM.

!

RegisterServiceCtrlHandler: Rejestruje funkcję do

obsługi sterowania usługą.

!

SetServiceStatus: Aktualizuje informację o

statusie

wywołującej ją usługi, przechowywaną w

programie do

sterowania usługami.

Pakiet Microsoft Visual C++, w wersjach 2.x lub 4.0, zawiera
przykład usługi w Windows NT .

background image

Programowanie w środowisku Windows NT Server

1175

M onitorowanie wydajności

Wraz z Windows NT wprowadzono pojęcia liczników i obiektów
wydajności, pozwalających na monitorowanie wydajności
z poziomu aplikacji tworzonych przez użytkowników. Obiekty
wydajności
to nic innego, jak zbiór liczników wykorzystywanych
do pomiaru wydajności w systemie, na poziomie poszczególnych
procesów (lub nawet niższym).

Windows NT Perform jest uniwersalnym narzędziem,
przeznaczonym do monitorowania. Jest ono niezależne od innych
liczników w systemie, do tego łatwo rozszerzalne. Pozwala na
zdalne bądź lokalne przeglądanie liczników wydajności z poziomu
aplikacji użytkownika. Liczniki te są obsługiwane przez obiekty
rozszerzone (extended objects)
- w przeciwieństwie do obiektów
systemowych
, stanowiących integralną część systemu operacyjnego.

W ramach interfejsu Win32 dostarczanych jest kilka struktur
danych, umożliwiających wykorzystanie liczników i

obiektów

wydajności. Wśród nich znajdują się:

!

PERF_COUNTER_DEFINITION: Opisuje licznik wydajności.

!

PERF_DATA_BLOCK: Zawiera dane dotyczące wydajności,

dostarczane przez funkcję RegQueryValueEx.

!

PERF_INSTANCE_DEFINITION: Zawiera informacje

zależne od uruchomienia dla bloku danych związanych
z wydajnością.

!

PERF_OBJECT_TYPE: Opisuje informację dotyczącą

wydajności i zależną od obiektu.

Przykład wykorzystania obiektów wydajności znajdziemy
w zestawie NT Resource Kit (MSDN).


Wyszukiwarka

Podobne podstrony:
29 rozdzial 28 ciw47mwstcqakqpq Nieznany
29 rozdzial 28 w3cbrpnwzh762znr Nieznany (2)
29 rozdzial 28 ciw47mwstcqakqpq Nieznany
29 rozdzial 28 w3cbrpnwzh762znr Nieznany (2)
Rozdział 29 i 30
05 rozdzial 04 nzig3du5fdy5tkt5 Nieznany (2)
DGP 2014 12 29 rachunkowosc i a Nieznany
28 rozdzial 27 vmxgkzibmm3xcof4 Nieznany (2)
Rozdział 29, Dni Mroku 1 - Nocny wędrowiec
22 Rozdzial 21 KP4Q5YBIEV5DBSVC Nieznany (2)
09 08 Rozdzielnice budowlane RB Nieznany (2)
17 rozdzial 16 fq3zy7m2bu2oan6t Nieznany (2)
Kanicki Systemy Rozdzial 10 id Nieznany
24 rozdzial 23 wjv3mksbkbdm37qy Nieznany
13 Rozdziae 12id 14782 Nieznany (2)
FP 30 kolo id 180395 Nieznany
16 rozdzial 15 EJCDLTJY3F3I2FKL Nieznany (2)
14 rozdzial 13 w2pa42u4da5r3dcm Nieznany (2)
16 rozdzial 15 zpgg3d2etikxyjv3 Nieznany

więcej podobnych podstron