Java im starsza, tym lepsza

Wzorce projektowe

"Więcej nauczysz się z sukcesów innych niż z własnych błędów" - twierdzi Erich Gamma, autor książki Design Patterns: Elements of Reusable Object Oriented Software (Addison-Wesley 1995). Podobnie jak w przypadku innych języków, społeczność programistów Java dopracowała się wzorców projektowych, opartych na udanych rozwiązaniach. Są one dostępne na stronach internetowych Suna i mają znacznie skrócić czas tworzenia aplikacji biznesowych. Wzorce projektowe są również używane przez najważniejsze pakiety narzędziowe UML do modelowania aplikacji.

Java dla telekomunikacji

Integracja tradycyjnych usług telekomunikacyjnych i usług dostępnych w sieciach IP to problem, z którym borykają się wszyscy operatorzy telekomunikacyjni. Anonsowana na konferencji JavaOne inicjatywa Java 2 Technology for Service Providers (JTSP) to zestaw funkcji API, ramy architektoniczne i zestawy testów do integracji. Zestaw JTSP abstrahuje funkcje niskiego poziomu, dostępne już od 1998 r. w ramach inicjatywy sieci zintegrowanych Java API for Integrated Networks (JAIN). Zestaw pozwala także łączyć użytkowników sieci komórkowych ze zunifikowaną strukturą sieciową.

Java 2 Micro Edition (J2ME) to minimalna platforma dla małych klientów, umożliwiająca tworzenie aplikacji do urządzeń przenośnych i telefonów komórkowych. Jej zasadniczą zaletą w porównaniu z WAP jest możliwość korzystania z licznych funkcji telefonu bez połączenia ze stacją bazową. Zgodnie z przewidywaniami, w roku 2002 Nokia zamierza dostarczyć 50 mln telefonów komórkowych z Javą.

Każdy z każdym

Przedstawiciele Suna przekonują, że nie traci na aktualności słynne hasło marketingowe - "dopiero sieć to komputer". Jednakże Bill Joy, główny naukowiec w Sun Microsystems, uważa, że to użytkownik powinien stanowić centrum przetwarzania, nie serwer. Przetwarzanie zdecentralizowane P2P (peer-to-peer) robi furorę również wśród programistów Javy; nie stanowi ono wprawdzie głównego kierunku rozwoju J2EE, ale Sun opracował zasadnicze elementy, pozwalające na realizację w Javie przetwarzania w modelu "każdy z każdym".

Przetwarzanie zdecentralizowane optymalizuje wykorzystanie procesorów, pasma sieciowego i innych zasobów komputerów. Pakiet Jxta do obsługi przetwarzania P2P został opracowany w Javie, ale jest przenoszony na inne języki; jest niezależny od platformy systemowej (jedyne wymaganie to możliwość komunikacji za pośrednictwem XML) i protokołu komunikacyjnego. Sun opracowuje wirtualną warstwę komunikacyjną dla P2P, działającą nie tylko na TCP/IP, ale również w innych sieciach.

Jxta jest wzorowany na potokach (pipes) z systemów Unix, służących do komunikacji w sieci. Oprócz nich zawiera protokoły do znajdowania uczestników sieci P2P, dołączania uczestników lub ich grup do potoków oraz dołączania do i wychodzenia z sieci.

Sun oferuje powłokę (shell) do posługiwania się możliwościami sieci P2P oraz program InfraSearch (produkt zakupionej przez Suna firmy o tej samej nazwie) do przeszukiwania i indeksowania dokumentów z sieci Web, działający na zasadzie P2P.

Narzędzia

Na rynku nie brakuje narzędzi do modelowania, projektowania i tworzenia aplikacji Java. W San Francisco większość producentów demonstrowała ulepszone wersje produktów, niektórzy dostarczyli nowe edycje.

Najbardziej aktywny w dziedzinie narzędzi Java jest Borland, który przedstawił JBuilder 5, zawierający pełne wsparcie XML i umożliwiający tworzenie aplikacji do osadzania na różnych serwerach aplikacyjnych, w tym IBM WebSphere i BEA WebLogic. Według Borlanda, JBuilder 5 może być używany do tworzenia aplikacji współpracujących z SAP, a zestaw JBuilder 5 Mobile Set jest ściśle powiązany z telefonami komórkowymi Nokia.

Firma WebGain oferuje nowy Business Designer do projektowania aplikacji biznesowych, uzupełniający ofertę narzędziową tej firmy złożoną z pakietu do modelowania aplikacji Structure Builder i pakietu programistycznego Visual Caf?.

Sun proponuje zestaw Web Services Pack, zawierający nową wersję Tomcat (implementacja Javy w ramach otwartego kodu), pakiet JAX do tworzenia i publikowania usług sieciowych oraz Java Server Faces do opracowania interfejsu użytkowego. Sun wprowadza również nową wersję Forte 3.0 do budowania aplikacji J2EE na serwerze aplikacyjnym iPlanet.

Wydajność

Wydajność zawsze była słabą stroną języków interpretowanych, nawet jeśli wstępnie zostają skompilowane do kodu pośredniego jak Java. Dopiero wprowadzenie wirtualnej maszyny Java HotSpot zapewniło wydajność aplikacji Java, porównywalną z aplikacjami w C++, kompilowanymi do kodu maszynowego. W 2000 r. Sun wprowadził nową, wydajniejszą wersję HotSpot 2.0. Ponieważ optymalizuje ona kod bajtowy Java w trakcie wykonywania programu, to do optymalizacji może wykorzystać informacje bieżące, do których nie ma dostępu kompilator. Na przykład, jeśli pętla ma być wykonywana tylko kilka razy, opłaci się wykonać obliczenia jako kod liniowy, nie zapętlony.

W dawniejszych wersjach Java problemem była również wydajność bibliotek obsługujących operacje wejścia/wyjścia. W nowej wprowadzono wejście/wyjście odwzorowane na pamięć, co pozwala wykorzystać mechanizmy systemowe bezpośredniego dostępu do pamięci oraz uniknąć kopiowania buforów aplikacji do bufora we/wy.

Wprowadzono również nie blokujący mechanizm wejścia/wyjścia, w którym z tego samego wątku programowego można korzystać dla wielu jednoczesnych operacji wejściowych, bez konieczności oczekiwania na ich zakończenie. Blokowe kopiowanie plików jest obecnie tak samo szybkie, jak w aplikacjach kompilowanych do kodu maszynowego.


TOP 200