Platforma Java a technologie .Net

Subskrybuj RSS A A A
10 czerwca 2002
Tomasz Kopacz

.Net to środowisko, w którym mogą działać aplikacje pisane w dowolnym języku. W świecie Javy natomiast istnieje jeden uniwersalny język, który został tak rozbudowany, by sprostać każdemu zadaniu. Pozornie środowiska programistyczne skłóconych firm: Microsoftu i Sun Microsystems dzieli wszystko. Gdy jednak bliżej się im przyjrzeć, Java i .Net mają wiele cech wspólnych.

.Net to środowisko, w którym mogą działać aplikacje pisane w dowolnym języku. W świecie Javy natomiast istnieje jeden uniwersalny język, który został tak rozbudowany, by sprostać każdemu zadaniu. Pozornie środowiska programistyczne skłóconych firm: Microsoftu i Sun Microsystems dzieli wszystko. Gdy jednak bliżej się im przyjrzeć, Java i .Net mają wiele cech wspólnych.

Porównanie podstawowych elementów platform Java i .NetKliknij, aby powiększyćPorównanie podstawowych elementów platform Java i .NetWspółczesne, złożone systemy informatyczne powstają niemal zawsze w architekturze rozproszonej. Podział aplikacji na warstwy: prezentacyjną, logiki biznesowej i serwera bazy danych stał się na tyle powszechny, że trudno dzisiaj sobie wyobrazić skomplikowane rozwiązanie monolitycznie. Architektura rozproszona sprawia, że bardzo ważne jest zapewnienie właściwych mechanizmów współpracy poszczególnych warstw. Co więcej, czasami warstwa biznesowa jest na tyle rozbudowana, że nie wystarczy jeden serwer aplikacyjny, konieczne jest stosowanie wielu oddzielnych serwerów. Współpraca w warstwie serwera aplikacyjnego wymaga dobrze zdefiniowanego modelu komponentów (obiektów).

Chcąc bardziej efektywnie realizować operacje w warstwie środkowej, programista ma do wyboru trzy mechanizmy: standard CORBA, który obecnie już traci znaczenie, przenośną technologię Java (zwłaszcza J2EE), a także Microsoft.Net (następcę architektury Windows DNA). Przyglądając się bliżej strukturze .Net i Javy (patrz tabelka), można odnieść wrażenie, że ogólna architektura obu rozwiązań konkurencyjnych jest bardzo podobna. Przedstawimy główne cechy obu technologii.

Interpretacja

Oba systemy - Java i .Net - są oparte na maszynie wirtualnej. Microsoft, który pracę nad .Net zaczął znacznie później niż Sun, nie chciał powtórzyć rozwiązania stosowanego przez konkurenta. Kod w Javie jest interpretowany. W przypadku .Net pakiet jest kompilowany podczas instalacji, a dopiero potem uruchamiany. W trakcie kompilacji następuje weryfikacja, czy dany kod może działać w zadanych warunkach.

Technologia .Net pozwala, by administrator (w zależności od podpisów cyfrowych zawartych w pakiecie i uprawnień użytkownika) określił, jakie czynności kod może wykonywać. W przypadku Javy, która ma nieco uboższy model polis uprawnień, weryfikacja następuje często w trakcie interpretowania kodu.

W .Net są dostępne trzy wersje kompilatora. Pierwsza optymalizuje kod pod względem prędkości, druga minimalizuje zużycie pamięci. Obie są oparte na tym samym motorze co kompilator Visual C++. Trzeci typ kom- pilatora - EconoJIT - został zaprojektowany z myślą o urządzeniach przenośnych i prawie nie optymalizuje kodu, ale tworzy tylko na podstawie MSIL listę wywołań funkcji .Net Framework.

W przypadku Javy na komputerach klienckich działa zwykle maszyna wirtualna typu HotSpot, która także kompiluje kod. Jednak w przypadku serwerów aplikacyjnych czasami nadal jest konieczna interpretacja. Należy jednak pamiętać, że z powodu specyfiki niektórych mechanizmów klas w Javie pewne fragmenty kodu zawsze mu- szą być interpretowane. Dynamiczne wczytywanie klas plików czy wręcz generowanie ich w czasie działania aplikacji zwykle nie wykorzystuje mechanizmów kompilatora JIT (Just In Time). Większość debuggerów Javy wymaga, by była wyłączona kompilacja JIT, czyli tak naprawdę program jest testowany z użyciem innej maszyny wirtualnej niż ta, która ma działać w wersji ostatecznej.

