Sie sind auf Seite 1von 32

DOCGEN 6.

0
Document your webMethods solutions

DocGen
User Guide
DocGen User Guide

Vanguard Integration Pty Ltd


Suite 2.01, 365 Little Collins Street

Melbourne, VIC 3000

Phone: +61 3 8676 0445 Fax: +61 3 9602 3445

Email: info@vanguardintegration.com

www.vanguardintegration.com

Vanguard Integration Pty Ltd

Melbourne, Australia

All rights reserved

Integration Server is a trademark and webMethods is a registered trademark of webMethods, Inc.

Java is a trademark of Sun Microsystems.

Other products and brand names are trademarks of their respective owners.
Table of Contents
About this guide ................................................................................................................................... 1

What is DocGen? .................................................................................................................................. 1

DocGen System Requirements ........................................................................................................... 1

Installing the software ........................................................................................................................ 2

Installing your license ......................................................................................................................... 2

Starting DocGen ................................................................................................................................... 4

Key concepts........................................................................................................................................ 5

Generating your first Documentation Set....................................................................................... 7

Generation overview............................................................................................................................ 9

Specifying the output location ......................................................................................................... 10

Selecting packages to document..................................................................................................... 11

Linking to other documentation sets............................................................................................... 13

Identifying the documentation set ................................................................................................... 14

Excluding dependencies ................................................................................................................... 15

Securing access to documentation.................................................................................................. 15

Locating resources (icons) ............................................................................................................... 16

Overview of the Status / History page ............................................................................................. 22

Changing a documentation set Id and title ..................................................................................... 23

Re-generating documentation .......................................................................................................... 24

Removing documentation from the history page ............................................................................ 24

Deleting generated documentation.................................................................................................. 24

Outdated documentation................................................................................................................... 25

Scheduling re-generation of documentation ................................................................................... 26

Changing the documentations look-and-feel.................................................................................. 26

Controlling access to DocGen .......................................................................................................... 27

SOFTWARE LICENSE AGREEMENT .................................................................................................. 28


D O C G E N U S E R G U I D E

Introduction
S Y M B O L K E Y

Key concept About this guide


Useful tip This user guide will help you get the most out of DocGen.
Definition
Note
The symbol key (left) shows the symbols used in this manual and their
meaning.

What is DocGen?
DocGen is a documentation generation tool for webMethods packages. It
creates high quality, indexed, hyperlinked documentation for all of the major
service and documentation types used in typical webMethods solutions.

DocGen System Requirements


DocGen is developed to run on webMethods Integration Server version 6.0
Edit your startup
and beyond. Documentation generation consumes system resources in the
(server.sh or following manner:
server.bat) to
increase the generated documentation consumes disk space
memory available
documentation indexes are built and held in memory while
to the webMethods generating. The more services that are included in a single
Integration Server documentation set, the bigger the indexes will be, and consequently
Java process. more memory will be required

generating documentation uses a single webMethods Server Thread


(per concurrently executing documentation generation task).

generating documentation is a CPU-intensive operation. The faster


your CPU, the faster your documentation will be generated.

1
1
Chapter

Getting Started

Installing the software


DocGen is provided as an installable webMethods package. Simply place the
package (zip) file in the Integration Servers replicate/inbound directory and
use the webMethods Administrator Package Management page to install and
activate the package.

Your package
name will be
slightly different to
the one pictured,
reflecting a
different build
number.

FIGURE 1. Installing DocGen using Package Management.

Consult the webMethods Administrator Guide documentation for further


information.
It is recommended
that you place
your license file in Installing your license
the DocGen requires a valid license file in order to function. CustomWare
IntegrationServers provides the license file to you when you purchase DocGen. You can also
config directory.
request a temporary license from the CustomWare web site for the purpose
of evaluating DocGen. The license file is called DocGen.lic, and can be
This protects the
placed in the config directory of either the Integration Server, or the DocGen
license file from package itself.
being overwritten
if you install future
releases of 2

