Manual Setup of a IPP Lifecycle Management and Integration Runtime Environment

The following documentation describes how a Lifecycle Management and an Integration Runtime environment for the Infinity Process Platform can be set up manually as opposed to using the Infinity on Demand Facilities or a setup by Java Developers within an Eclipse Environment

The Lifecycle Management Server allows to manage Integration Project configurations for multiple Integration Solutions and the creation of instances of these Solutions (e.g. for production, testing, demonstration and training purposes) in corresponding Integration Runtime Environments.

Lifecycle Management Deployment
Figure: Lifecycle Management Deployment

Note, that the Integration Runtime Environment can run multiple instances of the same or of different Integration Solutions at the same time leveraging the multi-tenancy capabilities of IPP.

Furthermore, a single Lifecycle Management Server can manage Solution Instances in multiple Integration Runtime Environments. For instance, you may decide to deploy one Integration Runtime Environment on one server on one testing machine to carry all instances for testing and demo purposes and another Integration Runtime Environment on another server on a dedicated production machine which only carries a single solution instance for production.

The manual setup approach in this chapter is likely to be used to set up

The following tasks are assumed to be performed by a system administrator or at least by a technology-savvy resource with Java/J2EE background.

Initially, you may want to create one Lifecycle Management Server and a single Integration Runtime Server. Later you may add additional Integration Runtime Servers to your setup.

The Manual Setup for the following Application Servers and RDBMS are documented.

Configurations for other Application servers and RDBMS products will be provided in the future.

Installation Time

You should plan for 60-90 minutes for the steps described below.

Prerequisites

The prerequisites needed to set up the Lifecycle Management and Integration Runtime Environments are the following:

Please refer to the Infinity Release Notes for specific versions supported in the current release.

Details about a manual setup using Tomcat and SQL Server databases can be found here.

Internet Connectivity

During the installation, you will need to download software artifacts from the internet. Make sure that you are connected.

MySQL Database

The MySQL database will store all lifecycle management artifacts such as solutions, releases and software assets as well as all runtime configuration such as runtime environments and solution instances. Hereby, the runtime elements represent the Integration Runtime Environment the Lifecycle Management Environment is connected to.

Infinity Artifact Repository Access

All IPP artifacts are provided in the Infinity Artifact Repository.

Note
Before proceeding further, please contact the Infinity Process Platform team to get all grants assigned correctly in the artifact repository.

In the subsequent sections you will be asked to download projects from this repository. To log into the repository, you can use your INTERNAL account (without preceeding INTERNAL/) and password for it.

Maven

Maven is used as a scripting utility to download all required IPP artifacts and perform certain tasks during the installation.

Install Maven and follow the instructions in chapter Creating a Infinity Process Platform Runtime Environment with Apache Maven of the Installation Guide for preparing your runtime environment.

Configure the Maven Repository

The global Maven configuration is stored in the file settings.xml in the M2_HOME/inf folder or in the .m2 folder in the user's $home (on Windows: %HOMEPATH%) directory. It is recommended to use the .m2 folder. If you've never used Maven before, it is likely that the .m2 folder does not exist. If so, create it manually. This can be done via the Command Prompt. Note that if using Windows Explorer, type in .m2. (with the trailing dot as you will be unable to create the folder without it). If .m2/settings.xml does not exist, you may use the following pre-configured template: settings.xml to get started by saving it into your .m2 folder, e.g. on Windows C:/Users/$username/.m2/settings.xml.

In order to allow Maven to access the necessary artifacts you need to configure access to the Infinity Artifact Repository in your maven .m2/settings.xml This can be done by adding the following in settings.xml. If you have used the pre-configured settings.xml template, this entry already exists, but the password-token will need to be replaced as explained the above mentioned installation chapter.

<server>
    <id>ipp-repo</id>
    <username>username</username>
    <password>password-token</password>
</server>
<server>
    <id>iod-releases</id>
    <username>username</username>
    <password>password-token</password>
</server>
<server>
    <id>isb-libs</id>
    <username>username</username>
    <password>password-token</password>
