Java technologia prawdziwie mobilna



Podobne dokumenty
Czym jest Java? Rozumiana jako środowisko do uruchamiania programów Platforma software owa

Dariusz Brzeziński. Politechnika Poznańska, Instytut Informatyki

Krótka Historia. Co to jest NetBeans? Historia. NetBeans Platform NetBeans IDE NetBeans Mobility Pack Zintegrowane moduły. Paczki do NetBeans.

Programowanie aplikacji na urządzenia mobilne

Początki Javy. dr Anna Łazińska, WMiI UŁ Podstawy języka Java 1 / 8

WPROWADZENIE DO JĘZYKA JAVA

Java jako język programowania

Cechy systemu X Window: otwartość niezależność od producentów i od sprzętu, dostępny kod źródłowy; architektura klient-serwer;

ZAPOZNANIE SIĘ Z TWORZENIEM

Dokumentacja aplikacji Szachy online

Autor : Mateusz Kupczyk

JavaFX. Technologie Biznesu Elektronicznego. Wydział Informatyki i Zarządzania Politechnika Wrocławska

Tomasz Grześ. Systemy zarządzania treścią

TECHNOLOGIE INFORMACYJNE

Programowanie obiektowe zastosowanie języka Java SE

SYSTEMY OPERACYJNE I SIECI KOMPUTEROWE

Wspomaganie pracy w terenie za pomocą technologii BlackBerry MDS. (c) 2008 Grupa SPOT SJ

Instalacja SQL Server Express. Logowanie na stronie Microsoftu

Czym jest technologia Bluetooth?

Programowanie obiektowe. Wprowadzenie

OSGi Agata Hejmej

Piotr Orzechowski. Technologie Biznesu Elektronicznego

System komputerowy. Sprzęt. System komputerowy. Oprogramowanie

Podstawowe zagadnienia

Środowiska i platformy programistyczne

Tworzenie aplikacji Web Alicja Zwiewka. Page 1

OpenLaszlo. OpenLaszlo

Wykład 1: Wprowadzenie do technologii Java

Wstęp do Informatyki. Klasyfikacja oprogramowania

Aplikacja serwerowa Platformy Prezentacyjnej Opis produktu

SOP System Obsługi Parkingów

Tworzenie oprogramowania

Bezpieczeństwo systemów komputerowych. Java i JavaScript. Java i JavaScript. Java - historia

ABIX Cyfrowa edukacja z oprogramowaniem Open Source

Wybrane działy Informatyki Stosowanej

Programowanie Strukturalne i Obiektowe Słownik podstawowych pojęć 1 z 5 Opracował Jan T. Biernat

Android - wprowadzenie. Łukasz Przywarty

SYSTEMY OPERACYJNE: STRUKTURY I FUNKCJE (opracowano na podstawie skryptu PP: Królikowski Z., Sajkowski M. 1992: Użytkowanie systemu operacyjnego UNIX)

M-biznes: Mobile Business. Realizacja aplikacji mobilnych w języku Java. Typy urządzeń przenośnych. Przykłady zastosowań

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Technika mikroprocesorowa. Struktura programu użytkownika w systemie mikroprocesorowym

Narzędzia uruchomieniowe dla systemów Embedded firmy Total Phase

Wykład V. Rzut okiem na języki programowania. Studia Podyplomowe INFORMATYKA Podstawy Informatyki

REFERAT O PRACY DYPLOMOWEJ

Linux -- u mnie działa!

Biorąc udział w projekcie, możesz wybrać jedną z 8 bezpłatnych ścieżek egzaminacyjnych:

EtiNET Projekt platformy internetowej dla studentów kierunku edukacja techniczno-informatyczna

System zarządzający grami programistycznymi Meridius

Programowanie niskopoziomowe. dr inż. Paweł Pełczyński

Przetwarzanie danych w chmurze

Programowanie w Javie cz. 1 Wstęp. Łódź, 24 luty 2014 r.

Informatyka I. Standard JDBC Programowanie aplikacji bazodanowych w języku Java

Język JAVA podstawy. wykład 2, część 1. Jacek Rumiński. Politechnika Gdańska, Inżynieria Biomedyczna

Programowanie obiektowe. Literatura: Autor: dr inŝ. Zofia Kruczkiewicz

Referat Pracy Dyplomowej

Ćwiczenie Nr 6 Przegląd pozostałych najważniejszych mechanizmów systemu operacyjnego Windows

