SOA (Service Oriented Architecture)
Dosen
Pengampu:
Reza Maulana, S. Kom., M.T
KELOMPOK
1 :
1.
Laila Inayatul Faidah (51013017)
2.
Lilly Santosa (51013018)
PROGRAM STUDI STRATA SATU SISTEM INFORMASI
STMIK KHARISMA MAKASSAR
TAHUN AJARAN 2016/2017
BAB I
PENDAHULUAN
1.1
Latar
Belakang
Sebagai contoh dari definisi SOA dapat disederhanakan
seperti jika anda sebagai seorang eksekutif yang sedang berpergian ke luar
negeri. Saat anda membongkar barang bawaan di kamar hotel, anda baru sadar
ternyata charger untuk laptop dan PDA anda ketinggalan. Parahnya, wireless USB
yang berfungsi untuk saling bertukar data antara handphone, PDA dan laptop anda
juga ikut ketinggalan. Anda tidak perlu khawatir, karena melalui sebuah alat
khusus yang disediakan hotel, semua gadget anda masih tetap saling bertukar
data. Anda juga bisa mengisi semua baterai gadget anda tanpa dipusingkan oleh
charger yang ketinggalan. Alat khusus tersebut bisa dibilang bekerja dnegan
menggunakan service oriented architecture (SOA). Pada kasus ini, SOA bekerja
untuk menghilangkan hambatan-hambatan interaksi antar gadget serta perbedaan
konektor ke sumber daya utama.
Dalam bisnis perusahaan akan selalu mendapatkan tantangan
yang datang dari permintaan pelanggan dan persaingan pasar. Hal ini menuntut
perusahaan agar secara cepat merespon dengan membuat inovasi. Namun inovasi ini
terbentur dengan teknologi yang sedang berjalan di perusahaan dan mengakibatkan
cost yang besar ketika akan melakukan inovasi. Hal inilah yang akhirnya
membatasi perusahaan dalam berinovasi, sehingga pelanggan bisa saja tidak loyal
dan pesaing melakukan inovasi yang lebih canggih.
Ketika kita berpikir dengan arsitektur tradisional,
tentunya akan sulit dan butuh effort yang besar untuk berinovasi. Bisnis proses
yang terlanjur berjalan dengan aplikasi-aplikasi yang ada, ternyata mempunyai
platform dan tempat yang berbeda. Dengan SOA (Service Oriented Architecture)
hal ini dapat dipecahkan. Bisnis proses dipecah kedalam service-service.
Service adalah bagian dari bisnis proses yang kumpulan fungsi, prosedur atau
proses yang memberikan respon jika diminta. Service ini dapat saling
berkomunikasi walaupun berbeda platform.
1.2 Rumusan
Masalah
Pada makalah ini,
akan kami sampaikan penjelasan tentang service oriented architecture (SOA).
Dalam makalah ini dijelaskan mengenai definisi SOA, karakteristik, kelebihan
dan kekurangan SOA, cara kerja dan cara menggunakan SOA, Revolusi SOA.
1.3 Tujuan
Tujuan
makalah ini adalah menerapkan konsep SOA pada pengembangan sistem sehingga
memiliki interoperability lintas
platform dan mampu berkomunikasi dengan unit lain dengan menyediakan service
yang dapat diakses oleh aplikasi lain.
BAB II
PEMBAHASAN
2.1 Arsitektur Enterprise
Arsitektur Enterprise (AE) atau yang dalam bahasa inggris
dikenal dengan Enterprise Architecture (EA), mempunyai beberapa pengertian, di
antaranya adalah sebagai berikut :
1. Enterprise
Architecture merupakan deskripsi dari misi stakeholder yang di dalamnya
termasuk informasi, fungsionalitas/kegunaan, lokasi organisasi dan parameter
kinerja. Arsitektur enterprise menggambarkan rencana untuk mengembangkan sebuah
sistem atau sekumpulan sistem. (Osvalds, 2001)
2. Enterprise Architecture secara berkelanjutan mempengaruhi manajemen organisasi serta area teknologi yang ada dalam organisasi untuk pengembangan blueprint sistem informasi (Ducet et al, 2008) dari berbagai disiplin baik secara teori maupun praktis.
Latar belakang dibentuknya konsep architecture enterprise
adalah adanya kebutuhan organisasi dalam membangun sistem informasi untuk
memisahkan data, proses, infrastruktur teknologi, orang, waktu, dan motivasi
dalam suatu kerangka kerja architecture enterprise (Zachman, 2003). Kebutuhan
pemisahan komponen informasi yang berjalan dalam suatu perusahaan dimaksudkan
untuk menghindari pengulangan data, proses, dan kesalahan identifikasi
kebutuhan teknologi yang berjalan dalam suatu sistem informasi agar berjalan
secara efektif dan efisien.
Mengapa harus memiliki arsitektur enterprise? Karena
perkembangan teknologi informasi dan komunikasi yang semakin kompleks, menuntut
hadirnya rancang bangun yang komprehensif. Ada beberapa manfaat dari arsitektur
enterprise (Katili, 2004), salah satunya adalah memperlancar proses bisnis. Keuntungan
dasar dalam membangun sebuah arsitektur enterprise adalah untuk menemukan dan
mengurangi pengulangan pada proses bisnis. Penyebab pengulangan ini dikarenakan
pandangan organisasi yang berbeda-beda pada data atau proses bisnis. Pendekatan
dasar untuk membangun arsitektur enterprise adalah memfokuskan pada data dan
proses
2.2 SOA (Service Oriented Architecture)
Menurut OASIS, SOA adalah sebuah cara untuk mengatur,
memanfaatkan dan mendistribusikan informasi/service dibawah domain/platform
yang berbeda. Memberikan sebuah sarana standar untuk ditawarkan, ditemukan dan
memberikan interaksi dengan service lain sehingga memberikan hasil baru sesuai
dengan apa yang diharapkan. Dalam perancangan aplikasi, menggunakan SOA, aplikasi
akan memanggil modul-modul yang sudah dibangun sebelumnya. Pendekatan modular
ini bukanlah suatu hal baru. Teknik-teknik pemrograman terkini telah
mengedepankan pendekatan modular dalam membangun aplikasi. Akan tetapi SOA
berbeda dengan modular pembangunan aplikasi tersebut karena komponen (service)
pada SOA dibangun dan berinteraksi dengan service lain secara bebas dan lepas (loose coupled).
SOA menggambarkan pola yang membantu sebuah aplikasi
client terhubung pada sebuah service. Pola tersebut menyajikan mekanisme yang
digunakan untuk menggambarkan sebuah service, mempublikasikan dan menemukan
service, dan berkomunikasi dengan service. Pola tersebut digambarkan pada
Gambar 1 (Manes 2003).
SOA membagi fungsi-fungsi menjadi unit-unit yang berbeda
(layanan), yang dapat didistribusikan melalui suatu jaringan dan dikombinasikan
serta digunakan ulang untuk membentuk aplikasi bisnis. Layanan-layanan ini
saling berkomunikasi dengan mempertukarkan data antar mereka atau dengan
mengkoordinasikan aktivitas antara dua atau lebih layanan. Konsep SOA sering
dianggap didasari atau berkembang dari konsep-konsep yang lebih lama dari
komputasi terdistribusi dan pemrograman modular.
2.3 Karakteristik SOA
Suatu
konsep biasanya dikenal dari karakteristiknya, karakteristik dari SOA adalah:
1. Komponen-komponen
yang dibangun dalam SOA berinteraksi bebas dan lepas satu sama lain, dengan
bersifat loose coupled sebuah servis
dapat digunakan oleh program atau servis lainnya tanpa
perlu memperhatikan platform
atau teknologi yang
digunakan oleh servis tersebut
Sebagai contoh, misalnya sebuah aplikasi
core banking menyediakan sebuah service Fund Transfer, maka aplikasi-aplikasi
banking lainnya seperti treasury, payment gateway, ATM switching dan sebagainya
dapat memanggil service Fund Transfer tersebut tanpa perlu memusingkan di mana
Fund Transfer tersebut berada di dalam jaringan dan teknik pemanggilan yang
harus digunakan.Hal ini kontras dengan pendekatan tight coupling di mana dalam
hal ini setiap aplikasi perbankan di atas masing-masing harus mempunyai fungsi
Fund Transfer di dalamnya sehingga akan menyulitkan dan membutuhkan
biaya/resource besar jika perlu merubah logic dari Fund Transfer ke requirement
bisnis yang baru di dalam setiap aplikasinya.
2. SOA tersusun
dari dua bagian, yaitu service interface dan service implementation.
Sebagai contoh misalnya ada service
cetak sertifikat pelatihan, dalam mencetak sebuah sertifikat pelatihan maka
ada data yang
diinputkan kedalam service
tersebut misalnya NIK,
Kode Pelatihan, dan ada data yang di outputkan yaitu sertifikat
pelatihan. Input/Output inilah yang dikatakan service interface atau dengan
kata lain parameter parameter input/output dari sebuah service. Lalu service
implementation adalah bagaimana sebuah data input di proses dalam service
tersebut hingga menghasilkan output, atau bisa dikatakan service implementation
berisi logic proses dari sebuah service. Service implementation sangat terkait
dengan teknologi pemrograman yang digunakan. Dalam SOA, SOA tidak memperdulikan
service implementationnya di bangun dengan bahasa pemrograman apa, yang penting
implementation dapat menerima input dan mengeluarkan output sesuai dengan
Interfacenya.
3. Servis
harus business oriented, maksudnya disini adalah setiap service yang disediakan
harus melakukan suatu aktifitas bisnis tertentu. Misalkan Customer Lookup, Fund
Transfer, Check Inventory, dan sebagainya.
2.4 Web Service dan SOA
Bagaimana cara menerapkan SOA di perusahaan? Web Services
seringkali dikaitkan atau bahkan disamakan dengan SOA. Namun sebenarnya
keduanya adalah hal yang sangat berbeda. SOA adalah sebuah konsep untuk
pengembangan perangkat lunak, sementara Web Services adalah sebuah aplikasi web
yang berinteraksi dengan aplikasi web lainnya untuk pertukaran data.
Web Services adalah sebuah teknik pemrograman di mana
sebuah service menggunakan standar-standar berbasis XML dalam menjelaskan
interface dan protocol yang harus digunakan untuk memanggil service tersebut.
Standar-standar tersebut adalah:
Ø SOAP
(Simple Object Access Protocol): Menjelaskan protokol tentang bagaimana sebuah
web service dapat dipanggil.
Ø WSDL
(Web Services Deinition Language): Sebuah format XML yang menjelaskan interface
dari sebuah web service (parameter input dan output).
Ø UDDI
(Universal Description, Discovery and Integration): Sebuah direktori yang
berisi daftar web service yang dapat ditemukan dan dipanggil oleh aplikasi
lainnya.
Dengan standar di atas, web services sangat mendukung
implementasi SOA dimana karakteristik SOA seperti loose coupling dan service
interface disediakan oleh teknologi web services.
2.5 Kelebihan dan Kekurangan SOA
Implementasi SOA pada perusahaan membutuhkan biaya yang
cukup besar, tetapi dengan perencaaan yang baik, SOA dapat memberikan
keuntungan yang besar.
Kelebihannya antara lain:
1. Penghematan
Dengan membangun suatu koleksi service,
penghematan dapat dimulai. Jka pada proyek yang pertama, waktu dan tenaga yang
dihabiskan paling besar, maka proyek selanjutnya, usaha yang dikeluarkan akan
makin kecil karena sudah banyak tersedia services sebagai hasil dari proyek
sebelumnya yang dapat di-reuse.
2. Kecepatan
Dalam SOA, proses bisnis dipecah dan
disederhanakan dalam bentuk services yang lebih kecil. Ketergantungan yang ada
antar service harus diminimalisir, sehingga apabila terjadi perubahan pada
suatu proses bisnis, cukup service yang berkaitan saja yang mengalami
perubahan. Dengan begini, sistem dapat merespon perubahan dengan cepat.
3. Real-time
responsive
Dalam service-service tersimpan business
dan batasan-batasan dalam bisnis dan service-service ini disimpan dan dikelola
dalam sebuah server apliasi yang disebut ESB. Sehingga berbagai jenis aplikasi
dapat mengakses business rules tersebut. Apabila terjadi suatu perubahan
terhadap business rules, ESB akan mengelolanya secara otomatis, sehingga rules
yang baru akan berlaku saat itu juga.
4. Channel
independent
Bisnis berkaitan dengan banyak pihak,
baik dari pelanggan maupun supplier dan memungkinkan adanya berbagai jenis
aplikasi yang berbeda-beda. Dengan adanya service dan ESB, memungkinkan
berbagai aplikasi tersebut untuk mengakses business rules yang telah kita
definiskan, sehingga pihak-pihak yang berkaitan dengan organisasi tidak
tergantung lagi terhadap suatu aplikasi tertentu yang telah kita definisikan.
5. Waktu
pengembangan yang lebih singkat
Bisnis proses yang dipecah dalam bentuk
service yang lebih kecil memungkinkan perubahan dan pengembangan pada service
yang tertentu saja. Karena pengembangan dilakukan secara rerfokus, waktu yang
dibutuhkan pun menjadi lebih sedikit.
6. Mengurangi
duplikasi
Service dalam SOA dikelola dalam server
aplikasi yang disebut ESB. Karena service dikelola secara terpusat, hal ini
akan mengurangi kemungkinan adanya duplikasi sistem. Selain itu, bentuk service
yang memungkinkan reuseability juga mengurangi adanya fungsi yang sama yang ada
di dalam sebuah sistem.
Kekurangan yang dimiliki SOA
adalah:
1. Kegagalan
dalam membuat business case untuk SOA
Bagian IT seringkali membuat kesalahan
dengan menganggap proyek SOA sebagai proyek IT. Padahal SOA bukanlah proyek
yang dapat dikerjakan IT sendiri. Tetapi harus mencakup seluruh departemen
dalam organisasi. Proses bisnis dimiliki dan dijalankan oleh tiap-tiap
departemen. Oleh karena itu diperlukan keterlibatan setiap depatemen untuk
mendapatkan pengertian yang lebih mendalam setiap proses bisnis yang diolah.
2. Menyerahkan
proyek SOA sepenuhnya ke vendor
Terkadang perusahaan mempercayakan
sepenuhnya proyek SOA kepada vendor, dan bergantung hanya kepada teknologi.
Padahal SOA bukan hanya masalah teknologi, dan pengembangannya pun tidak dapat
diserahkan sepenuhnya kepada pihak luar. Yang mengetahui secara detail mengenai
proses bisnis yang ada dalam perusahaan hanyalah orang-orang yang ada dalam
perusahaan tersebut. Oleh karena itu sebaiknya proses tidak diserahkan
sepenuhnya kepada vendor diluar perusahaan.
3. Kegagalan
dalam rencana dan eksekusi awal dalam implementasi
SOA akan membawa banyak perubahan
perusahaan dalam perusahaan. Karena itu perlu waktu yang tepat untuk melakukan
implementasi agar tidak menimbulkan resiko yang tinggi. Perencanaan perlu
dilakukan secara matang. Dan perencanaan dan waktu yang tepat untuk
implementasi tidak dapat dialihkan tanggung jawabnya kepada vendor.
2.6 Cara Kerja SOA
Inovasi membutuhkan perubahan dan SOA memudahkannya. Hal
ini disebabkan fleksibilitas dan arsitektur yang ditawarkan SOA cukup handal
untuk mengurangi berbagai hambatan interaksi antar software dan memotong
rangkaian proses dalam sebuah jaringan yang kadang cukup berbelit. Selama ini,
sebuah software dibangun dengan cara mengikat data dan alat pemrosesnya dalam
satu rangkaian. Tentu saja, semakin banyak software yang dibutuhkan akan
membuat perusahaan mengeluarkan uang dan tenaga lebih banyak lagi. Demikian
pula dengan semakin banyaknya lalulintas data antar software tersebut yang
secara otomatis akan meningkatkan ongkos perusahaan. Teknologi SOA bertugas
untuk meringankan masalah tersebut dengan cara mengurangi hambatan
integralisasi.
Untuk menggambarkan bagaimana SOA bekerja dalam sebuah
perusahaan atau institusi bisnis, dapat mengambil contoh transaksi pembelian
barang melalui internet yang dilakukan seorang netter atau pelanggan. Dalam
sistem TI pengecer yang menggunakan sebuah SOA, pembelian barang secara online
itu memicu serangkaian transaksi lainnya. Misalnya, kartu kredit pelanggan
diverifikasi, bagian pengiriman barang diberi tahu, gudang diminta untuk
menyesuaikan persediaan barang, dan catatan-catatan pembukuan diperbaharui.
Transaksi-transaksi tersebut berupa input informasi yang dikirim melalui sistem
atau software-software yang berlainan, yang kadang tidak sesuai dan tidak bisa
berhubungan satu sama lain. Namun, teknologi SOA telah memungkinkan
infrastruktur yang mendukung transaksi tersebut untuk dibaurkan dan
dikombinasikan secara integral.
Di atas kertas, semuanya memang terlihat semudah membalik
telapak tangan. Faktanya, membangun sebuah SOA memiliki berbagai tantangan yang
tidak mudah. Salah satu tantangan terbesar yang dihadapi pelanggan adalah
menentukan dari mana harus memulai SOA. Banyak departemen TI yang menerapkan
layanan Web dalam sebuah SOA, mereka memulai dari yang paling mudah lalu
meningkat ke bagian yang lebih sulit dan kompleks. Yang perlu diingat,
membangun sebuah SOA yang baik haruslah menyelaraskan tujuan utama bisnis
perusahaan dengan teknologi yang tepat sasaran. Jaringan yang baik dan terpadu
merupakan salah satu kunci keberhasilan penerapan SOA. Tentu saja dengan biaya
yang sesuai dengan kebutuhan.
2.7 Revolusi SOA
SOA membantu enterprise melepaskan diri dari kebergantungan
dalam mereduksi biaya perawatan dan operasional. Tujuannya adalah menciptakan
integrasi platform yang dapat diubah, diatur, diskalasikan dan terbuka serta
dapat membantu menutup celah antara bisnis dan teknologi terkait pandangan akan
proses bisnis enterprise.
Saat teknologi, metodologi dan standar industri SOA
matang, SOA menjadi lebih praktis bagi semua kalangan industri. Hasilnya, jenis
perusahaan, kapasitas dan industri apapun saat ini dapat mendistribusikan SOA,
dengan potensi hasil yang sangat besar. Tetapi di regional lain, khususnya
perusahaan di kawasan Asia harus berhati-hati dalam mengimplementasikan SOA
dengan tepat sebagai sebuah perjalanan dan bukan keputusan buru-buru.
Peranan
SOA dalam integrasi proses bisnis, pada internal perusahaan, penerapan SOA
memungkinan unit-unit bisnis bekerja secara sinergi, dari pabrikasi hingga
distribusi dapat lebih sinkron. Kerjasama antar perusahaan bukan hal yang
mustahil lagi pada masa ini. Sebuah perusahaan yang membuka layanan pembelian
online harus dapat mengirimkan produknya kepada customer. Untuk itu, ia harus
bekerja sama dengan agen pengiriman, yang akhirnya akan bekerja sama lagi
dengan jasa penerbangan kargo. Bayangkan, jika masing-masing perusahaan itu
menggunakan aplikasi yang tidak bisa saling berkomunikasi sehingga cara yang
mungkin dilakukan hanyalah cara manual yang sudah pasti akan memakan waktu
lama. Jika semua aplikasi yang dipakai sudah menerapkan SOA, masing-masing
dapat saling berkomunikasi sehingga diperoleh hasil/respon realtime. Bayangkan
juga sebuah agen perjalanan yang menyediakan jasa wisata liburan. Perusahaan
ini harus bekerjasama dengan hotel dan jasa angkutan yang ada di lokasi wisata.
Solusi yang umum dilakukan adalah membuat sistem integrasi untuk aplikasi yang
ada. Itu berarti untuk setiap pembukaan lokasi wisata baru atau penambahan
hotel baru, sistemnya harus di-setup agar dapat menyesuaikan. Proses setup ini
jelas memakan waktu dan biaya yang tidak sedikit jika tidak menggunakan prinsip
SOA.
SOA dan Akses Multi-channel
Sekarang ini hampir semua bank sudah memungkinkan
nasabahnya mengakses layanan dari berbagai sumber, mulai dari cara konvensional
melalui teler, cara layanan mandiri melalui ATM, lewat internet atau handphone,
dan layanan hotline phone banking. Semua ini bertujuan makin memudahkan nasabah
untuk mendapatkan layanan. Tetapi jika semua access-point itu tidak
terintegrasi dengan baik, bukanlah kepuasan yang akan didapatkan nasabah.
BAB
III
PENUTUP
3.1 Kesimpulan
- SOA memiliki sifat-sifat yang istimewa yang dapat menyelesaikan berbagai persoalan bisnis dan pendidikan. Sifat-sifat tersebut adalah loosely coupled dan konsep reuse serta interoperability.
- Loosely coupled memungkinkan setiap layanan yang ada tetap bisa berajalan dengan baik, meskipun layanan lainnya tidak berjalan dengan baik.
- Reuse memungkinkan adanya pembagian kerja atau desentralisasi beban dari berbagai layanan yang ada.
- Interoperability memungkinkan layanan menjamin dan menjadikan bisa berbagai jenis platform dan standard dokumen ataupun sistem saling berkomunikasi dengan baik.
Referensi