</server>

After adding the user name and password token to your settings.xml, it will look similar as in the following snippet:

<server>
   <id>ipp-repo</id>
   <username>boris.smith</username>
   <password>/{DESede/}SyHdBH1tp9o1zgXweqD25A==</password>
</server>
<server>
   <id>iod-releases</id>
   <username>boris.smith</username>
   <password>/{DESede/}SyHdBH1tp9o1zgXweqD25A==</password>
</server>
<server>
   <id>isb-libs</id>
   <username>boris.smith</username>
   <password>/{DESede/}SyHdBH1tp9o1zgXweqD25A==</password>
</server>

If you are working from behind an HTTP Proxy, make sure the proxy is configured in the settings.xml similar to example below. If you have used the pre-configured settings.xml template, this entry already exists, but is commented out. In this case, uncomment this section and change the proxy <host> as appropriate in your environment setup.

<proxy>
   <active>true</active>
   <protocol>http</protocol>
   <host>10.244.145.252</host>
   <port>8080</port>
   <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
</proxy>

<proxy>
   <active>true</active>
   <protocol>https</protocol>
   <host>10.244.145.252</host>
   <port>8080</port>
   <nonProxyHosts>localhost|127.0.0.1</nonProxyHosts>
</proxy>

Note that you may also need to add the <username> and <password> elements to the <proxy> element if your proxy requires basic authentication as outlined here.

<proxy>
   ...
   <username>user.name</username>
   <password>somepassword</password>
   ...
</proxy>

Set up a <profile> for Infinity Process Platform in the <profiles> section of the settings.xml file. If you have used the pre-configured settings.xml template, this entry already exists.

<profiles>
   <profile>
      <id>IPP</id>
      <activation>
         <activeByDefault>true</activeByDefault>
      </activation>
      
      <repositories>
         <repository>
            <!-- (1.) -->
            <id>ipp-repo</id>
            <url>https://infinity.sungard.com/repository/ipp-libs</url>
         </repository>
         <repository>
            <!-- (2.) -->
            <id>central</id>
            <url>http://repo1.maven.org/maven2</url>
         </repository>
         <repository>
            <!-- (3.) -->
            <id>java.net</id>
            <url>http://download.java.net/maven/2</url>
         </repository>
         <repository>
            <id>jboss</id>
            <name>JBoss Repository</name>
            <url>https://repository.jboss.org/nexus/content/groups/public-jboss/</url>
         </repository>
         <repository>
            <id>iod-releases</id>
            <url>https://infinity.sungard.com/repository/iod-releases</url>
         </repository>
         <repository>
            <id>isb-libs</id>
            <url>https://infinity.sungard.com/repository/isb-libs</url>
         </repository>
         
         <repository>
            <id>iod-libs-dev</id>
            <url>https://infinity.sungard.com/repository/iod-libs-dev</url>
         </repository>
         <repository>
            <id>ipp-snapshots</id>
            <url>https://infinity.sungard.com/repository/ipp-snapshots</url>
         </repository>
         <repository>
            <id>isb-snapshots</id>
            <url>https://infinity.sungard.com/repository/isb-snapshots</url>
         </repository>
      </repositories>
      
      <pluginRepositories>
         <pluginRepository>
            <!-- (4.) -->
            <id>central-plugin</id>
            <name>Central PlugIn Repository</name>
            <url>http://repo1.maven.org/maven2</url>
         </pluginRepository>
      </pluginRepositories>
   </profile>
</profiles>

Integration Runtime Environment Setup

Note
Throughout the section below, variables INTEGRATION_RUNTIME_TOMCAT_HOME and INTEGRATION_RUNTIME_HOME must be interpreted and/or replaced with the equivalent actual folder paths in your setup.

Setting up the Integration Runtime Tomcat Server

Building the Integration Runtime WAR File

Create an empty folder which will be referred to as INTEGRATION_RUNTIME_HOME-<version> in the subsequent sections. In case you decide to use an existing folder, it's recommended to delete existing archetypes first.