Koncepcja wirtualnej pracowni GIS w oparciu o oprogramowanie open source

TWÓJ BIZNES. Nasz Obieg Dokumentów

/wpisać: model, symbol, producent urządzenia/

Zmiana treści Specyfikacji Istotnych Warunków Zamówienia.

Platformy programistyczne:.net i Java L ABORATORIUM 7,8: HACKATHON - JTTT

Nowe mechanizmy w wersji 3 Java Card. Mateusz LESZEK (138775)

MIGRACJA SYSTEMÓW INFORMATYCZNYCH DO TECHNOLOGII JAVA

WPROWADZENIE DO JĘZYKA JAVA

Rejestr HKEY_LOCAL_MACHINE

Typy przetwarzania. Przetwarzanie zcentralizowane. Przetwarzanie rozproszone

Zmiana treści Specyfikacji Istotnych Warunków Zamówienia.

REFERAT PRACY DYPLOMOWEJ

Programowanie współbieżne i rozproszone

Specyfikacja wymagań systemowych (może podlegać edytowaniu na kolejnych etapach)

CMS, CRM, sklepy internetowe, aplikacje Web

Opis administracji terminali ABA-X3 v.1.5.0

TWÓJ BIZNES. Nasze rozwiązanie

PDM wbudowany w Solid Edge

Obróbka po realnej powierzchni o Bez siatki trójkątów o Lepsza jakość po obróbce wykańczającej o Tylko jedna tolerancja jakości powierzchni

System Zarządzania Treścią

Aplikacja webowa do zarządzania maszynami wirtualnymi

Projektowanie, tworzenie aplikacji mobilnych na platformie Android

Dysk 20GB przestrzeni Ajax Ajax 1.0 Baza danych MS SQL 2005 lub 2008 Express Java Java 6 run time Microsoft Silverlight 3.

SERWERY KOMUNIKACYJNE ALCATEL-LUCENT

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

Przejrzystość, intuicyjny charakter i łatwość oprogramowania sterowników FATEK.

Zaawansowane narzędzia programowania rozproszonego

Co to jest Java? Java jest niezależna od platofrmy

World Wide Web? rkijanka

Usługi mobilne ipko biznes

IO - Plan testów. M.Jałmużna T.Jurkiewicz P.Kasprzyk M.Robak. 5 czerwca 2006

PRACA INŻYNIERSKA IMPLEMENTACJA MOBILNEGO KLIENTA BANKU ZABEZPIECZONEGO TOKENEM

Programowanie Urządzeń Mobilnych. Laboratorium nr 7, 8

Wprowadzenie do J2ME

Informatyka kl. 1. Semestr I

Mobilny Portal Pracownika. Mobilny Portal Pracownika ( Windows Phone 8 )

Wybrane działy Informatyki Stosowanej

Internetowa ogólnopolska baza informatycznych projektów badawczych otwartej innowacji Platforma współpracy SPINACZ 1/46

Programowanie w języku Java

Projekt i implementacja filtra dzeń Pocket PC

Programowanie obiektowe

Cloud Customers Relationships Wymagania wersja systemu:

Język Java i technologie Web - opis przedmiotu

Transkrypt:

Java technologia prawdziwie mobilna Abstract The Java 2 Platform, Micro Edition is the Java platform for consumer and embedded devices such as mobile phones, PDAs, in-vehicle telematics systems, and a broad range of embedded devices. Like its enterprise, desktop and smart card counterparts, the J2ME platform is a set of standard Java APIs defined through the Java Community Process program by expert groups that include leading device manufacturers, software vendors and service providers. This publication is short description of possibilities of mobile technologies such Java 2 Platfrom, including its history. Streszczenie Platforma Java Micro Editon jest oprogramowaniem Java dla klientów i urządzeń wbudowanych takich jak telefony komórkowe, urządzenia klasy PDA oraz szeroki zakres innych urządzeń przenośnych. Podobnie jak wersja Enterprise, standardowa oraz przeznaczona do programowania kart IC, środowisko J2ME jest zestawem bibliotek programisty Java zdefiniowanych w programie Java Community Process przez ekspertów reprezentujących czołowych producentów telefonów komórkowych oraz urządzeń przenośnych, dostawców oprogramowania. Publikacja ta ma na celu przedstawienie możliwości technologii mobilnej, jaką jest J2ME, na tle historii rozwoju tego języka programowania. Wstęp Projektantom języka Java przyświecała wielka idea to samo oprogramowanie powinno działać na różnych platformach systemowych i sprzętowych. Dotyczyło to zarówno komputerów osobistych, serwerów jak i drobnych, przenośnych urządzeniach na sprzęcie AGD kończąc. Od pierwszego oficjalnego wydania pierwszej wersji środowiska Java w roku 1995, błyskawicznie zaczęła rosnąć jej popularność. Przyczyna był prosta oprogramowanie to było pełni przenośne pomiędzy systemami operacyjnymi. Raz napisane oprogramowanie można było uruchomić na różnych systemach operacyjnych bez względu na fakt czy były to systemy *nix czy też Microsoft Windows. Drugą przyczyna wzrostu popularności środowiska i języka programowania Java była łatwość dystrybucji napisanych programów. Programy było łatwo pobierane uruchamianie dzięki wykorzystaniu Internetu lub innej sieci komputerowej. Oznaczało to, że uruchamianie

