Oracle OSB-SOA-BPEL Interview Question and Answer – Part 7

In this article, we will discuss interview question with their justification on Oracle OSB, SOA and BPEL

This is part-7 of Oracle OSB-SOA-BPEL interview question series

Q) Explain flow activity in detail ?

Flow Activity:

  • This activity enables you to specify one or more activities to be performed concurrently
  • A flow activity completes when all activities in the flow have finished processing
  • A BPEL process is executed using a single thread, even when a flow is reached
  • Each branch of the flow will then be executed sequentially
  • The solution to this is to enable the nonBlockingInvoke property on your partner links
  • This results in a dehydration point at each invoke activity and a new thread created to perform the invoke
  • You can think of this as the same as having an invoke activity followed by a receive activity when calling an asynchronous service
  • This will allow each of the invoke activities to occur in parallel, starting immediately one after another, but will also result in a dehydration point for each which needs to be considered as well

Q) What’s the difference between Flow and Flow N activity ?

FlowFlowN
Can execute different activity sequences in each branchExecute same activity sequences in each branch
Number of branches are known & created at design timeNumber of branches are unknown at design time & dynamically determined at run time
Can work with different or same dataCan use the index variable to access a different set of data for each branch
More suited to invocation of services specified at design timeMore suited for dynamic service invocation where services invoked are determined at run time
Index variables must be manually incremented (if used)Index variables automatically incremented

Q) Explain nonBlockingInvoke ?

  • The nonBlockingInvoke property value has a default value of false, in which case the invocation is executed in the same thread as the BPEL process instance
  • When this property set true, a separate thread is spawned to do invocation so that the invoke activity does not block the instance
  • This property is set for the partnerlink in bpel.xml
  • A partner link property nonBlockingInvoke indicates whether BPEL would use multiple threads to execute invocation to this partner in Flow/FlowN branches
  • True – Engine will spawn a new thread to execute each invocation in the flow/flowN branch
  • False – Engine will NOT spawn a new thread to execute each invocation in the flow/flowN branch –> default value

Q) How do you take care of timeout for Asynchronous process ?

onMessage:

  • Because asynchronous web services can take a long time to return a response, a BPEL process service component must be able to time out, or give up waiting, and continue with the rest of the flow after a certain amount of time
  • You can use a pick activity to configure a BPEL flow to either wait a specified amount of time or to continue performing its duties
  • To set an expiration period for the time, you can use the wait activity

onAlarm:

  • onAlarm –> to set timeout

Q) How to Set Timeouts in Receive Activities ?

  • Use Timeout tab of the receive activity

Q) What is the main function of OSB in SOA infrastructure ?

  • Intermediary service bus (message broker) for service virtualization thereby allowing decoupling of services from the client

Q) Explain WSDL structure ?

  • Web service Definition language – Services, Bindings, Port Types or Operation, Messages, partner links and endpoints
  • XML based language to describe, octate web services and how to access them
  • Contains XMLNS and XSD

Q) What are the various elements in WSDL ?

Various elements are: Types, messages, operation, port, bindings and Services

<definition> – root element of WSDL document

  • Types: a container for data type definitions using some type system (such as XSD)
  • Message: an abstract, typed definition of the data being communicated
  • Operation: an abstract description of an action supported by the service
  • Port Type: an abstract set of operations supported by one or more endpoints
  • Binding: a concrete protocol and data format specification for a particular port type
  • Port: a single endpoint defined as a combination of a binding and a network address
  • Service: a collection of related endpoints

 Q) Difference between Complex Type and Simple Type ?

  • Simple element types will not contain other elements, they only contain data. (Java analogue: primitive types)
  • Complex types define the organization of elements that contain other elements (Java analogue: Java class with fields but no methods (XML doesn’t have “behavior”; XML is semi-structured data))

Q) What are the Major Elements in WSDL ?
Q) Describe the different sections of WSDL document ?
Q) Explain WSDL structure ?

WSDL breaks down Web services into three specific, identifiable elements that can be combined or reused once defined. Three major elements of WSDL that can be defined separately and they are:

  • Types
  • Operations
  • Binding

A WSDL document has various elements, but they are contained within these three main elements, which can be developed as separate documents and then they can be combined or reused to form complete WSDL files.

Following are the elements of WSDL document. Within these elements are further sub-elements, or parts:

  • Definition: element must be the root element of all WSDL documents. It defines the name of the web service, declares multiple namespaces used throughout the remainder of the document, and contains all the service elements described here.
  • Data types: the data types – in the form of XML schemas or possibly some other mechanism – to be used in the messages
  • Message: an abstract definition of the data, in the form of a message presented either as an entire document or as arguments to be mapped to a method invocation.
  • Operation: the abstract definition of the operation for a message, such as naming a method, message queue, or business process, that will accept and process the message
  • Port type: an abstract set of operations mapped to one or more end points, defining the collection of operations for a binding; the collection of operations, because it is abstract, can be mapped to multiple transports through various bindings.
  • Binding: the concrete protocol and data formats for the operations and messages defined for a particular port type.
  • Port: a combination of a binding and a network address, providing the target address of the service communication.
  • Service: a collection of related end points encompassing the service definitions in the file; the services map the binding to the port and include any extensibility definitions.

In addition to these major elements, the WSDL specification also defines the following utility elements:

  • Documentation: element is used to provide human-readable documentation and can be included inside any other WSDL element.
  • Import: element is used to import other WSDL documents or XML Schemas

Q) What are the difference between abstract & concrete WSDL ?
Q) Abstract WSDL v/s Concrete WSDL ?

Abstract WSDL (definitions or contract) :

  • An Abstract WSDL contains only Messages, PortTypes, and Operations
  • Abstract WSDL consists of the structure of the message that is like what operation, what is the input, what is the output and what is the fault message used by each operation to communicate with the web service, and their format
  • 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
  • Used on server side, contains request, response and type of operation performed

Concrete WSDL (implementation) :

  • Concrete WSDL has all the things that the abstract WSDL has in addition it has transport(HTTP, JMS) details to tell how the web service 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
  • SOAP clients must retrieve the concrete WSDL file before sending a SOAP request to the service
  • Used on client side, contains abstract WSDL and transport used

Q) Explain about SOAP Structure ? 
Q) What are the elements that should be contained in SOAP message ?

  • Envelope – Translates the XML document to a SOAP message. It is the root element
  • Header – Contains the header message. Contains the application specific information
  • Body – Contains the call and response message
  • Fault element – Used for communicating errors. If present, it appears as a child element of the body and can appear only once

Q) 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

  • SOAP envelope: The SOAP is the root element in every SOAP message, and contains two child elements, an optional and a mandatory
  • 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
  • SOAP body: The SOAP is a mandatory sub-element of the SOAP envelope, which contains information intended for the ultimate recipient of the message
  • SOAP fault: The SOAP is a sub-element of the SOAP body, which is used for reporting errors

Folks, it’s your turn to comment & suggest for improvement

Note: We have taken inputs from various folks and other weblog for making this comprehensive set of Oracle SOA-OSB interview & answers

Related Articles :

Happy Coding !!
Happy Learning !!

Oracle OSB-SOA-BPEL Interview Question and Answer - Part 8
Oracle OSB-SOA-BPEL Interview Question and Answer - Part 6