Rabu, 14 November 2012

JOURNAL SOA



SOA
( SOFTWARE ORIENTED ARCHITECTURED )


Koim Liddinillah, Iskandar Yoga, Reny Widya Arinta, Anjar Kusuma Pratama, Alwin Okiwiyanto,
Teguh Adi Arto, Lukman Nurhakim

Manajemen Informatika, Program Pendidikan Vokasi, Universitas Brawijaya, Jl. Veteran , Malang, Kode Pos, Indonesia




ABSTRAK

Pendekatan Service Oriented Architecture (SOA) merupakan sebuah arsitektur yang berorientasi pada service yang mempunyai kemampuan terhadap semua entitas. Entitas tersebut menjadi sebuah service yang memiliki sifat untuk melayani. Implementasi yang menggunakan pendekatan SOA secara sederhana didefinisikan sebagai perubahan dari sebuah sistem yang pada mulanya hanya dipakai untuk sebuah masukan menjadi sebuah sistem yang memungkinkan untuk berkomunikasi dengan sistem lain yang ada dan tidak memiliki sifat pendekatan point to point. SOA dapat digambarkan sebagai sebuah permodelan dari suatu perangkat lunak yang dikembangkan dengan menggunakan pendekatan berorientasi pada service atau dikenal dengan istilah service orientation. SOA menggambarkan logika bisnis yang digunakan atau logika yang diotomatisasikan dalam sebuah sistem yang berskala besar. Setiap service memiliki otonomi masing – masing sehingga service tersebut tidak bergantung antara service yang satu dengan service yang lainnya. Komunikasi antar service tersebut dapat terjadi melalui sebuah protokol yang telah menerapkan standar yang sesuai sehingga dapat memudahkan dalam melakukan pengintegrasian service yang baru dan menyusun kembali kumpulan service yang telah ada yang disebabkan oleh perubahan yang terjadi pada proses bisnisnya.
 
1.    PENDAHULUAN

Petunjuk penulisan ini dibuat untuk keseragaman format penulisan dan kemudahan bagi penulis dalam proses penerbitan naskah di Jurnal Meteorologi dan Geofisika. Penulis bisa menggunakan bahasa Indonesia atau bahasa Inggris. Naskah dalam bahasa Indonesia harus sesuai dengan EYD yang berlaku, dan bila dalam bahasa Inggris sebaiknya memenuhi standard tata bahasa Inggris baku.

