Apa itu arsitektur N-tingkat?

Selesai

Arsitektur N-tingkat membagi aplikasi menjadi lapisan logis dan tingkat fisik. N menunjukkan banyaknya jumlah pemisahan tingkat fisik untuk aplikasi, yang biasanya berkorelasi dengan jumlah lapisan. Kita bisa memiliki arsitektur dua tingkat (klien-server), atau bahkan arsitektur lima tingkat, meskipun yang umum, dan sering kali yang terbaik adalah mempertahankan jumlah tingkatan hingga empat atau kurang.

Mari kita bahas tentang apa yang membentuk lapisan dan tingkatan.

Apa itu lapisan?

Lapisan secara logis memisahkan kode aplikasi yang membentuk aplikasi. Setiap lapisan memiliki tanggung jawab khusus seperti menangani permintaan dari pengguna, menjalankan logika bisnis, atau menangani penyimpanan data.

Dengan memisahkan aplikasi menjadi beberapa lapisan logis ini, kami memperlakukan setiap lapisan secara independen. Pemisahan ini membuat komponen aplikasi modular, dan memungkinkan kami untuk lebih mudah mempertahankan aplikasi. Kami dapat mengoptimalkan aplikasi untuk setiap tanggung jawab. Permintaan web penanganan lapisan berfokus pada tugas utamanya: menangani permintaan web. Ini tidak berkaitan dengan penyimpanan data atau menjalankan logika bisnis. Sebaliknya, lapisan akses data berfokus pada pengoptimalan komunikasi ke penyimpanan data, dan mengabaikan detail tentang caranya menyajikan data kepada pengguna. Konsep pembatasan fokus pada fitur tertentu ini disebut pemisahan masalah.

Berikut adalah diagram yang menampilkan lapisan dalam arsitektur N-tingkat yang umum. Setiap lapisan menangani satu aspek aplikasi. Lapisan bisnis mengelola komunikasi antara lapisan antarmuka pengguna dan lapisan akses data.

Visualization of layers.

Apa itu tingkatan?

Tingkatan mewakili pemisahan fisik dari bagian aplikasi Anda pada sumber daya komputasi terpisah. Secara umum, setiap tingkat fisik menjalankan satu lapisan logis aplikasi.

Memisahkan arsitektur menjadi beberapa tingkat fisik akan membawa beberapa keuntungan:

  • Komponen aplikasi dapat diskalakan secara terpisah dengan menambahkan sumber daya ke setiap tingkatan.
  • Aplikasi dapat menjadi lebih tangguh dengan menambahkan load balancing untuk mendeteksi sumber daya yang gagal dan mengalihkan permintaan ke sistem yang sehat.
  • Aplikasi dapat lebih aman dengan membatasi komunikasi jaringan antar tingkatan, dan hanya mengizinkan akses yang diperlukan.

Arsitektur menentukan bahwa komunikasi antar tingkatan harus dengan cara top-down. Setiap tingkatan dapat berbicara dengan tingkat berikutnya di bawahnya, tetapi umumnya tidak diizinkan untuk melewati tingkatan. Desain ini meningkatkan keamanan dengan membatasi area permukaan tingkat yang terbuka.

Visualization of tiers.

Arsitektur tiga tingkat

Dari semua arsitektur N-tingkat, arsitektur tiga tingkat adalah yang paling umum. Tanggung jawab dan nama setiap lapisan dan tingkatan bervariasi menurut aplikasi dan bisnis, tetapi aplikasi tiga tingkat yang umum memiliki: tingkat presentasi, tingkat aplikasi atau tingkat tengah, dan tingkat data. Arsitektur ini adalah gaya N-tingkat yang paling umum. Untuk sisa modul ini, kita akan mereferensikan model tiga tingkat dengan setiap tingkatan yang menjalankan satu lapisan aplikasi, dan menyebutnya secara sinonim sebagai tingkatan.

Tingkat presentasi

Tingkat presentasi biasanya memfasilitasi permintaan pengguna. Permintaan ini dapat berupa pengguna yang mengakses halaman web, atau akses publik ke aplikasi Anda melalui API yang diekspos. Fokus pada tingkat ini adalah pada pengalaman pengguna. Menyediakan hal-hal seperti antarmuka intuitif, dan memastikan komunikasi yang aman antara pengguna akhir dan aplikasi Anda.