W przypadku .Net interpretera po prostu nie ma. Kod jest zawsze kompilowany przed uruchomieniem, a dzięki "mocnym nazwom" może być przechowywany w pamięci cache do późniejszego wykorzystania.

Oba środowiska są wyposażone w automatyczny "odśmiecacz". Jest to uniwersalny mechanizm, który nadzoruje alokacje pamięci i zapewnia, że dany obszar zostanie zwrócony do puli, gdy tylko przestanie być wykorzystywany. Jednak nawet w przypadku stosowania automatycznego "odśmiecacza" może się zdarzyć, że pamięć zostanie zablokowana np. w przypadku aplikacji wielowątkowych, z dzieloną pamięcią.

Zarówno Java, jak i .Net zapewniają mechanizm odwoływania się do "niebezpiecznego" kodu, poza maszyną wirtualną. Sun opracował JNI (Java Invocation API), które pozwala współpracować kodowi Javy z kodem rodzimym (native) dla danej platformy. JNI jest standardową biblioteką klas, definiującą interfejs wywoływania kodu. Możliwa jest współpraca w obu kierunkach - zarówno program w Javie może dokonać wywołania kodu API systemu operacyjnego, jak i system operacyjny może wywoływać odpowiedni mechanizm w Javie (np. utworzyć klasę i wywołać jej metodę).

Oceń artykuł

średnio: 0 liczba ocen: 0
1  2  3  dalej »

Komentarze (0)

Najnowsze

e-Sąd z odsieczą sprawiedliwości

Polski wymiar sprawiedliwości postrzegany jest jako skostniały i opieszały. Tymczasem kolejne e-usługi udostępniane przez Ministerstwo Sprawiedliwości ułatwiają życie przedsiębiorcom i usprawniają pracę sądów.

e-Zdrowie w Polsce i na świecie

Projekty informatyzacji służby zdrowia realizowane są na świecie z różnym powodzeniem. Skąd Polska mogłaby czerpać wzorce? A może jesteśmy skazani na własne rozwiązania?

Raport Państwo 2.0, czyli nowa wizja informatyzacji państwa

Michał Boni, minister administracji i cyfryzacji, zaprezentował raport "Polska 2.0. Nowy start dla e-administracji". Przedstawia on informacje na temat stanu realizacji projektów będących w gestii nowo utworzonego ministerstwa oraz prezentuje kierunki dalszych działań związanych z informatyzacją i cyfryzacją administracji publicznej w naszym kraju.

Cyberprzestępcy podążają za użytkownikami

Już dwie na trzy polskie firmy odnotowały ataki lub awarie, które spowodowały spadek produkcji. Co trzecia firma utraciła dane. Liczba takich przypadków będzie rosła, bo hakerzy biorą na cel najbardziej masowe technologie. Szybko reagują też na zmiany w firmowej architekturze.

Jak zaplanować karierę w branży IT

Doświadczenia łączone na różnych stanowiskach w firmach o odmiennych profilach są szczególnie cenione przez pracodawców. Dlatego warto głęboko przeanalizować możliwości rozwoju kariery, które obecnie stwarza rynek IT.

Jakie są różnice między chmurą a wirtualizacją

Wirtualizacja jest obecnie standardową technologią, stosowaną powszechnie w IT. Od środowiska chmury prywatnej dzieli ją jednak długa droga, gdyż wymaga ona uzupełnienia o istotne składniki.

Jakie są różnice między chmurą a wirtualizacją

Wirtualizacja jest obecnie standardową technologią, stosowaną powszechnie w IT. Od środowiska chmury prywatnej dzieli ją jednak długa droga, gdyż wymaga ona uzupełnienia o istotne składniki.

Rekomendacje



Serwisy IDG - Warunki obsługi - Kontakt - Redakcja - Regulamin - O nas - Polityka prywatności - Serwis zgodny z ASME
Reklama - Licencjonowanie treści - Prenumerata: Computerworld, Networld, PC World
Computerworld Polska i Computerworld Polska online są znakami towarowymi IDG Poland SA.
© Copyright 2012 International Data Group Poland S.A. 04-204 Warszawa ul. Jordanowska 12 tel.(+4822)321-78-00 fax(+4822)321-78-88