Hanya ada satu manfaat nyata, namun sangat besar:
Pemisahan Kekhawatiran .
Jadi, alih-alih logika proses orkestrasi yang tertanam di sistem kami, itu menjadi dan konfigurasi eksternal. Peta, pada dasarnya. Anda dapat mengubahnya (lebih banyak) secara independen, Anda dapat memiliki beberapa proses, beberapa versi proses, beberapa versi dari beberapa proses yang berjalan pada saat yang sama, dan itu semua di luar kotak dalam solusi yang layak.
Secara historis, konsep SoC telah menang berkali-kali - mulai dari prinsip Unix "lakukan satu hal, tapi lakukan dengan baik", dan diterapkan berulang-ulang - seperti memiliki komponen server khusus seperti ESB, sistem ketahanan berbeda, caching, load balancing , memantau, seperti memisahkan CSS dari HTML, dll.
Proses bisnis Anda dan aturan alirannya seringkali ortogonal dengan data Anda, "layar" UI, atau "hierarki" pengguna. Jadi, sangat masuk akal untuk mengembangkan dan mengubahnya secara terpisah dari aspek lain dari sistem. Itu adalah premis di mana BPM muncul di awal 1990-an.
Sejak itu, banyak alat dan bahasa diciptakan untuk mendukung konsep ini, dengan yang paling terkenal adalah BPMN - bahasa grafis untuk membuat "diagram alur" yang secara langsung memetakan ke proses. Sementara orang-orang mengeluh bahwa itu besar dan berat (memiliki lebih dari 100 simbol dalam kosa kata), dan menganjurkan pendekatan modern seperti S-BPM (hanya memiliki 5 simbol dasar), praktik industri saat ini adalah tetap berpegang pada BPMN atau turunannya, himpunan bagian atau saudara kandungnya.
Anda tidak terlihat senang dengan BPMN:
Programmer di sini tampaknya melakukan sejumlah besar pekerjaan di lapisan garis dan kotak, yang bagi saya hanya tampak seperti bahasa pemrograman visual yang benar-benar jelek, benar-benar dasar.
Tapi itu tidak seburuk itu) Ada teori di baliknya. Dan versi 2.0 mengambil beberapa wawasan yang bagus dari 1.0 kekurangan.
Jika Anda akan melangkah sejauh itu, mengapa tidak menggunakan semacam bahasa scripting saja?
Paradigma imperatif dan bahasa penulisan skrip tidak selalu merupakan jawaban terbaik. Seperti yang mungkin Anda lihat dalam bahasa deklaratif (seperti HTML, CSS, SQL, Drools atau internal Nginx, Graddle dan Maven, Puppet dll) kode yang dihasilkan bisa jauh lebih kecil dan lebih bersih, daripada versi yang ditulis dalam " bahasa yang layak," seperti Java atau C ++ ".
Adapun poin Anda yang lain:
sejauh yang saya tahu, adalah bahasa pemrograman visual pada saat ini, lengkap dengan persyaratan dan loop.
apakah Anda sudah melihat Acara dan Pemicu ? BPMN adalah bahasa dan Anda harus mempelajarinya sebelum menggunakan, atau paling tidak membiasakan diri dengannya.
Di bawah tenda, BPMN adalah XML, sehingga Anda dapat mengeditnya dengan tangan, atau menghasilkan. Dan Anda dapat mengontrol versi mereka, karena XML berbasis teks. Namun, hanya memiliki XML yang dapat diterjemahkan ke dalam diagram alur, tidak terdengar seperti goona membantu Anda, dan itu benar - menulis parser atau editor Anda sendiri untuk itu adalah tugas yang sulit dan mahal dengan manfaat yang dipertanyakan.
Untungnya, sudah ada alat di pasar yang melakukan hal itu.
Activiti gratis, dan cukup populer di kalangan pengembang dan pemilik bisnis, karena harga awalnya ( nol ), ketersediaan informasi, dan kerendahan hati. Poin terakhir benar-benar unik, karena Activi hanya berfokus pada pengelolaan proses bisnis Anda, tanpa berusaha mengikat Anda dengan solusi seluruh paket. Selain itu, terbuka - jadi Anda hanya perlu tahu Java dan REST untuk menjalankannya. Kekurangannya adalah sisi klien, integrasi dan logika aplikasi / bisnis dan seluruh arsitektur diserahkan kepada pengembang, jadi jika tim pengembangan Anda lemah - bersiaplah untuk yang gagal. Total biaya kepemilikan bisa sangat tinggi untuk alat gratis ;)
Di sisi lain spektrum adalah Pega (Pega PRPC), raja yang berkuasa dari sistem BPM (menurut Gartner dan Forester), yang terlihat sangat baik untuk usianya. Raksasa dapur-wastafel ini bahkan mampu CRM, OCR dan (jika saya tidak salah) kemampuan pengenalan suara, analisis prediktif, manajemen aturan bisnis dan editor WYSIWYG UI. Muncul dengan label harga yang serius. Tidak hanya harganya mahal, tetapi semua pengembangan sedang dilakukan dalam aplikasi web, yang berarti Anda harus menggunakan browser, yaitu IE8 (plus beberapa plugin, ditambah peretasan jelek, seperti menggunakan Excel untuk mengedit tabel data). Juga, pengeditan Java, Javascript, atau HTML / CSS juga dilakukan dengan browser web - jadi selamat tinggal pada tes unit, menyoroti kode IDE, refactoring, dan semua mainan pemrograman yang Anda sukai.
Sisi baiknya? Anda dapat menerapkan sistem yang kompleks DALAM MINGGU [ PDF , lihat halaman 22]. Dan ya, hasilnya tidak dijamin.
IBM baru-baru ini (menyesuaikan dengan kecepatan waktu perusahaan) telah membeli Lombardi, dan sekarang menawarkan solusi yang sangat kompetitif (tetapi kemudian Anda harus membeli semuanya ibm , Anda tahu). Appian adalah vendor muda yang memiliki wawasan menarik dan umpan balik positif, tetapi cara mereka ditulis (dua bahasa DSL tambahan selain yang visual) tidak menarik bagi saya.
Ada pemain lain, dan solusinya. Kebanyakan dari mereka benar -benar mengerikan. Seperti - mata, otak, dan hati Anda akan benar-benar berdarah, ketika Anda hanya melihatnya. Jadi, percayalah pada nyali Anda dan jangan membuat pengembang dan pengguna Anda membenci Anda.
Catatan penutup:
Sistem BPM sama untuk proses, apa Photoshop untuk gambar. Jangan takut itu visual. Jangan membuatnya melakukan pekerjaan yang tidak sesuai untuk itu (ingat situs web yang dibuat seluruhnya di Photoshop, yang hampir mustahil untuk diedit?). Tetap sederhana dan jangan membuat bug;)