‘Intelligent’ embedded devices will be driven by Java, say analysts

14 views
Skip to first unread message

Iwan Budi Kusnanto

unread,
Nov 22, 2012, 8:15:14 PM11/22/12
to id-em...@googlegroups.com
http://jaxenter.com/intelligent-embedded-devices-will-be-driven-by-java-say-analysts-45593.html

The deluge of �intelligent� embedded devices, especially those
incorporating machine-to-machine (M2M) aspects, will be driven by Java,
according to two recent Oracle-commissioned white papers
--
Iwan Budi Kusnanto

aston

unread,
Nov 23, 2012, 2:55:32 AM11/23/12
to id-em...@googlegroups.com
Artikelnya menarik.

Btw, perangkat embedded yang menjalankan Java berarti butuh JVM kan ya, seperti halnya perangkat berbasis Android. Menurut saya keberadaan Java malah memperlambat kinerja nya.

Lebih memilih menggunakan C/C++ deh untuk embedded, lebih dekat dengan mesin ;)

--
Rgds,
Aston / @astonix



On Fri, Nov 23, 2012 at 8:15 AM, Iwan Budi Kusnanto <iwan.b....@gmail.com> wrote:
http://jaxenter.com/intelligent-embedded-devices-will-be-driven-by-java-say-analysts-45593.html

The deluge of “intelligent” embedded devices, especially those incorporating machine-to-machine (M2M) aspects, will be driven by Java, according to two recent Oracle-commissioned white papers
--
Iwan Budi Kusnanto




       

Iwan Budi Kusnanto

unread,
Nov 23, 2012, 3:03:37 AM11/23/12
to id-em...@googlegroups.com
1-2 taon kemaren kantor saya dapet tawaran develop embedded system
dengan java. Sayangnya ga jadi.
Saya juga lupa nama JVM yg digunakan.
Dari link ini:
http://en.wikipedia.org/wiki/List_of_Java_virtual_machines
Memang ada beberapa JVM yang dioptimasi utk smalll embedded system.

On 11/23/2012 02:55 PM, aston wrote:
> Artikelnya menarik.
>
> Btw, perangkat embedded yang menjalankan Java berarti butuh JVM kan ya,
> seperti halnya perangkat berbasis Android. Menurut saya keberadaan Java
> malah memperlambat kinerja nya.
>
> Lebih memilih menggunakan C/C++ deh untuk embedded, lebih dekat dengan
> mesin ;)
>
> --
> Rgds,
> Aston <http://astonugroho.wordpress.com>/ @astonix
> <http://twitter.com/astonix>
>
>
>
> On Fri, Nov 23, 2012 at 8:15 AM, Iwan Budi Kusnanto
> <iwan.b....@gmail.com <mailto:iwan.b....@gmail.com>> wrote:
>
> http://jaxenter.com/__intelligent-embedded-devices-__will-be-driven-by-java-say-__analysts-45593.html
> <http://jaxenter.com/intelligent-embedded-devices-will-be-driven-by-java-say-analysts-45593.html>
>
> The deluge of �intelligent� embedded devices, especially those
> incorporating machine-to-machine (M2M) aspects, will be driven by
> Java, according to two recent Oracle-commissioned white papers
> --
> Iwan Budi Kusnanto
>
>
>
>
>
>


--
Iwan Budi Kusnanto

Kaharman

unread,
Nov 23, 2012, 3:09:34 AM11/23/12
to id-em...@googlegroups.com
Betul kata Aston. Oracle ini mirip Microsoft, mereka berpendapat pertukaran data antar PC akan lebih mudah jika menggunakan satu platform, yaitu Windows. Salah satu contohnya Microsoft memperjuangkan agar format dokumen versi mereka menjadi format standar dokumen yang dipakai di dunia seperti docx atau xlsx. Begitu juga dengan dunia embedded yang sedang "diincar" Oracle, mereka ingin JVM mereka menjadi standar di perangkat embedded.

