Flexible Engineering Process Automation Process: Continuous Integration & Test

Similar documents
A Platform for Service-Oriented Integration of Software Engineering Environments

Process Automation and Quality Management in Multi-Disciplinary Engineering Environments

Versioning in Cyber-Physical Production System Engineering Best-Practice and Research Agenda

Business Process Management

SOFTWARE DEVELOPMENT BASICS SED

Meister Going Beyond Maven

Continuous Integration: A case study

Genius in Salesforce.com Pre- Installation Setup

JBOSS ESB. open source community experience distilled. Beginner's Guide. Enterprise. Magesh Kumar B

Setting Up an AS4 System

What is BPM? Software tools enabling BPM

Software Development In the Cloud Cloud management and ALM

Software configuration management

Improving Video Game Development: Facilitating Heterogeneous Team Collaboration Through Flexible Software Processes

Engineering Object Change Management Process Observation in Distributed Automation Systems Projects

Practicing Continuous Delivery using Hudson. Winston Prakash Oracle Corporation

Engineering Project Management Using The Engineering Cockpit

Merak Outlook Connector User Guide

Listeners. Formats. Free Form. Formatted

Composite C1 Load Balancing - Setup Guide

WHITEPAPER. Managing Design Changes in Enterprise SBM Installations

Monitoring Infrastructure (MIS) Software Architecture Document. Version 1.1

Oracle Service Bus. Situation. Oracle Service Bus Primer. Product History and Evolution. Positioning. Usage Scenario

Oracle SOA Suite Then and Now:

vcenter Orchestrator Developer's Guide

SCUt ils SmartAssign Guide Solution for Microsoft System Center 2012 Service Manager

SharePoint Services: Using Workflows

IBM Business Process Manager Version 8 Release 5. Hiring Tutorial IBM

Cisco Process Orchestrator Adapter for Cisco UCS Manager: Automate Enterprise IT Workflows

ALERT installation setup

Creating a Simple Business Collaboration Scenario With a BPMS

MODEL DRIVEN DEVELOPMENT OF BUSINESS PROCESS MONITORING AND CONTROL SYSTEMS

Master Data Services Environment

Secrets of Event Viewer for Active Directory Security Auditing Lepide Software

2012 Nolio Ltd. All rights reserved

Continuous Integration: Put it at the heart of your development

IBM Tivoli Workload Scheduler Integration Workbench V8.6.: How to customize your automation environment by creating a custom Job Type plug-in

DRUPAL CONTINUOUS INTEGRATION. Part I - Introduction

IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules

Combining Service-Oriented Architecture and Event-Driven Architecture using an Enterprise Service Bus

Spring 2011 Conference Sandanski, May 13th 15th 2011 Oracle SOA Suite 11g Rapid service integration and process automation with a no-coding approach

Business-Driven Software Engineering Lecture 3 Foundations of Processes

Jenkins Continuous Build System. Jesse Bowes CSCI-5828 Spring 2012

Continuous Integration For Fusion Middleware

Version Control Your Jenkins Jobs with Jenkins Job Builder

SavvyDox Publishing Augmenting SharePoint and Office 365 Document Content Management Systems

YouTrack MPS case study

DirX Identity V8.4. Secure and flexible Password Management. Technical Data Sheet

Web Publisher Administration Guide

Continuous Integration

EVALUATION. WA1844 WebSphere Process Server 7.0 Programming Using WebSphere Integration COPY. Developer

DevOps Course Content

Integration of an open source rule engine to enhance the IHTSDO Workbench testing

JobScheduler Events Definition and Processing

Integration in Practice

Continuous Integration

FioranoMQ 9. High Availability Guide

Legal. Copyright 2016 Magento, Inc.; All Rights Reserved.

Oracle Service Bus Examples and Tutorials

Building and Using Web Services With JDeveloper 11g

Service Governance and Virtualization For SOA

HP SAP. Where Development, Test and Operations meet. Application Lifecycle Management

OSGi Remote Management

IBM Business Process Manager Version 8 Release 5. Hiring Tutorial

Configure SQL database mirroring

Software infrastructure for Java development projects

Continuous Integration and Bamboo. Ryan Cutter CSCI Spring Semester

Installing and Sending with DocuSign for NetSuite v2.2

GECKO Software. Introducing FACTORY SCHEMES. Adaptable software factory Patterns

INTEGRATING MICROSOFT DYNAMICS CRM WITH SIMEGO DS3

Perceptive Connector for Infor Lawson AP Invoice Automation

