Microsoft, kropka, sieć

Zasada funkcjonowania .NET w Sieci oznacza przejście od publikowania informacji (dokumenty HTML, ASP czy PHP) do publikowania usług.

Zasada funkcjonowania .NET w Sieci oznacza przejście od publikowania informacji (dokumenty HTML, ASP czy PHP) do publikowania usług.

Minęło już kilka lat od pojawienia się technologii ASP, pozwalającej na w miarę proste i tanie tworzenie dynamicznych serwisów WWW. Standard ten szybko podbił serca programistów na całym świecie wyznaczając nowe kanony projektowania interaktywnych aplikacji sieciowych. Podejście koncepcyjno-programistyczne zaoferowane przez Microsoft okazało się skuteczne i, mimo pewnych wad, do dziś stanowi najlepsze rozwiązanie dla developerów i projektantów oprogramowania. Gigant z Redmond nie spoczął jednak na laurach i przygotowuje kolejną - przełomową jego zdaniem - platformę programistyczną, stworzoną na potrzeby serwisów sieciowych.

Jakkolwiek koncepcyjnie technologia ASP.NET (oznaczona dotychczas kodową nazwą ASP+) stanowi rozwinięcie platformy ASP powstałej już w 1996 r., nowe rozwiązanie Microsoftu pod wieloma względami wykracza poza narzucone dotychczas ramy.

Architektura

Nowe środowisko programistyczne zapewnia komfort pracy i kontrolę nad realizowanym projektem.

Nowe środowisko programistyczne zapewnia komfort pracy i kontrolę nad realizowanym projektem.

