Download as pdf or txt
Download as pdf or txt
You are on page 1of 80

1

SOA Interview Questions

Explain About Web service?

Web service is type of software system which is used for exchange the data and use information from
one machine to another machine through network. Generally Web services based on the standards
such as TCP/IP, HTTP, Java, HTML and XML.
Web services are pure xml based which is used for exchange information through Internet to direct
application to application interaction These systems include programs, objects,
messages or documents.
Many software applications written in various programming languages and running on various platforms
can use web services to exchange data over computer network.
You can develop Java-based web services on Solaris and that is accessible from your V.B Program
that runs on windows.

Q)-SOA Development lifecycle ?


Ans)-"From the hundred thousand foot level, you try to establish a need, you gather
requirements, you try to architect a solution and then you develop and you test and then
you deploy and manage it. At the end of life, you either modify it or retire it."

1) What is SOA?
Service Oriented Architecture (SOA) is used to develop Enterprise applications by using a
collection of services which communicates each other. Service -Oriented Architecture
(SOA) is a set of principles and methodologies for designing and developing software in
the form of interoperable services.

2) Principles of SOA?
· loose coupling
· Re-usability
· Interoperability
· Flexible
3) What is the difference between 10g and 11g?
SCA architecture was followed in 11g and not in 10g
· In 11g you can put all your project SOA components in composite.xml file and deploy as
a single deployment unit to single server, where in 10g you have to deploy each
component to the respective server (i.e. ESB to ESB server, BPEL to BPEL Server)
· Basically all the SOA components like BPEL, ESB (Called Mediator in 11g), & OWSM
are brought into one place in 11g using SCA composite concept.
· The major difference between 10g & 11g would be the app server container. 10g by
default runs onOC4J while 11g runs on Web logic Server.
· In 10g every BPEL is a separate project, but in 11g several components can make 1
project as SCA.
· In 10g consoles are separate for BPEL and ESB, but in 11g Enterprise Manager
contains all.
2

· In 10g BAM and business rules are outside SOA Suite, but in 11g they are in SOA Suite.

4) Is Oracle SOA same as Oracle Fusion Middleware?


No because SOA is one of the parts in Fusion middleware and
SOA behaves like user interface where as Fusion is big platform

5) What is SCA?
Service Component Architecture (SCA) provides a programming model for building
applications and systems based on a Service Oriented Architecture. SCA is a model that
aims to encompass a wide range of technologies for service components and for the
access methods which are used to connect them.

6) What is the SOA Suite 11g Components?


· Oracle Adapters
· Oracle Mediator
· Business Events and Events Delivery Network
· Oracle Business Rules
· Human Workflow
· Oracle Business Activity Monitoring
· Oracle Enterprise Manager

7) What is choreography? How does it differ from orchestration?


In choreography there is no business process to control the integration between the systems;
each system will directly integrate with one another in sequence where as in Orchestration
there is a business process which controls all the services (source/Target) which is part of
the integration.

8) What are the different design patterns in SOA?


· Synchronous
· Asynchronous Fire and Forget
· Asynchronous Delayed Response.

9) In how many ways can a process be deployed?


· Using JDeveloper
· Through Enterprise Manger Console
· Through Weblogic Scripts.

10) What are dspMaxThread and a recieverThread properties? Why are they important?
ReceiverThreads property specifies the maximum number of MDBs that process aysc across
all domains. Whereas the dspMaxThreads are the maximum number of MDBs that
process asy and threads that operate across a domain.
So, we need to ensure that the dspMaxThreads value is !> ReceiverThreads.
3

11) How does a async request run in the backend?


The sequence of events involved in the delivery of invoke messages is as follows:
· The client posts the message to the delivery service.
· The delivery service saves the invocation message to the invoke_mes sage table.The
initial state of the message is 0 (undelivered).
· The delivery service schedules a dispatcher message to process the invocation
message asynchronously.
· The dispatcher message is delivered to the dispatcher through the afterCompletion()
call. Therefore, the message is not delivered if the JTA transaction fails.
· The dispatcher sends the JMS message to the queue. Places a very short JMS
message in the in-memory queue(jms/collaxa/BPELWorkerQueue) in OC4J JMS. The
small JMS message triggers t he WorkerBean in the downstream step.
· This message is then picked up by a WorkerBean MDB, which requests the dispatcher
for work to execute. If the number of WorkerBean MDBs currently processing activities for
the domain is sufficient, the dispatcher module may decide not to request another MDB.
· MDB fetches the invocation message from the dispatcher.
· MDB passes the invocation message to Oracle BPEL Server, which updates the
invocation message state to 1 (delivered), creates the instance, and executes the
activities in the flow until a breakpoint activity is reached.

12) How to increase the transaction timeouts in SOA?


For the transaction timeout needs to be increased, all the below settings timeout value needs
to be changed to the expected Timeout value.
· JTA
· Engine Bean

· Delivery Bean
13) Is it possible to use MS SQL Server as dehydration store with SOA Suite ?if yes
how?
Yes it is possible.
To automatically maintain long-running asynchronous processes and their current state
information in a database while they wait for asynchronous callbacks, you use a database
as a dehydration store.Storing the process in a database preserves the process and
prevents any loss of state or reliability if a system shuts down or a network problem occurs.
This feature increases both BPEL process reliability and scalability. You can also use it to
support clustering and failover.

14) What is SOA governance? What are its functions?


Service-Oriented Architecture (SOA) governance is a concept used for activitie s related to
exercising control over services in an SOA Some key activities that are often mentioned
as being part of SOA governance are:
Managing the portfolio of services: This includes planning development of new services and
updating current services.Managing the service lifecycle: This is meant to ensure that
updates of services do not disturb current services to the consumers. Using policies to
restrict behavior: Consistency of services can be ensured by having the rules applied to all
4

the created services. Monitoring performance of services: The consequences of service


downtime or underperformance can be severe because of service composition. Therefore
action can be taken instantly when a problem occurs by monitoring service performance
and availability.
15) What is end point virtualization?
Generally a service bus is used for endpoint virtualization and in 11g stack; Oracle Service
Bus (OSB) is the primary service bus. In exposed proxy's message flow, it can route the
request to any of your environment's actual (physical) service on the basis of whatever
logic.
Mediator can also be used to expose the service and in mediator routing rule, it can be
routed to actual service.

16) What are DVM's and how are they helpful in SOA?
DVM-Domain Value Map are static mappings between a source and target system which can
be used in transformations. The value can be changed via SOA composer.

17) What is the difference between XREF and DVM?


b
stored in XREF_DATA table in SOA Dehydration st ore.
DVM- Domain Value Map is static mappings between a source and target system which can
be used in transformations.

18) What is Dehydration store?


Dehydration store is the database where the instances get stored when it gets dehydrated by
the process on the occurrence of non-idempotent activities and also stores the information
on the long running processes.

19) What is Decision service?


Oracle SOA Suite provides support for Decision components that support Oracle Business
Rules. A Decision component is a mechanism for publishing rules and rulesets as a
reusable service that can be invoked from multiple business processes.These rules can
be changed without redeploying the code.

20) Why we use BPEL and OSB?


OSB is the light-weight service bus wherever there is not much business logic involves and
there is need to just get the message routed between the systems OSB is used where as
when there is more business logic involves in the process,then BPEL will be used.
21) What is MDS?
MDS –Metadata Store
Wsdl and Schemas to be used in the process can be published to the MDS and get it used in
the code by referring the artifacts from the MDS
Advantages:
• JAR (Deployment unit) size will be reduced.
• Duplication of the artifacts can be avoided between the services.
5

22) What is a XA datasource? How it differs from a non-XA datasource?


An XA transaction involves a coordinating transaction manager, with one or more databases
(or other resources, like JMS) all involved in a single global transaction. Non-XA
transactions have no transaction coordinator, and a single resource is doing all its
transaction work itself (this is sometimes called local transactions).

23) How can we secure our web services using Oracle SOA Suite?
When accessing the services should be restricted to the group,then service should be
secured via WSM (Web service Manager).

24) How to deploy an XSL file without deployment of BPEL Process?


We will directly deploy the XSLT, options: -
• Using ANT script by file replacement in TMP folder.
• By creating a folder in BPEL PM installation folder and specifying its location in
our BPEL code with http call and replacing our xslt to that location.

25) What is HA File and FTP Adapters?


In the clustered environment,File and FTP adapters should be used as HA(High-Availability)
Inbound:It is controlled by Control Files and avoids the race between the manages servers in
reading the files where the reference of the files read by the managed servers will be
maintained in the control directory.
Outbound:It is controlled by DB Mutex table exist in the SOA dehydration store and this
avoids duplicated been written to the same file when all the managed servers in the
clusters process the same messages.

26) What is singleton Property in SOA?


In the clustered environment when the processing of the message should happen via only one
SOA managed server, then the property singleton needs to be defined at the adapter
level.
27) What is a pick activity? Can I have a pick activity with no onMessage branch?
Pick activity picks the messages from service (Source) which has multiple operations or the
BPEL process needs to receive the messages from multiple source system. Pick activity
should have at least on Message branch.
28) What is a flow activity? What is a flowN activity and how does it leverages the flow
activity?
Flow activity is used, when parallel execution of the flow is needed and to use this property
“non blocking invoke should be set as true “at the partner link level and no. of execution of
parallel flow is defined and static. Where as in Flown the no. of execution of parallel flow is
not static and it is determined during run time.
29) What do you mean by non-idempotent activity? Which all activities are
non-idempotent by default?
Activities like Pick, Wait, receive, reply and checkpoint() are called non-Idempotent activity
and during the execution of the process whenever these activities are encountered then it
gets dehydrated to the dehydration store.
6

30) How can we embed or use a java code in BPEL?


Using JAVA embedding activity in BPEL,Java code can be embedded in BPEL and can be
used.
31) How does pick activity differ from a receive activity?
Pick activity can act as a multiple recieve activity in some busine ss scenarios.If we have two
inbound operations and both can trigger the bpel process then we will go with pick activity
as we can’t have two recieve activity with create Instance box checked.

32) How can we make a partner link dynamic?


If we have to send the request to different service which has the same wsdl then dynamic
partner link will be used and using addressing schema we can set the endpoint dynamic to
send the request to the desired service.

33) What is a nonBlockingAll property?


Non- blocking invoke is used when Parallel flow needs to be executed where new thread will
be created for each invoke a activity and which will execute simultaneously.

34) What is getPreference property? How do we set it and what advantage it provides?
Hard coding is not a good practice, so to avoid hard coding preference variable can be used
and the value of the preference variable is accessed using getPreference().The
preference variable value can be changed without re-deploying the code via em console
MBean property.

35) How can we improve the performance of an XSL file?


By avoiding use of various if statements and using choose, and by using for-each group in
place of for-each.

36) How do we handle transactions in BPEL?


Property needs to be defined to start the new transaction/to continue with the same
transactions
Property Name: Transaction and if this has value as required then the BPEL process will be
continued in the same transaction where as if the value is defined as requires new then it
will start the new transaction.

37) What are transient and durable BPEL processes?


Durable:-It is long running process and initiated through a one-way invocation and do incur
one or more dehydration points in the database during execution Ex: Asynchronous
Transient:-It is short-lived process, request-response style processes and do not incur
dehydration during their process execution Ex: Synchronous.

38) When u will go for Sync process?


Whenever the services returns the response in few seconds, it is recommended to go for
synchronous BPEL process if not the BPEL process should be Asynchronous the reason
is calling application can’t proceed further in case of synchronous process.
7

39) What is a syncFileRead operation? Is a inbound or a outbound operation? Can my


process begin with syncFileRead operation?
When file has to be read in the mid of the BPEL process, then we will use syncFileRead
Operation, means some process should initiate the file read process and it is an outbound
operation and process can’t begin with Sync File read.

40) Can we use a File Adapter to get a file without reading its content?
Yes, by selecting the Do not read file content check box in the JDeveloper wizard while
configuring the "Read operation."

41) How to increase performance increase in bpel (Db Adapter/file adapter)?


We can increase the performance by writing indexes and sequences.
(Or) Go to application server --- >Configurations ----- > Change Xml file

42) Explain error handling in BPEL and what is a error handling framework? How does
a error handling framework better than simple error handling in BPEL?
EHF –Whenever any error thrown by the BPEL process/Mediator then EHF will check whether
exist in Fault-Bindings.xml files and if so then the action in the Fault -Policy.xml file will
be taken and if the action is not found then the fault will the thrown and it will be handled in
the catch block.

43) How do we resubmit a faulted process?


Scenario A: The BPEL code uses a fault -policy and a fault is handled using the
“ora-human-intervention” activity, then the fault is marked as Recoverable and the
instance state is set to “Running”.
Scenario B: The BPEL code uses a fault -policy and a fault is caught and re-thrown using the
“ora-rethrow-fault” action, then the fault is marked as Recoverable and the instance state
is set to “Faulted”; provided the fault is a recoverable one (like URL was not available).

44) Predefined errors in BPEL?


• Custom errors
• Timed out errors
• BPM errors
• Validation Errors

45) What is a throw activity? What it is ?


Throw activity will explicitly throw the fault and this fault will get caught by the catch block and
the corresponding actions will get executed.

46) What is Web service?


Web services are application components, which are self -contained and self-describing and
provide services based on the open protocol communication (i.e. SOAP UI, HTTP over
the net).
8

47) Difference between URI and URL?


A URI is an identifier for some resource, but a URL gives you specific information as to obtain
that resource. A URI is a URL and as one commenter pointed out, it is now considered
incorrect to use URL when describing applications. Generally, if the URL describes both
the location and name of a resource, the term to use is URI. Since this is generally the
case most of us encount er every day, URI is the correct term.

48) What is Mediator?


The Mediator is in charge of interconnecting, within an SOA composite application,
components that expose different interfaces. In addition, the Mediator can perform duties
such as filtering and making routing decisions.
The composite editor in JDeveloper gives you the flexibility to define the interface now, to
choose an existing interface, or to define the interface later as you wire components to the
Mediator.
Transforming data from one representation to another is, along with routing, one of the key
functions of the Mediator.

49) Difference between ESB and Mediator?


In 10g for routing, separate router need to keep along with ESB for routing and filter
expressions.
Where as in 11g mediator contains routing rules and filter expressions itself.

50) What is the difference between concrete and abstract wsdl?


Concrete: Besides the information about how to communicate to the web service, it the
information on where the service exist . It has Bindings (Protocol the message should be
sent) and Services(has endpoint for each bindings) .
Abstract: It has information about how to communicate to the web service like types (Schema),
Message (input and output messages service accepts) ,Operat ions (operation that can be
performed on this service) and port Type.

51) What is SOAP and what are the binding protocols available?
Simple object access protocol and it is a protocol specification for the communication
happens between the web services over the network and binding protocol is HTTP.

52) What is the difference between Async and Sync activity on wsdl level?
• Async wsdl-It has only input messages for the operation and it has 2
operations one for sending the request and other for call back.
• Sync wsdl-It has 2 messages input and output messages for the wsdl
operation.
53) What are the WSDL structure?
Following are the wsdl structure
• Definitions .Types .Messages .Operation
• Port type .Bindings .Services .Ports
9

54) What is the significance of target Namespace in a wsdl?


It is the one which uniquely identifies the WSDL and when the WSDL is used it should be
identified using its Target Namespace.

55) What is structure of SOAP message?


The structure of a SOAP message: A SOAP message is encoded as an XML document,
consisting of an element, which contains an optional element, and a mandatory element.
The element, contained within the , is used for reporting errors.
The SOAP envelope-The SOAP is the root element in every SOAP message, and contains
two child elements, an optional and a mandatory.
The SOAP header-The SOAP is an optional sub-element of the SOAP envelope, and is used
to pass application-related information that is to be processed by SOAP nodes along the
message path.
The SOAP body-The SOAP is a mandatory sub-element of the SOAP envelope, which
contains information intended for the ultimate recipient of the message.
The SOAP fault-The SOAP is a sub-element of the SOAP body, which is used for reporting
errors.

56) Why do we need to have messages in WSDL, aren't operations and types enough to
describe the parameters for a web service?
Messages consist of one or more logical parts. Each part is associated with a type from some
type system using a message-typing attribute. The set of message-typing attributes is
extensible.
• The element describes the data being exchanged between the Web service
providers and consumers. Each Web Service has two messages: input and
output.
• The input describes the parameters for the Web Service and the output describes
the return data from the Web Service.
• Each message contains zero or more parameters, one for each parameter of the
Web Service's function.
• Each parameter associates with a concrete type defined in the container element.
So describing the parameters cannot performed by operations and types this is
the main need of Messages.

57) What is a inline schema?


Schemas can be included inside of XML file is called Inline Schemas.

58) What is the difference between xsd:import and xsd:include?


The fundamental difference between include and import is that you must use import to refer to
declarations or definitions that are in a different target namespace and you must use
include to refer to declarations or definitions that are (or will be) in the same target
namespace.
10

59) What is BAM?


Business Activity Monitoring is a tool that is useful in monitoring business services and
processes. It actively collects data, applies rules and reports information to users. When
something goes wrong in business processes, BAM can be configured to take corrective
measures such as emailing administrators/support team.

60) How to send the data to BAM from SOA?


The Oracle BAM Adapter is a Java Connector Architecture (JCA)-compliant adapter which
can be used from a Java EE client to send data and events to the Oracle BAM Server.
Oracle BAM Adapter is configured in Oracle Weblogic Server Administration Console to
provide any of these connection pools. Oracle BAM Adapter provides three mechanis ms
by which you can send data to Oracle BAM Active Data Cache from an SOA composite
application.

61) What are the ways to publish the data to BAM?


There are two ways to publish the data to BAM
• BAM Adapter.
• BAM Sensor activity level.

62) What are the roles in BAM?