programu było równie łatwe zarówno na komputerach klasy PC jak i Machintosh. Technologia Java zapewniała przy tym ogromne bezpieczeństwo. Ograniczenia narzucone na tą technologię zapewniały bezpieczeństwo użytkownika oprogramowania oraz innych komputerów w sieci przy jednoczesnym zachowaniu jego przenaszalności i funkcjonalności. Początkowo technologia Java została naturalnie wykorzystana do rozszerzenia funkcjonalności strona WWW. Pozwalała ona na rozbudowę stron o elementy, które nie do tej pory nie mogły być wykonane przy zachowaniu założenia uruchamiania oprogramowania na dowolnym systemie operacyjnym. Przenaszalność programów Java osiągnięto dzięki opracowaniu platformy środowiska uruchomieniowego dostępnego dla praktycznie każdego systemu operacyjnego. Różnorodność sprzętowa dostępnych urządzeń oraz ogromne zróżnicowanie w sposobach działania systemów operacyjnych, uniemożliwiało opracowanie takiego języka oprogramowania, którego kody źródłowe programów mogłyby być kompilowane do poleceń wszystkich procesorów. To samo dotyczy środowisk systemowych. Różne systemy operacyjne w inny sposób zarządzają zasobami. Nie było, więc możliwe opracowanie takiego języka programowania, którego programy mógłby być uruchamiany bezpośrednio pod kontrolą systemu operacyjnego. Dlatego też opracowano specjalne środowisko uruchomieniowe, pod kontrolą, którego wykonywane są wszystkie aplikacje napisane w tym języku. Środowisko to nazywane jest wirtualna maszyną Java (ang., Java Virtual Machine). Obecnie środowiska takie dostępne są dla niemalże wszystkich systemów operacyjnych: Microsoft Windows, systemów klasy *nix, BSD, Symbian, Palm OS. Systemy te są przeznaczone dla różnej klasy urządzeń i sprzętu komputerowego. Jednym z rodzajów takich urządzeń są telefony komórkowe, które posiadają szczególna wersję wirtualnej maszyny Java J2ME. Szczypta historii Pomysł opracowania języka programowania, który umożliwiałby pisanie programów, które można uruchamiać bez względu na specyfikę systemu operacyjnego czy sprzętu komputerowego powstał w roku 1990 w firmie Sun Microsystems. W grudniu tego roku, Patrick Naughton, Mike Sheridan i James Gosling uczestniczyli w projekcie badawczym Green Project, który miał na celu wychwycenie trendów rynku komputerowego i opracowanie rozwiązań, które mogłyby zaspokoić wymagania klientów i coraz bardziej wymagającego rynku.

