SlideShare a Scribd company logo
1 of 14
Download to read offline
Technical Design Document
(Java)
Oracle SOA Build System
i | P a g e
T a b l e o f C o n t e n t s
INTRODUCTION .....................................................................................................................................................1
Requirements of this Document...............................................................................................................1
Audience ...................................................................................................................................................1
Document Reference ................................................................................................................................1
DESIGN ..................................................................................................................................................................2
Requirements............................................................................................................................................2
Platform Independent...............................................................................................................................2
Independent of existing software installations ........................................................................................2
Deploy to multiple environments.............................................................................................................2
Handle the following components............................................................................................................2
Easy to use ................................................................................................................................................3
Command line interface.........................................................................................................................................3
Web Interface ........................................................................................................................................................3
Technology................................................................................................................................................3
Design Assumptions and Decision ............................................................................................................3
ORACLE SOA BUILD SERVER DESIGN ......................................................................................................................4
Technical Structure ...................................................................................................................................4
OSBS - Shell Script.....................................................................................................................................5
OSBS - build.xml........................................................................................................................................6
OSBS - tasks...............................................................................................................................................7
CompileJava...........................................................................................................................................................7
CreateWar .............................................................................................................................................................7
DeployAIAPEL.........................................................................................................................................................7
DeployAIAESB ........................................................................................................................................................7
DeployAIAXSD........................................................................................................................................................8
DeployBPEL ............................................................................................................................................................8
DeployDVM............................................................................................................................................................8
DeployESB..............................................................................................................................................................8
DeployJava.............................................................................................................................................................8
DeployXref .............................................................................................................................................................9
Download...............................................................................................................................................................9
EarJava...................................................................................................................................................................9
WarJava.................................................................................................................................................................9
MakeAll................................................................................................................................................................10
Promote ...............................................................................................................................................................10
SendMail..............................................................................................................................................................10
UndeployBPEL......................................................................................................................................................11
UndeployESB........................................................................................................................................................11
OSBS - Web Interface..............................................................................................................................11
Note: It is intended that this template be used in conjunction with the
Requirements Definition Document template.
Technical Design Document
ii | P a g e
REVISION HISTORY
Date Author Version Change Summary Reference to Section
08-28-2013 Deborah Obasogie 0.1 New
Technical Design Document
1 | P a g e
I n t r o d u c t i o n
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.
Requirements of this Document
This is a technical document that describes the design of the Oracle SOA Build System. The document
refers to various technologies. Readers should be aware of the following technologies and
terminologies:
 Java
 Ant
 Oracle SOA Suite
 Unix scripting
 Perl
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.
Document Reference
Ref # Document Name URL
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
Technical Design Document
2 | P a g e
D e s i g n
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.
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
Platform Independent
The system should run on any platform; Linux, Windows or any other Unix system.
Independent of existing software installations
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.
Deploy to multiple environments
Every project has multiple environments that implements an application, for example development,
test, acceptance and production environment. These are the most common used environments. The
OSBS should handle any environment.
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.
Technical Design Document
3 | P a g e
Easy to use
The OSBS should be easy to use. Any complexity on the usages should be hidden from the user;
 Command line interface
 Web Interface
Command line interface
A simple command line interface must be provided to execute all the tasks of OSBS.
Web Interface
An even simpler interface should be provided to execute common tasks to users via a web browser.
Technology
The system must be implemented based on following Oracle technology:
 Oracle Application Server
 Oracle SOA Suite
 Oracle AIA Framework
The system must be implemented based on following non-Oracle technology:
 Apache ANT – as core build system
 Perl – for the web interface
 (L)inux scripting – for the command line interface on Unix like O/S.
 Windows scripting – for Windows platform
Design Assumptions and Decision
Assumptions
 Linux is used as platform for development.
Design decisions
 SubVersion is used as source control system for integration with OSBS.
