Jini: Teknologi baru untuk dunia jaringan

Sebelumnya 1 2 Halaman 2 Halaman 2 dari 2

Jini dalam konteks

Secara tradisional, sistem operasi dirancang dengan asumsi bahwa komputer akan memiliki prosesor, beberapa memori, dan disk. Saat Anda mem-boot komputer, hal pertama yang dilakukannya adalah mencari disk. Jika tidak menemukan disk, ia tidak dapat berfungsi sebagai komputer. Namun, komputer semakin banyak muncul dalam bentuk yang berbeda: sebagai perangkat tertanam yang memiliki prosesor, beberapa memori, dan koneksi jaringan - tetapi tanpa disk. Hal pertama yang dilakukan ponsel saat boot up, misalnya mencari jaringan telepon. Kalau tidak ketemu jaringan, tidak bisa berfungsi sebagai ponsel. Tren dalam lingkungan perangkat keras ini, dari disk-sentris hingga jaringan-sentris, akan memengaruhi cara kami mengatur perangkat lunak kami - dan di situlah Jini berperan.

Jini adalah upaya untuk memikirkan kembali arsitektur komputer, mengingat semakin pentingnya jaringan dan perkembangan prosesor di perangkat yang tidak memiliki drive disk. Perangkat ini, yang akan datang dari banyak vendor berbeda, perlu berinteraksi melalui jaringan. Jaringan itu sendiri akan sangat dinamis - perangkat dan layanan akan ditambahkan dan dihapus secara teratur. Jini menyediakan mekanisme untuk memungkinkan penambahan, penghapusan, dan penemuan perangkat dan layanan di jaringan dengan lancar. Selain itu, Jini menyediakan model pemrograman yang memudahkan pemrogram untuk membuat perangkat mereka berbicara satu sama lain.

Membangun di atas Java, serialisasi objek, dan RMI, yang memungkinkan objek bergerak di sekitar jaringan dari mesin virtual ke mesin virtual, Jini mencoba memperluas manfaat pemrograman berorientasi objek ke jaringan. Alih-alih mewajibkan vendor perangkat untuk menyetujui protokol jaringan tempat perangkat mereka dapat berinteraksi, Jini mengaktifkan perangkat untuk berbicara satu sama lain melalui antarmuka ke objek.

Apa Jini?

Jini adalah sekumpulan API dan protokol jaringan yang dapat membantu Anda membangun dan menyebarkan sistem terdistribusi yang diatur sebagai federasi layanan. Sebuah layanan bisa apa saja yang duduk di jaringan dan siap untuk melakukan fungsi yang berguna. Perangkat keras, perangkat lunak, saluran komunikasi - bahkan pengguna manusia itu sendiri - dapat menjadi layanan. Disk drive berkemampuan Jini, misalnya, dapat menawarkan layanan "penyimpanan". Printer berkemampuan Jini dapat menawarkan layanan "pencetakan". Jadi, federasi layanan adalah sekumpulan layanan, yang saat ini tersedia di jaringan, yang dapat disatukan oleh klien (artinya program, layanan, atau pengguna) untuk membantunya mencapai beberapa tujuan.

Untuk melakukan tugas, klien meminta bantuan layanan. Misalnya, program klien mungkin mengunggah gambar dari layanan penyimpanan gambar di kamera digital, mengunduh gambar ke layanan penyimpanan persisten yang ditawarkan oleh drive disk, dan mengirim halaman versi gambar berukuran thumbnail ke layanan pencetakan. printer warna. Dalam contoh ini, program klien membangun sistem terdistribusi yang terdiri dari dirinya sendiri, layanan penyimpanan gambar, layanan penyimpanan persisten, dan layanan pencetakan warna. Klien dan layanan dari sistem terdistribusi ini bekerja sama untuk melakukan tugas: memindahkan dan menyimpan gambar dari kamera digital dan mencetak halaman thumbnail.

Ide di balik kata federasididasarkan pada pandangan Jini tentang jaringan - tidak ada otoritas pengendali pusat. Karena tidak ada satu layanan yang bertanggung jawab, kumpulan semua layanan yang tersedia di jaringan membentuk federasi - grup yang terdiri dari rekan yang setara. Alih-alih otoritas pusat, infrastruktur runtime Jini hanya menyediakan cara bagi klien dan layanan untuk menemukan satu sama lain (melalui layanan pencarian, yang menyimpan direktori layanan yang saat ini tersedia). Setelah layanan menemukan satu sama lain, mereka sendiri. Klien dan layanan terdaftarnya melakukan tugas mereka secara independen dari infrastruktur runtime Jini. Jika layanan pencarian Jini lumpuh, semua sistem terdistribusi yang disatukan melalui layanan pencarian sebelum macet dapat melanjutkan pekerjaannya.Jini bahkan menyertakan protokol jaringan yang dapat digunakan klien untuk menemukan layanan jika tidak ada layanan pencarian.

