Apakah oracle menggunakan java
Apakah database oracle menggunakan java secara internal
Setiap klien memulai sesi, memanggil modul logika sisi server melalui titik masuk tingkat atas, dan akhirnya mengakhiri sesi. Lingkungan server menyembunyikan pengelolaan sesi, jaringan, dan sumber daya bersama lainnya dari program Java yang di -host.
Ringkasan
Database Oracle memang menggunakan java secara internal. Oracle menyediakan solusi Java ujung ke ujung untuk pengembang aplikasi perusahaan. Solusi ini mencakup antarmuka terprogram sisi klien dan server, alat untuk pengembangan Java, dan JVM yang terintegrasi dengan database Oracle. Java dalam Pengembangan Aplikasi Database Menawarkan fitur seperti merancang prosedur dan fungsi yang terikat data, memperluas kemampuan database dengan perpustakaan Java, dan menjembatani SQL dan Java2ee World. Lingkungan pemrograman Java juga menyediakan prosedur tersimpan Java sebagai pendamping untuk antarmuka pemrograman PL/SQL, JDBC dan SQLJ untuk mengakses data SQL, dan alat untuk manajemen kelas. Selain itu, oracle database menawarkan integrasi dan fungsionalitas PL/SQL, memungkinkan panggilan program PL/SQL yang ada dari Java dan sebaliknya. Driver JDBC yang disediakan oleh Oracle mengaktifkan konektivitas ke database untuk aplikasi Java dan applet.
Poin -poin penting
1. Java dalam Pengembangan Aplikasi Database:
- Merancang prosedur dan fungsi yang terikat data menggunakan Java SE API dan JDBC.
- Memperluas jangkauan dan kemampuan database dengan perpustakaan Java standar dan pihak ketiga.
- Partisi fleksibel aplikasi J2SE untuk akses data simetris di level JDBC.
- Menjembatani SQL dan J2EE World dengan memanggil komponen web dan menjembatani SQL dan Layanan Web.
2. Penggunaan Lingkungan Pemrograman Java:
- Prosedur tersimpan Java sebagai Java yang setara dan pendamping untuk PL/SQL.
- JDBC dan antarmuka pemrograman SQLJ untuk mengakses data SQL.
- Alat dan skrip untuk mengembangkan, memuat, dan mengelola kelas.
3. Prosedur tersimpan Java:
Prosedur tersimpan java adalah program Java yang digunakan di server dan dijalankan dari server, seperti Prosedur Tersimpan PL/SQL. Mereka dapat dipanggil secara langsung atau tidak langsung melalui pemicu. Oracle Database menyediakan implementasi lengkap dari bahasa pemrograman Java standar dan JVM.
4. Integrasi PL/SQL dan fungsionalitas Oracle RDBMS:
Oracle Database memungkinkan memanggil program PL/SQL yang ada dari program Java dan Java dari PL/SQL. Ini memfasilitasi memanfaatkan kode PL/SQL dan Java dan mengambil keuntungan dari peluang komputasi internet berbasis Java. Driver JDBC yang disediakan oleh Oracle termasuk driver tipis JDBC, driver JDBC OCI, dan driver internal sisi server JDBC.
Pertanyaan
1. Fitur apa yang ditawarkan Java dalam Penawaran Pengembangan Aplikasi Database?
Java dalam Pengembangan Aplikasi Database Menawarkan fitur seperti merancang prosedur dan fungsi yang terikat data, memperluas kemampuan database dengan perpustakaan Java, dan menjembatani SQL dan Java2ee World.
2. Apa prosedur tersimpan java yang setara dengan PL/SQL?
Prosedur tersimpan java berfungsi sebagai Java yang setara dan pendamping untuk PL/SQL.
3. Apa antarmuka pemrograman untuk mengakses data SQL di java?
Antarmuka pemrograman JDBC dan SQLJ digunakan untuk mengakses data SQL di Java.
4. Alat apa yang tersedia di lingkungan pemrograman Java?
Lingkungan Pemrograman Java menyediakan alat dan skrip untuk mengembangkan, memuat, dan mengelola kelas.
5. Bagaimana prosedur tersimpan java dapat dipanggil?
Prosedur tersimpan java dapat dipanggil secara langsung atau tidak langsung melalui pemicu.
6. Can Oracle Database menyebut program PL/SQL yang ada dari Java?
Ya, Oracle Databases Mendukung menyebut program PL/SQL yang ada dari Java.
7. Bagaimana Aplikasi Java Mengakses Data SQL Oracle?
Aplikasi Java dapat mengakses data Oracle SQL melalui driver JDBC yang disediakan oleh Oracle.
8. Apa tujuan dari pengemudi tipis JDBC?
JDBC Thin Driver memungkinkan menulis aplikasi Java murni dan applet yang mengakses data Oracle SQL. Ini cocok untuk aplikasi dan applics berbasis web.
9. Apa perbedaan driver JDBC OCI dari driver tipis JDBC?
Driver OCI JDBC mengakses kode dan perpustakaan asli Oracle khusus pada klien atau tingkat menengah, memberikan peningkatan kinerja dibandingkan dengan driver tipis JDBC dengan biaya ukuran yang lebih besar dan instalasi sisi klien.
10. Untuk apa driver internal sisi server JDBC digunakan?
Driver internal sisi server JDBC memungkinkan aplikasi Java yang berjalan di Oracle JVM di server untuk mengakses data yang ditentukan secara lokal menggunakan JDBC, memberikan peningkatan kinerja dengan menggunakan perpustakaan Oracle RDBMS yang mendasarinya secara langsung.
Apakah database oracle menggunakan java secara internal
Setiap klien memulai sesi, memanggil modul logika sisi server melalui titik masuk tingkat atas, dan akhirnya mengakhiri sesi. Lingkungan server menyembunyikan pengelolaan sesi, jaringan, dan sumber daya bersama lainnya dari program Java yang di -host.
Apakah oracle menggunakan java
Oracle memberikan pengembang aplikasi perusahaan solusi Java ujung ke ujung untuk membuat, menggunakan, dan mengelola aplikasi Java. Solusi total terdiri dari antarmuka terprogram sisi klien dan sisi server, alat untuk mendukung pengembangan Java, dan JVM yang terintegrasi dengan Oracle Database. Semua produk ini sepenuhnya kompatibel dengan standar Java. Bagian ini mencakup topik berikut:
- Java dalam Pengembangan Aplikasi Database
- Penggunaan Lingkungan Pemrograman Java
- Prosedur tersimpan Java
- Integrasi PL/SQL dan fungsionalitas Oracle RDBMS
- Alat pengembangan
- Dukungan Protokol Internet 6
1.6.1 Java dalam Pengembangan Aplikasi Database
Fitur terpenting dari Java dalam pengembangan aplikasi database adalah:
- Merancang prosedur dan fungsi yang terikat data menggunakan Java SE API dan JDBC.
- Memperluas jangkauan dan kemampuan database dengan perpustakaan Java standar dan pihak ketiga. Misalnya, mengakses database pihak ketiga menggunakan driver mereka di database dan mengakses Hadoop/HDFS.
- Memberikan partisi fleksibel platform Java2, Standard Edition (J2SE) aplikasi untuk akses data simetris di level JDBC.
- Menjembatani SQL dan Platform Java2, Enterprise Edition (J2EE) World oleh:
- Memanggil komponen web, seperti JSP dan Servlet
- Menjembatani SQL dan Layanan Web Menggunakan Panggilan Layanan Web
1.6.2 Penggunaan Lingkungan Pemrograman Java
Selain JVM Oracle, lingkungan pemrograman Java menyediakan:
- Prosedur tersimpan Java sebagai Java yang setara dan pendamping untuk PL/SQL. Prosedur tersimpan java terintegrasi erat dengan PL/SQL. Anda dapat menghubungi prosedur tersimpan java dari paket PL/SQL dan prosedur PL/SQL dari prosedur tersimpan java.
- Antarmuka pemrograman JDBC dan SQLJ untuk mengakses data SQL.
- Alat dan skrip yang membantu dalam mengembangkan, memuat, dan mengelola kelas.
Tabel berikut membantu Anda memutuskan kapan harus menggunakan Java API mana:
Untuk memiliki prosedur Java yang dipanggil dari SQL, seperti pemicu.
Prosedur tersimpan Java
Untuk memanggil pernyataan SQL yang statis dan sederhana dari tabel yang diketahui dengan nama kolom yang diketahui dari objek Java.
Untuk memanggil dinamis, pernyataan SQL yang kompleks dari objek Java.
1.6.3 Prosedur tersimpan java
Prosedur tersimpan java adalah program Java yang ditulis dan digunakan di server dan dijalankan dari server, persis seperti prosedur tersimpan PL/SQL. Anda memohon secara langsung dengan produk -produk seperti SQL*Plus, atau secara tidak langsung dengan pemicu. Anda dapat mengaksesnya dari klien Net Oracle, seperti OCI dan Pro*, atau JDBC atau SQLJ.
Selain itu, Anda dapat menggunakan Java untuk mengembangkan program sisi server yang kuat, yang dapat independen dari PL/SQL. Oracle Database menyediakan implementasi lengkap dari bahasa pemrograman Java standar dan JVM yang sepenuhnya sesuai.
Topik-topik terkait
1.6.4 PL/SQL Integrasi dan fungsionalitas Oracle RDBMS
Anda dapat menghubungi program PL/SQL yang ada dari program Java dan Java dari PL/SQL. Solusi ini melindungi dan memanfaatkan kode PL/SQL dan Java Anda dan membuka keuntungan dan peluang komputasi internet berbasis Java.
Oracle Database menawarkan dua API Java yang berbeda untuk mengakses data SQL, JDBC dan SQLJ. Kedua API ini tersedia di klien, dan API JDBC juga tersedia di server. Akibatnya, Anda dapat menggunakan aplikasi Anda di klien dan server.
Topik berikut memperkenalkan API Java yang disediakan oleh Oracle Database:
1.6.4.1 driver JDBC
JDBC adalah protokol akses basis data yang memungkinkan Anda untuk terhubung ke database dan menjalankan pernyataan dan permintaan SQL ke database. Perpustakaan Kelas Java Inti menyediakan API JDBC berikut: Java.SQL dan JAVAX.SQL . Namun, JDBC dirancang untuk memungkinkan vendor untuk memasok driver yang menawarkan spesialisasi yang diperlukan untuk database tertentu. Oracle memberikan driver JDBC yang berbeda berikut:
JDBC Driver Tipis
Anda dapat menggunakan driver tipis JDBC untuk menulis aplikasi java murni dan applet yang mengakses data SQL Oracle. JDBC Thin Driver sangat cocok untuk aplikasi dan applet berbasis web, karena Anda dapat mengunduhnya secara dinamis dari halaman web, mirip dengan applet Java lainnya.
JDBC OCI Driver
Driver OCI JDBC mengakses kode asli Oracle-spesifik, yaitu kode non-java, dan perpustakaan pada klien atau tingkat menengah, memberikan peningkatan kinerja dibandingkan dengan driver tipis JDBC, dengan biaya ukuran yang jauh lebih besar dan instalasi sisi klien secara signifikan.
Driver internal sisi server JDBC
Oracle Database menggunakan driver internal sisi server saat kode Java berjalan di server. Ini memungkinkan aplikasi Java yang berjalan di Oracle JVM di server untuk mengakses data yang ditentukan secara lokal, yaitu data pada sistem yang sama dan dalam proses yang sama, dengan JDBC. Ini memberikan peningkatan kinerja, karena kemampuannya untuk menggunakan perpustakaan Oracle RDBMS yang mendasarinya secara langsung, tanpa overhead koneksi jaringan intervensi antara kode Java dan data SQL. Dengan mendukung antarmuka java-sql yang sama di server, database Oracle tidak mengharuskan Anda untuk mengerjakan ulang kode saat menggunakannya.
Topik-topik terkait
Apakah database oracle menggunakan java secara internal?
EDIT:
Oracle memang menyertakan JVM yang berjalan pada mesin yang sama dengan database itu sendiri, tetapi itu tidak digunakan untuk menjalankan kode “DBMS terkait” apa pun.Hanya ada di sana untuk menjalankan prosedur/fungsi tersimpan yang ditulis di Java.
Dijawab 13 Sep 2011 di 6:43
a_horse_with_no_name a_horse_with_no_name
78k 14 14 Lencana Emas 157 157 Lencana Perak 194 194 Lencana Perunggu
Wow, tidak tahu tentang bagian C. +1.
13 Sep 2011 di 10:17
Lihat “Timeline Sejarah” mereka: Oracle.com/us/corporate/timeline/index.HTML: 1983: “Oracle merilis versi 3 dari database, dengan kode server yang ditulis dalam bahasa pemrograman C”
13 Sep 2011 jam 10:24
Tebakan saya adalah java tidak ada saat itu. Saya pikir Java pertama datang di Oracle 8i.
13 Sep 2011 di 16:59
JVM internal tidak digunakan untuk menjalankan kode “DBMS terkait” apa pun. Hanya ada di sana untuk menjalankan prosedur/fungsi tersimpan yang ditulis di Java.
13 Sep 2011 jam 18:27
@a_horse_with_no_name – Saya kira itu tergantung pada apa yang Anda maksud dengan paket “standar”. Oracle mengirimkan sejumlah paket yang dibangun di Java (apa pun yang menggunakan XDB, misalnya, termasuk banyak paket xmlquery, tergantung pada JVM internal). Ini bukan “standar” dalam arti paket yang sering digunakan sebagian besar pengembang. Tetapi mereka “standar” dalam arti bahwa mereka diinstal saat Anda melakukan instalasi default dari database Oracle.
1
Pengantar Java di Database OracleBuku ini memberikan gambaran umum tentang cara mengembangkan, memuat, dan menjalankan aplikasi Java Anda di database Oracle.
Bab ini berisi informasi berikut:
- Isi Bab
- Apa yang baru dalam rilis ini?
- Tinjauan Java
- Mengapa menggunakan java di database Oracle?
- Apa yang berbeda dengan oraclejvm?
- Komponen utama OracleJVM
- Strategi Aplikasi Java Oracle
- Despupport dari J2EE Technologies di Oracle Database
Isi Bab
- Memperkenalkan bahasa Java untuk programmer database Oracle. Pengembang Oracle PL/SQL terbiasa mengembangkan aplikasi sisi server yang memiliki integrasi ketat dengan data SQL. Anda dapat mengembangkan aplikasi sisi server java yang memanfaatkan skalabilitas dan kinerja database Oracle. Jika Anda tidak terbiasa dengan Java, lihat “Tinjauan Jawa” .
- Memeriksa mengapa dapat mempertimbangkan menggunakan java dalam database Oracle. Lihat “Mengapa menggunakan java di database Oracle?” . Selain itu, deskripsi singkat diberikan untuk masing -masing Java API yang didukung dalam database Oracle. Daftar API termasuk prosedur tersimpan JDBC dan Java. Lihat “Strategi Aplikasi Java Oracle” .
Apa yang baru dalam rilis ini?
Bagian berikut menjelaskan penambahan rilis ini:
- Meningkatkan ke J2SE 1.4.1
- Model memori baru untuk sesi mode khusus
- Panggilan Layanan Web Database
- Antarmuka Java asli
- Panggilan EJB
Meningkatkan ke J2SE 1.4.1
Dalam rilis ini, kelas sistem ditingkatkan dari J2SE 1.3 ke j2se 1.4.1. J2SE 1.4.1 kompatibel dengan j2se 1.3. Sun Microsystems menerbitkan daftar ketidakcocokan antara J2SE 1.4.1 dan versi sebelumnya di situs web berikut:
http: // java.matahari.com/produk/j2se/1.4.1/kompatibilitas.html
Sebagai bagian dari peningkatan kelas sistem ke J2SE 1.4.1, OracleJVM mendukung AWT tanpa kepala. Headless AWT memungkinkan perhitungan AWT, yang tidak bergantung pada tampilan asli dan perangkat input platform untuk terjadi, tetapi, sebaliknya, melarang upaya untuk mengakses sumber daya asli tersebut. Metode yang berupaya menampilkan antarmuka pengguna grafis atau membaca dari keyboard atau input mouse sebagai gantinya melempar Java pengecualian runtime baru.Awt.Kepala tanpa kepala. Demikian pula, OracleJVM melarang mencoba memutar atau merekam suara menggunakan perangkat suara asli server, tetapi masih memungkinkan aplikasi untuk membaca, menulis, dan memanipulasi file suara yang didukung. Untuk informasi lebih lanjut, lihat “Antarmuka Pengguna di Server” .
Model memori baru untuk sesi mode khusus
Dalam database Oracle, OracleJVM memiliki model memori baru untuk sesi yang terhubung ke database melalui server khusus. Karena sesi menggunakan server khusus dijamin menggunakan proses yang sama untuk setiap panggilan database, area proses global digunakan untuk memori spesifik sesi dan alokasi objek. Ini berarti bahwa beberapa objek dan sumber daya yang dulu direklamasi di akhir setiap panggilan sekarang dapat hidup di seluruh panggilan. Secara khusus, sumber daya khusus untuk sistem operasi tertentu, seperti utas dan file terbuka, sekarang tidak lagi dibersihkan di akhir setiap panggilan database.
Untuk sesi yang menggunakan server bersama, pembatasan di seluruh panggilan yang diterapkan dalam rilis sebelumnya masih ada. Alasannya adalah bahwa sesi yang menggunakan server bersama tidak dijamin akan terhubung ke proses yang sama pada panggilan database berikutnya, dan karenanya memori dan objek khusus sesi yang perlu ditinggalkan di seluruh panggilan disimpan di area global sistem sistem sistem global. Ini berarti bahwa sumber daya khusus proses, seperti utas, file terbuka dan soket harus dibersihkan di akhir setiap panggilan, dan karenanya tidak akan tersedia untuk panggilan berikutnya. Untuk detail lebih lanjut tentang perilaku OracleJVM saat menggunakan server bersama, lihat “Pertimbangan Khusus untuk Server Bersama” .
Panggilan Layanan Web Database
Dalam database Oracle, Anda dapat memuat tumpukan klien layanan web ke oracleJVM untuk mendukung panggilan ke layanan web eksternal dari java serta dari PL/SQL. Anda dapat menggunakan alat JPublisher untuk menghasilkan proksi klien Java statis serta spesifikasi panggilan PL/SQL pada proksi ini yang dimuat ke OracleJVM untuk mengaktifkan akses ke layanan web dari Java, PL/SQL, dan SQL Code.
Antarmuka Java asli
Dalam database Oracle, Anda sekarang dapat memohon metode statis publik dari kelas Java di OracleJVM langsung dari klien Java tanpa mendefinisikan spesifikasi panggilan PL/SQL dan memanggilnya melalui JDBC. Sebagai gantinya, Anda dapat menggunakan utilitas jpublisher untuk menghasilkan kelas client-proxy dengan tanda tangan yang sama dengan kelas Java sisi server. Setelah Anda instance instance-proxy dengan koneksi JDBC, Anda dapat menghubungi metode proxy secara langsung.
Gambar 1-1 Menunjukkan API Stub Sisi Klien untuk Doa Langsung Metode Java Sisi Server Statis. Jpublisher secara transparan menangani generasi rintisan.
Gambar 1-1 Antarmuka Java Asli
Misalnya, untuk memanggil metode berikut di server
oracle string publik.SQLJ.pemeriksa.Jdbcversion.to_string ();
jpub -java = oracle.SQLJ.pemeriksa.Jdbcversion
Panggilan EJB
Dalam aplikasi perusahaan tertentu menjadi penting untuk mengakses perusahaan java beans (EJB) yang dikerahkan pada server jarak jauh, dari dalam database. Oracle Database menyediakan sarana untuk mengakses EJBS yang dikerahkan dari jarak jauh melalui RMI.
Gambar 1-2 Panggilan EJB
Tinjauan Java
Java telah muncul sebagai bahasa pemrograman pilihan yang berorientasi objek. Ini termasuk konsep -konsep berikut:
- Java Virtual Machine (JVM), yang memberikan dasar mendasar untuk independensi platform
- Teknik manajemen penyimpanan otomatis, yang paling terlihat adalah pengumpulan sampah
- sintaksis bahasa yang meminjam dari C dan menegakkan pengetikan yang kuat
Hasilnya adalah bahasa yang berorientasi objek dan efisien untuk program tingkat aplikasi.
Java dan terminologi pemrograman berorientasi objek
Bagian ini mencakup beberapa terminologi dasar pengembangan aplikasi Java di lingkungan database Oracle. Istilah harus akrab bagi pemrogram Java yang berpengalaman. Diskusi terperinci tentang pemrograman yang berorientasi objek atau bahasa Java berada di luar cakupan buku ini. Banyak teks, selain spesifikasi bahasa lengkap, tersedia di toko buku Anda dan di internet. Lihat “Bacaan yang Disarankan” di Kata Pengantar untuk Pointer ke Materi Referensi dan untuk Tempat Menemukan Informasi Terkait Java di Internet.
Kelas
Semua bahasa pemrograman berorientasi objek mendukung konsep kelas. Seperti halnya definisi tabel, kelas menyediakan templat untuk objek yang memiliki karakteristik umum. Setiap kelas dapat berisi yang berikut:
- Atribut-variabel statis atau instance yang dimiliki setiap objek dari kelas tertentu.
- Metode-Anda dapat meminta metode yang ditentukan oleh kelas atau diwarisi oleh kelas mana pun yang diperluas dari kelas.
Saat Anda membuat objek dari kelas, Anda membuat instance dari kelas itu. Contohnya berisi bidang suatu objek, yang dikenal sebagai datanya, atau status. Gambar 1-3 menunjukkan contoh kelas karyawan yang didefinisikan dengan dua atribut: nama belakang (nama terakhir) dan pengidentifikasi karyawan (ID).
Gambar 1-3 kelas dan instance
Saat Anda membuat instance, atribut menyimpan informasi individu dan pribadi yang hanya relevan dengan karyawan. Yaitu, informasi yang terkandung dalam contoh karyawan hanya diketahui untuk karyawan tunggal itu. Contoh dalam Gambar 1-3 menunjukkan dua contoh karyawan-Smith dan Jones. Setiap contoh berisi informasi yang relevan dengan karyawan individu.
Atribut
Atribut dalam suatu contoh dikenal sebagai bidang. Bidang instan analog dengan bidang baris tabel relasional. Kelas mendefinisikan bidang, serta jenis masing -masing bidang. Anda dapat mendeklarasikan bidang di Java sebagai akses statis, publik, pribadi, terlindungi, atau default.
- Bidang akses publik, pribadi, terlindungi, atau default dibuat dalam setiap instance.
- Bidang statis seperti variabel global karena informasi tersedia untuk semua contoh kelas karyawan.
Spesifikasi bahasa mendefinisikan aturan visibilitas data untuk semua bidang. Aturan visibilitas ditentukan dalam keadaan apa Anda dapat mengakses data di bidang ini.
Metode
Kelas juga mendefinisikan metode yang dapat Anda panggil pada contoh kelas itu. Metode ditulis dalam java dan tentukan perilaku suatu objek. Bundling keadaan dan perilaku ini adalah inti dari enkapsulasi, yang merupakan fitur dari semua bahasa pemrograman yang berorientasi objek. Jika Anda mendefinisikan kelas karyawan, menyatakan bahwa setiap ID karyawan adalah bidang pribadi, objek lain dapat mengakses bidang pribadi itu hanya jika metode mengembalikan bidang. Dalam contoh ini, suatu objek dapat mengambil pengidentifikasi karyawan dengan memohon karyawan.getid () metode.
Selain itu, dengan enkapsulasi, Anda dapat menyatakan bahwa karyawan tersebut.Metode getId () bersifat pribadi, atau Anda dapat memutuskan untuk tidak menulis karyawan.getid () metode. Enkapsulasi membantu Anda menulis program yang dapat digunakan kembali dan tidak disalahgunakan. Enkapsulasi membuat publik hanya fitur -fitur dari suatu objek yang dinyatakan publik; Semua bidang dan metode lainnya bersifat pribadi. Bidang dan metode pribadi dapat digunakan untuk pemrosesan objek internal.
Hirarki kelas
Java mendefinisikan kelas dalam hierarki kelas yang besar. Di bagian atas hierarki adalah kelas objek. Semua kelas di Java mewarisi dari kelas objek di tingkat tertentu, saat Anda berjalan melalui rantai warisan superclasses. Ketika kita mengatakan Kelas B mewarisi dari Kelas A, setiap contoh Kelas B berisi semua bidang yang ditentukan di Kelas B, serta semua bidang yang ditentukan di Kelas A. Misalnya, pada Gambar 1-4, kelas Pepermani Fulltime berisi ID dan bidang nama terakhir yang didefinisikan dalam kelas karyawan, karena mewarisi dari kelas karyawan. Selain itu, kelas penuh kerja penuh menambahkan bidang lain, bonus, yang hanya terkandung dalam fulltime theadee.
Anda dapat memohon metode apa pun pada contoh Kelas B yang didefinisikan di kedua Kelas A atau B. Dalam contoh karyawan kami, instance FullTimeMequire dapat memohon metode yang ditentukan hanya dalam kelasnya sendiri, atau metode yang ditentukan dalam kelas karyawan.
Gambar 1-4 Hirarki Kelas
Contoh Kelas B dapat diganti dengan contoh Kelas A, yang membuat warisan konstruksi kuat lain dari bahasa yang berorientasi objek untuk meningkatkan penggunaan kembali kode. Anda dapat membuat kelas baru yang mendefinisikan perilaku dan menyatakan di mana masuk akal dalam hierarki, namun memanfaatkan fungsionalitas yang sudah ada sebelumnya di perpustakaan kelas.
Antarmuka
Java hanya mendukung warisan tunggal; yaitu, setiap kelas memiliki satu dan hanya satu kelas dari mana ia mewarisi. Jika Anda harus mewarisi dari lebih dari satu sumber, Java memberikan setara dengan warisan berganda, tanpa komplikasi dan kebingungan yang biasanya menyertainya, melalui antarmuka. Antarmuka mirip dengan kelas; Namun, antarmuka mendefinisikan tanda tangan metode, bukan implementasi. Metode diterapkan di kelas yang dinyatakan untuk mengimplementasikan antarmuka. Warisan berganda terjadi ketika satu kelas tunggal secara bersamaan mendukung banyak antarmuka.
Polimorfisme
Asumsikan dalam contoh karyawan kami bahwa berbagai jenis karyawan harus dapat menanggapi dengan kompensasi mereka hingga saat ini. Kompensasi dihitung secara berbeda untuk berbagai jenis karyawan.
- Pekerjaan penuh waktu memenuhi syarat untuk bonus
- Noexemplemployese mendapatkan pembayaran lembur
Dalam bahasa prosedural tradisional, Anda akan menulis pernyataan sakelar panjang, dengan berbagai kasus yang mungkin ditentukan.
Switch: (karyawan.Jenis) Kasus: Karyawan Pengembalian Karyawan.gaji; Kasus: karyawan pengembalian penuh kerja penuh.Salarytodate + Karyawan.Bonustodate .
Jika Anda menambahkan jenis karyawan baru, Anda harus memperbarui pernyataan sakelar Anda. Jika Anda memodifikasi struktur data Anda, Anda harus memodifikasi semua pernyataan sakelar yang menggunakannya. Dalam bahasa yang berorientasi objek seperti Java, Anda menerapkan metode, kompensasiTodate (), untuk setiap subclass kelas karyawan yang memerlukan perlakuan khusus di luar apa yang sudah didefinisikan di kelas karyawan. Misalnya, Anda dapat mengimplementasikan metode CompensationTodate () dari Nonexemplemployee, sebagai berikut:
kompensasi pelampung pribadi ()
Anda menerapkan metode FullTeTeMeadeee, sebagai berikut:
kompensasi pelampung pribadi ()
Penggunaan Umum dari Metode Nama KompensasiTodate () memungkinkan Anda untuk memohon metode yang identik pada kelas yang berbeda dan menerima hasil yang berbeda, tanpa mengetahui jenis karyawan yang Anda gunakan. Anda tidak perlu menulis metode khusus untuk menangani karyawan penuh waktu dan pemikiran paruh waktu. Kemampuan objek yang berbeda ini untuk menanggapi pesan yang identik dengan cara yang berbeda dikenal sebagai polimorfisme.
Selain itu, Anda dapat membuat kelas yang sama sekali baru yang tidak mewarisi dari karyawan sama sekali-kontraktor-dan mengimplementasikan metode CompensationTodate () di dalamnya. Sebuah program yang menghitung total penggajian hingga saat ini akan mengulangi semua orang pada penggajian, terlepas dari apakah mereka penuh waktu, paruh waktu, atau kontraktor, dan menambahkan nilai yang dikembalikan dari memohon metode kompensasi () pada masing-masing. Anda dapat dengan aman membuat perubahan pada metode kompensasi individu () dengan pengetahuan bahwa penelepon metode akan bekerja dengan benar. Misalnya, Anda dapat dengan aman menambahkan bidang baru ke kelas yang ada.
Mesin Virtual Java (JVM)
Seperti halnya bahasa komputer tingkat tinggi lainnya, sumber Java Anda dikompilasi untuk instruksi mesin tingkat rendah. Di Java, instruksi ini dikenal sebagai bytecode (karena ukurannya secara seragam satu byte penyimpanan). Sebagian besar bahasa lain-sesuai dengan C-kompilasi instruksi spesifik mesin-seperti instruksi khusus untuk prosesor intel atau hp. Sumber Java Anda dikompilasi ke set bytecode standar, platform-independen, yang berinteraksi dengan Java Virtual Machine (JVM). JVM adalah program terpisah yang dioptimalkan untuk platform spesifik tempat Anda menjalankan kode java Anda. Gambar 1-5 menggambarkan bagaimana Java dapat mempertahankan independensi platform. Sumber Java Anda dikompilasi ke dalam bytecode, yang merupakan platform independen. Setiap platform telah menginstal JVM yang khusus untuk sistem operasinya. Java bytecodes dari sumber Anda ditafsirkan melalui JVM ke dalam tindakan tergantung platform yang sesuai.
Gambar 1-5 Struktur Komponen Java
Saat Anda mengembangkan program Java, Anda menggunakan perpustakaan kelas inti yang telah ditentukan sebelumnya yang ditulis dalam bahasa Java. Perpustakaan kelas inti Java secara logis dibagi menjadi paket yang menyediakan fungsionalitas yang biasa digunakan, seperti dukungan bahasa dasar (Java.lang), input/output (java.io), dan akses jaringan (java.bersih). Bersama -sama, Perpustakaan Kelas JVM dan Inti menyediakan platform tempat pemrogram Java dapat mengembangkan dengan keyakinan bahwa perangkat keras dan sistem operasi apa pun yang mendukung Java akan menjalankan program mereka. Konsep ini adalah apa yang mendorong ide Java “Tulis sekali, jalankan di mana saja”.
Gambar 1-6 menggambarkan bagaimana aplikasi Oracle Java duduk di atas perpustakaan kelas inti Java, yang pada gilirannya duduk di atas JVM. Karena sistem pendukung Oracle Java terletak di dalam database, JVM berinteraksi dengan pustaka database Oracle, alih -alih langsung dengan sistem operasi.
Gambar 1-6 Oracle Database Struktur Komponen Java
Sun Microsystems melengkapi spesifikasi yang tersedia untuk umum untuk bahasa Java dan JVM. Spesifikasi Bahasa Java (JLS) mendefinisikan hal -hal seperti sintaks dan semantik; Spesifikasi JVM mendefinisikan perilaku tingkat rendah yang diperlukan untuk “mesin” yang mengeksekusi bytecode. Selain itu, Sun Microsystems menyediakan rangkaian uji kompatibilitas untuk implementor JVM untuk menentukan apakah mereka telah memenuhi spesifikasi. Suite tes ini dikenal sebagai Java Compatibility Kit (JCK). Implementasi OracleJVM memenuhi sepenuhnya dengan JCK. Bagian dari strategi Java keseluruhan adalah bahwa standar yang ditentukan secara terbuka, bersama dengan cara sederhana untuk memverifikasi kepatuhan dengan standar itu, memungkinkan vendor untuk menawarkan dukungan seragam untuk Java di semua platform.
Fitur Utama dari Bahasa Java
Bahasa Java memiliki fitur utama yang membuatnya ideal untuk mengembangkan aplikasi server. Fitur -fitur ini termasuk:
- Kesederhanaan-Java adalah bahasa yang lebih sederhana daripada kebanyakan yang digunakan dalam aplikasi server karena penegakan model objek yang konsisten. Perpustakaan kelas kelas besar dan standar membawa alat yang kuat untuk pengembang Java di semua platform.
- Portabilitas-Java portabel di seluruh platform. Dimungkinkan untuk menulis kode yang bergantung pada platform di Java, tetapi juga mudah untuk menulis program yang bergerak mulus di seluruh mesin. Aplikasi Oracle Server, yang tidak mendukung antarmuka pengguna grafis secara langsung pada platform yang meng -host mereka, juga cenderung menghindari beberapa masalah portabilitas platat yang dimiliki Java.
- Manajemen Penyimpanan Otomatis-Mesin virtual Java secara otomatis melakukan semua alokasi memori dan deallokasi selama eksekusi program. Pemrogram Java tidak dapat mengalokasikan atau memori bebas secara eksplisit. Sebagai gantinya, mereka bergantung pada JVM untuk melakukan operasi pembukuan ini, mengalokasikan memori saat mereka membuat objek baru dan menangani memori ketika objek tidak lagi direferensikan. Operasi terakhir dikenal sebagai pengumpulan sampah.
- Pengetikan yang kuat-sebelum Anda menggunakan variabel java, Anda harus mendeklarasikan kelas objek yang akan ditahannya. Pengetikan Java yang kuat memungkinkan untuk memberikan solusi yang masuk akal dan aman untuk panggilan antar bahasa antara aplikasi Java dan PL/SQL, dan untuk mengintegrasikan panggilan Java dan SQL dalam aplikasi yang sama.
- Tidak ada petunjuk-meskipun Java mempertahankan banyak rasa C dalam sintaksnya, ia tidak mendukung pointer langsung atau manipulasi pointer. Anda melewati semua parameter, kecuali tipe primitif, dengan referensi (yaitu, identitas objek dipertahankan), bukan berdasarkan nilai. Java tidak memberikan akses langsung tingkat rendah C ke pointer, yang menghilangkan korupsi dan kebocoran memori.
- Penanganan Pengecualian-Pengecualian Java adalah objek. Java mengharuskan pengembang untuk menyatakan pengecualian mana yang dapat dilemparkan dengan metode di kelas tertentu.
- Namespace Fleksibel-Java mendefinisikan kelas dan memegangnya dalam struktur hierarkis yang mencerminkan namespace domain internet. Anda dapat mendistribusikan aplikasi Java dan menghindari tabrakan nama. Ekstensi Java seperti Java Naming dan Directory Interface (JNDI) menyediakan kerangka kerja untuk beberapa layanan nama yang akan digemakan. Pendekatan namespace Java cukup fleksibel bagi Oracle untuk menggabungkan konsep skema untuk menyelesaikan nama kelas, sementara sepenuhnya mematuhi spesifikasi bahasa.
- Keamanan-Desain Java Bytecode dan JVM memungkinkan mekanisme bawaan untuk memverifikasi bahwa kode biner Java tidak dirusak. Oracle Database diinstal dengan instance dari SecurityManager, yang, bila dikombinasikan dengan keamanan database Oracle, menentukan siapa yang dapat memohon metode java apa pun.
- Standar Konektivitas ke Database Relasional-JDBC Mengaktifkan Kode Java untuk mengakses dan memanipulasi data yang tinggal di database relasional. Oracle menyediakan driver yang memungkinkan kode Java portabel yang tidak bergantung pada vendor untuk mengakses database relasional.
Mengapa menggunakan java di database Oracle?
Satu -satunya alasan Anda diizinkan untuk menulis dan memuat aplikasi Java dalam database adalah karena itu adalah bahasa yang aman. Java telah dikembangkan untuk mencegah siapa pun merusak sistem operasi tempat kode Java berada. Beberapa bahasa, seperti C, dapat memperkenalkan masalah keamanan dalam database; Java, karena desainnya, adalah bahasa yang aman untuk diizinkan dalam database.
Meskipun bahasa Java menyajikan banyak keuntungan bagi pengembang, memberikan implementasi JVM yang mendukung aplikasi server Java dengan cara yang dapat diskalakan adalah sebuah tantangan. Bagian ini membahas beberapa tantangan ini.
- Java dan RDBMS: Kombinasi yang kuat
- Multithreading
- Manajemen penyimpanan otomatis dengan pengumpulan sampah
- Tapak
- Pertunjukan
- Pemuatan kelas dinamis
Java dan RDBMS: Kombinasi yang kuat
Oracle RDBMS menyediakan aplikasi Java dengan mesin pemrosesan data yang dinamis yang mendukung kueri kompleks dan tampilan yang berbeda dari data yang sama. Semua permintaan klien dirakit sebagai kueri data untuk pemrosesan langsung, dan hasil kueri dihasilkan dengan cepat.
Beberapa fitur membuat Java ideal untuk pemrograman server. Java memungkinkan Anda merakit aplikasi menggunakan komponen perangkat lunak di luar rak (JavaBeans). Jenis Keselamatan dan Manajemen Memori Otomatis memungkinkan integrasi ketat dengan RDBMS. Selain itu, Java mendukung distribusi transparan komponen aplikasi di seluruh jaringan.
Dengan demikian, Java dan RDBMS mendukung perakitan cepat aplikasi yang berpusat pada jaringan yang dapat berevolusi dengan anggun saat kebutuhan bisnis berubah. Selain itu, Anda dapat memindahkan aplikasi dan menyimpan data dari desktop dan ke jaringan cerdas dan server yang berpusat pada jaringan. Lebih penting lagi, Anda dapat mengakses aplikasi dan penyimpanan data dari perangkat klien apa pun.
Gambar 1-7 menunjukkan konfigurasi dua tingkat, klien/server tradisional di mana klien memanggil prosedur tersimpan java dengan cara yang sama seperti yang mereka sebut PL/SQL Prosedur yang tersimpan. (PL/SQL adalah 4GL canggih yang terintegrasi dengan oracle database.) Gambar ini juga menunjukkan bagaimana Oracle Net Services Connection Manager dapat menyalurkan banyak koneksi jaringan ke satu koneksi database tunggal. Ini memungkinkan RDBMS mendukung sejumlah besar pengguna bersamaan.
Gambar 1-7 Konfigurasi Klien/Server Dua Tier
Multithreading
Dukungan multithreading sering dikutip sebagai salah satu fitur skalabilitas utama dari bahasa java. Tentu saja, Perpustakaan Bahasa dan Kelas Java membuatnya lebih sederhana untuk menulis aplikasi multithreaded di Java daripada banyak bahasa lain, tetapi masih merupakan tugas yang menakutkan dalam bahasa apa pun untuk menulis kode multithreaded yang andal.
Sebagai server database, oracle database secara efisien menjadwalkan bekerja untuk ribuan pengguna. OracleJVM menggunakan fasilitas server RDBMS untuk secara bersamaan menjadwalkan eksekusi Java untuk ribuan pengguna. Meskipun Oracle Database mendukung utas tingkat bahasa Java yang diperlukan oleh JLS dan JCK, menggunakan utas dalam ruang lingkup database tidak akan meningkatkan skalabilitas Anda. Menggunakan skalabilitas tertanam dari database menghilangkan kebutuhan untuk menulis server java multithreaded. Anda harus menggunakan fasilitas database untuk menjadwalkan pengguna dengan menulis aplikasi java tunggal. Basis data akan mengurus penjadwalan antara setiap aplikasi; Dengan demikian, Anda mencapai skalabilitas tanpa harus mengelola utas. Anda masih dapat menulis aplikasi Java multithreaded, tetapi beberapa utas Java tidak akan meningkatkan kinerja server Anda.
Salah satu kesulitan multithreading memaksakan pada Java adalah interaksi utas dan manajemen penyimpanan otomatis, atau pengumpulan sampah. Kolektor sampah yang dieksekusi dalam JVM generik tidak memiliki pengetahuan tentang utas bahasa Java yang dieksekusi atau bagaimana sistem operasi yang mendasarinya menjadwalkan mereka.
- Model Database Non-Oracle-Pengguna tunggal peta ke utas tingkat bahasa Java tunggal; Kolektor sampah tunggal yang sama mengelola semua sampah dari semua pengguna. Teknik yang berbeda biasanya berurusan dengan alokasi dan kumpulan objek yang beragam kehidupan dan ukuran. Hasil dalam aplikasi yang sangat multithreaded, paling tidak, tergantung pada dukungan sistem operasi untuk utas asli, yang dapat tidak dapat diandalkan dan terbatas skalabilitas. Tingkat skalabilitas yang tinggi untuk implementasi tersebut belum ditunjukkan secara meyakinkan.
- Model oraclejvm-bahkan ketika ribuan pengguna terhubung ke server dan menjalankan kode java yang sama, setiap pengguna mengalaminya seolah-olah dia menjalankan kode java sendiri di mesin virtual java sendirinya sendiri. Tanggung jawab OracleJVM adalah memanfaatkan proses dan utas sistem operasi, menggunakan pendekatan yang dapat diskalakan dari Oracle RDBMS. Sebagai hasil dari pendekatan ini, pengumpul sampah JVM lebih dapat diandalkan dan efisien karena tidak pernah mengumpulkan sampah dari lebih dari satu pengguna kapan saja. Lihat “Threading in Oracle Database” untuk informasi lebih lanjut tentang implementasi model utas di OracleJVM.
Manajemen penyimpanan otomatis dengan pengumpulan sampah
Koleksi Sampah adalah fitur utama dari manajemen penyimpanan otomatis Java, menghilangkan kebutuhan pengembang Java untuk mengalokasikan dan memori gratis secara eksplisit. Akibatnya, ini menghilangkan sumber besar kebocoran memori yang biasanya mengganggu program C dan C ++. Ada harga untuk manfaat seperti itu: pengumpulan sampah berkontribusi pada overhead kecepatan eksekusi program dan jejak kaki. Meskipun banyak makalah telah ditulis kualifikasi dan mengukur trade-off, biaya keseluruhan masuk akal, mengingat alternatifnya.
Pengumpulan sampah memaksakan tantangan bagi pengembang JVM yang ingin memasok platform Java yang sangat terukur dan cepat. OracleJVM memenuhi tantangan ini dengan cara -cara berikut:
- OracleJVM menggunakan fasilitas penjadwalan database Oracle, yang dapat mengelola banyak pengguna secara efisien.
- Koleksi sampah dilakukan secara konsisten untuk banyak pengguna karena pengumpulan sampah difokuskan pada satu pengguna dalam satu sesi tunggal. OracleJVM menikmati keuntungan besar karena beban dan kompleksitas pekerjaan manajer memori tidak meningkat karena jumlah pengguna meningkat. Manajer memori melakukan alokasi dan kumpulan objek dalam satu sesi-yang biasanya diterjemahkan ke aktivitas satu pengguna.
- OracleJVM menggunakan berbagai teknik pengumpulan sampah tergantung pada jenis memori yang digunakan. Teknik -teknik ini memberikan efisiensi tinggi dan overhead yang rendah.
Tapak
Jejak program Java yang dieksekusi dipengaruhi oleh banyak faktor:
- Ukuran program itu sendiri-bagaimana banyak kelas dan metode dan berapa banyak kode yang dikandungnya.
- Kompleksitas program-jumlah perpustakaan kelas inti yang digunakan OracleJVM sebagai program yang dijalankan, sebagai lawan dari program itu sendiri.
- Jumlah keadaan yang digunakan JVM-bagaimana banyak objek yang dialokasikan JVM, seberapa besar mereka, dan berapa banyak yang harus disimpan di seluruh panggilan.
- Kemampuan pengumpul sampah dan manajer memori untuk menangani tuntutan program pelaksanaan, yang seringkali non-deterministik. Kecepatan objek yang dialokasikan dan cara mereka dipegang oleh objek lain mempengaruhi pentingnya faktor ini.
Dari perspektif skalabilitas, kunci untuk mendukung banyak klien bersamaan adalah jejak sesi per pengguna minimum. OracleJVM menjaga jejak sesi per-pengguna seminimal mungkin dengan menempatkan semua data baca hanya untuk pengguna, seperti java bytecodes, dalam memori bersama. Algoritma pengumpulan sampah yang tepat diterapkan terhadap kenangan panggilan dan sesi untuk mempertahankan jejak kecil untuk sesi pengguna. OracleJVM menggunakan tiga jenis algoritma pengumpulan sampah untuk mempertahankan memori sesi pengguna:
- Pemulungan generasi untuk objek berumur pendek
- Koleksi Mark and Lazy Sweep untuk objek yang ada untuk kehidupan satu panggilan
- Menyalin kolektor untuk benda berumur panjang-objek yang hidup di seluruh panggilan dalam suatu sesi
Pertunjukan
Kinerja OracleJVM ditingkatkan dengan mengimplementasikan kompiler asli.
Bagaimana Kompiler Asli Meningkatkan Kinerja
Java mengeksekusi bytecode platform-independen di atas JVM, yang pada gilirannya berinteraksi dengan platform perangkat keras tertentu. Setiap kali Anda menambahkan level dalam perangkat lunak, kinerja Anda terdegradasi. Karena Java membutuhkan melalui perantara untuk menafsirkan bytecode platform-independen, ada tingkat inefisiensi yang ada untuk aplikasi Java yang tidak ada dalam bahasa yang bergantung pada platform, seperti C. Untuk mengatasi masalah ini, beberapa pemasok JVM membuat kompiler asli. Kompiler asli menerjemahkan java bytecode ke dalam kode asli yang bergantung pada platform, yang menghilangkan langkah penerjemah dan meningkatkan kinerja.
Berikut ini menjelaskan dua metode untuk kompilasi asli:
Kompilasi Just-In-Time (JIT)
Kompiler JIT dengan cepat mengkompilasi java bytecode ke kode mesin asli (khusus platform) selama runtime. Ini tidak menghasilkan yang dapat dieksekusi untuk dieksekusi di platform; Sebaliknya, ia menyediakan kode yang bergantung pada platform dari java bytecode yang dieksekusi langsung setelah diterjemahkan. Ini harus digunakan untuk kode java yang sering dijalankan, yang akan dieksekusi dengan kecepatan lebih dekat ke bahasa seperti c.
Kompilasi menerjemahkan java bytecode ke kode C platform-independen sebelum runtime. Kemudian kompiler C standar mengkompilasi kode C ke dalam yang dapat dieksekusi untuk platform target. Pendekatan ini lebih cocok untuk aplikasi Java yang jarang dimodifikasi. Pendekatan ini memanfaatkan teknologi kompilasi spesifik platform yang matang dan efisien yang ditemukan di kompiler C modern.
Oracle Database menggunakan kompilasi sebelumnya untuk memberikan pustaka kelas Java intinya: kode JDBC dalam formulir yang dikompilasi secara asli. Ini berlaku di semua platform yang didukung Oracle, sedangkan pendekatan JIT membutuhkan kode yang bergantung pada tingkat rendah, prosesor untuk ditulis dan dipelihara untuk setiap platform. Anda dapat menggunakan teknologi kompilasi asli ini dengan kode java Anda sendiri.
Seperti yang ditunjukkan Gambar 1-8, kode yang dikompilasi secara asli mengeksekusi hingga sepuluh kali lebih cepat dari kode yang diartikan. Jadi, semakin banyak kode asli yang digunakan program Anda, semakin cepat dieksekusi.
Gambar 1-8 Interpreter versus Accelerator
Lihat “kode yang dikompilasi secara asli” untuk informasi lebih lanjut.
Pemuatan kelas dinamis
Fitur kuat lainnya dari Java adalah pemuatan kelas dinamis. Kelas Loader memuat kelas dari disk (dan menempatkannya di struktur memori khusus JVM yang diperlukan untuk interpretasi) hanya karena digunakan selama eksekusi program. Loader kelas menempatkan kelas di ClassPath dan memuatnya selama eksekusi program. Pendekatan ini, yang bekerja dengan baik untuk applet, menimbulkan masalah berikut di lingkungan server:
Operasi pemuatan kelas menempatkan penalti yang parah pada eksekusi pertama kali. Program sederhana dapat menyebabkan OracleJVM memuat banyak kelas inti untuk mendukung kebutuhannya. Seorang programmer tidak dapat dengan mudah memprediksi atau menentukan jumlah kelas yang dimuat.
Kelas OracleJVM memuat secara dinamis, seperti halnya mesin virtual Java lainnya. Kecepatan pemuatan kelas satu kali yang sama ditemui. Namun, karena kelas dimuat ke dalam memori bersama, tidak ada pengguna lain dari kelas-kelas tersebut yang akan menyebabkan kelas memuat lagi-mereka hanya akan menggunakan kelas yang telah dimuat sebelumnya.
Manfaat pemuatan kelas dinamis adalah mendukung pembaruan program. Misalnya, Anda akan memperbarui kelas di server, dan klien yang mengunduh program dan memuatnya secara dinamis melihat pembaruan setiap kali mereka menggunakan program selanjutnya. Program server cenderung menekankan keandalan. Sebagai pengembang, Anda harus tahu bahwa setiap klien menjalankan konfigurasi program tertentu. Anda tidak ingin klien secara tidak sengaja memuat beberapa kelas yang tidak ingin mereka beban.
Oracle Database memisahkan unggahan dan menyelesaikan operasi dari operasi pemuatan kelas saat runtime. Anda mengunggah kode java yang Anda kembangkan ke server menggunakan utilitas LoadJava. Alih -alih menggunakan ClassPath, Anda menentukan resolver pada waktu instalasi. Resolver analog dengan classpath, tetapi memungkinkan Anda untuk menentukan skema di mana kelas berada. Pemisahan resolusi dari pemuatan kelas ini berarti Anda selalu tahu apa yang dijalankan oleh pengguna program. Lihat Bab 11, “Alat Objek Skema” untuk perincian tentang LoadJava dan Resolvers.
Apa yang berbeda dengan oraclejvm?
Bagian ini membahas beberapa perbedaan penting antara OracleJVM dan JVM klien yang khas.
Metode main ()
Aplikasi Java berbasis klien mendeklarasikan satu metode tingkat atas (main ()) yang mendefinisikan profil aplikasi. Seperti applet, aplikasi berbasis server tidak memiliki “loop dalam.”Sebaliknya, mereka didorong oleh klien yang secara logis independen.
Setiap klien memulai sesi, memanggil modul logika sisi server melalui titik masuk tingkat atas, dan akhirnya mengakhiri sesi. Lingkungan server menyembunyikan pengelolaan sesi, jaringan, dan sumber daya bersama lainnya dari program Java yang di -host.
GUI
Server tidak dapat menyediakan GUI, tetapi dapat menyediakan logika yang mendorongnya. OracleJVM hanya mendukung mode tanpa kepala dari Abstrak Windowing Toolkit (AWT). Semua kelas AWT Java tersedia dalam lingkungan server dan program Anda dapat menggunakan fungsionalitas AWT, selama mereka tidak berusaha untuk mewujudkan GUI di server. Untuk informasi lebih lanjut, lihat “Antarmuka Pengguna di Server” .
IDE
OracleJVM berorientasi pada penyebaran aplikasi Java, bukan pengembangan. Anda dapat menulis dan unit-test aplikasi di IDE favorit Anda, seperti Oracle JDeveloper, lalu menggunakannya untuk dieksekusi dalam RDBMS.
Lihat “Alat Pengembangan” untuk informasi lebih lanjut.
Kompatibilitas biner Java memungkinkan Anda bekerja di IDE apa pun, lalu unggah file kelas java ke server. Anda tidak perlu memindahkan file sumber java Anda ke database. Sebaliknya, Anda dapat menggunakan IDE sisi klien yang kuat untuk mempertahankan aplikasi Java yang digunakan di server.
Komponen utama OracleJVM
Bagian ini secara singkat menjelaskan komponen utama OracleJVM dan beberapa fasilitas yang mereka berikan.
Oracle Database Java Virtual Machine (JVM) adalah lingkungan eksekusi Java 2-Compliant Java yang lengkap. Ini berjalan dalam ruang proses yang sama dan mengatasinya dengan kernel RDBMS, berbagi tumpukan memori dan secara langsung mengakses data relasionalnya. Desain ini mengoptimalkan penggunaan memori dan meningkatkan throughput.
OracleJVM menyediakan lingkungan run-time untuk objek Java. Ini sepenuhnya mendukung struktur data Java, pengiriman metode, penanganan pengecualian, dan utas tingkat bahasa. Ini juga mendukung semua perpustakaan kelas inti Java termasuk Java.Lang, Java.IO, Java.net, java.Matematika, dan Java.util. Gambar 1-9 menunjukkan komponen utamanya.
Gambar 1-9 Komponen Utama OracleJVM
OracleJVM menanamkan namespace Java standar dalam skema RDBMS. Fitur ini memungkinkan program Java mengakses objek Java yang disimpan dalam database Oracle dan server aplikasi di seluruh perusahaan.
Selain itu, OracleJVM terintegrasi dengan ketat dengan arsitektur memori yang dapat diskalakan dan dibagikan dari RDBMS. Program Java menggunakan panggilan panggilan, sesi, dan objek secara efisien tanpa intervensi Anda. Jadi, Anda dapat mengukur objek bisnis Java tingkat menengah OracleJVand, bahkan ketika mereka memiliki status sesi-panjang.
Kolektor sampah dijelaskan dalam “Manajemen Penyimpanan Otomatis dengan Pengumpulan Sampah” . Kompiler asli dibahas dalam “kinerja” . Sisa komponen dijelaskan di bagian berikut:
Selain itu, bagian berikut memberikan gambaran umum dari driver JDBC:
Manajer Perpustakaan
Untuk menyimpan kelas Java dalam database Oracle, Anda menggunakan utilitas baris perintah LoadJava, yang menggunakan SQL membuat pernyataan Java untuk melakukan pekerjaannya. Saat dipanggil oleh Pernyataan Buat Java, Manajer Perpustakaan memuat sumber Java, kelas, atau file sumber daya ke dalam database. Anda tidak pernah mengakses objek skema Java ini secara langsung; Hanya OracleJVM yang menggunakannya.
Penyusun
OracleJVM termasuk Java 2 standar (juga dikenal sebagai JDK 1.2) Kompiler Java. Saat dipanggil oleh pernyataan sumber Java, itu menerjemahkan file sumber java ke dalam arsitektur-netral, instruksi satu-byte yang dikenal sebagai bytecodes. Setiap bytecode terdiri dari opcode yang diikuti oleh operannya. File kelas Java yang dihasilkan, yang sesuai sepenuhnya dengan standar Java, diserahkan ke penerjemah pada waktu lari.
Penerjemah
Untuk menjalankan program Java, OracleJVM mencakup interpreter Java 2 Bytecode standar. Interpreter dan sistem run-time Java yang terkait menjalankan file kelas Java standar. Sistem run-time mendukung metode asli dan panggilan-in/panggilan dari lingkungan host.
Anda juga dapat menyusun kode Anda untuk eksekusi yang lebih cepat. OracleJVM menggunakan versi yang dikompilasi secara asli dari perpustakaan kelas Java dan driver JDBC. Untuk informasi lebih lanjut, lihat “kode yang dikompilasi secara asli” .
Kelas Loader
Menanggapi permintaan dari sistem run-time, loader kelas Java menempatkan, memuat, dan menginisialisasi kelas Java yang disimpan dalam database. Loader kelas membaca kelas, kemudian menghasilkan struktur data yang diperlukan untuk menjalankannya. Data dan metadata yang tidak dapat diubah dimuat ke dalam memori bersama inisialisasi-once. Akibatnya, lebih sedikit memori diperlukan untuk setiap sesi. Loader kelas mencoba untuk menyelesaikan referensi eksternal bila perlu. Juga, ia memanggil kompiler Java secara otomatis ketika file kelas Java harus dikompilasi ulang (dan file sumber tersedia).
Verifier
File kelas Java sepenuhnya portabel dan sesuai dengan format yang terdefinisi dengan baik. Verifier mencegah penggunaan file kelas Java “spoofed” yang tidak disengaja, yang mungkin mengubah aliran program atau melanggar pembatasan akses. Oracle Security dan Java Security bekerja dengan verifier untuk melindungi aplikasi dan data Anda.
Driver internal JDBC sisi server
JDBC adalah set standar kelas Java yang menyediakan akses vendor-independen ke data relasional. Ditentukan oleh Sun Microsystems dan dimodelkan setelah ODBC (Open Database Connectivity) dan X/Open SQL CLI (Antarmuka Level Panggilan), kelas JDBC menyediakan fitur standar seperti koneksi simultan ke beberapa database, manajemen transaksi, kueri sederhana, panggilan untuk prosedur yang tersimpan, dan akses streaming ke data kolom yang panjang kolom panjang yang panjang.
Menggunakan titik masuk tingkat rendah, driver JDBC yang disetel khusus berjalan langsung di dalam RDBMS, sehingga memberikan akses tercepat ke data Oracle dari prosedur tersimpan Java. Driver JDBC internal sisi server memenuhi spesifikasi Sun Microsystems JDBC. Terintegrasi erat dengan RDBMS, mendukung tipe data khusus Oracle, set karakter globalisasi, dan prosedur tersimpan. Selain itu, API JDBC sisi klien dan sisi server adalah sama, yang membuatnya mudah untuk mempartisi aplikasi.
Strategi Aplikasi Java Oracle
Salah satu daya tarik Java adalah di mana -mana dan semakin banyaknya programmer yang mampu mengembangkan aplikasi menggunakannya. Oracle melengkapi pengembang aplikasi perusahaan dengan solusi Java ujung ke ujung untuk membuat, menggunakan, dan mengelola aplikasi Java. Solusi total terdiri dari antarmuka terprogram sisi klien dan sisi server, alat untuk mendukung pengembangan Java, dan mesin virtual Java yang terintegrasi dengan Oracle Database Server. Semua produk ini kompatibel 100 persen dengan standar Java.
Lingkungan Pemrograman Java
Selain OracleJVM, lingkungan pemrograman Java terdiri dari:
- Prosedur tersimpan Java sebagai Java yang setara dan pendamping untuk PL/SQL. Prosedur tersimpan java terintegrasi erat dengan PL/SQL. Anda dapat memanggil prosedur tersimpan Java dari paket PL/SQL; Anda dapat memanggil prosedur PL/SQL dari prosedur tersimpan Java.
- Data SQL dapat diakses melalui JDBC.
- Alat dan skrip yang digunakan dalam membantu dalam pengembangan, pemuatan kelas, dan manajemen kelas.
Untuk membantu Anda memutuskan Java API mana yang akan digunakan, periksa tabel berikut:
Untuk memiliki prosedur Java yang dipanggil dari SQL, seperti pemicu.
Prosedur tersimpan Java
Untuk memohon dinamis, pernyataan SQL yang kompleks dari objek Java.
Prosedur tersimpan Java
Jika Anda seorang programmer PL/SQL yang menjelajahi Java, Anda akan tertarik dengan prosedur tersimpan java. Prosedur tersimpan java adalah program yang Anda tulis di Java untuk dieksekusi di server, persis seperti prosedur tersimpan PL/SQL. Anda memohon secara langsung dengan produk -produk seperti SQL*Plus, atau secara tidak langsung dengan pemicu. Anda dapat mengaksesnya dari oracle net klien-OCI, Pro* atau JDBC. Bab 5, “Mengembangkan Prosedur Tersimpan Java” menjelaskan cara menulis prosedur tersimpan di Java, cara mengaksesnya dari PL/SQL, dan cara mengakses fungsi PL/SQL dari Java.
Selain itu, Anda dapat menggunakan Java untuk mengembangkan program yang kuat secara independen dari PL/SQL. Oracle Database menyediakan implementasi yang sepenuhnya sesuai dengan bahasa pemrograman Java dan JVM.
Integrasi PL/SQL dan fungsionalitas Oracle RDBMS
Anda dapat memohon program PL/SQL yang ada dari Java dan memohon program Java dari PL/SQL. Solusi ini melindungi dan memanfaatkan investasi Anda yang ada sambil membuka keuntungan dan peluang komputasi internet berbasis java.
Oracle menawarkan dua antarmuka pemrograman aplikasi (API) yang berbeda untuk pengembang Java untuk mengakses data SQL-JDBC. Kedua API tersedia di klien dan server, sehingga Anda dapat menggunakan kode yang sama di kedua tempat.
Driver JDBC
JDBC adalah protokol akses basis data yang memungkinkan Anda untuk terhubung ke database dan kemudian menyiapkan dan menjalankan pernyataan SQL terhadap database. Perpustakaan Kelas Java Core hanya menyediakan satu JDBC API. JDBC dirancang, bagaimanapun, untuk memungkinkan vendor memasok driver yang menawarkan spesialisasi yang diperlukan untuk database tertentu. Oracle memberikan tiga driver JDBC yang berbeda.
JDBC Driver Tipis
Anda dapat menggunakan JDBC Thin Driver untuk menulis 100% aplikasi Java murni dan applet yang mengakses data SQL Oracle. JDBC Thin Driver sangat cocok untuk aplikasi dan apel berbasis browser web, karena Anda dapat secara dinamis mengunduhnya dari halaman web seperti applet Java lainnya.
JDBC Oracle Call Interface Driver
Driver JDBC Oracle Call Interface (OCI) mengakses perpustakaan Native Code (yaitu, non-java) khusus Oracle pada klien atau tingkat menengah, memberikan beberapa peningkatan kinerja dibandingkan dengan driver tipis JDBC, dengan biaya ukuran yang jauh lebih besar dan instalasi sisi klien secara signifikan di sisi klien secara signifikan lebih besar dan di sisi klien secara signifikan secara signifikan secara signifikan.
Driver internal sisi server JDBC
Oracle Database menggunakan driver internal sisi server saat kode Java dijalankan di server. Ini memungkinkan aplikasi Java dieksekusi di mesin virtual Java server untuk mengakses data yang ditentukan secara lokal (yaitu, pada mesin yang sama dan dalam proses yang sama) dengan JDBC. Ini memberikan peningkatan kinerja lebih lanjut karena kemampuannya untuk menggunakan perpustakaan Oracle RDBMS yang mendasari secara langsung, tanpa overhead koneksi jaringan intervensi antara kode Java dan data SQL Anda. Dengan mendukung antarmuka java-sql yang sama di server, database Oracle tidak mengharuskan Anda untuk mengerjakan ulang kode saat menggunakannya.
Jpublisher
JPublisher menyediakan alat sederhana dan nyaman untuk membuat program Java yang mengakses tabel database Oracle Relational yang ada. Lihat Panduan Pengguna Oracle Database JPublisher untuk informasi lebih lanjut.
Alat pengembangan
Pengenalan Java ke Oracle Database Server memungkinkan Anda menggunakan beberapa lingkungan pengembangan terintegrasi Java. Kepatuhan Database Oracle terhadap Kompatibilitas Java dan Standar dan Protokol Internet Terbuka Memastikan bahwa Program Java Murni 100% Anda Bekerja Saat Anda Menyebarkannya Di Database Oracle. Oracle memberikan banyak alat atau utilitas, semuanya ditulis di Java, yang membuat pengembangan dan penyebaran aplikasi server Java lebih mudah. Oracle’s JDeveloper memiliki banyak fitur yang dirancang khusus untuk membuat penyebaran prosedur tersimpan java dan perusahaan JavaBeans lebih mudah. Anda dapat mengunduh JDeveloper di situs berikut: http: // otn.peramal.com/software/produk/jdev/konten.html.
Despupport dari J2EE Technologies di Oracle Database
Dengan pengenalan wadah server Aplikasi Oracle untuk J2EE (OC4J)-wadah J2EE yang baru, lebih ringan, lebih mudah digunakan, lebih cepat, dan bersertifikat-oracle mulai despupport dari edisi perusahaan Java 2 (J2EE) dan Corba dari database, mulai dengan Oracle9Saya rilis database 2. Namun, Java VM (OracleJVM) yang tertanam dari database masih ada dan akan terus ditingkatkan untuk menawarkan fitur Java 2 Standard Edition (J2SE), Prosedur Tersimpan Java dan JDBC dalam database.
Per oracle9Saya rilis database 2 (9.2.0), Oracle tidak lagi mendukung teknologi berikut dalam database:
- Tumpukan J2EE, terdiri dari:
- Wadah perusahaan kacang (EJB)
- Wadah JavaServer Pages (JSP)
- Oracle9Saya Mesin Servlet (OSE)
Pelanggan tidak lagi dapat menggunakan Objek Servlets, JSP, EJBS, dan CORBA di database Oracle. Oracle9Saya Rilis Database 1 (9.0.1) akan menjadi rilis database terakhir yang mendukung tumpukan J2EE dan CORBA. Oracle mendorong pelanggan untuk memigrasi aplikasi J2EE yang ada yang berjalan dalam database ke OC4J sekarang.
Jawa
Oracle Java adalah platform bahasa pemrograman dan pengembangan #1. Ini mengurangi biaya, memperpendek jangka waktu pengembangan, mendorong inovasi, dan meningkatkan layanan aplikasi. Dengan jutaan pengembang yang menjalankan lebih dari 60 miliar mesin virtual Java di seluruh dunia, Java terus menjadi platform pengembangan pilihan untuk perusahaan dan pengembang.
Java 20 sekarang tersedia
Rilis berikutnya dalam irama enam bulan, Java 20, meningkatkan kinerja, stabilitas, dan keamanan pengembangan aplikasi Java.
GraAlvm Enterprise Gratis di OCI
Bangun Eksekusi Asli yang membantu aplikasi Java memulai dengan cepat, mengurangi penggunaan memori, dan hemat biaya hosting.
Layanan Manajemen Java
Fitur Advance JMS membantu administrator mendapatkan wawasan tambahan tentang beban kerja Java. Analisis Penggunaan, Kerentanan, dan Dampak dari Pembaruan Roadmap Kriptografi.
Hari Pengembang Java di Oracle DevLive 2023
Tonton Keynote di Level DevLive Up dan Pelajari tentang Peningkatan Rilis Java 20 untuk AppDev, Inovasi Bahasa Modern, dan Dukungan untuk Kerangka Pengembang Java.
Laporan Analis Java
Java dan seni mengemudi transformasi digital
Dapatkan wawasan tentang cara memanfaatkan Java untuk mendukung upaya modernisasi dan transformasi Anda. Pelajari cara mendapatkan hasil maksimal dari open source, cloud asli, dan mendukung kemampuan layanan dalam brief teknis OMDIA ini.
Java: Modernisasi pengembangan untuk aplikasi yang aman dan berbasis cloud
Pelajari bagaimana Java membantu organisasi mempercepat transformasi digital sambil meminimalkan kerentanan untuk saat ini’S KEBUTUHAN APLIKASI.
Top IT Security dan Point Point Points dalam Pengembangan Aplikasi
Keamanan tetap menjadi prioritas terpenting bagi eksekutif TI, menurut laporan terbaru dari 451 penelitian. Baca brief untuk mengetahui masalah keamanan terbaik bagi pengembang dan bagaimana Anda dapat mencapai tujuan keamanan TI dan kepatuhan Anda dengan Java.
ABERDEEN Pengetahuan singkat
Pelajari Mengapa Pemimpin dalam Pengembangan Aplikasi Menggunakan Java Untuk Lebih Efisien Membangun Aplikasi Kelas Dunia Kualitas Tertinggi dan Keamanan Terkuat.