Security Information & Event Management A Best Practices Approach

StreamServe Persuasion SP5 Document Broker Plus

Global Software Change Management for PVCS Version Manager

Installation Logon Recording Basis. By AD Logon Name AD Logon Name(recommended) By Windows Logon Name IP Address

IKAN ALM and Collabnet TeamForge

MALAYSIAN PUBLIC SECTOR OPEN SOURCE SOFTWARE (OSS) PROGRAMME. COMPARISON REPORT ON NETWORK MONITORING SYSTEMS (Nagios and Zabbix)

Hudson Continous Integration Server. Stefan Saasen,

DEPLOYMENT GUIDE Version 1.1. Deploying the BIG-IP LTM v10 with Citrix Presentation Server 4.5

Kaldeera Workflow Designer 2010 User's Guide

Configuring a Custom Load Evaluator Use the XenApp1 virtual machine, logged on as the XenApp\administrator user for this task.

Advantage Integration Strategy Integrating for the Enterprise

DirX Identity V8.5. Secure and flexible Password Management. Technical Data Sheet

Beginners guide to continuous integration. Gilles QUERRET Riverside Software

Banner Workflow. Creating FOAPAL Requests

Part I. OpenCIT Server

IBM WebSphere Message Broker Message Monitoring, Auditing, Record and Replay. Tim Kimber WebSphere Message Broker Development IBM Hursley Park, UK

Die Mobiliar Insurance Company AG, Switzerland Adaptability and Agile Business Practices

White Paper icore Integration Suite

D5.4.4 Integrated SemaGrow Stack API components

The Workflow Management Coalition Specification Workflow Management Coalition Terminology & Glossary

Windchill PDMLink Curriculum Guide

Software Configuration Management. Context. Learning Objectives

Transcription:

Flexible Engineering Process Automation Process: Continuous Integration & Test Alexander Schatten Andreas Pieber Michael Handler Stefan Biffl Christian Doppler Laboratory SE-Flex-AS Institute of Software Technology and Interactive Systems (ISIS) Vienna University of Technology http://cdl.ifs.tuwien.ac.at Tool Mec. Tool Elec. Tool SW Tech. Interop. SCADA Analysis Workflow

Motivation Process Continuous Integration & Test Engineering Service Bus concept evaluation with real-world use cases General-purpose use case for flexible engineering: CI&T SE best-practice: continuous integration (CI) servers Continuum/Hudson Limitation: CI servers are monolithic and hard to extend or integrate into a more complex tool landscape Continuous Integration and Test (CI&T) Key part in an iterative systems development process if part of a system or engineering model gets changed, the system has to be re-built and re-tested to identify defects early and to provide fast feedback on implementation progress to the project manager and the owners of the changed system parts. -> Feasibility study with initial Engineering Service Bus prototype. Sub process Change, Test & Result Notification Technical integration of systems from several platforms. 2

Continuous Integration & Test Process for Iterative Quality Assurance Continuous Integration & Test Frequent test runs Immediate feedback on test results (e.g., daily builds) Efficient regression testing. Requirements and Specification Requirement A Test Case Generation Test Case A1 Test Case A2 Implementation and Test Case Execution Test Run during Continuous Integration... Run 1 Run 2 Run 3... ok ok ok ok ok ok ok Requirement B Test Case B1 ok ok ok Needs process automation and tool support Build system under test Test automation Analysis of test results Notification on results Requirement C Test Case B2 Test Case C1 Test Case C2 ok ok ok ok ok 3

Current state of the practice Hudson Open source software Fixed process Plugin structure for extensions But takes considerable effort to gain the necessary knowledge Continuum Open source software Fixed process Also considerable effort to adapt to specific requirements 4

Alternatives Complex point to point integration Very high maintenance effort needed Hard to exchange a tool 5

Alternatives contd. Use OpenEngSB for CI & T Use Case Easy tool exchange Process is easy to adapt and extend 6

Tool Domains provide service interfaces Subversion for example is connected via the SCM domain Maven is connected via multiple domains (build, test, deploy) In Drools rules and workflows the process engineer uses the domains and their interfaces to connect to tools Domains can be configured to forward messages to a default tool It is possible to state explicitly to which tool a message shall be sent in a rule or workflow 7

Continuous Integration Process in Business Process Modeling Notation Goal: Flexible CI&T server functionality. Continuous Integration (CI) Process 1. Build the source code, 2. Test the built source code, 3. Deploy the compiled source code 4. Send notification about result to a configured list of recipients. Event-driven process definition (BPMN) Events Process steps Decisions Outgoing events -> Decoupling of communication and tools. 8

