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.
Virtual Machine
Sebuah
 mesin virtual (VM) adalah sebuah perangkat lunak implementasi sebuah 
mesin (misalnya komputer) yang melaksanakan program-program seperti 
mesin fisik. Sebuah mesin virtual pada awalnya ditentukan oleh Popek dan
 Goldberg sebagai "yang efisien, terisolasi duplikat dari mesin yang 
nyata". Saat menggunakan mesin virtual yang mencakup tidak memiliki 
surat-menyurat langsung ke perangkat keras yang nyata. 
Mesin virtual
 dipisahkan ke dalam dua kategori utama, berdasarkan tingkat penggunaan 
dan korespondensi untuk mesin nyata. Sebuah sistem mesin virtual yang 
lengkap menyediakan platform sistem yang mendukung pelaksanaan lengkap 
sistem operasi (OS). Sebaliknya, mesin virtual sebuah proses yang 
dirancang untuk menjalankan sebuah program, yang berarti bahwa ia 
mendukung satu proses. Karakteristik penting dari sebuah mesin virtual 
yang berjalan di dalam perangkat lunak adalah terbatas pada sumber daya 
dan abstraksi yang disediakan oleh mesin virtual tidak dapat keluar dari
 dunia virtual. 
Contoh: Suatu program yang ditulis dalam Java 
menerima jasa dari Java Runtime Environment (JRE) perangkat lunak dengan
 mengeluarkan perintah untuk, dan menerima hasil yang diharapkan dari, 
perangkat lunak Java. Dengan memberikan layanan ini untuk program 
tersebut, perangkat lunak Java bertindak sebagai "mesin virtual", 
menggantikan sistem operasi atau hardware untuk program yang biasanya 
akan disesuaikan. 
• Sistem virtual machines 
Sistem mesin virtual
 (kadang-kadang disebut mesin virtual hardware) memungkinkan pembagian 
yang mendasari sumber daya mesin fisik antara mesin virtual yang 
berbeda, masing-masing berjalan sendiri sistem operasi. Lapisan 
perangkat lunak yang menyediakan virtualisasi ini disebut mesin virtual 
monitor atau hypervisor. Sebuah hypervisor dapat berjalan di hardware 
yang telanjang (Tipe 1 atau pribumi VM) atau di atas sistem operasi 
(Tipe 2 atau host VM). 
Keuntungan utama dari sistem VMS adalah: 
• beberapa OS lingkungan dapat hidup berdampingan pada komputer yang sama, dalam isolasi kuat satu sama lain 
• mesin virtual dapat memberikan set instruksi arsitektur (ISA) yang agak berbeda dari mesin yang sebenarnya 
• aplikasi provisioning, pemeliharaan, tingkat ketersediaan dan pemulihan bencana 
Kerugian utama dari sistem VMS adalah: 
• mesin virtual kurang efisien daripada mesin nyata karena secara tidak langsung mengakses perangkat keras 
Beberapa
 VMS masing-masing berjalan sistem operasi mereka sendiri (yang disebut 
sistem operasi tamu) yang sering digunakan di server konsolidasi, di 
mana layanan yang berbeda yang digunakan untuk menjalankan mesin 
individu untuk menghindari gangguan yang terpisah, bukan berjalan di VMS
 pada mesin fisik yang sama. Penggunaan ini sering disebut-kualitas dari
 layanan-isolasi (QoS isolasi). 
Keinginan untuk menjalankan beberapa
 sistem operasi adalah motivasi asli untuk mesin virtual, seperti 
time-sharing memungkinkan satu komputer di antara beberapa 
single-tasking OS. Teknik ini memerlukan proses untuk berbagi sumber 
daya CPU antara sistem operasi tamu dan memori virtualisasi untuk 
berbagi memori pada host. 
OS tamu tidak harus sama, sehingga 
memungkinkan untuk menjalankan OS yang berbeda pada komputer yang sama 
(misalnya, Microsoft Windows dan Linux, atau versi lama dari sistem 
operasi untuk mendukung perangkat lunak yang belum porting ke versi 
terbaru). Penggunaan mesin virtual untuk mendukung OS tamu yang berbeda 
menjadi populer di embedded system; tipikal digunakan adalah untuk 
mendukung real-time sistem operasi pada saat yang sama sebagai OS 
tingkat tinggi seperti Linux atau Windows. 
Penggunaan lainnya adalah
 untuk sandbox sebuah OS yang tidak dipercaya, mungkin karena itu adalah
 sebuah sistem dalam pengembangan. Mesin virtual memiliki keuntungan 
