Professional Documents
Culture Documents
Explain About Web Service?: SOA Interview Questions
Explain About Web Service?: SOA Interview Questions
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.
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.
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.
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
· 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.
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.
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).
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.
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."
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.
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
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.
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
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.
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
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
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
<?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?
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
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
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
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
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.
(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.
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.
</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
<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: 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: 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
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
Communication Actions:--
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
For each Iterate over a sequence of values and execute a block of Pipeline stage
actions 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.
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
Reporting Actions:-
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
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: 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: 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.
Question: to transform from binary to XML or XML to binary format what we will in OSB?
Answer: we use MFL.
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: 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: 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: 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.
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.
configuration is used.
Element Description
Name
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
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.
<?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
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.
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.
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.
Question: How many faults can Oracle Mediator service engine throw ?
Answer: Only One
{http://schemas.oracle.com/mediator/faults}mediatorFault.
50
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.
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.
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: 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.
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: 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
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.
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.
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.
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
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.
Oracle Mediator supports echoing source messages back to the initial caller after any transforms,
validations, assignments, or sequencing are performed.
Oracle Mediator supports messages consisting of multiple parts. Some Remote Procedure Call
(RPC) web services contain multiple parts in the SOAP message.
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
Mediator
1) Less Complex Logic 2) Less Support 3) Three times faster than BPEL
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.
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
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.
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:
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.
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.
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 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.
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.
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).
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, 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 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 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
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 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:
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
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.
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 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.
Oracle B2B addresses the documents, packaging, transports, messaging services, Trading Partner
profiles, and agreements with the following features:
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.
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.
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
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.
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:
You can use the following separately licensed products with Oracle SOA Suite:
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:
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 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.
The Oracle Business Process Management (Oracle BPM) Suite provides an integrated environment for
developing, administering, and using business applications centered around business processe s.
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 (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.
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 (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 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.
Many IT environments use multiple applications and multiple data sources, making it challenging to:
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.
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.
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.
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.
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.