J2ME - Java 2 Micro Edition
Mobil işlem; bir sunucuda veya başka bir aygıtta bulunan veriye herzaman ve heryerde kablosuz ulaşabilme anlamına geliyor. Bu internete veya yerel ağlara bağlanabilen ceptelefonlarla ve avuçiçi bilgisayarlarla mümkün. Bu aygıtlar kullanıcının mobilitesini yükseltiyor ve heryerde ve herzaman çalışabilmesini ve eğlenebilmesini sağlıyorlar.Java 2 Micro Edition (J2ME) platformu Sun Microsystems, Inc. şirketi tarafından 1999 yılında tanıtıldı. Uygulama ceptelefonları, avuçiçi bilgisayarları, TV Set-Top Box'lar, görüntülü internet telefonları ve yerleşik sunucular için geliştirildi. Bu platform 2001 yılından itibaren mobil aygıtlar pazarında en çok kullanılan uygulamadır.
J2ME platformu könfigürasyonlardan ve profillerden oluşuyor. Tanımlamaları hafıza büyüklüğü, güç kaynağının türü veya veri genişliği gibi teknik parametrelerden oluşturuldu. Şimdilik alttaki resimde görülen konfigürasyonlar (CDC ve CLDC) ve profiller (FP, PBP, PP, MIDP ve PDAP) tanımlandılar.
Connected Device Configuration (CDC - Bağlı Aygıt Konfigürasyonu)
CDC konfigürasyonu Java uygulamaları için en az 2MB hafızası olan ve 16/32 Bit işlemci ile çalışan aygıtlar için tanımlandı. CDC aygıtları genelde sabit güç kaynağına ve geniş bantlı internet bağlantısına sahipler. Misal: TV Set-Top Box'lar, görüntülü internet telefonları ve arabalarda kullanılan Telematik aygıtları. (Navigasyon, vs.)
J2SE sınıflarının bazı bölümlerini içeren CDC konfigürasyonu programları J2SE tabanında çalışabilirler. CLDC konfigürasyonunun javax.microedition.io paketini içeren CDC uygulamasının bir parçasıda Java Sanal Makinası'dır (JVM - Java Virtual Machine)
Connected Limited Device Configuration (CLDC - Limitli Bağlı Aygıt Konfigürasyonu)
CLDC konfigürasyonu 128kB ile 512kB arası hafızası olan ve 16/32 Bit CISC / RISC işlemci ile çalışan aygıtlar için tanımlandı. Genelde pille (akü) çalışan CLDC aygıtları internet bağlantısına sahipler (ceptelefonları, avuçiçi bilgisayarlar ve çağrı cihazları).
CLDC konfigürasyonu alttaki temaları içeriyor:
- Java Sanal Makina'sının tanımlaması (KVM)
- Elementer kütüphane (java.lang.*, java.util.*)
- I/O operasyonlarını destekleyen sınıflar
- Ağ komünikasyonu
- Uygulama çevresinin işletim sisteminden ayırımı
- Unicode desteği
KVM'nin kısıtlamaları alttadır:
- Kaygan virgül hesaplaması yok
- java.lang.Object.finalize() metodu yok
- kısıtlı hata yönetimi
- Java Native Interface (JNI) arayüzü yok
- Thread Groups ve Deamon Threads yok
- Reflection yok
- kullanıcı tanımlamalı Class Loader yok
- Kaygan virgül hesaplaması destekleniyor (Float ve Double sınıfları)
- Takvim, tarih ve zamandilimi sınıfları J2SE'ye benziyor
- asgari hafıza büyüklüğü 128kB'tan 160kB'a yükseltildi
- CLDC 1.0 hataları düzeltildi
- Mobile Media API - Ses ve görüntü kayıt etme ve oynatma arabirimi
- Wireless Messaging API - Gelişmiş mesajlaşma arabirimi
- Bluetooth API - Bluetooth komünikasyonu
- Location API for J2ME - GSM aygıtlarının yerinin belirlenmesini sağlayan arabirim
Foundation Profile (FP - Temel Profil)
FP profili CDC konfigürasyonu tarafından desteklenen ama grafik arayüzü olmayan aygıtlar içindir. FP uygulaması aygıtların düşük hafıza veya işlemci gibi teknik kısıtlamalarını gözönüne alarak çalışmaktadır.
FP uygulamalarından bazıları:
- Ağ yazıcıları
- Router'lar
- Sunucular
Mobile Information Device Profile (MIDP - Mobil Aygıt Bilgilendirme Profili)
MIDP J2ME platformu için tanıtılan ilk profildir. Temmuz 2000 yılında CLDC 1.0 konfigürasyonunu temel alan MIDP 1.0 versiyonu ve 2002 yılının sonunda CLDC 1.1 konfigürasyonunu temel alan MIDP 2.0 versiyonu tanıtıldı. MIDP profili ceptelefonları, avuçiçi bilgisayarları ve çağrı cihazları gibi küçük aygıtları hedefliyor. Bu cihazlar sahip oldukları düşük hafızaları (512kB'tan az) ve kablosuz internet bağlantılarının yanısıra pille (akü) çalışıyorlar ve düşük işlemci hızına sahipler.
MIDP 1.0 profili alttaki imkanları sunuyor:
- Grafik kullanıcı arayüzünün kurumu (GUI - Graphic User Interface)
- kullanıcının girdiği verileri işlemek
- grafik dosyaların görüntülenmesi
- zaman sayacının kullanımı
- verileri veritabanından okumak/silmek ve verileri kayıt etmek
- HTTP bağlantılarını kurmak
MIDP 2.0 profili daha geniş imkanlar sunuyor:
- Resim işleme (RGB)
- gelişmiş çoklu ortam
- gelişmiş kullanıcı arayüzü (GUI)
- Oyun API (Application Programming Interface - Uygulama Programlama Arayüzü)
- SSL üzerinden güvenli HTTP bağlantıları
- dijital imza
PDA Optional Packages (PDAOP - Avuçiçi İlave Paketler)
Bu profilin standartlaması daha henüz tamamlanmadı. Mart 2003 yılında yayınlanan son versiyonunda (Proposed Final Draft) yeni profil yerine 2 ilave paket teklifi sunuldu:
- Personal Information Management (PIM) - Bu paket avuçiçi bilgisayarın hafızasında bulunan verilere ulaşılmasını sağlıyor, misal: adres defteri, ajanda, takvim, vs.
- FileConnection (FC) - Bu paket hafıza kartı (SD/MMC/Flash, vs.) gibi değiştirilebilir yedekleme donanımlarında olan verilere ulaşmak için geliştirildi.
Personal Basis Profile (PBP - Basit Kişisel Profil)
PBP profili FP profilin fonksiyonlarını alttaki elementlerle genişletiyor:
- java.AWT paketinin kısıtlı bir bölümü (Button ve Panel sınıfları eksik)
- Java TV API'den adapte edilen "Xlet" aplikasyon modeli
- RMI API'lerin bir bölümünü kullanan Xlet'lerin komünikasyonu
PBP profili genelde interaktif televizyon hizmetleri sunan aygıtlarda kullanılıyor ve alttaki standartlarla uyumludur:
- http://www.havi.org/ - Home Audio-Video interoperability (HAVi)
- http://www.mhp.org/ - Multimedia Home Platform (MHP)
- http://www.opencable.com/ocap.html - OpenCable Application Profile (OCAP)
- http://www.atsc.org/ - DTV Applications Software Environment (DASE)
Personal Profile (PP - Kişisel Profil)
PP profili CDC konfigürasyonun ve FP profilin temelinden oluşuyor. PP alttaki özelliklerle tanımlanıyor:
- java.AWT paketi ile tam uyumlu
- Applet'ler çalıştırma imkanı
- http://java.sun.com/products/personaljava/ - Personal Java'nın devamı
- PP uygulamaları PBP profilinin tüm paketlerini kullanabiliyorlar
- Tıbbi denetim
- İnternet terminalleri
- Televizyon program rehberleri (EPG - Electronic Program Guides)
- Home Application Server (Ev Uygulama Sunucusu - kalorifer, ışık ve alarm yönetimi)