bab 5 orkestrasi dengan bpel -...

53
BAB 5 Orkestrasi dengan BPEL Pada ke dua proyek pertama, telah dibangun web services untuk menangani langkah-langkah dalam proses pinjaman. Web service pertama, DetermineLoanRate, merupakan modul EJB, yang mempunyai argumen loanType (seperti RUMAH atau MOBIL) dan mengirim tingkat bunga sebagai output. Web service kedua, CalculateLoanPayment, merupakan aplikasi web (servlet) yang mempunyai argumen interestRate, amount dan period. Web services ini menghasilkan perhitungan jumlah pembayaran bulanan. Ke dua web services ini akan digunakan dalam sebuah rangkaian. Dengan kata lain, kedua web services ini akan diorkestrasi. Salah satu komponen SOA adalah BPEL yang digunakan untuk orkestrasi web services. Sehingga akan dilakukan build modul BPEL yang mengeksekusi dua web services dalam orkestrasi. 5.1 Membuat Proyek BPEL Menurut kamus Merriam-Webster, “architecture” adalah cara kompopnen komputer atau sistem komputer diorganisasikan dan diintegrasikan. Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah cara atau jenis pembuatan dan atau penggunaan ulang service-service 78

Upload: truongthuan

Post on 28-Apr-2019

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

BAB 5Orkestrasi dengan BPEL

Pada ke dua proyek pertama, telah dibangun web services untuk

menangani langkah-langkah dalam proses pinjaman. Web service pertama,

DetermineLoanRate, merupakan modul EJB, yang mempunyai argumen

loanType (seperti RUMAH atau MOBIL) dan mengirim tingkat bunga sebagai

output. Web service kedua, CalculateLoanPayment, merupakan aplikasi web

(servlet) yang mempunyai argumen interestRate, amount dan period. Web

services ini menghasilkan perhitungan jumlah pembayaran bulanan.

Ke dua web services ini akan digunakan dalam sebuah rangkaian.

Dengan kata lain, kedua web services ini akan diorkestrasi. Salah satu

komponen SOA adalah BPEL yang digunakan untuk orkestrasi web services.

Sehingga akan dilakukan build modul BPEL yang mengeksekusi dua web

services dalam orkestrasi.

5.1 Membuat Proyek BPEL

Menurut kamus Merriam-Webster, “architecture” adalah cara

kompopnen komputer atau sistem komputer diorganisasikan dan

diintegrasikan. Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA

adalah cara atau jenis pembuatan dan atau penggunaan ulang service-service 78

Page 2: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

yang loosely-couple dan interoperable yang dapat diorkestrasi bersama untuk

tujuan tertentu. Walaupun SOA tidak berimplikasi pada teknologi tertentu,

bentuk paling terkenal untuk service adalah XML berbasis web services yang

dideskripsikan oleh WSDL. Wahana untuk orkestrasi adalah BPEL (Business

Process Execution Language).

Sebelum menjalankan proyek BPEL ini, direkomendasikan untuk

menutup semua tab window yang masih tampak dari dua proyek sebelumnya

sehingga dapat mulai baru. Klik saja “X” pada tab.

• Pilih File / New Project. Maka Project baru akan tampak di

window.

• Pilih SOA sebagai category dan BPEL Module untuk project

type.

• Kemudian, klik Next.

• Untuk Project Name, ketikkan QuoteLoan dan klik Finish.

• Project QuoteLoan akan tampak dalam panel Projects:

• Dapat dilihat bahwa tidak ada file dalam folder Process Files.

• Klik tab Files untuk melihat view systems dari project:

79

Page 3: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

BPEL adalah Business Processing Execution Language. Bersama

Web services, tujuannya adalah untuk melakukan orkestrasi sekumpulan

service yang menunjukkan tugas yang diperlukan untuk memenuhi tujuan

bisnis.

BPEL merupakan bahasa yang lebih tinggi dari Java, yang lebih dekat

kepada kebijakan bisnis. BPEL merupakan bahasa berbasis XML dan

framework yang sangat restrictive yang melakukan operasi yang sangat

membantu yang memandu transisi status diantara sekumpulan services yang

loosely-couple.

Walau bekerja dengan objek yang mempunyai method dan atribut,

programer BPEL memanfaatkan konstruksi seperti ::

• <receive>: blocks menunggu pesan yang datang

• <reply>: mengirim jawaban untuk pesan yang diterima lewat

• receive

• <invoke>: memulai satu jalur interaksi request- response

dengan portType yang disediakan oleh partner

• partner: sebuah service yang berinteraksi dengan proses BPEL

80

Page 4: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

• portType: sekumpulan operasi yang servicenya dapat

dieksekusi.

• <assign>: memetakan nilai ke variables yang digunakan dalam

service yang dimanfaatkan oleh proses BPEL

Konstruksi dalam angle brackets (<>) adalah jenis statement BPEL. Jika

palette tidak tampak, gunakan opsi menu bar Windows / Palette untuk

menampilkannya.

Kembali ke panel Projects dan klik-kanan QuoteLoan dan pilih New /

BPEL Process. Untuk File Name, ketik QuoteLoanProcess Klik Finish.

BPEL Editor tampak pada panel kanan:

81