DocGen.
You can also paste the contents of a license file into the text area on the
License Info page, which is useful if you dont have a simple way to access
to the Integration Servers config directory through the file system.

3
2
Chapter

Quick Start Guide


Use this section to get a brief overview of some of
DocGens key concepts and generate your first
documentation.

Starting DocGen
You may need to DocGen installs itself as a solution in the Integration Server, and will
refresh your
appear in the Solutions menu on the Integration Servers Administration
page. Selecting the DocGen menu item will open the DocGen home page
browser window in a new browser window. You can also access the DocGen home page
to see the updated directly with the URL http://server:port/DocGen. Replace server and port
Solutions menu. with the correct values for your Integration Server (e.g.
http://localhost:5555/DocGen).

FIGURE 2. DocGen installs as a Solution.

DocGen will start with the About page open. The sidebar menu is used to
navigate to other DocGen pages.

4
A node is a
single element
(e.g. a service or
document type)
included in a
package. Flow and FIGURE 3. DocGen "About" page

Java services,
Triggers,
Specifications, and
Key concepts
Document types DocGen creates HTML documentation for one or more webMethods
are all examples of packages at a time. Each request to generate documentation creates a new
a node.
documentation set (containing the documentation for one or more selected
packages).

5
Documentation
Sets can contain
one or more
packages.
A documentation
set generates one FIGURE 4. A single documentation set can contain one or more packages.

node page per


A documentation set contains individual documentation pages for each node
documented node. in the set (node pages), plus package-level indexes for each package in the
Node pages are set. In addition, there are top-level index pages to provide overall indexes
not duplicated across all packages in the set and links to individual package indexes.
within a
Node pages are only generated for packages you have selected to
documentation set. document or document excluding source (more on these options below).
Linked packages Index pages provide access to node pages and are generated for all
are included in the packages that are included in the documentation set. Each node is
index, but
documented once and only once within a single documentation set, but
indexes may be created multiple times if documentation is being generated
documentation for inside the package being generated for multiple packages.
linked nodes is
accessed through Documentation sets can be linked to previously generated documentation
browser (HTML)
(for other packages). For example, you might create a documentation set for
a utility package and then link to it from individual solution packages. Linked
links. packages are included in the top-level and package-level indexes for the
new documentation set, but the documentation for nodes within the linked
package is accessed via HTML hyperlinks.

The example diagram (below) shows two documentation sets, SolutionSet


and UtilitySet. UtilitySet contains two utility packages, one of which
(UtilityA) is used in the SolutionA package. In creating the SolutionSet
documentation, the UtilityA package is included as a linked package. The
dashed lines indicate that links (hyperlinks) will exist to the UtilityA package
from both the SolutionA package node pages as well as the SolutionSet
package- and top-level indexes.

FIGURE 5. SolutionSet documentation set with "linked" UtilityA package from previously generated UtilitySet.

6
Generating your first Documentation Set
Lets generate some documentation! Select the Generate option from the
sidebar menu to open the Generate page. This is where you specify the
options for generating a documentation set.

Well look at the various options on this page in more detail in the next
chapter. For now, just select one of your solution packages using the radio
buttons under the Document (and link) option then hit the Generate
button.

FIGURE 6. Generating documentation for a single package.

You will get a message indicating that the request to generate the
documentation has been made and directing you to use the status/history
page to check progress.

FIGURE 7. Documentation generate request has been made.

Documentation is generated in a separate execution thread. Select the


Status / History option from the sidebar menu to check progress of the
current documentation generation job(s).

7
FIGURE 8. Progress is displayed while generating.

Once the documentation job completes, the documentation set will appear
in the list of Generated documentation sets.

Depending on the
speed of your
FIGURE 9. Generated documentation is listed in the status/history page.
server and the size
of the package Use the URL link to open the generated documentation.
being generated,
the documentation
job may have
already completed
by the time you
open the status /
history page.

FIGURE 10. Sample generated documentation.

Thats all there is to it!

8
3
Chapter

Generating
Documentation
Use this section to gain a detailed understanding of how
to generate sophisticated documentation libraries for your
solutions.

Generation overview
The Generate page is used to specify the options used to generate a
documentation set.

FIGURE 11. The Generate page.

9
Use the generate page to specify:

1) A location for your generated documentation;

