enterprise service bus

8
ENTERPRISE SERVICE BUS (ESB) DAN BUSINESS PROCESS EXECUTION LANGUAGE (BPEL) Oleh : ARIES SYAMSUDDIN Blogs.itb.ac.id/aiceware Twitter: ariessyamsuddin

Upload: aries-syamsuddin

Post on 21-Oct-2015

163 views

Category:

Documents


7 download

DESCRIPTION

ESB adalah alat yang digunakan untuk membangung sebuah sistem yang menggunakan konsep SOA. ESB merupakan sebuah model aplikasi arsitektur perangkat lunak yang digunakan untuk mendesain dan melakukan implementasi interaksi dan komunikasi antar aplikasi yang saling berinteraksi dalam SOA. Penggunaan utamanya adalah dalam Integrasi Aplikasi Enterprise yang heterogen dan kompleks. Konsep ini dikembangkan dari bus analog yang ada pada arsitektur hardware perangkat komputer.

TRANSCRIPT

Page 1: Enterprise Service Bus

ENTERPRISE SERVICE BUS (ESB) DAN BUSINESS PROCESS

EXECUTION LANGUAGE (BPEL)

Oleh :

ARIES SYAMSUDDIN

Blogs.itb.ac.id/aiceware

Twitter: ariessyamsuddin

Page 2: Enterprise Service Bus

2

I. Enterprise Service Bus (ESB)

ESB adalah alat yang digunakan untuk membangung sebuah sistem yang menggunakan

konsep SOA. ESB merupakan sebuah model aplikasi arsitektur perangkat lunak yang digunakan untuk

mendesain dan melakukan implementasi interaksi dan komunikasi antar aplikasi yang saling

berinteraksi dalam SOA. Penggunaan utamanya adalah dalam Integrasi Aplikasi Enterprise yang

heterogen dan kompleks. Konsep ini dikembangkan dari bus analog yang ada pada arsitektur

hardware perangkat komputer.

Gambar 1. ESB

Tugas utama dari ESB adalah:

• Monitor dan kontrol routing pertukaran pesan antara layanan

• Menyelesaikan pertentangan antar komponen layanan berkomunikasi

• Pengendalian development dan versi dari layanan

• Pengawasan untuk redundant layanan

ESB dianggap sebagai wadah arsitektur untuk mediasi melakukan peran penyedia layanan,

seperti yang ditunjukkan pada Gambar 2. Hal ini menunjukkan bahwa ESB sendiri terdiri satu atau

lebih wadah operasional yang melayani penyedia jasa (provider) yang digunakan untuk organisasi,

dan memungkinkan dalam pembangunan, konfigurasi yang mudah, dan administrasi untuk mediasi.

Wadah ini sering dalam bentuk produk.

Page 3: Enterprise Service Bus

3

Gambar 2. Topology SOA

Kata "bus" mencerminkan analogi perangkat keras Bus pada komputer yang umum dalam

desain arsitektur komputer saat ini. Seperti dalam bus komputer yaitu konsep dasar untuk

memungkinkan aplikasi untuk dapat dengan mudah terpasang di dalam dan keluar (dijalankan dan

dimatikan) dari jaringan tanpa dampak pada komponen lain dan tanpa perlu restart sistem atau

bahkan menghentikan aplikasi yang sedang berjalan. Dalam sebuah arsitektur enterprise yang

membuat penggunaan ESB, aplikasi akan berkomunikasi melalui bus, yang bertindak sebagai

turntable pesan tunggal antara aplikasi. Pendekatan itu mengurangi jumlah point-to-point koneksi

antara aplikasi untuk berkomunikasi. Hal ini, pada gilirannya, membuat analisis dampak perubahan

software menjadi lebih sederhana dan lebih mudah. Dengan mengurangi jumlah kontak dari dan ke

aplikasi tertentu, lebih mudah untuk memantau kegagalan dan perilaku dalam sistem yang sangat

kompleks dan memungkinkan lebih mudah berubah untuk komponen.

Ini adalah konsep desain penting dari ESB bahwa setiap klien mengarahkan semua permintaan

