Java sisi server: Buat aplikasi terdistribusi dengan Java dan XML

Extensible Markup Language, atau XML, telah mendapatkan popularitas luas sebagai cara untuk merepresentasikan data dalam format portabel, netral vendor, dan dapat dibaca. Banyak vendor perangkat lunak telah mengumumkan "dukungan untuk XML," biasanya berarti produk mereka akan menghasilkan atau menggunakan data XML.

XML juga dipandang sebagai lingua franca untuk pertukaran data antar perusahaan. Ini memungkinkan perusahaan untuk menyetujui XML Document Type Definitions (DTDs) untuk data yang dipertukarkan. DTD ini tidak bergantung pada skema database yang digunakan oleh perusahaan.

Kelompok standar yang mewakili hampir setiap upaya manusia menyetujui DTD untuk bertukar data. Salah satu contohnya adalah Dewan Telekomunikasi Pers Internasional (lihat Sumberdaya), yang telah mendefinisikan XML DTD yang memungkinkan "informasi berita ditransfer dengan markup dan dengan mudah diubah menjadi format yang dapat diterbitkan secara elektronik." Standar pasar vertikal seperti itu akan memungkinkan beragam aplikasi untuk bertukar data dengan cara yang tidak terduga.

Tapi apa gunanya data portabel dan netral vendor jika Anda tidak membagikan dan memprosesnya? Kemampuan untuk berkomunikasi dan memproses XML antara komputer terdistribusi sangat diinginkan. Aplikasi yang mengkomunikasikan dan memproses XML antar komputer sebenarnya adalah aplikasi terdistribusi.

Artikel ini membahas aplikasi terdistribusi yang ditulis di Java. Saya akan fokus pada komunikasi XML antara kode Java yang berjalan di mesin virtual yang berbeda.

Komunikasi XML

Spesifikasi XML yang ditentukan oleh World Wide Web Consortium, atau W3C (lihat Sumberdaya), mendefinisikan sintaks dan semantik bahasa. Untuk memproses XML, dokumen XML perlu diurai. Sangat disayangkan jika setiap kelas Java yang diperlukan untuk memproses XML harus mengurai dokumen XML, mengingat kerumitan sintaks dan semantik XML. Untuk mengatasi masalah ini, W3C telah mendefinisikan Model Objek Dokumen (DOM) (lihat Sumber). DOM adalah antarmuka pemrogram aplikasi ke data XML. Ini tersedia dari banyak bahasa pemrograman, termasuk Java. Program Java dapat mengakses data XML melalui DOM API. Pengurai XML menghasilkan representasi DOM dari dokumen XML.

Gambar 1 mengilustrasikan model sederhana dari aplikasi terdistribusi Java yang memproses XML. Model tersebut cukup untuk tujuan artikel ini: menjelajahi komunikasi XML. Model mengasumsikan bahwa beberapa data diperoleh dari sumber data seperti database relasional. Beberapa kode Java memproses data dan pada akhirnya menghasilkan representasi DOM. Kode ini direpresentasikan pada Gambar 1 sebagai prosesor.

Kode prosesor meneruskan representasi DOM dari data XML ke pengirim. Pengirim adalah kode Java yang mengkomunikasikan data XML ke penerima. Penerima adalah kode Java yang menerima data XML, menghasilkan representasi DOM dari data, dan meneruskannya ke prosesor lain. Singkatnya, pengirim dan penerima mengabstraksi komunikasi representasi DOM dari data XML.

Pengirim dan penerima tidak diterapkan di Mesin Virtual Java yang sama. Mereka terhubung dengan infrastruktur sistem terdistribusi. Ada beberapa pendekatan untuk mengimplementasikan pengirim dan penerima.

Perhatikan bahwa dalam model pada Gambar 1, pengirim adalah klien penerima. Pengirim meneruskan XML ke penerima. Dalam model lain yang mungkin, penerima adalah klien; itu meminta dokumen dari pengirim. Saya tidak akan menjelajahi model kedua dalam artikel ini karena masalah komunikasi XML serupa.