Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Drools & jBPM Workshop London 2013

6,845 views

Published on

Slides from the 2013 Drools & jBPM Workshops hold in central london

Published in: Technology
  • Be the first to like this

Drools & jBPM Workshop London 2013

  1. 1. Drools & jBPM Workshop 2013 October · London
  2. 2. Agenda ● Day 1: Tooling Technology Stack ○ Architectural Overview ○ UberFire ● Day 2: Tooling ○ KIE Platform Intro ○ Drools Tooling ○ jBPM Tooling
  3. 3. Short Disclaimer The tooling that we will be showing is a SNAPSHOT/Nightly build version of the project master branch. It can be built downloading the community projects hosted in github. com/droolsjbpm. If you are using Windows, you can expect some issues that are still being fixed before the final release.
  4. 4. Technology Stack ● ● ● ● ● GWT GWT-Bootstrap Errai Uberfire Contributing modules ○ ○ ○ ○ ○ ○ guvnor kie-wb-common jBPM Console jBPM Process Designer jBPM Form Modeller Drools Workbench
  5. 5. Stack - GWT http://www.gwtproject.org/ ● Legacy components ● Cross browser support ● Widget set ● GWT Bootstrap
  6. 6. Stack - GWT-Bootstrap http://gwtbootstrap.github.io/ ● Integration Bootstrap with GWT ● Common widget set ● Striving for better consistency
  7. 7. Stack - Errai http://errai.github.io/ ● Client side CDI ● Federated Event Bus ● Remote services ● Marshalling ● WELD
  8. 8. Stack - Uberfire http://droolsjbpm.github.io/uberfire/ ● Workbench ● Annotation driven development ● Unified Security API ● Virtual File System (Java nio2 backport) ● Indexed resources ● Concurrency support
  9. 9. Stack - Uberfire ● Workbench ○ WorkbenchPerspective ○ WorkbenchPanel ○ WorkbenchPart ● ● ● ● PanelManager Drag & Drop JavaScript plugins State persistence
  10. 10. Stack - Uberfire ● Workbench ○ WorkbenchPanel ○ WorkbenchPart ● PlaceRequest ○ ○ ○ ○ @WorkbenchPerspective @WorkbenchScreen @WorkbenchEditor @WorkbenchPopup
  11. 11. Stack - Uberfire ● Annotations ○ ○ ○ ○ @WorkbenchPerspective @WorkbenchScreen @WorkbenchEditor @WorkbenchPopup
  12. 12. Stack - Uberfire ● Annotations - @WorkbenchPerspective ○ ○ ○ ○ @Perspective @OnStartup @OnOpen @OnClose
  13. 13. Stack - Uberfire ● Annotations - @WorkbenchScreen ○ ○ ○ ○ ○ ○ ○ ○ @WorkbenchPartTitle @WorkbenchPartView (or implement IsWidget) @OnStartup @OnOpen @OnMayClose @OnClose @OnFocus @OnLostFocus
  14. 14. Stack - Uberfire ● Annotations - @WorkbenchEditor ○ ○ ○ ○ ○ ○ ○ ○ ○ ○ @WorkbenchPartTitle @WorkbenchPartView (or implement IsWidget) @OnStartup @OnOpen @OnMayClose @OnClose @OnFocus @OnLostFocus @IsDirty @OnSave
  15. 15. Stack - Uberfire ● Annotations - @WorkbenchEditor ○ Path ○ ResourceTypeDefinition ○ ClientResourceType
  16. 16. Stack - Uberfire ● Annotations - @WorkbenchPopup ○ @WorkbenchPartTitle ○ @WorkbenchPartView (or extend PopupPanel) ○ @OnOpen
  17. 17. Stack - Uberfire ● Workbench - Menus and Toolbars ● Hierarchical and contextual ○ ○ ○ ○ Application @WorkbenchPerspective @WorkbenchScreen @WorkbenchEditor ○ @WorkbenchMenu ○ @WorkbenchToolBar
  18. 18. Stack - Uberfire ● Unified Security API ○ ○ ○ ○ @Roles @All @Deny RuntimeResource ■ MenuItem ■ ToolBar / ToolBarItem ■ OrganizationalUnit ■ Repository ■ Project ■ Activity
  19. 19. Stack - Uberfire ● Virtual File System ○ Java 7 NIO2 backport ■ git ○ Clustering - Apache Zookeeper / Helix ○ IOWatchService ○ Meta Data
  20. 20. Stack - Uberfire ● Indexed Resources ○ Lucene ○ IOSearchService ○ DublinCoreAttributes
  21. 21. Stack - Uberfire ● Concurrency support ○ ○ ○ ○ ResourceAddedEvent ResourceUpdatedEvent ResourceDeletedEvent ResourceRenamedEvent ● Client-side optimistic lock support ○ ObservablePath
  22. 22. Creating a new Screen @WorkbenchScreen(identifier = "org.jboss.example.screen") public class ScreenPresenter { ... @Inject public ScreenPresenter.View view; @OnStartup public void onStartup( final PlaceRequest placeRequest ) { ... } @WorkbenchPartTitle public String getTitle() { return “My title”; } @WorkbenchPartView public IsWidget getWidget() { return view; } }
  23. 23. Creating a new Editor @WorkbenchEditor(identifier = "org.jboss.example.editor", supportedTypes = {MyResourceType.class} ) public class EditorPresenter { ... @Inject public EditorPresenter.View view; @OnStartup public void onStartup( final Path path, final PlaceRequest placeRequest ) { //load content from Path } @IsDirty public boolean isDirty() { return isDirty; } @OnSave public void onSave() { //Save content to Path }
  24. 24. Modules
  25. 25. Modules ● ● ● ● ● ● ● Guvnor KIE-WB-Common jBPM Console NG jBPM Designer Form Modeller Drools Workbench KIE Workbench
  26. 26. Modules - Demo of drools-wb
  27. 27. Exercise - Write a screen
  28. 28. See you tomorrow
  29. 29. Drools & jBPM Workshop 2013 October · London
  30. 30. Day 2 Agenda: KIE = Drools + jBPM ● KIE Platform introduction ○ KIE Jars/ KIE Projects ■ kmodule.xml ○ Example Project ○ Tests ● jBPM Tooling ○ ○ ○ ○ Creating a KIE Project Deploying a Kjar into the platform runtime Executing a business process Rest APIs
  31. 31. Short Disclaimer The tooling that we will be showing is a SNAPSHOT/Nightly build version of the project master branch. It can be built downloading the community projects hosted in github. com/droolsjbpm. If you are using Windows, you can expect some issues that are still being fixed before the final release.
  32. 32. New Things ● KIE prefix ○ Stands for Knowledge is Everything ○ Replaces the Knowledge* prefixes and packages ○ A background compatibility jar will be provided for migration ● KIE Projects ○ ○ ○ ○ Provides the Drools and jBPM projects structure Maven based / standard project structure Integrated with CDI Defines a Deployment Units for jBPM
  33. 33. CDI + Drools + KIE Project ● From: https://github.com/droolsjbpm/drools/tree/master/droolsexamples-cdi
  34. 34. KIE Project ● Structure (Maven Standard + kmodule.xml) Standard pom.xml File Resources / Knowledge Assets Business Process KIE Module Descriptor Forms
  35. 35. KModule ● Convention Driven ● Or you can add custom configurations
  36. 36. Applications and Modules Distributions
  37. 37. KIE Workbench Components Interactions
  38. 38. BPM Side Agenda ● Home ● Authoring Perspective ○ Modelling a process ○ Modelling forms ○ Registering Domain Specific Tasks ● ● ● ● ● Building & Deploying a Project Starting a Process Instance Task Management General Configurations REST endpoints
  39. 39. Home ● The Knowledge Lifecycle ○ ○ ○ ○ ○ Authoring Runtime Configurations Process Management Task Management Business Activity Monitoring
  40. 40. Authoring Perspective ● Authoring Assets ○ Creating KIE Projects ○ Creating Knowledge Assets ● Administration ○ Creating a new repository ○ Cloning an existing repository ■ https://github.com/droolsjbpm/jbpm-playground
  41. 41. Building & Deploying a Project ● Project Editor ○ Project Dependencies ○ Build & Deploy ○ Deployment Perspective
  42. 42. Human Resources Example From: https://github.com/droolsjbpm/jbpm-playground Article: http://salaboy.com/2013/10/11/using-the-jbpm-console-ng-hr-example/
  43. 43. Customer Relationships Example From: https://github.com/droolsjbpm/jbpm-playground Uses: http://www.service-repository.com/operation/operations?id=30 Article: http://salaboy.com/2013/10/22/kie-wb-jbpm-console-ng-configurations/
  44. 44. Process Management ● Process Definitions ○ Shows only Deployed Process Definitions ○ Create new Process Instances ● Process Instances ○ You can inspect the details of your process instance ○ You can look into the Process Variables (simple types for now)
  45. 45. Task Management ● Task Lists ○ Work in your assigned tasks ■ Group Tasks ■ Personal Tasks ● Task Forms ○ FTLs -> Freemarker templates ○ Forms -> Graphically Designed Forms using Form Modeller
  46. 46. Business Activity Monitoring ● Dashboard ○ Generic Business Dashboard ○ Business Process Dashboard ○ Task Dashboard
  47. 47. General Configurations ● User/Groups/Roles ○ Where should I configure it? ○ Look here: http://salaboy.com/2013/10/22/kie-wb-jbpm-console-ngconfigurations/ ● Work Item Handlers (Service Connectors) ○ What do I need? ○ Look here: http://salaboy.com/2013/10/22/kie-wb-jbpm-console-ngconfigurations/ ● Getting access to the GIT repositories ○ How do I access to the local GIT repository? ○ Let’s do it!
  48. 48. REST Endpoints ● For the BPM Side you can interact with the Process Runtimes using a REST endpoint (https: //github.com/droolsjbpm/droolsjbpm-integration/wiki) ● You can execute your operations against a KIE WB running instance ● Project: jbpm-rest-client also from the jbpmplayground repo
  49. 49. Community / Further Reading ● IRC: irc.freenode.net ○ #drools ○ #jbpm ● jBPM Forums / Drools Mailing List ○ www.drools.org and www.jbpm.org ● Blogs ○ ○ ○ ○ blog.athico.com kverlaen.blogspot.com mswiderski.blogspot.com salaboy.com
  50. 50. Good Bye

×