Technical Design Document
4 | P a g e
O r a c l e S O A B u i l d S e r v e r D e s i g n
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.
Technical Structure
The implementation of the OSBS is as follows:
Technical Design Document
5 | P a g e
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 ant project file will execute the specific task. 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.
OSBS - Shell Script
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. It should also provide help information on the usage of the tool.
Initially the tool is written for Unix like operating system using the Kourne shell. The following functions
should be executed in the shell script:
 Read environment settings to execute Java and ANT
 Shows help information
 Show the version of OSBS
Technical Design Document
6 | P a g e
 Show all the tasks that OSBS can execute
 Set generic the parameters for the various environments
 Verbose output option
 Pass the correct parameters to the ANT build project file.
 Set the correct classpath for the used technologies; Oracle SOA; AIA; SVN, etc.
OSBS - build.xml
The structure of the OSBS build file is as follows:
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.
Technical Design Document
7 | P a g e
OSBS - tasks
The OSBS must be able to execute the different tasks.
CompileJava
Compile Java files for a specific application.
Input
The Java source code of the application
Output
The compiled classes of the application
Arguments
Environment setting, name-of the java application
CreateWar
Create a WAR file containing all the JAR files of the BPEL processes.
Input
The name of the file
Output
The EAR file for this application
Arguments
Environment setting, name-for-the-war file
DeployAIAPEL
Deploy an AIA BPEL processes to a domain on a remote application server on which AIA is configured.
Input
The compiled JAR file of the BPEL process
Output
The JAR file is deployed to the application server and registered to AIA
Arguments
Environment setting, name-of the BPEL process, version
DeployAIAESB
Deploy an AIA ESB service to an esb-system on a remote application server on which AIA is configured.
Input
The ESB service definition
Output
The ESB service is deployed to the application server and registered to AIA
Arguments
Environment setting, name-of the ESB service
Technical Design Document
8 | P a g e
DeployAIAXSD
Deploy the AIA XSD/WSDL definitions to the remote application server on which AIA is configured.
Input
A pointer location where the AIA XSD/WSDL files are located
Output
A zip file containing the XSD and WSDL files of AIA
Arguments
Environment setting
DeployBPEL
Deploy a BPEL processes to a domain on a remote application server.
Input
The name of the BPEL process
Output
A JAR file with the compiled BPEL process
Arguments
Environment setting, Name of the BPEL process, version, domain
DeployDVM
Deploy all or single domain value map (DVM) table files to the server
Input
The name of the DVM
Output
DVM is loaded into the application server
Arguments
Environment setting, Name of the domain value map
DeployESB
Deploy an ESB service to a system on a remote application server.
Input
The name of ESB Service
Output
The ESB service is registered in the application server
Arguments
Environment setting, Name of the ESB service, esb-system
DeployJava
Deploy an EAR file to application server.
Input
The name of the Java application
Technical Design Document
9 | P a g e
Output
The EAR file, from the CreateEAR task, is deployed to the application server
Arguments
Environment setting, Name of the Java Application
DeployXref
Deploy single XREF table files to the server
Input
The name of the XREF
Output
XREF is loaded into the application server
Arguments
Environment setting, the XREF name
Download
Download latest or a specific version of the source code.
Input
Source control system
Output
The source code is exported from source control into a temporary staging area.
Arguments
Environment setting, the source code version or the latest
EarJava
Create BPEL an EAR file for a Java application.
Input
The WAR file created from the WarJava task for this application
Output
The EAR file for this application
Arguments
Environment setting, name-of the java application
WarJava
Create a WAR file for a Java application
Input
The compiled classes from the CompileJava task for this application
Output
The EAR file for this application
Arguments
Technical Design Document
10 | P a g e
Environment setting, name-of the java application
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. The task should be aware of the chicken-egg issue in
BPEL/ESB.
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
The source code of the application
Output
Compiled version of BPEL / ESB / Java / etc have been created and deployed to the application
server.
Arguments
Environment setting, bpel version, bpel domain, ESB system
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. In general this is more or less a find and replace on source
code. The promotion should take place on the whole source tree or on a single component.
Input
The source code of the application downloaded from source control
Output
The source code has been updated on end-points, URL’s or any other code that need to be
replaced.
Arguments
Environment setting, name of the component or everything
SendMail
Send an email.
Input
-
Output
A email is send.
Arguments
Technical Design Document
11 | P a g e
Environment setting, to-address, subject, message
UndeployBPEL
Undeploy a BPEL process from an application server.
Input
The name of the BPEL process to be undeployed
Output
The BPEL process is undeployed from the application server
Arguments
Environment setting, name of the BPEL process
UndeployESB
Undeploy an ESB service from the application server.
Input
The name of the ESB service to be undeployed
Output
The ESB service is undeployed from the application server
Arguments
Environment setting, name of the ESB service
OSBS - Web Interface
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. The web interface must be implemented in Perl. In the web
interface the user should be able to select;
 The environment for which the OSBS is working.
 A list of tasks that can be selected; for example Compile BPEL, Deploy Deploy ESB, Download