2) The package(s) to be documented in this set;

3) Any (previously documented) packages (if any) to link to from this


set.

You can also specify:

1) A title and unique ID for your documentation;

2) Dependencies to exclude from the generated documentation;

3) Security permissions (only when generating documentation within


packages);

4) Whether resources should be copied into the new documentation set


(the default) or linked to from another package.

Specifying the output location


If you generate Use the drop-down control beside Create documentation to choose a
location for your documentation. You can generate documentation in one of
directly into the
three possible locations:
/pub directory for
a package, any 1) Inside the package being documented.
existing home
page for that
package will be
replaced by
DocGens
generated
index.html page.

10
Use this option to create documentation you want to include with the
package. The documentation is created relative to the packages
directory (i.e. IntegrationServer/<packageName>/). It is strongly
recommended that you place the documentation under either the
/pub subdirectory or the /web subdirectory where it can be served
up as web pages by the Integration Server. The suggested default is
/pub/html_doc.

Generate your 2) In a separate package.


documentation
Use this option to create documentation in a separate package. The
into a separate documentation is created relative to the packages directory (i.e.
Documentation IntegrationServer/<separatePackageName>/). It is strongly
package, directly recommended that you place the documentation under either the
into the /pub
/pub subdirectory or the /web subdirectory where it can be served
up as web pages by the Integration Server. The suggested default is
directory. You can
/pub/html_doc.
then access your
Once you select this option, you are able to specify a destination
documentation
package for the documentation (from your existing packages), or
using create a new package to hold the generated documentation.
http://yourServer:p
You cannot specify 3) In a (file-system) directory
ort/Documentation
access
. control or a
Use this option to create documentation into a directory. The
resource location documentation is created into the directory you specify (the directory
for documentation name and path within directory are combined to form the full top-
sets generated into level destination directory). Any relative paths will be relative to the
a directory.
Integration Servers current working directory.

Selecting packages to document


A documentation
Select the packages you want to include in the documentation set from the
list of packages on the Generate page, by clicking the radio button in either
set must contain at
the Document (and link) or Exclude source column. Clicking the
least one underlined column heading will set all packages to the selected option.
documented
package.
Fully documented packages will have a page for each node in the package.
Flow and Java nodes will include the source code for the node.

11
FIGURE 12. Sample node - documented with source code

If you choose to exclude source for a package, then there will still be a
Use the exclude
page for all nodes in the package, but pages for any Flow and Java nodes
source option to will not include their source code.
generate API-style
documentation.

12
FIGURE 13. Sample node - documented with source code excluded

Linking to other documentation sets


A documentation set contains a node page for every node in the
DocGen does not documented packages in the set. You can also access the documentation for
check whether or nodes in other packages by linking to those other packages. You would
not linked
commonly do this for utility packages, by first creating a utility
documentation set containing the utility package(s), and then linking to the
documentation
utility packages when you generate documentation sets for your solutions.
exists. You can
generate linked Linked packages will appear in the indexes for your documentation set,
documentation
and any references within the documented packages (e.g. an INVOKE step
in a Flow service calling a service in a linked package) will appear as
after the
hyperlinks in the generated documentation of the node making the
documentation reference.
that is linking to it.
Create a separate DocGen uses this approach (automatically) when you choose to document
documentation set multiple packages with a location of inside the package being documented.
Each documented package will have a set of index pages that include all
for your utility
documented nodes, but the node pages will only be created once. Each
packages, and node page will appear only in the documentation pages generated for its
then link to those package.
packages from
your solutions
documentation.