• Architect
• Administrator
• Active Viewer
• Active Studio
63) What is forward delay in JMS Queue?
In the clustered environment where JMS queues are used, when for the queues in any one of
the Managed server doesn’t have the consumer, once messages reac hes the forward
delay time it gets moved to the other managed server where consumer is present.
64) What is redelivery limit in JMS Queue?
When the message gets failed to get processed ,then it will be re -tried will the redelivery limit
exhausts and once after the redelivery limit the message can b e either moved to the error
Queue are it can be discarded.
65) What is timetodeliver in JMS Queue?
When Messages enqueued to the JMS queue, it will be immediately consumed by the JMS
Subscribers, if any delay needs to be induced for the message consuming by the
Subscribers then timetodelivery needs to set. The JMS message will not be subscribed
until timetodelivery exhausts.
66) Difference between JMS Queues and Topics?
Queue-Message will be subscribed by one subscriber.
Topic-Message will be subscribed by more than one subscriber.
http://interviewquestionsandanswers.biz/interview-questions-list-and-answers/
1.Diffrence b/w Assign and Transform activity is BPEL?
Ans. Asssign is used for simple tasks like initializing the varaibles or for transforming small
payloads
Transform is used for complex and huge payload transformations.
11

Also,When you use assign the variables reside in the memory...where as transformations
invole the use of XSL engine.
Assign is to copy some values in a variable to other variable.(might be copy,
insert-after,insert-before,append...etc)
Transform is to change the styles.
But in general, we use the transformation to change the data from one format to anot her
format.(I mean one structure to another structure)
Whtat is SOAP?
SOAP is a simple and open standard XML-based protocol for exchanging information
between computers.
SOAP is an XML-based protocol for exchanging information between computers.
SOAP is XML. That is, SOAP is an application of the XML specification.
All statements are TRUE for SOAP
SOAP is acronym for Simple Object Access Protocol
SOAP is a communication protocol
SOAP is designed to communicate via Internet
SOAP can extend HTTP for XML messaging
SOAP provides data transport for Web services
SOAP can exchange complete documents or call a remote procedure
SOAP can be used for broadcasting a message
SOAP is platform and language independent
SOAP is the XML way of defining what information gets sent and how
Although SOAP can be used in a variety of messaging systems and can be delivered
via a variety of transport protocols,
the initial focus of SOAP is remote procedure calls transported via HTTP.
SOAP enables client applications to easily connec t to remote services and invoke
remote methods.
Other frameworks, including CORBA, DCOM, and Java RMI, provide similar
functionality to SOAP,
but SOAP messages are written entirely in XML and are therefore uniquely platformand
language-independent.
-----------------------------------------------------------------------------
Links for Diff Concepts
Throttling :
http://soawork.blogspot.in/2013/01/throttling-in-osb.html
---------
Oracle SOA Interview Questions (Mediator) Part-3
Question: What is role of Mediator?
Answer: Oracle Mediator provides a lightweight framework to mediate between
various components within a composite application. Oracle Mediator converts
data to facilitate communication between different interfaces exposed by different
components that are wired to build a SOA composite application.
Question:Difference between Mediator & OSB?
Answer: OSB is all together different tool which is used for integration like SOA
12

but the main purpose of OSB is to route the information and same we can do with
mediator. The main difference two is, we go for Mediator when we want to route
information between different components inside composite and go for OSB when
we want to route the information between composites. Mediator is used light
weight mediation and OSB is used for heavy weight mediation.
Question: What is echo in Oracle Mediator?
Answer: The purpose of the echo option is to expose all the Oracle Mediator
functionality as a callable service without having to route it to any other service.
For example, you can call an Oracle Mediator to perform a transformation, a
validation, or an assignment, and then echo the Oracle Mediator back to your
application without routing it anywhere else.
For synchronous operations with a conditional filter, the echo option does not
return a response to the caller when the filter condition is set to false. Instead, it
returns a null response.
The echo option is available for asynchronous operations only if the Oracle
Mediator interface has a callback operation. In this case, the echo is run on a
separate thread.
Question: What is resequencing in Mediator ?
Answer: The resequencing feature of the Oracle Mediator reorders sets of
messages that might arrive to the Oracle Mediator in the wrong sequence. You
can define resequencing for all operations in an Oracle Mediator or for a specific
operation.
Question: Resequencing options available in mediator?
Answer:
Standard (based on input Id)
FIFO(based on time)
Best Efforts
Question: What is Schematron Validation?
Answer: Schematron is an XML schema language, and it can be used to validate
XML contents in an XML payload.
Question: Types of routing exist in Mediator?
Answer: Static & Dynamic Routing.
Question: What is Dynamic Routing in Mediator ?
Answer: A dynamic routing rule lets you externalize the routing logic to an Oracle
Rules Dictionary, which in turn enables dynamic modification of the routing logic
in a routing rule.
When you choose to create dynamic routing rule then it creates a new business
rule service component that is wired to the Oracle Mediator service component
within the SOA composite of the Oracle Mediator service component. The
business rule service component includes a rule dictionary. The rule dictionary is a
metadata container for the rule engine artifacts, such as fact types, rulesets, rules,
decision tables and so on.
Inside routing rules, you need to set endpoint URI.
13

Question: Types of Static Routing rules?


Answer: Sequential & Parallel.
Question:-What all activities you have used while developing your BPEL component.

Ans:

Activity Details
Name

Assign This activity provides a method for data manipulation, such as copying the
contents of one variable to another. Copy operations enable you to transfer
information between variables, expressions, endpoints, and other elements.

Compensate Use to compensate a scope of activities that has successfully completed.


Compensation occurs when a process cannot complete several operations after
completing others. The process must return and undo the previously completed
operations

Check Point Enables you to explicitly specify a dehydration point, used for forced
dehydration.

Empty Used to specify empty action(i.e no execution), can be used as place holders.
Activity

Flow Activity This activity enables you to specify one or more activities to be performed
concurrently(parallel flow)

FlowN This activity enables you to create multiple parallel flows equal to the value of N,
which is defined at runtime based on the data available and logic within the
process

Invoke Used to invoke an operation in the partner link service.

Pick Activity This activity waits for the occurrence of one event in a set of events and
performs the activity associated with that event. The pick activity works as
receive activity and it can be used to receive messages from different operations.
You can also specify the onAlaram branch to timeout while waiting to receive a
message.

Receive This activity used to receive a message from the partner link.

Reply This activity allows the process to send a message in reply to a message that was
received through a receive activity.
14

Rethrow This activity enables you to rethrow a fault originally captured by the
immediately enclosing fault handler.

Scope This activity consists of a collection of nested activities that can have their own
local variables, fault handlers, compensation handlers, and so on. A scope
activity is analogous to a { } block in a programming language

Switch Used to perform conditional processing.

Terminate A terminate activity enables you to end the tasks of an activity (for example, the
fault handling tasks in a catch branch)

Throw This activity generates a fault from inside the business process and throws the
fault.

Transform This activity enables you to create a transformation that maps source elements
to target elements. Transform activities generated the XSLT file.

Wait This activity allows a process to specify a delay for a certain period

While This activity supports repeated performance of a specified iterative activity

Question: Which static routing rule support fault policy ?


Answer: Parallel rules only.
Question: How many faults can Oracle Mediator service engine throw ?
Answer: Only One

Question: What is WSDL ?


Answer : WSDL stands for Web Services Description Language
WSDL is a document written in XML. The document describes a Web service. It
specifies the location of the service and the operations (or methods) the
service exposes.
Question: Explain elements/tags of WSDL ?
Answer :
types
A container for abstract type definitions defined using XML Schema
message
A definition of an abstract message that may consist of multiple parts, each part
may be of a different type
portType
An abstract set of operations supported by one or more endpoints (commonly
known as an interface); operations are defined by an exchange of messages
binding
A concrete protocol and data format specification for a particular portType
service
15

A collection of related endpoints, where an endpoint is defined as a combination of


a binding and an address (URI)
Question: Difference between Abstract and Concrete WSDL ?
Answer : Abstract WSDL contains only messages and operations. Abstract WSDL
is
used by SOAP Server.
Where as concrete WSDL contains messages, operations and transport
specific information (JMS or Http). This is used by SOAP client.
Question : What is SOAP ?
Answer : SOAP is a simple XML-based protocol to let applications exchange
information over HTTP.
Or more simply: SOAP is a protocol for accessing a Web Service.
Question : What is XML Schema ?
Answer : An XML Schema describes the structure of an XML document.
Question : Difference between Include and Import in context to XML schema ?
Answer : The fundamental difference between include and import is that you
must use import to refer to declarations or definitions that are in a different targe t
namespace and you must use include to refer to declarations or definitions that
are (or will be) in the same target namespace.
Question : What is targetNamespace's function?
Answer :
<schema
xmlns="http://www.w3.org/2001/SchemaXML targetNamespace="http:/
/www.example.com/name" xmlns:target="http://www.example.com/nam
e">
The targetNamespace declares a namespace for other xml and xsd documents to
refer to this schema. The target prefix in this case refers to the same namespace
and you
would use it within this schema definition to reference other elements, attributes,
types, etc. also defined in this same schema definition.
Question : How to refer another XSL from main XSL file ?
Answer : The <xsl:import > element is a top-level element that is used to import
the contents of one style sheet into another.
Note: This element must appear as the first child node of <xsl:stylesheet> or
<xsl:transform>.
Syntax: <xsl:import href="URI"/>
Question: Why we use Call-template inside XSL ?
Answer : Call-template works similar to the apply-template element in XSLT. Both
attach a template to specific XML data. This provides formatting instructions for
the
XML. The main difference between the two processes is the call function only
works with a named template. You must establish a 'name' attribute for the
template in
order to call it up to format a document.
16

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
< xsl:call-template name="myTemplate">
< !-- Content: xsl -->
< /xsl:call-template>
< stylesheet>
Question: Difference between XA & Non-XA transaction ?
Answer:
Non-XA (Local Transaction): It involves only one resource. When you use
Non-XA transaction then you can’t involve multiple resources (different databases,
Queues,
application servers etc), you can rollback or commit transaction for only one
resource. There is not transaction manager for this transaction as we are dealing
with
only one resource at a time.
XA (Global Transaction): It involves more than one resource (different databases,
queues, application servers) all participate in one transaction. It uses two -phase
commit to ensure that all resources either all commit or rollback any particular
transaction. When you have scenario like you need to connect to two different
databases, JMS Queue and application server, in this case you will use XA
transaction that means all resource participate in one transaction only.
Question: What is inline schema ?
Answer: Inline schemas are XML schema definitions included inside XML instance
documents. Like external schema documents, inline schemas can be used to
validate that
the instance matches the schema constraints.
Question: what is the use of Pick Activity?
Answer: This activity waits for the occurrenc e of one event in a set of events and
performs the activity associated with that event. The occurrence of the events is
often mutually exclusive (the process either receives an acceptance or rejection
message, but not both). If multiple events occur, the selection of the activity to
perform depends on which event occurred first. If the events occur nearly
simultaneously, there is a race and the choice of activity to be performed is
dependent on
both timing and implementation.
Question: Design patterns in SOA ?
Question: Difference between Synchronous Process and Asynchronous Process ?
Question: Use of Config Plans?

1. Is Oracle SOA same as Oracle Fusion Middleware


A) No because Soa is one of the part in Fusion middleware and soa behaves
like user interface where as Fusion is big platform
17

2. What is SOA Governance


A) It means that soa is an service oriented Architecture and for building business
applications as a set of loosely coupling components integrated with business
services. Soa is an open standard and technology based that means open
standard is xml based protocol including wsdl and web service based
Architecture.SOA Governance has some activities , components and services…etc
B) SOA REGISTRY,SOA POLICY,SOA TESTING.
3. How to increase performance increase in bpel (DB Adapter/file adapter)?
A) For getting better performance we use performance tuning.Performance tuning is
based on BPEL Levels ,server level and application level. if we put check point in the bpel process
level then the performance of application will decrease or the process of the speed
reduces.(check point means it stops the next incoming messages until the timer gets expired.)
4. Predefined errors in BPEL?
A) The Predefined errors are selection failure , conflicting receive, conflicting request , join
failure , forced termination , invalid reply , binding fault , remote fault.
5. Is it possible to use MS SQL Server as dehydration store with SOA Suite?if yes how?
A)
6. What are the various elements in WSDL
A) < definitions > <types> <message>
<port types>
<bindings>
<services>
Abstract: Invoke the web service
Concreate: development & design phase endpoint uri.
7. What is structure of SOAP message
A) Soap can carry the data from source to destination and it is a simple xml based protocol
to exchange the information b/w application over http
SOAP message is an ordinary xml document containing
i) An envelope element identifies the xml document as a soap message
ii) A header element contains header information
iii) A body element contains call and response information
iv) A fault element contains error and status information
v) The element contains actual soap message intended for the ultimate end point of
message
8. Can I call an asynchronous process from a synchronous. Are their any limitat ions
(how much time is permissible for async process to return)?
A) Yes we can call Async to sync and it is one of the good design for bpel and this process is
called as asynchronous invocation process and no time limitations are permissible
9. How to ensure that parallel flows implemented through Flow activity are 'really'
parallel?
A)We have to check whether the non blocking invoke is set to be true or false.
Non blocking invoke property is available in while using invoke -> partner
link->nonblockingproperty_>set the value.
18

10. How to develop a web service bottom up?


A)
11. How to return a fault from BPEL process. Do I need to change the WSDL. Do I need
to do it manually?
A) Using throw activity we can return a fault from bpel processes and we need to create
a fault element in XSD and we need to create fault message of our xsd element and need
to change in bpel level
12. How to add a specific catch handler for binding fault
A) we will use catch handler block and we will add this catch handler at scope level
13. How to add a specific catch handler for timeout
A) for mentioning the time out ,we will use scope activity and will add this catch
handler at scope level
14. How to use sensors
A) we can send or apply the sensors to BAM , JMS Queue and Topic .Sensors are mainly
used in BAM to know the description or inner details of any object.there are 3
different types
B) Activities,Variables and elements.
C) Activity sensor is used to monitor the execution of activity with in a bpel process
using activity sensors.We can find execution time of invoke activity or how much
time it will take to complete an activity.
D) Variable Sensor:It is used to monitor the runtime values of variables in a bpel process
E) Fault Sensor:used to monitor the Bpel Faults.
15. How to use BPEL properties to externalize constants in BPEL processes?
A)
16. Is it possible to set a timeout when calling a synchronous process?
A) Yes it is possible by using scope block we will set a timeout when calling a synchronous
process
17. Is it possible to timeout a asynchronous process
A) Yes it is possible by using scope block we will set a timeout when calling a
Asynchronous process
18. What are the various interaction patterns that can be implemented
A) sync and Async
Oneway
based on wsdl
based on events
empty
async timeout
sync timeout.
19. Is it possible to escalate a notification during human task?
A)Yes we can escalate a notification .In human Task we have deadlines ,in that we can
escalate a notification to whom ever you want.
20. What are the various options of calling Java code from BPEL processes?
A)we use java embedded activity option to call java c ode from BPEL.We have java class
methodology to call java class or java code from bpel.
19

21. What are the various options available for scheduling a BPEL process?
A)We have some unit testing (deployment)process scheduling bpel.We have some
SCA(components,ac tivities and some templates)to schedule our bpel process.
22. How to call BPEL from java?
A) If you are suppose to call bpel from java if our bpel is webservice (has to be in
running mode)
23. How to call BPEL from PLSQL
A) if a service is web service we c an call any bpel to plsql or vice versa.
24. How to call BPEL from Excel
A) By using File adapters we read any kind of files.
25. How to use business rules in BPEL process?
A) Using business rules component from service component palette. In business rules
26. How to delete a file on a FTP server through BPEL
A ) Should specify the JNDI name in FTP server .The deployment descriptor for deployed
instance of the ftp adapter must associate with jndi name with a set of configuration
properties needed by the ftp adapter to access the ftp server at run time.In this you have
to check delete file option and thus we can delete file from FTP server through bpel.
27. How to use In-memory, File based and AQ-based JMS
A)
28. How to use Apps adapter to call a concurrent program
A)
29. How to use content based and header based routing?
A) Content Based Routing:
A routing service determines how the message gets from one point to another with in the
oracle.as defined the routing rules against XML msgs.
As we can define rules to route msgs based on the msg content.So this is known as content
based routing.
When we configure content rules we hve to specify whether a filter expression is applied.It
specifies that the contents of msg be analysed before any service invoked.
Header Based Routing:
30. How to change the filename when writing a file through adapter
A)
31. What is DVM
A)Domain Value Map
Applications that you want to integrate using Oracle BPEL or Oracle ESB are likely use
different values to represent the same information. For example, one application might
represent a state with the long name (CaliforniA) while another application may represent
the state with an abbreviation (CA). A domain-value map enables you to associate values
from one application with values from another.
33. How to do error handling in ESB. Is error handling different across synchronous and
asynchronous ESBs?
A)Error handling is possible with ESb but it is difficult in ESB to handle the errors or bugs.
20

34. What happens if an adapter rejects a file or a message when


reading it. How to retrieve this message?
A)if an adapter rejects a file or a message then it will automatically displayed in rejected
messages folder.
35. What is AIA. Why is it such a cool idea...why is it such a hot skill!?
A)Application integration Architecture
36. How to set log levels for performing detailed debugging?
A) By selecting Logging tab in advance options.
37. How to see logs in enterprise manager?
A)
38. What is meant by logfile rotation?
A)
40. If a file having huge data (more than 10 mb) how to send this data?
A) If a file has huge data ,the data should be split into number of messages and send.
41. How to set timeout error?
A)
42. What is the difference between database adapter and oracle apps
adapter?
A)
43. What is diff between BPEL adapters and ESB adapters?
A)
44. Diff between BPEL and ESB
A) BPEL:
Bpel is heavy weight product
Bpel installation wizard takes 500mb
If process centric bpel is right choice
Very good for orchestration
Its performance is slower
Bpel has extra features like Work flow,Email notification.
Every component in sca can be deployed in Single console
ESB:
Light weight product
It takes 270 mb space
Performance speed is faster
Only routing transformations are possible,
Data centric esb is right choice.
45. Benefits of ESB?
A) ESB support multibinding protocol includes http,soap,jms server,jca & java for generating
a reliable msgs for delivering Sync and async.
ESB moves the data among multiple end points both with in and out side the enterprises.
It can transform heavy data also.
Connectivity.
Document transformations
Content based and Header based routing
21

