J2ME (Java 2 Micro Edition)
J2ME Platformu ile mobil bilgi işlem
Mobil işlem; bir sunucuda veya başka bir aygıtta bulunan veriye her zaman ve her yerde kablosuz ulaşabilme anlamına geliyor. Bu internetle, yerel ağlara bağlanabilen cep telefonlarıyla ve avuç içi bilgisayarlarla mümkün ve bu aygıtlar kullanıcının mobilitesini yükseltiyor, her yerde ve her zaman çalışabilmesini, 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 cep telefonları, 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 konfigü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.
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 Makinesi'dir (JVM - Java Virtual Machine)
CDC konfigürasyonu alttaki profillerin tabanını oluşturuyor:
Foundation Profile - FP
Personal Basis Profile - PBP
Personal Profile - PP
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 (cep telefonları, avuç içi bilgisayarlar ve çağrı cihazları).
CLDC konfigürasyonu alttaki temaları içeriyor:
Java Sanal Makine'sinin 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
CLDC 1.0 konfigürasyonu Java çalışma zamanına gereken birçok elementer sınıflar içeriyor. CLDC düşük kapasiteli aygıtları hedefliyor. Bu nedenle C programlama dilinde geliştirilmiş kısıtlı Java Sanal Makinası'nı (KVM) tanımlıyor.
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
Mart 2003 yılında gelişmiş CLDC 1.1 versiyonu tanımlandı. İki konfigürasyon arasındaki önemli farklar:
Kaygan virgül hesaplaması destekleniyor (Float ve Double sınıfları)
Takvim, tarih ve zaman dilimi sınıfları J2SE'ye benziyor
Asgari hafıza büyüklüğü 128kB'tan 160kB'a yükseltildi
CLDC 1.0 hataları düzeltildi
CLDC 1.1 için MIDP 2.0 profiliyle bağımlı yeni imkanlar sunan birçok ilave paketler tanımlandı:
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
Opsiyonel paketlerin tam listesini Sun Microsystems'in web sayfasında bulabilirsiniz
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 cep telefonları, 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 İlave Paketler)
Bu profilin standartlanması 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:
Home Audio-Video interoperability (HAVi)
Multimedia Home Platform (MHP)
OpenCable Application Profile (OCAP)
DTV Applications Software Environment (DASE)
PBP uygulamalarına "Xlet" deniliyor. Bunlar her zaman javax.microedition paketleri kullanıyorlar ve bu nedenle J2SE üzerinde çalışamıyorlar.
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ı
Personal Java'nın devamı
PP uygulamaları PBP profilinin tüm paketlerini kullanabiliyorlar
PP profili yerel ağ ve internet bağlantısı kurabilen aygıtlara Java çalışma zamanları sunuyor. Uygulamalardan birkaç örnek:
Tıbbi denetim
İnternet terminalleri
Televizyon program rehberleri (EPG - Electronic Program Guides)
Home Application Server (Ev Uygulama Sunucusu - kalorifer, ışık ve alarm yönetimi)