Java ME 8 dan Internet of Things

Sistem tertanam adalah sistem komputer yang ditanamkan ke perangkat lengkap, yang fungsi khususnya berada dalam sistem mekanis atau kelistrikan yang lebih besar. Biasanya digunakan dalam aplikasi industri dan konsumen, sistem tertanam memasuki pusat perhatian dengan Internet of Things (IoT). Untuk developer yang baru memulai dengan IoT, artikel ini adalah panduan untuk mempelajari lebih lanjut tentang teknologi yang membentuk platform IoT Oracle: Java ME 8, Java ME Embedded, Java SE Embedded, dan Java Embedded Suite.

Pada tahun 1991, Mark Weiser, yang saat itu menjadi kepala Pusat Penelitian Palo Alto (PARC) Xerox, mencoba untuk menangkap era komputasi yang akan datang di mana-mana. Memperhatikan bahwa "teknologi yang paling mendalam adalah yang menghilang," Weiser menggambarkan berbagai pemikiran dan eksperimen teknis yang dilakukan oleh rekan-rekannya di PARC, saat mereka mencari cara berpikir baru tentang komputer sebagai sistem tertanam. Visi mereka, yang mungkin tampak fantastis seperti hovercraft pada tahun 1991, dengan cepat menjadi lebih umum saat ini:

Sal terbangun: dia mencium bau kopi. Beberapa menit yang lalu jam wekernya, yang diperingatkan oleh gelisahnya yang gelisah sebelum bangun, diam-diam bertanya, "Kopi?", Dan dia bergumam, "Ya." "Ya" dan "tidak" adalah satu-satunya kata yang diketahuinya [...]

Saat sarapan, Sal membaca berita. Dia masih lebih menyukai bentuk kertas, seperti yang dilakukan kebanyakan orang. Dia melihat kutipan menarik dari seorang kolumnis di bagian bisnis. Dia menyeka penanya di atas nama, tanggal, bagian, dan nomor halaman koran, lalu melingkari kutipannya. Pena mengirimkan pesan ke koran, yang mengirimkan kutipan ke kantornya [...]

Begitu Sal tiba di tempat kerja, pandangan ke depan (di dalam mobilnya) membantunya menemukan tempat parkir dengan cepat. Saat dia masuk ke gedung, mesin di kantornya bersiap untuk memasukkannya ...

Perangkat yang disematkan dalam skenario pagi hari kerja Weiser menggunakan sensor untuk melacak interaksi pengguna manusia, dan konektivitas nirkabel untuk mengatur respons: tempat tidur Sal, jam alarm, dan pembuat kopi semuanya terhubung untuk memastikan bahwa secangkir kopi pertamanya sedang berlangsung sebelum dia menggulung bangun tidur. Bagi Weiser dan rekan-rekannya, ini adalah komputasi yang tenang ; hari ini kita mungkin menyebutnya Internet of Things (IoT).

Baca lebih lanjut tentang pekerjaan Weiser di PARC dan teorinya tentang komputasi di mana-mana: "Pastikan kualitas layanan Web di era komputasi tenang" (Frank Sommers, JavaWorld, April 2001).

Ikhtisar IoT

Jika ada satu karakteristik yang menentukan dari IoT, itu adalah interoperabilitas, atau koordinasi dari beberapa perangkat. Seperti yang diamati dalam skenario di atas, IoT menggunakan sensor untuk mengumpulkan data (dalam hal ini tentang interaksi Sal di lingkungannya) dan konektivitas nirkabel untuk mengatur respons. IoT dibangun di atas perpaduan teknologi, termasuk platform perangkat keras baru dan lama, data besar, komputasi awan, dan komputasi mesin-ke-mesin (M2M). API adalah perekat yang diperlukan, menyatukan semua bagian yang bergerak ini.

Yang paling penting untuk pengembang Java, Java adalah kunci untuk banyak teknologi IOT muncul sudah, dan Oracle telah berkomitmen untuk membuat Java platform terkemuka (jika tidak dengan platform) untuk IOT. Java ME 8 memberikan kehidupan baru ke dalam teknologi perangkat kecil Java, memperluasnya dengan jajaran platform Java tertanam yang berbeda.

Bagian selanjutnya akan memperkenalkan teknologi yang membentuk platform IoT Oracle; ikuti tautan untuk mempelajari lebih lanjut tentang Java ME, Java ME 8, dan tiga kerangka kerja tersemat: Java ME Embedded, Java SE Embedded, dan Java Embedded Suite.