Kluczowym elementem platformy .NET jest środowisko uruchomieniowe (CLR - Common Language Runtime). Jedną z jego części jest zbiór bibliotek (a właściwie komponentów) zorganizowanych w logiczną strukturę nazw. Realizują one większość podstawowych funkcji, takich jak dostęp do danych, operacje wejścia/wyjścia, obsługa typów czy kontakt z siecią. Ponadto środowisko CLR odpowiada za prawidłowe wykonywanie kodu programu. Dzięki mechanizmom znanym dotychczas jako usługi COM+, komponenty zgodne ze specyfikacją .NET mogą być efektywnie zarządzane w obrębie zdefiniowanej aplikacji. Dotyczy to głównie mechanizmów uwierzytelniania i auto-ryzacji dostępu, podziału obciążenia (Component Load Balancing) oraz obsługi transakcji. Kontroli podlega też kod wykonywany podczas uruchomienia programu. Zaawansowane opcje zarządzania kodem pozwalają na odzyskiwanie nie używanych zasobów systemowych (garbage collection), sprawną obsługę wyjątków (służą one do sygnalizowania błędów w czasie wykonywania programu), integrację kodu stworzonego w różnych językach programowania czy zaawansowane opcje zabezpieczeń (jedną z nich jest tzw. silne typowanie, polegające na restrykcyjnej kontroli typów zmiennych przez kompilator). Nie-które z języków obsługiwanych przez .NET (Visual Basic, C#, JScript czy Perl) mają wsparcie dla języka IL (Intermediate Language - język pośredni). Oznacza to, iż podczas tworzenia komponentu kod źródłowy jest tłumaczony na język pośredni, niezależny od platformy systemowej czy sprzętowej. Ostateczna kompilacja do kodu natywnego odbywa się podczas uruchomienia programu. Fragmenty skompilowanego kodu są następnie buforowane w pamięci (co przyspiesza późniejsze wykonywanie aplikacji).

Możliwości

Korzystanie z dobrodziejstw platformy .NET powinno przynieść przede wszystkim znaczne skrócenie czasu tworzenia aplikacji. Dotyczy do zarówno klasycznych "okienkowych" aplikacji czy komponentów, jak i (przede wszystkim) serwisów opartych na technologii ASP.NET. Duży nacisk twórcy systemu położyli na łatwość wymiany informacji z innymi aplikacjami. Tym też należy tłumaczyć wszechobecność języka XML i pochodnych specyfikacji, takich jak BizTalk, SOAP czy DISCO. Dzięki temu możliwe jest tworzenie aplikacji współpracujących z programami, np. działającymi pod kontrolą systemu UNIX czy Mac OS. Jednocześnie korzystanie ze standardów typu CORBA czy COM jest szansą na skuteczną integrację (na poziomie kodu wykonywalnego) tworzonych komponentów z istniejącymi rozwiązaniami programistycznymi. Kluczem do budowania wydajnych programów jest sku-teczne i wygodne środowisko rozwoju aplikacji (IDE). Takim narzędziem w przypadku .NET będzie nowa wersja pakietu MS Visual Studio. Wspiera ono wszystkie etapy tworzenia oprogramo-wania: od modelowania i organizacji pracy, poprzez tworzenie kodu, debugowanie, testo-wanie aplikacji, po przygotowanie wersji instalacyjnej. Rozbudowane opcje raportowania i pracy grupowej powinny zadowolić nawet najbardziej wymagających programistów.

Zastosowania

Platforma rozwojowa .NET to nie tylko nowe wcielenie technologii ASP, lecz także zbiór mechanizmów kontrolujących wykonywanie dowolnego typu programów. Szczególny nacisk jednak położono na aplikacje pracujące jako usługi WWW. Do ich realizacji można użyć szerokiej palety narzędzi, poczynając od ASP.NET, poprzez komponenty, skończywszy na plikach wykonywalnych czy skryptach. Dostęp do nich odbywa się przez uniwersalny protokół sieciowej transmisji HTTP. Takie podejście w połączeniu z nowo opracowanym standardem UDDI (Universal Description, Discovery and Integration - uniwersalna metoda opisu, odkrywania i integracji [usług]) otwiera drogę do zupełnie nowego modelu serwisów internetowych. Filozofia funkcjonowania .NET w sieci oznacza więc przejście od publikowania informacji (dokumenty HTML, ASP czy PHP) do publikowania usług.

Projektując usługi (pozwalające np. na wyszukiwanie informacji, zakupy online czy sprawdzanie notowań akcji na elektronicznej giełdzie papierów wartościowych) na potrzeby serwisu WWW, programista będzie mógł z łatwością udostępnić tworzone funkcje autorom innych serwisów. Strategia ta pozwala na budowanie złożonych, funkcjonalnych serwisów internetowych z fragmentów zlokalizowanych na serwerach różnych firm czy organizacji. W takiej sytuacji zadanie programisty ogranicza się do zaprojektowania i połączenia w sensowną całość swego rodzaju klocków rozrzuconych po innych serwerach oraz ewentualnie strony wizualnej witryny. Skoro proces pozyskiwania i obróbki danych został przeniesiony na inne serwery, jest to szczególnie kusząca perspektywa dla serwisów pośredniczących w dostarczaniu informacji (czy usług) - portali, stron pośrednictwa pracy, biur turystycznych itp. Powoli zaczyna realizować się dotąd futurystyczna wizja firmy "zatrudniającej" wyłącznie komputer podłączony do sieci.

Perspektywy na przyszłość

Choć .NET już dzisiaj oferuje programistom ogromne możliwości, na pełnię korzyści płynących ze stosowania tego standardu (jeśli zostanie uznany za standard) przyjdzie jeszcze poczekać. Twórcy .NET oceniają, że potrzeba co najmniej trzech lat, by projekt osiągnął swą ostateczną, dojrzałą postać, niezależni analitycy zaś twierdzą, że potrwa to dwukrotnie dłużej. Kolejne etapy rozwoju i wdrażania nowych mechanizmów wiążą się z opublikowaniem dwóch kolejnych wersji systemu operacyjnego Microsoftu, określanych nazwami kodowymi XP (dawniej Whistler) i Blackcomb. Pierwszy z nich (powinien pojawić się już w maju) ma być wyposażony w środowisko CLR, pozwalające na uruchamianie aplikacji zgodnych z .NET. Dopiero jednak kolejne wcielenie systemu operacyjnego (według zapowiedzi Microsoftu premiera systemu Blackcomb planowana jest na rok 2003) umożliwi pełną integrację po-szczególnych elementów tej platformy zarów-no w obrębie pojedynczego komputera, jak i całej sieci. Wiadomo już, że system ten jest tworzony zgodnie z modelem aplikacji rozproszonych. Funkcjonalność i zasoby komputera lokalnego i maszyn zdalnych będą dostępne w postaci usług WWW, realizowanych według technologii .NET lub następnych jej wersji.

Konkurencja

Inicjatywa Microsoftu spotkała się z mieszanymi uczuciami środowiska producentów oprogramowania i developerów aplikacji internetowych. Jak zawsze najsilniejszy sprzeciw budzą podejmowane przez Microsoft próby uczynienia standardu z własnych rozwiązań technologicznych i produktów. Dotychczas jedyną szeroko dostępną technologią o podobnych możliwościach i zastosowaniach była Java. Od pewnego czasu firma Sun przestała jednak zabiegać o dalszy rozwój tego języka jako powszechnego standardu. Zresztą w konfrontacji z platformą .NET (w szczególności dotyczy to języka C#) Java wypada raczej słabo. Nawet jej twórcy przyznają, że nie-zbędne są pewne rozszerzenia (głównie w zakresie bezpieczeństwa i kontroli wykonywania kodu) tego języka, by mógł on sprostać wciąż rosnącym potrzebom programistów.


Zobacz również