Ada proyek yang sedang saya kerjakan yang ingin menghasilkan aplikasi web yang akan mengelola daftar tugas antara banyak pengguna. Ini adalah daftar tugas utama yang item tugasnya didistribusikan oleh pengguna yang berwenang. Setiap pengguna memiliki akunnya sendiri untuk login dan melihat tugas yang ditugaskan; dimungkinkan bagi banyak pengguna untuk memiliki satu tugas yang sama.
Saya mencoba untuk tidak menyertakan detail proyek ini karena saya lebih bergulat dengan konsep keseluruhan tentang bagaimana menangani situasi berikut, tetapi jika itu membantu, saya menggunakan Java, EclipseLink, dan GWT dengan RequestFactory diimplementasikan. Basis datanya adalah PostgreSQL.
Jadi masalah konseptual yang saya coba rujuk adalah sebagai berikut:
Jika satu tugas yang umum bagi banyak pengguna berubah dengan cara apa pun misalnya tugas selesai, dihapus, dll. Daftar tugas semua pengguna yang memiliki tugas ini akan diperbarui. Pola desain apa yang ada yang membantu dalam mengimplementasikan fungsi ini?
- Beberapa pola yang saya lihat adalah Pengamat dan Mediator - adakah yang lain yang harus dipertimbangkan?
Katakanlah ada dua pengguna yang mengubah tugas yang sama secara bersamaan.
Pertama, haruskah saya membiarkan situasi itu terjadi atau saya harus menguncinya sampai satu atau orang lain selesai membuat perubahan?
Kedua, jika saya tidak menguncinya, bagaimana saya mendamaikan perubahan yang harus diterima? Ini melibatkan situasi dalam 1 karena pengguna 1 dapat mengirimkan data dan sebelum pengguna 2 menerima data yang diperbarui, ia mungkin telah melanjutkan dan mengirimkan perubahannya.
Saya benar-benar mencari poin panduan, saran, atau tips yang dapat Anda berikan tentang cara menyinkronkan data antara beberapa contoh aplikasi web ini dengan benar. Saya akan sangat menghargainya!