Java czy Windows?

Wybór technologii, w której mają być tworzone aplikacje internetowe dla przedsiębiorstw, staje się coraz trudniejszy. Utrudnia go świadomość, że technologia musi sprostać nie tylko obecnym, ale też przyszłym potrzebom gospodarki elektronicznej. Dwóch ekspertów z centrum testowego InfoWorld - dyskutuje na temat zalet i wad technologii Windows 2000 i Java 2 Enterprise Edition stosowanych w pośredniej warstwie aplikacji (middleware).

Wybór technologii, w której mają być tworzone aplikacje internetowe dla przedsiębiorstw, staje się coraz trudniejszy. Utrudnia go świadomość, że technologia musi sprostać nie tylko obecnym, ale też przyszłym potrzebom gospodarki elektronicznej. Dwóch ekspertów z centrum testowego InfoWorld - dyskutuje na temat zalet i wad technologii Windows 2000 i Java 2 Enterprise Edition stosowanych w pośredniej warstwie aplikacji (middleware).

Tom Yager (T.Y.): W cieniu zamieszania związanego z postępowaniem antymonopolowym, pojawieniem się kolejnym wirusów w Outlooku i nowej strategii .NET, Microsoft wprowadził na rynek Windows 2000 Server. Zaniedbania marketingowe spowodowały, że wydarzenie przeszło prawie nie zauważone. Tymczasem nowy serwerowy system operacyjny zawiera kompleksowy zestaw funkcji do obsługi pośredniej warstwy: transakcje, obiekty rozproszone, solidną bazę danych oraz pewną obsługę komunikatów. Usługi te są zawarte w Windows 2000 i dostępne dla każdej aplikacji działającej w oparciu na tym systemie. W połączeniu z serwerem Internet Information Server (IIS) Windows 2000 tworzy potężne środowisko dla aplikacji korporacyjnych. A wszystko za cenę Windows!

Tim Fielden (T.F.): Może to prawda, że Windows 2000 stanowi kompleksowe rozwiązanie problemu osadzania aplikacji biznesowych, ale - moim zdaniem - ogromną wadą tego systemu jest jego ograniczenie do jednej platformy. Zmusza to dostawców oprogramowania i użytkowników, by dostosowali się do systemu zamkniętego. Jako specjalista z zakresu architektury systemów, mam poważne wątpliwości, gdy ktoś sugeruje mi rozwiązanie działające tylko na jednej platformie - PC. Taka wątpliwość nie pojawia się w przypadku Java 2 Enterprise Edition (J2EE), która pozwala użytkownikom na wybór platformy najlepiej dostosowanej do specyfiki biznesu. Windows 2000 odbiera możliwość wyboru i zachęca do tworzenia farm serwerów, z czego korzyści odnoszą głównie dostawcy sprzętu i oprogramowania.

Przyznaję, że w czasach gdy królowała architektura klient/serwer, platforma Windows wydawała się dobrym, wręcz strategicznym kierunkiem rozwoju. Jednak w obecnie erze post-PC Java znacznie lepiej wkomponowuje się w środowisko składające się z różnorodnych urządzeń i platform.

Przyznaję też, że właściwości Windows 2000 zostały znacznie poprawione od czasów Windows NT. Niestety, wzrosła złożoność produktu. Jeżeli weźmie się pod uwagę, ile pracy trzeba włożyć w uruchomienia usług, takich jak Active Directory, nie mogę z czystym sumieniem rekomendować Windows. Jeżeli zaś spojrzeć na liczbę "dziur", które ujawniono w Windows w ciągu ostatnich lat, zwłaszcza w zakresie bezpieczeństwa, zalecam inny wybór, lepiej spełniający wymogi przetwarzania korporacyjnego.

Podobne usługi, podobny wybór?

T.Y.: Liczba i zakres usług w J2EE są zaskakująco podobne do oferty Windows 2000. Nie można uznać przewagi J2EE tylko na podstawie porównania właściwości funkcjonalnych. J2EE to Java, co jest zaletą głównie dla tych, którzy ją znają. Wprawdzie lubię Javę, ale wolałbym móc wybrać język programowania stosownie do rodzaju projektu. W Windows 2000 używam C++ i Jscript.

T.F.: Dlaczego jako zwolennik swobodnego wyboru zalecasz coś, co tak bardzo wybór ogranicza? Wystarczy spojrzeć na popularność Javy w przemyśle informatycznym i wsparcie, jakiego udzielają jej największe firmy - Sun, IBM i Oracle. A czy usługi Windows 2000 różnią się od tych, jakie zapewnia Java? Moim zdaniem, w tej dziedzinie Windows 2000 również nie zapewnia przewagi.

Przy wyborze środowiska tworzenia aplikacji trzeba rozważać koszt pracy programistów. Jestem przekonany, że więcej programistów posługuje się Javą niż C++. Jeśli zaś chodzi o wybór języka do opracowywania aplikacji, zgadzam się, że powinien on pasować do założonego celu. Zauważ jednak, że aplikacje biznesowe zgodne z J2EE mogą zawierać funkcje napisane w językach innych niż Java, także w C++.

Koszty i zasoby