Berbeda sekali dengan semangat open source yang dianut Linux, seperti istilah banyak jalan menuju Mekkah, atau banyak jalan menuju Roma. Walaupun kernelnya satu tetapi style-nya bisa bermacam-macam :-)

Salam,
Arman


2012/11/23 Iwan Budi Kusnanto <iwan.b....@gmail.com>
1-2 taon kemaren kantor saya dapet tawaran develop embedded system dengan java. Sayangnya ga jadi.
Saya juga lupa nama JVM yg digunakan.
Dari link ini:
http://en.wikipedia.org/wiki/List_of_Java_virtual_machines
Memang ada beberapa JVM yang dioptimasi utk smalll embedded system.


On 11/23/2012 02:55 PM, aston wrote:
Artikelnya menarik.

Btw, perangkat embedded yang menjalankan Java berarti butuh JVM kan ya,
seperti halnya perangkat berbasis Android. Menurut saya keberadaan Java
malah memperlambat kinerja nya.

Lebih memilih menggunakan C/C++ deh untuk embedded, lebih dekat dengan
mesin ;)

--
Rgds,
Aston <http://astonugroho.wordpress.com>/ @astonix
<http://twitter.com/astonix>




On Fri, Nov 23, 2012 at 8:15 AM, Iwan Budi Kusnanto
<iwan.b....@gmail.com <mailto:iwan.b.kusnanto@gmail.com>> wrote:

    http://jaxenter.com/__intelligent-embedded-devices-__will-be-driven-by-java-say-__analysts-45593.html

    <http://jaxenter.com/intelligent-embedded-devices-will-be-driven-by-java-say-analysts-45593.html>

    The deluge of “intelligent” embedded devices, especially those

    incorporating machine-to-machine (M2M) aspects, will be driven by
    Java, according to two recent Oracle-commissioned white papers
    --
    Iwan Budi Kusnanto








--
Iwan Budi Kusnanto

Sugeng Widodo

unread,
Nov 23, 2012, 3:11:28 AM11/23/12
to id-em...@googlegroups.com
Ada link menarik http://www.jopdesign.com/ implementasi JVM ke FPGA,
jadi bytecode memang nativenya tidak harus di virtualisasi lagi. Kalau
ada yang implemen di ASIC pasti lebih cepet lagi

Sugeng Widodo
blog : http://elangmaya.lensa.or.id/
LinkedIn : http://www.linkedin.com/profile?viewProfile=&key=4165162


2012/11/23 Iwan Budi Kusnanto <iwan.b....@gmail.com>:
> 1-2 taon kemaren kantor saya dapet tawaran develop embedded system dengan
> java. Sayangnya ga jadi.
> Saya juga lupa nama JVM yg digunakan.
> Dari link ini:
> http://en.wikipedia.org/wiki/List_of_Java_virtual_machines
> Memang ada beberapa JVM yang dioptimasi utk smalll embedded system.
>
>
> On 11/23/2012 02:55 PM, aston wrote:
>>
>> Artikelnya menarik.
>>
>> Btw, perangkat embedded yang menjalankan Java berarti butuh JVM kan ya,
>> seperti halnya perangkat berbasis Android. Menurut saya keberadaan Java
>> malah memperlambat kinerja nya.
>>
>> Lebih memilih menggunakan C/C++ deh untuk embedded, lebih dekat dengan
>> mesin ;)
>>
>> --
>> Rgds,
>> Aston <http://astonugroho.wordpress.com>/ @astonix
>> <http://twitter.com/astonix>
>>
>>
>>
>>
>> On Fri, Nov 23, 2012 at 8:15 AM, Iwan Budi Kusnanto
>> <iwan.b....@gmail.com <mailto:iwan.b....@gmail.com>> wrote:
>>
>>
>> http://jaxenter.com/__intelligent-embedded-devices-__will-be-driven-by-java-say-__analysts-45593.html
>>
>>
>> <http://jaxenter.com/intelligent-embedded-devices-will-be-driven-by-java-say-analysts-45593.html>
>>
>> The deluge of “intelligent” embedded devices, especially those

Yohanes Nugroho

