Panduan Pemula Untuk XRX – Berikut ini adalah Panduan Pemula untuk membuat aplikasi XRX baru dengan server aplikasi eXist. Ini ditujukan untuk orang-orang yang baru mengenal eXist dan tertarik untuk membangun aplikasi web pertama mereka.
Panduan Pemula Untuk XRX
zorba-xquery – Panduan ini menunjukkan kode minimal yang diperlukan untuk membuat aplikasi yang melakukan operasi “CRUDS”. Operasi ini adalah: C reate , Read (atau view), Update , D elete dan Stelinga. Membuat aplikasi XRX pertama Anda bisa jadi agak rumit, karena ada beberapa struktur yang perlu “dihubungkan” dengan benar agar komponen CRUDS berfungsi dengan benar.
Baca Juga : Balisage Paper: Pola Desain XQuery
Contoh ini mencoba menggunakan kode sesedikit mungkin namun masih mencakup banyak komponen utama dari aplikasi web XRX yang berfungsi penuh.
Audiens yang dituju
Membuat aplikasi web baru dari awal adalah keterampilan inti yang diperlukan untuk memahami kekuatan arsitektur aplikasi web XRX. Pengalaman kami telah menunjukkan bahwa begitu pengguna mendapatkan pemahaman tentang bagaimana aplikasi XRX dibangun, mereka dapat dengan cepat menjadi produktif dalam membangun aplikasi web baru. Mereka juga memiliki pemahaman yang jauh lebih baik tentang bagian kompleks dari aplikasi XRX dan mengapa bagian ini biasanya diotomatisasi dalam kerangka kerja XRX.
Dokumen ini dirancang untuk pengguna eXist-db baru yang ingin membuat aplikasi XRX pertama mereka. Untuk proses ini, kami berasumsi bahwa Anda memiliki pemahaman dasar tentang XML dan memahami konsep seperti elemen XML dan ekspresi XPath. Pengguna juga harus agak akrab dengan markup HTML yang sangat dasar, termasuk struktur file XHTML dan penggunaan daftar HTML dan tabel HTML. Kami juga akan menjelaskan bagaimana XQuery digunakan untuk membuat daftar item dan melihat item individual. Pengguna harus meninjau struktur dasar ekspresi XQuery FLOWR (for, let, order by, where, dan return) dan sintaks dasar XQuery.
Harap dicatat bahwa ada beberapa alat GUI drag-and-drop yang mudah digunakan yang tersedia yang dapat membuat XForms, dan ada sistem yang juga dapat secara otomatis membuat aplikasi XRX yang berfungsi penuh langsung dari Skema XML. Tetapi menggunakan alat dan kerangka kerja ini menyembunyikan sebagian besar cara kerja aplikasi XRX. Jadi tutorial ini untuk mereka yang ingin memiliki pemahaman yang jelas tentang cara kerja sistem XRX.
Istilah dan Konsep yang Digunakan
XRX adalah nama arsitektur aplikasi web yang kami perkenalkan dalam panduan ini. Istilah XRX berasal dari kombinasi XForms, REST, dan XQuery. XForms digunakan di klien (browser web), REST adalah antarmuka antara klien dan server, dan XQuery adalah bahasa server. Dua keuntungan paling signifikan dari XRX dibandingkan arsitektur lain adalah: (1) tidak mengharuskan pengguna untuk menerjemahkan data ke objek Java atau .Net, dan (2) tidak mengharuskan pengguna untuk “menghancurkan” dokumen ke dalam baris relasional. basis data.
XForm adalah standar W3C yang terdiri dari sekitar 25 tag XML yang digunakan untuk mendefinisikan struktur web. XForms jauh lebih maju daripada formulir HTML tradisional, tetapi dapat tampak menakutkan bagi pengguna pertama kali. Namun, sebagian besar bentuk sederhana hanya memerlukan beberapa jenis kontrol, dan ini dapat dipelajari dengan cepat. XForms mengikat kontrol antarmuka pengguna ke setiap elemen daun dalam instance XML. XForms menyimpan data dalam elemen model dalam tag HTML HEAD dan kemudian mengikat elemen daun dalam model ke kontrol input web.
Permintaan X adalah bahasa query standar W3C untuk memilih dan mengubah struktur XML. Jika Anda tidak memiliki pengalaman pemrograman, XQuery tidak sulit untuk diambil. Jika Anda memiliki pengalaman pemrograman, XQuery sedikit berbeda dari bahasa lain yang mungkin pernah Anda gunakan sebelumnya.
Ini adalah bahasa pemrograman “fungsional” yang membuatnya sangat mudah untuk membuat program sisi server yang kuat — program yang tidak memiliki banyak “efek samping” dari bahasa lain. Ini mirip dengan bahasa SQL dalam beberapa hal, tetapi secara khusus dirancang untuk struktur XML. Dipasangkan dengan database XML seperti eXist, XQuery adalah bahasa yang ideal untuk membuat aplikasi web. ada’
Catatan untuk Pengguna XQuery Baru . Ada beberapa hal yang sangat berbeda di XQuery yang harus Anda ketahui. Secara umum, semua variabel XQuery tidak dapat diubah , artinya variabel tersebut dirancang untuk disetel sekali tetapi tidak pernah diubah. Jadi fungsi seperti let $x := $x + 1 di dalam loop tidak akan bertambah seperti dalam bahasa prosedural. Ada juga batasan tentang apa yang dapat dilakukan di dalam pernyataan FLOWR. Kami akan mengilustrasikannya dalam contoh di Panduan Pemula di masa mendatang.
ISTIRAHAT adalah jantung dari arsitektur World Wide Web. Kami menggunakan pendekatan “RESTful” untuk menyampaikan informasi di aplikasi XRX kami hanya dengan menempatkan parameter di akhir URL. Misalnya, untuk meneruskan kata kunci kueri ke layanan pencarian aplikasi XRX kami, formulir kami menambahkan parameter q=myword ke URL: search.xq?q=myword. Jika Anda pernah menggunakan arsitektur SOAP, REST adalah angin segar. Tidak diperlukan alat pengujian antarmuka SOAP yang rumit. Yang Anda butuhkan untuk menguji layanan web Anda adalah browser web. M
Beberapa istilah dan konsep tambahan sangat membantu dalam memahami pendekatan XRX:
WebDAV adalah protokol untuk mentransfer file, dan kami menggunakan antarmuka WebDAV eXist untuk memindahkan file ke dan dari eXist dan untuk membuat daftar file dalam koleksi eXist. Jika Anda ingin menambahkan folder ke eXist, Anda dapat melakukannya melalui antarmuka WebDAV. Saat Anda menggunakan oXygen atau editor lain, Anda juga akan menggunakan antarmuka WebDAV.
Binding Tampilan Model adalah istilah yang kami gunakan untuk menggambarkan bagaimana elemen antarmuka pengguna (kontrol) dalam formulir dikaitkan dengan elemen tingkat daun dalam model XForms. Ini mirip dengan arsitektur Model-View-Controller (MVC) di sistem lain, tetapi dalam kasus kontrol acara XForms adalah bagian dari tampilan.
Dengan menggunakan pernyataan XPath dalam atribut ref untuk kontrol antarmuka pengguna, browser membuat grafik ketergantungan untuk menjaga model dan tampilan tetap sinkron. Ini membuat pengembangan formulir menjadi lebih mudah karena pengembang formulir tidak perlu memindahkan data secara manual antara model dan tampilan.
Konvensi tentang Konfigurasi adalah praktik umum di antara kerangka kerja aplikasi web modern seperti XRX dalam menggunakan konvensi seperti koleksi standar dan nama file, untuk mengurangi jumlah konfigurasi dan dengan demikian mengurangi kerumitan dan waktu yang diperlukan untuk membuat prototipe dan menyelesaikan aplikasi.
Tentu saja, pengguna memiliki kemampuan untuk mengubah konvensi ini, tetapi mereka kemudian bertanggung jawab untuk mempertahankan adaptasi mereka sendiri atau kerangka kerja yang terpisah.
Konvensi Pengumpulan dan File
Konvensi pertama aplikasi XRX melibatkan pengumpulan data dan file yang akan menyusun aplikasi kita. Meskipun Anda tidak harus menggunakan konvensi koleksi yang digunakan dalam contoh ini, Anda akan menemukan bahwa kerangka kerja yang menggunakan konvensi ini akan jauh lebih mudah untuk dibangun dan dipelihara.
Berikut adalah standar yang sangat kami sarankan untuk Anda gunakan untuk aplikasi pertama Anda:
Aplikasi Semua aplikasi XRX harus dikelompokkan dalam satu koleksi. Misalnya /db/apps atau /db/org/mycompany/apps . Lokasi yang tepat dari kumpulan aplikasi di database tidak relevan, tetapi semua aplikasi harus disimpan bersama dalam kumpulan yang disebut aplikasi.
Aplikasi Setiap aplikasi XRX harus dikelompokkan dalam koleksi. Nama koleksi ini harus mencerminkan fungsi aplikasi. Misalnya, aplikasi istilah bisnis kami mungkin disimpan di koleksi /db/apps/terms . Konvensinya adalah menggunakan bentuk jamak (“istilah” daripada “istilah”) untuk jenis konten utama yang disimpan dalam aplikasi.
Data Setiap aplikasi XRX harus menyimpan datanya dalam kumpulan data terpisah. Misalnya, aplikasi manajer istilah kami akan menyimpan semua data di /db/apps/terms/data. Dalam contoh ini, istilah pertama akan disimpan dalam file 1.xml dan yang kedua dalam file 2.xml , dll. Ketika pengguna menyimpan istilah baru, kita dapat menambahkan penghitung untuk menambahkan istilah baru.
Tampilan Setiap aplikasi XRX harus menyimpan tampilan data hanya-baca dalam kumpulan tampilan . Dalam contoh kita, pengelola istilah akan menyimpan tampilan data hanya-baca dalam koleksi /db/term/apps/terms/views . Perhatikan bahwa tampilan adalah semua fungsi yang mengubah tetapi tidak mengubah data XML asli.
Koleksi tampilan biasanya terlihat oleh semua pengguna yang memiliki akses baca ke data. Tampilan tidak perlu khawatir tentang mengunci catatan untuk mencegah pembaruan yang hilang. Alat yang mengubah atau mengedit data dapat disimpan di koleksi lain seperti edit. Hal ini memungkinkan sistem kontrol akses untuk membatasi siapa yang mengubah atau menghapus data.
Edit Setiap aplikasi XRX harus menyimpan fungsi editnya dalam kumpulan yang disebut edit. Untuk aplikasi manajer istilah kami, ini adalah /db/apps/term/edit . Fungsi edit termasuk menyimpan istilah baru, memperbarui istilah, dan menghapus istilah. Dengan mengelompokkan semua fungsi edit bersama-sama, mudah untuk menolak akses ke pengguna yang tidak memiliki izin untuk mengubah item dan untuk membuat fungsi logging yang konsisten untuk jejak audit.
Pencarian Setiap aplikasi XRX harus menyimpan fungsi pencariannya dalam kumpulan yang disebut pencarian . Untuk aplikasi manajer istilah kami, ini adalah /db/apps/term/search . Ada dua fungsi yang disimpan di sini. Formulir pencarian HTML sederhana (search.html) dan pencarian RESTful (service.xq).
Aplikasi tingkat lanjut terkadang menggabungkan fungsi-fungsi ini menjadi satu XQuery yang menghasilkan HTML. (Selain dua fungsi pencarian ini, file konfigurasi tambahan harus disimpan di /db/system/config/db/apps/terms/ kumpulan data yang menjelaskan bagaimana file diindeks untuk pencarian.)
AppInfo Setiap aplikasi XRX harus menyimpan informasi yang berkaitan dengan aplikasi dalam file XML dalam kumpulan aplikasi utama. Menurut konvensi, file ini disebut file app-info.xml. Informasi seperti nama aplikasi, deskripsi, penulis, versi, lisensi, dependensi, dll. harus disimpan dalam file ini. Tutorial ini tidak akan membahas struktur file ini, tetapi Anda mungkin melihatnya di banyak contoh program. Ini akan dibahas dalam Panduan Pemula XRX lainnya.
Anda selalu bebas untuk mengubah nama koleksi atau kueri, tetapi seperti yang disebutkan di atas, Anda harus bertanggung jawab atas kerangka kerja Anda sendiri dan Anda mungkin kehilangan beberapa manfaat menggunakan konvensi umum. Alasan menggunakan nama file generik seperti list-items.xq alih-alih nama file yang mencerminkan data, seperti list-terms.xq , mungkin tidak jelas bagi Anda pada awalnya, tetapi seperti yang akan Anda lihat nanti, ini lebih konvensi penamaan file umum memiliki manfaat ketika banyak aplikasi sedang dikelola.