
This document represents an example of packaging OpenSSO using the Image Packaging System. Refer to the Package Design Examples page for an overview of effort to produce several examples of packaging popular distributions.
Overview
The OpenSSO Enterprise Edition 8.0 zip download bundle available on the OpenSSO Downloads page was used as the reference for this example. This bundle is 280 MB in size. Agents for various web and application servers are available in separate download bundles.
Open Questions
- Are there any differences between OpenSSO Enterprise and Express distributions that should affect the package design?
- Are there plans to deliver an initial installation program for OpenSSO? If so, how will the filesystem layout of that installation differ from the current zip-based bundle?
- Would it be useful to have the OpenSSO tools be executable out of the box?
Filesystem Layout Considerations
Initially, the packages will as much as feasible mimic the filesystem layout of the OpenSSO Enterprise 8.0 zip bundle. The main change will be to introduce an "opensso/" subdirectory at the top of each package such that OpenSSO components can be easily installed alongside other components without introducing conflicts. Under the "opensso/" directory, the filesystem layout will closely align with the existing OpenSSO zip bundle.
The upper level of the filesystem layout aligns with the Determining Filesystem Layout section of the Packaging Best Practices. GlassFish and other distributions adopting the Image Packaging System in support of their multi-platform layered distributions are using this filesystem layout as a guide.
<install location>/
bin/
pkg/
updatetool/
opensso/
<layout from existing OpenSSO zip bundle>
Package List
| Package Name |
Title |
Description | Depends On |
Size (est) |
Rationale | Comments / Notes |
|---|---|---|---|---|---|---|
| opensso | OpenSSO Metapackage |
This package is a metapackage containing dependencies on the set of core OpenSSO packages. It can be used to conveniently install that set of packages. |
All non-agent OpenSSO packages. |
NA - contains only package metadata | Ease of use |
"pkg install opensso" gives you an installation of all non-agent packages. |
| opensso-incorporation | OpenSSO Version Incorporation |
This package constrains the versions of all OpenSSO packages installed in the same location. By managing the versions referenced in this package, the OpenSSO project can ensure that only those combinations of package versions that are qualified together are installed in the same location. |
NA- contains only package metadata |
Forces package versions to evolve in lockstep |
|
|
| opensso-webapp |
OpenSSO Deployable Web Application |
Pre-assembled, deployment-ready OpenSSO web application (WAR file) used for evaluation and basic deployments. |
68 MB |
Ease of use |
Aligns with the emphasis of "all you have to do is deploy a WAR file". |
|
| opensso-webapp-assembly |
OpenSSO Web Application Assembly Tools |
Tools to reassemble custom forms of the OpenSSO web application (WAR file). |
opensso-webapp opensso-client-sdk |
? |
Not needed by all users Specialized use cases? |
Companion to the WAR file in opensso-webapp, but not needed by all users. distauth/ contains copy of 9 MB client SDK. |
| opensso-client-sdk |
OpenSSO Client SDK |
9 MB |
Eases embedding Not needed by all users Specialized use case |
Some distros will choose to pre-install this package as a means of including the SDK in an easy to update and track form. |
||
| opensso-client-sdk-docs |
OpenSSO Client SDK Documentation |
2 MB |
Not needed by all users |
Not needed when embedding the client SDK. |
||
| opensso-client-sdk-samples |
OpenSSO Client SDK Samples |
84 MB |
Not needed by all users |
Large compressed content not needed when embedding client SDK. Is there any value in breaking this content into multiple packages? |
||
| opensso-fedlet |
OpenSSO Fedlet |
8 MB |
Not needed by all users |
|||
| opensso-int-oracle |
OpenSSO Oracle Integration |
negligible |
Not needed by all users |
|||
| opensso-int-siteminder |
OpenSSO SiteMinder Integration |
negligible | Not needed by all users | |||
| opensso-agent-sdk-<platform> |
OpenSSO C Language SDK - <platform> |
9 MB |
Not needed by all users |
Worth breaking up into a package per platform? |
||
| opensso-sae-client-api |
OpenSSO Secure Attribute Exchange API - <language> |
8 KB |
Not needed by all users | Two languages: .Net and Java |
||
| opensso-tools |
OpenSSO Administrative Tools |
TBD |
87 MB |
Worth breaking up? tools/ contains a handful of zip files containing OpenSSO administrative tools. * Admin Tools * Session Tools (BDB, MQ) * Configurator Tools * Patch Tools There are many external libraries embedded in several of the tools zip files. |
||
| opensso-upgrade |
OpenSSO Upgrade Tools |
Tools and documentation that enable upgrade from earlier versions of Sun Access and Federation Manager installations. |
1 MB |
|||
| opensso-xml |
OpenSSO XML Definition Files |
144 KB |
Need to understand the role of these files. |
|||
| opensso-webservice | OpenSSO Web Services Agents and Providers | TBD | opensso-client-sdk | |||
| opensso-agent-<server platform>-<OS platform> |
OpenSSO Web Agent - <server platform> - <OS platform> |
Many agents are available. At a minimum, there would be one package per agent type on each OS platform. Initially, package one agent to demonstrate the approach. * GlassFish * Sun Web Server 7 * WebLogic * WebSphere * Tomcat * JBoss * etc. |
Package Creation Scripts
Since the OpenSSO build system (see build details) is Ant-based and we have already implemented an Ant-based packaging script in support of OpenDS, we will use the Ant-based OpenDS package creation script as a starting point. This script uses the pkg(5) toolkit's custom Ant tasks to ease the process of creating packages.
Download Bundle Ideas
This effort will at a minimum deliver a zip download bundle containing:
- pre-installed form of the "opensso-webapp" package
- pkg(5) bootstrap
This zip file will be approximately ~70 MB in size due to the size of the opensso.war file.
Upon expansion of this zip file, the user will have ready access to the opensso.war file. If the user attempts to execute the included bin/updatetool or bin/pkg commands, the pkg(5) bootstrap facility will automatically download the supporting pkg(5) packages that will enable the user to run the Update Tool GUI and pkg(1) CLI to download further OpenSSO packages and to update already installed OpenSSO packages.
Beyond this most basic download bundle example, the following download bundles might be useful:
- Quick start Java Web Start-based initial installation program that wraps the zip bundle described above
- Bundle containing GlassFish v2 and the OpenSSO webapp package in pre-installed forms as a ready-to-go example