SOA atau Service Oriented Architecture adalah istilah di dunia TI yang banyak dibicarakan. Sesuai dengan namanya SOA adalah sebuah pendekatan dalam merancang (arsitek) suatu aplikasi dengan menggunakan kembali (reuse) komponen – komponen yang sudah ada sebelumnya. Dalam hal ini, komponen – komponen tersebut memberikan suatu jenis layanan bisnis (service) tertentu seperti antara lain: mengecek credit rating, mencari data customer, mengecek status inventori, melakukan transfer dana, dan lain sebagainya.
Dengan kata lain, SOA adalah sebuah arsitektur kerangka kerja berbasis standar terbuka yang memungkinkan perusahaan – perusahaan untuk saling mengintegrasikan data yang sebelumnya hanya tersimpan rapat di markas para pelanggan, mitra, atau pemasok. Dengan kata lain, SOA merupakan arsitektur yang mendukung integrasi bisnis sebagai layanan yang terhubung dan menjadi jalan menuju inovasi (SOA juga menjadi strategi bisnis berbasis teknologi dan hasil evolusi untuk mengintegrasi berbagai sumber informasi dari sumber kode atau platform yang berbeda – beda).
Banyak vendor, penyedia aplikasi, system integrator, arsitek, penulis, perusahaananalis, dan badan-badan standar memberikan definisi SOA. Definisi SOA beragam.Kebanyakan saling melengkapi dan tidak bertentangan dengan satu sama lain. SOAmemiliki berbagai definisi karena definisi sering disetel kepada audiens yang spesifik,seperti menjelaskan SOA untuk CEO berbeda dari menjelaskan SOA untuk  programmer. Layanan Orientasi Istilah ini sering digunakan secara sinonim denganSOA, tetapi hanya seperti SOA memiliki berbagai penafsiran. Layanan orientasi lebihluas dan merupakan cara berpikir tentang layanan dalam konteks bisnis dan TI. Bukuini tidak membuat perbedaan antara SOA dan orientasi pelayanan dan dalam beberapa kasus dapat menggunakan dua istilah sinonim. Yang telah disepakati definisi untuk SOA eludes industri. Siapapun definisi membacahalaman Wikipedia untuk SOA akan melihat tantangan mencoba untuk mendapatkankonsensus mengenai definisi SOA. Standar tubuh, kelompok OASIS, dan OpenGroup telah memberikan definisi SOA pelengkap tapi berbeda. Disajikan denganselembar kertas kosong, seniman melihat kanvas. Seorang penyair bisa mengisinyadengan ayat.
Untuk pengembang, SOA adalah sebuah model pemrograman atau paradigma mana web jasa dan kontrak menjadi desain dominan untuk interoperabilitas. Ini adalah layanan web ketika menggunakan Web ServiceDescription Language (WSDL) atau spesifikasi setara untuk menggambarkan layanantersebut. Layanan web memungkinkan organisasi untuk meng-komunikasikan informasi, menggunakan pesan, tanpa pengetahuan yang mendalam tentang masing-masing sistem TI.
SOA sering dianggap sebagai suatu gaya arsitektur yang telah ada selama bertahun-tahun. Gambar 1.1 menunjukkan gaya arsitektur SOA. Dalam skenario ini, konsumenlayanan memanggil atau menggunakan layanan. Layanan konsumen menggunakandeskripsi layanan untuk memperoleh informasi yang diperlukan tentang penyedialayanan (misalnya, layanan account) untuk dikonsumsi.
Deskripsi layanan menyediakan informasi yang mengikat sehingga konsumen dapatterhubung ke layanan, dan deskripsi mengidentifikasi berbagai operasi (misalnya,rekening membuka atau menutup) yang tersedia dari operator selular. Seorang broker dapat digunakan untuk mencari layanan tersebut menggunakan registry yangmenampung informasi tentang layanan dan lokasinya.
Manfaat fleksibilitas proses, penghematan waktu-ke-pasar, biaya yang lebih rendah, dan lain-lain dapatdicapai dengan SOA, tetapi hanya jika kita secara holistik mengadopsi pandangansemua stakeholder SOA dan aplikasinya dan mengejar adopsi SOA sesuai. Ketika pakar, arsitek, konsultan, atau eksekutif mendefinisikan SOA sebagai teknologi bermain hanya murni atau sebagai gaya arsitektur, memindahkan mereka.


2.       KARAKTERISTIK DARI SOA

SOA adalah suatu cara perancangan aplikasi dengan menggunakan komponen – komponen atau pelayanan yang sudah ada. Dengan kata lain, suatu aplikasi dibangun secara modular. Sebenarnya pendekatan modular ini bukanlah sesuatu yang baru. Teknik – teknik pemrograman masa kini seperti object oriented programming, telah mengedepankan pendekatan modular dalam pembangunan aplikasi. Namun yang membuat SOA berbeda adalah komponen atau service tersebut dibangun dan berinteraksi satu sama lain secara bebas dan lepas (loose coupled).
Dengan bersifat loose coupled, sebuah service dapat dipanggil oleh program / service lainnya tanpa program pemanggil tersebut perlu memperhatikan di mana lokasi service yang dipanggil berada dan platform / teknologi apa yang digunakan oleh service tersebut. Loose coupling sangat penting bagi SOA karena dengan demikian pemanggilan sebuah service oleh service lainnya dapat dilakukan pada saat run-time.
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.
 

Gambar 1 : integrasi SOA pada Kegiatan bisnis Bank

Ada pun beberapa karakteristik lainnya yang terdapat pada pengimplementasian SOA dengan bisnis, yaitu :
  • Service Interface, yaitu : service interface untuk Customer Lookup menyatakan berbagai cara untuk mendapatkan informasi tentang seorang customer (dari id customer atau nama dan sebagainya) dan struktur data customer yang dikembalikan. Service Implementation adalah bagaimana logic dari service Customer Lookup tersebut dijalankan.
  • Service Implementation, yaitu :  entah ditulis dengan bahasa Java atau COBOL, yang penting adalah bagaimana service tersebut dapat dipanggil dan memberikan informasi sesuai dengan Service Interfacenya.
  • Tidak dapat dipungkiri pula bahwa keberhasilan SOA belakangan ini ikut dimotori oleh tingginya penerimaan teknologi web services di kalangan pengembang aplikasi.
