• Tidak ada hasil yang ditemukan

BOOK Wiranto Herry Utomo Pemrograman Aplikasi SOA BAB V

N/A
N/A
Protected

Academic year: 2017

Membagikan "BOOK Wiranto Herry Utomo Pemrograman Aplikasi SOA BAB V"

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

(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

:

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

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

(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

(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

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

(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

[image:13.468.65.403.130.476.2]

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"

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

(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

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

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

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

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

(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"/>

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

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

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

(27)

Setelah memulai eksekusi elemen, StartQuoteLoan, maka akan dieksekusi dua activities sebagai berikut:

DetermineRateService

service mengirim interestRate

CalculatePaymentService

untuk menentukan

monthlyPayment

dan membuat

description.

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.

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

(30)

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

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

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

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

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

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

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

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

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

(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 “AUTOloan for amount of 10000.00”

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

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

(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

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

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

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

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

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

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

(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

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

(53)

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

Gambar

Gambar dibawah ini menunjukkan LoanQuoteSchema  secara lengkap.

Referensi

Dokumen terkait

[r]

Sehubungan dengan Evaluasi Penawaran, Kami Panitia Pelelangan mengundang Saudara untuk dapat menghadiri Verifikasi dan Klarifikasi terhadap Perusahaan pada Kegiatan :.

[r]

• DALAM SISTEM PEND NASIONAL PENYELENGARA/PIHAK YANG MEMPUNYAI TUGAS POKOK DAN FUNGSI MELAKSANAKAN PROSES PEMBELAJARAN SECARA LANGSUNG DISEBUT SATUAN PENDIDIKAN ATAU

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

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