unread,
Nov 23, 2012, 4:26:56 AM11/23/12
to id-em...@googlegroups.com
Dari pengalaman sedikit dengan Java di embedded, menurut saya java ini
rada "maksa" di embedded.

Pertama dalam hal masalah dasar bahasa:

Misalnya pernah pengalaman bikin app kecil dengan javacard, ada bagian
di mana harus mengirim byte-byte tertentu yang nilainya sebagian di
atas 127. Kira2 kalau di C begini

unsigned char data[] = {255, 255, 0, 12};

Di java tidak ada tipe unsigned, ada "byte" tapi ini tidak akan jalan

byte[] data = new byte[]{255, 255, 0, 12};

Warning adalah error di java:

possible loss of precision
found : int
required: byte

Jadi harus begini

byte[] data = new byte[]{(byte)255, (byte)255, 0, 12};

Perhatikan casting yang berlebihan, itu cuma 2 elemen yg perlu
dicasting, kalo ada 50 elemen (konstanta dalam protokol), lumayan
terlihat aneh.

Mungkin yang biasa C akan terpikir, kenapa nggak memakai string
literal, seperti ini "\xff\xff\x00\x0b"? lalu memakai "getBytes()"?

Nggak bisa, karena Java memakai representasi Unicode, (di tambah lagi
ini: pembuatan string memakan memori extra).

Lalu kalau mau ngeprint array itu untuk debugging:

System.out.println(data[0])

Keluarnya "-1", supaya keluar jadi 255, harus pakai trik lagi:

System.out.println(data[0] & 0xff)

Nah sekarang keluarnya 255.

Itu membawa ke topik berikutnya: bit manipulation. Karena tidak adanya
tipe unsigned, manipulasi bit jadi mengesalkan di Java (saya pernah
cukup ekstensif bermain bit manipulation di Java).

Nah siapa di embedded system yang tidak memakai bit manipulation dan
memanipulasi array data seperti itu?

Kedua adalah masalah eksekusinya:

Sekarang ini (dari dulu bahkan) sudah ada prosessor yang bisa
mengeksekusi kode Java

https://en.wikipedia.org/wiki/Jazelle

Jazelle DBX (Direct Bytecode eXecution) allows some ARM processors to
execute Java bytecode in hardware as a third execution state alongside
the existing ARM and Thumb modes. Jazelle functionality was specified
in the ARMv5TEJ architecture.

Sayangnya meski fitur ini ada, tidak terbuka dokumentasinya, jadi
tidak terpakai optimal (terutama di JDK/JRE open source).

Dan meskipun fitur eksekusi bytecodenya ada, masih ada masalah lain:
managemen memori. Masalah garbage collection biasanya masih harus
ditangani oleh software. Jadi eksekusi Java tidak bisa 100% software
based.

Sebenarnya bisa aja make java untuk embedded, dan dalam kasus tertentu
mungkin bagus, tapi menurut saya sih kayanya java ini nggak akan
menguasai dunia embedded dengan JVM-nya. Lagi pula sudah pasti
biayanya juga gak akan lebih murah kalau harus bayar lisensi ke
Oracle. Btw perhatikan link yg pertama di thread ini ada tulisan:
"according to two recent Oracle-commissioned white papers" (jadi bukan
paper yg tanpa bias).


--
Regards
Yohanes
http://yohan.es/


2012/11/23 Sugeng Widodo <sugeng...@gmail.com>

Darmawan Salihun

unread,
Nov 25, 2012, 12:33:24 PM11/25/12
to id-em...@googlegroups.com
@Yohannes Nugroho:

Thanks, wawasan menarik nih. Baru tau saya kalo byte di Java selalu
di-treat sebagai signed int :-).

Regards,

Darmawan
--
--------------------------------------------------------------------
-= Human knowledge belongs to the world =-

Dicky Arinal

unread,
Nov 26, 2012, 9:13:41 PM11/26/12
to id-em...@googlegroups.com
2012/11/23 Yohanes Nugroho <yoh...@gmail.com>:
>
> Di java tidak ada tipe unsigned, ada "byte" tapi ini tidak akan jalan
>
> byte[] data = new byte[]{255, 255, 0, 12};
>
> ....
>
> Jadi harus begini
>
> byte[] data = new byte[]{(byte)255, (byte)255, 0, 12};
>

