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:

  1. Memahami service dan arsitektur service, standar untuk service, siklus hidup service, dan pembangunan perangkat lunak berorientasi service.
  2. Mampu menggunakan kakas dan platform untuk pembangunan perangkat lunak berorientasi service.
  3. 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 restoranKonsep SOA
Restoran menyediakan makanana service
Setelah order diambil, makanan dibuat, disajikan, dst. (mungkin melibatkan proses lain)service dapat terdiri dari service lain
Menu menunjukkan layanan yang tersediaservice description
Order ditulis/diteriakkan ke kokiservice 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

  1. Services — implementasinya sendiri.
  2. Service descriptions — dokumentasi/kontrak service.
  3. Messages — cara komunikasi antar service.
  4. 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 SOAPadanan OOP
Service requester mengirim message ke service providerObjek berkomunikasi dengan message passing
Service descriptionprotocol/interface/header/daftar method suatu kelas
Service requester tidak tahu representasi internal service providerEnkapsulasi/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.