1. SOA Essentials Cheat Sheet
Service Component Architecture (SCA)
SCA is a language-neutral component and assembly model being standardized as OASIS.
Composite: deployment unit specified by composite.xml e.g. think ejb-jar.xml
Component: abstract business logic with local services/references, configured by implementation e.g. bpel
Service: entry-point into composite, provides interface (ONE port type) and how to bind e.g. binding.ws
Reference: refers to external services and how to bind e.g. binding.ejb or binding.jca
Wire: connects services, components and references
Physical dependencies between SCA components injected at runtime via Spring Bean IOC framework.
Metadata Services (MDS)
Shared platform service to store and share all kinds of metadata artifacts e.g. WSDL, XSD, EDL, fault policies, bindings etc. SOA
uses MDS to store the exploded SAR file and platform configuration – service engines, binding components and soa-infra.
Physical store (PSTORE) can be a file system (used in development) or database (used in production).
Partitions are logical grouping of artifacts, normally tied to a single application e.g. soa-infra and owsm.
Namespace maps to a store and partition e.g. /policies for owsm partition or /apps for soa-infra partition.
Locations
o Applications specify the MDS location in the <metadata-store-usage> element of ./adf/META-INF/adf-config.xml
o File based MDS structure is <Store_Root>/<Partition>/<Namespace>/<Resource>
o For SOA shared artifacts, the namespace always starts with /apps and accessed via oramds:/<Namespace>/<Resource>
o For SOA exploded SARs, the namespace is /soa/deployed-composites
o File Store MDS Location is $JDEV_HOME/jdeveloper/integration/seed
o Database MDS Location is <prefix>_mds e.g. dev_mds
o File based MDS structure is <Store_Root>/<Partition>/<Namespace>/<Resource>
o Composite Distinguished Name is <domain>/<compositeName>!<revision>*<MDSlabel> e.g. default/OrderDemo!1.0_2013-03-04_12-23-10_112
Deployment
o Package all content in /apps to a resource jar file and add it to a zip file e.g. shared-mds.zip
o Use ant target “deploy” defined within ant-sca-deploy.xml
o Alternative: Use WLST script below
$MW_HOME/$SOA_HOME/common/bin/wlst.sh
wls:/offline> connect('weblogic', 'welcome1', 't3://localhost:7001')
wls:/soaDomain/serverConfig> sca_deployComposite('http://localhost:7001','D:MDSsoaappsshared-mds.zip',
overwrite=true
Metadata Manager
Provides an abstraction layer over MDS. Used to access SE/BC composite associated resources. One instance per composite.
CompositeModel.getMetadataManager()
MetadataManager.getDocumentAsDom()/Stream()
Fabric
SOA runtime infrastructure provides component lifecycle
management, normalized message bus, binding independent
policy enforcement, instance tracking and fault handling. Service
Engines (SE) e.g. BPEL, are containers for hosting business logic i.e.
composite components. Binding Components (BC) e.g. JCA/EJB,
encapsulate network protocols and translate to/from Normalized
Messages (NM).
soa-infra Startup Sequence
Spring Framework acts as the “kernel” for Fabric, boots from
fabric.war/WEB-INF/web.xml.
1. Spring initialization (fabric-config.xml), registered as
Context Listener with web container, instantiates SE and BC
2. Fabric Provider Servlet initialization, exposing the <service>
elements – uses the Oracle JRF Web Services provider
3. Fabric inititalization, deploys composites, <component>
definition to SE and <service>/<reference> to BC