Kalo ga mau di-casting, gini ajah:
byte[] data = new byte[] { -1, -1, 0, 12 };

:P

> Kedua adalah masalah eksekusinya:
>
> Sekarang ini (dari dulu bahkan) sudah ada prosessor yang bisa
> mengeksekusi kode Java
>
> https://en.wikipedia.org/wiki/Jazelle

Jazelle ini kalo gak salah udah ada dari ARM versi 5, tapi pengen tau
ada nggak orang yang pernah pake. Yang saya pengen tau, apakah
compilernya juga harus khusus ( file hasil kompilasi yang dihasilkan
adalah pure java bytecode tanpa header kemudian di-embed ke memori
.etc) .

Btw, Pak Yohanes apakah ikut acara BB jam Asia di Bangkok? Kalo gak
salah Pak Yohanes kan sering ngoprek BB dan tinggal di Thailand :)

regards,

Dicky Arinal

Yohanes Nugroho

unread,
Nov 26, 2012, 9:17:57 PM11/26/12
to id-em...@googlegroups.com
2012/11/27 Dicky Arinal <dicky....@gmail.com>:
> 2012/11/23 Yohanes Nugroho <yoh...@gmail.com>:
>>
>> Di java tidak ada tipe unsigned, ada "byte" tapi ini tidak akan jalan
>>
>> byte[] data = new byte[]{255, 255, 0, 12};
>>
>> ....
>>
>> Jadi harus begini
>>
>> byte[] data = new byte[]{(byte)255, (byte)255, 0, 12};
>>
>
> Kalo ga mau di-casting, gini ajah:
> byte[] data = new byte[] { -1, -1, 0, 12 };
>
> :P

Hehe.

Tapi kadang-kadang hal-hal sepele gini yang nggak pernah dibahas di
whitepaper yang mempromosikan java di embedded.

>
>> Kedua adalah masalah eksekusinya:
>>
>> Sekarang ini (dari dulu bahkan) sudah ada prosessor yang bisa
>> mengeksekusi kode Java
>>
>> https://en.wikipedia.org/wiki/Jazelle
>
> Jazelle ini kalo gak salah udah ada dari ARM versi 5, tapi pengen tau
> ada nggak orang yang pernah pake. Yang saya pengen tau, apakah
> compilernya juga harus khusus ( file hasil kompilasi yang dihasilkan
> adalah pure java bytecode tanpa header kemudian di-embed ke memori
> .etc) .

Jazelle ini tidak didokumentasikan, walau ada yg mereverse engineer.
Kalo dari hasil reverse engineernya, java bytecodenya tinggal di taruh
di memory, lalu pake instruksi khusus untuk "jump ke mode java dan
eksekusi kode di lokasi memori tertentu". Dari javanya nanti bisa
return atau jump ke native code.


> Btw, Pak Yohanes apakah ikut acara BB jam Asia di Bangkok? Kalo gak
> salah Pak Yohanes kan sering ngoprek BB dan tinggal di Thailand :)

Iya saya ikut.

Dicky Arinal

unread,
Nov 26, 2012, 9:38:24 PM11/26/12
to id-em...@googlegroups.com
> Tapi kadang-kadang hal-hal sepele gini yang nggak pernah dibahas di
> whitepaper yang mempromosikan java di embedded.

Paper mungkin banyak membahas tentang eksekusi ketimbang language feature hehe..

> Jazelle ini tidak didokumentasikan, walau ada yg mereverse engineer.
> Kalo dari hasil reverse engineernya, java bytecodenya tinggal di taruh
> di memory, lalu pake instruksi khusus untuk "jump ke mode java dan
> eksekusi kode di lokasi memori tertentu". Dari javanya nanti bisa
> return atau jump ke native code.

>> Btw, Pak Yohanes apakah ikut acara BB jam Asia di Bangkok? Kalo gak
>> salah Pak Yohanes kan sering ngoprek BB dan tinggal di Thailand :)

