![]() |
Gambar 1. Komponen-komponen utama dari implementasi SOA |
Apakah SOA itu?
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) Sebagai contohnya, Anda seorang eksekutif yang sedang bepergian ke luar negeri. Saat 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 tertinggal. Anda tidak perlu khawatir, karena melalui sebuah alat khusus yang disediakan hotel, semua gadget anda masih tetap bisa saling bertukar data. Anda juga bisa mengisi semua baterai gadget Anda tanpa dipusingkan oleh charger yang ketinggalan.Alat khusus tersebut bisa dibilang bekerja dengan menggunakan pendekatan Service Oriented Architecture (SOA). Pada kasus Anda, SOA bekerja untuk menghilangkan hambatan-hambatan interaksi antar gadget (HP, PDA, dan laptop) serta perbedaan konektor ke sumber daya utama.
Melihat deinisi SOA di atas,nampak sekali bahwa istilah SOA sangat kental terkait dengan sektor pengembangan aplikasi dari TI. Tidak bisa dipungkiri, perangkat lunak aplikasi adalah aset TI yang terpenting yang memungkinkan TI memberikan dukung-annya terhadap bisnis yang dijalankan perusahaan. ![]() |
Gambar 2. Layanan SOA |
Karakteristik dari SOA
Seperti yang didefinisikan diatas, 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 di-panggil 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.
![]() |
Gambar 3. Contoh penggunaan SOA pada pelayanan bank. |
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.
Karakteristik lainnya adalah service dalam SOA disusun atas 2 hal: Service Interface dan Service Implementation.
![]() |
Gambar 4. SOA Web Services Inteface |
Service Interface menyatakan bagaimana service tersebut dapat dipanggil seperti parameter input/output dan lokasi ia berada. Misalkan, service interface untuk Customer Lookup menyatakan berbagai cara untuk mendapatkan informasi tentang seorang ustomer (dari id customer atau nama dan sebagainya) dan struktur data customer yang dikembalikan. Service Implementation adalah bagaimana logic dari service Customer Lookup tersebut dijalankan.
![]() |
Gambar 5. Service dan Implementation Interface |
Service implementation sangat terkait dengan teknologi pemrograman yang digunakan. SOA tidak perlu memperdulikan bagaimana sebuah service diimplementasikan, yang penting adalah bagaimana service tersebut dapat dipanggil dan memberikan informasi sesuai dengan Service Interface-nya.
Karakteristik SOA yang terakhir adalah service tersebut harus business oriented. Dalam arti, setiap service yang didiinisikan harus melakukan suatu aktiitas bisnis tertentu, misalkan Customer Lookup, Fund Transfer, Check Inventory, dan sebagainya. Tidak dapat dipungkiri pula bahwa keberhasilan SOA belakangan ini ikut dimotori oleh tingginya penerimaan teknologi web services di kalangan pengembang aplikasi. Walaupun ide tentang SOA telah ada sebelum web services dilahirkan, web services dan SOA saat ini telah menjadi suatu si-nergi dan bahkan beberapa kalangan menganggap dengan menggunakan web services maka ia telah menerapkan SOA.
KETERANGAN DAN GAMBAR SOA
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 [1]. 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.
![]() |
Gambar 6. Enkapsulasi Logic |
Saat ini, SOA merupakan sebuah solusi yang baik untuk permodelan sistem di perusahaan atau organisasi besar. Sebab, permodelan ini memiliki banyak kelebihan, diantaranya:
- Dapat menyatukan berbagai sistem yang memiliki platform berbeda, seperti J2EE dan .NET. sebab dengan pendekatan ini, yang pengembang akan memilih untuk membangun sebuah layer di atas sistem dan sistem tersebut yang dapat saling berkomunikasi dengan pesan yang sudah distandardisasi, misalnya menggunakan teknologi XML. 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.
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. Pertanyaannya adalah, apakah dengan menggunakan teknik web services, SOA sudah akan terwujud?
BAGAIMANA CARA KERJA SOA?
![]() |
Gambar 7. 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 lalulintas 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 dalam sebuah jaringan yang kadang cukup berbelit.
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.
Service-oriented Architecture (SOA) membantu perusahaan mengakomodasi perubahan secara lebih baik dengan menyediakan fleksibelitas untuk pemanfaatan sumber TI yang lebih baik pula. Lebih khusus, perencanaan ini menawarkan pendekatan arsitektural dalam lingkungan komputasi terencana dan teratur yang dibangun pada layanan yang secara bebas berangkaian, dapat digunakan kembali, dan berbasis standar serta dapat berubah sesuai dengan bergesernya kebutuhan bisnis. Inilah kebutuhan dan proses bisnis yang fokusnya membantu enterprise untuk bisa sukses dan bersaing dengan makin meningkatnya standar TI, berarti: fleksibelitas bisnis tergantung fleksibelitas TI.
SOA dan Integrasi
Peranan SOA dalam integrasi proses bisnis,bisa dalam internal perusahaan maupun antar perusahaan. Dalam 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.
![]() |
Gambar 8. SOA dan Akses Multi-channel |
Aplikasi SOA
Sedangkan dalam dunia digital, SOA menjadi sangat menarik, apalagi dengan tekanan regional untuk membuat sebuah sistem yang transparan, cepat dan anti birokrasi, yang di Indonesia sering disebut sebagai Single Window.
Dalam SOA dunia digital yang akan disebut SOA saja setelah ini, yang lebih khususnya dalam dunia perinternetan yang sangat berhubungan dengan Web, populer setelah berkembangkan sebuah mekanisme request-response yang memungkinkan pesan (message) terkirim dari satu titik ke titik lainnya.
Interaksi sebuah sistem dengan sistem lain, atau mewrap sebuah aplikasi dari aplikasi tradisional menjadi aplikasi berbasis SOAP, secara tidak langsung telah merubah sebuah sistem tersebut menjadi sebuah aplikasi yang SOA Ready. SOAP adalah sebuah mekanisme implementasi XML yang terstandarisasi.
Teknologi ini sering disebut sebagai Web Services, sebuah mekanisme melayani permintaan (messaging) yang mengacu pada protokol Web yang sering disebut HTTP. Tetapi tentu saja SOA itu bukan hanya Web Services saja. Ingat SOA itu lebih luas, dan lebih luas dari yang dapat kita bayangkan.
Perkembangan Web Services sebagai media terbuka untuk interaksi, yang berbasis pada HTTP yang juga merupakan standar terbuka, membuat Web Services dengan SOAP sebagai icon teknologinya, telah membuat Web Services menjadi teknologi primadona dalam dunia SOA ini. Apalagi perbedaan namanya sangat jelas, SOA dan SOAP.
SOAP Sebenarnya merupakan sebuah perwakilan dari sebuah envelope yang gunanya mirip dengan mekanisme melakukan surat menyurat. SOAP umumnya diciptakan lebih khusus, untuk surat menyurat resmi, seperti mengirim form purchase order, form pengajuan kredit, form meminjam buku. Sedangkan yang kurang formal dapat menggunakan XML saja.
Dalam implementasinya SOAP yang flat ternyata memiliki kekurangan yang sangat banyak, apalagi SOAP ini seperti kakeknya HTML, berbentuk flat file, sehingga diasumsikan tidak aman, untuk itulah maka hadir beberapa implementasi SOAP yang tentu saja membuat SOA menjadi lebih secure dan siap digunakan.
Standar berbasis Web Services yang lebih sering disebut dengan WS-Security adalah sebuah standar yang dikembangkan oleh OASIS yang juga mengembangkan teknologi ODF (Open Document Format). WS-Security ini memungkinkan melakukan implementasi Web Services yang terembed didalamnya security.
Sebenarnya ada standar lainnya yang dapat digunakan untuk membuat sebuah implementasi SOA menjadi lebih aman, diantaranya SAML untuk identity management (di Indonesia populer disebut Single Identity Number), XACML, XKMS, XML-Sig, WS-Federation, WS-I Basic Profile. Sebenarnya kita juga dapat membuat implementasi sendiri, tetapi umumnya entitas pengeluar standar di dunia Web Services adalah bersifat internasional.
![]() |
Gambar 9. SOA meta-model |
“A paradigm for organizing and utilizing distributed capabilities that may be under the control of different ownership domains. It provides a uniform means to offer, discover, interact with and use capabilities to produce desired effects consistent with measurable preconditions and expectations.”
Arsitektur yang digunakan tidak tertumpu pada suatu teknologi tertentu. SOA dapat diimplementasikan menggunakan teknologi yang ada. Termasuk REST, RCP, DCOM, CORBA atau Web Services. SOA dapat diimplementasikan menggunakan protokol - protokol tersebut. Sebagai contoh dapat digunakan mekanisme sistem file untuk penyesuaian cara berkomunikasi antar data untuk menentukan spesifikasi interface antara penyesuaian proses terhadap konsep SOA. Kunci pokok dari SOA adalah service yang mandiri dengan interface yang terdefinisi dengan baik yang dapat dipanggil untuk melakukan tugas dan fungsinya berdasarkan standar-standar tertentu, service tersebut tidak memerlukan pengetahuan masa lalu dari aplikasi yang dipanggil, dan aplikasi tidak memerlukan pengetahuan bagaimana service melakukan tugas-tugasnya.
SOA dapat dipandang sebagai sebuah gaya arsitektur sistem informasi yang memungkinkan pembuatan aplikasi yang dibuat dengan mengkombinasikan service yang bebas dan penggabungan service. Operasi antar layanan yang ada berbasis pada definisi yang jelas (seperti kontrak atau WSDL) yang mandiri dari platform dan bahasa pemprograman yang mendasarinya.
Definisi interface akan menyembunyikan implementasi dari suatu bahasa pemprograman layanan. Sistem berbasis SOA dapat dikembangkan dari berbagai platform dan teknologi (seperti java dan dot net). Sebagai contoh, Service yang ditulis dengan bahasa C# berjalan di platform Dot Net dan layanan yang ditukis dengan java berjalan di platform java EE. Keduanya dapat digunakan dengan sebuah aplikasi gabungan umum. Aplikasi-aplikasi tersebut berjalan pada masing-masing platform dan tetap dapat menggunakan layanan yang berjalan pada aplikasi lainnya sebagai web service, hal ini memudahkan penggunaan kembali layanan tersebut.
SOA dapat mendukung aktivitas integrasi dan konsolidasi dalam sistem yang kompleks, tetapi SOA tidak diperuntukkan atau menyediakan sebuah metodologi atau kerangka kerja bagi proses pendokumentasian kemampuan atau layanan.
![]() |
Gambar 10. Service-Oriented Modeling Framework (SOMF) Version 2.0 |
SOM Framework (SOMF) adalah pengembangan metodologi siklus hidup berorientasi layanan, proses pemodelan disiplin khusus . Ini menawarkan sejumlah praktek pemodelan dan disiplin yang berkontribusi terhadap berorientasi layanan siklus hidup pengembangan sukses dan modeling selama proyek.
Service Oriented Modelling Framework (SOMF) memperkenalkan lima kegiatan pemodelan siklus hidup utama yang mendorong evolusi layanan selama desain - time dan run - time. Pada tahap desain - waktu layanan berasal sebagai entitas konseptual (layanan konseptual), kemudian berubah menjadi unit analisis (layanan analisis ), berikutnya transisi menjadi sebuah entitas kontrak dan logis (layanan desain) , dan akhirnya didirikan sebagai layanan solusi).
- Model Penemuan : Model ini harus digunakan ketika memastikan entitas perangkat lunak baru untuk memberikan solusi
- Model Analisis : Model analisis dirancang untuk memeriksa kelayakan komponen software untuk menawarkan solusi, membantu menganalisis bisnis dan persyaratan teknis , dan membantu mengukur keberhasilan pelaksanaan
- Model Desain : Memfasilitasi desain logis entitas perangkat lunak, dan memberikan kontribusi untuk hubungan komponen , komposisi penyebaran, dan pembentukan transaksi
- Model arsitektur Teknis : Model ini melibatkan tiga perspektif utama arsitektur : arsitektur konseptual , arsitektur logis , dan arsitektur fisik
- Model Konstruksi : Membantu dengan praktek modeling selama kode sumber tahap implementasi
- Model Jaminan Kualitas : menyatakan komponen perangkat lunak untuk produksi dan menjamin stabilitas dan kontinuitas usaha teknis
- Operasi Model : Memungkinkan lingkungan produksi yang stabil dan menjamin penyebaran yang tepat dan konfigurasi entitas software
- Model arsitektur Bisnis : Model ini mendorong integrasi yang tepat dari kontekstual dan struktural formasi bisnis dengan entitas software
- Model Governance : Penawaran praktik terbaik , standar, dan kebijakan untuk semua model implementasi SOMF
Sumber:
http://download.portalgaruda.org/article.php?article=15698&val=1028
http://en.wikipedia.org/wiki/Service-oriented_architecture
https://www.academia.edu/7478618/Service_Oriented_Modeling_and_Architecture_Bagus_Banget_
Tidak ada komentar:
Posting Komentar