(ats3-dev08) team development with accelrys enterprise platform

Post on 11-Jan-2015

644 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Developing scientific applications typically involves a team of people with different disciplines. This includes software developers, testers, business analysts/product managers, and more. This may also include software developers and scientists collaborating together that have a mixture of technology experience. In this session, we’ll explain how teams can work together to build simple to complex applications leveraging Pipeline Pilot. We’ll also demonstrate how this is accomplished while leveraging standard software development tools like Eclipse for Java, Visual Studio, CVS, and more.

TRANSCRIPT

(ATS3-DEV08) Team Development with Accelrys Enterprise Platform

Jarek TomczakPrincipal Solutions Architect, Professional Services

Jaroslaw.Tomczak@accelrys.com

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.

Outline

• Introduction• Patterns for team application development• A pattern for Java component development

Situation

• Non-trivial application• Code version management system in place• Several developers• Multiple development configurations• Heterogeneous code base• Deployment to Dev/Test/Prod servers

Solution Components

• PP Protocols• PP Components• Java/.NET/Perl/Python/Dynamic Java/… PP components• SQL DDL and DML code• HTML, JavaScript, CSS• Custom application (Java EE, .NET,…)

Pipeline Pilot Professional

Development Environment

Database Modeller/DeveloperWeb Developer

Java Developer

Development Model

Key Issue

Synchronisation of XMLDB with an SCM repository

Patterns for AEP Application Development

• XMLDB only• In-situ package• Sibling packages• Package container

Version Management of Protocols in XMLDB

• XMLDB as primary component/protocol storage• On demand export/import

File SystemXMLDB

XMLDB Only

• Benefits– Simple– Can work without direct access to the PP server necessary

• Drawbacks– Works only with simple projects: PP components + protocols– Limited configuration management– No packaging

In-Situ Package

• mktree.pl• Straightforward for non-Java containing packages

PP_ROOT/apps/mycompany/mypackage Package directory

In-Situ Package

• Pros– Everything in one place– Standard package setup

• Cons– Access to server– Configuration management– Doesn’t scale for multiple packages– Doesn’t work for default Java component setup

In-Situ Package – Problems with Java Packages

• Suboptimal documented approach– mktree.pl– Eclipse setup with linked src/build dirs

PP_ROOT/apps/mycompany/mypackage Package directory

Eclipse workspace ?

In-Situ Package

• Set Eclipse workspace to PP_ROOT/apps/mycompany• New Java project in Eclipse, but use lang/java/src and

lang/java/build• DIY mktree.pl

PP_ROOT/apps/mycompany/mypackage Package directory

Sibling Packages

Problem statement• Do not want to provide customer with source code or

unit/regression testsSolution• Split package into production and

test/development packages

Sibling Packages

• Production package– Ships to customers– Components, protocols– Images, other resources– Build binaries

• Test/Development package– Regression tests and baseline files– Source code– Build scripts

mycompany/myproductmycompany/myproductdev

Sibling Packages – ChemReg

scite

gic

scid

ev

Package Container

Development outside of PP_ROOT

WorkspacePackage directory

Package installation

Package Container

• Pros– Most flexible– Can manage one or many packages– Proper configuration management– Can work with a remote server

• Cons– Requires some work to set up (meta-packaging)– Synchronisation with the server

Package Container – Folder Setup

Dev

elop

men

t

ant

config myhost local.properties

docs

packages ourapp

bin

dataroot

docs

lang

regression

web

xml

Objects

Components

Protocolspackage.conf-tmpl

src

java

build

dist

lib

src

sqlddl

dml

build.xml

application.properties

Package Container – Build/Deployment Automation

Tasks• Standard tasks

– File operations (copy, delete,…)– Filters– Exec (pkgutil, regress, net)– Java (YUI Compressor)

• Database deployment– Third party SQL*Plus wrapper incanto.sourceforge.net

• Custom task to execute PP protocols• Source code management integration

Development of Java Components

1. Create package (mktree.pl)2. Create missing folders3. Create Eclipse project4. Develop Java class(es) implementing

com.scitegic.pilot.Component5. D&D Java (on Server)6. Configure Java (on Server) and add new parameters7. Save the new component8. Export the new component9. Install the package

Example Component Set – Integration with Columbus

• SOAP Method with WSDL Support component can call most methods: createProject, createDataset, getImageInfo etc.

• For image transfer Columbus uses SOAP MTOM (Message Transfer Optimization Mechanism) – not supported by AEP

Patterns For Custom Components

Double Adapter

Business Logic Unit Tests

Java Component

Regression Test(s)

PP Component

Gen

erat

e

• Develop and deploy custom Java component under 5 minutes

Demo

DRY—Don’t Repeat Yourself

• Automation– Generate Java (on Server) component with the right GUID

(unique) – avoid pain of saving and exporting

• Metaprogramming– Write Code That Writes Code Components

• Possible validation of Java-PP component parameters

• Different approaches for team development• The power of plain text and XML• AEP-based development can be further automated and

improved

Summary

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

top related