jBPM5 Developer Guide – Request for Feedback

Hi everyone, as you may know, I’m working to deliver the next version of my previous book called jBPM Developer Guide published by Packt Publishing [UK].  I’m focused right now to round up this work and publish the new version (via Packt) at the beginning of next year. But before closing all the topics and move all the chapters drafts for the final stage, I would like to receive feedback from the community. I would like to gather and receive comments about the topics that this books should cover beyond the basic ones.

Covered Topics

The following list contains all the topics that I consider that must be covered by a book titled jBPM Developer Guide:

  • Theoretical Background on BPM
  • BPM related topics, technologies and disciplines (SOA, EDA, ESB, BRMS)
  • BPM Systems Structure
  • BPMN 2.0 Specification Introduction, Why it is important
  • WS-HT Specification
  • Deep dive into Human Interactions and the Human Task Component
  • How jBPM5 is compared with traditional BPM Systems
  • jBPM5 Initial Approach – Testing Framework
  • jBPM5 Internals
  • jBPM5 Tooling
  • Domain Specific Activities + Repository
  • How jBPM5 is related to Drools and how the can work together to model complex business scenarios
  • How jBPM5 share mechanisms with Drools
  • How jBPM5 can be integrated with traditional software components and mechanisms (distributed caches, graph oriented databases, messaging systems, etc)
  • How jBPM5 can be used with Drools Fusion
  • Different options to architect your application around jBPM5 & Drools
  • Changes from the previous version jBPM3/jPDL – Migration path
  • <<ADD YOURS HERE -> Please post a Comment>>

I will be updating this list of topics based on your comments. But before posting please keep the following points in mind in order to suggest extra topics:

  • I cannot include all the topics that I want
  • A book never covers all the existing topics, this jBPM5 Developer Guide doesn’t aim to be a jBPM5 Bible
  • All the proposed topics must include examples that will be developed along the book
  • The book try to cover all the theoretical background needed to help you to understand and tackle new and uncovered problems. I prefer to include the guidelines and make focus on design patterns instead of covering all the possible implementations and technical solutions.
  • The book should start simple, with simple examples that morph in more complex scenarios. I cannot cover advanced topics, like for example clustering or distributed transactions if I don’t spend a chapter describing why and when you need to think about those topics. For this example, both clustering and distributed transactions are generic technical topics that can be covered by other books or projects documentation. I will include in this version of the book all the necessary references to cover such topics.
  • This book is not just about jBPM5 it must cover and introduce Drools & Drools Fusion to an intermediate level

 

As I mention, I really appreciate any comments on this. I will try to advertise this post as much as I can, but if you can help me spreading the word I can provide a better reading material for all of you!

Keep in mind the fact that I wanna publish this book on Q1 2012, so the sooner you post more chances do you get to get included in the book.

Merry Xmas & Happy New Year for everyone! - Salaboy 2011
Advertisements

