Jak dzielić aplikację?

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.

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

TOP 200