(ATS3-DEV04) Introduction to Pipeline Pilot Protocol Development for Developers
-
Upload
accelrys -
Category
Technology
-
view
779 -
download
1
description
Transcript of (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]
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.
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
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
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
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)
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
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)
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
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
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
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
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
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
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
Testing and Deployment
• Regression test framework• Packaging creation and deployment• Covered in session ATS3-PLAT03
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
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