untuk OS lain pembangunan, termasuk akses debugging yang lebih baik dan 
lebih cepat reboot. 
Teknik alternatif seperti Solaris Zones 
menyediakan tingkat isolasi dalam satu sistem operasi. Ini tidak 
memiliki isolasi selengkap sebagai VM. Sebuah kernel mengeksploitasi 
dalam suatu sistem dengan beberapa zona akan mempengaruhi semua zona. 
Mencapai tujuan yang sama dalam implementasi mesin virtual akan 
membutuhkan mengeksploitasi kelemahan dalam hypervisor. Sebuah 
hypervisor biasanya memiliki lebih kecil "serangan permukaan" dari 
sebuah sistem operasi yang lengkap, membuat ini lebih menantang. Lebih 
lanjut, sebuah kernel mengeksploitasi tamu di VM tidak akan mempengaruhi
 VMS lain pada host, seperti gangguan yang sukses menjadi satu zona 
belum tentu mempengaruhi zona lain. Zona tidak mesin virtual, tetapi 
contoh "virtualisasi sistem operasi". Ini termasuk lain "lingkungan 
virtual" (juga disebut "virtual server") seperti Virtuozzo, FreeBSD 
penjara, Linux-VServer, chroot penjara, dan OpenVZ. Ini memberikan 
beberapa bentuk rangkuman proses dalam sebuah sistem operasi. Teknologi 
ini memiliki keunggulan sumber daya yang lebih efisien daripada 
virtualisasi penuh dan memiliki lebih baik observability menjadi 
beberapa tamu secara simultan; yang merugikan adalah bahwa, pada 
umumnya, mereka hanya dapat menjalankan satu sistem operasi dan satu 
versi / patch tingkat sistem operasi bahwa -- jadi, misalnya, mereka 
tidak dapat digunakan untuk menjalankan dua aplikasi, salah satu yang 
hanya mendukung versi OS yang lebih baru dan yang lain hanya mendukung 
versi OS yang lebih lama pada hardware yang sama. However, Sun 
Microsystems has enhanced Solaris Zones to allow some zones to behave 
like Solaris 8 or Solaris 9 systems by adding a system call translator. 
Namun, Sun Microsystems telah meningkatkan Solaris Zones untuk 
memungkinkan beberapa zona untuk berperilaku seperti Solaris 8 atau 
Solaris 9 sistem dengan menambahkan system call penerjemah. 
• Proses mesin virtual 
Sebuah
 proses VM, kadang-kadang disebut aplikasi mesin virtual, berjalan 
sebagai aplikasi biasa di dalam sebuah OS dan mendukung proses tunggal. 
Hal ini tercipta ketika proses itu dimulai dan hancur ketika keluar. 
Tujuannya adalah untuk menyediakan sebuah platform-independen lingkungan
 pemrograman yang abstrak pergi rincian perangkat keras yang 
mendasarinya atau sistem operasi, dan memungkinkan sebuah program untuk 
mengeksekusi dengan cara yang sama pada platform apapun. 
Sebuah 
proses VM memberikan abstraksi tingkat tinggi - yaitu yang tinggi 
tingkat bahasa pemrograman (dibandingkan dengan tingkat rendah ISA 
abstraksi dari sistem VM). VMS proses diimplementasikan menggunakan 
interpreter; kinerja yang sebanding dengan bahasa pemrograman 
terkompilasi dicapai dengan menggunakan just-in-time compilation .
Jenis
 VM ini telah menjadi populer dengan bahasa pemrograman Java, yang 