melalui ESB bukan lewat langsung ke server. Hal ini memungkinkan ESB untuk memantau dan

mencatat lalu lintas layanan. ESB kemudian dapat berperan secara langsung dalam pertukaran pesan

dan membuat aturan standar untuk pelaksanaan pelayanan.

Kemungkinan penggunaannya adalah:

Buffer dan menunda pesan di daerah stage dan secara otomatis mengirimkannya bila

penerima sudah siap.

Memonitor pesan dan layanan agar berprilaku baik.

Menjaga proses dinamis dan kebijakan keamanan.

Pelaksanaan pelayanan berdasarkan aturan yang dinamis.

Memprioritaskan, menunda, dan menjadwal ulang pengiriman pesan dan pelaksanaan

pelayanan.

Menulis log dan meningkatkan peringatan untuk pengecualian.

ESB merupakan bagian dari perangkat lunak yang hidup antara aplikasi bisnis dan

memungkinkan komunikasi di antara mereka. Idealnya, ESB harus mampu mengganti semua kontak

Page 4: Enterprise Service Bus

4

langsung dengan aplikasi di bus, sehingga semua komunikasi terjadi melalui ESB. Untuk mencapai

tujuan ini, ESB harus merangkum fungsi yang ditawarkan oleh komponen aplikasi. Hal ini biasanya

terjadi melalui penggunaan enterprise message model. Model pesan mendefinisikan satu set standar

pesan bahwa ESB akan siap mengirim dan menerima. Ketika ESB menerima pesan, ini merupakan rute

pesan ke aplikasi yang sesuai. Seringkali, karena aplikasi yang berkembang tanpa model pesan yang

sama, ESB akan harus mengubah pesan ke format yang aplikasi dapat menafsirkannya. Sebuah

perangkat lunak adaptor melakukan tugas untuk melakukan transformasi ini.

II. Business Process Execution Language (BPEL)

Interaksi layanan Web dapat digambarkan dalam dua cara: proses bisnis executable dan

proses bisnis abstrak. Proses Bisnis Executable merupakan perilaku model yang sebenarnya dari

peserta dalam interaksi bisnis. Proses bisnis abstrak adalah proses abstrak sebagian ditentukan yang

tidak dimaksudkan untuk dieksekusi. Sebuah Proses Abstrak dapat menyembunyikan beberapa

rincian yang dibutuhkan operasional konkret. Proses abstrak melayani peran deskriptif, dengan lebih

dari satu kasus penggunaan yang mungkin, termasuk perilaku yang dapat diamati atau template

proses. WS-BPEL dimaksudkan untuk digunakan untuk memodelkan perilaku baik executable dan

Proses Abstrak.

Gambar 3. BPEL

WS-BPEL menyediakan bahasa untuk spesifikasi proses bisnis executable dan Abstrak. Dengan

demikian, merupakan model Web Services interaksi dan memungkinkan untuk mendukung transaksi

bisnis. WS-BPEL mendefinisikan model integrasi interoperable yang harus memfasilitasi perluasan

integrasi proses otomatis baik di dalam dan di antara perusahaan.

Ada sepuluh tujuan terkait dengan BPEL:

1. Mendefinisikan proses bisnis yang berinteraksi dengan entitas eksternal melalui layanan web operasi didefinisikan dengan menggunakan WSDL 1.1, dan menampakkan diri sebagai layanan

Page 5: Enterprise Service Bus

5

Web 1.1 didefinisikan dengan menggunakan WSDL. Interaksi yang "abstrak" dalam arti bahwa ketergantungan pada definisi portType, bukan pada definisi port.

2. Mendefinisikan proses bisnis menggunakan bahasa berbasis XML. 3. Mendefinisikan satu set orkestrasi Web konsep layanan yang dimaksudkan untuk digunakan

oleh kedua (executable) pandangan eksternal (abstrak) dan internal dari suatu proses bisnis.. 4. Menyediakan baik secara hirarkis dan grafik untuk pemodelan proses 5. Menyediakan fungsi manipulasi data untuk manipulasi data yang diperlukan, untuk

