Parleys.com Search Index |
|||
|
|||
|
Title: Alfresco Activiti In Action (part 1/2)
Description: Learn about Activiti and how you can benefit from the BPM and workflow features in your next Java project. One aspect of Business Process Management (BPM) is to facilitate the collaboration between business people and developers. But also developers find it often just the simplest way to implement their requirements. When dealing with task lists, timers and asynchronous messages, it can be a challenge to bind all the hooks and eyes together. In these asynchronous architectures, Activiti is at its best. With Activiti, developers can create an overview diagram that represents the overall transactional control flow. We'll show how easy it is to link this process to your Java domain logic classes. Another interesting aspect of using Activiti is that you get the valuable history analysis reports and audit logs for free. For example, how many successful deals did we have for each region in less then 20 days. Or who gave permission for this purchase and what was the motivation. By default, Speaker(s): Joram Barrez Keyword(s): TomBaeyens Joram Barrez Java BPMN 2.0 Belgium bejug activiti Alfresco Slide Content: 0) by for 1) Agenda • • • • • Introduc)on Live coding TechTalk What do you get? Demo 2) What is a business process? A collec'on of related steps that produce value 3 3) What is a business process? • Business processes are often the differentiator between two companies doing the same thing 4 4) What is a business process? • Business processes are often the differentiator between two companies doing the same thing 5 5) What is a business process? • Business processes are often the differentiator between two companies doing the same thing 6 6) What is a business process? • Often visualized using some kind of flowcharts • Insight into business (mgmt perspective) • Communication IT-business • Business process Management is a HUGE field 7 7) What is a business process? • Often visualized using some kind of flowcharts • Insight into business (mgmt perspective) • Communication IT-business • Business process Management is a HUGE field Suppose 250 pages/book 313 BPM trees 2 612 500 pages on BPM * *hCp://wiki.answers.com/Q/How_much_paper_can_one_tree_produce 8 8) But technically… 9 9) BPMN 2.0 • OMG standard – Shapes – ExecuXon semanXcs – File format • First pure play BPM standard – With general endorsement 10 10) What does that mean? • Huge pool of BPMN skilled analysts • Any BPMN 2.0 compliant editor • MS Visio, Oracle, IBM, Aris, etc. • Executable on Activiti engine 11 11) But technically… 12 12) What is AcXviX? 100% J ava 100% o SS Lightweigh t Performant Embeddable 13 13) What is AcXviX? AcXviX API runXmeService.startProcessInstance… Forms 15 14) So technically … ht k flig Gene Boo ugh rate P DF thro ice bserv e Check order w state in SAP AcXviX Selec t hel p 'cke desk t HR needs to approve the expense ds ey nee tomer Jo cu s ll the to ca 16 15) What does that mean for you? 16) What does that mean for you? • Developers are crucial for the success of a BPM project! AcXviX • Business processes practically always require automated steps and integrations • Activiti gives the developer the power and flexibility he/she needs to be extremely productive 17) Release fast, release o_en • Serious # bugfixes / features every month 19 18) Who contributes to Ac)vi)? 19) Agenda • • • • • IntroducXon Live coding TechTalk What do you get? Demo 20) Live coding AcXviX + command line he straXng t Demon er and pow simplicity viX of AcX s! 0 minute In only 1 AcXviX + Spring AcXviX + webapp 22 21) TechTalk 23 22) Unit tesXng business processes • With AcXviX, your business processes are an integral part of your so_ware project • So they should be tested the same as regular code … with unit tests! • AcXviX supports JUnit 3 and JUnit4 style of unit tests • + a lot of convience for tesXng Pic from hCp://silverbackapp.com 23) Unit tesXng business processes Junit 3.X style Pic from hCp://silverbackapp.com 24) Unit tesXng business processes Junit 4 style Pic from hCp://silverbackapp.com 25) Timers • Work is o_en Xme constrained • A 'mer boundary event can be aCached to the boundary of any step (or subprocess) 27 26) Method expressions and JPA Update JPA enXty Spring bean Decision based on JPA enXty property Process variables 28 27) Work in progress • CDI/Spring annotaXons 29) Agenda • • • • • IntroducXon Live coding TechTalk What do you get? Demo 30) What do you get? • World-‐class rock-‐solid BPM and workflow engine 32 32 31) Not only the engine? AcXviX Modeler AcXviX Designer AcXviX Probe AcXviX Explorer AcXviX Cycle Java ApplicaXons AcXviX Engine REST interface iPhone Explorer Android Explorer 32) • Webbased BPMN 2.0 graphical editor AcXviX Modeler 34 34 33) AcXviX Explorer • Process end-‐users (task mgmt) 35 35 34) AcXviX Probe • System admins • Status overview, stuck jobs, excepXons, logs, … 36 36 35) AcXviX Cycle • CollaboraXon … done right 37 37 36) AcXviX KickStart 38 38 37) • Remote communicaXon regardless of the technology AcXviX REST API 39 38) • AcXviX extension support, BPMN 2.0 validaXon, hierarchical modeling AcXviX Eclipse designer 40 39) AcXviX Eclipse designer • Pluggable acXvity support 41 40) Mobile AcXviX 42 41) Mobile AcXviX 43 42) AcXviX & Grails • Grails convience capabiliXes • Typical configuraXon • Easy business archive deployment • Generate controllers/view/example app 44 43) Agenda • • • • • IntroducXon Live coding TechTalk What do you get? Demo 44) Real-‐life demo • Use case: banks shouldn’t lend money to just anybody • Thorough analysis is needed • All steps needs to be recorded in official documents • Decisions are done based on Excel decision tables 46 45) The mortgage process 47 46) The mortgage process 48 47) The mortgage process = CMIS call 49 48) The power of Java Out-‐of-‐the-‐box Custom Java 50 49) The power of Java public class CreateLoanApplicationDocument implements JavaDelegate { public void execute(DelegateExecution execution) { Session session = CmisUtil.createCmisSession("admin", "admin", Constants.ALFRESCO_URL); Folder folder = CmisUtil.getFolder(session, Constants.LOAN_APPLICATION_STORAGE_FOLDER); Document document = createWordDocument(session, folder, execution); storeDocumentReferencesAsProcessVariables(execution, folder, document); session.save(); } 51 50) The mortgage process 48 |
|||