IBM T.J. Watson Research Center Automating the Provisioning of Application Services with the BPEL4WS Workflow Language Alexander Keller IBM T.J. Watson Research Center Remi Badonnel LORIA-INRIA Lorraine 11/15/2004 | IFIP/IEEE Workshop on Distributed Systems: Operations & Management | Davis, CA, USA © 2004 IBM Corporation IBM T.J. Watson Research Center Problem Statement ITIL Change Management Process increasingly widely adopted Provisioning addresses the technical side of Change Management ¾ Comprises deployment, installation, configuration management tasks CHAMPS* Change Management System generates provisioning workflows ¾ from dependency descriptions, SLAs ¾ with a significant degree of concurrent execution ¾ In a general-purpose workflow language (BPEL4WS) ? HOWEVER Today’s Provisioning Systems ¾ use proprietary scripting/workflow languages ¾ do not leverage the full potential of general-purpose workflow languages • concurrent task execution, links, branching and loop constructs ¾ make it hard to extend the set of workflows dynamically ¾ are not well integrated into the Change Management Process * Keller et al., The CHAMPS System, Proceedings of NOMS 2004 2 Provisioning with BPEL4WS IFIP/IEEE DSOM 2004 11/15/2004 © 2004 IBM Corporation IBM T.J. Watson Research Center CHAMPS Conceptual Architecture Approach: Integrate general-purpose Workflow Engine with Provisioning System Bill of Materials: CHAMPS Change Manager ¾Input: Dependency Models (static & runtime) ¾Output: Schedule, expressed as Workflow ¾Task & Target & Time (& precedence constraints) Off-The-Shelf Provisioning System ¾Tivoli Intelligent Orchestrator ¾Exposes Package repository Change Manager Change Plan Workflow Status Provisioning General-purpose System Workflow Engine Provisioning Operations its operations as Web Services Status Data Deployment Engine each Resource Type has own .wsdl file ¾Scripts/workflows implement these operations General-purpose Workflow Engine ¾Able to interpret workflows in BPEL4WS ¾BPEL Invoke statements refer to operations exposed by Provisioning system ¾Keeps 3 Installation Configuration Targets track of operation execution status Provisioning with BPEL4WS IFIP/IEEE DSOM 2004 11/15/2004 © 2004 IBM Corporation IBM T.J. Watson Research Center Details on CHAMPS/TIO Integration CHAMPS BPEL Change Plan Workflow Status Change Manager BPEL Workflow Engine (BPWS4J) BPEL Change Plan Software.install (IHS.Linux.v2.0, 9.2.9.63) RequestID = 10021 Request.getStatus (10021) Status = in progress WSDL Interfaces Tivoli Intelligent Orchestrator Deployment Engine Tivoli Intell. Orchestrator Database Installation Targets 4 Automated Provisioning with BPEL4WS IFIP/IEEE DSOM 2004 11/15/2004 © 2004 IBM Corporation IBM T.J. Watson Research Center 2 Views on the Provisioning Process BPWS4J Engine ¾Logs the Activities in the Change Plan on a per-Sequence Basis ¾Order: CHAMPS BPEL Change Plan Change Manager BPWS4J Workflow Engine Top to Bottom Tivoli Int. Orchestrator BPEL Change Plan ¾Displays the Sequence of TIO Workflows ¾Order: Workflow Status Bottom to Top Software.install (IHS.Linux.v2.0, 9.2.9.63) RequestID = 10021 Request.getStatus (10021) Status = in progress WSDL Interfaces Tivoli Intelligent Orchestrator Deployment Engine Installation Targets 5 Provisioning with BPEL4WS IFIP/IEEE DSOM 2004 11/15/2004 © 2004 IBM Corporation IBM T.J. Watson Research Center Demo: Concurrent Provisioning of 2 Websites with BPEL Start: IHS.Linux.V20.tar ¾2 Linux Systems without http Server ¾1 IHS 2.0 Package; 2 zip-Files w/ Web Content ¾1 Change Plan for provisioning them WSLA.zip BPEL Change Plan Load the BPEL Change Plan in BPWS4J: ¾Sequences/Flows ¾Partner DSOM2003.zip of Actions Identifications Execute the BPEL Change Plan ¾Done by BPWS4J Engine ¾Trigger TIO Logical Operations ¾Monitor Execution Status: From BPWS4J From TIO ¾When 1 Task completes, start next Result: ¾2 different Websites serving different Web Content 6 Provisioning with BPEL4WS IFIP/IEEE DSOM 2004 11/15/2004 © 2004 IBM Corporation IBM T.J. Watson Research Center WSDL Invoke-by-Name Wrappers for TIO WSDL interfaces allow us to access functions of TIO as Web Services. We created 3 WSDL interfaces that wrap the TIO Web Services: ¾ ¾ To invoke logical operations using real parameters (not TIO IDs) and get back a requestID. Extract SoftwareName and Target IP address from execution request Map SoftwareName and Target IP address to the corresponding TIO IDs Invoke the “real” TIO SoftwareComponentService To check the status of an operation execution from a requestID. WSDL Interface SoftwareComponent install (SoftName,IP): requestID uninstall (SoftName,IP): requestID start (SoftName,IP): requestID … WSDL Interface FileRepositoryComponent getFile (SoftName,IP): requestID putFile (SoftName,IP): requestID removeFile (SoftName,IP): requestID … 7 Provisioning with BPEL4WS IFIP/IEEE DSOM 2004 WSDL Interface RequestComponent getStatus (RequestID): status getStartTime (RequestID): startTime 11/15/2004 © 2004 IBM Corporation IBM T.J. Watson Research Center Concurrent Invocation of Provisioning Operations Executing flows Flow Sequence 1 Target System Cuda Sequence 2 Target System Charger 8 Provisioning with BPEL4WS IFIP/IEEE DSOM 2004 11/15/2004 © 2004 IBM Corporation IBM T.J. Watson Research Center Monitoring Task Execution Status in the Change Plan Operation Invocation Operation Status Checking WSDL interface SoftwareComponent 9 Provisioning with BPEL4WS IFIP/IEEE DSOM 2004 WSDL interface RequestComponent 11/15/2004 © 2004 IBM Corporation IBM T.J. Watson Research Center Enforcing Deadlines and Durations Change Management Operation Scope Event Handler for Scope Corrective Operation Duration or Deadline Specification 10 Provisioning with BPEL4WS IFIP/IEEE DSOM 2004 Send Alarm to the CHAMPS Change Manager 11/15/2004 © 2004 IBM Corporation IBM T.J. Watson Research Center Status, Lessons learned & Outlook Workflow-driven Provisioning with general-purpose Workflow Engine ¾ Integration of Change Manager & COTS Provisioning System ¾ Dynamically extends Provisioning system Capabilities without modifying its code ¾ Makes it understand general-purpose BPEL4WS workflow language BPEL4WS is a viable approach to express Change Management Workflows ¾ Concurrent execution, Deadlines, Links across different workflows ¾ Open Standard (OASIS WSBPEL Technical Committee) ¾ Change Plans can be created/modified with general-purpose Workflow Editors ¾ Workflow Engine can be used as pluggable Component in Provisioning Systems Current Work Items Replace the polling based approach for status retrieval with Subscriptions More complex scenario: SPECjAppServer2004 + its Middleware Stack Quantitative Analysis of Automation Benefits – at IM 2005(?) 11 ¾ Reduction of configuration complexity ¾ Speedup of provisioning task execution Provisioning with BPEL4WS IFIP/IEEE DSOM 2004 11/15/2004 © 2004 IBM Corporation