(ats3-dev05) coding up pipeline pilot components
DESCRIPTION
Can’t find the component you want? Or maybe you want to develop a new package of functionality for distribution to your co-workers or to the larger community. There are multiple approaches to new component creation, including the use of scripts and compiled languages.This session is an overview of the use of the server-side SDK and tools for software developers. In addition to the language-specific APIs like Java and .NET for component development, coverage will include the component model, unit testing, and package deployment.TRANSCRIPT
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
• Component intro• Why code a new component?• Component model• Component categories• Component APIs
Pipeline Pilot Integration Points
DBs
Pipeline Pilot Enterprise Server
Protocol Runtime Environment
VB Script (On
Client)
Run Program Java Perl Python
VB Script (On
Server)
Admin Portal Help PortalWeb Apps Web Services API
.NET SOAP & HTTP
Telnet / FTP SSH / SCP ODBC /
JDBC
VB Script Cmd Line Java Classes
Perl Scripts
.NET Classes
RESTService
SOAP Service Cmd Line
Server IntegrationExtend pipelines with new components that integrate your code, data and services.
Professional Client
Run Protocol Command Line
Client
Web Browser
Web Port
JavaScript Client SDK
JavaScript Client
.NET Client SDK
.NET Client
Java Client SDK
Java ClientSOAP Client
Client IntegrationBuild clients that connect to Pipeline Pilot and run protocol services.
HTTP Client
What is a component?
• A Pipeline Pilot component is a unit of useful functionality that can be built into a Pipeline Pilot protocol.
• Re-usability is the key for level of granularity.
More about components
• A component is displayed with a representational icon and any combination of the 3 standard ports.
• It has zero, one or more parameters, organized for usability, whose settings are used to modify run time behavior.
• A component and its parameters are self documenting.
Why ‘code’ a new component?
• First see if a non-coding approach will work– Specialization– PilotScript– Subprotocols
• Scripting languages– Perl, Python, VBScript, Dynamic Java + Dynamic .NET– R, as a more custom example
• Compiled– Java– .NET
• Integration Driver
Component model (State Machine)
Protocol event triggers:• onInitialize(context)• onProcess (context, data)• onFinalize (context)
onInitializeProtocolFiresEvents
onProcess
onFinalize
I
P
F
CS
CS
Data Record
ContextAccess to: o Global datao Parameterso Utilities, Factories
DataAccess to: o Data record contento Port routingComponent State
• Ready For Input Data• Ready for New Data• Ready For Input Then New Data• Done Processing Data
• How the component notifies the protocol what it is expecting next: input port record or a new data record.
CS
Demo• Event Handling in component code
Component categories
• Components generally fall into one of a number of roles e.g. Reader, Filter, Calculator, Viewer, Merger. • Within a category, there is a specific use pattern for component state and data record processing. E.G.
There are conventions for naming and parameterization for each component category, described in the Component Development Guide.
ReadyForNewDataReadyForNewData…ReadyForNewDataDoneProcessingData
ReadyForInputData…ReadyForInputDataReadyForNewData…ReadyForNewDataDoneProcessing
ReadyForInputDataReadyForInputData…ReadyForInputData
Reader Calculator Merger/Sorter
Component APIs
• Similarities and differences– Java, .NET, Perl, Python– API Documentation
• Where to find it
• Debugging• Object model
– See next slide
Object Model
Data Record
Node
1
1
Property Collection1 1
Property
1
*
Value
1
1
1 *
Context
1
1
1
1
Parameters
Global Data
Data Root
Name: string
Summary
• Multiple ways to build components• Most advanced approach is to code your own
– Specialized integration components for various language options
• Component interface– Context, Data Record, Ports– Object models– Manage component state for the behavior you need
• Developers Tab in Pipeline Pilot Help Center– Server-side Integration/Language-based Integration– Development Guides/*
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