mendefinisikan data proses dan kontrol aliran. 6. Mendukung mekanisme identifikasi untuk proses yang memungkinkan. 7. Mendukung terciptanya implisit dan penghentian kasus proses sebagai mekanisme siklus

hidup dasar. 8. Menentukan model yang berjalan pada transaksi yang didasarkan pada teknik yang telah

terbukti seperti tindakan kompensasi dan scoping untuk mendukung pemulihan kegagalan untuk bagian proses bisnis.

9. Menggunakan Layanan Web sebagai model untuk proses dekomposisi dan perakitan. 10. Membangun pada standar layanan Web (disetujui dan diusulkan) sebanyak mungkin dengan

cara composable dan modular.

Bisnis Proses Eksekusi Bahasa untuk Web Services (BPEL) adalah bahasa berbasis XML untuk standardisasi usaha deskripsi proses serta standardisasi interaksi antara proses bisnis dalam lingkungan terdistribusi. BPEL memperluas model layanan Web interaksi dan tergantung pada Bahasa Deskripsi Layanan Web (WSDL) untuk menentukan pesan keluar dan masuk. BPEL membuat gagasan proses abstrak untuk menggambarkan perilaku terlihat secara eksternal serta proses eksekusi yang dapat dijalankan baik oleh beberapa interpreter atau dengan menyusun mereka ke beberapa bentuk executable. Service-oriented architectures (SOA) telah mendapatkan banyak perhatian sebagai teknik arsitektur pemersatu yang dapat diwujudkan secara nyata dengan teknologi layanan Web. Sebuah aspek kunci dari inkarnasi layanan Web SOA adalah bahwa layanan Web dipandang sebagai sebuah blok bangunan fundamental dari sebuah aplikasi berbasis SOA.

BPEL adalah bahasa orkestrasi, bukan bahasa koreografi. Perbedaan utama antara orkestrasi dan koreografi adalah executability dan kontrol. Sebuah Orkestrasi menentukan proses eksekusi yang melibatkan pertukaran pesan dengan sistem lain, sehingga urutan pertukaran pesan yang dikendalikan oleh desainer orkestrasi. Sebuah koreografi menetapkan protokol untuk peer-to-peer interaksi, mendefinisikan, misalnya, urutan rule pesan yang dipertukarkan dengan tujuan menjamin interoperabilitas. Seperti protokol tidak langsung dieksekusi, karena memungkinkan realisasi berbagai proses yang sesuai dengan itu. Sebuah koreografi dapat diwujudkan dengan menulis sebuah orkestrasi (misalnya, dalam bentuk sebuah proses BPEL) untuk setiap rekan yang terlibat di dalamnya. Orkestrasi dan koreografi perbedaan didasarkan pada analogi: orkestrasi mengacu pada pusat kontrol (dengan konduktor) dari perilaku dari sistem terdistribusi (orkestra yang terdiri dari banyak pemain), sedangkan koreografi mengacu pada sistem terdistribusi beroperasi sesuai dengan aturan (koreografi) tetapi tanpa kontrol terpusat. Selain menyediakan fasilitas yang memungkinkan mengirim dan menerima pesan, bahasa pemrograman BPEL juga mendukung:

Sebuah properti-pesan berbasis korelasi mekanisme Variabel XML dan WSDL Sebuah bahasa extensible plug-in model untuk memungkinkan menulis ekspresi dan

permintaan dalam berbagai bahasa: BPEL mendukung XPath 1.0 secara default Konstruksi pemrograman terstruktur termasuk if-then-elseif,dan lain-lain Sebuah scoping sistem untuk mengizinkan enkapsulasi logika dengan variabel lokal , callback ,

kompensasi-handler dan event-handler

Page 6: Enterprise Service Bus

6

Untuk mengontrol akses bersamaan ke variabel

Contoh: Jasa Travel

Dalam rangka untuk menggambarkan apa masalah alamat BPEL dan bagaimana kaitannya dengan SOA, berikut contoh dari industri perjalanan. Pertimbangkan sebuah perusahaan yang menawarkan jasa perjalanan melalui Web. Operasi mungkin termasuk:

getAvailableHotels: Masukan dari kode bandara dan mengembalikan daftar hotel dekat bandara itu.