Page 5: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Perhatikan bahwa kerangka proses terlihat dengan elemen Process Start

dan Process End.

Klik pada kontrol Source pada bagian atas panel editor untuk melihat

statemen BPEL yang telah dihasilkan secara otomatis.:

Klik kontrol Design control untuk melihat view diagram lagi.

Pada mode Design akan terlihat panel palette BPEL tampak pada editor

proses sebelah kanan:

Proses bisnis BPEL dimulai dengan sebuah elemen receive dan diakhiri

dengan elemen reply. Taruh kedua elemen tersebut ditempatnya. 82

Page 6: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Dari panel Palette, lakukan drag Receive ke dalam kanvas design dan

drop pada lingkaran oranye setelah Process Start:

Kemudian icon receive dengan label Receive1 ditambahkan ke

kanvas.

Klik-double pada label Receive1 dan beri nama baru menjadi

StartQuoteLoan

{Dimulai dengan <receive> dan berakhir dengan <reply> yang merupakan standard pola pertukaran pesan request/reply.

<receive> membawa data ke dalam proses bisnis yang dapat digunakan pada langkah subsequent.

Dapat berpindah dari view Source dari proses untuk melihat statement <receive> yang telah ditambahkan.}

Selanjutnya, tambahkan elemen reply dengan melakukan drag ikon

Reply icon dari palette ke kanvas. Drop ke dot oranye dibawah node receive

StartQuoteLoan:

83

Page 7: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Kemudian ikon reply dengan label Reply1 akan ditambahkan ke kanvas.

Klik-double pada label Reply1 dan beri nama baru menjadi

ReturnLoanQuote

{<reply> memungkinkan untuk mengembalikan results ke pemanggil.

Pada node reply labelnya diganti menjadi “ReturnLoanQuote” yang tidak cocok dengan “StartQuoteLoan,”. Tapi tideak masalah. Label ini murni hanya penjelasan saja.

Sekarang akan terlihat dua statement BPEL pada view Source: - <receive name="StartQuoteLoan" createInstance

="yes"/>- <reply name="ReturnLoanQuote"/>}

5.2 Membangun Skema XML

Exposisi proses bisnis mirip dengan eksposisi Web service. Proses

bisnis perlu di “bungkus” seperti web service sehingga dapat dipanggil seperti

DetermineRateService dan CalculatePaymentService. Untuk kedua Web

services, telah ada dokumen WSDL yang merupakan interfaces. NetBeans

akan membuat WSDL (dan XSD). Namun pada proyek ini akan dibuat WSDL

dan XSD secara manual.

84

Page 8: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

XSD mendefinisikan simple dan complex types. Complex types

memungkinkan adanya isi elemen dan atribut, sedangkan simple types tidak

berisi isi elemen dan menyimpan atribut.

Sebelum mendefinisikan langkah-langkah di dalam proses bisnis, akan

ditetapkan input proses dan outputnya. Maka akan didefinisikan skema XML

untuk menetapkan jenis data (data types). Kemudian akan dibangun WSDL

diatas skema XML untuk mendefinisikan interface publik.

Pada node QuoteLoan, klik-kanan dan pilih New / XML Schema. Jika

opsi ini tidak terlihat, gunakan menu New / Other / XML untuk menemukan

XML Schema. Klik Next.

Untuk File Name, ketik LoanQuoteSchema dan pilih Finish. File

LoanQuoteSchema.xsd akan ditambahkan pada proyek dan tampak editor di

sebelah kanan.

Masuk ke mode Design dengan klik pada kontrol Design:

Definisikan dua Complex Types, satu untuk input dan lainnya untuk output.

Klik-kanan panel design Complex Types dan pilih Add / Complex Type:

85

Page 9: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Node newComplexType akan tampak dibawah.

Klik-double node baru dan beri nama baru LoanQuoteInput.

Dengan kursor di atas LoanQuoteInput, klik-kanan dan pilih Add /

Element:

Node newElement akan tampak. Klik-double dan beri nama baru

loanType

Dengan tetap di atas node loanType, temukan Properties dan lihat

property Definition:

86

Page 10: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Klik ikon ellipsis (lihat gambar) dan atur property Definition property

untuk loanType menjadi Built-In Types / string.

Tambahkan elemen di bawah LoanQuoteInput dan atur properti

Definition:

• amount (Built-In Types / double)

• period (Built-In Types / int)

Maka definisi complex type LoanQuoteInput telah lengkap:

87

Page 11: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Sekarang akan didefinisikan sisi output dari interface publik proses

BPEL. Lakukan hal yang sama dalam membuat complex type

LoanQuoteOutput.{Untuk membuat complex type, klik-kanan pada area Complex Types dan pilih Add / Complex Type. Ganti nama dengan klik-double.}

Tambahkan dua elemen:• description (Built-In Types / string)• monthlyPayment (Built-In Types / double)

{Untuk menambah elemen, klik kanan pada LoanQuoteOutput complex type dan pilih Add / Element.}

Maka akan terlihat file XSD seperti gambar dibawah ini:

88

Page 12: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

{Untuk menetapkan data types, klik pada elemen dan temukan Definition property. Gunakan Built-In Types as yang sesuai seperti gambar. Jika ingin tahu, pindah ke view Source untuk melihat XML yang telah dibuat Netbeans.}