diimplementasikan menggunakan mesin virtual Java. Contoh lain termasuk 
Bayan mesin virtual, yang berfungsi sebagai lapisan abstraksi selama 
beberapa ditafsirkan lanugages, dan. NET Framework, yang berjalan pada 
sebuah VM yang disebut Common Language Runtime. 
Suatu kasus khusus 
VMS adalah proses sistem yang abstrak atas mekanisme komunikasi yang 
(berpotensi heterogen) komputer cluster. Seperti VM tidak terdiri dari 
sebuah proses tunggal, tetapi satu proses per mesin fisik di cluster. 
Mereka dirancang untuk memudahkan tugas pemrograman aplikasi paralel 
dengan membiarkan programmer fokus pada algoritma daripada mekanisme 
komunikasi yang disediakan oleh interkoneksi dan OS. Mereka tidak 
menyembunyikan fakta bahwa terjadi komunikasi, dan dengan demikian tidak
 berusaha untuk menyajikan cluster sebagai satu mesin paralel. 
Tidak
 seperti proses lain VMS, sistem ini tidak menyediakan bahasa 
pemrograman tertentu, tetapi tertanam dalam bahasa yang ada; biasanya 
sistem seperti menyediakan binding untuk beberapa bahasa (misalnya, C 
dan FORTRAN). Examples are PVM ( Parallel Virtual Machine ) and MPI ( 
Message Passing Interface ). Contohnya adalah PVM (Paralel Virtual 
Machine) dan MPI (Message Passing Interface). Mereka tidak ketat mesin 
virtual, sebagai aplikasi yang berjalan di atas masih memiliki akses ke 
semua layanan OS, dan karena itu tidak terbatas pada model sistem yang 
disediakan oleh "VM". 
APIs
Sebuah
 application programming interface (API) adalah antarmuka bahwa sebuah 
program perangkat lunak alat untuk memungkinkan perangkat lunak lain 
untuk berinteraksi dengan itu, banyak cara yang sama seperti perangkat 
lunak mungkin akan mengimplementasikan antarmuka pengguna untuk 
memungkinkan manusia untuk menggunakannya. API dilaksanakan oleh 
aplikasi, perpustakaan dan sistem operasi untuk menentukan bagaimana 
perangkat lunak lain dapat membuat panggilan ke atau layanan permintaan 
dari mereka. Sebuah API menentukan kosa kata dan konvensi memanggil para
 pemrogram harus mempekerjakan untuk menggunakan layanan . Ini mungkin 
termasuk spesifikasi untuk rutinitas, struktur data, kelas objek, dan 
protokol yang digunakan untuk berkomunikasi antara konsumen dan 
pelaksana API.
• Fitur 
API adalah sebuah abstraksi. Perangkat 
lunak yang menyediakan fungsionalitas yang dijelaskan oleh API dikatakan
 sebuah implementasi dari API. 
API dapat: 
• Tergantung pada 
bahasa, yaitu hanya tersedia dalam bahasa pemrograman tertentu, dengan 
menggunakan sintaks dan unsur-unsur bahasa itu untuk membuat API nyaman 
untuk digunakan dalam konteks ini. 
• Bahasa-independen, yaitu 
ditulis dengan cara yang berarti dapat dipanggil dari beberapa bahasa 
pemrograman. Ini adalah fitur yang diinginkan untuk layanan-gaya API 
yang tidak terikat pada suatu proses atau sistem dan dapat diberikan 
sebagai remote procedure calls atau layanan web. 
Sebagai contoh, 
sebuah website yang memungkinkan pengguna untuk memeriksa restoran lokal
 mampu lapisan tinjauan di atas peta mereka diambil dari Google Maps, 
karena Google Maps API yang memiliki memungkinkan hal ituGoogle Maps 
'API mengontrol informasi apa pihak ketiga situs bisa ambil, dan apa 
yang bisa dilakukan dengan itu. 
"API" dapat digunakan untuk mengacu 
ke antarmuka lengkap, satu fungsi, atau bahkan satu set berbagai API 
yang disediakan oleh sebuah organisasi. Dengan demikian, cakupan makna 
biasanya ditentukan oleh orang atau dokumen yang mengkomunikasikan 
informasi. 
• Web API 
Ketika digunakan dalam konteks pengembangan
 web, biasanya sebuah API yang didefinisikan set Hypertext Transfer 