13
Links to other nodes are created using standard HTML hyperlinks (e.g. href
tags). To insert a link from your documented node to a node in a linked
package, DocGen needs to be able to construct a link URL. This is done
using either the Standard Link URL prefix or the Link URL Prefix
Override.
When creating the
link, DocGen will
replace any
occurrence of
<packageName>
with the name of
the linked
package.

Use relative links


FIGURE 14. Use the link prefix options to control how references to linked packages are formed.
where possible
this makes your To override the standard link prefix, you need to first select the Override
generated
prefix checkbox. This will enable the Link URL Prefix Override for that
package, allowing you to type in the appropriate link prefix for that package.
documentation
more usable from The link URL prefix is included verbatim (with the exception of any
the file system. <packageName> string replacement done by DocGen).

Dont include For example, assume that you have generated documentation for a utility
/pub when package (Utilities) into the pub/docs directory of that package, and you
now want to generate documentation for another package containing links
specifying links to
to the Utilities package documentation. When generating your new
documentation packages documentation, you would select the Link Only option for the
within packages Utilities package, and set the Link URL Prefix Override for Utilities to
this does not form /<packageName>/docs.
part of the URL to

Identifying the documentation set


access the contents
of the /pub
directory. Each documentation set has a unique documentation set ID used to
identify it, plus a title which appears on the first page of the documentation.
Use the Documentation set ID and Documentation set title fields on the

14
Generate page to set these values. You can also edit these values for
generated documentation sets from the Status/History page.

Clicking one of the


column titles (e.g.
Exclude
dependencies)
sets all packages
to the selected
FIGURE 15. Use the set ID and title fields to identify your documentation set
state.

Excluding dependencies
When generating Each node page has a Used / Referenced by section that lists places where
documentation for that node is referenced from. If the reference is from within the
utility packages,
documentation set, then the list item will be a hyperlink; otherwise it will
appear as plain text.
first exclude all
dependencies from By default, DocGen shows you every place that a particular node is used or
other packages, referenced from. There are occasions where you dont want all of these
and then select the
dependencies listed. This is particularly true in the case of utility packages,
which might be used by many solutions or if you want to generate
utility packages to
documentation for use by external parties (who might be confused by
document. references to services that they dont have on their servers).
For publicly
distributed
Use the Exclude dependencies option to exclude selected packages from
the list of packages used to create the used / referenced from dependency
documentation,
lists for documented nodes.
use the exclude
source option.
Securing access to documentation
If you generate documentation into the Integration Servers package
hierarchy, by selecting a location of either inside the package being
documented or in a separate package, you can use the Integration Servers

15
ACL security facilities to help protect your documentation from unauthorized
access. For example, you could use this feature to ensure that only members
of the Developers group can view documentation containing source code.

Use the Read access control (ACL security) drop down list box to select an
If you are using
appropriate ACL group you want to allow access to the generated
ACL security, you documentation. A .access file is generated for each page in each directory.
need to reload the You need to reload the package(s) for the .access file to take effect. You can
package(s) read more about security and using ACL settings to secure web pages in the
containing the
webMethods Administrators Guide documentation.
documentation for
the security .access
files to take effect.

For additional
protection, you
would need to
secure file-system
access to the
generated
documentation
files.

FIGURE 16. Use Read access control (ACL Security) to help secure your documentation.

Icons used in the Locating resources (icons)


generated
Generated documentation contains a number of icons used to identify node
documentation are
types, variable types and for general navigation. These icons are copied from
copied from the DocGens pub/resources directory, into a doc-resources directory in the
DocGen packages generated documentation.
\pub\resources
directory.