Lakukan penyimpanan dengan klik Save All.

Sekarang akan ditambahkan dua elemen top level skema untuk

menyajikan jenis data request yang datang dan response yang dikirim. Kedua

elemen ini didasarkan pda complex types yang baru saja dibuat.

Pada mode Design, klik-kanan Elements pada atas panel design.

Kemudian pilih Add / Element:

Sebuah node newElement akan tampak.

Klik-double pada node baru dan beri nama baru menjadi

LoanQuoteRequest

Untuk property Definition, klik ke Complex Types / LoanQuoteInput:

{Jika ingin tahu, cek ke view Schema untuk melihat XSD. Akan terlihat pohon hirarki yang lebih mudah

89

Page 13: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

dieksplorasi. Simpan lagi. Biasakan melakukan kebiasaan Ctrl-S.}

Klik-kanan area Elements lagii dan pilih node Add / Element. Node

newElement lain akan tampak.

Klik-double pada node baru dan beri nama baru menjadi

LoanQuoteResponse

Untuk property Definition, klik Complex Types / LoanQuoteOutput.

Simpan dengan melakukan klik Save All.

Gambar dibawah ini menunjukkan LoanQuoteSchema secara lengkap.

90

Page 14: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

{Dokumen XSD ini mendefinisikan data types yang akan melewatkan ke dan mengirim dari proses bisnis. Dokumen XSD ini akan diimport ke dokumen WSDL yang akan dibuat, sehingga web service mempunyai definisi data yang diperlukan.}

Pindah ke mode Source untuk melihat dokumen XSD:

<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://xml.netbeans.org/schema/LoanQuoteSchema" xmlns:tns="http://xml.netbeans.org/schema/LoanQuoteSchema" elementFormDefault="qualified">

91

Page 15: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

<xsd:complexType name="LoanQuoteInput"><xsd:sequence><xsd:element name="loanType" type="xsd:string"/><xsd:element name="amount" type="xsd:double"/><xsd:element name="period" type="xsd:int"/></xsd:sequence>

</xsd:complexType><xsd:complexType name="LoanQuoteOutput">

<xsd:sequence><xsd:element name="description" type="xsd:string"/><xsd:element name="monthlyPayment" type="xsd:double"/></xsd:sequence>

</xsd:complexType><xsd:element name="LoanQuoteRequest" type="tns:LoanQuoteInput"/><xsd:element name="LoanQuoteResponse" type="tns:LoanQuoteOutput"/>

</xsd:schema>

Untuk mengecek error pada XSD, klik pada kontrol Schema untuk masuk

ke mode Schema. Kemudian temukan kontrol Validate XML dan klik. Lihat

apakah ada error pada panel Output.

5.3 Membangun Dokumen WSDLDengan XSD ini maka akan didefinisikan jenis data WSDL.

Selanjutnya akan dilakukan build pada definisi interface WSDL untuk

BPEL Process.

Klik-kanan pada node proyek QuoteLoan dan pilih New / WSDL

Document. Window wizard New WSDL Document akan tampak.

{Gunakan Document / Literal yang paling sering digunakan untuk kombinasi jenis pesan pada web services.

Jika menggunakan Document, berarti menyatakan bahwa body dari dokumen SOAP akan berisi satu atau lebih child elements (parts).

92

Page 16: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Jika menggunakan RPC sebagai jenis pesan, berarti menunjukkan bahwa body dokumen berisi elemen yang menyediakan nama method yang diinvoke. Elemen in mempunyai sebuah child element untuk mendapatkan parameter yang dilewatkan pada saat pemanggilan method.Dalam memilih format serialisasi, ada dua pilihan: SOAP Encoding dan Literal. Jika memilih SOAP Encoding, berarti mengadopsi ruledari SOAP 1.1 spec pada bagaimana struktur data diserialisasi sebelum ditransmisi. Format serialisasi ini biasanya diasosiasikan dengan jenis RPC message. Jika memilih Literal, data pada message body diserialisasi menggunakan XML schema. Dengan kata lain, format dikontrol, dan tidak mengikuti default pada rule SOAP spec.}

Untuk File Name, ketik LoanQuoteWSDL

Pilih Concrete WSDL Document yang menunjukkan bawha akan

ditetapkan protokol dan alamat endpoint fisik.

Tetap pilih SOAP pada Binding, tetapi pada menu drop-down Type pilih

Document Literal. Klik Next.

Pada bagian Input, beri nama part1 menjadi InputPart

Untuk nilai Element atau Type untuk InputPart, klik pada ikon ... dan

pilih elemen LoanQuoteRequest element (bukan complex type):

93

Page 17: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Klik OK untuk menyimpan record jenis pilihan.

Pada bagian Output, ganti nama part1 menjadi OutputPart.

Untuk Element atau Type, pilih elemen

LoanQuoteResponse (bukan complex type).

{Mengacu pada XSD dalam pembuatan WSDL sehingga tercakup dalam bagian <types> untuk mendefinisikan data types.}

94

Page 18: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Klik Next. Wizard Concrete Configuration akan dieksekusi:

Klik Finish untuk menerima semua default.

