BizReporter

Cofnij
Strona główna
Poprzedni artykułNastępny artykuł


-= KOMPUTER W FIRMIE =-
BizReporter nr 03 - 2000.03.05 Marcin Stróżański

Konsekwencje wyboru architektury systemu

Często spotykamy polemiki na temat "zwycięstwa" bądź "porażki" podejścia rozproszonego względem scentralizowanej architektury przetwarzania danych. "Zwycięstwo" ma wynikać z rosnącego udziału w rynku maszyn wyposażonych w systemy operacyjne UNIX czy Windows NT nad maszynami wyposażonymi w "stare", "scentralizowane" systemy operacyjne takie jak MVS. "Porażką" ma być wzrost popularności najnowszych generacji komputerów klasy mainframe, coraz częściej wybieranych do realizacji przedsięwzięć informatycznych. Celem niniejszego artykułu jest uporządkowanie pojęć związanych z architekturą systemów, podsumowanie wad i zalet różnych architektur oraz spekulacje na temat ich przyszłości.

Systemy scentralizowane i rozproszone

Centralna architektura systemów informatycznych stanowiła podstawę budowy rozwiązań dla przedsiębiorstw od początku lat sześćdziesiątych. Najbardziej znanym przykładem maszyn budowanych pod kątem rozwiązań scentralizowanych są komputery typu mainframe. Założenia dla takich systemów informatycznych są proste - pojedyncza wyspecjalizowana maszyna obsługuje system realizujący zadania biznesowe. Pojedynczy komputer realizuje zadania związane z przetwarzaniem informacji we wszystkich aspektach - bazy danych, logiki przetwarzania, dostępu ze strony użytkowników.

Wraz z rozwojem technologii przesyłu danych za pośrednictwem sieci komputerowych powstała alternatywa dla centralnego przetwarzania danych - przetwarzanie rozproszone. Tanie komputery wyposażone w standardowe oprogramowanie, umożliwiające łatwą wymianę usług i informacji z innymi podobnymi komputerami połączonymi siecią, mogą stanowić podstawę do budowy systemów w odmienny sposób. Systemy informatyczne można dzielić na części, rozpraszać, powielać i rozmieszczać w ramach sieci komputerowej niemal zupełnie dowolnie.

Podstawą budowy rozproszonych systemów są otwarte standardy, których przykładem może być Distributed Computing Environment (DCE). Standardy DCE opierają się na paradygmacie "klient/serwer" (zwanym też niekiedy "master/slave") zakładającym, że w ramach rozproszonego przetwarzania dla konkretnych operacji zawsze można wyróżnić proces (klienta), który żąda wykonania pewnej usługi od innego procesu (serwera). Procesy te nie musza funkcjonować na tym samym komputerze, lecz na różnych, połączonych ze sobą. Także ilość procesów klienckich i serwerowych nie jest ograniczona. Pojęcie klient/serwer jest także stosowane w uproszczeniu jako nazwa specyficznej architektury systemu informatycznego. Gwałtowny rozwój technologii informatycznej spowodował upowszechnienie komputerów osobistych. Szybko stały się one nieodzownymi narzędziami pracy biurowej. Rynek technologii informatycznej zareagował na tę sytuację właśnie architekturą "klient/serwer", umożliwiającą korzystanie ze scentralizowanych systemów komputerom osobistym podłączonym do sieci. W ramach takiej architektury komputery osobiste wykorzystywane mogą być do obsługi części zadań przetwarzania danych - zwłaszcza do obsługi interfejsu użytkownika oraz części logiki biznesowej. Domeną centralnych serwerów pozostały systemy baz danych oraz logika, której z różnych względów nie opłaca się dystrybuować pomiędzy maszyny klienckie.

Architektura centralna - pod tym pojęciem rozumiemy rozwiązania, w którym całość operacji związanych z przetwarzaniem danych realizowana jest przez jedną maszynę. Użytkownicy dysponują urządzeniami, które nie realizują żadnych specjalnych funkcji przetwarzania danych, poza interpretowaniem komend przesyłanych z maszyny centralnej, dotyczących formatowania wyświetlanych czy drukowanych informacji.

Architektura rozproszona - przez ten termin rozumiemy rozwiązania, w których przetwarzanie informacji realizowane jest w wielu miejscach, nawet jeśli dotyczy to tylko procedur związanych z interfejsem użytkownika. Oczywiście chodzi raczej nie o klasyczny przykład opisywanej wyżej architektury typu "klient/serwer", ale o całe rozproszone środowisko przetwarzania danych (np. DCE).

Przy tak sformułowanych definicjach oraz biorąc pod uwagę, że rozpatrujemy systemy pracujące dla potrzeb gospodarki, zajmujące się głównie przetwarzaniem i przechowywaniem informacji, możemy podsumować wady i zalety obu tych podejść.

Zalety architektury centralnej i rozproszonej

