Kelola proses bisnis Anda dengan JBoss jBPM

Perusahaan telah mencari pendekatan terstruktur untuk merancang tindakan / transaksi bisnis dan mengeksekusinya lebih baik menggunakan proses otomatis. Manajemen proses bisnis (BPM) dan manajemen alur kerja menawarkan solusi untuk masalah ini menggunakan konsep seperti tindakan, tugas, dan alur.

Artikel ini memperkenalkan BPM dan membahas teknik dan alat untuk memberdayakan sistem perusahaan dengan BPM dan manajemen alur kerja menggunakan JBoss jBPM.

Istilah manajemen proses bisnis biasanya mengacu pada serangkaian aktivitas yang dapat digunakan perusahaan untuk mengotomatiskan dan mengoptimalkan proses bisnis dengan cara yang dapat disesuaikan dengan lingkungan yang berubah secara dinamis. Kegiatan ini biasanya mencari bantuan dari rekayasa perangkat lunak dan peralatan; Oleh karena itu, istilah BPM sering digunakan secara langsung untuk merujuk pada teknik dan peralatan teknik.

BPM diwujudkan dalam tiga praktik berbeda:

  1. Desain proses: Tugas merancang proses yang sudah ada dan yang baru
  2. Eksekusi proses: Eksekusi urutan otomatis dari peristiwa terkait yang melibatkan proses perangkat lunak dan / atau aktivitas manusia
  3. Pemantauan proses: Pengamatan dan audit terhadap keadaan proses individu sehingga statistik dan kinerja proses ini dapat dicatat, dilaporkan, dan dioptimalkan

BPM berupaya untuk memungkinkan insinyur perangkat lunak berbagi konsep dan kerangka kerja yang sama dengan analis bisnis; akibatnya, vendor perangkat lunak telah berusaha untuk membuat alat yang akan memungkinkan perusahaan untuk menangkap, merancang, dan mengoptimalkan proses bisnis melalui penggunaan alat pemodelan grafis, bahasa khusus domain, dan aplikasi berpemilik.

JBoss jBPM 3.0 memberikan kemampuan untuk mengembangkan proses bisnis otomatis baru dan alur kerja dengan orkestrasi standar industri menggunakan Business Process Execution Language (BPEL), API yang fleksibel dan dapat dicolokkan, bahasa definisi proses asli, dan alat pemodelan grafis.

JBoss jBPM adalah kerangka kerja open source (lisensi LGPL) dari Java API, alat, dan bahasa definisi yang dapat beroperasi sebagai aplikasi Web atau aplikasi Java yang berdiri sendiri. JBoss jBPM bertindak sebagai perantara antara analis bisnis dan pengembang dengan memberi mereka bahasa definisi proses umum yang disebut sebagai jPDL .

Tinjauan arsitektur JBoss jBPM

JBoss jBPM mendefinisikan definisi proses dalam file yang ditulis menggunakan bahasa definisi proses JBoss. jPDL adalah bahasa pemrograman berorientasi grafis (GOP) berdasarkan model node, transisi, dan tindakan. Dalam model ini, node adalah perintah yang dijalankan seperti yang ditemui selama aliran definisi proses. Transisi mengarahkan aliran eksekusi definisi proses, dan tindakan melakukan logika tertentu saat node atau peristiwa transisi terjadi.

Di jBPM, definisi proses dikemas sebagai arsip proses. Arsip proses diteruskan ke mesin proses jPDL untuk dieksekusi. Mesin proses jPDL melintasi grafik proses, menjalankan tindakan yang ditentukan, memelihara status proses, dan mencatat semua peristiwa proses.

JBoss jBPM dikemas dalam komponen berikut:

  • Mesin proses: Komponen ini menjalankan tindakan proses yang ditentukan, mempertahankan status proses, dan mencatat semua peristiwa proses melalui komponen delegasi berikut:
    • Seorang penangan permintaan
    • Seorang manajer negara
    • Seorang manajer log
    • Pemuat definisi
    • Sebuah layanan eksekusi
  • Monitor proses: Modul ini melacak, mengaudit, dan melaporkan status proses saat dijalankan
  • Bahasa proses: Bahasa definisi proses (jPDL) didasarkan pada GOP
  • Layanan interaksi: Layanan ini mengekspos aplikasi lama sebagai fungsi atau data yang akan digunakan dalam eksekusi proses

Hubungan antara komponen ini diilustrasikan pada Gambar 1.

Seperti yang ditunjukkan pada Gambar 1, definisi proses jBPM yang berisi penangan tindakan dimuat dan dijalankan oleh mesin proses jBPM. Saat mesin proses menemukan node dalam definisi proses yang memiliki tindakan yang terkait dengannya, semua penangan tindakan terkait akan dipanggil. Penangan tindakan adalah contoh kode Java yang berinteraksi dengan sistem eksternal saat dijalankan.