WSDL baru akan tampak di panel Projects dibawah hirarki QuoteLoan.

95

Page 19: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

{Untuk menemukan kanvas desain BPEL klik-double pada node QuoteLoanProcess.bpel di hirarki QuoteLoan pada tab Projects.}

Sekarang telah ada interface WSDL untuk proses bisnis, sekarang

kembali ke kanvas design dari QuoteLoanProcess.bpel dan gunakan definisi

interface untuk melakukan build BPEL partner link.

5.4 Menambah Partner LinkTemukan tab untuk panel proses BPEL dan klik untuk melihat proses.

Dari panel Projects, drag node LoanQuoteWSDL.wsdl ke sisi kiri kanvas

design BPEL seperti gambar dibawah ini:

{Apa perbedaan antar drag pada sisi kiri dan kanan? Drag WSDL di area kiri maupun kanan akan dibuat partner link.

96

Page 20: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Partner link merepresentasikan saluran melalui proses bisnis yang dapat berkomunikasi dengan “dunia luar” melalui interface yang ditetapkan dalam WSDL. “Dunia luar” disini adalah beberapa klien yang memanggil proses bisnis. Pada tutorial ini klien akan berupa user interface yang dihasilkan dengan NetBeans.

Partner link dalam model BPEL mempunyai atribut partnerRole. Ini menunjukkan proses BPEL apakah atau tidak mengimplementasikan web service yang dipanggil melalui “channel” (saluran)

Kembali ke sisi kiri atau kanan. Jika membuat partner link pada sisi kiri, menunjukkan bahwa proses BPEL merupakan implementer dari web service endpoint.partnerRole berupa “myRole” menunjukkan bahwa proses BPEL bertanggung jawab untuk implementasi. Jika partner link pada sisi kanan, maka , partnerRole akan mengidentifikasikan external web service endpoint yang akan berinteraksi dengan menggunakan <invoke>.

Elemen receive dan reply perlu dikoneksikan dengan partner link “channel” sehingga <receive> dapat diinvoke dan membawa data masuk dan <reply> dapat mengirim resspon kembali ke klien.}

Pada saat selesai melakukan drag dan drop, maka partner link akan

tampak di kanvas. Ganti nama dengan melakukan klik-double pada nama

default PartnerLink1 dengan mengetikkan: QuoteLoanPartnerLink

97

Page 21: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Klik node StartQuoteLoan pada kanvas design. Ikon edit (pensil)

tampak diatas node:

Klik ikon edit untuk menampakkan node receive window Property

Editor. Ketikkan fields seperti gambar dibawah ini. Klik tombol Create untuk

menetapkan Input Variable.

{Untuk membuat Input Variable, klik saja tombol Create dan terima semua default.}

98

Page 22: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Pilih tombol Ok.

Akan terlihat bahwa node receive StartQuoteLoan telah dihubungkan

ke partner.

{Perhatikan bahwa elemen akan ditandai silang merah. Ini menunjukkan bahwa model masih belum lengkap.}

Pindah ke view Source pada proses BPEL:

{Pembuatan kode BPEL secara otomatis terjadi ketika bekerja pada kanvas desain.}

Akan terlihat bahwa statement <receive> BPEL

Telah dibuat secara otomatis.

<receive name="StartQuoteLoan" createInstance="yes" partnerLink="QuoteLoanPartnerLink" operation="LoanQuoteWSDLOperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/QuoteLoan/LoanQuoteWSDL" portType="tns:LoanQuoteWSDLPortType" variable="LoanQuoteWSDLOperationIn"/>

Pindah kembali ke mode Design.

99

Page 23: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

{Ketika berada pada mode Source kemudian melihat statemen BPEL akan tampak nomor garis pada batas kiri. Hal ini tidak menjadi masalah sampai terlihat pesan error pada GlassFish V2 pada panel Output yang mengidentifikasikan nomor statemen BPEL tertentu dimana eror terjadi.}

Perlu dihubungkan antara node reply dengan interface WSDL,

sehingga klik pada node reply ReturnLoanQuote dan lihat ikon edit akan

tampak.

100

Page 24: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Klik ikon edit (pensil) untuk menampilkan window Property Editor.

Isi fields mengikuti gambar dibawah. Seperti pada Input Variable sebelumnya, gunakan pula tombol Create untuk menetapkan Output Variable:

Pilih tombol Ok .

Sekarang kanvas design proses BPEL akan terlihat seperti gambar

dibawah.

101

Page 25: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

{Telah ditetapkan bahwa proses BPEL merespon ke pertukaran pesan request/reply.}

Simpan dengan klik Save All.

Kedua node request dan reply sekarang dihubungkan ke partner link

yang mendefinisikan inputs dan outputs dari proses bisnis.

{Dapat berpindah ke view Source untuk melihat statemen <reply> yang telah dibuat oleh NetBeans.}

Pindah ke view Source untuk melihat statemen <reply> telah dibuat

oleh NetBeans:

<reply name="ReturnLoanQuote" partnerLink="QuoteLoanPartnerLink" operation="LoanQuoteWSDLOperation" xmlns:tns="http://j2ee.netbeans.org/wsdl/QuoteLoan/LoanQuote WSDL"

102

Page 26: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