Green Project nie miał na celu opracowania jakiegokolwiek języka programowania. Java była niejako produktem ubocznym prac nad poszukiwaniem nowej fali w systemach komputerowych. Ściśle tajna, trzynastoosobowa grupa doszła do wniosku, że przyszłością rynku komputerowego będą niewielkie urządzanie przenośne łączące możliwości komputerów osobistych i urządzeń przenośnych. W kwietniu 1991 roku grupa ta przeprowadziła się poza siedzibę firmy Sun, aby tam przez następnych osiemnaście miesięcy, bez nawiązywania kontaktów z firmą, pracować nad projektem urządzenia przenośnego opartego na procesorze SPARC i niewielkim, wbudowanym systemem operacyjnym i aktywnym na dotyk wyświetlaczem. Nadano mu nazwę Star7 (*7). Nazwa tego urządzenia, podobnie jak samego języka Java miała swoją przypadkową genezę. Pracując nad urządzeniem, grupa korzystała z telefonów podłączonych do jednej centralki telefonicznej. Telefony posiadały bardzo przyjazną funkcję. Kiedy w jednym z pokojów, telefon nie był odbierany można było odebrać połączenie z innego aparatu poprzez naciśnięcie kombinacji klawiszy * i 7. Ponieważ, jak przyznają uczestnicy, najczęściej przebywali z dala od biurek, często wykrzykiwanym zdaniem było właśnie star seven (tłum: gwiazdka siedem ). Na urządzeniu zainstalowano oprogramowanie w przykładowym interfejsem użytkownika. Główną rolę na w aplikacji odgrywała machająca i wykonująca przewroty, animowana postać o imieniu Duke, znana dzisiaj jako maskotka nierozłącznie związana z językiem Java. Pomysłodawca tej postaci był Joe Palrang. Postać ta towarzyszyła aktywnie w poczynaniach autora i była gotowa pomóc mu w chwili, gdy użytkownik miał problem z obsługa oprogramowania, podobnie jak ma to miejsce w popularnych programach biurowych wykorzystywanych obecnie.

Rys. 1. Sekwencja obrazków tworząca animację waving Duke pomysł jednego z twórców projektu Java. Urządzenie to oprogramowano z wykorzystaniem nowego języka programowania niezależnego od procesora. Język ten nazwano OAK. Imię to zaproponował jeden z członków projektu James Gosling, który był odpowiedzialny za opracowanie tego języka. Jak sam przyznaje, przyczyna była bardzo prosta za oknem jego pokoju rósł dąb (ang. oak). Niestety, jak się później okazało, wynikły pewne komplikacje związane z podobnym brzmieniem tej nazwy do innego oprogramowania służącego to przetwarzania tekstów AWK. Uczestnicy projektu Green, idąc do pobliskiej ich miejscu pracy kawiarenki na codzienną (zresztą spożywaną w dużych ilościach kawę), rozmawiali o nazwie dla nowego języka programowania. Jeden z nich zaproponował, aby nazwać go po prostu Java1. Nazwa ta przyjęła się w grupie projektantów i pozostała do tej pory. Z chwilą, gdy efekty pracy nad projektem wzbudziły zainteresowanie potencjalnych klientów, grupa wyszła z ukrycia zajmując pomieszczenia w luksusowym biurowcu oraz zmieniając nazwą na FirstPerson Team. Era internetu Istotnym jest fakt, że w chwili rozpoczęcia prac w rakach GreenProject, WWW było w powijakach język znaczników HTML był nowością w fazie opracowywania. Dlatego też, pomimo, iż *7 było urządzeniem sieciowym i w pełni multimedialnym,nie szukano rozwiązań dla Internetu. W tym czasie Internet miał już dwudziestoletnią historię, usługi telnet czy też FTP nie były łatwe w użytku, a co z tym idzie nie były atrakcyjne dla przeciętnego użytkownika. Dopiero zaprezentowanie, w 1993 roku, możliwości łatwej w użyciu przeglądarki internetowej Mosaic zwróciło uwagę firmy Sun na możliwości zastosowania języka Java na bazie technologii WWW. 1 Java, to inaczej kawa. Nazwa wywodzi się od wyspy, jednego z największych producentów kawy.

