Tuesday, March 4, 2014
Students can participate in the Google Summer of Code (GSoC) annual program, where they can work on their favorite free and open-source project during the summer and where Google awards stipends (US$5,500) to all students who successfully complete a requested and approved project.
JBoss is participating again this year, so make sure to submit your proposal in time (by March 21st) to be able to participate in this unique opportunity !
There's a large list of possible topics you can choose from, but you can always submit your own ideas as well.
An up-to-date list of project ideas related to jBPM is maintained on this page, and includes the following ideas you could pick on from if you're interested.
The jBPM core engine itself is so lightweight that it could actually be run on android as well. Based on an existing prototype, this could be extended so jBPM could actually be used to develop and execute simple applications on android. This for example could include creating custom nodes for common android functions (like opening a web page, getting current location, etc.), configuring persistence to use the persistence mechanism offered by android, simple client interfaces for inspecting human task lists, managing process instances, etc.
The blog entry describing a first prototype can be found here.
jBPM allows you to integrate with external services by creating your own domain-specific nodes that are added to the process palette and can be used inside your business processes to model specific services. While some of these services might be very specific to your problem domain, a lot of generic and reusable integrations could be implemented, like integration with Email, RSS feeds, Google Calendar, REST services, known web services to for example retrieve stock data, weather information, etc. These could then be added to a repository or library of domain-specific nodes so that the process author could for example select which of those he wants to use as part of his process.
We would like to extend the set of integrations that we support out-of-the-box by adding new integrations with existing services and projects. This is an ideal opportunity to integrate jBPM with the some of the projects you love!
Using a business process engine always add a certain amount of overhead to your application. How minimal this overhead might be in some cases (depending on the features you have currently configured), optimization can usually speed up your execution significantly. In this case, we would like to investigate whether processes could be translated to Java code so they can be executed more efficiently. Based on a simple prototype that already demonstrates this is possible, we would like to extend this approach for more constructs and use cases (for example translate parts of your process to Java on the fly to speed up execution).
jBPM allows you to basically invoke any external service by adding custom nodes to the palette to interact with these services, so they can be used directly inside your processes. One common service that does show up on a lot of wish lists is a document management system. This would allow you to create, retrieve and update documents as part of the business process, while using an existing document management system to keep track of these documents. This could also include extensions to the current task forms to allow viewing, uploading and/or updating documents, etc.
BPM becomes more and more effective if it integrates well with the everyday tasks and tools of the business users that are responsible for executing and monitoring these processes. While jBPM provides a lot of services out-of-the-box, integrating these in a mobile device like a mobile phone or a handheld device would make it easier for business users and end users to start using these. This could include running our web-based process designer on a handheld device, or mobile client applications to start processes, manage task lists or monitor execution.
We would like to investigate whether it would be possible to translate business processes using the BPEL language into the new BPMN 2.0 specification, as supported by jBPM5. While a transformation from BPMN2 to BPEL is currently available for a large subset of the BPMN2 specification, the transformation in the other direction has mostly been neglected. This would however enable you to migrate your existing BPEL processes to the new BPMN2 format and execute them on jBPM5.
Social BPM is all about integration new social features like collaboration, tagging, mashups, linking, and other Web 2.0 features into business process modeling, execution and management. This could include collaboration features between different authors on the same process, using for example RSS feeds or new social media to notify changes, the use of tagging on business processes so this information could for example be used for searching, auditing, etc.
Process mining is almost a complete research area on its own, compared to business process manamagent. We would like to investigate how existing process mining techniques (both for detecting and analysing business processes or history logs) and tools could be applied and integrated into the jBPM space.
While jBPM is a generic business process engine and Drools is a generic business rules engine, it could easily be applied in different application domains. One of these domains is security and access control, where both technologies can be used for managing and enforcing access control. Business rules could be used to describe authorization rules, business processes could be used to describe the different approval processes necessary to grant privileges, the jBPM and Drools engine could be extended with additional authentication and authorization features, etc.
The advanced capabilities of jBPM for modeling adaptive and flexible processes make jBPM an excellent candidate for describing and executing clinical processes, like for example to describe the treatment of patients. Business rules can be used to augment these care plans with additional logic to handle exceptional situations, handle data-driven decisions, etc. The goal of this project is to define a reference architecture that could be used to describe and execute a few specific use cases in this area and implement representative examples as part of a prototype.