Java ME

Java Micro Edition pada awalnya ditujukan untuk mengatasi kendala yang terkait dengan membangun aplikasi untuk perangkat kecil. Berdasarkan Java SE, Java ME (atau J2ME, seperti yang kita kenal pada tahun 1999) adalah platform untuk aplikasi Java yang berjalan pada perangkat kecil dengan memori, tampilan, dan kapasitas daya yang terbatas. Saat ini digunakan untuk mengembangkan sistem tertanam, mulai dari kontrol industri hingga ponsel (terutama ponsel berfitur), hingga set-top box dan pemutar Blu-ray.

Pengembang yang bekerja di Java ME dapat memilih dari beberapa konfigurasi, profil, dan paket opsional:

  • Sebuah konfigurasi menyediakan set dasar sebagian besar perpustakaan dan kemampuan mesin virtual untuk berbagai perangkat.
  • Sebuah profil adalah satu set API yang mendukung berbagai sempit perangkat.
  • Sebuah paket opsional adalah satu set API teknologi spesifik. Wireless Messaging API adalah salah satu contohnya. Lihat primer paket opsional Oracle untuk mempelajari lebih lanjut tentang paket opsional.

Konfigurasi dan profil

Pada saat dua konfigurasi telah muncul: Connected Limited Device Configuration (CLDC) adalah konfigurasi untuk perangkat kecil, dan Connected Device Configuration (CDC) adalah konfigurasi untuk perangkat seluler yang lebih mampu seperti smartphone dan set-top box.

Profil Java ME berada di atas konfigurasi, mendefinisikan penggunaan API tingkat tinggi untuk aplikasi tertentu. Mobile Information Device Profile (MIDP) , misalnya, berada di atas CLDC dan menyediakan antarmuka pengguna, jaringan, dan API penyimpanan persisten. Aplikasi yang berjalan di lingkungan CLDC / MIDP (seperti game) dikenal sebagai MIDlets .

Pemrograman perangkat dengan CLDC / MIDP

"Pemrograman perangkat dengan MIDP" (Michael Cymerman) menyertakan demonstrasi langsung untuk pengembang yang baru mengenal CLDC / MIDP. Lihat juga "Membangun MIDlets" (Jonathan Knudsen dan Sing Li) dan "Desain besar untuk perangkat kecil" (Ben Hui).

Untuk CDC, ada tiga profil, Foundation, Personal Basis, dan Personal:

  • Profil Foundation adalah sekumpulan API Java yang disetel untuk perangkat dengan footprint rendah yang memiliki sumber daya terbatas dan tidak memerlukan antarmuka pengguna grafis (GUI).
  • Profil Dasar Pribadi adalah superset dari API Profil Dasar dan mendukung perangkat dengan persyaratan GUI yang ringan. Profil ini dilengkapi dengan kerangka kerja untuk membangun komponen GUI yang ringan dan mendukung beberapa kelas Alat Jendela Abstrak (AWT).
  • Profil Pribadi memperluas Profil Dasar Pribadi dengan perangkat GUI berdasarkan AWT. Ini menyediakan lingkungan aplikasi Java ME lengkap dengan dukungan AWT penuh dan ditujukan untuk perangkat kelas atas seperti PDA, set-top box, konsol game, dan sebagainya.

Aplikasi yang berjalan dalam CDC / Foundation / Personal Basis / Personal environment (seperti menu film Blu-ray) dikenal sebagai Xlets .

Toolkit Antarmuka Pengguna Ringan

Menggunakan AWT (Abstract Window Toolkit) Java untuk membuat aplikasi seluler lintas platform dengan daya tarik pengguna yang luas sangatlah menantang! Font, tata letak, dan perbedaan lainnya menyebabkan aplikasi yang sama terlihat dan berperilaku sangat berbeda pada perangkat yang berbeda. Selain itu, kemampuan antarmuka pengguna tingkat lanjut seperti animasi dan efek tidak ada. Menyadari kekurangan ini, Sun Microsystems mengembangkan Lightweight User Interface Toolkit (LWUIT) [PDF], sebuah toolkit UI yang terinspirasi dari Swing untuk Java ME yang mendukung CLDC 1.1 dengan MIDP 2.0 dan CDC dengan Personal Basis Profile. Codename One adalah implementasi open source yang populer dari LWUIT asli.