from source control.
 The object that belongs to the task.

More Related Content

What's hot

SAP Integration Suite L1
SAP Integration Suite L1SAP Integration Suite L1
SAP Integration Suite L1SAP Technology
 
SAP's Business Technology Platform: A Game-Changer for Intelligent Enterprises
SAP's Business Technology Platform: A Game-Changer for Intelligent EnterprisesSAP's Business Technology Platform: A Game-Changer for Intelligent Enterprises
SAP's Business Technology Platform: A Game-Changer for Intelligent EnterprisesExtentia Information Technology
 
SAP Cloud Platform API Management Technical Brief
SAP Cloud Platform API Management Technical BriefSAP Cloud Platform API Management Technical Brief
SAP Cloud Platform API Management Technical BriefSAP Cloud Platform
 
Low level design template (1)
Low level design template (1)Low level design template (1)
Low level design template (1)anosha jamshed
 
Abap package concept
Abap package conceptAbap package concept
Abap package conceptTobias Trapp
 
Discover SAP BusinessObjects BI 4.3 SP03
Discover SAP BusinessObjects BI 4.3 SP03Discover SAP BusinessObjects BI 4.3 SP03
Discover SAP BusinessObjects BI 4.3 SP03Wiiisdom
 
Sap Implementation Presentation
Sap Implementation PresentationSap Implementation Presentation
Sap Implementation Presentationlarrymcc
 
Oracle Fusion & Cloud Applications Overview
Oracle Fusion & Cloud Applications OverviewOracle Fusion & Cloud Applications Overview
Oracle Fusion & Cloud Applications OverviewAhmed El-Demasy
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices Bozhidar Bozhanov
 
Srs template
Srs templateSrs template
Srs templatemuqeet19
 

What's hot (20)

Sap hana tutorial
Sap hana tutorialSap hana tutorial
Sap hana tutorial
 
CDS Views.pptx
CDS Views.pptxCDS Views.pptx
CDS Views.pptx
 
SAP Integration Suite L1
SAP Integration Suite L1SAP Integration Suite L1
SAP Integration Suite L1
 
SAP's Business Technology Platform: A Game-Changer for Intelligent Enterprises
SAP's Business Technology Platform: A Game-Changer for Intelligent EnterprisesSAP's Business Technology Platform: A Game-Changer for Intelligent Enterprises
SAP's Business Technology Platform: A Game-Changer for Intelligent Enterprises
 
SAP Cloud Platform API Management Technical Brief
SAP Cloud Platform API Management Technical BriefSAP Cloud Platform API Management Technical Brief
SAP Cloud Platform API Management Technical Brief
 
Low level design template (1)
Low level design template (1)Low level design template (1)
Low level design template (1)
 
SAP Archiving
SAP ArchivingSAP Archiving
SAP Archiving
 
Abap package concept
Abap package conceptAbap package concept
Abap package concept
 
Discover SAP BusinessObjects BI 4.3 SP03
Discover SAP BusinessObjects BI 4.3 SP03Discover SAP BusinessObjects BI 4.3 SP03
Discover SAP BusinessObjects BI 4.3 SP03
 
Sdd template
Sdd templateSdd template
Sdd template
 