> Iya saya ikut.

Semoga bisa ketemu di acara :)
Saya mengikuti dua training sebelumnya (WebWorks dan Native) dan
acaranya yang dua hari. In fact sekarang lagi mengikuti training :)

regards,

Dicky Arinal

Yohanes Nugroho

unread,
Nov 26, 2012, 9:57:00 PM11/26/12
to id-em...@googlegroups.com
2012/11/27 Dicky Arinal <dicky....@gmail.com>:
>> Tapi kadang-kadang hal-hal sepele gini yang nggak pernah dibahas di
>> whitepaper yang mempromosikan java di embedded.
>
> Paper mungkin banyak membahas tentang eksekusi ketimbang language feature hehe..

Biasanya Language featurenya disebut, tapi yg dibanggakan aja :)
misalnya: object oriented, statically typed, automatic memory management

>
>>> Btw, Pak Yohanes apakah ikut acara BB jam Asia di Bangkok? Kalo gak
>>> salah Pak Yohanes kan sering ngoprek BB dan tinggal di Thailand :)
>
>> Iya saya ikut.
>
> Semoga bisa ketemu di acara :)
> Saya mengikuti dua training sebelumnya (WebWorks dan Native) dan
> acaranya yang dua hari. In fact sekarang lagi mengikuti training :)

Saya datangnya mulai kamis pagi.

Saya dateng ke sana mengejar dev alpha aja :D, semoga dapet.

Dicky Arinal

unread,
Nov 27, 2012, 12:36:00 AM11/27/12
to id-em...@googlegroups.com
2012/11/26 Yohanes Nugroho <yoh...@gmail.com>:
> 2012/11/27 Dicky Arinal <dicky....@gmail.com>:
> Biasanya Language featurenya disebut, tapi yg dibanggakan aja :)
> misalnya: object oriented, statically typed, automatic memory management

Hehe.. apa yang dibanggakan dari Java language? Saya nggak ngomongin
runtime-nya ya, tapi lebih ke language.
.
> Saya dateng ke sana mengejar dev alpha aja :D, semoga dapet.

Harusnya selain 'mengejar', saya lebih prefer Pak Yohanes yang 'mengajar' :)
Mulai dari jeroannya QNX, terus pembahasan yang mendalam mengenai OS
hybrid, no offense :D

regards,

Dicky Arinal

Yohanes Nugroho

unread,
Nov 27, 2012, 12:40:12 AM11/27/12
to id-em...@googlegroups.com
2012/11/27 Dicky Arinal <dicky....@gmail.com>:
> 2012/11/26 Yohanes Nugroho <yoh...@gmail.com>:
>> 2012/11/27 Dicky Arinal <dicky....@gmail.com>:
>> Biasanya Language featurenya disebut, tapi yg dibanggakan aja :)
>> misalnya: object oriented, statically typed, automatic memory management
>
> Hehe.. apa yang dibanggakan dari Java language? Saya nggak ngomongin
> runtime-nya ya, tapi lebih ke language.

Ya itu tadi, kan biasanya dibandingkan dengan C dan bahasa lain untuk
embedded, jadi bilangnya Object Oriented (walau yg lain juga gitu),
statically typed (ini kalo lagi membandingkan ama bahasa scripting
lain), automatic memory management (kalo lagi dibandingkan dengan C).

>> Saya dateng ke sana mengejar dev alpha aja :D, semoga dapet.
>
> Harusnya selain 'mengejar', saya lebih prefer Pak Yohanes yang 'mengajar' :)
> Mulai dari jeroannya QNX, terus pembahasan yang mendalam mengenai OS
> hybrid, no offense :D

Hehe, ini aja tadinya belum pasti mau dateng, baru beli tiket kemarin.

sef

unread,
Jan 26, 2013, 7:31:02 AM1/26/13
to id-em...@googlegroups.com
Sekedar referensi, uJ, micro JVM, benar2 imut ... ;)
Reply all
Reply to author
Forward
0 new messages