Gambar 2 : ilustrasi Service Interface dan Service Implementation 




CARA KERJA SOA

Inovasi membutuhkan perubahan dan SOA memudahkannya.SOA bekerja seperti charger untuk semua fungsi, atau dengan kata lain SOA membangun interface yang bisa diakses oleh berbagai macam software. 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 lalu lintas data antar software tersebut yang secara otomatis akan meningkatkan ongkos perusahaan. Teknologi SOA bertugas untuk meringankan masalah tersebut dengan cara mengurangi hambatan integralisasi.

Melihat karakternya, SOA saat ini banyak diminati perusahaan – perusahaan keuangan dan perbankan. Namun, industri asuransi dan telekomunikasi juga banyak yang mengadopsi teknologi SOA.

Hal ini disebabkan fleksibilitas dan arsitektur yang ditawarkan SOA cukup handal untuk mengurangi berbagai hambatan interaksi antar software dan memotong rangkaian proses



Gambar 3 : ilustrasi alur kerja SOA melewati lintas Service dalam perusahaan



Untuk menggambarkan bagaimana SOA bekerja dalam sebuah perusahaan atau institusi bisnis, dapat mengambil contoh transaksi pembelian barang melalui internet yang dilakukan seorang netter (pengguna internet) 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.



4.       SOA  LIFE CYCLE

Ada 4 tahap besar dalam life-cycle SOA. Keempat tahap ini pun dapat diperinci lagi sebagai berikut :
·         Plan, yaitu Fokus pada kebutuhan perusahaan dan tentukan area – area yang membutuhkan perubahan. Tahapan rinci dalam Plan :
    1. Berkomitmen pada strategi untuk SOA di antara keseluruhan stategi TI.
    2. Menentukan secara eksplisit level SOA terhadap keseluruhan TI dan kapabilitasnya.
    3. Memperbaiki visi dan strategi SOA.
    4. Mereview dan menyesuaikan dengan aturan – aturan bisnis di pemerintahan.
    5. Mengerjakan perencanaan yang sudah dibuat.
  • Define, yaitu  Mendefinisikan SOA terhadap keperluan bisnis. Tahap rincian dalam Define :
    1. Membangun sebuah COA (Center of Excellence) dari SOA.
    2. Mendefinisikan perkiraan keperluan tambahan, seperti untuk mengupgrade infrastruktur TI.
    3. Menyelaraskan dengan proses bisnis yang berbeda antar bagian.
    4. Menjabarkan biaya – biaya yang dibutuhkan.
    5. Membuat standar kualitas setiap service dalam SOA.
  • Enable, yaitu Menjalankan SOA dalam mendukung bisnis. Tahap rincian dalam Enable:
    1. Memonitor SOA.
    2. Mengembangkan teknologi dan mengelola aset SOA.
    3. Mempersiapkan sumber daya manusia.
    4. Menjalankan kebijakan – kebijakan dalam menjalankan infrastruktur SOA.
  • Measure, yaitu Mengukur sejauh mana efektifitas dan efisiensi SOA dalam pencapaian tujuan. Tahap rincian dalam Measure :
    1. Memonitor SOA.
    2. Menganalisa hasil sebelum dan sesudah menggunakan SOA