Sap Implementation Presentation
Sap Implementation PresentationSap Implementation Presentation
Sap Implementation Presentation
 
Sap Analytics Cloud
Sap Analytics CloudSap Analytics Cloud
Sap Analytics Cloud
 
Oracle Fusion & Cloud Applications Overview
Oracle Fusion & Cloud Applications OverviewOracle Fusion & Cloud Applications Overview
Oracle Fusion & Cloud Applications Overview
 
Introduction to Microservices
Introduction to MicroservicesIntroduction to Microservices
Introduction to Microservices
 
SAP DMS PLM 120
SAP DMS PLM 120SAP DMS PLM 120
SAP DMS PLM 120
 
SAP HANA Overview
SAP HANA OverviewSAP HANA Overview
SAP HANA Overview
 
Monoliths and Microservices
Monoliths and Microservices Monoliths and Microservices
Monoliths and Microservices
 
Fiori Presentation
Fiori PresentationFiori Presentation
Fiori Presentation
 
Sapui5 & Fiori
Sapui5 & FioriSapui5 & Fiori
Sapui5 & Fiori
 
Srs template
Srs templateSrs template
Srs template
 

Similar to Java Technical Design Document

vRO Training Document
vRO Training DocumentvRO Training Document
vRO Training DocumentMayank Goyal
 
Oracle sql quick reference
Oracle sql quick referenceOracle sql quick reference
Oracle sql quick referencemaddy9055
 
Practical, team-focused operability techniques for distributed systems - DevO...
Practical, team-focused operability techniques for distributed systems - DevO...Practical, team-focused operability techniques for distributed systems - DevO...
Practical, team-focused operability techniques for distributed systems - DevO...Matthew Skelton
 
Using sql server in c sharp
Using sql server in c sharpUsing sql server in c sharp
Using sql server in c sharpFaruk Alkan
 
Quickstartguidesoasuite11gr1ps4 459545
Quickstartguidesoasuite11gr1ps4 459545Quickstartguidesoasuite11gr1ps4 459545
Quickstartguidesoasuite11gr1ps4 459545Sensei64
 
Introduction to Tenable
Introduction to TenableIntroduction to Tenable
Introduction to TenableBharat Jindal
 
Chapter6 web apps-tomcat
Chapter6 web apps-tomcatChapter6 web apps-tomcat
Chapter6 web apps-tomcatVenkat Gowda
 
Simplify DevOps with Microservices and Mobile Backends.pptx
Simplify DevOps with Microservices and Mobile Backends.pptxSimplify DevOps with Microservices and Mobile Backends.pptx
Simplify DevOps with Microservices and Mobile Backends.pptxssuser5faa791
 
WeWebU OpenWorkdesk / OpenECM-Framework
WeWebU OpenWorkdesk / OpenECM-FrameworkWeWebU OpenWorkdesk / OpenECM-Framework
WeWebU OpenWorkdesk / OpenECM-FrameworkWeWebU Software AG
 
Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Vinay Kumar
 
Embedding Oracle Weblogic Server 1871199
Embedding Oracle Weblogic Server 1871199Embedding Oracle Weblogic Server 1871199
Embedding Oracle Weblogic Server 1871199cwspeaks
 
What Every Client Should Do On Their Oracle SOA Projects (whitepaper)
What Every Client Should Do On Their Oracle SOA Projects (whitepaper)What Every Client Should Do On Their Oracle SOA Projects (whitepaper)
What Every Client Should Do On Their Oracle SOA Projects (whitepaper)Revelation Technologies
 
All the amazing features of asp.net core
All the amazing features of asp.net coreAll the amazing features of asp.net core
All the amazing features of asp.net coreGrayCell Technologies
 
Presentation on Oracle Application Server
Presentation on  Oracle Application Server Presentation on  Oracle Application Server
Presentation on Oracle Application Server Muthoot finance Ltd
 
salesforce_apex_developer_guide
salesforce_apex_developer_guidesalesforce_apex_developer_guide
salesforce_apex_developer_guideBrindaTPatil
 

Similar to Java Technical Design Document (20)

