digilib@itb.ac.id +62 812 2508 8800

Cover
PUBLIC karya

Abstrak
PUBLIC karya

Abstract
PUBLIC karya

Lembar Pengesahan
PUBLIC karya

Tugas Akhir
PUBLIC karya

Pembangunan Perangkat Lunak secara monolithic tidak ideal dalam pembangunan perangkat lunak berskala besar karena kompleksitas dari perangkat lunak yang dihasilkan. Salah satu solusi adalah mengimplementasi arsitektur Microservice untuk memecah perangkat lunak menjadi beberapa microservice agar masing-masing microservice dapat perlihara secara mandiri. Selain itu, agar dapat mengurangi coupling, microservice dapat saling berkomunikasi melalui arsitektur Event-Driven. Komunikasi melalui event antara microservice dapat dicapai dengan menggunakan messaging system. Hanya saja, implementasi dari komunikasi event umumnya mengakibatkan coupling antara perangkat lunak yang dibangun dengan messaging system yang digunakan sehingga untuk merubah messaging system yang digunakan menjadi sulit. Untuk menyelesaikan masalah tersebut, dibuat abstraksi dari pemrosesan event yang secara otomatis meneruskan event ke messaging system. Abstraksi tersebut dibangun dengan memanfaatkan pemrosesan event yang telah disediakan oleh Spring Framework. Agar pemrosesan event dapat dihubungkan secara otomatis dengan messaging system, maka perlu dibangun ekstensi dari Spring Framework untuk mencapai hal tersebut. Ekstensi dibangun agar cara untuk berkomunikasi melalui event antara microservice tetap sama walaupun memanfaatkan messaging system yang berbeda-beda. Manfaat pendekatan tersebut adalah untuk mengubah messaging system yang digunakan, tidak perlu mengubah kode program pemrosesan event. Ekstensi dibangun sebagai kelas abstrak Event Provider yang memiliki implementasi kelas konkret untuk masing-masing messaging system dan juga memanfaatkan kelas Event Registry sebagai daftar dari event yang diproses. Penggunaan ekstensi dilakukan dengan mendefinisikan kedua komponen tersebut sebagai Spring Bean. Ekstensi yang dibangun selain memperbolehkan abstraksi dari pemrosesan event, juga dapat membantu proses pengembangan perangkat lunak. Dari hasil pengujian, ekstensi dapat mengurangi jumlah baris kode program yang diperlukan untuk memproses event dibandingkan dengan tanpa penggunaan ekstensi. Hal ini karena ekstensi mengotomatisasi hal-hal repetitif. Selain itu, dari hasil pengujian, untuk mengubah messaging system yang digunakan, hanya perlu mengubah beberapa baris kode program dari konfigurasi ekstensi.