Tentang Mata Kuliah
IF4052 Komputasi Layanan, 3 SKS. Topik besar sepanjang semester:
- Pengantar Service Computing
- Gaya Arsitektur SOA (dan Microservice)
- Prinsip-prinsip SOA
- Analisis & desain sistem SOA
- Teknologi pendukung SOA
- Cloud Services (SaaS, PaaS, IaaS)
- Tatakelola & keamanan SOA
- Advanced topics in Service Computing
Luaran (CPMK) — jadi acuan utama ujian:
- Memahami service dan arsitektur service, standar untuk service, siklus hidup service, dan pembangunan perangkat lunak berorientasi service.
- Mampu menggunakan kakas dan platform untuk pembangunan perangkat lunak berorientasi service.
- Mampu mempraktekkan pembangunan perangkat lunak berorientasi service.
Referensi utama: Service-Oriented Architecture: Concepts, Technology, and Design (Thomas Erl, 2008), SOA Design Patterns (Thomas Erl, 2009), SOA Security (Kanneganti & Chodavarapu, 2008), Microservice Patterns (Chris Richardson, 2018 — microservices.io).
Apa itu Layanan (Service)?
Beberapa definisi:
- KBBI (jasa): perbuatan yang baik/berguna bagi orang lain; perbuatan yang memberikan segala sesuatu yang diperlukan orang lain; aktivitas/kemudahan/manfaat yang dapat dijual kepada konsumen yang menggunakannya.
- Merriam-Webster: pekerjaan yang dilakukan oleh yang melayani; bantuan, kegunaan, manfaat.
- Oxford: aksi membantu/melakukan pekerjaan untuk seseorang; sistem yang memenuhi kebutuhan publik (transportasi, komunikasi, listrik, air); (ekonomi) padanan non-material dari suatu barang — service tidak menghasilkan kepemilikan, ini yang membedakannya dari barang fisik; (produksi) proses yang menghasilkan manfaat dengan memfasilitasi perubahan pada pelanggan, kepemilikan fisiknya, atau aset tak berwujudnya.
Ilustrasi (dari dunia nyata ke computing)
- Anak kost tidak punya mesin cuci → pakai layanan cuci kiloan.
- Tidak sempat masak → sarapan kupat tahu di pertigaan.
- Malas nyetir sendiri → naik taksi → malas cari taksi sendiri → pakai aplikasi ride-hailing.
- Sinkronisasi jam komputer/smartphone → pakai layanan NTP.
- Develop aplikasi e-commerce butuh konversi mata uang → pakai web service currency converter.
Service dalam Konteks Computing
- Pengembang aplikasi tidak perlu membangun semua fungsionalitas sendiri.
- Fungsionalitas disediakan oleh service provider (“server”).
- Pengguna layanan disebut service requester (“client”).
- Sebuah service dapat memanfaatkan service lain untuk memenuhi request-nya — analog dengan tukang kupat tahu yang memanfaatkan jasa delivery untuk pengadaan bahan baku.
Service BUKAN…
- Bukan teknologi spesifik tertentu.
- Bukan jawaban akhir untuk reuse.
- Bukan nama baru untuk EAI (Enterprise Application Integration).
- Bukan cara baru untuk melakukan RPC.
Service-Oriented Architecture (SOA)
SOA: gaya arsitektur (architectural style) dalam pengembangan perangkat lunak, di mana:
- Semua komponen IT (basis data, server, sistem CRM, dll) diperlakukan sebagai building block yang siap pakai (plug & play).
- Berfokus pada pengembangan dan pemanfaatan (use & reuse) program-program kecil bernama service untuk memenuhi kebutuhan sistem informasi.
- Service dipandang sebagai komponen dalam pembangunan perangkat lunak.
- Service dibangun untuk digunakan oleh beberapa aplikasi, bukan hanya satu (tidak dedicated).
Definisi arsitektur (IEEE Standard 1471): “the fundamental organization of a system embodied in its components, their relationships to each other and to the environment, and the principles guiding its design and evolution.”
Keuntungan SOA bagi organisasi:
- Lean, agile, flexible — memanfaatkan sumber daya yang sudah ada.
- Kemudahan beradaptasi terhadap perubahan pasar maupun teknologi.
Analogi: Restoran Italia
| Elemen restoran | Konsep SOA |
|---|---|
| Restoran menyediakan makanan | a service |
| Setelah order diambil, makanan dibuat, disajikan, dst. (mungkin melibatkan proses lain) | service dapat terdiri dari service lain |
| Menu menunjukkan layanan yang tersedia | service description |
| Order ditulis/diteriakkan ke koki | service berkomunikasi lewat messages |
The SOA Vision
SOA terdiri dari lingkungan intra-/inter-organisasi di mana service apapun dapat memanggil service lain (mungkin remote). Service memiliki banyak tipe: business service, data service, infrastructure service.
Apa itu service (secara formal)?
- Contract: apa yang dilakukan service (opsional dideskripsikan).
- Terms: mendefinisikan properti pada service, misal atomicity, isolation, proteksi keamanan, apa yang terjadi jika service gagal.
- Quality-of-Service (QoS): kondisi terkait pengiriman layanan — performance, reliability, dsb (mis. pesan harus sampai dalam 5 detik, downtime setahun maksimal 5%).
Service bisa dianggap sebagai generalized procedure (analog procedure pada bahasa pemrograman).
The SOA Triangle
Tiga entitas utama SOA dan interaksinya:
graph TD DA["Discovery Agencies<br/>(Service Description)"] SR["Service Requestor<br/>(Client)"] SP["Service Provider<br/>(Service)"] SR -- Find --> DA SP -- Publish --> DA SR <-- Interact --> SP
- Service Provider publish deskripsi service-nya ke Discovery Agency.
- Service Requestor find (mencari) service yang dibutuhkan lewat Discovery Agency.
- Setelah ditemukan, requestor dan provider interact langsung.
Main Ingredients Service
- Services — implementasinya sendiri.
- Service descriptions — dokumentasi/kontrak service.
- Messages — cara komunikasi antar service.
- Policy — aturan/batasan yang mengatur service.
Implementasinya umumnya melalui web services.
Food for Thought: SOA sebagai “real” sistem OO
Banyak konsep SOA sebenarnya sudah dijabarkan dalam OOP:
| Konsep SOA | Padanan OOP |
|---|---|
| Service requester mengirim message ke service provider | Objek berkomunikasi dengan message passing |
| Service description | protocol/interface/header/daftar method suatu kelas |
| Service requester tidak tahu representasi internal service provider | Enkapsulasi/information hiding |
Menariknya, sistem dengan SOA berhasil mencapai “holy grail” OOP yang gagal diwujudkan realita OO murni: objek yang dibuat dengan bahasa pemrograman & platform berbeda-beda dapat saling berkomunikasi.
Flashcard
flashcards Apa 3 poin Luaran (CPMK) utama IF4052? :: (1) Memahami service, arsitektur service, standar, siklus hidup, dan pembangunan PL berorientasi service; (2) Mampu menggunakan kakas/platform untuk pembangunan PL berorientasi service; (3) Mampu mempraktekkan pembangunan PL berorientasi service. Apa rumus/komponen dari sebuah “service” secara formal? :: Service = Contract + Terms + QoS (Quality of Service). Sebutkan 3 hal yang service BUKAN :: Bukan teknologi spesifik, bukan jawaban akhir untuk reuse, bukan nama baru untuk EAI, bukan cara baru melakukan RPC. Dalam analogi restoran Italia, apa yang merepresentasikan “service description”? :: Menu restoran (menunjukkan layanan yang disediakan). Sebutkan 3 entitas dalam SOA Triangle dan relasinya :: Service Requestor (Find), Discovery Agencies (tempat publish/find), Service Provider (Publish) — Requestor dan Provider kemudian ber-Interact langsung. Apa definisi SOA sebagai gaya arsitektur? :: Gaya arsitektur di mana semua komponen IT diperlakukan sebagai building block plug & play, berfokus pada use & reuse service kecil untuk memenuhi kebutuhan sistem, dan service dibangun untuk dipakai banyak aplikasi bukan hanya satu. Sebutkan 4 main ingredients dari service :: Services, Service descriptions, Messages, Policy. Bagaimana SOA mencapai “holy grail” OOP yang gagal dicapai OOP murni? :: Dengan interoperabilitas: objek (service) yang dibuat dengan bahasa pemrograman dan platform berbeda-beda dapat tetap saling berkomunikasi lewat message passing dan service description standar.