16
You can choose to reference icons from a previously generated
documentation set, using the Access to resources (e.g. icons) drop-down
setting. Simply select another package, and the icons will be referenced from
that package rather than copied into the new package (using the packages
We recommend link prefix). This option is not available when generating into a directory.
you leave the
resource location Using this option will save a small amount (about 120KB) of disk space per
documented package for the icons currently used by DocGen. The flip side
setting at the
of this relatively minor efficiency is that the newly documented packages
default value, documentation is reliant on the resource package being available so it can
letting DocGen access the icons.
copy resources as
they are needed.

17
4
Chapter

The structure of
generated documentation
Use this section to gain a better understanding of the
content and structure of the documentation created by
DocGen.

To better understand the options available to you when generating


documentation, it is useful to look at the content and underlying structure of
some generated documentation.

To illustrate, we will generate a documentation set containing two packages


(ATestPackage and SampleQueueAndResubmit) plus a link back to a
package documented earlier (ASamplePackage). The
SampleQueueAndResubmit package will be created with source code
excluded, which is a useful option for generating API documentation.

Figure 17. Generating the example documentation. Only relevant options are shown here.

Once the generation process completes, the documentation set will be listed
on the status/history page, with a link to the index.html (home) page.

18
Lets examine the output documentation created by DocGen.

The title you


specify when
generating appears
on the first page
seen by users of
the
documentation.
Use it to identify
the documentation
set.

Figure 18. Content of the sample documentation (combining several independent screenshots).

The top-level index contains multiple different indexes into the


documentation:- short (node) name, full (namespace) name, by node type
and by namespace (directory style). Each package in the documentation set
contains the same index types for nodes within that package. Documented
packages contain a page for each documented node. For Flow and Java
nodes, source code is generally included, but you may choose to exclude it
when generating.

Now lets take a look at the directory structure for this documentation set.

19
FIGURE 19. Output directory structure.

The top-level directory is named according to the options provided on the


generate page. In this case, we chose to generate into the file-system, so the
top-level directory is a combination of the directory name plus the path
within the directory. When generating into a package, only the path within
the (package) directory is available as an option.

The top-level directory contains the top-level index pages and index.html
page. The icons used throughout the documentation are also located directly
under the top-level directory in a sub-directory called doc-resources.

Under the top-level directory is a sub-directory for each package included in


the documentation set. This package sub-directory contains the package-
level index pages. If the package is documented in this set (either including
or excluding source code) then the package subdirectory also includes a
Linked packages directory structure that reflects the webMethods namespace, containing
do not contain documentation for the nodes within the package.
node pages. A
When you generate documentation for multiple packages with the location
linked package is set to inside the package being generated, DocGen creates documentation
a link to node inside each of the documented packages. Each packages documentation will
documentation in contain top-level and package-level subdirectories (plus the doc-resources
another
directory). The package level subdirectory corresponding to the package
containing the documentation will contain the node pages for that package.
documentation set.

20
FIGURE 20. Directory structure for two packages generated "inside the package being generated"

21
5
Chapter

Managing Documentation
Use this section to discover how to manage the
documentation you have generated through the Status /
History page.

Overview of the Status / History page


The Status / History page shows you the progress of any document sets
being currently generated, and also provides access to all of the document
management
functions.

The status / history


page is sorted to
show current
documentation
first, followed by
outdated
documentation.
Documentation is
sorted by
Documentation Set
Id.

22
FIGURE 21. Overview of the Status / History page.

Changing a documentation set Id and title


Use the edit button to change the unique Id and/or title of a
documentation set.

Selecting the icon will open the Edit Documentation Set page. Provide new
values for the documentation set and hit Submit.

FIGURE 22. The Edit Documentation Set page.

You need to regenerate the documentation set for any changes to the
documentation set title to take effect in the generated documentation.

