Materi Pertemuan 10 (Service Oriented Architecture)

Nama          : Gede Haris Premana Wibawa.
Nim             : 1605551016.
Dosen         : I Putu Agus Eka Pratama ST., MT.
Matakuliah  : Network Centric Principles
Kampus      : Universitas Udayana, Fakultas Teknik, Program Studi Teknologi Informasi.

Apa sih SOA (Service Oriented Architecture) ? Mungkin banyak yang belum paham mengenai apa sebenarnya SOA ini. Postingan ini akan membahas mengenai SOA mulai dari pengertian hingga cara kerja dari SOA. 

Pengertian Service Oriented Architecture (SOA) 

Service Oriented Architecture (SOA) merupakan sebuah pendekatan dalam merancang desain sistem / software yang mana setiap komponen memberikan jenis layanan tertentu. Pada dasarnya SOA adalah sebuah arsitektur aplikasi dimana semua fungsi, layanan- layanan didefinisikan menggunakan sebuah  bahasa yang  terdeskripsi dan dapat  mengakses  antarmuka  yang  dipanggil  untuk melakukan  proses-proses  bisnis.  Setiap  interaksi adalah  independen  terhadap  yang  lain. Karena antarmuka  bersifat  independen  terhadap  platform, setiap  klien  dari  sembarang  device  dapat menggunakan  service  yang  disediakan.  SOA menghubungkan  sistem  operasi  yang  beragam  dan mampu  melakukan  otomatisasi  terhadap  proses bisnis  suatu  organisasi  secara  internal  atau enterprise.

Salah satu implementasi SOA yang paling banyak digunakan dikenal sebagai “Web Service Platform”. Web Service Platform menggunakan internet dan HTTP untuk komunikasi, sebuah bentuk XML (Web Services Definition Language (WSDL)) untuk menggambarkan layanan dan sesuatu yang disebut UDDI (Universal Description, Discovery and Integration Service) yang menyediakan mekanisme bagi klien untuk secara dinamis mencari layanan web lainnya.
Dalam sebuah perusahaan, penerapan arsitektur SOA menyediakan platform layanan bisnis yang dapat digunakan kembali dan digunakan untuk menyediakan informasi yang dibutuhkan untuk memenuhi tuntutan bisnis yang sedang berjalan secara fleksibel. SOA yang diimplementasikan dengan baik dapat mengintegrasikan aplikasi yang ada. 

Contoh jenis layanan lainnya dengan SOA dalam perbankan adalah layanan untuk pembayaran, transfer pembayaran, dan melihat status akun bank. Berikut ini adalah gambaran SOA pada bidang Perbankan.


Berdasarkan gambaran diatas mengenai Service Oriented Architecture dalam bidang Perbankan, layanan yang diberikan akan membantu klien dengan tampilan User Interface yang disediakan oleh pihak perbankan karena proses bisnis yang telah terintegrasi dengan Bank Service. Layanan tersebut diantaranya adalah Internet Banking, Telephone Banking, ATM Banking, dan Personal Banking. Selain itu SOA memberikan layanan berupa Web Services seperti Consumer-to-Bank, Bank-to-Bank, dan Enterprise-to-Bank. 

Oleh karena itu Service Oriented Architecture (SOA) sangat berhubungan dengan ilmu NCP yang mana NCP mampu menyediakan berbagai solusi untuk arsitekstur jaringan, konten, data, service hingga keamanannya seperti yang sudah dibahas pada pertemuan sebelum-sebelumnya seperti CDN, NCN, ICD dan lainnya. Dengan perpaduan antara SOA dengan Network Centric Principles (NCP) akan memberikan suatu keuntungan dalam kaitannya dengan kebutuhan enterprise, sehingga menjadi proses yang lebih baik.


Prinsip Service Oriented Architecture (SOA)

Service Oriented Architecture memiliki beberapa panduan prinsip yang  dapat dijabarkan sebagai berikut.
1. Standardized Service Contract. Ditentukan melalui satu atau lebih dokumen deskripsi layanan.
2. Loose Coupling. Layanan dirancang sebagai komponen mandiri, mempertahankan hubungan yang meminimalkan ketergantungan pada layanan lain.
3. Abstraction. Layanan sepenuhnya ditentukan oleh kontrak layanan dan dokumen uraian. Dengan menyembunyikan logika, yang dirangkum dalam sebuah implementasi.
4. Reusability. Dirancang sebagai komponen, layanan dapat digunakan kembali secara lebih efektif, sehingga mengurangi waktu pengembangan dan biaya terkait.
5. Autonomy. Layanan memiliki kontrol atas logika yang mereka enkapsulasi dan, dari sudut pandang konsumen layanan, tidak perlu tahu tentang implementasinya.
6. Discoverability. Layanan didefinisikan oleh dokumen uraian yang merupakan metadata tambahan yang melaluinya dapat ditemukan secara efektif. Penemuan layanan menyediakan cara yang efektif untuk memanfaatkan sumber daya pihak ketiga. 
7. Composability. Menggunakan layanan sebagai blok bangunan, operasi yang canggih dan kompleks dapat diimplementasikan.


