Академический Документы
Профессиональный Документы
Культура Документы
SOA helps create greater alignment between IT and line of business while generating more flexibility - IT
flexibility to support greater business flexibility. Your business processes are changing faster and faster and
global competition requires the flexibility that SOA can provide.
SOA can help you get better reuse out of your existing IT investments as well as the new services you're
developing today. SOA makes integration of your IT investments easier by making use of well-defined
interfaces between services. SOA also provides an architectural model for integrating business partners,
customers and suppliers services into an enterprises business processes. This reduces cost and improves
customer satisfaction
A reusable service should be governed at the enterprise level throughout its entire lifecycle, from designtime through run-time. Its reuse should be promoted through a prescriptive process, and that reuse should
be measured.
Talking about Service identification, which approach between top-down and bottom-up
methodologies best fits with a SOA ?
SOA is an architectural style. And building architecture is a Top-Down process and not BottomUp. The most compelling reason for saying that Web Services are not SOA is that they are
technical stuff, often built with a Bottom-Up approach. Building a Bottom-UP SOA is a wrong
approach and might lead to an architecture with a lot of redundancy or maybe no architecture at
all. However, the result of building SOA only Top-Down could be perceptual Architecture
building with no run time artifacts, so some SOA efforts should be Bottom-Up efforts. To sum
up: Initially SOA is a Top-Down approach but pragmatic approach requires mixing Top-Down
approach with Bottom-Up approach.
Services are logical grouping of components to achieve business functionality. Components are
implementation approaches to make a service. The components can be in JAVA, C#, C++ but the services
will be exposed in a general format like Web Services.
These three terminologies on which SOA service stands. Every service must expose one or more ends by
which the service can be available to the client. End consists of three important things where, what and
how:Contract is an agreement between two or more parties. It defines the protocol how client should
communicate with your service. Technically, it describes parameters and return values for a method.
An Address indicates where we can find this service. Address is a URL, which points to the location of the
service.
Bindings determine how this end can be accessed. It determines how communications is done. For
instance, you expose your service, which can be accessed using SOAP over HTTP or BINARY over TCP. So for
each of these communications medium two bindings will be created.
Below figure, show the three main components of end. You can see the stock ticker is the service class,
which has an end hosted on www.soa.com with HTTP and TCP binding support and using Stock Ticker
interface type.
The concept of SOA is nothing new, however why everyone started to talk about SOA only in the
last years ?
Yes I agree the basic concept of SOA aren't new, however some technology technology changes in the last
10 years made service-oriented architecture more practical and applicable to more organizations than it was
previously. Among this:
Universally-accepted industry standards such as XML, its many variants, and Web-services
standards have contributed to the renewed interest in SOA.
Data governance frameworks, which are important to a successful SOA implementation, have well
test and refined over the years.
Understanding of business and business strategies has grown, shifting attention from technology to the
people, cultural changes, and process that are key business success factors.
What is the most important skill you need to adopt SOA ? technical or cultural ?
Surely cultural. SOA does require people to think of business and technology differently. Instead of
thinking of technology first (e.g., If we implement this system, what kinds of things can we do with it?),
practitioners must first think in terms of business functions, or services (e.g., My company does these
business functions, so how can I set up my IT system to do those things for me most efficiently?).It is
expected that adoption of SOA will change business IT departments, creating service-oriented (instead of
technology-oriented) IT organizations.
SOA helps create greater alignment between IT and line of business while
generating more flexibility - IT flexibility to support greater business flexibility.
Your business processes are changing faster and faster and global
competition requires the flexibility that SOA can provide.
SOA can help you get better reuse out of your existing IT investments as well
as the new services youre developing today. SOA makes integration of your
IT investments easier by making use of well-defined interfaces between
services. SOA also provides an architectural model for integrating business
partners, customers and suppliers services into an enterprises business
processes. This reduces cost and improves customer satisfaction
An Address indicates where we can find this service. Address is a URL, which
points to the location of the service.
Below figure, show the three main components of end. You can see the stock ticker
is the service class, which has an end hosted on www.soa.com with HTTP and TCP
binding support and using Stock Ticker interface type.
The concept of SOA is nothing new, however why everyone started to talk
about SOA only in the last years ?
Yes I agree the basic concept of SOA arent new, however some technology
technology changes in the last 10 years made service-oriented architecture more
practical and applicable to more organizations than it was previously. Among this:
What is the most important skill you need to adopt SOA ? technical or
cultural ?
Surely cultural. SOA does require people to think of business and technology
differently. Instead of thinking of technology first (e.g., If we implement this system,
what kinds of things can we do with it?), practitioners must first think in terms of
business functions, or services (e.g., My company does these business functions, so
how can I set up my IT system to do those things for me most efficiently?).It is
expected that adoption of SOA will change business IT departments, creating
service-oriented (instead of technology-oriented) IT organizations.
Is SOA really needed on your opinion?
SOA is not for everyone. While SOA delivers significant benefits and cost savings,
SOA does require disciplined enforcement of centralized governance principals to be
successful. For some organizations, the cost of developing and enforcing these
principals may be higher than the benefits realized, and therefore not a sound
initiative.
Fundamental differences between long-running and short-running processes, how to model state,
and demonstrate how to build a long-running process, how to compile short-running BPEL
processes to improve the execution speed of a burst...........
What are the advantages of OOP?
It presents a simple, clear and easy to maintain structure. It enhances program modularity since
each object exists independently............
What encapsulation, inheritance, and polymorphism mean
In OOP's world everything revolves around objects and classes, and OOP languages usually offer
three specifi c features for manipulating themencapsulation, inheritance, and
polymorphism........
OOPS in .NET
What is the relation between Classes and Objects? Explain different properties of Object
Oriented Systems. What is difference between Association, Aggregation and Inheritance
relationships? Explain the features of an abstract class in NET. Difference between abstract
classes and interfaces Similarities and difference between Class and structure in .NET Features
of Static/Shared classes. What is Operator Overloading in .NET?.............
Concurrency is the system's ability to act with several requests simultaneously, such a way that
threads don't corrupt the state of objects when they gain access at the same time............
OSb::
1.
2.
3.
4.
5.
6.
Now, technically there is nothing wrong with this approach. However, it is generally more
common to encode the search parameters into the query string. Take a look at the following URI
that shows this principle
http://localhost:7001/SimpleREST/Products?id=1234
At first blush this appears to be a trivial change. However, this approach is more intuitive,
especially if you are passing in multiple parameters. For example:
http://localhost:7001/SimpleREST/Products?
cat=electronics&subcat=television&mfg=sony
The above URI is obviously used to retrieve a list of televisions made by Sony. In prior versions
of OSB (before 11gR1PS3), parsing the query string of a URI was more difficult than in the
current release. In 11gR1PS3 it is now much easier to parse the query strings, which in turn
makes developing REST services in OSB even easier. In this blog entry, we will re-implement
the REST-ful Products services using query strings for passing parameter information.
Lets begin with the implementation of the Products REST service. This service is implemented
in the Products.proxy file of the project. Lets begin with the overall structure of the service, as
shown in the following screenshot.
This is a common pattern for REST services in the Oracle Service Bus. You implement different
flows for each of the HTTP verbs that you want your service to support. Lets take a look at how
the GET verb is implemented. This is the path that is taken of you were to point your browser to:
http://localhost:7001/SimpleREST/Products/id=1234
There is an Assign action in the request pipeline that shows how to extract a query parameter.
Here is the expression that is used to extract the id parameter:
$inbound/ctx:transport/ctx:request/http:queryparameters/http:parameter[@name="id"]/@value
The Assign action that stores the value into an OSB variable named id. Using this type of XPath
statement you can query for any variables by name, without regard to their order in the parameter
list.
The Log statement is there simply to provided some debugging info in the OSB server console.
The response pipeline contains a Replace action that constructs the response document for our
rest service. Most of the response data is static, but the ID field that is returned is set based upon
the query-parameter that was passed into the REST proxy.
Testing the REST service with a browser is very simple. Just point it to the URL I showed you
earlier. However, the browser is really only good for testing simple GET services. The OSB Test
Console provides a much more robust environment for testing REST services, no matter which
HTTP verb is used. Lets see how to use the Test Console to test this GET service.
Open the OSB we console (http://localhost:7001/sbconsole) and log in as the
administrator. Click on the Test Console icon (the little "bug") next to the Products proxy service
in the SimpleREST project. This will bring up the Test Console browser window. Unlike SOAP
services, we don't need to do much work in the request document because all of our request
information will be encoded into the URI of the service itself. Belore the Request Document
section of the Test Console is the Transport section. Expand that section and modify the queryparameters and http-method fields as shown in the next screenshot.
By default, the query-parameters field will have the tags already defined. You just need to add a
tag for each parameter you want to pass into the service. For out purposes with this particular
call, you'd set the quer-parameters field as follows:
<tp:query-parameters xmlns:tp="http://www.bea.com/wli/sb/transports/http">
<tp:parameter name="id" value="1234" />
</tp:query-parameters>
Now you are ready to push the Execute button to see the results of the call.
That covers the process for parsing query parameters using OSB. However, what if you have an
OSB proxy service that needs to consume a REST-ful service? How do you tell OSB to pass the
query parameters to the external service? In the sample code you will see a 2nd proxy service
called CallREST. It invokes the Products proxy service in exactly the same way it would invoke
any REST service. Our CallREST proxy service is defined as a SOAP service. This help to
demonstrate OSBs ability to mediate between service consumers and service providers,
decreasing the level of coupling between them.
If you examine the message flow for the CallREST proxy service, you'll see that it uses an
Operational branch to isolate processing logic for each operation that is defined by the SOAP
service. We will focus on the getProductDetail branch, that calls the Products REST service
using the HTTP GET verb. Expand the getProduct pipeline and the stage node that it contains.
There is a single Assign statement that simply extracts the productID from the SOA request and
stores it in a local OSB variable. Nothing suprising here.
The real work (and the real learning) occurs in the Route node below the pipeline. The first thing
to learn is that you need to use a route node when calling REST services, not a Service Callout or
a Publish action. That's because only the Routing action has access to the $oubound variable,
especially when invoking a business service.
The Routing action contains 3 Insert actions. The first Insert action shows how to specify the
HTTP verb as a GET.
The second insert action simply inserts the XML node into the request. This element
does not exist in the request by default, so we need to add it manually.
Now that we have the element defined in our outbound request, we can fill it with the parameters
that we want to send to the REST service. In the following screenshot you can see how we define
the id parameter based on the productID value we extracted earlier from the SOAP request
document.
That expression will look for the parameter that has the name id and extract its value.
That's all there is to it. You now know how to take full advantage of the query parameter parsing
capability of the Oracle Service Bus 11gR1PS2.
Download the sample source code here:
rest2_sbconfig.jar
Ubuntu and the OSB Test Console
You will get an error when you try to use the Test Console with the Oracle Service
Bus, using Ubuntu (or likely a number of other Linux distros also). The error (shown
below) will state that the Test Console service is not running.
The fix for this problem is quite simple. Open up the WebLogic Server administrator console
(usually running at http://localhost:7001/console). In the Domain Structure window on the left
side of the console, select the Servers entry under the Environment heading.
The select the Admin Server entry in the main window of the console. By default, you should be
viewing the Configuration tabe and the General sub tab in the main window. Look for the Listen
Address field. By default it is blank, which means it is listening on all interfaces. For some
reason Ubuntu doesn't like this. So enter a value like localhost or the specific IP address or DNS
name for your server (usually its just localhost in development envirionments). Save your
changes and restart the server. Your Test Console will now work correctly.
7.
8.
9.
ESB
37) When do we use ESB over BPEL?
38) Why ESB is faster than its BPEL counterpart?
39) What is the out of box error handling framework in ESB?
40) How can we get instance ID in ESB?
41) How can we make routing in ESB dynamic?
AIA
42) Why AIA? What is the need of it if SOA is already there?
43) When to go for AIA?
44) What is EBO, EBM, EBS,EBF, ABCs?
45) Can a ABCs be a ESB process? If yes in what scenario?
46) How can we extend a EBM?
47) How can we extend a EBS?
48) How can we extend a ABCs?
49) What is a standard AIA flow?
50) What is the error-handling framework in AIA?
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 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.
In 10g we have to deploy each project separately, but in 11g we can deploy
SCA which contains all.
In 10g BAM and business rules are outside SOA Suite, but in 11g they are in
SOA Suite.
2) 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.
3) Principles of SOA?
loose coupling
Re-usability
Interoperability
Flexible
Transforming data from one representation to another is, along with routing, one of
the key functions of the Mediator.
How do these various artifacts work together? This slide illustrates how each is used in an
integration scenario.
1.
2.
3.
4.
5.
6.
7.
8.
9.
1) Define SOA?
2) Advantages and disadvantages of adopting SOA in an Organization?advantagesand-disadvantages
3) Is SOA best suit for every business? (Ex: for a simple system where no services
are reusable its not a good choice, also real time systems may be tough due to
performance reasons.)
4) Are web services must in SOA? Any alternatives?
5) Can set of web services in your project mean you are doing a SOA project?
Justify.
6) Need for Registry and repositories in SOA?
7) Need for SOA Governance?
8) Is ESB a must for SOA?
9) Difference b/w ESB and EAI (tough one).
10) Difference b/w ESB and BPEL Engine.
11) Need for Orchestration?
12) Difference b/w BPEL engine and ESB?
13) Importance of Granularity of a Service?
14) What are composite services? How they are different from business processes?
15) What are the important features of an ESB?