23
Re-generating documentation
There may be a Use the regenerate button to regenerate a documentation set. This is a
convenient way to update your documentation after you have made changes
small delay
to your code.
between a
generate request While it is being regenerated, a documentation set is removed from the list of
and a generated documentation (this helps to prevent multiple requests to re-
generate the same documentation set). It will display in the list of currently
documentation set
generating documentation.
appearing in the
list of currently
generating Removing documentation from the history page
documentation.
Use the remove button to remove a documentation set from the history
page. The generated documentation is still available, but the documentation
set will no longer be displayed on the history page, and is not available for
other management tasks (e.g. regenerate).

Deleting generated documentation


Use the delete button to delete a generated documentation set, including
all generated pages. This will also remove the documentation set from the
You cannot delete history page, making it unavailable for other management tasks (e.g.
outdated regenerate).
documentation
The Path of the package(s) in the documentation set identifies the top-level
sets.
directory for each package. This is where the delete operation will start.
Deleting a The delete operation deletes files from your system, so use it
documentation set carefully. At the top-level directory (where index.html is created), it will
has no effect on only delete files that DocGen has created (i.e. any other files at the top-level
are preserved). All other generated directories (i.e. package-level and
linked or outdated
documented node directories) are removed without checking the contents.
packages within Directories that DocGen did not create are preserved.
that set.
If you have generated documentation directly into the home page of a
Regenerating a package (i.e. <packageName>/pub), then DocGen will re-create a default
index.html page for that package after deleting the one generated by
documentation set
DocGen.
makes all
packages in the set
current again.

24
Outdated documentation
If you document two packages into the same location, then files generated
from the first documentation set are overwritten by the second set. The
documentation attached to the first documentation set is considered by
DocGen to be outdated.

Outdated packages are displayed with a shaded background, and their Last
generated status contains a link back to the package that has replaced them.

If a documentation set contains only outdated packages, then the entire


documentation set is treated as outdated.
Take backups of
Outdated documentation sets display at the bottom of the history list, using a
your packages different colored title bar and italic font.
regularly!
Delete operations are ignored for outdated and linked packages. You can
only delete generated documentation through its current package.

25
6
Chapter

Advanced Topics
This section is intended for advanced users, and describes
ways to enhance and customize the way DocGen works.

Scheduling re-generation of documentation


You can use the built-in scheduler in the Integration Server to automatically
re-generate documentation sets. This is useful during times of active code
changes to ensure that your documentation stays in-sync with the actual
code.

To do this, create a simple Flow service that calls DocGen.ui:refreshDocSet,