Podstawową zaletą architektury centralnej jest jej prostota. Stopień komplikacji budowy systemu informatycznego zależy głównie od stopnia złożoności zadań, jakie system ma realizować i struktur danych, które musi obsługiwać. Centralna architektura, z jedną maszyną odpowiadającą za wszystkie elementy systemu, to ogromna łatwość zarządzania systemem, zapewnienia bezpieczeństwa, wprowadzania zmian w funkcjonowaniu oprogramowania. Dużą zaletą jest również łatwość i szybkość implementacji takiego systemu. Przy zapewnieniu odpowiedniego zabezpieczenia centralnego systemu przed możliwymi awariami oraz zastosowaniu stabilnego oprogramowania operacyjnego otrzymujemy rozwiązanie solidne jak "skała", z bardzo małą ilością punktów, w których wystąpić może awaria. Kolejną zaletą systemów scentralizowanych jest to, że przetwarzanie danych składowanych w jednym miejscu ułatwia utrzymanie ich spójności w skali całego systemu.

Jedną z podstawowych zalet architektury rozproszonej jest możliwość ścisłego dopasowania modelu przetwarzania do potrzeb. Użytkownik wyposażony w komputer osobisty może dysponować dopracowanym, graficznym interfejsem użytkownika ułatwiającym pracę z systemem. Przechowywanie i udostępnianie danych można zlecić maszynie skonfigurowanej specjalnie do tego celu. Realizację logiki biznesowej - maszynie wyposażonej w odpowiednią moc obliczeniową. W rezultacie system można dostroić w sposób niemożliwy do uzyskania w architekturze scentralizowanej. Dodatkową cechą pochodną od możliwości precyzyjnej konfiguracji jest prosta, tania i teoretycznie nieograniczona skalowalność systemu, uzyskiwana przez dodawanie kolejnych maszyn. Istotną zaletą systemów rozproszonych jest łatwość integracji z innymi systemami - jest to cecha "wbudowana" systemów rozproszonych. System taki można także skonstruować w sposób praktycznie uniemożliwiający jego kompletne zatrzymanie - wiele rozproszonych geograficznie lokalizacji bez wyróżnionego centrum daje możliwość budowy rozwiązań odpornych na katastrofy. Kolejną, rzadko dostrzeganą zaletą architektury rozproszonej jest oszczędność komunikacji - system można zoptymalizować pod kątem minimalizacji ruchu sieciowego.

Konsekwencją jest zagwarantowanie systemom informatycznym dużej dostępności (rzędu 99 proc.), system może działać poprawnie nawet po awarii sieci, dzięki wykorzystaniu wolniejszych połączeń zastępczych. Jest to niezwykle istotne szczególnie w przypadku aplikacji typu mission critical.

Wady architektury centralnej i rozproszonej

Podstawową wadą architektury centralnej jest uzależnienie od pojedynczej maszyny, mogące doprowadzić do braku skalowalności systemu lub kłopotów podczas prób integracji z innymi systemami. Dodatkowo występuje silna wrażliwość na sytuacje katastrofalne - system posiada pojedyncze centrum, którego unieruchomienie paraliżuje całość operacji (jest to jednocześnie pewna zaleta - zainwestowanie w ochronę centrum - np. w zapasowe centrum przetwarzania - ogromnie zwiększa dostępność systemu i jego odporność na awarie, choć na ogół zwiększa koszt całej inwestycji o 30-50 proc.).

Podstawową wadą architektury rozproszonej jest stopień skomplikowania tego typu rozwiązań i czasochłonność ich realizacji. Wiele maszyn i urządzeń sieciowych to zwiększenie częstotliwości występowania awarii - awaryjność takiego systemu jest z pewnością znacznie wyższa niż systemu scentralizowanego. Administracja rozproszonym systemem jest poważnym wyzwaniem i wymaga stosowania specjalnego oprogramowania wspomagającego procesy zarządzania. Zapewnienie odpowiedniego poziomu bezpieczeństwa systemu jest trudnym zadaniem a wymiana wersji oprogramowania może być poważnym problemem logistycznym. Rozproszenie systemu może spowodować konieczność zwiększonej wymiany informacji oraz nadmiernego ich przechowywania (z drugiej strony jest to czynnik zmniejszający ryzyko utraty danych w razie awarii).

Rezultatem wyżej wymienionych wad jest konieczność utrzymywania wysoko wykwalifikowanego personelu potrafiącego utrzymywać system, choć problemy administracji i zarządzania mogą być w dużej mierze rozwiązywane przez odpowiednie oprogramowanie, czy to ,,z półki", czy też stworzone na zamówienie. Zautomatyzowanie tych procesów redukuje liczbę wysoko wyspecjalizowanej kadry do poziomu porównywalnego z wymaganym przez mainframe. Przy okazji należy pamiętać, że w przypadku mainframe problemem jest zarządzanie samą maszyną. Serwerem UNIX-owym może z powodzeniem administrować jedna osoba o dość ogólnej wiedzy informatycznej. Do mainframe potrzeba "sztabu" wysoko i wąsko wyspecjalizowanych inżynierów. Utrzymanie systemów informatycznych o dużej skali działania wymaga inwestycji w specjalistów bądź wyspecjalizowane oprogramowanie. Kolejnym wyzwaniem, jakiemu sprostać muszą systemy rozproszone, jest synchronizacja rozproszonych baz danych. Jest to zadanie trudne, wymagające zaawansowanych inżynieryjnie rozwiązań.