Bagaimana Jini bekerja

Jini mendefinisikan infrastruktur runtime yang berada di jaringan dan menyediakan mekanisme yang memungkinkan Anda untuk menambah, menghapus, mencari, dan mengakses layanan. Infrastruktur runtime berada di jaringan di tiga tempat: di layanan pencarian yang ada di jaringan; di penyedia layanan (seperti perangkat yang mendukung Jini); dan pada klien. Layanan pencarian adalah mekanisme pengorganisasian sentral untuk sistem berbasis Jini. Ketika layanan baru tersedia di jaringan, mereka mendaftarkan diri ke layanan pencarian. Ketika klien ingin mencari layanan untuk membantu beberapa tugas, mereka berkonsultasi dengan layanan pencarian.

Infrastruktur runtime menggunakan satu protokol tingkat jaringan, yang disebut penemuan , dan dua protokol tingkat objek, yang disebut penggabungan dan pencarian. Penemuan memungkinkan klien dan layanan untuk menemukan layanan pencarian. Gabung memungkinkan layanan untuk mendaftarkan dirinya sendiri dalam layanan pencarian. Pencarian memungkinkan klien untuk meminta layanan pencarian untuk layanan yang dapat membantu klien mencapai tujuannya.

Proses penemuan

Penemuan bekerja seperti ini: Bayangkan Anda memiliki disk drive berkemampuan Jini yang menawarkan layanan penyimpanan persisten. Segera setelah Anda menghubungkan drive ke jaringan, itu menyiarkan pengumuman kehadiran dengan menjatuhkan paket multicast ke port yang terkenal. Termasuk dalam pengumuman kehadiran adalah alamat IP dan nomor port di mana disk drive dapat dihubungi oleh layanan pencarian.

Layanan pencarian memantau port terkenal untuk paket pengumuman kehadiran. Ketika layanan pencarian menerima pengumuman kehadiran, itu membuka dan memeriksa paket. Paket berisi informasi yang memungkinkan layanan pencarian untuk menentukan apakah harus menghubungi pengirim paket atau tidak. Jika demikian, ia menghubungi pengirim secara langsung dengan membuat koneksi TCP ke alamat IP dan nomor port yang diekstrak dari paket. Menggunakan RMI, layanan pencarian mengirimkan objek, disebut pendaftar layanan,melintasi jaringan ke pembuat paket. Tujuan objek registrar layanan adalah untuk memfasilitasi komunikasi lebih lanjut dengan layanan pencarian. Dengan memanggil metode pada objek ini, pengirim paket pengumuman dapat melakukan penggabungan dan pencarian pada layanan pencarian. Dalam kasus drive disk, layanan pencarian akan membuat sambungan TCP ke drive disk dan mengirimkannya objek registrar layanan, yang kemudian akan digunakan oleh drive disk untuk mendaftarkan layanan penyimpanan persistennya melalui proses penggabungan.

Proses bergabung

Setelah penyedia layanan memiliki objek registrar layanan, produk akhir penemuan, ia siap untuk bergabung - untuk menjadi bagian dari federasi layanan yang terdaftar di layanan pencarian. Untuk melakukan penggabungan, penyedia layanan memanggil register()metode pada objek registrar layanan, meneruskan sebagai parameter objek yang disebut item layanan, kumpulan objek yang mendeskripsikan layanan. The register()Metode mengirimkan salinan item layanan sampai ke layanan pencarian, di mana item layanan disimpan. Setelah ini selesai, penyedia layanan telah menyelesaikan proses bergabung: layanannya telah terdaftar di layanan pencarian.

Item layanan adalah wadah untuk beberapa objek, termasuk objek yang disebut objek layanan, yang dapat digunakan klien untuk berinteraksi dengan layanan. Item layanan juga bisa menyertakan sejumlah atribut, yang bisa berupa objek apa saja. Beberapa atribut potensial adalah ikon, kelas yang menyediakan GUI untuk layanan, dan objek yang memberikan lebih banyak informasi tentang layanan.

Objek layanan biasanya menerapkan satu atau beberapa antarmuka yang digunakan klien untuk berinteraksi dengan layanan. Misalnya, layanan pencarian adalah layanan Jini, dan objek layanannya adalah pencatat layanan. The register()metode dipanggil oleh penyedia layanan selama bergabung dinyatakan dalam ServiceRegistrarantarmuka, yang benda semua registrar layanan menerapkan. Klien dan penyedia layanan berbicara dengan layanan pencarian melalui objek registrar layanan dengan memanggil metode yang dideklarasikan di ServiceRegistrarantarmuka. Demikian pula, disk drive akan menyediakan objek layanan yang menerapkan beberapa antarmuka layanan penyimpanan terkenal. Klien akan mencari dan berinteraksi dengan disk drive melalui antarmuka layanan penyimpanan ini.

