Ana içeriğe geç

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.