Teknologi Java
Community Proses Dilihat Dari Teknologi Virtual Machine
Proses komunikasi java, java community process JCP dan Virtual Machine
Bagi orang-orang
yang bekerja atau terlibat dibidang teknologi, khususnya ilmu komputer,
tentunya sudah tidak asing lagi dengan bahasa pemrograman java (Java
Programming). Dengan berbagai kelebihan dan keunggulannya, java menjadi begitu
populer dalam mengembangkan sebuah aplikasi. Bukan hanya aplikasi desktop,
tetapi juga aplikasi mobile, enterprise, web (applet) dan sebagainya. Selain
itu juga Java sangat fleksibel karena mendukung konsep multi platform dan yang
terpenting Java bersifat open source (dikeluarkan oleh Sun Microsystems)
sehingga dari waktu ke waktu bahasa Java dapat dikembangkan dengan sangat cepat
melalui umpan balik yang diberikan oleh para user.
Mengingat kepopuleran dari Java ini, maka banyak terdapat
komunitas-komunitas yang dapat memberikan umpan balik dalam mengembangkan
bahasa Java. Komunitas ini dikenal dengan istilah Proses Komunitas Java (Java
Community Process / JCP) yang didirikan pada tahun 1998, adalah mekanisme
formal yang memungkinkan pihak yang berkepentingan untuk mengembangkan
spesifikasi teknis standar untuk teknologi Java. Siapapun bisa menjadi Anggota
JCP dengan mengisi formulir yang tersedia di situs JCP. Keanggotaan JCP untuk
organisasi dan entitas komersial membutuhkan biaya tahunan tetapi bebas untuk
individu.
JCP melibatkan penggunaan Permintaan Spesifikasi Java (Java Spesification
Request / JSRs), yaitu dokumen formal yang menggambarkan spesifikasi yang
diusulkan dan teknologi untuk menambah platform Java. Ulasan publik Formal JSRs
akan muncul sebelum JSR menjadi final dan Komite Eksekutif JCP menilainya di
atasnya. Sebuah JSR akhir menyediakan implementasi referensi yang merupakan
implementasi bebas dari teknologi dalam bentuk kode sumber dan Kompatibilitas
Kit Teknologi untuk memverifikasi API spesifikasi. Sebuah JSR menggambarkan JCP
itu sendiri. Seperti tahun 2009 , JSR 215 menggambarkan versi sekarang (2.7)
dari JCP.
Sebagai sebuah platform, Java memiliki dua buah bagian penting, yaitu
Java Virtual Machine dan Java Application Programmig (Java Api).
A.
Java Virtual Machine
Sekilas pengertian Mesin virtual (Virtual Machine) dalam ilmu komputer
adalah implementasi perangkat lunak dari sebuah mesin komputer yang dapat
menjalankan program sama seperti layaknya sebuah komputer asli. Sedangkan dalam
konteks JVM merupakan mesin virtual yang digunakan secara khusus mengeksekusi
berkas bytecode java. Bytecode java sendiri dihasilkan saat proses kompilasi
file java berekstensi .java menjadi .class. Selain itu JVM merupakan perangkat
lunak yang dikembangkan secara khusus agar terlepas dari ketergantungan atas
perangkat keras serta sistem operasi tertentu. JVM menyediakan lingkungan kerja
yang dibutuhkan untuk menjalankan aplikasi berbasis java serta
mengotomatisasikan fitur-fitur seperti penanganan kesalahan.
Teknologi virtual machine memiliki
banyak kegunaan seperti memungkinkan konsolidasi perangkat
keras, memudahkan recovery sistem, dan menjalankan
perangkat lunak terdahulu. Salah satu penerapan penting dari
teknologi VM adalah integrasi lintas
platform. Beberapa penerapan lainnya
yang penting adalah:
- Konsolidasi server. Jika beberapa server menjalankan aplikasi yang hanya memakan sedikit sumber daya, VM dapat digunakan untuk menggabungkan aplikasi-aplikasi tersebut sehingga berjalan pada satu server saja, walaupun aplikasi tersebut memerlukan sistem operasi yang berbeda-beda
- Otomasi dan konsolidasi lingkungan pengembangan dan testing. Setiap VM dapat berperan sebagai lingkungan yang berbeda, ini memudahkan pengembang sehingga tidak perlu menyediakan lingkungan tersebut secara fisik
- Menjalankan perangkat lunak terdahulu. Sistem operasi dan perangkat lunak terdahulu dapat dijalankan pada sistem yang lebih baru.
- Memudahkan recovery sistem. Solusi virtualisasi dapat dipakai untuk rencana recovery sistem yang memerlukan portabilitas dan fleksibilitas antar platfor
- Demonstrasi perangkat lunak. Dengan teknologi VM, sistem operasi yang bersih dan konfigurasinya dapat disediakan secara cepat.
KELEBIHAN VIRTUAL MACHINE (VM)
1. Hal keamanan. VM
memiliki perlindungan yang lengkap pada berbagai sistem
sumber daya, yaitu dengan
meniadakan pembagian sumber daya
secara langsung, sehingga tidak ada masalah proteksi
dalam VM. Sistem VM adalah kendaraan yang sempurna untuk penelitian dan
pengembangan sistem operasi. Dengan VM, jika terdapat suatu perubahan pada satu
bagian dari mesin, maka dijamin tidak akan mengubah komponen lainnya.
2. Memungkinkan untuk
mendefinisikan suatu jaringan
dari Virtual Machine (VM). Tiap-tiap
bagian mengirim informasi melalui jaringan
komunikasi virtual. Sekali lagi,
jaringan dimodelkan setelah komunikasi fisik jaringan
diimplementasikan pada perangkat lunak.
KEKURANGAN VIRTUAL
MACHINE, Beberapa kesulitan utama dari konsep VM:
1. Sistem penyimpanan. Sebagai contoh
kesulitan dalam sistem penyimpanan adalah sebagai
berikut: Andaikan kita
mempunyai suatu mesin yang memiliki
3 disk drive namun ingin mendukung 7 VM. Keadaan
ini jelas tidak memungkinkan bagi kita untuk dapat mengalokasikan
setiap disk drive untuk tiap VM, karena perangkat lunak
untuk mesin virtual sendiri akan membutuhkan
ruang disk secara substansial untuk
menyediakan memori virtual dan spooling.
Solusinya adalah dengan menyediakan disk virtual
atau yang dikenal pula
dengan minidisk, dimana ukuran daya
penyimpanannya identik dengan
ukuran sebenarnya. Dengan demikian,
pendekatan VM juga menyediakan sebuah antarmuka yang identik dengan perangkat
keras yang mendasari.
2. Pengimplementasian sulit. Meski konsep
VM cukup baik, namun VM sulit diimplementasikan.
Contoh virtual
machine : Vmware, Xen VMM , Java VM
- VM ware
Pada GNU/Linux salah satu virtual machine yang
terkenal adalah VMware http://www.vmware.com. VMware memungkinkan beberapa
sistem operasi dijalankan pada satu mesin PC tunggal secara bersamaan. Hal ini
dapat dilakukan tanpa melakukan partisi ulang dan boot ulang. Pada Virtual
Machina (VM) yang disediakan akan dijalankan sistem operasi sesuai dengan yang
diinginkan. Dengan cara ini maka pengguna dapat memboot suatu sistem operasi
(misal Linux) sebagai sistem operasi tuan rumah (host) dan lalu menjalankan
sistem operasi lainnya misal MS Windows. Sistem operasi yang dijalankan di
dalam sistem operasi tuan rumah dikenal dengan istilah system operasi tamu
(guest).
Kebanyakan orang berpikir bahwa secara logisnya VMware diibaratkan
sebagai software yang sering digunakan untuk keperluan percobaan game,
aplikasi, untuk meng-install dua sistem operasi dan menjalankannya (misalnya
Windows maupun Linux) pada harddisk yang sama tanpa memerlukan logout dari
sistem operasi yang lainnya, secara gampang kita hanya tinggal menekan Alt +
Tab untuk mengganti SO. Akan tetapi pada dasarnya VMware bukanlah emulator,
karena tidak mengemulasikan CPU dan perangkat keras di dalam suatu Virtual
Machina (VM), tetapi hanya membolehkan sistem operasi lainnya dijalankan secara
paralel dengan sistem operasi yang telah berjalan. Setiap Virtual Machine (VM)
dapat memiliki alamat IP sendiri (jika mesin tersebut di suatu jaringan), dan
pengguna dapat menganggapnya sebagai mesin terpisah.
·
Xen VMM
Xen adalah open
source virtual machine monitor, dikembangkan di University of Cambridge. Dibuat
dengan tujuan untuk menjalankan sampai dengan seratus sistem operasi ber-fitur
penuh (full featured OSs) di hanya satu komputer. Virtualisasi Xen menggunakan
teknologi paravirtualisasi menyediakan isolasi yang aman, pengatur sumberdaya,
garansi untuk quality-of-services dan live migration untuk sebuah mesin
virtual.
Untuk
menjalankan Xen, sistem operasi dasar harus dimodifikasi secara khusus untuk
kebutuhan tersendiri dan dengan cara ini dicapai kinerja virtualisasi sangat
tinggi tanpa hardware khusus.
·
Java VM
Program Java yang telah dikompilasi
adalah platform-neutral bytecodes yang dieksekusi oleh Java Virtual Machine
(JVM). JVM sendiri terdiri dari: class loader, class verification, runtime
interpreter, Just In-Time (JIT) untuk meningkatkan kinerja kompilator.
Bahasa mesin terdiri
dari sekumpulan instruksi yang sangat sederhana dan dapat dijalankan secara
langsung oleh CPU dari suatu komputer. Sebuah program yang dibuat dengan bahasa
tingkat tinggi tidak dapat dijalankan secara langsung pada komputer. Untuk
dapat dijalankan, program tersebut harus ditranslasikan kedalam bahasa mesin.
Proses translasi dilakukan oleh sebuah program yang disebut compiler.
Setelah proses
translasi selesai, program bahasa-mesin tersebut dapat dijalankan, tetapi hanya
dapat dijalankan pada satu jenis komputer. Hal ini disebabkan oleh setiap jenis
komputer memiliki bahasa mesin yang berbedabeda. Alternatif lain untuk
mengkompilasi program bahasa tingkat tinggi selain menggunakan compiler, yaitu
menggunakan interpreter. Perbedaan antara compiler dan interpreter adalah
compiler mentranslasi program secara keseluruhan sekaligus, sedangkan interpreter
menstranslasi program secara instruksi per instruksi. Java dibuat dengan
mengkombinasikan antara compiler dan interpreter.
Program yang ditulis
dengan java di-compile menjadi bahasa mesin. Tetapi bahasa mesin untuk komputer
tersebut tidak benar-benar ada. Oleh karena itu disebut "Virtual"
komputer, yang dikenal dengan Java Virtual Machine (JVM). Bahasa mesin untuk
JVM disebut Java bytecode. Salah satu keunggulan dari Java adalah dapat
digunakan atau dijalankan pada semua jenis komputer. Untuk menjalankan program
Java, komputer membutuhkan sebuah interpreter untuk Java bytecode.
Interpreter
berfungsi untuk mensimulasikan JVM sama seperti virtual computer mensimulasikan
PC komputer. Java bytecode yang dihasilkan oleh setiap jenis komputer berbeda-beda,
sehingga diperlukan interpreter yang berbeda pula untuk setiap jenis komputer.
Tetapi program Java bytecode yang sama dapat dijalankan pada semua jenis
komputer yang memiliki Java bytecode
Jenis-jenis dari VM
adalah VM sistem di mana sebuah VM dapat menjalankan sebuah sistem
operasinya sendiri, kemudian VM proses di mana VM hanya
menjalankan sebuah proses saja. Kemudian VM juga dibagi berdasarkan tingkat
virtualisasinya, yaitu virtualisasi penuh
yang mensimulasikan seluruh fitur perangkat
keras sehingga memungkinkan perangkat lunak berjalan
pada VM tanpa modifikasi. Kemudian
virtualisasi paruh, di mana
tidak semua fitur perangkat keras disimulasikan. Yang
terakhir adalah virtualisasi asli, yang mana merupakan virtualisasi
penuh yang digabungkan dengan
bantuan perangkat keras yang mendukung virtualisasi.