Proses pencarian

Setelah layanan terdaftar dengan layanan pencarian melalui proses bergabung, layanan tersebut tersedia untuk digunakan oleh klien yang meminta layanan pencarian tersebut. Untuk membangun sistem layanan terdistribusi yang akan bekerja sama untuk melakukan beberapa tugas, klien harus mencari dan meminta bantuan layanan individu. Untuk menemukan layanan, klien meminta layanan pencarian melalui proses yang disebut pencarian.

Untuk melakukan pencarian, klien memanggil lookup()metode pada objek registrar layanan. (Seorang klien, seperti penyedia layanan, mendapat registrar layanan melalui proses penemuan, seperti yang dijelaskan sebelumnya dalam artikel ini.) Klien melewati sebagai argumen untuk lookup()sebuah template yang layanan, sebuah objek yang berfungsi sebagai kriteria pencarian untuk query. Template layanan dapat menyertakan referensi ke larik Classobjek. ClassObjek ini menunjukkan ke layanan pencarian tipe Java (atau tipe) dari objek layanan yang diinginkan oleh klien. Template layanan juga dapat menyertakan ID layanan, yang secara unik mengidentifikasi layanan, dan atribut, yang harus sama persis dengan atribut yang diunggah oleh penyedia layanan dalam item layanan. Template layanan juga dapat berisi karakter pengganti untuk salah satu bidang ini. Karakter pengganti di bidang ID layanan, misalnya, akan cocok dengan ID layanan apa pun. The lookup()Metode mengirimkan layanan template untuk layanan pencarian, yang melakukan query dan mengirimkan kembali nol untuk banyak objek layanan yang cocok. Klien mendapatkan referensi ke objek layanan yang cocok sebagai nilai kembalian lookup()metode.

Dalam kasus umum, klien mencari layanan menurut jenis Java, biasanya antarmuka. Misalnya, jika klien perlu menggunakan printer, itu akan membuat template layanan yang menyertakan Classobjek untuk antarmuka terkenal ke layanan printer. Semua layanan printer akan menerapkan antarmuka terkenal ini. Layanan pencarian akan mengembalikan objek layanan (atau objek) yang mengimplementasikan antarmuka ini. Atribut dapat disertakan dalam template layanan untuk mempersempit jumlah kecocokan untuk pencarian berbasis tipe tersebut. Klien akan menggunakan layanan printer dengan menjalankan metode objek layanan yang dideklarasikan di antarmuka layanan printer yang terkenal.

Pemisahan antarmuka dan implementasi

Arsitektur Jini membawa pemrograman berorientasi objek ke jaringan dengan mengaktifkan layanan jaringan untuk memanfaatkan salah satu dasar pemrograman berorientasi objek: pemisahan antarmuka dan implementasi. Misalnya, objek layanan dapat memberi klien akses ke layanan dengan berbagai cara. Objek sebenarnya dapat mewakili seluruh layanan, yang diunduh ke klien selama pencarian dan kemudian dijalankan secara lokal. Alternatifnya, objek layanan hanya dapat berfungsi sebagai proxy ke server jauh. Ketika klien memanggil metode pada objek layanan, ia mengirimkan permintaan melalui jaringan ke server, yang melakukan pekerjaan sebenarnya. Objek layanan lokal dan server jarak jauh masing-masing dapat melakukan sebagian dari pekerjaan tersebut.

Salah satu konsekuensi penting dari arsitektur Jini adalah bahwa protokol jaringan yang digunakan untuk berkomunikasi antara objek layanan proxy dan server jarak jauh tidak perlu diketahui oleh klien. Seperti yang diilustrasikan pada gambar di bawah ini, protokol jaringan adalah bagian dari implementasi layanan. Protokol ini adalah masalah pribadi yang diputuskan oleh pengembang layanan. Klien dapat berkomunikasi dengan layanan melalui protokol pribadi ini karena layanan memasukkan beberapa kodenya sendiri (objek layanan) ke dalam ruang alamat klien. Objek layanan yang diinjeksi dapat berkomunikasi dengan layanan melalui RMI, CORBA, DCOM, beberapa protokol buatan rumah yang dibangun di atas soket dan aliran, atau apa pun. Klien tidak perlu peduli dengan protokol jaringan,karena dapat berbicara dengan antarmuka terkenal yang diimplementasikan oleh objek layanan. Objek layanan menangani semua komunikasi yang diperlukan di jaringan.

