(ats3-dev08) team development with accelrys enterprise platform

29
(ATS3-DEV08) Team Development with Accelrys Enterprise Platform Jarek Tomczak Principal Solutions Architect, Professional Services [email protected]

Upload: accelrys

Post on 11-Jan-2015

642 views

Category:

Technology


0 download

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

Page 1: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

(ATS3-DEV08) Team Development with Accelrys Enterprise Platform

Jarek TomczakPrincipal Solutions Architect, Professional Services

[email protected]

Page 2: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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-DEV08) Team Development with Accelrys Enterprise Platform

Outline

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

Page 4: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

Situation

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

Page 5: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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,…)

Page 6: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

Pipeline Pilot Professional

Development Environment

Database Modeller/DeveloperWeb Developer

Java Developer

Page 7: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

Development Model

Page 8: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

Key Issue

Synchronisation of XMLDB with an SCM repository

Page 9: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

Patterns for AEP Application Development

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

Page 10: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

Version Management of Protocols in XMLDB

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

File SystemXMLDB

Page 11: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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

Page 12: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

In-Situ Package

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

PP_ROOT/apps/mycompany/mypackage Package directory

Page 13: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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

Page 14: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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 ?

Page 15: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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

Page 16: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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

Page 17: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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

Page 18: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

Sibling Packages – ChemReg

scite

gic

scid

ev

Page 19: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

Package Container

Development outside of PP_ROOT

WorkspacePackage directory

Package installation

Page 20: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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

Page 21: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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

Page 22: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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

Page 23: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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

Page 24: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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

Page 25: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

Patterns For Custom Components

Double Adapter

Business Logic Unit Tests

Java Component

Regression Test(s)

PP Component

Gen

erat

e

Page 26: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

• Develop and deploy custom Java component under 5 minutes

Demo

Page 27: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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

Page 28: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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

improved

Summary

Page 29: (ATS3-DEV08) Team Development with Accelrys Enterprise Platform

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