46. Explain diff types of bindings?


A) Soap bindings, http bindings and jms bindings
47. Diff between physical path and logical path in file adapter? and
how to set in bpel.xml?
A) The Diff between physical path and logical path in file adapter is that in physical path
the deployment and development is done In the same environment and in logical path they
both are done in different environments.
48. what are the activities you are used in syn process and asyn process?
A) for sync process we will use receive and reply, assign or transform
for Async process we will use receive and callback, assign or transform
49. Explain about pick activity where we use this?
A)It allows you to block and wait for suitable messages to arrive or for a timeout to go out.
When one of the triggers occur the associate activity is performed and a pick completes.
Pick contains On Message and On Alarm
When we call a third party async service we use pick
50. Explain XSLT,XML,XSD,WSDL,XQUERY ?
A) XSLT: Extensible markup Language transformations
In this XSLT we convert one extension to another extension.
XML: Extensible markup language
XML is mainly used for storing the data but not showing the data.
XML is self descriptive language
In XML own tags can be defined.
XML can be written in 2 types
DTD & XSD
DTD:Data type definition
This describes the structure of the XML document
XSD:XML Schema defintion
This XSD (Schema) is in turn divided in to 2 types.
Valid XML
Well Formed XML
Valid XML (DTD+well formed XML)
Well formed XML (Valid syntax)
XSD: Extensible schema definition
XSD:XML Schema defintion
This XSD (Schema) is in turn divided in to 2 types.
Valid XML
Well Formed XML
Valid XML (DTD+well formed XML)
Well formed XML (Valid syntax)
WSDL: Web service description language.
There are two types of wsdl:
Abstract wsdl:which invokes a webservice
Concreate wsdl: where design and deployment is done.
WSDl elements:
22

Types
Messages
Porttypes
Bindings
Hostname
Partner links
XQUERY:Xquery is otherwiseknown as Xpath which is defined by /
51. how to define the rules in bpel?
A: we will define the rules in rules repository and this repository will be available in
business rules.
52. How to identify weather the webservice id syn or asyn?
A)
53. Diff between bpel webservice and other webservices?
A)
54. How to generate SOAP bindings in BPEL?
A) After deploying our application would be in server then soap bindings will be
generated in bpel
55. Explain about MCF Properties?
A)
57. What are differences between synchronous and asynchronous process?
A) syn process will give immediate output and show in the display page where as Asy n
also will give output but not show in the display page.
58. Why we will use the partition?
A) the partition will be used to reduce the burden for the server and easy to identify
the deployed application which we deployed into server
59. How many types of variables are there?
A)Simple variable(pre defined variable)
Message
Element
60. Types of WSDL?
A) Concrete wsdl and Abstract wsdl
Concrete wsdl is for invoke the web service
Abstract wsdl is for development and design pattern
61. What is end point URI?
A) an end point URI means uniform resource identifier and it refers that
62. What is domain?
A)
63. How can we write web services our own?(how to create dynamic web
services)
A)
64. What is interface? Types of interface?
A)
65. Why we use metadata schema?
A)
23

66. What is one-way & two-way process?


A)
67. What is deployment plan?
A)
68. What are the configuration files in adapters?
A)
69. What is use of OESB/ESB/Mediator/OSB/ALSB?
A)
70. What are the operations in WSDL?
A)
71. How can do the customization in adapters? Are there any changes
in XML files?
A)
72. What is work list application?
A)
73. What are the dehydration storage tables?
A)
74. What is automated roll-back & manual Roll-back?
A)If we use Throw activity explicitily then automatically it rollbacks.
B)<throw faultname=”rollback”>
C)For manual rollback invoke a partner link that rollbacks a JTA transaction.Suppose in a DB
adater ,an error thrown from the database then it causes the JTA Transaction to roll back.
75. What is inline schema?
A)
76. What is success reply and failure reply?
A)
77. What is difference between imports & include?
A)Import : if we have different name spaces
Include: if we have same namespaces.
78. What is difference between services & references?
A)Services are which are self dependent.service is an entry point into the composite from
external world.
References are those which are dependent on other services.References are those which are
given to the external world.
79. What of process of choreography?
A)
80. Which file could deploy in SOA 10g?
A) jar files
81. Can we use Jdeveloper in OSB?
Ans:- No if you want to develop that feature you need to deploy in eclipse
82. What RMI & RPC?
A) Remote Method invocation
B) Remote Procedural Call
83. When we use correlation for synchronous & asynchronous services?
24

A) If you get some request, scope will provide the link for same earlier request that is called
correlation
84. What is XSL & XSLT, Differ those?
A)extensiable schema language and extensiable schema language transformation.
XSL is simply a language where as xslt is which converts from one format to another.
85. What id ODI?
A) oracle data integration
86. What is idempotent?
A)It is one of the activity which is used for retrieving the saved one.Apart from breakpoint
activities all are idempotent activities.
(Assign,invoke)
87. What is WSDL which one we give to client?
A)concrete wsdl
-
Q)What is non idempotent activity?
It is an activity which can be happened only once.Break point activities are NON-Idempotent
Activities.
88. What is JTA?
A)
89. After consume the data from queue or topic is there any packets?
A)
90. Can we use two pick/ receive activities or one pick & receive?
A) No only one pick and one receive activity can be used
91. Why we call ESB in 10g as mediator in 11g?
A) the esb functionality has been moved to mediator in11g.
92. Can we use customize XSLT? If yes how?
A) yes .why bcz we will use the existing mapper file to customize
93. Is it compilation done by ant -script? How?
A) Yes we will set JAVA path in environment variables for deploying the application through
ANT
94. What are transaction boundaries?
A)If we create transaction with in the transaction then it creates some boundaries and such
boundaries are known as transaction boundaries.
Oracle Bpel server always executes request with in a JTA transaction.If JTA transaction
already present with the context then the BPEL process uses this transaction .Otherwise it
will create a new JTA transaction.
A client initiate the JTA transaction if Transaction=participation property is specified in
the message header.
The bpel transaction analyst itself incoming or parent JTA transaction. If the property is not
set a new transaction is created ,i.e the transaction is default.
Eg : to invoke synchronous
95. What is difference between file adapter & FTP Adapter?
A) File adapter contains read &write along with synchronous read
B) Ftp contains get file & put file, List of files.
25

96. What is OAGIS?(Open applications group integration specification)


A)
97. Describe about the SOAP?
A)Soap is a simple xml based protocol to exchange the information b/w application over http
98. From we can retrieve the schema?
A)Bam schema
B)MDS schema
C)User interface schema
D)Soa infrastructure schema
Mainly schema is retrieved from database.
99. What is cube_instance?
A)
100. What is cluster based deployment?
A)
101. Can we use throw called without catch & catch all?
A) yes we can use
102. What is path of deployment file?
A)
103. In which folder .jar files created?
A) deploy folder
104. What is file debatching?
When a file contains multiple messages we can select publish messages in specific number
of batches and is known as DE-BATCHING.During de batching the file reads the messages
from where it left the previous where it left off in order to avoid conflicts
105. What is chunk file?
106. Can we give time for synchronous & asynchronous? By
which activity?
A)wait
107. How much size can file accept through file adapter? If
it extends what happened?
108. How can find particular fault message in catch all
activity?
A)By using catch activity.
109. How can we associate faultpolicy.xml with fault
binding.xml?
110. What is the best process A) sync -Async
111. B) Asyncsync.
A) in some cases syn-Asyn and some cases asnc -syn
112. What are the different design patterns in SOA?
113. What are different types of installations in SOA Suite
10g & 11g?
A) custom and typical(Basic and advanced)
114. What is the significance of target namespace in a WSDL?
A) it is there to avoid the naming specifications
26

115. What are different message exchange patterns in BPEL?


A) send Asyn
ii) fire and forget
iii) one way invocation
116. Flow activity is sequential or parallel?
Flow activity is sequential when a property called NONBLOCKINGINVOKEPROPERTY is false.If
it is set to be TRUE then it works as a parallel.
117. What is “nonblockinginvokeall” property?
118. What is DSP max thread & receiver thread properties? Why
they are important?
119. What is error handling framework?
120. What is FlowN activity & how does it beverages the flow
activity?
A) If you come to know the number of branches to be executed in development time
then it is FLOW.
If you don’t know the number of branches are to be assigned before the design then values
canbe assigned at runtime then it is FLOW-N
121. How do we handle transactions in BPEL?
A) parallelly
122. What are transient and durable BPEL?
A)Transient :The process that does not have any breakpoints(non idempotent activities and
idempotent activities)
Durable: The process that does have one or more breakpoints(non idempotent activities
and idempotent activities)
Note: Invoke activity is defaultly a idempotent but manually we can set as non idempotent.
123. What is XA data source & how it differs from non-XA data
source?
A) XA) Transactional
Non XA) Non Transactional
XA) Transactional----XA datasource is the property value of JNDI datasource in JDBC.
124. What are MFC properties?
125. What all operations can be performed by file adapter?
A) read, write, list
126. What is synchronous file read operation? Is it in bound
or out Bound operation?
A) inbound operation
127. What all errors handled by BPEL process?
A) system errors
128. Why do we need JMS queue?
129. What is the benefit of JMS queue using over AQ queue?
A) In JMS we store the messages in Queue
B)
130. What is get preference property? &how do we set it and
what advantage it provides?
27

131. How can we make partner link dynamically?


132. How do we resubmit faulted process?
A) Through the recovery option.Once fault occurs we have recovery option to recover and
maintain the flow
133. Types of deployment?
A) Hot deployment and cold deployment
134. How do we embed or use of JAVA code in BPEL?
135. When do we use ESB over BPEL?
A) When large amount of data is transformed we use ESB.
B) Dynamic Transformations can be done by ESB than BPEL
C) ESB helps to increase flexibility ,reusability and over all responsibilities.
136. What is out of box error handling in ESB?
137. How can we get instance ID in ESB?
A) In ESB console we can see instance ID
B) When our application is deployed in the ESB console then as instance Is created.
138. How can we make routing in ESB dynamic?
ESB provides standard based data mapper to map the different applications data models.
In Esb routing service contains transformations , filtering options. Using this ESB services we
can create routings dynamically. In Esb High transformations & mappings are very high.ESB
over view.
139. What is domain value mapping?
Applications that you want to integrate using Oracle BPEL or Oracle ESB are likely use
different values to represent the same information. For example, one application might
represent a state with the long name (CaliforniA) while another application may represent
the state with an abbreviation (CA). A domain-value map enables you to associate values
from one application with values from another.
140. Explain about the buckets?
A) Bucket set having range of values
141. How to create dictionary?
Dictionary is having Rulesets & Bucket sets.
In B-Rules we need to configure facts, rules, and bucket set. All these collectively will
be saved in dictionary. And dictionary would be created.
Dictionary is also known as rules repository.In theses repository we will create b -rules &
conditions.
142. Explain about JNDI connections?
JNDI means Java Naming Directory Interface .While configuring adapters in the run time we
give jndi name in db or jms. Jndi binds a object with a name. It looks for that objects through
particular name Based on that object jndi will works.
143. How to process the variable from one instance to another
instance?
144. What is signal & receive signal?
A) to identify the unique service number
28

145. Why do we need to have messages in WSDL, aren't operations and types
enough to describe the parameters for a web service?
A) yes we need the messages in wsdl because in wsdl we have input and output messages
and that msg would refer to bpel.As operations and types are alone not enough.Actually the
msgs are linked with XSD elements. So msgs are mandatory in wsdl.
146.Routings are of 2 types?
Content based routing
Header Based routing
147.what are dehydration boundaries?
Invoke
Pick(on branch)
Receive
Wait
Checkpoint
147.What are the break point activities?
A)wait ,pick, receive
It is a activity in which oracle bpel server must wait for next incoming messages to wait until
timer gets expired.
148.What are transaction activities?
Compensate
Receive
Reply
Invoke
149.How to rollback in bpel apart from using compensate handler?
We need to Set property
Throwfaultname=Rollback
150)Types of adapters?
Technology adapters like file,jms,db adapters
Application adapters like sap,Peoplesoft,Siebel CRM.
151)diff b/w Soa and other services?
Soa is technology independent,loosely coupled,Reusabulity.
Other services :It depends upon their functionality.
152)Installation types?
2 types;
Basic type:Embedded DB that acts as a dehydration
Advanced type: which provide an external db
153)What is re hydration?
Whenever any message or timer expires then bpel server locates and loads the particular
bpel process instances and loaded into memory.This process is known as rehydration.
29

Oracle Service Bus


Oracle Service Bus Interview Questions
*During the OSB session we discussed about interview related Questions. These
are a few Questions which can be asked during interview related to OSB
Q) What is Proxy Service ?
A) It is exposed to the calling applications or services. Proxy services are Oracle
Service Bus definitions of intermediary Web services that Oracle Service Bus
implements locally on WebLogic Server.
Q) What is Business Service?
A) It connects to the EIS layer. Business services are Oracle Service Bus definitions
of the enterprise services that exchange messages during business processes.
Q) What is the EAI architecture OSB follows ?
A) OSB follows the BUS architecture in EAI.
Q) What does it mean by VETRO concept?
A) VETRO stands for
V – Virtualisation
E – Enrichment
T – Transform
R – Route
O – Operate
Q) Can we expose any Business Service to external clients or subscribers?
A) No, we can not expose Business Services to external clients or subscribers. We
need Proxy Services to expose to external world.
Q) Can we have Proxy Services without Business Services?
A) Yes we can have Proxy Services without Business Services , but that will be
just a dummy service. EIS layer can not be connected using that Proxy Service.
Q) What is the message flow in Proxy Services ?
A) Message flow in OSB is the most important part. It defines the request message
flow from Start Node to Route activity and also defines the response message flow
from Route to Start Node. It contains Pipeline Pairs, Branch Nodes, Route Nodes ,
Stages, Actions etc.
Q) What are stages ?
A) Stages are OSB Message Flow component to contain the actions.
Q) How we can connect to Database from OSB?
A) We need to first create one JCA based DB adapter to connect to the database.
Then we need to create that JCA based Business Service. We need to call that
Business Service to perform database operations.
Q) Is there any other way to connect to Database without using JCA adapters?
A) Yes we can use XQuery execute-sql() function to connect to database. But it is
better to use JCA adapters.
Q) How we can achieve parallel processing in OSB?
A) SPLIT JOINS are meant for parallel processing. So we need to implement Split
– Join resources to achieve parallel processing.
Q) What are the transformation resources available in OSB?
A) In OSB we can use XQuery or XSLT for transforming messages.
Q) How to poll file in OSB?
A) The proxy service should be using file transport, and also define the required
components like File Mask,Polling Interval, Read Limit, Post Read Action etc.
Q) Can we achieve REST implementation in OSB?
A) Yes we can achieve REST service implementation in OSB. It can be
implemented using Branch Nodes.
Q) What is Pipeline Error Handler?
30

A) Pipeline Error Handlers are used to handle the errors occurred in Request or
Response Pipleline.
Q) How can you end a Proxy flow without using if then else logic ?
A) You have to use Reply (with Success)action to end the Proxy Flow where you
want.
Q) For a JMS Queue Subscriber Proxy Service how can you ensure that the JMS
Message is retried if an error occurs during processing?
A) One XA Connection Factory should be created to access that JMS queue and
that Connection Factory should be used in the URL.
Q)How can you jump control from one stage to next stage without using if then
else logic?
A) You have to use Skip action at the end of the stage.

16. In a distributed OSB system, if you have been asked to create 2 separate
queues residing on 2 MS, how you will implement this?
Answer is : UDQ (User Distributed Queue) is a concept to implement on Cluster
environment.

17. What are the other standard ways of doing message transformation apart from
XQuery/XSLT?
Ans: using Assing activity in SOA11g

5. where a source system puts a flat file into a location and the data has to be
inserted to RDBMS. Basically to design a solution for this requirement with OSB
and without OSB (using SOA suite components).
solution :
@ SOA:at service section side using file adapter with get operation we will pick
file from our local system ,Route this file threw Mediator to Db Adapter with
Insert operation.
@ OSB:A) Proxy service:Using FILE Protocol we will pick file from local system
b)We need to develope a composite of insert db Adapter at Jdev level &
import those .xsd,.wsdl,.jca files into eclipse environment. then we generate
Business service in .jca file.
It may be helpful.

OSB 11g - Throttling


Throttling is termed as " regulate the flow". Oracle Service Bus has throttling feature and
by using that feature we can control number of requests sent to target service.

But why we need OSB throttling ?


Every system has its own capacity means it can process only certain number of message
at one time, if we try to send messages beyond its capacity then that system's
performance can degrade or in worst case it can crash. So to avoid all this we can use
OSB throttling feature to send limited messages to target system.

Oracle OSB Interview Questions and Answers:-


Configuring Proxy Services and Business Services:-
Oracle Service Bus proxy services and business services provide the means for
managing services, transforming messages, and routing messages through the
enterprise.
You can create and configure proxy services and business services using either the
run-time environment (Oracle Service Bus Console) or the development environment
31