Pada tingkat ini, Anda tidak akan berurusan dengan data itu sendiri. Anda hanya akan menangani bagaimana data tersebut disajikan kepada pengguna akhir. Biasanya, tidak ada pemrosesan data atau akses data yang terjadi di tingkat ini. Ini adalah tanggung jawab tingkatan yang lebih bawah.

Tingkat aplikasi

Tingkat aplikasi (juga sering disebut tingkat tengah) biasanya berfokus pada penanganan logika bisnis aplikasi. Tingkat ini bisa menangani pesanan pelanggan, melacak pengiriman, atau memperbarui inventaris berdasarkan bahan yang diterima. Tingkat ini juga bertanggung jawab untuk membuat, membaca, memperbarui, menghapus (CRUD) aktivitas terhadap tingkat data. Ini juga merupakan lokasi yang baik untuk melakukan panggilan ke layanan dependen, seperti API eksternal.

Tingkat ini berurusan dengan bagaimana informasi disajikan kembali kepada pengguna, atau bagaimana data disimpan dan diambil. Fokusnya adalah pada logika bisnis yang diperlukan untuk memenuhi permintaan yang telah diterima aplikasi.

Tingkat data

Pada tingkat ini, fokusnya adalah pada penyimpanan data. Penyimpanan data dalam tabel, file, atau media lainnya adalah tanggung jawab tingkat ini. Tingkat ini menyediakan antarmuka (seperti T-SQL) untuk mengakses data. Dalam arsitektur tiga tingkat, lapisan data menyediakan akses data ke tingkat aplikasi.

Tingkat ini tidak berfokus pada bagaimana data disajikan kepada pengguna, juga tidak berfokus pada logika apa pun di sekitar data. Penggunaan prosedur tersimpan dapat berada di tingkat ini, tetapi sebagian besar logika di sekitar data harus ditangani pada tingkat yang lebih tinggi.

Kapan harus menggunakan arsitektur N-tingkat

Sekarang setelah kita berbicara tentang apa itu arsitektur N-tingkat, mari kita jelaskan kapan Anda akan menggunakan arsitektur gaya ini. Pertimbangkan arsitektur N-tingkat untuk:

  • Aplikasi web berukuran kecil hingga menengah.
  • Memigrasikan aplikasi lokal ke Azure dengan pemfaktoran ulang minimal.
  • Menggunakan keterampilan, kemampuan, dan pengalaman pengembang lokal.

Aplikasi web adalah kasus penggunaan yang baik untuk arsitektur gaya ini. Karena berkurangnya kompleksitas gaya arsitektur ini, dan seringnya pemisahan alami antar-tanggung jawab dalam aplikasi web, arsitektur N-tingkat mungkin berfungsi dengan baik. Aplikasi ini dapat berhadapan dengan publik, atau aplikasi lini bisnis yang digunakan secara internal oleh organisasi. Untuk aplikasi yang lebih kecil atau kurang kompleks, arsitektur dua tingkat (klien/server) mungkin cukup, dengan tingkat presentasi dan aplikasi digabung alih-alih dipisahkan.

Arsitektur N-tingkat umum dalam aplikasi lokal tradisional, sehingga sangat cocok untuk memigrasikan beban kerja yang ada ke Azure. Aplikasi dalam gaya ini sering kali dimigrasikan ke Azure dengan refaktor atau modifikasi minimal, sehingga menyederhanakan migrasi awal. Setelah menggunakan Azure, Anda dapat memanfaatkan layanan platform-as-a-service (PaaS) untuk meningkatkan aplikasi Anda lebih lanjut.

Karena ini adalah gaya arsitektur yang umum digunakan, sering kali teknisi memiliki tingkat pengalaman yang lebih tinggi dengan gaya arsitektur ini. Dengan memilih arsitektur ini, Anda dapat menggunakan serangkaian keterampilan yang sudah ada untuk menerapkan aplikasi tanpa meningkatkan pola arsitektur baru.

Uji pengetahuan Anda

1.

Anda perlu memperbarui aplikasi tiga tingkat untuk diintegrasikan dengan API mitra. Lapisan mana yang harus Anda tambahkan fungsionalitas ini?

2.

Pada lapisan mana diperbolehkan untuk memberi akses ke pengguna?