For personal use only...
What is SOA?
SOA is an architecture for building applications using reusable,
interoperable services which have well defined business functionalities and can
be orchestrated to achieve a specific functionality by utilizing them together.
4 facts you should
know about SOA Services
1. SOA separates business functions into services (endpoints), which are made accessible over a network in order to allow users to combine and reuse them in their applications.
2. The SOA services can be developed in different languages and OS’es as long as they follow the SOA principles.
3. Services are unassociated and loosely coupled units that do not directly rely on each other for their full functioning. Rather than services embedding calls to each other in their source code, they use defined protocols that describe how services pass and parse messages using description metadata.
4. Orchestration is a process where business functionality from various services are combined in a system fully aware of all available services and the associated metadata that defines these services and their characteristics.
1. SOA separates business functions into services (endpoints), which are made accessible over a network in order to allow users to combine and reuse them in their applications.
2. The SOA services can be developed in different languages and OS’es as long as they follow the SOA principles.
3. Services are unassociated and loosely coupled units that do not directly rely on each other for their full functioning. Rather than services embedding calls to each other in their source code, they use defined protocols that describe how services pass and parse messages using description metadata.
4. Orchestration is a process where business functionality from various services are combined in a system fully aware of all available services and the associated metadata that defines these services and their characteristics.
SOA principles
SOA principles were first defined by Thomas Erl. These 8
principles are underlying to any good architecture that utilizes SOA design to
build their products and services:
1. Standardized service contract: Services adhere to a communications agreement, as defined collectively by one or more service-description documents.
2.
Service loose coupling: Services maintain a
relationship that minimizes dependencies and only requires that they maintain
an awareness of each other.
3.
Service abstraction: Beyond descriptions in the
service contract, services hide logic from the outside world.
4.
Service reusability: Logic is divided into
services with the intention of promoting reuse.
5.
Service autonomy: Services have control over the
logic they encapsulate.
6.
Service statelessness: Services minimize
resource consumption by deferring the management of state information when
necessary
7.
Service discoverability: Services are
supplemented with communicative meta data by which they can be effectively
discovered and interpreted.
8.
Service composability: Services are effective composition
participants, regardless of the size and complexity of the composition.
Explain some of the
common terms in a SOA based architecture
SOA registry
is a metadata store for services which describes what each services can do, their
location, and communication protocol.
SOA workflow helps define work flow using the services in a SOA registry.
Service broker reads the work flow and takes services from the SOA registry and ties them together.
SOA supervisor ensures that services do not have issues. It deals mainly with performance issues of the system so that appropriate service levels are met.
SOA workflow helps define work flow using the services in a SOA registry.
Service broker reads the work flow and takes services from the SOA registry and ties them together.
SOA supervisor ensures that services do not have issues. It deals mainly with performance issues of the system so that appropriate service levels are met.
Service Contract
Service Contract defines the “What” of a service. Think of it as a contract agreement (aka protocol) between the service and the consuming application (aka client). More specifically, it describes parameters and return values for a method. Service Address
Service Address defines the “Where”. In other words, where can the clients find this service. Address is a URL, which points to the location of the service. Service Binding
A Service can offer many different bindings. Bindings are the “How” you connect, access and communicate with the service. For example, SOAP over HTTP or BINARY over TCP.
Service Contract defines the “What” of a service. Think of it as a contract agreement (aka protocol) between the service and the consuming application (aka client). More specifically, it describes parameters and return values for a method. Service Address
Service Address defines the “Where”. In other words, where can the clients find this service. Address is a URL, which points to the location of the service. Service Binding
A Service can offer many different bindings. Bindings are the “How” you connect, access and communicate with the service. For example, SOAP over HTTP or BINARY over TCP.
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.
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.
What
is a flow activity? What is a flowN activity and how does it leverages the flow
activity?
F 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.
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.
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.
How
does pick activity differ from a receive activity?
Pick
activity can act as a multiple receive activity in some business 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 receive activity with create
Instance box checked.
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.
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.
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.
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.
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
requiresnew then it will start the new transaction.
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.
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.
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.
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."
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
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.
How
do we resubmit a faulted process?
S 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).
Predefined
errors in BPEL?
·
Custom errors
·
Timed out errors
·
BPM errors
·
Validation Errors
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.
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).
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
encounter every day, URI is the correct term.
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.
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.
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.
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) ,Operations
(operation that can be performed on this service) and port Type.
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.
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.
What
are the WSDL structure?
Following
are the wsdl structure
·
definitions
·
Types
·
Messages
·
Operation
·
Port type
·
Bindings
·
Services
·
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.
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.
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.
What
is a inline schema?
Schemas
can be included inside of XML file is called Inline Schemas.
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.
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.
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 mechanisms by which you can send data to Oracle BAM
Active Data Cache from an SOA composite application.
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.
· BAM Sensor activity level.
What
are the roles in BAM?
·
Architect
·
Administrator
·
Active Viewer
·
Active Studio
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
reaches the forward delay time it gets moved to the other managed
server where consumer is present.
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.
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.
Difference
between JMS Queues and Topics?
Queue-Message
will be subscribed by one subscriber.
Topic-Message
will be subscribed by more than one subscriber.