portType="tns:LoanQuoteWSDLPortType" variable="LoanQuoteWSDLOperationOut"/>

{Sekarang proses bisnis dapat dipanggil (call) melalui <receive>) dan memberikan hasil (result) <reply> dan semua pekerjaan BPEL ini dilakukan dengan memanipulasi ikon BPMN pada kanvas desain.}

Lakukan pengecekan untuk meyakinkan bahwa NetBeans telah

menghasilkan XML BPEL yang well-formed.

Pilih ikon Validate XML pada bagian atas panel kanvas.

Kemudian akan terlihat seperti ini :

Perhatikan bahwa adanya warning, tetapi bukan error. Ini hanya

mengingatkan bahwa variabel input data yang datang ke node

StartQuoteLoan belum digunakan. Ini tidak masalah karena masih ditengah

pengembangan proses.

{Ini merupakan input variable untuk elemen <receive> StartQuoteLoan yang ditetapkan ketika membuat QuoteLoanPartnerLink.}

103

Page 27: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Setelah memulai eksekusi elemen, StartQuoteLoan, maka akan

dieksekusi dua activities sebagai berikut:

• DetermineRateService service mengirim interestRate

• CalculatePaymentService untuk menentukan monthlyPayment

dan membuatdescription.

Cara memanggil service luar ke BPEL adalah dengan menyisipkan

elemen invoke ke dalam model dan menghubungkan dengan partner link.

Kemudian dari palette, lakukan drag operasi Invoke ke dalam model dan

drop pada titik oranye diatas activity reply dari ReturnLoanQuote:

Elemen Invoke1 ditambahkan ke model. Klik-double pada label

Invoke1 dan ganti nama menjadi DetermineRate

Seperti node receive yang telah dikonfigurasi dengan partner link,

juga diperlukan konfigurasi node invoke dari DetermineRate.

Pertama, perlu dibuat partner link untuk web service

DetermineRateService.

104

Page 28: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

{Ini merupakan sebuah “channel” untuk berbicara melalui DetermineRateService yang dibuat di proyek terdahulu.}

5.5 Mengimport XSD dan WSDLSebelum dapat menambahkan partner links ke model BPEL, diperlukan

WSDL dan XSD. Untuk menyediakannya maka keduanya harus diimport ke

dalam proyek QuoteLoan.

Untuk mengimport WSDL (dan XSD) yang mendeskripsikan interface

web service DetermineRateService, maka temukan web service dengan klik

hirarki DetermineLoanRate / Web Services, kemudian klik-kanan pada

DetermineRateService dan pilih opsi Generate and Copy WSDL. Maka

window Generate and Copy WSDL akan tampak.

Sebagai tujuan, pilih direktori src pada QuoteLoan dan klik OK:

105

Page 29: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Perhatikan pada node Process Files untuk QuoteLoan dan tampak bahwa

WSDL dan XSD telah dikopi.

Lakukan langkah yang sama untuk Generate and Copy WSDL untuk web

service CalculatePaymentService pada proyek CalculateLoanPayment. Jika

telah selesai, akan terlihat dokumen WSDL dan XML untuk web service ini.

Pada Process Files untuk proyek QuoteLoan.

Tutup hirarki pada panel DetermineLoanRate dan

CalculateLoanPayment.

Lakukan drag DetermineRateServiceService.wsdl dari

QuoteLoan/Process Files dan drop ke sisi kanan kanvas BPEL:

{Mengapa lebih banyak melakukan drag ke sisi kanan model daripada kiri?

Drag ke kanan atau kiri menentukan role dari partner link Jika di sisi kanan berarti “Role-ku” akan dimanfaatkan. Jika disisi kiri maka “Partner Role” akan ditentukan.

Partner links dapat dipandang sebagai “tunnels” yang berinteraksi dengan dunia luar melalui model BPEL. “Role-ku” menyatakan bahwa proses mengimplementasikan interface melalui “tunnel.” Jika “Partner Role” ditentukan, berarti bahwa partner diluar yang mengimplementasikan interface.

Penjelasan garis bawah:– Jika proses bisnis dipanggil dari luar, partner link

akan berada di sisi kiri dan “Role-ku” ditentukan.– Jika proses bisnis memanggil partner yang

diluar“,”partner link akan beradi di sisi kanan dan “Partner Role” ditentukan.}

106

Page 30: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Window Create New Partner Link akan tampak. Untuk Name, ketik

DetermineRatePartnerLink

Klik Ok untuk menerima defaults. Node partner link tampak pada

kanvas.

107

Page 31: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Sekarang perlu dihubungkan antara partner link dengan activity invoke

dari DetermineRate.

Klik elemen invoke DetermineRate. Klik ikon edit (pensil) diatasnya.

Window Property Editor akan tampak. Ketikkan seperti gambar dibawah ini:

{Seperti sebelumnya, buat Input dan Output Variables, dengan klik pada tombol Create dan terima default.

Sekarang <invoke> (dinamai DetermineRate) dapat “berbicara” dengan DetermineRateService melalui “channel” yang disediakan partner link.}

Setelah memilih Ok, partner link akan dihubungkan dengan activity

invoke pada kanvas design:

108

Page 32: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Sekarang statement invoke telah ditetapkan, dan dapat dilihat dengan