Create integration runtime Maven project (adjust below archetype version accordingly).

mvn archetype:generate -DarchetypeGroupId=com.infinity.iod.archetypes -DarchetypeArtifactId=iod-archetype-tc6-ir-portal-war -DarchetypeVersion=1.3 -DgroupId=com.infinity.iod -DartifactId=integration-runtime-1.3 -Dversion=1.0.0-SNAPSHOT

Confirm with Y when prompted:

[INFO] Using property: groupId = com.infinity.iod
[INFO] Using property: artifactId = integration-runtime
[INFO] Using property: version = 1.0.0-SNAPSHOT
[INFO] Using property: package = com.infinity.iod
Confirm properties configuration:
groupId: com.infinity.iod
artifactId: integration-runtime-1.3
version: 1.0.0-SNAPSHOT
package: com.infinity.iod
 Y: : Y

On successful completion, you should see something like the following:

[INFO] project created from Archetype in dir: C:/development/ipp/IR/integration
-runtime
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:04.319s
[INFO] Finished at: Thu Apr 11 06:32:08 CDT 2013
[INFO] Final Memory: 10M/120M
[INFO] ------------------------------------------------------------------------

If required, adjust carnot.properties in INTEGRATION_RUNTIME_HOME/integration-runtime-<version>/src/main/resources for:

Database connectivity settings (default values)

AuditTrail.URL = jdbc:mysql://localhost:3306/ir
AuditTrail.User = ir
AuditTrail.Password = ir
AuditTrail.Schema = ir
AuditTrail.Instance = ir
AuditTrail.Port = 3306
AuditTrail.Host = localhost

Document Management settings (default values)

Ipp.JcrRepository.Home = C:/tmp/repository-ir

Adjust pom.xml in INTEGRATION_RUNTIME_HOME/integration-runtime-<version>/pom.xml accordingly

<db.user>root</db.user>
<db.password>root</db.password>
<db.ir.user>ir</db.ir.user>
<db.ir.password>ir</db.ir.password>

If required, the target IPP version can be changed by modifying <ipp.version> in INTEGRATION_RUNTIME_HOME/integration-runtime-<version>/pom.xml

<ipp.version>7.1.1-RC3-SNAPSHOT</ipp.version>

Build the Maven project from the INTEGRATION_RUNTIME_HOME/integration-runtime-<version> folder. Note that this may take several (possibly in excess of 45+) minutes to complete.

mvn clean package

Note that with below JVM parameter, the DB operations setting up audit trail schema and Lifecycle Management schema as well as deploying models can be skipped.

-Dmaven.test.skip=true

e.g. mvn clean package -Dmaven.test.skip=true would build IR or Lifecycle Management but not do any database operations.

On successful completion, you should see something like the following:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 50:12.533s
[INFO] Finished at: Thu Apr 11 07:36:49 CDT 2013
[INFO] Final Memory: 26M/236M
[INFO] ------------------------------------------------------------------------

