(ats3-plat03) enterprise protocol & package deployment
DESCRIPTION
There is a significant difference between publication of individual protocols and deployment of complex applications consisting of a significant number of protocols combined with a custom Web interface and custom components developed in third party languages. This session will summarize existing methods of protocol deployment and then focus on various aspects of packaging and meta-packaging (on-fly package creation and installation) to address typical requirements of enterprise application publication like dependency management, configuration injection, security, application initialization, testing and continuous integration.TRANSCRIPT
(ATS3-PLAT03) Enterprise Protocol & Package Deployment
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
• Application Deployment• Deployment of Components and Protocols• Packaging and Package Deployment– When to use– Benefits– Issues– Usage– Undocumented features
AEP Application Deployment
Develop and
DocumentTest Validate Install Test Use
Development Test/Production
Application Deployment – Bigger Picture
ReleasePackage Advertise
De-ReleaseAdvertise Retire
InstallTransfer Configure
De-Install
Adapt
De-ActivateActivate
UpdateTransfer Configure
A Characterization Framework for Software Deployment TechnologiesAntonio Carzaniga et al., 1998
Deployment of Individual Components and Protocols
Don’t do it!Potential issues:• Relationship to other application protocols• Dependent components• Additional resources, data etc.• Configuration management• Documentation
Deployment of Individual Protocols
• If you do then– Enforce protocol validation– Resources contained within the protocol– Document manual deployment workflow
• Actual deployment– Import/Export– Network tab
Packages
• The only official way of distributing Pipeline Pilot collections
• Fundamental unit of the AEP ecosystem
Is Packaging Really Relevant?
Number of package-related questions on the Accelrys Pipeline Pilot Community forum…
1
When Packages Are
• Necessary– Custom Java/.NET components– CGI scripts– Executable files
• Recommended– Nearly always
Benefits of Packaging
• A way of organising code• Straightforward deployment to multiple servers• Dependency management• Configuration management– Package variables
• Documentation (components, custom/API)– Integration with Help Center
• Apache configuration
Benefits of Packaging cont.
• Authorization– Integration with Admin Portal
• Support for CGI scripts• Handling of executable files• Locked code• Versioning• Integrity check
Packaging Issues
• Need access to server for package development and deployment
• Cannot save packaged components/protocols (export)– Lost PP versioning through export/import
• Tricky to use with SCM systems
Package Content and Directory Structure
• Components and protocols• Configuration files• Documentation• Data files
– Required by individual components/protocols– Baseline files for regression tests
• Custom (Java, .NET etc.) components• Other code (e.g. Web applications)• Executable files
Packaging Overview
• Create a new packageperl mktree.pl --company=mycorp --product=myapp
• Fix folder structure• Edit package.conf• Develop package components• Install (activate) the package (pkgutil -i)• Check integrity, validate GUIDs (pkgutil -q/-v)• Create zip file (pkgutil -buildpackagezip)
package.conf as Deployment Descriptor File
Identificationand Versioning
Vendor
Name
Version
DependencyManagement
Require
Testing
Test
OnInstall
OnUninstall
Configuration
Global
Web
Documentation
HelpDoc
Code Management
Xml
Data
DotNet
Java
Perl
Apache HTTP Server Configuration
• Deploy a web application to e.g. http://server:9944/myapp
• Deploy a custom Web / REST / CGI service• Make a data directory browsable• Make a private directory non-browsable• Change default cache ages for images• …
Apache HTTP Server Configuration Options
• Edit httpd.conf• Use documented package web directive
• Use undocumented package directives
• Use a dedicated config file
Web myapp $(package)/webWeb myapp-temp C:/Temp/myapp
<web custom>insert ...</web>
Sending Specific MIME Type Files
• Export of DICOM images• .dcm extension is not enough• HTTP header field:
Content-Type: application/dicom
• CGI Script<web custom>insert Alias /mime/getfile "C:/Program Files/Accelrys/PPS85/apps/accelrys/mime/bin/getfile.cgi"insert <Directory "C:/Program Files/Accelrys/PPS85/apps/accelrys/mime/bin">insert Options +ExecCGI -Indexes -IncludesNoExecinsert AllowOverride Noneinsert Order allow,denyinsert Allow from allinsert AddHandler cgi-script cgiinsert </Directory></web>
Package-Defined Global Protocol Properties
<PACKAGE_DIR>/package.conf
Application Role Management
<PACKAGE_DIR>/xml/Objects/AuthzRegistry.xml
Client has to providecorresponding clientType(in PipelinePilotServer)
Auto Parameters
<PACKAGE_DIR>/xml/Objects/AutoParameters.xml
<PACKAGE_DIR>/package.conf• complib• <autoparameters>
Light Relief & A Serious Issue
For Everyone
Would you plz be so kind as to send me the ordering details for your book “Pipeline Pilot for Dummies 2010?”
I was unable to locate it on amazon…
Limited Access to PP Server…
There is always Pipeline Pilot Professional Client or Web Port
Summary
• Packages are the basic deployment unit and…
• There is even more: File Reader extensions, embedded packages…• Documentation is pretty good• But one can learn still from the “scitegic” package masters…• Relevant sessions
– Web Development with Accelrys Enterprise Platform (ATS3-DEV06)– Team Development with Accelrys Enterprise Platform (ATS3-DEV08)
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