(Eclipse with Oracle Service Bus plug-ins). You can base proxy services or business
services on existing Web Services Description Language (WSDL) resources, including
those imported from a UDDI regist ry such as the Oracle Service Registry, and then
further configure them in the console or the plug-in.
1. What is a Proxy Service?
Oracle Service Bus proxy services are definitions of intermediary Web services that
Oracle Service Bus implements and hosts locally. Oracle Service Bus uses proxy
services to route messages between business services (such as enterprise Web
services and databases) and service clients (such as presentation applications or
other business services).
A proxy service configuration includes its interface, transport settings, security
settings, and a message flow definition. The message flow definition defines the logic
that determines how messages are handled as they flow through the proxy service. If
a proxy service is based on a WSDL document, the configuration also includes a
WSDL port or a WSDL binding.

What is Oracle Service Bus Business Services?


Oracle Service Bus business services are definitions of enterprise Web services to
which Oracle Service Bus is a client. Those external Web services are implemented in
and hosted by external systems, so Oracle Service Bus must know what to invoke,
how to invoke it, and what to expect as a result. Oracle Service Bus business services
model those interfaces so that Oracle Service Bus can invoke the external services.
A business service configuration includes its interface, transport settings, and
security settings. (It does not include a message flow definition.) If the business
service is based on a WSDL, the configuration also includes a WSDL port or a WSDL
binding.
2. What are the different types of Pipelines?
Request and Response Pipeline.
What is a Pipeline?
Pipelines are one-way processing paths that include no branching. A pipeline is a
named sequence of stages containing actions, representing a non-branching oneway
processing path. It is used to specify the message flow for service requests and
responses. A stage is a user-configured processing step. Messages fed into the
pipelines are accompanied by a set of message context variables that contain the
message contents. They can be accessed or modified by actions in the pipeline
stages.
What is a Pipeline Pair?
Pipeline pairs are request and response pipelines. The request pipeline definition
specifies the actions that Oracle Service Bus performs on request messages to the
proxy service before invoking a business service or another proxy service. The
response pipeline definition specifies the processing that Oracle Service Bus
performs on responses from the business or proxy service that the proxy service
invokes before returning a response to a client.
What is a Message Flow?
32

In Oracle Service Bus, a message flow is the implementation of a proxy service. You
configure the logic for the manipulation of messages using proxy service message
flow definitions. This logic includes such activities as transformation, publishing, and
reporting, which are implemented as individual actions within the stages of a
pipeline.
3. What is a Publish Table?
Use a publish table action to publish a message to Zero or more statically specified
services.

4. What is a Publish Node?


We Use a publish action to identify a statically specified target service for a message
and to configure how the message is packaged and sent to that service.
WSDL Overview:-
A WSDL document describes a service, its location, its operations, and the way in
which clients can communicate with it. This section provides a very brief introduction
to WSDL, to provide context for discussing Oracle Service Bus features.
Table 35-1 summarizes the main elements used to define WSDL services.
Table 35-1 High-level WSDL Elements
Element Description
<types> Type definitions for message content.
<message> Abstract definition of the data being exchanged. A me ssage consists of parts, which
describe the logical, abstract content of the message.
<portType> Abstract collection of operations supported by the service.
<operation> Abstract description of an action supported by the service.
<binding> Concrete protocol and data format specification for a port type.
<port> A single endpoint, consisting of a network address and a binding.
<service> Collection of related ports, or endpoints.
WSDL specifies SOAP, HTTP, MIME, and Oracle Service Bus-specific binding
extensions, which extend the WSDL binding mechanism to support protocol-specific
or message format-specific features.
Types:-
The <types> element is a container for data type definitions. It uses a type system,
such as XML Schema (XSD), to define the vocabulary of messages handled by this
service. For example, a service that provides stock quotes might define an XML
vocabulary, with the terms TradePriceRequest and TradePrice, as shown in Example
35-1.
Example 35-1 WSDL Types Example
<types>
<schema targetNamespace="http://example.com/stockquote.xsd"
xmlns="http://www.w3.org/2001/XMLSchema">
<element name="TradePriceRequest">
<complexType>
<all>
<element name="tickerSymbol" type="string"/>
33

</all>
</complexType>
</element >
<element name="TradePrice">
<complexType>
<all>
<element name="price" type="float"/>
</all>
</complexType>
</element >
</schema>
</types>
Message:-
The <message> element provides an abstract, typed definition of the data being
communicated. A message consists of parts, each of which describes one logical,
abstract unit of the message. A WSDL can define one or more messages, each of
which may have one or more parts. For example, the WSDL fragment in Example 35-2
defines four message types, sellerInfoMessage, buyerInfoMessage, response, and
negotiationMessage, each of which has one or more parts.
Example 35-2 WSDL Message Example
<message name="sellerInfoMessage">
<part name="inventoryItem" type="xsd:string"/>
<part name="askingPrice" type="xsd:integer"/>
</message>
<message name="buyerInfoMessage">
<part name="item" type="xsd:string"/>
<part name="offer" type="xsd:integer"/>
</message>
<message name="response">
<part name="result" type="xsd:string"/>
</message>
<message name="negotiationMessage">
<part name="item" type="xsd:string"/>
<part name="price" type="xsd:integer"/>
<part name="outcome" type="xsd:string"/>
</message>
Port Type:-
The <portType> element defines a set of operations supported by one or more
endpoints (which are defined in the <port> element). The port type provides the
public interface for the operations provided by the service. Each operation is defined
in an <operation> element, each of which is an abstract description of an action
supported by the service.
For example, the fragment in Example 35-3 defines a port type with one operation,
GetLastTradePrice, which can handle an input message, GetLastTradePriceInput, and
34

an output message, GetLastTradePriceOuput. The concrete descriptions of these


messages are defined in the WSDL binding, as shown in the
<soap:operation>subelement in Example 35-4.
Example:- WSDL Port Type and Operation Example
<portType name="StockQuotePortType">
<operation name="GetLastTradePrice">
<input message="tns:GetLastTradePriceInput"/>
<output message="tns:GetLastTradePriceOutput"/>
</operation>
</portType>
Binding:-
The <binding> element specifies a concrete data format specification and a concrete
transport protocol for a port type.
The fragment in Example 35-4 specifies the binding for the StockQuotePortType port
type, which is provided as the value for the type attribute. The
<soap:binding>subelement signifies that the binding is bound to the SOAP protocol
format. In that subelement, the style attribute specifies that the data format is SOAP
document style, and the transport attribute specifies that the transport protocol is
HTTP.
Example 35-4 WSDL Binding Example
<binding name="StockQuoteSoapBinding" type="tns:StockQuotePortType">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="GetLastTradePrice">
<soap:operation
soapAction="http://example.com/GetLastTradePrice"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
Service and Port:-
The <service> element defines a collection of related endpoints, each of which is
defined in a child <port> element. A port is defined as a binding associated with a
network address. For example, the fragment shown in Example 35-5 defines two
ports, StockQuotePort, and StockQuotePortUK. They both use the same
binding,tns:StockQuoteSoapBinding, (which is concretely defined in <binding>) but
have different network addresses: http://example.com/stockquote
vs.http://example.uk/stockquote. These are alternative ports available for this
service.
Example 35-5 WSDL service and port Example
35

<service name="StockQuoteService">
<port name="StockQuotePort" binding="tns:StockQuoteSoapBinding">
<soap:address location="http://example.com:9999/stockquote"/>
</port>
<port name="StockQuotePortUK" binding="tns:StockQuoteSoapBinding">
<soap:address location="http://example.uk:9999/stockquote"/>
</port>
</service>

Question: To connect to source system which service we will use?


Answer: we will use Proxy service to connect to Source system.

Question: To connect to target system which service we will use?


Answer: we will use Business service to connect to target system.

Question: What is Proxy Service?


Answer: Proxy services are OSB definitions of intermediary Web services that OSB implements
locally on Oracle WebLogic Server
It is a service in OSB which is exposed to source system or application. A proxy service can route
messages to multiple business services.
you can configure a proxy service message flow definition to route a message to the appropriate
business service and map the message data into
the format required by the business service interface
Question: What is Business Service?
Answer: Business services are Oracle Service Bus definitions of the enterprise services that
exchange messages during business processes.
It is a service in OSB which is used to connect to target system.

Question: What is Message Flow?


Answer: A message flow is the implementation of a proxy service.
You configure the logic for the manipulation of messages using proxy service message flow
definitions.
This logic includes such activities as transformation, publishing, and reporting, which are
implemented as individual actions within the stages of a pipeline.(or)
Message flow is there in proxy service, We do all types of transformation, routing and other
processing message flow only.

Question:-What is Start node?


Answer: Every message flow begins with a start node.
All messages enter the message flow through the start node, and all response messages are
returned to the client through the start node.
There is nothing to configure in a start node.
36

Question: What is Pipeline?


Answer: Pipeline pairs are request and response pipelines.
The request pipeline definition specifies the actions that Oracle Service Bus performs on request
messages to the proxy service before invoking a business service or another proxy service.
The response pipeline definition specifies the processing that Oracle Service Bus performs on
responses from the business or proxy service that the proxy service invokes before returning a
response to a client.
Each pipeline consists of a sequence of stages.

Question: What is Stage?


Answer: Stage is a user-configured processing step.
Messages fed into the pipelines are accompanied by a set of message context variables that
contain the message contents.
They can be accessed or modified by actions in the pipeline stages.
Question: What is Branch node?
Answer:
• A branch node allows processing to proceed along exactly one of several possible paths.
• Two kinds of branching are supported in message flows message flow one is operational
branch and conditional branch
• Operational branching is supported for WSDL-based services, where the branching is based
on operations defined in the WSDL.
• You must use operational branching when a proxy service is based on a WSDL with multiple
operations.
• Conditional branching is supported for conditions defined in an X-Path-based switch table.
• Use conditional branching to branch based on a specified condition.
• Conditional branching is driven by a lookup table with each branch tagged with simple,
unique string values.
• At run time, the variable or the expression is evaluated, and the resulting value is used to
determine which branch to follow.
• If no branch matches the value, the default branch is followed.
• operational branching, configured in an operational branch node, and
• conditional branching, configured in a conditional branch node.
37

Question: What is Root node?


Answer: A route node performs request/response communication with another service.
• It represents the boundary between request and response processing for the proxy service.
• When the route node dispatches a request message, the request processing is considered
complete.
• The route node supports conditional routing as well as request and response
transformations.
Because a route node represents the boundary between request and response processing, it cannot
have any descendants in the message flow

Question: Do we have global variable in OSB (Can we access variable which is defined in proxy
service message flow from other proxy service message flow)?
Answer: No, we can't access variable in proxy service message flow from other proxy service
message flow.

Question: Can we use direct bindings to call SOA composites?


Answer: Yes, we can direct binding-bindings to call SOA composites along with SOAP bindings.

Question: Where the file will go if there is any error while polling the file?
Answer: During configuring file or ftp protocol in OSB, we need to specify error directory, so you
can see file to that directory if file polling failed.
Question: Why we use Split-Joins in OSB?
Answer: To do parallel processing.
Question: Types of Split-Joins?
Answer: Static and dynamic.
Question: How to call Java code from OSB?
Answer: By using Java callout activity.
Question: Can we use more than one route node in message flow?
Answer: No, we can't we use more than one route node in proxy service message flow.
Question: When we call asynchronous service from OSB then how to get response back from that
asynchronous service to OSB?
Answer: Design the proxy service which in turn calls business service which in turn calls
asynchronous service. In the message flow of this proxy change the message header to be low.
You need to specify ReplyTo value so that asynchronous service response came to
CallSyncCompositeProxy proxy service.
<soap-env:Header xmlns:ns1="http://schemas.xmlsoap.org/ws/2003/03/addressing">
<ns1:MessageID>ws:uniqueAddress</ns1:MessageID>
<ns1:ReplyTo>
<ns1:Address>http://localhost:8011/CallAsyncService/proxyServices/CallSyncCompositeProxy</n
s1:Address>
</ns1:ReplyTo>
</soap-env:Header>
Remember ReplyTo address refers to CallSyncCompositeProxy endpoints.
For more details refer my below post
http://soawork.blogspot.com/2012/12/call-asynchronous-webservice-from-osb-over-http.html
38

Question: What is throttling in OSB?


Answer: Throttling means we want to process certain messages in one time, then we need to set
some parameters in OSB to do the required task.
For more details refer my below post
http://soawork.blogspot.com/2013/01/throttling-in-osb.ht ml
Question: to transform from binary to XML or XML to binary format what we will in OSB?
Answer: we use MFL.
Question: can we use MDS in OSB?
Answer: No, Oracle Service Bus does not support MDS.
Question: Can we use DVM’s in Oracle Service Bus?
Answer: No, we can’t use DVM’s in Oracle Service Bus.
Dynamic Message Transformation:-
Oracle Service Bus supports the following capabilities for the transformation or processing of
messages:
– Validates incoming messages against schemas
– Selects a target service or services, based on the message content or message
headers
– Transforms messages based on the target service
– Transforms messages based on XQuery or XSLT
– Supports transformations on both XML and MFL messages
– Message enrichment
– Supports callouts to Web services to gather additional data for transformation (for
example, country code, full customer records, and so on)

Actions in Stages and Route Nodes:---


• Actions provide instructions for handling messages in pipeline stages, error handler stages,
and route nodes.
• Based on the context actions are described in 4 different sections:
• Communication Actions
• Flow Control Actions
• Message Processing Actions
• Reporting Actions
Communication Actions:--
Action Use to… Available in…

Dynamic publish Publish a message to a service specified by an X-Query expression Pipeline stage
Error handler stage
Route node
Publish Identify a statically specified target service for a message and to Pipeline stage
configure how the message is packaged and sent to that service Error handler stage

Publish table Publish a message to zero or more statically specified services. Pipeline stage
Switch-style condition logic is used to determine at run time which Error handler stage
39

services will be used for the publish

 Communication Actions:--

Action Used to… Available in

Routing options Modify any or all of the following properties in the Pipeline stage
outbound request: URI, Quality of Service, Mode, Retry
parameters, Message Priority
Service o Configure a synchronous (blocking) callout to an Oracle Pipeline stage
Service Bus-registered proxy or business service Error handler stage

Transport headers Set the header values in messages Pipeline stage


Error handler stage
 Flow Control Actions:-

Action Use to... Available in

For each Iterate over a sequence of values and execute a block of Pipeline stage
actions Error handler stage

If..then… Perform an action or set of actions conditionally, based on Pipeline stage


the Boolean result of an XQuery expression. Route node
Error handler stage

Raise error Raise an exception with a specified error code (a string) peline stage
and description. Error handler stage

Resume Resume message flow after an error is handled by an error Error handler stage
handler. This action has no parameters and can only be
used in error handlers.

 Flow Control Actions:-

Action Use to... Available in

Reply Specify that an immediate reply be sent to the invoker Pipeline stage
Error handler stage

Skip Specify that at run time, the execution of this stage is skipped and Pipeline stage
the processing proceeds to the next stage in the message flow. Error handler stage
40

Message Processing Actions:-

 Reporting Actions:-

Alert Generate alerts based on message context in a pipeline, to Pipeline stage


send to an alert destination Error handler stage

Log Construct a message to be logged and to define a set of Pipeline stage


attributes with which the message is logged Error handler stage

Report Enable message reporting for a proxy service. Pipeline stage


Error handler stage

 Message Brokering:-

Service providers and clients exchange messages with an intermediary proxy service instead of
directly with each other, eliminating complexities resulting from heterogeneous communication
protocols and messaging formats
X-Query-based policies or callouts t o external services for message routing
Routing policies that apply to both point -to-point and one-to-many routing scenarios (publish). For
publish, routing policies serve as subscription filters
41

SOA Interview Questions


Question: To connect to source system which service we will use?
Answer: we will use Proxy service to connect to Source system.

Question: To connect to target system which service we will use?


Answer: we will use Business service to connect to target system.

Question: What is Proxy Service?


Answer: It is a service in OSB which is exposed to source system or application.

Question: What is Business Service?


Answer: It is a service in OSB which is used to connect to target system.

Question: What is Message Flow?


Answer: Message flow is there in proxy service, We do all types of transformation, routing and
other processing message flow only.

Question: Do we have global variable in OSB (Can we access variable which is defined in proxy
service message flow from other proxy service message flow)?
Answer: No, we can't access variable in proxy service message flow from other proxy service
message flow.

Question: Can we use direct bindings to call SOA composites?


Answer: Yes, we can direct binding-bindings to call SOA composites along with SOAP bindings.

Question: Where the file will go if there is any error while polling the file ?
Answer: During configuring file or ftp protocol in OSB, we need to specify error directory, so you
can see file to that directory if file polling failed.

Question: Why we use Split-Joins in OSB?


Answer: To do parallel processing.
Question: Types of Split-Joins?
Answer: Static and dynamic.
42

Question: How to call Java code from OSB?


Answer: By using Java callout activity.
Question: Can we use more than one route node in message flow?
Answer: No, we can't we use more than one route node in proxy service message flow.

Question: When we call asynchronous service from OSB then how to get response back from that
asynchronous service to OSB?
Answer: Design the proxy service which in turn calls business service which in turn calls
asynchronous service. In the message flow of this proxy change the message header to below.
You need to specify ReplyTo value so that asynchronous service response came to
CallSyncCompositeProxy proxy service.

<soap-env:Header xmlns:ns1="http://schemas.xmlsoap.org/ws/2003/03/addressing">
<ns1:MessageID>ws:uniqueAddress</ns1:MessageID>
<ns1:ReplyTo>
<ns1:Address>http://localhost:8011/CallAsyncService/proxyServices/CallSyncComposit eProxy</n
s1:Address>
</ns1:ReplyTo>

</soap-env:Header>
Remember ReplyTo address refers to CallSyncCompositeProxy endpoints.
For more details refer my below post
http://soawork.blogspot.com/2012/12/call-asynchronous-webservice-from-osb-over-http.html
Question: What is throttling in OSB?
Answer: Throttling means we want to process certain messages in one time, then we need to set
some parameters in OSB to do the required task.

