Apa itu arsitektur berorientasi layanan?

Arsitektur berorientasi layanan (SOA) adalah metode pengembangan perangkat lunak yang menggunakan komponen perangkat lunak yang disebut dengan layanan untuk membuat aplikasi bisnis. Setiap layanan menyediakan kemampuan bisnis dan dapat berkomunikasi satu sama lain di seluruh platform dan bahasa. Developer menggunakan SOA untuk menggunakan kembali layanan dalam sistem yang berbeda atau menggabungkan beberapa layanan independen untuk melakukan tugas yang kompleks.

Misalnya, beberapa proses bisnis dalam suatu organisasi memerlukan fungsionalitas autentikasi pengguna. Alih-alih menulis ulang kode autentikasi untuk semua proses bisnis, Anda dapat membuat satu layanan autentikasi dan menggunakannya kembali untuk semua aplikasi. Demikian juga dengan sistem di seluruh organisasi layanan kesehatan, seperti sistem manajemen pasien dan sistem catatan kesehatan elektronik (EHR), sebagian besar perlu mendaftarkan pasien. Sistem ini dapat memanggil satu layanan umum untuk melakukan tugas pendaftaran pasien.

Apa saja manfaat arsitektur berorientasi layanan?

Arsitektur berorientasi layanan (SOA) memiliki beberapa manfaat dibandingkan dengan arsitektur monolitik tradisional yang semua prosesnya berjalan sebagai satu unit. Beberapa manfaat utama SOA mencakup hal berikut ini:

Waktu masuk pasar yang lebih cepat

Developer menggunakan kembali layanan di berbagai proses bisnis untuk menghemat waktu dan biaya. Mereka dapat menyatukan aplikasi jauh lebih cepat dengan SOA dibandingkan dengan menulis kode dan melakukan integrasi dari awal.

Pemeliharaan yang efisien

SOA memudahkan dalam membuat, memperbarui, dan melakukan debug layanan-layanan kecil dibandingkan dengan blok-blok kode besar dalam aplikasi monolitik. Memodifikasi layanan di SOA tidak akan memengaruhi fungsionalitas keseluruhan proses bisnis.

Kemampuan adaptasi yang lebih baik

SOA lebih dapat beradaptasi dengan kemajuan teknologi. Anda dapat memodernisasi aplikasi secara efisien dan hemat biaya. Misalnya, organisasi layanan kesehatan dapat menggunakan fungsionalitas sistem catatan kesehatan elektronik di dalam aplikasi berbasis cloud yang lebih baru.

 

Apa saja prinsip dasar arsitektur berorientasi layanan?

Tidak ada panduan standar yang dibuat untuk mengimplementasikan arsitektur berorientasi layanan (SOA). Namun, terdapat beberapa prinsip dasar umum dalam semua implementasi SOA.

Interoperabilitas

Setiap layanan dalam SOA memiliki dokumen deskripsi yang menentukan fungsionalitas layanan serta syarat dan ketentuan terkait. Semua sistem klien dapat menjalankan layanan, apa pun platform yang mendasari atau bahasa pemrogramannya. Misalnya, proses bisnis dapat menggunakan layanan yang ditulis baik dalam bahasa pemrograman C# maupun Python. Karena tidak adanya interaksi langsung, perubahan dalam satu layanan tidak akan memengaruhi komponen lain yang menggunakan layanan tersebut.

Penggabungan longgar

Layanan di SOA harus digabungkan secara longgar, memiliki dependensi seminimal mungkin terhadap sumber daya eksternal seperti model data atau sistem informasi. Layanan di SOA juga harus tanpa status yang tidak mempertahankan informasi apa pun dari sesi atau transaksi sebelumnya. Dengan demikian, jika Anda memodifikasi layanan, modifikasi tersebut tidak akan berpengaruh secara signifikan terhadap aplikasi klien dan layanan lain yang menggunakan layanan tersebut.

Abstraksi

Klien atau pengguna layanan dalam SOA tidak perlu mengetahui detail logika kode atau implementasi. Bagi mereka, layanan akan terlihat seperti kotak hitam. Klien mendapatkan informasi yang diperlukan mengenai yang dilakukan layanan dan cara menggunakannya melalui kontrak layanan dan dokumen deskripsi layanan lainnya.

Granularitas

Layanan dalam SOA harus memiliki ukuran dan cakupan yang sesuai, yang idealnya mengemas satu fungsi bisnis diskret
per layanan. Kemudian, developer dapat menggunakan beberapa layanan untuk membuat layanan komposit untuk melakukan operasi yang kompleks.

Apa saja komponen yang ada di dalam arsitektur berorientasi layanan?

Terdapat empat komponen utama di dalam arsitektur berorientasi layanan (SOA).

