Workflow API and workflow services A case study of biodiversity analysis using Windows Workflow Foundation Boris Milašinović Faculty of Electrical Engineering.

Slides:



Advertisements
Similar presentations
A Workflow Engine with Multi-Level Parallelism Supports Qifeng Huang and Yan Huang School of Computer Science Cardiff University
Advertisements

Designing, Deploying and Managing Workflow in SharePoint Sites Steve Heaney Product Development Manager OBS
Usage of the memoQ web service API by LSP – a case study
Business logic for annotation workflow Tom Oldfield July 21, 2010.
Describing Process Specifications and Structured Decisions Systems Analysis and Design, 7e Kendall & Kendall 9 © 2008 Pearson Prentice Hall.
Programming Logic and Design Fourth Edition, Introductory
IVANA NIŽETIĆ Faculty of Electrical Engineering and Computing, University of Zagreb, Croatia Long-lasting teaching materials in spite of changing technology.
Business Process Modeling in Microsoft Visio® Interfacing’s BPMN Modeler: Overview.
BORIS MILAŠINOVIĆ FACULTY OF ELECTRICAL ENGINEERING AND COMPUTING UNIVERSITY OF ZAGREB, CROATIA Experiences after three years of teaching “Development.
February 12, 2009 Center for Hybrid and Embedded Software Systems Model Transformation Using ERG Controller Thomas H. Feng.
Geography 465 Overview Geoprocessing in ArcGIS. MODELING Geoprocessing as modeling.
Software Testing. “Software and Cathedrals are much the same: First we build them, then we pray!!!” -Sam Redwine, Jr.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Connecting Diverse Web Search Facilities Udi Manber, Peter Bigot Department of Computer Science University of Arizona Aida Gikouria - M471 University of.
Slide 1 of 9 Presenting 24x7 Scheduler The art of computer automation Press PageDown key or click to advance.
Enterprise Workflow CPSC 476 Lightening Talk Brenda Griffith/Katie Soto.
Using Microsoft SharePoint to Develop Workflow and Business Process Automation Ted Perrotte National Practice Manager, Quilogy, Microsoft Office SharePoint.
Workflows in SharePoint Brian Russo RJB Technical Consulting July 2009.
TIBCO Designer TIBCO BusinessWorks is a scalable, extensible, and easy to use integration platform that allows you to develop, deploy, and run integration.
Process-oriented System Automation Executable Process Modeling & Process Automation.
Students: Nadia Goshmir, Yulia Koretsky Supervisor: Shai Rozenrauch Industrial Project Advanced Tool for Automatic Testing Final Presentation.
CASE Tools And Their Effect On Software Quality Peter Geddis – pxg07u.
IBM Proof of Technology Discovering the Value of SOA with WebSphere Process Integration © 2005 IBM Corporation SOA on your terms and our expertise WebSphere.
Wrestling with Windows Workflow Foundation Simon Thurman Jeremy Stimson.
ArcGIS Workflow Manager An Introduction
Christopher Jeffers August 2012
Extending the Discovery Environment: Tool Integration and Customization.
Developing Workflows with SharePoint Designer David Coe Application Development Consultant Microsoft Corporation.
Designing For Testability. Incorporate design features that facilitate testing Include features to: –Support test automation at all levels (unit, integration,
Enabling Workflow in UPnP Networks Andreas BobekUniversity of Rostock Faculty of Computer Science and Electrical Engineering Andreas Bobek, Hendrik Bohn,
.NET Library Objects So far we have looked at the following objects in learning about ASP.NET: Controls Used to control the screen / interface and gather.
CONTENTS Arrival Characters Definition Merits Chararterstics Workflows Wfms Workflow engine Workflows levels & categories.
Introduction of Geoprocessing Topic 7a 4/10/2007.
A performance evaluation approach openModeller: A Framework for species distribution Modelling.
Interfaces to External EDA Tools Debussy Denali SWIFT™ Course 12.
Oracle Data Integrator Procedures, Advanced Workflows.
Functions, Procedures, and Abstraction Dr. José M. Reyes Álamo.
MD – Object Model Domain eSales Checker Presentation Régis Elling 26 th October 2005.
Software Construction Lecture 18 Software Testing.
Office Business Applications Workshop Defining Business Process and Workflows.
Object Oriented Software Development
I Power Higher Computing Software Development Development Languages and Environments.
1 Software Reliability Analysis Tools Joel Henry, Ph.D. University of Montana.
Sep 13, 2006 Scientific Computing 1 Managing Scientific Computing Projects Erik Deumens QTP and HPC Center.
August 2003 At A Glance The IRC is a platform independent, extensible, and adaptive framework that provides robust, interactive, and distributed control.
Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia 15th Workshop on "Software Engineering Education and Reverse.
Slide 1. Agenda  Introduction to Windows Workflow What is it? What are activities? Hosting  Out of the box Activities  Custom Activities and Dependency.
Object Oriented Programming Criteria: P2 Date: 07/10/15 Name: Thomas Jazwinski.
SPI NIGHTLIES Alex Hodgkins. SPI nightlies  Build and test various software projects each night  Provide a nightlies summary page that displays all.
The Development Process Compilation. Compilation - Dr. Craig A. Struble 2 Programming Process Problem Solving Phase We will spend significant time on.
Introduction of Geoprocessing Lecture 9 3/24/2008.
Compilation of XSLT into Dataflow Graphs for Web Service Composition Peter Kelly Paul Coddington Andrew Wendelborn.
Interstage BPM v11.2 1Copyright © 2010 FUJITSU LIMITED BUSINESS PROCESS MANAGEMENT CONCEPTS.
Active-HDL Server Farm Course 11. All materials updated on: September 30, 2004 Outline 1.Introduction 2.Advantages 3.Requirements 4.Installation 5.Architecture.
Windows Workflow Foundation Guy Burstein Senior Consultant Advantech – Microsoft Division
WI2003 Automatic Composition of Web Service Workflows Using a Semantic Agent Jarmo Korhonen Helsinki University of Technology 15 October 2003.
 Cloud Computing technology basics Platform Evolution Advantages  Microsoft Windows Azure technology basics Windows Azure – A Lap around the platform.
Worklist Manager Service Engine (WLMSE)
SQL Database Management
MASS Java Documentation, Verification, and Testing
Software Testing.
Types for Programs and Proofs
Modern Systems Analysis and Design Third Edition
PYTHON: AN INTRODUCTION
Deploying and Configuring SSIS Packages
Functions, Procedures, and Abstraction
CIS16 Application Development – Programming with Visual Basic
Building event-driven, long-running apps with Windows workflow
Functions, Procedures, and Abstraction
Presentation transcript:

Workflow API and workflow services A case study of biodiversity analysis using Windows Workflow Foundation Boris Milašinović Faculty of Electrical Engineering and Computing University of Zagreb, Croatia Software Engineering: Computer Science Education and Research Cooperation 13th Workshop, Bansko, Bulgaria, August 25 –September 1, 2013

What is workflow? 0 The automation of a business process, in whole or part, during which documents, information or tasks are passed from one participant to another for action, according to a set of procedural rules. 0 [Workflow Management Coalition, Terminology & Glossary, Document Number WFMC-TC-1011] 0 Why workflow? 0 Not (only) coding activities but orchestrating them and gluing together 0 Usually people associate workflows with 0 big automated systems 0 various document management systems with many users 0 various BPM tools 0 But… nothing of that in this case study

Case study context - simplified description 0 Input: 0 geocoded findings of floristic species filtered according to various (and in future expandable) filters 0 an ESRI GIS layer: shape file with polygons and dbf file with additional information (attributes) for each polygon 0 Calculation: 0 Determine which findings belong to which polygon 0 Calculate biodiversity and ecological niche for a polygon and/or set of polygons having same attribute value 0 Output: 0 Create new dbf file extended with calculated data 0 Create result matrices (ecological niche, biodiversity data, taxa data, additional data...)

Biodiversity and ecological niche analysis 0 Ecological niche analysis 0 Species distribution - find in how many polygons (of the same GIS attribute) a species is present 0 Biodiversity analysis 0 α – diversity: number of different species in an area 0 Research intensity: Number of findings of each finding source per spatial unit (single polygon and/or GIS attribute consisting of multiple polygons) 0 Categories data 0 F(p, V) = N where V is one of possible values in a category (e.g. an ecological index) => N species in polygon p have value V

Why Workflow? 0 Visualizing the code 0 Frequent changes of order during development 0 Especially hard when parts of code are run in parallel => drag & drop 0 Result set depends on user’s permission and input criteria 0 many (hard to read) if-else/switch parts of code => flowchart 0 Logging, benchmarking, robustness 0 Try-catch blocks with stopwatch/log code before and after => composite activities 0 Continuation depends on an activity success/failure 0 Activities with many input and output arguments 0 using C# out/ref for parameters? 0 many new classes used only once? 0 Layering application

Why Windows Workflow Foundation? 0 Choosing one (from too many others) that easily plugs into environment and existing code 0 Windows Workflow Foundation (WF) 0 workflow engine and API integrated in.NET 0 differs from BPM tools as it is not intended for automatic form design 0 main purpose is control flow: sequential workflows, flowcharts and state machines 0 easily used from an application or exposed as a web service 0 workflow stored in xaml file (except code of custom activities) and designed inside Visual Studio

An excerpt from the workflow (1)

An excerpt from the workflow (2)

Workflow Activities 0 built in activities 0 custom ones 0 simple sequential activities (extending CodeActivity) 0 long running activities (AsyncCodeActivity) 0 complex activities (NativeActivity) - e.g. composite activities 0 combination of existing ones (mini-workflow) 0 each activitiy have Input/Output arguments 0 workflow has own variables

What have been done 0 Core GIS calculation extracted to separate library referenced by the workflow project 0 Workflow project contains 0 Composite activity for logging and benchmarking + try/catch rather simple custom activities ( lines of code) 0 A few custom activities designed as mini workflows consisting of built-in activities and custom ones 0 2 main workflows: 0 EcologicalNiche.xaml 0 BioDiversityWorkflow.xaml 0 Used in a separate workflow (web) service project 0 can be used from an application if needed

Exposing workflow as a web service 0 Precisely WCF service so does not need to be HTTP(S) protocol 0 WCF service contract shared or WSDL can be generated 0 PickActivity with many branches 0 Branches wait for invocation of a method from WCF service 0 start new instance or continues an existing one 0 common (initial) code before PickActivity executed every time new instance is created 0 Trigger – Action pattern 0 Trigger: receive and send response 0 Action: run after response …

Problems 0 Not so easy to learn WF and some initial effort is needed to become familiar with the tool 0 Demanding GUI (relatively fast computer needed) 0 Rectangular design, quite large and wide, not printable 0 Declarative code 0 Error in xaml can cause visual design to fail 0 Error descriptions and debugging not so clear like in „normal” code 0 Dependency graph not correct if project referenced only in xaml 0 Refactoring is painful 0 changing activity name, namespace or parameter name does not make changes in xaml file 0 Removing a parameter from a custom activity does not update xaml file – changes have to be done manually in xaml file

Conclusion 0 WF (or similar workflow engine) is very useful 0 Visualize a process 0 Helps layering application 0 Offers easy use from an application or advanced scenarios with web services 0 Enables flowchart design 0 Ease changing order of a execution (drag & drop and visual design) 0 Activities are well defined with input/output parameters and easy to test 0 … but still have some teething troubles 0 …but (in personal opinion) have bright future