The CI&T Process Model The CI&T process is defined with Drools Flow Process Start Action Node (execute action) Switch Node (execute action and decide further route through the process based on the result) Join Node Process End 9

The CI&T Process Model The CI&T process is defined with Drools Flow 0 1 2 0. Start collection of report information 1. Build the source code 2. Test the built source code 3. Deploy the compiled source code 4. Send notification about result to a configured list of recipients. 4 3 10

Components of the OpenEngSB in the CI & T use case 0 0. Start collection of report information 1. Build the source code 2. Test the built source code 1 2 4 3 3. Deploy the compiled source code 4. Send notification about result to a configured list of recipients. 11

Code examples Build-step code in switch node of Drools Flow graph return build.buildproject(); Sends the service request to the build domain, which informs the responsible tool (in our case Maven) Returns whether the build step was successful Based on the result of the build step it can be decided whether the test and deploy steps should be performed or the CI & T process should be stopped. 12

The Ci & T Process in Drools Flow Detailed description if(build.buildproject() == true) else else if(test.runtests() == true) boolean citfinishedsuccessfully = false; String reportid = report.collectdata(workflowinstanceid);... String status = citfinishedsuccessfully? "success" : "fail"; Report r = report.generatereport(reportid); Notification n = new Notification(); n.setmessage("cit process finished with result: "+status); n.addattachment(r); 13 notification.notify(n); if(deploy.deployproject()) { citfinishedsuccessfully = true; }

Flexible Process Extension for CI&T Process extensions Add issue ticket functionality Trac tool instance Add logging functionality Calculate project statistics over several projects. Add conditional build failure Build should fail only if a failed test was successful before. Technology-independent extension Event-driven extension Add new event listeners Tool evolution behind tool domain interface Different kinds of notification 14

Process Customization A process engineer can change the process by editing the overall workflow using the graphical drools flow editor editing what happens in each step, which means changing the code in the nodes of the workflow defining rules that react to the events triggered by the workflow and are thus more independent from the workflow configuring the tools and tool connectors configuring the tool domain 15

Process Customization by Drools Rule Example Rule to create an issue if build, test or deploy fails package org.openengsb rule createissue" when e : BuildEvent(buildSuccessful == false) or e : TestEvent(testRunSuccessful == false) or e : DeployEvent(deploySuccessful == false) then issue.createissue("cit step '" +e.getdomain() + " failed"); end If one of these three events happens and the process step was not successful create an issue. 16

Lessons learned Evidence from the prototype Successful reproduction of continuous integration process on OpenEngSB. OpenEngSB allows prototyping new variants of software engineering processes more open, flexibly, and transparent than rigid CI tools. Key benefits Tool domains simplify exchanging tool instances Flexible extension of workflow and tool instance logic Effort of integration Integration of a tool with well-documented API took 1 to 2 days Process implementation effort depends on process complexity; expect days for technical work for a sufficiently well-defined process. Limitations Added complexity to the tool environment from new middleware layer that needs configuration and administration. 17

Summary Complex software-intensive systems raise need for engineering process automation. Flexible integration of engineering tools and systems along the lifecycle is a foundation for better process automation and quality management. Even initial Engineering Service Bus (EngSB) implementations bring the foundation for Flexible (software+) engineering process prototyping Awareness in the team on relevant changes in the project environment Data collection and analysis for quality assurance. Future Work Collaboration of federated EngSBs Engineering model synchronization and defect detection across tools. Tool Mec. Tool Elec. Tool SW Tech. Interop. SCADA Test Workflow 18

19 Backup Slides

Design of Messages OpenEngSB uses XML as message format Predefined header that all message have to carry Context-ID Correlation-ID Workflow-ID [only message in workflows] Workflow Instance-ID [only message in workflows] Payload in a standardized format 20

ScmCheckInEvent Message <?xml version="1.0" encoding="utf-8"?> <list xmlns="http://org.openengsb/util/serialization" name="event" > <text name="event" >org.openengsb.drools.events.scmcheckinevent</text> <list name="superclasses" > <text name="superclass" > org.openengsb.core.model.event</text> <text name="superclass" >java.lang.object</text> </list> <text name="name" >scmcheckinevent</text> <text name="domain" >scm</text> </list> 21

Message Flow during the CI&T Process 0 1 2 3 4 22 0. Start collection of report information 1. Build the source code 2. Test the built source code 3. Deploy the compiled source code 4. Send notification about result to a configured list of recipients.