5.       FUNGSI- FUNGSI SOA
SOA membagi fungsi-fungsi menjadi unit-unit yang berbeda (layanan), yang dapat didistribusikan melalui suatu jaringa 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.
 
 
Layer 1 OPERATIONAL SYSTEMS
Di layer ini meliputi sistem operasional yang telah ada disuatu perusahaan yang membantu aktifitas bisnis. Sistem operasional terdiri atas semua aplikasi buatan, system yang ada, system transaction-processing, serta database.
Layer 2 SERVICE COMPONENT LAYER
Komponen di layer ini disesuaikan dengan contract yang didefinisi oleh service yang ada di layer services. konsumer tidak menyadari service component, yang menenkapsulasi compleksitas dalam implementasi. keuntungan dari komponen facade ini adalah fleksibilitas terhadap perubahan system operasional tanpa merubah service definition.
Layer 3 SERVICES LAYER
dalam layer ini meliputi semua services yang di definisi. definisi dari setiap service, seperti informasi syntatic dan semantic dijelaskan di layer ini. sedangkan informasi syntactic adalah dasar dari seluruh operasi dari service, seperti input output pesan, dan definisi dari kesalahan service, sedangkan informasi semantic adalah dasar dari polis service, seperti service management desicions, service access requirements, dan sebagainya.
Layer 4 BUSINESS PROCESS LAYER
bisnis proses menjelaskan bagaimana sebuah bisnis berjalan. proses bisnis dalam representasi IT tentang bermacam-macam aktifitas yang terkoordinasi dan terkolaborasi di dalam enterprise untuk membentuk suatu fungsi bisnis tingkat tinggi yang spesifik. layer ini mewakili proses seperti orchestration atau composition of loosely coupled services. layer ini juga bertanggung jawab atas semua managemen lifecycle dari proses beserta dengan orchestration dan choreography.
Layer 5 COMSUMER LAYER
layer ini menggambarkan berbagai saluran dimana fungsi-fungsi IT disalurkan.saluran tersebut dapat berupa tipe user yang berbeda beda seperti contohnya, komsumer external dan internal yang mengakses kemampuan aplikasi melalui mekanisme pengaksesan seperti B2B system, portals, rich clients, dan bentuk lainnya.


6.       OTOMATISASI LOGIC

Service Oriented Architecture (SOA) adalah sebuah permodelan perangkat lunak yang dibangun dengan pendekatan service oriented. Service oriented sendiri merupakan sebuah pendekatan yang memiliki visi ideal di mana setiap resource dari perangkat lunak terpartisi secara bersih satu sama lain.
Setiap resource ini disebut dengan service. Service ini merepresentasikan sebuah business logic atau automation logic dalam sebuah sistem besar. Setiap service memiliki otonomi sendiri yang membuatnya tidak tergantung satu sama lain.
Setiap service dapat berkomunikasi satu sama lain melalui sebuah protokol yang sudah terstandardisasi sehingga memudahkan untuk melakukan integrasi service baru dan penyusunan ulang kumpulan service disebabkan proses bisnis yang berubah.
SOA merupakan sebuah solusi yang baik untuk permodelan sistem di perusahaan atau organisasi besar. Sebab, permodelan ini memiliki banyak kelebihan, diantaranya :
  1. Dapat menyatukan berbagai sistem yang memiliki platform berbeda, seperti J2EE dan dotNET. sebab dengan pendekatan ini, beberapa pengembang yang akan memilih untuk membangun sebuah layer di atas suatu sistem, tidak akan mendapatkan masalah. Sistem tersebut nantinya akan dapat dimungkinkan untuk saling berkomunikasi dengan pesan yang sudah distandardisasi, misalnya menggunakan teknologi XML atau teknologi lainnya. Dalam sudut pandang SOA, kedua sistem itu masing – masingnya akan dianggap sebagai service.
Tahan terhadap perubahan. Perusahaan atau organisasi besar seringkali berubah struktur untuk meningkatkan efisiensi dan kinerja. Akibatnya, perangkat lunak juga terkena imbas untuk menyesuaikan diri terhadap proses bisnis yang baru. Permodelan perangkat lunak dengan SOA akan mengurangi effort untuk modifikasi perangkat lunak tersebut. Sebab, karena seluruh logic dari sistem sudah terpartisi secara bersih menjadi sekumpulan services, kita hanya perlu menyusun ulang seluruh service tersebut dan jika perlu menambahkan yang baru. Hal ini jelas mengurangi biaya, tenaga, dan waktu.


7.       SOA DAN WEB SERVICES

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. Pembangunan SOA tidak harus menggunakan Web Services, sebab ada bermacam – macam teknologi lain yang memungkinkan, tapi menggunakan Web Services untuk membangun sebuah sistem SOA adalah langkah yang baik.

Gambar 4 : ilustrasi cara kerja sebuah web service



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.


8.       KELEBIHAN SOA

