(ats3-dev04) introduction to pipeline pilot protocol development for developers

18
(ATS03-DEV04) Introduction to Pipeline Pilot Protocol Development for Software Developers Mike Peeler Senior Director, R&D [email protected]

Upload: accelrys

Post on 11-Jan-2015

779 views

Category:

Technology


1 download

DESCRIPTION

An overview of techniques for building Pipeline Pilot protocols, using the languages and paradigms familiar to software developers. Sound engineering principles should be applied to the development of protocols, so this session will discuss concepts like modularity and re-use, minimizing side effects, clarity of interfaces, multi-threading, version control. We will also cover the data pipelining architecture of Pipeline Pilot and how that affects the approach to protocol authoring.

TRANSCRIPT

Page 1: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

(ATS03-DEV04) Introduction to Pipeline Pilot Protocol Development for Software

DevelopersMike Peeler

Senior Director, R&[email protected]

Page 2: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

The information on the roadmap and future software development efforts are intended to outline general product direction and should not be relied on in making a purchasing decision.

Page 3: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

Agenda

• An analysis of Pipeline Pilot development from the perspective of an experienced software writer.

• Tools and information for Developers of Pipeline Pilot Protocols and Components– Design

• Data records and flow• Global data• Subprotocols of various flavors

– Debugging– Protocol Comparison

Page 4: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

Pipeline Pilot Overview

• Component-based development– Reuse-based approach to defining, implementing and composing loosely coupled independent

components into systems

• Flow-based programming– Networks of "black box" processes, which exchange data across predefined connections by message passing– Connections defined external to the processes

• Fill• Fill• Fill• Polymorphism/Abstraction/Consistency

– Interface vs. Implementation– Components– Data Records

• Data Models– Data Records– Global Data

Page 5: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

Data Records and Global Data

Root

A

B B

A

B

• Unit of data passed between components• Hierarchical Node Structure

– Each node has a property list of Name-Value pairs• Values are typed and are generally converted as needed

– Node types: Generic, Molecule, Image, etc.– DOM-like: can be queried

Page 6: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

Subprotocols

• Encapsulation• A component whose implementation consists of other components • Why use them?

– Hide visual clutter, improve organization, control data flow (inline)– Re-use, to avoid duplication, easier management

• A component linked/shared from multiple protocols (shortcut)• A component shared within a single protocol (local shortcut)

Page 7: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

Subprotocols

• Encapsulation• A component whose implementation consists of other components • Why use them?

– Hide visual clutter, improve organization, control data flow (inline)– Re-use, to avoid duplication, easier management

• A component linked/shared from multiple protocols (shortcut)• A component shared within a single protocol (local shortcut)

• Life cycle– Initialize– Process *– Terminate.

• Standard component pattern (ATS3-DEV05)

Initialize

Finalize

Process Data

Page 8: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

Global Data

• Data that exists outside of the data flow• Hierarchical structure

– Platform settings– Application package settings– Protocol/subprotocol parameters– “Ad hoc” settings in protocol logic

• Global data generally read-only, if not created by protocol• Global Data Tree Viewer – Demo: Viewing Globals• Accessed in pilotscript, or as substitution tokens in parameters

onWindows := rmatch(@ServerOS, 'windows', 'i') ? true : false;

$(RecordCounter)

Page 9: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

Global Data and Subprotocol Scoping

• Global data properties can be scoped at each subprotocol level– A subprotocol parameter becomes a global property, scoped to

just that subprotocol and its descendent subprotocols– Other global properties can be listed in the DeclareLocal

parameter on each subprotocol• Prevents pollution of global name space

• Be aware of “Protocol-scoped” globals – eg @’::username’• Demo : Global Danger

Page 10: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

Run to Completion (RTC) subprotocols

• Iterative function• Performs the defined operation from initialization through

termination– For each data record– For a categorized group of data records

• Components within the subprotocol are fully reinitialized for each processing unit– Includes global token re-evaluation

• Demo: “Run To Completion For Each Category” Example

Page 11: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

Parallel subprotocols

• Multiple threads/processes defined for subprotocol execution• Facilitates leverage of:

– Multi processors/cores– Grids and clusters– Loosely associated servers– Cross platform needs

• Batch tuning, performance considerations• Parallel Processing Demo• Debugging (Shift-F5)• See ATS3-PLAT08 on Optimizing Protocol Performance

Page 12: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

Debugging

• Data Record Tree Viewer• Script debugger (shift-F5)

– DebugMessage– Port debugging– Demo: Debug Messages

• Check points– Design mode– Demo

• Notepad viewer• F9 to see data properties flowing into component

Page 13: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

Protocol Comparison

• Side by side comparison of protocols• Designed for comparing protocols of the same provenance,

ideally different versions of the same protocol• Integration with 3rd party tools for text diffs e.g. scripts

Page 14: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

Versioning and Locking

• Versions created automatically• Management via Explorer tab• Server-level purging via Admin portal• Locking

– “Make Private Version”– Work on private version(s), test in place, then publish.– cf Checkout and Commit

Page 15: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

Protocols as web services

• Covered in day 2 in ATS3-DEV07• Inputs and Outputs• Automated form generation• SOAP and REST services• File results as URLs• During development, results in Pro client Jobs tab

Page 16: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

Testing and Deployment

• Regression test framework• Packaging creation and deployment• Covered in session ATS3-PLAT03

Page 17: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

Summary

• What we learned– Basic concepts in protocol design and flow– Making use of subprotocols to extend the component

collections and control flow– Approaches to debugging– Protocol comparison to help protocol development/debugging– Versioning and locking to manage multi-user development

Page 18: (ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers

The information on the roadmap and future software development efforts are intended to outline general product direction and should not be relied on in making a purchasing decision.

For more information on the Accelrys Tech Summits and other IT & Developer information, please visit:https://community.accelrys.com/groups/it-dev