berpindah ke view Source:

<invoke name="DetermineRate" partnerLink="DetermineRatePartnerLink" operation="getRate" xmlns:tns="http://rate/" portType="tns:DetermineRateService" inputVariable="GetRateIn" outputVariable="GetRateOut"/>

Tambahkan activity invoke lainnya ke model untuk web services ke dua

(CalculatePayment). Kembali ke view Design.

Seperti yang telah dilakukan sebelumnya, dari palette, lakukan drag

operasi Invoke ke dalam model dan drop di bagian titik oranye diatas elemen

reply dari ReturnLoanQuote.

Activity Invoke1 ditambahkan ke model. Klik-double pada label

Invoke1 dan ganti nama menjadi CalculatePayment.

{Untuk membuat partner link dari Web service CalculatePayment, maka akan dilakukan langkah yang sama seperti pada DetermineRate. Lalu lakukan drag CalculatePaymentServiceService.wsdl dari QuoteLoan/Process Files dan drop ke sisi kanan kanvas BPEL dibawah DetermineRatePartnerLink}

109

Page 33: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Seperti sebelumnya, window Create New Partner Link akan muncul.

Untuk Name, ketikkan CalculatePaymentPartnerLink dan pilih Ok untuk

menerima default.

Sekarang akan dihubungkan partner link ke activity invoke

CalculatePayment:

Klik activity invoke CalculatePayment. Klik pensil diatasnya. Window

Property Editor akan muncul. Ketikkan seperti gambar dibawah:

110

Page 34: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

{Lagi, gunakan tombol Create untuk menetapkan nama Input dan Output Variables. Lalu terima semua nama default.}

Setelah memilih Ok, partner link ini akan dihubungkan dengan activity

pada kanvas design.

Simpan dengan mengklik Save All.

Model BPEL akan terlihat seperti gambar dibawah ini:

{Sekarang proses BPEL dapat “berbicara” kepada Web services. Dua web service ini menggunakan interface yang dideskripsikan dalam dokumen WSDL dan berbicara melalui “channels” yang disediakan oleh partner links.}

111

Page 35: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Untuk menjalankan fungsinya dua web services memerlukan input.

Struktur data input didefinisikan dengan dikaitkan partner links sebagai input

variables. Maka perlu pemetaan nilai untuk penetapan input. Dalam BPEL,

akan dilakukan pemetaan dengan node Assign.

5.6 Menambah Elemen Assign

Dua Web services akan mendapatkan input dari input yang disediakan

oleh klien proses BPEL. Input akan dikirimkan melalui “channel”

QuoteLoanPartnerLink melalui WSDL yang telah didefinisikan sebelumnya

dalam proyek.

Drag node Assign dari Palette dan drop ke bagian oranye sebelum activity

DetermineRate.

Klik-double pada label Assign1 dan ganti nama menjadi

AssignRateDeterminationInput

112

Page 36: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Klik-double pada AssignRateDeterminationInput dan lihat display

Mapper:

Seperti tampak pada gambar diatas, ekspansi node

LoanQuoteWSDLOperationIn di panel kiri (panel “from”) untuk menunjukkan

variabel yang berisi InputPart.

Juga ekspansi node GetRateIn pada panel sisi kanan (panel “to”) untuk

menunjukkan parameter GetRateIn.

Pada Mapper, outputs berada dikiri dan input tampak pada sisi kanan.

Lalu drag dan drop dari LoanQuoteWSDLOperationIn.InputPart.loanType ke

GetRateIn.parameters.loanType:

113

Page 37: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Tinggalkan Mapper dan kembali ke mode Design dengan melakukan

klik kontrol Design pada kanvas window.

Drag node Assign lainnya dan drop ke area oranye sebelum node

activity CalculatePayment. Klik-double pada label Assign1 dan ganti nama

menjadi AssignPaymentCalculationInput

{Jika ada masalah dalam menamai elemen Invoke, maka klik-kanan dan pilih Properties dan rubah nama dengan mengedit property Name.}

Klik-double pada node AssignPaymentCalculationInput dan lihat panel

Mapper lagi.

Drag dan drop untuk memetakan outputs (sisi kiri) ke input (sisi kanan):

interestRate (GetRateOut.parameters.return --> Variables.GetPaymentIn.parameters.interestRate)amount (LoanQuoteWSDLOperationIn.InputPart.amount --> Variables.GetPaymentIn.parameters.amount)

period (LoanQuoteWSDLOperationIn.InputPart.period --> Variables.GetPaymentIn.parameters.period)

114

Page 38: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

{Jika ingin tahu, pindah ke view Source untuk melihat statemen <assign>. Seperti yang telah dilakukan pada value mappings, akan terlihat statemen <copy> ditambahkan di dalam <assign>.}

Pindah kembali ke mode Design.

Sekarang akan ditambahkan elemen Assign lagi sehingga dapat

dipetakan nilai ke output dari proses bisnis.

Lalu, drag node Assign dan drop ke node sebelum reply

ReturnLoanQuote.

Ganti nama assign menjadi AssignResults. {Ganti nama Assign, dengan

klik-kanan dan pilih Properties dan rubah nama dengan mengedit Name

property.}