Layanan

Layanan merupakan blok pembangun dasar SOA. Layanan tersebut dapat diakses secara privat—hanya tersedia untuk pengguna internal organisasi—atau publik—melalui internet untuk semua. Secara individu, setiap layanan memiliki tiga fitur utama.

Implementasi layanan
Implementasi layanan merupakan kode yang membangun logika untuk menjalankan fungsi layanan tertentu, seperti autentikasi pengguna atau penghitungan tagihan.

Kontrak layanan
Kontrak layanan menentukan sifat layanan serta syarat dan ketentuan terkait, seperti prasyarat penggunaan layanan, biaya layanan, dan kualitas layanan yang diberikan.
 
Antarmuka layanan
Dalam SOA, layanan atau sistem lainnya berkomunikasi dengan layanan melalui antarmuka layanannya. Antarmuka tersebut menentukan cara Anda dapat memanggil layanan untuk menjalankan aktivitas atau pertukaran data. Hal ini dapat mengurangi dependensi antara layanan dan peminta layanan. Misalnya, pengguna yang tidak terlalu paham atau bahkan tidak paham sama sekali dengan logika kode yang mendasari dapat menggunakan layanan melalui antarmuka layanan tersebut.

Penyedia layanan

Penyedia layanan membuat, memelihara, dan menyediakan satu atau beberapa layanan yang dapat digunakan oleh yang lainnya. Organisasi dapat membuat layanan mereka sendiri atau membelinya dari vendor layanan pihak ketiga.

Pengguna layanan

Pengguna layanan meminta penyedia layanan untuk melakukan layanan tertentu. Permintaan tersebut dapat berupa seluruh sistem, aplikasi, atau layanan lainnya. Kontrak layanan menentukan aturan yang harus dipatuhi oleh penyedia dan pengguna layanan pada saat berinteraksi satu sama lain. Penyedia dan pengguna layanan bisa berasal dari departemen, organisasi, dan bahkan industri yang berbeda.

Registri layanan

Registri layanan atau repositori layanan merupakan direktori layanan yang tersedia yang dapat diakses melalui jaringan. Registri layanan menyimpan dokumen deskripsi layanan dari penyedia layanan. Dokumen deskripsi berisi informasi mengenai layanan dan cara berkomunikasi dengan layanan tersebut. Pengguna layanan dapat dengan mudah menjelajahi layanan yang mereka butuhkan dengan menggunakan registri layanan.

Bagaimana cara kerja arsitektur berorientasi layanan?

Dalam arsitekur berorientasi layanan (SOA), layanan berfungsi secara independen dan menyediakan fungsionalitas atau pertukaran data kepada penggunanya. Pengguna mengajukan permintaan informasi dan mengirimkan data input ke layanan. Layanan akan memproses data tersebut, menjalankan tugas, dan mengembalikan respons. Misalnya, jika sebuah aplikasi menggunakan layanan otorisasi, aplikasi tersebut akan memberikan nama pengguna dan kata sandi kepada layanan. Layanan akan memverifikasi nama pengguna dan kata sandi lalu akan mengembalikan respons yang sesuai.

Protokol komunikasi

Layanan berkomunikasi menggunakan aturan yang ditetapkan yang menentukan transmisi data melalui jaringan. Aturan ini disebut dengan protokol komunikasi. Beberapa protokol standar untuk implementasi SOA mencakup:

• Protokol Akses Objek Sederhana (SOAP)
• RESTful HTTP
• Apache Thrift
• Apache ActiveMQ
• Layanan Pesan Java (JMS)

Anda bahkan dapat menggunakan lebih dari satu protokol dalam implementasi SOA Anda.

Apa Itu ESB dalam arsitektur berorientasi layanan?

Enterprise service bus (ESB) adalah perangkat lunak yang dapat Anda gunakan ketika berkomunikasi dengan sistem yang memiliki beberapa layanan. ESB memulai komunikasi antara layanan dengan pengguna layanan, terlepas dari teknologi yang digunakannya.  

Manfaat ESB

ESB menyediakan kemampuan komunikasi dan transformasi melalui antarmuka layanan yang dapat digunakan kembali. Anda dapat menggunakan ESB sebagai layanan terpusat yang merutekan permintaan layanan ke layanan yang sesuai. ESB juga dapat mentransformasikan permintaan ke dalam format yang dapat diterima oleh platform yang mendasari dan bahasa pemrograman layanan.

Apa saja keterbatasan dalam mengimplementasikan arsitektur berorientasi layanan?

Skalabilitas terbatas

Skalabilitas sistem akan terdampak secara signifikan jika layanan berbagi banyak sumber daya dan perlu berkoordinasi untuk menjalankan fungsionalitasnya. 

