jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

22
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:

description

tes

Transcript of jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

Page 1: 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:

Page 2: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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

Page 3: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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]

Page 4: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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

Page 5: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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

Page 6: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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]

Page 7: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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:

Page 8: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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

Page 9: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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

Page 10: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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.

Page 11: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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

Page 12: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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]

Page 13: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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

Page 14: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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.

Page 15: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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

Page 16: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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

Page 17: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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:

Page 18: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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

Page 19: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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>

Page 20: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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

Page 21: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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>

Page 22: jbptitbpp-gdl-brahmastaa-29900-3-2008ta-2 (1)

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.