Jawaban:
Menambahkan lapisan layanan web memberi Anda kesempatan untuk membuat klien Anda lebih ringan, baik dalam hal daya CPU yang diperlukan dan bandwidth yang digunakan selama pemrosesan. Kedua faktor ini sangat penting bagi pengguna akhir:
Dengan memperkenalkan lapisan aplikasi web, Anda memindahkan sebagian besar pemrosesan dari perangkat genggam daya rendah, bandwidth rendah, memori rendah ke server, bandwidth tinggi daya tinggi terpasang, server yang memiliki lebih banyak memori daripada itu kebutuhan - lingkungan di mana pemrosesan dan komunikasi menghabiskan sebagian kecil dari apa yang mereka keluarkan pada klien.
Tapi tunggu, ada sesuatu di dalamnya untuk Anda juga: dengan memisahkan sistem Anda mendapatkan lebih banyak kontrol atas aturan bisnis Anda, struktur database Anda, dan versi apa yang ada di luar sana. Setelah Anda membiarkan klien seluler terhubung langsung ke basis data, desain Anda "kawin" dengan struktur basis data itu: hampir setiap perubahan akan merusak kompatibilitas ke belakang ke klien yang mungkin enggan untuk meningkatkan aplikasinya.
Sebaliknya, menambahkan layanan web di antaranya memungkinkan Anda mengubah antarmuka menjadi klien seluler dengan cara yang lebih mudah dikelola: misalnya, Anda dapat mempertahankan antarmuka lama, menambahkan yang baru yang berfungsi "secara paralel" dengannya, dan kemudian seluruhnya merestrukturisasi basis data Anda tanpa melanggar satu klien.
Jika Anda mengikuti beberapa prinsip desain yang cukup mendasar saat mendesain layanan web Anda, Anda juga bisa mendapatkan manfaat yang signifikan dengan menggunakan kembali infrastruktur sisi server yang matang yang telah diterapkan: misalnya, Anda bisa mendapatkan layanan cache dan proxy secara gratis.
Akhirnya, ini akan membuka pintu bagi pengembang lain untuk mengekspos aplikasi Anda ke platform yang tidak dapat Anda layani sendiri, pada akhirnya bermain untuk keuntungan perusahaan Anda.
Ini menempatkan lapisan abstraksi antara aplikasi dan DB. Ini memberi Anda banyak keuntungan seperti:
Satu alasan lain untuk tidak mengekspos DB langsung - transportasi. Kebanyakan basis data relasional, jenis hal yang diajak bicara dengan JDBC, tidak dirancang untuk internet publik secara umum. Internet nirkabel adalah ujung yang sangat tidak dapat diandalkan dari internet publik tersebut. Penanganan pengecualian akan menjadi mimpi buruk dan Anda mungkin akhirnya akan menulis kebalikan dari lapisan layanan web di dalam aplikasi Anda untuk menghindari kehilangan transaksi.
Ada beberapa jenis database yang lebih baru yang berbicara HTTP dan mungkin cocok untuk hal semacam ini. Mereka juga cenderung menampilkan cara untuk memasukkan kode aplikasi dalam database. Anda mungkin ingin melihat CouchDb atau RavenDb - keduanya db dokumen dengan kemampuan peta / pengurangan yang bekerja di json dan http, seperti banyak layanan web modern.