(ats3-dev08) team development with accelrys enterprise platform
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
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