Tugas 4 Perancangan Perangkat Lunak (A)
Nama : Tsaqif Deniar B.
NRP : 5025211151
Kelas : PPL (A)
Tugas 4
High Level Design
High-Level Design untuk Twitter
Pengumpulan Kebutuhan
Fungsi Utama:
Pengguna dapat membuat akun dan masuk ke dalam sistem.
Pengguna dapat membuat, membaca, mengedit, dan menghapus tweet.
Pengguna dapat mengikuti dan berhenti mengikuti pengguna lain.
Pengguna dapat menyukai, me-retweet, dan membalas tweet.
Pengguna dapat mencari tweet dan pengguna lainnya.
Sistem harus menangani skalabilitas untuk jutaan pengguna dan tweet.
Identifikasi Komponen Utama
Modul Utama:
User Management:
Pendaftaran, autentikasi, dan otorisasi pengguna.
Manajemen profil pengguna.
Tweet Management, Membuat, membaca, mengedit, dan menghapus tweet. Menyukai, me-retweet, dan membalas tweet.
Follow System, Mengikuti dan berhenti mengikuti pengguna lain.
Search, Pencarian tweet dan pengguna.
Notification System, Notifikasi untuk suka, retweet, balasan, dan pengikut baru.
Timeline, Menampilkan tweet dari pengguna yang diikuti dalam urutan kronologis atau berdasarkan relevansi.
Messaging, Direct Messages antara pengguna.
Desain Antarmuka
Antarmuka Modul:
API Gateway:
Menerima permintaan dari klien (web dan mobile).
Meneruskan permintaan ke layanan yang sesuai.
User API:
Mengelola autentikasi, pendaftaran, dan profil pengguna.
Tweet API:
Mengelola operasi CRUD (Create, Read, Update, Delete) untuk tweet.
Follow API:
Mengelola hubungan mengikuti/diikuti antar pengguna.
Search API:
Mengelola pencarian tweet dan pengguna.
Notification API:
Mengelola pengiriman notifikasi.
Timeline API:
Mengelola penyusunan timeline pengguna.
Messaging API:
Mengelola pengiriman dan penerimaan pesan langsung.
Data Flow
Aliran Data Utama:
User Registration/Login:
Pengguna mengirim permintaan registrasi atau login ke API Gateway.
API Gateway meneruskan permintaan ke User API.
User API berinteraksi dengan database pengguna untuk verifikasi dan pengelolaan data.
Creating a Tweet:
Pengguna mengirim permintaan membuat tweet ke API Gateway.
API Gateway meneruskan permintaan ke Tweet API.
Tweet API menyimpan tweet di database dan memicu Notification API untuk memberi tahu pengikut.
Following a User:
Pengguna mengirim permintaan mengikuti pengguna lain ke API Gateway.
API Gateway meneruskan permintaan ke Follow API.
Follow API memperbarui database dan memicu Notification API.
Searching Tweets/Users:
Pengguna mengirim permintaan pencarian ke API Gateway.
API Gateway meneruskan permintaan ke Search API.
Search API mengambil data dari database dan mengembalikan hasil pencarian.
Diagram Aristektur
Keamanan dan Kinerja
Keamanan:
Gunakan HTTPS untuk semua komunikasi.
Implementasi otentikasi dan otorisasi dengan JWT (JSON Web Tokens).
Validasi dan sanitasi input untuk mencegah serangan injeksi.
Implementasi rate limiting untuk mencegah serangan DDoS.
Kinerja:
Gunakan caching untuk mengurangi beban pada database.
Implementasi load balancing untuk mendistribusikan permintaan ke beberapa server.
Optimasi query database dan penggunaan indeks untuk meningkatkan performa.
Referensi :
Comments
Post a Comment