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

Popular posts from this blog

Pemrograman Perangkat Bergerak (D) - Pertemuan 5

Pemrograman Perangkat Bergerak (D) - Pertemuan 2

Evaluasi Tengah Semester PPB (D) - Tsaqif Deniar