Rewolucja na serwerze

Podczas gdy zaawansowane narzędzia graficzne właściwie rozwiązały problem formy aplikacji na stacji klienta, opracowanie aplikacji po stronie serwera nie jest równie łatwe. Programista wciąż znajduje się na najniższym poziomie API.

Podczas gdy zaawansowane narzędzia graficzne właściwie rozwiązały problem formy aplikacji na stacji klienta, opracowanie aplikacji po stronie serwera nie jest równie łatwe. Programista wciąż znajduje się na najniższym poziomie API.

Pierwsze objawy rewolucji w dziedzinie aplikacji to ich wygląd. Od "zielonego" terminala, prezentującego proste ekrany znakowe, przeszliśmy do wspaniałych, graficznych aplikacji, w których użytkownik może interaktywnie przeglądać dane. Początkowo nie było to łatwe: kto dziś pamięta, że do stworzenia na ekranie graficznym testowej aplikacji wypisującej sławne Hello, world! trzeba było napisać aż 100 linii kodu? (Przedtem trzeba było poznać sposób używania co najmniej kilkunastu funkcji API z Windows). Obecne narzędzia graficzne umożliwiają stworzenie wyrafinowanej formy graficznej aplikacji w C++, Javie czy Visual Basicu w ciągu godziny.

Strona klienta

Coraz bardziej zaawansowane narzędzia graficzne właściwie rozwiązują problem formy aplikacji na stacji klienta. Kontenery (np. wielopoziomowe okna) i gotowe komponenty, które można w nich stosować, pozwalają na wielokrotne używanie standardowych komponentów, dostarczanych przez producenta narzędzia, bez konieczności pisania kodu. Typowy model współczesnej aplikacji wykorzystuje wiele gotowych komponentów i elementów kontrolnych (listy rozwijane, menu, pola edycyjne, pola wyboru).

Komponenty ActiveX można stosować w aplikacjach rozpowszechnianych za pomocą przeglądarki Internetu (ale tylko na komputerach z procesorami Intela). Komponenty JavaBeans rozwiązują ten sam problem dla środowiska Java i dowolnych przeglądarek (pod warunkiem, że zawierają maszynę wirtualną Java).

Możemy więc uznać, że problem dostępu do informacji po stronie klienta udało się rozwiązać w sposób zadowalający. Co ze stroną serwera?

Strona serwera

Opracowanie aplikacji po stronie serwera nie jest równie łatwe. Wydaje się, że obecny etap pracy programisty można porównać do pisania tej testowej aplikacji z Hello, world! - jesteśmy na najniższym poziomie API.

Aplikacja na serwerze musi być bardziej "odporna na głupotę", bezpieczna, niezawodna, niezależnie od uszkodzeń komputera lub sieci. Musi współpracować z bazami danych i innymi aplikacjami działającymi na tym samym serwerze, realizować transakcje zgodnie z testem ACID (atomowość, spójność, integralność, trwałość) oraz zapewniać bezpieczeństwo systemu i danych.

Wyobraźmy sobie świat, w którym wszystkie aplikacje będą mogły ze sobą współpracować. Nie będzie już potrzeby przechodzenia z aplikacji do aplikacji, przenoszenia lub przepisywania (zdarza się!) danych, zastanawiania się, jak przekształcić dane z jednej aplikacji, aby dało się ich używać w innej. Ale to są problemy, które napotykamy my, zwykli użytkownicy komputera.

Trudniej natomiast wyobrazić sobie problemy, które mają duże organizacje i przedsiębiorstwa. Komunikacja między aplikacjami oraz ich użytkownikami stanowi klucz do rozwiązania problemu dostępu do danych.

Różnorodność

Oprogramowanie jest pisane w wielu językach programowania. Od zarania dziejów informatyki pojawiło się co najmniej kilkaset języków programowania, z których utrzymało się - na szczęście - niewiele: Fortran, COBOL, Basic, Pascal, C/C++, Java. Nie można jednak jednoznacznie stwierdzić, że gdzieś w zakamarkach informatycznych nie istnieją aplikacje, mające zasadnicze znaczenie dla prowadzonej działalności, napisane w egzotycznym języku, o którym nawet najstarsi informatycy nie pamiętają. Języki programowania nie znikają łatwo: pisze się w nich systemy i aplikacje, działające czasem dziesiątki lat. Jak doprowadzić do tego, aby nadal można było z nich korzystać?

Szyna programowa

Wszystkie rozwiązania architektoniczne, promujące możliwości współpracy dowolnych aplikacji i komponentów, są oparte na wykorzystaniu standardowej "szyny programowej", odpowiednika szyny sprzętowej, znajdującej się w każdym komputerze, przez którą komunikują się różne urządzenia.

W przeciwieństwie do szyny sprzętowej, szyna programowa nie musi - a nawet nie powinna - być limitowana do jednego komputera. Może obejmować wszystkie systemy, aplikacje, komponenty programowe, które powinny ze sobą współpracować.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200