Integracja: Java kontra .Net

Skalowalność rozwiązania

Mimo że specyfikacja J2EE nie standaryzuje zagadnień związanych ze skalowalnością (uruchamianiem oprogramowania na klastrze serwerów), wszystkie liczące się implementacje dostarczają własne narzędzia umożliwiające użycie tej funkcjonalności. Technologia Microsoft .Net pozwala na tworzenie systemów wykorzystujących architekturę klastrową. Istotna różnica w skalowalności polega na tym, iż technologia Microsoftu jest związana z komputerami o architekturze PC z procesorami z serii x86, podczas gdy implementacje J2EE mogą działać na praktycznie dowolnych komputerach (w tym znacznie wydajniejszych klasy mainframe i serwerach unixowych wyposażonych w setki procesorów).

Warto podkreślić, że obecnie platforma J2EE dominuje w dużych i bardzo dużych rozwiązaniach typu mission critical obsługujących całe korporacje, podczas gdy technologia Microsoftu jest częściej stosowana w mniejszych aplikacjach. Przy mniejszej liczbie jednocześnie korzystających z systemu użytkowników (concurrent users), tj. od jednego do około pięćdziesięciu, znacząco dominuje wykorzystanie technologii Microsoftu. J2EE jest szeroko stosowana w przypadku dużych rozwiązań (więcej niż tysiąc jednocześnie pracujących użytkowników), w pozostałym przedziale obie technologie ze sobą konkurują.

Gotowość rynku

Obecnie platforma J2EE jest promowana przez dużą liczbę renomowanych dostawców oprogramowania. Powodem jest ścisła współpraca wielu organizacji w ramach konsorcjum Java Community Process. Nie należy się zatem dziwić, że obecnie organizacje wykorzystujące platformę J2EE mają do dyspozycji więcej rozwiązań i większą liczbę potencjalnych partnerów biznesowych używających platformy Java. Microsoft zaczyna dostrzegać to zagrożenie i intensywnie promować swoją platformę, starając się budować dobre relacje z firmami trzecimi, dostarczającymi rozwiązania dla technologii Microsoft .Net, oraz zrzeszając społeczność na kształt javowej.

Podsumowanie

Trudno jest jednoznacznie opowiedzieć się za jedną technologią. Możliwe jest jednak wskazanie dość ogólnych trendów, jakimi powinno się kierować przy wyborze rozwiązania.

Mniejsze i średnie organizacje powinny wybrać jedną z platform technologicznych, kierując się minimalizacją kosztów w długim okresie oraz możliwościami integracji z innymi systemami. W tym przypadku kluczowym czynnikiem będzie więc rodzaj platformy wykorzystywanej zarówno przez firmy, jak i ich partnerów. Dodatkowym czynnikiem będzie oczywiście też system operacyjny - jeżeli w organizacji dominują systemy unixowe, to jedynym możliwym wyborem jest platforma J2EE.

Duże i bardzo duże przedsiębiorstwa powinny korzystać z obu technologii, jednocześnie starając się w jak największym stopniu inwestować we wszystkie dostępne rozwiązania integracyjne. Technologią szczególnie atrakcyjną w tym aspekcie są usługi sieciowe. Konieczność jednoczesnego wykorzystania w dużych organizacjach platform unixowych, komputerów mainframe oraz Windows wymusza wykorzystanie obu technologii, zwłaszcza w przypadku dynamicznego rozwoju rynkowego organizacji. Mając więc na uwadze przyszłe potrzeby, organizacje powinny odpowiedzieć sobie nie na pytanie, która z dostępnych platform jest lepsza, lecz w jaki sposób je zintegrować i w pełni wykorzystywać ich możliwości. Dysponując już dzisiaj bardzo szerokimi możliwościami integracji heterogenicznych środowisk za pomocą usług sieciowych, warto brać pod uwagę możliwość tworzenia poszczególnych modułów rozproszonych systemów w technologii, która w prostszy i szybszy sposób umożliwi osiągnięcie wyznaczonych celów. Przyszłość oprogramowania rysuje się jasno: jest nią architektura zorientowana na usługi (Service-Oriented Architecture).

Różne filozofie

W J2EE programista ma do dyspozycji kilka mechanizmów, które nie są bezpośrednio dostępne w przypadku Microsoft .Net, m.in. automatyczne zarządzanie trwałym stanem obiektów, co znacząco przyspiesza proces tworzenia aplikacji i umożliwia uniezależnienie się od dostawcy bazy danych. Microsoft starał się jak najbardziej uprościć mechanizmy programowania, rezygnując np. z wykorzystania z obiektów serwerowych zapamiętujących stan sesji (stateful) czy upraszczając mechanizmy transakcji. Nie oznacza to, że nie można korzystać z wyżej wymienionych mechanizmów, tworząc aplikacje na platformę Microsoft .Net - jest to możliwe, jednak nieco bardziej niż w przypadku technologii J2EE czasochłonne. Dodatkowym minusem jest często w takim przypadku konieczność rezygnacji z wykorzystania udogodnień platformy Microsoftu (tworzenie kodu niezarządzanego przez .Net).


TOP 200