vRO Training Document
vRO Training DocumentvRO Training Document
vRO Training Document
 
Oracle sql quick reference
Oracle sql quick referenceOracle sql quick reference
Oracle sql quick reference
 
Stand alone
Stand aloneStand alone
Stand alone
 
Issuetrak API
Issuetrak API Issuetrak API
Issuetrak API
 
Practical, team-focused operability techniques for distributed systems - DevO...
Practical, team-focused operability techniques for distributed systems - DevO...Practical, team-focused operability techniques for distributed systems - DevO...
Practical, team-focused operability techniques for distributed systems - DevO...
 
Elastic-Engineering
Elastic-EngineeringElastic-Engineering
Elastic-Engineering
 
Using sql server in c sharp
Using sql server in c sharpUsing sql server in c sharp
Using sql server in c sharp
 
Quickstartguidesoasuite11gr1ps4 459545
Quickstartguidesoasuite11gr1ps4 459545Quickstartguidesoasuite11gr1ps4 459545
Quickstartguidesoasuite11gr1ps4 459545
 
Introduction to Tenable
Introduction to TenableIntroduction to Tenable
Introduction to Tenable
 
Chapter6 web apps-tomcat
Chapter6 web apps-tomcatChapter6 web apps-tomcat
Chapter6 web apps-tomcat
 
Simplify DevOps with Microservices and Mobile Backends.pptx
Simplify DevOps with Microservices and Mobile Backends.pptxSimplify DevOps with Microservices and Mobile Backends.pptx
Simplify DevOps with Microservices and Mobile Backends.pptx
 
AhmedReda
AhmedRedaAhmedReda
AhmedReda
 
WeWebU OpenWorkdesk / OpenECM-Framework
WeWebU OpenWorkdesk / OpenECM-FrameworkWeWebU OpenWorkdesk / OpenECM-Framework
WeWebU OpenWorkdesk / OpenECM-Framework
 
Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17Modern application development with oracle cloud sangam17
Modern application development with oracle cloud sangam17
 
Embedding Oracle Weblogic Server 1871199
Embedding Oracle Weblogic Server 1871199Embedding Oracle Weblogic Server 1871199
Embedding Oracle Weblogic Server 1871199
 
What Every Client Should Do On Their Oracle SOA Projects (whitepaper)
What Every Client Should Do On Their Oracle SOA Projects (whitepaper)What Every Client Should Do On Their Oracle SOA Projects (whitepaper)
What Every Client Should Do On Their Oracle SOA Projects (whitepaper)
 
Lenovo midokura
Lenovo midokuraLenovo midokura
Lenovo midokura
 
All the amazing features of asp.net core
All the amazing features of asp.net coreAll the amazing features of asp.net core
All the amazing features of asp.net core
 
Presentation on Oracle Application Server
Presentation on  Oracle Application Server Presentation on  Oracle Application Server
Presentation on Oracle Application Server
 
salesforce_apex_developer_guide
salesforce_apex_developer_guidesalesforce_apex_developer_guide
salesforce_apex_developer_guide
 

More from Deborah Obasogie

Technical Specification - Database
Technical Specification - DatabaseTechnical Specification - Database
Technical Specification - DatabaseDeborah Obasogie
 
requirements_traceability_matrix_sample
requirements_traceability_matrix_samplerequirements_traceability_matrix_sample
requirements_traceability_matrix_sampleDeborah Obasogie
 
Tivoli Support Documentation
Tivoli Support DocumentationTivoli Support Documentation
Tivoli Support DocumentationDeborah Obasogie
 
SoftwareRequirementSpecification.docx
SoftwareRequirementSpecification.docxSoftwareRequirementSpecification.docx
SoftwareRequirementSpecification.docxDeborah Obasogie
 
Core Skills Assessment Requirements Module 4.0
Core Skills Assessment Requirements Module 4.0Core Skills Assessment Requirements Module 4.0
Core Skills Assessment Requirements Module 4.0Deborah Obasogie
 
