1 of 36

JARINGAN KOMPUTER

Oleh :�Condro Wibawa

Universitas Gunadarma

2 of 36

M8

RPC, REST, WEB API, WEB SERVICES

3 of 36

API

(Remote Procedure Call)

4 of 36

Application Programming Interface (API) adalah metode  agar dua buah service/komputer/aplikasi saling berkomunikasi di dalam jaringan

Berkomunikasi disini seperti bertukar data maupun memberikan sebuah perintah

Secara umum,

desain teknologi API dapat dibagi menjadi dua buah jenis: RPC dan REST

5 of 36

RPC

(Remote Procedure Call)

6 of 36

Remote Procedure Call (RPC) adalah sebuah metode yang memungkinkan kita untuk mengakses sebuah prosedur yang berada di komputer lain

Apa itu Prosedur ?

Prosedur adalah kumpulan perintah yang dirangkum/dibundling ke dalam satu paket, sehingga ketika paket tersebut dipanggil, semua perintah yang ada di dalamnya akan dijalankan

Untuk dapat melakukan proses RPC ini, sebuah server harus menyediakan layanan remote procedure tersebut yang bisa diakses oleh komputer client

7 of 36

Dalam RPC, procedure yang dijalankan benar-benar ada di dalam komputer server, sehingga proses pengambilan data terjadi lebih cepat.

Agar client dapat mengakses procdure (API) yang ada di server, maka server harus membuka socket/portnya.

Oleh sebagian orang, cara ini disebut kurang aman, karena setiap orang bisa masuk ke dalam server melalui celah port/socket tersebut.

8 of 36

Cara Kerja RPC :

  • Klien memanggil prosedur stub lokal.
  • Prosedur Stub akan memberikan parameter dalam suatu paket yang akan dikirim ke jaringan.
  • Proses ini disebut sebagai marshalling.
  • Fungsi Network pada O/S (Operating system – Sistem Operasi) akan dipanggil oleh stub untuk mengirim suatu message.
  • Kemudian Kernel ini akan mengirim message ke sistem remote. Kondisi ini dapat berupa connectionless atau connection-oriented.
  • Stub pada sisi server akan melakukan proses unmarshals pada paket yang dikirim pada network.
  • Stub pada server kemudian mengeksekusi prosedur panggilan lokal.

9 of 36

Cara Kerja RPC :

  • Jika eksekusi prosedur ini telah selesai maka eksekusi diberikan kembali ke stub pada server.
  • Stub server akan melakukan proses marshals lagi dan mengirimkan message nilai balikan (hasilnya) kembali ke jaringan.
  • Message ini akan dikirim kembali ke klien.
  • Stub klien akan membaca message ini dengan menggunakan fungsi pada jaringan.
  • Proses unmarshalled kemudian dilakukan pada message ini dan nilai balikan akan diambil untuk kemudian diproses pada proses lokal.

10 of 36

Contoh Aplikasi RPC :

  • Remote Graphic
    • Remote Desktop Connection
    • Teamviewer, Anydesk, dll

  • Shell Remote
    • Putty SSH Remote

  • Querying SQL
    • Akses query menggunakan SQL

  • System Sharing
    • File Sharing
    • Device Sharing

11 of 36

Kelebihan RPC :

  • Mempermudah pengiriman data lewat jaringan
  • Proses lebih cepat, karena langsung bekerja pada layer transport, sehingga tidak banyak melewati layer-layer di atasnya
  • Dukungan dari berbagai platform (hampir semua sistem operasi menyediakan RPC API)
  • Mudah dipahami, karena menggunakan model pemrograman Procedural.

12 of 36

Kekurangan RPC :

  • Langsung bekerja dengan membuka port/socket untuk dialokasikan terhadap aplikasi tertentu, sehingga menjadi isu keamanan
  • Cara kerja bersifat On on One at A Time, di satu waktu hanya bisa melayani 1 client 1 proses, sehingga menyebabkan antrian
  • Menggunakan paradigmaa pemrograman procedural yang kaku.

13 of 36

REST

(Representational State Transfer)

14 of 36

Representational State Transfer (REST),

adalah jenis API yang resource-oriented atau enitity-oriented. API REST menjadikan resource sebagai objek saat kedua service berkomunikasi

Resource-oriented artinya setiap tindakan yang dilakukan didasarkan pada resourcenya

Hal ini berbeda dengan RPC yang menggunakan pendekatan action based oriented, dimana tindakan yang dilakukan tidak didasarkan pada device. Artinya device lah yang harus menyesuaikan.

15 of 36

Pendekatan REST biasanya digunakan untuk pengembangan aplikasi yang didasarkan pada DATA. Oleh karenanya perintah/method pada REST selalu berhubungan dengan operasi terhadap data

Methods yang disediakan oleh REST sama dengan protokol HTTP yaitu

GET, POST, PUT, PATCH, dan DELETE,

Methods tersebut digunakan untuk melakukan operasi CRUD (create, read, update, delete) terhadap sebuah resource.

16 of 36

Contoh: Service A menyimpan data product (resource : product), 

jika service A memperbolehkan service lain untuk mengakses product, maka service A akan menyediakan endpoint berikut:

  • — API GET /products : mengembalikan daftar products dengan masing-masing berisikan attributes-nya seperti id, name, price, dll.
  • — API GET /products/:id : mengembalikan detail sebuah product dengan id tertentu
  • — API POST /products : membuat product baru
  • — API PATCH /products/:id : mengupdate product tertentu
  • — API DELETE /products/:id : menghapus product

