Integracja: Java kontra .Net

Otwartość na niezależne standardy

W porównaniu z technologią .Net J2EE jest postrzegana jako mniej otwarta na niezależne standardy informatyczne. Według wielu źródeł konsorcjum JCP (Java Community Process) rości sobie prawa do samodzielnego definiowania specyfikacji, zachowując pewną hermetyczność w stosunku do standardów definiowanych poza tą społecznością. Podejście to powoduje pewne opóźnienie we wprowadzaniu nowych rozwiązań (jako przykład może służyć opóźnienie we wsparciu przez standard J2EE usług sieciowych w stosunku do konkurenta). Mimo że technologia Microsoft .Net jest postrzegana jako bardziej otwarta na nowe rozwiązania, jest to otwartość tylko połowiczna. Od pewnego czasu daje się zaobserwować trend w strategii tej firmy, polegający na prawnym zastrzeganiu i patentowaniu własnych rozwiązań. Również rozwój wysoko poziomowych interfejsów API umożliwiających integrację z rozwiązaniami Microsoftu rzadko jest w pełni podporządkowany rzeczywistym oczekiwaniom i potrzebom rynku. Często też potentat z Redmond świadomie bojkotuje swój udział w pracach na rzecz niektórych standardów (np. rozwój ebXML) w celu zapewnienia popytu rynkowego na własne narzędzia, w większym lub mniejszym stopniu zaspokajające oczekiwania odbiorców (w tym przypadku promując BizTalk).

Niezależność od języka programowania

J2EE wykorzystuje język Java i środowisko uruchomieniowe - wirtualną maszynę Javy. Komunikacja z systemami stworzonymi w innej technologii jest możliwa, jednak nie bezpośrednio. W tym celu można użyć pomostów opartych na (1) protokole IIOP i technologii CORBA (Common Object Request Broker Architecture), (2) interfejsie JNI, (3) adapterach JCA, (4) protokołach komunikacji sieciowej (np. SOAP) i usługach sieciowych oraz (5) XML.

Technologia Microsoft .Net jest niezależna od konkretnego języka programowania. .Net Framework i CLR umożliwiają kompilację i wykonanie kodu napisanego w większości dostępnych języków oprogramowania (często bardzo nietypowych) i łączenie kodu napisanego w różnych językach. Jednak język pośredni MSIL i moduł CLR opierają się na modelu programowania obiektowego, wykorzystując mechanizmy dziedziczenia i wywoływania metod między obiektami tworzonymi za pomocą różnych języków. Wiele języków programowania nie pozwala na wykorzystanie mechanizmów obiektowych lub implementuje je w sposób niekompatybilny z modelem narzuconym przez CLR. Może to powodować konieczność wprowadzania w nich niestandardowych zmian.

W tej sytuacji użycie starszego kodu może w niektórych przypadkach stać się trudne.

Z punktu widzenia organizacji wykorzystującej platformę Microsoftu optymalnym rozwiązaniem powinno być wprowadzenie standardu tworzenia oprogramowania w jednym tylko języku (najlepszym wyborem wydaje się C#). Zarówno umożliwi to większą czytelność kodu aplikacji, jak i uchroni przed stratami związanymi z ewentualnym, masowym odejściem pracowników specjalizujących się w jednym z języków programowania.

Niezależność od systemu operacyjnego

J2EE, jako technologia wykorzystująca język Java i jego wirtualną maszynę, jest niezależna od systemu operacyjnego. Implementacje J2EE są dostępne dla wszystkich ważniejszych architektur serwerowych i systemów operacyjnych (w tym na wszystkie powszechniejsze odmiany Linuxa i Unixa, systemy mainframe, Microsoft Windows i inne). Ponadto otwartość źródeł maszyny wirtualnej Javy umożliwia jej przeniesienie nawet na bardzo nietypowe systemy.

Maszyna wirtualna i środowisko CLR są również niezależne od systemu operacyjnego. Microsoft oferuje implementację dla wybranych systemów Microsoft Windows, jednak dostępne są również implementacje dla innych systemów. Mimo to zapewnienie całkowitej przenośności platformy Microsoft .Net jest praktycznie niewykonalne. Atrakcyjność tej technologii polega na możliwości łatwego wykorzystania zestawu standardowych usług, protokołów komunikacji czy produktów serwerowych. Duże systemy będą prawdopodobnie wykorzystywać technologie ASP .Net i jej bogaty zestaw komponentów interfejsu użytkownika, mechanizmy dostępu do baz danych ADO .Net, komponenty MSMQ czy mechanizmy transakcji rozproszonych. Standardowym mechanizmem komunikacji między komponentami (oprócz protokołu SOAP do komunikacji w Internecie) jest nowa wersja protokołu COM+, dostępna tylko na platformach Microsoft Windows. Narzędzia programistyczne (Visual Studio .Net) oraz często wykorzystywane języki oprogramowania (jak Visual Basic) są również dostępne tylko dla systemów Microsoftu.


TOP 200