Governance Model - Slide Show
Governance Model - Slide ShowGovernance Model - Slide Show
Governance Model - Slide ShowDeborah Obasogie
 
Project Overview Statement (POS)
Project Overview Statement (POS)Project Overview Statement (POS)
Project Overview Statement (POS)Deborah Obasogie
 
Guidewire billing center system
Guidewire   billing center systemGuidewire   billing center system
Guidewire billing center systemDeborah Obasogie
 
Guidewire - BillingCenter System
Guidewire - BillingCenter SystemGuidewire - BillingCenter System
Guidewire - BillingCenter SystemDeborah Obasogie
 
Airlines Financial Analysis
Airlines Financial AnalysisAirlines Financial Analysis
Airlines Financial AnalysisDeborah Obasogie
 
Web Portal reporting Strategy and Recommendation
Web Portal reporting Strategy and RecommendationWeb Portal reporting Strategy and Recommendation
Web Portal reporting Strategy and RecommendationDeborah Obasogie
 
Performance Analaysis - Earned Value Analysis
Performance Analaysis - Earned Value AnalysisPerformance Analaysis - Earned Value Analysis
Performance Analaysis - Earned Value AnalysisDeborah Obasogie
 

More from Deborah Obasogie (20)

Scrum30Secpptx
Scrum30SecpptxScrum30Secpptx
Scrum30Secpptx
 
Technical Specification - Database
Technical Specification - DatabaseTechnical Specification - Database
Technical Specification - Database
 
requirements_traceability_matrix_sample
requirements_traceability_matrix_samplerequirements_traceability_matrix_sample
requirements_traceability_matrix_sample
 
Tivoli Support Documentation
Tivoli Support DocumentationTivoli Support Documentation
Tivoli Support Documentation
 
SoftwareRequirementSpecification.docx
SoftwareRequirementSpecification.docxSoftwareRequirementSpecification.docx
SoftwareRequirementSpecification.docx
 
Core Skills Assessment Requirements Module 4.0
Core Skills Assessment Requirements Module 4.0Core Skills Assessment Requirements Module 4.0
Core Skills Assessment Requirements Module 4.0
 
SubversionGuide.docx
SubversionGuide.docxSubversionGuide.docx
SubversionGuide.docx
 
Governance Model - Slide Show
Governance Model - Slide ShowGovernance Model - Slide Show
Governance Model - Slide Show
 
Project Overview Statement (POS)
Project Overview Statement (POS)Project Overview Statement (POS)
Project Overview Statement (POS)
 
Guidewire billing center system
Guidewire   billing center systemGuidewire   billing center system
Guidewire billing center system
 
Guidewire - BillingCenter System
Guidewire - BillingCenter SystemGuidewire - BillingCenter System
Guidewire - BillingCenter System
 
Airlines Financial Analysis
Airlines Financial AnalysisAirlines Financial Analysis
Airlines Financial Analysis
 
Jira Issue Types
Jira Issue TypesJira Issue Types
Jira Issue Types
 
Web Portal reporting Strategy and Recommendation
Web Portal reporting Strategy and RecommendationWeb Portal reporting Strategy and Recommendation
Web Portal reporting Strategy and Recommendation
 
Performance Analaysis - Earned Value Analysis
Performance Analaysis - Earned Value AnalysisPerformance Analaysis - Earned Value Analysis
Performance Analaysis - Earned Value Analysis
 
Story & Estimate
Story & EstimateStory & Estimate
Story & Estimate
 
Word 2013
Word 2013Word 2013
Word 2013
 
Excel 2013
Excel 2013Excel 2013
Excel 2013
 
User Guide
User GuideUser Guide
User Guide
 
DeptReview
DeptReviewDeptReview
DeptReview
 