Co dalej?

Wpływ rozwoju technik sieciowych i komputerów osobistych na systemy scentralizowane jest ogromny. Obecnie poprzez system centralny rozumie się bardzo często silny komputer wyposażony w otwarty system operacyjny (UNIX lub Windows NT) oferujący usługi serwera baz danych licznym klientom - komputerom klasy PC wyposażonym w aplikacje napisane w językach czwartej generacji. Typowe, "zamknięte" maszyny klasy mainframe nabrały cech otwartości i stanowią w istocie niezwykle silne serwery baz danych i procesów przetwarzania tych baz. Mamy do czynienia z procesem konwergencji - tradycyjne systemy scentralizowane otwierają się na technologie przetwarzania rozproszonego.

Związane jest to także z najnowszym wyzwaniem, któremu sprostać muszą systemy informatyczne - rozwojem Internetu, który umożliwia wymianę danych i usług pomiędzy systemami na niespotykaną dotąd skalę. Przełamana została kolejna bariera kosztów komunikacji i możliwe jest tanie automatyzowanie procesów przetwarzania informacji w przedsiębiorstwach bardzo silnie rozproszonych geograficznie oraz pomiędzy przedsiębiorstwami, które do tej pory komunikowały się używając tradycyjnych papierowych dokumentów. W dalszej perspektywie umożliwi to powstanie całkowicie elektronicznej, zautomatyzowanej obsługi informacyjnej procesów gospodarczych - tradycyjne metody komunikacji ulegną dalszej przemianie i realizowane będą głównie za pomocą ogólnoświatowej sieci komputerowej, ze względu na nieosiągalną w inny sposób szybkość i niskie koszty. Ten zupełnie nowy świat - świat elektronicznego biznesu - podobnie jak Internet w dotychczasowej postaci, będzie światem systemów rozproszonych. Raczej nie ma co liczyć na powstanie jednolitego, scentralizowanego systemu bezpieczeństwa w takiej sieci, lub jednolitego systemu administracji Internetem. Ogólnoświatowa sieć komputerowa zawsze pozostanie siecią publiczną, nie podlegającą centralnemu nadzorowi i jedynym, czego można się spodziewać są wspólne standardy wymiany informacji gospodarczych.

Dlatego też jednym z najważniejszych wyzwań jest przyjęcie jednolitego standardu rozproszonego przetwarzania transakcji handlowych i finansowych. DCE, jako standard przetwarzania rozproszonego, nie zdał egzaminu i nie może być traktowany jako przyszłościowy. Stał się natomiast podstawą dla rozproszonych, obiektowych standardów budowy systemów, takich jak CORBA oraz DCOM i EJB. Wydaje się, że naturalnym wyborem, jeśli chodzi o technologię realizacji systemów rozproszonych, są standardy związane z językiem JAVA (czyli EJB). Dzięki unikalnej architekturze, umożliwiającej dynamiczne uruchamianie oprogramowania na dowolnej maszynie znajdującej się w sieci, rygorystycznemu podejściu do problemów bezpieczeństwa oraz szerokim uznaniu, standardy te są na dobrej drodze do przyjęcia ich za obowiązujące w świecie Internetu.

Same standardy realizacji rozproszonych systemów to jednak nie wszystko. Wiele zależy od sposobu implementacji tych standardów w praktyce, czyli od stosowanego oprogramowania klasy middleware, służącego za podstawę do budowy systemów informatycznych. Obserwowany ostatnio dynamiczny rozwój oprogramowania tej klasy, szczególnie sieciowych serwerów aplikacyjnych (Web Application Servers), dobrze wróży przyszłości elektronicznej gospodarki.

Można stwierdzić, że przetwarzanie rozproszone, choć skomplikowane, stanowi jedyną realną podstawę przyszłej gospodarki elektronicznej a architektury centralne, w rozumieniu systemów lat 60, nigdy już nie powrócą. Komputery klasy mainframe, będące niegdyś podstawą scentralizowanych systemów biznesowych, stają się obecnie otwartymi serwerami rozproszonego przetwarzania i udostępniania danych gospodarczych w ogólnoświatowej sieci Internet.

Artykuł ukazał się w kwartalniku menedżerów informatyki "Strategie Informatyzacji" wydawanym przez firmę InfoViDE.

InfoViDE jest polską firmą konsultingowo-szkoleniową, koncentrującą się na zapewnieniu klientom strategicznych korzyści z wykorzystania technologii informatycznych. InfoViDE jest wiodącym dostawcą usług konsultingowych i praktycznej wiedzy fachowej dotyczącej zarządzania przedsięwzięciami, analizy potrzeb informacyjnych, czy projektowania systemów informatycznych stanowiących rozwiązania dla biznesu.
Ecommerce
Zarządzanie Przedsięwzięciami i Architektura SI
Systemy Wspomagania Decyzji
Organizacja Zapewnienia i Kontroli Jakości
Budowa Aplikacji i Systemów Informatycznych
SAP
www.infovide.pl

[spis treści][do góry]