Integracja: Java kontra .Net

Wybór odpowiedniej platformy technologicznej jest jedną z kluczowych decyzji podejmowanych przez dział IT. Jej trafność może w krótkim okresie zaważyć na powodzeniu projektu informatycznego, w dłuższym zaś znacząco wpłynąć na zdolność operacyjną przedsiębiorstwa.

Wybór odpowiedniej platformy technologicznej jest jedną z kluczowych decyzji podejmowanych przez dział IT. Jej trafność może w krótkim okresie zaważyć na powodzeniu projektu informatycznego, w dłuższym zaś znacząco wpłynąć na zdolność operacyjną przedsiębiorstwa.

Na rynku jest dostępna duża liczba technologii i narzędzi informatycznych. Dylematem jest wybór optymalnego rozwiązania technologicznego umożliwiającego stworzenie komercyjnego, działającego w środowisku rozproszonym, systemu informatycznego, który dodatkowo będzie musiał zapewnić możliwość integracji z innymi systemami (zarówno stworzonymi wcześniej, jak i tymi, które będą tworzone w przyszłości). Trzeba zatem brać pod uwagę dwie najwszechstronniej rozwinięte i najdojrzalsze technologicznie platformy: J2EE (Java 2 Enterprise Edition) oraz Microsoft .Net. Zawężenie naszych rozważań tylko do tych dwóch platform technologicznych może wydawać się nieco arbitralne, jednak wszystko wskazuje na to, że obie te technologie w najbliższych latach zdominują rynek rozwiązań informatycznych.

Co w Javie piszczy?

J2EE jest zbiorem specyfikacji, których podstawą jest język Java, tworzonych przez Sun Microsystems przy współpracy z wieloma znanymi firmami. Celem J2EE jest ułatwienie procesu tworzenia, wdrażania i zarządzania złożonymi systemami o architekturze z wielowarstwowej (multi-tiered). Platforma J2EE jest zbiorem specyfikacji, na podstawie których firmy mogą tworzyć zarówno komercyjne, jak i niekomercyjne implementacje.

W skład Java 2 Enterprise Edition wchodzą: język programowania Java i maszyna witrualna (środowisko uruchomieniowe dla programów pisanych w Javie); technologie umożliwiające tworzenie dynamicznych stron WWW (JSP - Java Server Pages, serwlety, aplety); technologia komponentów rozproszonych (EJB - Enterprise Java Beans); protokoły komunikacyjne (IIOP - Internet Inter-ORB Protocol, RMI - Remote Method Invocation); interfejsy programistyczne (JMS - Java Messaging System, wykorzystywany w komunikacji asynchronicznej; JTA - Java Transaction API, umożliwiający realizację rozproszonych transakcji; JDBC - Java Database Connectivity, wykorzystywany do komunikacji z różnymi bazami danych; JNDI - Java Naming and Directory Interface, do komunikacji z usługami katalogowymi i wiele innych).

Microsoft .Net jest zestawem produktów mających ułatwić tworzenie wielowarstwowych, rozproszonych systemów. Jest następcą architektury Windows DNA, wprowadzającym do niej wiele nowych elementów i zastępującym wcześniejsze technologie (np. bardzo szerokie wykorzystanie technologii XML, usługi sieciowe).

W skład Microsoft .Net wchodzą: platforma systemowa .Net (narzędzia i komponenty umożliwiające tworzenie aplikacji w środowisku .Net), produkty i usługi Microsoft .Net (zestaw usług i narzędzi współpracujących z .Net, m.in. Office .Net, Visual Studio .Net), rozwiązania firm trzecich (narzędzia tworzone przez firmy trzecie wspierające technologię .Net). Podstawą Microsoft .Net jest .Net Framework, który składa się z CLR (Common Language Runtime) - wspólnego środowiska uruchomieniowego dla aplikacji .Net, niezależnie od wykorzystanego języka oprogramowania, oraz bogatego zestawu funkcji API. Ponadto w skład platformy .Net wchodzi MSIL (Microsoft Intermediate Language) - język pośredni niezależny od procesora, do postaci którego są kompilowane wszystkie aplikacje .Net, technologia wykorzystywana do tworzenia dynamicznych stron WWW - ASP .Net, technologia komponentów rozproszonych (.Net Managed Components), protokoły komunikacyjne (COM+, SOAP) i zestaw technologii implementujących inne usługi: MSMQ (Microsoft Message Queue) - do komunikacji asynchronicznej i przesyłania komunikatów, ADO .Net (Active Data Objects .Net) - do komunikacji z bazami danych i wiele innych.

J2EE jest zbiorem specyfikacji, które zostały na wiele sposobów zaimplementowane w postaci produktów oferowanych przez wiele firm. Microsoft .Net jest rozwiązaniem dostarczonym w całości przez jednego producenta, co powoduje, że nie opiera się ono całkowicie na przyjętych standardach. Mimo tej istotnej różnicy, obie technologie udostępniają porównywalny zestaw mechanizmów wykorzystywanych w fazie tworzenia oprogramowania. Oczywiście, nie oznacza to, że niezależnie od wyboru technologii nakład pracy związanej z tworzeniem projektu będzie zawsze identyczny, jednak kwestie czysto technologiczne nie mogą przesądzać o wyborze platformy. W każdym razie, biorąc pod uwagę cele i uwarunkowania dotyczące realizowanego projektu i strategii organizacji, konieczne jest przeprowadzenie analizy porównawczej uwzględniającej czynniki o znaczeniu rynkowym.