passing the Id of the documentation set you want to regenerate (e.g.
D O C G E N _ 0 0 0 0 5 . Use pub.flow:debugLog to record the message output by
refreshDocSet in your server log. Then, use the Integration Servers task
scheduler to execute your Flow service at an appropriate time (e.g. 8pm
each night).

Changing the documentations look-and-feel


The look and feel of the documentation created by DocGen is affected by:
Make a backup
before changing 1. icons used throughout the documentation, contained in the
any of these files! DocGen packages /pub/resources directory,

2. stylesheet styles applied to text within the documentation,


contained in the DocGen packages /templates directory, and,

26
3. template files used to generate the documentation, contained
in the DocGen packages /templates directory.

You are free to make modifications and/or replace any of these files to alter
the look and feel of the generated documentation. Make sure you keep a
backup copy of the original files though, just in case!

Controlling access to DocGen


Access to DocGen is controlled through the .access file located in the
DocGen packages/pub directory. Initially, this is set to allow access by users
within the Integration Servers Developers ACL group. You can alter this
file to select a more appropriate ACL group.

27
SOFTWARE LICENSE AGREEMENT
PLEASE READ THIS SOFTWARE LICENCE AGREEMENT CAREFULLY. IF YOU DO NOT AGREE WITH ANY PART OF THIS AGREEMENT,
DO NOT CLICK THE "I ACCEPT" BUTTON, OR USE THE SOFTWARE ON YOUR COMPUTER/SERVER. IF YOU CLICK THE "I ACCEPT"
BUTTON OR USE THE SOFTWARE, THIS IS TAKEN TO MEAN THAT YOU AGREE WITH ALL ITEMS IN THIS AGREEMENT.

This is the Software License Agreement ("SLA") between Vanguard Integration Pty Ltd whose ABN is 52 096 310 619 and whose registered
office is 2.01, 365 Little Collins Street, Melbourne in the State of Victoria ("The Licensor") and The Licensee ("You") who has been granted a
non-exclusive, non- transferable licence agreement for the right to use one of Licensors products (the "Software"), subject to one of the
following conditions:

(a) in return for a one-time license fee payable up front; or,


(b) for the purpose of evaluating the Software for a period of not more than thirty (30) calendar days (the "Evaluation Period"),
commencing from the earliest of the "License Start Date" as displayed in the "License Info" screen, or the date you first installed the
Software.

The Software's "License Info" screen displays information about Your currently installed license, including "License type" and "Licensed
Users". The Licensor offers two (2) types of licenses:

(a) Evaluation - This license type is designed to provide You with the opportunity to evaluate the Software prior to purchasing it.
Up to 10 users may use an Evaluation license. You may not keep any documentation generated by the Software under an Evaluation
license, unless you purchase a Professional or Corporate license.

(b) Corporate - This license type is designed for use by project development teams working for a single company, and is designed to
include use by contractors and other non-employees of Your company. A Corporate license is limited to a maximum number of users (the
"Licensed User Limit"), representing the total number of individuals who are licensed to use the Software. You may install a Corporate
license on any servers and/or desktop and/or portable machines within Your corporate network, provided that you take reasonable steps to
ensure that:

the total number of users who can access the Software on those servers will not exceed Your Licensed User Limit; and
The Software is not made available for use outside of your corporate network.

Note: The Licensed User Limit for a Corporate License may be "Unlimited users" meaning there is no restriction on the number of
users who can use The Software, provided that The Software is used only on machines within the Licensee's corporate network.

All clauses in this agreement apply to all license types, except where a clause or section of a clause is clearly designated as applying to a
particular license type only. Where a clause or part of a clause applies only to a particular type of license, the clause(s) or part(s) of the
clause(s) that apply to Your license type are indicated by the name of the license type displayed in square brackets, in the following
manner:

This text applies to all license types, and:


[Evaluation] this text applies to Evaluation licenses only.
[Corporate] this text applies to Corporate licenses only.

SOFTWARE LICENSE

1. The Licensor is an Australian citizen and/or an Australian legal entity.


2. The Licensor, as creator of an original intellectual work or product, is the sole Owner of the Software and, under the Copyright
Act 1968 (as amended) (Cth), has exclusive rights to publish and reproduce the Software, to assign, lease or licence others to use or deal
with the Software, and/or to restrict any person or legal entity from using or dealing with the Software.
3. Under existing arrangements to protect the intellectual products of creators within Australia, which do not include any form or
scheme of registration, and under reciprocal international treaties, these exclusive rights are automatically protected and shall continue to be
protected within Australia and worldwide for at least fifty years from the moment this intellectual product was made available to the public.
4. This is a one-time, non-exclusive, non-transferable licence to use the Software:
(i) [Evaluation] for evaluation purposes only.
(ii) [Corporate] in return for the one-time license fee paid by You as full and final settlement.
5. The Licensor grants to You the right to install under Licence:
(i) [Evaluation] one (1) copy of the Software on a single server to be used for evaluation purposes only, by up to 10
network users at any one time.
(ii) [Corporate] multiple copies of the Software on multiple computers within Your corporate network, to be used by a
number of individual network users not to exceed your Licensed User Limit.
6. The Software is licensed, not sold.
7. The Software is protected by intellectual property laws of Australia and current applicable international treaties.

28
8. The Licensor grants to You the right to make copies of the Software for use as backup copies of the Software in service and
maintenance and restoration of the computer system and/or network server and for no other purpose.
9. If this Software contains documentation that is provided in the form of a book or printed material, You may print one copy of
such printed documentation as is needed for each of the licensed users of the Software on Your computer system or network (implied by
Clause 5 above) for use by the users in training in and operation of the Software and for no other purpose.
10. If this Software contains documentation that is provided only in electronic form, You may make this electronic documentation
available on the network upon which the Software is installed and active or may print one copy of such electronic documentation for each
of the licensed users of the Software on Your computer system or network (implied by Clause 5 above) for use by the users in training in
and operation of the Software and for no other purpose.
11. All title and intellectual property rights in and to the Software and any and all accompanying electronic and/or printed materials,
and any copies of the Software are owned by and shall remain with the Licensor.
12. All rights not specifically granted under this SLA are reserved by the Licensor.
13. You may not edit or modify the Software in any manner whatsoever without the express, signed, written agreement of the
Licensor.
14. You may not market, distribute, sublicense, lease, or rent the Software to a third party without the express, signed, written
agreement of the Licensor.
15. You may not reverse engineer, decompile, or disassemble the Software, without the express, signed, written agreement of the
Licensor.
16. You may not use the Software in connection with any purpose or in connection with any Internet site that is likely to:
(a) infringe any intellectual property rights of the Licensor or any other third party; or
(b) violate any applicable law of the Commonwealth of Australia or any State or Territory of Australia; or
(c) promote racism, hatred, or pornography.
17. Without prejudice to any other rights, the Licensor may terminate this SLA if You fail to comply with the terms and conditions of
this SLA and, in the event that this occurs, You agree to immediately remove the Software from Your computer or server or network or web
site. In such event, You must destroy all copies of the Software and all of its related documentation and component parts.
18. [Evaluation] This evaluation license terminates on expiry of the Evaluation Period. On termination of this evaluation license, unless
you purchase a Corporate or Professional license, You agree to remove the Software from Your computer or network or web site, and
destroy all copies of the Software and all of its related documentation and component parts, and any output files created by the Software in
the course of Your evaluation.
19. If You have acquired this Software Licence in Australia, this SLA is governed by the Copyright Act 1968 (as amended) (Cth), any
current relevant laws of the Commonwealth of Australia, any applicable international treaties entered into and agreed upon by the
Commonwealth of Australia, and any applicable laws and regulations of the State of Victoria. You must agree to submit to the jurisdictions
of the courts of Victoria.
20. The Software is designed to support development activities. Installation or use of The Software on production servers is not
recommended or supported by the Licensor.

LIMITED WARRANTY

21. Subject to clause 24, the Licensor warrants that the Software will perform substantially in accordance with the accompanying
documentation for a period of 90 days from the date You install the Software on Your computer or server.
22. To the extent permitted by any laws of the Commonwealth of Australia or any relevant laws or regulations of the State of Victoria,
the Licensor makes no warranties with respect to the Software and all other terms, conditions, warranties, undertakings or inducements,
whether express or implied, are hereby expressly excluded.
23. In the event that any conditions or warranties are implied by the Trade Practices Act 1974 (as amended) ("The Act"), the entire
liability of the Licensor for breach of any such conditions or warranties (other than a condition or warranty implied by s.69 of the Act) and
the exclusive remedy to You shall be limited to, at the Licensor's choice, either (a) the replacement of the Software or the supply of an
equivalent product, (b) the repair of the Software, (c) the payment of the cost of replacing the Software or of acquiring an equivalent
product, or (d) the payment of having the goods repaired. Any replacement or repaired Software will be warranted from the moment of
replacement or repair for the unused remainder of the original warranty period or 30 days, whichever is longer.
24. This limited warranty is void to the extent that failure of the Software results from modification, accident, abuse or misapplication
or any failure by You to observe obligations under Clauses 12, 13, 14, 15 and/or 20 of this Agreement.

29