For more details refer my below post


http://soawork.blogspot.com/2013/01/throttling-in-osb.ht ml

Question: to transform from binary to XML or XML to binary format what we will in OSB?
Answer: we use MFL.

Question: can we use MDS in OSB?


Answer: No, Oracle Service Bus does not support MDS.

Question: Can we use DVM’s in Oracle Service Bus?


Answer: No, we can’t use DVM’s in Oracle Service Bus.
Question: What is “Minimum Age” in File adapter?
Answer: This parameter specifies the minimum age of files to be retrieved. This enables a large
file to be completely copied into the input directory before it is retrieved for processing.

Question: What is trigger file in File adapter?


Answer: When we choose “Trigger File” checkbox, file adapter will not poll/read the file/files from
specified directory unless it sees trigger file in trigger file directory. Once trigger files is there in the
trigger file directory, file adapter will start polling the files.
43

Question: What is Logical path in File adapter?


Answer: This parameter specifies the logical input directory to be polled. The parameter is of type
String. We provide value of logical path in composite.xml file.

Question: How to handle errors when we unable to read/poll a file using file adapter if that file is
corrupt?
Answer: We need to use File rejection handler to catch these types of error.
Question: What is Sync -Read in file adapter?
Answer: When we want to read a file in between our BPEL flow then we use this option.
Question: Can we read remote files using file adapter?
Answer: To read file from remot e location we need to use FTP adapter.

Question: What is native format?


Answer: when we want to read the file as it, means we don’t want to transform file content to
XML format then we use native format option.

Question: What is OWSM?


Answer: OWSM stands for Oracle Web Service Manager. Oracle Web Services Manager offers a
comprehensive and easy-to-use solution for policy management and security of service
infrastructure. It is a standalone platform for securing and managing access to web services.

Question: How do we call secured web service from SOA?


Answer: By using OWSM policies.

Question: Can we generate custom OWSM policies?


Answer: Yes, we can create custom OWSM policies.

Question: By how many ways we can add OWSM policy to Web Service?
Answer:
· Through policy annotations at design time
· Via the Administration Console at runtime
· Via Fusion Middleware Control or WLST

Question: When we call secured web service from SOA, which policy we will use “Client” or
“Service”?
Answer: When we call secured web service from SOA then we add “Client” policy to reference
partner link and when we want to secure our web service then we use “Service” policy.

Question: Can we use OWSM with Oracle Service Bus?


Answer: Yes, we can access OWSM policies from OSB.

Question: Can we attach OWSM policy to multiple composites to secure composites?


Answer: yes, we can apply one policy to all composites in one domain using policy sets.
44

Question: what is the scope of Policy Sets or where we can apply Policy sets ?
Answer:
· Domain — all policy subjects of the specified type in a domain
· Application or Partition—all policy subjects of the specified type in an application or SOA
partition
· Application module or SOA composite—all policy subjects of the specified type in an application
module or SOA composite
· Service or reference—all policy subjects of the specified type in a SOA service or reference
· Port or component—all policy subjects of the specified type in a port or SOA component

Question: By how many ways we can handle error/fault in BPEL?


Answer: By using Catch blocks & Fault handling framework.

Question: Can we use both Catch block & fault handling framework in one BPEL?
Answer: Yes, we can have both Catch Block & Fault policies files in one BPEL.

Question: Standard Faults in BPEL?


Answer: Below is the list of Standard Faults in BPEL.

· bindingFault, conflictingReceive, conflictingRequest, correlationViolation

· forcedTermination, invalidReply, joinFailure, mismatchedAssignmentFailure

· remoteFault, repeatedCompensation, selectionFailure, uninitializedVariable

Question: Standard Faults in Mediator?


Answer: Mediator has only one standard fault.
{http://schemas.oracle.com/mediator/faults}mediatorFault.

Question: How to get Fault Trace in CatchAll block?


Answer: By using getFaultAsString() function.

Question: Can we have custom faults in BPEL?


Answer: Yes we can create custom faults in BPEL, these faults are usually called Business Faults
and we usually handle it by using specific Catch block.

Question: Can we re throw a fault from Catch blocks?


Answer: Yes, we can re-throw fault from Catch block.

Question: Where we keep fault-policies.xml & fault-binding.xml files?


Answer: We can keep these files either local to project or in MDS and in both the cases we have to
specify the path in composite.xml file.

Question: What is MDS & Why we use MDS in Oracle SOA?


Answer: MDS stands for Oracle MetaData Service. It is central repository inside Oracle Fusion
Middleware. MDS purpose is to provide centralized store where we can keep, manage & access
metadata.
45

Metadata is often defined as data about data, or in other words, piec es of information that
describes and gives meaning to other information. Typical examples of metadata used by Oracle
Fusion Middleware components are XML files, XSD schema files, XSL transformations, SCA
composites, BPEL processes, WSDLs, business rules, Oracle ADF pages, JaveServer Pages (JSP),
and Oracle ADF task flows, among others.

The same metadata that is used during the design phase of application is used at application
runtime through the metadata service layer. This ensures consistency through the lifecycle of the
application. Metadata such as XML files or XSD schema files is usually shared among different
components. Therefore, it is not only necessary that those resources can be accessed easily and
referenced by all the components, but it is also important that they remain consistent; a change in
the metadata should be reflected in all the components that are referencing it. Having only one
copy of each metadata resource avoids unnecessary redundancy and guarantees that the changes
are made in only one place.

Question: Types of MDS Repository?


Answer: File-Based & DB Based.

Question: What is File-Based MDS Repository?


Answer: The idea behind file-based repositories is to allow developers to have a light repository
available in their local environment that can be easily adapted for development and tests; a file -
based repository relieves developers of having to configure and maintain an external database
while providing necessary functionality, such as file referencing and customizations. These kin ds of
repositories are easily modified and maintained, since they define a directory structure similar to
any other directory structure inside an operating system. They can be navigated and altered using
common shell commands or any kind of visual file explorer application. The file-based repository is

configuration is used.

Question: What is DB-Based MDS Repository?


Answer: Database-based repositories are used in production environments where robustness is
needed. These repositories are created using t he Repository Creation Utility (RCU) application from
Oracle. This utility helps with the creation of a new database schema with its corresponding tables
and objects. Repositories can later be registered or deregistered via the Oracle Enterprise Manager
Fusion Middleware Control console.

Question: Which configuration file store MDS configurations?


Answer: The adf-config.xml file is a configuration file that is used to store MDS Configurations.

Question: What type of WSDL file we usually keep in MDS?


Answer: We usually keep Abstract WSDL’s only in MDS

Question: What is WSDL ?


Answer : WSDL stands for Web Services Description Language
WSDL is a document written in XML. The document describes a Web service. It specifies the
location of the service and the operations (or methods) the service exposes.
46

Question: Explain elements/tags of WSDL ?


Answer :

Element Description
Name

types A container for abstract type definitions defined using XML


Schema

message A definition of an abstract message that may consist of multiple


parts, each part may be of a different type

portType An abstract set of operations supported by one or more


endpoints (commonly known as an interface); operations are
defined by an exchange of messages

binding A concrete protocol and data format specification for a particular


portType

service A collection of related endpoints, where an endpoint is defined as


a combination of a binding and an address (URI)

Question: Difference between Abstract and Concrete WSDL ?


Answer : Abstract WSDL contains only messages and operations. Abstract WSDL is
used by SOAP Server.
Where as concrete WSDL contains messages, operations and transport
specific information (JMS or Http). This is used by SOAP client.

Difference Between Concreate WSDL And Abstract WSDL


An abstract WSDL document describes what the web service does, but not how it does it or how to
contact it. An abstract WSDL document defines:
the operations provided by the web service.
the input, output and fault messages used by each operation to communicate with the web service,
and their format.

A concrete WSDL document adds the information about how the web s ervice communicates and
where you can reach it. A concrete WSDL document contains the abstract WSDL definitions, and
also defines:
the communication protocols and data encodings used by the web service.
the port address that must be used to contact the web service.
47

Question : What is SOAP ?


Answer : SOAP is a simple XML-based protocol to let applications exchange information over
HTTP.
Or more simply: SOAP is a protocol for accessing a Web Service.

Question : What is XML Schema ?


Answer : An XML Schema describes the structure of an XML document.

Question : Difference between Include and Import in context to XML schema ?


Answer : The fundamental difference between include and import is that you must use import to
refer to declarations or definitions that are in a different target namespace and you must use
include to refer to declarations or definitions that are (or will be) in the same target namespace.
Question : What is targetNamespace's function?
Answer :
<schemaxmlns="http://www.w3.org/2001/SchemaXM L
targetNamespace="http://www.example.com/name"
xmlns:target="http://www.example.com/name">

The targetNamespace declares a namespace for other xml and xsd documents to refer to this
schema. The target prefix in this case refers to the same namespace and you would use it within
this schema definition to reference other elements, attributes, types, etc. also defined in this same
schema definition.

Oracle SOA Interview Questions Part- 2


Question : How to refer another XSL from main XSL file ?
Answer : The <xsl:import > element is a top-level element that is used to import the contents of
one style sheet into another.
Note: This element must appear as the first child node of <xsl:stylesheet> or <xsl:transform>.
Syntax: <xsl:import href="URI"/ >
Question: Why we use Call-template inside XSL ?
Answer : Call-template works similar to the apply-template element in XSLT. Both attach a
template to specific XML data. This provides formatting instructions for the XML. The main
difference between the two processes is the call function only works with a named template. You
must establish a 'name' attribute for the template in order to call it up to format a document.

<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
< xsl:call-template name="myTemplate">
< !-- Content: xsl -->
< /xsl:call-template>
< stylesheet>
48

Question: Difference between XA & Non-XA transaction ?


Answer:
Non-XA (Local Transaction): It involves only one resource. When you use Non-XA transaction then
you can’t involve multiple resources (different databases, Queues, application servers etc) , you can
rollback or commit transaction for only one resource. There is not transaction manager for this
transaction as we are dealing with only one resource at a time.

XA (Global Transaction): It involves more than one resource (different databases, queues,
application servers) all participate in one transaction. It uses two-phase commit to ensure that all
resources either all commit or rollback any particular transaction. When you have scenario like you
need to connect to two different databases, JMS Queue and application server, in this case you will
use XA transaction that means all resource participate in one transaction only.
Question: What is inline schema ?
Answer: Inline schemas are XML schema definitions included inside XML instance documents. Like
external schema documents, inline schemas can be used to validate that the instance matches the
schema constraints.

Question: what is the use of Pick Activity?


Answer: This activity waits for the occurrence of one event in a set of events and performs the
activity associated with that event. The occurrence of the events is often mutually exclusive (the
process either receives an acceptance or rejection message, but not both). If multiple events
occur, the selection of the activity to perform depends on which event occurred first. If the events
occur nearly simultaneously, there is a race and the choice of activity to be performed is dependent
on both timing and implementation.
( OR)
A Pick activity is a structured BPEL and is part of our process definition, and a Pick activity can
contain one or more OnMessage and OnAlarm activities.
Question: Design patterns in SOA ?
Question: Difference between Synchronous Process and Asynchronous Process ?
Question: Use of Config Plans ?
Oracle SOA Interview Questions (Mediator) Part -3
Question: What is role of Mediator?
Answer: Oracle Mediator provides a lightweight framework to mediate between various
components within a composite application. Oracle Mediator converts data to facilitate
communication between different interfaces exposed by different components that are wired to
build a SOA composite application.

Question: Difference between Mediator & OSB?


Answer: OSB is all together different tool which is used for integration like SOA but the main
purpose of OSB is to route the information and same we can do with mediator. The main difference
two is, we go for Mediator when we want to route information between different components inside
composite and go for OSB when we want to route the information between composites. Mediator is
used light weight mediation and OSB is used for heavy weight mediation.

Question: What is echo in Oracle Mediator?


49

Answer: The purpose of the echo option is to expose all the Oracle Mediator functionality as a
callable service without having to route it to any other service. For example, you can call an Oracle
Mediator to perform a transformation, a validation, or an assignment, and then echo the Oracle
Mediator back to your application without routing it anywhere else.
For synchronous operations with a conditional filter, the echo option does not return a response to
the caller when the filter condition is set to false. Instead, it returns a nullresponse.
The echo option is available for asynchronous operations only if the Oracle Mediator interface has a
callback operation. In this case, the echo is run on a separate thread.

Question: What is resequencing in Mediator ?


Answer: The resequencing feature of the Oracle Mediator reorders sets of messages that mig ht
arrive to the Oracle Mediator in the wrong sequence. You can define resequencing for all operations
in an Oracle Mediator or for a specific operation.

Question: Resequencing options available in mediator?


Answer:
Standard (based on input Id)
FIFO(based on time)
Best Efforts
Question: What is Schematron Validation?
Answer: Schematron is an XML schema language, and it can be used to validate XML contents in
an XML payload.

Question: Types of routing exist in Mediator?


Answer: Static & Dynamic Routing.
Question: Which static routing rule support fault policy ?
Answer: Parallel rules only.

Question: What is Dynamic Routing in Mediator ?


Answer: A dynamic routing rule lets you externalize the routing logic to an Oracle Rules
Dictionary, which in turn enables dynamic modification of the routing logic in a routing rule.

When you choose to create dynamic routing rule then it creates a new business rule service
component that is wired to the Oracle Mediator service component within the SOA composite of th e
Oracle Mediator service component. The business rule service component includes a rule dictionary.
The rule dictionary is a metadata container for the rule engine artifacts, such as fact types,
rulesets, rules, decision tables and so on.

Inside routing rules, you need to set endpoint URI.

Question: How many faults can Oracle Mediator service engine throw ?
Answer: Only One
{http://schemas.oracle.com/mediator/faults}mediatorFault.
50

Oracle SOA Interview Questions (Adapter) Part - 4


Question: Types of Adapters ?
Answer: Transactional & Non- Transactional Adapter
Transactional : Database, JMS, AQ, MQ adapters
Non- Transactional: File & FTP adapter

Question: Difference between Read & Sync-Read operation in File & FTP adapter?
Answer: Read is used when Polling is required to be done while SyncRead is used when you need
to read the file in between the flow i.e you want to have a synchrnous communication.

Question: What is File Debatching ?


Answer: When a file contains multiple messages, you can choose to publish messages in a specific
number of batches. This is referred to as debatching. During debatching, the file reader, on restart,
proceeds from where it left off in the previous run, thereby avoiding duplicate messages. File
debatching is supported for files in XML and native formats.
Question: What is File ChunkedRead ?
Answer: This is a feature of Oracle File and FTP Adapters that uses an invoke activity within a
while loop to process the target file. This feature enables you to process arbitrarily large files.

If an invalid payload is provided, then ChunkedRead scenarios do not throw an exception. When a
translation exception (bad record violating the NXSD specification) is encountered, the return
header is populated with the translation exception message that includes details such as line and
column where the error occurred. All translation errors do not result in a fault. These errors are
manifested as a value in the return header. You must check the jca.file.IsMessageRejected and
jca.file.RejectionReason header values to ascertain whether an exception has occurred.
Additionally, you can also check the jca.file.NoDataFound header value.

Question: Multiple Directories supported in File & FTP adapter ?


Answer: The Oracle File and FTP Adapters support polling multiple directories within a single
activation. You can specify multiple directories in JDeveloper as opposed to a single directory. This
is applicable to both physical and logical directories.

Question: What is the use of Trigger file ?


Answer: By default, polling by inbound Oracle File and FTP Adapters start as soon as the endpoint
is activated. However, if you want more control over polling, then you can use a file -based trigger.
Once the Oracle File or FTP Adapter finds the specified trigger f ile in a local or remote directory, it
starts polling for the files in the inbound directory.

For example, a BPEL process is writing files to a directory and a second BPEL process is polling the
same directory for files. If you want the second process to start polling the directory only after the
first process has written all the files, then you can use a trigger file. You can configure the first
process to create a trigger file at the end. The second process starts polling the inbound directory
once it finds the trigger file.
51

Question: Types of Rejection Message Handler ?


Answer:
Web Service Handler
Custom Java Handler
JMS Queue
File
Oracle SOA Interview Questions (Error Handling) Part - 6
Question: By how many ways we can handle error/fault in BPEL?
Answer: By using Catch blocks & Fault handling framework.

Question: Can we use both Catch block & fault handling framework in one BPEL?
Answer: Yes, we can have both Catch Block & Fault policies files in one BPEL.

Question: Standard Faults in BPEL?


Answer: Below is the list of Standard Faults in BPEL.
bindingFault, conflictingReceive, conflictingRequest, correlationViolation
· forcedTermination, invalidReply, joinFailure, mismatchedAssignmentFailure
· remoteFault, repeatedCompensation, selectionFailure, uninitializedVariable
Question: Standard Faults in Mediator?
Answer: Mediator has only one standard fault.
{http://schemas.oracle.com/mediator/faults}mediatorFault.

Question: How to get Fault Trace in CatchAll block?


Answer: By using getFaultAsString() function.

Question: Can we have custom faults in BPEL?


Answer: Yes we can create custom faults in BPEL, these faults are usually calle d Business Faults
and we usually handle it by using specific Catch block.

Question: Can we re throw a fault from Catch blocks?


Answer: Yes, we can re-throw fault from Catch block.

Question: Where we keep fault-policies.xml & fault-binding.xml files?


Answer: We can keep these files either local to project or in MDS and in both the cases we have to
specify the path in composite.xml file.
Question: What is MDS & Why we use MDS in Oracle SOA?
Answer: MDS stands for Oracle MetaData Service. It is central repository inside Oracle Fusion
Middleware. MDS purpose is to provide centralized store where we can keep, manage & access
metadata.

Metadata is often defined as data about data, or in other words, pieces of information that
describes and gives meaning to ot her information. Typical examples of metadata used by Oracle
Fusion Middleware components are XML files, XSD schema files, XSL transformations, SCA
52

composites, BPEL processes, WSDLs, business rules, Oracle ADF pages, JaveServer Pages (JSP),
and Oracle ADF task flows, among others.
The same metadata that is used during the design phase of application is used at application
runtime through the metadata service layer. This ensures consistency through the lifecycle of the
application. Metadata such as XML files or XSD schema files is usually shared among different
components. Therefore, it is not only necessary that those resources can be accessed easily and
referenced by all the components, but it is also important that they remain consistent; a change in
the metadata should be reflected in all the components that are referencing it. Having only one
copy of each metadata resource avoids unnecessary redundancy and guarantees that the changes
are made in only one place.
Question: Types of MDS Repository?
Answer: File-Based & DB Based.
Question: What is File-Based MDS Repository?
Answer: The idea behind file-based repositories is to allow developers to have a light repository
available in their local environment that can be easily adapted for development and tests ; a file-
based repository relieves developers of having to configure and maintain an external database
while providing necessary functionality, such as file referencing and customizations. These kinds of
repositories are easily modified and maintained, since they define a directory structure similar to
any other directory structure inside an operating system. They can be navigated and altered using
common shell commands or any kind of visual file explorer application. The file -based repository is
usually located inside the Oracle JDeveloper home (JDEV_HOME/integration) if the default
configuration is used.

Question: What is DB-Based MDS Repository?


Answer: Database-based repositories are used in production environments where robustness is
needed. These repositories are created using the Repository Creation Utility (RCU) application from
Oracle. This utility helps with the creation of a new database schema with its corresponding tables
and objects. Repositories can later be registered or deregistered via the Oracle Enterprise Manager
Fusion Middleware Control console.

Question: Which configuration file store MDS configurations?


Answer: The adf-config.xml file is a configuration file that is used to store MDS Configurations.
Question: What type of WSDL file we usually keep in MDS?
Answer: We usually keep Abstract WSDL’s only in MDS.

Oracle SOA Interview Questions (OWSM) Part- 7


Question: What is OWSM?
Answer: OWSM stands for Oracle Web Service Manager. Oracle Web Services Manager offers a
comprehensive and easy-to-use solution for policy management and security of service
infrastructure. It is a standalone platform for securing and managing access to web serv ices.
Question: How do we call secured web service from SOA?
Answer: By using OWSM policies.
Question: Can we generate custom OWSM policies?
Answer: Yes, we can create custom OWSM policies.
53

Question: By how many ways we can add OWSM policy to Web Service?
Answer:
· Through policy annotations at design time
· Via the Administration Console at runtime
· Via Fusion Middleware Control or WLST
Question: When we call secured web service from SOA, which policy we will use “Client”
or “Service”?
Answer: When we call secured web service from SOA then we add “Client” policy to reference
partner link and when we want to secure our web service then we use “Service” policy.
Question: Can we use OWSM with Oracle Service Bus?
Answer: Yes, we can access OWSM policies from OSB.
Question: Can we attach OWSM policy to multiple composites to secure composites?
Answer: yes, we can apply one policy to all composites in one domain using policy sets.
Question: what is the scope of Policy Sets or where we can apply Policy sets ?
Answer:
· Domain — all policy subjects of the specified type in a domain
· Application or Partition—all policy subjects of the specified type in an application or SOA
partition
· Application module or SOA composite—all policy subjects of the specified type in an
application module or SOA composite
· Service or reference—all policy subjects of the specified type in a SOA service or reference
· Port or component—all policy subjects of the specified type in a port or SOA component

Common Principles of SOA


8 common principles of SOA are as follows :
1.Reusability
Reuse is very important within service-orientation, so that it becomes a core part of that service
and design processes. Non-proprietary service technology has provided
the opportunity to maximize the reuse potential of multi-purpose logic on desire level.Services are
designed to potential and frequent reuse when available and required.
2.Formal Contract
Services express their purpose and capabilities via a service contract. To define service and terms
of information exchange formal contract is the best way. Contract design including that services
functionality, how data types and data models are defined, and how policies lies confidential. There
is a constant focus on ensuring that service contracts are optimized, granular, and standardized to
ensure that the outcome should be consistent and reliable.
3. Loose Coupling
Coupling defines a connection or relationship between two things. A measure of coupling is
comparable to a level of dependency.
The principle of Loose Coupling promotes the independent design and evolution of a logic for a
service and implementation . There are many types of coupling involved in the design of a service,
each of which can impact the content and granularity of its contract.
54

Figure : Coupling represents a core design consideration that spans both intra and inter-service
design.
4. Abstract underlying logic
Abstraction ties into many aspects of service-orientation. This principleemphasizes the need to
hide as much of the underlying details of a service as possible.
Various forms of meta data come into the picture when we are going to assess appropriate
abstraction levels. The extent of abstraction applied can affect service contract granularity and can
further influence the ultimate cost and effort for run the service.
5. Composability
The ability to compose services is a main requirement for achieving some of the most fundamental
goals of SOA.
Composibility allows logic that will help to create new service at different levels of granuality and
that will be capable of participating as effective composition members. The principle of Service
Composability addresses this requirement by ensuring that a variety of considerations are taken
into account.
6. Service are Autonomous
The logic of this principle fully based on explicit boundaries and the principle of this service
supports the extent to which other design principles can be effectively realized in real world
production environments that increase a service’s reliability and behavioral predictability. And all
the services within this explicit boundaries are control by them and these are independent from
other service.
7. Stateless
Every service should be able to remain loosely coupled and there is no need to manage state
information .Service should be design such that its statelessness maxi mized.Services are therefore
ideally designed to remain stateful only when required.
8.Discoverable
Services should always be discoverable and also should be such that it is easily understood by
humans and also service requesters so that the logic can be used.

Introduction to Oracle Mediator:

Oracle Mediator provides a lightweight framework to mediate between various components


within a composite application. Mediator converts data to facilitate communication between
different interfaces exposed by different components, which are wired together to build a SOA
composite application. For example, a Mediator can accept data contained in a text file from an
application or service, transform it to a format appropriate for updating a database that serv es as a
customer repository and then route and deliver the data to that database.

Oracle Mediator facilitates integration between events and services, where service invocations and
events can be mixed and matched. You can use a Mediator component to consume a business
event or to receive a service invocation. A Mediator component can evaluate routing rules, perform
55

transformations, validate, and either invoke another service or raise another business event. You
can use a Mediator component to handle returned responses, callbacks, faults, and timeouts.

This section provides an overview of Oracle Mediator features:

Content-Based and Header-Based Routing, Synchronous and Asynchronous Interactions

Sequential and Parallel Routing of Messages,Transformations, Validations,Java Callout,

Event Handling,Dynamic Routing,Error Handling,Multiple Part Message Support

Mediator Echo Support

Oracle Mediator provides support for setting rules based on message payload or message headers.
You can select elements or attributes from the message payload or the message header and based
on the values, you can specify an action. For example, Mediator receives a file from an application
or service containing data about new customers. Based on the country mentioned in the customer's
address, you can route and deliver data to the database storing data for that particular country.
Similarly, you can route a message based on the message header.

Synchronous and Asynchronous Interactions

Oracle Mediator provides support for synchronous and asynchronous request response interaction.
In a synchronous interaction, the client requests for a service and then waits for a response to the
request. In an asynchronous interaction, the client invokes the service but does not wait for the
response. You c an specify a timeout period for an asynchronous interaction, which can perform
some action, such as raise an event or start a process. Sequential and Parallel Routing of Messages

A routing rule execution type can be either parallel or sequential. You can c onfigure the execution
type from Routing Rules panel.

Transformations

Oracle Mediator supports data transformation from one XML schema to another. This feature
enables data interchange among applications using different schemas. For example, you can
transform a comma-delimited file to the database table structure.

Validations

Oracle Mediator provides support for validating the incoming message payload by using a
Schematron or an XSD file. You can specify Schematron files for each inbound message part and
Oracle Mediator can execute Schematron file validations for those parts.

Java Callout

Oracle Mediator provides support for Java callout. Java callouts enable the use of Java code,
together with regular expressions.
56

Event Handling

An event is message data sent because of an occurrence of an activity in a business environment.


Oracle Mediator provides support for subscribing to business events or raising business events. You
can subscribe to a business event that is raised when a situation of interest occurs . For example,
you can subscribe to an event that is raised when a new customer is created and then use this
event to start a business process such as sending confirmation email. Similarly, you can raise
business events when a situation of interest occurs. For example, raise a customer created event
after completing the customer creation process.

Dynamic Routing

Dynamic Routing separates the control logic, which determines the path taken by the process, from
the execution of the process. You can create a dynamic routing rule from the Mediator Editor.

Error Handling

Oracle Mediator supports both fault policy-based and manual error handling. A fault policy consists
of conditions and actions. Conditions specify the action to be carried out for a particular erro r
condition.

Mediator Echo Support

Oracle Mediator supports echoing source messages back to the initial caller after any transforms,
validations, assignments, or sequencing are performed.

Multiple Part Message Support

Oracle Mediator supports messages consisting of multiple parts. Some Remote Procedure Call
(RPC) web services contain multiple parts in the SOAP message.

Difference between Mediator and BPEL

You have many tools to use in a composite, and they may overlap for some cases. Mediator is
particularly useful for content based routing of events, and as a listener for events. BPEL of course
offers more possibilities for business logic and would generally be suited to defining process logic. A
more complex SOA composite likely includes both components and others as well.

Mediator serves the purpose of a bus. It can be best utilized when used for routing. It can do
routing based on many parameters and the best part is, the routing rules can be modified at
runtime, thus giving the flexibility to choose the target at any point in time.

BPEL

1) Complex Logic

2) Good Support language in form of”activities”

3) Performance wise very slow

