Академический Документы
Профессиональный Документы
Культура Документы
Version: 0.1
1. Document Control
1.2 Contributors
1.3 Reviewers
Page ii of 19
Contents
1. Document Control......................................................................................ii
1.1 Revision History........................................................................................................ ii
1.2 Contributors.............................................................................................................. ii
1.3 Reviewers................................................................................................................. ii
2. Introduction................................................................................................1
2.1 Scope for this Document.......................................................................................... 1
2.3 Audience.................................................................................................................. 1
3. Design Overview........................................................................................2
3.1 Design Goals............................................................................................................ 2
3.2 Requirements........................................................................................................... 2
3.2.1 Platform independent......................................................................................2
3.2.2 Independent of existing software installations.................................................2
3.2.3 Deploy to multiple environments.....................................................................2
3.2.4 Handle the following components...................................................................2
3.2.5 Integrate with a source control system............................................................3
3.2.6 Easy to use..................................................................................................... 3
3.3 Technology............................................................................................................... 3
Page iii of 19
5.3.1 CompileJava................................................................................................... 7
5.3.2 CreateWar...................................................................................................... 8
5.3.3 CreateEar....................................................................................................... 8
5.3.4 DeployAIABPEL.............................................................................................. 8
5.3.5 DeployAIAESB................................................................................................ 9
5.3.6 DeployAIAXSD............................................................................................... 9
5.3.7 DeployBPEL................................................................................................... 9
5.3.8 DeployDVM................................................................................................... 10
5.3.9 DeployESB................................................................................................... 10
5.3.10 DeployJava................................................................................................... 10
5.3.11 DeployXref.................................................................................................... 11
5.3.12 Download...................................................................................................... 11
5.3.13 EarJava......................................................................................................... 11
5.3.14 WarJava........................................................................................................ 12
5.3.15 MakeAll......................................................................................................... 12
5.3.16 Promote........................................................................................................ 12
5.3.17 SendMail....................................................................................................... 13
5.3.18 UndeployBPEL............................................................................................. 13
5.3.19 UndeployESB...............................................................................................13
5.4 OSBS – Web Interface........................................................................................... 14
Page iv of 19
2. Introduction
This document describes how the Oracle SOA Build system is designed. It describes to
structure of the tool and how it integrates with the different technologies. After reading the
document the reader should be able to maintain this tool to make changes and fix bugs.
Java
Ant
Oracle SOA Suite
Unix scripting
Perl
2.3 Audience
This document is targeted for technical readers that will maintain the Oracle SOA Build
System. It is expected that the reader has some technical background related to the
technologies mentioned in the previous paragraph.
1 Java http://java.sun.com
2 Ant http://ant.apache.org
3 Oracle SOA Suite http://www.oracle.com/technology/soa/index.html
http://download-uk.oracle.com/docs/cd/B31017_01/integrate.1013/b28981/deployproc.htm
http://www.oracle.com/technology/tech/soa/soa-suite-best-practices/auto-deploy.html
4 Unix scripting http://tldp.org/LDP/Bash-Beginners-Guide/html/index.html
5 Perl http://www.perl.org
6 OSBS User Guide UsingANTinSOAEnvironment_v??.doc
Page 1 of 19
3. Design Overview
The goal for this design is to design a system that will automate the deployment of SOA
components to various environments; development, test, production etc.
3.2 Requirements
The system must be design and implemented on the following business requirements:
Platform independent
Independent of existing software installations
Deploy to multiple environments
Handle the following components;
o BPEL
o ESB
o Human Workflow
o Java
o AIA
Integrate with a source control system
Easy to use
The system should run on any platform; Linux, Windows or any other Unix system.
The system should not depend on a particular software installation of a vendor. This
means that the system can be installed on any server or workstation in the network
infrastructure.
The system should be run standalone.
Every project has multiple environments that implements a application, for example
development, test, acceptance and production environment. These are the most common
used environments. The OSBS should handle any environment.
Page 2 of 19
3.2.4 Handle the following components
OSBS should deploy and undeploy any component in a SOA project; BPEL, ESB,
Human workflow. While a project consists also of non SOA components, it should
anticipate also on this, like Java or AIA components.
Source control is essential when implementing a project. OSBS should integrate the
source control systems.
The OSBS should be easy to use. Any complexity on the usages should be hidden from
the user;
3.3 Technology
The system must be implemented based on following Oracle technology:
Page 3 of 19
Design decisions
Page 4 of 19
4. Oracle SOA Build Server Design
This diagram shows an overview of the OSBS. The core application is in the middle and
exists only in a build.xml file. This file is an ANT project file. In this project file all tasks of
OSBS are defined.
From this project file the various environments are being called. This depends on various
property files.
Runtime libraries, supplied with OSBS, are used to make the OSBS independent of
existing software installations.
The project file is called via the command line shell script or via the web interface written
in Perl.
Page 5 of 19
4.2 Technical structure
A script is executed, obbbuild.sh, that will parse the command line arguments and read
the runtime libraries.
After the check on the syntax the project file of ant, build.xml, is called via Java and Ant
runtime libraries with the supplied arguments.
The web interface, based on a Perl script, will collect the arguments from the HTTP
request and transform those into a command line argument. So the Perl script calls the
obbuild.sh script.
Page 6 of 19
5. Oracle SOA Build Server Design
The shell script is used to verify the syntax of the command line parameters. It should
provide initial feedback if the syntax is not correct.
Initially the tool is written for Unix like operating system using the Kourne shell.
Set the correct classpath for the used technologies; Oracle SOA; AIA; SVN, etc.
Page 7 of 19
5.2 OSBS – build.xml
The build file starts with an initialization part. In this part additional ANT tasks and
functionality is added. This is based on the libraries that were defined by the classpath in
the shell script.
Then there is a part of ‘hidden’ tasks. These are tasks that are used internally and should
not be exposed to the user when it asks of ‘help’ via the command line. The tasks are
often used by other tasks to make the build file maintainable.
At last the various definitions of each task are defined. Each tasks runs on his own. A
task can call others tasks.
5.3.1 CompileJava
Page 8 of 19
Input
Output
Arguments
5.3.2 CreateWar
Create a WAR file containing all the JAR files of the BPEL processes.
Input
Output
Arguments
5.3.3 CreateEar
Create an EAR file based on the WAR file that contains the BPEL jar files.
Input
The WAR file created from the CreateWAR task for this application
Output
Arguments
5.3.4 DeployAIABPEL
Deploy an AIA BPEL processes to a domain on a remote application server on which AIA
is configured.
Input
Page 9 of 19
The compiled JAR file of the BPEL process
Output
The JAR file is deployed to the application server and registered to AIA
Arguments
5.3.5 DeployAIAESB
Deploy an AIA ESB service to a esb-system on a remote application server on which AIA
is configured.
Input
Output
The ESB service is deployed to the application server and registered to AIA
Arguments
5.3.6 DeployAIAXSD
Deploy the AIA XSD/WSDL definitions to the remote application server on which AIA is
configured.
Input
Output
Arguments
Environment setting
5.3.7 DeployBPEL
Input
Output
Page 10 of 19
A JAR file with the compiled BPEL process
Arguments
5.3.8 DeployDVM
Deploy all or single domain value map (DVM) table files to the server
Input
Output
Arguments
5.3.9 DeployESB
Input
Output
Arguments
5.3.10 DeployJava
Input
Output
The EAR file, from the CreateEAR task, is deployed to the application server
Arguments
Page 11 of 19
Environment setting, Name of the Java Application
5.3.11 DeployXref
Input
Output
Arguments
5.3.12 Download
Input
Output
The source code is exported from source control into a temporary staging area.
Arguments
5.3.13 EarJava
Input
The WAR file created from the WarJava task for this application
Output
Arguments
Page 12 of 19
5.3.14 WarJava
Input
The compiled classes from the CompileJava task for this application
Output
Arguments
5.3.15 MakeAll
Execute all the tasks that is needed to create a complete new set of the application. This
means that all the components of the application, like BPEL; ESB ; Java, are being
compiled and deployed to the application server in the correct sequence.
Chicken-egg issue: A process A could call another process B that is not yet deployed,
while the process B is calling process A.
Input
Output
Compiled version of BPEL / ESB / Java / etc have been created and deployed to the
application server.
Arguments
5.3.16 Promote
The promote task is use to change the source code for a particular environment
(development / acceptance / etc). This means that end-points; URL’s or any other code
that need to be changed for specific environment should be replaced.
The promotion should take place on the whole source tree or on a single component.
Input
Page 13 of 19
Output
The source code has been updated on end-points, URL’s or any other code that need to
be replaced.
Arguments
5.3.17 SendMail
Send an email.
Input
Output
A email is send.
Arguments
5.3.18 UndeployBPEL
Input
Output
Arguments
5.3.19 UndeployESB
Page 14 of 19
Input
Output
Arguments
A simple web interface should be provided. This interface must act as a shell around the
command line script. The web interface encapsulates the command line interface to a
web interface in which the user can execute a selection of the tasks.
A list of tasks that can be selected; for example Compile BPEL, Deploy Deploy
ESB, Download from source control.
Page 15 of 19