Kuchnia architektury klient/serwer: architektura wielowarstwowa

Dostępność technologii stawia przed nami kolejną barierę - tym razem, zamiast ograniczeń technicznych, pojawia się bariera złożoności. Dostępność efektywnych relacyjnych baz danych zaowocowała pojawieniem się aplikacji działających na bazach zawierających kilkadziesiąt a nierzadko nawet kilkaset tablic. Podobnie w wypadku architektury wielowarstwowej należy oczekiwać, że systemy rozproszone, zawierające dziesiątki logicznych serwerów aplikacyjnych, nie będą należały do rzadkości. Jest nieodmiennym doświadczeniem inżynierii oprogramowania, że złożoność - niezależnie od technologii - rodzi specyficzne, od lat takie same problemy. Jak więc można przekroczyć barierę złożoności? Zapewne tak, jak dziś opanowuje się złożoność ogromnych baz danych - poprzez modelowanie i standardy specyfikacji. Te ostatnie już zresztą zaczynają się wyłaniać. Podstawowym sposobem specyfikowania usług serwera aplikacyjnego są dzisiaj w większości rozwiązań warianty języka specyfikacji usług (interface definition language - IDL). Standard modelowania jeszcze nie powstał, ale otwarte narzędzia C/S CASE pozwalają czasem na rozszerzenie dostępnych notacji do opisania niestandardowych modeli.

InfoViDE, współpracując z działem usług integratorskich (Professional Services Organization, PSO) firmy Hewlett-Packard, Polska opracowała technologię tworzenia serwerów aplikacyjnych z wykorzystaniem modelowania i generowania ich specyfikacji w języku IDL (można się z nią zapoznać na warsztatach organizowanych przez firmę Hewlett-Packard). Wykorzystano tu środowisko konstrukcyjne składające się z pakietów Entera (konstruowanie serwerów i zarządzanie serwerami aplikacyjnymi) i PowerBuilder Enterprise (konstruowanie aplikacji klienckich). Tworzeniem modeli, generowaniem serwerów aplikacyjnych i serwerów baz danych zajmuje się w tym zestawie pakiet C/S CASE LBMS Systems Engineer.

5. To się opłaca

W architekturze trójwarstwowej warstwa aplikacji i warstwa serwerów danych mogą zajmować się tym, co naprawdę do nich należy. Funkcje środkowej warstwy, obejmujące m.in. realizację strategii działania organizacji, dostęp do serwerów danych, koordynowanie rozproszonych transakcji przez komunikację z monitorami transakcyjnymi, udostępniane są w postaci usług pewnej liczby serwerów aplikacji, z których korzystać mogą aplikacje klienckie oraz inne serwery aplikacji. Podejście to nie tylko ułatwia panowanie nad złożonością projektowanych systemów, lecz także zwiększa możliwości wielokrotnego użytku tych funkcji oraz pozwala uniknąć ich powielania wszędzie, tam gdzie są potrzebne. W konsekwencji usprawnia to proces tworzenia, pielęgnacji i rozwijania systemu. Pozytywny wpływ na ten proces ma - leżąca u podstaw architektury trójwarstwowej - dekompozycja systemu na niezależne i odseparowane elementy, aplikacje, serwery aplikacji i serwery danych, komunikujące się za pośrednictwem dobrze określonych interfejsów, co ma szczególne znaczenie przy podziale pracy w zespole informatyków oraz w przysparzającej zazwyczaj wielu problemów fazie integracji systemu. Wreszcie, architektura trójwarstwowa wychodzi naprzeciw coraz powszechniej formułowanym wymogom uniezależnienia logicznej architektury systemu od jego fizycznej implementacji. Przy tradycyjnej architekturze dwuwarstwowej dekompozycja systemu uzależniona jest w istocie od przyjętych rozwiązań sprzętowych (typowo komputery PC z aplikacjami i mainframe z serwerami danych, z doklejoną gdzieś implementacją reguł biznesowych).

Architektura trójwarstwowa to model logiczny, dobrze odpowiadający wymogom funkcjonalnym, stawianym przed współczesnymi systemami informatycznymi, który może być realizowany na różnych konfiguracjach sprzętowych. W skrajnych przypadkach wszystkie trzy warstwy są umieszczone na jednym komputerze każda z warstw na wielu komputerach. Dzięki tej architekturze widzimy, że rewolucja klient/serwer to coś więcej niż tylko dekompozycja znanych od lat systemów opartych na mainframe.

Paweł Cichosz jest doktorantem na Wydziale Elektroniki Politechniki Warszawskiej i współpracownikiem firmy InfoViDE.

Borys Stokalski jest pracownikiem firmy InfoViDE.


TOP 200