4) Support of Dehydration and Instance Monitoring


57

5) For Long Running process BPEL is the Right Solution

6) To implement the controlled Transactions

Integration of Rules Engine and Human Workflow

7) To implement the service virtualization BPEL is not the right approach

Mediator

1) Less Complex Logic 2) Less Support 3) Three times faster than BPEL

4) No support of de hydration 5) For Long Running process not a proper solution

6) You cannot control the transactions in Mediator.

7) Mediator is the right approach for the service virtualization

Virtualization – Service virtualization provides companies with the ability to create v irtual services
that offer a stable interface (location, transport, standards, policies, messages) even when the
physical service changes. Virtualization offers high-availability and load-balancing, performance
and SLA monitoring and management, routing, versioning, and mediation capabilities to mitigate
the impact of change at the provider on service consumers.

Mediator is used for Transformation and Routing.

Routing------------------ Static routing and Dynamic Routing

Static ----------------Serviced Based & Event Based

Dynamic ------------Business Rules

What are the advantages of SOA? What are the disadvantages of SOA?

Advantages:-SOA allows you to develop a complex product by integrating different products from
different vendors independent of the platform and technology. Thus, it helps to manage complexity
involved. And making effective use of SOA concepts, client can be competent enough as the time
needed for the development is considerably reduced because of the reuse. It allows an organization
to leverage existing assets, rather than building a new product from scratch without making use of
existing ones. This also reduces the software development cycle and the cost involved, thus a
faster time-to-market is made possible.

Disadvantages:-SOA would not be suitable for applications with GUI functionalities. Those
applications would become more complex if they use SOA which requires heavy data exchange.
Also application requiring synchronous communication can’t make use of SOA. Also in case of
standalone and short lived applications’ implementations, SOA will become an added burden.
58

http://docs.oracle.com/cd/E14571_01/integration.1111/e10223/index.htm

if you need any images regarding below concepts go to above link

Introduction to Oracle SOA Suite Components:-

Oracle SOA Suite provides a comprehensive suite of components for developing, securing, and
monitoring service-oriented architecture (SOA).

Service components (BPEL process, business rule, human task, spring, and mediator) are the
building blocks that you use to construct a SOA composite application. The Service Infrastructure
provides the internal message transport infrastructure capabilities for connecting service
components and enabling data flow. Service engines for the components process the message
information received from the Service Infrastructure. See SOA Composite Application Architecture
for more information about service components.

Oracle Business Activity Monitoring consumes data transported over the Service Infrastructure,
providing powerful business insight capabilities.

The following components comprise an Oracle SOA Suite installation:

 Service Infrastructure
 Oracle Mediator
 Oracle Adapters
 Business Events and Events Delivery Network
 Oracle Metadata Repository
 Oracle Business Rules
 Oracle WSM Policy Manager
 Oracle BPEL Process Manager
 Spring Context
 Human Workflow
 Oracle Business Activity Monitoring
 Oracle User Messaging Service
 Oracle B2B
 Oracle JDeveloper
 Oracle Enterprise Manager

The following components are included with Oracle SOA Suite, but available as a separate
download:

 Oracle Service Bus


 Oracle Complex Event Processing

Both the Oracle Service Bus and the Service Infrastructure share common components, including
Oracle Adapters, Oracle Metadata Repository, and the UDDI registry. The UDDI registry is available
with the Oracle Service Registry, which is a separately licensable component. See Oracle Service
Registry for more information.
59

In addition, several separately licensable products interoperate with Oracle SOA Suite components.
See Interoperability with Other Oracle Products for more information.

Life Cycle of a SOA Composite Application:-

 The basic life cycle of a SOA composite application is as follows:

 Use Oracle JDeveloper to design a SOA composite application with various SOA components.
 Package the composite application for deployment.
 Deploy the SOA composite application to the SOA Infrastructure. The SOA Infrastructure is a
Java EE-compliant application running in Oracle WebLogic Server. The application manages
composites and their life cycle, service engines, and binding components.
 Use Oracle Enterprise Manager Fusion Middleware Control to monitor and manage the
composite application for a farm's SOA infrastructure.

Service Infrastructure

• The Service Infrastructure provides the internal message routing infrastructure capabilities
for connecting components and enabling data flow:
• Receives messages from the service providers or external partners through SOAP binding
components, adapters, or the delivery API in the form of XML.
• Routes messages based on the composite definition to the appropriate service engine.
• Oracle Mediator and the Service Infrastructure provide the following combined capabilities:
• Routing services to provide data movement
• Routing rules to specify routing, document transformation, and filtering
• Subscriptions to business events
• Unified error handling and exception management
60

Oracle Mediator:-

Analogous to a load balancer routing HTTP traffic, the Oracle Mediator routes data from service
providers to external partners. In addition, it can subscribe to and publish business events.

Using Oracle Mediator, you create routing services and rules for them. A routing service is the key
component for moving a message across the enterprise service bus – from its entry point to its exit
point. The rules determine how a message instance processed by the routing service gets to its
next destination. Using the rules, Oracle Mediator can perform the following actions:

 Route: Determines the service component (BPEL process, business rule , human task, and
mediator) to which to send the messages.
 Validate: Provides support for validating the incoming message payload by using a
schematron or an XSD file.
 Filter: If specified in the rules, applies a filter expression that specifies the contents
(payload) of a message be analyzed before any service is invoked.
 Transformation: If specified in the rules, transforms document data from one XML schema
to another, thus enabling data interchange among applications using different schemas.

During runtime, Oracle Mediator evaluates routing rules, performs transformations, applies optional
time delays, and either invokes another service or raises another business event. A routing service
can handle returned responses, callbacks, faults, and time-outs. Oracle Mediator can also be used
to implement a variety of integration patterns, such as service virtualization, service aggregation,
publish and subscribe, fan-in, and fan-out.

About Oracle Service Bus with Oracle Mediator:-

Oracle Service Bus provides standalone service bus capabilities, enabling separation between
application developers and target systems or services. The main users of the Oracle Service Bus
are integration developers and operations personnel. Their mission is to shield application
developers from changes in the endpoint services or systems and to prevent those systems from
being overloaded with requests from upstream applications.

Whereas Oracle Service Bus provides service virtualization and protocol transformations for an
Oracle SOA Suite application containing multiple composites, Oracle Mediator is an intra -composite
mediation component that is deployed within an application.

Oracle Service Bus :-


Oracle Service Bus, available as a separate download with an Oracle SOA Suite license, is a n
intermediary that processes incoming service request messages, determines routing logic, and
transforms these messages for compatibility with other service consumers. It receives messages
through a transport protocol such as HTTP(S), JMS, File, and
FTP, and sends messages through the same or a different transport protocol. Service response
messages follow the inverse path.
61

Oracle Service Bus connects, mediates, and manages interactions between heterogeneous services,
not just Web services, but also Java and .Net, messaging services and legacy endpoints. It
uniquely delivers the integration capabilities of an Enterprise Service Bus (ESB) with operational
service management in a single product with an efficient, seamless user experience. With its
flexible deployment options and automated integration withOracle SOA Governance Suite, Oracle
Service Bus handles the deployment, management and governance challenges of implementing
SOA from department to enterprise scale.

 Specifically, Oracle Service provides the following functional areas:


 Management: Provides embedded service management capabilities that provide optimized
governance of all messaging. Its preemptive support ensures that mission-critical business
processes continue to serve customer needs, even as business demands, requirements, and
workloads change.
 Mediation: Provides a rich environment for content -based routing, message transformations,
and lightweight orchestrations.
 Adaptive Messaging: Reliably connects any service by leveraging standards Web service
transports, traditional messaging protocols and configuration of enterprise -specific custom
transports.
 Security: Provides a rapid service configuration and integration environment that abstracts
policies associated with routing rules, security, and service end-point access.

Comparing Oracle Mediator with Oracle Service Bus:-

Oracle Mediator is an intra-composite mediation component that is deployed wit hin a composite,
keeping the composite on a canonical model. Its primary function is to provide the transformation
of legacy formats to a common format. It is responsible for brokering communications between
components that make up a composite, enabling transformation, routing, event delivery, and
payload validation inside the composite.

Oracle Adapters:-
Oracle Adapters use JCA technology to connect external systems to the Oracle SOA Suite.

Oracle SOA Suite provides the following technology adapters to integrate with transport protocols,
data stores, and messaging middleware:

 BAM
 FTP
 Java Messaging Service (JMS)
 Advanced Queuing (AQ)
 Files
 Message Queuing (MQ) Series

Oracle also provides support for third-party adapters. See Other Adapters for additional
information.

Business Events and Event Delivery Network:-


62

You can raise business events when a situation of interest occurs. Business events are messages
sent as the result of an occurrence or situation, such as a new order or completion of an order. In
Oracle SOA Suite, the mediator service component subscribes or publishes events. When an event
is published, other applications can subscribe to it.

Definitions for business events, as well as other artifacts of a composite, are stored in the Oracle
Metadata Repository (MDS), and then published in the Event Deliv ery Network (EDN).

Oracle Metadata Repository:-

The Oracle Metadata Repository (MDS) stores business events, rulesets for use by Oracle Business
Rules, XSLT files for Oracle Service Bus and Oracle Mediator, XSD XML schema files for Oracle BPEL
Process Manager, WSDL files, and metadata files for Complex Event Processing.

To publish the MDS services to the outside world, use the Oracle Enterprise Repository provided
with the Oracle SOA Governance Suite.

Oracle Business Rules:-

Oracle Business Rules, initiated by a BPEL process service component, enable dynamic decisions at
runtime allowing you to automate policies, constraints, computations, and reasoning while
separating rule logic from underlying application code. In addition, the human task and mediator
service components can make use of rules for dynamic routing. A mediator service component can
use a business rule for routing messages, and a human task can use a busines s rule for routing
assignments. The Oracle Metadata Repository (MDS) stores the rulesets for Oracle Business Rules.

Oracle Business Rules provide more agile rule maintenance and empowers business analysts with
the ability to modify rule logic without programmer assistance and without interrupting business
processes.

Oracle WSM Policy Manager:-

Oracle WSM Policy Manager provides the infrastructure for enforcing global security and auditing
policies in the Service Infrastructure. By securing various endpoints and setting and propagating
identity, it secures applications. Oracle WSM Policy Manager provides a standard mechanism for
signing messages, performing encryption, performing authentication, and providing role -based
access control. You also can change a policy without having to change the endpoints or clients for
this endpoints, providing greater flexibility and security monitoring for your enterprise.

In addition, Oracle WSM Policy Manager collects monitoring statistics with information about the
quality, uptime, and security threats and displays them in a Web dashboard. As a result, Oracle
WSM Policy Manager provides better control and visibility over Web services.
63

Oracle BPEL Process Manager:-s

Oracle BPEL Process Manager provides the standard for assembling a set of discrete services into
an end-to-end process flow, radically reducing the cost and complexity of process integration
initiatives. Oracle BPEL Process Manager enables you to orchestrate synchronous and asynchronous
services into end-to-end BPEL process flows.

You integrate BPEL processes with external services (known as partner links).

You also integrate technology adapters and services, such as human tasks, transformations,
notifications, and business rules within the process.

Spring Context:-

Oracle SOA Suite provides support for the spring framework functionality of the WebLogic Service
Component Architecture (SCA) of Oracle WebLogic Server. Spring is a popular application
framework that enables developers to quickly and easily create high quality applications for
deployment into high-end application servers. The spring framework provides a lightweight
container that makes it easy to use different types of services. Lightweight containers can accept
any JavaBean, instead of specific types of components.

You can use the spring framework to create Java applications using plain old Java objects (POJOs)
and expose components as SCA services and references. In SCA terms, a WebLogic spring
framework SCA application is a collection of POJOs plus a spring SCA context file that wires the
classes together with SCA services and references.

Oracle SOA Suite provides a spring context service component that enables you to use Java
interfaces instead of WSDL files in SOA composite applications. You can also integrate components
that use Java interfaces with components that use WSDL files in the same SOA composite
application. For example, you can have a spring context service component invoke an Oracle BPEL
Process Manager service component or an Oracle Mediator service component invoke a spring
context service component or Enterprise JavaBean.

Human Workflow:-

Many end-to-end business processes require human interactions with the process. For example,
humans may be needed for approvals, exception management, or performing activities required to
advance the business process. The human workflow component provides the following features:

Human interactions with processes, including assignment and routing of tasks to the correct users
or groups

Deadlines, escalations, notifications, and other features required for ensuring the timely
performance of a task (human task activity)
64

Presentation of tasks to end users through a variety of mechanisms, including a worklist application
(Oracle BPM Worklist)

Organization, filtering, prioritization, and other features required for end users to productively
perform their tasks

Reports, reassignments, load balancing, and other features required by supervisors and business
owners to manage the performance of tasks

The graphic shows an overview of human workflow:

 A BPEL process invokes a human task activity when it nee ds a human to perform a task. A
human task activity creates a task in the human task service component.
 The human task service component uses workflow services to perform a variety of
operations in the life cycle of a task, such as querying tasks for a use r, retrieving metadata
information related to a task, and so on.
 The human task service component presents tasks to users through a variety of channels,
such as Oracle BPM Worklist, email, portals, or custom applications. Oracle BPM Worklist, a role -
based application that supports the concept of supervisors and process owners, and provides
functionality for finding, organizing, managing, and performing tasks.

Oracle Business Activity Monitoring:-

Oracle Business Activity Monitoring (Oracle BAM) is a complete solution for building real-time
operational dashboards and monitoring and alerting applications over the Web. Using this
technology, business user gain the ability to build interactive, real-time dashboards and proactive
alerts to monitor their business services and processes. More specifically, Oracle BAM enables
business operation workers and managers to:

 Monitor business processes and services in real-time


 Analyze events as they occur by correlating events, identifying trends as they emerge, and
alerting users to bottlenecks, exceptions, and solutions to business problems
 Act on current conditions with event -driven alerts, real-time dashboards, BPEL processes,
and Web services integration, enabling quick changes or corrective action to business processes

The graphic depicts the Oracle Business Activity Monitoring active data architecture for dynamically
moving real-time data to end users through every step of the process. It shows various
mechanisms to feed data into Oracle BAM. Oracle BAM processes incoming data and analyzes
events. Oracle BAM Web Applications, including Active Viewer, Active Studio, Architect,
Administrator, enable users to build Oracle BAM schema, dashboards, and alerts. BAM Data Control
enables developers to create ADF pages with active data content. Oracle BAM and its applications
then provide output to users.

Oracle SOA Suite makes it easy to expose SOA events, such as BPEL processes, to the BAM engine.
Because many of the events are not SOA events, you need to consider all of the different disparate
events and how you want to correlate and aggregate that information together and display in real-
time dashboards.
65

Oracle Complex Event Processing:-

Databases are best equipped to run queries over finite stored data sets. However, many modern
applications require long-running queries over continuous unbounded sets of data. By design, a
stored data set is appropriate when significant portions of the data are queried repeated ly and
updates are relatively infrequent. In contrast, data streams represent data that is changing
constantly, often exclusively through insertions of new elements. It is either unnecessary or
impractical to operate on large portions of the data multiple times. Many types of applications
generate data streams as opposed to data sets, including sensor data applications, financial tickers,
network performance measuring tools, network monitoring and traffic management applications,
and clickstream analysis tools. Managing and processing data for these types of applications
involves building data management and querying capabilities with a strong temporal focus.

To address this requirement, Oracle SOA Suite provides Oracle Complex Event Processing (Oracle
CEP), a data management infrastructure that supports the notion of streams of structured data
records together with stored relations. Oracle CEP is included with Oracle SOA Suite, but available
as a separate download. It is optimized to handle very large volume s of events, such as those
found in bank transactions, that cannot be managed by Oracle BAM. In addition, Oracle Complex
Event Processing can perform complex correlations and pattern matching.

For a composite application to use Oracle CEP, an Oracle Mediat or publishes business events to the
Event Delivery Network (EDN). At runtime, the Oracle CEP Service Engine subscribes to these
events. The Oracle CEP Service Engine executes a Continuous Query Language (Oracle CQL) query
and searches for patterns in event streams. Oracle CQL is a query language based on SQL with
added constructs that support streaming data. Using Oracle CQL, you can express queries on data
streams to perform complex event processing. The Oracle CEP Service Engine listens on these
streams, caches all the necessary individual, seemingly unrelated events and tries to correlate
them into specific patterns. The data provided from complex event processing queries can then be
used in Oracle BAM.

The potential applications of Oracle CEP are numerous, from electronic trading and risk
management to intrusion detection and compliance monitoring.

Specifically, Oracle CEP provides the following functional areas:

 Data and Event Sources: An Oracle CEP event source identifies a producer of data that your
Oracle CQL queries operate on. Event sources include data feeds such as wire services and stock
tickers, sensors such as temperature, motion, or radio frequency identification (RFID) detectors,
and other devices. Oracle CEP provides a variety of adapters tha t connect such real-world event
sources to your Oracle CQL queries. Oracle CEP adapters support the following event sources: JMS,
HTTP publisher/subscriber, and file.
 Context Creation: Oracle CEP offers a variety of sliding window operators and views
(subqueries) that allow you to define the temporal or semantic context in which filtering,
correlation and aggregation, and pattern matching takes place. Using windows and views, you can
define contexts such as events in the last 5 minutes or events for a particular customer, and so on.
66

Oracle CQL provides a variety of sliding windows, including: range -based (time or constant value),
tuple-based, and partitioned. In addition, you can easily define custom window operators.
 Filtering: Using Oracle CQL, you can specify queries that select on any of the attributes of
the events offered by event sources. You use such queries to filter the event sources to obtain
events of interest. Oracle CQL provides a rich set of operators, expressions, conditions, and
statements for this purpose.
 Correlation and Aggregation: Using Oracle CQL, you can perform advanced statistical and
arithmetic operations on the attributes of the events offered by event sources. Oracle CQL
provides: single-row functions that return a single result row for every row of a queried stream or
view; aggregate functions that return a single aggregate result based on a group of tuples, rather
than on a single tuple; statistical and advanced arithmetic operations based on the Colt open
source libraries for high performance scientific and technical computing; and statistical and
advanced arithmetic operations based on the java.lang.Math class. In addition, you can easily
define custom single-row and aggregate functions.
 Pattern Matching: Using the Oracle CQL MATCH_RECOGNIZE condition, you can succinctly
express complex pattern matching operations for a wide variety of tasks such as algorithmic
trading, double-bottom detection, non-event detection, and so on. The following example detects if
perishable food is exposed to temperatures of 25 C or higher for more than 5 minutes.

<query id="detectPerish"><![CDATA[
select its.itemId from ItemTempStream
MATCH_RECOGNIZE (
PARTITION BY
itemId
MEASURES
A.itemId as itemId
PATTERN (A B* C)
DEFINE
A AS (A.temp >= 25) and ,
B AS ((B.temp >= 25) and
(B.element_time - A.element_time < INTERVAL "0 00:00:05:00" DAY TO SECOND)),
C AS ((C.temp >= 25) and
C.element_time - A.element_time >= INTERVAL "0 00:00:05:00" DAY TO SECOND)
)) as its
]]></query>

 Complex Event Sinks: An Oracle CQL event sink identifies a consumer of Oracle CQL query
results. That is, a consumer of notable events that Oracle CQL queries have extracted from event
sources by executing filtering, correlation and aggregation, and pattern matching within various
contexts. Typically, notable events are fewer in number (and much higher in value) than the
events offered by event sources. Oracle CEP adapters support the following event sinks: JMS, HTTP
publisher/subscriber, file, and event beans. Event beans are Plain Old Java Objects (POJO) that
contain the business logic you want executed when certain notable events occur.

Oracle User Messaging Service:-


67

Oracle User Messaging Service provides a common service responsible for sending out messages from
applications to devices. It also routes incoming messages from devices to applications.

You can easily send outgoing notifications from a BPEL process flow or invoke outgoing and incoming
messages for tasks assigned to users from a human task.

Oracle B2B:-
68

Oracle B2B is an eCommerce gateway that enables the secure and reliable exchange of messages
between an enterprise and its trading partners. It is a binding component of the Oracle SOA Suite and
this platform enables the implementation of complete end-to-end eCommerce business processes.

What Is eCommerce?

Electronic commerce, eCommerce, is the buying and selling of products or services electronically and
can take many forms, for example, machine-to-application, customer-to-application, application-to-
application and business-to-business (B2B). In any form, eCommerce, is an integral component of any
enterprise integration strategy and the focus must be the business process. You must address process
orchestration, error mitigation, data (translation, transformation, and outing), security, compliance,
visibility, and management.

What Does Oracle B2B Provide?

Oracle B2B addresses the documents, packaging, transports, messaging services, Trading Partner
profiles, and agreements with the following features:

 Document Management: Provides multiple document standards, such as definitions, validation,


translation, identification, correlation, batching, routing, code lists, and envelope generation.
 Trading Partner Management: Provides capabilities to manage trading partner profiles and
agreements.
69

 Profiles: Provides trading partners details, such as identifications, contacts, users, delivery
channels, supported documents, and security.
 Agreements: Enables agreement between trading partners for a specific interaction.
 System Management: Provides features to monitor and manage the environment.

The graphic demonstrates a typical eCommerce use case:

 The application initiates the purchase order.


 A mediator service component receives the purchase order. It validates, performs code
conversion, transforms the purchase order to a canonical, and routes t he document. (Canonical refers to
a canonical data model that is used to transition between different document standards.)
 A BPEL process service component receives the purchase order, orchestrates any required
business process, and can invoke a human task, business rule, and error handling as required.
 A mediator service component receives the purchase order, validates, performs code conversion,
transforms the canonical to the target purchase order, and routes the document.
 Oracle B2B receives the purchase order, identifies the partner, identifies the agreement,
validates the purchase order, translates the purchase order to EDI, generates the EDI envelope,
generates acknowledgments, and manages the secure exchange of the purchase order with the external
trading partner.

Oracle JDeveloper:-

Oracle JDeveloper is the development component of Oracle SOA Suite. It forms a comprehensive
Integrated Service Environment (ISE) for creating and deploying composite applications and managing
the composite.

Oracle JDeveloper enables developers to model, create, discover, assemble, orchestrate, test, deploy,
and maintain composite applications based on services.

The SOA Composite Editor enables you to create, edit, and deploy services, and also to assemble them
in a composite application, all from a single location. These components are integrated together into one
application and communicate with the outside world through binding components such as Web services
and JCA adapters.

The SOA Composite Editor enables you t o use either of two approaches for designing SOA composite
applications:

 The top-down approach of building a composite application puts interfaces first and
implementation next. For example, you first add BPEL processes, human tasks, business rules, and
Oracle Mediator routing services components to an application, and later define the specific content of
these service components.
 The bottom-up approach takes existing implementations of service components and wraps them
with Web service interfaces for assembly into a composite application. For example, you first create and
define the specific content of BPEL processes, human tasks, business rules, and Oracle Mediator routing
services components, and later create a SOA composite application to which you add t hese service
70

components.

Oracle JDeveloper provides the following additional editors to design service components:

 Oracle BPEL Designer: You can create a BPEL process service component in the SOA composite
application of Oracle JDeveloper and then design it by using the BPEL Designer, which is displayed, when
you double-click a BPEL process in the SOA Composite Editor.
 Oracle Mediator Editor: You can create a mediator service component in the SOA composite
application of Oracle JDeveloper, and then design it by using the Mediator Editor, which is displayed
when you double-click a Mediator in SOA Composite Editor.
 Human Task Editor: You can create a human task service component in the SOA composite
application of Oracle JDeveloper and then design it by using the Human Task Editor, which is displayed
when you double-click a human task in the SOA Composite Editor.
 Business Rules Designer: You can create a business rules service component in the SOA
composite application of Oracle JDeveloper and then design it by using the Business Rules Designer,
which is displayed when you double-click a business rule in the SOA Composite Editor.

Oracle Enterprise Manager:-

You can configure, monitor, and manage your SOA composite application during run time from Oracle
Enterprise Manager Fusion Middleware Control Console. Fusion Middleware Control is a Web browser-
based, graphical user interface that you can use to monitor and administer a farm.

A farm is a collection of components managed by Fusion Middleware Control. It can contain Oracle
WebLogic Server domains, one Administration Server, one or more Managed Servers, clusters, and the
Oracle Fusion Middleware components that are installed, configured, and running in the domain.

Fusion Middleware Control organizes a wide variety of performance data and administrative functions
into distinct, Web-based home pages for the farm, domain, servers, components, and applications. The
Fusion Middleware Control home pages make it easy to locate the most important monitoring data and
the most commonly used administrative functions from your Web browser.

You deploy SOA composite applications designed in Oracle JDeveloper to the SOA Infrastructure. The
SOA Infrastructure is a Java EE-compliant application running in Oracle WebLogic Server. The
application manages composites and their life cycle, service engines, and binding components.

From Fusion Middleware Control, you select a farm and select the SOA Infrastructure for that farm to
begin administration. You can navigate to Oracle SOA Suite administration tasks through the SOA
Infrastructure home page and menu. The SOA Infrastructure provides you with access to all deployed
SOA composite applications, service engines, service components, business events, and other ele ments.

Fusion Middleware Control provides a wide variety of administrative and performance data for the SOA
components, composite applications, and composite instances within the SOA infrastructure, enabling
you to administer and pinpoint issues.
71

SOA Composite Application ArchitectureSOA Composite :-

A SOA composite is an assembly of services, service components, and references designed and deployed
together in a single application. Wiring between the service, service component, and reference enable
message communication. The composite processes the information described in the messages.

The graphic provides an example of a composite that includes a mediator service component and a BPEL
service component, an inbound service binding component, and an outbound reference binding
component.

Service Components

Service components are the building blocks of a SOA composite application. Each service component is
hosted in its own service engine container. Messages sent to the service engine are targeted at specific
service components. For example, a message targeted for a BPEL process is sent to the BPEL service
engine. Service engines process the message information received from the .

