Windows Workflow Foundation (WF) Folyamatközpontú fejlesztés Mircrosoft technológiáva Bátyai Krisztián MCT,MCPD,MCTS 3.5 NetAcademia Oktatóközpont October 26, 2008
2 Tartalom Bevezető Windows Workflow Foundation – Elvárások/Alapproblémák/Szemlélet – Architektúra – Workflow modellek Szekvenciális (Sequential) Állapotgép (State-machine) – Építőkockák (Activity-k) – Hosztolás – Perzisztencia – Kommunikáció: Workflow Services = WF+WCF – Szabályok ( Rules Engine) – Monitorozás Összefoglaló – WF vs „eddigi szemlélet” – Amiről nem esett szó
3 Kereskedelmi rendszer…
4 Tartalom Bevezető Windows Workflow Foundation – Elvárások/Alapproblémák/Szemlélet – Architektúra – Workflow modellek Szekvenciális (Sequential) Állapotgép (State-machine) – Építőkockák (Activity-k) – Hosztolás – Perzisztencia – Kommunikáció: Workflow Services = WF+WCF – Szabályok ( Rules Engine) – Monitorozás Összefoglaló – WF vs „eddigi szemlélet” – Amiről nem esett szó
5 Elvárások/alap-problémák Folyamatok Szabályok Kommunikáció Hosszú életciklus Rugalmasság Átláthatóság
6 Tartalom Bevezető Windows Workflow Foundation – Elvárások/Alapproblémák/Szemlélet – Architektúra – Workflow modellek Szekvenciális (Sequential) Állapotgép (State-machine) – Építőkockák (Activity-k) – Hosztolás – Perzisztencia – Kommunikáció: Workflow Services = WF+WCF – Szabályok ( Rules Engine) – Monitorozás Összefoglaló – WF vs „eddigi szemlélet” – Amiről nem esett szó
7 Architektúra 7
Fordítási folyamat 8
9 Definíció vs. Példány
DEMO „Hello World from Workflow!!!” alkalmazás készítése
„Pizza rendszer” architektúra
DEMO Pizza alkalmazás bemutása
13 Tartalom Bevezető Windows Workflow Foundation – Elvárások/Alapproblémák/Szemlélet – Architektúra – Workflow modellek Szekvenciális (Sequential) Állapotgép (State-machine) – Építőkockák (Activity-k) – Hosztolás – Perzisztencia – Kommunikáció: Workflow Services = WF+WCF – Szabályok ( Rules Engine) – Monitorozás Összefoglaló – WF vs „eddigi szemlélet” – Amiről nem esett szó
14 Workflow modellek
15 Tartalom Bevezető Windows Workflow Foundation – Elvárások/Alapproblémák/Szemlélet – Architektúra – Workflow modellek Szekvenciális (Sequential) Állapotgép (State-machine) – Építőkockák (Activity-k) – Hosztolás – Perzisztencia – Kommunikáció: Workflow Services = WF+WCF – Szabályok ( Rules Engine) – Monitorozás Összefoglaló – WF vs „eddigi szemlélet” – Amiről nem esett szó
16 Építőkockák – Activity-k Elemi építőkocka – Az alkalmazáslogika egy lépésének modellje A végrehajtás egysége Az újrafelhasználás egysége Általános vagy szakterület specifikus Szevenciális – IfElse activity – While activity – Parellel activity – Throw activity – Listen activity – … Állapotgép – State – SetState – StateInitialization/StateFinalization WF 3.5 – Send – Receive
DEMO Activity demo
18 Tartalom Bevezető Windows Workflow Foundation – Elvárások/Alapproblémák/Szemlélet – Architektúra – Workflow modellek Szekvenciális (Sequential) Állapotgép (State-machine) – Építőkockák (Activity-k) – Hosztolás – Perzisztencia – Kommunikáció: Workflow Services = WF+WCF – Szabályok ( Rules Engine) – Monitorozás Összefoglaló – WF vs „eddigi szemlélet” – Amiről nem esett szó
19 Hosztolás EXE – manuális – App.config Service – szolgáltatásként IIS
DEMO Hosztolás
21 Tartalom Bevezető Windows Workflow Foundation – Elvárások/Alapproblémák/Szemlélet – Architektúra – Workflow modellek Szekvenciális (Sequential) Állapotgép (State-machine) – Építőkockák (Activity-k) – Hosztolás – Perzisztencia – Kommunikáció: Workflow Services = WF+WCF – Szabályok ( Rules Engine) – Monitorozás Összefoglaló – WF vs „eddigi szemlélet” – Amiről nem esett szó
22 Perzisztencia Futó workflow példány tartós tárolása Miért? Mikor? – Idle eseménykor, [PersistOnClose] – Automatikusan (Service.UnloadOnIdle=true) – Manuálisan (Unload() ) Hogyan? – Szerializáció Hova? – Service – WorkflowPersistenceService absztrakt osztály GetAllWorkflows(); protected internal override Activity LoadWorkflowInstanceState(Guid id); protected internal override void SaveWorkflowInstanceState(Activity rootActivity, bool unlock); …
23 SqlWorkflowPersistenceService Sorosítás Tömörítés SQL 2000, 2005, 2008 Előkészítés: – Schema script – Logic script Pollozás
DEMO SqlWorkflowPersistenceService
25 Tartalom Bevezető Windows Workflow Foundation – Elvárások/Alapproblémák/Szemlélet – Architektúra – Workflow modellek Szekvenciális (Sequential) Állapotgép (State-machine) – Építőkockák (Activity-k) – Hosztolás – Perzisztencia – Kommunikáció – Szabályok ( Rules Engine) – Monitorozás Összefoglaló – WF vs „eddigi szemlélet” – Amiről nem esett szó
26 Kommunikáció WF HOST – Queue Alacsony szintű megvalósítás WorkflowQueuingService – ExternalDateExchange service Kapcsolat : – WorkflowEnvironment.WorkflowInstanceId – ExternalDataEventArgs.InstanceId Wca.exe WF Külvilág – WF + WCF
ExternalDataExchangeService 27
DEMO Kommunikáció
29 WF+WCF NET 3.0-ban – Külön WF és WCF (csak ASMX támogatás a WF-ben).NET VS2008 újdonság – „Workflow enabled services” Workflow publikál webszolgáltatást Szolgáltatás megvalósítható workflowként ReceiveActivity (+WorkflowServiceHost) – „Service enabled workflows” Workflowból hívhatunk webszolgáltatást SendActivity Tartós állapotú szolgáltatás Nincs szükség ExternalDateExchange-re A „teljes” WCF architektúra minden ficsörével rendelkezésre áll!! (WCF modell, security, hosting, duplex kommunikáció…)
Szolgáltatás Receive Kliens Send op x response {instanceId} op x params op y params {instanceId} op y response Context tároló op y params {instanceId} op y response {instanceId} Context Exchange Protocol
DEMO Workflow Services = WF+WCF
32 Tartalom Bevezető Windows Workflow Foundation – Elvárások/Alapproblémák/Szemlélet – Architektúra – Workflow modellek Szekvenciális (Sequential) Állapotgép (State-machine) – Építőkockák (Activity-k) – Hosztolás – Perzisztencia – Kommunikáció: Workflow Services = WF+WCF – Szabályok ( Rules Engine) – Monitorozás Összefoglaló – WF vs „eddigi szemlélet” – Amiről nem esett szó
33 Rules Engine
34 Rules engine
DEMO Rules Engine
36 Tartalom Bevezető Windows Workflow Foundation – Elvárások/Alapproblémák/Szemlélet – Architektúra – Workflow modellek Szekvenciális (Sequential) Állapotgép (State-machine) – Építőkockák (Activity-k) – Hosztolás – Perzisztencia – Kommunikáció: Workflow Services = WF+WCF – Szabályok ( Rules Engine) – Monitorozás Összefoglaló – WF vs „eddigi szemlélet” – Amiről nem esett szó
37 Tracking/Monitoring TrackingService – Activity.TrackData() – Profil határozza meg, mit kell naplózni SqlTrackingService – Megőrzi a korábbi példányokat is Tárolja a workflow definíciót is, verziózva Particionálható – Események WorkflowEvents ActivityEvents UserEvents
DEMO Tracking
39 Tartalom Bevezető Windows Workflow Foundation – Elvárások/Alapproblémák/Szemlélet – Architektúra – Workflow modellek Szekvenciális (Sequential) Állapotgép (State-machine) – Építőkockák (Activity-k) – Hosztolás – Perzisztencia – Kommunikáció: Workflow Services = WF+WCF – Szabályok ( Rules Engine) – Monitorozás Összefoglaló – WF vs „eddigi szemlélet” – Amiről nem esett szó
40 Összefoglalás A WF-t használva… …előbb lesz kész az alkalmazásunk? …kevesebb kódot kell írnunk? …egyszerűbb lesz az architektúra? …átláthatóbb lesz az architektúra? …átláthatóbb lesz az alkalmazás logika? …egyszerűbb lesz módosítani a logikát? Megéri?
41 Amiről nem esett szó… Mi van a háttérben?!? Tranzakciók Kompenzáció Ütemezés ( Scheduler service) Dinamikus Workflow – Workflow módosítás – Rules Engine módosítás – Compile Designer hosztolás – Workflow – Rules Engine – Validáció Performancia Azure
42 Test Average # of WF Completed per Second Average % Total CPU (Workflow) Empty Workflow Single CodeActivity Workflow HandleExternalEventActivity Workflow CallExternalMethodActivity Workflow Web Service Publication Workflow Web Service Consumption Workflow ReplicatorActivity Workflow ConditionedActivityGroup Workflow Dynamic Update Workflow While activity with 1000 iterations Code activity of while loop with 1000 iterations PolicyActivity Workflow TransactionalScopeActivity Workflow StateMachine Workflow Sequential Workflow with five CodeActivity activities Sequential Workflow simulating a StateMachine Workflow Compensation Workflow Performancia Forrás :
Sub Product Logos For Use