Integration Collection for Pipeline Pilot
Total Page:16
File Type:pdf, Size:1020Kb
QUICK START GUIDE PROTOCOL DEVELOPMENT INTEGRATION COLLECTION 2017 Copyright Notice ©2016 Dassault Systèmes. All rights reserved. 3DEXPERIENCE, the Compass icon and the 3DS logo, CATIA, SOLIDWORKS, ENOVIA, DELMIA, SIMULIA, GEOVIA, EXALEAD, 3D VIA, BIOVIA and NETVIBES are commercial trademarks or registered trademarks of Dassault Systèmes or its subsidiaries in the U.S. and/or other countries. All other trademarks are owned by their respective owners. Use of any Dassault Systèmes or its subsidiaries trademarks is subject to their express written approval. Acknowledgments and References To print photographs or files of computational results (figures and/or data) obtained using BIOVIA software, acknowledge the source in an appropriate format. For example: "Computational results obtained using software programs from Dassault Systèmes BIOVIA. The ab initio calculations were performed with the DMol3 program, and graphical displays generated with Pipeline Pilot." BIOVIA may grant permission to republish or reprint its copyrighted materials. Requests should be submitted to BIOVIA Support, either through electronic mail to [email protected], or in writing to: BIOVIA Support 5005 Wateridge Vista Drive, San Diego, CA 92121 USA Contents Chapter 1: Introduction 1 Run Program 17 Architectural Overview 1 Run Program on Remote Host 18 Extending Functionality 2 SOAP 18 Application Integration Components 3 Chapter 4: Language-Based Components 19 Command-line Integration 3 Perl 19 Run Program Components 3 Java 20 FTP 3 .NET 20 SSH 3 Windows Script Host Components 20 SCP 4 Python 21 Telnet 4 VBScript 21 Language-based Integration 4 PilotScript 21 Java Component Development 4 About the PilotScript Language 21 .NET Component Development 4 PilotScript vs. Third-Party Scripting 21 Perl Component Development 4 Custom Manipulator and Filter Components 22 VBScript Component Development 5 Debugging 22 Python 5 Web Services Integration (SOAP Components) 5 Database Integration (with ODBC-compliant and JDBC-compliant Drivers) 5 Integration with Visualization Tools 5 Additional Information 6 Chapter 2: Common Principles 7 Data Records 7 Input Data 7 Output Data 8 Component Lifetime Management 8 States of the Component State Machine 9 Global Data 10 Using Global Data 11 Scope of Global Data 12 Component GUI 12 Component Parameters 12 Component and Parameter Naming 12 Parameter Types 13 Component and Parameter Help Text 13 Client-side Components 13 Load Balancing and Reverse Proxy Deployments 14 Global Properties 15 Job Completion Notification 15 Enabling the Notification Protocol 16 NotificationProtocol Parameters 16 Chapter 3: Command Line and Web Services Components 17 Chapter 1: Introduction This guide provides a high-level overview of the components and languages you can use to develop your own Pipeline Pilot protocols. It also presents information about the packages and tools that are available for integrating Pipeline Pilot with third-party applications and services. Pipeline Pilot supports a number of approaches to extending its capabilities by adding new components to an existing installation. To integrate functionality from other software products, you can construct new components using original scripts, compiled code, and simple command lines. Resources are available for incorporating the present capabilities on a local server machine or from across the network. Pipeline Pilot offers many generic and domain-specific (pre-packaged) components that you can use to develop your protocols. Details about how to use these features are available elsewhere (Help Center > Users tab). This guide provides an overview of a number of specialty components, especially useful for customization, integration, scripting, and client-side operations, that allow you to greatly extend the capabilities of the pre-packaged components. Tip: When developing protocols, it is recommended that you make frequent use of the validation feature in the client. See User > Pipeline Pilot > Protocol Publishing > Validating Protocols in the help center. Architectural Overview The diagram below represents a high-level overview of the server architecture. It illustrates how you can work with Pipeline Pilot Client and Pipeline Pilot to extend server-side capabilities with new components or incorporate protocols into other applications using a client-side software development kit (SDK). Introduction | Page 1 Client integration and server extension architecture Extending Functionality You can extend the functionality of Pipeline Pilot by integrating third-party data and computational services on the Pipeline Pilot server. The Integration collection is a set of tools and components designed for this purpose. Integration techniques for extending functionality include: Configuring a program execution component to run a program command line on the server Integrating a web service application Customizing a base language component to encapsulate specific functionality in script or in a compiled language (Java, Perl, VBScript, and Python) Integrating an ODBC-compliant database Incorporating third-party visualization tools running on the client (e.g., Excel, Spotfire, and BIOVIA Viewer) Constructing a new subprotocol component using encapsulated pipelines of other components For each of these approaches, a number of specific technologies may be available, depending on the goal of the integration project. A collection (described below) may contain components constructed with one or more of these techniques. When you build one or more related components, it is known as a "component collection". You can package the collection along with binaries, scripts, data files, documentation, etc. for consistent, Page 2 | Protocol Development • Quick Start Guide managed deployment into an existing installation. When users install components provided as a package, they can subsequently uninstall or upgrade the component collection following simple, standard procedures. The following information contains guidelines for each of the approaches with reference to the set of components that provide the relevant functionality, with particular emphasis on common techniques and concepts across the different groups of components. Application Integration Components Application integration components include: Command line integration (Run Program, FTP, SCP, SSH, and Telnet) Language-based scripting integration (Java, .NET, Perl, VBScript) Web services integration (SOAP) Command-line Integration You can execute third-party applications and file transfer services as command-line protocol interfaces. The following components are available for this purpose: Run Program Telnet SSH FTP SCP Run Program Components You can extend the functionality of a protocol to include any operation that you can invoke from a command line. Run Program (on Client) and Run Program (on Server) components are available for this purpose. These components provide a way for you to execute an operating system command on the server or on a client. For example, you can write data files, invoke the command line program to work on these files, and then read the results when the protocol is complete. You can also incorporate the STDIN and STDOUT streams into the data pipeline for a smoother flow. FTP File Transfer Protocol (FTP) is used to transfer files over a TCP/IP network (Internet, UNIX, etc.). Components that support FTP include Copy File from Remote Host (FTP) and Copy File to Remote Host (FTP). Use them to copy files from a server on your network to (or from) the server. Since these components use the FTP protocol, a valid user name and password are required as parameter values. Typically, FTP components are used in conjunction with Telnet or SOAP components to run programs on a remote machine. SSH Secure Shell (SSH) is a security protocol for logging on to a remote server. SSH provides an encrypted session for transferring files and executing server programs. SSH supports a variety of authentication methods and it provides a secure client/server connection for applications. Components are available that support SSH. The Run Command on Remote Host (SSH) component runs a command on a remote machine running SSH daemon and encrypts communication with the remote host. A password or key file is required as a parameter value for this component. The Manage Host Trust (SSH & SCP) Introduction | Page 3 component validates or updates a key signature in a known host file, which allows you to verify the identity of the remote host before sending the encrypted password. SCP Secure Copy Protocol (SCP) is a secure version of the UNIX remote (rcp) command for transmitting files to or from a remote machine. Unlike FTP, SCP encrypts all communication with the remote host. Components that support SCP include Copy File from Remote Host (SCP) and Copy File to Remote Host (SCP). A password or key file is required as a parameter value setting. Telnet Telnet is a terminal emulation method used on the Internet and TCP/IP-based networks. It allows a user to log onto a remote computer and run a program or execute UNIX commands. The Run Command on Remote Host (Telnet) component supports Telnet. Required parameters for the component include username and password. Typically, this component is used with the FTP components to transfer input and result files to and from the remote host. Language-based Integration You can enhance the capabilities of your protocols by including a scripting component that includes a script written in one of the supported languages (Java, Perl,