上海交通大学硕士学位论文轻量级工作流引擎的设计及在医药行业的应用姓名:章曾申请学位级别:硕士专业:软件工程指导教师:蔡鸿明;龚沛曾200709222web34DESIGNOFRELATION-BASEDLIGHTWEIGHTWORKFLOWENGINEANDAPPLICATIONFORPHARMACEUTICALINDUSTRYABSTRACTThisstudyisonthebasisofhugeresearchesandanalysisofcurrentcharacteristicofworkflowtechnologyandsystemmodelandproblemofenterprisebusinessdemand.Thispaperpresentsawebbasedworkflowsystemandhowitconformstotheenterprisebusinesssystemandprovidesthedesignprinciplesofsystemandsystemarchitecture.Thispaperalsodiscussessystem’skeytechnologiesandalgorithm.Thispapercompletesthedesignforsoftwareandcodeachievement,anditestablishesacoupleoftechnologydeveloproleandinterfacefortransportdatafortheconformofworkflowsystemandenterprisebusinesssystem.Finally,thepaperrunsanexampleinmycompanyforthesystemtocontrolthebusinesssystemofapplyingmoneyandapproval,anditcanrunverywellandaccordwithwhatIwant.Inthispaper,theworkflowsystemcanhelpenterpriseoptimizetheirbusinessprocessanddevelopanddeploythebusinessprocess.Undertherapidmovemententerpriseenvironmentandbusinessprocess,thisworkflowsystemcanhandlethesupplychainmanagementoutsidethefirmandapprovalofgovernmentaffairinsideexcellentlyinvolvedintheenterpriseinformationsystem.KEYWORDS:workflow,relationdatabase,lightweight11.11.1.12Internet1.1.21.11.1RDBMSFugure1.1:RDBMScomparetoworkflowRDBMS31.1.3WFMWFM1993(WorkflowManagementCoalition,WfMC)WfMCWFMITEmailIT1.1.4built-in12DBMS431.21983198519938,WorkflowManagementCoalitionWFMC1994IT51ORBWorkCORBAORBWorkGeorgiaMETEORManagementEnd-To-EndOpeRationsCORBACORBAOrbixCORBAORBWorkCORBACORBAIDLORBWorkWebWebCORBACORBAORBIDLCORBA[6]2WebWorkWebWebWorkORBWorkMETEORORBWorkWebWorkWebMETEORCORBAWebWebWebWeb[7]3)Exotica/FMQMIBMAlmadenExoticaPersistentMessages6ExoticaDECMessageQNovellTuxedo/QIBMMQSeriesAPI[8]4)EVEEVEEventEngineEVEBrokerEVE[9]ECAEVEEVE[10]EVEEVEEVEEVE-adapterEVEEVEEVEEVE5)DartFlowDartFlow7DartFlow[11]1.31.3.1,Petri?1.3.21();2;3;84DML1.3.292.12.1.1WfMC[3]ITBPRBusinessProcessRe-engineering[6]BPRBPRITBPRworkflowsworkflows2.1.2WFMC(2.1)WFMC310(1)Build-time(2)Run-time(3)IT2.1Figure2.1:Characteroftheworkflowmanagementsystem2.1.32.2WFMC112.2:Figure2.2:workflowmodelWFMCWFMC5(1)APIXPDLAPIWAPI(2)12WAPI(3)(4)(5)2.1.432.32.3Figure2.3:WorkflowManagementsystemstructure13(1)(2)(3)/(4)IT(5)(6)(7)2.22.2.11993(WorkflowManagementCoalition,WFMC)WFMC[4]14(1)WfMC'sXPDL-WfMC300XPDLWfMCXML[5](2)ebXML'sBPSS-ebXMLEDIebXMLOASISUN/CEFACTBPSSebXML[7](3)BPMI'sBPML&WSCI-(Intalio,Sun,SAP,...)BPMI(BPMN)(4)BPEL-(Microsoft,BEA,IBM,SAP&Siebel)BPELXLANG,WSFL,BPMLJava:BPELJXMLWSDL-Services2.2.2XPDLWFMCXPDLXPDLXML11(/)XPDLWFMCXPDL(1)(2.4)(2)(3)152.4:XPDLFigure2.4:XPDLmodelXPDLzz/zzzzXPDL(2.5)XPDLXPDL162.5:XPDLFigure2.5:XPDLdatamodel2.3(1)[12](2)(3)PetriPeriPetriPetriPetri2.3.1PetriNetPetriCarlAdamPetri17PetriPetri[5]zPetriPetrizPetriPetrizPetrizPetriinvariancelivenessboundnesssafetyPetriPetriPetri2.3.2[2]18WfMSWfMS1)AB2.6(a)2)2.6(b)BC193)2.6(c)ABC4)2.6(d)BABCABCABCDABCD(a)(b)(c)(d)2.6Figure2.6:Fourexecutestructure2.3.3PetriPetriPetriPetri[3]1PetriPetri0,,,,MWFTSPN=ST;,∅≠∪∅=∩TSTSSTTSF×∪×⊆W(){},,2,1,0,L∈yxW()()0,,,=∉yxWFyx{}L2100→SMPetri20PetriPetriPetriPetriC.A.EllisICNInformationControlNet[1]W.M.P.vanderAalstWF-Net[4][6]Petri2ICN()ARDCICN,,,=CDRA()21,CCc1C2C()21,CDd1D2C()21,DCd1C2D()21,CRr1R2C()21,RAa1A2R3WF-NetPetri()FTSPN,,=WF-Net1.ioisourceosink2.T*tF()*,to()it,**PN*PNICNANDORWF-NetPetriWF-NetPetri[4]2.7WF-NetAND-splitAND-joinOR-splitOR-join21ABCBA(a)DCBADABC(c)(b)(d)AND-splitAND-joinOR-splitOR-join2.7PetriFigure2.7:FourPetrinetexecutestructurePetriPetriPetri1.2.3.223.13.1.13.13.1Figure3.1:Workflowofinternalapproval23(3.2)(1)3.2Figure3.2:Designworkflowz24zz110210zzzz(2)(3.3)9253.3Figure3.3:Definethenode(3)(3.4)10263.4Figure3.4Definethenode’srelation3.1.2(1)(2)(3)(4)273.23.2.1XPDL3.5283.5:Figure3.5:Workflowsoftwarestructure3.2.23.63.6Figure3.6:Workflowengine293.2.3XPDL(3.7)XPDL()3.7Figure3.7:Workflowdatamodel30XPDL11.01234012345670url3112url3url()4url5url632url0()1=!=010url133andor344.1(4.1)4.1:WFMCFigure4.1:workflowprogramstatusofWFMCzzzzz35zzzzz4.2Figure4.2:Worlflowprogramstatusofthissystem364.24.3:WFMCFigure4.3:workflowactivitystausofWFMC(4.3)zzzzzzzzzz37zzz4.3zzzendzz(m)-(rt)38zz1zzzzz4.44.4.139zWorkFlowValueImplWVzTemplateOperationImplTOzWorkFlowOperationImplWOzIWorkFlow1)TO.getWorkFlowList(login)login2)WO.startWorkFlow(categroy,login)categroyloginid3)IWorkFlowTO.getIWorkFlowByTID(tid)tidid4)onStartWorkFlow()5)ID--JSP6)onStartProcessNode()7)WO.changeState(login)loginfalse8)true,,id9),4010)idWorkFlowValueImpl4.4.21)2)IWorkFlowTO.getIWorkFlowByWFID(wfid)wfidid3)onAfterProcessNode()4)trueWV.setFinishedState(nodeid)nodeidid5)falseWV.setContinueState(nodeid)nodeidid6)()7)onPreSubmit()8)Submit()9)TO.getNextNodes(curNode)10)WO.getSubmitType(),41WO.submitDirect()WO.submitAll()WO.submitAll()WO.submitAll()WO.submitDirect()11)WO.submitDirect()onSubmit()910114212)onAfterSubmit()4.5434.6:Figure4.6:Workflowsubmitalgorithm444.54.5.1jsp1)get,setMVCWorkFlowItemWorkFlowNodeWorkFlowField()WorkFlowActionWorkConditionWorkUserLis