Dwa przykłady W roku 1994 firma Sun powróciła do rozwoju technologii Java. Opracowano przeglądarkę internetową napisaną w tymże języku, którą otrzymała nazwę WebRunner, a w późniejszym okresie przemianowana na HotJava. Była to pierwsza przeglądarka internetowa z wbudowaną wirtualną maszyną Java. Umożliwiała ona wyświetlanie programów umieszczanych na stronach HTML. Programy te nazywane są obecnie apletami. W roku 1995 miała miejsce prezentacja możliwości WebRunner a na jednej z konferencji dotyczącej zagadnień związanych z Internetem. Większość z uczestników konferencji była nieco znudzona nieświeżą już technologią prezentacji tekstu i statycznej grafiki na stronach WWW. Jeden z obrazów przedstawiał obraz trójwymiarowej molekuły. W chwili, kiedy James Gosling przesuwając wskaźnikiem myszki nad obrazem spowodował obrót molekuły, wywołał zdumienie wśród słuchaczy. Drugi z apletów prezentował sortowanie histogramu o losowo generowanej wysokości słupków. Prezentacja tych dynamicznych i interaktywnych obrazków, reagujących na czynności użytkownika końcowego spowodowały duże poruszenie wśród uczestników. Chwilę tą uważa się za oficjalna prezentacje technologii Java. Podział Jak szybko się okazało, jedna wersja oprogramowania nie była odpowiednia dla wszystkich urządzeń. Wraz z wprowadzeniem na rynek drugiej wersji oprogramowania Java, firma Sun podzieliła technologię Java na trzy wersje: Java 2 Standard Edition (J2SE) Java 2 Enterprise Edition (J2EE) Java 2 Micro Edition (J2ME) Każda z tych wersji oprogramowania była przeznaczona dla urządzeń o różnych parametrach sprzętowych. Standardowa dystrybucja Java jest przeznaczona dla komputerów osobistych. Platforma ta zapewniała mocne i bezpieczne podstawy do budowania i uruchamiania aplikacji klienckich i typu standalone. Użytkownikom końcowym, technologia J2SE dostarcza szybszych i coraz bardziej funkcjonalnych aplikacji sieciowych, często bardzo łatwo dystrybuowanych przez Internet. Wersja Enterprise Java, pozwala na upraszczanie aplikacji serwerowych. Osiągnięto to dzięki zastosowaniu technologii zapewniającej standaryzację, modularna budowę oraz ponowną używalność komponentów EJB (Enterprise Java Beans). Serwery aplikacji J2EE

przeznaczone są dla dużych, wydajnych komputerów o przeznaczeniu serwerowym. Technologia ta umożliwia również stosunkowo łatwą rozbudowę aplikacji o dodatkowe moduły oprogramowania, jak i łatwe rozbudowanie systemu o dodatkowe zasoby sprzętowe. Pozwala to na skupieniu się na funkcjach oprogramowania i logice biznesowej bez zwracania szczególnego nacisku na infrastrukturę sieciową. Trzecia, najmniejsza wersja Java przeznaczona jest dla urządzeń o niewielkich parametrach sprzętowych mała ilość pamięci oraz niewielkie wyświetlacze mogące prezentować dane oraz graficzny interfejs użytkownika. Dzięki ścisłej specyfikacji środowiska urządzeń przenośnych, każdy z producentów może opracować własne środowisko uruchomieniowe pozwalające na pisanie i wykonywanie oprogramowania na takich komputerach. Istnieje jeszcze jedna, niewielka implementacja środowiska Java przeznaczona do obsługi kart elektronicznych IC. Są to biblioteki programisty pozwalające na pisanie niewielkich kodów oprogramowania, które można przechowywać (i uruchamiać) w kartach elektronicznych o bardzo małej ilości pamięci oraz niewielkim procesorze. Pakiety dodatkowe Pakiety dodatkowe Java 2 Platform, Micro Edition Java 2 Platform Enterprise Edition Java 2 Platform Standard Edition Personal Profile Foundation Profile MID Profile CDC CLDC Java Card API Rys.2. Schematyczne przedstawienie wersji środowisk uruchomieniowych Java.

Java 2 Micro Edition Architektura J2ME definiuje konfigurację profile oraz dodatkowe pakiety oprogramowania jako elementy służące do budowania środowiska uruchomieniowego Java. Każde ze środowisk jest zoptymalizowane pod względem pamięci operacyjnej, szybkości przetwarzania oraz możliwości wykonywania operacji wejścia/wyjścia. Inaczej niż to jest w przypadku edycji J2SE, specyfikacja J2ME nie dostarcza żadnego oprogramowania, które można byłoby nazwać środowiskiem uruchomieniowym JRE. Specyfikacja J2ME określa jedynie minimalny zestaw klas API, który pozwoli na uruchomienie oprogramowania na określonym urządzeniu. Konfiguracje Zestaw klas pozwalających na uruchamianie oprogramowania oraz środowisko uruchomieniowe nazywa się konfiguracją urządzenia. Specyfikacja J2ME określa obecnie dwie takie konfiguracje: CDC Connected Device Configuration CLDC Connected Limited Device Configuration Pierwsza z tych konfiguracji oparta jest o typowe środowisko uruchomieniowe znane z edycji J2SE. Jest ona przeznaczona dla niewielkich urządzeń przenośnych o stosunkowo dużych możliwościach przetwarzania informacji: Palmtop, PocketPC, telewizory. Urządzenia takie powinny posiadać minimum 2 MB pamięci operacyjnej. Druga konfiguracja oparta jest o specyficzne dla danego urządzenia środowisko uruchomieniowe KVM. Została ona zaprojektowana z myślą o urządzeniach o niewielkich możliwościach łączenia się z siecią, mały procesor i znacznie ograniczoną ilość pamięci operacyjnej: terminale komórkowe, pager y dwukierunkowe lub niewielkie PDA. Urządzenia te posiadają zazwyczaj 16- lub 32-bitowe procesory oraz od 128 do 512 KB pamięci operacyjnej przeznaczonej na implementację platformy Java oraz aplikacje pokrewne. Profile W celu dostarczenia kompletnego środowiska uruchomieniowego na konkretnym urządzeniu, konfiguracje muszą być połączone z szeregiem API wyższego poziomu, które jest odpowiedzialne za model pracy aplikacji, graficzny interfejs użytkownika oraz dostęp do specyficznych możliwości sprzętu elektronicznego. Ponieważ opis profili Foundation Profile oraz Personal Profile znacznie przekraczają zakres tej publikacji, w dalszej jej części skupimy się jedynie na specyfikacji MIDP