17 of 36

Dalam REST, server menyediakan satu layanan lagi untuk menampung semua permintaan client. Layanan inilah yang kemudian mengatur lalu lintas ke resource

Sehingga dalam REST yang bisa mengetahui socket/port resource hanyalah layanan REST (bukan client), sehigga proses menjadi lebih aman

Layanan REST ini tidak lain adalah aplikasi bantu, sehingga proses pengaksesan data menjadi lebih lama. Apalagi aplikasi layanan REST ini biasanya dibuat di layer Application.

18 of 36

Cara Kerja REST :

  • REST bekerja pada protocol HTTP (layer aplikasi)
  • Untuk menggunakan REST API, client mengakses method tersebut menggunakan URL (bisa lewat browser atau cURL) dengan action tertentu.
  • Layanan REST server akan menerima request tersebut dan mencarikan data yang diminta di dalam server (resource)
  • Server akan memberikan respons dalam format JSON/XML/HTML
  • Data diterima oleh client

19 of 36

Contoh Aplikasi REST :

  • Berbagai Aplikasi yang memberikan layanan WEB API

20 of 36

Kelebihan REST :

  • Scalable karena antar service ter-decouple dengan baik
  • Cocok dengan paradigma pemrograman saat ini (Object Oriented), dimana REST berbasis resource oriented
  • Bisa melayani banyak client dalam waktu bersamaan, lalu lintas data diatur oleh Layanan REST.

21 of 36

Kekurangan REST :

  • Proses transmisi data relatif lama, karena bekerja di lapisan aplikasi, sehingga banyak layer dan protocol yang harus dilewati.
  • Lebih kompleks dibandingkan RPC

22 of 36

WEB API DAN

WEB SERVICES

23 of 36

Layanan REST API biasanya juga merupakan layanan Web API, karena layanan tersebut bisa diakses melalui Web (protocol HTTP/HTTPs)

Web API biasanya digunakan untuk menyediakana layanan tertentu saja dari sebuah sistem dan dibuat untuk kebutuhan komunikasi antar system (bisa system internal maupun system eksternal)

Sedangkan Web Services merupakan gabungan dari banyak Web API yang membentuk/mengakomodir sebuah sistem

24 of 36

Beberapa karakteristik adari Web Services adalah sebagai berikut:

  1. Interoperability

Aplikasi /data bisa digunakan pada berbagai perangkat dan platform

  • Loosely Coupled

Antar modul tidak saling terhubung secara langsung, sehingga pengembangan lebih mudah

  • Scalability

Lebih mudah dan cepat dalam pengembangannya

25 of 36

Contoh :

Dalam penanganan Covid19, kemenkes mengembangkan sebuah sistem yang kompleks, yang terdiri dari berbagai macam informasi : data pasien, data rumah sakit, data dokter, data obat, dll.

Sistem ini mungkin saja dikembangkan menggunakan konsep Web Service.

Akan tetapi, untuk mendukung interoperabilitas, kemenkes dibuka membuka data pasien saja untuk diakses secara public. Maka, agar hanya data pasien saja yang bisa diakses, dibuatlah Web API hanya untuk berbagi data pasien saja.

26 of 36

Web API Jadwal Sholat dari lakuapik :

https://raw.githubusercontent.com/lakuapik/jadwalsholatorg/master/adzan/bekasi/2019/12.json

27 of 36

Beberapa karakteristik adari Web Services adalah sebagai berikut:

  1. Interoperability

Aplikasi /data bisa digunakan pada berbagai perangkat dan platform

  • Loosely Coupled

Antar modul tidak saling terhubung secara langsung, sehingga pengembangan lebih mudah

  • Scalability

Lebih mudah dan cepat dalam pengembangannya

28 of 36

MICRO SERVICES

29 of 36

Perkembangan paradigma pemrograman saat ini sedang mengarah ke arsitektur Micro Services.

Micro Services adalah

skema/konsep untuk membagi service ke dalam service-service lain yang lebih kecil

30 of 36

Tujuan :

  • Membagi beban kerja sistem, dari yang bersifat monolitic menjadi beberapa sub sistem yang lebih kecil
  • Memberikan performa yang lebih karena setiap micro services memiliki sumber daya masing-masing
  • Setiap micro services bisa dikembangkan dengan teknologi yang sesuai (tidak harus sama antar micro services)
  • Fokus pengembangan
  • Cocok untuk sistem yang terus menerus berkembang

31 of 36

Dalam prakteknya,

Setiap services dalam Micro Services menerapkan layanan REST/RPC untuk berkomunikasi antar services tersebut

Agar layanan REST/RPC dapat berjalan optimal, tentu harus didukung dengan arsitektur jaringan yang mumpuni

32 of 36

Contoh Arsitektur Micro Services :

33 of 36

Contoh Arsitektur Micro Services :

34 of 36

Ada pertanyaan

?

35 of 36

Daftar Referensi :

  1. https://appmaster.io/id/blog/grpc-vs-istirahat
  2. https://glints.com/id/lowongan/rest-adalah/
  3. https://www.domainesia.com/berita/rest-api-adalah/
  4. https://mtarget.co/blog/apa-itu-rest-api/
  5. https://medium.com/@kennabila/mengenal-perbedaan-rest-dan-rpc-ee5df04262c0

36 of 36

Kunjungi Pula :

  1. Instagram : @pak.condro
  2. Web : http://condro_wibawa.staff.gunadarma.ac.id/
  3. Blog : https://pakcondro.blogspot.com/
  4. Youtube : pojokan