Meningkatkan interdependensi

Sistem arsitektur berorientasi layanan (SOA) dapat menjadi semakin kompleks dari waktu ke waktu dan menimbulkan beberapa interdependensi antar-layanan. Sistem akan menjadi sulit untuk dimodifikasi atau dilakukan debug jika beberapa layanan memanggil satu sama lain secara berulang-ulang. Sumber daya yang dibagikan, seperti basis data terpusat, juga dapat memperlambat sistem.

Titik tunggal kegagalan

Untuk implementasi SOA dengan ESB, ESB akan menciptakan titik tunggal kegagalan. Layanan ini merupakan layanan terpusat yang berkebalikan dengan gagasan desentralisasi yang didorong oleh SOA. Klien dan layanan tidak akan dapat saling berkomunikasi sama sekali jika ESB mengalami gangguan.

Apa itu layanan mikro?

Arsitektur Layanan mikro terdiri dari komponen perangkat lunak yang sepenuhnya independen dengan ukuran yang sangat kecil, yang disebut sebagai layanan mikro, dengan spesialisasi dan fokus hanya pada satu tugas. Layanan mikro berkomunikasi melalui API, yaitu aturan yang dibuat oleh developer untuk memungkinkan sistem perangkat lunak berkomunikasi dengan layanan mikronya.

Gaya arsitektur layanan mikro sangat sesuai untuk lingkungan komputasi cloud. Layanan mikro lebih banyak beroperasi dalam kontainer—unit perangkat lunak independen yang mengemas kode dengan semua dependensinya.

Manfaat layanan mikro

Layanan mikro bersifat dapat diskalakan secara independen, cepat, portabel, dan agnostik platform—yang native terhadap cloud. Layanan mikro juga bersifat terpisah, yang berarti bahwa layanan mikro tidak dibatasi dependensi pada layanan mikro lainnya. Untuk mencapai hal tersebut, layanan mikro memiliki akses lokal ke semua data yang layanan mikro butuhkan alih-alih akses jarak jauh untuk data terpusat yang diakses dan digunakan oleh sistem lain. Hal ini akan membuat duplikasi data yang akan digantikan layanan mikro dalam hal performa dan ketangkasan.

Perbandingan antara SOA dan layanan mikro

Arsitektur layanan mikro adalah evolusi dari gaya arsitektur SOA. Layanan mikro mengatasi kekurangan SOA untuk membuat perangkat lunak menjadi lebih kompatibel dengan lingkungan korporasi berbasis cloud modern. Layanan mikro bersifat terperinci dan memilih duplikasi data sebagai kebalikan dari berbagi data. Hal ini menjadikannya independen sepenuhnya dengan protokol komunikasinya sendiri yang dieskpos melalui API yang ringan. Pada dasarnya, menggunakan layanan mikro melalui API-nya merupakan tugas dari pelanggan sehingga tidak perlu ESB yang terpusat.

Bagaimana AWS membantu Anda mengimplementasikan layanan mikro?

AWS adalah tempat yang bagus untuk membangun aplikasi modern dengan pola arsitektur modular, model operasional nirserver, dan proses pengembangan yang tangkas. AWS menawarkan platform terlengkap untuk membangun layanan mikro dengan ketersediaan tinggi untuk menenagai aplikasi modern dalam berbagai cakupan dan ukuran. Misalnya, Anda dapat melakukan tugas berikut:

• Bangun, isolasi, dan jalankan layanan mikro yang aman dalam kontainer terkelola untuk menyederhanakan operasi dan mengurangi overhead manajemen.
• Gunakan AWS Lambda untuk menjalankan layanan mikro tanpa perlu menyediakan dan mengelola server.
• Pilih dari 15 basis data AWS relasional dan nonrelasional yang dibangun khusus untuk mendukung arsitektur layanan mikro.
• Pantau dan kontrol layanan mikro yang berjalan di AWS dengan AWS App Mesh secara mudah.
• Pantau dan atasi masalah interaksi layanan mikro kompleks dengan AWS X-Ray.

Layanan mikro AWS membantu Anda berinovasi secara lebih cepat, mengurangi risiko, mempercepat waktu masuk ke pasar, dan mengurangi total biaya kepemilikan. Mulai SOA dan layanan mikro di AWS dengan membuat akun AWS sekarang juga.

Langkah berikutnya di AWS

Lihat sumber daya tambahan terkait produk
Pelajari selengkapnya tentang Arsitektur Berorientasi Layanan 
Daftar akun gratis

Dapatkan akses secara instan ke AWS Tingkat Gratis. 

Daftar 
Mulai membangun di konsol

Mulai membangun dengan AWS di Konsol Manajemen AWS.

Masuk