Protocol (HTTP) pesan permintaan bersama dengan definisi respon struktur
 pesan, biasanya dinyatakan dalam sebuah Sementara "Web API" secara 
virtual sinonim untuk layanan web, tren baru-baru ini (yang disebut Web 
2.0) telah bergerak jauh dari Simple Object Access Protocol (SOAP) 
layanan berbasis lebih langsung terhadap Negara Representasi Transfer 
(REST) gaya komunikasi. Web API memungkinkan kombinasi dari berbagai 
layanan ke aplikasi baru yang dikenal sebagai mashup. 
• Implementasi 
POSIX
 standard mendefinisikan sebuah API yang memungkinkan berbagai fungsi 
komputasi umum harus ditulis sedemikian rupa sehingga mereka dapat 
beroperasi pada banyak sistem yang berbeda (Mac OS X dan berbagai 
Berkeley Software Distribusi (BSD) mengimplementasikan interface ini), 
namun, dengan menggunakan ini memerlukan kompilasi ulang untuk setiap 
platform. API yang kompatibel, di sisi lain, memungkinkan dikompilasi 
kode obyek untuk berfungsi tanpa perubahan apapun, pada pelaksanaan 
sistem apapun yang API. Hal ini menguntungkan kedua penyedia perangkat 
lunak (di mana mereka dapat mendistribusikan perangkat lunak yang ada 
pada sistem baru tanpa memproduksi / mendistribusikan upgrade) dan 
pengguna (di mana mereka mungkin lebih tua menginstal perangkat lunak 
pada sistem baru mereka tanpa membeli upgrade), meskipun hal ini 
memerlukan berbagai perangkat lunak secara umum pelaksanaan perpustakaan
 API diperlukan juga. 
Microsoft telah menunjukkan komitmen untuk API
 yang kompatibel ke belakang, terutama di dalam Windows API (Win32) 
perpustakaan, seperti aplikasi yang lebih tua dapat berjalan di Windows 
versi yang lebih baru menggunakan pengaturan khusus eksekusi yang 
disebut "Compatibility Mode" . Apple Inc telah menunjukkan kecenderungan
 yang kurang perhatian ini, memecah kompatibilitas atau 
mengimplementasikan dalam sebuah API yang lebih lambat "mode emulasi"; 
ini memungkinkan kebebasan lebih besar dalam pembangunan, pada biaya 
pembuatan perangkat lunak yang lebih tua usang. 
Antara Unix-seperti 
sistem operasi, ada banyak terkait tetapi tidak sesuai sistem operasi 
berjalan pada platform hardware yang umum (khususnya Intel 80386 sistem 
yang kompatibel). Sudah ada beberapa usaha untuk standarisasi API vendor
 perangkat lunak sehingga dapat mendistribusikan satu aplikasi binari 
untuk semua sistem ini, namun sampai saat ini, tidak satu pun telah 
bertemu dengan banyak keberhasilan. Linux Standard Base adalah berusaha 
untuk melakukan hal ini untuk Linux platform, sementara banyak dari 
beragam Unix BSD (FreeBSD, NetBSD, OpenBSD) menerapkan berbagai tingkat 
kompatibilitas API untuk kedua backward compatibility (memungkinkan 
program yang ditulis untuk versi lama untuk berjalan di distribusi baru 
sistem) dan lintas-platform kompatibilitas (memungkinkan eksekusi kode 
asing tanpa mengkompilasi ulang). 
Sumber :
http://code86.wordpress.com/2009/11/19/layanan-interface-dan-fitur-fitur-telematika/
http://translate.google.co.id/translate?hl=id&sl=en&u=http://en.wikipedia.org/wiki/Virtual_machine&ei=dVgRS-DgIY2OMc2mzTM&sa=X&oi=translate&ct=result&resnum=1&ved=0CA4Q7gEwAA&prev=/search%3Fq%3Dvirtual%2Bmachine%26hl%3Did%26client%3Dfirefox-a%26rls%3Dorg.mozilla:en-US:official%26hs%3DqER
http://translate.google.co.id/translate?hl=id&sl=en&tl=id&u=http%3A%2F%2Fen.wikipedia.org%2Fwiki%2FAPI