(ats3-dev05) coding up pipeline pilot components

14
(ATS03-DEV05) Coding up Pipeline Pilot Components Mike Peeler Senior Director, R&D [email protected]

Upload: accelrys

Post on 01-Dec-2014

1.741 views

Category:

Technology


1 download

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

Page 1: (ATS3-DEV05) Coding up Pipeline Pilot Components

(ATS03-DEV05) Coding up Pipeline Pilot Components

Mike PeelerSenior Director, R&D

[email protected]

Page 2: (ATS3-DEV05) Coding up Pipeline Pilot Components

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-DEV05) Coding up Pipeline Pilot Components

Agenda

• Component intro• Why code a new component?• Component model• Component categories• Component APIs

Page 4: (ATS3-DEV05) Coding up Pipeline Pilot Components

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

Page 5: (ATS3-DEV05) Coding up Pipeline Pilot Components

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.

Page 6: (ATS3-DEV05) Coding up Pipeline Pilot Components

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.

Page 7: (ATS3-DEV05) Coding up Pipeline Pilot Components

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

Page 8: (ATS3-DEV05) Coding up Pipeline Pilot Components

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

Page 9: (ATS3-DEV05) Coding up Pipeline Pilot Components

Demo• Event Handling in component code

Page 10: (ATS3-DEV05) Coding up Pipeline Pilot Components

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

Page 11: (ATS3-DEV05) Coding up Pipeline Pilot Components

Component APIs

• Similarities and differences– Java, .NET, Perl, Python– API Documentation

• Where to find it

• Debugging• Object model

– See next slide

Page 12: (ATS3-DEV05) Coding up Pipeline Pilot Components

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

Page 13: (ATS3-DEV05) Coding up Pipeline Pilot Components

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/*

Page 14: (ATS3-DEV05) Coding up Pipeline Pilot Components

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