Jak dzielić aplikację?
- Marian Łakomy,
- 20.03.1995
Z punktu widzenia ogólnej wydajności rozproszonego systemu przetwarzania, wskazane jest takie podzielenie aplikacji na część wykonywaną na serwerze i część kliencką, aby minimalizować ruch w sieci.
Z punktu widzenia ogólnej wydajności rozproszonego systemu przetwarzania, wskazane jest takie podzielenie aplikacji na część wykonywaną na serwerze i część kliencką, aby minimalizować ruch w sieci.
Dzielenie aplikacji na część działającą na komputerze-serwerze i część działającą na komputerze-kliencie jest trudne. Co gorsza, po zdecydowaniu się na jakiś system opracowania aplikacji, programista przekonuje się, że pozwala on jedynie np. na statyczny podział aplikacji, a sama operacja wymaga napisania ogromnej liczby linii kodu w C. Ponadto trudno wycofać się z zakupu - zwłaszcza jeśli poświęciło się już wiele trudu i wysiłku na dogłębne opanowanie systemu.
Ogromna liczba systemów do opracowania aplikacji klient/serwer dostępnych na rynku, bynajmniej nie ułatwia podjęcia decyzji, który z nich najlepiej nadaje się do opracowania aplikacji i jakie ma możliwości w zakresie podziału aplikacji.
Użytkownicy tych systemów mieliby większe szanse wyboru systemu dopasowanego do ich potrzeb, gdyby producenci podawali jakieś - nawet ogólne - wskazówki, którą część aplikacji lepiej jest wykonywać na komputerze klienta, którą zaś na serwerze. Przydatne by były przykładowe aplikacje, dołączane w formie kodu źródłowego do pakietów w celu opracowania aplikacji klient/serwer. Na razie jednak, nawet sami producenci mają kłopoty z dopracowaniem odpowiednich zaleceń.
Podział statyczny i dynamiczny
Podział statyczny pozwala na określenie przed kompilacją aplikacji, która część kodu działa na odpowiednim komputerze. Po skompilowaniu nie ma już możliwości przemieszczania aplikacji. Niektóre z pakietów dopuszczają wykonywanie operacji podziału przez proste przenoszenie za pomocą myszy.
Podział dynamiczny polega na takim przemieszczaniu części kodu w trakcie opracowania aplikacji lub uruchamiania aby osiągnąć zarówno największą szybkość wykonywania, jak również minimalizować ruch w sieci. Obecnie na rynku jest dostępny tylko jeden pakiet do opracowania aplikacji wykonujący dynamiczny podział aplikacji i przenoszący ją tak, aby minimalizować ruch w sieci. Taka możliwość jest bardzo ważna z punktu ogólnej wydajności systemu oraz bardzo wygodna dla programistów, toteż coraz więcej firm zamierza wyposażyć swe produkty w takie możliwości.
Testować, testować...
Podział aplikacji na części wykonywany jest jednak na ogół w ciemno, co trochę przypomina latanie we mgle. Niewłaściwie wykonany podział aplikacji może skutecznie zaburzyć działanie sieci. Dlatego każda operacja podziału aplikacji powinna być ściśle powiązana z testowaniem wydajności i zmian obciążenia sieci. Na rynku istnieją odpowiednie narzędzia, ale ich koszt jest dość wysoki.