(ATS6-DEV06) Using Packages for Protocol, Component, and Application Delivery

  • 117 views
Uploaded on

Delivering protocols, components, and applications to users and other developers on an AEP server can be very challenging. Accelrys delivers the majority of its AEP services in the form of packages. …

Delivering protocols, components, and applications to users and other developers on an AEP server can be very challenging. Accelrys delivers the majority of its AEP services in the form of packages. This talk will discuss the methods that anyone can use to deliver bundled applications in the form of packages and the benefits of doing so. The discussion will include how to create packages, modifying existing packages, deploying packages to servers, and tools that can be used for ensuring the quality of the packages.

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
117
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
0
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. (ATS6-DEV06) Using Packages forEnterprise Application DeliverySteven BushR&D, AEP Core Infrastructuresteven.bush@accelrys.com
  • 2. The information on the roadmap and future software development efforts areintended to outline general product direction and should not be relied on in makinga purchasing decision.
  • 3. Content• What are packages?• Using pkgutil• Creating a new package• Adding items to packages– Components and Protocols– Java, Perl, .Net Modules– 3rdparty applications• Editing• Testing• Deploying• Combining with version control (cvs, svn, git, etc.)
  • 4. Documentation• See Application Packaging Guide in the AEP ServerDeveloper Help Center
  • 5. Simple!• Create the package– pkgutil –n <mycompany/mypackage>• Create xml directory– Add “xml” directive to package.conf• Export Components/Protocols to xml folder– Folder structure matches trees in Pro Client• Register package– Pkgutil –r <mycompany/mypackage>
  • 6. What is it?• A package is basically a folder used to deploy applications to an AEP server• Located in <root>/apps/<company>/<packagename>– Ex. accelrys/customapp• Can include:– Protocols, components– .jars, .pms, .NET assemblies, javascript– 3rd party applications– Various web pages– Data files– Server configuration• Global data• URL mapping• Static web pages• Edit directly• Use pkgutil to manage
  • 7. pkgutil• Command Line application• Used to register, unregister, list, create, and test packages– Windows: <root>/bin/pkgutil.exe– Linux: <root>/linux_bin/pkgutil• Note: run “. <root>/linux_bin/ppvars.sh” first• Install/Register– pkgutil -i <package> or pkgutil -r <package>• Commands are equivalent, -r will first unregister if necessary• Unregister– pkgutil -u <package>• List– pkgutil -l [company]• Create– pkgutil -n <package>• Creates the basic framework of a package• Validate– pkgutil -v <package>
  • 8. Creating a package• Use pkgutil –n <packagename>– e.g. pkgutil –n mycompany/myapp– Creates folder under <root>/apps– Creates “package.conf” text file with basic entries• Edit package.conf– Add directives as necessary• xml, data, java, perl, URL, etc.• Add folders for each item– Component and protocol xml– Data files– Application dependencies (.jar, .pm, 3rdparty apps)
  • 9. Package structuremycompany/myappbin/lang/java/js/perl/dataroot/data/docs/icons/scheduler/xml/Components/Protocols/ComponentState.xmlpackage.conf
  • 10. Adding Items: Components and Protocols• Folder structure is identical to folders in Protocol DB– Mycompany/myapp/xml/Components/Data Access andManipulation/etc…• Add “xml” directive to indicate the folder where the items arestored• Export item into location• Install package to see newly added items• Updated items take effect immediately– No built in version control! Combine with 3rd party version control onyour package folder
  • 11. Adding Items: Java, Perl, .NET, 3rd Party• Save in an appropriate folder– Typically <package>/bin/lang/*• Add the appropriate directives– Java:<java>CLASSPATH</java>– Perl:<perl>INC</perl>– .NET:<dotnet platform="windows">ASSEMBLY</dotnet>• Install the package to update
  • 12. Adding Items: other• “dataroot”– Adds set of data files for the package– Adds shortcuts to client file browsers• <icons>– Adds custom icons for components• Icon format is very specific!!! Need multiple files for each icon for different sizes and states• MyIcon.ico (16x16), MyIcon.png (60x52), MyIcon16x16.png (16x16), MyIconRed.png (60x52)• <web>– Static web pages (e.g. index.html)• <URL>– Custom URL routing for launching protocols• <helpdoc>– Documentation to show in help center– Typically a pdf• <require>– Specifies dependencies on other packages• “scheduler”– Folder that contains scheduled tasks such as protocol executions
  • 13. Interface vs. Implementation• For component SDK items, the implementation might notbe included in the component.• So, if you have .jar, .pm, or .Net implementation files thatare used by components, OLD components might stillmake use of the same file.• Code your implementation to accept OLD parameter sets.
  • 14. Editing• Changes to existing components and protocols take effectimmediately• Added or deleted components and protocols requirereregistering the package• Other changes require reregistering as well– .jar, .pm, docs, icons, etc.• Some changes might require restarting the AEP server– URL or scheduler changes which change the server’s coreconfiguration
  • 15. Testing Functionality• regress.exe– Create regression protocols to test components– Use regress to make sure• protocol runs• results have not changed– Suggestion: Create a “MyApp_test” package to storeregressions.• This way you can uninstall the test package on the production server– Regression protocols should be self contained.• Same inputs = same outputs• Remote calls are tested that they work, but remote data might change
  • 16. Testing Component State• Validation– Prevent unintentional changes to component parameters– Run “pkgutil –q” to create a baseline file called“ComponentState.txt”• Stored in <package>/xml folder– Run “pkgutil –v” to report any differences from the baseline– Rerun “pkgutil –q” to update the state.
  • 17. Deploying• (optional) Pkgutil -repackxml <package>– Changes the registrant of each component and package to<company/package>– Cleans up several parameter values• Check the package with pkgutil –v <package>• Copy folder to new server– Use zip file• Run pkgutil –r <package>• Run regression tests on the new server
  • 18. Version Control• No built in versioning of items in packages– Editing an item is permanent• Connect 3rd party version control to the package folders– A package is just a folder structure with a set of files– Be aware of types of files (binary, text, unicode, etc.)
  • 19. • Creating a package is simple!• Useful for– Deploying sets of components and protocols– Web Applications– Required for Load-Balanced Deployments– 3rd party tools• Take a look at the packages that we ship for examplesSummary