7 Replies Latest reply on Jun 11, 2008 11:58 AM by johncarl81

    New application brewing, need some advice

    johncarl81

      Hey guys,

      So, I need some advice on starting my latest application. Basically, it is a user management system, based on an 'ARF' (application request form) that we use at our company. It has a pretty simple workflow of approvals and notifications that it runs through with one caveat, the workflow probably will change, and additional ARFs will be added to the application for routing and management. I was looking at a variety of workflow engines for this and jBPM stood out among the crowd.

      I am thinking that I can just implement a couple of base modules, for the approval processes (who approves what) with a couple other editing and applying roles steps to the process and tie it all together with jBPM.

      Does this sound reasonable? Or should I consider some more options?

      Thanks for your input.

        • 1. Re: New application brewing, need some advice
          kukeltje

          sounds fairly straight forward. I see no immediate obstacles or caveats

          • 2. Re: New application brewing, need some advice
            johncarl81

            I was doing some more poking around at jBPM, and installed the eclipse editor plugin. So cool... Im such an easy sell when things have a nice gui. The framework seems pretty lightweight too. Is is common practice to embed jBPM into your application, or use it as a separate resource? I think for this project it makes sense to embed it.

            I recently went to local JUG meeting where we had a JBoss guy (Burr Sutter) give us the shpeal for JBossESB... looks like they use jBPM for the management of the ESB nodes as well. It's cool when a component like this is useful across different contexts.

            • 3. Re: New application brewing, need some advice
              kukeltje

              embedding is one of the 'normal' usecases of jBPM. And yes, synergy is one of the JBoss goals. Same is true for jBPM in Seam (pageflow), drools in jBPM/Seam etc... now only if there was to become this one unified usermanagement system

              • 4. Re: New application brewing, need some advice
                johncarl81

                Thats very cool and appreciated. I was discussing this solution and we think it might have a big enough scope for an ESB solution. Any thoughts on this?

                • 5. Re: New application brewing, need some advice
                  kukeltje
                  • 6. Re: New application brewing, need some advice
                    johncarl81

                    heheheh, thanks for the clarification.

                    I think we are going to build out a couple of Services... that could be integrated into an ESB in future cases. We're a pretty small shop right now so I don't think it makes a lot of sense.

                    • 7. Re: New application brewing, need some advice
                      johncarl81

                      All right,

                      So, I've finally took the plunge and started the application. I have a pretty cool data structure that holds my various user profile attributes based on the hibernate Map<Entity, Entity> capability. I chose this route because our user application from is ALWAYS changing from management, outside influences, new apps coming online, etc.

                      To handle this user form during the process, I was thinking about just referencing a new hibernated entity and then merging into the 'finished' application forms at the end of the process. The trick here is I want each of the nodes to access the form in different ways. So, does it sound appropriate to implement a custom node that can deal with the permissions on the attribute data map? I can see an alternative to this would be to use the standard node types and simply merge the process variables into a new application form at the end of the process.

                      Also, another thing I was wondering about, is there a way to 'cancel' or draw back tasks associated with a given node or process? This would be useful if the user cancels the workflow.

                      Thanks again... let me know if I need to clarify anything.