Java ME 8

Pada akhir 2012, Oracle memulai proyek ambisius untuk memberikan pembaruan besar dari standar platform Java ME. Dua Permintaan Spesifikasi Java (JSR) dirancang untuk memenuhi persyaratan pasar saat ini untuk perangkat yang disematkan dan mempersiapkan Java ME untuk spesifikasi platform Java di masa mendatang: JSR 360 (CLDC 8), pembaruan evolusioner ke CLDC 1.1.1, akan menghadirkan mesin virtual, Java bahasa, dan perpustakaan diperbarui dengan Java SE 8. JSR 361 (Profil Tertanam Java ME / MEEP 8) akan memperbarui Profil Modul Informasi - Generasi Berikutnya (IMP-NG).

CLDC 8 dan MEEP 8

CLDC 8 didasarkan pada JSR 139 (CLDC 1.1) dan menyelaraskan mesin virtual inti Java ME, dukungan bahasa, pustaka, dan fitur lainnya dengan Java SE 8:

  • Mesin virtual telah diperbarui untuk memenuhi versi 2 spesifikasi JVM.
  • Fitur bahasa Java SE yang lebih baru seperti generik, pernyataan, anotasi, dan coba-dengan-sumber sekarang didukung.
  • Library baru seperti Collections, NIO subset, dan Logging API subset sekarang didukung.
  • Kerangka kerja koneksi generik yang terkonsolidasi dan ditingkatkan untuk multi-protokol I / O didukung.

MEEP 8 memperbarui spesifikasi IMP-NG asli untuk menyediakan lingkungan aplikasi yang kuat dan fleksibel untuk platform Java kecil yang tertanam. Spesifikasi dibangun di atas CLDC 8 dengan fitur-fitur berikut:

  • Komponen baru dan model layanan ringan
  • Perpustakaan bersama
  • Konkurensi multi-aplikasi, komunikasi antar-aplikasi, dan sistem acara
  • Manajemen aplikasi
  • Opsionalitas API untuk menangani kasus penggunaan footprint rendah

MEEP 8 memberi pengembang aplikasi tertanam lingkungan aplikasi modern yang memfasilitasi pengembangan dan penerapan solusi tertanam yang merupakan solusi modular, tangguh, dan canggih yang telah dioptimalkan untuk berbagai kasus penggunaan dan perangkat.

Lebih lanjut tentang Java ME 8

Pengenalan Terrence Barr ke 10 fitur Java ME 8 teratasnya mengidentifikasi komponen yang disertakan dalam rilis April 2014. Lihat juga halaman unduh Java ME SDK 8 untuk dokumentasi lebih lanjut.

Java Tersemat

Java Embedded adalah hasil dari Java ME dan Java SE, rangkaian tiga platform yang secara khusus menargetkan perangkat tertanam. Masing-masing produk ini memberikan mesin virtual Java yang sangat terspesialisasi dan dioptimalkan serta menyediakan sarana untuk memperbarui perangkat lunak dan layanan yang diinstal (misalnya dengan menggunakan OSGi). Di bawah ini saya menjelaskan Java ME Embedded, Java SE Embedded, dan Java Embedded Suite.

Java untuk sistem tertanam?

Meskipun tidak tercakup dalam artikel ini, tantangan dan teknik khusus dikaitkan dengan pemrograman tersemat. Tidak semua pengembang setuju bahwa Java paling cocok untuk menyelesaikannya.

Java ME Tertanam

Java ME Embedded sebenarnya terdiri dari dua versi: Java ME Embedded dan Java ME Embedded Client.

Java ME Embedded adalah implementasi Java ME CLDC yang menyediakan platform aplikasi yang kuat dan fleksibel dengan fungsionalitas tersemat khusus untuk perangkat yang selalu aktif, tanpa kepala (artinya tanpa grafik / antarmuka pengguna), dan terhubung. Perancang dan pengembang sistem dapat menggunakan Java ME Embedded untuk membuat solusi tertanam kecil yang canggih yang memanfaatkan keunggulan bahasa Java, runtime, dan ekosistem sambil memenuhi target sumber daya sistem yang ketat. Oracle Java ME Embedded dapat digunakan oleh perangkat dengan memori kurang dari satu megabyte.