getDescription: Masukan dari kode hotel dan mengembalikan deskripsi. getRate: Masukan kode hotel dan jenis dan jumlah kamar dan tanggal dan menghasilkan

kutipan untuk rating. makeReservations: Masukan dari identitas hotel dan tanggal. cancelReservation: Memasukkan nomor konfirmasi dan membatalkan reservasi.

Ketika membuat reservasi hotel, semua operasi ini dapat dipanggil dalam proses membuat reservasi. Pesan dimanfaatkan oleh layanan ini mungkin didasarkan pada definisi industri, seperti yang disediakan oleh OpenTravel Alliance (OTA). Sebagai contoh, perusahaan perjalanan dapat menulis WSDLs mereka sendiri yang sesuai skema OTA. Untuk mempermudah, dapat diasumsikan bahwa setiap operasi dimodelkan sebagai layanan terpisah.

Perhatikan apa yang terjadi ketika ingin membuat layanan dapat digunakan kembali yang mewakili beberapa skenario umum, seperti berbelanja untuk sebuah hotel. Kami akan memanggil beberapa layanan. Beberapa layanan akan perlu dipanggil serial. Sebagai contoh, kita perlu untuk mendapatkan daftar hotel yang dekat bandara diberikan dalam rangka untuk meminta deskripsi rinci dan tarif untuk hotel. Layanan lain dapat dipanggil secara paralel. Sebagai contoh, setelah memiliki daftar hotel, mungkin ingin meminta penjelasan dan harga untuk mereka semua, bukan satu per satu. Beberapa potongan mungkin memerlukan interaksi pengguna, seperti meninjau daftar pilihan dan memutuskan mana hotel untuk membuat reservasi.

Kita bisa membayangkan proses ini sebagai flowchart terdiri dari kegiatan dasar dan kegiatan struktural. Contoh kegiatan dasar termasuk menerima pesan, layanan eksternal memohon dan nilai-nilai menugaskan dari satu pesan yang lain. Kegiatan Struktural mungkin termasuk urutan yang melakukan kegiatan bersarang di urutan dan aliran yang melakukan kegiatan bersarang secara paralel. Ternyata bahwa gagasan kegiatan adalah apa BPEL sediakan. Di BPEL, kegiatan tersebut terdiri menerima, memanggil, menetapkan, urutan dan aliran. Ada lima belas kegiatan seperti didefinisikan dalam BPEL bersama dengan non-aktivitas elemen seperti proses, mitra link, variabel dan korelasi.

Koleksi terstruktur dari kegiatan seperti ini dapat digunakan untuk menentukan proses BPEL, yang pada gilirannya berupa sebagai layanan Web. Tentu saja, hal ini juga bisa dilakukan dalam bahasa pemrograman tradisional. Sejauh ini, manfaat utama yang telah dilihat di BPEL adalah bahwa gagasan berinteraksi dengan layanan Web yang dibangun ke dalam bahasa. Jika fokusnya adalah hampir secara eksklusif pada layanan Web orkestrasi, itu adalah dalam arti tertentu lebih alami untuk menggunakan bahasa yang memiliki konsep-konsep ini dibangun dari bahasa tujuan umum pemrograman. Namun demikian, hal ini dengan sendirinya tidak terlalu menarik karena ada banyak library yang menyederhanakan tugas mengirim dan menerima pesan dengan protokol seperti SOAP. Hal ini akan mengekspos lebih banyak alasan kuat untuk memilih BPEL dalam skenario tersebut.

Page 7: Enterprise Service Bus

7

Sejumlah properti umum untuk aplikasi proses bisnis, termasuk lama berjalan sebuah proses, kebutuhan untuk diandalkan, komunikasi asynchronous, penggunaan dari teknologi layanan Web, manajemen endpoint dan kemampuan untuk mengelola kedua transaksi serta sebagai transaksi bisnis. Meskipun salah satu sifat dapat dicapai dengan menulis kode dalam bahasa pemrograman umum, manfaat utama menggunakan BPEL adalah bahwa BPEL menyediakan abstraksi dan infrastruktur yang sangat cocok untuk kelas aplikasi.

