Selasa, 08 Desember 2009

Java Community Process ( JCP )

Java Community Process atau JCP, didirikan pada tahun 1998, merupakan sebuah proses formal yang memungkinkan pihak-pihak yang tertarik untuk terlibat dalam definisi versi dan fitur dari platform Java.

The JCP melibatkan penggunaan Java Spesification Request (JSRs) - dokumen formal yang menggambarkan spesifikasi dan teknologi yang diusulkan untuk menambah platform Java. Publik formal review dari JSRs akan muncul sebelum JSR final dan Komite Eksekutif JCP suara di atasnya.

JSR terakhir yang menyediakan implementasi referensi yang merupakan implementasi bebas teknologi dalam bentuk kode sumber dan Teknologi Kompatibilitas Kit untuk memverifikasi spesifikasi API.
Sebuah JSR menggambarkan JCP itu sendiri. Hingga 2006 [update], JSR 215 menggambarkan versi sekarang (2.6) dari JCP.

Virtual Machine

Virtual Machine (VM) adalah sebuah implementasi software mesin (misalnya komputer) yang melaksanakan program-program seperti mesin fisik.

Definisi

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 menyediakan platform sistem lengkap yang mendukung pelaksanaan sebuah sistem operasi lengkap (OS). Sebaliknya, mesin virtual sebuah proses yang dirancang untuk menjalankan sebuah program tunggal, yang berarti bahwa ia mendukung proses tunggal.

Contoh: Suatu program yang ditulis di Java menerima layanan 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 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 sebuah arsitektur set instruksi (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; yang digunakan adalah khas 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 mengeksploitasi kernel 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. 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.

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 - yang dari tingkat tinggi bahasa pemrograman (dibandingkan dengan tingkat rendah ISA abstraksi dari sistem VM). VMS proses diimplementasikan menggunakan juru bahasa; kinerja yang sebanding dengan bahasa pemrograman terkompilasi dicapai dengan menggunakan just-in-time kompilasi.

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 yang abstak untuk 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). 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

Ada tiga jenis Bahasa Pemrograman Java Application Programming Interface (API):

*
the official core Java API, yang terdapat dalam JDK atau JRE, dari salah satu edisi dari Java Platform. Tiga edisi dari Java Platform adalah Java ME (Micro edition), Java SE (Standard edition), dan Java EE (Enterprise edition).


*
optional official APIs yang dapat didownload secara terpisah. Spesifikasi API ini didefinisikan menurut Java Specification Request (JSR), dan kadang-kadang beberapa API ini kemudian dimasukkan dalam API inti dari platform (contoh yang paling terkenal dari jenis ini adalah swing).


* unofficial APIs, yang dikembangkan oleh pihak ketiga, tetapi tidak berkaitan dengan JSRs apapun.

Pihak-pihak ketiga dapat dengan bebas mengimplementasikan spesifikasi JSR API resmi (bahkan untuk API inti dari bahasa), memberikan bahwa mereka menyesuaikan diri dengan Technology Compatibility Kit (TCK) untuk JSR ini (yang TCK adalah paket tes yang memeriksa kesesuaian dari implementasi untuk JSR). Hasil dari kebebasan ini adalah bahwa banyak API resmi memiliki lebih implementasi dari Sun's Reference implementation (RI).

Sumber :

  1. http://en.wikipedia.org/wiki/Virtual_Machine
  2. http://en.wikipedia.org/wiki/List_of_Java_APIs
  3. http://en.wikipedia.org/wiki/Java_Community_Process

0 komentar:

Posting Komentar