Klik-double node AssignResults untuk melihat display Mapper.

Drag dan drop untuk memetakan “froms” (inputs pada sisi kiri) ke “to”

(output pada sisi kanan):

115

Page 39: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Ini merupakan kopi dari perhitungan jumlah pembayaran bulanan yang

dihasilkan oleh CalculatePaymentService ke dalam variabel monthlyPayment

yang merupakan return dari proses bisnis.

Sekarang, lakukan build text string pada variabel description dalam

LoanQuoteWSDLOperationOut.OutputPart. kemudian akan digabungkan

beberapa nilai variabel dari beberapa teks statik sepertii ini: <loan type> + "

loan for amount of " + <amount>

{Window BPEL Mapper mempunyai beberapa fitur yang membantu membuat tambahan BPEL constructs. Pilih String / Concat untuk menunjukkan bagaimana mapper dapat menghasilkan tambahan statemen BPEL.}

Hal ini akan menghasilkan deskripsi seperti “AUTO loan for amount of

10000.00”

Klik pada node description pada sisi kanan mapper. Area biiru tampak

untuk menunjukkan titik sisipan pada mapper:

116

Page 40: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Pilih operasi Concat dari menu String pada bagian atas panel BPEL

Mapper.

Node Concat ditambahkan ke kanvas Mapper pada area biru untuk node

description.

Hubungkan variabel loanType ke bagian pertama dari string

penggabungan (concat):

{Jangan lupa memberikan spasi diantar teks, karena deskripsi yang akan tergabung.}

117

Page 41: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Klik-double pada String slot ke dua dan ketikkan teks loan for amount

of:

{Untuk mengaktifkan slot String lakukan klik saja.}

Akhiri penggabungan (concatenation) dengan menambahkan nilai

amount seperti gambar dibawah:

Jangan lupa hubungkan return String Concat ke

LoanQuoteWSDLOperationOut.OutputPart.description sehingga

menghasilkan penggabungan.

Pemetaan telah lengkap, lalu kembali ke mode Design.

Simpan semua pekerjaan dengan klik Save All.

Setelah pemetaan lengkap, dilanjutkan dengan validasi proses bisnis

dengan memilih kontrol Validate XML pada bagian atas window design.

118

Page 42: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Jika proses BPEL bebas dari error sintaks, maka akan terlihat pesan “0

Error(s), 0 Warning(s)” pada panel cek XML.

Sekarang akan dilakukan build dengan klik-kanan node proyek

QuoteLoan dan memilih Clean and Build. Jika terlihat pesan “BUILD

SUCCESSFUL” maka bagian ini telah lengkap.

{Lakukan Build saja (bukan Clean and Build) jika

direktori tidak terhapus.}

Jika diperhatikan maka tidak ada opsi Deploy untuk jenis proyek ini.

Pada langkah berikutnya, maka modul BPEL ini akan digabungkan dengan

aplikasi komposit dan dideploy di proyek ini.

Klik pada tab Files untuk melihat yang telah dihasilkan oleh Netbeans.

119

Page 43: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Klik pada tab Projects sehingga akan dibuat aplikasi komposit dan

melakuan deploy.

5.7 Membuat Aplikasi Komposit Topik aplikasi komposit lagi trendy saat ini. Ini digunakan untuk

membangun aplikasi yang terdiri dari ssekumpulan komponen (sub-

assemblies) yang terpisah. Masing-masing sub-assembly membungkus dari

implementasi dengan menyediakan well-defined public interface.

120

Page 44: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Untuk dapat melakukan pengujian proses BPEL QuoteLoan pada proyek

selanjutnya, maka akan dibuat aplikasi komposit dan menambahkan proyek

BPEL dalam aplikasi ini dan mendeploynya.

Selanjutnya, buat aplikasi komposit dengan memilih File / New Project /

SOA / Composite Application

Klik Next dan ketik QuoteLoanApplication untuk Project Name.

Klik Finish dan aplikasi komposit baru akan tampak pada panel

Projects:

{Pada saat menambahkan proyek QuoteLoan ke aplikasi komposit, akan terlihat editor CASA (Composite Application Service Assembly).}

Kemudian akan ditambahkan modul BPEL QuoteLoan pada aplikasi

komposit yang baru ini.

Lakukan klik-kanan pada QuoteLoanApplication dan pilih Add JBI

Module. Window Select Project akan tampak, demikian pula CASA

(Composite Application Service Assembly) Editor juga muncul.

Pada window Select Project lakukan klik pada QuoteLoan dan pilih

tombol Add Project JAR Files.

Pada editor CASA, akan tampak proyek QuoteLoan telah ditambahkan

pada kanvas.121

Page 45: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Selanjutnya lakukan klik kontrol Build Project pada bagian atas editor

CASA.

Editor CASA akan melakukan assembly canvas dan menunjukkan

service units yang dapat diidentifikasikan untuk proyek QuoteLoan:

{Terlihat adanya Consume endpoints berwarna ungu, tetapi tidak berhubungan dengan Provide endpoints warna hijau.}

122

Page 46: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Akan terlihat bahwa modul BPEL sedang diinvokasi melalui SOAP

request, tetapi tidak ada DetermineRatePartnerLink dan

