• Tidak ada hasil yang ditemukan

BAB 5 Orkestrasi dengan BPEL

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 5 Orkestrasi dengan BPEL"

Copied!
53
0
0

Teks penuh

(1)

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

(2)

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.

(3)

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

(4)

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.

(5)

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.

(6)

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:

(7)

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.

(8)

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.

(9)

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:

(10)

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)

(11)

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.}

(12)

{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

(13)

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.

(14)

{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">

(15)

<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 WSDL

Dengan 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).

(16)

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

(17)

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.}

(18)

Klik Next. Wizard Concrete Configuration akan dieksekusi:

Klik Finish untuk menerima semua default.

(19)

{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 Link

Temukan 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.

(20)

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

(21)

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.}

(22)

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.

(23)

{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.

(24)

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.

(25)

{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"

(26)

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.}

(27)

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.

(28)

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

5.5 Mengimport XSD dan WSDL

Sebelum 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.

(29)

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.}

(30)

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

Klik Ok untuk menerima defaults. Node partner link tampak pada kanvas.

(31)

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:

(32)

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}

(33)

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:

(34)

{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.}

(35)

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

(36)

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:

(37)

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)

(38)

{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):

(39)

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:

(40)

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.}

(41)

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.

(42)

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.

(43)

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.

(44)

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.

(45)

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.}

(46)

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:

(47)

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”.

(48)

{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.

(49)

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

(50)

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 Komposit

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

(51)

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.

(52)

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.

(53)

Lihat pada field monthlyPayment dan description. Terlihat aplikasi telah melakukan passed unit testing.

Proyek selanjutnya akan dibuat interface berbasis web untuk menerapkan aplikasi komposit.

Gambar

Gambar dibawah ini menunjukkan LoanQuoteSchema  secara lengkap.

Referensi

Dokumen terkait

SERTIFIKAT ANALISIS PEMBELIAN EKSTRAK TEH HIJAU ( Camelia sinensis Linn..

Kemampuan penyerapan zat warna pada masing-masing kayu kemungkinan disebabkan oleh gugus OH - dari selulosa yang terdapat pada serat kayu mampu membentuk ikatan kimia

hijauan sehingga mempunyai nilai nutrisi yang lebih baik dari pada hijauan.. (Tillman et

Untuk mengubah sikap serta kebiasaan makan pasien perlu diberikan penyuluhan dan konsultasi gizi yang terarah sesuai dengan keadaan, kebutuhan dan kebiasaan makannya, keadaan

Kendali on-off menghasilkan rise time 54,5 detik, overshoot 48%, settling time 67 detik sedangkan kendali PID menghasilkan performa lebih baik dimana rise time 1,3 detik, overshoot

Penelitian mengenai aktivitas bakteriosin yang diisolasi dari air penggumpal tahu belum pernah dilakukan, sehingga dilakukan penelitian ini dengan tujuan untuk

Tabel 3 menujukkan jumlah biaya tenaga kerja pada arus kas tidak tunai (tenaga kerja dalam dan luar keluarga diperhitungkan sebagai biaya) dengan basis data lapangan

Hasil dari penelitian menyatakan bahwa variabel X 1 (rekrutmen) berpengaruh nyata terhadap terhadap variabel kinerja karyawan pada PT PURA Barutama Unit Rotogravure II, dan