Cara memilih database untuk aplikasi seluler Anda

Konsumen saat ini sangat bergantung pada aplikasi seluler mereka. Jika aplikasi tidak berfungsi, pengguna tidak akan menggunakannya — sesederhana itu. 

Membutuhkan koneksi Internet untuk aplikasi seluler adalah untuk hidup di masa lalu. Jika aplikasi mengandalkan koneksi, kemungkinan besar pengalamannya akan lamban dan tidak dapat diprediksi.

Untuk menghindari ketergantungan pada jaringan, penyedia database dan layanan cloud telah menambahkan kemampuan sinkronisasi dan offline ke penawaran seluler mereka. Solusi seperti Couchbase Mobile dari Couchbase, Azure Mobile Services Microsoft, Amazon's Cognito, dan Google Firebase menawarkan sinkronisasi yang sangat penting yang memungkinkan aplikasi untuk bekerja baik secara online maupun offline. 

Dengan begitu banyak penawaran yang tersedia, bagaimana pengembang seluler memilih teknologi yang tepat untuk aplikasi yang tepat? Enam kriteria utama berikut ini paling penting saat mengevaluasi solusi seluler: dukungan platform, keamanan, fleksibilitas pemodelan, resolusi konflik, pengoptimalan sinkronisasi, dan dukungan topologi.

Dukung platform klien yang tepat

Platform klien apa yang didukung? Apakah Anda perlu melampaui iOS dan Android? Apakah Anda ingin mendukung platform yang secara tradisional tidak dianggap seluler, seperti sistem tertanam, perangkat IoT, dan perangkat yang dapat dikenakan? Apakah Anda ingin mendukung desktop dan laptop Windows dan OS X juga? Banyak aplikasi masa kini yang dimulai di perangkat seluler, kemudian menambahkan aplikasi desktop atau pendamping web asli. Penting untuk mengevaluasi opsi database dan cloud berdasarkan pada dukungan platform yang Anda butuhkan tidak hanya saat ini tetapi juga di masa depan.

Amankan data saat diam dan bergerak

Saat Anda menggunakan penyimpanan tersinkronisasi dan terdesentralisasi, penting untuk mengakses, mengirimkan, dan menyimpan data dengan aman. Untuk menutupi hal ini sepenuhnya, Anda perlu menangani otentikasi, data diam, data bergerak, dan akses baca / tulis. 

Otentikasi harus fleksibel dan memungkinkan penggunaan penyedia otentikasi standar, publik, dan khusus. Dukungan untuk akses anonim juga penting untuk banyak aplikasi. Untuk data yang disimpan di server dan klien, Anda memerlukan dukungan untuk enkripsi sistem file dan enkripsi tingkat data. Untuk data yang bergerak, komunikasi harus melalui saluran aman seperti SSL atau TLS. Untuk akses baca / tulis data, database harus menawarkan kontrol granular atas data apa yang dapat diakses dan dimodifikasi oleh pengguna.

Gunakan model data yang fleksibel

Fleksibilitas pemodelan data akan menentukan apakah Anda dapat mengartikulasikan persyaratan model untuk aplikasi Anda dengan cara yang efisien dan tepat. Yang lebih penting lagi, ini akan menentukan apakah Anda dapat mengembangkan model Anda secara efisien saat persyaratan Anda berubah ke depan. Fleksibilitas model secara khusus penting dalam seluler karena aplikasi seluler saat ini berkembang dengan sangat cepat.

Basis data relasional masih merupakan pilihan yang baik jika aplikasi memerlukan konsistensi data yang kuat atau datanya sangat relasional. Tetapi ketika persyaratan ini dapat dilonggarkan, database NoSQL menawarkan fleksibilitas yang jauh lebih besar.

Selesaikan konflik data dengan baik

Untuk platform seluler atau platform lain apa pun yang menggunakan penulisan data terdesentralisasi, data yang sama dapat dimodifikasi secara bersamaan di beberapa perangkat, menciptakan konflik. Sistem perlu mendukung mekanisme untuk menyelesaikan konflik tersebut. Fleksibilitas mekanisme resolusi konflik penting dan harus memungkinkan resolusi secara otomatis, di perangkat, di cloud, oleh sistem eksternal, dan oleh manusia. 

Penanganan konflik akan berbeda untuk setiap sistem. Couchbase Mobile, misalnya, menggunakan pohon revisi dengan aturan resolusi default "cabang paling aktif menang." Ini adalah pendekatan yang sama yang diambil oleh sistem kontrol revisi seperti Git dan jauh berbeda dari sistem berbasis jam yang mengambil pendekatan "perubahan terbaru menang". Sistem resolusi berbasis jam bermasalah karena masalah perbedaan jam di seluruh perangkat. Couchbase juga memungkinkan kustomisasi (melalui kode di klien atau di server) untuk melakukan resolusi konflik yang lebih canggih seperti penggabungan tiga arah.