Berikut ini adalah contoh dari handler tindakan sederhana:

import org.jbpm.graph.def.*; import org.jbpm.graph.exe.*;

public class MyActionHandler implements ActionHandler { public void execute(ExecutionContext executionContext) { System.out.println("MyActionHandler has executed: " + executionContext); } }

File PDL dalam arsip proses dinamai proses-definition.xml. File ini berisi deskripsi formal proses. Contoh file process-definition.xml diilustrasikan dalam contoh berikut:

Definisi proses didasarkan pada grafik berarah. Grafik terdiri dari node, transisi, satu status awal, dan satu status akhir. Jenis setiap node menentukan perilaku runtime untuk node tersebut. Saat definisi proses dijalankan, entitas berikut ikut bermain:

  • Contoh proses: Sebuah contoh proses adalah salah satu eksekusi dari definisi proses.
  • Token: Token adalah salah satu jalur eksekusi. Token adalah konsep waktu proses yang mempertahankan penunjuk ke node dalam grafik. Saat instance proses dibuat, token dibuat untuk jalur utama eksekusi. Token ini disebut token root instance proses dan ditempatkan di status awal definisi proses.
  • Sinyal: Sinyal menginstruksikan token untuk melanjutkan eksekusi grafik dengan transisi keluar dari node.
  • Node: Node bertanggung jawab atas kelanjutan eksekusi grafik. Ketika token memasuki sebuah node, node tersebut dijalankan. Node yang tidak menyebarkan eksekusi dianggap sebagai status.
  • Tindakan: Tindakan adalah contoh kode Java yang dijalankan saat peristiwa terjadi dalam eksekusi proses. Jenis peristiwa utama adalah "memasuki node," "meninggalkan node," dan "melakukan transisi."

Definisi proses dapat dibuat dengan mudah dengan desainer pemodelan grafis jBPM. Desainer saat ini diinstal sebagai plugin Eclipse. Gambar 2 mengilustrasikan layar sampel dari desainer pemodelan grafis.

Desainer grafis dapat digunakan untuk membuat definisi proses, melampirkan penangan tindakan ke peristiwa, mengedit sumber definisi, membuat arsip proses, menguji definisi proses, dan sebagainya.

Menerapkan JBoss jBPM

JBoss jBPM menyimpan definisi proses dalam database. Oleh karena itu, menerapkan proses ke dalam JBoss jBPM melibatkan penguraian proses-definition.xml dan menyimpannya dalam database JBoss jBPM. Ini dapat dilakukan dengan:

  • Menggunakan partugas Ant yang disertakan dengan JBoss jBPM untuk membuat arsip proses.
  • Menggunakan utilitas deploypar. Utilitas ini juga membuat arsip proses dan menyebarkan arsip proses ke database jBPM. Utilitas deploypar menggunakan file jBPM.properties sebagai atribut. File ini menetapkan opsi konfigurasi, termasuk database tempat arsip proses akan digunakan.
  • Parsing secara terprogram dan menyimpan process-definition.xml ke dalam datastore.

Menjalankan JBoss jBPM melalui beberapa langkah sederhana

JBoss jBPM acts as an orchestration engine that sits in the middle of enterprise applications, enabling integration and coordination between different applications.

For this article, I use the sample deployment shipped with jBPM to discuss how jBPM and jPDL are used to create and modify a simple Web-enabled order processing system.

Downloading JBoss jBPM

The JBoss jBPM starter kit contains everything needed to execute JBoss jBPM, with the exception of a JDK. The JBoss Application Server in the JBoss jBPM starter kit requires J2SE 1.4 or a more recent version.

After you have downloaded the starter kit, unzip it to a directory of your choosing. Once you have unzipped the starter kit, you will have a directory structure similar to the following:

  • Jbpm-starters-kit-3.1
    • jbpm: Contains the source code for the JBoss jBPM product
    • jbpm-bpel: Contains information about the BPEL extension for JBoss jBPM
    • jbpm-db: Contains sample configurations for connecting JBoss jBPM to other databases
    • jbpm-designer: Contains the Eclipse plug-in for the JBoss jBPM Visual Process Designer
    • jbpm-server: Contains the JBoss Application Server along with the JBoss jBPM engine and the sample process

Execute the JBoss jBPM engine

To start the JBoss application server with jBPM deployed, go to the jbpm-server directory and execute the startup script found there. A command window should pop up with the jBPM console window, similar to Figure 3.

Now, bring up a browser window and go to //localhost:8080/jbpm. You will be presented with the login page for the sample Web application for JBoss jBPM, shown in Figure 4.

Masuk sebagai monster cookie dan pilih tautan Buat Pesanan Penjualan Web Baru. Ini akan membuat instance baru dari proses "Web sale" bawaan, yang diilustrasikan pada Gambar 5.

File definisi sebenarnya, processdefinition.xml, terletak di websale.par dan diilustrasikan dalam daftar berikut: