SlideShare a Scribd company logo
1 of 2
Download to read offline
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
Page 2
oracle.com/SOA blogs.oracle.com/SOA @OracleSOA OracleSOA Oracle SOA© 2013 Oracle Corporation. All rights reserved.
Service Engine/Binding Components
Lifecycle Methods (executed Right to Left on Composite)
 deploy(component), undeploy(component)
 load(component), unload(component)
 init(component), uninit(component)
 stateChanged(component)
 Initial Deployment: deploy()  load() init()
 Server Restart: load() init()
 Server Shutdown: uninit()  unload()
 Undeployment: uninit()  unload() undeploy()
Message Processing Methods
 Sync: NM request (NM, Operation, IC)
 Async: void post (NM, Operation, IC)
NormalizedMessage (NM) is based on an abstract WSDL.
InvocationContext (IC) allows the mesh to route NormalizedMessage.
Stores information from original context to create callback context.
Message Routing
 Composite execution request received FabricProviderServlet::doGet()/doPost()
 Delegates to FabricProvider.processMessage() – the JRF implementation
 Invokes EntryBC WebServiceEntryBindingComponent.processIncomingMessage()
 WS Entry BC builds Normalized Message (NM) from SOAP, identifies operation/callback
 WS Entry BC invokes Mesh.post()/request() based on One-way or Request-Response
 Mesh replies with SOAP response (if applicable) and uses InvocationContext (IC) to route
 Mesh calls composite associated message router MessageRouter.post()/request()
 MessageRouter holds composite reference – the source of truth of routes
 MessageRouter leverages message handlers: (A)/SynchronousMessageHandler
 Handlers identify target SE/BC and send message ServiceEngine.post()/request()
 For synchronous calls, SE/BC packages the output into the return NormalizedMessage
 For asynchronous calls, SE/BC creates callback context using message InvocationContext
 External WS BC leverages JRF based JAX-WS to dispatch outbound SOAP messages
 Local composite invocation skips HTTP/SOAP if same server and supported policies
Composite Packaging and Deployment
DeployerHTTPClient
JDeveloper, Ant or WLST client that initiates the composite deployment request.
Phase 1: Compile
 Syntax Validation
 Semantic Validation
 Validation process delegates to
each ComponentValidator
Phase 2: Package
 Create one SAR from each validated composite
 sca_<compositeName>_rev<revision>.jar
 Create MAR from metadata
 Dependent libraries in SCA-INF/lib
 Multiple application projects packaged in one zip file
Phase 3: Deploy
 Targeted to Managed Server
 SAR + MAR zipped along with action instructions
in deploy_info.xml
 HTTP POST zip file to CompositeDeployerServlet at
http://<server>/soa-infra/deployer
CompositeDeployerServlet
Performs deployment requests, receives the inbound zip file with SARs, unpacks it to a temporary directory and applies configuration plans, transfers
content to MDS and labels it, triggers deployment by invoking CompositeDeploymentCoordinator.
CompositeDeploymentCoordinator
Orchestrates composite deployment, re-deployment, undeployment for standalone and cluster deployments (uses Coherence). In the Prepare phase, calls
deploy()/load() on each Reference, Service Engine, Service from R to L. In the Activate phase, calls init() on each Reference, Service Engine, Service
from R to L. JMX MBeans to orchestrate property changes, policy reference changes. Updates deployed_composites.xml in XML.
CompositeDeploymentManager
Performs the composite deployment, re-deployment, undeployment. Interacts with a DeploymentResourceManager to obtain a deployment “connection”,
where the actual deployment functions are executed.
Event Delivery Network (EDN)
An integral part of SOA Suite that enables a loosely coupled, publish-subscribe style infrastructure to simplify message delivery. It uses the concept of
Event Definition Language (EDL) to describe the event, similar to WSDL. Underlying implementation can be based on Advanced Queues or JMS.
Publication happens using either Java or PL/SQL API. Subscribing composites are notified by EDN when a message arrives that matches the subscription
QName and optionally a content-based filter. Subscription consistency may be Guaranteed or Once And Only Once Delivery (OAOO) consistency. Guaranteed
uses local transactions and may deliver the message more than once. In OAOO mode, for each subscriber, EDN re- enqueues the message to the
EDN_OAOO queue and initiates an XA transaction.

More Related Content

What's hot

Mule connectors-part 1
Mule connectors-part 1Mule connectors-part 1
Mule connectors-part 1VirtusaPolaris
 
Message processor in mule
Message processor in muleMessage processor in mule
Message processor in muleSon Nguyen
 
DataBase Connectivity
DataBase ConnectivityDataBase Connectivity
DataBase ConnectivityAkankshaji
 
Spring 3.1: a Walking Tour
Spring 3.1: a Walking TourSpring 3.1: a Walking Tour
Spring 3.1: a Walking TourJoshua Long
 
Splitters in mule
Splitters in muleSplitters in mule
Splitters in mulevasanthii9
 
Performance Variations in Profiling Mysql Server on the Xen Platform: Is It X...
Performance Variations in Profiling Mysql Server on the Xen Platform: Is It X...Performance Variations in Profiling Mysql Server on the Xen Platform: Is It X...
Performance Variations in Profiling Mysql Server on the Xen Platform: Is It X...ijcsit
 
Weblogic application server
Weblogic application serverWeblogic application server
Weblogic application serverAnuj Tomar
 
24 collections framework interview questions
24 collections framework interview questions24 collections framework interview questions
24 collections framework interview questionsArun Vasanth
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Jagadish Prasath
 
Spring design-juergen-qcon
Spring design-juergen-qconSpring design-juergen-qcon
Spring design-juergen-qconYiwei Ma
 

What's hot (20)

Mule connectors-session1
Mule connectors-session1Mule connectors-session1
Mule connectors-session1
 
Servlets lecture1
Servlets lecture1Servlets lecture1
Servlets lecture1
 
381 Rac
381 Rac381 Rac
381 Rac
 
Mule connectors-part 1
Mule connectors-part 1Mule connectors-part 1
Mule connectors-part 1
 
Message processor in mule
Message processor in muleMessage processor in mule
Message processor in mule
 
Mule jdbc
Mule   jdbcMule   jdbc
Mule jdbc
 
DataBase Connectivity
DataBase ConnectivityDataBase Connectivity
DataBase Connectivity
 
Mule Ajax Connector
Mule Ajax ConnectorMule Ajax Connector
Mule Ajax Connector
 
Mule enricher
Mule enricher Mule enricher
Mule enricher
 
301 Rac
301 Rac301 Rac
301 Rac
 
Spring 3.1: a Walking Tour
Spring 3.1: a Walking TourSpring 3.1: a Walking Tour
Spring 3.1: a Walking Tour
 
Splitters in mule
Splitters in muleSplitters in mule
Splitters in mule
 
Mule enricher
Mule enricher Mule enricher
Mule enricher
 
Performance Variations in Profiling Mysql Server on the Xen Platform: Is It X...
Performance Variations in Profiling Mysql Server on the Xen Platform: Is It X...Performance Variations in Profiling Mysql Server on the Xen Platform: Is It X...
Performance Variations in Profiling Mysql Server on the Xen Platform: Is It X...
 
Weblogic application server
Weblogic application serverWeblogic application server
Weblogic application server
 
24 collections framework interview questions
24 collections framework interview questions24 collections framework interview questions
24 collections framework interview questions
 
Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014Java EE 7 in practise - OTN Hyderabad 2014
Java EE 7 in practise - OTN Hyderabad 2014
 
Spring design-juergen-qcon
Spring design-juergen-qconSpring design-juergen-qcon
Spring design-juergen-qcon
 
Hadoop 101
Hadoop 101Hadoop 101
Hadoop 101
 
321 Rac
321 Rac321 Rac
321 Rac
 

Similar to Cheat sheet soa_essentials

Spring Cairngorm
Spring CairngormSpring Cairngorm
Spring Cairngormdevaraj ns
 
The Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOAThe Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOALucas Jellema
 
Integration of Backbone.js with Spring 3.1
Integration of Backbone.js with Spring 3.1Integration of Backbone.js with Spring 3.1
Integration of Backbone.js with Spring 3.1Michał Orman
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.jsWinston Hsieh
 
Technical Overview of Apache Drill by Jacques Nadeau
Technical Overview of Apache Drill by Jacques NadeauTechnical Overview of Apache Drill by Jacques Nadeau
Technical Overview of Apache Drill by Jacques NadeauMapR Technologies
 
Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021
Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021
Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021StreamNative
 
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogicHTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogicOracle
 
Spring Basics
Spring BasicsSpring Basics
Spring BasicsEmprovise
 
Tuning and optimizing webcenter spaces application white paper
Tuning and optimizing webcenter spaces application white paperTuning and optimizing webcenter spaces application white paper
Tuning and optimizing webcenter spaces application white paperVinay Kumar
 
Scaling ArangoDB on Mesosphere DCOS
Scaling ArangoDB on Mesosphere DCOSScaling ArangoDB on Mesosphere DCOS
Scaling ArangoDB on Mesosphere DCOSMax Neunhöffer
 
3.java database connectivity
3.java database connectivity3.java database connectivity
3.java database connectivityweb360
 
Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003Jason Townsend, MBA
 
Node.js Workshop - Sela SDP 2015
Node.js Workshop  - Sela SDP 2015Node.js Workshop  - Sela SDP 2015
Node.js Workshop - Sela SDP 2015Nir Noy
 
ZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS CloudsZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS CloudsSimon Massey
 
Advance Java Practical file
Advance Java Practical fileAdvance Java Practical file
Advance Java Practical filevarun arora
 

Similar to Cheat sheet soa_essentials (20)

Spring Cairngorm
Spring CairngormSpring Cairngorm
Spring Cairngorm
 
Mule ESB
Mule ESBMule ESB
Mule ESB
 
Spring
SpringSpring
Spring
 
The Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOAThe Story of How an Oracle Classic Stronghold successfully embraced SOA
The Story of How an Oracle Classic Stronghold successfully embraced SOA
 
Integration of Backbone.js with Spring 3.1
Integration of Backbone.js with Spring 3.1Integration of Backbone.js with Spring 3.1
Integration of Backbone.js with Spring 3.1
 
Introduction to Node.js
Introduction to Node.jsIntroduction to Node.js
Introduction to Node.js
 
Technical Overview of Apache Drill by Jacques Nadeau
Technical Overview of Apache Drill by Jacques NadeauTechnical Overview of Apache Drill by Jacques Nadeau
Technical Overview of Apache Drill by Jacques Nadeau
 
Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021
Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021
Using the JMS 2.0 API with Apache Pulsar - Pulsar Virtual Summit Europe 2021
 
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogicHTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
HTTP Session Replication with Oracle Coherence, GlassFish, WebLogic
 
Spring Basics
Spring BasicsSpring Basics
Spring Basics
 
Mule jdbc
Mule   jdbcMule   jdbc
Mule jdbc
 
Sel study notes
Sel study notesSel study notes
Sel study notes
 
Tuning and optimizing webcenter spaces application white paper
Tuning and optimizing webcenter spaces application white paperTuning and optimizing webcenter spaces application white paper
Tuning and optimizing webcenter spaces application white paper
 
Scaling ArangoDB on Mesosphere DCOS
Scaling ArangoDB on Mesosphere DCOSScaling ArangoDB on Mesosphere DCOS
Scaling ArangoDB on Mesosphere DCOS
 
3.java database connectivity
3.java database connectivity3.java database connectivity
3.java database connectivity
 
Express node js
Express node jsExpress node js
Express node js
 
Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003Service Oriented Development With Windows Communication Foundation 2003
Service Oriented Development With Windows Communication Foundation 2003
 
Node.js Workshop - Sela SDP 2015
Node.js Workshop  - Sela SDP 2015Node.js Workshop  - Sela SDP 2015
Node.js Workshop - Sela SDP 2015
 
ZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS CloudsZK MVVM, Spring & JPA On Two PaaS Clouds
ZK MVVM, Spring & JPA On Two PaaS Clouds
 
Advance Java Practical file
Advance Java Practical fileAdvance Java Practical file
Advance Java Practical file
 

More from xavier john

More from xavier john (20)

Unix day4 v1.3
Unix day4 v1.3Unix day4 v1.3
Unix day4 v1.3
 
Unix day3 v1.3
Unix day3 v1.3Unix day3 v1.3
Unix day3 v1.3
 
Unix day2 v1.3
Unix day2 v1.3Unix day2 v1.3
Unix day2 v1.3
 
Interview questions
Interview questionsInterview questions
Interview questions
 
Xavier async callback_fault
Xavier async callback_faultXavier async callback_fault
Xavier async callback_fault
 
Custom faultpolicies
Custom faultpoliciesCustom faultpolicies
Custom faultpolicies
 
All adapterscommonproperties
All adapterscommonpropertiesAll adapterscommonproperties
All adapterscommonproperties
 
Custom faultpolicies
Custom faultpoliciesCustom faultpolicies
Custom faultpolicies
 
Oracle business rules
Oracle business rulesOracle business rules
Oracle business rules
 
Soap.doc
Soap.docSoap.doc
Soap.doc
 
Soa installation
Soa installationSoa installation
Soa installation
 
Vx vm
Vx vmVx vm
Vx vm
 
Webservices
WebservicesWebservices
Webservices
 
While.doc
While.docWhile.doc
While.doc
 
Xml material
Xml materialXml material
Xml material
 
Xpath
XpathXpath
Xpath
 
X query
X queryX query
X query
 
Xsd basics
Xsd basicsXsd basics
Xsd basics
 
Xsd
XsdXsd
Xsd
 
Xslt
XsltXslt
Xslt
 

Recently uploaded

Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxpboyjonauth
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxOH TEIK BIN
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementmkooblal
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxthorishapillay1
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentInMediaRes1
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...jaredbarbolino94
 
CELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxCELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxJiesonDelaCerna
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17Celine George
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfSumit Tiwari
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatYousafMalik24
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)eniolaolutunde
 
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...M56BOOKSTORE PRODUCT/SERVICE
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationnomboosow
 
internship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerinternship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerunnathinaik
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxAvyJaneVismanos
 
MARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupMARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupJonathanParaisoCruz
 
भारत-रोम व्यापार.pptx, Indo-Roman Trade,
भारत-रोम व्यापार.pptx, Indo-Roman Trade,भारत-रोम व्यापार.pptx, Indo-Roman Trade,
भारत-रोम व्यापार.pptx, Indo-Roman Trade,Virag Sontakke
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceSamikshaHamane
 

Recently uploaded (20)

Introduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptxIntroduction to AI in Higher Education_draft.pptx
Introduction to AI in Higher Education_draft.pptx
 
Solving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptxSolving Puzzles Benefits Everyone (English).pptx
Solving Puzzles Benefits Everyone (English).pptx
 
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdfTataKelola dan KamSiber Kecerdasan Buatan v022.pdf
TataKelola dan KamSiber Kecerdasan Buatan v022.pdf
 
Hierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of managementHierarchy of management that covers different levels of management
Hierarchy of management that covers different levels of management
 
Proudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptxProudly South Africa powerpoint Thorisha.pptx
Proudly South Africa powerpoint Thorisha.pptx
 
Meghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media ComponentMeghan Sutherland In Media Res Media Component
Meghan Sutherland In Media Res Media Component
 
Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...Historical philosophical, theoretical, and legal foundations of special and i...
Historical philosophical, theoretical, and legal foundations of special and i...
 
CELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptxCELL CYCLE Division Science 8 quarter IV.pptx
CELL CYCLE Division Science 8 quarter IV.pptx
 
How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17How to Configure Email Server in Odoo 17
How to Configure Email Server in Odoo 17
 
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdfEnzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
Enzyme, Pharmaceutical Aids, Miscellaneous Last Part of Chapter no 5th.pdf
 
Earth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice greatEarth Day Presentation wow hello nice great
Earth Day Presentation wow hello nice great
 
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
Model Call Girl in Tilak Nagar Delhi reach out to us at 🔝9953056974🔝
 
Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)Software Engineering Methodologies (overview)
Software Engineering Methodologies (overview)
 
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
KSHARA STURA .pptx---KSHARA KARMA THERAPY (CAUSTIC THERAPY)————IMP.OF KSHARA ...
 
Interactive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communicationInteractive Powerpoint_How to Master effective communication
Interactive Powerpoint_How to Master effective communication
 
internship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developerinternship ppt on smartinternz platform as salesforce developer
internship ppt on smartinternz platform as salesforce developer
 
Final demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptxFinal demo Grade 9 for demo Plan dessert.pptx
Final demo Grade 9 for demo Plan dessert.pptx
 
MARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized GroupMARGINALIZATION (Different learners in Marginalized Group
MARGINALIZATION (Different learners in Marginalized Group
 
भारत-रोम व्यापार.pptx, Indo-Roman Trade,
भारत-रोम व्यापार.pptx, Indo-Roman Trade,भारत-रोम व्यापार.pptx, Indo-Roman Trade,
भारत-रोम व्यापार.pptx, Indo-Roman Trade,
 
Roles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in PharmacovigilanceRoles & Responsibilities in Pharmacovigilance
Roles & Responsibilities in Pharmacovigilance
 

Cheat sheet soa_essentials

  • 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
  • 2. Page 2 oracle.com/SOA blogs.oracle.com/SOA @OracleSOA OracleSOA Oracle SOA© 2013 Oracle Corporation. All rights reserved. Service Engine/Binding Components Lifecycle Methods (executed Right to Left on Composite)  deploy(component), undeploy(component)  load(component), unload(component)  init(component), uninit(component)  stateChanged(component)  Initial Deployment: deploy()  load() init()  Server Restart: load() init()  Server Shutdown: uninit()  unload()  Undeployment: uninit()  unload() undeploy() Message Processing Methods  Sync: NM request (NM, Operation, IC)  Async: void post (NM, Operation, IC) NormalizedMessage (NM) is based on an abstract WSDL. InvocationContext (IC) allows the mesh to route NormalizedMessage. Stores information from original context to create callback context. Message Routing  Composite execution request received FabricProviderServlet::doGet()/doPost()  Delegates to FabricProvider.processMessage() – the JRF implementation  Invokes EntryBC WebServiceEntryBindingComponent.processIncomingMessage()  WS Entry BC builds Normalized Message (NM) from SOAP, identifies operation/callback  WS Entry BC invokes Mesh.post()/request() based on One-way or Request-Response  Mesh replies with SOAP response (if applicable) and uses InvocationContext (IC) to route  Mesh calls composite associated message router MessageRouter.post()/request()  MessageRouter holds composite reference – the source of truth of routes  MessageRouter leverages message handlers: (A)/SynchronousMessageHandler  Handlers identify target SE/BC and send message ServiceEngine.post()/request()  For synchronous calls, SE/BC packages the output into the return NormalizedMessage  For asynchronous calls, SE/BC creates callback context using message InvocationContext  External WS BC leverages JRF based JAX-WS to dispatch outbound SOAP messages  Local composite invocation skips HTTP/SOAP if same server and supported policies Composite Packaging and Deployment DeployerHTTPClient JDeveloper, Ant or WLST client that initiates the composite deployment request. Phase 1: Compile  Syntax Validation  Semantic Validation  Validation process delegates to each ComponentValidator Phase 2: Package  Create one SAR from each validated composite  sca_<compositeName>_rev<revision>.jar  Create MAR from metadata  Dependent libraries in SCA-INF/lib  Multiple application projects packaged in one zip file Phase 3: Deploy  Targeted to Managed Server  SAR + MAR zipped along with action instructions in deploy_info.xml  HTTP POST zip file to CompositeDeployerServlet at http://<server>/soa-infra/deployer CompositeDeployerServlet Performs deployment requests, receives the inbound zip file with SARs, unpacks it to a temporary directory and applies configuration plans, transfers content to MDS and labels it, triggers deployment by invoking CompositeDeploymentCoordinator. CompositeDeploymentCoordinator Orchestrates composite deployment, re-deployment, undeployment for standalone and cluster deployments (uses Coherence). In the Prepare phase, calls deploy()/load() on each Reference, Service Engine, Service from R to L. In the Activate phase, calls init() on each Reference, Service Engine, Service from R to L. JMX MBeans to orchestrate property changes, policy reference changes. Updates deployed_composites.xml in XML. CompositeDeploymentManager Performs the composite deployment, re-deployment, undeployment. Interacts with a DeploymentResourceManager to obtain a deployment “connection”, where the actual deployment functions are executed. Event Delivery Network (EDN) An integral part of SOA Suite that enables a loosely coupled, publish-subscribe style infrastructure to simplify message delivery. It uses the concept of Event Definition Language (EDL) to describe the event, similar to WSDL. Underlying implementation can be based on Advanced Queues or JMS. Publication happens using either Java or PL/SQL API. Subscribing composites are notified by EDN when a message arrives that matches the subscription QName and optionally a content-based filter. Subscription consistency may be Guaranteed or Once And Only Once Delivery (OAOO) consistency. Guaranteed uses local transactions and may deliver the message more than once. In OAOO mode, for each subscriber, EDN re- enqueues the message to the EDN_OAOO queue and initiates an XA transaction.