jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)
-
Upload
komang-adi -
Category
Documents
-
view
221 -
download
1
description
Transcript of jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)
II-1
BAB II DASAR TEORI
2.1 Business Process Management (BPM)
2.1.1 Konsep Dasar
Business Process Management (BPM) adalah disiplin ilmu untuk memodelkan, automatisasi,
mengelola, dan mengoptimasi proses bisnis untuk meningkatkan profitability [KAH07].
Proses bisnis yang dimaksud di dalam definisi BPM ini termasuk sistem teknologi informasi
dan interaksi manusia [NEW04]. Penggunaan dari disiplin ilmu ini semakin meluas di
organisasi. Hal ini disebabkan pentingnya sebuah organisasi menjadi efektif dan efisien
dengan terus memperbaiki proses bisnisnya.
Proses bisnis sendiri didefinisikan sebagai serangkaian aktivitas yang terstruktur atau
semiterstruktur yang dilakukan dalam sekumpulan atau oleh dua atau lebih individu untuk
mencapai tujuan bersama [KAH07]. Ada lima poin esensial dari definisi ini [KAH07]:
1. Proses bisnis terdiri atas sekumpulan oleh task (pekerjaan). Satu task tidak bisa
dikategorikan dalam proses bisnis.
2. Proses bisnis itu terstruktur atau semi-terstruktur. Hal ini berarti ada sekumpulan lojik
atau aturan yang mengatur keterurutan aktivitas. Aktivitas tidak dijalankan secara ad
hoc.
3. Task dapat muncul dalam serial atau paralel.
4. Harus ada setidaknya dua atau lebih individu atau aplikasi yang terlibat sebagai
pemain dalam melakukan tugas yang berbeda untuk sebuah proses.
5. Sekumpulan task harus memiliki tujuan, sehingga dapat dinilai untuk optimalisasi
berikutnya dengan melihat keberhasilan mencapai tujuan atau tidak.
Seperti dijelaskan pada poin nomor empat di atas, proses bisnis dewasa ini tidak seluruhnya
dijalankan secara manual oleh manusia. Sebagian dijalankan dengan bantuan sistem lain.
Konversi dari aktivitas sebuah organisasi dari manual atau setengah terkomputerisasi menjadi
terotomasi penuh disebut business process automation [NEW04].
2.1.2 Tujuan
Tujuan dari BPM seperti yang dituliskan pada [NEW04] adalah sebagai berikut.
1. Mengurangi ketidakcocokan antara kebutuhan perusahaan dengan sistem teknologi
informasi yang terimplementasi dengan memungkinkan pihak analis bisnis
memodelkan proses bisnis dan membiarkan bagian teknologi informasi (misal:
II-2
sebuah divisi atau departemen) menyediakan infrastruktur untuk mengeksekusi dan
mengontrol proses bisnis tersebut.
2. Meningkatkan produktivitas pegawai dan mengurangi biaya operasional dengan
mengotomatisasi dan melancarkan proses bisnis
3. Meningkatkan agility dan fleksibilitas pada perusahaan dengan secara eksplisit
memisahkan antara logika proses dari aturan bisnis dan merepresentasikan proses
bisnis dalam bentuk yang mudah diubah jika terjadi perubahan kebutuhan.
4. Mengurangi biaya pengembangan dan usaha dengan menggunakan bahasa
pemrograman high level yang memungkinkan analis bisnis dan pengembang secara
cepat membangun dan memperbaharui sistem teknologi informasi dalam domain
permaslahan tertentu
2.1.3 Business Process Management System (BPMS)
Dikarenakan saat ini peran teknologi informasi sudah semakin penting dalam sebuah
organisasi, konsep BPM banyak dikaitkan dengan penerapannya pada perangkat lunak yang
digunakan oleh organisasi tersebut. Pada dasarnya konsep BPM tidak menyangkut pada
perangkat lunak saja, namun pada seluruh proses bisnis yang dilakukan oleh perusahaan.
Untuk menunjang pengerjaan BPM pada perangkat lunak, terdapat sebuah teknologi yang
disebut sebagai Business Process Management System (BPMS).
2.1.3.1 Komponen-Komponen BPMS
Menurut [NEW04], umumnya komponen yang ada di dalam BPMS adalah sebagai berikut:
1. Process Modeling. Kakas ini berfungsi memodelkan proses bisnis dalam bentuk
visual. Kakas ini memungkinkan pihak yang tidak mengerti dalam hal implementasi,
tapi terlibat penting dengan proses tersebut dapat memodelkan proses bisnis untuk
dijalankan pada sistem.
2. Process Execution. Kakas ini menyediakan mesin untuk mengimpor model proses
yang telah dimodelkan pada kakas process modeling untuk dapat dijalankan dalam
sistem ini. Kakas ini juga bertanggung jawab menjalankan proses yang diimpor
tersebut. Beberapa contoh tanggung jawab dari kakas ini adalah:
• Menghubungkan beberapa task dan mengeksekusinya di dalam keterurutan yang
benar
• Memberikan dan mengalamatkan task kepada pengguna yang berhak
• Memantau status dari proses
II-3
• Mengakses sistem IT lokal atau remote untuk mengambil informasi yang
dibutuhkan proses, memperbaharui informasi yang dibuat oleh proses, dan
mengeksekusi transaksi yang didefinisikan oleh proses
• Mengawasi proses eksekusi, memberikan pemberitahuan saat business rule
dilanggar, dan melaporkan permasalahan kepada supervisor atau manajer jika
tidak dibenahi dalam jangka waktu tertentu.
Dikarenakan proses bisnis dapat berjalan dalam waktu yang lama, terkadang sebuah
process engine dibutuhkan untuk mendukung beberapa versi di dalam sebuah proses
3. Process Monitoring. BPMS juga memiliki kakas untuk mengawasi proses bisnis yang
berjalan. Beberapa kemampuan yang termasuk di sini adalah:
• Melihat laporan dari seluruh eksekusi proses
• Melihat laporan dari seluruh proses yang komplit
• Melihat status dari proses, apakah telah selesai atau masih berjalan
• Menghentikan sementara proses dan menyambungnya lagi
• Mengatur prioritas dari proses
4. Business Activity Monitoring (BAM). Komponen ini berfungsi untuk menganalisis
kejadian dan informasi yang tersimpan mengenai proses bisnis untuk menyediakan
feedback secara real-time untuk perbaikan proses bisnis.
Keempat komponen tersebut digambarkan pada Gambar II-9.
Gambar II-1 Komponen Dasar BPMS [NEW04]
II-4
2.1.3.2 Contoh BPMS
Saat ini terdapat banyak sekali BPMS. Pada pembahasan ini akan dibahas tiga diantaranya,
yaitu Intalio BPMS, jBoss jBPM, dan OpenESB.
1. Intalio BPMS
Intalio BPMS Community Edition (CE) merupakan sebuah BPMS yang
dikembangkan oleh Intalio. Pada Desember 2006 BPMS ini dirilis sebagai sebuah
produk open source, sehingga membebaskan pengembang manapun untuk
menggunakan dan mengajukan usulan untuk pengembangan perangkat lunak ini.
Intalio BPMS CE terdiri atas dua aplikasi utama, yaitu Intalio BPMS Designer dan
Intalio BPMS Server. Intalio BPMS Designer berfungsi untuk merancang proses
bisnis yang akan dieksekusi oleh Intalio BPMS Server, sementara BPMS Server
berfungsi untuk mengeksekusi proses bisnis yang telah didefinisikan dan memberikan
report terhadap hasil eksekusi tersebut. Intalio BPMS Server juga menyediakan
dukungan untuk mengintegrasikan web services dalam proses bisnisnya.
Perancangan yang difasilitasi oleh Intalio BPMS Designer dilakukan dengan notasi
Business Process Modeling Notation (BPMN), yang akan dikonversi ke BPEL untuk
dieksekusi. Selain fitur perancangan proses bisnis tersebut, BPMS ini juga
menyediakan fitur untuk merancang form untuk proses bisnis yang melibatkan
manusia.
Intalio BPMS Designer dibangun di atas Eclipse STP. Eclipse STP merupakan IDE
open source yang dapat dikembangkan sesuai kebutuhan. Aplikasi ini bersifat desktop
based. Sementara Intalio BPMS Server dibangun dengan menggunakan Apache ODE
(Orchestration Director Engine). Sebuah proyek dari Apache untuk mesin eksekusi
BPEL.
2. jBoss jBPM
Aplikasi jBoss jBPM adalah sebuah BPMS yang dikembangkan oleh jBoss. Seperti
halnya Intalio, aplikasi ini terdiri atas aplikasi server yang mengeksekusi proses
(jBPM Process Engine), dan sebuah aplikasi berbasis Eclipse untuk mendesain proses
(jBPM Process Designer).
Aplikasi jBPM Process Engine dapat digunakan sebagai pengintegrasi aplikasi-
aplikasi dalam sebuah enterprise, dan dapat juga dijadikan sebagai mesin eksekusi
proses bisnis dalam sebuah aplikasi. jBPM Process Engine mendukung eksekusi
proses yang didefinisikan dengan bahasa jPDL sebagai bahasa utama. Selain jPDL
II-5
juga disediakan ekstensi untuk dukungan eksekusi proses dalam bahasa BPEL.
Namun pengembangan dukungan untuk bahasa ini masih dalam tahap beta.
Aplikasi jBPM Process Designer yang disediakan oleh jBPM dapat
memvisualisasikan proses bisnis, namun terbatas dalam bahasa jPDL. Untuk eksekusi
dengan BPEL, dibutuhkan pembuatan kode BPEL secara manual.
3. OpenESB
Pada teknologi Java Enterprise Edition (JEE), terdapat sebuah standar yang
digunakan untuk integrasi aplikasi, yaitu Java Business Integration (JBI). Standard
ini digunakan untuk mengintegrasikan berbagai jenis aplikasi yang berada dalam
platform yang berbeda.
Teknologi JBI digunakan untuk menerapkan orkestrasi web service. Terdapat lima
komponen JBI utama untuk lapisan ini, yaitu :
1. Process Modeler, berfungsi untuk melakukan perancangan terhadap proses
bisnis yang akan dijalankan oleh perangkat lunak, dalam lingkungan JBI.
Komponen ini akan menerima masukan berupa proses bisnis yang dituliskan
dalam Business Process Modeling Notation (BPMN) dan mengubahnya
menjadi bahasa BPEL, yang menjadi keluaran. Hasil keluaran ini nantinya
akan digunakan oleh komponen process engine.
2. Process Monitoring, komponen ini berfungsi untuk memantau pekerjaan
yang dilakukan oleh process engine. Dari komponen ini dapat dilihat proses
bisnis apa saja yang bekerja, gagal, waktu eksekusi proses, dan fitur-fitur
lainnya sesuai dengan kebutuhan sistem. Komponen ini akan diimplementasi
menggunakan Java Management Extensions (JMX).
3. Process Engine, komponen ini berfungsi melakukan eksekusi dari proses
bisnis sesuai dengan keluaran dari process modeler.
4. JBI Normalized Message Router, komponen ini berfungsi sebagai jalur untuk
mengalirkan message dari satu komponen maupun service ke lainnya.
5. HTTP/SOAP Binding Component. Untuk menyambung setiap layanan dengan
lingkungan JBI ini, maka digunakan binding component. Dikarenakan pada
SOA telah disepakati untuk menggunakan SOAP sebagai format pesan, maka
untuk memungkinkan seluruh service terintegrasi digunakan HTTP/SOAP
Binding Component
Untuk mengimplementasikan model ini dapat digunakan aplikasi OpenESB. Aplikasi
ini telah mengimplementasikan lingkungan JBI mulai dari process modeler, process
II-6
engine, binding component, dan JBI message router. Komponen process monitoring
tidak langsung diimplementasi oleh OpenESB, namun dapat dibangun dengan
menggunakan teknologi Java Management Extension (JMX).
2.1.4 Business Process Modeling Notation (BPMN)
Business Process Modeling Notation (BPMN) merupakan sebuah standard untuk
memodelkan web service dan proses web service, yang diinisiasi oleh Business Process
Management Initiative (BPMI) [OWE03].
BPMN terdiri atas sebuah diagram, yaitu Business Process Diagram (BPD). Tujuan dari
pembuatan diagram ini adalah agar proses bisnis dapat mudah dimengerti dan dapat
memodelkan proses bisnis yang sulit.
BPMN merupakan satu-satunya inisasi dari BPMI yang dikembangkan saat ini. Selain
BPMN, terdapat Business Process Modeling Language (BPML) dan Business Process Query
Language (BPQL). [OWE03]. Diagram BPMN dirancang untuk dapat langsung dipetakan
menjadi BPML, seperti physical data model dipetakan menjadi Data Definition Language
(DDL). Salah satu BPML yang umum digunakan adalah Business Process Execution
Language (BPEL).
Contoh sebuah proses yang dimodelkan dalam BPMN dapat dilihat pada Gambar II-2 Proses
Lelang Online [OWE03]Proses tersebut memodelkan lelang online.
Gambar II-2 Proses Lelang Online [OWE03]
II-7
Diagram BPMN terdiri atas elemen. Elemen ini terbagi atas empat kategori, yaitu Flow
Object, Connecting Object, Swimlanes, dan Atrifacts. Berikut penjelasan dari masing masing
elemen BPMN.
1. Flow Object, terdiri atas:
a. Event direpresentasikan dalam bentuk lingkaran dan menjelaskan apa yang
terjadi saat itu. Ada tiga jenis event, yaitu start, intermediate, dan end.
Masing-masing mewakili kejadian dimulainya proses bisnis, interupsi proses
bisnis, dan akhir dari proses bisnis. Untuk setiap jenis event tersebut sendiri
terbagi atas beberapa jenis, misalnya message start, yang dilambangkan
seperti start event namun mendapatkan tambahan lambang amplop di
dalamnya, yang berarti ada pesan event tersebut dimulai dengan masuknya
pesan.
Gambar II-3 Elemen start, intermediate, dan end event
b. Activity merepresentasikan pekerjaan (task) yang harus diselesaikan. Ada
empat macam activity, yaitu task, looping task, sub process, dan looping
subprocess. Keempatnya secara terurut diperlihatkan pada Gambar II-4.
Gambar II-4 Elemen-Elemen Activity
c. Gateway merepresentasikan pemecahan alur yang terdapat di dalam proses
bisnis. Ada berbagai macam gateway, yaitu exclusive data based, exclusive
event based, inclusive event based, dan parallel. Keempatnya secara terurut
ditunjukkan dalam Gambar II-5.
Gambar II-5 Elemen-Elemen Gateway
2. Connecting Object, terdiri atas:
II-8
a. Sequence flow, merepresentasikan pilihan default untuk menjalankan proses
b. Message flow, merepresentasikan aliran pesan antar proses
c. Association, digunakan untuk menghubungkan elemen dengan artifact
Gambar II-6 Elemen sequence flow, message flow, dan association
3. Swimlanes. Elemen ini digunakan untuk mengkategorikan secara visual seluruh
elemen dalam diagram. Ada dua jenis swimlanes, yaitu pool dan lane. Perbedaannya
adalah lane terletak di bagian dalam pool untuk mengkategorisasi elemen-elemen di
dalam pool menjadi lebih spesifik.
Gambar II-7 Pool dan Lane
4. Artifacts. Elemen ini digunakan untuk memberi penjelasan di diagram. Elemen ini
terdiri atas tiga jenis, yaitu:
a. Data object, digunakan untuk menjelaskan data apa yang dibutuhkan dalam
proses
b. Group, untuk mengelompokkan sejumlah aktivitas di dalam proses tanpa
mempengaruhi proses yang sedang berjalan
c. Annotation, digunakan untuk memberi catatan agar diagram menjadi lebih
mudah dimengerti
Gambar II-8 Elemen data object, group, dan annotation
II-9
2.2 Service-Oriented Architecture (SOA)
Sebelum memahami mengenai pengertian SOA, ada baiknya untuk mengetahui definisi
service terlebih dahulu. Service dalam lingkup SOA merupakan sekumpulan fungsi, prosedur,
atau proses yang akan memberi respon jika diminta oleh sebuah client.
SOA adalah sebuah bentuk teknologi arsitektur yang mengikuti prinsip-prinsip service-
orientation (berorientasi service) [ERL05]. Konsep service-orientation ini melakukan
pendekatan dengan membagi masalah besar menjadi sekumpulan service kecil yang bertujuan
untuk menyelesaikan permasalahan tertentu. SOA tidak terkait dengan suatu teknologi
tertentu, tapi lebih ke arah pendekatan untuk pembangunan perangkat lunak yang moduler.
Untuk lebih jelasnya, konsep dari service-oriented ini akan dijelaskan pada bagian berikut.
2.2.1 Konsep Service-Oriented
Seperti telah dijelaskan sebelumnya, service-oriented merupakan sebuah pendekatan dalam
penyelesaian masalah besar dengan membaginya menjadi sekumpulan layanan (service) kecil
yang menyelesaikan permasalahan spesifik. Istilah ini telah ada cukup lama dan telah
digunakan untuk berbagai macam konteks permasalahan dan tujuan tertentu [ERL05].
Contoh dari dekomposisi permasalahan menjadi sekumpulan service ini dapat dilihat dalam
kasus pemesanan makanan di restoran. Misalkan seorang pelanggan ingin memesan makanan,
maka ia akan memanggil pelayan di restoran tersebut untuk mencatatan pesanan, lalu pelayan
tersebut memberikan pesanan kepada dapur untuk dimasak. Setelah makanan yang dimasak
telah jadi, makanan tersebut akan diantar ke pelanggan oleh pelayan. Dengan pendekatan
service-oriented, penyelesaian masalah itu dapat dibagi menjadi sekumpulan service berupa
pemesanan makanan, pengantaran pesanan ke dapur, pembuatan makanan di dapur, dan
pengantaran makanan ke pelanggan.
Selain definisi yang dijelaskan sebelumnya, service sendiri dapat dipandang sebagai
enkapsulasi lojik dari satu atau sekumpulan aktivitas tertentu. Bila dicontohkan dalam sebuah
otomasi bisnis, service dapat dilihat pada Gambar II-9. Otomasi bisnis merupakan
sekumpulan aktivitas yang disusun dalam langkah-langkah sebagai implementasi proses
bisnis.
Seperti dapat dilihat pada Gambar II-9, lingkup dari service tidak terbatas, service dapat
mengenkapsulasi sebuah proses besar atau hanya satu langkah proses kecil. Hal ini dapat
disesuaikan tergantung kebutuhan. Misalkan bila dicontohkan dalam kasus pemesanan
makanan sebelumnya, sebuah service pembuatan makanan di dapur dapat didekomposisi lagi
II-10
menjadi beberapa langkah. Misalkan penyediaan bahan, pemeriksaan keberadaan bahan,
proses masak, dan sebagainya.
Setelah seluruh permasalahan dapat dibagi dalam beberapa service, solusi dari permasalahan
tersebut harus bisa diselesaikan dengan memungkinkan seluruh service berpartisipasi dalam
sebuah orkestrasi. Untuk itu ada beberapa permasalahan yang harus dimiliki oleh service,
yaitu bagaimana service berhubungan, bagaimana service berkomunikasi, bagaimana service
didesain, dan bagaimana pesan antar service didefinisikan [ERL05].
Gambar II-9 Enkapsulasi business process dengan service
Pembagian berdasarkan service ini sesungguhnya bukan sesuatu yang baru, karena telah
banyak diterapkan. Namun hal baru dari pendekatan service-oriented ini terkait dengan sifat-
sifat yang dimilikinya [ERL05], yaitu:
1. Loosely coupled, yaitu setiap service berdiri sendiri secara independen dan tidak
tergantung service lain untuk berjalan. Ketergantungan diminimalisir sehingga hanya
butuh mekanisme komunikasi satu sama lain.
2. Service contract, yaitu setiap service memiliki kesepakatan mengenai cara untuk
komunikasi
3. Autonomy, yaitu service memiliki hak penuh terhadap semua lojik yang dienkapsulasi
4. Abstraction, yaitu service tidak memperlihatkan bagaimana lojik diimplementasi di
dalamnya.
5. Reusability, yaitu lojik dibagi menjadi sekumpulan service yang dapat memudahkan
reuse.
6. Statelessness, yaitu service tidak memiliki status tertentu terkait dengan aktivitas yang
dilakukannya.
II-11
7. Discoverability, yaitu service didesain untuk deskriptif sehingga bisa ditemukan dan
diakses melalui mekanisme pencarian tertentu.
2.2.2 Komponen-Komponen SOA
Bila dilihat pada penjelasan sebelumnya, SOA terdiri atas sekumpulan service. Namun
sekumpulan service tidak cukup untuk membentuk sebuah arsitektur ini. Menurut [ERL05],
SOA terdiri atas empat komponen, yaitu:
1. Message, yaitu data yang dibutuhkan untuk menyelesaikan sebagian atau sebuah unit
kerja, yang dipertukarkan antara satu service dengan yang lainnya
2. Operation, yaitu fungsi-fungsi yang dimiliki oleh sebuah service untuk memproses
message hingga menghasilkan sesuatu. Fungsi-fungsi inilah yang nantinya akan
saling berinteraksi untuk menyelesaikan sebuah unit kerja
3. Service, merepresentasikan sekumpulan operation yang berhubungan untuk
menyelesaikan sekumpulan unit kerja yang berhubungan
4. Process, merupakan business rule yang menentukan operasi mana yang digunakan
untuk mencapai tujuan tertentu.
Ilustrasi dari keempat komponen ini dapat dilihat pada Gambar II-10.
Gambar II-10 Ilustrasi Operations dan Services [ERL05]
Komponen-komponen tersebut terhubung satu sama lain dengan deskripsi sebagai berikut
[ERL05]:
1. Sebuah operation mengirim dan menerima message untuk mengerjakan sesuatu
2. Sebuah operation kebanyakan didefinisikan oleh message yang memprosesnya
3. Sebuah service mengelompokkan sekumpulan operation yang berhubungan
4. Sebuah service didefinisikan oleh operation yang membentuknya
5. Sebuah instans dari service dapat mengkomposisi service lain
6. Sebuah instans dari process tidak harus didefinisikan oleh service karena mungkin
hanya membutuhkan sebagian dari fungsionalitas yang diberikan oleh service
II-12
7. Sebuah instans dari process memicu sekumpulan operation berjalan untuk
menyelesaikan proses otomasi
8. Setiap instans dari process didefinisikan secara parsial operation yang digunakannya
Ilustrasi dari keterhubungan seluruh komponen ini dapat dilihat dari Gambar II-11.
Gambar II-11 Keterhubungan antar komponen SOA [ERL05]
2.2.3 Layering pada SOA
Perangkat lunak yang tidak menggunakan SOA secara umum dapat dibagi menjadi dua layer
utama, yaitu application layer di mana aplikasi dijalankan dan business process layer yang
mendeskripsikan bagaimana proses bisnis dalam perusahaan berjalan. Proses bisnis organisasi
akan didefinisikan dalam aplikasi bersamaan dengan kode program yang bersifat teknis. Hal
tersebut dapat dilihat pada Gambar II-12.
Gambar II-12 Business Logic dan Application Logic pada Enterprise [ERL05]
II-13
Dalam implementasi SOA, konsep service-oriented yang dipegangnya diimplementasikan
dalam sebuah layer di antara business process layer dan application layer yang mana
keduanya merupakan bagian dari enterprise logic. Layer tersebut dinamakan service interface
layer, dan dapat dilihat pada Gambar II-13.
Fungsi dari layer ini adalah mengenkapsulasi lojik yang ada di application logic, sekaligus
business process yang ada di business logic. Dengan pendekatan ini, aplikasi bisa lebih
dimodularisasi dan menggunakan berbagai macam teknologi. Seperti dapat dilihat pada
Gambar II-13, teknologi .NET pada aplikasi A, J2EE pada aplikasi B, dan aplikasi C akhirnya
akan dienkapsulasi oleh service interface layer.
Service interface layer ini juga terbagi atas berbagai lapisan abstraksi, yaitu application
service layer, business service layer, dan orchestration service layer. Ilustrasi dari ketiganya
dapat dilihat pada Gambar II-14.
Gambar II-13 Implementasi layer pada enterprise [ERL05]
2.2.3.1 Application Service Layer
Application service layer. menyediakan sekumpulan service yang spesifik untuk
mengenkapsulasi teknologi tertentu yang terdapat di dalam application logic. Service yang
disediakan dalam layer ini akan melakukan abstraksi terhadap semua lojik yang tidak terkait
II-14
dengan proses bisnis, namun dibutuhkan untuk menjalankan fungsi-fungsi yang ada di proses
bisnis tersebut. Misalkan sebuah proses bisnis mengandung aktivitas notifikasi yang
mengharuskan pengiriman email kepada pihak yang dinotifikasi, maka application service
layer menyediakan layanan untuk mengirimkan email.
2.2.3.2 Business Service Layer
Business service layer merepresentasikan business logic dari aplikasi. Layer ini bisa
diibaratkan sebagai controller dari application service layer. Pada business service layer
inilah fungsi-fungsi bisnis, yang berupa aktivitas-aktivitas yang dilakukan untuk menjalankan
proses bisnis disediakan. Aktivitas-aktivitas tersebut akan menjalankan fungsi-fungsi yang
ada di application service layer jika dibutuhkan. Layer ini sendiri menyediakan abstraksi
kepada pengguna layanannya mengenai fungsi-fungsi bisnis yang ada, sehingga tidak perlu
melihat bagaimana application logic dijalankan di sana.
Ada dua macam service yang mungkin disediakan oleh business service layer, yaitu:
1. Task-centric, yaitu sebuah service yang mengenkapsulasi lojik tertentu dalam proses
bisnis yang melibatkan satu atau dua entitas bisnis. Service jenis ini memiliki potensi
reuse yang terbatas, namun proses analisis untuk menghasilkannya akan lebih mudah
2. Entity-centric, yaitu service yang mengenkapsulasi lojik yang sifatnya spesifik
terhadap entitas bisnis tertentu. Service jenis ini sangat baik dalam reusability, namun
proses analisis yang dibutuhkan untuk menghasilkannya lebih sulit.
2.2.3.3 Orchestration Service Layer
Orchestration service layer merupakan sebuah layer yang menyediakan abstraksi dengan
level tertinggi dari aplikasi. Pada layer ini semua proses bisnis yang ada di dalam sistem
didefinisikan dan dijalankan dengan menggunakan fungsi-fungsi yang terdapat pada business
service layer.
II-15
Gambar II-14 Abstraksi dari service interface layer [ERL05]
2.2.4 SOA dan Web Services
Seperti telah dijelaskan sebelumnya, untuk mengimplementasikan sebuah service, terdapat
beberapa isu utama, yaitu bagaimana service berkomunikasi, bagaimana service didesain, dan
bagaimana pesan antar service didefinisikan. Web Service merupakan sebuah teknologi yang
dapat memenuhi kebutuhan ini. Teknologi ini juga telah jamak dipakai untuk membangun
aplikasi berbasis SOA. Malah dengan penggunaan web services ini, potensi-potensi SOA baru
dapat dimunculkan. Hal inilah yang menyebabkannya sering identik dengan SOA.
Selain pengaruh dari teknologi web services, ekstensi dari teknologi ini, yang biasa disebut
dengan WS-*, juga memberikan pengaruh terhadap perkembangan SOA. Akibatnya, SOA
semakin identik dengan web services.
Atas dasar ini Thomas Erl dalam [ERL05] menyebutnya sebagai contemporary SOA.
Contemporary SOA merupakan SOA yang menggunakan web services dan XML dalam
implementasinya. Untuk selanjutnya, yang disebut sebagai SOA adalah contemporary SOA.
Bagaimana Web Services sebagai sebuah teknologi dapat memfasilitasi beberapa isu
perancangan tersebut dijelaskan sebagai berikut:
1. Sebuah service dalam SOA adalah sebuah aplikasi web service.
Pada dasarnya sebuah service di dalam SOA adalah sebuah aplikasi. Aplikasi ini
merepresentasikan sebuah business logic atau automation logic dari sebuah proses
sistem besar yang mencakupinya. Tuntutan dari sistem ini adalah dia harus bisa
berdiri sendiri dan bisa berkomunikasi satu sama lain. Hal itu sudah dimiliki oleh
II-16
sebuah aplikasi web services. Maka dari itu, implementasi service dalam SOA
merupakan aplikasi web services.
2. Hubungan satu service dengan yang lainnya didefinisikan dengan Web Service
Description Language (WSDL)
Gambar II-15 Peran WSDL dalam hubungan antar service [ERL05]
WSDL mendeskripsikan bagaimana format sebuah pesan yang akan dikirim oleh
sebuah aplikasi web service harus ditulis, agar dapat dimengerti oleh aplikasi web
services lainnya yang menerima. Dalam sudut pandang SOA, yang menggunakan web
services sebagai service, teknologi WSDL ini menjadi jembatan untuk
menghubungkan sebuah service ke service lainnya. Ilustrasi hubungan ini dapat
dilihat pada Gambar II-15.
3. Service berkomunikasi satu sama lain menggunakan SOAP messaging.
Kebutuhan untuk saling berkirim pesan dalam SOA merupakan hal yang paling
penting. Untuk teknologi perngiriman pesan, kita dapat menggunakan SOAP. Hal ini
dikarenakan SOAP fleksibel dan dapat diperluas.
Seperti telah dijelaskan sebelumnya, teknologi WS-* memberikan peran terhadap
berkembangnya SOA fundamental, hingga menjadi contemporary SOA. Salah satu
permasalahan pada SOA yang dapat diselesaikan oleh teknologi ini adalah pembuatan proses
bisnis, dengan WS-BPEL.
Untuk mengkomposisi sekumpulan web services menjadi sebuah workflow, dibutuhkan
sebuah standar. Hal ini dimungkinkan dengan adanya WS-BPEL atau BPEL4WS. Ekstensi
web service ini memiliki bahasa yang bisa dikompilasi dan dijalankan oleh aplikasi yang
mendukung orkestrasi. Ekstensi ini membawa web service ke dalam integrasi enterprise.
2.2.5 Analisis dan Perancangan SOA
Implementasi dari SOA membutuhkan pendekatan yang berbeda dengan pembangunan
perangkat lunak umumnya. Saat ini perangkat lunak banyak dibangun dengan pendekatan
II-17
object oriented. Implementasi dari SOA juga diterapkan dengan membangun secara object
oriented, namun menggunakan analisis dan perancangan berorientasi objek saja tidak cukup
untuk membangun SOA, karena sifatnya terlalu low level [ZIM04].
Sebelum melangkah ke identifikasi kelas dan objek seperti yang dilakukan pada analisis dan
perancangan berorientasi objek, terlebih dahulu harus dilakukan analisis di level yang lebih
tinggi yaitu analisis dan perancangan service. Aktivitas yang dilakukan pada tahap ini adalah
bagaimana mengidentifikasi service apa saja yang bakal diimplementasikan, operasi apa saja
yang dikandungnya, dan teknologi apa saja yang diterapkan nantinya. Setelah service
teridentifikasi, baru analisis dan perancangan pada level kelas dapat dilakukan.
Salah satu pendekatan yang diajukan adalah Service-Oriented Analysis and Design yang
diusulkan pada [ERL05]. Pendekatan ini memberikan sejumlah langkah-langkah untuk
mengimplementasikan SOA.
2.2.5.1 Service-Oriented Analysis
Service-Oriented Analysis bertujuan untuk mengidentifikasi service apa saja yang akan
dibangun dan lojik apa saja yang akan dienkapsukasi. Kumpulan lojik yang akan
dienkapsulasi direpresentasikan dalam operasi yang dikandung oleh setiap service tersebut.
Adapun tiga langkah utama yang terdapat pada analisis ini adalah:
1. Mendefinisikan lingkup dari proses analisis, yaitu mendefinisikan proses apa saja
yang akan dianalisis dalam implementasi
2. Mengidentifikasi sistem yang telah ada. Kebanyakan implementasi SOA merupakan
integrasi dari aplikasi-aplikasi yang ada sebelumnya. Oleh karena itu, identifikasi
sistem lain yang terkait harus dilakukan terlebih dahulu
3. Memodelkan kandidat service. Hasil requirement pada dua sebelum lalu dimodelkan
dalam bentuk kumpulan service. Ada beberapa pendekatan yang dilakukan untuk
memodelkan service tersebut, yaitu task-centric, entity-centric, dan gabungan antara
keduanya.
2.2.5.2 Service-Oriented Design
Service-Oriented Design bertujuan untuk membentuk rancangan dari hasil analisis yang telah
dilakukan sebelumnya. Beberapa pertanyaan penting yang harus terjawab pada tahap ini
adalah bagaimana definisi service interface diturunkan dari kandidat service yang dimodelkan
pada fase analisis, karakteristik SOA apa saja yang harus diimplementasi, standar industri apa
saja yang dibutuhkan untuk implementasi.
Adapun langkah-langkah yang dilakukan pada tahap ini adalah:
II-18
1. Mengkomposisi SOA, yaitu mendefisikan sekumpulan service dan memilih teknologi
terbuka yang mendukung layer-layer tersebut.
2. Merancang service, tujuannya adalah mengubah dari kandidat service yang dihasilkan
pada analisis menjadi service yang siap diimplementasi dengan web service yang
mengenkapsulasi lojik yang tepat, dan memenuhi requirement.
3. Merancang proses bisnis berorientasi service, tujuannya adalah untuk membentuk
orchestration layer. Hasil dari proses ini adalah workflow logic yang dapat
dieksekusi.
2.3 Web Services
Web services adalah sistem pertukaran informasi berbasis XML yang menggunakan internet
untuk interaksi antara aplikasi [ION07]. Teknologi ini merupakan standar yang diadopsi oleh
banyak vendor perangkat lunak, karena memiliki standar terbuka. Standar terbuka ini yang
memungkinkan aplikasi web service yang diimplementasi oleh vendor berbeda dapat
berkomunikasi satu sama lain.
Perkembangan web services yang begitu cepat menyebabkan lahirnya ekstensi-ekstensi web
services yang memperluas fungsi web services itu sendiri. Untuk membedakan web services
dasar dengan ekstensi-ekstensinya, maka keduanya dibedakan menjadi web service generasi
pertama dan web services generasi kedua. Pada pembahasan berikut akan diulas keduanya
serta salah satu ekstensi yang akan digunakan pada tugas akhir ini, yaitu WS-BPEL.
2.3.1 Web Services Generasi Pertama [ERL04]
Web services generasi pertama adalah pondasi dari teknologi web services ini sendiri.
Implementasi dari teknologi ini, yang berupa aplikasi web services, saling berinteraksi satu
sama lain dengan menggunakan dokumen berformat XML dan protokol pengiriman pesan
SOAP (Simple Object Access Protocol) melalui HTTP. Format XML, SOAP, dan HTTP ini
juga merupakan standar terbuka yang dapat diadopsi.
Sebuah aplikasi web service tentunya tidak dapat langsung diketahui bagaimana
penggunaannya. Oleh karena itu, aplikasi ini harus menyediakan deskripsi service. Untuk
deskripsi ini, web service juga memiliki standar terbuka yaitu WSDL (Web Service
Description Language).
Standard web service juga menyediakan mekanisme pencarian aplikasi web service, yaitu
UDDI (Universal Description Discovery and Integration). UDDI ini dapat dianalogikan
sebagai catalog web service di dunia maya, sehingga memungkinkan sebuah aplikasi web
service dapat menemukan aplikasi lain yang dibutuhkan. Namun penggunaan UDDI sendiri
II-19
saat ini belum banyak diadopsi. Gambaran umum dari standar-standar tersebut dapat dilihat
pada Gambar II-16.
Gambar II-16 Keterhubungan Antar Komponen Web Services [ERL04]
Spesifikasi web service seperti yang dijelaskan sebelumnya merupakan dasar dari aplikasi
web services, yang dapat disebut sebagai web services generasi pertama.
Penjelasan lebih lanjut dari WSDL, SOAP, dan UDDI dapat dilihat sebagai berikut
2.3.1.1 Web Service Description Language (WSDL)
Web Services Description Language (WSDL) adalah bahasa berbasis XML yang digunakan
untuk mendeskripsikan web services [ERL04]. Adanya WSDL memungkinkan kita
mengatahui jenis deskirpisi layanan yang disediakan dan fungsi-fungsi apa saja yang dimiliki
sebuah aplikasi web service.
Struktur umum dari WSDL adalah sebagai berikut [ERL04]:
<definitions> <interface> <operation> … </operation> … </interface> <message> <part> … </part> … </message> <service> <endpoint> … </endpoint> … </service> <binding> … </binding> </definitions>
II-20
Penjelasan dari elemen-elemen yang ada di dalam bahasa ini dijelaskan sebagai berikut
1. Elemen interface merepresentasikan interface dari web service, dan terdiri atas
operasi-operasi yang dimiliki oleh web service dengan tag operation
2. Elemen message merepresentasikan semua input dan output message dari operation.
Sebuah message dapat terdiri atas satu parameter atau lebih. Untuk itu digunakan
komponen part
3. Elemen service menyimpan koleksi dari endpoint, yang menyimpan alamat fisik dan
informasi protokol. Setiap komponen endpoint dapat mereferensi elemen binding, dan
lalu dihubungkan dengan informasi endpoint pada operasi tertentu
4. Elemen binding mengasosiasikan dirinya dengan konstruksi operation
2.3.1.2 Simple Object Access Protocol (SOAP)
Simple Object Access Protocol merupakan protokol untuk menukarkan pesan berbasis XML
dalam jaringan komputer [ERL04]. Umumnya SOAP melalui protokol HTTP. Struktur pesan
SOAP adalah sebagai berikut [ERL04]. <env:Envelope xmlns:env=”http://www.w3.org/2003/05/soap-envelope”> <env:Header> … </env:Header> <env:Body> … </env:Body> </env:Envelope>
Elemen envelope membentuk dokumen pesan terdiri atas bagian body dan header. Elemen
header sifatnya opsional. Penggunaan header umumnya adalah untuk implementasi ekstensi
SOAP dan data-data tambahan, sementara body bertujuan untuk menyimpan pesan.
2.3.1.3 Universal Description Discovery and Integration (UDDI)
Universal Description Discovery and Integration (UDDI) adalah registry berbasis XML yang
bersifat platform-independent [ERL04]. UDDI memungkinkan sebuah bisnis untuk
mempublikasikan service mereka sehingga aplikasi mereka dapat digunakan oleh aplikasi
lainnya.
UDDI mengorganisasikan registry dalam enam tipe data [ERL04]:
1. Business Entity, menyimpan informasi profil mengenai bisnis yang disimpan,
termasuk nama, deskripsi, dan unique identifier.
2. Business Service, merepresentasikan layanan aktual yang ditawarkan oleh bisnis
terdaftar, disimpan dalam elemen businessEntity
3. Specification Pointers, menyimpan alaman dari business service ke informasi
implementasi, disebut juga binding components
II-21
4. Service types, menyediakan informasi dari definisi inter
5. Business relationships, direpresentasi dengan publisherAssertion, menyimpan
hubungan antara entitas bisnis dengan yang lainnya
6. Subscriptions, direpresentasi dengan elemen subscription, memungkinkan subscriber
mendapatkan notifikasi saat profil business entity diperbaharui.
2.3.2 Web Service Generasi Kedua [ERL04]
Perkembangan teknologi web services berlanjut pada munculnya ekstensi-ekstensi dari web
service, yang biasa disebut second generation web services atau WS-* [ERL04]. Ekstensi ini
merupakan pengembangan dari teknologi web services dasar yang muncul disebabkan
kebutuhan-kebutuhan yang ada di dalam enterprise.
Adapun beberapa ekstensi yang jamak digunakan adalah WS–Coordination, WS–Transaction,
Business Process Execution Language for Web Services (BPEL4WS atau WS-BPEL), WS-
ReliableMessaging, WS–Addressing, WS–Policy, WS–PolicyAssertions, WS–
PolicyAttachments, WS –Attachments, dam SOAP with Attachments (SwA).
Perkembangan dari teknologi ekstensi ini tidak berhenti pada ekstensi-ekstensi yang ada di
atas. Seiring dengan berjalannya waktu, standar ini akan terus berkembang.
2.3.3 WS-BPEL
WS-BPEL adalah ekstensi web services yang digunakan untuk memfasilitasi proses
pemodelan dan eksekusi BPEL (Business Process Execution Language) dalam web services.
BPEL sendiri merupakan sebuah bahasa pemodelan berformat XML yang digunakan untuk
mendeskripsikan proses bisnis. Model yang dihasilkan oleh bahasa ini nantinya dapat
dieksekusi oleh engine BPEL.
WS-BPEL pertama kali disusun pada Juli 2002 dengan rilis versi 1.0. Bahasa ini dibangun
berdasarkan Web Services Flow Language (WSFL) dari IBM dan spesifikasi XLANG dari
Microsoft [ERL04]. Saat ini perkembangan bahasa ini telah mencapai versi 2.0 dan
pengembangannya dipegang oleh OASIS.
Struktur umum dari bahasa ini digambarkan sebagai berikut: [ERL04]
<process> <partnerLinks> ... </partnerLinks> <variables> ... </variables> <sequence> <receive ...> <invoke ...> <reply ...> ... </sequence> ... </process>
II-22
Penjelasan dari elemen-elemen yang ada di dalam bahasa ini akan dijelaskan sebagai berikut.
1. Process. Process merupakan elemen utama dari BPEL. Nama proses didefinisikan di
sini dengan atribut name. Selain itu tag ini digunakan juga untuk memasukkan
infromasi yang terkait definisi proses.
2. partnerLink dan partnerLinks. Elemen ini mendefinisikan tipe port dari service lain
yang ikut berpartisipasi dalam eksekusi dari proses bisnis.
3. variables. Elemen ini digunakan untuk menyimpan informasi status yang digunakan
selama workflow logic berjalan.
4. sequence. Elemen ini mengorganisasikan sekumpulan aktivitas sehingga bisa
dieksekusi dalam keterurutan. Adapun elemen-elemen yang didukung WS-BPEL
untuk sequence diantaranya recieve, assign, invoke, dan reply.
Selain empat elemen utama di atas, WS-BPEL juga memfasilitasi sejumlah tag lain. Standar
dari BPEL ini didefinisikan oleh OASIS dan dapat diperoleh di website OASIS.