Mobile Information Device Profile Profil ten opracowano z myślą o terminalach telefonów komórkowych oraz słabszych urządzeniach klasy PDA. MIDP oferuje jądro funkcjonalne wymagane przez aplikacje mobilne włączając w to graficzny interfejs użytkownika, połączenia sieciowe oraz możliwość lokalnego składowania danych. MIDP w wersji 1.0 jest najbardziej rozpowszechnionym profilem wykorzystywanym obecnie w urządzeniach przenośnych różnej klasy przeznaczenia pomimo ubogiego zestawu klas (Rys.3.) umożliwiających tworzenie bogatych funkcjonalnie GUI. Obecna wersja specyfikacji, ze względu na ograniczone możliwości techniczne sprzętu jest bardzo ograniczona funkcjonalnie. Problem dotyczy głównie obsługi multimediów. Nowa wersja oprogramowania (2.0) zakłada między innymi lepszą obsługę połączeń sieciowych ze szczególnym uwzględnieniem implementacji protokołu SLL oraz połączeń datagramowych UDP.

Rys.3. Klasy pakietu javax.microedition.lcdui, wykorzystywane do tworzenia GUI. Istotnym jest włączenie specyfikacji Mobile Media API do środowiska MIDP 2. Implementacje tej specyfikacji będą musiały umieć odtwarzać dźwięki zapisane w popularnych formatach (np. *.wav), wszystko przy wykorzystaniu kilku linijek kodu: InputStream in = getclass().getresourceasstream("/signs_m.wav"); Player p = Manager.createPlayer(in, "audio/x-wav"); p.start(); Znacznie rozszerzono możliwości budowy graficznego interfejsu użytkownika. Menadżery układów znane z pierwszej wersji specyfikacji przypominają te z bibliotek AWT

czy JFC. Znacznie zmieniono model obsługi zdarzeń dodając przy tym dodatkowe pakiety wspomagające pisanie gier na telefony komórkowe. Rozbudowana grafika RGB pozwala na wyświetlanie pełnokolorowych obrazów i filmów. Zakończenie Mobilność technologii Java może być rozumiana w dwojaki sposób. Pierwszy z nich określa nam język programowania umożliwiający tworzenie oprogramowania na niewielkie, przenośne urządzenia o różnorodnym zastosowaniu. Szczególna rolę odgrywa tu możliwość pracy w środowisku sieci rozległych GSM oraz Internet. Drugie znaczenie mobilności prezentowanej tu technologii oznacza szerokie spektrum zastosowań oprogramowania języka Java. Oprogramowanie to może być uruchamiane na potężnych komputerach o przeznaczeniu serwerowym (serwery aplikacji), na komputerach osobistych, urządzeniach przenośnych oraz niewielkich telefonach komórkowych o bardzo ograniczonych możliwościach i zasobach sprzętowych. Oprogramowanie Java może być również uruchamiane na kartach procesorowych, które cechują minimalna ilość pamięci podręcznej oraz procesory o niewielkim taktowaniu zegara. Projekt, nad którym prace rozpoczęto na początku lat dziewięćdziesiątych, miał na celu opracowanie technologii przenośnej umożliwiającej wykorzystanie globalnych zasobów sieciowych. Efektem są potężne mechanizmy realizujące marzenia twórców oraz zdobywające coraz więcej zwolenników wśród programistów oraz użytkowników oprogramowania.