4. Bpmn#
BPMN işlemlerinin yapıldığı uygulamadır. Flowable engine üzerine kurulmuştur. Rest uçları aktif edilip kullanılabilir. 2 ana kısımdan oluşmaktadır.
Uygulamanın sağladığı sınıflara ait javadoc'a buradan ulaşabilirsiniz.
Yetenekler#
- Taslak bpmn süreçleri oluşturmayı ve bu süreçler üzerinde düzenleme yapılmasını sağlar.
- Bpmn süreçleri ile ilgili işlemlerin yapılmasını sağlar.
- Starter mekanizması ile geliştirildiği için genişletilebilir yapıdadır. (Bpmn Engine Starter / Bpmn Admin Starter)
- Süreç adımlarının Logger ürünü üzerinden loglanabilmesini sağlar.
- Distributed Transaction desteği sağlar.
- Scheduler Job desteği sağlar.
Topoloji#
Veri Depolama (Data Storage)#
PostgreSQL (Zorunlu)#
Bpmn Admin ve Bpmn Engine uygulamasına ait domain nesnelerinin saklandığı ilişkisel veri tabanı uygulamasıdır.
KAFKA (Zorunlu)#
Bpmn Admin ve Bpmn Engine uygulaması için ayarların değiştirildi bilgisinin produce edildiği even sourcing uygulamasıdır. (Dış uygulamalar ihtiyaç duyacağı için eklenmiştir.)
Redis (Zorunlu)#
Cache için kullanılan veri kaynağı uygulamasıdır.
Instance Bilgileri#
Admin#
Bpmn arayüzü için kullanılan backend uygulamasıdır. Bpmn önyüz uygulamasına hizmet eder ve diğer instancelar tarafından kullanılmasına gerek yoktur. Diğer instancelar aşağıda bahsedilecek olan "BPMN Engine" uygulamasını kullanmalıdırlar.
- Süreç kaydet
- Süreç deploy et gibi...
Engine (Zorunlu)#
Bpmn engine, tüm uçları barındıran ana bpmn uygulamasıdır. Bpmn süreçleri ile ilgili işler için backendden bu uygulama kullanılmalıdır. Bpmn engine'e güvenlik sebeplerinden ötürü hiçbir UI uygulaması erişmemelidir.
- Süreç başlatma
- Task tamamlama gibi...
Bpmn#
BPMN ile tasarlanan süreçlerin yönetildiği UI uygulamasıdır. Bu uygulamanın menü elemanları için System(Menu) uygulaması, backend tarafı için ise Bpmn Admin çalıştırılmalıdır.
Flowable UI#
BPMN süreçlerinin tasarlandığı ve çizildiği uygulamadır. Bpmn önyüz uygulaması içerisinden iFrame ile hizmet sağlanmaktadır. Mevcut çizimlere erişmek için Bpmn Admin uygulaması ile etkileşim kurmaktadır.
External Uygulama Bağımlılıkları#
Logger Instances#
BPMN kapsamında başlatılmıştılmış süreçlerin ilerleyişi için tutulan bilgileri logger instances üzerinden üretmekteyiz.
OAuth Instances#
Scheduler job veya service task gibi çağrım yapılacak metodların güvenlik kriterlerini yönetmek için Async token provider hizmeti kullanılmaktadır.
Other Backend Instances#
Scheduler job veya service task gibi çağrım yapılacak servislere bağımlılık oluşur.
Bpmn Uygulaması Konfigürasyonları#
application-bpmn.yml
hvl:
bpmn:
service:
url: ${BPMN_SERVICE_URL:http://hvlbpmnengineserver:6080}
process:
export-work-directory: ${BPMN_PROCESS_EXPORT_DIR:/tmp/hvl/bpmn/ziptransformer/export}
import-work-directory: ${BPMN_PROCESS_IMPORT_DIR:/tmp/hvl/bpmn/ziptransformer/import}
log:
producer:
enabled: ${BPMN_LOG_ENABLED:false}
index-name: ${BPMN_LOG_INDEX_NAME:hvl-javarch-bpmn}
flowable:
database-schema: ${spring.jpa.properties.hibernate.default_schema}
database-schema-update: ${BPMN_DB_SCHEMA_UPDATE:true}
deployment-name: ${BPMN_DEPLOYMENT_NAME:HvlFlowableAutoDeployment}
check-process-definitions: ${BPMN_DEPLOY_PROCESS_DEFINITIONS:true}
Spring cloud kullanılıyorsa ve config server aktif durumdaysa "spring.cloud.config.profile" bilgilerine "bpmn" değeri eklenerek yukarıdaki application-bpmn.yml direkt olarak hvl-infra üzerinden okunabilir.