Interview Questions for 10g and 11g Soa Suites
Here are some interview questions which I faced during my interview on Oracle SOA 10g/11g,
Question 1:- What is a web service.?
:- The Web Services Description Language (WSDL) client interface, which defines the input and output messages for this BPEL process flow, the supported client interface and operations, and other features. This functionality enables the BPEL process flow to be called as a service.
How can one add the HTTP Authentication in BPEL:
Add the following properties in deployment descriptor i.e., the bpel.xml, under the partner link for that service.
<property name="httpHeaders">credentials</property>
<property name="httpUsername">manojnair</property>
<property name="httpPassword">hello@123</property>
O, you can also go about like this;
Add the following properties in bpel.xml under the partner link for that service.
<property name="wsseHeaders">credentials</property>
<property name="wsseUsername">manojnair</property>
<property name="wssePassword">hello@123</property>
Dats it .... you are done once you embed this into your code.
This is how one can invoke secure services.
Question 1:- What is a web service.?
:- The Web Services Description Language (WSDL) client interface, which defines the input and output messages for this BPEL process flow, the supported client interface and operations, and other features. This functionality enables the BPEL process flow to be called as a service.
1. How
to migrate ESB services.
Data sources and connection factories for both the 10g and
11g infrastructures can point to same targets.
Turn off all services on the 10g infrastructure that does
polling (e.g., JMS Adapter consume, AQ Adapter dequeue, DB Adapter polling). If
not, polling services will compete on both the old and new infrastructures.
MDS Meta Data Services
AIA Components
Fault Plocies
Xref
WSDL
DVM Config
Ensure that the “Invocable from an external web service” is
selected for all ESB routing services.
7. Open all .esbsvc files in a text editor.
a. Delete all “parent” lines that have lines similar to the
following:
<parent guid="96DD76C0971311DABF1A87858E4395A7"
qname="DefaultSystem" type="system"/>
b. Change all remaining “qname” references and remove the
system and service groups as follows:
OLD: qname="DefaultSystem.Accounting.HelloWorld"
NEW: qname="HelloWorld"
Correlation ID
When an asynchronous service is initiated with the invoke
activity, a correlation ID unique to the client request is also sent (using WS
Addressing). Because multiple processes may be waiting for service callbacks,
Oracle BPEL Server must know which BPEL process instance is waiting for a
callback message from the loan application approver Web service. The
correlation ID enables Oracle BPEL Server to correlate the response with the
appropriate requesting instance.
WS Addressing
WS Addressing defines the following information typically
provided by transport protocols and messaging systems. This information is
processed independently of the transport or application:
Endpoint location (reply-to address)
The reply-to address specifies the location at which a BPEL
client is listening for a callback message.
Conversation ID
Use TCP tunneling to view SOAP messages exchanged between
the BPEL process flow and the Web service (including those containing the
correlation ID). You can see the exact SOAP messages that are sent to, or
received from, services with which a BPEL process flow communicates.
You insert a software listener between your BPEL process
flow and the Web service. Your BPEL process flow communicates with the listener
(called a TCP tunnel). The listener forwards your messages to the Web service,
and also displays them. Responses from the Web service are returned to the
tunnel, which displays them and forwards them back to the BPEL process.
WSDL Concept
http://predic8.com/wsdl-reading.htm
Understanding Queue.
http://www.wmoug.org/downloads/WMOUG_2011Spring_IPNWEB_Queues.pdf
SOA11g Topics to read.
1. Composite
with BPEL
2. composite
with Mediator
3. Bussiness
Rules
4. Human
Workflow
5. XML,XSLT,XSD,WSDL
and WS addressing.
Why do message remain visible after
being dequed.?and how to do manual Dequeue.
Check for retention Time
SELECT owner, name, retention FROM all_queues WHERE name
LIKE 'WF%';
Fetch status of message.
SELECT msg_state, count(*) FROM applsys.aq$wf_deferred GROUP
BY msg_state;
SELECT msg_state FROM applsys.aq$wf_deferred WHERE msg_id =
<your message ID>;
http://www.workflowfaq.com/why-do-messages-remain-visible-after-being-dequeued
What is the difference between Queue
and topic?
In queues, one message can be consumed by only one client.
But in the topics, one message can be consumed by many clients. Both are
separate domains in MOM.
Queue represent Point-To-Point domain and Topic represent
Pub/Sub domain
A point-to-point (PTP) product or application is built
around the concept of message queues, senders, and receivers. Each message is
addressed to a specific queue, and receiving clients extract messages from the
queue(s) established to hold their messages. Queues retain all messages sent to
them until the messages are consumed or until the messages expire.
In a publish/subscribe (pub/sub) product or application,
clients address messages to a topic. Publishers and subscribers are generally
anonymous and may dynamically publish or subscribe to the content hierarchy.
The system takes care of distributing the messages arriving from a topic's
multiple publishers to its multiple subscribers. Topics retain messages only as
long as it takes to distribute them to current subscribers.
What type messaging is provided by
JMS?
Both synchronous and asynchronous.
Imp Link for interview questions.
Activity sensors
Activity sensors are used to monitor the execution of
activities within a BPEL process. For example, they can monitor the execution
time of an invoke activity or how long it takes to complete a scope. Along with
the activity sensor, you can also monitor variables of the activity.
Variable sensors
Variable sensors are used to monitor variables (or parts of
a variable) of a BPEL process. For example, variable sensors can monitor the
input and output data of a BPEL process.
Fault sensors
Fault sensors are used to monitor BPEL faults.
What is ComponentType File?
The componentType file that describes the services and
references for each service component. This file ensures that the wiring you
create between components works.
What is Contains in JCA Adapters?
Displays the JCA adapter (AQ, file, FTP, Database, JMS, MQ,
Oracle Applications, Oracle BAM, and EJB Service), B2B binding component, SDO
binding component, and web service binding component that can be dragged into
the left or right swim lanes.
What is Compansate activity and pick
activity.
What is difference Between Service
and WebService.
ans:- The Web Services Description Language (WSDL) client
interface, which defines the input and output messages for this BPEL process
flow, the supported client interface and operations, and other features. This
functionality enables the BPEL process flow to be called as a service.
What is Tab in Business .rules file?
Facts
Facts are the objects
that rules reason on.
Functions
A function, in Oracle
Business Rules, refers to the standard mathematical functions.
Globals
A global, in Oracle
Business Rules, is similar to a public static variable in Java.
Bucketsets
Bucketsets define the data types of fact properties.
Links
Links are used to
link to a dictionary in the same application or in another application.
Decision Functions
A Decision Function
is a function that is configured declaratively, without using RL Language
programming.
Rulesets with Rules and Decision Tables
A ruleset provides a
unit of execution for rules and for Decision Tables. A Decision Table provides
a mechanism for describing data processing tasks.
What is .JWS file?
It is a Application WorkSpace. When you can fine many
projects.
What is Service Components.
BPEL Process
Create BPEL Process
dialog: Enables you to create a BPEL process that integrates a series of
business activities and services into an end-to-end process flow.
Business Rule
Create Business Rules
dialog: Enables you to create a business decision based on rules.
Human Task
Create Human Task
dialog: Enables you to create a workflow that describes the tasks for users or
groups to perform as part of an end-to-end business process flow.
Mediator
Create Mediator
dialog: Enables you to define services that perform message and event routing,
filtering, and transformations.
Describe The available Services.
Web service
Create Web Service
dialog: Creates a web invocation service.
Adapters
Adapter Configuration
Wizard: Guides you through integration of the service with database tables,
database queues, file systems, FTP servers, Java Message Services (JMS), IBM
WebSphere MQ, BAM servers, sockets, or Oracle E-Business Suite applications.
ADF-BC Service
Create ADF-BC Service
dialog: Creates a service data object (SDO) invocation service.
B2B
B2B Wizard: Guides
you through selection of a document definition.
EJB Service
Create EJB Service:
Creates an Enterprise JavaBeans service for using SDO parameters with
Enterprise JavaBeans.
What is WS Addressing?
WS-Addressing is a transport-neutral mechanism by which web
services communicate addressing information. SOAP envelopes & headers used
within web services for transporting data throught transport layers like HTTP
does not possess intelligence to specify unique addressing information. Hence,
WS-Addressing evolved which contained endpoint references (EPR) and message
information headers for identification. This information is processed
independently of the transport mechanism or application.
What is a NameSpace?
What is inline schema?
<?xml version="1.0"?>
<catalog xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:x="urn:book">
<!-- START OF SCHEMA -->
<xsd:schema targetNamespace="urn:book">
<xsd:element name="book">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="author" type="xsd:string"/>
<xsd:element name="title" type="xsd:string"/>
<xsd:element name="genre" type="xsd:string"/>
<xsd:element name="price" type="xsd:float"/>
<xsd:element name="publish_date" type="xsd:date"/>
<xsd:element name="description" type="xsd:string"/>
</xsd:sequence>
<xsd:attribute name="id" type="xsd:string"/>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<!-- END OF SCHEMA -->
<x:book id="bk101">
<author>Gambardella, Matthew</author>
<title>XML Developer's Guide</title>
<genre>Computer</genre>
<price>44.95</price>
<publish_date>2000-10-01</publish_date>
<description>An in-depth look at creating applications with
XML.</description>
</x:book>
</catalog>
What is Dynamic Binding.
Creating a dynamic binding in BPEL
Dynamic binding allows the
developer to add new services through configuration or run-time inputs.
To understand how this
dynamic process works, it is first necessary to analyze the
DynamicPartnerLink.bpel file. The first interesting thing in this file is the
loan service partner link:
<partnerLink
name="LoanService" partnerLinkType="
services:LoanService"
myRole="LoanServiceRequester"
partnerRole="LoanServiceProvider"/>
Rather
than defining a specific loan service (like UnitedLoan), a generic loan service name
and type is specified (services:LoanService). The LoanService partner
link is defined in the LoanService.wsdl file; this file is imported by adding
it to the bpel.xml file in the <partnerLinkBindings> section as shown
below:
<partnerLinkBinding
name="LoanService">
<property
name="wsdlLocation">LoanService.wsdl</property>
</partnerLinkBinding>
You'll
observe in the LoanService.wsdl file that each of the available loan providers
is defined as a <service> within this single WSDL file, as shown below.
<service
name="StarLoan">
<port name="LoanServicePort"
binding="tns:LoanServiceBinding">
<soap:address
location="http://localhost:9700/orabpel/default/StarLoan"/>
</port>
</service>
<service
name="UnitedLoan">
<port name="LoanServicePort"
binding="tns:LoanServiceBinding">
<soap:address
location="http://localhost:9700/orabpel/default/UnitedLoan"/>
</port>
</service>
<service
name="AmericanLoan">
<port name="LoanServicePort"
binding="tns:LoanServiceBinding">
<soap:address
location="http://localhost:9700/orabpel/default/AmericanLoan"/>
</port>
</service>
It is
important to understand that there is no "real" service called
"LoanService." Rather, LoanService is a template from which you
select one of the real loan provider services (UnitedLoan, AmericanLoan,
StarLoan). This approach works as long as the real services all support the
same interface (same data types, messages, roles, ports, and partner link
types) as that defined in the template WSDL. It is important to define this
template interface carefully because a change here can affect many processes
down the line.
The LoanService.wsdl
file defines all the service options, which the parent process can elect to
call dynamically. This model requires a redeployment of the WSDL file as each
new service is added. This approach represents a remarkable improvement over
modifying the parent process to include new partner links and routing logic for
each new service. (Later you will see how to disassociate the service endpoints
from the WSDL file as well.)
Returning to the
DynamicPartnerlink.bpel file, the next feature we want to look at is the partnerReference variable:
<variable
name="partnerReference"
element="wsa:EndpointReference"/>
This
variable is of the type EndpointReference. It has a namespace wsa: defined
at the top of the BPEL file as
xmlns:wsa="http://schemas.xmlsoap.org/ws/2003/03/addressing"
The
WS-Addressing standard provides the schema for the EndpointReference type. You can <assign>
variables of this type to a partner link in order to modify the address and
service information, thus providing the ability to modify the partner link at
runtime.
The DynamicPartnerLink
process basically consists of a switch. It inspects the "provider"
string passed in by the caller. Then, it assigns an EndpointReference xml data structure to the partnerReference variable containing the
information relevant to the service that you're requesting. After the switch,
the partnerReference variable is assigned to
the LoanService partner link and the
partner link is invoked.
Here's how to accomplish
this task when the input string (the service provider) is "united":
<assign>
<copy>
<from>
<EndpointReference
xmlns="http://schemas.xmlsoap.org/ws/2003/03/addressing">
<Address>http://localhost:9700/orabpel/default/UnitedLoan</Address>
<ServiceName
xmlns:ns1="http://services.otn.com">ns1:UnitedLoan</ServiceName>
</EndpointReference>
</from>
<to
variable="partnerReference"/>
</copy>
</assign>
Everything
between the <from> and </from> tags is literal XML that you're
assigning to the partnerReference variable. This data will override the address and
service specified in the LoanService partner link when you assign the partnerReference variable
to that link.
Now that you've explored
the use of the LoanService partner link and LoanService.wsdl to invoke services selected at
run time, you can move on to building a dynamic process.
What is Fault Policy Management.
What is Difference between 10g and
11g of Soa.
What is SOA and SCA?
Soa- Service Oriented Architecture
and SCA is Service Component Architecture
SCA is assembly of artifacts.
How many ways to deploy a BPEL
service?
what is ant script?
What is Concrete and Abstract WSDL?
How to Migrate a BPEL Process?
What is MDS?
What is configuration control? And
its usage in your project?
What are the activities which used to
dehydrate automatically? What is dehydrate activity.
What is FlowNActivity.
What is Asynchronous and Syncronous
Services?
callBack- Asynchronous. Two port.
ReplyOutPut- Synchronous.one port.
Business Scenario.
1. We have three service Flight Service Hotel Service and Cab service, If
any of them couldnt book so what you
will do for rollback all the action?
ans :- Compansate activity. And compensateScopeActivity
2. If
A call B and B call C and Response would be in Reverse manner. i.e. C respond
to B and B respond to A, So how you will respod to A from C without responsding
B?
Ans:-
Oracle BPEL Correlation Exemplified
Correlation is one of the important & tricky technique
available within Oracle BPEL PM. In this blog, I have taken a simple route to
explain the correlation technique.
Synchronous & Asynchronous web services:
Whenever a synchronous web service is invoked from Oracle
BPEL via a partnerlink, only one port is established for communication with the
exposed web service which is used by both request & response messages.
However, when an asynchronous web service is invoked, two
ports are opened for communcation: one for request & one for response
messages.
How does Oracle BPEL identify asynchronous responses?
As response from an asynchronous web service is not
guaranteed to be received within a specified time frame, and many instances of
the same service might be invoked before even a response can be obtained, how
does Oracle BPEL identify and relate the responses to the appropriate requests
and proceed for completion of further activities that may be scheduled? The
answer is "WS-Addressing".
What is WS-Addressing?
WS-Addressing is a transport-neutral mechanism by which web
services communicate addressing information. SOAP envelopes & headers used
within web services for transporting data throught transport layers like HTTP
does not possess intelligence to specify unique addressing information. Hence,
WS-Addressing evolved which contained endpoint references (EPR) and message
information headers for identification. This information is processed
independently of the transport mechanism or application.
For reference on WS-Addressing click here
By default, Oracle BPEL PM implements WS-Addressing for all
asynchronous web service calls, hence we don't have to explicitly implement
identification relationship between the incoming & outgoing messages.
Correlation:
In short, Correlation is a BPEL technique which provides
correlation of asynchronous messages based on the content of the message.
Why & Where Correlation?
The following are few scenarios in which we would be
required to implement Correlation to identify & relate message
communication;
1. When the external web service called doesn't have
WS-Addressing capability
2. When the message travels through several services and
response is solicited by the initial service from the last service directly
For instance, request flow pro1 -> pro2 -> pro3 and
response is received from pro3 ->pro1
Implementing Correlation:
a.) Creating Correlation Sets:
In Structure Window of the JDeveloper IDE, right click on
the Correlation Sets and choose 'Create Correlation Set'
Provide a name for your correlation set being created.
In the properties section, select 'Add' to display the
property chooser window
Choose 'Create' to create a property on which the
correlation has to be initiated. Provide a name and type for the property.
b.) Associating the Correlation set on receive/invoke, pick
activities
Go the the correlations tab on the activity
(invoke/receive/pick) on which you need to set & validate the correlation
Add the created correlation set to the activity
Initiate Attribute: (Value Set - yes, no)
When set to yes, correlation set is initiated with the
values of the properties available in the message being transferred
When set to no, correlation set validates the value of the
property available in the message
Pattern Attribute: (Value Set - in, out, in-out)
When the value is 'in', it means that the correlation
property is set/validated on the incoming message
When the value is 'out', it means that the correlation
property is set/validated on the message going out of BPEL
In case of 'in-out', the property will be set/validated on
both incoming & outgoing messages
c.) Creating Propery Alias:
In the Structure Window of the JDeveloper, right click on
the 'Property Aliases' and select 'Create Propery Alias'
Select the message type that you want to set to the
correlation propery (already created)
Now, correlation design is complete. However, correlation
will not be established unless we reference the correlations on the WSDL file
of the BPEL process. To do this, import the correlation WSDL file (created
under the project) in the BPEL process main WSDL.
Calling Secure Services from BPEL
There are two popular ways of securing the so-called webservices
and as to how do we invoke them from BPEL???
BasicServices:
Basic services would require authentication information i.e.,
the username/password to be passed in the HTTP Header.
Services Pertaining to WS-Security:
These services are required to send authentication information ( username / password) as WS-Security tokens in SOAP Envelope to access.
These services are required to send authentication information ( username / password) as WS-Security tokens in SOAP Envelope to access.
How can one add the HTTP Authentication in BPEL:
Add the following properties in deployment descriptor i.e., the bpel.xml, under the partner link for that service.
<property name="httpHeaders">credentials</property>
<property name="httpUsername">manojnair</property>
<property name="httpPassword">hello@123</property>
O, you can also go about like this;
<property name="basicHeaders">credentials</property>
<property name="basicUsername">manojnair</property>
<property name="basicPassword">hello@123</property>
<property name="basicUsername">manojnair</property>
<property name="basicPassword">hello@123</property>
Adding WS-Security tokens in BPEL:
Add the following properties in bpel.xml under the partner link for that service.
<property name="wsseHeaders">credentials</property>
<property name="wsseUsername">manojnair</property>
<property name="wssePassword">hello@123</property>
Dats it .... you are done once you embed this into your code.
This is how one can invoke secure services.
Thanks for all the information, it was very helpful I really like that you are providing information.
ReplyDeleteOracle Fusion EBS Online Training