Pandangan tentang bagaimana BPEL berasal manfaatnya dapat dibandingkan dengan penggambaran yang kadang-kadang ditemukan di media, yaitu gagasan bahwa manfaat dari BPEL adalah bahwa ia menyediakan seperti tingkat tinggi abstraksi yang analis bisnis dapat menyusun dan menjalankan proses bisnis executable dengan menunjuk dan mengklik di lingkungan pemodelan. Bahwa BPEL abstraksi menyediakan kemungkinan para development untuk menerapkan solusi yang fleksibel dan lebih efektif.

Bagi perusahaan untuk memaksimalkan manfaat dari layanan Web, dan akhirnya SOA, mereka membutuhkan cara untuk menggunakan layanan ini dalam proses bisnis otomatis yang meniru proses yang sebenarnya bisnis mereka. BPEL dirancang untuk mendefinisikan dan mengotomatisasi jenis layanan Web untuk proses bisnis. Hal ini memungkinkan otomatisasi proses tanpa coding tradisional dan pemrograman, sebagai akibatnya, proses otomatis dapat cepat dibuat prototype-nya, dikembangkan dan dimodifikasi bahkan oleh individu dengan pengalaman development yang terbatas. Oleh karena itu, menggunakan BPEL untuk mengarahkan dan mengatur layanan Web memainkan peran penting dalam SOA dengan menyediakan sarana yang kuat dimana logika bisnis dapat diartikulasikan dan dilaksanakan pada tingkat abstraksi yang dirancang untuk menyediakan layanan yang dibutuhkan untuk tugas-tugas integrasi.

Contoh helloword.bpel

<process name="HelloWorld" targetNamespace="http://jbpm.org/examples/hello" xmlns:tns="http://jbpm.org/examples/hello" xmlns:bpel="http://schemas.xmlsoap.org/ws/2003/03/business-process/" xmlns="http://schemas.xmlsoap.org/ws/2003/03/business-process/"> <partnerLinks> <!-- establishes the relationship with the caller agent --> <partnerLink name="caller" partnerLinkType="tns:Greeter-Caller" myRole="Greeter" /> </partnerLinks> <variables> <!-- holds the incoming message --> <variable name="request" messageType="tns:nameMessage" /> <!-- holds the outgoing message --> <variable name="response" messageType="tns:greetingMessage" /> </variables> <sequence name="MainSeq"> <!-- receive the name of a person --> <receive name="ReceiveName" operation="sayHello" partnerLink="caller" portType="tns:Greeter" variable="request" createInstance="yes" /> <!-- compose a greeting phrase --> <assign name="ComposeGreeting"> <copy> <from expression="concat('Hello, ', bpel:getVariableData('request', 'name'), '!')" /> <to variable="response" part="greeting" /> </copy>

Page 8: Enterprise Service Bus

8

</assign> <!-- send greeting back to caller --> <reply name="SendGreeting" operation="sayHello" partnerLink="caller" portType="tns:Greeter" variable="response" /> </sequence> </process>

III. Contoh Implementasi Webservice Untuk Mengetahui Perkiraan Cuaca Di Kota Bandung

Dengan memanfaatkan layanan webservice kita dapat mengetahui perkiraan cuaca di kota Bandung.

Berikut source code yang ditulis dalam bahasa javascript yang lantinya disisipkan pada bahasa HTML :

<script language="javascript"

src="http://tools.tititudorancea.com/weather_forecast.js?place=bandung&s=2&days=7&utf8=no&col

umns=7"> </script>

Ketika aplikasi dijalankan akan menghasilkan informasi sebagai berikut :

Sumber :

1. David Chappell, "Enterprise Service Bus" (O’Reilly: June 2004, ISBN 0-596-00675-6)

2. http://www.information-management.com

3. http://www.ibm.com/developerworks/websphere/techjournal/1105_flurry/1105_flurry.html

4. http://docs.jboss.com/jbpm/bpel/v1.1/userguide/tutorial.hello.html

5. SOA for the Business Developer: Concepts, BPEL, and SCA, ISBN 978-1-58347-065-7