MuleSoft - Panduan Cepat
ESB adalah singkatan dari Enterprise Service Busyang pada dasarnya adalah alat middleware untuk mengintegrasikan berbagai aplikasi bersama melalui infrastruktur seperti bus. Pada dasarnya, ini adalah arsitektur yang dirancang untuk menyediakan sarana pemindahan pekerjaan yang seragam di antara aplikasi yang terintegrasi. Dengan cara ini, dengan bantuan arsitektur ESB, kita dapat menghubungkan berbagai aplikasi melalui bus komunikasi dan memungkinkannya untuk berkomunikasi tanpa bergantung satu sama lain.
Menerapkan ESB
Fokus utama arsitektur ESB adalah untuk memisahkan sistem dari satu sama lain dan memungkinkan mereka untuk berkomunikasi dengan cara yang stabil dan terkendali. Penerapan ESB dapat dilakukan dengan bantuan‘Bus’ dan ‘Adapter’ dengan cara berikut -
Konsep "bus", yang dicapai melalui server pesan seperti JMS atau AMQP, digunakan untuk memisahkan aplikasi yang berbeda satu sama lain.
Konsep "adaptor", bertanggung jawab untuk berkomunikasi dengan aplikasi backend dan mengubah data dari format aplikasi ke format bus, digunakan antara aplikasi dan bus.
Data atau pesan yang dikirimkan dari satu aplikasi ke aplikasi lainnya melalui bus berada dalam format kanonik yang berarti akan ada satu format pesan yang konsisten.
Adaptor juga dapat melakukan aktivitas lain seperti keamanan, pemantauan, penanganan kesalahan, dan manajemen perutean pesan.
Prinsip-Prinsip Panduan ESB
Kita dapat menyebut prinsip ini sebagai prinsip integrasi inti. Mereka adalah sebagai berikut -
Orchestration - Integrasi dua atau lebih layanan untuk mencapai sinkronisasi antara data dan proses.
Transformation - Mengubah data dari format kanonik ke format khusus aplikasi.
Transportation - Menangani negosiasi protokol antara format seperti FTP, HTTP, JMS, dll.
Mediation - Menyediakan banyak antarmuka untuk mendukung berbagai versi layanan.
Non-functional consistency - Menyediakan mekanisme untuk mengelola transaksi dan juga keamanan.
Kebutuhan ESB
Arsitektur ESB memungkinkan kita untuk mengintegrasikan berbagai aplikasi di mana setiap aplikasi dapat berkomunikasi melaluinya. Berikut adalah beberapa pedoman tentang kapan menggunakan ESB -
Integrating two or more applications - Penggunaan arsitektur ESB bermanfaat bila ada kebutuhan untuk mengintegrasikan dua atau lebih layanan atau aplikasi.
Integration of more applications in future - Misalkan jika kita ingin menambah layanan atau aplikasi di masa mendatang, maka dapat dengan mudah dilakukan dengan bantuan arsitektur ESB.
Using multiple protocols - Jika kita perlu menggunakan banyak protokol seperti HTTP, FTP, JMS, dll., ESB adalah opsi yang tepat.
Message routing - Kita dapat menggunakan ESB jika kita memerlukan perutean pesan berdasarkan konten pesan dan parameter serupa lainnya.
Composition and consumption - ESB dapat digunakan jika kita perlu mempublikasikan layanan untuk komposisi dan konsumsi.
Integrasi P2P vs. integrasi ESB
Dengan peningkatan jumlah aplikasi, pertanyaan besar di depan pengembang adalah bagaimana menghubungkan aplikasi yang berbeda? Situasi ini ditangani dengan hand-coding koneksi antara berbagai aplikasi. Ini disebutpoint-to-point integration.
Rigidityadalah kelemahan paling jelas dari integrasi point-to-point. Kompleksitas meningkat dengan bertambahnya jumlah koneksi dan antarmuka. Kerugian integrasi P-2-P membawa kita pada integrasi ESB.
ESB adalah pendekatan yang lebih fleksibel untuk integrasi aplikasi. Ini merangkum dan mengekspos setiap fungsionalitas aplikasi sebagai satu set kemampuan diskrit yang dapat digunakan kembali. Tidak ada aplikasi yang langsung terintegrasi dengan yang lain, melainkan terintegrasi melalui ESB seperti yang ditunjukkan di bawah ini -
Untuk mengelola integrasi, ESB memiliki dua komponen berikut -
Service Registry- Mule ESB memiliki Service Registry / Repository di mana semua layanan yang diekspos ke dalam ESB diterbitkan dan didaftarkan. Ini bertindak sebagai titik penemuan dari mana seseorang dapat menggunakan layanan dan kemampuan aplikasi lain.
Centralized Administration - Sesuai dengan namanya, ini memberikan pandangan aliran transaksional dari kinerja interaksi yang terjadi di dalam ESB.
ESB Functionality- Singkatan VETRO umumnya digunakan untuk meringkas fungsionalitas ESB. Ini adalah sebagai berikut -
V(Validasi) - Sesuai namanya, ini memvalidasi validasi skema. Ini membutuhkan parser yang memvalidasi dan skema terbaru. Salah satu contohnya adalah dokumen XML yang mengonfirmasi skema terkini.
E(Memperkaya) - Menambahkan data tambahan ke pesan. Tujuannya adalah membuat pesan lebih bermakna dan berguna bagi layanan sasaran.
T(Transform) - Ini mengubah struktur data ke format kanonik atau dari format kanonik. Contohnya adalah konversi tanggal / waktu, mata uang, dll.
R(Routing) - Ini akan merutekan pesan dan bertindak sebagai penjaga gerbang dari titik akhir layanan.
O(Operate) - Tugas utama fungsi ini adalah menjalankan layanan target atau berinteraksi dengan aplikasi target. Mereka berjalan di bagian belakang.
Pola VETRO memberikan fleksibilitas keseluruhan untuk integrasi dan memastikan bahwa hanya data yang konsisten dan divalidasi yang akan dialihkan ke seluruh ESB.
Apa Mule ESB?
Mule ESB adalah bus layanan perusahaan (ESB) berbasis Java yang ringan dan sangat skalabel serta platform integrasi yang disediakan oleh MuleSoft. Mule ESB memungkinkan pengembang untuk menghubungkan aplikasi dengan mudah dan cepat. Terlepas dari berbagai teknologi yang digunakan oleh aplikasi, Mule ESB memungkinkan integrasi aplikasi yang mudah, memungkinkan mereka untuk bertukar data. Mule ESB memiliki dua edisi berikut -
- Edisi Komunitas
- Edisi Perusahaan
Keuntungan Mule ESB adalah kita dapat dengan mudah meningkatkan dari komunitas Mule ESB ke perusahaan Mule ESB karena kedua edisi dibangun di atas basis kode yang sama.
Fitur & Kemampuan Mule ESB
Fitur berikut dimiliki oleh Mule ESB -
- Ini memiliki desain grafis drag-and-drop sederhana.
- Mule ESB mampu melakukan pemetaan dan transformasi data visual.
- Pengguna bisa mendapatkan fasilitas 100s konektor bersertifikat pra-bangun.
- Pemantauan dan administrasi terpusat.
- Ini memberikan kemampuan penegakan keamanan perusahaan yang kuat.
- Ini menyediakan fasilitas manajemen API.
- Ada Data Gateway yang aman untuk konektivitas cloud / on-premise.
- Ini menyediakan registri layanan di mana semua layanan yang diekspos ke ESB diterbitkan dan terdaftar.
- Pengguna dapat memiliki kontrol melalui konsol pengelolaan berbasis web.
- Debugging cepat dapat dilakukan dengan menggunakan penganalisis aliran layanan.
Motivasi di balik proyek Mule adalah -
untuk mempermudah pemrogram,
kebutuhan akan solusi ringan dan modular yang dapat menyesuaikan skala dari kerangka kerja perpesanan tingkat aplikasi ke kerangka kerja yang sangat terdistribusi di seluruh perusahaan.
Mule ESB dirancang sebagai kerangka kerja yang digerakkan oleh peristiwa serta terprogram. Ini digerakkan oleh peristiwa karena dikombinasikan dengan representasi pesan terpadu dan dapat diperluas dengan modul yang dapat dicolokkan. Ini terprogram karena pemrogram dapat dengan mudah menanamkan beberapa perilaku tambahan seperti pemrosesan pesan tertentu atau transformasi data khusus.
Sejarah
Perspektif sejarah proyek Mule adalah sebagai berikut -
Proyek SourceForge
Proyek Mule dimulai sebagai proyek SourceForge pada bulan April 2003, dan setelah 2 tahun versi pertamanya dirilis dan dipindahkan ke CodeHaus. API Objek Pesan Universal (UMO) adalah inti dari arsitekturnya. Ide di balik UMO API adalah untuk menyatukan logika sambil tetap mengisolasi mereka dari transport yang mendasarinya.
Versi 1.0
Ini dirilis pada bulan April 2005 berisi banyak transportasi. Fokus utama dari banyak versi lain yang diikuti olehnya, adalah pada debugging dan penambahan fitur baru.
Versi 2.0 (Adopsi Musim Semi 2)
Spring 2 sebagai kerangka konfigurasi dan kabel diadopsi di Mule 2 tetapi terbukti menjadi over-haul utama karena kurangnya ekspresi dari konfigurasi XML yang diperlukan. Masalah ini telah diatasi ketika konfigurasi berbasis skema XML telah diperkenalkan di musim semi 2.
Membangun dengan Maven
Peningkatan terbesar yang menyederhanakan penggunaan Mule, baik pada waktu pengembangan dan penerapan, adalah penggunaan Maven. Dari versi 1.3, itu mulai dibangun dengan Maven.
MuleSource
Pada tahun 2006, MuleSource bergabung "untuk membantu mendukung dan mengaktifkan komunitas yang berkembang pesat menggunakan Mule dalam aplikasi perusahaan yang sangat penting". Itu terbukti menjadi tonggak penting untuk Proyek Mule.
Pesaing Mule ESB
Berikut adalah beberapa pesaing utama Mule ESB -
- WSO2 ESB
- Bus Layanan Oracle
- Broker Pesan WebSphere
- Platform Aurea CX
- Fiorano ESB
- Gateway WebSphere DataPower
- Kerangka Proses Bisnis Hari Kerja
- Bus Layanan Talend Enterprise
- Bus Layanan JBoss Enterprise
- iWay Service Manager
Konsep Inti Mule
Seperti yang telah dibahas, Mule ESB adalah bus layanan perusahaan (ESB) berbasis Java yang ringan dan sangat skalabel serta platform integrasi. Terlepas dari berbagai teknologi yang digunakan oleh aplikasi, Mule ESB memungkinkan integrasi aplikasi yang mudah, memungkinkan mereka untuk bertukar data. Pada bagian ini, kita akan membahas tentang konsep inti Mule yang berperan untuk mewujudkan integrasi tersebut.
Untuk ini, kita perlu memahami arsitekturnya serta blok bangunannya.
Arsitektur
Arsitektur Mule ESB memiliki tiga layer yaitu Transport layer, Integration layer dan Application layer seperti yang ditunjukkan pada diagram berikut -
Secara umum, ada tiga jenis tugas berikut yang dapat dilakukan untuk mengonfigurasi dan menyesuaikan penerapan Mule -
Pengembangan Komponen Layanan
Tugas ini melibatkan pengembangan atau penggunaan kembali POJO yang ada, atau Spring Beans. POJOs adalah kelas dengan atribut yang menghasilkan metode get dan set, konektor cloud. Di sisi lain, Spring Beans mengandung logika bisnis untuk memperkaya pesan.
Orkestrasi Layanan
Tugas ini pada dasarnya menyediakan mediasi layanan yang melibatkan konfigurasi prosesor pesan, router, transformer, dan filter.
Integrasi
Tugas terpenting Mule ESB adalah integrasi berbagai aplikasi terlepas dari protokol yang mereka gunakan. Untuk tujuan ini, Mule menyediakan metode transportasi yang memungkinkan penerimaan dan pengiriman pesan pada berbagai konektor protokol. Mule mendukung banyak metode transportasi yang ada, atau kami juga dapat menggunakan metode transportasi khusus.
Blok bangunan
Konfigurasi Mule memiliki blok penyusun berikut -
Kacang musim semi
Kegunaan utama Spring beans adalah untuk membangun komponen layanan. Setelah membuat komponen layanan pegas, kita dapat mendefinisikannya melalui file konfigurasi atau secara manual, jika Anda tidak memiliki file konfigurasi.
Agen
Ini pada dasarnya adalah layanan yang dibuat di Anypoint Studio sebelum Mule Studio. Agen dibuat setelah Anda memulai server dan akan dihancurkan setelah Anda menghentikan server.
Penyambung
Ini adalah komponen perangkat lunak yang dikonfigurasi dengan parameter yang khusus untuk protokol. Ini terutama digunakan untuk mengontrol penggunaan protokol. Misalnya, konektor JMS dikonfigurasi dengan fileConnection dan konektor ini akan dibagikan di antara berbagai entitas yang bertanggung jawab atas komunikasi aktual.
Konfigurasi Global
Sesuai dengan namanya, blok penyusun ini digunakan untuk mengatur properti dan pengaturan global.
Titik Akhir Global
Ini dapat digunakan di tab Elemen Global yang dapat digunakan berkali-kali dalam aliran -
Prosesor Pesan Global
Sesuai dengan namanya, ia mengamati atau mengubah aliran pesan atau pesan. Transformer dan filter adalah contoh dari Prosesor Pesan Global.
Transformers- Tugas utama transformator adalah mengubah data dari satu format ke format lainnya. Ini dapat didefinisikan secara global dan dapat digunakan dalam banyak aliran.
Filters- Filter inilah yang akan memutuskan pesan Mule mana yang harus diproses. Filter pada dasarnya menentukan kondisi yang harus dipenuhi agar pesan diproses dan diarahkan ke layanan.
Model
Berbeda dengan Agen, ini adalah pengelompokan logis dari layanan yang dibuat di studio. Kami memiliki kebebasan untuk memulai dan menghentikan semua layanan di dalam model tertentu.
Services- Layanan adalah salah satu yang membungkus logika atau komponen bisnis kami. Itu juga mengkonfigurasi Router, Endpoints, transformer dan filter khusus untuk layanan itu.
Endpoints- Ini dapat didefinisikan sebagai objek di mana layanan akan masuk (menerima) dan keluar (mengirim) pesan. Layanan terhubung melalui titik akhir.
Mengalir
Pengolah pesan menggunakan aliran untuk menentukan aliran pesan antara sumber dan target.
Struktur Pesan Mule
Pesan Mule, yang dibungkus seluruhnya di bawah Objek Pesan Mule, adalah data yang melewati aplikasi melalui aliran Mule. Struktur pesan Mule ditunjukkan pada diagram berikut -
Seperti yang terlihat pada diagram di atas, Pesan Mule terdiri dari dua bagian utama -
Header
Ini tidak lain adalah metadata pesan yang selanjutnya diwakili oleh dua properti berikut -
Inbound Properties- Ini adalah properti yang secara otomatis diatur oleh sumber pesan. Mereka tidak dapat dimanipulasi atau diatur oleh pengguna. Di alam, properti masuk tidak dapat diubah.
Outbound Properties- Ini adalah properti yang berisi metadata seperti properti masuk dan dapat disetel selama aliran. Mereka dapat diatur secara otomatis oleh Mule atau secara manual oleh pengguna. Secara alami, properti keluar bisa berubah.
Properti keluar menjadi properti masuk saat pesan melewati dari titik akhir keluar dari satu aliran ke titik akhir masuk aliran yang berbeda melalui pengangkutan.
Properti keluar tetap menjadi properti keluar saat pesan diteruskan ke aliran baru melalui flow-ref, bukan konektor.
Muatan
Pesan bisnis aktual yang dibawa oleh objek pesan disebut payload.
Variabel
Ini dapat didefinisikan sebagai metadata yang ditentukan pengguna tentang sebuah pesan. Pada dasarnya, variabel adalah potongan informasi sementara tentang pesan yang digunakan oleh aplikasi yang memprosesnya. Itu tidak dimaksudkan untuk diteruskan dengan pesan-pesan ke tujuannya. Mereka terdiri dari tiga jenis seperti yang diberikan di bawah ini -
Flow variables - Variabel ini hanya berlaku untuk aliran yang ada.
Session variables - Variabel ini berlaku di semua aliran dalam aplikasi yang sama.
Record variables - Variabel ini hanya berlaku untuk rekaman yang diproses sebagai bagian dari sebuah batch.
Lampiran dan Muatan Ekstra
Ini adalah beberapa metadata tambahan tentang muatan pesan yang tidak selalu muncul setiap kali di objek pesan.
Pada chapter sebelumnya, kita telah mempelajari dasar-dasar Mule ESB. Di bab ini, mari kita pelajari cara menginstal dan mengkonfigurasinya.
Prasyarat
Kita harus memenuhi prasyarat berikut sebelum menginstal Mule di komputer kita -
Java Development Kit (JDK)
Sebelum menginstal MULE, pastikan Anda telah mendukung versi Java di sistem Anda. JDK 1.8.0 disarankan agar berhasil menginstal Mule di sistem Anda.
Sistem operasi
Sistem operasi berikut ini didukung oleh Mule -
- MacOS 10.11.x
- HP-UX 11iV3
- AIX 7.2
- Server Windows 2016
- Server Windows 2012 R2
- Windows 10
- Windows 8.1
- Solaris 11.3
- RHEL 7
- Server Ubuntu 18.04
- Kernel Linux 3.13+
Database
Server aplikasi atau database tidak diperlukan karena Mule Runtime berjalan sebagai server mandiri. Tetapi jika kita perlu mengakses penyimpanan data atau ingin menggunakan server aplikasi, server atau database aplikasi yang didukung berikut dapat digunakan -
- Oracle 11g
- Oracle 12c
- MySQL 5.5+
- IBM DB2 10
- PostgreSQL 9
- Derby 10
- Microsoft SQL Server 2014
Persyaratan sistem
Sebelum menginstal Mule di sistem Anda, itu harus memenuhi persyaratan sistem berikut -
- Setidaknya 2 GHz CPU atau 1 CPU Virtual dalam lingkungan tervirtualisasi
- RAM minimal 1 GB
- Penyimpanan minimal 4 GB
Unduh Mule
Untuk mengunduh file biner Mule 4, klik tautannya https://www.mulesoft.com/lp/dl/mule-esb-enterprise dan itu akan membawa Anda ke halaman web resmi MuleSoft sebagai berikut -
Dengan memberikan detail yang diperlukan, Anda bisa mendapatkan file biner Mule 4 dalam format Zip.
Instal dan Jalankan Mule
Sekarang setelah mengunduh file biner Mule 4, unzip dan atur variabel lingkungan yang disebut MULE_HOME untuk direktori Mule di dalam folder yang diekstrak.
Misalnya, variabel lingkungan, di lingkungan Windows dan Linux / Unix, dapat disetel untuk versi 4.1.5 di direktori Unduhan sebagai berikut -
Lingkungan Windows
$ env:MULE_HOME=C:\Downloads\mule-enterprise-standalone-4.1.5\
Lingkungan Unix / Linux
$ export MULE_HOME=~/Downloads/mule-enterprise-standalone-4.1.5/
Sekarang, untuk menguji apakah Mule berjalan di sistem Anda tanpa kesalahan, gunakan perintah berikut -
Lingkungan Windows
$ $MULE_HOME\bin\mule.bat
Lingkungan Unix / Linux
$ $MULE_HOME/bin/mule
Perintah di atas akan menjalankan Mule dalam mode latar depan. Jika Mule sedang berjalan, kami tidak dapat mengeluarkan perintah lain di terminal. Mendesakctrl-c perintah di terminal, akan menghentikan Mule.
Mulai Layanan Mule
Kita dapat menjalankan Mule sebagai Layanan Windows dan juga sebagai Daemon Linux / Unix.
Mule sebagai Layanan Windows
Untuk menjalankan Mule sebagai layanan Windows, kita perlu mengikuti langkah-langkah di bawah ini -
Step 1 - Pertama, instal dengan bantuan perintah berikut -
$ $MULE_HOME\bin\mule.bat install
Step 2 - Setelah terinstal, kita dapat menjalankan mule sebagai layanan Windows dengan bantuan perintah berikut:
$ $MULE_HOME\bin\mule.bat start
Mule sebagai Daemon Linux / Unix
Untuk menjalankan Mule sebagai Linux / Unix Daemon, kita perlu mengikuti langkah-langkah di bawah ini -
Step 1 - Instal dengan bantuan perintah berikut -
$ $MULE_HOME/bin/mule install
Step 2 - Setelah terinstal, kita dapat menjalankan mule sebagai layanan Windows dengan bantuan perintah berikut -
$ $MULE_HOME/bin/mule start
Example
Contoh berikut memulai Mule sebagai Unix Daemon -
$ $MULE_HOME/bin/mule start
MULE_HOME is set to ~/Downloads/mule-enterprise-standalone-4.1.5
MULE_BASE is set to ~/Downloads/mule-enterprise-standalone-4.1.5
Starting Mule Enterprise Edition...
Waiting for Mule Enterprise Edition.................
running: PID:87329
Terapkan Aplikasi Mule
Kami dapat menerapkan aplikasi Mule kami dengan bantuan langkah-langkah berikut -
Step 1 - Pertama, mulai Mule.
Step 2 - Setelah Mule dimulai, kita dapat menerapkan aplikasi Mule dengan memindahkan file paket JAR ke apps direktori di $MULE_HOME.
Hentikan Layanan Mule
Kita bisa gunakan stopperintah untuk menghentikan Mule. Misalnya, contoh berikut memulai Mule sebagai Unix Daemon -
$ $MULE_HOME/bin/mule stop
MULE_HOME is set to /Applications/mule-enterprise-standalone-4.1.5
MULE_BASE is set to /Applications/mule-enterprise-standalone-4.1.5
Stopping Mule Enterprise Edition...
Stopped Mule Enterprise Edition.
Kami juga bisa menggunakan removeperintah untuk menghapus Layanan Mule atau Daemon dari sistem kami. Contoh berikut menghapus Mule sebagai Unix Daemon -
$ $MULE_HOME/bin/mule remove
MULE_HOME is set to /Applications/mule-enterprise-standalone-4.1.5
MULE_BASE is set to /Applications/mule-enterprise-standalone-4.1.5
Detected Mac OSX:
Mule Enterprise Edition is not running.
Removing Mule Enterprise Edition daemon...
MuleSoft's Anypoint Studio adalah aplikasi yang mudah digunakan IDE (integration development environment)digunakan untuk merancang dan menguji aplikasi Mule. Ini adalah IDE berbasis Eclipse. Kita dapat dengan mudah menyeret Konektor dari Palet Mule. Dengan kata lain, Anypoint Studio adalah IDE berbasis Eclipse untuk pengembangan aliran, dll.
Prasyarat
Kita harus memenuhi prasyarat berikut sebelum menginstal Mule di semua OS, yaitu Windows, Mac dan Linux / Unix.
Java Development Kit (JDK)- Sebelum menginstal Mule, pastikan Anda telah mendukung versi Java di sistem Anda. JDK 1.8.0 disarankan agar berhasil menginstal Anypoint di sistem Anda.
Mengunduh dan Memasang Anypoint Studio
Prosedur untuk mengunduh dan menginstal Anypoint Studio pada sistem operasi yang berbeda mungkin berbeda. Selanjutnya, ada langkah-langkah yang harus diikuti untuk mengunduh dan menginstal Anypoint Studio di berbagai sistem operasi -
Di Windows
Untuk mendownload dan menginstal Anypoint Studio di Windows, kita perlu mengikuti langkah-langkah di bawah ini -
Step 1 - Pertama, klik tautannya https://www.mulesoft.com/lp/dl/studio dan pilih sistem operasi Windows dari daftar atas-bawah untuk mengunduh studio.
Step 2 - Sekarang, ekstrak ke file ‘C:\’ folder root.
Step 3 - Buka Anypoint Studio yang diekstrak.
Step 4- Untuk menerima ruang kerja default, klik OK. Anda akan mendapatkan pesan selamat datang saat pertama kali dimuat.
Step 5 - Sekarang, klik tombol Get Started untuk menggunakan Anypoint Studio.
Di OS X
Untuk mendownload dan menginstal Anypoint Studio di OS X, kita perlu mengikuti langkah-langkah di bawah ini -
Step 1 - Pertama, klik tautannya https://www.mulesoft.com/lp/dl/studio dan unduh studio.
Step 2- Sekarang, ekstrak. Jika Anda menggunakan OS versi Sierra, pastikan untuk memindahkan aplikasi yang diekstrak ke/Applications folder sebelum meluncurkannya.
Step 3 - Buka Anypoint Studio yang diekstrak.
Step 4- Untuk menerima ruang kerja default, klik OK. Anda akan mendapatkan pesan selamat datang saat pertama kali dimuat.
Step 5 - Sekarang, klik Get Started tombol untuk menggunakan Anypoint Studio.
Jika Anda akan menggunakan jalur khusus ke ruang kerja Anda, harap dicatat bahwa Anypoint Studio tidak memperluas ~ tilde yang digunakan dalam sistem Linux / Unix. Oleh karena itu, disarankan untuk menggunakan jalur absolut saat menentukan ruang kerja.
Di Linux
Untuk mendownload dan menginstal Anypoint Studio di Linux, kita perlu mengikuti langkah-langkah di bawah ini -
Step 1 - Pertama, klik tautannya https://www.mulesoft.com/lp/dl/studio dan pilih sistem operasi Linux dari daftar atas-bawah untuk mengunduh studio.
Step 2 - Sekarang, ekstrak.
Step 3 - Selanjutnya, buka Anypoint Studio yang diekstrak.
Step 4- Untuk menerima ruang kerja default, klik OK. Anda akan mendapatkan pesan selamat datang saat pertama kali dimuat.
Step 5 - Sekarang, klik tombol Get Started untuk menggunakan Anypoint Studio.
Jika Anda akan menggunakan jalur khusus ke ruang kerja Anda, harap dicatat bahwa Anypoint Studio tidak memperluas ~ tilde yang digunakan dalam sistem Linux / Unix. Oleh karena itu, disarankan untuk menggunakan jalur absolut saat menentukan ruang kerja.
Anda juga disarankan untuk menginstal GTK versi 2 untuk menggunakan Tema Studio lengkap di Linux.
Fitur dari Anypoint Studio
Berikut adalah beberapa fitur Anypoint studio yang meningkatkan produktivitas sambil membuat aplikasi Mule -
Ini menyediakan aplikasi Mule yang dijalankan secara instan di dalam runtime lokal.
Anypoint studio memberi kami editor visual untuk mengonfigurasi file definisi API dan domain Mule.
Ini telah menyematkan kerangka pengujian unit untuk meningkatkan produktivitas.
Anypoint studio memberi kami dukungan bawaan untuk diterapkan ke CloudHub.
Ini memiliki fasilitas untuk berintegrasi dengan Exchange untuk mengimpor templat, contoh, definisi, dan sumber daya lain dari organisasi Platform Anypoint lainnya.
Editor Anypoint Studio membantu kami merancang aplikasi, API, properti, dan file konfigurasi kami. Bersamaan dengan mendesain, ini juga membantu kami mengeditnya. Kami memiliki editor file konfigurasi Mule untuk tujuan ini. Untuk membuka editor ini, klik dua kali pada file XML aplikasi di/src/main/mule.
Untuk bekerja dengan aplikasi kami, kami memiliki tiga tab berikut di bawah editor file Konfigurasi Mule.
Tab Alur Pesan
Tab ini memberikan representasi visual alur kerja. Ini pada dasarnya berisi kanvas yang membantu kami memeriksa aliran kami secara visual. Jika Anda ingin menambahkan Prosesor Acara dari Palet Mule ke kanvas, cukup seret dan lepas dan itu akan tercermin di kanvas.
Dengan mengklik pada Prosesor Peristiwa, Anda bisa mendapatkan Tampilan Properti Mule dengan atribut untuk prosesor yang dipilih. Kami juga dapat mengeditnya.
Tab Elemen Global
Tab ini berisi elemen konfigurasi Mule global untuk modul. Di bawah tab ini kita dapat membuat, mengedit atau menghapus file konfigurasi.
Tab Konfigurasi XML
Sesuai dengan namanya, ini berisi XML yang mendefinisikan aplikasi Mule Anda. Semua perubahan yang Anda lakukan di sini akan tercermin di kanvas serta tampilan properti prosesor acara di bawah tab Alur Pesan.
Tampilan
Untuk editor aktif, Anypoint studio memberi kami representasi grafis dari metadata proyek kami, properti dengan bantuan tampilan. Seorang pengguna dapat memindahkan, menutup serta menambahkan tampilan di proyek Mule. Berikut adalah beberapa tampilan default di Anypoint studio -
Penjelajah Paket
Tugas utama tampilan Package Explorer adalah menampilkan folder dan file proyek yang terdapat dalam proyek Mule. Kami dapat memperluas atau mengontrak folder proyek Mule dengan mengklik panah di sebelahnya. Folder atau file dapat dibuka dengan mengklik dua kali. Lihat tangkapan layarnya -
Palet Mule
Tampilan Palet Mule menunjukkan prosesor acara seperti cakupan, filter, dan router kontrol aliran bersama dengan modul dan operasi terkaitnya. Tugas utama tampilan Palet Mule adalah sebagai berikut -
- Tampilan ini membantu kami mengelola modul dan konektor dalam proyek kami.
- Kami juga dapat menambahkan elemen baru dari Exchange.
Lihat tangkapan layarnya -
Properti Mule
Sesuai dengan namanya, ini memungkinkan kita untuk mengedit properti modul yang saat ini dipilih di kanvas kita. Tampilan Mule Properties meliputi:
DataSense Explorer yang memberikan informasi waktu nyata tentang struktur data muatan kami.
Properti masuk dan keluar, jika tersedia atau variabel.
Berikut tangkapan layarnya -
Menghibur
Setiap kali kami membuat atau menjalankan aplikasi Mule, server Mule tertanam menampilkan daftar kejadian dan masalah, jika ada, yang dilaporkan oleh Studio. Tampilan konsol berisi konsol dari server Mule tertanam tersebut. Lihat tangkapan layarnya -
Masalah Lihat
Kami dapat menemui banyak masalah saat mengerjakan Proyek Mule kami. Semua masalah tersebut ditampilkan di tampilan Masalah. Berikut tangkapan layarnya
Perspektif
Di Anypoint Studio, ini adalah kumpulan tampilan dan editor dalam pengaturan yang ditentukan. Ada dua jenis perspektif di Anypoint Studio -
Mule Design Perspective - Ini adalah perspektif default yang kami dapatkan di Studio.
Mule Debug Perspective - Perspektif lain yang disediakan oleh Anypoint Studio adalah Mule Debug Perspective.
Di sisi lain, kami juga dapat membuat perspektif kami sendiri dan dapat menambah atau menghapus tampilan default mana pun.
Dalam bab ini kita akan membuat aplikasi Mule pertama kita di Anypoint Studio MuleSoft. Untuk membuatnya, pertama-tama kita perlu meluncurkan Anypoint Studio.
Meluncurkan Anypoint Studio
Klik pada Anypoint Studio untuk meluncurkannya. Jika Anda meluncurkannya untuk pertama kali, maka Anda akan melihat jendela berikut -
Antarmuka Pengguna Anypoint Studio
Setelah Anda mengklik tombol Go to Workspace, itu akan membawa Anda ke antarmuka pengguna Anypoint Studio sebagai berikut -
Langkah-langkah Pembuatan Aplikasi Mule
Untuk membuat aplikasi Mule Anda, ikuti langkah-langkah di bawah ini -
Membuat Proyek Baru
Langkah pertama untuk membuat aplikasi Mule adalah membuat proyek baru. Itu bisa dilakukan dengan mengikuti jalanFILE → NEW → Mule Project seperti yang ditunjukkan di bawah ini -
Memberi Nama Proyek
Setelah mengklik Proyek Mule baru, seperti dijelaskan di atas, ini akan membuka jendela baru yang menanyakan nama proyek dan spesifikasi lainnya. Beri nama Proyek, 'TestAPP1'dan kemudian klik tombol selesai.
Setelah Anda mengklik Tombol Selesai, itu akan membuka ruang kerja yang dibangun untuk MuleProject Anda yaitu ‘TestAPP1’. Anda dapat melihat semua fileEditors dan Views dijelaskan di bab sebelumnya.
Mengonfigurasi Konektor
Di sini, kita akan membuat aplikasi Mule sederhana untuk HTTP Listener. Untuk ini, kita perlu menyeret konektor Pemroses HTTP dari Palet Mule dan melepaskannya ke ruang kerja seperti yang ditunjukkan di bawah ini -
Sekarang, kita perlu mengkonfigurasinya. Klik tanda + warna hijau setelah konfigurasi Konektor di bawah Pengaturan Dasar seperti yang ditunjukkan di atas.
Saat mengklik oke, itu akan membawa Anda kembali ke halaman properti HTTP Listener. Sekarang kita perlu menyediakan jalur di bawah Tab Umum. Dalam contoh khusus ini, kami telah menyediakan/FirstAPP sebagai nama jalan.
Mengonfigurasi Set Konektor Muatan
Sekarang, kita perlu mengambil konektor Set Payload. Kami juga perlu memberikan nilainya di bawah tab Pengaturan sebagai berikut -
This is my first Mule Application, adalah nama yang diberikan dalam contoh ini.
Menjalankan Aplikasi Mule
Sekarang, simpan dan klik Run as Mule Application seperti yang ditunjukkan di bawah ini -
Kami dapat memeriksanya di bawah Konsol yang menyebarkan aplikasi sebagai berikut -
Ini menunjukkan bahwa Anda telah berhasil membangun Aplikasi Mule pertama Anda.
Memverifikasi Aplikasi Mule
Sekarang, kita perlu menguji apakah aplikasi kita berjalan atau tidak. Go to POSTMAN, aplikasi Chrome dan masukkan Url: http:/localhost:8081. Ini menunjukkan pesan yang kami berikan saat membangun aplikasi Mule seperti yang ditunjukkan di bawah ini -
DataWeave pada dasarnya adalah bahasa ekspresi MuleSoft. Ini terutama digunakan untuk mengakses dan mengubah data yang diterima melalui aplikasi Mule. Runtime Mule bertanggung jawab untuk menjalankan skrip dan ekspresi dalam aplikasi Mule kami, DataWeave sangat terintegrasi dengan runtime Mule.
Fitur Bahasa DataWeave
Berikut adalah beberapa fitur penting dari bahasa DataWeave -
Data dapat diubah dari satu format ke format lainnya dengan sangat mudah. Misalnya, kita dapat mengubah application / json menjadi application / xml. Muatan input adalah sebagai berikut -
{
"title": "MuleSoft",
"author": " tutorialspoint.com ",
"year": 2019
}
Berikut adalah kode di DataWeave untuk transformasi -
%dw 2.0
output application/xml
---
{
order: {
'type': 'Tutorial',
'title': payload.title,
'author': upper(payload.author),
'year': payload.year
}
}
Selanjutnya, output payload adalah sebagai berikut -
<?xml version = '1.0' encoding = 'UTF-8'?>
<order>
<type>Tutorial</type>
<title>MuleSoft</title>
<author>tutorialspoint.com</author>
<year>2019</year>
</order>
Komponen transformasi dapat digunakan untuk membuat skrip yang melakukan transformasi data sederhana dan kompleks.
Kita dapat mengakses dan menggunakan fungsi inti DataWeave di bagian acara Mule yang kita perlukan karena sebagian besar pemroses pesan Mule mendukung ekspresi DataWeave.
Prasyarat
Kita perlu memenuhi prasyarat berikut sebelum menggunakan skrip DataWeave di komputer kita -
Anypoint Studio 7 diperlukan untuk menggunakan skrip Dataweave.
Setelah menginstal Anypoint Studio, kita perlu menyiapkan proyek dengan komponen Transform Message untuk menggunakan skrip DataWeave.
Langkah-langkah untuk Menggunakan Skrip DataWeave dengan Contoh
Untuk menggunakan skrip DataWeave, kita perlu mengikuti langkah-langkah di bawah ini -
Step 1
Pertama, kita perlu menyiapkan proyek baru, seperti yang kita lakukan di bab sebelumnya, dengan menggunakan File → New → Mule Project.
Step 2
Selanjutnya, kami perlu memberikan nama proyek. Untuk contoh ini, kami memberi nama,Mule_test_script.
Step 3
Sekarang, kita perlu menyeret file Transform Message component dari Mule Palette tab ke canvas. Itu ditunjukkan seperti di bawah ini -
Step 4
Selanjutnya, di Transform Message componenttab, klik Pratinjau untuk membuka panel Pratinjau. Kita dapat memperluas area kode sumber dengan mengklik persegi panjang kosong di sebelah Pratinjau.
Step 5
Sekarang, kita dapat mulai membuat skrip dengan bahasa DataWeave.
Contoh
Berikut adalah contoh sederhana dari menggabungkan dua string menjadi satu -
Skrip DataWeave di atas memiliki pasangan nilai kunci ({ myString: ("hello" ++ "World") }) yang akan menggabungkan dua string menjadi satu.
Modul scripting memfasilitasi pengguna untuk menggunakan bahasa scripting di Mule. Dengan kata sederhana, modul skrip dapat bertukar logika khusus yang ditulis dalam bahasa skrip. Skrip dapat digunakan sebagai Implementasi atau transformator. Mereka dapat digunakan untuk evaluasi ekspresi, yaitu untuk mengontrol perutean pesan.
Mule memiliki bahasa skrip yang didukung berikut -
- Groovy
- Python
- JavaScript
- Ruby
Bagaimana cara menginstal Modul Scripting?
Sebenarnya, Anypoint Studio hadir dengan modul scripting. Jika Anda tidak menemukan modul di Palet Mule, maka modul dapat ditambahkan dengan menggunakan+Add Module. Setelah menambahkan, kita dapat menggunakan operasi modul scripting di aplikasi Mule kita.
Menerapkan Contoh
Seperti yang telah dibahas, kita perlu menyeret dan melepas modul ke kanvas untuk membuat ruang kerja dan menggunakannya dalam aplikasi kita. Berikut ini adalah contohnya -
Kita sudah tahu cara mengkonfigurasi komponen Pemroses HTTP; maka kita akan membahas tentang konfigurasi Modul Scripting. Kita perlu mengikuti langkah-langkah yang tertulis di bawah ini untuk mengkonfigurasi modul scripting -
Step 1
Cari modul Scripting dari Mule Palette dan seret EXECUTE pengoperasian modul skrip ke dalam alur Anda seperti yang ditunjukkan di atas.
Step 2
Sekarang, buka tab Execute configuration dengan mengklik dua kali pada hal yang sama.
Step 3
Di bawah General tab, kita perlu memberikan kode di Code text window seperti yang ditunjukkan di bawah ini -
Step 4
Akhirnya, kita perlu memilih file Enginedari komponen eksekusi. Daftar mesinnya adalah sebagai berikut -
- Groovy
- Nashorn(javaScript)
- jython(Python)
- jRuby(Ruby)
XML dari contoh eksekusi di atas dalam editor XML Konfigurasi adalah sebagai berikut -
<scripting:execute engine="jython" doc:name = "Script">
<scripting:code>
def factorial(n):
if n == 0: return 1
return n * factorial(n-1)
result = factorial(10)
</scripting:code>
</scripting:execute>
Sumber Pesan
Mule 4 memiliki model yang disederhanakan daripada pesan Mule 3 sehingga lebih mudah untuk bekerja dengan data secara konsisten di seluruh konektor tanpa menimpa informasi. Dalam model pesan Mule 4, setiap event Mule terdiri dari dua hal:a message and variables associated with it.
Pesan Mule memiliki payload dan atributnya, di mana atribut utamanya adalah metadata seperti ukuran file.
Dan variabel menyimpan informasi pengguna yang sewenang-wenang seperti hasil operasi, nilai tambahan, dll.
Masuk
Properti masuk di Mule 3 sekarang menjadi Atribut di Mule 4. Seperti yang kita ketahui bahwa properti masuk menyimpan informasi tambahan tentang muatan yang diperoleh melalui sumber pesan, tetapi sekarang, di Mule 4, dilakukan dengan bantuan atribut. Atribut memiliki keuntungan sebagai berikut -
Dengan bantuan atribut, kita dapat dengan mudah melihat data mana yang tersedia, karena atribut diketik dengan kuat.
Kita dapat dengan mudah mengakses informasi yang terdapat dalam atribut.
Berikut adalah contoh pesan umum di Mule 4 -
Keluar
Properti keluar di Mule 3 harus secara eksplisit ditentukan oleh konektor dan transportasi Mule untuk mengirim data tambahan. Namun di Mule 4, masing-masing dapat disetel secara terpisah, menggunakan ekspresi DataWeave untuk masing-masingnya. Itu tidak menghasilkan efek samping apa pun di aliran utama.
Misalnya, di bawah ekspresi DataWeave akan melakukan permintaan HTTP dan menghasilkan header dan parameter kueri tanpa perlu menyetel properti pesan. Ini ditunjukkan pada kode di bawah ini -
<http:request path = "M_issue" config-ref="http" method = "GET">
<http:headers>#[{'path':'input/issues-list.json'}]</http:headers>
<http:query-params>#[{'provider':'memory-provider'}]</http:query-params>
</http:request>
Prosesor Pesan
Setelah Mule menerima pesan dari sumber pesan, pekerjaan prosesor pesan dimulai. Mule menggunakan satu atau lebih pemroses pesan untuk memproses pesan melalui aliran. Tugas utama pengolah pesan adalah untuk mengubah, memfilter, memperkaya, dan memproses pesan saat melewati aliran Mule.
Kategorisasi Prosesor Mule
Berikut adalah kategori Mule Processor berdasarkan fungsinya -
Connectors- Prosesor pesan ini mengirim dan menerima data. Mereka juga memasukkan data ke sumber data eksternal melalui protokol standar atau API pihak ketiga.
Components - Pemroses pesan ini bersifat fleksibel dan menjalankan logika bisnis yang diimplementasikan dalam berbagai bahasa seperti Java, JavaScript, Groovy, Python, atau Ruby.
Filters - Mereka memfilter pesan dan hanya mengizinkan pesan tertentu untuk terus diproses dalam alur, berdasarkan kriteria tertentu.
Routers - Pemroses pesan ini digunakan untuk mengontrol aliran pesan ke rute, urutan ulang, atau pemisahan.
Scopes - hei pada dasarnya membungkus potongan kode untuk tujuan mendefinisikan perilaku terperinci dalam aliran.
Transformers - Peran transformer adalah mengubah jenis muatan pesan dan format data untuk memfasilitasi komunikasi antar sistem.
Business Events - Mereka pada dasarnya menangkap data yang terkait dengan indikator kinerja utama.
Exception strategies - Pemroses pesan ini menangani kesalahan jenis apa pun yang terjadi selama pemrosesan pesan.
Salah satu kemampuan terpenting Mule adalah ia dapat melakukan routing, transformasi, dan pemrosesan dengan komponen-komponen, karena itu file konfigurasi aplikasi Mule yang menggabungkan berbagai elemen berukuran sangat besar.
Berikut adalah jenis pola konfigurasi yang disediakan oleh Mule -
- Pola layanan sederhana
- Bridge
- Validator
- Proksi HTTP
- Proksi WS
Konfigurasi komponen
Di Anypoint studio, kita dapat mengikuti langkah-langkah di bawah ini untuk mengkonfigurasi komponen -
Step 1
Kita perlu menyeret komponen yang ingin kita gunakan dalam aplikasi Mule kita. Misalnya, di sini kami menggunakan komponen pendengar HTTP sebagai berikut -
Step 2
Selanjutnya, klik dua kali pada komponen tersebut untuk mendapatkan jendela konfigurasi. Untuk pendengar HTTP, itu ditunjukkan di bawah ini -
Step 3
Kami dapat mengkonfigurasi komponen sesuai kebutuhan proyek kami. Katakanlah misalnya, kami melakukannya untuk komponen pendengar HTTP -
Komponen inti adalah salah satu blok bangunan penting dari alur kerja di aplikasi Mule. Logika untuk memproses acara Mule disediakan oleh komponen inti ini. Di studio Anypoint, untuk mengakses komponen inti ini, Anda dapat mengklik Inti dari Palet Mule seperti yang ditunjukkan di bawah ini -
Berikut bermacam-macamnya core components and their working in Mule 4 -
Acara Bisnis Kustom
Komponen inti ini digunakan untuk mengumpulkan informasi tentang aliran serta pemroses pesan yang menangani transaksi bisnis di aplikasi Mule. Dengan kata lain, kita dapat menggunakan komponen Event Bisnis Kustom untuk menambahkan berikut ini dalam alur kerja kita -
- Metadata
- Indikator Kinerja Utama (KPI)
Bagaimana cara menambahkan KPI?
Berikut adalah langkah-langkah untuk menambahkan KPI dalam aliran kami di aplikasi Mule -
Step 1 - Ikuti Mule Palette → Core → Components → Custom Business Event, untuk menambahkan komponen Acara Bisnis Khusus ke alur kerja di aplikasi Mule Anda.
Step 2 - Klik pada komponen untuk membukanya.
Step 3 - Sekarang, kita perlu memberikan nilai untuk Nama Tampilan dan Nama Peristiwa.
Step 4 - Untuk menangkap informasi dari payload pesan, tambahkan KPI sebagai berikut -
Beri nama (kunci) untuk KPI ( pelacakan: elemen meta-data ) dan nilai. Nama tersebut akan digunakan dalam antarmuka pencarian Runtime Manager.
Berikan nilai yang mungkin berupa ekspresi Mule.
Contoh
Tabel berikut terdiri dari daftar KPI dengan Nama dan Nilai -
Nama | Ekspresi / Nilai |
---|---|
Mahasiswa Roll | # [payload ['RollNo']] |
Nama siswa | # [payload ['Nama']] |
Evaluasi Dinamis
Komponen inti ini digunakan untuk memilih skrip di aplikasi Mule secara dinamis. Kita juga dapat menggunakan skrip hardcore melalui Transform Message Component tetapi menggunakan komponen Dynamic Evaluate adalah cara yang lebih baik. Komponen inti ini bekerja sebagai berikut -
- Pertama, ini mengevaluasi ekspresi yang akan menghasilkan skrip lain.
- Kemudian itu mengevaluasi skrip itu untuk hasil akhir.
Dengan cara ini, ini memungkinkan kita untuk memilih skrip secara dinamis daripada melakukan hardcode.
Contoh
Berikut adalah contoh memilih skrip dari database melalui parameter kueri Id dan menyimpan skrip itu dalam variabel bernama MyScript . Sekarang, komponen evaluasi-dinamis akan mengakses variabel untuk memanggil skrip sehingga dapat menambahkan variabel nama dariUName parameter kueri.
Konfigurasi XML aliran diberikan di bawah ini -
<flow name = "DynamicE-example-flow">
<http:listener config-ref = "HTTP_Listener_Configuration" path = "/"/>
<db:select config-ref = "dbConfig" target = "myScript">
<db:sql>#["SELECT script FROM SCRIPTS WHERE ID =
$(attributes.queryParams.Id)"]
</db:sql>
</db:select>
<ee:dynamic-evaluate expression = "#[vars.myScript]">
<ee:parameters>#[{name: attributes.queryParams.UName}]</ee:parameters>
</ee:dynamic-evaluate>
</flow>
Skrip dapat menggunakan variabel konteks seperti message, payload, vars atau atribut. Namun, jika Anda ingin menambahkan variabel konteks khusus, Anda perlu menyediakan sekumpulan key-value pair.
Mengonfigurasi Evaluasi Dinamis
Tabel berikut menyediakan cara untuk mengkonfigurasi komponen Evaluasi Dinamis -
Bidang | Nilai | Deskripsi | Contoh |
---|---|---|---|
Ekspresi | Ekspresi DataWeave | Ini menentukan ekspresi yang akan dievaluasi ke dalam skrip akhir. | ekspresi = "# [vars.generateOrderScript]" |
Parameter | Ekspresi DataWeave | Ini menentukan pasangan nilai kunci. | # [{joiner: 'and', id: payload.user.id}] |
Komponen Referensi Aliran
Jika Anda ingin merutekan peristiwa Mule ke aliran atau sub-aliran lain dan kembali dalam aplikasi Mule yang sama, maka komponen referensi aliran adalah opsi yang tepat.
Karakteristik
Berikut adalah karakteristik dari komponen inti ini -
Komponen inti ini memungkinkan kita untuk memperlakukan seluruh aliran yang direferensikan seperti satu komponen dalam aliran arus.
Ini memecah aplikasi Mule menjadi unit diskrit dan dapat digunakan kembali. Misalnya, aliran mencantumkan file secara teratur. Ini mungkin merujuk pada aliran lain yang memproses keluaran operasi daftar.
Dengan cara ini, daripada menambahkan seluruh langkah pemrosesan, kita dapat menambahkan Referensi Alur yang menunjuk ke aliran pemrosesan. Tangkapan layar di bawah ini menunjukkan bahwa Komponen Inti Referensi Aliran mengarah ke sub-aliran bernamaProcessFiles.
Kerja
Cara kerja komponen Flow Ref dapat dipahami dengan bantuan diagram berikut -
Diagram menunjukkan urutan pemrosesan dalam aplikasi Mule ketika satu aliran mereferensikan aliran lain dalam aplikasi yang sama. Saat alur kerja utama dalam aplikasi Mule dipicu, peristiwa Mule berjalan terus dan menjalankan alur hingga peristiwa Mule mencapai Referensi Alur.
Setelah mencapai Referensi Aliran, peristiwa Mule menjalankan aliran yang direferensikan dari awal hingga akhir. Setelah event Mule selesai menjalankan Ref Flow, dia kembali ke aliran utama.
Contoh
Untuk pemahaman yang lebih baik, let us use this component in Anypoint Studio. Dalam contoh ini, kami mengambil pendengar HTTP untuk MENDAPATKAN pesan, seperti yang kami lakukan di bab sebelumnya. Jadi, kita dapat menarik dan melepas komponen dan mengkonfigurasi. Tapi untuk contoh ini, kita perlu menambahkan komponen Sub-flow dan mengatur komponen Payload di bawahnya, seperti yang ditunjukkan di bawah ini -
Selanjutnya, kita perlu mengkonfigurasi Set Payload, dengan mengklik dua kali di atasnya. Di sini kami memberikan nilai, "Sub aliran dieksekusi" seperti yang ditunjukkan di bawah ini -
Setelah berhasil mengkonfigurasi komponen sub-aliran, kita memerlukan Komponen Referensi Aliran untuk diatur setelah Setel Muatan arus utama, yang dapat kita seret dan lepas dari Palet Mule seperti yang ditunjukkan di bawah ini -
Selanjutnya, saat mengkonfigurasi Komponen Referensi Aliran, kita perlu memilih Nama Aliran di bawah tab Generik seperti yang ditunjukkan di bawah ini -
Sekarang, simpan dan jalankan aplikasi ini. Untuk mengujinya, buka POSTMAN dan ketikhttp:/localhost:8181/FirstAPP di bilah URL, dan Anda akan mendapatkan pesan, aliran Sub dijalankan.
Komponen Logger
Komponen inti yang disebut logger membantu kita untuk memantau dan men-debug aplikasi Mule kita dengan mencatat informasi penting seperti pesan kesalahan, pemberitahuan status, muatan, dll. Di studio AnyPoint, mereka muncul di Console.
Keuntungan
Berikut adalah beberapa keuntungan dari Komponen Logger -
- Kita dapat menambahkan komponen inti ini di manapun dalam alur kerja.
- Kita dapat mengkonfigurasinya untuk mencatat string yang ditentukan oleh kita.
- Kita dapat mengkonfigurasinya ke keluaran ekspresi DataWeave yang ditulis oleh kita.
- Kami juga dapat mengkonfigurasinya ke kombinasi string dan ekspresi apa pun.
Contoh
Contoh di bawah ini menampilkan pesan "Hello World" di Set Payload di browser dan juga mencatat pesan tersebut.
Berikut adalah konfigurasi XML aliran pada contoh di atas -
<http:listener-config name = "HTTP_Listener_Configuration" host = "localhost" port = "8081"/>
<flow name = "mymuleprojectFlow">
<http:listener config-ref="HTTP_Listener_Configuration" path="/"/>
<set-payload value="Hello World"/>
<logger message = "#[payload]" level = "INFO"/>
</flow>
Mentransfer Komponen Pesan
Transform Message Component, juga disebut komponen Transfer memungkinkan kita untuk mengubah data masukan menjadi format keluaran baru.
Metode untuk membangun Transformasi
Kita dapat membangun transformasi kita dengan bantuan dua metode berikut -
Drag-and-Drop Editor (Graphical View)- Ini adalah metode pertama dan paling banyak digunakan untuk membangun transformasi kami. Dalam metode ini, kita dapat menggunakan pemeta visual komponen ini untuk menarik dan melepas elemen struktur data yang masuk. Misalnya, pada diagram berikut, dua tampilan hierarki menunjukkan struktur metadata yang diharapkan dari input dan output. Garis yang menghubungkan input ke bidang output merepresentasikan pemetaan antara dua tampilan pohon.
Script View- Pemetaan visual Transformasi juga dapat direpresentasikan dengan bantuan DataWeave, bahasa untuk kode Mule. Kita dapat melakukan pengkodean untuk beberapa transformasi lanjutan seperti agregasi, normalisasi, pengelompokan, penggabungan, partisi, pivoting, dan pemfilteran. Contoh diberikan di bawah ini -
Komponen inti ini pada dasarnya menerima metadata masukan dan keluaran untuk variabel, atribut, atau muatan pesan. Kami dapat menyediakan sumber daya khusus format untuk berikut ini -
- CSV
- Schema
- Skema file datar
- JSON
- Kelas objek
- Tipe Sederhana
- Skema XML
- Nama dan jenis Kolom Excel
- Nama dan jenis Kolom Lebar Tetap
Titik akhir pada dasarnya mencakup komponen yang memicu atau memulai pemrosesan dalam alur kerja aplikasi Mule. Mereka disebutSource di Anypoint Studio dan Triggersdi Pusat Desain Mule. Salah satu titik akhir penting di Mule 4 adalahScheduler component.
Titik Akhir Penjadwal
Komponen ini bekerja pada kondisi berbasis waktu, yang artinya, memungkinkan kita untuk memicu aliran setiap kali kondisi berbasis waktu terpenuhi. Misalnya, penjadwal dapat memicu peristiwa untuk memulai alur kerja Mule setiap, katakanlah 10 detik. Kita juga dapat menggunakan ekspresi Cron yang fleksibel untuk memicu Titik Akhir Penjadwal.
Poin penting tentang Scheduler
Saat menggunakan acara Scheduler, kami perlu menjaga beberapa poin penting seperti yang diberikan di bawah ini -
Scheduler Endpoint mengikuti zona waktu mesin tempat runtime Mule berjalan.
Misalkan jika aplikasi Mule berjalan di CloudHub, Penjadwal akan mengikuti zona waktu region tempat pekerja CloudHub dijalankan.
Pada waktu tertentu, hanya satu aliran yang dipicu oleh Titik Akhir Penjadwal yang dapat aktif.
Di cluster runtime Mule, Scheduler Endpoint berjalan atau terpicu hanya pada node utama.
Cara mengkonfigurasi Penjadwal
Seperti dibahas di atas, kita dapat mengonfigurasi titik akhir penjadwal untuk dipicu pada interval tetap atau kita juga dapat memberikan ekspresi Cron.
Parameter untuk mengkonfigurasi Penjadwal (Untuk Interval Tetap)
Berikut adalah parameter untuk mengatur penjadwal untuk memicu aliran secara berkala -
Frequency- Ini pada dasarnya menjelaskan di frekuensi mana Titik Akhir Penjadwal akan memicu aliran Mule. Satuan waktu untuk ini dapat dipilih dari bidang Satuan Waktu. Jika Anda tidak memberikan nilai apa pun untuk ini, itu akan menggunakan nilai default yaitu 1000. Di sisi lain, jika Anda memberikan 0 atau nilai negatif, maka itu juga menggunakan nilai default.
Start Delay- Ini adalah jumlah waktu yang harus kita tunggu sebelum memicu aliran Mule untuk pertama kalinya setelah aplikasi dimulai. Nilai penundaan Start dinyatakan dalam satuan waktu yang sama dengan frekuensi. Nilai defaultnya adalah 0.
Time Unit- Ini menjelaskan unit waktu untuk Frekuensi dan Start Delay. Nilai yang mungkin dari unit waktu adalah Milidetik, Detik, Menit, Jam, Hari. Nilai defaultnya adalah Milidetik.
Parameter untuk mengkonfigurasi Penjadwal (Untuk Ekspresi Cron)
Sebenarnya Cron adalah standar yang digunakan untuk mendeskripsikan informasi waktu dan tanggal. Jika Anda menggunakan ekspresi Cron fleksibel untuk membuat penjadwal memicu, Titik Akhir Penjadwal melacak setiap detik dan membuat peristiwa Mule setiap kali ekspresi Quartz Cron cocok dengan pengaturan tanggal waktu. Dengan ekspresi Cron, acara dapat dipicu hanya sekali atau secara berkala.
Tabel berikut memberikan ekspresi tanggal-waktu dari enam pengaturan yang diperlukan -
Atribut | Nilai |
---|---|
Detik | 0-59 |
Menit | 0-59 |
Jam | 0-23 |
Hari dalam sebulan | 1-31 |
Bulan | 1-12 atau JAN-DEC |
Hari di minggu ini | 1-7 atau SUN-SAT |
Beberapa contoh ekspresi Quartz Cron yang didukung oleh Scheduler Endpoint diberikan di bawah ini -
½ * * * * ? - berarti penjadwal berjalan setiap 2 detik dalam sehari, setiap hari.
0 0/5 16 ** ? - berarti bahwa penjadwal berjalan setiap 5 menit mulai pukul 4 sore dan berakhir pada pukul 16:55, setiap hari.
1 1 1 1, 5 * ? - berarti bahwa penjadwal menjalankan hari pertama bulan Januari dan hari pertama bulan April, setiap tahun.
Contoh
Kode berikut mencatat pesan "hai" setiap detik -
<flow name = "cronFlow" doc:id = "ae257a5d-6b4f-4006-80c8-e7c76d2f67a0">
<doc:name = "Scheduler" doc:id = "e7b6scheduler8ccb-c6d8-4567-87af-aa7904a50359">
<scheduling-strategy>
<cron expression = "* * * * * ?" timeZone = "America/Los_Angeles"/>
</scheduling-strategy>
</scheduler>
<logger level = "INFO" doc:name = "Logger"
doc:id = "e2626dbb-54a9-4791-8ffa-b7c9a23e88a1" message = '"hi"'/>
</flow>
Kontrol Aliran (Router)
Tugas utama komponen Kontrol Aliran adalah mengambil peristiwa Mule masukan dan mengarahkannya ke satu atau beberapa urutan komponen yang terpisah. Ini pada dasarnya merutekan event input Mule ke urutan komponen lainnya. Oleh karena itu, ini juga disebut sebagai Router. Router Choice dan Scatter-Gather adalah router yang paling banyak digunakan di bawah komponen Flow Control.
Pilihan Router
Seperti namanya, router ini menerapkan logika DataWeave untuk memilih salah satu dari dua atau lebih rute. Seperti yang telah dibahas sebelumnya, setiap rute adalah urutan terpisah dari prosesor acara Mule. Kita dapat mendefinisikan router pilihan sebagai router yang secara dinamis merutekan pesan melalui aliran sesuai dengan kumpulan ekspresi DataWeave yang digunakan untuk mengevaluasi konten pesan.
Diagram skematis dari Router Pilihan
Efek menggunakan router Choice sama seperti menambahkan pemrosesan bersyarat ke aliran atau file if/then/elseblok kode di sebagian besar bahasa pemrograman. Berikut ini adalah diagram skema dari Router Pilihan, memiliki tiga opsi. Diantaranya, salah satunya adalah router default.
Router Scatter-Gather
Prosesor acara perutean lain yang paling banyak digunakan adalah Scatter-Gather component. Seperti namanya, ia bekerja pada dasar-dasar pencar (copy) dan Gather (Konsolidasi). Kami dapat memahami kerjanya dengan bantuan dua poin berikut -
Pertama, router ini menyalin (Scatter) acara Mule ke dua atau lebih rute paralel. Syaratnya adalah setiap rute harus merupakan urutan dari satu atau lebih pemroses peristiwa yang seperti sub-aliran. Setiap rute dalam hal ini akan membuat acara Mule dengan menggunakan utas terpisah. Setiap acara Mule akan memiliki payload, atribut, serta variabelnya sendiri.
Selanjutnya, router ini mengumpulkan acara Mule yang dibuat dari setiap rute dan kemudian menggabungkannya menjadi acara Mule baru. Setelah ini, ia meneruskan acara Mule terkonsolidasi ini ke pemroses acara berikutnya. Di sini kondisinya adalah bahwa router SG akan meneruskan event Mule yang terkonsolidasi ke event processor berikutnya hanya jika setiap rute berhasil diselesaikan.
Diagram Skema Router Scatter-Gather
Berikut ini adalah diagram skema dari Scatter-Gather Router yang memiliki empat prosesor acara. Ini mengeksekusi setiap rute secara paralel dan tidak berurutan.
Penanganan Error oleh Scatter-Gather Router
Pertama, kita harus memiliki pengetahuan tentang jenis kesalahan yang dapat dihasilkan dalam komponen Scatter-Gather. Kesalahan apa pun mungkin dihasilkan dalam prosesor acara yang membuat komponen Scatter-Gather menampilkan kesalahan jenisMule: COMPOSITE_ERROR. Kesalahan ini akan dilemparkan oleh komponen SG hanya setelah setiap rute gagal atau diselesaikan.
Untuk menangani jenis kesalahan ini, a try scopedapat digunakan di setiap rute komponen Scatter-Gather. Jika kesalahan berhasil ditangani olehtry scope, maka rute tersebut pasti bisa menghasilkan acara Mule.
Transformer
Misalkan jika kita ingin mengatur atau menghapus bagian dari event Mule manapun, komponen Transformer adalah pilihan terbaik. Komponen transformator adalah dari jenis berikut -
Hapus transformator variabel
Sesuai namanya, komponen ini mengambil nama variabel dan menghapus variabel tersebut dari acara Mule.
Konfigurasi pelepasan transformator variabel
Tabel di bawah ini menunjukkan nama bidang dan deskripsinya untuk dipertimbangkan saat mengkonfigurasi pelepasan transformator variabel -
Sr Tidak | Bidang & Penjelasan |
---|---|
1 | Display Name (doc:name) Kami dapat menyesuaikan ini untuk menampilkan nama unik untuk komponen ini dalam alur kerja Mule kami. |
2 | Name (variableName) Ini mewakili nama variabel yang akan dihapus. |
Atur trafo muatan
Dengan bantuan dari set-payloadkomponen, kita bisa memperbarui payload, yang bisa berupa string literal atau ekspresi DataWeave, dari pesan tersebut. Tidak disarankan menggunakan komponen ini untuk ekspresi atau transformasi kompleks. Ini dapat digunakan untuk yang sederhana sepertiselections.
Tabel di bawah ini menunjukkan nama bidang dan deskripsinya untuk dipertimbangkan saat mengkonfigurasi trafo muatan set -
Bidang | Pemakaian | Penjelasan |
---|---|---|
Nilai (nilai) | Wajib | Nilai yang diajukan diperlukan untuk menyetel muatan. Ini akan menerima string literal atau ekspresi DataWeave yang menentukan cara mengatur payload. Contohnya seperti "beberapa string" |
Jenis Pantomim (mimeType) | Pilihan | Ini opsional tetapi mewakili jenis mime dari nilai yang ditetapkan ke payload pesan. Contohnya seperti teks / biasa. |
Encoding (encoding) | Pilihan | Ini juga opsional tetapi mewakili pengkodean nilai yang ditetapkan ke payload pesan. Contohnya seperti UTF-8. |
Kita dapat mengatur payload melalui kode konfigurasi XML -
With Static Content - Mengikuti kode konfigurasi XML akan mengatur payload dengan menggunakan konten statis -
<set-payload value = "{ 'name' : 'Gaurav', 'Id' : '2510' }"
mimeType = "application/json" encoding = "UTF-8"/>
With Expression Content - Mengikuti kode konfigurasi XML akan mengatur payload dengan menggunakan konten Expression -
<set-payload value = "#['Hi' ++ ' Today is ' ++ now()]"/>
Contoh di atas akan menambahkan tanggal hari ini dengan payload pesan "Hai".
Atur Transformator Variabel
Dengan bantuan dari set variablekomponen, kita dapat membuat atau memperbarui variabel untuk menyimpan nilai yang dapat berupa nilai literal sederhana seperti string, muatan pesan atau objek atribut, untuk digunakan dalam aliran aplikasi Mule. Tidak disarankan menggunakan komponen ini untuk ekspresi atau transformasi kompleks. Ini dapat digunakan untuk yang sederhana sepertiselections.
Mengonfigurasi trafo variabel set
Tabel di bawah ini menunjukkan nama bidang dan deskripsinya untuk dipertimbangkan saat mengkonfigurasi trafo muatan set -
Bidang | Pemakaian | Penjelasan |
---|---|---|
Nama Variabel (variableName) | Wajib | Ini wajib diisi dan itu mewakili nama variabel. Saat memberi nama, ikuti konvensi penamaan karena harus mengandung angka, karakter dan garis bawah. |
Nilai (nilai) | Wajib | Nilai yang diajukan diperlukan untuk menyetel variabel. Ini akan menerima string literal atau ekspresi DataWeave. |
Jenis Pantomim (mimeType) | Pilihan | Ini opsional tetapi mewakili jenis mime dari variabel. Contohnya seperti teks / biasa. |
Encoding (encoding) | Pilihan | Ini juga opsional tetapi mewakili pengkodean variabel. Contohnya seperti ISO 10646 / Unicode (UTF-8). |
Contoh
Contoh di bawah ini akan mengatur variabel ke payload pesan -
Variable Name = msg_var
Value = payload in Design center and #[payload] in Anypoint Studio
Demikian pula, contoh di bawah ini akan menetapkan variabel ke payload pesan -
Variable Name = msg_var
Value = attributes in Design center and #[attributes] in Anypoint Studio.
Layanan Web REST
Bentuk lengkap REST adalah Representational State Transfer yang terikat dengan HTTP. Karenanya, jika Anda ingin merancang aplikasi untuk digunakan secara eksklusif di web, REST adalah pilihan terbaik.
Mengkonsumsi Layanan Web RESTful
Dalam contoh berikut, kami akan menggunakan komponen REST dan satu layanan RESTful publik yang disediakan oleh Mule Soft yang disebut detail Penerbangan Amerika. Ini memiliki berbagai detail tetapi kami akan menggunakan GET:http://training-american-ws.cloudhub.io/api/flightsyang akan mengembalikan semua detail penerbangan. Seperti yang dibahas sebelumnya, REST terikat dengan HTTP, oleh karena itu kita memerlukan dua komponen HTTP - satu Pendengar dan lainnya adalah Permintaan, untuk aplikasi ini juga. Tangkapan layar di bawah ini menunjukkan konfigurasi untuk pendengar HTTP -
Mengonfigurasi dan meneruskan argumen
Konfigurasi untuk permintaan HTTP diberikan di bawah ini -
Sekarang, sesuai alur ruang kerja kami, kami telah mengambil logger sehingga dapat dikonfigurasi seperti di bawah ini -
Di tab pesan, kami menulis kode untuk mengubah payload menjadi string.
Menguji Aplikasi
Sekarang, simpan dan jalankan aplikasi dan buka POSTMAN untuk memeriksa hasil akhir seperti yang ditunjukkan di bawah ini -
Anda dapat melihatnya memberikan detail penerbangan dengan menggunakan komponen REST.
Komponen SOAP
Bentuk lengkap SOAP adalah Simple Object Access Protocol. Ini pada dasarnya adalah spesifikasi protokol perpesanan untuk bertukar informasi dalam implementasi layanan web. Selanjutnya, kita akan menggunakan SOAP API di Anypoint Studio untuk mengakses informasi menggunakan layanan web.
Mengkonsumsi Layanan Web berbasis SOAP
Untuk contoh ini, kita akan menggunakan layanan SOAP publik yang bernama Layanan Info Negara yang mempertahankan layanan yang terkait dengan informasi negara. Alamat WSDL-nya adalah:http://www.oorsprong.org/websamples.countryinfo/countryinfoservice.wso?WSDL
Pertama, kita perlu menyeret konsumsi SOAP di kanvas kita dari Mule Palette seperti yang ditunjukkan di bawah ini -
Mengonfigurasi dan Meneruskan Argumen
Selanjutnya, kita perlu mengkonfigurasi permintaan HTTP seperti yang dilakukan pada contoh di atas seperti yang diberikan di bawah ini -
Sekarang, kita juga perlu mengkonfigurasi Konsumen Layanan Web seperti yang ditunjukkan di bawah ini -
Di tempat Lokasi WSDL, kami perlu memberikan alamat web WSDL, yang disediakan di atas (untuk contoh ini). Setelah Anda memberikan alamat web, Studio akan mencari layanan, Port, dan Alamat dengan sendirinya. Anda tidak perlu memberikannya secara manual.
Mentransfer Tanggapan dari Layanan Web
Untuk ini, kita perlu menambahkan logger di aliran Mule dan mengkonfigurasinya untuk memberikan payload seperti yang ditunjukkan di bawah ini -
Menguji Aplikasi
Simpan dan jalankan aplikasi dan buka Google Chrome untuk memeriksa hasil akhir. Tipehttp://localhist:8081/helloSOAP (untuk contoh ini) dan itu akan menunjukkan nama negara dengan kode seperti yang ditunjukkan pada gambar di bawah -
Penanganan error Mule yang baru adalah salah satu perubahan terbesar dan utama yang dilakukan di Mule 4. Penanganan error baru mungkin tampak rumit, tetapi lebih baik dan lebih efisien. Pada bab ini kita akan membahas tentang komponen kesalahan Mule, Jenis kesalahan, kategori kesalahan Mule dan komponen untuk menangani kesalahan Mule.
Komponen Kesalahan Mule
Kesalahan Mule adalah hasil dari kegagalan pengecualian Mule memiliki komponen berikut -
Deskripsi
Ini adalah komponen penting dari kesalahan Mule yang akan memberikan gambaran tentang masalah tersebut. Ekspresinya adalah sebagai berikut -
#[error.description]
Tipe
Komponen Jenis kesalahan Mule digunakan untuk menandai masalah. Ini juga memungkinkan perutean dalam penangan kesalahan. Ekspresinya adalah sebagai berikut -
#[error.errorType]
Sebab
Komponen Cause dari kesalahan Mule memberikan java yang mendasari throwable yang menyebabkan kegagalan. Ekspresinya adalah sebagai berikut -
#[error.cause]
Pesan
The Pesan komponen kesalahan Mule menunjukkan pesan opsional mengenai kesalahan. Ekspresinya adalah sebagai berikut -
#[error.errorMessage]
Kesalahan Anak
The Kesalahan Anak komponen kesalahan Mule memberikan koleksi opsional kesalahan batin. Kesalahan dalam ini terutama digunakan oleh elemen seperti Scatter-Gather untuk memberikan kesalahan rute gabungan. Ekspresinya adalah sebagai berikut -
#[error.childErrors]
Contoh
Jika terjadi kegagalan permintaan HTTP dengan kode status 401, Kesalahan Mule adalah sebagai berikut -
Description: HTTP GET on resource ‘http://localhost:8181/TestApp’
failed: unauthorized (401)
Type: HTTP:UNAUTHORIZED
Cause: a ResponseValidatorTypedException instance
Error Message: { "message" : "Could not authorize the user." }
Sr.NO | Jenis dan Deskripsi Kesalahan |
---|---|
1 | TRANSFORMATION Jenis Kesalahan ini menunjukkan kesalahan yang terjadi saat mengubah nilai. Transformasinya adalah transformasi internal Mule Runtime dan bukan transformasi DataWeave. |
2 | EXPRESSION Jenis Kesalahan ini menunjukkan kesalahan yang terjadi saat mengevaluasi ekspresi. |
3 | VALIDATION Jenis Kesalahan ini menunjukkan terjadi kesalahan validasi. |
4 | DUPLICATE_MESSAGE Semacam kesalahan validasi yang terjadi saat pesan diproses dua kali. |
5 | REDELIVERY_EXHAUSTED Jenis Kesalahan ini terjadi ketika upaya maksimum untuk memproses ulang pesan dari sumber telah habis. |
6 | CONNECTIVITY Jenis Kesalahan ini menunjukkan masalah saat membuat koneksi. |
7 | ROUTING Jenis Kesalahan ini menunjukkan kesalahan yang terjadi saat merutekan pesan. |
8 | SECURITY Jenis Kesalahan ini menunjukkan kesalahan keamanan terjadi. Misalnya, kredensial yang diterima tidak valid. |
9 | STREAM_MAXIMUM_SIZE_EXCEEDED Jenis Kesalahan ini terjadi ketika ukuran maksimum yang diizinkan untuk streaming habis. |
10 | TIMEOUT Ini menunjukkan batas waktu saat memproses pesan. |
11 | UNKNOWN Jenis Kesalahan ini menunjukkan terjadi kesalahan yang tidak terduga. |
12 | SOURCE Ini mewakili terjadinya kesalahan di sumber aliran. |
13 | SOURCE_RESPONSE Ini mewakili terjadinya kesalahan di sumber aliran saat memproses respons yang berhasil. |
Dalam contoh di atas, Anda dapat melihat komponen pesan kesalahan bagal.
Jenis Kesalahan
Mari kita pahami Jenis Kesalahan dengan bantuan karakteristiknya -
Karakteristik pertama Jenis Kesalahan Mule adalah terdiri dari keduanya, a namespace and an identifier. Hal ini memudahkan kita untuk membedakan jenis sesuai dengan domainnya. Dalam contoh di atas, Jenis Kesalahan adalahHTTP: UNAUTHORIZED.
Karakteristik kedua dan penting adalah Jenis Kesalahan mungkin memiliki tipe induk. Misalnya, Jenis KesalahanHTTP: UNAUTHORIZED memiliki MULE:CLIENT_SECURITY sebagai orang tua yang pada gilirannya juga memiliki nama orang tua MULE:SECURITY. Karakteristik ini menetapkan Jenis Kesalahan sebagai spesifikasi item yang lebih global.
Macam Jenis Kesalahan
Berikut adalah kategori di mana semua kesalahan berada -
APA SAJA
Kesalahan di bawah kategori ini adalah kesalahan yang mungkin terjadi di Arus. Mereka tidak terlalu parah dan dapat ditangani dengan mudah.
KRITIS
Kesalahan di bawah kategori ini adalah kesalahan parah yang tidak dapat ditangani. Berikut adalah daftar Jenis Kesalahan di bawah kategori ini -
Sr.NO | Jenis dan Deskripsi Kesalahan |
---|---|
1 | OVERLOAD Jenis Kesalahan ini menunjukkan kesalahan terjadi karena masalah kelebihan muatan. Dalam kasus ini, eksekusi akan ditolak. |
2 | FATAL_JVM_ERROR Jenis Kesalahan ini menunjukkan terjadinya kesalahan fatal. Misalnya, stack overflow. |
Jenis Kesalahan CUSTOM
Jenis Kesalahan CUSTOM adalah kesalahan yang ditentukan oleh kami. Mereka dapat didefinisikan saat memetakan atau saat meningkatkan kesalahan. Kita harus memberikan namespace khusus khusus untuk Jenis Kesalahan ini untuk membedakannya dari Jenis Kesalahan lain yang ada dalam aplikasi Mule. Misalnya pada aplikasi Mule yang menggunakan HTTP, kita tidak bisa menggunakan HTTP sebagai custom error type.
Kategori Kesalahan Mule
Dalam arti luas, kesalahan pada Mule dibedakan menjadi dua kategori yaitu, Messaging Errors and System Errors.
Kesalahan Pesan
Kategori kesalahan Mule ini terkait dengan aliran Mule. Setiap kali terjadi masalah dalam aliran Mule, Mule melontarkan kesalahan pengiriman pesan. Kami dapat mengaturOn Error komponen di dalam komponen penangan kesalahan untuk menangani kesalahan Mule ini.
Sistem bermasalah
Kesalahan sistem menunjukkan pengecualian yang terjadi di tingkat sistem. Jika tidak ada peristiwa Mule, kesalahan sistem akan ditangani oleh penangan kesalahan sistem. Jenis pengecualian berikut ditangani oleh penangan kesalahan sistem -
- Pengecualian yang terjadi selama aplikasi start-up.
- Pengecualian yang terjadi ketika koneksi ke sistem eksternal gagal.
Jika terjadi kesalahan sistem, Mule mengirimkan pemberitahuan kesalahan ke pendengar yang terdaftar. Itu juga mencatat kesalahan. Di sisi lain, Mule menjalankan strategi koneksi ulang jika kesalahan disebabkan oleh kegagalan koneksi.
Menangani Kesalahan Mule
Mule mengikuti dua Penangan Kesalahan untuk menangani kesalahan -
Penangan Kesalahan Saat Terjadi Kesalahan
Penangan kesalahan Mule pertama adalah komponen On-Error, yang mendefinisikan jenis kesalahan yang dapat mereka tangani. Seperti yang telah dibahas sebelumnya, kita dapat mengkonfigurasi komponen On-Error di dalam komponen Error Handler yang mirip lingkup. Setiap aliran Mule hanya berisi satu penangan kesalahan, tetapi penangan kesalahan ini dapat berisi lingkup On-Error sebanyak yang kami butuhkan. Langkah-langkah untuk menangani kesalahan Mule di dalam aliran, dengan bantuan komponen On-Error, adalah sebagai berikut -
Pertama, setiap kali aliran Mule menimbulkan kesalahan, eksekusi aliran normal berhenti.
Selanjutnya, proses tersebut akan ditransfer ke Error Handler Component yang sudah punya On Error component untuk mencocokkan jenis dan ekspresi kesalahan.
Terakhir, komponen Error Handler merutekan kesalahan ke yang pertama On Error scope yang cocok dengan kesalahan tersebut.
Berikut adalah dua jenis komponen On-Error yang didukung oleh Mule -
Penyebaran Saat Terjadi Kesalahan
Komponen On-Error Propagate mengeksekusi tetapi menyebarkan kesalahan ke tingkat berikutnya dan menghentikan eksekusi pemilik. Transaksi akan dibatalkan jika ditangani olehOn Error Propagate komponen.
On-Error Continue
Seperti komponen On-Error Propagate, komponen On-Error Continue juga menjalankan transaksi. Satu-satunya syarat adalah, jika pemilik berhasil menyelesaikan eksekusi maka komponen ini akan menggunakan hasil eksekusi sebagai hasil dari pemiliknya. Transaksi akan dilakukan jika ditangani oleh komponen On-Error Continue.
Coba Scope Component
Try Scope adalah salah satu dari banyak fitur baru yang tersedia di Mule 4. Cara kerjanya mirip dengan mencoba blok JAVA di mana kami biasa menyertakan kode yang memiliki kemungkinan menjadi pengecualian, sehingga dapat ditangani tanpa merusak seluruh kode.
Kami dapat membungkus satu atau lebih pemroses acara Mule dalam Lingkup Coba dan setelah itu, lingkup percobaan akan menangkap dan menangani pengecualian apa pun yang dilemparkan oleh pemroses acara ini. Pekerjaan utama lingkup percobaan berkisar pada strategi penanganan kesalahannya sendiri yang mendukung penanganan kesalahan pada komponen dalamnya, bukan keseluruhan aliran. Itulah mengapa kita tidak perlu mengekstraksi aliran ke aliran terpisah.
Example
Berikut adalah contoh penggunaan lingkup percobaan -
Mengonfigurasi lingkup percobaan untuk menangani transaksi
Seperti kita ketahui, transaksi merupakan rangkaian tindakan yang tidak boleh dilakukan secara parsial. Semua operasi dalam lingkup transaksi dijalankan di utas yang sama dan jika terjadi kesalahan, itu harus mengarah ke rollback atau komit. Kita dapat mengkonfigurasi lingkup percobaan, dengan cara berikut, sehingga memperlakukan operasi anak sebagai transaksi.
INDIFFERENT [Default]- Jika kita memilih konfigurasi ini pada blok percobaan, maka tindakan anak tidak akan diperlakukan sebagai transaksi. Dalam kasus ini, kesalahan tidak menyebabkan rollback atau pun melakukan.
ALWAYS_BEGIN - Ini menunjukkan bahwa transaksi baru akan dimulai setiap kali ruang lingkup dijalankan.
BEGIN_OR_JOIN- Ini menunjukkan bahwa jika pemrosesan arus saat ini sudah memulai transaksi, bergabunglah dengannya. Jika tidak, mulailah yang baru.
Dalam kasus setiap proyek, fakta tentang pengecualian adalah bahwa mereka pasti akan terjadi. Itulah mengapa penting untuk menangkap, mengkategorikan, dan menangani pengecualian agar sistem / aplikasi tidak dibiarkan dalam keadaan tidak konsisten. Ada strategi pengecualian default yang diterapkan secara implisit ke semua aplikasi Mule. Rollback setiap transaksi yang tertunda secara otomatis adalah strategi pengecualian default.
Pengecualian di Mule
Sebelum mendalami penanganan luar biasa, kita harus memahami jenis pengecualian yang dapat terjadi bersama dengan tiga pertanyaan dasar yang harus dimiliki pengembang saat merancang penangan pengecualian.
Transportasi mana yang penting?
Pertanyaan ini memiliki relevansi yang cukup sebelum merancang penangan pengecualian karena semua transport tidak mendukung transnasionalitas.
File atau HTTPtidak mendukung transaksi. Itu sebabnya, jika terjadi eksepsi dalam kasus ini, kita harus mengelolanya secara manual.
Databasesmendukung transaksi. Saat mendesain penangan pengecualian dalam kasus ini, kita harus ingat bahwa transaksi database dapat secara otomatis melakukan rollback (jika diperlukan).
Dalam kasus REST APIs, kita harus ingat bahwa mereka harus mengembalikan kode status HTTP yang benar. Misalnya, 404 untuk sumber daya tidak ditemukan.
Pola Pertukaran Pesan mana yang akan digunakan?
Saat merancang penangan pengecualian, kita harus memperhatikan pola pertukaran pesan. Bisa ada pola pesan sinkron (permintaan-balasan) atau asinkron (api-lupa).
Synchronous message pattern didasarkan pada format permintaan-balasan yang berarti pola ini akan mengharapkan tanggapan dan akan diblokir sampai tanggapan dikembalikan atau terjadi waktu habis.
Asynchronous message pattern didasarkan pada format fire-forget yang berarti pola ini mengasumsikan bahwa permintaan pada akhirnya akan diproses.
Jenis pengecualian apa itu?
Aturan yang sangat sederhana adalah Anda akan menangani pengecualian berdasarkan tipenya. Sangat penting untuk mengetahui apakah pengecualian disebabkan oleh masalah sistem / teknis atau masalah bisnis?
Pengecualian terjadi oleh system/technical issue (seperti pemadaman jaringan) harus secara otomatis ditangani oleh mekanisme coba lagi.
Di sisi lain, terjadi pengecualian by a business issue (seperti data tidak valid) tidak boleh diselesaikan dengan menerapkan mekanisme coba lagi karena tidak berguna untuk mencoba ulang tanpa memperbaiki penyebab yang mendasarinya.
Mengapa Mengkategorikan Pengecualian?
Seperti yang kita ketahui bahwa semua pengecualian tidak sama, sangat penting untuk mengkategorikan pengecualian tersebut. Pada tingkat tinggi, pengecualian dapat diklasifikasikan menjadi dua jenis berikut -
Pengecualian Bisnis
Alasan utama terjadinya pengecualian bisnis adalah data yang salah atau aliran proses yang salah. Pengecualian semacam ini biasanya tidak dapat ditarik kembali dan oleh karena itu tidak baik untuk mengonfigurasi filerollback. Bahkan melamarretrymekanisme tidak akan masuk akal karena tidak berguna untuk mencoba lagi tanpa memperbaiki penyebab yang mendasarinya. Untuk menangani pengecualian tersebut, pemrosesan harus segera dihentikan, dan pengecualian dikirim kembali sebagai respons atas antrean surat mati. Pemberitahuan juga harus dikirim ke operasi.
Pengecualian Non-bisnis
Alasan utama terjadinya pengecualian non-bisnis adalah masalah sistem atau masalah teknis. Jenis pengecualian ini bersifat retriable dan karenanya bagus untuk mengonfigurasi fileretry mekanisme untuk menyelesaikan pengecualian ini.
Strategi Penanganan Pengecualian
Mule memiliki lima strategi penanganan pengecualian berikut -
Strategi Pengecualian Default
Mule secara implisit menerapkan strategi ini pada aliran Mule. Ini dapat menangani semua pengecualian dalam aliran kami, tetapi juga dapat diganti dengan menambahkan strategi pengecualian tangkapan, Pilihan atau Rollback. Strategi pengecualian ini akan mengembalikan semua transaksi yang tertunda dan mencatat pengecualian juga. Karakteristik penting dari strategi pengecualian ini adalah bahwa ia juga akan mencatat pengecualian jika tidak ada transaksi.
Sebagai strategi default, Mule mengimplementasikan ini ketika terjadi kesalahan dalam aliran. Kami tidak dapat mengonfigurasi di AnyPoint studio.
Strategi Pengecualian Rollback
Misalkan jika tidak ada solusi yang mungkin untuk memperbaiki kesalahan lalu apa yang harus dilakukan? Solusinya adalah dengan menggunakan Strategi Pengecualian Rollback yang akan mengembalikan transaksi bersama dengan pengiriman pesan ke konektor masuk aliran induk untuk memproses ulang pesan. Strategi ini juga sangat berguna ketika kita ingin memproses ulang sebuah pesan.
Example
Strategi ini dapat diterapkan pada transaksi perbankan di mana dana disimpan di rekening giro / tabungan. Kita dapat mengonfigurasi strategi pengecualian rollback di sini karena jika terjadi kesalahan selama transaksi, strategi ini menggulung pesan kembali ke awal ke aliran untuk mencoba pemrosesan kembali.
Strategi Pengecualian Tangkapan
Strategi ini menangkap semua pengecualian yang dilemparkan dalam aliran induknya. Ini menggantikan strategi pengecualian default Mule dengan memproses semua pengecualian yang dilemparkan oleh aliran induk. Kita dapat menggunakan strategi pengecualian tangkapan untuk menghindari penyebaran pengecualian ke konektor masuk dan aliran induk juga.
Strategi ini juga memastikan bahwa transaksi yang diproses oleh aliran tidak dibatalkan ketika terjadi pengecualian.
Example
Strategi ini dapat diterapkan pada sistem pemesanan penerbangan di mana kita memiliki alur untuk memproses pesan dari antrian. Pengaya pesan menambahkan properti pada pesan untuk penetapan kursi dan kemudian mengirim pesan ke antrean lain.
Sekarang jika ada kesalahan yang terjadi dalam aliran ini, maka pesan tersebut akan memunculkan pengecualian. Di sini, strategi pengecualian tangkap kami dapat menambahkan tajuk dengan pesan yang sesuai dan dapat mendorong pesan itu keluar dari alur ke antrean berikutnya.
Strategi Pengecualian Pilihan
Jika Anda ingin menangani pengecualian berdasarkan konten pesan, maka strategi pengecualian pilihan akan menjadi pilihan terbaik. Cara kerja strategi pengecualian ini adalah sebagai berikut -
- Pertama, ini menangkap semua pengecualian yang dilemparkan dalam aliran induk.
- Selanjutnya, ia memeriksa konten pesan dan jenis pengecualian.
- Dan akhirnya, ini merutekan pesan ke strategi pengecualian yang sesuai.
Akan ada lebih dari satu strategi pengecualian seperti Catch atau Rollback, yang ditentukan dalam strategi pengecualian pilihan. Jika tidak ada strategi yang ditentukan di bawah strategi pengecualian ini, maka itu akan merutekan pesan ke strategi pengecualian default. Itu tidak pernah melakukan aktivitas commit atau rollback atau konsumsi apa pun.
Referensi Strategi Pengecualian
Ini mengacu pada strategi pengecualian umum yang ditentukan dalam file konfigurasi terpisah. Jika pesan melontarkan pengecualian, strategi pengecualian ini akan merujuk ke parameter penanganan kesalahan yang ditentukan dalam strategi global catch, rollback atau choice exception. Seperti strategi pengecualian pilihan, ia tidak pernah melakukan aktivitas commit atau rollback atau konsumsi apa pun juga.
Kami memahami pengujian unit adalah metode di mana unit individu dari kode sumber dapat diuji untuk menentukan apakah cocok untuk digunakan atau tidak. Pemrogram Java dapat menggunakan kerangka kerja Junit untuk menulis kasus uji. Demikian pula, MuleSoft juga memiliki kerangka kerja yang disebut MUnit yang memungkinkan kita menulis kasus uji otomatis untuk API dan integrasi kita. Ini sangat cocok untuk integrasi / penyebaran lingkungan yang berkelanjutan. Salah satu keuntungan terbesar dari framework MUnit adalah kita dapat mengintegrasikannya dengan Maven dan Surefire.
Fitur MUnit
Berikut adalah beberapa fitur yang sangat berguna dari kerangka pengujian Mule MUnit -
Dalam kerangka MUnit, kita dapat membuat pengujian Mule kita dengan menggunakan kode Mule serta kode Java.
Kami dapat merancang dan menguji aplikasi dan API Mule kami, baik secara grafis atau dalam XML, dalam Anypoint Studio.
MUnit memungkinkan kita untuk dengan mudah mengintegrasikan pengujian ke dalam proses CI / CD yang ada.
Ini menyediakan tes yang dibuat secara otomatis dan laporan cakupan; karenanya pekerjaan manual menjadi minimal.
Kami juga dapat menggunakan server DB / FTP / mail lokal untuk membuat pengujian lebih portabel melalui proses CI.
Ini memungkinkan kami untuk mengaktifkan atau menonaktifkan tes.
Kami juga dapat memperluas kerangka MUnit dengan plugin.
Ini memungkinkan kami untuk memverifikasi panggilan prosesor pesan.
Dengan bantuan kerangka pengujian MUnit, kami dapat menonaktifkan konektor endpoint serta mengalirkan titik akhir masuk.
Kami dapat memeriksa laporan kesalahan dengan pelacakan tumpukan Mule.
Rilis Terbaru Kerangka Pengujian Mule MUnit
MUnit 2.1.4 adalah rilis terbaru dari kerangka pengujian Mule MUnit. Ini membutuhkan persyaratan perangkat keras dan perangkat lunak berikut -
- MS Windows 8+
- Apple Mac OS X 10.10+
- Linux
- Jawa 8
- Maven 3.3.3, 3.3.9, 3.5.4, 3.6.0
Ini kompatibel dengan Mule 4.1.4 dan Anypoint Studio 7.3.0.
MUnit dan Anypoint Studio
Seperti yang telah dibahas, MUnit terintegrasi penuh di Anypoint studio dan kami dapat merancang dan menguji aplikasi dan API Mule kami secara grafis atau dalam XML dalam Anypoint studio. Dengan kata lain, kita dapat menggunakan antarmuka grafis dari Anypoint Studio untuk melakukan hal berikut -
- Untuk membuat dan mendesain pengujian MUnit
- Untuk menjalankan pengujian kami
- Untuk melihat hasil tes serta laporan cakupan
- Untuk men-debug pengujian
Jadi, mari kita mulai membahas setiap tugas satu per satu.
Membuat dan Mendesain Pengujian MUnit
Setelah Anda memulai proyek baru, secara otomatis akan menambahkan folder baru yaitu src/test/munituntuk proyek kami. Misalnya, kami memulai proyek Mule baru yaitutest_munit, Anda dapat melihat pada gambar di bawah, ini menambahkan folder yang disebutkan di atas di bawah proyek kami.
Sekarang, setelah Anda memulai proyek baru, ada dua cara dasar untuk membuat tes MUnit baru di Anypoint Studio -
By Right-Clicking the Flow - Dalam metode ini, kita perlu mengklik kanan aliran tertentu dan memilih MUnit dari menu drop-down.
By Using the Wizard- Dalam metode ini, kita perlu menggunakan wizard untuk membuat tes. Ini memungkinkan kami membuat pengujian untuk aliran apa pun di ruang kerja.
Kami akan menggunakan cara 'Klik kanan aliran' untuk membuat pengujian aliran tertentu.
Pertama, kita perlu membuat aliran di ruang kerja sebagai berikut -
Sekarang, klik kanan pada aliran ini dan pilih MUnit untuk membuat tes untuk aliran ini, seperti yang ditunjukkan di bawah ini -
Ini akan membuat rangkaian pengujian baru yang diberi nama setelah file XML tempat alur berada. Pada kasus ini,test_munit-test-suite adalah nama rangkaian pengujian baru seperti yang ditunjukkan di bawah ini -
Berikut adalah editor XML untuk aliran pesan di atas -
Sekarang, kita bisa menambahkan file MUnit prosesor pesan ke rangkaian pengujian dengan menyeretnya dari Palet Mule.
Jika Anda ingin membuat tes melalui Wizard, ikuti File → New → MUnit dan ini akan mengarahkan Anda ke rangkaian pengujian MUnit berikut -
Mengonfigurasi pengujian
Di Mule 4, kami memiliki dua bagian baru yaitu MUnit dan MUnit Tools, secara kolektif memiliki semua pemroses pesan MUnit. Anda dapat menyeret salah satu pemroses pesan di area pengujian MUnit Anda. Itu ditunjukkan pada gambar di bawah -
Sekarang, jika Anda ingin mengedit konfigurasi untuk setelan atau pengujian Anda di Anypoint Studio, maka Anda perlu mengikuti langkah-langkah di bawah ini -
Step 1
Pergi ke Package Explorer dan klik kanan pada .xml fileuntuk rangkaian atau ujian Anda. Kemudian, pilihProperties.
Step 2
Sekarang, di jendela Properties, kita perlu mengklik Run/Debug Settings. Setelah klik iniNew.
Step 3
Pada langkah terakhir, klik MUnit dibawah Select Configuration Type jendela, lalu klik OK.
Menjalankan Tes
Kami dapat menjalankan rangkaian pengujian serta pengujian. Pertama, kita akan melihat cara menjalankan rangkaian pengujian.
Menjalankan Rangkaian Uji
Untuk menjalankan rangkaian pengujian, klik kanan pada bagian kosong di Kanvas Mule tempat rangkaian pengujian Anda berada. Ini akan membuka menu drop-down. Sekarang, klikRun MUnit suite seperti yang ditunjukkan di bawah ini -
Nanti, kita bisa melihat hasilnya di konsol.
Menjalankan Tes
Untuk menjalankan tes tertentu, kita perlu memilih tes spesifik dan klik kanan padanya. Kami akan mendapatkan menu drop-down yang sama seperti yang kami dapatkan saat menjalankan rangkaian pengujian. Sekarang, klikRun MUnit Test opsi seperti yang ditunjukkan di bawah ini -
Di sana setelah output bisa dilihat di konsol.
Melihat dan Menganalisis Hasil Tes
Studio Anypoint menampilkan hasil tes MUnit di MUnit tabdari panel penjelajah sebelah kiri. Anda dapat menemukan tes yang berhasil dalam warna hijau dan tes yang gagal dengan warna merah seperti yang ditunjukkan di bawah ini -
Kami dapat menganalisis hasil tes kami dengan melihat laporan cakupan. Fitur utama Laporan Cakupan adalah menyediakan metrik tentang seberapa banyak aplikasi Mule telah berhasil dieksekusi oleh serangkaian pengujian MUnit. Cakupan MUnit pada dasarnya didasarkan pada jumlah pemroses pesan MUnit yang dijalankan. Laporan cakupan MUnit memberikan metrik sebagai berikut -
- Cakupan keseluruhan aplikasi
- Cakupan sumber daya
- Cakupan aliran
Untuk mendapatkan laporan cakupan, kita perlu mengklik 'Buat Laporan' di bawah tab MUnit seperti yang ditunjukkan di bawah ini -
Debugging tes
Kita bisa men-debug rangkaian pengujian serta pengujian. Pertama, kita akan melihat cara men-debug rangkaian pengujian.
Debugging a Test Suite
Untuk men-debug rangkaian pengujian, klik kanan pada bagian kosong Mule Canvas tempat rangkaian pengujian Anda berada. Ini akan membuka menu drop-down. Sekarang, klikDebug MUnit Suite seperti yang ditunjukkan pada gambar di bawah ini -
Kemudian, kita bisa melihat hasilnya di konsol.
Debugging a Test
Untuk men-debug tes tertentu, kita perlu memilih tes spesifik dan klik kanan padanya. Kami akan mendapatkan menu drop-down yang sama seperti yang kami dapatkan saat men-debug rangkaian pengujian. Sekarang, klikDebug MUnit Testpilihan. Itu ditunjukkan pada tangkapan layar di bawah ini.