Referensi
[1] I Putu Agus Eka Pratama. "PPT Network Centric Principles Pertemuan 10". 2019.
[2] SarthakGarg."Service-Oriented Architecture".2015.

Materi Pertemuan 9 (Content Delivery / Distributed Network)

Nama          : Gede Haris Premana Wibawa.
Nim             : 1605551016.
Dosen         : I Putu Agus Eka Pratama ST., MT.
Matakuliah  : Network Centric Principles
Kampus      : Universitas Udayana, Fakultas Teknik, Program Studi Teknologi Informasi.

Siapa disini yang belum pernah mendengar istilah Content Delivery Network ? Atau dalam bahasa indonesia adalah jaringan pendistribusian konten. Istilah ini erat kaitannya dengan hosting dan website, karena teknologi ini banyak digunakan oleh pengelola / pengembang untuk menjaga kestabilan dari suatu website.

Pengertian Content Delivery / Distributed Network  

Content Delivery / Distributed Network adalah kumpulan dari server global yang terletak dari di beberapa data center dan tersebar di berbagai negara. Jaringan ini mendistribusikan konten yang ada dalam sebuah website ke berbagai pengguna. 
Sebuah website yang diakses secara online tentunya memiliki server pusat yang menyimpan seluruh data website tersebut. Ketika seseorang mengakses atau menggunakan layanan berbasis web tersebut, maka komputer akan mengirim request http ke pusat server meminta data untuk ditampilkan. Setelah itu, server akan memproses permintaan itu dan mengirimkan data yang diminta komputer pengakses. Data ini bisa berupa halaman website, video, gambar dan sebagainya. 



Proses permintaan dan penerimaan tersebut memerlukan waktu. Salah satu faktor yang mempengaruhi kecepatan proses tersebut adalah jarak antara server dan komputer pengguna, semakin jauh jarak antara server dan pengguna maka memerlukan waktu yang cukup lama. Oleh karena itu CDN meningkatkan kecepatan pengiriman data melalui jaringan server kepada pengguna dari lokasi terdekat yang paling memungkinkan. Misalkan lokasi visitor berada di India dan Server berada di US, CDN akan mengirimkan file dari lokasi terdekat yang paling memungkinkan sehingga file bisa jadi dikirimkan dari server yang juga terletak di India. 

Bagaimana CDN Bekerja ?

CDN ialah jaringan server yang terhubung bersama-sama dengna tujuan mendistribusika konten dengan cepat, handal, dan seaman mungkin dengan memanfaatkan teknologi cache. Website yang menggunakan layanan CDN pasti mendapatkan NameServer yang sudah disediakan oleh CDN. Pada saat kunjungan pertama pengguna melakukan permintaan akses ke layanan berbasis web. CDN akan mengunduhkan beberapa konten untuk di-cache ke dalam server CDN dan kemudian dikirimkan ke pengguna. 
Kunjungan pertama pengguna memang membutuhkan waktu yang cukup lama dibandingkan dengan kunjungan kedua dan setelahnya. Saat kunjungan kedua pengguna akan mengambil konten yang sudah di-cache oleh CDN sehingga hosting tidak perlu memberikan seluruh konten karena tinggal melengkapinya saja. Proses ini juga akan menyingkat pengiriman dikarenakan akan mengambil file dari server yang paling dekat dengan pengguna.

CDN untuk Siapa ?

CDN sendiri diperuntukan oleh cukup banyak orang, saat ini setengah dari semua layanan berbasis web sudah dilayani oleh CDN. Sebagian besar layanan web menggunakan CDN menjadi populer dalam sektor-sektor berikut ini. 
1. Layanan web hosting
2. E-Commerce / Mobile Commerce 
3. Media dan Entertainment
4. Game Online
5. Layanan kesehatan
6. Website Pemerintahan
7. Website Perguruan Tinggi

Selain itu CDN dapat membantu dalam menganai masalah TI seperti berikut.
1. Meningkatkan kecepatan pemuatan halaman
2. Menangani beban lalu lintas tinggi
3. Memblokir spammer, dan bot
4. Mengurangi konsumsi bandwidth
5. Load Balancing diantara server
6. Memproteksi website dari serangan DDoS

Bagaimana Cara Menggunakan CDN ?

Content Delivery Network (CDN) dapat kita temui di beberapa situs-situs yang menyediakan jasa CDN, seperti CloudFlare. Namun ada beberapa opsi yang sesuai dengan kebutuhan, diantaranya sebagai berikut. 
1. Opsi Pertama. Dapat dibuat sendiri dalam Cloud
Hal yang diperlukan adalah berupa biaya, sumber daya manusia yagn memadai dan regulasi setempat.

2. Opsi  Kedua. Menggunakan penyedia layanan CDN yang berbayar maupun gratis.
Ada banyak penyedia layanan CDN khususnya di Indonesia maupun di Luar Negeri seperti Cloudflare, Incapsula, Jetpack Photon, MaxCDN, RackSpace, dan CDN77.


Referensi
[1] I Putu Agus Eka Pratama. "PPT Network Centric Principles Pertemuan 9". 2019.
[2] Yasin K."Penjelasan Lengkap Apa itu CDN dan Cara Menggunakannya".2019.
[3] Imperva."Chapter One : What Is a CDN".2019.