Sejarah JAVA
JAVA pertama kali diperkenalkan oleh Sun
Microysystem pada pertengahan tahun 1990. Menurut definisi dari Sun, JAVA
adalah nama untuk sebuah teknologi untuk membuat dan menjalankan perangkat
lunak pada komputer standalone ataupun lingkungan jaringan. Secara umum JAVA
adalah suatu teknologi perangkat lunak komputer yang merupakan suatu bahasa
pemrograman tingkat tinggi berorientasi objek yang dapat dijalankan di semua
platform. Java dipelopori oleh James Gosling, Patrick Naughton, Chris Warth, Ed
Frank, dan Mike Sheridan dari Sun Microsystems, Inc pada tahun 1991. Mereka
membutuhkan kurang lebih 18 bulan untuk membuat versi pertamanya. Bahasa ini pada
awalnya disebut “Oak” tapi kemudian diubah menjadi “Java” pada tahun 1995
karena nama Oak telah dijadikan hak cipta dan digunakan sebagai bahasa
pemrograman lainnya. Antara pembuatan Oak pada musim gugur 1992 hingga
diumumkan ke publik pada musim semi 1995, banyak orang yang terlibat dalam
desain dan evolusi bahasa ini. Bill Joy, Arthur van Hoff, Jonathan Payne, Frank
Yellin, dan Tim Lindholm merupakan kontributor kunci yang mematangkan prototipe
aslinya.
Sebagai sebuah
platform, JAVA terdiri atas 2 bagian utama, yaitu :
Java Virtual Machine
(JVM)
Java Virtual Machine
adalah sebuah spesifikasi untuk sebuah komputer abstrak. JVM terdiri dari
sebuah kelas pemanggil dan sebuah interpreter Java yang mengeksekusi kode
arsitektur netral. Kelas pemanggil memanggil file API untuk dieksekusi oleh
interpreter Java. Dengan kata lain JVM adalah sebagai perantara antara program
yang akan dijalankan dan sistem operasi yang sedang digunakan.
Java Application
Programming Interface (JAVA API)
Java API merupakan
komponen-komponen dan kelas JAVA yang sudah jadi, yang memiliki berbagai
kemampuan.
Kemampuan untuk
menangani objek, string, angka, dsb.
Java API terdiri dari tiga bagian utama :
1. Java Standard
Edition (SE)
Sebuah standar API
untuk merancang aplikasi desktop dan applets dengan bahasa dasar yang mendukung
grafis, keamanan, konektivitas basis data dan jaringan.
2. Java Enterprose
Edition (EE)
Sebuah inisiatif API
untuk merancang aplikasi serverdengan mendukung untuk basis data.
3. Java Macro Edition
(ME)
Sebuah API untuk
merancang aplikasi yang jalan pada alat kecil seperti telepon genggam, komputer
genggam dan pager.
Platform yang ada pada JAVA dikembangkan
oleh yang namanya Java Community Process (JCP). JCP didirikan pada tahun 1998,
merupakan suatu proses formal yang memungkinkan pihak-pihak yang tertarik untuk
terlibat dalam mengembangkan versi dan fitur dari platform JAVA tersebut. Java
dikembangkan mengacu pada standar yang ditentukan oleh komite didalam JCP (Java
Community Process). Spesifikasi Java tidak sekedar fondasi VMnya, tetapi
menyangkut hampir semua aspek, mulai dari mekanisme mengakses devices I/O, komponen
pertukaran objek, sampai pengembangan container. JCP merupakan badan yang
bertanggung jawab terhadap standar teknologi Java.
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). Program yang JCP komunitas pengguna telah
membantu dalam memberikan umpan balik pada situs web. Banyak fitur baru dan
perbaikan bug pada awalnya diusulkan atau diidentifikasi oleh pengguna.
Berbagai bug telah diperbaiki dan navigasi juga telah diperbarui untuk mengatur
informasi yang tersedia. Ini adalah langkah inkremental lain sepanjang
perjalanan untuk meningkatkan jcp.org. Dalam bulan-bulan mendatang, sebagai
masyarakat terus menyarankan perubahan dan perangkat tambahan, upaya akan terus
memperbaiki situs. Semua umpan menyimpan program dan JCP jcp.org bergerak maju
dan ke atas.
Virtual Machine
Virtual machine (VM) adalah suatu
environment, biasanya sebuah program atau system operasi, yang tidak ada secara
fisik tetapi dijalankan dalam environment lain. Dalam konteks ini, VM disebut
“guest” sementara environment yang menjalankannya disebut “host”. Ide dasar
dari virtual machine adalah mengabtraksi perangkat keras dari satu komputer
(CPU, memori, disk, dst) ke beberapa environment eksekusi, sehingga menciptakan
illusi bahwa masing-masing environment menjalankan komputernya [terpisah]
sendiri. VM muncul karena adanya keinginan untuk menjalankan banyak sistem
operasi pada satu komputer. 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 platform.
Demonstrasi perangkat
lunak.
Dengan teknologi VM,
sistem operasi yang bersih dan konfigurasinya dapat disediakan secara cepat.
Teknologi VM memiliki
beberapa keunggulan, antara lain :
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.
Beberapa kesulitan
utama dari konsep VM, diantaranya adalah :
·
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.
·
Pengimplementasian sulit.
Meski konsep VM cukup
baik, namun VM sulit diimplementasikan.