The following service components are available. There is a corresponding service engine of the same
name for each service component. All service engines can interact together in a single composite.

 BPEL processes provide process orchestration and storage of synchronous or asynchronous


process. You design a business process that integrates a series of business activities and services into an
end-to-end process flow
 Business rules enable you to design a business decision based on rules.
 Human tasks provide workflow modeling that describes the tasks for users or groups to perform
as part of an end-to-end business process flow.
 Mediators route events (messages) between different components.

Services

Services provide the outside world with an entry point to the SOA composite application. The WSDL file
of the service advertises its capabilities to external applications. These capabilities are used for
72

contacting the SOA composite application components. The binding connectivity of the service describes
the protocols that can communicate with the service, for example, SOAP/HTTP or a JCA adapter.

References

References enable messages to be sent from the SOA composite application to external services in the
outside world.

Wires

Wires enable you to graphically connect the following components in a single SOA composite application
for message communication:

Services to service components

Service components to other service components

Service components to reference

Interoperability with Other Oracle Products:

Separately Licensed Products:-

You can use the following separately licensed products with Oracle SOA Suite:

 Oracle Service Registry


 Other Adapters
 Oracle SOA Governance Suite
 Oracle Business Process Management Suite
 Oracle Business Process Analysis Suite
 Oracle Event-Driven Architecture Suite
 Oracle Data Integrator
 Oracle Business Intelligence

Oracle Service Registry:-

The Oracle Service Registry provides visibility into services, service providers, and related resources
across the enterprise. Specifically, it publishes the Oracle Metadata Repository (MDS) services to the
outside world. It provides a configurable, scalable, secure repository, called the Oracle Application
Server UDDI Registry, of Web services that can be managed, discovered and governed by Oracle Fusion
Middleware. The Oracle Service Registry advertises the existence of these services to potential
consumers. The Oracle Service Registry provides the following services for an enterprise:

 Enables service providers to publish and advertise their offerings


 Allows service consumers to find, access, and invoke services that meet defined criteria
 Provides critical features for SOA governance
73

For Oracle SOA Suite, a BPEL process service component use the UDDI registry to store a service key for
a partner link in a BPEL process, and a mediator service component uses the registry to store a service
key for a SOAP service. A BPEL process service componentinteracts with external services through
partner links, and a mediator service componentcan route to an external SOAP services. When the SOA
composite application runs, BPEL process and mediator service components use the service key to query
the UDDI registry for the WSDL URL for the service. In this way, Oracle Service Registry manages the
endpoint for WSDLs rather than Oracle BPEL Process Manager and Oracle Mediator.

The Oracle Service Registry is also provided as part of the Oracle SOA Governance Suite.

Other Adapters:-

Oracle provides the following packaged-application adapters for integrating Oracle SOA Suite with
various packaged applications, such as SAP and Siebel:

 Oracle Applications
 PeopleSoft
 SAP R/3
 Siebel
 PeopleSoft
 J.D. Edwards OneWorld

Oracle provides the following legacy adapters for integrating Oracle SOA Suite with legacy and
mainframe applications:

 Tuxedo
 CICS
 VSAM
 IMS/TM
 IMS/DB

Oracle SOA Governance Suite:-

Oracle SOA Governance Suite eases the transition of an organization to service -oriented architecture
(SOA) by providing a means to reduce risk, maintain business alignment, and show business value of
SOA investments through a combination of people, process, and technology. Oracle's holistic SOA
74

governance solution automates essential SOA governance processes to enable organizations to realize
the agility benefits of SOA while managing risk in the transformation to SOA. It provides end-to-end
capabilities to support SOA governance efforts, regardless of the status or progress of an organization's
SOA transformation. Whether just embarking on a SOA program, or expanding from project or pilot to
broader deployment, the Oracle SOA Governance Suite solution guides organizations along the path to
demonstrated, measurable SOA success. Oracle SOA Governance Suite is Oracle Fusion Middleware's
strategic approach to governing SOA.

Components in Oracle SOA Governance Suite provide visibility, control and analytics to make SOA
initiatives successful:

 Oracle Enterprise Repository provides metadata management for all assets within the SOA and
sophisticated tools for governing those assets throughout the lifecycle and ena bling their reuse.

Serving as the core of Oracle SOA Governance, its primary focus is managing the detailed asset
metadata associated with the design-time stages of the service lifecycle and applying structure for
promoting those assets through the different stages of the lifecycle.

 Oracle Service Registry provides a standards-based reference for the dynamic discovery and use
of services and their associated policies at runtime.

It contains a subset of the metadata managed within Oracle Enterprise Repository that is useful to the
runtime infrastructure for dynamic discovery of services and policies. Service descriptions, service
location and end points, service operations and parameters, and service policies are all examples of the
information available within the registry. Oracle Enterprise Repository publishes services, policies,
endpoints, categorizations, and artifacts to the Oracle Service Registry at each stage of the lifecycle.
Reciprocally, assets in the Oracle Service Registry can be submitted back to the Oracle Enterprise
Repository for visibility and governance.

 Oracle Web Services Manager provides message-level security policies.


 Oracle Enterprise Manager SOA Management Pack provides management of business process es
and SOA deployments.

Oracle Business Process Management Suite:-

The Oracle Business Process Management (Oracle BPM) Suite provides an integrated environment for
developing, administering, and using business applications centered around business processe s.

The Oracle BPM Suite provides the following:

 Enables you to create process models based on standards with user-friendly applications. It
enables collaboration between process developers and process analysts. Oracle BPM supports BPMN 2.0
and BPEL from modeling and implementation to run time and monitoring.
 Enables process analysts and process owners to customize business processes and Oracle
Business Rules.
 Provides a web-based application for creating business processes, editing Oracle Business Rules,
and task customization using predefined components.
 Expands business process management to include flexible, unstructured processes. It adds
75

dynamic tasks and supports approval routing using declarative patterns and rules -driven flow
determination.
 Enables collaboration by providing integration with Process Space, which drives productivity and
innovation.
 Unifies different stages of the application development life cycle by addressing end-to-end
requirements for developing process-based applications. Oracle BPM unifies the design, implementation,
run time, and monitoring stages based on an SCA infrastructure. This enables different personas to
participate through all stages of the application life-cycle.

The Oracle BPM Suite provides a seamless integration of all stages of the application development life
cycle from design-time and implementation to run-time and application management.

The Oracle BPM Suite is layered on the Oracle SOA Suite and shares many of the same product
components, including:

 Business Rules
 Human Workflow
 Oracle Adapter Framework for Integration

Oracle Business Process Analysis Suite:-

Oracle Business Process Analysis (Oracle BPA) Suite is a modeling and analysis tool targeted at business
analysts. Oracle BPA Suite extends the business value of BPEL processes and fosters collaboration
between business analysis and IT. It enables process owners, skilled business analysts, and architects to
perform process modeling and analysis, simulation and publishing of process models. The Oracle BPA
Suite further supports the execution and monitoring of these process models for IT Developers withBPEL
and Oracle BAM.

Specifically, Oracle BPA Suite contains the following components:

 Architect provides process modeling using BPEL, built upon a robust service -oriented
architecture, for drawing business processes.
 Publisher provides a role-based presentation of process models to a Web portal.
 Repository stores and provides concurrent access to business process models and related
artifacts. IT developers can use Oracle JDeveloper to utilize these models to create SOA composite
applications.
 Simulator simulates the process models based on a set of discrete events to do "what if"
analysis. This simulation enables business analysts to discover bottlenecks, determine process
throughput time, compare process alternatives,and quantify the impac t of organization changes.
 Oracle SOA Extensions take business processes from concepts to execution by sharing process
blueprints with Oracle SOA Suite.

Oracle BPA enables collaboration among business and IT users by disseminating and distributing
information. The business models promote rapid BPEL development by propagating business changes in
real-time to IT. Changes can also apply to current work without IT losing work.

Unlike the Oracle BPM Suite, the business process models in the BPA Studio have to be explicitly
promoted to be viewed with Oracle JDeveloper. This suite is beneficial when an enterprise is interested
76

in how their organization or their business processes work, usually as part of a project to create a new
process or to redesign or improve an existing process.

Oracle Event-Driven Architecture Suite:-

Oracle Event-Driven Architecture (Oracle EDA) Suite provides a set of Oracle integration products
focused on meeting the event -driven application development needs for developers defining front -office
applications that require low latency, high throughput, and deterministic processing of data or event
streams. Oracle EDA Suite provides developers with a lightweight Java server for event processing tuned
for high-throughput, low latency use cases on top of JRocket Real-Time. In addition to this event server,
the Oracle EDA Suite is differentiated from the competition's offering by providing an industry -leading
event processing engine and an event visibility platform.

Components in the Oracle EDA Suite provide visibility, control, and analytics to make SOA initiatives
successful:

 Oracle Business Rules


 Oracle Service Bus
 Oracle Complex Event Processing
 Oracle Business Activity Monitoring

Oracle Data Integrator:-

Oracle Data Integrator helps to you to integrate the vast amounts of information stored in disparate
systems. Oracle Data Integrator streamlines the high-performance movement and transformation of
data between disparate systems in batch, real-time, synchronous, and asynchronous modes, with a
focus on batch processing large amounts of data.

Oracle Data Integrator is optimized to handle very large transformations that cannot be managed by
Oracle Mediator. The main scenarios are depicted in the graphic:

 A BPEL process or a mediator service component passes XML payload for a document larger than
10 MB to Oracle Data Integrator to transform the payload.
 A BPEL process or an mediator service component passes an XML payload to Oracle Data
Integrator to transform and load an XML file into a database.
 Oracle BAM, Oracle Complex Event Processing, Oracle BPEL Process Manager, human task, or
Oracle Mediator trigger a rule requiring a data warehouse refresh for Oracle Business Intelligence.
Oracle Data Integrator orchestrates data-tier loading and insertion into a staging area, and then
transforms aggregate data and loads tables, enabling Oracle Business Intelligence and data warehouse
applications to report on the triggered data.

Oracle SOA Suite and Oracle Data Integrator enable enterprises to perform any kind of data transfer and
transformations: from real-time to batch and from small data changes propagation to complete
replications. They enable companies to more easily handle initiatives related to busines s intelligence
77

(BI), data warehousing, master data management (MDM), Oracle BAM, application migration and
consolidation, and SOA.

Oracle Business Intelligence:-

Many IT environments use multiple applications and multiple data sources, making it challenging to:

 Automate business processes across applications


 Modify business processes
 Make relevant business insight
 Provide access a



 cross applications

When Oracle Business Intelligence is used in conjunction with SOA composite applications, your
organization can meet these challenges. Oracle SOA Suite and Oracle Business Intelligence enable
business analysts to:

 Gain insight from monitor and analyze business-process data. Oracle BAM provides visibility of
in-flight BPEL processes and Oracle Business Intelligence shows the business impact of process
performance by integrating application and process data and providing ad-hoc analysis and reporting.
 Take action from the dashboards, alerts, and reports provided by Oracle Business Intelligence.
For example, a BI dashboard can initiate a BPEL process.
 Orientate business processes towards business goals. You can design a BPEL process to leverage
business metrics in Oracle Business Rules and generate, access, and deliver business intelligence
reports.

Spec ifically, Oracle Business Intelligence helps answer key business questions by providing the following
output to business analysts:

 Production reports support all document types, such as invoices, checks, statements, and
government forms.
 Financial reports provide formatted financial statements and built -in financial intelligence.
 Ad-hoc queries enable business users to create and modify charts, picots, and dashboards.
 Interactive dashboards provide dynamic, event -driven guided analytics for leading business
analysts from insight to action.
 Detections and alerts provide notifications to any device in multiple formats, such as PDF reports
and Briefing Books.
 Microsoft Office output provides dynamic updates across applications.
 Disconnected and mobile analytics provide offline reports and dashboards to PDAs, phones, and
laptops
 Desktop gadgets provide collaboration through report sharing, chatting, and discussion.

Introduction to Oracle SOA Suite:-


78

The components of Oracle SOA Suite benefit from common capabilit ies, including a single deployment,
management, and tooling model, end-to-end security, and unified metadata management. Oracle SOA
Suite is unique in that it provides the following set of integrated capabilities:

 Messaging
 Service discovery
 Orchestration
 Web services management and security
 Business rules
 Events framework
 Business activity monitoring

These capabilities help address the fragmented IT landscape and addresses the difficulties associated
with silos of IT infrastructure and applications. It enables greater flexibility through:

 Interoperability: SOA, and the industry standards underpinning it, enable existing siloed
applications to interoperate seamlessly and in an easier-to-maintain manner than any traditional EAI
solution.
 Increased reuse: Once legacy systems and applications are service enabled, these services can
be reused, which results in reduced ongoing development costs and results in reduced time to market.
Further, business processes built as an orchestration of services can also be expo sed as services, further
increasing reuse.
 More agile business processes: SOA reduces the gap between the business process model and
implementation. This enables changes to business processes already implemented as orchestrations of
services to be easily c aptured and implemented.
 Improved visibility: SOA can give improved business visibility by enabling business capabilities
exposed as services, and the status of in-flight business processes automated with business activity
monitoring, to be rapidly integrated into service-enabled enterprise portals, aiding business decision-
making.
 Reduced maintenance costs: SOA development encourages duplicated overlapping business
capabilities (services) that span multiple applications and systems to be consolidated into a small
number of shared services. SOA development enables elimination of redundant services and reduces the
cost of maintaining systems by providing a single point of change for application logic. Further, SOA
gives IT the means to gradually phase out legacy systems and applications, while minimizing disruption
to the applications that are built on or are integrated with them using SOA principles. This process frees
up funds for new projects.
 Compliance and governance: By realizing better and more standardized operational procedures,
SOA provides the basis for a comprehensive security solution, and enables better visibility into business
operations and exception conditions.

Oracle SOA Suite Standards


Oracle SOA Suite puts a strong emphasis on standards and interoperability. Among the standards it
leverages are:

 The Service Component Architecture (SCA) assembly model abstracts the implementation and
allows assembly of components, with little implementation details. SCA enables you to represent
business logic as reusable service components that can be easily integrated into any SCA -compliant
application. The resulting application is known as a SOA composite application. The specification for the
SCA standard is maintained by the Organization for the Advancement of Structured Information
Standards (OASIS).
 Service Data Objects (SDO) provide a data programming architecture. It provides a standardized
view on data, and provides efficient transportation, as well as change capture, in form of a change
79

summary. More specifically, it collects a data graph of related business objects, called DataObjects. This
graph tracks the schema that describes the DataObjects. Knowledge is not required about how to access
a particular back-end data source to use SDO in a SOA composite application. Consequently, you can
use static or dynamic programming styles and obtain connected and disconnected access.
 Business Process Execution Language (BPEL) provides enterprises with an industry standard for
business process orchestration and execution. Using BPEL, you design a business process that integrates
a series of discrete services into an end-to-end process flow. This integration reduces process cost and
complexity.
 XSL Transformations (XSLT) processes XML documents and transforms document data from one
XML schema to another.
 Java Connector Architecture (JCA) provides a Java technology solution to the problem of
connectivity between the many application servers in Enterprise Information Systems (EIS).
 Java Messaging Service (JMS) provides a messaging standard that allows application components
based on the Java Enterprise Edition (JEE) to access business logic distributed among heterogeneous
systems.
 Web Service Description Language (WSDL) file provides a standardized view on the capabilities
of a service. Bindings provide the entry points into the composite at runtime.
 SOAP over HTTP (SOAP) provides the default network protocol for message delivery.

Introduction to Service-Oriented Architecture:-

Changing markets, increasing competitive pressures, and evolving customer needs are placing greater
pressure on IT to deliver greater flexibility and speed. Today, every organization is faced with predicting
change in a global business environment, to rapidly respond to competitors, and to best exploit
organizational assets for growth. In response to these challenges, leading companies are adopting
service-oriented architecture (SOA) to deliver on these requirements by overcoming the complexity of
their application and IT environments..

SOA provides an enterprise architecture that supports building connected enterprise applications to
provide solutions to business problems. SOA facilitates the development of enterprise applications as
modular business web services that can be easily integrated and reused, creating a truly flexible,
adaptable IT infrastructure. You can move and reconfigure pieces, turning your systems into the IT
equivalent of Lego blocks.

Goal of Service-Oriented Architecture:-

Increasingly fragmented and complex infrastructures are limiting IT's ability to deliver on business
needs. Many organizations have inherited disjointed legacy systems and packaged applications, a large
proportion of which were never designed for information interoperability, integration, and reuse. The
result of this is that most of the IT budget goes into maintenance of the current IT infrastructure and
only a small amount is available for new functionalities to drive new business opportunities. The major
portion of budget for new capabilities goes into the cost of integrating new functionality into the
existing systems that offer poor support for interoperability.
80

Traditionally, business information systems have been developed with a functional orientat ion often
resulting in silos of information. The fundamental problem with this approach is that end-to-end
business processes, which span silos, are not adaptable to change as business needs evolve. The
processes become fragmented and embedded deep within systems. Enterprise application integration
(EAI) and other traditional middleware solutions partially address this by enabling systems to
communicate with each other, but they do not fully solve the problem. Their ability to create cross
application business processes is inadequate, and they allow only limited business process adaptability.
Moreover, these traditional solutions come at a high cost. The majority of EAI and traditional
middleware solutions use proprietary technology, which causes dependency on specialized skills and to
that single vendor's products. In addition, the systems become tightly coupled, so if an interface
change occurs in one system, all other systems need to be adjusted. Not only does the technology
make it difficult to make changes, it can become cost-prohibitive to do so.

Service-oriented architecture (SOA) helps address the fragmented IT landscape and addresses the
difficulties associated with silos of IT infrastructure and applications.

You might also like