Assalamu‘alaikum wr. wb.
Halo gais! Dalam Arsitektur Perangkat Lunak, kita juga tak melupakan yang namanya Layered Architecture atau Arsitektur Berlapis. Arsitektur ini mempunyai N-Tiered atau N-Lapis pada komponen dari sebuah Software. Untuk selengkapnya, silakan simak baik-baik.
Sumber Materi : Baeldung.com, Priyalwalpita.Medium.com, dan Socs.Binus.ac.id
A. Pengertian Layered Architecture
Arsitektur Berlapis atau Layered Architecture adalah pola n-Tiered di mana komponen disusun dalam lapisan horizontal. Dan ini adalah cara tradisional untuk merancang sebagian besar perangkat lunak, dan seharusnya berkembang sendiri, sehingga semua komponen terhubung tetapi tidak saling bergantung.
Ada beberapa arsitektur perangkat lunak berbeda yang ada seperti microkernels, microservices, dan client-server hanya untuk beberapa nama. Masing-masing disusun secara berbeda dan digunakan dalam konteks yang berbeda. Namun, kami hanya akan melihat Layered Architecture di artikel ini.
B. Lapisan-lapisan pada Layered Architecture
1. 3-Tier Architecture
Layered architectures Arsitektur berlapis dikatakan sebagai kerangka kerja arsitektur yang paling umum dan banyak digunakan dalam pengembangan perangkat lunak. Ia juga dikenal sebagai arsitektur n-tier dan menggambarkan pola arsitektur yang terdiri dari beberapa lapisan horizontal terpisah yang berfungsi bersama sebagai satu unit perangkat lunak. Lapisan adalah pemisahan logis dari komponen atau kode :
Ini adalah metode tradisional untuk mendesain sebagian besar perangkat lunak dan dimaksudkan untuk mandiri. Artinya semua komponen saling berhubungan tetapi tidak bergantung satu sama lain.
2. Software Architecture Pattern
Layered Architecture |
Ada 4 (Empat) lapisan dalam arsitektur ini dimana setiap lapisan memiliki hubungan antara modularitas dan komponen di dalamnya. Dari atas ke bawah, mereka adalah :
- Presentation layer : Berisi semua kategori yang terkait dengan lapisan presentasi.
- Business layer : Berisi Logika Bisnis (Business Logic).
- Persistence layer : Ini digunakan untuk menangani fungsi seperti pemetaan objek-relasional.
- Database layer : Di sinilah semua data disimpan.
Dalam hal ini lapisannya tertutup, artinya permintaan harus melalui semua lapisan dari atas ke bawah. Ada dua alasan untuk ini, satu karena semua komponen 'mirip' bersama-sama dan alasan lainnya adalah memberikan lapisan isolasi.
Singkatnya, komponen "mirip" bersama berarti bahwa semua yang penting untuk lapisan tertentu tetap berada di lapisan tunggal itu. Ini memungkinkan pemisahan yang jelas dari jenis komponen dan juga membantu mengumpulkan kode pemrograman serupa di satu tempat. Dengan mengisolasi lapisan, mereka menjadi tidak bergantung satu sama lain. Misalnya, jika kita ingin mengubah Database dari Oracle Server ke SQL Server, itu akan berdampak besar pada level database, tetapi tidak memengaruhi level lainnya. Misalkan Anda memiliki lapisan bisnis tertulis khusus dan Anda ingin memodifikasinya untuk mesin aturan bisnis. Perubahan tidak memengaruhi lapisan lain jika kita memiliki arsitektur lapisan yang terdefinisi dengan baik.
Perbanyakan Data dalam Layered Architecture |
Pola Arsitektur Berlapis dapat dimodifikasi untuk memiliki lapisan tambahan selain yang disebutkan. Ini dikenal sebagai arsitektur berlapis hybrid. Misalnya, mungkin ada lapisan layanan antara lapisan bisnis dan lapisan kegigihan. Namun, ini bukanlah skenario yang ideal karena sekarang Business Layer harus melalui lapisan layanan untuk sampai ke Lapisan Persistensi (Persistence Layer). Permintaan ini tidak mendapatkan nilai apa pun dengan melewati Service Layer. Kami menyebutnya arsitektur anti-pola sinkhole. Permintaan melewati lapisan dengan sedikit atau tanpa logika dilakukan di setiap lapisan.
Open Layer dalam Pola Layered Architecture |
Satu-satunya cara untuk mengatasi hal ini adalah dengan menjadikan lapisan opsional sebagai lapisan terbuka. Ini berarti bahwa jika lapisan opsional menambahkan nilai apa pun ke permintaan yang dikirim, maka permintaan akan melewatinya. Jika tidak, maka itu hanya akan melewati lapisan ini dan pergi ke lapisan yang relevan setelahnya. Ini dapat dilihat pada diagram di atas di mana permintaan melewati lapisan layanan dan berpindah dari lapisan bisnis ke Lapisan Persistensi.
3. Design Patterns
Anggap saja mock-up Software design, susunan “stack”-nya seperti Layered Architecture :
Design Patterns Layered Architecture (Sumber : Softwareengineering.Stackexchange.com) |
Setiap layer dari aplikasi terpisah dengan cara penggunaan metode API, namun yang masih saling berhubungan adalah memory handling , karena setiap komunikasi layer akan membawa/mengirim data sehingga akan terjadi alokasi memory dan pada akhirnya membutuhkan memory handling.
C. Kelebihan dan Kekurangan dari Layered Architecture
Berikut ini adalah kelebihan dan kekurangan yang ada pada pola perangkat lunak ini :
Kelebihan :
- Framework ini sederhana dan mudah dipelajari dan diimplementasikan.
- Ketergantungan berkurang karena fungsi setiap lapisan terpisah dari lapisan lainnya.
- Pengujian lebih mudah karena komponen terpisah, masing-masing komponen dapat diuji secara individual.
- Biaya overhead cukup rendah.
Kekurangan :
- Skalabilitas sulit karena struktur kerangka tidak memungkinkan untuk pertumbuhan.
- Mereka bisa sulit dipertahankan. Perubahan dalam satu lapisan dapat mempengaruhi keseluruhan sistem karena beroperasi sebagai satu kesatuan.
- Ada saling ketergantungan antar lapisan karena lapisan tergantung pada lapisan di atasnya untuk menerima data.
- Pemrosesan paralel tidak dimungkinkan.
Saat mengembangkan aplikasi sederhana dan kecil, disarankan untuk mengimplementasikan arsitektur berlapis karena ini adalah framework yang paling sederhana. Namun, beberapa pengembang berpendapat bahwa karena pemeliharaannya sulit, lebih baik menerapkannya pada proyek yang lebih besar.
Meskipun demikian, framework ini dapat digunakan untuk aplikasi yang perlu dibangun dengan cepat karena mudah dipelajari dan diimplementasikan. Ini juga bagus dalam kasus di mana pengembang tidak memiliki banyak pengetahuan tentang arsitektur perangkat lunak atau ketika mereka tidak yakin mana yang akan digunakan.
Beberapa aplikasi kehidupan nyata dari arsitektur ini ada di aplikasi web dan Model OSI. Model Pemrograman J2EE juga menerapkan Layered Architecture.
Demikianlah penjelasan tentang Layered Architecture. Semoga bermanfaat bagi Software Developer/Engineer dan juga untuk Mahasiswa IT (Informatika).
Terima Kasih 😄😘👌👍 :)
Wassalamu‘alaikum wr. wb.