34 thoughts on “jBPM5 Developer Guide – Request for Feedback”

  1. I’m not sure if you have already planned to talk about how to technically (I mean precisely) expose the rule engine as a centralized service and interface a “client” application with it, sending facts to it.

    The same can apply to how to build a coherent set using Guvnor, Expert “as a service” and some client web apps and play with rules versions selection, communicating with the rules service, with and without security (credentials provided by the user through the client web app).

    Like

    1. David, thanks for your comment! Yes totally those topics will be covered in this section : How jBPM5 is compared with traditional BPM Systems, where I will mention both approaches: Embedded and as a Service. I will promote a little bit more the embedded approach, because I personally believe that as a service is just an extension and providing just a single engine to support different use cases usually leads to big architectural mistakes.

      Cheers

      Like

      1. Glad to read both approach will be covered.
        What can be nice is to explain why one is better than another depending on specific use cases, or, even better, some typical architecture designs aims at solving typical enterprise business patterns (for example : when a rule set can be used in several systems, what’s the best design approach : only share the rules definitions (using a central repository) and spread the rules engines (and thus watch for engines-rules dialect compatibility over time), or share the engine too.
        I’m quite a novice and such a chapter can clearly help me to understand what kind of architectural mistakes you are talking about.

        Like

      2. Hi David,
        Thanks for the feedback, I would like to understand a little bit better your phrase: “Glad to read both approach will be covered”
        You mean process and rules? right? As I explain in my answer to eric, it should be just one approach, that I will cover from the process perspective, but both concepts Rules and Processes will run at the same level inside the engine.

        I will really appreciate more feedback on these topics, so I can understand exactly what the people is expecting to find there.
        I will update the post to mention that this should be a very community driven book, I cannot promise money, but I can mention if you want, all the people that helps in the process and that belongs to this amazing community.

        Cheers

        Like

      3. (NOTE : can’t reply to your last comment, so I’m replying here)

        When I say “glad to read […]”, I mean “Glad to read that Embedded and as a Service approaches are going to be described in the book”.

        I’m really interested in understanding when each is pertinent and when it’s not. I can understand that a general purpose rule engine exposed as a unique service for a company isn’t the right way to go, but I’m also intuitively convinced that centralizing in a moderate way perhaps a rule engine can prevent some tricky updates when a new rule requires an upgraded rule engine version. So, if you can describe what are the main best practices regarding enterprise architecture, I’ll be glad.

        Like

  2. Hi,

    Based on the title of the book I would suggest these sections (omitted sections should be dropped). This list is not exhaustive. The sections would be nice in that order, but the contents listed in a specific section are not in any order:

    Introduction
    —————
    – Simple Background on BPM (not too technical, someone buying this book wants tech details, not BPM theory, assume such)
    – BPM Systems Structure
    – BPMN 2.0 Specification Introduction, Why it is important

    Welcome to jBPM
    ———————-
    – jBPM5 Internals
    – Walk through supported node types (most common, such as tasks, gateways, businessrule, scriptnode, etc.)
    – How jBPM5 is related to Drools
    – jBPM5 Tooling

    Getting in deep
    ——————-
    – Start with simple app.
    – Add server call to integrate to third party
    – WS-HT Specification
    – Deep dive into Human Interactions
    – The Human Task Component
    – The Emergency App Example
    – Add business rule example

    Advanced topics
    ———————
    – jBPM5 Testing Framework
    – Domain Specific Activities + Repository
    – jBPM5 exception handling (exception framework?)
    – Different options to architect your application around jBPM5 & Drools
    – Dynamic or adaptive processes with jBPM + example (healthcare?)

    Back to the Future
    ———————–
    – Changes from the previous version jBPM3/jPDL – Migration path

    Finally, my most urgent suggestion is to please get this properly reviewed and revised by a native English speaking person. You have much to teach, it is a shame when this lost in the translation… so to speak. 😉

    Good luck!

    Like

  3. Thanks eric! this book is definitely looking better than the previous one. Having the experience of writing a book really helps on this new one. I’m always looking to learn new things and new ways to express myself. This time all the content is being reviewed by a native speaker that has a couple of PHDs in literature, so I think in this opportunity you will not find the same issues again.

    About the topics, thanks for the suggestion, but I disagree with you on the conceptual part. Most of the implementation that I’ve seen goes wrong because they want to use jBPM as a technical tool without knowing anything about the BPM Discipline and Background. I will try to keep the conceptual background as light as possible without omitting any important discipline steps.

    The rest of the sections are most of what I have right now, I notice that you skip Drools Fusion, is that for something in particular?

    Cheers and thanks again for the feedback

    Like

    1. I skipped all things Drools as the book is jBPM. Fusion I believe is the CEP tooling project? That is again CEP and not jBPM. You could provide an example on how to integrate with that component but it should be minimal focus in a jBPM book.

      If you feel you need to add such a large amount of Drools topics, I think you should write a second book on Drools. 😉

      Like

      1. Eric, one of the main backbones of this book is to cover the reason why jBPM5 is just a module inside the Drools BLiP Platform. In order to really master jBPM5 you need to understand the concept of formalizing Knowledge and why everything is related with that concept. There is no way to write a book about jBPM5 without talking about Drools (Expert & Fusion) and why jBPM5 is different from all the other competitors. At least in my perspective, I must cover all the generic topics like the ones you mention in half book and the rest should be focused on the integration with Drools (Expert & Fusion, and all the other modules) that’s where the future is. There are a lot of mechanisms being shared between these two projects, like for example Auditing, Logs, Persistence, Transactions, etc that cannot be explained without understanding deeply both projects jBPM5 and & Drools.

        I completely understand that having different project names (Drools and jBPM5) confuse people on the understanding of these concepts, but I’m not responsible for that branding decision and I will do my best to explain that as well in the book.

        Cheers

        Like

    1. Mehdi, that’s a good one. I will do my best to include that. Do you have something more concrete in mind? what exactly do you want to see about that? I was thinking to review the seam3 jbpm module integration, but I didn’t have the time to write about that yet.

      Cheers

      Like

  4. Looking forward to the book, Salaboy. Please try to demonstrate building processes that include user interaction early, especially if they include build suggestions (i.e. pom.xml, build.xml, etc. demonstrated).

    Thanks!

    Rick

    Like

  5. Oh, another point : As you mention Fusion, an example – not the Hello World kind – about complex event processing using Fusion could be really appreciated. It’s quite hard to find (or if it’s not, please, tell me where to look) a good book explaining a real use case and implementation of such a system.

    Like

    1. In the meantime you can take a look at the emergency services project that will be included in the book. We are trying to clean that application in order to show best practices and a blue print for architecting applications using Drools(Expert & Fusion) and jBPM5.

      Like

      1. Sorry, off topic : Where can I ask some questions about the Emergency Services ? (can’t grab all the dependencies : plugtree repo pbm)

        Like

  6. Hi Salaboy,
    I was integration jbpm3 with drools3, but with current release (Guvnor,Flow,Fusion) I lost my base.
    On chapter “Different options to architect your application around jBPM5 & Drools” please do also with real-world example(most closely at least).

    Thanks,
    rk

    Like

  7. Buenas,

    Salaboy, veo comentarios en español y otros en ingles, asi ke no estoy seguro del idioma, bueno en fin, lo que te comento es lo siguiente, tengo una aplicacion web hecha en java utilizando spring POA, spring security, mysql, framework zk, hibernate, todo funciona muy bn, pero quisiera integrar ahora JBPM para controlar algunos procesos al detalle y liberarme de algunos controles, pero esto se puede hacer? y si es asi como hacerlo?

    Gracias

    Like

  8. Looks like the book has got pushed out to December 2012. Is that a definitive date or is that still tentative. Looking forward to the book. I’m sure you’ve put a lot of effort into it. I waiting eagerly for it to be published 🙂 !

    Like

  9. I bought the JBPM5 Developer Guide and I am working through it. I downloaded sample code from PakT, but it’s missing at least some code that the book refers to. For example on page 148, the book mentions EmergencyBedRequestTestV1.java, but I can’t find it in the downloaded sample code.

    Like

  10. Is there already an errata for the book available? I’m trying to work through it, and for me it looks like there might be a small error on page 147, Chapter 5. For me as a beginner it looks like the describtion of the “Notification Task” Node doesn’t match the pictures of the Input-Data and Data Assignments.

    Is that possible or am I mistaken?

    Thanks

    Patrick

    Like

  11. Oh sorry, I misread your comment. I don’t have the book with me here, but I can check that later and post a comment back here. Esteban wrote that chapter so I will contact him to see if there is something wrong there.

    Like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s