If a timeout error (similar to below) occurs, re-run the above command.

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.3:copy-dependencies
(default) on project integration-runtime: Execution default of goal 
org.apache.maven.plugins:maven-dependency-plugin:2.3:copy-dependencies failed: 
Plugin org.apache.maven.plugins:maven-dependency-plugin:2.3 or one of its dependencies could not be resolved: 
Failed to collect dependencies for org.apache.maven.plugins:maven-dependency-plugin:jar:2.3 (): 
Failed to read artifact descriptor for org.apache.maven:maven-artifact:jar:2.0.9: Could not transfer artifact 
org.apache.maven:maven-artifact:pom:2.0.9 from/to central-plugin (http://repo1.maven.org/maven2):
Error transferring file: Connection refused: connect -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

Copy the resulting integration-runtime.war file under INTEGRATION_RUNTIME_HOME/integration-runtime-<version>/target into INTEGRATION_RUNTIME_TOMCAT_HOME/webapps.

Lifecycle Management Setup

Note
Throughout the section below, variables LIFECYCLE_MANAGE_TOMCAT_HOME and LIFECYCLE_MANAGEMENT_HOME must be interpreted and/or replaced with the equivalent actual folder paths in your setup.

Lifecycle Management Database Schema Adjustment

In IPP 7.3 RC2, some columns in Lifecycle Management schema are being too long. To fix this issue, you have to change the names of these two columns. This change will be reflected with upcoming Lifecycle Management archetype for IPP 7.3. However, in the case you want to keep your existing Lifecycle Management database, you need to apply the change manually.

ALTER TABLE CA_BUNDLE_PROVISIONING_CONFIG CHANGE INFRASTRUCTUREPROVISIONINGPROCESS INFPROVPROCESS bigint(20);
ALTER TABLE CA_BUNDLE_PROVISIONING_CONFIG CHANGE PLATFORMPROVISIONINGPROCESS PLAPROVPROCESS bigint(20);

Setting up the Lifecycle Management Tomcat Server

Building the Lifecycle Management WAR File

Create an empty folder which will be referred to as LIFECYCLE_MANAGEMENT_HOME in the subsequent sections.

Create lifecycle management Maven project (adjust below archetype version accordingly)

mvn archetype:generate -DarchetypeGroupId=com.infinity.iod.archetypes -DarchetypeArtifactId=iod-archetype-tc6-lm-portal-war -DarchetypeVersion=1.2 -DgroupId=com.infinity.iod -DartifactId=lifecycle-management -Dversion=1.0.0-SNAPSHOT

Confirm with Y when prompted:

[INFO] Using property: groupId = com.infinity.iod
[INFO] Using property: artifactId = lifecycle-management
[INFO] Using property: version = 1.0.0-SNAPSHOT
[INFO] Using property: package = com.infinity.iod
Confirm properties configuration:
groupId: com.infinity.iod
artifactId: lifecycle-management
version: 1.0.0-SNAPSHOT
package: com.infinity.iod
 Y: : Y

On successful completion, you should see something like the following:

[INFO] project created from Archetype in dir: C:/development/ipp/LM/lifecycle-management
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13.780s
[INFO] Finished at: Thu Apr 11 07:44:51 CDT 2013
[INFO] Final Memory: 10M/120M
[INFO] ------------------------------------------------------------------------

If required, adjust carnot.properties accordingly in LIFECYCLE_MANAGEMENT_HOME/lifecycle-management/src/main/resources for:

Database Connectivity settings (default values)

AuditTrail.URL = jdbc:mysql://localhost:3306/lm
AuditTrail.User = lm
AuditTrail.Password = lm
AuditTrail.Schema = lm
AuditTrail.Instance = lm
AuditTrail.Port = 3306
AuditTrail.Host = localhost

Document Management settings (default values).

Ipp.JcrRepository.Home = c:/tmp/repository-lm

and Lifecycle Management url settings (default values)

Lifecycle.portal.internal.url=http://localhost:8081
Lifecycle.portal.external.url=http://localhost:8081

Adjust pom.xml in LIFECYCLE_MANAGEMENT_HOME/lifecycle-management/pom.xml according to

<db.user>root</db.user>
<db.password>root</db.password>
<db.lm.user>lm</db.lm.user>
<db.lm.password>lm</db.lm.password>
<db.jcr.user>jcr16</db.jcr.user>
<db.jcr.password>jcr16</db.jcr.password>

If required, the target version can be changed by modifying <ipp.version> in LIFECYCLE_MANAGEMENT_HOME/lifecycle-management/pom.xml

<ipp.version>7.1.3</ipp.version>

Build Lifecycle Management Maven project from LIFECYCLE_MANAGEMENT_HOME/lifecycle-management folder. Note that this may take several (possibly in excess of 45+) minutes.

mvn clean package

On successful completion, you should see something like the following:

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1:04:37.514s
[INFO] Finished at: Thu Apr 11 08:59:18 CDT 2013
[INFO] Final Memory: 20M/137M
[INFO] ------------------------------------------------------------------------

If a timeout error occurs (similar to below), re-run the above command

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-dependency-plugin:2.3:copy-dependencies
(default) on project integration-runtime: Execution default of goal 
org.apache.maven.plugins:maven-dependency-plugin:2.3:copy-dependencies failed: 
Plugin org.apache.maven.plugins:maven-dependency-plugin:2.3 or one of its dependencies could not be resolved: 
Failed to collect dependencies for org.apache.maven.plugins:maven-dependency-plugin:jar:2.3 (): 
Failed to read artifact descriptor for org.apache.maven:maven-artifact:jar:2.0.9: Could not transfer artifact 
org.apache.maven:maven-artifact:pom:2.0.9 from/to central-plugin (http://repo1.maven.org/maven2):
Error transferring file: Connection refused: connect -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.

Copy lifecycle-management.war in LIFECYCLE_MANAGEMENT_HOME/lifecycle-management/target into LIFECYCLE_MANAGEMENT_HOME_TOMCAT_HOME/webapps.

Lifecycle Management Portal Setup

Note
Throughout the section below, variables LIFECYCLE_MANAGEMENT_TOMCAT_HOME and INTEGRATION_RUNTIME_TOMCAT_HOME must be interpreted and/or replaced with the equivalent actual folder paths in your setup.

Starting Tomcat

Start Lifecycle Management server by running LIFECYCLE_MANAGEMENT_TOMCAT_HOME/bin/startup.bat

Start Integration Runtime server by running INTEGRATION_RUNTIME_TOMCAT_HOME/bin/startup.bat

Portal Login

Login to the Lifecycle Management Portal via http://host:port/lifecycle-management whereby host and port depend on your settings for the Lifecycle Tomcat Server. If using all the default settings from above, this would be http://localhost:8081/lifecycle-management. The default motu / motu credentials can be used.


Figure: Lifecycle Portal Login.

Setting up a Solution using the Wizard

A basic solution can be easily set up using the Default Solution Setup Wizard.

Deploying the Solution

Setting up Solution Providers

To setup Solution Providers, you have to be in the ADMINISTRATOR role as a portal user.

All users supposed to work with the environment to be set up have to be assigned to one or more Solution Providers. Solution Providers can be used to group different development teams working on different Solutions. The most simple case would be to create one single Solution Provider and assign all users supposed to work with the environment to it.

Change to the Integration Perspective and select the Create Solution Provider » link.

Enter

of the Solution Provider in the following View:

Team members for the Solution Provider can be entered by providing the corresponding

in the Solution Provider View:

Hereby the Account should be the account of the user in the Lifecycle Management and Integration Runtime Portal. Users to be assignment to a Solution Provider have to be created prior to their assignment. Find more details about user creation in @MG chapter.

After clicking Add, the added team members shows up in the Team Members table:

Users can be marked as Solution Provider Administrator in the Team Members table as shown above. This allows for these users to manage the user base of the Solution Provider as well.

Setting up Runtime Environments

To initialize Runtime Environments for use, create a Runtime Environment via the Create Runtimelink in the popup menu for your @MG node. In the General Tab of the corresponding dialog enter

for the Runtime Environment:

In the VM Tab enter the

The Administrator Account can be left empty.

In the Platform Tab you need to define which IPP/IPP you intend to use. Select Release 7.0.

The newly created/initialized Runtime Environment will be visible as a node in the Integration Runtime Tree after these operations as follows and can be used for Solution deployments.

Be aware that a Runtime Environment should only be managed by a single Lifecycle Management Environment for its entire lifetime. It is not able to manage a Runtime Environment by multiple Lifecycle Environments nor is it possible to pass management control to another Lifecycle Management Environment.

Setting up Solutions

Setting up, managing and deploying Solutions is the responsibility of the Solution Provider teams. Details are described here.

Integration Runtime Multiple instances

In case multiple instances of IR are required to run in the same server, the following port changes should be done.

OSGI JVM Binding

server.xml

hazelcast.xml