Java ME Embedded Client adalah implementasi Java ME CDC yang telah diperkecil agar sesuai dengan batasan perangkat yang memiliki sumber daya terbatas dan dioptimalkan untuk sistem tertanam kelas rendah hingga menengah. Meskipun produk ini menawarkan footprint yang kecil, produk ini masih menyediakan sebagian besar bahasa Java dan fitur runtime yang diketahui dan biasa digunakan oleh pengembang Java dengan Java SE. Java ME Embedded Client dapat digunakan oleh perangkat dengan memori kurang dari 10 megabyte dan tanpa grafik.

Dapatkan Java ME 8 Tertanam

Anda dapat mengunduh Java ME Embedded 8 untuk berbagai perangkat ARM atau Java ME Embedded Client 1.1.1 untuk lingkungan ARM, MIPS, dan x86. Anda perlu menginstal Java ME SDK 8 untuk menjalankan platform ini. Lihat juga Panduan Migrasi 8 Tertanam Oracle Java ME CDC ke Java SE.

Java SE Tertanam

Java SE Embedded adalah implementasi fitur lengkap dari platform Java SE yang telah dioptimalkan untuk sistem tertanam. Versi 8, rilis terbaru dari platform ini, mencakup beberapa fitur berikut:

  • Fitur bahasa Java SE 8 baru untuk meningkatkan produktivitas pengembang
  • Profil dan alat ringkas untuk membuat mesin virtual yang disesuaikan dan dioptimalkan untuk ruang
  • Kinerja 50% lebih baik dari versi sebelumnya berkat Java SE 8
  • Aplikasi GUI yang tampak hebat dengan JavaFX yang dipercepat GPU
  • Alat untuk pemantauan waktu proses mendetail dan analisis insiden setelah kejadian

Perhatikan bahwa Java SE Embedded 8 dapat digunakan oleh perangkat dengan penyimpanan minimal 11 megabyte. Unduh Java SE Embedded 8 untuk platform ARM, Power Architecture, dan x86.

Integrator Platform Java

Oracle telah memperkenalkan program Java Platform Integrator untuk memberi mitra kemampuan untuk menyesuaikan produk Java Embedded, termasuk Java ME Embedded, Java ME Embedded Client, dan Java SE Embedded untuk menjangkau berbagai jenis perangkat dan segmen pasar.

Java Embedded Suite

Java Embedded Suite adalah penawaran terakhir dalam keluarga Java Embedded. Rangkaian alat ini menambahkan fitur tipe perusahaan ke runtime Tertanam Java SE, memungkinkan aplikasi melakukan hal berikut:

  • Menyimpan data dalam database relasional Java DB.
  • Menghosting aplikasi Web berbasis servlet GlassFish, misalnya, untuk memberikan akses jarak jauh yang aman ke data dan operasi perangkat.
  • Host dan akses layanan Web RESTful dengan implementasi Oracle's Jersey dari spesifikasi JAX-RS.

Pada dasarnya, Java Embedded Suite menggabungkan Java SE Embedded 7 (yang menyediakan runtime untuk aplikasi Java) dengan Java DB (yang menyediakan database untuk menyimpan konten lokal secara aman), GlassFish untuk Embedded Suite (yang menyediakan server aplikasi untuk halaman Web), Jersey Kerangka Layanan Web (untuk menghosting dan mengakses layanan Web), dan Pemrosesan Peristiwa untuk Java Tertanam (yang menangani pemrosesan peristiwa waktu nyata, dan yang merupakan komponen opsional).

Unduh Java Embedded Suite untuk ARM atau x86.

Kesimpulan

Oracle telah memposisikan Java ME dan teknologi terkait untuk memenuhi tantangan pengembangan perangkat yang disematkan, dengan IoT sebagai tujuan utamanya. Artikel ini menyajikan primer singkat tentang Java ME dan kemudian memperkenalkan Anda pada produk Oracle Java ME 8, Java ME Embedded, Java SE Embedded, dan Java Embedded Suite.

Untuk tutorial pemrograman dan praktik terbaik yang akan membantu Anda memulai dengan dasar-dasar IoT, kunjungi halaman pemrograman Java ME, MIDP, dan Java Tersemat di JavaWorld. Untuk mempelajari lebih lanjut tentang strategi Oracle untuk IoT dan posisi Java dalam strategi ini, lihat berbagai artikel, video, kertas putih, dan brosur di halaman informasi Oracle Internet of Things.

Cerita ini, "Java ME 8 dan Internet of Things" awalnya diterbitkan oleh JavaWorld.