Sesungguhnya apa yang dijanjikan oleh SOA tidak hanya terbatas pada penghematan biaya dan tenaga dari upaya pembangunan aplikasi, namun pada akhirnya adalah terwujudnya suatu organisasi yang mampu dengan cepat mengadaptasi perubahan proses – proses bisnis di dalamnya agar mampu menjawab tuntutan pasar terkini.
Pada prinsipnya, memulai sebuah inisiatif SOA dimulai dengan membangun sejumlah service yang kelak dapat di-reuse (digunakan kembali).
Disini ada beberapa pendekatan yang bisa kita ambil :
·         Kita dapat memulai dengan membangun dari scratch (dari desain awal) beberapa service misalnya dalam rangka suatu usaha pembangunan aplikasi yang baru atau menulis ulang sebuah aplikasi yang sudah ada.Keuntungan dari pendekatan ini adalah service yang kita bangun dapat benar-benar dirancang agar kelak dapat di-reuse secara maksimal. Tentu saja, pendekatan ini membutuhkan waktu dan tenaga yang paling banyak dibandingkan pendekatan lainnya.
·         Kita dapat membuat program – program yang sudah ada menjadi service oriented. Hal ini bisa dilakukan terhadap program – program yang sudah dibangun secara modular sehingga tinggal menambahkan teknik – teknik web services di dalamnya. Jadi, dibuatkan service interface-nya tanpa merubah logika jalannya program. Dengan demikian pengetesannya cukup pada interfacenya saja, sedangkan fungsi / logika di dalamnya tidak perlu dites lagi karena tidak berubah.
·         Aplikasi – aplikasi yang sudah ada, terutama aplikasi yang dibeli secara paket seperti ERP, CRM dan lain – lain, dapat ”dibungkus” agar dapat dipanggil melalui interface web services. Dari aplikasi – aplikasi tersebut, kita dapat membuat beberapa service mulai dari level service terendah seperti Customer Lookup atau sampai level yang tertinggi seperti Create Invoice. Service level rendah bisa juga digabungkan membentuk service baru yang lebih tinggi, seperti Service Fund Transfer dibangun atas servis Validate Account, Check Balances, Debit Account dan Credit Account. Pendekatan ini sangat dimungkinkan mengingat beberapa vendor SOA menyediakan adapter – adapter untuk beberapa paket aplikasi yang terkenal seperti SAP, Siebel dan lain – lain sehingga business logic di dalamnya dapat dipublikasikan sebagai services.
·         Services pun dapat dibeli dari pihak ketiga (misalnya sebuah perusahaan penyedia jasa informasi pemeringkat kredit). Selain itu saat ini vendor – vendor paket aplikasi juga sudah memodifikasi produknya agar tersedia dalam bentuk services yang dapat dipanggil secara web services.
·         produknya agar tersedia dalam bentuk services yang dapat dipanggil secara web services.
Gambar 5 Keuntungan yang ditawarkan SOA dalam berbagai level
 

Dengan membangun suatu koleksi Services, penghematan dapat dimulai. Jika 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.
Selain itu, waktu pengerjaannya juga semakin cepat sehingga memungkinkan perusahaan untuk memberikan layanan bisnis yang makin responsif terhadap tuntutan pasarnya. Dan bila hal ini menyangkut meningkatnya jumlah transaksi atau pelanggan, maka nilai kembalian secara inansial dari proyek SOA akan semakin nyata.



DAFTAR PUSTAKA

Artikel dari internet:



[2] Gambaran Arsitektur SOA.(2009),
(http://skripsiatl.blog.binusian.org/2009/09/06/gambaran-arsitektur-soa/), diakses 11 November 2012


(http://rovelatte.wordpress.com/2012/02/16/pengertian-url-uddi-soa-cloud-computing/), diakses 17 November 2012.


[4] Pengertian SOA (Service Oriented Architecture) dan manfaat bagi perusahaan. (2011).
(http://arifandhika.wordpress.com/2011/10/28/pengertian-soa-service-oriented-architecture-dan-manfaat-bagi-perusahaan/), diakses 17 November 2012.


[5] Definisi SOA (service-oriented architecture). (2011).


 

 
 

Tidak ada komentar:

Posting Komentar

TUGAS RPL:

- buatkan jurnal tentang SOA(Software Oriented Arcchitecture)
- review tentang aplikasi berbasis SOA
- sertakan lampiran link Web Blog UB dan Luar UB. Blog luar UB sertakan ke link Blog UB anda dan Official Site UB(ub.ac.id)
- buatkan study kasus tentang aplikasi berbasis SOA dan rancangan implementasinya (tidak boleh ada yang sama)
- kumpulkan dalam bentuk hardcopy
- paling lambat rabu 14-11-2012 jam 12.00 di PPTI UB
- upload di Blog mahasiswa UB dan blog luar UB
- siapkan presentasi kelompok