The Necessary Knowledge and Tools You Need to Have for SOA Suite 11g
Edwin Biemond
Whitehorses
http://biemond.blogspot.com
Topics in this presentation
● MDS● Avoiding Invalid Composites● Deployment
● Composites● Resource Adapters● AIA deployment framework
● Testing● TestSuite of SOA Suite● AIA CAVS
● Continuous Integration with Hudson
MDS MetaData Service
MDS = centralized storage for artifacts that can be accessed both at design time and at run-time
Two versions -> File MDS & Database MDS Versioning in only supported in Database MDS SOA Suite only uses the Database MDS
● Composites can have revisions
JDeveloper can use both● File MDS is the default● MDS is used for validation and used in the
creation process
Using MDS
Store your artifacts in a MDS apps folder● The SOA Suite DB MDS only allows you to add
artifacts under the apps folder. Use for example
oramds://apps/DVM/countries.dvm JDeveloper MDS references are located in
adf-config.xml ( /.adf/META-INF/ )
Use MDS in JDeveloper
Default File MDS is located at jdeveloper/integration/seed
Create an apps folder under seed Create an application or company
folder under the apps folder Add your artifacts under this
application folder
Use MDS in JDeveloper
Create a File MDS Connection
Lookup your artifacts in the Resource Palette
Move the MDS to your workspace
Is part of your workspace -> Versioning & No conflicts Add an extra MDS /apps entry to the adf-config.xml
Avoiding Invalid Composites
Invalid Composites can happen when● A Web Service is used as a Composite Reference
and this WS is not up while starting SOA Suite● The Composite Reference is a Composite and this
Composite is not active while this Composite becomes active
Why does this happen?
When the Composite is started, it tries to load the remote WSDL & XSD in one of the following:● Composite Imports● Composite References● Service Component componentType files
The Solution
The solution is MDS● Download the remote WSDL & XML schemas and
put this in the MDS● Change the XML Schema imports of the WSDL
so it’s valid and points to the MDS ● If the Composite Reference is a Composite try to
re-use the XSD
Composite Import
Open the composite.xml in source mode and change the imports
Composite Reference
Change the ui:wsdlLocation attribute Binding.ws location attribute has the
Endpoint URL
ComponentType files
Open the Service componentType files ( Mediator, BPEL) and change the ui:wsdlLocation attribute
Deployment Plan
Only need to change the location attribute of the binding.ws element
Deployment
Ways to deploy your Composites● JDeveloper -> only for Development.● JDeveloper SOA ANT scripts. Need some extra
ANT scripting to make it useable● AIA has its own complete ANT deployment
framework ( needs a license ) Resource Adapters & WebLogic artifacts
● AIA deployment framework can do this● Your own WLST scripting & custom Resource
Adapter Deployment
Deployment ANT Scripts
Need the SOA plugin Located in jdeveloper\bin Build your ANT deployment
framework around these scripts
Manual configuration of Resource Adapters
Use unique file name -> DB_Plan.xml or JMS_Plan.xml● In cluster configuration
● Copy The Resource plan to every node of the cluster● Location of the plan must be the same on all servers● Update the plans on all server if there is a change
● Put it on a shared storage
Your own Resource Adapter
Extract the WebLogic Resource Adapter ( Oracle_SOA1\soa\connectors )
Remove the jars Edit the weblogic-ra.xml and add your own
entries ( use unique names -> conflicts) Pack the Resource Adapter Deploy the Resource Adapter Set the deployment order after the original
adapter
Deployment with AIA
Can also be used in Non AIA Projects Configure AIA Deployment file Available Deployment actions
● JDBC DataSources● JMS Resources● MDS update● Start & shutdown WLS Server● Resource Adapters AQ, DB, JMS● EAR & WARS● Composites
AIA Deployment configuration
JDBC Datasource
JMS Queue
Update MDS
Shutdown Managed ServerAdd an entry to the DBResource adapter
Deploy a WAR
Deploy a Composite
Testing your Composites
SOAPUI● Test cases are flexible and can be scripted● Stress LoadTest● Simulate (Mock) services but need to update your Composite References
SOA Suite TestSuite● Can’t test the Composite Service● Simulate Composite Reference● Bounded to 1 Composite● Unit Test output
AIA CAVS (Composite Application Validation System)● Test and Simulate Services● Not bounded to 1 Composite● Combine Test cases with simulation ( automatically updates endpoints )● Need a License
SOA Suite TestSuite
Create a TestSuite with some tests
SOA Suite TestSuite 2
Initiate a Message on a Service Verify a response on a Wire Emulate a response on a Wire
TestSuite in Enterprise Manager
Start Unit Tests● From ANT● From EM
AIA Composite Application Validation System
What can CAVS do for you Create tests and validate responses Simulate Adapter services in the
ABCS Composites Group tests Combine Test and Simulators with
Routing Import / Export Definitions
CAVS Definitions
CAVS Test
Load the WSDL and select the operation Define 1 or more Requests Define 1 or more Responses and Generate XPATH
CAVS Simulator
Define the expected Request, Generate XPath and set its unique identifier ( For matching the request with the response)
Provide the matching Response
CAVS Routing
Activates CAVS Simulators, change the endpoints of the Composite reference to the simulators
Can be used in a CAVS Test
Continuous Integration with Hudson
Hudson easy to install and manage Support for ANT Integration with SubVersion, CVS Unit Test support Dashboard
Hudson SOA Suite Job
Need to build your own ANT deployment
Checkout SVN Compile Package Deploy Unit Test Evaluate Report
changeThe Necessary Knowledge and Tools You Need to Have for SOA Suite 11g
Please Fill Out Your Evaluations
Edwin Biemond
Whitehorses