Transparante conversie OWF2SOA Martien van den Akker Integration Architect
1
Transparante conversie OWF2SOA
Introductie
2
Agenda • • •
• • •
• • • • •
Introductie Oracle Workflow en Forms OWF2SOA: transparante conversie
Starten OWF Eindgebruikers Notificaties/Taken Process Blocks: externe systeem signalen Service Aanroepen Process Model Migratie Principes
Pauze Conversie Issues BPEL of BPM?
3
Transparante conversie OWF2SOA
Oracle Workflow en Forms
4
Oracle Workflow •
1e Process Engine bij Oracle
•
Standalone/Embedded
•
Ontstaan in EBS (Embedded)
•
Standalone versie meegeleverd bij database, vanaf 8i t.m.10g en AS t/m 10g
•
Workflow engine volledig in de database (PL/SQL)
5
Oracle Workflow •
Standalone workflow Builder
•
C++
•
Ondersteunt Subprocessen
•
Flow-chart-achtig procesmodellering
6
Business Event System • Onderdeel van OWF vanaf 2.6 • HTML Based Frontend • Op Advanced Queuing (AQ) gebaseerde Eventverwerking • Events afvuren in applicaties – Vanuit Workflows – Via database API
• Events sturen functies aan – Workflows – Database Rule functies – Java taken 7
Forms en OWF: Een gouden combi
Oracle Workflow
Forms Applicatie Shared Tables/ Views App_Owner Pl/Sql Applicatie Services
Database
Tables/ Views
Background Engine OWF_MGR
Tables/Views
Pl/Sql Applicatie Services
Tables/Views
OWF API’s Background Engine
OWF API’s
8
Integratie OWF en Forms
9
OWF Statement of Direction (SoD) Updated december 2006: “Oracle has
announced product obsolescence for Oracle Workflow. It's functional replacement is Oracle BPEL Process Manager , which provides a standard mechanism of creating both humancentric and process-centric workflows.”
http://www.oracle.com/technetwork/middleware/ias/workflow-sod-089843.html
10
OWF SoD Some key points from the desupport notice: • Error Correction Support (ECS) ends on 11-SEP-2007. • The final version will be 2.6.x. • The desupport notice applies to all platforms.
• Oracle Workflow Client and Oracle Workflow Server will not be included in Oracle Database Editions 11g and above. • Oracle Workflow will only be included in Oracle E-Business Suite releases.
• Existing Oracle Workflow customers continue to receive error correction support up until the same date that error correction support ends for product bundle purchased which include Oracle Workflow.
11
Database End of Support
Bron:
12
Agenda • • •
• • •
• • • • •
Introductie Oracle Workflow en Forms OWF2SOA: transparante conversie
Starten OWF Eindgebruikers Notificaties/Taken Process Blocks: externe systeem signalen Service Aanroepen Process Model Migratie Principes
Pauze Conversie Issues BPEL of toch BPM?
13
Transparante conversie OWF2SOA
OWF SOA Transparante conversie
14
SOASuite met OWF gezicht • • • • •
Starten OWF Eindgebruikers Notificaties/Taken Process Blocks: externe systeem signalen Service Aanroepen Process Model Migratie Principes
15
Start OWF • Vanuit Database PL/SQL • Trigger op tabel/Business Rules • Knop op Forms Scherm
• Webservice call? • Opbouw XML Bericht/HTTP Connectie (complex) • Exception Handling (connectie/SOAP) • Transactie
• Alternatief: AQ op basis van Object Type • Eenvoudige PL/SQL • Object Type eenvoudig op te maken • Transactioneel 16
Start OWF FormsButton
Vooraf: wrap OWF API’s PL/SQL API: StartProcess
Webservice (DB Adapter)
AQAdapter
BPEL BPEL BPEL Instantie Instantie Instantie
AQQueue
17
Eindgebruikers Taken • Human Workflow • ADF based BPM Worklist • Geen frontend integratie • SSO Complex
• Human Workflow integratie FormsTakenscherm • Java/WSDL API’s vanuit Forms • Uitlezen Tasklist • Afmelden Taak
• Introductie OWF Mime • Omleiden view en PL/SQL API’s.
18
Gebruikers Taken COVOG Taken Scherm ______________________
______________________ ______________________
Afsluiten Activiteit
BPEL
PL/SQL API: Bepaal Gebruiker
Vooraf: wrap DBOWF Adt. View: Notificaties Views/Tables Vooraf: wrap Id, subject, OWF API’s assigned_user, … PL/SQL API: Afsluiten Notificatie AQQueue
DBAdt.
AQAdt.
Bepaal Gebruiker Creëer Taak Wacht Taak Compleet
19
Block Functies • OWF wacht op extern signaal
l trefwoord vonden Nee
• Gereed melding vanuit Batch Invoer aanvraag • Afdrukken Brief electronisch? Ja
Nee Nee
Ja
Toewijzen
Blokkeren Verwijderen oude antecedenten
• PL/SQL API voor compleet melden Ja Nee Nee Nee Werkrelatie • Steekproef Steekproef Persisteren of Controleren op Status van Idem. gebruikerstaken controle doel en controle omstandigheden persoonshistorie aanvraag
handeling
Nee functie Ja
functieaspecten Ontvangen Ja
Bepaal gebruiker
Nee Antwoord voor a onderzoeJ
Wachttijd
Creeer systeemactie In behandeling
GBA Ja
bijwerken
Ja
Bepaal Opvoeren extra gebruiker bevragingen CJD Bepaal Controleren Lus gebruiker functieaspecten Loop Counter Bepaal gebruiker
Controleren doel, functie en belanghebbende Opgeschort
Termijnbe antwoord
Aanvraag toevoegen aan bestand voor bevraging CJD In behandeling
Ingele antwoorde bevat anteced J
Ontvangen
Nee
Opgeschort Opgeschort Afsluiten
Controleren volledigheid aanvraag (handmatig)
Status aanvra bijwerk In onderzoek
20
Service Aanroepen • PL/SQL Procedure Handtekening • Act ID: ID van activiteit in proces versie • Func Mode: OWF Mode van aanroep (meestal ‘RUN’)
• Item Attributes • Proces Variabelen
• Activity Atttributes • Stuur Parameters
• Exception Handling • Herdefinieren 21
Oracle Workflow Procedure Template procedure <procedure name> (itemtype in varchar2, itemkey in varchar2, actid in number, funcmode in varchar2, resultout out varchar2) is
begin if ( funcmode = 'RUN' / 'CANCEL' / 'SKIP‘/ 'RETRY' / 'VALIDATE‘/ 'RESPOND' / 'FORWARD' / 'TRANSFER' / 'QUESTION' / 'ANSWER' / 'TIMEOUT' ) then if () then resultout := 'COMPLETE'; else resultout := wf_engine.eng_timedout; end if; return; end if; exception when others then WF_CORE.CONTEXT ('<package name>', '<procedure name>', , • Logging , to_char(), ); • Set resultout raise; end <procedure name>;
procedure <procedure name> (itemtype in varchar2, Instance ID itemkey in varchar2, actid in number, Process Activity ID funcmode in varchar2, funcmode in ( 'RUN','CANCEL','SKIP','RETRY','VALIDATE‘ resultout out varchar2) is ,'RESPOND','FORWARD','TRANSFER','QUESTION','ANSWER‘ ,'TIMEOUT' )
resultout: wf_engine.complete ('COMPLETE’) , wf_engine.eng_timedout, etc. exception when others then • raise? end
22
Business Rules Ja/Nee • Veel custom code is workflow sturend: If l_monthly_payment > 25000 then l_card_type = ‘Gold’; else l_card_type = ‘Silver’; End if; resultout := 'COMPLETE:‘||l_card_type;
Business Rules?
23
Proces Model Conversie • Beoogde opvolger OWF (dd. 2006): BPEL
• OWF2BPEL whitepaper:
http://www.oracle.com/technetwork/middleware/ias/owf2bpel132189.pdf 24
Proces Model Conversie • • • • •
BPEL: Business Process Execution Language XML Hiërarchisch van opzet Technisch Niet eindgebruikers georienteerd
25
Aanvraag Natuurlijke Personen Proces opdeling 1.
3.
5.
7.
2.
6. 6.
8. 4. 10. 11. 11.
9.
11. 1. Sub Process Aap
4. Sub Process Wim
7. Sub ProcessTeun
10. Sub Process Lam
2. Sub Process Noot
5. Sub Process Zus
8. Sub Process Vuur
11. Sub Process Kees
3. Sub Process Mies
6. Sub Process Jet
9. Sub Process Gijs
26
Vragen en Antwoorden
27
Transparante conversie OWF2SOA
Pauze
28
Agenda • • •
• • •
Introductie Oracle Workflow en Forms OWF2SOA: transparante conversie
• •
Pauze Conversie Issues
Reset/Restart/Expedite Langlopende database services
BPEL of BPM?
29
Expedite (Reset/Restart)
30
Expedite (Reset/Restart) • Correctie foutieve beslissingen eindgebruikers • Ontbreekt in BPEL PM • Wel in BPM, vanaf 11.1.1.6 : alter flow
• In BPEL: maak gebruik van Process fasen.
31
Aanvraag Natuurlijke Personen Zolang niet Klaar Reset
Status Initieel
Controlleren Aanvraag
In Behandeling
Afhandelen in Behandeling
Buiten Behandeling
Afgeven Verklaring
Afhandelen Buiten Behandeling
Verklaring Afgeven
Zet Klaar
Zet Klaar
Annuleer Subproc. Update Status
Afsluiten Aanvraag 32
Sub Processen Uitvoeren Subproces Uitvoeren Proces Functionaliteit
Reset
Vuur “Afbreken Uitvoeren Subprocess” bedrijfsgebeurtenis af
Vang “Afbreken Uitvoeren Subprocess” af Wachtte Op? Notificatie Annuleer Handle Notification
Blokkade
Timer
Anders
Annuleer Handle Block
Annuleer Timer
Niets
Annuleer Systeem Acties
33
Handle Notification (Handle Block idem.) Uitvoeren Handle Notification Aanmaken Notificatie
Wacht op Resultaat Notificatie
Cancel
Vang “Annuleer Notificatie” af Zet Status Notificatie/Activiteit op “Geannulleerd”/”Afgesloten”
Vuur “Annuleer Notificatie” bedrijfsgebeur tenis af
Stuur resultaat terug
34
BPM 11g: Alter Flow
http://niallcblogs.blogspot.nl/2012/02/bpm-11g-feature-pack-alter-flow-feature.html 35
Langlopende database services • OWF zeer geschikt voor coördinatie batch processen. • Multiple Background Engines licht/zwaar • Uitdaging: brieven voor aanvragen
36
OWF en Reports Reports Server
Oracle Workflow Shared Database
OWF_MGR Back ground Engine
App_Owner Afdrukken Aanvragen
SOASuite
37
Langlopende database services • 200+ aanvragen, 1.5 min/aanvraag • Database adapter: time-out > 300 min • Alternatieven • Maak asynchroon: request/reply queues • Orchestreer in BPEL: roep 200 keer afdruk functie aan • Herimplementeer in Java/BPEL
38
Langlopende database services • Java Spring Context vanuit SCA (makkelijker dan WSIF) • Java code niet complexer dan Pl/Sql tegenhanger • Geen database roundtrip • Volledig Mid-Tier • Exception Handling direct in BPEL 39
Agenda • • •
• • •
Introductie Oracle Workflow en Forms OWF2SOA: transparante conversie
• •
Pauze Conversie Issues
Reset/Restart/Expedite Langlopende database services
BPEL of BPM?
40
BPM of BPEL? • BPEL • • • •
Beschikbaar in SOASuite11g licentie Technisch van aard Niet eind-gebruikers georiënteerd Lastig leesbaar voor functionele mensen
41
BPM 11g R1 architecture BPM Layers on top of SOA Suite
Shared BPMN Model
Web based customization
Rich End User Interaction
BPA
BPMN 2.0, BPEL
Workspace
Process Spaces (WC spaces)
MS Office
BPM Studio
Process Composer
(Business & IT views)
BPEL
BPMN
Process Core
Business Rules
Mediator
Unified Runtime
B2B
BAM
Human Workflow (+AMX, AG, Orgn)
Process Analytics Proc Cubes
Common JCA-based connectivity infrastructure Optimized binding
Repository Policy Manager
Oracle Service Bus EM console
New BPM Features
+BPMN Screens
For Oracle employees and authorized partners only. Do not distribute to third parties. © 2010 Oracle Corporation – Proprietary and Confidential
42
BPM of BPEL? • BPM • Functioneel • BPMN 2.0 • Process Composer • Process Modelling vanuit Browser • Process Analyst • Business Rules
• Toegevoegde HumanWorkflow Functionaliteit (Start Process Taak) • Vanaf 11.1.1.6 • Import OWF in BPM Studio • Alter Flow 43
Conclusie • Terugkijken • OWF2SOA: transparante conversie • Starten OWF • Eindgebruikers Notificaties/Taken • Process Blocks: externe systeem signalen • Service Aanroepen • Process Model Migratie Principes
• •
• •
Opgeloste zaken
Reset/Restart/Expedite Langlopende database services
BPEL vs. BPM
44
Conclusie
• Vooruitkijken • Mogelijk moderniseringspad • bestaande OWF/Forms applicaties • en Forms applicaties die nog geen gebruik maken van workflow • ADF-Jheadstart, .Net?
45
Conclusie
46
Vragen en Antwoorden
47