Java Technical Design Document

  • 2. i | P a g e T a b l e o f C o n t e n t s INTRODUCTION .....................................................................................................................................................1 Requirements of this Document...............................................................................................................1 Audience ...................................................................................................................................................1 Document Reference ................................................................................................................................1 DESIGN ..................................................................................................................................................................2 Requirements............................................................................................................................................2 Platform Independent...............................................................................................................................2 Independent of existing software installations ........................................................................................2 Deploy to multiple environments.............................................................................................................2 Handle the following components............................................................................................................2 Easy to use ................................................................................................................................................3 Command line interface.........................................................................................................................................3 Web Interface ........................................................................................................................................................3 Technology................................................................................................................................................3 Design Assumptions and Decision ............................................................................................................3 ORACLE SOA BUILD SERVER DESIGN ......................................................................................................................4 Technical Structure ...................................................................................................................................4 OSBS - Shell Script.....................................................................................................................................5 OSBS - build.xml........................................................................................................................................6 OSBS - tasks...............................................................................................................................................7 CompileJava...........................................................................................................................................................7 CreateWar .............................................................................................................................................................7 DeployAIAPEL.........................................................................................................................................................7 DeployAIAESB ........................................................................................................................................................7 DeployAIAXSD........................................................................................................................................................8 DeployBPEL ............................................................................................................................................................8 DeployDVM............................................................................................................................................................8 DeployESB..............................................................................................................................................................8 DeployJava.............................................................................................................................................................8 DeployXref .............................................................................................................................................................9 Download...............................................................................................................................................................9 EarJava...................................................................................................................................................................9 WarJava.................................................................................................................................................................9 MakeAll................................................................................................................................................................10 Promote ...............................................................................................................................................................10 SendMail..............................................................................................................................................................10 UndeployBPEL......................................................................................................................................................11 UndeployESB........................................................................................................................................................11 OSBS - Web Interface..............................................................................................................................11 Note: It is intended that this template be used in conjunction with the Requirements Definition Document template.
  • 3. Technical Design Document ii | P a g e REVISION HISTORY Date Author Version Change Summary Reference to Section 08-28-2013 Deborah Obasogie 0.1 New
  • 4. Technical Design Document 1 | P a g e I n t r o d u c t i o n 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. Requirements of this Document This is a technical document that describes the design of the Oracle SOA Build System. The document refers to various technologies. Readers should be aware of the following technologies and terminologies:  Java  Ant  Oracle SOA Suite  Unix scripting  Perl 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. Document Reference Ref # Document Name URL 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
  • 5. Technical Design Document 2 | P a g e D e s i g n 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. 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 Platform Independent The system should run on any platform; Linux, Windows or any other Unix system. Independent of existing software installations 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. Deploy to multiple environments Every project has multiple environments that implements an application, for example development, test, acceptance and production environment. These are the most common used environments. The OSBS should handle any environment. 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.
  • 6. Technical Design Document 3 | P a g e Easy to use The OSBS should be easy to use. Any complexity on the usages should be hidden from the user;  Command line interface  Web Interface Command line interface A simple command line interface must be provided to execute all the tasks of OSBS. Web Interface An even simpler interface should be provided to execute common tasks to users via a web browser. Technology The system must be implemented based on following Oracle technology:  Oracle Application Server  Oracle SOA Suite  Oracle AIA Framework The system must be implemented based on following non-Oracle technology:  Apache ANT – as core build system  Perl – for the web interface  (L)inux scripting – for the command line interface on Unix like O/S.  Windows scripting – for Windows platform Design Assumptions and Decision Assumptions  Linux is used as platform for development. Design decisions  SubVersion is used as source control system for integration with OSBS.
  • 7. Technical Design Document 4 | P a g e O r a c l e S O A B u i l d S e r v e r D e s i g n 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. Technical Structure The implementation of the OSBS is as follows:
  • 8. Technical Design Document 5 | P a g e 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 ant project file will execute the specific task. 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. OSBS - Shell Script 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. It should also provide help information on the usage of the tool. Initially the tool is written for Unix like operating system using the Kourne shell. The following functions should be executed in the shell script:  Read environment settings to execute Java and ANT  Shows help information  Show the version of OSBS
  • 9. Technical Design Document 6 | P a g e  Show all the tasks that OSBS can execute  Set generic the parameters for the various environments  Verbose output option  Pass the correct parameters to the ANT build project file.  Set the correct classpath for the used technologies; Oracle SOA; AIA; SVN, etc. OSBS - build.xml The structure of the OSBS build file is as follows: 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.
  • 10. Technical Design Document 7 | P a g e OSBS - tasks The OSBS must be able to execute the different tasks. CompileJava Compile Java files for a specific application. Input The Java source code of the application Output The compiled classes of the application Arguments Environment setting, name-of the java application CreateWar Create a WAR file containing all the JAR files of the BPEL processes. Input The name of the file Output The EAR file for this application Arguments Environment setting, name-for-the-war file DeployAIAPEL Deploy an AIA BPEL processes to a domain on a remote application server on which AIA is configured. Input The compiled JAR file of the BPEL process Output The JAR file is deployed to the application server and registered to AIA Arguments Environment setting, name-of the BPEL process, version DeployAIAESB Deploy an AIA ESB service to an esb-system on a remote application server on which AIA is configured. Input The ESB service definition Output The ESB service is deployed to the application server and registered to AIA Arguments Environment setting, name-of the ESB service
  • 11. Technical Design Document 8 | P a g e DeployAIAXSD Deploy the AIA XSD/WSDL definitions to the remote application server on which AIA is configured. Input A pointer location where the AIA XSD/WSDL files are located Output A zip file containing the XSD and WSDL files of AIA Arguments Environment setting DeployBPEL Deploy a BPEL processes to a domain on a remote application server. Input The name of the BPEL process Output A JAR file with the compiled BPEL process Arguments Environment setting, Name of the BPEL process, version, domain DeployDVM Deploy all or single domain value map (DVM) table files to the server Input The name of the DVM Output DVM is loaded into the application server Arguments Environment setting, Name of the domain value map DeployESB Deploy an ESB service to a system on a remote application server. Input The name of ESB Service Output The ESB service is registered in the application server Arguments Environment setting, Name of the ESB service, esb-system DeployJava Deploy an EAR file to application server. Input The name of the Java application
  • 12. Technical Design Document 9 | P a g e Output The EAR file, from the CreateEAR task, is deployed to the application server Arguments Environment setting, Name of the Java Application DeployXref Deploy single XREF table files to the server Input The name of the XREF Output XREF is loaded into the application server Arguments Environment setting, the XREF name Download Download latest or a specific version of the source code. Input Source control system Output The source code is exported from source control into a temporary staging area. Arguments Environment setting, the source code version or the latest EarJava Create BPEL an EAR file for a Java application. Input The WAR file created from the WarJava task for this application Output The EAR file for this application Arguments Environment setting, name-of the java application WarJava Create a WAR file for a Java application Input The compiled classes from the CompileJava task for this application Output The EAR file for this application Arguments
  • 13. Technical Design Document 10 | P a g e Environment setting, name-of the java application 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. The task should be aware of the chicken-egg issue in BPEL/ESB. 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 The source code of the application Output Compiled version of BPEL / ESB / Java / etc have been created and deployed to the application server. Arguments Environment setting, bpel version, bpel domain, ESB system 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. In general this is more or less a find and replace on source code. The promotion should take place on the whole source tree or on a single component. Input The source code of the application downloaded from source control Output The source code has been updated on end-points, URL’s or any other code that need to be replaced. Arguments Environment setting, name of the component or everything SendMail Send an email. Input - Output A email is send. Arguments
  • 14. Technical Design Document 11 | P a g e Environment setting, to-address, subject, message UndeployBPEL Undeploy a BPEL process from an application server. Input The name of the BPEL process to be undeployed Output The BPEL process is undeployed from the application server Arguments Environment setting, name of the BPEL process UndeployESB Undeploy an ESB service from the application server. Input The name of the ESB service to be undeployed Output The ESB service is undeployed from the application server Arguments Environment setting, name of the ESB service OSBS - Web Interface 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. The web interface must be implemented in Perl. In the web interface the user should be able to select;  The environment for which the OSBS is working.  A list of tasks that can be selected; for example Compile BPEL, Deploy Deploy ESB, Download from source control.  The object that belongs to the task.