Implementasi yang berbeda dari antarmuka layanan yang sama dapat menggunakan pendekatan implementasi yang sangat berbeda dan protokol jaringan yang sangat berbeda. Sebuah layanan dapat menggunakan perangkat keras khusus untuk memenuhi permintaan klien, atau dapat melakukan semua pekerjaannya dalam perangkat lunak. Faktanya, pendekatan implementasi yang diambil oleh satu layanan dapat berkembang seiring waktu. Klien dapat yakin bahwa ia memiliki objek layanan yang memahami implementasi layanan saat ini, karena klien menerima objek layanan (melalui layanan pencarian) dari penyedia layanan itu sendiri. Bagi klien, layanan tampak seperti antarmuka yang terkenal, terlepas dari bagaimana layanan tersebut diterapkan.

Kesimpulan

Seperti yang telah kita lihat di kolom pengantar ini, Jini mencoba menaikkan level abstraksi untuk pemrograman sistem terdistribusi, dari level protokol jaringan ke level antarmuka objek. Dalam perkembangan yang muncul dari perangkat tertanam yang terhubung ke jaringan, banyak bagian dari sistem terdistribusi mungkin berasal dari vendor yang berbeda. Jini membuat vendor perangkat tidak perlu menyetujui protokol tingkat jaringan yang memungkinkan perangkat mereka berinteraksi. Sebaliknya, vendor harus menyetujui antarmuka Java yang dapat digunakan perangkat mereka untuk berinteraksi. Proses penemuan, penggabungan, dan pencarian, yang disediakan oleh infrastruktur runtime Jini, akan memungkinkan perangkat untuk menemukan satu sama lain di jaringan. Begitu mereka menemukan satu sama lain, perangkat akan dapat berkomunikasi satu sama lain melalui antarmuka Java.

Bulan depan

Meskipun kolom ini akan berfokus terutama pada bagaimana menyelesaikan masalah pemrograman tertentu menggunakan Jini, seperti menambahkan GUI ke layanan atau membuat layanan dapat dikelola, bulan depan saya akan membahas masalah dan prospek dunia nyata Jini.

Membahas Jini

Untuk membahas materi yang disajikan dalam artikel ini, kunjungi: //www.artima.com/jini/jf/intro/index.html

Bill Venners telah menulis perangkat lunak secara profesional selama 14 tahun. Berbasis di Silicon Valley, dia menyediakan layanan konsultasi dan pelatihan perangkat lunak serta mengelola situs Web untuk pengembang Java dan Jini, artima.com. Dia adalah penulis buku: Inside the Java Virtual Machine, diterbitkan oleh McGraw-Hill.

Pelajari lebih lanjut tentang topik ini

  • Kunjungi Komunitas Jini untuk informasi tentang proses di mana antarmuka terkenal akan didefinisikan

    //www.jini.org

  • Halaman unduhan untuk rilis Jini saat ini (di Java Developer Connection)

    //developer.java.sun.com/developer/products/jini

  • Halaman unduhan untuk Rilis FCS JDK 1.2, tempat rilis Jini saat ini berjalan

    //java.sun.com/products/jdk/1.2/

  • Tutorial Jini online

    //pandonia.canberra.edu.au/java/jini/tutorial/Jini.xml

  • Catatan kuliah online untuk mata kuliah RMI dan Jini

    //www.eli.sdsu.edu/courses/spring99/cs696/notes/index.html

  • "Revolusi Jaringan," Clyde Higaki dan Bill Venners (Situs Teknologi Jini Sun, 1999). Penulis Clyde Higaki dan Bill Venners menawarkan sejumlah skenario untuk menggambarkan bagaimana Jini dapat digunakan di dunia nyata

    //java.sun.com/features/1999/01/jini_scenario.html

  • Tautan ke sumber daya Jini

    //www.artima.com/jini/resources/index.html

  • Halaman utama Jini di Sun

    //java.sun.com/products/jini/

  • Komunitas Jini, situs sentral untuk interaksi di antara penandatangan Lisensi Sumber Komunitas Jini Sun.

    //www.jini.org

  • Halaman unduh untuk semua spesifikasi Jini

    //java.sun.com/products/jini/specs/

  • Arsip milis JINI-USERS. Untuk berlangganan milis JINI-USERS, kirim email ke [email protected]. Di badan pesan, ketiksubscribe jini-users

    //archives.java.sun.com/archives/jini-users.html

  • FAQ Jini untuk milis JINI-USERS

    //www.artima.com/jini/faq.html

Kisah ini, "Jini: Teknologi baru untuk dunia jaringan" awalnya diterbitkan oleh JavaWorld.