T.Y.: Odbiera mi mowę, gdy słyszę, że ktoś chce płacić 25 tys. USD za jeden procesor korzystający z J2EE, podczas gdy w Windows 2000 wszystkie funkcje są wbudowane w system. Funkcje J2EE są napisane w Javie, dlatego aby je uruchomić, trzeba dysponować mocnym sprzętem. Za cenę 1800 USD Windows 2000 obsługuje do 4 procesorów i 25 użytkowników, a ponadto działa na tanich serwerach intelowskich. Również gdy chodzi o wydatki długoterminowe, wszystkie koszty związane z Windows są niższe: szkolenie, serwis sprzętowy i wsparcie techniczne. W porównaniu z tym J2EE to studnia bez dna.

T.F.: Skąd cena 25 tys. USD? J2EE można wgrać ze stron internetowych Suna i tworzyć dowolnie wiele aplikacji do obsługi e-biznesu, działających na każdej platformie, za cenę znacznie niższą niż koszt technologii Microsoftu.

Stwierdzenie, że J2EE wymaga mocnego sprzętu, to mit. Jeżeli udałoby się porównać identyczne środowiska z więcej niż 10 tys. użytkowników, środowisko Windows będzie wymagało znacznie więcej sprzętu, pamięci i dysków niż J2EE.

Co do doświadczenia programistów - każdy, kto pisze programy w Javie, może pisać je zgodnie z J2EE. Windows 2000 wymaga dogłębnej znajomości systemu do tworzenia działającej aplikacji. Ponadto zmiana strategii obiektowej Microsoftu z COM (Component Object Model) na szerszą SOAP (Simple Object Access Protocol) sprawi wiele kłopotów programistom, którzy wcześniej postawili na COM. Jak podaje Gartner Group w ostatnim raporcie, technologia COM zamiera. Natomiast Java ze swoim ogromnym wsparciem i możliwością wydzielania funkcji za pośrednictwem Java Beans i Enterprise Java Beans, pozwala łatwo wykorzystać pracę innych programistów.

Przewaga J2EE

T.Y.: Windows 2000 opiera się na technologii Windows NT 4.0. Na rynku pracy jest wielu doświadczonych programistów piszących dla Windows. Niestety, to prawda, że większość z nich nie zna nowych usług korporacyjnych Windows 2000. Microsoft spóźnił się z informacją dla programistów. Sądzę, że daje to Sunowi od roku do dwóch lat przewagi.

T.F.: W rzeczywistości, by stworzyć Windows 2000, zmieniono ponad 50% kodu Windows NT. Ponadto programiści muszą oswoić się z nową koncepcją Microsoft .NET. To wymaga czasu i sporych nakładów na szkolenia. Zmiana COM na SOAP stwarza przewagę J2EE. Microsoft był głównym dostawcą w erze przetwarzania klient/serwer. Teraz jesteśmy w erze przetwarzania internetowego, do którego J2EE zdecydowanie lepiej pasuje.

Co pożera zasoby?

T.Y.: J2EE zasługuje na wpis do księgi rekordów Guinnessa jako największy pożeracz zasobów procesora i pamięci. J2EE z trudem działa na serwerze Suna kosztującym 7500 USD. Usługi Windows 2000 napisane w C++ działają sprawnie i szybko na tańszym sprzęcie. Jeśli chodzi o stabilność, doświadczony administrator może zapewnić ciągłą pracę serwerów Unix, Linux lub Windows. Szefowie informatyki w przedsiębiorstwach często jednak wychodzą z założenia, że z serwerami Windows poradzi sobie każdy, kto kiedykolwiek używał Windows. To nieprawda, która utrwala mit o niestabilności tego systemu. Istnieją serwery Windows działające bezbłędnie; trzeba tylko wiedzieć jak je budować.

T.F.: Śmieszy mnie komentarz o kosztach serwera dla J2EE. Używam serwera za mniej niż 5 tys. USD i nie widzę spadku wydajności w porównaniu z wysoko wydajną konfiguracją, na której działa ta sama aplikacja. Argument bardziej pasuje do aplikacji biznesowych działających na platformie Microsoftu. Powszechnie wiadomo że to właśnie Windows jest pożeraczem zasobów komputera. Rozmiar i złożoność kodu tego systemu wciąż rosną.

Konkurencyjne obiekty

T.Y.: Sun odebrał Javę instytucjom standaryzującym. Z pozycji monopolisty ustanowił wysoką opłatę licencyjną za J2EE. Jeśli chodzi o otwartość, podejście Suna i Microsoftu jest podobne. Obie firmy konkurują o względy programistów, tworzących komercyjne i bezpłatne rozszerzenia Javy i Windows. Sun ma przewagę w standardach, gdyż J2EE używa modelu komponentowego CORBA. Microsoft wybrał SOAP, znacznie łatwiejszy niż CORBA.

T.F.: To interesujący pogląd... Sun nie ma monopolu na Javę. Microsoft porzucił Javę, gdy okazało się, że nie może przejąć całego rynku. Jeśli chodzi o otwartość, nie ma porównania między Windows a Javą. Jedyne bezpłatne ulepszenia, o których wiem, wywodzą się ze społeczności programistów posługujących się Javą. Przyznaję, że modele obiektowe CORBA i COM są trudne, ale też żaden nie ma przewagi nad drugim. Jeżeli Microsoft porzuci COM na rzecz SOAP, to zniechęci programistów.

SOAP nie należy do Microsoftu. Jest standardem i inni producenci wyprzedzili Microsoft w implementacji naprawdę otwartej specyfikacji. Przykładowo, IBM ma pełniejszą implementację SOAP i przekazał ją społeczności open source. Programiści Java, jeśli tylko mają chęć, również mogą korzystać z SOAP.

--------------------------------------------------------------------------------

Na podstawie InfoWorld oprac. mł

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

TOP 200