CalculatePaymentPartnerLink yang mengkonsumsi dua web services ini.

Karena itu, lakukan drag dua soap WSDL Bindings dari palette dan drop

ke area WSDL Ports area:

Hubungkan ke partner links:

123

Page 47: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Sekarang diperlukan informasi endpoint untuk ke dua WSDL ports yang

baru itu.

Klik-kanan pada casaPort1 WSDL port (yang terkoneksi ke

DetermineRatePartnerLink) dan pilih Properties.

Untuk Location, klik pada ikon ... dan ketikkan :

http://localhost:8080/DetermineRateServiceService/DetermineRateService

Untuk Endpoint Name, ketikkan: DetermineRatePort

Pilih Close untuk merekam perubahan property. Klik-kanan pada

casaPort2 WSDL port (yang terkoneksi ke CalculatePaymentPartnerLink)

dan pilih Properties.

Untuk Location, klik pada ikon ... dan ketikkan :

http://localhost:8080/CalculateLoanPayment/CalculatePaymentServiceService

{Perhatikan adanya dua nilai Location yang sesuai dengan service names pada dokumen WSDL untuk setiap web service. Nilai Endpoint Name cocok dengan port names pada dokumen WSDL.}

Untuk Endpoint Name, ketikkan: CalculatePaymentPort

Pilih Close.

Simpan semua pekerjaan dengan Save All.

Klik kanan pada node QuoteLoanApplication pada panel Projects dan

pilih opsi Clean and Build. Perhatikan pada windows Output adanya pesan

“BUILD SUCCESSFUL”.

124

Page 48: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

{Dapat juga dilakukan deploy aplikasi komposit dengan klik pada tool Deploy Project:}

Klik-kanan node QuoteLoanApplication dan pilih opsi Deploy.

Perhatikan window Output adanya pesan “BUILD SUCCESSFUL”.

Sebelum pindah ke proyek4, maka akan digunakan fasilitas pengujian

NetBean's untuk melakukan beberapa unit testing.

Perhatikan bahwa aplikasi komposit yang dideploy tampak seperti

framework JBI. Klik pada tab Services dan ekspansi node Servers / GlassFish

V2 untuk menemukan node JBI.

Ekspansi node JBI untuk menemukan bahwa terdapat satu service

assembly yang berisi dua service units yang telah dideploy.

125

Page 49: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

{Klik-kanan pada service unit dan pilih Properties, akan terlihat bahawa JBI component (SE atau BC) akan terdeploy. Misalnya QuoteLoanApplication- QuoteLoan dideploy di sun-bpel-engine.}

Inilah QuoteLoanApplication service assembly yang terlihat pada CASA

Editor:

126

Page 50: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Ada tiga WSDL ports yang direpresentasikan oleh

QuoteLoanApplication-sun-http-binding service unit. Modul BPEL QuoteLoan

JBI pada CASA Editor direpresentasikan oleh QuoteLoanApplication-

QuoteLoan service unit.

5.8 Testing Aplikasi KompositSekarang akan dilakukan pengujian untuk aplikasi yang mencakup input

parameter jenis pinjaman, jumlah pinjaman dan periode, dan menghasilkan

deskprisi dan jumlah pembayaran bulanan. .

Dalam panel Projects pada node QuoteLoanApplication, klik node Test

dan pilih New Test Case:

127

Page 51: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Window New Test Case akan muncul..

Untuk Test Case Name, ketikkan HomeLoanTestCase kemudiah pilih

Next. Kemudian pilih dokumen WSDL yang akan ditest.

Ekspansi QuoteLoan – Source Packages dan pilih

LoanQuoteWSDL.wsdl:

Klik Next. Kemudian pilih LoanQuoteWSDLOperation dan klik Finish.

Editor XML editor akan muncul dengan dokumen input. Akan ada tiga

fields delimited dengan simbol “?”. Ketik fields ini dengan data yang akan

diuji.

<loan:LoanQuoteRequest><loan:loanType>HOME</loan:loanType><loan:amount>250000.00</loan:amount><loan:period>15</loan:period>

</loan:LoanQuoteRequest>

Simpan semua pekerjaan dengan klik Save All

Jalankan pengujian dengan klik-kanan pada HomeLoanTestCase pada

panel Projects dan pilih Run.

128

Page 52: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Pada saat run pertama dari test, output masih kosong, sehingga selalu

ada pesan dialog “The expected output for the test case is empty ...”. Klik saja

Yes.

Jalankan test lagi dengan klik Run.

Maka akan terlihat output dibawah ini yang menunjukkan keberhasilan

test.

Klik-double pada output test untuk melihat output XML yang

dikembalikan pada aplikasi komposit. Akan terlihat deskripsi dan pembayaran

telah benar.

129

Page 53: BAB 5 Orkestrasi dengan BPEL - repository.uksw.edurepository.uksw.edu/bitstream/123456789/1546/7/BOOK_Wiranto Herry...Berdasar definisi arsitektur ini, dapat dikatakan bahwa SOA adalah

Lihat pada field monthlyPayment dan description. Terlihat aplikasi telah

melakukan passed unit testing.

Proyek selanjutnya akan dibuat interface berbasis web untuk

menerapkan aplikasi komposit.

130