Dwie generacje narzędzi

Typowy scenariusz opracowywania aplikacji klient/serwer składa się z przygotowania projektu pilotażowego, obejmującego niewielką część potrzebnych aplikacji i na tej podstawie podjęcie decyzji, jak postępować dalej.

Typowy scenariusz opracowywania aplikacji klient/serwer składa się z przygotowania projektu pilotażowego, obejmującego niewielką część potrzebnych aplikacji i na tej podstawie podjęcie decyzji, jak postępować dalej.

Jednakże często ten etap okazuje się najtrudniejszy do przeskoczenia. Wprawdzie projekt pilotażowy został wykonany poprawnie, aplikacja klient/serwer działa, ale podjęcie decyzji, że wszystkie pozostałe aplikacje w firmie wykona się w tej samej technologii może narazić firmę nie tylko na poważne opóźnienia, ale także doprowadzić do powstania współczesnego "mastodonta klient/serwer", z którym za kilka lat trudno sobie będzie poradzić.

Projekt pilotażowy można wykonać za pomocą powszechnie dostępnych, tanich narzędzi, często zwanych narzędziami pierwszej generacji klient/serwer. Niestety, łatwość użycia i niska cena skutecznie ukrywa ich poważną wadę: niewielką funkcjonalność oraz powiązanie z jednym, dwupoziomowym modelem aplikacji klient/serwer. Większość tych narzędzi produkuje "grubego klienta", zawierającego większość kodu aplikacji i odwołującego się do usług serwera jedynie w niewielkiej części.

Jeżeli na wszystkie podane poniżej pytania odpowiemy "tak", spokojnie możemy korzystać z narzędzi pierwszej generacji.

* Czy aplikacja pozostanie stosunkowo niewielka i samodzielna?

* Czy aplikacja przeznaczona jest dla niewielkiej grupy użytkowników, korzystających regularnie z programów w środowisku graficznym (Windows, OS/2)?

* Czy większość użytkowników stale potrzebuje wysoce wydajnego komputera PC do pracy?

* Czy aplikacja korzysta z danych obsługiwanych przez jeden system zarządzania bazami danych?

Jeżeli jednak liczba odpowiedzi "nie" przekroczyła liczbę odpowiedzi "tak", prawdopodobnie potrzebujesz narzędzi drugiej generacji. Tu pojawia się druga seria pytań.

* Czy jest prawdopodobne, że aplikacja będzie się rozrastać co do rozmiaru i złożoności?

* Czy trzeba będzie obsługiwać dużą liczbę użytkowników?

* Czy logika przetwarzania jest złożona i będzie wspólnie wykorzystywana przez wiele aplikacji (da się wydzielić w postaci serwera tej logiki)?

Jeżeli udzielamy odpowiedzi "tak" na większość z tych pytań, to najwyższy czas na przyjrzenie się narzędziom

klient/serwer drugiej generacji. Te narzędzia właśnie pojawiły się na rynku, albo zaczynają się pojawiać. I są to zarówno narzędzia dostarczane przez producentów systemów baz danych Oracle, IBM, Informix czy Sybase jak i producentów niezależnych: Seer Technology, Forte, PowerSoft i in.

Każde z tych narzędzi ma inny zestaw cech funkcjonalnych, ale mają one także pewne cechy wspólne:

* Pozwalają na rozdzielenie kodu między klientami a serwerami. Dają więc możliwość opracowania "chudego klienta". Pozwalają na dołączenie dodatkowych serwerów specjalistycznych usług (tworzenie aplikacji wielowarstwowych).

* Pozwalają na tworzenie aplikacji skalowalnych, działając zarówno na platformach jednoprocesorowych, jak na komputerach z przetwarzaniem symetrycznym i systemach operacyjnych SMP.

* Korzystają z wielowątkowości i wielozadaniowości systemów operacyjnych i .

Jeżeli więc planujemy długofalowo, należy od razu rozejrzeć się za narzędziami drugiej generacji i tak opracowywać aplikację, aby nie było potrzeby kompletnie jej zmieniać za kilka lat, gdy zmienią się nasze potrzeby.


TOP 200