SISA harus digunakan jika sangat penting bagi Anda untuk meminimalkan coupling antara klien dan server komponen dalam aplikasi terdistribusi.
Ini mungkin terjadi jika server Anda akan digunakan oleh banyak klien berbeda yang tidak dapat Anda kendalikan. Mungkin juga terjadi jika Anda ingin dapat memperbarui server secara teratur tanpa perlu memperbarui perangkat lunak klien.
Saya dapat meyakinkan Anda bahwa mencapai tingkat rendah kopling adalah tidak mudah dilakukan . Sangat penting untuk mengikuti semua kendala REST agar berhasil. Mempertahankan koneksi murni tanpa kewarganegaraan itu sulit. Memilih jenis media yang tepat dan memasukkan data Anda ke dalam format itu rumit. Membuat jenis media Anda sendiri bisa jadi lebih sulit.
Mengadaptasi perilaku server yang kaya ke dalam antarmuka HTTP yang seragam dapat membingungkan dan terkadang tampak terlalu berlebihan dibandingkan dengan pendekatan RPC yang relatif mudah.
Terlepas dari kesulitannya, keuntungannya adalah Anda memiliki layanan yang harus dapat dipahami dengan mudah oleh pengembang klien karena penggunaan protokol HTTP yang konsisten. Layanan harus mudah ditemukan karena hypermedia dan klien harus sangat tahan terhadap perubahan di server .
Manfaat hypermedia dan penghindaran status sesi membuat penyeimbangan beban menjadi sederhana dan pemartisian layanan dapat dilakukan . Kepatuhan yang ketat terhadap aturan HTTP membuat ketersediaan alat seperti debugger dan proxy caching menjadi hal yang luar biasa.
Memperbarui
Tampak bagi saya bahwa REST adalah 'kata terakhir mode' lainnya (atau saya bisa salah total karena saya belum pernah melihat REST dalam latihan).
Saya pikir REST telah menjadi mode karena orang-orang yang mencoba melakukan proyek tipe SOA telah menemukan bahwa menggunakan tumpukan SOAP mereka tidak menyadari manfaat yang dijanjikan. Orang-orang terus kembali ke web sebagai contoh metodologi integrasi sederhana. Sayangnya, menurut saya orang meremehkan jumlah perencanaan dan pandangan ke depan yang digunakan untuk membuat web dan mereka terlalu menyederhanakan apa yang perlu dilakukan untuk memungkinkan jenis penggunaan kembali yang tidak disengaja yang terjadi di web.
Anda mengatakan bahwa Anda belum pernah melihat REST dalam praktiknya, tetapi itu tidak mungkin benar jika Anda pernah menggunakan browser web. Browser web adalah klien REST.
- Mengapa Anda tidak perlu melakukan pembaruan browser saat seseorang mengubah beberapa html di situs web?
- Mengapa saya dapat menambahkan satu set lengkap halaman baru ke situs web dan "klien" masih dapat mengakses halaman baru tersebut tanpa update?
- Mengapa saya tidak perlu memberikan "bahasa-deskripsi-layanan" ke browser web untuk memberi tahu ketika masuk ke http://example.org/images/cat bahwa jenis yang dikembalikan adalah gambar jpeg dan kapan Anda pergi ke
http://example.org/description/cat
jenis kembaliannya adalah text / html?
- Mengapa saya dapat menggunakan browser web untuk mengunjungi situs yang tidak ada saat browser dirilis? Bagaimana klien mengetahui tentang situs ini?
Ini mungkin terdengar seperti pertanyaan yang tidak masuk akal, tetapi jika Anda tahu jawabannya, maka Anda dapat mulai melihat apa itu REST. Lihat StackOverflow untuk manfaat REST lainnya. Saat saya melihat sebuah pertanyaan, saya dapat menandai halaman itu atau mengirim url ke teman dan dia dapat melihat informasi yang sama. Dia tidak perlu menjelajahi situs untuk menemukan pertanyaan itu.
StackOverflow menggunakan berbagai layanan OpenId untuk otentikasi, gravatar.com untuk gambar avatar, google-analytics dan Quantserve untuk informasi analitis. Integrasi multi-perusahaan semacam ini adalah jenis hal yang hanya diimpikan oleh dunia SOAP . Salah satu contoh terbaik adalah fakta bahwa pustaka jQuery yang digunakan untuk menggerakkan UI StackOverflow diambil dari Jaringan Pengiriman Konten Google. Fakta bahwa SO dapat mengarahkan klien (yaitu browser web Anda) untuk mengunduh kode dari situs pihak ketiga untuk meningkatkan kinerja adalah bukti rendahnya hubungan antara klien web dan server.
Ini adalah contoh arsitektur REST yang sedang bekerja.
Sekarang beberapa situs web / aplikasi melanggar aturan REST dan kemudian browser tidak berfungsi seperti yang diharapkan.
- Masalah tombol kembali yang terkenal
disebabkan oleh penggunaan status sesi sisi server.
- Penyeimbangan beban dapat menjadi masalah ketika Anda memiliki status sesi sisi server.
- Aplikasi flash sering kali mencegah URL mengidentifikasi representasi secara khusus.
- Masalah lain yang merusak browser web adalah kesesuaian yang buruk dengan standar jenis media. Kami selalu mendengar tentang bagaimana IE6 perlu dimatikan. Masalahnya adalah standar tidak diikuti dengan benar, atau diabaikan karena alasan apa pun.
- Penggunaan sesi login adalah sumber dari banyak celah keamanan.
REST ada dimana-mana. Ini adalah bagian dari web yang membuatnya berfungsi dengan baik. Jika Anda ingin membuat aplikasi terdistribusi yang dapat berskala seperti web, tahan terhadap perubahan seperti web dan promosikan penggunaan kembali seperti yang telah dilakukan web, kemudian ikuti aturan yang sama seperti yang mereka lakukan saat membuat browser web.