Sinkronkan pada waktu yang tepat

Selain dapat menyelesaikan konflik, penting untuk memiliki kemampuan untuk mengontrol bagaimana sistem disinkronkan. Ini termasuk strategi replikasi, replikasi bersyarat, dan pemfilteran replikasi. Untuk strategi replikasi, cari dukungan untuk streaming, polling, one-time, continuous, dan push. Anda juga harus memiliki kemampuan untuk menggunakan kombinasi dari strategi ini. Untuk replikasi bersyarat, Anda mungkin perlu mereplikasi data hanya dalam kondisi tertentu, seperti saat perangkat menggunakan Wi-Fi atau saat daya baterai mencukupi. Untuk pemfilteran replikasi, Anda harus memiliki kemampuan untuk mereplikasi beberapa data tetapi tidak untuk data lain.

Sinkronkan dengan partisi yang tepat

Dukungan topologi sinkronisasi yang dapat dikonfigurasi diperlukan agar Anda dapat memenuhi persyaratan partisi Anda. Dengan kata lain, Anda memerlukan kemampuan untuk mengonfigurasi sistem agar bagian tertentu dapat beroperasi secara offline. Topologi yang paling umum adalah bintang. Dalam topologi bintang, setiap perangkat terhubung ke hub pusat menggunakan koneksi point-to-point yang memungkinkan perangkat beroperasi secara offline. Topologi umum lainnya seperti tree dan mesh memungkinkan berbagai bagian sistem (selain perangkat) untuk beroperasi secara offline. Anda mungkin juga menginginkan dukungan untuk topologi cloudless yang memungkinkan perangkat untuk berkomunikasi peer-to-peer dan langsung menyinkronkan data di antara mereka sendiri. 

Sistem POS (point of sale) adalah contoh bagus dari topologi tree. Sistem POS mengharuskan penyimpanan batu bata dan mortir terus beroperasi jika terputus dari sistem lainnya. Dalam konfigurasi ini, perangkat POS akan disinkronkan dengan database tingkat toko, yang akan disinkronkan dengan sistem global. Dengan demikian penyimpanan dapat terus mengoperasikan dan menyinkronkan data dengan perangkat POS mereka terlepas dari konektivitas ke sistem global.

Apakah akan membangun sinkronisasi atau membeli

Saat ingin menambahkan sinkronisasi ke aplikasi Anda, Anda perlu menentukan apakah Anda harus membuat solusi atau mendapatkannya dari penyedia. Membangun sinkronisasi dengan benar terkenal sulit dan mahal, karena harus menangani semua kerumitan komputasi terdistribusi. Untuk sebagian besar aplikasi, Anda akan lebih baik meninggalkan sinkronisasi data ke tumpukan khusus dan berfokus pada fitur aplikasi Anda. Kuncinya adalah memilih solusi yang fleksibel. Jika Anda mengikuti jalur build, bersiaplah untuk menghabiskan sebagian besar waktu dan sumber daya Anda untuk membangun sinkronisasi dan mendukung semua yang tercantum di atas.

Saat memilih penyedia sinkronisasi dan penyimpanan seluler, mengambil ukuran penuh dari kriteria di atas sangat penting untuk membangun aplikasi seluler yang aman, fleksibel, dan dapat dikelola yang selalu berfungsi — dengan atau tanpa koneksi Internet. 

-

Wayne Carter adalah kepala arsitek seluler di Couchbase, di mana dia bertanggung jawab untuk memimpin visi, strategi, dan pengembangan solusi seluler perusahaan. Sebelum Couchbase, Wayne menghabiskan tujuh tahun di Oracle sebagai arsitek yang bertanggung jawab untuk mendorong inovasi seluler dalam lini produk CRM dan SaaS. Dia memiliki 11 paten yang menunggu dari pekerjaannya di Oracle. Sebelum di Oracle, Wayne memegang posisi kepemimpinan teknis di Siebel, mengerjakan lini produk CRM-nya.

Forum Teknologi Baru menyediakan tempat untuk mengeksplorasi dan mendiskusikan teknologi perusahaan yang sedang berkembang secara mendalam dan luas. Pemilihannya subjektif, berdasarkan pilihan teknologi yang kami yakini penting dan paling menarik bagi pembaca. tidak menerima jaminan pemasaran untuk publikasi dan berhak untuk mengedit semua konten yang dikontribusikan. Kirim semua pertanyaan ke [email protected]